summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/asm/unk_02006D98.s1461
-rw-r--r--arm9/src/unk_02006D98_c.c521
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, &param0->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 &param0->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(&param0->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;
+ }
+}