diff options
-rw-r--r-- | arm9/asm/unk_02006D98.s | 1461 | ||||
-rw-r--r-- | arm9/src/unk_02006D98_c.c | 521 |
2 files changed, 517 insertions, 1465 deletions
diff --git a/arm9/asm/unk_02006D98.s b/arm9/asm/unk_02006D98.s index 32f394bf..5359b45e 100644 --- a/arm9/asm/unk_02006D98.s +++ b/arm9/asm/unk_02006D98.s @@ -23,1467 +23,6 @@ - thumb_func_start FUN_020073E8 -FUN_020073E8: ; 0x020073E8 - push {r4-r7, lr} - sub sp, #0xc - str r1, [sp, #0x8] - ldr r1, [sp, #0x28] - add r4, r0, #0x0 - mov r0, #0x98 - add r6, r1, #0x0 - mul r6, r0 - ldr r0, [r4, r6] - str r2, [sp, #0x0] - lsl r0, r0, #0x1f - str r3, [sp, #0x4] - lsr r0, r0, #0x1f - beq _02007408 - bl GF_AssertFail -_02007408: - add r5, r4, r6 - mov r0, #0x0 - add r1, r5, #0x0 - mov r2, #0x98 - bl MIi_CpuClearFast - ldr r1, [r4, r6] - mov r0, #0x1 - bic r1, r0 - mov r0, #0x1 - orr r0, r1 - str r0, [r4, r6] - ldr r1, [r4, r6] - mov r0, #0x80 - orr r0, r1 - str r0, [r4, r6] - mov r0, #0x80 - ldr r1, [r4, r6] - add r0, #0x80 - orr r0, r1 - str r0, [r4, r6] - add r2, r5, #0x0 - ldr r0, [r4, r6] - mov r1, #0x7e - bic r0, r1 - ldr r1, [sp, #0x24] - add r7, r2, #0x4 - lsl r1, r1, #0x1a - lsr r1, r1, #0x19 - orr r0, r1 - str r0, [r4, r6] - ldr r0, [sp, #0x8] - mov r12, r0 - mov r3, r12 - ldmia r3!, {r0-r1} - stmia r7!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r7!, {r0-r1} - add r7, r2, #0x0 - ldr r3, [sp, #0x8] - add r7, #0x14 - ldmia r3!, {r0-r1} - stmia r7!, {r0-r1} - str r3, [sp, #0x8] - ldmia r3!, {r0-r1} - stmia r7!, {r0-r1} - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsl r1, r1, #0x10 - asr r7, r1, #0x10 - strh r0, [r2, #0x24] - str r3, [sp, #0x8] - ldr r1, [sp, #0x20] - strh r7, [r2, #0x26] - str r1, [r2, #0x28] - mov r1, #0x80 - add r1, #0x80 - strh r1, [r2, #0x34] - strh r1, [r2, #0x36] - ldr r1, [r5, #0x54] - mov r3, #0x7c - bic r1, r3 - mov r3, #0x7c - orr r1, r3 - str r1, [r5, #0x54] - ldr r1, [r5, #0x50] - mov r3, #0x1f - bic r1, r3 - mov r3, #0x1f - orr r3, r1 - ldr r1, _02007520 ; =0xFFFFFC1F - and r1, r3 - mov r3, #0x1f - lsl r3, r3, #0x5 - orr r3, r1 - ldr r1, _02007524 ; =0xFFFF83FF - and r1, r3 - mov r3, #0x1f - lsl r3, r3, #0xa - orr r3, r1 - ldr r1, _02007528 ; =0xFFF07FFF - and r1, r3 - mov r3, #0x80 - lsl r3, r3, #0xc - orr r3, r1 - ldr r1, _0200752C ; =0xFE0FFFFF - and r1, r3 - mov r3, #0x80 - lsl r3, r3, #0x11 - orr r3, r1 - ldr r1, _02007530 ; =0xC1FFFFFF - and r1, r3 - mov r3, #0x80 - lsl r3, r3, #0x16 - orr r1, r3 - str r1, [r5, #0x50] - ldr r1, [sp, #0x30] - str r1, [r2, #0x68] - add r1, r2, #0x0 - add r1, #0x70 - strh r0, [r1, #0x0] - add r2, #0x72 - add r0, r5, #0x0 - strh r7, [r2, #0x0] - add r0, #0x6c - ldrh r1, [r0, #0x0] - mov r0, #0x4 - orr r1, r0 - add r0, r5, #0x0 - add r0, #0x6c - strh r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x6c - ldrh r1, [r0, #0x0] - mov r0, #0x8 - orr r1, r0 - add r0, r5, #0x0 - add r0, #0x6c - strh r1, [r0, #0x0] - add r0, r5, #0x0 - add r0, #0x6c - ldrh r1, [r0, #0x0] - mov r0, #0x10 - add r5, #0x6c - orr r0, r1 - strh r0, [r5, #0x0] - ldr r0, [sp, #0x2c] - cmp r0, #0x0 - beq _02007518 - add r1, r4, r6 - add r1, #0x84 - mov r2, #0x14 - bl MI_CpuCopy8 -_02007518: - add r0, r4, r6 - add sp, #0xc - pop {r4-r7, pc} - nop -_02007520: .word 0xFFFFFC1F -_02007524: .word 0xFFFF83FF -_02007528: .word 0xFFF07FFF -_0200752C: .word 0xFE0FFFFF -_02007530: .word 0xC1FFFFFF - - thumb_func_start FUN_02007534 -FUN_02007534: ; 0x02007534 - ldr r2, [r0, #0x0] - mov r1, #0x1 - bic r2, r1 - str r2, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02007540 -FUN_02007540: ; 0x02007540 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r4, #0x0 -_02007546: - add r0, r5, #0x0 - bl FUN_02007534 - add r4, r4, #0x1 - add r5, #0x98 - cmp r4, #0x4 - blt _02007546 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02007558 -FUN_02007558: ; 0x02007558 - cmp r1, #0x2e - bls _0200755E - b _02007800 -_0200755E: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0200756A: ; jump table (using 16-bit offset) - .short _020075C8 - _0200756A - 2; case 0 - .short _020075CC - _0200756A - 2; case 1 - .short _020075D0 - _0200756A - 2; case 2 - .short _020075D4 - _0200756A - 2; case 3 - .short _020075D8 - _0200756A - 2; case 4 - .short _020075DC - _0200756A - 2; case 5 - .short _020075E0 - _0200756A - 2; case 6 - .short _020075F0 - _0200756A - 2; case 7 - .short _020075F4 - _0200756A - 2; case 8 - .short _020075F8 - _0200756A - 2; case 9 - .short _020075FC - _0200756A - 2; case 10 - .short _02007602 - _0200756A - 2; case 11 - .short _02007608 - _0200756A - 2; case 12 - .short _0200760C - _0200756A - 2; case 13 - .short _02007610 - _0200756A - 2; case 14 - .short _02007620 - _0200756A - 2; case 15 - .short _02007626 - _0200756A - 2; case 16 - .short _0200762C - _0200756A - 2; case 17 - .short _02007632 - _0200756A - 2; case 18 - .short _02007638 - _0200756A - 2; case 19 - .short _0200763E - _0200756A - 2; case 20 - .short _02007644 - _0200756A - 2; case 21 - .short _0200764A - _0200756A - 2; case 22 - .short _02007650 - _0200756A - 2; case 23 - .short _02007660 - _0200756A - 2; case 24 - .short _02007670 - _0200756A - 2; case 25 - .short _02007680 - _0200756A - 2; case 26 - .short _02007690 - _0200756A - 2; case 27 - .short _020076A0 - _0200756A - 2; case 28 - .short _020076B0 - _0200756A - 2; case 29 - .short _020076C0 - _0200756A - 2; case 30 - .short _020076DA - _0200756A - 2; case 31 - .short _020076E8 - _0200756A - 2; case 32 - .short _020076FA - _0200756A - 2; case 33 - .short _0200770C - _0200756A - 2; case 34 - .short _02007712 - _0200756A - 2; case 35 - .short _0200772A - _0200756A - 2; case 36 - .short _02007742 - _0200756A - 2; case 37 - .short _02007752 - _0200756A - 2; case 38 - .short _02007800 - _0200756A - 2; case 39 - .short _02007758 - _0200756A - 2; case 40 - .short _02007770 - _0200756A - 2; case 41 - .short _02007776 - _0200756A - 2; case 42 - .short _0200779A - _0200756A - 2; case 43 - .short _020077B4 - _0200756A - 2; case 44 - .short _020077CE - _0200756A - 2; case 45 - .short _020077E8 - _0200756A - 2; case 46 -_020075C8: - strh r2, [r0, #0x24] - bx lr -_020075CC: - strh r2, [r0, #0x26] - bx lr -_020075D0: - str r2, [r0, #0x28] - bx lr -_020075D4: - strh r2, [r0, #0x2c] - bx lr -_020075D8: - strh r2, [r0, #0x2e] - bx lr -_020075DC: - str r2, [r0, #0x30] - bx lr -_020075E0: - ldr r3, [r0, #0x54] - mov r1, #0x1 - bic r3, r1 - mov r1, #0x1 - and r1, r2 - orr r1, r3 - str r1, [r0, #0x54] - bx lr -_020075F0: - strh r2, [r0, #0x38] - bx lr -_020075F4: - strh r2, [r0, #0x3a] - bx lr -_020075F8: - strh r2, [r0, #0x3c] - bx lr -_020075FC: - add r0, #0x40 - strh r2, [r0, #0x0] - bx lr -_02007602: - add r0, #0x42 - strh r2, [r0, #0x0] - bx lr -_02007608: - strh r2, [r0, #0x34] - bx lr -_0200760C: - strh r2, [r0, #0x36] - bx lr -_02007610: - ldr r3, [r0, #0x54] - mov r1, #0x2 - bic r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x1e - orr r1, r3 - str r1, [r0, #0x54] - bx lr -_02007620: - add r0, #0x44 - strb r2, [r0, #0x0] - bx lr -_02007626: - add r0, #0x45 - strb r2, [r0, #0x0] - bx lr -_0200762C: - add r0, #0x46 - strb r2, [r0, #0x0] - bx lr -_02007632: - add r0, #0x47 - strb r2, [r0, #0x0] - bx lr -_02007638: - add r0, #0x70 - strh r2, [r0, #0x0] - bx lr -_0200763E: - add r0, #0x72 - strh r2, [r0, #0x0] - bx lr -_02007644: - add r0, #0x74 - strh r2, [r0, #0x0] - bx lr -_0200764A: - add r0, #0x76 - strh r2, [r0, #0x0] - bx lr -_02007650: - ldr r3, [r0, #0x54] - mov r1, #0x7c - bic r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0x19 - orr r1, r3 - str r1, [r0, #0x54] - bx lr -_02007660: - ldr r3, [r0, #0x50] - mov r1, #0x1f - bic r3, r1 - mov r1, #0x1f - and r1, r2 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_02007670: - ldr r3, [r0, #0x50] - ldr r1, _02007804 ; =0xFFFFFC1F - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0x16 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_02007680: - ldr r3, [r0, #0x50] - ldr r1, _02007808 ; =0xFFFF83FF - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0x11 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_02007690: - ldr r3, [r0, #0x50] - ldr r1, _0200780C ; =0xFFF07FFF - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0xc - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_020076A0: - ldr r3, [r0, #0x50] - ldr r1, _02007810 ; =0xFE0FFFFF - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0x7 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_020076B0: - ldr r3, [r0, #0x50] - ldr r1, _02007814 ; =0xC1FFFFFF - and r3, r1 - lsl r1, r2, #0x1b - lsr r1, r1, #0x2 - orr r1, r3 - str r1, [r0, #0x50] - bx lr -_020076C0: - ldr r3, [r0, #0x54] - ldr r1, _02007818 ; =0xFFFFEFFF - and r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x13 - orr r1, r3 - str r1, [r0, #0x54] - mov r1, #0x1 - ldr r2, [r0, #0x0] - lsl r1, r1, #0x8 - orr r1, r2 - str r1, [r0, #0x0] - bx lr -_020076DA: - str r2, [r0, #0x4c] - mov r1, #0x1 - ldr r2, [r0, #0x0] - lsl r1, r1, #0x8 - orr r1, r2 - str r1, [r0, #0x0] - bx lr -_020076E8: - add r1, r0, #0x0 - add r1, #0x48 - strb r2, [r1, #0x0] - mov r1, #0x1 - ldr r2, [r0, #0x0] - lsl r1, r1, #0x8 - orr r1, r2 - str r1, [r0, #0x0] - bx lr -_020076FA: - add r1, r0, #0x0 - add r1, #0x49 - strb r2, [r1, #0x0] - mov r1, #0x1 - ldr r2, [r0, #0x0] - lsl r1, r1, #0x8 - orr r1, r2 - str r1, [r0, #0x0] - bx lr -_0200770C: - add r0, #0x4a - strb r2, [r0, #0x0] - bx lr -_02007712: - ldr r3, [r0, #0x54] - ldr r1, _0200781C ; =0xFFFFFDFF - and r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x16 - orr r1, r3 - str r1, [r0, #0x54] - ldr r2, [r0, #0x0] - mov r1, #0x80 - orr r1, r2 - str r1, [r0, #0x0] - bx lr -_0200772A: - ldr r3, [r0, #0x54] - ldr r1, _02007820 ; =0xFFFFFBFF - and r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x15 - orr r1, r3 - str r1, [r0, #0x54] - ldr r2, [r0, #0x0] - mov r1, #0x80 - orr r1, r2 - str r1, [r0, #0x0] - bx lr -_02007742: - ldr r3, [r0, #0x54] - ldr r1, _02007824 ; =0xFFFFF7FF - and r3, r1 - lsl r1, r2, #0x1f - lsr r1, r1, #0x14 - orr r1, r3 - str r1, [r0, #0x54] - bx lr -_02007752: - add r0, #0x5b - strb r2, [r0, #0x0] - bx lr -_02007758: - ldr r3, [r0, #0x54] - ldr r1, _02007828 ; =0xFFFE1FFF - and r3, r1 - lsl r1, r2, #0x1c - lsr r1, r1, #0xf - orr r1, r3 - str r1, [r0, #0x54] - ldr r2, [r0, #0x0] - mov r1, #0x80 - orr r1, r2 - str r1, [r0, #0x0] - bx lr -_02007770: - add r0, #0x6e - strb r2, [r0, #0x0] - bx lr -_02007776: - add r1, r0, #0x0 - add r1, #0x6c - ldrh r3, [r1, #0x0] - mov r1, #0x3 - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - mov r2, #0x3 - and r1, r2 - orr r3, r1 - add r1, r0, #0x0 - add r1, #0x6c - strh r3, [r1, #0x0] - ldr r1, [r0, #0x0] - add r2, #0xfd - orr r1, r2 - str r1, [r0, #0x0] - bx lr -_0200779A: - add r1, r0, #0x0 - add r1, #0x6c - ldrh r3, [r1, #0x0] - mov r1, #0x4 - add r0, #0x6c - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - lsr r1, r1, #0x1d - orr r1, r3 - strh r1, [r0, #0x0] - bx lr -_020077B4: - add r1, r0, #0x0 - add r1, #0x6c - ldrh r3, [r1, #0x0] - mov r1, #0x8 - add r0, #0x6c - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - lsr r1, r1, #0x1c - orr r1, r3 - strh r1, [r0, #0x0] - bx lr -_020077CE: - add r1, r0, #0x0 - add r1, #0x6c - ldrh r3, [r1, #0x0] - mov r1, #0x10 - add r0, #0x6c - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - lsr r1, r1, #0x1b - orr r1, r3 - strh r1, [r0, #0x0] - bx lr -_020077E8: - add r1, r0, #0x0 - add r1, #0x6c - ldrh r3, [r1, #0x0] - mov r1, #0x60 - add r0, #0x6c - bic r3, r1 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - lsl r1, r1, #0x1e - lsr r1, r1, #0x19 - orr r1, r3 - strh r1, [r0, #0x0] -_02007800: - bx lr - nop -_02007804: .word 0xFFFFFC1F -_02007808: .word 0xFFFF83FF -_0200780C: .word 0xFFF07FFF -_02007810: .word 0xFE0FFFFF -_02007814: .word 0xC1FFFFFF -_02007818: .word 0xFFFFEFFF -_0200781C: .word 0xFFFFFDFF -_02007820: .word 0xFFFFFBFF -_02007824: .word 0xFFFFF7FF -_02007828: .word 0xFFFE1FFF - - thumb_func_start FUN_0200782C -FUN_0200782C: ; 0x0200782C - push {r3, lr} - cmp r1, #0x2e - bls _02007834 - b _020079D6 -_02007834: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02007840: ; jump table (using 16-bit offset) - .short _0200789E - _02007840 - 2; case 0 - .short _020078A4 - _02007840 - 2; case 1 - .short _020078AA - _02007840 - 2; case 2 - .short _020078AE - _02007840 - 2; case 3 - .short _020078B4 - _02007840 - 2; case 4 - .short _020078BA - _02007840 - 2; case 5 - .short _020078BE - _02007840 - 2; case 6 - .short _020078C6 - _02007840 - 2; case 7 - .short _020078CA - _02007840 - 2; case 8 - .short _020078CE - _02007840 - 2; case 9 - .short _020078D2 - _02007840 - 2; case 10 - .short _020078D8 - _02007840 - 2; case 11 - .short _020078DE - _02007840 - 2; case 12 - .short _020078E4 - _02007840 - 2; case 13 - .short _020078EA - _02007840 - 2; case 14 - .short _020078F2 - _02007840 - 2; case 15 - .short _020078F8 - _02007840 - 2; case 16 - .short _020078FE - _02007840 - 2; case 17 - .short _02007904 - _02007840 - 2; case 18 - .short _0200790A - _02007840 - 2; case 19 - .short _02007910 - _02007840 - 2; case 20 - .short _02007916 - _02007840 - 2; case 21 - .short _0200791C - _02007840 - 2; case 22 - .short _02007922 - _02007840 - 2; case 23 - .short _0200792A - _02007840 - 2; case 24 - .short _02007932 - _02007840 - 2; case 25 - .short _0200793A - _02007840 - 2; case 26 - .short _02007942 - _02007840 - 2; case 27 - .short _0200794A - _02007840 - 2; case 28 - .short _02007952 - _02007840 - 2; case 29 - .short _0200795A - _02007840 - 2; case 30 - .short _02007962 - _02007840 - 2; case 31 - .short _02007966 - _02007840 - 2; case 32 - .short _0200796C - _02007840 - 2; case 33 - .short _02007972 - _02007840 - 2; case 34 - .short _02007978 - _02007840 - 2; case 35 - .short _02007980 - _02007840 - 2; case 36 - .short _02007988 - _02007840 - 2; case 37 - .short _02007990 - _02007840 - 2; case 38 - .short _020079D6 - _02007840 - 2; case 39 - .short _02007996 - _02007840 - 2; case 40 - .short _0200799E - _02007840 - 2; case 41 - .short _020079A4 - _02007840 - 2; case 42 - .short _020079AE - _02007840 - 2; case 43 - .short _020079B8 - _02007840 - 2; case 44 - .short _020079C2 - _02007840 - 2; case 45 - .short _020079CC - _02007840 - 2; case 46 -_0200789E: - mov r1, #0x24 - ldrsh r0, [r0, r1] - pop {r3, pc} -_020078A4: - mov r1, #0x26 - ldrsh r0, [r0, r1] - pop {r3, pc} -_020078AA: - ldr r0, [r0, #0x28] - pop {r3, pc} -_020078AE: - mov r1, #0x2c - ldrsh r0, [r0, r1] - pop {r3, pc} -_020078B4: - mov r1, #0x2e - ldrsh r0, [r0, r1] - pop {r3, pc} -_020078BA: - ldr r0, [r0, #0x30] - pop {r3, pc} -_020078BE: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - pop {r3, pc} -_020078C6: - ldrh r0, [r0, #0x38] - pop {r3, pc} -_020078CA: - ldrh r0, [r0, #0x3a] - pop {r3, pc} -_020078CE: - ldrh r0, [r0, #0x3c] - pop {r3, pc} -_020078D2: - mov r1, #0x40 - ldrsh r0, [r0, r1] - pop {r3, pc} -_020078D8: - mov r1, #0x42 - ldrsh r0, [r0, r1] - pop {r3, pc} -_020078DE: - mov r1, #0x34 - ldrsh r0, [r0, r1] - pop {r3, pc} -_020078E4: - mov r1, #0x36 - ldrsh r0, [r0, r1] - pop {r3, pc} -_020078EA: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - pop {r3, pc} -_020078F2: - add r0, #0x44 - ldrb r0, [r0, #0x0] - pop {r3, pc} -_020078F8: - add r0, #0x45 - ldrb r0, [r0, #0x0] - pop {r3, pc} -_020078FE: - add r0, #0x46 - ldrb r0, [r0, #0x0] - pop {r3, pc} -_02007904: - add r0, #0x47 - ldrb r0, [r0, #0x0] - pop {r3, pc} -_0200790A: - mov r1, #0x70 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02007910: - mov r1, #0x72 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02007916: - mov r1, #0x74 - ldrsh r0, [r0, r1] - pop {r3, pc} -_0200791C: - mov r1, #0x76 - ldrsh r0, [r0, r1] - pop {r3, pc} -_02007922: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1b - pop {r3, pc} -_0200792A: - ldr r0, [r0, #0x50] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1b - pop {r3, pc} -_02007932: - ldr r0, [r0, #0x50] - lsl r0, r0, #0x16 - lsr r0, r0, #0x1b - pop {r3, pc} -_0200793A: - ldr r0, [r0, #0x50] - lsl r0, r0, #0x11 - lsr r0, r0, #0x1b - pop {r3, pc} -_02007942: - ldr r0, [r0, #0x50] - lsl r0, r0, #0xc - lsr r0, r0, #0x1b - pop {r3, pc} -_0200794A: - ldr r0, [r0, #0x50] - lsl r0, r0, #0x7 - lsr r0, r0, #0x1b - pop {r3, pc} -_02007952: - ldr r0, [r0, #0x50] - lsl r0, r0, #0x2 - lsr r0, r0, #0x1b - pop {r3, pc} -_0200795A: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x13 - lsr r0, r0, #0x1f - pop {r3, pc} -_02007962: - ldr r0, [r0, #0x4c] - pop {r3, pc} -_02007966: - add r0, #0x48 - ldrb r0, [r0, #0x0] - pop {r3, pc} -_0200796C: - add r0, #0x49 - ldrb r0, [r0, #0x0] - pop {r3, pc} -_02007972: - add r0, #0x4a - ldrb r0, [r0, #0x0] - pop {r3, pc} -_02007978: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x16 - lsr r0, r0, #0x1f - pop {r3, pc} -_02007980: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x15 - lsr r0, r0, #0x1f - pop {r3, pc} -_02007988: - ldr r0, [r0, #0x54] - lsl r0, r0, #0x14 - lsr r0, r0, #0x1f - pop {r3, pc} -_02007990: - add r0, #0x5b - ldrb r0, [r0, #0x0] - pop {r3, pc} -_02007996: - ldr r0, [r0, #0x54] - lsl r0, r0, #0xf - lsr r0, r0, #0x1c - pop {r3, pc} -_0200799E: - mov r1, #0x6e - ldrsb r0, [r0, r1] - pop {r3, pc} -_020079A4: - add r0, #0x6c - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1e - pop {r3, pc} -_020079AE: - add r0, #0x6c - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - pop {r3, pc} -_020079B8: - add r0, #0x6c - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1f - pop {r3, pc} -_020079C2: - add r0, #0x6c - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - pop {r3, pc} -_020079CC: - add r0, #0x6c - ldrh r0, [r0, #0x0] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1e - pop {r3, pc} -_020079D6: - bl GF_AssertFail - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020079E0 -FUN_020079E0: ; 0x020079E0 - push {r3-r4} - add r3, r0, #0x0 - add r0, r2, #0x0 - cmp r1, #0x2e - bls _020079EC - b _02007E12 -_020079EC: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_020079F8: ; jump table (using 16-bit offset) - .short _02007A56 - _020079F8 - 2; case 0 - .short _02007A62 - _020079F8 - 2; case 1 - .short _02007A6E - _020079F8 - 2; case 2 - .short _02007A78 - _020079F8 - 2; case 3 - .short _02007A84 - _020079F8 - 2; case 4 - .short _02007A90 - _020079F8 - 2; case 5 - .short _02007A9A - _020079F8 - 2; case 6 - .short _02007AB4 - _020079F8 - 2; case 7 - .short _02007ABE - _020079F8 - 2; case 8 - .short _02007AC8 - _020079F8 - 2; case 9 - .short _02007AD2 - _020079F8 - 2; case 10 - .short _02007AE0 - _020079F8 - 2; case 11 - .short _02007AEE - _020079F8 - 2; case 12 - .short _02007AFA - _020079F8 - 2; case 13 - .short _02007B06 - _020079F8 - 2; case 14 - .short _02007B20 - _020079F8 - 2; case 15 - .short _02007B30 - _020079F8 - 2; case 16 - .short _02007B40 - _020079F8 - 2; case 17 - .short _02007B50 - _020079F8 - 2; case 18 - .short _02007B60 - _020079F8 - 2; case 19 - .short _02007B6E - _020079F8 - 2; case 20 - .short _02007B7C - _020079F8 - 2; case 21 - .short _02007B8A - _020079F8 - 2; case 22 - .short _02007B98 - _020079F8 - 2; case 23 - .short _02007BB2 - _020079F8 - 2; case 24 - .short _02007BCC - _020079F8 - 2; case 25 - .short _02007BE4 - _020079F8 - 2; case 26 - .short _02007BFC - _020079F8 - 2; case 27 - .short _02007C14 - _020079F8 - 2; case 28 - .short _02007C2C - _020079F8 - 2; case 29 - .short _02007C44 - _020079F8 - 2; case 30 - .short _02007C66 - _020079F8 - 2; case 31 - .short _02007C7A - _020079F8 - 2; case 32 - .short _02007C96 - _020079F8 - 2; case 33 - .short _02007CB2 - _020079F8 - 2; case 34 - .short _02007CC2 - _020079F8 - 2; case 35 - .short _02007CE2 - _020079F8 - 2; case 36 - .short _02007D02 - _020079F8 - 2; case 37 - .short _02007D1A - _020079F8 - 2; case 38 - .short _02007E12 - _020079F8 - 2; case 39 - .short _02007D2A - _020079F8 - 2; case 40 - .short _02007D4A - _020079F8 - 2; case 41 - .short _02007D58 - _020079F8 - 2; case 42 - .short _02007D86 - _020079F8 - 2; case 43 - .short _02007DAA - _020079F8 - 2; case 44 - .short _02007DCE - _020079F8 - 2; case 45 - .short _02007DF2 - _020079F8 - 2; case 46 -_02007A56: - mov r1, #0x24 - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x24] - pop {r3-r4} - bx lr -_02007A62: - mov r1, #0x26 - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x26] - pop {r3-r4} - bx lr -_02007A6E: - ldr r1, [r3, #0x28] - add r0, r1, r0 - str r0, [r3, #0x28] - pop {r3-r4} - bx lr -_02007A78: - mov r1, #0x2c - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x2c] - pop {r3-r4} - bx lr -_02007A84: - mov r1, #0x2e - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x2e] - pop {r3-r4} - bx lr -_02007A90: - ldr r1, [r3, #0x30] - add r0, r1, r0 - str r0, [r3, #0x30] - pop {r3-r4} - bx lr -_02007A9A: - ldr r4, [r3, #0x54] - mov r2, #0x1 - add r1, r4, #0x0 - bic r1, r2 - lsl r2, r4, #0x1f - lsr r2, r2, #0x1f - add r2, r2, r0 - mov r0, #0x1 - and r0, r2 - orr r0, r1 - str r0, [r3, #0x54] - pop {r3-r4} - bx lr -_02007AB4: - ldrh r1, [r3, #0x38] - add r0, r1, r0 - strh r0, [r3, #0x38] - pop {r3-r4} - bx lr -_02007ABE: - ldrh r1, [r3, #0x3a] - add r0, r1, r0 - strh r0, [r3, #0x3a] - pop {r3-r4} - bx lr -_02007AC8: - ldrh r1, [r3, #0x3c] - add r0, r1, r0 - strh r0, [r3, #0x3c] - pop {r3-r4} - bx lr -_02007AD2: - mov r1, #0x40 - ldrsh r1, [r3, r1] - add r3, #0x40 - add r0, r1, r0 - strh r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007AE0: - mov r1, #0x42 - ldrsh r1, [r3, r1] - add r3, #0x42 - add r0, r1, r0 - strh r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007AEE: - mov r1, #0x34 - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x34] - pop {r3-r4} - bx lr -_02007AFA: - mov r1, #0x36 - ldrsh r1, [r3, r1] - add r0, r1, r0 - strh r0, [r3, #0x36] - pop {r3-r4} - bx lr -_02007B06: - ldr r4, [r3, #0x54] - mov r2, #0x2 - add r1, r4, #0x0 - bic r1, r2 - lsl r2, r4, #0x1e - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1e - orr r0, r1 - str r0, [r3, #0x54] - pop {r3-r4} - bx lr -_02007B20: - add r1, r3, #0x0 - add r1, #0x44 - ldrb r1, [r1, #0x0] - add r3, #0x44 - add r0, r1, r0 - strb r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007B30: - add r1, r3, #0x0 - add r1, #0x45 - ldrb r1, [r1, #0x0] - add r3, #0x45 - add r0, r1, r0 - strb r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007B40: - add r1, r3, #0x0 - add r1, #0x46 - ldrb r1, [r1, #0x0] - add r3, #0x46 - add r0, r1, r0 - strb r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007B50: - add r1, r3, #0x0 - add r1, #0x47 - ldrb r1, [r1, #0x0] - add r3, #0x47 - add r0, r1, r0 - strb r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007B60: - mov r1, #0x70 - ldrsh r1, [r3, r1] - add r3, #0x70 - add r0, r1, r0 - strh r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007B6E: - mov r1, #0x72 - ldrsh r1, [r3, r1] - add r3, #0x72 - add r0, r1, r0 - strh r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007B7C: - mov r1, #0x74 - ldrsh r1, [r3, r1] - add r3, #0x74 - add r0, r1, r0 - strh r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007B8A: - mov r1, #0x76 - ldrsh r1, [r3, r1] - add r3, #0x76 - add r0, r1, r0 - strh r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007B98: - ldr r4, [r3, #0x54] - mov r2, #0x7c - add r1, r4, #0x0 - bic r1, r2 - lsl r2, r4, #0x19 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0x19 - orr r0, r1 - str r0, [r3, #0x54] - pop {r3-r4} - bx lr -_02007BB2: - ldr r4, [r3, #0x50] - mov r2, #0x1f - add r1, r4, #0x0 - bic r1, r2 - lsl r2, r4, #0x1b - lsr r2, r2, #0x1b - add r2, r2, r0 - mov r0, #0x1f - and r0, r2 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3-r4} - bx lr -_02007BCC: - ldr r2, [r3, #0x50] - ldr r1, _02007E18 ; =0xFFFFFC1F - and r1, r2 - lsl r2, r2, #0x16 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0x16 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3-r4} - bx lr -_02007BE4: - ldr r2, [r3, #0x50] - ldr r1, _02007E1C ; =0xFFFF83FF - and r1, r2 - lsl r2, r2, #0x11 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0x11 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3-r4} - bx lr -_02007BFC: - ldr r2, [r3, #0x50] - ldr r1, _02007E20 ; =0xFFF07FFF - and r1, r2 - lsl r2, r2, #0xc - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0xc - orr r0, r1 - str r0, [r3, #0x50] - pop {r3-r4} - bx lr -_02007C14: - ldr r2, [r3, #0x50] - ldr r1, _02007E24 ; =0xFE0FFFFF - and r1, r2 - lsl r2, r2, #0x7 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0x7 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3-r4} - bx lr -_02007C2C: - ldr r2, [r3, #0x50] - ldr r1, _02007E28 ; =0xC1FFFFFF - and r1, r2 - lsl r2, r2, #0x2 - lsr r2, r2, #0x1b - add r0, r2, r0 - lsl r0, r0, #0x1b - lsr r0, r0, #0x2 - orr r0, r1 - str r0, [r3, #0x50] - pop {r3-r4} - bx lr -_02007C44: - ldr r2, [r3, #0x54] - ldr r1, _02007E2C ; =0xFFFFEFFF - and r1, r2 - lsl r2, r2, #0x13 - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x13 - orr r0, r1 - str r0, [r3, #0x54] - mov r0, #0x1 - ldr r1, [r3, #0x0] - lsl r0, r0, #0x8 - orr r0, r1 - str r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007C66: - ldr r1, [r3, #0x4c] - add r0, r1, r0 - str r0, [r3, #0x4c] - mov r0, #0x1 - ldr r1, [r3, #0x0] - lsl r0, r0, #0x8 - orr r0, r1 - str r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007C7A: - add r1, r3, #0x0 - add r1, #0x48 - ldrb r1, [r1, #0x0] - add r1, r1, r0 - add r0, r3, #0x0 - add r0, #0x48 - strb r1, [r0, #0x0] - mov r0, #0x1 - ldr r1, [r3, #0x0] - lsl r0, r0, #0x8 - orr r0, r1 - str r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007C96: - add r1, r3, #0x0 - add r1, #0x49 - ldrb r1, [r1, #0x0] - add r1, r1, r0 - add r0, r3, #0x0 - add r0, #0x49 - strb r1, [r0, #0x0] - mov r0, #0x1 - ldr r1, [r3, #0x0] - lsl r0, r0, #0x8 - orr r0, r1 - str r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007CB2: - add r1, r3, #0x0 - add r1, #0x4a - ldrb r1, [r1, #0x0] - add r3, #0x4a - add r0, r1, r0 - strb r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007CC2: - ldr r2, [r3, #0x54] - ldr r1, _02007E30 ; =0xFFFFFDFF - and r1, r2 - lsl r2, r2, #0x16 - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x16 - orr r0, r1 - str r0, [r3, #0x54] - ldr r1, [r3, #0x0] - mov r0, #0x80 - orr r0, r1 - str r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007CE2: - ldr r2, [r3, #0x54] - ldr r1, _02007E34 ; =0xFFFFFBFF - and r1, r2 - lsl r2, r2, #0x15 - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x15 - orr r0, r1 - str r0, [r3, #0x54] - ldr r1, [r3, #0x0] - mov r0, #0x80 - orr r0, r1 - str r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007D02: - ldr r2, [r3, #0x54] - ldr r1, _02007E38 ; =0xFFFFF7FF - and r1, r2 - lsl r2, r2, #0x14 - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x14 - orr r0, r1 - str r0, [r3, #0x54] - pop {r3-r4} - bx lr -_02007D1A: - add r1, r3, #0x0 - add r1, #0x5b - ldrb r1, [r1, #0x0] - add r3, #0x5b - add r0, r1, r0 - strb r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007D2A: - ldr r2, [r3, #0x54] - ldr r1, _02007E3C ; =0xFFFE1FFF - and r1, r2 - lsl r2, r2, #0xf - lsr r2, r2, #0x1c - add r0, r2, r0 - lsl r0, r0, #0x1c - lsr r0, r0, #0xf - orr r0, r1 - str r0, [r3, #0x54] - ldr r1, [r3, #0x0] - mov r0, #0x80 - orr r0, r1 - str r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007D4A: - mov r1, #0x6e - ldrsb r1, [r3, r1] - add r3, #0x6e - add r0, r1, r0 - strb r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007D58: - add r1, r3, #0x0 - add r1, #0x6c - ldrh r4, [r1, #0x0] - mov r2, #0x3 - add r1, r4, #0x0 - bic r1, r2 - lsl r2, r4, #0x1e - lsr r2, r2, #0x1e - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, #0x3 - and r0, r2 - orr r1, r0 - add r0, r3, #0x0 - add r0, #0x6c - strh r1, [r0, #0x0] - ldr r0, [r3, #0x0] - add r2, #0xfd - orr r0, r2 - str r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007D86: - add r1, r3, #0x0 - add r1, #0x6c - ldrh r4, [r1, #0x0] - mov r2, #0x4 - add r3, #0x6c - add r1, r4, #0x0 - bic r1, r2 - lsl r2, r4, #0x1d - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1d - orr r0, r1 - strh r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007DAA: - add r1, r3, #0x0 - add r1, #0x6c - ldrh r4, [r1, #0x0] - mov r2, #0x8 - add r3, #0x6c - add r1, r4, #0x0 - bic r1, r2 - lsl r2, r4, #0x1c - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1c - orr r0, r1 - strh r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007DCE: - add r1, r3, #0x0 - add r1, #0x6c - ldrh r4, [r1, #0x0] - mov r2, #0x10 - add r3, #0x6c - add r1, r4, #0x0 - bic r1, r2 - lsl r2, r4, #0x1b - lsr r2, r2, #0x1f - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1b - orr r0, r1 - strh r0, [r3, #0x0] - pop {r3-r4} - bx lr -_02007DF2: - add r1, r3, #0x0 - add r1, #0x6c - ldrh r4, [r1, #0x0] - mov r2, #0x60 - add r3, #0x6c - add r1, r4, #0x0 - bic r1, r2 - lsl r2, r4, #0x19 - lsr r2, r2, #0x1e - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1e - lsr r0, r0, #0x19 - orr r0, r1 - strh r0, [r3, #0x0] -_02007E12: - pop {r3-r4} - bx lr - nop -_02007E18: .word 0xFFFFFC1F -_02007E1C: .word 0xFFFF83FF -_02007E20: .word 0xFFF07FFF -_02007E24: .word 0xFE0FFFFF -_02007E28: .word 0xC1FFFFFF -_02007E2C: .word 0xFFFFEFFF -_02007E30: .word 0xFFFFFDFF -_02007E34: .word 0xFFFFFBFF -_02007E38: .word 0xFFFFF7FF -_02007E3C: .word 0xFFFE1FFF thumb_func_start FUN_02007E40 FUN_02007E40: ; 0x02007E40 diff --git a/arm9/src/unk_02006D98_c.c b/arm9/src/unk_02006D98_c.c index 7a5b48f5..1ae1fa6e 100644 --- a/arm9/src/unk_02006D98_c.c +++ b/arm9/src/unk_02006D98_c.c @@ -117,7 +117,10 @@ const struct UnkStruct4 *UNK_02105AE8[] = { struct UnkStruct2 { u32 unk00_0:1; u32 unk00_1:6; - u8 unk04[0x20]; + u32 unk00_7:1; + u32 unk00_8:1; + struct UnkStruct63_021DB49C unk04; + struct UnkStruct63_021DB49C unk14; s16 unk24; s16 unk26; u32 unk28; @@ -136,7 +139,11 @@ struct UnkStruct2 { u8 unk45; u8 unk46; u8 unk47; - u8 unk48[0x8]; + u8 unk48; + u8 unk49; + u8 unk4A; + u8 unk4B; + u32 unk4C; u32 unk50_0:5; u32 unk50_5:5; u32 unk50_a:5; @@ -147,8 +154,12 @@ struct UnkStruct2 { u32 unk54_0:1; u32 unk54_1:1; u32 unk54_2:5; - u32 unk54_7:4; + u32 unk54_7:2; + u32 unk54_9:1; + u32 unk54_A:1; u32 unk54_B:1; + u32 unk54_C:1; + u32 unk54_D:4; u8 unk58; u8 unk59; u8 unk5A; @@ -996,7 +1007,7 @@ THUMB_FUNC BOOL FUN_02007390(struct UnkStruct2 *param0) { return FALSE; } -extern u32 FUN_020073E8(struct UnkStruct1 *param0, struct UnkStruct63_021DB49C *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8); +extern u32 FUN_020073E8(struct UnkStruct1 *param0, struct UnkStruct63_021DB49C *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6, u32 param7, u32 param8); THUMB_FUNC u32 FUN_020073A0(struct UnkStruct1 *param0, struct UnkStruct63_021DB49C *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7) { s32 i; @@ -1009,3 +1020,505 @@ THUMB_FUNC u32 FUN_020073A0(struct UnkStruct1 *param0, struct UnkStruct63_021DB4 return FUN_020073E8(param0, param1, param2, param3, param4, param5, i, param6, param7); } + + +THUMB_FUNC u32 FUN_020073E8(struct UnkStruct1 *param0, struct UnkStruct63_021DB49C *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6, u32 param7, u32 param8) { + GF_ASSERT(param0->unk000[param6].unk00_0 == 0); + + MIi_CpuClearFast(0, ¶m0->unk000[param6], sizeof(struct UnkStruct2)); + param0->unk000[param6].unk00_0 = 1; + param0->unk000[param6].unk00_7 = 1; + param0->unk000[param6].unk00_8 = 1; + param0->unk000[param6].unk00_1 = param5; + + param0->unk000[param6].unk04 = *param1; + param0->unk000[param6].unk14 = *param1; + param0->unk000[param6].unk24 = (s16)param2; + param0->unk000[param6].unk26 = (s16)param3; + param0->unk000[param6].unk28 = param4; + param0->unk000[param6].unk34 = 0x100; + param0->unk000[param6].unk36 = 0x100; + param0->unk000[param6].unk54_2 = 0x1f; + param0->unk000[param6].unk50_0 = 0x1f; + param0->unk000[param6].unk50_5 = 0x1f; + param0->unk000[param6].unk50_a = 0x1f; + param0->unk000[param6].unk50_f = 0x10; + param0->unk000[param6].unk50_14 = 0x10; + param0->unk000[param6].unk50_19 = 0x10; + param0->unk000[param6].unk68 = param8; + param0->unk000[param6].unk70 = (s16)param2; + param0->unk000[param6].unk72 = (s16)param3; + param0->unk000[param6].unk6C_2 = 1; + param0->unk000[param6].unk6C_3 = 1; + param0->unk000[param6].unk6C_4 = 1; + + if (param7 != 0) { + MI_CpuCopy8(param7, param0->unk000[param6].unk84, 0x14); + } + + return ¶m0->unk000[param6]; +} + + +THUMB_FUNC void FUN_02007534(struct UnkStruct2 *param0) { + param0->unk00_0 = 0; +} + + +THUMB_FUNC void FUN_02007540(struct UnkStruct1 *param0) { + for (s32 i = 0; i < 4; i++) { + FUN_02007534(¶m0->unk000[i]); + } +} + + +THUMB_FUNC void FUN_02007558(struct UnkStruct2 *param0, u32 param1, u32 param2) { + switch (param1) { + case 0: + param0->unk24 = param2; + break; + case 1: + param0->unk26 = param2; + break; + case 2: + param0->unk28 = param2; + break; + case 3: + param0->unk2C = param2; + break; + case 4: + param0->unk2E = param2; + break; + case 5: + param0->unk30 = param2; + break; + case 6: + param0->unk54_0 = param2; + break; + case 7: + param0->unk38 = param2; + break; + case 8: + param0->unk3A = param2; + break; + case 9: + param0->unk3C = param2; + break; + case 10: + param0->unk40 = param2; + break; + case 11: + param0->unk42 = param2; + break; + case 12: + param0->unk34 = param2; + break; + case 13: + param0->unk36 = param2; + break; + case 14: + param0->unk54_1 = param2; + break; + case 15: + param0->unk44 = param2; + break; + case 16: + param0->unk45 = param2; + break; + case 17: + param0->unk46 = param2; + break; + case 18: + param0->unk47 = param2; + break; + case 19: + param0->unk70 = param2; + break; + case 20: + param0->unk72 = param2; + break; + case 21: + param0->unk74 = param2; + break; + case 22: + param0->unk76 = param2; + break; + case 23: + param0->unk54_2 = param2; + break; + case 24: + param0->unk50_0 = param2; + break; + case 25: + param0->unk50_5 = param2; + break; + case 26: + param0->unk50_a = param2; + break; + case 27: + param0->unk50_f = param2; + break; + case 28: + param0->unk50_14 = param2; + break; + case 29: + param0->unk50_19 = param2; + break; + case 30: + param0->unk54_C = param2; + param0->unk00_8 = 1; + break; + case 31: + param0->unk4C = param2; + param0->unk00_8 = 1; + break; + case 32: + param0->unk48 = param2; + param0->unk00_8 = 1; + break; + case 33: + param0->unk49 = param2; + param0->unk00_8 = 1; + break; + case 34: + param0->unk4A = param2; + break; + case 35: + param0->unk54_9 = param2; + param0->unk00_7 = 1; + break; + case 36: + param0->unk54_A = param2; + param0->unk00_7 = 1; + break; + case 37: + param0->unk54_B = param2; + break; + case 38: + param0->unk5B = param2; + break; + case 40: + param0->unk54_D = param2; + param0->unk00_7 = 1; + break; + case 41: + param0->unk6E = param2; + break; + case 42: + param0->unk6C_0 = param2; + param0->unk00_8 = 1; + break; + case 43: + param0->unk6C_2 = param2; + break; + case 44: + param0->unk6C_3 = param2; + break; + case 45: + param0->unk6C_4 = param2; + break; + case 46: + param0->unk6C_5 = param2; + break; + } +} + + +THUMB_FUNC u32 FUN_0200782C(struct UnkStruct2 *param0, u32 param1) { + switch (param1) { + case 0: + return param0->unk24; + + case 1: + return param0->unk26; + + case 2: + return param0->unk28; + + case 3: + return param0->unk2C; + + case 4: + return param0->unk2E; + + case 5: + return param0->unk30; + + case 6: + return param0->unk54_0; + + case 7: + return param0->unk38; + + case 8: + return param0->unk3A; + + case 9: + return param0->unk3C; + + case 10: + return param0->unk40; + + case 11: + return param0->unk42; + + case 12: + return param0->unk34; + + case 13: + return param0->unk36; + + case 14: + return param0->unk54_1; + + case 15: + return param0->unk44; + + case 16: + return param0->unk45; + + case 17: + return param0->unk46; + + case 18: + return param0->unk47; + + case 19: + return param0->unk70; + + case 20: + return param0->unk72; + + case 21: + return param0->unk74; + + case 22: + return param0->unk76; + + case 23: + return param0->unk54_2; + + case 24: + return param0->unk50_0; + + case 25: + return param0->unk50_5; + + case 26: + return param0->unk50_a; + + case 27: + return param0->unk50_f; + + case 28: + return param0->unk50_14; + + case 29: + return param0->unk50_19; + + case 30: + return param0->unk54_C; + + case 31: + return param0->unk4C; + + case 32: + return param0->unk48; + + case 33: + return param0->unk49; + + case 34: + return param0->unk4A; + + case 35: + return param0->unk54_9; + + case 36: + return param0->unk54_A; + + case 37: + return param0->unk54_B; + + case 38: + return param0->unk5B; + + case 40: + return param0->unk54_D; + + case 41: + return param0->unk6E; + + case 42: + return param0->unk6C_0; + + case 43: + return param0->unk6C_2; + + case 44: + return param0->unk6C_3; + + case 45: + return param0->unk6C_4; + + case 46: + return param0->unk6C_5; + + } + + GF_AssertFail(); + + return 0; +} + + +THUMB_FUNC void FUN_020079E0(struct UnkStruct2 *param0, u32 param1, u32 param2) { + switch (param1) { + case 0: + param0->unk24 += param2; + break; + case 1: + param0->unk26 += param2; + break; + case 2: + param0->unk28 += param2; + break; + case 3: + param0->unk2C += param2; + break; + case 4: + param0->unk2E += param2; + break; + case 5: + param0->unk30 += param2; + break; + case 6: + param0->unk54_0 += param2; + break; + case 7: + param0->unk38 += param2; + break; + case 8: + param0->unk3A += param2; + break; + case 9: + param0->unk3C += param2; + break; + case 10: + param0->unk40 += param2; + break; + case 11: + param0->unk42 += param2; + break; + case 12: + param0->unk34 += param2; + break; + case 13: + param0->unk36 += param2; + break; + case 14: + param0->unk54_1 += param2; + break; + case 15: + param0->unk44 += param2; + break; + case 16: + param0->unk45 += param2; + break; + case 17: + param0->unk46 += param2; + break; + case 18: + param0->unk47 += param2; + break; + case 19: + param0->unk70 += param2; + break; + case 20: + param0->unk72 += param2; + break; + case 21: + param0->unk74 += param2; + break; + case 22: + param0->unk76 += param2; + break; + case 23: + param0->unk54_2 += param2; + break; + case 24: + param0->unk50_0 += param2; + break; + case 25: + param0->unk50_5 += param2; + break; + case 26: + param0->unk50_a += param2; + break; + case 27: + param0->unk50_f += param2; + break; + case 28: + param0->unk50_14 += param2; + break; + case 29: + param0->unk50_19 += param2; + break; + case 30: + param0->unk54_C += param2; + param0->unk00_8 = 1; + break; + case 31: + param0->unk4C += param2; + param0->unk00_8 = 1; + break; + case 32: + param0->unk48 += param2; + param0->unk00_8 = 1; + break; + case 33: + param0->unk49 += param2; + param0->unk00_8 = 1; + break; + case 34: + param0->unk4A += param2; + break; + case 35: + param0->unk54_9 += param2; + param0->unk00_7 = 1; + break; + case 36: + param0->unk54_A += param2; + param0->unk00_7 = 1; + break; + case 37: + param0->unk54_B += param2; + break; + case 38: + param0->unk5B += param2; + break; + case 40: + param0->unk54_D += param2; + param0->unk00_7 = 1; + break; + case 41: + param0->unk6E += param2; + break; + case 42: + param0->unk6C_0 += param2; + param0->unk00_8 = 1; + break; + case 43: + param0->unk6C_2 += param2; + break; + case 44: + param0->unk6C_3 += param2; + break; + case 45: + param0->unk6C_4 += param2; + break; + case 46: + param0->unk6C_5 += param2; + break; + } +} |