Match files in overlays 26, 27, 29, 30

This commit is contained in:
Nomura
2022-12-31 13:36:51 +01:00
parent fcac640eb5
commit c199fdccfb
25 changed files with 2713 additions and 4959 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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;
}

View 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(&param0[v1], &param1[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);
}

View 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;
}
}

View 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], &param0->unk_48);
}
param0->unk_60[8] = ov25_02255810(param0->unk_5C, &v0[v1], &param0->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]);
}
}

View 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;
}

View 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(&param0->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], &param0->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(&param0->unk_54);
}

View 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;
}

View 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(&param0->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], &param0->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]);
}
}