mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 09:45:26 -05:00
decompile gds (#927)
This commit is contained in:
parent
45336a30a5
commit
a26e03caab
|
|
@ -1,3 +1,3 @@
|
|||
include/**/*
|
||||
src/**/*
|
||||
|
||||
lib/**/*
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ repos:
|
|||
hooks:
|
||||
- id: clang-format
|
||||
args: [--style=file]
|
||||
exclude: ^(lib|subprojects|tools)/
|
||||
exclude: ^(subprojects|tools)/
|
||||
types_or: [c, c++]
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v5.0.0
|
||||
|
|
|
|||
|
|
@ -5,11 +5,55 @@
|
|||
#include "struct_decls/struct_02030A80_decl.h"
|
||||
#include "struct_defs/dress_up_photo.h"
|
||||
|
||||
#include "overlay061/struct_ov61_0222B138.h"
|
||||
#include "overlay061/struct_ov61_0222B2D8.h"
|
||||
#include "overlay062/struct_ov62_022349A8.h"
|
||||
#include "overlay061/struct_ov61_0222B920.h"
|
||||
#include "overlay062/funcptr_ov62_022349A8.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub2.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3.h"
|
||||
#include "overlay062/struct_ov62_0223CAA4.h"
|
||||
#include "overlay062/struct_ov62_02241130.h"
|
||||
|
||||
#include "gds.h"
|
||||
#include "message.h"
|
||||
#include "savedata.h"
|
||||
#include "string_gf.h"
|
||||
#include "string_template.h"
|
||||
|
||||
typedef struct {
|
||||
SaveData *saveData;
|
||||
UnkFuncPtr_ov62_022349A8 unk_04;
|
||||
void *unk_08;
|
||||
UnkStruct_ov62_022349A8_sub1 unk_0C;
|
||||
enum HeapID heapID;
|
||||
int unk_148;
|
||||
int unk_14C;
|
||||
UnkStruct_ov62_022349A8_sub2 unk_150;
|
||||
UnkStruct_ov62_0223CAA4 unk_17C;
|
||||
void *unk_18C;
|
||||
UnkStruct_ov62_022349A8_sub3 unk_190;
|
||||
void *unk_3B4;
|
||||
int unk_3B8;
|
||||
int unk_3BC;
|
||||
int unk_3C0;
|
||||
BOOL unk_3C4;
|
||||
BOOL unk_3C8;
|
||||
UnkStruct_ov61_0222B138 unk_3CC;
|
||||
int unk_3D8;
|
||||
int unk_3DC;
|
||||
int unk_3E0;
|
||||
int unk_3E4;
|
||||
int unk_3E8;
|
||||
int unk_3EC;
|
||||
int unk_3F0;
|
||||
MessageLoader *unk_3F4;
|
||||
StringTemplate *unk_3F8;
|
||||
String *unk_3FC;
|
||||
UnkStruct_ov61_0222B920 unk_400;
|
||||
u8 unk_40D;
|
||||
u8 unk_40E;
|
||||
} UnkStruct_ov62_022349A8;
|
||||
|
||||
int ov61_0222B008(UnkStruct_ov62_022349A8 *param0, const UnkStruct_ov62_02241130 *param1);
|
||||
void ov61_0222B0F0(UnkStruct_ov62_022349A8 *param0);
|
||||
int ov61_0222B1B4(UnkStruct_ov62_022349A8 *param0, UnkStruct_02030A80 *param1, DressUpPhoto *photo);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef POKEPLATINUM_OV61_0222BC4C_H
|
||||
#define POKEPLATINUM_OV61_0222BC4C_H
|
||||
|
||||
#include "overlay061/ov61_0222B008.h"
|
||||
#include "overlay061/struct_ov61_0222B960.h"
|
||||
#include "overlay061/struct_ov61_0222BC90.h"
|
||||
#include "overlay061/struct_ov61_0222BCF8_sub1_sub1.h"
|
||||
|
|
@ -8,7 +9,6 @@
|
|||
#include "overlay061/struct_ov61_0222BDAC_1.h"
|
||||
#include "overlay061/struct_ov61_0222BE20.h"
|
||||
#include "overlay061/struct_ov61_0222BED8.h"
|
||||
#include "overlay062/struct_ov62_022349A8.h"
|
||||
#include "overlay062/struct_ov62_0223DF10.h"
|
||||
|
||||
int ov61_0222BC4C(UnkStruct_ov62_022349A8 *param0, UnkStruct_ov61_0222B960 *param1);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "struct_defs/struct_0208C06C.h"
|
||||
|
||||
#include "overlay062/struct_ov62_022349A8.h"
|
||||
#include "overlay061/ov61_0222B008.h"
|
||||
|
||||
UnkStruct_ov62_022349A8 *ov62_0224112C(UnkStruct_0208C06C *param0);
|
||||
void ov62_02241130(UnkStruct_0208C06C *param0);
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
|
||||
#include "struct_decls/struct_02012744_decl.h"
|
||||
|
||||
#include "overlay061/ov61_0222B008.h"
|
||||
#include "overlay062/struct_ov62_0223118C_sub1.h"
|
||||
#include "overlay062/struct_ov62_02233310.h"
|
||||
#include "overlay062/struct_ov62_0223359C.h"
|
||||
#include "overlay062/struct_ov62_022349A8.h"
|
||||
|
||||
#include "bg_window.h"
|
||||
#include "g3d_pipeline.h"
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_OV62_022349A8_H
|
||||
#define POKEPLATINUM_STRUCT_OV62_022349A8_H
|
||||
|
||||
#include "overlay061/struct_ov61_0222B138.h"
|
||||
#include "overlay061/struct_ov61_0222B920.h"
|
||||
#include "overlay062/funcptr_ov62_022349A8.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub1.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub2.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3.h"
|
||||
#include "overlay062/struct_ov62_0223CAA4.h"
|
||||
|
||||
#include "message.h"
|
||||
#include "savedata.h"
|
||||
#include "string_gf.h"
|
||||
#include "string_template.h"
|
||||
|
||||
typedef struct {
|
||||
SaveData *saveData;
|
||||
UnkFuncPtr_ov62_022349A8 unk_04;
|
||||
void *unk_08;
|
||||
UnkStruct_ov62_022349A8_sub1 unk_0C;
|
||||
enum HeapID heapID;
|
||||
int unk_148;
|
||||
int unk_14C;
|
||||
UnkStruct_ov62_022349A8_sub2 unk_150;
|
||||
UnkStruct_ov62_0223CAA4 unk_17C;
|
||||
void *unk_18C;
|
||||
UnkStruct_ov62_022349A8_sub3 unk_190;
|
||||
void *unk_3B4;
|
||||
int unk_3B8;
|
||||
int unk_3BC;
|
||||
int unk_3C0;
|
||||
BOOL unk_3C4;
|
||||
BOOL unk_3C8;
|
||||
UnkStruct_ov61_0222B138 unk_3CC;
|
||||
int unk_3D8;
|
||||
int unk_3DC;
|
||||
int unk_3E0;
|
||||
int unk_3E4;
|
||||
int unk_3E8;
|
||||
int unk_3EC;
|
||||
int unk_3F0;
|
||||
MessageLoader *unk_3F4;
|
||||
StringTemplate *unk_3F8;
|
||||
String *unk_3FC;
|
||||
UnkStruct_ov61_0222B920 unk_400;
|
||||
u8 unk_40D;
|
||||
u8 unk_40E;
|
||||
} UnkStruct_ov62_022349A8;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV62_022349A8_H
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_OV62_022349A8_SUB1_H
|
||||
#define POKEPLATINUM_STRUCT_OV62_022349A8_SUB1_H
|
||||
|
||||
typedef struct {
|
||||
s32 unk_00;
|
||||
u8 unk_04;
|
||||
u8 language;
|
||||
u8 padding_06[306];
|
||||
} UnkStruct_ov62_022349A8_sub1;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV62_022349A8_SUB1_H
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
.public memcpy
|
||||
.public strcpy
|
||||
.public ov61_0222CFD4
|
||||
.public ov61_0222D3E8
|
||||
.public ov61_0222D498
|
||||
.public ov61_0222D4AC
|
||||
.public ov61_0222D4C8
|
||||
.public ov61_0222D4DC
|
||||
.public ov61_0222D4F0
|
||||
.public ov61_0222D508
|
||||
.public ov61_0222D510
|
||||
.public ov61_0222D53C
|
||||
.public ov61_0222D54C
|
||||
.public ov61_0222D6A0
|
||||
.public ov61_0222D770
|
||||
.public ov61_0222D7B0
|
||||
.public ov61_0222D8F8
|
||||
.public ov61_0222DA0C
|
||||
.public ov61_0222DB8C
|
||||
.public ov61_0222DB98
|
||||
.public ov61_0222E0B8
|
||||
.public ov61_0222E168
|
||||
.public ov61_0222E2A8
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
.public OS_CreateThread
|
||||
.public OS_WakeupThreadDirect
|
||||
.public OS_Sleep
|
||||
.public OS_InitMutex
|
||||
.public OS_LockMutex
|
||||
.public OS_UnlockMutex
|
||||
.public OS_InitTick
|
||||
.public OS_IsTickAvailable
|
||||
.public OS_GetTick
|
||||
.public strcpy
|
||||
.public _ull_div
|
||||
.public DWC_GetLastErrorEx
|
||||
.public DWC_Alloc
|
||||
.public DWC_Free
|
||||
.public DWC_SVLGetTokenAsync
|
||||
.public DWC_SVLProcess
|
||||
.public inet_addr
|
||||
.public SOC_Socket
|
||||
.public SOC_Connect
|
||||
.public SOC_Recv
|
||||
.public SOC_Send
|
||||
.public SOC_Shutdown
|
||||
.public SOC_Close
|
||||
.public SOC_GetHostByName
|
||||
.public SOC_Fcntl
|
||||
.public SOC_InetNtoA
|
||||
.public ov61_0222D040
|
||||
.public ov61_0222D4C8
|
||||
.public ov61_0222D4DC
|
||||
.public ov61_0222D540
|
||||
.public ov61_0222D5A0
|
||||
.public ov61_0222D638
|
||||
.public ov61_0222DB8C
|
||||
.public ov61_0222E110
|
||||
|
|
@ -1 +0,0 @@
|
|||
.public ov61_0222E2A8
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
.macro arm_func_start name
|
||||
.balign 4, 0
|
||||
.global \name
|
||||
.type \name, @function
|
||||
.arm
|
||||
.endm
|
||||
|
||||
.macro arm_func_end name
|
||||
.size \name, .-\name
|
||||
.endm
|
||||
|
||||
.macro thumb_func_start name
|
||||
.balign 4, 0
|
||||
.global \name
|
||||
.type \name, @function
|
||||
.thumb
|
||||
.endm
|
||||
|
||||
.macro non_word_aligned_thumb_func_start name
|
||||
.global \name
|
||||
.type \name, @function
|
||||
.thumb
|
||||
.endm
|
||||
|
||||
.macro thumb_func_end name
|
||||
.size \name, .-\name
|
||||
.endm
|
||||
|
|
@ -1,456 +0,0 @@
|
|||
.include "macros/function.inc"
|
||||
.include "include/ov61_0222CEDC.inc"
|
||||
|
||||
.extern Unk_ov61_0222E764
|
||||
|
||||
.text
|
||||
|
||||
|
||||
arm_func_start ov61_0222CEDC
|
||||
ov61_0222CEDC: ; 0x0222CEDC
|
||||
stmfd sp!, {r3, lr}
|
||||
bl ov61_0222CFD4
|
||||
mov r0, #0
|
||||
ldr lr, _0222CF38 ; =0x0222E764
|
||||
mov r1, r0
|
||||
mov r2, r0
|
||||
mov r3, r0
|
||||
mov ip, #9
|
||||
_0222CEFC:
|
||||
stmia lr!, {r0, r1, r2, r3}
|
||||
stmia lr!, {r0, r1, r2, r3}
|
||||
subs ip, ip, #1
|
||||
bne _0222CEFC
|
||||
stmia lr!, {r0, r1, r2, r3}
|
||||
stmia lr, {r0, r1}
|
||||
ldr r1, _0222CF38 ; =0x0222E764
|
||||
mov r2, #0
|
||||
str r2, [r1, #0x138]
|
||||
ldr r0, _0222CF3C ; =0x0222E964
|
||||
strb r2, [r1, #0x140]
|
||||
strh r2, [r0, #0x40]
|
||||
bl ov61_0222D508
|
||||
bl ov61_0222D53C
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222CF38: .word Unk_ov61_0222E764
|
||||
_0222CF3C: .word Unk_ov61_0222E764 + 0x200
|
||||
arm_func_end ov61_0222CEDC
|
||||
|
||||
arm_func_start ov61_0222CF40
|
||||
ov61_0222CF40: ; 0x0222CF40
|
||||
stmfd sp!, {r4, r5, r6, lr}
|
||||
movs r5, r2
|
||||
mov r6, r0
|
||||
mov r4, r1
|
||||
beq _0222CF80
|
||||
ldr lr, _0222CFC8 ; =0x0222E764
|
||||
mov ip, #0x13
|
||||
_0222CF5C:
|
||||
ldmia r5!, {r0, r1, r2, r3}
|
||||
stmia lr!, {r0, r1, r2, r3}
|
||||
subs ip, ip, #1
|
||||
bne _0222CF5C
|
||||
ldmia r5, {r0, r1}
|
||||
stmia lr, {r0, r1}
|
||||
ldr r0, _0222CFC8 ; =0x0222E764
|
||||
mov r1, #0
|
||||
str r1, [r0, #0x138]
|
||||
_0222CF80:
|
||||
bl ov61_0222D510
|
||||
cmp r0, #0
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r4, r5, r6, pc}
|
||||
bl ov61_0222D4F0
|
||||
ldr r0, _0222CFCC ; =0x0222E8A4
|
||||
mov r1, r6
|
||||
bl strcpy
|
||||
ldr r1, _0222CFD0 ; =0x0222E964
|
||||
mov r2, #0
|
||||
ldr r0, _0222CFC8 ; =0x0222E764
|
||||
strh r4, [r1, #0x40]
|
||||
str r2, [r0, #0x258]
|
||||
sub r1, r2, #1
|
||||
str r1, [r0, #0x26c]
|
||||
bl ov61_0222CFD4
|
||||
mov r0, #1
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
; .align 2, 0
|
||||
_0222CFC8: .word Unk_ov61_0222E764
|
||||
_0222CFCC: .word Unk_ov61_0222E764 + 0x140
|
||||
_0222CFD0: .word Unk_ov61_0222E764 + 0x200
|
||||
arm_func_end ov61_0222CF40
|
||||
|
||||
arm_func_start ov61_0222CFD4
|
||||
ov61_0222CFD4: ; 0x0222CFD4
|
||||
stmfd sp!, {r3, lr}
|
||||
bl ov61_0222D770
|
||||
ldr r0, _0222D03C ; =0x0222E764
|
||||
ldr r0, [r0, #0x258]
|
||||
cmp r0, #0
|
||||
beq _0222CFFC
|
||||
bl ov61_0222D4AC
|
||||
ldr r0, _0222D03C ; =0x0222E764
|
||||
mov r1, #0
|
||||
str r1, [r0, #0x258]
|
||||
_0222CFFC:
|
||||
ldr r0, _0222D03C ; =0x0222E764
|
||||
mov r1, #0xf
|
||||
str r1, [r0, #0x244]
|
||||
mov r1, #0x1e
|
||||
str r1, [r0, #0x248]
|
||||
str r1, [r0, #0x24c]
|
||||
mov r2, #0
|
||||
str r2, [r0, #0x254]
|
||||
str r2, [r0, #0x25c]
|
||||
str r2, [r0, #0x260]
|
||||
str r2, [r0, #0x264]
|
||||
str r2, [r0, #0x268]
|
||||
mov r1, #1
|
||||
str r1, [r0, #0x13c]
|
||||
str r2, [r0, #0x250]
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222D03C: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222CFD4
|
||||
|
||||
arm_func_start ov61_0222D040
|
||||
ov61_0222D040: ; 0x0222D040
|
||||
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov r5, #0
|
||||
ldr r4, _0222D1F8 ; =0x0222E764
|
||||
mov fp, #9
|
||||
mov sl, #7
|
||||
mov r6, #1
|
||||
mov r7, r5
|
||||
_0222D05C:
|
||||
ldr r0, [r4, #0x13c]
|
||||
mov r8, r7
|
||||
cmp r0, #9
|
||||
addls pc, pc, r0, lsl #2
|
||||
b _0222D1B4
|
||||
_0222D070: ; jump table
|
||||
b _0222D098 ; case 0
|
||||
b _0222D098 ; case 1
|
||||
b _0222D0A0 ; case 2
|
||||
b _0222D0D4 ; case 3
|
||||
b _0222D108 ; case 4
|
||||
b _0222D13C ; case 5
|
||||
b _0222D184 ; case 6
|
||||
b _0222D098 ; case 7
|
||||
b _0222D098 ; case 8
|
||||
b _0222D098 ; case 9
|
||||
_0222D098:
|
||||
mov r8, r6
|
||||
b _0222D1B4
|
||||
_0222D0A0:
|
||||
bl ov61_0222DB98
|
||||
cmp r0, #0
|
||||
bne _0222D0C4
|
||||
ldr r0, [r4, #0x250]
|
||||
mov r8, #1
|
||||
cmp r0, #0xd
|
||||
moveq sb, sl
|
||||
movne sb, fp
|
||||
b _0222D0C8
|
||||
_0222D0C4:
|
||||
mov sb, #3
|
||||
_0222D0C8:
|
||||
bl ov61_0222D4C8
|
||||
str sb, [r4, #0x13c]
|
||||
b _0222D1B4
|
||||
_0222D0D4:
|
||||
bl ov61_0222D6A0
|
||||
cmp r0, #0
|
||||
bne _0222D0F8
|
||||
ldr r0, [r4, #0x250]
|
||||
mov r8, #1
|
||||
cmp r0, #0xd
|
||||
moveq sb, #7
|
||||
movne sb, #9
|
||||
b _0222D0FC
|
||||
_0222D0F8:
|
||||
mov sb, #4
|
||||
_0222D0FC:
|
||||
bl ov61_0222D4C8
|
||||
str sb, [r4, #0x13c]
|
||||
b _0222D1B4
|
||||
_0222D108:
|
||||
bl ov61_0222D7B0
|
||||
cmp r0, #0
|
||||
bne _0222D12C
|
||||
ldr r0, [r4, #0x250]
|
||||
mov r8, #1
|
||||
cmp r0, #0xd
|
||||
moveq sb, #7
|
||||
movne sb, #9
|
||||
b _0222D130
|
||||
_0222D12C:
|
||||
mov sb, #5
|
||||
_0222D130:
|
||||
bl ov61_0222D4C8
|
||||
str sb, [r4, #0x13c]
|
||||
b _0222D1B4
|
||||
_0222D13C:
|
||||
bl ov61_0222D8F8
|
||||
cmp r0, #0
|
||||
bne _0222D160
|
||||
ldr r0, [r4, #0x250]
|
||||
mov r8, #1
|
||||
cmp r0, #0xd
|
||||
moveq sb, #7
|
||||
movne sb, #9
|
||||
b _0222D164
|
||||
_0222D160:
|
||||
mov sb, #6
|
||||
_0222D164:
|
||||
ldr r0, [r4, #0x258]
|
||||
cmp r0, #0
|
||||
beq _0222D178
|
||||
bl ov61_0222D4AC
|
||||
str r5, [r4, #0x258]
|
||||
_0222D178:
|
||||
bl ov61_0222D4C8
|
||||
str sb, [r4, #0x13c]
|
||||
b _0222D1B4
|
||||
_0222D184:
|
||||
bl ov61_0222DA0C
|
||||
cmp r0, #0
|
||||
bne _0222D1A4
|
||||
ldr r0, [r4, #0x250]
|
||||
cmp r0, #0xd
|
||||
moveq sb, #7
|
||||
movne sb, #9
|
||||
b _0222D1A8
|
||||
_0222D1A4:
|
||||
mov sb, #8
|
||||
_0222D1A8:
|
||||
mov r8, #1
|
||||
bl ov61_0222D4C8
|
||||
str sb, [r4, #0x13c]
|
||||
_0222D1B4:
|
||||
cmp r8, #0
|
||||
bne _0222D1F0
|
||||
ldr r0, [r4, #0x268]
|
||||
cmp r0, #1
|
||||
bne _0222D1E0
|
||||
ldr r0, _0222D1F8 ; =0x0222E764
|
||||
mov r1, #7
|
||||
str r1, [r0, #0x13c]
|
||||
mov r1, #0xd
|
||||
str r1, [r0, #0x250]
|
||||
b _0222D1F0
|
||||
_0222D1E0:
|
||||
bl ov61_0222D4DC
|
||||
mov r0, #1
|
||||
bl ov61_0222DB8C
|
||||
b _0222D05C
|
||||
_0222D1F0:
|
||||
bl ov61_0222D4DC
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
; .align 2, 0
|
||||
_0222D1F8: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222D040
|
||||
|
||||
arm_func_start ov61_0222D1FC
|
||||
ov61_0222D1FC: ; 0x0222D1FC
|
||||
stmfd sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r7, r0
|
||||
mov r6, r1
|
||||
mov r5, r2
|
||||
mov r4, r3
|
||||
bl ov61_0222D4C8
|
||||
ldr r0, _0222D3E4 ; =0x0222E764
|
||||
ldr r0, [r0, #0x13c]
|
||||
cmp r0, #9
|
||||
addls pc, pc, r0, lsl #2
|
||||
b _0222D274
|
||||
_0222D228: ; jump table
|
||||
b _0222D250 ; case 0
|
||||
b _0222D274 ; case 1
|
||||
b _0222D250 ; case 2
|
||||
b _0222D250 ; case 3
|
||||
b _0222D250 ; case 4
|
||||
b _0222D250 ; case 5
|
||||
b _0222D250 ; case 6
|
||||
b _0222D270 ; case 7
|
||||
b _0222D270 ; case 8
|
||||
b _0222D270 ; case 9
|
||||
_0222D250:
|
||||
bl ov61_0222D4DC
|
||||
ldr r0, _0222D3E4 ; =0x0222E764
|
||||
mov r1, #9
|
||||
str r1, [r0, #0x13c]
|
||||
mov r1, #1
|
||||
str r1, [r0, #0x250]
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0222D270:
|
||||
bl ov61_0222CFD4
|
||||
_0222D274:
|
||||
bl ov61_0222D4DC
|
||||
mov r0, r7
|
||||
bl ov61_0222E2A8
|
||||
ldr r2, _0222D3E4 ; =0x0222E764
|
||||
mvn r1, #0
|
||||
str r0, [r2, #0x25c]
|
||||
cmp r0, r1
|
||||
bne _0222D2AC
|
||||
mov r0, #9
|
||||
str r0, [r2, #0x13c]
|
||||
mov r0, #2
|
||||
str r0, [r2, #0x250]
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0222D2AC:
|
||||
cmp r4, r1
|
||||
str r5, [r2, #0x260]
|
||||
addne r0, r4, #0x140
|
||||
strne r0, [sp]
|
||||
bne _0222D2F4
|
||||
mov r0, r7
|
||||
bl ov61_0222E168
|
||||
mvn r1, #0
|
||||
str r0, [sp]
|
||||
cmp r0, r1
|
||||
bne _0222D2F4
|
||||
ldr r0, _0222D3E4 ; =0x0222E764
|
||||
mov r1, #9
|
||||
str r1, [r0, #0x13c]
|
||||
mov r1, #2
|
||||
str r1, [r0, #0x250]
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0222D2F4:
|
||||
ldr r0, [sp]
|
||||
bl ov61_0222D498
|
||||
ldr ip, _0222D3E4 ; =0x0222E764
|
||||
cmp r0, #0
|
||||
str r0, [ip, #0x258]
|
||||
moveq r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
ldr r1, [sp]
|
||||
add r3, sp, #0
|
||||
str r1, [ip, #0x254]
|
||||
ldrb r2, [r3]
|
||||
ldrb r1, [r3, #1]
|
||||
mov r4, #0x13
|
||||
strb r2, [r0]
|
||||
strb r1, [r0, #1]
|
||||
ldrb r2, [r3, #2]
|
||||
ldrb r1, [r3, #3]
|
||||
strb r2, [r0, #2]
|
||||
strb r1, [r0, #3]
|
||||
ldr lr, [ip, #0x258]
|
||||
strh r7, [lr, #4]
|
||||
add r5, lr, #8
|
||||
_0222D34C:
|
||||
ldmia ip!, {r0, r1, r2, r3}
|
||||
stmia r5!, {r0, r1, r2, r3}
|
||||
subs r4, r4, #1
|
||||
bne _0222D34C
|
||||
ldmia ip, {r0, r1}
|
||||
stmia r5, {r0, r1}
|
||||
mov r0, #0
|
||||
strh r0, [lr, #6]
|
||||
ldr r2, [sp]
|
||||
mov r1, r6
|
||||
add r0, lr, #0x140
|
||||
sub r2, r2, #0x140
|
||||
bl memcpy
|
||||
ldr r0, _0222D3E4 ; =0x0222E764
|
||||
ldr r2, [r0, #0x258]
|
||||
ldr r1, [r0, #0x254]
|
||||
add r0, r2, #4
|
||||
sub r1, r1, #4
|
||||
add r2, r2, #4
|
||||
bl ov61_0222E0B8
|
||||
ldr r0, _0222D3E4 ; =0x0222E764
|
||||
mov r1, #2
|
||||
str r1, [r0, #0x13c]
|
||||
bl ov61_0222D4C8
|
||||
bl ov61_0222D54C
|
||||
cmp r0, #0
|
||||
bne _0222D3D8
|
||||
ldr r0, _0222D3E4 ; =0x0222E764
|
||||
mov r1, #9
|
||||
str r1, [r0, #0x13c]
|
||||
mov r1, #6
|
||||
str r1, [r0, #0x250]
|
||||
bl ov61_0222D4DC
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0222D3D8:
|
||||
bl ov61_0222D4DC
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_0222D3E4: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222D1FC
|
||||
|
||||
arm_func_start ov61_0222D3E8
|
||||
ov61_0222D3E8: ; 0x0222D3E8
|
||||
ldr r0, _0222D3F4 ; =0x0222E764
|
||||
ldr r0, [r0, #0x13c]
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
_0222D3F4: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222D3E8
|
||||
|
||||
arm_func_start ov61_0222D3F8
|
||||
ov61_0222D3F8: ; 0x0222D3F8
|
||||
stmfd sp!, {r3, lr}
|
||||
bl ov61_0222D4C8
|
||||
bl ov61_0222D3E8
|
||||
cmp r0, #8
|
||||
beq _0222D418
|
||||
bl ov61_0222D4DC
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
_0222D418:
|
||||
bl ov61_0222D4DC
|
||||
ldr r0, _0222D42C ; =0x0222E764
|
||||
ldr r0, [r0, #0x260]
|
||||
add r0, r0, #4
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222D42C: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222D3F8
|
||||
|
||||
arm_func_start ov61_0222D430
|
||||
ov61_0222D430: ; 0x0222D430
|
||||
stmfd sp!, {r3, lr}
|
||||
bl ov61_0222D4C8
|
||||
bl ov61_0222D3E8
|
||||
cmp r0, #8
|
||||
beq _0222D450
|
||||
bl ov61_0222D4DC
|
||||
mvn r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
_0222D450:
|
||||
bl ov61_0222D4DC
|
||||
ldr r0, _0222D460 ; =0x0222E764
|
||||
ldr r0, [r0, #0x25c]
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222D460: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222D430
|
||||
|
||||
arm_func_start ov61_0222D464
|
||||
ov61_0222D464: ; 0x0222D464
|
||||
stmfd sp!, {r3, lr}
|
||||
bl ov61_0222D4C8
|
||||
bl ov61_0222D3E8
|
||||
cmp r0, #9
|
||||
beq _0222D484
|
||||
bl ov61_0222D4DC
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
_0222D484:
|
||||
bl ov61_0222D4DC
|
||||
ldr r0, _0222D494 ; =0x0222E764
|
||||
ldr r0, [r0, #0x250]
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222D494: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222D464
|
||||
|
|
@ -1,682 +0,0 @@
|
|||
.include "macros/function.inc"
|
||||
.include "include/ov61_0222D498.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
arm_func_start ov61_0222D498
|
||||
ov61_0222D498: ; 0x0222D498
|
||||
ldr ip, _0222D4A8 ; =DWC_Alloc
|
||||
mov r1, r0
|
||||
mov r0, #0
|
||||
bx ip
|
||||
; .align 2, 0
|
||||
_0222D4A8: .word DWC_Alloc
|
||||
arm_func_end ov61_0222D498
|
||||
|
||||
arm_func_start ov61_0222D4AC
|
||||
ov61_0222D4AC: ; 0x0222D4AC
|
||||
stmfd sp!, {r3, lr}
|
||||
movs r1, r0
|
||||
ldmeqia sp!, {r3, pc}
|
||||
mov r0, #0
|
||||
mov r2, r0
|
||||
bl DWC_Free
|
||||
ldmia sp!, {r3, pc}
|
||||
arm_func_end ov61_0222D4AC
|
||||
|
||||
arm_func_start ov61_0222D4C8
|
||||
ov61_0222D4C8: ; 0x0222D4C8
|
||||
ldr ip, _0222D4D4 ; =OS_LockMutex
|
||||
ldr r0, _0222D4D8 ; =0x0222EA98
|
||||
bx ip
|
||||
; .align 2, 0
|
||||
_0222D4D4: .word OS_LockMutex
|
||||
_0222D4D8: .word Unk_ov61_0222E764 + 0x334
|
||||
arm_func_end ov61_0222D4C8
|
||||
|
||||
arm_func_start ov61_0222D4DC
|
||||
ov61_0222D4DC: ; 0x0222D4DC
|
||||
ldr ip, _0222D4E8 ; =OS_UnlockMutex
|
||||
ldr r0, _0222D4EC ; =0x0222EA98
|
||||
bx ip
|
||||
; .align 2, 0
|
||||
_0222D4E8: .word OS_UnlockMutex
|
||||
_0222D4EC: .word Unk_ov61_0222E764 + 0x334
|
||||
arm_func_end ov61_0222D4DC
|
||||
|
||||
arm_func_start ov61_0222D4F0
|
||||
ov61_0222D4F0: ; 0x0222D4F0
|
||||
stmfd sp!, {r3, lr}
|
||||
ldr r0, _0222D504 ; =0x0222EA98
|
||||
bl OS_InitMutex
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222D504: .word Unk_ov61_0222E764 + 0x334
|
||||
arm_func_end ov61_0222D4F0
|
||||
|
||||
arm_func_start ov61_0222D508
|
||||
ov61_0222D508: ; 0x0222D508
|
||||
mov r0, #1
|
||||
bx lr
|
||||
arm_func_end ov61_0222D508
|
||||
|
||||
arm_func_start ov61_0222D510
|
||||
ov61_0222D510: ; 0x0222D510
|
||||
stmfd sp!, {r3, lr}
|
||||
bl OS_IsTickAvailable
|
||||
cmp r0, #0
|
||||
bne _0222D524
|
||||
bl OS_InitTick
|
||||
_0222D524:
|
||||
ldr r0, _0222D538 ; =0x0222E764
|
||||
mov r1, #0x10
|
||||
str r1, [r0, #0x270]
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222D538: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222D510
|
||||
|
||||
arm_func_start ov61_0222D53C
|
||||
ov61_0222D53C: ; 0x0222D53C
|
||||
bx lr
|
||||
arm_func_end ov61_0222D53C
|
||||
|
||||
arm_func_start ov61_0222D540
|
||||
ov61_0222D540: ; 0x0222D540
|
||||
ldr ip, _0222D548 ; =ov61_0222D040
|
||||
bx ip
|
||||
; .align 2, 0
|
||||
_0222D548: .word ov61_0222D040
|
||||
arm_func_end ov61_0222D540
|
||||
|
||||
arm_func_start ov61_0222D54C
|
||||
ov61_0222D54C: ; 0x0222D54C
|
||||
stmfd sp!, {r3, lr}
|
||||
sub sp, sp, #8
|
||||
mov r1, #0x800
|
||||
ldr r0, _0222D590 ; =0x0222E764
|
||||
str r1, [sp]
|
||||
ldr ip, [r0, #0x270]
|
||||
ldr r0, _0222D594 ; =0x0222E9D8
|
||||
ldr r1, _0222D598 ; =ov61_0222D540
|
||||
ldr r3, _0222D59C ; =0x0222F2B0
|
||||
mov r2, #0
|
||||
str ip, [sp, #4]
|
||||
bl OS_CreateThread
|
||||
ldr r0, _0222D594 ; =0x0222E9D8
|
||||
bl OS_WakeupThreadDirect
|
||||
mov r0, #1
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222D590: .word Unk_ov61_0222E764
|
||||
_0222D594: .word Unk_ov61_0222E764 + 0x274
|
||||
_0222D598: .word ov61_0222D540
|
||||
_0222D59C: .word Unk_ov61_0222EAB0 + 0x800
|
||||
arm_func_end ov61_0222D54C
|
||||
|
||||
arm_func_start ov61_0222D5A0
|
||||
ov61_0222D5A0: ; 0x0222D5A0
|
||||
ldrsb ip, [r0]
|
||||
mov r2, #0
|
||||
mov r3, r2
|
||||
cmp ip, #0
|
||||
beq _0222D61C
|
||||
mov r1, r2
|
||||
_0222D5B8:
|
||||
cmp ip, #0x30
|
||||
blt _0222D5DC
|
||||
cmp ip, #0x39
|
||||
bgt _0222D5DC
|
||||
add r2, r2, #1
|
||||
cmp r2, #4
|
||||
blt _0222D610
|
||||
mov r0, #0
|
||||
bx lr
|
||||
_0222D5DC:
|
||||
cmp ip, #0x2e
|
||||
bne _0222D608
|
||||
cmp r2, #0
|
||||
moveq r0, #0
|
||||
bxeq lr
|
||||
add r3, r3, #1
|
||||
mov r2, r1
|
||||
cmp r3, #4
|
||||
blt _0222D610
|
||||
mov r0, r1
|
||||
bx lr
|
||||
_0222D608:
|
||||
mov r0, #0
|
||||
bx lr
|
||||
_0222D610:
|
||||
ldrsb ip, [r0, #1]!
|
||||
cmp ip, #0
|
||||
bne _0222D5B8
|
||||
_0222D61C:
|
||||
cmp r3, #3
|
||||
bne _0222D630
|
||||
cmp r2, #0
|
||||
movne r0, #1
|
||||
bxne lr
|
||||
_0222D630:
|
||||
mov r0, #0
|
||||
bx lr
|
||||
arm_func_end ov61_0222D5A0
|
||||
|
||||
arm_func_start ov61_0222D638
|
||||
ov61_0222D638: ; 0x0222D638
|
||||
stmfd sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
mov r4, r1
|
||||
bl ov61_0222D5A0
|
||||
cmp r0, #0
|
||||
bne _0222D68C
|
||||
mov r0, r5
|
||||
bl SOC_GetHostByName
|
||||
cmp r0, #0
|
||||
beq _0222D684
|
||||
ldr r0, [r0, #0xc]
|
||||
ldr r0, [r0, #0]
|
||||
ldr r0, [r0, #0]
|
||||
str r0, [sp]
|
||||
bl SOC_InetNtoA
|
||||
mov r1, r0
|
||||
mov r0, r4
|
||||
bl strcpy
|
||||
b _0222D698
|
||||
_0222D684:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
_0222D68C:
|
||||
mov r0, r4
|
||||
mov r1, r5
|
||||
bl strcpy
|
||||
_0222D698:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end ov61_0222D638
|
||||
|
||||
arm_func_start ov61_0222D6A0
|
||||
ov61_0222D6A0: ; 0x0222D6A0
|
||||
stmfd sp!, {r3, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r0, #2
|
||||
mov r1, #1
|
||||
mov r2, #0
|
||||
bl SOC_Socket
|
||||
ldr r2, _0222D768 ; =0x0222E764
|
||||
mvn r1, #0
|
||||
str r0, [r2, #0x26c]
|
||||
cmp r0, r1
|
||||
bne _0222D6E0
|
||||
mov r0, #3
|
||||
str r0, [r2, #0x250]
|
||||
add sp, sp, #0x10
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
_0222D6E0:
|
||||
mov r1, #3
|
||||
mov r2, #0
|
||||
bl SOC_Fcntl
|
||||
ldr r1, _0222D768 ; =0x0222E764
|
||||
orr r2, r0, #4
|
||||
ldr r0, [r1, #0x26c]
|
||||
mov r1, #4
|
||||
bl SOC_Fcntl
|
||||
cmp r0, #0
|
||||
bge _0222D720
|
||||
ldr r0, _0222D768 ; =0x0222E764
|
||||
mov r1, #4
|
||||
str r1, [r0, #0x250]
|
||||
add sp, sp, #0x10
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
_0222D720:
|
||||
ldr r0, _0222D76C ; =0x0222E8A4
|
||||
add r1, sp, #0
|
||||
bl ov61_0222D638
|
||||
cmp r0, #0
|
||||
bne _0222D74C
|
||||
ldr r0, _0222D768 ; =0x0222E764
|
||||
mov r1, #5
|
||||
str r1, [r0, #0x250]
|
||||
add sp, sp, #0x10
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
_0222D74C:
|
||||
add r0, sp, #0
|
||||
bl inet_addr
|
||||
ldr r1, _0222D768 ; =0x0222E764
|
||||
str r0, [r1, #0x264]
|
||||
mov r0, #1
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222D768: .word Unk_ov61_0222E764
|
||||
_0222D76C: .word Unk_ov61_0222E764 + 0x140
|
||||
arm_func_end ov61_0222D6A0
|
||||
|
||||
arm_func_start ov61_0222D770
|
||||
ov61_0222D770: ; 0x0222D770
|
||||
stmfd sp!, {r3, lr}
|
||||
ldr r0, _0222D7AC ; =0x0222E764
|
||||
mvn r1, #0
|
||||
ldr r0, [r0, #0x26c]
|
||||
cmp r0, r1
|
||||
ldmeqia sp!, {r3, pc}
|
||||
mov r1, #2
|
||||
bl SOC_Shutdown
|
||||
ldr r0, _0222D7AC ; =0x0222E764
|
||||
ldr r0, [r0, #0x26c]
|
||||
bl SOC_Close
|
||||
ldr r0, _0222D7AC ; =0x0222E764
|
||||
mvn r1, #0
|
||||
str r1, [r0, #0x26c]
|
||||
ldmia sp!, {r3, pc}
|
||||
; .align 2, 0
|
||||
_0222D7AC: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222D770
|
||||
|
||||
arm_func_start ov61_0222D7B0
|
||||
ov61_0222D7B0: ; 0x0222D7B0
|
||||
stmfd sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
|
||||
sub sp, sp, #8
|
||||
mov r2, #8
|
||||
mov r1, #2
|
||||
ldr r0, _0222D8EC ; =0x0222E964
|
||||
strb r2, [sp]
|
||||
strb r1, [sp, #1]
|
||||
ldrh r1, [r0, #0x40]
|
||||
ldr r0, _0222D8F0 ; =0x0222E764
|
||||
mov r2, r1, asr #8
|
||||
mov r1, r1, lsl #8
|
||||
and r2, r2, #0xff
|
||||
and r1, r1, #0xff00
|
||||
orr r1, r2, r1
|
||||
strh r1, [sp, #2]
|
||||
ldr r0, [r0, #0x264]
|
||||
str r0, [sp, #4]
|
||||
bl OS_GetTick
|
||||
ldr r2, _0222D8F4 ; =0x0007FD88
|
||||
mov r3, #0
|
||||
bl _ull_div
|
||||
ldr r5, _0222D8F4 ; =0x0007FD88
|
||||
ldr sb, _0222D8F0 ; =0x0222E764
|
||||
mov r7, r0
|
||||
mov r4, #0
|
||||
mov sl, #1
|
||||
add r6, sp, #0
|
||||
mvn r8, #0x19
|
||||
_0222D820:
|
||||
ldr r0, [sb, #0x26c]
|
||||
mov r1, r6
|
||||
bl SOC_Connect
|
||||
cmp r0, #0
|
||||
bge _0222D8E0
|
||||
cmp r0, r8
|
||||
bne _0222D880
|
||||
ldr r0, [sb, #0x244]
|
||||
cmp r0, #0
|
||||
beq _0222D8A4
|
||||
bl OS_GetTick
|
||||
mov r2, r5
|
||||
mov r3, r4
|
||||
bl _ull_div
|
||||
ldr r1, [sb, #0x244]
|
||||
subs r0, r0, r7
|
||||
cmp r0, r1
|
||||
blt _0222D8A4
|
||||
ldr r0, _0222D8F0 ; =0x0222E764
|
||||
mov r1, #0xa
|
||||
str r1, [r0, #0x250]
|
||||
add sp, sp, #8
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
_0222D880:
|
||||
mvn r1, #0x1d
|
||||
cmp r0, r1
|
||||
beq _0222D8E0
|
||||
ldr r0, _0222D8F0 ; =0x0222E764
|
||||
mov r1, #7
|
||||
str r1, [r0, #0x250]
|
||||
add sp, sp, #8
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
_0222D8A4:
|
||||
bl ov61_0222D4C8
|
||||
ldr r0, [sb, #0x268]
|
||||
cmp r0, #1
|
||||
bne _0222D8D0
|
||||
ldr r0, _0222D8F0 ; =0x0222E764
|
||||
mov r1, #0xd
|
||||
str r1, [r0, #0x250]
|
||||
bl ov61_0222D4DC
|
||||
add sp, sp, #8
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
_0222D8D0:
|
||||
bl ov61_0222D4DC
|
||||
mov r0, sl
|
||||
bl ov61_0222DB8C
|
||||
b _0222D820
|
||||
_0222D8E0:
|
||||
mov r0, #1
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
; .align 2, 0
|
||||
_0222D8EC: .word Unk_ov61_0222E764 + 0x200
|
||||
_0222D8F0: .word Unk_ov61_0222E764
|
||||
_0222D8F4: .word 0x0007FD88
|
||||
arm_func_end ov61_0222D7B0
|
||||
|
||||
arm_func_start ov61_0222D8F8
|
||||
ov61_0222D8F8: ; 0x0222D8F8
|
||||
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov sb, #0
|
||||
bl OS_GetTick
|
||||
ldr r2, _0222DA04 ; =0x0007FD88
|
||||
mov r3, sb
|
||||
bl _ull_div
|
||||
ldr r7, _0222DA04 ; =0x0007FD88
|
||||
ldr r5, _0222DA08 ; =0x0222E764
|
||||
mov sl, r0
|
||||
mov r8, sb
|
||||
mov r6, sb
|
||||
mov fp, #1
|
||||
mvn r4, #5
|
||||
_0222D92C:
|
||||
ldr r0, [r5, #0x254]
|
||||
ldr r1, [r5, #0x258]
|
||||
sub r2, r0, sb
|
||||
cmp r2, r0
|
||||
movgt r2, r0
|
||||
ldr r0, [r5, #0x26c]
|
||||
mov r3, r8
|
||||
add r1, r1, sb
|
||||
bl SOC_Send
|
||||
cmp r0, r4
|
||||
beq _0222D984
|
||||
cmp r0, #0
|
||||
bge _0222D974
|
||||
ldr r0, _0222DA08 ; =0x0222E764
|
||||
mov r1, #0xb
|
||||
str r1, [r0, #0x250]
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_0222D974:
|
||||
ldr r1, [r5, #0x254]
|
||||
add sb, sb, r0
|
||||
cmp sb, r1
|
||||
beq _0222D9FC
|
||||
_0222D984:
|
||||
ldr r0, [r5, #0x248]
|
||||
cmp r0, #0
|
||||
beq _0222D9C4
|
||||
bl OS_GetTick
|
||||
mov r2, r7
|
||||
mov r3, r6
|
||||
bl _ull_div
|
||||
ldr r1, [r5, #0x248]
|
||||
subs r0, r0, sl
|
||||
cmp r0, r1
|
||||
blt _0222D9C4
|
||||
ldr r0, _0222DA08 ; =0x0222E764
|
||||
mov r1, #0xb
|
||||
str r1, [r0, #0x250]
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_0222D9C4:
|
||||
bl ov61_0222D4C8
|
||||
ldr r0, [r5, #0x268]
|
||||
cmp r0, #1
|
||||
bne _0222D9EC
|
||||
ldr r0, _0222DA08 ; =0x0222E764
|
||||
mov r1, #0xd
|
||||
str r1, [r0, #0x250]
|
||||
bl ov61_0222D4DC
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_0222D9EC:
|
||||
bl ov61_0222D4DC
|
||||
mov r0, fp
|
||||
bl ov61_0222DB8C
|
||||
b _0222D92C
|
||||
_0222D9FC:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
; .align 2, 0
|
||||
_0222DA04: .word 0x0007FD88
|
||||
_0222DA08: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222D8F8
|
||||
|
||||
arm_func_start ov61_0222DA0C
|
||||
ov61_0222DA0C: ; 0x0222DA0C
|
||||
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
mov sl, #0
|
||||
sub r0, sl, #1
|
||||
str r0, [sp]
|
||||
bl OS_GetTick
|
||||
ldr r2, _0222DB84 ; =0x0007FD88
|
||||
mov r3, sl
|
||||
bl _ull_div
|
||||
mvn r4, #0
|
||||
ldr fp, _0222DB84 ; =0x0007FD88
|
||||
ldr r6, _0222DB88 ; =0x0222E764
|
||||
mov sb, r0
|
||||
sub r5, r4, #5
|
||||
add r7, sp, #0
|
||||
mov r8, sl
|
||||
_0222DA48:
|
||||
ldr r1, [r6, #0x260]
|
||||
ldr r2, [r6, #0x25c]
|
||||
ldr r0, [r6, #0x26c]
|
||||
mov r3, r8
|
||||
add r1, r1, sl
|
||||
sub r2, r2, sl
|
||||
bl SOC_Recv
|
||||
cmp r0, r5
|
||||
beq _0222DB04
|
||||
cmp r0, #0
|
||||
bgt _0222DA88
|
||||
ldr r0, _0222DB88 ; =0x0222E764
|
||||
mov r1, #9
|
||||
str r1, [r0, #0x250]
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_0222DA88:
|
||||
add sl, sl, r0
|
||||
cmp sl, #4
|
||||
blo _0222DAC4
|
||||
ldr r0, [sp]
|
||||
cmp r0, r4
|
||||
bne _0222DAC4
|
||||
ldr r2, [r6, #0x260]
|
||||
ldrb r1, [r2]
|
||||
ldrb r0, [r2, #1]
|
||||
strb r1, [r7]
|
||||
strb r0, [r7, #1]
|
||||
ldrb r1, [r2, #2]
|
||||
ldrb r0, [r2, #3]
|
||||
strb r1, [r7, #2]
|
||||
strb r0, [r7, #3]
|
||||
_0222DAC4:
|
||||
ldr r0, [sp]
|
||||
cmp sl, r0
|
||||
bne _0222DB04
|
||||
cmp r0, r4
|
||||
beq _0222DB04
|
||||
ldr r0, _0222DB88 ; =0x0222E764
|
||||
sub r1, sl, #4
|
||||
ldr r2, [r0, #0x260]
|
||||
add r0, r2, #4
|
||||
add r2, r2, #4
|
||||
bl ov61_0222E110
|
||||
ldr r1, [sp]
|
||||
ldr r0, _0222DB88 ; =0x0222E764
|
||||
sub r1, r1, #4
|
||||
str r1, [r0, #0x25c]
|
||||
b _0222DB7C
|
||||
_0222DB04:
|
||||
ldr r0, [r6, #0x24c]
|
||||
cmp r0, #0
|
||||
beq _0222DB44
|
||||
bl OS_GetTick
|
||||
mov r2, fp
|
||||
mov r3, #0
|
||||
bl _ull_div
|
||||
ldr r1, [r6, #0x24c]
|
||||
subs r0, r0, sb
|
||||
cmp r0, r1
|
||||
blt _0222DB44
|
||||
ldr r0, _0222DB88 ; =0x0222E764
|
||||
mov r1, #0xc
|
||||
str r1, [r0, #0x250]
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_0222DB44:
|
||||
bl ov61_0222D4C8
|
||||
ldr r0, [r6, #0x268]
|
||||
cmp r0, #1
|
||||
bne _0222DB6C
|
||||
ldr r0, _0222DB88 ; =0x0222E764
|
||||
mov r1, #0xd
|
||||
str r1, [r0, #0x250]
|
||||
bl ov61_0222D4DC
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
_0222DB6C:
|
||||
bl ov61_0222D4DC
|
||||
mov r0, #1
|
||||
bl ov61_0222DB8C
|
||||
b _0222DA48
|
||||
_0222DB7C:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
; .align 2, 0
|
||||
_0222DB84: .word 0x0007FD88
|
||||
_0222DB88: .word Unk_ov61_0222E764
|
||||
arm_func_end ov61_0222DA0C
|
||||
|
||||
arm_func_start ov61_0222DB8C
|
||||
ov61_0222DB8C: ; 0x0222DB8C
|
||||
ldr ip, _0222DB94 ; =OS_Sleep
|
||||
bx ip
|
||||
; .align 2, 0
|
||||
_0222DB94: .word OS_Sleep
|
||||
arm_func_end ov61_0222DB8C
|
||||
|
||||
arm_func_start ov61_0222DB98
|
||||
ov61_0222DB98: ; 0x0222DB98
|
||||
stmfd sp!, {r4, r5, lr}
|
||||
sub sp, sp, #0x17c
|
||||
ldr r0, _0222DCD0 ; =0x0222E764
|
||||
ldr r0, [r0, #0x138]
|
||||
cmp r0, #1
|
||||
addeq sp, sp, #0x17c
|
||||
moveq r0, #1
|
||||
ldmeqia sp!, {r4, r5, pc}
|
||||
ldr r0, _0222DCD4 ; =0x0222E638
|
||||
add r1, sp, #8
|
||||
bl DWC_SVLGetTokenAsync
|
||||
cmp r0, #0
|
||||
bne _0222DBE4
|
||||
ldr r0, _0222DCD0 ; =0x0222E764
|
||||
mov r1, #0xe
|
||||
str r1, [r0, #0x250]
|
||||
add sp, sp, #0x17c
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
_0222DBE4:
|
||||
ldr r4, _0222DCD0 ; =0x0222E764
|
||||
mov r5, #1
|
||||
_0222DBEC:
|
||||
bl DWC_SVLProcess
|
||||
cmp r0, #3
|
||||
bne _0222DC40
|
||||
ldr r4, _0222DCD8 ; =0x0222E76A
|
||||
add r3, sp, #0x4d
|
||||
mov r2, #0x96
|
||||
_0222DC04:
|
||||
ldrb r1, [r3]
|
||||
ldrb r0, [r3, #1]
|
||||
add r3, r3, #2
|
||||
strb r1, [r4]
|
||||
strb r0, [r4, #1]
|
||||
add r4, r4, #2
|
||||
subs r2, r2, #1
|
||||
bne _0222DC04
|
||||
ldrb r2, [r3]
|
||||
ldr r1, _0222DCD0 ; =0x0222E764
|
||||
mov r0, #1
|
||||
strb r2, [r4]
|
||||
str r0, [r1, #0x138]
|
||||
add sp, sp, #0x17c
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
_0222DC40:
|
||||
cmp r0, #4
|
||||
bne _0222DC6C
|
||||
add r0, sp, #0
|
||||
add r1, sp, #4
|
||||
bl DWC_GetLastErrorEx
|
||||
ldr r0, _0222DCD0 ; =0x0222E764
|
||||
mov r1, #0xe
|
||||
str r1, [r0, #0x250]
|
||||
add sp, sp, #0x17c
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
_0222DC6C:
|
||||
cmp r0, #5
|
||||
bne _0222DC8C
|
||||
ldr r0, _0222DCD0 ; =0x0222E764
|
||||
mov r1, #0xe
|
||||
str r1, [r0, #0x250]
|
||||
add sp, sp, #0x17c
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
_0222DC8C:
|
||||
bl ov61_0222D4C8
|
||||
ldr r0, [r4, #0x268]
|
||||
cmp r0, #1
|
||||
bne _0222DCB8
|
||||
ldr r0, _0222DCD0 ; =0x0222E764
|
||||
mov r1, #0xd
|
||||
str r1, [r0, #0x250]
|
||||
bl ov61_0222D4DC
|
||||
add sp, sp, #0x17c
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, pc}
|
||||
_0222DCB8:
|
||||
bl ov61_0222D4DC
|
||||
mov r0, r5
|
||||
bl ov61_0222DB8C
|
||||
b _0222DBEC
|
||||
_0222DCC8:
|
||||
.byte 0x5F, 0xDF, 0x8D, 0xE2, 0x30, 0x80, 0xBD, 0xE8
|
||||
_0222DCD0: .word Unk_ov61_0222E764
|
||||
_0222DCD4: .word Unk_ov61_0222E638
|
||||
_0222DCD8: .word Unk_ov61_0222E764 + 0x6
|
||||
arm_func_end ov61_0222DB98
|
||||
.data
|
||||
|
||||
|
||||
.global Unk_ov61_0222E638
|
||||
Unk_ov61_0222E638: ; 0x0222E638
|
||||
.space 0x1
|
||||
|
||||
|
||||
.bss
|
||||
|
||||
|
||||
.global Unk_ov61_0222E764
|
||||
Unk_ov61_0222E764: ; 0x0222E764
|
||||
.space 0x34C
|
||||
|
||||
.global Unk_ov61_0222EAB0
|
||||
Unk_ov61_0222EAB0: ; 0x0222EAB0
|
||||
.space 0x810
|
||||
|
||||
|
|
@ -1,360 +0,0 @@
|
|||
.include "macros/function.inc"
|
||||
.include "include/ov61_0222E0B8.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
arm_func_start ov61_0222E0B8
|
||||
ov61_0222E0B8: ; 0x0222E0B8
|
||||
stmfd sp!, {r3, r4, r5, lr}
|
||||
mov r5, #0
|
||||
cmp r1, #0
|
||||
ldmleia sp!, {r3, r4, r5, pc}
|
||||
ldr lr, _0222E10C ; =0x0222E65C
|
||||
mov ip, r5
|
||||
_0222E0D0:
|
||||
cmp r5, #0
|
||||
moveq r4, ip
|
||||
beq _0222E0F0
|
||||
ldrb r4, [r0]
|
||||
add r3, r5, r1
|
||||
add r3, r4, r3
|
||||
and r3, r3, #0xff
|
||||
ldrb r4, [lr, r3]
|
||||
_0222E0F0:
|
||||
ldrb r3, [r0, r5]
|
||||
add r5, r5, #1
|
||||
cmp r5, r1
|
||||
eor r3, r4, r3
|
||||
strb r3, [r2], #1
|
||||
blt _0222E0D0
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_0222E10C: .word Unk_ov61_0222E65C
|
||||
arm_func_end ov61_0222E0B8
|
||||
|
||||
arm_func_start ov61_0222E110
|
||||
ov61_0222E110: ; 0x0222E110
|
||||
stmfd sp!, {r3, r4, r5, lr}
|
||||
mov r5, #0
|
||||
cmp r1, #0
|
||||
ldmleia sp!, {r3, r4, r5, pc}
|
||||
ldr lr, _0222E164 ; =0x0222E65C
|
||||
mov ip, r5
|
||||
_0222E128:
|
||||
cmp r5, #0
|
||||
moveq r4, ip
|
||||
beq _0222E148
|
||||
ldrb r4, [r0]
|
||||
add r3, r5, r1
|
||||
add r3, r4, r3
|
||||
and r3, r3, #0xff
|
||||
ldrb r4, [lr, r3]
|
||||
_0222E148:
|
||||
ldrb r3, [r2, r5]
|
||||
eor r3, r3, r4
|
||||
strb r3, [r2, r5]
|
||||
add r5, r5, #1
|
||||
cmp r5, r1
|
||||
blt _0222E128
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_0222E164: .word Unk_ov61_0222E65C
|
||||
arm_func_end ov61_0222E110
|
||||
|
||||
arm_func_start ov61_0222E168
|
||||
ov61_0222E168: ; 0x0222E168
|
||||
ldr r2, _0222E294 ; =0x00005209
|
||||
cmp r0, r2
|
||||
bgt _0222E1C0
|
||||
bge _0222E24C
|
||||
sub r1, r2, #0x3e8
|
||||
cmp r0, r1
|
||||
bgt _0222E1B0
|
||||
ldr r1, _0222E298 ; =0x00004E20
|
||||
cmp r0, r1
|
||||
blt _0222E1A4
|
||||
beq _0222E234
|
||||
add r1, r1, #1
|
||||
cmp r0, r1
|
||||
beq _0222E23C
|
||||
b _0222E284
|
||||
_0222E1A4:
|
||||
cmp r0, #0
|
||||
beq _0222E22C
|
||||
b _0222E284
|
||||
_0222E1B0:
|
||||
sub r1, r2, #1
|
||||
cmp r0, r1
|
||||
beq _0222E244
|
||||
b _0222E284
|
||||
_0222E1C0:
|
||||
add r1, r2, #0x3e8
|
||||
cmp r0, r1
|
||||
bgt _0222E1E0
|
||||
bge _0222E25C
|
||||
ldr r1, _0222E29C ; =0x000055F0
|
||||
cmp r0, r1
|
||||
beq _0222E254
|
||||
b _0222E284
|
||||
_0222E1E0:
|
||||
ldr r2, _0222E2A0 ; =0x000059D8
|
||||
cmp r0, r2
|
||||
bgt _0222E1F4
|
||||
beq _0222E264
|
||||
b _0222E284
|
||||
_0222E1F4:
|
||||
add r1, r2, #3
|
||||
cmp r0, r1
|
||||
bgt _0222E284
|
||||
add r1, r2, #1
|
||||
cmp r0, r1
|
||||
blt _0222E284
|
||||
beq _0222E26C
|
||||
add r1, r2, #2
|
||||
cmp r0, r1
|
||||
beq _0222E274
|
||||
add r1, r2, #3
|
||||
cmp r0, r1
|
||||
beq _0222E27C
|
||||
b _0222E284
|
||||
_0222E22C:
|
||||
mov r0, #0x400
|
||||
b _0222E28C
|
||||
_0222E234:
|
||||
mov r0, #0xe0
|
||||
b _0222E28C
|
||||
_0222E23C:
|
||||
mov r0, #0xc
|
||||
b _0222E28C
|
||||
_0222E244:
|
||||
mov r0, #0x220
|
||||
b _0222E28C
|
||||
_0222E24C:
|
||||
mov r0, #0xc
|
||||
b _0222E28C
|
||||
_0222E254:
|
||||
mov r0, #0
|
||||
b _0222E28C
|
||||
_0222E25C:
|
||||
mov r0, #0x24
|
||||
b _0222E28C
|
||||
_0222E264:
|
||||
ldr r0, _0222E2A4 ; =0x00001D4C
|
||||
b _0222E28C
|
||||
_0222E26C:
|
||||
mov r0, #0x1c
|
||||
b _0222E28C
|
||||
_0222E274:
|
||||
mov r0, #0xc
|
||||
b _0222E28C
|
||||
_0222E27C:
|
||||
mov r0, #8
|
||||
b _0222E28C
|
||||
_0222E284:
|
||||
mvn r0, #0
|
||||
bx lr
|
||||
_0222E28C:
|
||||
add r0, r0, #0x140
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
_0222E294: .word 0x00005209
|
||||
_0222E298: .word 0x00004E20
|
||||
_0222E29C: .word 0x000055F0
|
||||
_0222E2A0: .word 0x000059D8
|
||||
_0222E2A4: .word 0x00001D4C
|
||||
arm_func_end ov61_0222E168
|
||||
|
||||
arm_func_start ov61_0222E2A8
|
||||
ov61_0222E2A8: ; 0x0222E2A8
|
||||
stmfd sp!, {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, sp, #0x30
|
||||
ldr r6, _0222E458 ; =0x0222E580
|
||||
add lr, sp, #0
|
||||
mov ip, r0
|
||||
mov r5, lr
|
||||
ldmia r6!, {r0, r1, r2, r3}
|
||||
stmia lr!, {r0, r1, r2, r3}
|
||||
ldmia r6!, {r0, r1, r2, r3}
|
||||
stmia lr!, {r0, r1, r2, r3}
|
||||
ldr r4, _0222E45C ; =0x00005209
|
||||
ldmia r6, {r0, r1, r2, r3}
|
||||
stmia lr, {r0, r1, r2, r3}
|
||||
cmp ip, r4
|
||||
bgt _0222E340
|
||||
bge _0222E408
|
||||
ldr r1, _0222E460 ; =0x00004E20
|
||||
cmp ip, r1
|
||||
bgt _0222E31C
|
||||
bge _0222E3F0
|
||||
cmp ip, #0
|
||||
bgt _0222E440
|
||||
mvn r6, #0
|
||||
cmp ip, r6
|
||||
blt _0222E440
|
||||
beq _0222E3AC
|
||||
cmp ip, #0
|
||||
beq _0222E3E8
|
||||
b _0222E440
|
||||
_0222E31C:
|
||||
add r0, r1, #1
|
||||
cmp ip, r0
|
||||
bgt _0222E330
|
||||
beq _0222E3F8
|
||||
b _0222E440
|
||||
_0222E330:
|
||||
add r0, r1, #0x3e8
|
||||
cmp ip, r0
|
||||
beq _0222E400
|
||||
b _0222E440
|
||||
_0222E340:
|
||||
add r0, r4, #0x3e8
|
||||
cmp ip, r0
|
||||
bgt _0222E360
|
||||
bge _0222E418
|
||||
ldr r0, _0222E464 ; =0x000055F0
|
||||
cmp ip, r0
|
||||
beq _0222E410
|
||||
b _0222E440
|
||||
_0222E360:
|
||||
ldr r1, _0222E468 ; =0x000059D8
|
||||
cmp ip, r1
|
||||
bgt _0222E374
|
||||
beq _0222E420
|
||||
b _0222E440
|
||||
_0222E374:
|
||||
add r0, r1, #3
|
||||
cmp ip, r0
|
||||
bgt _0222E440
|
||||
add r0, r1, #1
|
||||
cmp ip, r0
|
||||
blt _0222E440
|
||||
beq _0222E428
|
||||
add r0, r1, #2
|
||||
cmp ip, r0
|
||||
beq _0222E430
|
||||
add r0, r1, #3
|
||||
cmp ip, r0
|
||||
beq _0222E438
|
||||
b _0222E440
|
||||
_0222E3AC:
|
||||
mov r7, #0
|
||||
mov r4, r6
|
||||
_0222E3B4:
|
||||
ldr r0, [r5, r7, lsl #2]
|
||||
cmp r0, r4
|
||||
beq _0222E3D4
|
||||
bl ov61_0222E2A8
|
||||
cmp r0, r6
|
||||
movgt r6, r0
|
||||
add r7, r7, #1
|
||||
b _0222E3B4
|
||||
_0222E3D4:
|
||||
mvn r0, #0
|
||||
cmp r6, r0
|
||||
bne _0222E44C
|
||||
add sp, sp, #0x30
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0222E3E8:
|
||||
mov r6, #0x400
|
||||
b _0222E44C
|
||||
_0222E3F0:
|
||||
mov r6, #8
|
||||
b _0222E44C
|
||||
_0222E3F8:
|
||||
ldr r6, _0222E46C ; =0x0000093C
|
||||
b _0222E44C
|
||||
_0222E400:
|
||||
mov r6, #8
|
||||
b _0222E44C
|
||||
_0222E408:
|
||||
ldr r6, _0222E470 ; =0x00002B74
|
||||
b _0222E44C
|
||||
_0222E410:
|
||||
mov r6, #4
|
||||
b _0222E44C
|
||||
_0222E418:
|
||||
mov r6, #0x630
|
||||
b _0222E44C
|
||||
_0222E420:
|
||||
mov r6, #8
|
||||
b _0222E44C
|
||||
_0222E428:
|
||||
ldr r6, _0222E474 ; =0x00001C24
|
||||
b _0222E44C
|
||||
_0222E430:
|
||||
sub r6, r1, #0x3c80
|
||||
b _0222E44C
|
||||
_0222E438:
|
||||
mov r6, #0
|
||||
b _0222E44C
|
||||
_0222E440:
|
||||
add sp, sp, #0x30
|
||||
mvn r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
_0222E44C:
|
||||
add r0, r6, #8
|
||||
add sp, sp, #0x30
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_0222E458: .word Unk_ov61_0222E580
|
||||
_0222E45C: .word 0x00005209
|
||||
_0222E460: .word 0x00004E20
|
||||
_0222E464: .word 0x000055F0
|
||||
_0222E468: .word 0x000059D8
|
||||
_0222E46C: .word 0x0000093C
|
||||
_0222E470: .word 0x00002B74
|
||||
_0222E474: .word 0x00001C24
|
||||
arm_func_end ov61_0222E2A8
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov61_0222E550
|
||||
Unk_ov61_0222E550: ; 0x0222E550
|
||||
.word 0x5, 0x3, 0x2
|
||||
.word 0x4, 0x1, 0x6, 0x9
|
||||
.word 0x2, 0x7, 0x8, 0x6
|
||||
.word 0x3
|
||||
|
||||
.global Unk_ov61_0222E580
|
||||
Unk_ov61_0222E580: ; 0x0222E580
|
||||
.word 0x0, 0x4E20, 0x4E21
|
||||
.word 0x5208, 0x5209, 0x55F0, 0x55F1
|
||||
.word 0x59D8, 0x59D9, 0x59DA, 0x59DB
|
||||
.word 0xFFFFFFFF
|
||||
|
||||
|
||||
.global Unk_ov61_0222E5B0
|
||||
Unk_ov61_0222E5B0: ; 0x0222E5B0
|
||||
.word 0x5, 0x3, 0x2
|
||||
.word 0x4, 0x1, 0x6, 0x9
|
||||
.word 0x2, 0x7, 0x8, 0x6
|
||||
.word 0x3
|
||||
|
||||
|
||||
.data
|
||||
|
||||
|
||||
.global Unk_ov61_0222E65C
|
||||
Unk_ov61_0222E65C: ; 0x0222E65C
|
||||
.byte 0x93, 0x18, 0x33, 0x28
|
||||
.byte 0x0B, 0x07, 0x03, 0x82, 0x02, 0x43, 0x8A, 0x86, 0xDB, 0x38, 0x34, 0x19, 0xD6, 0xF9, 0x59, 0xB2
|
||||
.byte 0xAD, 0x6A, 0x7D, 0xBC, 0xEE, 0xE0, 0x3A, 0x3F, 0xCA, 0x4C, 0x25, 0x68, 0xF4, 0xA9, 0x5B, 0xF7
|
||||
.byte 0x22, 0x60, 0x5A, 0x6F, 0xFA, 0x1B, 0x79, 0xE9, 0x17, 0xB1, 0x00, 0x9C, 0xAA, 0x5E, 0x9D, 0xFF
|
||||
.byte 0xEA, 0xA0, 0x0D, 0x4B, 0x75, 0xF6, 0x61, 0x85, 0x5D, 0xBB, 0xDC, 0xFB, 0x64, 0x2E, 0x7A, 0xAB
|
||||
.byte 0xF1, 0xE8, 0x44, 0x0C, 0xB8, 0x8F, 0xA8, 0x0A, 0x8E, 0xBD, 0xE1, 0x3B, 0xFC, 0x3C, 0x9F, 0x1A
|
||||
.byte 0x56, 0xC5, 0xE2, 0xF5, 0x47, 0xD9, 0xD7, 0x8C, 0xCD, 0x97, 0xF0, 0x7B, 0x8B, 0xC3, 0x4F, 0x45
|
||||
.byte 0x04, 0x90, 0x81, 0x1E, 0x6B, 0xC9, 0xD3, 0x73, 0xC6, 0xE7, 0x24, 0xBA, 0x32, 0xF3, 0xC0, 0xEC
|
||||
.byte 0x57, 0xCC, 0xC4, 0xB6, 0xC1, 0xAE, 0xAF, 0x88, 0xF2, 0x84, 0xCE, 0x4A, 0x0F, 0x94, 0x41, 0xB4
|
||||
.byte 0x74, 0x2A, 0xD1, 0x70, 0x1C, 0xD4, 0xB0, 0xC2, 0x09, 0x08, 0x16, 0x9B, 0xB5, 0x8D, 0x2B, 0xD2
|
||||
.byte 0x89, 0xB7, 0x99, 0xA1, 0x30, 0x65, 0x54, 0x40, 0x96, 0x71, 0xFE, 0xBF, 0x31, 0x06, 0xE5, 0x14
|
||||
.byte 0xE6, 0xDA, 0x48, 0x26, 0xAC, 0x87, 0x9A, 0xD8, 0xA6, 0xEB, 0x92, 0xCF, 0xFD, 0x77, 0x1D, 0x21
|
||||
.byte 0x9E, 0x36, 0x35, 0x53, 0x3E, 0xD0, 0xD5, 0x62, 0x58, 0x5F, 0x63, 0x7C, 0x7E, 0x52, 0x29, 0x12
|
||||
.byte 0x2C, 0x78, 0x05, 0x91, 0x55, 0xE3, 0xA2, 0xB9, 0xF8, 0x50, 0x95, 0x13, 0x80, 0x7F, 0x11, 0x27
|
||||
.byte 0xCB, 0x37, 0x4E, 0x51, 0x15, 0xEF, 0xA7, 0x72, 0x4D, 0x83, 0x49, 0xA4, 0x69, 0xDE, 0x20, 0xA3
|
||||
.byte 0x67, 0xDF, 0x10, 0x42, 0x39, 0x6C, 0x2D, 0xC7, 0x23, 0xE4, 0xDD, 0xED, 0xBE, 0x66, 0xB3, 0x2F
|
||||
.byte 0x01, 0x6E, 0x6D, 0xC8, 0x1F, 0x98, 0xA5, 0x46, 0x76, 0x5C, 0x3D, 0x0E
|
||||
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
.include "macros/function.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
arm_func_start ov61_0222E478
|
||||
ov61_0222E478: ; 0x0222E478
|
||||
bx lr
|
||||
arm_func_end ov61_0222E478
|
||||
|
|
@ -1,38 +1,46 @@
|
|||
#ifndef POKEPLATINUM_GLOBAL_TERMINAL_H
|
||||
#define POKEPLATINUM_GLOBAL_TERMINAL_H
|
||||
|
||||
#include "overlay062/struct_ov62_022349A8_sub1.h"
|
||||
#include <nitro/types.h>
|
||||
|
||||
#include "overlay062/struct_ov62_022349A8_sub3_sub1.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3_sub2.h"
|
||||
#include "overlay062/struct_ov62_0223D518_sub1.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3_sub3.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3_sub4.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3_sub5.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3_sub5.h"
|
||||
#include "overlay062/struct_ov62_0223D518_sub1.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
BOOL ov61_0222DCDC(UnkStruct_ov62_022349A8_sub1 * param0);
|
||||
typedef struct {
|
||||
s32 unk_00;
|
||||
u8 unk_04;
|
||||
u8 language;
|
||||
char unk_06[301]; // DWC_SVL_TOKEN_LENGTH + 1
|
||||
u8 padding[5];
|
||||
} UnkStruct_ov62_022349A8_sub1;
|
||||
|
||||
BOOL ov61_0222DCDC(UnkStruct_ov62_022349A8_sub1 *param0);
|
||||
void ov61_0222DCFC(void);
|
||||
int ov61_0222DD08(void);
|
||||
int ov61_0222DD24(void);
|
||||
BOOL ov61_0222DD30(UnkStruct_ov62_022349A8_sub3_sub1 * param0, void * param1);
|
||||
BOOL ov61_0222DD8C(long param0, void * param1);
|
||||
BOOL ov61_0222DDCC(long param0, UnkStruct_ov62_022349A8_sub3_sub2 * param1, void * param2);
|
||||
BOOL ov61_0222DE34(long param0, void * param1);
|
||||
BOOL ov61_0222DE98(void * param0);
|
||||
BOOL ov61_0222DEB8(UnkStruct_ov62_0223D518_sub1 * param0, void * param1);
|
||||
void * ov61_0222DE80(void);
|
||||
BOOL ov61_0222DD30(UnkStruct_ov62_022349A8_sub3_sub1 *param0, void *param1);
|
||||
BOOL ov61_0222DD8C(long param0, void *param1);
|
||||
BOOL ov61_0222DDCC(long param0, UnkStruct_ov62_022349A8_sub3_sub2 *param1, void *param2);
|
||||
BOOL ov61_0222DE34(long param0, void *param1);
|
||||
BOOL ov61_0222DE98(void *param0);
|
||||
BOOL ov61_0222DEB8(UnkStruct_ov62_0223D518_sub1 *param0, void *param1);
|
||||
void *ov61_0222DE80(void);
|
||||
long ov61_0222DE74(void);
|
||||
long ov61_0222DE8C(long param0);
|
||||
BOOL ov61_0222DF08(UnkStruct_ov62_022349A8_sub3_sub3 * param0, void * param1);
|
||||
BOOL ov61_0222DF60(UnkStruct_ov62_022349A8_sub3_sub4 * param0, void * param1);
|
||||
BOOL ov61_0222DFA8(UnkStruct_ov62_022349A8_sub3_sub5 * param0, void * param1);
|
||||
BOOL ov61_0222E000(UnkStruct_ov62_022349A8_sub3_sub5 * param0, void * param1);
|
||||
BOOL ov61_0222E058(u64 param0, u32 param1, void * param2);
|
||||
BOOL ov61_0222E08C(u64 param0, void * param1);
|
||||
BOOL ov61_0222DF08(UnkStruct_ov62_022349A8_sub3_sub3 *param0, void *param1);
|
||||
BOOL ov61_0222DF60(UnkStruct_ov62_022349A8_sub3_sub4 *param0, void *param1);
|
||||
BOOL ov61_0222DFA8(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1);
|
||||
BOOL ov61_0222E000(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1);
|
||||
BOOL ov61_0222E058(u64 param0, u32 param1, void *param2);
|
||||
BOOL ov61_0222E08C(u64 param0, void *param1);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,33 @@
|
|||
#ifndef GDS_INTERNAL_H
|
||||
#define GDS_INTERNAL_H
|
||||
#include <nitro/os/common/mutex.h>
|
||||
#include <nitro/os/common/thread.h>
|
||||
#include <nitro/types.h>
|
||||
|
||||
#include "gds.h"
|
||||
|
||||
typedef struct {
|
||||
UnkStruct_ov62_022349A8_sub1 unk_00;
|
||||
int unk_138;
|
||||
int unk_13C;
|
||||
char unk_140[0x100];
|
||||
u16 unk_240;
|
||||
int unk_244;
|
||||
int unk_248;
|
||||
int unk_24C;
|
||||
int unk_250;
|
||||
int unk_254;
|
||||
void *unk_258;
|
||||
int unk_25C;
|
||||
void *unk_260;
|
||||
int unk_264;
|
||||
int unk_268;
|
||||
int unk_26C;
|
||||
int unk_270;
|
||||
OSThread unk_274;
|
||||
OSMutex unk_334;
|
||||
} UnkStruct_ov61_0222E764;
|
||||
|
||||
typedef struct {
|
||||
u16 unk_00;
|
||||
u16 unk_02;
|
||||
|
|
@ -38,13 +64,46 @@ typedef struct {
|
|||
u32 unk_08;
|
||||
} UnkStruct_ov61_0222E058;
|
||||
|
||||
BOOL ov61_0222CF40(char *param0, int param1, UnkStruct_ov62_022349A8_sub1 *param2);
|
||||
int ov61_0222D3E8(void);
|
||||
int ov61_0222D464(void);
|
||||
void ov61_0222E478(void *param0, char *param1);
|
||||
BOOL ov61_0222D1FC(int param0, void *param1, void *param2, int param3);
|
||||
long ov61_0222D430(void);
|
||||
void *ov61_0222D3F8(void);
|
||||
long ov61_0222E2A8(long param0);
|
||||
typedef struct {
|
||||
u16 unk_00;
|
||||
u16 unk_02;
|
||||
UnkStruct_ov62_022349A8_sub1 unk_04;
|
||||
void *unk_136;
|
||||
} UnkStruct_ov61_0222D1FC;
|
||||
|
||||
#endif // GDS_INTERNAL_H
|
||||
UnkStruct_ov61_0222E764 Unk_ov61_0222E764;
|
||||
|
||||
void ov61_0222CEDC(void);
|
||||
BOOL ov61_0222CF40(char *url, int port, UnkStruct_ov62_022349A8_sub1 *param2);
|
||||
void ov61_0222D040(void);
|
||||
BOOL ov61_0222D1FC(int param0, void *param1, void *param2, int param3);
|
||||
int ov61_0222D3E8(void);
|
||||
void *ov61_0222D3F8(void);
|
||||
int ov61_0222D430(void);
|
||||
int ov61_0222D464(void);
|
||||
|
||||
void *ov61_0222D498(u32 size);
|
||||
void ov61_0222D4AC(void *ptr);
|
||||
void ov61_0222D4C8(void);
|
||||
void ov61_0222D4DC(void);
|
||||
int ov61_0222D4F0(void);
|
||||
int ov61_0222D508(void);
|
||||
int ov61_0222D510(void);
|
||||
void ov61_0222D53C(void);
|
||||
int ov61_0222D54C(void);
|
||||
BOOL ov61_0222D6A0(void);
|
||||
void ov61_0222D770(void);
|
||||
BOOL ov61_0222D7B0(void);
|
||||
BOOL ov61_0222D8F8(void);
|
||||
BOOL ov61_0222DA0C(void);
|
||||
void ov61_0222DB8C(u32 param0);
|
||||
BOOL ov61_0222DB98(void);
|
||||
|
||||
void ov61_0222E0B8(u8 *param0, int param1, u8 *param2);
|
||||
void ov61_0222E110(u8 *param0, int param1, u8 *param2);
|
||||
int ov61_0222E168(int param0);
|
||||
int ov61_0222E2A8(int param0);
|
||||
|
||||
void ov61_0222E478(void *param0, char *param1);
|
||||
|
||||
#endif // GDS_INTERNAL_H
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
libgds_srcs = files(
|
||||
'asm/ov61_0222CEDC.s',
|
||||
'asm/ov61_0222D498.s',
|
||||
'src/ov61_0222CEDC.c',
|
||||
'src/ov61_0222D498.c',
|
||||
'src/ov61_0222DCDC.c',
|
||||
'asm/ov61_0222E0B8.s',
|
||||
'asm/ov61_0222E478.s'
|
||||
'src/ov61_0222E0B8.c',
|
||||
'src/ov61_0222E478.c'
|
||||
)
|
||||
|
||||
libgds_public_includes = include_directories('include')
|
||||
|
|
@ -11,14 +11,21 @@ libgds_public_includes = include_directories('include')
|
|||
libgds_c_args = [
|
||||
'-nothumb',
|
||||
'-wrap:sdk', '2.0/sp2p2',
|
||||
'-wrap:noipa'
|
||||
'-wrap:noipa',
|
||||
]
|
||||
|
||||
libgds_link_args = [
|
||||
'-library',
|
||||
'-nothumb',
|
||||
'-main', '""',
|
||||
]
|
||||
|
||||
libgds = static_library('gds',
|
||||
sources: libgds_srcs,
|
||||
c_args: libgds_c_args,
|
||||
link_args: libgds_link_args,
|
||||
nasm_args: asm_args,
|
||||
include_directories: [public_includes, libgds_public_includes],
|
||||
dependencies: [ nitrosdk_dep, nitrosystem_dep ],
|
||||
dependencies: [nitrosdk_dep, nitrosystem_dep, nitrowifi_dep, nitrodwc_dep],
|
||||
pic: false
|
||||
)
|
||||
)
|
||||
|
|
|
|||
300
lib/gds/src/ov61_0222CEDC.c
Normal file
300
lib/gds/src/ov61_0222CEDC.c
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
#include <string.h>
|
||||
|
||||
#include "gds.h"
|
||||
#include "gds_internal.h"
|
||||
|
||||
static void ov61_0222CFD4(void);
|
||||
|
||||
void ov61_0222CEDC(void)
|
||||
{
|
||||
ov61_0222CFD4();
|
||||
memset(&Unk_ov61_0222E764.unk_00, 0, sizeof(UnkStruct_ov62_022349A8_sub1));
|
||||
Unk_ov61_0222E764.unk_138 = 0;
|
||||
Unk_ov61_0222E764.unk_140[0] = 0;
|
||||
Unk_ov61_0222E764.unk_240 = 0;
|
||||
ov61_0222D508();
|
||||
ov61_0222D53C();
|
||||
}
|
||||
|
||||
BOOL ov61_0222CF40(char *url, int port, UnkStruct_ov62_022349A8_sub1 *param2)
|
||||
{
|
||||
if (param2) {
|
||||
Unk_ov61_0222E764.unk_00 = *param2;
|
||||
Unk_ov61_0222E764.unk_138 = 0;
|
||||
}
|
||||
|
||||
int v0 = ov61_0222D510();
|
||||
if (!v0) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ov61_0222D4F0();
|
||||
strcpy(Unk_ov61_0222E764.unk_140, url);
|
||||
|
||||
Unk_ov61_0222E764.unk_240 = port;
|
||||
Unk_ov61_0222E764.unk_258 = 0;
|
||||
Unk_ov61_0222E764.unk_26C = -1;
|
||||
ov61_0222CFD4();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void ov61_0222CFD4(void)
|
||||
{
|
||||
ov61_0222D770();
|
||||
|
||||
if (Unk_ov61_0222E764.unk_258) {
|
||||
ov61_0222D4AC(Unk_ov61_0222E764.unk_258);
|
||||
Unk_ov61_0222E764.unk_258 = NULL;
|
||||
}
|
||||
|
||||
Unk_ov61_0222E764.unk_244 = 15;
|
||||
Unk_ov61_0222E764.unk_248 = 30;
|
||||
Unk_ov61_0222E764.unk_24C = 30;
|
||||
|
||||
Unk_ov61_0222E764.unk_254 = NULL;
|
||||
Unk_ov61_0222E764.unk_25C = 0;
|
||||
Unk_ov61_0222E764.unk_260 = NULL;
|
||||
Unk_ov61_0222E764.unk_264 = 0;
|
||||
Unk_ov61_0222E764.unk_268 = 0;
|
||||
|
||||
Unk_ov61_0222E764.unk_13C = 1;
|
||||
Unk_ov61_0222E764.unk_250 = 0;
|
||||
}
|
||||
|
||||
void ov61_0222D040(void)
|
||||
{
|
||||
BOOL v0;
|
||||
int v1;
|
||||
|
||||
while (TRUE) {
|
||||
v0 = FALSE;
|
||||
switch (Unk_ov61_0222E764.unk_13C) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
v0 = TRUE;
|
||||
break;
|
||||
case 2:
|
||||
if (!ov61_0222DB98()) {
|
||||
if (Unk_ov61_0222E764.unk_250 == 13) {
|
||||
v1 = 7;
|
||||
} else {
|
||||
v1 = 9;
|
||||
}
|
||||
|
||||
v0 = TRUE;
|
||||
} else {
|
||||
v1 = 3;
|
||||
}
|
||||
|
||||
ov61_0222D4C8();
|
||||
Unk_ov61_0222E764.unk_13C = v1;
|
||||
break;
|
||||
case 3:
|
||||
if (!ov61_0222D6A0()) {
|
||||
if (Unk_ov61_0222E764.unk_250 == 13) {
|
||||
v1 = 7;
|
||||
} else {
|
||||
v1 = 9;
|
||||
}
|
||||
|
||||
v0 = TRUE;
|
||||
} else {
|
||||
v1 = 4;
|
||||
}
|
||||
|
||||
ov61_0222D4C8();
|
||||
Unk_ov61_0222E764.unk_13C = v1;
|
||||
break;
|
||||
case 4:
|
||||
if (!ov61_0222D7B0()) {
|
||||
if (Unk_ov61_0222E764.unk_250 == 13) {
|
||||
v1 = 7;
|
||||
} else {
|
||||
v1 = 9;
|
||||
}
|
||||
|
||||
v0 = TRUE;
|
||||
} else {
|
||||
v1 = 5;
|
||||
}
|
||||
ov61_0222D4C8();
|
||||
Unk_ov61_0222E764.unk_13C = v1;
|
||||
break;
|
||||
case 5:
|
||||
if (!ov61_0222D8F8()) {
|
||||
if (Unk_ov61_0222E764.unk_250 == 13) {
|
||||
v1 = 7;
|
||||
} else {
|
||||
v1 = 9;
|
||||
}
|
||||
|
||||
v0 = TRUE;
|
||||
} else {
|
||||
v1 = 6;
|
||||
}
|
||||
|
||||
if (Unk_ov61_0222E764.unk_258 != 0) {
|
||||
ov61_0222D4AC(Unk_ov61_0222E764.unk_258);
|
||||
Unk_ov61_0222E764.unk_258 = 0;
|
||||
}
|
||||
|
||||
ov61_0222D4C8();
|
||||
Unk_ov61_0222E764.unk_13C = v1;
|
||||
break;
|
||||
case 6:
|
||||
if (!ov61_0222DA0C()) {
|
||||
if (Unk_ov61_0222E764.unk_250 == 13) {
|
||||
v1 = 7;
|
||||
} else {
|
||||
v1 = 9;
|
||||
}
|
||||
} else {
|
||||
v1 = 8;
|
||||
}
|
||||
v0 = TRUE;
|
||||
ov61_0222D4C8();
|
||||
Unk_ov61_0222E764.unk_13C = v1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (v0) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (Unk_ov61_0222E764.unk_268 == 1) {
|
||||
Unk_ov61_0222E764.unk_13C = 7;
|
||||
Unk_ov61_0222E764.unk_250 = 13;
|
||||
break;
|
||||
}
|
||||
|
||||
ov61_0222D4DC();
|
||||
ov61_0222DB8C(1);
|
||||
}
|
||||
|
||||
ov61_0222D4DC();
|
||||
}
|
||||
|
||||
BOOL ov61_0222D1FC(int param0, void *param1, void *param2, int param3)
|
||||
{
|
||||
ov61_0222D4C8();
|
||||
switch (Unk_ov61_0222E764.unk_13C) {
|
||||
case 0:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
ov61_0222D4DC();
|
||||
Unk_ov61_0222E764.unk_13C = 9;
|
||||
Unk_ov61_0222E764.unk_250 = 1;
|
||||
return FALSE;
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
ov61_0222CFD4();
|
||||
case 1:
|
||||
default:
|
||||
ov61_0222D4DC();
|
||||
}
|
||||
|
||||
int v0 = ov61_0222E2A8(param0);
|
||||
Unk_ov61_0222E764.unk_25C = v0;
|
||||
if (v0 == -1) {
|
||||
Unk_ov61_0222E764.unk_13C = 9;
|
||||
Unk_ov61_0222E764.unk_250 = 2;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Unk_ov61_0222E764.unk_260 = param2;
|
||||
|
||||
int v2;
|
||||
if (param3 != -1) {
|
||||
v2 = param3 + 0x140;
|
||||
} else {
|
||||
v2 = ov61_0222E168(param0);
|
||||
if (v2 == -1) {
|
||||
Unk_ov61_0222E764.unk_13C = 9;
|
||||
Unk_ov61_0222E764.unk_250 = 2;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void *v1 = ov61_0222D498(v2);
|
||||
Unk_ov61_0222E764.unk_258 = v1;
|
||||
if (v1 == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
Unk_ov61_0222E764.unk_254 = v2;
|
||||
memcpy(v1, &v2, 4);
|
||||
|
||||
UnkStruct_ov61_0222D1FC *v3 = Unk_ov61_0222E764.unk_258 + 4;
|
||||
v3->unk_00 = param0;
|
||||
v3->unk_04 = Unk_ov61_0222E764.unk_00;
|
||||
v3->unk_02 = 0;
|
||||
memcpy(&v3->unk_136, param1, v2 - 0x140);
|
||||
|
||||
ov61_0222E0B8(Unk_ov61_0222E764.unk_258 + 4, Unk_ov61_0222E764.unk_254 - 4, Unk_ov61_0222E764.unk_258 + 4);
|
||||
Unk_ov61_0222E764.unk_13C = 2;
|
||||
ov61_0222D4C8();
|
||||
|
||||
int result = ov61_0222D54C();
|
||||
if (!result) {
|
||||
Unk_ov61_0222E764.unk_13C = 9;
|
||||
Unk_ov61_0222E764.unk_250 = 6;
|
||||
ov61_0222D4DC();
|
||||
return FALSE;
|
||||
} else {
|
||||
ov61_0222D4DC();
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
int ov61_0222D3E8(void)
|
||||
{
|
||||
return Unk_ov61_0222E764.unk_13C;
|
||||
}
|
||||
|
||||
void *ov61_0222D3F8(void)
|
||||
{
|
||||
ov61_0222D4C8();
|
||||
|
||||
int v0 = ov61_0222D3E8();
|
||||
if (v0 != 8) {
|
||||
ov61_0222D4DC();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ov61_0222D4DC();
|
||||
return Unk_ov61_0222E764.unk_260 + 4;
|
||||
}
|
||||
|
||||
int ov61_0222D430(void)
|
||||
{
|
||||
ov61_0222D4C8();
|
||||
|
||||
int v0 = ov61_0222D3E8();
|
||||
if (v0 != 8) {
|
||||
ov61_0222D4DC();
|
||||
return -1;
|
||||
}
|
||||
|
||||
ov61_0222D4DC();
|
||||
return Unk_ov61_0222E764.unk_25C;
|
||||
}
|
||||
|
||||
int ov61_0222D464(void)
|
||||
{
|
||||
ov61_0222D4C8();
|
||||
|
||||
int v0 = ov61_0222D3E8();
|
||||
if (v0 != 9) {
|
||||
ov61_0222D4DC();
|
||||
return 0;
|
||||
}
|
||||
|
||||
ov61_0222D4DC();
|
||||
return Unk_ov61_0222E764.unk_250;
|
||||
}
|
||||
357
lib/gds/src/ov61_0222D498.c
Normal file
357
lib/gds/src/ov61_0222D498.c
Normal file
|
|
@ -0,0 +1,357 @@
|
|||
#include <dwc.h>
|
||||
#include <gs/nonport.h>
|
||||
#include <nitro/wm/common/wm.h>
|
||||
#include <nitroWiFi/soc.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "gds.h"
|
||||
#include "gds_internal.h"
|
||||
|
||||
u8 Unk_ov61_0222EAB0[0x800];
|
||||
|
||||
void *ov61_0222D498(u32 size)
|
||||
{
|
||||
return DWC_Alloc(DWC_ALLOCTYPE_AUTH, size);
|
||||
}
|
||||
|
||||
void ov61_0222D4AC(void *ptr)
|
||||
{
|
||||
if (ptr == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
DWC_Free(DWC_ALLOCTYPE_AUTH, ptr, 0);
|
||||
}
|
||||
|
||||
void ov61_0222D4C8(void)
|
||||
{
|
||||
OS_LockMutex(&Unk_ov61_0222E764.unk_334);
|
||||
}
|
||||
|
||||
void ov61_0222D4DC(void)
|
||||
{
|
||||
OS_UnlockMutex(&Unk_ov61_0222E764.unk_334);
|
||||
}
|
||||
|
||||
int ov61_0222D4F0(void)
|
||||
{
|
||||
OS_InitMutex(&Unk_ov61_0222E764.unk_334);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int ov61_0222D508(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int ov61_0222D510(void)
|
||||
{
|
||||
if (!OS_IsTickAvailable()) {
|
||||
OS_InitTick();
|
||||
}
|
||||
|
||||
Unk_ov61_0222E764.unk_270 = 16;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ov61_0222D53C(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov61_0222D540(void *param0)
|
||||
{
|
||||
ov61_0222D040();
|
||||
}
|
||||
|
||||
int ov61_0222D54C(void)
|
||||
{
|
||||
OS_CreateThread(&Unk_ov61_0222E764.unk_274, ov61_0222D540, 0, &Unk_ov61_0222EAB0[0x800], 0x800, Unk_ov61_0222E764.unk_270);
|
||||
OS_WakeupThreadDirect(&Unk_ov61_0222E764.unk_274);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov61_0222D5A0(char *param0)
|
||||
{
|
||||
int v0 = 0;
|
||||
int v1 = 0;
|
||||
|
||||
while (*param0 != 0) {
|
||||
if ('0' <= *param0 && *param0 <= '9') {
|
||||
v0++;
|
||||
if (v0 >= 4) {
|
||||
return FALSE;
|
||||
}
|
||||
} else if (*param0 == '.') {
|
||||
if (v0 == 0) {
|
||||
return FALSE;
|
||||
}
|
||||
v1++;
|
||||
v0 = 0;
|
||||
if (v1 >= 4) {
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
param0++;
|
||||
}
|
||||
|
||||
return v1 == 3 && v0 != 0;
|
||||
}
|
||||
|
||||
static BOOL ov61_0222D638(char *param0, char *param1)
|
||||
{
|
||||
int v0 = ov61_0222D5A0(param0);
|
||||
|
||||
if (!v0) {
|
||||
SOCHostEnt *v1 = SOC_GetHostByName(param0);
|
||||
if (v1) {
|
||||
SOCInAddr v2 = { ((u32 *)v1->addrList[0])[0] };
|
||||
char *v3 = SOC_InetNtoA(v2);
|
||||
strcpy(param1, v3);
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
strcpy(param1, param0);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ov61_0222D6A0(void)
|
||||
{
|
||||
int v0 = SOC_Socket(SOC_PF_INET, SOC_SOCK_STREAM, 0);
|
||||
Unk_ov61_0222E764.unk_26C = v0;
|
||||
|
||||
if (v0 == -1) {
|
||||
Unk_ov61_0222E764.unk_250 = 3;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int v1 = SOC_Fcntl(v0, SOC_F_GETFL, 0);
|
||||
int v2 = SOC_Fcntl(Unk_ov61_0222E764.unk_26C, SOC_F_SETFL, v1 | SOC_O_NONBLOCK);
|
||||
|
||||
if (v2 < 0) {
|
||||
Unk_ov61_0222E764.unk_250 = 4;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
char v3[14];
|
||||
BOOL v4 = ov61_0222D638(Unk_ov61_0222E764.unk_140, v3);
|
||||
|
||||
if (!v4) {
|
||||
Unk_ov61_0222E764.unk_250 = 5;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int v5 = inet_addr(v3);
|
||||
Unk_ov61_0222E764.unk_264 = v5;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void ov61_0222D770(void)
|
||||
{
|
||||
if (Unk_ov61_0222E764.unk_26C == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
SOC_Shutdown(Unk_ov61_0222E764.unk_26C, 2);
|
||||
SOC_Close(Unk_ov61_0222E764.unk_26C);
|
||||
Unk_ov61_0222E764.unk_26C = -1;
|
||||
}
|
||||
|
||||
BOOL ov61_0222D7B0(void)
|
||||
{
|
||||
SOCSockAddrIn v0;
|
||||
v0.len = sizeof(SOCSockAddrIn);
|
||||
v0.family = SOC_PF_INET;
|
||||
v0.port = ((Unk_ov61_0222E764.unk_240 >> 8) & 0xFF) | ((Unk_ov61_0222E764.unk_240 << 8) & 0xFF00);
|
||||
v0.addr.addr = Unk_ov61_0222E764.unk_264;
|
||||
|
||||
u64 v1 = OS_GetTick() / 0x7FD88;
|
||||
|
||||
while (TRUE) {
|
||||
int v2 = SOC_Connect(Unk_ov61_0222E764.unk_26C, &v0);
|
||||
|
||||
if (v2 < 0) {
|
||||
if (v2 == SOC_EINPROGRESS) {
|
||||
if (Unk_ov61_0222E764.unk_244 != 0) {
|
||||
int v3 = OS_GetTick() / 0x7FD88 - v1;
|
||||
|
||||
if (v3 >= Unk_ov61_0222E764.unk_244) {
|
||||
Unk_ov61_0222E764.unk_250 = 10;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
} else if (v2 != SOC_EISCONN) {
|
||||
Unk_ov61_0222E764.unk_250 = 7;
|
||||
return FALSE;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
ov61_0222D4C8();
|
||||
|
||||
if (Unk_ov61_0222E764.unk_268 == 1) {
|
||||
Unk_ov61_0222E764.unk_250 = 13;
|
||||
ov61_0222D4DC();
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
ov61_0222D4DC();
|
||||
ov61_0222DB8C(1);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
BOOL ov61_0222D8F8(void)
|
||||
{
|
||||
int v0 = 0;
|
||||
u64 v1 = OS_GetTick() / 0x7FD88;
|
||||
|
||||
while (TRUE) {
|
||||
int v2 = Unk_ov61_0222E764.unk_254 - v0;
|
||||
if (v2 > Unk_ov61_0222E764.unk_254) {
|
||||
v2 = Unk_ov61_0222E764.unk_254;
|
||||
}
|
||||
|
||||
int v3 = SOC_Send(Unk_ov61_0222E764.unk_26C, Unk_ov61_0222E764.unk_258 + v0, v2, 0);
|
||||
if (v3 != -6) {
|
||||
if (v3 < 0) {
|
||||
Unk_ov61_0222E764.unk_250 = 11;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
v0 += v3;
|
||||
if (v0 == Unk_ov61_0222E764.unk_254) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (Unk_ov61_0222E764.unk_248 != 0) {
|
||||
int v4 = OS_GetTick() / 0x7FD88 - v1;
|
||||
if (v4 >= Unk_ov61_0222E764.unk_248) {
|
||||
Unk_ov61_0222E764.unk_250 = 11;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
ov61_0222D4C8();
|
||||
|
||||
if (Unk_ov61_0222E764.unk_268 == 1) {
|
||||
Unk_ov61_0222E764.unk_250 = 13;
|
||||
ov61_0222D4DC();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ov61_0222D4DC();
|
||||
ov61_0222DB8C(1);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL ov61_0222DA0C(void)
|
||||
{
|
||||
u64 v1;
|
||||
u32 v0 = 0;
|
||||
int v6 = -1;
|
||||
|
||||
v1 = OS_GetTick() / 0x7FD88;
|
||||
while (TRUE) {
|
||||
int v3 = SOC_Recv(Unk_ov61_0222E764.unk_26C, Unk_ov61_0222E764.unk_260 + v0, Unk_ov61_0222E764.unk_25C - v0, 0);
|
||||
if (v3 != SOC_EWOULDBLOCK) {
|
||||
if (v3 <= 0) {
|
||||
Unk_ov61_0222E764.unk_250 = 9;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
v0 += v3;
|
||||
|
||||
if (v0 >= 4 && v6 == -1) {
|
||||
memcpy(&v6, Unk_ov61_0222E764.unk_260, sizeof(int));
|
||||
}
|
||||
|
||||
if (v0 == v6 && v6 != -1) {
|
||||
ov61_0222E110(Unk_ov61_0222E764.unk_260 + 4, v0 - 4, Unk_ov61_0222E764.unk_260 + 4);
|
||||
Unk_ov61_0222E764.unk_25C = v6 - 4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (Unk_ov61_0222E764.unk_24C != 0) {
|
||||
int v4 = OS_GetTick() / 0x7FD88 - v1;
|
||||
if (v4 >= Unk_ov61_0222E764.unk_24C) {
|
||||
Unk_ov61_0222E764.unk_250 = 12;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
ov61_0222D4C8();
|
||||
|
||||
if (Unk_ov61_0222E764.unk_268 == 1) {
|
||||
Unk_ov61_0222E764.unk_250 = 13;
|
||||
ov61_0222D4DC();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ov61_0222D4DC();
|
||||
ov61_0222DB8C(1);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void ov61_0222DB8C(u32 param0)
|
||||
{
|
||||
OS_Sleep(param0);
|
||||
}
|
||||
|
||||
BOOL ov61_0222DB98(void)
|
||||
{
|
||||
if (Unk_ov61_0222E764.unk_138 == 1) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
DWCSvlResult v0;
|
||||
if (!DWC_SVLGetTokenAsync("", &v0)) {
|
||||
Unk_ov61_0222E764.unk_250 = 14;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
while (TRUE) {
|
||||
DWCSvlState v1 = DWC_SVLProcess();
|
||||
|
||||
if (v1 == DWC_ETYPE_SHUTDOWN_FM) {
|
||||
memcpy(&Unk_ov61_0222E764.unk_00.unk_06, &v0.svltoken, DWC_SVL_TOKEN_LENGTH + 1);
|
||||
Unk_ov61_0222E764.unk_138 = 1;
|
||||
return TRUE;
|
||||
} else if (v1 == DWC_ETYPE_SHUTDOWN_GHTTP) {
|
||||
DWCErrorType v3;
|
||||
int v2;
|
||||
DWC_GetLastErrorEx(&v2, &v3);
|
||||
Unk_ov61_0222E764.unk_250 = 14;
|
||||
return FALSE;
|
||||
} else if (v1 == DWC_ETYPE_SHUTDOWN_ND) {
|
||||
Unk_ov61_0222E764.unk_250 = 14;
|
||||
return FALSE;
|
||||
} else {
|
||||
ov61_0222D4C8();
|
||||
if (Unk_ov61_0222E764.unk_268 == 1) {
|
||||
Unk_ov61_0222E764.unk_250 = 13;
|
||||
ov61_0222D4DC();
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
ov61_0222D4DC();
|
||||
ov61_0222DB8C(1);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,125 +1,142 @@
|
|||
#include "nitro/types.h"
|
||||
#include <nitro/types.h>
|
||||
|
||||
#include "gds.h"
|
||||
#include "gds_internal.h"
|
||||
|
||||
BOOL ov61_0222DCDC(UnkStruct_ov62_022349A8_sub1 *param0) {
|
||||
BOOL ov61_0222DCDC(UnkStruct_ov62_022349A8_sub1 *param0)
|
||||
{
|
||||
return ov61_0222CF40("pkgdsprod.nintendo.co.jp", 12400, param0);
|
||||
}
|
||||
|
||||
void ov61_0222DCFC(void) {
|
||||
void ov61_0222DCFC(void)
|
||||
{
|
||||
ov61_0222CEDC();
|
||||
}
|
||||
|
||||
int ov61_0222DD08(void) {
|
||||
int ov61_0222DD08(void)
|
||||
{
|
||||
ov61_0222D4C8();
|
||||
int v0 = ov61_0222D3E8();
|
||||
ov61_0222D4DC();
|
||||
return v0;
|
||||
}
|
||||
|
||||
int ov61_0222DD24(void) {
|
||||
int ov61_0222DD24(void)
|
||||
{
|
||||
return ov61_0222D464();
|
||||
}
|
||||
|
||||
BOOL ov61_0222DD30(UnkStruct_ov62_022349A8_sub3_sub1 *param0, void *param1) {
|
||||
BOOL ov61_0222DD30(UnkStruct_ov62_022349A8_sub3_sub1 *param0, void *param1)
|
||||
{
|
||||
UnkStruct_ov62_022349A8_sub3_sub1 v0 = *param0;
|
||||
ov61_0222E478(param0, "--");
|
||||
ov61_0222D1FC(0x4E20, &v0, param1, -1);
|
||||
ov61_0222D1FC(20000, &v0, param1, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222DD8C(long param0, void *param1) {
|
||||
BOOL ov61_0222DD8C(long param0, void *param1)
|
||||
{
|
||||
UnkStruct_ov61_0222DD8C v0;
|
||||
v0.unk_00 = 0;
|
||||
v0.unk_02 = 0;
|
||||
v0.unk_04 = param0;
|
||||
v0.unk_08 = param0 >> 31;
|
||||
|
||||
return ov61_0222D1FC(0x4E21, &v0, param1, -1);
|
||||
|
||||
return ov61_0222D1FC(20001, &v0, param1, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222DDCC(long param0, UnkStruct_ov62_022349A8_sub3_sub2 *param1, void *param2) {
|
||||
BOOL ov61_0222DDCC(long param0, UnkStruct_ov62_022349A8_sub3_sub2 *param1, void *param2)
|
||||
{
|
||||
UnkStruct_ov61_0222DDCC v0;
|
||||
v0.unk_00 = param0;
|
||||
v0.unk_04 = *param1;
|
||||
|
||||
ov61_0222E478(param1, "--");
|
||||
return ov61_0222D1FC(0x5208, &v0, param2, -1);
|
||||
return ov61_0222D1FC(21000, &v0, param2, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222DE34(long param0, void *param1) {
|
||||
BOOL ov61_0222DE34(long param0, void *param1)
|
||||
{
|
||||
UnkStruct_ov61_0222DD8C v0;
|
||||
v0.unk_00 = 0;
|
||||
v0.unk_02 = 0;
|
||||
v0.unk_04 = param0;
|
||||
v0.unk_08 = param0 >> 31;
|
||||
|
||||
return ov61_0222D1FC(0x5209, &v0, param1, -1);
|
||||
return ov61_0222D1FC(21001, &v0, param1, -1);
|
||||
}
|
||||
|
||||
long ov61_0222DE74(void) {
|
||||
long ov61_0222DE74(void)
|
||||
{
|
||||
return ov61_0222D430();
|
||||
}
|
||||
|
||||
void *ov61_0222DE80(void) {
|
||||
void *ov61_0222DE80(void)
|
||||
{
|
||||
return ov61_0222D3F8();
|
||||
}
|
||||
|
||||
long ov61_0222DE8C(long param0) {
|
||||
long ov61_0222DE8C(long param0)
|
||||
{
|
||||
return ov61_0222E2A8(param0);
|
||||
}
|
||||
|
||||
BOOL ov61_0222DE98(void *param0) {
|
||||
return ov61_0222D1FC(0x55F0, NULL, param0, -1);
|
||||
BOOL ov61_0222DE98(void *param0)
|
||||
{
|
||||
return ov61_0222D1FC(22000, NULL, param0, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222DEB8(UnkStruct_ov62_0223D518_sub1 *param0, void *param1) {
|
||||
BOOL ov61_0222DEB8(UnkStruct_ov62_0223D518_sub1 *param0, void *param1)
|
||||
{
|
||||
UnkStruct_ov62_0223D518_sub1 v0 = *param0;
|
||||
return ov61_0222D1FC(0x55F1, &v0, param1, -1);
|
||||
return ov61_0222D1FC(22001, &v0, param1, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222DF08(UnkStruct_ov62_022349A8_sub3_sub3 *param0, void *param1) {
|
||||
BOOL ov61_0222DF08(UnkStruct_ov62_022349A8_sub3_sub3 *param0, void *param1)
|
||||
{
|
||||
UnkStruct_ov62_022349A8_sub3_sub3 v0 = *param0;
|
||||
return ov61_0222D1FC(0x59D8, &v0, param1, -1);
|
||||
return ov61_0222D1FC(23000, &v0, param1, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222DF60(UnkStruct_ov62_022349A8_sub3_sub4 *param0, void *param1) {
|
||||
BOOL ov61_0222DF60(UnkStruct_ov62_022349A8_sub3_sub4 *param0, void *param1)
|
||||
{
|
||||
UnkStruct_ov61_0222DF60 v0;
|
||||
v0.unk_00 = 0;
|
||||
v0.unk_04 = *param0;
|
||||
v0.unk_00 = 0; // ?
|
||||
v0.unk_02 = 0;
|
||||
|
||||
return ov61_0222D1FC(0x59D9, &v0, param1, -1);
|
||||
|
||||
return ov61_0222D1FC(23001, &v0, param1, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222DFA8(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1) {
|
||||
BOOL ov61_0222DFA8(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1)
|
||||
{
|
||||
UnkStruct_ov61_0222DFA8 v0 = { 0 };
|
||||
v0.unk_00 = 1;
|
||||
v0.unk_0C = param0->unk_00;
|
||||
|
||||
return ov61_0222D1FC(0x59D9, &v0, param1, -1);
|
||||
return ov61_0222D1FC(23001, &v0, param1, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222E000(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1) {
|
||||
BOOL ov61_0222E000(UnkStruct_ov62_022349A8_sub3_sub5 *param0, void *param1)
|
||||
{
|
||||
UnkStruct_ov61_0222DFA8 v0 = { 0 };
|
||||
v0.unk_00 = 2;
|
||||
v0.unk_0C = param0->unk_00;
|
||||
|
||||
return ov61_0222D1FC(0x59D9, &v0, param1, -1);
|
||||
return ov61_0222D1FC(23001, &v0, param1, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222E058(u64 param0, u32 param1, void *param2) {
|
||||
BOOL ov61_0222E058(u64 param0, u32 param1, void *param2)
|
||||
{
|
||||
UnkStruct_ov61_0222E058 v0;
|
||||
v0.unk_00 = param0;
|
||||
v0.unk_08 = param1;
|
||||
|
||||
return ov61_0222D1FC(0x59DA, &v0, param2, -1);
|
||||
|
||||
return ov61_0222D1FC(23002, &v0, param2, -1);
|
||||
}
|
||||
|
||||
BOOL ov61_0222E08C(u64 param0, void *param1) {
|
||||
BOOL ov61_0222E08C(u64 param0, void *param1)
|
||||
{
|
||||
u64 v0 = param0;
|
||||
|
||||
return ov61_0222D1FC(0x59DB, &v0, param1, -1);
|
||||
return ov61_0222D1FC(23003, &v0, param1, -1);
|
||||
}
|
||||
|
||||
|
|
|
|||
210
lib/gds/src/ov61_0222E0B8.c
Normal file
210
lib/gds/src/ov61_0222E0B8.c
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
#include <nitro/types.h>
|
||||
|
||||
#include "gds.h"
|
||||
#include "gds_internal.h"
|
||||
|
||||
// clang-format off
|
||||
static u8 Unk_ov61_0222E65C[] = {
|
||||
0x93, 0x18, 0x33, 0x28, 0x0B, 0x07, 0x03, 0x82, 0x02, 0x43, 0x8A, 0x86, 0xDB, 0x38, 0x34, 0x19,
|
||||
0xD6, 0xF9, 0x59, 0xB2, 0xAD, 0x6A, 0x7D, 0xBC, 0xEE, 0xE0, 0x3A, 0x3F, 0xCA, 0x4C, 0x25, 0x68,
|
||||
0xF4, 0xA9, 0x5B, 0xF7, 0x22, 0x60, 0x5A, 0x6F, 0xFA, 0x1B, 0x79, 0xE9, 0x17, 0xB1, 0x00, 0x9C,
|
||||
0xAA, 0x5E, 0x9D, 0xFF, 0xEA, 0xA0, 0x0D, 0x4B, 0x75, 0xF6, 0x61, 0x85, 0x5D, 0xBB, 0xDC, 0xFB,
|
||||
0x64, 0x2E, 0x7A, 0xAB, 0xF1, 0xE8, 0x44, 0x0C, 0xB8, 0x8F, 0xA8, 0x0A, 0x8E, 0xBD, 0xE1, 0x3B,
|
||||
0xFC, 0x3C, 0x9F, 0x1A, 0x56, 0xC5, 0xE2, 0xF5, 0x47, 0xD9, 0xD7, 0x8C, 0xCD, 0x97, 0xF0, 0x7B,
|
||||
0x8B, 0xC3, 0x4F, 0x45, 0x04, 0x90, 0x81, 0x1E, 0x6B, 0xC9, 0xD3, 0x73, 0xC6, 0xE7, 0x24, 0xBA,
|
||||
0x32, 0xF3, 0xC0, 0xEC, 0x57, 0xCC, 0xC4, 0xB6, 0xC1, 0xAE, 0xAF, 0x88, 0xF2, 0x84, 0xCE, 0x4A,
|
||||
0x0F, 0x94, 0x41, 0xB4, 0x74, 0x2A, 0xD1, 0x70, 0x1C, 0xD4, 0xB0, 0xC2, 0x09, 0x08, 0x16, 0x9B,
|
||||
0xB5, 0x8D, 0x2B, 0xD2, 0x89, 0xB7, 0x99, 0xA1, 0x30, 0x65, 0x54, 0x40, 0x96, 0x71, 0xFE, 0xBF,
|
||||
0x31, 0x06, 0xE5, 0x14, 0xE6, 0xDA, 0x48, 0x26, 0xAC, 0x87, 0x9A, 0xD8, 0xA6, 0xEB, 0x92, 0xCF,
|
||||
0xFD, 0x77, 0x1D, 0x21, 0x9E, 0x36, 0x35, 0x53, 0x3E, 0xD0, 0xD5, 0x62, 0x58, 0x5F, 0x63, 0x7C,
|
||||
0x7E, 0x52, 0x29, 0x12, 0x2C, 0x78, 0x05, 0x91, 0x55, 0xE3, 0xA2, 0xB9, 0xF8, 0x50, 0x95, 0x13,
|
||||
0x80, 0x7F, 0x11, 0x27, 0xCB, 0x37, 0x4E, 0x51, 0x15, 0xEF, 0xA7, 0x72, 0x4D, 0x83, 0x49, 0xA4,
|
||||
0x69, 0xDE, 0x20, 0xA3, 0x67, 0xDF, 0x10, 0x42, 0x39, 0x6C, 0x2D, 0xC7, 0x23, 0xE4, 0xDD, 0xED,
|
||||
0xBE, 0x66, 0xB3, 0x2F, 0x01, 0x6E, 0x6D, 0xC8, 0x1F, 0x98, 0xA5, 0x46, 0x76, 0x5C, 0x3D, 0x0E
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
void ov61_0222E0B8(u8 *param0, int param1, u8 *param2)
|
||||
{
|
||||
for (int i = 0; i < param1; i++) {
|
||||
u8 v0;
|
||||
if (i != 0) {
|
||||
int v1 = (i + param1 + param0[0]) & 0xFF;
|
||||
v0 = Unk_ov61_0222E65C[v1];
|
||||
} else {
|
||||
v0 = 0;
|
||||
}
|
||||
|
||||
*(param2++) = v0 ^ param0[i];
|
||||
}
|
||||
}
|
||||
|
||||
void ov61_0222E110(u8 *param0, int param1, u8 *param2)
|
||||
{
|
||||
for (int i = 0; i < param1; i++) {
|
||||
u8 v0;
|
||||
if (i != 0) {
|
||||
int v1 = (i + param1 + param0[0]) & 0xFF;
|
||||
v0 = Unk_ov61_0222E65C[v1];
|
||||
} else {
|
||||
v0 = 0;
|
||||
}
|
||||
|
||||
param2[i] ^= v0;
|
||||
}
|
||||
}
|
||||
|
||||
int ov61_0222E168(int param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
switch (param0) {
|
||||
case 0:
|
||||
v0 = 0x400;
|
||||
break;
|
||||
case 20000:
|
||||
v0 = 0xE0;
|
||||
break;
|
||||
case 20001:
|
||||
v0 = 0xC;
|
||||
break;
|
||||
case 21000:
|
||||
v0 = 0x220;
|
||||
break;
|
||||
case 21001:
|
||||
v0 = 0xC;
|
||||
break;
|
||||
case 22000:
|
||||
v0 = 0;
|
||||
break;
|
||||
case 22001:
|
||||
v0 = 0x24;
|
||||
break;
|
||||
case 23000:
|
||||
v0 = 0x1D4C;
|
||||
break;
|
||||
case 23001:
|
||||
v0 = 0x1C;
|
||||
break;
|
||||
case 23002:
|
||||
v0 = 0xC;
|
||||
break;
|
||||
case 23003:
|
||||
v0 = 8;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
||||
return v0 + 0x140;
|
||||
}
|
||||
|
||||
static const int Unk_ov61_0222E550[] = {
|
||||
0x5,
|
||||
0x3,
|
||||
0x2,
|
||||
0x4,
|
||||
0x1,
|
||||
0x6,
|
||||
0x9,
|
||||
0x2,
|
||||
0x7,
|
||||
0x8,
|
||||
0x6,
|
||||
0x3
|
||||
};
|
||||
|
||||
int ov61_0222E2A8(int param0)
|
||||
{
|
||||
const int v0[] = {
|
||||
0,
|
||||
20000,
|
||||
20001,
|
||||
21000,
|
||||
21001,
|
||||
22000,
|
||||
22001,
|
||||
23000,
|
||||
23001,
|
||||
23002,
|
||||
23003,
|
||||
-1
|
||||
};
|
||||
|
||||
int v1;
|
||||
switch (param0) {
|
||||
case -1:
|
||||
int v2 = 0;
|
||||
v1 = -1;
|
||||
|
||||
while (TRUE) {
|
||||
int v4 = v0[v2];
|
||||
if (v4 == -1) {
|
||||
break;
|
||||
}
|
||||
int v3 = ov61_0222E2A8(v4);
|
||||
if (v3 > v1) {
|
||||
v1 = v3;
|
||||
}
|
||||
v2++;
|
||||
}
|
||||
|
||||
if (v1 == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
case 0:
|
||||
v1 = 0x400;
|
||||
break;
|
||||
case 20000:
|
||||
v1 = 8;
|
||||
break;
|
||||
case 20001:
|
||||
v1 = 0x93C;
|
||||
break;
|
||||
case 21000:
|
||||
v1 = 8;
|
||||
break;
|
||||
case 21001:
|
||||
v1 = 0x2B74;
|
||||
break;
|
||||
case 22000:
|
||||
v1 = 4;
|
||||
break;
|
||||
case 22001:
|
||||
v1 = 0x630;
|
||||
break;
|
||||
case 23000:
|
||||
v1 = 8;
|
||||
break;
|
||||
case 23001:
|
||||
v1 = 0x1C24;
|
||||
break;
|
||||
case 23002:
|
||||
v1 = 0x1D58;
|
||||
break;
|
||||
case 23003:
|
||||
v1 = 0;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
||||
return v1 + 8;
|
||||
}
|
||||
|
||||
static const int Unk_ov61_0222E5B0[] = {
|
||||
0x5,
|
||||
0x3,
|
||||
0x2,
|
||||
0x4,
|
||||
0x1,
|
||||
0x6,
|
||||
0x9,
|
||||
0x2,
|
||||
0x7,
|
||||
0x8,
|
||||
0x6,
|
||||
0x3
|
||||
};
|
||||
7
lib/gds/src/ov61_0222E478.c
Normal file
7
lib/gds/src/ov61_0222E478.c
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#include "gds.h"
|
||||
#include "gds_internal.h"
|
||||
|
||||
void ov61_0222E478(void *param0, char *param1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef SPL_MANAGER_H
|
||||
#define SPL_MANAGER_H
|
||||
|
||||
#include <nitro/types.h>
|
||||
#include <nitro/gx/g3.h>
|
||||
#include <nitro/types.h>
|
||||
|
||||
#include "spl_emitter.h"
|
||||
#include "spl_particle.h"
|
||||
|
|
|
|||
|
|
@ -83,12 +83,12 @@ void SPLEmitter_EmitParticles(SPLEmitter *emtr, SPLParticleList *list)
|
|||
emtr->emissionCountFractional = emitCountDec & FX32_DEC_MASK;
|
||||
|
||||
enum SPLEmissionType emitType = header->flags.emissionType;
|
||||
if (emitType == SPL_EMISSION_TYPE_CIRCLE_BORDER
|
||||
|| emitType == SPL_EMISSION_TYPE_CIRCLE_BORDER_UNIFORM
|
||||
|| emitType == SPL_EMISSION_TYPE_CIRCLE
|
||||
|| emitType == SPL_EMISSION_TYPE_CYLINDER_SURFACE
|
||||
|| emitType == SPL_EMISSION_TYPE_CYLINDER
|
||||
|| emitType == SPL_EMISSION_TYPE_HEMISPHERE_SURFACE
|
||||
if (emitType == SPL_EMISSION_TYPE_CIRCLE_BORDER
|
||||
|| emitType == SPL_EMISSION_TYPE_CIRCLE_BORDER_UNIFORM
|
||||
|| emitType == SPL_EMISSION_TYPE_CIRCLE
|
||||
|| emitType == SPL_EMISSION_TYPE_CYLINDER_SURFACE
|
||||
|| emitType == SPL_EMISSION_TYPE_CYLINDER
|
||||
|| emitType == SPL_EMISSION_TYPE_HEMISPHERE_SURFACE
|
||||
|| emitType == SPL_EMISSION_TYPE_HEMISPHERE) {
|
||||
SPLEmitter_ComputeOrthogonalAxes(emtr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,10 +10,12 @@
|
|||
#include "spl_particle.h"
|
||||
|
||||
#define DECODE_WH(X) ((u16)(1 << ((X) + 3)))
|
||||
// clang-format off
|
||||
#define EMITTER_SHOULD_TERMINATE(emtr, header) \
|
||||
(((header->flags.selfMaintaining && header->emitterLifeTime != 0 && emtr->state.started && emtr->age > header->emitterLifeTime) \
|
||||
|| emtr->state.terminate) \
|
||||
|| emtr->state.terminate) \
|
||||
&& emtr->particles.count == 0 && emtr->childParticles.count == 0)
|
||||
// clang-format on
|
||||
|
||||
static u32 SPLUtil_AllocTextureVRAM(u32 size, BOOL is4x4);
|
||||
static u32 SPLUtil_AllocPaletteVRAM(u32 size, BOOL is4Pltt);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
#include "overlay061/struct_ov61_0222B960.h"
|
||||
#include "overlay061/struct_ov61_0222BDC8.h"
|
||||
#include "overlay062/ov62_02248408.h"
|
||||
#include "overlay062/struct_ov62_022349A8.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3_sub3.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3_sub4.h"
|
||||
#include "overlay062/struct_ov62_022349A8_sub3_sub5.h"
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "overlay061/ov61_0222B008.h"
|
||||
#include "overlay061/struct_ov61_0222B960.h"
|
||||
#include "overlay061/struct_ov61_0222BC4C.h"
|
||||
#include "overlay061/struct_ov61_0222BC4C_1.h"
|
||||
|
|
@ -24,7 +25,6 @@
|
|||
#include "overlay061/struct_ov61_0222BEB8.h"
|
||||
#include "overlay061/struct_ov61_0222BED8.h"
|
||||
#include "overlay061/struct_ov61_0222BED8_sub1.h"
|
||||
#include "overlay062/struct_ov62_022349A8.h"
|
||||
#include "overlay062/struct_ov62_02239DA4_sub1.h"
|
||||
#include "overlay062/struct_ov62_0223DF10.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include "struct_defs/struct_0208B878.h"
|
||||
#include "struct_defs/struct_0208C06C.h"
|
||||
|
||||
#include "overlay061/ov61_0222B008.h"
|
||||
#include "overlay061/ov61_0222BC4C.h"
|
||||
#include "overlay061/struct_ov61_0222BE20.h"
|
||||
#include "overlay062/ov62_0222F2C0.h"
|
||||
|
|
@ -27,7 +28,6 @@
|
|||
#include "overlay062/struct_ov62_02233750.h"
|
||||
#include "overlay062/struct_ov62_02233828.h"
|
||||
#include "overlay062/struct_ov62_02233F74.h"
|
||||
#include "overlay062/struct_ov62_022349A8.h"
|
||||
#include "overlay062/struct_ov62_0223CAA4.h"
|
||||
#include "overlay062/struct_ov62_02248CDC.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
#include "overlay062/ov62_02239D60.h"
|
||||
#include "overlay062/ov62_0223CAEC.h"
|
||||
#include "overlay062/ov62_02241204.h"
|
||||
#include "overlay062/struct_ov62_022349A8.h"
|
||||
#include "overlay062/struct_ov62_02241130.h"
|
||||
|
||||
#include "inlines.h"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[wrap-git]
|
||||
url = https://github.com/ntrtwl/NitroDWC.git
|
||||
revision = 4d29f686ae4c2af03f7132571e1481620df3ade1
|
||||
revision = 51e5adf40cfde2b24a885990bf785bf40d54a66c
|
||||
depth = 1
|
||||
directory = NitroDWC-2.2.30008
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user