summaryrefslogtreecommitdiff
path: root/arm9
diff options
context:
space:
mode:
Diffstat (limited to 'arm9')
-rw-r--r--arm9/arm9.lsf19
-rw-r--r--arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s11
-rw-r--r--arm9/asm/scrcmd_11.s239
-rw-r--r--arm9/asm/scrcmd_13.s220
-rw-r--r--arm9/asm/scrcmd_14.s267
-rw-r--r--arm9/asm/scrcmd_15.s198
-rw-r--r--arm9/asm/scrcmd_16.s408
-rw-r--r--arm9/asm/scrcmd_18.s2
-rw-r--r--arm9/asm/scrcmd_19.s175
-rw-r--r--arm9/asm/scrcmd_20.s56
-rw-r--r--arm9/asm/scrcmd_22.s220
-rw-r--r--arm9/asm/scrcmd_23.s483
-rw-r--r--arm9/asm/scrcmd_25.s30
-rw-r--r--arm9/asm/scrcmd_3.s2
-rw-r--r--arm9/asm/scrcmd_4.s1313
-rw-r--r--arm9/asm/scrcmd_asm.s (renamed from arm9/asm/scrcmd.s)2849
-rw-r--r--arm9/asm/unk_0200CABC.s2
-rw-r--r--arm9/asm/unk_02015E30.s72
-rw-r--r--arm9/asm/unk_020166C8.s665
-rw-r--r--arm9/asm/unk_02016B94.s40
-rw-r--r--arm9/asm/unk_0201B1A8.s2
-rw-r--r--arm9/asm/unk_0201E66C.s197
-rw-r--r--arm9/asm/unk_02020AFC.s165
-rw-r--r--arm9/asm/unk_02022318.s2
-rw-r--r--arm9/asm/unk_02024E64.s118
-rw-r--r--arm9/asm/unk_02025484.s41
-rw-r--r--arm9/asm/unk_02028980.s4
-rw-r--r--arm9/asm/unk_0202F150.s4516
-rw-r--r--arm9/asm/unk_02033F50.s10
-rw-r--r--arm9/asm/unk_02034188.s10
-rw-r--r--arm9/asm/unk_020343A8.s2
-rw-r--r--arm9/asm/unk_02034A28.s8
-rw-r--r--arm9/asm/unk_02034FE4.s2
-rw-r--r--arm9/asm/unk_02035068.s10
-rw-r--r--arm9/asm/unk_020377F0.s10
-rw-r--r--arm9/asm/unk_02038C78.s426
-rw-r--r--arm9/asm/unk_020476CC.s4
-rw-r--r--arm9/asm/unk_02048120.s2
-rw-r--r--arm9/asm/unk_020484A8.s2
-rw-r--r--arm9/asm/unk_02048904.s4
-rw-r--r--arm9/asm/unk_0204AB0C.s8
-rw-r--r--arm9/asm/unk_0204AEA8.s67
-rw-r--r--arm9/asm/unk_02050E48.s2
-rw-r--r--arm9/asm/unk_02053750.s12
-rw-r--r--arm9/asm/unk_0205CE48.s10
-rw-r--r--arm9/asm/unk_0205F7A0.s2
-rw-r--r--arm9/asm/unk_0205FA2C.s930
-rw-r--r--arm9/asm/unk_02060CCC.s10
-rw-r--r--arm9/asm/unk_0206367C.s4
-rw-r--r--arm9/asm/unk_02063948.s4
-rw-r--r--arm9/asm/unk_0206C700.s14
-rw-r--r--arm9/asm/unk_0206DE24.s6
-rw-r--r--arm9/asm/unk_0206F3FC.s12
-rw-r--r--arm9/asm/unk_02073710.s4
-rw-r--r--arm9/asm/unk_0207550C.s2
-rw-r--r--arm9/asm/unk_020772F0.s30
-rw-r--r--arm9/asm/unk_02079C70.s12
-rw-r--r--arm9/asm/unk_0207C328.s4
-rw-r--r--arm9/asm/unk_0207EF6C.s2
-rw-r--r--arm9/asm/unk_020859C0.s16
-rw-r--r--arm9/asm/unk_02086084.s10
-rw-r--r--arm9/asm/unk_02086414.s16
-rw-r--r--arm9/asm/unk_02086FA8.s8
-rw-r--r--arm9/asm/unk_02089498.s8
-rw-r--r--arm9/asm/unk_02089960.s8
-rw-r--r--arm9/asm/unk_02089D90.s10
-rw-r--r--arm9/asm/unk_02089F24.s20
-rw-r--r--arm9/asm/unk_0208A998.s294
-rw-r--r--arm9/global.inc502
-rw-r--r--arm9/modules/05/asm/mod05_021D74E0.s22
-rw-r--r--arm9/modules/05/asm/mod05_021D80E8.s14
-rw-r--r--arm9/modules/05/asm/mod05_021DC0B8.s60
-rw-r--r--arm9/modules/05/asm/mod05_021E2E88.s2
-rw-r--r--arm9/modules/05/asm/mod05_021E3444.s8
-rw-r--r--arm9/modules/05/asm/mod05_021E8310.s2
-rw-r--r--arm9/modules/05/asm/module_05.s62
-rw-r--r--arm9/modules/05/src/mod05_021E72FC.c2
-rw-r--r--arm9/modules/06/asm/module_06.s34
-rw-r--r--arm9/modules/07/asm/module_07.s16
-rw-r--r--arm9/modules/09/asm/module_09.s8
-rw-r--r--arm9/modules/11/asm/module_11_thumb1.s36
-rw-r--r--arm9/modules/11/asm/module_11_thumb2.s12
-rw-r--r--arm9/modules/12/asm/module_12.s84
-rw-r--r--arm9/modules/14/asm/module_14.s16
-rw-r--r--arm9/modules/15/asm/module_15.s10
-rw-r--r--arm9/modules/16/asm/module_16.s20
-rw-r--r--arm9/modules/17/asm/module_17.s40
-rw-r--r--arm9/modules/18/asm/module_18.s66
-rw-r--r--arm9/modules/20/asm/module_20.s4
-rw-r--r--arm9/modules/22/asm/module_22.s10
-rw-r--r--arm9/modules/41/asm/module_41.s10
-rw-r--r--arm9/modules/42/asm/module_42.s4
-rw-r--r--arm9/modules/43/asm/module_43.s4
-rw-r--r--arm9/modules/51/asm/module_51.s18
-rw-r--r--arm9/modules/52/asm/module_52.s293
-rw-r--r--arm9/modules/52/include/module_52.h42
-rw-r--r--arm9/modules/52/src/module_52.c647
-rw-r--r--arm9/modules/53/asm/module_53.s10
-rw-r--r--arm9/modules/54/asm/module_54.s10
-rw-r--r--arm9/modules/55/asm/module_55.s16
-rw-r--r--arm9/modules/56/asm/module_56.s22
-rw-r--r--arm9/modules/57/asm/module_57.s12
-rw-r--r--arm9/modules/58/asm/module_58.s10
-rw-r--r--arm9/modules/59/asm/mod59_021D74E0_asm.s10
-rw-r--r--arm9/modules/59/asm/mod59_021D9868.s8
-rw-r--r--arm9/modules/59/src/mod59_021D74E0_src.c3
-rw-r--r--arm9/modules/60/asm/module_60.s12
-rw-r--r--arm9/modules/61/asm/module_61.s12
-rw-r--r--arm9/modules/62/asm/module_62.s40
-rw-r--r--arm9/modules/63/asm/mod63_021D74E0.s78
-rw-r--r--arm9/modules/63/asm/mod63_021D8890.s60
-rw-r--r--arm9/modules/63/asm/mod63_021DA640.s2
-rw-r--r--arm9/modules/63/asm/mod63_021DAE5C.s4
-rw-r--r--arm9/modules/64/asm/module_64.s12
-rw-r--r--arm9/modules/65/asm/module_65.s28
-rw-r--r--arm9/modules/66/asm/module_66.s14
-rw-r--r--arm9/modules/67/asm/module_67.s42
-rw-r--r--arm9/modules/68/asm/module_68.s12
-rw-r--r--arm9/modules/69/asm/module_69.s6
-rw-r--r--arm9/modules/70/asm/module_70.s4
-rw-r--r--arm9/modules/71/asm/module_71.s18
-rw-r--r--arm9/modules/73/asm/module_73.s36
-rw-r--r--arm9/modules/74/asm/module_74.s12
-rw-r--r--arm9/modules/75/asm/module_75.s14
-rw-r--r--arm9/modules/76/asm/module_76.s10
-rw-r--r--arm9/modules/77/asm/module_77.s26
-rw-r--r--arm9/modules/78/asm/module_78.s8
-rw-r--r--arm9/modules/80/asm/module_80.s54
-rw-r--r--arm9/modules/81/asm/module_81.s58
-rw-r--r--arm9/modules/82/asm/module_82.s26
-rw-r--r--arm9/modules/83/asm/module_83.s60
-rw-r--r--arm9/modules/84/asm/module_84_thumb1.s12
-rw-r--r--arm9/modules/84/asm/module_84_thumb2.s22
-rw-r--r--arm9/modules/85/asm/module_85.s26
-rw-r--r--arm9/modules/86/asm/module_86.s8
-rw-r--r--arm9/src/GX_layers.c110
-rw-r--r--arm9/src/error_handling.c2
-rw-r--r--arm9/src/error_message_reset.c142
-rw-r--r--arm9/src/game_init.c5
-rw-r--r--arm9/src/heap.c380
-rw-r--r--arm9/src/main.c4
-rw-r--r--arm9/src/map_header.c80
-rw-r--r--arm9/src/save_arrays.c3
-rw-r--r--arm9/src/scrcmd.c1300
-rw-r--r--arm9/src/scrcmd_11.c120
-rw-r--r--arm9/src/scrcmd_13.c111
-rw-r--r--arm9/src/scrcmd_18_c.c12
-rw-r--r--arm9/src/scrcmd_19.c86
-rw-r--r--arm9/src/scrcmd_20.c35
-rw-r--r--arm9/src/scrcmd_23.c169
-rw-r--r--arm9/src/scrcmd_25.c27
-rw-r--r--arm9/src/scrcmd_coins.c136
-rw-r--r--arm9/src/scrcmd_daycare.c192
-rw-r--r--arm9/src/scrcmd_items.c96
-rw-r--r--arm9/src/scrcmd_money.c111
-rw-r--r--arm9/src/scrcmd_names.c540
-rw-r--r--arm9/src/script.c8
-rw-r--r--arm9/src/script_buffers.c5
-rw-r--r--arm9/src/text.c88
-rw-r--r--arm9/src/timer3.c66
-rw-r--r--arm9/src/trainer_data.c5
-rw-r--r--arm9/src/unk_02015E30.c35
-rw-r--r--arm9/src/unk_02024E64.c62
-rw-r--r--arm9/src/unk_02025484.c27
-rw-r--r--arm9/src/unk_0202F150.c2478
-rw-r--r--arm9/src/unk_0204AEA8.c43
-rw-r--r--arm9/src/unk_0205FA2C.c543
-rw-r--r--arm9/src/unk_02064E4C.c2
-rw-r--r--arm9/src/unk_0206BB28.c6
-rw-r--r--arm9/temp.c0
170 files changed, 8908 insertions, 15317 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index b8accee4..dee43fd0 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -48,7 +48,7 @@ Static arm9
Object unk_02015D14.o
Object unk_02015E30.o
Object game_init.o
- Object unk_020166C8.o
+ Object heap.o
Object unk_02016B94.o
Object unk_0201B1A8.o
Object unk_0201B4E8.o
@@ -65,11 +65,11 @@ Static arm9
Object unk_0201CC08.o
Object unk_0201D040.o
Object unk_0201E00C.o
- Object unk_0201E66C.o
+ Object GX_layers.o
Object unk_0201E7D8.o
Object unk_0201F06C.o
Object unk_020208B8.o
- Object unk_02020AFC.o
+ Object timer3.o
Object error_handling.o
Object unk_02020C44.o
Object unk_0202134C.o
@@ -152,9 +152,10 @@ Static arm9
Object script.o
Object unk_02038C78.o
Object scrcmd.o
+ Object scrcmd_asm.o
Object scrcmd_2.o
Object scrcmd_3.o
- Object scrcmd_4.o
+ Object scrcmd_names.o
Object scrcmd_5.o
Object scrcmd_6.o
Object scrcmd_7.o
@@ -164,16 +165,16 @@ Static arm9
Object scrcmd_11.o
Object scrcmd_12.o
Object scrcmd_13.o
- Object scrcmd_14.o
- Object scrcmd_15.o
- Object scrcmd_16.o
+ Object scrcmd_coins.o
+ Object scrcmd_money.o
+ Object scrcmd_daycare.o
Object scrcmd_17.o
Object scrcmd_18_c.o
Object scrcmd_18.o
Object scrcmd_19.o
Object scrcmd_20.o
Object scrcmd_21.o
- Object scrcmd_22.o
+ Object scrcmd_items.o
Object scrcmd_23.o
Object scrcmd_24.o
Object scrcmd_25.o
@@ -316,7 +317,7 @@ Static arm9
Object unk_0208A258.o
Object unk_0208A300.o
Object unk_0208A338.o
- Object unk_0208A998.o
+ Object error_message_reset.o
### Third-party libraries ###
Object unk_0208AC14.o
Object custom_allocator.o
diff --git a/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s b/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s
index 2d51a2ae..a590ef02 100644
--- a/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s
+++ b/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s
@@ -1,11 +1,10 @@
- .include "asm/macros.inc"
- .include "global.inc"
+.section .text
- .extern UNK_021C570C
- .extern UNK_021C5734
+glabel GenerateFontHalfRowLookupTable
+
+.extern UNK_021C570C
+.extern UNK_021C5734
- thumb_func_start GenerateFontHalfRowLookupTable
-GenerateFontHalfRowLookupTable: ; 0x0201C05C
push {r3-r7, lr}
sub sp, #0x30
ldr r3, _0201C0F8 ; =UNK_021C570C
diff --git a/arm9/asm/scrcmd_11.s b/arm9/asm/scrcmd_11.s
deleted file mode 100644
index 5612284f..00000000
--- a/arm9/asm/scrcmd_11.s
+++ /dev/null
@@ -1,239 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02042B0C
-FUN_02042B0C: ; 0x02042B0C
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- add r1, r0, #0x0
- add r5, #0x80
- ldr r0, [r5, #0x0]
- ldr r1, [r1, #0x0]
- bl FUN_0204B5FC
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02042B40
-FUN_02042B40: ; 0x02042B40
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, #0x80
- add r6, r0, #0x0
- ldr r0, [r5, #0x0]
- ldr r1, [r4, #0x0]
- bl FUN_0204B63C
- strh r0, [r6, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02042B74
-FUN_02042B74: ; 0x02042B74
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, #0x80
- add r6, r0, #0x0
- ldr r0, [r5, #0x0]
- ldr r1, [r4, #0x0]
- bl FUN_0204B660
- strh r0, [r6, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02042BA8
-FUN_02042BA8: ; 0x02042BA8
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, #0x80
- add r6, r0, #0x0
- ldr r0, [r5, #0x0]
- ldr r1, [r4, #0x0]
- bl FUN_0204B684
- strh r0, [r6, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02042BDC
-FUN_02042BDC: ; 0x02042BDC
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, #0x80
- add r6, r0, #0x0
- ldr r0, [r5, #0x0]
- ldr r1, [r4, #0x0]
- bl FUN_0204B6A4
- strh r0, [r6, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02042C10
-FUN_02042C10: ; 0x02042C10
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r5, #0x80
- add r2, r0, #0x0
- ldr r0, [r5, #0x0]
- ldr r1, [r4, #0x0]
- bl FUN_0204B57C
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02042C44
-FUN_02042C44: ; 0x02042C44
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl FUN_02029FC8
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r5, #0x80
- add r2, r0, #0x0
- ldr r0, [r5, #0x0]
- ldr r1, [r4, #0x0]
- bl FUN_0204B5A8
- add r0, r6, #0x0
- mov r1, #0x3
- bl FUN_0202A0E8
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02042C8C
-FUN_02042C8C: ; 0x02042C8C
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- cmp r0, #0x0
- beq _02042C9E
- cmp r0, #0x1
- beq _02042CA8
- b _02042CB2
-_02042C9E:
- add r4, #0x80
- ldr r0, [r4, #0x0]
- bl FUN_0204B9A0
- b _02042CB6
-_02042CA8:
- add r4, #0x80
- ldr r0, [r4, #0x0]
- bl FUN_0204B9CC
- b _02042CB6
-_02042CB2:
- bl ErrorHandling
-_02042CB6:
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02042CBC
-FUN_02042CBC: ; 0x02042CBC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl FUN_02029FC8
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- add r1, r0, #0x0
- add r5, #0x80
- ldr r0, [r5, #0x0]
- ldr r1, [r1, #0x0]
- bl FUN_0204B4FC
- add r0, r4, #0x0
- mov r1, #0x0
- bl FUN_0202A170
- mov r0, #0x0
- pop {r3-r5, pc}
diff --git a/arm9/asm/scrcmd_13.s b/arm9/asm/scrcmd_13.s
deleted file mode 100644
index 1b31ce71..00000000
--- a/arm9/asm/scrcmd_13.s
+++ /dev/null
@@ -1,220 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_0204387C
-FUN_0204387C: ; 0x0204387C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl SavArray_Flags_get
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- cmp r0, #0x0
- bne _020438B2
- add r0, r4, #0x0
- bl FUN_0205F224
- add r5, #0x80
- ldr r0, [r5, #0x0]
- bl FUN_0204B9EC
- b _020438CA
-_020438B2:
- cmp r0, #0x1
- bne _020438C6
- add r0, r4, #0x0
- bl FUN_0205F234
- add r5, #0x80
- ldr r0, [r5, #0x0]
- bl FUN_0204BA1C
- b _020438CA
-_020438C6:
- bl ErrorHandling
-_020438CA:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020438D0
-FUN_020438D0: ; 0x020438D0
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl FUN_02022528
- add r6, r0, #0x0
- mov r0, #0x20
- bl AllocMonZeroed
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0202C000
- cmp r0, #0x6
- bne _02043908
- mov r0, #0x1
- b _0204390A
-_02043908:
- mov r0, #0x0
-_0204390A:
- strh r0, [r4, #0x0]
- add r0, r5, #0x0
- bl FreeToHeap
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02043918
-FUN_02043918: ; 0x02043918
- push {r4-r7, lr}
- sub sp, #0xc
- add r6, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl FUN_02022528
- add r7, r0, #0x0
- add r0, r6, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl GetStoragePCPointer
- str r0, [sp, #0x8]
- mov r0, #0x20
- bl AllocMonZeroed
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl Sav2_PlayerData_GetProfileAddr
- str r0, [sp, #0x4]
- add r0, r6, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl Sav2_Pokedex_get
- mov r5, #0x0
-_0204395C:
- add r0, r7, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_0202BFD8
- mov r0, #0x20
- str r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- add r0, r4, #0x0
- mov r2, #0x2
- mov r3, #0x0
- bl FUN_0208089C
- add r0, r4, #0x0
- bl FUN_020690E4
- add r1, r0, #0x0
- ldr r0, [sp, #0x8]
- bl PCStorage_PlaceMonInFirstEmptySlotInAnyBox
- cmp r0, #0x0
- bne _0204398C
- bl ErrorHandling
-_0204398C:
- add r0, r6, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- add r1, r4, #0x0
- ldr r0, [r0, #0xc]
- bl FUN_0202C144
- add r5, r5, #0x1
- cmp r5, #0x6
- blt _0204395C
- add r0, r4, #0x0
- bl FreeToHeap
- add r0, r7, #0x0
- bl FUN_0202BEDC
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020439B4
-FUN_020439B4: ; 0x020439B4
- push {r3-r7, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- cmp r6, #0x3
- bhi _02043A40
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020439EE: ; jump table (using 16-bit offset)
- .short _020439F6 - _020439EE - 2; case 0
- .short _02043A02 - _020439EE - 2; case 1
- .short _02043A0E - _020439EE - 2; case 2
- .short _02043A1A - _020439EE - 2; case 3
-_020439F6:
- add r4, #0x80
- ldr r0, [r4, #0x0]
- bl FUN_0204BAC4
- strh r0, [r5, #0x0]
- b _02043A40
-_02043A02:
- add r4, #0x80
- ldr r0, [r4, #0x0]
- bl FUN_0204BAD4
- strh r0, [r5, #0x0]
- b _02043A40
-_02043A0E:
- add r4, #0x80
- ldr r0, [r4, #0x0]
- bl FUN_0204BAE4
- strh r0, [r5, #0x0]
- b _02043A40
-_02043A1A:
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl FUN_0204BAD4
- add r6, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl FUN_0204BAC4
- add r4, #0x80
- add r7, r0, #0x0
- ldr r0, [r4, #0x0]
- bl FUN_0204BAE4
- add r0, r7, r0
- add r0, r6, r0
- strh r0, [r5, #0x0]
-_02043A40:
- mov r0, #0x0
- pop {r3-r7, pc}
diff --git a/arm9/asm/scrcmd_14.s b/arm9/asm/scrcmd_14.s
deleted file mode 100644
index 1fd34357..00000000
--- a/arm9/asm/scrcmd_14.s
+++ /dev/null
@@ -1,267 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02043A44
-FUN_02043A44: ; 0x02043A44
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x26
- bl FUN_02039438
- lsl r1, r6, #0x18
- lsl r2, r7, #0x18
- add r4, #0x80
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- bl MOD05_021E2950
- str r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02043A94
-FUN_02043A94: ; 0x02043A94
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x26
- bl FUN_02039438
- ldr r0, [r0, #0x0]
- bl MOD05_021E29B4
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02043AAC
-FUN_02043AAC: ; 0x02043AAC
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x26
- bl FUN_02039438
- add r1, r0, #0x0
- add r4, #0x80
- ldr r0, [r4, #0x0]
- ldr r1, [r1, #0x0]
- bl MOD05_021E29C8
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02043ACC
-FUN_02043ACC: ; 0x02043ACC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl Sav2_PlayerData_GetCoinsAddr
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl CheckCoins
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02043AFC
-FUN_02043AFC: ; 0x02043AFC
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl Sav2_PlayerData_GetCoinsAddr
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl GiveCoins
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02043B28
-FUN_02043B28: ; 0x02043B28
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl Sav2_PlayerData_GetCoinsAddr
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl TakeCoins
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02043B54
-FUN_02043B54: ; 0x02043B54
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl Sav2_PlayerData_GetCoinsAddr
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r1, r0, #0x0
- ldrh r1, [r1, #0x0]
- add r0, r4, #0x0
- bl TakeCoins
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02043B84
-FUN_02043B84: ; 0x02043B84
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- add r0, r5, #0x0
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- ldr r0, [r5, #0xc]
- bl Sav2_PlayerData_GetCoinsAddr
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadWord
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl CheckCoins
- cmp r0, r4
- bhs _02043BC8
- mov r0, #0x0
- b _02043BCA
-_02043BC8:
- mov r0, #0x1
-_02043BCA:
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02043BD0
-FUN_02043BD0: ; 0x02043BD0
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- add r0, r4, #0x0
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- ldr r0, [r4, #0xc]
- bl Sav2_PlayerData_GetCoinsAddr
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- ldrh r5, [r0, #0x0]
- add r0, r6, #0x0
- bl CheckCoins
- cmp r0, r5
- bhs _02043C1E
- mov r0, #0x0
- b _02043C20
-_02043C1E:
- mov r0, #0x1
-_02043C20:
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02043C28
-FUN_02043C28: ; 0x02043C28
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl Sav2_PlayerData_GetCoinsAddr
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r1, r0, #0x0
- add r0, r6, #0x0
- bl CanGiveCoins
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
diff --git a/arm9/asm/scrcmd_15.s b/arm9/asm/scrcmd_15.s
deleted file mode 100644
index e5630b08..00000000
--- a/arm9/asm/scrcmd_15.s
+++ /dev/null
@@ -1,198 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02043C6C
-FUN_02043C6C: ; 0x02043C6C
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadWord
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl PlayerProfile_AddMoney
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02043C90
-FUN_02043C90: ; 0x02043C90
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadWord
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl PlayerProfile_SubMoney
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02043CB4
-FUN_02043CB4: ; 0x02043CB4
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl PlayerProfile_SubMoney
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02043CE4
-FUN_02043CE4: ; 0x02043CE4
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadWord
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl PlayerProfile_GetMoney
- cmp r0, r4
- bhs _02043D20
- mov r0, #0x0
- b _02043D22
-_02043D20:
- mov r0, #0x1
-_02043D22:
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02043D28
-FUN_02043D28: ; 0x02043D28
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl PlayerProfile_GetMoney
- cmp r0, r4
- bhs _02043D6E
- mov r0, #0x0
- b _02043D70
-_02043D6E:
- mov r0, #0x1
-_02043D70:
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02043D78
-FUN_02043D78: ; 0x02043D78
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x27
- bl FUN_02039438
- lsl r1, r6, #0x18
- lsl r2, r7, #0x18
- add r4, #0x80
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- bl MOD05_021E27E8
- str r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02043DC8
-FUN_02043DC8: ; 0x02043DC8
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x27
- bl FUN_02039438
- ldr r0, [r0, #0x0]
- bl MOD05_021E288C
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02043DE0
-FUN_02043DE0: ; 0x02043DE0
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x27
- bl FUN_02039438
- add r1, r0, #0x0
- add r4, #0x80
- ldr r0, [r4, #0x0]
- ldr r1, [r1, #0x0]
- bl MOD05_021E28A0
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
diff --git a/arm9/asm/scrcmd_16.s b/arm9/asm/scrcmd_16.s
deleted file mode 100644
index 8afbf518..00000000
--- a/arm9/asm/scrcmd_16.s
+++ /dev/null
@@ -1,408 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02043E00
-FUN_02043E00: ; 0x02043E00
- push {r3-r5, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- ldr r5, [r0, #0xc]
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl Sav2_DayCare_get
- ldr r1, [r4, #0x0]
- bl MOD05_021ED4E0
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02043E20
-FUN_02043E20: ; 0x02043E20
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r4, [r1, #0xc]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x8
- bl SavArray_get
- bl MOD05_021ED5EC
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02043E50
-FUN_02043E50: ; 0x02043E50
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x8
- ldr r0, [r0, #0xc]
- bl SavArray_get
- bl MOD05_021ECD64
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02043E68
-FUN_02043E68: ; 0x02043E68
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0x8
- ldr r0, [r5, #0xc]
- bl SavArray_get
- add r6, r0, #0x0
- ldr r0, [r5, #0xc]
- bl SavArray_PlayerParty_get
- add r4, #0x80
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- add r2, r0, #0x0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl MOD05_DayCare_GiveEggToPlayer
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02043E9C
-FUN_02043E9C: ; 0x02043E9C
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0xf
- add r0, r5, #0x0
- bl FUN_02039438
- add r7, r0, #0x0
- add r0, r4, #0x0
- ldr r6, [r5, #0xc]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r6, #0x0
- mov r1, #0x8
- bl SavArray_get
- add r6, r0, #0x0
- ldr r0, [r5, #0xc]
- bl SavArray_PlayerParty_get
- lsl r3, r4, #0x18
- ldr r1, [r7, #0x0]
- add r2, r6, #0x0
- lsr r3, r3, #0x18
- bl MOD05_021EC71C
- ldr r1, [sp, #0x0]
- strh r0, [r1, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02043EFC
-FUN_02043EFC: ; 0x02043EFC
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0xf
- add r0, r5, #0x0
- bl FUN_02039438
- add r7, r0, #0x0
- add r0, r4, #0x0
- ldr r5, [r5, #0xc]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x8
- bl SavArray_get
- lsl r1, r4, #0x18
- ldr r2, [r7, #0x0]
- lsr r1, r1, #0x18
- bl MOD05_021EC854
- strh r0, [r6, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02043F50
-FUN_02043F50: ; 0x02043F50
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- ldr r4, [r0, #0xc]
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x8
- bl SavArray_get
- ldr r2, [r6, #0x0]
- add r1, r5, #0x0
- bl MOD05_021EC864
- strh r0, [r7, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02043FA0
-FUN_02043FA0: ; 0x02043FA0
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0xf
- add r0, r5, #0x0
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl SavArray_PlayerParty_get
- ldr r2, [r6, #0x0]
- add r1, r7, #0x0
- bl MOD05_021ED5C4
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02043FF4
-FUN_02043FF4: ; 0x02043FF4
- push {r4-r6, lr}
- add r6, r0, #0x0
- add r1, r6, #0x0
- add r1, #0x80
- ldr r4, [r1, #0x0]
- ldr r5, [r4, #0xc]
- bl ScriptReadHalfword
- add r6, #0x80
- add r1, r0, #0x0
- ldr r0, [r6, #0x0]
- bl VarGet
- add r6, r0, #0x0
- ldr r0, [r4, #0xc]
- bl SavArray_PlayerParty_get
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x8
- bl SavArray_get
- lsl r1, r6, #0x18
- add r2, r0, #0x0
- add r0, r4, #0x0
- lsr r1, r1, #0x18
- add r3, r5, #0x0
- bl MOD05_021EC57C
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02044034
-FUN_02044034: ; 0x02044034
- push {r3-r7, lr}
- sub sp, #0x10
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- ldr r5, [r0, #0xc]
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- str r0, [sp, #0x8]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- str r0, [sp, #0xc]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl Sav2_DayCare_get
- lsl r1, r4, #0x18
- lsr r1, r1, #0x18
- str r1, [sp, #0x0]
- ldr r1, [r6, #0x0]
- ldr r2, [sp, #0x8]
- ldr r3, [sp, #0xc]
- str r1, [sp, #0x4]
- lsl r1, r7, #0x18
- lsl r2, r2, #0x18
- lsl r3, r3, #0x18
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl MOD05_021ED52C
- mov r0, #0x0
- add sp, #0x10
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020440C0
-FUN_020440C0: ; 0x020440C0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r4, [r1, #0xc]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x8
- bl SavArray_get
- bl MOD05_021ED644
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020440F0
-FUN_020440F0: ; 0x020440F0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r4, [r1, #0xc]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x8
- bl SavArray_get
- bl Sav2_DayCare_GetEggPID
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02044120
-FUN_02044120: ; 0x02044120
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02044138
-FUN_02044138: ; 0x02044138
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0204413C
-FUN_0204413C: ; 0x0204413C
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_02044140
-FUN_02044140: ; 0x02044140
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
diff --git a/arm9/asm/scrcmd_18.s b/arm9/asm/scrcmd_18.s
index 4b0acb12..fe0e3aa9 100644
--- a/arm9/asm/scrcmd_18.s
+++ b/arm9/asm/scrcmd_18.s
@@ -678,7 +678,7 @@ FUN_020448D4: ; 0x020448D4
ldr r0, [r5, #0x0]
ldr r0, [r0, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r7, r0, #0x0
ldr r0, [r6, #0xc]
bl SavArray_PlayerParty_get
diff --git a/arm9/asm/scrcmd_19.s b/arm9/asm/scrcmd_19.s
deleted file mode 100644
index 863006b1..00000000
--- a/arm9/asm/scrcmd_19.s
+++ /dev/null
@@ -1,175 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .rodata
-
- .global UNK_020F450C
-UNK_020F450C: ; 0x020F450C
- .byte 0x67, 0x00
-
- .global UNK_020F450E
-UNK_020F450E: ; 0x020F450E
- .byte 0x8E, 0x00, 0x65, 0x00, 0x8A, 0x00, 0x66, 0x00, 0x8C, 0x00, 0x63, 0x00, 0x59, 0x01, 0x64, 0x00
- .byte 0x5B, 0x01, 0x68, 0x00, 0x9A, 0x01, 0x69, 0x00, 0x98, 0x01
-
- .text
-
- thumb_func_start FUN_02045268
-FUN_02045268: ; 0x02045268
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r6, [r1, #0x0]
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r4, #0x0
- ldr r7, _020452B0 ; =UNK_020F450C
- str r0, [sp, #0x0]
- add r5, r4, #0x0
-_02045288:
- ldr r0, [r6, #0xc]
- bl Sav2_Bag_get
- lsl r1, r4, #0x2
- ldrh r1, [r7, r1]
- mov r2, #0x4
- bl Bag_GetQuantity
- add r0, r5, r0
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0x7
- blo _02045288
- ldr r0, [sp, #0x0]
- strh r5, [r0, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-_020452B0: .word UNK_020F450C
-
- thumb_func_start FUN_020452B4
-FUN_020452B4: ; 0x020452B4
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- mov r5, #0x0
- ldr r2, _02045300 ; =UNK_020F450C
- strh r5, [r4, #0x0]
-_020452E0:
- lsl r3, r5, #0x2
- ldrh r1, [r2, r3]
- cmp r0, r1
- bne _020452F0
- ldr r0, _02045304 ; =UNK_020F450E
- ldrh r0, [r0, r3]
- strh r0, [r4, #0x0]
- b _020452FA
-_020452F0:
- add r1, r5, #0x1
- lsl r1, r1, #0x10
- lsr r5, r1, #0x10
- cmp r5, #0x7
- blo _020452E0
-_020452FA:
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_02045300: .word UNK_020F450C
-_02045304: .word UNK_020F450E
-
- thumb_func_start FUN_02045308
-FUN_02045308: ; 0x02045308
- push {r4-r7, lr}
- sub sp, #0xc
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r7, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- str r0, [sp, #0x8]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- str r0, [sp, #0x0]
- mov r4, #0x0
- ldr r0, [sp, #0x8]
- add r6, r4, #0x0
- strh r4, [r0, #0x0]
- ldr r0, [sp, #0x4]
- strh r4, [r0, #0x0]
-_02045358:
- ldr r0, [r7, #0xc]
- lsl r5, r4, #0x2
- bl Sav2_Bag_get
- ldr r1, _02045394 ; =UNK_020F450C
- mov r2, #0x4
- ldrh r1, [r1, r5]
- bl Bag_GetQuantity
- add r0, r6, r0
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- ldr r0, [sp, #0x0]
- cmp r6, r0
- blo _02045384
- ldr r0, _02045394 ; =UNK_020F450C
- ldrh r1, [r0, r5]
- ldr r0, [sp, #0x8]
- strh r1, [r0, #0x0]
- ldr r0, [sp, #0x4]
- strh r4, [r0, #0x0]
- b _0204538E
-_02045384:
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0x7
- blo _02045358
-_0204538E:
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02045394: .word UNK_020F450C
-
- thumb_func_start FUN_02045398
-FUN_02045398: ; 0x02045398
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0204539C
-FUN_0204539C: ; 0x0204539C
- mov r0, #0x0
- bx lr
diff --git a/arm9/asm/scrcmd_20.s b/arm9/asm/scrcmd_20.s
deleted file mode 100644
index 31de1e77..00000000
--- a/arm9/asm/scrcmd_20.s
+++ /dev/null
@@ -1,56 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .rodata
-
- .global UNK_020F4528
-UNK_020F4528: ; 0x020F4528
- .byte 0xFB, 0x00
-
- .global UNK_020F452A
-UNK_020F452A: ; 0x020F452A
- .byte 0xE8, 0x03, 0x09, 0x01, 0xE8, 0x03, 0x14, 0x01, 0xE8, 0x03, 0x15, 0x01, 0xE8, 0x03, 0xA1, 0x01
- .byte 0xD0, 0x07, 0x81, 0x01, 0xD0, 0x07, 0x92, 0x01, 0xA0, 0x0F, 0x67, 0x01, 0xA0, 0x0F, 0x73, 0x01
- .byte 0x70, 0x17, 0xA0, 0x01, 0x70, 0x17, 0x51, 0x01, 0x70, 0x17, 0x62, 0x01, 0x40, 0x1F, 0x5C, 0x01
- .byte 0x40, 0x1F, 0x6A, 0x01, 0x10, 0x27, 0x5F, 0x01, 0x10, 0x27, 0x54, 0x01, 0x10, 0x27, 0x64, 0x01
- .byte 0x10, 0x27, 0x91, 0x01, 0x98, 0x3A, 0x8B, 0x01, 0x20, 0x4E
-
- .text
-
- thumb_func_start FUN_020453A0
-FUN_020453A0: ; 0x020453A0
- push {r4-r6, lr}
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- ldr r1, _020453EC ; =UNK_020F4528
- lsl r2, r4, #0x2
- ldrh r1, [r1, r2]
- strh r1, [r6, #0x0]
- ldr r1, _020453F0 ; =UNK_020F452A
- ldrh r1, [r1, r2]
- strh r1, [r0, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-_020453EC: .word UNK_020F4528
-_020453F0: .word UNK_020F452A
diff --git a/arm9/asm/scrcmd_22.s b/arm9/asm/scrcmd_22.s
deleted file mode 100644
index 1f354520..00000000
--- a/arm9/asm/scrcmd_22.s
+++ /dev/null
@@ -1,220 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02045784
-FUN_02045784: ; 0x02045784
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl Sav2_Bag_get
- add r1, r6, #0x0
- add r2, r7, #0x0
- mov r3, #0x4
- bl Bag_AddItem
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020457DC
-FUN_020457DC: ; 0x020457DC
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl Sav2_Bag_get
- add r1, r6, #0x0
- add r2, r7, #0x0
- mov r3, #0x4
- bl Bag_TakeItem
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02045834
-FUN_02045834: ; 0x02045834
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl Sav2_Bag_get
- add r1, r6, #0x0
- add r2, r7, #0x0
- mov r3, #0x4
- bl Bag_HasSpaceForItem
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0204588C
-FUN_0204588C: ; 0x0204588C
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl Sav2_Bag_get
- add r1, r6, #0x0
- add r2, r7, #0x0
- mov r3, #0xb
- bl Bag_HasItem
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020458E4
-FUN_020458E4: ; 0x020458E4
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_02054CB0
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02045918
-FUN_02045918: ; 0x02045918
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x5
- mov r2, #0xb
- bl GetItemAttr
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02045950
-FUN_02045950: ; 0x02045950
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_02045954
-FUN_02045954: ; 0x02045954
- mov r0, #0x0
- bx lr
diff --git a/arm9/asm/scrcmd_23.s b/arm9/asm/scrcmd_23.s
deleted file mode 100644
index 3d38b510..00000000
--- a/arm9/asm/scrcmd_23.s
+++ /dev/null
@@ -1,483 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02045958
-FUN_02045958: ; 0x02045958
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r5, [r1, #0xc]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02026CC4
- add r1, r6, #0x0
- bl FUN_02025D6C
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020459AC
-FUN_020459AC: ; 0x020459AC
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020459E8
-FUN_020459E8: ; 0x020459E8
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r5, [r1, #0xc]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02026CC4
- add r1, r6, #0x0
- bl FUN_02025D94
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02045A3C
-FUN_02045A3C: ; 0x02045A3C
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02045A78
-FUN_02045A78: ; 0x02045A78
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r5, [r1, #0xc]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02026CC4
- add r1, r6, #0x0
- bl FUN_02026298
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02045ACC
-FUN_02045ACC: ; 0x02045ACC
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02045B08
-FUN_02045B08: ; 0x02045B08
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02045B44
-FUN_02045B44: ; 0x02045B44
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02045B80
-FUN_02045B80: ; 0x02045B80
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r4, [r1, #0xc]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r0, r4, #0x0
- bl FUN_02026CC4
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02045BC8
-FUN_02045BC8: ; 0x02045BC8
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02045C04
-FUN_02045C04: ; 0x02045C04
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02045C40
-FUN_02045C40: ; 0x02045C40
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02045C7C
-FUN_02045C7C: ; 0x02045C7C
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r5, [r1, #0xc]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02026CC4
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_020260C4
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02045CD4
-FUN_02045CD4: ; 0x02045CD4
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02045D10
-FUN_02045D10: ; 0x02045D10
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02045D4C
-FUN_02045D4C: ; 0x02045D4C
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
diff --git a/arm9/asm/scrcmd_25.s b/arm9/asm/scrcmd_25.s
deleted file mode 100644
index ab6d4787..00000000
--- a/arm9/asm/scrcmd_25.s
+++ /dev/null
@@ -1,30 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02046010
-FUN_02046010: ; 0x02046010
- push {r3, lr}
- bl ErrorHandling
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0204601C
-FUN_0204601C: ; 0x0204601C
- push {r3, lr}
- bl ErrorHandling
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02046028
-FUN_02046028: ; 0x02046028
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0204602C
-FUN_0204602C: ; 0x0204602C
- mov r0, #0x0
- bx lr
diff --git a/arm9/asm/scrcmd_3.s b/arm9/asm/scrcmd_3.s
index 28cbd7ac..28df2444 100644
--- a/arm9/asm/scrcmd_3.s
+++ b/arm9/asm/scrcmd_3.s
@@ -206,7 +206,7 @@ FUN_02040028: ; 0x02040028
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r5, #0x80
ldr r3, [r5, #0x0]
add r2, r0, #0x0
diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s
deleted file mode 100644
index 3bad9d50..00000000
--- a/arm9/asm/scrcmd_4.s
+++ /dev/null
@@ -1,1313 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern gGameLanguage
-
- .text
-
- thumb_func_start FUN_020406CC
-FUN_020406CC: ; 0x020406CC
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r6, [r0, #0x0]
- mov r1, #0xf
- add r0, r6, #0x0
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r4, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- ldrb r5, [r1, #0x0]
- add r0, r6, #0x0
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- add r2, r0, #0x0
- ldr r0, [r4, #0x0]
- add r1, r5, #0x0
- bl BufferPlayersName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040700
-FUN_02040700: ; 0x02040700
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0xf
- add r0, r4, #0x0
- bl FUN_02039438
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r1, [r2, #0x0]
- ldr r0, [r0, #0x0]
- ldr r2, [r4, #0xc]
- bl BufferRivalsName
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02040724
-FUN_02040724: ; 0x02040724
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0xf
- add r0, r4, #0x0
- bl FUN_02039438
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r1, [r2, #0x0]
- ldr r0, [r0, #0x0]
- ldr r2, [r4, #0xc]
- bl BufferFriendsName
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02040748
-FUN_02040748: ; 0x02040748
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r6, [r0, #0x0]
- mov r1, #0xf
- add r0, r6, #0x0
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r7, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r5, r0, #0x0
- ldr r0, [r6, #0xc]
- bl SavArray_PlayerParty_get
- add r1, r5, #0x0
- bl GetPartyMonByIndex
- add r2, r0, #0x0
- ldr r0, [r7, #0x0]
- add r1, r4, #0x0
- bl BufferBoxMonSpeciesName
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02040790
-FUN_02040790: ; 0x02040790
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferItemName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020407C8
-FUN_020407C8: ; 0x020407C8
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferPocketName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040800
-FUN_02040800: ; 0x02040800
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- bl TMHMGetMove
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferMoveName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0204083C
-FUN_0204083C: ; 0x0204083C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferMoveName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040874
-FUN_02040874: ; 0x02040874
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r5, r0, #0x0
- bl FUN_02054C14
- add r3, r0, #0x0
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- add r2, r5, #0x0
- bl BufferIntegerAsString
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020408BC
-FUN_020408BC: ; 0x020408BC
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r7, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r6, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- str r0, [sp, #0x8]
- ldr r1, [r5, #0x8]
- add r2, r1, #0x1
- str r2, [r5, #0x8]
- ldrb r4, [r1, #0x0]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r3, [r2, #0x0]
- cmp r4, #0x0
- bne _02040904
- bl FUN_02054C14
- lsl r0, r0, #0x18
- lsr r3, r0, #0x18
-_02040904:
- str r4, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- ldr r0, [r7, #0x0]
- ldr r2, [sp, #0x8]
- add r1, r6, #0x0
- bl BufferIntegerAsString
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0204091C
-FUN_0204091C: ; 0x0204091C
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r6, [r0, #0x0]
- mov r1, #0xf
- add r0, r6, #0x0
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r7, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r5, r0, #0x0
- ldr r0, [r6, #0xc]
- bl SavArray_PlayerParty_get
- add r1, r5, #0x0
- bl GetPartyMonByIndex
- add r2, r0, #0x0
- ldr r0, [r7, #0x0]
- add r1, r4, #0x0
- bl BufferBoxMonNickname
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02040964
-FUN_02040964: ; 0x02040964
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- ldr r0, [r4, #0xc]
- bl GetStoragePCPointer
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r5, r0, #0x0
- mov r1, #0x1e
- bl _s32_div_f
- add r7, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x1e
- bl _s32_div_f
- add r2, r1, #0x0
- ldr r0, [sp, #0x0]
- add r1, r7, #0x0
- bl PCStorage_GetMonByIndexPair
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferBoxMonNickname
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020409C0
-FUN_020409C0: ; 0x020409C0
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferPoketchAppName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020409F8
-FUN_020409F8: ; 0x020409F8
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferTrainerClassName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040A30
-FUN_02040A30: ; 0x02040A30
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- add r0, r5, #0x0
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r7, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r7, #0x8]
- add r0, r4, #0x0
- ldrb r5, [r1, #0x0]
- bl PlayerProfile_GetTrainerGender
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl PlayerProfile_GetAvatar
- add r1, r0, #0x0
- add r0, r7, #0x0
- mov r2, #0x2
- bl FUN_020536D0
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r5, #0x0
- bl BufferTrainerClassNameWithArticle
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02040A7C
-FUN_02040A7C: ; 0x02040A7C
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r7, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- ldr r1, [r5, #0x8]
- str r0, [sp, #0x8]
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- ldrb r5, [r1, #0x0]
- add r0, r6, #0x0
- mov r1, #0x4
- bl FUN_02040AE4
- add r6, r0, #0x0
- str r5, [sp, #0x0]
- mov r0, #0x2
- str r0, [sp, #0x4]
- ldr r0, [r7, #0x0]
- ldr r3, [sp, #0x8]
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl BufferString
- add r0, r6, #0x0
- bl String_dtor
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02040AE4
-FUN_02040AE4: ; 0x02040AE4
- push {r3-r5, lr}
- ldr r2, _02040B08 ; =0x0000016A
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r0, #0x1
- mov r1, #0x1a
- bl NewMsgDataFromNarc
- add r5, r0, #0x0
- add r1, r4, #0x0
- bl NewString_ReadMsgData
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl DestroyMsgData
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02040B08: .word 0x0000016A
-
- thumb_func_start FUN_02040B0C
-FUN_02040B0C: ; 0x02040B0C
- push {r4-r6, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r4, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r4, #0x8]
- add r4, #0x80
- ldr r0, [r4, #0x0]
- ldrb r5, [r1, #0x0]
- ldr r0, [r0, #0xc]
- bl SavArray_Flags_get
- bl FUN_0205F388
- mov r1, #0x4
- bl FUN_02040AE4
- add r4, r0, #0x0
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x2
- str r0, [sp, #0x4]
- ldr r0, [r6, #0x0]
- add r1, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x0
- bl BufferString
- add r0, r4, #0x0
- bl String_dtor
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02040B5C
-FUN_02040B5C: ; 0x02040B5C
- push {r4-r6, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r4, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r4, #0x8]
- add r4, #0x80
- ldr r0, [r4, #0x0]
- ldrb r5, [r1, #0x0]
- ldr r0, [r0, #0xc]
- bl SavArray_Flags_get
- bl FUN_0205F398
- mov r1, #0x4
- bl FUN_02040AE4
- add r4, r0, #0x0
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x2
- str r0, [sp, #0x4]
- ldr r0, [r6, #0x0]
- add r1, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x0
- bl BufferString
- add r0, r4, #0x0
- bl String_dtor
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02040BAC
-FUN_02040BAC: ; 0x02040BAC
- push {r4-r6, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r4, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r4, #0x8]
- add r4, #0x80
- ldr r0, [r4, #0x0]
- ldrb r5, [r1, #0x0]
- ldr r0, [r0, #0xc]
- bl SavArray_Flags_get
- bl FUN_0205F3C0
- mov r1, #0x4
- bl FUN_02040AE4
- add r4, r0, #0x0
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x2
- str r0, [sp, #0x4]
- ldr r0, [r6, #0x0]
- add r1, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x0
- bl BufferString
- add r0, r4, #0x0
- bl String_dtor
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02040BFC
-FUN_02040BFC: ; 0x02040BFC
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferDecorationName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040C34
-FUN_02040C34: ; 0x02040C34
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferUndergroundTrapName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040C6C
-FUN_02040C6C: ; 0x02040C6C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferUndergroundItemName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040CA4
-FUN_02040CA4: ; 0x02040CA4
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- mov r0, #0x16
- mov r1, #0x4
- bl String_ctor
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r7, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r6, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- mov r1, #0x4
- add r2, r4, #0x0
- bl FUN_02064E60
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x2
- str r0, [sp, #0x4]
- ldr r0, [r7, #0x0]
- add r1, r6, #0x0
- add r2, r4, #0x0
- mov r3, #0x0
- bl BufferString
- add r0, r4, #0x0
- bl String_dtor
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02040D04
-FUN_02040D04: ; 0x02040D04
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r4, #0x8]
- add r7, r0, #0x0
- add r0, r1, #0x1
- str r0, [r4, #0x8]
- add r0, r4, #0x0
- ldrb r6, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- sub r5, #0x95
- add r4, r0, #0x0
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x20
- bl GetNutName
- add r5, r0, #0x0
- cmp r4, #0x2
- bhs _02040D5A
- mov r0, #0x1
- b _02040D5C
-_02040D5A:
- mov r0, #0x0
-_02040D5C:
- str r0, [sp, #0x0]
- mov r0, #0x2
- str r0, [sp, #0x4]
- ldr r0, [r7, #0x0]
- add r1, r6, #0x0
- add r2, r5, #0x0
- mov r3, #0x0
- bl BufferString
- add r0, r5, #0x0
- bl String_dtor
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02040D7C
-FUN_02040D7C: ; 0x02040D7C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferNatureName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040DB4
-FUN_02040DB4: ; 0x02040DB4
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferFashionName
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040DEC
-FUN_02040DEC: ; 0x02040DEC
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r7, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- mov r0, #0xb
- ldrb r6, [r1, #0x0]
- add r1, r0, #0x0
- bl String_ctor
- add r5, #0x80
- add r4, r0, #0x0
- ldr r0, [r5, #0x0]
- ldr r0, [r0, #0xc]
- bl FUN_02024EB4
- bl FUN_02024F0C
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl CopyU16ArrayToString
- ldr r0, _02040E48 ; =gGameLanguage
- mov r3, #0x0
- ldrb r0, [r0, #0x0]
- str r3, [sp, #0x0]
- add r1, r6, #0x0
- str r0, [sp, #0x4]
- ldr r0, [r7, #0x0]
- add r2, r4, #0x0
- bl BufferString
- add r0, r4, #0x0
- bl String_dtor
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02040E48: .word gGameLanguage
-
- thumb_func_start FUN_02040E4C
-FUN_02040E4C: ; 0x02040E4C
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r6, [r0, #0x0]
- mov r1, #0xf
- add r0, r6, #0x0
- bl FUN_02039438
- ldr r1, [r4, #0x8]
- add r7, r0, #0x0
- add r0, r1, #0x1
- str r0, [r4, #0x8]
- add r0, r4, #0x0
- ldrb r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r4, r0, #0x0
- ldr r0, [r6, #0xc]
- bl SavArray_PlayerParty_get
- ldr r1, [sp, #0x0]
- bl GetPartyMonByIndex
- add r4, #0x36
- add r1, r4, #0x0
- mov r2, #0x0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- ldr r0, [r7, #0x0]
- add r1, r5, #0x0
- bl BufferMoveName
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02040EB4
-FUN_02040EB4: ; 0x02040EB4
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r1, #0x3
- bl FUN_0207FC5C
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferRibbonNameOrDesc
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040EF8
-FUN_02040EF8: ; 0x02040EF8
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- sub r2, r2, #0x1
- lsl r2, r2, #0x10
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- lsr r2, r2, #0x10
- bl BufferSealName
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02040F34
-FUN_02040F34: ; 0x02040F34
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferItemNameWithIndefArticle
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040F6C
-FUN_02040F6C: ; 0x02040F6C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferItemNamePlural
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040FA4
-FUN_02040FA4: ; 0x02040FA4
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferDecorationNameWithArticle
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02040FDC
-FUN_02040FDC: ; 0x02040FDC
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferUndergroundTrapNameWithArticle
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02041014
-FUN_02041014: ; 0x02041014
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferUndergroundItemNameWithArticle
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0204104C
-FUN_0204104C: ; 0x0204104C
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- ldr r0, [r5, #0x8]
- add r1, r4, #0x0
- add r0, r0, #0x1
- str r0, [r5, #0x8]
- ldr r0, [r6, #0x0]
- add r2, r7, #0x0
- bl BufferSpeciesNameWithArticle
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02041094
-FUN_02041094: ; 0x02041094
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r5, #0x80
- ldr r0, [r5, #0x0]
- ldrb r4, [r1, #0x0]
- ldr r0, [r0, #0xc]
- bl SavArray_Flags_get
- bl FUN_0205F3C0
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferSpeciesNameWithArticle
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020410C8
-FUN_020410C8: ; 0x020410C8
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferFashionNameWithArticle
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02041100
-FUN_02041100: ; 0x02041100
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- bl BufferTrainerClassNameWithArticle
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02041138
-FUN_02041138: ; 0x02041138
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- sub r2, r2, #0x1
- lsl r2, r2, #0x10
- ldr r0, [r6, #0x0]
- add r1, r4, #0x0
- lsr r2, r2, #0x10
- bl BufferSealNamePlural
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02041174
-FUN_02041174: ; 0x02041174
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- bl FUN_02039438
- ldr r2, [r4, #0x8]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r1, [r2, #0x0]
- ldr r0, [r0, #0x0]
- bl ScrStrBufs_UpperFirstChar
- mov r0, #0x0
- pop {r4, pc}
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd_asm.s
index c5ae760b..3d6645c2 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd_asm.s
@@ -1,11 +1,10 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_020F34E0
- .extern sScriptConditionTable
.extern UNK_020F34FC
.extern UNK_020F3538
.extern gMain
+ .extern FUN_0203A2F0
.section .bss
@@ -15,2852 +14,6 @@ UNK_021C5A0C: ; 0x021C5A0C
.text
- thumb_func_start ScrCmd_nop
-ScrCmd_nop: ; 0x020399A0
- mov r0, #0x0
- bx lr
-
- thumb_func_start ScrCmd_nop2
-ScrCmd_nop2: ; 0x020399A4
- mov r0, #0x0
- bx lr
-
- thumb_func_start ScrCmd_end
-ScrCmd_end: ; 0x020399A8
- push {r3, lr}
- bl StopScript
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start ScrCmd_delay
-ScrCmd_delay: ; 0x020399B4
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r6, [r1, #0x0]
- bl ScriptReadHalfword
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl GetVarPointer
- strh r7, [r0, #0x0]
- ldr r1, _020399E4 ; =RunPauseTimer
- add r0, r5, #0x0
- str r4, [r5, #0x64]
- bl SetupNativeScript
- mov r0, #0x1
- pop {r3-r7, pc}
- .balign 4
-_020399E4: .word RunPauseTimer
-
- thumb_func_start RunPauseTimer
-RunPauseTimer: ; 0x020399E8
- push {r3, lr}
- add r1, r0, #0x0
- ldr r1, [r1, #0x64]
- add r0, #0x80
- lsl r1, r1, #0x10
- ldr r0, [r0, #0x0]
- lsr r1, r1, #0x10
- bl GetVarPointer
- ldrh r1, [r0, #0x0]
- sub r1, r1, #0x1
- strh r1, [r0, #0x0]
- ldrh r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02039A0A
- mov r0, #0x1
- pop {r3, pc}
-_02039A0A:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02039A10
-FUN_02039A10: ; 0x02039A10
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start ScrCmd_loadbyte
-ScrCmd_loadbyte: ; 0x02039A28
- ldr r1, [r0, #0x8]
- add r2, r1, #0x1
- str r2, [r0, #0x8]
- ldrb r3, [r1, #0x0]
- add r1, r2, #0x1
- str r1, [r0, #0x8]
- ldrb r2, [r2, #0x0]
- lsl r1, r3, #0x2
- add r0, r0, r1
- str r2, [r0, #0x64]
- mov r0, #0x0
- bx lr
-
- thumb_func_start ScrCmd_loadword
-ScrCmd_loadword: ; 0x02039A40
- push {r3-r5, lr}
- add r4, r0, #0x0
- ldr r2, [r4, #0x8]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r5, [r2, #0x0]
- bl ScriptReadWord
- lsl r1, r5, #0x2
- add r1, r4, r1
- str r0, [r1, #0x64]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start ScrCmd_loadbytefromaddr
-ScrCmd_loadbytefromaddr: ; 0x02039A5C
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r4, [r2, #0x0]
- bl ScriptReadWord
- ldrb r1, [r0, #0x0]
- lsl r0, r4, #0x2
- add r0, r5, r0
- str r1, [r0, #0x64]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start ScrCmd_writebytetoaddr
-ScrCmd_writebytetoaddr: ; 0x02039A78
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadWord
- ldr r2, [r4, #0x8]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r1, [r2, #0x0]
- strb r1, [r0, #0x0]
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start ScrCmd_setptrbyte
-ScrCmd_setptrbyte: ; 0x02039A90
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadWord
- ldr r2, [r4, #0x8]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r1, [r2, #0x0]
- lsl r1, r1, #0x2
- add r1, r4, r1
- ldr r1, [r1, #0x64]
- strb r1, [r0, #0x0]
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start ScrCmd_copylocal
-ScrCmd_copylocal: ; 0x02039AAC
- ldr r1, [r0, #0x8]
- add r2, r1, #0x1
- str r2, [r0, #0x8]
- ldrb r3, [r1, #0x0]
- add r1, r2, #0x1
- str r1, [r0, #0x8]
- ldrb r1, [r2, #0x0]
- lsl r1, r1, #0x2
- add r1, r0, r1
- ldr r2, [r1, #0x64]
- lsl r1, r3, #0x2
- add r0, r0, r1
- str r2, [r0, #0x64]
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start ScrCmd_copybyte
-ScrCmd_copybyte: ; 0x02039ACC
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadWord
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadWord
- ldrb r0, [r0, #0x0]
- strb r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start compare_012
-compare_012: ; 0x02039AE4
- cmp r0, r1
- bhs _02039AEC
- mov r0, #0x0
- bx lr
-_02039AEC:
- cmp r0, r1
- bne _02039AF4
- mov r0, #0x1
- bx lr
-_02039AF4:
- mov r0, #0x2
- bx lr
-
- thumb_func_start ScrCmd_compare_local_to_local
-ScrCmd_compare_local_to_local: ; 0x02039AF8
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x8]
- add r1, r0, #0x1
- str r1, [r4, #0x8]
- ldrb r0, [r0, #0x0]
- add r2, r1, #0x1
- lsl r0, r0, #0x2
- add r0, r4, r0
- ldr r0, [r0, #0x64]
- str r2, [r4, #0x8]
- ldrb r1, [r1, #0x0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r1, r1, #0x2
- add r1, r4, r1
- ldr r1, [r1, #0x64]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl compare_012
- strb r0, [r4, #0x2]
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start ScrCmd_compare_local_to_value
-ScrCmd_compare_local_to_value: ; 0x02039B28
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x8]
- add r1, r0, #0x1
- str r1, [r4, #0x8]
- ldrb r0, [r0, #0x0]
- add r2, r1, #0x1
- lsl r0, r0, #0x2
- add r0, r4, r0
- ldr r0, [r0, #0x64]
- str r2, [r4, #0x8]
- ldrb r1, [r1, #0x0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl compare_012
- strb r0, [r4, #0x2]
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start ScrCmd_compare_local_to_addr
-ScrCmd_compare_local_to_addr: ; 0x02039B50
- push {r3-r5, lr}
- add r4, r0, #0x0
- ldr r2, [r4, #0x8]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r1, [r2, #0x0]
- lsl r1, r1, #0x2
- add r1, r4, r1
- ldr r1, [r1, #0x64]
- lsl r1, r1, #0x18
- lsr r5, r1, #0x18
- bl ScriptReadWord
- ldrb r1, [r0, #0x0]
- add r0, r5, #0x0
- bl compare_012
- strb r0, [r4, #0x2]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start ScrCmd_compare_addr_to_local
-ScrCmd_compare_addr_to_local: ; 0x02039B78
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadWord
- ldr r2, [r4, #0x8]
- ldrb r0, [r0, #0x0]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r1, [r2, #0x0]
- lsl r1, r1, #0x2
- add r1, r4, r1
- ldr r1, [r1, #0x64]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl compare_012
- strb r0, [r4, #0x2]
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start ScrCmd_compare_addr_to_value
-ScrCmd_compare_addr_to_value: ; 0x02039BA0
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadWord
- ldr r2, [r4, #0x8]
- ldrb r0, [r0, #0x0]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r1, [r2, #0x0]
- bl compare_012
- strb r0, [r4, #0x2]
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start ScrCmd_compare_addr_to_addr
-ScrCmd_compare_addr_to_addr: ; 0x02039BBC
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadWord
- ldrb r4, [r0, #0x0]
- add r0, r5, #0x0
- bl ScriptReadWord
- ldrb r1, [r0, #0x0]
- add r0, r4, #0x0
- bl compare_012
- strb r0, [r5, #0x2]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start ScrCmd_compare_var_to_value
-ScrCmd_compare_var_to_value: ; 0x02039BDC
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- ldrh r5, [r0, #0x0]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl compare_012
- strb r0, [r4, #0x2]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start ScrCmd_compare_var_to_var
-ScrCmd_compare_var_to_var: ; 0x02039C08
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r1, r0, #0x0
- ldrh r0, [r4, #0x0]
- ldrh r1, [r1, #0x0]
- bl compare_012
- strb r0, [r5, #0x2]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02039C40
-FUN_02039C40: ; 0x02039C40
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0x7
- add r0, r5, #0x0
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xe
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r7, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl CreateScriptContext
- str r0, [r6, #0x0]
- ldrb r0, [r4, #0x0]
- add r0, r0, #0x1
- strb r0, [r4, #0x0]
- mov r0, #0x1
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02039C78
-FUN_02039C78: ; 0x02039C78
- push {r3-r7, lr}
- str r0, [sp, #0x0]
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0x5
- add r0, r5, #0x0
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x7
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xe
- bl FUN_02039438
- add r7, r0, #0x0
- ldr r0, [sp, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- mov r0, #0x1
- strb r0, [r6, #0x0]
- add r0, r5, #0x0
- bl CreateScriptContext
- str r0, [r7, #0x0]
- ldrb r0, [r4, #0x0]
- ldr r1, _02039CC4 ; =FUN_02039CC8
- add r0, r0, #0x1
- strb r0, [r4, #0x0]
- ldr r0, [sp, #0x0]
- bl SetupNativeScript
- mov r0, #0x1
- pop {r3-r7, pc}
- .balign 4
-_02039CC4: .word FUN_02039CC8
-
- thumb_func_start FUN_02039CC8
-FUN_02039CC8: ; 0x02039CC8
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x5
- bl FUN_02039438
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02039CDE
- mov r0, #0x1
- pop {r3, pc}
-_02039CDE:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02039CE4
-FUN_02039CE4: ; 0x02039CE4
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x5
- bl FUN_02039438
- mov r1, #0x0
- strb r1, [r0, #0x0]
- add r0, r1, #0x0
- pop {r3, pc}
-
- thumb_func_start ScrCmd_goto
-ScrCmd_goto: ; 0x02039CF8
- ; relative jump
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadWord
- add r2, r0, #0x0
- ldr r1, [r4, #0x8]
- add r0, r4, #0x0
- add r1, r1, r2
- bl ScriptJump
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start FUN_02039D10
-FUN_02039D10: ; 0x02039D10
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadWord
- add r7, r0, #0x0
- ldr r0, [r6, #0x0]
- bl FUN_02058448
- cmp r4, r0
- bne _02039D44
- ldr r1, [r5, #0x8]
- add r0, r5, #0x0
- add r1, r1, r7
- bl ScriptJump
-_02039D44:
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02039D48
-FUN_02039D48: ; 0x02039D48
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x74]
- bl FUN_02046534
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- ldrb r4, [r1, #0x0]
- add r0, r5, #0x0
- bl ScriptReadWord
- add r2, r0, #0x0
- cmp r6, r4
- bne _02039D72
- ldr r1, [r5, #0x8]
- add r0, r5, #0x0
- add r1, r1, r2
- bl ScriptJump
-_02039D72:
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02039D78
-FUN_02039D78: ; 0x02039D78
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x9
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- add r6, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- ldrb r4, [r1, #0x0]
- add r0, r5, #0x0
- bl ScriptReadWord
- add r2, r0, #0x0
- ldr r0, [r6, #0x0]
- cmp r0, r4
- bne _02039DA8
- ldr r1, [r5, #0x8]
- add r0, r5, #0x0
- add r1, r1, r2
- bl ScriptJump
-_02039DA8:
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start ScrCmd_call
-ScrCmd_call: ; 0x02039DAC
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadWord
- add r2, r0, #0x0
- ldr r1, [r4, #0x8]
- add r0, r4, #0x0
- add r1, r1, r2
- bl ScriptCall
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start ScrCmd_return
-ScrCmd_return: ; 0x02039DC4
- push {r3, lr}
- bl ScriptReturn
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start ScrCmd_goto_if
-ScrCmd_goto_if: ; 0x02039DD0
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r4, [r2, #0x0]
- bl ScriptReadWord
- add r1, r0, #0x0
- lsl r0, r4, #0x1
- add r3, r4, r0
- ldr r0, _02039E00 ; =sScriptConditionTable
- ldrb r2, [r5, #0x2]
- add r0, r0, r3
- ldrb r0, [r2, r0]
- cmp r0, #0x1
- bne _02039DFC
- ldr r2, [r5, #0x8]
- add r0, r5, #0x0
- add r1, r2, r1
- bl ScriptJump
-_02039DFC:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02039E00: .word sScriptConditionTable
-
- thumb_func_start ScrCmd_call_if
-ScrCmd_call_if: ; 0x02039E04
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r4, [r2, #0x0]
- bl ScriptReadWord
- add r1, r0, #0x0
- lsl r0, r4, #0x1
- add r3, r4, r0
- ldr r0, _02039E34 ; =sScriptConditionTable
- ldrb r2, [r5, #0x2]
- add r0, r0, r3
- ldrb r0, [r2, r0]
- cmp r0, #0x1
- bne _02039E30
- ldr r2, [r5, #0x8]
- add r0, r5, #0x0
- add r1, r2, r1
- bl ScriptCall
-_02039E30:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02039E34: .word sScriptConditionTable
-
- thumb_func_start ScrCmd_setflag
-ScrCmd_setflag: ; 0x02039E38
- push {r4, lr}
- add r1, r0, #0x0
- add r1, #0x80
- ldr r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FlagSet
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start ScrCmd_clearflag
-ScrCmd_clearflag: ; 0x02039E50
- push {r4, lr}
- add r1, r0, #0x0
- add r1, #0x80
- ldr r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FlagClear
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start ScrCmd_checkflag
-ScrCmd_checkflag: ; 0x02039E68
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl FlagCheck
- strb r0, [r4, #0x2]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02039E84
-FUN_02039E84: ; 0x02039E84
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- ldrh r1, [r6, #0x0]
- add r0, r5, #0x0
- bl FlagCheck
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02039EC0
-FUN_02039EC0: ; 0x02039EC0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r1, r0, #0x0
- ldrh r1, [r1, #0x0]
- add r0, r4, #0x0
- bl FlagSet
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start ScrCmd_settrainerflag
-ScrCmd_settrainerflag: ; 0x02039EE8
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl TrainerFlagSet
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start ScrCmd_cleartrainerflag
-ScrCmd_cleartrainerflag: ; 0x02039F0C
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x80
- ldr r5, [r1, #0x0]
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl TrainerFlagClear
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start ScrCmd_checktrainerflag
-ScrCmd_checktrainerflag: ; 0x02039F30
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r4, [r1, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl TrainerFlagCheck
- strb r0, [r5, #0x2]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start ScrCmd_addvar
-ScrCmd_addvar: ; 0x02039F58
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- ldrh r1, [r4, #0x0]
- add r0, r1, r0
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start ScrCmd_subvar
-ScrCmd_subvar: ; 0x02039F88
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- ldrh r1, [r4, #0x0]
- sub r0, r1, r0
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start ScrCmd_setvar
-ScrCmd_setvar: ; 0x02039FB8
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start ScrCmd_copyvar
-ScrCmd_copyvar: ; 0x02039FDC
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- ldrh r0, [r0, #0x0]
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start ScrCmd_setorcopyvar
-ScrCmd_setorcopyvar: ; 0x0203A00C
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start ScrCmd_message
-ScrCmd_message: ; 0x0203A038
- push {r3, lr}
- ldr r2, [r0, #0x8]
- add r1, r2, #0x1
- str r1, [r0, #0x8]
- ldrb r2, [r2, #0x0]
- ldr r1, [r0, #0x78]
- bl MOD05_ShowMessageInField
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start ScrCmd_message_from
-ScrCmd_message_from: ; 0x0203A04C
- ; message_from bank, id
- push {r4-r6, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- mov r0, #0x1
- mov r1, #0x1a
- add r2, r5, #0x0
- mov r3, #0x20
- bl NewMsgDataFromNarc
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl MOD05_ShowMessageInField
- add r0, r5, #0x0
- bl DestroyMsgData
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0203A098
-FUN_0203A098: ; 0x0203A098
- push {r3-r6, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- mov r0, #0x1
- mov r1, #0x1a
- add r2, r5, #0x0
- mov r3, #0x20
- bl NewMsgDataFromNarc
- add r5, r0, #0x0
- mov r0, #0x0
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- mov r3, #0x1
- bl MOD05_021E2BD0
- add r0, r5, #0x0
- bl DestroyMsgData
- ldr r1, _0203A0F8 ; =FUN_0203A2F0
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x4
- pop {r3-r6, pc}
- nop
-_0203A0F8: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A0FC
-FUN_0203A0FC: ; 0x0203A0FC
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x0]
- mov r0, #0xff
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- add r3, r7, #0x0
- bl MOD05_021E2C58
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0203A13C
-FUN_0203A13C: ; 0x0203A13C
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- add r3, r7, #0x0
- bl MOD05_021E2C58
- ldr r1, _0203A184 ; =FUN_0203A2F0
- add r0, r5, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_0203A184: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A188
-FUN_0203A188: ; 0x0203A188
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- add r1, r5, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldrb r3, [r2, #0x0]
- add r1, #0xa8
- ldr r2, [r1, #0x0]
- cmp r2, #0x0
- bne _0203A1AA
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_0203A1AA:
- lsl r1, r3, #0x4
- add r1, r3, r1
- add r2, #0x90
- lsl r1, r1, #0x4
- add r4, r2, r1
- ldrh r1, [r2, r1]
- ldr r2, _0203A204 ; =0x0000FFFF
- cmp r1, r2
- bne _0203A1E2
- ldr r2, _0203A208 ; =0x0000022B
- mov r0, #0x1
- mov r1, #0x1a
- mov r3, #0x20
- bl NewMsgDataFromNarc
- add r6, r0, #0x0
- mov r0, #0x0
- str r0, [sp, #0x0]
- ldrh r2, [r4, #0x2]
- add r0, r5, #0x0
- add r1, r6, #0x0
- mov r3, #0x1
- bl MOD05_021E2BD0
- add r0, r6, #0x0
- bl DestroyMsgData
- b _0203A1F4
-_0203A1E2:
- mov r2, #0x6
- ldrsh r2, [r4, r2]
- str r2, [sp, #0x0]
- mov r2, #0x1
- str r2, [sp, #0x4]
- ldrh r2, [r4, #0x2]
- ldrh r3, [r4, #0x4]
- bl MOD05_021E2C58
-_0203A1F4:
- ldr r1, _0203A20C ; =FUN_0203A2F0
- add r0, r5, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x8
- pop {r4-r6, pc}
- nop
-_0203A204: .word 0x0000FFFF
-_0203A208: .word 0x0000022B
-_0203A20C: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A210
-FUN_0203A210: ; 0x0203A210
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r2, [r5, #0x8]
- ldr r6, [r1, #0x0]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r4, [r2, #0x0]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- ldr r1, [r5, #0x8]
- add r2, r0, #0x0
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- ldrb r3, [r1, #0x0]
- mov r1, #0x0
- add r0, sp, #0x4
- strb r1, [r0, #0x0]
- add r0, sp, #0x4
- str r0, [sp, #0x0]
- ldr r0, [r6, #0xc]
- add r1, r7, #0x0
- bl MOD06_02244210
- add r6, r0, #0x0
- add r2, sp, #0x4
- ldrb r2, [r2, #0x0]
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r4, r2
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
- mov r3, #0x1
- bl MOD05_021E2CBC
- add r0, r6, #0x0
- bl ScrStrBufs_delete
- ldr r1, _0203A284 ; =FUN_0203A2F0
- add r0, r5, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_0203A284: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A288
-FUN_0203A288: ; 0x0203A288
- push {r3-r5, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r4, r0, #0x0
- add r0, sp, #0x4
- add r1, r5, #0x0
- bl MOD05_021E2BB8
- mov r1, #0x3
- add r0, sp, #0x4
- strb r1, [r0, #0x2]
- add r0, sp, #0x4
- str r0, [sp, #0x0]
- ldr r1, [r5, #0x78]
- add r0, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x0
- bl MOD05_021E2BD0
- ldr r1, _0203A2C0 ; =FUN_0203A2F0
- add r0, r5, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-_0203A2C0: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A2C4
-FUN_0203A2C4: ; 0x0203A2C4
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- ldr r2, [r4, #0x8]
- mov r3, #0x1
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- mov r1, #0x0
- str r1, [sp, #0x0]
- ldrb r2, [r2, #0x0]
- ldr r1, [r4, #0x78]
- bl MOD05_021E2BD0
- ldr r1, _0203A2EC ; =FUN_0203A2F0
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-_0203A2EC: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A2F0
-FUN_0203A2F0: ; 0x0203A2F0
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x3
- bl FUN_02039438
- ldrb r0, [r0, #0x0]
- bl FUN_020546C8
- pop {r3, pc}
-
- thumb_func_start FUN_0203A304
-FUN_0203A304: ; 0x0203A304
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r2, r0, #0x0
- mov r0, #0x0
- str r0, [sp, #0x0]
- lsl r2, r2, #0x18
- ldr r1, [r4, #0x78]
- add r0, r4, #0x0
- lsr r2, r2, #0x18
- mov r3, #0x1
- bl MOD05_021E2BD0
- ldr r1, _0203A33C ; =FUN_0203A2F0
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-_0203A33C: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A340
-FUN_0203A340: ; 0x0203A340
- push {r3-r5, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, sp, #0x4
- add r1, r5, #0x0
- bl MOD05_021E2BB8
- lsl r2, r4, #0x18
- mov r3, #0x1
- add r0, sp, #0x4
- strb r3, [r0, #0x1]
- add r0, sp, #0x4
- str r0, [sp, #0x0]
- ldr r1, [r5, #0x78]
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl MOD05_021E2BD0
- ldr r1, _0203A384 ; =FUN_0203A2F0
- add r0, r5, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-_0203A384: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A388
-FUN_0203A388: ; 0x0203A388
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r2, r0, #0x0
- mov r3, #0x0
- str r3, [sp, #0x0]
- lsl r2, r2, #0x18
- ldr r1, [r4, #0x78]
- add r0, r4, #0x0
- lsr r2, r2, #0x18
- bl MOD05_021E2BD0
- ldr r1, _0203A3C0 ; =FUN_0203A2F0
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x4
- pop {r3-r4, pc}
- nop
-_0203A3C0: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A3C4
-FUN_0203A3C4: ; 0x0203A3C4
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xa
- bl FUN_02039438
- ldr r0, [r0, #0x0]
- bl FUN_02058488
- lsl r0, r0, #0x18
- lsr r2, r0, #0x18
- mov r0, #0x0
- str r0, [sp, #0x0]
- ldr r1, [r4, #0x78]
- add r0, r4, #0x0
- mov r3, #0x1
- bl MOD05_021E2BD0
- ldr r1, _0203A3FC ; =FUN_0203A2F0
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x4
- pop {r3-r4, pc}
- nop
-_0203A3FC: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A400
-FUN_0203A400: ; 0x0203A400
- push {r3-r5, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- ldr r1, [r5, #0x8]
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- ldrb r4, [r1, #0x0]
- bl FUN_02030F40
- cmp r0, #0x0
- bne _0203A428
- mov r0, #0x0
- str r0, [sp, #0x0]
- ldr r1, [r5, #0x78]
- add r0, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x1
- bl MOD05_021E2BD0
- b _0203A448
-_0203A428:
- add r0, sp, #0x4
- add r1, r5, #0x0
- bl MOD05_021E2BB8
- mov r1, #0x1
- add r0, sp, #0x4
- strb r1, [r0, #0x0]
- strb r1, [r0, #0x1]
- add r0, sp, #0x4
- str r0, [sp, #0x0]
- ldr r1, [r5, #0x78]
- add r0, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x0
- bl MOD05_021E2BD0
-_0203A448:
- ldr r1, _0203A458 ; =FUN_0203A2F0
- add r0, r5, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r5, pc}
- nop
-_0203A458: .word FUN_0203A2F0
-
- thumb_func_start FUN_0203A45C
-FUN_0203A45C: ; 0x0203A45C
- push {r3, lr}
- ldr r1, _0203A468 ; =FUN_0203A46C
- bl SetupNativeScript
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0203A468: .word FUN_0203A46C
-
- thumb_func_start FUN_0203A46C
-FUN_0203A46C: ; 0x0203A46C
- ldr r0, _0203A480 ; =gMain
- ldr r1, [r0, #0x48]
- mov r0, #0x3
- tst r0, r1
- beq _0203A47A
- mov r0, #0x1
- bx lr
-_0203A47A:
- mov r0, #0x0
- bx lr
- nop
-_0203A480: .word gMain
-
- thumb_func_start FUN_0203A484
-FUN_0203A484: ; 0x0203A484
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- str r0, [r4, #0x64]
- ldr r1, _0203A4A8 ; =FUN_0203A4AC
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- pop {r4, pc}
- nop
-_0203A4A8: .word FUN_0203A4AC
-
- thumb_func_start FUN_0203A4AC
-FUN_0203A4AC: ; 0x0203A4AC
- ldr r1, _0203A4CC ; =gMain
- ldr r2, [r1, #0x48]
- mov r1, #0x3
- tst r1, r2
- beq _0203A4BA
- mov r0, #0x1
- bx lr
-_0203A4BA:
- ldr r1, [r0, #0x64]
- sub r1, r1, #0x1
- str r1, [r0, #0x64]
- bne _0203A4C6
- mov r0, #0x1
- bx lr
-_0203A4C6:
- mov r0, #0x0
- bx lr
- nop
-_0203A4CC: .word gMain
-
- thumb_func_start FUN_0203A4D0
-FUN_0203A4D0: ; 0x0203A4D0
- push {r3, lr}
- ldr r1, _0203A4DC ; =FUN_0203A4E0
- bl SetupNativeScript
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0203A4DC: .word FUN_0203A4E0
-
- thumb_func_start FUN_0203A4E0
-FUN_0203A4E0: ; 0x0203A4E0
- push {r4, lr}
- ldr r1, _0203A55C ; =gMain
- ldr r2, [r1, #0x48]
- mov r1, #0x3
- add r3, r2, #0x0
- tst r3, r1
- beq _0203A4F2
- mov r0, #0x1
- pop {r4, pc}
-_0203A4F2:
- mov r3, #0x40
- tst r3, r2
- beq _0203A506
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- ldr r0, [r0, #0x38]
- bl FUN_02055304
- b _0203A556
-_0203A506:
- mov r3, #0x80
- tst r3, r2
- beq _0203A51A
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- ldr r0, [r0, #0x38]
- bl FUN_02055304
- b _0203A556
-_0203A51A:
- mov r3, #0x20
- tst r3, r2
- beq _0203A52E
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x2
- ldr r0, [r0, #0x38]
- bl FUN_02055304
- b _0203A556
-_0203A52E:
- mov r3, #0x10
- add r4, r2, #0x0
- tst r4, r3
- beq _0203A542
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x38]
- bl FUN_02055304
- b _0203A556
-_0203A542:
- lsl r1, r3, #0x6
- tst r1, r2
- beq _0203A552
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl FUN_02039460
- b _0203A556
-_0203A552:
- mov r0, #0x0
- pop {r4, pc}
-_0203A556:
- mov r0, #0x1
- pop {r4, pc}
- nop
-_0203A55C: .word gMain
-
- thumb_func_start FUN_0203A560
-FUN_0203A560: ; 0x0203A560
- push {r3, lr}
- ldr r1, _0203A56C ; =FUN_0203A570
- bl SetupNativeScript
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0203A56C: .word FUN_0203A570
-
- thumb_func_start FUN_0203A570
-FUN_0203A570: ; 0x0203A570
- ldr r0, _0203A58C ; =gMain
- ldr r1, [r0, #0x48]
- mov r0, #0x3
- tst r0, r1
- beq _0203A57E
- mov r0, #0x1
- bx lr
-_0203A57E:
- mov r0, #0xf0
- tst r0, r1
- beq _0203A588
- mov r0, #0x1
- bx lr
-_0203A588:
- mov r0, #0x0
- bx lr
- .balign 4
-_0203A58C: .word gMain
-
- thumb_func_start FUN_0203A590
-FUN_0203A590: ; 0x0203A590
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0x6
- add r0, r4, #0x0
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_02039438
- add r1, r0, #0x0
- ldr r0, [r4, #0x8]
- mov r2, #0x3
- bl FUN_020545B8
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_02039438
- add r5, #0x80
- add r4, r0, #0x0
- ldr r0, [r5, #0x0]
- ldr r0, [r0, #0xc]
- bl Sav2_PlayerData_GetOptionsAddr
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_02054608
- mov r0, #0x1
- strb r0, [r6, #0x0]
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0203A5D8
-FUN_0203A5D8: ; 0x0203A5D8
- push {r3-r5, lr}
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0x1
- add r0, r4, #0x0
- bl FUN_02039438
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x6
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_0200D0E0
- add r0, r5, #0x0
- bl FUN_02019178
- mov r0, #0x0
- strb r0, [r4, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0203A608
-FUN_0203A608: ; 0x0203A608
- push {r3-r5, lr}
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0x1
- add r0, r4, #0x0
- bl FUN_02039438
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x6
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02019178
- mov r0, #0x0
- strb r0, [r4, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0203A630
-FUN_0203A630: ; 0x0203A630
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0x31
- add r0, r4, #0x0
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x2d
- bl FUN_02039438
- add r7, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x32
- bl FUN_02039438
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- mov r1, #0x33
- bl FUN_02039438
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- mov r1, #0x2e
- bl FUN_02039438
- str r0, [sp, #0x8]
- add r0, r4, #0x0
- mov r1, #0x34
- bl FUN_02039438
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r1, [r2, #0x0]
- strh r1, [r6, #0x0]
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r1, [r2, #0x0]
- strh r1, [r7, #0x0]
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r2, [r2, #0x0]
- ldr r1, [sp, #0x0]
- strh r2, [r1, #0x0]
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r2, [r2, #0x0]
- ldr r1, [sp, #0x4]
- strh r2, [r1, #0x0]
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r2, [r2, #0x0]
- ldr r1, [sp, #0x8]
- strh r2, [r1, #0x0]
- ldr r2, [r5, #0x8]
- add r1, r2, #0x1
- str r1, [r5, #0x8]
- ldrb r1, [r2, #0x0]
- strh r1, [r0, #0x0]
- ldr r1, _0203A6C4 ; =FUN_0203A6C8
- add r0, r5, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_0203A6C4: .word FUN_0203A6C8
-
- thumb_func_start FUN_0203A6C8
-FUN_0203A6C8: ; 0x0203A6C8
- push {r4-r7, lr}
- sub sp, #0xc
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0x31
- add r0, r4, #0x0
- bl FUN_02039438
- add r7, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x32
- bl FUN_02039438
- str r0, [sp, #0x8]
- add r0, r4, #0x0
- mov r1, #0x33
- bl FUN_02039438
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- mov r1, #0x34
- bl FUN_02039438
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- mov r1, #0x2d
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x2e
- bl FUN_02039438
- add r5, r0, #0x0
- ldrh r0, [r6, #0x0]
- cmp r0, #0x0
- bne _0203A71E
- ldrh r0, [r5, #0x0]
- cmp r0, #0x0
- bne _0203A71E
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0203A71E:
- ldrh r3, [r7, #0x0]
- cmp r3, #0x0
- beq _0203A740
- ldr r0, [sp, #0x8]
- ldrh r0, [r0, #0x0]
- cmp r0, #0x0
- ldr r0, [r4, #0x8]
- bne _0203A738
- mov r1, #0x3
- mov r2, #0x1
- bl FUN_020179E0
- b _0203A740
-_0203A738:
- mov r1, #0x3
- mov r2, #0x2
- bl FUN_020179E0
-_0203A740:
- ldr r0, [sp, #0x4]
- ldrh r3, [r0, #0x0]
- cmp r3, #0x0
- beq _0203A764
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x0]
- cmp r0, #0x0
- ldr r0, [r4, #0x8]
- bne _0203A75C
- mov r1, #0x3
- mov r2, #0x4
- bl FUN_020179E0
- b _0203A764
-_0203A75C:
- mov r1, #0x3
- mov r2, #0x5
- bl FUN_020179E0
-_0203A764:
- ldrh r0, [r6, #0x0]
- cmp r0, #0x0
- beq _0203A76E
- sub r0, r0, #0x1
- strh r0, [r6, #0x0]
-_0203A76E:
- ldrh r0, [r5, #0x0]
- cmp r0, #0x0
- beq _0203A778
- sub r0, r0, #0x1
- strh r0, [r5, #0x0]
-_0203A778:
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0203A780
-FUN_0203A780: ; 0x0203A780
- push {r4-r7, lr}
- sub sp, #0x1c
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0x11
- add r0, r4, #0x0
- bl FUN_02039438
- str r0, [sp, #0x18]
- add r0, r4, #0x0
- mov r1, #0x10
- bl FUN_02039438
- add r7, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0xf
- bl FUN_02039438
- str r0, [sp, #0x14]
- ldr r0, [r5, #0x8]
- add r1, r0, #0x1
- str r1, [r5, #0x8]
- ldrb r0, [r0, #0x0]
- str r0, [sp, #0xc]
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- ldrb r0, [r1, #0x0]
- str r0, [sp, #0x10]
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- cmp r6, #0x0
- bne _0203A7E0
- add r0, r4, #0x0
- mov r1, #0xa
- bl FUN_02039438
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02058510
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
-_0203A7E0:
- ldr r0, [r4, #0x60]
- ldr r1, [sp, #0x10]
- add r2, r6, #0x0
- bl MOD05_021E8128
- ldr r0, [r4, #0x60]
- mov r1, #0x1
- bl MOD05_021E8130
- add r0, r4, #0x0
- bl MOD05_021E8158
- ldr r2, [sp, #0x18]
- ldr r0, [r5, #0x78]
- ldr r1, [sp, #0xc]
- ldr r2, [r2, #0x0]
- bl ReadMsgDataIntoString
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0x18]
- ldr r0, [r0, #0x0]
- ldr r1, [r7, #0x0]
- ldr r2, [r2, #0x0]
- bl StringExpandPlaceholders
- ldr r0, [r4, #0x60]
- bl MOD05_021E8140
- mov r3, #0x0
- str r3, [sp, #0x0]
- str r3, [sp, #0x4]
- str r3, [sp, #0x8]
- ldr r2, [r7, #0x0]
- mov r1, #0x1
- bl AddTextPrinterParameterized
- mov r0, #0x1
- add sp, #0x1c
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0203A830
-FUN_0203A830: ; 0x0203A830
- push {r3-r5, lr}
- add r1, r0, #0x0
- add r1, #0x80
- ldr r2, [r0, #0x8]
- ldr r4, [r1, #0x0]
- add r1, r2, #0x1
- str r1, [r0, #0x8]
- ldrb r5, [r2, #0x0]
- bl ScriptReadHalfword
- add r2, r0, #0x0
- ldr r0, [r4, #0x60]
- add r1, r5, #0x0
- bl MOD05_021E8128
- ldr r0, [r4, #0x60]
- mov r1, #0x1
- bl MOD05_021E8130
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0203A85C
-FUN_0203A85C: ; 0x0203A85C
- push {r3, lr}
- add r1, r0, #0x0
- add r1, #0x80
- ldr r2, [r0, #0x8]
- ldr r3, [r1, #0x0]
- add r1, r2, #0x1
- str r1, [r0, #0x8]
- ldrb r1, [r2, #0x0]
- ldr r0, [r3, #0x60]
- bl MOD05_021E8130
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0203A878
-FUN_0203A878: ; 0x0203A878
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x60]
- bl MOD05_021E8148
- cmp r0, #0x1
- bne _0203A88E
- mov r0, #0x0
- pop {r4, pc}
-_0203A88E:
- ldr r1, _0203A89C ; =FUN_0203A8A0
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- pop {r4, pc}
- nop
-_0203A89C: .word FUN_0203A8A0
-
- thumb_func_start FUN_0203A8A0
-FUN_0203A8A0: ; 0x0203A8A0
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x60]
- bl MOD05_021E8148
- cmp r0, #0x1
- bne _0203A8B4
- mov r0, #0x1
- pop {r3, pc}
-_0203A8B4:
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_0203A8B8
-FUN_0203A8B8: ; 0x0203A8B8
- push {r3-r7, lr}
- sub sp, #0x10
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0x3
- add r0, r4, #0x0
- bl FUN_02039438
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- mov r1, #0x11
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x10
- bl FUN_02039438
- add r7, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0xf
- bl FUN_02039438
- ldr r1, [r5, #0x8]
- str r0, [sp, #0x8]
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- ldrb r0, [r1, #0x0]
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- bl ScriptReadHalfword
- str r0, [sp, #0xc]
- ldr r0, [r5, #0x78]
- ldr r1, [sp, #0x0]
- ldr r2, [r6, #0x0]
- bl ReadMsgDataIntoString
- ldr r0, [sp, #0x8]
- ldr r1, [r7, #0x0]
- ldr r0, [r0, #0x0]
- ldr r2, [r6, #0x0]
- bl StringExpandPlaceholders
- ldr r0, [r4, #0x60]
- bl MOD05_021E8140
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0xc]
- bl Sav2_PlayerData_GetOptionsAddr
- add r2, r0, #0x0
- ldr r1, [r7, #0x0]
- add r0, r4, #0x0
- mov r3, #0x1
- bl FUN_02054658
- ldr r1, [sp, #0x4]
- strb r0, [r1, #0x0]
- ldr r0, [sp, #0xc]
- ldr r1, _0203A948 ; =FUN_0203A94C
- str r0, [r5, #0x64]
- add r0, r5, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-_0203A948: .word FUN_0203A94C
-
- thumb_func_start FUN_0203A94C
-FUN_0203A94C: ; 0x0203A94C
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0x3
- add r0, r5, #0x0
- bl FUN_02039438
- ldr r1, [r7, #0x64]
- add r6, r0, #0x0
- lsl r1, r1, #0x10
- add r0, r5, #0x0
- lsr r1, r1, #0x10
- bl GetVarPointer
- add r4, r0, #0x0
- ldr r0, [r5, #0x60]
- bl MOD05_021E8144
- ldrb r0, [r6, #0x0]
- ldr r5, _0203A9E8 ; =0x0000FFFF
- bl FUN_020546C8
- cmp r0, #0x1
- bne _0203A986
- mov r0, #0x2
- strh r0, [r4, #0x0]
- mov r0, #0x1
- pop {r3-r7, pc}
-_0203A986:
- ldr r0, _0203A9EC ; =gMain
- mov r1, #0x40
- ldr r0, [r0, #0x48]
- tst r1, r0
- beq _0203A994
- mov r5, #0x0
- b _0203A9B0
-_0203A994:
- mov r1, #0x80
- tst r1, r0
- beq _0203A99E
- mov r5, #0x1
- b _0203A9B0
-_0203A99E:
- mov r1, #0x20
- tst r1, r0
- beq _0203A9A8
- mov r5, #0x2
- b _0203A9B0
-_0203A9A8:
- mov r1, #0x10
- tst r1, r0
- beq _0203A9B0
- mov r5, #0x3
-_0203A9B0:
- ldr r1, _0203A9E8 ; =0x0000FFFF
- cmp r5, r1
- beq _0203A9D0
- ldrb r0, [r6, #0x0]
- bl FUN_0201BD7C
- add r7, #0x80
- ldr r0, [r7, #0x0]
- add r1, r5, #0x0
- ldr r0, [r0, #0x38]
- bl FUN_02055304
- mov r0, #0x0
- strh r0, [r4, #0x0]
- mov r0, #0x1
- pop {r3-r7, pc}
-_0203A9D0:
- mov r1, #0x1
- lsl r1, r1, #0xa
- tst r0, r1
- beq _0203A9E4
- ldrb r0, [r6, #0x0]
- bl FUN_0201BD7C
- mov r0, #0x1
- strh r0, [r4, #0x0]
- pop {r3-r7, pc}
-_0203A9E4:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-_0203A9E8: .word 0x0000FFFF
-_0203A9EC: .word gMain
-
- thumb_func_start FUN_0203A9F0
-FUN_0203A9F0: ; 0x0203A9F0
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- str r0, [r4, #0x64]
- ldr r1, _0203AA08 ; =FUN_0203AA0C
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- pop {r4, pc}
- nop
-_0203AA08: .word FUN_0203AA0C
-
- thumb_func_start FUN_0203AA0C
-FUN_0203AA0C: ; 0x0203AA0C
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r1, [r5, #0x64]
- add r0, #0x80
- lsl r1, r1, #0x10
- ldr r0, [r0, #0x0]
- lsr r1, r1, #0x10
- bl GetVarPointer
- add r4, r0, #0x0
- ldr r0, _0203AA88 ; =gMain
- ldr r1, _0203AA8C ; =0x0000FFFF
- ldr r2, [r0, #0x48]
- mov r0, #0x3
- add r3, r2, #0x0
- tst r3, r0
- beq _0203AA36
- mov r0, #0x0
- strh r0, [r4, #0x0]
- mov r0, #0x1
- pop {r3-r5, pc}
-_0203AA36:
- mov r3, #0x40
- tst r3, r2
- beq _0203AA40
- mov r1, #0x0
- b _0203AA5C
-_0203AA40:
- mov r3, #0x80
- tst r3, r2
- beq _0203AA4A
- mov r1, #0x1
- b _0203AA5C
-_0203AA4A:
- mov r3, #0x20
- tst r3, r2
- beq _0203AA54
- mov r1, #0x2
- b _0203AA5C
-_0203AA54:
- mov r3, #0x10
- tst r3, r2
- beq _0203AA5C
- add r1, r0, #0x0
-_0203AA5C:
- ldr r0, _0203AA8C ; =0x0000FFFF
- cmp r1, r0
- beq _0203AA74
- add r5, #0x80
- ldr r0, [r5, #0x0]
- ldr r0, [r0, #0x38]
- bl FUN_02055304
- mov r0, #0x0
- strh r0, [r4, #0x0]
- mov r0, #0x1
- pop {r3-r5, pc}
-_0203AA74:
- mov r0, #0x1
- lsl r0, r0, #0xa
- tst r0, r2
- beq _0203AA82
- mov r0, #0x1
- strh r0, [r4, #0x0]
- pop {r3-r5, pc}
-_0203AA82:
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_0203AA88: .word gMain
-_0203AA8C: .word 0x0000FFFF
-
- thumb_func_start FUN_0203AA90
-FUN_0203AA90: ; 0x0203AA90
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl FUN_02039460
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0203AAA0
-FUN_0203AAA0: ; 0x0203AAA0
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- mov r1, #0x2
- add r0, r4, #0x0
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r7, r0, #0x0
- mov r0, #0x0
- str r0, [sp, #0x0]
- mov r0, #0x4
- str r0, [sp, #0x4]
- ldr r0, [r4, #0x8]
- ldr r2, _0203AAF4 ; =0x000003D9
- mov r1, #0x3
- mov r3, #0xb
- bl FUN_0200CB00
- mov r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x8]
- ldr r1, _0203AAF8 ; =UNK_020F34E0
- ldr r2, _0203AAF4 ; =0x000003D9
- mov r3, #0xb
- bl Std_CreateYesNoMenu
- str r0, [r6, #0x0]
- ldr r1, _0203AAFC ; =FUN_0203AB00
- add r0, r5, #0x0
- str r7, [r5, #0x64]
- bl SetupNativeScript
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_0203AAF4: .word 0x000003D9
-_0203AAF8: .word UNK_020F34E0
-_0203AAFC: .word FUN_0203AB00
-
- thumb_func_start FUN_0203AB00
-FUN_0203AB00: ; 0x0203AB00
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r6, [r0, #0x0]
- mov r1, #0x2
- add r0, r6, #0x0
- bl FUN_02039438
- ldr r1, [r5, #0x64]
- add r4, r0, #0x0
- lsl r1, r1, #0x10
- add r0, r6, #0x0
- lsr r1, r1, #0x10
- bl GetVarPointer
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- mov r1, #0x4
- bl FUN_020021AC
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- bne _0203AB34
- mov r0, #0x0
- pop {r4-r6, pc}
-_0203AB34:
- cmp r0, #0x0
- bne _0203AB3C
- mov r0, #0x0
- b _0203AB3E
-_0203AB3C:
- mov r0, #0x1
-_0203AB3E:
- strh r0, [r5, #0x0]
- mov r0, #0x1
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0203AB44
-FUN_0203AB44: ; 0x0203AB44
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- bl FUN_02039438
- add r5, #0x80
- add r4, r0, #0x0
- ldr r0, [r5, #0x0]
- mov r1, #0x12
- bl FUN_02039438
- add r5, r0, #0x0
- ldr r1, _0203AB70 ; =0x000003E2
- add r0, r4, #0x0
- bl FUN_0200D858
- str r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_0203AB70: .word 0x000003E2
-
- thumb_func_start FUN_0203AB74
-FUN_0203AB74: ; 0x0203AB74
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x12
- bl FUN_02039438
- ldr r0, [r0, #0x0]
- bl FUN_0200DBFC
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0203AB8C
-FUN_0203AB8C: ; 0x0203AB8C
- push {r4-r7, lr}
- sub sp, #0x2c
- add r5, r0, #0x0
- add r0, #0x80
- ldr r6, [r0, #0x0]
- mov r1, #0x0
- add r0, r6, #0x0
- bl FUN_02039438
- str r0, [sp, #0x1c]
- add r0, r6, #0x0
- mov r1, #0xf
- bl FUN_02039438
- str r0, [sp, #0x20]
- ldr r0, [r5, #0x8]
- add r1, r0, #0x1
- str r1, [r5, #0x8]
- ldrb r0, [r0, #0x0]
- add r2, r1, #0x1
- str r0, [sp, #0x18]
- str r2, [r5, #0x8]
- ldrb r0, [r1, #0x0]
- add r1, r2, #0x1
- str r0, [sp, #0x14]
- str r1, [r5, #0x8]
- ldrb r7, [r2, #0x0]
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- str r0, [sp, #0x24]
- ldr r1, [sp, #0x24]
- add r0, r6, #0x0
- bl GetVarPointer
- str r0, [sp, #0x28]
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- bl FUN_02039438
- ldr r1, [sp, #0x28]
- str r4, [sp, #0x0]
- str r1, [sp, #0x4]
- ldr r1, [sp, #0x20]
- add r3, r7, #0x0
- ldr r1, [r1, #0x0]
- str r1, [sp, #0x8]
- str r0, [sp, #0xc]
- mov r0, #0x0
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- add r0, r6, #0x0
- bl MOD05_021E1BF8
- ldr r1, [sp, #0x1c]
- str r0, [r1, #0x0]
- ldr r0, [sp, #0x24]
- str r0, [r5, #0x64]
- mov r0, #0x1
- add sp, #0x2c
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0203AC14
-FUN_0203AC14: ; 0x0203AC14
- push {r4-r7, lr}
- sub sp, #0x2c
- add r5, r0, #0x0
- add r0, #0x80
- ldr r6, [r0, #0x0]
- mov r1, #0x0
- add r0, r6, #0x0
- bl FUN_02039438
- str r0, [sp, #0x1c]
- add r0, r6, #0x0
- mov r1, #0xf
- bl FUN_02039438
- str r0, [sp, #0x20]
- ldr r0, [r5, #0x8]
- add r1, r0, #0x1
- str r1, [r5, #0x8]
- ldrb r0, [r0, #0x0]
- add r2, r1, #0x1
- str r0, [sp, #0x18]
- str r2, [r5, #0x8]
- ldrb r0, [r1, #0x0]
- add r1, r2, #0x1
- str r0, [sp, #0x14]
- str r1, [r5, #0x8]
- ldrb r7, [r2, #0x0]
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- str r0, [sp, #0x24]
- ldr r1, [sp, #0x24]
- add r0, r6, #0x0
- bl GetVarPointer
- str r0, [sp, #0x28]
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- bl FUN_02039438
- ldr r1, [sp, #0x28]
- str r4, [sp, #0x0]
- str r1, [sp, #0x4]
- ldr r1, [sp, #0x20]
- add r3, r7, #0x0
- ldr r1, [r1, #0x0]
- str r1, [sp, #0x8]
- str r0, [sp, #0xc]
- ldr r0, [r5, #0x78]
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- add r0, r6, #0x0
- bl MOD05_021E1BF8
- ldr r1, [sp, #0x1c]
- str r0, [r1, #0x0]
- ldr r0, [sp, #0x24]
- str r0, [r5, #0x64]
- mov r0, #0x1
- add sp, #0x2c
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0203AC9C
-FUN_0203AC9C: ; 0x0203AC9C
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02039438
- ldr r1, [r4, #0x8]
- add r3, r1, #0x1
- str r3, [r4, #0x8]
- ldrb r1, [r1, #0x0]
- add r2, r3, #0x1
- str r2, [r4, #0x8]
- ldrb r2, [r3, #0x0]
- ldr r0, [r0, #0x0]
- bl MOD05_021E1C4C
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0203ACC4
-FUN_0203ACC4: ; 0x0203ACC4
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r2, r0, #0x0
- ldr r0, [r4, #0x0]
- add r1, r6, #0x0
- bl MOD05_021E1C4C
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0203AD08
-FUN_0203AD08: ; 0x0203AD08
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02039438
- ldr r0, [r0, #0x0]
- bl MOD05_021E1C54
- ldr r1, _0203AD28 ; =FUN_0203AD2C
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-_0203AD28: .word FUN_0203AD2C
-
- thumb_func_start FUN_0203AD2C
-FUN_0203AD2C: ; 0x0203AD2C
- push {r3, lr}
- add r1, r0, #0x0
- ldr r1, [r1, #0x64]
- add r0, #0x80
- lsl r1, r1, #0x10
- ldr r0, [r0, #0x0]
- lsr r1, r1, #0x10
- bl GetVarPointer
- ldrh r1, [r0, #0x0]
- ldr r0, _0203AD50 ; =0x0000EEEE
- cmp r1, r0
- beq _0203AD4A
- mov r0, #0x1
- pop {r3, pc}
-_0203AD4A:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_0203AD50: .word 0x0000EEEE
-
- thumb_func_start FUN_0203AD54
-FUN_0203AD54: ; 0x0203AD54
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02039438
- ldr r0, [r0, #0x0]
- bl MOD05_021E1C54
- ldr r1, _0203AD74 ; =FUN_0203AD78
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-_0203AD74: .word FUN_0203AD78
-
- thumb_func_start FUN_0203AD78
-FUN_0203AD78: ; 0x0203AD78
- push {r4-r6, lr}
- add r1, r0, #0x0
- add r0, #0x80
- ldr r1, [r1, #0x64]
- ldr r5, [r0, #0x0]
- lsl r1, r1, #0x10
- add r0, r5, #0x0
- lsr r1, r1, #0x10
- bl GetVarPointer
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_02039438
- add r6, r0, #0x0
- ldrh r1, [r4, #0x0]
- ldr r0, _0203ADC0 ; =0x0000EEEE
- cmp r1, r0
- bne _0203ADBC
- ldr r0, [r5, #0x78]
- bl FUN_02052714
- cmp r0, #0x0
- beq _0203ADB8
- mov r0, #0x8
- strh r0, [r4, #0x0]
- ldr r0, [r6, #0x0]
- bl MOD05_021E1ECC
- mov r0, #0x1
- pop {r4-r6, pc}
-_0203ADB8:
- mov r0, #0x0
- pop {r4-r6, pc}
-_0203ADBC:
- mov r0, #0x1
- pop {r4-r6, pc}
- .balign 4
-_0203ADC0: .word 0x0000EEEE
-
- thumb_func_start FUN_0203ADC4
-FUN_0203ADC4: ; 0x0203ADC4
- push {r4-r7, lr}
- sub sp, #0x2c
- add r5, r0, #0x0
- add r0, #0x80
- ldr r6, [r0, #0x0]
- mov r1, #0x0
- add r0, r6, #0x0
- bl FUN_02039438
- str r0, [sp, #0x1c]
- add r0, r6, #0x0
- mov r1, #0xf
- bl FUN_02039438
- str r0, [sp, #0x20]
- ldr r0, [r5, #0x8]
- add r1, r0, #0x1
- str r1, [r5, #0x8]
- ldrb r0, [r0, #0x0]
- add r2, r1, #0x1
- str r0, [sp, #0x18]
- str r2, [r5, #0x8]
- ldrb r0, [r1, #0x0]
- add r1, r2, #0x1
- str r0, [sp, #0x14]
- str r1, [r5, #0x8]
- ldrb r7, [r2, #0x0]
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- str r0, [sp, #0x24]
- ldr r1, [sp, #0x24]
- add r0, r6, #0x0
- bl GetVarPointer
- str r0, [sp, #0x28]
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- bl FUN_02039438
- ldr r1, [sp, #0x28]
- str r4, [sp, #0x0]
- str r1, [sp, #0x4]
- ldr r1, [sp, #0x20]
- add r3, r7, #0x0
- ldr r1, [r1, #0x0]
- str r1, [sp, #0x8]
- str r0, [sp, #0xc]
- mov r0, #0x0
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- add r0, r6, #0x0
- bl MOD05_021E1F34
- ldr r1, [sp, #0x1c]
- str r0, [r1, #0x0]
- ldr r0, [sp, #0x24]
- str r0, [r5, #0x64]
- mov r0, #0x1
- add sp, #0x2c
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0203AE4C
-FUN_0203AE4C: ; 0x0203AE4C
- push {r4-r7, lr}
- sub sp, #0x2c
- add r5, r0, #0x0
- add r0, #0x80
- ldr r6, [r0, #0x0]
- mov r1, #0x0
- add r0, r6, #0x0
- bl FUN_02039438
- str r0, [sp, #0x1c]
- add r0, r6, #0x0
- mov r1, #0xf
- bl FUN_02039438
- str r0, [sp, #0x20]
- ldr r0, [r5, #0x8]
- add r1, r0, #0x1
- str r1, [r5, #0x8]
- ldrb r0, [r0, #0x0]
- add r2, r1, #0x1
- str r0, [sp, #0x18]
- str r2, [r5, #0x8]
- ldrb r0, [r1, #0x0]
- add r1, r2, #0x1
- str r0, [sp, #0x14]
- str r1, [r5, #0x8]
- ldrb r7, [r2, #0x0]
- add r0, r1, #0x1
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- ldrb r4, [r1, #0x0]
- bl ScriptReadHalfword
- str r0, [sp, #0x24]
- ldr r1, [sp, #0x24]
- add r0, r6, #0x0
- bl GetVarPointer
- str r0, [sp, #0x28]
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- bl FUN_02039438
- ldr r1, [sp, #0x28]
- str r4, [sp, #0x0]
- str r1, [sp, #0x4]
- ldr r1, [sp, #0x20]
- add r3, r7, #0x0
- ldr r1, [r1, #0x0]
- str r1, [sp, #0x8]
- str r0, [sp, #0xc]
- ldr r0, [r5, #0x78]
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- add r0, r6, #0x0
- bl MOD05_021E1F34
- ldr r1, [sp, #0x1c]
- str r0, [r1, #0x0]
- ldr r0, [sp, #0x24]
- str r0, [r5, #0x64]
- mov r0, #0x1
- add sp, #0x2c
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0203AED4
-FUN_0203AED4: ; 0x0203AED4
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r3, r0, #0x0
- lsl r1, r6, #0x18
- lsl r2, r7, #0x18
- lsl r3, r3, #0x18
- ldr r0, [r4, #0x0]
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl MOD05_021E1F58
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0203AF34
-FUN_0203AF34: ; 0x0203AF34
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02039438
- ldr r0, [r0, #0x0]
- bl MOD05_021E1F60
- ldr r1, _0203AF54 ; =FUN_0203AD2C
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-_0203AF54: .word FUN_0203AD2C
-
- thumb_func_start FUN_0203AF58
-FUN_0203AF58: ; 0x0203AF58
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02039438
- ldr r2, [r4, #0x8]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r1, [r2, #0x0]
- ldr r0, [r0, #0x0]
- bl MOD05_021E26CC
- ldr r1, _0203AF80 ; =FUN_0203AD2C
- add r0, r4, #0x0
- bl SetupNativeScript
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-_0203AF80: .word FUN_0203AD2C
-
- thumb_func_start FUN_0203AF84
-FUN_0203AF84: ; 0x0203AF84
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02039438
- ldr r2, [r4, #0x8]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r1, [r2, #0x0]
- ldr r0, [r0, #0x0]
- bl MOD05_021E2B80
- mov r0, #0x1
- pop {r4, pc}
-
- thumb_func_start FUN_0203AFA4
-FUN_0203AFA4: ; 0x0203AFA4
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- bl FUN_02039438
- ldr r2, [r4, #0x8]
- add r1, r2, #0x1
- str r1, [r4, #0x8]
- ldrb r1, [r2, #0x0]
- ldr r0, [r0, #0x0]
- bl MOD05_021E2B9C
- mov r0, #0x1
- pop {r4, pc}
-
thumb_func_start FUN_0203AFC4
FUN_0203AFC4: ; 0x0203AFC4
push {r4-r6, lr}
diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s
index 0920c2fb..6d593845 100644
--- a/arm9/asm/unk_0200CABC.s
+++ b/arm9/asm/unk_0200CABC.s
@@ -2463,7 +2463,7 @@ _0200DE40:
bl FUN_0201FDEC
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x34
pop {r4-r7, pc}
nop
diff --git a/arm9/asm/unk_02015E30.s b/arm9/asm/unk_02015E30.s
deleted file mode 100644
index 9ca09399..00000000
--- a/arm9/asm/unk_02015E30.s
+++ /dev/null
@@ -1,72 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global UNK_021C4898
-UNK_021C4898: ; 0x021C4898
- .space 0x20
-
- .text
-
- thumb_func_start FUN_02015E30
-FUN_02015E30: ; 0x02015E30
- ldr r0, _02015E38 ; =UNK_021C4898
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-_02015E38: .word UNK_021C4898
-
- thumb_func_start FUN_02015E3C
-FUN_02015E3C: ; 0x02015E3C
- push {r3, lr}
- ldr r1, _02015E5C ; =UNK_021C4898
- mov r2, #0x1
- str r2, [r1, #0x0]
- mov r2, #0x0
- str r2, [r1, #0x10]
- str r2, [r1, #0x14]
- str r2, [r1, #0x8]
- str r2, [r1, #0xc]
- str r0, [r1, #0x4]
- bl FUN_02020BF4
- ldr r2, _02015E5C ; =UNK_021C4898
- str r0, [r2, #0x18]
- str r1, [r2, #0x1c]
- pop {r3, pc}
- .balign 4
-_02015E5C: .word UNK_021C4898
-
- thumb_func_start FUN_02015E60
-FUN_02015E60: ; 0x02015E60
- push {r3-r5, lr}
- ldr r0, _02015E9C ; =UNK_021C4898
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02015E9A
- bl FUN_02020BF4
- ldr r2, _02015E9C ; =UNK_021C4898
- ldr r3, [r2, #0x18]
- ldr r2, [r2, #0x1c]
- sub r0, r0, r3
- sbc r1, r2
- bl FUN_02020C14
- add r5, r1, #0x0
- ldr r1, _02015E9C ; =UNK_021C4898
- add r4, r0, #0x0
- ldr r3, [r1, #0x8]
- ldr r2, [r1, #0xc]
- sub r0, r3, r4
- sbc r2, r5
- bhs _02015E9A
- ldr r0, [r1, #0x4]
- sub r1, r4, r3
- bl AddIGTSeconds
- ldr r0, _02015E9C ; =UNK_021C4898
- str r4, [r0, #0x8]
- str r5, [r0, #0xc]
-_02015E9A:
- pop {r3-r5, pc}
- .balign 4
-_02015E9C: .word UNK_021C4898
diff --git a/arm9/asm/unk_020166C8.s b/arm9/asm/unk_020166C8.s
deleted file mode 100644
index 3c251114..00000000
--- a/arm9/asm/unk_020166C8.s
+++ /dev/null
@@ -1,665 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global UNK_021C4D28
-UNK_021C4D28: ; 0x021C4D28
- .space 0x1c
-
- .text
-
- thumb_func_start FUN_020166C8
-FUN_020166C8: ; 0x020166C8
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- str r0, [sp, #0x4]
- add r0, #0x18
- add r6, r2, #0x0
- str r0, [sp, #0x4]
- cmp r6, r0
- bhs _020166E0
- add r6, r0, #0x0
-_020166E0:
- cmp r3, #0x0
- beq _020166FE
- mov r0, #0x3
- tst r0, r3
- beq _020166F4
- mov r0, #0x3
-_020166EC:
- add r3, r3, #0x1
- add r1, r3, #0x0
- tst r1, r0
- bne _020166EC
-_020166F4:
- mov r0, #0x0
- add r1, r3, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
-_020166FE:
- ldr r1, [sp, #0x4]
- lsl r7, r6, #0x1
- lsl r2, r1, #0x1
- add r1, r1, r2
- add r1, r1, #0x1
- lsl r1, r1, #0x2
- add r1, r7, r1
- mov r0, #0x0
- add r1, r6, r1
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- ldr r1, _020167F0 ; =UNK_021C4D28
- str r0, [r1, #0x0]
- ldr r1, [sp, #0x4]
- add r1, r1, #0x1
- lsl r1, r1, #0x2
- add r1, r0, r1
- ldr r0, _020167F0 ; =UNK_021C4D28
- str r1, [r0, #0x4]
- ldr r0, [sp, #0x4]
- lsl r0, r0, #0x2
- add r2, r1, r0
- ldr r1, _020167F0 ; =UNK_021C4D28
- str r2, [r1, #0x8]
- add r1, r2, r0
- ldr r0, _020167F0 ; =UNK_021C4D28
- str r1, [r0, #0xc]
- add r1, r1, r7
- str r1, [r0, #0x10]
- strh r6, [r0, #0x14]
- strh r4, [r0, #0x16]
- ldr r0, [sp, #0x4]
- mov r7, #0x0
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- ldr r0, _020167F0 ; =UNK_021C4D28
- cmp r4, #0x0
- strh r1, [r0, #0x1a]
- strh r1, [r0, #0x18]
- bls _020167A0
- str r7, [sp, #0x0]
-_02016752:
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- beq _0201675C
- cmp r0, #0x2
- beq _02016768
-_0201675C:
- ldr r1, [r5, #0x0]
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- b _02016772
-_02016768:
- ldr r1, [r5, #0x0]
- mov r0, #0x2
- mov r2, #0x4
- bl OS_AllocFromArenaHi
-_02016772:
- cmp r0, #0x0
- beq _0201678E
- ldr r1, [r5, #0x0]
- mov r2, #0x0
- bl tempName_NNS_FndCreateExpHeapEx
- ldr r1, _020167F0 ; =UNK_021C4D28
- ldr r2, [r1, #0x0]
- ldr r1, [sp, #0x0]
- str r0, [r2, r1]
- ldr r0, _020167F0 ; =UNK_021C4D28
- ldr r0, [r0, #0x10]
- strb r7, [r0, r7]
- b _02016792
-_0201678E:
- bl ErrorHandling
-_02016792:
- ldr r0, [sp, #0x0]
- add r7, r7, #0x1
- add r0, r0, #0x4
- add r5, #0x8
- str r0, [sp, #0x0]
- cmp r7, r4
- blo _02016752
-_020167A0:
- ldr r0, [sp, #0x4]
- add r1, r0, #0x1
- cmp r4, r1
- bhs _020167C0
- ldr r3, _020167F0 ; =UNK_021C4D28
- lsl r2, r4, #0x2
- mov r0, #0x0
-_020167AE:
- ldr r5, [r3, #0x0]
- str r0, [r5, r2]
- ldrh r7, [r3, #0x1a]
- ldr r5, [r3, #0x10]
- add r2, r2, #0x4
- strb r7, [r5, r4]
- add r4, r4, #0x1
- cmp r4, r1
- blo _020167AE
-_020167C0:
- cmp r4, r6
- bhs _020167D2
- ldr r0, _020167F0 ; =UNK_021C4D28
-_020167C6:
- ldrh r2, [r0, #0x1a]
- ldr r1, [r0, #0x10]
- strb r2, [r1, r4]
- add r4, r4, #0x1
- cmp r4, r6
- blo _020167C6
-_020167D2:
- mov r4, #0x0
- cmp r6, #0x0
- bls _020167EA
- ldr r0, _020167F0 ; =UNK_021C4D28
- add r3, r4, #0x0
- add r2, r4, #0x0
-_020167DE:
- ldr r1, [r0, #0xc]
- add r4, r4, #0x1
- strh r2, [r1, r3]
- add r3, r3, #0x2
- cmp r4, r6
- blo _020167DE
-_020167EA:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_020167F0: .word UNK_021C4D28
-
- thumb_func_start FUN_020167F4
-FUN_020167F4: ; 0x020167F4
- ldr r1, _02016818 ; =UNK_021C4D28
- ldrh r0, [r1, #0x16]
- ldrh r3, [r1, #0x18]
- cmp r0, r3
- bge _02016812
- ldr r2, [r1, #0x0]
- lsl r1, r0, #0x2
- add r2, r2, r1
-_02016804:
- ldr r1, [r2, #0x0]
- cmp r1, #0x0
- beq _02016816
- add r0, r0, #0x1
- add r2, r2, #0x4
- cmp r0, r3
- blt _02016804
-_02016812:
- mov r0, #0x0
- mvn r0, r0
-_02016816:
- bx lr
- .balign 4
-_02016818: .word UNK_021C4D28
-
- thumb_func_start FUN_0201681C
-FUN_0201681C: ; 0x0201681C
- push {r3, lr}
- mov r3, #0x4
- bl FUN_02016834
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02016828
-FUN_02016828: ; 0x02016828
- push {r3, lr}
- mov r3, #0x3
- mvn r3, r3
- bl FUN_02016834
- pop {r3, pc}
-
- thumb_func_start FUN_02016834
-FUN_02016834: ; 0x02016834
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r5, r1, #0x0
- str r2, [sp, #0x0]
- add r7, r3, #0x0
- bl OS_GetProcMode
- cmp r0, #0x12
- bne _0201684C
- bl ErrorHandling
-_0201684C:
- ldr r1, _020168CC ; =UNK_021C4D28
- ldr r0, [r1, #0x10]
- ldrh r3, [r1, #0x1a]
- ldrb r2, [r0, r5]
- cmp r3, r2
- bne _020168C2
- ldrb r0, [r0, r4]
- ldr r1, [r1, #0x0]
- lsl r0, r0, #0x2
- ldr r6, [r1, r0]
- cmp r6, #0x0
- beq _020168BC
- ldr r1, [sp, #0x0]
- add r0, r6, #0x0
- add r2, r7, #0x0
- bl tempName_NNS_FndAllocFromExpHeapEx
- str r0, [sp, #0x4]
- cmp r0, #0x0
- beq _020168B6
- bl FUN_020167F4
- add r7, r0, #0x0
- bmi _020168B0
- ldr r0, [sp, #0x4]
- ldr r1, [sp, #0x0]
- mov r2, #0x0
- lsl r4, r7, #0x2
- bl tempName_NNS_FndCreateExpHeapEx
- ldr r1, _020168CC ; =UNK_021C4D28
- ldr r2, [r1, #0x0]
- str r0, [r2, r4]
- ldr r0, [r1, #0x0]
- ldr r0, [r0, r4]
- cmp r0, #0x0
- beq _020168AA
- ldr r0, [r1, #0x4]
- str r6, [r0, r4]
- ldr r0, [sp, #0x4]
- ldr r2, [r1, #0x8]
- add sp, #0x8
- str r0, [r2, r4]
- ldr r0, [r1, #0x10]
- strb r7, [r0, r5]
- mov r0, #0x1
- pop {r3-r7, pc}
-_020168AA:
- bl ErrorHandling
- b _020168C6
-_020168B0:
- bl ErrorHandling
- b _020168C6
-_020168B6:
- bl ErrorHandling
- b _020168C6
-_020168BC:
- bl ErrorHandling
- b _020168C6
-_020168C2:
- bl ErrorHandling
-_020168C6:
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020168CC: .word UNK_021C4D28
-
- thumb_func_start FUN_020168D0
-FUN_020168D0: ; 0x020168D0
- push {r4, lr}
- add r4, r0, #0x0
- bl OS_GetProcMode
- cmp r0, #0x12
- bne _020168E0
- bl ErrorHandling
-_020168E0:
- ldr r0, _02016940 ; =UNK_021C4D28
- ldr r1, [r0, #0x0]
- ldr r0, [r0, #0x10]
- ldrb r0, [r0, r4]
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- cmp r0, #0x0
- beq _0201693E
- bl thunk_FUN_020adc8c
- ldr r1, _02016940 ; =UNK_021C4D28
- ldr r0, [r1, #0x10]
- ldrb r0, [r0, r4]
- lsl r2, r0, #0x2
- ldr r0, [r1, #0x4]
- ldr r1, [r1, #0x8]
- ldr r0, [r0, r2]
- ldr r1, [r1, r2]
- cmp r0, #0x0
- beq _02016912
- cmp r1, #0x0
- beq _02016912
- bl FUN_020ADDF0
- b _02016916
-_02016912:
- bl ErrorHandling
-_02016916:
- ldr r1, _02016940 ; =UNK_021C4D28
- mov r0, #0x0
- ldr r2, [r1, #0x10]
- ldr r3, [r1, #0x0]
- ldrb r2, [r2, r4]
- lsl r2, r2, #0x2
- str r0, [r3, r2]
- ldr r2, [r1, #0x10]
- ldr r3, [r1, #0x4]
- ldrb r2, [r2, r4]
- lsl r2, r2, #0x2
- str r0, [r3, r2]
- ldr r2, [r1, #0x10]
- ldr r3, [r1, #0x8]
- ldrb r2, [r2, r4]
- lsl r2, r2, #0x2
- str r0, [r3, r2]
- ldrh r2, [r1, #0x1a]
- ldr r0, [r1, #0x10]
- strb r2, [r0, r4]
-_0201693E:
- pop {r4, pc}
- .balign 4
-_02016940: .word UNK_021C4D28
-
- thumb_func_start FUN_02016944
-FUN_02016944: ; 0x02016944
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r7, r2, #0x0
- add r6, r3, #0x0
- cmp r5, #0x0
- bne _02016956
- bl ErrorHandling
-_02016956:
- bl OS_DisableInterrupts
- add r4, #0x10
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r7, #0x0
- bl tempName_NNS_FndAllocFromExpHeapEx
- add r4, r0, #0x0
- ldr r0, [sp, #0x0]
- bl OS_RestoreInterrupts
- cmp r4, #0x0
- beq _02016984
- ldr r1, [r4, #0xc]
- mov r0, #0xff
- bic r1, r0
- lsl r0, r6, #0x18
- lsr r0, r0, #0x18
- orr r0, r1
- str r0, [r4, #0xc]
- add r4, #0x10
-_02016984:
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02016988
-FUN_02016988: ; 0x02016988
- push {r3, lr}
- bl FUN_02031810
- cmp r0, #0x0
- beq _02016996
- bl PrintErrorMessageAndReset
-_02016996:
- pop {r3, pc}
-
- thumb_func_start AllocFromHeap
-AllocFromHeap: ; 0x02016998
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _020169D4 ; =UNK_021C4D28
- mov r4, #0x0
- ldrh r2, [r0, #0x14]
- cmp r5, r2
- bhs _020169BA
- ldr r2, [r0, #0x0]
- ldr r0, [r0, #0x10]
- add r3, r5, #0x0
- ldrb r0, [r0, r5]
- lsl r0, r0, #0x2
- ldr r0, [r2, r0]
- mov r2, #0x4
- bl FUN_02016944
- add r4, r0, #0x0
-_020169BA:
- cmp r4, #0x0
- beq _020169CC
- ldr r0, _020169D4 ; =UNK_021C4D28
- lsl r1, r5, #0x1
- ldr r2, [r0, #0xc]
- ldrh r0, [r2, r1]
- add r0, r0, #0x1
- strh r0, [r2, r1]
- b _020169D0
-_020169CC:
- bl FUN_02016988
-_020169D0:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_020169D4: .word UNK_021C4D28
-
- thumb_func_start AllocFromHeapAtEnd
-AllocFromHeapAtEnd: ; 0x020169D8
- push {r3-r5, lr}
- ldr r2, _02016A14 ; =UNK_021C4D28
- add r5, r0, #0x0
- ldrh r0, [r2, #0x14]
- mov r4, #0x0
- cmp r5, r0
- bhs _020169FA
- ldr r0, [r2, #0x0]
- ldr r2, [r2, #0x10]
- add r3, r5, #0x0
- ldrb r2, [r2, r5]
- lsl r2, r2, #0x2
- ldr r0, [r0, r2]
- sub r2, r4, #0x4
- bl FUN_02016944
- add r4, r0, #0x0
-_020169FA:
- cmp r4, #0x0
- beq _02016A0C
- ldr r0, _02016A14 ; =UNK_021C4D28
- lsl r1, r5, #0x1
- ldr r2, [r0, #0xc]
- ldrh r0, [r2, r1]
- add r0, r0, #0x1
- strh r0, [r2, r1]
- b _02016A10
-_02016A0C:
- bl FUN_02016988
-_02016A10:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02016A14: .word UNK_021C4D28
-
- thumb_func_start FreeToHeap
-FreeToHeap: ; 0x02016A18
- push {r3-r7, lr}
- add r6, r0, #0x0
- sub r0, r6, #0x4
- ldr r0, [r0, #0x0]
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- ldr r0, _02016A88 ; =UNK_021C4D28
- ldrh r1, [r0, #0x14]
- cmp r4, r1
- bhs _02016A80
- ldr r1, [r0, #0x0]
- ldr r0, [r0, #0x10]
- ldrb r0, [r0, r4]
- lsl r0, r0, #0x2
- ldr r7, [r1, r0]
- cmp r7, #0x0
- bne _02016A3E
- bl ErrorHandling
-_02016A3E:
- ldr r0, _02016A88 ; =UNK_021C4D28
- lsl r5, r4, #0x1
- ldr r0, [r0, #0xc]
- ldrh r0, [r0, r5]
- cmp r0, #0x0
- bne _02016A50
- add r0, r4, #0x0
- bl FUN_02016B90
-_02016A50:
- ldr r0, _02016A88 ; =UNK_021C4D28
- ldr r0, [r0, #0xc]
- ldrh r0, [r0, r5]
- cmp r0, #0x0
- bne _02016A5E
- bl ErrorHandling
-_02016A5E:
- ldr r0, _02016A88 ; =UNK_021C4D28
- ldr r1, [r0, #0xc]
- ldrh r0, [r1, r5]
- sub r0, r0, #0x1
- strh r0, [r1, r5]
- bl OS_DisableInterrupts
- sub r6, #0x10
- add r4, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- bl FUN_020ADDF0
- add r0, r4, #0x0
- bl OS_RestoreInterrupts
- pop {r3-r7, pc}
-_02016A80:
- bl ErrorHandling
- pop {r3-r7, pc}
- nop
-_02016A88: .word UNK_021C4D28
-
- thumb_func_start FUN_02016A8C
-FUN_02016A8C: ; 0x02016A8C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl OS_GetProcMode
- cmp r0, #0x12
- bne _02016A9E
- bl ErrorHandling
-_02016A9E:
- ldr r0, _02016AF4 ; =UNK_021C4D28
- ldrh r1, [r0, #0x14]
- cmp r5, r1
- bhs _02016AEE
- ldr r1, [r0, #0x0]
- ldr r0, [r0, #0x10]
- ldrb r0, [r0, r5]
- lsl r0, r0, #0x2
- ldr r6, [r1, r0]
- cmp r6, #0x0
- bne _02016AB8
- bl ErrorHandling
-_02016AB8:
- sub r0, r4, #0x4
- ldr r0, [r0, #0x0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, r5
- beq _02016AC8
- bl ErrorHandling
-_02016AC8:
- sub r4, #0x10
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_020ADDF0
- ldr r0, _02016AF4 ; =UNK_021C4D28
- lsl r4, r5, #0x1
- ldr r0, [r0, #0xc]
- ldrh r0, [r0, r4]
- cmp r0, #0x0
- bne _02016AE2
- bl ErrorHandling
-_02016AE2:
- ldr r0, _02016AF4 ; =UNK_021C4D28
- ldr r1, [r0, #0xc]
- ldrh r0, [r1, r4]
- sub r0, r0, #0x1
- strh r0, [r1, r4]
- pop {r4-r6, pc}
-_02016AEE:
- bl ErrorHandling
- pop {r4-r6, pc}
- .balign 4
-_02016AF4: .word UNK_021C4D28
-
- thumb_func_start FUN_02016AF8
-FUN_02016AF8: ; 0x02016AF8
- push {r3, lr}
- ldr r1, _02016B1C ; =UNK_021C4D28
- ldrh r2, [r1, #0x14]
- cmp r0, r2
- bhs _02016B12
- ldr r2, [r1, #0x0]
- ldr r1, [r1, #0x10]
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x2
- ldr r0, [r2, r0]
- bl FUN_020ADDC8
- pop {r3, pc}
-_02016B12:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3, pc}
- nop
-_02016B1C: .word UNK_021C4D28
-
- thumb_func_start FUN_02016B20
-FUN_02016B20: ; 0x02016B20
- push {r4, lr}
- ldr r4, _02016B40 ; =UNK_021C4D28
- ldrh r3, [r4, #0x14]
- cmp r1, r3
- bhs _02016B3A
- ldr r3, [r4, #0x0]
- ldr r4, [r4, #0x10]
- ldrb r1, [r4, r1]
- lsl r1, r1, #0x2
- ldr r1, [r3, r1]
- bl FUN_020AE82C
- pop {r4, pc}
-_02016B3A:
- bl ErrorHandling
- pop {r4, pc}
- .balign 4
-_02016B40: .word UNK_021C4D28
-
- thumb_func_start FUN_02016B44
-FUN_02016B44: ; 0x02016B44
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl OS_GetProcMode
- cmp r0, #0x12
- bne _02016B56
- bl ErrorHandling
-_02016B56:
- add r0, r5, #0x0
- sub r0, #0x10
- bl FUN_020ADDC0
- add r4, #0x10
- cmp r0, r4
- blo _02016B84
- sub r2, r5, #0x4
- ldr r0, _02016B8C ; =UNK_021C4D28
- ldr r2, [r2, #0x0]
- ldr r1, [r0, #0x0]
- lsl r2, r2, #0x18
- ldr r0, [r0, #0x10]
- lsr r2, r2, #0x18
- ldrb r0, [r0, r2]
- sub r5, #0x10
- add r2, r4, #0x0
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- add r1, r5, #0x0
- bl FUN_020ADE2C
- pop {r3-r5, pc}
-_02016B84:
- bl ErrorHandling
- pop {r3-r5, pc}
- nop
-_02016B8C: .word UNK_021C4D28
-
- thumb_func_start FUN_02016B90
-FUN_02016B90: ; 0x02016B90
- mov r0, #0x1
- bx lr
diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s
index 61fc9de5..3c92650d 100644
--- a/arm9/asm/unk_02016B94.s
+++ b/arm9/asm/unk_02016B94.s
@@ -89,8 +89,8 @@ FUN_02016BBC: ; 0x02016BBC
asr r0, r0, #0x3
and r0, r1
str r0, [r2, #0x0]
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
pop {r4, pc}
nop
_02016BF0: .word 0xC7FFFFFF
@@ -105,12 +105,12 @@ FUN_02016BF4: ; 0x02016BF4
ldr r1, [r2, #0x4]
ldr r2, [r2, #0xc]
bl GX_SetGraphicsMode
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
pop {r3, pc}
_02016C0C:
ldr r0, [r2, #0x8]
bl GXS_SetGraphicsMode
- bl FUN_0201E740
+ bl GX_DisableEngineBLayers
pop {r3, pc}
thumb_func_start FUN_02016C18
@@ -148,7 +148,7 @@ _02016C42: ; jump table (using 16-bit offset)
_02016C52:
mov r0, #0x1
add r1, r0, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldrb r3, [r4, #0x14]
ldrb r1, [r4, #0x12]
ldrb r0, [r4, #0x11]
@@ -193,7 +193,7 @@ _02016CA0:
_02016CAA:
mov r0, #0x2
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldrb r3, [r4, #0x14]
ldrb r1, [r4, #0x12]
ldrb r0, [r4, #0x11]
@@ -238,7 +238,7 @@ _02016CF8:
_02016D02:
mov r0, #0x4
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [sp, #0x8]
cmp r0, #0x0
beq _02016D18
@@ -324,7 +324,7 @@ _02016D9A:
_02016DA4:
mov r0, #0x8
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [sp, #0x8]
cmp r0, #0x0
beq _02016DBA
@@ -410,7 +410,7 @@ _02016E3C:
_02016E46:
mov r0, #0x1
add r1, r0, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldrb r3, [r4, #0x14]
ldrb r1, [r4, #0x12]
ldrb r0, [r4, #0x11]
@@ -455,7 +455,7 @@ _02016E94:
_02016E9E:
mov r0, #0x2
mov r1, #0x1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldrb r2, [r4, #0x13]
ldrb r1, [r4, #0x12]
ldrb r0, [r4, #0x11]
@@ -500,7 +500,7 @@ _02016EEC:
_02016EF6:
mov r0, #0x4
mov r1, #0x1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [sp, #0x8]
cmp r0, #0x0
beq _02016F0C
@@ -586,7 +586,7 @@ _02016F8E:
_02016F98:
mov r0, #0x8
mov r1, #0x1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [sp, #0x8]
cmp r0, #0x0
beq _02016FAE
@@ -1958,35 +1958,35 @@ _0201798E: ; jump table (using 16-bit offset)
.short _020179D6 - _0201798E - 2; case 7
_0201799E:
mov r0, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r3, pc}
_020179A6:
mov r0, #0x2
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r3, pc}
_020179AE:
mov r0, #0x4
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r3, pc}
_020179B6:
mov r0, #0x8
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r3, pc}
_020179BE:
mov r0, #0x1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r3, pc}
_020179C6:
mov r0, #0x2
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r3, pc}
_020179CE:
mov r0, #0x4
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r3, pc}
_020179D6:
mov r0, #0x8
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
_020179DC:
pop {r3, pc}
.balign 4
diff --git a/arm9/asm/unk_0201B1A8.s b/arm9/asm/unk_0201B1A8.s
index baf31fcb..05245bc6 100644
--- a/arm9/asm/unk_0201B1A8.s
+++ b/arm9/asm/unk_0201B1A8.s
@@ -199,7 +199,7 @@ FUN_0201B314: ; 0x0201B314
push {r3, lr}
mov r0, #0x1
add r1, r0, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _0201B380 ; =0x04000008
mov r1, #0x3
ldrh r2, [r0, #0x0]
diff --git a/arm9/asm/unk_0201E66C.s b/arm9/asm/unk_0201E66C.s
deleted file mode 100644
index 5f5dcb68..00000000
--- a/arm9/asm/unk_0201E66C.s
+++ /dev/null
@@ -1,197 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern gMain
-
- .section .bss
-
- .global UNK_021C599C
-UNK_021C599C: ; 0x021C599C
- .space 0x8
-
- .text
-
- thumb_func_start FUN_0201E66C
-FUN_0201E66C: ; 0x0201E66C
- push {r4, lr}
- add r4, r0, #0x0
- bl GX_ResetBankForBG
- bl GX_ResetBankForBGExtPltt
- bl GX_ResetBankForSubBG
- bl FUN_020C6034
- bl GX_ResetBankForOBJ
- bl GX_ResetBankForOBJExtPltt
- bl FUN_020C605C
- bl GX_ResetBankForSubOBJ
- bl GX_ResetBankForTex
- bl GX_ResetBankForTexPltt
- ldr r0, [r4, #0x0]
- bl GX_SetBankForBG
- ldr r0, [r4, #0x4]
- bl GX_SetBankForBGExtPltt
- ldr r0, [r4, #0x8]
- bl GX_SetBankForSubBG
- ldr r0, [r4, #0xc]
- bl GX_SetBankForSubBGExtPltt
- ldr r0, [r4, #0x10]
- bl GX_SetBankForOBJ
- ldr r0, [r4, #0x14]
- bl GX_SetBankForOBJExtPltt
- ldr r0, [r4, #0x18]
- bl GX_SetBankForSubOBJ
- ldr r0, [r4, #0x1c]
- bl GX_SetBankForSubOBJExtPltt
- ldr r0, [r4, #0x20]
- bl GX_SetBankForTex
- ldr r0, [r4, #0x24]
- bl GX_SetBankForTexPltt
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201E6D8
-FUN_0201E6D8: ; 0x0201E6D8
- ldr r0, _0201E6E0 ; =UNK_021C599C
- mov r1, #0x0
- str r1, [r0, #0x4]
- bx lr
- .balign 4
-_0201E6E0: .word UNK_021C599C
-
- thumb_func_start FUN_0201E6E4
-FUN_0201E6E4: ; 0x0201E6E4
- cmp r1, #0x1
- bne _0201E6F2
- ldr r1, _0201E718 ; =UNK_021C599C
- ldr r1, [r1, #0x4]
- tst r1, r0
- beq _0201E6FA
- bx lr
-_0201E6F2:
- ldr r1, _0201E718 ; =UNK_021C599C
- ldr r1, [r1, #0x4]
- tst r1, r0
- beq _0201E714
-_0201E6FA:
- ldr r1, _0201E718 ; =UNK_021C599C
- ldr r2, [r1, #0x4]
- add r3, r2, #0x0
- eor r3, r0
- mov r2, #0x1
- lsl r2, r2, #0x1a
- str r3, [r1, #0x4]
- ldr r1, [r2, #0x0]
- ldr r0, _0201E71C ; =0xFFFFE0FF
- and r1, r0
- lsl r0, r3, #0x8
- orr r0, r1
- str r0, [r2, #0x0]
-_0201E714:
- bx lr
- nop
-_0201E718: .word UNK_021C599C
-_0201E71C: .word 0xFFFFE0FF
-
- thumb_func_start FUN_0201E720
-FUN_0201E720: ; 0x0201E720
- ldr r1, _0201E738 ; =UNK_021C599C
- mov r3, #0x1
- str r0, [r1, #0x4]
- lsl r3, r3, #0x1a
- ldr r2, [r3, #0x0]
- ldr r1, _0201E73C ; =0xFFFFE0FF
- lsl r0, r0, #0x8
- and r1, r2
- orr r0, r1
- str r0, [r3, #0x0]
- bx lr
- nop
-_0201E738: .word UNK_021C599C
-_0201E73C: .word 0xFFFFE0FF
-
- thumb_func_start FUN_0201E740
-FUN_0201E740: ; 0x0201E740
- ldr r0, _0201E748 ; =UNK_021C599C
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-_0201E748: .word UNK_021C599C
-
- thumb_func_start FUN_0201E74C
-FUN_0201E74C: ; 0x0201E74C
- cmp r1, #0x1
- bne _0201E75A
- ldr r1, _0201E77C ; =UNK_021C599C
- ldr r1, [r1, #0x0]
- tst r1, r0
- beq _0201E762
- bx lr
-_0201E75A:
- ldr r1, _0201E77C ; =UNK_021C599C
- ldr r1, [r1, #0x0]
- tst r1, r0
- beq _0201E77A
-_0201E762:
- ldr r1, _0201E77C ; =UNK_021C599C
- ldr r2, [r1, #0x0]
- add r3, r2, #0x0
- eor r3, r0
- ldr r2, _0201E780 ; =0x04001000
- str r3, [r1, #0x0]
- ldr r1, [r2, #0x0]
- ldr r0, _0201E784 ; =0xFFFFE0FF
- and r1, r0
- lsl r0, r3, #0x8
- orr r0, r1
- str r0, [r2, #0x0]
-_0201E77A:
- bx lr
- .balign 4
-_0201E77C: .word UNK_021C599C
-_0201E780: .word 0x04001000
-_0201E784: .word 0xFFFFE0FF
-
- thumb_func_start FUN_0201E788
-FUN_0201E788: ; 0x0201E788
- push {r3, lr}
- bl GX_DispOn
- ldr r2, _0201E79C ; =0x04001000
- mov r0, #0x1
- ldr r1, [r2, #0x0]
- lsl r0, r0, #0x10
- orr r0, r1
- str r0, [r2, #0x0]
- pop {r3, pc}
- .balign 4
-_0201E79C: .word 0x04001000
-
- thumb_func_start FUN_0201E7A0
-FUN_0201E7A0: ; 0x0201E7A0
- ldr r0, _0201E7C0 ; =gMain + 0x60
- ldr r2, _0201E7C4 ; =0x04000304
- ldrb r0, [r0, #0x5]
- cmp r0, #0x0
- bne _0201E7B4
- ldrh r1, [r2, #0x0]
- lsr r0, r2, #0xb
- orr r0, r1
- strh r0, [r2, #0x0]
- bx lr
-_0201E7B4:
- ldrh r1, [r2, #0x0]
- ldr r0, _0201E7C8 ; =0xFFFF7FFF
- and r0, r1
- strh r0, [r2, #0x0]
- bx lr
- nop
-_0201E7C0: .word gMain + 0x60
-_0201E7C4: .word 0x04000304
-_0201E7C8: .word 0xFFFF7FFF
-
- thumb_func_start FUN_0201E7CC
-FUN_0201E7CC: ; 0x0201E7CC
- ldr r0, _0201E7D4 ; =UNK_021C599C
- ldr r0, [r0, #0x4]
- bx lr
- nop
-_0201E7D4: .word UNK_021C599C
diff --git a/arm9/asm/unk_02020AFC.s b/arm9/asm/unk_02020AFC.s
deleted file mode 100644
index 3d43d259..00000000
--- a/arm9/asm/unk_02020AFC.s
+++ /dev/null
@@ -1,165 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global UNK_021C59B0
-UNK_021C59B0: ; 0x021C59B0
- .space 0xc
-
- .text
-
- thumb_func_start FUN_02020AFC
-FUN_02020AFC: ; 0x02020AFC
- push {r3, lr}
- ldr r0, _02020B24 ; =UNK_021C59B0
- mov r2, #0x0
- str r2, [r0, #0x4]
- str r2, [r0, #0x8]
- ldr r1, _02020B28 ; =0x0400010E
- str r2, [r0, #0x0]
- strh r2, [r1, #0x0]
- sub r0, r1, #0x2
- strh r2, [r0, #0x0]
- mov r0, #0xc1
- strh r0, [r1, #0x0]
- ldr r1, _02020B2C ; =FUN_02020B30
- mov r0, #0x40
- bl OS_SetIrqFunction
- mov r0, #0x40
- bl OS_EnableIrqMask
- pop {r3, pc}
- .balign 4
-_02020B24: .word UNK_021C59B0
-_02020B28: .word 0x0400010E
-_02020B2C: .word FUN_02020B30
-
- thumb_func_start FUN_02020B30
-FUN_02020B30: ; 0x02020B30
- ldr r0, _02020B68 ; =UNK_021C59B0
- mov r3, #0x0
- ldr r1, [r0, #0x4]
- ldr r2, [r0, #0x8]
- add r1, r1, #0x1
- adc r2, r3
- str r1, [r0, #0x4]
- str r2, [r0, #0x8]
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _02020B54
- ldr r2, _02020B6C ; =0x0400010E
- strh r3, [r2, #0x0]
- sub r1, r2, #0x2
- strh r3, [r1, #0x0]
- mov r1, #0xc1
- strh r1, [r2, #0x0]
- str r3, [r0, #0x0]
-_02020B54:
- ldr r3, _02020B70 ; =0x027E0000
- ldr r1, _02020B74 ; =0x00003FF8
- mov r0, #0x40
- ldr r2, [r3, r1]
- orr r2, r0
- str r2, [r3, r1]
- ldr r3, _02020B78 ; =OS_SetIrqFunction
- ldr r1, _02020B7C ; =FUN_02020B30
- bx r3
- nop
-_02020B68: .word UNK_021C59B0
-_02020B6C: .word 0x0400010E
-_02020B70: .word 0x027E0000
-_02020B74: .word 0x00003FF8
-_02020B78: .word OS_SetIrqFunction
-_02020B7C: .word FUN_02020B30
-
- thumb_func_start FUN_02020B80
-FUN_02020B80: ; 0x02020B80
- push {r4-r5, lr}
- sub sp, #0xc
- bl OS_DisableInterrupts
- ldr r1, _02020BE4 ; =0x0400010C
- add r3, sp, #0x0
- ldrh r1, [r1, #0x0]
- ldr r2, _02020BE8 ; =0x0000FFFF
- strh r1, [r3, #0x0]
- ldr r1, _02020BEC ; =UNK_021C59B0
- ldr r5, [r1, #0x4]
- ldr r4, [r1, #0x8]
- mov r1, #0x0
- mvn r1, r1
- and r1, r5
- str r1, [sp, #0x4]
- and r2, r4
- ldr r1, _02020BF0 ; =0x04000214
- str r2, [sp, #0x8]
- ldr r2, [r1, #0x0]
- mov r1, #0x40
- tst r2, r1
- beq _02020BC4
- ldrh r2, [r3, #0x0]
- lsl r1, r1, #0x9
- tst r1, r2
- bne _02020BC4
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- ldr r3, [sp, #0x8]
- add r2, r2, #0x1
- adc r3, r1
- str r2, [sp, #0x4]
- str r3, [sp, #0x8]
-_02020BC4:
- bl OS_RestoreInterrupts
- ldr r2, [sp, #0x4]
- ldr r1, [sp, #0x8]
- lsr r0, r2, #0x10
- lsl r1, r1, #0x10
- orr r1, r0
- add r0, sp, #0x0
- lsl r3, r2, #0x10
- ldrh r2, [r0, #0x0]
- asr r0, r2, #0x1f
- orr r1, r0
- add r0, r3, #0x0
- orr r0, r2
- add sp, #0xc
- pop {r4-r5, pc}
- .balign 4
-_02020BE4: .word 0x0400010C
-_02020BE8: .word 0x0000FFFF
-_02020BEC: .word UNK_021C59B0
-_02020BF0: .word 0x04000214
-
- thumb_func_start FUN_02020BF4
-FUN_02020BF4: ; 0x02020BF4
- ldr r3, _02020BF8 ; =FUN_02020B80
- bx r3
- .balign 4
-_02020BF8: .word FUN_02020B80
-
- thumb_func_start FUN_02020BFC
-FUN_02020BFC: ; 0x02020BFC
- push {r3, lr}
- lsr r2, r0, #0x1a
- lsl r1, r1, #0x6
- orr r1, r2
- ldr r2, _02020C10 ; =0x000082EA
- lsl r0, r0, #0x6
- mov r3, #0x0
- bl _ll_udiv
- pop {r3, pc}
- .balign 4
-_02020C10: .word 0x000082EA
-
- thumb_func_start FUN_02020C14
-FUN_02020C14: ; 0x02020C14
- push {r3, lr}
- lsr r2, r0, #0x1a
- lsl r1, r1, #0x6
- orr r1, r2
- ldr r2, _02020C28 ; =0x01FF6210
- lsl r0, r0, #0x6
- mov r3, #0x0
- bl _ll_udiv
- pop {r3, pc}
- .balign 4
-_02020C28: .word 0x01FF6210
diff --git a/arm9/asm/unk_02022318.s b/arm9/asm/unk_02022318.s
index 7f8590a6..cf87cdb9 100644
--- a/arm9/asm/unk_02022318.s
+++ b/arm9/asm/unk_02022318.s
@@ -99,7 +99,7 @@ FUN_020223D4: ; 0x020223D4
push {r3, lr}
mov r0, #0x1
add r1, r0, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _02022438 ; =0x04000008
mov r1, #0x3
ldrh r2, [r0, #0x0]
diff --git a/arm9/asm/unk_02024E64.s b/arm9/asm/unk_02024E64.s
deleted file mode 100644
index 0234a504..00000000
--- a/arm9/asm/unk_02024E64.s
+++ /dev/null
@@ -1,118 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02024E64
-FUN_02024E64: ; 0x02024E64
- ldr r0, _02024E68 ; =0x0000074C
- bx lr
- .balign 4
-_02024E68: .word 0x0000074C
-
- thumb_func_start FUN_02024E6C
-FUN_02024E6C: ; 0x02024E6C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r2, _02024EA4 ; =0x0000074C
- mov r0, #0x0
- add r1, r4, #0x0
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- bl FUN_020250A4
- mov r0, #0x7
- lsl r0, r0, #0x8
- add r0, r4, r0
- bl FUN_02025484
- ldr r1, _02024EA8 ; =0x00000724
- ldr r0, _02024EAC ; =0x0000FFFF
- add r1, r4, r1
- mov r2, #0x8
- bl MIi_CpuClear16
- ldr r1, _02024EB0 ; =0x00000734
- ldr r0, _02024EAC ; =0x0000FFFF
- add r1, r4, r1
- mov r2, #0xb
- bl MIi_CpuClear16
- pop {r4, pc}
- .balign 4
-_02024EA4: .word 0x0000074C
-_02024EA8: .word 0x00000724
-_02024EAC: .word 0x0000FFFF
-_02024EB0: .word 0x00000734
-
- thumb_func_start FUN_02024EB4
-FUN_02024EB4: ; 0x02024EB4
- ldr r3, _02024EBC ; =SavArray_get
- mov r1, #0xa
- bx r3
- nop
-_02024EBC: .word SavArray_get
-
- thumb_func_start FUN_02024EC0
-FUN_02024EC0: ; 0x02024EC0
- ldr r3, _02024EC8 ; =FUN_02022634
- mov r1, #0xa
- bx r3
- nop
-_02024EC8: .word FUN_02022634
-
- thumb_func_start FUN_02024ECC
-FUN_02024ECC: ; 0x02024ECC
- ldr r3, _02024ED4 ; =SavArray_get
- mov r1, #0xa
- bx r3
- nop
-_02024ED4: .word SavArray_get
-
- thumb_func_start FUN_02024ED8
-FUN_02024ED8: ; 0x02024ED8
- push {r3, lr}
- mov r1, #0xa
- bl SavArray_get
- mov r1, #0x7
- lsl r1, r1, #0x8
- add r0, r0, r1
- pop {r3, pc}
-
- thumb_func_start FUN_02024EE8
-FUN_02024EE8: ; 0x02024EE8
- ldr r1, _02024EF0 ; =0x00000724
- add r0, r0, r1
- bx lr
- nop
-_02024EF0: .word 0x00000724
-
- thumb_func_start FUN_02024EF4
-FUN_02024EF4: ; 0x02024EF4
- add r2, r0, #0x0
- add r0, r1, #0x0
- ldr r1, _02024F04 ; =0x00000724
- ldr r3, _02024F08 ; =CopyStringToU16Array
- add r1, r2, r1
- mov r2, #0x8
- bx r3
- nop
-_02024F04: .word 0x00000724
-_02024F08: .word CopyStringToU16Array
-
- thumb_func_start FUN_02024F0C
-FUN_02024F0C: ; 0x02024F0C
- ldr r1, _02024F14 ; =0x00000734
- add r0, r0, r1
- bx lr
- nop
-_02024F14: .word 0x00000734
-
- thumb_func_start FUN_02024F18
-FUN_02024F18: ; 0x02024F18
- add r2, r0, #0x0
- add r0, r1, #0x0
- ldr r1, _02024F28 ; =0x00000734
- ldr r3, _02024F2C ; =CopyStringToU16Array
- add r1, r2, r1
- mov r2, #0xb
- bx r3
- nop
-_02024F28: .word 0x00000734
-_02024F2C: .word CopyStringToU16Array
diff --git a/arm9/asm/unk_02025484.s b/arm9/asm/unk_02025484.s
deleted file mode 100644
index 5f869289..00000000
--- a/arm9/asm/unk_02025484.s
+++ /dev/null
@@ -1,41 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02025484
-FUN_02025484: ; 0x02025484
- ldr r3, _0202548C ; =MI_CpuFill8
- mov r1, #0x0
- mov r2, #0x24
- bx r3
- .balign 4
-_0202548C: .word MI_CpuFill8
-
- thumb_func_start FUN_02025490
-FUN_02025490: ; 0x02025490
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_02025484
- str r4, [r5, #0x0]
- add r0, r5, #0x4
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020254A0
-FUN_020254A0: ; 0x020254A0
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- cmp r0, r1
- beq _020254AE
- bl ErrorHandling
-_020254AE:
- add r0, r4, #0x4
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020254B4
-FUN_020254B4: ; 0x020254B4
- ldr r0, [r0, #0x0]
- bx lr
diff --git a/arm9/asm/unk_02028980.s b/arm9/asm/unk_02028980.s
index ad0b1145..8c9178e7 100644
--- a/arm9/asm/unk_02028980.s
+++ b/arm9/asm/unk_02028980.s
@@ -2215,7 +2215,7 @@ FUN_02029880: ; 0x02029880
cmp r0, #0x1
bne _02029942
add r0, r4, #0x0
- bl FUN_02034824
+ bl MapHeader_GetMapSec
lsl r0, r0, #0x10
lsr r0, r0, #0x10
add r1, r6, #0x0
@@ -2248,7 +2248,7 @@ _020298DE:
b _02029942
_020298EE:
add r0, r4, #0x0
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r7, r0, #0x0
lsl r0, r7, #0x10
lsr r0, r0, #0x10
diff --git a/arm9/asm/unk_0202F150.s b/arm9/asm/unk_0202F150.s
deleted file mode 100644
index a4efe28d..00000000
--- a/arm9/asm/unk_0202F150.s
+++ /dev/null
@@ -1,4516 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern gMain
-
- .section .bss
-
- .global UNK_021C59F4
-UNK_021C59F4: ; 0x021C59F4
- .space 0x8
-
- .section .data
-
- .global UNK_02105D58
-UNK_02105D58: ; 0x02105D58
- .byte 4, 4
-
- .text
-
- thumb_func_start FUN_0202F150
-FUN_0202F150: ; 0x0202F150
- push {r4-r6, lr}
- add r6, r1, #0x0
- mov r4, #0x0
- ldr r1, _0202F2BC ; =UNK_021C59F4
- cmp r0, #0x0
- strb r4, [r1, #0x0]
- beq _0202F25C
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r5, r0, #0x1
- ldr r0, _0202F2BC ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202F178
- mov r0, #0x1
- pop {r4-r6, pc}
-_0202F178:
- mov r0, #0xf
- bl FUN_02031480
- ldr r1, _0202F2C0 ; =0x0000068C
- mov r0, #0xf
- bl AllocFromHeap
- ldr r1, _0202F2BC ; =UNK_021C59F4
- ldr r2, _0202F2C0 ; =0x0000068C
- str r0, [r1, #0x4]
- add r1, r4, #0x0
- bl MI_CpuFill8
- ldr r2, _0202F2BC ; =UNK_021C59F4
- ldr r1, _0202F2C4 ; =0x00000658
- ldr r0, [r2, #0x4]
- add r6, #0x40
- str r6, [r0, r1]
- add r0, r1, #0x0
- ldr r3, [r2, #0x4]
- add r6, r4, #0x0
- add r0, #0x25
- strb r6, [r3, r0]
- add r0, r1, #0x0
- ldr r3, [r2, #0x4]
- mov r6, #0x1b
- add r0, #0x26
- strb r6, [r3, r0]
- ldr r2, [r2, #0x4]
- mov r0, #0xf
- ldr r1, [r2, r1]
- lsl r1, r1, #0x1
- bl AllocFromHeap
- ldr r2, _0202F2BC ; =UNK_021C59F4
- ldr r1, _0202F2C8 ; =0x0000045C
- ldr r3, [r2, #0x4]
- str r0, [r3, r1]
- ldr r2, [r2, #0x4]
- ldr r1, _0202F2C4 ; =0x00000658
- mov r0, #0xf
- ldr r1, [r2, r1]
- bl AllocFromHeap
- ldr r2, _0202F2BC ; =UNK_021C59F4
- mov r1, #0x46
- ldr r3, [r2, #0x4]
- lsl r1, r1, #0x4
- str r0, [r3, r1]
- ldr r2, [r2, #0x4]
- ldr r1, _0202F2C4 ; =0x00000658
- mov r0, #0xf
- ldr r1, [r2, r1]
- mul r1, r5
- bl AllocFromHeap
- ldr r2, _0202F2BC ; =UNK_021C59F4
- ldr r1, _0202F2CC ; =0x00000458
- ldr r3, [r2, #0x4]
- str r0, [r3, r1]
- ldr r2, [r2, #0x4]
- ldr r1, _0202F2C4 ; =0x00000658
- mov r0, #0xf
- ldr r1, [r2, r1]
- mul r1, r5
- bl AllocFromHeap
- ldr r1, _0202F2BC ; =UNK_021C59F4
- ldr r2, [r1, #0x4]
- ldr r1, _0202F2D0 ; =0x00000454
- str r0, [r2, r1]
- bl FUN_02033534
- cmp r0, #0xa
- ldr r2, _0202F2D4 ; =0x0000054C
- bne _0202F236
- ldr r0, _0202F2BC ; =UNK_021C59F4
- mov r1, #0x64
- ldr r3, [r0, #0x4]
- add r0, r3, r2
- sub r2, #0xe8
- add r2, r3, r2
- bl FUN_0202D7D8
- ldr r0, _0202F2BC ; =UNK_021C59F4
- mov r1, #0x32
- ldr r3, [r0, #0x4]
- ldr r2, _0202F2D8 ; =0x0000056C
- lsl r1, r1, #0x4
- add r0, r3, r2
- sub r2, #0x90
- add r2, r3, r2
- bl FUN_0202D7D8
- b _0202F268
-_0202F236:
- ldr r0, _0202F2BC ; =UNK_021C59F4
- mov r1, #0x14
- ldr r3, [r0, #0x4]
- add r0, r3, r2
- sub r2, #0xe8
- add r2, r3, r2
- bl FUN_0202D7D8
- ldr r0, _0202F2BC ; =UNK_021C59F4
- add r1, r6, #0x0
- ldr r3, [r0, #0x4]
- ldr r2, _0202F2D8 ; =0x0000056C
- add r1, #0xfd
- add r0, r3, r2
- sub r2, #0x90
- add r2, r3, r2
- bl FUN_0202D7D8
- b _0202F268
-_0202F25C:
- ldr r0, [r1, #0x4]
- mov r4, #0x1
- cmp r0, #0x0
- bne _0202F268
- bl ErrorHandling
-_0202F268:
- ldr r2, _0202F2BC ; =UNK_021C59F4
- ldr r1, _0202F2DC ; =0x0000065C
- ldr r3, [r2, #0x4]
- mov r0, #0x0
- strh r0, [r3, r1]
- mov r5, #0xff
- add r1, #0x1b
-_0202F276:
- ldr r3, [r2, #0x4]
- add r3, r3, r0
- add r0, r0, #0x1
- strb r5, [r3, r1]
- cmp r0, #0x4
- blt _0202F276
- cmp r4, #0x0
- bne _0202F28A
- bl FUN_0202F2F0
-_0202F28A:
- ldr r0, _0202F2BC ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202F2E0 ; =0x000005F8
- add r0, r1, r0
- bl FUN_020312BC
- cmp r4, #0x0
- bne _0202F2AC
- mov r1, #0x0
- ldr r0, _0202F2E4 ; =FUN_0202FB20
- add r2, r1, #0x0
- bl FUN_0200CA60
- ldr r1, _0202F2BC ; =UNK_021C59F4
- ldr r2, [r1, #0x4]
- ldr r1, _0202F2E8 ; =0x00000548
- str r0, [r2, r1]
-_0202F2AC:
- ldr r0, _0202F2BC ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202F2EC ; =0x00000687
- strb r2, [r1, r0]
- mov r0, #0x1
- pop {r4-r6, pc}
- nop
-_0202F2BC: .word UNK_021C59F4
-_0202F2C0: .word 0x0000068C
-_0202F2C4: .word 0x00000658
-_0202F2C8: .word 0x0000045C
-_0202F2CC: .word 0x00000458
-_0202F2D0: .word 0x00000454
-_0202F2D4: .word 0x0000054C
-_0202F2D8: .word 0x0000056C
-_0202F2DC: .word 0x0000065C
-_0202F2E0: .word 0x000005F8
-_0202F2E4: .word FUN_0202FB20
-_0202F2E8: .word 0x00000548
-_0202F2EC: .word 0x00000687
-
- thumb_func_start FUN_0202F2F0
-FUN_0202F2F0: ; 0x0202F2F0
- push {r3-r7, lr}
- ldr r3, _0202F54C ; =UNK_021C59F4
- ldr r2, _0202F550 ; =0x0000062C
- ldr r1, [r3, #0x4]
- mov r0, #0x0
- strb r0, [r1, r2]
- ldr r4, [r3, #0x4]
- add r1, r2, #0x1
- strb r0, [r4, r1]
- add r1, r2, #0x0
- ldr r4, [r3, #0x4]
- add r1, #0x53
- strb r0, [r4, r1]
- ldr r1, [r3, #0x4]
- add r2, #0x54
- strb r0, [r1, r2]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r6, r0, #0x1
- ldr r0, _0202F54C ; =UNK_021C59F4
- ldr r2, _0202F554 ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F558 ; =0x00000458
- mov r1, #0x0
- ldr r0, [r3, r0]
- ldr r3, [r3, r2]
- add r2, r3, #0x0
- mul r2, r6
- bl MI_CpuFill8
- mov r4, #0x0
- cmp r6, #0x0
- ble _0202F360
- ldr r7, _0202F54C ; =UNK_021C59F4
- add r5, r4, #0x0
-_0202F33E:
- ldr r3, [r7, #0x4]
- ldr r0, _0202F554 ; =0x00000658
- ldr r1, _0202F558 ; =0x00000458
- ldr r2, [r3, r0]
- ldr r0, _0202F55C ; =0x000004E8
- add r0, r3, r0
- ldr r3, [r3, r1]
- add r1, r4, #0x0
- mul r1, r2
- add r0, r0, r5
- add r1, r3, r1
- bl FUN_0202D394
- add r4, r4, #0x1
- add r5, #0xc
- cmp r4, r6
- blt _0202F33E
-_0202F360:
- ldr r0, _0202F54C ; =UNK_021C59F4
- ldr r2, _0202F554 ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F560 ; =0x00000454
- mov r1, #0x0
- ldr r0, [r3, r0]
- ldr r3, [r3, r2]
- add r2, r3, #0x0
- mul r2, r6
- bl MI_CpuFill8
- mov r5, #0x0
- cmp r6, #0x0
- ble _0202F3A2
- ldr r7, _0202F54C ; =UNK_021C59F4
- add r4, r5, #0x0
-_0202F380:
- ldr r3, [r7, #0x4]
- ldr r0, _0202F554 ; =0x00000658
- ldr r1, _0202F560 ; =0x00000454
- ldr r2, [r3, r0]
- ldr r0, _0202F564 ; =0x0000047C
- add r0, r3, r0
- ldr r3, [r3, r1]
- add r1, r5, #0x0
- mul r1, r2
- add r0, r0, r4
- add r1, r3, r1
- bl FUN_0202D394
- add r5, r5, #0x1
- add r4, #0xc
- cmp r5, r6
- blt _0202F380
-_0202F3A2:
- ldr r0, _0202F54C ; =UNK_021C59F4
- mov r2, #0x6
- ldr r1, [r0, #0x4]
- mov r0, #0xb5
- lsl r0, r0, #0x2
- add r0, r1, r0
- mov r1, #0x0
- lsl r2, r2, #0x6
- bl MI_CpuFill8
- ldr r0, _0202F54C ; =UNK_021C59F4
- mov r1, #0xb5
- ldr r2, [r0, #0x4]
- ldr r0, _0202F568 ; =0x000004DC
- lsl r1, r1, #0x2
- add r0, r2, r0
- add r1, r2, r1
- mov r2, #0x6
- lsl r2, r2, #0x6
- bl FUN_0202D394
- mov r0, #0xee
- add r2, r0, #0x0
- mov r3, #0x85
- ldr r4, _0202F54C ; =UNK_021C59F4
- mov r1, #0x0
- add r2, #0x66
- lsl r3, r3, #0x2
-_0202F3DA:
- ldr r5, [r4, #0x4]
- add r5, r5, r1
- strb r0, [r5, r2]
- ldr r5, [r4, #0x4]
- add r5, r5, r1
- add r1, r1, #0x1
- strb r0, [r5, r3]
- cmp r1, #0xc0
- blt _0202F3DA
- ldr r0, _0202F54C ; =UNK_021C59F4
- mov r2, #0x42
- ldr r0, [r0, #0x4]
- mov r1, #0x0
- add r0, #0x4c
- lsl r2, r2, #0x2
- bl MI_CpuFill8
- ldr r0, _0202F54C ; =UNK_021C59F4
- mov r2, #0x42
- ldr r1, [r0, #0x4]
- ldr r0, _0202F56C ; =0x00000464
- lsl r2, r2, #0x2
- add r0, r1, r0
- add r1, #0x4c
- bl FUN_0202D394
- ldr r1, _0202F54C ; =UNK_021C59F4
- mov r2, #0xff
- ldr r0, [r1, #0x4]
- mov r3, #0x1
- strb r2, [r0, #0x0]
- ldr r0, [r1, #0x4]
- add r0, #0x26
- strb r2, [r0, #0x0]
- mov r2, #0xee
-_0202F420:
- ldr r0, [r1, #0x4]
- strb r2, [r0, r3]
- ldr r0, [r1, #0x4]
- add r0, r0, r3
- add r0, #0x26
- add r3, r3, #0x1
- strb r2, [r0, #0x0]
- cmp r3, #0x26
- blt _0202F420
- ldr r0, _0202F54C ; =UNK_021C59F4
- ldr r2, _0202F554 ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F570 ; =0x0000045C
- ldr r2, [r3, r2]
- ldr r0, [r3, r0]
- mov r1, #0x0
- lsl r2, r2, #0x1
- bl MI_CpuFill8
- ldr r0, _0202F54C ; =UNK_021C59F4
- mov r1, #0x47
- ldr r3, [r0, #0x4]
- ldr r2, _0202F554 ; =0x00000658
- lsl r1, r1, #0x4
- add r0, r3, r1
- sub r1, #0x14
- ldr r2, [r3, r2]
- ldr r1, [r3, r1]
- lsl r2, r2, #0x1
- bl FUN_0202D394
- mov r2, #0x0
- ldr r0, _0202F54C ; =UNK_021C59F4
- ldr r1, _0202F574 ; =0x00000684
- ldr r3, [r0, #0x4]
- mov r12, r2
- strb r2, [r3, r1]
- ldr r3, [r0, #0x4]
- add r1, r1, #0x1
- strb r2, [r3, r1]
- add r1, r2, #0x0
- add r7, r2, #0x0
- add r6, r2, #0x0
-_0202F476:
- ldr r3, [r0, #0x4]
- add r4, r3, r2
- ldr r3, _0202F578 ; =0x0000065F
- strb r6, [r4, r3]
- ldr r3, [r0, #0x4]
- ldr r4, _0202F57C ; =0x00000667
- add r5, r3, r2
- mov r3, #0x1
- strb r3, [r5, r4]
- ldr r3, [r0, #0x4]
- add r4, #0x8
- add r5, r3, r2
- mov r3, #0x1
- strb r3, [r5, r4]
- ldr r4, [r0, #0x4]
- mov r3, r12
- add r4, r4, r3
- mov r3, #0x61
- lsl r3, r3, #0x4
- strh r6, [r4, r3]
- ldr r3, [r0, #0x4]
- mov r4, #0xee
- add r5, r3, r1
- ldr r3, _0202F580 ; =0x00000596
- add r2, r2, #0x1
- strb r4, [r5, r3]
- ldr r3, [r0, #0x4]
- ldr r4, _0202F584 ; =0x0000FFFF
- add r5, r3, r1
- ldr r3, _0202F588 ; =0x00000594
- strh r4, [r5, r3]
- ldr r3, [r0, #0x4]
- add r4, r3, r1
- mov r3, #0x59
- lsl r3, r3, #0x4
- str r6, [r4, r3]
- ldr r3, [r0, #0x4]
- add r4, r3, r1
- ldr r3, _0202F58C ; =0x0000058C
- add r1, #0xc
- str r6, [r4, r3]
- ldr r3, [r0, #0x4]
- add r4, r3, r7
- ldr r3, _0202F590 ; =0x00000638
- add r7, r7, #0x4
- str r6, [r4, r3]
- mov r3, r12
- add r3, r3, #0x2
- mov r12, r3
- cmp r2, #0x8
- blt _0202F476
- ldr r1, _0202F54C ; =UNK_021C59F4
- ldr r0, _0202F594 ; =0x00000634
- ldr r2, [r1, #0x4]
- sub r3, r0, #0x4
- str r6, [r2, r0]
- ldr r4, [r1, #0x4]
- mov r2, #0x1
- str r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- sub r3, #0x3e
- mov r2, #0xee
- strb r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- ldr r2, _0202F584 ; =0x0000FFFF
- sub r3, #0x40
- strh r2, [r4, r3]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- sub r2, #0x44
- str r6, [r3, r2]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- sub r2, #0x48
- str r6, [r3, r2]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0x4e
- mov r2, #0x1
- strb r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0x4f
- strb r2, [r4, r3]
- ldr r2, _0202F598 ; =UNK_02105D58
- mov r3, #0x4
- strb r3, [r2, #0x1]
- strb r3, [r2, #0x0]
- ldr r1, [r1, #0x4]
- sub r0, #0xe8
- add r0, r1, r0
- bl FUN_0202D804
- ldr r0, _0202F54C ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202F59C ; =0x0000056C
- add r0, r1, r0
- bl FUN_0202D804
- ldr r0, _0202F54C ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202F5A0 ; =0x00000688
- strb r2, [r1, r0]
- pop {r3-r7, pc}
- .balign 4
-_0202F54C: .word UNK_021C59F4
-_0202F550: .word 0x0000062C
-_0202F554: .word 0x00000658
-_0202F558: .word 0x00000458
-_0202F55C: .word 0x000004E8
-_0202F560: .word 0x00000454
-_0202F564: .word 0x0000047C
-_0202F568: .word 0x000004DC
-_0202F56C: .word 0x00000464
-_0202F570: .word 0x0000045C
-_0202F574: .word 0x00000684
-_0202F578: .word 0x0000065F
-_0202F57C: .word 0x00000667
-_0202F580: .word 0x00000596
-_0202F584: .word 0x0000FFFF
-_0202F588: .word 0x00000594
-_0202F58C: .word 0x0000058C
-_0202F590: .word 0x00000638
-_0202F594: .word 0x00000634
-_0202F598: .word UNK_02105D58
-_0202F59C: .word 0x0000056C
-_0202F5A0: .word 0x00000688
-
- thumb_func_start FUN_0202F5A4
-FUN_0202F5A4: ; 0x0202F5A4
- push {r3-r7, lr}
- ldr r1, _0202F7D4 ; =UNK_021C59F4
- ldr r0, _0202F7D8 ; =0x0000062C
- ldr r2, [r1, #0x4]
- mov r3, #0x0
- strb r3, [r2, r0]
- ldr r1, [r1, #0x4]
- add r0, r0, #0x1
- strb r3, [r1, r0]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r6, r0, #0x1
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- ldr r2, _0202F7DC ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F7E0 ; =0x00000458
- mov r1, #0x0
- ldr r0, [r3, r0]
- ldr r3, [r3, r2]
- add r2, r3, #0x0
- mul r2, r6
- bl MI_CpuFill8
- mov r4, #0x0
- cmp r6, #0x0
- ble _0202F606
- ldr r7, _0202F7D4 ; =UNK_021C59F4
- add r5, r4, #0x0
-_0202F5E4:
- ldr r3, [r7, #0x4]
- ldr r0, _0202F7DC ; =0x00000658
- ldr r1, _0202F7E0 ; =0x00000458
- ldr r2, [r3, r0]
- ldr r0, _0202F7E4 ; =0x000004E8
- add r0, r3, r0
- ldr r3, [r3, r1]
- add r1, r4, #0x0
- mul r1, r2
- add r0, r0, r5
- add r1, r3, r1
- bl FUN_0202D394
- add r4, r4, #0x1
- add r5, #0xc
- cmp r4, r6
- blt _0202F5E4
-_0202F606:
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- ldr r2, _0202F7DC ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F7E8 ; =0x00000454
- mov r1, #0x0
- ldr r0, [r3, r0]
- ldr r3, [r3, r2]
- add r2, r3, #0x0
- mul r2, r6
- bl MI_CpuFill8
- mov r5, #0x0
- cmp r6, #0x0
- ble _0202F648
- ldr r7, _0202F7D4 ; =UNK_021C59F4
- add r4, r5, #0x0
-_0202F626:
- ldr r3, [r7, #0x4]
- ldr r0, _0202F7DC ; =0x00000658
- ldr r1, _0202F7E8 ; =0x00000454
- ldr r2, [r3, r0]
- ldr r0, _0202F7EC ; =0x0000047C
- add r0, r3, r0
- ldr r3, [r3, r1]
- add r1, r5, #0x0
- mul r1, r2
- add r0, r0, r4
- add r1, r3, r1
- bl FUN_0202D394
- add r5, r5, #0x1
- add r4, #0xc
- cmp r5, r6
- blt _0202F626
-_0202F648:
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- mov r2, #0x6
- ldr r1, [r0, #0x4]
- mov r0, #0xb5
- lsl r0, r0, #0x2
- add r0, r1, r0
- mov r1, #0x0
- lsl r2, r2, #0x6
- bl MI_CpuFill8
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- mov r1, #0xb5
- ldr r2, [r0, #0x4]
- ldr r0, _0202F7F0 ; =0x000004DC
- lsl r1, r1, #0x2
- add r0, r2, r0
- add r1, r2, r1
- mov r2, #0x6
- lsl r2, r2, #0x6
- bl FUN_0202D394
- mov r0, #0xee
- add r2, r0, #0x0
- mov r3, #0x85
- ldr r4, _0202F7D4 ; =UNK_021C59F4
- mov r1, #0x0
- add r2, #0x66
- lsl r3, r3, #0x2
-_0202F680:
- ldr r5, [r4, #0x4]
- add r5, r5, r1
- strb r0, [r5, r2]
- ldr r5, [r4, #0x4]
- add r5, r5, r1
- add r1, r1, #0x1
- strb r0, [r5, r3]
- cmp r1, #0xc0
- blt _0202F680
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- mov r2, #0x42
- ldr r0, [r0, #0x4]
- mov r1, #0x0
- add r0, #0x4c
- lsl r2, r2, #0x2
- bl MI_CpuFill8
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- mov r2, #0x42
- ldr r1, [r0, #0x4]
- ldr r0, _0202F7F4 ; =0x00000464
- lsl r2, r2, #0x2
- add r0, r1, r0
- add r1, #0x4c
- bl FUN_0202D394
- ldr r1, _0202F7D4 ; =UNK_021C59F4
- mov r2, #0xff
- ldr r0, [r1, #0x4]
- mov r3, #0x1
- strb r2, [r0, #0x0]
- ldr r0, [r1, #0x4]
- add r0, #0x26
- strb r2, [r0, #0x0]
- mov r2, #0xee
-_0202F6C6:
- ldr r0, [r1, #0x4]
- strb r2, [r0, r3]
- ldr r0, [r1, #0x4]
- add r0, r0, r3
- add r0, #0x26
- add r3, r3, #0x1
- strb r2, [r0, #0x0]
- cmp r3, #0x26
- blt _0202F6C6
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- ldr r2, _0202F7DC ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F7F8 ; =0x0000045C
- ldr r2, [r3, r2]
- ldr r0, [r3, r0]
- mov r1, #0x0
- lsl r2, r2, #0x1
- bl MI_CpuFill8
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- mov r1, #0x47
- ldr r3, [r0, #0x4]
- ldr r2, _0202F7DC ; =0x00000658
- lsl r1, r1, #0x4
- add r0, r3, r1
- sub r1, #0x14
- ldr r2, [r3, r2]
- ldr r1, [r3, r1]
- lsl r2, r2, #0x1
- bl FUN_0202D394
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- mov r3, #0x0
- ldr r2, [r0, #0x4]
- ldr r1, _0202F7FC ; =0x00000684
- add r7, r3, #0x0
- strb r3, [r2, r1]
- ldr r2, [r0, #0x4]
- add r1, r1, #0x1
- strb r3, [r2, r1]
- add r1, r3, #0x0
- add r2, r3, #0x0
-_0202F71A:
- ldr r4, [r0, #0x4]
- add r5, r4, r3
- ldr r4, _0202F800 ; =0x0000065F
- strb r7, [r5, r4]
- ldr r4, [r0, #0x4]
- ldr r5, _0202F804 ; =0x00000667
- add r6, r4, r3
- mov r4, #0x1
- strb r4, [r6, r5]
- ldr r4, [r0, #0x4]
- add r5, #0x8
- add r6, r4, r3
- mov r4, #0x1
- strb r4, [r6, r5]
- ldr r4, [r0, #0x4]
- add r3, r3, #0x1
- add r5, r4, r1
- mov r4, #0x61
- lsl r4, r4, #0x4
- strh r7, [r5, r4]
- ldr r4, [r0, #0x4]
- ldr r5, _0202F808 ; =0x00000596
- add r6, r4, r2
- mov r4, #0xee
- strb r4, [r6, r5]
- ldr r4, [r0, #0x4]
- ldr r5, _0202F80C ; =0x0000FFFF
- add r6, r4, r2
- ldr r4, _0202F810 ; =0x00000594
- add r1, r1, #0x2
- strh r5, [r6, r4]
- ldr r4, [r0, #0x4]
- add r5, r4, r2
- mov r4, #0x59
- lsl r4, r4, #0x4
- str r7, [r5, r4]
- ldr r4, [r0, #0x4]
- add r5, r4, r2
- ldr r4, _0202F814 ; =0x0000058C
- add r2, #0xc
- str r7, [r5, r4]
- cmp r3, #0x8
- blt _0202F71A
- ldr r1, _0202F7D4 ; =UNK_021C59F4
- add r0, r4, #0x0
- ldr r3, [r1, #0x4]
- add r0, #0xa4
- mov r2, #0x1
- str r2, [r3, r0]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- sub r3, #0x3a
- mov r2, #0xee
- strb r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- ldr r2, _0202F80C ; =0x0000FFFF
- sub r3, #0x3c
- strh r2, [r4, r3]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- sub r2, #0x40
- str r7, [r3, r2]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- sub r2, #0x44
- str r7, [r3, r2]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0x52
- mov r2, #0x1
- strb r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0x53
- strb r2, [r4, r3]
- ldr r1, [r1, #0x4]
- sub r0, #0xe4
- add r0, r1, r0
- bl FUN_0202D804
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202F818 ; =0x0000056C
- add r0, r1, r0
- bl FUN_0202D804
- ldr r0, _0202F7D4 ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202F81C ; =0x00000688
- strb r2, [r1, r0]
- pop {r3-r7, pc}
- .balign 4
-_0202F7D4: .word UNK_021C59F4
-_0202F7D8: .word 0x0000062C
-_0202F7DC: .word 0x00000658
-_0202F7E0: .word 0x00000458
-_0202F7E4: .word 0x000004E8
-_0202F7E8: .word 0x00000454
-_0202F7EC: .word 0x0000047C
-_0202F7F0: .word 0x000004DC
-_0202F7F4: .word 0x00000464
-_0202F7F8: .word 0x0000045C
-_0202F7FC: .word 0x00000684
-_0202F800: .word 0x0000065F
-_0202F804: .word 0x00000667
-_0202F808: .word 0x00000596
-_0202F80C: .word 0x0000FFFF
-_0202F810: .word 0x00000594
-_0202F814: .word 0x0000058C
-_0202F818: .word 0x0000056C
-_0202F81C: .word 0x00000688
-
- thumb_func_start FUN_0202F820
-FUN_0202F820: ; 0x0202F820
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, _0202F8B8 ; =UNK_021C59F4
- ldr r3, _0202F8BC ; =0x0000065F
- ldr r1, [r0, #0x4]
- mov r2, #0x0
- add r1, r1, r5
- strb r2, [r1, r3]
- ldr r4, [r0, #0x4]
- mov r1, #0x1
- add r6, r4, r5
- add r4, r3, #0x0
- add r4, #0x8
- strb r1, [r6, r4]
- ldr r6, [r0, #0x4]
- lsl r4, r5, #0x2
- add r6, r6, r4
- add r4, r3, #0x0
- sub r4, #0x27
- str r2, [r6, r4]
- ldr r2, [r0, #0x4]
- add r4, r2, r5
- add r2, r3, #0x0
- add r2, #0x10
- strb r1, [r4, r2]
- ldr r1, [r0, #0x4]
- sub r0, r3, #0x7
- ldr r2, [r1, r0]
- ldr r3, _0202F8C0 ; =0x0000047C
- mov r0, #0xc
- add r4, r5, #0x0
- mul r4, r0
- add r0, r1, r3
- sub r3, #0x28
- ldr r3, [r1, r3]
- add r1, r5, #0x0
- mul r1, r2
- add r0, r0, r4
- add r1, r3, r1
- bl FUN_0202D394
- ldr r0, _0202F8B8 ; =UNK_021C59F4
- ldr r3, _0202F8C4 ; =0x000004E8
- ldr r1, [r0, #0x4]
- ldr r0, _0202F8C8 ; =0x00000658
- ldr r2, [r1, r0]
- add r0, r1, r3
- sub r3, #0x90
- ldr r3, [r1, r3]
- add r1, r5, #0x0
- mul r1, r2
- add r0, r0, r4
- add r1, r3, r1
- bl FUN_0202D394
- ldr r3, _0202F8B8 ; =UNK_021C59F4
- ldr r2, _0202F8CC ; =0x00000596
- ldr r0, [r3, #0x4]
- mov r1, #0xee
- add r0, r0, r4
- strb r1, [r0, r2]
- ldr r0, [r3, #0x4]
- ldr r5, _0202F8D0 ; =0x0000FFFF
- add r1, r0, r4
- sub r0, r2, #0x2
- strh r5, [r1, r0]
- ldr r1, [r3, #0x4]
- mov r0, #0x0
- add r5, r1, r4
- sub r1, r2, #0x6
- str r0, [r5, r1]
- ldr r1, [r3, #0x4]
- sub r2, #0xa
- add r1, r1, r4
- str r0, [r1, r2]
- pop {r4-r6, pc}
- .balign 4
-_0202F8B8: .word UNK_021C59F4
-_0202F8BC: .word 0x0000065F
-_0202F8C0: .word 0x0000047C
-_0202F8C4: .word 0x000004E8
-_0202F8C8: .word 0x00000658
-_0202F8CC: .word 0x00000596
-_0202F8D0: .word 0x0000FFFF
-
- thumb_func_start FUN_0202F8D4
-FUN_0202F8D4: ; 0x0202F8D4
- push {r4-r6, lr}
- ldr r4, _0202F908 ; =UNK_021C59F4
- ldr r6, _0202F90C ; =0x00000667
- mov r5, #0x1
-_0202F8DC:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202F900
- ldr r0, [r4, #0x4]
- add r0, r0, r5
- ldrb r0, [r0, r6]
- cmp r0, #0x0
- bne _0202F900
- bl FUN_02031280
- cmp r0, #0x0
- bne _0202F900
- add r0, r5, #0x0
- bl FUN_0202F820
-_0202F900:
- add r5, r5, #0x1
- cmp r5, #0x8
- blt _0202F8DC
- pop {r4-r6, pc}
- .balign 4
-_0202F908: .word UNK_021C59F4
-_0202F90C: .word 0x00000667
-
- thumb_func_start FUN_0202F910
-FUN_0202F910: ; 0x0202F910
- ldr r3, _0202F914 ; =FUN_0202F820
- bx r3
- .balign 4
-_0202F914: .word FUN_0202F820
-
- thumb_func_start FUN_0202F918
-FUN_0202F918: ; 0x0202F918
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- str r3, [sp, #0x0]
- mov r4, #0x1
- bl FUN_02033534
- cmp r0, #0x13
- bge _0202F93E
- ldr r2, [sp, #0x0]
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_0202E5F8
- add r4, r0, #0x0
- ldr r0, _0202F94C ; =FUN_0202F910
- bl FUN_0202D330
-_0202F93E:
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_0202F150
- add r0, r4, #0x0
- pop {r3-r7, pc}
- nop
-_0202F94C: .word FUN_0202F910
-
- thumb_func_start FUN_0202F950
-FUN_0202F950: ; 0x0202F950
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- mov r4, #0x1
- bl FUN_02033534
- cmp r0, #0x13
- bge _0202F96C
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_0202E66C
- add r4, r0, #0x0
-_0202F96C:
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_0202F150
- ldr r0, _0202F980 ; =UNK_02105D58
- mov r1, #0x4
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- pop {r3-r7, pc}
- nop
-_0202F980: .word UNK_02105D58
-
- thumb_func_start FUN_0202F984
-FUN_0202F984: ; 0x0202F984
- push {r4, lr}
- mov r4, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202F99A
- ldr r0, _0202F9D4 ; =UNK_02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x4
- beq _0202F9A2
- pop {r4, pc}
-_0202F99A:
- ldr r0, _0202F9D4 ; =UNK_02105D58
- ldrb r0, [r0, #0x0]
- cmp r0, #0x4
- bne _0202F9D0
-_0202F9A2:
- ldr r0, _0202F9D8 ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202F9DC ; =0x0000067D
- ldrb r1, [r2, r0]
- cmp r1, #0x2
- bne _0202F9B4
- mov r1, #0x0
- strb r1, [r2, r0]
- mov r4, #0x1
-_0202F9B4:
- ldr r0, _0202F9D8 ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202F9DC ; =0x0000067D
- ldrb r1, [r2, r0]
- cmp r1, #0x3
- bne _0202F9C4
- mov r4, #0x1
- strb r4, [r2, r0]
-_0202F9C4:
- cmp r4, #0x0
- beq _0202F9CC
- bl FUN_0202F5A4
-_0202F9CC:
- bl FUN_02031088
-_0202F9D0:
- pop {r4, pc}
- nop
-_0202F9D4: .word UNK_02105D58
-_0202F9D8: .word UNK_021C59F4
-_0202F9DC: .word 0x0000067D
-
- thumb_func_start FUN_0202F9E0
-FUN_0202F9E0: ; 0x0202F9E0
- ldr r1, _0202FA08 ; =UNK_021C59F4
- ldr r3, [r1, #0x4]
- ldr r1, _0202FA0C ; =0x0000067D
- ldrb r2, [r3, r1]
- cmp r2, #0x0
- bne _0202F9F6
- cmp r0, #0x1
- bne _0202F9F6
- mov r0, #0x3
- strb r0, [r3, r1]
- bx lr
-_0202F9F6:
- cmp r2, #0x1
- bne _0202FA04
- cmp r0, #0x0
- bne _0202FA04
- ldr r0, _0202FA0C ; =0x0000067D
- mov r1, #0x2
- strb r1, [r3, r0]
-_0202FA04:
- bx lr
- nop
-_0202FA08: .word UNK_021C59F4
-_0202FA0C: .word 0x0000067D
-
- thumb_func_start FUN_0202FA10
-FUN_0202FA10: ; 0x0202FA10
- ldr r3, _0202FA18 ; =FUN_0202F9E0
- mov r0, #0x1
- bx r3
- nop
-_0202FA18: .word FUN_0202F9E0
-
- thumb_func_start FUN_0202FA1C
-FUN_0202FA1C: ; 0x0202FA1C
- ldr r3, _0202FA24 ; =FUN_0202F9E0
- mov r0, #0x0
- bx r3
- nop
-_0202FA24: .word FUN_0202F9E0
-
- thumb_func_start FUN_0202FA28
-FUN_0202FA28: ; 0x0202FA28
- ldr r0, _0202FA40 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FA44 ; =0x0000067D
- ldrb r0, [r1, r0]
- cmp r0, #0x2
- bne _0202FA38
- mov r0, #0x1
- bx lr
-_0202FA38:
- cmp r0, #0x3
- bne _0202FA3E
- mov r0, #0x0
-_0202FA3E:
- bx lr
- .balign 4
-_0202FA40: .word UNK_021C59F4
-_0202FA44: .word 0x0000067D
-
- thumb_func_start FUN_0202FA48
-FUN_0202FA48: ; 0x0202FA48
- push {r3, lr}
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _0202FA56
- mov r0, #0x1
- pop {r3, pc}
-_0202FA56:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202FA5C
-FUN_0202FA5C: ; 0x0202FA5C
- push {r4, lr}
- ldr r0, _0202FB00 ; =UNK_021C59F4
- mov r4, #0x0
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202FA82
- bl FUN_02033534
- cmp r0, #0x13
- blt _0202FA78
- bl MOD04_021D83C0
- mov r4, #0x1
- b _0202FA82
-_0202FA78:
- bl FUN_0202E784
- cmp r0, #0x0
- beq _0202FA82
- mov r4, #0x1
-_0202FA82:
- cmp r4, #0x0
- beq _0202FAFE
- bl FUN_020314D0
- bl FUN_0202DBA4
- ldr r0, _0202FB00 ; =UNK_021C59F4
- mov r1, #0x0
- strb r1, [r0, #0x0]
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB04 ; =0x00000548
- ldr r0, [r1, r0]
- bl FUN_0200CAB4
- ldr r1, _0202FB00 ; =UNK_021C59F4
- ldr r0, _0202FB04 ; =0x00000548
- ldr r2, [r1, #0x4]
- mov r3, #0x0
- str r3, [r2, r0]
- ldr r1, [r1, #0x4]
- sub r0, #0xec
- ldr r0, [r1, r0]
- bl FreeToHeap
- ldr r0, _0202FB00 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x46
- lsl r0, r0, #0x4
- ldr r0, [r1, r0]
- bl FreeToHeap
- ldr r0, _0202FB00 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB08 ; =0x00000458
- ldr r0, [r1, r0]
- bl FreeToHeap
- ldr r0, _0202FB00 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB0C ; =0x00000454
- ldr r0, [r1, r0]
- bl FreeToHeap
- ldr r0, _0202FB00 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB10 ; =0x0000056C
- add r0, r1, r0
- bl FUN_0202D824
- ldr r0, _0202FB00 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB14 ; =0x0000054C
- add r0, r1, r0
- bl FUN_0202D824
- ldr r0, _0202FB00 ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- bl FreeToHeap
- ldr r0, _0202FB00 ; =UNK_021C59F4
- mov r1, #0x0
- str r1, [r0, #0x4]
-_0202FAFE:
- pop {r4, pc}
- .balign 4
-_0202FB00: .word UNK_021C59F4
-_0202FB04: .word 0x00000548
-_0202FB08: .word 0x00000458
-_0202FB0C: .word 0x00000454
-_0202FB10: .word 0x0000056C
-_0202FB14: .word 0x0000054C
-
- thumb_func_start FUN_0202FB18
-FUN_0202FB18: ; 0x0202FB18
- ldr r3, _0202FB1C ; =FUN_0202E9E8
- bx r3
- .balign 4
-_0202FB1C: .word FUN_0202E9E8
-
- thumb_func_start FUN_0202FB20
-FUN_0202FB20: ; 0x0202FB20
- push {r3, lr}
- ldr r0, _0202FB54 ; =UNK_021C59F4
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202FB52
- bl FUN_0203050C
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202FB40
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202FB48
-_0202FB40:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FB4C
-_0202FB48:
- bl FUN_0202FEEC
-_0202FB4C:
- ldr r0, _0202FB54 ; =UNK_021C59F4
- mov r1, #0x0
- strb r1, [r0, #0x0]
-_0202FB52:
- pop {r3, pc}
- .balign 4
-_0202FB54: .word UNK_021C59F4
-
- thumb_func_start FUN_0202FB58
-FUN_0202FB58: ; 0x0202FB58
- push {r3, lr}
- bl FUN_0202F03C
- cmp r0, #0x0
- beq _0202FB7C
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202FB78
- bl FUN_0202EE24
- cmp r0, #0x0
- bne _0202FB7C
- bl FUN_0202FA5C
- pop {r3, pc}
-_0202FB78:
- bl FUN_0202FA5C
-_0202FB7C:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202FB80
-FUN_0202FB80: ; 0x0202FB80
- push {r4, lr}
- bl FUN_02031CDC
- ldr r1, _0202FC48 ; =UNK_021C59F4
- ldr r2, [r1, #0x4]
- cmp r2, #0x0
- beq _0202FC34
- ldr r0, _0202FC4C ; =0x0000068A
- ldrb r0, [r2, r0]
- cmp r0, #0x0
- bne _0202FC16
- mov r0, #0x0
- strb r0, [r1, #0x0]
- bl FUN_0202F984
- ldr r0, _0202FC48 ; =UNK_021C59F4
- ldr r1, _0202FC50 ; =gMain
- ldr r0, [r0, #0x4]
- ldr r2, _0202FC54 ; =0x00000628
- ldr r3, [r1, #0x44]
- ldr r1, _0202FC58 ; =0x00007FFF
- ldrh r4, [r0, r2]
- and r1, r3
- orr r1, r4
- strh r1, [r0, r2]
- bl FUN_02030674
- bl FUN_0202FCCC
- ldr r0, _0202FC48 ; =UNK_021C59F4
- ldr r1, _0202FC54 ; =0x00000628
- ldr r3, [r0, #0x4]
- mov r0, #0x2
- ldrh r2, [r3, r1]
- lsl r0, r0, #0xe
- and r0, r2
- strh r0, [r3, r1]
- bl FUN_0202FA28
- cmp r0, #0x0
- bne _0202FBD6
- bl FUN_02030DA4
-_0202FBD6:
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202FBE8
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202FBF0
-_0202FBE8:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FBF4
-_0202FBF0:
- bl FUN_02030074
-_0202FBF4:
- bl FUN_02031190
- cmp r0, #0x0
- beq _0202FC0C
- bl FUN_0202FA28
- cmp r0, #0x1
- beq _0202FC0C
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FC10
-_0202FC0C:
- bl FUN_02030DFC
-_0202FC10:
- ldr r0, _0202FC48 ; =UNK_021C59F4
- mov r1, #0x1
- strb r1, [r0, #0x0]
-_0202FC16:
- ldr r0, _0202FC48 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FC5C ; =0x0000065C
- ldrh r0, [r1, r0]
- bl FUN_0202ED70
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202FC2E
- bl FUN_0202F8D4
-_0202FC2E:
- bl FUN_0202FB58
- b _0202FC3A
-_0202FC34:
- mov r0, #0x0
- bl FUN_0202ED70
-_0202FC3A:
- mov r0, #0x0
- bl FUN_020335F4
- bl FUN_020315A4
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-_0202FC48: .word UNK_021C59F4
-_0202FC4C: .word 0x0000068A
-_0202FC50: .word gMain
-_0202FC54: .word 0x00000628
-_0202FC58: .word 0x00007FFF
-_0202FC5C: .word 0x0000065C
-
- thumb_func_start FUN_0202FC60
-FUN_0202FC60: ; 0x0202FC60
- push {r4, lr}
- ldr r0, _0202FC7C ; =UNK_021C59F4
- mov r1, #0x0
- ldrb r4, [r0, #0x0]
- strb r1, [r0, #0x0]
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202FC74
- bl FUN_0202F2F0
-_0202FC74:
- ldr r0, _0202FC7C ; =UNK_021C59F4
- strb r4, [r0, #0x0]
- pop {r4, pc}
- nop
-_0202FC7C: .word UNK_021C59F4
-
- thumb_func_start FUN_0202FC80
-FUN_0202FC80: ; 0x0202FC80
- push {r4, lr}
- ldr r0, _0202FCA0 ; =UNK_021C59F4
- mov r1, #0x0
- ldrb r4, [r0, #0x0]
- strb r1, [r0, #0x0]
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _0202FC9A
- ldr r0, _0202FCA4 ; =0x0000067D
- mov r1, #0x1
- strb r1, [r2, r0]
- bl FUN_0202F2F0
-_0202FC9A:
- ldr r0, _0202FCA0 ; =UNK_021C59F4
- strb r4, [r0, #0x0]
- pop {r4, pc}
- .balign 4
-_0202FCA0: .word UNK_021C59F4
-_0202FCA4: .word 0x0000067D
-
- thumb_func_start FUN_0202FCA8
-FUN_0202FCA8: ; 0x0202FCA8
- push {r4, lr}
- ldr r0, _0202FCC8 ; =UNK_021C59F4
- mov r1, #0x0
- ldrb r4, [r0, #0x0]
- strb r1, [r0, #0x0]
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202FCC0
- bl FUN_0202F2F0
- bl FUN_0202E538
-_0202FCC0:
- ldr r0, _0202FCC8 ; =UNK_021C59F4
- strb r4, [r0, #0x0]
- pop {r4, pc}
- nop
-_0202FCC8: .word UNK_021C59F4
-
- thumb_func_start FUN_0202FCCC
-FUN_0202FCCC: ; 0x0202FCCC
- push {r3, lr}
- ldr r0, _0202FE14 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FE18 ; =0x00000683
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202FD40
- bl FUN_02033534
- cmp r0, #0x13
- blt _0202FD06
- ldr r0, _0202FE14 ; =UNK_021C59F4
- ldr r1, _0202FE1C ; =0x00000687
- ldr r0, [r0, #0x4]
- ldrb r1, [r0, r1]
- cmp r1, #0x0
- beq _0202FCF8
- mov r1, #0x26
- bl MOD04_021D78FC
- cmp r0, #0x0
- bne _0202FCFA
-_0202FCF8:
- b _0202FE10
-_0202FCFA:
- ldr r0, _0202FE14 ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202FE18 ; =0x00000683
- strb r2, [r1, r0]
- pop {r3, pc}
-_0202FD06:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0202FD1A
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202FD22
-_0202FD1A:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FE10
-_0202FD22:
- ldr r0, _0202FE20 ; =UNK_02105D58
- mov r1, #0x0
- strb r1, [r0, #0x0]
- bl FUN_0203050C
- ldr r0, _0202FE20 ; =UNK_02105D58
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202FE10
- ldr r0, _0202FE14 ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202FE18 ; =0x00000683
- strb r2, [r1, r0]
- pop {r3, pc}
-_0202FD40:
- bl FUN_02033534
- cmp r0, #0x13
- blt _0202FDB2
- ldr r0, _0202FE14 ; =UNK_021C59F4
- ldr r2, _0202FE1C ; =0x00000687
- ldr r0, [r0, #0x4]
- ldrb r1, [r0, r2]
- cmp r1, #0x0
- beq _0202FE10
- add r1, r2, #0x0
- sub r1, #0x57
- ldr r1, [r0, r1]
- cmp r1, #0x0
- beq _0202FD7A
- sub r2, #0x53
- ldr r1, [r0, r2]
- cmp r1, #0x3
- bgt _0202FE10
- ldr r1, _0202FE20 ; =UNK_02105D58
- ldrb r1, [r1, #0x0]
- cmp r1, #0x4
- bne _0202FD90
- bl FUN_02030930
- ldr r0, _0202FE20 ; =UNK_02105D58
- mov r1, #0x2
- strb r1, [r0, #0x0]
- b _0202FD90
-_0202FD7A:
- ldr r1, _0202FE20 ; =UNK_02105D58
- ldrb r1, [r1, #0x0]
- cmp r1, #0x4
- bne _0202FD90
- bl FUN_02030930
- cmp r0, #0x0
- beq _0202FE10
- ldr r0, _0202FE20 ; =UNK_02105D58
- mov r1, #0x2
- strb r1, [r0, #0x0]
-_0202FD90:
- ldr r0, _0202FE14 ; =UNK_021C59F4
- mov r1, #0x26
- ldr r0, [r0, #0x4]
- bl MOD04_021D78FC
- cmp r0, #0x0
- beq _0202FE10
- ldr r0, _0202FE20 ; =UNK_02105D58
- mov r1, #0x4
- strb r1, [r0, #0x0]
- ldr r0, _0202FE14 ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202FE24 ; =0x00000634
- ldr r1, [r2, r0]
- add r1, r1, #0x1
- str r1, [r2, r0]
- pop {r3, pc}
-_0202FDB2:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0202FDC6
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202FDCE
-_0202FDC6:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FE10
-_0202FDCE:
- ldr r0, _0202FE20 ; =UNK_02105D58
- ldrb r0, [r0, #0x0]
- cmp r0, #0x4
- bne _0202FE10
- ldr r0, _0202FE14 ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202FE24 ; =0x00000634
- ldr r1, [r2, r0]
- cmp r1, #0x3
- bgt _0202FE10
- add r0, #0x4b
- ldrb r1, [r2, r0]
- mov r0, #0x26
- mul r0, r1
- add r0, r2, r0
- bl FUN_02030930
- ldr r0, _0202FE14 ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202FE28 ; =0x0000067F
- ldrb r1, [r2, r0]
- mov r0, #0x1
- sub r1, r0, r1
- mov r0, #0x26
- mul r0, r1
- add r0, r2, r0
- bl FUN_02030930
- ldr r0, _0202FE20 ; =UNK_02105D58
- mov r1, #0x0
- strb r1, [r0, #0x0]
- bl FUN_0203050C
-_0202FE10:
- pop {r3, pc}
- nop
-_0202FE14: .word UNK_021C59F4
-_0202FE18: .word 0x00000683
-_0202FE1C: .word 0x00000687
-_0202FE20: .word UNK_02105D58
-_0202FE24: .word 0x00000634
-_0202FE28: .word 0x0000067F
-
- thumb_func_start FUN_0202FE2C
-FUN_0202FE2C: ; 0x0202FE2C
- push {r3-r7, lr}
- sub sp, #0x10
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- str r0, [sp, #0xc]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r0, r0, #0x1
- mov r7, #0x0
- str r0, [sp, #0x8]
- cmp r0, #0x0
- ble _0202FED0
- ldr r0, [sp, #0x0]
- mov r1, #0xc0
- add r6, r0, #0x0
- add r4, r7, #0x0
- add r5, r7, #0x0
- mul r6, r1
-_0202FE66:
- ldr r0, _0202FEE4 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FEE8 ; =0x0000047C
- add r0, r1, r0
- add r0, r0, r4
- bl FUN_0202D4BC
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0202FE90
- ldr r0, _0202FEE4 ; =UNK_021C59F4
- mov r1, #0xe
- ldr r0, [r0, #0x4]
- add r0, r6, r0
- add r2, r5, r0
- mov r0, #0x55
- lsl r0, r0, #0x2
- strb r1, [r2, r0]
-_0202FE90:
- ldr r0, _0202FEE4 ; =UNK_021C59F4
- mov r2, #0x55
- ldr r1, [r0, #0x4]
- ldr r0, _0202FEE8 ; =0x0000047C
- lsl r2, r2, #0x2
- add r0, r1, r0
- add r1, r1, r2
- add r1, r1, r6
- ldr r2, [sp, #0xc]
- add r0, r0, r4
- add r1, r1, r5
- bl FUN_0202D400
- ldr r0, _0202FEE4 ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- add r0, r6, r0
- add r1, r5, r0
- mov r0, #0x55
- lsl r0, r0, #0x2
- ldrb r0, [r1, r0]
- cmp r0, #0xe
- bne _0202FEC2
- ldr r0, [sp, #0x4]
- add r0, r0, #0x1
- str r0, [sp, #0x4]
-_0202FEC2:
- ldr r0, [sp, #0xc]
- add r7, r7, #0x1
- add r5, r5, r0
- ldr r0, [sp, #0x8]
- add r4, #0xc
- cmp r7, r0
- blt _0202FE66
-_0202FED0:
- ldr r1, [sp, #0x4]
- ldr r0, [sp, #0x8]
- cmp r1, r0
- bne _0202FEDE
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202FEDE:
- mov r0, #0x1
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-_0202FEE4: .word UNK_021C59F4
-_0202FEE8: .word 0x0000047C
-
- thumb_func_start FUN_0202FEEC
-FUN_0202FEEC: ; 0x0202FEEC
- push {r3-r7, lr}
- ldr r0, _02030064 ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202FEFE
- bl FUN_02033534
- cmp r0, #0x13
- blt _0202FF00
-_0202FEFE:
- b _02030062
-_0202FF00:
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- str r0, [sp, #0x0]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r6, r0, #0x1
- ldr r0, _02030068 ; =UNK_02105D58
- ldrb r1, [r0, #0x1]
- cmp r1, #0x2
- beq _0202FF2C
- ldrb r0, [r0, #0x1]
- cmp r0, #0x0
- beq _0202FF2C
- b _02030062
-_0202FF2C:
- ldr r0, _02030068 ; =UNK_02105D58
- ldrb r1, [r0, #0x1]
- add r1, r1, #0x1
- strb r1, [r0, #0x1]
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _0202FF4A
- ldr r0, _02030064 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x1a
- lsl r0, r0, #0x6
- ldrb r0, [r1, r0]
- bl FUN_0202FE2C
-_0202FF4A:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0202FF86
- bl FUN_02031280
- cmp r0, #0x0
- bne _0202FF86
- ldr r0, _02030064 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r3, r1, r0
- mov r0, #0x1a
- lsl r0, r0, #0x6
- ldrb r0, [r1, r0]
- mov r1, #0xc0
- add r2, r0, #0x0
- mul r2, r1
- add r0, r3, r2
- ldr r3, _0203006C ; =FUN_020304F0
- mov r2, #0xe
- bl FUN_0202D0D0
- cmp r0, #0x0
- bne _0202FF86
- ldr r0, _02030068 ; =UNK_02105D58
- ldrb r1, [r0, #0x1]
- sub r1, r1, #0x1
- strb r1, [r0, #0x1]
-_0202FF86:
- ldr r0, _02030068 ; =UNK_02105D58
- ldrb r1, [r0, #0x1]
- cmp r1, #0x1
- beq _0202FF94
- ldrb r0, [r0, #0x1]
- cmp r0, #0x3
- bne _0203000A
-_0202FF94:
- mov r4, #0x0
- cmp r6, #0x0
- ble _0202FFDC
- ldr r7, _02030064 ; =UNK_021C59F4
- add r5, r4, #0x0
-_0202FF9E:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0202FFBA
- ldr r0, [r7, #0x4]
- ldr r1, _02030070 ; =0x00000638
- add r0, r0, r5
- ldr r1, [r0, r1]
- add r2, r1, #0x1
- ldr r1, _02030070 ; =0x00000638
- str r2, [r0, r1]
- b _0202FFD4
-_0202FFBA:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FFD4
- cmp r4, #0x0
- bne _0202FFD4
- ldr r0, [r7, #0x4]
- ldr r1, _02030070 ; =0x00000638
- add r0, r0, r5
- ldr r1, [r0, r1]
- add r2, r1, #0x1
- ldr r1, _02030070 ; =0x00000638
- str r2, [r0, r1]
-_0202FFD4:
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, r6
- blt _0202FF9E
-_0202FFDC:
- ldr r0, _02030064 ; =UNK_021C59F4
- mov r1, #0x55
- ldr r2, [r0, #0x4]
- lsl r1, r1, #0x2
- add r4, r2, r1
- mov r1, #0x1a
- lsl r1, r1, #0x6
- ldrb r1, [r2, r1]
- mov r2, #0xc0
- mov r0, #0x0
- add r3, r1, #0x0
- mul r3, r2
- add r1, r4, r3
- bl FUN_0203026C
- ldr r0, _02030064 ; =UNK_021C59F4
- mov r1, #0x1a
- ldr r3, [r0, #0x4]
- lsl r1, r1, #0x6
- ldrb r2, [r3, r1]
- mov r0, #0x1
- sub r0, r0, r2
- strb r0, [r3, r1]
-_0203000A:
- mov r5, #0x0
- cmp r6, #0x0
- ble _0203004A
- add r4, r5, #0x0
- mov r7, #0xff
-_02030014:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030040
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030040
- ldr r0, _02030064 ; =UNK_021C59F4
- mov r1, #0x1a
- ldr r0, [r0, #0x4]
- lsl r1, r1, #0x6
- ldrb r2, [r0, r1]
- mov r1, #0xc0
- mul r1, r2
- add r0, r0, r1
- add r1, r4, r0
- mov r0, #0x55
- lsl r0, r0, #0x2
- strb r7, [r1, r0]
-_02030040:
- ldr r0, [sp, #0x0]
- add r5, r5, #0x1
- add r4, r4, r0
- cmp r5, r6
- blt _02030014
-_0203004A:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0203005A
- bl FUN_02031280
- cmp r0, #0x0
- beq _02030062
-_0203005A:
- ldr r0, _02030068 ; =UNK_02105D58
- ldrb r1, [r0, #0x1]
- add r1, r1, #0x1
- strb r1, [r0, #0x1]
-_02030062:
- pop {r3-r7, pc}
- .balign 4
-_02030064: .word UNK_021C59F4
-_02030068: .word UNK_02105D58
-_0203006C: .word FUN_020304F0
-_02030070: .word 0x00000638
-
- thumb_func_start FUN_02030074
-FUN_02030074: ; 0x02030074
- push {r3-r7, lr}
- ldr r0, _02030228 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0203022C ; =0x00000683
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _020300DC
- bl FUN_02033534
- cmp r0, #0x13
- blt _020300B4
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _020300DC
- ldr r0, _02030228 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r0, r1, r0
- mov r1, #0x4c
- bl MOD04_021D79B4
- cmp r0, #0x0
- beq _020300DC
- ldr r0, _02030228 ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0203022C ; =0x00000683
- strb r2, [r1, r0]
- pop {r3-r7, pc}
-_020300B4:
- bl FUN_0202CBD4
- cmp r0, #0x4
- beq _020300C4
- bl FUN_02031280
- cmp r0, #0x0
- beq _020300DC
-_020300C4:
- bl FUN_0202FEEC
- ldr r0, _02030230 ; =UNK_02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x2
- bne _020300DC
- ldr r0, _02030228 ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0203022C ; =0x00000683
- strb r2, [r1, r0]
- pop {r3-r7, pc}
-_020300DC:
- bl FUN_02033534
- cmp r0, #0x13
- blt _02030184
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _020300F0
- b _02030224
-_020300F0:
- ldr r0, _02030228 ; =UNK_021C59F4
- mov r1, #0x63
- ldr r2, [r0, #0x4]
- lsl r1, r1, #0x4
- ldr r0, [r2, r1]
- cmp r0, #0x0
- beq _02030130
- add r0, r1, #0x0
- add r0, #0xc
- ldr r0, [r2, r0]
- cmp r0, #0x3
- bgt _02030110
- add r1, #0x8
- ldr r0, [r2, r1]
- cmp r0, #0x3
- ble _02030112
-_02030110:
- b _02030224
-_02030112:
- ldr r0, _02030230 ; =UNK_02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x4
- bne _02030150
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030128
- mov r0, #0x0
- bl FUN_0202FE2C
-_02030128:
- ldr r0, _02030230 ; =UNK_02105D58
- mov r1, #0x2
- strb r1, [r0, #0x1]
- b _02030150
-_02030130:
- ldr r0, _02030230 ; =UNK_02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x4
- bne _0203014A
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _0203014A
- mov r0, #0x0
- bl FUN_0202FE2C
- cmp r0, #0x0
- beq _02030224
-_0203014A:
- ldr r0, _02030230 ; =UNK_02105D58
- mov r1, #0x2
- strb r1, [r0, #0x1]
-_02030150:
- ldr r0, _02030228 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r0, r1, r0
- mov r1, #0x4c
- bl MOD04_021D79B4
- cmp r0, #0x0
- beq _02030224
- ldr r0, _02030230 ; =UNK_02105D58
- mov r1, #0x4
- strb r1, [r0, #0x1]
- ldr r1, _02030228 ; =UNK_021C59F4
- ldr r0, _02030234 ; =0x00000638
- ldr r3, [r1, #0x4]
- ldr r2, [r3, r0]
- add r2, r2, #0x1
- str r2, [r3, r0]
- ldr r2, [r1, #0x4]
- add r1, r0, #0x4
- ldr r1, [r2, r1]
- add r0, r0, #0x4
- add r1, r1, #0x1
- str r1, [r2, r0]
- pop {r3-r7, pc}
-_02030184:
- bl FUN_0202CBD4
- cmp r0, #0x4
- beq _02030194
- bl FUN_02031280
- cmp r0, #0x0
- beq _02030224
-_02030194:
- ldr r0, _02030230 ; =UNK_02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x4
- bne _02030224
- ldr r6, _02030228 ; =UNK_021C59F4
- ldr r7, _02030234 ; =0x00000638
- mov r4, #0x1
- mov r5, #0x4
-_020301A4:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _020301BC
- ldr r0, [r6, #0x4]
- add r0, r0, r5
- ldr r0, [r0, r7]
- cmp r0, #0x3
- ble _020301D2
- pop {r3-r7, pc}
-_020301BC:
- cmp r4, #0x0
- bne _020301D2
- bl FUN_02031280
- cmp r0, #0x0
- beq _020301D2
- ldr r1, [r6, #0x4]
- ldr r0, _02030234 ; =0x00000638
- ldr r0, [r1, r0]
- cmp r0, #0x3
- bgt _02030224
-_020301D2:
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, #0x8
- blt _020301A4
- bl FUN_0202FA28
- cmp r0, #0x0
- bne _0203021A
- ldr r0, _02030228 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r2, r1, r0
- mov r0, #0x1a
- lsl r0, r0, #0x6
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- mul r0, r1
- add r0, r2, r0
- bl FUN_02030A00
- ldr r0, _02030228 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r2, r1, r0
- mov r0, #0x1a
- lsl r0, r0, #0x6
- ldrb r1, [r1, r0]
- mov r0, #0x1
- sub r1, r0, r1
- mov r0, #0xc0
- mul r0, r1
- add r0, r2, r0
- bl FUN_02030A00
-_0203021A:
- ldr r0, _02030230 ; =UNK_02105D58
- mov r1, #0x0
- strb r1, [r0, #0x1]
- bl FUN_0202FEEC
-_02030224:
- pop {r3-r7, pc}
- nop
-_02030228: .word UNK_021C59F4
-_0203022C: .word 0x00000683
-_02030230: .word UNK_02105D58
-_02030234: .word 0x00000638
-
- thumb_func_start FUN_02030238
-FUN_02030238: ; 0x02030238
- push {r4-r6, lr}
- ldr r4, _02030264 ; =UNK_021C59F4
- ldr r3, _02030268 ; =0x0000066F
- ldr r5, [r4, #0x4]
- ldrb r6, [r5, r3]
- cmp r6, #0x0
- beq _0203025C
- add r0, r3, #0x0
- sub r0, #0x3b
- ldr r0, [r5, r0]
- sub r1, r0, #0x1
- add r0, r3, #0x0
- sub r0, #0x3b
- str r1, [r5, r0]
- ldr r0, [r4, #0x4]
- mov r1, #0x0
- strb r1, [r0, r3]
- pop {r4-r6, pc}
-_0203025C:
- bl FUN_0203026C
- pop {r4-r6, pc}
- nop
-_02030264: .word UNK_021C59F4
-_02030268: .word 0x0000066F
-
- thumb_func_start FUN_0203026C
-FUN_0203026C: ; 0x0203026C
- push {r3-r7, lr}
- sub sp, #0x8
- ldr r0, _020303A0 ; =UNK_021C59F4
- add r5, r1, #0x0
- ldr r2, [r0, #0x4]
- ldr r0, _020303A4 ; =0x00000634
- ldr r1, [r2, r0]
- sub r1, r1, #0x1
- str r1, [r2, r0]
- cmp r5, #0x0
- beq _02030290
- ldrb r0, [r5, #0x0]
- cmp r0, #0xb
- bne _02030296
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030292
-_02030290:
- b _0203039C
-_02030292:
- add r5, r5, #0x1
- b _0203029E
-_02030296:
- bl FUN_0202FA28
- cmp r0, #0x0
- beq _0203039C
-_0203029E:
- ldr r0, _020303A0 ; =UNK_021C59F4
- ldr r1, _020303A8 ; =0x00000682
- ldr r0, [r0, #0x4]
- ldrb r1, [r0, r1]
- cmp r1, #0x0
- beq _020302B2
- ldrb r2, [r5, #0x0]
- mov r1, #0x1
- tst r1, r2
- bne _0203039C
-_020302B2:
- ldr r1, _020303A8 ; =0x00000682
- mov r2, #0x0
- strb r2, [r0, r1]
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _0203036E
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- add r6, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r0, r0, #0x1
- mov r4, #0x0
- str r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0203039C
- sub r0, r6, #0x1
- add r7, r4, #0x0
- str r0, [sp, #0x0]
-_020302EA:
- ldrb r0, [r5, #0x0]
- cmp r0, #0xff
- bne _02030302
- ldr r0, _020303A0 ; =UNK_021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020303AC ; =0x0000065C
- lsl r2, r4
- ldrh r0, [r1, r0]
- mvn r2, r2
- and r2, r0
- b _02030310
-_02030302:
- ldr r0, _020303A0 ; =UNK_021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020303AC ; =0x0000065C
- lsl r2, r4
- ldrh r0, [r1, r0]
- orr r2, r0
-_02030310:
- ldr r0, _020303AC ; =0x0000065C
- strh r2, [r1, r0]
- ldrb r2, [r5, #0x0]
- cmp r2, #0xff
- bne _0203031E
- add r5, r5, r6
- b _02030360
-_0203031E:
- cmp r2, #0xe
- bne _02030326
- add r5, r5, r6
- b _02030360
-_02030326:
- ldr r0, _020303A0 ; =UNK_021C59F4
- ldr r3, [r0, #0x4]
- ldr r0, _020303B0 ; =0x00000667
- add r1, r3, r4
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0203033E
- mov r0, #0x1
- tst r0, r2
- beq _0203033E
- add r5, r5, r6
- b _02030360
-_0203033E:
- ldr r0, _020303B4 ; =0x000004E8
- add r5, r5, #0x1
- add r0, r3, r0
- ldr r2, [sp, #0x0]
- ldr r3, _020303B8 ; =0x000005E6
- add r0, r0, r7
- add r1, r5, #0x0
- bl FUN_0202D3A4
- ldr r0, [sp, #0x0]
- mov r1, #0x0
- add r5, r5, r0
- ldr r0, _020303A0 ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- add r2, r0, r4
- ldr r0, _020303B0 ; =0x00000667
- strb r1, [r2, r0]
-_02030360:
- ldr r0, [sp, #0x4]
- add r4, r4, #0x1
- add r7, #0xc
- cmp r4, r0
- blt _020302EA
- add sp, #0x8
- pop {r3-r7, pc}
-_0203036E:
- ldr r0, _020303A0 ; =UNK_021C59F4
- ldrb r2, [r5, #0x1]
- ldr r1, [r0, #0x4]
- ldr r3, _020303AC ; =0x0000065C
- strh r2, [r1, r3]
- ldr r2, [r0, #0x4]
- ldrh r1, [r2, r3]
- lsl r1, r1, #0x8
- strh r1, [r2, r3]
- ldr r4, [r0, #0x4]
- ldrb r1, [r5, #0x2]
- ldrh r2, [r4, r3]
- add r1, r2, r1
- strh r1, [r4, r3]
- ldr r1, [r0, #0x4]
- mov r0, #0x47
- lsl r0, r0, #0x4
- add r0, r1, r0
- ldrb r2, [r5, #0x3]
- add r1, r5, #0x4
- sub r3, #0x5d
- bl FUN_0202D3A4
-_0203039C:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020303A0: .word UNK_021C59F4
-_020303A4: .word 0x00000634
-_020303A8: .word 0x00000682
-_020303AC: .word 0x0000065C
-_020303B0: .word 0x00000667
-_020303B4: .word 0x000004E8
-_020303B8: .word 0x000005E6
-
- thumb_func_start FUN_020303BC
-FUN_020303BC: ; 0x020303BC
- push {r4-r6, lr}
- ldr r3, _020303EC ; =UNK_021C59F4
- ldr r6, _020303F0 ; =0x0000066F
- ldr r5, [r3, #0x4]
- add r4, r5, r0
- ldrb r4, [r4, r6]
- cmp r4, #0x0
- beq _020303E4
- add r1, r6, #0x0
- sub r1, #0x37
- add r4, r5, r1
- lsl r2, r0, #0x2
- ldr r1, [r4, r2]
- sub r1, r1, #0x1
- str r1, [r4, r2]
- ldr r1, [r3, #0x4]
- mov r2, #0x0
- add r0, r1, r0
- strb r2, [r0, r6]
- pop {r4-r6, pc}
-_020303E4:
- bl FUN_020303F4
- pop {r4-r6, pc}
- nop
-_020303EC: .word UNK_021C59F4
-_020303F0: .word 0x0000066F
-
- thumb_func_start FUN_020303F4
-FUN_020303F4: ; 0x020303F4
- push {r4-r6, lr}
- ldr r3, _020304B8 ; =UNK_021C59F4
- add r5, r0, #0x0
- ldr r0, [r3, #0x4]
- ldr r2, _020304BC ; =0x00000638
- add r4, r1, #0x0
- add r1, r0, r2
- lsl r0, r5, #0x2
- ldr r6, [r1, r0]
- sub r6, r6, #0x1
- str r6, [r1, r0]
- cmp r4, #0x0
- beq _020304B4
- ldr r0, [r3, #0x4]
- add r2, #0x2f
- add r0, r0, r2
- ldrb r1, [r0, r5]
- cmp r1, #0x0
- beq _02030422
- ldrb r2, [r4, #0x0]
- mov r1, #0x1
- tst r1, r2
- bne _020304B4
-_02030422:
- mov r1, #0x0
- strb r1, [r0, r5]
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030478
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- add r6, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- ldrb r1, [r4, #0x0]
- mov r0, #0x2
- tst r0, r1
- bne _02030468
- ldr r0, _020304B8 ; =UNK_021C59F4
- ldr r3, _020304C0 ; =0x0000065E
- ldr r1, [r0, #0x4]
- ldr r0, _020304C4 ; =0x0000047C
- add r2, r6, #0x0
- add r1, r1, r0
- mov r0, #0xc
- mul r0, r5
- add r0, r1, r0
- add r1, r4, #0x0
- bl FUN_0202D3A4
-_02030468:
- ldr r0, _020304B8 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _020304C8 ; =0x0000065F
- add r1, r1, r0
- ldrb r0, [r1, r5]
- add r0, r0, #0x1
- strb r0, [r1, r5]
- pop {r4-r6, pc}
-_02030478:
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_020307E4
- ldrb r1, [r4, #0x0]
- mov r0, #0x2
- tst r0, r1
- bne _020304B4
- mov r0, #0xc
- add r6, r5, #0x0
- mul r6, r0
- ldr r0, _020304B8 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _020304CC ; =0x000004E8
- add r0, r1, r0
- add r0, r0, r6
- bl FUN_0202D498
- cmp r0, #0xb
- blt _020304B4
- ldr r0, _020304B8 ; =UNK_021C59F4
- ldr r3, _020304D0 ; =0x0000066E
- ldr r1, [r0, #0x4]
- ldr r0, _020304CC ; =0x000004E8
- mov r2, #0xb
- add r0, r1, r0
- add r0, r0, r6
- add r1, r4, #0x1
- bl FUN_0202D3A4
-_020304B4:
- pop {r4-r6, pc}
- nop
-_020304B8: .word UNK_021C59F4
-_020304BC: .word 0x00000638
-_020304C0: .word 0x0000065E
-_020304C4: .word 0x0000047C
-_020304C8: .word 0x0000065F
-_020304CC: .word 0x000004E8
-_020304D0: .word 0x0000066E
-
- thumb_func_start FUN_020304D4
-FUN_020304D4: ; 0x020304D4
- push {r3, lr}
- cmp r0, #0x0
- beq _020304E4
- ldr r0, _020304EC ; =UNK_02105D58
- ldrb r1, [r0, #0x0]
- add r1, r1, #0x1
- strb r1, [r0, #0x0]
- pop {r3, pc}
-_020304E4:
- bl ErrorHandling
- pop {r3, pc}
- nop
-_020304EC: .word UNK_02105D58
-
- thumb_func_start FUN_020304F0
-FUN_020304F0: ; 0x020304F0
- push {r3, lr}
- cmp r0, #0x0
- beq _02030500
- ldr r0, _02030508 ; =UNK_02105D58
- ldrb r1, [r0, #0x1]
- add r1, r1, #0x1
- strb r1, [r0, #0x1]
- pop {r3, pc}
-_02030500:
- bl ErrorHandling
- pop {r3, pc}
- nop
-_02030508: .word UNK_02105D58
-
- thumb_func_start FUN_0203050C
-FUN_0203050C: ; 0x0203050C
- push {r4, lr}
- ldr r0, _02030660 ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0203051E
- bl FUN_02033534
- cmp r0, #0x13
- blt _02030520
-_0203051E:
- b _0203065E
-_02030520:
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- add r4, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- bl FUN_02031280
- cmp r0, #0x0
- beq _02030594
- ldr r0, _02030664 ; =UNK_02105D58
- ldrb r1, [r0, #0x0]
- cmp r1, #0x2
- beq _02030550
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02030594
-_02030550:
- ldr r0, _02030664 ; =UNK_02105D58
- ldrb r1, [r0, #0x0]
- add r1, r1, #0x1
- strb r1, [r0, #0x0]
- mov r0, #0x1
- bl FUN_020304D4
- ldr r0, _02030660 ; =UNK_021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r3, [r0, #0x4]
- mov r0, #0x0
- ldrb r2, [r3, r1]
- mov r1, #0x26
- mul r1, r2
- lsl r2, r4, #0x10
- add r1, r3, r1
- lsr r2, r2, #0x10
- bl FUN_020303F4
- ldr r2, _02030660 ; =UNK_021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r4, [r2, #0x4]
- mov r0, #0x1
- ldrb r3, [r4, r1]
- sub r0, r0, r3
- strb r0, [r4, r1]
- add r0, r1, #0x0
- ldr r2, [r2, #0x4]
- sub r0, #0x4b
- ldr r0, [r2, r0]
- sub r1, #0x4b
- add r0, r0, #0x1
- str r0, [r2, r1]
- pop {r4, pc}
-_02030594:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0203065E
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _020305AE
- bl FUN_02031190
- pop {r4, pc}
-_020305AE:
- ldr r0, _02030664 ; =UNK_02105D58
- ldrb r1, [r0, #0x0]
- cmp r1, #0x2
- beq _020305BC
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0203065E
-_020305BC:
- bl FUN_02031190
- cmp r0, #0x0
- beq _02030612
- ldr r0, _02030664 ; =UNK_02105D58
- ldr r3, _0203066C ; =FUN_020304D4
- ldrb r1, [r0, #0x0]
- add r1, r1, #0x1
- strb r1, [r0, #0x0]
- ldr r0, _02030660 ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _02030668 ; =0x0000067F
- ldrb r1, [r2, r0]
- mov r0, #0x26
- mul r0, r1
- lsl r1, r4, #0x10
- add r0, r2, r0
- lsr r1, r1, #0x10
- mov r2, #0xe
- bl FUN_0202D0D0
- cmp r0, #0x0
- bne _020305F4
- ldr r0, _02030664 ; =UNK_02105D58
- ldrb r1, [r0, #0x0]
- sub r1, r1, #0x1
- strb r1, [r0, #0x0]
- pop {r4, pc}
-_020305F4:
- ldr r2, _02030660 ; =UNK_021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r4, [r2, #0x4]
- mov r0, #0x1
- ldrb r3, [r4, r1]
- sub r0, r0, r3
- strb r0, [r4, r1]
- add r0, r1, #0x0
- ldr r2, [r2, #0x4]
- sub r0, #0x4b
- ldr r0, [r2, r0]
- sub r1, #0x4b
- add r0, r0, #0x1
- str r0, [r2, r1]
- pop {r4, pc}
-_02030612:
- bl FUN_0202CB8C
- ldr r1, _02030670 ; =0x0000FFFE
- tst r0, r1
- beq _0203065E
- ldr r0, _02030664 ; =UNK_02105D58
- ldrb r1, [r0, #0x0]
- add r1, r1, #0x1
- strb r1, [r0, #0x0]
- mov r0, #0x1
- bl FUN_020304D4
- ldr r0, _02030660 ; =UNK_021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r3, [r0, #0x4]
- mov r0, #0x0
- ldrb r2, [r3, r1]
- mov r1, #0x26
- mul r1, r2
- lsl r2, r4, #0x10
- add r1, r3, r1
- lsr r2, r2, #0x10
- bl FUN_020303F4
- ldr r2, _02030660 ; =UNK_021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r4, [r2, #0x4]
- mov r0, #0x1
- ldrb r3, [r4, r1]
- sub r0, r0, r3
- strb r0, [r4, r1]
- add r0, r1, #0x0
- ldr r2, [r2, #0x4]
- sub r0, #0x4b
- ldr r0, [r2, r0]
- sub r1, #0x4b
- add r0, r0, #0x1
- str r0, [r2, r1]
-_0203065E:
- pop {r4, pc}
- .balign 4
-_02030660: .word UNK_021C59F4
-_02030664: .word UNK_02105D58
-_02030668: .word 0x0000067F
-_0203066C: .word FUN_020304D4
-_02030670: .word 0x0000FFFE
-
- thumb_func_start FUN_02030674
-FUN_02030674: ; 0x02030674
- push {r3-r7, lr}
- ldr r7, _02030798 ; =UNK_021C59F4
- mov r6, #0x0
- ldr r5, [r7, #0x4]
- ldr r2, _0203079C ; =0x0000062C
- add r4, r6, #0x0
- ldrb r0, [r5, r2]
- cmp r0, #0x0
- beq _02030690
- sub r1, r2, #0x4
- ldrh r1, [r5, r1]
- mov r3, #0xf0
- tst r3, r1
- bne _02030692
-_02030690:
- b _02030794
-_02030692:
- cmp r0, #0x2
- bne _020306D0
- mov r0, #0x20
- tst r0, r1
- beq _020306A4
- mov r0, #0x10
- orr r0, r6
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_020306A4:
- mov r0, #0x10
- tst r0, r1
- beq _020306B2
- mov r0, #0x20
- orr r0, r4
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_020306B2:
- mov r0, #0x40
- tst r0, r1
- beq _020306C0
- mov r0, #0x80
- orr r0, r4
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_020306C0:
- mov r0, #0x80
- tst r0, r1
- beq _0203077E
- mov r0, #0x40
- orr r0, r4
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- b _0203077E
-_020306D0:
- add r0, r2, #0x2
- ldrh r0, [r5, r0]
- cmp r0, #0x0
- beq _020306F2
- add r4, r0, #0x0
- add r0, r2, #0x1
- ldrsb r0, [r5, r0]
- sub r1, r0, #0x1
- add r0, r2, #0x1
- strb r1, [r5, r0]
- ldr r1, [r7, #0x4]
- ldrsb r0, [r1, r0]
- cmp r0, #0x0
- bge _0203077E
- add r0, r2, #0x2
- strh r6, [r1, r0]
- b _0203077E
-_020306F2:
- add r0, r2, #0x0
- sub r0, #0x34
- add r6, r5, r0
- sub r2, #0x34
- ldr r0, [r6, #0x8]
- ldr r1, [r6, #0xc]
- ldr r2, [r5, r2]
- ldr r3, [r6, #0x4]
- bl _ll_mul
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldr r0, [r6, #0x10]
- ldr r1, [r6, #0x14]
- add r0, r0, r3
- adc r1, r2
- ldr r2, _020307A0 ; =0x000005F8
- str r0, [r5, r2]
- mov r2, #0x0
- str r1, [r6, #0x4]
- lsr r0, r1, #0x1e
- lsl r1, r2, #0x2
- orr r1, r0
- cmp r1, #0x3
- bhi _02030746
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02030730: ; jump table (using 16-bit offset)
- .short _02030738 - _02030730 - 2; case 0
- .short _0203073C - _02030730 - 2; case 1
- .short _02030740 - _02030730 - 2; case 2
- .short _02030744 - _02030730 - 2; case 3
-_02030738:
- mov r4, #0x20
- b _02030746
-_0203073C:
- mov r4, #0x10
- b _02030746
-_02030740:
- mov r4, #0x40
- b _02030746
-_02030744:
- mov r4, #0x80
-_02030746:
- ldr r0, _02030798 ; =UNK_021C59F4
- ldr r5, [r0, #0x4]
- ldr r0, _020307A0 ; =0x000005F8
- add r6, r5, r0
- ldr r0, [r6, #0x8]
- ldr r1, [r6, #0xc]
- ldr r2, [r6, #0x0]
- ldr r3, [r6, #0x4]
- bl _ll_mul
- ldr r3, [r6, #0x10]
- ldr r2, [r6, #0x14]
- add r0, r3, r0
- adc r2, r1
- ldr r1, _020307A0 ; =0x000005F8
- mov r3, #0x0
- str r0, [r5, r1]
- str r2, [r6, #0x4]
- lsr r0, r2, #0x1c
- lsl r2, r3, #0x4
- orr r2, r0
- add r0, r1, #0x0
- add r0, #0x35
- strb r2, [r5, r0]
- ldr r0, _02030798 ; =UNK_021C59F4
- add r1, #0x36
- ldr r0, [r0, #0x4]
- strh r4, [r0, r1]
-_0203077E:
- ldr r2, _02030798 ; =UNK_021C59F4
- ldr r1, _020307A4 ; =0x00000628
- ldr r5, [r2, #0x4]
- mov r0, #0xf0
- ldrh r3, [r5, r1]
- bic r3, r0
- strh r3, [r5, r1]
- ldr r2, [r2, #0x4]
- ldrh r0, [r2, r1]
- add r0, r0, r4
- strh r0, [r2, r1]
-_02030794:
- pop {r3-r7, pc}
- nop
-_02030798: .word UNK_021C59F4
-_0203079C: .word 0x0000062C
-_020307A0: .word 0x000005F8
-_020307A4: .word 0x00000628
-
- thumb_func_start FUN_020307A8
-FUN_020307A8: ; 0x020307A8
- ldr r0, _020307B4 ; =UNK_021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020307B8 ; =0x0000062C
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_020307B4: .word UNK_021C59F4
-_020307B8: .word 0x0000062C
-
- thumb_func_start FUN_020307BC
-FUN_020307BC: ; 0x020307BC
- ldr r0, _020307C8 ; =UNK_021C59F4
- mov r2, #0x2
- ldr r1, [r0, #0x4]
- ldr r0, _020307CC ; =0x0000062C
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_020307C8: .word UNK_021C59F4
-_020307CC: .word 0x0000062C
-
- thumb_func_start FUN_020307D0
-FUN_020307D0: ; 0x020307D0
- ldr r0, _020307DC ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _020307E0 ; =0x0000062C
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_020307DC: .word UNK_021C59F4
-_020307E0: .word 0x0000062C
-
- thumb_func_start FUN_020307E4
-FUN_020307E4: ; 0x020307E4
- push {r4-r7}
- ldr r4, _02030868 ; =UNK_021C59F4
- lsl r6, r1, #0x1
- ldr r2, [r4, #0x4]
- mov r5, #0x0
- add r3, r2, r6
- mov r2, #0x61
- lsl r2, r2, #0x4
- strh r5, [r3, r2]
- ldrb r5, [r0, #0x0]
- mov r3, #0x10
- add r7, r5, #0x0
- and r7, r3
- cmp r7, #0x10
- bne _02030860
- mov r7, #0xc
- and r5, r7
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- bne _0203081A
- ldr r3, [r4, #0x4]
- add r4, r3, r2
- ldrh r3, [r4, r6]
- mov r2, #0x40
- orr r2, r3
- strh r2, [r4, r6]
- b _0203084C
-_0203081A:
- cmp r5, #0x4
- bne _0203082C
- ldr r3, [r4, #0x4]
- add r4, r3, r2
- ldrh r3, [r4, r6]
- mov r2, #0x80
- orr r2, r3
- strh r2, [r4, r6]
- b _0203084C
-_0203082C:
- cmp r5, #0x8
- bne _0203083E
- ldr r3, [r4, #0x4]
- add r4, r3, r2
- ldrh r3, [r4, r6]
- mov r2, #0x20
- orr r2, r3
- strh r2, [r4, r6]
- b _0203084C
-_0203083E:
- cmp r5, #0xc
- bne _0203084C
- ldr r4, [r4, #0x4]
- add r4, r4, r2
- ldrh r2, [r4, r6]
- orr r2, r3
- strh r2, [r4, r6]
-_0203084C:
- ldrb r0, [r0, #0x0]
- asr r2, r0, #0x5
- mov r0, #0x7
- and r2, r0
- ldr r0, _02030868 ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- add r1, r0, r1
- mov r0, #0x62
- lsl r0, r0, #0x4
- strb r2, [r1, r0]
-_02030860:
- mov r0, #0x1
- pop {r4-r7}
- bx lr
- nop
-_02030868: .word UNK_021C59F4
-
- thumb_func_start FUN_0203086C
-FUN_0203086C: ; 0x0203086C
- bx lr
- .balign 4
-
- thumb_func_start FUN_02030870
-FUN_02030870: ; 0x02030870
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _0203091C ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030920 ; =0x0000062A
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _02030884
- mov r0, #0x0
- pop {r4, pc}
-_02030884:
- bl FUN_02030FE0
- cmp r0, #0x0
- bne _02030890
- mov r0, #0x0
- pop {r4, pc}
-_02030890:
- ldr r0, _0203091C ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _02030924 ; =0x00000681
- ldrb r1, [r2, r0]
- cmp r1, #0x0
- beq _020308A0
- sub r1, r1, #0x1
- strb r1, [r2, r0]
-_020308A0:
- ldr r1, _0203091C ; =UNK_021C59F4
- ldr r0, _02030928 ; =0x00000628
- ldr r2, [r1, #0x4]
- mov r3, #0x40
- ldrh r2, [r2, r0]
- tst r3, r2
- beq _020308C0
- ldrb r3, [r4, #0x0]
- mov r2, #0x10
- add r0, #0x59
- orr r2, r3
- strb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- mov r2, #0x8
- strb r2, [r1, r0]
- b _02030906
-_020308C0:
- mov r3, #0x80
- tst r3, r2
- beq _020308D8
- ldrb r3, [r4, #0x0]
- mov r2, #0x14
- add r0, #0x59
- orr r2, r3
- strb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- mov r2, #0x8
- strb r2, [r1, r0]
- b _02030906
-_020308D8:
- mov r3, #0x20
- tst r3, r2
- beq _020308F0
- ldrb r3, [r4, #0x0]
- mov r2, #0x18
- add r0, #0x59
- orr r2, r3
- strb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- mov r2, #0x8
- strb r2, [r1, r0]
- b _02030906
-_020308F0:
- mov r3, #0x10
- tst r2, r3
- beq _02030906
- ldrb r3, [r4, #0x0]
- mov r2, #0x1c
- add r0, #0x59
- orr r2, r3
- strb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- mov r2, #0x8
- strb r2, [r1, r0]
-_02030906:
- ldr r0, _0203091C ; =UNK_021C59F4
- ldrb r2, [r4, #0x0]
- ldr r1, [r0, #0x4]
- ldr r0, _0203092C ; =0x0000062B
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x5
- orr r0, r2
- strb r0, [r4, #0x0]
- mov r0, #0x0
- pop {r4, pc}
- nop
-_0203091C: .word UNK_021C59F4
-_02030920: .word 0x0000062A
-_02030924: .word 0x00000681
-_02030928: .word 0x00000628
-_0203092C: .word 0x0000062B
-
- thumb_func_start FUN_02030930
-FUN_02030930: ; 0x02030930
- push {r3-r5, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- add r5, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- ldr r0, _020309F0 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _020309F4 ; =0x00000684
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030960
- mov r0, #0x0
- b _02030962
-_02030960:
- mov r0, #0x1
-_02030962:
- strb r0, [r4, #0x0]
- bl FUN_0202FA28
- cmp r0, #0x0
- bne _02030972
- add r0, r4, #0x0
- bl FUN_02030870
-_02030972:
- ldr r1, _020309F0 ; =UNK_021C59F4
- ldr r0, _020309F4 ; =0x00000684
- ldr r2, [r1, #0x4]
- mov r3, #0x0
- strb r3, [r2, r0]
- ldr r1, [r1, #0x4]
- ldr r0, _020309F8 ; =0x0000054C
- add r0, r1, r0
- bl FUN_0202D4E4
- cmp r0, #0x0
- beq _0203099E
- ldrb r1, [r4, #0x0]
- mov r0, #0x2
- orr r0, r1
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x0]
- cmp r0, #0x2
- bne _020309E8
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r5, pc}
-_0203099E:
- sub r0, r5, #0x1
- str r0, [sp, #0x4]
- add r0, r4, #0x1
- str r0, [sp, #0x0]
- ldr r0, _020309F0 ; =UNK_021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020309F8 ; =0x0000054C
- add r0, r1, r0
- add r1, sp, #0x0
- bl FUN_0202D760
- cmp r0, #0x0
- bne _020309C4
- ldr r0, _020309F0 ; =UNK_021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020309F4 ; =0x00000684
- strb r2, [r1, r0]
-_020309C4:
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _020309E8
- ldr r2, _020309F0 ; =UNK_021C59F4
- ldr r1, _020309FC ; =0x0000065E
- ldr r3, [r2, #0x4]
- ldrb r0, [r3, r1]
- add r0, r0, #0x1
- strb r0, [r3, r1]
- ldr r2, [r2, #0x4]
- ldrb r0, [r4, #0x0]
- ldrb r1, [r2, r1]
- lsl r2, r1, #0x4
- mov r1, #0xf0
- and r1, r2
- orr r0, r1
- strb r0, [r4, #0x0]
-_020309E8:
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r5, pc}
- nop
-_020309F0: .word UNK_021C59F4
-_020309F4: .word 0x00000684
-_020309F8: .word 0x0000054C
-_020309FC: .word 0x0000065E
-
- thumb_func_start FUN_02030A00
-FUN_02030A00: ; 0x02030A00
- push {r4, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- mov r0, #0xb
- strb r0, [r4, #0x0]
- ldr r0, _02030A6C ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030A70 ; =0x00000685
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030A1A
- mov r0, #0x0
- b _02030A1C
-_02030A1A:
- mov r0, #0x1
-_02030A1C:
- strb r0, [r4, #0x1]
- bl FUN_0202CB8C
- asr r1, r0, #0x8
- strb r1, [r4, #0x2]
- strb r0, [r4, #0x3]
- mov r0, #0xbb
- str r0, [sp, #0x4]
- add r0, r4, #0x5
- str r0, [sp, #0x0]
- ldr r0, _02030A6C ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030A74 ; =0x0000056C
- add r0, r1, r0
- add r1, sp, #0x0
- bl FUN_0202D760
- cmp r0, #0x0
- beq _02030A5A
- ldr r0, _02030A6C ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030A70 ; =0x00000685
- strb r2, [r1, r0]
- ldr r1, [sp, #0x4]
- mov r0, #0xbb
- sub r0, r0, r1
- add sp, #0x8
- strb r0, [r4, #0x4]
- pop {r4, pc}
-_02030A5A:
- ldr r0, _02030A6C ; =UNK_021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _02030A70 ; =0x00000685
- strb r2, [r1, r0]
- mov r0, #0xbb
- strb r0, [r4, #0x4]
- add sp, #0x8
- pop {r4, pc}
- .balign 4
-_02030A6C: .word UNK_021C59F4
-_02030A70: .word 0x00000685
-_02030A74: .word 0x0000056C
-
- thumb_func_start FUN_02030A78
-FUN_02030A78: ; 0x02030A78
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030A9C
- bl FUN_02031280
- cmp r0, #0x0
- bne _02030A9C
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030A9C:
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- ldr r0, _02030AD4 ; =UNK_021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030AD8 ; =0x0000054C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- cmp r0, #0x0
- beq _02030AC0
- add sp, #0x8
- mov r0, #0x1
- pop {r4-r6, pc}
-_02030AC0:
- bl FUN_02033534
- cmp r0, #0xa
- bne _02030ACC
- bl FUN_02031454
-_02030ACC:
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
- nop
-_02030AD4: .word UNK_021C59F4
-_02030AD8: .word 0x0000054C
-
- thumb_func_start FUN_02030ADC
-FUN_02030ADC: ; 0x02030ADC
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030B00
- bl FUN_02031280
- cmp r0, #0x0
- bne _02030B00
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030B00:
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, _02030B34 ; =UNK_021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030B38 ; =0x0000054C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- cmp r0, #0x0
- beq _02030B22
- add sp, #0x8
- mov r0, #0x1
- pop {r4-r6, pc}
-_02030B22:
- bl FUN_02033534
- cmp r0, #0xa
- bne _02030B2E
- bl FUN_02031454
-_02030B2E:
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
- .balign 4
-_02030B34: .word UNK_021C59F4
-_02030B38: .word 0x0000054C
-
- thumb_func_start FUN_02030B3C
-FUN_02030B3C: ; 0x02030B3C
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- beq _02030B58
- bl ErrorHandling
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030B58:
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030B70
- bl FUN_02031280
- cmp r0, #0x0
- bne _02030B70
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030B70:
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030B86
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02030A78
- add sp, #0x8
- pop {r4-r6, pc}
-_02030B86:
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- ldr r0, _02030BBC ; =UNK_021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030BC0 ; =0x0000056C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- cmp r0, #0x0
- beq _02030BAA
- add sp, #0x8
- mov r0, #0x1
- pop {r4-r6, pc}
-_02030BAA:
- bl FUN_02033534
- cmp r0, #0xa
- bne _02030BB6
- bl FUN_02031454
-_02030BB6:
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
- .balign 4
-_02030BBC: .word UNK_021C59F4
-_02030BC0: .word 0x0000056C
-
- thumb_func_start FUN_02030BC4
-FUN_02030BC4: ; 0x02030BC4
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- beq _02030BE0
- bl FUN_02031454
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030BE0:
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030BF8
- bl FUN_02031280
- cmp r0, #0x0
- bne _02030BF8
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030BF8:
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030C0E
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02030ADC
- add sp, #0x8
- pop {r4-r6, pc}
-_02030C0E:
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, _02030C44 ; =UNK_021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030C48 ; =0x0000056C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- cmp r0, #0x0
- beq _02030C30
- add sp, #0x8
- mov r0, #0x1
- pop {r4-r6, pc}
-_02030C30:
- bl FUN_02033534
- cmp r0, #0xa
- bne _02030C3C
- bl FUN_02031454
-_02030C3C:
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
- nop
-_02030C44: .word UNK_021C59F4
-_02030C48: .word 0x0000056C
-
- thumb_func_start FUN_02030C4C
-FUN_02030C4C: ; 0x02030C4C
- ldr r3, _02030C54 ; =FUN_02030BC4
- mov r2, #0x0
- bx r3
- nop
-_02030C54: .word FUN_02030BC4
-
- thumb_func_start FUN_02030C58
-FUN_02030C58: ; 0x02030C58
- ldr r0, _02030C64 ; =UNK_021C59F4
- ldr r3, _02030C68 ; =FUN_0202D498
- ldr r1, [r0, #0x4]
- ldr r0, _02030C6C ; =0x00000464
- add r0, r1, r0
- bx r3
- .balign 4
-_02030C64: .word UNK_021C59F4
-_02030C68: .word FUN_0202D498
-_02030C6C: .word 0x00000464
-
- thumb_func_start FUN_02030C70
-FUN_02030C70: ; 0x02030C70
- push {r4, lr}
- ldr r4, [sp, #0x8]
- bl FUN_0202D934
- mov r0, #0xee
- strb r0, [r4, #0xa]
- ldr r0, _02030C88 ; =0x0000FFFF
- strh r0, [r4, #0x8]
- mov r0, #0x0
- str r0, [r4, #0x4]
- str r0, [r4, #0x0]
- pop {r4, pc}
- .balign 4
-_02030C88: .word 0x0000FFFF
-
- thumb_func_start FUN_02030C8C
-FUN_02030C8C: ; 0x02030C8C
- push {r4-r7, lr}
- sub sp, #0x14
- add r6, r0, #0x0
- str r1, [sp, #0x4]
- str r2, [sp, #0x8]
- ldr r5, [sp, #0x28]
- bl FUN_0202D478
- cmp r0, #0x0
- beq _02030D94
-_02030CA0:
- ldrb r7, [r5, #0xa]
- cmp r7, #0xee
- bne _02030CB2
- add r0, r6, #0x0
- bl FUN_0202D41C
- add r7, r0, #0x0
- cmp r7, #0xee
- beq _02030D8A
-_02030CB2:
- mov r0, #0x4
- ldrsh r0, [r6, r0]
- strb r7, [r5, #0xa]
- ldrh r4, [r5, #0x8]
- str r0, [sp, #0x10]
- ldr r0, _02030D98 ; =0x0000FFFF
- cmp r4, r0
- bne _02030D06
- add r0, r7, #0x0
- bl FUN_0202D9A0
- add r4, r0, #0x0
- ldr r0, _02030D9C ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030DA0 ; =0x00000689
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030D94
- ldr r0, _02030D98 ; =0x0000FFFF
- cmp r4, r0
- bne _02030D04
- add r0, r6, #0x0
- bl FUN_0202D478
- cmp r0, #0x1
- bge _02030CEE
- ldr r0, [sp, #0x10]
- add sp, #0x14
- strh r0, [r6, #0x4]
- pop {r4-r7, pc}
-_02030CEE:
- add r0, r6, #0x0
- bl FUN_0202D41C
- lsl r4, r0, #0x8
- add r0, r6, #0x0
- bl FUN_0202D41C
- add r4, r4, r0
- mov r0, #0x4
- ldrsh r0, [r6, r0]
- str r0, [sp, #0x10]
-_02030D04:
- strh r4, [r5, #0x8]
-_02030D06:
- add r0, r7, #0x0
- bl FUN_0202DA04
- cmp r0, #0x0
- beq _02030D5E
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- bne _02030D22
- ldrh r2, [r5, #0x8]
- ldr r1, [sp, #0x4]
- add r0, r7, #0x0
- bl FUN_0202DA40
- str r0, [r5, #0x4]
-_02030D22:
- ldr r2, [r5, #0x0]
- ldr r1, [sp, #0x8]
- add r0, r6, #0x0
- sub r2, r4, r2
- bl FUN_0202D400
- ldr r2, [r5, #0x4]
- str r0, [sp, #0xc]
- cmp r2, #0x0
- beq _02030D42
- ldr r1, [r5, #0x0]
- ldr r0, [sp, #0x8]
- add r1, r2, r1
- ldr r2, [sp, #0xc]
- bl MI_CpuCopy8
-_02030D42:
- ldr r1, [r5, #0x0]
- ldr r0, [sp, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x0]
- cmp r0, r4
- blt _02030D8A
- str r5, [sp, #0x0]
- ldr r0, [sp, #0x4]
- ldr r3, [r5, #0x4]
- add r1, r7, #0x0
- add r2, r4, #0x0
- bl FUN_02030C70
- b _02030D8A
-_02030D5E:
- add r0, r6, #0x0
- bl FUN_0202D478
- cmp r0, r4
- blt _02030D82
- ldr r1, [sp, #0x8]
- add r0, r6, #0x0
- add r2, r4, #0x0
- bl FUN_0202D400
- ldr r0, [sp, #0x4]
- ldr r3, [sp, #0x8]
- add r1, r7, #0x0
- add r2, r4, #0x0
- str r5, [sp, #0x0]
- bl FUN_02030C70
- b _02030D8A
-_02030D82:
- ldr r0, [sp, #0x10]
- add sp, #0x14
- strh r0, [r6, #0x4]
- pop {r4-r7, pc}
-_02030D8A:
- add r0, r6, #0x0
- bl FUN_0202D478
- cmp r0, #0x0
- bne _02030CA0
-_02030D94:
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-_02030D98: .word 0x0000FFFF
-_02030D9C: .word UNK_021C59F4
-_02030DA0: .word 0x00000689
-
- thumb_func_start FUN_02030DA4
-FUN_02030DA4: ; 0x02030DA4
- push {r3, lr}
- ldr r0, _02030DF0 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _02030DEE
- ldr r0, _02030DF4 ; =0x0000068B
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030DEE
- mov r0, #0x47
- lsl r0, r0, #0x4
- add r0, r1, r0
- bl FUN_0202D4BC
- ldr r0, _02030DF0 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x47
- lsl r0, r0, #0x4
- add r0, r1, r0
- bl FUN_0202D478
- cmp r0, #0x0
- ble _02030DEE
- ldr r0, _02030DF0 ; =UNK_021C59F4
- mov r2, #0x47
- ldr r3, [r0, #0x4]
- ldr r0, _02030DF8 ; =0x000005EC
- lsl r2, r2, #0x4
- add r0, r3, r0
- str r0, [sp, #0x0]
- add r0, r3, r2
- sub r2, #0x10
- ldr r2, [r3, r2]
- mov r1, #0x0
- mov r3, #0x1
- bl FUN_02030C8C
-_02030DEE:
- pop {r3, pc}
- .balign 4
-_02030DF0: .word UNK_021C59F4
-_02030DF4: .word 0x0000068B
-_02030DF8: .word 0x000005EC
-
- thumb_func_start FUN_02030DFC
-FUN_02030DFC: ; 0x02030DFC
- push {r3-r7, lr}
- ldr r0, _02030E6C ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _02030E68
- ldr r0, _02030E70 ; =0x0000068B
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030E68
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r7, r0, #0x1
- mov r4, #0x0
- cmp r7, #0x0
- ble _02030E68
- ldr r6, _02030E6C ; =UNK_021C59F4
- add r5, r4, #0x0
-_02030E26:
- ldr r1, [r6, #0x4]
- ldr r0, _02030E74 ; =0x000004E8
- add r0, r1, r0
- add r0, r0, r5
- bl FUN_0202D4BC
- ldr r1, [r6, #0x4]
- ldr r0, _02030E74 ; =0x000004E8
- add r0, r1, r0
- add r0, r0, r5
- bl FUN_0202D478
- cmp r0, #0x0
- ble _02030E60
- ldr r3, [r6, #0x4]
- ldr r0, _02030E78 ; =0x0000058C
- mov r2, #0x46
- add r0, r3, r0
- add r0, r0, r5
- str r0, [sp, #0x0]
- ldr r0, _02030E74 ; =0x000004E8
- lsl r2, r2, #0x4
- add r0, r3, r0
- ldr r2, [r3, r2]
- add r0, r0, r5
- add r1, r4, #0x0
- mov r3, #0x0
- bl FUN_02030C8C
-_02030E60:
- add r4, r4, #0x1
- add r5, #0xc
- cmp r4, r7
- blt _02030E26
-_02030E68:
- pop {r3-r7, pc}
- nop
-_02030E6C: .word UNK_021C59F4
-_02030E70: .word 0x0000068B
-_02030E74: .word 0x000004E8
-_02030E78: .word 0x0000058C
-
- thumb_func_start FUN_02030E7C
-FUN_02030E7C: ; 0x02030E7C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _02030F14 ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- bne _02030E8C
- mov r0, #0x0
- pop {r4, pc}
-_02030E8C:
- bl FUN_02033534
- cmp r0, #0x13
- blt _02030EC0
- ldr r0, _02030F14 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030F18 ; =0x00000687
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _02030EBC
- bl MOD04_021D8018
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _02030EBC
- cmp r4, #0x0
- bne _02030EB4
- mov r0, #0x1
- pop {r4, pc}
-_02030EB4:
- cmp r4, #0x1
- bne _02030EBC
- mov r0, #0x1
- pop {r4, pc}
-_02030EBC:
- mov r0, #0x0
- pop {r4, pc}
-_02030EC0:
- bl FUN_02030F40
- cmp r0, #0x0
- bne _02030ECC
- mov r0, #0x0
- pop {r4, pc}
-_02030ECC:
- bl FUN_0202CBD4
- cmp r0, #0x4
- beq _02030ED8
- mov r0, #0x0
- pop {r4, pc}
-_02030ED8:
- bl FUN_02031190
- cmp r4, r0
- bne _02030EE4
- mov r0, #0x1
- pop {r4, pc}
-_02030EE4:
- bl FUN_02031190
- cmp r0, #0x0
- bne _02030EFE
- bl FUN_0202CB8C
- mov r1, #0x1
- add r2, r1, #0x0
- lsl r2, r4
- tst r0, r2
- beq _02030F10
- add r0, r1, #0x0
- pop {r4, pc}
-_02030EFE:
- ldr r0, _02030F14 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030F1C ; =0x0000065C
- ldrh r2, [r1, r0]
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r1, r4
- tst r1, r2
- bne _02030F12
-_02030F10:
- mov r0, #0x0
-_02030F12:
- pop {r4, pc}
- .balign 4
-_02030F14: .word UNK_021C59F4
-_02030F18: .word 0x00000687
-_02030F1C: .word 0x0000065C
-
- thumb_func_start FUN_02030F20
-FUN_02030F20: ; 0x02030F20
- push {r3-r5, lr}
- mov r4, #0x0
- add r5, r4, #0x0
-_02030F26:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _02030F34
- add r4, r4, #0x1
-_02030F34:
- add r5, r5, #0x1
- cmp r5, #0x8
- blt _02030F26
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02030F40
-FUN_02030F40: ; 0x02030F40
- push {r3, lr}
- ldr r0, _02030F5C ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _02030F56
- bl FUN_02033534
- cmp r0, #0x13
- blt _02030F56
- mov r0, #0x1
- pop {r3, pc}
-_02030F56:
- bl FUN_0202EDF8
- pop {r3, pc}
- .balign 4
-_02030F5C: .word UNK_021C59F4
-
- thumb_func_start FUN_02030F60
-FUN_02030F60: ; 0x02030F60
- ldr r1, _02030F6C ; =UNK_021C59F4
- ldr r2, [r1, #0x4]
- ldr r1, _02030F70 ; =0x0000062B
- strb r0, [r2, r1]
- bx lr
- nop
-_02030F6C: .word UNK_021C59F4
-_02030F70: .word 0x0000062B
-
- thumb_func_start FUN_02030F74
-FUN_02030F74: ; 0x02030F74
- ldr r1, _02030F84 ; =UNK_021C59F4
- ldr r1, [r1, #0x4]
- add r1, r1, r0
- mov r0, #0x62
- lsl r0, r0, #0x4
- ldrb r0, [r1, r0]
- bx lr
- nop
-_02030F84: .word UNK_021C59F4
-
- thumb_func_start FUN_02030F88
-FUN_02030F88: ; 0x02030F88
- ldr r1, _02030FA4 ; =UNK_021C59F4
- ldr r2, [r1, #0x4]
- cmp r2, #0x0
- bne _02030F94
- mov r0, #0x0
- bx lr
-_02030F94:
- mov r1, #0x61
- lsl r1, r1, #0x4
- add r3, r2, r1
- lsl r2, r0, #0x1
- ldrh r0, [r3, r2]
- mov r1, #0x0
- strh r1, [r3, r2]
- bx lr
- .balign 4
-_02030FA4: .word UNK_021C59F4
-
- thumb_func_start FUN_02030FA8
-FUN_02030FA8: ; 0x02030FA8
- ldr r0, _02030FC0 ; =UNK_021C59F4
- ldr r3, [r0, #0x4]
- cmp r3, #0x0
- beq _02030FBC
- ldr r1, _02030FC4 ; =0x00000628
- mov r0, #0x2
- ldrh r2, [r3, r1]
- lsl r0, r0, #0xe
- orr r0, r2
- strh r0, [r3, r1]
-_02030FBC:
- bx lr
- nop
-_02030FC0: .word UNK_021C59F4
-_02030FC4: .word 0x00000628
-
- thumb_func_start FUN_02030FC8
-FUN_02030FC8: ; 0x02030FC8
- ldr r0, _02030FD8 ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _02030FD6
- ldr r0, _02030FDC ; =0x00000628
- mov r1, #0x0
- strh r1, [r2, r0]
-_02030FD6:
- bx lr
- .balign 4
-_02030FD8: .word UNK_021C59F4
-_02030FDC: .word 0x00000628
-
- thumb_func_start FUN_02030FE0
-FUN_02030FE0: ; 0x02030FE0
- ldr r0, _02030FF8 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _02030FF4
- ldr r0, _02030FFC ; =0x00000628
- ldrh r1, [r1, r0]
- mov r0, #0x2
- lsl r0, r0, #0xe
- and r0, r1
- bx lr
-_02030FF4:
- mov r0, #0x1
- bx lr
- .balign 4
-_02030FF8: .word UNK_021C59F4
-_02030FFC: .word 0x00000628
-
- thumb_func_start FUN_02031000
-FUN_02031000: ; 0x02031000
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02031030
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- ldr r0, _02031050 ; =UNK_021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02031054 ; =0x0000054C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- add sp, #0x8
- pop {r4-r6, pc}
-_02031030:
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- ldr r0, _02031050 ; =UNK_021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02031058 ; =0x0000056C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- add sp, #0x8
- pop {r4-r6, pc}
- nop
-_02031050: .word UNK_021C59F4
-_02031054: .word 0x0000054C
-_02031058: .word 0x0000056C
-
- thumb_func_start FUN_0203105C
-FUN_0203105C: ; 0x0203105C
- push {r3-r5, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- mov r0, #0x0
- str r0, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, _02031080 ; =UNK_021C59F4
- add r4, r1, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02031084 ; =0x0000054C
- add r3, r2, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_0202D684
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-_02031080: .word UNK_021C59F4
-_02031084: .word 0x0000054C
-
- thumb_func_start FUN_02031088
-FUN_02031088: ; 0x02031088
- push {r3, lr}
- ldr r0, _02031100 ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _020310FC
- ldr r1, _02031104 ; =0x0000067B
- ldrb r0, [r2, r1]
- cmp r0, #0x1
- beq _020310A0
- cmp r0, #0x3
- beq _020310D8
- pop {r3, pc}
-_020310A0:
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _020310B8
- ldr r1, _02031100 ; =UNK_021C59F4
- mov r0, #0xb
- ldr r2, [r1, #0x4]
- ldr r1, _02031108 ; =0x0000067C
- add r1, r2, r1
- bl FUN_020311D0
- b _020310C8
-_020310B8:
- ldr r1, _02031100 ; =UNK_021C59F4
- mov r0, #0xb
- ldr r2, [r1, #0x4]
- ldr r1, _02031108 ; =0x0000067C
- add r1, r2, r1
- mov r2, #0x1
- bl FUN_02030BC4
-_020310C8:
- cmp r0, #0x0
- beq _020310FC
- ldr r0, _02031100 ; =UNK_021C59F4
- mov r2, #0x2
- ldr r1, [r0, #0x4]
- ldr r0, _02031104 ; =0x0000067B
- strb r2, [r1, r0]
- pop {r3, pc}
-_020310D8:
- add r1, r1, #0x1
- mov r0, #0xc
- add r1, r2, r1
- bl FUN_020311D0
- cmp r0, #0x0
- beq _020310FC
- ldr r0, _02031100 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02031108 ; =0x0000067C
- ldrb r0, [r1, r0]
- bl FUN_0202F9E0
- ldr r0, _02031100 ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02031104 ; =0x0000067B
- strb r2, [r1, r0]
-_020310FC:
- pop {r3, pc}
- nop
-_02031100: .word UNK_021C59F4
-_02031104: .word 0x0000067B
-_02031108: .word 0x0000067C
-
- thumb_func_start FUN_0203110C
-FUN_0203110C: ; 0x0203110C
- push {r4, lr}
- add r4, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- bne _0203112A
- ldr r1, _0203112C ; =UNK_021C59F4
- ldr r0, _02031130 ; =0x0000067B
- ldr r2, [r1, #0x4]
- mov r3, #0x1
- strb r3, [r2, r0]
- ldrb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- add r0, r0, #0x1
- strb r2, [r1, r0]
-_0203112A:
- pop {r4, pc}
- .balign 4
-_0203112C: .word UNK_021C59F4
-_02031130: .word 0x0000067B
-
- thumb_func_start FUN_02031134
-FUN_02031134: ; 0x02031134
- push {r4, lr}
- add r4, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- beq _02031152
- ldr r1, _02031154 ; =UNK_021C59F4
- ldrb r3, [r4, #0x0]
- ldr r2, [r1, #0x4]
- ldr r0, _02031158 ; =0x0000067C
- strb r3, [r2, r0]
- ldr r1, [r1, #0x4]
- mov r2, #0x3
- sub r0, r0, #0x1
- strb r2, [r1, r0]
-_02031152:
- pop {r4, pc}
- .balign 4
-_02031154: .word UNK_021C59F4
-_02031158: .word 0x0000067C
-
- thumb_func_start FUN_0203115C
-FUN_0203115C: ; 0x0203115C
- push {r4, lr}
- add r4, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- bne _02031184
- ldr r0, _02031188 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0203118C ; =0x0000067B
- ldrb r0, [r1, r0]
- cmp r0, #0x2
- bne _02031184
- ldrb r0, [r4, #0x0]
- bl FUN_0202F9E0
- ldr r0, _02031188 ; =UNK_021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0203118C ; =0x0000067B
- strb r2, [r1, r0]
-_02031184:
- pop {r4, pc}
- nop
-_02031188: .word UNK_021C59F4
-_0203118C: .word 0x0000067B
-
- thumb_func_start FUN_02031190
-FUN_02031190: ; 0x02031190
- push {r3, lr}
- ldr r0, _020311CC ; =UNK_021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _020311C6
- bl FUN_02033534
- cmp r0, #0x13
- blt _020311B4
- bl MOD04_021D8018
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _020311C6
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- pop {r3, pc}
-_020311B4:
- bl FUN_02031280
- cmp r0, #0x0
- beq _020311C0
- mov r0, #0x0
- pop {r3, pc}
-_020311C0:
- bl FUN_0202D19C
- pop {r3, pc}
-_020311C6:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_020311CC: .word UNK_021C59F4
-
- thumb_func_start FUN_020311D0
-FUN_020311D0: ; 0x020311D0
- ldr r3, _020311D8 ; =FUN_02030ADC
- mov r2, #0x0
- bx r3
- nop
-_020311D8: .word FUN_02030ADC
-
- thumb_func_start FUN_020311DC
-FUN_020311DC: ; 0x020311DC
- ldr r3, _020311E4 ; =FUN_02030ADC
- mov r1, #0x0
- add r2, r1, #0x0
- bx r3
- .balign 4
-_020311E4: .word FUN_02030ADC
-
- thumb_func_start FUN_020311E8
-FUN_020311E8: ; 0x020311E8
- ldr r3, _020311EC ; =FUN_0202EE24
- bx r3
- .balign 4
-_020311EC: .word FUN_0202EE24
-
- thumb_func_start FUN_020311F0
-FUN_020311F0: ; 0x020311F0
- push {r3, lr}
- bl FUN_02031280
- cmp r0, #0x0
- beq _020311FE
- mov r0, #0x0
- pop {r3, pc}
-_020311FE:
- ldr r0, _02031220 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _0203121A
- ldr r0, _02031224 ; =0x00000689
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0203121A
- mov r0, #0x1
- add r1, r0, #0x0
- bl FUN_020334E8
- mov r0, #0x1
- pop {r3, pc}
-_0203121A:
- bl FUN_0202EE60
- pop {r3, pc}
- .balign 4
-_02031220: .word UNK_021C59F4
-_02031224: .word 0x00000689
-
- thumb_func_start FUN_02031228
-FUN_02031228: ; 0x02031228
- push {r3, lr}
- bl FUN_0202D858
- cmp r0, #0x5
- blo _02031236
- mov r0, #0xc
- pop {r3, pc}
-_02031236:
- bl FUN_0202FA28
- cmp r0, #0x0
- bne _02031242
- mov r0, #0xc
- pop {r3, pc}
-_02031242:
- mov r0, #0x26
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02031248
-FUN_02031248: ; 0x02031248
- push {r3, lr}
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r0, r0, #0x1
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02031258
-FUN_02031258: ; 0x02031258
- push {r3, lr}
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D884
- add r0, r0, #0x1
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02031268
-FUN_02031268: ; 0x02031268
- ldr r1, _02031278 ; =UNK_021C59F4
- ldr r2, [r1, #0x4]
- cmp r2, #0x0
- beq _02031274
- ldr r1, _0203127C ; =0x00000686
- strb r0, [r2, r1]
-_02031274:
- bx lr
- nop
-_02031278: .word UNK_021C59F4
-_0203127C: .word 0x00000686
-
- thumb_func_start FUN_02031280
-FUN_02031280: ; 0x02031280
- ldr r0, _02031294 ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _0203128E
- ldr r0, _02031298 ; =0x00000686
- ldrb r0, [r1, r0]
- bx lr
-_0203128E:
- mov r0, #0x0
- bx lr
- nop
-_02031294: .word UNK_021C59F4
-_02031298: .word 0x00000686
-
- thumb_func_start FUN_0203129C
-FUN_0203129C: ; 0x0203129C
- push {r3, lr}
- bl FUN_0202F03C
- cmp r0, #0x0
- bne _020312B6
- bl FUN_02031190
- cmp r0, #0x0
- bne _020312B6
- mov r0, #0x2
- add r1, sp, #0x0
- bl FUN_02030C4C
-_020312B6:
- bl FUN_0202F05C
- pop {r3, pc}
-
- thumb_func_start FUN_020312BC
-FUN_020312BC: ; 0x020312BC
- push {r3-r7, lr}
- sub sp, #0x20
- add r4, r0, #0x0
- add r0, sp, #0x10
- add r1, sp, #0x4
- bl GF_RTC_CopyDateTime
- ldr r0, _02031340 ; =gMain
- ldr r6, [sp, #0x10]
- mov r5, #0x0
- lsr r7, r6, #0x1c
- lsl r5, r5, #0x4
- ldr r1, [sp, #0xc]
- ldr r0, [r0, #0x2c]
- lsl r6, r6, #0x4
- add r3, r1, r0
- ldr r0, [sp, #0x18]
- orr r5, r7
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x4]
- add r6, r0, r6
- ldr r0, _02031344 ; =0x00000000
- ldr r2, [sp, #0x8]
- adc r0, r5
- lsr r5, r6, #0x1b
- lsl r0, r0, #0x5
- orr r0, r5
- ldr r5, [sp, #0x0]
- lsl r6, r6, #0x5
- add r6, r5, r6
- ldr r5, _02031344 ; =0x00000000
- adc r5, r0
- lsr r0, r6, #0x1b
- lsl r5, r5, #0x5
- orr r5, r0
- lsl r0, r6, #0x5
- add r6, r1, r0
- ldr r1, _02031344 ; =0x00000000
- adc r1, r5
- lsr r0, r6, #0x1a
- lsl r1, r1, #0x6
- orr r1, r0
- lsl r0, r6, #0x6
- add r5, r2, r0
- ldr r2, _02031344 ; =0x00000000
- adc r2, r1
- lsr r0, r5, #0x1a
- lsl r1, r2, #0x6
- orr r1, r0
- lsl r0, r5, #0x6
- add r2, r3, r0
- ldr r0, _02031344 ; =0x00000000
- str r2, [r4, #0x0]
- adc r0, r1
- str r0, [r4, #0x4]
- ldr r1, _02031348 ; =0x6C078965
- ldr r0, _0203134C ; =0x5D588B65
- str r1, [r4, #0x8]
- str r0, [r4, #0xc]
- ldr r0, _02031350 ; =0x00269EC3
- str r0, [r4, #0x10]
- mov r0, #0x0
- str r0, [r4, #0x14]
- add sp, #0x20
- pop {r3-r7, pc}
- .balign 4
-_02031340: .word gMain
-_02031344: .word 0x00000000
-_02031348: .word 0x6C078965
-_0203134C: .word 0x5D588B65
-_02031350: .word 0x00269EC3
-
- thumb_func_start FUN_02031354
-FUN_02031354: ; 0x02031354
- add r1, r0, #0x0
- ldr r0, _02031364 ; =UNK_021C59F4
- ldr r3, _02031368 ; =FUN_0202D830
- ldr r2, [r0, #0x4]
- ldr r0, _0203136C ; =0x0000056C
- add r0, r2, r0
- bx r3
- nop
-_02031364: .word UNK_021C59F4
-_02031368: .word FUN_0202D830
-_0203136C: .word 0x0000056C
-
- thumb_func_start FUN_02031370
-FUN_02031370: ; 0x02031370
- ldr r0, _0203137C ; =UNK_021C59F4
- ldr r3, _02031380 ; =FUN_0202D4E4
- ldr r1, [r0, #0x4]
- ldr r0, _02031384 ; =0x0000056C
- add r0, r1, r0
- bx r3
- .balign 4
-_0203137C: .word UNK_021C59F4
-_02031380: .word FUN_0202D4E4
-_02031384: .word 0x0000056C
-
- thumb_func_start FUN_02031388
-FUN_02031388: ; 0x02031388
- ldr r0, _02031394 ; =UNK_021C59F4
- ldr r3, _02031398 ; =FUN_0202D4E4
- ldr r1, [r0, #0x4]
- ldr r0, _0203139C ; =0x0000054C
- add r0, r1, r0
- bx r3
- .balign 4
-_02031394: .word UNK_021C59F4
-_02031398: .word FUN_0202D4E4
-_0203139C: .word 0x0000054C
-
- thumb_func_start FUN_020313A0
-FUN_020313A0: ; 0x020313A0
- ldr r1, _020313AC ; =UNK_021C59F4
- ldr r2, [r1, #0x4]
- ldr r1, _020313B0 ; =0x00000687
- strb r0, [r2, r1]
- bx lr
- nop
-_020313AC: .word UNK_021C59F4
-_020313B0: .word 0x00000687
-
- thumb_func_start FUN_020313B4
-FUN_020313B4: ; 0x020313B4
- ldr r2, _020313C4 ; =UNK_021C59F4
- ldr r2, [r2, #0x4]
- cmp r2, #0x0
- beq _020313C2
- add r2, r2, r1
- ldr r1, _020313C8 ; =0x00000677
- strb r0, [r2, r1]
-_020313C2:
- bx lr
- .balign 4
-_020313C4: .word UNK_021C59F4
-_020313C8: .word 0x00000677
-
- thumb_func_start FUN_020313CC
-FUN_020313CC: ; 0x020313CC
- ldr r1, _020313E4 ; =UNK_021C59F4
- ldr r1, [r1, #0x4]
- cmp r1, #0x0
- beq _020313E0
- add r2, r1, r0
- ldr r1, _020313E8 ; =0x00000677
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- beq _020313E0
- add r0, r1, #0x0
-_020313E0:
- bx lr
- nop
-_020313E4: .word UNK_021C59F4
-_020313E8: .word 0x00000677
-
- thumb_func_start FUN_020313EC
-FUN_020313EC: ; 0x020313EC
- push {r3, lr}
- bl FUN_02033534
- cmp r0, #0x13
- bge _020313FA
- mov r0, #0x0
- pop {r3, pc}
-_020313FA:
- bl MOD04_021D8624
- pop {r3, pc}
-
- thumb_func_start FUN_02031400
-FUN_02031400: ; 0x02031400
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02033534
- cmp r0, #0x13
- blt _02031430
- ldr r2, _02031434 ; =UNK_021C59F4
- mov r1, #0x63
- ldr r0, [r2, #0x4]
- lsl r1, r1, #0x4
- str r4, [r0, r1]
- cmp r4, #0x0
- beq _02031430
- ldr r3, [r2, #0x4]
- mov r4, #0x0
- add r0, r1, #0x4
- str r4, [r3, r0]
- add r0, r1, #0x0
- ldr r3, [r2, #0x4]
- add r0, #0x8
- str r4, [r3, r0]
- ldr r0, [r2, #0x4]
- add r1, #0xc
- str r4, [r0, r1]
-_02031430:
- pop {r4, pc}
- nop
-_02031434: .word UNK_021C59F4
-
- thumb_func_start FUN_02031438
-FUN_02031438: ; 0x02031438
- ldr r0, _0203144C ; =UNK_021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02031450 ; =0x00000681
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _02031448
- mov r0, #0x1
- bx lr
-_02031448:
- mov r0, #0x0
- bx lr
- .balign 4
-_0203144C: .word UNK_021C59F4
-_02031450: .word 0x00000681
-
- thumb_func_start FUN_02031454
-FUN_02031454: ; 0x02031454
- ldr r0, _02031460 ; =UNK_021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _02031464 ; =0x00000689
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_02031460: .word UNK_021C59F4
-_02031464: .word 0x00000689
-
- thumb_func_start FUN_02031468
-FUN_02031468: ; 0x02031468
- ldr r0, _02031478 ; =UNK_021C59F4
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _02031476
- ldr r0, _0203147C ; =0x0000068A
- mov r1, #0x1
- strb r1, [r2, r0]
-_02031476:
- bx lr
- .balign 4
-_02031478: .word UNK_021C59F4
-_0203147C: .word 0x0000068A
diff --git a/arm9/asm/unk_02033F50.s b/arm9/asm/unk_02033F50.s
index cf84285f..a5439dfe 100644
--- a/arm9/asm/unk_02033F50.s
+++ b/arm9/asm/unk_02033F50.s
@@ -96,8 +96,8 @@ _02033FA4:
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -114,7 +114,7 @@ _02033FA4:
ldr r0, _02034160 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
ldr r3, _02034164 ; =0x04000050
mov r1, #0x0
strh r1, [r3, #0x0]
@@ -130,7 +130,7 @@ _02033FA4:
and r1, r2
str r1, [r0, #0x0]
ldr r0, _02034170 ; =UNK_020EECD0
- bl FUN_0201E66C
+ bl GX_SetBanks
add r0, r4, #0x0
bl FUN_02016B94
add r6, r0, #0x0
@@ -231,7 +231,7 @@ _02033FA4:
bl AddTextPrinterParameterized
add r0, r7, #0x0
bl String_dtor
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x0
bl FUN_0200E394
mov r0, #0x1
diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s
index d8b35c57..44144564 100644
--- a/arm9/asm/unk_02034188.s
+++ b/arm9/asm/unk_02034188.s
@@ -44,8 +44,8 @@ FUN_02034188: ; 0x02034188
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -62,7 +62,7 @@ FUN_02034188: ; 0x02034188
ldr r0, _02034370 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
ldr r3, _02034374 ; =0x04000050
mov r0, #0x0
strh r0, [r3, #0x0]
@@ -78,7 +78,7 @@ FUN_02034188: ; 0x02034188
and r0, r1
str r0, [r2, #0x0]
ldr r0, _02034380 ; =UNK_020EED2C
- bl FUN_0201E66C
+ bl GX_SetBanks
add r0, r4, #0x0
bl FUN_02016B94
str r0, [sp, #0x10]
@@ -158,7 +158,7 @@ FUN_02034188: ; 0x02034188
bl AddTextPrinterParameterized
add r0, r4, #0x0
bl String_dtor
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x0
bl FUN_0200E394
mov r0, #0x1
diff --git a/arm9/asm/unk_020343A8.s b/arm9/asm/unk_020343A8.s
index fc2463b8..88fd2560 100644
--- a/arm9/asm/unk_020343A8.s
+++ b/arm9/asm/unk_020343A8.s
@@ -139,7 +139,7 @@ FUN_020344AC: ; 0x020344AC
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0203474C
+ bl MapHeader_GetMatrixId
add r6, r0, #0x0
add r0, r4, #0x4
add r1, r6, #0x0
diff --git a/arm9/asm/unk_02034A28.s b/arm9/asm/unk_02034A28.s
index d0cc2c05..e4c8097a 100644
--- a/arm9/asm/unk_02034A28.s
+++ b/arm9/asm/unk_02034A28.s
@@ -67,7 +67,7 @@ FUN_02034A98: ; 0x02034A98
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02034810
+ bl MapHeader_GetEventsBank
add r4, r0, #0x0
mov r0, #0x20
add r1, r4, #0x0
@@ -406,11 +406,11 @@ FUN_02034CB4: ; 0x02034CB4
add r5, r0, #0x0
bl memset
add r0, r4, #0x0
- bl FUN_020347D8
+ bl MapHeader_HasWildEncounters
cmp r0, #0x0
beq _02034CDE
add r0, r4, #0x0
- bl FUN_020347FC
+ bl MapHeader_GetWildEncounterBank
add r2, r0, #0x0
add r0, r5, #0x0
.ifdef DIAMOND
@@ -436,7 +436,7 @@ FUN_02034CEC: ; 0x02034CEC
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_0203479C
+ bl MapHeader_GetLevelScriptsBank
mov r1, #0x82
lsl r1, r1, #0x4
mov r2, #0x1
diff --git a/arm9/asm/unk_02034FE4.s b/arm9/asm/unk_02034FE4.s
index 2d66b396..8ff7abe0 100644
--- a/arm9/asm/unk_02034FE4.s
+++ b/arm9/asm/unk_02034FE4.s
@@ -128,7 +128,7 @@ FUN_02034FE4: ; 0x02034FE4
push {r3-r7, lr}
add r7, r0, #0x0
add r0, r1, #0x0
- bl FUN_02034838
+ bl MapHeader_GetWeatherType
add r4, r0, #0x0
cmp r4, #0x18
blt _0203505C
diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s
index 95c1867f..f0cdc150 100644
--- a/arm9/asm/unk_02035068.s
+++ b/arm9/asm/unk_02035068.s
@@ -67,7 +67,7 @@ FUN_02035068: ; 0x02035068
push {r3, lr}
ldr r0, [r0, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
cmp r0, #0x0
beq _0203507A
mov r0, #0x1
@@ -1406,7 +1406,7 @@ _02035B2C:
str r2, [r0, r1]
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0xb4
pop {r4-r7, pc}
.balign 4
@@ -1870,7 +1870,7 @@ _02035ECC:
bl FUN_0202A918
str r0, [r7, #0x20]
ldr r0, [r5, #0xc]
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
str r0, [r7, #0x1c]
ldr r0, [r5, #0xc]
bl FUN_02079C70
@@ -1918,7 +1918,7 @@ _02035F4A:
mov r0, #0x2
strb r0, [r7, #0x12]
ldr r0, [r5, #0xc]
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
str r0, [r7, #0x1c]
ldr r0, [r5, #0xc]
bl FUN_02079C70
@@ -1975,7 +1975,7 @@ _02035FD0:
mov r0, #0x2
strb r0, [r7, #0x12]
ldr r0, [r5, #0xc]
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
str r0, [r7, #0x1c]
ldr r0, [r5, #0xc]
bl FUN_02079C70
diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s
index 9d5e2f32..7c45ad7a 100644
--- a/arm9/asm/unk_020377F0.s
+++ b/arm9/asm/unk_020377F0.s
@@ -773,7 +773,7 @@ FUN_02037C00: ; 0x02037C00
bl FUN_0202A918
str r0, [r4, #0x20]
ldr r0, [r5, #0xc]
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
str r0, [r4, #0x1c]
ldr r0, [r5, #0xc]
bl FUN_02079C70
@@ -827,7 +827,7 @@ FUN_02037C7C: ; 0x02037C7C
strh r0, [r4, #0x18]
strb r6, [r4, #0x12]
add r0, r5, #0x0
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
str r0, [r4, #0x1c]
add r0, r5, #0x0
bl FUN_02079C70
@@ -874,7 +874,7 @@ FUN_02037CF0: ; 0x02037CF0
mov r0, #0x2
strb r0, [r4, #0x12]
ldr r0, [r5, #0xc]
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
str r0, [r4, #0x1c]
ldr r0, [r5, #0xc]
bl FUN_02079C70
@@ -1426,7 +1426,7 @@ FUN_02038144: ; 0x02038144
bl Sav2_Pokedex_get
str r0, [r5, #0x24]
ldr r0, [r4, #0xc]
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
str r0, [r5, #0x30]
ldr r0, [r4, #0xc]
str r0, [r5, #0x10]
@@ -2157,7 +2157,7 @@ FUN_020386E0: ; 0x020386E0
ldr r0, [r5, #0xc]
str r0, [r4, #0x20]
ldr r0, [r5, #0xc]
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
str r0, [r4, #0x34]
ldr r0, [r4, #0x14]
bl FUN_02033830
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s
index f35fd58e..08416fc7 100644
--- a/arm9/asm/unk_02038C78.s
+++ b/arm9/asm/unk_02038C78.s
@@ -149,79 +149,79 @@ UNK_020F3538: ; 0x020F3538
.global gScriptCmdTable
gScriptCmdTable: ; 0x020F355C
- .word ScrCmd_nop
- .word ScrCmd_nop2
- .word ScrCmd_end
- .word ScrCmd_delay
- .word ScrCmd_loadbyte
- .word ScrCmd_loadword
- .word ScrCmd_loadbytefromaddr
- .word ScrCmd_writebytetoaddr
- .word ScrCmd_setptrbyte
- .word ScrCmd_copylocal
- .word ScrCmd_copybyte
- .word ScrCmd_compare_local_to_local
- .word ScrCmd_compare_local_to_value
- .word ScrCmd_compare_local_to_addr
- .word ScrCmd_compare_addr_to_local
- .word ScrCmd_compare_addr_to_value
- .word ScrCmd_compare_addr_to_addr
- .word ScrCmd_compare_var_to_value
- .word ScrCmd_compare_var_to_var
- .word FUN_02039C40
- .word FUN_02039C78
- .word FUN_02039CE4
- .word ScrCmd_goto
- .word FUN_02039D10
- .word FUN_02039D48
- .word FUN_02039D78
- .word ScrCmd_call
- .word ScrCmd_return
- .word ScrCmd_goto_if
- .word ScrCmd_call_if
- .word ScrCmd_setflag
- .word ScrCmd_clearflag
- .word ScrCmd_checkflag
- .word FUN_02039E84
- .word FUN_02039EC0
- .word ScrCmd_settrainerflag
- .word ScrCmd_cleartrainerflag
- .word ScrCmd_checktrainerflag
- .word ScrCmd_addvar
- .word ScrCmd_subvar
- .word ScrCmd_setvar
- .word ScrCmd_copyvar
- .word ScrCmd_setorcopyvar
- .word ScrCmd_message
- .word FUN_0203A2C4
- .word FUN_0203A304
- .word FUN_0203A388
- .word FUN_0203A400
- .word FUN_0203A45C
- .word FUN_0203A4D0
- .word FUN_0203A560
- .word FUN_0203A590
- .word FUN_0203A5D8
- .word FUN_0203A608
- .word FUN_0203A780
- .word FUN_0203A830
- .word FUN_0203A85C
- .word FUN_0203A878
- .word FUN_0203A8B8
- .word FUN_0203A9F0
- .word FUN_0203AA90
- .word FUN_0203A630
- .word FUN_0203AAA0
+ .word ScrCmd_Nop
+ .word ScrCmd_Dummy
+ .word ScrCmd_End
+ .word ScrCmd_Wait
+ .word ScrCmd_LoadByte
+ .word ScrCmd_LoadWord
+ .word ScrCmd_LoadByteFromAddr
+ .word ScrCmd_WriteByteToAddr
+ .word ScrCmd_SetPtrByte
+ .word ScrCmd_CopyLocal
+ .word ScrCmd_CopyByte
+ .word ScrCmd_CompareLocalToLocal
+ .word ScrCmd_CompareLocalToValue
+ .word ScrCmd_CompareLocalToAddr
+ .word ScrCmd_CompareAddrToLocal
+ .word ScrCmd_CompareAddrToValue
+ .word ScrCmd_CompareAddrToAddr
+ .word ScrCmd_CompareVarToValue
+ .word ScrCmd_CompareVarToVar
+ .word ScrCmd_RunScript
+ .word ScrCmd_RunScriptWait
+ .word ScrCmd_RestartCurrentScript
+ .word ScrCmd_GoTo
+ .word ScrCmd_ObjectGoTo
+ .word ScrCmd_BgGoTo
+ .word ScrCmd_DirectionGoTo
+ .word ScrCmd_Call
+ .word ScrCmd_Return
+ .word ScrCmd_GoToIf
+ .word ScrCmd_CallIf
+ .word ScrCmd_SetFlag
+ .word ScrCmd_ClearFlag
+ .word ScrCmd_CheckFlag
+ .word ScrCmd_CheckFlagVar
+ .word ScrCmd_SetFlagVar
+ .word ScrCmd_SetTrainerFlag
+ .word ScrCmd_ClearTrainerFlag
+ .word ScrCmd_CheckTrainerFlag
+ .word ScrCmd_AddVar
+ .word ScrCmd_SubVar
+ .word ScrCmd_SetVar
+ .word ScrCmd_CopyVar
+ .word ScrCmd_SetOrCopyVar
+ .word ScrCmd_Message
+ .word ScrCmd_Unk002C
+ .word ScrCmd_Unk002D
+ .word ScrCmd_Unk002E
+ .word ScrCmd_Unk002F
+ .word ScrCmd_WaitButtonAB
+ .word ScrCmd_WaitButton
+ .word ScrCmd_Unk0032
+ .word ScrCmd_Unk0033
+ .word ScrCmd_Unk0034
+ .word ScrCmd_Unk0035
+ .word ScrCmd_CreateMessageBox
+ .word ScrCmd_Unk0037
+ .word ScrCmd_Unk0038
+ .word ScrCmd_Unk0039
+ .word ScrCmd_Unk003A
+ .word ScrCmd_Unk003B
+ .word ScrCmd_Menu
+ .word ScrCmd_ScrollBg
+ .word ScrCmd_YesNoMenu
.word FUN_0203DEA8
- .word FUN_0203AB8C
- .word FUN_0203AC14
- .word FUN_0203AC9C
- .word FUN_0203AD08
- .word FUN_0203ADC4
- .word FUN_0203AE4C
- .word FUN_0203AED4
- .word FUN_0203AF34
- .word FUN_0203AF58
+ .word ScrCmd_Unk0040
+ .word ScrCmd_Unk0041
+ .word ScrCmd_Unk0042
+ .word ScrCmd_Unk0043
+ .word ScrCmd_Unk0044
+ .word ScrCmd_Unk0045
+ .word ScrCmd_Unk0046
+ .word ScrCmd_Unk0047
+ .word ScrCmd_Unk0048
.word FUN_020414E0
.word FUN_020414FC
.word FUN_02041518
@@ -260,46 +260,46 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203B724
.word FUN_0203B758
.word FUN_0203B7D8
- .word FUN_02043C6C
- .word FUN_02043C90
- .word FUN_02043CE4
- .word FUN_02043D78
- .word FUN_02043DC8
- .word FUN_02043DE0
- .word FUN_02043A44
- .word FUN_02043A94
- .word FUN_02043AAC
- .word FUN_02043ACC
- .word FUN_02043AFC
- .word FUN_02043B28
- .word FUN_02045784
- .word FUN_020457DC
- .word FUN_02045834
- .word FUN_0204588C
- .word FUN_020458E4
- .word FUN_02045918
- .word FUN_02045950
- .word FUN_02045954
- .word FUN_02045958
- .word FUN_020459AC
- .word FUN_020459E8
- .word FUN_02045A3C
- .word FUN_02045A78
- .word FUN_02045ACC
- .word FUN_02045B08
- .word FUN_02045B44
- .word FUN_02045B80
- .word FUN_02045BC8
- .word FUN_02045C04
- .word FUN_02045C40
- .word FUN_02045C7C
- .word FUN_02045CD4
- .word FUN_02045D10
- .word FUN_02045D4C
+ .word ScrCmd_GiveMoney
+ .word ScrCmd_TakeMoneyImmediate
+ .word ScrCmd_HasEnoughMoneyImmediate
+ .word ScrCmd_Unk0072
+ .word ScrCmd_Unk0073
+ .word ScrCmd_Unk0074
+ .word ScrCmd_Unk0075
+ .word ScrCmd_Unk0076
+ .word ScrCmd_Unk0077
+ .word ScrCmd_GetCoins
+ .word ScrCmd_GiveCoins
+ .word ScrCmd_TakeCoinsImmediate
+ .word ScrCmd_GiveItem
+ .word ScrCmd_TakeItem
+ .word ScrCmd_HasSpaceForItem
+ .word ScrCmd_HasItem
+ .word ScrCmd_ItemIdIsTMOrHM
+ .word ScrCmd_GetItemPocketId
+ .word ScrCmd_Unk0081
+ .word ScrCmd_Unk0082
+ .word ScrCmd_Unk0083
+ .word ScrCmd_Unk0084
+ .word ScrCmd_Unk0085
+ .word ScrCmd_Unk0086
+ .word ScrCmd_Unk0087
+ .word ScrCmd_Unk0088
+ .word ScrCmd_Unk0089
+ .word ScrCmd_Unk008A
+ .word ScrCmd_Unk008B
+ .word ScrCmd_Unk008C
+ .word ScrCmd_Unk008D
+ .word ScrCmd_Unk008E
+ .word ScrCmd_Unk008F
+ .word ScrCmd_Unk0090
+ .word ScrCmd_Unk0091
+ .word ScrCmd_Unk0092
.word FUN_0203B81C
.word FUN_0203B85C
.word FUN_0203B8A0
- .word ScrCmd_givemon
+ .word ScrCmd_GiveMon
.word ScrCmd_giveegg
.word ScrCmd_setpartymonmove
.word ScrCmd_partymonhasmove
@@ -354,28 +354,28 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203CB20
.word FUN_0203CB48
.word FUN_0203CB60
- .word FUN_020406CC
- .word FUN_02040700
- .word FUN_02040724
- .word FUN_02040748
- .word FUN_02040790
- .word FUN_020407C8
- .word FUN_02040800
- .word FUN_0204083C
- .word FUN_02040874
- .word FUN_0204091C
- .word FUN_020409C0
- .word FUN_020409F8
- .word FUN_02040A30
- .word FUN_02040A7C
- .word FUN_02040B0C
- .word FUN_02040B5C
- .word FUN_02040BAC
+ .word ScrCmd_GetPlayerName
+ .word ScrCmd_GetRivalName
+ .word ScrCmd_GetFriendName
+ .word ScrCmd_Unk00D0
+ .word ScrCmd_GetItemName
+ .word ScrCmd_GetPocketName
+ .word ScrCmd_GetTMHMMoveName
+ .word ScrCmd_GetMoveName
+ .word ScrCmd_Unk00D5
+ .word ScrCmd_Unk00D6
+ .word ScrCmd_GetPoketchAppName
+ .word ScrCmd_GetTrainerClassName
+ .word ScrCmd_Unk00D9
+ .word ScrCmd_Unk00DA
+ .word ScrCmd_Unk00DB
+ .word ScrCmd_Unk00DC
+ .word ScrCmd_Unk00DD
.word FUN_0203CBBC
- .word FUN_02040BFC
- .word FUN_02040C34
- .word FUN_02040C6C
- .word FUN_02040CA4
+ .word ScrCmd_GetDecorationName
+ .word ScrCmd_GetUndergroundTrapName
+ .word ScrCmd_GetUndergroundItemName
+ .word ScrCmd_Unk00E2
.word FUN_0203CB70
.word FUN_0204185C
.word FUN_0204188C
@@ -514,8 +514,8 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203DC70
.word FUN_0203DC88
.word FUN_0203DCA0
- .word FUN_02043E00
- .word FUN_02043E20
+ .word ScrCmd_Unk016D
+ .word ScrCmd_Unk016E
.word FUN_0203DCB8
.word FUN_0203DCC8
.word FUN_0203DCD8
@@ -528,17 +528,17 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203C460
.word FUN_0203C4B0
.word FUN_0203D958
- .word FUN_02040D04
- .word FUN_02040D7C
- .word FUN_02042B0C
- .word FUN_02042B40
- .word FUN_02042B74
- .word FUN_02042BA8
- .word FUN_02042BDC
- .word FUN_02042C10
- .word FUN_02042C44
- .word FUN_02042C8C
- .word FUN_02042CBC
+ .word ScrCmd_Unk017B
+ .word ScrCmd_GetNatureName
+ .word ScrCmd_Unk017D
+ .word ScrCmd_Unk017E
+ .word ScrCmd_Unk017F
+ .word ScrCmd_Unk0180
+ .word ScrCmd_Unk0181
+ .word ScrCmd_Unk0182
+ .word ScrCmd_Unk0183
+ .word ScrCmd_Unk0184
+ .word ScrCmd_Unk0185
.word FUN_0203D998
.word FUN_0203D9E8
.word FUN_0203DA78
@@ -546,10 +546,10 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203DAE8
.word FUN_0203DB38
.word FUN_0203DB88
- .word FUN_0203AB44
- .word FUN_0203AB74
+ .word ScrCmd_ShowSaveClock
+ .word ScrCmd_HideSaveClock
.word FUN_0203DBD4
- .word FUN_0203A484
+ .word ScrCmd_WaitButtonABTime
.word FUN_0203B8E4
.word FUN_0203B944
.word FUN_0203B968
@@ -568,20 +568,20 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203DE4C
.word FUN_0203DE58
.word FUN_0203DE80
- .word FUN_02043CB4
- .word FUN_02043E9C
- .word FUN_02044120
- .word FUN_02044138
- .word FUN_0204413C
- .word FUN_02043E50
- .word FUN_02043E68
- .word FUN_02043EFC
- .word FUN_02043D28
+ .word ScrCmd_TakeMoneyAddress
+ .word ScrCmd_Unk01A4
+ .word ScrCmd_Unk01A5
+ .word ScrCmd_Unk01A6
+ .word ScrCmd_Unk01A7
+ .word ScrCmd_Unk01A8
+ .word ScrCmd_Unk01A9
+ .word ScrCmd_Unk01AA
+ .word ScrCmd_HasEnoughMoneyAddress
.word FUN_0203DD50
- .word FUN_02044140
- .word FUN_02043F50
- .word FUN_02043FA0
- .word FUN_02043FF4
+ .word ScrCmd_Unk01AD
+ .word ScrCmd_Unk01AE
+ .word ScrCmd_Unk01AF
+ .word ScrCmd_Unk01B0
.word FUN_0203DEC4
.word FUN_0203DEF8
.word FUN_0203DF2C
@@ -593,10 +593,10 @@ gScriptCmdTable: ; 0x020F355C
.word ScrCmd_getpartymonfriendship
.word FUN_020448D4
.word FUN_020449A4
- .word FUN_02044034
+ .word ScrCmd_Unk01BC
.word FUN_0203B618
- .word FUN_020440C0
- .word FUN_020440F0
+ .word ScrCmd_Unk01BE
+ .word ScrCmd_Unk01BF
.word FUN_02044F58
.word FUN_0203E018
.word FUN_0203E054
@@ -608,7 +608,7 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_02044D8C
.word FUN_02044E34
.word FUN_02044E78
- .word FUN_02040E4C
+ .word ScrCmd_GetPokemonMoveName
.word FUN_0203E138
.word FUN_0203E168
.word FUN_0203E254
@@ -646,21 +646,21 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_02044ED8
.word FUN_0203E4D8
.word FUN_02044F20
- .word FUN_02045268
- .word FUN_02045398
- .word FUN_0204539C
- .word FUN_020452B4
- .word FUN_02045308
+ .word ScrCmd_Unk01F1
+ .word ScrCmd_Unk01F2
+ .word ScrCmd_Unk01F3
+ .word ScrCmd_Unk01F4
+ .word ScrCmd_Unk01F5
.word ScrCmd_countpartymonsatorbelowlevel
.word ScrCmd_survivepsn
.word FUN_0203BC2C
- .word FUN_02039A10
- .word ScrCmd_message_from
- .word FUN_0203A098
- .word FUN_0203A0FC
- .word FUN_0203A13C
- .word FUN_0203A188
- .word FUN_0203A210
+ .word ScrCmd_DebugWatch
+ .word ScrCmd_MessageFrom
+ .word ScrCmd_MessageFrom2
+ .word ScrCmd_Unk01FC
+ .word ScrCmd_Unk01FD
+ .word ScrCmd_Unk01FE
+ .word ScrCmd_Unk01FF
.word FUN_0203C7F4
.word FUN_0203C820
.word FUN_0203E5DC
@@ -673,7 +673,7 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203BE50
.word FUN_0203BECC
.word FUN_0203BF00
- .word FUN_0203A3C4
+ .word ScrCmd_Unk020C
.word FUN_0203E684
.word FUN_0203E6B4
.word FUN_0203E6C4
@@ -711,7 +711,7 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0204505C
.word FUN_02045104
.word FUN_02045170
- .word FUN_02040EB4
+ .word ScrCmd_Unk0232
.word FUN_0203E9CC
.word FUN_0203EA68
.word FUN_02041E40
@@ -724,10 +724,10 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203EB48
.word FUN_0203EB88
.word FUN_02042D1C
- .word FUN_02046010
- .word FUN_0204601C
- .word FUN_02046028
- .word FUN_0204602C
+ .word ScrCmd_Unk023F
+ .word ScrCmd_Unk0240
+ .word ScrCmd_Unk0241
+ .word ScrCmd_Unk0242
.word FUN_0203C5BC
.word FUN_0203C614
.word FUN_0203C680
@@ -742,12 +742,12 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_02041194
.word FUN_020411C4
.word FUN_02041340
- .word FUN_02040964
+ .word ScrCmd_Unk0251
.word ScrCmd_pcfreespace
- .word FUN_0204387C
- .word FUN_020438D0
- .word FUN_02043918
- .word FUN_020439B4
+ .word ScrCmd_Unk0253
+ .word ScrCmd_Unk0254
+ .word ScrCmd_Unk0255
+ .word ScrCmd_Unk0256
.word FUN_0203FE80
.word FUN_0203EDA4
.word FUN_0203EDC8
@@ -758,7 +758,7 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203EE58
.word FUN_0203EE68
.word FUN_0203EE78
- .word FUN_02040DB4
+ .word ScrCmd_GetFashionName
.word FUN_0203EE98
.word FUN_0203EED8
.word FUN_0203EF58
@@ -770,16 +770,16 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203F110
.word FUN_0203F174
.word FUN_0203F19C
- .word FUN_0203A288
+ .word ScrCmd_Unk026D
.word FUN_0203F234
.word FUN_0203F254
.word FUN_0203F26C
.word FUN_0203C58C
- .word FUN_02040DEC
+ .word ScrCmd_Unk0272
.word FUN_0203F2AC
- .word FUN_02043B84
+ .word ScrCmd_HasEnoughCoinsImmediate
.word FUN_0203F2E4
- .word FUN_02043C28
+ .word ScrCmd_CanGiveCoins
.word FUN_0203F31C
.word ScrCmd_getpartymonlevel
.word FUN_0203F348
@@ -789,7 +789,7 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203F3AC
.word FUN_0203F44C
.word FUN_0203F418
- .word FUN_020408BC
+ .word ScrCmd_Unk0280
.word FUN_02044A0C
.word FUN_0203F484
.word FUN_02041674
@@ -818,7 +818,7 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_02042A48
.word FUN_02042A98
.word FUN_0203D7DC
- .word FUN_0203ACC4
+ .word ScrCmd_Unk029D
.word FUN_0203F8C0
.word FUN_0203F954
.word FUN_0204190C
@@ -827,10 +827,10 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203F988
.word FUN_0203F9B0
.word FUN_0203B914
- .word FUN_020453A0
+ .word ScrCmd_Unk02A6
.word FUN_0203FA14
- .word FUN_02043B54
- .word FUN_02043BD0
+ .word ScrCmd_TakeCoinsAddress
+ .word ScrCmd_HasEnoughCoinsAddress
.word FUN_0203FA58
.word FUN_0203B7F0
.word FUN_0203FB4C
@@ -840,36 +840,36 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203FB94
.word FUN_0203FBA0
.word FUN_0203FBAC
- .word FUN_02040EF8
+ .word ScrCmd_GetSealName
.word FUN_0203B2E0
.word FUN_0203FBBC
.word FUN_0203FC1C
.word FUN_020451D0
.word FUN_02042000
- .word FUN_0203AD54
+ .word ScrCmd_Unk02B9
.word FUN_0203D4E8
.word FUN_0203D920
.word FUN_02041B40
.word FUN_0203D0A4
.word FUN_0203FC58
.word FUN_0203CAE8
- .word FUN_0203A340
+ .word ScrCmd_Unk02C0
.word FUN_0203FC80
.word FUN_0203FCB0
.word FUN_0203FCDC
- .word FUN_02040F34
- .word FUN_02040F6C
- .word FUN_02040FA4
- .word FUN_02040FDC
- .word FUN_02041014
- .word FUN_0204104C
- .word FUN_02041094
- .word FUN_020410C8
- .word FUN_02041100
- .word FUN_02041138
- .word FUN_02041174
- .word FUN_0203AF84
- .word FUN_0203AFA4
+ .word ScrCmd_GetItemNameWithIndefArticle
+ .word ScrCmd_GetItemNamePlural
+ .word ScrCmd_GetDecorationNameWithArticle
+ .word ScrCmd_GetUndergroundTrapNameWithArticle
+ .word ScrCmd_GetUndergroundItemNameWithArticle
+ .word ScrCmd_Unk02C9
+ .word ScrCmd_Unk02CA
+ .word ScrCmd_GetFashionNameWithArticle
+ .word ScrCmd_Unk02CC
+ .word ScrCmd_GetSealNamePlural
+ .word ScrCmd_CapitalizeFirstChar
+ .word ScrCmd_Unk02CF
+ .word ScrCmd_Unk02D0
.text
@@ -1925,7 +1925,7 @@ ScriptRunByIndex: ; 0x02039484
thumb_func_start LoadScriptsForCurrentMap
LoadScriptsForCurrentMap: ; 0x0203949C
push {r3, lr}
- bl MapHeader_GetScrSeqReleaseNo
+ bl MapHeader_GetScriptsBank
add r1, r0, #0x0
mov r0, #0xa
mov r2, #0xb
diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s
index 8eac1942..7e25689f 100644
--- a/arm9/asm/unk_020476CC.s
+++ b/arm9/asm/unk_020476CC.s
@@ -525,7 +525,7 @@ FUN_02047A78: ; 0x02047A78
str r0, [r5, r1]
ldr r0, [r4, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
mov r1, #0x56
lsl r1, r1, #0x2
str r0, [r5, r1]
@@ -1161,7 +1161,7 @@ FUN_0204806C: ; 0x0204806C
add r6, r0, #0x0
ldr r0, [r4, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034860
+ bl MapHeader_GetField17_0
mov r1, #0x15
lsl r1, r1, #0x4
str r0, [r5, r1]
diff --git a/arm9/asm/unk_02048120.s b/arm9/asm/unk_02048120.s
index 3c92ba05..6f303045 100644
--- a/arm9/asm/unk_02048120.s
+++ b/arm9/asm/unk_02048120.s
@@ -32,7 +32,7 @@ FUN_02048120: ; 0x02048120
sub sp, #0x8
add r4, r0, #0x0
ldr r0, _02048158 ; =UNK_020F465C
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r0, _0204815C ; =UNK_020F4630
bl FUN_02016BBC
ldr r2, _02048160 ; =UNK_020F4640
diff --git a/arm9/asm/unk_020484A8.s b/arm9/asm/unk_020484A8.s
index 833d62c0..4750c7ea 100644
--- a/arm9/asm/unk_020484A8.s
+++ b/arm9/asm/unk_020484A8.s
@@ -345,7 +345,7 @@ FUN_02048764: ; 0x02048764
add r0, r1, #0x0
bl FUN_0201901C
ldr r0, _020487D4 ; =UNK_020F46B0
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _020487D8 ; =0x04000304
ldrh r1, [r2, #0x0]
lsr r0, r2, #0xb
diff --git a/arm9/asm/unk_02048904.s b/arm9/asm/unk_02048904.s
index d9259556..1fcababe 100644
--- a/arm9/asm/unk_02048904.s
+++ b/arm9/asm/unk_02048904.s
@@ -223,14 +223,14 @@ _02048A82:
bl FUN_02034E10
add r6, r0, #0x0
add r0, r7, #0x0
- bl FUN_0203484C
+ bl MapHeader_GetCameraType
cmp r6, r0
beq _02048AB4
bl ErrorHandling
b _02048AB4
_02048AA6:
add r0, r7, #0x0
- bl FUN_0203484C
+ bl MapHeader_GetCameraType
add r1, r0, #0x0
ldr r0, [sp, #0x4]
bl FUN_02034E18
diff --git a/arm9/asm/unk_0204AB0C.s b/arm9/asm/unk_0204AB0C.s
index 45702b12..bea4eefa 100644
--- a/arm9/asm/unk_0204AB0C.s
+++ b/arm9/asm/unk_0204AB0C.s
@@ -121,11 +121,11 @@ FUN_0204ABA8: ; 0x0204ABA8
cmp r0, #0x0
bne _0204ABBE
add r0, r4, #0x0
- bl FUN_020347B0
+ bl MapHeader_GetDayMusicId
b _0204ABC4
_0204ABBE:
add r0, r4, #0x0
- bl FUN_020347C4
+ bl MapHeader_GetNightMusicId
_0204ABC4:
add r6, r0, #0x0
ldr r0, [r5, #0xc]
@@ -338,11 +338,11 @@ FUN_0204AD44: ; 0x0204AD44
cmp r0, #0x0
bne _0204AD58
add r0, r4, #0x0
- bl FUN_020347B0
+ bl MapHeader_GetDayMusicId
pop {r4, pc}
_0204AD58:
add r0, r4, #0x0
- bl FUN_020347C4
+ bl MapHeader_GetNightMusicId
pop {r4, pc}
thumb_func_start FUN_0204AD60
diff --git a/arm9/asm/unk_0204AEA8.s b/arm9/asm/unk_0204AEA8.s
deleted file mode 100644
index 018a64e2..00000000
--- a/arm9/asm/unk_0204AEA8.s
+++ /dev/null
@@ -1,67 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_0204AEA8
-FUN_0204AEA8: ; 0x0204AEA8
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- beq _0204AEC6
- cmp r1, #0x1
- beq _0204AEE6
- b _0204AEF4
-_0204AEC6:
- ldr r0, [r4, #0x8]
- add r1, r5, #0x0
- add r2, r4, #0x4
- bl MOD05_021E3444
- ldr r1, [r4, #0xc]
- mov r0, #0x5
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- mov r2, #0x1
- bl FUN_0200433C
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- b _0204AEF4
-_0204AEE6:
- ldr r1, [r4, #0x4]
- cmp r1, #0x1
- bne _0204AEF4
- bl FreeToHeap
- mov r0, #0x1
- pop {r3-r5, pc}
-_0204AEF4:
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0204AEF8
-FUN_0204AEF8: ; 0x0204AEF8
- push {r4-r6, lr}
- add r6, r0, #0x0
- add r5, r1, #0x0
- mov r0, #0xb
- mov r1, #0x10
- add r4, r2, #0x0
- bl AllocFromHeapAtEnd
- add r2, r0, #0x0
- mov r0, #0x0
- str r0, [r2, #0x0]
- str r0, [r2, #0x4]
- str r5, [r2, #0x8]
- ldr r1, _0204AF20 ; =FUN_0204AEA8
- add r0, r6, #0x0
- str r4, [r2, #0xc]
- bl FUN_0204640C
- pop {r4-r6, pc}
- nop
-_0204AF20: .word FUN_0204AEA8
diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s
index 5746b23f..c8a8a153 100644
--- a/arm9/asm/unk_02050E48.s
+++ b/arm9/asm/unk_02050E48.s
@@ -35,7 +35,7 @@ FUN_02050E48: ; 0x02050E48
add r0, r4, #0x0
bl FUN_0207C2A4
add r0, r6, #0x0
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
str r0, [r4, #0x1c]
add r0, r6, #0x0
bl FUN_02079C70
diff --git a/arm9/asm/unk_02053750.s b/arm9/asm/unk_02053750.s
index 73072399..6ab54142 100644
--- a/arm9/asm/unk_02053750.s
+++ b/arm9/asm/unk_02053750.s
@@ -308,10 +308,10 @@ _02053912:
bl FUN_02017FB4
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r1, #0x57
lsl r1, r1, #0x2
add r0, r4, #0x0
@@ -488,7 +488,7 @@ _02053A78:
bge _02053B30
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x6
lsl r0, r0, #0x6
ldr r1, [r4, r0]
@@ -559,7 +559,7 @@ _02053B00:
_02053B16:
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x62
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -878,10 +878,10 @@ FUN_02053D70: ; 0x02053D70
str r0, [r4, #0x0]
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r4, pc}
thumb_func_start FUN_02053D94
diff --git a/arm9/asm/unk_0205CE48.s b/arm9/asm/unk_0205CE48.s
index 5ad7ca34..6e6f1f85 100644
--- a/arm9/asm/unk_0205CE48.s
+++ b/arm9/asm/unk_0205CE48.s
@@ -432,7 +432,7 @@ FUN_0205D170: ; 0x0205D170
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
cmp r0, #0x0
bne _0205D184
mov r0, #0x0
@@ -440,7 +440,7 @@ FUN_0205D170: ; 0x0205D170
pop {r3-r5, pc}
_0205D184:
ldr r0, [r5, #0x0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0x0
bne _0205D194
mov r0, #0x0
@@ -697,7 +697,7 @@ _0205D390:
pop {r3-r5, pc}
_0205D396:
ldr r0, [r4, #0x0]
- bl FUN_020348B4
+ bl MapHeader_IsBikeAllowed
cmp r0, #0x0
bne _0205D3A6
mov r0, #0x0
@@ -1178,7 +1178,7 @@ _0205D730: .word 0x000022F6
FUN_0205D734: ; 0x0205D734
push {r3, lr}
ldr r0, [r0, #0x0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0x0
beq _0205D744
mov r0, #0x0
@@ -1595,7 +1595,7 @@ _0205DA8E:
cmp r0, #0x1
bne _0205DAA6
ldr r0, [r4, #0x0]
- bl FUN_0203487C
+ bl MapHeader_GetField17_6
cmp r0, #0x1
bne _0205DAA6
mov r0, #0x0
diff --git a/arm9/asm/unk_0205F7A0.s b/arm9/asm/unk_0205F7A0.s
index 43358f72..b781112b 100644
--- a/arm9/asm/unk_0205F7A0.s
+++ b/arm9/asm/unk_0205F7A0.s
@@ -55,7 +55,7 @@ FUN_0205F7A0: ; 0x0205F7A0
asr r1, r1, #0x5
asr r2, r2, #0x5
bl FUN_0203451C
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0x0
beq _0205F806
str r4, [r5, #0x0]
diff --git a/arm9/asm/unk_0205FA2C.s b/arm9/asm/unk_0205FA2C.s
deleted file mode 100644
index ae0d9d3f..00000000
--- a/arm9/asm/unk_0205FA2C.s
+++ /dev/null
@@ -1,930 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern UNK_020F96DC
- .extern UNK_020FA6E8
-
- .section .rodata
-
- .global UNK_020F7454
-UNK_020F7454: ; 0x020F7454
- .byte 0x00, 0x01, 0x02, 0x04, 0x03, 0x05, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00
-
- .text
-
- thumb_func_start FUN_0205FA2C
-FUN_0205FA2C: ; 0x0205FA2C
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r7, r1, #0x0
- add r0, r2, #0x0
- mov r1, #0x40
- bl AllocFromHeapAtEnd
- ldr r6, [r7, #0xc]
- mov r1, #0x0
- mov r2, #0x40
- add r4, r0, #0x0
- bl MI_CpuFill8
- add r0, r6, #0x0
- bl Sav2_PlayerData_GetOptionsAddr
- str r0, [r4, #0xc]
- add r0, r6, #0x0
- bl SavArray_PlayerParty_get
- str r0, [r4, #0x0]
- add r0, r6, #0x0
- bl Sav2_Bag_get
- str r0, [r4, #0x4]
- add r0, r4, #0x0
- mov r1, #0x0
- add r0, #0x21
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- ldrb r2, [r5, #0x8]
- add r0, #0x20
- strb r2, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x32
- ldrb r0, [r0, #0x0]
- mov r2, #0xf
- ldrb r3, [r5, #0xa]
- bic r0, r2
- mov r2, #0xf
- and r2, r3
- orr r2, r0
- add r0, r4, #0x0
- add r0, #0x32
- strb r2, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x32
- ldrb r0, [r0, #0x0]
- mov r2, #0xf0
- bic r0, r2
- ldrb r2, [r5, #0xb]
- lsl r2, r2, #0x1c
- lsr r2, r2, #0x18
- orr r2, r0
- add r0, r4, #0x0
- add r0, #0x32
- strb r2, [r0, #0x0]
- add r0, r4, #0x0
- ldrb r2, [r5, #0xc]
- add r0, #0x33
- strb r2, [r0, #0x0]
- add r0, r4, #0x0
- ldrb r2, [r5, #0xd]
- add r0, #0x22
- strb r2, [r0, #0x0]
-_0205FAAE:
- add r0, r5, r1
- ldrb r2, [r0, #0xe]
- add r0, r4, r1
- add r0, #0x2c
- strb r2, [r0, #0x0]
- add r0, r1, #0x1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- cmp r1, #0x6
- blo _0205FAAE
- ldr r1, _0205FAD4 ; =UNK_020F96DC
- add r0, r7, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- ldr r0, [r5, #0x14]
- str r4, [r0, #0x0]
- mov r0, #0x1
- pop {r3-r7, pc}
- .balign 4
-_0205FAD4: .word UNK_020F96DC
-
- thumb_func_start FUN_0205FAD8
-FUN_0205FAD8: ; 0x0205FAD8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- bl FUN_0204647C
- cmp r0, #0x0
- beq _0205FAEA
- mov r0, #0x1
- pop {r3-r5, pc}
-_0205FAEA:
- ldr r0, [r5, #0x14]
- ldr r4, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x22
- ldrb r0, [r0, #0x0]
- cmp r0, #0x6
- beq _0205FB04
- cmp r0, #0x7
- bne _0205FB0C
- mov r0, #0x0
- str r0, [r5, #0x0]
- mov r0, #0x4
- pop {r3-r5, pc}
-_0205FB04:
- mov r0, #0x1
- str r0, [r5, #0x0]
- mov r0, #0x4
- pop {r3-r5, pc}
-_0205FB0C:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r0, #0x2c
- add r1, #0xe
- mov r2, #0x6
- bl MI_CpuCopy8
- add r0, r4, #0x0
- add r0, #0x22
- ldrb r0, [r0, #0x0]
- strb r0, [r5, #0xd]
- add r0, r4, #0x0
- bl FreeToHeap
- ldr r0, [r5, #0x14]
- mov r1, #0x0
- str r1, [r0, #0x0]
- mov r0, #0x2
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0205FB34
-FUN_0205FB34: ; 0x0205FB34
- push {r3-r7, lr}
- add r7, r1, #0x0
- add r6, r0, #0x0
- ldr r5, [r7, #0xc]
- add r0, r2, #0x0
- mov r1, #0x30
- bl AllocFromHeapAtEnd
- mov r1, #0x0
- mov r2, #0x30
- add r4, r0, #0x0
- bl MI_CpuFill8
- add r0, r5, #0x0
- bl Sav2_PlayerData_GetOptionsAddr
- str r0, [r4, #0x4]
- add r0, r5, #0x0
- bl SavArray_PlayerParty_get
- str r0, [r4, #0x0]
- add r0, r5, #0x0
- bl FUN_0206BB28
- str r0, [r4, #0x1c]
- add r0, r5, #0x0
- bl FUN_02079C70
- str r0, [r4, #0x2c]
- mov r0, #0x1
- strb r0, [r4, #0x11]
- ldrb r0, [r6, #0xd]
- strb r0, [r4, #0x14]
- ldr r0, [r4, #0x0]
- bl GetPartyCount
- strb r0, [r4, #0x13]
- mov r0, #0x0
- strh r0, [r4, #0x18]
- ldrb r0, [r6, #0x9]
- strb r0, [r4, #0x12]
- add r0, r5, #0x0
- bl FUN_0202A918
- str r0, [r4, #0x20]
- ldr r1, _0205FBB8 ; =UNK_020F7454
- add r0, r4, #0x0
- bl FUN_0207B000
- add r0, r5, #0x0
- bl Sav2_PlayerData_GetProfileAddr
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0207C2A4
- ldr r1, _0205FBBC ; =UNK_020FA6E8
- add r0, r7, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- ldr r0, [r6, #0x14]
- str r4, [r0, #0x0]
- mov r0, #0x3
- pop {r3-r7, pc}
- nop
-_0205FBB8: .word UNK_020F7454
-_0205FBBC: .word UNK_020FA6E8
-
- thumb_func_start FUN_0205FBC0
-FUN_0205FBC0: ; 0x0205FBC0
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_0204647C
- cmp r0, #0x0
- beq _0205FBD2
- mov r0, #0x3
- pop {r4, pc}
-_0205FBD2:
- ldr r0, [r4, #0x14]
- ldr r0, [r0, #0x0]
- ldrb r1, [r0, #0x14]
- strb r1, [r4, #0xd]
- bl FreeToHeap
- ldr r1, [r4, #0x14]
- mov r0, #0x0
- str r0, [r1, #0x0]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0205FBE8
-FUN_0205FBE8: ; 0x0205FBE8
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- ldr r1, [r4, #0x4]
- cmp r1, #0x4
- bhi _0205FC4A
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0205FC0C: ; jump table (using 16-bit offset)
- .short _0205FC16 - _0205FC0C - 2; case 0
- .short _0205FC22 - _0205FC0C - 2; case 1
- .short _0205FC2C - _0205FC0C - 2; case 2
- .short _0205FC38 - _0205FC0C - 2; case 3
- .short _0205FC42 - _0205FC0C - 2; case 4
-_0205FC16:
- add r1, r5, #0x0
- mov r2, #0xb
- bl FUN_0205FA2C
- str r0, [r4, #0x4]
- b _0205FC4A
-_0205FC22:
- add r1, r5, #0x0
- bl FUN_0205FAD8
- str r0, [r4, #0x4]
- b _0205FC4A
-_0205FC2C:
- add r1, r5, #0x0
- mov r2, #0xb
- bl FUN_0205FB34
- str r0, [r4, #0x4]
- b _0205FC4A
-_0205FC38:
- add r1, r5, #0x0
- bl FUN_0205FBC0
- str r0, [r4, #0x4]
- b _0205FC4A
-_0205FC42:
- bl FreeToHeap
- mov r0, #0x1
- pop {r3-r5, pc}
-_0205FC4A:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0205FC50
-FUN_0205FC50: ; 0x0205FC50
- push {r3-r7, lr}
- add r5, r1, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_02046528
- str r0, [sp, #0x0]
- mov r0, #0xb
- mov r1, #0x18
- bl AllocFromHeap
- add r4, r0, #0x0
- mov r1, #0x0
- mov r2, #0x18
- bl MI_CpuFill8
- strb r6, [r4, #0x8]
- strb r7, [r4, #0x9]
- add r0, sp, #0x8
- ldrb r1, [r0, #0x10]
- add r2, r4, #0x0
- strb r1, [r4, #0xa]
- ldrb r1, [r0, #0x14]
- strb r1, [r4, #0xb]
- ldrb r1, [r0, #0x18]
- strb r1, [r4, #0xc]
- ldrb r0, [r0, #0x1c]
- ldr r1, _0205FC98 ; =FUN_0205FBE8
- strb r0, [r4, #0xd]
- ldr r0, [sp, #0x0]
- str r5, [r4, #0x14]
- ldr r0, [r0, #0x10]
- bl FUN_0204640C
- pop {r3-r7, pc}
- nop
-_0205FC98: .word FUN_0205FBE8
-
- thumb_func_start FUN_0205FC9C
-FUN_0205FC9C: ; 0x0205FC9C
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_0203384C
- cmp r0, #0x0
- beq _0205FCBC
- ldrh r1, [r4, #0x12]
- ldrh r2, [r4, #0x14]
- add r0, r5, #0x0
- bl FUN_02038790
- str r0, [r4, #0x8]
- mov r0, #0x1
- pop {r3-r5, pc}
-_0205FCBC:
- mov r0, #0x1
- str r0, [r4, #0x0]
- mov r0, #0x2
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0205FCC4
-FUN_0205FCC4: ; 0x0205FCC4
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_0204647C
- cmp r0, #0x0
- beq _0205FCD6
- mov r0, #0x1
- pop {r4, pc}
-_0205FCD6:
- ldr r0, [r4, #0x8]
- ldr r0, [r0, #0x20]
- str r0, [r4, #0x0]
- ldr r0, [r4, #0x8]
- bl FreeToHeap
- mov r0, #0x2
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0205FCE8
-FUN_0205FCE8: ; 0x0205FCE8
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- ldr r1, [r4, #0x4]
- cmp r1, #0x0
- beq _0205FD0A
- cmp r1, #0x1
- beq _0205FD14
- cmp r1, #0x2
- beq _0205FD1E
- b _0205FD34
-_0205FD0A:
- add r1, r5, #0x0
- bl FUN_0205FC9C
- str r0, [r4, #0x4]
- b _0205FD34
-_0205FD14:
- add r1, r5, #0x0
- bl FUN_0205FCC4
- str r0, [r4, #0x4]
- b _0205FD34
-_0205FD1E:
- ldrh r1, [r4, #0x10]
- add r0, r5, #0x0
- bl GetVarPointer
- ldr r1, [r4, #0x0]
- strh r1, [r0, #0x0]
- add r0, r4, #0x0
- bl FreeToHeap
- mov r0, #0x1
- pop {r3-r5, pc}
-_0205FD34:
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0205FD38
-FUN_0205FD38: ; 0x0205FD38
- push {r3-r7, lr}
- add r5, r1, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_02046528
- str r0, [sp, #0x0]
- mov r0, #0xb
- mov r1, #0x18
- bl AllocFromHeap
- add r4, r0, #0x0
- mov r1, #0x0
- mov r2, #0x18
- bl MI_CpuFill8
- strh r5, [r4, #0x12]
- strh r7, [r4, #0x14]
- ldr r0, [sp, #0x0]
- strh r6, [r4, #0x10]
- ldr r0, [r0, #0x10]
- ldr r1, _0205FD6C ; =FUN_0205FCE8
- add r2, r4, #0x0
- bl FUN_0204640C
- pop {r3-r7, pc}
- .balign 4
-_0205FD6C: .word FUN_0205FCE8
-
- thumb_func_start FUN_0205FD70
-FUN_0205FD70: ; 0x0205FD70
- push {r3-r7, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r5, r0, #0x0
- bl FUN_02031190
- mov r1, #0x1
- sub r0, r1, r0
- bl FUN_020316E0
- add r7, r0, #0x0
- bne _0205FD96
- mov r0, #0x0
- pop {r3-r7, pc}
-_0205FD96:
- ldrh r1, [r5, #0x2]
- add r0, r6, #0x0
- bl GetVarPointer
- add r4, r0, #0x0
- ldrh r0, [r5, #0x0]
- cmp r0, #0x0
- beq _0205FDB0
- cmp r0, #0x1
- beq _0205FDBC
- cmp r0, #0x2
- beq _0205FDC8
- b _0205FDD2
-_0205FDB0:
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl MOD06_02244660
- strh r0, [r4, #0x0]
- b _0205FDD2
-_0205FDBC:
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl MOD06_022446BC
- strh r0, [r4, #0x0]
- b _0205FDD2
-_0205FDC8:
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl MOD06_022446E0
- strh r0, [r4, #0x0]
-_0205FDD2:
- add r0, r5, #0x0
- bl FreeToHeap
- mov r0, #0x1
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0205FDDC
-FUN_0205FDDC: ; 0x0205FDDC
- push {r3-r7, lr}
- add r5, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02046528
- add r7, r0, #0x0
- mov r0, #0xb
- mov r1, #0x4
- bl AllocFromHeap
- add r4, r0, #0x0
- mov r1, #0x0
- mov r2, #0x4
- bl MI_CpuFill8
- strh r5, [r4, #0x0]
- strh r6, [r4, #0x2]
- ldr r0, [r7, #0x10]
- ldr r1, _0205FE0C ; =FUN_0205FD70
- add r2, r4, #0x0
- bl FUN_0204640C
- pop {r3-r7, pc}
- nop
-_0205FE0C: .word FUN_0205FD70
-
- thumb_func_start FUN_0205FE10
-FUN_0205FE10: ; 0x0205FE10
- push {r4-r7, lr}
- sub sp, #0x14
- str r0, [sp, #0x0]
- bl FUN_02029FC8
- mov r1, #0x35
- bl FUN_0202A150
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
- cmp r0, #0x14
- bhs _0205FE30
- add sp, #0x14
- mov r0, #0x0
- pop {r4-r7, pc}
-_0205FE30:
- ldr r0, [sp, #0x0]
- bl FUN_0202A8D8
- mov r1, #0xd
- mov r2, #0x0
- add r4, r0, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- mov r1, #0x0
- lsr r7, r0, #0x18
- add r0, r4, #0x0
- add r2, r1, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- add r0, r4, #0x0
- mov r1, #0x1
- mov r2, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- add r0, r4, #0x0
- mov r1, #0xe
- mov r2, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- add r0, r4, #0x0
- mov r1, #0x2
- mov r2, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x8]
- add r0, r4, #0x0
- mov r1, #0x3
- mov r2, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x4]
- cmp r7, #0x0
- beq _0205FEA2
- cmp r6, #0x0
- beq _0205FEA2
- cmp r5, #0x0
- beq _0205FEA2
- add sp, #0x14
- mov r0, #0x0
- pop {r4-r7, pc}
-_0205FEA2:
- ldr r0, [sp, #0x0]
- bl FUN_02026CC4
- cmp r7, #0x0
- bne _0205FEDC
- mov r1, #0x55
- bl FUN_02025D94
- cmp r0, #0x0
- beq _0205FEC6
- add r0, r4, #0x0
- mov r1, #0xd
- mov r2, #0x1
- bl FUN_0202A578
- add sp, #0x14
- mov r0, #0x1
- pop {r4-r7, pc}
-_0205FEC6:
- ldr r0, [sp, #0xc]
- cmp r0, #0x0
- bne _0205FED6
- add r0, r4, #0x0
- mov r1, #0xe
- mov r2, #0x1
- bl FUN_0202A578
-_0205FED6:
- add sp, #0x14
- mov r0, #0x4
- pop {r4-r7, pc}
-_0205FEDC:
- ldr r1, [sp, #0x10]
- cmp r1, #0x32
- bhs _0205FEE8
- add sp, #0x14
- mov r0, #0x0
- pop {r4-r7, pc}
-_0205FEE8:
- cmp r6, #0x0
- bne _0205FF1C
- mov r1, #0x56
- bl FUN_02025D94
- cmp r0, #0x0
- beq _0205FF06
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x1
- bl FUN_0202A578
- add sp, #0x14
- mov r0, #0x2
- pop {r4-r7, pc}
-_0205FF06:
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- bne _0205FF16
- add r0, r4, #0x0
- mov r1, #0x2
- mov r2, #0x1
- bl FUN_0202A578
-_0205FF16:
- add sp, #0x14
- mov r0, #0x4
- pop {r4-r7, pc}
-_0205FF1C:
- cmp r1, #0x64
- blo _0205FF24
- cmp r5, #0x0
- beq _0205FF2A
-_0205FF24:
- add sp, #0x14
- mov r0, #0x0
- pop {r4-r7, pc}
-_0205FF2A:
- mov r1, #0x57
- bl FUN_02025D94
- cmp r0, #0x0
- beq _0205FF44
- mov r1, #0x1
- add r0, r4, #0x0
- add r2, r1, #0x0
- bl FUN_0202A578
- add sp, #0x14
- mov r0, #0x3
- pop {r4-r7, pc}
-_0205FF44:
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- bne _0205FF54
- add r0, r4, #0x0
- mov r1, #0x3
- mov r2, #0x1
- bl FUN_0202A578
-_0205FF54:
- mov r0, #0x4
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0205FF5C
-FUN_0205FF5C: ; 0x0205FF5C
- push {r4-r7, lr}
- sub sp, #0xc
- add r4, r0, #0x0
- bl FUN_02029FC8
- mov r1, #0x35
- bl FUN_0202A150
- lsl r0, r0, #0x10
- lsr r7, r0, #0x10
- cmp r7, #0x14
- bhs _0205FF7A
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0205FF7A:
- add r0, r4, #0x0
- bl FUN_0202A8D8
- mov r1, #0xd
- mov r2, #0x0
- str r0, [sp, #0x8]
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- mov r1, #0x0
- ldr r0, [sp, #0x8]
- add r2, r1, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- ldr r0, [sp, #0x8]
- mov r1, #0x1
- mov r2, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- ldr r0, [sp, #0x8]
- mov r1, #0xe
- mov r2, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x8]
- mov r1, #0x2
- mov r2, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x8]
- mov r1, #0x3
- mov r2, #0x0
- bl FUN_0202A578
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r6, #0x0
- beq _0205FFEA
- cmp r4, #0x0
- beq _0205FFEA
- cmp r5, #0x0
- beq _0205FFEA
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0205FFEA:
- cmp r6, #0x0
- bne _02060000
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- beq _0205FFFA
- add sp, #0xc
- mov r0, #0x4
- pop {r4-r7, pc}
-_0205FFFA:
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_02060000:
- cmp r7, #0x32
- bhs _0206000A
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0206000A:
- cmp r4, #0x0
- bne _02060020
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- beq _0206001A
- add sp, #0xc
- mov r0, #0x5
- pop {r4-r7, pc}
-_0206001A:
- add sp, #0xc
- mov r0, #0x2
- pop {r4-r7, pc}
-_02060020:
- cmp r7, #0x64
- bhs _0206002A
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0206002A:
- cmp r5, #0x0
- beq _02060034
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_02060034:
- cmp r0, #0x0
- beq _0206003E
- add sp, #0xc
- mov r0, #0x6
- pop {r4-r7, pc}
-_0206003E:
- mov r0, #0x3
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_02060044
-FUN_02060044: ; 0x02060044
- add r0, #0xa8
- ldr r0, [r0, #0x0]
- ldr r2, [r1, #0x0]
- ldrh r3, [r0, #0x24]
- add r2, r3, r2
- strh r2, [r0, #0x24]
- ldrh r3, [r0, #0x28]
- ldr r2, [r1, #0x4]
- add r2, r3, r2
- strh r2, [r0, #0x28]
- ldrh r2, [r0, #0x26]
- ldr r1, [r1, #0x8]
- add r1, r2, r1
- strh r1, [r0, #0x26]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02060064
-FUN_02060064: ; 0x02060064
- ldr r1, _0206006C ; =0x02E90EDD
- mul r1, r0
- add r0, r1, #0x1
- bx lr
- .balign 4
-_0206006C: .word 0x02E90EDD
-
- thumb_func_start FUN_02060070
-FUN_02060070: ; 0x02060070
- ldr r1, _02060078 ; =0x5D588B65
- mul r1, r0
- add r0, r1, #0x1
- bx lr
- .balign 4
-_02060078: .word 0x5D588B65
-
- thumb_func_start FUN_0206007C
-FUN_0206007C: ; 0x0206007C
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0202881C
- bl FUN_020287A4
- bl FUN_02060070
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0202A8D8
- add r1, r4, #0x0
- bl FUN_0202A5CC
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020600A0
-FUN_020600A0: ; 0x020600A0
- push {r3-r6, lr}
- sub sp, #0x4
- add r5, r0, #0x0
- bl FUN_0202A8D8
- add r6, r0, #0x0
- bl FUN_0202A5D0
- bl FUN_02060070
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_0202A5CC
- add r0, r4, #0x0
- bl FUN_02060064
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- bl FUN_0202A8CC
- mov r1, #0xa
- add r2, sp, #0x0
- bl FUN_0202A2C4
- ldr r0, [sp, #0x0]
- add sp, #0x4
- pop {r3-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020600DC
-FUN_020600DC: ; 0x020600DC
- push {r3-r6, lr}
- sub sp, #0x4
- add r6, r0, #0x0
- bl FUN_0202A8D8
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0202A8CC
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0202A5D0
- bl FUN_02060064
- mov r1, #0x0
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl FUN_0202A240
- add r1, r0, #0x0
- lsl r1, r1, #0x10
- add r0, r4, #0x0
- lsr r1, r1, #0x10
- mov r2, #0x0
- bl FUN_0202A538
- mov r1, #0x18
- add r5, r0, #0x0
- mul r5, r1
- mov r4, #0x0
- cmp r5, #0x0
- ble _0206012E
- ldr r0, [sp, #0x0]
-_02060122:
- bl FUN_02060064
- add r4, r4, #0x1
- str r0, [sp, #0x0]
- cmp r4, r5
- blt _02060122
-_0206012E:
- add r0, r6, #0x0
- bl FUN_0202A8CC
- mov r1, #0xa
- add r2, sp, #0x0
- bl FUN_0202A2C4
- ldr r0, [sp, #0x0]
- add sp, #0x4
- pop {r3-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02060144
-FUN_02060144: ; 0x02060144
- ldr r0, [r0, #0x1c]
- ldr r1, [r0, #0x0]
- ldr r0, _02060158 ; =0x000001ED
- cmp r1, r0
- bne _02060152
- mov r0, #0x1
- bx lr
-_02060152:
- mov r0, #0x0
- bx lr
- nop
-_02060158: .word 0x000001ED
diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s
index 44e19c06..b6692f24 100644
--- a/arm9/asm/unk_02060CCC.s
+++ b/arm9/asm/unk_02060CCC.s
@@ -1033,7 +1033,7 @@ FUN_02061374: ; 0x02061374
strh r1, [r0, #0x0]
ldr r0, [r4, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r1, sp, #0x0
strh r0, [r1, #0x2]
add r0, r4, #0x0
@@ -1084,7 +1084,7 @@ FUN_020613CC: ; 0x020613CC
bl FUN_02060E34
ldr r0, [r4, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r1, sp, #0x4
strh r0, [r1, #0x6]
add r0, r4, #0x0
@@ -2838,7 +2838,7 @@ _0206218C:
bl FUN_02034FE4
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0x0
add r0, r7, #0x0
mov r1, #0x0
@@ -2949,7 +2949,7 @@ FUN_02062240: ; 0x02062240
bl MOD06_02245910
add r0, sp, #0x0
ldrh r0, [r0, #0x2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x0
@@ -3176,7 +3176,7 @@ FUN_020623F4: ; 0x020623F4
lsl r1, r0, #0x1
ldr r0, _0206245C ; =UNK_020F79EE
ldrh r0, [r0, r1]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
diff --git a/arm9/asm/unk_0206367C.s b/arm9/asm/unk_0206367C.s
index 431828e8..0696b4e4 100644
--- a/arm9/asm/unk_0206367C.s
+++ b/arm9/asm/unk_0206367C.s
@@ -107,7 +107,7 @@ _02063758:
bne _0206377C
ldr r0, [r5, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_020348B4
+ bl MapHeader_IsBikeAllowed
cmp r0, #0x0
bne _0206377C
mov r0, #0x0
@@ -122,7 +122,7 @@ _0206377C:
_02063786:
ldr r0, [r5, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0x0
beq _020637A6
ldr r0, [r5, #0xc]
diff --git a/arm9/asm/unk_02063948.s b/arm9/asm/unk_02063948.s
index 28b6db5b..854eaedd 100644
--- a/arm9/asm/unk_02063948.s
+++ b/arm9/asm/unk_02063948.s
@@ -303,7 +303,7 @@ _02063B52:
pop {r4, pc}
_02063B66:
ldr r0, [r4, #0x0]
- bl FUN_02034898
+ bl MapHeader_IsFlyAllowed
cmp r0, #0x0
bne _02063B74
mov r0, #0x1
@@ -1129,7 +1129,7 @@ _020641BE:
cmp r0, #0x1
bne _020641D2
ldr r0, [r4, #0x0]
- bl FUN_0203487C
+ bl MapHeader_GetField17_6
cmp r0, #0x1
beq _020641D6
_020641D2:
diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s
index 8e89581c..879f7f48 100644
--- a/arm9/asm/unk_0206C700.s
+++ b/arm9/asm/unk_0206C700.s
@@ -2237,7 +2237,7 @@ FUN_0206D9B4: ; 0x0206D9B4
sub sp, #0xb8
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
ldr r6, _0206DC28 ; =UNK_020F8354
add r3, sp, #0x3c
mov r2, #0x5
@@ -2247,7 +2247,7 @@ _0206D9C6:
sub r2, r2, #0x1
bne _0206D9C6
add r0, sp, #0x3c
- bl FUN_0201E66C
+ bl GX_SetBanks
mov r1, #0x6
mov r2, #0x2
mov r0, #0x0
@@ -2323,7 +2323,7 @@ _0206DA26:
orr r2, r0
strh r2, [r1, #0x0]
add r1, r0, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r6, _0206DC38 ; =UNK_020F8338
add r3, sp, #0x10
ldmia r6!, {r0-r1}
@@ -2507,10 +2507,10 @@ _0206DA26:
mov r1, #0xa0
add r0, #0x75
strb r1, [r0, #0x0]
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _0206DC44 ; =FUN_0206DD08
add r1, r5, #0x0
bl Main_SetVBlankIntrCB
@@ -2532,10 +2532,10 @@ FUN_0206DC48: ; 0x0206DC48
add r4, r0, #0x0
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0x0
mov r1, #0x1
bl FUN_020178A0
diff --git a/arm9/asm/unk_0206DE24.s b/arm9/asm/unk_0206DE24.s
index 41eab63c..0bc45eb2 100644
--- a/arm9/asm/unk_0206DE24.s
+++ b/arm9/asm/unk_0206DE24.s
@@ -9,8 +9,8 @@
thumb_func_start FUN_0206DE24
FUN_0206DE24: ; 0x0206DE24
push {r3, lr}
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -69,7 +69,7 @@ FUN_0206DE94: ; 0x0206DE94
push {r3, lr}
mov r0, #0x1
add r1, r0, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _0206DF00 ; =0x04000008
mov r1, #0x3
ldrh r2, [r0, #0x0]
diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s
index e09b1ec4..b7b79b0e 100644
--- a/arm9/asm/unk_0206F3FC.s
+++ b/arm9/asm/unk_0206F3FC.s
@@ -124,8 +124,8 @@ FUN_0206F3FC: ; 0x0206F3FC
add r1, r0, #0x0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r0, #0x1
lsl r0, r0, #0x1a
ldr r2, [r0, #0x0]
@@ -289,7 +289,7 @@ _0206F564:
bne _0206F582
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
_0206F582:
ldr r0, _0206F5A8 ; =FUN_0206FB58
add r1, r4, #0x0
@@ -1064,7 +1064,7 @@ _0206FB8A:
sub r2, r2, #0x1
bne _0206FB8A
add r0, sp, #0x0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.balign 4
@@ -1213,10 +1213,10 @@ FUN_0206FCD4: ; 0x0206FCD4
add r4, r0, #0x0
mov r0, #0x1f
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x13
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0x0
mov r1, #0x5
bl FUN_020178A0
diff --git a/arm9/asm/unk_02073710.s b/arm9/asm/unk_02073710.s
index 93309503..8aac6df0 100644
--- a/arm9/asm/unk_02073710.s
+++ b/arm9/asm/unk_02073710.s
@@ -129,10 +129,10 @@ FUN_02073710: ; 0x02073710
add r4, r0, #0x0
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x20
mov r1, #0xc
bl FUN_0201C24C
diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s
index d4608a0d..14488621 100644
--- a/arm9/asm/unk_0207550C.s
+++ b/arm9/asm/unk_0207550C.s
@@ -3503,7 +3503,7 @@ FUN_020772CC: ; 0x020772CC
ldr r0, [r0, #0x1c]
ldr r0, [r0, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r3, pc}
diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s
index ecca3742..a5d7b26d 100644
--- a/arm9/asm/unk_020772F0.s
+++ b/arm9/asm/unk_020772F0.s
@@ -714,8 +714,8 @@ _020772FE:
add r1, r0, #0x0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -846,7 +846,7 @@ _020772FE:
ldr r0, _020774A8 ; =gMain + 0x60
mov r1, #0x1
strb r1, [r0, #0x5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
ldr r0, [r5, #0x0]
add r0, r0, #0x1
str r0, [r5, #0x0]
@@ -1587,7 +1587,7 @@ _02077A0C:
ldr r0, _02077A80 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
mov r0, #0x1
add sp, #0x14
pop {r4-r7, pc}
@@ -1697,7 +1697,7 @@ _02077B2E:
sub r2, r2, #0x1
bne _02077B2E
add r0, sp, #0x0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.balign 4
@@ -1855,32 +1855,32 @@ FUN_02077C84: ; 0x02077C84
lsl r1, r4, #0x18
mov r0, #0x1
lsr r1, r1, #0x18
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
lsl r1, r4, #0x18
mov r0, #0x2
lsr r1, r1, #0x18
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
lsl r1, r4, #0x18
mov r0, #0x4
lsr r1, r1, #0x18
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x8
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
lsl r1, r4, #0x18
mov r0, #0x10
lsr r1, r1, #0x18
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
lsl r1, r4, #0x18
mov r0, #0x1
lsr r1, r1, #0x18
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x10
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r4, pc}
thumb_func_start FUN_02077CD4
@@ -2875,10 +2875,10 @@ _020784FA:
bl FUN_02078530
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x5c
pop {r4-r7, pc}
nop
diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s
index 3562d2e7..722c8144 100644
--- a/arm9/asm/unk_02079C70.s
+++ b/arm9/asm/unk_02079C70.s
@@ -61,8 +61,8 @@ FUN_02079C7C: ; 0x02079C7C
add r1, r0, #0x0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r1, #0x1
lsl r1, r1, #0x1a
ldr r0, [r1, #0x0]
@@ -157,7 +157,7 @@ FUN_02079C7C: ; 0x02079C7C
ldr r0, _02079DB0 ; =FUN_02079F24
add r1, r5, #0x0
bl Main_SetVBlankIntrCB
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r1, #0x0
mov r0, #0x3d
add r2, r1, #0x0
@@ -381,7 +381,7 @@ _02079F62:
sub r2, r2, #0x1
bne _02079F62
add r0, sp, #0x0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.balign 4
@@ -514,8 +514,8 @@ _0207A088: .word UNK_020FA634
FUN_0207A08C: ; 0x0207A08C
push {r4, lr}
add r4, r0, #0x0
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
add r0, r4, #0x0
mov r1, #0x5
bl FUN_020178A0
diff --git a/arm9/asm/unk_0207C328.s b/arm9/asm/unk_0207C328.s
index bf0bb784..ba0e57e6 100644
--- a/arm9/asm/unk_0207C328.s
+++ b/arm9/asm/unk_0207C328.s
@@ -274,10 +274,10 @@ FUN_0207C328: ; 0x0207C328
add r4, r0, #0x0
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x20
mov r1, #0x13
bl FUN_0201C24C
diff --git a/arm9/asm/unk_0207EF6C.s b/arm9/asm/unk_0207EF6C.s
index 0ef763b0..8fcaed0c 100644
--- a/arm9/asm/unk_0207EF6C.s
+++ b/arm9/asm/unk_0207EF6C.s
@@ -145,7 +145,7 @@ FUN_0207EF6C: ; 0x0207EF6C
str r0, [r1, #0x40]
mov r0, #0x1
add r1, r0, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _0207F004 ; =0x04000008
mov r0, #0x3
ldrh r2, [r1, #0x0]
diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s
index a299f623..2e98e9cf 100644
--- a/arm9/asm/unk_020859C0.s
+++ b/arm9/asm/unk_020859C0.s
@@ -445,28 +445,28 @@ FUN_02085C08: ; 0x02085C08
add r4, r0, #0x0
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x4
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x8
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x4
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x8
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s
index 4d8fa9a4..3a4017d7 100644
--- a/arm9/asm/unk_02086084.s
+++ b/arm9/asm/unk_02086084.s
@@ -171,16 +171,16 @@ FUN_020861DC: ; 0x020861DC
bl FUN_020223BC
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x3
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x4
mov r1, #0x0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [r4, #0x8]
mov r1, #0x0
bl FUN_02003038
@@ -279,7 +279,7 @@ _020862D6:
add r7, r0, #0x0
ldr r0, [r6, #0x1c]
ldr r0, [r0, #0x0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
str r0, [sp, #0x4]
mov r0, #0x0
str r0, [sp, #0x8]
diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s
index de7be3b2..7e7745fe 100644
--- a/arm9/asm/unk_02086414.s
+++ b/arm9/asm/unk_02086414.s
@@ -97,8 +97,8 @@ UNK_020FD078: ; 0x020FD078
thumb_func_start FUN_02086414
FUN_02086414: ; 0x02086414
push {r3, lr}
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -158,7 +158,7 @@ FUN_02086488: ; 0x02086488
push {r3, lr}
mov r0, #0x1
add r1, r0, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _020864F4 ; =0x04000008
mov r1, #0x3
ldrh r2, [r0, #0x0]
@@ -251,7 +251,7 @@ FUN_0208654C: ; 0x0208654C
push {r3-r5, lr}
sub sp, #0xa8
add r4, r0, #0x0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
ldr r5, _02086650 ; =UNK_020FCEBC
add r3, sp, #0x2c
mov r2, #0x5
@@ -261,7 +261,7 @@ _0208655C:
sub r2, r2, #0x1
bne _0208655C
add r0, sp, #0x2c
- bl FUN_0201E66C
+ bl GX_SetBanks
mov r1, #0x6
mov r2, #0x2
mov r0, #0x0
@@ -337,11 +337,11 @@ _020865BC:
orr r2, r0
strh r2, [r1, #0x0]
add r1, r0, #0x0
- bl FUN_0201E6E4
- bl FUN_0201E788
+ bl GX_EngineAToggleLayers
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r5, _02086660 ; =UNK_020FCE60
add r3, sp, #0x0
ldmia r5!, {r0-r1}
diff --git a/arm9/asm/unk_02086FA8.s b/arm9/asm/unk_02086FA8.s
index 8cc246e9..2ccd040d 100644
--- a/arm9/asm/unk_02086FA8.s
+++ b/arm9/asm/unk_02086FA8.s
@@ -850,7 +850,7 @@ _02087636:
bl FUN_0200C61C
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x64]
add r0, r0, #0x1
str r0, [r4, #0x64]
@@ -984,7 +984,7 @@ _0208774C:
bne _02087810
mov r0, #0x2
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0x0
mov r1, #0x0
bl FUN_02086F98
@@ -1105,7 +1105,7 @@ _02087844:
bl FUN_02086B70
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x64]
add r0, r0, #0x1
str r0, [r4, #0x64]
@@ -1232,7 +1232,7 @@ _0208794C:
bl FUN_02086F98
mov r0, #0x2
mov r1, #0x1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x6c]
mov r1, #0x0
bl FUN_0200C644
diff --git a/arm9/asm/unk_02089498.s b/arm9/asm/unk_02089498.s
index e4ce48cf..b4c7a133 100644
--- a/arm9/asm/unk_02089498.s
+++ b/arm9/asm/unk_02089498.s
@@ -105,8 +105,8 @@ _020894FC:
add r0, r6, #0x0
add r1, r0, #0x0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -127,7 +127,7 @@ _020894FC:
ldr r0, _020895EC ; =FUN_02089610
add r1, r4, #0x0
bl Main_SetVBlankIntrCB
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x6
mov r1, #0x1
str r0, [sp, #0x0]
@@ -225,7 +225,7 @@ _02089628:
sub r2, r2, #0x1
bne _02089628
add r0, sp, #0x34
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r0, [r4, #0x0]
bl FUN_02016B94
add r3, sp, #0x24
diff --git a/arm9/asm/unk_02089960.s b/arm9/asm/unk_02089960.s
index 575eade7..4502d1f9 100644
--- a/arm9/asm/unk_02089960.s
+++ b/arm9/asm/unk_02089960.s
@@ -87,8 +87,8 @@ _020899B8:
add r0, r4, #0x0
add r1, r0, #0x0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -106,7 +106,7 @@ _020899B8:
bl FUN_02089A6C
add r0, r6, #0x0
bl FUN_02089B80
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x1
str r0, [r5, #0x0]
b _02089A34
@@ -165,7 +165,7 @@ _02089A78:
sub r2, r2, #0x1
bne _02089A78
add r0, sp, #0x34
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r0, [r4, #0x0]
bl FUN_02016B94
add r3, sp, #0x24
diff --git a/arm9/asm/unk_02089D90.s b/arm9/asm/unk_02089D90.s
index b8c341df..92b9e987 100644
--- a/arm9/asm/unk_02089D90.s
+++ b/arm9/asm/unk_02089D90.s
@@ -43,8 +43,8 @@ FUN_02089D90: ; 0x02089D90
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -61,7 +61,7 @@ FUN_02089D90: ; 0x02089D90
ldr r0, _02089EFC ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
ldr r3, _02089F00 ; =0x04000050
mov r0, #0x0
strh r0, [r3, #0x0]
@@ -77,7 +77,7 @@ FUN_02089D90: ; 0x02089D90
and r0, r1
str r0, [r2, #0x0]
ldr r0, _02089F0C ; =UNK_020FF418
- bl FUN_0201E66C
+ bl GX_SetBanks
add r0, r4, #0x0
bl FUN_02016B94
add r5, r0, #0x0
@@ -157,7 +157,7 @@ FUN_02089D90: ; 0x02089D90
bl AddTextPrinterParameterized
add r0, r4, #0x0
bl String_dtor
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x0
bl FUN_0200E394
mov r0, #0x1
diff --git a/arm9/asm/unk_02089F24.s b/arm9/asm/unk_02089F24.s
index 5c84eabc..b678254c 100644
--- a/arm9/asm/unk_02089F24.s
+++ b/arm9/asm/unk_02089F24.s
@@ -47,8 +47,8 @@ FUN_02089F24: ; 0x02089F24
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -65,7 +65,7 @@ FUN_02089F24: ; 0x02089F24
ldr r0, _0208A090 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
ldr r3, _0208A094 ; =0x04000050
mov r0, #0x0
strh r0, [r3, #0x0]
@@ -81,7 +81,7 @@ FUN_02089F24: ; 0x02089F24
and r0, r1
str r0, [r2, #0x0]
ldr r0, _0208A0A0 ; =UNK_020FF418
- bl FUN_0201E66C
+ bl GX_SetBanks
add r0, r4, #0x0
bl FUN_02016B94
add r5, r0, #0x0
@@ -161,7 +161,7 @@ FUN_02089F24: ; 0x02089F24
bl AddTextPrinterParameterized
add r0, r4, #0x0
bl String_dtor
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x0
bl FUN_0200E394
mov r0, #0x1
@@ -216,8 +216,8 @@ _0208A0C8:
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #0x1
lsl r2, r2, #0x1a
ldr r1, [r2, #0x0]
@@ -234,7 +234,7 @@ _0208A0C8:
ldr r0, _0208A230 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
ldr r3, _0208A234 ; =0x04000050
mov r1, #0x0
strh r1, [r3, #0x0]
@@ -250,7 +250,7 @@ _0208A0C8:
and r1, r2
str r1, [r0, #0x0]
ldr r0, _0208A240 ; =UNK_020FF474
- bl FUN_0201E66C
+ bl GX_SetBanks
add r0, r4, #0x0
bl FUN_02016B94
add r5, r0, #0x0
@@ -330,7 +330,7 @@ _0208A0C8:
bl AddTextPrinterParameterized
add r0, r4, #0x0
bl String_dtor
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x0
bl FUN_0200E394
mov r0, #0x1
diff --git a/arm9/asm/unk_0208A998.s b/arm9/asm/unk_0208A998.s
deleted file mode 100644
index 14a02753..00000000
--- a/arm9/asm/unk_0208A998.s
+++ /dev/null
@@ -1,294 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern gMain
-
- .section .rodata
-
- .global UNK_020FF49C
-UNK_020FF49C: ; 0x020FF49C
- .byte 0x00, 0x03, 0x03, 0x1A, 0x12, 0x01, 0x23, 0x00
-
- .global UNK_020FF4A4
-UNK_020FF4A4: ; 0x020FF4A4
- .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_020FF4AC
-UNK_020FF4AC: ; 0x020FF4AC
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_020FF4BC
-UNK_020FF4BC: ; 0x020FF4BC
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_020FF4D8
-UNK_020FF4D8: ; 0x020FF4D8
- .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .section .bss
-
- .global sErrorMessagePrinterLock
-sErrorMessagePrinterLock: ; 0x021C8C58
- .space 0x4
-
- .text
-
- thumb_func_start FUN_0208A998
-FUN_0208A998: ; 0x0208A998
- ldr r3, _0208A9AC ; =0x027E0000
- ldr r1, _0208A9B0 ; =0x00003FF8
- mov r0, #0x1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- ldr r3, _0208A9B4 ; =MI_WaitDma
- mov r0, #0x3
- bx r3
- nop
-_0208A9AC: .word 0x027E0000
-_0208A9B0: .word 0x00003FF8
-_0208A9B4: .word MI_WaitDma
-
- thumb_func_start PrintErrorMessageAndReset
-PrintErrorMessageAndReset: ; 0x0208A9B8
- push {r4-r7, lr}
- sub sp, #0x24
- ldr r0, _0208ABC8 ; =sErrorMessagePrinterLock
- ldr r1, [r0, #0x0]
- cmp r1, #0x1
- bne _0208A9C6
- b _0208ABC4
-_0208A9C6:
- mov r1, #0x1
- str r1, [r0, #0x0]
- mov r0, #0x0
- bl OS_GetInitArenaHi
- add r1, r0, #0x0
- mov r0, #0x0
- bl OS_SetArenaHi
- mov r0, #0x0
- bl OS_GetInitArenaLo
- add r1, r0, #0x0
- mov r0, #0x0
- bl OS_SetArenaLo
- mov r1, #0x1
- ldr r0, _0208ABCC ; =UNK_020FF4A4
- add r2, r1, #0x0
- mov r3, #0x0
- bl FUN_020166C8
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_0200E3A0
- mov r0, #0x1
- mov r1, #0x0
- bl FUN_0200E3A0
- mov r0, #0x1
- bl OS_DisableIrqMask
- ldr r1, _0208ABD0 ; =FUN_0208A998
- mov r0, #0x1
- bl OS_SetIrqFunction
- mov r0, #0x1
- bl OS_EnableIrqMask
- mov r0, #0x0
- add r1, r0, #0x0
- bl Main_SetVBlankIntrCB
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
- mov r2, #0x1
- lsl r2, r2, #0x1a
- ldr r1, [r2, #0x0]
- ldr r0, _0208ABD4 ; =0xFFFFE0FF
- and r1, r0
- str r1, [r2, #0x0]
- ldr r2, _0208ABD8 ; =0x04001000
- ldr r1, [r2, #0x0]
- and r0, r1
- str r0, [r2, #0x0]
- mov r0, #0x4
- mov r1, #0x8
- bl FUN_0201669C
- ldr r0, _0208ABDC ; =gMain + 0x60
- mov r1, #0x0
- strb r1, [r0, #0x5]
- bl FUN_0201E7A0
- ldr r3, _0208ABE0 ; =0x04000050
- mov r0, #0x0
- strh r0, [r3, #0x0]
- ldr r2, _0208ABE4 ; =0x04001050
- sub r3, #0x50
- strh r0, [r2, #0x0]
- ldr r1, [r3, #0x0]
- ldr r0, _0208ABE8 ; =0xFFFF1FFF
- sub r2, #0x50
- and r1, r0
- str r1, [r3, #0x0]
- ldr r1, [r2, #0x0]
- and r0, r1
- str r0, [r2, #0x0]
- ldr r0, _0208ABEC ; =UNK_020FF4D8
- bl FUN_0201E66C
- mov r0, #0x0
- bl FUN_02016B94
- str r0, [sp, #0x10]
- ldr r0, _0208ABF0 ; =UNK_020FF4AC
- bl FUN_02016BBC
- mov r1, #0x0
- ldr r0, [sp, #0x10]
- ldr r2, _0208ABF4 ; =UNK_020FF4BC
- add r3, r1, #0x0
- bl FUN_02016C18
- ldr r0, [sp, #0x10]
- mov r1, #0x0
- bl FUN_02018744
- mov r1, #0x0
- str r1, [sp, #0x0]
- ldr r0, [sp, #0x10]
- ldr r2, _0208ABF8 ; =0x000001F7
- mov r3, #0x2
- str r1, [sp, #0x4]
- bl FUN_0200CB00
- mov r0, #0x0
- mov r1, #0x20
- add r2, r0, #0x0
- bl FUN_02002ED0
- mov r0, #0x0
- mov r1, #0x20
- add r2, r0, #0x0
- add r3, r0, #0x0
- bl FUN_02017F18
- ldr r1, _0208ABFC ; =0x00006C21
- mov r0, #0x0
- bl FUN_02017FE4
- ldr r1, _0208ABFC ; =0x00006C21
- mov r0, #0x4
- bl FUN_02017FE4
- mov r0, #0x1
- mov r1, #0x1a
- mov r2, #0xc8
- mov r3, #0x0
- bl NewMsgDataFromNarc
- str r0, [sp, #0xc]
- mov r0, #0x6
- lsl r0, r0, #0x6
- mov r1, #0x0
- bl String_ctor
- add r4, r0, #0x0
- bl FUN_0201BD5C
- ldr r0, [sp, #0x10]
- ldr r2, _0208AC00 ; =UNK_020FF49C
- add r1, sp, #0x14
- bl FUN_02019150
- mov r0, #0xd0
- str r0, [sp, #0x0]
- mov r0, #0x90
- mov r2, #0x0
- str r0, [sp, #0x4]
- add r0, sp, #0x14
- mov r1, #0xf
- add r3, r2, #0x0
- bl FUN_020196F4
- ldr r2, _0208ABF8 ; =0x000001F7
- add r0, sp, #0x14
- mov r1, #0x0
- mov r3, #0x2
- bl FUN_0200CCA4
- ldr r0, [sp, #0xc]
- mov r1, #0x3
- add r2, r4, #0x0
- bl ReadMsgDataIntoString
- mov r1, #0x0
- str r1, [sp, #0x0]
- str r1, [sp, #0x4]
- add r0, sp, #0x14
- add r2, r4, #0x0
- add r3, r1, #0x0
- str r1, [sp, #0x8]
- bl AddTextPrinterParameterized
- add r0, r4, #0x0
- bl String_dtor
- bl FUN_0201E788
- mov r0, #0x0
- bl FUN_0200E394
- mov r0, #0x1
- bl FUN_0200E394
- mov r0, #0x0
- mov r1, #0x3f
- mov r2, #0x3
- bl FUN_0200A274
- bl FUN_02032DAC
- mov r4, #0x1
-_0208AB58:
- bl HandleDSLidAction
- bl FUN_0202FB80
- bl FUN_02033678
- cmp r0, #0x0
- bne _0208AB72
- add r0, r4, #0x0
- add r1, r4, #0x0
- bl OS_WaitIrq
- b _0208AB58
-_0208AB72:
- ldr r5, _0208AC04 ; =0x04000130
- ldr r4, _0208AC08 ; =0x027FFFA8
- ldr r7, _0208AC0C ; =0x00002FFF
- mov r6, #0x1
-_0208AB7A:
- bl HandleDSLidAction
- ldrh r1, [r5, #0x0]
- ldrh r0, [r4, #0x0]
- orr r1, r0
- ldr r0, _0208AC0C ; =0x00002FFF
- eor r0, r1
- and r0, r7
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- tst r0, r6
- bne _0208AB9C
- mov r0, #0x1
- add r1, r0, #0x0
- bl OS_WaitIrq
- b _0208AB7A
-_0208AB9C:
- ldr r1, _0208AC10 ; =0x00007FFF
- mov r0, #0x0
- bl FUN_0200E3A0
- ldr r1, _0208AC10 ; =0x00007FFF
- mov r0, #0x1
- bl FUN_0200E3A0
- add r0, sp, #0x14
- bl FUN_02019178
- ldr r0, [sp, #0xc]
- bl DestroyMsgData
- ldr r0, [sp, #0x10]
- bl FreeToHeap
- mov r0, #0x0
- bl OS_ResetSystem
-_0208ABC4:
- add sp, #0x24
- pop {r4-r7, pc}
- .balign 4
-_0208ABC8: .word sErrorMessagePrinterLock
-_0208ABCC: .word UNK_020FF4A4
-_0208ABD0: .word FUN_0208A998
-_0208ABD4: .word 0xFFFFE0FF
-_0208ABD8: .word 0x04001000
-_0208ABDC: .word gMain + 0x60
-_0208ABE0: .word 0x04000050
-_0208ABE4: .word 0x04001050
-_0208ABE8: .word 0xFFFF1FFF
-_0208ABEC: .word UNK_020FF4D8
-_0208ABF0: .word UNK_020FF4AC
-_0208ABF4: .word UNK_020FF4BC
-_0208ABF8: .word 0x000001F7
-_0208ABFC: .word 0x00006C21
-_0208AC00: .word UNK_020FF49C
-_0208AC04: .word 0x04000130
-_0208AC08: .word 0x027FFFA8
-_0208AC0C: .word 0x00002FFF
-_0208AC10: .word 0x00007FFF
diff --git a/arm9/global.inc b/arm9/global.inc
index 94c754ec..08432a05 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -1230,15 +1230,15 @@
.extern FUN_0201E230
.extern FUN_0201E258
.extern FUN_0201E28C
-.extern FUN_0201E66C
-.extern FUN_0201E6D8
-.extern FUN_0201E6E4
-.extern FUN_0201E720
-.extern FUN_0201E740
-.extern FUN_0201E74C
-.extern FUN_0201E788
-.extern FUN_0201E7A0
-.extern FUN_0201E7CC
+.extern GX_SetBanks
+.extern GX_DisableEngineALayers
+.extern GX_EngineAToggleLayers
+.extern GX_SetEngineALayers
+.extern GX_DisableEngineBLayers
+.extern GX_EngineBToggleLayers
+.extern GX_BothDispOn
+.extern GX_SwapDisplay
+.extern GX_GetEngineALayers
.extern FUN_0201EABC
.extern FUN_0201EB48
.extern FUN_0201EB64
@@ -1353,10 +1353,9 @@
.extern FUN_02020AB0
.extern FUN_02020ACC
.extern FUN_02020AE8
-.extern FUN_02020AFC
-.extern FUN_02020BF4
-.extern FUN_02020BFC
-.extern FUN_02020C14
+.extern GetTimer3Count
+.extern Timer3CountToMilliSeconds
+.extern Timer3CountToSeconds
.extern FUN_02020C44
.extern FUN_02020C90
.extern FUN_02020CB0
@@ -1582,8 +1581,8 @@
.extern FUN_02024EC0
.extern FUN_02024ECC
.extern FUN_02024ED8
-.extern FUN_02024EE8
-.extern FUN_02024EF4
+.extern GetRivalNamePtr
+.extern RivalsNameToU16Array
.extern FUN_02024F0C
.extern FUN_02024F18
.extern Options_new
@@ -1619,10 +1618,6 @@
.extern FUN_020252E8
.extern FUN_020252F4
.extern FUN_020253E0
-.extern FUN_02025484
-.extern FUN_02025490
-.extern FUN_020254A0
-.extern FUN_020254B4
.extern FUN_020254B8
.extern FUN_020254C0
.extern FUN_020254CC
@@ -2495,26 +2490,26 @@
.extern FUN_02034660
.extern FUN_02034678
.extern FUN_020346CC
-.extern FUN_02034724
-.extern FUN_02034738
-.extern FUN_0203474C
+.extern MapHeader_GetAreaDataBank
+.extern MapHeader_GetField1
+.extern MapHeader_GetMatrixId
.extern MapHeader_GetMsgBank
-.extern MapHeader_GetScrSeqReleaseNo
-.extern FUN_0203479C
-.extern FUN_020347B0
-.extern FUN_020347C4
-.extern FUN_020347D8
-.extern FUN_020347FC
-.extern FUN_02034810
-.extern FUN_02034824
-.extern FUN_02034838
-.extern FUN_0203484C
-.extern FUN_02034860
-.extern FUN_0203487C
-.extern FUN_02034898
-.extern FUN_020348B4
+.extern MapHeader_GetScriptsBank
+.extern MapHeader_GetLevelScriptsBank
+.extern MapHeader_GetDayMusicId
+.extern MapHeader_GetNightMusicId
+.extern MapHeader_HasWildEncounters
+.extern MapHeader_GetWildEncounterBank
+.extern MapHeader_GetEventsBank
+.extern MapHeader_GetMapSec
+.extern MapHeader_GetWeatherType
+.extern MapHeader_GetCameraType
+.extern MapHeader_GetField17_0
+.extern MapHeader_GetField17_6
+.extern MapHeader_IsFlyAllowed
+.extern MapHeader_IsBikeAllowed
.extern FUN_020348E4
-.extern FUN_02034908
+.extern MapHeader_MapIsOnOverworldMatrix
.extern FUN_02034930
.extern FUN_02034944
.extern FUN_02034964
@@ -2702,95 +2697,95 @@
.extern FUN_02039754
.extern RunPokemonCenterScriptsInNewContext
.extern FUN_0203989C
-.extern ScrCmd_nop
-.extern ScrCmd_nop2
-.extern ScrCmd_end
-.extern ScrCmd_delay
-.extern FUN_02039A10
-.extern ScrCmd_loadbyte
-.extern ScrCmd_loadword
-.extern ScrCmd_loadbytefromaddr
-.extern ScrCmd_writebytetoaddr
-.extern ScrCmd_setptrbyte
-.extern ScrCmd_copylocal
-.extern ScrCmd_copybyte
-.extern ScrCmd_compare_local_to_local
-.extern ScrCmd_compare_local_to_value
-.extern ScrCmd_compare_local_to_addr
-.extern ScrCmd_compare_addr_to_local
-.extern ScrCmd_compare_addr_to_value
-.extern ScrCmd_compare_addr_to_addr
-.extern ScrCmd_compare_var_to_value
-.extern ScrCmd_compare_var_to_var
-.extern FUN_02039C40
-.extern FUN_02039C78
-.extern FUN_02039CE4
-.extern ScrCmd_goto
-.extern FUN_02039D10
-.extern FUN_02039D48
-.extern FUN_02039D78
-.extern ScrCmd_call
-.extern ScrCmd_return
-.extern ScrCmd_goto_if
-.extern ScrCmd_call_if
-.extern ScrCmd_setflag
-.extern ScrCmd_clearflag
-.extern ScrCmd_checkflag
-.extern FUN_02039E84
-.extern FUN_02039EC0
-.extern ScrCmd_settrainerflag
-.extern ScrCmd_cleartrainerflag
-.extern ScrCmd_checktrainerflag
-.extern ScrCmd_addvar
-.extern ScrCmd_subvar
-.extern ScrCmd_setvar
-.extern ScrCmd_copyvar
-.extern ScrCmd_setorcopyvar
-.extern ScrCmd_message
-.extern ScrCmd_message_from
-.extern FUN_0203A098
-.extern FUN_0203A0FC
-.extern FUN_0203A13C
-.extern FUN_0203A188
-.extern FUN_0203A210
-.extern FUN_0203A288
-.extern FUN_0203A2C4
-.extern FUN_0203A304
-.extern FUN_0203A340
-.extern FUN_0203A388
-.extern FUN_0203A3C4
-.extern FUN_0203A400
-.extern FUN_0203A45C
-.extern FUN_0203A484
-.extern FUN_0203A4D0
-.extern FUN_0203A560
-.extern FUN_0203A590
-.extern FUN_0203A5D8
-.extern FUN_0203A608
-.extern FUN_0203A630
-.extern FUN_0203A780
-.extern FUN_0203A830
-.extern FUN_0203A85C
-.extern FUN_0203A878
-.extern FUN_0203A8B8
-.extern FUN_0203A9F0
-.extern FUN_0203AA90
-.extern FUN_0203AAA0
-.extern FUN_0203AB44
-.extern FUN_0203AB74
-.extern FUN_0203AB8C
-.extern FUN_0203AC14
-.extern FUN_0203AC9C
-.extern FUN_0203ACC4
-.extern FUN_0203AD08
-.extern FUN_0203AD54
-.extern FUN_0203ADC4
-.extern FUN_0203AE4C
-.extern FUN_0203AED4
-.extern FUN_0203AF34
-.extern FUN_0203AF58
-.extern FUN_0203AF84
-.extern FUN_0203AFA4
+.extern ScrCmd_Nop
+.extern ScrCmd_Dummy
+.extern ScrCmd_End
+.extern ScrCmd_Wait
+.extern ScrCmd_DebugWatch
+.extern ScrCmd_LoadByte
+.extern ScrCmd_LoadWord
+.extern ScrCmd_LoadByteFromAddr
+.extern ScrCmd_WriteByteToAddr
+.extern ScrCmd_SetPtrByte
+.extern ScrCmd_CopyLocal
+.extern ScrCmd_CopyByte
+.extern ScrCmd_CompareLocalToLocal
+.extern ScrCmd_CompareLocalToValue
+.extern ScrCmd_CompareLocalToAddr
+.extern ScrCmd_CompareAddrToLocal
+.extern ScrCmd_CompareAddrToValue
+.extern ScrCmd_CompareAddrToAddr
+.extern ScrCmd_CompareVarToValue
+.extern ScrCmd_CompareVarToVar
+.extern ScrCmd_RunScript
+.extern ScrCmd_RunScriptWait
+.extern ScrCmd_RestartCurrentScript
+.extern ScrCmd_GoTo
+.extern ScrCmd_ObjectGoTo
+.extern ScrCmd_BgGoTo
+.extern ScrCmd_DirectionGoTo
+.extern ScrCmd_Call
+.extern ScrCmd_Return
+.extern ScrCmd_GoToIf
+.extern ScrCmd_CallIf
+.extern ScrCmd_SetFlag
+.extern ScrCmd_ClearFlag
+.extern ScrCmd_CheckFlag
+.extern ScrCmd_CheckFlagVar
+.extern ScrCmd_SetFlagVar
+.extern ScrCmd_SetTrainerFlag
+.extern ScrCmd_ClearTrainerFlag
+.extern ScrCmd_CheckTrainerFlag
+.extern ScrCmd_AddVar
+.extern ScrCmd_SubVar
+.extern ScrCmd_SetVar
+.extern ScrCmd_CopyVar
+.extern ScrCmd_SetOrCopyVar
+.extern ScrCmd_Message
+.extern ScrCmd_MessageFrom
+.extern ScrCmd_MessageFrom2
+.extern ScrCmd_Unk01FC
+.extern ScrCmd_Unk01FD
+.extern ScrCmd_Unk01FE
+.extern ScrCmd_Unk01FF
+.extern ScrCmd_Unk026D
+.extern ScrCmd_Unk002C
+.extern ScrCmd_Unk002D
+.extern ScrCmd_Unk02C0
+.extern ScrCmd_Unk002E
+.extern ScrCmd_Unk020C
+.extern ScrCmd_Unk002F
+.extern ScrCmd_WaitButtonAB
+.extern ScrCmd_WaitButtonABTime
+.extern ScrCmd_WaitButton
+.extern ScrCmd_Unk0032
+.extern ScrCmd_Unk0033
+.extern ScrCmd_Unk0034
+.extern ScrCmd_Unk0035
+.extern ScrCmd_ScrollBg
+.extern ScrCmd_CreateMessageBox
+.extern ScrCmd_Unk0037
+.extern ScrCmd_Unk0038
+.extern ScrCmd_Unk0039
+.extern ScrCmd_Unk003A
+.extern ScrCmd_Unk003B
+.extern ScrCmd_Menu
+.extern ScrCmd_YesNoMenu
+.extern ScrCmd_ShowSaveClock
+.extern ScrCmd_HideSaveClock
+.extern ScrCmd_Unk0040
+.extern ScrCmd_Unk0041
+.extern ScrCmd_Unk0042
+.extern ScrCmd_Unk029D
+.extern ScrCmd_Unk0043
+.extern ScrCmd_Unk02B9
+.extern ScrCmd_Unk0044
+.extern ScrCmd_Unk0045
+.extern ScrCmd_Unk0046
+.extern ScrCmd_Unk0047
+.extern ScrCmd_Unk0048
+.extern ScrCmd_Unk02CF
+.extern ScrCmd_Unk02D0
.extern FUN_0203AFC4
.extern FUN_0203B024
.extern FUN_0203B148
@@ -3160,47 +3155,47 @@
.extern FUN_0204064C
.extern FUN_02040660
.extern FUN_020406C0
-.extern FUN_020406CC
-.extern FUN_02040700
-.extern FUN_02040724
-.extern FUN_02040748
-.extern FUN_02040790
-.extern FUN_020407C8
-.extern FUN_02040800
-.extern FUN_0204083C
-.extern FUN_02040874
-.extern FUN_020408BC
-.extern FUN_0204091C
-.extern FUN_02040964
-.extern FUN_020409C0
-.extern FUN_020409F8
-.extern FUN_02040A30
-.extern FUN_02040A7C
-.extern FUN_02040B0C
-.extern FUN_02040B5C
-.extern FUN_02040BAC
-.extern FUN_02040BFC
-.extern FUN_02040C34
-.extern FUN_02040C6C
-.extern FUN_02040CA4
-.extern FUN_02040D04
-.extern FUN_02040D7C
-.extern FUN_02040DB4
-.extern FUN_02040DEC
-.extern FUN_02040E4C
-.extern FUN_02040EB4
-.extern FUN_02040EF8
-.extern FUN_02040F34
-.extern FUN_02040F6C
-.extern FUN_02040FA4
-.extern FUN_02040FDC
-.extern FUN_02041014
-.extern FUN_0204104C
-.extern FUN_02041094
-.extern FUN_020410C8
-.extern FUN_02041100
-.extern FUN_02041138
-.extern FUN_02041174
+.extern ScrCmd_GetPlayerName
+.extern ScrCmd_GetRivalName
+.extern ScrCmd_GetFriendName
+.extern ScrCmd_Unk00D0
+.extern ScrCmd_GetItemName
+.extern ScrCmd_GetPocketName
+.extern ScrCmd_GetTMHMMoveName
+.extern ScrCmd_GetMoveName
+.extern ScrCmd_Unk00D5
+.extern ScrCmd_Unk0280
+.extern ScrCmd_Unk00D6
+.extern ScrCmd_Unk0251
+.extern ScrCmd_GetPoketchAppName
+.extern ScrCmd_GetTrainerClassName
+.extern ScrCmd_Unk00D9
+.extern ScrCmd_Unk00DA
+.extern ScrCmd_Unk00DB
+.extern ScrCmd_Unk00DC
+.extern ScrCmd_Unk00DD
+.extern ScrCmd_GetDecorationName
+.extern ScrCmd_GetUndergroundTrapName
+.extern ScrCmd_GetUndergroundItemName
+.extern ScrCmd_Unk00E2
+.extern ScrCmd_Unk017B
+.extern ScrCmd_GetNatureName
+.extern ScrCmd_GetFashionName
+.extern ScrCmd_Unk0272
+.extern ScrCmd_GetPokemonMoveName
+.extern ScrCmd_Unk0232
+.extern ScrCmd_GetSealName
+.extern ScrCmd_GetItemNameWithIndefArticle
+.extern ScrCmd_GetItemNamePlural
+.extern ScrCmd_GetDecorationNameWithArticle
+.extern ScrCmd_GetUndergroundTrapNameWithArticle
+.extern ScrCmd_GetUndergroundItemNameWithArticle
+.extern ScrCmd_Unk02C9
+.extern ScrCmd_Unk02CA
+.extern ScrCmd_GetFashionNameWithArticle
+.extern ScrCmd_Unk02CC
+.extern ScrCmd_GetSealNamePlural
+.extern ScrCmd_CapitalizeFirstChar
.extern FUN_02041194
.extern FUN_020411C4
.extern FUN_02041340
@@ -3272,58 +3267,58 @@
.extern FUN_02042A18
.extern FUN_02042A48
.extern FUN_02042A98
-.extern FUN_02042B0C
-.extern FUN_02042B40
-.extern FUN_02042B74
-.extern FUN_02042BA8
-.extern FUN_02042BDC
-.extern FUN_02042C10
-.extern FUN_02042C44
-.extern FUN_02042C8C
-.extern FUN_02042CBC
+.extern ScrCmd_Unk017D
+.extern ScrCmd_Unk017E
+.extern ScrCmd_Unk017F
+.extern ScrCmd_Unk0180
+.extern ScrCmd_Unk0181
+.extern ScrCmd_Unk0182
+.extern ScrCmd_Unk0183
+.extern ScrCmd_Unk0184
+.extern ScrCmd_Unk0185
.extern FUN_02042D1C
-.extern FUN_0204387C
-.extern FUN_020438D0
-.extern FUN_02043918
-.extern FUN_020439B4
-.extern FUN_02043A44
-.extern FUN_02043A94
-.extern FUN_02043AAC
-.extern FUN_02043ACC
-.extern FUN_02043AFC
-.extern FUN_02043B28
-.extern FUN_02043B54
-.extern FUN_02043B84
-.extern FUN_02043BD0
-.extern FUN_02043C28
-.extern FUN_02043C6C
-.extern FUN_02043C90
-.extern FUN_02043CB4
-.extern FUN_02043CE4
-.extern FUN_02043D28
-.extern FUN_02043D78
-.extern FUN_02043DC8
-.extern FUN_02043DE0
-.extern FUN_02043E00
-.extern FUN_02043E20
-.extern FUN_02043E50
-.extern FUN_02043E68
-.extern FUN_02043E9C
-.extern FUN_02043EFC
-.extern FUN_02043F50
-.extern FUN_02043FA0
-.extern FUN_02043FF4
-.extern FUN_02044034
-.extern FUN_020440C0
-.extern FUN_020440F0
-.extern FUN_02044120
-.extern FUN_02044138
-.extern FUN_0204413C
-.extern FUN_02044140
+.extern ScrCmd_Unk0253
+.extern ScrCmd_Unk0254
+.extern ScrCmd_Unk0255
+.extern ScrCmd_Unk0256
+.extern ScrCmd_Unk0075
+.extern ScrCmd_Unk0076
+.extern ScrCmd_Unk0077
+.extern ScrCmd_GetCoins
+.extern ScrCmd_GiveCoins
+.extern ScrCmd_TakeCoinsImmediate
+.extern ScrCmd_TakeCoinsAddress
+.extern ScrCmd_HasEnoughCoinsImmediate
+.extern ScrCmd_HasEnoughCoinsAddress
+.extern ScrCmd_CanGiveCoins
+.extern ScrCmd_GiveMoney
+.extern ScrCmd_TakeMoneyImmediate
+.extern ScrCmd_TakeMoneyAddress
+.extern ScrCmd_HasEnoughMoneyImmediate
+.extern ScrCmd_HasEnoughMoneyAddress
+.extern ScrCmd_Unk0072
+.extern ScrCmd_Unk0073
+.extern ScrCmd_Unk0074
+.extern ScrCmd_Unk016D
+.extern ScrCmd_Unk016E
+.extern ScrCmd_Unk01A8
+.extern ScrCmd_Unk01A9
+.extern ScrCmd_Unk01A4
+.extern ScrCmd_Unk01AA
+.extern ScrCmd_Unk01AE
+.extern ScrCmd_Unk01AF
+.extern ScrCmd_Unk01B0
+.extern ScrCmd_Unk01BC
+.extern ScrCmd_Unk01BE
+.extern ScrCmd_Unk01BF
+.extern ScrCmd_Unk01A5
+.extern ScrCmd_Unk01A6
+.extern ScrCmd_Unk01A7
+.extern ScrCmd_Unk01AD
.extern FUN_02044158
.extern FUN_0204416C
.extern FUN_02044198
-.extern ScrCmd_givemon
+.extern ScrCmd_GiveMon
.extern ScrCmd_getpartyspecies
.extern ScrCmd_checkpartymonotid
.extern ScrCmd_giveegg
@@ -3360,12 +3355,12 @@
.extern FUN_02045170
.extern FUN_020451D0
.extern FUN_02045264
-.extern FUN_02045268
-.extern FUN_020452B4
-.extern FUN_02045308
-.extern FUN_02045398
-.extern FUN_0204539C
-.extern FUN_020453A0
+.extern ScrCmd_Unk01F1
+.extern ScrCmd_Unk01F4
+.extern ScrCmd_Unk01F5
+.extern ScrCmd_Unk01F2
+.extern ScrCmd_Unk01F3
+.extern ScrCmd_Unk02A6
.extern FUN_020453F4
.extern FUN_02045424
.extern FUN_02045438
@@ -3386,30 +3381,30 @@
.extern FUN_02045678
.extern FUN_020456D4
.extern FUN_0204572C
-.extern FUN_02045784
-.extern FUN_020457DC
-.extern FUN_02045834
-.extern FUN_0204588C
-.extern FUN_020458E4
-.extern FUN_02045918
-.extern FUN_02045950
-.extern FUN_02045954
-.extern FUN_02045958
-.extern FUN_020459AC
-.extern FUN_020459E8
-.extern FUN_02045A3C
-.extern FUN_02045A78
-.extern FUN_02045ACC
-.extern FUN_02045B08
-.extern FUN_02045B44
-.extern FUN_02045B80
-.extern FUN_02045BC8
-.extern FUN_02045C04
-.extern FUN_02045C40
-.extern FUN_02045C7C
-.extern FUN_02045CD4
-.extern FUN_02045D10
-.extern FUN_02045D4C
+.extern ScrCmd_GiveItem
+.extern ScrCmd_TakeItem
+.extern ScrCmd_HasSpaceForItem
+.extern ScrCmd_HasItem
+.extern ScrCmd_ItemIdIsTMOrHM
+.extern ScrCmd_GetItemPocketId
+.extern ScrCmd_Unk0081
+.extern ScrCmd_Unk0082
+.extern ScrCmd_Unk0083
+.extern ScrCmd_Unk0084
+.extern ScrCmd_Unk0085
+.extern ScrCmd_Unk0086
+.extern ScrCmd_Unk0087
+.extern ScrCmd_Unk0088
+.extern ScrCmd_Unk0089
+.extern ScrCmd_Unk008A
+.extern ScrCmd_Unk008B
+.extern ScrCmd_Unk008C
+.extern ScrCmd_Unk008D
+.extern ScrCmd_Unk008E
+.extern ScrCmd_Unk008F
+.extern ScrCmd_Unk0090
+.extern ScrCmd_Unk0091
+.extern ScrCmd_Unk0092
.extern FUN_02045D88
.extern FUN_02045DD0
.extern FUN_02045E1C
@@ -3420,10 +3415,10 @@
.extern FUN_02045F84
.extern FUN_02045F88
.extern FUN_02045FCC
-.extern FUN_02046010
-.extern FUN_0204601C
-.extern FUN_02046028
-.extern FUN_0204602C
+.extern ScrCmd_Unk023F
+.extern ScrCmd_Unk0240
+.extern ScrCmd_Unk0241
+.extern ScrCmd_Unk0242
.extern FUN_02046030
.extern SavArray_Flags_sizeof
.extern SavArray_Flags_init
@@ -4895,8 +4890,8 @@
.extern CopyPlayerParty
.extern PartyHasMon
.extern SavArray_PlayerParty_get
-.extern FUN_0206BB28
-.extern FUN_0206BB34
+.extern SavArray_IsNatDexEnabled
+.extern Pokedex_IsNatDexEnabled
.extern FUN_0206BB48
.extern FUN_0206BB5C
.extern FUN_0206BB74
@@ -5482,7 +5477,6 @@
.extern FUN_0208A330
.extern FUN_0208A334
.extern FUN_0208A338
-.extern PrintErrorMessageAndReset
.extern FUN_0208AC14
.extern FUN_0208AC58
.extern FUN_0208ACEC
@@ -8522,3 +8516,7 @@
.extern CARDi_InitCommon
.extern MonNotFaintedOrEgg
.extern CountAlivePokemon
+.extern FUN_02025484
+.extern FUN_02025490
+.extern FUN_020254A0
+.extern FUN_020254B4
diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s
index 24743c4b..e66ad6aa 100644
--- a/arm9/modules/05/asm/mod05_021D74E0.s
+++ b/arm9/modules/05/asm/mod05_021D74E0.s
@@ -99,7 +99,7 @@ _021D757A:
bl FUN_0201B2EC
bl MOD05_021D7BA0
bl MOD05_021D7B38
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
mov r0, #4
bl FUN_02016B94
str r0, [r4, #8]
@@ -477,10 +477,10 @@ _021D78CE:
ldr r0, [r0, #0xc]
bl MOD05_021DC174
add r0, r6, #0
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r6, r0, #0
add r0, r4, #0
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r1, r0, #0
cmp r6, r1
beq _021D7956
@@ -542,7 +542,7 @@ MOD05_021D79B4: ; 0x021D79B4
add r5, r0, #0
ldr r0, [r5, #0x1c]
ldr r0, [r0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0
beq _021D79FE
ldr r0, [r5, #0xc]
@@ -584,7 +584,7 @@ _021D7A0A:
sub r2, r2, #1
bne _021D7A0A
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.balign 4, 0
@@ -710,7 +710,7 @@ MOD05_021D7B10: ; 0x021D7B10
add r4, r0, #0
mov r0, #0xf
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #1
bl FUN_020178A0
@@ -942,7 +942,7 @@ MOD05_021D7CF0: ; 0x021D7CF0
add r5, r0, #0
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021D7D44 ; =UNK_02105BB8
ldr r0, [r0]
lsl r1, r0, #1
@@ -954,13 +954,13 @@ MOD05_021D7CF0: ; 0x021D7CF0
str r0, [r5, #0x50]
ldr r0, [r5, #0x1c]
ldr r0, [r0]
- bl FUN_02034724
+ bl MapHeader_GetAreaDataBank
ldr r1, [r5, #0x4c]
bl MOD05_021F4978
str r0, [r5, #0x2c]
ldr r0, [r5, #0x1c]
ldr r0, [r0]
- bl FUN_02034738
+ bl MapHeader_GetField1
add r4, r0, #0
ldr r0, [r5, #0x30]
cmp r0, #0
@@ -1097,8 +1097,8 @@ MOD05_021D7E4C: ; 0x021D7E4C
add r4, r0, #0
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
- bl FUN_0201E788
+ bl GX_EngineAToggleLayers
+ bl GX_BothDispOn
bl MOD05_021DBABC
str r0, [r4, #0x40]
bl MOD05_021D7B64
diff --git a/arm9/modules/05/asm/mod05_021D80E8.s b/arm9/modules/05/asm/mod05_021D80E8.s
index 946b25da..c00cb45f 100644
--- a/arm9/modules/05/asm/mod05_021D80E8.s
+++ b/arm9/modules/05/asm/mod05_021D80E8.s
@@ -1075,7 +1075,7 @@ _021D8992:
_021D8998:
ldr r0, [r4, #0x1c]
ldr r0, [r0]
- bl FUN_020347D8
+ bl MapHeader_HasWildEncounters
cmp r0, #0
beq _021D89B4
add r0, r4, #0
@@ -1846,7 +1846,7 @@ MOD05_021D8FD0: ; 0x021D8FD0
add r6, r0, #0
ldr r0, [r4, #0x1c]
ldr r0, [r0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r6, #0
@@ -1894,7 +1894,7 @@ MOD05_021D9010: ; 0x021D9010
_021D903E:
ldr r0, [r5, #0x1c]
ldr r0, [r0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r4, #0
@@ -2216,11 +2216,11 @@ MOD05_021D9290: ; 0x021D9290
beq _021D92DA
ldr r0, [r4, #0x1c]
ldr r0, [r0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #1
bne _021D931C
ldr r0, [sp, #8]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0
bne _021D931C
ldr r0, [r4, #0x38]
@@ -2246,11 +2246,11 @@ _021D92DA:
beq _021D931C
ldr r0, [r4, #0x1c]
ldr r0, [r0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #1
bne _021D931C
ldr r0, [sp, #8]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0
bne _021D931C
ldr r0, [r4, #0x38]
diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s
index 5e07b24d..ab06fed1 100644
--- a/arm9/modules/05/asm/mod05_021DC0B8.s
+++ b/arm9/modules/05/asm/mod05_021DC0B8.s
@@ -32,7 +32,7 @@ _021DC0CC:
str r0, [r4, #0x10]
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
pop {r3, r4, r5, pc}
@@ -681,7 +681,7 @@ _021DC5A2:
strh r0, [r1]
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4]
add r0, #8
bl MOD05_021DC4AC
@@ -1252,7 +1252,7 @@ _021DCA04:
beq _021DCA30
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r2, _021DCA40 ; =0x0400000C
mov r1, #3
ldrh r3, [r2]
@@ -1336,7 +1336,7 @@ MOD05_021DCA94: ; 0x021DCA94
beq _021DCAD2
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021DCB5C ; =0x0400000C
mov r2, #3
ldrh r3, [r0]
@@ -1436,7 +1436,7 @@ MOD05_021DCB6C: ; 0x021DCB6C
beq _021DCBA2
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021DCBD4 ; =0x0400000C
mov r2, #3
ldrh r3, [r0]
@@ -1967,7 +1967,7 @@ MOD05_021DCF68: ; 0x021DCF68
beq _021DD00A
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r1, #0xc
mov r0, #0x42
lsl r0, r0, #2
@@ -5337,7 +5337,7 @@ _021DE8EE:
strh r0, [r1]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021DEA68 ; =0x00000F62
mov r1, #1
add sp, #0x10
@@ -5395,7 +5395,7 @@ _021DE9A0:
strh r0, [r1]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021DEA68 ; =0x00000F62
mov r1, #3
add sp, #0x10
@@ -6061,7 +6061,7 @@ _021DEF00:
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021DF08A
_021DEF10:
mov r2, #8
@@ -6119,7 +6119,7 @@ _021DEF54:
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021DF08A
_021DEF8A:
mov r0, #6
@@ -6192,7 +6192,7 @@ _021DF008:
mov r0, #4
strh r0, [r5, r1]
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021DF08A
_021DF01E:
add r0, r4, #0
@@ -6425,7 +6425,7 @@ _021DF1EC:
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021DF366
_021DF1FC:
mov r2, #0xa
@@ -6480,7 +6480,7 @@ _021DF240:
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021DF366
_021DF270:
mov r1, #6
@@ -6548,7 +6548,7 @@ _021DF2E2:
mov r0, #4
strh r0, [r5, r1]
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021DF366
_021DF2F8:
add r0, r4, #0
@@ -7339,7 +7339,7 @@ _021DF934:
str r1, [r0]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021DFAA0 ; =0x00000F62
mov r1, #1
strh r1, [r5, r0]
@@ -8366,7 +8366,7 @@ _021E0180:
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021E02E8
_021E0190:
mov r2, #1
@@ -8428,7 +8428,7 @@ _021E01EE:
strh r1, [r5, r0]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021E02E8
_021E0212:
mov r0, #6
@@ -8479,7 +8479,7 @@ _021E025C:
add r1, #0xc8
str r2, [r1]
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021E02E8
_021E027A:
add r0, r4, #0
@@ -8918,7 +8918,7 @@ _021E05D4:
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E06F0 ; =0x00000F62
mov r1, #3
strh r1, [r5, r0]
@@ -9452,7 +9452,7 @@ _021E0A02:
strh r0, [r1]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E0AC4 ; =0x00000F62
mov r1, #1
strh r1, [r4, r0]
@@ -9484,7 +9484,7 @@ _021E0A52:
strh r0, [r1]
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E0AC4 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
@@ -9562,7 +9562,7 @@ _021E0AF2:
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E0B94 ; =0x00000F62
mov r1, #1
strh r1, [r4, r0]
@@ -9587,7 +9587,7 @@ _021E0B34:
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E0B94 ; =0x00000F62
mov r1, #3
strh r1, [r4, r0]
@@ -9687,7 +9687,7 @@ _021E0BC6:
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E0D1C ; =0x00000F62
mov r1, #1
add sp, #0x10
@@ -9738,7 +9738,7 @@ _021E0C6A:
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E0D1C ; =0x00000F62
mov r1, #3
add sp, #0x10
@@ -9880,7 +9880,7 @@ _021E0D4E:
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E0EA8 ; =0x00000F62
mov r1, #1
add sp, #0x10
@@ -9931,7 +9931,7 @@ _021E0DF2:
bl MOD05_021DC6D4
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E0EA8 ; =0x00000F62
mov r1, #3
add sp, #0x10
@@ -10072,7 +10072,7 @@ _021E0F0A:
bne _021E0F98
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r5, #0
bl MOD05_021E1290
ldr r0, _021E0FA0 ; =0x00000F62
@@ -10083,7 +10083,7 @@ _021E0F0A:
_021E0F2C:
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E0FA0 ; =0x00000F62
mov r1, #3
add sp, #8
@@ -10116,7 +10116,7 @@ _021E0F3E:
_021E0F70:
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r5, #0
bl MOD05_021E11EC
cmp r0, #1
diff --git a/arm9/modules/05/asm/mod05_021E2E88.s b/arm9/modules/05/asm/mod05_021E2E88.s
index 6d69341c..0666b52d 100644
--- a/arm9/modules/05/asm/mod05_021E2E88.s
+++ b/arm9/modules/05/asm/mod05_021E2E88.s
@@ -606,7 +606,7 @@ MOD05_021E331C: ; 0x021E331C
bne _021E333E
ldr r0, [r4, #0x1c]
ldr r0, [r0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r1, r0, #0
ldr r0, [r4, #4]
ldr r0, [r0, #8]
diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s
index fa3acfc5..27446591 100644
--- a/arm9/modules/05/asm/mod05_021E3444.s
+++ b/arm9/modules/05/asm/mod05_021E3444.s
@@ -1058,7 +1058,7 @@ MOD05_021E3C14: ; 0x021E3C14
bl FUN_02016BBC
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r3, _021E3D14 ; =UNK05_021F74AC
add r2, sp, #0x38
ldmia r3!, {r0, r1}
@@ -1087,7 +1087,7 @@ MOD05_021E3C14: ; 0x021E3C14
bl FUN_02018744
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r3, _021E3D18 ; =UNK05_021F7490
add r2, sp, #0x1c
ldmia r3!, {r0, r1}
@@ -1116,7 +1116,7 @@ MOD05_021E3C14: ; 0x021E3C14
bl FUN_02018744
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r3, _021E3D1C ; =UNK05_021F7474
add r2, sp, #0
ldmia r3!, {r0, r1}
@@ -1145,7 +1145,7 @@ MOD05_021E3C14: ; 0x021E3C14
bl FUN_02018744
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r5, #0
bl FUN_0200CAB4
add sp, #0x64
diff --git a/arm9/modules/05/asm/mod05_021E8310.s b/arm9/modules/05/asm/mod05_021E8310.s
index e3a28a97..7a66cdcb 100644
--- a/arm9/modules/05/asm/mod05_021E8310.s
+++ b/arm9/modules/05/asm/mod05_021E8310.s
@@ -16,7 +16,7 @@ MOD05_021E8310: ; 0x021E8310
bl Sav2_Pokedex_get
add r7, r0, #0
ldr r0, [r6]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
str r0, [r5, #4]
add r0, r7, #0
bl Pokedex_GetSinnohDexFlag
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index ad35672e..fe346300 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -286,13 +286,13 @@ MOD05_021E8860: ; 0x021E8860
add r4, r1, #0
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
bl GX_ResetBankForBG
mov r0, #4
add r1, r0, #0
@@ -336,7 +336,7 @@ MOD05_021E88C0: ; 0x021E88C0
bl GX_SetBankForBG
mov r0, #0xe
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, [r4]
mov r0, #4
bl FUN_02016A8C
@@ -1511,7 +1511,7 @@ _021E91D4:
blt _021E91D4
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
@@ -1911,7 +1911,7 @@ _021E9536:
blt _021E9536
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
@@ -2278,7 +2278,7 @@ _021E9844:
blt _021E9844
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r7]
add r0, r0, #1
str r0, [r7]
@@ -2734,7 +2734,7 @@ _021E9C02:
blt _021E9C02
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
bl FUN_02018FF4
@@ -3369,7 +3369,7 @@ _021EA110:
bl FUN_020200A0
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
@@ -3706,7 +3706,7 @@ _021EA430:
blt _021EA430
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
bl FUN_02018FF4
@@ -4287,7 +4287,7 @@ _021EA8B2:
bl FUN_02020398
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -4573,7 +4573,7 @@ _021EAB5A:
blt _021EAB5A
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
@@ -4880,7 +4880,7 @@ _021EADDC:
blt _021EADDC
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
@@ -5374,7 +5374,7 @@ _021EB18E:
bl FUN_02020238
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
bl MOD05_021E4688
str r0, [r4, #4]
@@ -5671,13 +5671,13 @@ _021EB484:
bne _021EB484
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
@@ -5849,13 +5849,13 @@ _021EB5E4:
bl memset
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
@@ -6180,7 +6180,7 @@ _021EB86A:
bl MOD05_021E35EC
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
@@ -6276,7 +6276,7 @@ _021EB8E8:
bl FUN_02020238
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r2, #0x11
ldr r1, [r4]
add r0, sp, #0x24
@@ -6930,7 +6930,7 @@ _021EBE60:
bl FUN_02020064
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
@@ -26509,7 +26509,7 @@ MOD05_021F5518: ; 0x021F5518
bl FUN_020178BC
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021F5560 ; =0x00000648
bl FUN_020054C8
add sp, #4
@@ -26721,7 +26721,7 @@ MOD05_021F56B8: ; 0x021F56B8
strh r1, [r0]
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _021F5714 ; =0x0400000C
mov r0, #3
ldrh r2, [r1]
@@ -26746,7 +26746,7 @@ MOD05_021F56B8: ; 0x021F56B8
bl FUN_02018768
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
bl MOD05_021F569C
add sp, #8
@@ -26766,7 +26766,7 @@ MOD05_021F571C: ; 0x021F571C
strh r1, [r0]
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _021F5778 ; =0x0400000E
mov r0, #3
ldrh r2, [r1]
@@ -26790,7 +26790,7 @@ MOD05_021F571C: ; 0x021F571C
bl FUN_02018768
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
bl MOD05_021F569C
add sp, #8
@@ -26931,7 +26931,7 @@ _021F5856:
bl FUN_020178BC
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _021F5980
_021F5872:
ldr r0, [r4]
@@ -26953,7 +26953,7 @@ _021F5888:
strh r0, [r4, #0xa]
ldr r0, [r5, #0x1c]
ldr r0, [r0]
- bl FUN_020347D8
+ bl MapHeader_HasWildEncounters
cmp r0, #0
beq _021F58D4
mov r0, #0xa
@@ -27001,7 +27001,7 @@ _021F58EE:
beq _021F5980
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021F5984 ; =0x04000050
mov r1, #0
strh r1, [r0]
diff --git a/arm9/modules/05/src/mod05_021E72FC.c b/arm9/modules/05/src/mod05_021E72FC.c
index 8a31d032..c24a7bd3 100644
--- a/arm9/modules/05/src/mod05_021E72FC.c
+++ b/arm9/modules/05/src/mod05_021E72FC.c
@@ -2,6 +2,7 @@
#include "mod05_021E72FC.h"
#include "heap.h"
+
extern void FUN_020054C8(u32 param0);
extern void FUN_020463CC(u32 param0, void *func, UnkStruct021E7358 *param2);
extern u32 FUN_020553A0(u32 param0);
@@ -19,7 +20,6 @@ extern void FUN_02055304(u32 param0, u32 param1);
extern BOOL FUN_02056B74(u32 param0, u32 param1, u32 param2);
extern void FUN_02058418(u32 param0, u32 param1);
extern void FUN_020054F0(u32 param0, u32 param1);
-extern void FUN_02016A8C(u32 param0, void *param1);
THUMB_FUNC BOOL MOD05_021E72FC(u32 param0, u32 param1)
{
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 1dd5e52a..d46e003b 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -126,7 +126,7 @@ _0223977A:
sub r2, r2, #1
bne _0223977A
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -148,7 +148,7 @@ MOD06_02239790: ; 0x02239790
bl FUN_02016BBC
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r5, _022397F0 ; =0x0224F1D8
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -225,7 +225,7 @@ MOD06_02239840: ; 0x02239840
add r4, r1, #0
add r5, r0, #0
add r0, r4, #4
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r0, [r4]
ldr r0, [r0, #8]
bl MOD06_02239864
@@ -249,7 +249,7 @@ MOD06_0223986C: ; 0x0223986C
bl MOD05_021D7A20
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r3, pc}
thumb_func_start MOD06_0223987C
@@ -8668,7 +8668,7 @@ _0223D804:
bne _0223D8F4
ldr r0, [r5, #0x1c]
ldr r0, [r0]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
cmp r0, #0x65
beq _0223D8F4
ldr r0, [r5, #0x1c]
@@ -8949,7 +8949,7 @@ _0223DA88: .word 0x00000241
MOD06_0223DA8C: ; 0x0223DA8C
push {r4, lr}
add r4, r0, #0
- bl FUN_0201E7CC
+ bl GX_GetEngineALayers
mov r1, #0x8e
lsl r1, r1, #2
str r0, [r4, r1]
@@ -8988,16 +8988,16 @@ MOD06_0223DA8C: ; 0x0223DA8C
bl FUN_020178BC
mov r0, #0
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #3
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r4, pc}
nop
_0223DB10: .word 0x00000235
@@ -9028,7 +9028,7 @@ MOD06_0223DB1C: ; 0x0223DB1C
mov r0, #0x8e
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_0201E720
+ bl GX_SetEngineALayers
pop {r4, pc}
nop
_0223DB58: .word 0x00000235
@@ -10997,7 +10997,7 @@ _0223EBA8:
blo _0223EBA8
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r3, r4, r5, r6, r7, pc}
nop
_0223EBCC: .word MOD6_0224F370
@@ -27738,7 +27738,7 @@ MOD06_02246F0C: ; 0x02246F0C
strh r0, [r2, #4]
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r2, r5, #0
add r0, r4, #0
mov r1, #2
@@ -27771,7 +27771,7 @@ MOD06_02246F0C: ; 0x02246F0C
str r0, [r5, r1]
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r3, r4, r5, pc}
.align 2, 0
_02246FB4: .word 0x0400000A
@@ -27782,7 +27782,7 @@ MOD06_02246FB8: ; 0x02246FB8
add r4, r0, #0
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x1e
lsl r0, r0, #4
ldr r0, [r4, r0]
@@ -27809,7 +27809,7 @@ MOD06_02246FB8: ; 0x02246FB8
bl FUN_02054590
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r4, pc}
nop
_02247008: .word 0x04000008
@@ -31270,7 +31270,7 @@ CreateInGameTradeMon: ; 0x022489D4
add r2, r4, #0
bl SetMonData
ldr r0, [sp, #0x2c]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r3, r0, #0
ldr r0, [sp, #0x28]
mov r1, #0
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index 1a91192a..3cef2d24 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -110,7 +110,7 @@ _02211F1E:
sub r2, r2, #1
bne _02211F1E
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -126,8 +126,8 @@ MOD07_02211F34: ; 0x02211F34
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r0, #1
lsl r0, r0, #0x1a
ldr r2, [r0]
@@ -1358,7 +1358,7 @@ MOD07_02212968: ; 0x02212968
bne _022129AC
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
lsl r0, r0, #0x1a
add r3, r0, #0
@@ -1750,7 +1750,7 @@ MOD07_02212C04: ; 0x02212C04
bl FUN_0200BF60
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x38
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -1966,7 +1966,7 @@ MOD07_02212D98: ; 0x02212D98
bl FUN_02018744
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x64
pop {r4, r5, pc}
nop
@@ -1981,7 +1981,7 @@ MOD07_02212E64: ; 0x02212E64
add r4, r0, #0
mov r0, #0x1f
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0xc]
mov r1, #3
bl FUN_020178A0
@@ -3269,7 +3269,7 @@ MOD07_022138F8: ; 0x022138F8
add r4, r0, #0
mov r0, #0x1e
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0xc]
mov r1, #3
bl FUN_020178A0
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index e98eadea..55a90a71 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -2143,7 +2143,7 @@ MOD09_02212F5C: ; 0x02212F5C
add r4, r0, #0
mov r0, #0x1f
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #4
bl FUN_020178A0
@@ -8759,7 +8759,7 @@ MOD09_02216734: ; 0x02216734
bl MOD09_02217750
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r4, pc}
thumb_func_start MOD09_02216770
@@ -13962,7 +13962,7 @@ MOD09_02219198: ; 0x02219198
add r4, r0, #0
mov r0, #0x17
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #4
bl FUN_020178A0
@@ -15495,7 +15495,7 @@ MOD09_02219DC8: ; 0x02219DC8
bl MOD09_0221A244
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r4, pc}
.align 2, 0
diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s
index 30ee9995..32981b60 100644
--- a/arm9/modules/11/asm/module_11_thumb1.s
+++ b/arm9/modules/11/asm/module_11_thumb1.s
@@ -386,7 +386,7 @@ MOD11_0222D88C: ; 0x0222D88C
bl MOD11_02258450
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x67
lsl r0, r0, #2
ldr r0, [r4, r0]
@@ -427,10 +427,10 @@ MOD11_0222D944: ; 0x0222D944
bl FUN_02019178
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #4]
mov r1, #1
bl FUN_020178A0
@@ -499,7 +499,7 @@ _0222D99A:
orr r2, r0
strh r2, [r1]
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r5, #0
bl MOD11_02230E44
add r4, r0, #0
@@ -602,13 +602,13 @@ _0222D99A:
ldrh r2, [r0]
bic r2, r1
strh r2, [r0]
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, _0222DB4C ; =MOD11_0222F01C
add r1, r5, #0
bl Main_SetVBlankIntrCB
@@ -1420,7 +1420,7 @@ MOD11_0222E264: ; 0x0222E264
sub sp, #0x9c
add r5, r0, #0
add r4, r1, #0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
mov r0, #0
bl FUN_0200E394
mov r0, #1
@@ -1434,7 +1434,7 @@ _0222E282:
sub r2, r2, #1
bne _0222E282
add r0, sp, #0x20
- bl FUN_0201E66C
+ bl GX_SetBanks
mov r1, #6
mov r2, #2
mov r0, #0
@@ -1517,7 +1517,7 @@ _0222E2F0:
orr r2, r0
strh r2, [r1]
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
bl MOD11_02258450
add r0, r5, #0
@@ -1622,13 +1622,13 @@ _0222E2F0:
ldrh r2, [r0]
bic r2, r1
strh r2, [r0]
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, _0222E46C ; =MOD11_0222F01C
add r1, r5, #0
bl Main_SetVBlankIntrCB
@@ -1706,10 +1706,10 @@ MOD11_0222E4E8: ; 0x0222E4E8
add r4, r0, #0
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #1
bl FUN_020178A0
@@ -2995,7 +2995,7 @@ MOD11_0222EF50: ; 0x0222EF50
push {r3, lr}
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _0222EFBC ; =0x04000008
mov r1, #3
ldrh r2, [r0]
@@ -3127,7 +3127,7 @@ _0222F056:
sub r2, r2, #1
bne _0222F056
add r0, sp, #0x28
- bl FUN_0201E66C
+ bl GX_SetBanks
_0222F064:
ldr r1, _0222F0B8 ; =0x000023FB
ldrb r2, [r4, r1]
@@ -3146,7 +3146,7 @@ _0222F07A:
sub r2, r2, #1
bne _0222F07A
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
_0222F088:
add r0, r4, #0
add r0, #0x88
diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s
index f04e67da..62996375 100644
--- a/arm9/modules/11/asm/module_11_thumb2.s
+++ b/arm9/modules/11/asm/module_11_thumb2.s
@@ -49,7 +49,7 @@ MOD11_0222F29C: ; 0x0222F29C
str r0, [r5, #8]
add r0, r5, #0
bl FUN_0206BFF0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
ldr r6, _0222F4C8 ; =MOD11_0225DA40
add r3, sp, #0x40
mov r2, #5
@@ -59,7 +59,7 @@ _0222F30E:
sub r2, r2, #1
bne _0222F30E
add r0, sp, #0x40
- bl FUN_0201E66C
+ bl GX_SetBanks
mov r1, #6
mov r2, #2
mov r0, #0
@@ -165,10 +165,10 @@ _0222F30E:
add r2, r1, #0
add r3, r1, #0
bl FUN_02003914
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x13
str r0, [sp]
mov r0, #0x1b
@@ -813,7 +813,7 @@ MOD11_0222F93C: ; 0x0222F93C
bl FUN_020191A4
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #4]
mov r1, #1
bl FUN_020178A0
@@ -25381,7 +25381,7 @@ _0223B916:
str r0, [sp, #0xe0]
ldr r0, [r4]
bl MOD11_022300D0
- bl FUN_0206BB34
+ bl Pokedex_IsNatDexEnabled
str r0, [sp, #0xe4]
bl FUN_0201D658
str r0, [r4, #0x54]
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index 4f1ef252..f717789a 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -12,8 +12,8 @@ MOD12_0222D5C0: ; 0x0222D5C0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r1, #1
lsl r1, r1, #0x1a
ldr r0, [r1]
@@ -255,13 +255,13 @@ _0222D7BC:
ldr r0, _0222D88C ; =0x00000824
mov r1, #1
strb r1, [r4, r0]
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r1, _0222D890 ; =0x0000046F
mov r0, #6
mov r2, #1
@@ -448,10 +448,10 @@ MOD12_0222D9B0: ; 0x0222D9B0
bl FUN_02019178
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x30]
mov r1, #1
bl FUN_020178A0
@@ -589,7 +589,7 @@ MOD12_0222DB50: ; 0x0222DB50
push {r4, r5, lr}
sub sp, #0x8c
add r4, r0, #0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
ldr r5, _0222DC70 ; =MOD12_022449E8
add r3, sp, #0x10
mov r2, #5
@@ -599,7 +599,7 @@ _0222DB60:
sub r2, r2, #1
bne _0222DB60
add r0, sp, #0x10
- bl FUN_0201E66C
+ bl GX_SetBanks
mov r1, #6
mov r2, #2
mov r0, #0
@@ -706,7 +706,7 @@ _0222DBC0:
strh r0, [r1]
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
bl MOD12_022319A4
add sp, #0x8c
@@ -1079,7 +1079,7 @@ MOD12_0222DF30: ; 0x0222DF30
bne _0222DFBE
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x10
pop {r3, r4, r5, pc}
_0222DF9A:
@@ -3147,8 +3147,8 @@ MOD12_0222EF04: ; 0x0222EF04
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r1, #1
lsl r1, r1, #0x1a
ldr r0, [r1]
@@ -3357,13 +3357,13 @@ MOD12_0222EF04: ; 0x0222EF04
ldr r0, _0222F188 ; =0x000004F8
mov r1, #1
strb r1, [r5, r0]
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0
bl FUN_0200415C
ldr r1, _0222F18C ; =0x0000046F
@@ -3604,10 +3604,10 @@ MOD12_0222F324: ; 0x0222F324
bl FUN_02019178
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x30]
mov r1, #1
bl FUN_020178A0
@@ -3818,7 +3818,7 @@ MOD12_0222F548: ; 0x0222F548
push {r3, r4, r5, lr}
sub sp, #0xa8
add r4, r0, #0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
ldr r5, _0222F6A0 ; =MOD12_02244B1C
add r3, sp, #0x2c
mov r2, #5
@@ -3828,7 +3828,7 @@ _0222F558:
sub r2, r2, #1
bne _0222F558
add r0, sp, #0x2c
- bl FUN_0201E66C
+ bl GX_SetBanks
mov r1, #6
mov r2, #2
mov r0, #0
@@ -3934,7 +3934,7 @@ _0222F5B8:
orr r2, r0
strh r2, [r1]
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r5, _0222F6B0 ; =MOD12_02244AE0
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -4987,8 +4987,8 @@ MOD12_0222FE4C: ; 0x0222FE4C
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r1, #1
lsl r1, r1, #0x1a
ldr r0, [r1]
@@ -5219,13 +5219,13 @@ MOD12_0222FE4C: ; 0x0222FE4C
ldr r0, _02230110 ; =0x00001154
mov r1, #1
strb r1, [r5, r0]
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r1, _02230114 ; =0x0000046F
mov r0, #6
mov r2, #1
@@ -5442,10 +5442,10 @@ _02230296:
blt _02230296
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x74]
mov r1, #1
bl FUN_020178A0
@@ -5764,7 +5764,7 @@ MOD12_02230574: ; 0x02230574
push {r4, r5, lr}
sub sp, #0x8c
add r4, r0, #0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
ldr r5, _02230694 ; =MOD12_02244C38
add r3, sp, #0x10
mov r2, #5
@@ -5774,7 +5774,7 @@ _02230584:
sub r2, r2, #1
bne _02230584
add r0, sp, #0x10
- bl FUN_0201E66C
+ bl GX_SetBanks
mov r1, #6
mov r2, #2
mov r0, #0
@@ -5881,7 +5881,7 @@ _022305E4:
strh r0, [r1]
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
bl MOD12_0223B41C
add sp, #0x8c
@@ -7479,7 +7479,7 @@ MOD12_022312F4: ; 0x022312F4
push {r3, lr}
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _02231360 ; =0x04000008
mov r1, #3
ldrh r2, [r0]
@@ -41074,8 +41074,8 @@ MOD12_02241210: ; 0x02241210
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r1, #1
lsl r1, r1, #0x1a
ldr r0, [r1]
@@ -41276,13 +41276,13 @@ MOD12_02241210: ; 0x02241210
mov r1, #1
lsl r0, r0, #4
strb r1, [r5, r0]
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r1, _0224147C ; =0x0000046F
mov r0, #6
mov r2, #1
@@ -41479,10 +41479,10 @@ _022415D4:
blt _022415D4
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x30]
mov r1, #1
bl FUN_020178A0
@@ -41754,7 +41754,7 @@ MOD12_02241864: ; 0x02241864
push {r3, r4, r5, lr}
sub sp, #0xa8
add r4, r0, #0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
ldr r5, _022419BC ; =MOD12_0224656C
add r3, sp, #0x2c
mov r2, #5
@@ -41764,7 +41764,7 @@ _02241874:
sub r2, r2, #1
bne _02241874
add r0, sp, #0x2c
- bl FUN_0201E66C
+ bl GX_SetBanks
mov r1, #6
mov r2, #2
mov r0, #0
@@ -41870,7 +41870,7 @@ _022418D4:
orr r2, r0
strh r2, [r1]
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r5, _022419CC ; =MOD12_02246530
add r3, sp, #0
ldmia r5!, {r0, r1}
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index 824cb507..37a18d6d 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -1925,7 +1925,7 @@ _021D84AA:
str r1, [r4, r0]
sub r0, #0x38
ldr r0, [r4, r0]
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
mov r1, #0x52
lsl r1, r1, #2
str r0, [r4, r1]
@@ -9205,7 +9205,7 @@ MOD14_021DBEAC: ; 0x021DBEAC
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r6, r0]
- bl FUN_0206BB28
+ bl SavArray_IsNatDexEnabled
ldrh r1, [r4, #4]
bl FUN_0206BB48
strh r0, [r4, #8]
@@ -10495,8 +10495,8 @@ _021DC79C:
mov r5, #1
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r1, #1
lsl r1, r1, #0x1a
ldr r0, [r1]
@@ -12835,7 +12835,7 @@ MOD14_021DDA38: ; 0x021DDA38
add r5, r0, #0
ldr r0, _021DDB20 ; =MOD14_021E63A4
add r4, r1, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _021DDB24 ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
@@ -13061,10 +13061,10 @@ _021DDBF2:
_021DDC48:
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
bl GX_DispOn
add sp, #0x10
pop {r3, r4, r5, pc}
@@ -13083,7 +13083,7 @@ MOD14_021DDC78: ; 0x021DDC78
bl G3X_InitMtxStack
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021DDCDC ; =0x04000008
mov r1, #3
ldrh r2, [r0]
diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s
index f7f9881d..560be120 100644
--- a/arm9/modules/15/asm/module_15.s
+++ b/arm9/modules/15/asm/module_15.s
@@ -2817,8 +2817,8 @@ MOD15_021D8998: ; 0x021D8998
MOD15_021D89C0: ; 0x021D89C0
push {r3, r4, r5, lr}
add r4, r1, #0
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r1, #1
lsl r1, r1, #0x1a
ldr r0, [r1]
@@ -2903,10 +2903,10 @@ MOD15_021D89C0: ; 0x021D89C0
bl MOD15_021DAEB4
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
bl GX_DispOn
add r0, r4, #0
bl MOD15_021D8998
@@ -3110,7 +3110,7 @@ MOD15_021D8C30: ; 0x021D8C30
add r2, r0, #0
bl GX_SetGraphicsMode
ldr r0, _021D8C98 ; =0x021DB964
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r0, _021D8C9C ; =0x021DB8C8
bl FUN_02016BBC
mov r1, #0
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index cfff4a29..26ae4fbf 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -1984,7 +1984,7 @@ _021D840E:
sub r2, r2, #1
bne _021D840E
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -2207,10 +2207,10 @@ MOD16_021D8534: ; 0x021D8534
str r0, [r5, r1]
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x4f
lsl r0, r0, #2
ldr r0, [r5, r0]
@@ -3372,7 +3372,7 @@ MOD16_021D8DC0: ; 0x021D8DC0
bl FUN_020178BC
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r6, _021D8F1C ; =0x021FF4D8
add r3, sp, #0x54
ldmia r6!, {r0, r1}
@@ -25839,7 +25839,7 @@ _021E3288:
_021E329E:
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021E32D0 ; =0x00000804
ldr r0, [r5, r0]
bl FreeToHeap
@@ -27619,7 +27619,7 @@ MOD16_021E4094: ; 0x021E4094
add r0, r0, #4
str r1, [r6, r0]
mov r0, #2
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r6, #0
add r0, #0xc4
ldr r0, [r0]
@@ -27658,7 +27658,7 @@ MOD16_021E40D4: ; 0x021E40D4
bl G2x_SetBlendAlpha_
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r6, #0
add r0, #0xc4
ldr r0, [r0]
@@ -27725,7 +27725,7 @@ _021E4158:
_021E4162:
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x81
add r1, r4, #0
lsl r0, r0, #4
@@ -27773,7 +27773,7 @@ _021E417E:
bne _021E41CC
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r3, r4, r5, r6, r7, pc}
_021E41CC:
add r0, r5, #0
@@ -51397,7 +51397,7 @@ MOD16_021EF218: ; 0x021EF218
bl FUN_020178BC
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r5, #0
mov r1, #0
bl FUN_020178A0
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index 3615681b..82398e6b 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -414,7 +414,7 @@ MOD17_021D7794: ; 0x021D7794
ldr r0, _021D77B0 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
pop {r3, pc}
nop
_021D77B0: .word gMain + 0x60
@@ -426,7 +426,7 @@ MOD17_021D77B4: ; 0x021D77B4
ldr r0, _021D77D0 ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
bl MOD17_021D7E0C
bl MOD17_021D7E00
bl GX_ResetBankForTex
@@ -1163,7 +1163,7 @@ _021D7D12:
sub r2, r2, #1
bne _021D7D12
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -1177,7 +1177,7 @@ MOD17_021D7D28: ; 0x021D7D28
bl G3X_InitMtxStack
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021D7D9C ; =0x04000008
mov r1, #3
ldrh r2, [r0]
@@ -1254,14 +1254,14 @@ MOD17_021D7DB0: ; 0x021D7DB0
orr r0, r1
str r0, [r2]
bl FUN_020B0FC0
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r0, #0x1f
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x13
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -1280,8 +1280,8 @@ MOD17_021D7E00: ; 0x021D7E00
thumb_func_start MOD17_021D7E0C
MOD17_021D7E0C: ; 0x021D7E0C
push {r3, lr}
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
bl FUN_020B0FC0
pop {r3, pc}
thumb_func_end MOD17_021D7E0C
@@ -4497,19 +4497,19 @@ MOD17_021D9778: ; 0x021D9778
bic r2, r3
strh r2, [r1, #6]
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0
bl FUN_0200E394
pop {r4, pc}
@@ -4535,16 +4535,16 @@ MOD17_021D9800: ; 0x021D9800
bl FUN_0201FD98
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
pop {r4, pc}
thumb_func_end MOD17_021D9800
@@ -13824,7 +13824,7 @@ _021DDBBC:
ldr r0, _021DDC2C ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
add r0, r4, #0
add r0, #0x14
mov r1, #0xe
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index 233dbc05..d0f6db33 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -1467,7 +1467,7 @@ _0223A194:
sub r2, r2, #1
bne _0223A194
add r0, sp, #0x80
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r5, _0223A2A8 ; =0x02250000
add r3, sp, #0x70
add r2, r3, #0
@@ -1733,16 +1733,16 @@ MOD18_0223A3D4: ; 0x0223A3D4
bl MOD18_022396A0
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r2, #5
mov r0, #3
mov r1, #0x1d
@@ -2128,16 +2128,16 @@ _0223A73A:
bl FUN_0200E1D0
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4]
add sp, #0xc
add r0, r0, #1
@@ -6124,10 +6124,10 @@ _0223C634:
blt _0223C57A
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x64
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -14393,7 +14393,7 @@ _022404A4:
bl FUN_020178BC
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
bl FUN_0204F774
ldr r0, _022404EC ; =0x022513A0
@@ -14652,7 +14652,7 @@ _02240672: ; jump table
_0224068C:
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
bl MOD18_022400A0
str r0, [r4, #4]
ldr r0, [r4]
@@ -14793,7 +14793,7 @@ _0224079E:
bl FUN_0200A208
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #7
str r0, [r4]
bl MOD18_0223D638
@@ -17110,10 +17110,10 @@ _0224195E:
_022419BE:
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
nop
@@ -18293,10 +18293,10 @@ _0224227A:
_02242308:
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x60
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -18857,10 +18857,10 @@ _02242704:
blt _02242704
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
nop
@@ -20398,10 +20398,10 @@ MOD18_022432B4: ; 0x022432B4
bl FUN_02020238
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x5c
pop {pc}
nop
@@ -21585,10 +21585,10 @@ _02243CBE:
blt _02243C60
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
nop
@@ -22580,7 +22580,7 @@ _02244460:
blt _02244460
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [r4]
add sp, #0x60
add r0, r0, #1
@@ -22594,16 +22594,16 @@ _022444A4:
_022444AC:
mov r0, #8
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #1
add r1, r0, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #0
bl FUN_02017FE4
@@ -23101,7 +23101,7 @@ MOD18_0224486C: ; 0x0224486C
bl FUN_02016C18
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r6, _02244990 ; =0x02250498
add r3, sp, #0x2c
ldmia r6!, {r0, r1}
@@ -23119,7 +23119,7 @@ MOD18_0224486C: ; 0x0224486C
bl FUN_02016C18
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r6, _02244994 ; =0x0225047C
add r3, sp, #0x10
ldmia r6!, {r0, r1}
@@ -23137,7 +23137,7 @@ MOD18_0224486C: ; 0x0224486C
bl FUN_02016C18
mov r0, #8
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r5, #0
mov r1, #7
bl FUN_02018744
@@ -32427,7 +32427,7 @@ _02249184:
str r2, [r0, r1]
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0xb4
pop {r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s
index a42eeb6f..67f4c29a 100644
--- a/arm9/modules/20/asm/module_20.s
+++ b/arm9/modules/20/asm/module_20.s
@@ -1560,10 +1560,10 @@ MOD20_02252ED0: ; 0x02252ED0
mov r0, #0x10
orr r0, r1
str r0, [r2]
- bl FUN_0201E740
+ bl GX_DisableEngineBLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s
index ef079cdb..e58e406b 100644
--- a/arm9/modules/22/asm/module_22.s
+++ b/arm9/modules/22/asm/module_22.s
@@ -657,7 +657,7 @@ MOD22_02254D00: ; 0x02254D00
eor r0, r3
orr r0, r1
beq _02254D32
- bl FUN_02020BF4
+ bl GetTimer3Count
add r5, r4, #0
add r5, #0xc
ldr r7, [r4, #0x14]
@@ -672,7 +672,7 @@ MOD22_02254D00: ; 0x02254D00
str r3, [r5, #4]
b _02254D3A
_02254D32:
- bl FUN_02020BF4
+ bl GetTimer3Count
str r0, [r4, #0xc]
str r1, [r4, #0x10]
_02254D3A:
@@ -687,7 +687,7 @@ _02254D3A:
MOD22_02254D44: ; 0x02254D44
push {r4, lr}
add r4, r0, #0
- bl FUN_02020BF4
+ bl GetTimer3Count
str r0, [r4, #0x14]
str r1, [r4, #0x18]
mov r0, #0
@@ -706,12 +706,12 @@ MOD22_02254D58: ; 0x02254D58
bne _02254D66
b _02254E7C
_02254D66:
- bl FUN_02020BF4
+ bl GetTimer3Count
ldr r3, [r5, #0xc]
ldr r2, [r5, #0x10]
sub r0, r0, r3
sbc r1, r2
- bl FUN_02020BFC
+ bl Timer3CountToMilliSeconds
ldr r2, _02254E80 ; =0x04000280
mov r3, #1
strh r3, [r2]
diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s
index a60736df..637c100f 100644
--- a/arm9/modules/41/asm/module_41.s
+++ b/arm9/modules/41/asm/module_41.s
@@ -1046,7 +1046,7 @@ MOD41_0225504C: ; 0x0225504C
add r5, r0, #0
add r4, r5, #0
add r4, #0x48
- bl FUN_02020BF4
+ bl GetTimer3Count
str r0, [r5, #0x68]
str r1, [r5, #0x6c]
mov r2, #0
@@ -1105,7 +1105,7 @@ MOD41_022550BC: ; 0x022550BC
mov r1, #0
add r0, #0x88
str r1, [r0]
- bl FUN_02020BF4
+ bl GetTimer3Count
str r0, [r4, #0x70]
str r1, [r4, #0x74]
pop {r4, pc}
@@ -1115,7 +1115,7 @@ MOD41_022550BC: ; 0x022550BC
MOD41_022550D0: ; 0x022550D0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
- bl FUN_02020BF4
+ bl GetTimer3Count
add r5, r4, #0
add r5, #0x68
ldr r7, [r4, #0x70]
@@ -1155,12 +1155,12 @@ MOD41_02255108: ; 0x02255108
ldr r0, [r0]
cmp r0, #0
beq _0225516A
- bl FUN_02020BF4
+ bl GetTimer3Count
ldr r3, [r4, #0x68]
ldr r2, [r4, #0x6c]
sub r0, r0, r3
sbc r1, r2
- bl FUN_02020C14
+ bl Timer3CountToSeconds
add r5, r0, #0
add r0, r4, #0
add r0, #0x80
diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s
index 8e41c6cc..5bbfa2ba 100644
--- a/arm9/modules/42/asm/module_42.s
+++ b/arm9/modules/42/asm/module_42.s
@@ -139,7 +139,7 @@ _02254932:
add r6, r0, #0
ldr r0, [r4, #0x1c]
ldr r0, [r0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0
beq _02254984
ldr r0, [r4, #0x1c]
@@ -527,7 +527,7 @@ MOD42_02254C04: ; 0x02254C04
add r6, r0, #0
ldr r0, [r4, #0x1c]
ldr r0, [r0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0
beq _02254C3C
ldr r1, [r4, #0x1c]
diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s
index 8efadd9b..89b23259 100644
--- a/arm9/modules/43/asm/module_43.s
+++ b/arm9/modules/43/asm/module_43.s
@@ -62,7 +62,7 @@ MOD43_0225489C: ; 0x0225489C
add r6, r0, #0
ldr r0, [r4, #0x1c]
ldr r0, [r0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0
beq _022548E0
ldr r0, [r4, #0x1c]
@@ -395,7 +395,7 @@ MOD43_02254AF8: ; 0x02254AF8
add r7, r0, #0
ldr r0, [r4, #0x1c]
ldr r0, [r0]
- bl FUN_02034908
+ bl MapHeader_MapIsOnOverworldMatrix
cmp r0, #0
beq _02254B36
ldr r1, [r4, #0x1c]
diff --git a/arm9/modules/51/asm/module_51.s b/arm9/modules/51/asm/module_51.s
index 848caed1..60bdd016 100644
--- a/arm9/modules/51/asm/module_51.s
+++ b/arm9/modules/51/asm/module_51.s
@@ -49,19 +49,19 @@ _0225487A:
bl MOD51_02254944
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #1
add r1, r0, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
bl MOD51_0225571C
ldr r0, [r4]
@@ -409,7 +409,7 @@ MOD51_02254B54: ; 0x02254B54
bl FUN_02018744
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r5, _02254C74 ; =0x0225578C
add r3, sp, #0x48
ldmia r5!, {r0, r1}
@@ -430,7 +430,7 @@ MOD51_02254B54: ; 0x02254B54
bl FUN_02018744
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r5, _02254C78 ; =0x022557C4
add r3, sp, #0x2c
ldmia r5!, {r0, r1}
@@ -451,7 +451,7 @@ MOD51_02254B54: ; 0x02254B54
bl FUN_02018744
mov r0, #4
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r5, _02254C7C ; =0x02255754
add r3, sp, #0x10
ldmia r5!, {r0, r1}
@@ -469,7 +469,7 @@ MOD51_02254B54: ; 0x02254B54
bl FUN_02016C18
mov r0, #8
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x60
mov r1, #0
str r0, [sp]
diff --git a/arm9/modules/52/asm/module_52.s b/arm9/modules/52/asm/module_52.s
deleted file mode 100644
index 22824930..00000000
--- a/arm9/modules/52/asm/module_52.s
+++ /dev/null
@@ -1,293 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .text
- .balign 4, 0
-
- thumb_func_start MOD52_021D74E0
-MOD52_021D74E0: ; 0x021D74E0
- push {r3, lr}
- mov r2, #2
- mov r0, #3
- mov r1, #0x4d
- lsl r2, r2, #0x10
- bl FUN_0201681C
- bl InitializeMainRNG
- mov r0, #1
- pop {r3, pc}
- .align 2, 0
- thumb_func_end MOD52_021D74E0
-
- thumb_func_start MOD52_021D74F8
-MOD52_021D74F8: ; 0x021D74F8
- push {r3, lr}
- bl OverlayManager_GetField18
- ldr r1, [r0, #8]
- mov r0, #0x4d
- bl MOD52_021D769C
- mov r0, #1
- pop {r3, pc}
- .align 2, 0
- thumb_func_end MOD52_021D74F8
-
- thumb_func_start MOD52_021D750C
-MOD52_021D750C: ; 0x021D750C
- push {r3, lr}
- mov r0, #0x4d
- bl FUN_020168D0
- mov r0, #0
- ldr r1, _021D7524 ; =UNK_020FD144
- mvn r0, r0
- bl RegisterMainOverlay
- mov r0, #1
- pop {r3, pc}
- nop
-_021D7524: .word UNK_020FD144
- thumb_func_end MOD52_021D750C
-
- thumb_func_start MOD52_021D7528
-MOD52_021D7528: ; 0x021D7528
- push {r3, lr}
- mov r2, #2
- mov r0, #3
- mov r1, #0x4d
- lsl r2, r2, #0x10
- bl FUN_0201681C
- bl InitializeMainRNG
- mov r0, #1
- pop {r3, pc}
- .align 2, 0
- thumb_func_end MOD52_021D7528
-
- thumb_func_start MOD52_021D7540
-MOD52_021D7540: ; 0x021D7540
- push {r4, lr}
- bl OverlayManager_GetField18
- ldr r4, [r0, #8]
- mov r0, #0x4d
- add r1, r4, #0
- mov r2, #1
- bl MOD52_021D7604
- add r0, r4, #0
- bl Sav2_PlayerData_GetIGTAddr
- bl FUN_02015E3C
- mov r0, #1
- pop {r4, pc}
- thumb_func_end MOD52_021D7540
-
- thumb_func_start MOD52_021D7560
-MOD52_021D7560: ; 0x021D7560
- push {r3, lr}
- mov r0, #0x4d
- bl FUN_020168D0
- mov r0, #0
- ldr r1, _021D7578 ; =UNK_020F2B7C
- mvn r0, r0
- bl RegisterMainOverlay
- mov r0, #1
- pop {r3, pc}
- nop
-_021D7578: .word UNK_020F2B7C
- thumb_func_end MOD52_021D7560
-
- thumb_func_start MOD52_021D757C
-MOD52_021D757C: ; 0x021D757C
- push {r3, lr}
- mov r2, #2
- mov r0, #3
- mov r1, #0x4d
- lsl r2, r2, #0x10
- bl FUN_0201681C
- bl InitializeMainRNG
- mov r0, #1
- pop {r3, pc}
- .align 2, 0
- thumb_func_end MOD52_021D757C
-
- thumb_func_start MOD52_021D7594
-MOD52_021D7594: ; 0x021D7594
- push {r3, r4, r5, lr}
- bl OverlayManager_GetField18
- ldr r4, [r0, #8]
- add r0, r4, #0
- bl Sav2_SysInfo_get
- add r5, r0, #0
- mov r0, #0x4d
- add r1, r4, #0
- bl MOD52_021D7688
- add r0, r4, #0
- mov r1, #0
- bl Options_SetButtonModeOnMain
- add r0, r5, #0
- bl Sav2_SysInfo_MacAddressIsMine
- cmp r0, #0
- beq _021D75C8
- add r0, r5, #0
- bl Sav2_SysInfo_RTCOffsetIsMine
- cmp r0, #0
- bne _021D75D8
-_021D75C8:
- add r0, r4, #0
- bl Sav2_SysInfo_RTC_get
- bl FUN_020238A4
- add r0, r5, #0
- bl Sav2_SysInfo_InitFromSystem
-_021D75D8:
- add r0, r4, #0
- bl Sav2_PlayerData_GetIGTAddr
- bl FUN_02015E3C
- mov r0, #1
- pop {r3, r4, r5, pc}
- .align 2, 0
- thumb_func_end MOD52_021D7594
-
- thumb_func_start MOD52_021D75E8
-MOD52_021D75E8: ; 0x021D75E8
- push {r3, lr}
- mov r0, #0x4d
- bl FUN_020168D0
- mov r0, #0
- ldr r1, _021D7600 ; =UNK_020F2B8C
- mvn r0, r0
- bl RegisterMainOverlay
- mov r0, #1
- pop {r3, pc}
- nop
-_021D7600: .word UNK_020F2B8C
- thumb_func_end MOD52_021D75E8
-
- thumb_func_start MOD52_021D7604
-MOD52_021D7604: ; 0x021D7604
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- add r6, r2, #0
- bl Sav2_SysInfo_get
- bl Sav2_SysInfo_InitFromSystem
- add r0, r5, #0
- bl Sav2_SysInfo_RTC_get
- bl Sav2_SysInfo_RTC_init
- add r0, r5, #0
- bl FUN_0202881C
- add r4, r0, #0
- bl MTRandom
- add r2, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl FUN_02028788
- add r0, r5, #0
- bl FUN_0206007C
- add r0, r5, #0
- bl Sav2_PlayerData_GetProfileAddr
- add r4, r0, #0
- bl MTRandom
- add r7, r0, #0
- cmp r6, #0
- beq _021D7656
- add r0, r4, #0
- add r1, r7, #0
- bl PlayerProfile_SetTrainerID
-_021D7656:
- add r0, r4, #0
- bl PlayerProfile_GetTrainerGender
- add r1, r0, #0
- add r0, r7, #0
- mov r2, #0
- bl FUN_02053678
- add r1, r0, #0
- lsl r1, r1, #0x18
- add r0, r4, #0
- lsr r1, r1, #0x18
- bl PlayerProfile_SetAvatar
- add r0, r5, #0
- bl FUN_02024ECC
- ldr r1, [sp]
- ldr r2, _021D7684 ; =0x021D76F8
- mov r3, #0x76
- bl FUN_020250C4
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_021D7684: .word MOD52_021D76F8
- thumb_func_end MOD52_021D7604
-
- thumb_func_start MOD52_021D7688
-MOD52_021D7688: ; 0x021D7688
- push {r3, lr}
- add r0, r1, #0
- bl FUN_020226FC
- cmp r0, #0
- bne _021D769A
- mov r0, #0
- bl OS_ResetSystem
-_021D769A:
- pop {r3, pc}
- thumb_func_end MOD52_021D7688
-
- thumb_func_start MOD52_021D769C
-MOD52_021D769C: ; 0x021D769C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- bl Sav2_InitDynamicRegion
- add r0, r4, #0
- bl FUN_020377E0
- add r0, r4, #0
- bl Sav2_PlayerData_GetProfileAddr
- ldr r1, _021D76C4 ; =0x00000BB8
- bl PlayerProfile_SetMoney
- add r0, r4, #0
- bl SavArray_Flags_get
- bl FUN_0205ECD4
- pop {r4, pc}
- .align 2, 0
-_021D76C4: .word 0x00000BB8
- thumb_func_end MOD52_021D769C
-
- .rodata
- .global MOD52_021D76C8
-MOD52_021D76C8: ; 0x021D76C8
- .word MOD52_021D757C, MOD52_021D7594, MOD52_021D75E8, 0xFFFFFFFF
-
- .global MOD52_021D76D8
-MOD52_021D76D8: ; 0x021D76D8
- .word MOD52_021D7528, MOD52_021D7540, MOD52_021D7560, 0xFFFFFFFF
-
- .global MOD52_021D76E8
-MOD52_021D76E8: ; 0x021D76E8
- .word MOD52_021D74E0, MOD52_021D74F8, MOD52_021D750C, 0xFFFFFFFF
-
- .global MOD52_021D76F8
-MOD52_021D76F8: ; 0x021D76F8
- .byte 0x9B, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x96, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00
- .byte 0x9B, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00, 0xA4, 0x00, 0x02, 0x00, 0xA5, 0x00, 0x02, 0x00
- .byte 0x95, 0x00, 0x01, 0x00, 0x9B, 0x00, 0x02, 0x00, 0x9E, 0x00, 0x01, 0x00, 0xA7, 0x00, 0x02, 0x00
- .byte 0xA7, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00
- .byte 0x9B, 0x00, 0x01, 0x00, 0x9B, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00
- .byte 0xA4, 0x00, 0x01, 0x00, 0xA4, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x9B, 0x00, 0x01, 0x00
- .byte 0x9B, 0x00, 0x01, 0x00, 0xA5, 0x00, 0x01, 0x00, 0xA6, 0x00, 0x02, 0x00, 0xA4, 0x00, 0x02, 0x00
- .byte 0xA5, 0x00, 0x02, 0x00, 0xA8, 0x00, 0x02, 0x00, 0x9A, 0x00, 0x01, 0x00, 0x96, 0x00, 0x01, 0x00
- .byte 0xA4, 0x00, 0x01, 0x00, 0xA4, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00, 0xA6, 0x00, 0x01, 0x00
- .byte 0xA6, 0x00, 0x01, 0x00, 0x9F, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00
- .byte 0xA4, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x01, 0x00, 0x96, 0x00, 0x01, 0x00
- .byte 0xA0, 0x00, 0x01, 0x00, 0xA2, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00
- .byte 0xA3, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00
- .byte 0xAE, 0x00, 0x01, 0x00, 0x9D, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x01, 0x00
- .byte 0xA8, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00
- .byte 0xA6, 0x00, 0x01, 0x00, 0xA6, 0x00, 0x01, 0x00, 0xA2, 0x00, 0x01, 0x00, 0xA3, 0x00, 0x01, 0x00
- .byte 0x98, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x01, 0x00
- .byte 0x96, 0x00, 0x01, 0x00, 0xA9, 0x00, 0x01, 0x00, 0x97, 0x00, 0x02, 0x00, 0xA5, 0x00, 0x02, 0x00
- .byte 0xA0, 0x00, 0x01, 0x00, 0xA1, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00
- .byte 0x9F, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x02, 0x00, 0x9A, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00
- .byte 0xA1, 0x00, 0x01, 0x00, 0xAC, 0x00, 0x01, 0x00, 0xA0, 0x00, 0x02, 0x00, 0xA1, 0x00, 0x02, 0x00
- .byte 0xA2, 0x00, 0x02, 0x00, 0xAB, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x02, 0x00, 0xA5, 0x00, 0x03, 0x00
- .byte 0xA6, 0x00, 0x03, 0x00, 0xA7, 0x00, 0x03, 0x00, 0xA9, 0x00, 0x01, 0x00, 0xA9, 0x00, 0x01, 0x00
- .byte 0xAC, 0x00, 0x02, 0x00, 0xAC, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x01, 0x00, 0xAA, 0x00, 0x01, 0x00
- .byte 0xAE, 0x00, 0x01, 0x00, 0xAE, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x01, 0x00
- .byte 0xA9, 0x00, 0x01, 0x00, 0xA9, 0x00, 0x01, 0x00, 0xAC, 0x00, 0x01, 0x00, 0xAC, 0x00, 0x01, 0x00
- .byte 0xAE, 0x00, 0x01, 0x00, 0xAE, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00
- .byte 0xAB, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x01, 0x00, 0x9D, 0x00, 0x01, 0x00, 0x9A, 0x00, 0x01, 0x00
- .byte 0xAB, 0x00, 0x02, 0x00, 0xAD, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x02, 0x00
- .byte 0xAD, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00
-
- .data
- .bss
diff --git a/arm9/modules/52/include/module_52.h b/arm9/modules/52/include/module_52.h
new file mode 100644
index 00000000..4c47a82d
--- /dev/null
+++ b/arm9/modules/52/include/module_52.h
@@ -0,0 +1,42 @@
+#ifndef POKEDIAMOND_MODULE_52_H
+#define POKEDIAMOND_MODULE_52_H
+
+#include "global.h"
+#include "event_data.h"
+#include "main.h"
+#include "math_util.h"
+#include "options.h"
+#include "overlay_manager.h"
+#include "player_data.h"
+#include "sav_system_info.h"
+#include "save_block_2.h"
+#include "unk_02024E64.h"
+#include "unk_020286F8.h"
+
+const u8 MOD52_021D76F8[];
+
+THUMB_FUNC int MOD52_021D74E0();
+THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0);
+THUMB_FUNC int MOD52_021D750C();
+
+THUMB_FUNC int MOD52_021D7528();
+THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0);
+THUMB_FUNC int MOD52_021D7560();
+
+THUMB_FUNC int MOD52_021D757C();
+THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0);
+THUMB_FUNC int MOD52_021D75E8();
+
+THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid);
+THUMB_FUNC void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2);
+THUMB_FUNC void MOD52_021D769C(u32 param0, struct SaveBlock2 *sav2);
+
+struct MOD52_Struct
+{
+ int (*func1)(void);
+ int (*func2)(struct UnkStruct_02006234 *param0);
+ int (*func3)(void);
+ u32 terminator;
+};
+
+#endif // POKEDIAMOND_MODULE_52_H \ No newline at end of file
diff --git a/arm9/modules/52/src/module_52.c b/arm9/modules/52/src/module_52.c
new file mode 100644
index 00000000..1f74c77f
--- /dev/null
+++ b/arm9/modules/52/src/module_52.c
@@ -0,0 +1,647 @@
+#include "module_52.h"
+#include "heap.h"
+#include "unk_0205FA2C.h"
+
+
+extern struct Unk21DBE18 UNK_020FD144;
+extern struct Unk21DBE18 UNK_020F2B7C;
+extern struct Unk21DBE18 UNK_020F2B8C;
+
+extern void FUN_02015E3C(struct IGT *igt);
+extern int FUN_02053678(u32 random, u32 gender, u32 param2);
+extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u8 param2[], u32 param3);
+extern void FUN_020377E0(struct SaveBlock2 *sav2);
+extern void FUN_0205ECD4(struct ScriptState *script_state);
+
+THUMB_FUNC int MOD52_021D74E0()
+{
+ FUN_0201681C(3, 0x4d, 2 << 16);
+ InitializeMainRNG();
+
+ return 1;
+}
+
+THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0)
+{
+ struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
+
+ MOD52_021D769C(0x4d, sav2);
+
+ return 1;
+}
+
+THUMB_FUNC int MOD52_021D750C()
+{
+ FUN_020168D0(0x4d);
+ RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144);
+
+ return 1;
+}
+
+THUMB_FUNC int MOD52_021D7528()
+{
+ FUN_0201681C(3, 0x4d, 2 << 16);
+ InitializeMainRNG();
+
+ return 1;
+}
+
+THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0)
+{
+ struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
+
+ MOD52_021D7604(0x4d, sav2, 1);
+ struct IGT *igt = Sav2_PlayerData_GetIGTAddr(sav2);
+ FUN_02015E3C(igt);
+
+ return 1;
+}
+
+THUMB_FUNC int MOD52_021D7560()
+{
+ FUN_020168D0(0x4d);
+ RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C);
+
+ return 1;
+}
+
+THUMB_FUNC int MOD52_021D757C()
+{
+ FUN_0201681C(3, 0x4d, 2 << 16);
+ InitializeMainRNG();
+
+ return 1;
+}
+
+THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0)
+{
+ struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird
+
+ struct SavSysInfo *sav2_info = Sav2_SysInfo_get(sav2);
+
+ MOD52_021D7688(0x4d, sav2);
+ Options_SetButtonModeOnMain(sav2, 0);
+
+ if (!Sav2_SysInfo_MacAddressIsMine(sav2_info) || !Sav2_SysInfo_RTCOffsetIsMine(sav2_info))
+ {
+ FUN_020238A4(Sav2_SysInfo_RTC_get(sav2));
+ Sav2_SysInfo_InitFromSystem(sav2_info);
+ }
+
+ FUN_02015E3C(Sav2_PlayerData_GetIGTAddr(sav2));
+
+ return 1;
+}
+
+THUMB_FUNC int MOD52_021D75E8()
+{
+ FUN_020168D0(0x4d);
+ RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C);
+
+ return 1;
+}
+
+THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid)
+{
+ Sav2_SysInfo_InitFromSystem(Sav2_SysInfo_get(sav2));
+ Sav2_SysInfo_RTC_init(Sav2_SysInfo_RTC_get(sav2));
+
+ struct UnkSaveStruct_020286F8 *unk_sav2 = FUN_0202881C(sav2);
+
+ FUN_02028788(unk_sav2, 1, MTRandom());
+ FUN_0206007C(sav2);
+
+ struct PlayerData *player_data = Sav2_PlayerData_GetProfileAddr(sav2);
+ u32 trainerid = MTRandom();
+
+ if (set_trainerid)
+ {
+ PlayerProfile_SetTrainerID(player_data, trainerid);
+ }
+
+ u32 gender = PlayerProfile_GetTrainerGender(player_data);
+ int avatar = FUN_02053678(trainerid, gender, 0);
+
+ PlayerProfile_SetAvatar(player_data, (u8)avatar);
+
+ FUN_020250C4(FUN_02024ECC(sav2), heap_id, MOD52_021D76F8, 0x76);
+}
+
+THUMB_FUNC void MOD52_021D7688(u32 unused, struct SaveBlock2 *sav2)
+{
+#pragma unused(unused)
+
+ if (FUN_020226FC(sav2))
+ {
+ return;
+ }
+
+ OS_ResetSystem(0);
+}
+
+THUMB_FUNC void MOD52_021D769C(u32 unused, struct SaveBlock2 *sav2)
+{
+#pragma unused(unused)
+
+ Sav2_InitDynamicRegion(sav2);
+ FUN_020377E0(sav2);
+ struct PlayerData *player_data = Sav2_PlayerData_GetProfileAddr(sav2);
+ PlayerProfile_SetMoney(player_data, 3000);
+ FUN_0205ECD4(SavArray_Flags_get(sav2));
+}
+
+const struct MOD52_Struct MOD52_021D76C8 = {
+ MOD52_021D757C,
+ MOD52_021D7594,
+ MOD52_021D75E8,
+ 0xFFFFFFFF,
+};
+
+const struct MOD52_Struct MOD52_021D76D8 = {
+ MOD52_021D7528,
+ MOD52_021D7540,
+ MOD52_021D7560,
+ 0xFFFFFFFF,
+};
+
+const struct MOD52_Struct MOD52_021D76E8 = {
+ MOD52_021D74E0,
+ MOD52_021D74F8,
+ MOD52_021D750C,
+ 0xFFFFFFFF,
+};
+
+const u8 MOD52_021D76F8[] = {
+ 0x9B,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x95,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x96,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x97,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9B,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x97,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA4,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA5,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0x95,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9B,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0x9E,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA7,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA7,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xAA,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x95,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x97,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9B,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9B,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x98,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x98,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA4,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA4,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x95,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9B,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9B,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA5,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA6,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA4,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA5,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA8,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0x9A,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x96,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA4,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA4,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9C,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA6,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA6,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9F,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x99,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x99,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA4,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA8,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9E,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x96,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA2,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x97,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x99,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA3,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAD,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9E,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x99,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAE,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9D,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x97,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA8,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA8,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA8,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9C,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9C,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA6,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA6,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA2,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA3,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x98,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x98,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x95,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9E,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x96,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA9,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x97,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA5,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA1,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x98,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9C,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9F,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA8,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0x9A,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x97,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA1,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAC,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA1,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA2,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xAB,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9E,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xA5,
+ 0x00,
+ 0x03,
+ 0x00,
+ 0xA6,
+ 0x00,
+ 0x03,
+ 0x00,
+ 0xA7,
+ 0x00,
+ 0x03,
+ 0x00,
+ 0xA9,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA9,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAC,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xAC,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xAA,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAA,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAE,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAE,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAB,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAB,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA9,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xA9,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAC,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAC,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAE,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAE,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAD,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAD,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAB,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAB,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9D,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x9A,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAB,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xAD,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xAA,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xAA,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0xAD,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0xAD,
+ 0x00,
+ 0x01,
+ 0x00,
+}; \ No newline at end of file
diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s
index f55e7c99..b4fd4d80 100644
--- a/arm9/modules/53/asm/module_53.s
+++ b/arm9/modules/53/asm/module_53.s
@@ -22,8 +22,8 @@ _021D74F6:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -462,7 +462,7 @@ _021D78DA:
sub r2, r2, #1
bne _021D78DA
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -1289,10 +1289,10 @@ _021D7F74:
blt _021D7F74
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x64
pop {r4, r5, r6, r7, pc}
.align 2, 0
diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s
index 2091a0c6..904d1c7f 100644
--- a/arm9/modules/54/asm/module_54.s
+++ b/arm9/modules/54/asm/module_54.s
@@ -22,8 +22,8 @@ _021D74F6:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -428,7 +428,7 @@ _021D787E:
sub r2, r2, #1
bne _021D787E
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -1045,10 +1045,10 @@ _021D7D4C:
str r0, [sp, #0x38]
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
.align 2, 0
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
index b6f57d67..0d96ce13 100644
--- a/arm9/modules/55/asm/module_55.s
+++ b/arm9/modules/55/asm/module_55.s
@@ -29,8 +29,8 @@ MOD55_021D7504: ; 0x021D7504
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -385,11 +385,11 @@ _021D7808: .word 0x00003FF8
thumb_func_start MOD55_021D780C
MOD55_021D780C: ; 0x021D780C
- ldr r3, _021D7814 ; =FUN_0201E66C
+ ldr r3, _021D7814 ; =GX_SetBanks
ldr r0, _021D7818 ; =0x021DA458
bx r3
nop
-_021D7814: .word FUN_0201E66C
+_021D7814: .word GX_SetBanks
_021D7818: .word MOD55_021DA458
thumb_func_end MOD55_021D780C
@@ -1198,7 +1198,7 @@ _021D7EB8:
blt _021D7E56
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD55_021D7DA0
@@ -4017,7 +4017,7 @@ MOD55_021D9574: ; 0x021D9574
bl G3X_InitMtxStack
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021D95D8 ; =0x04000008
mov r1, #3
ldrh r2, [r0]
@@ -5576,11 +5576,11 @@ MOD55_021DA27C: ; 0x021DA27C
lsl r1, r4, #0x18
mov r0, #0xf
lsr r1, r1, #0x18
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
lsl r1, r4, #0x18
mov r0, #1
lsr r1, r1, #0x18
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r4, pc}
.align 2, 0
thumb_func_end MOD55_021DA27C
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
index 97d746da..d1046c7b 100644
--- a/arm9/modules/56/asm/module_56.s
+++ b/arm9/modules/56/asm/module_56.s
@@ -253,8 +253,8 @@ MOD56_02211FD4: ; 0x02211FD4
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -385,10 +385,10 @@ _022120BE:
str r2, [r4, r1]
mov r0, #0xf
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0xf
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
bl MOD56_0221244C
add r0, r4, #0
@@ -603,7 +603,7 @@ _022122BE:
sub r2, r2, #1
bne _022122BE
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -930,19 +930,19 @@ MOD56_0221257C: ; 0x0221257C
ldr r4, [r0]
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
add r1, r0, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r2, #0
str r2, [sp]
mov r0, #0x36
@@ -1293,7 +1293,7 @@ _02212848:
blt _02212848
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD56_022127D4
diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s
index 2e0c7acd..39e977cc 100644
--- a/arm9/modules/57/asm/module_57.s
+++ b/arm9/modules/57/asm/module_57.s
@@ -14,8 +14,8 @@ MOD57_021D74E0: ; 0x021D74E0
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -635,7 +635,7 @@ _021D7A1E:
sub r2, r2, #1
bne _021D7A1E
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -1208,10 +1208,10 @@ MOD57_021D7EDC: ; 0x021D7EDC
add r4, r0, #0
mov r0, #0x1f
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x13
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #7
bl FUN_020178A0
@@ -3730,7 +3730,7 @@ _021D92CE:
bl NARC_dtor
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s
index 3e04165c..93c1c39d 100644
--- a/arm9/modules/58/asm/module_58.s
+++ b/arm9/modules/58/asm/module_58.s
@@ -28,8 +28,8 @@ _021D9A36:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -315,7 +315,7 @@ _021D9CE6:
sub r2, r2, #1
bne _021D9CE6
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -1008,10 +1008,10 @@ MOD58_021DA1C4: ; 0x021DA1C4
bl FUN_02020238
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x5c
pop {r3, r4, pc}
.align 2, 0
diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s
index cd947e57..c86d2c94 100644
--- a/arm9/modules/59/asm/mod59_021D74E0_asm.s
+++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s
@@ -42,8 +42,8 @@ _021D7592:
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -66,7 +66,7 @@ _021D7592:
ldr r0, _021D76BC ; =MOD59_021D7724
add r1, r4, #0
bl Main_SetVBlankIntrCB
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #1
str r0, [r5]
b _021D76AC
@@ -181,7 +181,7 @@ MOD59_021D76C0: ; 0x021D76C0
bl FUN_02024EB4
ldr r1, [r4, #0x74]
ldr r1, [r1, #0x18]
- bl FUN_02024EF4
+ bl RivalsNameToU16Array
ldr r0, [r4, #0x70]
bl FUN_02077AC4
ldr r0, [r4, #0x74]
@@ -278,7 +278,7 @@ _021D7798:
sub r2, r2, #1
bne _021D7798
add r0, sp, #0x50
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r0, [r4]
bl FUN_02016B94
add r3, sp, #0x40
diff --git a/arm9/modules/59/asm/mod59_021D9868.s b/arm9/modules/59/asm/mod59_021D9868.s
index 3a2ba4ad..6d2d6e6b 100644
--- a/arm9/modules/59/asm/mod59_021D9868.s
+++ b/arm9/modules/59/asm/mod59_021D9868.s
@@ -67,8 +67,8 @@ _021D98C6:
add r0, r6, #0
add r1, r0, #0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -89,7 +89,7 @@ _021D98C6:
ldr r0, _021D99F0 ; =MOD59_021D9A14
add r1, r4, #0
bl Main_SetVBlankIntrCB
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x3c
str r0, [r4, #0x24]
mov r0, #1
@@ -229,7 +229,7 @@ _021D9A2C:
sub r2, r2, #1
bne _021D9A2C
add r0, sp, #0x90
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r0, [r4]
bl FUN_02016B94
add r3, sp, #0x80
diff --git a/arm9/modules/59/src/mod59_021D74E0_src.c b/arm9/modules/59/src/mod59_021D74E0_src.c
index 9fccfd95..4d7a4a98 100644
--- a/arm9/modules/59/src/mod59_021D74E0_src.c
+++ b/arm9/modules/59/src/mod59_021D74E0_src.c
@@ -2,8 +2,9 @@
#include "player_data.h"
#include "overlay_manager.h"
#include "mod59_021D74E0.h"
+#include "heap.h"
+
-extern void FUN_0201681C(u32 param0, u32 heap_id, u32 param2);
extern u32 FUN_02077A84(u32 heap_id, u32 param1, u32 param2, u32 param3, struct Options *options);
THUMB_FUNC BOOL MOD59_Init(struct UnkStruct_02006234 *param0)
diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s
index d55b37fc..418fa446 100644
--- a/arm9/modules/60/asm/module_60.s
+++ b/arm9/modules/60/asm/module_60.s
@@ -369,7 +369,7 @@ _021D77BE:
sub r2, r2, #1
bne _021D77BE
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -438,8 +438,8 @@ _021D7848:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -478,7 +478,7 @@ _021D78A2:
bl FUN_0201C24C
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
bl FUN_02033F20
ldr r0, _021D78E4 ; =MOD60_021D77D4
add r1, r4, #0
@@ -551,8 +551,8 @@ _021D7946:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s
index bcb6e9b6..3afc1e03 100644
--- a/arm9/modules/61/asm/module_61.s
+++ b/arm9/modules/61/asm/module_61.s
@@ -557,8 +557,8 @@ _021D78FA:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -593,7 +593,7 @@ _021D794E:
bl Main_SetVBlankIntrCB
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0
bl FUN_0200E394
mov r1, #4
@@ -681,8 +681,8 @@ _021D79FC:
mov r0, #0
add r1, r0, #0
bl Main_SetVBlankIntrCB
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -907,7 +907,7 @@ _021D7BBA:
sub r2, r2, #1
bne _021D7BBA
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
index 86eebba7..d65fb117 100644
--- a/arm9/modules/62/asm/module_62.s
+++ b/arm9/modules/62/asm/module_62.s
@@ -1755,7 +1755,7 @@ MOD62_0222E2DC: ; 0x0222E2DC
push {r3, lr}
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _0222E348 ; =0x04000008
mov r1, #3
ldrh r2, [r0]
@@ -3734,13 +3734,13 @@ _0222F26C: .word 0x0000FFFF
thumb_func_start MOD62_0222F270
MOD62_0222F270: ; 0x0222F270
push {r3, lr}
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r3, pc}
thumb_func_end MOD62_0222F270
@@ -6022,10 +6022,10 @@ _0223042E:
bl FUN_02003210
mov r0, #0x10
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #7
mov r1, #1
bl FUN_020178BC
@@ -6111,7 +6111,7 @@ _0223050A: ; jump table
_0223051A:
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r3, #0
str r3, [sp]
mov r0, #0xa
@@ -6296,7 +6296,7 @@ _02230692:
bl MOD08_02229A2C
mov r0, #0x10
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
bl MOD62_0223021C
mov r0, #0x3e
@@ -6395,7 +6395,7 @@ _0223072C:
bl MOD62_0222F7E0
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0xf7
lsl r0, r0, #2
ldr r1, [r4, r0]
@@ -6462,7 +6462,7 @@ _0223081A:
_0223081C:
mov r0, #0x10
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #1
bl MOD62_022300DC
@@ -6582,7 +6582,7 @@ _022308E4:
bl MOD62_022300DC
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0xf7
lsl r0, r0, #2
ldr r1, [r4, r0]
@@ -6655,7 +6655,7 @@ _0223093E:
_022309B4:
mov r0, #1
add r1, r0, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0xf7
lsl r0, r0, #2
ldr r1, [r4, r0]
@@ -6791,7 +6791,7 @@ _02230AC2:
_02230AD4:
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r3, #0
str r3, [sp]
mov r0, #0x10
@@ -6850,7 +6850,7 @@ _02230B40:
bl FUN_020178BC
mov r0, #4
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #0
bl MOD62_0222F738
@@ -7322,8 +7322,8 @@ MOD62_02230F3C: ; 0x02230F3C
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -7355,7 +7355,7 @@ MOD62_02230F80: ; 0x02230F80
push {r4, r5, lr}
sub sp, #0xfc
add r4, r0, #0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
ldr r5, _022310B8 ; =MOD62_02231238
add r3, sp, #0x10
mov r2, #5
@@ -7365,7 +7365,7 @@ _02230F90:
sub r2, r2, #1
bne _02230F90
add r0, sp, #0x10
- bl FUN_0201E66C
+ bl GX_SetBanks
mov r1, #6
mov r2, #2
mov r0, #0
@@ -7441,7 +7441,7 @@ _02230FF0:
orr r2, r0
strh r2, [r1]
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r5, _022310C8 ; =MOD62_022312E8
add r3, sp, #0x38
mov r2, #0xe
@@ -7484,7 +7484,7 @@ _02231052:
bl FUN_02018744
mov r0, #4
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0xfc
pop {r4, r5, pc}
nop
diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s
index df0624f9..a323b642 100644
--- a/arm9/modules/63/asm/mod63_021D74E0.s
+++ b/arm9/modules/63/asm/mod63_021D74E0.s
@@ -23,8 +23,8 @@ MOD63_021D74E0: ; 0x021D74E0
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -69,7 +69,7 @@ MOD63_021D74E0: ; 0x021D74E0
ldr r0, _021D7598 ; =MOD63_021D782C
add r1, r4, #0
bl Main_SetVBlankIntrCB
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #1
pop {r4, pc}
.align 2, 0
@@ -251,7 +251,7 @@ _021D76D4:
strh r3, [r4, r1]
mov r1, #0
str r0, [r2, #0x6c]
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0
mov r1, #0x3c
bl FUN_020053CC
@@ -420,7 +420,7 @@ _021D7842:
sub r2, r2, #1
bne _021D7842
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -795,28 +795,28 @@ MOD63_021D7A48: ; 0x021D7A48
bl FUN_02016C18
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0
add r1, r0, #0
bl FUN_02017FE4
@@ -841,28 +841,28 @@ MOD63_021D7B9C: ; 0x021D7B9C
add r4, r0, #0
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [r4, #4]
mov r1, #4
bl FUN_020178A0
@@ -1031,7 +1031,7 @@ _021D7C52:
ldr r0, _021D7D70 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
mov r0, #2
str r0, [r5, #4]
mov r0, #1
@@ -1085,13 +1085,13 @@ _021D7DA4: ; jump table
_021D7DB8:
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r1, _021D80F0 ; =0x00000116
add r0, r6, #0
strh r0, [r4, r1]
@@ -1663,16 +1663,16 @@ _021D81DC:
bne _021D824E
mov r0, #4
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #0x5a
add r0, #0xa8
@@ -1736,22 +1736,22 @@ _021D8272:
bl FUN_0201F05C
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
add r1, r4, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
bl FUN_0200E394
mov r0, #1
@@ -1791,19 +1791,19 @@ _021D82FC:
bne _021D831A
mov r0, #1
add r1, r0, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
b _021D8330
_021D831A:
cmp r0, #0x10
bne _021D8330
mov r0, #1
add r1, r4, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
b _021D8330
_021D8328:
mov r0, #1
add r1, r4, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
_021D8330:
add r0, r5, #0
add r0, #0xa8
@@ -1855,7 +1855,7 @@ MOD63_021D8360: ; 0x021D8360
strh r0, [r2]
ldr r0, _021D83A4 ; =gMain + 0x60
strb r3, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
mov r0, #1
pop {r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s
index 9c8b1d22..e501157b 100644
--- a/arm9/modules/63/asm/mod63_021D8890.s
+++ b/arm9/modules/63/asm/mod63_021D8890.s
@@ -16,7 +16,7 @@ _021D889A:
sub r2, r2, #1
bne _021D889A
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -36,7 +36,7 @@ _021D88BA:
sub r2, r2, #1
bne _021D88BA
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -56,7 +56,7 @@ _021D88DA:
sub r2, r2, #1
bne _021D88DA
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -578,8 +578,8 @@ MOD63_021D8D10: ; 0x021D8D10
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r0, #4
mov r1, #8
bl FUN_0201669C
@@ -606,7 +606,7 @@ MOD63_021D8D10: ; 0x021D8D10
strb r1, [r4, r0]
ldr r0, _021D8D94 ; =gMain + 0x60
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
bl GetLCRNGSeed
str r0, [r4, #0x14]
mov r0, #0
@@ -985,10 +985,10 @@ MOD63_021D8F38: ; 0x021D8F38
bl FUN_02006930
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x10
str r0, [sp]
ldr r0, _021D90C8 ; =0x04000050
@@ -1010,7 +1010,7 @@ MOD63_021D8F38: ; 0x021D8F38
bl FUN_0200E394
mov r0, #1
bl FUN_0200E394
- bl FUN_0201E788
+ bl GX_BothDispOn
add sp, #0x10
pop {r4, pc}
nop
@@ -1089,10 +1089,10 @@ _021D9148:
blt _021D9208
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x10
str r0, [sp]
ldr r0, _021D9220 ; =0x04000050
@@ -1109,10 +1109,10 @@ _021D9148:
bl G2x_SetBlendAlpha_
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r2, #0
strb r2, [r4, #7]
strb r2, [r4, #6]
@@ -1546,7 +1546,7 @@ MOD63_021D9498: ; 0x021D9498
str r0, [r5, #0x40]
ldr r0, _021D9588 ; =gMain + 0x60
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
ldr r6, _021D958C ; =MOD63_021DBDE8
ldr r7, _021D9590 ; =MOD63_021DBAD0
mov r4, #0
@@ -1886,10 +1886,10 @@ _021D96F8:
bl MOD63_021DABCC
mov r0, #0xe
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0
bl FUN_0200E394
mov r0, #1
@@ -2171,7 +2171,7 @@ _021D9A42:
blt _021D9B0C
mov r0, #1
add r1, r0, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
str r0, [sp]
mov r0, #8
@@ -2197,14 +2197,14 @@ _021D9A7A:
bne _021D9A88
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
_021D9A88:
ldr r0, _021D9DD0 ; =0x000003C5
cmp r5, r0
blt _021D9B0C
mov r0, #7
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x12
str r0, [sp]
mov r1, #1
@@ -2319,13 +2319,13 @@ _021D9B72:
bl G2x_SetBlendAlpha_
mov r0, #6
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r1, #0
ldr r0, [r4, #0x10]
add r2, r1, #0
@@ -2526,7 +2526,7 @@ _021D9D48:
bl MOD63_021DAD18
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x10]
mov r1, #0
mov r2, #1
@@ -2610,7 +2610,7 @@ _021D9DF8:
bl MOD63_021D9EA8
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
str r0, [sp]
mov r1, #1
@@ -3172,13 +3172,13 @@ _021DA192:
bl FUN_020068C8
mov r0, #0xe
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [r4, #0xc]
mov r1, #3
mov r2, #1
@@ -3532,11 +3532,11 @@ MOD63_021DA588: ; 0x021DA588
strb r2, [r0, #3]
mov r2, #0
strb r2, [r0, #1]
- ldr r3, _021DA59C ; =FUN_0201E6E4
+ ldr r3, _021DA59C ; =GX_EngineAToggleLayers
add r0, r1, #0
bx r3
nop
-_021DA59C: .word FUN_0201E6E4
+_021DA59C: .word GX_EngineAToggleLayers
thumb_func_end MOD63_021DA588
thumb_func_start MOD63_021DA5A0
@@ -3610,7 +3610,7 @@ _021DA618:
blo _021DA630
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
_021DA630:
add sp, #4
pop {r3, r4, r5, r6, pc}
diff --git a/arm9/modules/63/asm/mod63_021DA640.s b/arm9/modules/63/asm/mod63_021DA640.s
index dbfc4e75..6095d832 100644
--- a/arm9/modules/63/asm/mod63_021DA640.s
+++ b/arm9/modules/63/asm/mod63_021DA640.s
@@ -460,7 +460,7 @@ _021DA9DC:
blt _021DA9DC
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
diff --git a/arm9/modules/63/asm/mod63_021DAE5C.s b/arm9/modules/63/asm/mod63_021DAE5C.s
index 81d1816a..52b453e2 100644
--- a/arm9/modules/63/asm/mod63_021DAE5C.s
+++ b/arm9/modules/63/asm/mod63_021DAE5C.s
@@ -338,10 +338,10 @@ _021DB040:
bl FUN_02009CF0
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s
index 645c9569..0ade6b6c 100644
--- a/arm9/modules/64/asm/module_64.s
+++ b/arm9/modules/64/asm/module_64.s
@@ -79,10 +79,10 @@ _021D755E:
bl MOD64_021D7970
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r5, #0
mov r1, #0x2f
bl MOD64_021D7A54
@@ -404,7 +404,7 @@ _021D7846:
sub r2, r2, #1
bne _021D7846
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -962,10 +962,10 @@ MOD64_021D7C74: ; 0x021D7C74
str r0, [r5, r1]
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD64_021D7C74
@@ -1940,7 +1940,7 @@ _021D8400:
bl MOD64_021D8864
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #4]
add sp, #0xc
add r0, r0, #1
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index 890b3348..229a9214 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -114,8 +114,8 @@ _021D75A4:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -221,8 +221,8 @@ _021D7684:
mov r0, #0
add r1, r0, #0
bl Main_SetVBlankIntrCB
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -740,7 +740,7 @@ _021D7A76:
sub r2, r2, #1
bne _021D7A76
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -2574,10 +2574,10 @@ MOD65_021D8850: ; 0x021D8850
_021D8908:
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x54
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -2771,8 +2771,8 @@ _021D8A88:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -2882,8 +2882,8 @@ _021D8B68:
mov r0, #0
add r1, r0, #0
bl Main_SetVBlankIntrCB
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -3055,7 +3055,7 @@ _021D8CC2:
sub r2, r2, #1
bne _021D8CC2
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -3491,7 +3491,7 @@ MOD65_021D8FB0: ; 0x021D8FB0
_021D9040:
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x44
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -5354,7 +5354,7 @@ MOD65_021D9E98: ; 0x021D9E98
bl MOD65_021DA000
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _021D9F4C ; =0x04000008
mov r0, #3
ldrh r2, [r1]
diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s
index 65c5c857..e0b21bf2 100644
--- a/arm9/modules/66/asm/module_66.s
+++ b/arm9/modules/66/asm/module_66.s
@@ -169,7 +169,7 @@ _021D7612:
sub r2, r2, #1
bne _021D7612
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -193,8 +193,8 @@ _021D763C:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -319,10 +319,10 @@ MOD66_021D7750: ; 0x021D7750
bl FUN_0201CD04
mov r0, #0x1f
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x1f
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0
add r1, r0, #0
bl Main_SetVBlankIntrCB
@@ -3630,10 +3630,10 @@ MOD66_021D913C: ; 0x021D913C
add r4, r0, #0
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r1, [r4, #4]
mov r0, #0x20
bl FUN_0201C24C
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
index a72ccebc..4982fa30 100644
--- a/arm9/modules/67/asm/module_67.s
+++ b/arm9/modules/67/asm/module_67.s
@@ -11,8 +11,8 @@ MOD67_021D74E0: ; 0x021D74E0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r0, #1
lsl r0, r0, #0x1a
ldr r2, [r0]
@@ -80,11 +80,11 @@ MOD67_021D74E0: ; 0x021D74E0
ldr r0, _021D75CC ; =MOD67_021D7660
add r1, r4, #0
bl Main_SetVBlankIntrCB
- bl FUN_0201E788
+ bl GX_BothDispOn
bl FUN_02033E74
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r1, #0
mov r0, #0x43
add r2, r1, #0
@@ -201,7 +201,7 @@ _021D768A:
sub r2, r2, #1
bne _021D768A
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -312,7 +312,7 @@ _021D7778: .word MOD67_021D9794
MOD67_021D777C: ; 0x021D777C
push {r4, lr}
add r4, r0, #0
- bl FUN_0201E6D8
+ bl GX_DisableEngineALayers
add r0, r4, #0
mov r1, #3
bl FUN_020178A0
@@ -1248,7 +1248,7 @@ _021D7E32:
add r4, r0, #0
ldr r0, [sp, #0x14]
lsr r0, r0, #0x13
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -1685,7 +1685,7 @@ MOD67_021D8208: ; 0x021D8208
b _021D832E
_021D822A:
ldrh r0, [r0, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r1, _021D8338 ; =0x0000017E
mov r0, #0x1a
@@ -1774,7 +1774,7 @@ _021D82EA:
_021D82F2:
add r0, sp, #0x10
ldrh r0, [r0, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r4, #0x54]
mov r1, #0
@@ -2423,7 +2423,7 @@ MOD67_021D87E4: ; 0x021D87E4
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -2674,7 +2674,7 @@ MOD67_021D89E0: ; 0x021D89E0
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -2717,7 +2717,7 @@ MOD67_021D8A3C: ; 0x021D8A3C
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -2760,7 +2760,7 @@ MOD67_021D8A98: ; 0x021D8A98
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -2803,7 +2803,7 @@ MOD67_021D8AF4: ; 0x021D8AF4
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -2846,7 +2846,7 @@ MOD67_021D8B50: ; 0x021D8B50
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -2889,7 +2889,7 @@ MOD67_021D8BAC: ; 0x021D8BAC
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -2932,7 +2932,7 @@ MOD67_021D8C08: ; 0x021D8C08
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -2975,7 +2975,7 @@ MOD67_021D8C64: ; 0x021D8C64
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -3018,7 +3018,7 @@ MOD67_021D8CC0: ; 0x021D8CC0
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -3061,7 +3061,7 @@ MOD67_021D8D1C: ; 0x021D8D1C
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
@@ -3104,7 +3104,7 @@ MOD67_021D8D78: ; 0x021D8D78
bl NewString_ReadMsgData
add r7, r0, #0
ldrh r0, [r4, #2]
- bl FUN_02034824
+ bl MapHeader_GetMapSec
add r2, r0, #0
ldr r0, [r5, #0x54]
mov r1, #0
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
index dfab7ef8..5c2c1740 100644
--- a/arm9/modules/68/asm/module_68.s
+++ b/arm9/modules/68/asm/module_68.s
@@ -11,8 +11,8 @@ MOD68_021D74E0: ; 0x021D74E0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -93,7 +93,7 @@ MOD68_021D74E0: ; 0x021D74E0
bl FUN_02033F20
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
@@ -213,7 +213,7 @@ _021D76AA:
sub r2, r2, #1
bne _021D76AA
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -308,7 +308,7 @@ MOD68_021D7774: ; 0x021D7774
add r4, r0, #0
mov r0, #0xf
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #3
bl FUN_020178A0
@@ -1447,7 +1447,7 @@ MOD68_021D7FD8: ; 0x021D7FD8
str r0, [r1, #0x40]
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _021D8068 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index 0e218fd3..33fafb4f 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -738,7 +738,7 @@ MOD69_0222DBAC: ; 0x0222DBAC
bl FUN_02016B94
str r0, [r4, #0x10]
ldr r0, _0222DCF4 ; =0x0222F8CC
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _0222DCF8 ; =0x04000304
ldr r0, _0222DCFC ; =0xFFFF7FFF
ldrh r1, [r2]
@@ -964,7 +964,7 @@ MOD69_0222DD54: ; 0x0222DD54
bl FUN_020AEDF4
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _0222DDF8 ; =0x04000008
mov r1, #3
ldrh r2, [r0]
@@ -1115,7 +1115,7 @@ MOD69_0222DE98: ; 0x0222DE98
bl MOD69_0222DF0C
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x1c
pop {r3, r4, pc}
.align 2, 0
diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s
index ef7b18bd..a0966fec 100644
--- a/arm9/modules/70/asm/module_70.s
+++ b/arm9/modules/70/asm/module_70.s
@@ -803,7 +803,7 @@ MOD70_021D7AF4: ; 0x021D7AF4
sub sp, #0x10
add r5, r0, #0
ldr r0, _021D7BF8 ; =0x021D8284
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _021D7BFC ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
@@ -909,7 +909,7 @@ MOD70_021D7AF4: ; 0x021D7AF4
bl G2x_SetBlendAlpha_
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index e7f0b24d..ac2559a6 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -12,8 +12,8 @@ MOD71_0222D5C0: ; 0x0222D5C0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -131,7 +131,7 @@ MOD71_0222D5C0: ; 0x0222D5C0
bl FUN_0201797C
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r1, #0x5d
lsl r1, r1, #2
ldr r1, [r4, r1]
@@ -323,7 +323,7 @@ MOD71_0222D820: ; 0x0222D820
bl FUN_0201797C
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0
mov r1, #1
bl FUN_0201797C
@@ -338,7 +338,7 @@ MOD71_0222D820: ; 0x0222D820
bl FUN_0201797C
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
bl MOD71_0222EA38
add r0, r4, #0
bl MOD71_0222EA68
@@ -1175,7 +1175,7 @@ _0222DF92:
str r0, [r4, #0x4c]
mov r0, #0x10
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _0222E0F8 ; =0x00002218
mov r1, #0
ldr r0, [r4, r0]
@@ -1220,7 +1220,7 @@ _0222DFD6:
bl FUN_0201797C
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
@@ -1276,7 +1276,7 @@ _0222E054:
bl FUN_0201797C
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [r4, #0x4c]
add r0, r0, #1
str r0, [r4, #0x4c]
@@ -1856,7 +1856,7 @@ _0222E562:
sub r2, r2, #1
bne _0222E562
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s
index b4e14758..d5105d7e 100644
--- a/arm9/modules/73/asm/module_73.s
+++ b/arm9/modules/73/asm/module_73.s
@@ -325,7 +325,7 @@ _021D76D4:
bl FUN_02033E74
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _021D7804 ; =0x00001420
ldr r0, [r5, r0]
cmp r0, #1
@@ -968,13 +968,13 @@ _021D7CD2:
bl MOD73_021DA730
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0xae
mov r1, #0
lsl r0, r0, #2
@@ -2233,7 +2233,7 @@ MOD73_021D8630: ; 0x021D8630
ldr r0, _021D8758 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
add sp, #8
pop {r4, pc}
.align 2, 0
@@ -2302,7 +2302,7 @@ MOD73_021D875C: ; 0x021D875C
ldr r0, _021D880C ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
pop {r4, pc}
.align 2, 0
_021D87EC: .word 0x0000063C
@@ -2425,7 +2425,7 @@ _021D88CE:
sub r2, r2, #1
bne _021D88CE
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -2453,7 +2453,7 @@ MOD73_021D88E4: ; 0x021D88E4
bl FUN_02016BBC
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0
mov r1, #2
bl FUN_020178BC
@@ -2537,10 +2537,10 @@ MOD73_021D89AC: ; 0x021D89AC
bl MOD73_021D92EC
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
pop {r3, pc}
.align 2, 0
thumb_func_end MOD73_021D89AC
@@ -5857,10 +5857,10 @@ _021DA266:
bl MOD73_021DA374
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
str r0, [r5, #0x28]
pop {r4, r5, r6, pc}
@@ -6067,10 +6067,10 @@ MOD73_021DA408: ; 0x021DA408
blt _021DA432
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r5, #0
bl FUN_0200CAB4
mov r0, #0
@@ -6117,10 +6117,10 @@ _021DA446:
bl CopyWindowToVram
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
@@ -6150,10 +6150,10 @@ MOD73_021DA4AC: ; 0x021DA4AC
beq _021DA4D0
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x2c]
bl FUN_0200CAB4
mov r0, #0
diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s
index 14dc995b..1fce128e 100644
--- a/arm9/modules/74/asm/module_74.s
+++ b/arm9/modules/74/asm/module_74.s
@@ -190,8 +190,8 @@ _021D7644:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -289,8 +289,8 @@ _021D7722:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -329,7 +329,7 @@ _021D776E:
sub r2, r2, #1
bne _021D776E
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -1746,7 +1746,7 @@ MOD74_021D8200: ; 0x021D8200
bl FUN_0200BD20
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x50
pop {r3, r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index 87c9c55a..1a9861c9 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -12,8 +12,8 @@ MOD75_021E6BA0: ; 0x021E6BA0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r0, #1
lsl r0, r0, #0x1a
ldr r2, [r0]
@@ -558,7 +558,7 @@ _021E703E:
sub r2, r2, #1
bne _021E703E
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -732,10 +732,10 @@ MOD75_021E71BC: ; 0x021E71BC
add r4, r0, #0
mov r0, #0x1f
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x1b
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #7
bl FUN_020178A0
@@ -9844,10 +9844,10 @@ MOD75_021EB9B4: ; 0x021EB9B4
add r4, r0, #0
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x20
mov r1, #6
bl FUN_0201C24C
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
index d81a7697..13ddf00c 100644
--- a/arm9/modules/76/asm/module_76.s
+++ b/arm9/modules/76/asm/module_76.s
@@ -179,8 +179,8 @@ MOD76_021D7638: ; 0x021D7638
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -275,7 +275,7 @@ _021D771A:
sub r2, r2, #1
bne _021D771A
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -370,7 +370,7 @@ MOD76_021D77E4: ; 0x021D77E4
add r4, r0, #0
mov r0, #0x17
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #2
bl FUN_020178A0
@@ -2397,7 +2397,7 @@ MOD76_021D8758: ; 0x021D8758
bl FUN_0200BF60
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x4c
pop {r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s
index 8ed82bcb..a5eaa94b 100644
--- a/arm9/modules/77/asm/module_77.s
+++ b/arm9/modules/77/asm/module_77.s
@@ -13,8 +13,8 @@ MOD77_021D74E0: ; 0x021D74E0
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -79,7 +79,7 @@ _021D7540:
bl FUN_02016B94
ldr r1, _021D75F4 ; =0x0000C010
str r0, [r5, r1]
- bl FUN_0201E788
+ bl GX_BothDispOn
bl FUN_0201BD5C
ldr r2, [r5]
mov r0, #8
@@ -97,7 +97,7 @@ _021D7540:
ldr r0, _021D7600 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
mov r0, #4
mov r1, #8
bl FUN_0201669C
@@ -185,16 +185,16 @@ _021D764C:
bl FUN_0200E1D0
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #1
str r0, [r5]
b _021D7B66
@@ -805,16 +805,16 @@ MOD77_021D7BAC: ; 0x021D7BAC
mov r0, #4
mov r1, #0
ldr r5, [r4]
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, _021D7C14 ; =0x0000C2CC
ldr r0, [r4, r0]
bl FUN_0201EB70
@@ -857,7 +857,7 @@ _021D7C2E:
sub r2, r2, #1
bne _021D7C2E
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s
index 6a0d80b3..5d9f4625 100644
--- a/arm9/modules/78/asm/module_78.s
+++ b/arm9/modules/78/asm/module_78.s
@@ -271,8 +271,8 @@ MOD78_021D7708: ; 0x021D7708
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -295,7 +295,7 @@ MOD78_021D7708: ; 0x021D7708
strh r0, [r2]
ldr r0, _021D7768 ; =0x021D7888
bl G3X_SetEdgeColorTable
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
pop {r3, pc}
nop
_021D7758: .word 0xFFFFE0FF
@@ -318,7 +318,7 @@ _021D7776:
sub r2, r2, #1
bne _021D7776
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index 128c6280..f0b34ee0 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -1375,8 +1375,8 @@ _0222DFE4:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -1739,7 +1739,7 @@ _0222E322:
sub r2, r2, #1
bne _0222E322
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -2162,10 +2162,10 @@ MOD80_0222E614: ; 0x0222E614
bl FUN_02008AA4
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x2c
pop {r3, r4, pc}
thumb_func_end MOD80_0222E614
@@ -2725,10 +2725,10 @@ MOD80_0222EA04: ; 0x0222EA04
bl FUN_02017F18
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x9c
pop {r4, r5, pc}
nop
@@ -2767,13 +2767,13 @@ MOD80_0222EB40: ; 0x0222EB40
add r4, r0, #0
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _0222EB68 ; =0x00000D5C
mov r1, #0
ldr r0, [r4, r0]
@@ -3128,13 +3128,13 @@ MOD80_0222EE24: ; 0x0222EE24
beq _0222EE5A
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #7
mov r2, #0xb
@@ -8739,10 +8739,10 @@ MOD80_02231AB0: ; 0x02231AB0
bl FUN_02017F18
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x9c
pop {r4, r5, pc}
nop
@@ -14322,10 +14322,10 @@ MOD80_02234780: ; 0x02234780
bl FUN_02017F18
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x9c
pop {r4, r5, pc}
nop
@@ -14411,7 +14411,7 @@ MOD80_022348CC: ; 0x022348CC
bl FUN_0201797C
mov r0, #0x10
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
_02234944:
ldr r0, [r5, #0x20]
cmp r0, #9
@@ -17776,16 +17776,16 @@ MOD80_02236284: ; 0x02236284
bl MOD80_02236580
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
add r1, r0, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [r4]
ldr r0, [r0, #0x20]
bl FUN_02033288
@@ -17889,7 +17889,7 @@ MOD80_02236378: ; 0x02236378
bl FUN_02016C18
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #0
bl FUN_02018744
@@ -17910,7 +17910,7 @@ MOD80_02236378: ; 0x02236378
bl FUN_02016C18
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r5, _0223645C ; =0x02237654
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -17928,7 +17928,7 @@ MOD80_02236378: ; 0x02236378
bl FUN_02016C18
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #4
bl FUN_02018744
@@ -17949,7 +17949,7 @@ MOD80_02236378: ; 0x02236378
bl FUN_02016C18
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0
mov r1, #0x20
add r2, r0, #0
@@ -17962,7 +17962,7 @@ MOD80_02236378: ; 0x02236378
bl FUN_02017F18
mov r0, #0x10
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x70
pop {r3, r4, r5, pc}
nop
diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s
index b7492d39..94767f70 100644
--- a/arm9/modules/81/asm/module_81.s
+++ b/arm9/modules/81/asm/module_81.s
@@ -153,8 +153,8 @@ _02237F22:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -2151,7 +2151,7 @@ MOD81_02238E44: ; 0x02238E44
sub sp, #0x1c
add r4, r0, #0
ldr r0, _02239040 ; =0x0223D054
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _02239044 ; =0x04000304
ldr r0, _02239048 ; =0xFFFF7FFF
ldrh r1, [r2]
@@ -2176,7 +2176,7 @@ MOD81_02238E44: ; 0x02238E44
bl FUN_02016C18
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r2, _02239058 ; =0x04000008
mov r0, #3
ldrh r3, [r2]
@@ -2344,10 +2344,10 @@ MOD81_02238E44: ; 0x02238E44
bl MOD81_02238B40
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
bl MOD81_022393F4
ldr r0, _02239064 ; =0x04000050
@@ -3634,7 +3634,7 @@ MOD81_022399FC: ; 0x022399FC
sub sp, #0x10
add r4, r0, #0
ldr r0, _02239C78 ; =0x0223D0EC
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _02239C7C ; =0x04000304
ldr r0, _02239C80 ; =0xFFFF7FFF
ldrh r1, [r2]
@@ -3872,10 +3872,10 @@ _02239C02:
bl FUN_0201797C
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
add r0, #0xc0
mov r1, #3
@@ -4013,7 +4013,7 @@ MOD81_02239CDC: ; 0x02239CDC
bl FUN_020AEDF4
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _02239DDC ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -5703,7 +5703,7 @@ MOD81_0223AA68: ; 0x0223AA68
sub sp, #0x14
add r4, r0, #0
ldr r0, _0223ABAC ; =0x0223D158
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _0223ABB0 ; =0x04000304
ldr r0, _0223ABB4 ; =0xFFFF7FFF
ldrh r1, [r2]
@@ -5846,10 +5846,10 @@ _0223AAE8:
bl FUN_020179E0
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -5930,7 +5930,7 @@ MOD81_0223ABD8: ; 0x0223ABD8
bl FUN_020AEDF4
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _0223ACCC ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -6725,7 +6725,7 @@ MOD81_0223B264: ; 0x0223B264
sub sp, #0x10
add r4, r0, #0
ldr r0, _0223B45C ; =0x0223D1EC
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _0223B460 ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
@@ -6936,10 +6936,10 @@ MOD81_0223B264: ; 0x0223B264
bl MOD81_0223B4B0
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -7212,7 +7212,7 @@ MOD81_0223B670: ; 0x0223B670
sub sp, #0x14
add r4, r0, #0
ldr r0, _0223B7C0 ; =0x0223D258
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _0223B7C4 ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
@@ -7355,10 +7355,10 @@ _0223B6F0:
bl FUN_020179E0
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
bl FUN_02033E74
mov r0, #1
mov r1, #0x39
@@ -7442,7 +7442,7 @@ MOD81_0223B7E8: ; 0x0223B7E8
bl FUN_020AEDF4
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _0223B8E8 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -8374,7 +8374,7 @@ MOD81_0223BF74: ; 0x0223BF74
sub sp, #0x10
add r4, r0, #0
ldr r0, _0223C18C ; =0x0223D2EC
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _0223C190 ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
@@ -8596,10 +8596,10 @@ _0223C14A:
bl FUN_0201797C
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -8694,7 +8694,7 @@ MOD81_0223C1DC: ; 0x0223C1DC
bl FUN_020AEDF4
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _0223C2E0 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -9208,7 +9208,7 @@ MOD81_0223C658: ; 0x0223C658
sub sp, #0x1c
add r4, r0, #0
ldr r0, _0223C808 ; =0x0223D374
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _0223C80C ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
@@ -9228,7 +9228,7 @@ MOD81_0223C658: ; 0x0223C658
bl FUN_02016C18
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r2, _0223C81C ; =0x04000008
mov r0, #3
ldrh r3, [r2]
@@ -9369,10 +9369,10 @@ MOD81_0223C658: ; 0x0223C658
bl MOD81_0223CBE0
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0
str r0, [sp]
ldr r0, _0223C824 ; =0x04000050
diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s
index 925315fb..b9d0df31 100644
--- a/arm9/modules/82/asm/module_82.s
+++ b/arm9/modules/82/asm/module_82.s
@@ -625,8 +625,8 @@ _0222DA48:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -926,7 +926,7 @@ _0222DCEE:
sub r2, r2, #1
bne _0222DCEE
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -1194,10 +1194,10 @@ _0222DED4:
blt _0222DED4
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
bl FUN_02033E74
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
@@ -1382,16 +1382,16 @@ MOD82_0222E050: ; 0x0222E050
bl MOD82_0222E35C
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
add r1, r0, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [r4]
ldr r0, [r0, #0xc]
bl FUN_02033288
@@ -1506,7 +1506,7 @@ MOD82_0222E15C: ; 0x0222E15C
bl FUN_02016C18
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #0
bl FUN_02018744
@@ -1527,7 +1527,7 @@ MOD82_0222E15C: ; 0x0222E15C
bl FUN_02016C18
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r5, _0222E238 ; =0x0222F8B0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -1545,7 +1545,7 @@ MOD82_0222E15C: ; 0x0222E15C
bl FUN_02016C18
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #4
bl FUN_02018744
@@ -1566,7 +1566,7 @@ MOD82_0222E15C: ; 0x0222E15C
bl FUN_02016C18
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0
mov r1, #0x20
add r2, r0, #0
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 92b5807e..7e36aa68 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -449,13 +449,13 @@ _0222D8B2:
bl FUN_020186B4
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r1, #0x1e
add r0, r1, #0
add r0, #0xfe
@@ -500,13 +500,13 @@ _0222D94A:
_0222D974:
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x45
mov r1, #0xf
lsl r0, r0, #2
@@ -624,7 +624,7 @@ _0222DA5C:
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r0, sp, #0x18
- bl FUN_0201E66C
+ bl GX_SetBanks
add r0, sp, #8
bl FUN_02016BBC
mov r1, #0
@@ -2511,7 +2511,7 @@ _0222E960:
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r0, sp, #0x20
- bl FUN_0201E66C
+ bl GX_SetBanks
add r0, sp, #0x10
bl FUN_02016BBC
mov r1, #0
@@ -3250,10 +3250,10 @@ _0222EFC2:
bl MOD83_0222EA88
mov r0, #1
add r1, r0, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r1, #0xc6
lsl r1, r1, #6
ldr r0, [r4, #4]
@@ -3453,7 +3453,7 @@ MOD83_0222F074: ; 0x0222F074
bl FUN_0202AC98
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, [r5, #4]
add r1, r4, #0
bl MOD83_022391EC
@@ -6306,7 +6306,7 @@ MOD83_022307B4: ; 0x022307B4
_022307C8:
mov r0, #0x10
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r5]
mov r1, #0
bl FUN_02018744
@@ -6517,8 +6517,8 @@ MOD83_02230954: ; 0x02230954
mov r0, #0x56
bl FUN_02016B94
str r0, [r4]
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
bl MOD83_022331C0
ldr r0, [r4]
bl MOD83_02230258
@@ -7606,10 +7606,10 @@ _022312EC:
bl MOD83_022302B4
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add r1, r4, #0
ldr r0, [r4]
add r1, #0xdc
@@ -10478,7 +10478,7 @@ _0223299E:
bl FUN_020054C8
mov r0, #0x10
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _02232B7C ; =0x00002B70
mov r1, #0
add r0, r4, r0
@@ -10544,7 +10544,7 @@ _02232A20:
bl MOD83_0223243C
mov r0, #0x10
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0xa
str r0, [r5]
b _02232CF4
@@ -10570,7 +10570,7 @@ _02232A56:
bl FUN_0200CCA4
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
bl MOD83_022324A0
mov r0, #5
@@ -11433,7 +11433,7 @@ _022331CA:
sub r2, r2, #1
bne _022331CA
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
@@ -15840,7 +15840,7 @@ MOD83_022351F8: ; 0x022351F8
bl FUN_02008AA4
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #0x2c
pop {pc}
thumb_func_end MOD83_022351F8
@@ -17524,13 +17524,13 @@ _02235F48:
sub r2, r2, #1
bne _02235F48
add r0, sp, #0x10
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r0, [r4, #0x20]
bl MOD83_02235E68
ldr r0, _02235FB8 ; =gMain + 0x60
mov r1, #1
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
bl FUN_0201BD5C
mov r1, #0x1e
mov r0, #0
@@ -17865,7 +17865,7 @@ _02236148:
bl FUN_02017CD0
mov r0, #2
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r1, #7
mov r0, #0
lsl r1, r1, #6
@@ -17945,7 +17945,7 @@ _022362C2:
blt _022362C2
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, _0223632C ; =0x00000498
add r0, r6, r0
bl MOD83_02236298
@@ -18094,7 +18094,7 @@ _022363E2:
ldr r0, _0223644C ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
- bl FUN_0201E7A0
+ bl GX_SwapDisplay
ldr r0, [r6, #0x20]
mov r1, #0
bl FUN_020178A0
@@ -18671,7 +18671,7 @@ _022368BA:
bl Main_SetVBlankIntrCB
mov r0, #0x10
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #4]
cmp r0, #1
bne _022368FA
@@ -18898,7 +18898,7 @@ _02236A88:
bl Main_SetVBlankIntrCB
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #0
bl MOD83_02235C4C
@@ -23555,12 +23555,12 @@ _02238CA8:
bne _02238D1A
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
b _02238D22
_02238D1A:
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
_02238D22:
ldr r0, _02238D34 ; =MOD83_02238F00
mov r1, #0
diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s
index 405c33ef..53dfe036 100644
--- a/arm9/modules/84/asm/module_84_thumb1.s
+++ b/arm9/modules/84/asm/module_84_thumb1.s
@@ -38,8 +38,8 @@ _021D7516:
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -565,7 +565,7 @@ MOD84_021D7968: ; 0x021D7968
bl FUN_02016B94
str r0, [r4, #4]
ldr r0, _021D7A60 ; =0x021DA68C
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r2, _021D7A64 ; =0x04000304
ldr r0, _021D7A68 ; =0xFFFF7FFF
ldrh r1, [r2]
@@ -768,7 +768,7 @@ MOD84_021D7AC8: ; 0x021D7AC8
bl FUN_020AEDF4
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r1, _021D7B50 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -1348,10 +1348,10 @@ MOD84_021D7F94: ; 0x021D7F94
bl FUN_020200D8
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
add sp, #0x30
pop {r4, pc}
thumb_func_end MOD84_021D7F94
diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s
index 048adbf9..66e7a196 100644
--- a/arm9/modules/84/asm/module_84_thumb2.s
+++ b/arm9/modules/84/asm/module_84_thumb2.s
@@ -1314,7 +1314,7 @@ _021D8AEC: ; jump table
_021D8AF4:
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r1, #0
mov r0, #3
add r2, r1, #0
@@ -1362,7 +1362,7 @@ _021D8B4E:
beq _021D8B66
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #4
mov r0, #1
pop {r3, r4, pc}
@@ -1611,10 +1611,10 @@ _021D8D24: ; jump table
_021D8D2C:
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r1, #0
mov r0, #3
add r2, r1, #0
@@ -1692,10 +1692,10 @@ _021D8DC8:
beq _021D8DE6
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #1
pop {r3, r4, r5, pc}
_021D8DE6:
@@ -2473,7 +2473,7 @@ _021D93F4: ; jump table
_021D93FC:
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r1, #0
mov r0, #3
add r2, r1, #0
@@ -2521,7 +2521,7 @@ _021D9456:
beq _021D946E
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #4
mov r0, #1
pop {r3, r4, pc}
@@ -3346,7 +3346,7 @@ _021D9AB4: ; jump table
_021D9ABC:
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r1, #0
mov r0, #3
add r2, r1, #0
@@ -3394,7 +3394,7 @@ _021D9B16:
beq _021D9B2E
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
add sp, #4
mov r0, #1
pop {r3, r4, pc}
@@ -3989,7 +3989,7 @@ _021D9FBE:
beq _021DA068
mov r0, #1
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
ldr r0, [r4, #0x10]
mov r1, #0
bl FUN_020200A0
diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s
index 2fe33d18..adb49508 100644
--- a/arm9/modules/85/asm/module_85.s
+++ b/arm9/modules/85/asm/module_85.s
@@ -12,8 +12,8 @@ MOD85_021D74E0: ; 0x021D74E0
add r1, r0, #0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #2
mov r0, #3
mov r1, #0x4f
@@ -273,34 +273,34 @@ MOD85_021D76FC: ; 0x021D76FC
bl MOD85_021D7930
mov r0, #1
add r1, r0, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #2
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #4
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #8
mov r1, #0
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E6E4
+ bl GX_EngineAToggleLayers
mov r0, #1
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #2
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #8
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
mov r0, #0x10
mov r1, #1
- bl FUN_0201E74C
+ bl GX_EngineBToggleLayers
ldr r0, _021D77D0 ; =0x04000008
mov r2, #3
ldrh r1, [r0]
@@ -383,7 +383,7 @@ _021D7802:
sub r2, r2, #1
bne _021D7802
add r0, sp, #0
- bl FUN_0201E66C
+ bl GX_SetBanks
add sp, #0x28
pop {r4, pc}
.align 2, 0
diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s
index e3a93e0f..08651acb 100644
--- a/arm9/modules/86/asm/module_86.s
+++ b/arm9/modules/86/asm/module_86.s
@@ -43,8 +43,8 @@ MOD86_021D74E0: ; 0x021D74E0
mov r0, #0
add r1, r0, #0
bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
+ bl GX_DisableEngineALayers
+ bl GX_DisableEngineBLayers
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -65,7 +65,7 @@ MOD86_021D74E0: ; 0x021D74E0
ldr r0, _021D7588 ; =MOD86_021D76E0
add r1, r4, #0
bl Main_SetVBlankIntrCB
- bl FUN_0201E788
+ bl GX_BothDispOn
mov r0, #1
pop {r3, r4, r5, pc}
nop
@@ -262,7 +262,7 @@ _021D76F8:
sub r2, r2, #1
bne _021D76F8
add r0, sp, #0x2c
- bl FUN_0201E66C
+ bl GX_SetBanks
ldr r0, [r4]
bl FUN_02016B94
add r3, sp, #0x1c
diff --git a/arm9/src/GX_layers.c b/arm9/src/GX_layers.c
new file mode 100644
index 00000000..ce188876
--- /dev/null
+++ b/arm9/src/GX_layers.c
@@ -0,0 +1,110 @@
+#include "GX_layers.h"
+
+
+struct GX_LayerData layer_data;
+
+THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks)
+{
+ GX_ResetBankForBG();
+ GX_ResetBankForBGExtPltt();
+ GX_ResetBankForSubBG();
+ FUN_020C6034();
+ GX_ResetBankForOBJ();
+ GX_ResetBankForOBJExtPltt();
+ FUN_020C605C();
+ GX_ResetBankForSubOBJ();
+ GX_ResetBankForTex();
+ GX_ResetBankForTexPltt();
+
+ GX_SetBankForBG(banks->bg);
+ GX_SetBankForBGExtPltt(banks->bgextpltt);
+ GX_SetBankForSubBG(banks->subbg);
+ GX_SetBankForSubBGExtPltt(banks->subbgextpltt);
+ GX_SetBankForOBJ(banks->obj);
+ GX_SetBankForOBJExtPltt(banks->objextpltt);
+ GX_SetBankForSubOBJ(banks->subobj);
+ GX_SetBankForSubOBJExtPltt(banks->subobjextpltt);
+ GX_SetBankForTex(banks->tex);
+ GX_SetBankForTexPltt(banks->texpltt);
+}
+
+
+THUMB_FUNC void GX_DisableEngineALayers()
+{
+ layer_data.EngineA_DISPCNT_LayerMask = 0;
+}
+
+THUMB_FUNC void GX_EngineAToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle)
+{
+ if (layer_toggle == GX_LAYER_TOGGLE_ON)
+ {
+ if ((layer_data.EngineA_DISPCNT_LayerMask & layer_mask) != 0)
+ {
+ return;
+ }
+ }
+ else
+ {
+ if ((layer_data.EngineA_DISPCNT_LayerMask & layer_mask) == 0)
+ {
+ return;
+ }
+ }
+
+ reg_GX_DISPCNT = (reg_GX_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineA_DISPCNT_LayerMask ^= layer_mask) << 8;
+}
+
+THUMB_FUNC void GX_SetEngineALayers(u32 layer_mask)
+{
+ layer_data.EngineA_DISPCNT_LayerMask = layer_mask;
+ reg_GX_DISPCNT = (reg_GX_DISPCNT & 0xFFFFE0FF) | layer_mask << 8;
+}
+
+THUMB_FUNC void GX_DisableEngineBLayers()
+{
+ layer_data.EngineB_DISPCNT_LayerMask = 0;
+}
+
+THUMB_FUNC void GX_EngineBToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle)
+{
+ if (layer_toggle == GX_LAYER_TOGGLE_ON)
+ {
+ if ((layer_data.EngineB_DISPCNT_LayerMask & layer_mask) != 0)
+ {
+ return;
+ }
+ }
+ else
+ {
+ if ((layer_data.EngineB_DISPCNT_LayerMask & layer_mask) == 0)
+ {
+ return;
+ }
+ }
+
+ reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineB_DISPCNT_LayerMask ^= layer_mask) << 8;
+}
+
+THUMB_FUNC void GX_BothDispOn()
+{
+ GX_DispOn();
+
+ reg_GXS_DB_DISPCNT |= 0x10000;
+}
+
+THUMB_FUNC void GX_SwapDisplay()
+{
+ if (gMain.unk65 == 0)
+ {
+ reg_GX_POWCNT |= 0x8000; //send display A to lower screen
+ }
+ else
+ {
+ reg_GX_POWCNT &= 0xFFFF7FFF; // sned display A to upper screen
+ }
+}
+
+THUMB_FUNC u32 GX_GetEngineALayers()
+{
+ return layer_data.EngineA_DISPCNT_LayerMask;
+}
diff --git a/arm9/src/error_handling.c b/arm9/src/error_handling.c
index 9052773f..a01894f6 100644
--- a/arm9/src/error_handling.c
+++ b/arm9/src/error_handling.c
@@ -1,8 +1,8 @@
#include "global.h"
#include "error_handling.h"
+#include "error_message_reset.h"
extern u32 FUN_02031810(void);
-extern void PrintErrorMessageAndReset(void);
THUMB_FUNC void ErrorHandling(void)
{
diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c
new file mode 100644
index 00000000..3a727924
--- /dev/null
+++ b/arm9/src/error_message_reset.c
@@ -0,0 +1,142 @@
+#include "error_message_reset.h"
+#include "GX_layers.h"
+
+const u32 UNK_020FF49C[2] = { 0x1a030300, 0x00230112 };
+
+const u32 UNK_020FF4A4[2] = { 0x00020000, 0x00000000 };
+
+const struct GraphicsModes UNK_020FF4AC = { mode1 : 1 };
+
+const u32 UNK_020FF4BC[7] = { 0x00, 0x00, 0x0800, 0x00, 0x06000001, 0x0100, 0x00 };
+
+const struct GraphicsBanks UNK_020FF4D8 = { bg : 3 };
+
+u32 sErrorMessagePrinterLock;
+
+extern void FUN_0200E3A0(PMLCDTarget, int);
+extern u32 *FUN_02016B94(u32 param0);
+extern void FUN_02016BBC(const struct GraphicsModes *modes);
+extern void FUN_02016C18(u32 *param0, u32 param1, void *param2, u32 param3);
+extern void FUN_02018744(u32 *param0, u32 param1);
+extern void FUN_0200CB00(u32 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5);
+extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2);
+extern void FUN_02017F18(u32 param0, u32 param1, u32 param2, u32 param3);
+extern void FUN_02017FE4(u32 param0, u32 param1);
+extern void FUN_02019150(u32 *param0, u32 *param1, const u32 *param2);
+extern void FUN_020196F4(u32 *, u8, u16, u16, u16, u16);
+extern void FUN_0200CCA4(u32 *param0, u32 param1, u32 param2, u32 param3);
+extern void FUN_0200E394(u32 param0);
+extern void FUN_0200A274(u32 param0, u32 param1, u32 param2);
+extern BOOL FUN_02032DAC(void);
+extern BOOL FUN_0202FB80(void);
+extern BOOL FUN_02033678(void);
+extern void FUN_02019178(u32 *param0);
+
+THUMB_FUNC void VBlankHandler()
+{
+ *(vu32 *)HW_INTR_CHECK_BUF |= 1;
+
+ MI_WaitDma(3);
+}
+
+THUMB_FUNC void PrintErrorMessageAndReset()
+{
+
+ u32 *ptr;
+ u32 buf[4];
+
+ if (sErrorMessagePrinterLock != 1)
+ {
+ sErrorMessagePrinterLock = 1;
+ OS_SetArenaHi(OS_ARENA_MAIN, OS_GetInitArenaHi(OS_ARENA_MAIN));
+ OS_SetArenaLo(OS_ARENA_MAIN, OS_GetInitArenaLo(OS_ARENA_MAIN));
+
+ FUN_020166C8((u32 *)UNK_020FF4A4, 1, 1, 0);
+ FUN_0200E3A0(PM_LCD_TOP, 0);
+ FUN_0200E3A0(PM_LCD_BOTTOM, 0);
+
+ OS_DisableIrqMask(1);
+ OS_SetIrqFunction(1, &VBlankHandler);
+ OS_EnableIrqMask(1);
+
+ Main_SetVBlankIntrCB(NULL, NULL);
+
+ FUN_02015F34(NULL, NULL);
+ GX_DisableEngineALayers();
+ GX_DisableEngineBLayers();
+
+ reg_GX_DISPCNT &= 0xFFFFE0FF;
+ reg_GXS_DB_DISPCNT &= 0xFFFFE0FF;
+
+ FUN_0201669C(4, 8);
+
+ gMain.unk65 = 0;
+ GX_SwapDisplay();
+
+ reg_G2_BLDCNT = 0;
+ reg_G2S_DB_BLDCNT = 0;
+ reg_GX_DISPCNT &= 0xFFFF1FFF;
+ reg_GXS_DB_DISPCNT &= 0xFFFF1FFF;
+
+ GX_SetBanks(&UNK_020FF4D8);
+ ptr = FUN_02016B94(0);
+ FUN_02016BBC(&UNK_020FF4AC);
+
+ FUN_02016C18(ptr, 0, UNK_020FF4BC, 0);
+ FUN_02018744(ptr, 0);
+
+ FUN_0200CB00(ptr, 0, 503, 2, 0, 0);
+
+ FUN_02002ED0(0, 0x20, 0);
+ FUN_02017F18(0, 0x20, 0, 0);
+ FUN_02017FE4(0, 0x6C21);
+ FUN_02017FE4(4, 0x6C21);
+
+ struct MsgData *msg_data = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 0xc8, 0);
+ struct String *str = String_ctor(6 << 6, 0);
+
+ FUN_0201BD5C();
+ FUN_02019150(ptr, buf, UNK_020FF49C);
+ FUN_020196F4(buf, 15, 0, 0, 0xd0, 0x90);
+ FUN_0200CCA4(buf, 0, 0x1f7, 2);
+
+ ReadMsgDataIntoString(msg_data, 3, str);
+
+ AddTextPrinterParameterized((u32)buf, 0, (const u16 *)str, 0, 0, 0, NULL); // wtf
+
+ String_dtor(str);
+ GX_BothDispOn();
+ FUN_0200E394(0);
+ FUN_0200E394(1);
+ FUN_0200A274(0, 0x3f, 3);
+ FUN_02032DAC();
+
+ lid:
+ HandleDSLidAction();
+ FUN_0202FB80();
+ if (!FUN_02033678())
+ {
+ OS_WaitIrq(1, 1);
+ goto lid;
+ }
+
+
+ lid2:
+ HandleDSLidAction();
+ if (!((u16)(((reg_PAD_KEYINPUT | *(vu16 *)HW_BUTTON_XY_BUF) ^ 0x2FFF) & 0x2FFF) & 1))
+ {
+ OS_WaitIrq(1, 1);
+ goto lid2;
+ }
+
+ FUN_0200E3A0(PM_LCD_TOP, 0x7FFF);
+ FUN_0200E3A0(PM_LCD_BOTTOM, 0x7FFF);
+
+ FUN_02019178(buf);
+
+ DestroyMsgData(msg_data);
+ FreeToHeap(ptr);
+
+ OS_ResetSystem(0);
+ }
+}
diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c
index 327c66c6..a7508fab 100644
--- a/arm9/src/game_init.c
+++ b/arm9/src/game_init.c
@@ -4,16 +4,15 @@
#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 "registers.h"
+#include "heap.h"
#pragma thumb on
-extern void FUN_020166C8(const u32 (*)[2], int, int, int);
extern void FUN_02022450(void);
typedef volatile struct
@@ -142,7 +141,7 @@ void FUN_02015FC8(void)
{
csum++;
}
- FUN_020166C8(UNK_020EDB10, 4, 92, (int)csum);
+ FUN_020166C8((u32 *)UNK_020EDB10, 4, 92, (int)csum);
}
void InitSystemForTheGame(void)
diff --git a/arm9/src/heap.c b/arm9/src/heap.c
new file mode 100644
index 00000000..84abc834
--- /dev/null
+++ b/arm9/src/heap.c
@@ -0,0 +1,380 @@
+#include "heap.h"
+#include "error_message_reset.h"
+
+extern void *tempName_NNS_FndCreateExpHeapEx(void *param0, u32 param1, u32 param2);
+extern void *tempName_NNS_FndAllocFromExpHeapEx(void *param0, u32 param1, s32 param2);
+extern void thunk_FUN_020adc8c();
+extern void FUN_020ADDF0(void *ptr1, void *ptr2);
+extern u32 FUN_02031810(void);
+extern u32 FUN_020ADDC8(void *param0);
+extern void FUN_020AE82C(u32 param0, void *param1, u32 param2);
+extern u32 FUN_020ADDC0(void *param0);
+extern void FUN_020ADE2C(void *ptr1, void *ptr2, u32 param2);
+
+
+struct UnkStruct_020166C8 UNK_021C4D28;
+
+
+THUMB_FUNC void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size)
+{
+ u32 unk_size = param1 + 24;
+
+ if (param2 < unk_size)
+ {
+ param2 = unk_size;
+ }
+ if (pre_size != 0)
+ {
+ while (pre_size % 4 != 0)
+ {
+ pre_size++;
+ }
+
+ OS_AllocFromArenaLo(OS_ARENA_MAIN, pre_size, 4);
+ }
+
+ u32 r7 = param2 * 2;
+
+ void *ptr = OS_AllocFromArenaLo(OS_ARENA_MAIN, (unk_size * 3 + 1) * sizeof(u32) + r7 + param2, 4);
+ UNK_021C4D28.unk00 = ptr;
+ ptr += (unk_size + 1) * 4;
+ UNK_021C4D28.unk04 = ptr;
+ ptr += unk_size * 4;
+ UNK_021C4D28.unk08 = ptr;
+ ptr += unk_size * 4;
+ UNK_021C4D28.unk0c = ptr;
+ ptr += r7;
+ UNK_021C4D28.unk10 = ptr;
+ UNK_021C4D28.unk14 = (u16)param2;
+ UNK_021C4D28.unk16 = (u16)param1;
+
+ r7 = 0;
+ UNK_021C4D28.unk1a = (u16)unk_size;
+ UNK_021C4D28.unk18 = (u16)unk_size;
+
+ while (r7 < param1)
+ {
+ void *ptr;
+ if (param0[1] == 0 || param0[1] != 2)
+ {
+ ptr = OS_AllocFromArenaLo(OS_ARENA_MAIN, param0[0], 4);
+ }
+ else
+ {
+ ptr = OS_AllocFromArenaHi(OS_ARENA_MAINEX, param0[0], 4);
+ }
+
+ if (ptr != 0)
+ {
+
+ UNK_021C4D28.unk00[r7] = tempName_NNS_FndCreateExpHeapEx(ptr, param0[0], 0);
+ UNK_021C4D28.unk10[r7] = (u8)r7;
+ }
+ else
+ {
+ ErrorHandling();
+ }
+
+ param0 += 2;
+ r7++;
+ }
+
+ while (param1 < unk_size + 1)
+ {
+ UNK_021C4D28.unk00[param1] = 0;
+ UNK_021C4D28.unk10[param1] = (u8)UNK_021C4D28.unk1a;
+
+ param1++;
+ }
+
+ while (param1 < param2)
+ {
+ UNK_021C4D28.unk10[param1] = (u8)UNK_021C4D28.unk1a;
+
+ param1++;
+ }
+
+ for (param1 = 0; param1 < param2; param1++)
+ {
+ UNK_021C4D28.unk0c[param1] = 0;
+ }
+}
+
+THUMB_FUNC s32 FUN_020167F4()
+{
+ s32 i = UNK_021C4D28.unk16;
+ s32 j = UNK_021C4D28.unk18;
+
+ if (i < j)
+ {
+ void **ptr = UNK_021C4D28.unk00 + i;
+ do
+ {
+ if (*ptr == 0)
+ {
+ return i;
+ }
+ i++;
+ ptr++;
+ } while (i < j);
+ }
+
+ return -1;
+}
+
+THUMB_FUNC u32 FUN_0201681C(u32 param0, u32 param1, u32 param2)
+{
+ return FUN_02016834(param0, param1, param2, 4);
+}
+
+THUMB_FUNC u32 FUN_02016828(u32 param0, u32 param1, u32 param2)
+{
+ return FUN_02016834(param0, param1, param2, -4);
+}
+
+THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3)
+{
+ GF_ASSERT(OS_GetProcMode() != OS_PROCMODE_IRQ);
+
+ u8 *ptr = UNK_021C4D28.unk10;
+ if (UNK_021C4D28.unk1a == ptr[param1])
+ {
+ void *ptr2 = UNK_021C4D28.unk00[ptr[param0]];
+ if (ptr2 != 0)
+ {
+ void *ptr3 = tempName_NNS_FndAllocFromExpHeapEx(ptr2, param2, param3);
+ if (ptr3 != 0)
+ {
+ param3 = FUN_020167F4();
+ if (param3 >= 0)
+ {
+ UNK_021C4D28.unk00[param3] = tempName_NNS_FndCreateExpHeapEx(ptr3, param2, 0);
+
+
+ if (UNK_021C4D28.unk00[param3] != 0)
+ {
+ UNK_021C4D28.unk04[param3] = ptr2;
+ UNK_021C4D28.unk08[param3] = ptr3;
+ UNK_021C4D28.unk10[param1] = (u8)param3;
+
+ return 1;
+ }
+ else
+ {
+ ErrorHandling();
+ }
+ }
+ else
+ {
+ ErrorHandling();
+ }
+ }
+ else
+ {
+ ErrorHandling();
+ }
+ }
+ else
+ {
+ ErrorHandling();
+ }
+ }
+ else
+ {
+ ErrorHandling();
+ }
+ return 0;
+}
+
+THUMB_FUNC void FUN_020168D0(u32 heap_id)
+{
+ GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ);
+
+ if (UNK_021C4D28.unk00[UNK_021C4D28.unk10[heap_id]] != 0)
+ {
+ thunk_FUN_020adc8c();
+
+ u8 index = UNK_021C4D28.unk10[heap_id];
+ void *ptr1 = UNK_021C4D28.unk04[index];
+ void *ptr2 = UNK_021C4D28.unk08[index];
+ if (ptr1 != 0 && ptr2 != 0)
+ {
+ FUN_020ADDF0(ptr1, ptr2);
+ }
+ else
+ {
+ ErrorHandling();
+ }
+
+ UNK_021C4D28.unk00[UNK_021C4D28.unk10[heap_id]] = 0;
+ UNK_021C4D28.unk04[UNK_021C4D28.unk10[heap_id]] = 0;
+ UNK_021C4D28.unk08[UNK_021C4D28.unk10[heap_id]] = 0;
+
+ UNK_021C4D28.unk10[heap_id] = (u8)UNK_021C4D28.unk1a;
+ }
+}
+
+THUMB_FUNC u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3)
+{
+ GF_ASSERT(param0);
+
+ OSIntrMode intr_mode = OS_DisableInterrupts();
+ param1 += 16;
+ u32 *ptr = (u32 *)tempName_NNS_FndAllocFromExpHeapEx(param0, param1, param2);
+
+ OS_RestoreInterrupts(intr_mode);
+ if (ptr != 0)
+ {
+ ptr[3] = (ptr[3] & ~0xff) | (param3 & 0xff);
+
+ ptr += 4;
+ }
+
+ return ptr;
+}
+
+THUMB_FUNC void FUN_02016988()
+{
+ if (FUN_02031810() != 0)
+ {
+ PrintErrorMessageAndReset();
+ }
+}
+
+void *AllocFromHeap(u32 heap_id, u32 size)
+{
+ void *ptr = 0;
+ if (heap_id < UNK_021C4D28.unk14)
+ {
+ u8 index = UNK_021C4D28.unk10[heap_id];
+ ptr = FUN_02016944(UNK_021C4D28.unk00[index], size, 4, heap_id);
+ }
+ if (ptr != 0)
+ {
+ UNK_021C4D28.unk0c[heap_id]++;
+ }
+ else
+ {
+ FUN_02016988();
+ }
+
+ return ptr;
+}
+
+void *AllocFromHeapAtEnd(u32 heap_id, u32 size)
+{
+ void *ptr = 0;
+ if (heap_id < UNK_021C4D28.unk14)
+ {
+ u8 index = UNK_021C4D28.unk10[heap_id];
+ ptr = FUN_02016944(UNK_021C4D28.unk00[index], size, -4, heap_id);
+ }
+
+ if (ptr != 0)
+ {
+ UNK_021C4D28.unk0c[heap_id]++;
+ }
+ else
+ {
+ FUN_02016988();
+ }
+
+ return ptr;
+}
+
+void FreeToHeap(void *ptr)
+{
+ u8 heap_id = (u8)((u32 *)ptr)[-1];
+
+ if ((u16)heap_id < UNK_021C4D28.unk14)
+ {
+ u8 index = UNK_021C4D28.unk10[heap_id];
+ void *ptr2 = UNK_021C4D28.unk00[index];
+ GF_ASSERT(ptr2);
+
+ if (UNK_021C4D28.unk0c[heap_id] == 0)
+ {
+ FUN_02016B90(heap_id);
+ }
+ GF_ASSERT(UNK_021C4D28.unk0c[heap_id]);
+
+ UNK_021C4D28.unk0c[heap_id]--;
+ OSIntrMode intr_mode = OS_DisableInterrupts();
+ FUN_020ADDF0(ptr2, ptr - 16);
+ OS_RestoreInterrupts(intr_mode);
+ return;
+ }
+
+ ErrorHandling();
+}
+
+void FUN_02016A8C(u32 param0, void *param1)
+{
+ GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ);
+
+ if (param0 < UNK_021C4D28.unk14)
+ {
+ u8 index = UNK_021C4D28.unk10[param0];
+ void *ptr = UNK_021C4D28.unk00[index];
+ GF_ASSERT (ptr );
+
+ u8 heap_id = (u8)((u32 *)param1)[-1];
+ GF_ASSERT (heap_id == param0);
+
+ FUN_020ADDF0(ptr, param1 - 16);
+ GF_ASSERT (UNK_021C4D28.unk0c[param0]);
+
+ UNK_021C4D28.unk0c[param0]--;
+ return;
+ }
+
+ ErrorHandling();
+}
+
+THUMB_FUNC u32 FUN_02016AF8(u32 param0)
+{
+ if (param0 < UNK_021C4D28.unk14)
+ {
+ u8 index = UNK_021C4D28.unk10[param0];
+ return FUN_020ADDC8(UNK_021C4D28.unk00[index]);
+ }
+
+ ErrorHandling();
+ return 0;
+}
+
+THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2)
+{
+ if (param1 < UNK_021C4D28.unk14)
+ {
+
+ u8 index = UNK_021C4D28.unk10[param1];
+ FUN_020AE82C(param0, UNK_021C4D28.unk00[index], param2);
+ return;
+ }
+
+ ErrorHandling();
+}
+
+THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1)
+{
+ GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ);
+
+ param1 += 16;
+ if (FUN_020ADDC0(ptr - 16) >= param1)
+ {
+ u8 heap_id = (u8)((u32 *)ptr)[-1];
+
+ u8 index = UNK_021C4D28.unk10[heap_id];
+
+ FUN_020ADE2C(UNK_021C4D28.unk00[index], ptr - 16, param1);
+ return;
+ }
+ ErrorHandling();
+}
+
+THUMB_FUNC u32 FUN_02016B90(u32 param0)
+{
+#pragma unused(param0)
+ return 1;
+}
diff --git a/arm9/src/main.c b/arm9/src/main.c
index 86f0f6af..c50fbaff 100644
--- a/arm9/src/main.c
+++ b/arm9/src/main.c
@@ -11,6 +11,7 @@
#include "poke_overlay.h"
#include "player_data.h"
#include "sound.h"
+#include "timer3.h"
FS_EXTERN_OVERLAY(MODULE_52);
FS_EXTERN_OVERLAY(MODULE_63);
@@ -34,7 +35,6 @@ extern void FUN_02002C14(void);
extern void FUN_02002C50(int, int);
extern struct SaveBlock2 * SaveBlock2_new(void);
extern void * FUN_02029EF8(struct SaveBlock2 *);
-extern void FUN_02020AFC(void);
extern int FUN_020337E8(int);
extern void FUN_02034188(int, int);
extern int FUN_020227FC(struct SaveBlock2 *);
@@ -75,7 +75,7 @@ THUMB_FUNC void NitroMain(void)
gBacklightTop.unk18 = -1;
gBacklightTop.unk20 = SaveBlock2_new();
InitSoundData(FUN_02029EF8(gBacklightTop.unk20), Sav2_PlayerData_GetOptionsAddr(gBacklightTop.unk20));
- FUN_02020AFC();
+ Init_Timer3();
if (FUN_020337E8(3) == 3)
FUN_02034188(3, 0);
if (FUN_020227FC(gBacklightTop.unk20) == 0)
diff --git a/arm9/src/map_header.c b/arm9/src/map_header.c
index 0a5b8987..644a590b 100644
--- a/arm9/src/map_header.c
+++ b/arm9/src/map_header.c
@@ -605,23 +605,23 @@ u32 MapNumberBoundsCheck(u32 mapno)
return mapno;
}
-u8 FUN_02034724(u32 mapno)
+u8 MapHeader_GetAreaDataBank(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unk0;
+ return sMapHeaders[mapno].area_data_bank;
}
-u8 FUN_02034738(u32 mapno)
+u8 MapHeader_GetField1(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
return sMapHeaders[mapno].unk1;
}
-u16 FUN_0203474C(u32 mapno)
+u16 MapHeader_GetMatrixId(u32 mapno)
{
u16 ret;
mapno = MapNumberBoundsCheck(mapno);
- ret = sMapHeaders[mapno].unk2;
+ ret = sMapHeaders[mapno].matrix_id;
// Spear Pillar
if (ret == 22 && gGameVersion == VERSION_PEARL)
ret = 23;
@@ -631,94 +631,94 @@ u16 FUN_0203474C(u32 mapno)
u16 MapHeader_GetMsgBank(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unk8;
+ return sMapHeaders[mapno].msg_bank;
}
-u16 MapHeader_GetScrSeqReleaseNo(u32 mapno)
+u16 MapHeader_GetScriptsBank(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unk4;
+ return sMapHeaders[mapno].scripts_bank;
}
-u16 FUN_0203479C(u32 mapno)
+u16 MapHeader_GetLevelScriptsBank(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unk6;
+ return sMapHeaders[mapno].level_scripts_bank;
}
-u16 FUN_020347B0(u32 mapno)
+u16 MapHeader_GetDayMusicId(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unkA;
+ return sMapHeaders[mapno].day_music_id;
}
-u16 FUN_020347C4(u32 mapno)
+u16 MapHeader_GetNightMusicId(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unkC;
+ return sMapHeaders[mapno].night_music_id;
}
-BOOL FUN_020347D8(u32 mapno)
+BOOL MapHeader_HasWildEncounters(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unkE != 0xFFFF;
+ return sMapHeaders[mapno].wild_encounter_bank != 0xFFFF;
}
-u16 FUN_020347FC(u32 mapno)
+u16 MapHeader_GetWildEncounterBank(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unkE;
+ return sMapHeaders[mapno].wild_encounter_bank;
}
-u16 FUN_02034810(u32 mapno)
+u16 MapHeader_GetEventsBank(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unk10;
+ return sMapHeaders[mapno].events_bank;
}
-u16 FUN_02034824(u32 mapno)
+u16 MapHeader_GetMapSec(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
return sMapHeaders[mapno].mapsec;
}
-u8 FUN_02034838(u32 mapno)
+u8 MapHeader_GetWeatherType(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unk14;
+ return sMapHeaders[mapno].weather_type;
}
-u8 FUN_0203484C(u32 mapno)
+u8 MapHeader_GetCameraType(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unk15;
+ return sMapHeaders[mapno].camera_type;
}
-u8 FUN_02034860(u32 mapno)
+u8 MapHeader_GetField17_0(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
return sMapHeaders[mapno].unk17_0;
}
-u8 FUN_0203487C(u32 mapno)
+u8 MapHeader_GetField17_6(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
return sMapHeaders[mapno].unk17_6;
}
-u8 FUN_02034898(u32 mapno)
+u8 MapHeader_IsFlyAllowed(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unk17_7;
+ return sMapHeaders[mapno].is_fly_allowed;
}
-u8 FUN_020348B4(u32 mapno)
+u8 MapHeader_IsBikeAllowed(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
- return sMapHeaders[mapno].unk17_4;
+ return sMapHeaders[mapno].is_bike_allowed;
}
-u8 FUN_020348D0(u32 mapno)
+u8 MapHeader_GetField16(u32 mapno)
{
mapno = MapNumberBoundsCheck(mapno);
return sMapHeaders[mapno].unk16;
@@ -726,36 +726,36 @@ u8 FUN_020348D0(u32 mapno)
BOOL FUN_020348E4(u32 mapno)
{
- if (!FUN_02034898(mapno))
+ if (!MapHeader_IsFlyAllowed(mapno))
return FALSE;
- if (FUN_020348D0(mapno) != 1)
+ if (MapHeader_GetField16(mapno) != 1)
return TRUE;
return FALSE;
}
-BOOL FUN_02034908(u32 mapno)
+BOOL MapHeader_MapIsOnOverworldMatrix(u32 mapno)
{
- return !FUN_0203474C(mapno);
+ return MapHeader_GetMatrixId(mapno) == 0;
}
BOOL FUN_0203491C(u32 mapno)
{
- return FUN_020348D0(mapno) == 5;
+ return MapHeader_GetField16(mapno) == 5;
}
BOOL FUN_02034930(u32 mapno)
{
- return FUN_020348D0(mapno) == 3;
+ return MapHeader_GetField16(mapno) == 3;
}
BOOL FUN_02034944(u32 mapno)
{
- return FUN_020348D0(mapno) == 4 || FUN_020348D0(mapno) == 5;
+ return MapHeader_GetField16(mapno) == 4 || MapHeader_GetField16(mapno) == 5;
}
BOOL FUN_02034964(u32 mapno)
{
- return FUN_020348D0(mapno) == 1 || FUN_020348D0(mapno) == 2;
+ return MapHeader_GetField16(mapno) == 1 || MapHeader_GetField16(mapno) == 2;
}
BOOL FUN_02034984(u32 mapno)
diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c
index 397f1f69..8520f2c1 100644
--- a/arm9/src/save_arrays.c
+++ b/arm9/src/save_arrays.c
@@ -14,10 +14,10 @@
#include "pokedex.h"
#include "seal.h"
#include "unk_020139D8.h"
+#include "unk_02024E64.h"
extern u32 FUN_0202AC20(void);
extern u32 FUN_02034D7C(void);
-extern u32 FUN_02024E64(void);
extern u32 FUN_02034D80(void);
extern u32 FUN_02025954(void);
extern u32 FUN_02023AC8(void);
@@ -39,7 +39,6 @@ extern u32 FUN_0202BE98(void);
extern u32 FUN_0202C0E0(void);
extern void FUN_0202AC28(void *);
extern void FUN_02034D98(void *);
-extern void FUN_02024E6C(void *);
extern void FUN_02034D88(void *);
extern void FUN_0202597C(void *);
extern void FUN_02023AD8(void *);
diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c
new file mode 100644
index 00000000..4ad17e51
--- /dev/null
+++ b/arm9/src/scrcmd.c
@@ -0,0 +1,1300 @@
+#include "scrcmd.h"
+#include "unk_0204639C.h"
+#include "main.h"
+#include "options.h"
+#include "player_data.h"
+#include "text.h"
+
+extern void *FUN_02039438(struct UnkSavStruct80* arg, u32 id);
+extern void *CreateScriptContext(struct UnkSavStruct80* arg, u16 id);
+extern u8 FUN_02058448(u32 param0);
+extern void FlagSet(struct UnkSavStruct80 *arg, u16 flag);
+extern void FlagClear(struct UnkSavStruct80 *arg, u16 flag);
+extern u8 FlagCheck(struct UnkSavStruct80 *arg, u16 flag);
+extern void TrainerFlagSet(struct UnkSavStruct80 *arg, u16 flag);
+extern void TrainerFlagClear(struct UnkSavStruct80 *arg, u16 flag);
+extern u8 TrainerFlagCheck(struct UnkSavStruct80 *arg, u16 flag);
+extern void MOD05_ShowMessageInField(struct ScriptContext *ctx, struct MsgData *msgData, u16 id);
+extern void MOD05_021E2BD0(struct ScriptContext *ctx, struct MsgData *msgData, u16 msgId, u32 param4, void *param5);
+extern void MOD05_021E2C58(struct ScriptContext *ctx, u16 typ, u16 id, u16 word1, s16 word2, u8 param5);
+extern struct ScrStrBufs *MOD06_02244210(struct SaveBlock2 *sav, u16 poke, u16 sex, u8 flag, u8 *unk);
+extern void MOD05_021E2CBC(struct ScriptContext *ctx, struct ScrStrBufs *str, u8 param2, u32 param3);
+extern void MOD05_021E2BB8(void *param0, struct ScriptContext *ctx);
+extern BOOL FUN_020546C8(u8 param0);
+extern u32 FUN_02058488(u32 param0);
+extern BOOL FUN_02030F40(void);
+extern void FUN_02055304(u32 param0, u32 param1);
+extern void FUN_02039460(struct UnkSavStruct80 *arg);
+extern void FUN_020545B8(u32 param0, u8 *param1, u32 param2);
+extern void FUN_02054608(u8 *param0, struct Options *options);
+extern void FUN_0200D0E0(u32 *param0, u32 param1);
+extern void FUN_02019178(u32 *param0);
+extern void FUN_020179E0(u32 param0, u32 param1, u32 param2, u16 val);
+extern u32 FUN_02058510(u32 param0, u32 param1);
+extern void MOD05_021E8128(u32 param0, u8 type, u16 map);
+extern void MOD05_021E8130(u32 param0, u32 param1);
+extern void MOD05_021E8158(struct UnkSavStruct80 *unk80);
+extern u32 MOD05_021E8140(u32 param0);
+extern BOOL MOD05_021E8148(u32 param0);
+extern u8 FUN_02054658(u32 param0, struct String *str, struct Options *opt, u32 param3);
+extern void MOD05_021E8144(u32 param0);
+extern void FUN_0200CB00(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5);
+extern u32 Std_CreateYesNoMenu(u32 param0, u8 **param1, u32 param2, u32 param3, u32 param4);
+extern u32 FUN_020021AC(u32 param0, u32 param1);
+extern u32 FUN_0200D858(u32 *param0, u32 param1);
+extern void FUN_0200DBFC(u32 param0);
+extern u32 MOD05_021E1BF8(struct UnkSavStruct80 *arg, u8 param1, u8 param2, u8 param3, u8 param4, u16 *param5, u32 param6, u32 *param7, struct MsgData *msgData);
+extern void MOD05_021E1C4C(u32 param0, u32 param1, u32 param2);
+extern void MOD05_021E1C54(u32 param0);
+extern u32 FUN_02052714(u32 param0);
+extern void MOD05_021E1ECC(u32 param0);
+extern u32 MOD05_021E1F34(struct UnkSavStruct80 *arg, u8 param1, u8 param2, u8 param3, u8 param4, u16 *param5, u32 param6, u32 *param7, struct MsgData *msgData);
+extern void MOD05_021E1F58(u32 param0, u8 param1, u8 param2, u8 param3);
+extern void MOD05_021E1F60(u32 param0);
+extern void MOD05_021E26CC(u32 param0, u8 param1);
+extern void MOD05_021E2B80(u32 param0, u8 param1);
+extern void MOD05_021E2B9C(u32 param0, u8 param1);
+
+extern u8 *UNK_020F34E0;
+
+static BOOL RunPauseTimer(struct ScriptContext *ctx);
+static u32 Compare(u16 a, u16 b);
+static BOOL FUN_02039CC8(struct ScriptContext *ctx);
+/*static*/ BOOL FUN_0203A2F0(struct ScriptContext *ctx);
+static BOOL FUN_0203A46C(struct ScriptContext *ctx);
+static BOOL FUN_0203A4AC(struct ScriptContext *ctx);
+static BOOL FUN_0203A4E0(struct ScriptContext *ctx);
+static BOOL FUN_0203A570(struct ScriptContext *ctx);
+static BOOL FUN_0203A6C8(struct ScriptContext *ctx);
+static BOOL FUN_0203A8A0(struct ScriptContext *ctx);
+static BOOL FUN_0203A94C(struct ScriptContext *ctx);
+static BOOL FUN_0203AA0C(struct ScriptContext *ctx);
+static BOOL FUN_0203AB00(struct ScriptContext *ctx);
+static BOOL FUN_0203AD2C(struct ScriptContext *ctx);
+static BOOL FUN_0203AD78(struct ScriptContext *ctx);
+
+extern u8 sScriptConditionTable[6][3];
+
+THUMB_FUNC BOOL ScrCmd_Nop(struct ScriptContext *ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Dummy(struct ScriptContext *ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_End(struct ScriptContext *ctx)
+{
+ StopScript(ctx);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Wait(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *arg = ctx->unk80;
+ u16 num = ScriptReadHalfword(ctx);
+ u16 wk = ScriptReadHalfword(ctx);
+ u16* VarPointer = GetVarPointer(arg, wk);
+ *VarPointer = num;
+ ctx->data[0] = wk;
+ SetupNativeScript(ctx, RunPauseTimer);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL RunPauseTimer(struct ScriptContext *ctx)
+{
+ u16* VarPointer = GetVarPointer(ctx->unk80, (u16)ctx->data[0]);
+ *VarPointer = (u16)(*VarPointer - 1);
+ return !(*VarPointer);
+}
+
+THUMB_FUNC BOOL ScrCmd_DebugWatch(struct ScriptContext *ctx)
+{
+ u16 wk = ScriptReadHalfword(ctx);
+ VarGet(ctx->unk80, wk);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_LoadByte(struct ScriptContext *ctx)
+{
+ u8 index = ScriptReadByte(ctx);
+ ctx->data[index] = ScriptReadByte(ctx);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_LoadWord(struct ScriptContext *ctx)
+{
+ u8 index = ScriptReadByte(ctx);
+ ctx->data[index] = ScriptReadWord(ctx);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_LoadByteFromAddr(struct ScriptContext *ctx)
+{
+ u8 index = ScriptReadByte(ctx);
+ ctx->data[index] = *(u8 *)ScriptReadWord(ctx);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_WriteByteToAddr(struct ScriptContext *ctx)
+{
+ u8* ptr = (u8*)ScriptReadWord(ctx);
+ *ptr = ScriptReadByte(ctx);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SetPtrByte(struct ScriptContext *ctx)
+{
+ u8* ptr = (u8*)ScriptReadWord(ctx);
+ *ptr = (u8)ctx->data[ScriptReadByte(ctx)];
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CopyLocal(struct ScriptContext *ctx)
+{
+ u8 index_store = ScriptReadByte(ctx);
+ u8 index_load = ScriptReadByte(ctx);
+ ctx->data[index_store] = ctx->data[index_load];
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CopyByte(struct ScriptContext *ctx)
+{
+ u8 *target = (u8 *)ScriptReadWord(ctx);
+ u8 *source = (u8 *)ScriptReadWord(ctx);
+ *target = *source;
+ return FALSE;
+}
+
+THUMB_FUNC static u32 Compare(u16 a, u16 b)
+{
+ if (a < b)
+ {
+ return 0;
+ }
+ else if (a == b)
+ {
+ return 1;
+ }
+ else
+ {
+ return 2;
+ }
+}
+
+THUMB_FUNC BOOL ScrCmd_CompareLocalToLocal(struct ScriptContext *ctx)
+{
+ u8 a = (u8)ctx->data[ScriptReadByte(ctx)];
+ u8 b = (u8)ctx->data[ScriptReadByte(ctx)];
+ ctx->comparisonResult = (u8)Compare(a, b);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CompareLocalToValue(struct ScriptContext *ctx)
+{
+ u8 a = (u8)ctx->data[ScriptReadByte(ctx)];
+ u8 b = ScriptReadByte(ctx);
+ ctx->comparisonResult = (u8)Compare(a, b);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CompareLocalToAddr(struct ScriptContext *ctx)
+{
+ u8 a = (u8)ctx->data[ScriptReadByte(ctx)];
+ u8 b = *(u8*)ScriptReadWord(ctx);
+ ctx->comparisonResult = (u8)Compare(a, b);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CompareAddrToLocal(struct ScriptContext *ctx)
+{
+ u8 a = *(u8*)ScriptReadWord(ctx);
+ u8 b = (u8)ctx->data[ScriptReadByte(ctx)];
+ ctx->comparisonResult = (u8)Compare(a, b);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CompareAddrToValue(struct ScriptContext *ctx)
+{
+ u8 a = *(u8*)ScriptReadWord(ctx);
+ u8 b = (u8)ScriptReadByte(ctx);
+ ctx->comparisonResult = (u8)Compare(a, b);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CompareAddrToAddr(struct ScriptContext *ctx)
+{
+ u8 a = *(u8*)ScriptReadWord(ctx);
+ u8 b = *(u8*)ScriptReadWord(ctx);
+ ctx->comparisonResult = (u8)Compare(a, b);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CompareVarToValue(struct ScriptContext *ctx)
+{
+ u16 a = *GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 b = ScriptReadHalfword(ctx);
+ ctx->comparisonResult = (u8)Compare(a, b);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CompareVarToVar(struct ScriptContext *ctx)
+{
+ u16 *a = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 *b = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ ctx->comparisonResult = (u8)Compare(*a, *b);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_RunScript(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u8 *unk1 = (u8 *)FUN_02039438(unk80, 0x7);
+ u32 **unk2 = (u32 **)FUN_02039438(unk80, 0xe);
+ u16 id = ScriptReadHalfword(ctx);
+
+ *unk2 = CreateScriptContext(unk80, id);
+ *unk1 = (u8)(*unk1 + 1);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_RunScriptWait(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u8 *unk1 = (u8 *)FUN_02039438(unk80, 0x5);
+ u8 *unk2 = (u8 *)FUN_02039438(unk80, 0x7);
+ u32 **unk3 = (u32 **)FUN_02039438(unk80, 0xe);
+
+ u16 id = ScriptReadHalfword(ctx);
+ *unk1 = 1;
+ *unk3 = CreateScriptContext(unk80, id);
+ *unk2 = (u8)(*unk2 + 1);
+
+ SetupNativeScript(ctx, FUN_02039CC8);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_02039CC8(struct ScriptContext *ctx)
+{
+ u8* unk = FUN_02039438(ctx->unk80, 0x5);
+
+ if (*unk == 0)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_RestartCurrentScript(struct ScriptContext *ctx)
+{
+ u8* unk = (u8 *)FUN_02039438(ctx->unk80, 0x5);
+
+ *unk = 0;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GoTo(struct ScriptContext *ctx)
+{
+ s32 offset = (s32)ScriptReadWord(ctx);
+ ScriptJump(ctx, ctx->scriptPtr + offset);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_ObjectGoTo(struct ScriptContext *ctx)
+{
+ u32* unk = FUN_02039438(ctx->unk80, 0xa);
+ u8 id = ScriptReadByte(ctx);
+ s32 offset = (s32)ScriptReadWord(ctx);
+ if (FUN_02058448(*unk) == id)
+ {
+ ScriptJump(ctx, ctx->scriptPtr + offset);
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_BgGoTo(struct ScriptContext *ctx)
+{
+ u32 bgId = FUN_02046534(ctx->unk74);
+ u8 id = ScriptReadByte(ctx);
+ s32 offset = (s32)ScriptReadWord(ctx);
+
+ if (bgId == id)
+ {
+ ScriptJump(ctx, ctx->scriptPtr + offset);
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_DirectionGoTo(struct ScriptContext *ctx)
+{
+ u32 *playerDirection = FUN_02039438(ctx->unk80, 0x9);
+ u8 dir = ScriptReadByte(ctx);
+ s32 offset = (s32)ScriptReadWord(ctx);
+
+ if (*playerDirection == dir)
+ {
+ ScriptJump(ctx, ctx->scriptPtr + offset);
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Call(struct ScriptContext *ctx)
+{
+ s32 offset = (s32)ScriptReadWord(ctx);
+ ScriptCall(ctx, ctx->scriptPtr + offset);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Return(struct ScriptContext *ctx)
+{
+ ScriptReturn(ctx);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GoToIf(struct ScriptContext *ctx)
+{
+ u8 compareType = ScriptReadByte(ctx);
+ s32 offset = (s32)ScriptReadWord(ctx);
+
+ if (sScriptConditionTable[compareType][ctx->comparisonResult] == TRUE)
+ {
+ ScriptJump(ctx, ctx->scriptPtr + offset);
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CallIf(struct ScriptContext *ctx)
+{
+ u8 compareType = ScriptReadByte(ctx);
+ s32 offset = (s32)ScriptReadWord(ctx);
+
+ if (sScriptConditionTable[compareType][ctx->comparisonResult] == TRUE)
+ {
+ ScriptCall(ctx, ctx->scriptPtr + offset);
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SetFlag(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 flag = ScriptReadHalfword(ctx);
+ FlagSet(unk80, flag);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_ClearFlag(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 flag = ScriptReadHalfword(ctx);
+ FlagClear(unk80, flag);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CheckFlag(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 flag = ScriptReadHalfword(ctx);
+ ctx->comparisonResult = FlagCheck(unk80, flag);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CheckFlagVar(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 *wk2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ *wk2 = FlagCheck(unk80, *wk1);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SetFlagVar(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 *wk = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ FlagSet(unk80, *wk);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SetTrainerFlag(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 flag = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ TrainerFlagSet(unk80, flag);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_ClearTrainerFlag(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 flag = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ TrainerFlagClear(unk80, flag);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CheckTrainerFlag(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 flag = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ ctx->comparisonResult = TrainerFlagCheck(unk80, flag);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_AddVar(struct ScriptContext *ctx)
+{
+ u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 wk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ *wk1 = (u16)(*wk1 + wk2);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SubVar(struct ScriptContext *ctx)
+{
+ u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 wk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ *wk1 = (u16)(*wk1 - wk2);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SetVar(struct ScriptContext *ctx)
+{
+ u16 *wk = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ *wk = ScriptReadHalfword(ctx);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CopyVar(struct ScriptContext *ctx)
+{
+ u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 *wk2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ *wk1 = *wk2;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_SetOrCopyVar(struct ScriptContext *ctx)
+{
+ u16 *wk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 wk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ *wk1 = wk2;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Message(struct ScriptContext *ctx)
+{
+ u8 id = ScriptReadByte(ctx);
+ MOD05_ShowMessageInField(ctx, ctx->msgData, id);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_MessageFrom(struct ScriptContext *ctx)
+{
+ u16 arc = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct MsgData *msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, arc, 32);
+ MOD05_ShowMessageInField(ctx, msgData, msg);
+ DestroyMsgData(msgData);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_MessageFrom2(struct ScriptContext *ctx)
+{
+ u16 arc = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct MsgData *msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, arc, 32);
+ MOD05_021E2BD0(ctx, msgData, msg, 1, NULL);
+ DestroyMsgData(msgData);
+ SetupNativeScript(ctx, FUN_0203A2F0);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01FC(struct ScriptContext *ctx)
+{
+ u16 typ = ScriptReadHalfword(ctx);
+ u16 id = ScriptReadHalfword(ctx);
+ u16 word1 = ScriptReadHalfword(ctx);
+ s16 word2 = (s16)ScriptReadHalfword(ctx);
+
+ MOD05_021E2C58(ctx, typ, id, word1, word2, 0xff);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01FD(struct ScriptContext *ctx)
+{
+ u16 typ = ScriptReadHalfword(ctx);
+ u16 id = ScriptReadHalfword(ctx);
+ u16 word1 = ScriptReadHalfword(ctx);
+ s16 word2 = (s16)ScriptReadHalfword(ctx);
+
+ MOD05_021E2C58(ctx, typ, id, word1, word2, 1);
+ SetupNativeScript(ctx, FUN_0203A2F0);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01FE(struct ScriptContext *ctx)
+{
+ u8 id = ScriptReadByte(ctx);
+
+ if (ctx->unk80->unkA8 == NULL)
+ {
+ return FALSE;
+ }
+
+ u16 *unkArr = ctx->unk80->unkA8->unk90[id].unk0;
+ if (unkArr[0] == 0xFFFF)
+ {
+ struct MsgData *msgdata = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 0x22b, 32);
+ MOD05_021E2BD0(ctx, msgdata, unkArr[1], 1, NULL);
+ DestroyMsgData(msgdata);
+ }
+ else
+ {
+ MOD05_021E2C58(ctx, unkArr[0], unkArr[1], unkArr[2], (s16)unkArr[3], 1);
+ }
+ SetupNativeScript(ctx, FUN_0203A2F0);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01FF(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u8 msg = ScriptReadByte(ctx);
+ u16 poke = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 sex = ScriptReadHalfword(ctx);
+ u8 flag = ScriptReadByte(ctx);
+ u8 unk = 0;
+
+ struct ScrStrBufs *str = MOD06_02244210(unk80->saveBlock2, poke, sex, flag, &unk);
+ MOD05_021E2CBC(ctx, str, (u8)(msg + unk), 1);
+ ScrStrBufs_delete(str);
+
+ SetupNativeScript(ctx, FUN_0203A2F0);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk026D(struct ScriptContext *ctx) //message unown font?
+{
+ struct UnkStruct_0203A288 myLocalStruct;
+ u16 msg = ScriptReadHalfword(ctx);
+
+ MOD05_021E2BB8(&myLocalStruct, ctx);
+ myLocalStruct.unk2 = 3;
+
+ MOD05_021E2BD0(ctx, ctx->msgData, msg, 0, &myLocalStruct);
+ SetupNativeScript(ctx, FUN_0203A2F0);
+
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk002C(struct ScriptContext *ctx)
+{
+ u8 msg = ScriptReadByte(ctx);
+ MOD05_021E2BD0(ctx, ctx->msgData, msg, 1, NULL);
+ SetupNativeScript(ctx, FUN_0203A2F0);
+ return TRUE;
+}
+
+THUMB_FUNC /*static*/ BOOL FUN_0203A2F0(struct ScriptContext *ctx)
+{
+ u8 *unk = (u8 *)FUN_02039438(ctx->unk80, 3);
+ return FUN_020546C8(*unk);
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk002D(struct ScriptContext *ctx)
+{
+ u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ MOD05_021E2BD0(ctx, ctx->msgData, (u8)msg, 1, NULL);
+ SetupNativeScript(ctx, FUN_0203A2F0);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk02C0(struct ScriptContext *ctx)
+{
+ struct UnkStruct_0203A288 myLocalStruct;
+ u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ MOD05_021E2BB8(&myLocalStruct, ctx);
+ myLocalStruct.unk1 = 1;
+
+ MOD05_021E2BD0(ctx, ctx->msgData, (u8)msg, 1, &myLocalStruct);
+ SetupNativeScript(ctx, FUN_0203A2F0);
+
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk002E(struct ScriptContext *ctx)
+{
+ u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ MOD05_021E2BD0(ctx, ctx->msgData, (u8)msg, 0, NULL);
+ SetupNativeScript(ctx, FUN_0203A2F0);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk020C(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 0xa);
+ u8 msg = (u8)FUN_02058488(*unk);
+ MOD05_021E2BD0(ctx, ctx->msgData, msg, 1, NULL);
+ SetupNativeScript(ctx, FUN_0203A2F0);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk002F(struct ScriptContext *ctx)
+{
+ u8 msg = ScriptReadByte(ctx);
+
+ if (!FUN_02030F40())
+ {
+ MOD05_021E2BD0(ctx, ctx->msgData, msg, 1, NULL);
+ }
+ else
+ {
+ struct UnkStruct_0203A288 myLocalStruct;
+ MOD05_021E2BB8(&myLocalStruct, ctx);
+ myLocalStruct.unk0 = 1;
+ myLocalStruct.unk1 = 1;
+ MOD05_021E2BD0(ctx, ctx->msgData, msg, 0, &myLocalStruct);
+ }
+
+ SetupNativeScript(ctx, FUN_0203A2F0);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_WaitButtonAB(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, FUN_0203A46C);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203A46C(struct ScriptContext *ctx)
+{
+#pragma unused(ctx)
+ if (gMain.unk48 & 0x3) // Mask (A | B) ?
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_WaitButtonABTime(struct ScriptContext *ctx)
+{
+ ctx->data[0] = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ SetupNativeScript(ctx, FUN_0203A4AC);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203A4AC(struct ScriptContext *ctx)
+{
+ if (gMain.unk48 & 0x3) // Mask (A | B) ?
+ {
+ return TRUE;
+ }
+ ctx->data[0] = ctx->data[0] - 1;
+
+ if (ctx->data[0] == 0)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_WaitButton(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, FUN_0203A4E0);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203A4E0(struct ScriptContext *ctx)
+{
+ if (gMain.unk48 & 3)
+ {
+ return TRUE;
+ }
+ else if (gMain.unk48 & 0x40)
+ {
+ FUN_02055304(ctx->unk80->unk38, 0);
+ }
+ else if (gMain.unk48 & 0x80)
+ {
+ FUN_02055304(ctx->unk80->unk38, 1);
+ }
+ else if (gMain.unk48 & 0x20)
+ {
+ FUN_02055304(ctx->unk80->unk38, 2);
+ }
+ else if (gMain.unk48 & 0x10)
+ {
+ FUN_02055304(ctx->unk80->unk38, 3);
+ }
+ else if (gMain.unk48 & 0x400)
+ {
+ FUN_02039460(ctx->unk80);
+ }
+ else
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0032(struct ScriptContext *ctx)
+{
+ SetupNativeScript(ctx, FUN_0203A570);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203A570(struct ScriptContext *ctx)
+{
+#pragma unused(ctx)
+ if (gMain.unk48 & 0x3)
+ {
+ return TRUE;
+ }
+ else if (gMain.unk48 & 0xf0)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0033(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u8 *unk = (u8 *)FUN_02039438(unk80, 6);
+ FUN_020545B8(unk80->unk08, FUN_02039438(unk80, 1), 3);
+ FUN_02054608(FUN_02039438(unk80, 1), Sav2_PlayerData_GetOptionsAddr(ctx->unk80->saveBlock2));
+ *unk = 1;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0034(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u32 *unk = FUN_02039438(unk80, 0x1); //windowID?
+ u8 *unk2 = FUN_02039438(unk80, 0x6);
+ FUN_0200D0E0(unk, 0); //clear window?
+ FUN_02019178(unk);
+ *unk2 = 0;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0035(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u32 *unk = FUN_02039438(unk80, 0x1); //windowID?
+ u8 *unk2 = FUN_02039438(unk80, 0x6);
+ FUN_02019178(unk);
+ *unk2 = 0;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_ScrollBg(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 *xval = FUN_02039438(unk80, 0x31);
+ u16 *xcnt = FUN_02039438(unk80, 0x2d);
+ u16 *xdir = FUN_02039438(unk80, 0x32);
+ u16 *yval = FUN_02039438(unk80, 0x33);
+ u16 *ycnt = FUN_02039438(unk80, 0x2e);
+ u16 *ydir = FUN_02039438(unk80, 0x34);
+
+ *xval = ScriptReadByte(ctx);
+ *xcnt = ScriptReadByte(ctx);
+ *xdir = ScriptReadByte(ctx);
+ *yval = ScriptReadByte(ctx);
+ *ycnt = ScriptReadByte(ctx);
+ *ydir = ScriptReadByte(ctx);
+
+ SetupNativeScript(ctx, FUN_0203A6C8);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203A6C8(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 *xval = FUN_02039438(unk80, 0x31);
+ u16 *xdir = FUN_02039438(unk80, 0x32);
+ u16 *yval = FUN_02039438(unk80, 0x33);
+ u16 *ydir = FUN_02039438(unk80, 0x34);
+ u16 *xcnt = FUN_02039438(unk80, 0x2d);
+ u16 *ycnt = FUN_02039438(unk80, 0x2e);
+
+ if (*xcnt == 0 && *ycnt == 0)
+ {
+ return TRUE;
+ }
+
+ if (*xval != 0)
+ {
+ if (*xdir == 0)
+ {
+ FUN_020179E0(unk80->unk08, 3, 1, *xval);
+ }
+ else
+ {
+ FUN_020179E0(unk80->unk08, 3, 2, *xval);
+ }
+ }
+
+ if (*yval != 0)
+ {
+ if (*ydir == 0)
+ {
+ FUN_020179E0(unk80->unk08, 3, 4, *yval);
+ }
+ else
+ {
+ FUN_020179E0(unk80->unk08, 3, 5, *yval);
+ }
+ }
+
+ if (*xcnt != 0)
+ {
+ *xcnt = (u16)(*xcnt - 1);
+ }
+
+ if (*ycnt != 0)
+ {
+ *ycnt = (u16)(*ycnt - 1);
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CreateMessageBox(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ struct String **unk1 = FUN_02039438(unk80, 0x11);
+ struct String **unk2 = FUN_02039438(unk80, 0x10);
+ struct ScrStrBufs **unk3 = FUN_02039438(unk80, 0x0f);
+ u8 typ, msg;
+ u16 wk, map;
+
+ msg = ScriptReadByte(ctx);
+ typ = ScriptReadByte(ctx);
+ map = ScriptReadHalfword(ctx);
+ wk = ScriptReadHalfword(ctx);
+
+ if (map == 0)
+ {
+ u32 *unk4 = FUN_02039438(unk80, 10);
+ map = (u16)FUN_02058510(*unk4, 0);
+ }
+
+ MOD05_021E8128(unk80->unk60, typ, map);
+ MOD05_021E8130(unk80->unk60, 1);
+ MOD05_021E8158(unk80);
+ ReadMsgDataIntoString(ctx->msgData, msg, *unk1);
+ StringExpandPlaceholders(*unk3, *unk2, *unk1);
+ AddTextPrinterParameterized(MOD05_021E8140(unk80->unk60), 1, (u16 *)*unk2, 0, 0, 0, NULL);
+
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0037(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u8 typ = ScriptReadByte(ctx);
+ u16 map = ScriptReadHalfword(ctx);
+
+ MOD05_021E8128(unk80->unk60, typ, map);
+ MOD05_021E8130(unk80->unk60, 1);
+
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0038(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u8 req = ScriptReadByte(ctx);
+ MOD05_021E8130(unk80->unk60, req);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0039(struct ScriptContext *ctx)
+{
+ if (MOD05_021E8148(ctx->unk80->unk60) == TRUE)
+ {
+ return FALSE;
+ }
+
+ SetupNativeScript(ctx, FUN_0203A8A0);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203A8A0(struct ScriptContext *ctx)
+{
+ if (MOD05_021E8148(ctx->unk80->unk60) == TRUE)
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk003A(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u8 *unk1 = FUN_02039438(unk80, 3);
+ struct String **unk2 = FUN_02039438(unk80, 17);
+ struct String **unk3 = FUN_02039438(unk80, 16);
+ struct ScrStrBufs **unk4 = FUN_02039438(unk80, 15);
+
+ u8 msg = ScriptReadByte(ctx);
+ u16 wk = ScriptReadHalfword(ctx);
+
+ ReadMsgDataIntoString(ctx->msgData, msg, *unk2);
+ StringExpandPlaceholders(*unk4, *unk3, *unk2);
+
+ *unk1 = FUN_02054658(MOD05_021E8140(unk80->unk60), *unk3, Sav2_PlayerData_GetOptionsAddr(ctx->unk80->saveBlock2), 1);
+ ctx->data[0] = wk;
+ SetupNativeScript(ctx, FUN_0203A94C);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203A94C(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u8 *unk1 = FUN_02039438(unk80, 3);
+ u16 *varPtr = GetVarPointer(unk80, (u16)ctx->data[0]);
+ MOD05_021E8144(unk80->unk60);
+
+ u32 tmp = 0xFFFF;
+ if (FUN_020546C8(*unk1) == TRUE)
+ {
+ *varPtr = 2;
+ return TRUE;
+ }
+
+ if (gMain.unk48 & 0x40)
+ {
+ tmp = 0;
+ }
+ else if (gMain.unk48 & 0x80)
+ {
+ tmp = 1;
+ }
+ else if (gMain.unk48 & 0x20)
+ {
+ tmp = 2;
+ }
+ else if (gMain.unk48 & 0x10)
+ {
+ tmp = 3;
+ }
+
+ if (tmp != 0xFFFF)
+ {
+ FUN_0201BD7C(*unk1);
+ FUN_02055304(ctx->unk80->unk38, tmp);
+ *varPtr = 0;
+ return TRUE;
+ }
+ else
+ {
+ if (gMain.unk48 & 0x400)
+ {
+ FUN_0201BD7C(*unk1);
+ *varPtr = 1;
+ return TRUE;
+ }
+ return FALSE;
+ }
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk003B(struct ScriptContext *ctx)
+{
+ ctx->data[0] = ScriptReadHalfword(ctx);
+
+ SetupNativeScript(ctx, FUN_0203AA0C);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203AA0C(struct ScriptContext *ctx)
+{
+ u16 *unk = GetVarPointer(ctx->unk80, (u16)ctx->data[0]);
+
+ u32 tmp = 0xFFFF;
+ if (gMain.unk48 & 0x3)
+ {
+ *unk = 0;
+ return TRUE;
+ }
+ else if (gMain.unk48 & 0x40)
+ {
+ tmp = 0;
+ }
+ else if (gMain.unk48 & 0x80)
+ {
+ tmp = 1;
+ }
+ else if (gMain.unk48 & 0x20)
+ {
+ tmp = 2;
+ }
+ else if (gMain.unk48 & 0x10)
+ {
+ tmp = 3;
+ }
+
+ if (tmp != 0xFFFF)
+ {
+ FUN_02055304(ctx->unk80->unk38, tmp);
+ *unk = 0;
+ return TRUE;
+ }
+ else
+ {
+ if (gMain.unk48 & 0x400)
+ {
+ *unk = 1;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+}
+
+THUMB_FUNC BOOL ScrCmd_Menu(struct ScriptContext *ctx)
+{
+ FUN_02039460(ctx->unk80);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_YesNoMenu(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u32 *unk = FUN_02039438(unk80, 2);
+ u16 wk = ScriptReadHalfword(ctx);
+ FUN_0200CB00(unk80->unk08, 3, 985, 11, 0, 4);
+ *unk = Std_CreateYesNoMenu(unk80->unk08, &UNK_020F34E0, 985, 11, 4);
+ ctx->data[0] = wk;
+ SetupNativeScript(ctx, FUN_0203AB00);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203AB00(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u32 *unk = FUN_02039438(unk80, 2);
+ u16 *ptr = GetVarPointer(unk80, (u16)ctx->data[0]);
+ u32 unk2 = FUN_020021AC(*unk, 4);
+
+ if (unk2 == -1)
+ {
+ return FALSE;
+ }
+
+ if (unk2 == 0)
+ {
+ *ptr = 0;
+ }
+ else
+ {
+ *ptr = 1;
+ }
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_ShowSaveClock(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 1);
+ u32 *unk2 = FUN_02039438(ctx->unk80, 18);
+ *unk2 = FUN_0200D858(unk, 994);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_HideSaveClock(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 18);
+ FUN_0200DBFC(*unk);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0040(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u32 *unk = FUN_02039438(unk80, 0);
+ u32 *unk2 = FUN_02039438(unk80, 15);
+ u8 unk3 = ScriptReadByte(ctx);
+ u8 unk4 = ScriptReadByte(ctx);
+ u8 unk5 = ScriptReadByte(ctx);
+ u8 unk6 = ScriptReadByte(ctx);
+ u16 unk7 = ScriptReadHalfword(ctx);
+ u16 *ptr = GetVarPointer(unk80, unk7);
+ u32 *unk8 = FUN_02039438(ctx->unk80, 1);
+ *unk = MOD05_021E1BF8(unk80, unk3, unk4, unk5, unk6, ptr, *unk2, unk8, NULL);
+ ctx->data[0] = unk7;
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0041(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u32 *unk = FUN_02039438(unk80, 0);
+ u32 *unk2 = FUN_02039438(unk80, 15);
+ u8 unk3 = ScriptReadByte(ctx);
+ u8 unk4 = ScriptReadByte(ctx);
+ u8 unk5 = ScriptReadByte(ctx);
+ u8 unk6 = ScriptReadByte(ctx);
+ u16 unk7 = ScriptReadHalfword(ctx);
+ u16 *ptr = GetVarPointer(unk80, unk7);
+ u32 *unk8 = FUN_02039438(ctx->unk80, 1);
+ *unk = MOD05_021E1BF8(unk80, unk3, unk4, unk5, unk6, ptr, *unk2, unk8, ctx->msgData);
+ ctx->data[0] = unk7;
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0042(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 0);
+ u8 unk2 = ScriptReadByte(ctx);
+ u8 unk3 = ScriptReadByte(ctx);
+ MOD05_021E1C4C(*unk, unk2, unk3);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk029D(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u32 *unk = FUN_02039438(unk80, 0);
+ u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unk3 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ MOD05_021E1C4C(*unk, unk2, unk3);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0043(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 0);
+ MOD05_021E1C54(*unk);
+ SetupNativeScript(ctx, FUN_0203AD2C);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203AD2C(struct ScriptContext *ctx)
+{
+ u16 *varPtr = GetVarPointer(ctx->unk80, (u16)ctx->data[0]);
+ if (*varPtr == 0xEEEE)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk02B9(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 0);
+ MOD05_021E1C54(*unk);
+ SetupNativeScript(ctx, FUN_0203AD78);
+ return TRUE;
+}
+
+THUMB_FUNC static BOOL FUN_0203AD78(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u16 *varPtr = GetVarPointer(unk80, (u16)ctx->data[0]);
+ u32 *unk = FUN_02039438(unk80, 0);
+
+ if (*varPtr == 0xEEEE)
+ {
+ if (FUN_02052714(unk80->unk78))
+ {
+ *varPtr = 8;
+ MOD05_021E1ECC(*unk);
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0044(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u32 *unk = FUN_02039438(unk80, 0);
+ u32 *unk2 = FUN_02039438(unk80, 15);
+ u8 unk3 = ScriptReadByte(ctx);
+ u8 unk4 = ScriptReadByte(ctx);
+ u8 unk5 = ScriptReadByte(ctx);
+ u8 unk6 = ScriptReadByte(ctx);
+
+ u16 halfWord = ScriptReadHalfword(ctx);
+ u16 *varPtr = GetVarPointer(unk80, halfWord);
+ u32 *unk7 = FUN_02039438(ctx->unk80, 1);
+ *unk = MOD05_021E1F34(unk80, unk3, unk4, unk5, unk6, varPtr, *unk2, unk7, NULL);
+ ctx->data[0] = halfWord;
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0045(struct ScriptContext *ctx)
+{
+ struct UnkSavStruct80 *unk80 = ctx->unk80;
+ u32 *unk = FUN_02039438(unk80, 0);
+ u32 *unk2 = FUN_02039438(unk80, 15);
+ u8 unk3 = ScriptReadByte(ctx);
+ u8 unk4 = ScriptReadByte(ctx);
+ u8 unk5 = ScriptReadByte(ctx);
+ u8 unk6 = ScriptReadByte(ctx);
+
+ u16 halfWord = ScriptReadHalfword(ctx);
+ u16 *varPtr = GetVarPointer(unk80, halfWord);
+ u32 *unk7 = FUN_02039438(ctx->unk80, 1);
+ *unk = MOD05_021E1F34(unk80, unk3, unk4, unk5, unk6, varPtr, *unk2, unk7, ctx->msgData);
+ ctx->data[0] = halfWord;
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0046(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 0);
+ u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unk3 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unk4 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ MOD05_021E1F58(*unk, (u8)unk2, (u8)unk3, (u8)unk4);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0047(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 0);
+ MOD05_021E1F60(*unk);
+ SetupNativeScript(ctx, FUN_0203AD2C);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0048(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 0);
+ MOD05_021E26CC(*unk, ScriptReadByte(ctx));
+ SetupNativeScript(ctx, FUN_0203AD2C);
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk02CF(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 0);
+ MOD05_021E2B80(*unk, ScriptReadByte(ctx));
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk02D0(struct ScriptContext *ctx)
+{
+ u32 *unk = FUN_02039438(ctx->unk80, 0);
+ MOD05_021E2B9C(*unk, ScriptReadByte(ctx));
+ return TRUE;
+}
diff --git a/arm9/src/scrcmd_11.c b/arm9/src/scrcmd_11.c
new file mode 100644
index 00000000..8553adfa
--- /dev/null
+++ b/arm9/src/scrcmd_11.c
@@ -0,0 +1,120 @@
+#include "scrcmd.h"
+#include "unk_02029FB0.h"
+
+extern void* FUN_02039438(struct UnkSavStruct80*, int idx);
+
+extern void FUN_0202A0E8(struct UnkStruct_02029FB0*, int);
+extern void FUN_0202A170(struct UnkStruct_02029FB0*, int);
+extern u8 FUN_0204B5FC(struct UnkSavStruct80*, void*);
+extern void FUN_0204B57C(struct UnkSavStruct80*, void*, int);
+extern u16 FUN_0204B63C(struct UnkSavStruct80*, void*);
+extern u16 FUN_0204B660(struct UnkSavStruct80*, void*);
+extern u16 FUN_0204B684(struct UnkSavStruct80*, void*);
+extern u16 FUN_0204B6A4(struct UnkSavStruct80*, void*);
+extern void FUN_0204B9CC(struct UnkSavStruct80*);
+extern void FUN_0204B5A8(struct UnkSavStruct80*, void*, u16);
+extern void FUN_0204B9A0(struct UnkSavStruct80*);
+extern void FUN_0204B4FC(struct UnkSavStruct80*, void*);
+
+THUMB_FUNC BOOL ScrCmd_Unk017D(struct ScriptContext* ctx)
+{
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ void** unk = FUN_02039438(ctx->unk80, 10);
+
+ *ret_ptr = FUN_0204B5FC(ctx->unk80, *unk);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk017E(struct ScriptContext* ctx)
+{
+ void** unk = FUN_02039438(ctx->unk80, 10);
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr = FUN_0204B63C(ctx->unk80, *unk);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk017F(struct ScriptContext* ctx)
+{
+ void** unk = FUN_02039438(ctx->unk80, 10);
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr = FUN_0204B660(ctx->unk80, *unk);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0180(struct ScriptContext* ctx)
+{
+ void** unk = FUN_02039438(ctx->unk80, 10);
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr = FUN_0204B684(ctx->unk80, *unk);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0181(struct ScriptContext* ctx)
+{
+ void** unk = FUN_02039438(ctx->unk80, 10);
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr = FUN_0204B6A4(ctx->unk80, *unk);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0182(struct ScriptContext* ctx)
+{
+ void** unk = FUN_02039438(ctx->unk80, 10);
+ u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ FUN_0204B57C(ctx->unk80, *unk, unk2);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0183(struct ScriptContext* ctx)
+{
+ void** unk = FUN_02039438(ctx->unk80, 10);
+ struct UnkStruct_02029FB0* unk2 = FUN_02029FC8(ctx->unk80->saveBlock2);
+ u16 unk3 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ FUN_0204B5A8(ctx->unk80, *unk, unk3);
+ FUN_0202A0E8(unk2, 3);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0184(struct ScriptContext* ctx)
+{
+ u16 unk = ScriptReadHalfword(ctx);
+
+ switch (unk)
+ {
+ case 0:
+ FUN_0204B9A0(ctx->unk80);
+ break;
+ case 1:
+ FUN_0204B9CC(ctx->unk80);
+ break;
+ default:
+ GF_ASSERT(FALSE);
+ break;
+ }
+
+ return TRUE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0185(struct ScriptContext* ctx)
+{
+ struct UnkStruct_02029FB0* unk = FUN_02029FC8(ctx->unk80->saveBlock2);
+ void** unk2 = FUN_02039438(ctx->unk80, 10);
+
+ FUN_0204B4FC(ctx->unk80, *unk2);
+ FUN_0202A170(unk, 0);
+
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_13.c b/arm9/src/scrcmd_13.c
new file mode 100644
index 00000000..3b21facc
--- /dev/null
+++ b/arm9/src/scrcmd_13.c
@@ -0,0 +1,111 @@
+#include "scrcmd.h"
+#include "event_data.h"
+#include "heap.h"
+#include "pokedex.h"
+#include "pokemon_storage_system.h"
+#include "unk_0202C144.h"
+
+extern struct PCStorage* GetStoragePCPointer(struct SaveBlock2* sav2);
+extern void* FUN_02022528(struct SaveBlock2* sav2);
+extern void FUN_0202BEDC(struct Pokemon* pokemon);
+extern void FUN_0202BFD8(void* a0, s32 a1, struct Pokemon* pokemon);
+extern u16 FUN_0202C000(struct Pokemon* pokemon);
+extern void FUN_0204B9EC(struct UnkSavStruct80*);
+extern u32 FUN_0204BA1C(struct UnkSavStruct80*);
+extern u16 FUN_0204BAC4(struct UnkSavStruct80*);
+extern u16 FUN_0204BAD4(struct UnkSavStruct80*);
+extern u16 FUN_0204BAE4(struct UnkSavStruct80*);
+extern void FUN_0205F224(struct ScriptState* state);
+extern void FUN_0205F234(struct ScriptState* state);
+extern void FUN_0208089C(struct Pokemon* pokemon, struct PlayerData* player, u32 a2, u32 a3, u32 heap_id);
+
+THUMB_FUNC BOOL ScrCmd_Unk0253(struct ScriptContext* ctx)
+{
+ struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2);
+ u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ if (unk == 0)
+ {
+ FUN_0205F224(state);
+ FUN_0204B9EC(ctx->unk80);
+ }
+ else if (unk == 1)
+ {
+ FUN_0205F234(state);
+ FUN_0204BA1C(ctx->unk80);
+ }
+ else
+ {
+ GF_ASSERT(FALSE);
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0254(struct ScriptContext* ctx)
+{
+ void* unk = FUN_02022528(ctx->unk80->saveBlock2);
+ struct Pokemon* pokemon = AllocMonZeroed(32);
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ u16 eggs = FUN_0202C000(unk);
+ if (eggs == 6) {
+ *ret_ptr = 1;
+ } else {
+ *ret_ptr = 0;
+ }
+
+ FreeToHeap(pokemon);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0255(struct ScriptContext* ctx)
+{
+ void* unk = FUN_02022528(ctx->unk80->saveBlock2);
+ struct PCStorage* pc = GetStoragePCPointer(ctx->unk80->saveBlock2);
+ struct Pokemon* pokemon = AllocMonZeroed(32);
+ struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2);
+ struct Pokedex* pokedex = Sav2_Pokedex_get(ctx->unk80->saveBlock2); // unused
+
+ for (s32 i = 0; i < PARTY_SIZE; i++)
+ {
+ FUN_0202BFD8(unk, i, pokemon);
+ FUN_0208089C(pokemon, player, 2, 0, 32);
+
+ struct BoxPokemon* box_mon = FUN_020690E4(pokemon);
+ GF_ASSERT(PCStorage_PlaceMonInFirstEmptySlotInAnyBox(pc, box_mon));
+
+ FUN_0202C144(ctx->unk80->saveBlock2, pokemon);
+ }
+
+ FreeToHeap(pokemon);
+ FUN_0202BEDC(unk);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0256(struct ScriptContext* ctx)
+{
+ u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ switch (unk)
+ {
+ case 0:
+ *ret_ptr = FUN_0204BAC4(ctx->unk80);
+ break;
+ case 1:
+ *ret_ptr = FUN_0204BAD4(ctx->unk80);
+ break;
+ case 2:
+ *ret_ptr = FUN_0204BAE4(ctx->unk80);
+ break;
+ case 3:
+ // For some reason, mwcc puts the FUN_0204BAD4 call before the FUN_0204BAC4 and FUN_0204BAE4 calls.
+ *ret_ptr = (u16)(FUN_0204BAC4(ctx->unk80) + FUN_0204BAE4(ctx->unk80) + FUN_0204BAD4(ctx->unk80));
+ break;
+ }
+
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_18_c.c b/arm9/src/scrcmd_18_c.c
index b8bbbcdd..d4437c5f 100644
--- a/arm9/src/scrcmd_18_c.c
+++ b/arm9/src/scrcmd_18_c.c
@@ -6,19 +6,17 @@
#include "map_header.h"
#include "scrcmd.h"
-extern u16 VarGet(struct UnkStruct_0204639C* arg, u16 wk);
-extern u16 *GetVarPointer(struct UnkStruct_0204639C* arg, u16);
extern BOOL GiveMon(u32 heap_id, struct SaveBlock2 * sav2, u16 species, u8 level, u16 item, u32 mapSec, u8 encounterType);
-THUMB_FUNC BOOL ScrCmd_givemon(struct ScriptContext* ctx)
+THUMB_FUNC BOOL ScrCmd_GiveMon(struct ScriptContext* ctx)
{
- u32 mapSec = FUN_02034824(*(ctx->unk80->unk1C));
- struct UnkStruct_0204639C *savePtr = ctx->unk80;
+ u32 mapSec = MapHeader_GetMapSec(*(ctx->unk80->mapId));
+ struct UnkSavStruct80 *savePtr = ctx->unk80;
u16 species = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
u16 level = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
u16 * varPtr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
- struct PlayerParty * party = SavArray_PlayerParty_get((struct SaveBlock2 *) savePtr->unkC);
- *varPtr = (u16)GiveMon(11, (struct SaveBlock2 *) savePtr->unkC, species, (u8)level, item, mapSec, 12);
+ struct PlayerParty * party = SavArray_PlayerParty_get(savePtr->saveBlock2);
+ *varPtr = (u16)GiveMon(11, savePtr->saveBlock2, species, (u8)level, item, mapSec, 12);
return FALSE;
}
diff --git a/arm9/src/scrcmd_19.c b/arm9/src/scrcmd_19.c
new file mode 100644
index 00000000..b0a201b7
--- /dev/null
+++ b/arm9/src/scrcmd_19.c
@@ -0,0 +1,86 @@
+#include "scrcmd.h"
+#include "bag.h"
+
+const u16 UNK_020F450C[7][2] = {
+ { 0x0067, 0x008E },
+ { 0x0065, 0x008A },
+ { 0x0066, 0x008C },
+ { 0x0063, 0x0159 },
+ { 0x0064, 0x015B },
+ { 0x0068, 0x019A },
+ { 0x0069, 0x0198 },
+};
+
+THUMB_FUNC BOOL ScrCmd_Unk01F1(struct ScriptContext * ctx)
+{
+ struct UnkSavStruct80 * sav_ptr = ctx->unk80;
+
+ u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ u8 i;
+ u16 total;
+ for (i = 0, total = 0; i < 7; i++)
+ {
+ total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), UNK_020F450C[i][0], 4);
+ }
+
+ *ret_ptr = total;
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01F4(struct ScriptContext * ctx)
+{
+ u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr = 0;
+
+ for (u16 i = 0; i < 7; i++)
+ {
+ if (UNK_020F450C[i][0] == unk)
+ {
+ *ret_ptr = UNK_020F450C[i][1];
+ break;
+ }
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01F5(struct ScriptContext * ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u16 * ret_ptr1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 * ret_ptr2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 needed_amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr1 = 0;
+ *ret_ptr2 = 0;
+
+ u8 i = 0;
+ u16 total = 0;
+ for (; i < 7; i++)
+ {
+ total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), UNK_020F450C[i][0], 4);
+ if (total >= needed_amount)
+ {
+ *ret_ptr1 = UNK_020F450C[i][0];
+ *ret_ptr2 = i;
+ break;
+ }
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01F2(struct ScriptContext * ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01F3(struct ScriptContext * ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_20.c b/arm9/src/scrcmd_20.c
new file mode 100644
index 00000000..882126a0
--- /dev/null
+++ b/arm9/src/scrcmd_20.c
@@ -0,0 +1,35 @@
+#include "scrcmd.h"
+
+const u16 UNK_020F452A[19][2] = {
+ { 0x00FB, 0x03E8 },
+ { 0x0109, 0x03E8 },
+ { 0x0114, 0x03E8 },
+ { 0x0115, 0x03E8 },
+ { 0x01A1, 0x07D0 },
+ { 0x0181, 0x07D0 },
+ { 0x0192, 0x0FA0 },
+ { 0x0167, 0x0FA0 },
+ { 0x0173, 0x1770 },
+ { 0x01A0, 0x1770 },
+ { 0x0151, 0x1770 },
+ { 0x0162, 0x1F40 },
+ { 0x015C, 0x1F40 },
+ { 0x016A, 0x2710 },
+ { 0x015F, 0x2710 },
+ { 0x0154, 0x2710 },
+ { 0x0164, 0x2710 },
+ { 0x0191, 0x3A98 },
+ { 0x018B, 0x4E20 },
+};
+
+THUMB_FUNC BOOL ScrCmd_Unk02A6(struct ScriptContext * ctx)
+{
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 * ret_ptr1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 * ret_ptr2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr1 = UNK_020F452A[idx][0];
+ *ret_ptr2 = UNK_020F452A[idx][1];
+
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_23.c b/arm9/src/scrcmd_23.c
new file mode 100644
index 00000000..0c9907a5
--- /dev/null
+++ b/arm9/src/scrcmd_23.c
@@ -0,0 +1,169 @@
+#include "scrcmd.h"
+
+extern BOOL FUN_02025D6C(void*, u16);
+extern BOOL FUN_02025D94(void*, u16);
+extern BOOL FUN_02026298(void*, u16);
+extern void* FUN_02026CC4(struct SaveBlock2* sav2);
+extern BOOL FUN_020260C4(void*, u16, u16);
+
+THUMB_FUNC BOOL ScrCmd_Unk0083(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ void* unk2 = FUN_02026CC4(sav2);
+
+ *ret_ptr = (u16)FUN_02025D6C(unk2, unk1);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0084(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0085(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ void* unk2 = FUN_02026CC4(sav2);
+
+ *ret_ptr = (u16)FUN_02025D94(unk2, unk1);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0086(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0087(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ void* unk2 = FUN_02026CC4(sav2);
+
+ *ret_ptr = (u16)FUN_02026298(unk2, unk1);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0088(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0089(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk008A(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk008B(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ void* unused3 = FUN_02026CC4(sav2);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk008C(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk008D(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk008E(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk008F(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ void* unk3 = FUN_02026CC4(sav2);
+
+ *ret_ptr = (u16)FUN_020260C4(unk3, unk1, unk2);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0090(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0091(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0092(struct ScriptContext* ctx)
+{
+ u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_25.c b/arm9/src/scrcmd_25.c
new file mode 100644
index 00000000..5124ad9a
--- /dev/null
+++ b/arm9/src/scrcmd_25.c
@@ -0,0 +1,27 @@
+#include "scrcmd.h"
+
+THUMB_FUNC BOOL ScrCmd_Unk023F(struct ScriptContext * ctx)
+{
+#pragma unused(ctx)
+ GF_ASSERT(FALSE);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0240(struct ScriptContext * ctx)
+{
+#pragma unused(ctx)
+ GF_ASSERT(FALSE);
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0241(struct ScriptContext * ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0242(struct ScriptContext * ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_coins.c b/arm9/src/scrcmd_coins.c
new file mode 100644
index 00000000..59638c83
--- /dev/null
+++ b/arm9/src/scrcmd_coins.c
@@ -0,0 +1,136 @@
+#include "scrcmd.h"
+#include "coins.h"
+
+extern void * FUN_02039438(struct UnkSavStruct80* arg, u8 idx);
+
+extern u32 MOD05_021E2950(struct UnkSavStruct80* arg, u8, u8);
+extern MOD05_021E29B4();
+extern MOD05_021E29C8();
+
+THUMB_FUNC BOOL ScrCmd_Unk0075(struct ScriptContext * ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ u32 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u32 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 ** unk_ret_ptr = FUN_02039438(sav_ptr, 0x26);
+
+ u32 unk3 = MOD05_021E2950(ctx->unk80, (u8)unk1, (u8)unk2);
+ *unk_ret_ptr = (u16 *)unk3;
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0076(struct ScriptContext * ctx)
+{
+ u16 ** unk = FUN_02039438(ctx->unk80, 0x26);
+ MOD05_021E29B4(*unk);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0077(struct ScriptContext * ctx)
+{
+ u16 ** unk = FUN_02039438(ctx->unk80, 0x26);
+ MOD05_021E29C8(ctx->unk80, *unk);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetCoins(struct ScriptContext * ctx)
+{
+ u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2);
+ u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr = CheckCoins(coins_ptr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GiveCoins(struct ScriptContext * ctx)
+{
+ u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2);
+ u16 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ GiveCoins(coins_ptr, amount);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_TakeCoinsImmediate(struct ScriptContext * ctx)
+{
+ u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2);
+ u16 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ TakeCoins(coins_ptr, amount);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_TakeCoinsAddress(struct ScriptContext * ctx)
+{
+ u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2);
+ u16 * amount = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ TakeCoins(coins_ptr, *amount);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_HasEnoughCoinsImmediate(struct ScriptContext * ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr);
+ // Created, but discarded.
+ struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2);
+ u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(sav_ptr->saveBlock2);
+ u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ u32 amount = ScriptReadWord(ctx);
+ u16 coins = CheckCoins(coins_ptr);
+
+ if (coins < amount)
+ {
+ *ret_ptr = 0;
+ }
+ else
+ {
+ *ret_ptr = 1;
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_HasEnoughCoinsAddress(struct ScriptContext * ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr);
+ // Created, but discarded
+ struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2);
+ u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(sav_ptr->saveBlock2);
+ u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ u16 amount = *(u16*)GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 coins = CheckCoins(coins_ptr);
+
+ if (coins < amount)
+ {
+ *ret_ptr = 0;
+ }
+ else
+ {
+ *ret_ptr = 1;
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CanGiveCoins(struct ScriptContext * ctx)
+{
+ u16 * coins_ptr = Sav2_PlayerData_GetCoinsAddr(ctx->unk80->saveBlock2);
+ u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *ret_ptr = (u16)CanGiveCoins(coins_ptr, amount);
+
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_daycare.c b/arm9/src/scrcmd_daycare.c
new file mode 100644
index 00000000..4e2f925e
--- /dev/null
+++ b/arm9/src/scrcmd_daycare.c
@@ -0,0 +1,192 @@
+#include "scrcmd.h"
+#include "daycare.h"
+#include "party.h"
+#include "script_buffers.h"
+
+extern void* FUN_02039438(struct UnkSavStruct80*, int idx);
+
+extern void MOD05_021EC57C(struct PlayerParty* party, u8 idx, struct DayCare* daycare, struct SaveBlock2* sav2);
+extern u16 MOD05_021EC71C(struct PlayerParty* party, struct ScrStrBufs* mgr, struct DayCare* daycare, u8 idx);
+extern u16 MOD05_021EC854(struct DayCare* daycare, u8 idx, struct ScrStrBufs* mgr);
+extern u8 MOD05_021EC864(struct DayCare* daycare, int idx, struct ScrStrBufs* mgr);
+extern void MOD05_021ECD64(struct DayCare* daycare);
+extern void MOD05_DayCare_GiveEggToPlayer(struct DayCare* daycare, struct PlayerParty* party, struct PlayerData* player);
+extern void MOD05_021ED4E0(struct DayCare* daycare, struct ScrStrBufs* mgr);
+extern void MOD05_021ED52C(struct DayCare* daycare, u8 idx1, u8 idx2, u8 idx3, u8 idx4, struct ScrStrBufs* mgr);
+extern u16 MOD05_021ED5C4(struct PlayerParty* party, int idx, struct ScrStrBufs* mgr);
+extern u16 MOD05_021ED5EC(struct DayCare* daycare);
+extern u32 MOD05_021ED644(struct DayCare* daycare);
+
+THUMB_FUNC BOOL ScrCmd_Unk016D(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ struct DayCare* daycare = Sav2_DayCare_get(sav2);
+
+ MOD05_021ED4E0(daycare, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk016E(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct SaveBlock2* sav2 = sav_ptr->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = MOD05_021ED5EC(daycare);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A8(struct ScriptContext* ctx)
+{
+ struct DayCare* daycare = SavArray_get(ctx->unk80->saveBlock2, 8);
+ MOD05_021ECD64(daycare);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A9(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct DayCare* daycare = SavArray_get(sav_ptr->saveBlock2, 8);
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80);
+ struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(sav2);
+
+ MOD05_DayCare_GiveEggToPlayer(daycare, party, player);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A4(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ struct SaveBlock2* sav2 = sav_ptr->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+
+ *ret_ptr = MOD05_021EC71C(party, *mgr, daycare, (u8)idx);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01AA(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ struct SaveBlock2* sav2 = sav_ptr->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = MOD05_021EC854(daycare, (u8)idx, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01AE(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = MOD05_021EC864(daycare, idx, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01AF(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u16 unused = ScriptReadHalfword(ctx);
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+
+ *ret_ptr = MOD05_021ED5C4(party, idx, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01B0(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct SaveBlock2* sav2 = sav_ptr->saveBlock2;
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ MOD05_021EC57C(party, (u8)idx, daycare, sav2);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01BC(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u16 idx1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx3 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx4 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = Sav2_DayCare_get(sav2);
+
+ MOD05_021ED52C(daycare, (u8)idx1, (u8)idx2, (u8)idx3, (u8)idx4, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01BE(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = (u16)MOD05_021ED644(daycare);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01BF(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = (u16)Sav2_DayCare_GetEggPID(daycare);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A5(struct ScriptContext* ctx)
+{
+ u16* unused = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A6(struct ScriptContext* ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A7(struct ScriptContext* ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01AD(struct ScriptContext* ctx)
+{
+ u16* unused = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_items.c b/arm9/src/scrcmd_items.c
new file mode 100644
index 00000000..0184d02e
--- /dev/null
+++ b/arm9/src/scrcmd_items.c
@@ -0,0 +1,96 @@
+#include "scrcmd.h"
+#include "bag.h"
+
+extern BOOL FUN_02054CB0(u16 item_id);
+
+THUMB_FUNC BOOL ScrCmd_GiveItem(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+
+ u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* item_was_added = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2);
+
+ *item_was_added = (u16)Bag_AddItem(bag, item_id, quantity, 4);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_TakeItem(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+
+ u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* item_was_taken = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2);
+
+ *item_was_taken = (u16)Bag_TakeItem(bag, item_id, quantity, 4);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_HasSpaceForItem(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+
+ u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* has_space = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2);
+
+ *has_space = (u16)Bag_HasSpaceForItem(bag, item_id, quantity, 4);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_HasItem(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+
+ u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 quantity = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* has_item = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct Bag* bag = Sav2_Bag_get(sav_ptr->saveBlock2);
+
+ *has_item = (u16)Bag_HasItem(bag, item_id, quantity, 11);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_ItemIdIsTMOrHM(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+
+ u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* is_tm_or_hm = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *is_tm_or_hm = (u16)FUN_02054CB0(item_id);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetItemPocketId(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+
+ u16 item_id = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* pocket = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ *pocket = (u16)GetItemAttr(item_id, ITEMATTR_POCKET, 11);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0081(struct ScriptContext* ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0082(struct ScriptContext* ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_money.c b/arm9/src/scrcmd_money.c
new file mode 100644
index 00000000..d2254844
--- /dev/null
+++ b/arm9/src/scrcmd_money.c
@@ -0,0 +1,111 @@
+#include "scrcmd.h"
+#include "player_data.h"
+
+extern void * FUN_02039438(struct UnkSavStruct80* arg, u8 idx);
+
+extern u32 MOD05_021E27E8(struct UnkSavStruct80* arg, u8, u8);
+extern void MOD05_021E288C(u32 *);
+extern void MOD05_021E28A0(struct UnkSavStruct80* arg, u32 *);
+
+THUMB_FUNC BOOL ScrCmd_GiveMoney(struct ScriptContext * ctx)
+{
+ struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80);
+ struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2);
+
+ u32 amount = ScriptReadWord(ctx);
+ PlayerProfile_AddMoney(player, amount);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_TakeMoneyImmediate(struct ScriptContext * ctx)
+{
+ struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80);
+ struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2);
+
+ u32 amount = ScriptReadWord(ctx);
+ PlayerProfile_SubMoney(player, amount);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_TakeMoneyAddress(struct ScriptContext * ctx)
+{
+ struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80);
+ struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2);
+
+ u32 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ PlayerProfile_SubMoney(player, amount);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_HasEnoughMoneyImmediate(struct ScriptContext * ctx)
+{
+ struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80);
+ struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2);
+ u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ u32 amount = ScriptReadWord(ctx);
+ u32 money = PlayerProfile_GetMoney(player);
+
+ if (money < amount)
+ {
+ *ret_ptr = 0;
+ }
+ else
+ {
+ *ret_ptr = 1;
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_HasEnoughMoneyAddress(struct ScriptContext * ctx)
+{
+ struct SaveBlock2 * sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80);
+ struct PlayerData * player = Sav2_PlayerData_GetProfileAddr(sav2);
+ u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+
+ u32 amount = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u32 money = PlayerProfile_GetMoney(player);
+
+ if (money < amount)
+ {
+ *ret_ptr = 0;
+ }
+ else
+ {
+ *ret_ptr = 1;
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0072(struct ScriptContext * ctx)
+{
+ struct UnkSavStruct80 * sav_ptr = ctx->unk80;
+ u32 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u32 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u32 *unk_ret_ptr = FUN_02039438(sav_ptr, 0x27);
+
+ *unk_ret_ptr = MOD05_021E27E8(ctx->unk80, (u8)unk1, (u8)unk2);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0073(struct ScriptContext * ctx)
+{
+ u32 ** unk = FUN_02039438(ctx->unk80, 0x27);
+ MOD05_021E288C(*unk);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0074(struct ScriptContext * ctx)
+{
+ u32 ** unk = FUN_02039438(ctx->unk80, 0x27);
+ MOD05_021E28A0(ctx->unk80, *unk);
+
+ return FALSE;
+}
diff --git a/arm9/src/scrcmd_names.c b/arm9/src/scrcmd_names.c
new file mode 100644
index 00000000..cf721328
--- /dev/null
+++ b/arm9/src/scrcmd_names.c
@@ -0,0 +1,540 @@
+#include "scrcmd.h"
+#include "event_data.h"
+#include "itemtool.h"
+#include "nutdata.h"
+#include "party.h"
+#include "player_data.h"
+#include "script_buffers.h"
+#include "unk_02024E64.h"
+#include "unk_02064E4C.h"
+#include "unk_0207FC5C.h"
+
+extern void* FUN_02039438(struct UnkSavStruct80* sav_ptr, int idx);
+
+extern u32 FUN_020536D0(u32 gender, u32 avatar, u32 a2);
+extern u32 FUN_0205F388(struct ScriptState* state);
+extern u32 FUN_0205F398(struct ScriptState* state);
+extern struct PCStorage* GetStoragePCPointer(struct SaveBlock2* sav2);
+extern u32 FUN_0205F3C0(struct ScriptState* state);
+extern u32 FUN_02054C14(u32 number);
+
+THUMB_FUNC BOOL ScrCmd_GetPlayerName(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr);
+ struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(sav2);
+
+ BufferPlayersName(*mgr, idx, player);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetRivalName(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+
+ BufferRivalsName(*mgr, idx, sav_ptr->saveBlock2);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetFriendName(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+
+ BufferFriendsName(*mgr, idx, sav_ptr->saveBlock2);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00D0(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* mon = GetPartyMonByIndex(party, mon_idx);
+
+ BufferBoxMonSpeciesName(*mgr, idx, &mon->box);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetItemName(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferItemName(*mgr, idx, item);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPocketName(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 pocket = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferPocketName(*mgr, idx, pocket);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetTMHMMoveName(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 tmhm = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 move = TMHMGetMove(tmhm);
+
+ BufferMoveName(*mgr, idx, move);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetMoveName(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 move = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferMoveName(*mgr, idx, move);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00D5(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u32 digits = FUN_02054C14(unk);
+
+ BufferIntegerAsString(*mgr, idx, unk, digits, 1, TRUE);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0280(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u8 unk2 = ScriptReadByte(ctx);
+ u8 digits = ScriptReadByte(ctx);
+ if (unk2 == 0)
+ {
+ digits = (u8)FUN_02054C14(unk);
+ }
+
+ BufferIntegerAsString(*mgr, idx, unk, digits, unk2, TRUE);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00D6(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* pokemon = GetPartyMonByIndex(party, mon_idx);
+
+ BufferBoxMonNickname(*mgr, idx, &pokemon->box);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0251(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct PCStorage* pc = GetStoragePCPointer(sav_ptr->saveBlock2);
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 box_mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ s32 box_no = box_mon_idx / 30;
+ s32 slot_no = box_mon_idx % 30;
+ struct BoxPokemon* box_mon = PCStorage_GetMonByIndexPair(pc, box_no, slot_no);
+
+ BufferBoxMonNickname(*mgr, idx, box_mon);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPoketchAppName(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 app = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferPoketchAppName(*mgr, idx, app);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetTrainerClassName(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 trainer_class = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferTrainerClassName(*mgr, idx, trainer_class);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00D9(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(sav_ptr);
+ struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(sav2);
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u32 gender = PlayerProfile_GetTrainerGender(player);
+ u32 avatar = PlayerProfile_GetAvatar(player);
+ u32 trainer_class = FUN_020536D0(gender, avatar, 2);
+
+ BufferTrainerClassNameWithArticle(*mgr, idx, trainer_class);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00DA(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 msg_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unk1 = ScriptReadHalfword(ctx);
+ u8 unk2 = ScriptReadByte(ctx);
+ struct String* str = FUN_02040AE4(msg_no, 4);
+
+ BufferString(*mgr, idx, str, unk1, unk2, 2);
+ String_dtor(str);
+
+ return FALSE;
+}
+
+THUMB_FUNC struct String* FUN_02040AE4(u32 msg_no, u32 heap_id)
+{
+ struct MsgData* msg_data = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 362, heap_id);
+ struct String* ret = NewString_ReadMsgData(msg_data, msg_no);
+ DestroyMsgData(msg_data);
+
+ return ret;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00DB(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2);
+ u32 msg_no = FUN_0205F388(state);
+ struct String* str = FUN_02040AE4(msg_no, 4);
+
+ BufferString(*mgr, idx, str, 0, 1, 2);
+ String_dtor(str);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00DC(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2);
+ u32 msg_no = FUN_0205F398(state);
+ struct String* str = FUN_02040AE4(msg_no, 4);
+
+ BufferString(*mgr, idx, str, 0, 1, 2);
+ String_dtor(str);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00DD(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2);
+ u32 msg_no = FUN_0205F3C0(state);
+ struct String* str = FUN_02040AE4(msg_no, 4);
+
+ BufferString(*mgr, idx, str, 0, 1, 2);
+ String_dtor(str);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetDecorationName(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 decoration = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferDecorationName(*mgr, idx, decoration);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetUndergroundTrapName(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 underground_trap = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferUndergroundTrapName(*mgr, idx, underground_trap);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetUndergroundItemName(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 underground_item = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferUndergroundItemName(*mgr, idx, underground_item);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk00E2(struct ScriptContext* ctx)
+{
+ struct String* str = String_ctor(22, 4);
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 map_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ FUN_02064E60(map_no, 4, str);
+ BufferString(*mgr, idx, str, 0, 1, 2);
+ String_dtor(str);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk017B(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 berry = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct String* nut_name = GetNutName((u16)(berry - FIRST_BERRY_IDX), 32);
+
+ BufferString(*mgr, idx, nut_name, 0, unk < 2, 2);
+ String_dtor(nut_name);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetNatureName(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 nature = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferNatureName(*mgr, idx, nature);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetFashionName(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 fashion = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferFashionName(*mgr, idx, fashion);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0272(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ struct String* str = String_ctor(11, 11);
+ struct UnkStruct_02024E64* unk = FUN_02024EB4(ctx->unk80->saveBlock2);
+ u16* unk_buffer = FUN_02024F0C(unk);
+
+ CopyU16ArrayToString(str, unk_buffer);
+ BufferString(*mgr, idx, str, 0, 0, gGameLanguage);
+ String_dtor(str);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetPokemonMoveName(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 mon_move_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct Pokemon* pokemon = GetPartyMonByIndex(party, mon_idx);
+ u16 move = (u16)GetMonData(pokemon, MON_DATA_MOVE1 + mon_move_idx, NULL);
+
+ BufferMoveName(*mgr, idx, move);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk0232(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u8 unk = (u8)VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 ribbon = (u16)FUN_0207FC5C(unk, 3);
+
+ BufferRibbonNameOrDesc(*mgr, idx, ribbon);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetSealName(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 seal = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferSealName(*mgr, idx, (u16)(seal - 1));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetItemNameWithIndefArticle(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferItemNameWithIndefArticle(*mgr, idx, item);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetItemNamePlural(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 item = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferItemNamePlural(*mgr, idx, item);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetDecorationNameWithArticle(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 decoration = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferDecorationNameWithArticle(*mgr, idx, decoration);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetUndergroundTrapNameWithArticle(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 underground_trap = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferUndergroundTrapNameWithArticle(*mgr, idx, underground_trap);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetUndergroundItemNameWithArticle(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 underground_item = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferUndergroundItemNameWithArticle(*mgr, idx, underground_item);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk02C9(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 species = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 unused1 = ScriptReadHalfword(ctx);
+ u8 unused2 = ScriptReadByte(ctx);
+
+ BufferSpeciesNameWithArticle(*mgr, idx, species);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk02CA(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2);
+ u32 species = FUN_0205F3C0(state);
+
+ BufferSpeciesNameWithArticle(*mgr, idx, species);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetFashionNameWithArticle(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 fashion = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferFashionNameWithArticle(*mgr, idx, fashion);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk02CC(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 trainer_class = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferTrainerClassNameWithArticle(*mgr, idx, trainer_class);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_GetSealNamePlural(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+ u16 seal = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+
+ BufferSealNamePlural(*mgr, idx, (u16)(seal - 1));
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_CapitalizeFirstChar(struct ScriptContext* ctx)
+{
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u8 idx = ScriptReadByte(ctx);
+
+ ScrStrBufs_UpperFirstChar(*mgr, idx);
+
+ return FALSE;
+}
diff --git a/arm9/src/script.c b/arm9/src/script.c
index a5a5a6e4..2fa80058 100644
--- a/arm9/src/script.c
+++ b/arm9/src/script.c
@@ -17,7 +17,7 @@ THUMB_FUNC void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, u32
for (i = 0; i < NELEMS(ctx->stack); i++)
ctx->stack[i] = NULL;
- ctx->unk74 = 0;
+ ctx->unk74 = NULL;
}
THUMB_FUNC u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr)
@@ -27,7 +27,7 @@ THUMB_FUNC u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr)
return 1;
}
-THUMB_FUNC void SetupNativeScript(struct ScriptContext *ctx, u8 (*ptr)(struct ScriptContext *))
+THUMB_FUNC void SetupNativeScript(struct ScriptContext *ctx, BOOL (*ptr)(struct ScriptContext *))
{
ctx->mode = 2;
ctx->nativePtr = ptr;
@@ -39,9 +39,9 @@ THUMB_FUNC void StopScript(struct ScriptContext *ctx)
ctx->scriptPtr = 0;
}
-THUMB_FUNC void FUN_02038B6C(struct ScriptContext *ctx, s32 r1)
+THUMB_FUNC void FUN_02038B6C(struct ScriptContext *ctx, struct UnkStruct_0204639C *r1)
{
- ctx->unk74 = (u32)r1;
+ ctx->unk74 = r1;
}
THUMB_FUNC u8 RunScriptCommand(struct ScriptContext *ctx)
diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c
index 431f63b4..e9a55051 100644
--- a/arm9/src/script_buffers.c
+++ b/arm9/src/script_buffers.c
@@ -11,11 +11,10 @@
#include "unk_0201B8B8.h"
#include "trainer_data.h"
#include "script_buffers.h"
+#include "unk_02024E64.h"
#pragma thumb on
-extern void * FUN_02024EC0(struct SaveBlock2 * sav2);
-extern u16 * FUN_02024EE8(void *);
extern u32 GetCityNamesMsgdataIdByCountry(u32);
extern void GetECWordIntoStringByIndex(u32 a0, struct String * a1);
extern void StringCat_HandleTrainerName(struct String * dest, const struct String * src);
@@ -131,7 +130,7 @@ void BufferPlayersName(struct ScrStrBufs * mgr, u32 idx, struct PlayerData * dat
void BufferRivalsName(struct ScrStrBufs * mgr, u32 idx, struct SaveBlock2 * sav2)
{
- u16 * name = FUN_02024EE8(FUN_02024EC0(sav2));
+ u16 * name = GetRivalNamePtr(FUN_02024EC0(sav2));
CopyU16ArrayToString(mgr->tmpbuf, name);
SetStringAsPlaceholder(mgr, idx, mgr->tmpbuf, NULL);
}
diff --git a/arm9/src/text.c b/arm9/src/text.c
index 6207d913..aadb84c0 100644
--- a/arm9/src/text.c
+++ b/arm9/src/text.c
@@ -416,93 +416,7 @@ THUMB_FUNC void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadow
*(current++) = (shadow12) | temp;
}
#else
-THUMB_FUNC void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor) //TODO use asm preprocessor
-{
- asm {
- // push {r3-r7, lr}
- sub sp, #0x30
- ldr r3, =UNK_021C570C
- mov r5, #0x0
- str r5, [sp, #0x20]
- str r0, [sp, #0x24]
- str r2, [sp, #0x28]
- str r1, [sp, #0x2c]
- strh r1, [r3, #0x6]
- strh r0, [r3, #0x2]
- add r0, sp, #0x20
- strh r2, [r3, #0x4]
- str r5, [sp, #0x14]
- str r0, [sp, #0x8]
- mov r12, r0
- mov lr, r0
- str r0, [sp, #0x18]
- _0201C07E:
- mov r0, #0x0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x18]
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x8]
- ldr r0, [r0, #0x0]
- str r0, [sp, #0x1c]
- _0201C08C:
- mov r0, #0x0
- str r0, [sp, #0xc]
- mov r0, lr
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x4]
- ldr r0, [r0, #0x0]
- lsl r7, r0, #0x4
- _0201C09A:
- ldr r0, [sp, #0x0]
- mov r3, #0x0
- ldr r0, [r0, #0x0]
- mov r4, r12
- lsl r6, r0, #0x8
- _0201C0A4:
- ldr r0, [r4, #0x0]
- add r1, r7, #0x0
- lsl r0, r0, #0xc
- orr r0, r6
- orr r1, r0
- ldr r0, [sp, #0x1c]
- add r3, r3, #0x1
- add r2, r0, #0x0
- orr r2, r1
- lsl r1, r5, #0x1
- ldr r0, =UNK_021C5734
- add r5, r5, #0x1
- add r4, r4, #0x4
- strh r2, [r0, r1]
- cmp r3, #0x4
- blt _0201C0A4
- ldr r0, [sp, #0x0]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- cmp r0, #0x4
- blt _0201C09A
- ldr r0, [sp, #0x4]
- add r0, r0, #0x4
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x10]
- add r0, r0, #0x1
- str r0, [sp, #0x10]
- cmp r0, #0x4
- blt _0201C08C
- ldr r0, [sp, #0x8]
- add r0, r0, #0x4
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x14]
- add r0, r0, #0x1
- str r0, [sp, #0x14]
- cmp r0, #0x4
- blt _0201C07E
- add sp, #0x30
- // pop {r3-r7, pc}
- }
-}
+GLOBAL_ASM("asm/nonmatchings/GenerateFontHalfRowLookupTable.s")
#endif
THUMB_FUNC void DecompressGlyphTile(const u16 *src, u16 *dst)
diff --git a/arm9/src/timer3.c b/arm9/src/timer3.c
new file mode 100644
index 00000000..1799fd24
--- /dev/null
+++ b/arm9/src/timer3.c
@@ -0,0 +1,66 @@
+#include "timer3.h"
+
+struct Timer3Data timer3_data;
+
+
+THUMB_FUNC void Init_Timer3()
+{
+ timer3_data.Timer3Counter = 0;
+ timer3_data.NeedReset = FALSE;
+
+ reg_OS_TM3CNT_H = 0;
+ reg_OS_TM3CNT_L = 0;
+ reg_OS_TM3CNT_H = 0xc1; // start timer3 with f/64 and irq enable
+
+ OS_SetIrqFunction(0x40, &CountUpTimer3);
+ OS_EnableIrqMask(0x40); // irq on timer3 overflow
+}
+
+
+THUMB_FUNC void CountUpTimer3()
+{
+ timer3_data.Timer3Counter++;
+
+ if (timer3_data.NeedReset)
+ {
+ reg_OS_TM3CNT_H = 0;
+ reg_OS_TM3CNT_L = 0;
+ reg_OS_TM3CNT_H = 0xc1;
+ timer3_data.NeedReset = FALSE;
+ }
+
+ *(vu32 *)HW_INTR_CHECK_BUF |= 0x40;
+
+ OS_SetIrqFunction(0x40, &CountUpTimer3);
+}
+
+THUMB_FUNC u64 internal_GetTimer3Count()
+{
+ OSIntrMode intr_mode = OS_DisableInterrupts();
+
+ vu16 timer3 = reg_OS_TM3CNT_L;
+ vu64 timer3_counter = timer3_data.Timer3Counter & 0x0000ffffffffffff;
+
+ if (reg_OS_IF & 0x40 && !(timer3 & 0x8000))
+ {
+ timer3_counter++;
+ }
+
+ OS_RestoreInterrupts(intr_mode);
+ return (timer3_counter << 16) | timer3;
+}
+
+THUMB_FUNC u64 GetTimer3Count()
+{
+ return internal_GetTimer3Count();
+}
+
+THUMB_FUNC u64 Timer3CountToMilliSeconds(u64 count)
+{
+ return (count *64) / 33514;
+}
+
+THUMB_FUNC u64 Timer3CountToSeconds(u64 count)
+{
+ return (count *64) / HW_SYSTEM_CLOCK;
+}
diff --git a/arm9/src/trainer_data.c b/arm9/src/trainer_data.c
index 7af4b2ce..f161b302 100644
--- a/arm9/src/trainer_data.c
+++ b/arm9/src/trainer_data.c
@@ -6,11 +6,10 @@
#include "proto.h"
#include "msgdata.h"
#include "constants/trainer_classes.h"
+#include "unk_02024E64.h"
#pragma thumb on
-extern void * FUN_02024EC0(struct SaveBlock2 *);
-extern u16 * FUN_02024EE8(void *);
// Loads all battle opponents, including multi-battle partner if exists.
void EnemyTrainerSet_Init(struct BattleSetupStruct * enemies, struct SaveBlock2 * sav2, u32 heap_id)
@@ -23,7 +22,7 @@ void EnemyTrainerSet_Init(struct BattleSetupStruct * enemies, struct SaveBlock2
// FIXME: String formatting in files/msgdata/msg/narc_0559.txt is abnormal.
msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 559, heap_id);
- rivalName = FUN_02024EE8(FUN_02024EC0(sav2));
+ rivalName = GetRivalNamePtr(FUN_02024EC0(sav2));
for (i = 0; i < 4; i++)
{
if (enemies->trainer_idxs[i] != 0)
diff --git a/arm9/src/unk_02015E30.c b/arm9/src/unk_02015E30.c
new file mode 100644
index 00000000..8be466fb
--- /dev/null
+++ b/arm9/src/unk_02015E30.c
@@ -0,0 +1,35 @@
+
+#include "unk_02015E30.h"
+
+struct UnkStruct_02015E30 UNK_021C4898;
+
+THUMB_FUNC void FUN_02015E30()
+{
+ UNK_021C4898.unk00 = 0;
+}
+
+THUMB_FUNC void FUN_02015E3C(struct IGT *igt)
+{
+ struct UnkStruct_02015E30 *unk1 = &UNK_021C4898;
+ UNK_021C4898.unk00 = 1;
+ UNK_021C4898.unk10 = 0;
+ UNK_021C4898.unk14 = 0;
+ UNK_021C4898.unk08 = 0;
+ UNK_021C4898.unk04 = igt;
+
+ UNK_021C4898.unk18 = GetTimer3Count();
+}
+
+THUMB_FUNC void FUN_02015E60()
+{
+ if (UNK_021C4898.unk00 != 0)
+ {
+ u64 res = Timer3CountToSeconds(GetTimer3Count() - UNK_021C4898.unk18);
+
+ if (UNK_021C4898.unk08 < res)
+ {
+ AddIGTSeconds(UNK_021C4898.unk04, (u32)(res - UNK_021C4898.unk08));
+ UNK_021C4898.unk08 = res;
+ }
+ }
+}
diff --git a/arm9/src/unk_02024E64.c b/arm9/src/unk_02024E64.c
new file mode 100644
index 00000000..d8682531
--- /dev/null
+++ b/arm9/src/unk_02024E64.c
@@ -0,0 +1,62 @@
+#include "unk_02024E64.h"
+
+extern void FUN_020250A4(void *param0);
+extern void FUN_02025484(void *param0);
+
+THUMB_FUNC u32 FUN_02024E64()
+{
+ return sizeof(struct UnkStruct_02024E64);
+}
+
+THUMB_FUNC void FUN_02024E6C(struct UnkStruct_02024E64 *param0)
+{
+ MIi_CpuClearFast(0, param0, sizeof(struct UnkStruct_02024E64));
+
+ FUN_020250A4(param0->unk0);
+
+ FUN_02025484(param0->unk700);
+
+ MIi_CpuClear16(0xFFFF, param0->rival_name_buf, sizeof(param0->rival_name_buf) / sizeof(u16));
+ MIi_CpuClear16(0xFFFF, param0->unk734, sizeof(param0->unk734) / sizeof(u16));
+}
+
+THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024EB4(struct SaveBlock2 *sav2)
+{
+ return SavArray_get(sav2, 0xa);
+}
+
+THUMB_FUNC void *FUN_02024EC0(struct SaveBlock2 *sav2)
+{
+ return FUN_02022634(sav2, 0xa);
+}
+
+THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024ECC(struct SaveBlock2 *sav2)
+{
+ return SavArray_get(sav2, 0xa);
+}
+
+THUMB_FUNC void *FUN_02024ED8(struct SaveBlock2 *sav2)
+{
+ struct UnkStruct_02024E64 *res = SavArray_get(sav2, 0xa);
+ return res->unk700;
+}
+
+THUMB_FUNC u16 *GetRivalNamePtr(struct UnkStruct_02024E64 *unk)
+{
+ return unk->rival_name_buf;
+}
+
+THUMB_FUNC void RivalsNameToU16Array(struct UnkStruct_02024E64 *unk, struct String *str)
+{
+ CopyStringToU16Array(str, unk->rival_name_buf, sizeof(unk->rival_name_buf) / sizeof(u16));
+}
+
+THUMB_FUNC u16 *FUN_02024F0C(struct UnkStruct_02024E64 *unk)
+{
+ return unk->unk734;
+}
+
+THUMB_FUNC void FUN_02024F18(struct UnkStruct_02024E64 *unk, struct String *str)
+{
+ CopyStringToU16Array(str, unk->unk734, sizeof(unk->unk734) / sizeof(u16));
+}
diff --git a/arm9/src/unk_02025484.c b/arm9/src/unk_02025484.c
new file mode 100644
index 00000000..733ac23a
--- /dev/null
+++ b/arm9/src/unk_02025484.c
@@ -0,0 +1,27 @@
+#include "global.h"
+#include "MI_memory.h"
+#include "error_handling.h"
+#include "unk_02025484.h"
+
+THUMB_FUNC void FUN_02025484(struct unk_2025484 *r0, u32 r1)
+{
+ MI_CpuFill8(r0, 0, sizeof(struct unk_2025484));
+}
+
+THUMB_FUNC u32 *FUN_02025490(struct unk_2025484 *r0, u32 r1)
+{
+ FUN_02025484(r0, r1);
+ r0->unk0 = r1;
+ return &r0->unk4;
+}
+
+THUMB_FUNC u32 *FUN_020254A0(struct unk_2025484 *r0, u32 r1)
+{
+ GF_ASSERT(r0->unk0 == r1);
+ return &r0->unk4;
+}
+
+THUMB_FUNC u32 FUN_020254B4(struct unk_2025484 *r0)
+{
+ return r0->unk0;
+}
diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c
new file mode 100644
index 00000000..23a7de85
--- /dev/null
+++ b/arm9/src/unk_0202F150.c
@@ -0,0 +1,2478 @@
+#include "unk_0202F150.h"
+struct
+{
+ u8 unk00;
+ struct UnkStruct0202F150 *unk04;
+} UNK_021C59F4;
+
+vu8 UNK_02105D58 = 4;
+vu8 UNK_02105D59 = 4;
+
+extern int FUN_02033534();
+extern u32 FUN_0202D858(u16 param0);
+extern void FUN_02031480(u32 param0);
+extern void FUN_0202D7D8(u8 *param0, u32 param1, struct UnkStruct0202F150_sub1 *param2);
+extern u32 FUN_0200CA60(void (*param0)(), u32 param1, u32 param2);
+extern void FUN_0202D394(struct UnkStruct0202F150_sub1 *param0, u8 *param1, u32 param2);
+extern void FUN_0202D804(u8 *param0);
+extern u32 FUN_0202E5F8(u32 param0, u32 param1, u32 param2);
+extern void FUN_0202D330(void (*param0)(int));
+extern u32 FUN_0202E66C(u32 param0, u32 param1);
+extern void MOD04_021D83C0();
+extern u32 FUN_0202E784();
+extern void FUN_020314D0();
+extern void FUN_0202DBA4();
+extern void FUN_0200CAB4(u32 param0);
+extern void FUN_0202D824(u8 *param0);
+extern u32 FUN_0202E9E8(u32 param0);
+extern u32 FUN_0202F03C();
+extern u32 FUN_0202EE24();
+extern void FUN_02031CDC();
+extern void FUN_0202EBD0(u16 param0);
+extern void FUN_0202ED70(u32 param0);
+extern void FUN_020335F4(u32 param0);
+extern void FUN_020315A4();
+extern void FUN_0202E538();
+extern u32 MOD04_021D78FC(void *param0, u32 param1);
+extern u32 FUN_0202CBD4();
+extern void FUN_0202D4BC(void *param0);
+extern int FUN_0202D400(struct UnkStruct0202F150_sub1 *param0, void *param1, u32 param2);
+extern u32 FUN_0202D0D0(u8 *param0, u16 param1, u32 param2, void (*param3)(u32));
+extern u32 MOD04_021D79B4(void *param0, u32 param1);
+extern void FUN_0202D3A4(struct UnkStruct0202F150_sub1 *param0, u8 *param1, u32 param2, u32 param3);
+extern int FUN_0202D498(void *param0);
+extern u16 FUN_0202CB8C();
+extern s64 _ll_mul(s64, s64);
+extern u32 FUN_0202D4E4(u8 *param0);
+extern u32 FUN_0202D760(u8 *param0, int *param1, u32 param2);
+extern u32 FUN_0202D684(u8 *param0, u32 param1, u8 *param2, u32 param3, u32 param4, u32 param5);
+extern void FUN_0202D934(u32 param0, u32 param1, u32 param2, void *param3);
+extern int FUN_0202D478(struct UnkStruct0202F150_sub1 *param0);
+extern u32 FUN_0202D41C(struct UnkStruct0202F150_sub1 *param0);
+extern s16 FUN_0202D9A0(u32 param0);
+extern u32 FUN_0202DA04(u32 param0);
+extern void *FUN_0202DA40(u32 param0, u32 param1, u16 param2);
+extern u32 MOD04_021D8018();
+extern u32 FUN_0202EDF8();
+extern u16 FUN_0202D19C();
+extern void FUN_020334E8(u32 param0, u32 param1);
+extern u32 FUN_0202EE60();
+extern u32 FUN_0202D884(u16 param0);
+extern void FUN_0202F05C();
+extern void GF_RTC_CopyDateTime(RTCDate *, RTCTime *);
+extern void FUN_0202D830(u8 *param0, u32 param1);
+extern u32 MOD04_021D8624();
+
+THUMB_FUNC u32 FUN_0202F150(u32 param0, u32 param1)
+{
+ u32 r4 = 0;
+ UNK_021C59F4.unk00 = 0;
+ if (param0 != 0)
+ {
+ u32 res = FUN_0202D858((u16)FUN_02033534()) + 1;
+
+ if (UNK_021C59F4.unk04 != 0)
+ {
+ return 1;
+ }
+
+ FUN_02031480(0xf);
+ struct UnkStruct0202F150 *ptr =
+ (struct UnkStruct0202F150 *)AllocFromHeap(0xf, sizeof(struct UnkStruct0202F150));
+ UNK_021C59F4.unk04 = ptr;
+ MI_CpuFill8(ptr, 0, 0x68C);
+
+ UNK_021C59F4.unk04->unk658 = param1 + 0x40;
+ UNK_021C59F4.unk04->unk67D = 0;
+ UNK_021C59F4.unk04->unk67E = 0x1b;
+
+ UNK_021C59F4.unk04->unk45C = AllocFromHeap(0xf, UNK_021C59F4.unk04->unk658 << 1);
+
+ UNK_021C59F4.unk04->unk460 = AllocFromHeap(0xf, UNK_021C59F4.unk04->unk658);
+
+ UNK_021C59F4.unk04->unk458 = AllocFromHeap(0xf, res * UNK_021C59F4.unk04->unk658);
+
+ UNK_021C59F4.unk04->unk454 = AllocFromHeap(0xf, res * UNK_021C59F4.unk04->unk658);
+
+ if (FUN_02033534() == 0xa)
+ {
+ FUN_0202D7D8(UNK_021C59F4.unk04->unk54C, 0x64, &UNK_021C59F4.unk04->unk464);
+ FUN_0202D7D8(UNK_021C59F4.unk04->unk56C, 0x32 << 4, &UNK_021C59F4.unk04->unk4DC);
+ }
+ else
+ {
+ FUN_0202D7D8(UNK_021C59F4.unk04->unk54C, 0x14, &UNK_021C59F4.unk04->unk464);
+ FUN_0202D7D8(UNK_021C59F4.unk04->unk56C, 0x1b + 0xfd, &UNK_021C59F4.unk04->unk4DC);
+ }
+ }
+ else
+ {
+
+ r4 = 1;
+ if (UNK_021C59F4.unk04 == 0)
+ {
+ ErrorHandling();
+ }
+ }
+
+ UNK_021C59F4.unk04->unk65C = 0;
+
+ for (int i = 0; i < 4; i++)
+ {
+ UNK_021C59F4.unk04->unk677[i] = 0xff;
+ }
+
+ if (r4 == 0)
+ {
+ FUN_0202F2F0();
+ }
+
+ FUN_020312BC(UNK_021C59F4.unk04->unk5F8);
+
+ if (r4 == 0)
+ {
+ u32 res2 = FUN_0200CA60(FUN_0202FB20, 0, 0);
+
+ UNK_021C59F4.unk04->unk548 = res2;
+ }
+
+ UNK_021C59F4.unk04->unk687 = 0;
+
+ return 1;
+}
+
+THUMB_FUNC void FUN_0202F2F0()
+{
+ UNK_021C59F4.unk04->unk62C = 0;
+ UNK_021C59F4.unk04->unk62D = 0;
+ UNK_021C59F4.unk04->unk67F = 0;
+ UNK_021C59F4.unk04->unk680 = 0;
+
+ int res = (int)FUN_0202D858((u16)FUN_02033534()) + 1;
+
+ MI_CpuFill8(UNK_021C59F4.unk04->unk458, 0, UNK_021C59F4.unk04->unk658 * res);
+
+ int i;
+ for (i = 0; i < res; i++)
+ {
+ FUN_0202D394(&UNK_021C59F4.unk04->unk4E8[i],
+ UNK_021C59F4.unk04->unk458 + i * UNK_021C59F4.unk04->unk658,
+ UNK_021C59F4.unk04->unk658);
+ }
+
+ MI_CpuFill8(UNK_021C59F4.unk04->unk454, 0, UNK_021C59F4.unk04->unk658 * res);
+
+ for (i = 0; i < res; i++)
+ {
+ FUN_0202D394(&UNK_021C59F4.unk04->unk47C[i],
+ UNK_021C59F4.unk04->unk454 + i * UNK_021C59F4.unk04->unk658,
+ UNK_021C59F4.unk04->unk658);
+ }
+
+ MI_CpuFill8(&UNK_021C59F4.unk04->unk2D4, 0, 6 << 6);
+ FUN_0202D394(&UNK_021C59F4.unk04->unk4DC, UNK_021C59F4.unk04->unk2D4, 6 << 6);
+
+ for (i = 0; i < 0xc0; i++)
+ {
+ UNK_021C59F4.unk04->unk154[0][i] = 0xee;
+ UNK_021C59F4.unk04->unk154[1][i] = 0xee;
+ }
+
+ MI_CpuFill8(&UNK_021C59F4.unk04->unk04c, 0, 0x42 << 2);
+ FUN_0202D394(&UNK_021C59F4.unk04->unk464, UNK_021C59F4.unk04->unk04c, 0x42 << 2);
+
+ UNK_021C59F4.unk04->unk000[0][0] = 0xff;
+ UNK_021C59F4.unk04->unk000[1][0] = 0xff;
+
+ for (i = 1; i < 0x26; i++)
+ {
+ UNK_021C59F4.unk04->unk000[0][i] = 0xee;
+ UNK_021C59F4.unk04->unk000[1][i] = 0xee;
+ }
+
+ MI_CpuFill8(UNK_021C59F4.unk04->unk45C, 0, UNK_021C59F4.unk04->unk658 << 1);
+
+ FUN_0202D394(
+ &UNK_021C59F4.unk04->unk470, UNK_021C59F4.unk04->unk45C, UNK_021C59F4.unk04->unk658 * 2);
+
+ UNK_021C59F4.unk04->unk684 = 0;
+ UNK_021C59F4.unk04->unk685 = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ UNK_021C59F4.unk04->unk65F[i] = 0;
+ UNK_021C59F4.unk04->unk667[i] = 1;
+ UNK_021C59F4.unk04->unk66F[i] = 1;
+ UNK_021C59F4.unk04->unk610[i] = 0;
+
+ UNK_021C59F4.unk04->unk58C[i].unk0a = 0xee;
+ UNK_021C59F4.unk04->unk58C[i].unk08 = 0xffff;
+ UNK_021C59F4.unk04->unk58C[i].unk04 = 0;
+ UNK_021C59F4.unk04->unk58C[i].unk00 = 0;
+
+ UNK_021C59F4.unk04->unk638[i] = 0;
+ }
+
+ UNK_021C59F4.unk04->unk634 = 0;
+ UNK_021C59F4.unk04->unk630 = 1;
+ UNK_021C59F4.unk04->unk5F6 = 0xee;
+ UNK_021C59F4.unk04->unk5F4 = 0xffff;
+ UNK_021C59F4.unk04->unk5F0 = 0;
+ UNK_021C59F4.unk04->unk5EC = 0;
+ UNK_021C59F4.unk04->unk682 = 1;
+ UNK_021C59F4.unk04->unk683 = 1;
+
+ UNK_02105D59 = 4;
+ UNK_02105D58 = 4;
+
+ FUN_0202D804(UNK_021C59F4.unk04->unk54C);
+ FUN_0202D804(UNK_021C59F4.unk04->unk56C);
+
+ UNK_021C59F4.unk04->unk688 = 0;
+}
+
+THUMB_FUNC void FUN_0202F5A4()
+{
+ UNK_021C59F4.unk04->unk62C = 0;
+ UNK_021C59F4.unk04->unk62D = 0;
+
+ int res = (int)FUN_0202D858((u16)FUN_02033534()) + 1;
+
+ MI_CpuFill8(UNK_021C59F4.unk04->unk458, 0, UNK_021C59F4.unk04->unk658 * res);
+
+ int i;
+ for (i = 0; i < res; i++)
+ {
+ FUN_0202D394(&UNK_021C59F4.unk04->unk4E8[i],
+ UNK_021C59F4.unk04->unk458 + i * UNK_021C59F4.unk04->unk658,
+ UNK_021C59F4.unk04->unk658);
+ }
+
+ MI_CpuFill8(UNK_021C59F4.unk04->unk454, 0, UNK_021C59F4.unk04->unk658 * res);
+
+ for (i = 0; i < res; i++)
+ {
+ FUN_0202D394(&UNK_021C59F4.unk04->unk47C[i],
+ UNK_021C59F4.unk04->unk454 + i * UNK_021C59F4.unk04->unk658,
+ UNK_021C59F4.unk04->unk658);
+ }
+
+ MI_CpuFill8(&UNK_021C59F4.unk04->unk2D4, 0, 6 << 6);
+ FUN_0202D394(&UNK_021C59F4.unk04->unk4DC, UNK_021C59F4.unk04->unk2D4, 6 << 6);
+
+ for (i = 0; i < 0xc0; i++)
+ {
+ UNK_021C59F4.unk04->unk154[0][i] = 0xee;
+ UNK_021C59F4.unk04->unk154[1][i] = 0xee;
+ }
+
+ MI_CpuFill8(&UNK_021C59F4.unk04->unk04c, 0, 0x42 << 2);
+ FUN_0202D394(&UNK_021C59F4.unk04->unk464, UNK_021C59F4.unk04->unk04c, 0x42 << 2);
+
+ UNK_021C59F4.unk04->unk000[0][0] = 0xff;
+ UNK_021C59F4.unk04->unk000[1][0] = 0xff;
+
+ for (i = 1; i < 0x26; i++)
+ {
+ UNK_021C59F4.unk04->unk000[0][i] = 0xee;
+ UNK_021C59F4.unk04->unk000[1][i] = 0xee;
+ }
+
+ MI_CpuFill8(UNK_021C59F4.unk04->unk45C, 0, UNK_021C59F4.unk04->unk658 << 1);
+ FUN_0202D394(
+ &UNK_021C59F4.unk04->unk470, UNK_021C59F4.unk04->unk45C, UNK_021C59F4.unk04->unk658 * 2);
+
+ UNK_021C59F4.unk04->unk684 = 0;
+ UNK_021C59F4.unk04->unk685 = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ UNK_021C59F4.unk04->unk65F[i] = 0;
+ UNK_021C59F4.unk04->unk667[i] = 1;
+ UNK_021C59F4.unk04->unk66F[i] = 1;
+ UNK_021C59F4.unk04->unk610[i] = 0;
+
+ UNK_021C59F4.unk04->unk58C[i].unk0a = 0xee;
+ UNK_021C59F4.unk04->unk58C[i].unk08 = 0xffff;
+ UNK_021C59F4.unk04->unk58C[i].unk04 = 0;
+ UNK_021C59F4.unk04->unk58C[i].unk00 = 0;
+ }
+
+ UNK_021C59F4.unk04->unk630 = 1;
+ UNK_021C59F4.unk04->unk5F6 = 0xee;
+ UNK_021C59F4.unk04->unk5F4 = 0xffff;
+ UNK_021C59F4.unk04->unk5F0 = 0;
+ UNK_021C59F4.unk04->unk5EC = 0;
+ UNK_021C59F4.unk04->unk682 = 1;
+ UNK_021C59F4.unk04->unk683 = 1;
+
+ FUN_0202D804(UNK_021C59F4.unk04->unk54C);
+ FUN_0202D804(UNK_021C59F4.unk04->unk56C);
+
+ UNK_021C59F4.unk04->unk688 = 0;
+}
+
+THUMB_FUNC void FUN_0202F820(int param0)
+{
+ UNK_021C59F4.unk04->unk65F[param0] = 0;
+
+ UNK_021C59F4.unk04->unk667[param0] = 1;
+
+ UNK_021C59F4.unk04->unk638[param0] = 0;
+
+ UNK_021C59F4.unk04->unk66F[param0] = 1;
+
+ FUN_0202D394(&UNK_021C59F4.unk04->unk47C[param0],
+ UNK_021C59F4.unk04->unk454 + param0 * UNK_021C59F4.unk04->unk658,
+ UNK_021C59F4.unk04->unk658);
+
+ FUN_0202D394(&UNK_021C59F4.unk04->unk4E8[param0],
+ UNK_021C59F4.unk04->unk458 + param0 * UNK_021C59F4.unk04->unk658,
+ UNK_021C59F4.unk04->unk658);
+
+ UNK_021C59F4.unk04->unk58C[param0].unk0a = 0xee;
+ UNK_021C59F4.unk04->unk58C[param0].unk08 = 0xffff;
+ UNK_021C59F4.unk04->unk58C[param0].unk04 = 0;
+ UNK_021C59F4.unk04->unk58C[param0].unk00 = 0;
+}
+
+THUMB_FUNC void FUN_0202F8D4()
+{
+ for (int i = 1; i < 8; i++)
+ {
+ if (FUN_02030E7C((u16)i) == 0 && UNK_021C59F4.unk04->unk667[i] == 0 && FUN_02031280() == 0)
+ {
+ FUN_0202F820(i);
+ }
+ }
+}
+
+THUMB_FUNC void FUN_0202F910(int param0)
+{
+ FUN_0202F820(param0);
+}
+
+THUMB_FUNC u32 FUN_0202F918(u32 param0, u32 param1, u32 param2, u32 param3)
+{
+ u32 ret = 1;
+ if (FUN_02033534() < 0x13)
+ {
+ ret = FUN_0202E5F8(param0, param1, param3);
+ FUN_0202D330(FUN_0202F910);
+ }
+
+ FUN_0202F150(param0, param2);
+
+ return ret;
+}
+
+THUMB_FUNC u32 FUN_0202F950(u32 param0, u32 param1, u32 param2)
+{
+ u32 ret = 1;
+ if (FUN_02033534() < 0x13)
+ {
+ ret = FUN_0202E66C(param0, param1);
+ }
+
+ FUN_0202F150(param0, param2);
+
+ UNK_02105D58 = 4;
+
+ return ret;
+}
+
+THUMB_FUNC void FUN_0202F984()
+{
+ u32 r4 = 0;
+ if (FUN_02031190() == 0)
+ {
+ if (UNK_02105D59 != 4)
+ {
+ return;
+ }
+ }
+ else
+ {
+ if (UNK_02105D58 != 4)
+ {
+ return;
+ }
+ }
+
+ if (UNK_021C59F4.unk04->unk67D == 2)
+ {
+ UNK_021C59F4.unk04->unk67D = 0;
+ r4 = 1;
+ }
+
+ if (UNK_021C59F4.unk04->unk67D == 3)
+ {
+ UNK_021C59F4.unk04->unk67D = 1;
+ r4 = 1;
+ }
+
+ if (r4 != 0)
+ {
+ FUN_0202F5A4();
+ }
+ FUN_02031088();
+}
+
+THUMB_FUNC void FUN_0202F9E0(u32 param0)
+{
+ u8 r2 = UNK_021C59F4.unk04->unk67D;
+ if (r2 == 0 && param0 == 1)
+ {
+ UNK_021C59F4.unk04->unk67D = 3;
+ }
+ else if (r2 == 1 && param0 == 0)
+ {
+ UNK_021C59F4.unk04->unk67D = 2;
+ }
+}
+
+THUMB_FUNC void FUN_0202FA10()
+{
+ FUN_0202F9E0(1);
+}
+
+THUMB_FUNC void FUN_0202FA1C()
+{
+ FUN_0202F9E0(0);
+}
+
+THUMB_FUNC u8 FUN_0202FA28()
+{
+ u8 ret = UNK_021C59F4.unk04->unk67D;
+ if (ret == 2)
+ {
+ return 1;
+ }
+ else if (ret == 3)
+ {
+ return 0;
+ }
+
+ return ret;
+}
+
+THUMB_FUNC u32 FUN_0202FA48()
+{
+ if (FUN_0202FA28() == 1)
+ {
+ return 1;
+ }
+
+ return 0;
+}
+
+THUMB_FUNC void FUN_0202FA5C()
+{
+ u32 r4 = 0;
+ if (UNK_021C59F4.unk04 != 0)
+ {
+ if (FUN_02033534() >= 0x13)
+ {
+ MOD04_021D83C0();
+ r4 = 1;
+ }
+ else
+ {
+ if (FUN_0202E784() != 0)
+ {
+ r4 = 1;
+ }
+ }
+ }
+
+ if (r4 != 0)
+ {
+ FUN_020314D0();
+ FUN_0202DBA4();
+ UNK_021C59F4.unk00 = 0;
+
+ FUN_0200CAB4(UNK_021C59F4.unk04->unk548);
+ UNK_021C59F4.unk04->unk548 = 0;
+ FreeToHeap(UNK_021C59F4.unk04->unk45C);
+ FreeToHeap(UNK_021C59F4.unk04->unk460);
+ FreeToHeap(UNK_021C59F4.unk04->unk458);
+ FreeToHeap(UNK_021C59F4.unk04->unk454);
+ FUN_0202D824(UNK_021C59F4.unk04->unk56C);
+ FUN_0202D824(UNK_021C59F4.unk04->unk54C);
+ FreeToHeap(UNK_021C59F4.unk04);
+ UNK_021C59F4.unk04 = NULL;
+ }
+}
+
+THUMB_FUNC u32 FUN_0202FB18(u32 param0)
+{
+ return FUN_0202E9E8(param0);
+}
+
+THUMB_FUNC void FUN_0202FB20()
+{
+ if (UNK_021C59F4.unk00 != 0)
+ {
+ FUN_0203050C();
+ if ((FUN_02031190() == 0 && FUN_02030E7C(0) != 0) || FUN_02031280() != 0)
+ {
+ FUN_0202FEEC();
+ }
+
+ UNK_021C59F4.unk00 = 0;
+ }
+}
+
+THUMB_FUNC void FUN_0202FB58()
+{
+ if (FUN_0202F03C() != 0)
+ {
+ if (FUN_02031190() == 0)
+ {
+ if (FUN_0202EE24() == 0)
+ {
+ FUN_0202FA5C();
+ }
+ }
+ else
+ {
+ FUN_0202FA5C();
+ }
+ }
+}
+
+THUMB_FUNC u32 FUN_0202FB80()
+{
+ FUN_02031CDC();
+
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ if (UNK_021C59F4.unk04->unk68A == 0)
+ {
+ UNK_021C59F4.unk00 = 0;
+ FUN_0202F984();
+ UNK_021C59F4.unk04->unk628 |= gMain.unk44 & 0x7FFF;
+ FUN_02030674();
+ FUN_0202FCCC();
+
+ UNK_021C59F4.unk04->unk628 &= 2 << 0xe;
+ if (FUN_0202FA28() == 0)
+ {
+ FUN_02030DA4();
+ }
+
+ if ((FUN_02031190() == 0 && FUN_02030E7C(0) != 0) || FUN_02031280() != 0)
+ {
+ FUN_02030074();
+ }
+
+ if (FUN_02031190() == 0 || FUN_0202FA28() == 1 || FUN_02031280() != 0)
+ {
+ FUN_02030DFC();
+ }
+
+ UNK_021C59F4.unk00 = 1;
+ }
+
+ FUN_0202ED70(UNK_021C59F4.unk04->unk65C);
+
+ if (FUN_02031190() == 0)
+ {
+ FUN_0202F8D4();
+ }
+
+ FUN_0202FB58();
+ }
+ else
+ {
+ FUN_0202ED70(0);
+ }
+
+ FUN_020335F4(0);
+ FUN_020315A4();
+
+ return 1;
+}
+
+THUMB_FUNC void FUN_0202FC60()
+{
+ u8 r4 = UNK_021C59F4.unk00;
+
+ UNK_021C59F4.unk00 = 0;
+
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ FUN_0202F2F0();
+ }
+
+ UNK_021C59F4.unk00 = r4;
+}
+
+THUMB_FUNC void FUN_0202FC80()
+{
+ u8 r4 = UNK_021C59F4.unk00;
+
+ UNK_021C59F4.unk00 = 0;
+
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ UNK_021C59F4.unk04->unk67D = 1;
+ FUN_0202F2F0();
+ }
+
+ UNK_021C59F4.unk00 = r4;
+}
+
+THUMB_FUNC void FUN_0202FCA8()
+{
+ u8 r4 = UNK_021C59F4.unk00;
+
+ UNK_021C59F4.unk00 = 0;
+
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ FUN_0202F2F0();
+ FUN_0202E538();
+ }
+
+ UNK_021C59F4.unk00 = r4;
+}
+
+THUMB_FUNC void FUN_0202FCCC()
+{
+ if (UNK_021C59F4.unk04->unk683 != 0)
+ {
+ if (FUN_02033534() >= 0x13)
+ {
+ if (UNK_021C59F4.unk04->unk687 == 0 || MOD04_021D78FC(UNK_021C59F4.unk04, 0x26) == 0)
+ {
+ return;
+ }
+
+ UNK_021C59F4.unk04->unk683 = 0;
+ return;
+ }
+
+ if (FUN_0202CBD4() != 4 || FUN_02030E7C(FUN_02031190()) == 0)
+ {
+ if (FUN_02031280() == 0)
+ {
+ return;
+ }
+ }
+
+ UNK_02105D58 = 0;
+ FUN_0203050C();
+ if (UNK_02105D58 == 0)
+ {
+ return;
+ }
+
+ UNK_021C59F4.unk04->unk683 = 0;
+ return;
+ }
+
+ if (FUN_02033534() >= 0x13)
+ {
+ if (UNK_021C59F4.unk04->unk687 == 0)
+ {
+ return;
+ }
+
+ if (UNK_021C59F4.unk04->unk630 != 0)
+ {
+ if ((int)UNK_021C59F4.unk04->unk634 > 3)
+ {
+ return;
+ }
+
+ if (UNK_02105D58 == 4)
+ {
+ FUN_02030930(UNK_021C59F4.unk04->unk000[0]);
+ UNK_02105D58 = 2;
+ }
+ }
+ else
+ {
+ if (UNK_02105D58 == 4)
+ {
+ if (FUN_02030930(UNK_021C59F4.unk04->unk000[0]) == 0)
+ {
+ return;
+ }
+
+ UNK_02105D58 = 2;
+ }
+ }
+
+ if (MOD04_021D78FC(UNK_021C59F4.unk04, 0x26) == 0)
+ {
+ return;
+ }
+
+ UNK_02105D58 = 4;
+ UNK_021C59F4.unk04->unk634++;
+ return;
+ }
+
+ if (FUN_0202CBD4() != 4 || FUN_02030E7C(FUN_02031190()) == 0)
+ {
+ if (FUN_02031280() == 0)
+ {
+ return;
+ }
+ }
+
+ if (UNK_02105D58 != 4)
+ {
+ return;
+ }
+
+ // nonmatching
+ if ((int)UNK_021C59F4.unk04->unk634 > 3)
+ {
+ return;
+ }
+
+ FUN_02030930(UNK_021C59F4.unk04->unk000[UNK_021C59F4.unk04->unk67F]);
+
+ FUN_02030930(UNK_021C59F4.unk04->unk000[1 - UNK_021C59F4.unk04->unk67F]);
+
+ UNK_02105D58 = 0;
+ FUN_0203050C();
+}
+
+#ifdef NONMATCHING
+THUMB_FUNC u32 FUN_0202FE2C(int param0)
+{
+
+ // these 3 variables are shuffled on the stack, everything else matches
+ int st4 = 0;
+ int stc = FUN_02031228(FUN_02033534());
+ int st8 = FUN_0202D858(FUN_02033534()) + 1;
+
+ for (int r7 = 0; r7 < st8; r7++)
+ {
+
+ FUN_0202D4BC(&UNK_021C59F4.unk04->unk47C[r7]);
+
+ if (FUN_02030E7C(r7) != 0)
+ {
+ UNK_021C59F4.unk04->unk154[param0][r7 * stc] = 0xe;
+ }
+
+ FUN_0202D400(
+ &UNK_021C59F4.unk04->unk47C[r7], &UNK_021C59F4.unk04->unk154[param0][r7 * stc], stc);
+
+ if (UNK_021C59F4.unk04->unk154[param0][r7 * stc] == 0xe)
+ {
+ st4++;
+ }
+ }
+
+ if (st4 == st8)
+ {
+ return 0;
+ }
+
+ return 1;
+}
+#else
+THUMB_FUNC asm u32 FUN_0202FE2C(int param0)
+{
+ // clang-format off
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ str r0, [sp, #0xc]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r0, r0, #0x1
+ mov r7, #0x0
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _0202FED0
+ ldr r0, [sp, #0x0]
+ mov r1, #0xc0
+ add r6, r0, #0x0
+ add r4, r7, #0x0
+ add r5, r7, #0x0
+ mul r6, r1
+_0202FE66:
+ ldr r0, =UNK_021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, =0x0000047C
+ add r0, r1, r0
+ add r0, r0, r4
+ bl FUN_0202D4BC
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202FE90
+ ldr r0, =UNK_021C59F4
+ mov r1, #0xe
+ ldr r0, [r0, #0x4]
+ add r0, r6, r0
+ add r2, r5, r0
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ strb r1, [r2, r0]
+_0202FE90:
+ ldr r0, =UNK_021C59F4
+ mov r2, #0x55
+ ldr r1, [r0, #0x4]
+ ldr r0, =0x0000047C
+ lsl r2, r2, #0x2
+ add r0, r1, r0
+ add r1, r1, r2
+ add r1, r1, r6
+ ldr r2, [sp, #0xc]
+ add r0, r0, r4
+ add r1, r1, r5
+ bl FUN_0202D400
+ ldr r0, =UNK_021C59F4
+ ldr r0, [r0, #0x4]
+ add r0, r6, r0
+ add r1, r5, r0
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0xe
+ bne _0202FEC2
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+_0202FEC2:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #0x1
+ add r5, r5, r0
+ ldr r0, [sp, #0x8]
+ add r4, #0xc
+ cmp r7, r0
+ blt _0202FE66
+_0202FED0:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ cmp r1, r0
+ bne _0202FEDE
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202FEDE:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ // clang-format on
+}
+#endif
+
+THUMB_FUNC void FUN_0202FEEC()
+{
+ if (UNK_021C59F4.unk04 == NULL || FUN_02033534() >= 0x13)
+ {
+ return;
+ }
+
+ int st0 = FUN_02031228((u16)FUN_02033534());
+ int r6 = (int)FUN_0202D858((u16)FUN_02033534()) + 1;
+
+ if (UNK_02105D59 == 2 || UNK_02105D59 == 0)
+ {
+
+ UNK_02105D59++;
+
+ if (FUN_0202FA28() == 1)
+ {
+ FUN_0202FE2C(UNK_021C59F4.unk04->unk680);
+ }
+
+ if (FUN_0202CBD4() == 4 && FUN_02031280() == 0)
+ {
+
+ if (FUN_0202D0D0(UNK_021C59F4.unk04->unk154[UNK_021C59F4.unk04->unk680],
+ 0xc0,
+ 0xe,
+ FUN_020304F0) == 0)
+ {
+ UNK_02105D59--;
+ }
+ }
+
+ int i;
+ if (UNK_02105D59 == 1 || UNK_02105D59 == 3)
+ {
+ for (i = 0; i < r6; i++)
+ {
+ if (FUN_02030E7C((u16)i) != 0)
+ {
+ UNK_021C59F4.unk04->unk638[i]++;
+ }
+ else if (FUN_02031280() != 0 && i == 0)
+ {
+ UNK_021C59F4.unk04->unk638[i]++;
+ }
+ }
+
+ FUN_0203026C(0, UNK_021C59F4.unk04->unk154[UNK_021C59F4.unk04->unk680], 0xc0);
+
+ UNK_021C59F4.unk04->unk680 = (u8)(1 - UNK_021C59F4.unk04->unk680);
+ }
+
+ for (i = 0; i < r6; i++)
+ {
+ if (FUN_02030E7C((u16)i) == 0 && FUN_0202FA28() == 1)
+ {
+ UNK_021C59F4.unk04->unk154[UNK_021C59F4.unk04->unk680][i * st0] = 0xff;
+ }
+ }
+
+ if (FUN_0202CBD4() != 4 || FUN_02031280() != 0)
+ {
+ UNK_02105D59++;
+ }
+ }
+}
+
+THUMB_FUNC void FUN_02030074()
+{
+ if (UNK_021C59F4.unk04->unk683 != 0)
+ {
+ if (FUN_02033534() >= 0x13)
+ {
+ if (FUN_02030E7C(0) != 0 && MOD04_021D79B4(UNK_021C59F4.unk04->unk154, 0x4c) != 0)
+ {
+ UNK_021C59F4.unk04->unk683 = 0;
+ return;
+ }
+ }
+ else if (FUN_0202CBD4() == 4 || FUN_02031280() != 0)
+ {
+ FUN_0202FEEC();
+ if (UNK_02105D59 == 2)
+ {
+ UNK_021C59F4.unk04->unk683 = 0;
+ return;
+ }
+ }
+ }
+
+ if (FUN_02033534() >= 0x13)
+ {
+ if (FUN_02030E7C(0) != 0)
+ {
+ if (UNK_021C59F4.unk04->unk630 != 0)
+ {
+ if ((int)UNK_021C59F4.unk04->unk638[1] > 3 ||
+ (int)UNK_021C59F4.unk04->unk638[0] > 3)
+ {
+ return;
+ }
+
+ if (UNK_02105D59 == 4)
+ {
+ if (FUN_0202FA28() == 1)
+ {
+ FUN_0202FE2C(0);
+ }
+
+ UNK_02105D59 = 2;
+ }
+ }
+ else
+ {
+ if (UNK_02105D59 == 4)
+ {
+ if (FUN_0202FA28() == 1)
+ {
+ if (FUN_0202FE2C(0) == 0)
+ {
+ return;
+ }
+ }
+ }
+
+ UNK_02105D59 = 2;
+ }
+
+ if (MOD04_021D79B4(UNK_021C59F4.unk04->unk154, 0x4c) == 0)
+ {
+ return;
+ }
+
+ UNK_02105D59 = 4;
+ UNK_021C59F4.unk04->unk638[0]++;
+ UNK_021C59F4.unk04->unk638[1]++;
+ }
+ }
+ else if (FUN_0202CBD4() == 4 || FUN_02031280() != 0)
+ {
+ if (UNK_02105D59 == 4)
+ {
+ for (int r4 = 1; r4 < 8; r4++)
+ {
+ if (FUN_02030E7C((u16)r4) != 0)
+ {
+ if ((int)UNK_021C59F4.unk04->unk638[r4] > 3)
+ {
+ return;
+ }
+ }
+ else if (r4 == 0)
+ {
+ if (FUN_02031280() != 0)
+ {
+ if ((int)UNK_021C59F4.unk04->unk638[0] > 3)
+ {
+ return;
+ }
+ }
+ }
+ }
+
+ if (FUN_0202FA28() == 0)
+ {
+ FUN_02030A00(UNK_021C59F4.unk04->unk154[UNK_021C59F4.unk04->unk680]);
+ FUN_02030A00(UNK_021C59F4.unk04->unk154[1 - UNK_021C59F4.unk04->unk680]);
+ }
+
+ UNK_02105D59 = 0;
+ FUN_0202FEEC();
+ }
+ }
+}
+
+THUMB_FUNC void FUN_02030238(u32 param0, void *param1, u32 param2)
+{
+ if (UNK_021C59F4.unk04->unk66F[0] != 0)
+ {
+ UNK_021C59F4.unk04->unk634--;
+ UNK_021C59F4.unk04->unk66F[0] = 0;
+ return;
+ }
+
+ FUN_0203026C(param0, param1, param2);
+}
+
+THUMB_FUNC void FUN_0203026C(u32 param0, u8 *param1, u32 param2)
+{
+#pragma unused(param0)
+#pragma unused(param2)
+ UNK_021C59F4.unk04->unk634--;
+ if (param1 == 0)
+ {
+ return;
+ }
+
+ if (param1[0] == 0xb)
+ {
+ if (FUN_0202FA28() == 1)
+ {
+ return;
+ }
+ param1++;
+ }
+ else
+ {
+ if (FUN_0202FA28() == 0)
+ {
+ return;
+ }
+ }
+
+ if (UNK_021C59F4.unk04->unk682 != 0)
+ {
+ if ((param1[0] & 1) != 0)
+ {
+ return;
+ }
+ }
+
+ UNK_021C59F4.unk04->unk682 = 0;
+ if (FUN_0202FA28() == 1)
+ {
+ int r6 = FUN_02031228((u16)FUN_02033534());
+ int st4 = (int)FUN_0202D858((u16)FUN_02033534()) + 1;
+
+ int r4 = 0;
+ while (r4 < st4)
+ {
+
+ if (param1[0] == 0xff)
+ {
+ UNK_021C59F4.unk04->unk65C &= ~(1 << r4);
+ }
+ else
+ {
+ UNK_021C59F4.unk04->unk65C |= (1 << r4);
+ }
+
+ if (param1[0] == 0xff)
+ {
+ param1 += r6;
+ }
+ else if (param1[0] == 0xe)
+ {
+ param1 += r6;
+ }
+ else if (UNK_021C59F4.unk04->unk667[r4] != 0 && (param1[0] & 1) != 0)
+ {
+ param1 += r6;
+ }
+ else
+ {
+ param1++;
+ FUN_0202D3A4(&UNK_021C59F4.unk04->unk4E8[r4], param1, (u32)(r6 - 1), 0x5E6);
+
+ param1 += r6 - 1;
+ UNK_021C59F4.unk04->unk667[r4] = 0;
+ }
+
+ r4++;
+ }
+
+ return;
+ }
+
+ UNK_021C59F4.unk04->unk65C = param1[1];
+ UNK_021C59F4.unk04->unk65C <<= 8;
+
+ UNK_021C59F4.unk04->unk65C += param1[2];
+ FUN_0202D3A4(&UNK_021C59F4.unk04->unk470, param1 + 4, param1[3], 0x5FF);
+}
+
+THUMB_FUNC void FUN_020303BC(u32 param0, u8 *param1, u16 param2)
+{
+ if (UNK_021C59F4.unk04->unk66F[param0] != 0)
+ {
+
+ UNK_021C59F4.unk04->unk638[param0]--;
+ UNK_021C59F4.unk04->unk66F[param0] = 0;
+ return;
+ }
+
+ FUN_020303F4(param0, param1, param2);
+}
+
+THUMB_FUNC void FUN_020303F4(u32 param0, u8 *param1, u16 param2)
+{
+#pragma unused(param2)
+ UNK_021C59F4.unk04->unk638[param0]--;
+ if (param1 == 0)
+ {
+ return;
+ }
+
+ if (UNK_021C59F4.unk04->unk667[param0] != 0 && (param1[0] & 1) != 0)
+ {
+ return;
+ }
+
+ UNK_021C59F4.unk04->unk667[param0] = 0;
+ if (FUN_0202FA28() == 1)
+ {
+ int r6 = FUN_02031228((u16)FUN_02033534());
+ FUN_0202D858((u16)FUN_02033534());
+
+ if ((param1[0] & 2) == 0)
+ {
+ FUN_0202D3A4(&UNK_021C59F4.unk04->unk47C[param0], param1, (u32)r6, 0x65E);
+ }
+
+ UNK_021C59F4.unk04->unk65F[param0]++;
+ return;
+ }
+
+ FUN_020307E4(param1, param0);
+
+ if ((param1[0] & 2) == 0 && FUN_0202D498(&UNK_021C59F4.unk04->unk4E8[param0]) >= 0xb)
+ {
+ FUN_0202D3A4(&UNK_021C59F4.unk04->unk4E8[param0], param1 + 1, 0xb, 0x66E);
+ }
+}
+
+THUMB_FUNC void FUN_020304D4(u32 param0)
+{
+ if (param0 != 0)
+ {
+ UNK_02105D58++;
+ return;
+ }
+
+ ErrorHandling();
+}
+
+THUMB_FUNC void FUN_020304F0(u32 param0)
+{
+ if (param0 != 0)
+ {
+ UNK_02105D59++;
+ return;
+ }
+
+ ErrorHandling();
+}
+
+THUMB_FUNC void FUN_0203050C()
+{
+ if (UNK_021C59F4.unk04 == 0 || FUN_02033534() >= 0x13)
+ {
+ return;
+ }
+
+ int r4 = FUN_02031228((u16)FUN_02033534());
+ FUN_0202D858((u16)FUN_02033534());
+
+ if (FUN_02031280() != 0 && (UNK_02105D58 == 2 || UNK_02105D58 == 0))
+ {
+ UNK_02105D58++;
+ FUN_020304D4(1);
+
+ FUN_020303F4(0, UNK_021C59F4.unk04->unk000[UNK_021C59F4.unk04->unk67F], (u16)r4);
+
+ UNK_021C59F4.unk04->unk67F = (u8)(1 - UNK_021C59F4.unk04->unk67F);
+ UNK_021C59F4.unk04->unk634++;
+ return;
+ }
+
+ if (FUN_0202CBD4() != 4)
+ {
+ return;
+ }
+
+ if (FUN_02030E7C(FUN_02031190()) == 0)
+ {
+ FUN_02031190();
+ return;
+ }
+
+ if (UNK_02105D58 != 2 && UNK_02105D58 != 0)
+ {
+ return;
+ }
+
+ if (FUN_02031190() != 0)
+ {
+ UNK_02105D58++;
+
+ if (FUN_0202D0D0(UNK_021C59F4.unk04->unk000[UNK_021C59F4.unk04->unk67F],
+ (u16)r4,
+ 0xe,
+ FUN_020304D4) == 0)
+ {
+ UNK_02105D58--;
+ return;
+ }
+
+ UNK_021C59F4.unk04->unk67F = (u8)(1 - UNK_021C59F4.unk04->unk67F);
+ UNK_021C59F4.unk04->unk634++;
+ return;
+ }
+
+ if ((FUN_0202CB8C() & 0xFFFE) != 0)
+ {
+ UNK_02105D58++;
+ FUN_020304D4(1);
+
+ FUN_020303F4(0, UNK_021C59F4.unk04->unk000[UNK_021C59F4.unk04->unk67F], (u16)r4);
+
+ UNK_021C59F4.unk04->unk67F = (u8)(1 - UNK_021C59F4.unk04->unk67F);
+ UNK_021C59F4.unk04->unk634++;
+ }
+}
+
+#ifdef NONMATCHING
+THUMB_FUNC void FUN_02030674()
+{
+ u16 r4 = 0;
+ if (UNK_021C59F4.unk04->unk62C == 0 || (UNK_021C59F4.unk04->unk628 & 0xf0) == 0)
+ {
+ return;
+ }
+
+ if (UNK_021C59F4.unk04->unk62C == 2)
+ {
+ if ((UNK_021C59F4.unk04->unk628 & 0x20) != 0)
+ {
+ r4 = r4 | 0x10;
+ }
+
+ if ((UNK_021C59F4.unk04->unk628 & 0x10) != 0)
+ {
+ r4 = r4 | 0x20;
+ }
+
+ if ((UNK_021C59F4.unk04->unk628 & 0x40) != 0)
+ {
+ r4 = r4 | 0x80;
+ }
+
+ if ((UNK_021C59F4.unk04->unk628 & 0x80) != 0)
+ {
+ r4 = r4 | 0x40;
+ }
+ }
+ else
+ {
+ if (UNK_021C59F4.unk04->unk62E != 0)
+ {
+ r4 = UNK_021C59F4.unk04->unk62E;
+ UNK_021C59F4.unk04->unk62D--;
+
+ if (UNK_021C59F4.unk04->unk62D < 0)
+ {
+ UNK_021C59F4.unk04->unk62E = 0;
+ }
+ }
+ else
+ {
+ UNK_021C59F4.unk04->unk5F8[0] =
+ UNK_021C59F4.unk04->unk5F8[1] * UNK_021C59F4.unk04->unk5F8[0] +
+ UNK_021C59F4.unk04->unk5F8[2];
+
+ switch ((u32)(UNK_021C59F4.unk04->unk5F8[0] >> 0x3E) | (0 << 2))
+ {
+ case 0:
+ r4 = 0x20;
+ break;
+ case 1:
+ r4 = 0x10;
+ break;
+ case 2:
+ r4 = 0x40;
+ break;
+ case 3:
+ r4 = 0x80;
+ break;
+ }
+
+ UNK_021C59F4.unk04->unk5F8[0] =
+ UNK_021C59F4.unk04->unk5F8[2] +
+ UNK_021C59F4.unk04->unk5F8[1] * UNK_021C59F4.unk04->unk5F8[0];
+ UNK_021C59F4.unk04->unk62D = UNK_021C59F4.unk04->unk5F8[0] >> 0x3c | (0 << 4);
+ UNK_021C59F4.unk04->unk62E = r4;
+ }
+ }
+
+ UNK_021C59F4.unk04->unk628 &= ~0xf0;
+ UNK_021C59F4.unk04->unk628 += r4;
+}
+#else
+THUMB_FUNC asm void FUN_02030674()
+{
+ // clang-format off
+ push {r3-r7, lr}
+ ldr r7, =UNK_021C59F4
+ mov r6, #0x0
+ ldr r5, [r7, #0x4]
+ ldr r2, =0x0000062C
+ add r4, r6, #0x0
+ ldrb r0, [r5, r2]
+ cmp r0, #0x0
+ beq _02030690
+ sub r1, r2, #0x4
+ ldrh r1, [r5, r1]
+ mov r3, #0xf0
+ tst r3, r1
+ bne _02030692
+_02030690:
+ b _02030794
+_02030692:
+ cmp r0, #0x2
+ bne _020306D0
+ mov r0, #0x20
+ tst r0, r1
+ beq _020306A4
+ mov r0, #0x10
+ orr r0, r6
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020306A4:
+ mov r0, #0x10
+ tst r0, r1
+ beq _020306B2
+ mov r0, #0x20
+ orr r0, r4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020306B2:
+ mov r0, #0x40
+ tst r0, r1
+ beq _020306C0
+ mov r0, #0x80
+ orr r0, r4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020306C0:
+ mov r0, #0x80
+ tst r0, r1
+ beq _0203077E
+ mov r0, #0x40
+ orr r0, r4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203077E
+_020306D0:
+ add r0, r2, #0x2
+ ldrh r0, [r5, r0]
+ cmp r0, #0x0
+ beq _020306F2
+ add r4, r0, #0x0
+ add r0, r2, #0x1
+ ldrsb r0, [r5, r0]
+ sub r1, r0, #0x1
+ add r0, r2, #0x1
+ strb r1, [r5, r0]
+ ldr r1, [r7, #0x4]
+ ldrsb r0, [r1, r0]
+ cmp r0, #0x0
+ bge _0203077E
+ add r0, r2, #0x2
+ strh r6, [r1, r0]
+ b _0203077E
+_020306F2:
+ add r0, r2, #0x0
+ sub r0, #0x34
+ add r6, r5, r0
+ sub r2, #0x34
+ ldr r0, [r6, #0x8]
+ ldr r1, [r6, #0xc]
+ ldr r2, [r5, r2]
+ ldr r3, [r6, #0x4]
+ bl _ll_mul
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldr r0, [r6, #0x10]
+ ldr r1, [r6, #0x14]
+ add r0, r0, r3
+ adc r1, r2
+ ldr r2, =0x000005F8
+ str r0, [r5, r2]
+ mov r2, #0x0
+ str r1, [r6, #0x4]
+ lsr r0, r1, #0x1e
+ lsl r1, r2, #0x2
+ orr r1, r0
+ cmp r1, #0x3
+ bhi _02030746
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02030730: // jump table (using 16-bit offset)
+ // huge hack to get the correct jump offset. Is there a way to write constants?
+ lsl r6, r0, #0x0 // case 0
+ lsl r2, r1, #0x0 // case 1
+ lsl r6, r1, #0x0 // case 2
+ lsl r2, r2, #0x0 // case 3
+
+ // intended jump offset
+ // .short _02030738 - _02030730 - 2; case 0
+ // .short _0203073C - _02030730 - 2; case 1
+ // .short _02030740 - _02030730 - 2; case 2
+ // .short _02030744 - _02030730 - 2; case 3
+_02030738:
+ mov r4, #0x20
+ b _02030746
+_0203073C:
+ mov r4, #0x10
+ b _02030746
+_02030740:
+ mov r4, #0x40
+ b _02030746
+_02030744:
+ mov r4, #0x80
+_02030746:
+ ldr r0, =UNK_021C59F4
+ ldr r5, [r0, #0x4]
+ ldr r0, =0x000005F8
+ add r6, r5, r0
+ ldr r0, [r6, #0x8]
+ ldr r1, [r6, #0xc]
+ ldr r2, [r6, #0x0]
+ ldr r3, [r6, #0x4]
+ bl _ll_mul
+ ldr r3, [r6, #0x10]
+ ldr r2, [r6, #0x14]
+ add r0, r3, r0
+ adc r2, r1
+ ldr r1, =0x000005F8
+ mov r3, #0x0
+ str r0, [r5, r1]
+ str r2, [r6, #0x4]
+ lsr r0, r2, #0x1c
+ lsl r2, r3, #0x4
+ orr r2, r0
+ add r0, r1, #0x0
+ add r0, #0x35
+ strb r2, [r5, r0]
+ ldr r0, =UNK_021C59F4
+ add r1, #0x36
+ ldr r0, [r0, #0x4]
+ strh r4, [r0, r1]
+_0203077E:
+ ldr r2, =UNK_021C59F4
+ ldr r1, =0x00000628
+ ldr r5, [r2, #0x4]
+ mov r0, #0xf0
+ ldrh r3, [r5, r1]
+ bic r3, r0
+ strh r3, [r5, r1]
+ ldr r2, [r2, #0x4]
+ ldrh r0, [r2, r1]
+ add r0, r0, r4
+ strh r0, [r2, r1]
+_02030794:
+ pop {r3-r7, pc}
+ // clang-format on
+}
+#endif
+
+THUMB_FUNC void FUN_020307A8()
+{
+ UNK_021C59F4.unk04->unk62C = 1;
+}
+
+THUMB_FUNC void FUN_020307BC()
+{
+ UNK_021C59F4.unk04->unk62C = 2;
+}
+
+THUMB_FUNC void FUN_020307D0()
+{
+ UNK_021C59F4.unk04->unk62C = 0;
+}
+
+THUMB_FUNC u32 FUN_020307E4(u8 *param0, u32 param1)
+{
+ UNK_021C59F4.unk04->unk610[param1] = 0;
+
+ int r7 = param0[0] & 0x10;
+ if (r7 == 0x10)
+ {
+
+ u8 r5 = (u8)(param0[0] & 0xc);
+ if (r5 == 0)
+ {
+ UNK_021C59F4.unk04->unk610[param1] |= 0x40;
+ }
+ else if (r5 == 4)
+ {
+ UNK_021C59F4.unk04->unk610[param1] |= 0x80;
+ }
+ else if (r5 == 8)
+ {
+ UNK_021C59F4.unk04->unk610[param1] |= 0x20;
+ }
+ else if (r5 == 0xc)
+ {
+ UNK_021C59F4.unk04->unk610[param1] |= 0x10;
+ }
+
+ UNK_021C59F4.unk04->unk620[param1] = (u8)((param0[0] >> 5) & 0x7);
+ }
+
+ return 1;
+}
+
+THUMB_FUNC void FUN_0203086C()
+{
+}
+
+THUMB_FUNC u32 FUN_02030870(u8 *param0)
+{
+ if (UNK_021C59F4.unk04->unk62A != 0)
+ {
+ return 0;
+ }
+
+ if (FUN_02030FE0() == 0)
+ {
+ return 0;
+ }
+
+ if (UNK_021C59F4.unk04->unk681 != 0)
+ {
+ UNK_021C59F4.unk04->unk681--;
+ }
+
+ if ((UNK_021C59F4.unk04->unk628 & 0x40) != 0)
+ {
+ param0[0] |= 0x10;
+ UNK_021C59F4.unk04->unk681 = 8;
+ }
+ else if ((UNK_021C59F4.unk04->unk628 & 0x80) != 0)
+ {
+ param0[0] |= 0x14;
+ UNK_021C59F4.unk04->unk681 = 8;
+ }
+ else if ((UNK_021C59F4.unk04->unk628 & 0x20) != 0)
+ {
+ param0[0] |= 0x18;
+ UNK_021C59F4.unk04->unk681 = 8;
+ }
+ else if ((UNK_021C59F4.unk04->unk628 & 0x10) != 0)
+ {
+ param0[0] |= 0x1c;
+ UNK_021C59F4.unk04->unk681 = 8;
+ }
+
+ param0[0] |= UNK_021C59F4.unk04->unk62B << 5;
+
+ return 0;
+}
+
+THUMB_FUNC u32 FUN_02030930(u8 *param0)
+{
+ int r5 = FUN_02031228((u16)FUN_02033534());
+ FUN_0202D858((u16)FUN_02033534());
+
+ if (UNK_021C59F4.unk04->unk684 == 0)
+ {
+ param0[0] = 0;
+ }
+ else
+ {
+ param0[0] = 1;
+ }
+
+ if (FUN_0202FA28() == 0)
+ {
+ FUN_02030870(param0);
+ }
+
+ UNK_021C59F4.unk04->unk684 = 0;
+
+ if (FUN_0202D4E4(UNK_021C59F4.unk04->unk54C) != 0)
+ {
+ param0[0] |= 2;
+ if (param0[0] == 2)
+ {
+ return 0;
+ }
+ }
+ else
+ {
+ int st0[2];
+ st0[1] = r5 - 1;
+ st0[0] = (int)param0 + 1;
+ if (FUN_0202D760(UNK_021C59F4.unk04->unk54C, st0, 1) == 0)
+ {
+ UNK_021C59F4.unk04->unk684 = 1;
+ }
+
+ if (FUN_0202FA28() == 1)
+ {
+ UNK_021C59F4.unk04->unk65E++;
+
+ param0[0] |= UNK_021C59F4.unk04->unk65E << 4 & 0xf0;
+ }
+ }
+
+ return 1;
+}
+
+THUMB_FUNC void FUN_02030A00(u8 *param0)
+{
+ param0[0] = 0xb;
+ if (UNK_021C59F4.unk04->unk685 == 0)
+ {
+ param0[1] = 0;
+ }
+ else
+ {
+ param0[1] = 1;
+ }
+
+ u16 res = FUN_0202CB8C();
+ param0[2] = (u8)(res >> 8);
+ param0[3] = (u8)res;
+
+ int st0[2];
+ st0[1] = 0xbb;
+ st0[0] = (int)param0 + 5;
+ if (FUN_0202D760(UNK_021C59F4.unk04->unk56C, st0, 0) != 0)
+ {
+ UNK_021C59F4.unk04->unk685 = 0;
+ param0[4] = (u8)(0xbb - st0[1]);
+
+ return;
+ }
+
+ UNK_021C59F4.unk04->unk685 = 1;
+ param0[4] = 0xbb;
+}
+
+THUMB_FUNC u32 FUN_02030A78(u32 param0, u8 *param1, u32 param2)
+{
+ if (FUN_02030E7C(FUN_02031190()) == 0 && FUN_02031280() == 0)
+ {
+ return 0;
+ }
+
+ if (FUN_0202D684(UNK_021C59F4.unk04->unk54C, param0, param1, param2, 1, 0) != 0)
+ {
+ return 1;
+ }
+
+ if (FUN_02033534() == 0xa)
+ {
+ FUN_02031454();
+ }
+
+ return 0;
+}
+
+THUMB_FUNC u32 FUN_02030ADC(u32 param0, u8 *param1, u32 param2)
+{
+ if (FUN_02030E7C(FUN_02031190()) == 0 && FUN_02031280() == 0)
+ {
+ return 0;
+ }
+
+ if (FUN_0202D684(UNK_021C59F4.unk04->unk54C, param0, param1, param2, 1, 1) != 0)
+ {
+ return 1;
+ }
+
+ if (FUN_02033534() == 0xa)
+ {
+ FUN_02031454();
+ }
+
+ return 0;
+}
+
+THUMB_FUNC u32 FUN_02030B3C(u32 param0, u8 *param1, u32 param2)
+{
+ if (FUN_02031190() != 0)
+ {
+ ErrorHandling();
+ return 0;
+ }
+
+ if (FUN_02030E7C(0) == 0 && FUN_02031280() == 0)
+ {
+ return 0;
+ }
+
+ if (FUN_0202FA28() == 1)
+ {
+ return FUN_02030A78(param0, param1, param2);
+ }
+
+ if (FUN_0202D684(UNK_021C59F4.unk04->unk56C, param0, param1, param2, 1, 0) != 0)
+ {
+ return 1;
+ }
+
+ if (FUN_02033534() == 0xa)
+ {
+ FUN_02031454();
+ }
+
+ return 0;
+}
+
+THUMB_FUNC u32 FUN_02030BC4(u32 param0, u8 *param1, u32 param2)
+{
+ if (FUN_02031190() != 0)
+ {
+ FUN_02031454();
+ return 0;
+ }
+
+ if (FUN_02030E7C(0) == 0 && FUN_02031280() == 0)
+ {
+ return 0;
+ }
+
+ if (FUN_0202FA28() == 1)
+ {
+ return FUN_02030ADC(param0, param1, param2);
+ }
+
+ if (FUN_0202D684(UNK_021C59F4.unk04->unk56C, param0, param1, param2, 1, 1) != 0)
+ {
+ return 1;
+ }
+
+ if (FUN_02033534() == 0xa)
+ {
+ FUN_02031454();
+ }
+
+ return 0;
+}
+
+THUMB_FUNC u32 FUN_02030C4C(u32 param0, u8 *param1)
+{
+ return FUN_02030BC4(param0, param1, 0);
+}
+
+THUMB_FUNC int FUN_02030C58()
+{
+ return FUN_0202D498(&UNK_021C59F4.unk04->unk464);
+}
+
+THUMB_FUNC void FUN_02030C70(
+ u32 param0, u32 param1, u32 param2, void *param3, struct UnkStruct0202F150_sub2 *param4)
+{
+ FUN_0202D934(param0, param1, param2, param3);
+ param4->unk0a = 0xee;
+ param4->unk08 = 0xffff;
+ param4->unk04 = 0;
+ param4->unk00 = 0;
+}
+
+THUMB_FUNC void FUN_02030C8C(struct UnkStruct0202F150_sub1 *param0,
+ u32 param1,
+ void *param2,
+ u32 param3,
+ struct UnkStruct0202F150_sub2 *param4)
+{
+#pragma unused(param3)
+ while (FUN_0202D478(param0) != 0)
+ {
+
+ u32 r7 = param4->unk0a;
+ if (r7 == 0xee)
+ {
+ r7 = FUN_0202D41C(param0);
+ if (r7 == 0xee)
+ {
+ continue;
+ }
+ }
+
+ int st10 = param0->unk04;
+ param4->unk0a = (u8)r7;
+ int r4 = param4->unk08;
+ if (r4 == 0xffff)
+ {
+ r4 = FUN_0202D9A0(r7);
+
+ if (UNK_021C59F4.unk04->unk689 != 0)
+ {
+ return;
+ }
+
+ if (r4 == 0xffff)
+ {
+ if (FUN_0202D478(param0) < 1)
+ {
+ param0->unk04 = (s16)st10;
+ return;
+ }
+
+ r4 = (int)FUN_0202D41C(param0) << 8;
+ r4 += FUN_0202D41C(param0);
+
+ st10 = param0->unk04;
+ }
+
+ param4->unk08 = (u16)r4;
+ }
+
+ if (FUN_0202DA04(r7) != 0)
+ {
+ if (param4->unk04 == 0)
+ {
+ param4->unk04 = FUN_0202DA40(r7, param1, param4->unk08);
+ }
+
+ int stc = FUN_0202D400(param0, param2, r4 - param4->unk00);
+
+ if (param4->unk04 != 0)
+ {
+ MI_CpuCopy8(param2, param4->unk04 + param4->unk00, (u32)stc);
+ }
+
+ if ((int)(param4->unk00 += stc) < (int)r4)
+ {
+ continue;
+ }
+
+ FUN_02030C70(param1, r7, (u32)r4, param4->unk04, param4);
+ }
+ else
+ {
+ if (FUN_0202D478(param0) >= r4)
+ {
+ FUN_0202D400(param0, param2, (u32)r4);
+ FUN_02030C70(param1, r7, (u32)r4, param2, param4);
+ }
+ else
+ {
+ param0->unk04 = (s16)st10;
+ return;
+ }
+ }
+ }
+}
+
+THUMB_FUNC void FUN_02030DA4()
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ if (UNK_021C59F4.unk04->unk68B == 0)
+ {
+ FUN_0202D4BC(&UNK_021C59F4.unk04->unk470);
+ if (FUN_0202D478(&UNK_021C59F4.unk04->unk470) > 0)
+ {
+ FUN_02030C8C(&UNK_021C59F4.unk04->unk470,
+ 0,
+ UNK_021C59F4.unk04->unk460,
+ 1,
+ (struct UnkStruct0202F150_sub2 *)&UNK_021C59F4.unk04->unk5EC);
+ }
+ }
+ }
+}
+
+THUMB_FUNC void FUN_02030DFC()
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ if (UNK_021C59F4.unk04->unk68B == 0)
+ {
+ int r7 = (int)FUN_0202D858((u16)FUN_02033534()) + 1;
+ int r4;
+ for (r4 = 0; r4 < r7; r4++)
+ {
+ FUN_0202D4BC(&UNK_021C59F4.unk04->unk4E8[r4]);
+ if (FUN_0202D478(&UNK_021C59F4.unk04->unk4E8[r4]) > 0)
+ {
+
+ FUN_02030C8C(&UNK_021C59F4.unk04->unk4E8[r4],
+ (u32)r4,
+ UNK_021C59F4.unk04->unk460,
+ 0,
+ &UNK_021C59F4.unk04->unk58C[r4]);
+ }
+ }
+ }
+ }
+}
+
+THUMB_FUNC u32 FUN_02030E7C(u16 param0)
+{
+ if (UNK_021C59F4.unk04 == NULL)
+ {
+ return 0;
+ }
+
+ if (FUN_02033534() >= 0x13)
+ {
+ if (UNK_021C59F4.unk04->unk687 != 0 && MOD04_021D8018() != 0xffffffff)
+ {
+ if (param0 == 0)
+ {
+ return 1;
+ }
+
+ if (param0 == 1)
+ {
+ return 1;
+ }
+ }
+
+ return 0;
+ }
+
+ if (FUN_02030F40() == 0)
+ {
+ return 0;
+ }
+
+ if (FUN_0202CBD4() != 4)
+ {
+ return 0;
+ }
+
+ if (FUN_02031190() == param0)
+ {
+ return 1;
+ }
+
+ if (FUN_02031190() == 0)
+ {
+ u16 r0 = FUN_0202CB8C();
+
+ if ((r0 & (1 << param0)) != 0)
+ {
+ return 1;
+ }
+ }
+ else
+ {
+ if ((UNK_021C59F4.unk04->unk65C & (1 << param0)) != 0)
+ {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+THUMB_FUNC u32 FUN_02030F20()
+{
+ u32 r4 = 0;
+ for (int i = 0; i < 8; i++)
+ {
+ if (FUN_02030E7C((u16)i) != 0)
+ {
+ r4++;
+ }
+ }
+
+ return r4;
+}
+
+THUMB_FUNC u32 FUN_02030F40()
+{
+ if (UNK_021C59F4.unk04 != NULL && FUN_02033534() >= 0x13)
+ {
+ return 1;
+ }
+
+ return FUN_0202EDF8();
+}
+
+THUMB_FUNC void FUN_02030F60(u8 param0)
+{
+ UNK_021C59F4.unk04->unk62B = param0;
+}
+
+THUMB_FUNC u8 FUN_02030F74(u32 param0)
+{
+ return UNK_021C59F4.unk04->unk620[param0];
+}
+
+THUMB_FUNC u32 FUN_02030F88(u32 param0)
+{
+ if (UNK_021C59F4.unk04 == NULL)
+ {
+ return 0;
+ }
+
+ u32 ret = UNK_021C59F4.unk04->unk610[param0];
+ UNK_021C59F4.unk04->unk610[param0] = 0;
+
+ return ret;
+}
+
+THUMB_FUNC void FUN_02030FA8()
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ UNK_021C59F4.unk04->unk628 |= 0x8000;
+ }
+}
+
+THUMB_FUNC void FUN_02030FC8()
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ UNK_021C59F4.unk04->unk628 = 0;
+ }
+}
+
+THUMB_FUNC u32 FUN_02030FE0()
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ return (u32)(UNK_021C59F4.unk04->unk628 & 0x8000);
+ }
+
+ return 1;
+}
+
+THUMB_FUNC void FUN_02031000(u32 param0, u8 *param1, u32 param2)
+{
+ if (FUN_0202FA28() == 1)
+ {
+ FUN_0202D684(UNK_021C59F4.unk04->unk54C, param0, param1, param2, 1, 0);
+ return;
+ }
+
+ FUN_0202D684(UNK_021C59F4.unk04->unk56C, param0, param1, param2, 1, 0);
+}
+
+THUMB_FUNC void FUN_0203105C(u32 param0, u8 *param1, u32 param2)
+{
+ FUN_0202D684(UNK_021C59F4.unk04->unk54C, param0, param1, param2, 0, 0);
+}
+
+THUMB_FUNC void FUN_02031088()
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ if (UNK_021C59F4.unk04->unk67B != 1)
+ {
+ if (UNK_021C59F4.unk04->unk67B != 3)
+ {
+ return;
+ }
+ }
+ else
+ {
+ u32 res;
+ if (FUN_0202FA28() == 1)
+ {
+ res = FUN_020311D0(0xb, &UNK_021C59F4.unk04->unk67C);
+ }
+ else
+ {
+ res = FUN_02030BC4(0xb, &UNK_021C59F4.unk04->unk67C, 1);
+ }
+
+ if (res == 0)
+ {
+ return;
+ }
+ UNK_021C59F4.unk04->unk67B = 2;
+ return;
+ }
+
+ if (FUN_020311D0(0xc, &UNK_021C59F4.unk04->unk67C) != 0)
+ {
+ FUN_0202F9E0(UNK_021C59F4.unk04->unk67C);
+ UNK_021C59F4.unk04->unk67B = 0;
+ }
+ }
+}
+
+THUMB_FUNC void FUN_0203110C(u32 param0, u32 param1, u8 *param2)
+{
+#pragma unused(param0)
+#pragma unused(param1)
+ if (FUN_02031190() == 0)
+ {
+ UNK_021C59F4.unk04->unk67B = 1;
+ UNK_021C59F4.unk04->unk67C = param2[0];
+ }
+}
+
+THUMB_FUNC void FUN_02031134(u32 param0, u32 param1, u8 *param2)
+{
+#pragma unused(param0)
+#pragma unused(param1)
+ if (FUN_02031190() != 0)
+ {
+ UNK_021C59F4.unk04->unk67C = param2[0];
+ UNK_021C59F4.unk04->unk67B = 3;
+ }
+}
+
+THUMB_FUNC void FUN_0203115C(u32 param0, u32 param1, u8 *param2)
+{
+#pragma unused(param0)
+#pragma unused(param1)
+ if (FUN_02031190() == 0 && UNK_021C59F4.unk04->unk67B == 2)
+ {
+ FUN_0202F9E0(*param2);
+ UNK_021C59F4.unk04->unk67B = 0;
+ }
+}
+
+THUMB_FUNC u16 FUN_02031190()
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ if (FUN_02033534() >= 0x13)
+ {
+ u32 res = MOD04_021D8018();
+ if (res != 0xffffffff)
+ {
+ return (u16)res;
+ }
+ }
+ else
+ {
+ if (FUN_02031280() != 0)
+ {
+ return 0;
+ }
+
+ return FUN_0202D19C();
+ }
+ }
+
+ return 0;
+}
+
+THUMB_FUNC u32 FUN_020311D0(u32 param0, u8 *param1)
+{
+ return FUN_02030ADC(param0, param1, 0);
+}
+
+THUMB_FUNC u32 FUN_020311DC(u32 param0)
+{
+ return FUN_02030ADC(param0, 0, 0);
+}
+
+THUMB_FUNC u32 FUN_020311E8()
+{
+ return FUN_0202EE24();
+}
+
+THUMB_FUNC u32 FUN_020311F0()
+{
+ if (FUN_02031280() != 0)
+ {
+ return 0;
+ }
+
+ if (UNK_021C59F4.unk04 != NULL && UNK_021C59F4.unk04->unk689 != 0)
+ {
+ FUN_020334E8(1, 1);
+ return 1;
+ }
+
+ return FUN_0202EE60();
+}
+
+THUMB_FUNC int FUN_02031228(u16 param0)
+{
+ if (FUN_0202D858(param0) >= 5)
+ {
+ return 0xc;
+ }
+
+ if (FUN_0202FA28() == 0)
+ {
+ return 0xc;
+ }
+
+ return 0x26;
+}
+
+THUMB_FUNC u32 FUN_02031248(u32 param0)
+{
+ return FUN_0202D858((u16)param0) + 1;
+}
+
+THUMB_FUNC u32 FUN_02031258(u32 param0)
+{
+ return FUN_0202D884((u16)param0) + 1;
+}
+
+THUMB_FUNC void FUN_02031268(u8 param0)
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ UNK_021C59F4.unk04->unk686 = param0;
+ }
+}
+
+THUMB_FUNC u8 FUN_02031280()
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ return UNK_021C59F4.unk04->unk686;
+ }
+
+ return 0;
+}
+
+THUMB_FUNC void FUN_0203129C()
+{
+ if (FUN_0202F03C() == 0 && FUN_02031190() == 0)
+ {
+ u8 st0;
+ FUN_02030C4C(2, &st0);
+ }
+
+ FUN_0202F05C();
+}
+
+#ifdef NONMATCHING
+THUMB_FUNC void FUN_020312BC(s64 *param0)
+{
+ RTCDate st10;
+ RTCTime st4;
+ GF_RTC_CopyDateTime(&st10, &st4);
+
+ gMain.unk2C + st4.second;
+ u32 r6 = st10.year << 4 + st10.month;
+ u32 r5 = 0 << 4 | st10.year >> 0x1c;
+ st4.second;
+
+ u32 st0 = st10.day;
+ st4.hour;
+ st4.minute;
+
+ 0x00000000;
+ (0x00000000 + r5) << 5;
+}
+#else
+THUMB_FUNC asm void FUN_020312BC(s64 *param0)
+{
+ // clang-format off
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ add r0, sp, #0x10
+ add r1, sp, #0x4
+ bl GF_RTC_CopyDateTime
+ ldr r0, =gMain
+ ldr r6, [sp, #0x10]
+ mov r5, #0x0
+ lsr r7, r6, #0x1c
+ lsl r5, r5, #0x4
+ ldr r1, [sp, #0xc]
+ ldr r0, [r0, #0x2c]
+ lsl r6, r6, #0x4
+ add r3, r1, r0
+ ldr r0, [sp, #0x18]
+ orr r5, r7
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x4]
+ add r6, r0, r6
+ ldr r0, =0x00000000
+ ldr r2, [sp, #0x8]
+ adc r0, r5
+ lsr r5, r6, #0x1b
+ lsl r0, r0, #0x5
+ orr r0, r5
+ ldr r5, [sp, #0x0]
+ lsl r6, r6, #0x5
+ add r6, r5, r6
+ ldr r5, =0x00000000
+ adc r5, r0
+ lsr r0, r6, #0x1b
+ lsl r5, r5, #0x5
+ orr r5, r0
+ lsl r0, r6, #0x5
+ add r6, r1, r0
+ ldr r1, =0x00000000
+ adc r1, r5
+ lsr r0, r6, #0x1a
+ lsl r1, r1, #0x6
+ orr r1, r0
+ lsl r0, r6, #0x6
+ add r5, r2, r0
+ ldr r2, =0x00000000
+ adc r2, r1
+ lsr r0, r5, #0x1a
+ lsl r1, r2, #0x6
+ orr r1, r0
+ lsl r0, r5, #0x6
+ add r2, r3, r0
+ ldr r0, =0x00000000
+ str r2, [r4, #0x0]
+ adc r0, r1
+ str r0, [r4, #0x4]
+ ldr r1, =0x6C078965
+ ldr r0, =0x5D588B65
+ str r1, [r4, #0x8]
+ str r0, [r4, #0xc]
+ ldr r0, =0x00269EC3
+ str r0, [r4, #0x10]
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+ add sp, #0x20
+ pop {r3-r7, pc}
+ // clang-format on
+}
+#endif
+
+THUMB_FUNC void FUN_02031354(u32 param0)
+{
+ FUN_0202D830(UNK_021C59F4.unk04->unk56C, param0);
+}
+
+THUMB_FUNC u32 FUN_02031370()
+{
+ return FUN_0202D4E4(UNK_021C59F4.unk04->unk56C);
+}
+
+THUMB_FUNC u32 FUN_02031388()
+{
+ return FUN_0202D4E4(UNK_021C59F4.unk04->unk54C);
+}
+
+THUMB_FUNC void FUN_020313A0(u8 param0)
+{
+ UNK_021C59F4.unk04->unk687 = param0;
+}
+
+THUMB_FUNC void FUN_020313B4(u8 param0, u32 param1)
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ UNK_021C59F4.unk04->unk677[param1] = param0;
+ }
+}
+
+THUMB_FUNC u32 FUN_020313CC(u32 param0)
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ if (UNK_021C59F4.unk04->unk677[param0] != 0xff)
+ {
+ return UNK_021C59F4.unk04->unk677[param0];
+ }
+ }
+
+ return param0;
+}
+
+THUMB_FUNC u32 FUN_020313EC()
+{
+ if (FUN_02033534() < 0x13)
+ {
+ return 0;
+ }
+
+ return MOD04_021D8624();
+}
+
+THUMB_FUNC void FUN_02031400(u32 param0)
+{
+ if (FUN_02033534() >= 0x13)
+ {
+ UNK_021C59F4.unk04->unk630 = param0;
+ if (param0 != 0)
+ {
+ UNK_021C59F4.unk04->unk634 = 0;
+ UNK_021C59F4.unk04->unk638[0] = 0;
+ UNK_021C59F4.unk04->unk638[1] = 0;
+ }
+ }
+}
+
+THUMB_FUNC u32 FUN_02031438()
+{
+ if (UNK_021C59F4.unk04->unk681 != 0)
+ {
+ return 1;
+ }
+
+ return 0;
+}
+
+THUMB_FUNC void FUN_02031454()
+{
+ UNK_021C59F4.unk04->unk689 = 1;
+}
+
+THUMB_FUNC void FUN_02031468()
+{
+ if (UNK_021C59F4.unk04 != NULL)
+ {
+ UNK_021C59F4.unk04->unk68A = 1;
+ }
+} \ No newline at end of file
diff --git a/arm9/src/unk_0204AEA8.c b/arm9/src/unk_0204AEA8.c
new file mode 100644
index 00000000..9c572a8e
--- /dev/null
+++ b/arm9/src/unk_0204AEA8.c
@@ -0,0 +1,43 @@
+#include "global.h"
+#include "heap.h"
+#include "unk_0204639C.h"
+#include "unk_0204AEA8.h"
+
+extern void MOD05_021E3444(u32, struct UnkStruct_0204639C *, u32);
+extern void FUN_0200433C(u32, u16, u32);
+
+THUMB_FUNC BOOL FUN_0204AEA8(struct UnkStruct_0204639C *a0)
+{
+ struct UnkStruct_0204639C *v0 = FUN_02046528(a0);
+ u32 *v1 = FUN_0204652C(a0);
+
+ switch (v1[0])
+ {
+ case 0:
+ MOD05_021E3444(v1[2], v0, (u32)v1 + 4);
+ FUN_0200433C(5, (u16)v1[3], 1);
+ v1[0]++;
+ break;
+ case 1:
+ if (v1[1] == 1)
+ {
+ FreeToHeap(v1);
+ return TRUE;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC void FUN_0204AEF8(struct UnkStruct_0204639C *a0, u32 a1, u32 a2)
+{
+ u32 *v0 = AllocFromHeapAtEnd(11, 4 * sizeof(u32));
+
+ v0[0] = 0;
+ v0[1] = 0;
+ v0[2] = a1;
+ v0[3] = a2;
+
+ FUN_0204640C(a0, FUN_0204AEA8, v0);
+}
diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c
new file mode 100644
index 00000000..7bcdf950
--- /dev/null
+++ b/arm9/src/unk_0205FA2C.c
@@ -0,0 +1,543 @@
+#include "unk_0205FA2C.h"
+
+extern void *UNK_020F96DC;
+extern void *UNK_020FA6E8;
+extern u32 FUN_02079C70(struct SaveBlock2 *sav2);
+extern void FUN_0207B000(struct UnkPlayerStruct2_0205FA2C *ptr, const u8 param1[12]);
+extern void FUN_0207C2A4(struct UnkPlayerStruct2_0205FA2C *ptr, struct PlayerData *player_data);
+extern u32 FUN_0203384C(u32 *param0);
+extern u32 *FUN_02038790(struct UnkStruct_0204639C *param0, u16 param1, u16 param2);
+extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16);
+extern u32 FUN_02031190();
+extern u32 FUN_020316E0(u32 param0);
+extern u16 MOD06_02244660(struct UnkStruct_0204639C *param0, u32 param1);
+extern u16 MOD06_022446BC(struct UnkStruct_0204639C *param0, u32 param1);
+extern u16 MOD06_022446E0(struct UnkStruct_0204639C *param0, u32 param1);
+extern void FUN_0202A5CC(u32 param0, u32 param1);
+extern u32 FUN_0202A5D0(u32 param0);
+extern u32 FUN_0202A150(struct UnkStruct_02029FB0 *param0, u32 param1);
+extern u32 FUN_0202A8D8(struct SaveBlock2 *sav2);
+extern u32 FUN_0202A578(u32 param0, u32 param1, u32 param2);
+extern u32 FUN_02026CC4(struct SaveBlock2 *sav2);
+extern u32 FUN_02025D94(u32 param0, u32 param1);
+extern u32 FUN_0202A8CC(struct SaveBlock2 *sav2);
+extern void FUN_0202A2C4(u32 param0, u32 param1, u32 *param2);
+extern u32 FUN_0202A240(u32 param0, u32 param1, u32 param2);
+extern int FUN_0202A538(u32 param0, u16 param1, u32 param2);
+
+const u8 UNK_020F7454[] = {
+ 0x00,
+ 0x01,
+ 0x02,
+ 0x04,
+ 0x03,
+ 0x05,
+ 0x06,
+ 0x07,
+ 0x08,
+};
+
+THUMB_FUNC u32 FUN_0205FA2C(
+ struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id)
+{
+ struct UnkPlayerStruct1_0205FA2C *ptr = (struct UnkPlayerStruct1_0205FA2C *)AllocFromHeapAtEnd(
+ heap_id, sizeof(struct UnkPlayerStruct1_0205FA2C));
+
+ struct SaveBlock2 *sav2 = (struct SaveBlock2 *)(param1->unkC);
+ MI_CpuFill8(ptr, 0, sizeof(struct UnkPlayerStruct1_0205FA2C));
+
+ ptr->options = Sav2_PlayerData_GetOptionsAddr(sav2);
+
+ ptr->player_party = SavArray_PlayerParty_get(sav2);
+
+ ptr->bag = Sav2_Bag_get(sav2);
+
+ ptr->unk21 = 0;
+ ptr->unk20 = param0->unk08;
+ ptr->unk32 = param0->unk0a;
+ ptr->unk322 = param0->unk0b;
+ ptr->unk33 = param0->unk0c;
+ ptr->unk22 = param0->unk0d;
+
+ for (u8 i = 0; i < 6; i++)
+ {
+ ptr->unk2c[i] = param0->unk0e[i];
+ }
+
+ FUN_020373D4(param1, (u32)&UNK_020F96DC, (u32)ptr);
+
+ *param0->unk14 = ptr;
+
+ return 1;
+}
+
+THUMB_FUNC u32 FUN_0205FAD8(
+ struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1)
+{
+ if (FUN_0204647C(param1))
+ {
+ return 1;
+ }
+
+ struct UnkPlayerStruct1_0205FA2C *ptr = (struct UnkPlayerStruct1_0205FA2C *)*param0->unk14;
+
+ u8 r1 = ptr->unk22;
+ if (r1 != 6)
+ {
+ if (r1 == 7)
+ {
+ param0->unk00 = 0;
+ return 4;
+ }
+ }
+ else
+ {
+ param0->unk00 = 1;
+ return 4;
+ }
+
+ MI_CpuCopy8(ptr->unk2c, param0->unk0e, 6);
+
+ param0->unk0d = ptr->unk22;
+ FreeToHeap(ptr);
+
+ *param0->unk14 = NULL;
+
+ return 2;
+}
+
+THUMB_FUNC u32 FUN_0205FB34(
+ struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id)
+{
+ struct SaveBlock2 *sav2 = (struct SaveBlock2 *)(param1->unkC);
+
+ struct UnkPlayerStruct2_0205FA2C *ptr = (struct UnkPlayerStruct2_0205FA2C *)AllocFromHeapAtEnd(
+ heap_id, sizeof(struct UnkPlayerStruct2_0205FA2C));
+ MI_CpuFill8(ptr, 0, sizeof(struct UnkPlayerStruct2_0205FA2C));
+
+ ptr->options = Sav2_PlayerData_GetOptionsAddr(sav2);
+ ptr->player_party = SavArray_PlayerParty_get(sav2);
+ ptr->IsNatDex = SavArray_IsNatDexEnabled(sav2);
+ ptr->unk2c = FUN_02079C70(sav2);
+
+ ptr->unk11 = 1;
+ ptr->unk14 = param0->unk0d;
+
+ ptr->party_count = (u8)GetPartyCount(ptr->player_party);
+
+ ptr->unk18 = 0;
+ ptr->unk12 = param0->unk09;
+
+ ptr->unk20 = FUN_0202A918(sav2);
+
+ FUN_0207B000(ptr, UNK_020F7454);
+
+ FUN_0207C2A4(ptr, Sav2_PlayerData_GetProfileAddr(sav2));
+
+ FUN_020373D4(param1, (u32)&UNK_020FA6E8, (u32)ptr);
+
+ *param0->unk14 = ptr;
+
+ return 3;
+}
+
+THUMB_FUNC u32 FUN_0205FBC0(
+ struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1)
+{
+ if (FUN_0204647C(param1))
+ {
+ return 3;
+ }
+
+ struct UnkPlayerStruct2_0205FA2C *ptr = (struct UnkPlayerStruct2_0205FA2C *)*param0->unk14;
+ param0->unk0d = ptr->unk14;
+ FreeToHeap(ptr);
+
+ *param0->unk14 = NULL;
+
+ return 0;
+}
+
+THUMB_FUNC int FUN_0205FBE8(struct UnkStruct_0204639C *param0)
+{
+ struct UnkStruct_0204639C *res = FUN_02046528(param0);
+ struct UnkCallbackStruct1_0205FA2C *res2 =
+ (struct UnkCallbackStruct1_0205FA2C *)FUN_0204652C(param0);
+ switch (res2->unk04)
+ {
+ case 0:
+ res2->unk04 = FUN_0205FA2C(res2, res, 0xb);
+ break;
+ case 1:
+ res2->unk04 = FUN_0205FAD8(res2, res);
+ break;
+ case 2:
+ res2->unk04 = FUN_0205FB34(res2, res, 0xb);
+ break;
+ case 3:
+ res2->unk04 = FUN_0205FBC0(res2, res);
+ break;
+ case 4:
+ FreeToHeap(res2);
+ return 1;
+ }
+
+ return 0;
+}
+
+THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0,
+ void **param1,
+ u8 param2,
+ u8 param3,
+ u8 param4,
+ u8 param5,
+ u8 param6,
+ u8 param7)
+{
+ struct UnkStruct_0204639C *res = FUN_02046528(param0);
+
+ struct UnkCallbackStruct1_0205FA2C *ptr = (struct UnkCallbackStruct1_0205FA2C *)AllocFromHeap(
+ 0xb, sizeof(struct UnkCallbackStruct1_0205FA2C));
+ MI_CpuFill8(ptr, 0, sizeof(struct UnkCallbackStruct1_0205FA2C));
+
+ ptr->unk08 = param2;
+ ptr->unk09 = param3;
+ ptr->unk0a = param4;
+ ptr->unk0b = param5;
+ ptr->unk0c = param6;
+ ptr->unk0d = param7;
+ ptr->unk14 = param1;
+
+ FUN_0204640C(res->unk10, &FUN_0205FBE8, (u32 *)ptr);
+}
+
+THUMB_FUNC u32 FUN_0205FC9C(
+ struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1)
+{
+ if (FUN_0203384C(param1->unkC))
+ {
+
+ param0->unk08 = FUN_02038790(param1, param0->unk12, param0->unk14);
+ return 1;
+ }
+
+ param0->unk00 = 1;
+ return 2;
+}
+
+THUMB_FUNC u32 FUN_0205FCC4(
+ struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1)
+{
+ if (FUN_0204647C(param1))
+ {
+ return 1;
+ }
+
+ param0->unk00 = param0->unk08[8];
+ FreeToHeap(param0->unk08);
+
+ return 2;
+}
+
+THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0)
+{
+ struct UnkStruct_0204639C *res = FUN_02046528(param0);
+ struct UnkCallbackStruct2_0205FA2C *res2 =
+ (struct UnkCallbackStruct2_0205FA2C *)FUN_0204652C(param0);
+
+ switch (res2->unk04)
+ {
+ case 0:
+ res2->unk04 = FUN_0205FC9C(res2, res);
+ break;
+ case 1:
+ res2->unk04 = FUN_0205FCC4(res2, res);
+ break;
+ case 2:
+ u16 *var = GetVarPointer((struct UnkSavStruct80 *)res, res2->unk10);
+ *var = (u16)res2->unk00;
+ FreeToHeap(res2);
+
+ return 1;
+ }
+
+ return 0;
+}
+
+THUMB_FUNC void FUN_0205FD38(struct UnkStruct_0204639C *param0, u16 param1, u16 param2, u16 param3)
+{
+ struct UnkStruct_0204639C *res = FUN_02046528(param0);
+ struct UnkCallbackStruct2_0205FA2C *ptr = (struct UnkCallbackStruct2_0205FA2C *)AllocFromHeap(
+ 0xb, sizeof(struct UnkCallbackStruct2_0205FA2C));
+ MI_CpuFill8(ptr, 0, sizeof(struct UnkCallbackStruct2_0205FA2C));
+
+ ptr->unk12 = param1;
+ ptr->unk14 = param3;
+ ptr->unk10 = param2;
+
+ FUN_0204640C(res->unk10, &FUN_0205FCE8, (u32 *)ptr);
+}
+
+THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0)
+{
+ struct UnkStruct_0204639C *res = FUN_02046528(param0);
+ u16 *res2 = (u16 *)FUN_0204652C(param0);
+ u32 res3 = FUN_020316E0(1 - FUN_02031190());
+ if (res3 == 0)
+ {
+ return 0;
+ }
+
+ u16 *var = GetVarPointer((struct UnkSavStruct80 *)res, res2[1]);
+ switch (res2[0])
+ {
+ case 0:
+ *var = MOD06_02244660(res, res3);
+ break;
+ case 1:
+ *var = MOD06_022446BC(res, res3);
+
+ break;
+ case 2:
+ *var = MOD06_022446E0(res, res3);
+
+ break;
+ }
+
+ FreeToHeap(res2);
+
+ return 1;
+}
+
+THUMB_FUNC void FUN_0205FDDC(struct UnkStruct_0204639C *param0, u16 param1, u16 param2)
+{
+ struct UnkStruct_0204639C *res = FUN_02046528(param0);
+
+ u16 *ptr = AllocFromHeap(0xb, 2 * sizeof(u16));
+ MI_CpuFill8(ptr, 0, 2 * sizeof(u16));
+
+ ptr[0] = param1;
+ ptr[1] = param2;
+
+ FUN_0204640C(res->unk10, &FUN_0205FD70, (u32 *)ptr);
+}
+
+THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2)
+{
+
+ u16 res = (u16)FUN_0202A150(FUN_02029FC8(sav2), 0x35);
+ if (res < 20)
+ {
+ return 0;
+ }
+
+ u32 res2 = FUN_0202A8D8(sav2);
+
+ u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0);
+ u8 res4 = (u8)FUN_0202A578(res2, 0, 0);
+ u8 res5 = (u8)FUN_0202A578(res2, 1, 0);
+
+ u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0);
+ u8 res7 = (u8)FUN_0202A578(res2, 2, 0);
+ u8 res8 = (u8)FUN_0202A578(res2, 3, 0);
+
+ if (res3 != 0 && res4 != 0 && res5 != 0)
+ {
+ return 0;
+ }
+
+ u32 res9 = FUN_02026CC4(sav2);
+ if (res3 == 0)
+ {
+ if (FUN_02025D94(res9, 0x55) != 0)
+ {
+ FUN_0202A578(res2, 0xd, 1);
+ return 1;
+ }
+
+ if (res6 == 0)
+ {
+ FUN_0202A578(res2, 0xe, 1);
+ }
+
+ return 4;
+ }
+
+ if (res < 50)
+ {
+ return 0;
+ }
+
+ if (res4 == 0)
+ {
+ if (FUN_02025D94(res9, 0x56) != 0)
+ {
+ FUN_0202A578(res2, 0, 1);
+ return 2;
+ }
+
+ if (res7 == 0)
+ {
+ FUN_0202A578(res2, 2, 1);
+ }
+
+ return 4;
+ }
+
+ if (res < 100 || res5 != 0)
+ {
+ return 0;
+ }
+
+ if (FUN_02025D94(res9, 0x57) != 0)
+ {
+ FUN_0202A578(res2, 1, 1);
+ return 3;
+ }
+
+ if (res8 == 0)
+ {
+ FUN_0202A578(res2, 3, 1);
+ }
+
+ return 4;
+}
+
+THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2)
+{
+ u16 res = (u16)FUN_0202A150(FUN_02029FC8(sav2), 0x35);
+ if (res < 20)
+ {
+ return 0;
+ }
+
+ u32 res2 = FUN_0202A8D8(sav2);
+
+ u8 res3 = (u8)FUN_0202A578(res2, 0xd, 0);
+ u8 res4 = (u8)FUN_0202A578(res2, 0, 0);
+ u8 res5 = (u8)FUN_0202A578(res2, 1, 0);
+
+ u8 res6 = (u8)FUN_0202A578(res2, 0xe, 0);
+ u8 res7 = (u8)FUN_0202A578(res2, 2, 0);
+ u8 res8 = (u8)FUN_0202A578(res2, 3, 0);
+
+ if (res3 != 0 && res4 != 0 && res5 != 0)
+ {
+ return 0;
+ }
+
+ if (res3 == 0)
+ {
+ if (res6 != 0)
+ {
+ return 4;
+ }
+
+ return 1;
+ }
+
+ if (res < 50)
+ {
+ return 0;
+ }
+
+ if (res4 == 0)
+ {
+ if (res7 != 0)
+ {
+ return 5;
+ }
+
+ return 2;
+ }
+
+ if (res < 100)
+ {
+ return 0;
+ }
+
+ if (res5 != 0)
+ {
+ return 0;
+ }
+
+ if (res8 != 0)
+ {
+ return 6;
+ }
+
+ return 3;
+}
+
+THUMB_FUNC void FUN_02060044(u16 **param0, u32 *param1)
+{
+ u16 *ptr = param0[42];
+
+ ptr[18] += param1[0];
+ ptr[20] += param1[1];
+ ptr[19] += param1[2];
+}
+
+THUMB_FUNC u32 FUN_02060064(u32 param0)
+{
+ return param0 * 0x02E90EDD + 1;
+}
+
+THUMB_FUNC u32 FUN_02060070(u32 param0)
+{
+ return param0 * 0x5D588B65 + 1;
+}
+
+THUMB_FUNC u32 FUN_0206007C(struct SaveBlock2 *sav2)
+{
+ u32 res = FUN_02060070(FUN_020287A4(FUN_0202881C(sav2)));
+
+ FUN_0202A5CC(FUN_0202A8D8(sav2), res);
+
+ return res;
+}
+
+THUMB_FUNC u32 FUN_020600A0(struct SaveBlock2 *sav2)
+{
+ u32 res = FUN_0202A8D8(sav2);
+
+ u32 res2 = FUN_02060070(FUN_0202A5D0(res));
+
+ FUN_0202A5CC(res, res2);
+ u32 res3 = FUN_02060064(res2);
+
+ FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3);
+
+ return res3;
+}
+
+THUMB_FUNC u32 FUN_020600DC(struct SaveBlock2 *sav2)
+{
+ u32 res = FUN_0202A8D8(sav2);
+
+ u32 res2 = FUN_0202A8CC(sav2);
+
+ u32 res3 = FUN_02060064(FUN_0202A5D0(res));
+
+ int i = 0;
+ int res4 = FUN_0202A538(res, (u16)FUN_0202A240(res2, 0, 0), 0) * 0x18;
+
+ for (i = 0; i < res4; i++)
+ {
+ res3 = FUN_02060064(res3);
+ }
+
+ FUN_0202A2C4(FUN_0202A8CC(sav2), 0xa, &res3);
+
+ return res3;
+}
+
+THUMB_FUNC BOOL FUN_02060144(u32 **param0)
+{
+ if (param0[7][0] == SPECIES_ARCEUS)
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
diff --git a/arm9/src/unk_02064E4C.c b/arm9/src/unk_02064E4C.c
index 1e9f8515..90ff8340 100644
--- a/arm9/src/unk_02064E4C.c
+++ b/arm9/src/unk_02064E4C.c
@@ -16,7 +16,7 @@ void FUN_02064E4C(struct MsgData * msgData, u16 map_sec, struct String * dest)
void FUN_02064E60(u32 map_no, u32 heap_id, struct String * dest)
{
struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 382, heap_id);
- u16 map_sec = FUN_02034824(map_no);
+ u16 map_sec = MapHeader_GetMapSec(map_no);
FUN_02064E4C(msgData, map_sec, dest);
diff --git a/arm9/src/unk_0206BB28.c b/arm9/src/unk_0206BB28.c
index baaecc6a..e7c12793 100644
--- a/arm9/src/unk_0206BB28.c
+++ b/arm9/src/unk_0206BB28.c
@@ -6,12 +6,12 @@
#pragma thumb on
-BOOL FUN_0206BB28(struct SaveBlock2 * sav2)
+BOOL SavArray_IsNatDexEnabled(struct SaveBlock2 * sav2)
{
- return FUN_0206BB34(Sav2_Pokedex_get(sav2));
+ return Pokedex_IsNatDexEnabled(Sav2_Pokedex_get(sav2));
}
-BOOL FUN_0206BB34(struct Pokedex * pokedex)
+BOOL Pokedex_IsNatDexEnabled(struct Pokedex * pokedex)
{
return Pokedex_GetNatDexFlag(pokedex) == TRUE;
}
diff --git a/arm9/temp.c b/arm9/temp.c
deleted file mode 100644
index e69de29b..00000000
--- a/arm9/temp.c
+++ /dev/null