mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-10-02 06:20:38 -05:00
Match files in overlays 26, 27, 29, 30
This commit is contained in:
@@ -1,25 +0,0 @@
|
||||
.public sub_0200D9E8
|
||||
.public sub_0200DA58
|
||||
.public sub_02013880
|
||||
.public sub_02018144
|
||||
.public sub_020181C4
|
||||
.public _u32_div_f
|
||||
.public ov25_02254238
|
||||
.public ov25_0225424C
|
||||
.public ov25_02254260
|
||||
.public ov25_02254518
|
||||
.public ov25_02255ACC
|
||||
.public ov25_02255B34
|
||||
.public ov26_022561C0
|
||||
.public ov26_022561D4
|
||||
.public ov26_0225621C
|
||||
.public ov26_022562A4
|
||||
.public ov26_022562BC
|
||||
.public ov26_022562F8
|
||||
.public ov26_02256300
|
||||
.public ov26_0225631C
|
||||
.public ov26_02256404
|
||||
.public ov26_0225649C
|
||||
.public ov26_022564A8
|
||||
.public ov26_022564CC
|
||||
.public ov26_022564D8
|
||||
@@ -1,344 +0,0 @@
|
||||
.include "macros/function.inc"
|
||||
.include "overlay026/ov26_022561C0.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ov26_022561C0
|
||||
ov26_022561C0: ; 0x022561C0
|
||||
ldr r3, _022561C8 ; =ov25_02254238
|
||||
ldr r0, _022561CC ; =ov26_022561D4
|
||||
ldr r1, _022561D0 ; =ov26_022562F8
|
||||
bx r3
|
||||
; .align 2, 0
|
||||
_022561C8: .word ov25_02254238
|
||||
_022561CC: .word ov26_022561D4
|
||||
_022561D0: .word ov26_022562F8
|
||||
thumb_func_end ov26_022561C0
|
||||
|
||||
thumb_func_start ov26_022561D4
|
||||
ov26_022561D4: ; 0x022561D4
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r0, #0
|
||||
add r6, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x2c
|
||||
add r7, r2, #0
|
||||
str r3, [sp]
|
||||
bl sub_02018144
|
||||
add r4, r0, #0
|
||||
beq _02256212
|
||||
ldr r3, [sp]
|
||||
add r1, r6, #0
|
||||
add r2, r7, #0
|
||||
bl ov26_0225621C
|
||||
cmp r0, #0
|
||||
beq _0225620C
|
||||
ldr r0, _02256218 ; =ov26_022562BC
|
||||
add r1, r4, #0
|
||||
mov r2, #1
|
||||
bl sub_0200D9E8
|
||||
cmp r0, #0
|
||||
beq _0225620C
|
||||
str r4, [r5, #0]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_0225620C:
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
_02256212:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02256218: .word ov26_022562BC
|
||||
thumb_func_end ov26_022561D4
|
||||
|
||||
thumb_func_start ov26_0225621C
|
||||
ov26_0225621C: ; 0x0225621C
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
add r1, r5, #0
|
||||
add r0, #0x24
|
||||
add r1, #0x14
|
||||
bl ov26_02256404
|
||||
cmp r0, #0
|
||||
beq _02256298
|
||||
mov r1, #0
|
||||
strb r1, [r5]
|
||||
strb r1, [r5, #1]
|
||||
strb r1, [r5, #2]
|
||||
mov r0, #1
|
||||
strb r0, [r5, #3]
|
||||
strb r1, [r5, #7]
|
||||
add r0, r5, #0
|
||||
str r1, [r5, #0x20]
|
||||
add r0, #0x14
|
||||
bl sub_02013880
|
||||
ldr r0, [r5, #0x14]
|
||||
cmp r0, #0x18
|
||||
blo _02256256
|
||||
mov r1, #0x18
|
||||
bl _u32_div_f
|
||||
str r1, [r5, #0x14]
|
||||
_02256256:
|
||||
ldr r0, [r5, #0x18]
|
||||
cmp r0, #0x3c
|
||||
blo _02256270
|
||||
ldr r0, [r5, #0x14]
|
||||
mov r1, #0x3c
|
||||
bl _u32_div_f
|
||||
str r1, [r5, #0x14]
|
||||
ldr r0, [r5, #0x18]
|
||||
mov r1, #0x3c
|
||||
bl _u32_div_f
|
||||
str r1, [r5, #0x18]
|
||||
_02256270:
|
||||
ldr r0, [r5, #0x18]
|
||||
ldr r2, _0225629C ; =ov26_02256300
|
||||
strb r0, [r5, #6]
|
||||
ldr r0, [r5, #0x14]
|
||||
mov r1, #1
|
||||
strb r0, [r5, #5]
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
ldr r0, _022562A0 ; =0x02256718
|
||||
add r3, r5, #0
|
||||
bl ov25_02255ACC
|
||||
str r0, [r5, #0x10]
|
||||
cmp r0, #0
|
||||
bne _02256292
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
_02256292:
|
||||
str r4, [r5, #0x28]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, pc}
|
||||
_02256298:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_0225629C: .word ov26_02256300
|
||||
_022562A0: .word 0x02256718
|
||||
thumb_func_end ov26_0225621C
|
||||
|
||||
thumb_func_start ov26_022562A4
|
||||
ov26_022562A4: ; 0x022562A4
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldr r0, [r4, #0x24]
|
||||
bl ov26_0225649C
|
||||
ldr r0, [r4, #0x10]
|
||||
bl ov25_02255B34
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov26_022562A4
|
||||
|
||||
thumb_func_start ov26_022562BC
|
||||
ov26_022562BC: ; 0x022562BC
|
||||
push {r3, r4, r5, lr}
|
||||
add r4, r1, #0
|
||||
add r5, r0, #0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #3
|
||||
bhs _022562F2
|
||||
ldr r0, [r4, #0x28]
|
||||
ldr r1, [r4, #0x10]
|
||||
bl ov25_02254518
|
||||
ldrb r1, [r4]
|
||||
add r0, r4, #0
|
||||
lsl r2, r1, #2
|
||||
ldr r1, _022562F4 ; =0x0225671C
|
||||
ldr r1, [r1, r2]
|
||||
blx r1
|
||||
cmp r0, #0
|
||||
beq _022562F2
|
||||
add r0, r4, #0
|
||||
bl ov26_022562A4
|
||||
add r0, r5, #0
|
||||
bl sub_0200DA58
|
||||
ldr r0, [r4, #0x28]
|
||||
bl ov25_02254260
|
||||
_022562F2:
|
||||
pop {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_022562F4: .word 0x0225671C
|
||||
thumb_func_end ov26_022562BC
|
||||
|
||||
thumb_func_start ov26_022562F8
|
||||
ov26_022562F8: ; 0x022562F8
|
||||
mov r1, #1
|
||||
strb r1, [r0, #2]
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov26_022562F8
|
||||
|
||||
thumb_func_start ov26_02256300
|
||||
ov26_02256300: ; 0x02256300
|
||||
cmp r2, #0
|
||||
beq _02256310
|
||||
cmp r2, #1
|
||||
bne _02256318
|
||||
mov r0, #1
|
||||
str r0, [r3, #0x20]
|
||||
strb r0, [r3, #7]
|
||||
bx lr
|
||||
_02256310:
|
||||
mov r0, #0
|
||||
str r0, [r3, #0x20]
|
||||
mov r0, #1
|
||||
strb r0, [r3, #7]
|
||||
_02256318:
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov26_02256300
|
||||
|
||||
thumb_func_start ov26_0225631C
|
||||
ov26_0225631C: ; 0x0225631C
|
||||
ldrb r2, [r0, #2]
|
||||
cmp r2, #0
|
||||
bne _02256324
|
||||
b _02256326
|
||||
_02256324:
|
||||
mov r1, #2
|
||||
_02256326:
|
||||
strb r1, [r0]
|
||||
mov r1, #0
|
||||
strb r1, [r0, #1]
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov26_0225631C
|
||||
|
||||
thumb_func_start ov26_02256330
|
||||
ov26_02256330: ; 0x02256330
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _02256340
|
||||
cmp r0, #1
|
||||
beq _02256350
|
||||
b _0225636A
|
||||
_02256340:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #0
|
||||
bl ov26_022564A8
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _0225636A
|
||||
_02256350:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #0
|
||||
bl ov26_022564CC
|
||||
cmp r0, #0
|
||||
beq _0225636A
|
||||
ldr r0, [r4, #0x28]
|
||||
bl ov25_0225424C
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl ov26_0225631C
|
||||
_0225636A:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov26_02256330
|
||||
|
||||
thumb_func_start ov26_02256370
|
||||
ov26_02256370: ; 0x02256370
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r1, [r4, #2]
|
||||
cmp r1, #0
|
||||
beq _02256384
|
||||
mov r1, #2
|
||||
bl ov26_0225631C
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
_02256384:
|
||||
ldrb r0, [r4, #7]
|
||||
cmp r0, #0
|
||||
beq _02256396
|
||||
mov r0, #0
|
||||
strb r0, [r4, #7]
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #2
|
||||
bl ov26_022564A8
|
||||
_02256396:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #1
|
||||
bl ov26_022564CC
|
||||
cmp r0, #0
|
||||
beq _022563CA
|
||||
ldr r0, [r4, #0x18]
|
||||
strb r0, [r4, #6]
|
||||
ldr r0, [r4, #0x14]
|
||||
strb r0, [r4, #5]
|
||||
add r0, r4, #0
|
||||
add r0, #0x14
|
||||
bl sub_02013880
|
||||
ldrb r1, [r4, #6]
|
||||
ldr r0, [r4, #0x18]
|
||||
cmp r1, r0
|
||||
bne _022563C2
|
||||
ldrb r1, [r4, #5]
|
||||
ldr r0, [r4, #0x14]
|
||||
cmp r1, r0
|
||||
beq _022563CA
|
||||
_022563C2:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #1
|
||||
bl ov26_022564A8
|
||||
_022563CA:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov26_02256370
|
||||
|
||||
thumb_func_start ov26_022563D0
|
||||
ov26_022563D0: ; 0x022563D0
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _022563E0
|
||||
cmp r0, #1
|
||||
beq _022563F0
|
||||
b _022563FE
|
||||
_022563E0:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #3
|
||||
bl ov26_022564A8
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _022563FE
|
||||
_022563F0:
|
||||
ldr r0, [r4, #0x24]
|
||||
bl ov26_022564D8
|
||||
cmp r0, #0
|
||||
beq _022563FE
|
||||
mov r0, #1
|
||||
pop {r4, pc}
|
||||
_022563FE:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov26_022563D0
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov26_02256718
|
||||
Unk_ov26_02256718: ; 0x02256718
|
||||
.incbin "incbin/overlay26_rodata.bin", 0x0, 0x4 - 0x0
|
||||
|
||||
.global Unk_ov26_0225671C
|
||||
Unk_ov26_0225671C: ; 0x0225671C
|
||||
.incbin "incbin/overlay26_rodata.bin", 0x4, 0xC
|
||||
|
||||
.section .sinit, 4
|
||||
.word ov26_022561C0
|
||||
@@ -1,22 +0,0 @@
|
||||
.public sub_02006E3C
|
||||
.public sub_02006E60
|
||||
.public sub_02006F6C
|
||||
.public sub_02018144
|
||||
.public sub_020181C4
|
||||
.public sub_020183C4
|
||||
.public sub_02019044
|
||||
.public sub_02019448
|
||||
.public sub_020198E8
|
||||
.public MIi_CpuCopy16
|
||||
.public ov25_02254674
|
||||
.public ov25_022546B8
|
||||
.public ov25_022546F0
|
||||
.public ov25_02255090
|
||||
.public ov25_02255130
|
||||
.public ov25_02255154
|
||||
.public ov25_0225517C
|
||||
.public ov25_02255224
|
||||
.public ov25_0225523C
|
||||
.public ov26_0225646C
|
||||
.public ov26_022564E4
|
||||
.public ov26_022565F4
|
||||
@@ -1,427 +0,0 @@
|
||||
.include "macros/function.inc"
|
||||
.include "overlay026/ov26_02256404.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ov26_02256404
|
||||
ov26_02256404: ; 0x02256404
|
||||
push {r4, r5, r6, lr}
|
||||
sub sp, #8
|
||||
add r6, r1, #0
|
||||
mov r1, #3
|
||||
add r5, r0, #0
|
||||
mov r0, #8
|
||||
lsl r1, r1, #8
|
||||
bl sub_02018144
|
||||
add r4, r0, #0
|
||||
beq _02256464
|
||||
add r0, #8
|
||||
mov r1, #8
|
||||
bl ov25_02255090
|
||||
str r6, [r4, #0]
|
||||
bl ov25_02254674
|
||||
str r0, [r4, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x19
|
||||
mov r2, #1
|
||||
add r3, sp, #4
|
||||
bl sub_02006F6C
|
||||
add r6, r0, #0
|
||||
bne _0225644A
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
add sp, #8
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
_0225644A:
|
||||
ldr r0, [sp, #4]
|
||||
add r1, r4, #0
|
||||
add r0, #0xc
|
||||
add r1, #0x30
|
||||
bl ov26_0225646C
|
||||
add r0, r6, #0
|
||||
bl sub_020181C4
|
||||
add sp, #8
|
||||
str r4, [r5, #0]
|
||||
mov r0, #1
|
||||
pop {r4, r5, r6, pc}
|
||||
_02256464:
|
||||
mov r0, #0
|
||||
add sp, #8
|
||||
pop {r4, r5, r6, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov26_02256404
|
||||
|
||||
thumb_func_start ov26_0225646C
|
||||
ov26_0225646C: ; 0x0225646C
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
mov r6, #9
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
mov r7, #0
|
||||
lsl r6, r6, #6
|
||||
_02256478:
|
||||
add r0, r5, #0
|
||||
add r1, r4, #0
|
||||
mov r2, #0x40
|
||||
bl MIi_CpuCopy16
|
||||
add r1, r4, #0
|
||||
add r0, r5, r6
|
||||
add r1, #0x40
|
||||
mov r2, #0x10
|
||||
bl MIi_CpuCopy16
|
||||
add r7, r7, #1
|
||||
add r5, #0x40
|
||||
add r4, #0x50
|
||||
sub r6, #0x30
|
||||
cmp r7, #9
|
||||
blt _02256478
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
thumb_func_end ov26_0225646C
|
||||
|
||||
thumb_func_start ov26_0225649C
|
||||
ov26_0225649C: ; 0x0225649C
|
||||
push {r3, lr}
|
||||
cmp r0, #0
|
||||
beq _022564A6
|
||||
bl sub_020181C4
|
||||
_022564A6:
|
||||
pop {r3, pc}
|
||||
thumb_func_end ov26_0225649C
|
||||
|
||||
thumb_func_start ov26_022564A8
|
||||
ov26_022564A8: ; 0x022564A8
|
||||
push {lr}
|
||||
sub sp, #0xc
|
||||
add r2, r0, #0
|
||||
add r0, #8
|
||||
str r0, [sp]
|
||||
mov r0, #2
|
||||
str r0, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
ldr r0, _022564C8 ; =0x02256744
|
||||
ldr r3, [r2, #0]
|
||||
bl ov25_0225517C
|
||||
add sp, #0xc
|
||||
pop {pc}
|
||||
nop
|
||||
_022564C8: .word 0x02256744
|
||||
thumb_func_end ov26_022564A8
|
||||
|
||||
thumb_func_start ov26_022564CC
|
||||
ov26_022564CC: ; 0x022564CC
|
||||
ldr r3, _022564D4 ; =ov25_02255130
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_022564D4: .word ov25_02255130
|
||||
thumb_func_end ov26_022564CC
|
||||
|
||||
thumb_func_start ov26_022564D8
|
||||
ov26_022564D8: ; 0x022564D8
|
||||
ldr r3, _022564E0 ; =ov25_02255154
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_022564E0: .word ov25_02255154
|
||||
thumb_func_end ov26_022564D8
|
||||
|
||||
thumb_func_start ov26_022564E4
|
||||
ov26_022564E4: ; 0x022564E4
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
bl ov25_0225523C
|
||||
add r0, #8
|
||||
add r1, r4, #0
|
||||
bl ov25_02255224
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov26_022564E4
|
||||
|
||||
thumb_func_start ov26_022564F8
|
||||
ov26_022564F8: ; 0x022564F8
|
||||
push {r4, r5, lr}
|
||||
sub sp, #0x14
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl ov25_0225523C
|
||||
add r5, r0, #0
|
||||
ldr r0, [r5, #4]
|
||||
ldr r2, _02256580 ; =0x02256728
|
||||
mov r1, #6
|
||||
mov r3, #0
|
||||
bl sub_020183C4
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x17
|
||||
mov r3, #6
|
||||
bl sub_02006E3C
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x18
|
||||
mov r3, #6
|
||||
bl sub_02006E60
|
||||
mov r0, #0
|
||||
add r1, r0, #0
|
||||
bl ov25_022546B8
|
||||
add r0, r5, #0
|
||||
bl ov26_022565F4
|
||||
ldr r0, [r5, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
ldr r1, _02256584 ; =0x04001000
|
||||
ldr r0, _02256588 ; =0xFFFFE0FF
|
||||
ldr r3, [r1, #0]
|
||||
ldr r2, [r1, #0]
|
||||
str r3, [sp, #0x10]
|
||||
and r0, r2
|
||||
lsl r2, r3, #0x13
|
||||
lsr r3, r2, #0x1b
|
||||
mov r2, #4
|
||||
orr r2, r3
|
||||
lsl r2, r2, #8
|
||||
orr r0, r2
|
||||
str r0, [r1, #0]
|
||||
add r0, r4, #0
|
||||
bl ov26_022564E4
|
||||
add sp, #0x14
|
||||
pop {r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_02256580: .word 0x02256728
|
||||
_02256584: .word 0x04001000
|
||||
_02256588: .word 0xFFFFE0FF
|
||||
thumb_func_end ov26_022564F8
|
||||
|
||||
thumb_func_start ov26_0225658C
|
||||
ov26_0225658C: ; 0x0225658C
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
bl ov26_022565F4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
add r0, r5, #0
|
||||
bl ov26_022564E4
|
||||
pop {r3, r4, r5, pc}
|
||||
thumb_func_end ov26_0225658C
|
||||
|
||||
thumb_func_start ov26_022565AC
|
||||
ov26_022565AC: ; 0x022565AC
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl ov25_0225523C
|
||||
ldr r0, [r0, #0]
|
||||
ldr r0, [r0, #0xc]
|
||||
cmp r0, #0
|
||||
beq _022565C8
|
||||
mov r0, #0
|
||||
add r1, r0, #0
|
||||
bl ov25_022546F0
|
||||
b _022565D0
|
||||
_022565C8:
|
||||
mov r0, #0
|
||||
add r1, r0, #0
|
||||
bl ov25_022546B8
|
||||
_022565D0:
|
||||
add r0, r4, #0
|
||||
bl ov26_022564E4
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov26_022565AC
|
||||
|
||||
thumb_func_start ov26_022565D8
|
||||
ov26_022565D8: ; 0x022565D8
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl ov25_0225523C
|
||||
ldr r0, [r0, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019044
|
||||
add r0, r4, #0
|
||||
bl ov26_022564E4
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov26_022565D8
|
||||
|
||||
thumb_func_start ov26_022565F4
|
||||
ov26_022565F4: ; 0x022565F4
|
||||
push {r4, r5, lr}
|
||||
sub sp, #0x1c
|
||||
add r4, r0, #0
|
||||
ldr r0, [r4, #0]
|
||||
ldr r2, _0225670C ; =0x04000280
|
||||
ldr r0, [r0, #0]
|
||||
mov r3, #0
|
||||
strh r3, [r2]
|
||||
str r0, [r2, #0x10]
|
||||
add r0, r2, #0
|
||||
mov r1, #0xa
|
||||
add r0, #0x18
|
||||
str r1, [r0, #0]
|
||||
str r3, [r0, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_02256612:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _02256612
|
||||
ldr r0, _02256710 ; =0x040002A0
|
||||
add r3, r0, #0
|
||||
ldr r1, [r0, #0]
|
||||
sub r3, #0x20
|
||||
lsr r0, r0, #0xb
|
||||
_02256622:
|
||||
ldrh r2, [r3]
|
||||
tst r2, r0
|
||||
bne _02256622
|
||||
ldr r0, _02256714 ; =0x040002A8
|
||||
add r2, r4, #0
|
||||
ldr r5, [r0, #0]
|
||||
mov r0, #4
|
||||
str r0, [sp]
|
||||
mov r0, #9
|
||||
lsl r1, r1, #0x1a
|
||||
str r0, [sp, #4]
|
||||
add r2, #0x30
|
||||
str r2, [sp, #8]
|
||||
lsr r1, r1, #0x18
|
||||
str r1, [sp, #0xc]
|
||||
mov r1, #0
|
||||
str r1, [sp, #0x10]
|
||||
mov r1, #0x28
|
||||
str r1, [sp, #0x14]
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
mov r2, #3
|
||||
mov r3, #7
|
||||
bl sub_020198E8
|
||||
mov r0, #4
|
||||
str r0, [sp]
|
||||
mov r0, #9
|
||||
add r1, r4, #0
|
||||
str r0, [sp, #4]
|
||||
add r1, #0x30
|
||||
str r1, [sp, #8]
|
||||
lsl r1, r5, #0x1a
|
||||
lsr r1, r1, #0x18
|
||||
str r1, [sp, #0xc]
|
||||
mov r1, #0
|
||||
str r1, [sp, #0x10]
|
||||
mov r1, #0x28
|
||||
str r1, [sp, #0x14]
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
mov r2, #8
|
||||
mov r3, #7
|
||||
bl sub_020198E8
|
||||
ldr r0, [r4, #0]
|
||||
ldr r2, _0225670C ; =0x04000280
|
||||
ldr r0, [r0, #4]
|
||||
mov r3, #0
|
||||
strh r3, [r2]
|
||||
str r0, [r2, #0x10]
|
||||
add r0, r2, #0
|
||||
mov r1, #0xa
|
||||
add r0, #0x18
|
||||
str r1, [r0, #0]
|
||||
str r3, [r0, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_02256698:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _02256698
|
||||
ldr r0, _02256710 ; =0x040002A0
|
||||
add r3, r0, #0
|
||||
ldr r1, [r0, #0]
|
||||
sub r3, #0x20
|
||||
lsr r0, r0, #0xb
|
||||
_022566A8:
|
||||
ldrh r2, [r3]
|
||||
tst r2, r0
|
||||
bne _022566A8
|
||||
ldr r0, _02256714 ; =0x040002A8
|
||||
add r2, r4, #0
|
||||
ldr r5, [r0, #0]
|
||||
mov r0, #4
|
||||
str r0, [sp]
|
||||
mov r0, #9
|
||||
lsl r1, r1, #0x1a
|
||||
str r0, [sp, #4]
|
||||
add r2, #0x30
|
||||
str r2, [sp, #8]
|
||||
lsr r1, r1, #0x18
|
||||
str r1, [sp, #0xc]
|
||||
mov r1, #0
|
||||
str r1, [sp, #0x10]
|
||||
mov r1, #0x28
|
||||
str r1, [sp, #0x14]
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
mov r2, #0xf
|
||||
mov r3, #7
|
||||
bl sub_020198E8
|
||||
mov r0, #4
|
||||
str r0, [sp]
|
||||
mov r0, #9
|
||||
add r1, r4, #0
|
||||
str r0, [sp, #4]
|
||||
add r1, #0x30
|
||||
str r1, [sp, #8]
|
||||
lsl r1, r5, #0x1a
|
||||
lsr r1, r1, #0x18
|
||||
str r1, [sp, #0xc]
|
||||
mov r1, #0
|
||||
str r1, [sp, #0x10]
|
||||
mov r1, #0x28
|
||||
str r1, [sp, #0x14]
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
mov r2, #0x14
|
||||
mov r3, #7
|
||||
bl sub_020198E8
|
||||
add sp, #0x1c
|
||||
pop {r4, r5, pc}
|
||||
nop
|
||||
_0225670C: .word 0x04000280
|
||||
_02256710: .word 0x040002A0
|
||||
_02256714: .word 0x040002A8
|
||||
thumb_func_end ov26_022565F4
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov26_02256728
|
||||
Unk_ov26_02256728: ; 0x02256728
|
||||
.incbin "incbin/overlay26_rodata.bin", 0x10, 0x2C - 0x10
|
||||
|
||||
.global Unk_ov26_02256744
|
||||
Unk_ov26_02256744: ; 0x02256744
|
||||
.incbin "incbin/overlay26_rodata.bin", 0x2C, 0x3C
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
.public sub_0200D9E8
|
||||
.public sub_0200DA58
|
||||
.public sub_02018144
|
||||
.public sub_020181C4
|
||||
.public sub_0202293C
|
||||
.public sub_02022944
|
||||
.public sub_02099D54
|
||||
.public sub_02099D7C
|
||||
.public ov25_02254238
|
||||
.public ov25_0225424C
|
||||
.public ov25_02254260
|
||||
.public ov25_02254518
|
||||
.public ov25_02255ACC
|
||||
.public ov25_02255B34
|
||||
.public ov25_02255C48
|
||||
.public ov27_022561C0
|
||||
.public ov27_022561D4
|
||||
.public ov27_0225621C
|
||||
.public ov27_022562AC
|
||||
.public ov27_022562FC
|
||||
.public ov27_02256358
|
||||
.public ov27_02256360
|
||||
.public ov27_02256608
|
||||
.public ov27_02256654
|
||||
.public ov27_02256660
|
||||
.public ov27_02256664
|
||||
.public ov27_02256680
|
||||
.public ov27_022566C4
|
||||
.public ov27_022566D8
|
||||
.public ov27_0225680C
|
||||
.public ov27_02256890
|
||||
.public ov27_022569C8
|
||||
.public ov27_022569EC
|
||||
.public ov27_022569F8
|
||||
@@ -1,891 +0,0 @@
|
||||
.include "macros/function.inc"
|
||||
.include "overlay027/ov27_022561C0.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ov27_022561C0
|
||||
ov27_022561C0: ; 0x022561C0
|
||||
ldr r3, _022561C8 ; =ov25_02254238
|
||||
ldr r0, _022561CC ; =ov27_022561D4
|
||||
ldr r1, _022561D0 ; =ov27_02256358
|
||||
bx r3
|
||||
; .align 2, 0
|
||||
_022561C8: .word ov25_02254238
|
||||
_022561CC: .word ov27_022561D4
|
||||
_022561D0: .word ov27_02256358
|
||||
thumb_func_end ov27_022561C0
|
||||
|
||||
thumb_func_start ov27_022561D4
|
||||
ov27_022561D4: ; 0x022561D4
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r0, #0
|
||||
add r6, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x68
|
||||
add r7, r2, #0
|
||||
str r3, [sp]
|
||||
bl sub_02018144
|
||||
add r4, r0, #0
|
||||
beq _02256212
|
||||
ldr r2, [sp]
|
||||
add r1, r7, #0
|
||||
bl ov27_0225621C
|
||||
cmp r0, #0
|
||||
beq _0225620C
|
||||
ldr r0, _02256218 ; =ov27_022562FC
|
||||
add r1, r4, #0
|
||||
mov r2, #1
|
||||
str r6, [r4, #0x64]
|
||||
bl sub_0200D9E8
|
||||
cmp r0, #0
|
||||
beq _02256212
|
||||
str r4, [r5, #0]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_0225620C:
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
_02256212:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02256218: .word ov27_022562FC
|
||||
thumb_func_end ov27_022561D4
|
||||
|
||||
thumb_func_start ov27_0225621C
|
||||
ov27_0225621C: ; 0x0225621C
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
add r1, r5, #0
|
||||
str r2, [r5, #8]
|
||||
add r0, r2, #0
|
||||
add r1, #0x38
|
||||
mov r2, #0x24
|
||||
bl sub_02099D7C
|
||||
cmp r0, #0
|
||||
beq _02256270
|
||||
add r0, r5, #0
|
||||
add r0, #0x4c
|
||||
ldmia r0!, {r2, r3}
|
||||
add r0, r5, #0
|
||||
add r0, #0xc
|
||||
stmia r0!, {r2, r3}
|
||||
add r0, r5, #0
|
||||
add r0, #0x54
|
||||
ldmia r0!, {r2, r3}
|
||||
add r0, r5, #0
|
||||
add r0, #0x14
|
||||
stmia r0!, {r2, r3}
|
||||
ldr r0, [r5, #0x3c]
|
||||
str r0, [r5, #0x30]
|
||||
ldr r0, [r5, #0x40]
|
||||
str r0, [r5, #0x2c]
|
||||
ldr r0, [r5, #0x44]
|
||||
str r0, [r5, #0x28]
|
||||
ldr r0, [r5, #0x48]
|
||||
str r0, [r5, #0x24]
|
||||
ldr r0, [r5, #0x38]
|
||||
str r0, [r5, #0x1c]
|
||||
cmp r0, #0
|
||||
beq _0225626A
|
||||
mov r0, #2
|
||||
str r0, [r5, #0x34]
|
||||
b _0225627A
|
||||
_0225626A:
|
||||
mov r0, #0
|
||||
str r0, [r5, #0x34]
|
||||
b _0225627A
|
||||
_02256270:
|
||||
add r0, r5, #0
|
||||
bl ov27_02256664
|
||||
mov r0, #0
|
||||
str r0, [r5, #0x34]
|
||||
_0225627A:
|
||||
add r0, r5, #0
|
||||
add r1, r5, #0
|
||||
add r0, #0x60
|
||||
add r1, #0x1c
|
||||
add r2, r4, #0
|
||||
bl ov27_0225680C
|
||||
cmp r0, #0
|
||||
beq _022562A6
|
||||
mov r1, #0
|
||||
strb r1, [r5]
|
||||
strb r1, [r5, #1]
|
||||
ldrb r0, [r5]
|
||||
strb r0, [r5, #3]
|
||||
add r0, r5, #0
|
||||
strb r1, [r5, #2]
|
||||
bl ov27_02256608
|
||||
cmp r0, #0
|
||||
beq _022562A6
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, pc}
|
||||
_022562A6:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_0225621C
|
||||
|
||||
thumb_func_start ov27_022562AC
|
||||
ov27_022562AC: ; 0x022562AC
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
add r0, #0xc
|
||||
ldmia r0!, {r2, r3}
|
||||
add r0, r4, #0
|
||||
add r0, #0x4c
|
||||
stmia r0!, {r2, r3}
|
||||
add r0, r4, #0
|
||||
add r0, #0x14
|
||||
ldmia r0!, {r2, r3}
|
||||
add r0, r4, #0
|
||||
add r0, #0x54
|
||||
stmia r0!, {r2, r3}
|
||||
ldr r0, [r4, #0x30]
|
||||
add r1, r4, #0
|
||||
str r0, [r4, #0x3c]
|
||||
ldr r0, [r4, #0x2c]
|
||||
add r1, #0x38
|
||||
str r0, [r4, #0x40]
|
||||
ldr r0, [r4, #0x28]
|
||||
mov r2, #0x24
|
||||
str r0, [r4, #0x44]
|
||||
ldr r0, [r4, #0x24]
|
||||
str r0, [r4, #0x48]
|
||||
ldr r0, [r4, #0x1c]
|
||||
str r0, [r4, #0x38]
|
||||
ldr r0, [r4, #8]
|
||||
bl sub_02099D54
|
||||
add r0, r4, #0
|
||||
bl ov27_02256654
|
||||
ldr r0, [r4, #0x60]
|
||||
bl ov27_02256890
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_022562AC
|
||||
|
||||
thumb_func_start ov27_022562FC
|
||||
ov27_022562FC: ; 0x022562FC
|
||||
push {r3, r4, r5, lr}
|
||||
add r4, r1, #0
|
||||
ldrb r1, [r4]
|
||||
add r5, r0, #0
|
||||
cmp r1, #6
|
||||
bhs _02256352
|
||||
ldrb r0, [r4, #2]
|
||||
cmp r0, #0
|
||||
beq _0225631E
|
||||
cmp r1, #5
|
||||
beq _0225631E
|
||||
add r0, r4, #0
|
||||
mov r1, #5
|
||||
bl ov27_02256360
|
||||
mov r0, #0
|
||||
strb r0, [r4, #2]
|
||||
_0225631E:
|
||||
ldr r0, [r4, #0x64]
|
||||
ldr r1, [r4, #0x5c]
|
||||
bl ov25_02254518
|
||||
add r1, r4, #0
|
||||
add r0, r4, #0
|
||||
add r1, #0x1c
|
||||
bl ov27_022566D8
|
||||
ldrb r1, [r4]
|
||||
add r0, r4, #0
|
||||
lsl r2, r1, #2
|
||||
ldr r1, _02256354 ; =0x02256F9C
|
||||
ldr r1, [r1, r2]
|
||||
blx r1
|
||||
cmp r0, #0
|
||||
beq _02256352
|
||||
add r0, r4, #0
|
||||
bl ov27_022562AC
|
||||
add r0, r5, #0
|
||||
bl sub_0200DA58
|
||||
ldr r0, [r4, #0x64]
|
||||
bl ov25_02254260
|
||||
_02256352:
|
||||
pop {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_02256354: .word 0x02256F9C
|
||||
thumb_func_end ov27_022562FC
|
||||
|
||||
thumb_func_start ov27_02256358
|
||||
ov27_02256358: ; 0x02256358
|
||||
mov r1, #1
|
||||
strb r1, [r0, #2]
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_02256358
|
||||
|
||||
thumb_func_start ov27_02256360
|
||||
ov27_02256360: ; 0x02256360
|
||||
ldrb r2, [r0]
|
||||
strb r2, [r0, #3]
|
||||
ldrb r2, [r0, #2]
|
||||
cmp r2, #0
|
||||
bne _0225636E
|
||||
strb r1, [r0]
|
||||
b _02256376
|
||||
_0225636E:
|
||||
mov r1, #5
|
||||
strb r1, [r0]
|
||||
mov r1, #0
|
||||
strb r1, [r0, #2]
|
||||
_02256376:
|
||||
mov r1, #0
|
||||
strb r1, [r0, #1]
|
||||
bx lr
|
||||
thumb_func_end ov27_02256360
|
||||
|
||||
thumb_func_start ov27_0225637C
|
||||
ov27_0225637C: ; 0x0225637C
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _0225638C
|
||||
cmp r0, #1
|
||||
beq _0225639C
|
||||
b _022563C6
|
||||
_0225638C:
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #0
|
||||
bl ov27_022569C8
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _022563C6
|
||||
_0225639C:
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #0
|
||||
bl ov27_022569EC
|
||||
cmp r0, #0
|
||||
beq _022563C6
|
||||
ldr r0, [r4, #0x64]
|
||||
bl ov25_0225424C
|
||||
ldr r0, [r4, #0x1c]
|
||||
cmp r0, #0
|
||||
beq _022563BE
|
||||
add r0, r4, #0
|
||||
mov r1, #2
|
||||
bl ov27_02256360
|
||||
b _022563C6
|
||||
_022563BE:
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl ov27_02256360
|
||||
_022563C6:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_0225637C
|
||||
|
||||
thumb_func_start ov27_022563CC
|
||||
ov27_022563CC: ; 0x022563CC
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _022563DC
|
||||
cmp r0, #1
|
||||
beq _022563F4
|
||||
b _02256448
|
||||
_022563DC:
|
||||
ldrb r0, [r4, #4]
|
||||
cmp r0, #1
|
||||
bne _02256448
|
||||
mov r1, #1
|
||||
str r1, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
bl ov27_022569C8
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _02256448
|
||||
_022563F4:
|
||||
ldrb r0, [r4, #4]
|
||||
cmp r0, #2
|
||||
beq _02256404
|
||||
cmp r0, #3
|
||||
beq _02256418
|
||||
cmp r0, #5
|
||||
beq _02256434
|
||||
b _02256448
|
||||
_02256404:
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
ldrb r0, [r4, #1]
|
||||
sub r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _02256448
|
||||
_02256418:
|
||||
mov r0, #2
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
bl ov27_02256680
|
||||
add r0, r4, #0
|
||||
mov r1, #2
|
||||
bl ov27_02256360
|
||||
b _02256448
|
||||
_02256434:
|
||||
mov r0, #3
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
mov r1, #3
|
||||
bl ov27_02256360
|
||||
_02256448:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov27_022563CC
|
||||
|
||||
thumb_func_start ov27_0225644C
|
||||
ov27_0225644C: ; 0x0225644C
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r1, [r4, #1]
|
||||
cmp r1, #0
|
||||
beq _0225645C
|
||||
cmp r1, #1
|
||||
beq _0225647A
|
||||
b _022564CA
|
||||
_0225645C:
|
||||
ldrb r1, [r4, #4]
|
||||
cmp r1, #1
|
||||
bne _022564CA
|
||||
mov r1, #1
|
||||
str r1, [r4, #0x34]
|
||||
bl ov27_022566C4
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _022564CA
|
||||
_0225647A:
|
||||
ldrb r0, [r4, #4]
|
||||
cmp r0, #2
|
||||
beq _0225648A
|
||||
cmp r0, #3
|
||||
beq _022564A0
|
||||
cmp r0, #5
|
||||
beq _022564B6
|
||||
b _022564CA
|
||||
_0225648A:
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl ov27_02256360
|
||||
b _022564CA
|
||||
_022564A0:
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl ov27_02256360
|
||||
b _022564CA
|
||||
_022564B6:
|
||||
mov r0, #3
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
mov r1, #3
|
||||
bl ov27_02256360
|
||||
_022564CA:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_0225644C
|
||||
|
||||
thumb_func_start ov27_022564D0
|
||||
ov27_022564D0: ; 0x022564D0
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r1, [r4, #4]
|
||||
cmp r1, #2
|
||||
beq _02256504
|
||||
cmp r1, #3
|
||||
beq _022564E4
|
||||
cmp r1, #6
|
||||
beq _0225651A
|
||||
b _0225652E
|
||||
_022564E4:
|
||||
ldrb r1, [r4, #3]
|
||||
cmp r1, #1
|
||||
bne _02256504
|
||||
bl ov27_02256680
|
||||
mov r0, #2
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
mov r1, #2
|
||||
bl ov27_02256360
|
||||
b _0225652E
|
||||
_02256504:
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl ov27_02256360
|
||||
b _0225652E
|
||||
_0225651A:
|
||||
mov r0, #4
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
mov r1, #4
|
||||
bl ov27_02256360
|
||||
_0225652E:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_022564D0
|
||||
|
||||
thumb_func_start ov27_02256534
|
||||
ov27_02256534: ; 0x02256534
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #3
|
||||
bhi _022565CA
|
||||
add r0, r0, r0
|
||||
add r0, pc
|
||||
ldrh r0, [r0, #6]
|
||||
lsl r0, r0, #0x10
|
||||
asr r0, r0, #0x10
|
||||
add pc, r0
|
||||
_0225654A: ; jump table
|
||||
.short _02256552 - _0225654A - 2 ; case 0
|
||||
.short _0225655C - _0225654A - 2 ; case 1
|
||||
.short _02256580 - _0225654A - 2 ; case 2
|
||||
.short _022565AA - _0225654A - 2 ; case 3
|
||||
_02256552:
|
||||
mov r0, #0
|
||||
strh r0, [r4, #6]
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
_0225655C:
|
||||
ldrh r0, [r4, #6]
|
||||
add r0, r0, #1
|
||||
strh r0, [r4, #6]
|
||||
ldrh r0, [r4, #6]
|
||||
cmp r0, #0x5a
|
||||
blo _022565CA
|
||||
mov r0, #5
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
mov r0, #0
|
||||
strh r0, [r4, #6]
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _022565CA
|
||||
_02256580:
|
||||
ldrh r0, [r4, #6]
|
||||
add r0, r0, #1
|
||||
strh r0, [r4, #6]
|
||||
ldrh r0, [r4, #6]
|
||||
cmp r0, #0x3c
|
||||
blo _022565CA
|
||||
mov r0, #6
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
bl ov27_02256664
|
||||
mov r0, #0
|
||||
strh r0, [r4, #6]
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _022565CA
|
||||
_022565AA:
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569EC
|
||||
cmp r0, #0
|
||||
beq _022565CA
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl ov27_02256360
|
||||
_022565CA:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_02256534
|
||||
|
||||
thumb_func_start ov27_022565D0
|
||||
ov27_022565D0: ; 0x022565D0
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _022565E0
|
||||
cmp r0, #1
|
||||
beq _022565F4
|
||||
b _02256602
|
||||
_022565E0:
|
||||
mov r0, #7
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, [r4, #0x60]
|
||||
mov r1, #3
|
||||
bl ov27_022569C8
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _02256602
|
||||
_022565F4:
|
||||
ldr r0, [r4, #0x60]
|
||||
bl ov27_022569F8
|
||||
cmp r0, #0
|
||||
beq _02256602
|
||||
mov r0, #1
|
||||
pop {r4, pc}
|
||||
_02256602:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_022565D0
|
||||
|
||||
thumb_func_start ov27_02256608
|
||||
ov27_02256608: ; 0x02256608
|
||||
push {r3, r4, lr}
|
||||
sub sp, #4
|
||||
add r4, r0, #0
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
ldr r0, _0225664C ; =0x02256F98
|
||||
ldr r2, _02256650 ; =ov27_02256660
|
||||
mov r1, #1
|
||||
add r3, r4, #0
|
||||
bl ov25_02255ACC
|
||||
str r0, [r4, #0x5c]
|
||||
cmp r0, #0
|
||||
beq _02256644
|
||||
mov r1, #0
|
||||
add r2, r1, #0
|
||||
mov r3, #0xf
|
||||
bl ov25_02255C48
|
||||
ldr r0, [r4, #0x5c]
|
||||
mov r1, #0
|
||||
mov r2, #1
|
||||
mov r3, #0x4b
|
||||
bl ov25_02255C48
|
||||
mov r0, #0
|
||||
strb r0, [r4, #4]
|
||||
add sp, #4
|
||||
mov r0, #1
|
||||
pop {r3, r4, pc}
|
||||
_02256644:
|
||||
mov r0, #0
|
||||
add sp, #4
|
||||
pop {r3, r4, pc}
|
||||
nop
|
||||
_0225664C: .word 0x02256F98
|
||||
_02256650: .word ov27_02256660
|
||||
thumb_func_end ov27_02256608
|
||||
|
||||
thumb_func_start ov27_02256654
|
||||
ov27_02256654: ; 0x02256654
|
||||
ldr r3, _0225665C ; =ov25_02255B34
|
||||
ldr r0, [r0, #0x5c]
|
||||
bx r3
|
||||
nop
|
||||
_0225665C: .word ov25_02255B34
|
||||
thumb_func_end ov27_02256654
|
||||
|
||||
thumb_func_start ov27_02256660
|
||||
ov27_02256660: ; 0x02256660
|
||||
strb r1, [r3, #4]
|
||||
bx lr
|
||||
thumb_func_end ov27_02256660
|
||||
|
||||
thumb_func_start ov27_02256664
|
||||
ov27_02256664: ; 0x02256664
|
||||
mov r2, #0
|
||||
str r2, [r0, #0x1c]
|
||||
mov r1, #1
|
||||
str r1, [r0, #0x20]
|
||||
str r2, [r0, #0x24]
|
||||
str r2, [r0, #0x28]
|
||||
str r2, [r0, #0x2c]
|
||||
str r2, [r0, #0x30]
|
||||
str r2, [r0, #0xc]
|
||||
str r2, [r0, #0x10]
|
||||
str r2, [r0, #0x14]
|
||||
str r2, [r0, #0x18]
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_02256664
|
||||
|
||||
thumb_func_start ov27_02256680
|
||||
ov27_02256680: ; 0x02256680
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r4, r0, #0
|
||||
ldr r3, [r4, #0xc]
|
||||
mov r0, #0
|
||||
ldr r2, [r4, #0x10]
|
||||
mov r1, #0
|
||||
eor r1, r2
|
||||
eor r0, r3
|
||||
orr r0, r1
|
||||
beq _022566B2
|
||||
bl sub_0202293C
|
||||
add r5, r4, #0
|
||||
add r5, #0xc
|
||||
ldr r7, [r4, #0x14]
|
||||
ldr r2, [r4, #0xc]
|
||||
ldr r6, [r4, #0x18]
|
||||
sub r0, r0, r7
|
||||
sbc r1, r6
|
||||
ldr r3, [r5, #4]
|
||||
add r0, r2, r0
|
||||
adc r3, r1
|
||||
str r0, [r4, #0xc]
|
||||
str r3, [r5, #4]
|
||||
b _022566BA
|
||||
_022566B2:
|
||||
bl sub_0202293C
|
||||
str r0, [r4, #0xc]
|
||||
str r1, [r4, #0x10]
|
||||
_022566BA:
|
||||
mov r0, #1
|
||||
str r0, [r4, #0x1c]
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x20]
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
thumb_func_end ov27_02256680
|
||||
|
||||
thumb_func_start ov27_022566C4
|
||||
ov27_022566C4: ; 0x022566C4
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
bl sub_0202293C
|
||||
str r0, [r4, #0x14]
|
||||
str r1, [r4, #0x18]
|
||||
mov r0, #0
|
||||
str r0, [r4, #0x1c]
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_022566C4
|
||||
|
||||
thumb_func_start ov27_022566D8
|
||||
ov27_022566D8: ; 0x022566D8
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r4, r1, #0
|
||||
add r5, r0, #0
|
||||
ldr r0, [r4, #0]
|
||||
cmp r0, #0
|
||||
bne _022566E6
|
||||
b _022567FC
|
||||
_022566E6:
|
||||
bl sub_0202293C
|
||||
ldr r3, [r5, #0xc]
|
||||
ldr r2, [r5, #0x10]
|
||||
sub r0, r0, r3
|
||||
sbc r1, r2
|
||||
bl sub_02022944
|
||||
ldr r2, _02256800 ; =0x04000280
|
||||
mov r3, #1
|
||||
strh r3, [r2]
|
||||
add r3, r2, #0
|
||||
add r3, #0x10
|
||||
str r0, [r3, #0]
|
||||
str r1, [r3, #4]
|
||||
mov r3, #0xfa
|
||||
add r0, r2, #0
|
||||
lsl r3, r3, #2
|
||||
add r0, #0x18
|
||||
mov r1, #0
|
||||
str r3, [r0, #0]
|
||||
str r1, [r0, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_02256714:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _02256714
|
||||
ldr r0, _02256804 ; =0x040002A0
|
||||
add r3, r0, #0
|
||||
ldr r6, [r0, #0]
|
||||
ldr r5, [r0, #4]
|
||||
sub r3, #0x20
|
||||
lsr r0, r0, #0xb
|
||||
_02256726:
|
||||
ldrh r1, [r3]
|
||||
tst r1, r0
|
||||
bne _02256726
|
||||
ldr r2, _02256808 ; =0x040002A8
|
||||
mov r0, #1
|
||||
ldr r1, [r2, #0]
|
||||
ldr r7, [r2, #4]
|
||||
strh r0, [r3]
|
||||
add r0, r2, #0
|
||||
sub r0, #0x18
|
||||
str r1, [r0, #0]
|
||||
str r7, [r0, #4]
|
||||
mov r1, #0xa
|
||||
sub r2, #0x10
|
||||
str r1, [r2, #0]
|
||||
mov r0, #0
|
||||
ldr r1, _02256800 ; =0x04000280
|
||||
str r0, [r2, #4]
|
||||
lsr r0, r1, #0xb
|
||||
_0225674C:
|
||||
ldrh r2, [r1]
|
||||
tst r2, r0
|
||||
bne _0225674C
|
||||
ldr r0, _02256804 ; =0x040002A0
|
||||
ldr r2, [r0, #0]
|
||||
str r2, [r4, #8]
|
||||
mov r2, #1
|
||||
strh r2, [r1]
|
||||
add r1, r0, #0
|
||||
sub r1, #0x10
|
||||
str r6, [r1, #0]
|
||||
str r5, [r1, #4]
|
||||
mov r2, #0x3c
|
||||
sub r0, #8
|
||||
str r2, [r0, #0]
|
||||
mov r1, #0
|
||||
ldr r2, _02256800 ; =0x04000280
|
||||
str r1, [r0, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_02256772:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _02256772
|
||||
ldr r0, _02256804 ; =0x040002A0
|
||||
add r1, r0, #0
|
||||
ldr r3, [r0, #0]
|
||||
ldr r2, [r0, #4]
|
||||
sub r1, #0x20
|
||||
lsr r0, r0, #0xb
|
||||
_02256784:
|
||||
ldrh r5, [r1]
|
||||
tst r5, r0
|
||||
bne _02256784
|
||||
ldr r0, _02256808 ; =0x040002A8
|
||||
ldr r5, [r0, #0]
|
||||
str r5, [r4, #0xc]
|
||||
mov r5, #1
|
||||
strh r5, [r1]
|
||||
add r1, r0, #0
|
||||
sub r1, #0x18
|
||||
str r3, [r1, #0]
|
||||
str r2, [r1, #4]
|
||||
mov r2, #0x3c
|
||||
sub r0, #0x10
|
||||
str r2, [r0, #0]
|
||||
mov r1, #0
|
||||
ldr r2, _02256800 ; =0x04000280
|
||||
str r1, [r0, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_022567AA:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _022567AA
|
||||
ldr r0, _02256804 ; =0x040002A0
|
||||
add r2, r0, #0
|
||||
ldr r5, [r0, #0]
|
||||
ldr r3, [r0, #4]
|
||||
sub r2, #0x20
|
||||
lsr r0, r0, #0xb
|
||||
_022567BC:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _022567BC
|
||||
ldr r1, _02256808 ; =0x040002A8
|
||||
mov r6, #0x18
|
||||
ldr r0, [r1, #0]
|
||||
str r0, [r4, #0x10]
|
||||
mov r0, #0
|
||||
sub r6, r5, r6
|
||||
mov ip, r3
|
||||
mov r6, ip
|
||||
sbc r6, r0
|
||||
blo _022567FA
|
||||
mov r0, #1
|
||||
strh r0, [r2]
|
||||
add r0, r1, #0
|
||||
sub r0, #0x18
|
||||
str r5, [r0, #0]
|
||||
str r3, [r0, #4]
|
||||
mov r2, #0x18
|
||||
sub r1, #0x10
|
||||
str r2, [r1, #0]
|
||||
mov r0, #0
|
||||
ldr r2, _02256800 ; =0x04000280
|
||||
str r0, [r1, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_022567F0:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _022567F0
|
||||
ldr r0, _02256808 ; =0x040002A8
|
||||
ldr r5, [r0, #0]
|
||||
_022567FA:
|
||||
str r5, [r4, #0x14]
|
||||
_022567FC:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02256800: .word 0x04000280
|
||||
_02256804: .word 0x040002A0
|
||||
_02256808: .word 0x040002A8
|
||||
thumb_func_end ov27_022566D8
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov27_02256F98
|
||||
Unk_ov27_02256F98: ; 0x02256F98
|
||||
.incbin "incbin/overlay27_rodata.bin", 0x0, 0x4 - 0x0
|
||||
|
||||
.global Unk_ov27_02256F9C
|
||||
Unk_ov27_02256F9C: ; 0x02256F9C
|
||||
.incbin "incbin/overlay27_rodata.bin", 0x4, 0x18
|
||||
|
||||
.section .sinit, 4
|
||||
.word ov27_022561C0
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
.public sub_02006E3C
|
||||
.public sub_02006E60
|
||||
.public sub_02006EC0
|
||||
.public sub_0200D9E8
|
||||
.public sub_0200DA58
|
||||
.public sub_02018144
|
||||
.public sub_020181C4
|
||||
.public sub_02018340
|
||||
.public sub_020183C4
|
||||
.public sub_02019044
|
||||
.public sub_02019448
|
||||
.public sub_02019FE4
|
||||
.public sub_0201CECC
|
||||
.public ov25_02254424
|
||||
.public ov25_02254664
|
||||
.public ov25_022546B8
|
||||
.public ov25_02255090
|
||||
.public ov25_02255130
|
||||
.public ov25_02255154
|
||||
.public ov25_0225517C
|
||||
.public ov25_02255224
|
||||
.public ov25_0225523C
|
||||
.public ov25_02255240
|
||||
.public ov25_02255244
|
||||
.public ov25_02255248
|
||||
.public ov25_0225524C
|
||||
.public ov25_02255810
|
||||
.public ov25_022558B0
|
||||
.public ov25_022558C4
|
||||
.public ov25_02255914
|
||||
.public ov25_02255958
|
||||
.public ov25_022559B0
|
||||
.public ov27_022568A8
|
||||
.public ov27_022568B4
|
||||
.public ov27_022569C8
|
||||
.public ov27_02256A04
|
||||
.public ov27_02256AEC
|
||||
.public ov27_02256B24
|
||||
.public ov27_02256E90
|
||||
.public ov27_02256EC4
|
||||
.public ov27_02256F7C
|
||||
@@ -1,999 +0,0 @@
|
||||
.include "macros/function.inc"
|
||||
.include "overlay027/ov27_0225680C.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ov27_0225680C
|
||||
ov27_0225680C: ; 0x0225680C
|
||||
push {r3, r4, r5, r6, lr}
|
||||
sub sp, #4
|
||||
add r5, r0, #0
|
||||
add r6, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x88
|
||||
bl sub_02018144
|
||||
add r4, r0, #0
|
||||
beq _02256888
|
||||
str r6, [r4, #0]
|
||||
bl ov25_02254664
|
||||
str r0, [r4, #0x5c]
|
||||
mov r0, #8
|
||||
bl sub_02018340
|
||||
str r0, [r4, #4]
|
||||
cmp r0, #0
|
||||
bne _0225683A
|
||||
add sp, #4
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, pc}
|
||||
_0225683A:
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
add r0, r4, #0
|
||||
add r0, #0x34
|
||||
mov r1, #0xc
|
||||
mov r2, #0x12
|
||||
mov r3, #0x13
|
||||
bl ov25_02255958
|
||||
cmp r0, #0
|
||||
beq _02256888
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
add r0, r4, #0
|
||||
add r0, #0x48
|
||||
mov r1, #0xc
|
||||
mov r2, #3
|
||||
mov r3, #4
|
||||
bl ov25_02255958
|
||||
cmp r0, #0
|
||||
beq _02256880
|
||||
add r0, r4, #0
|
||||
add r0, #8
|
||||
mov r1, #8
|
||||
bl ov25_02255090
|
||||
add r0, r4, #0
|
||||
mov r1, #0
|
||||
add r0, #0x84
|
||||
str r1, [r0, #0]
|
||||
add sp, #4
|
||||
str r4, [r5, #0]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, pc}
|
||||
_02256880:
|
||||
add r4, #0x34
|
||||
add r0, r4, #0
|
||||
bl ov25_022559B0
|
||||
_02256888:
|
||||
mov r0, #0
|
||||
add sp, #4
|
||||
pop {r3, r4, r5, r6, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_0225680C
|
||||
|
||||
thumb_func_start ov27_02256890
|
||||
ov27_02256890: ; 0x02256890
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
beq _022568A6
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #0
|
||||
beq _022568A0
|
||||
bl sub_020181C4
|
||||
_022568A0:
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
_022568A6:
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov27_02256890
|
||||
|
||||
thumb_func_start ov27_022568A8
|
||||
ov27_022568A8: ; 0x022568A8
|
||||
ldr r3, _022568B0 ; =ov27_022568B4
|
||||
add r0, r1, #0
|
||||
bx r3
|
||||
nop
|
||||
_022568B0: .word ov27_022568B4
|
||||
thumb_func_end ov27_022568A8
|
||||
|
||||
thumb_func_start ov27_022568B4
|
||||
ov27_022568B4: ; 0x022568B4
|
||||
push {r3, r4, r5, lr}
|
||||
add r4, r0, #0
|
||||
ldr r0, [r4, #0]
|
||||
ldr r2, _022569BC ; =0x04000280
|
||||
ldr r0, [r0, #0x14]
|
||||
mov r3, #0
|
||||
strh r3, [r2]
|
||||
str r0, [r2, #0x10]
|
||||
add r0, r2, #0
|
||||
mov r1, #0xa
|
||||
add r0, #0x18
|
||||
str r1, [r0, #0]
|
||||
str r3, [r0, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_022568D0:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _022568D0
|
||||
ldr r0, _022569C0 ; =0x040002A0
|
||||
add r3, r0, #0
|
||||
ldr r1, [r0, #0]
|
||||
sub r3, #0x20
|
||||
lsr r0, r0, #0xb
|
||||
_022568E0:
|
||||
ldrh r2, [r3]
|
||||
tst r2, r0
|
||||
bne _022568E0
|
||||
ldr r0, _022569C4 ; =0x040002A8
|
||||
ldr r5, [r0, #0]
|
||||
ldr r0, [r4, #0x60]
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #0x64]
|
||||
add r1, r5, #0
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #0]
|
||||
ldr r2, _022569BC ; =0x04000280
|
||||
ldr r0, [r0, #0x10]
|
||||
mov r3, #0
|
||||
strh r3, [r2]
|
||||
str r0, [r2, #0x10]
|
||||
add r0, r2, #0
|
||||
mov r1, #0xa
|
||||
add r0, #0x18
|
||||
str r1, [r0, #0]
|
||||
str r3, [r0, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_02256910:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _02256910
|
||||
ldr r0, _022569C0 ; =0x040002A0
|
||||
add r3, r0, #0
|
||||
ldr r1, [r0, #0]
|
||||
sub r3, #0x20
|
||||
lsr r0, r0, #0xb
|
||||
_02256920:
|
||||
ldrh r2, [r3]
|
||||
tst r2, r0
|
||||
bne _02256920
|
||||
ldr r0, _022569C4 ; =0x040002A8
|
||||
ldr r5, [r0, #0]
|
||||
ldr r0, [r4, #0x68]
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #0x6c]
|
||||
add r1, r5, #0
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #0]
|
||||
ldr r2, _022569BC ; =0x04000280
|
||||
ldr r0, [r0, #0xc]
|
||||
mov r3, #0
|
||||
strh r3, [r2]
|
||||
str r0, [r2, #0x10]
|
||||
add r0, r2, #0
|
||||
mov r1, #0xa
|
||||
add r0, #0x18
|
||||
str r1, [r0, #0]
|
||||
str r3, [r0, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_02256950:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _02256950
|
||||
ldr r0, _022569C0 ; =0x040002A0
|
||||
add r3, r0, #0
|
||||
ldr r1, [r0, #0]
|
||||
sub r3, #0x20
|
||||
lsr r0, r0, #0xb
|
||||
_02256960:
|
||||
ldrh r2, [r3]
|
||||
tst r2, r0
|
||||
bne _02256960
|
||||
ldr r0, _022569C4 ; =0x040002A8
|
||||
ldr r5, [r0, #0]
|
||||
ldr r0, [r4, #0x70]
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #0x74]
|
||||
add r1, r5, #0
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #0]
|
||||
ldr r2, _022569BC ; =0x04000280
|
||||
ldr r0, [r0, #8]
|
||||
mov r3, #0
|
||||
strh r3, [r2]
|
||||
str r0, [r2, #0x10]
|
||||
add r0, r2, #0
|
||||
mov r1, #0xa
|
||||
add r0, #0x18
|
||||
str r1, [r0, #0]
|
||||
str r3, [r0, #4]
|
||||
lsr r0, r2, #0xb
|
||||
_02256990:
|
||||
ldrh r1, [r2]
|
||||
tst r1, r0
|
||||
bne _02256990
|
||||
ldr r0, _022569C0 ; =0x040002A0
|
||||
add r3, r0, #0
|
||||
ldr r1, [r0, #0]
|
||||
sub r3, #0x20
|
||||
lsr r0, r0, #0xb
|
||||
_022569A0:
|
||||
ldrh r2, [r3]
|
||||
tst r2, r0
|
||||
bne _022569A0
|
||||
ldr r0, _022569C4 ; =0x040002A8
|
||||
ldr r5, [r0, #0]
|
||||
ldr r0, [r4, #0x78]
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #0x7c]
|
||||
add r1, r5, #0
|
||||
bl ov25_022558C4
|
||||
pop {r3, r4, r5, pc}
|
||||
nop
|
||||
_022569BC: .word 0x04000280
|
||||
_022569C0: .word 0x040002A0
|
||||
_022569C4: .word 0x040002A8
|
||||
thumb_func_end ov27_022568B4
|
||||
|
||||
thumb_func_start ov27_022569C8
|
||||
ov27_022569C8: ; 0x022569C8
|
||||
push {lr}
|
||||
sub sp, #0xc
|
||||
add r2, r0, #0
|
||||
add r0, #8
|
||||
str r0, [sp]
|
||||
mov r0, #2
|
||||
str r0, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
ldr r0, _022569E8 ; =0x02256FF0
|
||||
ldr r3, [r2, #0]
|
||||
bl ov25_0225517C
|
||||
add sp, #0xc
|
||||
pop {pc}
|
||||
nop
|
||||
_022569E8: .word 0x02256FF0
|
||||
thumb_func_end ov27_022569C8
|
||||
|
||||
thumb_func_start ov27_022569EC
|
||||
ov27_022569EC: ; 0x022569EC
|
||||
ldr r3, _022569F4 ; =ov25_02255130
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_022569F4: .word ov25_02255130
|
||||
thumb_func_end ov27_022569EC
|
||||
|
||||
thumb_func_start ov27_022569F8
|
||||
ov27_022569F8: ; 0x022569F8
|
||||
ldr r3, _02256A00 ; =ov25_02255154
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_02256A00: .word ov25_02255154
|
||||
thumb_func_end ov27_022569F8
|
||||
|
||||
thumb_func_start ov27_02256A04
|
||||
ov27_02256A04: ; 0x02256A04
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
bl ov25_0225523C
|
||||
add r0, #8
|
||||
add r1, r4, #0
|
||||
bl ov25_02255224
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_02256A04
|
||||
|
||||
thumb_func_start ov27_02256A18
|
||||
ov27_02256A18: ; 0x02256A18
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x14
|
||||
add r7, r1, #0
|
||||
add r0, r7, #0
|
||||
bl ov25_0225523C
|
||||
add r5, r0, #0
|
||||
ldr r0, [r5, #4]
|
||||
ldr r2, _02256ADC ; =0x02256FD4
|
||||
mov r1, #6
|
||||
mov r3, #0
|
||||
bl sub_020183C4
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x15
|
||||
mov r3, #6
|
||||
bl sub_02006E3C
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x14
|
||||
mov r3, #6
|
||||
bl sub_02006E60
|
||||
mov r0, #0
|
||||
add r1, r0, #0
|
||||
bl ov25_022546B8
|
||||
ldr r0, [r5, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
add r0, r7, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
add r0, r7, #0
|
||||
bl ov25_02255240
|
||||
add r6, r0, #0
|
||||
add r0, r4, #0
|
||||
bl ov27_02256AEC
|
||||
add r0, r4, #0
|
||||
add r1, r6, #0
|
||||
bl ov27_02256B24
|
||||
ldr r0, _02256AE0 ; =ov27_022568A8
|
||||
add r1, r5, #0
|
||||
mov r2, #3
|
||||
bl sub_0200D9E8
|
||||
add r5, #0x84
|
||||
str r0, [r5, #0]
|
||||
add r0, r4, #0
|
||||
bl ov27_022568B4
|
||||
ldr r0, [r6, #0]
|
||||
cmp r0, #0
|
||||
beq _02256AB6
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl ov27_022569C8
|
||||
_02256AB6:
|
||||
ldr r1, _02256AE4 ; =0x04001000
|
||||
ldr r0, _02256AE8 ; =0xFFFFE0FF
|
||||
ldr r3, [r1, #0]
|
||||
ldr r2, [r1, #0]
|
||||
str r3, [sp, #0x10]
|
||||
and r0, r2
|
||||
lsl r2, r3, #0x13
|
||||
lsr r3, r2, #0x1b
|
||||
mov r2, #0x14
|
||||
orr r2, r3
|
||||
lsl r2, r2, #8
|
||||
orr r0, r2
|
||||
str r0, [r1, #0]
|
||||
add r0, r7, #0
|
||||
bl ov27_02256A04
|
||||
add sp, #0x14
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02256ADC: .word 0x02256FD4
|
||||
_02256AE0: .word ov27_022568A8
|
||||
_02256AE4: .word 0x04001000
|
||||
_02256AE8: .word 0xFFFFE0FF
|
||||
thumb_func_end ov27_02256A18
|
||||
|
||||
thumb_func_start ov27_02256AEC
|
||||
ov27_02256AEC: ; 0x02256AEC
|
||||
push {lr}
|
||||
sub sp, #0xc
|
||||
mov r3, #0
|
||||
str r3, [sp]
|
||||
mov r2, #1
|
||||
str r2, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
mov r0, #0xc
|
||||
mov r1, #2
|
||||
bl sub_02006EC0
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
mov r2, #1
|
||||
mov r3, #0xa
|
||||
str r2, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x16
|
||||
lsl r3, r3, #8
|
||||
bl sub_02006EC0
|
||||
mov r0, #1
|
||||
add sp, #0xc
|
||||
pop {pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_02256AEC
|
||||
|
||||
thumb_func_start ov27_02256B24
|
||||
ov27_02256B24: ; 0x02256B24
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #8
|
||||
add r7, r0, #0
|
||||
str r0, [sp, #4]
|
||||
add r0, #0x48
|
||||
ldr r4, _02256B7C ; =0x02257020
|
||||
str r1, [sp]
|
||||
mov r6, #0
|
||||
add r5, r7, #0
|
||||
str r0, [sp, #4]
|
||||
_02256B38:
|
||||
ldr r0, [r7, #0x5c]
|
||||
ldr r2, [sp, #4]
|
||||
add r1, r4, #0
|
||||
bl ov25_02255810
|
||||
str r0, [r5, #0x60]
|
||||
add r6, r6, #1
|
||||
add r4, #0x10
|
||||
add r5, r5, #4
|
||||
cmp r6, #7
|
||||
bls _02256B38
|
||||
ldr r2, _02256B7C ; =0x02257020
|
||||
lsl r1, r6, #4
|
||||
add r1, r2, r1
|
||||
add r2, r7, #0
|
||||
ldr r0, [r7, #0x5c]
|
||||
add r2, #0x34
|
||||
bl ov25_02255810
|
||||
add r1, r7, #0
|
||||
add r1, #0x80
|
||||
str r0, [r1, #0]
|
||||
ldr r0, [sp]
|
||||
ldr r0, [r0, #0]
|
||||
cmp r0, #0
|
||||
bne _02256B76
|
||||
add r7, #0x80
|
||||
ldr r0, [r7, #0]
|
||||
mov r1, #1
|
||||
bl ov25_02255914
|
||||
_02256B76:
|
||||
add sp, #8
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02256B7C: .word 0x02257020
|
||||
thumb_func_end ov27_02256B24
|
||||
|
||||
thumb_func_start ov27_02256B80
|
||||
ov27_02256B80: ; 0x02256B80
|
||||
push {r4, r5, r6, lr}
|
||||
add r6, r1, #0
|
||||
add r5, r0, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_02255240
|
||||
add r4, r0, #0
|
||||
ldr r1, [r4, #0x18]
|
||||
add r0, r5, #0
|
||||
lsl r2, r1, #2
|
||||
ldr r1, _02256BAC ; =0x02256FB8
|
||||
ldr r1, [r1, r2]
|
||||
bl sub_0201CECC
|
||||
ldr r2, [r4, #0x18]
|
||||
add r0, r5, #0
|
||||
lsl r3, r2, #2
|
||||
ldr r2, _02256BAC ; =0x02256FB8
|
||||
add r1, r6, #0
|
||||
ldr r2, [r2, r3]
|
||||
blx r2
|
||||
pop {r4, r5, r6, pc}
|
||||
; .align 2, 0
|
||||
_02256BAC: .word 0x02256FB8
|
||||
thumb_func_end ov27_02256B80
|
||||
|
||||
thumb_func_start ov27_02256BB0
|
||||
ov27_02256BB0: ; 0x02256BB0
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_02255240
|
||||
add r0, r4, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0]
|
||||
mov r1, #1
|
||||
bl ov25_02255914
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #0
|
||||
bl ov27_02256EC4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
add r0, r5, #0
|
||||
bl ov27_02256A04
|
||||
pop {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_02256BB0
|
||||
|
||||
thumb_func_start ov27_02256BE8
|
||||
ov27_02256BE8: ; 0x02256BE8
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0]
|
||||
mov r1, #0
|
||||
bl ov25_02255914
|
||||
add r0, r4, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0]
|
||||
mov r1, #0xb
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #1
|
||||
bl ov27_02256EC4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
ldr r0, _02256C28 ; =0x00000669
|
||||
bl ov25_02254424
|
||||
add r0, r5, #0
|
||||
bl ov27_02256A04
|
||||
pop {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_02256C28: .word 0x00000669
|
||||
thumb_func_end ov27_02256BE8
|
||||
|
||||
thumb_func_start ov27_02256C2C
|
||||
ov27_02256C2C: ; 0x02256C2C
|
||||
push {r4, r5, r6, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_02255240
|
||||
add r6, r0, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
ldr r0, [r6, #0x18]
|
||||
cmp r0, #2
|
||||
beq _02256C4E
|
||||
add r0, r5, #0
|
||||
bl ov27_02256A04
|
||||
pop {r4, r5, r6, pc}
|
||||
_02256C4E:
|
||||
add r0, r5, #0
|
||||
bl ov25_02255248
|
||||
cmp r0, #0
|
||||
beq _02256C5C
|
||||
cmp r0, #1
|
||||
pop {r4, r5, r6, pc}
|
||||
_02256C5C:
|
||||
add r0, r4, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0]
|
||||
mov r1, #0xc
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #0
|
||||
bl ov27_02256EC4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
add r0, r5, #0
|
||||
bl ov25_0225524C
|
||||
pop {r4, r5, r6, pc}
|
||||
thumb_func_end ov27_02256C2C
|
||||
|
||||
thumb_func_start ov27_02256C80
|
||||
ov27_02256C80: ; 0x02256C80
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r6, r1, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_02255240
|
||||
add r7, r0, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_02255244
|
||||
add r5, r0, #0
|
||||
ldr r0, [r7, #0x18]
|
||||
cmp r0, #3
|
||||
beq _02256CAA
|
||||
add r0, r6, #0
|
||||
bl ov27_02256A04
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02256CAA:
|
||||
add r0, r6, #0
|
||||
bl ov25_02255248
|
||||
cmp r0, #0
|
||||
beq _02256CBA
|
||||
cmp r0, #1
|
||||
beq _02256CD8
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02256CBA:
|
||||
mov r0, #6
|
||||
strh r0, [r5]
|
||||
mov r0, #2
|
||||
strb r0, [r5, #3]
|
||||
mov r0, #0
|
||||
strb r0, [r5, #2]
|
||||
add r0, r4, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0]
|
||||
mov r1, #0xd
|
||||
bl ov25_022558C4
|
||||
add r0, r6, #0
|
||||
bl ov25_0225524C
|
||||
_02256CD8:
|
||||
add r0, r5, #0
|
||||
mov r1, #6
|
||||
bl ov27_02256E90
|
||||
cmp r0, #0
|
||||
beq _02256CFA
|
||||
ldr r0, _02256CFC ; =0x00000669
|
||||
bl ov25_02254424
|
||||
ldrb r1, [r5, #3]
|
||||
ldr r0, [r4, #4]
|
||||
bl ov27_02256EC4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
_02256CFA:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_02256CFC: .word 0x00000669
|
||||
thumb_func_end ov27_02256C80
|
||||
|
||||
thumb_func_start ov27_02256D00
|
||||
ov27_02256D00: ; 0x02256D00
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r6, r1, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_02255240
|
||||
add r7, r0, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_02255244
|
||||
add r5, r0, #0
|
||||
ldr r0, [r7, #0x18]
|
||||
cmp r0, #4
|
||||
beq _02256D2A
|
||||
add r0, r6, #0
|
||||
bl ov27_02256A04
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02256D2A:
|
||||
add r0, r6, #0
|
||||
bl ov25_02255248
|
||||
cmp r0, #0
|
||||
beq _02256D3A
|
||||
cmp r0, #1
|
||||
beq _02256D58
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02256D3A:
|
||||
mov r0, #3
|
||||
strh r0, [r5]
|
||||
mov r0, #2
|
||||
strb r0, [r5, #3]
|
||||
mov r0, #0
|
||||
strb r0, [r5, #2]
|
||||
add r0, r4, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0]
|
||||
mov r1, #0xe
|
||||
bl ov25_022558C4
|
||||
add r0, r6, #0
|
||||
bl ov25_0225524C
|
||||
_02256D58:
|
||||
add r0, r5, #0
|
||||
mov r1, #3
|
||||
bl ov27_02256E90
|
||||
cmp r0, #0
|
||||
beq _02256D7A
|
||||
ldr r0, _02256D7C ; =0x00000669
|
||||
bl ov25_02254424
|
||||
ldrb r1, [r5, #3]
|
||||
ldr r0, [r4, #4]
|
||||
bl ov27_02256EC4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
_02256D7A:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_02256D7C: .word 0x00000669
|
||||
thumb_func_end ov27_02256D00
|
||||
|
||||
thumb_func_start ov27_02256D80
|
||||
ov27_02256D80: ; 0x02256D80
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r6, r1, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_02255240
|
||||
add r7, r0, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
add r0, r6, #0
|
||||
bl ov25_02255244
|
||||
add r5, r0, #0
|
||||
ldr r0, [r7, #0x18]
|
||||
cmp r0, #5
|
||||
beq _02256DAA
|
||||
add r0, r6, #0
|
||||
bl ov27_02256A04
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02256DAA:
|
||||
add r0, r6, #0
|
||||
bl ov25_02255248
|
||||
cmp r0, #0
|
||||
beq _02256DBA
|
||||
cmp r0, #1
|
||||
beq _02256DE8
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02256DBA:
|
||||
mov r0, #0
|
||||
strh r0, [r5]
|
||||
strb r0, [r5, #2]
|
||||
add r0, r4, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0]
|
||||
mov r1, #0xf
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #5
|
||||
bl ov27_02256EC4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
ldr r0, _02256E18 ; =0x00000666
|
||||
bl ov25_02254424
|
||||
add r0, r6, #0
|
||||
bl ov25_0225524C
|
||||
_02256DE8:
|
||||
ldrh r0, [r5]
|
||||
add r0, r0, #1
|
||||
strh r0, [r5]
|
||||
ldrh r0, [r5]
|
||||
cmp r0, #2
|
||||
bls _02256E16
|
||||
mov r0, #0
|
||||
strh r0, [r5]
|
||||
ldrb r1, [r5, #2]
|
||||
mov r0, #1
|
||||
eor r0, r1
|
||||
strb r0, [r5, #2]
|
||||
ldrb r0, [r5, #2]
|
||||
add r0, r0, #5
|
||||
strb r0, [r5, #3]
|
||||
ldrb r1, [r5, #3]
|
||||
ldr r0, [r4, #4]
|
||||
bl ov27_02256EC4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
_02256E16:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_02256E18: .word 0x00000666
|
||||
thumb_func_end ov27_02256D80
|
||||
|
||||
thumb_func_start ov27_02256E1C
|
||||
ov27_02256E1C: ; 0x02256E1C
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_02255240
|
||||
add r7, r0, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_0225523C
|
||||
add r6, r0, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_02255244
|
||||
add r4, r0, #0
|
||||
ldr r0, [r7, #0x18]
|
||||
cmp r0, #6
|
||||
beq _02256E46
|
||||
add r0, r5, #0
|
||||
bl ov27_02256A04
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02256E46:
|
||||
add r0, r5, #0
|
||||
bl ov25_02255248
|
||||
cmp r0, #0
|
||||
beq _02256E56
|
||||
cmp r0, #1
|
||||
beq _02256E7C
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02256E56:
|
||||
add r0, r6, #0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0]
|
||||
mov r1, #0x10
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r6, #4]
|
||||
mov r1, #6
|
||||
bl ov27_02256EC4
|
||||
ldr r0, [r6, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
add r0, r5, #0
|
||||
bl ov25_0225524C
|
||||
mov r0, #0
|
||||
strh r0, [r4]
|
||||
_02256E7C:
|
||||
ldrh r0, [r4]
|
||||
add r0, r0, #1
|
||||
strh r0, [r4]
|
||||
ldrh r0, [r4]
|
||||
cmp r0, #0x50
|
||||
bls _02256E8E
|
||||
add r0, r5, #0
|
||||
bl ov27_02256A04
|
||||
_02256E8E:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
thumb_func_end ov27_02256E1C
|
||||
|
||||
thumb_func_start ov27_02256E90
|
||||
ov27_02256E90: ; 0x02256E90
|
||||
ldrh r2, [r0]
|
||||
add r2, r2, #1
|
||||
strh r2, [r0]
|
||||
ldrh r2, [r0]
|
||||
cmp r2, r1
|
||||
bls _02256EBA
|
||||
mov r2, #0
|
||||
strh r2, [r0]
|
||||
ldrb r1, [r0, #2]
|
||||
add r1, r1, #1
|
||||
strb r1, [r0, #2]
|
||||
ldrb r1, [r0, #2]
|
||||
cmp r1, #3
|
||||
blo _02256EAE
|
||||
strb r2, [r0, #2]
|
||||
_02256EAE:
|
||||
ldrb r2, [r0, #2]
|
||||
ldr r1, _02256EC0 ; =0x02256FB4
|
||||
ldrb r1, [r1, r2]
|
||||
strb r1, [r0, #3]
|
||||
mov r0, #1
|
||||
bx lr
|
||||
_02256EBA:
|
||||
mov r0, #0
|
||||
bx lr
|
||||
nop
|
||||
_02256EC0: .word 0x02256FB4
|
||||
thumb_func_end ov27_02256E90
|
||||
|
||||
thumb_func_start ov27_02256EC4
|
||||
ov27_02256EC4: ; 0x02256EC4
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r4, r1, #0
|
||||
mov r1, #6
|
||||
bl sub_02019FE4
|
||||
ldr r1, _02256F20 ; =0x00000252
|
||||
mov r7, #1
|
||||
add r1, r0, r1
|
||||
lsl r0, r4, #2
|
||||
add r0, r4, r0
|
||||
add r0, r0, #2
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
str r0, [sp]
|
||||
mov r0, #0
|
||||
mov ip, r0
|
||||
lsl r7, r7, #0xa
|
||||
mov r6, #9
|
||||
_02256EE8:
|
||||
ldr r3, [sp]
|
||||
mov r2, #0
|
||||
add r4, r1, #0
|
||||
_02256EEE:
|
||||
sub r5, r6, r2
|
||||
add r0, r3, #0
|
||||
strh r3, [r4]
|
||||
orr r0, r7
|
||||
lsl r5, r5, #1
|
||||
add r2, r2, #1
|
||||
strh r0, [r1, r5]
|
||||
add r3, r3, #1
|
||||
add r4, r4, #2
|
||||
cmp r2, #5
|
||||
blo _02256EEE
|
||||
ldr r0, [sp]
|
||||
add r1, #0x40
|
||||
add r0, #0x25
|
||||
str r0, [sp]
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
str r0, [sp]
|
||||
mov r0, ip
|
||||
add r0, r0, #1
|
||||
mov ip, r0
|
||||
cmp r0, #0xb
|
||||
blo _02256EE8
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02256F20: .word 0x00000252
|
||||
thumb_func_end ov27_02256EC4
|
||||
|
||||
thumb_func_start ov27_02256F24
|
||||
ov27_02256F24: ; 0x02256F24
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_02255248
|
||||
cmp r0, #0
|
||||
beq _02256F40
|
||||
cmp r0, #1
|
||||
beq _02256F4C
|
||||
pop {r3, r4, r5, pc}
|
||||
_02256F40:
|
||||
add r0, r4, #0
|
||||
bl ov27_02256F7C
|
||||
add r0, r5, #0
|
||||
bl ov25_0225524C
|
||||
_02256F4C:
|
||||
add r0, r4, #0
|
||||
add r0, #0x34
|
||||
bl ov25_022559B0
|
||||
add r0, r4, #0
|
||||
add r0, #0x48
|
||||
bl ov25_022559B0
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019044
|
||||
add r0, r4, #0
|
||||
add r0, #0x84
|
||||
ldr r0, [r0, #0]
|
||||
bl sub_0200DA58
|
||||
mov r0, #0
|
||||
add r4, #0x84
|
||||
str r0, [r4, #0]
|
||||
add r0, r5, #0
|
||||
bl ov27_02256A04
|
||||
pop {r3, r4, r5, pc}
|
||||
thumb_func_end ov27_02256F24
|
||||
|
||||
thumb_func_start ov27_02256F7C
|
||||
ov27_02256F7C: ; 0x02256F7C
|
||||
push {r4, r5, r6, lr}
|
||||
add r6, r0, #0
|
||||
mov r4, #0
|
||||
add r5, r6, #0
|
||||
_02256F84:
|
||||
ldr r0, [r6, #0x5c]
|
||||
ldr r1, [r5, #0x60]
|
||||
bl ov25_022558B0
|
||||
add r4, r4, #1
|
||||
add r5, r5, #4
|
||||
cmp r4, #9
|
||||
blo _02256F84
|
||||
pop {r4, r5, r6, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov27_02256F7C
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov27_02256FB4
|
||||
Unk_ov27_02256FB4: ; 0x02256FB4
|
||||
.incbin "incbin/overlay27_rodata.bin", 0x1C, 0x20 - 0x1C
|
||||
|
||||
.global Unk_ov27_02256FB8
|
||||
Unk_ov27_02256FB8: ; 0x02256FB8
|
||||
.incbin "incbin/overlay27_rodata.bin", 0x20, 0x3C - 0x20
|
||||
|
||||
.global Unk_ov27_02256FD4
|
||||
Unk_ov27_02256FD4: ; 0x02256FD4
|
||||
.incbin "incbin/overlay27_rodata.bin", 0x3C, 0x58 - 0x3C
|
||||
|
||||
.global Unk_ov27_02256FF0
|
||||
Unk_ov27_02256FF0: ; 0x02256FF0
|
||||
.incbin "incbin/overlay27_rodata.bin", 0x58, 0x88 - 0x58
|
||||
|
||||
.global Unk_ov27_02257020
|
||||
Unk_ov27_02257020: ; 0x02257020
|
||||
.incbin "incbin/overlay27_rodata.bin", 0x88, 0x90
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
.public sub_0200D9E8
|
||||
.public sub_0200DA58
|
||||
.public sub_02018144
|
||||
.public sub_020181C4
|
||||
.public memset
|
||||
.public _s32_div_f
|
||||
.public ov25_02254238
|
||||
.public ov25_0225424C
|
||||
.public ov25_02254260
|
||||
.public ov25_0225446C
|
||||
.public ov25_0225450C
|
||||
.public ov25_02254518
|
||||
.public ov25_02255ACC
|
||||
.public ov25_02255B34
|
||||
.public ov29_022561C0
|
||||
.public ov29_022561D4
|
||||
.public ov29_0225621C
|
||||
.public ov29_02256288
|
||||
.public ov29_022562AC
|
||||
.public ov29_022562F4
|
||||
.public ov29_02256324
|
||||
.public ov29_0225632C
|
||||
.public ov29_02256404
|
||||
.public ov29_02256460
|
||||
.public ov29_022564AC
|
||||
.public ov29_022564F4
|
||||
.public ov29_022566C8
|
||||
.public ov29_02256770
|
||||
.public ov29_022567B4
|
||||
.public ov29_022567D8
|
||||
.public ov29_022567E4
|
||||
@@ -1,736 +0,0 @@
|
||||
.include "macros/function.inc"
|
||||
.include "overlay029/ov29_022561C0.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ov29_022561C0
|
||||
ov29_022561C0: ; 0x022561C0
|
||||
ldr r3, _022561C8 ; =ov25_02254238
|
||||
ldr r0, _022561CC ; =ov29_022561D4
|
||||
ldr r1, _022561D0 ; =ov29_02256324
|
||||
bx r3
|
||||
; .align 2, 0
|
||||
_022561C8: .word ov25_02254238
|
||||
_022561CC: .word ov29_022561D4
|
||||
_022561D0: .word ov29_02256324
|
||||
thumb_func_end ov29_022561C0
|
||||
|
||||
thumb_func_start ov29_022561D4
|
||||
ov29_022561D4: ; 0x022561D4
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r6, r1, #0
|
||||
mov r1, #0x17
|
||||
add r5, r0, #0
|
||||
mov r0, #8
|
||||
lsl r1, r1, #8
|
||||
add r7, r2, #0
|
||||
str r3, [sp]
|
||||
bl sub_02018144
|
||||
add r4, r0, #0
|
||||
beq _02256214
|
||||
ldr r3, [sp]
|
||||
add r1, r6, #0
|
||||
add r2, r7, #0
|
||||
bl ov29_0225621C
|
||||
cmp r0, #0
|
||||
beq _0225620E
|
||||
ldr r0, _02256218 ; =ov29_022562AC
|
||||
add r1, r4, #0
|
||||
mov r2, #1
|
||||
bl sub_0200D9E8
|
||||
cmp r0, #0
|
||||
beq _0225620E
|
||||
str r4, [r5, #0]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_0225620E:
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
_02256214:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_02256218: .word ov29_022562AC
|
||||
thumb_func_end ov29_022561D4
|
||||
|
||||
thumb_func_start ov29_0225621C
|
||||
ov29_0225621C: ; 0x0225621C
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r7, r2, #0
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
ldr r2, _02256274 ; =0x000016DA
|
||||
add r0, #0x14
|
||||
mov r1, #0
|
||||
add r6, r3, #0
|
||||
bl memset
|
||||
ldr r0, _02256278 ; =0x000016F0
|
||||
mov r1, #1
|
||||
str r6, [r5, r0]
|
||||
str r1, [r5, #8]
|
||||
add r0, r0, #4
|
||||
add r1, r5, #0
|
||||
add r0, r5, r0
|
||||
add r1, #8
|
||||
add r2, r7, #0
|
||||
bl ov29_022566C8
|
||||
cmp r0, #0
|
||||
beq _02256270
|
||||
mov r0, #0
|
||||
strb r0, [r5]
|
||||
strb r0, [r5, #1]
|
||||
strb r0, [r5, #2]
|
||||
strb r0, [r5, #3]
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
ldr r0, _0225627C ; =0x02256B3C
|
||||
ldr r2, _02256280 ; =ov29_022562F4
|
||||
mov r1, #2
|
||||
add r3, r5, #0
|
||||
bl ov25_02255ACC
|
||||
ldr r1, _02256284 ; =0x000016FC
|
||||
str r0, [r5, r1]
|
||||
sub r0, r1, #4
|
||||
str r4, [r5, r0]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02256270:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_02256274: .word 0x000016DA
|
||||
_02256278: .word 0x000016F0
|
||||
_0225627C: .word 0x02256B3C
|
||||
_02256280: .word ov29_022562F4
|
||||
_02256284: .word 0x000016FC
|
||||
thumb_func_end ov29_0225621C
|
||||
|
||||
thumb_func_start ov29_02256288
|
||||
ov29_02256288: ; 0x02256288
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldr r0, _022562A4 ; =0x000016FC
|
||||
ldr r0, [r4, r0]
|
||||
bl ov25_02255B34
|
||||
ldr r0, _022562A8 ; =0x000016F4
|
||||
ldr r0, [r4, r0]
|
||||
bl ov29_02256770
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
_022562A4: .word 0x000016FC
|
||||
_022562A8: .word 0x000016F4
|
||||
thumb_func_end ov29_02256288
|
||||
|
||||
thumb_func_start ov29_022562AC
|
||||
ov29_022562AC: ; 0x022562AC
|
||||
push {r3, r4, r5, lr}
|
||||
add r4, r1, #0
|
||||
add r5, r0, #0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #3
|
||||
bhs _022562E8
|
||||
ldr r1, _022562EC ; =0x000016F8
|
||||
ldr r0, [r4, r1]
|
||||
add r1, r1, #4
|
||||
ldr r1, [r4, r1]
|
||||
bl ov25_02254518
|
||||
ldrb r1, [r4]
|
||||
add r0, r4, #0
|
||||
lsl r2, r1, #2
|
||||
ldr r1, _022562F0 ; =0x02256B44
|
||||
ldr r1, [r1, r2]
|
||||
blx r1
|
||||
cmp r0, #0
|
||||
beq _022562E8
|
||||
add r0, r4, #0
|
||||
bl ov29_02256288
|
||||
add r0, r5, #0
|
||||
bl sub_0200DA58
|
||||
ldr r0, _022562EC ; =0x000016F8
|
||||
ldr r0, [r4, r0]
|
||||
bl ov25_02254260
|
||||
_022562E8:
|
||||
pop {r3, r4, r5, pc}
|
||||
nop
|
||||
_022562EC: .word 0x000016F8
|
||||
_022562F0: .word 0x02256B44
|
||||
thumb_func_end ov29_022562AC
|
||||
|
||||
thumb_func_start ov29_022562F4
|
||||
ov29_022562F4: ; 0x022562F4
|
||||
push {r3, lr}
|
||||
cmp r2, #1
|
||||
bne _0225631C
|
||||
ldr r1, [r3, #8]
|
||||
cmp r1, #1
|
||||
bne _02256304
|
||||
cmp r0, #0
|
||||
beq _0225630C
|
||||
_02256304:
|
||||
cmp r1, #0
|
||||
bne _0225631C
|
||||
cmp r0, #1
|
||||
bne _0225631C
|
||||
_0225630C:
|
||||
ldr r0, [r3, #8]
|
||||
mov r1, #1
|
||||
eor r0, r1
|
||||
str r0, [r3, #8]
|
||||
ldr r0, _02256320 ; =0x000016F4
|
||||
ldr r0, [r3, r0]
|
||||
bl ov29_022567B4
|
||||
_0225631C:
|
||||
pop {r3, pc}
|
||||
nop
|
||||
_02256320: .word 0x000016F4
|
||||
thumb_func_end ov29_022562F4
|
||||
|
||||
thumb_func_start ov29_02256324
|
||||
ov29_02256324: ; 0x02256324
|
||||
mov r1, #1
|
||||
strb r1, [r0, #2]
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov29_02256324
|
||||
|
||||
thumb_func_start ov29_0225632C
|
||||
ov29_0225632C: ; 0x0225632C
|
||||
ldrb r2, [r0, #2]
|
||||
cmp r2, #0
|
||||
bne _02256334
|
||||
b _02256336
|
||||
_02256334:
|
||||
mov r1, #2
|
||||
_02256336:
|
||||
strb r1, [r0]
|
||||
mov r1, #0
|
||||
strb r1, [r0, #1]
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov29_0225632C
|
||||
|
||||
thumb_func_start ov29_02256340
|
||||
ov29_02256340: ; 0x02256340
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _02256350
|
||||
cmp r0, #1
|
||||
beq _02256362
|
||||
b _02256380
|
||||
_02256350:
|
||||
ldr r0, _02256384 ; =0x000016F4
|
||||
mov r1, #0
|
||||
ldr r0, [r4, r0]
|
||||
bl ov29_022567B4
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _02256380
|
||||
_02256362:
|
||||
ldr r0, _02256384 ; =0x000016F4
|
||||
mov r1, #0
|
||||
ldr r0, [r4, r0]
|
||||
bl ov29_022567D8
|
||||
cmp r0, #0
|
||||
beq _02256380
|
||||
ldr r0, _02256388 ; =0x000016F8
|
||||
ldr r0, [r4, r0]
|
||||
bl ov25_0225424C
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl ov29_0225632C
|
||||
_02256380:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
_02256384: .word 0x000016F4
|
||||
_02256388: .word 0x000016F8
|
||||
thumb_func_end ov29_02256340
|
||||
|
||||
thumb_func_start ov29_0225638C
|
||||
ov29_0225638C: ; 0x0225638C
|
||||
push {r3, r4, r5, r6, lr}
|
||||
sub sp, #4
|
||||
add r5, r0, #0
|
||||
ldrb r1, [r5, #2]
|
||||
cmp r1, #0
|
||||
beq _0225639E
|
||||
mov r1, #2
|
||||
bl ov29_0225632C
|
||||
_0225639E:
|
||||
ldrb r0, [r5, #1]
|
||||
cmp r0, #0
|
||||
bne _022563F4
|
||||
ldr r0, _022563FC ; =0x000016F8
|
||||
ldr r0, [r5, r0]
|
||||
bl ov25_0225450C
|
||||
cmp r0, #0
|
||||
bne _022563F4
|
||||
ldrb r0, [r5, #3]
|
||||
cmp r0, #0
|
||||
beq _022563DC
|
||||
add r0, r5, #0
|
||||
ldr r6, [r5, #0xc]
|
||||
ldr r4, [r5, #0x10]
|
||||
bl ov29_02256460
|
||||
cmp r0, #0
|
||||
beq _022563D6
|
||||
ldr r0, [r5, #0x10]
|
||||
add r1, r6, #0
|
||||
str r0, [sp]
|
||||
ldr r3, [r5, #0xc]
|
||||
add r0, r5, #0
|
||||
add r2, r4, #0
|
||||
bl ov29_022564F4
|
||||
b _022563F4
|
||||
_022563D6:
|
||||
mov r0, #0
|
||||
strb r0, [r5, #3]
|
||||
b _022563F4
|
||||
_022563DC:
|
||||
add r0, r5, #0
|
||||
bl ov29_02256404
|
||||
cmp r0, #0
|
||||
beq _022563F4
|
||||
ldr r0, _02256400 ; =0x000016F4
|
||||
mov r1, #3
|
||||
ldr r0, [r5, r0]
|
||||
bl ov29_022567B4
|
||||
mov r0, #1
|
||||
strb r0, [r5, #3]
|
||||
_022563F4:
|
||||
mov r0, #0
|
||||
add sp, #4
|
||||
pop {r3, r4, r5, r6, pc}
|
||||
nop
|
||||
_022563FC: .word 0x000016F8
|
||||
_02256400: .word 0x000016F4
|
||||
thumb_func_end ov29_0225638C
|
||||
|
||||
thumb_func_start ov29_02256404
|
||||
ov29_02256404: ; 0x02256404
|
||||
push {r4, lr}
|
||||
sub sp, #8
|
||||
add r4, r0, #0
|
||||
add r0, sp, #4
|
||||
add r1, sp, #0
|
||||
bl ov25_0225446C
|
||||
cmp r0, #0
|
||||
beq _02256458
|
||||
ldr r1, [sp, #4]
|
||||
ldr r2, [sp]
|
||||
sub r1, #0x10
|
||||
sub r2, #0x10
|
||||
cmp r1, #0x9c
|
||||
bhs _02256426
|
||||
mov r0, #1
|
||||
b _02256428
|
||||
_02256426:
|
||||
mov r0, #0
|
||||
_02256428:
|
||||
cmp r2, #0x96
|
||||
bhs _02256430
|
||||
mov r3, #1
|
||||
b _02256432
|
||||
_02256430:
|
||||
mov r3, #0
|
||||
_02256432:
|
||||
tst r0, r3
|
||||
beq _02256458
|
||||
lsr r3, r1, #1
|
||||
lsr r2, r2, #1
|
||||
mov r0, #0x4b
|
||||
mul r0, r3
|
||||
add r0, r4, r0
|
||||
str r3, [sp, #4]
|
||||
str r2, [sp]
|
||||
ldr r1, [r4, #8]
|
||||
add r0, r0, r2
|
||||
strb r1, [r0, #0x14]
|
||||
ldr r0, [sp, #4]
|
||||
str r0, [r4, #0xc]
|
||||
ldr r0, [sp]
|
||||
add sp, #8
|
||||
str r0, [r4, #0x10]
|
||||
mov r0, #1
|
||||
pop {r4, pc}
|
||||
_02256458:
|
||||
mov r0, #0
|
||||
add sp, #8
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov29_02256404
|
||||
|
||||
thumb_func_start ov29_02256460
|
||||
ov29_02256460: ; 0x02256460
|
||||
push {r4, lr}
|
||||
sub sp, #8
|
||||
add r4, r0, #0
|
||||
add r0, sp, #4
|
||||
add r1, sp, #0
|
||||
bl ov25_0225446C
|
||||
cmp r0, #0
|
||||
beq _022564A6
|
||||
ldr r1, [sp, #4]
|
||||
ldr r2, [sp]
|
||||
sub r1, #0x10
|
||||
sub r2, #0x10
|
||||
cmp r1, #0x9c
|
||||
bhs _02256482
|
||||
mov r0, #1
|
||||
b _02256484
|
||||
_02256482:
|
||||
mov r0, #0
|
||||
_02256484:
|
||||
cmp r2, #0x96
|
||||
bhs _0225648C
|
||||
mov r3, #1
|
||||
b _0225648E
|
||||
_0225648C:
|
||||
mov r3, #0
|
||||
_0225648E:
|
||||
tst r0, r3
|
||||
beq _022564A6
|
||||
lsr r1, r1, #1
|
||||
lsr r0, r2, #1
|
||||
str r1, [sp, #4]
|
||||
str r0, [sp]
|
||||
str r1, [r4, #0xc]
|
||||
ldr r0, [sp]
|
||||
add sp, #8
|
||||
str r0, [r4, #0x10]
|
||||
mov r0, #1
|
||||
pop {r4, pc}
|
||||
_022564A6:
|
||||
mov r0, #0
|
||||
add sp, #8
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov29_02256460
|
||||
|
||||
thumb_func_start ov29_022564AC
|
||||
ov29_022564AC: ; 0x022564AC
|
||||
push {r4, r5, r6, r7}
|
||||
sub r3, r1, #2
|
||||
bpl _022564B4
|
||||
mov r3, #0
|
||||
_022564B4:
|
||||
sub r4, r2, #2
|
||||
bpl _022564BA
|
||||
mov r4, #0
|
||||
_022564BA:
|
||||
add r1, r1, #2
|
||||
cmp r1, #0x4e
|
||||
blt _022564C2
|
||||
mov r1, #0x4e
|
||||
_022564C2:
|
||||
add r2, r2, #2
|
||||
cmp r2, #0x4b
|
||||
blt _022564CA
|
||||
mov r2, #0x4b
|
||||
_022564CA:
|
||||
cmp r3, r1
|
||||
bge _022564EE
|
||||
mov r5, #0x4b
|
||||
mul r5, r3
|
||||
add r7, r0, r5
|
||||
mov r5, #0
|
||||
_022564D6:
|
||||
add r6, r4, #0
|
||||
cmp r4, r2
|
||||
bge _022564E6
|
||||
_022564DC:
|
||||
add r0, r7, r6
|
||||
add r6, r6, #1
|
||||
strb r5, [r0, #0x14]
|
||||
cmp r6, r2
|
||||
blt _022564DC
|
||||
_022564E6:
|
||||
add r3, r3, #1
|
||||
add r7, #0x4b
|
||||
cmp r3, r1
|
||||
blt _022564D6
|
||||
_022564EE:
|
||||
pop {r4, r5, r6, r7}
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov29_022564AC
|
||||
|
||||
thumb_func_start ov29_022564F4
|
||||
ov29_022564F4: ; 0x022564F4
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x1c
|
||||
add r5, r0, #0
|
||||
ldr r0, [sp, #0x30]
|
||||
add r4, r2, #0
|
||||
add r6, r1, #0
|
||||
str r3, [sp]
|
||||
str r0, [sp, #0x30]
|
||||
cmp r4, r0
|
||||
bne _02256510
|
||||
add r0, r3, #0
|
||||
cmp r6, r0
|
||||
bne _02256510
|
||||
b _02256684
|
||||
_02256510:
|
||||
ldr r0, [sp]
|
||||
cmp r0, r6
|
||||
bls _0225651A
|
||||
sub r1, r0, r6
|
||||
b _0225651C
|
||||
_0225651A:
|
||||
sub r1, r6, r0
|
||||
_0225651C:
|
||||
ldr r0, [sp, #0x30]
|
||||
cmp r0, r4
|
||||
bls _02256526
|
||||
sub r2, r0, r4
|
||||
b _02256528
|
||||
_02256526:
|
||||
sub r2, r4, r0
|
||||
_02256528:
|
||||
cmp r1, r2
|
||||
bls _022565C8
|
||||
ldr r0, [sp]
|
||||
cmp r0, r6
|
||||
bls _02256538
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
b _0225653E
|
||||
_02256538:
|
||||
mov r0, #0
|
||||
mvn r0, r0
|
||||
str r0, [sp, #8]
|
||||
_0225653E:
|
||||
cmp r1, #0
|
||||
beq _02256550
|
||||
ldr r0, [sp, #0x30]
|
||||
sub r0, r0, r4
|
||||
lsl r0, r0, #0xc
|
||||
bl _s32_div_f
|
||||
str r0, [sp, #0x14]
|
||||
b _02256554
|
||||
_02256550:
|
||||
mov r0, #0
|
||||
str r0, [sp, #0x14]
|
||||
_02256554:
|
||||
ldr r0, [sp, #0x14]
|
||||
lsl r1, r4, #0xc
|
||||
add r0, r1, r0
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [sp, #8]
|
||||
add r6, r6, r0
|
||||
ldr r0, [sp]
|
||||
cmp r6, r0
|
||||
beq _02256656
|
||||
mov r1, #0x4b
|
||||
add r0, r6, #0
|
||||
mul r0, r1
|
||||
add r7, r5, r0
|
||||
ldr r0, [sp, #8]
|
||||
mul r1, r0
|
||||
str r1, [sp, #0x10]
|
||||
_02256574:
|
||||
ldr r0, [sp, #0x18]
|
||||
asr r4, r0, #0xc
|
||||
cmp r6, #0x4e
|
||||
bhs _022565B0
|
||||
cmp r4, #0x4b
|
||||
bhs _022565B0
|
||||
ldr r1, [r5, #8]
|
||||
cmp r1, #0
|
||||
beq _0225658E
|
||||
add r0, r7, r4
|
||||
ldrb r0, [r0, #0x14]
|
||||
cmp r1, r0
|
||||
beq _022565B0
|
||||
_0225658E:
|
||||
cmp r1, #0
|
||||
bne _0225659C
|
||||
add r0, r5, #0
|
||||
add r1, r6, #0
|
||||
add r2, r4, #0
|
||||
bl ov29_022564AC
|
||||
_0225659C:
|
||||
ldr r1, [r5, #8]
|
||||
add r0, r7, r4
|
||||
strb r1, [r0, #0x14]
|
||||
str r6, [r5, #0xc]
|
||||
ldr r0, _02256688 ; =0x000016F4
|
||||
str r4, [r5, #0x10]
|
||||
ldr r0, [r5, r0]
|
||||
mov r1, #3
|
||||
bl ov29_022567B4
|
||||
_022565B0:
|
||||
ldr r0, [sp, #0x10]
|
||||
ldr r1, [sp, #0x18]
|
||||
add r7, r7, r0
|
||||
ldr r0, [sp, #8]
|
||||
add r6, r6, r0
|
||||
ldr r0, [sp, #0x14]
|
||||
add r0, r1, r0
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [sp]
|
||||
cmp r6, r0
|
||||
bne _02256574
|
||||
b _02256656
|
||||
_022565C8:
|
||||
ldr r0, [sp, #0x30]
|
||||
cmp r0, r4
|
||||
bls _022565D4
|
||||
mov r0, #1
|
||||
str r0, [sp, #4]
|
||||
b _022565DA
|
||||
_022565D4:
|
||||
mov r0, #0
|
||||
mvn r0, r0
|
||||
str r0, [sp, #4]
|
||||
_022565DA:
|
||||
cmp r2, #0
|
||||
beq _022565EE
|
||||
ldr r0, [sp]
|
||||
add r1, r2, #0
|
||||
sub r0, r0, r6
|
||||
lsl r0, r0, #0xc
|
||||
bl _s32_div_f
|
||||
str r0, [sp, #0xc]
|
||||
b _022565F2
|
||||
_022565EE:
|
||||
mov r0, #0
|
||||
str r0, [sp, #0xc]
|
||||
_022565F2:
|
||||
ldr r0, [sp, #0xc]
|
||||
lsl r1, r6, #0xc
|
||||
add r7, r1, r0
|
||||
ldr r0, [sp, #4]
|
||||
add r4, r4, r0
|
||||
ldr r0, [sp, #0x30]
|
||||
cmp r4, r0
|
||||
beq _02256656
|
||||
_02256602:
|
||||
asr r6, r7, #0xc
|
||||
cmp r4, #0x4b
|
||||
bhs _02256648
|
||||
cmp r6, #0x4e
|
||||
bhs _02256648
|
||||
ldr r0, [r5, #8]
|
||||
cmp r0, #0
|
||||
beq _02256620
|
||||
mov r1, #0x4b
|
||||
mul r1, r6
|
||||
add r1, r5, r1
|
||||
add r1, r4, r1
|
||||
ldrb r1, [r1, #0x14]
|
||||
cmp r0, r1
|
||||
beq _02256648
|
||||
_02256620:
|
||||
cmp r0, #0
|
||||
bne _0225662E
|
||||
add r0, r5, #0
|
||||
add r1, r6, #0
|
||||
add r2, r4, #0
|
||||
bl ov29_022564AC
|
||||
_0225662E:
|
||||
mov r1, #0x4b
|
||||
mul r1, r6
|
||||
add r1, r5, r1
|
||||
ldr r0, [r5, #8]
|
||||
add r1, r4, r1
|
||||
strb r0, [r1, #0x14]
|
||||
str r6, [r5, #0xc]
|
||||
ldr r0, _02256688 ; =0x000016F4
|
||||
str r4, [r5, #0x10]
|
||||
ldr r0, [r5, r0]
|
||||
mov r1, #3
|
||||
bl ov29_022567B4
|
||||
_02256648:
|
||||
ldr r0, [sp, #4]
|
||||
add r4, r4, r0
|
||||
ldr r0, [sp, #0xc]
|
||||
add r7, r7, r0
|
||||
ldr r0, [sp, #0x30]
|
||||
cmp r4, r0
|
||||
bne _02256602
|
||||
_02256656:
|
||||
ldr r0, [sp, #0x30]
|
||||
cmp r0, #0x4b
|
||||
bhs _02256684
|
||||
ldr r0, [sp]
|
||||
cmp r0, #0x4e
|
||||
bhs _02256684
|
||||
ldr r0, [r5, #8]
|
||||
cmp r0, #0
|
||||
bne _02256672
|
||||
ldr r1, [sp]
|
||||
ldr r2, [sp, #0x30]
|
||||
add r0, r5, #0
|
||||
bl ov29_022564AC
|
||||
_02256672:
|
||||
ldr r0, [sp]
|
||||
mov r1, #3
|
||||
str r0, [r5, #0xc]
|
||||
ldr r0, [sp, #0x30]
|
||||
str r0, [r5, #0x10]
|
||||
ldr r0, _02256688 ; =0x000016F4
|
||||
ldr r0, [r5, r0]
|
||||
bl ov29_022567B4
|
||||
_02256684:
|
||||
add sp, #0x1c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_02256688: .word 0x000016F4
|
||||
thumb_func_end ov29_022564F4
|
||||
|
||||
thumb_func_start ov29_0225668C
|
||||
ov29_0225668C: ; 0x0225668C
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _0225669C
|
||||
cmp r0, #1
|
||||
beq _022566AE
|
||||
b _022566BE
|
||||
_0225669C:
|
||||
ldr r0, _022566C4 ; =0x000016F4
|
||||
mov r1, #5
|
||||
ldr r0, [r4, r0]
|
||||
bl ov29_022567B4
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _022566BE
|
||||
_022566AE:
|
||||
ldr r0, _022566C4 ; =0x000016F4
|
||||
ldr r0, [r4, r0]
|
||||
bl ov29_022567E4
|
||||
cmp r0, #0
|
||||
beq _022566BE
|
||||
mov r0, #1
|
||||
pop {r4, pc}
|
||||
_022566BE:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
nop
|
||||
_022566C4: .word 0x000016F4
|
||||
thumb_func_end ov29_0225668C
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov29_02256B3C
|
||||
Unk_ov29_02256B3C: ; 0x02256B3C
|
||||
.incbin "incbin/overlay29_rodata.bin", 0x0, 0x8 - 0x0
|
||||
|
||||
.global Unk_ov29_02256B44
|
||||
Unk_ov29_02256B44: ; 0x02256B44
|
||||
.incbin "incbin/overlay29_rodata.bin", 0x8, 0xC
|
||||
|
||||
.section .sinit, 4
|
||||
.word ov29_022561C0
|
||||
@@ -1,41 +0,0 @@
|
||||
.public sub_02006E3C
|
||||
.public sub_02006E60
|
||||
.public sub_02006EC0
|
||||
.public sub_02018144
|
||||
.public sub_020181C4
|
||||
.public sub_0201833C
|
||||
.public sub_020183C4
|
||||
.public sub_02019044
|
||||
.public sub_02019448
|
||||
.public sub_0201A778
|
||||
.public sub_0201A8D4
|
||||
.public sub_0201A8FC
|
||||
.public sub_0201A954
|
||||
.public sub_0201ACCC
|
||||
.public sub_0201ADA4
|
||||
.public sub_0201AE78
|
||||
.public GF_AssertFail
|
||||
.public sub_02099DA8
|
||||
.public sub_02099DD0
|
||||
.public GXS_LoadBG3Char
|
||||
.public DC_FlushRange
|
||||
.public ov25_02254424
|
||||
.public ov25_02254664
|
||||
.public ov25_02254674
|
||||
.public ov25_022546B8
|
||||
.public ov25_02255090
|
||||
.public ov25_02255130
|
||||
.public ov25_02255154
|
||||
.public ov25_0225517C
|
||||
.public ov25_02255224
|
||||
.public ov25_0225523C
|
||||
.public ov25_02255810
|
||||
.public ov25_022558B0
|
||||
.public ov25_022558C4
|
||||
.public ov25_02255958
|
||||
.public ov25_022559B0
|
||||
.public ov29_02256728
|
||||
.public ov29_022567F0
|
||||
.public ov29_02256968
|
||||
.public ov29_02256ABC
|
||||
.public ov29_02256B18
|
||||
@@ -1,605 +0,0 @@
|
||||
.include "macros/function.inc"
|
||||
.include "overlay029/ov29_022566C8.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ov29_022566C8
|
||||
ov29_022566C8: ; 0x022566C8
|
||||
push {r4, r5, r6, lr}
|
||||
add r5, r0, #0
|
||||
add r6, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x74
|
||||
bl sub_02018144
|
||||
add r4, r0, #0
|
||||
beq _02256722
|
||||
mov r0, #7
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _022566E8
|
||||
bl GF_AssertFail
|
||||
_022566E8:
|
||||
add r0, r4, #0
|
||||
add r0, #8
|
||||
mov r1, #0x10
|
||||
bl ov25_02255090
|
||||
mov r0, #7
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _02256700
|
||||
bl GF_AssertFail
|
||||
_02256700:
|
||||
str r6, [r4, #0]
|
||||
bl ov25_02254674
|
||||
str r0, [r4, #4]
|
||||
bl ov25_02254664
|
||||
str r0, [r4, #0x50]
|
||||
mov r0, #7
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _0225671C
|
||||
bl GF_AssertFail
|
||||
_0225671C:
|
||||
str r4, [r5, #0]
|
||||
mov r0, #1
|
||||
pop {r4, r5, r6, pc}
|
||||
_02256722:
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov29_022566C8
|
||||
|
||||
thumb_func_start ov29_02256728
|
||||
ov29_02256728: ; 0x02256728
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
mov r0, #8
|
||||
mov r1, #1
|
||||
bl sub_0201A778
|
||||
str r0, [r4, #0x70]
|
||||
add r1, r0, #0
|
||||
beq _02256764
|
||||
ldr r0, [r4, #4]
|
||||
ldr r2, _02256768 ; =0x02256B50
|
||||
bl sub_0201A8D4
|
||||
mov r2, #0xbe
|
||||
ldr r1, [r4, #0]
|
||||
ldr r0, _0225676C ; =0x000016E8
|
||||
lsl r2, r2, #6
|
||||
ldr r0, [r1, r0]
|
||||
ldr r1, [r4, #0x70]
|
||||
ldr r1, [r1, #0xc]
|
||||
bl sub_02099DD0
|
||||
cmp r0, #0
|
||||
bne _02256760
|
||||
ldr r0, [r4, #0x70]
|
||||
mov r1, #4
|
||||
bl sub_0201ADA4
|
||||
_02256760:
|
||||
mov r0, #1
|
||||
pop {r4, pc}
|
||||
_02256764:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
_02256768: .word 0x02256B50
|
||||
_0225676C: .word 0x000016E8
|
||||
thumb_func_end ov29_02256728
|
||||
|
||||
thumb_func_start ov29_02256770
|
||||
ov29_02256770: ; 0x02256770
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
beq _022567AC
|
||||
mov r0, #7
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _02256784
|
||||
bl GF_AssertFail
|
||||
_02256784:
|
||||
ldr r2, [r4, #0x70]
|
||||
cmp r2, #0
|
||||
beq _022567A6
|
||||
ldr r1, [r4, #0]
|
||||
ldr r0, _022567B0 ; =0x000016E8
|
||||
ldr r0, [r1, r0]
|
||||
ldr r1, [r2, #0xc]
|
||||
mov r2, #0xbe
|
||||
lsl r2, r2, #6
|
||||
bl sub_02099DA8
|
||||
ldr r0, [r4, #0x70]
|
||||
bl sub_0201A8FC
|
||||
ldr r0, [r4, #0x70]
|
||||
bl sub_020181C4
|
||||
_022567A6:
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
_022567AC:
|
||||
pop {r4, pc}
|
||||
nop
|
||||
_022567B0: .word 0x000016E8
|
||||
thumb_func_end ov29_02256770
|
||||
|
||||
thumb_func_start ov29_022567B4
|
||||
ov29_022567B4: ; 0x022567B4
|
||||
push {lr}
|
||||
sub sp, #0xc
|
||||
add r2, r0, #0
|
||||
add r0, #8
|
||||
str r0, [sp]
|
||||
mov r0, #2
|
||||
str r0, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
ldr r0, _022567D4 ; =0x02256BB0
|
||||
ldr r3, [r2, #0]
|
||||
bl ov25_0225517C
|
||||
add sp, #0xc
|
||||
pop {pc}
|
||||
nop
|
||||
_022567D4: .word 0x02256BB0
|
||||
thumb_func_end ov29_022567B4
|
||||
|
||||
thumb_func_start ov29_022567D8
|
||||
ov29_022567D8: ; 0x022567D8
|
||||
ldr r3, _022567E0 ; =ov25_02255130
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_022567E0: .word ov25_02255130
|
||||
thumb_func_end ov29_022567D8
|
||||
|
||||
thumb_func_start ov29_022567E4
|
||||
ov29_022567E4: ; 0x022567E4
|
||||
ldr r3, _022567EC ; =ov25_02255154
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_022567EC: .word ov25_02255154
|
||||
thumb_func_end ov29_022567E4
|
||||
|
||||
thumb_func_start ov29_022567F0
|
||||
ov29_022567F0: ; 0x022567F0
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
bl ov25_0225523C
|
||||
add r0, #8
|
||||
add r1, r4, #0
|
||||
bl ov25_02255224
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov29_022567F0
|
||||
|
||||
thumb_func_start ov29_02256804
|
||||
ov29_02256804: ; 0x02256804
|
||||
push {r4, r5, lr}
|
||||
sub sp, #0x14
|
||||
mov r0, #8
|
||||
add r4, r1, #0
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _02256818
|
||||
bl GF_AssertFail
|
||||
_02256818:
|
||||
add r0, r4, #0
|
||||
bl ov25_0225523C
|
||||
add r5, r0, #0
|
||||
ldr r0, [r5, #4]
|
||||
ldr r2, _022568F8 ; =0x02256B58
|
||||
mov r1, #6
|
||||
mov r3, #0
|
||||
bl sub_020183C4
|
||||
ldr r0, [r5, #4]
|
||||
ldr r2, _022568FC ; =0x02256B74
|
||||
mov r1, #7
|
||||
mov r3, #0
|
||||
bl sub_020183C4
|
||||
mov r0, #8
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _02256846
|
||||
bl GF_AssertFail
|
||||
_02256846:
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x1e
|
||||
mov r3, #6
|
||||
bl sub_02006E3C
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x1f
|
||||
mov r3, #6
|
||||
bl sub_02006E60
|
||||
mov r0, #0
|
||||
add r1, r0, #0
|
||||
bl ov25_022546B8
|
||||
mov r0, #8
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _02256890
|
||||
bl GF_AssertFail
|
||||
_02256890:
|
||||
add r0, r5, #0
|
||||
bl ov29_02256728
|
||||
ldr r0, [r5, #0x70]
|
||||
bl sub_0201A954
|
||||
mov r0, #8
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _022568AA
|
||||
bl GF_AssertFail
|
||||
_022568AA:
|
||||
add r0, r5, #0
|
||||
bl ov29_02256ABC
|
||||
mov r0, #8
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _022568BE
|
||||
bl GF_AssertFail
|
||||
_022568BE:
|
||||
ldr r0, [r5, #4]
|
||||
mov r1, #7
|
||||
bl sub_02019448
|
||||
ldr r1, _02256900 ; =0x04001000
|
||||
ldr r0, _02256904 ; =0xFFFFE0FF
|
||||
ldr r3, [r1, #0]
|
||||
ldr r2, [r1, #0]
|
||||
str r3, [sp, #0x10]
|
||||
and r0, r2
|
||||
lsl r2, r3, #0x13
|
||||
lsr r3, r2, #0x1b
|
||||
mov r2, #0x14
|
||||
orr r2, r3
|
||||
lsl r2, r2, #8
|
||||
orr r0, r2
|
||||
str r0, [r1, #0]
|
||||
add r0, r4, #0
|
||||
bl ov29_022567F0
|
||||
mov r0, #8
|
||||
bl sub_0201833C
|
||||
cmp r0, #0
|
||||
bne _022568F4
|
||||
bl GF_AssertFail
|
||||
_022568F4:
|
||||
add sp, #0x14
|
||||
pop {r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_022568F8: .word 0x02256B58
|
||||
_022568FC: .word 0x02256B74
|
||||
_02256900: .word 0x04001000
|
||||
_02256904: .word 0xFFFFE0FF
|
||||
thumb_func_end ov29_02256804
|
||||
|
||||
thumb_func_start ov29_02256908
|
||||
ov29_02256908: ; 0x02256908
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
ldr r0, [r4, #0]
|
||||
ldr r0, [r0, #0]
|
||||
cmp r0, #1
|
||||
ldr r0, [r4, #0x68]
|
||||
bne _0225692E
|
||||
mov r1, #0
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #0x6c]
|
||||
mov r1, #3
|
||||
bl ov25_022558C4
|
||||
b _0225693C
|
||||
_0225692E:
|
||||
mov r1, #1
|
||||
bl ov25_022558C4
|
||||
ldr r0, [r4, #0x6c]
|
||||
mov r1, #2
|
||||
bl ov25_022558C4
|
||||
_0225693C:
|
||||
ldr r0, _0225694C ; =0x00000663
|
||||
bl ov25_02254424
|
||||
add r0, r5, #0
|
||||
bl ov29_022567F0
|
||||
pop {r3, r4, r5, pc}
|
||||
nop
|
||||
_0225694C: .word 0x00000663
|
||||
thumb_func_end ov29_02256908
|
||||
|
||||
thumb_func_start ov29_02256950
|
||||
ov29_02256950: ; 0x02256950
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl ov25_0225523C
|
||||
ldr r0, [r0, #0x70]
|
||||
bl sub_0201ACCC
|
||||
add r0, r4, #0
|
||||
bl ov29_022567F0
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov29_02256950
|
||||
|
||||
thumb_func_start ov29_02256968
|
||||
ov29_02256968: ; 0x02256968
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r6, r0, #0
|
||||
asr r0, r1, #2
|
||||
lsr r0, r0, #0x1d
|
||||
add r0, r1, r0
|
||||
asr r4, r0, #3
|
||||
sub r0, r3, #1
|
||||
add r1, r1, r0
|
||||
asr r0, r1, #2
|
||||
lsr r0, r0, #0x1d
|
||||
add r0, r1, r0
|
||||
asr r1, r2, #2
|
||||
lsr r1, r1, #0x1d
|
||||
add r1, r2, r1
|
||||
asr r3, r1, #3
|
||||
ldr r1, [sp, #0x18]
|
||||
asr r0, r0, #3
|
||||
sub r1, r1, #1
|
||||
add r2, r2, r1
|
||||
asr r1, r2, #2
|
||||
lsr r1, r1, #0x1d
|
||||
add r1, r2, r1
|
||||
asr r1, r1, #3
|
||||
sub r1, r1, r3
|
||||
mov r2, #0x14
|
||||
sub r0, r0, r4
|
||||
mul r2, r3
|
||||
add r1, r1, #1
|
||||
add r4, r4, r2
|
||||
sub r2, r1, #1
|
||||
add r0, r0, #1
|
||||
str r2, [sp]
|
||||
cmp r1, #0
|
||||
beq _022569DA
|
||||
lsl r5, r4, #5
|
||||
lsl r7, r0, #5
|
||||
_022569B0:
|
||||
add r0, r6, r5
|
||||
add r1, r7, #0
|
||||
bl DC_FlushRange
|
||||
add r1, r4, #0
|
||||
add r1, #0xc
|
||||
add r0, r6, r5
|
||||
lsl r1, r1, #5
|
||||
add r2, r7, #0
|
||||
bl GXS_LoadBG3Char
|
||||
mov r0, #0xa
|
||||
lsl r0, r0, #6
|
||||
ldr r1, [sp]
|
||||
add r5, r5, r0
|
||||
add r0, r1, #0
|
||||
sub r0, r0, #1
|
||||
add r4, #0x14
|
||||
str r0, [sp]
|
||||
cmp r1, #0
|
||||
bne _022569B0
|
||||
_022569DA:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
thumb_func_end ov29_02256968
|
||||
|
||||
thumb_func_start ov29_022569DC
|
||||
ov29_022569DC: ; 0x022569DC
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #0x10
|
||||
add r0, r1, #0
|
||||
str r1, [sp, #8]
|
||||
bl ov25_0225523C
|
||||
add r7, r0, #0
|
||||
ldr r0, [r7, #0]
|
||||
ldr r1, [r0, #0]
|
||||
cmp r1, #0
|
||||
bne _02256A44
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, [r0, #8]
|
||||
lsl r1, r1, #1
|
||||
mov r5, #8
|
||||
lsl r0, r0, #1
|
||||
sub r6, r1, #4
|
||||
sub r4, r0, #4
|
||||
str r5, [sp, #0xc]
|
||||
cmp r6, #0
|
||||
bge _02256A0C
|
||||
add r0, r5, r6
|
||||
str r0, [sp, #0xc]
|
||||
mov r6, #0
|
||||
_02256A0C:
|
||||
cmp r4, #0
|
||||
bge _02256A14
|
||||
add r5, r5, r4
|
||||
mov r4, #0
|
||||
_02256A14:
|
||||
ldr r0, [sp, #0xc]
|
||||
lsl r2, r6, #0x10
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
str r0, [sp]
|
||||
lsl r0, r5, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
str r0, [sp, #4]
|
||||
lsl r3, r4, #0x10
|
||||
ldr r0, [r7, #0x70]
|
||||
mov r1, #4
|
||||
lsr r2, r2, #0x10
|
||||
lsr r3, r3, #0x10
|
||||
bl sub_0201AE78
|
||||
str r5, [sp]
|
||||
ldr r0, [r7, #0x70]
|
||||
ldr r3, [sp, #0xc]
|
||||
ldr r0, [r0, #0xc]
|
||||
add r1, r6, #0
|
||||
add r2, r4, #0
|
||||
bl ov29_02256968
|
||||
b _02256A72
|
||||
_02256A44:
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, [r0, #8]
|
||||
lsl r5, r1, #1
|
||||
lsl r4, r0, #1
|
||||
mov r0, #2
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
lsl r2, r5, #0x10
|
||||
lsl r3, r4, #0x10
|
||||
ldr r0, [r7, #0x70]
|
||||
mov r1, #1
|
||||
lsr r2, r2, #0x10
|
||||
lsr r3, r3, #0x10
|
||||
bl sub_0201AE78
|
||||
mov r3, #2
|
||||
str r3, [sp]
|
||||
ldr r0, [r7, #0x70]
|
||||
add r1, r5, #0
|
||||
ldr r0, [r0, #0xc]
|
||||
add r2, r4, #0
|
||||
bl ov29_02256968
|
||||
_02256A72:
|
||||
ldr r0, [sp, #8]
|
||||
bl ov29_022567F0
|
||||
add sp, #0x10
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
thumb_func_end ov29_022569DC
|
||||
|
||||
thumb_func_start ov29_02256A7C
|
||||
ov29_02256A7C: ; 0x02256A7C
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl ov25_0225523C
|
||||
ldr r0, [r0, #0x70]
|
||||
bl sub_0201ACCC
|
||||
add r0, r4, #0
|
||||
bl ov29_022567F0
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov29_02256A7C
|
||||
|
||||
thumb_func_start ov29_02256A94
|
||||
ov29_02256A94: ; 0x02256A94
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
bl ov29_02256B18
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019044
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #7
|
||||
bl sub_02019044
|
||||
add r0, r5, #0
|
||||
bl ov29_022567F0
|
||||
pop {r3, r4, r5, pc}
|
||||
thumb_func_end ov29_02256A94
|
||||
|
||||
thumb_func_start ov29_02256ABC
|
||||
ov29_02256ABC: ; 0x02256ABC
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #0x10
|
||||
mov r3, #0
|
||||
str r3, [sp]
|
||||
mov r2, #1
|
||||
add r7, r0, #0
|
||||
str r2, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x20
|
||||
bl sub_02006EC0
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
add r0, r7, #0
|
||||
add r0, #0x54
|
||||
mov r1, #0xc
|
||||
mov r2, #0x21
|
||||
mov r3, #0x22
|
||||
bl ov25_02255958
|
||||
cmp r0, #0
|
||||
beq _02256B10
|
||||
add r0, r7, #0
|
||||
str r0, [sp, #0xc]
|
||||
add r0, #0x54
|
||||
ldr r4, _02256B14 ; =0x02256B90
|
||||
mov r6, #0
|
||||
add r5, r7, #0
|
||||
str r0, [sp, #0xc]
|
||||
_02256AFA:
|
||||
ldr r0, [r7, #0x50]
|
||||
ldr r2, [sp, #0xc]
|
||||
add r1, r4, #0
|
||||
bl ov25_02255810
|
||||
str r0, [r5, #0x68]
|
||||
add r6, r6, #1
|
||||
add r4, #0x10
|
||||
add r5, r5, #4
|
||||
cmp r6, #2
|
||||
blt _02256AFA
|
||||
_02256B10:
|
||||
add sp, #0x10
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_02256B14: .word 0x02256B90
|
||||
thumb_func_end ov29_02256ABC
|
||||
|
||||
thumb_func_start ov29_02256B18
|
||||
ov29_02256B18: ; 0x02256B18
|
||||
push {r4, r5, r6, lr}
|
||||
add r6, r0, #0
|
||||
mov r4, #0
|
||||
add r5, r6, #0
|
||||
_02256B20:
|
||||
ldr r0, [r6, #0x50]
|
||||
ldr r1, [r5, #0x68]
|
||||
bl ov25_022558B0
|
||||
add r4, r4, #1
|
||||
add r5, r5, #4
|
||||
cmp r4, #2
|
||||
blo _02256B20
|
||||
add r6, #0x54
|
||||
add r0, r6, #0
|
||||
bl ov25_022559B0
|
||||
pop {r4, r5, r6, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov29_02256B18
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov29_02256B50
|
||||
Unk_ov29_02256B50: ; 0x02256B50
|
||||
.incbin "incbin/overlay29_rodata.bin", 0x14, 0x1C - 0x14
|
||||
|
||||
.global Unk_ov29_02256B58
|
||||
Unk_ov29_02256B58: ; 0x02256B58
|
||||
.incbin "incbin/overlay29_rodata.bin", 0x1C, 0x38 - 0x1C
|
||||
|
||||
.global Unk_ov29_02256B74
|
||||
Unk_ov29_02256B74: ; 0x02256B74
|
||||
.incbin "incbin/overlay29_rodata.bin", 0x38, 0x54 - 0x38
|
||||
|
||||
.global Unk_ov29_02256B90
|
||||
Unk_ov29_02256B90: ; 0x02256B90
|
||||
.incbin "incbin/overlay29_rodata.bin", 0x54, 0x74 - 0x54
|
||||
|
||||
.global Unk_ov29_02256BB0
|
||||
Unk_ov29_02256BB0: ; 0x02256BB0
|
||||
.incbin "incbin/overlay29_rodata.bin", 0x74, 0x54
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
.public sub_0200D9E8
|
||||
.public sub_0200DA58
|
||||
.public sub_02013880
|
||||
.public sub_02018144
|
||||
.public sub_020181C4
|
||||
.public _u32_div_f
|
||||
.public ov25_02254238
|
||||
.public ov25_0225424C
|
||||
.public ov25_02254260
|
||||
.public ov25_02254518
|
||||
.public ov25_02255ACC
|
||||
.public ov25_02255B34
|
||||
.public ov30_022561C0
|
||||
.public ov30_022561D4
|
||||
.public ov30_0225621C
|
||||
.public ov30_02256298
|
||||
.public ov30_022562B0
|
||||
.public ov30_022562EC
|
||||
.public ov30_022562F4
|
||||
.public ov30_02256310
|
||||
.public ov30_022563EC
|
||||
.public ov30_02256444
|
||||
.public ov30_02256464
|
||||
.public ov30_02256488
|
||||
.public ov30_02256494
|
||||
@@ -1,331 +0,0 @@
|
||||
.include "macros/function.inc"
|
||||
.include "overlay030/ov30_022561C0.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ov30_022561C0
|
||||
ov30_022561C0: ; 0x022561C0
|
||||
ldr r3, _022561C8 ; =ov25_02254238
|
||||
ldr r0, _022561CC ; =ov30_022561D4
|
||||
ldr r1, _022561D0 ; =ov30_022562EC
|
||||
bx r3
|
||||
; .align 2, 0
|
||||
_022561C8: .word ov25_02254238
|
||||
_022561CC: .word ov30_022561D4
|
||||
_022561D0: .word ov30_022562EC
|
||||
thumb_func_end ov30_022561C0
|
||||
|
||||
thumb_func_start ov30_022561D4
|
||||
ov30_022561D4: ; 0x022561D4
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r0, #0
|
||||
add r6, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x2c
|
||||
add r7, r2, #0
|
||||
str r3, [sp]
|
||||
bl sub_02018144
|
||||
add r4, r0, #0
|
||||
beq _02256212
|
||||
ldr r3, [sp]
|
||||
add r1, r6, #0
|
||||
add r2, r7, #0
|
||||
bl ov30_0225621C
|
||||
cmp r0, #0
|
||||
beq _0225620C
|
||||
ldr r0, _02256218 ; =ov30_022562B0
|
||||
add r1, r4, #0
|
||||
mov r2, #1
|
||||
bl sub_0200D9E8
|
||||
cmp r0, #0
|
||||
beq _0225620C
|
||||
str r4, [r5, #0]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_0225620C:
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
_02256212:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02256218: .word ov30_022562B0
|
||||
thumb_func_end ov30_022561D4
|
||||
|
||||
thumb_func_start ov30_0225621C
|
||||
ov30_0225621C: ; 0x0225621C
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
add r1, r5, #0
|
||||
add r0, #0x24
|
||||
add r1, #0x14
|
||||
bl ov30_022563EC
|
||||
cmp r0, #0
|
||||
beq _0225628A
|
||||
mov r1, #0
|
||||
strb r1, [r5]
|
||||
strb r1, [r5, #1]
|
||||
strb r1, [r5, #2]
|
||||
mov r0, #1
|
||||
strb r0, [r5, #3]
|
||||
strb r1, [r5, #6]
|
||||
add r0, r5, #0
|
||||
str r1, [r5, #0x20]
|
||||
add r0, #0x14
|
||||
bl sub_02013880
|
||||
ldr r0, [r5, #0x14]
|
||||
cmp r0, #0x18
|
||||
blo _02256256
|
||||
mov r1, #0x18
|
||||
bl _u32_div_f
|
||||
str r1, [r5, #0x14]
|
||||
_02256256:
|
||||
ldr r0, [r5, #0x18]
|
||||
cmp r0, #0x3c
|
||||
blo _02256266
|
||||
ldr r0, [r5, #0x14]
|
||||
mov r1, #0x3c
|
||||
bl _u32_div_f
|
||||
str r1, [r5, #0x14]
|
||||
_02256266:
|
||||
ldr r0, [r5, #0x18]
|
||||
ldr r2, _02256290 ; =ov30_022562F4
|
||||
strb r0, [r5, #5]
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
ldr r0, _02256294 ; =0x02256678
|
||||
mov r1, #1
|
||||
add r3, r5, #0
|
||||
bl ov25_02255ACC
|
||||
str r0, [r5, #0x10]
|
||||
cmp r0, #0
|
||||
bne _02256284
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
_02256284:
|
||||
str r4, [r5, #0x28]
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, pc}
|
||||
_0225628A:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
nop
|
||||
_02256290: .word ov30_022562F4
|
||||
_02256294: .word 0x02256678
|
||||
thumb_func_end ov30_0225621C
|
||||
|
||||
thumb_func_start ov30_02256298
|
||||
ov30_02256298: ; 0x02256298
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldr r0, [r4, #0x24]
|
||||
bl ov30_02256444
|
||||
ldr r0, [r4, #0x10]
|
||||
bl ov25_02255B34
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov30_02256298
|
||||
|
||||
thumb_func_start ov30_022562B0
|
||||
ov30_022562B0: ; 0x022562B0
|
||||
push {r3, r4, r5, lr}
|
||||
add r4, r1, #0
|
||||
add r5, r0, #0
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #3
|
||||
bhs _022562E6
|
||||
ldr r0, [r4, #0x28]
|
||||
ldr r1, [r4, #0x10]
|
||||
bl ov25_02254518
|
||||
ldrb r1, [r4]
|
||||
add r0, r4, #0
|
||||
lsl r2, r1, #2
|
||||
ldr r1, _022562E8 ; =0x0225667C
|
||||
ldr r1, [r1, r2]
|
||||
blx r1
|
||||
cmp r0, #0
|
||||
beq _022562E6
|
||||
add r0, r4, #0
|
||||
bl ov30_02256298
|
||||
add r0, r5, #0
|
||||
bl sub_0200DA58
|
||||
ldr r0, [r4, #0x28]
|
||||
bl ov25_02254260
|
||||
_022562E6:
|
||||
pop {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_022562E8: .word 0x0225667C
|
||||
thumb_func_end ov30_022562B0
|
||||
|
||||
thumb_func_start ov30_022562EC
|
||||
ov30_022562EC: ; 0x022562EC
|
||||
mov r1, #1
|
||||
strb r1, [r0, #2]
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov30_022562EC
|
||||
|
||||
thumb_func_start ov30_022562F4
|
||||
ov30_022562F4: ; 0x022562F4
|
||||
cmp r2, #0
|
||||
beq _02256304
|
||||
cmp r2, #1
|
||||
bne _0225630C
|
||||
mov r0, #1
|
||||
str r0, [r3, #0x20]
|
||||
strb r0, [r3, #6]
|
||||
bx lr
|
||||
_02256304:
|
||||
mov r0, #0
|
||||
str r0, [r3, #0x20]
|
||||
mov r0, #1
|
||||
strb r0, [r3, #6]
|
||||
_0225630C:
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov30_022562F4
|
||||
|
||||
thumb_func_start ov30_02256310
|
||||
ov30_02256310: ; 0x02256310
|
||||
ldrb r2, [r0, #2]
|
||||
cmp r2, #0
|
||||
bne _02256318
|
||||
b _0225631A
|
||||
_02256318:
|
||||
mov r1, #2
|
||||
_0225631A:
|
||||
strb r1, [r0]
|
||||
mov r1, #0
|
||||
strb r1, [r0, #1]
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov30_02256310
|
||||
|
||||
thumb_func_start ov30_02256324
|
||||
ov30_02256324: ; 0x02256324
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _02256334
|
||||
cmp r0, #1
|
||||
beq _02256344
|
||||
b _0225635E
|
||||
_02256334:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #0
|
||||
bl ov30_02256464
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _0225635E
|
||||
_02256344:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #0
|
||||
bl ov30_02256488
|
||||
cmp r0, #0
|
||||
beq _0225635E
|
||||
ldr r0, [r4, #0x28]
|
||||
bl ov25_0225424C
|
||||
add r0, r4, #0
|
||||
mov r1, #1
|
||||
bl ov30_02256310
|
||||
_0225635E:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov30_02256324
|
||||
|
||||
thumb_func_start ov30_02256364
|
||||
ov30_02256364: ; 0x02256364
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r1, [r4, #2]
|
||||
cmp r1, #0
|
||||
beq _02256378
|
||||
mov r1, #2
|
||||
bl ov30_02256310
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
_02256378:
|
||||
ldrb r0, [r4, #6]
|
||||
cmp r0, #0
|
||||
beq _0225638A
|
||||
mov r0, #0
|
||||
strb r0, [r4, #6]
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #2
|
||||
bl ov30_02256464
|
||||
_0225638A:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #1
|
||||
bl ov30_02256488
|
||||
cmp r0, #0
|
||||
beq _022563B2
|
||||
ldr r0, [r4, #0x18]
|
||||
strb r0, [r4, #5]
|
||||
add r0, r4, #0
|
||||
add r0, #0x14
|
||||
bl sub_02013880
|
||||
ldrb r1, [r4, #5]
|
||||
ldr r0, [r4, #0x18]
|
||||
cmp r1, r0
|
||||
beq _022563B2
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #1
|
||||
bl ov30_02256464
|
||||
_022563B2:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov30_02256364
|
||||
|
||||
thumb_func_start ov30_022563B8
|
||||
ov30_022563B8: ; 0x022563B8
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0
|
||||
beq _022563C8
|
||||
cmp r0, #1
|
||||
beq _022563D8
|
||||
b _022563E6
|
||||
_022563C8:
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r1, #3
|
||||
bl ov30_02256464
|
||||
ldrb r0, [r4, #1]
|
||||
add r0, r0, #1
|
||||
strb r0, [r4, #1]
|
||||
b _022563E6
|
||||
_022563D8:
|
||||
ldr r0, [r4, #0x24]
|
||||
bl ov30_02256494
|
||||
cmp r0, #0
|
||||
beq _022563E6
|
||||
mov r0, #1
|
||||
pop {r4, pc}
|
||||
_022563E6:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov30_022563B8
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov30_02256678
|
||||
Unk_ov30_02256678: ; 0x02256678
|
||||
.incbin "incbin/overlay30_rodata.bin", 0x0, 0x4 - 0x0
|
||||
|
||||
.global Unk_ov30_0225667C
|
||||
Unk_ov30_0225667C: ; 0x0225667C
|
||||
.incbin "incbin/overlay30_rodata.bin", 0x4, 0xC
|
||||
|
||||
.section .sinit, 4
|
||||
.word ov30_022561C0
|
||||
@@ -1,31 +0,0 @@
|
||||
.public sub_02006E3C
|
||||
.public sub_02006E60
|
||||
.public sub_02006EC0
|
||||
.public sub_0200D9E8
|
||||
.public sub_0200DA58
|
||||
.public sub_02018144
|
||||
.public sub_020181C4
|
||||
.public sub_020183C4
|
||||
.public sub_02019044
|
||||
.public sub_02019448
|
||||
.public _u32_div_f
|
||||
.public ov25_02254664
|
||||
.public ov25_02254674
|
||||
.public ov25_022546B8
|
||||
.public ov25_022546F0
|
||||
.public ov25_02255090
|
||||
.public ov25_02255130
|
||||
.public ov25_02255154
|
||||
.public ov25_0225517C
|
||||
.public ov25_02255224
|
||||
.public ov25_0225523C
|
||||
.public ov25_02255810
|
||||
.public ov25_022558B0
|
||||
.public ov25_022558C4
|
||||
.public ov25_02255958
|
||||
.public ov25_022559B0
|
||||
.public ov30_02256460
|
||||
.public ov30_022564A0
|
||||
.public ov30_022565B0
|
||||
.public ov30_022565F4
|
||||
.public ov30_02256658
|
||||
@@ -1,368 +0,0 @@
|
||||
.include "macros/function.inc"
|
||||
.include "overlay030/ov30_022563EC.inc"
|
||||
|
||||
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start ov30_022563EC
|
||||
ov30_022563EC: ; 0x022563EC
|
||||
push {r4, r5, r6, lr}
|
||||
add r5, r0, #0
|
||||
add r6, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x54
|
||||
bl sub_02018144
|
||||
add r4, r0, #0
|
||||
beq _0225643A
|
||||
add r0, #8
|
||||
mov r1, #8
|
||||
bl ov25_02255090
|
||||
str r6, [r4, #0]
|
||||
bl ov25_02254674
|
||||
str r0, [r4, #4]
|
||||
bl ov25_02254664
|
||||
str r0, [r4, #0x48]
|
||||
add r0, r4, #0
|
||||
bl ov30_022565F4
|
||||
cmp r0, #0
|
||||
bne _02256428
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
_02256428:
|
||||
ldr r0, _02256440 ; =ov30_02256460
|
||||
add r1, r4, #0
|
||||
mov r2, #3
|
||||
bl sub_0200D9E8
|
||||
str r0, [r4, #0x30]
|
||||
str r4, [r5, #0]
|
||||
mov r0, #1
|
||||
pop {r4, r5, r6, pc}
|
||||
_0225643A:
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
nop
|
||||
_02256440: .word ov30_02256460
|
||||
thumb_func_end ov30_022563EC
|
||||
|
||||
thumb_func_start ov30_02256444
|
||||
ov30_02256444: ; 0x02256444
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
beq _0225645E
|
||||
bl ov30_02256658
|
||||
ldr r0, [r4, #0x30]
|
||||
cmp r0, #0
|
||||
beq _02256458
|
||||
bl sub_0200DA58
|
||||
_02256458:
|
||||
add r0, r4, #0
|
||||
bl sub_020181C4
|
||||
_0225645E:
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov30_02256444
|
||||
|
||||
thumb_func_start ov30_02256460
|
||||
ov30_02256460: ; 0x02256460
|
||||
bx lr
|
||||
; .align 2, 0
|
||||
thumb_func_end ov30_02256460
|
||||
|
||||
thumb_func_start ov30_02256464
|
||||
ov30_02256464: ; 0x02256464
|
||||
push {lr}
|
||||
sub sp, #0xc
|
||||
add r2, r0, #0
|
||||
add r0, #8
|
||||
str r0, [sp]
|
||||
mov r0, #2
|
||||
str r0, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
ldr r0, _02256484 ; =0x022566C4
|
||||
ldr r3, [r2, #0]
|
||||
bl ov25_0225517C
|
||||
add sp, #0xc
|
||||
pop {pc}
|
||||
nop
|
||||
_02256484: .word 0x022566C4
|
||||
thumb_func_end ov30_02256464
|
||||
|
||||
thumb_func_start ov30_02256488
|
||||
ov30_02256488: ; 0x02256488
|
||||
ldr r3, _02256490 ; =ov25_02255130
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_02256490: .word ov25_02255130
|
||||
thumb_func_end ov30_02256488
|
||||
|
||||
thumb_func_start ov30_02256494
|
||||
ov30_02256494: ; 0x02256494
|
||||
ldr r3, _0225649C ; =ov25_02255154
|
||||
add r0, #8
|
||||
bx r3
|
||||
nop
|
||||
_0225649C: .word ov25_02255154
|
||||
thumb_func_end ov30_02256494
|
||||
|
||||
thumb_func_start ov30_022564A0
|
||||
ov30_022564A0: ; 0x022564A0
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
bl ov25_0225523C
|
||||
add r0, #8
|
||||
add r1, r4, #0
|
||||
bl ov25_02255224
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov30_022564A0
|
||||
|
||||
thumb_func_start ov30_022564B4
|
||||
ov30_022564B4: ; 0x022564B4
|
||||
push {r4, r5, lr}
|
||||
sub sp, #0x14
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl ov25_0225523C
|
||||
add r5, r0, #0
|
||||
ldr r0, [r5, #4]
|
||||
ldr r2, _0225653C ; =0x02256688
|
||||
mov r1, #6
|
||||
mov r3, #0
|
||||
bl sub_020183C4
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x17
|
||||
mov r3, #6
|
||||
bl sub_02006E3C
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
mov r0, #8
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r5, #4]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x1a
|
||||
mov r3, #6
|
||||
bl sub_02006E60
|
||||
mov r0, #0
|
||||
add r1, r0, #0
|
||||
bl ov25_022546B8
|
||||
add r0, r5, #0
|
||||
bl ov30_022565B0
|
||||
ldr r0, [r5, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
ldr r1, _02256540 ; =0x04001000
|
||||
ldr r0, _02256544 ; =0xFFFFE0FF
|
||||
ldr r3, [r1, #0]
|
||||
ldr r2, [r1, #0]
|
||||
str r3, [sp, #0x10]
|
||||
and r0, r2
|
||||
lsl r2, r3, #0x13
|
||||
lsr r3, r2, #0x1b
|
||||
mov r2, #0x14
|
||||
orr r2, r3
|
||||
lsl r2, r2, #8
|
||||
orr r0, r2
|
||||
str r0, [r1, #0]
|
||||
add r0, r4, #0
|
||||
bl ov30_022564A0
|
||||
add sp, #0x14
|
||||
pop {r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_0225653C: .word 0x02256688
|
||||
_02256540: .word 0x04001000
|
||||
_02256544: .word 0xFFFFE0FF
|
||||
thumb_func_end ov30_022564B4
|
||||
|
||||
thumb_func_start ov30_02256548
|
||||
ov30_02256548: ; 0x02256548
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov25_0225523C
|
||||
add r4, r0, #0
|
||||
bl ov30_022565B0
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019448
|
||||
add r0, r5, #0
|
||||
bl ov30_022564A0
|
||||
pop {r3, r4, r5, pc}
|
||||
thumb_func_end ov30_02256548
|
||||
|
||||
thumb_func_start ov30_02256568
|
||||
ov30_02256568: ; 0x02256568
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl ov25_0225523C
|
||||
ldr r0, [r0, #0]
|
||||
ldr r0, [r0, #0xc]
|
||||
cmp r0, #0
|
||||
beq _02256584
|
||||
mov r0, #0
|
||||
add r1, r0, #0
|
||||
bl ov25_022546F0
|
||||
b _0225658C
|
||||
_02256584:
|
||||
mov r0, #0
|
||||
add r1, r0, #0
|
||||
bl ov25_022546B8
|
||||
_0225658C:
|
||||
add r0, r4, #0
|
||||
bl ov30_022564A0
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov30_02256568
|
||||
|
||||
thumb_func_start ov30_02256594
|
||||
ov30_02256594: ; 0x02256594
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl ov25_0225523C
|
||||
ldr r0, [r0, #4]
|
||||
mov r1, #6
|
||||
bl sub_02019044
|
||||
add r0, r4, #0
|
||||
bl ov30_022564A0
|
||||
pop {r4, pc}
|
||||
; .align 2, 0
|
||||
thumb_func_end ov30_02256594
|
||||
|
||||
thumb_func_start ov30_022565B0
|
||||
ov30_022565B0: ; 0x022565B0
|
||||
push {r3, r4, r5, lr}
|
||||
add r4, r0, #0
|
||||
ldr r0, [r4, #0]
|
||||
ldr r1, _022565F0 ; =0x04000280
|
||||
ldr r0, [r0, #0]
|
||||
mov r2, #0
|
||||
strh r2, [r1]
|
||||
str r0, [r1, #0x10]
|
||||
mov r0, #0xa
|
||||
add r1, #0x18
|
||||
str r0, [r1, #0]
|
||||
str r2, [r1, #4]
|
||||
ldr r5, [r4, #0]
|
||||
mov r1, #0xc
|
||||
ldr r0, [r5, #0]
|
||||
bl _u32_div_f
|
||||
ldr r2, [r5, #4]
|
||||
ldr r0, [r4, #0x4c]
|
||||
lsr r3, r2, #1
|
||||
mov r2, #0x1e
|
||||
mul r2, r1
|
||||
add r2, #0x3c
|
||||
add r1, r3, r2
|
||||
bl ov25_022558C4
|
||||
ldr r1, [r4, #0]
|
||||
ldr r0, [r4, #0x50]
|
||||
ldr r1, [r1, #4]
|
||||
bl ov25_022558C4
|
||||
pop {r3, r4, r5, pc}
|
||||
; .align 2, 0
|
||||
_022565F0: .word 0x04000280
|
||||
thumb_func_end ov30_022565B0
|
||||
|
||||
thumb_func_start ov30_022565F4
|
||||
ov30_022565F4: ; 0x022565F4
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #0x10
|
||||
mov r3, #0
|
||||
str r3, [sp]
|
||||
mov r2, #1
|
||||
add r7, r0, #0
|
||||
str r2, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x1d
|
||||
bl sub_02006EC0
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
add r0, r7, #0
|
||||
add r0, #0x34
|
||||
mov r1, #0xc
|
||||
mov r2, #0x1b
|
||||
mov r3, #0x1c
|
||||
bl ov25_02255958
|
||||
cmp r0, #0
|
||||
beq _0225664E
|
||||
add r0, r7, #0
|
||||
str r0, [sp, #0xc]
|
||||
add r0, #0x34
|
||||
ldr r4, _02256654 ; =0x022566A4
|
||||
mov r6, #0
|
||||
add r5, r7, #0
|
||||
str r0, [sp, #0xc]
|
||||
_02256632:
|
||||
ldr r0, [r7, #0x48]
|
||||
ldr r2, [sp, #0xc]
|
||||
add r1, r4, #0
|
||||
bl ov25_02255810
|
||||
str r0, [r5, #0x4c]
|
||||
add r6, r6, #1
|
||||
add r4, #0x10
|
||||
add r5, r5, #4
|
||||
cmp r6, #2
|
||||
blt _02256632
|
||||
add sp, #0x10
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_0225664E:
|
||||
mov r0, #0
|
||||
add sp, #0x10
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
; .align 2, 0
|
||||
_02256654: .word 0x022566A4
|
||||
thumb_func_end ov30_022565F4
|
||||
|
||||
thumb_func_start ov30_02256658
|
||||
ov30_02256658: ; 0x02256658
|
||||
push {r4, r5, r6, lr}
|
||||
add r6, r0, #0
|
||||
add r0, #0x34
|
||||
bl ov25_022559B0
|
||||
mov r4, #0
|
||||
add r5, r6, #0
|
||||
_02256666:
|
||||
ldr r0, [r6, #0x48]
|
||||
ldr r1, [r5, #0x4c]
|
||||
bl ov25_022558B0
|
||||
add r4, r4, #1
|
||||
add r5, r5, #4
|
||||
cmp r4, #2
|
||||
blt _02256666
|
||||
pop {r4, r5, r6, pc}
|
||||
thumb_func_end ov30_02256658
|
||||
|
||||
.rodata
|
||||
|
||||
|
||||
.global Unk_ov30_02256688
|
||||
Unk_ov30_02256688: ; 0x02256688
|
||||
.incbin "incbin/overlay30_rodata.bin", 0x10, 0x2C - 0x10
|
||||
|
||||
.global Unk_ov30_022566A4
|
||||
Unk_ov30_022566A4: ; 0x022566A4
|
||||
.incbin "incbin/overlay30_rodata.bin", 0x2C, 0x4C - 0x2C
|
||||
|
||||
.global Unk_ov30_022566C4
|
||||
Unk_ov30_022566C4: ; 0x022566C4
|
||||
.incbin "incbin/overlay30_rodata.bin", 0x4C, 0x3C
|
||||
|
||||
16
main.lsf
16
main.lsf
@@ -1315,15 +1315,15 @@ Overlay overlay25
|
||||
Overlay overlay26
|
||||
{
|
||||
After overlay25
|
||||
Object asm/overlay026/ov26_022561C0.o
|
||||
Object asm/overlay026/ov26_02256404.o
|
||||
Object src/overlay026/ov26_022561C0.o
|
||||
Object src/overlay026/ov26_02256404.o
|
||||
}
|
||||
|
||||
Overlay overlay27
|
||||
{
|
||||
After overlay25
|
||||
Object asm/overlay027/ov27_022561C0.o
|
||||
Object asm/overlay027/ov27_0225680C.o
|
||||
Object src/overlay027/ov27_022561C0.o
|
||||
Object src/overlay027/ov27_0225680C.o
|
||||
}
|
||||
|
||||
Overlay overlay28
|
||||
@@ -1337,15 +1337,15 @@ Overlay overlay28
|
||||
Overlay overlay29
|
||||
{
|
||||
After overlay25
|
||||
Object asm/overlay029/ov29_022561C0.o
|
||||
Object asm/overlay029/ov29_022566C8.o
|
||||
Object src/overlay029/ov29_022561C0.o
|
||||
Object src/overlay029/ov29_022566C8.o
|
||||
}
|
||||
|
||||
Overlay overlay30
|
||||
{
|
||||
After overlay25
|
||||
Object asm/overlay030/ov30_022561C0.o
|
||||
Object asm/overlay030/ov30_022563EC.o
|
||||
Object src/overlay030/ov30_022561C0.o
|
||||
Object src/overlay030/ov30_022563EC.o
|
||||
}
|
||||
|
||||
Overlay overlay31
|
||||
|
||||
233
src/overlay026/ov26_022561C0.c
Normal file
233
src/overlay026/ov26_022561C0.c
Normal file
@@ -0,0 +1,233 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
#include <nitro/sinit.h>
|
||||
|
||||
#include "struct_decls/struct_02018340_decl.h"
|
||||
#include "struct_decls/struct_0201CD38_decl.h"
|
||||
#include "overlay025/struct_ov25_0225424C_decl.h"
|
||||
#include "overlay025/struct_ov25_02255B34_decl.h"
|
||||
#include "overlay026/struct_ov26_02256404_decl.h"
|
||||
|
||||
#include "struct_defs/union_02022594_020225E0.h"
|
||||
#include "overlay026/struct_ov26_02256404_1.h"
|
||||
|
||||
#include "unk_0200D9E8.h"
|
||||
#include "unk_0201378C.h"
|
||||
#include "unk_02017E74.h"
|
||||
#include "overlay025/ov25_02253CE0.h"
|
||||
#include "overlay025/ov25_02255ACC.h"
|
||||
#include "overlay026/ov26_02256404.h"
|
||||
|
||||
typedef struct {
|
||||
u8 unk_00;
|
||||
u8 unk_01;
|
||||
u8 unk_02;
|
||||
u8 unk_03;
|
||||
u8 unk_04;
|
||||
u8 unk_05;
|
||||
u8 unk_06;
|
||||
u8 unk_07;
|
||||
u32 unk_08;
|
||||
u32 unk_0C;
|
||||
UnkStruct_ov25_02255B34 * unk_10;
|
||||
UnkStruct_ov26_02256404_1 unk_14;
|
||||
UnkStruct_ov26_02256404 * unk_24;
|
||||
UnkStruct_ov25_0225424C * unk_28;
|
||||
} UnkStruct_ov26_0225621C;
|
||||
|
||||
static void NitroStaticInit(void);
|
||||
|
||||
static BOOL ov26_022561D4(void ** param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3);
|
||||
static BOOL ov26_0225621C(UnkStruct_ov26_0225621C * param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3);
|
||||
static void ov26_022562A4(UnkStruct_ov26_0225621C * param0);
|
||||
static void ov26_022562BC(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov26_022562F8(void * param0);
|
||||
static void ov26_02256300(u32 param0, u32 param1, u32 param2, void * param3);
|
||||
static void ov26_0225631C(UnkStruct_ov26_0225621C * param0, u32 param1);
|
||||
static BOOL ov26_02256330(UnkStruct_ov26_0225621C * param0);
|
||||
static BOOL ov26_02256370(UnkStruct_ov26_0225621C * param0);
|
||||
static BOOL ov26_022563D0(UnkStruct_ov26_0225621C * param0);
|
||||
|
||||
static const UnkUnion_020225E0 Unk_ov26_02256718[] = {
|
||||
{0x10, 0xAF, 0x10, 0xCF}
|
||||
};
|
||||
|
||||
static void NitroStaticInit (void)
|
||||
{
|
||||
ov25_02254238(ov26_022561D4, ov26_022562F8);
|
||||
}
|
||||
|
||||
static BOOL ov26_022561D4 (void ** param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3)
|
||||
{
|
||||
UnkStruct_ov26_0225621C * v0 = (UnkStruct_ov26_0225621C *)sub_02018144(8, sizeof(UnkStruct_ov26_0225621C));
|
||||
|
||||
if (v0 != NULL) {
|
||||
if (ov26_0225621C(v0, param1, param2, param3)) {
|
||||
if (sub_0200D9E8(ov26_022562BC, v0, 1) != NULL) {
|
||||
*param0 = v0;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub_020181C4(v0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov26_0225621C (UnkStruct_ov26_0225621C * param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3)
|
||||
{
|
||||
if (ov26_02256404(&(param0->unk_24), &(param0->unk_14), param2)) {
|
||||
param0->unk_00 = 0;
|
||||
param0->unk_01 = 0;
|
||||
param0->unk_02 = 0;
|
||||
param0->unk_03 = 1;
|
||||
param0->unk_07 = 0;
|
||||
param0->unk_14.unk_0C = 0;
|
||||
|
||||
sub_02013880(&(param0->unk_14.unk_00));
|
||||
|
||||
if (param0->unk_14.unk_00.hour >= 24) {
|
||||
param0->unk_14.unk_00.hour %= 24;
|
||||
}
|
||||
|
||||
if (param0->unk_14.unk_00.minute >= 60) {
|
||||
param0->unk_14.unk_00.hour %= 60;
|
||||
param0->unk_14.unk_00.minute %= 60;
|
||||
}
|
||||
|
||||
param0->unk_06 = param0->unk_14.unk_00.minute;
|
||||
param0->unk_05 = param0->unk_14.unk_00.hour;
|
||||
param0->unk_10 = ov25_02255ACC(Unk_ov26_02256718, NELEMS(Unk_ov26_02256718), ov26_02256300, param0, 8);
|
||||
|
||||
if (param0->unk_10 == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
param0->unk_28 = param1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov26_022562A4 (UnkStruct_ov26_0225621C * param0)
|
||||
{
|
||||
ov26_0225649C(param0->unk_24);
|
||||
ov25_02255B34(param0->unk_10);
|
||||
sub_020181C4(param0);
|
||||
}
|
||||
|
||||
static void ov26_022562BC (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
static BOOL(*const v0[])(UnkStruct_ov26_0225621C *) = {
|
||||
ov26_02256330, ov26_02256370, ov26_022563D0,
|
||||
};
|
||||
|
||||
UnkStruct_ov26_0225621C * v1 = (UnkStruct_ov26_0225621C *)param1;
|
||||
|
||||
if (v1->unk_00 < NELEMS(v0)) {
|
||||
ov25_02254518(v1->unk_28, v1->unk_10);
|
||||
|
||||
if (v0[v1->unk_00](v1)) {
|
||||
ov26_022562A4(v1);
|
||||
sub_0200DA58(param0);
|
||||
ov25_02254260(v1->unk_28);
|
||||
}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
static void ov26_022562F8 (void * param0)
|
||||
{
|
||||
((UnkStruct_ov26_0225621C *)param0)->unk_02 = 1;
|
||||
}
|
||||
|
||||
static void ov26_02256300 (u32 param0, u32 param1, u32 param2, void * param3)
|
||||
{
|
||||
UnkStruct_ov26_0225621C * v0 = (UnkStruct_ov26_0225621C *)param3;
|
||||
|
||||
switch (param2) {
|
||||
case 1:
|
||||
v0->unk_14.unk_0C = 1;
|
||||
v0->unk_07 = 1;
|
||||
break;
|
||||
case 0:
|
||||
v0->unk_14.unk_0C = 0;
|
||||
v0->unk_07 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov26_0225631C (UnkStruct_ov26_0225621C * param0, u32 param1)
|
||||
{
|
||||
if (param0->unk_02 == 0) {
|
||||
param0->unk_00 = param1;
|
||||
} else {
|
||||
param0->unk_00 = 2;
|
||||
}
|
||||
|
||||
param0->unk_01 = 0;
|
||||
}
|
||||
|
||||
static BOOL ov26_02256330 (UnkStruct_ov26_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
ov26_022564A8(param0->unk_24, 0);
|
||||
param0->unk_01++;
|
||||
break;
|
||||
case 1:
|
||||
if (ov26_022564CC(param0->unk_24, 0)) {
|
||||
ov25_0225424C(param0->unk_28);
|
||||
ov26_0225631C(param0, 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov26_02256370 (UnkStruct_ov26_0225621C * param0)
|
||||
{
|
||||
if (param0->unk_02) {
|
||||
ov26_0225631C(param0, 2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (param0->unk_07) {
|
||||
param0->unk_07 = 0;
|
||||
ov26_022564A8(param0->unk_24, 2);
|
||||
}
|
||||
|
||||
if (ov26_022564CC(param0->unk_24, 1)) {
|
||||
param0->unk_06 = param0->unk_14.unk_00.minute;
|
||||
param0->unk_05 = param0->unk_14.unk_00.hour;
|
||||
sub_02013880(&(param0->unk_14.unk_00));
|
||||
|
||||
if ((param0->unk_06 != param0->unk_14.unk_00.minute) || (param0->unk_05 != param0->unk_14.unk_00.hour)) {
|
||||
ov26_022564A8(param0->unk_24, 1);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov26_022563D0 (UnkStruct_ov26_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
ov26_022564A8(param0->unk_24, 3);
|
||||
param0->unk_01++;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (ov26_022564D8(param0->unk_24)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
203
src/overlay026/ov26_02256404.c
Normal file
203
src/overlay026/ov26_02256404.c
Normal file
@@ -0,0 +1,203 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "struct_decls/struct_02018340_decl.h"
|
||||
#include "struct_decls/struct_0201CD38_decl.h"
|
||||
#include "overlay025/struct_ov25_02255224_decl.h"
|
||||
#include "overlay026/struct_ov26_02256404_decl.h"
|
||||
|
||||
#include "overlay025/struct_ov25_0225517C.h"
|
||||
#include "overlay026/struct_ov26_02256404_1.h"
|
||||
#include "overlay097/struct_ov97_0222DB78.h"
|
||||
|
||||
#include "unk_02006E3C.h"
|
||||
#include "unk_02017E74.h"
|
||||
#include "unk_02018340.h"
|
||||
#include "overlay025/ov25_02254560.h"
|
||||
#include "overlay025/ov25_02255090.h"
|
||||
#include "overlay026/ov26_02256404.h"
|
||||
|
||||
struct UnkStruct_ov26_02256404_t {
|
||||
const UnkStruct_ov26_02256404_1 * unk_00;
|
||||
UnkStruct_02018340 * unk_04;
|
||||
u32 unk_08[10];
|
||||
u16 unk_30[360];
|
||||
};
|
||||
|
||||
static void ov26_0225646C(const u16 * param0, u16 * param1);
|
||||
static void ov26_022564E4(UnkStruct_ov25_02255224 * param0);
|
||||
static void ov26_022564F8(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov26_0225658C(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov26_022565AC(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov26_022565D8(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov26_022565F4(UnkStruct_ov26_02256404 * param0);
|
||||
|
||||
BOOL ov26_02256404 (UnkStruct_ov26_02256404 ** param0, const UnkStruct_ov26_02256404_1 * param1, UnkStruct_02018340 * param2)
|
||||
{
|
||||
UnkStruct_ov26_02256404 * v0 = (UnkStruct_ov26_02256404 *)sub_02018144(8, sizeof(UnkStruct_ov26_02256404));
|
||||
|
||||
if (v0 != NULL) {
|
||||
NNSG2dScreenData * v1;
|
||||
void * v2;
|
||||
|
||||
ov25_02255090(v0->unk_08, 8);
|
||||
|
||||
v0->unk_00 = param1;
|
||||
v0->unk_04 = ov25_02254674();
|
||||
|
||||
v2 = sub_02006F6C(12, 25, 1, &v1, 8);
|
||||
|
||||
if (v2 == NULL) {
|
||||
sub_020181C4(v0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ov26_0225646C((const u16 *)(v1->rawData), v0->unk_30);
|
||||
sub_020181C4(v2);
|
||||
|
||||
*param0 = v0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov26_0225646C (const u16 * param0, u16 * param1)
|
||||
{
|
||||
int v0, v1;
|
||||
|
||||
v1 = 288;
|
||||
|
||||
for (v0 = 0; v0 < 9; v0++) {
|
||||
MI_CpuCopy16(param0, param1, 32 * 2);
|
||||
MI_CpuCopy16(¶m0[v1], ¶m1[32], 8 * 2);
|
||||
|
||||
param0 += 32;
|
||||
param1 += (4 * 10);
|
||||
|
||||
v1 = (v1 - 32 + 8);
|
||||
}
|
||||
}
|
||||
|
||||
void ov26_0225649C (UnkStruct_ov26_02256404 * param0)
|
||||
{
|
||||
if (param0 != NULL) {
|
||||
sub_020181C4(param0);
|
||||
}
|
||||
}
|
||||
|
||||
static const UnkStruct_ov25_0225517C Unk_ov26_02256744[] = {
|
||||
{0x0, ov26_022564F8, 0x0},
|
||||
{0x1, ov26_0225658C, 0x0},
|
||||
{0x2, ov26_022565AC, 0x0},
|
||||
{0x3, ov26_022565D8, 0x0},
|
||||
{0x0, NULL, 0x0}
|
||||
};
|
||||
|
||||
void ov26_022564A8 (UnkStruct_ov26_02256404 * param0, u32 param1)
|
||||
{
|
||||
ov25_0225517C(Unk_ov26_02256744, param1, param0, param0->unk_00, param0->unk_08, 2, 8);
|
||||
}
|
||||
|
||||
BOOL ov26_022564CC (UnkStruct_ov26_02256404 * param0, u32 param1)
|
||||
{
|
||||
return ov25_02255130(param0->unk_08, param1);
|
||||
}
|
||||
|
||||
BOOL ov26_022564D8 (UnkStruct_ov26_02256404 * param0)
|
||||
{
|
||||
return ov25_02255154(param0->unk_08);
|
||||
}
|
||||
|
||||
static void ov26_022564E4 (UnkStruct_ov25_02255224 * param0)
|
||||
{
|
||||
UnkStruct_ov26_02256404 * v0 = ov25_0225523C(param0);
|
||||
ov25_02255224(v0->unk_08, param0);
|
||||
}
|
||||
|
||||
static void ov26_022564F8 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
static const UnkStruct_ov97_0222DB78 v0 = {
|
||||
0,
|
||||
0,
|
||||
0x800,
|
||||
0,
|
||||
1,
|
||||
GX_BG_COLORMODE_16,
|
||||
GX_BG_SCRBASE_0x7000,
|
||||
GX_BG_CHARBASE_0x00000,
|
||||
GX_BG_EXTPLTT_01,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
};
|
||||
GXSDispCnt v1;
|
||||
UnkStruct_ov26_02256404 * v2;
|
||||
|
||||
v2 = ov25_0225523C(param1);
|
||||
|
||||
sub_020183C4(v2->unk_04, 6, &v0, 0);
|
||||
sub_02006E3C(12, 23, v2->unk_04, 6, 0, 0, 1, 8);
|
||||
sub_02006E60(12, 24, v2->unk_04, 6, 0, 0, 1, 8);
|
||||
|
||||
ov25_022546B8(0, 0);
|
||||
ov26_022565F4(v2);
|
||||
|
||||
sub_02019448(v2->unk_04, 6);
|
||||
|
||||
v1 = GXS_GetDispCnt();
|
||||
GXS_SetVisiblePlane(v1.visiblePlane | GX_PLANEMASK_BG2);
|
||||
ov26_022564E4(param1);
|
||||
}
|
||||
|
||||
static void ov26_0225658C (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov26_02256404 * v0 = ov25_0225523C(param1);
|
||||
|
||||
ov26_022565F4(v0);
|
||||
sub_02019448(v0->unk_04, 6);
|
||||
ov26_022564E4(param1);
|
||||
}
|
||||
|
||||
static void ov26_022565AC (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov26_02256404 * v0 = ov25_0225523C(param1);
|
||||
|
||||
if (v0->unk_00->unk_0C) {
|
||||
ov25_022546F0(0, 0);
|
||||
} else {
|
||||
ov25_022546B8(0, 0);
|
||||
}
|
||||
|
||||
ov26_022564E4(param1);
|
||||
}
|
||||
|
||||
static void ov26_022565D8 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov26_02256404 * v0 = ov25_0225523C(param1);
|
||||
|
||||
sub_02019044(v0->unk_04, 6);
|
||||
ov26_022564E4(param1);
|
||||
}
|
||||
|
||||
static void ov26_022565F4 (UnkStruct_ov26_02256404 * param0)
|
||||
{
|
||||
u32 v0, v1;
|
||||
|
||||
CP_SetDiv32_32(param0->unk_00->unk_00.hour, 10);
|
||||
|
||||
v0 = CP_GetDivResult32();
|
||||
v1 = CP_GetDivRemainder32();
|
||||
|
||||
sub_020198E8(param0->unk_04, 6, 3, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9);
|
||||
sub_020198E8(param0->unk_04, 6, (3 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9);
|
||||
|
||||
CP_SetDiv32_32(param0->unk_00->unk_00.minute, 10);
|
||||
|
||||
v0 = CP_GetDivResult32();
|
||||
v1 = CP_GetDivRemainder32();
|
||||
|
||||
sub_020198E8(param0->unk_04, 6, 15, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9);
|
||||
sub_020198E8(param0->unk_04, 6, (15 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9);
|
||||
}
|
||||
465
src/overlay027/ov27_022561C0.c
Normal file
465
src/overlay027/ov27_022561C0.c
Normal file
@@ -0,0 +1,465 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
#include <nitro/sinit.h>
|
||||
|
||||
#include "struct_decls/struct_02018340_decl.h"
|
||||
#include "struct_decls/struct_0201CD38_decl.h"
|
||||
#include "overlay025/struct_ov25_0225424C_decl.h"
|
||||
#include "overlay025/struct_ov25_02255B34_decl.h"
|
||||
#include "overlay027/struct_ov27_0225680C_decl.h"
|
||||
|
||||
#include "struct_defs/union_02022594_020225E0.h"
|
||||
#include "overlay027/struct_ov27_0225680C_1.h"
|
||||
|
||||
#include "unk_0200D9E8.h"
|
||||
#include "unk_02017E74.h"
|
||||
#include "unk_02022844.h"
|
||||
#include "unk_02099D44.h"
|
||||
#include "overlay025/ov25_02253CE0.h"
|
||||
#include "overlay025/ov25_02255ACC.h"
|
||||
#include "overlay027/ov27_0225680C.h"
|
||||
|
||||
typedef struct {
|
||||
BOOL unk_00;
|
||||
u32 unk_04;
|
||||
u32 unk_08;
|
||||
u32 unk_0C;
|
||||
u32 unk_10;
|
||||
u64 unk_14;
|
||||
u64 unk_1C;
|
||||
} UnkStruct_ov27_0225621C_sub1;
|
||||
|
||||
typedef struct {
|
||||
u8 unk_00;
|
||||
u8 unk_01;
|
||||
u8 unk_02;
|
||||
u8 unk_03;
|
||||
u8 unk_04;
|
||||
u16 unk_06;
|
||||
u32 unk_08;
|
||||
u64 unk_0C;
|
||||
u64 unk_14;
|
||||
UnkStruct_ov27_0225680C_1 unk_1C;
|
||||
UnkStruct_ov27_0225621C_sub1 unk_38;
|
||||
UnkStruct_ov25_02255B34 * unk_5C;
|
||||
UnkStruct_ov27_0225680C * unk_60;
|
||||
UnkStruct_ov25_0225424C * unk_64;
|
||||
} UnkStruct_ov27_0225621C;
|
||||
|
||||
static void NitroStaticInit(void);
|
||||
|
||||
static BOOL ov27_022561D4(void ** param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3);
|
||||
static BOOL ov27_0225621C(UnkStruct_ov27_0225621C * param0, UnkStruct_02018340 * param1, u32 param2);
|
||||
static void ov27_022562AC(UnkStruct_ov27_0225621C * param0);
|
||||
static void ov27_022562FC(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_02256358(void * param0);
|
||||
static void ov27_02256360(UnkStruct_ov27_0225621C * param0, u32 param1);
|
||||
static BOOL ov27_0225637C(UnkStruct_ov27_0225621C * param0);
|
||||
static BOOL ov27_022563CC(UnkStruct_ov27_0225621C * param0);
|
||||
static BOOL ov27_0225644C(UnkStruct_ov27_0225621C * param0);
|
||||
static BOOL ov27_022564D0(UnkStruct_ov27_0225621C * param0);
|
||||
static BOOL ov27_02256534(UnkStruct_ov27_0225621C * param0);
|
||||
static BOOL ov27_022565D0(UnkStruct_ov27_0225621C * param0);
|
||||
static BOOL ov27_02256608(UnkStruct_ov27_0225621C * param0);
|
||||
static void ov27_02256654(UnkStruct_ov27_0225621C * param0);
|
||||
static void ov27_02256660(u32 param0, u32 param1, u32 param2, void * param3);
|
||||
static void ov27_02256664(UnkStruct_ov27_0225621C * param0);
|
||||
static void ov27_02256680(UnkStruct_ov27_0225621C * param0);
|
||||
static void ov27_022566C4(UnkStruct_ov27_0225621C * param0);
|
||||
static void ov27_022566D8(UnkStruct_ov27_0225621C * param0, UnkStruct_ov27_0225680C_1 * param1);
|
||||
|
||||
static void NitroStaticInit (void)
|
||||
{
|
||||
ov25_02254238(ov27_022561D4, ov27_02256358);
|
||||
}
|
||||
|
||||
static BOOL ov27_022561D4 (void ** param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3)
|
||||
{
|
||||
UnkStruct_ov27_0225621C * v0 = (UnkStruct_ov27_0225621C *)sub_02018144(8, sizeof(UnkStruct_ov27_0225621C));
|
||||
|
||||
if (v0 != NULL) {
|
||||
if (ov27_0225621C(v0, param2, param3)) {
|
||||
v0->unk_64 = param1;
|
||||
|
||||
if (sub_0200D9E8(ov27_022562FC, v0, 1) != NULL) {
|
||||
*param0 = v0;
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
sub_020181C4(v0);
|
||||
v0 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov27_0225621C (UnkStruct_ov27_0225621C * param0, UnkStruct_02018340 * param1, u32 param2)
|
||||
{
|
||||
param0->unk_08 = param2;
|
||||
|
||||
if (sub_02099D7C(param2, &(param0->unk_38), sizeof(param0->unk_38))) {
|
||||
param0->unk_0C = param0->unk_38.unk_14;
|
||||
param0->unk_14 = param0->unk_38.unk_1C;
|
||||
param0->unk_1C.unk_14 = param0->unk_38.unk_04;
|
||||
param0->unk_1C.unk_10 = param0->unk_38.unk_08;
|
||||
param0->unk_1C.unk_0C = param0->unk_38.unk_0C;
|
||||
param0->unk_1C.unk_08 = param0->unk_38.unk_10;
|
||||
param0->unk_1C.unk_00 = param0->unk_38.unk_00;
|
||||
|
||||
if (param0->unk_1C.unk_00) {
|
||||
param0->unk_1C.unk_18 = 2;
|
||||
} else {
|
||||
param0->unk_1C.unk_18 = 0;
|
||||
}
|
||||
} else {
|
||||
ov27_02256664(param0);
|
||||
param0->unk_1C.unk_18 = 0;
|
||||
}
|
||||
|
||||
if (ov27_0225680C(&(param0->unk_60), &(param0->unk_1C), param1)) {
|
||||
param0->unk_00 = 0;
|
||||
param0->unk_01 = 0;
|
||||
param0->unk_03 = param0->unk_00;
|
||||
param0->unk_02 = 0;
|
||||
|
||||
if (ov27_02256608(param0)) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov27_022562AC (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
param0->unk_38.unk_14 = param0->unk_0C;
|
||||
param0->unk_38.unk_1C = param0->unk_14;
|
||||
param0->unk_38.unk_04 = param0->unk_1C.unk_14;
|
||||
param0->unk_38.unk_08 = param0->unk_1C.unk_10;
|
||||
param0->unk_38.unk_0C = param0->unk_1C.unk_0C;
|
||||
param0->unk_38.unk_10 = param0->unk_1C.unk_08;
|
||||
param0->unk_38.unk_00 = param0->unk_1C.unk_00;
|
||||
|
||||
sub_02099D54(param0->unk_08, &(param0->unk_38), sizeof(param0->unk_38));
|
||||
|
||||
ov27_02256654(param0);
|
||||
ov27_02256890(param0->unk_60);
|
||||
|
||||
sub_020181C4(param0);
|
||||
}
|
||||
|
||||
static void ov27_022562FC (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
static BOOL(*const v0[])(UnkStruct_ov27_0225621C *) = {
|
||||
ov27_0225637C,
|
||||
ov27_022563CC,
|
||||
ov27_0225644C,
|
||||
ov27_022564D0,
|
||||
ov27_02256534,
|
||||
ov27_022565D0
|
||||
};
|
||||
|
||||
UnkStruct_ov27_0225621C * v1 = (UnkStruct_ov27_0225621C *)param1;
|
||||
|
||||
if (v1->unk_00 < NELEMS(v0)) {
|
||||
if (v1->unk_02 && (v1->unk_00 != 5)) {
|
||||
ov27_02256360(v1, 5);
|
||||
v1->unk_02 = 0;
|
||||
}
|
||||
|
||||
ov25_02254518(v1->unk_64, v1->unk_5C);
|
||||
ov27_022566D8(v1, &(v1->unk_1C));
|
||||
|
||||
if (v0[v1->unk_00](v1)) {
|
||||
ov27_022562AC(v1);
|
||||
sub_0200DA58(param0);
|
||||
ov25_02254260(v1->unk_64);
|
||||
}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
static void ov27_02256358 (void * param0)
|
||||
{
|
||||
((UnkStruct_ov27_0225621C *)param0)->unk_02 = 1;
|
||||
}
|
||||
|
||||
static void ov27_02256360 (UnkStruct_ov27_0225621C * param0, u32 param1)
|
||||
{
|
||||
param0->unk_03 = param0->unk_00;
|
||||
|
||||
if (param0->unk_02 == 0) {
|
||||
param0->unk_00 = param1;
|
||||
} else {
|
||||
param0->unk_00 = 5;
|
||||
param0->unk_02 = 0;
|
||||
}
|
||||
|
||||
param0->unk_01 = 0;
|
||||
}
|
||||
|
||||
static BOOL ov27_0225637C (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
ov27_022569C8(param0->unk_60, 0);
|
||||
param0->unk_01++;
|
||||
break;
|
||||
case 1:
|
||||
if (ov27_022569EC(param0->unk_60, 0)) {
|
||||
ov25_0225424C(param0->unk_64);
|
||||
|
||||
if (param0->unk_1C.unk_00) {
|
||||
ov27_02256360(param0, 2);
|
||||
} else {
|
||||
ov27_02256360(param0, 1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov27_022563CC (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
if (param0->unk_04 == 1) {
|
||||
param0->unk_1C.unk_18 = 1;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
param0->unk_01++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
switch (param0->unk_04) {
|
||||
case 2:
|
||||
param0->unk_1C.unk_18 = 0;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
param0->unk_01--;
|
||||
break;
|
||||
case 3:
|
||||
param0->unk_1C.unk_18 = 2;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256680(param0);
|
||||
ov27_02256360(param0, 2);
|
||||
break;
|
||||
case 5:
|
||||
param0->unk_1C.unk_18 = 3;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256360(param0, 3);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov27_0225644C (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
if (param0->unk_04 == 1) {
|
||||
param0->unk_1C.unk_18 = 1;
|
||||
ov27_022566C4(param0);
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
param0->unk_01++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
switch (param0->unk_04) {
|
||||
case 2:
|
||||
param0->unk_1C.unk_18 = 0;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256360(param0, 1);
|
||||
break;
|
||||
case 3:
|
||||
param0->unk_1C.unk_18 = 0;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256360(param0, 1);
|
||||
break;
|
||||
case 5:
|
||||
param0->unk_1C.unk_18 = 3;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256360(param0, 3);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov27_022564D0 (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_04) {
|
||||
case 3:
|
||||
if (param0->unk_03 == 1) {
|
||||
ov27_02256680(param0);
|
||||
param0->unk_1C.unk_18 = 2;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256360(param0, 2);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
param0->unk_1C.unk_18 = 0;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256360(param0, 1);
|
||||
break;
|
||||
case 6:
|
||||
param0->unk_1C.unk_18 = 4;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256360(param0, 4);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov27_02256534 (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
param0->unk_06 = 0;
|
||||
param0->unk_01++;
|
||||
case 1:
|
||||
if (++(param0->unk_06) >= 90) {
|
||||
param0->unk_1C.unk_18 = 5;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
param0->unk_06 = 0;
|
||||
param0->unk_01++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (++(param0->unk_06) >= 60) {
|
||||
param0->unk_1C.unk_18 = 6;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256664(param0);
|
||||
param0->unk_06 = 0;
|
||||
param0->unk_01++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (ov27_022569EC(param0->unk_60, 1)) {
|
||||
param0->unk_1C.unk_18 = 0;
|
||||
ov27_022569C8(param0->unk_60, 1);
|
||||
ov27_02256360(param0, 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov27_022565D0 (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
param0->unk_1C.unk_18 = 7;
|
||||
ov27_022569C8(param0->unk_60, 3);
|
||||
param0->unk_01++;
|
||||
break;
|
||||
case 1:
|
||||
if (ov27_022569F8(param0->unk_60)) {
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov27_02256608 (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
static const UnkUnion_020225E0 v0[] = {
|
||||
{0xfe, 112, 112, 39},
|
||||
};
|
||||
|
||||
param0->unk_5C = ov25_02255ACC(v0, NELEMS(v0), ov27_02256660, param0, 8);
|
||||
|
||||
if (param0->unk_5C != NULL) {
|
||||
ov25_02255C48(param0->unk_5C, 0, 0, 15);
|
||||
ov25_02255C48(param0->unk_5C, 0, 1, 75);
|
||||
param0->unk_04 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov27_02256654 (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
ov25_02255B34(param0->unk_5C);
|
||||
}
|
||||
|
||||
static void ov27_02256660 (u32 param0, u32 param1, u32 param2, void * param3)
|
||||
{
|
||||
UnkStruct_ov27_0225621C * v0 = (UnkStruct_ov27_0225621C *)param3;
|
||||
v0->unk_04 = param1;
|
||||
}
|
||||
|
||||
static void ov27_02256664 (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
param0->unk_1C.unk_00 = 0;
|
||||
param0->unk_1C.unk_04 = 1;
|
||||
param0->unk_1C.unk_08 = 0;
|
||||
param0->unk_1C.unk_0C = 0;
|
||||
param0->unk_1C.unk_10 = 0;
|
||||
param0->unk_1C.unk_14 = 0;
|
||||
param0->unk_0C = 0;
|
||||
param0->unk_14 = 0;
|
||||
}
|
||||
|
||||
static void ov27_02256680 (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
if (param0->unk_0C) {
|
||||
param0->unk_0C += (sub_0202293C() - param0->unk_14);
|
||||
} else {
|
||||
param0->unk_0C = sub_0202293C();
|
||||
}
|
||||
|
||||
param0->unk_1C.unk_00 = 1;
|
||||
param0->unk_1C.unk_04 = 0;
|
||||
}
|
||||
|
||||
static void ov27_022566C4 (UnkStruct_ov27_0225621C * param0)
|
||||
{
|
||||
param0->unk_14 = sub_0202293C();
|
||||
param0->unk_1C.unk_00 = 0;
|
||||
}
|
||||
|
||||
static void ov27_022566D8 (UnkStruct_ov27_0225621C * param0, UnkStruct_ov27_0225680C_1 * param1)
|
||||
{
|
||||
if (param1->unk_00) {
|
||||
u64 v0, v1, v2;
|
||||
|
||||
v2 = sub_0202293C() - param0->unk_0C;
|
||||
|
||||
CP_SetDiv64_32(sub_02022944(v2), 1000);
|
||||
|
||||
v0 = CP_GetDivResult64();
|
||||
v1 = CP_GetDivRemainder64();
|
||||
|
||||
CP_SetDiv64_32(v1, 10);
|
||||
param1->unk_08 = CP_GetDivResult32();
|
||||
|
||||
CP_SetDiv64_32(v0, 60);
|
||||
|
||||
v0 = CP_GetDivResult64();
|
||||
param1->unk_0C = CP_GetDivRemainder32();
|
||||
|
||||
CP_SetDiv64_32(v0, 60);
|
||||
|
||||
v0 = CP_GetDivResult64();
|
||||
param1->unk_10 = CP_GetDivRemainder32();
|
||||
|
||||
if (v0 >= 24) {
|
||||
CP_SetDiv64_32(v0, 24);
|
||||
v0 = CP_GetDivRemainder32();
|
||||
}
|
||||
|
||||
param1->unk_14 = (u32)v0;
|
||||
}
|
||||
}
|
||||
587
src/overlay027/ov27_0225680C.c
Normal file
587
src/overlay027/ov27_0225680C.c
Normal file
@@ -0,0 +1,587 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "struct_decls/struct_02018340_decl.h"
|
||||
#include "struct_decls/struct_0201CD38_decl.h"
|
||||
#include "overlay025/struct_ov25_02255224_decl.h"
|
||||
#include "overlay025/struct_ov25_022555E8_decl.h"
|
||||
#include "overlay025/struct_ov25_022558C4_decl.h"
|
||||
#include "overlay027/struct_ov27_0225680C_decl.h"
|
||||
|
||||
#include "overlay025/struct_ov25_0225517C.h"
|
||||
#include "overlay025/struct_ov25_02255810.h"
|
||||
#include "overlay025/struct_ov25_02255958.h"
|
||||
#include "overlay027/struct_ov27_0225680C_1.h"
|
||||
#include "overlay097/struct_ov97_0222DB78.h"
|
||||
|
||||
#include "unk_02006E3C.h"
|
||||
#include "unk_0200D9E8.h"
|
||||
#include "unk_02017E74.h"
|
||||
#include "unk_02018340.h"
|
||||
#include "unk_0201CCF0.h"
|
||||
#include "overlay025/ov25_02253CE0.h"
|
||||
#include "overlay025/ov25_02254560.h"
|
||||
#include "overlay025/ov25_02255090.h"
|
||||
#include "overlay025/ov25_02255540.h"
|
||||
#include "overlay027/ov27_0225680C.h"
|
||||
|
||||
typedef struct {
|
||||
u16 unk_00;
|
||||
u8 unk_02;
|
||||
u8 unk_03;
|
||||
} UnkStruct_ov27_02256E90;
|
||||
|
||||
struct UnkStruct_ov27_0225680C_t {
|
||||
const UnkStruct_ov27_0225680C_1 * unk_00;
|
||||
UnkStruct_02018340 * unk_04;
|
||||
u32 unk_08[10];
|
||||
NNSG2dOamManagerInstance * unk_30;
|
||||
UnkStruct_ov25_02255958 unk_34;
|
||||
UnkStruct_ov25_02255958 unk_48;
|
||||
UnkStruct_ov25_022555E8 * unk_5C;
|
||||
UnkStruct_ov25_022558C4 * unk_60[9];
|
||||
UnkStruct_0201CD38 * unk_84;
|
||||
};
|
||||
|
||||
static void ov27_022568A8(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_022568B4(UnkStruct_ov27_0225680C * param0);
|
||||
static void ov27_02256A04(UnkStruct_ov25_02255224 * param0);
|
||||
static void ov27_02256A18(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static BOOL ov27_02256AEC(UnkStruct_ov27_0225680C * param0);
|
||||
static void ov27_02256B24(UnkStruct_ov27_0225680C * param0, const UnkStruct_ov27_0225680C_1 * param1);
|
||||
static void ov27_02256B80(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_02256BB0(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_02256BE8(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_02256C2C(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_02256C80(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_02256D00(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_02256D80(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_02256E1C(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static BOOL ov27_02256E90(UnkStruct_ov27_02256E90 * param0, u32 param1);
|
||||
static void ov27_02256EC4(UnkStruct_02018340 * param0, u32 param1);
|
||||
static void ov27_02256F24(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov27_02256F7C(UnkStruct_ov27_0225680C * param0);
|
||||
struct UnkStruct_ov25_02253CE0_t * sub_0203D158(void);
|
||||
|
||||
BOOL ov27_0225680C (UnkStruct_ov27_0225680C ** param0, const UnkStruct_ov27_0225680C_1 * param1, UnkStruct_02018340 * param2)
|
||||
{
|
||||
UnkStruct_ov27_0225680C * v0 = (UnkStruct_ov27_0225680C *)sub_02018144(8, sizeof(UnkStruct_ov27_0225680C));
|
||||
|
||||
if (v0 != NULL) {
|
||||
v0->unk_00 = param1;
|
||||
v0->unk_5C = ov25_02254664();
|
||||
v0->unk_04 = sub_02018340(8);
|
||||
|
||||
if (v0->unk_04 == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ov25_02255958(&v0->unk_34, 12, 18, 19, 8)) {
|
||||
if (ov25_02255958(&v0->unk_48, 12, 3, 4, 8)) {
|
||||
ov25_02255090(v0->unk_08, 8);
|
||||
v0->unk_84 = NULL;
|
||||
*param0 = v0;
|
||||
return 1;
|
||||
} else {
|
||||
ov25_022559B0(&(v0->unk_34));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ov27_02256890 (UnkStruct_ov27_0225680C * param0)
|
||||
{
|
||||
if (param0) {
|
||||
if (param0->unk_04) {
|
||||
sub_020181C4(param0->unk_04);
|
||||
}
|
||||
|
||||
sub_020181C4(param0);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov27_022568A8 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov27_0225680C * v0 = (UnkStruct_ov27_0225680C *)param1;
|
||||
ov27_022568B4(v0);
|
||||
}
|
||||
|
||||
static void ov27_022568B4 (UnkStruct_ov27_0225680C * param0)
|
||||
{
|
||||
u32 v0, v1;
|
||||
|
||||
CP_SetDiv32_32(param0->unk_00->unk_14, 10);
|
||||
|
||||
v0 = CP_GetDivResult32();
|
||||
v1 = CP_GetDivRemainder32();
|
||||
|
||||
ov25_022558C4(param0->unk_60[0], 0 + v0);
|
||||
ov25_022558C4(param0->unk_60[1], 0 + v1);
|
||||
|
||||
CP_SetDiv32_32(param0->unk_00->unk_10, 10);
|
||||
|
||||
v0 = CP_GetDivResult32();
|
||||
v1 = CP_GetDivRemainder32();
|
||||
|
||||
ov25_022558C4(param0->unk_60[2], 0 + v0);
|
||||
ov25_022558C4(param0->unk_60[3], 0 + v1);
|
||||
|
||||
CP_SetDiv32_32(param0->unk_00->unk_0C, 10);
|
||||
|
||||
v0 = CP_GetDivResult32();
|
||||
v1 = CP_GetDivRemainder32();
|
||||
|
||||
ov25_022558C4(param0->unk_60[4], 0 + v0);
|
||||
ov25_022558C4(param0->unk_60[5], 0 + v1);
|
||||
|
||||
CP_SetDiv32_32(param0->unk_00->unk_08, 10);
|
||||
|
||||
v0 = CP_GetDivResult32();
|
||||
v1 = CP_GetDivRemainder32();
|
||||
|
||||
ov25_022558C4(param0->unk_60[6], 0 + v0);
|
||||
ov25_022558C4(param0->unk_60[7], 0 + v1);
|
||||
}
|
||||
|
||||
static const UnkStruct_ov25_0225517C Unk_ov27_02256FF0[] = {
|
||||
{0x0, ov27_02256A18, 0x0},
|
||||
{0x1, ov27_02256B80, sizeof(UnkStruct_ov27_02256E90)},
|
||||
{0x3, ov27_02256F24, 0x0},
|
||||
{0x0, NULL, 0x0}
|
||||
};
|
||||
|
||||
void ov27_022569C8 (UnkStruct_ov27_0225680C * param0, u32 param1)
|
||||
{
|
||||
ov25_0225517C(Unk_ov27_02256FF0, param1, param0, param0->unk_00, param0->unk_08, 2, 8);
|
||||
}
|
||||
|
||||
BOOL ov27_022569EC (UnkStruct_ov27_0225680C * param0, u32 param1)
|
||||
{
|
||||
return ov25_02255130(param0->unk_08, param1);
|
||||
}
|
||||
|
||||
BOOL ov27_022569F8 (UnkStruct_ov27_0225680C * param0)
|
||||
{
|
||||
return ov25_02255154(param0->unk_08);
|
||||
}
|
||||
|
||||
static void ov27_02256A04 (UnkStruct_ov25_02255224 * param0)
|
||||
{
|
||||
UnkStruct_ov27_0225680C * v0 = ov25_0225523C(param0);
|
||||
ov25_02255224(v0->unk_08, param0);
|
||||
}
|
||||
|
||||
static void ov27_02256A18 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
static const UnkStruct_ov97_0222DB78 v0 = {
|
||||
0,
|
||||
0,
|
||||
0x800,
|
||||
0,
|
||||
1,
|
||||
GX_BG_COLORMODE_16,
|
||||
GX_BG_SCRBASE_0x7000,
|
||||
GX_BG_CHARBASE_0x00000,
|
||||
GX_BG_EXTPLTT_01,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
};
|
||||
GXSDispCnt v1;
|
||||
UnkStruct_ov27_0225680C * v2 = ov25_0225523C(param1);
|
||||
|
||||
sub_020183C4(v2->unk_04, 6, &v0, 0);
|
||||
sub_02006E3C(12, 21, v2->unk_04, 6, 0, 0, 1, 8);
|
||||
sub_02006E60(12, 20, v2->unk_04, 6, 0, 0, 1, 8);
|
||||
|
||||
ov25_022546B8(0, 0);
|
||||
sub_02019448(v2->unk_04, 6);
|
||||
|
||||
{
|
||||
UnkStruct_ov27_0225680C * v3 = ov25_0225523C(param1);
|
||||
const UnkStruct_ov27_0225680C_1 * v4 = ov25_02255240(param1);
|
||||
|
||||
ov27_02256AEC(v3);
|
||||
ov27_02256B24(v3, v4);
|
||||
|
||||
v2->unk_84 = sub_0200D9E8(ov27_022568A8, v2, 2 + 1);
|
||||
|
||||
ov27_022568B4(v3);
|
||||
|
||||
if (v4->unk_00) {
|
||||
ov27_022569C8(v3, 1);
|
||||
}
|
||||
}
|
||||
|
||||
v1 = GXS_GetDispCnt();
|
||||
|
||||
GXS_SetVisiblePlane(v1.visiblePlane | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ);
|
||||
ov27_02256A04(param1);
|
||||
}
|
||||
|
||||
static BOOL ov27_02256AEC (UnkStruct_ov27_0225680C * param0)
|
||||
{
|
||||
sub_02006EC0(12, 2, 1, 0, 0, 1, 8);
|
||||
sub_02006EC0(12, 22, 1, 80 * 0x20, 0, 1, 8);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void ov27_02256B24 (UnkStruct_ov27_0225680C * param0, const UnkStruct_ov27_0225680C_1 * param1)
|
||||
{
|
||||
static const UnkStruct_ov25_02255810 v0[] = {
|
||||
{
|
||||
{32 << FX32_SHIFT, 40 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
{
|
||||
{(32 + 16) << FX32_SHIFT, 40 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
{
|
||||
{80 << FX32_SHIFT, 40 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
{
|
||||
{(80 + 16) << FX32_SHIFT, 40 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
{
|
||||
{128 << FX32_SHIFT, 40 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
{
|
||||
{(128 + 16) << FX32_SHIFT, 40 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
{
|
||||
{176 << FX32_SHIFT, 40 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
{
|
||||
{(176 + 16) << FX32_SHIFT, 40 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
{
|
||||
{112 << FX32_SHIFT, 96 << FX32_SHIFT},
|
||||
10,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
0
|
||||
}
|
||||
};
|
||||
u32 v1;
|
||||
|
||||
for (v1 = 0; v1 <= 7; v1++) {
|
||||
param0->unk_60[0 + v1] = ov25_02255810(param0->unk_5C, &v0[v1], ¶m0->unk_48);
|
||||
}
|
||||
|
||||
param0->unk_60[8] = ov25_02255810(param0->unk_5C, &v0[v1], ¶m0->unk_34);
|
||||
|
||||
if (param1->unk_00 == 0) {
|
||||
ov25_02255914(param0->unk_60[8], 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov27_02256B80 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
static void(*const v0[])(UnkStruct_0201CD38 *, void *) = {
|
||||
ov27_02256BB0,
|
||||
ov27_02256BE8,
|
||||
ov27_02256C2C,
|
||||
ov27_02256C80,
|
||||
ov27_02256D00,
|
||||
ov27_02256D80,
|
||||
ov27_02256E1C
|
||||
};
|
||||
|
||||
const UnkStruct_ov27_0225680C_1 * v1 = ov25_02255240(param1);
|
||||
|
||||
sub_0201CECC(param0, v0[v1->unk_18]);
|
||||
v0[v1->unk_18](param0, param1);
|
||||
}
|
||||
|
||||
static void ov27_02256BB0 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov27_0225680C * v0 = ov25_0225523C(param1);
|
||||
const UnkStruct_ov27_0225680C_1 * v1 = ov25_02255240(param1);
|
||||
|
||||
ov25_02255914(v0->unk_60[8], 1);
|
||||
ov27_02256EC4(v0->unk_04, 0);
|
||||
sub_02019448(v0->unk_04, 6);
|
||||
ov27_02256A04(param1);
|
||||
}
|
||||
|
||||
static void ov27_02256BE8 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov27_0225680C * v0 = ov25_0225523C(param1);
|
||||
|
||||
ov25_02255914(v0->unk_60[8], 0);
|
||||
ov25_022558C4(v0->unk_60[8], 11);
|
||||
ov27_02256EC4(v0->unk_04, 1);
|
||||
|
||||
sub_02019448(v0->unk_04, 6);
|
||||
|
||||
ov25_02254424(1641);
|
||||
ov27_02256A04(param1);
|
||||
}
|
||||
|
||||
static void ov27_02256C2C (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
const UnkStruct_ov27_0225680C_1 * v0 = ov25_02255240(param1);
|
||||
UnkStruct_ov27_0225680C * v1 = ov25_0225523C(param1);
|
||||
|
||||
if (v0->unk_18 != 2) {
|
||||
ov27_02256A04(param1);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ov25_02255248(param1)) {
|
||||
case 0:
|
||||
ov25_022558C4(v1->unk_60[8], 12);
|
||||
ov27_02256EC4(v1->unk_04, 0);
|
||||
sub_02019448(v1->unk_04, 6);
|
||||
ov25_0225524C(param1);
|
||||
break;
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov27_02256C80 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
const UnkStruct_ov27_0225680C_1 * v0;
|
||||
UnkStruct_ov27_0225680C * v1;
|
||||
UnkStruct_ov27_02256E90 * v2;
|
||||
|
||||
v0 = ov25_02255240(param1);
|
||||
v1 = ov25_0225523C(param1);
|
||||
v2 = ov25_02255244(param1);
|
||||
|
||||
if (v0->unk_18 != 3) {
|
||||
ov27_02256A04(param1);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ov25_02255248(param1)) {
|
||||
case 0:
|
||||
v2->unk_00 = 6;
|
||||
v2->unk_03 = 2;
|
||||
v2->unk_02 = 0;
|
||||
|
||||
ov25_022558C4(v1->unk_60[8], 13);
|
||||
ov25_0225524C(param1);
|
||||
case 1:
|
||||
if (ov27_02256E90(v2, 6)) {
|
||||
ov25_02254424(1641);
|
||||
ov27_02256EC4(v1->unk_04, v2->unk_03);
|
||||
sub_02019448(v1->unk_04, 6);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov27_02256D00 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
const UnkStruct_ov27_0225680C_1 * v0;
|
||||
UnkStruct_ov27_0225680C * v1;
|
||||
UnkStruct_ov27_02256E90 * v2;
|
||||
|
||||
v0 = ov25_02255240(param1);
|
||||
v1 = ov25_0225523C(param1);
|
||||
v2 = ov25_02255244(param1);
|
||||
|
||||
if (v0->unk_18 != 4) {
|
||||
ov27_02256A04(param1);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ov25_02255248(param1)) {
|
||||
case 0:
|
||||
v2->unk_00 = 3;
|
||||
v2->unk_03 = 2;
|
||||
v2->unk_02 = 0;
|
||||
|
||||
ov25_022558C4(v1->unk_60[8], 14);
|
||||
ov25_0225524C(param1);
|
||||
case 1:
|
||||
if (ov27_02256E90(v2, 3)) {
|
||||
ov25_02254424(1641);
|
||||
ov27_02256EC4(v1->unk_04, v2->unk_03);
|
||||
sub_02019448(v1->unk_04, 6);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov27_02256D80 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
const UnkStruct_ov27_0225680C_1 * v0;
|
||||
UnkStruct_ov27_0225680C * v1;
|
||||
UnkStruct_ov27_02256E90 * v2;
|
||||
|
||||
v0 = ov25_02255240(param1);
|
||||
v1 = ov25_0225523C(param1);
|
||||
v2 = ov25_02255244(param1);
|
||||
|
||||
if (v0->unk_18 != 5) {
|
||||
ov27_02256A04(param1);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ov25_02255248(param1)) {
|
||||
case 0:
|
||||
v2->unk_00 = 0;
|
||||
v2->unk_02 = 0;
|
||||
ov25_022558C4(v1->unk_60[8], 15);
|
||||
ov27_02256EC4(v1->unk_04, 5);
|
||||
sub_02019448(v1->unk_04, 6);
|
||||
ov25_02254424(1638);
|
||||
ov25_0225524C(param1);
|
||||
case 1:
|
||||
if (++(v2->unk_00) > 2) {
|
||||
v2->unk_00 = 0;
|
||||
v2->unk_02 ^= 1;
|
||||
v2->unk_03 = 5 + v2->unk_02;
|
||||
ov27_02256EC4(v1->unk_04, v2->unk_03);
|
||||
sub_02019448(v1->unk_04, 6);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov27_02256E1C (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
const UnkStruct_ov27_0225680C_1 * v0;
|
||||
UnkStruct_ov27_0225680C * v1;
|
||||
UnkStruct_ov27_02256E90 * v2;
|
||||
|
||||
v0 = ov25_02255240(param1);
|
||||
v1 = ov25_0225523C(param1);
|
||||
v2 = ov25_02255244(param1);
|
||||
|
||||
if (v0->unk_18 != 6) {
|
||||
ov27_02256A04(param1);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ov25_02255248(param1)) {
|
||||
case 0:
|
||||
ov25_022558C4(v1->unk_60[8], 16);
|
||||
ov27_02256EC4(v1->unk_04, 6);
|
||||
sub_02019448(v1->unk_04, 6);
|
||||
ov25_0225524C(param1);
|
||||
v2->unk_00 = 0;
|
||||
case 1:
|
||||
if (++(v2->unk_00) > 80) {
|
||||
ov27_02256A04(param1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL ov27_02256E90 (UnkStruct_ov27_02256E90 * param0, u32 param1)
|
||||
{
|
||||
static const u8 v0[] = {
|
||||
2, 3, 4,
|
||||
};
|
||||
|
||||
if (++(param0->unk_00) > param1) {
|
||||
param0->unk_00 = 0;
|
||||
|
||||
if (++(param0->unk_02) >= NELEMS(v0)) {
|
||||
param0->unk_02 = 0;
|
||||
}
|
||||
|
||||
param0->unk_03 = v0[param0->unk_02];
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov27_02256EC4 (UnkStruct_02018340 * param0, u32 param1)
|
||||
{
|
||||
u16 * v0;
|
||||
u32 v1, v2;
|
||||
u16 v3;
|
||||
|
||||
v0 = sub_02019FE4(param0, 6);
|
||||
v0 += ((9 * 32) + 9);
|
||||
v3 = 2 + param1 * 5;
|
||||
|
||||
for (v2 = 0; v2 < 11; v2++) {
|
||||
for (v1 = 0; v1 < 5; v1++) {
|
||||
v0[v1] = ((0 << 1) | (v3 + v1));
|
||||
v0[5 * 2 - 1 - v1] = ((0 << 1) | (v3 + v1) | GX_SCRFMT_TEXT_HF_MASK);
|
||||
}
|
||||
|
||||
v0 += 32;
|
||||
v3 += 37;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov27_02256F24 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov27_0225680C * v0 = ov25_0225523C(param1);
|
||||
u32 v1 = ov25_02255248(param1);
|
||||
|
||||
switch (v1) {
|
||||
case 0:
|
||||
ov27_02256F7C(v0);
|
||||
ov25_0225524C(param1);
|
||||
case 1:
|
||||
ov25_022559B0(&(v0->unk_34));
|
||||
ov25_022559B0(&(v0->unk_48));
|
||||
sub_02019044(v0->unk_04, 6);
|
||||
sub_0200DA58(v0->unk_84);
|
||||
v0->unk_84 = NULL;
|
||||
ov27_02256A04(param1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov27_02256F7C (UnkStruct_ov27_0225680C * param0)
|
||||
{
|
||||
u32 v0;
|
||||
|
||||
for (v0 = 0; v0 < 9; v0++) {
|
||||
ov25_022558B0(param0->unk_5C, param0->unk_60[v0]);
|
||||
}
|
||||
}
|
||||
390
src/overlay029/ov29_022561C0.c
Normal file
390
src/overlay029/ov29_022561C0.c
Normal file
@@ -0,0 +1,390 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
#include <nitro/sinit.h>
|
||||
|
||||
#include "struct_decls/struct_02018340_decl.h"
|
||||
#include "struct_decls/struct_0201CD38_decl.h"
|
||||
#include "overlay025/struct_ov25_0225424C_decl.h"
|
||||
#include "overlay025/struct_ov25_02255B34_decl.h"
|
||||
#include "overlay029/struct_ov29_022566C8_decl.h"
|
||||
|
||||
#include "struct_defs/union_02022594_020225E0.h"
|
||||
#include "overlay029/struct_ov29_022566C8_1.h"
|
||||
|
||||
#include "unk_0200D9E8.h"
|
||||
#include "unk_02017E74.h"
|
||||
#include "overlay025/ov25_02253CE0.h"
|
||||
#include "overlay025/ov25_02255ACC.h"
|
||||
#include "overlay029/ov29_022566C8.h"
|
||||
|
||||
typedef struct {
|
||||
u8 unk_00;
|
||||
u8 unk_01;
|
||||
u8 unk_02;
|
||||
u8 unk_03;
|
||||
u32 unk_04;
|
||||
UnkStruct_ov29_022566C8_1 unk_08;
|
||||
UnkStruct_ov29_022566C8 * unk_16F4;
|
||||
UnkStruct_ov25_0225424C * unk_16F8;
|
||||
UnkStruct_ov25_02255B34 * unk_16FC;
|
||||
} UnkStruct_ov29_0225621C;
|
||||
|
||||
static void NitroStaticInit(void);
|
||||
|
||||
static BOOL ov29_022561D4(void ** param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3);
|
||||
static BOOL ov29_0225621C(UnkStruct_ov29_0225621C * param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3);
|
||||
static void ov29_02256288(UnkStruct_ov29_0225621C * param0);
|
||||
static void ov29_022562AC(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov29_022562F4(u32 param0, u32 param1, u32 param2, void * param3);
|
||||
static void ov29_02256324(void * param0);
|
||||
static void ov29_0225632C(UnkStruct_ov29_0225621C * param0, u32 param1);
|
||||
static BOOL ov29_02256340(UnkStruct_ov29_0225621C * param0);
|
||||
static BOOL ov29_0225638C(UnkStruct_ov29_0225621C * param0);
|
||||
static BOOL ov29_02256404(UnkStruct_ov29_0225621C * param0);
|
||||
static BOOL ov29_02256460(UnkStruct_ov29_0225621C * param0);
|
||||
static void ov29_022564F4(UnkStruct_ov29_0225621C * param0, u32 param1, u32 param2, u32 param3, u32 param4);
|
||||
static BOOL ov29_0225668C(UnkStruct_ov29_0225621C * param0);
|
||||
|
||||
static const UnkUnion_020225E0 Unk_ov29_02256B3C[] = {
|
||||
{0x18, 0x58, 0xB4, 0xCC},
|
||||
{0x68, 0xA8, 0xB4, 0xCC}
|
||||
};
|
||||
|
||||
static void NitroStaticInit (void)
|
||||
{
|
||||
ov25_02254238(ov29_022561D4, ov29_02256324);
|
||||
}
|
||||
|
||||
static BOOL ov29_022561D4 (void ** param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3)
|
||||
{
|
||||
UnkStruct_ov29_0225621C * v0 = (UnkStruct_ov29_0225621C *)sub_02018144(8, sizeof(UnkStruct_ov29_0225621C));
|
||||
|
||||
if (v0 != NULL) {
|
||||
if (ov29_0225621C(v0, param1, param2, param3)) {
|
||||
if (sub_0200D9E8(ov29_022562AC, v0, 1) != NULL) {
|
||||
*param0 = v0;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub_020181C4(v0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov29_0225621C (UnkStruct_ov29_0225621C * param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3)
|
||||
{
|
||||
memset(param0->unk_08.unk_0C, 0, sizeof(u8) * (78 * 75));
|
||||
|
||||
param0->unk_08.unk_16E8 = param3;
|
||||
param0->unk_08.unk_00 = 1;
|
||||
|
||||
if (ov29_022566C8(&(param0->unk_16F4), &(param0->unk_08), param2)) {
|
||||
int v0, v1;
|
||||
|
||||
param0->unk_00 = 0;
|
||||
param0->unk_01 = 0;
|
||||
param0->unk_02 = 0;
|
||||
param0->unk_03 = 0;
|
||||
param0->unk_16FC = ov25_02255ACC(Unk_ov29_02256B3C, NELEMS(Unk_ov29_02256B3C), ov29_022562F4, param0, 8);
|
||||
param0->unk_16F8 = param1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov29_02256288 (UnkStruct_ov29_0225621C * param0)
|
||||
{
|
||||
ov25_02255B34(param0->unk_16FC);
|
||||
ov29_02256770(param0->unk_16F4);
|
||||
sub_020181C4(param0);
|
||||
}
|
||||
|
||||
static void ov29_022562AC (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
static BOOL(*const v0[])(UnkStruct_ov29_0225621C *) = {
|
||||
ov29_02256340,
|
||||
ov29_0225638C,
|
||||
ov29_0225668C
|
||||
};
|
||||
|
||||
UnkStruct_ov29_0225621C * v1 = (UnkStruct_ov29_0225621C *)param1;
|
||||
|
||||
if (v1->unk_00 < NELEMS(v0)) {
|
||||
ov25_02254518(v1->unk_16F8, v1->unk_16FC);
|
||||
|
||||
if (v0[v1->unk_00](v1)) {
|
||||
ov29_02256288(v1);
|
||||
sub_0200DA58(param0);
|
||||
ov25_02254260(v1->unk_16F8);
|
||||
}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
static void ov29_022562F4 (u32 param0, u32 param1, u32 param2, void * param3)
|
||||
{
|
||||
UnkStruct_ov29_0225621C * v0 = (UnkStruct_ov29_0225621C *)param3;
|
||||
|
||||
if (param2 == 1) {
|
||||
if (((v0->unk_08.unk_00 == 1) && (param0 == 0)) || ((v0->unk_08.unk_00 == 0) && (param0 == 1))) {
|
||||
v0->unk_08.unk_00 ^= 1;
|
||||
ov29_022567B4(v0->unk_16F4, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ov29_02256324 (void * param0)
|
||||
{
|
||||
((UnkStruct_ov29_0225621C *)param0)->unk_02 = 1;
|
||||
}
|
||||
|
||||
static void ov29_0225632C (UnkStruct_ov29_0225621C * param0, u32 param1)
|
||||
{
|
||||
if (param0->unk_02 == 0) {
|
||||
param0->unk_00 = param1;
|
||||
} else {
|
||||
param0->unk_00 = 2;
|
||||
}
|
||||
|
||||
param0->unk_01 = 0;
|
||||
}
|
||||
|
||||
static BOOL ov29_02256340 (UnkStruct_ov29_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
ov29_022567B4(param0->unk_16F4, 0);
|
||||
param0->unk_01++;
|
||||
break;
|
||||
case 1:
|
||||
if (ov29_022567D8(param0->unk_16F4, 0)) {
|
||||
ov25_0225424C(param0->unk_16F8);
|
||||
ov29_0225632C(param0, 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov29_0225638C (UnkStruct_ov29_0225621C * param0)
|
||||
{
|
||||
if (param0->unk_02) {
|
||||
ov29_0225632C(param0, 2);
|
||||
}
|
||||
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
if (ov25_0225450C(param0->unk_16F8)) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (param0->unk_03) {
|
||||
u32 v0, v1;
|
||||
|
||||
v0 = param0->unk_08.unk_04;
|
||||
v1 = param0->unk_08.unk_08;
|
||||
|
||||
if (ov29_02256460(param0)) {
|
||||
ov29_022564F4(param0, v0, v1, param0->unk_08.unk_04, param0->unk_08.unk_08);
|
||||
} else {
|
||||
param0->unk_03 = 0;
|
||||
}
|
||||
} else {
|
||||
if (ov29_02256404(param0)) {
|
||||
ov29_022567B4(param0->unk_16F4, 3);
|
||||
param0->unk_03 = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov29_02256404 (UnkStruct_ov29_0225621C * param0)
|
||||
{
|
||||
u32 v0, v1;
|
||||
|
||||
if (ov25_0225446C(&v0, &v1)) {
|
||||
if (((u32)(v0 - 16) < (u32)(172 - 16)) & ((u32)(v1 - 16) < (u32)(166 - 16))) {
|
||||
v0 = (v0 - 16) >> 1;
|
||||
v1 = (v1 - 16) >> 1;
|
||||
|
||||
param0->unk_08.unk_0C[v0][v1] = param0->unk_08.unk_00;
|
||||
param0->unk_08.unk_04 = v0;
|
||||
param0->unk_08.unk_08 = v1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov29_02256460 (UnkStruct_ov29_0225621C * param0)
|
||||
{
|
||||
u32 v0, v1;
|
||||
|
||||
if (ov25_0225446C(&v0, &v1)) {
|
||||
if (((u32)(v0 - 16) < (u32)(172 - 16)) & ((u32)(v1 - 16) < (u32)(166 - 16))) {
|
||||
v0 = (v0 - 16) >> 1;
|
||||
v1 = (v1 - 16) >> 1;
|
||||
|
||||
param0->unk_08.unk_04 = v0;
|
||||
param0->unk_08.unk_08 = v1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov29_022564AC (UnkStruct_ov29_0225621C * param0, u32 param1, u32 param2)
|
||||
{
|
||||
int v0, v1, v2, v3, v4, v5;
|
||||
|
||||
v2 = param1 - ((8 / 2) / 2);
|
||||
|
||||
if (v2 < 0) {
|
||||
v2 = 0;
|
||||
}
|
||||
|
||||
v3 = param2 - ((8 / 2) / 2);
|
||||
|
||||
if (v3 < 0) {
|
||||
v3 = 0;
|
||||
}
|
||||
|
||||
v4 = param1 + ((8 / 2) / 2);
|
||||
|
||||
if (v4 >= 78) {
|
||||
v4 = 78;
|
||||
}
|
||||
|
||||
v5 = param2 + ((8 / 2) / 2);
|
||||
|
||||
if (v5 >= 75) {
|
||||
v5 = 75;
|
||||
}
|
||||
|
||||
for (v0 = v2; v0 < v4; v0++) {
|
||||
for (v1 = v3; v1 < v5; v1++) {
|
||||
param0->unk_08.unk_0C[v0][v1] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ov29_022564F4 (UnkStruct_ov29_0225621C * param0, u32 param1, u32 param2, u32 param3, u32 param4)
|
||||
{
|
||||
u32 v0, v1, v2, v3;
|
||||
fx32 v4, v5;
|
||||
|
||||
if ((param2 == param4) && (param1 == param3)) {
|
||||
return;
|
||||
}
|
||||
|
||||
v0 = (param3 > param1) ? (param3 - param1) : (param1 - param3);
|
||||
v1 = (param4 > param2) ? (param4 - param2) : (param2 - param4);
|
||||
|
||||
if (v0 > v1) {
|
||||
v2 = (param3 > param1) ? 1 : -1;
|
||||
|
||||
if (v0) {
|
||||
v5 = ((param4 - param2) * FX32_ONE);
|
||||
v5 /= (s32)(v0);
|
||||
} else {
|
||||
v5 = 0;
|
||||
}
|
||||
|
||||
v4 = (param2 << FX32_SHIFT) + v5;
|
||||
param1 += v2;
|
||||
|
||||
while (param1 != param3) {
|
||||
v3 = v4 >> FX32_SHIFT;
|
||||
|
||||
if ((param1 < 78) && (v3 < 75)) {
|
||||
if ((param0->unk_08.unk_00 == 0) || (param0->unk_08.unk_0C[param1][v3] != param0->unk_08.unk_00)) {
|
||||
if (param0->unk_08.unk_00 == 0) {
|
||||
ov29_022564AC(param0, param1, v3);
|
||||
}
|
||||
|
||||
param0->unk_08.unk_0C[param1][v3] = param0->unk_08.unk_00;
|
||||
param0->unk_08.unk_04 = param1;
|
||||
param0->unk_08.unk_08 = v3;
|
||||
|
||||
ov29_022567B4(param0->unk_16F4, 3);
|
||||
}
|
||||
}
|
||||
|
||||
param1 += v2;
|
||||
v4 += v5;
|
||||
}
|
||||
} else {
|
||||
v2 = (param4 > param2) ? 1 : -1;
|
||||
|
||||
if (v1) {
|
||||
v5 = (param3 - param1) * FX32_ONE;
|
||||
v5 /= (s32)v1;
|
||||
} else {
|
||||
v5 = 0;
|
||||
}
|
||||
|
||||
v4 = (param1 << FX32_SHIFT) + v5;
|
||||
param2 += v2;
|
||||
|
||||
while (param2 != param4) {
|
||||
v3 = v4 >> FX32_SHIFT;
|
||||
|
||||
if ((param2 < 75) && (v3 < 78)) {
|
||||
if ((param0->unk_08.unk_00 == 0) || (param0->unk_08.unk_0C[v3][param2] != param0->unk_08.unk_00)) {
|
||||
if (param0->unk_08.unk_00 == 0) {
|
||||
ov29_022564AC(param0, v3, param2);
|
||||
}
|
||||
|
||||
param0->unk_08.unk_0C[v3][param2] = param0->unk_08.unk_00;
|
||||
param0->unk_08.unk_04 = v3;
|
||||
param0->unk_08.unk_08 = param2;
|
||||
|
||||
ov29_022567B4(param0->unk_16F4, 3);
|
||||
}
|
||||
}
|
||||
|
||||
param2 += v2;
|
||||
v4 += v5;
|
||||
}
|
||||
}
|
||||
|
||||
if ((param4 < 75) && (param3 < 78)) {
|
||||
if (param0->unk_08.unk_00 == 0) {
|
||||
ov29_022564AC(param0, param3, param4);
|
||||
}
|
||||
|
||||
param0->unk_08.unk_04 = param3;
|
||||
param0->unk_08.unk_08 = param4;
|
||||
|
||||
ov29_022567B4(param0->unk_16F4, 3);
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL ov29_0225668C (UnkStruct_ov29_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
ov29_022567B4(param0->unk_16F4, 5);
|
||||
param0->unk_01++;
|
||||
break;
|
||||
case 1:
|
||||
if (ov29_022567E4(param0->unk_16F4)) {
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
351
src/overlay029/ov29_022566C8.c
Normal file
351
src/overlay029/ov29_022566C8.c
Normal file
@@ -0,0 +1,351 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "struct_decls/struct_02018340_decl.h"
|
||||
#include "struct_decls/struct_0201CD38_decl.h"
|
||||
#include "overlay025/struct_ov25_02255224_decl.h"
|
||||
#include "overlay025/struct_ov25_022555E8_decl.h"
|
||||
#include "overlay025/struct_ov25_022558C4_decl.h"
|
||||
#include "overlay029/struct_ov29_022566C8_decl.h"
|
||||
|
||||
#include "struct_defs/struct_0205AA50.h"
|
||||
#include "overlay025/struct_ov25_0225517C.h"
|
||||
#include "overlay025/struct_ov25_02255810.h"
|
||||
#include "overlay025/struct_ov25_02255958.h"
|
||||
#include "overlay029/struct_ov29_022566C8_1.h"
|
||||
#include "overlay061/struct_ov61_0222C884.h"
|
||||
#include "overlay097/struct_ov97_0222DB78.h"
|
||||
|
||||
#include "unk_02006E3C.h"
|
||||
#include "unk_02017E74.h"
|
||||
#include "unk_02018340.h"
|
||||
#include "unk_02099D44.h"
|
||||
#include "overlay025/ov25_02253CE0.h"
|
||||
#include "overlay025/ov25_02254560.h"
|
||||
#include "overlay025/ov25_02255090.h"
|
||||
#include "overlay025/ov25_02255540.h"
|
||||
#include "overlay029/ov29_022566C8.h"
|
||||
|
||||
struct UnkStruct_ov29_022566C8_t {
|
||||
const UnkStruct_ov29_022566C8_1 * unk_00;
|
||||
UnkStruct_02018340 * unk_04;
|
||||
u32 unk_08[18];
|
||||
UnkStruct_ov25_022555E8 * unk_50;
|
||||
UnkStruct_ov25_02255958 unk_54;
|
||||
UnkStruct_ov25_022558C4 * unk_68[2];
|
||||
UnkStruct_0205AA50 * unk_70;
|
||||
};
|
||||
|
||||
static BOOL ov29_02256728(UnkStruct_ov29_022566C8 * param0);
|
||||
static void ov29_022567F0(UnkStruct_ov25_02255224 * param0);
|
||||
static void ov29_02256804(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov29_02256908(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov29_02256950(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov29_022569DC(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov29_02256A7C(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov29_02256A94(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov29_02256ABC(UnkStruct_ov29_022566C8 * param0);
|
||||
static void ov29_02256B18(UnkStruct_ov29_022566C8 * param0);
|
||||
|
||||
BOOL ov29_022566C8 (UnkStruct_ov29_022566C8 ** param0, const UnkStruct_ov29_022566C8_1 * param1, UnkStruct_02018340 * param2)
|
||||
{
|
||||
UnkStruct_ov29_022566C8 * v0 = (UnkStruct_ov29_022566C8 *)sub_02018144(8, sizeof(UnkStruct_ov29_022566C8));
|
||||
|
||||
if (v0 != NULL) {
|
||||
GF_ASSERT(sub_0201833C(7));
|
||||
ov25_02255090(v0->unk_08, 16);
|
||||
|
||||
GF_ASSERT(sub_0201833C(7));
|
||||
v0->unk_00 = param1;
|
||||
v0->unk_04 = ov25_02254674();
|
||||
v0->unk_50 = ov25_02254664();
|
||||
|
||||
GF_ASSERT(sub_0201833C(7));
|
||||
*param0 = v0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov29_02256728 (UnkStruct_ov29_022566C8 * param0)
|
||||
{
|
||||
static const UnkStruct_ov61_0222C884 v0 = {
|
||||
7, 2, 2, 20, 19, 0, 12
|
||||
};
|
||||
|
||||
param0->unk_70 = sub_0201A778(8, 1);
|
||||
|
||||
if (param0->unk_70) {
|
||||
sub_0201A8D4(param0->unk_04, param0->unk_70, &v0);
|
||||
|
||||
if (sub_02099DD0(param0->unk_00->unk_16E8, param0->unk_70->unk_0C, (20 * 19 * 0x20)) == 0) {
|
||||
sub_0201ADA4(param0->unk_70, 0x4);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ov29_02256770 (UnkStruct_ov29_022566C8 * param0)
|
||||
{
|
||||
if (param0 != NULL) {
|
||||
GF_ASSERT(sub_0201833C(7));
|
||||
|
||||
if (param0->unk_70) {
|
||||
sub_02099DA8(param0->unk_00->unk_16E8, param0->unk_70->unk_0C, (20 * 19 * 0x20));
|
||||
sub_0201A8FC(param0->unk_70);
|
||||
sub_020181C4(param0->unk_70);
|
||||
}
|
||||
|
||||
sub_020181C4(param0);
|
||||
}
|
||||
}
|
||||
|
||||
static const UnkStruct_ov25_0225517C Unk_ov29_02256BB0[] = {
|
||||
{0x0, ov29_02256804, 0x0},
|
||||
{0x1, ov29_02256908, 0x0},
|
||||
{0x2, ov29_02256950, 0x0},
|
||||
{0x3, ov29_022569DC, 0x0},
|
||||
{0x4, ov29_02256A7C, 0x0},
|
||||
{0x5, ov29_02256A94, 0x0},
|
||||
{0x0, NULL, 0x0}
|
||||
};
|
||||
|
||||
void ov29_022567B4 (UnkStruct_ov29_022566C8 * param0, u32 param1)
|
||||
{
|
||||
ov25_0225517C(Unk_ov29_02256BB0, param1, param0, param0->unk_00, param0->unk_08, 2, 8);
|
||||
}
|
||||
|
||||
BOOL ov29_022567D8 (UnkStruct_ov29_022566C8 * param0, u32 param1)
|
||||
{
|
||||
return ov25_02255130(param0->unk_08, param1);
|
||||
}
|
||||
|
||||
BOOL ov29_022567E4 (UnkStruct_ov29_022566C8 * param0)
|
||||
{
|
||||
return ov25_02255154(param0->unk_08);
|
||||
}
|
||||
|
||||
static void ov29_022567F0 (UnkStruct_ov25_02255224 * param0)
|
||||
{
|
||||
UnkStruct_ov29_022566C8 * v0 = ov25_0225523C(param0);
|
||||
ov25_02255224(v0->unk_08, param0);
|
||||
}
|
||||
|
||||
static void ov29_02256804 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
static const UnkStruct_ov97_0222DB78 v0 = {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
GX_BG_COLORMODE_16,
|
||||
GX_BG_SCRBASE_0x7000,
|
||||
GX_BG_CHARBASE_0x00000,
|
||||
GX_BG_EXTPLTT_01,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
};
|
||||
static const UnkStruct_ov97_0222DB78 v1 = {
|
||||
0,
|
||||
0,
|
||||
0x800,
|
||||
0,
|
||||
1,
|
||||
GX_BG_COLORMODE_16,
|
||||
GX_BG_SCRBASE_0x7800,
|
||||
GX_BG_CHARBASE_0x00000,
|
||||
GX_BG_EXTPLTT_01,
|
||||
3,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
};
|
||||
GXSDispCnt v2;
|
||||
UnkStruct_ov29_022566C8 * v3;
|
||||
|
||||
GF_ASSERT(sub_0201833C(8));
|
||||
|
||||
v3 = ov25_0225523C(param1);
|
||||
|
||||
sub_020183C4(v3->unk_04, 6, &v0, 0);
|
||||
sub_020183C4(v3->unk_04, 7, &v1, 0);
|
||||
|
||||
GF_ASSERT(sub_0201833C(8));
|
||||
|
||||
sub_02006E3C(12, 30, v3->unk_04, 6, 0, 0, 1, 8);
|
||||
sub_02006E60(12, 31, v3->unk_04, 6, 0, 0, 1, 8);
|
||||
ov25_022546B8(0, 0);
|
||||
|
||||
GF_ASSERT(sub_0201833C(8));
|
||||
|
||||
ov29_02256728(v3);
|
||||
sub_0201A954(v3->unk_70);
|
||||
|
||||
GF_ASSERT(sub_0201833C(8));
|
||||
|
||||
ov29_02256ABC(v3);
|
||||
|
||||
GF_ASSERT(sub_0201833C(8));
|
||||
|
||||
sub_02019448(v3->unk_04, 7);
|
||||
|
||||
v2 = GXS_GetDispCnt();
|
||||
GXS_SetVisiblePlane(v2.visiblePlane | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ);
|
||||
ov29_022567F0(param1);
|
||||
|
||||
GF_ASSERT(sub_0201833C(8));
|
||||
}
|
||||
|
||||
static void ov29_02256908 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov29_022566C8 * v0;
|
||||
|
||||
v0 = ov25_0225523C(param1);
|
||||
|
||||
if (v0->unk_00->unk_00 == 1) {
|
||||
ov25_022558C4(v0->unk_68[0], 0);
|
||||
ov25_022558C4(v0->unk_68[1], 3);
|
||||
} else {
|
||||
ov25_022558C4(v0->unk_68[0], 1);
|
||||
ov25_022558C4(v0->unk_68[1], 2);
|
||||
}
|
||||
|
||||
ov25_02254424(1635);
|
||||
ov29_022567F0(param1);
|
||||
}
|
||||
|
||||
static void ov29_02256950 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov29_022566C8 * v0;
|
||||
|
||||
v0 = ov25_0225523C(param1);
|
||||
sub_0201ACCC(v0->unk_70);
|
||||
ov29_022567F0(param1);
|
||||
}
|
||||
|
||||
static void ov29_02256968 (u8 * param0, int param1, int param2, int param3, int param4)
|
||||
{
|
||||
int v0, v1, v2, v3, v4;
|
||||
|
||||
param3--;
|
||||
param4--;
|
||||
|
||||
v1 = param1 / 8;
|
||||
v3 = ((param1 + param3) / 8) - v1 + 1;
|
||||
v2 = param2 / 8;
|
||||
v4 = ((param2 + param4) / 8) - v2 + 1;
|
||||
v0 = (v2 * 20) + v1;
|
||||
|
||||
while (v4--) {
|
||||
DC_FlushRange(param0 + (v0 * 0x20), v3 * 0x20);
|
||||
GXS_LoadBG3Char(param0 + (v0 * 0x20), (12 + v0) * 0x20, v3 * 0x20);
|
||||
v0 += 20;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov29_022569DC (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
s32 v0, v1;
|
||||
UnkStruct_ov29_022566C8 * v2;
|
||||
|
||||
v2 = ov25_0225523C(param1);
|
||||
|
||||
if (v2->unk_00->unk_00 == 0) {
|
||||
int v3, v4;
|
||||
|
||||
v3 = v4 = 8;
|
||||
v0 = (v2->unk_00->unk_04 * 2) - (8 / 2);
|
||||
v1 = (v2->unk_00->unk_08 * 2) - (8 / 2);
|
||||
|
||||
if (v0 < 0) {
|
||||
v3 += v0;
|
||||
v0 = 0;
|
||||
}
|
||||
|
||||
if (v1 < 0) {
|
||||
v4 += v1;
|
||||
v1 = 0;
|
||||
}
|
||||
|
||||
sub_0201AE78(v2->unk_70, 0x4, v0, v1, v3, v4);
|
||||
ov29_02256968((u8 *)v2->unk_70->unk_0C, v0, v1, v3, v4);
|
||||
} else {
|
||||
v0 = v2->unk_00->unk_04 * 2;
|
||||
v1 = v2->unk_00->unk_08 * 2;
|
||||
|
||||
sub_0201AE78(v2->unk_70, 0x1, v0, v1, 2, 2);
|
||||
ov29_02256968((u8 *)v2->unk_70->unk_0C, v0, v1, 2, 2);
|
||||
}
|
||||
|
||||
ov29_022567F0(param1);
|
||||
}
|
||||
|
||||
static void ov29_02256A7C (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov29_022566C8 * v0;
|
||||
|
||||
v0 = ov25_0225523C(param1);
|
||||
|
||||
sub_0201ACCC(v0->unk_70);
|
||||
ov29_022567F0(param1);
|
||||
}
|
||||
|
||||
static void ov29_02256A94 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov29_022566C8 * v0 = ov25_0225523C(param1);
|
||||
|
||||
ov29_02256B18(v0);
|
||||
sub_02019044(v0->unk_04, 6);
|
||||
sub_02019044(v0->unk_04, 7);
|
||||
ov29_022567F0(param1);
|
||||
}
|
||||
|
||||
static void ov29_02256ABC (UnkStruct_ov29_022566C8 * param0)
|
||||
{
|
||||
static const UnkStruct_ov25_02255810 v0[] = {
|
||||
{
|
||||
{192 << FX32_SHIFT, 56 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
{
|
||||
{192 << FX32_SHIFT, 136 << FX32_SHIFT},
|
||||
3,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
},
|
||||
};
|
||||
|
||||
sub_02006EC0(12, 32, 1, 0, 0, 1, 8);
|
||||
|
||||
if (ov25_02255958(¶m0->unk_54, 12, 33, 34, 8)) {
|
||||
int v1;
|
||||
|
||||
for (v1 = 0; v1 < 2; v1++) {
|
||||
param0->unk_68[v1] = ov25_02255810(param0->unk_50, &v0[v1], ¶m0->unk_54);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ov29_02256B18 (UnkStruct_ov29_022566C8 * param0)
|
||||
{
|
||||
u32 v0;
|
||||
|
||||
for (v0 = 0; v0 < 2; v0++) {
|
||||
ov25_022558B0(param0->unk_50, param0->unk_68[v0]);
|
||||
}
|
||||
|
||||
ov25_022559B0(¶m0->unk_54);
|
||||
}
|
||||
230
src/overlay030/ov30_022561C0.c
Normal file
230
src/overlay030/ov30_022561C0.c
Normal file
@@ -0,0 +1,230 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
#include <nitro/sinit.h>
|
||||
|
||||
#include "struct_decls/struct_02018340_decl.h"
|
||||
#include "struct_decls/struct_0201CD38_decl.h"
|
||||
#include "overlay025/struct_ov25_0225424C_decl.h"
|
||||
#include "overlay025/struct_ov25_02255B34_decl.h"
|
||||
#include "overlay030/struct_ov30_022563EC_decl.h"
|
||||
|
||||
#include "struct_defs/union_02022594_020225E0.h"
|
||||
#include "overlay030/struct_ov30_022563EC_1.h"
|
||||
|
||||
#include "unk_0200D9E8.h"
|
||||
#include "unk_0201378C.h"
|
||||
#include "unk_02017E74.h"
|
||||
#include "overlay025/ov25_02253CE0.h"
|
||||
#include "overlay025/ov25_02255ACC.h"
|
||||
#include "overlay030/ov30_022563EC.h"
|
||||
|
||||
typedef struct {
|
||||
u8 unk_00;
|
||||
u8 unk_01;
|
||||
u8 unk_02;
|
||||
u8 unk_03;
|
||||
u8 unk_04;
|
||||
u8 unk_05;
|
||||
u8 unk_06;
|
||||
u32 unk_08;
|
||||
u32 unk_0C;
|
||||
UnkStruct_ov25_02255B34 * unk_10;
|
||||
UnkStruct_ov30_022563EC_1 unk_14;
|
||||
UnkStruct_ov30_022563EC * unk_24;
|
||||
UnkStruct_ov25_0225424C * unk_28;
|
||||
} UnkStruct_ov30_0225621C;
|
||||
|
||||
static void NitroStaticInit(void);
|
||||
|
||||
static BOOL ov30_022561D4(void ** param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3);
|
||||
static BOOL ov30_0225621C(UnkStruct_ov30_0225621C * param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3);
|
||||
static void ov30_02256298(UnkStruct_ov30_0225621C * param0);
|
||||
static void ov30_022562B0(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov30_022562EC(void * param0);
|
||||
static void ov30_022562F4(u32 param0, u32 param1, u32 param2, void * param3);
|
||||
static void ov30_02256310(UnkStruct_ov30_0225621C * param0, u32 param1);
|
||||
static BOOL ov30_02256324(UnkStruct_ov30_0225621C * param0);
|
||||
static BOOL ov30_02256364(UnkStruct_ov30_0225621C * param0);
|
||||
static BOOL ov30_022563B8(UnkStruct_ov30_0225621C * param0);
|
||||
|
||||
static const UnkUnion_020225E0 Unk_ov30_02256678[] = {
|
||||
{0x10, 0xAF, 0x10, 0xCF}
|
||||
};
|
||||
|
||||
static void NitroStaticInit (void)
|
||||
{
|
||||
ov25_02254238(ov30_022561D4, ov30_022562EC);
|
||||
}
|
||||
|
||||
static BOOL ov30_022561D4 (void ** param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3)
|
||||
{
|
||||
UnkStruct_ov30_0225621C * v0 = (UnkStruct_ov30_0225621C *)sub_02018144(8, sizeof(UnkStruct_ov30_0225621C));
|
||||
|
||||
if (v0 != NULL) {
|
||||
if (ov30_0225621C(v0, param1, param2, param3)) {
|
||||
if (sub_0200D9E8(ov30_022562B0, v0, 1) != NULL) {
|
||||
*param0 = v0;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub_020181C4(v0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov30_0225621C (UnkStruct_ov30_0225621C * param0, UnkStruct_ov25_0225424C * param1, UnkStruct_02018340 * param2, u32 param3)
|
||||
{
|
||||
if (ov30_022563EC(&(param0->unk_24), &(param0->unk_14), param2)) {
|
||||
param0->unk_00 = 0;
|
||||
param0->unk_01 = 0;
|
||||
param0->unk_02 = 0;
|
||||
param0->unk_03 = 1;
|
||||
param0->unk_06 = 0;
|
||||
param0->unk_14.unk_0C = 0;
|
||||
|
||||
sub_02013880(&(param0->unk_14.unk_00));
|
||||
|
||||
if (param0->unk_14.unk_00.hour >= 24) {
|
||||
param0->unk_14.unk_00.hour %= 24;
|
||||
}
|
||||
|
||||
if (param0->unk_14.unk_00.minute >= 60) {
|
||||
param0->unk_14.unk_00.hour %= 60;
|
||||
}
|
||||
|
||||
param0->unk_05 = param0->unk_14.unk_00.minute;
|
||||
param0->unk_10 = ov25_02255ACC(Unk_ov30_02256678, NELEMS(Unk_ov30_02256678), ov30_022562F4, param0, 8);
|
||||
|
||||
if (param0->unk_10 == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
param0->unk_28 = param1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov30_02256298 (UnkStruct_ov30_0225621C * param0)
|
||||
{
|
||||
ov30_02256444(param0->unk_24);
|
||||
ov25_02255B34(param0->unk_10);
|
||||
sub_020181C4(param0);
|
||||
}
|
||||
|
||||
static void ov30_022562B0 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
static BOOL(*const v0[])(UnkStruct_ov30_0225621C *) = {
|
||||
ov30_02256324,
|
||||
ov30_02256364,
|
||||
ov30_022563B8
|
||||
};
|
||||
|
||||
UnkStruct_ov30_0225621C * v1 = (UnkStruct_ov30_0225621C *)param1;
|
||||
|
||||
if (v1->unk_00 < NELEMS(v0)) {
|
||||
ov25_02254518(v1->unk_28, v1->unk_10);
|
||||
|
||||
if (v0[v1->unk_00](v1)) {
|
||||
ov30_02256298(v1);
|
||||
sub_0200DA58(param0);
|
||||
ov25_02254260(v1->unk_28);
|
||||
}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
static void ov30_022562EC (void * param0)
|
||||
{
|
||||
((UnkStruct_ov30_0225621C *)param0)->unk_02 = 1;
|
||||
}
|
||||
|
||||
static void ov30_022562F4 (u32 param0, u32 param1, u32 param2, void * param3)
|
||||
{
|
||||
UnkStruct_ov30_0225621C * v0 = (UnkStruct_ov30_0225621C *)param3;
|
||||
|
||||
switch (param2) {
|
||||
case 1:
|
||||
v0->unk_14.unk_0C = 1;
|
||||
v0->unk_06 = 1;
|
||||
break;
|
||||
case 0:
|
||||
v0->unk_14.unk_0C = 0;
|
||||
v0->unk_06 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ov30_02256310 (UnkStruct_ov30_0225621C * param0, u32 param1)
|
||||
{
|
||||
if (param0->unk_02 == 0) {
|
||||
param0->unk_00 = param1;
|
||||
} else {
|
||||
param0->unk_00 = 2;
|
||||
}
|
||||
|
||||
param0->unk_01 = 0;
|
||||
}
|
||||
|
||||
static BOOL ov30_02256324 (UnkStruct_ov30_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
ov30_02256464(param0->unk_24, 0);
|
||||
param0->unk_01++;
|
||||
break;
|
||||
case 1:
|
||||
if (ov30_02256488(param0->unk_24, 0)) {
|
||||
ov25_0225424C(param0->unk_28);
|
||||
ov30_02256310(param0, 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov30_02256364 (UnkStruct_ov30_0225621C * param0)
|
||||
{
|
||||
if (param0->unk_02) {
|
||||
ov30_02256310(param0, 2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (param0->unk_06) {
|
||||
param0->unk_06 = 0;
|
||||
ov30_02256464(param0->unk_24, 2);
|
||||
}
|
||||
|
||||
if (ov30_02256488(param0->unk_24, 1)) {
|
||||
param0->unk_05 = param0->unk_14.unk_00.minute;
|
||||
sub_02013880(&(param0->unk_14.unk_00));
|
||||
|
||||
if (param0->unk_05 != param0->unk_14.unk_00.minute) {
|
||||
ov30_02256464(param0->unk_24, 1);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL ov30_022563B8 (UnkStruct_ov30_0225621C * param0)
|
||||
{
|
||||
switch (param0->unk_01) {
|
||||
case 0:
|
||||
ov30_02256464(param0->unk_24, 3);
|
||||
param0->unk_01++;
|
||||
break;
|
||||
case 1:
|
||||
if (ov30_02256494(param0->unk_24)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
246
src/overlay030/ov30_022563EC.c
Normal file
246
src/overlay030/ov30_022563EC.c
Normal file
@@ -0,0 +1,246 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "struct_decls/struct_02018340_decl.h"
|
||||
#include "struct_decls/struct_0201CD38_decl.h"
|
||||
#include "overlay025/struct_ov25_02255224_decl.h"
|
||||
#include "overlay025/struct_ov25_022555E8_decl.h"
|
||||
#include "overlay025/struct_ov25_022558C4_decl.h"
|
||||
#include "overlay030/struct_ov30_022563EC_decl.h"
|
||||
|
||||
#include "overlay025/struct_ov25_0225517C.h"
|
||||
#include "overlay025/struct_ov25_02255810.h"
|
||||
#include "overlay025/struct_ov25_02255958.h"
|
||||
#include "overlay030/struct_ov30_022563EC_1.h"
|
||||
#include "overlay097/struct_ov97_0222DB78.h"
|
||||
|
||||
#include "unk_02006E3C.h"
|
||||
#include "unk_0200D9E8.h"
|
||||
#include "unk_02017E74.h"
|
||||
#include "unk_02018340.h"
|
||||
#include "overlay025/ov25_02254560.h"
|
||||
#include "overlay025/ov25_02255090.h"
|
||||
#include "overlay025/ov25_02255540.h"
|
||||
#include "overlay030/ov30_022563EC.h"
|
||||
|
||||
struct UnkStruct_ov30_022563EC_t {
|
||||
const UnkStruct_ov30_022563EC_1 * unk_00;
|
||||
UnkStruct_02018340 * unk_04;
|
||||
u32 unk_08[10];
|
||||
UnkStruct_0201CD38 * unk_30;
|
||||
UnkStruct_ov25_02255958 unk_34;
|
||||
UnkStruct_ov25_022555E8 * unk_48;
|
||||
UnkStruct_ov25_022558C4 * unk_4C[2];
|
||||
};
|
||||
|
||||
static void ov30_02256460(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov30_022564A0(UnkStruct_ov25_02255224 * param0);
|
||||
static void ov30_022564B4(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov30_02256548(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov30_02256568(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov30_02256594(UnkStruct_0201CD38 * param0, void * param1);
|
||||
static void ov30_022565B0(UnkStruct_ov30_022563EC * param0);
|
||||
static BOOL ov30_022565F4(UnkStruct_ov30_022563EC * param0);
|
||||
static void ov30_02256658(UnkStruct_ov30_022563EC * param0);
|
||||
|
||||
BOOL ov30_022563EC (UnkStruct_ov30_022563EC ** param0, const UnkStruct_ov30_022563EC_1 * param1, UnkStruct_02018340 * param2)
|
||||
{
|
||||
UnkStruct_ov30_022563EC * v0 = (UnkStruct_ov30_022563EC *)sub_02018144(8, sizeof(UnkStruct_ov30_022563EC));
|
||||
|
||||
if (v0 != NULL) {
|
||||
NNSG2dScreenData * v1;
|
||||
void * v2;
|
||||
|
||||
ov25_02255090(v0->unk_08, 8);
|
||||
|
||||
v0->unk_00 = param1;
|
||||
v0->unk_04 = ov25_02254674();
|
||||
v0->unk_48 = ov25_02254664();
|
||||
|
||||
if (ov30_022565F4(v0) == 0) {
|
||||
sub_020181C4(v0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
v0->unk_30 = sub_0200D9E8(ov30_02256460, v0, 3);
|
||||
*param0 = v0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ov30_02256444 (UnkStruct_ov30_022563EC * param0)
|
||||
{
|
||||
if (param0 != NULL) {
|
||||
ov30_02256658(param0);
|
||||
|
||||
if (param0->unk_30) {
|
||||
sub_0200DA58(param0->unk_30);
|
||||
}
|
||||
|
||||
sub_020181C4(param0);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov30_02256460 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static const UnkStruct_ov25_0225517C Unk_ov30_022566C4[] = {
|
||||
{0x0, ov30_022564B4, 0x0},
|
||||
{0x1, ov30_02256548, 0x0},
|
||||
{0x2, ov30_02256568, 0x0},
|
||||
{0x3, ov30_02256594, 0x0},
|
||||
{0x0, NULL, 0x0}
|
||||
};
|
||||
|
||||
void ov30_02256464 (UnkStruct_ov30_022563EC * param0, u32 param1)
|
||||
{
|
||||
ov25_0225517C(Unk_ov30_022566C4, param1, param0, param0->unk_00, param0->unk_08, 2, 8);
|
||||
}
|
||||
|
||||
BOOL ov30_02256488 (UnkStruct_ov30_022563EC * param0, u32 param1)
|
||||
{
|
||||
return ov25_02255130(param0->unk_08, param1);
|
||||
}
|
||||
|
||||
BOOL ov30_02256494 (UnkStruct_ov30_022563EC * param0)
|
||||
{
|
||||
return ov25_02255154(param0->unk_08);
|
||||
}
|
||||
|
||||
static void ov30_022564A0 (UnkStruct_ov25_02255224 * param0)
|
||||
{
|
||||
UnkStruct_ov30_022563EC * v0 = ov25_0225523C(param0);
|
||||
|
||||
ov25_02255224(v0->unk_08, param0);
|
||||
}
|
||||
|
||||
static void ov30_022564B4 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
static const UnkStruct_ov97_0222DB78 v0 = {
|
||||
0,
|
||||
0,
|
||||
0x800,
|
||||
0,
|
||||
1,
|
||||
GX_BG_COLORMODE_16,
|
||||
GX_BG_SCRBASE_0x7000,
|
||||
GX_BG_CHARBASE_0x00000,
|
||||
GX_BG_EXTPLTT_01,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
};
|
||||
GXSDispCnt v1;
|
||||
UnkStruct_ov30_022563EC * v2;
|
||||
|
||||
v2 = ov25_0225523C(param1);
|
||||
|
||||
sub_020183C4(v2->unk_04, 6, &v0, 0);
|
||||
sub_02006E3C(12, 23, v2->unk_04, 6, 0, 0, 1, 8);
|
||||
sub_02006E60(12, 26, v2->unk_04, 6, 0, 0, 1, 8);
|
||||
|
||||
ov25_022546B8(0, 0);
|
||||
ov30_022565B0(v2);
|
||||
|
||||
sub_02019448(v2->unk_04, 6);
|
||||
|
||||
v1 = GXS_GetDispCnt();
|
||||
GXS_SetVisiblePlane(v1.visiblePlane | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ);
|
||||
ov30_022564A0(param1);
|
||||
}
|
||||
|
||||
static void ov30_02256548 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov30_022563EC * v0 = ov25_0225523C(param1);
|
||||
|
||||
ov30_022565B0(v0);
|
||||
sub_02019448(v0->unk_04, 6);
|
||||
ov30_022564A0(param1);
|
||||
}
|
||||
|
||||
static void ov30_02256568 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov30_022563EC * v0 = ov25_0225523C(param1);
|
||||
|
||||
if (v0->unk_00->unk_0C) {
|
||||
ov25_022546F0(0, 0);
|
||||
} else {
|
||||
ov25_022546B8(0, 0);
|
||||
}
|
||||
|
||||
ov30_022564A0(param1);
|
||||
}
|
||||
|
||||
static void ov30_02256594 (UnkStruct_0201CD38 * param0, void * param1)
|
||||
{
|
||||
UnkStruct_ov30_022563EC * v0 = ov25_0225523C(param1);
|
||||
|
||||
sub_02019044(v0->unk_04, 6);
|
||||
ov30_022564A0(param1);
|
||||
}
|
||||
|
||||
static void ov30_022565B0 (UnkStruct_ov30_022563EC * param0)
|
||||
{
|
||||
u32 v0;
|
||||
|
||||
CP_SetDiv32_32(param0->unk_00->unk_00.hour, 10);
|
||||
|
||||
v0 = 60 + ((param0->unk_00->unk_00.hour % 12) * 30) + (param0->unk_00->unk_00.minute / 2);
|
||||
ov25_022558C4(param0->unk_4C[0], v0);
|
||||
|
||||
v0 = 0 + param0->unk_00->unk_00.minute;
|
||||
ov25_022558C4(param0->unk_4C[1], v0);
|
||||
}
|
||||
|
||||
static BOOL ov30_022565F4 (UnkStruct_ov30_022563EC * param0)
|
||||
{
|
||||
static const UnkStruct_ov25_02255810 v0[] = {
|
||||
{
|
||||
{116 << FX32_SHIFT, 100 << FX32_SHIFT},
|
||||
60,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1
|
||||
},
|
||||
{
|
||||
{116 << FX32_SHIFT, 100 << FX32_SHIFT},
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1
|
||||
},
|
||||
};
|
||||
|
||||
sub_02006EC0(12, 29, 1, 0, 0, 1, 8);
|
||||
|
||||
if (ov25_02255958(¶m0->unk_34, 12, 27, 28, 8)) {
|
||||
int v1;
|
||||
|
||||
for (v1 = 0; v1 < 2; v1++) {
|
||||
param0->unk_4C[v1] = ov25_02255810(param0->unk_48, &v0[v1], ¶m0->unk_34);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void ov30_02256658 (UnkStruct_ov30_022563EC * param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
ov25_022559B0(&(param0->unk_34));
|
||||
|
||||
for (v0 = 0; v0 < 2; v0++) {
|
||||
ov25_022558B0(param0->unk_48, param0->unk_4C[v0]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user