mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-26 08:41:27 -05:00
Match some troublesome files.
- strlen and strspn had wrong prototype (returned unsigned int instead of size_t) - define NULL as 0L - ov14_0221FC20.c required splitting up Unk_ov14_022248A4
This commit is contained in:
parent
1f4b2c3408
commit
39176124af
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -90,3 +90,5 @@ asm_old/
|
|||
!sub/*.sbin
|
||||
|
||||
uncrustify.cfg
|
||||
compare.sh
|
||||
diff/
|
||||
|
|
|
|||
|
|
@ -1,124 +0,0 @@
|
|||
.public sub_02005748
|
||||
.public sub_0200AAE0
|
||||
.public sub_0200AC1C
|
||||
.public sub_0200B48C
|
||||
.public sub_0200B5CC
|
||||
.public sub_0200B668
|
||||
.public sub_0200BB74
|
||||
.public sub_0200BBA8
|
||||
.public sub_0200BBDC
|
||||
.public sub_0200D9E8
|
||||
.public sub_0200DA58
|
||||
.public sub_020138C8
|
||||
.public sub_02017FC8
|
||||
.public sub_0201807C
|
||||
.public sub_02018144
|
||||
.public sub_02018184
|
||||
.public sub_020181C4
|
||||
.public sub_0201D2D0
|
||||
.public sub_0201D2DC
|
||||
.public sub_0201D2E8
|
||||
.public sub_0201D30C
|
||||
.public GF_AssertFail
|
||||
.public sub_02023790
|
||||
.public sub_020237BC
|
||||
.public sub_020237E8
|
||||
.public sub_02023810
|
||||
.public sub_0202440C
|
||||
.public sub_02025EF4
|
||||
.public sub_02025F30
|
||||
.public sub_02025FCC
|
||||
.public sub_02025FF0
|
||||
.public sub_02026004
|
||||
.public sub_020272A4
|
||||
.public sub_02027560
|
||||
.public sub_02029C88
|
||||
.public sub_02029CD0
|
||||
.public sub_02029D04
|
||||
.public sub_02029D50
|
||||
.public sub_0202A240
|
||||
.public sub_0202A25C
|
||||
.public sub_0202A390
|
||||
.public sub_0202A750
|
||||
.public sub_0202B628
|
||||
.public sub_0202B758
|
||||
.public sub_0202C1C0
|
||||
.public sub_0202CC64
|
||||
.public sub_0202CC84
|
||||
.public sub_0202CD3C
|
||||
.public sub_0202CD88
|
||||
.public sub_0202CF28
|
||||
.public sub_0202CFEC
|
||||
.public sub_0202F134
|
||||
.public sub_02032EE8
|
||||
.public sub_02035E18
|
||||
.public sub_02035E38
|
||||
.public sub_0203608C
|
||||
.public sub_020364F0
|
||||
.public sub_02036540
|
||||
.public sub_020507E4
|
||||
.public sub_02050944
|
||||
.public sub_02050A38
|
||||
.public sub_02050A60
|
||||
.public sub_02050A64
|
||||
.public sub_02055820
|
||||
.public sub_02055868
|
||||
.public sub_0206AA50
|
||||
.public sub_0206AAA8
|
||||
.public sub_0206CF14
|
||||
.public sub_0206DDB8
|
||||
.public sub_02073C74
|
||||
.public sub_02074470
|
||||
.public sub_02074B30
|
||||
.public sub_02075C74
|
||||
.public sub_02076B10
|
||||
.public sub_020775EC
|
||||
.public sub_02079FF4
|
||||
.public sub_020923C0
|
||||
.public sub_02093448
|
||||
.public sub_020935EC
|
||||
.public sub_020937C4
|
||||
.public sub_020937F8
|
||||
.public sub_020939E0
|
||||
.public sub_02093B2C
|
||||
.public sub_02093BBC
|
||||
.public sub_02093C54
|
||||
.public sub_02093C6C
|
||||
.public sub_020944D4
|
||||
.public sub_020944E8
|
||||
.public sub_0209451C
|
||||
.public sub_02094648
|
||||
.public sub_02094680
|
||||
.public sub_02094790
|
||||
.public sub_02094B30
|
||||
.public sub_02094E7C
|
||||
.public sub_02094EB4
|
||||
.public sub_02094F04
|
||||
.public sub_020951B0
|
||||
.public sub_02095338
|
||||
.public sub_02095380
|
||||
.public sub_020954F0
|
||||
.public sub_02095848
|
||||
.public sub_020958C4
|
||||
.public sub_020958FC
|
||||
.public sub_02095904
|
||||
.public sub_0209590C
|
||||
.public sub_02095928
|
||||
.public sub_0209598C
|
||||
.public sub_020959F4
|
||||
.public sub_02095A24
|
||||
.public sub_02095A3C
|
||||
.public sub_02095A74
|
||||
.public sub_02095AF0
|
||||
.public sub_02095B5C
|
||||
.public sub_02095BEC
|
||||
.public MI_CpuFill8
|
||||
.public MI_CpuCopy8
|
||||
.public ov6_02248A64
|
||||
.public ov6_02248AF0
|
||||
.public ov6_02248B70
|
||||
.public ov6_02248BE8
|
||||
.public ov6_02248C68
|
||||
.public ov6_02248CE8
|
||||
.public ov6_02248D64
|
||||
.public ov6_02248DD8
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
.public GF_AssertFail
|
||||
.public sub_02074470
|
||||
.public sub_020759F0
|
||||
.public sub_020787CC
|
||||
.public sub_0207A0F8
|
||||
.public sub_0207A0FC
|
||||
.public _s32_div_f
|
||||
.public _u32_div_f
|
||||
.public ov14_0221FC20
|
||||
.public ov14_0221FD44
|
||||
.public ov14_0221FE38
|
||||
.public ov14_02220078
|
||||
.public ov14_0222254C
|
||||
.public ov14_02222C28
|
||||
.public ov14_02222C60
|
||||
.public ov14_02222C88
|
||||
.public ov14_02222CF0
|
||||
.public ov14_02222D10
|
||||
.public ov14_02222D24
|
||||
.public ov14_02222D34
|
||||
.public ov14_02222D7C
|
||||
.public ov14_02222E84
|
||||
.public ov14_0222327C
|
||||
.public ov14_022233F4
|
||||
.public ov14_0222342C
|
||||
.public ov14_022235F0
|
||||
.public ov14_02223B34
|
||||
.public ov14_02223C8C
|
||||
.public ov14_02223E10
|
||||
.public ov14_02224070
|
||||
.public ov14_0222416C
|
||||
.public ov14_022241A4
|
||||
.public ov14_022244B0
|
||||
.public ov16_0223DF0C
|
||||
.public ov16_0223DF1C
|
||||
.public ov16_0223DF20
|
||||
.public ov16_0223DF60
|
||||
.public ov16_0223DFAC
|
||||
.public ov16_0223E1C4
|
||||
.public ov16_0223E1F8
|
||||
.public ov16_0223E208
|
||||
.public ov16_0223E258
|
||||
.public ov16_0223F4BC
|
||||
.public ov16_02252060
|
||||
.public ov16_02252EC8
|
||||
.public ov16_02254A6C
|
||||
.public ov16_02254FA8
|
||||
.public ov16_022552D4
|
||||
.public ov16_022555A4
|
||||
.public ov16_02255950
|
||||
.public ov16_02255A4C
|
||||
.public ov16_02256128
|
||||
.public ov16_022563F8
|
||||
.public ov16_02257028
|
||||
.public ov16_02258AB8
|
||||
.public ov16_02258B2C
|
||||
.public ov16_02258B80
|
||||
.public ov16_0225A280
|
||||
.public ov16_0225B0FC
|
||||
.public ov16_0225BA88
|
||||
.public ov16_0225BE3C
|
||||
File diff suppressed because it is too large
Load Diff
6
asm/overlay014/ov14_022248A4.s
Normal file
6
asm/overlay014/ov14_022248A4.s
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
.text
|
||||
|
||||
.global Unk_ov14_022248A4
|
||||
Unk_ov14_022248A4: ; 0x022248A4
|
||||
.incbin "incbin/overlay14_rodata.bin", 0x0, 0xA5BC
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
.public sub_02005748
|
||||
.public sub_02006C24
|
||||
.public sub_02006CA8
|
||||
.public sub_0200CC3C
|
||||
.public sub_0200CDC4
|
||||
.public sub_0200CE24
|
||||
.public sub_0200CE54
|
||||
.public sub_0200CE6C
|
||||
.public sub_0200D070
|
||||
.public sub_0200D080
|
||||
.public sub_0200D090
|
||||
.public sub_0200D0A0
|
||||
.public sub_0200D0F4
|
||||
.public sub_0200D324
|
||||
.public sub_0200D3EC
|
||||
.public sub_0200D4C4
|
||||
.public sub_0200D550
|
||||
.public sub_0200D810
|
||||
.public sub_0200D9E8
|
||||
.public sub_0200DA58
|
||||
.public sub_02018144
|
||||
.public sub_020181C4
|
||||
.public sub_02021D6C
|
||||
.public sub_02021E50
|
||||
.public GF_AssertFail
|
||||
.public G2x_SetBlendAlpha_
|
||||
.public MI_CpuFill8
|
||||
.public ov16_0223F9F0
|
||||
.public ov16_0226D160
|
||||
.public ov16_0226D17C
|
||||
.public ov16_0226D2A0
|
||||
.public ov16_0226D34C
|
||||
.public ov16_0226D3F8
|
||||
.public ov16_0226D434
|
||||
.public ov16_0226D540
|
||||
.public ov16_0226D654
|
||||
.public ov16_0226D854
|
||||
.public ov16_0226D938
|
||||
.public ov16_0226D99C
|
||||
.public ov16_0226DAAC
|
||||
.public ov16_0226DB04
|
||||
.public ov16_0226DB44
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,17 +0,0 @@
|
|||
.public MATH_CalcSHA1
|
||||
.public memcpy
|
||||
.public sprintf
|
||||
.public strlen
|
||||
.public strcat
|
||||
.public strncat
|
||||
.public strncmp
|
||||
.public DWC_Alloc
|
||||
.public DWC_Free
|
||||
.public DWC_InitGHTTP
|
||||
.public DWC_ShutdownGHTTP
|
||||
.public DWC_ProcessGHTTP
|
||||
.public DWC_GetGHTTPData
|
||||
.public ov60_0221F838
|
||||
.public ov60_0221F944
|
||||
.public ov60_0221F968
|
||||
.public ov60_0221F9D0
|
||||
|
|
@ -1,711 +0,0 @@
|
|||
.include "macros/function.inc"
|
||||
.include "overlay060/ov60_0221F968.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ov60_0221F968
|
||||
ov60_0221F968: ; 0x0221F968
|
||||
add r0, #8
|
||||
cmp r0, #7
|
||||
bhi _0221F9C2
|
||||
add r0, r0, r0
|
||||
add r0, pc
|
||||
ldrh r0, [r0, #6]
|
||||
lsl r0, r0, #0x10
|
||||
asr r0, r0, #0x10
|
||||
add pc, r0
|
||||
_0221F97A: ; jump table
|
||||
.short _0221F98A - _0221F97A - 2 ; case 0
|
||||
.short _0221F9C2 - _0221F97A - 2 ; case 1
|
||||
.short _0221F992 - _0221F97A - 2 ; case 2
|
||||
.short _0221F99A - _0221F97A - 2 ; case 3
|
||||
.short _0221F9A2 - _0221F97A - 2 ; case 4
|
||||
.short _0221F9AA - _0221F97A - 2 ; case 5
|
||||
.short _0221F9B2 - _0221F97A - 2 ; case 6
|
||||
.short _0221F9BA - _0221F97A - 2 ; case 7
|
||||
_0221F98A:
|
||||
ldr r0, _0221F9CC ; =0x02228E40
|
||||
mov r1, #0
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
_0221F992:
|
||||
ldr r0, _0221F9CC ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
_0221F99A:
|
||||
ldr r0, _0221F9CC ; =0x02228E40
|
||||
mov r1, #2
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
_0221F9A2:
|
||||
ldr r0, _0221F9CC ; =0x02228E40
|
||||
mov r1, #3
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
_0221F9AA:
|
||||
ldr r0, _0221F9CC ; =0x02228E40
|
||||
mov r1, #4
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
_0221F9B2:
|
||||
ldr r0, _0221F9CC ; =0x02228E40
|
||||
mov r1, #5
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
_0221F9BA:
|
||||
ldr r0, _0221F9CC ; =0x02228E40
|
||||
mov r1, #6
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
_0221F9C2:
|
||||
ldr r0, _0221F9CC ; =0x02228E40
|
||||
mov r1, #0
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
nop
|
||||
_0221F9CC: .word Unk_ov60_02228E40
|
||||
thumb_func_end ov60_0221F968
|
||||
|
||||
thumb_func_start ov60_0221F9D0
|
||||
ov60_0221F9D0: ; 0x0221F9D0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x4c
|
||||
add r4, r1, #0
|
||||
mov r3, #0
|
||||
ldr r1, _0221FC58 ; =0x02228E40
|
||||
mvn r3, r3
|
||||
str r3, [r1, #4]
|
||||
ldr r3, [r1, #0]
|
||||
add r6, r0, #0
|
||||
cmp r3, #1
|
||||
bne _0221F9E8
|
||||
b _0221FC52
|
||||
_0221F9E8:
|
||||
cmp r2, #0
|
||||
beq _0221F9EE
|
||||
b _0221FBA2
|
||||
_0221F9EE:
|
||||
cmp r3, #4
|
||||
beq _0221F9FA
|
||||
cmp r3, #6
|
||||
beq _0221FAC6
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221F9FA:
|
||||
cmp r4, #0x20
|
||||
bne _0221FABE
|
||||
ldr r5, [r1, #0x28]
|
||||
ldr r3, _0221FC5C ; =0x02228C4C
|
||||
add r5, #0x14
|
||||
add r2, sp, #4
|
||||
mov r1, #0x11
|
||||
_0221FA08:
|
||||
ldrb r0, [r3]
|
||||
add r3, r3, #1
|
||||
strb r0, [r2]
|
||||
add r2, r2, #1
|
||||
sub r1, r1, #1
|
||||
bne _0221FA08
|
||||
add r3, sp, #0x14
|
||||
ldr r2, _0221FC60 ; =0x02228E74
|
||||
add r3, #1
|
||||
mov r1, #0x15
|
||||
_0221FA1C:
|
||||
ldrb r0, [r2]
|
||||
add r2, r2, #1
|
||||
strb r0, [r3]
|
||||
add r3, r3, #1
|
||||
sub r1, r1, #1
|
||||
bne _0221FA1C
|
||||
add r0, sp, #0x14
|
||||
add r0, #1
|
||||
add r1, r6, #0
|
||||
add r2, r4, #0
|
||||
bl strncat
|
||||
add r0, sp, #0x14
|
||||
add r0, #1
|
||||
bl strlen
|
||||
add r1, sp, #0x14
|
||||
add r2, r0, #0
|
||||
add r0, r5, #0
|
||||
add r1, #1
|
||||
bl MATH_CalcSHA1
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
ldr r1, _0221FC64 ; =0x02228E8C
|
||||
ldr r0, [r0, #0x24]
|
||||
bl strcat
|
||||
mov r2, #0
|
||||
ldr r4, _0221FC58 ; =0x02228E40
|
||||
add r3, r2, #0
|
||||
add r1, sp, #4
|
||||
mov r7, #0xf
|
||||
_0221FA5C:
|
||||
ldrb r0, [r5, r2]
|
||||
asr r0, r0, #4
|
||||
ldrsb r6, [r1, r0]
|
||||
ldr r0, [r4, #0x28]
|
||||
strb r6, [r0, r3]
|
||||
ldrb r0, [r5, r2]
|
||||
ldr r6, [r4, #0x28]
|
||||
add r2, r2, #1
|
||||
and r0, r7
|
||||
ldrsb r0, [r1, r0]
|
||||
add r6, r6, r3
|
||||
add r3, r3, #2
|
||||
strb r0, [r6, #1]
|
||||
cmp r2, #0x14
|
||||
blt _0221FA5C
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r2, #0
|
||||
ldr r1, [r0, #0x28]
|
||||
add r1, #0x28
|
||||
strb r2, [r1]
|
||||
ldr r0, [r0, #0x24]
|
||||
ldr r1, _0221FC68 ; =0x02228E94
|
||||
bl strcat
|
||||
ldr r3, _0221FC58 ; =0x02228E40
|
||||
ldr r0, [r3, #0x30]
|
||||
str r0, [sp]
|
||||
ldr r0, [r3, #0x10]
|
||||
ldr r1, [r3, #0x14]
|
||||
ldr r2, [r3, #0x18]
|
||||
ldr r3, [r3, #0x2c]
|
||||
bl ov60_0221F838
|
||||
cmp r0, #0
|
||||
beq _0221FAB4
|
||||
cmp r0, #1
|
||||
beq _0221FAAA
|
||||
cmp r0, #2
|
||||
bne _0221FAB4
|
||||
_0221FAAA:
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FAB4:
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #5
|
||||
str r1, [r0, #0]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FABE:
|
||||
mov r0, #1
|
||||
str r0, [r1, #0]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FAC6:
|
||||
cmp r4, #0x16
|
||||
bne _0221FB70
|
||||
ldr r1, _0221FC6C ; =0x02228E9C
|
||||
mov r2, #0x16
|
||||
bl strncmp
|
||||
cmp r0, #0
|
||||
bne _0221FAE4
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
mov r1, #0x1a
|
||||
str r1, [r0, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FAE4:
|
||||
ldr r1, _0221FC70 ; =0x02228EB4
|
||||
add r0, r6, #0
|
||||
mov r2, #0x16
|
||||
bl strncmp
|
||||
cmp r0, #0
|
||||
bne _0221FB00
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
mov r1, #0x1b
|
||||
str r1, [r0, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FB00:
|
||||
ldr r1, _0221FC74 ; =0x02228ECC
|
||||
add r0, r6, #0
|
||||
mov r2, #0x16
|
||||
bl strncmp
|
||||
cmp r0, #0
|
||||
bne _0221FB1C
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
mov r1, #0x1c
|
||||
str r1, [r0, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FB1C:
|
||||
ldr r1, _0221FC78 ; =0x02228EE4
|
||||
add r0, r6, #0
|
||||
mov r2, #0x16
|
||||
bl strncmp
|
||||
cmp r0, #0
|
||||
bne _0221FB38
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
mov r1, #0x1d
|
||||
str r1, [r0, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FB38:
|
||||
ldr r1, _0221FC7C ; =0x02228EFC
|
||||
add r0, r6, #0
|
||||
mov r2, #0x16
|
||||
bl strncmp
|
||||
cmp r0, #0
|
||||
bne _0221FB54
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
mov r1, #0x1e
|
||||
str r1, [r0, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FB54:
|
||||
ldr r1, _0221FC80 ; =0x02228F14
|
||||
add r0, r6, #0
|
||||
mov r2, #0x16
|
||||
bl strncmp
|
||||
cmp r0, #0
|
||||
bne _0221FB70
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
mov r1, #0x1f
|
||||
str r1, [r0, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FB70:
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
ldr r2, [r0, #0x20]
|
||||
cmp r4, r2
|
||||
ldr r0, [r0, #0x1c]
|
||||
bgt _0221FB8A
|
||||
add r1, r6, #0
|
||||
add r2, r4, #0
|
||||
bl memcpy
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #7
|
||||
str r1, [r0, #0]
|
||||
b _0221FB9A
|
||||
_0221FB8A:
|
||||
add r1, r6, #0
|
||||
bl memcpy
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
mov r1, #0x20
|
||||
str r1, [r0, #8]
|
||||
_0221FB9A:
|
||||
ldr r0, _0221FC58 ; =0x02228E40
|
||||
add sp, #0x4c
|
||||
str r4, [r0, #0xc]
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FBA2:
|
||||
mov r0, #1
|
||||
str r0, [r1, #0]
|
||||
cmp r2, #0x13
|
||||
bhi _0221FC52
|
||||
add r0, r2, r2
|
||||
add r0, pc
|
||||
ldrh r0, [r0, #6]
|
||||
lsl r0, r0, #0x10
|
||||
asr r0, r0, #0x10
|
||||
add pc, r0
|
||||
_0221FBB6: ; jump table
|
||||
.short _0221FC52 - _0221FBB6 - 2 ; case 0
|
||||
.short _0221FBDE - _0221FBB6 - 2 ; case 1
|
||||
.short _0221FBE6 - _0221FBB6 - 2 ; case 2
|
||||
.short _0221FBEE - _0221FBB6 - 2 ; case 3
|
||||
.short _0221FBF6 - _0221FBB6 - 2 ; case 4
|
||||
.short _0221FBFE - _0221FBB6 - 2 ; case 5
|
||||
.short _0221FC06 - _0221FBB6 - 2 ; case 6
|
||||
.short _0221FC0E - _0221FBB6 - 2 ; case 7
|
||||
.short _0221FC16 - _0221FBB6 - 2 ; case 8
|
||||
.short _0221FC1E - _0221FBB6 - 2 ; case 9
|
||||
.short _0221FC26 - _0221FBB6 - 2 ; case 10
|
||||
.short _0221FC2E - _0221FBB6 - 2 ; case 11
|
||||
.short _0221FC36 - _0221FBB6 - 2 ; case 12
|
||||
.short _0221FC52 - _0221FBB6 - 2 ; case 13
|
||||
.short _0221FC52 - _0221FBB6 - 2 ; case 14
|
||||
.short _0221FC3E - _0221FBB6 - 2 ; case 15
|
||||
.short _0221FC46 - _0221FBB6 - 2 ; case 16
|
||||
.short _0221FC52 - _0221FBB6 - 2 ; case 17
|
||||
.short _0221FC52 - _0221FBB6 - 2 ; case 18
|
||||
.short _0221FC4E - _0221FBB6 - 2 ; case 19
|
||||
_0221FBDE:
|
||||
mov r0, #8
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FBE6:
|
||||
mov r0, #9
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FBEE:
|
||||
mov r0, #0xa
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FBF6:
|
||||
mov r0, #0xb
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FBFE:
|
||||
mov r0, #0xc
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC06:
|
||||
mov r0, #0xd
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC0E:
|
||||
mov r0, #0xe
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC16:
|
||||
mov r0, #0xf
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC1E:
|
||||
mov r0, #0x10
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC26:
|
||||
mov r0, #0x11
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC2E:
|
||||
mov r0, #0x12
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC36:
|
||||
mov r0, #0x13
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC3E:
|
||||
mov r0, #0x16
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC46:
|
||||
mov r0, #0x17
|
||||
str r0, [r1, #8]
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_0221FC4E:
|
||||
mov r0, #0x19
|
||||
str r0, [r1, #8]
|
||||
_0221FC52:
|
||||
add sp, #0x4c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_0221FC58: .word Unk_ov60_02228E40
|
||||
_0221FC5C: .word Unk_ov60_02228C4C
|
||||
_0221FC60: .word Unk_ov60_02228E74
|
||||
_0221FC64: .word Unk_ov60_02228E8C
|
||||
_0221FC68: .word Unk_ov60_02228E94
|
||||
_0221FC6C: .word Unk_ov60_02228E9C
|
||||
_0221FC70: .word Unk_ov60_02228EB4
|
||||
_0221FC74: .word Unk_ov60_02228ECC
|
||||
_0221FC78: .word Unk_ov60_02228EE4
|
||||
_0221FC7C: .word Unk_ov60_02228EFC
|
||||
_0221FC80: .word Unk_ov60_02228F14
|
||||
thumb_func_end ov60_0221F9D0
|
||||
|
||||
thumb_func_start ov60_0221FC84
|
||||
ov60_0221FC84: ; 0x0221FC84
|
||||
push {r3, lr}
|
||||
ldr r0, _0221FCA4 ; =0x02228E40
|
||||
mov r1, #2
|
||||
str r1, [r0, #0]
|
||||
sub r1, r1, #3
|
||||
str r1, [r0, #4]
|
||||
mov r0, #0
|
||||
bl DWC_InitGHTTP
|
||||
cmp r0, #0
|
||||
bne _0221FCA0
|
||||
ldr r0, _0221FCA4 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
_0221FCA0:
|
||||
pop {r3, pc}
|
||||
nop
|
||||
_0221FCA4: .word Unk_ov60_02228E40
|
||||
thumb_func_end ov60_0221FC84
|
||||
|
||||
thumb_func_start ov60_0221FCA8
|
||||
ov60_0221FCA8: ; 0x0221FCA8
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r1, #0
|
||||
ldr r1, _0221FD38 ; =0x02228E40
|
||||
add r4, r3, #0
|
||||
ldr r3, [r1, #0]
|
||||
add r7, r0, #0
|
||||
cmp r3, #2
|
||||
beq _0221FCBC
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_0221FCBC:
|
||||
str r5, [r1, #0x10]
|
||||
str r2, [r1, #0x14]
|
||||
str r4, [r1, #0x18]
|
||||
ldr r2, [sp, #0x18]
|
||||
add r4, #8
|
||||
str r2, [r1, #0x1c]
|
||||
ldr r2, [sp, #0x1c]
|
||||
str r2, [r1, #0x20]
|
||||
bl strlen
|
||||
add r6, r0, #0
|
||||
add r0, r4, #0
|
||||
bl ov60_0221F944
|
||||
add r1, r0, #0
|
||||
add r6, #0x45
|
||||
mov r0, #0xa
|
||||
add r1, r6, r1
|
||||
bl DWC_Alloc
|
||||
ldr r1, _0221FD38 ; =0x02228E40
|
||||
cmp r0, #0
|
||||
str r0, [r1, #0x24]
|
||||
bne _0221FCF0
|
||||
mov r0, #2
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_0221FCF0:
|
||||
ldr r1, _0221FD3C ; =0x02228F2C
|
||||
add r2, r7, #0
|
||||
add r3, r5, #0
|
||||
bl sprintf
|
||||
ldr r0, _0221FD38 ; =0x02228E40
|
||||
ldr r6, [r0, #0x24]
|
||||
add r0, r6, #0
|
||||
bl strlen
|
||||
add r5, r0, #0
|
||||
ldr r0, _0221FD40 ; =0x02228E8C
|
||||
bl strlen
|
||||
add r1, r6, r5
|
||||
add r1, r1, r0
|
||||
ldr r0, _0221FD38 ; =0x02228E40
|
||||
str r1, [r0, #0x28]
|
||||
ldr r0, _0221FD44 ; =0x02228E94
|
||||
bl strlen
|
||||
ldr r1, _0221FD38 ; =0x02228E40
|
||||
ldr r2, [r1, #0x28]
|
||||
add r2, #0x28
|
||||
add r0, r2, r0
|
||||
str r0, [r1, #0x2c]
|
||||
add r0, r4, #0
|
||||
bl ov60_0221F944
|
||||
add r1, r0, #1
|
||||
ldr r0, _0221FD38 ; =0x02228E40
|
||||
str r1, [r0, #0x30]
|
||||
mov r1, #3
|
||||
str r1, [r0, #0]
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_0221FD38: .word Unk_ov60_02228E40
|
||||
_0221FD3C: .word Unk_ov60_02228F2C
|
||||
_0221FD40: .word Unk_ov60_02228E8C
|
||||
_0221FD44: .word Unk_ov60_02228E94
|
||||
thumb_func_end ov60_0221FCA8
|
||||
|
||||
thumb_func_start ov60_0221FD48
|
||||
ov60_0221FD48: ; 0x0221FD48
|
||||
push {r3, lr}
|
||||
ldr r1, _0221FDE0 ; =0x02228E40
|
||||
ldr r0, [r1, #0]
|
||||
cmp r0, #7
|
||||
bhi _0221FDD8
|
||||
add r0, r0, r0
|
||||
add r0, pc
|
||||
ldrh r0, [r0, #6]
|
||||
lsl r0, r0, #0x10
|
||||
asr r0, r0, #0x10
|
||||
add pc, r0
|
||||
_0221FD5E: ; jump table
|
||||
.short _0221FDD8 - _0221FD5E - 2 ; case 0
|
||||
.short _0221FDD8 - _0221FD5E - 2 ; case 1
|
||||
.short _0221FDD8 - _0221FD5E - 2 ; case 2
|
||||
.short _0221FD6E - _0221FD5E - 2 ; case 3
|
||||
.short _0221FD94 - _0221FD5E - 2 ; case 4
|
||||
.short _0221FDA4 - _0221FD5E - 2 ; case 5
|
||||
.short _0221FDCA - _0221FD5E - 2 ; case 6
|
||||
.short _0221FDD8 - _0221FD5E - 2 ; case 7
|
||||
_0221FD6E:
|
||||
ldr r0, [r1, #0x24]
|
||||
ldr r1, _0221FDE4 ; =ov60_0221F9D0
|
||||
ldr r2, _0221FDE8 ; =0x02228E40
|
||||
bl DWC_GetGHTTPData
|
||||
ldr r1, _0221FDE0 ; =0x02228E40
|
||||
str r0, [r1, #4]
|
||||
bl ov60_0221F968
|
||||
ldr r0, _0221FDE0 ; =0x02228E40
|
||||
ldr r1, [r0, #4]
|
||||
cmp r1, #0
|
||||
blt _0221FD8E
|
||||
mov r1, #4
|
||||
str r1, [r0, #0]
|
||||
b _0221FDD8
|
||||
_0221FD8E:
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
b _0221FDD8
|
||||
_0221FD94:
|
||||
bl DWC_ProcessGHTTP
|
||||
cmp r0, #0
|
||||
bne _0221FDD8
|
||||
ldr r0, _0221FDE0 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
b _0221FDD8
|
||||
_0221FDA4:
|
||||
ldr r0, [r1, #0x24]
|
||||
ldr r1, _0221FDE4 ; =ov60_0221F9D0
|
||||
ldr r2, _0221FDE8 ; =0x02228E40
|
||||
bl DWC_GetGHTTPData
|
||||
ldr r1, _0221FDE0 ; =0x02228E40
|
||||
str r0, [r1, #4]
|
||||
bl ov60_0221F968
|
||||
ldr r0, _0221FDE0 ; =0x02228E40
|
||||
ldr r1, [r0, #4]
|
||||
cmp r1, #0
|
||||
blt _0221FDC4
|
||||
mov r1, #6
|
||||
str r1, [r0, #0]
|
||||
b _0221FDD8
|
||||
_0221FDC4:
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
b _0221FDD8
|
||||
_0221FDCA:
|
||||
bl DWC_ProcessGHTTP
|
||||
cmp r0, #0
|
||||
bne _0221FDD8
|
||||
ldr r0, _0221FDE0 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
_0221FDD8:
|
||||
ldr r0, _0221FDE0 ; =0x02228E40
|
||||
ldr r0, [r0, #0]
|
||||
pop {r3, pc}
|
||||
nop
|
||||
_0221FDE0: .word Unk_ov60_02228E40
|
||||
_0221FDE4: .word ov60_0221F9D0
|
||||
_0221FDE8: .word Unk_ov60_02228E40
|
||||
thumb_func_end ov60_0221FD48
|
||||
|
||||
thumb_func_start ov60_0221FDEC
|
||||
ov60_0221FDEC: ; 0x0221FDEC
|
||||
push {r3, lr}
|
||||
ldr r0, _0221FE10 ; =0x02228E40
|
||||
ldr r1, [r0, #0x24]
|
||||
cmp r1, #0
|
||||
beq _0221FE04
|
||||
mov r0, #0xa
|
||||
mov r2, #0
|
||||
bl DWC_Free
|
||||
ldr r0, _0221FE10 ; =0x02228E40
|
||||
mov r1, #0
|
||||
str r1, [r0, #0x24]
|
||||
_0221FE04:
|
||||
bl DWC_ShutdownGHTTP
|
||||
ldr r0, _0221FE10 ; =0x02228E40
|
||||
mov r1, #1
|
||||
str r1, [r0, #0]
|
||||
pop {r3, pc}
|
||||
; .align 2, 0
|
||||
_0221FE10: .word Unk_ov60_02228E40
|
||||
thumb_func_end ov60_0221FDEC
|
||||
|
||||
thumb_func_start ov60_0221FE14
|
||||
ov60_0221FE14: ; 0x0221FE14
|
||||
ldr r0, _0221FE1C ; =0x02228E40
|
||||
ldr r0, [r0, #8]
|
||||
bx lr
|
||||
nop
|
||||
_0221FE1C: .word Unk_ov60_02228E40
|
||||
thumb_func_end ov60_0221FE14
|
||||
|
||||
thumb_func_start ov60_0221FE20
|
||||
ov60_0221FE20: ; 0x0221FE20
|
||||
ldr r0, _0221FE28 ; =0x02228E40
|
||||
ldr r0, [r0, #0xc]
|
||||
bx lr
|
||||
nop
|
||||
_0221FE28: .word Unk_ov60_02228E40
|
||||
thumb_func_end ov60_0221FE20
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov60_02228C4C
|
||||
Unk_ov60_02228C4C: ; 0x02228C4C
|
||||
.incbin "incbin/overlay60_rodata.bin", 0x0, 0x11
|
||||
|
||||
|
||||
|
||||
.data
|
||||
|
||||
|
||||
.global Unk_ov60_02228E40
|
||||
Unk_ov60_02228E40: ; 0x02228E40
|
||||
.incbin "incbin/overlay60_data.bin", 0x0, 0x34 - 0x0
|
||||
|
||||
.global Unk_ov60_02228E74
|
||||
Unk_ov60_02228E74: ; 0x02228E74
|
||||
.incbin "incbin/overlay60_data.bin", 0x34, 0x4C - 0x34
|
||||
|
||||
.global Unk_ov60_02228E8C
|
||||
Unk_ov60_02228E8C: ; 0x02228E8C
|
||||
.incbin "incbin/overlay60_data.bin", 0x4C, 0x54 - 0x4C
|
||||
|
||||
.global Unk_ov60_02228E94
|
||||
Unk_ov60_02228E94: ; 0x02228E94
|
||||
.incbin "incbin/overlay60_data.bin", 0x54, 0x5C - 0x54
|
||||
|
||||
.global Unk_ov60_02228E9C
|
||||
Unk_ov60_02228E9C: ; 0x02228E9C
|
||||
.incbin "incbin/overlay60_data.bin", 0x5C, 0x74 - 0x5C
|
||||
|
||||
.global Unk_ov60_02228EB4
|
||||
Unk_ov60_02228EB4: ; 0x02228EB4
|
||||
.incbin "incbin/overlay60_data.bin", 0x74, 0x8C - 0x74
|
||||
|
||||
.global Unk_ov60_02228ECC
|
||||
Unk_ov60_02228ECC: ; 0x02228ECC
|
||||
.incbin "incbin/overlay60_data.bin", 0x8C, 0xA4 - 0x8C
|
||||
|
||||
.global Unk_ov60_02228EE4
|
||||
Unk_ov60_02228EE4: ; 0x02228EE4
|
||||
.incbin "incbin/overlay60_data.bin", 0xA4, 0xBC - 0xA4
|
||||
|
||||
.global Unk_ov60_02228EFC
|
||||
Unk_ov60_02228EFC: ; 0x02228EFC
|
||||
.incbin "incbin/overlay60_data.bin", 0xBC, 0xD4 - 0xBC
|
||||
|
||||
.global Unk_ov60_02228F14
|
||||
Unk_ov60_02228F14: ; 0x02228F14
|
||||
.incbin "incbin/overlay60_data.bin", 0xD4, 0xEC - 0xD4
|
||||
|
||||
.global Unk_ov60_02228F2C
|
||||
Unk_ov60_02228F2C: ; 0x02228F2C
|
||||
.incbin "incbin/overlay60_data.bin", 0xEC, 0xA
|
||||
|
||||
3703
asm/unk_020933F8.s
3703
asm/unk_020933F8.s
File diff suppressed because it is too large
Load Diff
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#pragma warn_padding off
|
||||
//#include <stdio.h>
|
||||
#include <null.h>
|
||||
#include <size_t.h>
|
||||
#pragma warn_padding reset
|
||||
#include <stdarg.h>
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ typedef int BOOL;
|
|||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
// already defined in an MSL header
|
||||
#ifndef NULL
|
||||
#ifdef __cplusplus
|
||||
#define NULL 0
|
||||
|
|
|
|||
8
lib/include/null.h
Normal file
8
lib/include/null.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef MSL_NULL_H
|
||||
#define MSL_NULL_H
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0L
|
||||
#endif
|
||||
|
||||
#endif // MSL_NULL_H
|
||||
|
|
@ -13,12 +13,12 @@ void * memcpy(void * dest, const void * src, size_t size);
|
|||
void * memchr(const void * arr, int value, size_t size);
|
||||
int memcmp(const void * a, const void * b, size_t size);
|
||||
char * strcpy(char * dest, const char * src);
|
||||
unsigned strlen(const char * str);
|
||||
size_t strlen(const char * str);
|
||||
char * strncpy(char * dest, const char * src, size_t n);
|
||||
int strcmp(const char * a, const char * b);
|
||||
char * strcat(char * dest, const char * src);
|
||||
char * strncat(char * dest, const char * src, size_t n);
|
||||
unsigned strspn(const char * a, const char * b);
|
||||
size_t strspn(const char * a, const char * b);
|
||||
char * strtok(char * str, const char * sep);
|
||||
char * strstr(const char * haystack, const char * needle);
|
||||
|
||||
|
|
|
|||
9
main.lsf
9
main.lsf
|
|
@ -320,7 +320,7 @@ Static main
|
|||
Object src/unk_020920C0.o
|
||||
Object src/unk_020923C0.o
|
||||
Object src/unk_02092494.o
|
||||
Object asm/unk_020933F8.o
|
||||
Object src/unk_020933F8.o
|
||||
Object src/unk_02094EDC.o
|
||||
Object src/unk_02095AF0.o
|
||||
Object src/unk_02095CD4.o
|
||||
|
|
@ -1026,7 +1026,8 @@ Overlay overlay13
|
|||
Overlay overlay14
|
||||
{
|
||||
After overlay11
|
||||
Object asm/overlay014/ov14_0221FC20.o
|
||||
Object src/overlay014/ov14_0221FC20.o
|
||||
Object asm/overlay014/ov14_022248A4.o
|
||||
}
|
||||
|
||||
Overlay overlay15
|
||||
|
|
@ -1050,7 +1051,7 @@ Overlay overlay16
|
|||
Object asm/overlay016/ov16_02266F1C.o
|
||||
Object src/overlay016/ov16_02268520.o
|
||||
Object asm/overlay016/ov16_0226871C.o
|
||||
Object asm/overlay016/ov16_0226D094.o
|
||||
Object src/overlay016/ov16_0226D094.o
|
||||
Object src/overlay016/ov16_0226DB7C.o
|
||||
Object src/overlay016/ov16_0226DE44.o
|
||||
Object src/overlay016/ov16_0226E148.o
|
||||
|
|
@ -1555,7 +1556,7 @@ Overlay overlay60
|
|||
{
|
||||
After overlay4
|
||||
Object src/overlay060/ov60_0221F800.o
|
||||
Object asm/overlay060/ov60_0221F968.o
|
||||
Object src/overlay060/ov60_0221F968.o
|
||||
Object asm/overlay060/ov60_0221FE2C.o
|
||||
Object asm/overlay060/ov60_022206D4.o
|
||||
Object asm/overlay060/ov60_02220844.o
|
||||
|
|
|
|||
4097
src/overlay014/ov14_0221FC20.c
Normal file
4097
src/overlay014/ov14_0221FC20.c
Normal file
File diff suppressed because it is too large
Load Diff
709
src/overlay016/ov16_0226D094.c
Normal file
709
src/overlay016/ov16_0226D094.c
Normal file
|
|
@ -0,0 +1,709 @@
|
|||
#include "enums.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "assert.h"
|
||||
|
||||
#include "struct_decls/struct_02002F38_decl.h"
|
||||
#include "struct_decls/struct_02006C24_decl.h"
|
||||
#include "struct_decls/struct_0200C6E4_decl.h"
|
||||
#include "struct_decls/struct_0200C704_decl.h"
|
||||
#include "struct_decls/struct_0201CD38_decl.h"
|
||||
|
||||
#include "struct_defs/struct_0200D0F4.h"
|
||||
#include "overlay104/struct_ov104_0223F9E0.h"
|
||||
|
||||
#include "unk_02005474.h"
|
||||
#include "unk_020068C8.h"
|
||||
#include "unk_0200C6E4.h"
|
||||
#include "unk_0200D9E8.h"
|
||||
#include "unk_02017E74.h"
|
||||
#include "unk_020218BC.h"
|
||||
#include "overlay016/ov16_0223DF00.h"
|
||||
#include "overlay016/ov16_0226D094.h"
|
||||
|
||||
typedef struct {
|
||||
UnkStruct_0200D0F4 * unk_00;
|
||||
UnkStruct_0201CD38 * unk_04;
|
||||
UnkEnum_ov16_0226D220 unk_08;
|
||||
UnkEnum_ov16_0226D194 unk_0C;
|
||||
UnkEnum_ov16_0226D194_3 unk_10;
|
||||
s32 unk_14;
|
||||
s16 unk_18;
|
||||
u8 unk_1A;
|
||||
u8 unk_1B;
|
||||
} UnkStruct_ov16_0226D2A0;
|
||||
|
||||
typedef struct {
|
||||
UnkStruct_0200D0F4 * unk_00;
|
||||
UnkStruct_0201CD38 * unk_04;
|
||||
UnkEnum_ov16_0226D194 unk_08;
|
||||
UnkEnum_ov16_0226D194_3 unk_0C;
|
||||
UnkEnum_ov16_0226D194_2 unk_10;
|
||||
s8 * unk_14;
|
||||
s16 * unk_18;
|
||||
s32 unk_1C;
|
||||
s32 unk_20;
|
||||
s32 unk_24;
|
||||
s16 unk_28;
|
||||
u16 unk_2A;
|
||||
u8 unk_2C;
|
||||
u8 unk_2D;
|
||||
u8 unk_2E;
|
||||
u8 unk_2F;
|
||||
} UnkStruct_ov16_0226D540;
|
||||
|
||||
typedef struct UnkStruct_ov16_0226D160_t {
|
||||
UnkStruct_ov16_0226D2A0 unk_00;
|
||||
UnkStruct_ov16_0226D540 unk_1C[6];
|
||||
s8 unk_13C;
|
||||
} UnkStruct_ov16_0226D160;
|
||||
|
||||
static void ov16_0226D2A0(UnkStruct_ov16_0226D2A0 * param0, UnkEnum_ov16_0226D194 param1, UnkEnum_ov16_0226D194_3 param2, UnkStruct_0200C6E4 * param3, UnkStruct_0200C704 * param4);
|
||||
static void ov16_0226D3F8(UnkStruct_ov16_0226D2A0 * param0, UnkEnum_ov16_0226D220 param1);
|
||||
static void ov16_0226D540(UnkStruct_ov16_0226D540 * param0, s8 * param1, UnkEnum_ov16_0226D194 param2, UnkEnum_ov16_0226D194_1 param3, UnkEnum_ov16_0226D194_3 param4, int param5, int param6, UnkStruct_0200C6E4 * param7, UnkStruct_0200C704 * param8);
|
||||
static void ov16_0226D938(UnkStruct_ov16_0226D540 * param0, int param1, UnkEnum_ov16_0226D194_2 param2, s16 * param3);
|
||||
static void ov16_0226D34C(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov16_0226D434(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov16_0226D654(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov16_0226D854(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov16_0226D99C(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov16_0226DAAC(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static int ov16_0226DB04(int param0, UnkEnum_ov16_0226D194 param1);
|
||||
static int ov16_0226DB44(int param0);
|
||||
static UnkStruct_ov16_0226D160 * ov16_0226D160(void);
|
||||
static void ov16_0226D17C(UnkStruct_ov16_0226D160 * param0);
|
||||
|
||||
static const UnkStruct_ov104_0223F9E0 Unk_ov16_02270A3C = {
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0xA,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{0x4FBD, 0x4E45, 0x4FB7, 0x4FAC, 0xFFFFFFFF, 0xFFFFFFFF},
|
||||
0x0,
|
||||
0x0
|
||||
};
|
||||
|
||||
static const UnkStruct_ov104_0223F9E0 Unk_ov16_02270A70 = {
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x8,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{0x4FBD, 0x4E45, 0x4FB7, 0x4FAC, 0xFFFFFFFF, 0xFFFFFFFF},
|
||||
0x0,
|
||||
0x0
|
||||
};
|
||||
|
||||
__attribute__((aligned(4))) static const u16 Unk_ov16_02270A2C[] = {
|
||||
0x54,
|
||||
0x78,
|
||||
0x78
|
||||
};
|
||||
|
||||
__attribute__((aligned(4))) static const u16 Unk_ov16_02270A24[] = {
|
||||
0x14,
|
||||
0x38,
|
||||
0x38
|
||||
};
|
||||
|
||||
__attribute__((aligned(4))) static const u16 Unk_ov16_02270A34[] = {
|
||||
0x4E,
|
||||
0x72,
|
||||
0x72
|
||||
};
|
||||
|
||||
__attribute__((aligned(4))) static const u16 Unk_ov16_02270A1C[] = {
|
||||
0xE,
|
||||
0x32,
|
||||
0x32
|
||||
};
|
||||
|
||||
void ov16_0226D094 (UnkStruct_0200C6E4 * param0, UnkStruct_0200C704 * param1, UnkStruct_02002F38 * param2)
|
||||
{
|
||||
UnkStruct_02006C24 * v0;
|
||||
|
||||
v0 = sub_02006C24(27, 5);
|
||||
|
||||
sub_0200CDC4(param2, 2, param0, param1, v0, 110, 0, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 20037);
|
||||
sub_0200CC3C(param0, param1, v0, 340, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 20413);
|
||||
sub_0200CE24(param0, param1, v0, 341, 1, 20407);
|
||||
sub_0200CE54(param0, param1, v0, 342, 1, 20396);
|
||||
sub_02006CA8(v0);
|
||||
}
|
||||
|
||||
void ov16_0226D12C (UnkStruct_0200C704 * param0)
|
||||
{
|
||||
sub_0200D070(param0, 20413);
|
||||
sub_0200D080(param0, 20037);
|
||||
sub_0200D090(param0, 20407);
|
||||
sub_0200D0A0(param0, 20396);
|
||||
}
|
||||
|
||||
static UnkStruct_ov16_0226D160 * ov16_0226D160 (void)
|
||||
{
|
||||
UnkStruct_ov16_0226D160 * v0;
|
||||
|
||||
v0 = sub_02018144(5, sizeof(UnkStruct_ov16_0226D160));
|
||||
MI_CpuClear8(v0, sizeof(UnkStruct_ov16_0226D160));
|
||||
return v0;
|
||||
}
|
||||
|
||||
static void ov16_0226D17C (UnkStruct_ov16_0226D160 * param0)
|
||||
{
|
||||
GF_ASSERT(param0->unk_00.unk_04 == NULL);
|
||||
sub_020181C4(param0);
|
||||
}
|
||||
|
||||
UnkStruct_ov16_0226D160 * ov16_0226D194 (u8 param0[], UnkEnum_ov16_0226D194 param1, UnkEnum_ov16_0226D194_1 param2, UnkEnum_ov16_0226D194_3 param3, UnkStruct_0200C6E4 * param4, UnkStruct_0200C704 * param5)
|
||||
{
|
||||
UnkStruct_ov16_0226D160 * v0;
|
||||
int v1, v2;
|
||||
|
||||
v0 = ov16_0226D160();
|
||||
ov16_0226D2A0(&v0->unk_00, param1, param3, param4, param5);
|
||||
|
||||
for (v1 = 0; v1 < 6; v1++) {
|
||||
v2 = ov16_0226DB04(param0[v1], param1);
|
||||
ov16_0226D540(&v0->unk_1C[v1], &v0->unk_13C, param1, param2, param3, v1, v2, param4, param5);
|
||||
}
|
||||
|
||||
return v0;
|
||||
}
|
||||
|
||||
BOOL ov16_0226D1FC (UnkStruct_ov16_0226D160 * param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
if (param0->unk_00.unk_04 == NULL) {
|
||||
for (v0 = 0; v0 < 6; v0++) {
|
||||
if (param0->unk_1C[v0].unk_04 != NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (v0 == 6) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ov16_0226D220 (UnkStruct_ov16_0226D160 * param0, UnkEnum_ov16_0226D220 param1, UnkEnum_ov16_0226D194_2 param2)
|
||||
{
|
||||
int v0;
|
||||
|
||||
GF_ASSERT(param0 != NULL);
|
||||
|
||||
ov16_0226D3F8(¶m0->unk_00, param1);
|
||||
|
||||
for (v0 = 0; v0 < 6; v0++) {
|
||||
ov16_0226D938(¶m0->unk_1C[v0], v0, param2, ¶m0->unk_00.unk_18);
|
||||
}
|
||||
}
|
||||
|
||||
BOOL ov16_0226D258 (UnkStruct_ov16_0226D160 * param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
if (param0->unk_00.unk_04 == NULL) {
|
||||
for (v0 = 0; v0 < 6; v0++) {
|
||||
if (param0->unk_1C[v0].unk_04 != NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (v0 == 6) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ov16_0226D27C (UnkStruct_ov16_0226D160 * param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
sub_0200D0F4(param0->unk_00.unk_00);
|
||||
|
||||
for (v0 = 0; v0 < 6; v0++) {
|
||||
sub_0200D0F4(param0->unk_1C[v0].unk_00);
|
||||
}
|
||||
|
||||
ov16_0226D17C(param0);
|
||||
}
|
||||
|
||||
static void ov16_0226D2A0 (UnkStruct_ov16_0226D2A0 * param0, UnkEnum_ov16_0226D194 param1, UnkEnum_ov16_0226D194_3 param2, UnkStruct_0200C6E4 * param3, UnkStruct_0200C704 * param4)
|
||||
{
|
||||
GF_ASSERT(param0->unk_00 == NULL && param0->unk_04 == NULL);
|
||||
|
||||
MI_CpuClear8(param0, sizeof(UnkStruct_ov16_0226D2A0));
|
||||
|
||||
param0->unk_00 = sub_0200CE6C(param3, param4, &Unk_ov16_02270A3C);
|
||||
|
||||
if (param1 == UnkEnum_ov16_0226D194_00) {
|
||||
sub_0200D4C4(param0->unk_00, (256 + 96), Unk_ov16_02270A2C[param2]);
|
||||
sub_02021D6C(param0->unk_00->unk_00, 8);
|
||||
} else {
|
||||
sub_0200D4C4(param0->unk_00, -96, Unk_ov16_02270A24[param2]);
|
||||
sub_02021D6C(param0->unk_00->unk_00, 7);
|
||||
}
|
||||
|
||||
sub_0200D324(param0->unk_00->unk_00);
|
||||
|
||||
param0->unk_0C = param1;
|
||||
param0->unk_10 = param2;
|
||||
param0->unk_1A = 0;
|
||||
param0->unk_04 = sub_0200D9E8(ov16_0226D34C, param0, 500);
|
||||
|
||||
sub_02005748(1809);
|
||||
}
|
||||
|
||||
static void ov16_0226D34C (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov16_0226D2A0 * v0 = param1;
|
||||
|
||||
switch (v0->unk_1A) {
|
||||
case 0:
|
||||
{
|
||||
s16 v1, v2;
|
||||
|
||||
sub_0200D550(v0->unk_00, &v1, &v2);
|
||||
v0->unk_14 = v1 << 8;
|
||||
}
|
||||
v0->unk_1A++;
|
||||
|
||||
case 1:
|
||||
if (v0->unk_0C == UnkEnum_ov16_0226D194_00) {
|
||||
v0->unk_14 -= 0x1200;
|
||||
|
||||
if (v0->unk_14 <= (256 - 32) << 8) {
|
||||
v0->unk_14 = (256 - 32) << 8;
|
||||
v0->unk_1A++;
|
||||
}
|
||||
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_14 >> 8, Unk_ov16_02270A2C[v0->unk_10]);
|
||||
} else {
|
||||
v0->unk_14 += 0x1200;
|
||||
|
||||
if (v0->unk_14 >= 32 << 8) {
|
||||
v0->unk_14 = 32 << 8;
|
||||
v0->unk_1A++;
|
||||
}
|
||||
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_14 >> 8, Unk_ov16_02270A24[v0->unk_10]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sub_0200DA58(param0);
|
||||
v0->unk_04 = NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov16_0226D3F8 (UnkStruct_ov16_0226D2A0 * param0, UnkEnum_ov16_0226D220 param1)
|
||||
{
|
||||
GF_ASSERT(param0->unk_00 != NULL && param0->unk_04 == NULL);
|
||||
|
||||
param0->unk_1A = 0;
|
||||
param0->unk_08 = param1;
|
||||
|
||||
if (param1 == UnkEnum_ov16_0226D220_00) {
|
||||
param0->unk_1B = 4;
|
||||
} else {
|
||||
param0->unk_1B = 0;
|
||||
}
|
||||
|
||||
param0->unk_04 = sub_0200D9E8(ov16_0226D434, param0, 500);
|
||||
}
|
||||
|
||||
static void ov16_0226D434 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov16_0226D2A0 * v0 = param1;
|
||||
|
||||
switch (v0->unk_1A) {
|
||||
case 0:
|
||||
{
|
||||
s16 v1, v2;
|
||||
|
||||
sub_0200D550(v0->unk_00, &v1, &v2);
|
||||
v0->unk_14 = v1 << 8;
|
||||
}
|
||||
|
||||
sub_0200D810(v0->unk_00, GX_OAM_MODE_XLU);
|
||||
|
||||
v0->unk_18 = 16 << 8;
|
||||
G2_SetBlendAlpha(GX_BLEND_PLANEMASK_NONE, GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_OBJ | GX_BLEND_PLANEMASK_BD, (v0->unk_18 >> 8), 16 - (v0->unk_18 >> 8));
|
||||
v0->unk_1A++;
|
||||
case 1:
|
||||
if (v0->unk_1B > 0) {
|
||||
v0->unk_1B--;
|
||||
break;
|
||||
}
|
||||
|
||||
v0->unk_1A++;
|
||||
case 2:
|
||||
if (v0->unk_08 == UnkEnum_ov16_0226D220_00) {
|
||||
if (v0->unk_0C == UnkEnum_ov16_0226D194_00) {
|
||||
v0->unk_14 -= 0x400;
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_14 >> 8, Unk_ov16_02270A2C[v0->unk_10]);
|
||||
} else {
|
||||
v0->unk_14 += 0x400;
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_14 >> 8, Unk_ov16_02270A24[v0->unk_10]);
|
||||
}
|
||||
}
|
||||
|
||||
v0->unk_18 -= 0x100;
|
||||
|
||||
if (v0->unk_18 <= 0) {
|
||||
v0->unk_18 = 0;
|
||||
sub_0200D3EC(v0->unk_00->unk_00, 0);
|
||||
v0->unk_1A++;
|
||||
}
|
||||
|
||||
G2_ChangeBlendAlpha(v0->unk_18 >> 8, 16 - (v0->unk_18 >> 8));
|
||||
break;
|
||||
default:
|
||||
ov16_0223F9F0();
|
||||
sub_0200DA58(param0);
|
||||
v0->unk_04 = NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov16_0226D540 (UnkStruct_ov16_0226D540 * param0, s8 * param1, UnkEnum_ov16_0226D194 param2, UnkEnum_ov16_0226D194_1 param3, UnkEnum_ov16_0226D194_3 param4, int param5, int param6, UnkStruct_0200C6E4 * param7, UnkStruct_0200C704 * param8)
|
||||
{
|
||||
GF_ASSERT(param0->unk_00 == NULL && param0->unk_04 == NULL);
|
||||
|
||||
MI_CpuClear8(param0, sizeof(UnkStruct_ov16_0226D540));
|
||||
param0->unk_00 = sub_0200CE6C(param7, param8, &Unk_ov16_02270A70);
|
||||
|
||||
if (param2 == UnkEnum_ov16_0226D194_00) {
|
||||
sub_0200D4C4(param0->unk_00, (256 + 20), Unk_ov16_02270A34[param4]);
|
||||
} else {
|
||||
sub_0200D4C4(param0->unk_00, -20, Unk_ov16_02270A1C[param4]);
|
||||
}
|
||||
|
||||
sub_02021D6C(param0->unk_00->unk_00, param6);
|
||||
sub_0200D324(param0->unk_00->unk_00);
|
||||
|
||||
param0->unk_08 = param2;
|
||||
param0->unk_2D = param5;
|
||||
param0->unk_0C = param4;
|
||||
param0->unk_2E = ov16_0226DB44(param6);
|
||||
param0->unk_14 = param1;
|
||||
param0->unk_2A = ((param6 == 6) ? 1811 : 1810);
|
||||
|
||||
if (param2 == UnkEnum_ov16_0226D194_00) {
|
||||
param0->unk_20 = (256 - 128 + 20 + 14) + param5 * 16;
|
||||
param0->unk_24 = (256 - 128 + 20 + 14) + param5 * 15 - 6;
|
||||
} else {
|
||||
param0->unk_20 = (128 - 20 - 14) - param5 * 16;
|
||||
param0->unk_24 = (128 - 20 - 14) - param5 * 15 + 6;
|
||||
}
|
||||
|
||||
param0->unk_2C = 0;
|
||||
|
||||
if (param3 == UnkEnum_ov16_0226D194_1_00) {
|
||||
param0->unk_28 = 3 * param5 + 5;
|
||||
param0->unk_04 = sub_0200D9E8(ov16_0226D654, param0, (500 + 1));
|
||||
} else {
|
||||
param0->unk_28 = 0;
|
||||
param0->unk_04 = sub_0200D9E8(ov16_0226D854, param0, (500 + 1));
|
||||
}
|
||||
}
|
||||
|
||||
static void ov16_0226D654 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov16_0226D540 * v0 = param1;
|
||||
|
||||
switch (v0->unk_2C) {
|
||||
case 0:
|
||||
{
|
||||
s16 v1, v2;
|
||||
|
||||
sub_0200D550(v0->unk_00, &v1, &v2);
|
||||
v0->unk_1C = v1 << 8;
|
||||
}
|
||||
v0->unk_2C++;
|
||||
case 1:
|
||||
if (v0->unk_28 > 0) {
|
||||
v0->unk_28--;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (v0->unk_08 == UnkEnum_ov16_0226D194_00) {
|
||||
v0->unk_1C -= 0x1200;
|
||||
|
||||
if (v0->unk_1C <= v0->unk_24 << 8) {
|
||||
v0->unk_1C = v0->unk_24 << 8;
|
||||
sub_02005748(v0->unk_2A);
|
||||
v0->unk_2C++;
|
||||
}
|
||||
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_1C >> 8, Unk_ov16_02270A34[v0->unk_0C]);
|
||||
} else {
|
||||
v0->unk_1C += 0x1200;
|
||||
|
||||
if (v0->unk_1C >= v0->unk_24 << 8) {
|
||||
v0->unk_1C = v0->unk_24 << 8;
|
||||
v0->unk_2C++;
|
||||
}
|
||||
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_1C >> 8, Unk_ov16_02270A1C[v0->unk_0C]);
|
||||
}
|
||||
|
||||
sub_0200D324(v0->unk_00->unk_00);
|
||||
break;
|
||||
case 3:
|
||||
|
||||
(*(v0->unk_14))++;
|
||||
v0->unk_2C++;
|
||||
|
||||
case 4:
|
||||
if (*(v0->unk_14) != 6) {
|
||||
sub_0200D324(v0->unk_00->unk_00);
|
||||
break;
|
||||
}
|
||||
|
||||
if (v0->unk_08 == UnkEnum_ov16_0226D194_00) {
|
||||
sub_02021E50(v0->unk_00->unk_00, 1);
|
||||
} else {
|
||||
sub_02021E50(v0->unk_00->unk_00, 1);
|
||||
}
|
||||
|
||||
v0->unk_28 = 0;
|
||||
v0->unk_2C++;
|
||||
case 5:
|
||||
v0->unk_28++;
|
||||
|
||||
if (v0->unk_28 < 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
sub_02021D6C(v0->unk_00->unk_00, v0->unk_2E);
|
||||
v0->unk_28 = 0;
|
||||
v0->unk_2C++;
|
||||
case 6:
|
||||
if (v0->unk_08 == UnkEnum_ov16_0226D194_00) {
|
||||
v0->unk_1C += 0x600;
|
||||
|
||||
if (v0->unk_1C >= v0->unk_20 << 8) {
|
||||
v0->unk_1C = v0->unk_20 << 8;
|
||||
v0->unk_2C++;
|
||||
}
|
||||
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_1C >> 8, Unk_ov16_02270A34[v0->unk_0C]);
|
||||
} else {
|
||||
v0->unk_1C -= 0x600;
|
||||
|
||||
if (v0->unk_1C <= v0->unk_20 << 8) {
|
||||
v0->unk_1C = v0->unk_20 << 8;
|
||||
v0->unk_2C++;
|
||||
}
|
||||
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_1C >> 8, Unk_ov16_02270A1C[v0->unk_0C]);
|
||||
}
|
||||
|
||||
sub_0200D324(v0->unk_00->unk_00);
|
||||
break;
|
||||
default:
|
||||
sub_02021E50(v0->unk_00->unk_00, 0);
|
||||
sub_0200DA58(param0);
|
||||
v0->unk_04 = NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov16_0226D854 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov16_0226D540 * v0 = param1;
|
||||
|
||||
switch (v0->unk_2C) {
|
||||
case 0:
|
||||
{
|
||||
s16 v1, v2;
|
||||
|
||||
sub_0200D550(v0->unk_00, &v1, &v2);
|
||||
v0->unk_1C = v1 << 8;
|
||||
}
|
||||
sub_02021E50(v0->unk_00->unk_00, 0);
|
||||
v0->unk_2C++;
|
||||
case 1:
|
||||
if (v0->unk_28 > 0) {
|
||||
v0->unk_28--;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (v0->unk_08 == UnkEnum_ov16_0226D194_00) {
|
||||
v0->unk_1C -= 0x1200;
|
||||
|
||||
if (v0->unk_1C <= v0->unk_20 << 8) {
|
||||
v0->unk_1C = v0->unk_20 << 8;
|
||||
v0->unk_2C++;
|
||||
}
|
||||
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_1C >> 8, Unk_ov16_02270A34[v0->unk_0C]);
|
||||
} else {
|
||||
v0->unk_1C += 0x1200;
|
||||
|
||||
if (v0->unk_1C >= v0->unk_20 << 8) {
|
||||
v0->unk_1C = v0->unk_20 << 8;
|
||||
v0->unk_2C++;
|
||||
}
|
||||
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_1C >> 8, Unk_ov16_02270A1C[v0->unk_0C]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sub_0200DA58(param0);
|
||||
v0->unk_04 = NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov16_0226D938 (UnkStruct_ov16_0226D540 * param0, int param1, UnkEnum_ov16_0226D194_2 param2, s16 * param3)
|
||||
{
|
||||
GF_ASSERT(param0->unk_00 != NULL && param0->unk_04 == NULL);
|
||||
|
||||
param0->unk_2C = 0;
|
||||
|
||||
if (param2 == UnkEnum_ov16_0226D194_2_00) {
|
||||
param0->unk_18 = param3;
|
||||
param0->unk_28 = 3 * param1;
|
||||
param0->unk_2F = 4;
|
||||
param0->unk_04 = sub_0200D9E8(ov16_0226D99C, param0, (500 + 1));
|
||||
} else {
|
||||
param0->unk_18 = param3;
|
||||
param0->unk_28 = 0;
|
||||
param0->unk_2F = 0;
|
||||
param0->unk_04 = sub_0200D9E8(ov16_0226DAAC, param0, (500 + 1));
|
||||
}
|
||||
}
|
||||
|
||||
static void ov16_0226D99C (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov16_0226D540 * v0 = param1;
|
||||
|
||||
if ((*(v0->unk_18)) == 0) {
|
||||
v0->unk_2C = 100;
|
||||
}
|
||||
|
||||
switch (v0->unk_2C) {
|
||||
case 0:
|
||||
{
|
||||
s16 v1, v2;
|
||||
|
||||
sub_0200D550(v0->unk_00, &v1, &v2);
|
||||
v0->unk_1C = v1 << 8;
|
||||
}
|
||||
sub_0200D810(v0->unk_00, GX_OAM_MODE_XLU);
|
||||
v0->unk_2C++;
|
||||
case 1:
|
||||
if (v0->unk_2F > 0) {
|
||||
v0->unk_2F--;
|
||||
break;
|
||||
}
|
||||
|
||||
if (v0->unk_28 > 0) {
|
||||
v0->unk_28--;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
if (v0->unk_08 == UnkEnum_ov16_0226D194_00) {
|
||||
v0->unk_1C -= 0xc00;
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_1C >> 8, Unk_ov16_02270A34[v0->unk_0C]);
|
||||
} else {
|
||||
v0->unk_1C += 0xc00;
|
||||
sub_0200D4C4(v0->unk_00, v0->unk_1C >> 8, Unk_ov16_02270A1C[v0->unk_0C]);
|
||||
}
|
||||
|
||||
if ((v0->unk_1C < -16 * 0x100) || (v0->unk_1C > ((256 + 16) << 8))) {
|
||||
v0->unk_2C++;
|
||||
}
|
||||
|
||||
sub_0200D324(v0->unk_00->unk_00);
|
||||
break;
|
||||
case 100:
|
||||
default:
|
||||
sub_0200D3EC(v0->unk_00->unk_00, 0);
|
||||
sub_0200DA58(param0);
|
||||
v0->unk_04 = NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov16_0226DAAC (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov16_0226D540 * v0 = param1;
|
||||
|
||||
if ((*(v0->unk_18)) == 0) {
|
||||
v0->unk_2C = 100;
|
||||
}
|
||||
|
||||
switch (v0->unk_2C) {
|
||||
case 0:
|
||||
sub_0200D810(v0->unk_00, GX_OAM_MODE_XLU);
|
||||
v0->unk_2C++;
|
||||
case 1:
|
||||
break;
|
||||
case 100:
|
||||
default:
|
||||
sub_0200D3EC(v0->unk_00->unk_00, 0);
|
||||
sub_0200DA58(param0);
|
||||
v0->unk_04 = NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static int ov16_0226DB04 (int param0, UnkEnum_ov16_0226D194 param1)
|
||||
{
|
||||
int v0;
|
||||
|
||||
switch (param0) {
|
||||
case 0:
|
||||
default:
|
||||
v0 = 6;
|
||||
break;
|
||||
case 1:
|
||||
v0 = (param1 == UnkEnum_ov16_0226D194_00) ? 3 : 0;
|
||||
break;
|
||||
case 2:
|
||||
v0 = (param1 == UnkEnum_ov16_0226D194_00) ? 5 : 2;
|
||||
break;
|
||||
case 3:
|
||||
v0 = (param1 == UnkEnum_ov16_0226D194_00) ? 4 : 1;
|
||||
break;
|
||||
}
|
||||
|
||||
return v0;
|
||||
}
|
||||
|
||||
static int ov16_0226DB44 (int param0)
|
||||
{
|
||||
switch (param0) {
|
||||
case 6:
|
||||
default:
|
||||
return param0;
|
||||
case 3:
|
||||
return 0;
|
||||
case 0:
|
||||
return 3;
|
||||
case 5:
|
||||
return 2;
|
||||
case 2:
|
||||
return 5;
|
||||
case 4:
|
||||
return 1;
|
||||
case 1:
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
310
src/overlay060/ov60_0221F968.c
Normal file
310
src/overlay060/ov60_0221F968.c
Normal file
|
|
@ -0,0 +1,310 @@
|
|||
#include <dwc.h>
|
||||
#include "overlay060/ov60_0221F800.h"
|
||||
#include "overlay060/ov60_0221F968.h"
|
||||
|
||||
struct {
|
||||
int unk_00;
|
||||
int unk_04;
|
||||
int unk_08;
|
||||
int unk_0C;
|
||||
int unk_10;
|
||||
void * unk_14;
|
||||
int unk_18;
|
||||
void * unk_1C;
|
||||
int unk_20;
|
||||
char * unk_24;
|
||||
char * unk_28;
|
||||
char * unk_2C;
|
||||
int unk_30;
|
||||
} Unk_ov60_02228E40 = {1, 0, 0, 0};
|
||||
|
||||
static void ov60_0221F968 (int param0)
|
||||
{
|
||||
switch (param0) {
|
||||
case DWC_GHTTP_IN_ERROR:
|
||||
Unk_ov60_02228E40.unk_08 = 0;
|
||||
break;
|
||||
case DWC_GHTTP_INVALID_POST:
|
||||
Unk_ov60_02228E40.unk_08 = 1;
|
||||
break;
|
||||
case DWC_GHTTP_INSUFFICIENT_MEMORY:
|
||||
Unk_ov60_02228E40.unk_08 = 2;
|
||||
break;
|
||||
case DWC_GHTTP_INVALID_FILE_NAME:
|
||||
Unk_ov60_02228E40.unk_08 = 3;
|
||||
break;
|
||||
case DWC_GHTTP_INVALID_BUFFER_SIZE:
|
||||
Unk_ov60_02228E40.unk_08 = 4;
|
||||
break;
|
||||
case DWC_GHTTP_INVALID_URL:
|
||||
Unk_ov60_02228E40.unk_08 = 5;
|
||||
break;
|
||||
case DWC_GHTTP_UNSPECIFIED_ERROR:
|
||||
Unk_ov60_02228E40.unk_08 = 6;
|
||||
break;
|
||||
default:
|
||||
Unk_ov60_02228E40.unk_08 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov60_0221F9D0 (const char * param0, int param1, DWCGHTTPResult param2, void * param3)
|
||||
{
|
||||
#pragma unused(param3)
|
||||
|
||||
Unk_ov60_02228E40.unk_04 = -1;
|
||||
|
||||
if (Unk_ov60_02228E40.unk_00 == 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (param2 == DWC_GHTTP_SUCCESS) {
|
||||
switch (Unk_ov60_02228E40.unk_00) {
|
||||
case 4:
|
||||
|
||||
if (param1 == 32) {
|
||||
int v0;
|
||||
u8 * v1 = (u8 *)(Unk_ov60_02228E40.unk_28 + 20);
|
||||
char v2[(32 + 20 + 1)];
|
||||
int v3;
|
||||
const char v4[] = "0123456789abcdef";
|
||||
|
||||
strcpy(v2, "sAdeqWo3voLeC5r16DYv");
|
||||
strncat(v2, param0, (u32)param1);
|
||||
|
||||
MATH_CalcSHA1((u8 *)v1, (const u8 *)v2, strlen(v2));
|
||||
|
||||
strcat(Unk_ov60_02228E40.unk_24, "&hash=");
|
||||
|
||||
for (v0 = 0; v0 < 20; v0++) {
|
||||
Unk_ov60_02228E40.unk_28[v0 * 2] = v4[v1[v0] >> 4];
|
||||
Unk_ov60_02228E40.unk_28[v0 * 2 + 1] = v4[v1[v0] & 0xf];
|
||||
}
|
||||
|
||||
Unk_ov60_02228E40.unk_28[40] = '\0';
|
||||
strcat(Unk_ov60_02228E40.unk_24, "&data=");
|
||||
v3 = ov60_0221F838((u32)Unk_ov60_02228E40.unk_10, (u8 *)Unk_ov60_02228E40.unk_14, Unk_ov60_02228E40.unk_18, (u8 *)Unk_ov60_02228E40.unk_2C, Unk_ov60_02228E40.unk_30);
|
||||
|
||||
switch (v3) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
Unk_ov60_02228E40.unk_00 = 5;
|
||||
} else {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (param1 == 22) {
|
||||
if (strncmp(param0, "error: check sum ", 22) == 0) {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
Unk_ov60_02228E40.unk_08 = 26;
|
||||
break;
|
||||
} else if (strncmp(param0, "error: pid ", 22) == 0) {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
Unk_ov60_02228E40.unk_08 = 27;
|
||||
break;
|
||||
} else if (strncmp(param0, "error: data length ", 22) == 0) {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
Unk_ov60_02228E40.unk_08 = 28;
|
||||
break;
|
||||
} else if (strncmp(param0, "error: token not found", 22) == 0) {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
Unk_ov60_02228E40.unk_08 = 29;
|
||||
break;
|
||||
} else if (strncmp(param0, "error: token expired ", 22) == 0) {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
Unk_ov60_02228E40.unk_08 = 30;
|
||||
break;
|
||||
} else if (strncmp(param0, "error: incorrect hash ", 22) == 0) {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
Unk_ov60_02228E40.unk_08 = 31;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (param1 <= Unk_ov60_02228E40.unk_20) {
|
||||
memcpy(Unk_ov60_02228E40.unk_1C, param0, (u32)param1);
|
||||
Unk_ov60_02228E40.unk_00 = 7;
|
||||
} else {
|
||||
memcpy(Unk_ov60_02228E40.unk_1C, param0, (u32)Unk_ov60_02228E40.unk_20);
|
||||
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
Unk_ov60_02228E40.unk_08 = 32;
|
||||
}
|
||||
|
||||
Unk_ov60_02228E40.unk_0C = param1;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
|
||||
switch (param2) {
|
||||
case DWC_GHTTP_OUT_OF_MEMORY:
|
||||
Unk_ov60_02228E40.unk_08 = 8;
|
||||
break;
|
||||
case DWC_GHTTP_BUFFER_OVERFLOW:
|
||||
Unk_ov60_02228E40.unk_08 = 9;
|
||||
break;
|
||||
case DWC_GHTTP_PARSE_URL_FAILED:
|
||||
Unk_ov60_02228E40.unk_08 = 10;
|
||||
break;
|
||||
case DWC_GHTTP_HOST_LOOKUP_FAILED:
|
||||
Unk_ov60_02228E40.unk_08 = 11;
|
||||
break;
|
||||
case DWC_GHTTP_SOCKET_FAILED:
|
||||
Unk_ov60_02228E40.unk_08 = 12;
|
||||
break;
|
||||
case DWC_GHTTP_CONNECT_FAILED:
|
||||
Unk_ov60_02228E40.unk_08 = 13;
|
||||
break;
|
||||
case DWC_GHTTP_BAD_RESPONSE:
|
||||
Unk_ov60_02228E40.unk_08 = 14;
|
||||
break;
|
||||
case DWC_GHTTP_REQUEST_REJECTED:
|
||||
Unk_ov60_02228E40.unk_08 = 15;
|
||||
break;
|
||||
case DWC_GHTTP_UNAUTHORIZED:
|
||||
Unk_ov60_02228E40.unk_08 = 16;
|
||||
break;
|
||||
case DWC_GHTTP_FORBIDDEN:
|
||||
Unk_ov60_02228E40.unk_08 = 17;
|
||||
break;
|
||||
case DWC_GHTTP_FILE_NOT_FOUND:
|
||||
Unk_ov60_02228E40.unk_08 = 18;
|
||||
break;
|
||||
case DWC_GHTTP_SERVER_ERROR:
|
||||
Unk_ov60_02228E40.unk_08 = 19;
|
||||
break;
|
||||
case DWC_GHTTP_FILE_INCOMPLETE:
|
||||
Unk_ov60_02228E40.unk_08 = 22;
|
||||
break;
|
||||
case DWC_GHTTP_FILE_TOO_BIG:
|
||||
Unk_ov60_02228E40.unk_08 = 23;
|
||||
break;
|
||||
case DWC_GHTTP_MEMORY_ERROR:
|
||||
Unk_ov60_02228E40.unk_08 = 25;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ov60_0221FC84 (void)
|
||||
{
|
||||
Unk_ov60_02228E40.unk_00 = 2;
|
||||
Unk_ov60_02228E40.unk_04 = -1;
|
||||
|
||||
if (!DWC_InitGHTTP(NULL)) {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int ov60_0221FCA8 (const u8 * param0, int param1, const void * param2, int param3, u8 * param4, int param5)
|
||||
{
|
||||
if (Unk_ov60_02228E40.unk_00 != 2) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
Unk_ov60_02228E40.unk_10 = param1;
|
||||
Unk_ov60_02228E40.unk_14 = (void *)param2;
|
||||
Unk_ov60_02228E40.unk_18 = param3;
|
||||
Unk_ov60_02228E40.unk_1C = param4;
|
||||
Unk_ov60_02228E40.unk_20 = param5;
|
||||
Unk_ov60_02228E40.unk_24 = (char *)DWC_Alloc((DWCAllocType)10, strlen((const char *)param0) + 68 + ov60_0221F944(8 + (u32)param3) + 1);
|
||||
|
||||
if (Unk_ov60_02228E40.unk_24 == NULL) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
sprintf(Unk_ov60_02228E40.unk_24, "%s?pid=%d", param0, param1);
|
||||
|
||||
Unk_ov60_02228E40.unk_28 = Unk_ov60_02228E40.unk_24 + strlen(Unk_ov60_02228E40.unk_24) + strlen("&hash=");
|
||||
Unk_ov60_02228E40.unk_2C = Unk_ov60_02228E40.unk_28 + 40 + strlen("&data=");
|
||||
Unk_ov60_02228E40.unk_30 = (int)(ov60_0221F944(8 + (u32)param3) + 1);
|
||||
Unk_ov60_02228E40.unk_00 = 3;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ov60_0221FD48 (void)
|
||||
{
|
||||
BOOL v0;
|
||||
|
||||
switch (Unk_ov60_02228E40.unk_00) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
Unk_ov60_02228E40.unk_04 = DWC_GetGHTTPData(Unk_ov60_02228E40.unk_24, ov60_0221F9D0, &Unk_ov60_02228E40);
|
||||
ov60_0221F968(Unk_ov60_02228E40.unk_04);
|
||||
|
||||
if (Unk_ov60_02228E40.unk_04 >= 0) {
|
||||
Unk_ov60_02228E40.unk_00 = 4;
|
||||
} else {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
v0 = DWC_ProcessGHTTP();
|
||||
|
||||
if (!v0) {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
Unk_ov60_02228E40.unk_04 = DWC_GetGHTTPData(Unk_ov60_02228E40.unk_24, ov60_0221F9D0, &Unk_ov60_02228E40);
|
||||
ov60_0221F968(Unk_ov60_02228E40.unk_04);
|
||||
|
||||
if (Unk_ov60_02228E40.unk_04 >= 0) {
|
||||
Unk_ov60_02228E40.unk_00 = 6;
|
||||
} else {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
v0 = DWC_ProcessGHTTP();
|
||||
|
||||
if (!v0) {
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
break;
|
||||
}
|
||||
|
||||
return Unk_ov60_02228E40.unk_00;
|
||||
}
|
||||
|
||||
void ov60_0221FDEC (void)
|
||||
{
|
||||
if (Unk_ov60_02228E40.unk_24 != NULL) {
|
||||
DWC_Free((DWCAllocType)10, Unk_ov60_02228E40.unk_24, (u32)0);
|
||||
Unk_ov60_02228E40.unk_24 = NULL;
|
||||
}
|
||||
|
||||
DWC_ShutdownGHTTP();
|
||||
|
||||
Unk_ov60_02228E40.unk_00 = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
int ov60_0221FE14 (void)
|
||||
{
|
||||
return (int)Unk_ov60_02228E40.unk_08;
|
||||
}
|
||||
|
||||
int ov60_0221FE20 (void)
|
||||
{
|
||||
return Unk_ov60_02228E40.unk_0C;
|
||||
}
|
||||
1731
src/unk_020933F8.c
Normal file
1731
src/unk_020933F8.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user