summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-08-20 16:30:08 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-08-20 16:30:08 -0400
commit684cde0b321e955fdec5b86e125d9993ebb318c6 (patch)
tree98a6891a6627e60c1ef0313cdf9062d0b514c002
parentd3991f920ce0e1d4f9fd34dccdd7b37a239d4192 (diff)
Decompile game_init.c
-rw-r--r--arm9/arm9.lsf2
-rw-r--r--arm9/asm/scrcmd.s5
-rw-r--r--arm9/asm/unk_020023C0.s12
-rw-r--r--arm9/asm/unk_02015EA0.s1099
-rw-r--r--arm9/asm/unk_0201CC08.s6
-rw-r--r--arm9/asm/unk_0201E66C.s6
-rw-r--r--arm9/asm/unk_020208B8.s42
-rw-r--r--arm9/asm/unk_02031734.s6
-rw-r--r--arm9/asm/unk_02033F50.s8
-rw-r--r--arm9/asm/unk_02034188.s8
-rw-r--r--arm9/asm/unk_02048904.s6
-rw-r--r--arm9/asm/unk_0206C700.s4
-rw-r--r--arm9/asm/unk_0206F3FC.s12
-rw-r--r--arm9/asm/unk_020772F0.s22
-rw-r--r--arm9/asm/unk_02079C70.s6
-rw-r--r--arm9/asm/unk_0207F95C.s6
-rw-r--r--arm9/asm/unk_020859C0.s2
-rw-r--r--arm9/asm/unk_02086084.s4
-rw-r--r--arm9/asm/unk_02089498.s6
-rw-r--r--arm9/asm/unk_02089960.s4
-rw-r--r--arm9/asm/unk_02089D90.s8
-rw-r--r--arm9/asm/unk_02089F24.s14
-rw-r--r--arm9/asm/unk_0208A998.s8
-rw-r--r--arm9/global.inc6
-rw-r--r--arm9/lib/include/OS_interrupt.h24
-rw-r--r--arm9/lib/include/PAD_pad.h6
-rw-r--r--arm9/lib/include/ioreg_GX.h32
-rw-r--r--arm9/lib/include/mmap.h28
-rw-r--r--arm9/lib/include/tp.h41
-rw-r--r--arm9/modules/05/asm/mod05_021D74E0.s6
-rw-r--r--arm9/modules/06/asm/module_06.s4
-rw-r--r--arm9/modules/07/asm/module_07.s10
-rw-r--r--arm9/modules/11/asm/module_11_thumb1.s6
-rw-r--r--arm9/modules/11/asm/module_11_thumb2.s8
-rw-r--r--arm9/modules/12/asm/module_12.s28
-rw-r--r--arm9/modules/14/asm/module_14.s4
-rw-r--r--arm9/modules/15/asm/module_15.s4
-rw-r--r--arm9/modules/16/asm/module_16.s48
-rw-r--r--arm9/modules/17/asm/module_17.s52
-rw-r--r--arm9/modules/18/asm/module_18.s70
-rw-r--r--arm9/modules/53/asm/module_53.s12
-rw-r--r--arm9/modules/54/asm/module_54.s14
-rw-r--r--arm9/modules/55/asm/module_55.s6
-rw-r--r--arm9/modules/56/asm/module_56.s6
-rw-r--r--arm9/modules/57/asm/module_57.s30
-rw-r--r--arm9/modules/58/asm/module_58.s18
-rw-r--r--arm9/modules/59/asm/module_59.s18
-rw-r--r--arm9/modules/60/asm/module_60.s6
-rw-r--r--arm9/modules/61/asm/module_61.s6
-rw-r--r--arm9/modules/62/asm/module_62.s8
-rw-r--r--arm9/modules/63/asm/mod63_021D74E0.s14
-rw-r--r--arm9/modules/63/asm/mod63_021D8890.s18
-rw-r--r--arm9/modules/64/asm/module_64.s4
-rw-r--r--arm9/modules/65/asm/module_65.s12
-rw-r--r--arm9/modules/66/asm/module_66.s10
-rw-r--r--arm9/modules/67/asm/module_67.s6
-rw-r--r--arm9/modules/68/asm/module_68.s10
-rw-r--r--arm9/modules/69/asm/module_69.s2
-rw-r--r--arm9/modules/70/asm/module_70.s4
-rw-r--r--arm9/modules/71/asm/module_71.s8
-rw-r--r--arm9/modules/73/asm/module_73.s26
-rw-r--r--arm9/modules/74/asm/module_74.s6
-rw-r--r--arm9/modules/75/asm/module_75.s50
-rw-r--r--arm9/modules/76/asm/module_76.s8
-rw-r--r--arm9/modules/77/asm/module_77.s28
-rw-r--r--arm9/modules/78/asm/module_78.s2
-rw-r--r--arm9/modules/80/asm/module_80.s6
-rw-r--r--arm9/modules/81/asm/module_81.s8
-rw-r--r--arm9/modules/82/asm/module_82.s6
-rw-r--r--arm9/modules/83/asm/module_83.s46
-rw-r--r--arm9/modules/84/asm/module_84_thumb1.s6
-rw-r--r--arm9/modules/85/asm/module_85.s6
-rw-r--r--arm9/modules/86/asm/module_86.s10
-rw-r--r--arm9/src/game_init.c532
-rw-r--r--arm9/src/main.c20
-rw-r--r--arm9/src/poke_overlay.c2
-rw-r--r--arm9/src/unk_0200CA44.c2
-rw-r--r--include/MWC_string.h2
-rw-r--r--include/game_init.h34
-rw-r--r--include/main.h65
-rw-r--r--include/unk_0201B4E8.h7
81 files changed, 1187 insertions, 1570 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index ee9448ae..83eedb94 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -47,7 +47,7 @@ Static arm9
Object unk_02015CC0.o
Object unk_02015D14.o
Object unk_02015E30.o
- Object unk_02015EA0.o
+ Object game_init.o
Object unk_020166C8.o
Object unk_02016B94.o
Object unk_0201B1A8.o
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
index 876bd329..0c72444d 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd.s
@@ -6,7 +6,6 @@
.extern UNK_020F34FC
.extern UNK_020F3538
.extern gMain
- .extern gUnk021C4918
.section .bss
@@ -11112,13 +11111,13 @@ FUN_0203F234: ; 0x0203F234
add r1, r0, #0x0
ldr r0, [r4, #0x0]
bl GetVarPointer
- ldr r1, _0203F250 ; =gUnk021C4918
+ ldr r1, _0203F250 ; =gMain + 0x60
ldrb r1, [r1, #0x6]
strh r1, [r0, #0x0]
mov r0, #0x1
pop {r4, pc}
.balign 4
-_0203F250: .word gUnk021C4918
+_0203F250: .word gMain + 0x60
thumb_func_start FUN_0203F254
FUN_0203F254: ; 0x0203F254
diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s
index 110db7ea..a84fda87 100644
--- a/arm9/asm/unk_020023C0.s
+++ b/arm9/asm/unk_020023C0.s
@@ -3,7 +3,7 @@
.section .bss
- .extern UNK_021C48F8
+ .extern gMain
.extern gMain
.global gTextFlags
@@ -57,7 +57,7 @@ _020023F0:
lsr r0, r0, #0x1f
bne _02002414
_02002402:
- ldr r0, _0200265C ; =UNK_021C48F8
+ ldr r0, _0200265C ; =gMain + 0x40
ldrh r0, [r0, #0x22]
cmp r0, #0x0
beq _02002432
@@ -111,7 +111,7 @@ _02002432:
mov r1, #0x3
tst r1, r2
bne _02002478
- ldr r1, _0200265C ; =UNK_021C48F8
+ ldr r1, _0200265C ; =gMain + 0x40
ldrh r1, [r1, #0x20]
cmp r1, #0x0
beq _02002486
@@ -375,7 +375,7 @@ _0200264E:
b _020026CA
.balign 4
_02002658: .word gMain
-_0200265C: .word UNK_021C48F8
+_0200265C: .word gMain + 0x40
_02002660: .word gTextFlags
_02002664: .word 0x0000F0FD
_02002668: .word 0x000025BD
@@ -915,7 +915,7 @@ FUN_02002A94: ; 0x02002A94
mov r0, #0x3
tst r0, r1
bne _02002AB2
- ldr r0, _02002AD0 ; =UNK_021C48F8
+ ldr r0, _02002AD0 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0x0
beq _02002AC6
@@ -939,7 +939,7 @@ _02002AC6:
pop {r3, pc}
nop
_02002ACC: .word gMain
-_02002AD0: .word UNK_021C48F8
+_02002AD0: .word gMain + 0x40
_02002AD4: .word gTextFlags
_02002AD8: .word 0x000005DC
diff --git a/arm9/asm/unk_02015EA0.s b/arm9/asm/unk_02015EA0.s
deleted file mode 100644
index 047d2a6b..00000000
--- a/arm9/asm/unk_02015EA0.s
+++ /dev/null
@@ -1,1099 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .rodata
-
- .global UNK_020EDB10
-UNK_020EDB10: ; 0x020EDB10
- .byte 0x00, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .section .bss
-
- .global gMain
-gMain: ; 0x021C48B8
- .space 0x40
-
- .global UNK_021C48F8
-UNK_021C48F8: ; 0x021C48F8
- .space 0x20
-
- .global gUnk021C4918
-gUnk021C4918: ; 0x021C4918
- .space 0x10
-
- .global UNK_021C4928
-UNK_021C4928: ; 0x021C4928
- .space 0x4
-
- .global UNK_021C492C
-UNK_021C492C: ; 0x021C492C
- .space 0x3f4
-
- .global UNK_021C4D20
-UNK_021C4D20: ; 0x021C4D20
- .space 0x8
-
- .text
-
- thumb_func_start FUN_02015EA0
-FUN_02015EA0: ; 0x02015EA0
- push {r3, lr}
- ldr r3, _02015EC8 ; =0x027E0000
- ldr r1, _02015ECC ; =0x00003FF8
- mov r0, #0x1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- mov r0, #0x3
- bl MI_WaitDma
- ldr r0, _02015ED0 ; =gMain
- ldr r0, [r0, #0x1c]
- bl FUN_0201B5CC
- ldr r0, _02015ED0 ; =gMain
- ldr r1, [r0, #0x30]
- add r1, r1, #0x1
- str r1, [r0, #0x30]
- pop {r3, pc}
- nop
-_02015EC8: .word 0x027E0000
-_02015ECC: .word 0x00003FF8
-_02015ED0: .word gMain
-
- thumb_func_start FUN_02015ED4
-FUN_02015ED4: ; 0x02015ED4
- ldr r3, _02015EE8 ; =0x027E0000
- ldr r1, _02015EEC ; =0x00003FF8
- mov r0, #0x1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- ldr r3, _02015EF0 ; =MI_WaitDma
- mov r0, #0x3
- bx r3
- nop
-_02015EE8: .word 0x027E0000
-_02015EEC: .word 0x00003FF8
-_02015EF0: .word MI_WaitDma
-
- thumb_func_start FUN_02015EF4
-FUN_02015EF4: ; 0x02015EF4
- push {r3, lr}
- mov r0, #0x1
- bl OS_DisableIrqMask
- ldr r1, _02015F0C ; =FUN_02015ED4
- mov r0, #0x1
- bl OS_SetIrqFunction
- mov r0, #0x1
- bl OS_EnableIrqMask
- pop {r3, pc}
- .balign 4
-_02015F0C: .word FUN_02015ED4
-
- thumb_func_start FUN_02015F10
-FUN_02015F10: ; 0x02015F10
- ldr r2, _02015F18 ; =gMain
- str r0, [r2, #0x0]
- str r1, [r2, #0x4]
- bx lr
- .balign 4
-_02015F18: .word gMain
-
- thumb_func_start FUN_02015F1C
-FUN_02015F1C: ; 0x02015F1C
- push {r3, lr}
- mov r0, #0x0
- bl FUN_02015F80
- ldr r0, _02015F30 ; =gMain
- mov r1, #0x0
- str r1, [r0, #0x8]
- str r1, [r0, #0xc]
- pop {r3, pc}
- nop
-_02015F30: .word gMain
-
- thumb_func_start FUN_02015F34
-FUN_02015F34: ; 0x02015F34
- push {r3, lr}
- cmp r0, #0x0
- bne _02015F4C
- mov r0, #0x0
- bl FUN_02015F80
- ldr r0, _02015F68 ; =gMain
- mov r1, #0x0
- str r1, [r0, #0x8]
- str r1, [r0, #0xc]
- mov r0, #0x1
- pop {r3, pc}
-_02015F4C:
- ldr r2, _02015F68 ; =gMain
- ldr r3, [r2, #0x8]
- cmp r3, #0x0
- bne _02015F62
- str r1, [r2, #0xc]
- str r0, [r2, #0x8]
- mov r0, #0x1
- bl FUN_02015F80
- mov r0, #0x1
- pop {r3, pc}
-_02015F62:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_02015F68: .word gMain
-
- thumb_func_start FUN_02015F6C
-FUN_02015F6C: ; 0x02015F6C
- push {r3, lr}
- ldr r0, _02015F7C ; =gMain
- ldr r1, [r0, #0x8]
- cmp r1, #0x0
- beq _02015F7A
- ldr r0, [r0, #0xc]
- blx r1
-_02015F7A:
- pop {r3, pc}
- .balign 4
-_02015F7C: .word gMain
-
- thumb_func_start FUN_02015F80
-FUN_02015F80: ; 0x02015F80
- push {r3, lr}
- ldr r2, _02015FC0 ; =0x04000208
- ldrh r1, [r2, #0x0]
- mov r1, #0x0
- strh r1, [r2, #0x0]
- cmp r0, #0x0
- bne _02015F9E
- ldr r0, [r2, #0x8]
- mov r0, #0x2
- bl OS_DisableIrqMask
- mov r0, #0x0
- bl GX_HBlankIntr
- b _02015FB4
-_02015F9E:
- ldr r0, [r2, #0x8]
- ldr r1, _02015FC4 ; =FUN_02015F6C
- mov r0, #0x2
- bl OS_SetIrqFunction
- mov r0, #0x2
- bl OS_EnableIrqMask
- mov r0, #0x1
- bl GX_HBlankIntr
-_02015FB4:
- ldr r1, _02015FC0 ; =0x04000208
- ldrh r0, [r1, #0x0]
- mov r0, #0x1
- strh r0, [r1, #0x0]
- pop {r3, pc}
- nop
-_02015FC0: .word 0x04000208
-_02015FC4: .word FUN_02015F6C
-
- thumb_func_start FUN_02015FC8
-FUN_02015FC8: ; 0x02015FC8
- push {r3, lr}
- sub sp, #0x30
- add r0, sp, #0x10
- bl OS_GetLowEntropyData
- add r0, sp, #0x0
- add r1, sp, #0x10
- mov r2, #0x20
- bl MATH_CalcMD5
- mov r3, #0x0
- add r1, r3, #0x0
- add r2, sp, #0x0
-_02015FE2:
- ldrb r0, [r2, #0x0]
- add r1, r1, #0x1
- add r2, r2, #0x1
- add r3, r3, r0
- cmp r1, #0x10
- blo _02015FE2
- lsl r0, r3, #0x18
- lsr r3, r0, #0x18
- mov r0, #0x3
- tst r0, r3
- beq _02016002
- mov r0, #0x3
-_02015FFA:
- add r3, r3, #0x1
- add r1, r3, #0x0
- tst r1, r0
- bne _02015FFA
-_02016002:
- ldr r0, _02016010 ; =UNK_020EDB10
- mov r1, #0x4
- mov r2, #0x5c
- bl FUN_020166C8
- add sp, #0x30
- pop {r3, pc}
- .balign 4
-_02016010: .word UNK_020EDB10
-
- thumb_func_start InitSystemForTheGame
-InitSystemForTheGame: ; 0x02016014
- push {r3-r5, lr}
- bl OS_Init
- bl FX_Init
- ldr r2, _02016124 ; =0x04000304
- ldr r0, _02016128 ; =0xFFFFFDF1
- ldrh r1, [r2, #0x0]
- and r1, r0
- ldr r0, _0201612C ; =0x0000020E
- orr r0, r1
- strh r0, [r2, #0x0]
- bl GX_Init
- bl OS_InitTick
- bl FUN_02015FC8
- mov r0, #0xa0
- bl FUN_0201B578
- add r1, r0, #0x0
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r1, r0, #0x0
- mov r0, #0xa0
- bl FUN_0201B580
- ldr r1, _02016130 ; =gMain
- str r0, [r1, #0x18]
- mov r0, #0x10
- bl FUN_0201B578
- add r1, r0, #0x0
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r1, r0, #0x0
- mov r0, #0x10
- bl FUN_0201B580
- ldr r1, _02016130 ; =gMain
- str r0, [r1, #0x1c]
- mov r0, #0x20
- bl FUN_0201B578
- add r1, r0, #0x0
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r1, r0, #0x0
- mov r0, #0x20
- bl FUN_0201B580
- ldr r1, _02016130 ; =gMain
- str r0, [r1, #0x20]
- mov r0, #0x4
- bl FUN_0201B578
- add r1, r0, #0x0
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r1, r0, #0x0
- mov r0, #0x4
- bl FUN_0201B580
- ldr r1, _02016130 ; =gMain
- str r0, [r1, #0x24]
- bl GX_DispOff
- ldr r2, _02016134 ; =0x04001000
- ldr r0, _02016138 ; =0xFFFEFFFF
- ldr r1, [r2, #0x0]
- and r0, r1
- str r0, [r2, #0x0]
- ldr r2, _02016124 ; =0x04000304
- ldrh r1, [r2, #0x0]
- lsr r0, r2, #0xb
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r1, _0201613C ; =FUN_02015EA0
- mov r0, #0x1
- bl OS_SetIrqFunction
- mov r0, #0x1
- bl OS_EnableIrqMask
- mov r0, #0x1
- lsl r0, r0, #0x12
- bl OS_EnableIrqMask
- ldr r1, _02016140 ; =0x04000208
- ldrh r0, [r1, #0x0]
- mov r0, #0x1
- strh r0, [r1, #0x0]
- bl GX_VBlankIntr
- mov r0, #0x1
- bl FS_Init
- bl FUN_02022450
- mov r0, #0x0
- add r1, r0, #0x0
- bl FS_TryLoadTable
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r4, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r5, r0, #0x0
- bne _02016108
- bl ErrorHandling
-_02016108:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FS_TryLoadTable
- ldr r0, _02016130 ; =gMain
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x8]
- str r1, [r0, #0x10]
- str r1, [r0, #0x14]
- str r1, [r0, #0x2c]
- ldr r0, _02016144 ; =gUnk021C4918
- strb r1, [r0, #0x5]
- pop {r3-r5, pc}
- .balign 4
-_02016124: .word 0x04000304
-_02016128: .word 0xFFFFFDF1
-_0201612C: .word 0x0000020E
-_02016130: .word gMain
-_02016134: .word 0x04001000
-_02016138: .word 0xFFFEFFFF
-_0201613C: .word FUN_02015EA0
-_02016140: .word 0x04000208
-_02016144: .word gUnk021C4918
-
- thumb_func_start InitGraphicMemory
-InitGraphicMemory: ; 0x02016148
- push {r3, lr}
- ldr r0, _02016198 ; =0x000001FF
- bl GX_SetBankForLCDC
- mov r1, #0x1a
- mov r2, #0x29
- mov r0, #0x0
- lsl r1, r1, #0x16
- lsl r2, r2, #0xe
- bl MIi_CpuClearFast
- bl GX_DisableBankForLCDC
- mov r1, #0x7
- mov r2, #0x1
- mov r0, #0xc0
- lsl r1, r1, #0x18
- lsl r2, r2, #0xa
- bl MIi_CpuClearFast
- mov r2, #0x1
- ldr r1, _0201619C ; =0x07000400
- mov r0, #0xc0
- lsl r2, r2, #0xa
- bl MIi_CpuClearFast
- mov r1, #0x5
- mov r2, #0x1
- mov r0, #0x0
- lsl r1, r1, #0x18
- lsl r2, r2, #0xa
- bl MIi_CpuClearFast
- mov r2, #0x1
- ldr r1, _020161A0 ; =0x05000400
- mov r0, #0x0
- lsl r2, r2, #0xa
- bl MIi_CpuClearFast
- pop {r3, pc}
- .balign 4
-_02016198: .word 0x000001FF
-_0201619C: .word 0x07000400
-_020161A0: .word 0x05000400
-
- thumb_func_start FUN_020161A4
-FUN_020161A4: ; 0x020161A4
- push {r4-r6, lr}
- sub sp, #0x48
- add r6, r0, #0x0
- add r4, r1, #0x0
- add r0, sp, #0x0
- bl FS_InitFile
- add r0, sp, #0x0
- add r1, r4, #0x0
- bl FS_OpenFile
- cmp r0, #0x0
- beq _020161F0
- ldr r1, [sp, #0x28]
- ldr r0, [sp, #0x24]
- sub r5, r1, r0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl AllocFromHeap
- add r4, r0, #0x0
- beq _020161E8
- add r0, sp, #0x0
- add r1, r4, #0x0
- add r2, r5, #0x0
- bl FS_ReadFile
- cmp r5, r0
- beq _020161E8
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_02016A8C
- mov r4, #0x0
-_020161E8:
- add r0, sp, #0x0
- bl FS_CloseFile
- b _020161F2
-_020161F0:
- mov r4, #0x0
-_020161F2:
- add r0, r4, #0x0
- add sp, #0x48
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020161F8
-FUN_020161F8: ; 0x020161F8
- push {r3-r5, lr}
- sub sp, #0x48
- add r5, r0, #0x0
- add r0, sp, #0x0
- add r4, r1, #0x0
- bl FS_InitFile
- add r0, sp, #0x0
- add r1, r5, #0x0
- bl FS_OpenFile
- cmp r0, #0x0
- beq _0201622A
- ldr r1, [sp, #0x28]
- ldr r0, [sp, #0x24]
- sub r2, r1, r0
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- beq _02016224
- add r0, sp, #0x0
- bl FS_ReadFile
-_02016224:
- add r0, sp, #0x0
- bl FS_CloseFile
-_0201622A:
- add sp, #0x48
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02016230
-FUN_02016230: ; 0x02016230
- push {r3-r7, lr}
- sub sp, #0x8
- str r0, [sp, #0x0]
- bl strlen
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- lsr r2, r3, #0x1f
- lsl r1, r3, #0x1e
- sub r1, r1, r2
- mov r0, #0x1e
- ror r1, r0
- add r0, r2, r1
- beq _02016258
- lsr r0, r3, #0x2
- add r0, r0, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
- b _0201625E
-_02016258:
- lsl r0, r3, #0xe
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
-_0201625E:
- ldr r0, [sp, #0x4]
- mov r7, #0x0
- mov r12, r7
- cmp r0, #0x0
- ble _0201629A
- add r6, r7, #0x0
- add r4, r7, #0x0
-_0201626C:
- ldr r2, [sp, #0x0]
- mov r1, #0x0
- add r0, r1, #0x0
- add r2, r2, r6
- add r3, r1, #0x0
-_02016276:
- ldrsb r5, [r2, r4]
- cmp r5, #0x0
- beq _0201628A
- lsl r5, r3
- add r0, r0, #0x1
- orr r1, r5
- add r2, r2, #0x1
- add r3, #0x8
- cmp r0, #0x4
- blt _02016276
-_0201628A:
- mov r0, r12
- eor r7, r1
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- add r6, r6, #0x4
- mov r12, r1
- cmp r1, r0
- blt _0201626C
-_0201629A:
- add r0, r7, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020162A0
-FUN_020162A0: ; 0x020162A0
- ldr r3, _020162C4 ; =UNK_021C4928
- mov r2, #0x0
-_020162A4:
- ldr r1, [r3, #0x4]
- cmp r0, r1
- bne _020162B4
- ldr r1, [r3, #0x0]
- cmp r1, #0x0
- beq _020162B4
- add r0, r2, #0x0
- bx lr
-_020162B4:
- add r2, r2, #0x1
- add r3, #0x8
- cmp r2, #0x80
- blt _020162A4
- mov r0, #0x0
- mvn r0, r0
- bx lr
- nop
-_020162C4: .word UNK_021C4928
-
- thumb_func_start FUN_020162C8
-FUN_020162C8: ; 0x020162C8
- push {r3-r4}
- ldr r3, _020162F4 ; =UNK_021C4928
- mov r4, #0x0
-_020162CE:
- ldr r2, [r3, #0x0]
- cmp r2, #0x0
- bne _020162E4
- ldr r2, _020162F4 ; =UNK_021C4928
- lsl r3, r4, #0x3
- str r0, [r2, r3]
- ldr r0, _020162F8 ; =UNK_021C492C
- str r1, [r0, r3]
- add r0, r4, #0x0
- pop {r3-r4}
- bx lr
-_020162E4:
- add r4, r4, #0x1
- add r3, #0x8
- cmp r4, #0x80
- blt _020162CE
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r4}
- bx lr
- .balign 4
-_020162F4: .word UNK_021C4928
-_020162F8: .word UNK_021C492C
-
- thumb_func_start FUN_020162FC
-FUN_020162FC: ; 0x020162FC
- push {r3-r7, lr}
- mov r6, #0x0
- ldr r5, _02016320 ; =UNK_021C4D20
- mov r4, #0x7f
- sub r7, r6, #0x1
-_02016306:
- ldr r0, [r5, #0x0]
- cmp r0, #0x0
- beq _02016314
- bl FreeToHeap
- str r6, [r5, #0x0]
- str r6, [r5, #0x4]
-_02016314:
- sub r4, r4, #0x1
- sub r5, #0x8
- cmp r4, r7
- bgt _02016306
- pop {r3-r7, pc}
- nop
-_02016320: .word UNK_021C4D20
-
- thumb_func_start FUN_02016324
-FUN_02016324: ; 0x02016324
- push {r3-r7, lr}
- sub sp, #0x68
- add r2, r0, #0x0
- mov r5, #0x0
- ldrsb r0, [r2, r5]
- add r4, r1, #0x0
- cmp r0, #0x21
- add r0, sp, #0x0
- bne _02016340
- add r1, r2, #0x1
- bl strcpy
- mov r5, #0x1
- b _02016346
-_02016340:
- add r1, r2, #0x0
- bl strcpy
-_02016346:
- add r0, sp, #0x0
- bl FUN_02016230
- add r7, r0, #0x0
- bl FUN_020162A0
- cmp r0, #0x0
- blt _02016362
- cmp r5, #0x0
- bne _02016362
- lsl r1, r0, #0x3
- ldr r0, _020163B8 ; =UNK_021C4928
- ldr r4, [r0, r1]
- b _020163B2
-_02016362:
- add r0, sp, #0x20
- bl FS_InitFile
- add r0, sp, #0x20
- add r1, sp, #0x0
- bl FS_OpenFile
- cmp r0, #0x0
- beq _020163B0
- ldr r1, [sp, #0x48]
- ldr r0, [sp, #0x44]
- sub r6, r1, r0
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl AllocFromHeap
- add r4, r0, #0x0
- beq _0201639C
- add r0, sp, #0x20
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FS_ReadFile
- cmp r6, r0
- beq _0201639C
- add r0, r4, #0x0
- bl FreeToHeap
- mov r4, #0x0
-_0201639C:
- add r0, sp, #0x20
- bl FS_CloseFile
- cmp r5, #0x0
- bne _020163B2
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl FUN_020162C8
- b _020163B2
-_020163B0:
- mov r4, #0x0
-_020163B2:
- add r0, r4, #0x0
- add sp, #0x68
- pop {r3-r7, pc}
- .balign 4
-_020163B8: .word UNK_021C4928
-
- thumb_func_start FUN_020163BC
-FUN_020163BC: ; 0x020163BC
- push {r3, lr}
- sub sp, #0x8
- ldr r0, _0201641C ; =gMain
- mov r2, #0x0
- str r2, [r0, #0x34]
- str r2, [r0, #0x38]
- str r2, [r0, #0x3c]
- str r2, [r0, #0x40]
- str r2, [r0, #0x44]
- str r2, [r0, #0x48]
- str r2, [r0, #0x4c]
- str r2, [r0, #0x50]
- mov r1, #0x8
- str r1, [r0, #0x54]
- mov r1, #0xf
- str r1, [r0, #0x58]
- ldr r0, _02016420 ; =UNK_021C48F8
- strh r2, [r0, #0x1c]
- strh r2, [r0, #0x1e]
- strh r2, [r0, #0x20]
- strh r2, [r0, #0x22]
- ldr r0, _02016424 ; =gUnk021C4918
- strb r2, [r0, #0x4]
- bl TP_Init
- add r0, sp, #0x0
- bl TP_GetUserInfo
- cmp r0, #0x1
- add r0, sp, #0x0
- bne _02016402
- bl TP_SetCalibrateParam
- add sp, #0x8
- pop {r3, pc}
-_02016402:
- ldr r1, _02016428 ; =0x000002AE
- strh r1, [r0, #0x0]
- ldr r1, _0201642C ; =0x0000058C
- strh r1, [r0, #0x2]
- ldr r1, _02016430 ; =0x00000E25
- strh r1, [r0, #0x4]
- ldr r1, _02016434 ; =0x00001208
- strh r1, [r0, #0x6]
- add r0, sp, #0x0
- bl TP_SetCalibrateParam
- add sp, #0x8
- pop {r3, pc}
- .balign 4
-_0201641C: .word gMain
-_02016420: .word UNK_021C48F8
-_02016424: .word gUnk021C4918
-_02016428: .word 0x000002AE
-_0201642C: .word 0x0000058C
-_02016430: .word 0x00000E25
-_02016434: .word 0x00001208
-
- thumb_func_start FUN_02016438
-FUN_02016438: ; 0x02016438
- ldr r1, _02016440 ; =gUnk021C4918
- strb r0, [r1, #0x6]
- bx lr
- nop
-_02016440: .word gUnk021C4918
-
- thumb_func_start FUN_02016444
-FUN_02016444: ; 0x02016444
- ldr r1, _02016450 ; =gUnk021C4918
- ldrb r2, [r1, #0x7]
- orr r0, r2
- strb r0, [r1, #0x7]
- bx lr
- nop
-_02016450: .word gUnk021C4918
-
- thumb_func_start FUN_02016454
-FUN_02016454: ; 0x02016454
- ldr r1, _02016460 ; =gUnk021C4918
- mvn r0, r0
- ldrb r2, [r1, #0x7]
- and r0, r2
- strb r0, [r1, #0x7]
- bx lr
- .balign 4
-_02016460: .word gUnk021C4918
-
- thumb_func_start FUN_02016464
-FUN_02016464: ; 0x02016464
- push {r4, lr}
- sub sp, #0x10
- ldr r2, _02016550 ; =0x027FFFA8
- mov r0, #0x2
- ldrh r1, [r2, #0x0]
- lsl r0, r0, #0xe
- and r0, r1
- asr r0, r0, #0xf
- beq _0201648A
- ldr r0, _02016554 ; =gMain
- mov r1, #0x0
- str r1, [r0, #0x48]
- str r1, [r0, #0x44]
- str r1, [r0, #0x4c]
- ldr r0, _02016558 ; =UNK_021C48F8
- add sp, #0x10
- strh r1, [r0, #0x20]
- strh r1, [r0, #0x22]
- pop {r4, pc}
-_0201648A:
- ldr r0, _0201655C ; =0x04000130
- ldrh r1, [r0, #0x0]
- ldrh r0, [r2, #0x0]
- orr r1, r0
- ldr r0, _02016560 ; =0x00002FFF
- eor r1, r0
- and r0, r1
- ldr r1, _02016554 ; =gMain
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- ldr r2, [r1, #0x38]
- add r3, r0, #0x0
- eor r3, r2
- and r3, r0
- str r3, [r1, #0x3c]
- str r3, [r1, #0x40]
- cmp r0, #0x0
- beq _020164C2
- cmp r2, r0
- bne _020164C2
- ldr r2, [r1, #0x50]
- sub r2, r2, #0x1
- str r2, [r1, #0x50]
- bne _020164C8
- str r0, [r1, #0x40]
- ldr r2, [r1, #0x54]
- str r2, [r1, #0x50]
- b _020164C8
-_020164C2:
- ldr r1, _02016554 ; =gMain
- ldr r2, [r1, #0x58]
- str r2, [r1, #0x50]
-_020164C8:
- ldr r1, _02016554 ; =gMain
- str r0, [r1, #0x38]
- ldr r2, [r1, #0x3c]
- str r2, [r1, #0x48]
- str r0, [r1, #0x44]
- ldr r0, [r1, #0x40]
- str r0, [r1, #0x4c]
- bl FUN_02016568
- ldr r0, _02016564 ; =gUnk021C4918
- ldrb r0, [r0, #0x4]
- cmp r0, #0x0
- bne _020164F4
- add r4, sp, #0x8
-_020164E4:
- bl TP_RequestSamplingAsync
- add r0, r4, #0x0
- bl TP_WaitRawResult
- cmp r0, #0x0
- bne _020164E4
- b _020164FA
-_020164F4:
- add r0, sp, #0x8
- bl TP_GetLatestRawPointInAuto
-_020164FA:
- add r0, sp, #0x0
- add r1, sp, #0x8
- bl TP_GetCalibratedPoint
- add r1, sp, #0x0
- ldrh r3, [r1, #0x6]
- cmp r3, #0x0
- bne _02016516
- ldrh r2, [r1, #0x0]
- ldr r0, _02016558 ; =UNK_021C48F8
- strh r2, [r0, #0x1c]
- ldrh r1, [r1, #0x2]
- strh r1, [r0, #0x1e]
- b _0201653A
-_02016516:
- ldr r0, _02016558 ; =UNK_021C48F8
- ldrh r2, [r0, #0x22]
- cmp r2, #0x0
- beq _02016536
- cmp r3, #0x1
- beq _0201652A
- cmp r3, #0x2
- beq _02016530
- cmp r3, #0x3
- b _0201653A
-_0201652A:
- ldrh r1, [r1, #0x2]
- strh r1, [r0, #0x1e]
- b _0201653A
-_02016530:
- ldrh r1, [r1, #0x0]
- strh r1, [r0, #0x1c]
- b _0201653A
-_02016536:
- mov r0, #0x0
- strh r0, [r1, #0x4]
-_0201653A:
- add r0, sp, #0x0
- ldrh r2, [r0, #0x4]
- ldr r0, _02016558 ; =UNK_021C48F8
- ldrh r1, [r0, #0x22]
- eor r1, r2
- and r1, r2
- strh r1, [r0, #0x20]
- strh r2, [r0, #0x22]
- add sp, #0x10
- pop {r4, pc}
- nop
-_02016550: .word 0x027FFFA8
-_02016554: .word gMain
-_02016558: .word UNK_021C48F8
-_0201655C: .word 0x04000130
-_02016560: .word 0x00002FFF
-_02016564: .word gUnk021C4918
-
- thumb_func_start FUN_02016568
-FUN_02016568: ; 0x02016568
- ldr r0, _02016690 ; =gMain
- ldr r1, [r0, #0x34]
- cmp r1, #0x3
- bls _02016572
- b _0201668C
-_02016572:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0201657E: ; jump table (using 16-bit offset)
- .short _0201668C - _0201657E - 2; case 0
- .short _02016586 - _0201657E - 2; case 1
- .short _020165BC - _0201657E - 2; case 2
- .short _02016642 - _0201657E - 2; case 3
-_02016586:
- ldr r2, [r0, #0x48]
- mov r1, #0x8
- add r3, r2, #0x0
- tst r3, r1
- beq _02016596
- lsl r1, r1, #0x7
- orr r1, r2
- str r1, [r0, #0x48]
-_02016596:
- ldr r1, _02016690 ; =gMain
- mov r0, #0x8
- ldr r2, [r1, #0x44]
- add r3, r2, #0x0
- tst r3, r0
- beq _020165A8
- lsl r0, r0, #0x7
- orr r0, r2
- str r0, [r1, #0x44]
-_020165A8:
- ldr r1, _02016690 ; =gMain
- mov r0, #0x8
- ldr r2, [r1, #0x4c]
- add r3, r2, #0x0
- tst r3, r0
- beq _0201668C
- lsl r0, r0, #0x7
- orr r0, r2
- str r0, [r1, #0x4c]
- bx lr
-_020165BC:
- ldr r3, [r0, #0x48]
- mov r0, #0x1
- lsl r0, r0, #0xa
- add r2, r3, #0x0
- mov r1, #0x0
- tst r2, r0
- beq _020165CE
- lsl r0, r0, #0x1
- orr r1, r0
-_020165CE:
- mov r0, #0x2
- lsl r0, r0, #0xa
- add r2, r3, #0x0
- tst r2, r0
- beq _020165DC
- lsr r0, r0, #0x1
- orr r1, r0
-_020165DC:
- ldr r2, _02016690 ; =gMain
- ldr r0, _02016694 ; =0x0000F3FF
- ldr r3, [r2, #0x48]
- and r0, r3
- orr r0, r1
- str r0, [r2, #0x48]
- ldr r3, [r2, #0x44]
- mov r1, #0x1
- lsl r1, r1, #0xa
- add r2, r3, #0x0
- mov r0, #0x0
- tst r2, r1
- beq _020165FA
- lsl r1, r1, #0x1
- orr r0, r1
-_020165FA:
- mov r1, #0x2
- lsl r1, r1, #0xa
- add r2, r3, #0x0
- tst r2, r1
- beq _02016608
- lsr r1, r1, #0x1
- orr r0, r1
-_02016608:
- ldr r2, _02016690 ; =gMain
- ldr r1, _02016694 ; =0x0000F3FF
- ldr r3, [r2, #0x44]
- and r1, r3
- orr r0, r1
- str r0, [r2, #0x44]
- ldr r3, [r2, #0x4c]
- mov r1, #0x1
- lsl r1, r1, #0xa
- add r2, r3, #0x0
- mov r0, #0x0
- tst r2, r1
- beq _02016626
- lsl r1, r1, #0x1
- orr r0, r1
-_02016626:
- mov r1, #0x2
- lsl r1, r1, #0xa
- add r2, r3, #0x0
- tst r2, r1
- beq _02016634
- lsr r1, r1, #0x1
- orr r0, r1
-_02016634:
- ldr r2, _02016690 ; =gMain
- ldr r1, _02016694 ; =0x0000F3FF
- ldr r3, [r2, #0x4c]
- and r1, r3
- orr r0, r1
- str r0, [r2, #0x4c]
- bx lr
-_02016642:
- mov r1, #0x2
- ldr r2, [r0, #0x48]
- lsl r1, r1, #0x8
- tst r1, r2
- beq _02016652
- mov r1, #0x1
- orr r1, r2
- str r1, [r0, #0x48]
-_02016652:
- ldr r1, _02016690 ; =gMain
- mov r0, #0x2
- ldr r2, [r1, #0x44]
- lsl r0, r0, #0x8
- tst r0, r2
- beq _02016664
- mov r0, #0x1
- orr r0, r2
- str r0, [r1, #0x44]
-_02016664:
- ldr r1, _02016690 ; =gMain
- mov r0, #0x2
- ldr r2, [r1, #0x4c]
- lsl r0, r0, #0x8
- tst r0, r2
- beq _02016676
- mov r0, #0x1
- orr r0, r2
- str r0, [r1, #0x4c]
-_02016676:
- ldr r1, _02016690 ; =gMain
- ldr r0, _02016698 ; =0x0000FCFF
- ldr r2, [r1, #0x48]
- and r2, r0
- str r2, [r1, #0x48]
- ldr r2, [r1, #0x44]
- and r2, r0
- str r2, [r1, #0x44]
- ldr r2, [r1, #0x4c]
- and r0, r2
- str r0, [r1, #0x4c]
-_0201668C:
- bx lr
- nop
-_02016690: .word gMain
-_02016694: .word 0x0000F3FF
-_02016698: .word 0x0000FCFF
-
- thumb_func_start FUN_0201669C
-FUN_0201669C: ; 0x0201669C
- ldr r2, _020166A4 ; =gMain
- str r0, [r2, #0x54]
- str r1, [r2, #0x58]
- bx lr
- .balign 4
-_020166A4: .word gMain
-
- thumb_func_start FUN_020166A8
-FUN_020166A8: ; 0x020166A8
- ldr r1, _020166B4 ; =gUnk021C4918
- ldrb r2, [r1, #0x8]
- orr r0, r2
- strb r0, [r1, #0x8]
- bx lr
- nop
-_020166B4: .word gUnk021C4918
-
- thumb_func_start FUN_020166B8
-FUN_020166B8: ; 0x020166B8
- ldr r1, _020166C4 ; =gUnk021C4918
- mvn r0, r0
- ldrb r2, [r1, #0x8]
- and r0, r2
- strb r0, [r1, #0x8]
- bx lr
- .balign 4
-_020166C4: .word gUnk021C4918
diff --git a/arm9/asm/unk_0201CC08.s b/arm9/asm/unk_0201CC08.s
index 4c198931..c35c4b23 100644
--- a/arm9/asm/unk_0201CC08.s
+++ b/arm9/asm/unk_0201CC08.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern gUnk021C4918
+ .extern gMain
.section .bss
@@ -88,7 +88,7 @@ FUN_0201CC78: ; 0x0201CC78
push {r4, lr}
ldr r4, _0201CC9C ; =UNK_021C5978
strh r0, [r4, #0x18]
- ldr r0, _0201CCA0 ; =gUnk021C4918
+ ldr r0, _0201CCA0 ; =gMain + 0x60
strb r1, [r0, #0x4]
ldr r0, _0201CCA4 ; =UNK_021C5938
ldr r1, [sp, #0xc]
@@ -103,7 +103,7 @@ FUN_0201CC78: ; 0x0201CC78
pop {r4, pc}
nop
_0201CC9C: .word UNK_021C5978
-_0201CCA0: .word gUnk021C4918
+_0201CCA0: .word gMain + 0x60
_0201CCA4: .word UNK_021C5938
_0201CCA8: .word UNK_021C5944
diff --git a/arm9/asm/unk_0201E66C.s b/arm9/asm/unk_0201E66C.s
index 84e97898..5f5dcb68 100644
--- a/arm9/asm/unk_0201E66C.s
+++ b/arm9/asm/unk_0201E66C.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern gUnk021C4918
+ .extern gMain
.section .bss
@@ -167,7 +167,7 @@ _0201E79C: .word 0x04001000
thumb_func_start FUN_0201E7A0
FUN_0201E7A0: ; 0x0201E7A0
- ldr r0, _0201E7C0 ; =gUnk021C4918
+ ldr r0, _0201E7C0 ; =gMain + 0x60
ldr r2, _0201E7C4 ; =0x04000304
ldrb r0, [r0, #0x5]
cmp r0, #0x0
@@ -184,7 +184,7 @@ _0201E7B4:
strh r0, [r2, #0x0]
bx lr
nop
-_0201E7C0: .word gUnk021C4918
+_0201E7C0: .word gMain + 0x60
_0201E7C4: .word 0x04000304
_0201E7C8: .word 0xFFFF7FFF
diff --git a/arm9/asm/unk_020208B8.s b/arm9/asm/unk_020208B8.s
index ce42a526..11027cff 100644
--- a/arm9/asm/unk_020208B8.s
+++ b/arm9/asm/unk_020208B8.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_021C48F8
+ .extern gMain
.text
@@ -118,7 +118,7 @@ _02020960:
thumb_func_start FUN_02020968
FUN_02020968: ; 0x02020968
push {r3, lr}
- ldr r2, _02020984 ; =UNK_021C48F8
+ ldr r2, _02020984 ; =gMain + 0x40
ldrh r1, [r2, #0x22]
cmp r1, #0x0
beq _0202097C
@@ -131,12 +131,12 @@ _0202097C:
mvn r0, r0
pop {r3, pc}
nop
-_02020984: .word UNK_021C48F8
+_02020984: .word gMain + 0x40
thumb_func_start FUN_02020988
FUN_02020988: ; 0x02020988
push {r3, lr}
- ldr r2, _020209A4 ; =UNK_021C48F8
+ ldr r2, _020209A4 ; =gMain + 0x40
ldrh r1, [r2, #0x20]
cmp r1, #0x0
beq _0202099C
@@ -149,12 +149,12 @@ _0202099C:
mvn r0, r0
pop {r3, pc}
nop
-_020209A4: .word UNK_021C48F8
+_020209A4: .word gMain + 0x40
thumb_func_start FUN_020209A8
FUN_020209A8: ; 0x020209A8
push {r3-r7, lr}
- ldr r7, _020209F0 ; =UNK_021C48F8
+ ldr r7, _020209F0 ; =gMain + 0x40
add r5, r0, #0x0
ldrh r0, [r7, #0x22]
cmp r0, #0x0
@@ -192,12 +192,12 @@ _020209EA:
mvn r0, r0
pop {r3-r7, pc}
.balign 4
-_020209F0: .word UNK_021C48F8
+_020209F0: .word gMain + 0x40
thumb_func_start FUN_020209F4
FUN_020209F4: ; 0x020209F4
push {r3-r7, lr}
- ldr r7, _02020A3C ; =UNK_021C48F8
+ ldr r7, _02020A3C ; =gMain + 0x40
add r5, r0, #0x0
ldrh r0, [r7, #0x20]
cmp r0, #0x0
@@ -235,12 +235,12 @@ _02020A36:
mvn r0, r0
pop {r3-r7, pc}
.balign 4
-_02020A3C: .word UNK_021C48F8
+_02020A3C: .word gMain + 0x40
thumb_func_start FUN_02020A40
FUN_02020A40: ; 0x02020A40
push {r3, lr}
- ldr r2, _02020A68 ; =UNK_021C48F8
+ ldr r2, _02020A68 ; =gMain + 0x40
ldrh r1, [r2, #0x22]
cmp r1, #0x0
beq _02020A62
@@ -259,12 +259,12 @@ _02020A62:
mov r0, #0x0
pop {r3, pc}
nop
-_02020A68: .word UNK_021C48F8
+_02020A68: .word gMain + 0x40
thumb_func_start FUN_02020A6C
FUN_02020A6C: ; 0x02020A6C
push {r3, lr}
- ldr r2, _02020A94 ; =UNK_021C48F8
+ ldr r2, _02020A94 ; =gMain + 0x40
ldrh r1, [r2, #0x20]
cmp r1, #0x0
beq _02020A8E
@@ -283,27 +283,27 @@ _02020A8E:
mov r0, #0x0
pop {r3, pc}
nop
-_02020A94: .word UNK_021C48F8
+_02020A94: .word gMain + 0x40
thumb_func_start FUN_02020A98
FUN_02020A98: ; 0x02020A98
- ldr r0, _02020AA0 ; =UNK_021C48F8
+ ldr r0, _02020AA0 ; =gMain + 0x40
ldrh r0, [r0, #0x22]
bx lr
nop
-_02020AA0: .word UNK_021C48F8
+_02020AA0: .word gMain + 0x40
thumb_func_start FUN_02020AA4
FUN_02020AA4: ; 0x02020AA4
- ldr r0, _02020AAC ; =UNK_021C48F8
+ ldr r0, _02020AAC ; =gMain + 0x40
ldrh r0, [r0, #0x20]
bx lr
nop
-_02020AAC: .word UNK_021C48F8
+_02020AAC: .word gMain + 0x40
thumb_func_start FUN_02020AB0
FUN_02020AB0: ; 0x02020AB0
- ldr r2, _02020AC8 ; =UNK_021C48F8
+ ldr r2, _02020AC8 ; =gMain + 0x40
ldrh r3, [r2, #0x22]
cmp r3, #0x0
beq _02020AC4
@@ -317,11 +317,11 @@ _02020AC4:
mov r0, #0x0
bx lr
.balign 4
-_02020AC8: .word UNK_021C48F8
+_02020AC8: .word gMain + 0x40
thumb_func_start FUN_02020ACC
FUN_02020ACC: ; 0x02020ACC
- ldr r2, _02020AE4 ; =UNK_021C48F8
+ ldr r2, _02020AE4 ; =gMain + 0x40
ldrh r3, [r2, #0x20]
cmp r3, #0x0
beq _02020AE0
@@ -335,7 +335,7 @@ _02020AE0:
mov r0, #0x0
bx lr
.balign 4
-_02020AE4: .word UNK_021C48F8
+_02020AE4: .word gMain + 0x40
thumb_func_start FUN_02020AE8
FUN_02020AE8: ; 0x02020AE8
diff --git a/arm9/asm/unk_02031734.s b/arm9/asm/unk_02031734.s
index e28c8c38..5a054d51 100644
--- a/arm9/asm/unk_02031734.s
+++ b/arm9/asm/unk_02031734.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern gUnk021C4918
+ .extern gMain
.section .rodata
.global UNK_020EEC48
UNK_020EEC48: ; 0x020EEC48
@@ -4062,7 +4062,7 @@ _02033622:
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x28]
bl FUN_0202287C
- ldr r1, _02033674 ; =gUnk021C4918
+ ldr r1, _02033674 ; =gMain + 0x60
mov r0, #0x1
strb r0, [r1, #0x4]
ldr r1, _02033670 ; =UNK_021C5A00
@@ -4092,7 +4092,7 @@ _0203366C:
pop {r3, pc}
nop
_02033670: .word UNK_021C5A00
-_02033674: .word gUnk021C4918
+_02033674: .word gMain + 0x60
thumb_func_start FUN_02033678
FUN_02033678: ; 0x02033678
diff --git a/arm9/asm/unk_02033F50.s b/arm9/asm/unk_02033F50.s
index d514a9d6..e4dd5814 100644
--- a/arm9/asm/unk_02033F50.s
+++ b/arm9/asm/unk_02033F50.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern gUnk021C4918
+ .extern gMain
.section .rodata
@@ -92,7 +92,7 @@ _02033FA4:
bl OS_EnableIrqMask
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
@@ -111,7 +111,7 @@ _02033FA4:
mov r0, #0x4
mov r1, #0x8
bl FUN_0201669C
- ldr r0, _02034160 ; =gUnk021C4918
+ ldr r0, _02034160 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
bl FUN_0201E7A0
@@ -254,7 +254,7 @@ _02033FA4:
_02034154: .word FUN_02033F50
_02034158: .word 0xFFFFE0FF
_0203415C: .word 0x04001000
-_02034160: .word gUnk021C4918
+_02034160: .word gMain + 0x60
_02034164: .word 0x04000050
_02034168: .word 0x04001050
_0203416C: .word 0xFFFF1FFF
diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s
index f84f094a..d8b35c57 100644
--- a/arm9/asm/unk_02034188.s
+++ b/arm9/asm/unk_02034188.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern gUnk021C4918
+ .extern gMain
.section .rodata
@@ -40,7 +40,7 @@ FUN_02034188: ; 0x02034188
bl FUN_02015EF4
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
@@ -59,7 +59,7 @@ FUN_02034188: ; 0x02034188
mov r0, #0x4
mov r1, #0x8
bl FUN_0201669C
- ldr r0, _02034370 ; =gUnk021C4918
+ ldr r0, _02034370 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
bl FUN_0201E7A0
@@ -226,7 +226,7 @@ _02034308:
nop
_02034368: .word 0xFFFFE0FF
_0203436C: .word 0x04001000
-_02034370: .word gUnk021C4918
+_02034370: .word gMain + 0x60
_02034374: .word 0x04000050
_02034378: .word 0x04001050
_0203437C: .word 0xFFFF1FFF
diff --git a/arm9/asm/unk_02048904.s b/arm9/asm/unk_02048904.s
index 4f852dbe..4ca21350 100644
--- a/arm9/asm/unk_02048904.s
+++ b/arm9/asm/unk_02048904.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern gUnk021C4918
+ .extern gMain
.section .rodata
@@ -146,11 +146,11 @@ _020489EA:
ldr r0, [r0, #0x0]
lsl r0, r0, #0x10
lsr r1, r0, #0x1c
- ldr r0, _020489F8 ; =gUnk021C4918
+ ldr r0, _020489F8 ; =gMain + 0x60
strb r1, [r0, #0x5]
pop {r4, pc}
.balign 4
-_020489F8: .word gUnk021C4918
+_020489F8: .word gMain + 0x60
thumb_func_start FUN_020489FC
FUN_020489FC: ; 0x020489FC
diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s
index a11f74e3..e1447b33 100644
--- a/arm9/asm/unk_0206C700.s
+++ b/arm9/asm/unk_0206C700.s
@@ -294,7 +294,7 @@ FUN_0206C92C: ; 0x0206C92C
bl FUN_0200E3A0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, [r4, #0x4]
mov r1, #0x1
bl FUN_020191A4
@@ -2513,7 +2513,7 @@ _0206DA26:
bl FUN_0201E6E4
ldr r0, _0206DC44 ; =FUN_0206DD08
add r1, r5, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add sp, #0xb8
pop {r4-r6, pc}
.balign 4
diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s
index 7a1729d2..e21f2541 100644
--- a/arm9/asm/unk_0206F3FC.s
+++ b/arm9/asm/unk_0206F3FC.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_021C48F8
+ .extern gMain
.extern gMain
.section .rodata
@@ -119,7 +119,7 @@ FUN_0206F3FC: ; 0x0206F3FC
add r4, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -290,7 +290,7 @@ _0206F564:
_0206F582:
ldr r0, _0206F5A8 ; =FUN_0206FB58
add r1, r4, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02033F20
mov r0, #0x1
add sp, #0xc
@@ -964,7 +964,7 @@ FUN_0206FAA4: ; 0x0206FAA4
add r6, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r6, #0x0
bl FUN_02073A2C
add r0, r6, #0x0
@@ -4688,7 +4688,7 @@ _02071886:
strh r1, [r0, #0x0]
add r0, sp, #0x4
str r0, [sp, #0x0]
- ldr r3, _020718C8 ; =UNK_021C48F8
+ ldr r3, _020718C8 ; =gMain + 0x40
ldr r0, [r5, #0x0]
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -4707,7 +4707,7 @@ _020718BA:
.balign 4
_020718C0: .word UNK_020F94B8
_020718C4: .word 0x0000FFFE
-_020718C8: .word UNK_021C48F8
+_020718C8: .word gMain + 0x40
thumb_func_start FUN_020718CC
FUN_020718CC: ; 0x020718CC
diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s
index 863b9270..48657261 100644
--- a/arm9/asm/unk_020772F0.s
+++ b/arm9/asm/unk_020772F0.s
@@ -1,8 +1,8 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_021C48F8
- .extern gUnk021C4918
+ .extern gMain
+ .extern gMain
.extern gMain
.section .rodata
@@ -387,7 +387,7 @@ _020772FC:
_020772FE:
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -470,7 +470,7 @@ _020772FE:
bl FUN_02002C50
ldr r0, _020774A0 ; =FUN_02077AE8
mov r1, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0x0
add r1, r6, #0x0
bl FUN_02077CD4
@@ -518,7 +518,7 @@ _020772FE:
bl FUN_0200E1D0
mov r0, #0x1
bl FUN_02077C84
- ldr r0, _020774A8 ; =gUnk021C4918
+ ldr r0, _020774A8 ; =gMain + 0x60
mov r1, #0x1
strb r1, [r0, #0x5]
bl FUN_0201E7A0
@@ -563,7 +563,7 @@ _02077498: .word 0xFFFFE0FF
_0207749C: .word 0x04001000
_020774A0: .word FUN_02077AE8
_020774A4: .word 0x000004C4
-_020774A8: .word gUnk021C4918
+_020774A8: .word gMain + 0x60
_020774AC: .word 0x000004B8
_020774B0: .word UNK_021C5C54
_020774B4: .word 0x000005C4
@@ -1256,10 +1256,10 @@ _02077A0C:
bl OverlayManager_FreeData
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x12
bl FUN_020168D0
- ldr r0, _02077A80 ; =gUnk021C4918
+ ldr r0, _02077A80 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
bl FUN_0201E7A0
@@ -1272,7 +1272,7 @@ _02077A70: .word 0x000004AC
_02077A74: .word 0x000004B4
_02077A78: .word 0x000004BC
_02077A7C: .word 0xFFFF1FFF
-_02077A80: .word gUnk021C4918
+_02077A80: .word gMain + 0x60
thumb_func_start FUN_02077A84
FUN_02077A84: ; 0x02077A84
@@ -5126,7 +5126,7 @@ FUN_02079930: ; 0x02079930
mov r0, #0x4
mov r12, r0
_02079944:
- ldr r2, _020799E0 ; =UNK_021C48F8
+ ldr r2, _020799E0 ; =gMain + 0x40
ldrh r0, [r2, #0x20]
cmp r0, #0x0
beq _020799DA
@@ -5211,5 +5211,5 @@ _020799DA:
mov r0, #0x0
pop {r3-r7, pc}
nop
-_020799E0: .word UNK_021C48F8
+_020799E0: .word gMain + 0x40
_020799E4: .word UNK_020FA264
diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s
index c49c2d67..9e91ca0e 100644
--- a/arm9/asm/unk_02079C70.s
+++ b/arm9/asm/unk_02079C70.s
@@ -59,7 +59,7 @@ FUN_02079C7C: ; 0x02079C7C
add r4, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -156,7 +156,7 @@ FUN_02079C7C: ; 0x02079C7C
bl FUN_0207F098
ldr r0, _02079DB0 ; =FUN_02079F24
add r1, r5, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E788
mov r1, #0x0
mov r0, #0x3d
@@ -318,7 +318,7 @@ FUN_02079ECC: ; 0x02079ECC
add r5, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r5, #0x0
bl FUN_0207F068
add r0, r5, #0x0
diff --git a/arm9/asm/unk_0207F95C.s b/arm9/asm/unk_0207F95C.s
index d53dcbdf..cface8d1 100644
--- a/arm9/asm/unk_0207F95C.s
+++ b/arm9/asm/unk_0207F95C.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_021C48F8
+ .extern gMain
.section .rodata
.global UNK_020FB6F8
@@ -274,7 +274,7 @@ _0207FADA:
strh r1, [r0, #0x0]
add r0, sp, #0x4
str r0, [sp, #0x0]
- ldr r3, _0207FB24 ; =UNK_021C48F8
+ ldr r3, _0207FB24 ; =gMain + 0x40
ldr r0, [r5, #0x0]
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -294,7 +294,7 @@ _0207FB12:
_0207FB18: .word 0x0000068F
_0207FB1C: .word UNK_0210613C
_0207FB20: .word 0x0000FFFE
-_0207FB24: .word UNK_021C48F8
+_0207FB24: .word gMain + 0x40
thumb_func_start FUN_0207FB28
FUN_0207FB28: ; 0x0207FB28
diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s
index efd11044..1a38e392 100644
--- a/arm9/asm/unk_020859C0.s
+++ b/arm9/asm/unk_020859C0.s
@@ -285,7 +285,7 @@ _02085A9A:
bl MOD62_022300E4
ldr r0, _02085BAC ; =MOD62_022310CC
add r1, r4, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0x0
bl MOD62_0222DD1C
mov r1, #0x0
diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s
index 9e58b5cc..6ef3d150 100644
--- a/arm9/asm/unk_02086084.s
+++ b/arm9/asm/unk_02086084.s
@@ -17,7 +17,7 @@ FUN_02086084: ; 0x02086084
add r5, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
mov r2, #0x1
mov r0, #0x3
@@ -95,7 +95,7 @@ FUN_02086084: ; 0x02086084
bl FUN_0200541C
ldr r0, _02086164 ; =FUN_02086664
add r1, r4, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x1
pop {r3-r5, pc}
nop
diff --git a/arm9/asm/unk_02089498.s b/arm9/asm/unk_02089498.s
index 3962942c..82d06472 100644
--- a/arm9/asm/unk_02089498.s
+++ b/arm9/asm/unk_02089498.s
@@ -101,7 +101,7 @@ _020894FC:
bl FUN_0200E3A0
add r0, r6, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r6, #0x0
add r1, r0, #0x0
bl FUN_02015F34
@@ -126,7 +126,7 @@ _020894FC:
bl FUN_02089734
ldr r0, _020895EC ; =FUN_02089610
add r1, r4, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E788
mov r0, #0x6
mov r1, #0x1
@@ -176,7 +176,7 @@ _020895BC:
bl FUN_020896E0
add r0, r6, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r6, #0x1
_020895DA:
add r0, r6, #0x0
diff --git a/arm9/asm/unk_02089960.s b/arm9/asm/unk_02089960.s
index 2154cdf9..575eade7 100644
--- a/arm9/asm/unk_02089960.s
+++ b/arm9/asm/unk_02089960.s
@@ -83,7 +83,7 @@ _020899B8:
bl FUN_0200E3A0
add r0, r4, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0x0
add r1, r0, #0x0
bl FUN_02015F34
@@ -123,7 +123,7 @@ _02089A20:
bl FUN_02089B2C
add r0, r4, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r4, #0x1
_02089A34:
add r0, r4, #0x0
diff --git a/arm9/asm/unk_02089D90.s b/arm9/asm/unk_02089D90.s
index b4a6a662..b8c341df 100644
--- a/arm9/asm/unk_02089D90.s
+++ b/arm9/asm/unk_02089D90.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern gUnk021C4918
+ .extern gMain
.section .rodata
@@ -39,7 +39,7 @@ FUN_02089D90: ; 0x02089D90
bl FUN_0200E3A0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
@@ -58,7 +58,7 @@ FUN_02089D90: ; 0x02089D90
mov r0, #0x4
mov r1, #0x8
bl FUN_0201669C
- ldr r0, _02089EFC ; =gUnk021C4918
+ ldr r0, _02089EFC ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
bl FUN_0201E7A0
@@ -176,7 +176,7 @@ _02089EE4:
nop
_02089EF4: .word 0xFFFFE0FF
_02089EF8: .word 0x04001000
-_02089EFC: .word gUnk021C4918
+_02089EFC: .word gMain + 0x60
_02089F00: .word 0x04000050
_02089F04: .word 0x04001050
_02089F08: .word 0xFFFF1FFF
diff --git a/arm9/asm/unk_02089F24.s b/arm9/asm/unk_02089F24.s
index 8dfe9755..5c84eabc 100644
--- a/arm9/asm/unk_02089F24.s
+++ b/arm9/asm/unk_02089F24.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern gUnk021C4918
+ .extern gMain
.extern UNK_020FF3E4
.extern UNK_020FF3EC
.extern UNK_020FF3FC
@@ -43,7 +43,7 @@ FUN_02089F24: ; 0x02089F24
bl FUN_0200E3A0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
@@ -62,7 +62,7 @@ FUN_02089F24: ; 0x02089F24
mov r0, #0x4
mov r1, #0x8
bl FUN_0201669C
- ldr r0, _0208A090 ; =gUnk021C4918
+ ldr r0, _0208A090 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
bl FUN_0201E7A0
@@ -180,7 +180,7 @@ _0208A078:
nop
_0208A088: .word 0xFFFFE0FF
_0208A08C: .word 0x04001000
-_0208A090: .word gUnk021C4918
+_0208A090: .word gMain + 0x60
_0208A094: .word 0x04000050
_0208A098: .word 0x04001050
_0208A09C: .word 0xFFFF1FFF
@@ -212,7 +212,7 @@ _0208A0C8:
bl FUN_02015EF4
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
@@ -231,7 +231,7 @@ _0208A0C8:
mov r0, #0x4
mov r1, #0x8
bl FUN_0201669C
- ldr r0, _0208A230 ; =gUnk021C4918
+ ldr r0, _0208A230 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
bl FUN_0201E7A0
@@ -350,7 +350,7 @@ _0208A21A:
.balign 4
_0208A228: .word 0xFFFFE0FF
_0208A22C: .word 0x04001000
-_0208A230: .word gUnk021C4918
+_0208A230: .word gMain + 0x60
_0208A234: .word 0x04000050
_0208A238: .word 0x04001050
_0208A23C: .word 0xFFFF1FFF
diff --git a/arm9/asm/unk_0208A998.s b/arm9/asm/unk_0208A998.s
index 4b3a5510..14a02753 100644
--- a/arm9/asm/unk_0208A998.s
+++ b/arm9/asm/unk_0208A998.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern gUnk021C4918
+ .extern gMain
.section .rodata
@@ -94,7 +94,7 @@ _0208A9C6:
bl OS_EnableIrqMask
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
@@ -113,7 +113,7 @@ _0208A9C6:
mov r0, #0x4
mov r1, #0x8
bl FUN_0201669C
- ldr r0, _0208ABDC ; =gUnk021C4918
+ ldr r0, _0208ABDC ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
bl FUN_0201E7A0
@@ -278,7 +278,7 @@ _0208ABCC: .word UNK_020FF4A4
_0208ABD0: .word FUN_0208A998
_0208ABD4: .word 0xFFFFE0FF
_0208ABD8: .word 0x04001000
-_0208ABDC: .word gUnk021C4918
+_0208ABDC: .word gMain + 0x60
_0208ABE0: .word 0x04000050
_0208ABE4: .word 0x04001050
_0208ABE8: .word 0xFFFF1FFF
diff --git a/arm9/global.inc b/arm9/global.inc
index a6708fd8..92e50e25 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -1007,7 +1007,7 @@
.extern FUN_02015E3C
.extern FUN_02015E60
.extern FUN_02015EF4
-.extern FUN_02015F10
+.extern Main_SetVBlankIntrCB
.extern FUN_02015F1C
.extern FUN_02015F34
.extern FUN_020161A4
@@ -8162,7 +8162,7 @@
.extern UNK_020FD6D4
.extern UNK_021064B8
.extern UNK_021064C0
-.extern UNK_021C48F8
+.extern gMain
.extern UNK_021C8ECC
.extern UNK_021C8ED0
.extern UNK_021C8ED4
@@ -8209,8 +8209,6 @@
.extern UNK_02105BB8
.extern UNK_021064BC
.extern UNK_021064C4
-.extern gMain
-.extern gUnk021C4918
.extern UNK_021CED20
.extern UNK_021CED98
.extern UNK_021CEDD4
diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h
index 893e6d65..08417872 100644
--- a/arm9/lib/include/OS_interrupt.h
+++ b/arm9/lib/include/OS_interrupt.h
@@ -4,6 +4,11 @@
#include "consts.h"
#include "nitro/OS_interrupt_shared.h"
+#define REG_OS_IME_IME_SHIFT 0
+
+#define OS_IME_DISABLE (0UL << REG_OS_IME_IME_SHIFT)
+#define OS_IME_ENABLE (1UL << REG_OS_IME_IME_SHIFT)
+
#define OS_IE_V_COUNT (1UL << REG_OS_IE_VE_SHIFT)
#define OS_IE_TIMER0 (1UL << REG_OS_IE_T0_SHIFT)
#define OS_IE_TIMER1 (1UL << REG_OS_IE_T1_SHIFT)
@@ -22,4 +27,23 @@ OSIrqMask OS_DisableIrqMask(OSIrqMask mask);
OSIrqMask OS_ResetRequestIrqMask(OSIrqMask mask);
void OS_SetIrqStackChecker(void);
+static inline BOOL OS_DisableIrq(void)
+{
+ u16 prep = reg_OS_IME;
+ reg_OS_IME = OS_IME_DISABLE;
+ return (BOOL)prep;
+}
+
+static inline BOOL OS_EnableIrq(void)
+{
+ u16 prep = reg_OS_IME;
+ reg_OS_IME = OS_IME_ENABLE;
+ return (BOOL)prep;
+}
+
+static inline OSIrqMask OS_GetIrqMask(void)
+{
+ return reg_OS_IE;
+}
+
#endif //POKEDIAMOND_ARM9_OS_INTERRUPT_H
diff --git a/arm9/lib/include/PAD_pad.h b/arm9/lib/include/PAD_pad.h
index 0cb8a6f0..327d306d 100644
--- a/arm9/lib/include/PAD_pad.h
+++ b/arm9/lib/include/PAD_pad.h
@@ -30,6 +30,12 @@
#define PAD_BUTTON_Y 0x0800 // Y
#define PAD_BUTTON_DEBUG 0x2000 // Debug button
+static inline u16 PAD_Read(void)
+{
+ return (u16)(((reg_PAD_KEYINPUT | *(vu16 *)HW_BUTTON_XY_BUF) ^
+ (PAD_PLUS_KEY_MASK | PAD_BUTTON_MASK)) & (PAD_PLUS_KEY_MASK | PAD_BUTTON_MASK));
+}
+
static inline BOOL PAD_DetectFold(void)
{
return (BOOL)((*(vu16 *)HW_BUTTON_XY_BUF & PAD_DETECT_FOLD_MASK) >> 15);
diff --git a/arm9/lib/include/ioreg_GX.h b/arm9/lib/include/ioreg_GX.h
new file mode 100644
index 00000000..d6f7f448
--- /dev/null
+++ b/arm9/lib/include/ioreg_GX.h
@@ -0,0 +1,32 @@
+#ifndef NITRO_IOREG_GX_H_
+#define NITRO_IOREG_GX_H_
+
+#define REG_GX_POWCNT_GE_SHIFT 3
+#define REG_GX_POWCNT_GE_SIZE 1
+#define REG_GX_POWCNT_GE_MASK 0x0008
+
+#define REG_GX_POWCNT_RE_SHIFT 2
+#define REG_GX_POWCNT_RE_SIZE 1
+#define REG_GX_POWCNT_RE_MASK 0x0004
+
+#define REG_GX_POWCNT_E2DG_SHIFT 1
+#define REG_GX_POWCNT_E2DG_SIZE 1
+#define REG_GX_POWCNT_E2DG_MASK 0x0002
+
+#define REG_GX_POWCNT_LCD_SHIFT 0
+#define REG_GX_POWCNT_LCD_SIZE 1
+#define REG_GX_POWCNT_LCD_MASK 0x0001
+
+#define REG_GX_POWCNT_LCDB_SHIFT 8
+#define REG_GX_POWCNT_LCDB_SIZE 1
+#define REG_GX_POWCNT_LCDB_MASK 0x0100
+
+#define REG_GX_POWCNT_E2DGB_SHIFT 9
+#define REG_GX_POWCNT_E2DGB_SIZE 1
+#define REG_GX_POWCNT_E2DGB_MASK 0x0200
+
+#define REG_GX_POWCNT_DSEL_SHIFT 15
+#define REG_GX_POWCNT_DSEL_SIZE 1
+#define REG_GX_POWCNT_DSEL_MASK 0x8000
+
+#endif //NITRO_IOREG_GX_H_
diff --git a/arm9/lib/include/mmap.h b/arm9/lib/include/mmap.h
index 8b30ffc8..81d47a7e 100644
--- a/arm9/lib/include/mmap.h
+++ b/arm9/lib/include/mmap.h
@@ -56,4 +56,32 @@ extern u32 SDK_AUTOLOAD_DTCM_START[];
#define OSi_WRAM_MAIN_ARENA_HI_DEFAULT (HW_WRAM)
#define OSi_WRAM_MAIN_ARENA_LO_DEFAULT (HW_WRAM)
+#define HW_BG_PLTT 0x05000000
+#define HW_BG_PLTT_END 0x05000200
+#define HW_BG_PLTT_SIZE (HW_BG_PLTT_END-HW_BG_PLTT)
+#define HW_OBJ_PLTT 0x05000200
+#define HW_OBJ_PLTT_END 0x05000400
+#define HW_OBJ_PLTT_SIZE (HW_OBJ_PLTT_END-HW_OBJ_PLTT)
+#define HW_PLTT HW_BG_PLTT
+#define HW_PLTT_END HW_OBJ_PLTT_END
+#define HW_PLTT_SIZE (HW_PLTT_END-HW_PLTT)
+#define HW_DB_BG_PLTT 0x05000400
+#define HW_DB_BG_PLTT_END 0x05000600
+#define HW_DB_BG_PLTT_SIZE (HW_DB_BG_PLTT_END-HW_DB_BG_PLTT)
+#define HW_DB_OBJ_PLTT 0x05000600
+#define HW_DB_OBJ_PLTT_END 0x05000800
+#define HW_DB_OBJ_PLTT_SIZE (HW_DB_OBJ_PLTT_END-HW_DB_OBJ_PLTT)
+#define HW_DB_PLTT HW_DB_BG_PLTT
+#define HW_DB_PLTT_END HW_DB_OBJ_PLTT_END
+#define HW_DB_PLTT_SIZE (HW_DB_PLTT_END-HW_DB_PLTT)
+#define HW_LCDC_VRAM 0x6800000
+#define HW_LCDC_VRAM_END 0x68a4000
+#define HW_LCDC_VRAM_SIZE (HW_LCDC_VRAM_END - HW_LCDC_VRAM)
+#define HW_OAM 0x07000000
+#define HW_OAM_END 0x07000400
+#define HW_OAM_SIZE (HW_OAM_END-HW_OAM)
+#define HW_DB_OAM 0x07000400
+#define HW_DB_OAM_END 0x07000800
+#define HW_DB_OAM_SIZE (HW_DB_OAM_END-HW_DB_OAM)
+
#endif //POKEDIAMOND_ARM9_MMAP_H \ No newline at end of file
diff --git a/arm9/lib/include/tp.h b/arm9/lib/include/tp.h
new file mode 100644
index 00000000..6692863f
--- /dev/null
+++ b/arm9/lib/include/tp.h
@@ -0,0 +1,41 @@
+//
+// Created by Scott Norton on 8/20/20.
+//
+
+#ifndef NITRO_TP_H_
+#define NITRO_TP_H_
+
+// Touch panel input structure
+typedef struct
+{
+ u16 x; // x coordinate ( 0 - 4095 )
+ u16 y; // y coordinate ( 0 - 4095 )
+ u16 touch; // Touch yes/no
+ u16 validity; // Valid yes/no
+}
+TPData;
+
+typedef struct NvTpData
+{
+ s16 x0; // X origin coordinate
+ s16 y0; // Y origin coordinate
+ s16 xDotSize; // X dot size
+ s16 yDotSize; // Y dot size
+}
+TPCalibrateParam;
+
+void TP_Init(void);
+void TP_SetCalibrateParam(const TPCalibrateParam *param);
+BOOL TP_GetUserInfo(TPCalibrateParam *calibrate);
+void TP_RequestSamplingAsync(void);
+u32 TP_WaitRawResult(TPData *result);
+void TP_GetLatestRawPointInAuto(TPData *result);
+void TP_GetCalibratedPoint(TPData *disp, const TPData *raw);
+
+static inline u32 TP_RequestRawSampling(TPData *result)
+{
+ TP_RequestSamplingAsync();
+ return TP_WaitRawResult(result);
+}
+
+#endif //NITRO_TP_H_
diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s
index ad9d0939..24743c4b 100644
--- a/arm9/modules/05/asm/mod05_021D74E0.s
+++ b/arm9/modules/05/asm/mod05_021D74E0.s
@@ -44,7 +44,7 @@ _021D7524: ; jump table
_021D752C:
add r0, r6, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
ldr r1, _021D7670 ; =0x04000050
add r0, r6, #0
@@ -353,7 +353,7 @@ _021D7806:
bl MOD05_021D7F9C
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, [r4, #8]
bl FreeToHeap
ldr r0, [r4, #4]
@@ -1146,7 +1146,7 @@ MOD05_021D7E4C: ; 0x021D7E4C
bl MOD05_021F38B8
ldr r0, _021D7EE4 ; =MOD05_021D74E0
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
pop {r3, r4, r5, pc}
nop
_021D7EE4: .word MOD05_021D74E0
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 4b2128f2..a40c9c9b 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -39953,7 +39953,7 @@ MOD06_0224CDA0: ; 0x0224CDA0
MOD06_0224CDB8: ; 0x0224CDB8
cmp r1, #0
beq _0224CE2A
- ldr r1, _0224CE2C ; =gUnk021C4918
+ ldr r1, _0224CE2C ; =gMain + 0x60
ldrb r1, [r1, #6]
cmp r1, #5
bhi _0224CE2A
@@ -40017,7 +40017,7 @@ _0224CE1C:
_0224CE2A:
bx lr
.align 2, 0
-_0224CE2C: .word gUnk021C4918
+_0224CE2C: .word gMain + 0x60
thumb_func_start MOD06_0224CE30
MOD06_0224CE30: ; 0x0224CE30
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index 2b139a82..5efdd51b 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -124,7 +124,7 @@ MOD07_02211F34: ; 0x02211F34
mov r0, #0
strh r0, [r1]
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -253,7 +253,7 @@ _0221202E:
bl FUN_02079A70
ldr r0, _02212078 ; =MOD07_02212D68
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #1
pop {r4, pc}
_02212068:
@@ -301,7 +301,7 @@ _022120B8:
bl FUN_02079A70
ldr r0, _022120F8 ; =MOD07_02212D68
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r1, _022120F4 ; =0x00000B82
mov r0, #0
strb r0, [r4, r1]
@@ -359,7 +359,7 @@ _02212132:
bl FUN_02079A70
ldr r0, _02212170 ; =MOD07_02212D68
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r1, _0221216C ; =0x00000B82
mov r0, #0
strb r0, [r4, r1]
@@ -1617,7 +1617,7 @@ MOD07_02212B64: ; 0x02212B64
_02212B76:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, [r4]
add r0, #0x28
ldrb r0, [r0]
diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s
index c24d5e86..e7b9b013 100644
--- a/arm9/modules/11/asm/module_11_thumb1.s
+++ b/arm9/modules/11/asm/module_11_thumb1.s
@@ -319,7 +319,7 @@ MOD11_0222D840: ; 0x0222D840
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
@@ -611,7 +611,7 @@ _0222D99A:
bl FUN_0201E74C
ldr r0, _0222DB4C ; =MOD11_0222F01C
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, _0222DB38 ; =0x000023FB
mov r3, #2
ldrb r1, [r5, r0]
@@ -1631,7 +1631,7 @@ _0222E2F0:
bl FUN_0201E74C
ldr r0, _0222E46C ; =MOD11_0222F01C
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add sp, #0x9c
pop {r4, r5, r6, r7, pc}
.align 2, 0
diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s
index a87f7d23..dc3dccda 100644
--- a/arm9/modules/11/asm/module_11_thumb2.s
+++ b/arm9/modules/11/asm/module_11_thumb2.s
@@ -222,7 +222,7 @@ _0222F30E:
bl DestroyMsgData
ldr r0, _0222F4D8 ; =MOD11_0222F0D4
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x10
str r0, [sp]
mov r3, #0
@@ -799,7 +799,7 @@ MOD11_0222F93C: ; 0x0222F93C
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
@@ -90807,7 +90807,7 @@ MOD11_0225B824: ; 0x0225B824
mov r1, #1
bl FUN_02003204
add r4, r0, #0
- ldr r0, _0225B8AC ; =UNK_021C48F8
+ ldr r0, _0225B8AC ; =gMain + 0x40
ldrh r0, [r0, #0x22]
cmp r0, #0
beq _0225B888
@@ -90849,7 +90849,7 @@ _0225B888:
_0225B8A8:
pop {r3, r4, r5, r6, r7, pc}
nop
-_0225B8AC: .word UNK_021C48F8
+_0225B8AC: .word gMain + 0x40
thumb_func_start MOD11_0225B8B0
MOD11_0225B8B0: ; 0x0225B8B0
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index 5d8f7ae6..63b143f4 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -10,7 +10,7 @@ MOD12_0222D5C0: ; 0x0222D5C0
add r5, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -272,7 +272,7 @@ _0222D7BC:
bl FUN_020833D4
ldr r0, _0222D898 ; =MOD12_0222DAE4
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #1
add sp, #0x14
pop {r4, r5, r6, r7, pc}
@@ -518,7 +518,7 @@ MOD12_0222D9B0: ; 0x0222D9B0
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
mov r0, #0x15
bl FUN_020168D0
@@ -3145,7 +3145,7 @@ MOD12_0222EF04: ; 0x0222EF04
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -3376,7 +3376,7 @@ MOD12_0222EF04: ; 0x0222EF04
bl FUN_020833D4
ldr r0, _0222F194 ; =MOD12_0222F458
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, _0222F198 ; =0x00000605
bl FUN_020054C8
mov r0, #1
@@ -3683,7 +3683,7 @@ _0222F3AE:
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
mov r0, #0x16
bl FUN_020168D0
@@ -4985,7 +4985,7 @@ MOD12_0222FE4C: ; 0x0222FE4C
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -5243,7 +5243,7 @@ MOD12_0222FE4C: ; 0x0222FE4C
bl FUN_020054C8
ldr r0, _02230124 ; =MOD12_022303C0
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
@@ -5527,7 +5527,7 @@ _02230296:
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
mov r0, #0x17
bl FUN_020168D0
@@ -28412,7 +28412,7 @@ _0223B14C:
mov r0, #1
tst r0, r1
bne _0223B174
- ldr r0, _0223B34C ; =UNK_021C48F8
+ ldr r0, _0223B34C ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _0223B186
@@ -28665,7 +28665,7 @@ _0223B340:
.align 2, 0
_0223B344: .word 0x00000171
_0223B348: .word gMain
-_0223B34C: .word UNK_021C48F8
+_0223B34C: .word gMain + 0x40
_0223B350: .word 0x000006ED
_0223B354: .word MOD12_02245F84
_0223B358: .word MOD12_02245F8C
@@ -41072,7 +41072,7 @@ MOD12_02241210: ; 0x02241210
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -41293,7 +41293,7 @@ MOD12_02241210: ; 0x02241210
bl FUN_020833D4
ldr r0, _02241484 ; =MOD12_02241754
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, _02241488 ; =MOD12_02241814
add r1, r5, #0
mov r2, #0xa
@@ -41574,7 +41574,7 @@ _022415D4:
str r0, [r2]
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
mov r0, #0x18
bl FUN_020168D0
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index 0f186c44..b7b80736 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -10493,7 +10493,7 @@ _021DC79C:
mov r0, #0
add r1, r0, #0
mov r5, #1
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -10783,7 +10783,7 @@ MOD14_021DCA38: ; 0x021DCA38
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, [r4]
bl FUN_0200CAB4
ldr r0, [r4, #4]
diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s
index bd0ca04e..e633fc94 100644
--- a/arm9/modules/15/asm/module_15.s
+++ b/arm9/modules/15/asm/module_15.s
@@ -2588,7 +2588,7 @@ MOD15_021D87F8: ; 0x021D87F8
beq _021D8878
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
str r5, [r4, #0x18]
str r6, [r4, #0x1c]
@@ -2647,7 +2647,7 @@ MOD15_021D8888: ; 0x021D8888
beq _021D88CE
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r4, #0
add r5, r6, #0
_021D889A:
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 515f1d08..c3c739e5 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -38,7 +38,7 @@ _021D750E:
add r5, r0, #0
ldr r0, _021D7584 ; =MOD16_021D7650
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201CC08
mov r0, #4
@@ -157,7 +157,7 @@ MOD16_021D7614: ; 0x021D7614
bl OverlayManager_GetData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201CD04
cmp r0, #1
beq _021D7630
@@ -5718,7 +5718,7 @@ _021D9F88: .word FUN_02024CC4
thumb_func_start MOD16_021D9F8C
MOD16_021D9F8C: ; 0x021D9F8C
- ldr r1, _021D9FAC ; =UNK_021C48F8
+ ldr r1, _021D9FAC ; =gMain + 0x40
ldrh r1, [r1, #0x22]
cmp r1, #0
beq _021D9F9C
@@ -5737,7 +5737,7 @@ _021D9F9C:
_021D9FAA:
bx lr
.align 2, 0
-_021D9FAC: .word UNK_021C48F8
+_021D9FAC: .word gMain + 0x40
_021D9FB0: .word 0x00001758
_021D9FB4: .word gMain
thumb_func_end MOD16_021D9F8C
@@ -14617,7 +14617,7 @@ MOD16_021DE108: ; 0x021DE108
beq _021DE12E
b _021DE1D6
_021DE122:
- ldr r0, _021DE1DC ; =UNK_021C48F8
+ ldr r0, _021DE1DC ; =gMain + 0x40
ldrh r1, [r0, #0x1c]
str r1, [r4, #0x14]
ldrh r0, [r0, #0x1e]
@@ -14706,7 +14706,7 @@ _021DE1A2:
mov r0, #0
str r0, [r4, #0xc]
_021DE1C6:
- ldr r0, _021DE1DC ; =UNK_021C48F8
+ ldr r0, _021DE1DC ; =gMain + 0x40
ldrh r1, [r0, #0x1c]
str r1, [r4, #0x14]
ldrh r0, [r0, #0x1e]
@@ -14720,7 +14720,7 @@ _021DE1D6:
str r0, [r4, #0x20]
pop {r4, r5, r6, pc}
.align 2, 0
-_021DE1DC: .word UNK_021C48F8
+_021DE1DC: .word gMain + 0x40
thumb_func_end MOD16_021DE108
thumb_func_start MOD16_021DE1E0
@@ -15553,7 +15553,7 @@ MOD16_021DE8A0: ; 0x021DE8A0
mov r0, #0x83
lsl r0, r0, #2
str r0, [sp]
- ldr r3, _021DE8CC ; =UNK_021C48F8
+ ldr r3, _021DE8CC ; =gMain + 0x40
ldr r0, [r4, #0x14]
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -15569,7 +15569,7 @@ MOD16_021DE8A0: ; 0x021DE8A0
add sp, #4
pop {r3, r4, pc}
.align 2, 0
-_021DE8CC: .word UNK_021C48F8
+_021DE8CC: .word gMain + 0x40
thumb_func_end MOD16_021DE8A0
thumb_func_start MOD16_021DE8D0
@@ -28665,7 +28665,7 @@ MOD16_021E482C: ; 0x021E482C
MOD16_021E4850: ; 0x021E4850
push {r3, r4, r5, lr}
add r5, r0, #0
- ldr r0, _021E48B4 ; =UNK_021C48F8
+ ldr r0, _021E48B4 ; =gMain + 0x40
add r4, r1, #0
ldrh r0, [r0, #0x22]
cmp r0, #0
@@ -28712,7 +28712,7 @@ _021E48A0:
_021E48B2:
pop {r3, r4, r5, pc}
.align 2, 0
-_021E48B4: .word UNK_021C48F8
+_021E48B4: .word gMain + 0x40
_021E48B8: .word gMain
thumb_func_end MOD16_021E4850
@@ -28726,7 +28726,7 @@ MOD16_021E48BC: ; 0x021E48BC
add r4, r1, #0
cmp r3, #0
beq _021E492E
- ldr r0, _021E4934 ; =UNK_021C48F8
+ ldr r0, _021E4934 ; =gMain + 0x40
ldrh r1, [r0, #0x22]
cmp r1, #0
beq _021E492A
@@ -28782,7 +28782,7 @@ _021E492E:
bl MOD16_021E4850
pop {r3, r4, r5, pc}
.align 2, 0
-_021E4934: .word UNK_021C48F8
+_021E4934: .word gMain + 0x40
thumb_func_end MOD16_021E48BC
thumb_func_start MOD16_021E4938
@@ -28795,7 +28795,7 @@ MOD16_021E4938: ; 0x021E4938
bl FUN_020054C8
mov r0, #1
str r0, [r4, #0x20]
- ldr r0, _021E4964 ; =UNK_021C48F8
+ ldr r0, _021E4964 ; =gMain + 0x40
ldr r1, [r4]
ldrh r2, [r0, #0x1c]
sub r1, r2, r1
@@ -28808,7 +28808,7 @@ _021E495C:
pop {r4, pc}
nop
_021E4960: .word 0x000005DD
-_021E4964: .word UNK_021C48F8
+_021E4964: .word gMain + 0x40
thumb_func_end MOD16_021E4938
thumb_func_start MOD16_021E4968
@@ -43280,7 +43280,7 @@ _021EB50A:
add r0, r4, #0
bl MOD16_021EC000
_021EB516:
- ldr r0, _021EB564 ; =UNK_021C48F8
+ ldr r0, _021EB564 ; =gMain + 0x40
ldrh r0, [r0, #0x1c]
str r0, [r4, #0x38]
mov r0, #1
@@ -43295,7 +43295,7 @@ _021EB522:
_021EB52E:
mov r0, #1
str r0, [r4, #0x4c]
- ldr r0, _021EB564 ; =UNK_021C48F8
+ ldr r0, _021EB564 ; =gMain + 0x40
ldrh r1, [r0, #0x1c]
str r1, [r4, #0x54]
ldrh r0, [r0, #0x1e]
@@ -43320,7 +43320,7 @@ _021EB55C:
str r0, [r4, #0x20]
pop {r4, pc}
nop
-_021EB564: .word UNK_021C48F8
+_021EB564: .word gMain + 0x40
thumb_func_end MOD16_021EB4F8
thumb_func_start MOD16_021EB568
@@ -43338,7 +43338,7 @@ _021EB57A:
ldr r0, [r4, #0x30]
cmp r0, #1
bne _021EB638
- ldr r1, _021EB63C ; =UNK_021C48F8
+ ldr r1, _021EB63C ; =gMain + 0x40
ldr r0, [r4, #0x38]
ldrh r2, [r1, #0x1c]
sub r2, r2, r0
@@ -43376,7 +43376,7 @@ _021EB5BA:
bl MOD16_021EBC98
add r0, r4, #0
bl MOD16_021EBCC4
- ldr r0, _021EB63C ; =UNK_021C48F8
+ ldr r0, _021EB63C ; =gMain + 0x40
ldrh r1, [r0, #0x1c]
str r1, [r4, #0x54]
ldrh r0, [r0, #0x1e]
@@ -43396,7 +43396,7 @@ _021EB5DE:
bl MOD16_021EC0C0
b _021EB632
_021EB5F8:
- ldr r1, _021EB63C ; =UNK_021C48F8
+ ldr r1, _021EB63C ; =gMain + 0x40
ldrh r0, [r1, #0x1e]
cmp r0, #0x83
bhs _021EB626
@@ -43430,7 +43430,7 @@ _021EB632:
_021EB638:
pop {r4, pc}
nop
-_021EB63C: .word UNK_021C48F8
+_021EB63C: .word gMain + 0x40
_021EB640: .word 0x000005F7
_021EB644: .word 0xFFFFFA00
thumb_func_end MOD16_021EB568
@@ -44176,7 +44176,7 @@ MOD16_021EBC30: ; 0x021EBC30
add r5, r0, #0
mov r0, #0
str r0, [sp]
- ldr r3, _021EBC94 ; =UNK_021C48F8
+ ldr r3, _021EBC94 ; =gMain + 0x40
ldr r0, [r5, #0x54]
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -44225,7 +44225,7 @@ _021EBC90:
add sp, #4
pop {r3, r4, r5, r6, pc}
.align 2, 0
-_021EBC94: .word UNK_021C48F8
+_021EBC94: .word gMain + 0x40
thumb_func_end MOD16_021EBC30
thumb_func_start MOD16_021EBC98
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index 5c020257..cd2070e9 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -87,7 +87,7 @@ _021D756E:
add r1, sp, #8
add r2, sp, #4
bl MOD17_021D7600
- ldr r0, _021D75D8 ; =UNK_021C48F8
+ ldr r0, _021D75D8 ; =gMain + 0x40
ldr r1, [sp, #8]
ldrh r2, [r0, #0x1c]
sub r1, r2, r1
@@ -140,7 +140,7 @@ _021D75D2:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
-_021D75D8: .word UNK_021C48F8
+_021D75D8: .word gMain + 0x40
thumb_func_end MOD17_021D7554
thumb_func_start MOD17_021D75DC
@@ -411,19 +411,19 @@ MOD17_021D7794: ; 0x021D7794
bl MOD17_021D7D08
bl MOD17_021D7D28
bl MOD17_021D7DB0
- ldr r0, _021D77B0 ; =gUnk021C4918
+ ldr r0, _021D77B0 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
bl FUN_0201E7A0
pop {r3, pc}
nop
-_021D77B0: .word gUnk021C4918
+_021D77B0: .word gMain + 0x60
thumb_func_end MOD17_021D7794
thumb_func_start MOD17_021D77B4
MOD17_021D77B4: ; 0x021D77B4
push {r3, lr}
- ldr r0, _021D77D0 ; =gUnk021C4918
+ ldr r0, _021D77D0 ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
bl FUN_0201E7A0
@@ -432,7 +432,7 @@ MOD17_021D77B4: ; 0x021D77B4
bl GX_ResetBankForTex
pop {r3, pc}
nop
-_021D77D0: .word gUnk021C4918
+_021D77D0: .word gMain + 0x60
thumb_func_end MOD17_021D77B4
thumb_func_start MOD17_021D77D4
@@ -2058,7 +2058,7 @@ MOD17_021D83E4: ; 0x021D83E4
bl memset
ldr r0, _021D84DC ; =MOD17_021D8FC8
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
add r0, r4, #0
bl OverlayManager_GetField18
@@ -2242,7 +2242,7 @@ _021D85AA:
ldr r1, [r0, #0x48]
mov r0, #3
and r1, r0
- ldr r0, _021D872C ; =UNK_021C48F8
+ ldr r0, _021D872C ; =gMain + 0x40
ldrh r0, [r0, #0x20]
orr r0, r1
bne _021D85BC
@@ -2424,7 +2424,7 @@ _021D871C: .word 0x00000554
_021D8720: .word 0x00000151
_021D8724: .word 0x000006CC
_021D8728: .word gMain
-_021D872C: .word UNK_021C48F8
+_021D872C: .word gMain + 0x40
_021D8730: .word 0x0000069C
_021D8734: .word 0x0000048C
thumb_func_end MOD17_021D84F0
@@ -2501,7 +2501,7 @@ _021D8780:
bl MOD17_021D8D94
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201CD04
cmp r0, #1
@@ -2548,7 +2548,7 @@ MOD17_021D8818: ; 0x021D8818
bl memset
ldr r0, _021D8980 ; =MOD17_021D8FC8
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
add r0, r5, #0
bl OverlayManager_GetField18
@@ -3109,7 +3109,7 @@ MOD17_021D8C9C: ; 0x021D8C9C
bl MOD17_021D8D94
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201CD04
cmp r0, #1
@@ -7839,7 +7839,7 @@ _021DAF60: .word MOD17_021DAFA0
thumb_func_start MOD17_021DAF64
MOD17_021DAF64: ; 0x021DAF64
push {r4, lr}
- ldr r1, _021DAF9C ; =UNK_021C48F8
+ ldr r1, _021DAF9C ; =gMain + 0x40
add r4, r0, #0
ldrh r2, [r1, #0x20]
cmp r2, #0
@@ -7861,7 +7861,7 @@ _021DAF82:
ldr r1, [r4, #8]
blx r1
_021DAF8C:
- ldr r0, _021DAF9C ; =UNK_021C48F8
+ ldr r0, _021DAF9C ; =gMain + 0x40
ldrh r1, [r0, #0x1c]
strh r1, [r4, #0x14]
ldrh r1, [r0, #0x1e]
@@ -7870,7 +7870,7 @@ _021DAF8C:
strb r0, [r4, #0x18]
pop {r4, pc}
.align 2, 0
-_021DAF9C: .word UNK_021C48F8
+_021DAF9C: .word gMain + 0x40
thumb_func_end MOD17_021DAF64
thumb_func_start MOD17_021DAFA0
@@ -8397,7 +8397,7 @@ MOD17_021DB3A4: ; 0x021DB3A4
ldr r0, [r2, #0x10]
cmp r0, #0
beq _021DB3C8
- ldr r3, _021DB3CC ; =UNK_021C48F8
+ ldr r3, _021DB3CC ; =gMain + 0x40
ldr r1, _021DB3D0 ; =0x0000FFFF
ldrh r4, [r3, #0x1c]
cmp r4, r1
@@ -8412,7 +8412,7 @@ MOD17_021DB3A4: ; 0x021DB3A4
_021DB3C8:
pop {r4, pc}
nop
-_021DB3CC: .word UNK_021C48F8
+_021DB3CC: .word gMain + 0x40
_021DB3D0: .word 0x0000FFFF
thumb_func_end MOD17_021DB3A4
@@ -8449,7 +8449,7 @@ MOD17_021DB404: ; 0x021DB404
ldr r0, [r4, #0x10]
cmp r0, #0
beq _021DB49E
- ldr r1, _021DB4A4 ; =UNK_021C48F8
+ ldr r1, _021DB4A4 ; =gMain + 0x40
ldrh r2, [r1, #0x1c]
ldr r1, _021DB4A8 ; =0x0000FFFF
cmp r2, r1
@@ -8462,7 +8462,7 @@ MOD17_021DB404: ; 0x021DB404
add r1, sp, #0x10
add r2, sp, #0xc
bl MOD17_021DBC08
- ldr r0, _021DB4A4 ; =UNK_021C48F8
+ ldr r0, _021DB4A4 ; =gMain + 0x40
ldr r1, [r4, #0x14]
ldrh r2, [r0, #0x1c]
ldr r3, [sp, #0xc]
@@ -8522,7 +8522,7 @@ _021DB49E:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
-_021DB4A4: .word UNK_021C48F8
+_021DB4A4: .word gMain + 0x40
_021DB4A8: .word 0x0000FFFF
thumb_func_end MOD17_021DB404
@@ -9089,7 +9089,7 @@ _021DB89A:
asr r2, r2, #1
sub r0, r0, r2
str r0, [sp]
- ldr r0, _021DB8F4 ; =UNK_021C48F8
+ ldr r0, _021DB8F4 ; =gMain + 0x40
str r1, [sp, #4]
ldrh r2, [r0, #0x1c]
mov r3, #0
@@ -9112,7 +9112,7 @@ _021DB8EE:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
-_021DB8F4: .word UNK_021C48F8
+_021DB8F4: .word gMain + 0x40
thumb_func_end MOD17_021DB880
thumb_func_start MOD17_021DB8F8
@@ -13798,7 +13798,7 @@ MOD17_021DDB58: ; 0x021DDB58
bl memset
ldr r0, _021DDC28 ; =MOD17_021DDD40
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
add r0, r5, #0
bl OverlayManager_GetField18
@@ -13821,7 +13821,7 @@ _021DDBBC:
ldr r0, [r5, #8]
str r0, [r4, #0xc]
bl MOD17_021D7794
- ldr r0, _021DDC2C ; =gUnk021C4918
+ ldr r0, _021DDC2C ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
bl FUN_0201E7A0
@@ -13864,7 +13864,7 @@ _021DDC02:
pop {r3, r4, r5, pc}
.align 2, 0
_021DDC28: .word MOD17_021DDD40
-_021DDC2C: .word gUnk021C4918
+_021DDC2C: .word gMain + 0x60
thumb_func_end MOD17_021DDB58
thumb_func_start MOD17_021DDC30
@@ -13985,7 +13985,7 @@ MOD17_021DDCF4: ; 0x021DDCF4
bl MOD17_021D77B4
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
add r0, r5, #0
bl OverlayManager_FreeData
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index a37cfb8a..bc34aa28 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -1756,7 +1756,7 @@ MOD18_0223A3D4: ; 0x0223A3D4
ldr r0, [r0]
str r4, [r0, #4]
ldr r0, _0223A4D0 ; =MOD18_0223C6CC
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl MOD18_0223D638
add r1, r4, #0
bl MOD18_0224DBB0
@@ -1974,7 +1974,7 @@ _0223A5F8:
bl FUN_0201E08C
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, _0223A648 ; =0x02251380
ldr r0, [r0]
ldr r0, [r0, #4]
@@ -2247,7 +2247,7 @@ _0223A844:
bl FUN_0201BD70
cmp r0, #0
bne _0223A922
- ldr r0, _0223AB08 ; =UNK_021C48F8
+ ldr r0, _0223AB08 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _0223A86C
@@ -2326,7 +2326,7 @@ _0223A8E4:
ldr r0, [r4, #0x4c]
sub r0, r0, #1
str r0, [r4, #0x4c]
- ldr r0, _0223AB08 ; =UNK_021C48F8
+ ldr r0, _0223AB08 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _0223A924
@@ -2380,7 +2380,7 @@ _0223A958:
bl FUN_0201BD70
cmp r0, #0
bne _0223AA5A
- ldr r0, _0223AB08 ; =UNK_021C48F8
+ ldr r0, _0223AB08 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _0223A98A
@@ -2558,7 +2558,7 @@ _0223AAF2:
.align 2, 0
_0223AB00: .word 0x00000621
_0223AB04: .word MOD18_02251380
-_0223AB08: .word UNK_021C48F8
+_0223AB08: .word gMain + 0x40
_0223AB0C: .word gMain
_0223AB10: .word 0x000005E3
_0223AB14: .word 0x000003D9
@@ -2665,7 +2665,7 @@ _0223ABDC:
bl FUN_0201BD70
cmp r0, #0
bne _0223AC10
- ldr r0, _0223AC1C ; =UNK_021C48F8
+ ldr r0, _0223AC1C ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _0223AC04
@@ -2685,7 +2685,7 @@ _0223AC10:
.align 2, 0
_0223AC14: .word MOD18_02251380
_0223AC18: .word 0x000006A1
-_0223AC1C: .word UNK_021C48F8
+_0223AC1C: .word gMain + 0x40
_0223AC20: .word gMain
thumb_func_end MOD18_0223A64C
@@ -5595,7 +5595,7 @@ MOD18_0223C1F0: ; 0x0223C1F0
mov r1, #0
strb r1, [r2, r0]
_0223C216:
- ldr r1, _0223C340 ; =UNK_021C48F8
+ ldr r1, _0223C340 ; =gMain + 0x40
ldrh r0, [r1, #0x20]
cmp r0, #0
beq _0223C29A
@@ -5673,7 +5673,7 @@ _0223C29A:
bl FUN_020054C8
_0223C2AC:
ldr r0, _0223C338 ; =0x02251380
- ldr r2, _0223C340 ; =UNK_021C48F8
+ ldr r2, _0223C340 ; =gMain + 0x40
ldr r3, [r0]
ldr r4, _0223C33C ; =0x000009E5
ldr r0, [r3, #4]
@@ -5741,7 +5741,7 @@ _0223C332:
.align 2, 0
_0223C338: .word MOD18_02251380
_0223C33C: .word 0x000009E5
-_0223C340: .word UNK_021C48F8
+_0223C340: .word gMain + 0x40
_0223C344: .word 0x000009E4
_0223C348: .word 0x000009E7
_0223C34C: .word 0x000009E8
@@ -8588,7 +8588,7 @@ MOD18_0223D8F4: ; 0x0223D8F4
mov r0, #0
pop {r3, pc}
_0223D912:
- ldr r1, _0223D9DC ; =UNK_021C48F8
+ ldr r1, _0223D9DC ; =gMain + 0x40
ldrh r1, [r1, #0x20]
cmp r1, #0
beq _0223D9BA
@@ -8625,7 +8625,7 @@ _0223D950:
pop {r3, pc}
_0223D962:
ldr r3, _0223D9D4 ; =0x02251388
- ldr r2, _0223D9DC ; =UNK_021C48F8
+ ldr r2, _0223D9DC ; =gMain + 0x40
ldr r3, [r3]
ldrh r1, [r2, #0x1c]
ldr r3, [r3, #0xc]
@@ -8644,7 +8644,7 @@ _0223D962:
strh r1, [r0]
ldr r1, [sp, #4]
strh r1, [r0, #2]
- ldr r1, _0223D9DC ; =UNK_021C48F8
+ ldr r1, _0223D9DC ; =gMain + 0x40
ldr r0, _0223D9D4 ; =0x02251388
ldrh r3, [r1, #0x1c]
ldr r2, [r0]
@@ -8682,7 +8682,7 @@ _0223D9CC:
nop
_0223D9D4: .word MOD18_02251388
_0223D9D8: .word 0x00000146
-_0223D9DC: .word UNK_021C48F8
+_0223D9DC: .word gMain + 0x40
thumb_func_end MOD18_0223D8F4
thumb_func_start MOD18_0223D9E0
@@ -14808,7 +14808,7 @@ _0224079E:
add sp, #0x1c
pop {r3, r4, pc}
_022407DE:
- ldr r1, _02240894 ; =UNK_021C48F8
+ ldr r1, _02240894 ; =gMain + 0x40
ldrh r0, [r1, #0x22]
cmp r0, #0
beq _02240816
@@ -14892,7 +14892,7 @@ _02240884: .word MOD18_022513A0
_02240888: .word 0x00000B3B
_0224088C: .word MOD18_022500A8
_02240890: .word 0x00000661
-_02240894: .word UNK_021C48F8
+_02240894: .word gMain + 0x40
thumb_func_end MOD18_02240658
thumb_func_start MOD18_02240898
@@ -18413,7 +18413,7 @@ _022423E6:
mov r0, #1
pop {r4, r5, r6, r7, pc}
_022423F4:
- ldr r0, _02242580 ; =UNK_021C48F8
+ ldr r0, _02242580 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _022424C4
@@ -18429,14 +18429,14 @@ _0224240A:
ldr r0, [r0]
cmp r0, #0
bne _022424B6
- ldr r0, _02242580 ; =UNK_021C48F8
+ ldr r0, _02242580 ; =gMain + 0x40
ldrh r0, [r0, #0x1e]
lsl r1, r0, #0xc
ldr r0, [r4, #0x48]
sub r0, r1, r0
str r0, [sp, #0xc]
asr r7, r0, #0x1f
- ldr r0, _02242580 ; =UNK_021C48F8
+ ldr r0, _02242580 ; =gMain + 0x40
ldrh r0, [r0, #0x1c]
lsl r1, r0, #0xc
ldr r0, [r4, #0x44]
@@ -18611,7 +18611,7 @@ _02242570:
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
-_02242580: .word UNK_021C48F8
+_02242580: .word gMain + 0x40
_02242584: .word 0x00000000
_02242588: .word MOD18_022500C0
_0224258C: .word 0x00000626
@@ -19324,7 +19324,7 @@ _02242B0E:
str r2, [r4, r0]
b _02242E6C
_02242B22:
- ldr r1, _02242D78 ; =UNK_021C48F8
+ ldr r1, _02242D78 ; =gMain + 0x40
ldrh r2, [r1, #0x20]
cmp r2, #0
beq _02242BD2
@@ -19612,7 +19612,7 @@ _02242D68: .word MOD18_022513A0
_02242D6C: .word 0x0000065E
_02242D70: .word 0x0000065D
_02242D74: .word 0x00000B3B
-_02242D78: .word UNK_021C48F8
+_02242D78: .word gMain + 0x40
_02242D7C: .word 0x00000627
_02242D80: .word 0x0000062A
_02242D84:
@@ -45740,7 +45740,7 @@ MOD18_0224FC18: ; 0x0224FC18
add r5, r1, #0
str r0, [sp]
add r0, #0x88
- ldr r1, _0224FCD4 ; =UNK_021C48F8
+ ldr r1, _0224FCD4 ; =gMain + 0x40
ldr r6, [r0]
ldrh r0, [r1, #0x1c]
ldrh r1, [r1, #0x1e]
@@ -45825,7 +45825,7 @@ _0224FCCE:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
nop
-_0224FCD4: .word UNK_021C48F8
+_0224FCD4: .word gMain + 0x40
thumb_func_end MOD18_0224FC18
thumb_func_start MOD18_0224FCD8
@@ -45834,7 +45834,7 @@ MOD18_0224FCD8: ; 0x0224FCD8
sub sp, #0x1c
add r4, r1, #0
add r0, #0x88
- ldr r1, _0224FD6C ; =UNK_021C48F8
+ ldr r1, _0224FD6C ; =gMain + 0x40
ldr r5, [r0]
ldrh r0, [r1, #0x1c]
add r6, r2, #0
@@ -45902,7 +45902,7 @@ _0224FD66:
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
nop
-_0224FD6C: .word UNK_021C48F8
+_0224FD6C: .word gMain + 0x40
thumb_func_end MOD18_0224FCD8
thumb_func_start MOD18_0224FD70
@@ -45910,7 +45910,7 @@ MOD18_0224FD70: ; 0x0224FD70
push {r3, r4, r5, lr}
add r3, r0, #0
mov r0, #0
- ldr r4, _0224FDD0 ; =UNK_021C48F8
+ ldr r4, _0224FDD0 ; =gMain + 0x40
str r0, [r2]
ldrh r5, [r4, #0x20]
cmp r5, #0
@@ -45959,7 +45959,7 @@ _0224FDC0:
_0224FDCE:
pop {r3, r4, r5, pc}
.align 2, 0
-_0224FDD0: .word UNK_021C48F8
+_0224FDD0: .word gMain + 0x40
_0224FDD4: .word gMain
_0224FDD8: .word 0x000004F8
thumb_func_end MOD18_0224FD70
@@ -45969,7 +45969,7 @@ MOD18_0224FDDC: ; 0x0224FDDC
push {r3, r4, r5, lr}
add r3, r0, #0
mov r0, #0
- ldr r4, _0224FE40 ; =UNK_021C48F8
+ ldr r4, _0224FE40 ; =gMain + 0x40
str r0, [r2]
ldrh r5, [r4, #0x20]
cmp r5, #0
@@ -46020,7 +46020,7 @@ _0224FE30:
_0224FE3E:
pop {r3, r4, r5, pc}
.align 2, 0
-_0224FE40: .word UNK_021C48F8
+_0224FE40: .word gMain + 0x40
_0224FE44: .word gMain
_0224FE48: .word 0x000004F8
thumb_func_end MOD18_0224FDDC
@@ -46030,7 +46030,7 @@ MOD18_0224FE4C: ; 0x0224FE4C
push {r4, lr}
add r3, r0, #0
mov r0, #0
- ldr r4, _0224FE88 ; =UNK_021C48F8
+ ldr r4, _0224FE88 ; =gMain + 0x40
str r0, [r2]
ldrh r4, [r4, #0x20]
cmp r4, #0
@@ -46058,7 +46058,7 @@ _0224FE80:
str r0, [r3, r1]
pop {r4, pc}
nop
-_0224FE88: .word UNK_021C48F8
+_0224FE88: .word gMain + 0x40
_0224FE8C: .word gMain
_0224FE90: .word 0x000004F8
thumb_func_end MOD18_0224FE4C
@@ -46068,7 +46068,7 @@ MOD18_0224FE94: ; 0x0224FE94
push {r3, r4, r5, lr}
add r3, r0, #0
mov r0, #0
- ldr r4, _0224FEF4 ; =UNK_021C48F8
+ ldr r4, _0224FEF4 ; =gMain + 0x40
str r0, [r2]
ldrh r5, [r4, #0x20]
cmp r5, #0
@@ -46117,7 +46117,7 @@ _0224FEE4:
_0224FEF2:
pop {r3, r4, r5, pc}
.align 2, 0
-_0224FEF4: .word UNK_021C48F8
+_0224FEF4: .word gMain + 0x40
_0224FEF8: .word gMain
_0224FEFC: .word 0x000004F8
thumb_func_end MOD18_0224FE94
diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s
index 5b38d781..7f63bc2e 100644
--- a/arm9/modules/53/asm/module_53.s
+++ b/arm9/modules/53/asm/module_53.s
@@ -20,7 +20,7 @@ _021D74F4:
_021D74F6:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -91,7 +91,7 @@ _021D74F6:
bl FUN_0201CC24
ldr r0, _021D7648 ; =MOD53_021D78A8
ldr r1, [r4]
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0
bl MOD53_021D79F8
bl MOD53_021D7C54
@@ -322,7 +322,7 @@ _021D7794:
bl FUN_02028AD4
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x17
lsl r0, r0, #4
ldr r0, [r6, r0]
@@ -415,7 +415,7 @@ _021D786E:
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x27
bl FUN_020168D0
mov r0, #2
@@ -1716,7 +1716,7 @@ _021D8316:
bl FUN_02031190
lsl r1, r0, #2
ldr r0, [sp]
- ldr r2, _021D83D0 ; =UNK_021C48F8
+ ldr r2, _021D83D0 ; =gMain + 0x40
add r1, r0, r1
mov r0, #0x76
lsl r0, r0, #2
@@ -1774,7 +1774,7 @@ _021D83C0: .word 0x0000438B
_021D83C4: .word 0x00004377
_021D83C8: .word 0x000005E5
_021D83CC: .word MOD53_021D94F0
-_021D83D0: .word UNK_021C48F8
+_021D83D0: .word gMain + 0x40
_021D83D4: .word 0x00004378
_021D83D8: .word 0x00004380
thumb_func_end MOD53_021D81B0
diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s
index 5dd265c7..1ff5c011 100644
--- a/arm9/modules/54/asm/module_54.s
+++ b/arm9/modules/54/asm/module_54.s
@@ -20,7 +20,7 @@ _021D74F4:
_021D74F6:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -90,7 +90,7 @@ _021D74F6:
bl MOD54_021D7AA0
ldr r0, _021D7644 ; =MOD54_021D784C
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0
bl MOD54_021D799C
bl MOD54_021D7B8C
@@ -331,7 +331,7 @@ _021D776C:
bl FUN_02052B74
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x33
bl FUN_020168D0
mov r0, #1
@@ -1968,7 +1968,7 @@ MOD54_021D84D4: ; 0x021D84D4
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
- ldr r0, _021D8514 ; =gUnk021C4918
+ ldr r0, _021D8514 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #8]
mov r0, #0x33
@@ -1993,7 +1993,7 @@ MOD54_021D84D4: ; 0x021D84D4
add r0, r4, #0
pop {r3, r4, r5, pc}
nop
-_021D8514: .word gUnk021C4918
+_021D8514: .word gMain + 0x60
thumb_func_end MOD54_021D84D4
thumb_func_start MOD54_021D8518
@@ -2035,7 +2035,7 @@ _021D852A:
str r1, [r5, #0xc]
lsl r0, r0, #4
str r1, [r5, r0]
- ldr r0, _021D8580 ; =gUnk021C4918
+ ldr r0, _021D8580 ; =gMain + 0x60
strb r1, [r0, #8]
ldr r0, _021D8584 ; =0x00004A40
strb r1, [r5, r0]
@@ -2044,7 +2044,7 @@ _021D8576:
pop {r3, r4, r5, pc}
nop
_021D857C: .word 0x00000658
-_021D8580: .word gUnk021C4918
+_021D8580: .word gMain + 0x60
_021D8584: .word 0x00004A40
thumb_func_end MOD54_021D8518
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
index d6b9b522..860ecc6b 100644
--- a/arm9/modules/55/asm/module_55.s
+++ b/arm9/modules/55/asm/module_55.s
@@ -27,7 +27,7 @@ MOD55_021D7504: ; 0x021D7504
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -54,7 +54,7 @@ MOD55_021D7504: ; 0x021D7504
bl MOD55_021D7AE0
ldr r0, _021D7568 ; =MOD55_021D77D0
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0
bl MOD55_021D74E0
pop {r4, pc}
@@ -327,7 +327,7 @@ MOD55_021D778C: ; 0x021D778C
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0
bl MOD55_021D7720
add r0, r4, #0
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
index 5bf21ef0..08b66924 100644
--- a/arm9/modules/56/asm/module_56.s
+++ b/arm9/modules/56/asm/module_56.s
@@ -251,7 +251,7 @@ MOD56_02211FD4: ; 0x02211FD4
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -304,7 +304,7 @@ MOD56_02211FD4: ; 0x02211FD4
bl MOD56_0221257C
ldr r0, _02212080 ; =MOD56_0221228C
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl MOD56_0221269C
add r0, r4, #0
bl MOD56_022126E0
@@ -485,7 +485,7 @@ MOD56_022121C4: ; 0x022121C4
add r6, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0xb
lsl r0, r0, #6
ldr r0, [r6, r0]
diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s
index 9bf62714..798a2bdb 100644
--- a/arm9/modules/57/asm/module_57.s
+++ b/arm9/modules/57/asm/module_57.s
@@ -10,7 +10,7 @@ MOD57_021D74E0: ; 0x021D74E0
add r5, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
@@ -221,7 +221,7 @@ _021D76A8:
bl MOD57_021D8588
ldr r0, _021D7710 ; =MOD57_021D848C
mov r1, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02033F20
mov r0, #1
mov r1, #0x2a
@@ -559,7 +559,7 @@ MOD57_021D7944: ; 0x021D7944
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x19
bl FUN_020168D0
mov r0, #1
@@ -1599,7 +1599,7 @@ MOD57_021D81F8: ; 0x021D81F8
ldr r0, _021D82A8 ; =0x000030D4
sub r1, r6, #1
str r1, [r5, r0]
- ldr r1, _021D82AC ; =UNK_021C48F8
+ ldr r1, _021D82AC ; =gMain + 0x40
add r4, r6, #0
ldrh r1, [r1, #0x20]
cmp r1, #0
@@ -1634,7 +1634,7 @@ _021D8214:
add r4, r6, #0
b _021D8288
_021D8248:
- ldr r0, _021D82AC ; =UNK_021C48F8
+ ldr r0, _021D82AC ; =gMain + 0x40
ldrh r0, [r0, #0x22]
cmp r0, #0
beq _021D8282
@@ -1686,7 +1686,7 @@ _021D82A2:
pop {r4, r5, r6, pc}
nop
_021D82A8: .word 0x000030D4
-_021D82AC: .word UNK_021C48F8
+_021D82AC: .word gMain + 0x40
_021D82B0: .word MOD57_021D9754
_021D82B4: .word 0x00003318
_021D82B8: .word gMain
@@ -1696,7 +1696,7 @@ _021D82B8: .word gMain
MOD57_021D82BC: ; 0x021D82BC
push {r4, r5, r6, lr}
add r5, r0, #0
- ldr r0, _021D83BC ; =UNK_021C48F8
+ ldr r0, _021D83BC ; =gMain + 0x40
ldr r6, _021D83C0 ; =0x0000FFFF
ldrh r3, [r0, #0x1c]
mov r4, #0
@@ -1745,7 +1745,7 @@ _021D8312:
blt _021D8358
cmp r2, #0x28
bgt _021D8358
- ldr r0, _021D83BC ; =UNK_021C48F8
+ ldr r0, _021D83BC ; =gMain + 0x40
ldrh r1, [r0, #0x1e]
ldr r0, _021D83CC ; =0x000030E0
ldr r0, [r5, r0]
@@ -1778,7 +1778,7 @@ _021D834C:
_021D8358:
cmp r2, #0x28
bgt _021D8398
- ldr r0, _021D83BC ; =UNK_021C48F8
+ ldr r0, _021D83BC ; =gMain + 0x40
ldrh r1, [r0, #0x1e]
ldr r0, _021D83CC ; =0x000030E0
ldr r0, [r5, r0]
@@ -1820,7 +1820,7 @@ _021D8398:
lsr r1, r1, #0x18
bl MOD57_021D84AC
_021D83AC:
- ldr r1, _021D83BC ; =UNK_021C48F8
+ ldr r1, _021D83BC ; =gMain + 0x40
ldr r0, _021D83C4 ; =0x000030DC
ldrh r2, [r1, #0x1c]
str r2, [r5, r0]
@@ -1829,7 +1829,7 @@ _021D83AC:
str r1, [r5, r0]
pop {r4, r5, r6, pc}
.align 2, 0
-_021D83BC: .word UNK_021C48F8
+_021D83BC: .word gMain + 0x40
_021D83C0: .word 0x0000FFFF
_021D83C4: .word 0x000030DC
_021D83C8: .word 0x00003302
@@ -2567,7 +2567,7 @@ MOD57_021D890C: ; 0x021D890C
strh r1, [r0]
add r0, sp, #4
str r0, [sp]
- ldr r3, _021D8950 ; =UNK_021C48F8
+ ldr r3, _021D8950 ; =gMain + 0x40
add r0, r5, #0
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -2585,7 +2585,7 @@ _021D894C:
add sp, #8
pop {r3, r4, r5, pc}
.align 2, 0
-_021D8950: .word UNK_021C48F8
+_021D8950: .word gMain + 0x40
thumb_func_end MOD57_021D890C
thumb_func_start MOD57_021D8954
@@ -2607,7 +2607,7 @@ MOD57_021D8954: ; 0x021D8954
strh r1, [r0]
add r0, sp, #4
str r0, [sp]
- ldr r3, _021D8998 ; =UNK_021C48F8
+ ldr r3, _021D8998 ; =gMain + 0x40
add r0, r5, #0
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -2625,7 +2625,7 @@ _021D8994:
add sp, #8
pop {r3, r4, r5, pc}
.align 2, 0
-_021D8998: .word UNK_021C48F8
+_021D8998: .word gMain + 0x40
thumb_func_end MOD57_021D8954
thumb_func_start MOD57_021D899C
diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s
index 5f477c7b..0d391752 100644
--- a/arm9/modules/58/asm/module_58.s
+++ b/arm9/modules/58/asm/module_58.s
@@ -26,7 +26,7 @@ _021D9A36:
bl FUN_0200E3A0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -101,7 +101,7 @@ _021D9A36:
bl FUN_0201CC24
ldr r0, _021D9B80 ; =MOD58_021D9CB4
ldr r1, [r4]
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #2
mov r1, #0x27
bl FUN_02002C50
@@ -217,7 +217,7 @@ MOD58_021D9BF0: ; 0x021D9BF0
bl MOD58_021DAC18
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x5e
lsl r0, r0, #2
ldr r0, [r6, r0]
@@ -272,7 +272,7 @@ _021D9C40:
strh r0, [r2]
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x27
bl FUN_020168D0
mov r0, #1
@@ -2320,7 +2320,7 @@ _021DAC6E:
thumb_func_start MOD58_021DAC7C
MOD58_021DAC7C: ; 0x021DAC7C
push {r3, r4, r5, lr}
- ldr r1, _021DAD28 ; =UNK_021C48F8
+ ldr r1, _021DAD28 ; =gMain + 0x40
add r4, r0, #0
ldrh r0, [r1, #0x1c]
ldr r3, _021DAD2C ; =0x0000FFFF
@@ -2353,7 +2353,7 @@ _021DACB0:
blt _021DACE6
cmp r3, #0x28
bgt _021DACE6
- ldr r0, _021DAD28 ; =UNK_021C48F8
+ ldr r0, _021DAD28 ; =gMain + 0x40
ldrh r2, [r0, #0x1e]
ldr r0, _021DAD34 ; =0x00005CAC
ldr r1, [r4, r0]
@@ -2378,7 +2378,7 @@ _021DACD4:
_021DACE6:
cmp r3, #0x28
bgt _021DAD16
- ldr r0, _021DAD28 ; =UNK_021C48F8
+ ldr r0, _021DAD28 ; =gMain + 0x40
ldrh r2, [r0, #0x1e]
ldr r0, _021DAD34 ; =0x00005CAC
ldr r1, [r4, r0]
@@ -2402,7 +2402,7 @@ _021DAD02:
add r0, r4, r0
bl MOD58_021DAD3C
_021DAD16:
- ldr r1, _021DAD28 ; =UNK_021C48F8
+ ldr r1, _021DAD28 ; =gMain + 0x40
ldr r0, _021DAD30 ; =0x00005CA8
ldrh r2, [r1, #0x1c]
str r2, [r4, r0]
@@ -2411,7 +2411,7 @@ _021DAD16:
str r1, [r4, r0]
pop {r3, r4, r5, pc}
nop
-_021DAD28: .word UNK_021C48F8
+_021DAD28: .word gMain + 0x40
_021DAD2C: .word 0x0000FFFF
_021DAD30: .word 0x00005CA8
_021DAD34: .word 0x00005CAC
diff --git a/arm9/modules/59/asm/module_59.s b/arm9/modules/59/asm/module_59.s
index 8e652086..746049b9 100644
--- a/arm9/modules/59/asm/module_59.s
+++ b/arm9/modules/59/asm/module_59.s
@@ -101,7 +101,7 @@ _021D7592:
bl FUN_0200E3A0
add r0, r6, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F34
@@ -128,7 +128,7 @@ _021D7592:
bl MOD59_021D7A4C
ldr r0, _021D76BC ; =MOD59_021D7724
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E788
mov r0, #1
str r0, [r5]
@@ -180,7 +180,7 @@ _021D7642:
bl MOD59_021D7A5C
add r0, r6, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r6, #1
b _021D76AC
_021D7668:
@@ -195,7 +195,7 @@ _021D7668:
bl MOD59_021D7A5C
add r0, r6, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #4
str r0, [r5]
b _021D76AC
@@ -275,7 +275,7 @@ _021D772C: .word FUN_0201AB60
thumb_func_start MOD59_021D7730
MOD59_021D7730: ; 0x021D7730
push {r3, r4}
- ldr r2, _021D7788 ; =UNK_021C48F8
+ ldr r2, _021D7788 ; =gMain + 0x40
mov r0, #0
ldrh r1, [r2, #0x20]
cmp r1, #0
@@ -324,7 +324,7 @@ _021D7784:
pop {r3, r4}
bx lr
.align 2, 0
-_021D7788: .word UNK_021C48F8
+_021D7788: .word gMain + 0x40
thumb_func_end MOD59_021D7730
thumb_func_start MOD59_021D778C
@@ -4471,7 +4471,7 @@ _021D98C6:
bl FUN_0200E3A0
add r0, r6, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F34
@@ -4496,7 +4496,7 @@ _021D98C6:
bl MOD59_021D9C48
ldr r0, _021D99F0 ; =MOD59_021D9A14
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E788
mov r0, #0x3c
str r0, [r4, #0x24]
@@ -4586,7 +4586,7 @@ _021D99C0:
bl MOD59_021D9BD0
add r0, r6, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r6, #1
_021D99E2:
add r0, r6, #0
diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s
index 6c2094b1..28028e5f 100644
--- a/arm9/modules/60/asm/module_60.s
+++ b/arm9/modules/60/asm/module_60.s
@@ -436,7 +436,7 @@ MOD60_021D7834: ; 0x021D7834
_021D7848:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -482,7 +482,7 @@ _021D78A2:
bl FUN_02033F20
ldr r0, _021D78E4 ; =MOD60_021D77D4
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0
str r0, [r4, #8]
mov r0, #1
@@ -549,7 +549,7 @@ _021D7928:
_021D7946:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s
index ac07287d..e82b9e44 100644
--- a/arm9/modules/61/asm/module_61.s
+++ b/arm9/modules/61/asm/module_61.s
@@ -555,7 +555,7 @@ _021D78EE: ; jump table
_021D78FA:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -590,7 +590,7 @@ _021D7940:
_021D794E:
ldr r0, _021D7A5C ; =MOD61_021D7A6C
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
@@ -680,7 +680,7 @@ _021D79FC:
bl FUN_0200E3A0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E6D8
bl FUN_0201E740
mov r2, #1
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
index b02c4ff1..79190f60 100644
--- a/arm9/modules/62/asm/module_62.s
+++ b/arm9/modules/62/asm/module_62.s
@@ -39,7 +39,7 @@ MOD62_0222D5F8: ; 0x0222D5F8
beq _0222D64C
cmp r2, #1
bne _0222D628
- ldr r3, _0222D650 ; =UNK_021C48F8
+ ldr r3, _0222D650 ; =gMain + 0x40
mov r1, #0x1c
mov r2, #0x1e
ldrsh r1, [r3, r1]
@@ -74,7 +74,7 @@ _0222D628:
_0222D64C:
pop {r3, r4, r5, pc}
nop
-_0222D650: .word UNK_021C48F8
+_0222D650: .word gMain + 0x40
thumb_func_end MOD62_0222D5F8
thumb_func_start MOD62_0222D654
@@ -7320,7 +7320,7 @@ MOD62_02230F3C: ; 0x02230F3C
push {r3, lr}
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -7345,7 +7345,7 @@ MOD62_02230F70: ; 0x02230F70
push {r3, lr}
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
pop {r3, pc}
thumb_func_end MOD62_02230F70
diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s
index 09884c1e..df0624f9 100644
--- a/arm9/modules/63/asm/mod63_021D74E0.s
+++ b/arm9/modules/63/asm/mod63_021D74E0.s
@@ -19,7 +19,7 @@ MOD63_021D74E0: ; 0x021D74E0
ldr r1, _021D758C ; =0x04000050
strh r0, [r1]
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
@@ -68,7 +68,7 @@ MOD63_021D74E0: ; 0x021D74E0
bl MOD63_021D7880
ldr r0, _021D7598 ; =MOD63_021D782C
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E788
mov r0, #1
pop {r4, pc}
@@ -355,7 +355,7 @@ MOD63_021D77B4: ; 0x021D77B4
mov r0, #0
add r1, r0, #0
ldr r4, [r6]
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r6, #0
bl MOD63_021D78B0
add r0, r6, #0
@@ -1028,7 +1028,7 @@ _021D7C52:
mov r0, #0x10
orr r0, r1
strh r0, [r2]
- ldr r0, _021D7D70 ; =gUnk021C4918
+ ldr r0, _021D7D70 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
bl FUN_0201E7A0
@@ -1043,7 +1043,7 @@ _021D7D60: .word 0x04000060
_021D7D64: .word 0xFFFFCFFF
_021D7D68: .word 0x00007FFF
_021D7D6C: .word 0x0000010E
-_021D7D70: .word gUnk021C4918
+_021D7D70: .word gMain + 0x60
thumb_func_end MOD63_021D7C18
thumb_func_start MOD63_021D7D74
@@ -1853,7 +1853,7 @@ MOD63_021D8360: ; 0x021D8360
ldr r0, _021D83A0 ; =0x0000CFDF
and r0, r1
strh r0, [r2]
- ldr r0, _021D83A4 ; =gUnk021C4918
+ ldr r0, _021D83A4 ; =gMain + 0x60
strb r3, [r0, #5]
bl FUN_0201E7A0
mov r0, #1
@@ -1861,7 +1861,7 @@ MOD63_021D8360: ; 0x021D8360
.align 2, 0
_021D839C: .word 0x04000050
_021D83A0: .word 0x0000CFDF
-_021D83A4: .word gUnk021C4918
+_021D83A4: .word gMain + 0x60
thumb_func_end MOD63_021D8360
thumb_func_start MOD63_021D83A8
diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s
index 7940564f..9c8b1d22 100644
--- a/arm9/modules/63/asm/mod63_021D8890.s
+++ b/arm9/modules/63/asm/mod63_021D8890.s
@@ -574,7 +574,7 @@ MOD63_021D8D10: ; 0x021D8D10
bl FUN_0200E3A0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
@@ -604,7 +604,7 @@ MOD63_021D8D10: ; 0x021D8D10
str r1, [r4, #8]
lsl r0, r0, #2
strb r1, [r4, r0]
- ldr r0, _021D8D94 ; =gUnk021C4918
+ ldr r0, _021D8D94 ; =gMain + 0x60
strb r1, [r0, #5]
bl FUN_0201E7A0
bl GetLCRNGSeed
@@ -615,7 +615,7 @@ MOD63_021D8D10: ; 0x021D8D10
pop {r4, pc}
.align 2, 0
_021D8D90: .word 0x00007FFF
-_021D8D94: .word gUnk021C4918
+_021D8D94: .word gMain + 0x60
thumb_func_end MOD63_021D8D10
thumb_func_start MOD63_021D8D98
@@ -826,7 +826,7 @@ MOD63_021D8F0C: ; 0x021D8F0C
str r0, [r4, #0x2c]
ldr r0, _021D8F34 ; =MOD63_021D8CA8
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #1
strb r0, [r4, #0x1a]
pop {r4, pc}
@@ -1192,7 +1192,7 @@ MOD63_021D9234: ; 0x021D9234
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldrb r0, [r4, #0x1a]
cmp r0, #0
beq _021D9286
@@ -1544,7 +1544,7 @@ MOD63_021D9498: ; 0x021D9498
ldr r0, [r5, #0xc]
mov r1, #1
str r0, [r5, #0x40]
- ldr r0, _021D9588 ; =gUnk021C4918
+ ldr r0, _021D9588 ; =gMain + 0x60
strb r1, [r0, #5]
bl FUN_0201E7A0
ldr r6, _021D958C ; =MOD63_021DBDE8
@@ -1595,7 +1595,7 @@ _021D950C:
bl FUN_020B8390
ldr r0, _021D95A4 ; =MOD63_021D8CB0
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x10
mov r1, #1
mov r2, #2
@@ -1606,7 +1606,7 @@ _021D950C:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
-_021D9588: .word gUnk021C4918
+_021D9588: .word gMain + 0x60
_021D958C: .word MOD63_021DBDE8
_021D9590: .word MOD63_021DBAD0
_021D9594: .word 0x00004210
@@ -1728,7 +1728,7 @@ _021D965E:
_021D9690:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
pop {r4, r5, r6, pc}
nop
_021D969C: .word 0xFFFF1FFF
diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s
index e979f20e..1dee0562 100644
--- a/arm9/modules/64/asm/module_64.s
+++ b/arm9/modules/64/asm/module_64.s
@@ -47,7 +47,7 @@ _021D7504:
bl FUN_0201C24C
ldr r0, _021D763C ; =MOD64_021D77A4
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201CC08
mov r0, #4
@@ -245,7 +245,7 @@ MOD64_021D76F4: ; 0x021D76F4
add r6, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, [r4, #0x54]
lsl r0, r0, #0x10
lsr r0, r0, #0x10
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index d6b9d89f..7eac95d5 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -112,7 +112,7 @@ _021D7596: ; jump table
_021D75A4:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -220,7 +220,7 @@ _021D7684:
bl FUN_0200E3A0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E6D8
bl FUN_0201E740
mov r2, #1
@@ -653,7 +653,7 @@ _021D79D2:
bl MOD65_021D8280
ldr r0, _021D79FC ; =MOD65_021D76DC
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0
str r0, [r4, #8]
mov r0, #1
@@ -2769,7 +2769,7 @@ _021D8A78: ; jump table
_021D8A88:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -2805,7 +2805,7 @@ _021D8ACE:
_021D8ADE:
ldr r0, _021D8BB8 ; =MOD65_021D8C88
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
b _021D8BA4
_021D8AE8:
ldr r1, [r4, #4]
@@ -2881,7 +2881,7 @@ _021D8B68:
bl FUN_0200E3A0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E6D8
bl FUN_0201E740
mov r2, #1
diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s
index 2967b0c9..8f27daeb 100644
--- a/arm9/modules/66/asm/module_66.s
+++ b/arm9/modules/66/asm/module_66.s
@@ -191,7 +191,7 @@ MOD66_021D7628: ; 0x021D7628
_021D763C:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -285,7 +285,7 @@ _021D76E4:
_021D7710:
ldr r0, _021D7748 ; =MOD66_021D75C8
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldrb r1, [r4]
mov r0, #0x24
add r2, r1, #0
@@ -325,7 +325,7 @@ MOD66_021D7750: ; 0x021D7750
bl FUN_0201E74C
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
add r0, r5, #0
bl MOD66_021D91F4
@@ -1402,7 +1402,7 @@ _021D7FCE:
strh r1, [r0]
add r0, sp, #4
str r0, [sp]
- ldr r3, _021D7FF8 ; =UNK_021C48F8
+ ldr r3, _021D7FF8 ; =gMain + 0x40
ldr r0, [r5, #0x28]
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -1418,7 +1418,7 @@ _021D7FEE:
pop {r4, r5, r6, pc}
.align 2, 0
_021D7FF4: .word MOD66_021D9720
-_021D7FF8: .word UNK_021C48F8
+_021D7FF8: .word gMain + 0x40
thumb_func_end MOD66_021D7FA4
thumb_func_start MOD66_021D7FFC
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
index 4c85f4ff..6b7ae246 100644
--- a/arm9/modules/67/asm/module_67.s
+++ b/arm9/modules/67/asm/module_67.s
@@ -9,7 +9,7 @@ MOD67_021D74E0: ; 0x021D74E0
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -79,7 +79,7 @@ MOD67_021D74E0: ; 0x021D74E0
bl MOD67_021D7B84
ldr r0, _021D75CC ; =MOD67_021D7660
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E788
bl FUN_02033E74
mov r0, #0x10
@@ -153,7 +153,7 @@ MOD67_021D7624: ; 0x021D7624
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0
bl MOD67_021D7D84
ldr r0, [r4]
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
index ff21b695..469d30af 100644
--- a/arm9/modules/68/asm/module_68.s
+++ b/arm9/modules/68/asm/module_68.s
@@ -9,7 +9,7 @@ MOD68_021D74E0: ; 0x021D74E0
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -89,7 +89,7 @@ MOD68_021D74E0: ; 0x021D74E0
bl MOD68_021D8294
ldr r0, _021D75D4 ; =MOD68_021D7680
add r1, r5, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02033F20
mov r0, #0x10
mov r1, #1
@@ -171,7 +171,7 @@ MOD68_021D762C: ; 0x021D762C
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x24
bl FUN_020168D0
ldr r0, _021D767C ; =0x04000050
@@ -1183,7 +1183,7 @@ _021D7E50:
mov r0, #2
tst r0, r1
bne _021D7E60
- ldr r0, _021D7E74 ; =UNK_021C48F8
+ ldr r0, _021D7E74 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _021D7E6C
@@ -1198,7 +1198,7 @@ _021D7E6C:
pop {r4, pc}
.align 2, 0
_021D7E70: .word gMain
-_021D7E74: .word UNK_021C48F8
+_021D7E74: .word gMain + 0x40
thumb_func_end MOD68_021D7D9C
thumb_func_start MOD68_021D7E78
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index 74cfe028..686df4a1 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -9,7 +9,7 @@ HOF_OverlayInit: ; 0x0222D5C0
add r5, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #3
mov r1, #0x3f
lsl r2, r0, #0x10
diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s
index f18bda67..9eeae0a5 100644
--- a/arm9/modules/70/asm/module_70.s
+++ b/arm9/modules/70/asm/module_70.s
@@ -475,7 +475,7 @@ MOD70_021D77CC: ; 0x021D77CC
str r0, [r4, r1]
ldr r0, _021D789C ; =MOD70_021D790C
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
_021D788C:
add r0, r4, #0
add sp, #0x14
@@ -493,7 +493,7 @@ MOD70_021D78A0: ; 0x021D78A0
beq _021D790A
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x66
lsl r0, r0, #2
ldr r0, [r4, r0]
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index 6337fcb9..d526414e 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -10,7 +10,7 @@ MOD71_0222D5C0: ; 0x0222D5C0
add r5, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -94,7 +94,7 @@ MOD71_0222D5C0: ; 0x0222D5C0
bl MOD71_0222E900
ldr r0, _0222D73C ; =MOD71_0222E4DC
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl MOD71_0222EA38
add r0, r4, #0
bl MOD71_0222EA68
@@ -366,7 +366,7 @@ MOD71_0222D820: ; 0x0222D820
bl FUN_020200A0
ldr r0, _0222D938 ; =MOD71_0222E4DC
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add sp, #8
pop {r4, pc}
nop
@@ -1775,7 +1775,7 @@ MOD71_0222E438: ; 0x0222E438
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x1a
bl FUN_020168D0
mov r0, #1
diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s
index d46ff721..efabd4ae 100644
--- a/arm9/modules/73/asm/module_73.s
+++ b/arm9/modules/73/asm/module_73.s
@@ -67,7 +67,7 @@ _021D7536:
str r1, [r5, r0]
ldr r0, _021D7584 ; =MOD73_021D74E0
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
ldr r1, _021D7588 ; =0x0000049F
mov r0, #0xc
@@ -189,7 +189,7 @@ MOD73_021D7640: ; 0x021D7640
bl MOD73_021D8E90
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201C29C
ldr r2, _021D7688 ; =0x000015E8
@@ -1055,7 +1055,7 @@ _021D7D94:
sub r0, r0, #1
str r0, [r4, #0x1c]
bmi _021D7DAE
- ldr r0, _021D7F50 ; =UNK_021C48F8
+ ldr r0, _021D7F50 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _021D7DAE
@@ -1101,7 +1101,7 @@ _021D7DF4:
ldr r0, [r4, #0x1c]
sub r0, r0, #1
str r0, [r4, #0x1c]
- ldr r0, _021D7F50 ; =UNK_021C48F8
+ ldr r0, _021D7F50 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _021D7E14
@@ -1214,7 +1214,7 @@ _021D7ED6:
ldr r0, [r4, #0x1c]
sub r0, r0, #1
str r0, [r4, #0x1c]
- ldr r0, _021D7F50 ; =UNK_021C48F8
+ ldr r0, _021D7F50 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _021D7EF4
@@ -1271,7 +1271,7 @@ _021D7F3E:
_021D7F44: .word 0x0000063C
_021D7F48: .word 0x00001410
_021D7F4C: .word 0x000006C3
-_021D7F50: .word UNK_021C48F8
+_021D7F50: .word gMain + 0x40
_021D7F54: .word gMain
_021D7F58: .word 0x0000152C
_021D7F5C: .word 0x00001420
@@ -2230,7 +2230,7 @@ MOD73_021D8630: ; 0x021D8630
bl MOD73_021DAFA8
add r0, r4, #0
bl MOD73_021D8BDC
- ldr r0, _021D8758 ; =gUnk021C4918
+ ldr r0, _021D8758 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
bl FUN_0201E7A0
@@ -2245,7 +2245,7 @@ _021D8748: .word 0x0000058C
_021D874C: .word 0x0000061C
_021D8750: .word 0x00000A84
_021D8754: .word 0x00000B04
-_021D8758: .word gUnk021C4918
+_021D8758: .word gMain + 0x60
thumb_func_end MOD73_021D8630
thumb_func_start MOD73_021D875C
@@ -2299,7 +2299,7 @@ MOD73_021D875C: ; 0x021D875C
bl MOD73_021D8BD0
add r0, r4, #0
bl MOD73_021D8D18
- ldr r0, _021D880C ; =gUnk021C4918
+ ldr r0, _021D880C ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
bl FUN_0201E7A0
@@ -2313,7 +2313,7 @@ _021D87FC: .word 0x00000598
_021D8800: .word 0x0000061C
_021D8804: .word 0x00000A84
_021D8808: .word 0x00000B04
-_021D880C: .word gUnk021C4918
+_021D880C: .word gMain + 0x60
thumb_func_end MOD73_021D875C
thumb_func_start MOD73_021D8810
@@ -8110,7 +8110,7 @@ MOD73_021DB318: ; 0x021DB318
push {r4, lr}
sub sp, #8
add r4, r0, #0
- ldr r0, _021DB364 ; =UNK_021C48F8
+ ldr r0, _021DB364 ; =gMain + 0x40
ldrh r1, [r0, #0x22]
cmp r1, #0
beq _021DB33C
@@ -8140,13 +8140,13 @@ _021DB33C:
str r0, [r4, #8]
ldr r0, [r4, #4]
str r0, [r4, #0xc]
- ldr r0, _021DB364 ; =UNK_021C48F8
+ ldr r0, _021DB364 ; =gMain + 0x40
ldrh r0, [r0, #0x22]
str r0, [r4, #0x14]
add sp, #8
pop {r4, pc}
.align 2, 0
-_021DB364: .word UNK_021C48F8
+_021DB364: .word gMain + 0x40
thumb_func_end MOD73_021DB318
thumb_func_start MOD73_021DB368
diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s
index 1aca7c52..4f8087ae 100644
--- a/arm9/modules/74/asm/module_74.s
+++ b/arm9/modules/74/asm/module_74.s
@@ -188,7 +188,7 @@ _021D763A: ; jump table
_021D7644:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -240,7 +240,7 @@ _021D76B6:
_021D76C2:
ldr r0, _021D76E4 ; =MOD74_021D7784
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0
str r0, [r4, #4]
mov r0, #1
@@ -287,7 +287,7 @@ _021D770E:
_021D7722:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index f2852678..c2cbd1be 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -10,7 +10,7 @@ MOD75_021E6BA0: ; 0x021E6BA0
add r5, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -175,7 +175,7 @@ MOD75_021E6BA0: ; 0x021E6BA0
_021E6D3A:
ldr r0, _021E6D68 ; =MOD75_021E700C
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r1, #0
mov r0, #0x33
add r2, r1, #0
@@ -458,7 +458,7 @@ MOD75_021E6F00: ; 0x021E6F00
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #6
bl FUN_020168D0
mov r0, #1
@@ -3040,7 +3040,7 @@ MOD75_021E8374: ; 0x021E8374
strh r1, [r0]
add r0, sp, #4
str r0, [sp]
- ldr r3, _021E83C8 ; =UNK_021C48F8
+ ldr r3, _021E83C8 ; =gMain + 0x40
ldr r0, [r5]
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -3060,7 +3060,7 @@ _021E83B6:
_021E83BC: .word 0x00000424
_021E83C0: .word MOD75_021EC628
_021E83C4: .word 0x0000FFFE
-_021E83C8: .word UNK_021C48F8
+_021E83C8: .word gMain + 0x40
thumb_func_end MOD75_021E8374
thumb_func_start MOD75_021E83CC
@@ -3084,7 +3084,7 @@ MOD75_021E83CC: ; 0x021E83CC
strh r1, [r0]
add r0, sp, #4
str r0, [sp]
- ldr r3, _021E8420 ; =UNK_021C48F8
+ ldr r3, _021E8420 ; =gMain + 0x40
ldr r0, [r5]
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -3104,7 +3104,7 @@ _021E840E:
_021E8414: .word 0x00000424
_021E8418: .word MOD75_021EC628
_021E841C: .word 0x0000FFFE
-_021E8420: .word UNK_021C48F8
+_021E8420: .word gMain + 0x40
thumb_func_end MOD75_021E83CC
thumb_func_start MOD75_021E8424
@@ -3598,7 +3598,7 @@ MOD75_021E87B8: ; 0x021E87B8
strh r1, [r0]
add r0, sp, #4
str r0, [sp]
- ldr r3, _021E8804 ; =UNK_021C48F8
+ ldr r3, _021E8804 ; =gMain + 0x40
ldr r0, [r4]
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
@@ -3620,7 +3620,7 @@ _021E87F4:
nop
_021E87FC: .word MOD75_021EC3F4
_021E8800: .word 0x0000FFFE
-_021E8804: .word UNK_021C48F8
+_021E8804: .word gMain + 0x40
thumb_func_end MOD75_021E87B8
thumb_func_start MOD75_021E8808
@@ -4493,7 +4493,7 @@ MOD75_021E8EB0: ; 0x021E8EB0
mov r0, #3
tst r0, r1
bne _021E8ED2
- ldr r0, _021E8F0C ; =UNK_021C48F8
+ ldr r0, _021E8F0C ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _021E8F00
@@ -4525,7 +4525,7 @@ _021E8F00:
.align 2, 0
_021E8F04: .word 0x00000426
_021E8F08: .word gMain
-_021E8F0C: .word UNK_021C48F8
+_021E8F0C: .word gMain + 0x40
thumb_func_end MOD75_021E8EB0
thumb_func_start MOD75_021E8F10
@@ -4712,7 +4712,7 @@ _021E9070:
mov r0, #3
tst r0, r1
bne _021E908E
- ldr r0, _021E91B4 ; =UNK_021C48F8
+ ldr r0, _021E91B4 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _021E9132
@@ -4851,7 +4851,7 @@ _021E91A4: .word 0x00000483
_021E91A8: .word 0x000003D9
_021E91AC: .word 0x00000426
_021E91B0: .word gMain
-_021E91B4: .word UNK_021C48F8
+_021E91B4: .word gMain + 0x40
thumb_func_end MOD75_021E8FD8
thumb_func_start MOD75_021E91B8
@@ -5128,7 +5128,7 @@ _021E93D2:
mov r0, #3
tst r0, r1
bne _021E93F0
- ldr r0, _021E9438 ; =UNK_021C48F8
+ ldr r0, _021E9438 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _021E9422
@@ -5164,7 +5164,7 @@ _021E9428: .word 0x00000483
_021E942C: .word 0x000003D9
_021E9430: .word 0x00000426
_021E9434: .word gMain
-_021E9438: .word UNK_021C48F8
+_021E9438: .word gMain + 0x40
thumb_func_end MOD75_021E9394
thumb_func_start MOD75_021E943C
@@ -5564,7 +5564,7 @@ MOD75_021E9750: ; 0x021E9750
mov r0, #3
tst r0, r1
bne _021E9772
- ldr r0, _021E97A0 ; =UNK_021C48F8
+ ldr r0, _021E97A0 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _021E9794
@@ -5589,7 +5589,7 @@ _021E9794:
.align 2, 0
_021E9798: .word 0x00000426
_021E979C: .word gMain
-_021E97A0: .word UNK_021C48F8
+_021E97A0: .word gMain + 0x40
_021E97A4: .word 0x00000479
thumb_func_end MOD75_021E9750
@@ -5796,7 +5796,7 @@ MOD75_021E9930: ; 0x021E9930
mov r0, #3
tst r0, r1
bne _021E9952
- ldr r0, _021E997C ; =UNK_021C48F8
+ ldr r0, _021E997C ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _021E9970
@@ -5819,7 +5819,7 @@ _021E9970:
.align 2, 0
_021E9974: .word 0x00000426
_021E9978: .word gMain
-_021E997C: .word UNK_021C48F8
+_021E997C: .word gMain + 0x40
thumb_func_end MOD75_021E9930
thumb_func_start MOD75_021E9980
@@ -6547,7 +6547,7 @@ MOD75_021E9F74: ; 0x021E9F74
mov r0, #3
tst r0, r1
bne _021E9F96
- ldr r0, _021E9FD4 ; =UNK_021C48F8
+ ldr r0, _021E9FD4 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _021E9FC8
@@ -6579,7 +6579,7 @@ _021E9FC8:
.align 2, 0
_021E9FCC: .word 0x00000426
_021E9FD0: .word gMain
-_021E9FD4: .word UNK_021C48F8
+_021E9FD4: .word gMain + 0x40
_021E9FD8: .word 0x00000479
thumb_func_end MOD75_021E9F74
@@ -6790,7 +6790,7 @@ MOD75_021EA148: ; 0x021EA148
add r0, r1, #2
str r2, [r5, r0]
add r0, r1, #0
- ldr r2, _021EA2C0 ; =UNK_021C48F8
+ ldr r2, _021EA2C0 ; =gMain + 0x40
add r0, #0xc
ldrh r3, [r2, #0x1c]
add r1, #0xe
@@ -6812,7 +6812,7 @@ _021EA18A:
mov r3, #0x50
ldr r1, _021EA2C4 ; =0x0000049E
str r3, [sp]
- ldr r4, _021EA2C0 ; =UNK_021C48F8
+ ldr r4, _021EA2C0 ; =gMain + 0x40
ldrh r0, [r5, r1]
add r1, r1, #2
ldrh r1, [r5, r1]
@@ -6937,7 +6937,7 @@ _021EA274:
ldr r0, _021EA2D4 ; =0x00000494
str r1, [r5, r0]
_021EA298:
- ldr r1, _021EA2C0 ; =UNK_021C48F8
+ ldr r1, _021EA2C0 ; =gMain + 0x40
ldr r0, _021EA2C4 ; =0x0000049E
ldrh r2, [r1, #0x1c]
strh r2, [r5, r0]
@@ -6959,7 +6959,7 @@ _021EA2B6:
pop {r3, r4, r5, r6, r7, pc}
nop
_021EA2BC: .word 0x00000492
-_021EA2C0: .word UNK_021C48F8
+_021EA2C0: .word gMain + 0x40
_021EA2C4: .word 0x0000049E
_021EA2C8: .word 0x0000049A
_021EA2CC: .word 0x000001F6
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
index c062f14a..02dc181f 100644
--- a/arm9/modules/76/asm/module_76.s
+++ b/arm9/modules/76/asm/module_76.s
@@ -55,7 +55,7 @@ MOD76_021D74E0: ; 0x021D74E0
bl MOD76_021D8CD4
ldr r0, _021D7564 ; =MOD76_021D76E8
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
@@ -177,7 +177,7 @@ MOD76_021D7638: ; 0x021D7638
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -214,7 +214,7 @@ MOD76_021D7638: ; 0x021D7638
bl MOD76_021D7BE0
ldr r0, _021D76B4 ; =MOD76_021D76E8
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
pop {r4, pc}
.align 2, 0
_021D76AC: .word 0xFFFFE0FF
@@ -238,7 +238,7 @@ MOD76_021D76B8: ; 0x021D76B8
bl FUN_0201C29C
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
pop {r4, pc}
.align 2, 0
thumb_func_end MOD76_021D76B8
diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s
index 7219a909..cdfde984 100644
--- a/arm9/modules/77/asm/module_77.s
+++ b/arm9/modules/77/asm/module_77.s
@@ -9,7 +9,7 @@ MOD77_021D74E0: ; 0x021D74E0
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
@@ -94,7 +94,7 @@ _021D7540:
mov r0, #0
add r1, #0x1c
str r0, [r5, r1]
- ldr r0, _021D7600 ; =gUnk021C4918
+ ldr r0, _021D7600 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
bl FUN_0201E7A0
@@ -117,7 +117,7 @@ _021D75F0: .word 0x0000C324
_021D75F4: .word 0x0000C010
_021D75F8: .word 0x0000C070
_021D75FC: .word 0x0000C2CC
-_021D7600: .word gUnk021C4918
+_021D7600: .word gMain + 0x60
thumb_func_end MOD77_021D74E0
thumb_func_start MOD77_021D7604
@@ -827,12 +827,12 @@ MOD77_021D7BAC: ; 0x021D7BAC
bl FreeToHeap
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r6, #0
bl OverlayManager_FreeData
add r0, r5, #0
bl FUN_020168D0
- ldr r0, _021D7C20 ; =gUnk021C4918
+ ldr r0, _021D7C20 ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
mov r0, #1
@@ -841,7 +841,7 @@ MOD77_021D7BAC: ; 0x021D7BAC
_021D7C14: .word 0x0000C2CC
_021D7C18: .word 0x0000C070
_021D7C1C: .word 0x0000C010
-_021D7C20: .word gUnk021C4918
+_021D7C20: .word gMain + 0x60
thumb_func_end MOD77_021D7BAC
thumb_func_start MOD77_021D7C24
@@ -1127,7 +1127,7 @@ MOD77_021D7E24: ; 0x021D7E24
ldr r0, _021D7F2C ; =0x0000C2F8
mov r1, #0
str r1, [r4, r0]
- ldr r1, _021D7F30 ; =UNK_021C48F8
+ ldr r1, _021D7F30 ; =gMain + 0x40
ldrh r2, [r1, #0x20]
cmp r2, #0
beq _021D7E86
@@ -1160,7 +1160,7 @@ _021D7E54:
str r2, [r4, r1]
sub r1, r0, #4
str r2, [r4, r1]
- ldr r2, _021D7F30 ; =UNK_021C48F8
+ ldr r2, _021D7F30 ; =gMain + 0x40
add r1, r0, #4
ldrh r3, [r2, #0x1c]
str r3, [r4, r1]
@@ -1172,7 +1172,7 @@ _021D7E54:
mov r1, #4
str r1, [r4, r0]
_021D7E86:
- ldr r0, _021D7F30 ; =UNK_021C48F8
+ ldr r0, _021D7F30 ; =gMain + 0x40
ldrh r0, [r0, #0x22]
cmp r0, #0
beq _021D7F02
@@ -1227,7 +1227,7 @@ _021D7EBA:
add r0, #0x14
str r2, [r4, r0]
add r0, r1, #0
- ldr r2, _021D7F30 ; =UNK_021C48F8
+ ldr r2, _021D7F30 ; =gMain + 0x40
add r0, #8
ldrh r3, [r2, #0x1c]
add r1, #0xc
@@ -1260,7 +1260,7 @@ _021D7F10:
pop {r4, pc}
nop
_021D7F2C: .word 0x0000C2F8
-_021D7F30: .word UNK_021C48F8
+_021D7F30: .word gMain + 0x40
_021D7F34: .word 0x0000C2FC
_021D7F38: .word 0x0000C310
thumb_func_end MOD77_021D7E24
@@ -1269,7 +1269,7 @@ _021D7F38: .word 0x0000C310
MOD77_021D7F3C: ; 0x021D7F3C
push {r3, r4, r5, r6, r7, lr}
mov lr, r0
- ldr r0, _021D7FA4 ; =UNK_021C48F8
+ ldr r0, _021D7FA4 ; =gMain + 0x40
mov ip, r1
ldrh r5, [r0, #0x1c]
mov r1, #0
@@ -1298,7 +1298,7 @@ _021D7F6C:
add r0, r3, #0
and r0, r1
str r0, [r6]
- ldr r0, _021D7FA4 ; =UNK_021C48F8
+ ldr r0, _021D7FA4 ; =gMain + 0x40
ldrh r3, [r0, #0x1e]
ldr r0, _021D7FA8 ; =0x0000FFFF
cmp r3, r0
@@ -1324,7 +1324,7 @@ _021D7F94:
str r1, [r0]
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
-_021D7FA4: .word UNK_021C48F8
+_021D7FA4: .word gMain + 0x40
_021D7FA8: .word 0x0000FFFF
thumb_func_end MOD77_021D7F3C
diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s
index 60412019..6a0d80b3 100644
--- a/arm9/modules/78/asm/module_78.s
+++ b/arm9/modules/78/asm/module_78.s
@@ -269,7 +269,7 @@ MOD78_021D7708: ; 0x021D7708
push {r3, lr}
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index d8d72189..b1e3f871 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -1373,7 +1373,7 @@ MOD80_0222DFD0: ; 0x0222DFD0
_0222DFE4:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -1687,7 +1687,7 @@ MOD80_0222E25C: ; 0x0222E25C
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x3e
bl FUN_020168D0
mov r0, #1
@@ -2347,7 +2347,7 @@ MOD80_0222E7C8: ; 0x0222E7C8
bl MOD80_0222E614
ldr r0, _0222E7EC ; =MOD80_0222E2E0
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
pop {r4, pc}
nop
_0222E7EC: .word MOD80_0222E2E0
diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s
index d21611f4..d972789e 100644
--- a/arm9/modules/81/asm/module_81.s
+++ b/arm9/modules/81/asm/module_81.s
@@ -151,7 +151,7 @@ _02237F22:
add r1, r1, #2
str r0, [r4, r1]
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -5496,7 +5496,7 @@ MOD81_0223A8C8: ; 0x0223A8C8
beq _0223A8F6
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0
bl MOD81_0223ABC0
add r0, r4, #0
@@ -7029,7 +7029,7 @@ MOD81_0223B4E8: ; 0x0223B4E8
bl MOD81_0223B9A0
ldr r0, _0223B520 ; =MOD81_0223BCA8
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
_0223B51C:
add r0, r4, #0
pop {r3, r4, r5, pc}
@@ -7044,7 +7044,7 @@ MOD81_0223B524: ; 0x0223B524
beq _0223B552
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0
bl MOD81_0223B7D0
add r0, r4, #0
diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s
index cc15c1dc..07328905 100644
--- a/arm9/modules/82/asm/module_82.s
+++ b/arm9/modules/82/asm/module_82.s
@@ -623,7 +623,7 @@ MOD82_0222DA34: ; 0x0222DA34
_0222DA48:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -885,7 +885,7 @@ MOD82_0222DC50: ; 0x0222DC50
bl OverlayManager_FreeData
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x44
bl FUN_020168D0
mov r0, #1
@@ -1314,7 +1314,7 @@ MOD82_0222DFD4: ; 0x0222DFD4
bl MOD82_0222DE80
ldr r0, _0222DFF8 ; =MOD82_0222DCC4
mov r1, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
pop {r4, pc}
nop
_0222DFF8: .word MOD82_0222DCC4
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index bb52eeb3..2ec14d72 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -1855,7 +1855,7 @@ _0222E3FE:
bl FreeToHeap
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD83_0222E3B8
@@ -2099,7 +2099,7 @@ _0222E616:
bl MOD83_0222DBD0
ldr r0, _0222E7A0 ; =MOD83_0222E464
ldr r1, [r4]
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r4, #0
bl MOD83_0222E0DC
ldr r1, [r4, #0x54]
@@ -16268,7 +16268,7 @@ _02235512:
str r0, [sp, #0x20]
ldr r0, [sp, #0x1c]
bl MOD83_TranslateAgbSpecies
- ldr r2, _0223563C ; =gUnk021C4918
+ ldr r2, _0223563C ; =gMain + 0x60
ldr r1, [sp, #0x20]
ldrb r2, [r2, #6]
bl MOD83_02235350
@@ -16365,7 +16365,7 @@ _02235602:
nop
_02235634: .word 0x0000E880
_02235638: .word 0x0000E884
-_0223563C: .word gUnk021C4918
+_0223563C: .word gMain + 0x60
_02235640: .word MOD83_022354AC
_02235644: .word 0x00012604
thumb_func_end MOD83_022354F0
@@ -17527,7 +17527,7 @@ _02235F48:
bl FUN_0201E66C
ldr r0, [r4, #0x20]
bl MOD83_02235E68
- ldr r0, _02235FB8 ; =gUnk021C4918
+ ldr r0, _02235FB8 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
bl FUN_0201E7A0
@@ -17567,7 +17567,7 @@ _02235F48:
pop {r3, r4, r5, pc}
.align 2, 0
_02235FB4: .word MOD83_0223A59C
-_02235FB8: .word gUnk021C4918
+_02235FB8: .word gMain + 0x60
thumb_func_end MOD83_02235F3C
thumb_func_start MOD83_02235FBC
@@ -17819,7 +17819,7 @@ _02236148:
ldr r0, _02236288 ; =0x00000414
str r7, [sp]
ldr r0, [r4, r0]
- ldr r3, _0223628C ; =gUnk021C4918
+ ldr r3, _0223628C ; =gMain + 0x60
str r0, [sp, #4]
ldrb r3, [r3, #6]
ldr r0, [sp, #0x14]
@@ -17906,7 +17906,7 @@ _02236148:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_02236288: .word 0x00000414
-_0223628C: .word gUnk021C4918
+_0223628C: .word gMain + 0x60
_02236290: .word MOD83_0223B280
_02236294: .word 0x000003D2
thumb_func_end MOD83_022360C8
@@ -17994,7 +17994,7 @@ MOD83_02236330: ; 0x02236330
add r6, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r7, #0x6a
mov r4, #0
add r5, r6, #0
@@ -18091,7 +18091,7 @@ _022363E2:
ldr r0, _02236448 ; =0x0000E88C
ldr r0, [r6, r0]
bl FUN_020145A8
- ldr r0, _0223644C ; =gUnk021C4918
+ ldr r0, _0223644C ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
bl FUN_0201E7A0
@@ -18113,7 +18113,7 @@ _0223643C: .word 0x00000478
_02236440: .word 0x00000488
_02236444: .word 0x00000498
_02236448: .word 0x0000E88C
-_0223644C: .word gUnk021C4918
+_0223644C: .word gMain + 0x60
thumb_func_end MOD83_02236330
thumb_func_start MOD83_02236450
@@ -18476,7 +18476,7 @@ _02236712:
mov r0, #1
pop {r3, r4, r5, pc}
_02236730:
- ldr r0, _0223675C ; =UNK_021C48F8
+ ldr r0, _0223675C ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _02236740
@@ -18497,7 +18497,7 @@ _02236750:
.align 2, 0
_02236754: .word 0x000005DC
_02236758: .word 0x00000474
-_0223675C: .word UNK_021C48F8
+_0223675C: .word gMain + 0x40
_02236760: .word gMain
thumb_func_end MOD83_022366D0
@@ -18668,7 +18668,7 @@ _022368BA:
bl MOD83_022357CC
ldr r0, _02236B4C ; =MOD83_0223650C
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x10
mov r1, #0
bl FUN_0201E6E4
@@ -18792,7 +18792,7 @@ _022369BC:
str r0, [r5]
b _02236D90
_022369CE:
- ldr r0, _02236B54 ; =UNK_021C48F8
+ ldr r0, _02236B54 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _022369DE
@@ -18895,7 +18895,7 @@ _02236A88:
bl MOD83_022354F0
ldr r0, _02236B4C ; =MOD83_0223650C
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0x10
mov r1, #1
bl FUN_0201E6E4
@@ -18972,7 +18972,7 @@ _02236B44: .word 0x000004AC
_02236B48: .word 0x0000E880
_02236B4C: .word MOD83_0223650C
_02236B50: .word 0x0000E88C
-_02236B54: .word UNK_021C48F8
+_02236B54: .word gMain + 0x40
_02236B58: .word gMain
_02236B5C: .word 0x00000498
_02236B60: .word 0x0000E898
@@ -19222,7 +19222,7 @@ _02236D36:
bl FUN_020166B8
b _02236D90
_02236D54:
- ldr r0, _02236DC8 ; =UNK_021C48F8
+ ldr r0, _02236DC8 ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
bne _02236D64
@@ -19270,7 +19270,7 @@ _02236DB8: .word 0x0000E890
_02236DBC: .word 0x0000E898
_02236DC0: .word 0x0000061B
_02236DC4: .word 0x0000042C
-_02236DC8: .word UNK_021C48F8
+_02236DC8: .word gMain + 0x40
_02236DCC: .word gMain
thumb_func_end MOD83_02236804
@@ -22458,7 +22458,7 @@ _022384AE:
ldr r1, _022385F0 ; =0x00000182
cmp r0, r1
bne _022384FE
- ldr r0, _022385F4 ; =gUnk021C4918
+ ldr r0, _022385F4 ; =gMain + 0x60
ldrb r0, [r0, #6]
cmp r0, #5
bhi _022384DE
@@ -22598,7 +22598,7 @@ _0223853E:
pop {r3, r4, r5, r6, r7, pc}
nop
_022385F0: .word 0x00000182
-_022385F4: .word gUnk021C4918
+_022385F4: .word gMain + 0x60
_022385F8: .word gGameLanguage
thumb_func_end MigrateBoxMon
@@ -23564,7 +23564,7 @@ _02238D1A:
_02238D22:
ldr r0, _02238D34 ; =MOD83_02238F00
mov r1, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add sp, #0x38
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -23789,7 +23789,7 @@ _02238EB0:
bl FUN_0201E08C
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_02238EE8: .word MOD83_0223BE30
diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s
index 0a2c3e1b..405c33ef 100644
--- a/arm9/modules/84/asm/module_84_thumb1.s
+++ b/arm9/modules/84/asm/module_84_thumb1.s
@@ -36,7 +36,7 @@ _021D74FC:
_021D7516:
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -142,7 +142,7 @@ _021D7516:
str r0, [r4, r1]
ldr r0, _021D769C ; =MOD84_021D7950
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
_021D7618:
ldr r0, [r5]
add r0, r0, #1
@@ -234,7 +234,7 @@ _021D76CA:
bl OS_RestoreInterrupts
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s
index e7e4e431..d9175392 100644
--- a/arm9/modules/85/asm/module_85.s
+++ b/arm9/modules/85/asm/module_85.s
@@ -10,7 +10,7 @@ MOD85_021D74E0: ; 0x021D74E0
add r5, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_02015F1C
bl FUN_0201E6D8
bl FUN_0201E740
@@ -172,7 +172,7 @@ MOD85_021D7644: ; 0x021D7644
mov r0, #0
ldr r4, [r6, #4]
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r6, #0
add r1, r4, #0
bl MOD85_021D769C
@@ -346,7 +346,7 @@ MOD85_021D76FC: ; 0x021D76FC
bl G2x_SetBlendAlpha_
ldr r0, _021D77D8 ; =MOD85_021D80DC
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021D77CC: .word 0x0000043C
diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s
index 28089fba..aae7de3c 100644
--- a/arm9/modules/86/asm/module_86.s
+++ b/arm9/modules/86/asm/module_86.s
@@ -39,7 +39,7 @@ MOD86_021D74E0: ; 0x021D74E0
bl FUN_0200E3A0
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
@@ -64,7 +64,7 @@ MOD86_021D74E0: ; 0x021D74E0
bl MOD86_021D78D4
ldr r0, _021D7588 ; =MOD86_021D76E0
add r1, r4, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
bl FUN_0201E788
mov r0, #1
pop {r3, r4, r5, pc}
@@ -184,7 +184,7 @@ _021D765C:
and r0, r1
cmp r0, #2
beq _021D7678
- ldr r0, _021D76AC ; =UNK_021C48F8
+ ldr r0, _021D76AC ; =gMain + 0x40
ldrh r0, [r0, #0x20]
cmp r0, #0
beq _021D76A0
@@ -214,7 +214,7 @@ _021D76A0:
pop {r3, r4, r5, r6, pc}
nop
_021D76A8: .word gMain
-_021D76AC: .word UNK_021C48F8
+_021D76AC: .word gMain + 0x40
thumb_func_end MOD86_021D758C
thumb_func_start MOD86_021D76B0
@@ -229,7 +229,7 @@ MOD86_021D76B0: ; 0x021D76B0
bl MOD86_021D7858
mov r0, #0
add r1, r0, #0
- bl FUN_02015F10
+ bl Main_SetVBlankIntrCB
add r0, r5, #0
bl OverlayManager_FreeData
add r0, r4, #0
diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c
new file mode 100644
index 00000000..8fdeb44b
--- /dev/null
+++ b/arm9/src/game_init.c
@@ -0,0 +1,532 @@
+#include "global.h"
+#include "gx.h"
+#include "math.h"
+#include "main.h"
+#include "FS_rom.h"
+#include "PAD_pad.h"
+#include "heap.h"
+#include "MWC_string.h"
+#include "tp.h"
+#include "unk_0201B4E8.h"
+#include "game_init.h"
+#include "ioreg_GX.h"
+
+#pragma thumb on
+
+extern void FUN_020166C8(const u32 (*)[2], int, int, int);
+extern void FUN_02022450(void);
+
+typedef volatile struct
+{
+ u8 sys_and_irq_stack[0x3F80];
+ u8 svc_stack[0x40];
+ u8 reserved[0x38];
+ u32 intr_check;
+ void * intr_vector;
+}
+OS_DTCM;
+
+#define DTCM (*(OS_DTCM *)HW_DTCM)
+
+static struct {
+ void * contents;
+ u32 name_hash;
+} UNK_021C4928[128];
+
+struct Main gMain;
+
+void Main_HBlankIntr(BOOL);
+void FUN_0201B5CC(void *);
+
+void FUN_02015EA0(void)
+{
+ DTCM.intr_check |= 1;
+ MI_WaitDma(3);
+ FUN_0201B5CC(gMain.unk1C);
+ gMain.unk30++;
+}
+
+void FUN_02015ED4(void)
+{
+ DTCM.intr_check |= 1;
+ MI_WaitDma(3);
+}
+
+void FUN_02015EF4(void)
+{
+ OS_DisableIrqMask(1);
+ OS_SetIrqFunction(1, FUN_02015ED4);
+ OS_EnableIrqMask(1);
+}
+
+void Main_SetVBlankIntrCB(void (*a0)(void *), void * a1)
+{
+ gMain.vBlankIntr = a0;
+ gMain.vBlankIntrArg = a1;
+}
+
+void FUN_02015F1C(void)
+{
+ Main_HBlankIntr(FALSE);
+ gMain.hBlankIntr = NULL;
+ gMain.hBlankIntrArg = NULL;
+}
+
+BOOL FUN_02015F34(void (*a0)(void *), void * a1)
+{
+ if (a0 == 0)
+ {
+ Main_HBlankIntr(FALSE);
+ gMain.hBlankIntr = NULL;
+ gMain.hBlankIntrArg = NULL;
+ return TRUE;
+ }
+ else if (gMain.hBlankIntr == NULL)
+ {
+ gMain.hBlankIntrArg = a1;
+ gMain.hBlankIntr = a0;
+ Main_HBlankIntr(TRUE);
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+void FUN_02015F6C(void)
+{
+ if (gMain.hBlankIntr != NULL)
+ gMain.hBlankIntr(gMain.hBlankIntrArg);
+}
+
+void Main_HBlankIntr(BOOL a0)
+{
+ (void)OS_DisableIrq();
+ if (!a0)
+ {
+ (void)OS_GetIrqMask();
+ OS_DisableIrqMask(2);
+ GX_HBlankIntr(FALSE);
+ }
+ else
+ {
+ (void)OS_GetIrqMask();
+ OS_SetIrqFunction(2, FUN_02015F6C);
+ OS_EnableIrqMask(2);
+ GX_HBlankIntr(TRUE);
+ }
+ (void)OS_EnableIrq();
+}
+
+const u32 UNK_020EDB10[][2] = {
+ { 0x0000D000, 0x00000000 },
+ { 0x00021000, 0x00000000 },
+ { 0x00001000, 0x00000000 },
+ { 0x0010D800, 0x00000000 }
+};
+
+void FUN_02015FC8(void)
+{
+ u32 data[8];
+ u8 digest[16];
+ OS_GetLowEntropyData(data);
+ MATH_CalcMD5(digest, data, 32);
+ u32 csum = 0, i;
+ for (i = 0; i < sizeof(digest); i++)
+ {
+ csum += digest[i];
+ }
+ csum = (csum << 24) >> 24;
+ while (csum & 3)
+ {
+ csum++;
+ }
+ FUN_020166C8(UNK_020EDB10, 4, 92, (int)csum);
+}
+
+void InitSystemForTheGame(void)
+{
+ OS_Init();
+ FX_Init();
+ reg_GX_POWCNT = (REGType16v)((reg_GX_POWCNT & ~(REG_GX_POWCNT_GE_MASK | REG_GX_POWCNT_RE_MASK | REG_GX_POWCNT_E2DG_MASK | REG_GX_POWCNT_E2DGB_MASK)) | (REG_GX_POWCNT_GE_MASK | REG_GX_POWCNT_RE_MASK | REG_GX_POWCNT_E2DG_MASK | REG_GX_POWCNT_E2DGB_MASK));
+ GX_Init();
+ OS_InitTick();
+ FUN_02015FC8();
+ gMain.unk18 = FUN_0201B580(0xa0, OS_AllocFromArenaLo(OS_ARENA_MAIN, FUN_0201B578(0xa0), 4));
+ gMain.unk1C = FUN_0201B580(0x10, OS_AllocFromArenaLo(OS_ARENA_MAIN, FUN_0201B578(0x10), 4));
+ gMain.unk20 = FUN_0201B580(0x20, OS_AllocFromArenaLo(OS_ARENA_MAIN, FUN_0201B578(0x20), 4));
+ gMain.unk24 = FUN_0201B580(0x04, OS_AllocFromArenaLo(OS_ARENA_MAIN, FUN_0201B578(0x04), 4));
+ GX_DispOff();
+ reg_GXS_DB_DISPCNT &= ~0x10000;
+ reg_GX_POWCNT |= REG_GX_POWCNT_DSEL_MASK;
+ OS_SetIrqFunction(1, FUN_02015EA0);
+ OS_EnableIrqMask(1);
+ OS_EnableIrqMask(0x40000);
+ (void)OS_EnableIrq();
+ GX_VBlankIntr(TRUE);
+ FS_Init(1);
+ FUN_02022450();
+ u32 size = FS_TryLoadTable(NULL, 0);
+ void * table = OS_AllocFromArenaLo(OS_ARENA_MAIN, size, 4);
+ GF_ASSERT(table != NULL);
+ FS_TryLoadTable(table, size);
+ gMain.vBlankIntr = NULL;
+ gMain.hBlankIntr = NULL;
+ gMain.unk10 = 0;
+ gMain.unk14 = 0;
+ gMain.unk2C = 0;
+ gMain.unk65 = 0;
+}
+
+void InitGraphicMemory(void)
+{
+ GX_SetBankForLCDC(0x1FF);
+ MIi_CpuClearFast(0, (void *)HW_LCDC_VRAM, HW_LCDC_VRAM_SIZE);
+ GX_DisableBankForLCDC();
+ MIi_CpuClearFast(0xC0, (void *)HW_OAM, HW_OAM_SIZE);
+ MIi_CpuClearFast(0xC0, (void *)HW_DB_OAM, HW_DB_OAM_SIZE);
+ MIi_CpuClearFast(0, (void *)HW_PLTT, HW_PLTT_SIZE);
+ MIi_CpuClearFast(0, (void *)HW_DB_PLTT, HW_DB_PLTT_SIZE);
+}
+
+void * FUN_020161A4(u32 heap_id, const char * path)
+{
+ void * ret;
+
+ FSFile file;
+ FS_InitFile(&file);
+ if (FS_OpenFile(&file, path))
+ {
+ u32 size = file.prop.file.bottom - file.prop.file.top;
+ ret = AllocFromHeap(heap_id, size);
+ if (ret != NULL)
+ {
+ if (size != FS_ReadFile(&file, ret, (s32)size))
+ {
+ FUN_02016A8C(heap_id, ret);
+ ret = NULL;
+ }
+ }
+ FS_CloseFile(&file);
+ }
+ else
+ ret = NULL;
+ return ret;
+}
+
+void FUN_020161F8(const char * path, void ** ptr)
+{
+ FSFile file;
+ FS_InitFile(&file);
+ if (FS_OpenFile(&file, path))
+ {
+ u32 size = file.prop.file.bottom - file.prop.file.top;
+ if (*ptr != NULL)
+ FS_ReadFile(&file, *ptr, (s32)size);
+ FS_CloseFile(&file);
+ }
+}
+
+u32 FUN_02016230(const s8 * str)
+{
+ u16 len = (u16)strlen(str);
+ u16 sp4;
+ if ((len % 4) != 0)
+ sp4 = (u16)((len / 4) + 1);
+ else
+ sp4 = (u16)(len / 4);
+ u32 r7 = 0;
+ s32 i, j;
+ for (i = 0; i < sp4; i++)
+ {
+ u32 r1 = 0;
+ for (j = 0; j < 4; j++)
+ {
+ int r5 = str[4 * i + j];
+ if (r5 == 0)
+ break;
+ r1 |= r5 << (8 * j);
+ }
+ r7 ^= r1;
+ }
+ return r7;
+}
+
+int FUN_020162A0(u32 a0)
+{
+ for (int i = 0; i < 128; i++)
+ {
+ if (UNK_021C4928[i].name_hash == a0 && UNK_021C4928[i].contents != NULL)
+ return i;
+ }
+ return -1;
+}
+
+int FUN_020162C8(void * a0, u32 a1)
+{
+ for (int i = 0; i < 128; i++)
+ {
+ if (UNK_021C4928[i].contents == NULL)
+ {
+ UNK_021C4928[i].contents = a0;
+ UNK_021C4928[i].name_hash = a1;
+ return i;
+ }
+ }
+ return -1;
+}
+
+void FUN_020162FC(void)
+{
+ for (int i = 127; i > -1; i--)
+ {
+ if (UNK_021C4928[i].contents != NULL)
+ {
+ FreeToHeap(UNK_021C4928[i].contents);
+ UNK_021C4928[i].contents = NULL;
+ UNK_021C4928[i].name_hash = 0;
+ }
+ }
+}
+
+void * FUN_02016324(const s8 * str, u32 heap_id)
+{
+ s8 sp0[32];
+ FSFile file;
+ void * ret;
+ int r5 = 0;
+
+ if (str[0] == '!')
+ {
+ strcpy(sp0, str + 1);
+ r5 = 1;
+ }
+ else
+ {
+ strcpy(sp0, str);
+ }
+ u32 r7 = FUN_02016230(sp0);
+ s32 r0 = FUN_020162A0(r7);
+ if (r0 >= 0 && r5 == 0)
+ {
+ ret = UNK_021C4928[r0].contents;
+ }
+ else
+ {
+ FS_InitFile(&file);
+ if (FS_OpenFile(&file, (const char *)sp0))
+ {
+ u32 size = file.prop.file.bottom - file.prop.file.top;
+ ret = AllocFromHeap(heap_id, size);
+ if (ret != NULL)
+ {
+ if (size != FS_ReadFile(&file, ret, (s32)size))
+ {
+ FreeToHeap(ret);
+ ret = NULL;
+ }
+ }
+ FS_CloseFile(&file);
+ if (r5 == 0)
+ FUN_020162C8(ret, r7);
+ }
+ else
+ ret = NULL;
+ }
+ return ret;
+}
+
+void FUN_020163BC(void)
+{
+ TPCalibrateParam tp;
+ gMain.unk34 = 0;
+ gMain.unk38 = 0;
+ gMain.unk3C = 0;
+ gMain.unk40 = 0;
+ gMain.unk44 = 0;
+ gMain.unk48 = 0;
+ gMain.unk4C = 0;
+ gMain.unk50 = 0;
+ gMain.unk54 = 8;
+ gMain.unk58 = 15;
+ gMain.unk5C = 0;
+ gMain.unk5E = 0;
+ gMain.unk60 = 0;
+ gMain.unk62 = 0;
+ gMain.unk64 = 0;
+ TP_Init();
+ if (TP_GetUserInfo(&tp) == TRUE)
+ TP_SetCalibrateParam(&tp);
+ else
+ {
+ tp.x0 = 686;
+ tp.y0 = 1420;
+ tp.xDotSize = 3621;
+ tp.yDotSize = 4616;
+ TP_SetCalibrateParam(&tp);
+ }
+}
+
+void FUN_02016438(u8 a0)
+{
+ gMain.unk66 = a0;
+}
+
+void FUN_02016444(u8 a0)
+{
+ gMain.unk67 |= a0;
+}
+
+void FUN_02016454(u8 a0)
+{
+ gMain.unk67 &= ~a0;
+}
+
+void FUN_02016464(void)
+{
+ TPData raw, calib;
+ if (PAD_DetectFold())
+ {
+ gMain.unk48 = 0;
+ gMain.unk44 = 0;
+ gMain.unk4C = 0;
+ gMain.unk60 = 0;
+ gMain.unk62 = 0;
+ return;
+ }
+ u32 r0 = PAD_Read();
+ gMain.unk40 = gMain.unk3C = (r0 ^ gMain.unk38) & r0;
+ if (r0 != 0 && gMain.unk38 == r0)
+ {
+ if (--gMain.unk50 == 0)
+ {
+ gMain.unk40 = r0;
+ gMain.unk50 = gMain.unk54;
+ }
+ }
+ else
+ {
+ gMain.unk50 = gMain.unk58;
+ }
+ gMain.unk38 = r0;
+ gMain.unk48 = gMain.unk3C;
+ gMain.unk44 = r0;
+ gMain.unk4C = gMain.unk40;
+ FUN_02016568();
+ if (gMain.unk64 == 0)
+ {
+ while (TP_RequestRawSampling(&raw))
+ ;
+ }
+ else
+ TP_GetLatestRawPointInAuto(&raw);
+ TP_GetCalibratedPoint(&calib, &raw);
+ if (calib.validity == 0)
+ {
+ gMain.unk5C = calib.x;
+ gMain.unk5E = calib.y;
+ }
+ else if (gMain.unk62)
+ {
+ switch (calib.validity)
+ {
+ case 1:
+ gMain.unk5E = calib.y;
+ break;
+ case 2:
+ gMain.unk5C = calib.x;
+ break;
+ case 3:
+ break;
+ }
+ }
+ else
+ calib.touch = 0;
+ gMain.unk60 = (u16)((gMain.unk62 ^ calib.touch) & calib.touch);
+ gMain.unk62 = calib.touch;
+}
+
+void FUN_02016568(void)
+{
+ switch (gMain.unk34)
+ {
+ case 0: // Normal
+ break;
+ case 1: // Start = X
+ if (gMain.unk48 & PAD_BUTTON_START)
+ gMain.unk48 |= PAD_BUTTON_X;
+ if (gMain.unk44 & PAD_BUTTON_START)
+ gMain.unk44 |= PAD_BUTTON_X;
+ if (gMain.unk4C & PAD_BUTTON_START)
+ gMain.unk4C |= PAD_BUTTON_X;
+ break;
+ case 2: // Swap X and Y; unused in the retail game
+ {
+ u32 r1 = 0;
+ if (gMain.unk48 & PAD_BUTTON_X)
+ {
+ r1 |= PAD_BUTTON_Y;
+ }
+ if (gMain.unk48 & PAD_BUTTON_Y)
+ {
+ r1 |= PAD_BUTTON_X;
+ }
+ gMain.unk48 &= 0xF3FF;
+ gMain.unk48 |= r1;
+ }
+ {
+ u32 r1 = 0;
+ if (gMain.unk44 & PAD_BUTTON_X)
+ {
+ r1 |= PAD_BUTTON_Y;
+ }
+ if (gMain.unk44 & PAD_BUTTON_Y)
+ {
+ r1 |= PAD_BUTTON_X;
+ }
+ gMain.unk44 &= 0xF3FF;
+ gMain.unk44 |= r1;
+ }
+ {
+ u32 r1 = 0;
+ if (gMain.unk4C & PAD_BUTTON_X)
+ {
+ r1 |= PAD_BUTTON_Y;
+ }
+ if (gMain.unk4C & PAD_BUTTON_Y)
+ {
+ r1 |= PAD_BUTTON_X;
+ }
+ gMain.unk4C &= 0xF3FF;
+ gMain.unk4C |= r1;
+ }
+ break;
+ case 3: // L = A
+ if (gMain.unk48 & PAD_BUTTON_L)
+ gMain.unk48 |= PAD_BUTTON_A;
+ if (gMain.unk44 & PAD_BUTTON_L)
+ gMain.unk44 |= PAD_BUTTON_A;
+ if (gMain.unk4C & PAD_BUTTON_L)
+ gMain.unk4C |= PAD_BUTTON_A;
+ gMain.unk48 &= 0xFCFF;
+ gMain.unk44 &= 0xFCFF;
+ gMain.unk4C &= 0xFCFF;
+ }
+}
+
+void FUN_0201669C(int x, int y)
+{
+ gMain.unk54 = x;
+ gMain.unk58 = y;
+}
+
+void FUN_020166A8(u8 a0)
+{
+ gMain.unk68 |= a0;
+}
+
+void FUN_020166B8(u8 a0)
+{
+ gMain.unk68 &= ~a0;
+}
diff --git a/arm9/src/main.c b/arm9/src/main.c
index 06673b65..e1c8fb38 100644
--- a/arm9/src/main.c
+++ b/arm9/src/main.c
@@ -5,6 +5,7 @@
#include "CTRDG_common.h"
#include "PAD_pad.h"
#include "main.h"
+#include "game_init.h"
#include "poke_overlay.h"
#include "player_data.h"
#include "sound.h"
@@ -22,12 +23,9 @@ extern void OverlayManager_delete(int);
extern BOOL FUN_02033678(void);
extern u32 FUN_020335B8(void);
extern BOOL FUN_0202FB80(void);
-extern void FUN_02016464(void);
-extern void FUN_02016438(s32);
extern void InitSystemForTheGame(void);
extern void InitGraphicMemory(void);
-extern void FUN_020163BC(void);
extern void FUN_02022294(void);
extern void FUN_0201259C(void);
extern void FUN_02002C14(void);
@@ -41,7 +39,7 @@ extern int FUN_020227FC(struct SaveBlock2 *);
extern void FUN_02089D90(int);
extern void FUN_0200A2AC(void);
extern void FUN_02015E30(void);
-extern void FUN_0201B5CC(int);
+extern void FUN_0201B5CC(void *);
extern void FUN_020125D4(void);
extern void FUN_02015E60(void);
extern void FUN_020222C4(void);
@@ -112,7 +110,7 @@ THUMB_FUNC void NitroMain(void)
FUN_02000EE8();
HandleDSLidAction();
FUN_02016464();
- if ((gMain.unk38 & SOFT_RESET_KEY) == SOFT_RESET_KEY && !gUnk021C4918.unk8) // soft reset?
+ if ((gMain.unk38 & SOFT_RESET_KEY) == SOFT_RESET_KEY && !gMain.unk68) // soft reset?
{
DoSoftReset(0); // soft reset?
}
@@ -136,8 +134,8 @@ THUMB_FUNC void NitroMain(void)
gMain.unk30 = 0;
FUN_0200A318();
FUN_0200E2D8();
- if (gMain.unk0)
- gMain.unk0(gMain.unk4);
+ if (gMain.vBlankIntr)
+ gMain.vBlankIntr(gMain.vBlankIntrArg);
DoSoundUpdateFrame();
FUN_0201B5CC(gMain.unk20);
}
@@ -187,8 +185,8 @@ THUMB_FUNC void FUN_02000E9C(void)
OS_WaitIrq(TRUE, OS_IE_V_BLANK);
gMain.unk2C++;
gMain.unk30 = 0;
- if (gMain.unk0 != NULL)
- gMain.unk0(gMain.unk4);
+ if (gMain.vBlankIntr != NULL)
+ gMain.vBlankIntr(gMain.vBlankIntrArg);
}
THUMB_FUNC void FUN_02000EC8(u32 parameter)
@@ -289,7 +287,7 @@ THUMB_FUNC void HandleDSLidAction(void)
PMBackLightSwitch top, bottom;
if (PAD_DetectFold())
{
- if (!gUnk021C4918.unk7)
+ if (!gMain.unk67)
{
FUN_0201CE04();
if (CTRDG_IsPulledOut() == TRUE)
@@ -301,7 +299,7 @@ THUMB_FUNC void HandleDSLidAction(void)
while (1)
{
PMWakeUpTrigger trigger = PM_TRIGGER_COVER_OPEN | PM_TRIGGER_CARD;
- if (gUnk021C4918.unk6 && !r1)
+ if (gMain.unk66 && !r1)
trigger |= PM_TRIGGER_CARTRIDGE;
PM_GoSleepMode(trigger, PM_PAD_LOGIC_OR, 0);
if (CARD_IsPulledOut())
diff --git a/arm9/src/poke_overlay.c b/arm9/src/poke_overlay.c
index 237cdc26..4dd98670 100644
--- a/arm9/src/poke_overlay.c
+++ b/arm9/src/poke_overlay.c
@@ -40,7 +40,7 @@ THUMB_FUNC s32 GetOverlayLoadDestination(FSOverlayID id)
end = (u8 *)HW_ITCM_END;
if (info.header.ram_address <= end && info.header.ram_address >= start)
return OVERLAY_LOAD_ITCM;
- start = (u8 *)SDK_AUTOLOAD_DTCM_START;
+ start = (u8 *)HW_DTCM;
end = start + HW_DTCM_SIZE;
if (info.header.ram_address <= end && info.header.ram_address >= start)
return OVERLAY_LOAD_DTCM;
diff --git a/arm9/src/unk_0200CA44.c b/arm9/src/unk_0200CA44.c
index 86dac59d..fc4656b2 100644
--- a/arm9/src/unk_0200CA44.c
+++ b/arm9/src/unk_0200CA44.c
@@ -2,7 +2,7 @@
#include "main.h"
#include "unk_0200CA44.h"
-extern void FUN_0201B60C(s32, void (*)(void *, void *), void *, void *);
+extern void FUN_0201B60C(void *, void (*)(void *, void *), void *, void *);
extern void FUN_0201B6A0(s32);
THUMB_FUNC void FUN_0200CA44(void (*r0)(void *, void *), void * r1, void * r2)
diff --git a/include/MWC_string.h b/include/MWC_string.h
index 79639239..8e30b47e 100644
--- a/include/MWC_string.h
+++ b/include/MWC_string.h
@@ -5,5 +5,7 @@
void * memset(void *, int, u32);
void * memcpy(void *, const void *, u32);
+u32 strlen(const s8 *);
+void strcpy(s8 * dest, const s8 * src);
#endif //GUARD_MWC_STRING_H
diff --git a/include/game_init.h b/include/game_init.h
new file mode 100644
index 00000000..7a6e34fb
--- /dev/null
+++ b/include/game_init.h
@@ -0,0 +1,34 @@
+#ifndef POKEDIAMOND_GAME_INIT_H
+#define POKEDIAMOND_GAME_INIT_H
+
+#include "main.h"
+
+void FUN_02015EA0(void);
+void FUN_02015ED4(void);
+void FUN_02015EF4(void);
+void Main_SetVBlankIntrCB(void (*a0)(void *), void * a1);
+void FUN_02015F1C(void);
+BOOL FUN_02015F34(void (*a0)(void *), void * a1);
+void FUN_02015F6C(void);
+void Main_HBlankIntr(BOOL a0);
+void FUN_02015FC8(void);
+void InitSystemForTheGame(void);
+void InitGraphicMemory(void);
+void * FUN_020161A4(u32 heap_id, const char * path);
+void FUN_020161F8(const char * path, void ** ptr);
+u32 FUN_02016230(const s8 * str);
+int FUN_020162A0(u32 a0);
+int FUN_020162C8(void * a0, u32 a1);
+void FUN_020162FC(void);
+void * FUN_02016324(const s8 * str, u32 heap_id);
+void FUN_020163BC(void);
+void FUN_02016438(u8 a0);
+void FUN_02016444(u8 a0);
+void FUN_02016454(u8 a0);
+void FUN_02016464(void);
+void FUN_02016568(void);
+void FUN_0201669C(int x, int y);
+void FUN_020166A8(u8 a0);
+void FUN_020166B8(u8 a0);
+
+#endif //POKEDIAMOND_GAME_INIT_H
diff --git a/include/main.h b/include/main.h
index fa31953c..499861a8 100644
--- a/include/main.h
+++ b/include/main.h
@@ -54,29 +54,6 @@ struct Unk21C4828
u32 unk8;
};
-struct Unk21C48B8
-{
- void (*unk0)(s32);
- s32 unk4;
- s32 unk8;
- s32 unkC;
- s32 unk10;
- s32 unk14;
- s32 unk18;
- s32 unk1C;
- s32 unk20;
- s32 unk24;
- s32 unk28;
- u32 unk2C;
- s32 unk30;
- s32 unk34;
- s32 unk38;
- u8 filler3C[0xC];
- s32 unk48;
- u8 filler4C[0x20];
- s32 unk6C;
-};
-
struct UnkStruct_021C4918 {
s32 unk0;
u8 unk4;
@@ -87,14 +64,52 @@ struct UnkStruct_021C4918 {
u8 padding[3];
};
-extern struct UnkStruct_021C4918 gUnk021C4918;
+struct Main
+{
+ void (*vBlankIntr)(void *);
+ void * vBlankIntrArg;
+ void (*hBlankIntr)(void *);
+ void * hBlankIntrArg;
+ s32 unk10;
+ s32 unk14;
+ void * unk18;
+ void * unk1C;
+ void * unk20;
+ void * unk24;
+ s32 unk28;
+ u32 unk2C;
+ s32 unk30;
+ u32 unk34;
+ u32 unk38;
+ u32 unk3C;
+ u32 unk40;
+ u32 unk44;
+ u32 unk48;
+ u32 unk4C;
+ s32 unk50;
+ s32 unk54;
+ s32 unk58;
+ u16 unk5C;
+ u16 unk5E;
+ u16 unk60;
+ u16 unk62;
+ u8 unk64;
+ u8 unk65;
+ u8 unk66;
+ u8 unk67;
+ u8 unk68;
+ u8 padding_69[3];
+ s32 unk6C;
+};
+
+//extern struct UnkStruct_021C4918 gMain + 0x60;
extern struct Unk2106FA0 gBacklightTop;
extern struct Unk2106FA0 gBacklightTop_2; // same as the first one, it's referenced twice in the constant pool...
void NitroMain(void);
-extern struct Unk21C48B8 gMain;
+extern struct Main gMain;
void FUN_02000DF4(void);
void Main_RunOverlayManager(void);
diff --git a/include/unk_0201B4E8.h b/include/unk_0201B4E8.h
new file mode 100644
index 00000000..d29b198c
--- /dev/null
+++ b/include/unk_0201B4E8.h
@@ -0,0 +1,7 @@
+#ifndef POKEDIAMOND_UNK_0201B4E8_H
+#define POKEDIAMOND_UNK_0201B4E8_H
+
+void * FUN_0201B580(u32, void *);
+u32 FUN_0201B578(u32);
+
+#endif //POKEDIAMOND_UNK_0201B4E8_H