diff --git a/asm/overlay026/ov26_022561C0.inc b/asm/overlay026/ov26_022561C0.inc deleted file mode 100644 index 600b5dbc9b..0000000000 --- a/asm/overlay026/ov26_022561C0.inc +++ /dev/null @@ -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 diff --git a/asm/overlay026/ov26_022561C0.s b/asm/overlay026/ov26_022561C0.s deleted file mode 100644 index a57f091abc..0000000000 --- a/asm/overlay026/ov26_022561C0.s +++ /dev/null @@ -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 diff --git a/asm/overlay026/ov26_02256404.inc b/asm/overlay026/ov26_02256404.inc deleted file mode 100644 index 5f77cd75da..0000000000 --- a/asm/overlay026/ov26_02256404.inc +++ /dev/null @@ -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 diff --git a/asm/overlay026/ov26_02256404.s b/asm/overlay026/ov26_02256404.s deleted file mode 100644 index 1811933453..0000000000 --- a/asm/overlay026/ov26_02256404.s +++ /dev/null @@ -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 - diff --git a/asm/overlay027/ov27_022561C0.inc b/asm/overlay027/ov27_022561C0.inc deleted file mode 100644 index e3718d4271..0000000000 --- a/asm/overlay027/ov27_022561C0.inc +++ /dev/null @@ -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 diff --git a/asm/overlay027/ov27_022561C0.s b/asm/overlay027/ov27_022561C0.s deleted file mode 100644 index b30d1fedf5..0000000000 --- a/asm/overlay027/ov27_022561C0.s +++ /dev/null @@ -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 - diff --git a/asm/overlay027/ov27_0225680C.inc b/asm/overlay027/ov27_0225680C.inc deleted file mode 100644 index c657f5b084..0000000000 --- a/asm/overlay027/ov27_0225680C.inc +++ /dev/null @@ -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 diff --git a/asm/overlay027/ov27_0225680C.s b/asm/overlay027/ov27_0225680C.s deleted file mode 100644 index ba9c7323a1..0000000000 --- a/asm/overlay027/ov27_0225680C.s +++ /dev/null @@ -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 - diff --git a/asm/overlay029/ov29_022561C0.inc b/asm/overlay029/ov29_022561C0.inc deleted file mode 100644 index 1c1a8c691e..0000000000 --- a/asm/overlay029/ov29_022561C0.inc +++ /dev/null @@ -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 diff --git a/asm/overlay029/ov29_022561C0.s b/asm/overlay029/ov29_022561C0.s deleted file mode 100644 index ecc645e088..0000000000 --- a/asm/overlay029/ov29_022561C0.s +++ /dev/null @@ -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 diff --git a/asm/overlay029/ov29_022566C8.inc b/asm/overlay029/ov29_022566C8.inc deleted file mode 100644 index 1cdcadbad8..0000000000 --- a/asm/overlay029/ov29_022566C8.inc +++ /dev/null @@ -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 diff --git a/asm/overlay029/ov29_022566C8.s b/asm/overlay029/ov29_022566C8.s deleted file mode 100644 index 487e0680f2..0000000000 --- a/asm/overlay029/ov29_022566C8.s +++ /dev/null @@ -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 - diff --git a/asm/overlay030/ov30_022561C0.inc b/asm/overlay030/ov30_022561C0.inc deleted file mode 100644 index a549b8b110..0000000000 --- a/asm/overlay030/ov30_022561C0.inc +++ /dev/null @@ -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 diff --git a/asm/overlay030/ov30_022561C0.s b/asm/overlay030/ov30_022561C0.s deleted file mode 100644 index 49ae794ba4..0000000000 --- a/asm/overlay030/ov30_022561C0.s +++ /dev/null @@ -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 diff --git a/asm/overlay030/ov30_022563EC.inc b/asm/overlay030/ov30_022563EC.inc deleted file mode 100644 index a4fe05663d..0000000000 --- a/asm/overlay030/ov30_022563EC.inc +++ /dev/null @@ -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 diff --git a/asm/overlay030/ov30_022563EC.s b/asm/overlay030/ov30_022563EC.s deleted file mode 100644 index bfdc6fe597..0000000000 --- a/asm/overlay030/ov30_022563EC.s +++ /dev/null @@ -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 - diff --git a/main.lsf b/main.lsf index 5e2b20dd27..42fc95c182 100644 --- a/main.lsf +++ b/main.lsf @@ -1315,15 +1315,15 @@ Overlay overlay25 Overlay overlay26 { After overlay25 - Object asm/overlay026/ov26_022561C0.o - Object asm/overlay026/ov26_02256404.o + Object src/overlay026/ov26_022561C0.o + Object src/overlay026/ov26_02256404.o } Overlay overlay27 { After overlay25 - Object asm/overlay027/ov27_022561C0.o - Object asm/overlay027/ov27_0225680C.o + Object src/overlay027/ov27_022561C0.o + Object src/overlay027/ov27_0225680C.o } Overlay overlay28 @@ -1337,15 +1337,15 @@ Overlay overlay28 Overlay overlay29 { After overlay25 - Object asm/overlay029/ov29_022561C0.o - Object asm/overlay029/ov29_022566C8.o + Object src/overlay029/ov29_022561C0.o + Object src/overlay029/ov29_022566C8.o } Overlay overlay30 { After overlay25 - Object asm/overlay030/ov30_022561C0.o - Object asm/overlay030/ov30_022563EC.o + Object src/overlay030/ov30_022561C0.o + Object src/overlay030/ov30_022563EC.o } Overlay overlay31 diff --git a/src/overlay026/ov26_022561C0.c b/src/overlay026/ov26_022561C0.c new file mode 100644 index 0000000000..db1f8ff431 --- /dev/null +++ b/src/overlay026/ov26_022561C0.c @@ -0,0 +1,233 @@ +#include +#include +#include + +#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; +} diff --git a/src/overlay026/ov26_02256404.c b/src/overlay026/ov26_02256404.c new file mode 100644 index 0000000000..d4c74f959a --- /dev/null +++ b/src/overlay026/ov26_02256404.c @@ -0,0 +1,203 @@ +#include +#include + +#include "struct_decls/struct_02018340_decl.h" +#include "struct_decls/struct_0201CD38_decl.h" +#include "overlay025/struct_ov25_02255224_decl.h" +#include "overlay026/struct_ov26_02256404_decl.h" + +#include "overlay025/struct_ov25_0225517C.h" +#include "overlay026/struct_ov26_02256404_1.h" +#include "overlay097/struct_ov97_0222DB78.h" + +#include "unk_02006E3C.h" +#include "unk_02017E74.h" +#include "unk_02018340.h" +#include "overlay025/ov25_02254560.h" +#include "overlay025/ov25_02255090.h" +#include "overlay026/ov26_02256404.h" + +struct UnkStruct_ov26_02256404_t { + const UnkStruct_ov26_02256404_1 * unk_00; + UnkStruct_02018340 * unk_04; + u32 unk_08[10]; + u16 unk_30[360]; +}; + +static void ov26_0225646C(const u16 * param0, u16 * param1); +static void ov26_022564E4(UnkStruct_ov25_02255224 * param0); +static void ov26_022564F8(UnkStruct_0201CD38 * param0, void * param1); +static void ov26_0225658C(UnkStruct_0201CD38 * param0, void * param1); +static void ov26_022565AC(UnkStruct_0201CD38 * param0, void * param1); +static void ov26_022565D8(UnkStruct_0201CD38 * param0, void * param1); +static void ov26_022565F4(UnkStruct_ov26_02256404 * param0); + +BOOL ov26_02256404 (UnkStruct_ov26_02256404 ** param0, const UnkStruct_ov26_02256404_1 * param1, UnkStruct_02018340 * param2) +{ + UnkStruct_ov26_02256404 * v0 = (UnkStruct_ov26_02256404 *)sub_02018144(8, sizeof(UnkStruct_ov26_02256404)); + + if (v0 != NULL) { + NNSG2dScreenData * v1; + void * v2; + + ov25_02255090(v0->unk_08, 8); + + v0->unk_00 = param1; + v0->unk_04 = ov25_02254674(); + + v2 = sub_02006F6C(12, 25, 1, &v1, 8); + + if (v2 == NULL) { + sub_020181C4(v0); + return 0; + } + + ov26_0225646C((const u16 *)(v1->rawData), v0->unk_30); + sub_020181C4(v2); + + *param0 = v0; + return 1; + } + + return 0; +} + +static void ov26_0225646C (const u16 * param0, u16 * param1) +{ + int v0, v1; + + v1 = 288; + + for (v0 = 0; v0 < 9; v0++) { + MI_CpuCopy16(param0, param1, 32 * 2); + MI_CpuCopy16(¶m0[v1], ¶m1[32], 8 * 2); + + param0 += 32; + param1 += (4 * 10); + + v1 = (v1 - 32 + 8); + } +} + +void ov26_0225649C (UnkStruct_ov26_02256404 * param0) +{ + if (param0 != NULL) { + sub_020181C4(param0); + } +} + +static const UnkStruct_ov25_0225517C Unk_ov26_02256744[] = { + {0x0, ov26_022564F8, 0x0}, + {0x1, ov26_0225658C, 0x0}, + {0x2, ov26_022565AC, 0x0}, + {0x3, ov26_022565D8, 0x0}, + {0x0, NULL, 0x0} +}; + +void ov26_022564A8 (UnkStruct_ov26_02256404 * param0, u32 param1) +{ + ov25_0225517C(Unk_ov26_02256744, param1, param0, param0->unk_00, param0->unk_08, 2, 8); +} + +BOOL ov26_022564CC (UnkStruct_ov26_02256404 * param0, u32 param1) +{ + return ov25_02255130(param0->unk_08, param1); +} + +BOOL ov26_022564D8 (UnkStruct_ov26_02256404 * param0) +{ + return ov25_02255154(param0->unk_08); +} + +static void ov26_022564E4 (UnkStruct_ov25_02255224 * param0) +{ + UnkStruct_ov26_02256404 * v0 = ov25_0225523C(param0); + ov25_02255224(v0->unk_08, param0); +} + +static void ov26_022564F8 (UnkStruct_0201CD38 * param0, void * param1) +{ + static const UnkStruct_ov97_0222DB78 v0 = { + 0, + 0, + 0x800, + 0, + 1, + GX_BG_COLORMODE_16, + GX_BG_SCRBASE_0x7000, + GX_BG_CHARBASE_0x00000, + GX_BG_EXTPLTT_01, + 2, + 0, + 0, + 0 + }; + GXSDispCnt v1; + UnkStruct_ov26_02256404 * v2; + + v2 = ov25_0225523C(param1); + + sub_020183C4(v2->unk_04, 6, &v0, 0); + sub_02006E3C(12, 23, v2->unk_04, 6, 0, 0, 1, 8); + sub_02006E60(12, 24, v2->unk_04, 6, 0, 0, 1, 8); + + ov25_022546B8(0, 0); + ov26_022565F4(v2); + + sub_02019448(v2->unk_04, 6); + + v1 = GXS_GetDispCnt(); + GXS_SetVisiblePlane(v1.visiblePlane | GX_PLANEMASK_BG2); + ov26_022564E4(param1); +} + +static void ov26_0225658C (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov26_02256404 * v0 = ov25_0225523C(param1); + + ov26_022565F4(v0); + sub_02019448(v0->unk_04, 6); + ov26_022564E4(param1); +} + +static void ov26_022565AC (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov26_02256404 * v0 = ov25_0225523C(param1); + + if (v0->unk_00->unk_0C) { + ov25_022546F0(0, 0); + } else { + ov25_022546B8(0, 0); + } + + ov26_022564E4(param1); +} + +static void ov26_022565D8 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov26_02256404 * v0 = ov25_0225523C(param1); + + sub_02019044(v0->unk_04, 6); + ov26_022564E4(param1); +} + +static void ov26_022565F4 (UnkStruct_ov26_02256404 * param0) +{ + u32 v0, v1; + + CP_SetDiv32_32(param0->unk_00->unk_00.hour, 10); + + v0 = CP_GetDivResult32(); + v1 = CP_GetDivRemainder32(); + + sub_020198E8(param0->unk_04, 6, 3, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9); + sub_020198E8(param0->unk_04, 6, (3 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9); + + CP_SetDiv32_32(param0->unk_00->unk_00.minute, 10); + + v0 = CP_GetDivResult32(); + v1 = CP_GetDivRemainder32(); + + sub_020198E8(param0->unk_04, 6, 15, 7, 4, 9, param0->unk_30, 4 * v0, 0, (4 * 10), 9); + sub_020198E8(param0->unk_04, 6, (15 + (4 + 1)), 7, 4, 9, param0->unk_30, 4 * v1, 0, (4 * 10), 9); +} diff --git a/src/overlay027/ov27_022561C0.c b/src/overlay027/ov27_022561C0.c new file mode 100644 index 0000000000..06cd278b38 --- /dev/null +++ b/src/overlay027/ov27_022561C0.c @@ -0,0 +1,465 @@ +#include +#include +#include + +#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; + } +} diff --git a/src/overlay027/ov27_0225680C.c b/src/overlay027/ov27_0225680C.c new file mode 100644 index 0000000000..dad5ec16ab --- /dev/null +++ b/src/overlay027/ov27_0225680C.c @@ -0,0 +1,587 @@ +#include +#include + +#include "struct_decls/struct_02018340_decl.h" +#include "struct_decls/struct_0201CD38_decl.h" +#include "overlay025/struct_ov25_02255224_decl.h" +#include "overlay025/struct_ov25_022555E8_decl.h" +#include "overlay025/struct_ov25_022558C4_decl.h" +#include "overlay027/struct_ov27_0225680C_decl.h" + +#include "overlay025/struct_ov25_0225517C.h" +#include "overlay025/struct_ov25_02255810.h" +#include "overlay025/struct_ov25_02255958.h" +#include "overlay027/struct_ov27_0225680C_1.h" +#include "overlay097/struct_ov97_0222DB78.h" + +#include "unk_02006E3C.h" +#include "unk_0200D9E8.h" +#include "unk_02017E74.h" +#include "unk_02018340.h" +#include "unk_0201CCF0.h" +#include "overlay025/ov25_02253CE0.h" +#include "overlay025/ov25_02254560.h" +#include "overlay025/ov25_02255090.h" +#include "overlay025/ov25_02255540.h" +#include "overlay027/ov27_0225680C.h" + +typedef struct { + u16 unk_00; + u8 unk_02; + u8 unk_03; +} UnkStruct_ov27_02256E90; + +struct UnkStruct_ov27_0225680C_t { + const UnkStruct_ov27_0225680C_1 * unk_00; + UnkStruct_02018340 * unk_04; + u32 unk_08[10]; + NNSG2dOamManagerInstance * unk_30; + UnkStruct_ov25_02255958 unk_34; + UnkStruct_ov25_02255958 unk_48; + UnkStruct_ov25_022555E8 * unk_5C; + UnkStruct_ov25_022558C4 * unk_60[9]; + UnkStruct_0201CD38 * unk_84; +}; + +static void ov27_022568A8(UnkStruct_0201CD38 * param0, void * param1); +static void ov27_022568B4(UnkStruct_ov27_0225680C * param0); +static void ov27_02256A04(UnkStruct_ov25_02255224 * param0); +static void ov27_02256A18(UnkStruct_0201CD38 * param0, void * param1); +static BOOL ov27_02256AEC(UnkStruct_ov27_0225680C * param0); +static void ov27_02256B24(UnkStruct_ov27_0225680C * param0, const UnkStruct_ov27_0225680C_1 * param1); +static void ov27_02256B80(UnkStruct_0201CD38 * param0, void * param1); +static void ov27_02256BB0(UnkStruct_0201CD38 * param0, void * param1); +static void ov27_02256BE8(UnkStruct_0201CD38 * param0, void * param1); +static void ov27_02256C2C(UnkStruct_0201CD38 * param0, void * param1); +static void ov27_02256C80(UnkStruct_0201CD38 * param0, void * param1); +static void ov27_02256D00(UnkStruct_0201CD38 * param0, void * param1); +static void ov27_02256D80(UnkStruct_0201CD38 * param0, void * param1); +static void ov27_02256E1C(UnkStruct_0201CD38 * param0, void * param1); +static BOOL ov27_02256E90(UnkStruct_ov27_02256E90 * param0, u32 param1); +static void ov27_02256EC4(UnkStruct_02018340 * param0, u32 param1); +static void ov27_02256F24(UnkStruct_0201CD38 * param0, void * param1); +static void ov27_02256F7C(UnkStruct_ov27_0225680C * param0); +struct UnkStruct_ov25_02253CE0_t * sub_0203D158(void); + +BOOL ov27_0225680C (UnkStruct_ov27_0225680C ** param0, const UnkStruct_ov27_0225680C_1 * param1, UnkStruct_02018340 * param2) +{ + UnkStruct_ov27_0225680C * v0 = (UnkStruct_ov27_0225680C *)sub_02018144(8, sizeof(UnkStruct_ov27_0225680C)); + + if (v0 != NULL) { + v0->unk_00 = param1; + v0->unk_5C = ov25_02254664(); + v0->unk_04 = sub_02018340(8); + + if (v0->unk_04 == NULL) { + return 0; + } + + if (ov25_02255958(&v0->unk_34, 12, 18, 19, 8)) { + if (ov25_02255958(&v0->unk_48, 12, 3, 4, 8)) { + ov25_02255090(v0->unk_08, 8); + v0->unk_84 = NULL; + *param0 = v0; + return 1; + } else { + ov25_022559B0(&(v0->unk_34)); + } + } + } + + return 0; +} + +void ov27_02256890 (UnkStruct_ov27_0225680C * param0) +{ + if (param0) { + if (param0->unk_04) { + sub_020181C4(param0->unk_04); + } + + sub_020181C4(param0); + } +} + +static void ov27_022568A8 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov27_0225680C * v0 = (UnkStruct_ov27_0225680C *)param1; + ov27_022568B4(v0); +} + +static void ov27_022568B4 (UnkStruct_ov27_0225680C * param0) +{ + u32 v0, v1; + + CP_SetDiv32_32(param0->unk_00->unk_14, 10); + + v0 = CP_GetDivResult32(); + v1 = CP_GetDivRemainder32(); + + ov25_022558C4(param0->unk_60[0], 0 + v0); + ov25_022558C4(param0->unk_60[1], 0 + v1); + + CP_SetDiv32_32(param0->unk_00->unk_10, 10); + + v0 = CP_GetDivResult32(); + v1 = CP_GetDivRemainder32(); + + ov25_022558C4(param0->unk_60[2], 0 + v0); + ov25_022558C4(param0->unk_60[3], 0 + v1); + + CP_SetDiv32_32(param0->unk_00->unk_0C, 10); + + v0 = CP_GetDivResult32(); + v1 = CP_GetDivRemainder32(); + + ov25_022558C4(param0->unk_60[4], 0 + v0); + ov25_022558C4(param0->unk_60[5], 0 + v1); + + CP_SetDiv32_32(param0->unk_00->unk_08, 10); + + v0 = CP_GetDivResult32(); + v1 = CP_GetDivRemainder32(); + + ov25_022558C4(param0->unk_60[6], 0 + v0); + ov25_022558C4(param0->unk_60[7], 0 + v1); +} + +static const UnkStruct_ov25_0225517C Unk_ov27_02256FF0[] = { + {0x0, ov27_02256A18, 0x0}, + {0x1, ov27_02256B80, sizeof(UnkStruct_ov27_02256E90)}, + {0x3, ov27_02256F24, 0x0}, + {0x0, NULL, 0x0} +}; + +void ov27_022569C8 (UnkStruct_ov27_0225680C * param0, u32 param1) +{ + ov25_0225517C(Unk_ov27_02256FF0, param1, param0, param0->unk_00, param0->unk_08, 2, 8); +} + +BOOL ov27_022569EC (UnkStruct_ov27_0225680C * param0, u32 param1) +{ + return ov25_02255130(param0->unk_08, param1); +} + +BOOL ov27_022569F8 (UnkStruct_ov27_0225680C * param0) +{ + return ov25_02255154(param0->unk_08); +} + +static void ov27_02256A04 (UnkStruct_ov25_02255224 * param0) +{ + UnkStruct_ov27_0225680C * v0 = ov25_0225523C(param0); + ov25_02255224(v0->unk_08, param0); +} + +static void ov27_02256A18 (UnkStruct_0201CD38 * param0, void * param1) +{ + static const UnkStruct_ov97_0222DB78 v0 = { + 0, + 0, + 0x800, + 0, + 1, + GX_BG_COLORMODE_16, + GX_BG_SCRBASE_0x7000, + GX_BG_CHARBASE_0x00000, + GX_BG_EXTPLTT_01, + 2, + 0, + 0, + 0 + }; + GXSDispCnt v1; + UnkStruct_ov27_0225680C * v2 = ov25_0225523C(param1); + + sub_020183C4(v2->unk_04, 6, &v0, 0); + sub_02006E3C(12, 21, v2->unk_04, 6, 0, 0, 1, 8); + sub_02006E60(12, 20, v2->unk_04, 6, 0, 0, 1, 8); + + ov25_022546B8(0, 0); + sub_02019448(v2->unk_04, 6); + + { + UnkStruct_ov27_0225680C * v3 = ov25_0225523C(param1); + const UnkStruct_ov27_0225680C_1 * v4 = ov25_02255240(param1); + + ov27_02256AEC(v3); + ov27_02256B24(v3, v4); + + v2->unk_84 = sub_0200D9E8(ov27_022568A8, v2, 2 + 1); + + ov27_022568B4(v3); + + if (v4->unk_00) { + ov27_022569C8(v3, 1); + } + } + + v1 = GXS_GetDispCnt(); + + GXS_SetVisiblePlane(v1.visiblePlane | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ); + ov27_02256A04(param1); +} + +static BOOL ov27_02256AEC (UnkStruct_ov27_0225680C * param0) +{ + sub_02006EC0(12, 2, 1, 0, 0, 1, 8); + sub_02006EC0(12, 22, 1, 80 * 0x20, 0, 1, 8); + + return 1; +} + +static void ov27_02256B24 (UnkStruct_ov27_0225680C * param0, const UnkStruct_ov27_0225680C_1 * param1) +{ + static const UnkStruct_ov25_02255810 v0[] = { + { + {32 << FX32_SHIFT, 40 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 0 + }, + { + {(32 + 16) << FX32_SHIFT, 40 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 0 + }, + { + {80 << FX32_SHIFT, 40 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 0 + }, + { + {(80 + 16) << FX32_SHIFT, 40 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 0 + }, + { + {128 << FX32_SHIFT, 40 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 0 + }, + { + {(128 + 16) << FX32_SHIFT, 40 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 0 + }, + { + {176 << FX32_SHIFT, 40 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 0 + }, + { + {(176 + 16) << FX32_SHIFT, 40 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 0 + }, + { + {112 << FX32_SHIFT, 96 << FX32_SHIFT}, + 10, + 0, + 2, + 2, + 0 + } + }; + u32 v1; + + for (v1 = 0; v1 <= 7; v1++) { + param0->unk_60[0 + v1] = ov25_02255810(param0->unk_5C, &v0[v1], ¶m0->unk_48); + } + + param0->unk_60[8] = ov25_02255810(param0->unk_5C, &v0[v1], ¶m0->unk_34); + + if (param1->unk_00 == 0) { + ov25_02255914(param0->unk_60[8], 1); + } +} + +static void ov27_02256B80 (UnkStruct_0201CD38 * param0, void * param1) +{ + static void(*const v0[])(UnkStruct_0201CD38 *, void *) = { + ov27_02256BB0, + ov27_02256BE8, + ov27_02256C2C, + ov27_02256C80, + ov27_02256D00, + ov27_02256D80, + ov27_02256E1C + }; + + const UnkStruct_ov27_0225680C_1 * v1 = ov25_02255240(param1); + + sub_0201CECC(param0, v0[v1->unk_18]); + v0[v1->unk_18](param0, param1); +} + +static void ov27_02256BB0 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov27_0225680C * v0 = ov25_0225523C(param1); + const UnkStruct_ov27_0225680C_1 * v1 = ov25_02255240(param1); + + ov25_02255914(v0->unk_60[8], 1); + ov27_02256EC4(v0->unk_04, 0); + sub_02019448(v0->unk_04, 6); + ov27_02256A04(param1); +} + +static void ov27_02256BE8 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov27_0225680C * v0 = ov25_0225523C(param1); + + ov25_02255914(v0->unk_60[8], 0); + ov25_022558C4(v0->unk_60[8], 11); + ov27_02256EC4(v0->unk_04, 1); + + sub_02019448(v0->unk_04, 6); + + ov25_02254424(1641); + ov27_02256A04(param1); +} + +static void ov27_02256C2C (UnkStruct_0201CD38 * param0, void * param1) +{ + const UnkStruct_ov27_0225680C_1 * v0 = ov25_02255240(param1); + UnkStruct_ov27_0225680C * v1 = ov25_0225523C(param1); + + if (v0->unk_18 != 2) { + ov27_02256A04(param1); + return; + } + + switch (ov25_02255248(param1)) { + case 0: + ov25_022558C4(v1->unk_60[8], 12); + ov27_02256EC4(v1->unk_04, 0); + sub_02019448(v1->unk_04, 6); + ov25_0225524C(param1); + break; + case 1: + break; + } +} + +static void ov27_02256C80 (UnkStruct_0201CD38 * param0, void * param1) +{ + const UnkStruct_ov27_0225680C_1 * v0; + UnkStruct_ov27_0225680C * v1; + UnkStruct_ov27_02256E90 * v2; + + v0 = ov25_02255240(param1); + v1 = ov25_0225523C(param1); + v2 = ov25_02255244(param1); + + if (v0->unk_18 != 3) { + ov27_02256A04(param1); + return; + } + + switch (ov25_02255248(param1)) { + case 0: + v2->unk_00 = 6; + v2->unk_03 = 2; + v2->unk_02 = 0; + + ov25_022558C4(v1->unk_60[8], 13); + ov25_0225524C(param1); + case 1: + if (ov27_02256E90(v2, 6)) { + ov25_02254424(1641); + ov27_02256EC4(v1->unk_04, v2->unk_03); + sub_02019448(v1->unk_04, 6); + } + break; + } +} + +static void ov27_02256D00 (UnkStruct_0201CD38 * param0, void * param1) +{ + const UnkStruct_ov27_0225680C_1 * v0; + UnkStruct_ov27_0225680C * v1; + UnkStruct_ov27_02256E90 * v2; + + v0 = ov25_02255240(param1); + v1 = ov25_0225523C(param1); + v2 = ov25_02255244(param1); + + if (v0->unk_18 != 4) { + ov27_02256A04(param1); + return; + } + + switch (ov25_02255248(param1)) { + case 0: + v2->unk_00 = 3; + v2->unk_03 = 2; + v2->unk_02 = 0; + + ov25_022558C4(v1->unk_60[8], 14); + ov25_0225524C(param1); + case 1: + if (ov27_02256E90(v2, 3)) { + ov25_02254424(1641); + ov27_02256EC4(v1->unk_04, v2->unk_03); + sub_02019448(v1->unk_04, 6); + } + break; + } +} + +static void ov27_02256D80 (UnkStruct_0201CD38 * param0, void * param1) +{ + const UnkStruct_ov27_0225680C_1 * v0; + UnkStruct_ov27_0225680C * v1; + UnkStruct_ov27_02256E90 * v2; + + v0 = ov25_02255240(param1); + v1 = ov25_0225523C(param1); + v2 = ov25_02255244(param1); + + if (v0->unk_18 != 5) { + ov27_02256A04(param1); + return; + } + + switch (ov25_02255248(param1)) { + case 0: + v2->unk_00 = 0; + v2->unk_02 = 0; + ov25_022558C4(v1->unk_60[8], 15); + ov27_02256EC4(v1->unk_04, 5); + sub_02019448(v1->unk_04, 6); + ov25_02254424(1638); + ov25_0225524C(param1); + case 1: + if (++(v2->unk_00) > 2) { + v2->unk_00 = 0; + v2->unk_02 ^= 1; + v2->unk_03 = 5 + v2->unk_02; + ov27_02256EC4(v1->unk_04, v2->unk_03); + sub_02019448(v1->unk_04, 6); + } + break; + } +} + +static void ov27_02256E1C (UnkStruct_0201CD38 * param0, void * param1) +{ + const UnkStruct_ov27_0225680C_1 * v0; + UnkStruct_ov27_0225680C * v1; + UnkStruct_ov27_02256E90 * v2; + + v0 = ov25_02255240(param1); + v1 = ov25_0225523C(param1); + v2 = ov25_02255244(param1); + + if (v0->unk_18 != 6) { + ov27_02256A04(param1); + return; + } + + switch (ov25_02255248(param1)) { + case 0: + ov25_022558C4(v1->unk_60[8], 16); + ov27_02256EC4(v1->unk_04, 6); + sub_02019448(v1->unk_04, 6); + ov25_0225524C(param1); + v2->unk_00 = 0; + case 1: + if (++(v2->unk_00) > 80) { + ov27_02256A04(param1); + } + break; + } +} + +static BOOL ov27_02256E90 (UnkStruct_ov27_02256E90 * param0, u32 param1) +{ + static const u8 v0[] = { + 2, 3, 4, + }; + + if (++(param0->unk_00) > param1) { + param0->unk_00 = 0; + + if (++(param0->unk_02) >= NELEMS(v0)) { + param0->unk_02 = 0; + } + + param0->unk_03 = v0[param0->unk_02]; + return 1; + } + + return 0; +} + +static void ov27_02256EC4 (UnkStruct_02018340 * param0, u32 param1) +{ + u16 * v0; + u32 v1, v2; + u16 v3; + + v0 = sub_02019FE4(param0, 6); + v0 += ((9 * 32) + 9); + v3 = 2 + param1 * 5; + + for (v2 = 0; v2 < 11; v2++) { + for (v1 = 0; v1 < 5; v1++) { + v0[v1] = ((0 << 1) | (v3 + v1)); + v0[5 * 2 - 1 - v1] = ((0 << 1) | (v3 + v1) | GX_SCRFMT_TEXT_HF_MASK); + } + + v0 += 32; + v3 += 37; + } +} + +static void ov27_02256F24 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov27_0225680C * v0 = ov25_0225523C(param1); + u32 v1 = ov25_02255248(param1); + + switch (v1) { + case 0: + ov27_02256F7C(v0); + ov25_0225524C(param1); + case 1: + ov25_022559B0(&(v0->unk_34)); + ov25_022559B0(&(v0->unk_48)); + sub_02019044(v0->unk_04, 6); + sub_0200DA58(v0->unk_84); + v0->unk_84 = NULL; + ov27_02256A04(param1); + break; + } +} + +static void ov27_02256F7C (UnkStruct_ov27_0225680C * param0) +{ + u32 v0; + + for (v0 = 0; v0 < 9; v0++) { + ov25_022558B0(param0->unk_5C, param0->unk_60[v0]); + } +} diff --git a/src/overlay029/ov29_022561C0.c b/src/overlay029/ov29_022561C0.c new file mode 100644 index 0000000000..f80b05f786 --- /dev/null +++ b/src/overlay029/ov29_022561C0.c @@ -0,0 +1,390 @@ +#include +#include +#include + +#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; +} diff --git a/src/overlay029/ov29_022566C8.c b/src/overlay029/ov29_022566C8.c new file mode 100644 index 0000000000..46831ac0b7 --- /dev/null +++ b/src/overlay029/ov29_022566C8.c @@ -0,0 +1,351 @@ +#include +#include + +#include "struct_decls/struct_02018340_decl.h" +#include "struct_decls/struct_0201CD38_decl.h" +#include "overlay025/struct_ov25_02255224_decl.h" +#include "overlay025/struct_ov25_022555E8_decl.h" +#include "overlay025/struct_ov25_022558C4_decl.h" +#include "overlay029/struct_ov29_022566C8_decl.h" + +#include "struct_defs/struct_0205AA50.h" +#include "overlay025/struct_ov25_0225517C.h" +#include "overlay025/struct_ov25_02255810.h" +#include "overlay025/struct_ov25_02255958.h" +#include "overlay029/struct_ov29_022566C8_1.h" +#include "overlay061/struct_ov61_0222C884.h" +#include "overlay097/struct_ov97_0222DB78.h" + +#include "unk_02006E3C.h" +#include "unk_02017E74.h" +#include "unk_02018340.h" +#include "unk_02099D44.h" +#include "overlay025/ov25_02253CE0.h" +#include "overlay025/ov25_02254560.h" +#include "overlay025/ov25_02255090.h" +#include "overlay025/ov25_02255540.h" +#include "overlay029/ov29_022566C8.h" + +struct UnkStruct_ov29_022566C8_t { + const UnkStruct_ov29_022566C8_1 * unk_00; + UnkStruct_02018340 * unk_04; + u32 unk_08[18]; + UnkStruct_ov25_022555E8 * unk_50; + UnkStruct_ov25_02255958 unk_54; + UnkStruct_ov25_022558C4 * unk_68[2]; + UnkStruct_0205AA50 * unk_70; +}; + +static BOOL ov29_02256728(UnkStruct_ov29_022566C8 * param0); +static void ov29_022567F0(UnkStruct_ov25_02255224 * param0); +static void ov29_02256804(UnkStruct_0201CD38 * param0, void * param1); +static void ov29_02256908(UnkStruct_0201CD38 * param0, void * param1); +static void ov29_02256950(UnkStruct_0201CD38 * param0, void * param1); +static void ov29_022569DC(UnkStruct_0201CD38 * param0, void * param1); +static void ov29_02256A7C(UnkStruct_0201CD38 * param0, void * param1); +static void ov29_02256A94(UnkStruct_0201CD38 * param0, void * param1); +static void ov29_02256ABC(UnkStruct_ov29_022566C8 * param0); +static void ov29_02256B18(UnkStruct_ov29_022566C8 * param0); + +BOOL ov29_022566C8 (UnkStruct_ov29_022566C8 ** param0, const UnkStruct_ov29_022566C8_1 * param1, UnkStruct_02018340 * param2) +{ + UnkStruct_ov29_022566C8 * v0 = (UnkStruct_ov29_022566C8 *)sub_02018144(8, sizeof(UnkStruct_ov29_022566C8)); + + if (v0 != NULL) { + GF_ASSERT(sub_0201833C(7)); + ov25_02255090(v0->unk_08, 16); + + GF_ASSERT(sub_0201833C(7)); + v0->unk_00 = param1; + v0->unk_04 = ov25_02254674(); + v0->unk_50 = ov25_02254664(); + + GF_ASSERT(sub_0201833C(7)); + *param0 = v0; + return 1; + } + + return 0; +} + +static BOOL ov29_02256728 (UnkStruct_ov29_022566C8 * param0) +{ + static const UnkStruct_ov61_0222C884 v0 = { + 7, 2, 2, 20, 19, 0, 12 + }; + + param0->unk_70 = sub_0201A778(8, 1); + + if (param0->unk_70) { + sub_0201A8D4(param0->unk_04, param0->unk_70, &v0); + + if (sub_02099DD0(param0->unk_00->unk_16E8, param0->unk_70->unk_0C, (20 * 19 * 0x20)) == 0) { + sub_0201ADA4(param0->unk_70, 0x4); + } + + return 1; + } + + return 0; +} + +void ov29_02256770 (UnkStruct_ov29_022566C8 * param0) +{ + if (param0 != NULL) { + GF_ASSERT(sub_0201833C(7)); + + if (param0->unk_70) { + sub_02099DA8(param0->unk_00->unk_16E8, param0->unk_70->unk_0C, (20 * 19 * 0x20)); + sub_0201A8FC(param0->unk_70); + sub_020181C4(param0->unk_70); + } + + sub_020181C4(param0); + } +} + +static const UnkStruct_ov25_0225517C Unk_ov29_02256BB0[] = { + {0x0, ov29_02256804, 0x0}, + {0x1, ov29_02256908, 0x0}, + {0x2, ov29_02256950, 0x0}, + {0x3, ov29_022569DC, 0x0}, + {0x4, ov29_02256A7C, 0x0}, + {0x5, ov29_02256A94, 0x0}, + {0x0, NULL, 0x0} +}; + +void ov29_022567B4 (UnkStruct_ov29_022566C8 * param0, u32 param1) +{ + ov25_0225517C(Unk_ov29_02256BB0, param1, param0, param0->unk_00, param0->unk_08, 2, 8); +} + +BOOL ov29_022567D8 (UnkStruct_ov29_022566C8 * param0, u32 param1) +{ + return ov25_02255130(param0->unk_08, param1); +} + +BOOL ov29_022567E4 (UnkStruct_ov29_022566C8 * param0) +{ + return ov25_02255154(param0->unk_08); +} + +static void ov29_022567F0 (UnkStruct_ov25_02255224 * param0) +{ + UnkStruct_ov29_022566C8 * v0 = ov25_0225523C(param0); + ov25_02255224(v0->unk_08, param0); +} + +static void ov29_02256804 (UnkStruct_0201CD38 * param0, void * param1) +{ + static const UnkStruct_ov97_0222DB78 v0 = { + 0, + 0, + 0, + 0, + 1, + GX_BG_COLORMODE_16, + GX_BG_SCRBASE_0x7000, + GX_BG_CHARBASE_0x00000, + GX_BG_EXTPLTT_01, + 2, + 0, + 0, + 0 + }; + static const UnkStruct_ov97_0222DB78 v1 = { + 0, + 0, + 0x800, + 0, + 1, + GX_BG_COLORMODE_16, + GX_BG_SCRBASE_0x7800, + GX_BG_CHARBASE_0x00000, + GX_BG_EXTPLTT_01, + 3, + 0, + 0, + 0 + }; + GXSDispCnt v2; + UnkStruct_ov29_022566C8 * v3; + + GF_ASSERT(sub_0201833C(8)); + + v3 = ov25_0225523C(param1); + + sub_020183C4(v3->unk_04, 6, &v0, 0); + sub_020183C4(v3->unk_04, 7, &v1, 0); + + GF_ASSERT(sub_0201833C(8)); + + sub_02006E3C(12, 30, v3->unk_04, 6, 0, 0, 1, 8); + sub_02006E60(12, 31, v3->unk_04, 6, 0, 0, 1, 8); + ov25_022546B8(0, 0); + + GF_ASSERT(sub_0201833C(8)); + + ov29_02256728(v3); + sub_0201A954(v3->unk_70); + + GF_ASSERT(sub_0201833C(8)); + + ov29_02256ABC(v3); + + GF_ASSERT(sub_0201833C(8)); + + sub_02019448(v3->unk_04, 7); + + v2 = GXS_GetDispCnt(); + GXS_SetVisiblePlane(v2.visiblePlane | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ); + ov29_022567F0(param1); + + GF_ASSERT(sub_0201833C(8)); +} + +static void ov29_02256908 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov29_022566C8 * v0; + + v0 = ov25_0225523C(param1); + + if (v0->unk_00->unk_00 == 1) { + ov25_022558C4(v0->unk_68[0], 0); + ov25_022558C4(v0->unk_68[1], 3); + } else { + ov25_022558C4(v0->unk_68[0], 1); + ov25_022558C4(v0->unk_68[1], 2); + } + + ov25_02254424(1635); + ov29_022567F0(param1); +} + +static void ov29_02256950 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov29_022566C8 * v0; + + v0 = ov25_0225523C(param1); + sub_0201ACCC(v0->unk_70); + ov29_022567F0(param1); +} + +static void ov29_02256968 (u8 * param0, int param1, int param2, int param3, int param4) +{ + int v0, v1, v2, v3, v4; + + param3--; + param4--; + + v1 = param1 / 8; + v3 = ((param1 + param3) / 8) - v1 + 1; + v2 = param2 / 8; + v4 = ((param2 + param4) / 8) - v2 + 1; + v0 = (v2 * 20) + v1; + + while (v4--) { + DC_FlushRange(param0 + (v0 * 0x20), v3 * 0x20); + GXS_LoadBG3Char(param0 + (v0 * 0x20), (12 + v0) * 0x20, v3 * 0x20); + v0 += 20; + } +} + +static void ov29_022569DC (UnkStruct_0201CD38 * param0, void * param1) +{ + s32 v0, v1; + UnkStruct_ov29_022566C8 * v2; + + v2 = ov25_0225523C(param1); + + if (v2->unk_00->unk_00 == 0) { + int v3, v4; + + v3 = v4 = 8; + v0 = (v2->unk_00->unk_04 * 2) - (8 / 2); + v1 = (v2->unk_00->unk_08 * 2) - (8 / 2); + + if (v0 < 0) { + v3 += v0; + v0 = 0; + } + + if (v1 < 0) { + v4 += v1; + v1 = 0; + } + + sub_0201AE78(v2->unk_70, 0x4, v0, v1, v3, v4); + ov29_02256968((u8 *)v2->unk_70->unk_0C, v0, v1, v3, v4); + } else { + v0 = v2->unk_00->unk_04 * 2; + v1 = v2->unk_00->unk_08 * 2; + + sub_0201AE78(v2->unk_70, 0x1, v0, v1, 2, 2); + ov29_02256968((u8 *)v2->unk_70->unk_0C, v0, v1, 2, 2); + } + + ov29_022567F0(param1); +} + +static void ov29_02256A7C (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov29_022566C8 * v0; + + v0 = ov25_0225523C(param1); + + sub_0201ACCC(v0->unk_70); + ov29_022567F0(param1); +} + +static void ov29_02256A94 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov29_022566C8 * v0 = ov25_0225523C(param1); + + ov29_02256B18(v0); + sub_02019044(v0->unk_04, 6); + sub_02019044(v0->unk_04, 7); + ov29_022567F0(param1); +} + +static void ov29_02256ABC (UnkStruct_ov29_022566C8 * param0) +{ + static const UnkStruct_ov25_02255810 v0[] = { + { + {192 << FX32_SHIFT, 56 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 0 + }, + { + {192 << FX32_SHIFT, 136 << FX32_SHIFT}, + 3, + 0, + 2, + 0, + 0 + }, + }; + + sub_02006EC0(12, 32, 1, 0, 0, 1, 8); + + if (ov25_02255958(¶m0->unk_54, 12, 33, 34, 8)) { + int v1; + + for (v1 = 0; v1 < 2; v1++) { + param0->unk_68[v1] = ov25_02255810(param0->unk_50, &v0[v1], ¶m0->unk_54); + } + } +} + +static void ov29_02256B18 (UnkStruct_ov29_022566C8 * param0) +{ + u32 v0; + + for (v0 = 0; v0 < 2; v0++) { + ov25_022558B0(param0->unk_50, param0->unk_68[v0]); + } + + ov25_022559B0(¶m0->unk_54); +} diff --git a/src/overlay030/ov30_022561C0.c b/src/overlay030/ov30_022561C0.c new file mode 100644 index 0000000000..7b95ed0e5a --- /dev/null +++ b/src/overlay030/ov30_022561C0.c @@ -0,0 +1,230 @@ +#include +#include +#include + +#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; +} diff --git a/src/overlay030/ov30_022563EC.c b/src/overlay030/ov30_022563EC.c new file mode 100644 index 0000000000..8bedeb7384 --- /dev/null +++ b/src/overlay030/ov30_022563EC.c @@ -0,0 +1,246 @@ +#include +#include + +#include "struct_decls/struct_02018340_decl.h" +#include "struct_decls/struct_0201CD38_decl.h" +#include "overlay025/struct_ov25_02255224_decl.h" +#include "overlay025/struct_ov25_022555E8_decl.h" +#include "overlay025/struct_ov25_022558C4_decl.h" +#include "overlay030/struct_ov30_022563EC_decl.h" + +#include "overlay025/struct_ov25_0225517C.h" +#include "overlay025/struct_ov25_02255810.h" +#include "overlay025/struct_ov25_02255958.h" +#include "overlay030/struct_ov30_022563EC_1.h" +#include "overlay097/struct_ov97_0222DB78.h" + +#include "unk_02006E3C.h" +#include "unk_0200D9E8.h" +#include "unk_02017E74.h" +#include "unk_02018340.h" +#include "overlay025/ov25_02254560.h" +#include "overlay025/ov25_02255090.h" +#include "overlay025/ov25_02255540.h" +#include "overlay030/ov30_022563EC.h" + +struct UnkStruct_ov30_022563EC_t { + const UnkStruct_ov30_022563EC_1 * unk_00; + UnkStruct_02018340 * unk_04; + u32 unk_08[10]; + UnkStruct_0201CD38 * unk_30; + UnkStruct_ov25_02255958 unk_34; + UnkStruct_ov25_022555E8 * unk_48; + UnkStruct_ov25_022558C4 * unk_4C[2]; +}; + +static void ov30_02256460(UnkStruct_0201CD38 * param0, void * param1); +static void ov30_022564A0(UnkStruct_ov25_02255224 * param0); +static void ov30_022564B4(UnkStruct_0201CD38 * param0, void * param1); +static void ov30_02256548(UnkStruct_0201CD38 * param0, void * param1); +static void ov30_02256568(UnkStruct_0201CD38 * param0, void * param1); +static void ov30_02256594(UnkStruct_0201CD38 * param0, void * param1); +static void ov30_022565B0(UnkStruct_ov30_022563EC * param0); +static BOOL ov30_022565F4(UnkStruct_ov30_022563EC * param0); +static void ov30_02256658(UnkStruct_ov30_022563EC * param0); + +BOOL ov30_022563EC (UnkStruct_ov30_022563EC ** param0, const UnkStruct_ov30_022563EC_1 * param1, UnkStruct_02018340 * param2) +{ + UnkStruct_ov30_022563EC * v0 = (UnkStruct_ov30_022563EC *)sub_02018144(8, sizeof(UnkStruct_ov30_022563EC)); + + if (v0 != NULL) { + NNSG2dScreenData * v1; + void * v2; + + ov25_02255090(v0->unk_08, 8); + + v0->unk_00 = param1; + v0->unk_04 = ov25_02254674(); + v0->unk_48 = ov25_02254664(); + + if (ov30_022565F4(v0) == 0) { + sub_020181C4(v0); + return 0; + } + + v0->unk_30 = sub_0200D9E8(ov30_02256460, v0, 3); + *param0 = v0; + + return 1; + } + + return 0; +} + +void ov30_02256444 (UnkStruct_ov30_022563EC * param0) +{ + if (param0 != NULL) { + ov30_02256658(param0); + + if (param0->unk_30) { + sub_0200DA58(param0->unk_30); + } + + sub_020181C4(param0); + } +} + +static void ov30_02256460 (UnkStruct_0201CD38 * param0, void * param1) +{ + return; +} + +static const UnkStruct_ov25_0225517C Unk_ov30_022566C4[] = { + {0x0, ov30_022564B4, 0x0}, + {0x1, ov30_02256548, 0x0}, + {0x2, ov30_02256568, 0x0}, + {0x3, ov30_02256594, 0x0}, + {0x0, NULL, 0x0} +}; + +void ov30_02256464 (UnkStruct_ov30_022563EC * param0, u32 param1) +{ + ov25_0225517C(Unk_ov30_022566C4, param1, param0, param0->unk_00, param0->unk_08, 2, 8); +} + +BOOL ov30_02256488 (UnkStruct_ov30_022563EC * param0, u32 param1) +{ + return ov25_02255130(param0->unk_08, param1); +} + +BOOL ov30_02256494 (UnkStruct_ov30_022563EC * param0) +{ + return ov25_02255154(param0->unk_08); +} + +static void ov30_022564A0 (UnkStruct_ov25_02255224 * param0) +{ + UnkStruct_ov30_022563EC * v0 = ov25_0225523C(param0); + + ov25_02255224(v0->unk_08, param0); +} + +static void ov30_022564B4 (UnkStruct_0201CD38 * param0, void * param1) +{ + static const UnkStruct_ov97_0222DB78 v0 = { + 0, + 0, + 0x800, + 0, + 1, + GX_BG_COLORMODE_16, + GX_BG_SCRBASE_0x7000, + GX_BG_CHARBASE_0x00000, + GX_BG_EXTPLTT_01, + 2, + 0, + 0, + 0 + }; + GXSDispCnt v1; + UnkStruct_ov30_022563EC * v2; + + v2 = ov25_0225523C(param1); + + sub_020183C4(v2->unk_04, 6, &v0, 0); + sub_02006E3C(12, 23, v2->unk_04, 6, 0, 0, 1, 8); + sub_02006E60(12, 26, v2->unk_04, 6, 0, 0, 1, 8); + + ov25_022546B8(0, 0); + ov30_022565B0(v2); + + sub_02019448(v2->unk_04, 6); + + v1 = GXS_GetDispCnt(); + GXS_SetVisiblePlane(v1.visiblePlane | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ); + ov30_022564A0(param1); +} + +static void ov30_02256548 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov30_022563EC * v0 = ov25_0225523C(param1); + + ov30_022565B0(v0); + sub_02019448(v0->unk_04, 6); + ov30_022564A0(param1); +} + +static void ov30_02256568 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov30_022563EC * v0 = ov25_0225523C(param1); + + if (v0->unk_00->unk_0C) { + ov25_022546F0(0, 0); + } else { + ov25_022546B8(0, 0); + } + + ov30_022564A0(param1); +} + +static void ov30_02256594 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov30_022563EC * v0 = ov25_0225523C(param1); + + sub_02019044(v0->unk_04, 6); + ov30_022564A0(param1); +} + +static void ov30_022565B0 (UnkStruct_ov30_022563EC * param0) +{ + u32 v0; + + CP_SetDiv32_32(param0->unk_00->unk_00.hour, 10); + + v0 = 60 + ((param0->unk_00->unk_00.hour % 12) * 30) + (param0->unk_00->unk_00.minute / 2); + ov25_022558C4(param0->unk_4C[0], v0); + + v0 = 0 + param0->unk_00->unk_00.minute; + ov25_022558C4(param0->unk_4C[1], v0); +} + +static BOOL ov30_022565F4 (UnkStruct_ov30_022563EC * param0) +{ + static const UnkStruct_ov25_02255810 v0[] = { + { + {116 << FX32_SHIFT, 100 << FX32_SHIFT}, + 60, + 0, + 2, + 0, + 1 + }, + { + {116 << FX32_SHIFT, 100 << FX32_SHIFT}, + 0, + 0, + 2, + 0, + 1 + }, + }; + + sub_02006EC0(12, 29, 1, 0, 0, 1, 8); + + if (ov25_02255958(¶m0->unk_34, 12, 27, 28, 8)) { + int v1; + + for (v1 = 0; v1 < 2; v1++) { + param0->unk_4C[v1] = ov25_02255810(param0->unk_48, &v0[v1], ¶m0->unk_34); + } + + return 1; + } + + return 0; +} + +static void ov30_02256658 (UnkStruct_ov30_022563EC * param0) +{ + int v0; + + ov25_022559B0(&(param0->unk_34)); + + for (v0 = 0; v0 < 2; v0++) { + ov25_022558B0(param0->unk_48, param0->unk_4C[v0]); + } +}