summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira Akashi <rubenru09@aol.com>2021-06-10 22:42:30 +0100
committerGitHub <noreply@github.com>2021-06-10 22:42:30 +0100
commite8d0b49a6864d6077a5d7b1c123c49481fe14bfe (patch)
treed9c489014e94856bc94273499ea7b5eca66ac0dc
parent68013d52ebaf7094a782260d97888e9cb6b1d172 (diff)
parentbf8b0b7a9f33de9de350927b5c4001909da3c889 (diff)
Merge pull request #401 from PikalaxALT/pikalax_work
[LEAK-INFORMED] Match and document funcs in unk_02016B94.c
-rw-r--r--arm9/CMakeLists.txt2
-rw-r--r--arm9/arm9.lsf2
-rw-r--r--arm9/asm/RUNTIME_CPLUS_StaticInitializers.s2
-rw-r--r--arm9/asm/unk_02001B80.s4
-rw-r--r--arm9/asm/unk_020023C0.s30
-rw-r--r--arm9/asm/unk_0200CABC.s228
-rw-r--r--arm9/asm/unk_02012CC8.s2
-rw-r--r--arm9/asm/unk_020142EC.s4
-rw-r--r--arm9/asm/unk_02014590.s10
-rw-r--r--arm9/asm/unk_02033F50.s18
-rw-r--r--arm9/asm/unk_02034188.s36
-rw-r--r--arm9/asm/unk_02035068.s24
-rw-r--r--arm9/asm/unk_02048120.s12
-rw-r--r--arm9/asm/unk_020484A8.s18
-rw-r--r--arm9/asm/unk_02048904.s4
-rw-r--r--arm9/asm/unk_02050E48.s28
-rw-r--r--arm9/asm/unk_02053750.s2
-rw-r--r--arm9/asm/unk_0205CE48.s2
-rw-r--r--arm9/asm/unk_020625EC.s58
-rw-r--r--arm9/asm/unk_020653EC.s34
-rw-r--r--arm9/asm/unk_0206C700.s34
-rw-r--r--arm9/asm/unk_0206F3FC.s78
-rw-r--r--arm9/asm/unk_02072548.s104
-rw-r--r--arm9/asm/unk_02073DA8.s28
-rw-r--r--arm9/asm/unk_020772F0.s78
-rw-r--r--arm9/asm/unk_020799E8.s10
-rw-r--r--arm9/asm/unk_02079C70.s186
-rw-r--r--arm9/asm/unk_0207C328.s2
-rw-r--r--arm9/asm/unk_0207D5BC.s186
-rw-r--r--arm9/asm/unk_0207F95C.s12
-rw-r--r--arm9/asm/unk_020859C0.s16
-rw-r--r--arm9/asm/unk_02086084.s10
-rw-r--r--arm9/asm/unk_02086414.s32
-rw-r--r--arm9/asm/unk_02089498.s40
-rw-r--r--arm9/asm/unk_02089960.s44
-rw-r--r--arm9/asm/unk_02089D90.s16
-rw-r--r--arm9/asm/unk_02089F24.s32
-rw-r--r--arm9/asm/unk_0208A338.s26
-rw-r--r--arm9/global.inc172
-rw-r--r--arm9/lib/include/GX_bgcnt.h414
-rw-r--r--arm9/lib/include/GX_g2.h80
-rw-r--r--arm9/lib/include/GX_vramcnt.h24
-rw-r--r--arm9/lib/include/OS_interrupt.h2
-rw-r--r--arm9/lib/include/fx.h3
-rw-r--r--arm9/lib/include/gx.h40
-rw-r--r--arm9/lib/include/registers.h375
-rw-r--r--arm9/lib/src/GX_g2.c10
-rw-r--r--arm9/lib/src/GX_load2d.c4
-rw-r--r--arm9/lib/src/GX_vramcnt.c88
-rw-r--r--arm9/modules/05/asm/mod05_021D74E0.s30
-rw-r--r--arm9/modules/05/asm/mod05_021DC0B8.s12
-rw-r--r--arm9/modules/05/asm/mod05_021E1AD8.s32
-rw-r--r--arm9/modules/05/asm/mod05_021E2E88.s20
-rw-r--r--arm9/modules/05/asm/mod05_021E3444.s28
-rw-r--r--arm9/modules/05/asm/mod05_021E80F8.s30
-rw-r--r--arm9/modules/05/asm/mod05_021E8310.s4
-rw-r--r--arm9/modules/05/asm/module_05.s100
-rw-r--r--arm9/modules/06/asm/module_06.s198
-rw-r--r--arm9/modules/07/asm/module_07.s138
-rw-r--r--arm9/modules/08/asm/module_08.s222
-rw-r--r--arm9/modules/09/asm/module_09.s272
-rw-r--r--arm9/modules/11/asm/module_11_thumb1.s56
-rw-r--r--arm9/modules/11/asm/module_11_thumb2.s166
-rw-r--r--arm9/modules/12/asm/module_12.s360
-rw-r--r--arm9/modules/13/asm/module_13_arm2.s20
-rw-r--r--arm9/modules/14/asm/module_14.s306
-rw-r--r--arm9/modules/15/asm/module_15.s164
-rw-r--r--arm9/modules/16/asm/module_16.s352
-rw-r--r--arm9/modules/17/asm/module_17.s158
-rw-r--r--arm9/modules/18/asm/module_18.s224
-rw-r--r--arm9/modules/19/asm/module_19.s4
-rw-r--r--arm9/modules/20/asm/module_20.s74
-rw-r--r--arm9/modules/21/src/mod21_02254A6C.c24
-rw-r--r--arm9/modules/22/asm/module_22.s26
-rw-r--r--arm9/modules/23/asm/module_23.s36
-rw-r--r--arm9/modules/24/asm/module_24.s18
-rw-r--r--arm9/modules/25/asm/module_25.s8
-rw-r--r--arm9/modules/26/asm/module_26.s12
-rw-r--r--arm9/modules/27/asm/module_27.s36
-rw-r--r--arm9/modules/28/asm/module_28.s8
-rw-r--r--arm9/modules/29/asm/module_29.s6
-rw-r--r--arm9/modules/30/asm/module_30.s6
-rw-r--r--arm9/modules/31/asm/module_31.s6
-rw-r--r--arm9/modules/32/asm/module_32.s6
-rw-r--r--arm9/modules/33/asm/module_33.s8
-rw-r--r--arm9/modules/34/asm/module_34.s12
-rw-r--r--arm9/modules/35/asm/module_35.s6
-rw-r--r--arm9/modules/36/asm/module_36.s24
-rw-r--r--arm9/modules/37/asm/module_37.s6
-rw-r--r--arm9/modules/38/asm/module_38.s34
-rw-r--r--arm9/modules/39/asm/module_39.s6
-rw-r--r--arm9/modules/40/asm/module_40.s6
-rw-r--r--arm9/modules/41/asm/module_41.s6
-rw-r--r--arm9/modules/42/asm/module_42.s6
-rw-r--r--arm9/modules/43/asm/module_43.s14
-rw-r--r--arm9/modules/44/asm/module_44.s6
-rw-r--r--arm9/modules/45/asm/module_45.s28
-rw-r--r--arm9/modules/46/asm/module_46.s8
-rw-r--r--arm9/modules/47/asm/module_47.s22
-rw-r--r--arm9/modules/48/asm/module_48.s4
-rw-r--r--arm9/modules/49/asm/module_49.s18
-rw-r--r--arm9/modules/50/asm/module_50.s10
-rw-r--r--arm9/modules/51/asm/module_51.s58
-rw-r--r--arm9/modules/53/asm/module_53.s54
-rw-r--r--arm9/modules/54/asm/module_54.s52
-rw-r--r--arm9/modules/55/asm/module_55.s250
-rw-r--r--arm9/modules/56/asm/module_56.s258
-rw-r--r--arm9/modules/57/asm/module_57.s74
-rw-r--r--arm9/modules/58/asm/module_58.s60
-rw-r--r--arm9/modules/59/asm/mod59_021D74E0_asm.s278
-rw-r--r--arm9/modules/59/asm/mod59_021D9868.s58
-rw-r--r--arm9/modules/59/include/mod59_021D74E0.h2
-rw-r--r--arm9/modules/59/src/mod59_021D74E0_src.c4
-rw-r--r--arm9/modules/60/asm/module_60.s66
-rw-r--r--arm9/modules/61/asm/module_61.s84
-rw-r--r--arm9/modules/62/asm/module_62.s74
-rw-r--r--arm9/modules/63/asm/mod63_021D74E0.s48
-rw-r--r--arm9/modules/63/asm/mod63_021D8890.s100
-rw-r--r--arm9/modules/64/asm/module_64.s42
-rw-r--r--arm9/modules/65/asm/module_65.s58
-rw-r--r--arm9/modules/66/asm/module_66.s170
-rw-r--r--arm9/modules/67/asm/module_67.s80
-rw-r--r--arm9/modules/68/asm/module_68.s48
-rw-r--r--arm9/modules/69/asm/module_69.s44
-rw-r--r--arm9/modules/70/asm/module_70.s36
-rw-r--r--arm9/modules/71/asm/module_71.s220
-rw-r--r--arm9/modules/73/asm/module_73.s82
-rw-r--r--arm9/modules/74/asm/module_74.s28
-rw-r--r--arm9/modules/75/asm/module_75.s192
-rw-r--r--arm9/modules/76/asm/module_76.s112
-rw-r--r--arm9/modules/77/asm/module_77.s60
-rw-r--r--arm9/modules/80/asm/module_80.s402
-rw-r--r--arm9/modules/81/asm/module_81.s216
-rw-r--r--arm9/modules/82/asm/module_82.s52
-rw-r--r--arm9/modules/83/asm/module_83.s334
-rw-r--r--arm9/modules/84/asm/module_84_thumb1.s12
-rw-r--r--arm9/modules/84/asm/module_84_thumb2.s104
-rw-r--r--arm9/modules/85/asm/module_85.s74
-rw-r--r--arm9/modules/86/asm/module_86.s114
-rw-r--r--arm9/src/GX_layers.c37
-rw-r--r--arm9/src/bg_window.c5456
-rw-r--r--arm9/src/error_message_reset.c70
-rw-r--r--arm9/src/filesystem.c30
-rw-r--r--arm9/src/gf_gfx_loader.c12
-rw-r--r--arm9/src/main.c3
-rw-r--r--arm9/src/poke_overlay.c19
-rw-r--r--arm9/src/scrcmd.c14
-rw-r--r--arm9/src/scrcmd_24.c140
-rw-r--r--arm9/src/script.c2
-rw-r--r--arm9/src/script_pokemon_util.c2
-rw-r--r--arm9/src/text_02054590.c22
-rw-r--r--arm9/src/timer3.c46
-rw-r--r--arm9/src/unk_0200BB14.c40
-rw-r--r--arm9/src/unk_02016B94.c8110
-rw-r--r--arm9/src/unk_0202E29C.c2
-rw-r--r--arm9/src/unk_0202F150.c11
-rw-r--r--include/GX_layers.h6
-rw-r--r--include/bg_window.h424
-rw-r--r--include/gf_gfx_loader.h6
-rw-r--r--include/list_menu_cursor.h2
-rw-r--r--include/script.h4
-rw-r--r--include/script_buffers.h2
-rw-r--r--include/text.h2
-rw-r--r--include/text_02054590.h6
-rw-r--r--include/timer3.h6
-rw-r--r--include/unk_02016B94.h340
166 files changed, 11535 insertions, 13331 deletions
diff --git a/arm9/CMakeLists.txt b/arm9/CMakeLists.txt
index 0de93feb..8bdaeba1 100644
--- a/arm9/CMakeLists.txt
+++ b/arm9/CMakeLists.txt
@@ -11,7 +11,7 @@ enable_language(ASM)
add_compile_options(-fms-extensions)
-file(GLOB_RECURSE SOURCES "*.c" "*.cpp")
+file(GLOB_RECURSE SOURCES "*.c" "*.cpp" "*.s")
file(GLOB MODULE_INC modules/*/include)
add_executable(DP_Arm9 ${SOURCES})
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 7848df11..8dd9759c 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -53,7 +53,7 @@ Static arm9
Object unk_02015E30.o
Object game_init.o
Object heap.o
- Object unk_02016B94.o
+ Object bg_window.o
Object unk_0201B1A8.o
Object unk_0201B4E8.o
Object unk_0201B6D0.o
diff --git a/arm9/asm/RUNTIME_CPLUS_StaticInitializers.s b/arm9/asm/RUNTIME_CPLUS_StaticInitializers.s
index 403e0812..c1446521 100644
--- a/arm9/asm/RUNTIME_CPLUS_StaticInitializers.s
+++ b/arm9/asm/RUNTIME_CPLUS_StaticInitializers.s
@@ -5,7 +5,7 @@
.global __global_destructor_chain
__global_destructor_chain: ; 0x021D74C8
- .space 0x18
+ .space 0xC
.text
diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s
index 103b59f4..a8cd984f 100644
--- a/arm9/asm/unk_02001B80.s
+++ b/arm9/asm/unk_02001B80.s
@@ -804,7 +804,7 @@ CreateYesNoMenu: ; 0x020020EC
strb r0, [r3, #0xb]
ldr r2, [sp, #0x8]
add r0, r7, #0x0
- bl FUN_02019150
+ bl AddWindow
ldr r0, [sp, #0x18]
ldr r2, [sp, #0xc]
ldr r3, [sp, #0x10]
@@ -883,7 +883,7 @@ FUN_020021EC: ; 0x020021EC
mov r1, #0x0
bl FUN_0200CCF8
ldr r0, [r5, #0x4]
- bl FUN_02019178
+ bl RemoveWindow
ldr r1, [r5, #0x4]
add r0, r4, #0x0
bl FreeToHeapExplicit
diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s
index 7a509f0b..dc0c45ef 100644
--- a/arm9/asm/unk_020023C0.s
+++ b/arm9/asm/unk_020023C0.s
@@ -468,7 +468,7 @@ _02002700:
ldrb r2, [r2, #0x0]
ldrb r3, [r3, #0x0]
ldr r0, [r4, #0x4]
- bl FUN_0201974C
+ bl CopyGlyphToWindow
add r5, #0x80
ldrb r1, [r5, #0x0]
ldrb r0, [r4, #0xe]
@@ -677,13 +677,13 @@ _0200288E:
pop {r4-r7, pc}
_020028AC:
ldr r0, [r5, #0x4]
- bl FUN_0201AB08
+ bl GetWindowBgId
str r0, [sp, #0x20]
ldr r0, [r5, #0x4]
- bl FUN_0201AB14
+ bl GetWindowX
str r0, [sp, #0x24]
ldr r0, [r5, #0x4]
- bl FUN_0201AB18
+ bl GetWindowY
str r0, [sp, #0x28]
ldr r0, [r5, #0x4]
bl GetWindowWidth
@@ -723,7 +723,7 @@ _020028AC:
lsl r3, r3, #0x18
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x20]
add r0, r0, #0x2
@@ -752,7 +752,7 @@ _020028AC:
lsl r3, r3, #0x18
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x28]
add r7, r6, #0x0
add r0, r0, #0x3
@@ -781,7 +781,7 @@ _020028AC:
lsl r3, r3, #0x18
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x14]
add r6, #0x15
lsl r0, r0, #0x18
@@ -807,11 +807,11 @@ _020028AC:
lsl r3, r3, #0x18
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r5, #0x4]
ldr r1, [sp, #0x20]
ldr r0, [r0, #0x0]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldrb r1, [r4, #0x1]
mov r0, #0x1f
bic r1, r0
@@ -844,13 +844,13 @@ FUN_02002A00: ; 0x02002A00
sub sp, #0x18
add r5, r0, #0x0
ldr r0, [r5, #0x4]
- bl FUN_0201AB08
+ bl GetWindowBgId
str r0, [sp, #0x10]
ldr r0, [r5, #0x4]
- bl FUN_0201AB14
+ bl GetWindowX
str r0, [sp, #0x14]
ldr r0, [r5, #0x4]
- bl FUN_0201AB18
+ bl GetWindowY
add r6, r0, #0x0
ldr r0, [r5, #0x4]
bl GetWindowWidth
@@ -878,7 +878,7 @@ FUN_02002A00: ; 0x02002A00
ldr r1, [sp, #0x10]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -897,11 +897,11 @@ FUN_02002A00: ; 0x02002A00
ldr r1, [sp, #0x10]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r5, #0x4]
ldr r1, [sp, #0x10]
ldr r0, [r0, #0x0]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x18
pop {r3-r7, pc}
nop
diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s
index 9476691e..62bace0d 100644
--- a/arm9/asm/unk_0200CABC.s
+++ b/arm9/asm/unk_0200CABC.s
@@ -147,7 +147,7 @@ FUN_0200CB6C: ; 0x0200CB6C
add r2, sp, #0x28
ldrh r2, [r2, #0x1c]
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r1, sp, #0x28
ldrh r4, [r1, #0x1c]
lsl r0, r7, #0x18
@@ -164,7 +164,7 @@ FUN_0200CB6C: ; 0x0200CB6C
ldr r1, [sp, #0x14]
ldr r3, [sp, #0x18]
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, sp, #0x28
ldrb r1, [r0, #0x10]
ldr r0, [sp, #0x18]
@@ -185,7 +185,7 @@ FUN_0200CB6C: ; 0x0200CB6C
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
add r2, r4, #0x3
str r0, [sp, #0x0]
@@ -201,7 +201,7 @@ FUN_0200CB6C: ; 0x0200CB6C
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
ldr r3, [sp, #0x20]
str r0, [sp, #0x0]
@@ -218,7 +218,7 @@ FUN_0200CB6C: ; 0x0200CB6C
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, sp, #0x28
ldrb r1, [r0, #0x14]
ldr r0, [sp, #0x1c]
@@ -237,7 +237,7 @@ FUN_0200CB6C: ; 0x0200CB6C
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -253,7 +253,7 @@ FUN_0200CB6C: ; 0x0200CB6C
ldr r1, [sp, #0x14]
ldr r3, [sp, #0x18]
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -269,7 +269,7 @@ FUN_0200CB6C: ; 0x0200CB6C
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x24
pop {r4-r7, pc}
.balign 4
@@ -282,13 +282,13 @@ FUN_0200CCA4: ; 0x0200CCA4
add r4, r1, #0x0
add r6, r2, #0x0
add r7, r3, #0x0
- bl FUN_0201AB08
+ bl GetWindowBgId
str r0, [sp, #0x10]
add r0, r5, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
str r0, [sp, #0x14]
add r0, r5, #0x0
- bl FUN_0201AB18
+ bl GetWindowY
str r0, [sp, #0x18]
add r0, r5, #0x0
bl GetWindowWidth
@@ -319,13 +319,13 @@ FUN_0200CCF8: ; 0x0200CCF8
sub sp, #0x18
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0201AB08
+ bl GetWindowBgId
str r0, [sp, #0x10]
add r0, r5, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
add r6, r0, #0x0
add r0, r5, #0x0
- bl FUN_0201AB18
+ bl GetWindowY
add r7, r0, #0x0
add r0, r5, #0x0
bl GetWindowWidth
@@ -352,11 +352,11 @@ FUN_0200CCF8: ; 0x0200CCF8
ldr r0, [r5, #0x0]
ldr r1, [sp, #0x10]
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
cmp r4, #0x0
bne _0200CD5A
add r0, r5, #0x0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
_0200CD5A:
add sp, #0x18
pop {r3-r7, pc}
@@ -454,7 +454,7 @@ FUN_0200CDD8: ; 0x0200CDD8
lsl r3, r3, #0x18
ldrh r2, [r2, #0x1c]
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x14]
sub r0, r0, #0x1
str r0, [sp, #0x24]
@@ -475,7 +475,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -491,7 +491,7 @@ FUN_0200CDD8: ; 0x0200CDD8
ldr r3, [sp, #0x14]
add r0, r7, #0x0
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, sp, #0x38
ldrb r1, [r0, #0x10]
ldr r0, [sp, #0x14]
@@ -512,7 +512,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x2c]
add r2, r4, #0x4
add r0, r0, #0x1
@@ -531,7 +531,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x2c]
add r2, r4, #0x5
add r0, r0, #0x2
@@ -550,7 +550,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x18]
ldr r3, [sp, #0x28]
str r0, [sp, #0x0]
@@ -566,7 +566,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x18]
ldr r3, [sp, #0x24]
str r0, [sp, #0x0]
@@ -582,7 +582,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x18]
add r2, r4, #0x0
str r0, [sp, #0x0]
@@ -599,7 +599,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x18]
add r2, r4, #0x0
str r0, [sp, #0x0]
@@ -616,7 +616,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x18]
add r2, r4, #0x0
str r0, [sp, #0x0]
@@ -633,7 +633,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r2, r4, #0x0
ldr r3, [sp, #0x28]
add r2, #0xc
@@ -653,7 +653,7 @@ FUN_0200CDD8: ; 0x0200CDD8
ldr r1, [sp, #0x10]
add r0, r7, #0x0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -670,7 +670,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -687,7 +687,7 @@ FUN_0200CDD8: ; 0x0200CDD8
ldr r3, [sp, #0x14]
add r0, r7, #0x0
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -704,7 +704,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -721,7 +721,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -737,7 +737,7 @@ FUN_0200CDD8: ; 0x0200CDD8
add r0, r7, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x30
pop {r3-r7, pc}
.balign 4
@@ -749,13 +749,13 @@ FUN_0200D06C: ; 0x0200D06C
add r5, r0, #0x0
add r4, r1, #0x0
add r6, r2, #0x0
- bl FUN_0201AB08
+ bl GetWindowBgId
str r0, [sp, #0x10]
add r0, r5, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
str r0, [sp, #0x14]
add r0, r5, #0x0
- bl FUN_0201AB18
+ bl GetWindowY
str r0, [sp, #0x18]
add r0, r5, #0x0
bl GetWindowWidth
@@ -804,13 +804,13 @@ FUN_0200D0E0: ; 0x0200D0E0
sub sp, #0x18
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0201AB08
+ bl GetWindowBgId
str r0, [sp, #0x10]
add r0, r5, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
add r6, r0, #0x0
add r0, r5, #0x0
- bl FUN_0201AB18
+ bl GetWindowY
add r7, r0, #0x0
add r0, r5, #0x0
bl GetWindowWidth
@@ -837,11 +837,11 @@ FUN_0200D0E0: ; 0x0200D0E0
ldr r0, [r5, #0x0]
ldr r1, [sp, #0x10]
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
cmp r4, #0x0
bne _0200D142
add r0, r5, #0x0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
_0200D142:
add sp, #0x18
pop {r3-r7, pc}
@@ -890,10 +890,10 @@ FUN_0200D18C: ; 0x0200D18C
str r1, [sp, #0x24]
str r0, [sp, #0x20]
ldr r0, [r0, #0x0]
- bl FUN_02016BB8
+ bl BgConfig_GetHeapId
add r6, r0, #0x0
ldr r0, [sp, #0x20]
- bl FUN_0201AB08
+ bl GetWindowBgId
mov r1, #0x6
str r0, [sp, #0x28]
add r0, r6, #0x0
@@ -901,7 +901,7 @@ FUN_0200D18C: ; 0x0200D18C
bl AllocFromHeap
add r5, r0, #0x0
ldr r0, [sp, #0x28]
- bl FUN_020187B0
+ bl BgGetCharPtr
add r4, r0, #0x0
str r6, [sp, #0x0]
mov r0, #0x26
@@ -978,7 +978,7 @@ _0200D1E0:
ldr r0, [r0, #0x0]
add r2, r5, #0x0
lsl r3, r3, #0x6
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r0, [sp, #0x24]
bl FUN_02002840
ldr r0, [sp, #0x2c]
@@ -1049,7 +1049,7 @@ _0200D2D2:
ldr r1, [sp, #0x8]
add r2, r4, #0x0
lsl r3, r3, #0x6
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r0, [sp, #0xc]
bl FreeToHeap
add r0, r4, #0x0
@@ -1095,7 +1095,7 @@ FUN_0200D300: ; 0x0200D300
add r0, r6, #0x0
mov r2, #0x20
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
ldr r1, [sp, #0x14]
add r0, r4, #0x0
bl FreeToHeapExplicit
@@ -1176,7 +1176,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldrh r2, [r2, #0x1c]
lsr r3, r3, #0x18
str r0, [sp, #0x10]
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x18]
str r0, [sp, #0x30]
sub r0, #0x8
@@ -1198,7 +1198,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, sp, #0x48
ldrb r0, [r0, #0x10]
add r2, r4, #0x2
@@ -1225,7 +1225,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r0, [sp, #0x10]
ldr r1, [sp, #0x14]
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r2, r4, #0x3
lsl r2, r2, #0x10
ldr r1, [sp, #0x18]
@@ -1245,7 +1245,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r0, [sp, #0x10]
ldr r1, [sp, #0x14]
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x38]
add r2, r4, #0x4
add r0, r0, #0x1
@@ -1264,7 +1264,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x38]
add r0, r0, #0x2
str r0, [sp, #0x28]
@@ -1283,7 +1283,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
ldr r3, [sp, #0x34]
str r0, [sp, #0x0]
@@ -1298,7 +1298,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
ldr r3, [sp, #0x30]
str r0, [sp, #0x0]
@@ -1313,7 +1313,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
add r2, r4, #0x0
str r0, [sp, #0x0]
@@ -1330,7 +1330,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
add r2, r4, #0x0
str r0, [sp, #0x0]
@@ -1346,7 +1346,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
add r2, r4, #0x0
str r0, [sp, #0x0]
@@ -1362,7 +1362,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
add r2, r4, #0x0
str r0, [sp, #0x0]
@@ -1378,7 +1378,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
add r2, r4, #0x0
add r6, r0, r6
@@ -1397,7 +1397,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -1414,7 +1414,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -1434,7 +1434,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -1451,7 +1451,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -1468,7 +1468,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -1484,7 +1484,7 @@ FUN_0200D3B0: ; 0x0200D3B0
ldr r1, [sp, #0x14]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x40
pop {r3-r7, pc}
.balign 4
@@ -1496,16 +1496,16 @@ FUN_0200D678: ; 0x0200D678
str r1, [sp, #0x10]
add r7, r0, #0x0
str r2, [sp, #0x14]
- bl FUN_0201AB08
+ bl GetWindowBgId
str r0, [sp, #0x20]
add r0, r7, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
sub r0, r0, #0x7
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x18]
add r0, r7, #0x0
- bl FUN_0201AB18
+ bl GetWindowY
str r0, [sp, #0x1c]
mov r0, #0x0
str r0, [sp, #0x24]
@@ -1538,7 +1538,7 @@ _0200D6BA:
ldr r1, [sp, #0x20]
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -1562,17 +1562,17 @@ FUN_0200D6F8: ; 0x0200D6F8
str r1, [sp, #0x10]
add r4, r2, #0x0
add r6, r3, #0x0
- bl FUN_0201AB08
+ bl GetWindowBgId
str r0, [sp, #0x14]
add r0, sp, #0x30
ldrb r0, [r0, #0x10]
cmp r0, #0x1
bhi _0200D756
add r0, r5, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
str r0, [sp, #0x18]
add r0, r5, #0x0
- bl FUN_0201AB18
+ bl GetWindowY
str r0, [sp, #0x1c]
add r0, r5, #0x0
bl GetWindowWidth
@@ -1598,10 +1598,10 @@ FUN_0200D6F8: ; 0x0200D6F8
b _0200D788
_0200D756:
add r0, r5, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
str r0, [sp, #0x20]
add r0, r5, #0x0
- bl FUN_0201AB18
+ bl GetWindowY
str r0, [sp, #0x24]
add r0, r5, #0x0
bl GetWindowWidth
@@ -1637,15 +1637,15 @@ FUN_0200D7A0: ; 0x0200D7A0
add r5, r0, #0x0
add r4, r1, #0x0
str r2, [sp, #0x10]
- bl FUN_0201AB08
+ bl GetWindowBgId
str r0, [sp, #0x14]
cmp r4, #0x1
bhi _0200D7FE
add r0, r5, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_0201AB18
+ bl GetWindowY
add r7, r0, #0x0
add r0, r5, #0x0
bl GetWindowWidth
@@ -1671,14 +1671,14 @@ FUN_0200D7A0: ; 0x0200D7A0
ldr r0, [r5, #0x0]
ldr r1, [sp, #0x14]
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
b _0200D846
_0200D7FE:
add r0, r5, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_0201AB18
+ bl GetWindowY
add r6, r0, #0x0
add r0, r5, #0x0
bl GetWindowWidth
@@ -1704,13 +1704,13 @@ _0200D7FE:
ldr r0, [r5, #0x0]
ldr r1, [sp, #0x14]
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
_0200D846:
ldr r0, [sp, #0x10]
cmp r0, #0x0
bne _0200D852
add r0, r5, #0x0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
_0200D852:
add sp, #0x18
pop {r3-r7, pc}
@@ -1723,11 +1723,11 @@ FUN_0200D858: ; 0x0200D858
str r0, [sp, #0x20]
ldr r0, [r0, #0x0]
str r1, [sp, #0x24]
- bl FUN_02016BB8
+ bl BgConfig_GetHeapId
str r0, [sp, #0x28]
ldr r0, [sp, #0x20]
- bl FUN_0201AB08
- bl FUN_020187B0
+ bl GetWindowBgId
+ bl BgGetCharPtr
add r5, r0, #0x0
ldr r0, [sp, #0x28]
ldr r1, _0200D970 ; =0x0000048C
@@ -1854,13 +1854,13 @@ FUN_0200D980: ; 0x0200D980
add r5, r0, #0x0
ldr r0, [r5, #0x0]
add r6, r1, #0x0
- bl FUN_0201AB08
+ bl GetWindowBgId
add r4, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_0201AB14
+ bl GetWindowX
str r0, [sp, #0x18]
ldr r0, [r5, #0x0]
- bl FUN_0201AB18
+ bl GetWindowY
str r0, [sp, #0x1c]
ldr r0, [r5, #0x0]
bl GetWindowWidth
@@ -1877,7 +1877,7 @@ FUN_0200D980: ; 0x0200D980
ldr r0, [r5, #0x0]
mov r3, #0x80
ldr r0, [r0, #0x0]
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x18]
add r7, r0, #0x2
@@ -1904,7 +1904,7 @@ FUN_0200D980: ; 0x0200D980
add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -1924,7 +1924,7 @@ FUN_0200D980: ; 0x0200D980
add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
ldr r3, [sp, #0x14]
add r7, r0, #0x3
@@ -1946,7 +1946,7 @@ FUN_0200D980: ; 0x0200D980
add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -1965,11 +1965,11 @@ FUN_0200D980: ; 0x0200D980
add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r5, #0x0]
add r1, r4, #0x0
ldr r0, [r0, #0x0]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x24
pop {r4-r7, pc}
_0200DA8A:
@@ -1988,7 +1988,7 @@ _0200DA8A:
add r2, r2, r3
ldr r0, [r0, #0x0]
mov r3, #0x80
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
cmp r6, #0x0
beq _0200DB72
ldr r0, [sp, #0x1c]
@@ -2017,7 +2017,7 @@ _0200DA8A:
add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -2037,7 +2037,7 @@ _0200DA8A:
add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
ldr r3, [sp, #0x10]
add r7, r0, #0x3
@@ -2059,7 +2059,7 @@ _0200DA8A:
add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
@@ -2078,11 +2078,11 @@ _0200DA8A:
add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r5, #0x0]
add r1, r4, #0x0
ldr r0, [r0, #0x0]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_0200DB72:
add sp, #0x24
pop {r4-r7, pc}
@@ -2228,7 +2228,7 @@ FUN_0200DC4C: ; 0x0200DC4C
bl FUN_0200DFD8
add r0, r6, #0x0
add r1, r7, #0x0
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _0200DCA0 ; =0x0000016F
add r0, r4, r0
add sp, #0xc
@@ -2266,7 +2266,7 @@ FUN_0200DCA4: ; 0x0200DCA4
bl FUN_0200DFD8
add r0, r6, #0x0
add r1, r7, #0x0
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _0200DCF4 ; =0x0000016F
add r0, r4, r0
add sp, #0xc
@@ -2646,7 +2646,7 @@ FUN_0200DFD8: ; 0x0200DFD8
lsl r3, r3, #0x18
lsr r3, r3, #0x18
add r6, r2, #0x0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r3, _0200E184 ; =0x0000016E
add r2, r6, #0x1
ldrb r0, [r5, r3]
@@ -2667,7 +2667,7 @@ FUN_0200DFD8: ; 0x0200DFD8
ldrb r3, [r5, r3]
ldr r0, [r5, r0]
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r3, _0200E184 ; =0x0000016E
add r2, r6, #0x2
ldrb r0, [r5, r3]
@@ -2690,7 +2690,7 @@ FUN_0200DFD8: ; 0x0200DFD8
lsl r3, r3, #0x18
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r3, _0200E184 ; =0x0000016E
add r2, r6, #0x4
ldrb r0, [r5, r3]
@@ -2707,7 +2707,7 @@ FUN_0200DFD8: ; 0x0200DFD8
ldrb r3, [r5, r3]
ldr r0, [r5, r0]
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r3, _0200E184 ; =0x0000016E
add r2, r6, #0x3
ldrb r0, [r5, r3]
@@ -2728,7 +2728,7 @@ FUN_0200DFD8: ; 0x0200DFD8
lsl r3, r3, #0x18
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r3, _0200E184 ; =0x0000016E
add r2, r6, #0x5
ldrb r0, [r5, r3]
@@ -2749,7 +2749,7 @@ FUN_0200DFD8: ; 0x0200DFD8
lsl r3, r3, #0x18
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r3, _0200E184 ; =0x0000016E
add r2, r6, #0x6
ldrb r0, [r5, r3]
@@ -2772,7 +2772,7 @@ FUN_0200DFD8: ; 0x0200DFD8
lsl r3, r3, #0x18
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r3, _0200E184 ; =0x0000016E
add r2, r6, #0x7
ldrb r0, [r5, r3]
@@ -2793,7 +2793,7 @@ FUN_0200DFD8: ; 0x0200DFD8
ldrb r3, [r5, r3]
ldr r0, [r5, r0]
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r3, _0200E184 ; =0x0000016E
add r6, #0x8
ldrb r0, [r5, r3]
@@ -2816,13 +2816,13 @@ FUN_0200DFD8: ; 0x0200DFD8
lsl r3, r3, #0x18
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r1, #0x5a
lsl r1, r1, #0x2
ldr r0, [r5, r1]
add r1, r1, #0x4
ldrb r1, [r5, r1]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x10
pop {r4-r6, pc}
nop
@@ -2853,13 +2853,13 @@ FUN_0200E188: ; 0x0200E188
sub r3, r3, #0x1
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r1, #0x5a
lsl r1, r1, #0x2
ldr r0, [r4, r1]
add r1, r1, #0x4
ldrb r1, [r4, r1]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x10
pop {r4, pc}
.balign 4
diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s
index 038bee3f..e54565f1 100644
--- a/arm9/asm/unk_02012CC8.s
+++ b/arm9/asm/unk_02012CC8.s
@@ -1565,6 +1565,6 @@ ListMenuUpdateCursorObj: ; 0x020136F8
add r3, r4, #0x0
bl AddTextPrinterParameterized2
add r0, r5, #0x0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4-r6, pc}
diff --git a/arm9/asm/unk_020142EC.s b/arm9/asm/unk_020142EC.s
index c933b981..5526b320 100644
--- a/arm9/asm/unk_020142EC.s
+++ b/arm9/asm/unk_020142EC.s
@@ -258,7 +258,7 @@ FUN_020144B0: ; 0x020144B0
mov r2, #0x20
lsl r3, r3, #0x15
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
pop {r3, pc}
.balign 4
@@ -272,7 +272,7 @@ FUN_020144C8: ; 0x020144C8
mov r2, #0x20
lsl r3, r3, #0x15
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
pop {r3, pc}
.balign 4
diff --git a/arm9/asm/unk_02014590.s b/arm9/asm/unk_02014590.s
index a2515a3d..201e2a14 100644
--- a/arm9/asm/unk_02014590.s
+++ b/arm9/asm/unk_02014590.s
@@ -557,12 +557,12 @@ FUN_02014970: ; 0x02014970
lsl r1, r1, #0x18
ldr r0, [r6, #0x0]
lsr r1, r1, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r1, [r6, #0x4]
ldr r0, [r6, #0x0]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r4, #0x0
add r5, r6, #0x0
_020149B4:
@@ -742,7 +742,7 @@ FUN_02014AD4: ; 0x02014AD4
ldr r0, [r4, #0x0]
ldr r3, [r3, #0x10]
lsr r1, r1, #0x18
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
add r0, r5, #0x0
bl FUN_0200CAB4
ldr r0, [r4, #0x8]
@@ -817,11 +817,11 @@ FUN_02014B58: ; 0x02014B58
lsr r2, r2, #0x18
lsr r3, r3, #0x18
add r5, r0, #0x0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
lsl r1, r4, #0x18
add r0, r5, #0x0
lsr r1, r1, #0x18
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x1c
pop {r3-r6, pc}
.balign 4
diff --git a/arm9/asm/unk_02033F50.s b/arm9/asm/unk_02033F50.s
index 985c0e82..7240c93f 100644
--- a/arm9/asm/unk_02033F50.s
+++ b/arm9/asm/unk_02033F50.s
@@ -132,18 +132,18 @@ _02033FA4:
ldr r0, _02034170 ; =UNK_020EECD0
bl GX_SetBanks
add r0, r4, #0x0
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r6, r0, #0x0
ldr r0, _02034174 ; =UNK_020EECA4
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r1, #0x0
ldr r2, _02034178 ; =UNK_020EECB4
add r0, r6, #0x0
add r3, r1, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r6, #0x0
mov r1, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0x0
str r1, [sp, #0x0]
ldr r2, _0203417C ; =0x000001F7
@@ -159,13 +159,13 @@ _02033FA4:
mov r1, #0x20
add r2, r0, #0x0
add r3, r4, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r1, _02034180 ; =0x00006C21
mov r0, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r1, _02034180 ; =0x00006C21
mov r0, #0x4
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x1
mov r1, #0x1a
mov r2, #0xc8
@@ -189,7 +189,7 @@ _02033FA4:
ldr r2, _02034184 ; =UNK_020EEC9C
add r0, r6, #0x0
add r1, sp, #0x18
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd0
str r0, [sp, #0x0]
mov r0, #0x90
@@ -241,7 +241,7 @@ _02033FA4:
mov r2, #0x3
bl FUN_0200A274
add r0, sp, #0x18
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [sp, #0x10]
bl DestroyMsgData
add r0, r4, #0x0
diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s
index 0e9dbb92..66bb542c 100644
--- a/arm9/asm/unk_02034188.s
+++ b/arm9/asm/unk_02034188.s
@@ -80,18 +80,18 @@ FUN_02034188: ; 0x02034188
ldr r0, _02034380 ; =UNK_020EED2C
bl GX_SetBanks
add r0, r4, #0x0
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [sp, #0x10]
ldr r0, _02034384 ; =UNK_020EED00
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r1, #0x0
ldr r0, [sp, #0x10]
ldr r2, _02034388 ; =UNK_020EED10
add r3, r1, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [sp, #0x10]
mov r1, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0x0
str r1, [sp, #0x0]
ldr r0, [sp, #0x10]
@@ -107,13 +107,13 @@ FUN_02034188: ; 0x02034188
mov r1, #0x20
add r2, r0, #0x0
add r3, r4, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r1, _02034390 ; =0x00006C21
mov r0, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r1, _02034390 ; =0x00006C21
mov r0, #0x4
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r2, _02034394 ; =0x00000265
mov r0, #0x1
mov r1, #0x1a
@@ -129,7 +129,7 @@ FUN_02034188: ; 0x02034188
ldr r0, [sp, #0x10]
ldr r2, _02034398 ; =UNK_020EECF8
add r1, sp, #0x14
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd0
str r0, [sp, #0x0]
mov r0, #0x90
@@ -189,36 +189,36 @@ _020342E4:
b _020342E4
_02034308:
add r0, sp, #0x14
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [sp, #0xc]
bl DestroyMsgData
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x3
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x4
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x5
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x6
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x7
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [sp, #0x10]
mov r1, #0x0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [sp, #0x10]
bl FreeToHeap
add sp, #0x24
diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s
index 03a16da6..245c750f 100644
--- a/arm9/asm/unk_02035068.s
+++ b/arm9/asm/unk_02035068.s
@@ -552,12 +552,12 @@ _02035440:
mov r1, #0x1
bl FUN_0200CCF8
add r0, r4, #0x0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r6, #0x0
bl FUN_020358A0
ldr r0, [r5, #0x8]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r4, #0x0
bl FreeToHeap
ldr r0, [r5, #0x34]
@@ -616,7 +616,7 @@ FUN_0203549C: ; 0x0203549C
ldr r0, [sp, #0x1c]
mov r3, #0x14
ldr r0, [r0, #0x8]
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x1
str r0, [sp, #0x0]
mov r3, #0xb
@@ -773,7 +773,7 @@ _02035614:
bl FUN_02001B8C
str r0, [r4, #0x20]
add r0, r4, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [sp, #0x1c]
ldr r0, [r0, #0xc]
bl Sav2_PlayerData_GetProfileAddr
@@ -948,7 +948,7 @@ _0203576C:
ldr r0, [r4, #0x8]
add r1, #0x10
mov r2, #0x3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x1
str r0, [sp, #0x0]
mov r3, #0xb
@@ -1058,7 +1058,7 @@ _0203584C:
bl DestroyMsgData
add r5, #0x10
add r0, r5, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_0203588E:
add sp, #0x20
pop {r3-r7, pc}
@@ -1093,7 +1093,7 @@ _020358CE:
bl FUN_0200CCF8
add r5, #0x10
add r0, r5, #0x0
- bl FUN_02019178
+ bl RemoveWindow
_020358E0:
pop {r3-r5, pc}
.balign 4
@@ -1587,7 +1587,7 @@ FUN_02035CA0: ; 0x02035CA0
add r4, r0, #0x0
bl FUN_02035718
add r0, r4, #0x0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0x0
bl FUN_020358A0
mov r1, #0x72
@@ -2657,9 +2657,9 @@ FUN_020365BC: ; 0x020365BC
bl FUN_0200CCF8
ldrb r1, [r4, #0x4]
ldr r0, [r4, #0x0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r4, #0x0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0x0
bl FUN_020358A0
mov r0, #0x4
@@ -2927,9 +2927,9 @@ FUN_020367E8: ; 0x020367E8
bl FUN_0200CCF8
ldrb r1, [r4, #0x4]
ldr r0, [r4, #0x0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r4, #0x0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0x0
bl FUN_020358A0
ldr r0, [r6, #0xc]
diff --git a/arm9/asm/unk_02048120.s b/arm9/asm/unk_02048120.s
index fcee180d..68018241 100644
--- a/arm9/asm/unk_02048120.s
+++ b/arm9/asm/unk_02048120.s
@@ -34,12 +34,12 @@ FUN_02048120: ; 0x02048120
ldr r0, _02048158 ; =UNK_020F465C
bl GX_SetBanks
ldr r0, _0204815C ; =UNK_020F4630
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r2, _02048160 ; =UNK_020F4640
add r0, r4, #0x0
mov r1, #0x3
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x20
str r0, [sp, #0x0]
mov r0, #0xb
@@ -77,7 +77,7 @@ _0204817A:
str r0, [r4, #0x0]
str r5, [r4, #0x4]
mov r0, #0xb
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x8]
bl FUN_02048120
mov r2, #0x52
@@ -94,7 +94,7 @@ _0204817A:
ldr r0, [r4, #0x8]
ldr r2, _02048208 ; =UNK_020F4628
add r1, #0xc
- bl FUN_02019150
+ bl AddWindow
add r0, r5, #0x0
bl ScriptEnvironment_GetSav2Ptr
bl Sav2_PlayerData_GetProfileAddr
@@ -221,14 +221,14 @@ _020482B2:
bl FUN_0200D0E0
add r0, r4, #0x0
add r0, #0xc
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x20]
bl ScrStrBufs_delete
ldr r0, [r4, #0x1c]
bl DestroyMsgData
ldr r0, [r4, #0x8]
mov r1, #0x3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x8]
bl FreeToHeap
add r0, r4, #0x0
diff --git a/arm9/asm/unk_020484A8.s b/arm9/asm/unk_020484A8.s
index 47b2c109..7e896527 100644
--- a/arm9/asm/unk_020484A8.s
+++ b/arm9/asm/unk_020484A8.s
@@ -352,20 +352,20 @@ FUN_02048764: ; 0x02048764
orr r0, r1
strh r0, [r2, #0x0]
ldr r0, _020487DC ; =UNK_020F4684
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r0, #0x3
mov r1, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r0, [r4, #0x8]
ldr r2, _020487E0 ; =UNK_020F4694
mov r1, #0x3
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r1, #0x20
mov r0, #0x3
mov r2, #0x0
add r3, r1, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r2, #0x0
str r2, [sp, #0x0]
mov r0, #0x20
@@ -376,10 +376,10 @@ FUN_02048764: ; 0x02048764
ldr r0, [r4, #0x8]
mov r1, #0x3
add r3, r2, #0x0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r4, #0x8]
mov r1, #0x3
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r4, pc}
nop
@@ -514,15 +514,15 @@ FUN_020488D4: ; 0x020488D4
_020488E4:
add r0, r4, #0x0
add r0, #0x1c
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
beq _020488F8
add r4, #0x1c
add r0, r4, #0x0
- bl FUN_02019178
+ bl RemoveWindow
_020488F8:
ldr r0, [r5, #0x8]
mov r1, #0x3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r3-r5, pc}
.balign 4
diff --git a/arm9/asm/unk_02048904.s b/arm9/asm/unk_02048904.s
index 48c9a801..501432c0 100644
--- a/arm9/asm/unk_02048904.s
+++ b/arm9/asm/unk_02048904.s
@@ -2064,7 +2064,7 @@ _0204992E:
bl FUN_0200D0E0
add r0, r4, #0x0
add r0, #0x24
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x3
str r0, [r4, #0x0]
b _02049AB2
@@ -2075,7 +2075,7 @@ _02049946:
bl FUN_0200D0E0
add r0, r4, #0x0
add r0, #0x24
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x5
str r0, [r4, #0x0]
b _02049AB2
diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s
index b4b0d845..7a921b4a 100644
--- a/arm9/asm/unk_02050E48.s
+++ b/arm9/asm/unk_02050E48.s
@@ -1201,7 +1201,7 @@ FUN_020517C0: ; 0x020517C0
add r4, #0x14
add r0, r4, #0x0
add r6, r1, #0x0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
bne _020517F2
ldr r0, [r5, #0x24]
@@ -1237,7 +1237,7 @@ FUN_02051810: ; 0x02051810
add r5, r0, #0x0
add r0, #0x14
add r4, r1, #0x0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
beq _02051846
cmp r4, #0x0
@@ -1248,35 +1248,35 @@ FUN_02051810: ; 0x02051810
bl FUN_0200D0E0
add r0, r5, #0x0
add r0, #0x14
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
_02051836:
add r0, r5, #0x0
add r0, #0x14
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0x0
add r0, #0x14
bl InitWindow
_02051846:
add r0, r5, #0x0
add r0, #0x54
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
beq _02051862
add r0, r5, #0x0
add r0, #0x54
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0x0
add r0, #0x54
bl InitWindow
_02051862:
add r0, r5, #0x0
add r0, #0x64
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
beq _0205187E
add r0, r5, #0x0
add r0, #0x64
- bl FUN_02019178
+ bl RemoveWindow
add r5, #0x64
add r0, r5, #0x0
bl InitWindow
@@ -1673,7 +1673,7 @@ FUN_02051B68: ; 0x02051B68
add r0, #0x54
str r1, [sp, #0x14]
str r0, [sp, #0x20]
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
bne _02051C34
ldr r2, _02051C84 ; =0x0000016A
@@ -1698,7 +1698,7 @@ FUN_02051B68: ; 0x02051B68
ldr r0, [r0, #0x8]
mov r2, #0x3
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x4
@@ -1807,7 +1807,7 @@ FUN_02051C88: ; 0x02051C88
add r7, #0x64
add r0, r7, #0x0
str r1, [sp, #0x14]
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
bne _02051D0A
mov r0, #0xb
@@ -1824,7 +1824,7 @@ FUN_02051C88: ; 0x02051C88
ldr r0, [r0, #0x8]
mov r2, #0x3
mov r3, #0x14
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x4
@@ -1996,7 +1996,7 @@ _02051DE0:
lsl r3, r3, #0x4
bl ListMenuUpdateCursorObj
ldr r0, [r4, #0x7c]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
mov r0, #0x0
add sp, #0x8
pop {r4, pc}
@@ -2205,7 +2205,7 @@ _02051F7C:
bl FUN_0200D0E0
add r0, r4, #0x0
add r0, #0x8
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x0
bl MOD05_021D7CA4
ldr r0, [r4, #0x28]
diff --git a/arm9/asm/unk_02053750.s b/arm9/asm/unk_02053750.s
index 6c8bd92b..d20950c3 100644
--- a/arm9/asm/unk_02053750.s
+++ b/arm9/asm/unk_02053750.s
@@ -305,7 +305,7 @@ _02053912:
add r1, sp, #0xc
mov r2, #0x2
mov r3, #0x0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r0, #0x1
mov r1, #0x0
bl GX_EngineBToggleLayers
diff --git a/arm9/asm/unk_0205CE48.s b/arm9/asm/unk_0205CE48.s
index 5eaebfb2..ba92a404 100644
--- a/arm9/asm/unk_0205CE48.s
+++ b/arm9/asm/unk_0205CE48.s
@@ -1471,7 +1471,7 @@ _0205D984:
ldr r0, [r5, #0x34]
bl FUN_020587B0
add r0, r4, #0x0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x10]
bl String_dtor
add r0, r4, #0x0
diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s
index c84a9409..2813b999 100644
--- a/arm9/asm/unk_020625EC.s
+++ b/arm9/asm/unk_020625EC.s
@@ -1067,7 +1067,7 @@ FUN_02062DB0: ; 0x02062DB0
mov r0, #0x1
lsl r1, r1, #0x6
mov r2, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r2, #0x0
str r2, [sp, #0x0]
mov r0, #0x20
@@ -1080,33 +1080,33 @@ FUN_02062DB0: ; 0x02062DB0
ldr r0, [r0, #0x0]
mov r1, #0x1
add r3, r2, #0x0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #0x1
add r1, r0, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x0
- bl FUN_02018884
+ bl GetBgPriority
strh r0, [r4, #0x10]
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x1
- bl FUN_02018884
+ bl GetBgPriority
strh r0, [r4, #0x12]
mov r0, #0x0
mov r1, #0x2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0x1
add r1, r0, #0x0
- bl FUN_020178BC
+ bl SetBgPriority
ldrh r0, [r4, #0x1c]
ldr r2, _02062EB8 ; =0x000003E2
mov r1, #0x3
@@ -1169,7 +1169,7 @@ FUN_02062DB0: ; 0x02062DB0
add r1, #0xe4
mov r2, #0x3
mov r3, #0x2
- bl FUN_02019064
+ bl AddWindowParameterized
add r4, #0xe4
add r0, r4, #0x0
mov r1, #0xff
@@ -1191,16 +1191,16 @@ FUN_02062EC4: ; 0x02062EC4
bl FUN_0200D0E0
add r0, r4, #0x0
add r0, #0xe4
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
add r0, #0xe4
- bl FUN_02019178
+ bl RemoveWindow
mov r1, #0xad
ldr r3, [r4, #0x0]
mov r0, #0x1
lsl r1, r1, #0x6
mov r2, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r2, #0x0
str r2, [sp, #0x0]
mov r0, #0x20
@@ -1213,25 +1213,25 @@ FUN_02062EC4: ; 0x02062EC4
ldr r0, [r0, #0x0]
mov r1, #0x1
add r3, r2, #0x0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r4, #0x0
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r1, #0x1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldrh r1, [r4, #0x10]
mov r0, #0x0
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldrh r1, [r4, #0x12]
mov r0, #0x1
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
add sp, #0x10
pop {r4, pc}
@@ -1381,7 +1381,7 @@ FUN_02063028: ; 0x02063028
ldr r0, [r0, #0x0]
add r1, #0xd4
mov r3, #0x4
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0x0
add r0, #0xd4
mov r1, #0xff
@@ -1494,7 +1494,7 @@ _02063094:
add r5, #0xd0
ldr r0, [r5, #0x0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x1c
pop {r4-r7, pc}
.balign 4
@@ -1522,14 +1522,14 @@ FUN_02063178: ; 0x02063178
bl ListMenuItems_dtor
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
add r0, #0xd4
mov r1, #0x0
bl FUN_0200CCF8
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -1538,7 +1538,7 @@ FUN_02063178: ; 0x02063178
add r4, #0xd0
ldr r0, [r4, #0x0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r4, pc}
thumb_func_start FUN_020631C8
@@ -1866,7 +1866,7 @@ FUN_02063430: ; 0x02063430
ldr r0, [r0, #0x0]
add r1, #0xd4
mov r3, #0x4
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0x0
ldr r2, _020634D0 ; =0x000003D9
add r0, #0xd4
@@ -1897,7 +1897,7 @@ FUN_02063430: ; 0x02063430
add r0, #0xd0
ldr r0, [r0, #0x0]
mov r2, #0x3
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0x0
add r0, #0xf4
mov r1, #0x0
@@ -1916,7 +1916,7 @@ FUN_02063430: ; 0x02063430
add r4, #0xd0
ldr r0, [r4, #0x0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3-r4, pc}
nop
@@ -1929,20 +1929,20 @@ FUN_020634DC: ; 0x020634DC
push {r4, lr}
add r4, r0, #0x0
add r0, #0xd4
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
add r0, #0xd4
mov r1, #0x0
bl FUN_0200CCF8
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0x0
add r0, #0xf4
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
add r0, #0xf4
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xa6
lsl r0, r0, #0x2
ldr r0, [r4, r0]
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index a065df73..cfddf2f5 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -955,14 +955,14 @@ FUN_02065AF4: ; 0x02065AF4
add r1, r1, #0x4
ldr r2, _02065CD8 ; =UNK_020F7E7C
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r1, #0x17
lsl r1, r1, #0x4
ldr r0, [r5, r1]
add r1, #0x24
ldr r2, _02065CDC ; =UNK_020F7E84
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r0, #0x5d
lsl r0, r0, #0x2
add r0, r5, r0
@@ -1144,7 +1144,7 @@ _02065C64:
lsl r0, r0, #0x4
ldr r0, [r5, r0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r1, _02065CF0 ; =0x0000013B
mov r0, #0xf
ldrb r2, [r5, r1]
@@ -1290,7 +1290,7 @@ FUN_02065DD8: ; 0x02065DD8
ldr r0, [r5, r0]
ldr r2, _02065EC8 ; =UNK_020F7E74
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r0, #0x5d
lsl r0, r0, #0x2
add r0, r5, r0
@@ -1376,7 +1376,7 @@ _02065E14:
lsl r0, r0, #0x4
ldr r0, [r5, r0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r1, _02065EE0 ; =0x0000013B
mov r0, #0xf
ldrb r2, [r5, r1]
@@ -1426,7 +1426,7 @@ FUN_02065EF8: ; 0x02065EF8
mov r0, #0x65
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0x65
lsl r0, r0, #0x2
add r0, r4, r0
@@ -1435,11 +1435,11 @@ FUN_02065EF8: ; 0x02065EF8
mov r0, #0x65
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x5d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0x5d
lsl r0, r0, #0x2
add r0, r4, r0
@@ -1448,7 +1448,7 @@ FUN_02065EF8: ; 0x02065EF8
mov r0, #0x5d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, sp, #0x0
mov r1, #0x4f
ldrh r2, [r0, #0x2]
@@ -1471,7 +1471,7 @@ _02065F7C:
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x4
pop {r3-r4, pc}
@@ -1483,7 +1483,7 @@ FUN_02065F8C: ; 0x02065F8C
mov r0, #0x5d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0x5d
lsl r0, r0, #0x2
add r0, r4, r0
@@ -1503,14 +1503,14 @@ FUN_02065F8C: ; 0x02065F8C
mov r0, #0x5d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0x0
bl FUN_020664D8
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x4
pop {r3-r4, pc}
.balign 4
@@ -2001,7 +2001,7 @@ FUN_02066334: ; 0x02066334
add r1, r4, r1
mov r2, #0x3
mov r3, #0x2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x61
lsl r0, r0, #0x2
add r0, r4, r0
@@ -2021,11 +2021,11 @@ FUN_020663D4: ; 0x020663D4
mov r0, #0x61
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0x61
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x61
lsl r0, r0, #0x2
add r0, r4, r0
@@ -2151,7 +2151,7 @@ FUN_020664D8: ; 0x020664D8
mov r0, #0x61
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
pop {r4, pc}
thumb_func_start FUN_020664F4
diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s
index 9b642d7a..e7ebe1cf 100644
--- a/arm9/asm/unk_0206C700.s
+++ b/arm9/asm/unk_0206C700.s
@@ -113,7 +113,7 @@ FUN_0206C700: ; 0x0206C700
add r3, r5, #0x0
bl FUN_02003008
add r0, r5, #0x0
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x0]
add r0, r5, #0x0
mov r1, #0x1
@@ -144,7 +144,7 @@ FUN_0206C700: ; 0x0206C700
ldr r1, [r4, #0x4]
mov r2, #0x1
mov r3, #0x2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r4, #0x4]
mov r1, #0xff
bl FillWindowPixelBuffer
@@ -297,7 +297,7 @@ FUN_0206C92C: ; 0x0206C92C
bl Main_SetVBlankIntrCB
ldr r0, [r4, #0x4]
mov r1, #0x1
- bl FUN_020191A4
+ bl WindowArray_dtor
ldr r0, [r4, #0x14]
mov r1, #0x0
bl FUN_02003038
@@ -2280,7 +2280,7 @@ _0206D9C6:
ldmia r6!, {r0-r1}
stmia r3!, {r0-r1}
add r0, r2, #0x0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r6, _0206DC30 ; =UNK_020F837C
add r3, sp, #0x64
mov r2, #0xa
@@ -2295,26 +2295,26 @@ _0206DA26:
add r0, r4, #0x0
add r2, sp, #0x64
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0x0
mov r1, #0x2
add r2, sp, #0x80
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0x0
mov r1, #0x3
add r2, sp, #0x9c
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r1, _0206DC34 ; =0x04000008
mov r0, #0x3
ldrh r2, [r1, #0x0]
@@ -2338,10 +2338,10 @@ _0206DA26:
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r5, #0x2c]
bl Options_GetFrame
add r6, r0, #0x0
@@ -2538,16 +2538,16 @@ FUN_0206DC48: ; 0x0206DC48
bl GX_EngineAToggleLayers
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.balign 4
@@ -2644,7 +2644,7 @@ FUN_0206DD08: ; 0x0206DD08
ldr r0, [r4, #0x14]
bl FUN_0200372C
ldr r0, [r4, #0x0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _0206DD64 ; =0x027E0000
ldr r1, _0206DD68 ; =0x00003FF8
mov r0, #0x1
diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s
index c4933942..66967f99 100644
--- a/arm9/asm/unk_0206F3FC.s
+++ b/arm9/asm/unk_0206F3FC.s
@@ -774,7 +774,7 @@ _0206F914:
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
ldr r0, _0206F974 ; =0x000006FC
mov r1, #0x0
ldr r0, [r4, r0]
@@ -1037,7 +1037,7 @@ _0206FB54: .word 0x00000B34
FUN_0206FB58: ; 0x0206FB58
push {r3, lr}
ldr r0, [r0, #0x0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
bl FUN_0201C30C
bl FUN_0200BC30
ldr r3, _0206FB78 ; =0x027E0000
@@ -1083,7 +1083,7 @@ FUN_0206FBA0: ; 0x0206FBA0
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
add r0, r2, #0x0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _0206FCBC ; =UNK_020F94D4
add r3, sp, #0x8c
ldmia r5!, {r0-r1}
@@ -1098,10 +1098,10 @@ FUN_0206FBA0: ; 0x0206FBA0
str r0, [r3, #0x0]
add r0, r4, #0x0
add r3, r1, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0206FCC0 ; =UNK_020F94F0
add r3, sp, #0x70
ldmia r5!, {r0-r1}
@@ -1116,10 +1116,10 @@ FUN_0206FBA0: ; 0x0206FBA0
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0206FCC4 ; =UNK_020F949C
add r3, sp, #0x54
ldmia r5!, {r0-r1}
@@ -1134,10 +1134,10 @@ FUN_0206FBA0: ; 0x0206FBA0
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0206FCC8 ; =UNK_020F9480
add r3, sp, #0x38
ldmia r5!, {r0-r1}
@@ -1152,7 +1152,7 @@ FUN_0206FBA0: ; 0x0206FBA0
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _0206FCCC ; =UNK_020F950C
add r3, sp, #0x1c
ldmia r5!, {r0-r1}
@@ -1167,10 +1167,10 @@ FUN_0206FBA0: ; 0x0206FBA0
add r0, r4, #0x0
mov r1, #0x4
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0206FCD0 ; =UNK_020F9528
add r3, sp, #0x0
ldmia r5!, {r0-r1}
@@ -1185,17 +1185,17 @@ FUN_0206FBA0: ; 0x0206FBA0
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x0
mov r1, #0x20
add r2, r0, #0x0
mov r3, #0xc
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x4
mov r1, #0x20
mov r2, #0x0
mov r3, #0xc
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0xb8
pop {r3-r5, pc}
nop
@@ -1219,22 +1219,22 @@ FUN_0206FCD4: ; 0x0206FCD4
bl GX_EngineBToggleLayers
add r0, r4, #0x0
mov r1, #0x5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0xc
add r1, r4, #0x0
bl FreeToHeapExplicit
@@ -1282,7 +1282,7 @@ FUN_0206FD24: ; 0x0206FD24
mov r3, #0x0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
ldr r1, [sp, #0x10]
ldr r0, _0206FE6C ; =0x000004A4
ldr r1, [r1, #0xc]
@@ -1382,10 +1382,10 @@ FUN_0206FD24: ; 0x0206FD24
bl FUN_020724D4
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x4
mov r1, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x14
pop {r4-r5, pc}
.balign 4
@@ -1408,7 +1408,7 @@ FUN_0206FE74: ; 0x0206FE74
ldr r1, _0206FF54 ; =0x000005A4
str r0, [r6, r1]
mov r0, #0xc
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r6, #0x0]
ldr r0, _0206FF54 ; =0x000005A4
ldr r1, [r6, r0]
@@ -2090,7 +2090,7 @@ _020703F2:
mov r1, #0x2
add r2, r6, #0x0
add r3, r7, #0x0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
add r0, sp, #0x20
ldrb r0, [r0, #0x10]
cmp r0, #0x0
@@ -2111,7 +2111,7 @@ _020703F2:
mov r1, #0x2
mov r2, #0x17
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
_0207044C:
mov r0, #0x10
str r0, [sp, #0x0]
@@ -2125,7 +2125,7 @@ _0207044C:
mov r1, #0x2
add r2, r6, #0x0
add r3, r7, #0x0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_020709FC
@@ -2185,10 +2185,10 @@ _020704CC:
_020704D2:
ldr r0, [r4, #0x0]
mov r1, #0x2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x0]
mov r1, #0x4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r4, pc}
.balign 4
_020704E4: .word 0x000005A4
@@ -2775,7 +2775,7 @@ FUN_02070988: ; 0x02070988
mov r1, #0x2
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
mov r0, #0x10
str r0, [sp, #0x0]
mov r0, #0x6
@@ -2788,7 +2788,7 @@ FUN_02070988: ; 0x02070988
mov r1, #0x2
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x7
@@ -2868,7 +2868,7 @@ _02070A60:
mov r0, #0x2
mov r2, #0x10
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
pop {r4-r6, pc}
.balign 4
_02070A78: .word 0x000005A4
@@ -3147,7 +3147,7 @@ _02070C6E:
bl FUN_020717E8
ldr r0, [r5, #0x0]
mov r1, #0x4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_02070CA6:
cmp r4, #0x6
beq _02070CB2
@@ -3433,7 +3433,7 @@ _02070ECC:
bl FUN_020717E8
ldr r0, [r5, #0x0]
mov r1, #0x4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_02070EFE:
add sp, #0x10
pop {r4-r6, pc}
@@ -3480,7 +3480,7 @@ _02070F30:
bl FUN_020717E8
ldr r0, [r4, #0x0]
mov r1, #0x4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #0xb2
lsl r0, r0, #0x4
ldrb r1, [r4, r0]
@@ -3495,7 +3495,7 @@ _02070F70:
bl FUN_020717E8
ldr r0, [r4, #0x0]
mov r1, #0x4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #0xb2
mov r1, #0x0
lsl r0, r0, #0x4
@@ -4602,7 +4602,7 @@ FUN_020717E8: ; 0x020717E8
add r5, r1, #0x0
add r4, r2, #0x0
mov r1, #0x4
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
lsl r1, r5, #0x1
mov r3, #0x19
add r5, r4, #0x0
@@ -4696,7 +4696,7 @@ _02071886:
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
mov r1, #0x4
- bl FUN_0201AFBC
+ bl DoesPixelAtScreenXYMatchPtrVal
cmp r0, #0x0
bne _020718BA
mov r0, #0x0
diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s
index 79a7eb39..0ac5ab20 100644
--- a/arm9/asm/unk_02072548.s
+++ b/arm9/asm/unk_02072548.s
@@ -81,31 +81,31 @@ FUN_02072548: ; 0x02072548
add r5, r1, #0x0
add r4, r2, #0x0
add r6, r0, #0x0
- bl FUN_02019150
+ bl AddWindow
add r1, r5, #0x0
add r2, r4, #0x0
add r0, r6, #0x0
add r1, #0x10
add r2, #0x8
- bl FUN_02019150
+ bl AddWindow
add r1, r5, #0x0
add r2, r4, #0x0
add r0, r6, #0x0
add r1, #0x20
add r2, #0x10
- bl FUN_02019150
+ bl AddWindow
add r1, r5, #0x0
add r2, r4, #0x0
add r0, r6, #0x0
add r1, #0x30
add r2, #0x18
- bl FUN_02019150
+ bl AddWindow
add r5, #0x40
add r4, #0x20
add r0, r6, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
- bl FUN_02019150
+ bl AddWindow
pop {r4-r6, pc}
.balign 4
@@ -203,7 +203,7 @@ _02072632:
lsl r1, r1, #0x2
ldr r0, [r5, #0x0]
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
b _02072668
_0207265A:
mov r1, #0x7d
@@ -211,44 +211,44 @@ _0207265A:
ldr r0, [r5, #0x0]
ldr r2, _020726D4 ; =UNK_020F9724
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
_02072668:
mov r1, #0x79
lsl r1, r1, #0x2
ldr r0, [r5, #0x0]
ldr r2, _020726D8 ; =UNK_020F972C
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r1, #0x81
lsl r1, r1, #0x2
ldr r0, [r5, #0x0]
ldr r2, _020726DC ; =UNK_020F9734
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r1, #0x85
lsl r1, r1, #0x2
ldr r0, [r5, #0x0]
ldr r2, _020726E0 ; =UNK_020F973C
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r1, #0x89
lsl r1, r1, #0x2
ldr r0, [r5, #0x0]
ldr r2, _020726E4 ; =UNK_020F9744
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r1, #0x8d
lsl r1, r1, #0x2
ldr r0, [r5, #0x0]
ldr r2, _020726E8 ; =UNK_020F974C
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r1, #0x91
lsl r1, r1, #0x2
ldr r0, [r5, #0x0]
ldr r2, _020726EC ; =UNK_020F9754
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
add sp, #0x8
pop {r3-r5, pc}
.balign 4
@@ -274,7 +274,7 @@ FUN_020726F0: ; 0x020726F0
_020726F8:
lsl r0, r5, #0x4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0x1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
@@ -283,11 +283,11 @@ _020726F8:
mov r4, #0x95
lsl r4, r4, #0x2
add r0, r6, r4
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x1
bne _0207271E
add r0, r6, r4
- bl FUN_02019178
+ bl RemoveWindow
_0207271E:
pop {r4-r6, pc}
@@ -450,7 +450,7 @@ FUN_02072844: ; 0x02072844
ldr r0, [r5, #0x0]
add r1, r5, r1
mov r3, #0x13
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [sp, #0x14]
mov r1, #0xc
bl ListMenuItems_ctor
@@ -708,7 +708,7 @@ FUN_02072A54: ; 0x02072A54
cmp r0, #0x1
bne _02072A9C
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3-r7, pc}
_02072A9C:
@@ -766,7 +766,7 @@ _02072ADC:
bl AddTextPrinterParameterized2
_02072B0A:
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3-r7, pc}
.balign 4
@@ -794,7 +794,7 @@ FUN_02072B20: ; 0x02072B20
cmp r1, #0x7
beq _02072B4C
add r0, r4, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, pc}
_02072B4C:
@@ -814,7 +814,7 @@ _02072B4C:
mov r3, #0x3
bl FUN_0200BA78
add r0, r4, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, pc}
nop
@@ -847,7 +847,7 @@ FUN_02072B7C: ; 0x02072B7C
mov r3, #0x1
bl FUN_0200B9EC
add r0, r4, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r4-r5, pc}
.balign 4
@@ -872,7 +872,7 @@ FUN_02072BBC: ; 0x02072BBC
add r3, r1, #0x0
bl FillWindowPixelRect
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x8
pop {r3-r5, pc}
@@ -903,7 +903,7 @@ FUN_02072BE8: ; 0x02072BE8
mov r3, #0x0
bl FUN_0200B9EC
add r0, r4, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r4-r5, pc}
.balign 4
@@ -948,7 +948,7 @@ _02072C64: ; jump table (using 16-bit offset)
.short _02072C78 - _02072C64 - 2; case 4
_02072C6E:
add r0, r4, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r4-r7, pc}
_02072C78:
@@ -961,7 +961,7 @@ _02072C78:
add r1, r5, r1
mov r2, #0x4
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
b _02072CBE
_02072C90:
ldrb r3, [r4, #0x9]
@@ -973,7 +973,7 @@ _02072C90:
add r1, r5, r1
mov r2, #0x4
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
b _02072CBE
_02072CA8:
ldrb r3, [r4, #0x9]
@@ -985,7 +985,7 @@ _02072CA8:
add r1, r5, r1
mov r2, #0x4
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
_02072CBE:
ldr r0, [sp, #0x8]
ldrh r1, [r7, r6]
@@ -1018,7 +1018,7 @@ _02072CBE:
mov r3, #0x5
bl FillWindowPixelRect
add r0, r4, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r4-r7, pc}
.balign 4
@@ -1081,17 +1081,17 @@ FUN_02072D1C: ; 0x02072D1C
ldr r1, [sp, #0x0]
ldr r0, [sp, #0x4]
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [sp, #0x8]
add r0, r7, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r1, [sp, #0xc]
ldr r0, [sp, #0x10]
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [sp, #0x14]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x18
pop {r3-r7, pc}
_02072DB0:
@@ -1122,22 +1122,22 @@ FUN_02072DDC: ; 0x02072DDC
add r1, r5, #0x4
lsl r0, r4, #0x4
add r0, r1, r0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0x1
add r1, r5, #0x4
lsl r0, r0, #0x4
add r0, r1, r0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0x2
add r1, r5, #0x4
lsl r0, r0, #0x4
add r0, r1, r0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0x3
add r1, r5, #0x4
lsl r0, r0, #0x4
add r0, r1, r0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
pop {r3-r5, pc}
thumb_func_start FUN_02072E14
@@ -1149,22 +1149,22 @@ FUN_02072E14: ; 0x02072E14
add r1, r5, #0x4
lsl r0, r4, #0x4
add r0, r1, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x1
add r1, r5, #0x4
lsl r0, r0, #0x4
add r0, r1, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x2
add r1, r5, #0x4
lsl r0, r0, #0x4
add r0, r1, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x3
add r1, r5, #0x4
lsl r0, r0, #0x4
add r0, r1, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
pop {r3-r5, pc}
thumb_func_start FUN_02072E4C
@@ -1501,7 +1501,7 @@ FUN_02073094: ; 0x02073094
mov r0, #0x79
lsl r0, r0, #0x2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_020730FE:
mov r0, #0x2
tst r0, r4
@@ -1535,7 +1535,7 @@ _020730FE:
mov r0, #0x7d
lsl r0, r0, #0x2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_02073148:
add sp, #0x10
pop {r3-r5, pc}
@@ -1586,7 +1586,7 @@ _02073198:
mov r1, #0x1
bl AddTextPrinterParameterized
add r0, r4, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r3-r6, pc}
.balign 4
@@ -1797,7 +1797,7 @@ _02073332:
ldr r0, [sp, #0x10]
bl String_dtor
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4-r7, pc}
nop
@@ -1860,7 +1860,7 @@ _020733B4:
ldr r0, [sp, #0x10]
bl String_dtor
add r0, r4, r7
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4-r7, pc}
.balign 4
@@ -1908,7 +1908,7 @@ _02073416:
add r0, r5, #0x0
bl String_dtor
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3-r7, pc}
.balign 4
@@ -1966,7 +1966,7 @@ _02073490:
add r0, r5, #0x0
bl String_dtor
add r0, r4, r7
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3-r7, pc}
.balign 4
@@ -2034,7 +2034,7 @@ FUN_020734C0: ; 0x020734C0
add r1, #0x14
ldr r0, [r5, #0x0]
add r1, r5, r1
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x95
lsl r0, r0, #0x2
mov r1, #0x1
@@ -2133,7 +2133,7 @@ _0207356C:
mov r0, #0x95
lsl r0, r0, #0x2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x2c
pop {r4-r7, pc}
.balign 4
@@ -2220,7 +2220,7 @@ _0207366E:
mov r0, #0x95
lsl r0, r0, #0x2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4-r7, pc}
nop
@@ -2240,5 +2240,5 @@ FUN_020736F4: ; 0x020736F4
mov r0, #0x95
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s
index 5dff3066..44777340 100644
--- a/arm9/asm/unk_02073DA8.s
+++ b/arm9/asm/unk_02073DA8.s
@@ -39,7 +39,7 @@ FUN_02073DB4: ; 0x02073DB4
mov r0, #0x95
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
ldr r0, _02073DEC ; =0x000006FC
mov r1, #0x0
ldr r0, [r4, r0]
@@ -50,7 +50,7 @@ FUN_02073DB4: ; 0x02073DB4
mov r0, #0x95
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
.balign 4
_02073DEC: .word 0x000006FC
@@ -994,11 +994,11 @@ _020745DA:
strb r1, [r6, r0]
ldr r0, [r6, #0x0]
mov r1, #0x2
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
str r0, [sp, #0x14]
ldr r0, [r6, #0x0]
mov r1, #0x1
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldr r1, _020746B4 ; =0x00000B0C
str r0, [sp, #0x10]
ldrb r3, [r6, r1]
@@ -1155,10 +1155,10 @@ _0207470C:
bl FUN_0207499C
ldr r0, [r5, #0x0]
mov r1, #0x2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x0]
mov r1, #0x1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, _02074838 ; =0x00000306
ldrb r1, [r4, r0]
cmp r1, #0x10
@@ -1206,10 +1206,10 @@ _02074770:
bl FUN_0207499C
ldr r0, [r5, #0x0]
mov r1, #0x2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x0]
mov r1, #0x1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, _02074838 ; =0x00000306
ldrb r1, [r4, r0]
cmp r1, #0x0
@@ -1303,7 +1303,7 @@ FUN_02074848: ; 0x02074848
ldr r3, [sp, #0x20]
mov r1, #0x2
mov r2, #0x0
- bl FUN_02018540
+ bl FillBgTilemapRect
str r6, [sp, #0x0]
mov r1, #0x10
str r1, [sp, #0x4]
@@ -1314,7 +1314,7 @@ FUN_02074848: ; 0x02074848
ldr r3, [sp, #0x20]
mov r1, #0x1
mov r2, #0x0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x1c]
add r1, r4, r0
ldr r0, _02074994 ; =0x00000302
@@ -1345,7 +1345,7 @@ FUN_02074848: ; 0x02074848
ldr r2, [sp, #0x20]
mov r1, #0x2
add r3, r6, #0x0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r0, _02074998 ; =0x00000306
mov r3, #0x10
ldrb r2, [r4, r0]
@@ -1368,7 +1368,7 @@ FUN_02074848: ; 0x02074848
ldr r2, [sp, #0x20]
mov r1, #0x1
add r3, r6, #0x0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
add sp, #0x28
pop {r3-r7, pc}
_02074918:
@@ -1399,7 +1399,7 @@ _02074918:
mov r1, #0x2
lsr r2, r2, #0x18
add r3, r6, #0x0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r0, _02074998 ; =0x00000306
ldrb r2, [r4, r0]
mov r0, #0x10
@@ -1426,7 +1426,7 @@ _02074918:
mov r1, #0x1
lsr r2, r2, #0x18
add r3, r6, #0x0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
add sp, #0x28
pop {r3-r7, pc}
nop
diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s
index f28e35ea..adf8cadd 100644
--- a/arm9/asm/unk_020772F0.s
+++ b/arm9/asm/unk_020772F0.s
@@ -742,7 +742,7 @@ _020772FE:
add r4, r0, #0x0
bl memset
mov r0, #0x12
- bl FUN_02016B94
+ bl BgConfig_Alloc
mov r1, #0x16
lsl r1, r1, #0x4
str r0, [r4, r1]
@@ -1526,7 +1526,7 @@ _020779C2:
lsl r0, r0, #0x4
ldr r0, [r4, r0]
mov r1, #0x7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
bl FUN_0201D12C
bl FUN_0201E08C
mov r0, #0x16
@@ -1716,7 +1716,7 @@ FUN_02077B44: ; 0x02077B44
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
add r0, r2, #0x0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _02077C6C ; =UNK_020F9EC0
add r3, sp, #0x54
ldmia r5!, {r0-r1}
@@ -1731,10 +1731,10 @@ FUN_02077B44: ; 0x02077B44
str r0, [r3, #0x0]
add r0, r4, #0x0
add r3, r1, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02077C70 ; =UNK_020F9FA0
add r3, sp, #0x38
ldmia r5!, {r0-r1}
@@ -1749,10 +1749,10 @@ FUN_02077B44: ; 0x02077B44
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02077C74 ; =UNK_020FA064
add r3, sp, #0x1c
ldmia r5!, {r0-r1}
@@ -1767,10 +1767,10 @@ FUN_02077B44: ; 0x02077B44
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02077C78 ; =UNK_020F9DFC
add r3, sp, #0x0
ldmia r5!, {r0-r1}
@@ -1785,22 +1785,22 @@ FUN_02077B44: ; 0x02077B44
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x0
bl FUN_02077C84
mov r0, #0x0
mov r1, #0x20
add r2, r0, #0x0
mov r3, #0x12
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x4
mov r1, #0x20
mov r2, #0x0
mov r3, #0x12
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x1
lsl r0, r0, #0x1a
add r4, r0, #0x0
@@ -1911,7 +1911,7 @@ FUN_02077CD4: ; 0x02077CD4
ldr r3, [r3, r5]
lsr r1, r1, #0x18
mov r2, #0x0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r3, [r4, r6]
mov r5, #0xc
mov r0, #0x16
@@ -1924,7 +1924,7 @@ FUN_02077CD4: ; 0x02077CD4
ldr r3, [r3, r6]
lsr r1, r1, #0x18
mov r2, #0x3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r6, _02077E80 ; =0x00000464
mov r0, #0x1
ldr r1, [r4, r6]
@@ -1941,7 +1941,7 @@ FUN_02077CD4: ; 0x02077CD4
ldr r3, [r3, r5]
lsr r1, r1, #0x18
mov r2, #0x0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, [r4, r6]
mov r0, #0x1
add r3, r1, #0x0
@@ -1957,7 +1957,7 @@ FUN_02077CD4: ; 0x02077CD4
ldr r3, [r3, r6]
lsr r1, r1, #0x18
mov r2, #0x3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #0x46
ldr r0, _02077E84 ; =0x0000FFFF
lsl r1, r1, #0x2
@@ -2231,23 +2231,23 @@ FUN_02077FA8: ; 0x02077FA8
mov r4, #0x0
_02077FB0:
add r0, r5, #0x0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #0x1
add r5, #0x10
cmp r4, #0xa
blt _02077FB0
add r0, r6, #0x0
mov r1, #0x4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r6, #0x0
mov r1, #0x2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r6, #0x0
mov r1, #0x1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r6, #0x0
mov r1, #0x0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0x12
add r1, r6, #0x0
bl FreeToHeapExplicit
@@ -2281,7 +2281,7 @@ FUN_02077FE8: ; 0x02077FE8
bl GfGfxLoader_GXLoadPal
mov r0, #0x4
mov r1, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x2
@@ -3159,14 +3159,14 @@ _0207873C:
lsr r1, r1, #0x18
mov r2, #0x0
mov r3, #0xee
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #0x3
lsl r1, r6, #0x18
add r3, r2, #0x0
ldr r0, [sp, #0x10]
lsr r1, r1, #0x18
sub r3, #0x53
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r5, #0x0]
add sp, #0x28
add r0, r0, #0x1
@@ -3236,14 +3236,14 @@ _020787D8:
ldr r3, [r4, r3]
lsr r1, r1, #0x18
mov r2, #0x0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, [sp, #0x18]
ldr r0, [sp, #0x10]
lsl r1, r1, #0x18
ldr r3, [r5, r7]
lsr r1, r1, #0x18
mov r2, #0x3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add sp, #0x28
pop {r3-r7, pc}
_020787FC:
@@ -3275,7 +3275,7 @@ _02078820:
ldr r3, [r4, r3]
lsr r1, r1, #0x18
mov r2, #0x0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, [sp, #0x18]
ldr r3, [sp, #0x20]
lsl r1, r1, #0x18
@@ -3283,7 +3283,7 @@ _02078820:
ldr r3, [r7, r3]
lsr r1, r1, #0x18
mov r2, #0x3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [sp, #0x24]
mov r1, #0xa
ldr r0, [r4, r0]
@@ -3400,7 +3400,7 @@ FUN_0207890C: ; 0x0207890C
add r1, r5, r1
mov r2, #0x0
mov r3, #0x2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r2, #0x1
mov r1, #0xf2
lsl r1, r1, #0x2
@@ -3417,7 +3417,7 @@ FUN_0207890C: ; 0x0207890C
ldr r0, [r5, r0]
add r1, r5, r1
mov r3, #0x2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r5, #0x0]
cmp r0, #0x4
bne _020789AE
@@ -3491,7 +3491,7 @@ _020789D8:
ldr r0, [r5, r0]
add r1, r5, r1
mov r3, #0x7
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r1, [r5, #0xc]
mov r0, #0xc
add r2, r1, #0x0
@@ -3519,7 +3519,7 @@ _020789D8:
ldr r0, [r5, r0]
add r1, r5, r1
mov r3, #0xa
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xfa
lsl r0, r0, #0x2
add r0, r5, r0
@@ -3544,7 +3544,7 @@ _020789D8:
ldr r0, [r5, r0]
add r1, r5, r1
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02078B74 ; =0x00000438
mov r1, #0x1
add r0, r5, r0
@@ -3577,7 +3577,7 @@ _02078A90:
ldr r0, [r5, r0]
add r1, r5, r1
mov r3, #0x2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02078B78 ; =0x00000448
mov r1, #0xf
add r0, r5, r0
@@ -3637,7 +3637,7 @@ _02078B0E:
add r1, r7, r6
mov r2, #0x2
mov r3, #0x0
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r7, r6
mov r1, #0x0
bl FillWindowPixelBuffer
@@ -3657,7 +3657,7 @@ _02078B0E:
add r0, #0xdc
ldr r0, [r5, r0]
add r1, r5, r1
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02078B84 ; =0x00000428
mov r1, #0x0
add r0, r5, r0
@@ -3680,13 +3680,13 @@ FUN_02078B88: ; 0x02078B88
lsl r0, r4, #0x18
lsr r0, r0, #0x18
mov r1, #0x1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0x1
eor r0, r4
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r1, #0x2
- bl FUN_020178BC
+ bl SetBgPriority
pop {r4, pc}
.balign 4
diff --git a/arm9/asm/unk_020799E8.s b/arm9/asm/unk_020799E8.s
index 308fcf1b..f7318276 100644
--- a/arm9/asm/unk_020799E8.s
+++ b/arm9/asm/unk_020799E8.s
@@ -281,7 +281,7 @@ _02079BAE:
add r0, r6, #0x0
ldr r2, [r2, #0x14]
add r3, r4, #0x0
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
b _02079C36
_02079BC6:
add r0, r7, #0x0
@@ -297,7 +297,7 @@ _02079BDA:
lsl r1, r5, #0x18
add r0, r6, #0x0
lsr r1, r1, #0x18
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
cmp r0, #0x0
beq _02079BF8
ldr r2, [sp, #0xc]
@@ -306,7 +306,7 @@ _02079BDA:
lsr r1, r1, #0x18
add r2, #0xc
add r3, r4, #0x0
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
_02079BF8:
add r0, sp, #0x18
ldrh r0, [r0, #0x20]
@@ -317,7 +317,7 @@ _02079BF8:
add r0, r6, #0x0
add r2, #0xc
add r3, r4, #0x0
- bl FUN_02017CE8
+ bl BgCopyOrUncompressTilemapBufferRangeToVram
b _02079C36
_02079C10:
add r0, r7, #0x0
@@ -337,7 +337,7 @@ _02079C24:
ldr r1, [r1, #0xc]
lsr r0, r0, #0x18
add r2, r4, #0x0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
_02079C36:
add r0, r7, #0x0
bl FreeToHeap
diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s
index 07974952..f69ef230 100644
--- a/arm9/asm/unk_02079C70.s
+++ b/arm9/asm/unk_02079C70.s
@@ -107,7 +107,7 @@ FUN_02079C7C: ; 0x02079C7C
lsl r1, r1, #0x2
str r0, [r5, r1]
mov r0, #0x13
- bl FUN_02016B94
+ bl BgConfig_Alloc
mov r1, #0x1
str r0, [r5, #0x0]
mov r0, #0x13
@@ -350,7 +350,7 @@ FUN_02079F24: ; 0x02079F24
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
mov r0, #0xae
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -400,7 +400,7 @@ FUN_02079F78: ; 0x02079F78
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
add r0, r2, #0x0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _0207A078 ; =UNK_020FA650
add r3, sp, #0x70
ldmia r5!, {r0-r1}
@@ -415,10 +415,10 @@ FUN_02079F78: ; 0x02079F78
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0207A07C ; =UNK_020FA66C
add r3, sp, #0x54
ldmia r5!, {r0-r1}
@@ -433,15 +433,15 @@ FUN_02079F78: ; 0x02079F78
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0x0
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r5, _0207A080 ; =UNK_020FA688
add r3, sp, #0x38
ldmia r5!, {r0-r1}
@@ -456,7 +456,7 @@ FUN_02079F78: ; 0x02079F78
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _0207A084 ; =UNK_020FA6A4
add r3, sp, #0x1c
ldmia r5!, {r0-r1}
@@ -471,10 +471,10 @@ FUN_02079F78: ; 0x02079F78
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0207A088 ; =UNK_020FA634
add r3, sp, #0x0
ldmia r5!, {r0-r1}
@@ -489,17 +489,17 @@ FUN_02079F78: ; 0x02079F78
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x1
mov r1, #0x20
mov r2, #0x0
mov r3, #0x13
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x4
mov r1, #0x20
mov r2, #0x0
mov r3, #0x13
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x9c
pop {r4-r5, pc}
nop
@@ -518,19 +518,19 @@ FUN_0207A08C: ; 0x0207A08C
bl GX_DisableEngineBLayers
add r0, r4, #0x0
mov r1, #0x5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0x13
add r1, r4, #0x0
bl FreeToHeapExplicit
@@ -2600,10 +2600,10 @@ _0207B0EC:
ldr r0, [r5, #0x0]
mov r1, #0x1
mov r3, #0xe
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r5, #0x0]
mov r1, #0x1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0x0
bl FUN_0207DD88
add r0, r5, #0x0
@@ -2760,10 +2760,10 @@ _0207B256:
ldr r0, [r5, #0x0]
mov r1, #0x3
add r2, #0xc
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r0, [r5, #0x0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r4, #0x0
bl FreeToHeap
ldr r0, _0207B2AC ; =0x0000068C
@@ -2858,7 +2858,7 @@ _0207B318:
ldr r0, [r6, #0x0]
mov r1, #0x3
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
cmp r4, #0x8
bhs _0207B33E
mov r4, #0x0
@@ -2875,7 +2875,7 @@ _0207B344:
blo _0207B30A
ldr r0, [r6, #0x0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4-r7, pc}
nop
@@ -2936,7 +2936,7 @@ _0207B3AC:
ldr r0, [r6, #0x0]
mov r1, #0x3
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
cmp r4, #0x8
bhs _0207B3D0
mov r4, #0x0
@@ -2953,7 +2953,7 @@ _0207B3D6:
blo _0207B39C
ldr r0, [r6, #0x0]
mov r1, #0x3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x10
pop {r3-r7, pc}
.balign 4
@@ -3301,30 +3301,30 @@ _0207B682:
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r4, #0x0]
mov r1, #0x2
mov r2, #0x3
mov r3, #0x0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0207C6F0
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
add r0, #0x64
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0207CFAC
@@ -3340,14 +3340,14 @@ _0207B682:
_0207B6E2:
ldr r0, [r4, #0x0]
mov r1, #0x2
- bl FUN_02017B48
+ bl Bg_GetXpos
cmp r0, #0x40
ldr r0, [r4, #0x0]
bgt _0207B702
mov r2, #0x0
mov r1, #0x2
add r3, r2, #0x0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, _0207B774 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
@@ -3356,7 +3356,7 @@ _0207B702:
mov r1, #0x2
add r2, r1, #0x0
mov r3, #0x40
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
b _0207B76E
_0207B70E:
bl FUN_0207ECDC
@@ -3449,7 +3449,7 @@ _0207B79E:
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0207CFAC
@@ -3464,14 +3464,14 @@ _0207B79E:
_0207B7F8:
ldr r0, [r4, #0x0]
mov r1, #0x2
- bl FUN_02017B48
+ bl Bg_GetXpos
cmp r0, #0x80
ldr r0, [r4, #0x0]
blt _0207B818
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, _0207B864 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
@@ -3480,20 +3480,20 @@ _0207B818:
mov r1, #0x2
mov r2, #0x1
mov r3, #0x40
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
b _0207B860
_0207B824:
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0x64
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
mov r1, #0x81
bl FUN_0207D924
@@ -3788,19 +3788,19 @@ FUN_0207BA74: ; 0x0207BA74
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
add r0, #0x64
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r2, #0x0
ldr r0, [r4, #0x0]
mov r1, #0x2
add r3, r2, #0x0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
add r0, r4, #0x0
bl FUN_0207ECDC
add r0, r4, #0x0
@@ -3851,13 +3851,13 @@ _0207BB02:
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r2, #0x3
add r3, r2, #0x0
ldr r0, [r4, #0x0]
mov r1, #0x2
add r3, #0xfd
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r1, #0x0
add r0, r4, #0x0
mvn r1, r1
@@ -3868,18 +3868,18 @@ _0207BB02:
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
add r0, #0x64
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0207CFAC
@@ -3895,14 +3895,14 @@ _0207BB02:
_0207BB6E:
ldr r0, [r4, #0x0]
mov r1, #0x2
- bl FUN_02017B48
+ bl Bg_GetXpos
cmp r0, #0x40
ldr r0, [r4, #0x0]
bgt _0207BB8E
mov r2, #0x0
mov r1, #0x2
add r3, r2, #0x0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, _0207BBE4 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
@@ -3911,7 +3911,7 @@ _0207BB8E:
mov r1, #0x2
add r2, r1, #0x0
mov r3, #0x40
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
b _0207BBDE
_0207BB9A:
bl FUN_0207ECDC
@@ -3980,7 +3980,7 @@ _0207BC06:
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0207CFAC
@@ -3995,14 +3995,14 @@ _0207BC06:
_0207BC4E:
ldr r0, [r4, #0x0]
mov r1, #0x2
- bl FUN_02017B48
+ bl Bg_GetXpos
cmp r0, #0x80
ldr r0, [r4, #0x0]
blt _0207BC6E
mov r1, #0x2
mov r2, #0x0
mov r3, #0x88
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, _0207BCBC ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
@@ -4011,20 +4011,20 @@ _0207BC6E:
mov r1, #0x2
mov r2, #0x1
mov r3, #0x40
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
b _0207BCB6
_0207BC7A:
mov r0, #0x85
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0x64
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
mov r1, #0x9e
bl FUN_0207D924
@@ -4066,7 +4066,7 @@ FUN_0207BCC8: ; 0x0207BCC8
mov r1, #0x2
add r2, r4, #0x0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x2f
str r0, [sp, #0x0]
mov r0, #0x1
@@ -4082,7 +4082,7 @@ FUN_0207BCC8: ; 0x0207BCC8
mov r1, #0x2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x30
str r0, [sp, #0x0]
mov r0, #0x1
@@ -4098,7 +4098,7 @@ FUN_0207BCC8: ; 0x0207BCC8
mov r1, #0x2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x30
str r0, [sp, #0x0]
mov r0, #0x1
@@ -4113,7 +4113,7 @@ FUN_0207BCC8: ; 0x0207BCC8
mov r1, #0x2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x10
pop {r3-r7, pc}
@@ -4136,7 +4136,7 @@ _0207BD60:
blo _0207BD60
ldr r0, [r5, #0x0]
mov r1, #0x2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r4-r6, pc}
.balign 4
_0207BD80: .word 0x0000012E
@@ -4178,7 +4178,7 @@ _0207BDB6:
_0207BDCC:
ldr r0, [r5, #0x0]
mov r1, #0x2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r3-r7, pc}
.balign 4
@@ -4232,7 +4232,7 @@ _0207BE38:
mov r1, #0x2
mov r2, #0x3
mov r3, #0x0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r4, pc}
_0207BE46:
add r0, r4, #0x0
@@ -4242,7 +4242,7 @@ _0207BE46:
ldr r0, [r4, #0x0]
mov r1, #0x2
add r3, #0xfd
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r4, pc}
.balign 4
_0207BE5C: .word 0x0000068C
@@ -4268,34 +4268,34 @@ _0207BE7E:
ldr r0, [r4, #0x0]
mov r2, #0x0
add r3, #0xfe
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r4, #0x0]
mov r1, #0x2
mov r2, #0x3
mov r3, #0x0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0207C6F0
add r0, r4, #0x0
add r0, #0x64
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x79
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0207CFAC
@@ -4311,14 +4311,14 @@ _0207BE7E:
_0207BEEA:
ldr r0, [r4, #0x0]
mov r1, #0x2
- bl FUN_02017B54
+ bl Bg_GetYpos
cmp r0, #0x30
ldr r0, [r4, #0x0]
blt _0207BF0A
mov r1, #0x2
mov r2, #0x3
mov r3, #0x38
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, _0207BF78 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
@@ -4327,7 +4327,7 @@ _0207BF0A:
mov r1, #0x2
mov r2, #0x4
mov r3, #0x10
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
b _0207BF74
_0207BF16:
mov r1, #0xb5
@@ -4403,21 +4403,21 @@ _0207BFA6:
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x10
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x20
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x30
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0207CFAC
@@ -4430,14 +4430,14 @@ _0207BFA6:
_0207BFF6:
ldr r0, [r4, #0x0]
mov r1, #0x2
- bl FUN_02017B54
+ bl Bg_GetYpos
cmp r0, #0x8
ldr r0, [r4, #0x0]
bgt _0207C016
mov r1, #0x2
mov r2, #0x3
mov r3, #0x0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, _0207C078 ; =0x0000068E
mov r1, #0x2
strb r1, [r4, r0]
@@ -4446,28 +4446,28 @@ _0207C016:
mov r1, #0x2
mov r2, #0x5
mov r3, #0x10
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
b _0207C072
_0207C022:
add r0, r4, #0x0
add r0, #0x64
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x79
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
mov r1, #0xb4
bl FUN_0207D924
diff --git a/arm9/asm/unk_0207C328.s b/arm9/asm/unk_0207C328.s
index e4fac6e3..38691c40 100644
--- a/arm9/asm/unk_0207C328.s
+++ b/arm9/asm/unk_0207C328.s
@@ -1826,7 +1826,7 @@ FUN_0207CFAC: ; 0x0207CFAC
pop {r4, pc}
_0207CFC0:
add r0, r1, #0x0
- bl FUN_0201AB14
+ bl GetWindowX
add r1, r0, #0x0
ldr r0, _0207CFE8 ; =0x000004C4
lsl r1, r1, #0x3
diff --git a/arm9/asm/unk_0207D5BC.s b/arm9/asm/unk_0207D5BC.s
index 9bf3f266..3d3fd3fe 100644
--- a/arm9/asm/unk_0207D5BC.s
+++ b/arm9/asm/unk_0207D5BC.s
@@ -79,7 +79,7 @@ _0207D5C4:
ldr r0, [r7, #0x0]
add r1, r4, r6
add r2, r2, r3
- bl FUN_02019150
+ bl AddWindow
add r0, r4, r6
mov r1, #0x0
bl FillWindowPixelBuffer
@@ -207,7 +207,7 @@ _0207D6B4:
ldr r0, [r4, #0x0]
add r1, r1, r7
add r2, r5, #0x0
- bl FUN_02019150
+ bl AddWindow
mov r0, #0x92
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -269,7 +269,7 @@ _0207D732:
ldr r1, [r1, r2]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_020191A4
+ bl WindowArray_dtor
_0207D744:
pop {r3, pc}
nop
@@ -284,7 +284,7 @@ FUN_0207D74C: ; 0x0207D74C
add r5, r5, #0x4
_0207D758:
add r0, r5, #0x0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #0x1
add r5, #0x10
cmp r4, #0x24
@@ -354,7 +354,7 @@ _0207D7CA:
bl FUN_0207D998
_0207D7E8:
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3-r5, pc}
nop
@@ -428,7 +428,7 @@ FUN_0207D800: ; 0x0207D800
bl AddTextPrinterParameterized2
_0207D88A:
add r0, r5, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4-r6, pc}
.balign 4
@@ -484,11 +484,11 @@ _0207D8F2:
bl FUN_0207D998
add r0, r5, #0x0
add r0, #0x64
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x81
lsl r0, r0, #0x2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r3-r5, pc}
nop
_0207D918: .word 0x0000025E
@@ -515,7 +515,7 @@ FUN_0207D924: ; 0x0207D924
mov r0, #0x8d
lsl r0, r0, #0x2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r3-r5, pc}
nop
_0207D954: .word 0x000F0E00
@@ -1039,7 +1039,7 @@ FUN_0207DD88: ; 0x0207DD88
ldr r0, [r4, #0x0]
mov r1, #0x1
add r3, r2, #0x0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x2
str r0, [sp, #0x0]
mov r0, #0x12
@@ -1052,7 +1052,7 @@ FUN_0207DD88: ; 0x0207DD88
mov r1, #0x1
mov r2, #0x0
mov r3, #0xe
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, _0207DE38 ; =0x0000068C
ldrsb r0, [r4, r0]
cmp r0, #0x7
@@ -1122,31 +1122,31 @@ FUN_0207DE3C: ; 0x0207DE3C
sub sp, #0x10
add r4, r0, #0x0
add r0, r4, #0x4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0x74
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0x84
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0x94
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0xa4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0xb4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0xc4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0xe4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -1376,32 +1376,32 @@ _0207E058:
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x20
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x30
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x40
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x50
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3-r5, pc}
.balign 4
@@ -1517,7 +1517,7 @@ FUN_0207E190: ; 0x0207E190
push {r3-r7, lr}
add r5, r0, #0x0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r5, r0]
@@ -1560,7 +1560,7 @@ _0207E1F4:
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r5, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r3-r7, pc}
thumb_func_start FUN_0207E200
@@ -1569,34 +1569,34 @@ FUN_0207E200: ; 0x0207E200
sub sp, #0x18
add r4, r0, #0x0
add r0, #0x24
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
add r0, #0xf4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x41
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x45
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x49
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x4d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x51
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x55
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -1803,42 +1803,42 @@ FUN_0207E200: ; 0x0207E200
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x20
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x30
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x40
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x50
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x60
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x70
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x18
pop {r3-r5, pc}
nop
@@ -1856,11 +1856,11 @@ FUN_0207E4A0: ; 0x0207E4A0
sub sp, #0x10
add r4, r0, #0x0
add r0, #0x34
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x59
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -1919,7 +1919,7 @@ _0207E4C6:
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x93
lsl r0, r0, #0x2
ldr r1, [r4, r0]
@@ -1946,7 +1946,7 @@ _0207E4C6:
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r1, #0x91
lsl r1, r1, #0x2
ldr r1, [r4, r1]
@@ -1966,7 +1966,7 @@ FUN_0207E594: ; 0x0207E594
push {r4, lr}
add r4, r0, #0x0
add r0, #0x44
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -2025,22 +2025,22 @@ _0207E5BC:
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x20
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x30
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r4, pc}
.balign 4
@@ -2049,7 +2049,7 @@ FUN_0207E650: ; 0x0207E650
push {r4, lr}
add r4, r0, #0x0
add r0, #0x54
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -2108,22 +2108,22 @@ _0207E678:
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x20
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x30
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r4, pc}
.balign 4
@@ -2135,11 +2135,11 @@ FUN_0207E70C: ; 0x0207E70C
mov r0, #0x7d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x79
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -2163,7 +2163,7 @@ FUN_0207E70C: ; 0x0207E70C
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _0207E780 ; =0x00000699
ldrb r0, [r4, r0]
cmp r0, #0x0
@@ -2191,7 +2191,7 @@ FUN_0207E788: ; 0x0207E788
mov r0, #0x71
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0x0
mov r1, #0xa1
bl FUN_0207D924
@@ -2258,7 +2258,7 @@ _0207E7BC:
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_0207E82C:
add sp, #0x10
pop {r4, pc}
@@ -2419,7 +2419,7 @@ FUN_0207E840: ; 0x0207E840
lsl r0, r0, #0x2
ldr r0, [r5, r0]
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4-r6, pc}
.balign 4
@@ -2486,12 +2486,12 @@ FUN_0207E9A0: ; 0x0207E9A0
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x20
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x30
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r4, pc}
.balign 4
_0207EA34: .word 0x0000069A
@@ -2645,15 +2645,15 @@ FUN_0207EB64: ; 0x0207EB64
lsl r0, r0, #0x2
add r0, r5, r0
add r4, r1, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x69
lsl r0, r0, #0x2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x6d
lsl r0, r0, #0x2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r5, r0]
@@ -2754,17 +2754,17 @@ _0207EC1C:
lsl r0, r0, #0x2
ldr r0, [r5, r0]
add r0, #0x50
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r5, r0]
add r0, #0x60
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r5, r0]
add r0, #0x70
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x4
pop {r3-r6, pc}
.balign 4
@@ -2779,30 +2779,30 @@ FUN_0207EC94: ; 0x0207EC94
mov r0, #0x65
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x69
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x6d
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x50
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x60
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x70
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
pop {r4, pc}
thumb_func_start FUN_0207ECDC
@@ -2827,12 +2827,12 @@ FUN_0207ECDC: ; 0x0207ECDC
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x40
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r4, pc}
_0207ED0E:
sub r0, #0xc8
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r4, pc}
thumb_func_start FUN_0207ED18
@@ -2842,10 +2842,10 @@ FUN_0207ED18: ; 0x0207ED18
mov r0, #0x61
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
ldr r0, [r4, #0x0]
mov r1, #0x1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r4, pc}
thumb_func_start FUN_0207ED30
@@ -2895,7 +2895,7 @@ FUN_0207ED30: ; 0x0207ED30
lsr r0, r0, #0x1c
lsl r0, r0, #0x4
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r1, [r4, r0]
@@ -2905,7 +2905,7 @@ FUN_0207ED30: ; 0x0207ED30
lsr r0, r0, #0x1c
lsl r0, r0, #0x4
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r4, pc}
nop
_0207EDB0: .word 0x0000068D
@@ -2922,17 +2922,17 @@ FUN_0207EDB4: ; 0x0207EDB4
lsl r0, r0, #0x2
ldr r0, [r5, r0]
add r0, #0x50
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r5, r0]
add r0, #0x60
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r5, r0]
add r0, #0x70
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r4, [r5, r0]
@@ -2959,7 +2959,7 @@ _0207EDF6:
mov r3, #0x0
bl FUN_0207D998
add r0, r4, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r3-r5, pc}
.balign 4
_0207EE20: .word 0x0000068C
@@ -3015,12 +3015,12 @@ FUN_0207EE2C: ; 0x0207EE2C
mov r0, #0x75
lsl r0, r0, #0x2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r5, r0]
add r0, #0x50
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4-r6, pc}
.balign 4
@@ -3033,12 +3033,12 @@ FUN_0207EEB0: ; 0x0207EEB0
mov r0, #0x75
lsl r0, r0, #0x2
add r0, r4, r0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x91
lsl r0, r0, #0x2
ldr r0, [r4, r0]
add r0, #0x50
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
pop {r4, pc}
thumb_func_start FUN_0207EECC
@@ -3119,7 +3119,7 @@ _0207EF10:
mov r1, #0x1
bl AddTextPrinterParameterized2
add r0, r6, #0x0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4-r6, pc}
.balign 4
diff --git a/arm9/asm/unk_0207F95C.s b/arm9/asm/unk_0207F95C.s
index b36fe9c1..6c0cc9bf 100644
--- a/arm9/asm/unk_0207F95C.s
+++ b/arm9/asm/unk_0207F95C.s
@@ -92,7 +92,7 @@ _0207F992:
ldr r0, [r4, #0x0]
mov r2, #0x0
add r3, r1, #0x0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
b _0207F9BA
_0207F9AC:
ldr r1, _0207F9C4 ; =0x0000068F
@@ -116,7 +116,7 @@ FUN_0207F9C8: ; 0x0207F9C8
add r4, r1, #0x0
mov r1, #0x4
add r5, r2, #0x0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r7, r0, #0x0
lsl r0, r5, #0x2
add r1, r5, r0
@@ -200,7 +200,7 @@ _0207FA52:
_0207FA6C:
ldr r0, [r6, #0x0]
mov r1, #0x4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_0207FA74:
pop {r3-r7, pc}
nop
@@ -279,7 +279,7 @@ _0207FADA:
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
mov r1, #0x4
- bl FUN_0201AFBC
+ bl DoesPixelAtScreenXYMatchPtrVal
cmp r0, #0x0
bne _0207FB12
mov r0, #0x0
@@ -330,7 +330,7 @@ _0207FB4A:
bl FUN_0207F9C8
ldr r0, [r5, #0x0]
mov r1, #0x4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r5, #0x0
bl FUN_0207CEDC
ldr r0, _0207FC00 ; =0x00000694
@@ -390,7 +390,7 @@ _0207FBD6:
_0207FBE2:
ldr r0, [r5, #0x0]
mov r1, #0x4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #0x1
pop {r4-r6, pc}
_0207FBEE:
diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s
index e235eb3e..162a8aca 100644
--- a/arm9/asm/unk_020859C0.s
+++ b/arm9/asm/unk_020859C0.s
@@ -282,7 +282,7 @@ _02085A9A:
cmp r5, #0x6
blt _02085A7C
mov r0, #0x35
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r1, r4, #0x0
add r1, #0xe4
str r0, [r1, #0x0]
@@ -471,37 +471,37 @@ FUN_02085C08: ; 0x02085C08
add r0, #0xe4
ldr r0, [r0, #0x0]
mov r1, #0x1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
mov r1, #0x2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
mov r1, #0x3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
mov r1, #0x4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
mov r1, #0x5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
mov r1, #0x6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
mov r1, #0x7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
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 47bbe03c..d110b7f1 100644
--- a/arm9/asm/unk_02086084.s
+++ b/arm9/asm/unk_02086084.s
@@ -48,7 +48,7 @@ FUN_02086084: ; 0x02086084
bl FUN_02006D98
str r0, [r4, #0x3c]
mov r0, #0x47
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x4]
mov r0, #0x40
mov r1, #0x47
@@ -197,16 +197,16 @@ FUN_020861DC: ; 0x020861DC
bl FUN_02002FEC
ldr r0, [r4, #0x4]
mov r1, #0x1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x4]
mov r1, #0x2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x4]
mov r1, #0x3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x4]
mov r1, #0x4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x4]
bl FreeToHeap
bl FUN_0201C29C
diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s
index 237ebc91..f01e84e2 100644
--- a/arm9/asm/unk_02086414.s
+++ b/arm9/asm/unk_02086414.s
@@ -294,7 +294,7 @@ _0208655C:
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
add r0, r2, #0x0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _02086658 ; =UNK_020FCF84
add r3, sp, #0x54
mov r2, #0xa
@@ -309,26 +309,26 @@ _020865BC:
add r0, r4, #0x0
add r2, sp, #0x54
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x2
add r2, sp, #0x70
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x3
add r2, sp, #0x8c
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0x0
mov r1, #0x3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r1, _0208665C ; =0x04000008
mov r0, #0x3
ldrh r2, [r1, #0x0]
@@ -356,10 +356,10 @@ _020865BC:
str r0, [r3, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0xa8
pop {r3-r5, pc}
.balign 4
@@ -380,7 +380,7 @@ FUN_02086664: ; 0x02086664
ldr r0, [r4, #0x8]
bl FUN_0200372C
ldr r0, [r4, #0x4]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _02086690 ; =0x027E0000
ldr r1, _02086694 ; =0x00003FF8
mov r0, #0x1
@@ -544,7 +544,7 @@ FUN_02086784: ; 0x02086784
lsr r0, r0, #0x10
str r0, [sp, #0x10]
add r0, r7, #0x0
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0x0
mov r1, #0x1
mov r2, #0x14
@@ -655,7 +655,7 @@ FUN_02086878: ; 0x02086878
str r0, [sp, #0x10]
add r0, r6, #0x0
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x2
mov r1, #0x47
bl ListMenuItems_ctor
@@ -736,10 +736,10 @@ FUN_02086960: ; 0x02086960
bl FUN_0200CCF8
add r0, r4, #0x0
add r0, #0x28
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
add r0, #0x28
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x48]
mov r1, #0x0
bl FUN_02001C5C
@@ -751,9 +751,9 @@ FUN_02086960: ; 0x02086960
FUN_0208698C: ; 0x0208698C
push {r4, lr}
add r4, r0, #0x0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0x0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
thumb_func_start FUN_0208699C
diff --git a/arm9/asm/unk_02089498.s b/arm9/asm/unk_02089498.s
index c29136ec..b6b6ec25 100644
--- a/arm9/asm/unk_02089498.s
+++ b/arm9/asm/unk_02089498.s
@@ -209,7 +209,7 @@ FUN_02089610: ; 0x02089610
ldr r0, [r0, #0x14]
bx r3
nop
-_02089618: .word FUN_0201AB60
+_02089618: .word DoScheduledBgGpuUpdates
thumb_func_start FUN_0208961C
FUN_0208961C: ; 0x0208961C
@@ -227,7 +227,7 @@ _02089628:
add r0, sp, #0x34
bl GX_SetBanks
ldr r0, [r4, #0x0]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0x24
ldr r5, _020896CC ; =UNK_020FF314
str r0, [r4, #0x14]
@@ -237,7 +237,7 @@ _02089628:
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
add r0, r2, #0x0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _020896D0 ; =UNK_020FF324
add r3, sp, #0x8
ldmia r5!, {r0-r1}
@@ -252,10 +252,10 @@ _02089628:
str r0, [r3, #0x0]
ldr r0, [r4, #0x14]
add r3, r1, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x14]
mov r1, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0x0
str r1, [sp, #0x0]
ldr r0, [r4, #0x0]
@@ -280,13 +280,13 @@ _02089628:
ldr r3, [r4, #0x0]
mov r1, #0x20
add r2, r0, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r1, _020896DC ; =0x00006C21
mov r0, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r1, _020896DC ; =0x00006C21
mov r0, #0x4
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x5c
pop {r4-r5, pc}
.balign 4
@@ -303,31 +303,31 @@ FUN_020896E0: ; 0x020896E0
add r4, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x3
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x4
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x5
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x6
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x7
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x14]
mov r1, #0x0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x14]
bl FreeToHeap
pop {r4, pc}
@@ -350,7 +350,7 @@ FUN_02089734: ; 0x02089734
ldr r0, [r4, #0x14]
ldr r2, _02089778 ; =UNK_020FF304
add r1, #0x1c
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd8
str r0, [sp, #0x0]
mov r0, #0x20
@@ -371,7 +371,7 @@ FUN_0208977C: ; 0x0208977C
push {r4, lr}
add r4, r0, #0x0
add r0, #0x1c
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x18]
bl DestroyMsgData
pop {r4, pc}
@@ -502,7 +502,7 @@ _0208986C:
_0208987E:
ldr r0, [r4, #0x14]
add r1, r5, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r5, #0x1
_02089888:
add r0, r5, #0x0
diff --git a/arm9/asm/unk_02089960.s b/arm9/asm/unk_02089960.s
index 4e0d2d7f..7af6109f 100644
--- a/arm9/asm/unk_02089960.s
+++ b/arm9/asm/unk_02089960.s
@@ -167,7 +167,7 @@ _02089A78:
add r0, sp, #0x34
bl GX_SetBanks
ldr r0, [r4, #0x0]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0x24
ldr r5, _02089B1C ; =UNK_020FF380
str r0, [r4, #0x18]
@@ -177,7 +177,7 @@ _02089A78:
ldmia r5!, {r0-r1}
stmia r3!, {r0-r1}
add r0, r2, #0x0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _02089B20 ; =UNK_020FF390
add r3, sp, #0x8
ldmia r5!, {r0-r1}
@@ -192,10 +192,10 @@ _02089A78:
str r0, [r3, #0x0]
ldr r0, [r4, #0x18]
add r3, r1, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0x0
str r1, [sp, #0x0]
ldr r0, [r4, #0x0]
@@ -220,13 +220,13 @@ _02089A78:
ldr r3, [r4, #0x0]
mov r1, #0x20
add r2, r0, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x4
mov r1, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x5c
pop {r4-r5, pc}
.balign 4
@@ -242,31 +242,31 @@ FUN_02089B2C: ; 0x02089B2C
add r4, r0, #0x0
mov r0, #0x0
add r1, r0, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x1
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x2
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x3
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x4
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x5
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x6
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x7
mov r1, #0x0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x18]
mov r1, #0x0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
bl FreeToHeap
pop {r4, pc}
@@ -289,7 +289,7 @@ FUN_02089B80: ; 0x02089B80
ldr r0, [r4, #0x18]
ldr r2, _02089BC8 ; =UNK_020FF378
add r1, #0x20
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd8
str r0, [sp, #0x0]
mov r0, #0x20
@@ -311,7 +311,7 @@ FUN_02089BCC: ; 0x02089BCC
push {r4, lr}
add r4, r0, #0x0
add r0, #0x20
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x1c]
bl DestroyMsgData
pop {r4, pc}
@@ -373,10 +373,10 @@ _02089C34:
_02089C3C:
ldr r1, _02089CC8 ; =0x00006C21
add r0, r5, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r1, _02089CC8 ; =0x00006C21
mov r0, #0x4
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x6
mov r1, #0x1
str r0, [sp, #0x0]
@@ -424,10 +424,10 @@ _02089CA2:
bne _02089CC2
add r0, r5, #0x0
add r1, r0, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x4
add r1, r5, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x5
str r0, [r4, #0x4]
b _02089CC2
diff --git a/arm9/asm/unk_02089D90.s b/arm9/asm/unk_02089D90.s
index e78492e3..4ef386dd 100644
--- a/arm9/asm/unk_02089D90.s
+++ b/arm9/asm/unk_02089D90.s
@@ -79,18 +79,18 @@ FUN_02089D90: ; 0x02089D90
ldr r0, _02089F0C ; =UNK_020FF418
bl GX_SetBanks
add r0, r4, #0x0
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r5, r0, #0x0
ldr r0, _02089F10 ; =UNK_020FF3EC
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r1, #0x0
ldr r2, _02089F14 ; =UNK_020FF3FC
add r0, r5, #0x0
add r3, r1, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0x0
mov r1, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0x0
str r1, [sp, #0x0]
ldr r2, _02089F18 ; =0x000001F7
@@ -106,13 +106,13 @@ FUN_02089D90: ; 0x02089D90
mov r1, #0x20
add r2, r0, #0x0
add r3, r4, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r1, _02089F1C ; =0x00006C21
mov r0, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r1, _02089F1C ; =0x00006C21
mov r0, #0x4
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x1
mov r1, #0x1a
mov r2, #0x5
@@ -128,7 +128,7 @@ FUN_02089D90: ; 0x02089D90
ldr r2, _02089F20 ; =UNK_020FF3E4
add r0, r5, #0x0
add r1, sp, #0xc
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd0
str r0, [sp, #0x0]
mov r0, #0x90
diff --git a/arm9/asm/unk_02089F24.s b/arm9/asm/unk_02089F24.s
index 1ffe57ab..63f6e77a 100644
--- a/arm9/asm/unk_02089F24.s
+++ b/arm9/asm/unk_02089F24.s
@@ -83,18 +83,18 @@ FUN_02089F24: ; 0x02089F24
ldr r0, _0208A0A0 ; =UNK_020FF418
bl GX_SetBanks
add r0, r4, #0x0
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r5, r0, #0x0
ldr r0, _0208A0A4 ; =UNK_020FF3EC
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r1, #0x0
ldr r2, _0208A0A8 ; =UNK_020FF3FC
add r0, r5, #0x0
add r3, r1, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0x0
mov r1, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0x0
str r1, [sp, #0x0]
ldr r2, _0208A0AC ; =0x000001F7
@@ -110,13 +110,13 @@ FUN_02089F24: ; 0x02089F24
mov r1, #0x20
add r2, r0, #0x0
add r3, r4, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r1, _0208A0B0 ; =0x00006C21
mov r0, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r1, _0208A0B0 ; =0x00006C21
mov r0, #0x4
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x1
mov r1, #0x1a
mov r2, #0x5
@@ -132,7 +132,7 @@ FUN_02089F24: ; 0x02089F24
ldr r2, _0208A0B4 ; =UNK_020FF3E4
add r0, r5, #0x0
add r1, sp, #0xc
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd0
str r0, [sp, #0x0]
mov r0, #0x90
@@ -252,18 +252,18 @@ _0208A0C8:
ldr r0, _0208A240 ; =UNK_020FF474
bl GX_SetBanks
add r0, r4, #0x0
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r5, r0, #0x0
ldr r0, _0208A244 ; =UNK_020FF448
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r1, #0x0
ldr r2, _0208A248 ; =UNK_020FF458
add r0, r5, #0x0
add r3, r1, #0x0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0x0
mov r1, #0x0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0x0
str r1, [sp, #0x0]
ldr r2, _0208A24C ; =0x000001F7
@@ -279,13 +279,13 @@ _0208A0C8:
mov r1, #0x20
add r2, r0, #0x0
add r3, r4, #0x0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r1, _0208A250 ; =0x00006C21
mov r0, #0x0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r1, _0208A250 ; =0x00006C21
mov r0, #0x4
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #0x1
mov r1, #0x1a
mov r2, #0x6
@@ -301,7 +301,7 @@ _0208A0C8:
ldr r2, _0208A254 ; =UNK_020FF440
add r0, r5, #0x0
add r1, sp, #0xc
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd0
str r0, [sp, #0x0]
mov r0, #0x90
diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s
index 05a7d41f..3df63ca5 100644
--- a/arm9/asm/unk_0208A338.s
+++ b/arm9/asm/unk_0208A338.s
@@ -94,36 +94,36 @@ FUN_0208A400: ; 0x0208A400
push {r4, lr}
add r4, r0, #0x0
add r0, #0x18
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
beq _0208A41E
add r0, r4, #0x0
add r0, #0x18
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0x0
add r0, #0x18
bl InitWindow
_0208A41E:
add r0, r4, #0x0
add r0, #0x28
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
beq _0208A43A
add r0, r4, #0x0
add r0, #0x28
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0x0
add r0, #0x28
bl InitWindow
_0208A43A:
add r0, r4, #0x0
add r0, #0x38
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
beq _0208A456
add r0, r4, #0x0
add r0, #0x38
- bl FUN_02019178
+ bl RemoveWindow
add r4, #0x38
add r0, r4, #0x0
bl InitWindow
@@ -455,7 +455,7 @@ _0208A6F4:
bl ReadMsgDataIntoString
_0208A6FA:
add r0, r4, #0x0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
bne _0208A722
ldr r0, [r5, #0x0]
@@ -508,7 +508,7 @@ FUN_0208A760: ; 0x0208A760
add r4, r0, #0x0
add r4, #0x18
add r0, r4, #0x0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
beq _0208A778
add r0, r4, #0x0
@@ -526,7 +526,7 @@ FUN_0208A77C: ; 0x0208A77C
add r7, r5, #0x0
add r7, #0x28
add r0, r7, #0x0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
bne _0208A808
mov r0, #0x0
@@ -553,7 +553,7 @@ FUN_0208A77C: ; 0x0208A77C
ldr r0, [r0, #0x8]
mov r2, #0x3
mov r3, #0x11
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r7, #0x0
mov r1, #0xf
bl FillWindowPixelBuffer
@@ -614,7 +614,7 @@ FUN_0208A82C: ; 0x0208A82C
add r7, r5, #0x0
add r7, #0x38
add r0, r7, #0x0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0x0
bne _0208A8B8
mov r0, #0x0
@@ -641,7 +641,7 @@ FUN_0208A82C: ; 0x0208A82C
ldr r0, [r0, #0x8]
mov r2, #0x3
mov r3, #0x19
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r7, #0x0
mov r1, #0xf
bl FillWindowPixelBuffer
@@ -779,7 +779,7 @@ _0208A954:
lsl r3, r3, #0x4
bl ListMenuUpdateCursorObj
ldr r0, [r4, #0x68]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, _0208A994 ; =0x000005DC
bl FUN_020054C8
mov r0, #0x0
diff --git a/arm9/global.inc b/arm9/global.inc
index 3972e4ae..325ba1ec 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -1034,92 +1034,92 @@
.extern GF_ExpHeap_FndInitAllocator
.extern ReallocFromHeap
.extern GF_heap_c_dummy_return_true
-.extern FUN_02016B94
-.extern FUN_02016BB8
-.extern FUN_02016BBC
-.extern FUN_02016BF4
-.extern FUN_02016C18
-.extern FUN_020170F4
-.extern FUN_020178A0
-.extern FUN_020178BC
-.extern FUN_0201797C
-.extern FUN_020179E0
-.extern FUN_02017B48
-.extern FUN_02017B54
-.extern FUN_02017B60
-.extern FUN_02017BD0
-.extern FUN_02017CD0
-.extern FUN_02017CE8
-.extern FUN_02017DFC
-.extern FUN_02017E14
-.extern FUN_02017F18
-.extern FUN_02017F48
-.extern FUN_02017FB4
-.extern FUN_02017FE4
-.extern FUN_02018148
-.extern FUN_02018170
-.extern FUN_020181EC
-.extern FUN_02018540
-.extern FUN_020186B4
-.extern FUN_02018744
-.extern FUN_02018768
-.extern FUN_0201878C
-.extern FUN_020187B0
-.extern FUN_0201886C
-.extern FUN_02018878
-.extern FUN_02018884
+.extern BgConfig_Alloc
+.extern BgConfig_GetHeapId
+.extern SetBothScreensModesAndDisable
+.extern SetScreenModeAndDisable
+.extern InitBgFromTemplate
+.extern SetBgControlParam
+.extern FreeBgTilemapBuffer
+.extern SetBgPriority
+.extern ToggleBgLayer
+.extern BgSetPosTextAndCommit
+.extern Bg_GetXpos
+.extern Bg_GetYpos
+.extern Bg_SetTextDimAndAffineParams
+.extern SetBgAffine
+.extern BgCommitTilemapBufferToVram
+.extern BgCopyOrUncompressTilemapBufferRangeToVram
+.extern BG_LoadScreenTilemapData
+.extern BG_LoadCharTilesData
+.extern BG_ClearCharDataRange
+.extern BG_FillCharDataRange
+.extern BG_LoadPlttData
+.extern BG_SetMaskColor
+.extern LoadRectToBgTilemapRect
+.extern CopyToBgTilemapRect
+.extern CopyRectToBgTilemapRect
+.extern FillBgTilemapRect
+.extern BgTilemapRectChangePalette
+.extern BgClearTilemapBufferAndCommit
+.extern BgFillTilemapBufferAndCommit
+.extern BgFillTilemapBufferAndSchedule
+.extern BgGetCharPtr
+.extern GetBgTilemapBuffer
+.extern GetBgAffineRotation
+.extern GetBgPriority
.extern BlitBitmapRect4Bit
-.extern FUN_02018F4C
+.extern FillBitmapRect8Bit
.extern AllocWindows
.extern InitWindow
-.extern FUN_02019048
-.extern FUN_02019064
-.extern FUN_020190EC
-.extern FUN_02019150
-.extern FUN_02019178
-.extern FUN_020191A4
+.extern WindowIsInUse
+.extern AddWindowParameterized
+.extern AddTextWindowTopLeftCorner
+.extern AddWindow
+.extern RemoveWindow
+.extern WindowArray_dtor
.extern CopyWindowToVram
-.extern FUN_02019220
-.extern FUN_02019270
-.extern FUN_0201928C
-.extern FUN_020192B8
-.extern FUN_020192D4
-.extern FUN_02019358
-.extern FUN_020193B4
-.extern FUN_02019444
-.extern FUN_0201949C
-.extern FUN_020194C8
-.extern FUN_020194E0
-.extern FUN_0201951C
-.extern FUN_02019548
-.extern FUN_02019570
-.extern FUN_0201958C
-.extern FUN_020195A8
-.extern FUN_020195D0
-.extern FUN_020195E4
-.extern FUN_0201960C
+.extern ScheduleWindowCopyToVram
+.extern PutWindowTilemap
+.extern PutWindowTilemapRectAnchoredTopLeft
+.extern ClearWindowTilemap
+.extern PutWindowTilemap_TextMode
+.extern PutWindowTilemap_AffineMode
+.extern ClearWindowTilemapText
+.extern ClearWindowTilemapAffine
+.extern CopyWindowToVram_TextMode
+.extern ScheduleWindowCopyToVram_TextMode
+.extern CopyWindowToVram_AffineMode
+.extern ScheduleWindowCopyToVram_AffineMode
+.extern CopyWindowPixelsToVram_TextMode
+.extern ClearWindowTilemapAndCopyToVram
+.extern ClearWindowTilemapAndScheduleTransfer
+.extern ClearWindowTilemapAndNowCopy_TextMode
+.extern ClearWindowTilemapAndCommit_TextMode
+.extern ClearWindowTilemapAndNowCopy_AffineMode
+.extern ClearWindowTilemapAndCommit_AffineMode
.extern FillWindowPixelBuffer
.extern BlitBitmapRectToWindow
.extern BlitBitmapRect
.extern FillWindowPixelRect
-.extern FUN_0201974C
+.extern CopyGlyphToWindow
.extern ScrollWindow
-.extern FUN_0201AB08
+.extern GetWindowBgId
.extern GetWindowWidth
.extern GetWindowHeight
-.extern FUN_0201AB14
-.extern FUN_0201AB18
-.extern FUN_0201AB1C
-.extern FUN_0201AB20
-.extern FUN_0201AB24
-.extern FUN_0201AB28
-.extern FUN_0201AB44
-.extern FUN_0201AB60
-.extern FUN_0201AC68
-.extern FUN_0201AEE4
-.extern FUN_0201AF08
-.extern FUN_0201AF50
-.extern FUN_0201AFBC
+.extern GetWindowX
+.extern GetWindowY
+.extern MoveWindowX
+.extern MoveWindowY
+.extern SetWindowPaletteNum
+.extern LoadCharacterDataFromFile
+.extern LoadPaletteDataFromFile
+.extern DoScheduledBgGpuUpdates
+.extern ScheduleBgTilemapBufferTransfer
+.extern ScheduleSetBgPosText
+.extern ScheduleSetBgAffineRotation
+.extern ScheduleSetBgAffinePos
+.extern DoesPixelAtScreenXYMatchPtrVal
.extern FUN_0201B21C
.extern FUN_0201B234
.extern FUN_0201B254
@@ -5795,10 +5795,10 @@
.extern NNS_SndArcPlayerStartSeqEx
.extern NNS_SndArcPlayerStartSeq
.extern NNS_SndArcPlayerSetup
-.extern FUN_020C5D8C
-.extern FUN_020C5E04
-.extern FUN_020C6034
-.extern FUN_020C605C
+.extern GX_GetBankForTex
+.extern GX_DisableBankForSubBG
+.extern GX_ResetBankForSubBGExtPltt
+.extern GX_ResetBankForSubOBJ
.extern CARDi_TryWaitAsync
.extern FUN_020D9564
.extern FX_Atan
@@ -5903,12 +5903,12 @@
.extern GX_DisableBankForClearImage
.extern GX_DisableBankForLCDC
.extern GX_DisableBankForOBJExtPltt
-.extern GX_DisableBankForOBJExtPltt_2
+.extern GX_DisableBankForOBJ
.extern GX_DisableBankForSubBGExtPltt
.extern GX_DisableBankForSubOBJExtPltt
-.extern GX_DisableBankForSubOBJExtPltt_2
+.extern GX_DisableBankForSubOBJ
.extern GX_DisableBankForTexPltt
-.extern GX_DisableBankForTexPltt_2
+.extern GX_DisableBankForTex
.extern GX_DispOff
.extern GX_DispOn
.extern GX_EndLoadBGExtPltt
@@ -5917,12 +5917,12 @@
.extern GX_EndLoadTex
.extern GX_EndLoadTexPltt
.extern GX_GetBankForBGExtPltt
-.extern GX_GetBankForBGExtPltt_2
+.extern GX_GetBankForBG
.extern GX_GetBankForLCDC
.extern GX_GetBankForOBJ
.extern GX_GetBankForOBJExtPltt
.extern GX_GetBankForSubBGExtPltt
-.extern GX_GetBankForSubBGExtPltt_2
+.extern GX_GetBankForSubBG
.extern GX_GetBankForSubOBJ
.extern GX_GetBankForSubOBJExtPltt
.extern GX_GetBankForTexPltt
@@ -5953,7 +5953,7 @@
.extern GX_ResetBankForOBJ
.extern GX_ResetBankForOBJExtPltt
.extern GX_ResetBankForSubBG
-.extern GX_ResetBankForSubOBJ
+.extern GX_ResetBankForSubOBJExtPltt
.extern GX_ResetBankForTex
.extern GX_ResetBankForTexPltt
.extern GX_SendFifo48B
@@ -8400,7 +8400,7 @@
.extern atod
.extern atol
.extern cardi_common
-.extern disableBankForX_
+.extern GX_DisableBankForBG
.extern double2hex
.extern double2hex_wide
.extern exit
diff --git a/arm9/lib/include/GX_bgcnt.h b/arm9/lib/include/GX_bgcnt.h
index a581443e..b64d4432 100644
--- a/arm9/lib/include/GX_bgcnt.h
+++ b/arm9/lib/include/GX_bgcnt.h
@@ -285,6 +285,14 @@ typedef enum
}
GXBGExtPltt;
+typedef enum
+{
+ GX_BG_EXTMODE_256x16PLTT = (0 << REG_G2_BG2CNT_CHARBASE_SHIFT) | (0 << REG_G2_BG2CNT_COLORMODE_SHIFT),
+ GX_BG_EXTMODE_256BITMAP = (0 << REG_G2_BG2CNT_CHARBASE_SHIFT) | (1 << REG_G2_BG2CNT_COLORMODE_SHIFT),
+ GX_BG_EXTMODE_DCBITMAP = (1 << REG_G2_BG2CNT_CHARBASE_SHIFT) | (1 << REG_G2_BG2CNT_COLORMODE_SHIFT)
+}
+GXBGExtMode;
+
//GX_capture
typedef enum
{
@@ -344,4 +352,410 @@ typedef enum
}
GXCaptureMode;
+static inline void G2_SetBG0Control(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase, GXBGExtPltt bgExtPltt)
+{
+ reg_G2_BG0CNT = (u16)((reg_G2_BG0CNT & (REG_G2_BG0CNT_PRIORITY_MASK | REG_G2_BG0CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG0CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2_BG0CNT_COLORMODE_SHIFT) | (screenBase << REG_G2_BG0CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG0CNT_CHARBASE_SHIFT) | (bgExtPltt << REG_G2_BG0CNT_BGPLTTSLOT_SHIFT));
+}
+
+static inline void G2S_SetBG0Control(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase, GXBGExtPltt bgExtPltt)
+{
+ reg_G2S_DB_BG0CNT = (u16)((reg_G2S_DB_BG0CNT & (REG_G2S_DB_BG0CNT_PRIORITY_MASK | REG_G2S_DB_BG0CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG0CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2S_DB_BG0CNT_COLORMODE_SHIFT) | (screenBase << REG_G2S_DB_BG0CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG0CNT_CHARBASE_SHIFT) | (bgExtPltt << REG_G2S_DB_BG0CNT_BGPLTTSLOT_SHIFT));
+}
+
+static inline void G2_SetBG1Control(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase, GXBGExtPltt bgExtPltt)
+{
+ reg_G2_BG1CNT = (u16)((reg_G2_BG1CNT & (REG_G2_BG1CNT_PRIORITY_MASK | REG_G2_BG1CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG1CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2_BG1CNT_COLORMODE_SHIFT) | (screenBase << REG_G2_BG1CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG1CNT_CHARBASE_SHIFT) | (bgExtPltt << REG_G2_BG1CNT_BGPLTTSLOT_SHIFT));
+}
+
+static inline void G2S_SetBG1Control(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase, GXBGExtPltt bgExtPltt)
+{
+ reg_G2S_DB_BG1CNT = (u16)((reg_G2S_DB_BG1CNT & (REG_G2S_DB_BG1CNT_PRIORITY_MASK | REG_G2S_DB_BG1CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG1CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2S_DB_BG1CNT_COLORMODE_SHIFT) | (screenBase << REG_G2S_DB_BG1CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG1CNT_CHARBASE_SHIFT) | (bgExtPltt << REG_G2S_DB_BG1CNT_BGPLTTSLOT_SHIFT));
+}
+
+static inline void G2_SetBG2ControlText(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & ((REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK))) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2_BG2CNT_COLORMODE_SHIFT) | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG2CNT_CHARBASE_SHIFT));
+}
+
+static inline void G2S_SetBG2ControlText(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & ((REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK))) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2S_DB_BG2CNT_COLORMODE_SHIFT) | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG2CNT_CHARBASE_SHIFT));
+}
+
+static inline void G2_SetBG2ControlAffine(GXBGScrSizeAffine screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & ((REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK))) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG2CNT_CHARBASE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG2ControlAffine(GXBGScrSizeAffine screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & ((REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK))) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG2CNT_CHARBASE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_SetBG2Control256x16Pltt(GXBGScrSize256x16Pltt screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & (REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | (charBase << REG_G2_BG2CNT_CHARBASE_SHIFT) | GX_BG_EXTMODE_256x16PLTT | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG2Control256x16Pltt(GXBGScrSize256x16Pltt screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & (REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | (charBase << REG_G2S_DB_BG2CNT_CHARBASE_SHIFT) | GX_BG_EXTMODE_256x16PLTT | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_SetBG2Control256Bmp(GXBGScrSize256Bmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase)
+{
+ reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & (REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_256BITMAP | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG2Control256Bmp(GXBGScrSize256Bmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase)
+{
+ reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & (REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_256BITMAP | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_SetBG2ControlDCBmp(GXBGScrSizeDcBmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase)
+{
+ reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & (REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_DCBITMAP | (screenBase << REG_G2_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG2ControlDCBmp(GXBGScrSizeDcBmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase)
+{
+ reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & (REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_DCBITMAP | (screenBase << REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_SetBG2ControlLargeBmp(GXBGScrSizeLargeBmp screenSize, GXBGAreaOver areaOver)
+{
+ reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & (REG_G2_BG2CNT_PRIORITY_MASK | REG_G2_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG2CNT_SCREENSIZE_SHIFT) | (areaOver << REG_G2_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG2ControlLargeBmp(GXBGScrSizeLargeBmp screenSize, GXBGAreaOver areaOver)
+{
+ reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & (REG_G2S_DB_BG2CNT_PRIORITY_MASK | REG_G2S_DB_BG2CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT) | (areaOver << REG_G2S_DB_BG2CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_SetBG3ControlText(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & ((REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK))) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2_BG3CNT_COLORMODE_SHIFT) | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG3CNT_CHARBASE_SHIFT));
+}
+
+static inline void G2S_SetBG3ControlText(GXBGScrSizeText screenSize, GXBGColorMode colorMode, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & ((REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK))) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | (colorMode << REG_G2S_DB_BG3CNT_COLORMODE_SHIFT) | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG3CNT_CHARBASE_SHIFT));
+}
+
+static inline void G2_SetBG3ControlAffine(GXBGScrSizeAffine screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & ((REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK))) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (charBase << REG_G2_BG3CNT_CHARBASE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG3ControlAffine(GXBGScrSizeAffine screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & ((REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK))) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (charBase << REG_G2S_DB_BG3CNT_CHARBASE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_SetBG3Control256x16Pltt(GXBGScrSize256x16Pltt screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & (REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | (charBase << REG_G2_BG3CNT_CHARBASE_SHIFT) | GX_BG_EXTMODE_256x16PLTT | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG3Control256x16Pltt(GXBGScrSize256x16Pltt screenSize, GXBGAreaOver areaOver, GXBGScrBase screenBase, GXBGCharBase charBase)
+{
+ reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & (REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | (charBase << REG_G2S_DB_BG3CNT_CHARBASE_SHIFT) | GX_BG_EXTMODE_256x16PLTT | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_SetBG3Control256Bmp(GXBGScrSize256Bmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase)
+{
+ reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & (REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_256BITMAP | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG3Control256Bmp(GXBGScrSize256Bmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase)
+{
+ reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & (REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_256BITMAP | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_SetBG3ControlDCBmp(GXBGScrSizeDcBmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase)
+{
+ reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & (REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_DCBITMAP | (screenBase << REG_G2_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG3ControlDCBmp(GXBGScrSizeDcBmp screenSize, GXBGAreaOver areaOver, GXBGBmpScrBase screenBase)
+{
+ reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & (REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | GX_BG_EXTMODE_DCBITMAP | (screenBase << REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_SetBG3ControlLargeBmp(GXBGScrSizeLargeBmp screenSize, GXBGAreaOver areaOver)
+{
+ reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & (REG_G2_BG3CNT_PRIORITY_MASK | REG_G2_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2_BG3CNT_SCREENSIZE_SHIFT) | (areaOver << REG_G2_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2S_SetBG3ControlLargeBmp(GXBGScrSizeLargeBmp screenSize, GXBGAreaOver areaOver)
+{
+ reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & (REG_G2S_DB_BG3CNT_PRIORITY_MASK | REG_G2S_DB_BG3CNT_MOSAIC_MASK)) | (screenSize << REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT) | (areaOver << REG_G2S_DB_BG3CNT_AREAOVER_SHIFT));
+}
+
+static inline void G2_BG0Mosaic(BOOL enable)
+{
+ if (enable)
+ {
+ reg_G2_BG0CNT |= REG_G2_BG0CNT_MOSAIC_MASK;
+ }
+ else
+ {
+ reg_G2_BG0CNT &= ~REG_G2_BG0CNT_MOSAIC_MASK;
+ }
+}
+
+static inline void G2S_BG0Mosaic(BOOL enable)
+{
+ if (enable)
+ {
+ reg_G2S_DB_BG0CNT |= REG_G2S_DB_BG0CNT_MOSAIC_MASK;
+ }
+ else
+ {
+ reg_G2S_DB_BG0CNT &= ~REG_G2S_DB_BG0CNT_MOSAIC_MASK;
+ }
+}
+
+static inline void G2_BG1Mosaic(BOOL enable)
+{
+ if (enable)
+ {
+ reg_G2_BG1CNT |= REG_G2_BG1CNT_MOSAIC_MASK;
+ }
+ else
+ {
+ reg_G2_BG1CNT &= ~REG_G2_BG1CNT_MOSAIC_MASK;
+ }
+}
+
+static inline void G2S_BG1Mosaic(BOOL enable)
+{
+ if (enable)
+ {
+ reg_G2S_DB_BG1CNT |= REG_G2S_DB_BG1CNT_MOSAIC_MASK;
+ }
+ else
+ {
+ reg_G2S_DB_BG1CNT &= ~REG_G2S_DB_BG1CNT_MOSAIC_MASK;
+ }
+}
+
+static inline void G2_BG2Mosaic(BOOL enable)
+{
+ if (enable)
+ {
+ reg_G2_BG2CNT |= REG_G2_BG2CNT_MOSAIC_MASK;
+ }
+ else
+ {
+ reg_G2_BG2CNT &= ~REG_G2_BG2CNT_MOSAIC_MASK;
+ }
+}
+
+static inline void G2S_BG2Mosaic(BOOL enable)
+{
+ if (enable)
+ {
+ reg_G2S_DB_BG2CNT |= REG_G2S_DB_BG2CNT_MOSAIC_MASK;
+ }
+ else
+ {
+ reg_G2S_DB_BG2CNT &= ~REG_G2S_DB_BG2CNT_MOSAIC_MASK;
+ }
+}
+
+static inline void G2_BG3Mosaic(BOOL enable)
+{
+ if (enable)
+ {
+ reg_G2_BG3CNT |= REG_G2_BG3CNT_MOSAIC_MASK;
+ }
+ else
+ {
+ reg_G2_BG3CNT &= ~REG_G2_BG3CNT_MOSAIC_MASK;
+ }
+}
+
+static inline void G2S_BG3Mosaic(BOOL enable)
+{
+ if (enable)
+ {
+ reg_G2S_DB_BG3CNT |= REG_G2S_DB_BG3CNT_MOSAIC_MASK;
+ }
+ else
+ {
+ reg_G2S_DB_BG3CNT &= ~REG_G2S_DB_BG3CNT_MOSAIC_MASK;
+ }
+}
+
+static inline void G2_SetBG0Priority(int priority)
+{
+ reg_G2_BG0CNT = (u16)((reg_G2_BG0CNT & ~REG_G2_BG0CNT_PRIORITY_MASK) | (priority << REG_G2_BG0CNT_PRIORITY_SHIFT));
+}
+
+static inline void G2S_SetBG0Priority(int priority)
+{
+ reg_G2S_DB_BG0CNT = (u16)((reg_G2S_DB_BG0CNT & ~REG_G2S_DB_BG0CNT_PRIORITY_MASK) | (priority << REG_G2S_DB_BG0CNT_PRIORITY_SHIFT));
+}
+
+static inline void G2_SetBG1Priority(int priority)
+{
+ reg_G2_BG1CNT = (u16)((reg_G2_BG1CNT & ~REG_G2_BG1CNT_PRIORITY_MASK) | (priority << REG_G2_BG1CNT_PRIORITY_SHIFT));
+}
+
+static inline void G2S_SetBG1Priority(int priority)
+{
+ reg_G2S_DB_BG1CNT = (u16)((reg_G2S_DB_BG1CNT & ~REG_G2S_DB_BG1CNT_PRIORITY_MASK) | (priority << REG_G2S_DB_BG1CNT_PRIORITY_SHIFT));
+}
+
+static inline void G2_SetBG2Priority(int priority)
+{
+ reg_G2_BG2CNT = (u16)((reg_G2_BG2CNT & ~REG_G2_BG2CNT_PRIORITY_MASK) | (priority << REG_G2_BG2CNT_PRIORITY_SHIFT));
+}
+
+static inline void G2S_SetBG2Priority(int priority)
+{
+ reg_G2S_DB_BG2CNT = (u16)((reg_G2S_DB_BG2CNT & ~REG_G2S_DB_BG2CNT_PRIORITY_MASK) | (priority << REG_G2S_DB_BG2CNT_PRIORITY_SHIFT));
+}
+
+static inline void G2_SetBG3Priority(int priority)
+{
+ reg_G2_BG3CNT = (u16)((reg_G2_BG3CNT & ~REG_G2_BG3CNT_PRIORITY_MASK) | (priority << REG_G2_BG3CNT_PRIORITY_SHIFT));
+}
+
+static inline void G2S_SetBG3Priority(int priority)
+{
+ reg_G2S_DB_BG3CNT = (u16)((reg_G2S_DB_BG3CNT & ~REG_G2S_DB_BG3CNT_PRIORITY_MASK) | (priority << REG_G2S_DB_BG3CNT_PRIORITY_SHIFT));
+}
+
+static inline GXBg01Control G2_GetBG0Control(void)
+{
+ return *(volatile GXBg01Control *)&reg_G2_BG0CNT;
+}
+
+static inline GXBg01Control G2S_GetBG0Control(void)
+{
+ return *(volatile GXBg01Control *)&reg_G2S_DB_BG0CNT;
+}
+
+static inline GXBg01Control G2_GetBG1Control(void)
+{
+ return *(volatile GXBg01Control *)&reg_G2_BG1CNT;
+}
+
+static inline GXBg01Control G2S_GetBG1Control(void)
+{
+ return *(volatile GXBg01Control *)&reg_G2S_DB_BG1CNT;
+}
+
+static inline GXBg23ControlText G2_GetBG2ControlText(void)
+{
+ return *(volatile GXBg23ControlText *)&reg_G2_BG2CNT;
+}
+
+static inline GXBg23ControlText G2S_GetBG2ControlText(void)
+{
+ return *(volatile GXBg23ControlText *)&reg_G2S_DB_BG2CNT;
+}
+
+static inline GXBg23ControlAffine G2_GetBG2ControlAffine(void)
+{
+ return *(volatile GXBg23ControlAffine *)&reg_G2_BG2CNT;
+}
+
+static inline GXBg23ControlAffine G2S_GetBG2ControlAffine(void)
+{
+ return *(volatile GXBg23ControlAffine *)&reg_G2S_DB_BG2CNT;
+}
+
+static inline GXBg23Control256x16Pltt G2_GetBG2Control256x16Pltt(void)
+{
+ return *(volatile GXBg23Control256x16Pltt *)&reg_G2_BG2CNT;
+}
+
+static inline GXBg23Control256x16Pltt G2S_GetBG2Control256x16Pltt(void)
+{
+ return *(volatile GXBg23Control256x16Pltt *)&reg_G2S_DB_BG2CNT;
+}
+
+static inline GXBg23Control256Bmp G2_GetBG2Control256Bmp(void)
+{
+ return *(volatile GXBg23Control256Bmp *)&reg_G2_BG2CNT;
+}
+
+static inline GXBg23Control256Bmp G2S_GetBG2Control256Bmp(void)
+{
+ return *(volatile GXBg23Control256Bmp *)&reg_G2S_DB_BG2CNT;
+}
+
+static inline GXBg23ControlDCBmp G2_GetBG2ControlDCBmp(void)
+{
+ return *(volatile GXBg23ControlDCBmp *)&reg_G2_BG2CNT;
+}
+
+static inline GXBg23ControlDCBmp G2S_GetBG2ControlDCBmp(void)
+{
+ return *(volatile GXBg23ControlDCBmp *)&reg_G2S_DB_BG2CNT;
+}
+
+static inline GXBg2ControlLargeBmp G2_GetBG2ControlLargeBmp(void)
+{
+ return *(volatile GXBg2ControlLargeBmp *)&reg_G2_BG2CNT;
+}
+
+static inline GXBg2ControlLargeBmp G2S_GetBG2ControlLargeBmp(void)
+{
+ return *(volatile GXBg2ControlLargeBmp *)&reg_G2S_DB_BG2CNT;
+}
+
+static inline GXBg23ControlText G2_GetBG3ControlText(void)
+{
+ return *(volatile GXBg23ControlText *)&reg_G2_BG3CNT;
+}
+
+static inline GXBg23ControlText G2S_GetBG3ControlText(void)
+{
+ return *(volatile GXBg23ControlText *)&reg_G2S_DB_BG3CNT;
+}
+
+static inline GXBg23ControlAffine G2_GetBG3ControlAffine(void)
+{
+ return *(volatile GXBg23ControlAffine *)&reg_G2_BG3CNT;
+}
+
+static inline GXBg23ControlAffine G2S_GetBG3ControlAffine(void)
+{
+ return *(volatile GXBg23ControlAffine *)&reg_G2S_DB_BG3CNT;
+}
+
+static inline GXBg23Control256x16Pltt G2_GetBG3Control256x16Pltt(void)
+{
+ return *(volatile GXBg23Control256x16Pltt *)&reg_G2_BG3CNT;
+}
+
+static inline GXBg23Control256x16Pltt G2S_GetBG3Control256x16Pltt(void)
+{
+ return *(volatile GXBg23Control256x16Pltt *)&reg_G2S_DB_BG3CNT;
+}
+
+static inline GXBg23Control256Bmp G2_GetBG3Control256Bmp(void)
+{
+ return *(volatile GXBg23Control256Bmp *)&reg_G2_BG3CNT;
+}
+
+static inline GXBg23Control256Bmp G2S_GetBG3Control256Bmp(void)
+{
+ return *(volatile GXBg23Control256Bmp *)&reg_G2S_DB_BG3CNT;
+}
+
+static inline GXBg23ControlDCBmp G2_GetBG3ControlDCBmp(void)
+{
+ return *(volatile GXBg23ControlDCBmp *)&reg_G2_BG3CNT;
+}
+
+static inline GXBg23ControlDCBmp G2S_GetBG3ControlDCBmp(void)
+{
+ return *(volatile GXBg23ControlDCBmp *)&reg_G2S_DB_BG3CNT;
+}
+
#endif //GUARD_GX_BGCNT_H
diff --git a/arm9/lib/include/GX_g2.h b/arm9/lib/include/GX_g2.h
index 372be12b..97fa0e10 100644
--- a/arm9/lib/include/GX_g2.h
+++ b/arm9/lib/include/GX_g2.h
@@ -4,7 +4,7 @@
#include "fx.h"
#include "registers.h"
-void G2x_SetBGyAffine_(u32 *ptr, struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d);
+void G2x_SetBGyAffine_(u32 ptr, const struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d);
void G2x_SetBlendAlpha_(u32 *ptr, fx32 a, fx32 b, fx32 c, fx32 d);
void G2x_SetBlendBrightness_(u16 *ptr, fx32 a, fx32 brightness);
void G2x_SetBlendBrightnessExt_(u16 *ptr, fx32 a, fx32 b, fx32 c, fx32 d, fx32 brightness);
@@ -43,6 +43,84 @@ static inline void G2_SetWndOutsidePlane(int wnd, BOOL effect)
reg_G2_WINOUT = (u16)tmp;
}
+static inline void G2_SetBG0Offset(int hOffset, int vOffset)
+{
+ reg_G2_BG0OFS = (u32)(((hOffset << REG_G2_BG0OFS_HOFFSET_SHIFT) & REG_G2_BG0OFS_HOFFSET_MASK) |
+ ((vOffset << REG_G2_BG0OFS_VOFFSET_SHIFT) & REG_G2_BG0OFS_VOFFSET_MASK));
+}
+
+static inline void G2_SetBG1Offset(int hOffset, int vOffset)
+{
+ reg_G2_BG1OFS = (u32)(((hOffset << REG_G2_BG1OFS_HOFFSET_SHIFT) & REG_G2_BG1OFS_HOFFSET_MASK) |
+ ((vOffset << REG_G2_BG1OFS_VOFFSET_SHIFT) & REG_G2_BG1OFS_VOFFSET_MASK));
+}
+
+static inline void G2_SetBG2Offset(int hOffset, int vOffset)
+{
+ reg_G2_BG2OFS = (u32)(((hOffset << REG_G2_BG2OFS_HOFFSET_SHIFT) & REG_G2_BG2OFS_HOFFSET_MASK) |
+ ((vOffset << REG_G2_BG2OFS_VOFFSET_SHIFT) & REG_G2_BG2OFS_VOFFSET_MASK));
+}
+
+static inline void G2_SetBG3Offset(int hOffset, int vOffset)
+{
+ reg_G2_BG3OFS = (u32)(((hOffset << REG_G2_BG3OFS_HOFFSET_SHIFT) & REG_G2_BG3OFS_HOFFSET_MASK) |
+ ((vOffset << REG_G2_BG3OFS_VOFFSET_SHIFT) & REG_G2_BG3OFS_VOFFSET_MASK));
+}
+
+static inline void G2S_SetBG0Offset(int hOffset, int vOffset)
+{
+ reg_G2S_DB_BG0OFS = (u32)(((hOffset << REG_G2S_DB_BG0OFS_HOFFSET_SHIFT) & REG_G2S_DB_BG0OFS_HOFFSET_MASK) |
+ ((vOffset << REG_G2S_DB_BG0OFS_VOFFSET_SHIFT) & REG_G2S_DB_BG0OFS_VOFFSET_MASK));
+}
+
+static inline void G2S_SetBG1Offset(int hOffset, int vOffset)
+{
+ reg_G2S_DB_BG1OFS = (u32)(((hOffset << REG_G2S_DB_BG1OFS_HOFFSET_SHIFT) & REG_G2S_DB_BG1OFS_HOFFSET_MASK) |
+ ((vOffset << REG_G2S_DB_BG1OFS_VOFFSET_SHIFT) & REG_G2S_DB_BG1OFS_VOFFSET_MASK));
+}
+
+static inline void G2S_SetBG2Offset(int hOffset, int vOffset)
+{
+ reg_G2S_DB_BG2OFS = (u32)(((hOffset << REG_G2S_DB_BG2OFS_HOFFSET_SHIFT) & REG_G2S_DB_BG2OFS_HOFFSET_MASK) |
+ ((vOffset << REG_G2S_DB_BG2OFS_VOFFSET_SHIFT) & REG_G2S_DB_BG2OFS_VOFFSET_MASK));
+}
+
+static inline void G2S_SetBG3Offset(int hOffset, int vOffset)
+{
+ reg_G2S_DB_BG3OFS = (u32)(((hOffset << REG_G2S_DB_BG3OFS_HOFFSET_SHIFT) & REG_G2S_DB_BG3OFS_HOFFSET_MASK) |
+ ((vOffset << REG_G2S_DB_BG3OFS_VOFFSET_SHIFT) & REG_G2S_DB_BG3OFS_VOFFSET_MASK));
+}
+
+static inline void G2_SetBG2Affine(const struct Mtx22 *mtx, int centerX, int centerY, int x1, int y1)
+{
+ G2x_SetBGyAffine_((u32)&reg_G2_BG2PA, mtx, centerX, centerY, x1, y1);
+}
+
+static inline void G2_SetBG3Affine(const struct Mtx22 *mtx, int centerX, int centerY, int x1, int y1)
+{
+ G2x_SetBGyAffine_((u32)&reg_G2_BG3PA, mtx, centerX, centerY, x1, y1);
+}
+
+static inline void G2S_SetBG2Affine(const struct Mtx22 *mtx, int centerX, int centerY, int x1, int y1)
+{
+ G2x_SetBGyAffine_((u32)&reg_G2S_DB_BG2PA, mtx, centerX, centerY, x1, y1);
+}
+
+static inline void G2S_SetBG3Affine(const struct Mtx22 *mtx, int centerX, int centerY, int x1, int y1)
+{
+ G2x_SetBGyAffine_((u32)&reg_G2S_DB_BG3PA, mtx, centerX, centerY, x1, y1);
+}
+
+static inline void G2_BlendNone(void)
+{
+ reg_G2_BLDCNT = 0;
+}
+
+static inline void G2S_BlendNone(void)
+{
+ reg_G2S_DB_BLDCNT = 0;
+}
+
//The g2 and g2_oam headers contain a lot of inline functions and enums that may want to be ported over at some point
#endif //GUARD_GX_G2_H
diff --git a/arm9/lib/include/GX_vramcnt.h b/arm9/lib/include/GX_vramcnt.h
index 6fe677bc..3b82d28c 100644
--- a/arm9/lib/include/GX_vramcnt.h
+++ b/arm9/lib/include/GX_vramcnt.h
@@ -16,7 +16,7 @@ void GX_SetBankForSubBG(s32 subbg);
void GX_SetBankForSubOBJ(s32 subobj);
void GX_SetBankForSubBGExtPltt(s32 subbgextpltt);
void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt);
-u32 FUN_020C6130(u16 *ptr);
+u32 resetBankForX_(u16 *ptr);
u32 GX_ResetBankForBG();
u32 GX_ResetBankForOBJ();
u32 GX_ResetBankForBGExtPltt();
@@ -25,31 +25,31 @@ u32 GX_ResetBankForTex();
u32 GX_ResetBankForTexPltt();
u32 GX_ResetBankForClearImage();
u32 GX_ResetBankForSubBG();
-u32 FUN_020C605C();
-u32 FUN_020C6034();
u32 GX_ResetBankForSubOBJ();
-u32 FUN_020C5F28(u16 *ptr);
-u32 disableBankForX_();
-u32 GX_DisableBankForOBJExtPltt_2();
+u32 GX_ResetBankForSubBGExtPltt();
+u32 GX_ResetBankForSubOBJExtPltt();
+u32 disableBankForX_(u16 *ptr);
+u32 GX_DisableBankForBG();
+u32 GX_DisableBankForOBJ();
u32 GX_DisableBankForBGExtPltt();
u32 GX_DisableBankForOBJExtPltt();
-u32 GX_DisableBankForTexPltt_2();
+u32 GX_DisableBankForTex();
u32 GX_DisableBankForTexPltt();
u32 GX_DisableBankForClearImage();
u32 GX_DisableBankForARM7();
u32 GX_DisableBankForLCDC();
+u32 GX_DisableBankForSubBG();
+u32 GX_DisableBankForSubOBJ();
u32 GX_DisableBankForSubBGExtPltt();
-u32 GX_DisableBankForSubOBJExtPltt_2();
-u32 FUN_020C5E04();
u32 GX_DisableBankForSubOBJExtPltt();
-u32 GX_GetBankForBGExtPltt_2();
+u32 GX_GetBankForBG();
u32 GX_GetBankForOBJ();
u32 GX_GetBankForBGExtPltt();
u32 GX_GetBankForOBJExtPltt();
-u32 FUN_020C5D8C();
+u32 GX_GetBankForTex();
u32 GX_GetBankForTexPltt();
u32 GX_GetBankForLCDC();
-u32 GX_GetBankForSubBGExtPltt_2();
+u32 GX_GetBankForSubBG();
u32 GX_GetBankForSubOBJ();
u32 GX_GetBankForSubBGExtPltt();
u32 GX_GetBankForSubOBJExtPltt();
diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h
index d063b817..130ad2de 100644
--- a/arm9/lib/include/OS_interrupt.h
+++ b/arm9/lib/include/OS_interrupt.h
@@ -12,6 +12,8 @@
#define OS_IE_V_COUNT (1UL << REG_OS_IE_VE_SHIFT)
#define OS_IE_TIMER0 (1UL << REG_OS_IE_T0_SHIFT)
#define OS_IE_TIMER1 (1UL << REG_OS_IE_T1_SHIFT)
+#define OS_IE_TIMER2 (1UL << REG_OS_IE_T2_SHIFT)
+#define OS_IE_TIMER3 (1UL << REG_OS_IE_T3_SHIFT)
#define OS_IE_SPFIFO_RECV (1UL << REG_OS_IE_IFN_SHIFT)
#define OS_IE_CARD_DATA (1UL << REG_OS_IE_MC_SHIFT)
diff --git a/arm9/lib/include/fx.h b/arm9/lib/include/fx.h
index 4a844872..38506194 100644
--- a/arm9/lib/include/fx.h
+++ b/arm9/lib/include/fx.h
@@ -65,6 +65,9 @@ typedef s64 fx64c;
#define FX16_CONST(x) FX_F32_TO_FX16(x)
#define FX32_CONST(x) FX_F32_TO_FX32(x)
+#define FX16_ONE ((fx16)0x1000)
+#define FX32_ONE ((fx32)0x00001000L)
+
struct Vecx32
{
fx32 x;
diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h
index acd23b39..cce14e57 100644
--- a/arm9/lib/include/gx.h
+++ b/arm9/lib/include/gx.h
@@ -186,4 +186,44 @@ static inline void GX_SetMasterBrightness(int brightness)
GXx_SetMasterBrightness_(&reg_GX_MASTER_BRIGHT, brightness);
}
+static inline void GX_SetVisiblePlane(int plane)
+{
+ reg_GX_DISPCNT = (u32)((reg_GX_DISPCNT & ~REG_GX_DISPCNT_DISPLAY_MASK) | (plane << REG_GX_DISPCNT_DISPLAY_SHIFT));
+}
+
+static inline void GXS_SetVisiblePlane(int plane)
+{
+ reg_GXS_DB_DISPCNT = (u32)((reg_GXS_DB_DISPCNT & ~REG_GXS_DB_DISPCNT_DISPLAY_MASK) | (plane << REG_GXS_DB_DISPCNT_DISPLAY_SHIFT));
+}
+
+static inline void GXS_DispOn(void)
+{
+ reg_GXS_DB_DISPCNT |= REG_GXS_DB_DISPCNT_MODE_MASK;
+}
+
+static inline void GX_SetDispSelect(GXDispSelect sel)
+{
+ reg_GX_POWCNT = (u16)((reg_GX_POWCNT & ~REG_GX_POWCNT_DSEL_MASK) | (sel << REG_GX_POWCNT_DSEL_SHIFT));
+}
+
+static inline void GX_SetBGScrOffset(GXBGScrOffset offset)
+{
+ reg_GX_DISPCNT = (u32)((reg_GX_DISPCNT & ~REG_GX_DISPCNT_BGSCREENOFFSET_MASK) | (offset << REG_GX_DISPCNT_BGSCREENOFFSET_SHIFT));
+}
+
+static inline void GX_SetBGCharOffset(GXBGCharOffset offset)
+{
+ reg_GX_DISPCNT = (u32)((reg_GX_DISPCNT & ~REG_GX_DISPCNT_BGCHAROFFSET_MASK) | (offset << REG_GX_DISPCNT_BGCHAROFFSET_SHIFT));
+}
+
+static inline void GX_SetVisibleWnd(int window)
+{
+ reg_GX_DISPCNT = (u32)((reg_GX_DISPCNT & ~(REG_GX_DISPCNT_W0_MASK | REG_GX_DISPCNT_W1_MASK | REG_GX_DISPCNT_OW_MASK)) | (window << REG_GX_DISPCNT_W0_SHIFT));
+}
+
+static inline void GXS_SetVisibleWnd(int window)
+{
+ reg_GXS_DB_DISPCNT = (u32)((reg_GXS_DB_DISPCNT & ~(REG_GXS_DB_DISPCNT_W0_MASK | REG_GXS_DB_DISPCNT_W1_MASK | REG_GXS_DB_DISPCNT_OW_MASK)) | (window << REG_GXS_DB_DISPCNT_W0_SHIFT));
+}
+
#endif //GUARD_GX_H
diff --git a/arm9/lib/include/registers.h b/arm9/lib/include/registers.h
index 73ae7ccf..b4fd8ce7 100644
--- a/arm9/lib/include/registers.h
+++ b/arm9/lib/include/registers.h
@@ -350,12 +350,11 @@
#define REG_OS_IE_VE_SHIFT 2
#define REG_OS_IE_T0_SHIFT 3
#define REG_OS_IE_T1_SHIFT 4
+#define REG_OS_IE_T2_SHIFT 5
+#define REG_OS_IE_T3_SHIFT 6
#define REG_OS_IE_IFN_SHIFT 18
#define REG_OS_IE_MC_SHIFT 19
-#define REG_OS_TM0CNT_H_I_MASK 0x0040
-#define REG_OS_TM0CNT_H_E_MASK 0x0080
-
#define REG_PAD_KEYINPUT_L_SHIFT 9
#define REG_PAD_KEYINPUT_L_SIZE 1
#define REG_PAD_KEYINPUT_L_MASK 0x0200
@@ -697,4 +696,374 @@
#define REG_GX_DISPSTAT_VBLK_SIZE 1
#define REG_GX_DISPSTAT_VBLK_MASK 0x0001
+// G2_BG0CNT
+#define REG_G2_BG0CNT_SCREENSIZE_SHIFT 14
+#define REG_G2_BG0CNT_SCREENSIZE_SIZE 2
+#define REG_G2_BG0CNT_SCREENSIZE_MASK 0xc000
+
+#define REG_G2_BG0CNT_BGPLTTSLOT_SHIFT 13
+#define REG_G2_BG0CNT_BGPLTTSLOT_SIZE 1
+#define REG_G2_BG0CNT_BGPLTTSLOT_MASK 0x2000
+
+#define REG_G2_BG0CNT_SCREENBASE_SHIFT 8
+#define REG_G2_BG0CNT_SCREENBASE_SIZE 5
+#define REG_G2_BG0CNT_SCREENBASE_MASK 0x1f00
+
+#define REG_G2_BG0CNT_COLORMODE_SHIFT 7
+#define REG_G2_BG0CNT_COLORMODE_SIZE 1
+#define REG_G2_BG0CNT_COLORMODE_MASK 0x0080
+
+#define REG_G2_BG0CNT_MOSAIC_SHIFT 6
+#define REG_G2_BG0CNT_MOSAIC_SIZE 1
+#define REG_G2_BG0CNT_MOSAIC_MASK 0x0040
+
+#define REG_G2_BG0CNT_CHARBASE_SHIFT 2
+#define REG_G2_BG0CNT_CHARBASE_SIZE 4
+#define REG_G2_BG0CNT_CHARBASE_MASK 0x003c
+
+#define REG_G2_BG0CNT_PRIORITY_SHIFT 0
+#define REG_G2_BG0CNT_PRIORITY_SIZE 2
+#define REG_G2_BG0CNT_PRIORITY_MASK 0x0003
+
+// G2_BG1CNT
+#define REG_G2_BG1CNT_SCREENSIZE_SHIFT 14
+#define REG_G2_BG1CNT_SCREENSIZE_SIZE 2
+#define REG_G2_BG1CNT_SCREENSIZE_MASK 0xc000
+
+#define REG_G2_BG1CNT_BGPLTTSLOT_SHIFT 13
+#define REG_G2_BG1CNT_BGPLTTSLOT_SIZE 1
+#define REG_G2_BG1CNT_BGPLTTSLOT_MASK 0x2000
+
+#define REG_G2_BG1CNT_SCREENBASE_SHIFT 8
+#define REG_G2_BG1CNT_SCREENBASE_SIZE 5
+#define REG_G2_BG1CNT_SCREENBASE_MASK 0x1f00
+
+#define REG_G2_BG1CNT_COLORMODE_SHIFT 7
+#define REG_G2_BG1CNT_COLORMODE_SIZE 1
+#define REG_G2_BG1CNT_COLORMODE_MASK 0x0080
+
+#define REG_G2_BG1CNT_MOSAIC_SHIFT 6
+#define REG_G2_BG1CNT_MOSAIC_SIZE 1
+#define REG_G2_BG1CNT_MOSAIC_MASK 0x0040
+
+#define REG_G2_BG1CNT_CHARBASE_SHIFT 2
+#define REG_G2_BG1CNT_CHARBASE_SIZE 4
+#define REG_G2_BG1CNT_CHARBASE_MASK 0x003c
+
+#define REG_G2_BG1CNT_PRIORITY_SHIFT 0
+#define REG_G2_BG1CNT_PRIORITY_SIZE 2
+#define REG_G2_BG1CNT_PRIORITY_MASK 0x0003
+
+// G2_BG2CNT
+#define REG_G2_BG2CNT_SCREENSIZE_SHIFT 14
+#define REG_G2_BG2CNT_SCREENSIZE_SIZE 2
+#define REG_G2_BG2CNT_SCREENSIZE_MASK 0xc000
+
+#define REG_G2_BG2CNT_AREAOVER_SHIFT 13
+#define REG_G2_BG2CNT_AREAOVER_SIZE 1
+#define REG_G2_BG2CNT_AREAOVER_MASK 0x2000
+
+#define REG_G2_BG2CNT_SCREENBASE_SHIFT 8
+#define REG_G2_BG2CNT_SCREENBASE_SIZE 5
+#define REG_G2_BG2CNT_SCREENBASE_MASK 0x1f00
+
+#define REG_G2_BG2CNT_COLORMODE_SHIFT 7
+#define REG_G2_BG2CNT_COLORMODE_SIZE 1
+#define REG_G2_BG2CNT_COLORMODE_MASK 0x0080
+
+#define REG_G2_BG2CNT_MOSAIC_SHIFT 6
+#define REG_G2_BG2CNT_MOSAIC_SIZE 1
+#define REG_G2_BG2CNT_MOSAIC_MASK 0x0040
+
+#define REG_G2_BG2CNT_CHARBASE_SHIFT 2
+#define REG_G2_BG2CNT_CHARBASE_SIZE 4
+#define REG_G2_BG2CNT_CHARBASE_MASK 0x003c
+
+#define REG_G2_BG2CNT_PRIORITY_SHIFT 0
+#define REG_G2_BG2CNT_PRIORITY_SIZE 2
+#define REG_G2_BG2CNT_PRIORITY_MASK 0x0003
+
+// G2_BG3CNT
+#define REG_G2_BG3CNT_SCREENSIZE_SHIFT 14
+#define REG_G2_BG3CNT_SCREENSIZE_SIZE 2
+#define REG_G2_BG3CNT_SCREENSIZE_MASK 0xc000
+
+#define REG_G2_BG3CNT_AREAOVER_SHIFT 13
+#define REG_G2_BG3CNT_AREAOVER_SIZE 1
+#define REG_G2_BG3CNT_AREAOVER_MASK 0x2000
+
+#define REG_G2_BG3CNT_SCREENBASE_SHIFT 8
+#define REG_G2_BG3CNT_SCREENBASE_SIZE 5
+#define REG_G2_BG3CNT_SCREENBASE_MASK 0x1f00
+
+#define REG_G2_BG3CNT_COLORMODE_SHIFT 7
+#define REG_G2_BG3CNT_COLORMODE_SIZE 1
+#define REG_G2_BG3CNT_COLORMODE_MASK 0x0080
+
+#define REG_G2_BG3CNT_MOSAIC_SHIFT 6
+#define REG_G2_BG3CNT_MOSAIC_SIZE 1
+#define REG_G2_BG3CNT_MOSAIC_MASK 0x0040
+
+#define REG_G2_BG3CNT_CHARBASE_SHIFT 2
+#define REG_G2_BG3CNT_CHARBASE_SIZE 4
+#define REG_G2_BG3CNT_CHARBASE_MASK 0x003c
+
+#define REG_G2_BG3CNT_PRIORITY_SHIFT 0
+#define REG_G2_BG3CNT_PRIORITY_SIZE 2
+#define REG_G2_BG3CNT_PRIORITY_MASK 0x0003
+
+// G2S_DB_BG0CNT
+#define REG_G2S_DB_BG0CNT_SCREENSIZE_SHIFT 14
+#define REG_G2S_DB_BG0CNT_SCREENSIZE_SIZE 2
+#define REG_G2S_DB_BG0CNT_SCREENSIZE_MASK 0xc000
+
+#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_SHIFT 13
+#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_SIZE 1
+#define REG_G2S_DB_BG0CNT_BGPLTTSLOT_MASK 0x2000
+
+#define REG_G2S_DB_BG0CNT_SCREENBASE_SHIFT 8
+#define REG_G2S_DB_BG0CNT_SCREENBASE_SIZE 5
+#define REG_G2S_DB_BG0CNT_SCREENBASE_MASK 0x1f00
+
+#define REG_G2S_DB_BG0CNT_COLORMODE_SHIFT 7
+#define REG_G2S_DB_BG0CNT_COLORMODE_SIZE 1
+#define REG_G2S_DB_BG0CNT_COLORMODE_MASK 0x0080
+
+#define REG_G2S_DB_BG0CNT_MOSAIC_SHIFT 6
+#define REG_G2S_DB_BG0CNT_MOSAIC_SIZE 1
+#define REG_G2S_DB_BG0CNT_MOSAIC_MASK 0x0040
+
+#define REG_G2S_DB_BG0CNT_CHARBASE_SHIFT 2
+#define REG_G2S_DB_BG0CNT_CHARBASE_SIZE 4
+#define REG_G2S_DB_BG0CNT_CHARBASE_MASK 0x003c
+
+#define REG_G2S_DB_BG0CNT_PRIORITY_SHIFT 0
+#define REG_G2S_DB_BG0CNT_PRIORITY_SIZE 2
+#define REG_G2S_DB_BG0CNT_PRIORITY_MASK 0x0003
+
+// G2S_DB_BG1CNT
+#define REG_G2S_DB_BG1CNT_SCREENSIZE_SHIFT 14
+#define REG_G2S_DB_BG1CNT_SCREENSIZE_SIZE 2
+#define REG_G2S_DB_BG1CNT_SCREENSIZE_MASK 0xc000
+
+#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_SHIFT 13
+#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_SIZE 1
+#define REG_G2S_DB_BG1CNT_BGPLTTSLOT_MASK 0x2000
+
+#define REG_G2S_DB_BG1CNT_SCREENBASE_SHIFT 8
+#define REG_G2S_DB_BG1CNT_SCREENBASE_SIZE 5
+#define REG_G2S_DB_BG1CNT_SCREENBASE_MASK 0x1f00
+
+#define REG_G2S_DB_BG1CNT_COLORMODE_SHIFT 7
+#define REG_G2S_DB_BG1CNT_COLORMODE_SIZE 1
+#define REG_G2S_DB_BG1CNT_COLORMODE_MASK 0x0080
+
+#define REG_G2S_DB_BG1CNT_MOSAIC_SHIFT 6
+#define REG_G2S_DB_BG1CNT_MOSAIC_SIZE 1
+#define REG_G2S_DB_BG1CNT_MOSAIC_MASK 0x0040
+
+#define REG_G2S_DB_BG1CNT_CHARBASE_SHIFT 2
+#define REG_G2S_DB_BG1CNT_CHARBASE_SIZE 4
+#define REG_G2S_DB_BG1CNT_CHARBASE_MASK 0x003c
+
+#define REG_G2S_DB_BG1CNT_PRIORITY_SHIFT 0
+#define REG_G2S_DB_BG1CNT_PRIORITY_SIZE 2
+#define REG_G2S_DB_BG1CNT_PRIORITY_MASK 0x0003
+
+// G2S_DB_BG2CNT
+#define REG_G2S_DB_BG2CNT_SCREENSIZE_SHIFT 14
+#define REG_G2S_DB_BG2CNT_SCREENSIZE_SIZE 2
+#define REG_G2S_DB_BG2CNT_SCREENSIZE_MASK 0xc000
+
+#define REG_G2S_DB_BG2CNT_AREAOVER_SHIFT 13
+#define REG_G2S_DB_BG2CNT_AREAOVER_SIZE 1
+#define REG_G2S_DB_BG2CNT_AREAOVER_MASK 0x2000
+
+#define REG_G2S_DB_BG2CNT_SCREENBASE_SHIFT 8
+#define REG_G2S_DB_BG2CNT_SCREENBASE_SIZE 5
+#define REG_G2S_DB_BG2CNT_SCREENBASE_MASK 0x1f00
+
+#define REG_G2S_DB_BG2CNT_COLORMODE_SHIFT 7
+#define REG_G2S_DB_BG2CNT_COLORMODE_SIZE 1
+#define REG_G2S_DB_BG2CNT_COLORMODE_MASK 0x0080
+
+#define REG_G2S_DB_BG2CNT_MOSAIC_SHIFT 6
+#define REG_G2S_DB_BG2CNT_MOSAIC_SIZE 1
+#define REG_G2S_DB_BG2CNT_MOSAIC_MASK 0x0040
+
+#define REG_G2S_DB_BG2CNT_CHARBASE_SHIFT 2
+#define REG_G2S_DB_BG2CNT_CHARBASE_SIZE 4
+#define REG_G2S_DB_BG2CNT_CHARBASE_MASK 0x003c
+
+#define REG_G2S_DB_BG2CNT_PRIORITY_SHIFT 0
+#define REG_G2S_DB_BG2CNT_PRIORITY_SIZE 2
+#define REG_G2S_DB_BG2CNT_PRIORITY_MASK 0x0003
+
+// G2S_DB_BG3CNT
+#define REG_G2S_DB_BG3CNT_SCREENSIZE_SHIFT 14
+#define REG_G2S_DB_BG3CNT_SCREENSIZE_SIZE 2
+#define REG_G2S_DB_BG3CNT_SCREENSIZE_MASK 0xc000
+
+#define REG_G2S_DB_BG3CNT_AREAOVER_SHIFT 13
+#define REG_G2S_DB_BG3CNT_AREAOVER_SIZE 1
+#define REG_G2S_DB_BG3CNT_AREAOVER_MASK 0x2000
+
+#define REG_G2S_DB_BG3CNT_SCREENBASE_SHIFT 8
+#define REG_G2S_DB_BG3CNT_SCREENBASE_SIZE 5
+#define REG_G2S_DB_BG3CNT_SCREENBASE_MASK 0x1f00
+
+#define REG_G2S_DB_BG3CNT_COLORMODE_SHIFT 7
+#define REG_G2S_DB_BG3CNT_COLORMODE_SIZE 1
+#define REG_G2S_DB_BG3CNT_COLORMODE_MASK 0x0080
+
+#define REG_G2S_DB_BG3CNT_MOSAIC_SHIFT 6
+#define REG_G2S_DB_BG3CNT_MOSAIC_SIZE 1
+#define REG_G2S_DB_BG3CNT_MOSAIC_MASK 0x0040
+
+#define REG_G2S_DB_BG3CNT_CHARBASE_SHIFT 2
+#define REG_G2S_DB_BG3CNT_CHARBASE_SIZE 4
+#define REG_G2S_DB_BG3CNT_CHARBASE_MASK 0x003c
+
+#define REG_G2S_DB_BG3CNT_PRIORITY_SHIFT 0
+#define REG_G2S_DB_BG3CNT_PRIORITY_SIZE 2
+#define REG_G2S_DB_BG3CNT_PRIORITY_MASK 0x0003
+
+// G2_BG0OFS
+#define REG_G2_BG0OFS_VOFFSET_SHIFT 16
+#define REG_G2_BG0OFS_VOFFSET_SIZE 9
+#define REG_G2_BG0OFS_VOFFSET_MASK 0x01ff0000
+
+#define REG_G2_BG0OFS_HOFFSET_SHIFT 0
+#define REG_G2_BG0OFS_HOFFSET_SIZE 9
+#define REG_G2_BG0OFS_HOFFSET_MASK 0x000001ff
+
+// G2_BG1OFS
+#define REG_G2_BG1OFS_VOFFSET_SHIFT 16
+#define REG_G2_BG1OFS_VOFFSET_SIZE 9
+#define REG_G2_BG1OFS_VOFFSET_MASK 0x01ff0000
+
+#define REG_G2_BG1OFS_HOFFSET_SHIFT 0
+#define REG_G2_BG1OFS_HOFFSET_SIZE 9
+#define REG_G2_BG1OFS_HOFFSET_MASK 0x000001ff
+
+// G2_BG2OFS
+#define REG_G2_BG2OFS_VOFFSET_SHIFT 16
+#define REG_G2_BG2OFS_VOFFSET_SIZE 9
+#define REG_G2_BG2OFS_VOFFSET_MASK 0x01ff0000
+
+#define REG_G2_BG2OFS_HOFFSET_SHIFT 0
+#define REG_G2_BG2OFS_HOFFSET_SIZE 9
+#define REG_G2_BG2OFS_HOFFSET_MASK 0x000001ff
+
+// G2_BG3OFS
+#define REG_G2_BG3OFS_VOFFSET_SHIFT 16
+#define REG_G2_BG3OFS_VOFFSET_SIZE 9
+#define REG_G2_BG3OFS_VOFFSET_MASK 0x01ff0000
+
+#define REG_G2_BG3OFS_HOFFSET_SHIFT 0
+#define REG_G2_BG3OFS_HOFFSET_SIZE 9
+#define REG_G2_BG3OFS_HOFFSET_MASK 0x000001ff
+
+// G2S_DB_BG0OFS
+#define REG_G2S_DB_BG0OFS_VOFFSET_SHIFT 16
+#define REG_G2S_DB_BG0OFS_VOFFSET_SIZE 9
+#define REG_G2S_DB_BG0OFS_VOFFSET_MASK 0x01ff0000
+
+#define REG_G2S_DB_BG0OFS_HOFFSET_SHIFT 0
+#define REG_G2S_DB_BG0OFS_HOFFSET_SIZE 9
+#define REG_G2S_DB_BG0OFS_HOFFSET_MASK 0x000001ff
+
+// G2S_DB_BG1OFS
+#define REG_G2S_DB_BG1OFS_VOFFSET_SHIFT 16
+#define REG_G2S_DB_BG1OFS_VOFFSET_SIZE 9
+#define REG_G2S_DB_BG1OFS_VOFFSET_MASK 0x01ff0000
+
+#define REG_G2S_DB_BG1OFS_HOFFSET_SHIFT 0
+#define REG_G2S_DB_BG1OFS_HOFFSET_SIZE 9
+#define REG_G2S_DB_BG1OFS_HOFFSET_MASK 0x000001ff
+
+// G2S_DB_BG2OFS
+#define REG_G2S_DB_BG2OFS_VOFFSET_SHIFT 16
+#define REG_G2S_DB_BG2OFS_VOFFSET_SIZE 9
+#define REG_G2S_DB_BG2OFS_VOFFSET_MASK 0x01ff0000
+
+#define REG_G2S_DB_BG2OFS_HOFFSET_SHIFT 0
+#define REG_G2S_DB_BG2OFS_HOFFSET_SIZE 9
+#define REG_G2S_DB_BG2OFS_HOFFSET_MASK 0x000001ff
+
+// G2S_DB_BG3OFS
+#define REG_G2S_DB_BG3OFS_VOFFSET_SHIFT 16
+#define REG_G2S_DB_BG3OFS_VOFFSET_SIZE 9
+#define REG_G2S_DB_BG3OFS_VOFFSET_MASK 0x01ff0000
+
+#define REG_G2S_DB_BG3OFS_HOFFSET_SHIFT 0
+#define REG_G2S_DB_BG3OFS_HOFFSET_SIZE 9
+#define REG_G2S_DB_BG3OFS_HOFFSET_MASK 0x000001ff
+
+// Timer control
+
+#define REG_OS_TM0CNT_L_TIMER0CNT_SHIFT 0
+#define REG_OS_TM0CNT_L_TIMER0CNT_SIZE 16
+#define REG_OS_TM0CNT_L_TIMER0CNT_MASK 0xffff
+
+#define REG_OS_TM0CNT_H_E_SHIFT 7
+#define REG_OS_TM0CNT_H_E_SIZE 1
+#define REG_OS_TM0CNT_H_E_MASK 0x0080
+
+#define REG_OS_TM0CNT_H_I_SHIFT 6
+#define REG_OS_TM0CNT_H_I_SIZE 1
+#define REG_OS_TM0CNT_H_I_MASK 0x0040
+
+#define REG_OS_TM0CNT_H_PS_SHIFT 0
+#define REG_OS_TM0CNT_H_PS_SIZE 2
+#define REG_OS_TM0CNT_H_PS_MASK 0x0003
+
+#define REG_OS_TM1CNT_L_TIMER0CNT_SHIFT 0
+#define REG_OS_TM1CNT_L_TIMER0CNT_SIZE 16
+#define REG_OS_TM1CNT_L_TIMER0CNT_MASK 0xffff
+
+#define REG_OS_TM1CNT_H_E_SHIFT 7
+#define REG_OS_TM1CNT_H_E_SIZE 1
+#define REG_OS_TM1CNT_H_E_MASK 0x0080
+
+#define REG_OS_TM1CNT_H_I_SHIFT 6
+#define REG_OS_TM1CNT_H_I_SIZE 1
+#define REG_OS_TM1CNT_H_I_MASK 0x0040
+
+#define REG_OS_TM1CNT_H_PS_SHIFT 0
+#define REG_OS_TM1CNT_H_PS_SIZE 2
+#define REG_OS_TM1CNT_H_PS_MASK 0x0003
+
+#define REG_OS_TM2CNT_L_TIMER0CNT_SHIFT 0
+#define REG_OS_TM2CNT_L_TIMER0CNT_SIZE 16
+#define REG_OS_TM2CNT_L_TIMER0CNT_MASK 0xffff
+
+#define REG_OS_TM2CNT_H_E_SHIFT 7
+#define REG_OS_TM2CNT_H_E_SIZE 1
+#define REG_OS_TM2CNT_H_E_MASK 0x0080
+
+#define REG_OS_TM2CNT_H_I_SHIFT 6
+#define REG_OS_TM2CNT_H_I_SIZE 1
+#define REG_OS_TM2CNT_H_I_MASK 0x0040
+
+#define REG_OS_TM2CNT_H_PS_SHIFT 0
+#define REG_OS_TM2CNT_H_PS_SIZE 2
+#define REG_OS_TM2CNT_H_PS_MASK 0x0003
+
+#define REG_OS_TM3CNT_L_TIMER0CNT_SHIFT 0
+#define REG_OS_TM3CNT_L_TIMER0CNT_SIZE 16
+#define REG_OS_TM3CNT_L_TIMER0CNT_MASK 0xffff
+
+#define REG_OS_TM3CNT_H_E_SHIFT 7
+#define REG_OS_TM3CNT_H_E_SIZE 1
+#define REG_OS_TM3CNT_H_E_MASK 0x0080
+
+#define REG_OS_TM3CNT_H_I_SHIFT 6
+#define REG_OS_TM3CNT_H_I_SIZE 1
+#define REG_OS_TM3CNT_H_I_MASK 0x0040
+
+#define REG_OS_TM3CNT_H_PS_SHIFT 0
+#define REG_OS_TM3CNT_H_PS_SIZE 2
+#define REG_OS_TM3CNT_H_PS_MASK 0x0003
+
#endif //POKEDIAMOND_ARM9_REGISTERS_H
diff --git a/arm9/lib/src/GX_g2.c b/arm9/lib/src/GX_g2.c
index 99ba0e26..39b8bff4 100644
--- a/arm9/lib/src/GX_g2.c
+++ b/arm9/lib/src/GX_g2.c
@@ -1,16 +1,16 @@
#include "global.h"
#include "gx.h"
-ARM_FUNC void G2x_SetBGyAffine_(u32 *ptr, struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d){
+ARM_FUNC void G2x_SetBGyAffine_(u32 ptr, const struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d){
fx32 temp0, temp1, temp2, temp3;
- ptr[0] = (u32)((u16)(fx16)(mtx->_[0] >> 4) | (u16)(fx16)(mtx->_[1] >> 4)<< 0x10);
- ptr[1] = (u32)((u16)(fx16)(mtx->_[2] >> 4) | (u16)(fx16)(mtx->_[3] >> 4)<< 0x10);
+ *((vu32 *)ptr + 0) = (u32)((u16)(fx16)(mtx->_[0] >> 4) | (u16)(fx16)(mtx->_[1] >> 4)<< 0x10);
+ *((vu32 *)ptr + 1) = (u32)((u16)(fx16)(mtx->_[2] >> 4) | (u16)(fx16)(mtx->_[3] >> 4)<< 0x10);
temp0 = c - a;
temp1 = d - b;
temp2 = mtx->_[0] * temp0 + mtx->_[1] * temp1 + (a << 0xC);
temp3 = mtx->_[2] * temp0 + mtx->_[3] * temp1 + (b << 0xC);
- ptr[2] = (u32)(temp2 >> 4);
- ptr[3] = (u32)(temp3 >> 4);
+ *((vu32 *)ptr + 2) = (u32)(temp2 >> 4);
+ *((vu32 *)ptr + 3) = (u32)(temp3 >> 4);
}
ARM_FUNC void G2x_SetBlendAlpha_(u32 *ptr, fx32 a, fx32 b, fx32 c, fx32 d){
diff --git a/arm9/lib/src/GX_load2d.c b/arm9/lib/src/GX_load2d.c
index 132de9ee..6bff54be 100644
--- a/arm9/lib/src/GX_load2d.c
+++ b/arm9/lib/src/GX_load2d.c
@@ -195,7 +195,7 @@ ARM_FUNC void GX_EndLoadOBJExtPltt(){
}
ARM_FUNC void GXS_BeginLoadBGExtPltt(){
- sSubBGExtPltt = (s32)FUN_020C6034();
+ sSubBGExtPltt = (s32)GX_ResetBankForSubBGExtPltt();
}
ARM_FUNC void GXS_LoadBGExtPltt(void *src, u32 offset, u32 size){
@@ -209,7 +209,7 @@ ARM_FUNC void GXS_EndLoadBGExtPltt(){
}
ARM_FUNC void GXS_BeginLoadOBJExtPltt(){
- sSubOBJExtPltt = (s32)GX_ResetBankForSubOBJ();
+ sSubOBJExtPltt = (s32)GX_ResetBankForSubOBJExtPltt();
}
ARM_FUNC void GXS_LoadOBJExtPltt(void *src, u32 offset, u32 size){
diff --git a/arm9/lib/src/GX_vramcnt.c b/arm9/lib/src/GX_vramcnt.c
index c9d5a1bd..abfcd77e 100644
--- a/arm9/lib/src/GX_vramcnt.c
+++ b/arm9/lib/src/GX_vramcnt.c
@@ -396,7 +396,7 @@ ARM_FUNC void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt){
GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
}
-ARM_FUNC u32 FUN_020C6130(u16 *ptr){
+ARM_FUNC u32 resetBankForX_(u16 *ptr){
u16 temp = *ptr;
*ptr = 0;
gGXState.lcdc |= temp;
@@ -405,54 +405,54 @@ ARM_FUNC u32 FUN_020C6130(u16 *ptr){
}
ARM_FUNC u32 GX_ResetBankForBG(){
- return FUN_020C6130(&gGXState.bg);
+ return resetBankForX_(&gGXState.bg);
}
ARM_FUNC u32 GX_ResetBankForOBJ(){
- return FUN_020C6130(&gGXState.obj);
+ return resetBankForX_(&gGXState.obj);
}
ARM_FUNC u32 GX_ResetBankForBGExtPltt(){
reg_GX_DISPCNT &= ~0x40000000;
- return FUN_020C6130(&gGXState.bgExtPltt);
+ return resetBankForX_(&gGXState.bgExtPltt);
}
ARM_FUNC u32 GX_ResetBankForOBJExtPltt(){
reg_GX_DISPCNT &= ~0x80000000;
- return FUN_020C6130(&gGXState.objExtPltt);
+ return resetBankForX_(&gGXState.objExtPltt);
}
ARM_FUNC u32 GX_ResetBankForTex(){
- return FUN_020C6130(&gGXState.tex);
+ return resetBankForX_(&gGXState.tex);
}
ARM_FUNC u32 GX_ResetBankForTexPltt(){
- return FUN_020C6130(&gGXState.texPltt);
+ return resetBankForX_(&gGXState.texPltt);
}
ARM_FUNC u32 GX_ResetBankForClearImage(){
- return FUN_020C6130(&gGXState.clrImg);
+ return resetBankForX_(&gGXState.clrImg);
}
ARM_FUNC u32 GX_ResetBankForSubBG(){
- return FUN_020C6130(&gGXState.sub_bg);
+ return resetBankForX_(&gGXState.sub_bg);
}
-ARM_FUNC u32 FUN_020C605C(){
- return FUN_020C6130(&gGXState.sub_obj);
+ARM_FUNC u32 GX_ResetBankForSubOBJ(){
+ return resetBankForX_(&gGXState.sub_obj);
}
-ARM_FUNC u32 FUN_020C6034(){
- reg_GXS_DB_DISPCNT &= ~0x40000000;
- return FUN_020C6130(&gGXState.sub_bgExtPltt);
+ARM_FUNC u32 GX_ResetBankForSubBGExtPltt(){
+ reg_GXS_DB_DISPCNT &= ~REG_GXS_DB_DISPCNT_BG_MASK;
+ return resetBankForX_(&gGXState.sub_bgExtPltt);
}
-ARM_FUNC u32 GX_ResetBankForSubOBJ(){
- reg_GXS_DB_DISPCNT &= ~0x80000000;
- return FUN_020C6130(&gGXState.sub_objExtPltt);
+ARM_FUNC u32 GX_ResetBankForSubOBJExtPltt(){
+ reg_GXS_DB_DISPCNT &= ~REG_GXS_DB_DISPCNT_O_MASK;
+ return resetBankForX_(&gGXState.sub_objExtPltt);
}
-ARM_FUNC u32 FUN_020C5F28(u16 *ptr){
+ARM_FUNC u32 disableBankForX_(u16 *ptr){
u32 temp = *ptr;
*ptr = 0;
if (temp & (0x1 << 0))
@@ -477,63 +477,63 @@ ARM_FUNC u32 FUN_020C5F28(u16 *ptr){
return temp;
}
-ARM_FUNC u32 disableBankForX_(){
- return FUN_020C5F28(&gGXState.bg);
+ARM_FUNC u32 GX_DisableBankForBG(){
+ return disableBankForX_(&gGXState.bg);
}
-ARM_FUNC u32 GX_DisableBankForOBJExtPltt_2(){
- return FUN_020C5F28(&gGXState.obj);
+ARM_FUNC u32 GX_DisableBankForOBJ(){
+ return disableBankForX_(&gGXState.obj);
}
ARM_FUNC u32 GX_DisableBankForBGExtPltt(){
- reg_GX_DISPCNT &= ~0x40000000;
- return FUN_020C5F28(&gGXState.bgExtPltt);
+ reg_GX_DISPCNT &= ~REG_GX_DISPCNT_BG_MASK;
+ return disableBankForX_(&gGXState.bgExtPltt);
}
ARM_FUNC u32 GX_DisableBankForOBJExtPltt(){
- reg_GX_DISPCNT &= ~0x80000000;
- return FUN_020C5F28(&gGXState.objExtPltt);
+ reg_GX_DISPCNT &= ~REG_GX_DISPCNT_O_MASK;
+ return disableBankForX_(&gGXState.objExtPltt);
}
-ARM_FUNC u32 GX_DisableBankForTexPltt_2(){
- return FUN_020C5F28(&gGXState.tex);
+ARM_FUNC u32 GX_DisableBankForTex(){
+ return disableBankForX_(&gGXState.tex);
}
ARM_FUNC u32 GX_DisableBankForTexPltt(){
- return FUN_020C5F28(&gGXState.texPltt);
+ return disableBankForX_(&gGXState.texPltt);
}
ARM_FUNC u32 GX_DisableBankForClearImage(){
- return FUN_020C5F28(&gGXState.clrImg);
+ return disableBankForX_(&gGXState.clrImg);
}
ARM_FUNC u32 GX_DisableBankForARM7(){
- return FUN_020C5F28(&gGXState.arm7);
+ return disableBankForX_(&gGXState.arm7);
}
ARM_FUNC u32 GX_DisableBankForLCDC(){
- return FUN_020C5F28(&gGXState.lcdc);
+ return disableBankForX_(&gGXState.lcdc);
}
-ARM_FUNC u32 GX_DisableBankForSubBGExtPltt(){
- return FUN_020C5F28(&gGXState.sub_bg);
+ARM_FUNC u32 GX_DisableBankForSubBG(){
+ return disableBankForX_(&gGXState.sub_bg);
}
-ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt_2(){
- return FUN_020C5F28(&gGXState.sub_obj);
+ARM_FUNC u32 GX_DisableBankForSubOBJ(){
+ return disableBankForX_(&gGXState.sub_obj);
}
-ARM_FUNC u32 FUN_020C5E04(){
- reg_GXS_DB_DISPCNT &= ~0x40000000;
- return FUN_020C5F28(&gGXState.sub_bgExtPltt);
+ARM_FUNC u32 GX_DisableBankForSubBGExtPltt(){
+ reg_GXS_DB_DISPCNT &= ~REG_GX_DISPCNT_BG_MASK;
+ return disableBankForX_(&gGXState.sub_bgExtPltt);
}
ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt(){
- reg_GXS_DB_DISPCNT &= ~0x80000000;
- return FUN_020C5F28(&gGXState.sub_objExtPltt);
+ reg_GXS_DB_DISPCNT &= ~REG_GX_DISPCNT_O_MASK;
+ return disableBankForX_(&gGXState.sub_objExtPltt);
}
-ARM_FUNC u32 GX_GetBankForBGExtPltt_2(){
+ARM_FUNC u32 GX_GetBankForBG(){
return gGXState.bg;
}
@@ -549,7 +549,7 @@ ARM_FUNC u32 GX_GetBankForOBJExtPltt(){
return gGXState.objExtPltt;
}
-ARM_FUNC u32 FUN_020C5D8C(){
+ARM_FUNC u32 GX_GetBankForTex(){
return gGXState.tex;
}
@@ -561,7 +561,7 @@ ARM_FUNC u32 GX_GetBankForLCDC(){
return gGXState.lcdc;
}
-ARM_FUNC u32 GX_GetBankForSubBGExtPltt_2(){
+ARM_FUNC u32 GX_GetBankForSubBG(){
return gGXState.sub_bg;
}
diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s
index 4ca1ac2e..9cea7a32 100644
--- a/arm9/modules/05/asm/mod05_021D74E0.s
+++ b/arm9/modules/05/asm/mod05_021D74E0.s
@@ -8,7 +8,7 @@ MOD05_021D74E0: ; 0x021D74E0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
bl FUN_0201C30C
bl FUN_02009F80
ldr r0, [r4, #0x34]
@@ -101,7 +101,7 @@ _021D757A:
bl MOD05_021D7B38
bl GX_SwapDisplay
mov r0, #4
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #8]
bl MOD05_021D7A30
mov r0, #0
@@ -617,7 +617,7 @@ MOD05_021D7A30: ; 0x021D7A30
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D7B04 ; =UNK05_021F6468
add r3, sp, #0x3c
ldmia r5!, {r0, r1}
@@ -632,15 +632,15 @@ MOD05_021D7A30: ; 0x021D7A30
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7B08 ; =UNK05_021F644C
add r3, sp, #0x20
ldmia r5!, {r0, r1}
@@ -655,15 +655,15 @@ MOD05_021D7A30: ; 0x021D7A30
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7B0C ; =UNK05_021F6484
add r3, sp, #4
ldmia r5!, {r0, r1}
@@ -678,15 +678,15 @@ MOD05_021D7A30: ; 0x021D7A30
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
add r1, sp, #0
strh r0, [r1]
@@ -713,13 +713,13 @@ MOD05_021D7B10: ; 0x021D7B10
bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.balign 4, 0
diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s
index 7b1e767f..7e1d3287 100644
--- a/arm9/modules/05/asm/mod05_021DC0B8.s
+++ b/arm9/modules/05/asm/mod05_021DC0B8.s
@@ -1903,7 +1903,7 @@ MOD05_021DCECC: ; 0x021DCECC
ldr r1, [r1, #0xc]
mov r2, #0x20
mov r3, #0xc0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
ldr r0, [sp]
bl FreeToHeap
mov r0, #0
@@ -1945,7 +1945,7 @@ MOD05_021DCF14: ; 0x021DCF14
ldr r0, [r0, #8]
ldr r3, [r3, #0x10]
mov r1, #2
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r0, [sp, #8]
bl FreeToHeap
mov r0, #0
@@ -1997,7 +1997,7 @@ _021DCFA0:
ldr r0, [r0, #8]
mov r1, #2
add r2, #0xc
- bl FUN_02017CE8
+ bl BgCopyOrUncompressTilemapBufferRangeToVram
mov r0, #0x41
lsl r0, r0, #2
ldr r3, [sp, #0x18]
@@ -2007,7 +2007,7 @@ _021DCFA0:
ldr r3, [r3, #8]
mov r1, #2
add r2, #0xc
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
mov r0, #0x20
str r0, [sp]
str r0, [sp, #4]
@@ -2019,13 +2019,13 @@ _021DCFA0:
ldr r0, [r0, #8]
mov r1, #2
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
mov r0, #0x41
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
ldr r0, [r0, #8]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, [sp, #0x14]
bl FreeToHeap
mov r0, #0
diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s
index c41f4c57..dee569a9 100644
--- a/arm9/modules/05/asm/mod05_021E1AD8.s
+++ b/arm9/modules/05/asm/mod05_021E1AD8.s
@@ -274,7 +274,7 @@ _021E1CA8:
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
mov r0, #4
@@ -545,7 +545,7 @@ MOD05_021E1ECC: ; 0x021E1ECC
add r0, r6, #0
add r0, #0xa8
ldr r0, [r0]
- bl FUN_02019178
+ bl RemoveWindow
mov r4, #0
add r5, r6, #0
_021E1EFC:
@@ -685,7 +685,7 @@ _021E1FC8:
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
b _021E2032
_021E2002:
add r1, r4, #0
@@ -710,7 +710,7 @@ _021E2002:
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
_021E2032:
mov r0, #0
str r0, [sp]
@@ -1142,7 +1142,7 @@ MOD05_021E2368: ; 0x021E2368
bl FUN_0200CCF8
add r0, r6, #0
add r0, #8
- bl FUN_02019178
+ bl RemoveWindow
mov r4, #0
add r5, r6, #0
_021E2398:
@@ -1291,7 +1291,7 @@ _021E2496:
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
mov r0, #4
@@ -1411,7 +1411,7 @@ MOD05_021E25A4: ; 0x021E25A4
add r0, r6, #0
add r0, #0xa8
ldr r0, [r0]
- bl FUN_02019178
+ bl RemoveWindow
mov r4, #0
add r5, r6, #0
_021E25D0:
@@ -1626,7 +1626,7 @@ _021E270A:
ldr r0, [r0, #8]
add r1, #8
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
mov r0, #4
@@ -1733,7 +1733,7 @@ MOD05_021E27E8: ; 0x021E27E8
add r1, r4, #0
mov r2, #3
add r3, r7, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
mov r0, #4
@@ -1791,7 +1791,7 @@ MOD05_021E288C: ; 0x021E288C
bl FUN_0200CCF8
add r0, r4, #0
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
pop {r4, pc}
thumb_func_start MOD05_021E28A0
@@ -1865,7 +1865,7 @@ MOD05_021E28A0: ; 0x021E28A0
ldr r0, [sp, #0xc]
bl DestroyMsgData
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
@@ -1893,7 +1893,7 @@ MOD05_021E2950: ; 0x021E2950
add r1, r4, #0
mov r2, #3
add r3, r7, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
mov r0, #4
@@ -1925,7 +1925,7 @@ MOD05_021E29B4: ; 0x021E29B4
bl FUN_0200CCF8
add r0, r4, #0
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
pop {r4, pc}
thumb_func_start MOD05_021E29C8
@@ -1992,7 +1992,7 @@ MOD05_021E29C8: ; 0x021E29C8
add r0, r7, #0
bl DestroyMsgData
ldr r0, [sp, #0xc]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
@@ -2022,7 +2022,7 @@ MOD05_021E2A70: ; 0x021E2A70
add r1, r4, #0
mov r2, #3
add r3, r7, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
mov r0, #4
@@ -2112,7 +2112,7 @@ MOD05_021E2AD4: ; 0x021E2AD4
add r0, r7, #0
bl DestroyMsgData
ldr r0, [sp, #0xc]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/05/asm/mod05_021E2E88.s b/arm9/modules/05/asm/mod05_021E2E88.s
index a81ba2f1..9a7c0b1f 100644
--- a/arm9/modules/05/asm/mod05_021E2E88.s
+++ b/arm9/modules/05/asm/mod05_021E2E88.s
@@ -36,7 +36,7 @@ MOD05_021E2EA4: ; 0x021E2EA4
add r1, #0x20
str r0, [sp, #0x10]
ldr r0, [r4, #0x1c]
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
ldr r2, _021E2EE0 ; =0x000003CF
@@ -61,7 +61,7 @@ MOD05_021E2EE4: ; 0x021E2EE4
add r0, #0x38
mov r1, #4
add r7, r3, #0
- bl FUN_0201AB28
+ bl LoadCharacterDataFromFile
str r0, [r5, #0x34]
add r3, r0, #0
str r4, [sp]
@@ -69,11 +69,11 @@ MOD05_021E2EE4: ; 0x021E2EE4
ldr r0, [r5, #0x1c]
ldr r3, [r3, #0x10]
add r1, r6, #0
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r2, _021E2F30 ; =UNK05_021FD62C
add r0, sp, #4
mov r1, #4
- bl FUN_0201AB44
+ bl LoadPaletteDataFromFile
ldr r0, [r0, #0xc]
mov r1, #1
add r2, r7, #0
@@ -367,7 +367,7 @@ _021E314E:
ldr r0, [r4, #0x1c]
ldr r3, [r4, #0xc]
add r2, r1, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0xc]
cmp r0, #0
bne _021E31D0
@@ -401,7 +401,7 @@ _021E318E:
ldr r0, [r4, #0x1c]
ldr r3, [r4, #0xc]
add r2, r1, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0xc]
cmp r0, #0x26
bne _021E31D0
@@ -498,7 +498,7 @@ MOD05_021E3248: ; 0x021E3248
bl DestroyMsgData
add r0, r4, #0
add r0, #0x20
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x40]
bl String_dtor
ldr r0, [r4, #0x38]
@@ -522,7 +522,7 @@ MOD05_021E3270: ; 0x021E3270
ldr r0, [r4, #0x1c]
add r2, r1, #0
mov r3, #0x26
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0x26
str r0, [r4, #0xc]
ldr r0, _021E32EC ; =MOD05_021E3124
@@ -584,12 +584,12 @@ MOD05_021E32F0: ; 0x021E32F0
_021E32FE:
add r0, r4, #0
add r0, #0x20
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r1, #3
ldr r0, [r4, #0x1c]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, [r4, #0x1c]
add r0, r4, #0
bl MOD05_021E3114
diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s
index 42f9037e..9bd14da2 100644
--- a/arm9/modules/05/asm/mod05_021E3444.s
+++ b/arm9/modules/05/asm/mod05_021E3444.s
@@ -1055,7 +1055,7 @@ MOD05_021E3C14: ; 0x021E3C14
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r0, #1
add r1, r0, #0
bl GX_EngineAToggleLayers
@@ -1071,20 +1071,20 @@ MOD05_021E3C14: ; 0x021E3C14
mov r1, #1
str r0, [r2]
add r0, r4, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
add r2, sp, #0x38
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #2
mov r1, #0
bl GX_EngineAToggleLayers
@@ -1100,20 +1100,20 @@ MOD05_021E3C14: ; 0x021E3C14
mov r1, #2
str r0, [r2]
add r0, r4, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
add r2, sp, #0x1c
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #4
mov r1, #1
bl GX_EngineAToggleLayers
@@ -1129,20 +1129,20 @@ MOD05_021E3C14: ; 0x021E3C14
str r0, [r2]
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
add r2, sp, #0
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #8
mov r1, #0
bl GX_EngineAToggleLayers
@@ -1214,7 +1214,7 @@ MOD05_021E3D70: ; 0x021E3D70
lsl r1, r1, #0x18
ldr r3, [r3, #0x20]
lsr r1, r1, #0x18
- bl FUN_02017B60
+ bl Bg_SetTextDimAndAffineParams
add r0, r4, #0
bl FUN_0200CAB4
add sp, #0xc
diff --git a/arm9/modules/05/asm/mod05_021E80F8.s b/arm9/modules/05/asm/mod05_021E80F8.s
index 82fd7a02..3d6303b2 100644
--- a/arm9/modules/05/asm/mod05_021E80F8.s
+++ b/arm9/modules/05/asm/mod05_021E80F8.s
@@ -26,7 +26,7 @@ MOD05_021E8110: ; 0x021E8110
lsl r1, r1, #0x18
lsr r1, r1, #0x1f
beq _021E8120
- bl FUN_02019178
+ bl RemoveWindow
_021E8120:
add r0, r4, #0
bl FreeToHeap
@@ -147,7 +147,7 @@ MOD05_021E81D0: ; 0x021E81D0
ldr r0, [r4, #8]
add r2, r1, #0
sub r3, #0x33
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, [r4, #0x60]
ldrb r0, [r1, #0x13]
lsl r0, r0, #0x18
@@ -179,7 +179,7 @@ MOD05_021E820C: ; 0x021E820C
lsl r1, r1, #0x18
lsr r1, r1, #0x1f
beq _021E825A
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x12
str r0, [sp]
mov r0, #0x20
@@ -192,15 +192,15 @@ MOD05_021E820C: ; 0x021E820C
ldr r0, [r4, #8]
mov r1, #3
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r4, #8]
mov r1, #3
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r1, #3
ldr r0, [r4, #8]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r2, [r4, #0x60]
mov r0, #0x80
ldrb r1, [r2, #0x13]
@@ -217,7 +217,7 @@ MOD05_021E8260: ; 0x021E8260
add r4, r0, #0
ldr r0, [r4, #8]
mov r1, #3
- bl FUN_02017B54
+ bl Bg_GetYpos
cmp r0, #0
bne _021E8274
mov r0, #1
@@ -235,13 +235,13 @@ _021E8280:
ldr r0, [r4, #8]
add r2, r1, #0
sub r3, #0x33
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_021E828E:
ldr r0, [r4, #8]
mov r1, #3
mov r2, #4
mov r3, #0x10
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0
pop {r4, pc}
.balign 4, 0
@@ -253,7 +253,7 @@ MOD05_021E82A0: ; 0x021E82A0
add r4, r0, #0
ldr r0, [r4, #8]
mov r1, #3
- bl FUN_02017B54
+ bl Bg_GetYpos
mov r1, #0x2f
mvn r1, r1
cmp r0, r1
@@ -270,15 +270,15 @@ MOD05_021E82A0: ; 0x021E82A0
ldr r0, [r4, #8]
mov r1, #3
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r4, #8]
mov r1, #3
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r1, #3
ldr r0, [r4, #8]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add sp, #0x10
mov r0, #1
pop {r4, pc}
@@ -291,13 +291,13 @@ _021E82F2:
ldr r0, [r4, #8]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_021E82FE:
ldr r0, [r4, #8]
mov r1, #3
mov r2, #5
mov r3, #0x10
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0
add sp, #0x10
pop {r4, pc}
diff --git a/arm9/modules/05/asm/mod05_021E8310.s b/arm9/modules/05/asm/mod05_021E8310.s
index 5bf27853..6c9c422b 100644
--- a/arm9/modules/05/asm/mod05_021E8310.s
+++ b/arm9/modules/05/asm/mod05_021E8310.s
@@ -264,7 +264,7 @@ MOD05_021E84F4: ; 0x021E84F4
ldrb r2, [r4, #8]
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x10]
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
ldr r0, [r4, #4]
@@ -301,7 +301,7 @@ MOD05_021E856C: ; 0x021E856C
mov r1, #0
bl FUN_0200CCF8
ldr r0, [r4, #0x10]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x10]
bl FreeToHeap
pop {r4, pc}
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index a67d2d02..95a0e6ca 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -2753,7 +2753,7 @@ _021E9C02:
ldr r0, [r0, #0x10]
mov r2, #3
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
mov r1, #0
add r0, sp, #0x28
strh r1, [r0]
@@ -2761,7 +2761,7 @@ _021E9C02:
add r1, sp, #0x28
mov r2, #2
mov r3, #0x1e
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
@@ -2770,7 +2770,7 @@ _021E9C02:
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [sp, #0x1c]
ldr r0, [r0]
add r1, r0, #1
@@ -3160,26 +3160,26 @@ _021E9FA4:
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [sp, #0x1c]
mov r1, #3
ldr r0, [r0, #0x10]
ldr r0, [r0, #8]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r1, [sp, #0x1c]
mov r0, #4
ldr r1, [r1, #0xc]
@@ -3275,7 +3275,7 @@ _021EA0B0:
mov r0, #0x83
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [sp, #0x1c]
ldr r0, [r0]
cmp r0, #7
@@ -3725,7 +3725,7 @@ _021EA430:
ldr r0, [r0, #0x10]
mov r2, #3
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
mov r1, #0
add r0, sp, #0x28
strh r1, [r0]
@@ -3733,7 +3733,7 @@ _021EA430:
add r1, sp, #0x28
mov r2, #2
mov r3, #0x1e
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
@@ -3742,7 +3742,7 @@ _021EA430:
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #4
bl MOD05_021E4394
mov r1, #0x81
@@ -4030,7 +4030,7 @@ _021EA6FA:
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x83
lsl r0, r0, #2
add r0, r4, r0
@@ -4093,26 +4093,26 @@ _021EA76C:
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [sp, #0x18]
mov r1, #3
ldr r0, [r0, #0x10]
ldr r0, [r0, #8]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r1, [sp, #0x18]
mov r0, #4
ldr r1, [r1, #0xc]
@@ -5393,7 +5393,7 @@ _021EB18E:
ldr r1, [r4]
ldr r0, [r0, #8]
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r1, #0
add r0, sp, #0x14
strh r1, [r0]
@@ -5401,12 +5401,12 @@ _021EB18E:
add r1, sp, #0x14
mov r2, #2
mov r3, #0x1e
- bl FUN_02017FB4
+ bl BG_LoadPlttData
ldr r0, [r4]
mov r1, #0
bl FillWindowPixelBuffer
ldr r0, [r4]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
@@ -5535,7 +5535,7 @@ _021EB344:
str r0, [r5]
_021EB36C:
ldr r0, [r4]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
b _021EB3F2
_021EB374:
mov r0, #0
@@ -5566,21 +5566,21 @@ _021EB394:
add r0, #8
bl MOD05_021E3E44
ldr r0, [r4]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, [r4]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r5, #0x10]
mov r1, #3
ldr r0, [r0, #8]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, _021EB410 ; =0x0400004D
mov r1, #0
strb r1, [r0]
@@ -15215,7 +15215,7 @@ MOD05_021EFEDC: ; 0x021EFEDC
ldr r0, [r0, #8]
mov r2, #3
mov r3, #0x13
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _021EFFBC ; =0x000003D9
add r0, #0x20
@@ -15362,7 +15362,7 @@ _021F0056:
bl FUN_0200CCF8
add r0, r5, #0
add r0, #0x20
- bl FUN_02019178
+ bl RemoveWindow
mov r1, #0
ldr r0, [r5, #4]
add r2, r1, #0
@@ -15565,12 +15565,12 @@ MOD05_021F01EC: ; 0x021F01EC
add r4, r0, #0
add r0, #0x10
add r5, r1, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021F0204
add r0, r4, #0
add r0, #0x10
- bl FUN_02019178
+ bl RemoveWindow
_021F0204:
ldr r0, [r4, #0x3c]
ldr r2, [r4, #8]
@@ -15648,12 +15648,12 @@ MOD05_021F0290: ; 0x021F0290
bl String_dtor
add r0, r4, #0
add r0, #0x10
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021F02C0
add r4, #0x10
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_021F02C0:
pop {r4, pc}
.balign 4, 0
@@ -26506,7 +26506,7 @@ MOD05_021F5518: ; 0x021F5518
bl G2x_SetBlendAlpha_
mov r0, #2
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #4
mov r1, #1
bl GX_EngineAToggleLayers
@@ -26629,7 +26629,7 @@ MOD05_021F5608: ; 0x021F5608
add r1, sp, #4
add r2, r0, #0
mov r3, #0xc2
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r0, #4
mov r1, #0x20
bl AllocFromHeap
@@ -26643,13 +26643,13 @@ MOD05_021F5608: ; 0x021F5608
mov r1, #2
add r2, r4, #0
mov r3, #0x20
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
add r0, r4, #0
bl FreeToHeap
ldr r2, _021F565C ; =0x00006001
add r0, r5, #0
mov r1, #2
- bl FUN_02018768
+ bl BgFillTilemapBufferAndCommit
add sp, #8
pop {r3, r4, r5, pc}
nop
@@ -26694,21 +26694,21 @@ _021F5696:
thumb_func_start MOD05_021F569C
MOD05_021F569C: ; 0x021F569C
- ldr r3, _021F56A4 ; =FUN_02017FE4
+ ldr r3, _021F56A4 ; =BG_SetMaskColor
mov r0, #2
mov r1, #0
bx r3
.balign 4, 0
-_021F56A4: .word FUN_02017FE4
+_021F56A4: .word BG_SetMaskColor
thumb_func_start MOD05_021F56A8
MOD05_021F56A8: ; 0x021F56A8
- ldr r3, _021F56B0 ; =FUN_02017FE4
+ ldr r3, _021F56B0 ; =BG_SetMaskColor
mov r0, #2
ldr r1, _021F56B4 ; =0x00007FFF
bx r3
.balign 4, 0
-_021F56B0: .word FUN_02017FE4
+_021F56B0: .word BG_SetMaskColor
_021F56B4: .word 0x00007FFF
thumb_func_start MOD05_021F56B8
@@ -26733,17 +26733,17 @@ MOD05_021F56B8: ; 0x021F56B8
mov r0, #2
add r1, sp, #4
add r2, r0, #0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r1, #2
str r1, [sp]
ldr r0, [r4, #8]
add r2, r1, #0
mov r3, #1
- bl FUN_02017F48
+ bl BG_FillCharDataRange
ldr r0, [r4, #8]
ldr r2, _021F5718 ; =0x00006002
mov r1, #2
- bl FUN_02018768
+ bl BgFillTilemapBufferAndCommit
mov r0, #4
mov r1, #1
bl GX_EngineAToggleLayers
@@ -26777,17 +26777,17 @@ MOD05_021F571C: ; 0x021F571C
strh r2, [r1]
add r1, sp, #4
mov r2, #2
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r2, #2
str r2, [sp]
ldr r0, [r4, #8]
mov r1, #3
mov r3, #1
- bl FUN_02017F48
+ bl BG_FillCharDataRange
ldr r0, [r4, #8]
ldr r2, _021F577C ; =0x00006002
mov r1, #3
- bl FUN_02018768
+ bl BgFillTilemapBufferAndCommit
mov r0, #8
mov r1, #1
bl GX_EngineAToggleLayers
@@ -26928,7 +26928,7 @@ _021F5856:
mov r0, #2
mov r1, #0
strh r0, [r4, #8]
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #4
mov r1, #1
bl GX_EngineAToggleLayers
@@ -27007,7 +27007,7 @@ _021F58EE:
strh r1, [r0]
mov r0, #2
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #8
strh r0, [r4, #8]
b _021F5980
@@ -28181,7 +28181,7 @@ MOD05_021F617C: ; 0x021F617C
bl FUN_0200D0E0
add r4, #0x38
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #1
pop {r4, pc}
_021F61AA:
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 6fbee88b..6f2604e6 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -90,11 +90,11 @@ MOD06_02239728: ; 0x02239728
MOD06_0223972C: ; 0x0223972C
push {r4, lr}
add r4, r0, #0
- bl GX_GetBankForBGExtPltt_2
+ bl GX_GetBankForBG
str r0, [r4]
bl GX_GetBankForBGExtPltt
str r0, [r4, #4]
- bl GX_GetBankForSubBGExtPltt_2
+ bl GX_GetBankForSubBG
str r0, [r4, #8]
bl GX_GetBankForSubBGExtPltt
str r0, [r4, #0xc]
@@ -106,7 +106,7 @@ MOD06_0223972C: ; 0x0223972C
str r0, [r4, #0x18]
bl GX_GetBankForSubOBJExtPltt
str r0, [r4, #0x1c]
- bl FUN_020C5D8C
+ bl GX_GetBankForTex
str r0, [r4, #0x20]
bl GX_GetBankForTexPltt
str r0, [r4, #0x24]
@@ -145,7 +145,7 @@ MOD06_02239790: ; 0x02239790
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r0, #1
add r1, r0, #0
bl GX_EngineAToggleLayers
@@ -163,15 +163,15 @@ MOD06_02239790: ; 0x02239790
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x2c
pop {r4, r5, pc}
nop
@@ -8472,7 +8472,7 @@ MOD06_0223D63C: ; 0x0223D63C
ldr r0, [r5]
add r1, #8
add r2, r4, #0
- bl FUN_02019064
+ bl AddWindowParameterized
b _0223D710
_0223D6B8:
mov r4, #2
@@ -8514,7 +8514,7 @@ _0223D6B8:
ldr r0, [r5]
add r1, #8
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
_0223D710:
add r0, r5, #0
add r0, #0x84
@@ -8609,7 +8609,7 @@ MOD06_0223D7B8: ; 0x0223D7B8
bl FUN_0200CCF8
add r0, r4, #0
add r0, #8
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x80
ldr r0, [r0]
@@ -8621,7 +8621,7 @@ MOD06_0223D7B8: ; 0x0223D7B8
bl ListMenuItems_dtor
add r4, #8
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
thumb_func_start MOD06_0223D7EC
@@ -8649,7 +8649,7 @@ _0223D804:
bl FUN_0200D0E0
add r0, r4, #0
add r0, #0x18
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x88
ldr r0, [r0]
@@ -8780,7 +8780,7 @@ MOD06_0223D918: ; 0x0223D918
ldr r0, [r4]
mov r1, #3
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r4, #0
bl MOD06_0223D7B8
add r0, r4, #0
@@ -8825,13 +8825,13 @@ _0223D984:
ldr r0, [r5]
ldr r2, _0223D9BC ; =0x0224F350
add r1, r4, #0
- bl FUN_02019150
+ bl AddWindow
b _0223D9A6
_0223D99C:
ldr r0, [r5]
add r1, r4, #0
add r2, r7, #0
- bl FUN_02019150
+ bl AddWindow
_0223D9A6:
add r6, r6, #1
add r4, #0x10
@@ -8855,9 +8855,9 @@ MOD06_0223D9C0: ; 0x0223D9C0
add r5, #8
_0223D9D0:
add r0, r5, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #6
@@ -8955,37 +8955,37 @@ MOD06_0223DA8C: ; 0x0223DA8C
str r0, [r4, r1]
ldr r0, [r4]
mov r1, #0
- bl FUN_02018884
+ bl GetBgPriority
mov r1, #0x8d
lsl r1, r1, #2
strb r0, [r4, r1]
ldr r0, [r4]
mov r1, #1
- bl FUN_02018884
+ bl GetBgPriority
ldr r1, _0223DB10 ; =0x00000235
strb r0, [r4, r1]
ldr r0, [r4]
mov r1, #2
- bl FUN_02018884
+ bl GetBgPriority
ldr r1, _0223DB14 ; =0x00000236
strb r0, [r4, r1]
ldr r0, [r4]
mov r1, #3
- bl FUN_02018884
+ bl GetBgPriority
ldr r1, _0223DB18 ; =0x00000237
strb r0, [r4, r1]
mov r0, #0
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #3
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0
mov r1, #1
bl GX_EngineAToggleLayers
@@ -9012,19 +9012,19 @@ MOD06_0223DB1C: ; 0x0223DB1C
lsl r1, r1, #2
ldrb r1, [r4, r1]
mov r0, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r1, _0223DB58 ; =0x00000235
mov r0, #1
ldrb r1, [r4, r1]
- bl FUN_020178BC
+ bl SetBgPriority
ldr r1, _0223DB5C ; =0x00000236
mov r0, #2
ldrb r1, [r4, r1]
- bl FUN_020178BC
+ bl SetBgPriority
ldr r1, _0223DB60 ; =0x00000237
mov r0, #3
ldrb r1, [r4, r1]
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0x8e
lsl r0, r0, #2
ldr r0, [r4, r0]
@@ -9323,7 +9323,7 @@ _0223DDB2:
_0223DDBA:
add r0, r4, #0
add r0, #0x18
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r1, sp, #0x14
ldr r0, [sp, #0x10]
add r1, #2
@@ -9546,7 +9546,7 @@ _0223DF30:
bl String_dtor
add r5, #0x28
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r4, r5, r6, r7, pc}
@@ -9604,7 +9604,7 @@ _0223E006:
bl MOD06_0223DB1C
ldr r0, [r5]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, _0223E188 ; =0x000005DC
bl FUN_020054C8
mov r0, #0xc
@@ -9640,7 +9640,7 @@ _0223E034:
bl FillWindowPixelBuffer
add r0, r5, #0
add r0, #0x18
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
add r0, #0x58
mov r1, #0
@@ -9881,7 +9881,7 @@ _0223E214:
bl String_dtor
add r5, #0x48
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
@@ -9975,7 +9975,7 @@ _0223E314:
bl MOD06_0223ECC8
add r4, #0x18
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _0223E380 ; =0x000005DC
bl FUN_020054C8
mov r0, #4
@@ -10268,7 +10268,7 @@ _0223E50A:
bl String_dtor
add r5, #0x38
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -10471,7 +10471,7 @@ _0223E74A:
bl MOD06_0223ECC8
add r5, #0x18
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #4
pop {r3, r4, r5, pc}
_0223E78C:
@@ -10684,7 +10684,7 @@ _0223E902:
bl MOD06_0223ECC8
add r5, #0x18
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #4
pop {r3, r4, r5, pc}
_0223E944:
@@ -10736,7 +10736,7 @@ _0223E966:
bl MOD06_0223ECC8
add r4, #0x18
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #4
pop {r4, pc}
_0223E9B2:
@@ -10917,7 +10917,7 @@ MOD06_0223EB04: ; 0x0223EB04
_0223EB1A:
add r0, r4, #0
add r0, #0x18
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
bl MOD06_0223D63C
mov r0, #1
@@ -11285,7 +11285,7 @@ _0223EE16:
ldr r0, _0223EE70 ; =0x02252420
ldr r0, [r0]
add r0, #0x40
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0223EE34
ldr r0, _0223EE70 ; =0x02252420
@@ -11333,7 +11333,7 @@ MOD06_0223EE74: ; 0x0223EE74
ldr r0, _0223EF10 ; =0x02252420
ldr r0, [r0]
add r0, #0x20
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0223EEB8
ldr r0, _0223EF10 ; =0x02252420
@@ -11358,7 +11358,7 @@ MOD06_0223EE74: ; 0x0223EE74
ldr r0, [r1, #0x68]
add r1, #0x20
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
_0223EEB8:
ldr r0, _0223EF10 ; =0x02252420
ldr r2, _0223EF14 ; =0x000003D9
@@ -11570,7 +11570,7 @@ _0223F060:
cmp r1, #0
beq _0223F07A
add r0, #0x40
- bl FUN_02019178
+ bl RemoveWindow
_0223F07A:
ldr r0, _0223F08C ; =0x02252420
ldr r0, [r0]
@@ -11820,7 +11820,7 @@ MOD06_0223F270: ; 0x0223F270
ldr r0, _0223F330 ; =0x02252420
ldr r0, [r0]
add r0, #0x30
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0223F2AA
ldr r0, _0223F330 ; =0x02252420
@@ -11840,7 +11840,7 @@ MOD06_0223F270: ; 0x0223F270
add r1, #0x30
ldr r0, [r0, #8]
mov r3, #0x17
- bl FUN_02019064
+ bl AddWindowParameterized
_0223F2AA:
ldr r0, _0223F330 ; =0x02252420
ldr r2, _0223F334 ; =0x000003D9
@@ -12578,7 +12578,7 @@ MOD06_0223F8C8: ; 0x0223F8C8
ldr r0, _0223F950 ; =0x02252420
ldr r0, [r0]
add r0, #0x30
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0223F910
ldr r0, _0223F950 ; =0x02252420
@@ -12598,7 +12598,7 @@ MOD06_0223F8C8: ; 0x0223F8C8
add r1, #0x30
ldr r0, [r0, #8]
mov r3, #0x16
- bl FUN_02019064
+ bl AddWindowParameterized
_0223F910:
ldr r0, _0223F950 ; =0x02252420
ldr r2, _0223F954 ; =0x000003D9
@@ -13856,10 +13856,10 @@ MOD06_02240364: ; 0x02240364
bl DestroyListMenu
add r0, r4, #0
add r0, #0x20
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x20
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x97
ldrb r0, [r0]
@@ -13873,11 +13873,11 @@ MOD06_02240364: ; 0x02240364
ldr r0, _022403DC ; =0x02252420
ldr r0, [r0]
add r0, #0x30
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, _022403DC ; =0x02252420
ldr r0, [r0]
add r0, #0x30
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0
add r4, #0x97
strb r0, [r4]
@@ -14468,7 +14468,7 @@ MOD06_02240864: ; 0x02240864
add r5, r0, #0
add r0, #0x54
add r4, r1, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0224089E
add r0, r5, #0
@@ -14524,11 +14524,11 @@ MOD06_022408D4: ; 0x022408D4
bl FUN_0200D0E0
add r0, r4, #0
add r0, #0x54
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
_022408EC:
add r4, #0x54
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
.align 2, 0
@@ -14572,7 +14572,7 @@ MOD06_02240924: ; 0x02240924
add r6, r6, #1
_02240940:
add r0, r4, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _022409D2
add r0, r6, #2
@@ -14594,7 +14594,7 @@ _02240940:
add r1, r4, #0
ldr r0, [r0, #8]
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _02240A20 ; =0x000003D9
add r0, #0x34
@@ -14695,10 +14695,10 @@ MOD06_02240A28: ; 0x02240A28
add r1, #0x38
ldrb r1, [r1]
ldr r0, [r4, #0x34]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r4, #0
add r0, #0x34
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #8]
bl ListMenuItems_dtor
mov r0, #0
@@ -14810,7 +14810,7 @@ MOD06_02240B04: ; 0x02240B04
ldr r0, [r0, #8]
mov r2, #3
mov r3, #0x16
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _02240BB0 ; =0x000003D9
add r0, #0x44
@@ -14930,10 +14930,10 @@ _02240C1A:
add r1, #0x48
ldrb r1, [r1]
ldr r0, [r5, #0x44]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r5, #0
add r0, #0x44
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r5, #0xc]
bl ListMenuItems_dtor
mov r0, #0
@@ -14984,7 +14984,7 @@ MOD06_02240C58: ; 0x02240C58
ldr r0, [r0, #0x10]
mov r3, #4
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [sp, #0x24]
ldr r2, _02240F00 ; =0x000003D9
mov r1, #1
@@ -15286,10 +15286,10 @@ MOD06_02240F1C: ; 0x02240F1C
add r1, #0x28
ldrb r1, [r1]
ldr r0, [r4, #0x24]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r4, #0x24
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
.align 2, 0
@@ -19005,7 +19005,7 @@ MOD06_02242CDC: ; 0x02242CDC
add r1, r4, #4
mov r2, #3
add r3, r6, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
mov r0, #4
@@ -19433,7 +19433,7 @@ MOD06_02243024: ; 0x02243024
bl FUN_0200D0E0
add r0, r6, #0
add r0, #0x14
- bl FUN_02019178
+ bl RemoveWindow
add r0, r6, #0
add r0, #0x88
mov r1, #0
@@ -19444,7 +19444,7 @@ MOD06_02243024: ; 0x02243024
mov r1, #0
bl FUN_0200CCF8
add r0, r6, #4
- bl FUN_02019178
+ bl RemoveWindow
mov r4, #0
add r5, r6, #0
_02243060:
@@ -27719,12 +27719,12 @@ MOD06_02246F0C: ; 0x02246F0C
ldr r0, [r5, #0x60]
mov r1, #0
ldr r0, [r0, #8]
- bl FUN_02018884
+ bl GetBgPriority
strh r0, [r5, #0x24]
ldr r0, [r5, #0x60]
mov r1, #3
ldr r0, [r0, #8]
- bl FUN_02018884
+ bl GetBgPriority
strh r0, [r5, #0x26]
ldr r2, _02246FB4 ; =0x0400000A
mov r1, #3
@@ -28496,7 +28496,7 @@ MOD06_02247544: ; 0x02247544
ldr r1, [r1, #0xc]
mov r2, #0x20
lsl r3, r0, #7
- bl FUN_02017FB4
+ bl BG_LoadPlttData
add r0, r4, #0
bl FreeToHeap
pop {r3, r4, r5, pc}
@@ -28521,7 +28521,7 @@ MOD06_0224756C: ; 0x0224756C
ldr r3, [r3, #0x10]
add r0, r5, #0
mov r1, #3
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
add r0, r6, #0
bl FreeToHeap
add sp, #4
@@ -28539,12 +28539,12 @@ MOD06_022475A4: ; 0x022475A4
mov r1, #3
add r3, r2, #0
add r5, r0, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #3
add r0, r5, #0
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r6, #0
add r1, r7, #0
mov r2, #4
@@ -28558,7 +28558,7 @@ MOD06_022475A4: ; 0x022475A4
ldr r3, [r3, #8]
mov r1, #3
add r2, #0xc
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
mov r0, #0x20
str r0, [sp]
str r0, [sp, #4]
@@ -28568,10 +28568,10 @@ MOD06_022475A4: ; 0x022475A4
add r0, r5, #0
mov r1, #3
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r5, #0
mov r1, #3
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r6, #0
bl FreeToHeap
add sp, #0xc
@@ -28579,11 +28579,11 @@ MOD06_022475A4: ; 0x022475A4
thumb_func_start MOD06_02247610
MOD06_02247610: ; 0x02247610
- ldr r3, _02247618 ; =FUN_02018744
+ ldr r3, _02247618 ; =BgClearTilemapBufferAndCommit
mov r1, #3
bx r3
nop
-_02247618: .word FUN_02018744
+_02247618: .word BgClearTilemapBufferAndCommit
thumb_func_start MOD06_0224761C
MOD06_0224761C: ; 0x0224761C
@@ -40876,7 +40876,7 @@ MOD06_0224D46C: ; 0x0224D46C
add r0, r5, #0
add r1, r4, #0
mov r3, #1
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
mov r3, #0xb
@@ -41093,9 +41093,9 @@ MOD06_0224D6A4: ; 0x0224D6A4
mov r1, #1
bl FUN_0200CCF8
add r0, r4, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x10]
bl DestroyMsgData
ldr r0, [r4, #0x14]
@@ -41381,7 +41381,7 @@ _0224D8DC:
ldr r0, [r4, #0x14]
mov r1, #3
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x61
lsl r0, r0, #2
add r0, r4, r0
@@ -41746,7 +41746,7 @@ MOD06_0224DBCC: ; 0x0224DBCC
bl FUN_02002ED0
ldr r0, [r4, #0x14]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #8
pop {r4, pc}
.align 2, 0
@@ -41756,7 +41756,7 @@ MOD06_0224DC28: ; 0x0224DC28
push {r3, lr}
ldr r0, [r0, #0x14]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
mov r1, #1
bl FUN_02054590
@@ -41810,7 +41810,7 @@ MOD06_0224DC5C: ; 0x0224DC5C
add r0, r4, #0
mov r2, #3
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r5, #4]
mov r1, #0xf
bl FillWindowPixelBuffer
@@ -41834,12 +41834,12 @@ MOD06_0224DCB4: ; 0x0224DCB4
cmp r0, #0
beq _0224DCD6
ldr r0, [r4, #4]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, [r4, #4]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
mov r0, #0
str r0, [r4]
_0224DCD6:
@@ -42055,7 +42055,7 @@ MOD06_0224DE60: ; 0x0224DE60
add r0, r4, #0
mov r2, #3
mov r3, #1
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [sp, #0x14]
bl ScrStrBufs_new
str r0, [r6, #8]
@@ -42106,12 +42106,12 @@ _0224DEE6:
ldr r0, [r6, #8]
bl ScrStrBufs_delete
ldr r0, [r6, #4]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, [r6, #4]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r6, #4]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
mov r0, #0
str r0, [r6]
_0224DF18:
@@ -42230,7 +42230,7 @@ _0224DFC0:
add r0, r4, #0
mov r2, #3
mov r3, #0x11
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [sp, #0x14]
bl ScrStrBufs_new
mov r1, #0x49
@@ -42447,12 +42447,12 @@ _0224E1C0:
add r2, r1, #0
bl DestroyListMenu
ldr r0, [r6, #4]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, [r6, #4]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r6, #4]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
mov r0, #1
str r0, [r6]
_0224E1E2:
@@ -42780,10 +42780,10 @@ _0224E448:
ldr r0, [r5, #4]
mov r1, #3
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r5, #4]
mov r1, #3
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r3, r4, r5, pc}
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index 80472fdf..efb8e257 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -146,7 +146,7 @@ MOD07_02211F34: ; 0x02211F34
bl MOD07_02211F14
ldr r0, [r4]
ldr r0, [r0, #0x24]
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0xc]
ldr r0, [r4]
ldr r0, [r0, #0x24]
@@ -423,7 +423,7 @@ MOD07_022121AC: ; 0x022121AC
add r4, r0, #0
ldr r0, [r4, #0xc]
mov r1, #3
- bl FUN_02017B48
+ bl Bg_GetXpos
cmp r0, #0x18
bgt _02212248
ldr r1, _02212370 ; =0x00000B82
@@ -437,13 +437,13 @@ MOD07_022121AC: ; 0x022121AC
ldr r0, [r4, #0xc]
mov r1, #3
mov r3, #0x18
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r2, #0
add r3, r2, #0
ldr r0, [r4, #0xc]
mov r1, #2
sub r3, #0x18
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r1, #0
add r0, r4, #0
add r2, r1, #0
@@ -492,13 +492,13 @@ _02212248:
ldr r3, [r4, r3]
mov r1, #3
mov r2, #2
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r3, _02212374 ; =0x00000B74
ldr r0, [r4, #0xc]
ldr r3, [r4, r3]
mov r1, #2
mov r2, #1
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r3, _02212370 ; =0x00000B82
mov r1, #0
ldrb r0, [r4, r3]
@@ -669,23 +669,23 @@ _022123B4:
mov r1, #3
mov r2, #0
mov r3, #0x18
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r2, #0
add r3, r2, #0
ldr r0, [r5, #0xc]
mov r1, #2
sub r3, #0x18
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r5, #0xc]
add r2, r1, #0
mov r3, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5, #0xc]
mov r1, #2
mov r2, #3
mov r3, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r1, #0
add r0, r5, #0
add r2, r1, #0
@@ -798,23 +798,23 @@ _022124CC:
mov r1, #3
mov r2, #0
add r3, #0x18
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
add r3, r6, #0
ldr r0, [r5, #0xc]
mov r1, #2
mov r2, #0
sub r3, #0x18
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r1, #3
ldr r0, [r5, #0xc]
add r2, r1, #0
add r3, r4, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5, #0xc]
mov r1, #2
mov r2, #3
add r3, r4, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
add r0, r5, #0
mov r1, #0
add r2, r6, #0
@@ -921,12 +921,12 @@ _022125DE:
mov r1, #3
mov r2, #1
mov r3, #0x10
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r1, #2
ldr r0, [r4, #0xc]
add r2, r1, #0
mov r3, #0x10
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r2, _022126A4 ; =0x00000B82
mov r1, #0
ldrb r0, [r4, r2]
@@ -1086,7 +1086,7 @@ MOD07_02212720: ; 0x02212720
ldr r3, _02212818 ; =0x02214960
add r2, r1, #0
ldrb r3, [r3, r5]
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r3, _02212814 ; =0x00000B82
ldr r0, [r4, #0xc]
ldrb r3, [r4, r3]
@@ -1095,7 +1095,7 @@ MOD07_02212720: ; 0x02212720
lsl r5, r3, #1
ldr r3, _02212818 ; =0x02214960
ldrb r3, [r3, r5]
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r2, _02212814 ; =0x00000B82
mov r1, #0
ldrb r2, [r4, r2]
@@ -1206,7 +1206,7 @@ MOD07_02212824: ; 0x02212824
ldr r3, _0221294C ; =0x02214960
mov r2, #1
ldrb r3, [r3, r5]
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r3, _02212948 ; =0x00000B82
ldr r0, [r4, #0xc]
ldrb r3, [r4, r3]
@@ -1215,7 +1215,7 @@ MOD07_02212824: ; 0x02212824
lsl r5, r3, #1
ldr r3, _0221294C ; =0x02214960
ldrb r3, [r3, r5]
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r2, _02212948 ; =0x00000B82
mov r1, #0
ldrb r2, [r4, r2]
@@ -1868,7 +1868,7 @@ MOD07_02212D68: ; 0x02212D68
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r0, [r4, #8]
bl FUN_0200372C
bl FUN_0201C30C
@@ -1897,7 +1897,7 @@ MOD07_02212D98: ; 0x02212D98
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _02212E58 ; =0x02214A2C
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -1912,16 +1912,16 @@ MOD07_02212D98: ; 0x02212D98
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #3
add r3, r1, #0
ldr r0, [r4, #0xc]
mov r2, #0
add r3, #0xfd
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r5, _02212E5C ; =0x02214A48
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -1936,16 +1936,16 @@ MOD07_02212D98: ; 0x02212D98
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r3, #0xff
ldr r0, [r4, #0xc]
mov r1, #2
mov r2, #0
mvn r3, r3
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r5, _02212E60 ; =0x02214A64
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -1960,10 +1960,10 @@ MOD07_02212D98: ; 0x02212D98
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #2
mov r1, #0
bl GX_EngineAToggleLayers
@@ -1984,13 +1984,13 @@ MOD07_02212E64: ; 0x02212E64
bl GX_EngineAToggleLayers
ldr r0, [r4, #0xc]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
bl FreeToHeap
pop {r4, pc}
@@ -2063,7 +2063,7 @@ MOD07_02212E90: ; 0x02212E90
bl FUN_02003108
ldr r1, _02212F28 ; =0x000018C6
mov r0, #1
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -2452,7 +2452,7 @@ MOD07_02213220: ; 0x02213220
add r1, r5, #0
mov r2, #8
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r1, #0
str r1, [sp]
mov r0, #0xff
@@ -2508,7 +2508,7 @@ MOD07_02213220: ; 0x02213220
mov r1, #0
bl FUN_02011A60
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -3203,7 +3203,7 @@ MOD07_02213858: ; 0x02213858
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _022138EC ; =0x02214A9C
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -3218,10 +3218,10 @@ MOD07_02213858: ; 0x02213858
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _022138F0 ; =0x02214A10
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -3236,10 +3236,10 @@ MOD07_02213858: ; 0x02213858
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _022138F4 ; =0x02214A80
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -3254,7 +3254,7 @@ MOD07_02213858: ; 0x02213858
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add sp, #0x64
pop {r4, r5, pc}
nop
@@ -3272,13 +3272,13 @@ MOD07_022138F8: ; 0x022138F8
bl GX_EngineAToggleLayers
ldr r0, [r4, #0xc]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
bl FreeToHeap
pop {r4, pc}
@@ -3327,7 +3327,7 @@ MOD07_02213924: ; 0x02213924
mov r3, #0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
ldr r1, [sp, #0x10]
ldr r0, _022139B4 ; =0x000004E4
ldr r1, [r1, #0xc]
@@ -3401,7 +3401,7 @@ _022139EE:
ldrb r3, [r6, #1]
ldr r0, [r5, #0xc]
mov r1, #2
- bl FUN_02018170
+ bl CopyToBgTilemapRect
mov r0, #0x86
lsl r0, r0, #2
ldrh r0, [r7, r0]
@@ -3419,7 +3419,7 @@ _022139EE:
ldrb r3, [r6, #1]
ldr r0, [r5, #0xc]
mov r1, #2
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
cmp r4, #3
bhs _02213A46
ldr r0, [r5]
@@ -3443,7 +3443,7 @@ _02213A54:
add r1, r5, r1
mov r2, #0x20
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
b _02213A7A
_02213A68:
ldr r1, _02213A9C ; =0x000004E4
@@ -3453,7 +3453,7 @@ _02213A68:
add r1, r5, r1
mov r2, #0x20
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
_02213A7A:
add r4, r4, #1
add r7, #0x18
@@ -3462,7 +3462,7 @@ _02213A7A:
blo _022139C8
ldr r0, [r5, #0xc]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -3478,7 +3478,7 @@ MOD07_02213AA0: ; 0x02213AA0
ldr r0, [r4, #0xc]
str r1, [sp]
add r1, r2, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r6, r0, #0
ldr r0, [r4]
add r0, #0x29
@@ -3527,10 +3527,10 @@ MOD07_02213AEC: ; 0x02213AEC
bl MOD07_02213AA0
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r4, pc}
.align 2, 0
_02213B18: .word 0x00000544
@@ -3565,7 +3565,7 @@ MOD07_02213B20: ; 0x02213B20
ldr r0, [r5, #0xc]
mov r1, #1
lsr r2, r2, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r0, _02213BE8 ; =0x00000844
lsl r2, r6, #0x18
str r4, [sp]
@@ -3582,7 +3582,7 @@ MOD07_02213B20: ; 0x02213B20
ldr r0, [r5, #0xc]
mov r1, #2
lsr r2, r2, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
b _02213BCE
_02213B80:
ldr r2, _02213BE4 ; =0x00000544
@@ -3603,7 +3603,7 @@ _02213B80:
ldr r0, [r5, #0xc]
mov r1, #1
add r3, r2, #0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r1, _02213BE8 ; =0x00000844
mov r2, #0
str r4, [sp]
@@ -3621,14 +3621,14 @@ _02213B80:
ldr r0, [r5, #0xc]
mov r1, #2
add r3, r2, #0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
_02213BCE:
ldr r0, [r5, #0xc]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0xc]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
nop
@@ -4445,7 +4445,7 @@ _02214258:
ldr r0, [r7, #0xc]
add r1, r5, #0
add r2, r4, #0
- bl FUN_02019150
+ bl AddWindow
add r6, r6, #1
add r4, #8
add r5, #0x10
@@ -4463,7 +4463,7 @@ MOD07_02214274: ; 0x02214274
add r5, #0x10
_0221427C:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #0x18
@@ -4817,7 +4817,7 @@ _02214558:
add r1, r5, r1
mov r2, #4
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
b _0221459E
_02214570:
ldrb r3, [r4, #9]
@@ -4829,7 +4829,7 @@ _02214570:
add r1, r5, r1
mov r2, #4
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
b _0221459E
_02214588:
ldrb r3, [r4, #9]
@@ -4841,7 +4841,7 @@ _02214588:
add r1, r5, r1
mov r2, #4
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
_0221459E:
ldr r0, [sp, #8]
ldrh r1, [r7, r6]
@@ -4941,16 +4941,16 @@ MOD07_02214600: ; 0x02214600
add r1, r6, #0
bl MOD07_02214510
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, r4
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, r4
add r0, #0x20
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, r4
add r0, #0x30
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
index a02c3f48..ed457683 100644
--- a/arm9/modules/08/asm/module_08.s
+++ b/arm9/modules/08/asm/module_08.s
@@ -616,7 +616,7 @@ _022122C6:
add r0, #0xc4
ldr r0, [r0]
mov r1, #0
- bl FUN_02018884
+ bl GetBgPriority
mov r1, #0x1a
lsl r1, r1, #4
strb r0, [r4, r1]
@@ -624,21 +624,21 @@ _022122C6:
add r0, #0xc4
ldr r0, [r0]
mov r1, #1
- bl FUN_02018884
+ bl GetBgPriority
ldr r1, _02212374 ; =0x000001A1
strb r0, [r4, r1]
add r0, r4, #0
add r0, #0xc4
ldr r0, [r0]
mov r1, #2
- bl FUN_02018884
+ bl GetBgPriority
ldr r1, _02212378 ; =0x000001A2
strb r0, [r4, r1]
add r0, r4, #0
add r0, #0xc4
ldr r0, [r0]
mov r1, #3
- bl FUN_02018884
+ bl GetBgPriority
ldr r1, _0221237C ; =0x000001A3
mov r3, #0
strb r0, [r4, r1]
@@ -1816,7 +1816,7 @@ _02212AE8:
lsr r0, r0, #0x18
lsl r1, r1, #0xe
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
bl MOD08_02212490
add r4, r0, #0
@@ -1827,10 +1827,10 @@ _02212AE8:
lsl r1, r1, #0x18
add r0, r4, #0
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
b _02212B40
_02212B3C:
bl MOD12_02233560
@@ -1839,47 +1839,47 @@ _02212B40:
lsl r1, r1, #4
ldrb r1, [r5, r1]
mov r0, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r1, _02212BB8 ; =0x000001A1
mov r0, #1
ldrb r1, [r5, r1]
- bl FUN_020178BC
+ bl SetBgPriority
ldr r1, _02212BBC ; =0x000001A2
mov r0, #2
ldrb r1, [r5, r1]
- bl FUN_020178BC
+ bl SetBgPriority
ldr r1, _02212BC0 ; =0x000001A3
mov r0, #3
ldrb r1, [r5, r1]
- bl FUN_020178BC
+ bl SetBgPriority
add r0, r5, #0
add r0, #0xc4
mov r2, #0
ldr r0, [r0]
mov r1, #2
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r5, #0
add r0, #0xc4
ldr r0, [r0]
mov r1, #2
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r5, #0
add r0, #0xc4
mov r2, #0
ldr r0, [r0]
mov r1, #3
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r5, #0
add r0, #0xc4
mov r1, #3
ldr r0, [r0]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0
str r0, [r5, #0x10]
pop {r3, r4, r5, r6, r7, pc}
@@ -3052,13 +3052,13 @@ _02213410:
mov r1, #2
mov r2, #0
neg r3, r6
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
sub r4, #0x28
ldr r0, [r5]
mov r1, #2
mov r2, #3
neg r3, r4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_02213452:
pop {r4, r5, r6, pc}
@@ -3156,14 +3156,14 @@ _022134FE:
mov r7, #0xc8
_02213500:
mov r0, #2
- bl FUN_020187B0
+ bl BgGetCharPtr
mov r2, #0x19
mov r1, #0
lsl r2, r2, #8
bl MI_CpuFill8
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0
str r0, [sp]
add r0, r5, #0
@@ -3173,7 +3173,7 @@ _02213500:
ldr r2, [sp, #0x18]
mov r1, #2
lsl r3, r3, #6
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -3262,7 +3262,7 @@ _022135AC:
mov r1, #2
mov r2, #0
neg r3, r7
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r5, #0
add r0, #0xc4
sub r4, #0x28
@@ -3270,17 +3270,17 @@ _022135AC:
mov r1, #2
mov r2, #3
neg r3, r4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r5, #0
bl MOD08_02215574
add r1, r0, #0
lsl r1, r1, #0x18
mov r0, #2
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
@@ -3296,7 +3296,7 @@ MOD08_02213630: ; 0x02213630
add r0, r0, #4
str r0, [r4, #0x18]
mov r0, #2
- bl FUN_020187B0
+ bl BgGetCharPtr
mov r2, #0x19
mov r1, #0
lsl r2, r2, #8
@@ -4166,7 +4166,7 @@ MOD08_02213C94: ; 0x02213C94
lsl r1, r4, #0x18
ldr r0, [r0]
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r5, #0
mov r6, #2
bl MOD08_02212004
@@ -4364,14 +4364,14 @@ _02213E50:
lsl r1, r4, #0x18
mov r0, #3
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
lsl r1, r4, #0x18
mov r0, #2
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
ldrb r0, [r5, #5]
add r0, r0, #1
strb r0, [r5, #5]
@@ -4383,7 +4383,7 @@ _02213E8E:
ldr r0, [r0]
mov r2, #2
add r3, r1, #0
- bl FUN_020170F4
+ bl SetBgControlParam
ldr r0, [r5, #0x48]
bl MOD08_02212004
cmp r0, #1
@@ -4394,7 +4394,7 @@ _02213E8E:
ldr r0, [r0]
mov r1, #3
add r3, r2, #0
- bl FUN_020170F4
+ bl SetBgControlParam
_02213EB8:
ldr r1, [r5, #0x48]
ldr r3, [r5, #0x10]
@@ -4491,7 +4491,7 @@ _02213F56: ; jump table
_02213F60:
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
ldrb r0, [r4, #5]
add r0, r0, #1
strb r0, [r4, #5]
@@ -4506,11 +4506,11 @@ _02213F6E:
lsl r1, r5, #0x18
mov r0, #3
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
lsl r1, r5, #0x18
mov r0, #2
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldrb r0, [r4, #0xa]
mov r1, #4
mov r2, #8
@@ -4591,21 +4591,21 @@ _0221401E:
ldr r0, [r0]
mov r1, #3
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x48]
mov r1, #3
add r0, #0xc4
ldr r0, [r0]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x48]
mov r1, #3
add r0, #0xc4
ldr r0, [r0]
mov r2, #2
mov r3, #4
- bl FUN_020170F4
+ bl SetBgControlParam
ldr r0, [r4, #0x48]
bl MOD08_02212004
cmp r0, #0
@@ -4616,7 +4616,7 @@ _0221401E:
ldr r0, [r0]
mov r2, #0
mov r3, #1
- bl FUN_020170F4
+ bl SetBgControlParam
ldr r0, [r4, #0x48]
mov r1, #3
bl MOD08_02215638
@@ -4800,7 +4800,7 @@ _022141BE:
ldr r0, [r0]
mov r1, #3
add r3, r2, #0
- bl FUN_020170F4
+ bl SetBgControlParam
ldr r1, [r4, #0x48]
ldr r3, [r4, #0x10]
add r0, r4, #0
@@ -4981,7 +4981,7 @@ _02214324:
_02214338:
mov r0, #3
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x48]
bl MOD08_02212004
cmp r0, #0
@@ -4992,7 +4992,7 @@ _02214338:
ldr r0, [r0]
mov r2, #0
mov r3, #1
- bl FUN_020170F4
+ bl SetBgControlParam
ldr r0, [r4, #0x48]
mov r1, #3
bl MOD08_02215638
@@ -5060,7 +5060,7 @@ _022143BE:
bl GfGfxLoader_LoadScrnData
mov r0, #3
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
ldrb r0, [r4, #5]
add r0, r0, #1
strb r0, [r4, #5]
@@ -5071,14 +5071,14 @@ _022143F0:
ldr r0, [r0]
mov r1, #3
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x48]
mov r1, #3
add r0, #0xc4
ldr r0, [r0]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldrb r0, [r4, #0xd]
ldr r2, [r4, #0x48]
cmp r0, #0
@@ -5208,7 +5208,7 @@ _022144DA:
ldr r0, [r4]
lsr r1, r1, #0x18
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_02214508:
mov r0, #0xa
ldrsh r0, [r4, r0]
@@ -5221,7 +5221,7 @@ _02214508:
ldr r0, [r4]
lsr r1, r1, #0x18
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_02214522:
pop {r3, r4, r5, pc}
@@ -5546,11 +5546,11 @@ MOD08_0221477C: ; 0x0221477C
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
lsl r0, r4, #0x18
lsr r0, r0, #0x18
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r5, #0
bl MOD08_02212004
cmp r0, #1
@@ -5562,7 +5562,7 @@ MOD08_0221477C: ; 0x0221477C
lsr r1, r1, #0x18
mov r2, #2
mov r3, #4
- bl FUN_020170F4
+ bl SetBgControlParam
b _022147E4
_022147C0:
add r0, r5, #0
@@ -5572,7 +5572,7 @@ _022147C0:
lsr r1, r1, #0x18
mov r2, #0
mov r3, #1
- bl FUN_020170F4
+ bl SetBgControlParam
add r0, r5, #0
add r0, #0xc4
lsl r1, r4, #0x18
@@ -5580,14 +5580,14 @@ _022147C0:
lsr r1, r1, #0x18
mov r2, #2
mov r3, #4
- bl FUN_020170F4
+ bl SetBgControlParam
_022147E4:
add r0, r5, #0
add r0, #0xc4
lsl r1, r4, #0x18
ldr r0, [r0]
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r5, #0
bl MOD08_02212004
cmp r0, #1
@@ -5646,7 +5646,7 @@ MOD08_02214850: ; 0x02214850
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
add r0, r5, #0
bl MOD08_02212004
cmp r0, #1
@@ -5658,7 +5658,7 @@ MOD08_02214850: ; 0x02214850
lsr r1, r1, #0x18
mov r2, #2
mov r3, #3
- bl FUN_020170F4
+ bl SetBgControlParam
b _022148AC
_02214888:
add r0, r5, #0
@@ -5668,7 +5668,7 @@ _02214888:
ldr r0, [r0]
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_020170F4
+ bl SetBgControlParam
add r0, r5, #0
add r0, #0xc4
lsl r1, r4, #0x18
@@ -5676,13 +5676,13 @@ _02214888:
lsr r1, r1, #0x18
mov r2, #2
mov r3, #3
- bl FUN_020170F4
+ bl SetBgControlParam
_022148AC:
add r5, #0xc4
lsl r1, r4, #0x18
ldr r0, [r5]
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
pop {r3, r4, r5, pc}
.align 2, 0
@@ -7555,7 +7555,7 @@ MOD08_02215638: ; 0x02215638
ldr r0, [r0]
lsr r1, r1, #0x18
lsl r3, r3, #0x10
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
pop {r3, pc}
.align 2, 0
@@ -15184,7 +15184,7 @@ _02218F32:
ldr r0, [r5, #0x18]
mov r1, #3
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r3, r4, r5, r6, r7, pc}
_02218F4E:
ldr r0, [r5, #8]
@@ -15287,7 +15287,7 @@ _02219008:
bl G2x_SetBlendAlpha_
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
ldrb r0, [r4, #0x1c]
add r0, r0, #1
strb r0, [r4, #0x1c]
@@ -15377,7 +15377,7 @@ _022190A4:
_022190B2:
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x20]
add r1, r5, #0
bl MOD08_02212438
@@ -15453,13 +15453,13 @@ _02219136:
ldr r0, [r4, #0x30]
mov r1, #2
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0xc
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x30]
mov r1, #2
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r3, r4, r5, pc}
.align 2, 0
_02219154: .word 0x04000050
@@ -15565,7 +15565,7 @@ _02219228:
strh r0, [r4, #0x18]
mov r0, #2
str r1, [r4, #4]
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r5, #0
mov r1, #0
bl MOD08_02212498
@@ -15605,7 +15605,7 @@ _02219228:
bl FUN_020030E8
ldr r0, [r4, #0x30]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r5, #0
mov r6, #2
bl MOD08_02212004
@@ -15645,13 +15645,13 @@ _022192BC:
ldr r0, [r4, #0x30]
mov r1, #2
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0xc
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x30]
mov r1, #2
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x20]
ldr r1, _02219310 ; =MOD08_02218FE8
add r2, r4, #0
@@ -15690,7 +15690,7 @@ _02219334:
bl G2x_SetBlendAlpha_
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
ldrb r0, [r4, #0x1c]
add r0, r0, #1
strb r0, [r4, #0x1c]
@@ -15778,7 +15778,7 @@ _022193CC:
_022193DA:
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x20]
add r1, r5, #0
bl MOD08_02212438
@@ -15854,13 +15854,13 @@ _0221945E:
ldr r0, [r4, #0x30]
mov r1, #2
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0xc
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x30]
mov r1, #2
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r3, r4, r5, pc}
.align 2, 0
_0221947C: .word 0x04000050
@@ -15969,7 +15969,7 @@ _02219550:
strh r0, [r4, #0x18]
mov r0, #2
str r1, [r4, #4]
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r5, #0
mov r1, #0
bl MOD08_02212498
@@ -16009,7 +16009,7 @@ _02219550:
bl FUN_020030E8
ldr r0, [r4, #0x30]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r5, #0
mov r6, #2
bl MOD08_02212004
@@ -16049,13 +16049,13 @@ _022195EA:
ldr r0, [r4, #0x30]
mov r1, #2
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0xc
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x30]
mov r1, #2
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x20]
ldr r1, _0221963C ; =MOD08_02219314
add r2, r4, #0
@@ -20509,7 +20509,7 @@ _0221BA38:
ldr r0, [r4, #0x28]
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_0221BA50:
ldr r0, [r4, #0x24]
cmp r0, #0
@@ -20520,7 +20520,7 @@ _0221BA50:
lsr r1, r1, #0x18
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_0221BA66:
ldrb r0, [r4, #1]
add sp, #4
@@ -20540,7 +20540,7 @@ _0221BA70:
ldr r0, [r4, #0x28]
lsr r1, r1, #0x18
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_0221BA8C:
mov r3, #0xd6
ldrsh r0, [r4, r3]
@@ -20554,7 +20554,7 @@ _0221BA8C:
ldr r0, [r4, #0x28]
lsr r1, r1, #0x18
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add sp, #4
pop {r3, r4, pc}
_0221BAAC:
@@ -26110,7 +26110,7 @@ _0221E84C:
ldr r0, [r4, #8]
mov r1, #3
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_0221E866:
@@ -26622,13 +26622,13 @@ _0221EC7A:
ldr r0, [r5, #0x14]
mov r1, #3
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0x4e
mov r1, #3
ldrsh r3, [r5, r3]
ldr r0, [r5, #0x14]
add r2, r1, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r3, r4, r5, r6, r7, pc}
_0221ECA0:
ldr r0, [r5, #4]
@@ -29589,7 +29589,7 @@ MOD08_0222042C: ; 0x0222042C
bl MOD08_0221477C
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #8]
ldr r1, _022204C8 ; =MOD08_02220304
add r2, r4, #0
@@ -31969,7 +31969,7 @@ _022218B0:
lsl r1, r1, #0x18
mov r0, #2
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
_022218C4:
ldr r0, [r4, #0x1c]
mov r1, #0
@@ -33520,7 +33520,7 @@ _0222255E:
mov r1, #2
mov r2, #0
neg r3, r3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4]
bl MOD08_02212490
mov r3, #0x12
@@ -33528,7 +33528,7 @@ _0222255E:
mov r1, #2
mov r2, #3
neg r3, r3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #8]
add r0, r0, #1
str r0, [r4, #8]
@@ -33578,14 +33578,14 @@ _022225CE:
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
bl MOD08_02215574
add r1, r0, #0
lsl r1, r1, #0x18
mov r0, #0
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
mov r1, #1
bl MOD08_02215588
@@ -33598,7 +33598,7 @@ _022225CE:
lsr r0, r0, #0x18
lsl r1, r1, #0xe
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4]
bl MOD08_02212490
add r5, r0, #0
@@ -33609,7 +33609,7 @@ _022225CE:
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
add r1, r6, #0
bl MOD08_02212438
@@ -33762,7 +33762,7 @@ _022226FC:
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
bl MOD08_02215574
add r1, r0, #0
@@ -33770,7 +33770,7 @@ _022226FC:
lsl r1, r1, #0x18
mov r0, #0
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
_022227AE:
ldr r0, [sp, #0x14]
add r1, r4, #0
@@ -34338,14 +34338,14 @@ _02222C3E:
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
bl MOD08_02215574
add r1, r0, #0
lsl r1, r1, #0x18
mov r0, #0
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4, #0x10]
mov r1, #6
mov r2, #0
@@ -34362,7 +34362,7 @@ _02222C3E:
lsr r0, r0, #0x18
lsl r1, r1, #0xe
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4]
bl MOD08_02212490
add r5, r0, #0
@@ -34373,7 +34373,7 @@ _02222C3E:
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
add r1, r6, #0
bl MOD08_02212438
@@ -34466,7 +34466,7 @@ _02222D6A:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
bl MOD08_02215574
add r1, r0, #0
@@ -34474,7 +34474,7 @@ _02222D6A:
lsl r1, r1, #0x18
mov r0, #0
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4, #0x48]
mov r1, #0
bl FUN_0200C644
@@ -40527,14 +40527,14 @@ _02225E68:
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
bl MOD08_02215574
add r1, r0, #0
lsl r1, r1, #0x18
mov r0, #0
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
mov r1, #1
bl MOD08_02215588
@@ -40547,7 +40547,7 @@ _02225E68:
lsr r0, r0, #0x18
lsl r1, r1, #0xe
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4]
bl MOD08_02212490
add r5, r0, #0
@@ -40558,7 +40558,7 @@ _02225E68:
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
bl FreeToHeap
ldr r0, [r4]
@@ -40647,7 +40647,7 @@ MOD08_02225EFC: ; 0x02225EFC
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
bl MOD08_02215574
add r1, r0, #0
@@ -40655,7 +40655,7 @@ MOD08_02225EFC: ; 0x02225EFC
lsl r1, r1, #0x18
mov r0, #0
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
_02225FD0:
ldr r0, [r4]
ldr r1, _02225FDC ; =MOD08_02225E14
@@ -42728,7 +42728,7 @@ MOD08_02227068: ; 0x02227068
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -42760,7 +42760,7 @@ MOD08_02227068: ; 0x02227068
lsl r1, r4, #0x18
ldr r0, [r5, #0x2c]
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -42860,7 +42860,7 @@ _02227180:
bne _022271B2
ldr r0, [r4, #0x2c]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4, #0x34]
mov r1, #0
bl FUN_0200C644
@@ -42899,12 +42899,12 @@ _022271C0:
ldr r0, [r4, #0x2c]
mov r1, #2
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x2c]
mov r1, #2
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -42934,13 +42934,13 @@ _0222720E:
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x2c]
mov r1, #2
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0x12
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x2c]
mov r1, #2
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x34]
bl FUN_0200C5A8
ldr r0, [r4, #0x38]
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index 003e2dc8..050abbcc 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -2027,7 +2027,7 @@ MOD09_02212E4C: ; 0x02212E4C
stmia r3!, {r0, r1}
add r0, r2, #0
mov r1, #1
- bl FUN_02016BF4
+ bl SetScreenModeAndDisable
ldr r5, _02212F4C ; =0x0221AF48
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -2044,7 +2044,7 @@ MOD09_02212E4C: ; 0x02212E4C
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _02212F50 ; =0x0221AF80
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -2061,7 +2061,7 @@ MOD09_02212E4C: ; 0x02212E4C
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _02212F54 ; =0x0221AF9C
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -2078,12 +2078,12 @@ MOD09_02212E4C: ; 0x02212E4C
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x79
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02212F58 ; =0x0221AF64
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -2100,34 +2100,34 @@ MOD09_02212E4C: ; 0x02212E4C
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x79
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r3, [r4]
mov r0, #5
ldr r3, [r3, #0xc]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [r4]
mov r0, #4
ldr r3, [r3, #0xc]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x79
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #0x79
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x80
pop {r3, r4, r5, pc}
.align 2, 0
@@ -2146,16 +2146,16 @@ MOD09_02212F5C: ; 0x02212F5C
bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
@@ -3156,7 +3156,7 @@ _02213778:
lsl r0, r0, #2
ldr r0, [r6, r0]
mov r1, #7
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_0221378E:
pop {r3, r4, r5, r6, r7, pc}
@@ -3181,7 +3181,7 @@ MOD09_02213790: ; 0x02213790
mov r1, #7
add r2, r5, #0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -3208,7 +3208,7 @@ MOD09_022137C0: ; 0x022137C0
mov r1, #7
add r2, r4, #0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0xe
str r0, [sp]
mov r0, #1
@@ -3226,7 +3226,7 @@ MOD09_022137C0: ; 0x022137C0
mov r1, #7
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0xf
str r0, [sp]
mov r0, #1
@@ -3244,7 +3244,7 @@ MOD09_022137C0: ; 0x022137C0
mov r1, #7
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0xf
str r0, [sp]
mov r0, #1
@@ -3261,7 +3261,7 @@ MOD09_022137C0: ; 0x022137C0
mov r1, #7
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
@@ -3338,7 +3338,7 @@ _022138E2:
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #7
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_022138EE:
pop {r3, r4, r5, r6, r7, pc}
@@ -3353,13 +3353,13 @@ MOD09_022138F0: ; 0x022138F0
ldr r0, [r5, r0]
mov r1, #4
mov r2, #0
- bl FUN_0201878C
+ bl BgFillTilemapBufferAndSchedule
mov r0, #0x79
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #5
mov r2, #0
- bl FUN_0201878C
+ bl BgFillTilemapBufferAndSchedule
add r0, r5, #0
add r1, r4, #0
bl MOD09_02216D80
@@ -3425,14 +3425,14 @@ _02213976:
lsr r1, r1, #0x18
add r2, #0xc
mov r3, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
mov r0, #0x79
lsl r0, r0, #2
add r1, r4, #6
lsl r1, r1, #0x18
ldr r0, [r5, r0]
lsr r1, r1, #0x18
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r7, #0
bl FreeToHeap
add r4, r4, #1
@@ -3758,15 +3758,15 @@ MOD09_02213C34: ; 0x02213C34
ldr r0, _02213C68 ; =0x00002070
ldr r0, [r4, r0]
add r0, #0xa0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
ldr r0, _02213C68 ; =0x00002070
ldr r0, [r4, r0]
add r0, #0x60
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
ldr r0, _02213C68 ; =0x00002070
ldr r0, [r4, r0]
add r0, #0x70
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
pop {r4, pc}
nop
_02213C64: .word 0x00002020
@@ -3781,7 +3781,7 @@ MOD09_02213C6C: ; 0x02213C6C
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #7
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r4, pc}
.align 2, 0
@@ -3825,7 +3825,7 @@ _02213CC4:
ldr r0, [r7, r0]
add r1, r5, #0
add r2, r4, #0
- bl FUN_02019150
+ bl AddWindow
add r6, r6, #1
add r4, #8
add r5, #0x10
@@ -3941,7 +3941,7 @@ _02213D90:
lsl r2, r5, #3
ldr r0, [r4, r0]
add r2, r6, r2
- bl FUN_02019150
+ bl AddWindow
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
@@ -3974,7 +3974,7 @@ MOD09_02213DE0: ; 0x02213DE0
bx r3
nop
_02213DF0: .word 0x00002070
-_02213DF4: .word FUN_020191A4
+_02213DF4: .word WindowArray_dtor
thumb_func_start MOD09_02213DF8
MOD09_02213DF8: ; 0x02213DF8
@@ -3984,13 +3984,13 @@ MOD09_02213DF8: ; 0x02213DF8
ldr r0, [r5, r1]
add r1, r1, #4
ldrb r1, [r5, r1]
- bl FUN_020191A4
+ bl WindowArray_dtor
ldr r0, _02213E24 ; =0x00002050
mov r4, #0
add r5, r5, r0
_02213E0E:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #2
@@ -4235,7 +4235,7 @@ _02214002:
bl String_dtor
_02214008:
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -4280,7 +4280,7 @@ MOD09_02214038: ; 0x02214038
ldr r0, _0221407C ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -4340,7 +4340,7 @@ MOD09_02214080: ; 0x02214080
ldr r0, _022140F8 ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -4388,7 +4388,7 @@ _02214144:
ldr r0, [sp, #8]
lsl r0, r0, #4
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_02214156:
@@ -4451,7 +4451,7 @@ _0221415E:
ldr r0, _022141D4 ; =0x00002070
ldr r0, [r4, r0]
add r0, r0, r5
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -4508,7 +4508,7 @@ MOD09_022141D8: ; 0x022141D8
ldr r0, _0221425C ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -4579,7 +4579,7 @@ _022142BA:
ldr r0, _022142F8 ; =0x00002070
ldr r0, [r4, r0]
add r0, r0, r5
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -4655,7 +4655,7 @@ _02214362:
add r0, r7, #0
bl String_dtor
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -4695,7 +4695,7 @@ MOD09_022143A0: ; 0x022143A0
ldr r0, _022143F4 ; =0x00002070
ldr r0, [r4, r0]
add r0, r0, r5
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
@@ -4740,7 +4740,7 @@ MOD09_022143F8: ; 0x022143F8
bl String_dtor
ldr r0, _02214450 ; =0x00002050
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -4786,7 +4786,7 @@ MOD09_0221445C: ; 0x0221445C
add r0, r7, #0
bl String_dtor
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -4975,21 +4975,21 @@ _022145F4:
mov r0, #0x13
lsl r0, r0, #4
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02214684 ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r7
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02214684 ; =0x00002070
ldr r1, [r5, r0]
mov r0, #5
lsl r0, r0, #6
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02214684 ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x24
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -5094,11 +5094,11 @@ MOD09_02214694: ; 0x02214694
ldr r0, _02214780 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0xe0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02214780 ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
@@ -5203,11 +5203,11 @@ MOD09_02214790: ; 0x02214790
ldr r0, _0221487C ; =0x00002070
ldr r0, [r5, r0]
add r0, #0xf0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _0221487C ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
@@ -5315,11 +5315,11 @@ MOD09_0221488C: ; 0x0221488C
mov r0, #1
lsl r0, r0, #8
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _0221497C ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -5427,11 +5427,11 @@ MOD09_0221498C: ; 0x0221498C
mov r0, #0x11
lsl r0, r0, #4
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02214A7C ; =0x00002070
ldr r0, [r4, r0]
add r0, r0, r5
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -5539,11 +5539,11 @@ MOD09_02214A8C: ; 0x02214A8C
mov r0, #0x12
lsl r0, r0, #4
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02214B7C ; =0x00002070
ldr r0, [r4, r0]
add r0, r0, r5
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -5716,11 +5716,11 @@ MOD09_02214B8C: ; 0x02214B8C
ldr r0, _02214D14 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0xd0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02214D14 ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -5777,7 +5777,7 @@ MOD09_02214D24: ; 0x02214D24
ldr r0, _02214D9C ; =0x00002070
ldr r0, [r5, r0]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -5812,7 +5812,7 @@ MOD09_02214DA0: ; 0x02214DA0
add r0, r6, #0
bl String_dtor
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@@ -5914,7 +5914,7 @@ _02214E42:
bl String_dtor
_02214EB8:
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -5948,7 +5948,7 @@ MOD09_02214ED0: ; 0x02214ED0
add r0, r6, #0
bl String_dtor
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@@ -6050,7 +6050,7 @@ _02214F72:
bl String_dtor
_02214FE8:
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -6093,7 +6093,7 @@ MOD09_02215000: ; 0x02215000
add r0, r7, #0
bl DestroyMsgData
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -6140,7 +6140,7 @@ MOD09_02215060: ; 0x02215060
ldr r0, [sp, #0x10]
bl DestroyMsgData
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -6186,7 +6186,7 @@ MOD09_022150C8: ; 0x022150C8
add r0, r7, #0
bl String_dtor
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -6247,7 +6247,7 @@ _0221516C:
add r0, r6, #0
bl String_dtor
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
@@ -6378,7 +6378,7 @@ MOD09_022151A8: ; 0x022151A8
ldr r0, [sp, #0x2c]
bl String_dtor
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -6434,7 +6434,7 @@ _02215306:
add r0, r6, #0
bl String_dtor
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -6481,7 +6481,7 @@ _02215368:
add r0, r4, #0
bl String_dtor
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -6625,7 +6625,7 @@ MOD09_022153B0: ; 0x022153B0
add r0, r7, #0
bl String_dtor
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -6717,7 +6717,7 @@ MOD09_022154FC: ; 0x022154FC
ldr r0, [sp, #0x14]
bl String_dtor
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
@@ -6930,11 +6930,11 @@ _0221576A:
ldr r0, _02215780 ; =0x00002070
ldr r0, [r4, r0]
add r0, #0x20
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02215780 ; =0x00002070
ldr r0, [r4, r0]
add r0, #0x30
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r4, pc}
.align 2, 0
_02215780: .word 0x00002070
@@ -7094,7 +7094,7 @@ _022158C0:
bl String_dtor
_022158C6:
ldr r0, [sp, #0x18]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -7224,22 +7224,22 @@ _022159C8:
ldr r1, [r5, r0]
ldr r0, [sp, #0x18]
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02215A20 ; =0x00002070
ldr r1, [r5, r0]
ldr r0, [sp, #0x14]
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02215A20 ; =0x00002070
ldr r1, [r5, r0]
ldr r0, [sp, #0x10]
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02215A20 ; =0x00002070
ldr r1, [r5, r0]
ldr r0, [sp, #0xc]
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r1, _02215A1C ; =0x00002075
mov r0, #1
ldrb r2, [r5, r1]
@@ -7753,23 +7753,23 @@ _02215E4C:
ldr r0, _02215EC4 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02215EC4 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x20
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02215EC4 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x30
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02215EC4 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x40
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02215EC4 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x50
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
@@ -8066,19 +8066,19 @@ _02216156:
ldr r0, _02216184 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02216184 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x20
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02216184 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x30
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _02216184 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x40
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
@@ -8184,7 +8184,7 @@ MOD09_022161B0: ; 0x022161B0
ldr r0, _02216304 ; =0x00002070
ldr r0, [r5, r0]
add r0, #0x40
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r1, [r5]
add r0, r1, #0
add r0, #0x34
@@ -11750,12 +11750,12 @@ MOD09_02217F88: ; 0x02217F88
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #6
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
mov r0, #0x79
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #6
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp, #0x18]
bl FreeToHeap
add sp, #0x1c
@@ -11824,7 +11824,7 @@ _0221803C:
ldrb r1, [r6, r1]
lsl r1, r1, #4
add r0, r0, r1
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r3, r4, r5, r6, r7, pc}
_02218070:
mov r4, #0
@@ -11845,7 +11845,7 @@ _02218072:
ldrb r0, [r6, r4]
lsl r0, r0, #4
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -13878,7 +13878,7 @@ MOD09_022190CC: ; 0x022190CC
stmia r3!, {r0, r1}
add r0, r2, #0
mov r1, #1
- bl FUN_02016BF4
+ bl SetScreenModeAndDisable
ldr r5, _0221918C ; =0x0221BBCC
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -13893,7 +13893,7 @@ MOD09_022190CC: ; 0x022190CC
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _02219190 ; =0x0221BBB0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -13908,10 +13908,10 @@ MOD09_022190CC: ; 0x022190CC
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02219194 ; =0x0221BB94
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -13926,28 +13926,28 @@ MOD09_022190CC: ; 0x022190CC
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r3, [r4]
mov r0, #5
ldr r3, [r3, #0xc]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [r4]
mov r0, #4
ldr r3, [r3, #0xc]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4, #4]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #4]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x64
pop {r4, r5, pc}
.align 2, 0
@@ -13965,13 +13965,13 @@ MOD09_02219198: ; 0x02219198
bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
@@ -14141,12 +14141,12 @@ _02219316:
ldr r0, [r4, #4]
mov r1, #6
add r3, r2, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r4, #4]
mov r1, #6
mov r2, #3
mov r3, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r4, pc}
_02219330:
mov r1, #6
@@ -14154,25 +14154,25 @@ _02219330:
ldr r0, [r4, #4]
mov r2, #0
add r3, #0xfa
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r4, #4]
mov r1, #6
mov r2, #3
mov r3, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r4, pc}
_0221934C:
mov r2, #0
ldr r0, [r4, #4]
mov r1, #6
add r3, r2, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #4]
mov r1, #6
add r3, #0xfd
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r4, pc}
thumb_func_start MOD09_02219368
@@ -14196,7 +14196,7 @@ MOD09_02219368: ; 0x02219368
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [r4, #4]
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
mov r0, #0x1c
str r0, [sp]
mov r0, #8
@@ -14211,7 +14211,7 @@ MOD09_02219368: ; 0x02219368
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [r4, #4]
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
_022193B2:
add sp, #0xc
pop {r3, r4, pc}
@@ -14230,11 +14230,11 @@ MOD09_022193BC: ; 0x022193BC
ldr r0, [r5, #4]
mov r1, #4
mov r2, #0
- bl FUN_0201878C
+ bl BgFillTilemapBufferAndSchedule
ldr r0, [r5, #4]
mov r1, #5
mov r2, #0
- bl FUN_0201878C
+ bl BgFillTilemapBufferAndSchedule
add r0, r5, #0
bl MOD09_02219510
add r0, r5, #0
@@ -14311,7 +14311,7 @@ MOD09_02219474: ; 0x02219474
ldr r0, [r4, #4]
ldr r2, _02219490 ; =0x0221BC2C
add r1, #0x1c
- bl FUN_02019150
+ bl AddWindow
ldr r1, _02219494 ; =0x0000114C
add r0, r4, #0
ldrb r1, [r4, r1]
@@ -14370,7 +14370,7 @@ _022194E2:
lsl r2, r4, #3
ldr r0, [r5, #4]
add r2, r6, r2
- bl FUN_02019150
+ bl AddWindow
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
@@ -14395,7 +14395,7 @@ MOD09_02219510: ; 0x02219510
ldrb r1, [r1]
bx r3
.align 2, 0
-_0221951C: .word FUN_020191A4
+_0221951C: .word WindowArray_dtor
thumb_func_start MOD09_02219520
MOD09_02219520: ; 0x02219520
@@ -14405,10 +14405,10 @@ MOD09_02219520: ; 0x02219520
add r1, #0x30
ldrb r1, [r1]
ldr r0, [r4, #0x2c]
- bl FUN_020191A4
+ bl WindowArray_dtor
add r4, #0x1c
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
.align 2, 0
@@ -14469,7 +14469,7 @@ MOD09_02219560: ; 0x02219560
ldr r0, [sp, #0x10]
bl String_dtor
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -14570,7 +14570,7 @@ _022195C4:
bl String_dtor
ldr r0, [r5, #0x2c]
add r0, #0x40
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_0221968A:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
@@ -14646,7 +14646,7 @@ MOD09_02219694: ; 0x02219694
bl String_dtor
_02219726:
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -14716,7 +14716,7 @@ MOD09_02219738: ; 0x02219738
bl String_dtor
_022197BA:
add r0, r4, r7
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -14795,7 +14795,7 @@ MOD09_0221983C: ; 0x0221983C
ldr r0, [r4, #4]
mov r1, #5
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r5, #0
_0221985E:
add r0, r4, #0
@@ -14945,7 +14945,7 @@ MOD09_02219884: ; 0x02219884
mov r0, #0x19
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -15104,7 +15104,7 @@ MOD09_02219A8C: ; 0x02219A8C
add r0, r7, #0
bl String_dtor
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -15151,7 +15151,7 @@ MOD09_02219AFC: ; 0x02219AFC
add r0, r7, #0
bl String_dtor
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -16848,10 +16848,10 @@ MOD09_0221A884: ; 0x0221A884
str r7, [sp, #8]
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp, #0x18]
bl FreeToHeap
add sp, #0x1c
@@ -16918,7 +16918,7 @@ _0221A93C:
ldr r1, [r6, #0x2c]
lsl r0, r0, #4
add r0, r1, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s
index 65a74381..2781e4f1 100644
--- a/arm9/modules/11/asm/module_11_thumb1.s
+++ b/arm9/modules/11/asm/module_11_thumb1.s
@@ -325,7 +325,7 @@ MOD11_0222D840: ; 0x0222D840
ldr r0, [r4, r0]
bl MOD11_02258658
ldr r0, [r4, #8]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #4]
bl MOD11_0222E4E8
add r0, r4, #0
@@ -424,7 +424,7 @@ MOD11_0222D944: ; 0x0222D944
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #1
mov r1, #0
bl GX_EngineAToggleLayers
@@ -433,13 +433,13 @@ MOD11_0222D944: ; 0x0222D944
bl GX_EngineAToggleLayers
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD11_02231410
pop {r4, pc}
@@ -471,26 +471,26 @@ _0222D99A:
ldr r0, [r5, #4]
add r2, sp, #0x14
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r5, #4]
mov r1, #2
add r2, sp, #0x30
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r5, #4]
mov r1, #3
add r2, sp, #0x4c
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r1, _0222DB40 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -630,7 +630,7 @@ _0222D99A:
str r0, [sp, #0x10]
ldr r0, [r5, #4]
ldr r1, [r5, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r5, #8]
mov r1, #0xff
bl FillWindowPixelBuffer
@@ -742,7 +742,7 @@ MOD11_0222DB50: ; 0x0222DB50
mov r3, #5
bl FUN_02003008
mov r0, #5
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
mov r0, #5
mov r1, #3
@@ -792,7 +792,7 @@ _0222DC42:
ldr r1, [r4, #8]
mov r2, #1
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r4, #8]
mov r1, #0xff
bl FillWindowPixelBuffer
@@ -1355,7 +1355,7 @@ _0222E1AC:
bl FUN_02002BB8
ldr r0, [r4, #8]
mov r1, #3
- bl FUN_020191A4
+ bl WindowArray_dtor
ldr r0, [r4, #4]
bl FreeToHeap
mov r0, #0x87
@@ -1467,7 +1467,7 @@ _0222E282:
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r1, _0222E458 ; =0x000023FB
mov r0, #1
ldrb r2, [r5, r1]
@@ -1489,26 +1489,26 @@ _0222E2F0:
add r0, r4, #0
add r2, sp, #0x48
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #2
add r2, sp, #0x64
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #3
add r2, sp, #0x80
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r1, _0222E460 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -1712,13 +1712,13 @@ MOD11_0222E4E8: ; 0x0222E4E8
bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD11_022584AC
pop {r4, pc}
@@ -3157,7 +3157,7 @@ _0222F088:
ldr r0, [r4, #0x28]
bl FUN_0200372C
ldr r0, [r4, #4]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _0222F0CC ; =0x027E0000
ldr r1, _0222F0D0 ; =0x00003FF8
mov r0, #1
@@ -3183,7 +3183,7 @@ MOD11_0222F0D4: ; 0x0222F0D4
bl FUN_0200372C
bl FUN_0201C30C
ldr r0, [r4, #4]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _0222F0F8 ; =0x027E0000
ldr r1, _0222F0FC ; =0x00003FF8
mov r0, #1
@@ -3366,7 +3366,7 @@ MOD11_0222F254: ; 0x0222F254
ldr r0, [r4, #4]
ldr r3, [r4, r3]
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, _0222F280 ; =0x00002434
ldr r0, [r4, r0]
cmp r0, #0
diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s
index 451daa87..24037833 100644
--- a/arm9/modules/11/asm/module_11_thumb2.s
+++ b/arm9/modules/11/asm/module_11_thumb2.s
@@ -41,7 +41,7 @@ MOD11_0222F29C: ; 0x0222F29C
add r3, r1, #0
bl FUN_02003914
mov r0, #5
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r5, #4]
mov r0, #5
mov r1, #1
@@ -98,7 +98,7 @@ _0222F30E:
ldmia r6!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r6, _0222F4D0 ; =MOD11_0225DA04
add r3, sp, #0x14
ldmia r6!, {r0, r1}
@@ -113,10 +113,10 @@ _0222F30E:
str r0, [r3]
ldr r0, [r5, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x13
lsl r0, r0, #4
ldr r0, [r4, r0]
@@ -183,7 +183,7 @@ _0222F30E:
ldr r1, [r5, #8]
mov r2, #1
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r5, #8]
mov r1, #0xff
bl FillWindowPixelBuffer
@@ -810,13 +810,13 @@ MOD11_0222F93C: ; 0x0222F93C
bl FUN_02002FEC
ldr r0, [r4, #8]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
mov r0, #2
mov r1, #0
bl GX_EngineAToggleLayers
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
bl FreeToHeap
add r0, r4, #0
@@ -4128,7 +4128,7 @@ _022311D0:
ldr r2, [r4, r2]
mov r1, #3
lsl r3, r3, #5
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
mov r0, #0x5f
lsl r0, r0, #2
add r0, r4, r0
@@ -23819,10 +23819,10 @@ _0223AC50:
strh r1, [r0]
mov r0, #1
add r1, r0, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
mov r1, #2
bl MOD11_02231564
@@ -23859,7 +23859,7 @@ _0223AC50:
add r1, r5, #0
mov r2, #2
mov r3, #0x11
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0xff
bl FillWindowPixelBuffer
@@ -24055,7 +24055,7 @@ _0223AE5E:
mov r1, #0
bl FUN_0200CCF8
add r0, r6, #0
- bl FUN_02019178
+ bl RemoveWindow
ldr r1, _0223AF50 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -24064,10 +24064,10 @@ _0223AE5E:
orr r2, r0
strh r2, [r1]
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
mov r1, #0
bl MOD11_02231564
@@ -28107,7 +28107,7 @@ _0223CF5C:
add r1, sp, #0x68
mov r2, #0xc
mov r3, #4
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r1, #0
str r1, [sp]
mov r0, #0xff
@@ -28167,7 +28167,7 @@ _0223CF5C:
ldr r0, [r5, #0x14]
bl FUN_02011AC0
add r0, sp, #0x68
- bl FUN_02019178
+ bl RemoveWindow
add sp, #0x78
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -62296,7 +62296,7 @@ MOD11_0224D518: ; 0x0224D518
mov r1, #0xff
bl FillWindowPixelBuffer
add r0, r6, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
mov r1, #0x65
lsl r1, r1, #2
ldrb r1, [r4, r1]
@@ -63233,7 +63233,7 @@ _0224DCAE:
mov r1, #3
mov r2, #2
mov r3, #0x84
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_0224DCBE:
ldr r0, _0224DCE0 ; =MOD11_02250060
add r1, r4, #0
@@ -67678,7 +67678,7 @@ _02250086:
mov r1, #3
mov r2, #1
mov r3, #4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x20]
add r0, r0, #1
str r0, [r4, #0x20]
@@ -71659,7 +71659,7 @@ _022520D2:
mov r1, #0xff
bl FillWindowPixelBuffer
add r0, r6, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4]
bl MOD11_02230094
bl MOD11_0225C76C
@@ -82482,7 +82482,7 @@ MOD11_022574F0: ; 0x022574F0
add r1, sp, #0x24
mov r2, #8
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r1, #0
str r1, [sp]
mov r0, #0xff
@@ -82570,7 +82570,7 @@ MOD11_022574F0: ; 0x022574F0
ldrh r2, [r3, r2]
bl MIi_CpuCopy16
add r0, sp, #0x24
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [sp, #0x18]
bl String_dtor
ldr r0, [sp, #0x1c]
@@ -83055,7 +83055,7 @@ _02257A26:
add r1, sp, #0x18
mov r2, #0xd
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r1, #0
str r1, [sp]
mov r0, #0xff
@@ -83116,7 +83116,7 @@ _02257A26:
mov r2, #0xe0
bl MIi_CpuCopy16
add r0, sp, #0x18
- bl FUN_02019178
+ bl RemoveWindow
add r0, r7, #0
bl String_dtor
add sp, #0x28
@@ -83181,7 +83181,7 @@ _02257B1E:
add r1, sp, #0x24
mov r2, #0xd
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r1, #0
str r1, [sp]
mov r0, #0xff
@@ -83241,7 +83241,7 @@ _02257B1E:
mov r2, #0xe0
bl MIi_CpuCopy16
add r0, sp, #0x24
- bl FUN_02019178
+ bl RemoveWindow
add r0, r6, #0
bl String_dtor
ldr r0, [sp, #0x18]
@@ -84398,27 +84398,27 @@ _0225845A:
lsr r1, r1, #0x18
add r2, r6, #0
add r3, r7, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r1, r4, #4
lsl r1, r1, #0x18
ldr r2, _022584A8 ; =0x000002FF
add r0, r5, #0
lsr r1, r1, #0x18
- bl FUN_02018768
+ bl BgFillTilemapBufferAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
mov r2, #0
add r0, r5, #0
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r4, r4, #1
add r6, #0x1c
cmp r4, #4
@@ -84439,12 +84439,12 @@ _022584B4:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
add r1, r6, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r4, r4, #1
cmp r4, #4
blo _022584B4
@@ -84905,12 +84905,12 @@ _022588AE:
ldr r2, [r2, #0x3c]
lsr r1, r1, #0x18
lsl r3, r3, #0xa
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
add r1, r4, #4
lsl r1, r1, #0x18
ldr r0, [sp, #0x28]
lsr r1, r1, #0x18
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_022588D0:
add r4, r4, #1
add r6, r6, #2
@@ -85968,7 +85968,7 @@ _0225910E:
mov r1, #6
mov r2, #0
asr r3, r6, #8
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r5, #0
bl MOD11_0225902C
cmp r4, #1
@@ -85976,13 +85976,13 @@ _0225910E:
ldr r2, _02259160 ; =0x000002FF
add r0, r7, #0
mov r1, #7
- bl FUN_02018768
+ bl BgFillTilemapBufferAndCommit
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r2, _02259164 ; =0x04001000
ldr r0, _02259168 ; =0xFFFF1FFF
ldr r1, [r2]
@@ -86408,10 +86408,10 @@ MOD11_022594DC: ; 0x022594DC
add r4, r0, #0
mov r1, #4
mov r3, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r4, #0
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #0x4e
lsl r0, r0, #4
ldr r0, [r5, r0]
@@ -86463,7 +86463,7 @@ MOD11_02259554: ; 0x02259554
mov r1, #4
mov r3, #0
add r4, r0, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x10
str r0, [sp]
mov r0, #0xa
@@ -86476,10 +86476,10 @@ MOD11_02259554: ; 0x02259554
add r0, r4, #0
mov r1, #4
mov r3, #0x16
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r4, #0
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #0x4e
lsl r0, r0, #4
ldr r0, [r5, r0]
@@ -87845,10 +87845,10 @@ _0225A116:
ldr r2, _0225A15C ; =0x000002FF
add r6, r0, #0
mov r1, #5
- bl FUN_02018768
+ bl BgFillTilemapBufferAndCommit
add r0, r6, #0
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r4, #0
add r1, r5, #0
bl MOD11_0225ADD0
@@ -88290,7 +88290,7 @@ _0225A49C:
add r1, sp, #0x3c
lsr r2, r2, #0x18
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r3, #0
str r3, [sp]
mov r0, #0xff
@@ -88374,7 +88374,7 @@ _0225A50A:
cmp r4, #0
bne _0225A570
add r0, sp, #0x3c
- bl FUN_02019178
+ bl RemoveWindow
_0225A570:
str r7, [r5]
add r3, sp, #0x30
@@ -88427,7 +88427,7 @@ MOD11_0225A5C0: ; 0x0225A5C0
ldr r0, [r7]
bl MOD11_0222FF68
mov r1, #5
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r4, r0, #0
add r0, r7, #0
add r1, sp, #4
@@ -88591,7 +88591,7 @@ _0225A6E4:
cmp r0, #0
beq _0225A6FE
add r0, r7, #0
- bl FUN_02019178
+ bl RemoveWindow
_0225A6FE:
add r0, r4, #0
add r0, #0xec
@@ -88599,7 +88599,7 @@ _0225A6FE:
cmp r0, #0
beq _0225A70E
add r0, r6, #0
- bl FUN_02019178
+ bl RemoveWindow
_0225A70E:
mov r0, #0x4f
lsl r0, r0, #2
@@ -88607,7 +88607,7 @@ _0225A70E:
cmp r0, #0
beq _0225A71E
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
_0225A71E:
ldr r0, [sp, #4]
add r4, #0x14
@@ -88911,7 +88911,7 @@ MOD11_0225A968: ; 0x0225A968
cmp r0, #0
beq _0225A994
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_0225A994:
add r0, r4, #0
bl InitWindow
@@ -88925,7 +88925,7 @@ _0225A994:
lsl r2, r2, #0x18
lsr r2, r2, #0x18
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r3, #0
str r3, [sp]
mov r0, #0xff
@@ -89218,7 +89218,7 @@ MOD11_0225ABA4: ; 0x0225ABA4
bl FUN_02003054
add r0, r6, #0
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, _0225AC58 ; =MOD11_0225F71C
lsl r1, r4, #2
ldrb r2, [r0, r1]
@@ -89244,10 +89244,10 @@ MOD11_0225ABA4: ; 0x0225ABA4
ldrb r3, [r3, #2]
ldr r2, _0225AC5C ; =0x000002FF
add r0, r6, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r6, #0
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
@@ -89269,13 +89269,13 @@ _0225AC68:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
add r1, r4, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
b _0225AC84
_0225AC7A:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
add r1, r6, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
_0225AC84:
add r5, r5, #1
cmp r5, #4
@@ -89482,7 +89482,7 @@ MOD11_0225ADD8: ; 0x0225ADD8
bl MOD11_0222FF68
mov r1, #4
str r0, [sp, #4]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
lsl r0, r7, #2
add r0, r5, r0
@@ -89528,7 +89528,7 @@ _0225AE36:
_0225AE40:
ldr r0, [sp, #4]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@@ -90373,22 +90373,22 @@ _0225B4D6:
add r0, r4, #0
mov r1, #4
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #4
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #5
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #5
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r5]
mov r1, #1
ldr r0, [r0]
@@ -90427,7 +90427,7 @@ _0225B55A:
add r0, r6, #0
mov r1, #4
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0xc
ldrsh r4, [r5, r3]
mov r3, #0xff
@@ -90435,7 +90435,7 @@ _0225B55A:
mov r1, #5
mov r2, #0
sub r3, r3, r4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #8
ldrsh r0, [r5, r0]
mov r1, #0x64
@@ -90453,13 +90453,13 @@ _0225B590:
add r0, r6, #0
mov r1, #4
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0xc
ldrsh r3, [r5, r3]
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #8
ldrsh r0, [r5, r0]
mov r1, #0x64
@@ -90471,12 +90471,12 @@ _0225B5B6:
mov r1, #4
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r6, #0
mov r1, #5
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0xa
ldrsh r0, [r5, r0]
mov r1, #0x64
@@ -90556,24 +90556,24 @@ MOD11_0225B644: ; 0x0225B644
mov r1, #4
add r3, r2, #0
add r5, r0, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0x10
ldrsh r3, [r4, r3]
add r0, r5, #0
mov r1, #4
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #0
add r0, r5, #0
mov r1, #5
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0x10
ldrsh r3, [r4, r3]
add r0, r5, #0
mov r1, #5
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r4, r5, r6, pc}
_0225B68E:
cmp r0, #0xc0
@@ -90591,7 +90591,7 @@ _0225B68E:
mov r1, #4
mov r2, #0
sub r3, r3, r6
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0xc
ldrsh r4, [r4, r3]
mov r3, #0xff
@@ -90599,31 +90599,31 @@ _0225B68E:
mov r1, #5
mov r2, #0
sub r3, r3, r4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
b _0225B6E0
_0225B6C6:
mov r3, #0xc
ldrsh r3, [r4, r3]
mov r1, #4
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0xc
ldrsh r3, [r4, r3]
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_0225B6E0:
add r0, r5, #0
mov r1, #4
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r5, #0
mov r1, #5
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_0225B6F8:
pop {r4, r5, r6, pc}
nop
@@ -90650,14 +90650,14 @@ _0225B716:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
b _0225B736
_0225B72A:
add r0, r4, #4
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
_0225B736:
add r4, r4, #1
add r5, r5, #2
@@ -90671,7 +90671,7 @@ _0225B740:
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
add r4, r4, #1
add r6, r6, #2
cmp r4, #4
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index 8c91e781..68371f50 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -95,7 +95,7 @@ MOD12_0222D5C0: ; 0x0222D5C0
mov r3, #0x15
bl FUN_02003008
mov r0, #0x15
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x30]
mov r0, #0x40
mov r1, #0x15
@@ -445,7 +445,7 @@ MOD12_0222D9B0: ; 0x0222D9B0
bl MOD12_0222E0FC
add r0, r4, #0
add r0, #0x34
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #1
mov r1, #0
bl GX_EngineAToggleLayers
@@ -454,13 +454,13 @@ MOD12_0222D9B0: ; 0x0222D9B0
bl GX_EngineAToggleLayers
ldr r0, [r4, #0x30]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x30]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x30]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x30]
bl MOD12_022319FC
ldr r0, _0222DAD8 ; =0x0000081C
@@ -546,7 +546,7 @@ MOD12_0222DAE4: ; 0x0222DAE4
ldr r0, [r4, #0x5c]
bl FUN_0200372C
ldr r0, [r4, #0x30]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _0222DB10 ; =0x027E0000
ldr r1, _0222DB14 ; =0x00003FF8
mov r0, #1
@@ -632,7 +632,7 @@ _0222DB60:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _0222DC78 ; =MOD12_02244A50
add r3, sp, #0x38
mov r2, #0xa
@@ -647,56 +647,56 @@ _0222DBC0:
add r0, r4, #0
add r2, sp, #0x38
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #1
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #1
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #2
add r2, sp, #0x54
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #2
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #2
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #3
add r2, sp, #0x70
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #3
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #3
add r0, r4, #0
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, _0222DC7C ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -737,7 +737,7 @@ MOD12_0222DC80: ; 0x0222DC80
add r1, #0x34
mov r2, #1
mov r3, #0xb
- bl FUN_02019064
+ bl AddWindowParameterized
add sp, #0x14
pop {pc}
@@ -1069,10 +1069,10 @@ MOD12_0222DF30: ; 0x0222DF30
bl GfGfxLoader_LoadScrnData
mov r0, #1
add r1, r0, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
add r0, r5, #0
bl MOD12_022335B0
cmp r4, #1
@@ -1087,16 +1087,16 @@ _0222DF9A:
lsl r1, r0, #0xd
mov r2, #0
mov r3, #0x15
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r5, #0x30]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #1
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
_0222DFBE:
add sp, #0x10
pop {r3, r4, r5, pc}
@@ -3230,7 +3230,7 @@ MOD12_0222EF04: ; 0x0222EF04
mov r3, #0x16
bl FUN_02003008
mov r0, #0x16
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r5, #0x30]
mov r0, #0x40
mov r1, #0x16
@@ -3601,7 +3601,7 @@ MOD12_0222F324: ; 0x0222F324
bl MOD12_0222F98C
add r0, r4, #0
add r0, #0x34
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #1
mov r1, #0
bl GX_EngineAToggleLayers
@@ -3610,19 +3610,19 @@ MOD12_0222F324: ; 0x0222F324
bl GX_EngineAToggleLayers
ldr r0, [r4, #0x30]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x30]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x30]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #4
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x30]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x28]
ldr r1, [r4, #0x2c]
bl FUN_0200C398
@@ -3759,7 +3759,7 @@ _0222F4BA:
ldr r0, [r6, #0x50]
bl FUN_0200372C
ldr r0, [r6, #0x30]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _0222F4EC ; =0x027E0000
ldr r1, _0222F4F0 ; =0x00003FF8
mov r0, #1
@@ -3861,7 +3861,7 @@ _0222F558:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _0222F6A8 ; =MOD12_02244B70
add r3, sp, #0x54
mov r2, #0xa
@@ -3876,56 +3876,56 @@ _0222F5B8:
add r0, r4, #0
add r2, sp, #0x54
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #1
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #1
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #2
add r2, sp, #0x70
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #2
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #2
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #3
add r2, sp, #0x8c
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #3
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #3
add r0, r4, #0
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, _0222F6AC ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -3949,20 +3949,20 @@ _0222F5B8:
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #4
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #4
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add sp, #0xa8
pop {r3, r4, r5, pc}
.align 2, 0
@@ -3991,7 +3991,7 @@ MOD12_0222F6B4: ; 0x0222F6B4
add r1, #0x34
mov r2, #1
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
add sp, #0x14
pop {pc}
.align 2, 0
@@ -4200,7 +4200,7 @@ MOD12_0222F834: ; 0x0222F834
bl GfGfxLoader_LoadScrnData
ldr r0, [r5, #0x30]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -5092,7 +5092,7 @@ MOD12_0222FE4C: ; 0x0222FE4C
mov r1, #1
bl MOD12_0223EC7C
mov r0, #0x17
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r5, #0x74]
mov r0, #0x40
mov r1, #0x17
@@ -5435,7 +5435,7 @@ _02230254:
add r5, #0x78
_02230296:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r6, r6, #1
add r5, #0x10
cmp r6, #2
@@ -5448,13 +5448,13 @@ _02230296:
bl GX_EngineAToggleLayers
ldr r0, [r4, #0x74]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x74]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x74]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x74]
bl MOD12_0223B474
ldr r0, _022303B0 ; =0x00001130
@@ -5642,7 +5642,7 @@ _02230464:
ldr r0, [r0]
bl FUN_0200372C
ldr r0, [r4, #0x74]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _022304A8 ; =0x027E0000
ldr r1, _022304AC ; =0x00003FF8
mov r0, #1
@@ -5807,7 +5807,7 @@ _02230584:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _0223069C ; =MOD12_02244C94
add r3, sp, #0x38
mov r2, #0xa
@@ -5822,56 +5822,56 @@ _022305E4:
add r0, r4, #0
add r2, sp, #0x38
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #1
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #1
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #2
add r2, sp, #0x54
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #2
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #2
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #3
add r2, sp, #0x70
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #3
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #3
add r0, r4, #0
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, _022306A0 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -5912,7 +5912,7 @@ MOD12_022306A4: ; 0x022306A4
add r1, #0x78
mov r2, #1
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xb
str r0, [sp]
mov r0, #0x1b
@@ -5927,7 +5927,7 @@ MOD12_022306A4: ; 0x022306A4
add r4, #0x88
add r1, r4, #0
mov r2, #1
- bl FUN_02019064
+ bl AddWindowParameterized
add sp, #0x14
pop {r3, r4, pc}
@@ -7577,7 +7577,7 @@ _022313B0:
add r1, sp, #0x34
lsr r2, r2, #0x18
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r3, #0
str r3, [sp]
mov r0, #0xff
@@ -7648,7 +7648,7 @@ _02231454:
sub r2, #8
bl FUN_020118C4
add r0, sp, #0x34
- bl FUN_02019178
+ bl RemoveWindow
str r6, [r5]
add r3, sp, #0x28
ldmia r3!, {r0, r1}
@@ -8354,27 +8354,27 @@ _022319AE:
lsr r1, r1, #0x18
add r2, r6, #0
add r3, r7, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #0
- bl FUN_02018768
+ bl BgFillTilemapBufferAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
mov r2, #0
add r0, r5, #0
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r4, r4, #1
add r6, #0x1c
cmp r4, #4
@@ -8394,12 +8394,12 @@ _02231A04:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
add r1, r6, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r4, r4, #1
cmp r4, #4
blo _02231A04
@@ -8590,7 +8590,7 @@ _02231B90:
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
add r4, r4, #1
add r5, r5, #2
cmp r4, #4
@@ -8632,12 +8632,12 @@ _02231BDE:
ldr r2, [r2, #0x20]
lsr r1, r1, #0x18
lsl r3, r3, #0xa
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
add r1, r5, #4
lsl r1, r1, #0x18
ldr r0, [sp, #0xc]
lsr r1, r1, #0x18
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_02231C00:
add r5, r5, #1
add r6, r6, #2
@@ -9550,7 +9550,7 @@ _022322FE:
add r1, sp, #0x3c
lsr r2, r2, #0x18
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r3, #0
str r3, [sp]
mov r0, #0xff
@@ -9633,7 +9633,7 @@ _0223236C:
cmp r4, #0
bne _022323D0
add r0, sp, #0x3c
- bl FUN_02019178
+ bl RemoveWindow
_022323D0:
str r7, [r5]
add r3, sp, #0x30
@@ -9846,7 +9846,7 @@ MOD12_02232538: ; 0x02232538
mov r1, #4
add r4, r2, #0
str r0, [sp, #4]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
lsl r0, r7, #2
add r0, r5, r0
@@ -9892,7 +9892,7 @@ _02232594:
_0223259E:
ldr r0, [sp, #4]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -10680,7 +10680,7 @@ _02232B9A:
cmp r0, #0
beq _02232BAA
ldr r0, [sp]
- bl FUN_02019178
+ bl RemoveWindow
_02232BAA:
mov r0, #2
lsl r0, r0, #8
@@ -10688,7 +10688,7 @@ _02232BAA:
cmp r0, #0
beq _02232BBA
add r0, r7, #0
- bl FUN_02019178
+ bl RemoveWindow
_02232BBA:
mov r0, #0x25
lsl r0, r0, #4
@@ -10696,7 +10696,7 @@ _02232BBA:
cmp r0, #0
beq _02232BCA
add r0, r6, #0
- bl FUN_02019178
+ bl RemoveWindow
_02232BCA:
ldr r0, [sp]
add r4, #0x14
@@ -10720,7 +10720,7 @@ _02232BEC:
cmp r0, #0
beq _02232BF8
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_02232BF8:
add r6, r6, #1
add r5, #0x14
@@ -10925,7 +10925,7 @@ MOD12_02232D7C: ; 0x02232D7C
cmp r0, #0
beq _02232DA8
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_02232DA8:
add r0, r4, #0
bl InitWindow
@@ -10939,7 +10939,7 @@ _02232DA8:
add r1, r4, #0
lsr r2, r2, #0x18
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r3, #0
str r3, [sp]
mov r0, #0xff
@@ -11738,7 +11738,7 @@ MOD12_0223336C: ; 0x0223336C
ldr r2, [r2, #0x14]
mov r1, #4
lsl r3, r3, #0xc
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
mov r0, #0xb6
lsl r0, r0, #2
ldr r0, [r4, r0]
@@ -11774,14 +11774,14 @@ _022333C0:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
add r1, r7, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
b _022333E0
_022333D4:
add r0, r4, #4
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
_022333E0:
add r4, r4, #1
add r5, r5, #2
@@ -11991,7 +11991,7 @@ MOD12_0223356C: ; 0x0223356C
add r5, r1, #0
mov r1, #2
add r4, r2, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r1, #0xc0
mul r1, r5
lsl r1, r1, #1
@@ -12042,7 +12042,7 @@ _022335CC:
blt _022335BC
ldr r0, [r5, #0x30]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r3, r4, r5, r6, r7, pc}
nop
_022335DC: .word MOD12_022451D0
@@ -15298,7 +15298,7 @@ _02234F42:
_02234F96:
ldr r0, [r5, #0x30]
mov r1, #1
- bl FUN_02017B48
+ bl Bg_GetXpos
add r0, r6, #0
bl String_dtor
add sp, #0x10
@@ -26691,7 +26691,7 @@ _0223A418:
ldr r0, [r0]
mov r1, #2
ldr r0, [r0, #0x30]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
mov r0, #0
str r0, [sp, #8]
@@ -26791,7 +26791,7 @@ _0223A4D2:
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #0x30]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp]
ldrb r0, [r0, #0x12]
add r1, r0, #1
@@ -26921,7 +26921,7 @@ _0223A5CC:
ldr r0, [r0]
mov r1, #2
ldr r0, [r0, #0x30]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
mov r0, #0
str r0, [sp, #8]
@@ -27041,7 +27041,7 @@ _0223A6AE:
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #0x30]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp]
ldrb r0, [r0, #0x12]
add r1, r0, #1
@@ -28094,7 +28094,7 @@ _0223AED6:
ldr r0, [r4]
mov r1, #1
ldr r0, [r0, #0x30]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r2, r4, #0
ldrb r1, [r4, #0x17]
ldr r0, [r4]
@@ -28140,7 +28140,7 @@ _0223AF34:
ldr r0, [r4]
mov r1, #1
ldr r0, [r0, #0x30]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldrb r0, [r4, #0x10]
add r0, r0, #1
strb r0, [r4, #0x10]
@@ -28480,7 +28480,7 @@ _0223B1DE:
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #0x30]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
mov r0, #0
str r0, [sp, #8]
@@ -28580,7 +28580,7 @@ _0223B294:
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #0x30]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp]
mov r1, #0xc
ldrb r0, [r0, #0x12]
@@ -28778,27 +28778,27 @@ _0223B426:
lsr r1, r1, #0x18
add r2, r6, #0
add r3, r7, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #0
- bl FUN_02018768
+ bl BgFillTilemapBufferAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
mov r2, #0
add r0, r5, #0
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r4, r4, #1
add r6, #0x1c
cmp r4, #4
@@ -28818,12 +28818,12 @@ _0223B47C:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
add r1, r6, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r4, r4, #1
cmp r4, #4
blo _0223B47C
@@ -29192,7 +29192,7 @@ _0223B794:
lsl r1, r1, #0x18
lsr r0, r0, #0x18
lsr r1, r1, #0x18
- bl FUN_020178BC
+ bl SetBgPriority
add r4, r4, #1
add r5, r5, #2
cmp r4, #4
@@ -29256,12 +29256,12 @@ _0223B80A:
ldr r2, [r2]
lsr r1, r1, #0x18
lsl r3, r3, #0xa
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
add r1, r5, #4
lsl r1, r1, #0x18
ldr r0, [sp, #0xc]
lsr r1, r1, #0x18
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_0223B82E:
add r5, r5, #1
add r4, r4, #2
@@ -29760,7 +29760,7 @@ _0223BBEC:
strh r0, [r4, #0x1a]
lsl r0, r7, #0x18
lsr r0, r0, #0x18
- bl FUN_020187B0
+ bl BgGetCharPtr
str r0, [r4, #4]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
@@ -29914,7 +29914,7 @@ _0223BD1C:
add r1, sp, #0x38
lsr r2, r2, #0x18
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r3, #0
str r3, [sp]
mov r0, #0xff
@@ -29982,7 +29982,7 @@ _0223BD74:
add r2, #0xf8
bl FUN_020118C4
add r0, sp, #0x38
- bl FUN_02019178
+ bl RemoveWindow
str r6, [r5]
add r3, sp, #0x2c
ldmia r3!, {r0, r1}
@@ -30475,14 +30475,14 @@ _0223C162:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
add r1, r7, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
b _0223C182
_0223C176:
add r0, r4, #4
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
_0223C182:
add r4, r4, #1
add r5, r5, #2
@@ -30517,7 +30517,7 @@ MOD12_0223C19C: ; 0x0223C19C
ldr r2, [r2]
mov r1, #4
lsl r3, r3, #0xc
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r0, _0223C1D8 ; =0x0000FFFF
add r4, #0x94
strh r0, [r4]
@@ -30738,7 +30738,7 @@ _0223C338:
ldr r0, [sp]
mov r1, #3
ldr r0, [r0, #0x60]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r2, r0, #0
mov r1, #0
cmp r4, #0
@@ -30851,7 +30851,7 @@ _0223C410:
ldr r0, [sp]
mov r1, #3
ldr r0, [r0, #0x60]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -35079,7 +35079,7 @@ _0223E49A:
bl FUN_0200D0BC
ldr r0, [r5, #0x74]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r5, #0
add r0, #0x98
ldr r1, _0223E520 ; =MOD12_02246224
@@ -35138,7 +35138,7 @@ MOD12_0223E528: ; 0x0223E528
bl FUN_0200D0E0
ldr r0, [r4, #0x74]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, _0223E544 ; =0x00001BF1
mov r1, #0
strb r1, [r4, r0]
@@ -36487,7 +36487,7 @@ _0223EF78:
ldr r0, [r0]
mov r1, #2
ldr r0, [r0, #0x74]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
mov r0, #0
str r0, [sp, #8]
@@ -36587,7 +36587,7 @@ _0223F032:
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #0x74]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp]
ldrb r0, [r0, #0x12]
add r1, r0, #1
@@ -36724,7 +36724,7 @@ _0223F140:
ldr r0, [r0]
mov r1, #2
ldr r0, [r0, #0x74]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
mov r0, #0
str r0, [sp, #8]
@@ -36844,7 +36844,7 @@ _0223F222:
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #0x74]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp]
ldrb r0, [r0, #0x12]
add r1, r0, #1
@@ -39313,7 +39313,7 @@ _02240522:
ldr r0, [r4]
mov r1, #1
ldr r0, [r0, #0x74]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r2, r4, #0
ldrb r1, [r4, #0x1a]
ldr r0, [r4]
@@ -39359,7 +39359,7 @@ _02240580:
ldr r0, [r4]
mov r1, #1
ldr r0, [r0, #0x74]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldrb r0, [r4, #0x10]
add r0, r0, #1
strb r0, [r4, #0x10]
@@ -41175,7 +41175,7 @@ MOD12_02241210: ; 0x02241210
mov r3, #0x18
bl FUN_02003008
mov r0, #0x18
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r5, #0x30]
mov r0, #0x40
mov r1, #0x18
@@ -41472,7 +41472,7 @@ MOD12_022415A8: ; 0x022415A8
add r5, #0x34
_022415D4:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r6, r6, #1
add r5, #0x10
cmp r6, #9
@@ -41485,19 +41485,19 @@ _022415D4:
bl GX_EngineAToggleLayers
ldr r0, [r4, #0x30]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x30]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x30]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #4
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x30]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x28]
ldr r1, [r4, #0x2c]
bl FUN_0200C398
@@ -41665,7 +41665,7 @@ MOD12_02241754: ; 0x02241754
ldr r0, [r0]
bl FUN_0200372C
ldr r0, [r4, #0x30]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _022417D4 ; =0x027E0000
ldr r1, _022417D8 ; =0x00003FF8
mov r0, #1
@@ -41694,14 +41694,14 @@ MOD12_022417DC: ; 0x022417DC
bgt _022417FC
mov r0, #1
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
pop {r3, pc}
_022417FC:
cmp r0, #0x90
bge _02241808
mov r0, #1
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
_02241808:
pop {r3, pc}
nop
@@ -41717,7 +41717,7 @@ MOD12_02241814: ; 0x02241814
bne _02241826
mov r0, #1
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
_02241826:
pop {r3, pc}
.align 2, 0
@@ -41797,7 +41797,7 @@ _02241874:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _022419C4 ; =MOD12_022465C0
add r3, sp, #0x54
mov r2, #0xa
@@ -41812,56 +41812,56 @@ _022418D4:
add r0, r4, #0
add r2, sp, #0x54
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #1
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #1
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #2
add r2, sp, #0x70
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #2
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #2
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #3
add r2, sp, #0x8c
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #3
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #3
add r0, r4, #0
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, _022419C8 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -41885,20 +41885,20 @@ _022418D4:
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
add r0, r4, #0
mov r1, #4
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #4
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add sp, #0xa8
pop {r3, r4, r5, pc}
.align 2, 0
@@ -41928,7 +41928,7 @@ MOD12_022419D0: ; 0x022419D0
add r1, #0x34
mov r2, #1
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r2, #1
add r1, r4, #0
str r2, [sp]
@@ -41943,7 +41943,7 @@ MOD12_022419D0: ; 0x022419D0
ldr r0, [r4, #0x30]
add r1, #0x44
mov r3, #6
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #5
str r0, [sp]
mov r0, #8
@@ -41959,7 +41959,7 @@ MOD12_022419D0: ; 0x022419D0
add r1, #0x54
mov r2, #1
mov r3, #6
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #9
str r0, [sp]
mov r0, #8
@@ -41975,7 +41975,7 @@ MOD12_022419D0: ; 0x022419D0
add r1, #0x64
mov r2, #1
mov r3, #6
- bl FUN_02019064
+ bl AddWindowParameterized
mov r1, #0xd
str r1, [sp]
mov r0, #8
@@ -41990,7 +41990,7 @@ MOD12_022419D0: ; 0x022419D0
add r1, #0x74
mov r2, #1
mov r3, #6
- bl FUN_02019064
+ bl AddWindowParameterized
mov r2, #1
add r1, r4, #0
str r2, [sp]
@@ -42005,7 +42005,7 @@ MOD12_022419D0: ; 0x022419D0
ldr r0, [r4, #0x30]
add r1, #0x84
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #5
str r0, [sp]
mov r0, #8
@@ -42021,7 +42021,7 @@ MOD12_022419D0: ; 0x022419D0
add r1, #0x94
mov r2, #1
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #9
str r0, [sp]
mov r0, #8
@@ -42037,7 +42037,7 @@ MOD12_022419D0: ; 0x022419D0
add r1, #0xa4
mov r2, #1
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
mov r1, #0xd
str r1, [sp]
mov r0, #8
@@ -42052,7 +42052,7 @@ MOD12_022419D0: ; 0x022419D0
add r1, r4, #0
mov r2, #1
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
add sp, #0x14
pop {r3, r4, pc}
.align 2, 0
@@ -43645,7 +43645,7 @@ MOD12_022426BC: ; 0x022426BC
bl GfGfxLoader_LoadScrnData
ldr r0, [r5, #0x30]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -43702,7 +43702,7 @@ MOD12_022426BC: ; 0x022426BC
bl FUN_020030E8
ldr r0, [r5, #0x30]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x10
pop {r3, r4, r5, pc}
nop
@@ -43815,7 +43815,7 @@ MOD12_02242804: ; 0x02242804
bl GfGfxLoader_LoadScrnData
ldr r0, [r6, #0x30]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -46285,7 +46285,7 @@ _02243B98:
ldr r0, [r0]
mov r1, #2
ldr r0, [r0, #0x30]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
mov r0, #0
str r0, [sp, #8]
@@ -46385,7 +46385,7 @@ _02243C52:
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #0x30]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp]
ldrb r0, [r0, #0x12]
add r1, r0, #1
@@ -46515,7 +46515,7 @@ _02243D4C:
ldr r0, [r0]
mov r1, #2
ldr r0, [r0, #0x30]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
mov r0, #0
str r0, [sp, #8]
@@ -46635,7 +46635,7 @@ _02243E2E:
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #0x30]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp]
ldrb r0, [r0, #0x12]
add r1, r0, #1
@@ -46799,7 +46799,7 @@ _02243F56:
ldr r0, [r4]
mov r1, #1
ldr r0, [r0, #0x30]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_02243F7A:
ldrb r1, [r4, #0x1a]
add r2, r4, #0
@@ -46846,7 +46846,7 @@ _02243FBA:
ldr r0, [r4]
mov r1, #1
ldr r0, [r0, #0x30]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldrb r0, [r4, #0x10]
add r0, r0, #1
strb r0, [r4, #0x10]
diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s
index 5aee0b46..36288367 100644
--- a/arm9/modules/13/asm/module_13_arm2.s
+++ b/arm9/modules/13/asm/module_13_arm2.s
@@ -35163,10 +35163,10 @@ _0223BEA4: .word 0x05000400
MOD13_0223BEA8: ; 0x0223BEA8
stmdb sp!, {lr}
sub sp, sp, #4
- bl disableBankForX_
- bl GX_DisableBankForOBJExtPltt_2
- bl GX_DisableBankForSubBGExtPltt
- bl GX_DisableBankForSubOBJExtPltt_2
+ bl GX_DisableBankForBG
+ bl GX_DisableBankForOBJ
+ bl GX_DisableBankForSubBG
+ bl GX_DisableBankForSubOBJ
bl MOD13_0223BE1C
ldr r0, _0223BFB8 ; =0x022431D8
ldr r0, [r0]
@@ -35246,10 +35246,10 @@ _0223BFE0: .word 0x0400101C
MOD13_0223BFE4: ; 0x0223BFE4
stmdb sp!, {lr}
sub sp, sp, #4
- bl disableBankForX_
+ bl GX_DisableBankForBG
ldr r1, _0223C09C ; =0x022431D8
str r0, [r1]
- bl GX_DisableBankForOBJExtPltt_2
+ bl GX_DisableBankForOBJ
ldr r1, _0223C09C ; =0x022431D8
str r0, [r1, #4]
bl GX_DisableBankForBGExtPltt
@@ -35258,7 +35258,7 @@ MOD13_0223BFE4: ; 0x0223BFE4
bl GX_DisableBankForOBJExtPltt
ldr r1, _0223C09C ; =0x022431D8
str r0, [r1, #0xc]
- bl GX_DisableBankForTexPltt_2
+ bl GX_DisableBankForTex
ldr r1, _0223C09C ; =0x022431D8
str r0, [r1, #0x10]
bl GX_DisableBankForTexPltt
@@ -35267,13 +35267,13 @@ MOD13_0223BFE4: ; 0x0223BFE4
bl GX_DisableBankForClearImage
ldr r1, _0223C09C ; =0x022431D8
str r0, [r1, #0x18]
- bl GX_DisableBankForSubBGExtPltt
+ bl GX_DisableBankForSubBG
ldr r1, _0223C09C ; =0x022431D8
str r0, [r1, #0x1c]
- bl GX_DisableBankForSubOBJExtPltt_2
+ bl GX_DisableBankForSubOBJ
ldr r1, _0223C09C ; =0x022431D8
str r0, [r1, #0x20]
- bl FUN_020C5E04
+ bl GX_DisableBankForSubBGExtPltt
ldr r1, _0223C09C ; =0x022431D8
str r0, [r1, #0x24]
bl GX_DisableBankForSubOBJExtPltt
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index d5f05188..5b8cf4c3 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -10480,7 +10480,7 @@ MOD14_021DC76C: ; 0x021DC76C
lsl r0, r0, #4
str r5, [r4, r0]
mov r0, #0xa
- bl FUN_02016B94
+ bl BgConfig_Alloc
mov r1, #0x57
lsl r1, r1, #2
str r0, [r4, r1]
@@ -10829,22 +10829,22 @@ MOD14_021DCA38: ; 0x021DCA38
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0x56
lsl r0, r0, #2
ldr r0, [r4, r0]
@@ -12846,28 +12846,28 @@ MOD14_021DDA38: ; 0x021DDA38
add r2, r0, #0
bl GX_SetGraphicsMode
ldr r0, _021DDB28 ; =MOD14_021E627C
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB2C ; =MOD14_021E6350
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB30 ; =MOD14_021E6334
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB34 ; =MOD14_021E62FC
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
bl MOD14_021DC3C4
cmp r0, #4
@@ -12878,28 +12878,28 @@ MOD14_021DDA38: ; 0x021DDA38
ldr r2, _021DDB38 ; =MOD14_021E6318
mov r1, #4
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB3C ; =MOD14_021E62E0
mov r1, #5
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB40 ; =MOD14_021E62C4
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB44 ; =MOD14_021E62A8
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
b _021DDB1A
_021DDADA:
mov r0, #0x57
@@ -12908,28 +12908,28 @@ _021DDADA:
ldr r2, _021DDB38 ; =MOD14_021E6318
mov r1, #4
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB48 ; =MOD14_021E6388
mov r1, #5
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB4C ; =MOD14_021E628C
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
ldr r2, _021DDB44 ; =MOD14_021E62A8
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
_021DDB1A:
bl MOD14_021DDC78
pop {r3, r4, r5, pc}
@@ -12978,12 +12978,12 @@ MOD14_021DDB50: ; 0x021DDB50
ldr r0, [r5, r0]
mov r1, #1
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x57
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -13584,7 +13584,7 @@ MOD14_021DE014: ; 0x021DE014
ldr r0, _021DE060 ; =0x00005984
mov r1, #3
ldr r0, [r4, r0]
- bl FUN_02017B48
+ bl Bg_GetXpos
ldr r1, _021DE064 ; =0x0000585C
str r0, [r4, #0xc]
ldr r1, [r4, r1]
@@ -13597,7 +13597,7 @@ MOD14_021DE014: ; 0x021DE014
ldr r0, _021DE060 ; =0x00005984
str r3, [r4, #0xc]
ldr r0, [r4, r0]
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0
str r3, [sp]
mov r0, #0x40
@@ -13610,7 +13610,7 @@ MOD14_021DE014: ; 0x021DE014
mov r1, #3
ldr r0, [r4, r0]
mov r2, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -13862,7 +13862,7 @@ _021DE250:
ldr r0, [r6, r0]
ldr r3, [r3, #0x10]
mov r1, #3
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
_021DE262:
ldr r0, [sp, #0x10]
bl FreeToHeap
@@ -13899,7 +13899,7 @@ MOD14_021DE278: ; 0x021DE278
ldr r0, _021DE2E4 ; =0x00005984
mov r1, #3
ldr r0, [r5, r0]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r7, r0, #0
beq _021DE2C2
ldr r1, [sp, #0x20]
@@ -13920,7 +13920,7 @@ _021DE2C2:
mov r1, #3
add r2, r7, #0
lsl r3, r3, #0xc
- bl FUN_02017CE8
+ bl BgCopyOrUncompressTilemapBufferRangeToVram
_021DE2DC:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
@@ -13937,7 +13937,7 @@ MOD14_021DE2E8: ; 0x021DE2E8
ldr r0, [r5, r0]
mov r1, #3
add r6, r2, #0
- bl FUN_02017B48
+ bl Bg_GetXpos
lsl r0, r0, #0x17
lsr r1, r0, #0xb
mov r0, #0xb8
@@ -14105,7 +14105,7 @@ MOD14_021DE3E4: ; 0x021DE3E4
ldr r3, [r5, #0xc]
ldr r0, [r5, r0]
mov r1, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r5, #4]
sub r0, r0, #1
str r0, [r5, #4]
@@ -14116,7 +14116,7 @@ _021DE45C:
ldr r0, [r5, r0]
mov r1, #3
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r1, _021DE480 ; =0x00000618
add r0, r5, #0
add r5, #0xa8
@@ -19503,7 +19503,7 @@ MOD14_021E0E44: ; 0x021E0E44
_021E0E58:
ldr r0, [r5, #4]
add r0, r0, r4
- bl FUN_02019178
+ bl RemoveWindow
add r6, r6, #1
add r4, #0x10
cmp r6, #4
@@ -19646,18 +19646,18 @@ _021E0F5E:
ldr r0, [r5, #8]
add r1, r1, r4
add r2, r6, #0
- bl FUN_02019150
+ bl AddWindow
cmp r7, #3
ldr r0, [r5, #4]
beq _021E0F78
add r0, r0, r4
- bl FUN_02019270
+ bl PutWindowTilemap
b _021E0F82
_021E0F78:
add r0, r0, r4
mov r1, #0xc
mov r2, #2
- bl FUN_0201928C
+ bl PutWindowTilemapRectAnchoredTopLeft
_021E0F82:
add r7, r7, #1
add r6, #8
@@ -19666,7 +19666,7 @@ _021E0F82:
blt _021E0F5E
ldr r0, [r5, #8]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_021E0F94:
add r0, r5, #0
bl MOD14_021E0FA8
@@ -19931,7 +19931,7 @@ _021E1190:
bl MOD14_021E12B8
ldr r0, [r5, #4]
add r0, #0x30
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
mov r0, #0
strh r0, [r4, #4]
mov r0, #2
@@ -19968,7 +19968,7 @@ _021E11CE:
bl ScrollWindow
ldr r0, [r5, #4]
add r0, #0x30
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldrh r0, [r4, #6]
cmp r0, #0x10
blo _021E1220
@@ -20254,16 +20254,16 @@ MOD14_021E13F0: ; 0x021E13F0
bl MOD14_021E153C
_021E1430:
ldr r0, [r4, #4]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #4]
add r0, #0x10
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #4]
add r0, #0x20
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #4]
add r0, #0x30
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
_021E144E:
pop {r4, pc}
@@ -20309,16 +20309,16 @@ _021E14A0:
bl MOD14_021E16A0
_021E14A8:
ldr r0, [r4, #4]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #4]
add r0, #0x10
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #4]
add r0, #0x20
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #4]
add r0, #0x30
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
bl MOD14_021E1114
_021E14CC:
@@ -20358,16 +20358,16 @@ _021E150E:
mov r1, #0
bl MOD14_021E16A0
ldr r0, [r4, #4]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #4]
add r0, #0x10
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #4]
add r0, #0x20
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #4]
add r0, #0x30
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
bl MOD14_021E1140
_021E153A:
@@ -20555,7 +20555,7 @@ MOD14_021E16A0: ; 0x021E16A0
add r4, r1, #0
ldr r0, [r0, #8]
mov r1, #2
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
add r2, r0, #0
mov r0, #1
@@ -20595,7 +20595,7 @@ _021E16DC:
ldr r0, [r0, #8]
mov r1, #2
mov r3, #0xc
- bl FUN_02017CE8
+ bl BgCopyOrUncompressTilemapBufferRangeToVram
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -20711,7 +20711,7 @@ MOD14_021E17C4: ; 0x021E17C4
_021E17D2:
ldr r0, [r5, #0x18]
add r0, r0, r4
- bl FUN_02019178
+ bl RemoveWindow
add r6, r6, #1
add r4, #0x10
cmp r6, #2
@@ -20763,7 +20763,7 @@ _021E1832:
ldr r0, [r6]
add r1, r1, r5
add r2, r4, #0
- bl FUN_02019150
+ bl AddWindow
add r7, r7, #1
add r4, #8
add r5, #0x10
@@ -20815,7 +20815,7 @@ MOD14_021E189C: ; 0x021E189C
add r5, r0, #0
ldr r0, [r5, #0x18]
add r4, r1, #0
- bl FUN_02019270
+ bl PutWindowTilemap
ldr r3, [r5, #0x18]
ldrb r0, [r3, #7]
str r0, [sp]
@@ -20847,10 +20847,10 @@ MOD14_021E189C: ; 0x021E189C
mov r1, #1
bl AddTextPrinterParameterized
ldr r0, [r5, #0x18]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r5]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #1
strh r0, [r5, #0x1c]
add sp, #0xc
@@ -20866,7 +20866,7 @@ MOD14_021E1908: ; 0x021E1908
add r6, r2, #0
ldr r4, [sp, #0x18]
ldr r5, [sp, #0x1c]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
sub r1, r7, #1
sub r2, r6, #2
lsl r1, r1, #5
@@ -21039,10 +21039,10 @@ _021E1A5C:
ldrb r1, [r1]
bl MOD14_021E1AD8
ldr r0, [sp, #0x14]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r5]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #1
strh r0, [r5, #0x1e]
add sp, #0x18
@@ -21100,7 +21100,7 @@ MOD14_021E1AD8: ; 0x021E1AD8
add r5, r1, #0
ldr r0, [r0]
mov r1, #1
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r2, #8
sub r2, r2, r5
mov ip, r2
@@ -21175,7 +21175,7 @@ _021E1B5A:
_021E1B6E:
ldr r0, [r4]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
pop {r4, pc}
thumb_func_start MOD14_021E1B78
@@ -21194,7 +21194,7 @@ MOD14_021E1B78: ; 0x021E1B78
_021E1B90:
ldr r0, [r4]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
pop {r4, pc}
.align 2, 0
@@ -21230,7 +21230,7 @@ MOD14_021E1B9C: ; 0x021E1B9C
add r2, r5, r2
bl FUN_02002218
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #8
pop {r4, r5, r6, pc}
@@ -21254,7 +21254,7 @@ _021E1BF0:
cmp r5, #6
blt _021E1BF0
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -21267,7 +21267,7 @@ MOD14_021E1C10: ; 0x021E1C10
add r6, r2, #0
ldr r5, [sp, #0x18]
ldr r4, [sp, #0x1c]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
sub r1, r7, #1
sub r2, r6, #1
lsl r1, r1, #5
@@ -21339,7 +21339,7 @@ MOD14_021E1CA0: ; 0x021E1CA0
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
ldrb r1, [r4, #4]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldrb r1, [r4, #5]
mov r5, #0
sub r2, r1, #1
@@ -21383,7 +21383,7 @@ MOD14_021E1CEC: ; 0x021E1CEC
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
ldrb r1, [r4, #4]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldrb r1, [r4, #5]
mov r5, #0
sub r2, r1, #2
@@ -21643,7 +21643,7 @@ _021E1F04:
ldr r0, [r7, #4]
add r1, r1, r5
add r2, r4, #0
- bl FUN_02019150
+ bl AddWindow
add r6, r6, #1
add r4, #8
add r5, #0x10
@@ -21703,7 +21703,7 @@ _021E1F6E:
_021E1F78:
ldr r0, [r5, #0x10]
add r0, r0, r4
- bl FUN_02019178
+ bl RemoveWindow
add r6, r6, #1
add r4, #0x10
cmp r6, #3
@@ -21795,7 +21795,7 @@ MOD14_021E1FF8: ; 0x021E1FF8
mov r1, #9
mov r2, #0xa
mov r3, #0xe
- bl FUN_02018F4C
+ bl FillBitmapRect8Bit
mov r4, #0
mov r0, #0xc
str r4, [sp, #0x20]
@@ -21872,7 +21872,7 @@ _021E20AA:
lsl r1, r6, #0x10
ldr r0, [sp, #0x2c]
lsr r1, r1, #0x10
- bl FUN_02018F4C
+ bl FillBitmapRect8Bit
_021E20C8:
ldr r1, [sp, #0x1c]
add r0, r5, #0
@@ -22275,7 +22275,7 @@ MOD14_021E2394: ; 0x021E2394
sub r3, r3, r5
bl AddTextPrinterParameterized2
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@@ -22290,7 +22290,7 @@ MOD14_021E23F8: ; 0x021E23F8
add r0, r4, #0
bl FillWindowPixelBuffer
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
pop {r4, pc}
thumb_func_start MOD14_021E240C
@@ -22333,7 +22333,7 @@ _021E2450:
cmp r6, #7
blt _021E242C
ldr r0, [sp, #0xc]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -22347,7 +22347,7 @@ MOD14_021E2464: ; 0x021E2464
add r0, r4, #0
bl FillWindowPixelBuffer
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
pop {r4, pc}
.align 2, 0
@@ -22454,7 +22454,7 @@ _021E250C:
mov r1, #1
add r2, #0xc
mov r3, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldrb r6, [r4, #5]
mov r0, #0x20
mov r3, #0xa
@@ -22473,7 +22473,7 @@ _021E250C:
str r3, [sp, #0x18]
ldr r0, [r5, #4]
mov r1, #1
- bl FUN_02018170
+ bl CopyToBgTilemapRect
b _021E2582
_021E2562:
mov r0, #5
@@ -22487,14 +22487,14 @@ _021E2562:
mov r1, #1
add r2, #0xc
mov r3, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldrb r0, [r4, #4]
add r0, r0, #1
strb r0, [r4, #4]
_021E2582:
ldr r0, [r5, #4]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #7
add sp, #0x1c
strb r0, [r4, #5]
@@ -22538,17 +22538,17 @@ _021E25C2:
cmp r0, #0
bne _021E260E
ldr r0, [r5, #0x10]
- bl FUN_02019270
+ bl PutWindowTilemap
ldr r0, [r5, #0x10]
add r0, #0x10
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, #0
bl MOD14_021E2394
add r0, r5, #0
bl MOD14_021E240C
ldr r0, [r5, #4]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldrb r0, [r4, #4]
add sp, #0x1c
add r0, r0, #1
@@ -22601,7 +22601,7 @@ _021E264A:
ldr r0, [r4, #4]
mov r1, #1
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldrb r0, [r5, #5]
add r0, r0, #1
strb r0, [r5, #5]
@@ -22625,7 +22625,7 @@ _021E264A:
mov r1, #1
add r2, #0xc
mov r3, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldrb r1, [r5, #5]
mov r2, #5
mov r0, #0x20
@@ -22648,7 +22648,7 @@ _021E264A:
str r3, [sp, #0x18]
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_02018170
+ bl CopyToBgTilemapRect
b _021E26D0
_021E26CA:
ldrb r0, [r5, #4]
@@ -22657,7 +22657,7 @@ _021E26CA:
_021E26D0:
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x1c
pop {r4, r5, pc}
_021E26DC:
@@ -22682,7 +22682,7 @@ MOD14_021E26E4: ; 0x021E26E4
mov r1, #1
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0x18
str r0, [sp]
mov r0, #0x20
@@ -22694,7 +22694,7 @@ MOD14_021E26E4: ; 0x021E26E4
mov r1, #1
add r2, #0xc
mov r3, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r0, [r5, #0x10]
mov r1, #4
add r0, #0x20
@@ -22803,7 +22803,7 @@ _021E27DC:
ldr r0, [r4, #4]
mov r1, #1
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #0xe
ldr r2, [r4, #8]
lsl r1, r1, #0x10
@@ -22817,7 +22817,7 @@ _021E280A:
mov r1, #1
mov r2, #3
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #0xe
ldr r2, [r4, #0xc]
lsl r1, r1, #0x10
@@ -22882,7 +22882,7 @@ MOD14_021E2884: ; 0x021E2884
mov r1, #1
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
bl MOD14_021E2A28
mov r0, #1
@@ -22918,7 +22918,7 @@ MOD14_021E28B4: ; 0x021E28B4
ldr r0, [r4, #4]
mov r1, #1
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #0xe
ldr r2, [r4, #8]
lsl r1, r1, #0x10
@@ -22933,7 +22933,7 @@ _021E28EC:
mov r1, #1
mov r2, #3
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #0xe
ldr r2, [r4, #0xc]
lsl r1, r1, #0x10
@@ -22950,10 +22950,10 @@ _021E28EC:
ldr r0, [r4, #4]
mov r1, #1
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _021E293C ; =MOD14_021E28AC
ldr r2, [r4]
add r0, r4, #0
@@ -23194,7 +23194,7 @@ MOD14_021E2AE8: ; 0x021E2AE8
bl MOD14_021E32F8
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
pop {r4, pc}
thumb_func_start MOD14_021E2B10
@@ -23266,7 +23266,7 @@ _021E2B72:
bl MOD14_021E31A4
ldr r0, [r5, #4]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E3290
@@ -23368,7 +23368,7 @@ _021E2C0A:
mov r1, #2
mov r2, #0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
_021E2C46:
add r1, r5, #0
add r1, #0x2b
@@ -23377,7 +23377,7 @@ _021E2C46:
bl MOD14_021E31A4
ldr r0, [r5, #4]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
add r1, r4, #0
bl MOD14_021E3290
@@ -24121,7 +24121,7 @@ _021E31CC:
mov r1, #2
add r2, r4, r2
lsr r3, r3, #0x18
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
_021E31F0:
add sp, #0xc
pop {r3, r4, pc}
@@ -24509,7 +24509,7 @@ MOD14_021E34C0: ; 0x021E34C0
add r6, r0, #0
beq _021E3558
add r0, #0x88
- bl FUN_02019178
+ bl RemoveWindow
add r0, r6, #0
add r0, #0x98
ldr r0, [r0]
@@ -24644,7 +24644,7 @@ MOD14_021E355C: ; 0x021E355C
ldr r0, [r4, #8]
mov r1, #4
mov r3, #1
- bl FUN_02017F48
+ bl BG_FillCharDataRange
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -24655,10 +24655,10 @@ MOD14_021E355C: ; 0x021E355C
ldr r0, [r4, #8]
mov r1, #4
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r4, #8]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r3, [r4, #0x10]
ldr r0, [r4, #8]
lsl r5, r3, #2
@@ -24666,7 +24666,7 @@ MOD14_021E355C: ; 0x021E355C
mov r1, #5
ldr r3, [r3, r5]
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0
add r1, r4, #0
str r3, [sp]
@@ -24680,7 +24680,7 @@ MOD14_021E355C: ; 0x021E355C
ldr r0, [r4, #8]
add r1, #0x88
mov r2, #4
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
add r0, #0x88
mov r1, #0
@@ -24961,7 +24961,7 @@ _021E3852:
str r6, [r5, #0x10]
ldr r0, [r5, #8]
mov r1, #5
- bl FUN_02017B48
+ bl Bg_GetXpos
lsl r0, r0, #0xc
ldr r1, _021E3898 ; =MOD14_021E6674
lsl r2, r6, #2
@@ -25042,7 +25042,7 @@ _021E38DE:
ldr r0, [r5, #8]
mov r1, #5
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldrh r0, [r4, #0xc]
sub r0, r0, #1
strh r0, [r4, #0xc]
@@ -25052,7 +25052,7 @@ _021E3900:
ldr r3, [r4, #0x18]
mov r1, #5
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0x10
str r0, [sp]
ldr r0, _021E3978 ; =0x04001050
@@ -25072,7 +25072,7 @@ _021E3924:
mov r1, #6
ldr r3, [r3, r5]
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0
strh r0, [r4, #0xe]
ldr r0, [r4, #4]
@@ -25176,7 +25176,7 @@ _021E39CE:
mov r1, #6
ldr r3, [r3, r5]
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
@@ -25193,7 +25193,7 @@ _021E3A0C:
ldr r0, [r5, #8]
mov r1, #5
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldrh r0, [r4, #0xc]
sub r0, r0, #1
strh r0, [r4, #0xc]
@@ -25203,7 +25203,7 @@ _021E3A2E:
ldr r3, [r4, #0x18]
mov r1, #5
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0x10
str r0, [sp]
ldr r0, _021E3AA4 ; =0x04001050
@@ -25223,7 +25223,7 @@ _021E3A52:
mov r1, #6
ldr r3, [r3, r5]
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0
strh r0, [r4, #0xe]
ldr r0, [r4, #4]
@@ -25309,7 +25309,7 @@ _021E3ADA:
ldr r0, [r0, #8]
mov r1, #6
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
@@ -25326,7 +25326,7 @@ _021E3B12:
mov r1, #5
mov r2, #0
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldrh r0, [r4, #0xc]
sub r0, r0, #1
strh r0, [r4, #0xc]
@@ -25336,7 +25336,7 @@ _021E3B34:
ldr r3, [r4, #0x18]
mov r1, #5
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
@@ -27001,12 +27001,12 @@ _021E4762:
thumb_func_start MOD14_021E4764
MOD14_021E4764: ; 0x021E4764
- ldr r3, _021E476C ; =FUN_0201797C
+ ldr r3, _021E476C ; =ToggleBgLayer
mov r0, #4
mov r1, #0
bx r3
.align 2, 0
-_021E476C: .word FUN_0201797C
+_021E476C: .word ToggleBgLayer
thumb_func_start MOD14_021E4770
MOD14_021E4770: ; 0x021E4770
@@ -27020,7 +27020,7 @@ MOD14_021E4770: ; 0x021E4770
bl G2x_SetBlendAlpha_
mov r0, #4
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
pop {r3, pc}
.align 2, 0
_021E478C: .word 0x04001050
@@ -27090,7 +27090,7 @@ _021E4800:
blo _021E47AE
add r0, r6, #0
add r0, #0x88
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r6, #0
bl MOD14_021E4770
add sp, #0x14
@@ -28336,7 +28336,7 @@ MOD14_021E5128: ; 0x021E5128
mov r1, #0x20
mov r2, #0
mov r3, #0xa
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -28347,7 +28347,7 @@ MOD14_021E5128: ; 0x021E5128
ldr r0, [r4, #0xc]
mov r1, #4
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r4, #0
bl MOD14_021E539C
add r0, r4, #0
@@ -28359,7 +28359,7 @@ MOD14_021E5128: ; 0x021E5128
str r0, [r4, r1]
ldr r0, [r4, #0xc]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r4, #0
bl MOD14_021E5A08
_021E5210:
@@ -28469,7 +28469,7 @@ MOD14_021E52C0: ; 0x021E52C0
bl MOD14_021E5504
ldr r0, [r4, #0xc]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_021E52DE:
pop {r4, pc}
@@ -28502,7 +28502,7 @@ _021E530A:
bl MOD14_021E549C
ldr r0, [r4, #0xc]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #0xdf
lsl r0, r0, #2
ldr r1, [r4, r0]
@@ -28550,7 +28550,7 @@ _021E534A:
ldr r0, [r5, #0xc]
mov r1, #2
add r3, r2, #0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
mov r0, #6
str r0, [sp]
mov r0, #0x20
@@ -28565,10 +28565,10 @@ _021E534A:
str r0, [sp, #0x18]
ldr r0, [r5, #0xc]
mov r1, #2
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r0, [r5, #0xc]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x1c
pop {r4, r5, pc}
@@ -28587,35 +28587,35 @@ MOD14_021E539C: ; 0x021E539C
_021E53B2:
mov r0, #5
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
pop {r3, pc}
_021E53CC:
mov r0, #6
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
pop {r3, pc}
_021E53E6:
mov r0, #7
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
pop {r3, pc}
thumb_func_start MOD14_021E5400
@@ -28640,9 +28640,9 @@ _021E541E:
ldr r0, [r7, #0xc]
add r1, r4, #0
add r2, r6, #0
- bl FUN_02019150
+ bl AddWindow
add r0, r4, #0
- bl FUN_02019270
+ bl PutWindowTilemap
add r5, r5, #1
add r6, #8
add r4, #0x10
@@ -28663,7 +28663,7 @@ _021E541E:
add r4, #0x78
_021E5458:
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r5, r5, #1
add r4, #0x10
cmp r5, #3
@@ -28688,7 +28688,7 @@ _021E547E:
cmp r0, #0
beq _021E548E
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_021E548E:
add r6, r6, #1
add r5, #0x10
@@ -28792,9 +28792,9 @@ _021E554C:
add r1, r5, r4
ldr r0, [r0, #0xc]
add r2, r7, #0
- bl FUN_02019150
+ bl AddWindow
add r0, r5, r4
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, r4
mov r1, #0
bl FillWindowPixelBuffer
@@ -28823,9 +28823,9 @@ _021E5588:
cmp r0, #0
beq _021E55A4
add r0, r5, #0
- bl FUN_020192B8
+ bl ClearWindowTilemap
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x84
str r7, [r0]
@@ -28978,9 +28978,9 @@ _021E56B4:
add r1, r5, r4
ldr r0, [r0, #0xc]
add r2, r7, #0
- bl FUN_02019150
+ bl AddWindow
add r0, r5, r4
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, r4
mov r1, #0
bl FillWindowPixelBuffer
@@ -29009,9 +29009,9 @@ _021E56F0:
cmp r0, #0
beq _021E570C
add r0, r5, #0
- bl FUN_020192B8
+ bl ClearWindowTilemap
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x84
str r7, [r0]
@@ -29102,7 +29102,7 @@ _021E5786:
bl AddTextPrinterParameterized2
_021E57B8:
add r0, r7, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
@@ -29118,7 +29118,7 @@ MOD14_021E57CC: ; 0x021E57CC
mov r1, #0
bl FillWindowPixelBuffer
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
pop {r4, pc}
.align 2, 0
@@ -29259,7 +29259,7 @@ _021E58C8:
blt _021E58C8
_021E58FA:
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -29386,7 +29386,7 @@ _021E59C6:
blt _021E59C6
_021E59F8:
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -29782,7 +29782,7 @@ MOD14_021E5CFC: ; 0x021E5CFC
bl AddTextPrinterParameterized2
_021E5D56:
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s
index a1f0f2d1..501b5379 100644
--- a/arm9/modules/15/asm/module_15.s
+++ b/arm9/modules/15/asm/module_15.s
@@ -2611,7 +2611,7 @@ MOD15_021D87F8: ; 0x021D87F8
bl FUN_02008C9C
str r0, [r4, #0x24]
mov r0, #0x23
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x20]
ldr r0, _021D8880 ; =MOD15_021D88D8
add r1, r4, #0
@@ -3076,19 +3076,19 @@ _021D8BF4:
blt _021D8BD8
ldr r0, [r7, #0x20]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7, #0x20]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7, #0x20]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7, #0x20]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7, #0x20]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r6, #0
bl MOD15_021D8998
_021D8C2A:
@@ -3112,32 +3112,32 @@ MOD15_021D8C30: ; 0x021D8C30
ldr r0, _021D8C98 ; =0x021DB964
bl GX_SetBanks
ldr r0, _021D8C9C ; =0x021DB8C8
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r1, #0
ldr r0, [r4, #0x20]
ldr r2, _021D8CA0 ; =0x021DB910
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x20]
ldr r2, _021D8CA4 ; =0x021DB8D8
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x20]
ldr r2, _021D8CA8 ; =0x021DB948
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x20]
ldr r2, _021D8CAC ; =0x021DB8F4
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x20]
ldr r2, _021D8CB0 ; =0x021DB92C
mov r1, #4
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
pop {r4, pc}
nop
_021D8C94: .word 0x04000304
@@ -4388,13 +4388,13 @@ _021D966A:
_021D9674:
add r0, r4, #0
add r0, #0xc
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x1c
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x2c
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
@@ -4446,7 +4446,7 @@ MOD15_021D9694: ; 0x021D9694
add r0, r6, #0
add r1, #0xc
mov r3, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x15
str r0, [sp]
mov r0, #0x1b
@@ -4464,7 +4464,7 @@ MOD15_021D9694: ; 0x021D9694
add r0, r6, #0
add r1, #0x1c
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xf
str r0, [sp]
mov r0, #8
@@ -4483,7 +4483,7 @@ MOD15_021D9694: ; 0x021D9694
add r1, #0x2c
mov r2, #0
mov r3, #0x17
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
add r0, #0xc2
str r0, [sp]
@@ -4532,10 +4532,10 @@ MOD15_021D9694: ; 0x021D9694
bl FUN_0200D06C
add r0, r5, #0
add r0, #0xc
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, #0
add r0, #0x1c
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, #0
bl MOD15_021D9868
add r0, r5, #0
@@ -4547,7 +4547,7 @@ MOD15_021D9694: ; 0x021D9694
bl MOD15_021D98C0
add r0, r6, #0
mov r1, #0
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x14
pop {r3, r4, r5, r6, pc}
@@ -4815,7 +4815,7 @@ _021D99FA:
_021D9A02:
add r4, #0xc
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
pop {r4, pc}
thumb_func_start MOD15_021D9A0C
@@ -5306,7 +5306,7 @@ _021D9D8C:
_021D9DB0:
add r4, #0x1c
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
@@ -5552,7 +5552,7 @@ MOD15_021D9F88: ; 0x021D9F88
bl FUN_0200CCF8
add r4, #0x2c
add r0, r4, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
pop {r4, pc}
.align 2, 0
@@ -5630,7 +5630,7 @@ MOD15_021D9FD4: ; 0x021D9FD4
bl MOD15_021DA0B8
add r0, r4, #0
mov r1, #3
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -5645,9 +5645,9 @@ MOD15_021DA044: ; 0x021DA044
add r4, r2, #0
add r1, sp, #0x10
add r2, r5, #0
- bl FUN_02019150
+ bl AddWindow
add r0, sp, #0x10
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, sp, #0x10
mov r1, #0xe
bl FillWindowPixelBuffer
@@ -5676,11 +5676,11 @@ MOD15_021DA044: ; 0x021DA044
str r1, [sp, #0xc]
bl AddTextPrinterParameterized2
add r0, sp, #0x10
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
bl String_dtor
add r0, sp, #0x10
- bl FUN_02019178
+ bl RemoveWindow
add sp, #0x20
pop {r3, r4, r5, pc}
nop
@@ -5794,7 +5794,7 @@ MOD15_021DA164: ; 0x021DA164
mov r1, #3
add r2, r1, #0
mov r3, #0x40
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r3, pc}
thumb_func_start MOD15_021DA178
@@ -5805,7 +5805,7 @@ MOD15_021DA178: ; 0x021DA178
mov r1, #3
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r3, pc}
thumb_func_start MOD15_021DA18C
@@ -5892,12 +5892,12 @@ MOD15_021DA1D0: ; 0x021DA1D0
add r0, r4, #0
mov r1, #1
sub r3, r2, #4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #1
mov r2, #3
mov r3, #2
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r5, #0
bl MOD15_021DA54C
mov r1, #2
@@ -5936,7 +5936,7 @@ MOD15_021DA1D0: ; 0x021DA1D0
str r0, [r3]
add r0, r4, #0
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r3, r4, r5, pc}
nop
@@ -6018,7 +6018,7 @@ _021DA31A:
add r1, sp, #0x28
mov r2, #1
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, sp, #0x28
mov r1, #0xf
bl FillWindowPixelBuffer
@@ -6042,13 +6042,13 @@ _021DA31A:
add r2, r5, #0
bl AddTextPrinterParameterized2
add r0, sp, #0x28
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, sp, #0x28
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r5, #0
bl String_dtor
add r0, sp, #0x28
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r6, #0x12
add r7, #0xa
@@ -6095,7 +6095,7 @@ _021DA3CC:
add r0, r4, #0
mov r2, #1
mov r3, #0x22
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #4
mov r1, #0x23
bl String_ctor
@@ -6143,13 +6143,13 @@ _021DA430:
blo _021DA40C
_021DA452:
add r0, sp, #0x20
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, sp, #0x20
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r4, #0
bl String_dtor
add r0, sp, #0x20
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [sp, #0x14]
add r0, #0xc8
str r0, [sp, #0x14]
@@ -6212,7 +6212,7 @@ _021DA4C2:
ldr r0, [sp, #0x14]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r6, #0
mov r1, #0xf
bl FillWindowPixelBuffer
@@ -6230,11 +6230,11 @@ _021DA4C2:
mov r1, #0
bl AddTextPrinterParameterized2
add r0, r6, #0
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r6, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r6, #0
- bl FUN_02019178
+ bl RemoveWindow
add r7, r7, #1
add r5, #0x10
add r4, r4, #4
@@ -6495,7 +6495,7 @@ MOD15_021DA710: ; 0x021DA710
mov r1, #1
mov r2, #3
mov r3, #2
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r3, pc}
thumb_func_start MOD15_021DA720
@@ -6545,7 +6545,7 @@ MOD15_021DA760: ; 0x021DA760
beq _021DA778
mov r0, #1
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
pop {r3, pc}
_021DA778:
@@ -6566,7 +6566,7 @@ MOD15_021DA77C: ; 0x021DA77C
bl G2x_SetBlendAlpha_
mov r0, #1
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x7c
str r0, [sp]
mov r0, #0xc
@@ -6607,7 +6607,7 @@ _021DA7DA:
ldr r0, [r4, #0xc]
mov r1, #1
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r4, pc}
.align 2, 0
@@ -6684,7 +6684,7 @@ MOD15_021DA828: ; 0x021DA828
add r1, #0x10
mov r2, #2
mov r3, #4
- bl FUN_02019064
+ bl AddWindowParameterized
mov r3, #0
str r3, [sp]
mov r1, #0xc
@@ -6698,7 +6698,7 @@ MOD15_021DA828: ; 0x021DA828
ldr r0, [r4, #0xc]
add r1, #0x20
mov r2, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [r4, #0x30]
str r0, [r4, #0x34]
@@ -6734,10 +6734,10 @@ _021DA8C6:
_021DA8D0:
add r0, r4, #0
add r0, #0x20
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x10
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
@@ -6754,7 +6754,7 @@ MOD15_021DA8E8: ; 0x021DA8E8
mov r1, #0x20
mov r2, #0
mov r3, #0x23
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -6765,25 +6765,25 @@ MOD15_021DA8E8: ; 0x021DA8E8
add r0, r4, #0
mov r1, #2
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r5, #0
add r0, #0x10
mov r1, #0
bl FillWindowPixelBuffer
add r0, r5, #0
add r0, #0x10
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, #0
add r0, #0x10
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD15_021DA950
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -6885,7 +6885,7 @@ _021DAA12:
_021DAA18:
add r6, #0x10
add r0, r6, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -6903,7 +6903,7 @@ MOD15_021DAA24: ; 0x021DAA24
bl G2x_SetBlendAlpha_
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r1, _021DAAC0 ; =0x04000048
ldr r0, _021DAAC4 ; =0xFFFFC0FF
ldrh r2, [r1]
@@ -7027,7 +7027,7 @@ MOD15_021DAB18: ; 0x021DAB18
beq _021DAB74
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, _021DAB78 ; =0x0400004A
ldrh r2, [r0]
mov r0, #0x3f
@@ -7210,7 +7210,7 @@ _021DAC84:
str r0, [r1]
add r0, r7, #0
add r0, #0x10
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [sp, #8]
mov r2, #2
str r0, [sp]
@@ -7337,7 +7337,7 @@ MOD15_021DAD78: ; 0x021DAD78
ldr r0, [r0, #0xc]
mov r1, #2
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r3, pc}
.align 2, 0
@@ -7531,7 +7531,7 @@ MOD15_021DAEB4: ; 0x021DAEB4
ldr r0, [r4, #0xc]
mov r1, #4
add r3, r2, #0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
mov r2, #0xb
mov r0, #0xa5
lsl r0, r0, #2
@@ -7549,7 +7549,7 @@ MOD15_021DAEB4: ; 0x021DAEB4
mov r1, #4
mov r2, #3
mov r3, #0xe
- bl FUN_02018170
+ bl CopyToBgTilemapRect
b _021DAF92
_021DAF4A:
mov r2, #0xb
@@ -7568,7 +7568,7 @@ _021DAF4A:
ldr r0, [r4, #0xc]
mov r1, #4
add r3, r2, #0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
mov r2, #0xb
ldr r0, _021DAFA8 ; =0x00000462
str r2, [sp]
@@ -7585,13 +7585,13 @@ _021DAF4A:
mov r1, #4
mov r2, #3
mov r3, #0xe
- bl FUN_02018170
+ bl CopyToBgTilemapRect
_021DAF92:
add r0, r4, #0
bl MOD15_021DB154
ldr r0, [r4, #0xc]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x1c
pop {r3, r4, pc}
.align 2, 0
@@ -7732,7 +7732,7 @@ MOD15_021DAFF8: ; 0x021DAFF8
ldr r0, [r5, #0xc]
ldr r3, [r3, #0x10]
mov r1, #4
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r0, [sp, #8]
bl FreeToHeap
_021DB0D4:
@@ -8105,7 +8105,7 @@ _021DB390:
lsl r3, r3, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r3, [r4]
mov r2, #0xb
add r0, r3, #0
@@ -8131,11 +8131,11 @@ _021DB390:
lsl r3, r3, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r0, [r4]
mov r1, #4
ldr r0, [r0, #0xc]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldrh r0, [r4, #0xa]
add sp, #0x1c
add r0, r0, #1
@@ -8176,11 +8176,11 @@ _021DB416:
lsl r3, r3, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r0, [r4]
mov r1, #4
ldr r0, [r0, #0xc]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #0
strh r0, [r4, #8]
ldrh r0, [r4, #0xa]
@@ -8223,11 +8223,11 @@ _021DB476:
lsl r3, r3, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r0, [r4]
mov r1, #4
ldr r0, [r0, #0xc]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, [r4, #4]
add sp, #0x1c
add r0, r0, #1
@@ -8322,14 +8322,14 @@ MOD15_021DB564: ; 0x021DB564
bne _021DB57E
add r0, r1, #0
add r1, r2, #0
- bl FUN_02017B48
+ bl Bg_GetXpos
str r0, [r4, #0xc]
mov r0, #0
b _021DB58A
_021DB57E:
add r0, r1, #0
add r1, r2, #0
- bl FUN_02017B54
+ bl Bg_GetYpos
str r0, [r4, #0xc]
mov r0, #3
_021DB58A:
@@ -8416,7 +8416,7 @@ MOD15_021DB604: ; 0x021DB604
lsr r1, r1, #0x18
lsr r2, r2, #0x18
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldrh r0, [r4, #0x18]
sub r0, r0, #1
strh r0, [r4, #0x18]
@@ -8430,7 +8430,7 @@ _021DB632:
ldr r3, [r4, #0x10]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r4, pc}
thumb_func_start MOD15_021DB648
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 9417b6bd..66103b62 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -1065,7 +1065,7 @@ MOD16_021D7CC8: ; 0x021D7CC8
lsl r1, r1, #0x18
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r1, [r5, #0x14]
ldr r6, [r5, #0x1c]
add r0, r1, #0
@@ -1106,7 +1106,7 @@ MOD16_021D7CC8: ; 0x021D7CC8
lsl r1, r1, #0x18
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
_021D7D4C:
mov r0, #0x20
sub r3, r0, r4
@@ -1130,13 +1130,13 @@ _021D7D4C:
ldr r0, [r5]
lsr r1, r1, #0x18
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
_021D7D7C:
ldr r1, [r5, #8]
ldr r0, [r5]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x1c]
add sp, #0x1c
add r0, r0, #1
@@ -2153,7 +2153,7 @@ MOD16_021D8534: ; 0x021D8534
lsl r1, r1, #2
str r0, [r5, r1]
add r0, r4, #0
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r5]
mov r1, #1
mov r0, #0
@@ -2162,7 +2162,7 @@ MOD16_021D8534: ; 0x021D8534
str r1, [sp, #0x18]
str r1, [sp, #0x1c]
add r0, sp, #0x10
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r5]
add r1, r4, #0
bl MOD16_021D8DC0
@@ -2330,7 +2330,7 @@ MOD16_021D86DC: ; 0x021D86DC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
mov r0, #0x55
lsl r0, r0, #2
ldr r0, [r4, r0]
@@ -3198,7 +3198,7 @@ _021D8CDC:
ldr r2, [r2, #0x14]
lsr r1, r1, #0x18
add r3, r4, #0
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
_021D8CF0:
add r0, r7, #0
bl FreeToHeap
@@ -3335,15 +3335,15 @@ MOD16_021D8DC0: ; 0x021D8DC0
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r6, _021D8F18 ; =0x021FF4F4
add r3, sp, #0x70
ldmia r6!, {r0, r1}
@@ -3358,18 +3358,18 @@ MOD16_021D8DC0: ; 0x021D8DC0
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
add r1, r0, #0
bl GX_EngineAToggleLayers
@@ -3387,15 +3387,15 @@ MOD16_021D8DC0: ; 0x021D8DC0
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r6, _021D8F20 ; =0x021FF4BC
add r3, sp, #0x38
ldmia r6!, {r0, r1}
@@ -3410,15 +3410,15 @@ MOD16_021D8DC0: ; 0x021D8DC0
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #5
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r6, _021D8F24 ; =0x021FF4A0
add r3, sp, #0x1c
ldmia r6!, {r0, r1}
@@ -3433,15 +3433,15 @@ MOD16_021D8DC0: ; 0x021D8DC0
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #6
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #6
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r6, _021D8F28 ; =0x021FF52C
add r3, sp, #0
ldmia r6!, {r0, r1}
@@ -3456,15 +3456,15 @@ MOD16_021D8DC0: ; 0x021D8DC0
str r0, [r3]
add r0, r5, #0
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #7
mov r1, #0x40
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0xa8
pop {r4, r5, r6, pc}
.align 2, 0
@@ -3481,22 +3481,22 @@ MOD16_021D8F2C: ; 0x021D8F2C
push {r4, lr}
add r4, r0, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD16_021D8F2C
@@ -3515,7 +3515,7 @@ MOD16_021D8F60: ; 0x021D8F60
ldr r0, [r4]
add r1, r4, #4
mov r2, #1
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #4
mov r1, #0
bl FillWindowPixelBuffer
@@ -3531,7 +3531,7 @@ MOD16_021D8F90: ; 0x021D8F90
add r0, r0, #4
bx r3
nop
-_021D8F98: .word FUN_02019178
+_021D8F98: .word RemoveWindow
thumb_func_end MOD16_021D8F90
thumb_func_start MOD16_021D8F9C
@@ -8445,7 +8445,7 @@ MOD16_021DB388: ; 0x021DB388
add r1, r7, #0
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
add r0, r7, #0
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@@ -8457,7 +8457,7 @@ MOD16_021DB3BC: ; 0x021DB3BC
mov r1, #1
bx r3
nop
-_021DB3C4: .word FUN_020191A4
+_021DB3C4: .word WindowArray_dtor
thumb_func_end MOD16_021DB3BC
thumb_func_start MOD16_021DB3C8
@@ -11429,7 +11429,7 @@ MOD16_021DC860: ; 0x021DC860
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [r5]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -11454,12 +11454,12 @@ MOD16_021DC860: ; 0x021DC860
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [r5]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
ldr r0, [r5]
mov r1, #3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD16_021DC860
@@ -11607,7 +11607,7 @@ MOD16_021DC958: ; 0x021DC958
bl DestroyMsgData
ldr r0, [r5]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -11669,7 +11669,7 @@ MOD16_021DCA2C: ; 0x021DCA2C
bl DestroyMsgData
ldr r0, [r5]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -13043,7 +13043,7 @@ MOD16_021DD530: ; 0x021DD530
str r4, [sp, #0x1c]
mov r7, #0xe
mov r5, #4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
b _021DD594
_021DD568:
mov r0, #3
@@ -13130,7 +13130,7 @@ _021DD5FE:
mov r1, #1
ldr r0, [r0]
mov r2, #3
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
_021DD60A:
add r0, r6, #0
pop {r4, r5, r6, pc}
@@ -13150,7 +13150,7 @@ MOD16_021DD610: ; 0x021DD610
ldr r0, [r0]
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_021DD62A:
mov r2, #1
lsl r2, r2, #0x1a
@@ -13354,7 +13354,7 @@ _021DD77E:
ldr r0, [r5]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
_021DD7B0:
add r0, r5, #0
add r1, r4, #0
@@ -13509,7 +13509,7 @@ _021DD8A8:
ldr r0, [r5]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
b _021DD8F6
_021DD8E0:
add r0, r7, #0
@@ -14753,7 +14753,7 @@ MOD16_021DE1E0: ; 0x021DE1E0
bl MOD16_021DE594
mov r0, #7
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD16_021DE1E0
@@ -14774,7 +14774,7 @@ MOD16_021DE228: ; 0x021DE228
bl MOD16_021DE808
mov r0, #7
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
pop {r4, r5, r6, pc}
thumb_func_end MOD16_021DE228
@@ -14854,12 +14854,12 @@ _021DE2AC:
lsr r0, r0, #0x18
str r0, [sp, #8]
add r0, r6, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
add r0, r6, #0
mov r1, #6
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -15438,23 +15438,23 @@ MOD16_021DE788: ; 0x021DE788
lsr r0, r0, #0x18
str r0, [sp, #8]
add r0, r4, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
mov r1, #7
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r2, #0
add r3, r2, #0
add r0, r4, #0
mov r1, #7
sub r3, #0x78
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #7
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add sp, #0x14
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -15469,10 +15469,10 @@ MOD16_021DE808: ; 0x021DE808
mov r0, #7
mov r1, #0x40
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
pop {r4, pc}
thumb_func_end MOD16_021DE808
@@ -15606,19 +15606,19 @@ MOD16_021DE8D0: ; 0x021DE8D0
mov r1, #7
add r2, r6, #0
lsr r3, r3, #0x10
- bl FUN_0201AF08
+ bl ScheduleSetBgAffineRotation
ldr r0, [r4]
mov r1, #7
ldr r0, [r0]
mov r2, #9
mov r3, #0x80
- bl FUN_0201AF50
+ bl ScheduleSetBgAffinePos
ldr r0, [r4]
mov r1, #7
ldr r0, [r0]
mov r2, #0xc
mov r3, #0x68
- bl FUN_0201AF50
+ bl ScheduleSetBgAffinePos
ldrh r0, [r5, #0x28]
strh r0, [r5, #0x2a]
pop {r4, r5, r6, pc}
@@ -15658,19 +15658,19 @@ _021DE95E:
mov r1, #7
mov r2, #0
lsr r3, r3, #0x10
- bl FUN_0201AF08
+ bl ScheduleSetBgAffineRotation
ldr r0, [r4]
mov r1, #7
ldr r0, [r0]
mov r2, #9
mov r3, #0x80
- bl FUN_0201AF50
+ bl ScheduleSetBgAffinePos
ldr r0, [r4]
mov r1, #7
ldr r0, [r0]
mov r2, #0xc
mov r3, #0x68
- bl FUN_0201AF50
+ bl ScheduleSetBgAffinePos
ldr r0, [r7, #0x1c]
ldr r0, [r0, #0xc]
cmp r0, #0
@@ -16645,11 +16645,11 @@ MOD16_021DEFF8: ; 0x021DEFF8
ldr r0, [r0]
add r4, r2, #0
ldr r6, [sp, #0x18]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r5]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r5]
mov r1, #0
add r0, r0, #4
@@ -16657,7 +16657,7 @@ MOD16_021DEFF8: ; 0x021DEFF8
ldr r0, [r5]
mov r1, #7
add r0, r0, #4
- bl FUN_0201AB24
+ bl SetWindowPaletteNum
add r0, r5, #0
bl MOD16_021DF17C
add r0, r5, #0
@@ -16710,10 +16710,10 @@ MOD16_021DEFF8: ; 0x021DEFF8
bl MOD16_021DF7C8
mov r0, #1
add r1, r0, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end MOD16_021DEFF8
@@ -16733,7 +16733,7 @@ MOD16_021DF0BC: ; 0x021DF0BC
ldr r0, [r4]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
mov r1, #0
add r0, r0, #4
@@ -16741,13 +16741,13 @@ MOD16_021DF0BC: ; 0x021DF0BC
ldr r0, [r4]
mov r1, #0
add r0, r0, #4
- bl FUN_0201AB24
+ bl SetWindowPaletteNum
mov r0, #1
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD16_021DF0BC
@@ -17304,7 +17304,7 @@ MOD16_021DF514: ; 0x021DF514
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r0, [sp, #0x10]
bl FreeToHeap
cmp r7, #3
@@ -17361,13 +17361,13 @@ _021DF584:
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
ldr r0, [r4]
mov r1, #3
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD16_021DF514
@@ -17855,7 +17855,7 @@ _021DF92E:
bl FillWindowPixelBuffer
ldr r0, [r4]
add r0, r0, #4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_021DF94C:
ldr r2, [r6, #0x34]
mov r1, #4
@@ -17903,10 +17903,10 @@ MOD16_021DF970: ; 0x021DF970
bl String_dtor
mov r0, #1
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -17921,10 +17921,10 @@ MOD16_021DF9C0: ; 0x021DF9C0
add r4, r1, #0
add r1, r0, #0
add r6, r2, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r5]
mov r1, #0
add r0, r0, #4
@@ -18761,13 +18761,13 @@ MOD16_021DFFE0: ; 0x021DFFE0
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
ldr r0, [r4]
mov r1, #6
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -25958,7 +25958,7 @@ MOD16_021E3348: ; 0x021E3348
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r7, #0
bl FreeToHeap
ldr r1, [r6]
@@ -25989,7 +25989,7 @@ MOD16_021E3348: ; 0x021E3348
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r7, #0
bl FreeToHeap
_021E33E6:
@@ -26021,7 +26021,7 @@ _021E33E6:
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r7, #0
bl FreeToHeap
_021E342A:
@@ -26053,7 +26053,7 @@ _021E342A:
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r7, #0
bl FreeToHeap
_021E346E:
@@ -26085,14 +26085,14 @@ _021E346E:
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
_021E34B2:
ldr r0, [r5]
mov r1, #3
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -26968,7 +26968,7 @@ MOD16_021E3B70: ; 0x021E3B70
ldr r0, [r4]
mov r1, #8
add r0, r0, #4
- bl FUN_0201AB24
+ bl SetWindowPaletteNum
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
@@ -26989,7 +26989,7 @@ MOD16_021E3BC8: ; 0x021E3BC8
ldr r0, [r4]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, _021E3C10 ; =0x000007F4
ldr r0, [r5, r0]
bl FreeToHeap
@@ -27008,7 +27008,7 @@ MOD16_021E3BC8: ; 0x021E3BC8
str r1, [r5, r0]
ldr r0, [r4]
add r0, r0, #4
- bl FUN_0201AB24
+ bl SetWindowPaletteNum
pop {r3, r4, r5, pc}
.align 2, 0
_021E3C10: .word 0x000007F4
@@ -28428,13 +28428,13 @@ MOD16_021E4634: ; 0x021E4634
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
ldr r0, [r4]
mov r1, #6
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -29605,7 +29605,7 @@ MOD16_021E4EE4: ; 0x021E4EE4
ldr r0, [r4]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD16_021E4EE4
@@ -29649,7 +29649,7 @@ MOD16_021E4F1C: ; 0x021E4F1C
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -29674,7 +29674,7 @@ MOD16_021E4F1C: ; 0x021E4F1C
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -29700,7 +29700,7 @@ MOD16_021E4F1C: ; 0x021E4F1C
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -29726,13 +29726,13 @@ MOD16_021E4F1C: ; 0x021E4F1C
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
ldr r0, [r5]
mov r1, #3
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -31837,13 +31837,13 @@ MOD16_021E5FA4: ; 0x021E5FA4
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
ldr r0, [r4]
mov r1, #3
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -34314,7 +34314,7 @@ MOD16_021E71A8: ; 0x021E71A8
ldr r0, [r4]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
pop {r3, r4, r5, pc}
thumb_func_end MOD16_021E71A8
@@ -34357,7 +34357,7 @@ MOD16_021E71D0: ; 0x021E71D0
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -34382,7 +34382,7 @@ MOD16_021E71D0: ; 0x021E71D0
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -34408,7 +34408,7 @@ MOD16_021E71D0: ; 0x021E71D0
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -34434,13 +34434,13 @@ MOD16_021E71D0: ; 0x021E71D0
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
ldr r0, [r5]
mov r1, #3
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -36577,7 +36577,7 @@ MOD16_021E82B8: ; 0x021E82B8
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -36603,7 +36603,7 @@ MOD16_021E82B8: ; 0x021E82B8
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -36629,13 +36629,13 @@ MOD16_021E82B8: ; 0x021E82B8
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
ldr r0, [r5]
mov r1, #6
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -38663,7 +38663,7 @@ MOD16_021E92D0: ; 0x021E92D0
ldr r0, [r5]
mov r1, #2
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD16_021E92D0
@@ -38728,13 +38728,13 @@ _021E932E:
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
ldr r0, [r5]
mov r1, #2
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD16_021E92F8
@@ -39800,7 +39800,7 @@ MOD16_021E9B3C: ; 0x021E9B3C
ldr r0, [r4]
mov r1, #5
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
pop {r3, r4, r5, pc}
thumb_func_end MOD16_021E9B3C
@@ -39868,13 +39868,13 @@ _021E9B9E:
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
ldr r0, [r5]
mov r1, #5
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD16_021E9B60
@@ -41560,13 +41560,13 @@ MOD16_021EA7F0: ; 0x021EA7F0
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
ldr r0, [r4]
mov r1, #3
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -41582,7 +41582,7 @@ MOD16_021EA858: ; 0x021EA858
ldr r0, [r0]
mov r1, #1
add r3, r2, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r1, #0
mov r0, #1
lsl r0, r0, #8
@@ -41597,11 +41597,11 @@ MOD16_021EA858: ; 0x021EA858
ldr r0, [r4]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
mov r1, #0
add r0, r0, #4
- bl FUN_0201AB24
+ bl SetWindowPaletteNum
add sp, #8
pop {r4, pc}
thumb_func_end MOD16_021EA858
@@ -42135,10 +42135,10 @@ _021EAC8A:
ldr r3, [r5, r3]
mov r1, #1
mov r2, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r4]
add r0, r0, #4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0xcb
ldr r1, [r6, #4]
lsl r0, r0, #2
@@ -42156,7 +42156,7 @@ MOD16_021EACB0: ; 0x021EACB0
ldr r0, [r4]
mov r1, #9
add r0, r0, #4
- bl FUN_0201AB24
+ bl SetWindowPaletteNum
mov r0, #0xca
mov r2, #0x97
lsl r0, r0, #2
@@ -43594,13 +43594,13 @@ MOD16_021EB724: ; 0x021EB724
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
ldr r0, [r5]
mov r1, #6
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5]
mov r1, #0
str r1, [sp]
@@ -43634,30 +43634,30 @@ MOD16_021EB724: ; 0x021EB724
str r0, [sp, #8]
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
ldr r0, [r5]
mov r1, #7
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5]
mov r2, #0
add r3, r2, #0
ldr r0, [r0]
mov r1, #7
sub r3, #0x30
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r5]
mov r2, #3
add r3, r2, #0
ldr r0, [r0]
mov r1, #7
sub r3, #0x13
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #7
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
add sp, #0x14
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD16_021EB724
@@ -43669,14 +43669,14 @@ MOD16_021EB80C: ; 0x021EB80C
ldr r0, [r4]
mov r1, #6
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4]
mov r1, #7
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #7
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
pop {r4, pc}
.align 2, 0
thumb_func_end MOD16_021EB80C
@@ -44379,19 +44379,19 @@ _021EBD70:
mov r1, #7
mov r2, #0
lsr r3, r3, #0x10
- bl FUN_0201AF08
+ bl ScheduleSetBgAffineRotation
ldr r0, [r4]
mov r1, #7
ldr r0, [r0]
mov r2, #9
mov r3, #0x83
- bl FUN_0201AF50
+ bl ScheduleSetBgAffinePos
ldr r0, [r4]
mov r1, #7
ldr r0, [r0]
mov r2, #0xc
mov r3, #0x63
- bl FUN_0201AF50
+ bl ScheduleSetBgAffinePos
str r6, [r5, #0x48]
pop {r4, r5, r6, pc}
thumb_func_end MOD16_021EBD58
@@ -45517,7 +45517,7 @@ MOD16_021EC574: ; 0x021EC574
ldr r0, [r4]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
bl MOD16_021ECA2C
pop {r3, r4, r5, pc}
@@ -45562,13 +45562,13 @@ MOD16_021EC5A8: ; 0x021EC5A8
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
ldr r0, [r4]
mov r1, #3
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -47021,13 +47021,13 @@ MOD16_021ED0D0: ; 0x021ED0D0
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
ldr r0, [r4]
mov r1, #6
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -48269,7 +48269,7 @@ MOD16_021EDA3C: ; 0x021EDA3C
ldr r0, [r4]
mov r1, #1
ldr r0, [r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4, #0xc]
mov r1, #0
bl FUN_02013EB0
@@ -48319,13 +48319,13 @@ MOD16_021EDA7C: ; 0x021EDA7C
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
ldr r0, [r4]
mov r1, #3
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -50510,13 +50510,13 @@ MOD16_021EEB50: ; 0x021EEB50
str r0, [sp, #8]
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
ldr r0, [r4]
mov r1, #6
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -51352,20 +51352,20 @@ MOD16_021EF218: ; 0x021EF218
mov r1, #1
str r0, [r2]
add r0, r5, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
mov r1, #1
add r2, sp, #0x38
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r3, _021EF2F4 ; =0x021FF770
add r2, sp, #0x1c
ldmia r3!, {r0, r1}
@@ -51378,29 +51378,29 @@ MOD16_021EF218: ; 0x021EF218
mov r1, #2
str r0, [r2]
add r0, r5, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
mov r1, #2
add r2, sp, #0x1c
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
add r1, r0, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
add r1, r0, #0
bl GX_EngineAToggleLayers
add r0, r5, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r3, _021EF2F8 ; =0x021FF7A8
add r2, sp, #0
ldmia r3!, {r0, r1}
@@ -51413,20 +51413,20 @@ MOD16_021EF218: ; 0x021EF218
mov r1, #3
str r0, [r2]
add r0, r5, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
mov r1, #3
add r2, sp, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x54
pop {r4, r5, pc}
.align 2, 0
@@ -51440,13 +51440,13 @@ MOD16_021EF2FC: ; 0x021EF2FC
push {r4, lr}
add r4, r0, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD16_021EF2FC
@@ -51470,7 +51470,7 @@ MOD16_021EF318: ; 0x021EF318
add r1, r4, #0
mov r2, #1
str r3, [sp, #0x10]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -51486,12 +51486,12 @@ MOD16_021EF318: ; 0x021EF318
MOD16_021EF358: ; 0x021EF358
push {r4, lr}
add r4, r0, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
pop {r4, pc}
thumb_func_end MOD16_021EF358
@@ -52092,7 +52092,7 @@ MOD16_021EF790: ; 0x021EF790
lsr r0, r0, #0x18
str r0, [sp, #8]
add r0, r5, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -52116,7 +52116,7 @@ MOD16_021EF790: ; 0x021EF790
lsr r0, r0, #0x18
str r0, [sp, #8]
add r0, r5, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -52141,7 +52141,7 @@ MOD16_021EF790: ; 0x021EF790
lsr r0, r0, #0x18
str r0, [sp, #8]
add r0, r5, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r6, #0
bl FreeToHeap
str r4, [sp]
@@ -52166,12 +52166,12 @@ MOD16_021EF790: ; 0x021EF790
lsr r0, r0, #0x18
str r0, [sp, #8]
add r0, r5, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
add r0, r5, #0
mov r1, #3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD16_021EF790
@@ -52214,12 +52214,12 @@ MOD16_021EF8A8: ; 0x021EF8A8
lsr r0, r0, #0x18
str r0, [sp, #8]
add r0, r4, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index 7d11697e..6ef3cce7 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -464,7 +464,7 @@ MOD17_021D77D4: ; 0x021D77D4
add r0, r4, #0
bl MOD17_021D80CC
mov r0, #0xe
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x38]
add r0, r4, #0
bl MOD17_021D7F34
@@ -860,7 +860,7 @@ MOD17_021D7AE4: ; 0x021D7AE4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x38]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r0, [r4, #0x20]
bl FUN_020081C4
bl FUN_02009F80
@@ -973,20 +973,20 @@ MOD17_021D7B94: ; 0x021D7B94
mov r1, #2
str r0, [r2]
ldr r0, [r5, #0x38]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r5, #0x38]
mov r1, #2
add r2, sp, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r5, #0x38]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x1c
pop {r4, r5, pc}
nop
@@ -1016,12 +1016,12 @@ MOD17_021D7BE4: ; 0x021D7BE4
thumb_func_start MOD17_021D7C10
MOD17_021D7C10: ; 0x021D7C10
- ldr r3, _021D7C18 ; =FUN_020178A0
+ ldr r3, _021D7C18 ; =FreeBgTilemapBuffer
ldr r0, [r0, #0x38]
mov r1, #2
bx r3
.align 2, 0
-_021D7C18: .word FUN_020178A0
+_021D7C18: .word FreeBgTilemapBuffer
thumb_func_end MOD17_021D7C10
thumb_func_start MOD17_021D7C1C
@@ -1112,7 +1112,7 @@ MOD17_021D7CC0: ; 0x021D7CC0
add r4, r0, #0
bl MOD17_021D80CC
mov r0, #0xe
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x38]
add r0, r4, #0
bl MOD17_021D7F34
@@ -1136,7 +1136,7 @@ MOD17_021D7CD8: ; 0x021D7CD8
MOD17_021D7CF0: ; 0x021D7CF0
push {r3, lr}
ldr r0, [r0, #0x38]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
bl FUN_02009F80
pop {r3, pc}
.align 2, 0
@@ -1244,7 +1244,7 @@ MOD17_021D7DB0: ; 0x021D7DB0
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -1466,15 +1466,15 @@ MOD17_021D7F34: ; 0x021D7F34
str r0, [r3]
ldr r0, [r4, #0x38]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0xe
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4, #0x38]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D8048 ; =0x021DE2BC
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -1489,15 +1489,15 @@ MOD17_021D7F34: ; 0x021D7F34
str r0, [r3]
ldr r0, [r4, #0x38]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #0xe
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4, #0x38]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D804C ; =0x021DE2F4
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -1512,15 +1512,15 @@ MOD17_021D7F34: ; 0x021D7F34
str r0, [r3]
ldr r0, [r4, #0x38]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #0xe
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4, #0x38]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D8050 ; =0x021DE284
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -1535,15 +1535,15 @@ MOD17_021D7F34: ; 0x021D7F34
str r0, [r3]
ldr r0, [r4, #0x38]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0xe
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4, #0x38]
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D8054 ; =0x021DE310
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -1558,15 +1558,15 @@ MOD17_021D7F34: ; 0x021D7F34
str r0, [r3]
ldr r0, [r4, #0x38]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #5
mov r1, #0x20
mov r2, #0
mov r3, #0xe
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4, #0x38]
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x8c
pop {r4, r5, pc}
nop
@@ -1583,19 +1583,19 @@ MOD17_021D8058: ; 0x021D8058
add r4, r0, #0
ldr r0, [r4, #0x38]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x38]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x38]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x38]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x38]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD17_021D8058
@@ -2472,7 +2472,7 @@ _021D8780:
ldr r0, _021D8810 ; =0x000006A8
mov r1, #1
ldr r0, [r4, r0]
- bl FUN_020191A4
+ bl WindowArray_dtor
add r0, r4, #0
bl MOD17_021D92AC
ldr r0, _021D8814 ; =0x0000048C
@@ -3080,7 +3080,7 @@ MOD17_021D8C9C: ; 0x021D8C9C
ldr r0, _021D8D58 ; =0x000006A8
mov r1, #1
ldr r0, [r4, r0]
- bl FUN_020191A4
+ bl WindowArray_dtor
add r0, r4, #0
bl MOD17_021D92AC
ldr r0, _021D8D5C ; =0x0000048C
@@ -3428,7 +3428,7 @@ MOD17_021D8F64: ; 0x021D8F64
ldr r0, [r4, #0x38]
add r2, r1, #0
sub r3, #0x13
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0xd7
lsl r0, r0, #2
add r0, r4, r0
@@ -3993,7 +3993,7 @@ _021D93C4:
ldr r0, [r0, #0x38]
mov r2, #3
mov r3, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r4]
bl MOD17_021D9848
ldr r0, [r4, #0xc]
@@ -4125,7 +4125,7 @@ _021D94B2:
ldr r0, [r0, #0x38]
mov r1, #1
sub r3, #0x2b
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r4, #0xc]
add sp, #4
add r0, r0, #1
@@ -4424,25 +4424,25 @@ _021D9728:
ldr r0, [r0, #0x38]
add r2, r1, #0
add r3, r4, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5]
mov r1, #1
ldr r0, [r0, #0x38]
mov r2, #2
add r3, r4, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5]
mov r1, #2
ldr r0, [r0, #0x38]
mov r2, #5
add r3, r6, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5]
mov r1, #1
ldr r0, [r0, #0x38]
mov r2, #5
add r3, r6, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
_021D9766:
ldr r0, [r5, #8]
add r0, r0, #1
@@ -4462,17 +4462,17 @@ MOD17_021D9778: ; 0x021D9778
add r4, r0, #0
ldr r0, [r4, #0x38]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
ldr r0, [r4, #0x38]
mov r1, #3
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #3
ldr r0, [r4, #0x38]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
mov r1, #0
bl MOD17_021D9B74
@@ -4524,7 +4524,7 @@ MOD17_021D9800: ; 0x021D9800
bl MOD17_021D9BCC
ldr r0, [r4, #0x38]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
bl MOD17_021D8F64
mov r0, #0
@@ -4555,17 +4555,17 @@ MOD17_021D9848: ; 0x021D9848
add r4, r0, #0
ldr r0, [r4, #0x38]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #0
ldr r0, [r4, #0x38]
mov r1, #3
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #3
ldr r0, [r4, #0x38]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x38]
mov r1, #0x19
str r0, [sp]
@@ -4624,7 +4624,7 @@ MOD17_021D98D0: ; 0x021D98D0
bl MOD17_021D9B6C
ldr r0, [r4, #0x38]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
pop {r4, pc}
.align 2, 0
_021D98EC: .word 0x000006A4
@@ -4687,7 +4687,7 @@ MOD17_021D9918: ; 0x021D9918
str r0, [sp, #0x10]
ldr r0, [r5, #0x38]
ldr r1, [r5, r1]
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _021D99D4 ; =0x000006A8
mov r1, #0xf
ldr r0, [r5, r0]
@@ -4903,10 +4903,10 @@ MOD17_021D9B30: ; 0x021D9B30
add r4, r0, #0
ldr r0, _021D9B48 ; =0x000006A8
ldr r0, [r4, r0]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, _021D9B48 ; =0x000006A8
ldr r0, [r4, r0]
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
nop
_021D9B48: .word 0x000006A8
@@ -9758,7 +9758,7 @@ MOD17_021DBD4C: ; 0x021DBD4C
ldr r0, [r4]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #0
mov r2, #0x2c
@@ -9919,11 +9919,11 @@ _021DBE62:
str r0, [r4, #0x40]
ldr r0, [r6]
ldr r1, [r6, #0x1c]
- bl FUN_02017B48
+ bl Bg_GetXpos
str r0, [r4, #0x44]
ldr r0, [r6]
ldr r1, [r6, #0x1c]
- bl FUN_02017B54
+ bl Bg_GetYpos
str r0, [r4, #0x48]
mov r0, #0x80
str r0, [r5, #0x28]
@@ -10076,7 +10076,7 @@ MOD17_021DBF94: ; 0x021DBF94
lsl r1, r1, #0x18
lsr r1, r1, #0x18
mov r2, #2
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r1, [r4]
ldr r3, [r4, #0x40]
ldr r0, [r1]
@@ -10084,7 +10084,7 @@ MOD17_021DBF94: ; 0x021DBF94
mov r2, #5
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r3, r4, r5, pc}
_021DBFC8:
ldr r0, [r1]
@@ -10093,7 +10093,7 @@ _021DBFC8:
lsl r1, r1, #0x18
lsr r1, r1, #0x18
mov r2, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r1, [r4]
ldr r3, [r4, #0x48]
ldr r0, [r1]
@@ -10101,7 +10101,7 @@ _021DBFC8:
mov r2, #3
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r4]
add r1, r4, #4
bl MOD17_021DBD04
@@ -10150,7 +10150,7 @@ MOD17_021DC004: ; 0x021DC004
lsr r1, r1, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
lsl r0, r6, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -10171,11 +10171,11 @@ MOD17_021DC004: ; 0x021DC004
lsr r1, r1, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
lsl r1, r5, #0x18
add r0, r7, #0
lsr r1, r1, #0x18
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD17_021DC004
@@ -10278,7 +10278,7 @@ MOD17_021DC11C: ; 0x021DC11C
ldr r0, [r4]
ldr r3, [r3, #0x10]
lsr r1, r1, #0x18
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
add r0, r5, #0
bl FUN_0200CAB4
ldr r0, [r4, #8]
@@ -11279,7 +11279,7 @@ _021DC898:
add r1, r4, #0
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r3, #0
str r3, [sp]
mov r0, #0xff
@@ -11308,7 +11308,7 @@ MOD17_021DC8F8: ; 0x021DC8F8
mov r1, #1
bx r3
nop
-_021DC900: .word FUN_020191A4
+_021DC900: .word WindowArray_dtor
thumb_func_end MOD17_021DC8F8
thumb_func_start MOD17_021DC904
@@ -11814,7 +11814,7 @@ MOD17_021DCC68: ; 0x021DCC68
str r0, [sp, #0x10]
ldr r1, [r5]
add r0, r7, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r5]
mov r1, #0xf
bl FillWindowPixelBuffer
@@ -11848,7 +11848,7 @@ MOD17_021DCCE0: ; 0x021DCCE0
mov r1, #1
bx r3
nop
-_021DCCE8: .word FUN_020191A4
+_021DCCE8: .word WindowArray_dtor
thumb_func_end MOD17_021DCCE0
thumb_func_start MOD17_021DCCEC
@@ -13038,13 +13038,13 @@ MOD17_021DD5A0: ; 0x021DD5A0
mov r1, #2
mov r2, #0
sub r3, r3, r4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0x10
ldr r0, [r5, #0x38]
mov r1, #2
mov r2, #3
sub r3, r3, r6
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_021DD5E8:
mov r0, #0x23
lsl r0, r0, #4
@@ -14066,7 +14066,7 @@ _021DDD96:
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [r5, #0x4c]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r1, [sp, #0x10]
mov r2, #0
ldrh r0, [r1]
@@ -14083,12 +14083,12 @@ _021DDD96:
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [r5, #0x4c]
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r6, #0
bl FreeToHeap
ldr r0, [r5, #0x4c]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD17_021DDD54
@@ -14260,25 +14260,25 @@ MOD17_021DDF1C: ; 0x021DDF1C
ldr r1, [r4, r1]
mov r2, #3
mov r3, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
mov r1, #0xa0
mov r2, #0xe
bl FUN_02002ED0
mov r0, #3
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
add r1, r0, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r1, #3
ldr r0, [r4, #0x4c]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add sp, #0x14
pop {r3, r4, pc}
.align 2, 0
@@ -14291,16 +14291,16 @@ MOD17_021DDF84: ; 0x021DDF84
mov r0, #0x19
lsl r0, r0, #4
ldr r0, [r4, r0]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0x19
lsl r0, r0, #4
ldr r0, [r4, r0]
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x19
lsl r0, r0, #4
ldr r0, [r4, r0]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
pop {r4, pc}
.align 2, 0
thumb_func_end MOD17_021DDF84
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index e3fbe038..59f678ec 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -1476,7 +1476,7 @@ _0223A194:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _0223A2AC ; =0x02250010
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -1491,15 +1491,15 @@ _0223A194:
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x1d
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0223A2B0 ; =0x0225002C
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -1514,15 +1514,15 @@ _0223A194:
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x1d
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0223A2B4 ; =0x02250048
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -1537,15 +1537,15 @@ _0223A194:
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #0x1d
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0223A2B8 ; =0x02250064
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -1560,25 +1560,25 @@ _0223A194:
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #0x1d
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x1d
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x1d
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0xa8
pop {r3, r4, r5, pc}
nop
@@ -1749,7 +1749,7 @@ MOD18_0223A3D4: ; 0x0223A3D4
lsl r2, r2, #0x10
bl CreateHeap
mov r0, #0x1d
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r4, r0, #0
ldr r0, _0223A4CC ; =0x02251380
add r1, r4, #0
@@ -1764,13 +1764,13 @@ MOD18_0223A3D4: ; 0x0223A3D4
bl MOD18_0223A188
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
str r0, [sp]
mov r0, #0x1d
@@ -1843,7 +1843,7 @@ MOD18_0223A4D8: ; 0x0223A4D8
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _0223A55C ; =0x02251380
ldr r0, [r0]
ldr r0, [r0, #4]
@@ -1868,16 +1868,16 @@ MOD18_0223A4D8: ; 0x0223A4D8
bl MOD18_0223B6A4
mov r0, #0
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #3
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
bl MOD18_0223C37C
bl MOD18_0223C570
ldr r0, _0223A55C ; =0x02251380
@@ -1898,22 +1898,22 @@ MOD18_0223A560: ; 0x0223A560
mov r1, #0
ldr r0, [r0]
ldr r0, [r0, #4]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _0223A648 ; =0x02251380
mov r1, #1
ldr r0, [r0]
ldr r0, [r0, #4]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _0223A648 ; =0x02251380
mov r1, #2
ldr r0, [r0]
ldr r0, [r0, #4]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _0223A648 ; =0x02251380
mov r1, #3
ldr r0, [r0]
ldr r0, [r0, #4]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _0223A648 ; =0x02251380
ldr r1, [r0]
mov r0, #0x57
@@ -3460,7 +3460,7 @@ MOD18_0223B1A8: ; 0x0223B1A8
mov r1, #1
str r2, [sp, #0x14]
str r3, [sp, #0x18]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldr r1, [r5, r6]
str r0, [sp, #0x34]
ldr r0, [sp, #0x38]
@@ -4109,7 +4109,7 @@ MOD18_0223B6A4: ; 0x0223B6A4
sub sp, #0xc
mov r1, #2
str r0, [sp]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
str r0, [sp, #8]
mov r2, #0
mov r0, #4
@@ -4167,7 +4167,7 @@ _0223B6C0:
blt _0223B6BA
ldr r0, [sp]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
@@ -4536,7 +4536,7 @@ MOD18_0223B9BC: ; 0x0223B9BC
ldr r3, [r3]
sub r2, r2, #2
strb r1, [r3, r2]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldr r1, _0223B9E8 ; =0x02250874
mov r2, #0x30
mov r3, #0x36
@@ -4593,7 +4593,7 @@ _0223BA26:
_0223BA36:
add r0, r5, #0
mov r1, #1
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldr r1, _0223BB40 ; =0x02251380
add r6, r0, #0
ldr r2, [r1]
@@ -4712,7 +4712,7 @@ _0223BAF4:
_0223BB34:
add r0, r5, #0
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_0223BB3C:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
@@ -4757,7 +4757,7 @@ MOD18_0223BB7C: ; 0x0223BB7C
ldr r1, _0223BC48 ; =0x000009E7
ldrb r4, [r2, r1]
mov r1, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r5, r0, #0
asr r0, r4, #1
lsr r0, r0, #0x1e
@@ -4842,7 +4842,7 @@ _0223BBD8:
_0223BC38:
ldr r0, [sp]
mov r1, #0
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -5554,7 +5554,7 @@ _0223C1B4:
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
lsl r1, r4, #0x18
ldr r6, [r7]
ldr r3, _0223C1EC ; =0x000009EA
@@ -5562,7 +5562,7 @@ _0223C1B4:
ldrsb r3, [r6, r3]
lsr r1, r1, #0x18
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r4, r4, #1
cmp r4, #3
blt _0223C1B4
@@ -6173,7 +6173,7 @@ MOD18_0223C6CC: ; 0x0223C6CC
add r4, r0, #0
bl MOD18_0223C188
add r0, r4, #0
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
bl FUN_0201C30C
bl FUN_02009F80
pop {r4, pc}
@@ -14378,7 +14378,7 @@ _02240480:
ldr r0, [r0, #4]
ldr r0, [r0, #0x40]
ldr r0, [r0, #8]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r3, #0
mov r1, #2
add r2, r3, #0
@@ -14390,7 +14390,7 @@ _022404A4:
blt _022404A4
mov r0, #2
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #4
mov r1, #0
bl GX_EngineAToggleLayers
@@ -14430,7 +14430,7 @@ MOD18_022404F4: ; 0x022404F4
mov r1, #2
add r6, r2, #0
mov r4, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r5, r0, #0
bne _02240512
add sp, #8
@@ -14450,7 +14450,7 @@ _02240512:
bl MOD18_02240388
ldr r0, [sp, #4]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_02240532:
ldrh r0, [r7]
mov r2, #0
@@ -14764,16 +14764,16 @@ _0224072E:
_02240774:
mov r0, #0
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #3
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r4]
add sp, #0x1c
add r0, r0, #1
@@ -22606,7 +22606,7 @@ _022444AC:
bl GX_EngineBToggleLayers
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r0, [r4]
add sp, #0x60
add r0, r0, #1
@@ -22711,10 +22711,10 @@ _02244588:
mov r0, #0x39
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [sp, #0x2c]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [sp, #0x2c]
bl MOD18_02244858
mov r0, #0xeb
@@ -23066,10 +23066,10 @@ MOD18_02244858: ; 0x02244858
push {r4, lr}
add r4, r0, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD18_02244858
@@ -23098,7 +23098,7 @@ MOD18_0224486C: ; 0x0224486C
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0
bl GX_EngineBToggleLayers
@@ -23116,7 +23116,7 @@ MOD18_0224486C: ; 0x0224486C
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0
bl GX_EngineBToggleLayers
@@ -23134,13 +23134,13 @@ MOD18_0224486C: ; 0x0224486C
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #8
mov r1, #0
bl GX_EngineBToggleLayers
add r0, r5, #0
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x40
mov r1, #0
str r0, [sp]
@@ -23180,7 +23180,7 @@ MOD18_0224486C: ; 0x0224486C
mov r1, #0x20
mov r2, #0
mov r3, #4
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
add r1, r4, #0
mov r2, #7
@@ -25585,7 +25585,7 @@ MOD18_02245B1C: ; 0x02245B1C
strb r0, [r3, #0xb]
add r0, r6, #0
add r2, r7, #0
- bl FUN_02019150
+ bl AddWindow
ldr r0, [sp, #0x14]
ldr r2, [sp, #8]
ldr r3, [sp, #0xc]
@@ -29549,7 +29549,7 @@ MOD18_02247AA8: ; 0x02247AA8
add r1, #0xc
ldr r0, [r0, #8]
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _02247B54 ; =0x000003D9
add r0, #0xc
@@ -29675,7 +29675,7 @@ MOD18_02247BB8: ; 0x02247BB8
add r1, #0xc
ldr r0, [r0, #8]
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _02247C8C ; =0x000003D9
add r0, #0xc
@@ -29848,7 +29848,7 @@ MOD18_02247D1C: ; 0x02247D1C
add r1, #0xc
ldr r0, [r0, #8]
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _02247DCC ; =0x000003D9
add r0, #0xc
@@ -30162,10 +30162,10 @@ MOD18_02247FC0: ; 0x02247FC0
bl DestroyListMenu
add r0, r4, #0
add r0, #0xc
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0xc
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x1c]
bl ListMenuItems_dtor
mov r0, #0
@@ -31138,10 +31138,10 @@ MOD18_02248784: ; 0x02248784
bl DestroyListMenu
add r0, r4, #0
add r0, #8
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #8
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x18]
bl ListMenuItems_dtor
mov r0, #0
@@ -31219,7 +31219,7 @@ MOD18_02248820: ; 0x02248820
ldr r0, [r5, #4]
mov r2, #3
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _022488E4 ; =0x000003D9
add r0, #8
@@ -32961,7 +32961,7 @@ MOD18_02249564: ; 0x02249564
ldr r0, [r0, #8]
mov r2, #3
mov r3, #0x14
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _02249678 ; =0x000003D9
add r0, #0x10
@@ -33051,7 +33051,7 @@ _022495EE:
str r0, [r5, #0x48]
add r0, r5, #0
add r0, #0x10
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
add r1, sp, #0x18
mov r2, #7
@@ -33399,7 +33399,7 @@ _02249916:
_02249936:
add r0, r4, #0
add r0, #0x10
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02249968
add r0, r4, #0
@@ -33408,10 +33408,10 @@ _02249936:
bl FUN_0200CCF8
ldrb r1, [r4, #0x14]
ldr r0, [r4, #0x10]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r4, #0
add r0, #0x10
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x40]
bl ListMenuItems_dtor
add r0, r4, #0
@@ -33480,7 +33480,7 @@ _022499A2:
add r1, #0x20
mov r2, #3
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _02249A5C ; =0x000003D9
add r0, #0x20
@@ -33557,7 +33557,7 @@ MOD18_02249A64: ; 0x02249A64
add r1, #0x24
ldrb r1, [r1]
ldr r0, [r4, #0x20]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x44]
bl ListMenuItems_dtor
mov r0, #0
@@ -33565,7 +33565,7 @@ MOD18_02249A64: ; 0x02249A64
_02249A8C:
add r0, r4, #0
add r0, #0x20
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02249AAA
add r0, r4, #0
@@ -33574,7 +33574,7 @@ _02249A8C:
bl FUN_0200CCF8
add r4, #0x20
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_02249AAA:
pop {r4, pc}
thumb_func_end MOD18_02249A64
@@ -33746,7 +33746,7 @@ MOD18_02249BA8: ; 0x02249BA8
ldr r0, [r5, #0xc]
mov r3, #0x13
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _02249CB8 ; =0x000003D9
add r0, #0x10
@@ -34213,7 +34213,7 @@ MOD18_02249F8C: ; 0x02249F8C
ldr r0, [r5, #0xc]
mov r3, #0x13
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224A0DC ; =0x000003D9
add r0, #0x10
@@ -34662,7 +34662,7 @@ MOD18_0224A360: ; 0x0224A360
ldr r0, [r5, #0xc]
mov r3, #0x13
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224A46C ; =0x000003D9
add r0, #0x10
@@ -35600,7 +35600,7 @@ MOD18_0224AB08: ; 0x0224AB08
ldr r0, [r5, #0xc]
mov r3, #0x13
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224AC14 ; =0x000003D9
add r0, #0x10
@@ -36646,7 +36646,7 @@ _0224B374:
ldr r0, [r5, #0xc]
mov r3, #0x11
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224B460 ; =0x000003D9
add r0, #0x10
@@ -36769,7 +36769,7 @@ MOD18_0224B464: ; 0x0224B464
str r0, [sp, #0x10]
ldr r0, [r5, #0xc]
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224B55C ; =0x000003D9
add r0, #0x10
@@ -38480,7 +38480,7 @@ _0224C288:
ldr r0, [r5, #0xc]
mov r3, #0x13
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224C414 ; =0x000003D9
add r0, #0x10
@@ -39102,7 +39102,7 @@ MOD18_0224C7D4: ; 0x0224C7D4
ldr r0, [r5, #0xc]
mov r3, #0x13
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224C934 ; =0x000003D9
add r0, #0x10
@@ -39250,7 +39250,7 @@ MOD18_0224C94C: ; 0x0224C94C
push {r4, lr}
add r4, r0, #0
add r0, #0x20
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _0224C96C
add r0, r4, #0
@@ -39259,7 +39259,7 @@ MOD18_0224C94C: ; 0x0224C94C
bl FUN_0200CCF8
add r0, r4, #0
add r0, #0x20
- bl FUN_02019178
+ bl RemoveWindow
_0224C96C:
add r0, r4, #0
bl MOD18_022498EC
@@ -39462,7 +39462,7 @@ MOD18_0224CADC: ; 0x0224CADC
sub sp, #0x14
add r4, r0, #0
add r0, #0x20
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0224CB1A
mov r0, #0xc
@@ -39479,7 +39479,7 @@ MOD18_0224CADC: ; 0x0224CADC
ldr r0, [r0, #8]
add r1, #0x20
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
ldr r2, _0224CB30 ; =0x000003D9
add r0, #0x20
@@ -39521,7 +39521,7 @@ MOD18_0224CB34: ; 0x0224CB34
ldr r0, [r0, #8]
add r1, #0x30
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224CBA8 ; =0x000003D9
add r0, #0x30
@@ -39560,7 +39560,7 @@ MOD18_0224CBAC: ; 0x0224CBAC
push {r4, lr}
add r4, r0, #0
add r0, #0x30
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _0224CBCC
add r0, r4, #0
@@ -39569,7 +39569,7 @@ MOD18_0224CBAC: ; 0x0224CBAC
bl FUN_0200CCF8
add r4, #0x30
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_0224CBCC:
pop {r4, pc}
.align 2, 0
@@ -40739,10 +40739,10 @@ MOD18_0224D56C: ; 0x0224D56C
bl FUN_0200CCF8
add r0, r4, #0
add r0, #8
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #8
- bl FUN_02019178
+ bl RemoveWindow
ldr r1, [r4]
cmp r1, #0
beq _0224D596
@@ -40811,7 +40811,7 @@ MOD18_0224D5CC: ; 0x0224D5CC
add r1, #8
mov r2, #3
mov r3, #4
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
ldr r2, _0224D684 ; =0x000003D9
add r0, #8
@@ -40847,7 +40847,7 @@ _0224D64A:
bl MOD18_0224D364
add r0, r4, #0
add r0, #8
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _0224D690 ; =0x000005FD
bl FUN_020054C8
ldr r0, _0224D694 ; =MOD18_0224D5B4
@@ -41315,7 +41315,7 @@ MOD18_0224DA00: ; 0x0224DA00
add r1, #8
mov r2, #3
mov r3, #4
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224DA9C ; =0x000003D9
add r0, #8
@@ -41346,7 +41346,7 @@ MOD18_0224DA00: ; 0x0224DA00
bl FUN_020054C8
add r0, r5, #0
add r0, #8
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
bl DestroyMsgData
add r0, r5, #0
@@ -41367,10 +41367,10 @@ MOD18_0224DAA8: ; 0x0224DAA8
bl FUN_0200CCF8
add r0, r4, #0
add r0, #8
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #8
- bl FUN_02019178
+ bl RemoveWindow
ldr r1, [r4]
cmp r1, #0
beq _0224DACE
@@ -41568,7 +41568,7 @@ MOD18_0224DC08: ; 0x0224DC08
bl MOD18_0223D688
add r0, r5, #0
add r0, #8
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0224DC4C
mov r0, #0x13
@@ -41586,7 +41586,7 @@ MOD18_0224DC08: ; 0x0224DC08
add r1, #8
mov r2, #3
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
_0224DC4C:
add r0, r5, #0
add r0, #8
@@ -41732,10 +41732,10 @@ _0224DD4C:
bl FUN_0200D0E0
add r0, r5, #0
add r0, #8
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
add r0, #8
- bl FUN_02019178
+ bl RemoveWindow
b _0224DD76
_0224DD6C:
add r0, r5, #0
@@ -42303,7 +42303,7 @@ MOD18_0224E0CC: ; 0x0224E0CC
ldr r0, [r5]
mov r3, #0x13
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
mov r3, #1
add r1, r5, #0
str r3, [sp]
@@ -42319,7 +42319,7 @@ MOD18_0224E0CC: ; 0x0224E0CC
ldr r0, [r5]
mov r2, #3
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r2, _0224E1FC ; =0x000003D9
add r0, r5, #4
mov r1, #1
@@ -42490,12 +42490,12 @@ MOD18_0224E26C: ; 0x0224E26C
bl FUN_0200CCF8
ldrb r1, [r4, #8]
ldr r0, [r4, #4]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r4, #4
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x14
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x24]
bl ListMenuItems_dtor
pop {r4, pc}
@@ -42761,7 +42761,7 @@ _0224E454:
ldr r0, [r5]
mov r3, #0x13
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
mov r3, #1
add r1, r5, #0
str r3, [sp]
@@ -42777,7 +42777,7 @@ _0224E454:
ldr r0, [r5]
mov r2, #3
ldr r0, [r0, #8]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
ldr r2, _0224E688 ; =0x000003D9
add r0, #8
@@ -43018,13 +43018,13 @@ MOD18_0224E6A8: ; 0x0224E6A8
bl FUN_0200CCF8
ldrb r1, [r4, #0xc]
ldr r0, [r4, #8]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r4, #0
add r0, #8
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x18
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x28]
bl ListMenuItems_dtor
ldr r0, [r4, #4]
diff --git a/arm9/modules/19/asm/module_19.s b/arm9/modules/19/asm/module_19.s
index bb49a485..cfdf20fa 100644
--- a/arm9/modules/19/asm/module_19.s
+++ b/arm9/modules/19/asm/module_19.s
@@ -30,7 +30,7 @@ MOD19_02252440: ; 0x02252440
ldr r2, _022524E8 ; =0x02252508
add r0, r4, #0
mov r1, #4
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -89,7 +89,7 @@ _022524F0: .word 0xFFFFE0FF
MOD19_022524F4: ; 0x022524F4
push {r3, lr}
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #8
bl DestroyHeap
pop {r3, pc}
diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s
index e812d527..60964f7e 100644
--- a/arm9/modules/20/asm/module_20.s
+++ b/arm9/modules/20/asm/module_20.s
@@ -1243,7 +1243,7 @@ MOD20_02252C5C: ; 0x02252C5C
_02252CA6:
mov r0, #7
str r6, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
mov r1, #6
lsl r1, r1, #6
str r0, [r4, r1]
@@ -1570,14 +1570,14 @@ MOD20_02252ED0: ; 0x02252ED0
ldr r2, _02252FE0 ; =MOD20_022545B4
mov r1, #4
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
ldr r2, _02252FE4 ; =MOD20_022545D0
mov r1, #5
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0x40
str r0, [sp]
mov r0, #0
@@ -1634,12 +1634,12 @@ MOD20_02252ED0: ; 0x02252ED0
ldr r0, [r4, r0]
mov r1, #5
mov r2, #0xd8
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _02252FD8 ; =0x04001000
ldr r1, _02252FE8 ; =0xFFFFE0FF
ldr r2, [r0]
@@ -1738,7 +1738,7 @@ _02253048:
mov r1, #5
mov r2, #0x40
mov r3, #2
- bl FUN_02018540
+ bl FillBgTilemapRect
cmp r7, #0
beq _022530DA
sub r0, r6, #1
@@ -1759,7 +1759,7 @@ _02253048:
mov r1, #5
lsr r2, r2, #0x10
mov r3, #2
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x14]
mov r2, #0xd8
add r0, r6, r0
@@ -1779,13 +1779,13 @@ _02253048:
mov r1, #5
lsr r2, r2, #0x10
mov r3, #2
- bl FUN_02018540
+ bl FillBgTilemapRect
_022530DA:
mov r0, #6
lsl r0, r0, #6
ldr r0, [r5, r0]
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldrh r0, [r4, #2]
cmp r0, #0x28
bne _022530FC
@@ -1870,7 +1870,7 @@ _02253158:
ldr r0, [r5, r0]
mov r1, #5
mov r2, #0xd8
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x14]
lsl r1, r7, #0x18
lsl r0, r0, #0x18
@@ -1887,7 +1887,7 @@ _02253158:
mov r1, #5
mov r2, #0xd8
mov r3, #2
- bl FUN_02018540
+ bl FillBgTilemapRect
cmp r6, #0
beq _02253202
mov r0, #0
@@ -1907,7 +1907,7 @@ _02253158:
mov r1, #5
lsr r2, r2, #0x10
mov r3, #2
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [sp, #0x14]
add r6, #0xd4
sub r0, r0, #1
@@ -1926,13 +1926,13 @@ _02253158:
mov r1, #5
lsr r2, r2, #0x10
mov r3, #2
- bl FUN_02018540
+ bl FillBgTilemapRect
_02253202:
mov r0, #6
lsl r0, r0, #6
ldr r0, [r5, r0]
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldrh r0, [r4, #2]
cmp r0, #0x28
bne _02253224
@@ -1978,12 +1978,12 @@ MOD20_02253228: ; 0x02253228
ldr r0, [r4, r0]
mov r1, #5
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r6, #0
add r0, #0xa9
ldr r0, [r4, r0]
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD20_022538B0
add sp, #0x10
@@ -2026,12 +2026,12 @@ MOD20_0225328C: ; 0x0225328C
ldr r0, [r4, r0]
mov r1, #5
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r6, #0
add r0, #0xa5
ldr r0, [r4, r0]
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD20_022538B0
add sp, #0x10
@@ -2063,12 +2063,12 @@ MOD20_022532F0: ; 0x022532F0
ldr r0, [r4, r0]
add r2, #0x84
mov r3, #0x1b
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _02253334 ; =0x00000671
bl FUN_020054C8
add r0, r5, #0
@@ -2098,12 +2098,12 @@ MOD20_02253338: ; 0x02253338
ldr r0, [r4, r0]
add r2, #0x2c
mov r3, #0x1b
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD20_02252EBC
add sp, #0xc
@@ -2130,12 +2130,12 @@ MOD20_02253378: ; 0x02253378
ldr r0, [r4, r0]
add r2, #0xdc
mov r3, #0x1b
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _022533BC ; =0x0000066F
bl FUN_020054C8
add r0, r5, #0
@@ -2451,7 +2451,7 @@ _02253600:
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_0225361C:
mov r3, #2
str r3, [sp]
@@ -2468,12 +2468,12 @@ _0225361C:
ldr r0, [r4, r0]
mov r1, #5
lsr r2, r2, #0x10
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
cmp r5, #3
bne _02253658
add r0, r6, #0
@@ -2510,17 +2510,17 @@ MOD20_02253668: ; 0x02253668
ldr r0, [r4, r0]
mov r1, #5
mov r2, #0x40
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r1, #0
ldr r0, _022536C4 ; =0x04001050
add r2, r1, #0
@@ -2546,12 +2546,12 @@ MOD20_022536C8: ; 0x022536C8
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #6
lsl r0, r0, #6
ldr r0, [r4, r0]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD20_02252EBC
pop {r3, r4, r5, pc}
@@ -3118,7 +3118,7 @@ MOD20_02253AA4: ; 0x02253AA4
add r2, sp, #0xc
mov r3, #9
add r6, r0, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
mov r1, #4
add r0, sp, #0xc
strh r1, [r0]
@@ -3137,7 +3137,7 @@ MOD20_02253AA4: ; 0x02253AA4
add r0, r6, #0
lsr r1, r1, #0x18
add r2, sp, #0xc
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
mov r1, #6
add r0, sp, #0xc
strh r1, [r0]
@@ -3157,7 +3157,7 @@ MOD20_02253AA4: ; 0x02253AA4
lsr r1, r1, #0x18
add r2, sp, #0xc
mov r3, #0xd
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
mov r1, #0xa
bl _u32_div_f
@@ -3189,7 +3189,7 @@ MOD20_02253AA4: ; 0x02253AA4
lsr r1, r1, #0x18
add r2, sp, #0xc
mov r3, #0xf
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #4
lsr r1, r0, #2
lsl r0, r0, #0x1e
@@ -3215,7 +3215,7 @@ MOD20_02253AA4: ; 0x02253AA4
lsr r1, r1, #0x18
add r2, sp, #0xc
mov r3, #0x11
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add sp, #0x14
pop {r3, r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/modules/21/src/mod21_02254A6C.c b/arm9/modules/21/src/mod21_02254A6C.c
index 040ebdaa..45b11873 100644
--- a/arm9/modules/21/src/mod21_02254A6C.c
+++ b/arm9/modules/21/src/mod21_02254A6C.c
@@ -25,14 +25,14 @@ extern BOOL MOD20_02253888(void *param0, void *param1);
u8 const MOD21_02254D90[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-extern void FUN_02016C18(u32 param0, u32 param1, void *param2, u32 param3);
+extern void InitBgFromTemplate(u32 param0, u32 param1, void *param2, u32 param3);
extern void GfGfxLoader_LoadCharData(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7);
extern void GfGfxLoader_LoadScrnData(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7);
extern void MOD20_02252D7C(u32 param0, u32 param1);
-extern void FUN_02017CD0(u32 param0, u32 param1);
-extern void FUN_020178A0(u32 param0, u32 param1);
+extern void BgCommitTilemapBufferToVram(u32 param0, u32 param1);
+extern void FreeBgTilemapBuffer(u32 param0, u32 param1);
-extern void FUN_02018170(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 *param6, u8 param7, u32 param8, u32 param9, u32 param10);
+extern void CopyToBgTilemapRect(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 *param6, u8 param7, u32 param8, u32 param9, u32 param10);
extern void MOD11_02252DB4(u32 param0, u32 param1);
@@ -104,12 +104,12 @@ THUMB_FUNC BOOL MOD21_02254B60(u32 param0, void *param1)
{
#pragma unused (param0)
UnkStruct02254A6C *strct = MOD20_022538A0(param1);
- FUN_02016C18(strct->Unk04, 6, MOD21_02254D90, 0);
+ InitBgFromTemplate(strct->Unk04, 6, MOD21_02254D90, 0);
GfGfxLoader_LoadCharData(12, 23, strct->Unk04, 6, 0, 0, 1, 8);
GfGfxLoader_LoadScrnData(12, 24, strct->Unk04, 6, 0, 0, 1, 8);
MOD20_02252D7C(0, 0);
MOD21_02254C5C(strct);
- FUN_02017CD0(strct->Unk04, 6);
+ BgCommitTilemapBufferToVram(strct->Unk04, 6);
u32 r3 = reg_GXS_DB_DISPCNT;
u32 r2 = reg_GXS_DB_DISPCNT;
vu32 tmp = r3; //unused? wtf
@@ -128,7 +128,7 @@ THUMB_FUNC BOOL MOD21_02254BF4(u32 param0, void *param1)
#pragma unused (param0)
UnkStruct02254A6C *strct = MOD20_022538A0(param1);
MOD21_02254C5C(strct);
- FUN_02017CD0(strct->Unk04, 6);
+ BgCommitTilemapBufferToVram(strct->Unk04, 6);
return MOD21_02254B4C(param1);
}
@@ -151,7 +151,7 @@ THUMB_FUNC BOOL MOD21_02254C40(u32 param0, void *param1)
{
#pragma unused (param0)
UnkStruct02254A6C *strct = MOD20_022538A0(param1);
- FUN_020178A0(strct->Unk04, 6);
+ FreeBgTilemapBuffer(strct->Unk04, 6);
return MOD21_02254B4C(param1);
}
@@ -168,8 +168,8 @@ THUMB_FUNC void MOD21_02254C5C(UnkStruct02254A6C *param0)
while (reg_CP_DIVCNT & (regaddr >> 0xb)) { }
u32 divRemRes = reg_CP_DIVREM_RESULT_L;
- FUN_02018170(param0->Unk04, 6, 3, 7, 4, 9, param0->Unk30, (u8)(divResult << 2), 0, 40, 9);
- FUN_02018170(param0->Unk04, 6, 8, 7, 4, 9, param0->Unk30, (u8)(divRemRes << 2), 0, 40, 9);
+ CopyToBgTilemapRect(param0->Unk04, 6, 3, 7, 4, 9, param0->Unk30, (u8)(divResult << 2), 0, 40, 9);
+ CopyToBgTilemapRect(param0->Unk04, 6, 8, 7, 4, 9, param0->Unk30, (u8)(divRemRes << 2), 0, 40, 9);
tmp = param0->Unk00->Unk04;
reg_CP_DIVCNT = 0;
@@ -182,6 +182,6 @@ THUMB_FUNC void MOD21_02254C5C(UnkStruct02254A6C *param0)
while (reg_CP_DIVCNT & (regaddr >> 0xb)) { }
divRemRes = reg_CP_DIVREM_RESULT_L;
- FUN_02018170(param0->Unk04, 6, 15, 7, 4, 9, param0->Unk30, (u8)(divResult << 2), 0, 40, 9);
- FUN_02018170(param0->Unk04, 6, 20, 7, 4, 9, param0->Unk30, (u8)(divRemRes << 2), 0, 40, 9);
+ CopyToBgTilemapRect(param0->Unk04, 6, 15, 7, 4, 9, param0->Unk30, (u8)(divResult << 2), 0, 40, 9);
+ CopyToBgTilemapRect(param0->Unk04, 6, 20, 7, 4, 9, param0->Unk30, (u8)(divRemRes << 2), 0, 40, 9);
}
diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s
index bf11e9db..507feb01 100644
--- a/arm9/modules/22/asm/module_22.s
+++ b/arm9/modules/22/asm/module_22.s
@@ -875,7 +875,7 @@ MOD22_02254E8C: ; 0x02254E8C
bl MOD20_02252D24
str r0, [r4, #0x5c]
mov r0, #8
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
cmp r0, #0
bne _02254EBA
@@ -1152,7 +1152,7 @@ MOD22_02255098: ; 0x02255098
ldr r2, _0225515C ; =MOD22_02255654
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -1182,7 +1182,7 @@ MOD22_02255098: ; 0x02255098
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r7, #0
bl MOD20_022538A0
add r4, r0, #0
@@ -1356,7 +1356,7 @@ MOD22_02255230: ; 0x02255230
bl MOD22_02255544
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD22_02255084
pop {r3, r4, r5, pc}
@@ -1384,7 +1384,7 @@ MOD22_02255268: ; 0x02255268
bl MOD22_02255544
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _022552A8 ; =0x00000669
bl MOD20_02252B28
add r0, r5, #0
@@ -1428,7 +1428,7 @@ _022552DC:
bl MOD22_02255544
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD20_022538B0
pop {r4, r5, r6, pc}
@@ -1488,7 +1488,7 @@ _02255358:
bl MOD22_02255544
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_0225537A:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -1549,7 +1549,7 @@ _022553D8:
bl MOD22_02255544
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_022553FA:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -1597,7 +1597,7 @@ _0225543A:
bl MOD22_02255544
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _02255498 ; =0x00000666
bl MOD20_02252B28
add r0, r6, #0
@@ -1623,7 +1623,7 @@ _02255468:
bl MOD22_02255544
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_02255496:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -1668,7 +1668,7 @@ _022554D6:
bl MOD22_02255544
ldr r0, [r6, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD20_022538B0
mov r0, #0
@@ -1722,7 +1722,7 @@ MOD22_02255544: ; 0x02255544
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
mov r1, #6
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldr r1, _022555A0 ; =0x00000252
mov r7, #1
add r1, r0, r1
@@ -1797,7 +1797,7 @@ _022555CC:
bl MOD20_02254014
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
add r0, #0x84
ldr r0, [r0]
diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s
index 9f052087..15af3d3a 100644
--- a/arm9/modules/23/asm/module_23.s
+++ b/arm9/modules/23/asm/module_23.s
@@ -1153,7 +1153,7 @@ MOD23_02255088: ; 0x02255088
ldr r2, _02255118 ; =MOD23_02255D1C
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -1185,7 +1185,7 @@ MOD23_02255088: ; 0x02255088
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _0225511C ; =0x04001000
ldr r0, _02255120 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -1216,7 +1216,7 @@ MOD23_02255124: ; 0x02255124
add r6, r0, #0
ldr r0, [r6, #4]
mov r1, #6
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
mov r0, #0
ldr r3, _022551A0 ; =MOD23_02255FB8
@@ -1310,10 +1310,10 @@ MOD23_022551A4: ; 0x022551A4
ldrb r3, [r5, r3]
str r0, [sp, #8]
ldr r0, [r4, #4]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r6, #0
bl MOD23_02255074
add sp, #0xc
@@ -1356,10 +1356,10 @@ MOD23_02255210: ; 0x02255210
ldrb r3, [r5, r3]
str r0, [sp, #8]
ldr r0, [r4, #4]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r6, #0
bl MOD23_02255074
add sp, #0xc
@@ -1391,7 +1391,7 @@ MOD23_02255270: ; 0x02255270
bl MOD23_0225548C
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r6, #0
bl MOD23_02255074
pop {r4, r5, r6, pc}
@@ -1419,7 +1419,7 @@ MOD23_022552A8: ; 0x022552A8
bl MOD23_0225544C
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r6, #0
bl MOD23_02255074
pop {r4, r5, r6, pc}
@@ -1446,7 +1446,7 @@ MOD23_022552E8: ; 0x022552E8
bl MOD23_0225548C
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r6, #0
bl MOD23_02255074
pop {r4, r5, r6, pc}
@@ -1474,7 +1474,7 @@ MOD23_02255320: ; 0x02255320
bl MOD23_0225544C
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r6, #0
bl MOD23_02255074
pop {r4, r5, r6, pc}
@@ -1504,7 +1504,7 @@ MOD23_02255360: ; 0x02255360
bl MOD23_02255410
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r6, #0
bl MOD23_02255074
pop {r4, r5, r6, pc}
@@ -1538,7 +1538,7 @@ _022553B2:
bl MOD23_0225544C
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD23_02255074
pop {r3, r4, r5, pc}
@@ -1558,7 +1558,7 @@ MOD23_022553E4: ; 0x022553E4
bl MOD23_02255410
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD23_02255074
pop {r3, r4, r5, pc}
@@ -1572,7 +1572,7 @@ MOD23_02255410: ; 0x02255410
add r5, r1, #0
mov r1, #6
add r4, r0, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldrh r1, [r5, #2]
cmp r1, #0x11
bne _0225542E
@@ -1602,7 +1602,7 @@ MOD23_0225544C: ; 0x0225544C
push {lr}
sub sp, #0xc
mov r1, #6
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r1, #0x29
str r1, [sp]
mov r1, #0x28
@@ -1625,7 +1625,7 @@ MOD23_02255470: ; 0x02255470
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD23_02255074
pop {r4, pc}
@@ -1638,7 +1638,7 @@ MOD23_0225548C: ; 0x0225548C
sub sp, #0x14
add r6, r1, #0
mov r1, #6
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r7, r0, #0
ldrh r0, [r6]
mov r1, #0
diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s
index 577a6ac9..65182148 100644
--- a/arm9/modules/24/asm/module_24.s
+++ b/arm9/modules/24/asm/module_24.s
@@ -668,7 +668,7 @@ MOD24_02254D00: ; 0x02254D00
beq _02254D3C
ldr r0, [r4, #4]
ldr r2, _02254D40 ; =MOD24_0225510C
- bl FUN_02019150
+ bl AddWindow
mov r2, #0xbe
ldr r1, [r4]
ldr r0, _02254D44 ; =0x000016E8
@@ -715,7 +715,7 @@ _02254D5C:
lsl r2, r2, #6
bl FUN_02089444
ldr r0, [r4, #0x70]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x70]
bl FreeToHeap
_02254D7E:
@@ -795,12 +795,12 @@ _02254DF0:
ldr r2, _02254ED0 ; =MOD24_02255114
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
ldr r2, _02254ED4 ; =MOD24_02255130
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #8
bl GF_heap_c_dummy_return_true
cmp r0, #0
@@ -860,7 +860,7 @@ _02254E82:
_02254E96:
ldr r0, [r5, #4]
mov r1, #7
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254ED8 ; =0x04001000
ldr r0, _02254EDC ; =0xFFFFE0FF
ldr r3, [r1]
@@ -932,7 +932,7 @@ MOD24_02254F28: ; 0x02254F28
add r0, r4, #0
bl MOD20_022538A0
ldr r0, [r0, #0x70]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
bl MOD24_02254DC8
pop {r4, pc}
@@ -1072,7 +1072,7 @@ MOD24_02255038: ; 0x02255038
add r0, r4, #0
bl MOD20_022538A0
ldr r0, [r0, #0x70]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
bl MOD24_02254DC8
pop {r4, pc}
@@ -1088,10 +1088,10 @@ MOD24_02255050: ; 0x02255050
bl MOD24_022550D4
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD24_02254DC8
pop {r3, r4, r5, pc}
diff --git a/arm9/modules/25/asm/module_25.s b/arm9/modules/25/asm/module_25.s
index 5e70bbbe..69efec33 100644
--- a/arm9/modules/25/asm/module_25.s
+++ b/arm9/modules/25/asm/module_25.s
@@ -428,7 +428,7 @@ MOD25_02254B34: ; 0x02254B34
ldr r2, _02254BBC ; =MOD25_02254D08
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -460,7 +460,7 @@ MOD25_02254B34: ; 0x02254B34
bl MOD25_02254C30
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254BC0 ; =0x04001000
ldr r0, _02254BC4 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -494,7 +494,7 @@ MOD25_02254BC8: ; 0x02254BC8
bl MOD25_02254C30
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD25_02254B20
pop {r3, r4, r5, pc}
@@ -532,7 +532,7 @@ MOD25_02254C14: ; 0x02254C14
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD25_02254B20
pop {r4, pc}
diff --git a/arm9/modules/26/asm/module_26.s b/arm9/modules/26/asm/module_26.s
index 6d8828a0..251ea218 100644
--- a/arm9/modules/26/asm/module_26.s
+++ b/arm9/modules/26/asm/module_26.s
@@ -590,7 +590,7 @@ MOD26_02254C60: ; 0x02254C60
ldr r2, _02254CB8 ; =MOD26_02254FD4
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
bl MOD26_02254CC4
ldr r0, [r5, #4]
@@ -601,7 +601,7 @@ MOD26_02254C60: ; 0x02254C60
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254CBC ; =0x04001000
ldr r0, _02254CC0 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -702,7 +702,7 @@ _02254CEC:
ldr r2, [sp, #0x1c]
mov r1, #6
lsl r3, r3, #8
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r0, [sp, #0x1c]
bl FreeToHeap
_02254D68:
@@ -722,7 +722,7 @@ MOD26_02254D6C: ; 0x02254D6C
bl MOD26_02254DAC
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD26_02254C4C
pop {r3, r4, r5, pc}
@@ -736,7 +736,7 @@ MOD26_02254D90: ; 0x02254D90
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD26_02254C4C
pop {r4, pc}
@@ -748,7 +748,7 @@ MOD26_02254DAC: ; 0x02254DAC
push {r3, r4, r5, r6, r7, lr}
add r4, r1, #0
mov r1, #6
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r5, #0
ldr r1, _02254DE0 ; =MOD26_02254FD0
add r0, #0x84
diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s
index 25e4a4b6..c2c6c837 100644
--- a/arm9/modules/27/asm/module_27.s
+++ b/arm9/modules/27/asm/module_27.s
@@ -516,7 +516,7 @@ MOD27_02254C08: ; 0x02254C08
ldr r2, _02254CBC ; =MOD27_02255378
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -540,7 +540,7 @@ MOD27_02254C08: ; 0x02254C08
ldr r0, [r4, #4]
mov r1, #6
mov r2, #5
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0
add r1, r0, #0
bl MOD20_02252D7C
@@ -551,7 +551,7 @@ MOD27_02254C08: ; 0x02254C08
bl MOD27_02254CC8
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #0xf
mov r1, #1
bl MOD20_0225396C
@@ -631,9 +631,9 @@ _02254CE8:
lsl r3, r3, #0x18
ldr r0, [r0, #4]
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
- bl FUN_02019270
+ bl PutWindowTilemap
ldr r1, [sp, #0x14]
add r0, r4, #0
bl MOD27_02254D60
@@ -686,7 +686,7 @@ MOD27_02254D60: ; 0x02254D60
sub r3, r3, #1
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldrb r0, [r5, #6]
mov r1, #6
mov r2, #2
@@ -702,7 +702,7 @@ MOD27_02254D60: ; 0x02254D60
str r0, [sp, #0xc]
ldrb r3, [r5, #5]
ldr r0, [r4, #4]
- bl FUN_02018540
+ bl FillBgTilemapRect
ldrb r0, [r5, #6]
ldr r2, _02254E98 ; =0x00000401
mov r1, #6
@@ -721,7 +721,7 @@ MOD27_02254D60: ; 0x02254D60
add r3, r6, r3
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldrb r0, [r5, #6]
mov r1, #6
add r2, r1, #0
@@ -737,7 +737,7 @@ MOD27_02254D60: ; 0x02254D60
sub r3, r3, #1
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldrb r0, [r5, #6]
ldr r2, _02254E9C ; =0x00000406
mov r1, #6
@@ -754,7 +754,7 @@ MOD27_02254D60: ; 0x02254D60
add r3, r6, r3
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldrb r1, [r5, #6]
ldrb r0, [r5, #8]
ldr r2, _02254EA0 ; =0x00000801
@@ -773,7 +773,7 @@ MOD27_02254D60: ; 0x02254D60
sub r3, r3, #1
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
ldrb r1, [r5, #6]
ldrb r0, [r5, #8]
ldr r2, _02254EA4 ; =0x00000802
@@ -790,7 +790,7 @@ MOD27_02254D60: ; 0x02254D60
str r0, [sp, #0xc]
ldrb r3, [r5, #5]
ldr r0, [r4, #4]
- bl FUN_02018540
+ bl FillBgTilemapRect
ldrb r1, [r5, #6]
ldrb r0, [r5, #8]
ldr r2, _02254EA8 ; =0x00000C01
@@ -810,7 +810,7 @@ MOD27_02254D60: ; 0x02254D60
add r3, r4, r3
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x10
pop {r4, r5, r6, pc}
nop
@@ -849,7 +849,7 @@ MOD27_02254EAC: ; 0x02254EAC
bl FillWindowPixelRect
_02254EE0:
add r0, r5, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #8
pop {r3, r4, r5, pc}
.align 2, 0
@@ -1361,7 +1361,7 @@ _02255288:
add r4, #0x3c
_0225529C:
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r5, #0x38]
add r6, r6, #1
add r4, #0x10
@@ -1382,7 +1382,7 @@ MOD27_022552B4: ; 0x022552B4
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD27_02254BF4
pop {r4, pc}
@@ -1412,7 +1412,7 @@ MOD27_022552D0: ; 0x022552D0
ldr r0, [r5, #4]
mov r1, #6
mov r2, #5
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r5, #0
add r1, r4, #0
bl MOD27_02254F18
@@ -1425,7 +1425,7 @@ MOD27_022552D0: ; 0x022552D0
bl MOD27_02254CC8
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _02255338 ; =0x00000669
bl MOD20_02252B28
add r0, r6, #0
diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s
index 04176ba5..ee242492 100644
--- a/arm9/modules/28/asm/module_28.s
+++ b/arm9/modules/28/asm/module_28.s
@@ -547,7 +547,7 @@ MOD28_02254C18: ; 0x02254C18
ldr r2, _02254CA8 ; =MOD28_02255ED8
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -570,13 +570,13 @@ MOD28_02254C18: ; 0x02254C18
ldr r0, [r5, #4]
mov r1, #6
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0
add r1, r0, #0
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, [r5]
add r0, r5, #0
bl MOD28_02254CB4
@@ -915,7 +915,7 @@ MOD28_02254F18: ; 0x02254F18
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD28_02254C04
pop {r4, pc}
diff --git a/arm9/modules/29/asm/module_29.s b/arm9/modules/29/asm/module_29.s
index 9fb45a65..061b078c 100644
--- a/arm9/modules/29/asm/module_29.s
+++ b/arm9/modules/29/asm/module_29.s
@@ -672,7 +672,7 @@ MOD29_02254D10: ; 0x02254D10
ldr r2, _02254DE8 ; =MOD29_022550E0
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -737,7 +737,7 @@ MOD29_02254D10: ; 0x02254D10
bl GXS_LoadOBJPltt
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254DEC ; =0x04001000
ldr r0, _02254DF0 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -771,7 +771,7 @@ MOD29_02254DF4: ; 0x02254DF4
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD29_02254CFC
pop {r4, pc}
diff --git a/arm9/modules/30/asm/module_30.s b/arm9/modules/30/asm/module_30.s
index 5daf123f..69e08586 100644
--- a/arm9/modules/30/asm/module_30.s
+++ b/arm9/modules/30/asm/module_30.s
@@ -536,7 +536,7 @@ MOD30_02254C18: ; 0x02254C18
ldr r2, _02254C9C ; =MOD30_02254DD0
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -566,7 +566,7 @@ MOD30_02254C18: ; 0x02254C18
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254CA0 ; =0x04001000
ldr r0, _02254CA4 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -598,7 +598,7 @@ MOD30_02254CA8: ; 0x02254CA8
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD30_02254C04
pop {r4, pc}
diff --git a/arm9/modules/31/asm/module_31.s b/arm9/modules/31/asm/module_31.s
index 5e45ce23..e565a1cf 100644
--- a/arm9/modules/31/asm/module_31.s
+++ b/arm9/modules/31/asm/module_31.s
@@ -526,7 +526,7 @@ MOD31_02254C0C: ; 0x02254C0C
ldr r2, _02254C90 ; =MOD31_02254DC8
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -556,7 +556,7 @@ MOD31_02254C0C: ; 0x02254C0C
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254C94 ; =0x04001000
ldr r0, _02254C98 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -588,7 +588,7 @@ MOD31_02254C9C: ; 0x02254C9C
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD31_02254BF8
pop {r4, pc}
diff --git a/arm9/modules/32/asm/module_32.s b/arm9/modules/32/asm/module_32.s
index c928dd1a..b78a206b 100644
--- a/arm9/modules/32/asm/module_32.s
+++ b/arm9/modules/32/asm/module_32.s
@@ -453,7 +453,7 @@ MOD32_02254B58: ; 0x02254B58
ldr r2, _02254BDC ; =MOD32_02254C78
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -483,7 +483,7 @@ MOD32_02254B58: ; 0x02254B58
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254BE0 ; =0x04001000
ldr r0, _02254BE4 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -517,7 +517,7 @@ MOD32_02254BE8: ; 0x02254BE8
bl MOD32_02254AF0
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD32_02254B44
pop {r3, r4, r5, pc}
diff --git a/arm9/modules/33/asm/module_33.s b/arm9/modules/33/asm/module_33.s
index 55ccf203..a0c3782f 100644
--- a/arm9/modules/33/asm/module_33.s
+++ b/arm9/modules/33/asm/module_33.s
@@ -303,7 +303,7 @@ MOD33_02254A38: ; 0x02254A38
ldr r2, _02254ACC ; =MOD33_02254B00
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -324,7 +324,7 @@ MOD33_02254A38: ; 0x02254A38
ldr r0, [r5, #4]
mov r1, #6
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x20
str r0, [sp]
mov r0, #8
@@ -340,7 +340,7 @@ MOD33_02254A38: ; 0x02254A38
bl MOD20_02253AA4
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254AD0 ; =0x04001000
ldr r0, _02254AD4 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -372,7 +372,7 @@ MOD33_02254AD8: ; 0x02254AD8
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD33_02254A24
pop {r4, pc}
diff --git a/arm9/modules/34/asm/module_34.s b/arm9/modules/34/asm/module_34.s
index ddc4f587..02906b7f 100644
--- a/arm9/modules/34/asm/module_34.s
+++ b/arm9/modules/34/asm/module_34.s
@@ -395,7 +395,7 @@ MOD34_02254AE8: ; 0x02254AE8
ldr r2, _02254B8C ; =MOD34_02254CA0
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -437,7 +437,7 @@ _02254B4A:
blt _02254B4A
ldr r0, [r6, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _02254B90 ; =0x04001000
ldr r1, _02254B94 ; =0xFFFFE0FF
ldr r2, [r0]
@@ -470,7 +470,7 @@ MOD34_02254B98: ; 0x02254B98
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD34_02254AD4
pop {r4, pc}
@@ -496,7 +496,7 @@ MOD34_02254BB4: ; 0x02254BB4
bl MOD34_02254C1C
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD34_02254AD4
pop {r3, r4, r5, pc}
@@ -521,7 +521,7 @@ MOD34_02254BE8: ; 0x02254BE8
bl MOD34_02254C1C
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl MOD34_02254AD4
pop {r3, r4, r5, pc}
@@ -535,7 +535,7 @@ MOD34_02254C1C: ; 0x02254C1C
mov r1, #6
add r4, r2, #0
add r6, r3, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldr r1, _02254C6C ; =MOD34_02254C94
lsl r2, r5, #1
ldrh r1, [r1, r2]
diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s
index f73ad3ff..84225174 100644
--- a/arm9/modules/35/asm/module_35.s
+++ b/arm9/modules/35/asm/module_35.s
@@ -597,7 +597,7 @@ MOD35_02254C98: ; 0x02254C98
ldr r2, _02254D24 ; =MOD35_022550C4
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -627,7 +627,7 @@ MOD35_02254C98: ; 0x02254C98
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254D28 ; =0x0400104C
mov r0, #0
strb r0, [r1]
@@ -688,7 +688,7 @@ _02254D5A:
strb r1, [r0, #1]
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD35_02254C84
_02254D7C:
diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s
index 0b141199..617d957c 100644
--- a/arm9/modules/36/asm/module_36.s
+++ b/arm9/modules/36/asm/module_36.s
@@ -993,12 +993,12 @@ _02254F70:
ldr r2, _0225502C ; =MOD36_02255408
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
ldr r2, _02255030 ; =MOD36_02255424
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #8
bl GF_heap_c_dummy_return_true
cmp r0, #0
@@ -1044,7 +1044,7 @@ _02254FEA:
bl MOD36_0225503C
ldr r0, [r4, #4]
mov r1, #7
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02255034 ; =0x04001000
ldr r0, _02255038 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -1096,7 +1096,7 @@ MOD36_0225503C: ; 0x0225503C
add r1, r4, #0
ldr r0, [r4, #4]
add r1, #0x48
- bl FUN_02019150
+ bl AddWindow
ldr r0, [r4]
mov r2, #0xbe
ldr r0, [r0, #8]
@@ -1112,10 +1112,10 @@ MOD36_0225503C: ; 0x0225503C
_02255082:
add r0, r4, #0
add r0, #0x48
- bl FUN_02019270
+ bl PutWindowTilemap
add r4, #0x48
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #8
pop {r3, r4, r5, pc}
nop
@@ -1151,13 +1151,13 @@ _022550C4:
bl FUN_02089444
add r0, r4, #0
add r0, #0x48
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD36_02254F48
pop {r3, r4, r5, pc}
@@ -1171,7 +1171,7 @@ MOD36_022550F4: ; 0x022550F4
add r0, r4, #0
bl MOD20_022538A0
add r0, #0x48
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
bl MOD36_02254F48
pop {r4, pc}
@@ -1228,7 +1228,7 @@ MOD36_02255164: ; 0x02255164
add r0, r4, #0
bl MOD20_022538A0
add r0, #0x48
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
bl MOD36_02254F48
pop {r4, pc}
@@ -1301,7 +1301,7 @@ MOD36_022551E0: ; 0x022551E0
bl FillWindowPixelBuffer
add r4, #0x48
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r5, #0
bl MOD36_02254F48
pop {r3, r4, r5, pc}
diff --git a/arm9/modules/37/asm/module_37.s b/arm9/modules/37/asm/module_37.s
index c2f1439a..313343b5 100644
--- a/arm9/modules/37/asm/module_37.s
+++ b/arm9/modules/37/asm/module_37.s
@@ -459,7 +459,7 @@ MOD37_02254B70: ; 0x02254B70
ldr r2, _02254BF4 ; =MOD37_02254D44
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -489,7 +489,7 @@ MOD37_02254B70: ; 0x02254B70
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254BF8 ; =0x04001000
ldr r0, _02254BFC ; =0xFFFFE0FF
ldr r3, [r1]
@@ -540,7 +540,7 @@ _02254C26:
beq _02254C40
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD37_02254B5C
_02254C40:
diff --git a/arm9/modules/38/asm/module_38.s b/arm9/modules/38/asm/module_38.s
index ee5980ec..bf495f60 100644
--- a/arm9/modules/38/asm/module_38.s
+++ b/arm9/modules/38/asm/module_38.s
@@ -741,7 +741,7 @@ MOD38_02254D84: ; 0x02254D84
ldr r2, _02254E1C ; =MOD38_0225529C
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -776,7 +776,7 @@ MOD38_02254D84: ; 0x02254D84
bl MOD38_02254E28
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254E20 ; =0x04001000
ldr r0, _02254E24 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -822,7 +822,7 @@ MOD38_02254E28: ; 0x02254E28
ldr r0, [r5, #4]
add r1, #0x74
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #4
str r0, [sp]
mov r2, #6
@@ -840,7 +840,7 @@ MOD38_02254E28: ; 0x02254E28
ldr r0, [r5, #4]
add r1, #0x84
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #8
str r0, [sp]
mov r2, #6
@@ -858,7 +858,7 @@ MOD38_02254E28: ; 0x02254E28
ldr r0, [r5, #4]
add r1, #0x94
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x13
str r0, [sp]
mov r0, #0x16
@@ -876,19 +876,19 @@ MOD38_02254E28: ; 0x02254E28
add r1, #0xa4
mov r2, #6
mov r3, #3
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
add r0, #0x74
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, #0
add r0, #0x84
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, #0
add r0, #0x94
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, #0
add r0, #0xa4
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, #0
add r1, r6, #0
bl MOD38_02254FCC
@@ -902,16 +902,16 @@ MOD38_02254EF4: ; 0x02254EF4
push {r4, lr}
add r4, r0, #0
add r0, #0x74
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x84
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x94
- bl FUN_02019178
+ bl RemoveWindow
add r4, #0xa4
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
thumb_func_end MOD38_02254EF4
@@ -925,7 +925,7 @@ MOD38_02254F18: ; 0x02254F18
bl MOD38_02254EF4
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD38_02254D70
pop {r3, r4, r5, pc}
@@ -1090,7 +1090,7 @@ _02255048:
lsr r3, r3, #1
bl AddTextPrinterParameterized2
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
@@ -1128,7 +1128,7 @@ MOD38_02255084: ; 0x02255084
add r3, r1, #0
bl AddTextPrinterParameterized2
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s
index da3f83f4..2fdb4637 100644
--- a/arm9/modules/39/asm/module_39.s
+++ b/arm9/modules/39/asm/module_39.s
@@ -788,7 +788,7 @@ MOD39_02254DF4: ; 0x02254DF4
ldr r2, _02254E7C ; =MOD39_02255330
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -818,7 +818,7 @@ MOD39_02254DF4: ; 0x02254DF4
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254E80 ; =0x04001000
ldr r0, _02254E84 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -870,7 +870,7 @@ _02254EB0:
beq _02254ECA
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD39_02254DE0
_02254ECA:
diff --git a/arm9/modules/40/asm/module_40.s b/arm9/modules/40/asm/module_40.s
index 13c9a94f..62231a53 100644
--- a/arm9/modules/40/asm/module_40.s
+++ b/arm9/modules/40/asm/module_40.s
@@ -1038,7 +1038,7 @@ MOD40_02254FE8: ; 0x02254FE8
ldr r2, _0225506C ; =MOD40_02255340
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -1068,7 +1068,7 @@ MOD40_02254FE8: ; 0x02254FE8
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02255070 ; =0x04001000
ldr r0, _02255074 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -1120,7 +1120,7 @@ _022550A2:
beq _022550BC
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD40_02254FD4
_022550BC:
diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s
index 4d1afb06..939ea649 100644
--- a/arm9/modules/41/asm/module_41.s
+++ b/arm9/modules/41/asm/module_41.s
@@ -1561,7 +1561,7 @@ MOD41_022553F4: ; 0x022553F4
ldr r2, _022554CC ; =MOD41_022557DC
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -1591,7 +1591,7 @@ MOD41_022553F4: ; 0x022553F4
bl MOD20_02252D7C
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _022554D0 ; =0x04001000
ldr r0, _022554D4 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -1686,7 +1686,7 @@ _02255508:
beq _02255522
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD41_022553E0
_02255522:
diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s
index 03136570..9e502906 100644
--- a/arm9/modules/42/asm/module_42.s
+++ b/arm9/modules/42/asm/module_42.s
@@ -953,7 +953,7 @@ MOD42_02254F3C: ; 0x02254F3C
ldr r2, _02254FC0 ; =MOD42_022550DC
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -983,7 +983,7 @@ MOD42_02254F3C: ; 0x02254F3C
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254FC4 ; =0x04001000
ldr r0, _02254FC8 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -1015,7 +1015,7 @@ MOD42_02254FCC: ; 0x02254FCC
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD42_02254F28
pop {r4, pc}
diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s
index ce3da4bb..59f7e81d 100644
--- a/arm9/modules/43/asm/module_43.s
+++ b/arm9/modules/43/asm/module_43.s
@@ -561,7 +561,7 @@ MOD43_02254C28: ; 0x02254C28
ldr r0, [r5, #4]
ldr r2, _02254CC4 ; =MOD43_022551A0
mov r1, #6
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -595,7 +595,7 @@ MOD43_02254C28: ; 0x02254C28
bl MOD43_02254CD0
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254CC8 ; =0x04001000
ldr r0, _02254CCC ; =0xFFFFE0FF
ldr r3, [r1]
@@ -651,7 +651,7 @@ MOD43_02254CD0: ; 0x02254CD0
add r1, sp, #0x14
mov r2, #6
mov r3, #0x12
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, sp, #0x14
mov r1, #4
bl FillWindowPixelBuffer
@@ -667,11 +667,11 @@ MOD43_02254CD0: ; 0x02254CD0
str r1, [sp, #0xc]
bl AddTextPrinterParameterized2
add r0, sp, #0x14
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, sp, #0x14
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, sp, #0x14
- bl FUN_02019178
+ bl RemoveWindow
add r0, r6, #0
bl String_dtor
_02254D44:
@@ -717,7 +717,7 @@ _02254D78:
strb r1, [r0, #1]
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD43_02254C14
_02254DA0:
diff --git a/arm9/modules/44/asm/module_44.s b/arm9/modules/44/asm/module_44.s
index 19726565..b8f5aa0b 100644
--- a/arm9/modules/44/asm/module_44.s
+++ b/arm9/modules/44/asm/module_44.s
@@ -456,7 +456,7 @@ MOD44_02254B64: ; 0x02254B64
ldr r2, _02254BEC ; =MOD44_02254C70
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -486,7 +486,7 @@ MOD44_02254B64: ; 0x02254B64
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254BF0 ; =0x04001000
ldr r0, _02254BF4 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -518,7 +518,7 @@ MOD44_02254BF8: ; 0x02254BF8
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD44_02254B50
pop {r4, pc}
diff --git a/arm9/modules/45/asm/module_45.s b/arm9/modules/45/asm/module_45.s
index 95cf3fbc..4f710dc6 100644
--- a/arm9/modules/45/asm/module_45.s
+++ b/arm9/modules/45/asm/module_45.s
@@ -637,12 +637,12 @@ MOD45_02254CCC: ; 0x02254CCC
ldr r2, _02254D60 ; =MOD45_022550FC
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
ldr r2, _02254D64 ; =MOD45_022550E0
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0
add r1, r4, #0
bl MOD45_02254DDC
@@ -666,10 +666,10 @@ MOD45_02254CCC: ; 0x02254CCC
bl MOD20_02252D7C
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, [r5, #4]
mov r1, #7
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254D68 ; =0x04001000
ldr r0, _02254D6C ; =0xFFFFE0FF
ldr r3, [r1]
@@ -703,10 +703,10 @@ MOD45_02254D70: ; 0x02254D70
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD45_02254CB8
pop {r3, r4, r5, pc}
@@ -742,7 +742,7 @@ _02254DBC:
bl MOD45_02254E28
ldr r0, [r5, #4]
mov r1, #7
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r4, #0
bl MOD45_02254CB8
pop {r3, r4, r5, pc}
@@ -825,7 +825,7 @@ MOD45_02254E28: ; 0x02254E28
mov r1, #7
add r2, r6, #0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -846,7 +846,7 @@ MOD45_02254E74: ; 0x02254E74
ldr r0, [r7, #4]
mov r1, #6
mov r2, #0x82
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r7, #4]
ldr r1, [r6]
bl MOD45_02254EBC
@@ -902,7 +902,7 @@ _02254ED6:
mov r1, #6
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r5, r5, #1
cmp r5, #4
blt _02254ED6
@@ -975,7 +975,7 @@ _02254F46:
mov r1, #6
add r2, r7, #0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r5, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
@@ -992,7 +992,7 @@ _02254F46:
mov r1, #6
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
_02254FAE:
mov r0, #0x14
add r3, r6, #0
@@ -1016,7 +1016,7 @@ _02254FAE:
mov r1, #6
add r2, r6, #0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r5, #1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
@@ -1034,7 +1034,7 @@ _02254FAE:
mov r1, #6
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
diff --git a/arm9/modules/46/asm/module_46.s b/arm9/modules/46/asm/module_46.s
index 66418468..aecfd51d 100644
--- a/arm9/modules/46/asm/module_46.s
+++ b/arm9/modules/46/asm/module_46.s
@@ -303,7 +303,7 @@ MOD46_02254A38: ; 0x02254A38
ldr r2, _02254ACC ; =MOD46_02254B00
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -324,7 +324,7 @@ MOD46_02254A38: ; 0x02254A38
ldr r0, [r5, #4]
mov r1, #6
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x20
str r0, [sp]
mov r0, #8
@@ -340,7 +340,7 @@ MOD46_02254A38: ; 0x02254A38
bl MOD20_02253AA4
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254AD0 ; =0x04001000
ldr r0, _02254AD4 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -372,7 +372,7 @@ MOD46_02254AD8: ; 0x02254AD8
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD46_02254A24
pop {r4, pc}
diff --git a/arm9/modules/47/asm/module_47.s b/arm9/modules/47/asm/module_47.s
index 3cd1bb32..48bd9b4a 100644
--- a/arm9/modules/47/asm/module_47.s
+++ b/arm9/modules/47/asm/module_47.s
@@ -877,7 +877,7 @@ MOD47_02254E74: ; 0x02254E74
ldr r2, _02254F28 ; =MOD47_022553F4
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -921,15 +921,15 @@ MOD47_02254E74: ; 0x02254E74
ldr r0, [r5, #4]
add r1, #0x20
mov r2, #6
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
add r0, #0x20
- bl FUN_02019270
+ bl PutWindowTilemap
add r0, r5, #0
bl MOD47_022550FC
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254F2C ; =0x04001000
ldr r0, _02254F30 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -961,10 +961,10 @@ MOD47_02254F34: ; 0x02254F34
bl MOD20_022538A0
add r4, r0, #0
add r0, #0x20
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD47_02254E60
pop {r3, r4, r5, pc}
@@ -1211,7 +1211,7 @@ MOD47_022550FC: ; 0x022550FC
bl AddTextPrinterParameterized2
add r4, #0x20
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, pc}
nop
@@ -1251,7 +1251,7 @@ MOD47_02255184: ; 0x02255184
bl AddTextPrinterParameterized2
add r4, #0x20
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, pc}
nop
@@ -1308,7 +1308,7 @@ MOD47_022551D8: ; 0x022551D8
bl AddTextPrinterParameterized2
add r4, #0x20
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -1371,7 +1371,7 @@ MOD47_02255250: ; 0x02255250
bl AddTextPrinterParameterized2
add r4, #0x20
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, pc}
nop
@@ -1464,7 +1464,7 @@ _0225532C:
blt _0225532C
add r5, #0x20
add r0, r5, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/48/asm/module_48.s b/arm9/modules/48/asm/module_48.s
index 8dfd4e0a..1aff0df2 100644
--- a/arm9/modules/48/asm/module_48.s
+++ b/arm9/modules/48/asm/module_48.s
@@ -426,7 +426,7 @@ MOD48_02254B30: ; 0x02254B30
ldr r2, _02254BBC ; =MOD48_02254F78
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -490,7 +490,7 @@ MOD48_02254BC8: ; 0x02254BC8
bl MOD48_02254EC0
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD48_02254B1C
pop {r3, r4, r5, pc}
diff --git a/arm9/modules/49/asm/module_49.s b/arm9/modules/49/asm/module_49.s
index 1de7ea96..68c7625e 100644
--- a/arm9/modules/49/asm/module_49.s
+++ b/arm9/modules/49/asm/module_49.s
@@ -384,14 +384,14 @@ MOD49_02254AD4: ; 0x02254AD4
ldr r2, _02254BD0 ; =MOD49_02254D20
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
ldr r0, [r5, #4]
mov r1, #6
mov r2, #4
mov r3, #1
- bl FUN_02017F48
+ bl BG_FillCharDataRange
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -402,7 +402,7 @@ MOD49_02254AD4: ; 0x02254AD4
ldr r0, [r5, #4]
mov r1, #6
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0
add r1, r0, #0
bl MOD20_02252D7C
@@ -418,12 +418,12 @@ MOD49_02254AD4: ; 0x02254AD4
ldr r0, [r5, #4]
add r1, sp, #0x1c
mov r2, #6
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, sp, #0x1c
mov r1, #4
bl FillWindowPixelBuffer
add r0, sp, #0x1c
- bl FUN_02019270
+ bl PutWindowTilemap
ldr r1, _02254BD4 ; =0x00000197
mov r0, #0x1a
mov r2, #0
@@ -450,15 +450,15 @@ MOD49_02254AD4: ; 0x02254AD4
str r1, [sp, #0xc]
bl AddTextPrinterParameterized2
add r0, sp, #0x1c
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
bl String_dtor
_02254B94:
add r0, sp, #0x1c
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, [sp, #0x14]
add r0, r5, #0
bl MOD49_02254C04
@@ -497,7 +497,7 @@ MOD49_02254BE4: ; 0x02254BE4
bl MOD49_02254CB8
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r5, #0
bl MOD49_02254AC0
pop {r3, r4, r5, pc}
diff --git a/arm9/modules/50/asm/module_50.s b/arm9/modules/50/asm/module_50.s
index 5d80d9b6..fc52f7fa 100644
--- a/arm9/modules/50/asm/module_50.s
+++ b/arm9/modules/50/asm/module_50.s
@@ -221,7 +221,7 @@ MOD50_022549AC: ; 0x022549AC
bl MOD20_022536F4
mov r0, #8
str r6, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
cmp r0, #0
beq _022549DA
@@ -312,7 +312,7 @@ MOD50_02254A48: ; 0x02254A48
ldr r2, _02254ADC ; =MOD50_02254B10
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -333,7 +333,7 @@ MOD50_02254A48: ; 0x02254A48
ldr r0, [r5, #4]
mov r1, #6
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x20
str r0, [sp]
mov r0, #8
@@ -350,7 +350,7 @@ MOD50_02254A48: ; 0x02254A48
bl MOD20_02253AA4
ldr r0, [r5, #4]
mov r1, #6
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _02254AE0 ; =0x04001000
ldr r0, _02254AE4 ; =0xFFFFE0FF
ldr r3, [r1]
@@ -382,7 +382,7 @@ MOD50_02254AE8: ; 0x02254AE8
bl MOD20_022538A0
ldr r0, [r0, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD50_02254A34
pop {r4, pc}
diff --git a/arm9/modules/51/asm/module_51.s b/arm9/modules/51/asm/module_51.s
index 4642f8c1..3683eec3 100644
--- a/arm9/modules/51/asm/module_51.s
+++ b/arm9/modules/51/asm/module_51.s
@@ -162,7 +162,7 @@ _02254960:
add r1, r5, #0
lsr r2, r2, #0x18
mov r3, #1
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -189,7 +189,7 @@ _02254960:
add r1, #0x10
lsr r2, r2, #0x18
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
add r0, #0x10
mov r1, #0
@@ -217,7 +217,7 @@ _02254960:
add r1, #0x20
lsr r2, r2, #0x18
mov r3, #0xc
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
add r0, #0x20
mov r1, #0
@@ -256,12 +256,12 @@ MOD51_02254A40: ; 0x02254A40
_02254A46:
add r0, r5, #0
add r0, #0x10
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0
add r0, #0x20
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x38
cmp r4, #3
@@ -370,16 +370,16 @@ MOD51_02254B30: ; 0x02254B30
push {r4, lr}
add r4, r0, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD51_02254B30
@@ -403,10 +403,10 @@ MOD51_02254B54: ; 0x02254B54
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #1
mov r1, #0
bl GX_EngineBToggleLayers
@@ -424,10 +424,10 @@ MOD51_02254B54: ; 0x02254B54
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #2
mov r1, #0
bl GX_EngineBToggleLayers
@@ -445,10 +445,10 @@ MOD51_02254B54: ; 0x02254B54
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #6
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #4
mov r1, #0
bl GX_EngineBToggleLayers
@@ -466,7 +466,7 @@ MOD51_02254B54: ; 0x02254B54
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #8
mov r1, #0
bl GX_EngineBToggleLayers
@@ -786,7 +786,7 @@ MOD51_02254E48: ; 0x02254E48
mov r1, #7
add r2, r7, #0
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
mov r0, #0x72
lsl r0, r0, #2
add r7, r5, r0
@@ -832,10 +832,10 @@ MOD51_02254E48: ; 0x02254E48
mov r1, #1
bl AddTextPrinterParameterized2
add r0, r7, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [sp, #0x1c]
add r0, r0, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r2, [r6, #8]
cmp r2, #0
beq _02254F22
@@ -852,7 +852,7 @@ MOD51_02254E48: ; 0x02254E48
bl AddTextPrinterParameterized2
_02254F22:
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -927,13 +927,13 @@ _02254F88:
_02254FB0:
ldr r0, [r5, #0x14]
mov r1, #7
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r1, #6
lsl r1, r1, #8
bl DC_FlushRange
ldr r0, [r5, #0x14]
mov r1, #7
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r2, r0, #0
mov r0, #0
str r0, [sp]
@@ -941,7 +941,7 @@ _02254FB0:
ldr r0, [r5, #0x14]
mov r1, #7
lsl r3, r3, #8
- bl FUN_02017CE8
+ bl BgCopyOrUncompressTilemapBufferRangeToVram
mov r0, #0xa1
mov r1, #0
lsl r0, r0, #2
@@ -1487,7 +1487,7 @@ _022553BE:
ldr r0, [sp, #0x1c]
mov r1, #7
mov r2, #0
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r3, [sp, #0x24]
add r1, r4, #4
lsl r6, r3, #2
@@ -1497,7 +1497,7 @@ _022553BE:
ldr r3, [r3, r6]
lsr r1, r1, #0x18
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [sp, #0x40]
add r4, r4, #1
add r5, #0x38
@@ -1507,13 +1507,13 @@ _022553BE:
_02255422:
ldr r0, [sp, #0x1c]
mov r1, #7
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r1, #6
lsl r1, r1, #8
bl DC_FlushRange
ldr r0, [sp, #0x1c]
mov r1, #7
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r2, r0, #0
mov r0, #0
str r0, [sp]
@@ -1521,7 +1521,7 @@ _02255422:
ldr r0, [sp, #0x1c]
mov r1, #7
lsl r3, r3, #8
- bl FUN_02017CE8
+ bl BgCopyOrUncompressTilemapBufferRangeToVram
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s
index 7049c5bb..46740908 100644
--- a/arm9/modules/53/asm/module_53.s
+++ b/arm9/modules/53/asm/module_53.s
@@ -47,7 +47,7 @@ _021D74F6:
add r4, r0, #0
bl memset
mov r0, #0x27
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4]
mov r0, #0x27
bl ScrStrBufs_new
@@ -436,7 +436,7 @@ MOD53_021D78A8: ; 0x021D78A8
bl FUN_0201C30C
bl FUN_02009F80
add r0, r4, #0
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D78C8 ; =0x027E0000
ldr r1, _021D78CC ; =0x00003FF8
mov r0, #1
@@ -482,7 +482,7 @@ MOD53_021D78F0: ; 0x021D78F0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D79E4 ; =0x021D9518
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -497,10 +497,10 @@ MOD53_021D78F0: ; 0x021D78F0
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D79E8 ; =0x021D9550
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -515,10 +515,10 @@ MOD53_021D78F0: ; 0x021D78F0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D79EC ; =0x021D956C
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -533,7 +533,7 @@ MOD53_021D78F0: ; 0x021D78F0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D79F0 ; =0x021D9588
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -548,10 +548,10 @@ MOD53_021D78F0: ; 0x021D78F0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D79F4 ; =0x021D9534
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -566,17 +566,17 @@ MOD53_021D78F0: ; 0x021D78F0
add r0, r4, #0
mov r1, #5
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x27
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x27
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x9c
pop {r4, r5, pc}
nop
@@ -732,22 +732,22 @@ MOD53_021D7B24: ; 0x021D7B24
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
@@ -1320,7 +1320,7 @@ MOD53_021D7FDC: ; 0x021D7FDC
add r1, r7, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xb6
lsl r0, r0, #2
add r0, r7, r0
@@ -1341,7 +1341,7 @@ MOD53_021D7FDC: ; 0x021D7FDC
ldr r0, [r7]
add r1, r7, r1
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xb2
lsl r0, r0, #2
add r0, r7, r0
@@ -1363,7 +1363,7 @@ MOD53_021D7FDC: ; 0x021D7FDC
add r1, r7, r1
mov r2, #1
mov r3, #0x19
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xba
lsl r0, r0, #2
add r0, r7, r0
@@ -1412,7 +1412,7 @@ _021D80A8:
add r1, r5, #0
mov r2, #4
mov r3, #5
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -1449,7 +1449,7 @@ MOD53_021D8104: ; 0x021D8104
add r5, r6, r0
_021D8110:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #5
@@ -1457,15 +1457,15 @@ _021D8110:
mov r0, #0xba
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xb2
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xb6
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD53_021D8104
diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s
index a0d5ce50..8d6e1767 100644
--- a/arm9/modules/54/asm/module_54.s
+++ b/arm9/modules/54/asm/module_54.s
@@ -48,7 +48,7 @@ _021D74F6:
add r4, r0, #0
bl memset
mov r0, #0x33
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4]
add r0, r6, #0
bl OverlayManager_GetField18
@@ -402,7 +402,7 @@ MOD54_021D784C: ; 0x021D784C
bl FUN_0201C30C
bl FUN_02009F80
add r0, r4, #0
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D786C ; =0x027E0000
ldr r1, _021D7870 ; =0x00003FF8
mov r0, #1
@@ -448,7 +448,7 @@ MOD54_021D7894: ; 0x021D7894
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D7988 ; =0x021D9720
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -463,10 +463,10 @@ MOD54_021D7894: ; 0x021D7894
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D798C ; =0x021D973C
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -481,10 +481,10 @@ MOD54_021D7894: ; 0x021D7894
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7990 ; =0x021D96CC
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -499,7 +499,7 @@ MOD54_021D7894: ; 0x021D7894
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D7994 ; =0x021D96E8
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -514,10 +514,10 @@ MOD54_021D7894: ; 0x021D7894
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7998 ; =0x021D9704
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -532,17 +532,17 @@ MOD54_021D7894: ; 0x021D7894
add r0, r4, #0
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x33
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x33
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x9c
pop {r4, r5, pc}
nop
@@ -660,19 +660,19 @@ MOD54_021D7A6C: ; 0x021D7A6C
push {r4, lr}
add r4, r0, #0
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
@@ -1076,7 +1076,7 @@ MOD54_021D7DB4: ; 0x021D7DB4
add r1, r4, r1
mov r2, #5
mov r3, #0x1a
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xbe
lsl r0, r0, #2
add r0, r4, r0
@@ -1098,7 +1098,7 @@ MOD54_021D7DB4: ; 0x021D7DB4
add r1, r4, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xba
lsl r0, r0, #2
add r0, r4, r0
@@ -1120,7 +1120,7 @@ MOD54_021D7DB4: ; 0x021D7DB4
add r1, r4, r1
mov r2, #0
mov r3, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xc2
lsl r0, r0, #2
ldr r1, [r4, #0x48]
@@ -1143,7 +1143,7 @@ MOD54_021D7DB4: ; 0x021D7DB4
add r1, r4, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xa6
lsl r0, r0, #2
add r0, r4, r0
@@ -1205,19 +1205,19 @@ MOD54_021D7EDC: ; 0x021D7EDC
mov r0, #0xa6
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xc2
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xbe
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xba
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
.align 2, 0
thumb_func_end MOD54_021D7EDC
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
index 51b82ddf..61c1dbe7 100644
--- a/arm9/modules/55/asm/module_55.s
+++ b/arm9/modules/55/asm/module_55.s
@@ -45,7 +45,7 @@ MOD55_021D7504: ; 0x021D7504
mov r1, #8
bl SetKeyRepeatTimers
mov r0, #0x34
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
bl MOD55_021D780C
ldr r0, [r4, #4]
@@ -368,7 +368,7 @@ MOD55_021D77D0: ; 0x021D77D0
bl FUN_020081C4
_021D77E6:
ldr r0, [r4, #4]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
bl FUN_0201C30C
bl FUN_02009F80
ldr r3, _021D7804 ; =0x027E0000
@@ -406,7 +406,7 @@ MOD55_021D781C: ; 0x021D781C
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D7978 ; =0x021DA34C
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -421,15 +421,15 @@ MOD55_021D781C: ; 0x021D781C
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D797C ; =0x021DA368
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -444,15 +444,15 @@ MOD55_021D781C: ; 0x021D781C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7980 ; =0x021DA384
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -467,15 +467,15 @@ MOD55_021D781C: ; 0x021D781C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7984 ; =0x021DA3A0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -490,15 +490,15 @@ MOD55_021D781C: ; 0x021D781C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7988 ; =0x021DA3BC
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -513,32 +513,32 @@ MOD55_021D781C: ; 0x021D781C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #3
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, _021D798C ; =0x04000050
mov r1, #0
strh r1, [r0]
@@ -691,22 +691,22 @@ MOD55_021D7AA4: ; 0x021D7AA4
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
@@ -1211,13 +1211,13 @@ MOD55_021D7EE4: ; 0x021D7EE4
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D7F02
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D7F02:
mov r0, #0
str r0, [sp]
@@ -1233,7 +1233,7 @@ _021D7F02:
ldr r0, [r5, #4]
add r1, r5, r1
mov r3, #1
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
@@ -1264,7 +1264,7 @@ _021D7F02:
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r6, #0
mov r0, #0xd2
lsl r0, r0, #2
@@ -1274,11 +1274,11 @@ _021D7F02:
add r7, r5, #0
_021D7F76:
add r0, r4, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D7F86
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_021D7F86:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
@@ -1302,7 +1302,7 @@ _021D7F86:
add r1, r4, #0
mov r2, #3
mov r3, #7
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -1347,7 +1347,7 @@ _021D8002:
mov r3, #0x90
bl MOD55_021D80F0
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [sp, #0x18]
add r6, r6, #1
add r0, #0x3c
@@ -1385,7 +1385,7 @@ MOD55_021D8044: ; 0x021D8044
ldr r0, [sp]
mov r1, #1
ldr r0, [r0, #4]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
mov r1, #0xf2
ldr r0, [sp]
@@ -1452,7 +1452,7 @@ _021D80C6:
ldr r0, [sp]
mov r1, #1
ldr r0, [r0, #4]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
nop
@@ -1512,11 +1512,11 @@ MOD55_021D8140: ; 0x021D8140
add r5, r6, r0
_021D814C:
add r0, r5, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D815C
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
_021D815C:
add r4, r4, #1
add r5, #0x10
@@ -1528,11 +1528,11 @@ _021D815C:
add r4, r6, r0
_021D816C:
add r0, r4, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D817C
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_021D817C:
add r5, r5, #1
add r4, #0x10
@@ -1541,35 +1541,35 @@ _021D817C:
mov r0, #0xce
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D819C
mov r0, #0xce
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D819C:
mov r0, #0xe6
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D81B4
mov r0, #0xe6
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D81B4:
mov r0, #0xe2
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D81CC
mov r0, #0xe2
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D81CC:
pop {r4, r5, r6, pc}
.align 2, 0
@@ -2207,7 +2207,7 @@ MOD55_021D868C: ; 0x021D868C
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0x3b
mov r1, #6
lsl r0, r0, #4
@@ -2245,7 +2245,7 @@ MOD55_021D86D4: ; 0x021D86D4
ldr r0, [sp]
mov r1, #1
ldr r0, [r0, #4]
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
str r0, [sp, #0x24]
mov r1, #0xf2
ldr r0, [sp]
@@ -2482,7 +2482,7 @@ _021D88AA:
ldr r0, [sp]
mov r1, #1
ldr r0, [r0, #4]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -2642,11 +2642,11 @@ _021D8A00:
cmp r7, #0
bne _021D8A0C
add r0, r5, #0
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
b _021D8A12
_021D8A0C:
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_021D8A12:
ldr r0, [sp, #0x14]
add r4, r4, #1
@@ -2713,7 +2713,7 @@ MOD55_021D8A7C: ; 0x021D8A7C
bl FUN_020286EC
ldr r0, [r5, #4]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
@@ -2748,13 +2748,13 @@ MOD55_021D8A7C: ; 0x021D8A7C
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D8AEE
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D8AEE:
mov r0, #0
str r0, [sp]
@@ -2770,7 +2770,7 @@ _021D8AEE:
ldr r0, [r5, #4]
add r1, r5, r1
mov r3, #1
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
@@ -2801,17 +2801,17 @@ _021D8AEE:
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0xde
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D8B6C
mov r0, #0xde
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D8B6C:
mov r0, #0x15
str r0, [sp]
@@ -2829,7 +2829,7 @@ _021D8B6C:
add r1, r5, r1
mov r2, #3
mov r3, #0xf
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xde
lsl r0, r0, #2
add r0, r5, r0
@@ -2859,7 +2859,7 @@ _021D8B6C:
mov r0, #0xde
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
bl MOD55_021D8A28
mov r0, #0xae
@@ -2878,11 +2878,11 @@ _021D8BEE:
str r0, [sp, #0x18]
_021D8BF2:
add r0, r4, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D8C02
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_021D8C02:
lsr r2, r6, #0x1f
lsl r1, r6, #0x1e
@@ -2914,12 +2914,12 @@ _021D8C02:
add r1, r4, #0
mov r2, #3
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
mov r1, #0
bl FillWindowPixelBuffer
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r6, r6, #1
add r4, #0x10
add r7, #0x18
@@ -3259,13 +3259,13 @@ _021D8F02:
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D8F1A
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D8F1A:
mov r1, #9
str r1, [sp]
@@ -3288,7 +3288,7 @@ _021D8F1A:
add r1, r5, r1
mov r2, #2
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe2
lsl r0, r0, #2
ldr r2, _021D8FDC ; =0x000001D9
@@ -3312,7 +3312,7 @@ _021D8F1A:
str r0, [r5, r1]
sub r1, #0x20
add r0, r5, r1
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x34
bl PlayerProfile_new
mov r1, #0xf2
@@ -3425,7 +3425,7 @@ _021D9068:
bne _021D9092
ldr r0, [r5, #4]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #6
str r0, [sp]
mov r0, #1
@@ -3452,7 +3452,7 @@ _021D9098:
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xea
lsl r0, r0, #2
mov r1, #0
@@ -3562,7 +3562,7 @@ MOD55_021D9184: ; 0x021D9184
add r4, r1, #0
ldr r0, [r5, #4]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -3577,13 +3577,13 @@ MOD55_021D9184: ; 0x021D9184
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D91D6
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D91D6:
mov r0, #0
str r0, [sp]
@@ -3600,7 +3600,7 @@ _021D91D6:
str r0, [sp, #0x10]
ldr r0, [r5, #4]
mov r3, #1
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
@@ -3645,17 +3645,17 @@ _021D91D6:
mov r0, #0xe6
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D9278
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D9278:
mov r1, #0xd
str r1, [sp]
@@ -3672,7 +3672,7 @@ _021D9278:
add r1, r5, r1
mov r2, #3
mov r3, #6
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
@@ -3724,7 +3724,7 @@ _021D92CE:
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r1, #0
mov r0, #0
eor r1, r4
@@ -3738,13 +3738,13 @@ _021D92CE:
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D9338
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D9338:
mov r0, #8
str r0, [sp]
@@ -3762,7 +3762,7 @@ _021D9338:
add r1, r5, r1
mov r2, #3
mov r3, #9
- bl FUN_02019064
+ bl AddWindowParameterized
add r2, r5, #0
add r2, #0xb8
ldr r0, [r5, #0x10]
@@ -3807,7 +3807,7 @@ _021D9338:
mov r0, #0xe2
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_021D93C2:
mov r0, #0x3b
mov r1, #0x13
@@ -3914,7 +3914,7 @@ MOD55_021D9474: ; 0x021D9474
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D9568 ; =0x021DA2F8
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -3929,15 +3929,15 @@ MOD55_021D9474: ; 0x021D9474
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D956C ; =0x021DA330
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -3952,15 +3952,15 @@ MOD55_021D9474: ; 0x021D9474
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D9570 ; =0x021DA314
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -3975,32 +3975,32 @@ MOD55_021D9474: ; 0x021D9474
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x34
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #1
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
add r1, r0, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #3
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
add sp, #0x64
pop {r4, r5, pc}
.align 2, 0
@@ -4096,7 +4096,7 @@ _021D9618:
ldr r0, [r4, #4]
bl MOD55_021D7AA4
mov r0, #0x34
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
bl MOD55_021D9474
bl MOD55_021D9574
@@ -4136,13 +4136,13 @@ _021D9618:
mov r0, #0xe6
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D969A
mov r0, #0xe6
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D969A:
mov r0, #0
str r0, [sp]
@@ -4159,7 +4159,7 @@ _021D969A:
str r0, [sp, #0x10]
ldr r0, [r4, #4]
mov r3, #1
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe6
lsl r0, r0, #2
add r0, r4, r0
@@ -4211,17 +4211,17 @@ _021D969A:
mov r0, #0xe6
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0xe2
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D974E
mov r0, #0xe2
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D974E:
mov r0, #0x12
str r0, [sp]
@@ -4238,7 +4238,7 @@ _021D974E:
str r0, [sp, #0x10]
ldr r0, [r4, #4]
mov r2, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe2
lsl r0, r0, #2
add r0, r4, r0
@@ -4276,7 +4276,7 @@ _021D974E:
mov r0, #0xe2
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x34
bl FUN_02006D98
add r1, r4, #0
@@ -4322,7 +4322,7 @@ _021D974E:
bne _021D9864
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldr r2, _021D9A5C ; =0x00000FFF
mov r7, #0x10
mov ip, r0
@@ -4348,18 +4348,18 @@ _021D9844:
blt _021D983C
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
_021D9864:
mov r0, #0xd2
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021D987C
mov r0, #0xd2
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_021D987C:
mov r0, #4
str r0, [sp]
@@ -4377,7 +4377,7 @@ _021D987C:
add r1, r4, r1
mov r2, #3
mov r3, #0xf
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xd2
lsl r0, r0, #2
add r0, r4, r0
@@ -4775,7 +4775,7 @@ _021D9C18:
mov r0, #0xd2
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [sp, #0x20]
bl FreeToHeap
mov r0, #0x3b
@@ -4895,7 +4895,7 @@ _021D9D16:
ldr r0, [r5, #4]
bl MOD55_021D7AA4
mov r0, #0x34
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r5, #4]
bl MOD55_021D781C
add r0, r5, #0
@@ -4951,7 +4951,7 @@ MOD55_021D9D88: ; 0x021D9D88
ldr r0, [r6, #4]
str r1, [sp, #0x10]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
@@ -5354,13 +5354,13 @@ MOD55_021DA0A4: ; 0x021DA0A4
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021DA0D0
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_021DA0D0:
mov r0, #0x13
str r0, [sp]
@@ -5378,7 +5378,7 @@ _021DA0D0:
ldr r0, [r5, #4]
add r1, r5, r1
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
add r2, r5, #0
add r2, #0xb8
ldr r0, [r5, #0x10]
@@ -5435,13 +5435,13 @@ MOD55_021DA15C: ; 0x021DA15C
lsl r0, r0, #2
add r0, r5, r0
add r4, r1, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _021DA17C
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_021DA17C:
mov r0, #0x13
str r0, [sp]
@@ -5459,7 +5459,7 @@ _021DA17C:
ldr r0, [r5, #4]
add r1, r5, r1
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
add r2, r5, #0
add r2, #0xb8
ldr r0, [r5, #0x10]
@@ -5505,7 +5505,7 @@ _021DA17C:
mov r0, #0xce
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
index ac016f49..c3892911 100644
--- a/arm9/modules/56/asm/module_56.s
+++ b/arm9/modules/56/asm/module_56.s
@@ -269,7 +269,7 @@ MOD56_02211FD4: ; 0x02211FD4
mov r1, #8
bl SetKeyRepeatTimers
mov r0, #0x36
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r1, r4, #0
add r1, #0xc0
str r0, [r1]
@@ -575,7 +575,7 @@ MOD56_0221228C: ; 0x0221228C
push {r3, lr}
add r0, #0xc0
ldr r0, [r0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
bl FUN_0201C30C
bl FUN_02009F80
ldr r3, _022122AC ; =0x027E0000
@@ -623,7 +623,7 @@ MOD56_022122D4: ; 0x022122D4
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _02212430 ; =0x02216368
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -638,15 +638,15 @@ MOD56_022122D4: ; 0x022122D4
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x36
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02212434 ; =0x02216384
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -661,15 +661,15 @@ MOD56_022122D4: ; 0x022122D4
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x36
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02212438 ; =0x022163A0
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -684,15 +684,15 @@ MOD56_022122D4: ; 0x022122D4
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #0x36
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0221243C ; =0x022163BC
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -707,15 +707,15 @@ MOD56_022122D4: ; 0x022122D4
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
mov r3, #0x36
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02212440 ; =0x022163D8
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -730,32 +730,32 @@ MOD56_022122D4: ; 0x022122D4
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x36
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x36
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #3
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, _02212444 ; =0x04000050
mov r1, #0
strh r1, [r0]
@@ -899,22 +899,22 @@ MOD56_02212540: ; 0x02212540
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
@@ -1306,7 +1306,7 @@ MOD56_022128A4: ; 0x022128A4
mov r0, #0xd7
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _022128CE
mov r0, #0xd7
@@ -1317,7 +1317,7 @@ MOD56_022128A4: ; 0x022128A4
mov r0, #0xd7
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_022128CE:
mov r0, #1
str r0, [sp]
@@ -1337,7 +1337,7 @@ _022128CE:
add r1, r4, r1
mov r2, #3
mov r3, #5
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xd7
lsl r0, r0, #2
add r0, r4, r0
@@ -1376,7 +1376,7 @@ _022128CE:
mov r0, #0xd7
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r3, r4, pc}
nop
@@ -1391,57 +1391,57 @@ MOD56_0221295C: ; 0x0221295C
mov r0, #0xd7
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02212978
mov r0, #0xd7
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_02212978:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02212990
mov r0, #0xcf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_02212990:
mov r0, #0xe7
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _022129A8
mov r0, #0xe7
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_022129A8:
mov r0, #0xd3
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _022129C0
mov r0, #0xd3
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_022129C0:
mov r0, #0xdf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _022129D8
mov r0, #0xdf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_022129D8:
add r0, r4, #0
add r0, #0xb4
@@ -1466,13 +1466,13 @@ _02212A00:
mov r0, #0xdb
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02212A18
mov r0, #0xdb
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_02212A18:
pop {r4, pc}
.align 2, 0
@@ -1544,16 +1544,16 @@ _02212A9A:
bne _02212AFA
mov r0, #0
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #3
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
add r0, r5, #0
mov r1, #0x11
bl MOD56_02215FF4
@@ -1709,16 +1709,16 @@ MOD56_02212BE8: ; 0x02212BE8
bl MOD56_02215FF4
mov r0, #0
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #3
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0x36
str r0, [sp]
add r0, r5, #0
@@ -1772,7 +1772,7 @@ _02212C74:
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
cmp r6, #0
bne _02212CB4
add r0, r5, #0
@@ -1832,7 +1832,7 @@ _02212CEC:
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
cmp r6, #0
bne _02212D44
ldr r0, [r5]
@@ -1900,7 +1900,7 @@ _02212D74:
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
cmp r6, #0
bne _02212DC6
mov r1, #0x3b
@@ -1947,16 +1947,16 @@ MOD56_02212DD8: ; 0x02212DD8
add r4, r1, #0
mov r0, #0
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #3
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #2
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0x3b
mov r1, #0xf
lsl r0, r0, #4
@@ -2272,7 +2272,7 @@ MOD56_02213048: ; 0x02213048
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _0221307C
mov r0, #0xdb
@@ -2283,7 +2283,7 @@ MOD56_02213048: ; 0x02213048
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_0221307C:
mov r0, #0x3b
mov r1, #8
@@ -2329,7 +2329,7 @@ MOD56_022130A4: ; 0x022130A4
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _022130D8
mov r0, #0xdb
@@ -2340,7 +2340,7 @@ MOD56_022130A4: ; 0x022130A4
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_022130D8:
add r0, r5, #0
mov r1, #0x33
@@ -2452,7 +2452,7 @@ MOD56_02213194: ; 0x02213194
add r0, #0xc0
ldr r0, [r0]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
@@ -2473,7 +2473,7 @@ MOD56_02213194: ; 0x02213194
mov r0, #0xdf
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r6, #0
add r0, #0xb4
mov r1, #0
@@ -2740,7 +2740,7 @@ _022133DA:
str r1, [r5, r0]
sub r0, #0x44
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02213412
mov r0, #0xdb
@@ -2751,7 +2751,7 @@ _022133DA:
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_02213412:
add r0, r4, #0
pop {r3, r4, r5, pc}
@@ -2774,7 +2774,7 @@ MOD56_0221341C: ; 0x0221341C
mov r0, #0xd3
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0221344C
add r0, r6, #0
@@ -3004,7 +3004,7 @@ _022135DC:
mov r0, #0xd3
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_02213614:
add sp, #0x10
pop {r4, r5, r6, pc}
@@ -3139,7 +3139,7 @@ _022136B8:
mov r0, #0xdf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_02213706:
ldr r0, [r4]
add r1, r5, #0
@@ -3174,7 +3174,7 @@ _02213722:
mov r0, #0xdf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_0221374C:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
@@ -3253,7 +3253,7 @@ MOD56_0221375C: ; 0x0221375C
strh r1, [r2, #6]
ldr r0, [r0]
mov r1, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r1, r0, #0
mov r2, #0
cmp r4, #0x11
@@ -3371,7 +3371,7 @@ MOD56_022138A4: ; 0x022138A4
add r7, r1, #0
ldr r0, [r0]
mov r1, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r6, #0
mov r4, #5
_022138BA:
@@ -3426,7 +3426,7 @@ _02213906:
add r5, #0xc0
ldr r0, [r5]
mov r1, #0
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD56_022138A4
@@ -3508,7 +3508,7 @@ MOD56_02213990: ; 0x02213990
mov r0, #0xdf
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _022139D0
mov r0, #0xdf
@@ -3519,7 +3519,7 @@ MOD56_02213990: ; 0x02213990
mov r0, #0xdf
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_022139D0:
mov r0, #5
str r0, [sp]
@@ -3539,7 +3539,7 @@ _022139D0:
add r1, r5, r1
mov r2, #3
mov r3, #6
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r6, _02213A3C ; =0x022163F4
add r3, sp, #0x14
add r2, r3, #0
@@ -3584,7 +3584,7 @@ MOD56_02213A40: ; 0x02213A40
mov r0, #0xd3
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02213A6A
mov r0, #0xd3
@@ -3595,7 +3595,7 @@ MOD56_02213A40: ; 0x02213A40
mov r0, #0xd3
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_02213A6A:
mov r0, #0x15
str r0, [sp]
@@ -3614,7 +3614,7 @@ _02213A6A:
add r1, r4, r1
mov r2, #3
mov r3, #7
- bl FUN_02019064
+ bl AddWindowParameterized
add sp, #0x14
pop {r3, r4, pc}
thumb_func_end MOD56_02213A40
@@ -3632,7 +3632,7 @@ MOD56_02213A94: ; 0x02213A94
add r0, #0xc0
ldr r0, [r0]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
@@ -3648,7 +3648,7 @@ MOD56_02213A94: ; 0x02213A94
mov r0, #0xd7
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02213AF0
mov r0, #0xd7
@@ -3659,7 +3659,7 @@ MOD56_02213A94: ; 0x02213A94
mov r0, #0xd7
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_02213AF0:
add r0, r5, #0
add r0, #0xb0
@@ -3669,7 +3669,7 @@ _02213AF0:
mov r0, #0xdf
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0
add r0, #0xb4
mov r1, #0
@@ -3707,7 +3707,7 @@ _02213B2C:
add r1, r5, r1
mov r2, #3
mov r3, #4
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xd7
lsl r0, r0, #2
add r0, r5, r0
@@ -3738,7 +3738,7 @@ _02213B2C:
mov r0, #0xd7
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
bl MOD56_02216120
add r0, r5, #0
@@ -4093,7 +4093,7 @@ _02213E5C:
mov r0, #0xdf
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0
add r0, #0xb4
mov r1, #0
@@ -5082,7 +5082,7 @@ _02214602:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02214642
mov r0, #0xe3
@@ -5093,7 +5093,7 @@ _02214602:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_02214642:
mov r0, #9
str r0, [sp]
@@ -5113,7 +5113,7 @@ _02214642:
add r1, r5, r1
mov r2, #2
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe3
lsl r0, r0, #2
ldr r2, _022146C8 ; =0x000001D9
@@ -5141,7 +5141,7 @@ _02214642:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
mov r1, #5
mov r2, #0
@@ -5249,7 +5249,7 @@ _0221476E:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0
add r0, #0xbc
mov r2, #0xf7
@@ -5290,7 +5290,7 @@ _022147CE:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0
add r0, #0xbc
mov r2, #0xf7
@@ -5363,7 +5363,7 @@ _02214868:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _0221488C
mov r0, #0xe3
@@ -5374,7 +5374,7 @@ _02214868:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_0221488C:
mov r1, #9
str r1, [sp]
@@ -5399,7 +5399,7 @@ _0221488C:
add r1, r5, r1
mov r2, #2
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe3
lsl r0, r0, #2
ldr r2, _0221491C ; =0x000001D9
@@ -5432,7 +5432,7 @@ _0221488C:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #1
add sp, #0x34
pop {r4, r5, r6, r7, pc}
@@ -5510,7 +5510,7 @@ _02214994:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r3, _022149D4 ; =0x000003DE
add r0, r5, #0
add r2, r5, r3
@@ -5697,7 +5697,7 @@ _02214ADC:
add r1, r5, r1
mov r2, #2
mov r3, #0x10
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe3
lsl r0, r0, #2
ldr r2, _02214BB8 ; =0x000001D9
@@ -5724,7 +5724,7 @@ _02214ADC:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r1, [sp, #0x18]
add r0, r5, #0
bl MOD56_022160E4
@@ -6068,7 +6068,7 @@ _02214DEC:
mov r0, #0xe3
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0xbc
mov r1, #0
@@ -6917,7 +6917,7 @@ MOD56_0221547C: ; 0x0221547C
add r4, r1, #0
ldr r0, [r0]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
@@ -6951,7 +6951,7 @@ MOD56_022154BC: ; 0x022154BC
add r7, r1, #0
ldr r0, [r0]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -6983,7 +6983,7 @@ MOD56_022154BC: ; 0x022154BC
mov r0, #0xe7
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02215532
mov r0, #0xe7
@@ -6994,7 +6994,7 @@ MOD56_022154BC: ; 0x022154BC
mov r0, #0xe7
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_02215532:
mov r0, #2
str r0, [sp]
@@ -7014,7 +7014,7 @@ _02215532:
ldr r0, [r0]
add r1, r5, r1
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xe7
lsl r0, r0, #2
add r0, r5, r0
@@ -7069,7 +7069,7 @@ _02215532:
mov r0, #0xe7
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
mov r1, #0x29
mov r2, #0
@@ -7473,7 +7473,7 @@ _0221594C:
mov r0, #0xe7
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x3b
mov r1, #0x36
lsl r0, r0, #4
@@ -7540,17 +7540,17 @@ MOD56_022159B0: ; 0x022159B0
mov r0, #0xe7
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0
add r0, #0xc0
ldr r0, [r0]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r5, #0
add r0, #0xc0
ldr r0, [r0]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r5, #0
bl MOD56_02216120
mov r3, #0
@@ -7595,7 +7595,7 @@ MOD56_022159B0: ; 0x022159B0
mov r0, #0xd7
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
bl MOD56_02212EFC
add r0, r5, #0
@@ -8169,7 +8169,7 @@ MOD56_02215EA4: ; 0x02215EA4
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02215EE0
mov r0, #0xdb
@@ -8180,12 +8180,12 @@ MOD56_02215EA4: ; 0x02215EA4
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_02215EE0:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02215F04
mov r0, #0xcf
@@ -8196,7 +8196,7 @@ _02215EE0:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_02215F04:
mov r0, #0x5e
lsl r0, r0, #2
@@ -8237,7 +8237,7 @@ _02215F30:
ldr r0, [r0]
add r1, r5, r1
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
cmp r6, #0
beq _02215F70
add r0, r5, #0
@@ -8302,7 +8302,7 @@ _02215F82:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -8320,7 +8320,7 @@ MOD56_02215FF4: ; 0x02215FF4
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02216024
mov r0, #0xdb
@@ -8331,12 +8331,12 @@ MOD56_02215FF4: ; 0x02215FF4
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_02216024:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02216048
mov r0, #0xcf
@@ -8347,7 +8347,7 @@ _02216024:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_02216048:
mov r3, #4
str r3, [sp]
@@ -8366,7 +8366,7 @@ _02216048:
ldr r0, [r0]
add r1, r5, r1
mov r2, #2
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r2, #0x56
add r0, #0xd0
@@ -8414,7 +8414,7 @@ _02216048:
mov r0, #0xdb
lsl r0, r0, #2
add r0, r5, r0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, pc}
nop
@@ -8480,7 +8480,7 @@ _02216154:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _02216178
mov r0, #0xcf
@@ -8491,7 +8491,7 @@ _02216154:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_02216178:
pop {r4, pc}
.align 2, 0
@@ -8663,7 +8663,7 @@ _022162B8:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _022162DC
mov r0, #0xcf
@@ -8674,7 +8674,7 @@ _022162B8:
mov r0, #0xcf
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
_022162DC:
pop {r4, pc}
.align 2, 0
diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s
index a9163534..09469284 100644
--- a/arm9/modules/57/asm/module_57.s
+++ b/arm9/modules/57/asm/module_57.s
@@ -48,7 +48,7 @@ MOD57_021D74E0: ; 0x021D74E0
add r1, #0xb4
str r0, [r1]
mov r0, #0x19
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4]
add r0, r4, #0
bl MOD57_021D79AC
@@ -124,7 +124,7 @@ _021D75E4:
blo _021D75CE
ldr r0, [r4]
mov r1, #3
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r1, r4, #0
add r1, #0xb4
ldr r1, [r1]
@@ -839,7 +839,7 @@ MOD57_021D7B94: ; 0x021D7B94
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D7C90 ; =0x021D9774
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -854,10 +854,10 @@ MOD57_021D7B94: ; 0x021D7B94
str r0, [r3]
add r0, r4, #0
mov r3, #2
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7C94 ; =0x021D9790
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -872,10 +872,10 @@ MOD57_021D7B94: ; 0x021D7B94
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7C98 ; =0x021D97C8
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -890,10 +890,10 @@ MOD57_021D7B94: ; 0x021D7B94
str r0, [r3]
add r0, r4, #0
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #6
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7C9C ; =0x021D97E4
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -908,10 +908,10 @@ MOD57_021D7B94: ; 0x021D7B94
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7CA0 ; =0x021D97AC
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -926,10 +926,10 @@ MOD57_021D7B94: ; 0x021D7B94
str r0, [r3]
add r0, r4, #0
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x9c
pop {r4, r5, pc}
.align 2, 0
@@ -1214,19 +1214,19 @@ MOD57_021D7EDC: ; 0x021D7EDC
bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
@@ -1336,7 +1336,7 @@ _021D7FB0:
bl MOD57_021D86E8
ldr r0, [r4]
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r1, r4, #0
add r1, #0xb4
ldr r1, [r1]
@@ -1366,7 +1366,7 @@ _021D8006:
bl MOD57_021D8FB8
ldr r0, [r4]
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
bl MOD57_021D8690
add r1, r4, #0
@@ -1845,7 +1845,7 @@ MOD57_021D83D8: ; 0x021D83D8
add r4, r1, #0
ldr r0, [r0]
mov r1, #2
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r7, r0, #0
lsl r0, r4, #2
add r0, #0x80
@@ -1878,7 +1878,7 @@ _021D8400:
ldr r0, [sp]
mov r1, #2
ldr r0, [r0]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD57_021D83D8
@@ -1909,7 +1909,7 @@ MOD57_021D8428: ; 0x021D8428
ldr r0, [r0]
add r1, r6, #0
lsr r4, r4, #0x18
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r2, #0
add r3, r0, r4
add r0, r2, #0
@@ -2212,10 +2212,10 @@ MOD57_021D8690: ; 0x021D8690
ldr r2, [r3, #0x14]
ldr r0, [r5]
ldr r3, [r3, #0x10]
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r0, [r5]
mov r1, #7
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
cmp r0, #0
beq _021D86CA
ldr r2, _021D86E0 ; =0x000032FC
@@ -2224,7 +2224,7 @@ MOD57_021D8690: ; 0x021D8690
mov r1, #7
add r2, #0xc
add r3, r4, #0
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
_021D86CA:
mov r0, #0
str r0, [sp]
@@ -2234,7 +2234,7 @@ _021D86CA:
mov r1, #7
add r2, #0xc
add r3, r4, #0
- bl FUN_02017CE8
+ bl BgCopyOrUncompressTilemapBufferRangeToVram
pop {r3, r4, r5, pc}
.align 2, 0
_021D86E0: .word 0x000032FC
@@ -2256,7 +2256,7 @@ MOD57_021D86E8: ; 0x021D86E8
mov r1, #7
mov r2, #0
mov r3, #0x14
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x10
pop {r3, pc}
.align 2, 0
@@ -2444,11 +2444,11 @@ MOD57_021D8830: ; 0x021D8830
str r0, [sp, #4]
lsr r1, r1, #0x18
lsl r3, r3, #0xc
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
lsl r1, r7, #0x18
ldr r0, [sp, #4]
lsr r1, r1, #0x18
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov r4, #0
add r1, r0, #0
add r3, r4, #0
@@ -2479,7 +2479,7 @@ _021D8864:
lsl r1, r7, #0x18
ldr r0, [sp, #4]
lsr r1, r1, #0x18
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -2572,7 +2572,7 @@ MOD57_021D890C: ; 0x021D890C
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
mov r1, #2
- bl FUN_0201AFBC
+ bl DoesPixelAtScreenXYMatchPtrVal
cmp r0, #0
bne _021D894A
mov r0, #0
@@ -2612,7 +2612,7 @@ MOD57_021D8954: ; 0x021D8954
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
mov r1, #2
- bl FUN_0201AFBC
+ bl DoesPixelAtScreenXYMatchPtrVal
cmp r0, #0
bne _021D8992
mov r0, #0
@@ -2641,7 +2641,7 @@ _021D89A6:
add r0, r5, #0
add r1, r6, r1
add r2, r7, r2
- bl FUN_02019150
+ bl AddWindow
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
@@ -2652,7 +2652,7 @@ _021D89A6:
mov r1, #7
mov r3, #1
str r2, [sp]
- bl FUN_02017F48
+ bl BG_FillCharDataRange
pop {r3, r4, r5, r6, r7, pc}
nop
_021D89D0: .word MOD57_021D98F4
@@ -2666,7 +2666,7 @@ MOD57_021D89D4: ; 0x021D89D4
_021D89DA:
lsl r0, r4, #4
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -3355,7 +3355,7 @@ MOD57_021D8FB8: ; 0x021D8FB8
_021D8FC4:
lsl r0, r4, #4
add r0, r5, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s
index 99967607..891c82da 100644
--- a/arm9/modules/58/asm/module_58.s
+++ b/arm9/modules/58/asm/module_58.s
@@ -53,7 +53,7 @@ _021D9A36:
add r4, r0, #0
bl memset
mov r0, #0x27
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4]
mov r0, #0x27
bl ScrStrBufs_new
@@ -289,7 +289,7 @@ MOD58_021D9CB4: ; 0x021D9CB4
bl FUN_0201C30C
bl FUN_02009F80
add r0, r4, #0
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D9CD4 ; =0x027E0000
ldr r1, _021D9CD8 ; =0x00003FF8
mov r0, #1
@@ -335,7 +335,7 @@ MOD58_021D9CFC: ; 0x021D9CFC
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D9DF0 ; =0x021DAE18
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -350,10 +350,10 @@ MOD58_021D9CFC: ; 0x021D9CFC
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D9DF4 ; =0x021DAE34
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -368,10 +368,10 @@ MOD58_021D9CFC: ; 0x021D9CFC
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D9DF8 ; =0x021DAE50
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -386,7 +386,7 @@ MOD58_021D9CFC: ; 0x021D9CFC
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D9DFC ; =0x021DADE0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -401,10 +401,10 @@ MOD58_021D9CFC: ; 0x021D9CFC
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D9E00 ; =0x021DADFC
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -419,17 +419,17 @@ MOD58_021D9CFC: ; 0x021D9CFC
add r0, r4, #0
mov r1, #5
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x27
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x27
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x9c
pop {r4, r5, pc}
nop
@@ -544,22 +544,22 @@ MOD58_021D9ED8: ; 0x021D9ED8
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
@@ -604,7 +604,7 @@ MOD58_021D9F14: ; 0x021D9F14
mov r1, #0x20
mov r2, #0
mov r3, #0x27
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0
str r0, [sp]
mov r0, #2
@@ -1072,7 +1072,7 @@ MOD58_021DA30C: ; 0x021DA30C
add r1, r5, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xb5
lsl r0, r0, #2
add r0, r5, r0
@@ -1092,7 +1092,7 @@ MOD58_021DA30C: ; 0x021DA30C
ldr r0, [r5]
add r1, r5, r1
mov r3, #4
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xb1
lsl r0, r0, #2
add r0, r5, r0
@@ -1113,7 +1113,7 @@ MOD58_021DA30C: ; 0x021DA30C
add r1, r5, r1
mov r2, #1
mov r3, #0x1a
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xb9
lsl r0, r0, #2
add r0, r5, r0
@@ -1179,7 +1179,7 @@ _021DA3C2:
ldr r0, [r5]
add r1, r5, r1
mov r2, #1
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r1, [r5, #0x30]
mov r0, #1
mov r2, #0
@@ -1231,7 +1231,7 @@ _021DA46A:
add r1, r4, #0
mov r2, #4
mov r3, #5
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -1269,7 +1269,7 @@ MOD58_021DA4CC: ; 0x021DA4CC
add r5, r6, r0
_021DA4D8:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #5
@@ -1277,19 +1277,19 @@ _021DA4D8:
mov r0, #0xbd
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xb9
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xb1
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xb5
lsl r0, r0, #2
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, r5, r6, pc}
thumb_func_end MOD58_021DA4CC
diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s
index 7d1c22b6..4de36b62 100644
--- a/arm9/modules/59/asm/mod59_021D74E0_asm.s
+++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s
@@ -21,7 +21,7 @@ _021D7798:
add r0, sp, #0x50
bl GX_SetBanks
ldr r0, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0x40
ldr r5, _021D7958 ; =0x021D9DCC
str r0, [r4, #0x18]
@@ -31,7 +31,7 @@ _021D7798:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D795C ; =0x021D9EA0
add r3, sp, #0x24
ldmia r5!, {r0, r1}
@@ -50,10 +50,10 @@ _021D7798:
strb r0, [r2, #0x13]
ldr r0, [r4, #0x18]
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0xe
add r2, sp, #0x24
strb r0, [r2, #0x12]
@@ -62,10 +62,10 @@ _021D7798:
ldr r0, [r4, #0x18]
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0xd
add r2, sp, #0x24
strb r0, [r2, #0x12]
@@ -74,10 +74,10 @@ _021D7798:
ldr r0, [r4, #0x18]
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0xc
add r2, sp, #0x24
strb r0, [r2, #0x12]
@@ -85,10 +85,10 @@ _021D7798:
strb r1, [r2, #0x13]
ldr r0, [r4, #0x18]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0
str r1, [sp]
ldr r0, [r4]
@@ -132,10 +132,10 @@ _021D7798:
ldr r0, [r4, #0x18]
mov r1, #4
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0xe
add r0, sp, #8
strb r1, [r0, #0x12]
@@ -144,10 +144,10 @@ _021D7798:
ldr r0, [r4, #0x18]
add r2, sp, #8
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0xd
add r0, sp, #8
strb r1, [r0, #0x12]
@@ -157,10 +157,10 @@ _021D7798:
mov r1, #6
add r2, sp, #8
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #6
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #0xc
add r0, sp, #8
strb r1, [r0, #0x12]
@@ -170,34 +170,34 @@ _021D7798:
mov r1, #7
add r2, sp, #8
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #4
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r4, #0
bl MOD59_021D8058
mov r0, #0
@@ -219,52 +219,52 @@ MOD59_021D796C: ; 0x021D796C
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #4
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x18]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
bl FreeToHeap
pop {r4, pc}
@@ -431,7 +431,7 @@ _021D7B0E:
lsl r0, r4, #0x18
lsr r0, r0, #0x18
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
b _021D7BDE
_021D7B1A:
mov r0, #0x10
@@ -524,7 +524,7 @@ _021D7BC0:
lsl r0, r4, #0x18
lsr r0, r0, #0x18
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
b _021D7BDE
_021D7BD0:
ldr r0, _021D7BE4 ; =0x04000050
@@ -584,11 +584,11 @@ MOD59_021D7C10: ; 0x021D7C10
ldr r0, [r5, #0x18]
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
lsl r1, r4, #0x18
ldr r0, [r5, #0x18]
lsr r1, r1, #0x18
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
@@ -614,7 +614,7 @@ _021D7C5E:
ldr r0, [r5, #0x18]
ldr r2, _021D7D5C ; =0x021D9DB8
add r1, #0x1c
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd8
str r0, [sp]
mov r0, #0x20
@@ -715,7 +715,7 @@ _021D7D36:
_021D7D46:
add r0, r5, #0
add r0, #0x1c
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0
str r0, [r5, #0x50]
mov r4, #1
@@ -789,7 +789,7 @@ _021D7DC4:
add r1, r5, #0
ldr r0, [r5, #0x18]
add r1, #0x30
- bl FUN_02019150
+ bl AddWindow
ldr r1, [r5]
add r0, r6, #0
bl ListMenuItems_ctor
@@ -870,7 +870,7 @@ _021D7E66:
bl FUN_0200CCF8
add r0, r5, #0
add r0, #0x30
- bl FUN_02019178
+ bl RemoveWindow
mov r1, #0
ldr r0, [r5, #0x40]
add r2, r1, #0
@@ -932,7 +932,7 @@ _021D7EEE: ; jump table
_021D7EFA:
add r0, r5, #0
add r1, r5, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
ldr r1, [r4]
lsl r0, r0, #0xa
@@ -966,7 +966,7 @@ _021D7EFA:
ldr r0, [r4, #0x18]
add r1, #0x1c
add r2, sp, #0x14
- bl FUN_02019150
+ bl AddWindow
add r1, r5, #0
mov r0, #0xc0
str r0, [sp]
@@ -1005,7 +1005,7 @@ _021D7F7C:
add r1, r4, #0
ldr r0, [r4, #0x18]
add r1, #0x1c
- bl FUN_02019150
+ bl AddWindow
add r1, r5, #0
mov r0, #0xc0
str r0, [sp]
@@ -1075,10 +1075,10 @@ _021D8016:
b _021D803C
_021D8028:
add r0, #0x1c
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r5, #0
str r0, [r4, #0x54]
mov r5, #1
@@ -1113,7 +1113,7 @@ MOD59_021D8058: ; 0x021D8058
ldr r3, [r5]
mov r1, #0x20
add r2, r0, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -1161,10 +1161,10 @@ _021D80AA:
bl MOD59_021D8234
mov r0, #0
add r1, r0, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x10
pop {r3, r4, r5, pc}
nop
@@ -1437,7 +1437,7 @@ _021D82C8:
ldr r0, [r5, #0x18]
mov r1, #2
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0xb
str r3, [sp]
mov r0, #0xa
@@ -1446,7 +1446,7 @@ _021D82C8:
ldr r0, [r5, #0x18]
mov r1, #2
add r2, r7, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
mov r1, #2
mov r2, #9
@@ -1455,7 +1455,7 @@ _021D82C8:
mov r0, #2
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #1
str r0, [sp]
mov r3, #0x32
@@ -1463,19 +1463,19 @@ _021D82C8:
mov r1, #2
add r2, r4, #0
lsl r3, r3, #6
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
mov r3, #0x20
add r2, r3, #0
mov r0, #2
add r1, r6, #0
add r3, #0xe0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r3, #0x12
ldr r1, _021D83F4 ; =0x021D9ED8
mov r0, #2
mov r2, #0x20
lsl r3, r3, #4
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -1487,7 +1487,7 @@ _021D82C8:
ldr r0, [r5, #0x18]
mov r1, #5
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #7
str r0, [sp]
mov r0, #0xa
@@ -1497,7 +1497,7 @@ _021D82C8:
mov r1, #5
add r2, r7, #0
mov r3, #0xb
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r5, #0
mov r1, #5
mov r2, #0xa
@@ -1506,7 +1506,7 @@ _021D82C8:
mov r0, #5
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #1
str r0, [sp]
mov r3, #0x32
@@ -1514,17 +1514,17 @@ _021D82C8:
mov r1, #5
add r2, r4, #0
lsl r3, r3, #6
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
mov r0, #5
add r1, r6, #0
mov r2, #0x20
lsl r3, r0, #6
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r0, #5
ldr r1, _021D83F4 ; =0x021D9ED8
mov r2, #0x20
lsl r3, r0, #6
- bl FUN_02017FB4
+ bl BG_LoadPlttData
add r0, r6, #0
bl FreeToHeap
add r0, r4, #0
@@ -1572,7 +1572,7 @@ MOD59_021D83F8: ; 0x021D83F8
mov r0, #6
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x20
str r0, [sp]
mov r0, #0
@@ -1599,7 +1599,7 @@ MOD59_021D8460: ; 0x021D8460
cmp r2, #0
bne _021D849C
ldr r0, [r5, #0x18]
- bl FUN_02017B48
+ bl Bg_GetXpos
cmp r0, #0
beq _021D8498
cmp r0, #0
@@ -1609,14 +1609,14 @@ MOD59_021D8460: ; 0x021D8460
lsr r1, r1, #0x18
mov r2, #2
mov r3, #4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
b _021D84E2
_021D848A:
lsl r1, r4, #0x18
lsr r1, r1, #0x18
mov r2, #1
mov r3, #4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
b _021D84E2
_021D8498:
mov r6, #1
@@ -1625,7 +1625,7 @@ _021D849C:
cmp r2, #1
bne _021D84C2
ldr r0, [r5, #0x18]
- bl FUN_02017B48
+ bl Bg_GetXpos
add r1, r6, #0
sub r1, #0x30
cmp r0, r1
@@ -1635,7 +1635,7 @@ _021D849C:
lsr r1, r1, #0x18
mov r2, #2
mov r3, #4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
b _021D84E2
_021D84BE:
mov r6, #1
@@ -1644,7 +1644,7 @@ _021D84C2:
cmp r2, #2
bne _021D84E2
ldr r0, [r5, #0x18]
- bl FUN_02017B48
+ bl Bg_GetXpos
cmp r0, #0
beq _021D84E0
lsl r1, r4, #0x18
@@ -1652,7 +1652,7 @@ _021D84C2:
lsr r1, r1, #0x18
mov r2, #1
mov r3, #4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
b _021D84E2
_021D84E0:
mov r6, #1
@@ -1947,19 +1947,19 @@ _021D86E4:
mov r1, #2
add r2, r7, #0
add r3, r7, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #0x18]
mov r1, #2
sub r3, #0x6b
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #2
add r1, r7, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #5
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r4, #0
add r2, r7, #0
add r0, #0xa8
@@ -1976,10 +1976,10 @@ _021D86E4:
_021D8728:
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_02017B48
+ bl Bg_GetXpos
ldr r0, [r4, #0x18]
mov r1, #5
- bl FUN_02017B54
+ bl Bg_GetYpos
add r1, r4, #0
add r1, #0xb0
ldr r3, [r1]
@@ -2010,22 +2010,22 @@ _021D8728:
mov r1, #2
ldr r0, [r4, #0x18]
add r3, r1, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x18]
mov r1, #5
mov r2, #1
mov r3, #2
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x18]
mov r1, #5
mov r2, #3
add r3, r5, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
b _021D890A
_021D8792:
mov r0, #5
add r1, r7, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x1e
add r4, #0xb0
str r0, [r4]
@@ -2048,7 +2048,7 @@ _021D87A6:
_021D87BE:
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r4, #0
add r2, r7, #0
add r0, #0xa8
@@ -2065,10 +2065,10 @@ _021D87BE:
_021D87E0:
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_02017B48
+ bl Bg_GetXpos
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_02017B54
+ bl Bg_GetYpos
add r0, r4, #0
add r0, #0xb0
ldr r1, [r0]
@@ -2097,7 +2097,7 @@ _021D87E0:
mov r1, #2
mov r2, #3
add r3, r7, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
add r2, r7, #0
add r0, #0xa8
@@ -2126,7 +2126,7 @@ _021D8846:
ldr r0, [r4, #0x18]
mov r1, #2
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
asr r5, r5, #1
cmp r5, #0x90
ble _021D886E
@@ -2136,15 +2136,15 @@ _021D886E:
mov r1, #2
mov r2, #3
add r3, r5, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
b _021D890A
_021D887C:
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_02017B48
+ bl Bg_GetXpos
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_02017B54
+ bl Bg_GetYpos
add r0, r4, #0
add r0, #0xb0
ldr r1, [r0]
@@ -2172,7 +2172,7 @@ _021D887C:
mov r1, #2
mov r2, #3
add r3, r7, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #5
str r0, [r6]
b _021D890A
@@ -2188,12 +2188,12 @@ _021D88CC:
mov r1, #2
ldr r0, [r4, #0x18]
add r3, r1, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x18]
mov r1, #2
mov r2, #3
add r3, r5, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r4, #0xa8
str r5, [r4]
b _021D890A
@@ -2219,7 +2219,7 @@ MOD59_021D8914: ; 0x021D8914
mov r1, #1
bx r3
.align 2, 0
-_021D891C: .word FUN_020178BC
+_021D891C: .word SetBgPriority
thumb_func_end MOD59_021D8914
thumb_func_start MOD59_021D8920
@@ -2360,10 +2360,10 @@ _021D8A1A:
bl FUN_02005350
add r0, r5, #0
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #1
str r0, [sp]
@@ -2399,7 +2399,7 @@ _021D8A76:
str r0, [r4, #0xc]
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
bl _021D985C
_021D8A92:
ldr r0, _021D8D70 ; =0x00000405
@@ -2416,10 +2416,10 @@ _021D8A92:
bl MOD59_021D8140
mov r0, #3
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x10
str r0, [sp]
mov r0, #4
@@ -2489,7 +2489,7 @@ _021D8B44:
str r0, [r4, #0xc]
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
bl _021D985C
_021D8B58:
mov r0, #0x29
@@ -2516,10 +2516,10 @@ _021D8B80:
bne _021D8C84
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #1
add r1, r5, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x10]
str r0, [r4, #0xc]
bl _021D985C
@@ -2634,12 +2634,12 @@ _021D8C88:
str r0, [r4, #0xc]
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
bl _021D985C
_021D8C98:
add r0, r5, #0
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x14
str r0, [r4, #0xc]
bl _021D985C
@@ -2669,7 +2669,7 @@ _021D8CBC:
bl FUN_020145C8
mov r0, #6
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r4, #0
mov r1, #3
add r0, #0x8b
@@ -2744,7 +2744,7 @@ _021D8D7C:
bne _021D8DA0
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x1c
str r0, [r4, #0xc]
bl _021D985C
@@ -2759,7 +2759,7 @@ _021D8DA0:
_021D8DA4:
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4, #0x68]
bl FUN_020146C4
add r0, r4, #0
@@ -2799,12 +2799,12 @@ _021D8DEA:
bl MOD59_021D8234
mov r0, #1
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r2, r5, #0
ldr r0, [r4, #0x18]
mov r1, #1
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #6
mov r1, #1
str r0, [sp]
@@ -2961,10 +2961,10 @@ _021D8F5E:
bne _021D8FCE
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r5, #0
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x1c
str r0, [r4, #0xc]
bl _021D985C
@@ -3018,7 +3018,7 @@ _021D8FD2:
bl MOD59_021D8234
mov r0, #6
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #1
str r0, [sp]
@@ -3060,7 +3060,7 @@ _021D9030:
add r0, #0x98
str r1, [r0]
ldr r0, [r4, #0x18]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x30
str r0, [r4, #0xc]
bl _021D985C
@@ -3223,7 +3223,7 @@ _021D9192:
bl MOD59_021D82A0
mov r0, #6
add r1, r5, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r4, #0
add r1, r5, #0
add r0, #0x94
@@ -3298,7 +3298,7 @@ _021D922A:
bne _021D92FA
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x3b
str r0, [r4, #0xc]
b _021D985C
@@ -3356,12 +3356,12 @@ _021D9290:
ldr r0, [r4, #0x18]
mov r1, #1
sub r3, #0x30
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x18]
mov r1, #2
add r2, r5, #0
mov r3, #0x30
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0x40
str r0, [r4, #0xc]
b _021D985C
@@ -3542,7 +3542,7 @@ _021D9416:
_021D941C:
ldr r0, [r4, #0x18]
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x4a
str r0, [r4, #0xc]
b _021D985C
@@ -3589,13 +3589,13 @@ _021D945C:
_021D9476:
add r0, r5, #0
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
add r0, r4, #0
add r0, #0x84
ldr r0, [r0]
@@ -3603,22 +3603,22 @@ _021D9476:
bne _021D94AE
mov r0, #1
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r2, r5, #0
ldr r0, [r4, #0x18]
mov r1, #1
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
b _021D94C2
_021D94AE:
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
add r2, r5, #0
ldr r0, [r4, #0x18]
mov r1, #2
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_021D94C2:
mov r0, #6
mov r1, #1
@@ -3666,7 +3666,7 @@ _021D950C:
bne _021D9530
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r1, [r4, #0x48]
sub r0, r5, #2
cmp r1, r0
@@ -3865,21 +3865,21 @@ _021D9684:
_021D9696:
add r0, r5, #0
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add r2, r5, #0
ldr r0, [r4, #0x18]
mov r1, #1
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #6
mov r1, #1
str r0, [sp]
@@ -3928,7 +3928,7 @@ _021D971A:
_021D971C:
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x61
str r0, [r4, #0xc]
b _021D985C
@@ -4004,7 +4004,7 @@ _021D97B2:
bne _021D985C
ldr r0, [r4, #0x18]
add r1, r5, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x67
str r0, [r4, #0xc]
b _021D985C
diff --git a/arm9/modules/59/asm/mod59_021D9868.s b/arm9/modules/59/asm/mod59_021D9868.s
index e4325d83..147b3a99 100644
--- a/arm9/modules/59/asm/mod59_021D9868.s
+++ b/arm9/modules/59/asm/mod59_021D9868.s
@@ -212,7 +212,7 @@ MOD59_021D9A14: ; 0x021D9A14
ldr r0, [r0, #4]
bx r3
nop
-_021D9A1C: .word FUN_0201AB60
+_021D9A1C: .word DoScheduledBgGpuUpdates
thumb_func_end MOD59_021D9A14
thumb_func_start MOD59_021D9A20
@@ -231,7 +231,7 @@ _021D9A2C:
add r0, sp, #0x90
bl GX_SetBanks
ldr r0, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0x80
ldr r5, _021D9BB8 ; =0x021DA054
str r0, [r4, #4]
@@ -241,7 +241,7 @@ _021D9A2C:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D9BBC ; =0x021DA080
add r3, sp, #0x64
ldmia r5!, {r0, r1}
@@ -256,15 +256,15 @@ _021D9A2C:
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r3, [r4]
mov r0, #2
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D9BC0 ; =0x021DA09C
add r3, sp, #0x48
ldmia r5!, {r0, r1}
@@ -279,7 +279,7 @@ _021D9A2C:
str r0, [r3]
ldr r0, [r4, #4]
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r3, #0
str r3, [sp]
str r3, [sp, #4]
@@ -314,7 +314,7 @@ _021D9A2C:
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -351,7 +351,7 @@ _021D9A2C:
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
@@ -387,10 +387,10 @@ _021D9A2C:
bl FUN_02002ED0
mov r0, #0
add r1, r0, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r2, #0xc
ldr r0, _021D9BCC ; =0x04000050
mov r1, #2
@@ -415,43 +415,43 @@ MOD59_021D9BD0: ; 0x021D9BD0
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #4
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, _021D9C44 ; =0x04000050
mov r1, #0
strh r1, [r0]
ldr r0, [r4, #4]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
bl FreeToHeap
pop {r4, pc}
@@ -511,7 +511,7 @@ _021D9C92: ; jump table
_021D9C9A:
mov r0, #2
add r1, r5, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
ldr r1, [r4]
lsl r0, r0, #0xa
@@ -525,7 +525,7 @@ _021D9C9A:
ldr r0, [r4, #4]
ldr r2, _021D9D6C ; =0x021DA04C
add r1, #0x10
- bl FUN_02019150
+ bl AddWindow
add r1, r5, #0
mov r0, #1
lsl r0, r0, #8
@@ -562,7 +562,7 @@ _021D9C9A:
bl CopyWindowToVram
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0xf0
str r0, [r4, #0x24]
mov r0, #1
@@ -597,10 +597,10 @@ _021D9D4A:
_021D9D50:
add r0, r4, #0
add r0, #0x10
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r5, #0
str r0, [r4, #0xc]
mov r5, #1
@@ -624,7 +624,7 @@ MOD59_021D9D78: ; 0x021D9D78
ldr r0, [r0, #4]
mov r1, #1
asr r3, r3, #4
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r3, pc}
.align 2, 0
thumb_func_end MOD59_021D9D78
diff --git a/arm9/modules/59/include/mod59_021D74E0.h b/arm9/modules/59/include/mod59_021D74E0.h
index 2dd05826..d6f52bba 100644
--- a/arm9/modules/59/include/mod59_021D74E0.h
+++ b/arm9/modules/59/include/mod59_021D74E0.h
@@ -23,7 +23,7 @@ typedef struct MOD59_OverlayData
u32 Unk0C;
u32 Unk10;
struct UnkStruct_02006234 *Unk14;
- struct UnkStruct_02016B94_2 *Unk18;
+ struct BgConfig *Unk18;
u8 padding[0x54];
struct MOD59_UnkPlayerStruct *playerStruct;
struct MOD59_UnkPlayerStruct *rivalStruct;
diff --git a/arm9/modules/59/src/mod59_021D74E0_src.c b/arm9/modules/59/src/mod59_021D74E0_src.c
index 9be9eff3..e104cf4f 100644
--- a/arm9/modules/59/src/mod59_021D74E0_src.c
+++ b/arm9/modules/59/src/mod59_021D74E0_src.c
@@ -6,7 +6,7 @@
#include "game_init.h"
#include "GX_layers.h"
#include "unk_02024E64.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
#include "module_52.h"
extern void *FUN_02077A84(u32 heap_id, u32 param1, u32 param2, u32 param3, struct Options *options);
@@ -177,7 +177,7 @@ THUMB_FUNC BOOL MOD59_021D76C0(struct UnkStruct_02006234 *param0)
THUMB_FUNC void MOD59_021D7724(MOD59_OverlayData *data)
{
- FUN_0201AB60(data->Unk18);
+ DoScheduledBgGpuUpdates(data->Unk18);
}
THUMB_FUNC BOOL MOD59_021D7730(void)
diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s
index a30f563f..52185a9c 100644
--- a/arm9/modules/60/asm/module_60.s
+++ b/arm9/modules/60/asm/module_60.s
@@ -405,7 +405,7 @@ _021D7804:
bl FUN_0200BC30
bl NNS_GfdDoVramTransfer
ldr r0, [r4, #0x14]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D782C ; =0x027E0000
ldr r1, _021D7830 ; =0x00003FF8
mov r0, #1
@@ -587,7 +587,7 @@ MOD60_021D7990: ; 0x021D7990
sub sp, #0x80
add r6, r0, #0
ldr r0, [r6]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0
ldr r4, _021D7A08 ; =0x021D8114
str r0, [r6, #0x14]
@@ -597,7 +597,7 @@ MOD60_021D7990: ; 0x021D7990
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r4, _021D7A0C ; =0x021D8168
add r3, sp, #0x10
mov r2, #0xe
@@ -616,12 +616,12 @@ _021D79C6:
lsr r1, r1, #0x18
add r2, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r1, [r5]
ldr r0, [r6, #0x14]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r7, r7, #1
add r4, #0x1c
add r5, r5, #4
@@ -631,12 +631,12 @@ _021D79C6:
ldr r3, [r6]
mov r1, #0x20
add r2, r0, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [r6]
mov r0, #4
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x80
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -651,16 +651,16 @@ MOD60_021D7A14: ; 0x021D7A14
add r4, r0, #0
ldr r0, [r4, #0x14]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x14]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x14]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x14]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x14]
bl FreeToHeap
pop {r4, pc}
@@ -695,7 +695,7 @@ MOD60_021D7A40: ; 0x021D7A40
ldr r2, [r3, #0x14]
ldr r0, [r5, #0x14]
ldr r3, [r3, #0x10]
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r3, [sp, #0x20]
mov r0, #0
str r0, [sp]
@@ -703,7 +703,7 @@ MOD60_021D7A40: ; 0x021D7A40
ldr r0, [r5, #0x14]
ldr r3, [r3, #0x10]
mov r1, #4
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
add r0, r6, #0
bl FreeToHeap
mov r0, #0x49
@@ -725,13 +725,13 @@ MOD60_021D7A40: ; 0x021D7A40
ldr r1, [r1, #0xc]
mov r2, #0x20
add r3, r0, #0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
ldr r1, [sp, #0x1c]
mov r0, #4
ldr r1, [r1, #0xc]
mov r2, #0x20
mov r3, #0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
add r0, r6, #0
bl FreeToHeap
mov r0, #0x49
@@ -761,7 +761,7 @@ MOD60_021D7A40: ; 0x021D7A40
ldr r0, [r5, #0x14]
mov r1, #2
mov r2, #1
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0
str r3, [sp]
mov r0, #0x20
@@ -772,7 +772,7 @@ MOD60_021D7A40: ; 0x021D7A40
ldr r0, [r5, #0x14]
mov r1, #4
mov r2, #1
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r5, #0x28]
mov r1, #0x20
str r1, [sp]
@@ -795,22 +795,22 @@ MOD60_021D7A40: ; 0x021D7A40
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r5, #0x14]
- bl FUN_020181EC
+ bl CopyRectToBgTilemapRect
mov r2, #3
add r3, r2, #0
ldr r0, [r5, #0x14]
mov r1, #0
sub r3, #0x1b
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r5, #0x14]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x14]
mov r1, #0
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x14]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x24
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD60_021D7A40
@@ -844,7 +844,7 @@ MOD60_021D7BA4: ; 0x021D7BA4
ldr r0, [r4, #0x14]
add r1, #0x2c
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #3
str r0, [sp]
mov r0, #0x1e
@@ -860,7 +860,7 @@ MOD60_021D7BA4: ; 0x021D7BA4
ldr r0, [r4, #0x14]
add r1, #0x3c
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x13
str r0, [sp]
mov r0, #0x1b
@@ -876,7 +876,7 @@ MOD60_021D7BA4: ; 0x021D7BA4
add r1, #0x4c
mov r2, #1
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
ldr r0, [r4]
@@ -933,13 +933,13 @@ MOD60_021D7BA4: ; 0x021D7BA4
bl FillWindowPixelBuffer
add r0, r4, #0
add r0, #0x4c
- bl FUN_020192B8
+ bl ClearWindowTilemap
add r0, r4, #0
add r0, #0x3c
- bl FUN_020192B8
+ bl ClearWindowTilemap
add r0, r4, #0
add r0, #0x2c
- bl FUN_020192B8
+ bl ClearWindowTilemap
add r0, r4, #0
ldr r2, _021D7CCC ; =0x00000232
add r0, #0x3c
@@ -977,14 +977,14 @@ MOD60_021D7CD4: ; 0x021D7CD4
_021D7CF0:
lsl r4, r6, #4
add r0, r5, r4
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, r4
add r1, r7, #0
bl FillWindowPixelBuffer
add r0, r5, r4
- bl FUN_020192B8
+ bl ClearWindowTilemap
add r0, r5, r4
- bl FUN_02019178
+ bl RemoveWindow
add r0, r6, #1
lsl r0, r0, #0x10
lsr r6, r0, #0x10
@@ -1451,7 +1451,7 @@ _021D8080:
mov r1, #0
mov r2, #3
neg r3, r3
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r3, r4, r5, pc}
_021D80BE:
mov r0, #0x80
@@ -1479,7 +1479,7 @@ _021D80BE:
mov r1, #0
mov r2, #3
neg r3, r3
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
_021D80F6:
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s
index d13a3071..5014385c 100644
--- a/arm9/modules/61/asm/module_61.s
+++ b/arm9/modules/61/asm/module_61.s
@@ -344,7 +344,7 @@ _021D775E:
bl FUN_0200D0E0
add r0, r5, #0
add r0, #0x94
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0
strh r0, [r5, #8]
ldrb r1, [r5, #0xd]
@@ -499,7 +499,7 @@ _021D788A:
bl FUN_0200D0E0
add r0, r5, #0
add r0, #0x94
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0
strh r0, [r5, #8]
cmp r4, #0
@@ -739,7 +739,7 @@ _021D7A7A:
_021D7A88:
bl NNS_GfdDoVramTransfer
ldr r0, [r4, #0x18]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D7AA0 ; =0x027E0000
ldr r1, _021D7AA4 ; =0x00003FF8
mov r0, #1
@@ -921,7 +921,7 @@ MOD61_021D7BD0: ; 0x021D7BD0
add r4, r0, #0
bl MOD61_021D7BB0
ldr r0, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0
ldr r5, _021D7CAC ; =0x021D8434
str r0, [r4, #0x18]
@@ -931,7 +931,7 @@ MOD61_021D7BD0: ; 0x021D7BD0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D7CB0 ; =0x021D84C8
add r3, sp, #0x10
mov r2, #0x11
@@ -946,67 +946,67 @@ _021D7BFC:
ldr r0, [r4, #0x18]
add r2, sp, #0x10
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #1
add r2, sp, #0x2c
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #2
add r2, sp, #0x48
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #3
add r2, sp, #0x64
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #4
add r2, sp, #0x80
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x18]
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4, #0x18]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4, #0x18]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4, #0x18]
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
ldr r3, [r4]
mov r1, #0x20
add r2, r0, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [r4]
mov r0, #1
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [r4]
mov r0, #2
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [r4]
mov r0, #3
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [r4]
mov r0, #4
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x9c
pop {r4, r5, pc}
.align 2, 0
@@ -1020,19 +1020,19 @@ MOD61_021D7CB4: ; 0x021D7CB4
add r4, r0, #0
ldr r0, [r4, #0x18]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x18]
bl FreeToHeap
pop {r4, pc}
@@ -1095,7 +1095,7 @@ MOD61_021D7CE8: ; 0x021D7CE8
ldr r0, [r5, #0x18]
ldr r3, [r3, #0x10]
mov r1, #1
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r3, [sp, #0x28]
mov r0, #0
str r0, [sp]
@@ -1103,7 +1103,7 @@ MOD61_021D7CE8: ; 0x021D7CE8
ldr r0, [r5, #0x18]
ldr r3, [r3, #0x10]
mov r1, #4
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
add r0, r7, #0
bl FreeToHeap
ldr r1, [sp, #0x1c]
@@ -1127,7 +1127,7 @@ MOD61_021D7CE8: ; 0x021D7CE8
mov r3, #0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
ldr r0, [r5]
bl FUN_02002FD0
str r0, [r5, #0x30]
@@ -1281,7 +1281,7 @@ _021D7E00:
ldr r0, [r5, #0x18]
ldr r2, _021D7FAC ; =0x00002001
mov r1, #4
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r2, #0
ldr r0, [r5, #0x3c]
mov r1, #0x20
@@ -1304,13 +1304,13 @@ _021D7E00:
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r5, #0x18]
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r0, [r5, #0x18]
mov r1, #3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x18]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldrb r0, [r5, #0xc]
cmp r0, #1
bne _021D7FA6
@@ -1336,10 +1336,10 @@ _021D7E00:
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r5, #0x18]
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldr r0, [r5, #0x18]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r2, #0
strb r2, [r5, #0x14]
ldr r0, _021D7FB0 ; =MOD61_021D7AA8
@@ -1402,7 +1402,7 @@ MOD61_021D7FF4: ; 0x021D7FF4
str r0, [sp, #0x10]
ldr r0, [r5, #0x18]
add r1, #0x44
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #8
str r0, [sp]
mov r0, #0x1a
@@ -1417,7 +1417,7 @@ MOD61_021D7FF4: ; 0x021D7FF4
ldr r0, [r5, #0x18]
add r1, #0x54
mov r3, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xd
str r0, [sp]
mov r0, #0x1a
@@ -1432,7 +1432,7 @@ MOD61_021D7FF4: ; 0x021D7FF4
ldr r0, [r5, #0x18]
add r1, #0x64
mov r3, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x14
str r0, [sp]
mov r0, #8
@@ -1447,7 +1447,7 @@ MOD61_021D7FF4: ; 0x021D7FF4
ldr r0, [r5, #0x18]
add r1, #0x74
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x14
str r0, [sp]
mov r0, #8
@@ -1462,7 +1462,7 @@ MOD61_021D7FF4: ; 0x021D7FF4
ldr r0, [r5, #0x18]
add r1, #0x84
mov r3, #3
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x13
str r0, [sp]
mov r0, #0x1b
@@ -1477,7 +1477,7 @@ MOD61_021D7FF4: ; 0x021D7FF4
add r1, #0x94
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r4, #0
add r5, #0x44
add r6, r4, #0
@@ -1513,9 +1513,9 @@ MOD61_021D80F4: ; 0x021D80F4
add r5, #0x44
_021D80FC:
add r0, r5, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #6
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
index 26b7d486..1d50728c 100644
--- a/arm9/modules/62/asm/module_62.s
+++ b/arm9/modules/62/asm/module_62.s
@@ -1162,7 +1162,7 @@ MOD62_0222DE00: ; 0x0222DE00
add r1, sp, #0x1c
mov r2, #0xa
mov r3, #2
- bl FUN_020190EC
+ bl AddTextWindowTopLeftCorner
mov r3, #0
str r3, [sp]
mov r0, #0xff
@@ -1238,7 +1238,7 @@ MOD62_0222DE00: ; 0x0222DE00
ldr r0, [sp, #0x14]
bl DestroyMsgData
add r0, sp, #0x1c
- bl FUN_02019178
+ bl RemoveWindow
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
nop
@@ -1550,7 +1550,7 @@ _0222E120:
ldrsh r3, [r7, r3]
mov r1, #5
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0x59
lsl r3, r3, #2
ldr r0, [r7, r3]
@@ -1558,7 +1558,7 @@ _0222E120:
ldrsh r3, [r7, r3]
mov r1, #5
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
_0222E160:
ldr r0, [sp, #4]
cmp r0, #0
@@ -1675,14 +1675,14 @@ _0222E22E:
lsl r1, r1, #2
ldr r0, [r0, r1]
mov r1, #5
- bl FUN_02017B48
+ bl Bg_GetXpos
add r4, r0, #0
mov r1, #0x59
ldr r0, [sp, #0x1c]
lsl r1, r1, #2
ldr r0, [r0, r1]
mov r1, #5
- bl FUN_02017B54
+ bl Bg_GetYpos
add r3, r0, #0
ldr r0, [sp, #0xc]
mov r5, #0x37
@@ -1954,7 +1954,7 @@ _0222E442:
ldr r1, [sp, #0x18]
lsr r2, r2, #0x18
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r7, #0
mov r1, #0x35
bl ListMenuItems_ctor
@@ -3323,7 +3323,7 @@ MOD62_0222EEE0: ; 0x0222EEE0
str r0, [sp, #0x10]
add r0, r7, #0
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
mov r1, #1
add r0, r5, #0
add r2, r1, #0
@@ -3374,7 +3374,7 @@ MOD62_0222EF44: ; 0x0222EF44
lsr r0, r0, #0x10
str r0, [sp, #0x10]
add r0, r7, #0
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0xf
bl FillWindowPixelBuffer
@@ -3673,9 +3673,9 @@ MOD62_0222F1E8: ; 0x0222F1E8
add r5, #0x30
_0222F1F2:
add r0, r5, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #0xb
@@ -4603,7 +4603,7 @@ MOD62_0222F904: ; 0x0222F904
bl FUN_0200CCF8
add r0, r4, #0
add r0, #0xfc
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r4, r0]
@@ -4615,7 +4615,7 @@ MOD62_0222F904: ; 0x0222F904
bl ListMenuItems_dtor
add r4, #0xfc
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #1
pop {r4, pc}
.align 2, 0
@@ -5105,7 +5105,7 @@ _0222FD10:
bne _0222FD4C
add r0, r4, #0
add r0, #0xec
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
bl MOD62_0222ED04
add r0, r4, #0
@@ -6028,7 +6028,7 @@ _0223042E:
bl GX_EngineBToggleLayers
mov r0, #7
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
add r0, r4, #0
mov r1, #1
bl MOD62_0222F738
@@ -6052,7 +6052,7 @@ _0223049A:
bne _02230598
mov r0, #3
mov r1, #1
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #0x10
str r0, [sp]
mov r3, #0
@@ -6697,11 +6697,11 @@ _022309DC:
mov r0, #0x43
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0x43
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xf7
lsl r0, r0, #2
ldr r1, [r4, r0]
@@ -6844,10 +6844,10 @@ _02230B40:
bl FUN_02003210
mov r0, #3
add r1, r0, #0
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #7
mov r1, #3
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #4
mov r1, #0
bl GX_EngineBToggleLayers
@@ -7036,7 +7036,7 @@ _02230CEC:
bne _02230D26
add r0, r4, #0
add r0, #0xec
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
bl MOD62_0222ED04
add r0, r4, #0
@@ -7398,7 +7398,7 @@ _02230F90:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _022310C0 ; =MOD62_02231294
add r3, sp, #0xa8
mov r2, #0xa
@@ -7413,26 +7413,26 @@ _02230FF0:
add r0, r4, #0
add r2, sp, #0xa8
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
add r2, sp, #0xc4
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #3
add r2, sp, #0xe0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r1, _022310C4 ; =0x04000008
mov r0, #3
ldrh r2, [r1]
@@ -7454,34 +7454,34 @@ _02231052:
mov r1, #4
add r2, sp, #0x38
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #5
add r2, sp, #0x54
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #6
add r2, sp, #0x70
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #7
add r2, sp, #0x8c
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #6
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r0, r4, #0
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #4
mov r1, #0
bl GX_EngineBToggleLayers
@@ -7511,7 +7511,7 @@ MOD62_022310CC: ; 0x022310CC
bl FUN_0200372C
add r4, #0xe4
ldr r0, [r4]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _02231104 ; =0x027E0000
ldr r1, _02231108 ; =0x00003FF8
mov r0, #1
diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s
index 4f086525..d5ce1348 100644
--- a/arm9/modules/63/asm/mod63_021D74E0.s
+++ b/arm9/modules/63/asm/mod63_021D74E0.s
@@ -404,7 +404,7 @@ MOD63_021D782C: ; 0x021D782C
ldr r0, [r0, #4]
bx r3
nop
-_021D7834: .word FUN_0201AB60
+_021D7834: .word DoScheduledBgGpuUpdates
thumb_func_end MOD63_021D782C
thumb_func_start MOD63_021D7838
@@ -692,7 +692,7 @@ MOD63_021D7A48: ; 0x021D7A48
sub sp, #0xb8
add r4, r0, #0
ldr r0, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0xa8
ldr r5, _021D7B80 ; =MOD63_021DB9B4
str r0, [r4, #4]
@@ -702,7 +702,7 @@ MOD63_021D7A48: ; 0x021D7A48
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D7B84 ; =MOD63_021DB9E0
add r3, sp, #0x8c
ldmia r5!, {r0, r1}
@@ -717,7 +717,7 @@ MOD63_021D7A48: ; 0x021D7A48
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D7B88 ; =MOD63_021DB9C4
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -732,7 +732,7 @@ MOD63_021D7A48: ; 0x021D7A48
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D7B8C ; =MOD63_021DBA50
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -747,7 +747,7 @@ MOD63_021D7A48: ; 0x021D7A48
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D7B90 ; =MOD63_021DBA34
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -762,7 +762,7 @@ MOD63_021D7A48: ; 0x021D7A48
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D7B94 ; =MOD63_021DB9FC
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -777,7 +777,7 @@ MOD63_021D7A48: ; 0x021D7A48
ldr r0, [r4, #4]
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D7B98 ; =MOD63_021DBA18
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -792,7 +792,7 @@ MOD63_021D7A48: ; 0x021D7A48
str r0, [r3]
ldr r0, [r4, #4]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0
bl GX_EngineAToggleLayers
@@ -819,10 +819,10 @@ MOD63_021D7A48: ; 0x021D7A48
bl GX_EngineBToggleLayers
mov r0, #0
add r1, r0, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0xb8
pop {r3, r4, r5, pc}
nop
@@ -865,22 +865,22 @@ MOD63_021D7B9C: ; 0x021D7B9C
bl GX_EngineBToggleLayers
ldr r0, [r4, #4]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
bl FreeToHeap
pop {r4, pc}
@@ -2031,15 +2031,15 @@ _021D844C:
bl GfGfxLoader_GXLoadPal
mov r0, #0
add r1, r0, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #4
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r2, _021D85CC ; =0x00000227
mov r0, #1
mov r1, #0x1a
@@ -2054,7 +2054,7 @@ _021D844C:
ldr r2, _021D85D0 ; =MOD63_021DB9A0
add r0, r5, #0
add r1, #0xac
- bl FUN_02019150
+ bl AddWindow
mov r1, #0
mov r0, #0xe0
str r0, [sp]
@@ -2104,12 +2104,12 @@ _021D844C:
add r1, #2
mov r2, #2
mov r3, #0x42
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r0, #4
add r1, sp, #0x1c
mov r2, #2
mov r3, #0x44
- bl FUN_02017FB4
+ bl BG_LoadPlttData
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -2183,7 +2183,7 @@ MOD63_021D8644: ; 0x021D8644
add r0, r2, #0
bx r3
.align 2, 0
-_021D864C: .word FUN_02019178
+_021D864C: .word RemoveWindow
thumb_func_end MOD63_021D8644
thumb_func_start MOD63_021D8650
diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s
index 24804568..34d50a11 100644
--- a/arm9/modules/63/asm/mod63_021D8890.s
+++ b/arm9/modules/63/asm/mod63_021D8890.s
@@ -69,7 +69,7 @@ MOD63_021D88F0: ; 0x021D88F0
sub sp, #0xb8
add r4, r0, #0
ldr r0, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0xa8
ldr r5, _021D89E8 ; =MOD63_021DBB4C
str r0, [r4, #0xc]
@@ -79,7 +79,7 @@ MOD63_021D88F0: ; 0x021D88F0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D89EC ; =MOD63_021DBC88
add r3, sp, #0x8c
ldmia r5!, {r0, r1}
@@ -94,7 +94,7 @@ MOD63_021D88F0: ; 0x021D88F0
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D89F0 ; =MOD63_021DBC6C
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -109,7 +109,7 @@ MOD63_021D88F0: ; 0x021D88F0
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D89F4 ; =MOD63_021DBBC4
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -124,7 +124,7 @@ MOD63_021D88F0: ; 0x021D88F0
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D89F8 ; =MOD63_021DBBFC
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -139,7 +139,7 @@ MOD63_021D88F0: ; 0x021D88F0
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D89FC ; =MOD63_021DBC18
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -154,7 +154,7 @@ MOD63_021D88F0: ; 0x021D88F0
ldr r0, [r4, #0xc]
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D8A00 ; =MOD63_021DBC34
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -169,13 +169,13 @@ MOD63_021D88F0: ; 0x021D88F0
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
add r1, r0, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0xb8
pop {r3, r4, r5, pc}
nop
@@ -194,7 +194,7 @@ MOD63_021D8A04: ; 0x021D8A04
sub sp, #0x80
add r4, r0, #0
ldr r0, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0x70
ldr r5, _021D8AC4 ; =MOD63_021DBB3C
str r0, [r4, #0xc]
@@ -204,7 +204,7 @@ MOD63_021D8A04: ; 0x021D8A04
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -227,7 +227,7 @@ MOD63_021D8A04: ; 0x021D8A04
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D8AD0 ; =MOD63_021DBCA4
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -242,7 +242,7 @@ MOD63_021D8A04: ; 0x021D8A04
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D8AD4 ; =MOD63_021DBCC0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -257,7 +257,7 @@ MOD63_021D8A04: ; 0x021D8A04
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D8AD8 ; =MOD63_021DBCDC
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -272,10 +272,10 @@ MOD63_021D8A04: ; 0x021D8A04
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x80
pop {r3, r4, r5, pc}
nop
@@ -293,7 +293,7 @@ MOD63_021D8ADC: ; 0x021D8ADC
sub sp, #0x9c
add r4, r0, #0
ldr r0, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0x8c
ldr r5, _021D8BBC ; =MOD63_021DBB6C
str r0, [r4, #0xc]
@@ -303,7 +303,7 @@ MOD63_021D8ADC: ; 0x021D8ADC
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -326,7 +326,7 @@ MOD63_021D8ADC: ; 0x021D8ADC
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D8BC8 ; =MOD63_021DBD14
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -341,7 +341,7 @@ MOD63_021D8ADC: ; 0x021D8ADC
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D8BCC ; =MOD63_021DBD30
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -356,7 +356,7 @@ MOD63_021D8ADC: ; 0x021D8ADC
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D8BD0 ; =MOD63_021DBBA8
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -371,7 +371,7 @@ MOD63_021D8ADC: ; 0x021D8ADC
str r0, [r3]
ldr r0, [r4, #0xc]
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D8BD4 ; =MOD63_021DBBE0
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -386,10 +386,10 @@ MOD63_021D8ADC: ; 0x021D8ADC
str r0, [r3]
ldr r0, [r4, #0xc]
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x9c
pop {r4, r5, pc}
nop
@@ -1200,22 +1200,22 @@ MOD63_021D9234: ; 0x021D9234
bl MOD63_021DAF9C
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
bl FreeToHeap
mov r0, #0
@@ -1708,16 +1708,16 @@ _021D964A:
_021D965E:
ldr r0, [r5, #0xc]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r5, #0xc]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r5, #0xc]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r5, #0xc]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r5, #0xc]
bl FreeToHeap
ldr r0, [r5, #0x10]
@@ -2716,7 +2716,7 @@ MOD63_021D9EE0: ; 0x021D9EE0
ldr r0, [r4, #0xc]
mov r1, #1
sub r3, r2, #5
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0
str r0, [r4, #8]
_021D9EFE:
@@ -2736,7 +2736,7 @@ MOD63_021D9F00: ; 0x021D9F00
ldr r0, [r4, #0xc]
mov r1, #2
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0
str r0, [r4, #8]
_021D9F1E:
@@ -2752,7 +2752,7 @@ MOD63_021D9F20: ; 0x021D9F20
ldr r0, [r4, #0xc]
mov r1, #3
sub r3, #0x11
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0
str r0, [r4, #8]
pop {r4, pc}
@@ -3183,7 +3183,7 @@ _021DA192:
mov r1, #3
mov r2, #1
mov r3, #0x40
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #1
lsl r0, r0, #0xc
bl FX_Inv
@@ -3203,14 +3203,14 @@ _021DA192:
mov r1, #2
add r2, sp, #0x10
mov r3, #0x80
- bl FUN_02017BD0
+ bl SetBgAffine
mov r0, #0x60
str r0, [sp]
ldr r0, [r4, #0xc]
mov r1, #3
add r2, sp, #0x10
mov r3, #0xc0
- bl FUN_02017BD0
+ bl SetBgAffine
mov r0, #1
strb r0, [r4, #3]
add sp, #0x20
@@ -3357,19 +3357,19 @@ MOD63_021DA418: ; 0x021DA418
beq _021DA458
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
bl FreeToHeap
ldr r0, _021DA470 ; =0x0000028E
@@ -3438,7 +3438,7 @@ MOD63_021DA478: ; 0x021DA478
mov r1, #2
mov r2, #4
mov r3, #1
- bl FUN_02017B60
+ bl Bg_SetTextDimAndAffineParams
mov r0, #1
ldr r1, [r4, #8]
lsl r0, r0, #0xa
@@ -3454,7 +3454,7 @@ MOD63_021DA478: ; 0x021DA478
mov r1, #3
mov r2, #4
mov r3, #1
- bl FUN_02017B60
+ bl Bg_SetTextDimAndAffineParams
_021DA4FE:
add sp, #0x2c
pop {r4, r5, pc}
@@ -3502,7 +3502,7 @@ MOD63_021DA504: ; 0x021DA504
mov r1, #2
mov r2, #4
mov r3, #1
- bl FUN_02017B60
+ bl Bg_SetTextDimAndAffineParams
mov r0, #2
ldr r1, [r4, #8]
lsl r0, r0, #0xa
@@ -3518,7 +3518,7 @@ MOD63_021DA504: ; 0x021DA504
mov r1, #3
mov r2, #4
mov r3, #1
- bl FUN_02017B60
+ bl Bg_SetTextDimAndAffineParams
add sp, #0x2c
pop {r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s
index 0c56aa30..aecc5268 100644
--- a/arm9/modules/64/asm/module_64.s
+++ b/arm9/modules/64/asm/module_64.s
@@ -60,7 +60,7 @@ _021D755E:
mov r1, #0x2f
bl MOD64_021D7810
mov r0, #0x2f
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r1, r5, #0
add r1, #0x94
str r0, [r1]
@@ -71,7 +71,7 @@ _021D755E:
str r1, [sp]
str r1, [sp, #8]
str r1, [sp, #0xc]
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
add r0, r5, #0
add r0, #0x94
ldr r0, [r0]
@@ -312,7 +312,7 @@ MOD64_021D77A4: ; 0x021D77A4
add r0, r4, #0
add r0, #0x94
ldr r0, [r0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
mov r0, #2
lsl r0, r0, #8
ldr r0, [r4, r0]
@@ -566,15 +566,15 @@ MOD64_021D7970: ; 0x021D7970
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r7, #0
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
add r1, r7, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r6, _021D7A30 ; =0x021D9094
add r3, sp, #0x1c
ldmia r6!, {r0, r1}
@@ -589,15 +589,15 @@ MOD64_021D7970: ; 0x021D7970
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r6, _021D7A34 ; =0x021D90CC
add r3, sp, #0
ldmia r6!, {r0, r1}
@@ -612,15 +612,15 @@ MOD64_021D7970: ; 0x021D7970
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #3
mov r1, #0x20
mov r2, #0
add r3, r4, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r0, r5, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x54
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -635,13 +635,13 @@ MOD64_021D7A38: ; 0x021D7A38
push {r4, lr}
add r4, r0, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD64_021D7A38
@@ -678,7 +678,7 @@ MOD64_021D7A54: ; 0x021D7A54
ldr r0, [r0]
ldr r1, [r1]
mov r2, #1
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
add r0, #0x98
ldr r0, [r0]
@@ -724,7 +724,7 @@ MOD64_021D7AEC: ; 0x021D7AEC
add r4, r0, #0
add r0, #0x98
ldr r0, [r0]
- bl FUN_02019178
+ bl RemoveWindow
add r4, #0x98
ldr r0, [r4]
bl FreeToHeap
@@ -3445,7 +3445,7 @@ _021D8F52:
ldr r1, [r1]
mov r2, #3
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _021D8FA8 ; =0x0001020A
mov r2, #5
str r0, [sp]
@@ -3476,7 +3476,7 @@ _021D8FB2:
add r0, r5, #0
add r0, #0x9c
ldr r0, [r0]
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0
add r0, #0x9c
ldr r0, [r0]
@@ -3537,14 +3537,14 @@ MOD64_021D902C: ; 0x021D902C
add r1, r0, #0
add r1, #0xa8
ldr r1, [r1]
- ldr r3, _021D9040 ; =FUN_02019570
+ ldr r3, _021D9040 ; =ClearWindowTilemapAndCopyToVram
lsl r1, r1, #2
add r0, r0, r1
add r0, #0x9c
ldr r0, [r0]
bx r3
nop
-_021D9040: .word FUN_02019570
+_021D9040: .word ClearWindowTilemapAndCopyToVram
thumb_func_end MOD64_021D902C
thumb_func_start MOD64_021D9044
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index 1050ff4e..13d12cb8 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -264,7 +264,7 @@ MOD65_021D76DC: ; 0x021D76DC
_021D76EE:
bl FUN_0201C30C
ldr r0, [r4, #0x24]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D7708 ; =0x027E0000
ldr r1, _021D770C ; =0x00003FF8
mov r0, #1
@@ -581,7 +581,7 @@ _021D7940:
mov r0, #0x42
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldrb r0, [r4, #0x1a]
ldr r3, [r4, #0x20]
lsl r2, r0, #3
@@ -754,7 +754,7 @@ MOD65_021D7A8C: ; 0x021D7A8C
add r5, r0, #0
bl MOD65_021D7A6C
ldr r0, [r5]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0
ldr r4, _021D7AFC ; =0x021DA040
str r0, [r5, #0x24]
@@ -764,7 +764,7 @@ MOD65_021D7A8C: ; 0x021D7A8C
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r4, _021D7B00 ; =0x021DA140
add r3, sp, #0x10
mov r2, #0x15
@@ -782,17 +782,17 @@ _021D7AC6:
lsr r1, r1, #0x18
add r2, r6, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
lsl r1, r4, #0x18
ldr r0, [r5, #0x24]
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
lsl r0, r4, #0x18
ldr r3, [r5]
lsr r0, r0, #0x18
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r7, r7, #1
add r4, r4, #1
add r6, #0x1c
@@ -814,7 +814,7 @@ _021D7B0A:
lsl r1, r4, #0x18
ldr r0, [r5, #0x24]
lsr r1, r1, #0x18
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r4, r4, #1
cmp r4, #6
blt _021D7B0A
@@ -919,10 +919,10 @@ MOD65_021D7B24: ; 0x021D7B24
bl NARC_dtor
ldr r0, [r5, #0x24]
mov r1, #3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x24]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -995,7 +995,7 @@ _021D7C68:
ldrb r2, [r4]
ldrb r3, [r4, #1]
ldr r0, [r6, #0x24]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -1020,9 +1020,9 @@ MOD65_021D7CA8: ; 0x021D7CA8
add r5, #0xe8
_021D7CB0:
add r0, r5, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #0xd
@@ -1716,7 +1716,7 @@ MOD65_021D8214: ; 0x021D8214
beq _021D823E
add r0, r5, #0
add r0, #0xe8
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
_021D823E:
add r0, r5, #0
add r0, #0xc4
@@ -2297,7 +2297,7 @@ MOD65_021D86BC: ; 0x021D86BC
mov r0, #0x46
lsl r0, r0, #2
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0xc8
add r2, sp, #0
@@ -3025,7 +3025,7 @@ MOD65_021D8C88: ; 0x021D8C88
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x68]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r0, [r4, #0x44]
bl FUN_020081C4
bl FUN_0200BC30
@@ -3069,7 +3069,7 @@ MOD65_021D8CD8: ; 0x021D8CD8
add r5, r0, #0
bl MOD65_021D8CB8
ldr r0, [r5]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #8
ldr r4, _021D8D5C ; =0x021DA35C
str r0, [r5, #0x68]
@@ -3079,7 +3079,7 @@ MOD65_021D8CD8: ; 0x021D8CD8
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r4, _021D8D60 ; =0x021DA3C8
add r3, sp, #0x18
mov r2, #0xa
@@ -3108,15 +3108,15 @@ _021D8D28:
add r2, r6, #0
add r1, r7, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #0x68]
add r1, r7, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r3, [r5]
add r0, r7, #0
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r0, [sp]
add r4, r4, #1
add r0, r0, #1
@@ -3141,13 +3141,13 @@ _021D8D6E:
lsl r1, r4, #0x18
ldr r0, [r5, #0x68]
lsr r1, r1, #0x18
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r4, r4, #1
cmp r4, #3
blt _021D8D6E
ldr r0, [r5, #0x68]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r5, #0x68]
bl FreeToHeap
pop {r3, r4, r5, pc}
@@ -3248,10 +3248,10 @@ MOD65_021D8D90: ; 0x021D8D90
bl NARC_dtor
ldr r0, [r5, #0x68]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x68]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
thumb_func_end MOD65_021D8D90
@@ -3265,7 +3265,7 @@ MOD65_021D8E68: ; 0x021D8E68
ldr r0, [r4, #0x68]
ldr r2, _021D8EAC ; =0x021DA354
add r1, #0x6c
- bl FUN_02019150
+ bl AddWindow
add r0, r4, #0
add r0, #0x6c
mov r1, #0
@@ -3296,10 +3296,10 @@ MOD65_021D8EB0: ; 0x021D8EB0
push {r4, lr}
add r4, r0, #0
add r0, #0x6c
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r4, #0x6c
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
thumb_func_end MOD65_021D8EB0
@@ -3917,7 +3917,7 @@ _021D9366:
bl FUN_0200D0E0
add r4, #0x6c
add r0, r4, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #8
pop {r4, pc}
.align 2, 0
diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s
index f8cb1081..46a8659a 100644
--- a/arm9/modules/66/asm/module_66.s
+++ b/arm9/modules/66/asm/module_66.s
@@ -142,7 +142,7 @@ _021D75DE:
add r0, r4, #0
bl MOD66_021D9220
ldr r0, [r4, #0x28]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D7600 ; =0x027E0000
ldr r1, _021D7604 ; =0x00003FF8
mov r0, #1
@@ -269,7 +269,7 @@ _021D7694:
_021D76E4:
bl MOD66_021D7608
ldr r0, [r4, #4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x28]
ldr r1, [r4, #0x28]
add r0, r4, #0
@@ -336,7 +336,7 @@ _021D7782:
lsl r1, r4, #0x18
ldr r0, [r5, #0x28]
lsr r1, r1, #0x18
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r4, r4, #1
cmp r4, #8
blt _021D7782
@@ -393,7 +393,7 @@ MOD66_021D77E4: ; 0x021D77E4
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r4, _021D78B0 ; =0x021D9634
add r3, sp, #0x14
mov r2, #0x1c
@@ -411,12 +411,12 @@ _021D7814:
lsr r1, r1, #0x18
add r2, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
lsl r1, r4, #0x18
add r0, r6, #0
lsr r1, r1, #0x18
add r4, r4, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add r7, r7, #1
add r5, #0x1c
cmp r7, #8
@@ -426,49 +426,49 @@ _021D7814:
ldr r3, [r3, #4]
mov r1, #0x20
add r2, r0, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [sp]
mov r0, #1
ldr r3, [r3, #4]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [sp]
mov r0, #2
ldr r3, [r3, #4]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [sp]
mov r0, #3
ldr r3, [r3, #4]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [sp]
mov r0, #4
ldr r3, [r3, #4]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [sp]
mov r0, #5
ldr r3, [r3, #4]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [sp]
mov r0, #6
ldr r3, [r3, #4]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [sp]
mov r0, #7
ldr r3, [r3, #4]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0xf4
pop {r4, r5, r6, r7, pc}
nop
@@ -1407,7 +1407,7 @@ _021D7FCE:
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
mov r1, #5
- bl FUN_0201AFBC
+ bl DoesPixelAtScreenXYMatchPtrVal
cmp r0, #0
beq _021D7FEE
mov r4, #0
@@ -1630,10 +1630,10 @@ MOD66_021D8140: ; 0x021D8140
bl MOD66_021D8480
ldr r0, [r5, #0x28]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x28]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_021D818A:
pop {r3, r4, r5, pc}
thumb_func_end MOD66_021D8140
@@ -1805,7 +1805,7 @@ MOD66_021D82B8: ; 0x021D82B8
add r0, r6, #0
bl CopyWindowToVram
add r0, r6, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
_021D82DC:
@@ -2046,7 +2046,7 @@ MOD66_021D8494: ; 0x021D8494
add r0, r5, #0
bl FillWindowPixelBuffer
add r0, r5, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldrb r1, [r4, #0x15]
add r0, r5, #0
mov r2, #0
@@ -2055,7 +2055,7 @@ MOD66_021D8494: ; 0x021D8494
bl FUN_0200D7A0
ldr r0, [r6, #0x28]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_021D84C6:
pop {r4, r5, r6, pc}
thumb_func_end MOD66_021D8494
@@ -2090,7 +2090,7 @@ MOD66_021D84C8: ; 0x021D84C8
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r4, #0x28]
- bl FUN_020181EC
+ bl CopyRectToBgTilemapRect
add r4, #0x84
ldr r0, [r4]
mov r1, #1
@@ -2147,7 +2147,7 @@ MOD66_021D8554: ; 0x021D8554
ldr r0, [r5, #0x28]
add r1, #0x28
mov r2, #1
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #3
str r0, [sp]
mov r0, #0x15
@@ -2162,7 +2162,7 @@ MOD66_021D8554: ; 0x021D8554
str r0, [sp, #0x10]
ldr r0, [r5, #0x28]
mov r3, #9
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #3
str r0, [sp]
mov r0, #0x1c
@@ -2177,7 +2177,7 @@ MOD66_021D8554: ; 0x021D8554
str r0, [sp, #0x10]
ldr r0, [r5, #0x28]
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #8
str r0, [sp]
mov r0, #0x1c
@@ -2192,7 +2192,7 @@ MOD66_021D8554: ; 0x021D8554
add r1, #0x58
mov r2, #4
mov r3, #1
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0
str r0, [sp]
mov r0, #0xa
@@ -2208,7 +2208,7 @@ MOD66_021D8554: ; 0x021D8554
add r1, #0x68
mov r2, #4
mov r3, #0xb
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
add r0, #0x28
mov r1, #0
@@ -2234,16 +2234,16 @@ MOD66_021D8554: ; 0x021D8554
bl CopyWindowToVram
add r0, r4, #0
add r0, #0x38
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x48
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x58
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r4, #0x68
add r0, r4, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add sp, #0x14
pop {r4, r5, pc}
nop
@@ -2262,7 +2262,7 @@ MOD66_021D8670: ; 0x021D8670
_021D8678:
lsl r0, r5, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
@@ -2302,7 +2302,7 @@ MOD66_021D868C: ; 0x021D868C
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r5, #0x28]
- bl FUN_02018170
+ bl CopyToBgTilemapRect
_021D86CA:
add r0, r5, #0
add r0, #0xcc
@@ -2333,7 +2333,7 @@ _021D86CA:
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r5, #0x28]
- bl FUN_020181EC
+ bl CopyRectToBgTilemapRect
add sp, #0x1c
pop {r4, r5, pc}
thumb_func_end MOD66_021D868C
@@ -2394,7 +2394,7 @@ MOD66_021D870C: ; 0x021D870C
ldrb r2, [r3, #2]
ldrb r3, [r3, #3]
ldr r0, [r5, #0x28]
- bl FUN_02018170
+ bl CopyToBgTilemapRect
add r0, r5, #0
add r0, #0xd4
ldrb r1, [r7, #4]
@@ -2423,7 +2423,7 @@ MOD66_021D870C: ; 0x021D870C
ldrb r2, [r7, #2]
ldrb r3, [r7, #3]
ldr r0, [r5, #0x28]
- bl FUN_020181EC
+ bl CopyRectToBgTilemapRect
ldr r0, [sp, #0x1c]
cmp r0, #2
beq _021D882E
@@ -2453,7 +2453,7 @@ MOD66_021D870C: ; 0x021D870C
ldrb r2, [r6, #2]
ldrb r3, [r6, #3]
ldr r0, [r5, #0x28]
- bl FUN_02018170
+ bl CopyToBgTilemapRect
add r0, r5, #0
add r0, #0xd4
ldrb r1, [r4, #4]
@@ -2480,7 +2480,7 @@ MOD66_021D870C: ; 0x021D870C
ldrb r2, [r4, #2]
ldrb r3, [r4, #3]
ldr r0, [r5, #0x28]
- bl FUN_020181EC
+ bl CopyRectToBgTilemapRect
_021D882E:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
@@ -2516,7 +2516,7 @@ MOD66_021D8838: ; 0x021D8838
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r4, #0x28]
- bl FUN_02018170
+ bl CopyToBgTilemapRect
add r0, r4, #0
add r0, #0xbc
mov r2, #0
@@ -2541,7 +2541,7 @@ MOD66_021D8838: ; 0x021D8838
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r4, #0x28]
- bl FUN_02018170
+ bl CopyToBgTilemapRect
ldrb r0, [r4]
cmp r0, #1
beq _021D88DE
@@ -2569,7 +2569,7 @@ MOD66_021D8838: ; 0x021D8838
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r4, #0x28]
- bl FUN_02018170
+ bl CopyToBgTilemapRect
_021D88DE:
add r0, r4, #0
mov r1, #0
@@ -2598,7 +2598,7 @@ _021D88DE:
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r4, #0x28]
- bl FUN_020181EC
+ bl CopyRectToBgTilemapRect
add r0, r4, #0
add r0, #0xc4
mov r2, #0
@@ -2622,7 +2622,7 @@ _021D88DE:
lsr r0, r0, #0x18
str r0, [sp, #0x18]
ldr r0, [r4, #0x28]
- bl FUN_020181EC
+ bl CopyRectToBgTilemapRect
ldrh r1, [r4, #2]
mov r0, #1
tst r0, r1
@@ -2657,19 +2657,19 @@ _021D897C:
_021D898C:
ldr r0, [r4, #0x28]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #6
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #7
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x1c
pop {r3, r4, pc}
thumb_func_end MOD66_021D8838
@@ -2683,22 +2683,22 @@ MOD66_021D89B8: ; 0x021D89B8
mov r1, #6
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x28]
mov r1, #7
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #0
ldr r0, [r4, #0x28]
mov r1, #6
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #0
ldr r0, [r4, #0x28]
mov r1, #7
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #0
str r1, [sp]
mov r0, #0x20
@@ -2709,7 +2709,7 @@ MOD66_021D89B8: ; 0x021D89B8
ldr r0, [r4, #0x28]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -2720,7 +2720,7 @@ MOD66_021D89B8: ; 0x021D89B8
ldr r0, [r4, #0x28]
mov r1, #1
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -2731,7 +2731,7 @@ MOD66_021D89B8: ; 0x021D89B8
ldr r0, [r4, #0x28]
mov r1, #2
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -2742,7 +2742,7 @@ MOD66_021D89B8: ; 0x021D89B8
ldr r0, [r4, #0x28]
mov r1, #3
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -2753,7 +2753,7 @@ MOD66_021D89B8: ; 0x021D89B8
ldr r0, [r4, #0x28]
mov r1, #4
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -2764,7 +2764,7 @@ MOD66_021D89B8: ; 0x021D89B8
ldr r0, [r4, #0x28]
mov r1, #5
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -2775,7 +2775,7 @@ MOD66_021D89B8: ; 0x021D89B8
ldr r0, [r4, #0x28]
mov r1, #6
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -2786,31 +2786,31 @@ MOD66_021D89B8: ; 0x021D89B8
ldr r0, [r4, #0x28]
mov r1, #7
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r4, #0x28]
mov r1, #0
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #3
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #6
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r4, #0x28]
mov r1, #7
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -2943,12 +2943,12 @@ MOD66_021D8BF0: ; 0x021D8BF0
mov r1, #6
mov r2, #0
mov r3, #8
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5, #0x28]
mov r1, #7
mov r2, #0
mov r3, #8
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
b _021D8C4A
_021D8C16:
cmp r4, #0xf8
@@ -2957,23 +2957,23 @@ _021D8C16:
mov r1, #6
mov r2, #0
mov r3, #0xf8
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5, #0x28]
mov r1, #7
mov r2, #0
mov r3, #0xf8
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
b _021D8C4A
_021D8C34:
mov r1, #6
mov r2, #0
add r3, r4, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5, #0x28]
mov r1, #7
mov r2, #0
add r3, r4, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
_021D8C4A:
cmp r6, #0x50
bge _021D8C68
@@ -2981,12 +2981,12 @@ _021D8C4A:
mov r1, #6
mov r2, #3
mov r3, #0x50
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5, #0x28]
mov r1, #7
mov r2, #3
mov r3, #0x50
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r4, r5, r6, pc}
_021D8C68:
mov r3, #0x13
@@ -2996,24 +2996,24 @@ _021D8C68:
ble _021D8C8A
mov r1, #6
mov r2, #3
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r3, #0x13
ldr r0, [r5, #0x28]
mov r1, #7
mov r2, #3
lsl r3, r3, #4
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r4, r5, r6, pc}
_021D8C8A:
mov r1, #6
mov r2, #3
add r3, r6, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r0, [r5, #0x28]
mov r1, #7
mov r2, #3
add r3, r6, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD66_021D8BF0
@@ -3360,7 +3360,7 @@ _021D8F04:
bl MOD66_021D868C
ldr r0, [r5, #0x28]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_021D8F2C:
ldr r1, [r4, #8]
add r0, r1, #1
@@ -3416,7 +3416,7 @@ _021D8F7C:
ldr r0, [r5, #0x28]
mov r1, #4
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -3427,7 +3427,7 @@ _021D8F7C:
ldr r0, [r5, #0x28]
mov r1, #5
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r1, r4, #0
add r0, r5, #0
add r1, #0x68
@@ -3527,17 +3527,17 @@ _021D9066:
ldr r0, [r5, #0x28]
mov r1, #4
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r5, #0
mov r1, #0
mov r2, #1
bl MOD66_021D868C
ldr r0, [r5, #0x28]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r0, [r5, #0x28]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r3, #0
str r3, [r5, #0x14]
mov r0, #8
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
index c39f5c7d..171acce3 100644
--- a/arm9/modules/67/asm/module_67.s
+++ b/arm9/modules/67/asm/module_67.s
@@ -48,7 +48,7 @@ MOD67_021D74E0: ; 0x021D74E0
add r4, r0, #0
bl memset
mov r0, #0x2a
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4]
str r5, [r4, #0x4c]
add r0, r5, #0
@@ -175,7 +175,7 @@ MOD67_021D7624: ; 0x021D7624
MOD67_021D7660: ; 0x021D7660
push {r3, lr}
ldr r0, [r0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D7678 ; =0x027E0000
ldr r1, _021D767C ; =0x00003FF8
mov r0, #1
@@ -221,7 +221,7 @@ MOD67_021D76A0: ; 0x021D76A0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D776C ; =0x021D975C
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -236,10 +236,10 @@ MOD67_021D76A0: ; 0x021D76A0
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7770 ; =0x021D9740
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -254,10 +254,10 @@ MOD67_021D76A0: ; 0x021D76A0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7774 ; =0x021D9778
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -272,7 +272,7 @@ MOD67_021D76A0: ; 0x021D76A0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021D7778 ; =0x021D9794
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -287,17 +287,17 @@ MOD67_021D76A0: ; 0x021D76A0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x2a
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x2a
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x80
pop {r3, r4, r5, pc}
nop
@@ -315,16 +315,16 @@ MOD67_021D777C: ; 0x021D777C
bl GX_DisableEngineALayers
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0x2a
add r1, r4, #0
bl FreeToHeapExplicit
@@ -405,7 +405,7 @@ _021D7802:
_021D7844:
ldr r0, [r4]
mov r1, #2
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r1, r4, #0
mov r2, #2
add r1, #0x5c
@@ -417,7 +417,7 @@ _021D7844:
mov r1, #3
add r2, r4, #0
lsl r3, r3, #0xa
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
mov r1, #0x1e
mov r0, #0
lsl r1, r1, #4
@@ -425,7 +425,7 @@ _021D7844:
bl FUN_02002ED0
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x10
pop {r4, pc}
thumb_func_end MOD67_021D77B0
@@ -613,7 +613,7 @@ _021D79AC:
ldrb r1, [r4, r1]
ldr r0, [r4]
add r2, r4, r2
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
mov r3, #0
add r2, r4, #0
str r3, [sp]
@@ -624,15 +624,15 @@ _021D79AC:
ldr r0, [r4]
ldrb r1, [r4, r1]
add r2, #0x5c
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r1, _021D7A34 ; =0x00001062
ldr r0, [r4]
ldrb r1, [r4, r1]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldr r1, _021D7A30 ; =0x00001061
ldr r0, [r4]
ldrb r1, [r4, r1]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0xc
mov r0, #1
pop {r3, r4, pc}
@@ -826,10 +826,10 @@ MOD67_021D7B5C: ; 0x021D7B5C
ldr r0, [r5]
add r3, r2, #0
add r4, r1, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, [r5]
add r1, r4, #0
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
@@ -841,7 +841,7 @@ MOD67_021D7B84: ; 0x021D7B84
add r4, r0, #0
ldr r0, [r4]
mov r1, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldr r2, _021D7B9C ; =0x0000085C
add r1, r4, r2
sub r2, #0x5c
@@ -863,7 +863,7 @@ MOD67_021D7BA0: ; 0x021D7BA0
ldr r0, [r7]
lsr r1, r1, #0x18
add r5, r3, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
str r0, [sp, #0x14]
ldr r1, _021D7C2C ; =0x021D97D8
lsl r0, r5, #5
@@ -890,7 +890,7 @@ _021D7BCA:
ldr r1, [sp, #0x18]
mov r2, #0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
b _021D7C10
_021D7BF0:
ldr r0, [sp, #0x14]
@@ -920,7 +920,7 @@ _021D7C10:
ldr r0, [r7]
lsl r1, r1, #0x18
lsr r1, r1, #0x18
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
@@ -965,19 +965,19 @@ MOD67_021D7C30: ; 0x021D7C30
add r0, r0, #5
ldrb r0, [r4, r0]
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, _021D7CB8 ; =0x00001063
mov r1, #1
ldrb r0, [r4, r0]
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, _021D7CA8 ; =0x00001062
mov r1, #2
ldrb r0, [r4, r0]
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, _021D7CB0 ; =0x00001061
mov r1, #3
ldrb r0, [r4, r0]
- bl FUN_020178BC
+ bl SetBgPriority
mov r0, #1
pop {r4, pc}
_021D7CA4:
@@ -1031,19 +1031,19 @@ MOD67_021D7CBC: ; 0x021D7CBC
add r0, r0, #5
ldrb r0, [r4, r0]
mov r1, #0
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, _021D7D50 ; =0x00001063
mov r1, #1
ldrb r0, [r4, r0]
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, _021D7D58 ; =0x00001062
mov r1, #2
ldrb r0, [r4, r0]
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, _021D7D5C ; =0x00001061
mov r1, #3
ldrb r0, [r4, r0]
- bl FUN_020178BC
+ bl SetBgPriority
_021D7D30:
ldr r0, _021D7D54 ; =0x0000105F
ldrsb r1, [r4, r0]
@@ -1077,7 +1077,7 @@ _021D7D6A:
ldr r0, [r7]
add r1, r5, #0
add r2, r4, #0
- bl FUN_02019150
+ bl AddWindow
add r6, r6, #1
add r4, #8
add r5, #0x10
@@ -1095,7 +1095,7 @@ MOD67_021D7D84: ; 0x021D7D84
add r5, r0, #4
_021D7D8A:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #4
@@ -1146,9 +1146,9 @@ _021D7DB4:
bl MOD67_021D8344
_021D7DF2:
add r0, r6, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r4, r5, r6, pc}
thumb_func_end MOD67_021D7D9C
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
index 6e79c8cf..e30ad283 100644
--- a/arm9/modules/68/asm/module_68.s
+++ b/arm9/modules/68/asm/module_68.s
@@ -49,7 +49,7 @@ MOD68_021D74E0: ; 0x021D74E0
lsl r1, r1, #2
str r0, [r5, r1]
mov r0, #0x24
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r5]
mov r0, #0x7e
lsl r0, r0, #2
@@ -187,7 +187,7 @@ _021D767C: .word 0x04000050
MOD68_021D7680: ; 0x021D7680
push {r3, lr}
ldr r0, [r0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D7698 ; =0x027E0000
ldr r1, _021D769C ; =0x00003FF8
mov r0, #1
@@ -233,7 +233,7 @@ MOD68_021D76C0: ; 0x021D76C0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
bl MOD68_021D7FD8
ldr r5, _021D7768 ; =0x021D8910
add r3, sp, #0x38
@@ -249,10 +249,10 @@ MOD68_021D76C0: ; 0x021D76C0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D776C ; =0x021D88D8
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -267,12 +267,12 @@ MOD68_021D76C0: ; 0x021D76C0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
mov r2, #3
mov r3, #8
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
ldr r5, _021D7770 ; =0x021D88F4
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -287,12 +287,12 @@ MOD68_021D76C0: ; 0x021D76C0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x24
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x64
pop {r4, r5, pc}
nop
@@ -311,13 +311,13 @@ MOD68_021D7774: ; 0x021D7774
bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0x24
add r1, r4, #0
bl FreeToHeapExplicit
@@ -393,12 +393,12 @@ _021D7812:
mov r1, #1
add r2, r4, #0
mov r3, #2
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
bl FreeToHeap
ldr r0, [r5]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r1, #0x1e
mov r0, #0
lsl r1, r1, #4
@@ -482,7 +482,7 @@ _021D78D2:
ldr r0, [r7]
add r1, r5, #0
add r2, r4, #0
- bl FUN_02019150
+ bl AddWindow
add r6, r6, #1
add r4, #8
add r5, #0x10
@@ -500,7 +500,7 @@ MOD68_021D78EC: ; 0x021D78EC
mov r4, #0
_021D78F2:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #0xc
@@ -544,7 +544,7 @@ MOD68_021D7904: ; 0x021D7904
ldr r0, [sp, #0x10]
bl String_dtor
add r0, r5, r4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
thumb_func_end MOD68_021D7904
@@ -736,7 +736,7 @@ MOD68_021D7A18: ; 0x021D7A18
add r0, r5, #0
bl String_dtor
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -774,7 +774,7 @@ MOD68_021D7AE4: ; 0x021D7AE4
add r0, r4, #0
bl String_dtor
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, pc}
nop
@@ -810,7 +810,7 @@ MOD68_021D7B34: ; 0x021D7B34
add r0, r4, #0
bl String_dtor
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, pc}
nop
@@ -855,7 +855,7 @@ _021D7BA4:
add r0, r4, #0
bl String_dtor
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -891,7 +891,7 @@ MOD68_021D7BDC: ; 0x021D7BDC
add r0, r4, #0
bl String_dtor
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, pc}
nop
@@ -980,7 +980,7 @@ MOD68_021D7C28: ; 0x021D7C28
add r0, r4, #0
bl String_dtor
add r0, r6, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x14
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -1393,7 +1393,7 @@ MOD68_021D7F98: ; 0x021D7F98
bl MOD68_021D85F4
ldr r0, [r4]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
pop {r4, pc}
.align 2, 0
thumb_func_end MOD68_021D7F98
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index c9bce6b2..b29554ea 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -735,7 +735,7 @@ MOD69_0222DBAC: ; 0x0222DBAC
sub sp, #0x14
add r4, r0, #0
mov r0, #0x3f
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x10]
ldr r0, _0222DCF4 ; =0x0222F8CC
bl GX_SetBanks
@@ -745,28 +745,28 @@ MOD69_0222DBAC: ; 0x0222DBAC
and r0, r1
strh r0, [r2]
ldr r0, _0222DD00 ; =0x0222F7C4
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r4, #0x10]
ldr r2, _0222DD04 ; =0x0222F850
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x10]
ldr r2, _0222DD08 ; =0x0222F818
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x10]
ldr r2, _0222DD0C ; =0x0222F834
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r2, #0
str r2, [sp]
mov r1, #1
ldr r0, [r4, #0x10]
add r3, r1, #0
- bl FUN_02017F48
+ bl BG_FillCharDataRange
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -776,7 +776,7 @@ MOD69_0222DBAC: ; 0x0222DBAC
ldr r0, [r4, #0x10]
mov r1, #1
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0
add r1, r4, #0
str r3, [sp]
@@ -789,17 +789,17 @@ MOD69_0222DBAC: ; 0x0222DBAC
str r2, [sp, #0x10]
ldr r0, [r4, #0x10]
add r1, #0x14
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
add r0, #0x14
mov r1, #0
bl FillWindowPixelBuffer
add r0, r4, #0
add r0, #0x14
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r0, r4, #0
add r0, #0x14
- bl FUN_02019270
+ bl PutWindowTilemap
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -846,7 +846,7 @@ MOD69_0222DBAC: ; 0x0222DBAC
bl GfGfxLoader_LoadScrnData
ldr r0, [r4, #0x10]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, _0222DD10 ; =0x04000040
mov r1, #0
strh r1, [r0]
@@ -900,16 +900,16 @@ MOD69_0222DD18: ; 0x0222DD18
str r0, [r2]
add r0, r4, #0
add r0, #0x14
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x10]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
bl FreeToHeap
pop {r4, pc}
@@ -2469,7 +2469,7 @@ _0222E9D8:
mov r1, #0x18
bl MOD69_0222E89C
ldr r0, [r4, #0x10]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
mov r0, #0x14
str r0, [r4, #0x30]
ldr r0, [r4, #0x34]
@@ -2490,7 +2490,7 @@ _0222E9FC:
mov r1, #0x58
bl MOD69_0222E89C
ldr r0, [r4, #0x10]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
mov r0, #0x14
str r0, [r4, #0x30]
ldr r0, [r4, #0x34]
@@ -2521,7 +2521,7 @@ _0222EA2E:
mov r1, #0x88
bl MOD69_0222E89C
ldr r0, [r4, #0x10]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #0x34]
add r0, r0, #1
str r0, [r4, #0x34]
@@ -2595,7 +2595,7 @@ _0222EAEA:
ldr r0, [r4, #0xc]
lsr r1, r1, #0x18
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
add r0, #0x14
bl MOD69_0222F6C0
@@ -2610,7 +2610,7 @@ _0222EB16:
mov r1, #0
bl FillWindowPixelBuffer
ldr r0, [r4, #0x10]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
ldr r0, [r4, #0x28]
add r0, r0, #1
str r0, [r4, #0x28]
@@ -2622,7 +2622,7 @@ _0222EB2C:
lsr r1, r1, #0x18
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
bl MOD69_0222E204
add r0, r5, #0
@@ -2744,7 +2744,7 @@ MOD69_0222EB4C: ; 0x0222EB4C
bl AddTextPrinterParameterized2
add r4, #0x14
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r4, pc}
nop
diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s
index daff2762..ead9cb12 100644
--- a/arm9/modules/70/asm/module_70.s
+++ b/arm9/modules/70/asm/module_70.s
@@ -405,7 +405,7 @@ MOD70_021D77CC: ; 0x021D77CC
str r5, [r4]
str r6, [r4, #4]
mov r0, #0x3d
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x10]
bl NNS_G2dInitOamManagerModule
mov r0, #0
@@ -810,17 +810,17 @@ MOD70_021D7AF4: ; 0x021D7AF4
orr r0, r1
strh r0, [r2]
ldr r0, _021D7C00 ; =0x021D823C
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r5, #0x10]
ldr r2, _021D7C04 ; =0x021D8268
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #0x10]
ldr r2, _021D7C08 ; =0x021D824C
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -857,7 +857,7 @@ MOD70_021D7AF4: ; 0x021D7AF4
mov r1, #1
ldr r0, [r5, #0x10]
add r3, r1, #0
- bl FUN_02017F48
+ bl BG_FillCharDataRange
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -867,7 +867,7 @@ MOD70_021D7AF4: ; 0x021D7AF4
ldr r0, [r5, #0x10]
mov r1, #1
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r5, #0
mov r1, #1
bl MOD70_021D7C2C
@@ -900,7 +900,7 @@ MOD70_021D7AF4: ; 0x021D7AF4
bl FUN_0200CCA4
ldr r0, [r5, #0x10]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r3, #8
ldr r0, _021D7C0C ; =0x04000050
mov r1, #0
@@ -927,10 +927,10 @@ MOD70_021D7C10: ; 0x021D7C10
add r4, r0, #0
ldr r0, [r4, #0x10]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl MOD70_021D7C98
pop {r4, pc}
@@ -957,7 +957,7 @@ MOD70_021D7C2C: ; 0x021D7C2C
ldr r0, [r5, #0x10]
add r1, #0x14
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x13
str r0, [sp]
mov r0, #0x1e
@@ -976,13 +976,13 @@ MOD70_021D7C2C: ; 0x021D7C2C
ldr r0, [r5, #0x10]
add r1, #0x24
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
add r0, #0x14
- bl FUN_02019270
+ bl PutWindowTilemap
add r5, #0x24
add r0, r5, #0
- bl FUN_02019270
+ bl PutWindowTilemap
add r4, #0xb4
add r0, r4, #0
add sp, #0x14
@@ -998,7 +998,7 @@ MOD70_021D7C98: ; 0x021D7C98
add r5, #0x14
_021D7CA0:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #2
@@ -1029,10 +1029,10 @@ MOD70_021D7CC0: ; 0x021D7CC0
bl FillWindowPixelBuffer
add r0, r4, #0
add r0, #0x14
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add r4, #0x24
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
pop {r4, pc}
thumb_func_end MOD70_021D7CC0
@@ -1114,7 +1114,7 @@ MOD70_021D7CE8: ; 0x021D7CE8
add r3, r1, #0
bl AddTextPrinterParameterized
add r0, r6, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0xc
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD70_021D7CE8
@@ -1341,7 +1341,7 @@ _021D7F1E:
blt _021D7F1E
_021D7F66:
ldr r0, [sp, #0xc]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD70_021D7D98
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index d01ea938..eccd3758 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -38,7 +38,7 @@ MOD71_0222D5C0: ; 0x0222D5C0
add r1, r4, #0
bl MIi_CpuClearFast
mov r0, #0x1a
- bl FUN_02016B94
+ bl BgConfig_Alloc
mov r1, #0x5d
lsl r1, r1, #2
str r0, [r4, r1]
@@ -128,7 +128,7 @@ MOD71_0222D5C0: ; 0x0222D5C0
bl FUN_02083B84
mov r0, #0
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -314,28 +314,28 @@ MOD71_0222D820: ; 0x0222D820
bl MOD71_02230F40
mov r0, #4
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineBToggleLayers
mov r0, #0
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -1211,13 +1211,13 @@ _0222DFD6:
bl FUN_0200A208
mov r0, #1
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #2
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -1267,13 +1267,13 @@ _0222E054:
bl FUN_0200A208
mov r0, #4
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineBToggleLayers
@@ -1304,7 +1304,7 @@ _0222E094:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -1793,7 +1793,7 @@ MOD71_0222E4DC: ; 0x0222E4DC
mov r0, #0x5d
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r0, _0222E548 ; =0x00002110
ldr r0, [r5, r0]
cmp r0, #0
@@ -1876,7 +1876,7 @@ MOD71_0222E578: ; 0x0222E578
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r4, _0222E74C ; =0x0223115C
add r3, sp, #0xa8
ldmia r4!, {r0, r1}
@@ -1891,10 +1891,10 @@ MOD71_0222E578: ; 0x0222E578
str r0, [r3]
add r0, r5, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r4, _0222E750 ; =0x02231124
add r3, sp, #0x8c
ldmia r4!, {r0, r1}
@@ -1909,10 +1909,10 @@ MOD71_0222E578: ; 0x0222E578
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r4, _0222E754 ; =0x02231178
add r3, sp, #0x70
ldmia r4!, {r0, r1}
@@ -1927,10 +1927,10 @@ MOD71_0222E578: ; 0x0222E578
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r4, _0222E758 ; =0x02231194
add r3, sp, #0x54
ldmia r4!, {r0, r1}
@@ -1945,7 +1945,7 @@ MOD71_0222E578: ; 0x0222E578
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r4, _0222E75C ; =0x022310EC
add r3, sp, #0x38
ldmia r4!, {r0, r1}
@@ -1960,10 +1960,10 @@ MOD71_0222E578: ; 0x0222E578
add r0, r5, #0
mov r1, #4
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r4, _0222E760 ; =0x02231108
add r3, sp, #0x1c
ldmia r4!, {r0, r1}
@@ -1978,7 +1978,7 @@ MOD71_0222E578: ; 0x0222E578
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r4, _0222E764 ; =0x02231140
add r3, sp, #0
ldmia r4!, {r0, r1}
@@ -1993,22 +1993,22 @@ MOD71_0222E578: ; 0x0222E578
str r0, [r3]
add r0, r5, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x1a
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #1
mov r1, #0x20
mov r2, #0
mov r3, #0x1a
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x1a
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r4, #0
mov r6, #3
add r7, r4, #0
@@ -2018,51 +2018,51 @@ _0222E6BC:
add r0, r5, #0
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
add r2, r6, #0
add r3, r7, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
mov r2, #0
add r0, r5, #0
lsr r1, r1, #0x18
add r3, r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r1, r4, #4
lsl r1, r1, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r4, r4, #1
cmp r4, #4
blt _0222E6BC
mov r0, #0
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #4
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r2, #1
lsl r2, r2, #0x1a
ldr r1, [r2]
@@ -2188,25 +2188,25 @@ MOD71_0222E848: ; 0x0222E848
push {r4, lr}
add r4, r0, #0
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD71_0222E848
@@ -2237,7 +2237,7 @@ _0222E8B2:
lsl r1, r4, #0x18
add r0, r5, #0
lsr r1, r1, #0x18
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
cmp r0, #0
beq _0222E8D0
ldr r2, [sp, #4]
@@ -2246,7 +2246,7 @@ _0222E8B2:
add r0, r5, #0
lsr r1, r1, #0x18
add r2, #0xc
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
_0222E8D0:
add r0, r6, #0
bl FreeToHeap
@@ -2262,7 +2262,7 @@ MOD71_0222E8DC: ; 0x0222E8DC
sub sp, #4
mov r1, #2
add r4, r0, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r2, r0, #0
mov r0, #0
mov r3, #6
@@ -2270,7 +2270,7 @@ MOD71_0222E8DC: ; 0x0222E8DC
add r0, r4, #0
mov r1, #2
lsl r3, r3, #8
- bl FUN_02017CE8
+ bl BgCopyOrUncompressTilemapBufferRangeToVram
add sp, #4
pop {r3, r4, pc}
.align 2, 0
@@ -2304,10 +2304,10 @@ MOD71_0222E900: ; 0x0222E900
bl GfGfxLoader_GXLoadPal
mov r0, #0
add r1, r0, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r1, #0x1a
mov r0, #0
lsl r1, r1, #4
@@ -2414,7 +2414,7 @@ MOD71_0222E900: ; 0x0222E900
bl FUN_02002ED0
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -2958,7 +2958,7 @@ _0222EE9A:
add r0, #0x1c
lsl r0, r0, #4
add r0, r6, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
_0222EEA6:
mov r0, #3
str r0, [sp]
@@ -3046,21 +3046,21 @@ MOD71_0222EF24: ; 0x0222EF24
add r0, #0x1a
lsl r0, r0, #4
add r0, r5, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x1c
lsl r0, r0, #4
add r0, r5, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x1e
lsl r0, r0, #4
add r0, r5, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r4, #0x20
lsl r0, r4, #4
add r0, r5, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
pop {r4, r5, r6, pc}
thumb_func_end MOD71_0222EF24
@@ -3966,7 +3966,7 @@ MOD71_0222F674: ; 0x0222F674
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -4023,7 +4023,7 @@ _0222F6EE:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -4058,7 +4058,7 @@ _0222F738:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -4103,7 +4103,7 @@ MOD71_0222F790: ; 0x0222F790
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -4149,7 +4149,7 @@ MOD71_0222F7E4: ; 0x0222F7E4
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -4377,7 +4377,7 @@ _0222F9E4:
bl FUN_0200CCF8
ldr r0, _0222FA30 ; =0x00003684
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xda
lsl r0, r0, #6
mov r1, #0
@@ -4895,7 +4895,7 @@ MOD71_0222FDD8: ; 0x0222FDD8
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5f
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -5005,7 +5005,7 @@ _0222FF10:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -5044,7 +5044,7 @@ _0222FF64:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -5081,7 +5081,7 @@ _0222FFB4:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -5134,7 +5134,7 @@ MOD71_02230020: ; 0x02230020
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -5243,7 +5243,7 @@ _02230108:
lsl r1, r0, #4
ldr r0, [sp, #4]
add r0, r0, r1
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r7, #0
add r0, #0x8c
ldr r0, [r0]
@@ -5280,7 +5280,7 @@ _02230154:
lsl r1, r0, #4
ldr r0, [sp, #4]
add r0, r0, r1
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r6, r6, #1
add r4, r4, #4
add r5, #0x10
@@ -5550,11 +5550,11 @@ MOD71_02230390: ; 0x02230390
ldr r1, _0223048C ; =0x00000568
str r0, [sp]
add r0, r0, r1
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
ldr r1, _02230490 ; =0x00000578
ldr r0, [sp]
add r0, r0, r1
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
ldr r6, [sp]
ldr r1, _02230494 ; =0x00000438
add r0, r6, #0
@@ -5622,7 +5622,7 @@ _0223042C:
lsl r1, r0, #4
ldr r0, [sp, #4]
add r0, r0, r1
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_02230438:
add r7, r7, #1
add r6, #0x10
@@ -5688,7 +5688,7 @@ MOD71_022304AC: ; 0x022304AC
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, _02230534 ; =0x00002218
add r1, r4, #0
add r1, #0x88
@@ -5787,7 +5787,7 @@ _0223056E:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -5836,7 +5836,7 @@ _022305EE:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -5885,7 +5885,7 @@ MOD71_02230650: ; 0x02230650
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5f
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -5942,7 +5942,7 @@ _022306CA:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -5977,7 +5977,7 @@ _02230714:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -6141,7 +6141,7 @@ MOD71_02230810: ; 0x02230810
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5f
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -6237,7 +6237,7 @@ _0223092E:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -6276,7 +6276,7 @@ _02230982:
ldr r0, [r4, r0]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0x5e
lsl r3, r3, #2
ldr r0, [r4, r3]
@@ -6467,7 +6467,7 @@ MOD71_02230B3C: ; 0x02230B3C
ldr r0, [r4, r0]
ldr r3, [r4, r3]
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0x5d
ldr r3, _02230B6C ; =0x000022B8
lsl r0, r0, #2
@@ -6475,7 +6475,7 @@ MOD71_02230B3C: ; 0x02230B3C
ldr r3, [r4, r3]
mov r1, #3
mov r2, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r4, pc}
.align 2, 0
_02230B6C: .word 0x000022B8
@@ -6624,7 +6624,7 @@ MOD71_02230C48: ; 0x02230C48
add r5, r1, #0
str r0, [sp, #0x14]
str r2, [sp, #0x10]
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -6642,7 +6642,7 @@ MOD71_02230C48: ; 0x02230C48
ldr r0, [sp, #0x14]
add r1, #0x10
mov r3, #0x14
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
add r0, #0x10
mov r1, #0
@@ -6662,7 +6662,7 @@ MOD71_02230C48: ; 0x02230C48
add r1, #0x60
mov r2, #1
mov r3, #0x1a
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
add r0, #0x60
mov r1, #0
@@ -6701,7 +6701,7 @@ MOD71_02230C48: ; 0x02230C48
ldr r0, [sp, #0x14]
add r1, r5, r1
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x15
lsl r0, r0, #4
add r0, r5, r0
@@ -6723,7 +6723,7 @@ MOD71_02230C48: ; 0x02230C48
add r1, r5, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x16
lsl r0, r0, #4
add r0, r5, r0
@@ -6745,7 +6745,7 @@ MOD71_02230C48: ; 0x02230C48
add r1, r5, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x17
lsl r0, r0, #4
add r0, r5, r0
@@ -6766,7 +6766,7 @@ MOD71_02230C48: ; 0x02230C48
add r1, r5, r1
mov r2, #0
mov r3, #0x14
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #6
lsl r0, r0, #6
add r0, r5, r0
@@ -6787,7 +6787,7 @@ MOD71_02230C48: ; 0x02230C48
add r1, r5, r1
mov r2, #0
mov r3, #0x14
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x19
lsl r0, r0, #4
add r0, r5, r0
@@ -6820,7 +6820,7 @@ _02230DE2:
add r1, r5, r1
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [sp, #0x18]
mov r1, #0
add r0, r5, r0
@@ -6858,7 +6858,7 @@ _02230E2C:
ldr r0, [sp, #0x14]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, r7
mov r1, #0
bl FillWindowPixelBuffer
@@ -6884,7 +6884,7 @@ _02230E8E:
add r0, r5, #7
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
add r5, r5, #1
cmp r5, #0xe
blt _02230E8E
@@ -6894,38 +6894,38 @@ _02230EA0:
add r0, #0x1a
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
add r5, r5, #1
cmp r5, #8
blt _02230EA0
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x10
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x60
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x15
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x16
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x17
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #6
lsl r0, r0, #6
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x19
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r3, r4, r5, pc}
thumb_func_end MOD71_02230E88
@@ -7097,7 +7097,7 @@ MOD71_02231018: ; 0x02231018
add r1, r4, #0
mov r2, #0
mov r3, #0x13
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r2, _0223108C ; =0x000001F7
add r0, r4, #0
mov r1, #0
diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s
index 3caf2693..b91c0cfa 100644
--- a/arm9/modules/73/asm/module_73.s
+++ b/arm9/modules/73/asm/module_73.s
@@ -2407,7 +2407,7 @@ MOD73_021D88B0: ; 0x021D88B0
ldr r0, [r4, #0x20]
cmp r0, #0
beq _021D88C2
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
_021D88C2:
pop {r4, pc}
thumb_func_end MOD73_021D88B0
@@ -2440,7 +2440,7 @@ MOD73_021D88E4: ; 0x021D88E4
add r6, r0, #0
bl MOD73_021D88C4
ldr r0, [sp]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #8
ldr r4, _021D8974 ; =0x021DBD30
str r0, [r6]
@@ -2450,13 +2450,13 @@ MOD73_021D88E4: ; 0x021D88E4
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r0, #1
add r1, r0, #0
bl GX_EngineAToggleLayers
mov r0, #0
mov r1, #2
- bl FUN_020178BC
+ bl SetBgPriority
ldr r4, _021D8978 ; =0x021DBD68
add r3, sp, #0x18
mov r2, #0xe
@@ -2483,15 +2483,15 @@ _021D8944:
ldr r0, [r6]
add r2, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldrb r1, [r5]
ldr r0, [r6]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldrb r0, [r5]
ldr r3, [sp]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add r7, r7, #1
add r4, #0x1c
add r5, r5, #1
@@ -2511,16 +2511,16 @@ MOD73_021D8980: ; 0x021D8980
add r4, r0, #0
ldr r0, [r4]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4]
bl FreeToHeap
pop {r4, pc}
@@ -4792,10 +4792,10 @@ MOD73_021D9AB4: ; 0x021D9AB4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, [r4, #4]
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
pop {r4, pc}
thumb_func_end MOD73_021D9AB4
@@ -4874,7 +4874,7 @@ _021D9B02:
mov r1, #5
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
mov r0, #0xa
ldr r3, [sp, #0x1c]
str r0, [sp]
@@ -4890,7 +4890,7 @@ _021D9B02:
mov r1, #5
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r7, [r5, #0x1c]
mov r2, #0x13
ldr r0, [r5, #0x18]
@@ -4930,10 +4930,10 @@ _021D9B02:
blt _021D9B02
_021D9BCE:
ldr r0, [r5, #0xc]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [r5, #4]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_021D9BDC:
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
@@ -4966,7 +4966,7 @@ MOD73_021D9BE0: ; 0x021D9BE0
ldr r0, [r5, #4]
ldr r1, [r5, #8]
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xd
str r0, [sp]
mov r0, #0x14
@@ -4981,7 +4981,7 @@ MOD73_021D9BE0: ; 0x021D9BE0
ldr r1, [r5, #0xc]
mov r2, #4
mov r3, #6
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r5, #8]
mov r1, #0xf
bl FillWindowPixelBuffer
@@ -5017,15 +5017,15 @@ MOD73_021D9C7C: ; 0x021D9C7C
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #8]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
ldr r0, [r4, #0xc]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_020191A4
+ bl WindowArray_dtor
pop {r4, pc}
.align 2, 0
thumb_func_end MOD73_021D9C7C
@@ -5081,7 +5081,7 @@ _021D9CD8:
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [r5, #4]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r1, [r5, #0x24]
mov r2, #0
ldrh r0, [r1]
@@ -5097,7 +5097,7 @@ _021D9CD8:
mov r0, #3
str r0, [sp, #8]
ldr r0, [r5, #4]
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r3, r5, #0
str r4, [sp]
mov r0, #0x7a
@@ -5108,7 +5108,7 @@ _021D9CD8:
str r0, [r5, #0x28]
ldr r0, [r5, #4]
mov r1, #5
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x10
pop {r3, r4, r5, pc}
thumb_func_end MOD73_021D9CA0
@@ -5950,7 +5950,7 @@ _021DA2FA:
ldr r1, [r4, #8]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r4, #8]
mov r1, #0
bl FillWindowPixelBuffer
@@ -5973,10 +5973,10 @@ MOD73_021DA354: ; 0x021DA354
mov r6, #1
_021DA35C:
ldr r0, [r5, #8]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r5, #8]
add r1, r6, #0
- bl FUN_020191A4
+ bl WindowArray_dtor
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
@@ -6029,7 +6029,7 @@ MOD73_021DA374: ; 0x021DA374
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [r4, #4]
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
ldr r1, [sp, #0x10]
mov r2, #0
ldrh r0, [r1]
@@ -6045,12 +6045,12 @@ MOD73_021DA374: ; 0x021DA374
mov r0, #4
str r0, [sp, #8]
ldr r0, [r4, #4]
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r5, #0
bl FreeToHeap
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
thumb_func_end MOD73_021DA374
@@ -6170,7 +6170,7 @@ MOD73_021DA4D4: ; 0x021DA4D4
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4, #0xc]
mov r1, #0xf
bl FillWindowPixelBuffer
@@ -6210,9 +6210,9 @@ MOD73_021DA4D4: ; 0x021DA4D4
mov r3, #1
bl FUN_0200CCA4
ldr r0, [r4, #0xc]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, [r4, #0x10]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, pc}
nop
@@ -6386,7 +6386,7 @@ _021DA682:
mov r3, #0xa0
bl AddTextPrinterParameterized2
ldr r0, [r4, #0xc]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, pc}
nop
@@ -6442,7 +6442,7 @@ MOD73_021DA6BC: ; 0x021DA6BC
mov r3, #0x10
bl AddTextPrinterParameterized2
ldr r0, [r4, #0x10]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -6477,11 +6477,11 @@ MOD73_021DA754: ; 0x021DA754
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, [r4, #0xc]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, [r4, #0x10]
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
pop {r4, pc}
.align 2, 0
thumb_func_end MOD73_021DA754
@@ -6572,7 +6572,7 @@ _021DA7EC:
add r3, r1, #0
bl FUN_0200D0BC
ldr r0, [r4, #0x14]
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s
index 75afef9d..16e58c34 100644
--- a/arm9/modules/74/asm/module_74.s
+++ b/arm9/modules/74/asm/module_74.s
@@ -343,7 +343,7 @@ MOD74_021D7784: ; 0x021D7784
bl MOD74_021D82E8
bl NNS_GfdDoVramTransfer
ldr r0, [r4, #0x10]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _021D77A4 ; =0x027E0000
ldr r1, _021D77A8 ; =0x00003FF8
mov r0, #1
@@ -584,7 +584,7 @@ MOD74_021D7934: ; 0x021D7934
sub sp, #0x64
add r5, r0, #0
ldr r0, [r5]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0
ldr r4, _021D79C0 ; =0x021D84A0
str r0, [r5, #0x10]
@@ -594,7 +594,7 @@ MOD74_021D7934: ; 0x021D7934
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r4, _021D79C4 ; =0x021D8570
add r3, sp, #0x10
mov r2, #0xa
@@ -618,11 +618,11 @@ _021D7976:
lsr r1, r1, #0x18
add r2, r6, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
lsl r1, r4, #0x18
ldr r0, [r5, #0x10]
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldrh r0, [r5, #8]
add r7, r7, #1
add r4, r4, #1
@@ -635,7 +635,7 @@ _021D799C:
ldr r3, [r5]
mov r1, #0x20
add r2, r0, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldrh r0, [r5, #8]
cmp r0, #0
beq _021D79BA
@@ -643,7 +643,7 @@ _021D799C:
mov r0, #2
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
_021D79BA:
add sp, #0x64
pop {r4, r5, r6, r7, pc}
@@ -667,7 +667,7 @@ _021D79D8:
ldr r0, [r6, #0x10]
lsr r1, r1, #0x18
add r5, r5, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldrh r0, [r6, #8]
add r4, r4, #1
add r0, r0, #2
@@ -747,7 +747,7 @@ _021D7A5A:
bl NARC_dtor
ldr r0, [r5, #0x10]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -768,7 +768,7 @@ _021D7A9A:
ldr r0, [r6, #0x10]
add r1, r5, #0
add r2, r4, #0
- bl FUN_02019150
+ bl AddWindow
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -787,7 +787,7 @@ _021D7AC0:
ldr r0, [r6, #0x10]
add r1, r5, #0
add r2, r4, #0
- bl FUN_02019150
+ bl AddWindow
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -825,9 +825,9 @@ _021D7AFE:
add r5, #0x6c
_021D7B08:
add r0, r5, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, r6
@@ -1667,7 +1667,7 @@ MOD74_021D81E0: ; 0x021D81E0
bl FillWindowPixelBuffer
add r0, r4, #0
add r0, #0x8c
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD74_021D8388
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index a425935f..79c74bf7 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -49,7 +49,7 @@ MOD75_021E6BA0: ; 0x021E6BA0
add r0, r4, #0
bl MOD75_021E6FA4
mov r0, #6
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4]
add r0, r4, #0
add r0, #0xcc
@@ -530,7 +530,7 @@ MOD75_021E6FFC: ; 0x021E6FFC
MOD75_021E700C: ; 0x021E700C
push {r3, lr}
ldr r0, [r0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
bl FUN_0201C30C
bl FUN_0200BC30
ldr r3, _021E702C ; =0x027E0000
@@ -578,7 +578,7 @@ MOD75_021E7054: ; 0x021E7054
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021E71A0 ; =0x021EC440
add r3, sp, #0xa8
ldmia r5!, {r0, r1}
@@ -593,10 +593,10 @@ MOD75_021E7054: ; 0x021E7054
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021E71A4 ; =0x021EC45C
add r3, sp, #0x8c
ldmia r5!, {r0, r1}
@@ -611,7 +611,7 @@ MOD75_021E7054: ; 0x021E7054
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021E71A8 ; =0x021EC494
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -626,10 +626,10 @@ MOD75_021E7054: ; 0x021E7054
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021E71AC ; =0x021EC4E8
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -644,7 +644,7 @@ MOD75_021E7054: ; 0x021E7054
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021E71B0 ; =0x021EC478
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -659,10 +659,10 @@ MOD75_021E7054: ; 0x021E7054
add r0, r4, #0
mov r1, #4
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021E71B4 ; =0x021EC4B0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -677,7 +677,7 @@ MOD75_021E7054: ; 0x021E7054
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _021E71B8 ; =0x021EC4CC
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -692,27 +692,27 @@ MOD75_021E7054: ; 0x021E7054
str r0, [r3]
add r0, r4, #0
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #7
mov r2, #9
mov r3, #0x80
- bl FUN_0201AF50
+ bl ScheduleSetBgAffinePos
add r0, r4, #0
mov r1, #7
mov r2, #0xc
mov r3, #0x50
- bl FUN_0201AF50
+ bl ScheduleSetBgAffinePos
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #6
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #6
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0xd4
pop {r4, r5, pc}
nop
@@ -738,25 +738,25 @@ MOD75_021E71BC: ; 0x021E71BC
bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #6
add r1, r4, #0
bl FreeToHeapExplicit
@@ -1611,7 +1611,7 @@ _021E784E:
lsl r1, r1, #2
str r0, [r4, r1]
add r0, r4, #4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x20
pop {r4, r5, r6, pc}
nop
@@ -1731,7 +1731,7 @@ _021E794C:
bne _021E795C
add r5, #0x14
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_021E795C:
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -1962,7 +1962,7 @@ _021E7B12:
bl FillWindowPixelBuffer
add r0, r4, #0
add r0, #0x14
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
bl MOD75_021E8B70
add r0, r4, #0
@@ -2259,7 +2259,7 @@ _021E7D68:
bl MOD75_021E7E0C
ldr r0, [r4]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #1
pop {r4, pc}
_021E7D88:
@@ -2312,7 +2312,7 @@ _021E7DD4:
bl MOD75_021E7E0C
ldr r0, [r4]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
mov r0, #1
pop {r4, pc}
_021E7DF2:
@@ -2402,10 +2402,10 @@ MOD75_021E7E60: ; 0x021E7E60
mov r1, #0
bl FillWindowPixelBuffer
add r0, r4, #4
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
add r0, #0xf0
ldr r0, [r0]
@@ -2574,7 +2574,7 @@ _021E7FB6:
bl MOD75_021E84E4
ldr r0, [r5]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
_021E8004:
add r5, #0xfc
ldr r0, [r5]
@@ -2628,7 +2628,7 @@ _021E803E:
bl MOD75_021E84E4
ldr r0, [r5]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r5, #0
add r0, #0xc4
ldr r0, [r0]
@@ -2714,7 +2714,7 @@ _021E80EA:
bl MOD75_021E84E4
ldr r0, [r5]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add r0, r5, #0
add r0, #0xc4
ldr r0, [r0]
@@ -3045,7 +3045,7 @@ MOD75_021E8374: ; 0x021E8374
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
mov r1, #4
- bl FUN_0201AFBC
+ bl DoesPixelAtScreenXYMatchPtrVal
cmp r0, #0
bne _021E83B6
mov r0, #0
@@ -3089,7 +3089,7 @@ MOD75_021E83CC: ; 0x021E83CC
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
mov r1, #4
- bl FUN_0201AFBC
+ bl DoesPixelAtScreenXYMatchPtrVal
cmp r0, #0
bne _021E840E
mov r0, #0
@@ -3153,7 +3153,7 @@ _021E8460:
bl MOD75_021E84E4
ldr r0, [r5]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
ldrb r0, [r4, #6]
lsl r3, r0, #1
ldr r0, _021E84DC ; =0x00000424
@@ -3215,7 +3215,7 @@ MOD75_021E84E4: ; 0x021E84E4
add r5, r1, #0
mov r1, #4
add r6, r2, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r7, r0, #0
ldr r0, _021E856C ; =0x00000424
ldrb r0, [r4, r0]
@@ -3289,7 +3289,7 @@ MOD75_021E8574: ; 0x021E8574
add r4, r1, #0
ldr r0, [r0]
mov r1, #4
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
mov ip, r0
add r1, r4, #0
mov r0, #6
@@ -3329,7 +3329,7 @@ _021E85A8:
ldr r0, [sp]
mov r1, #4
ldr r0, [r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r3, r4, r5, r6, r7, pc}
nop
_021E85D4: .word 0x00000276
@@ -3452,7 +3452,7 @@ _021E869C:
_021E86B2:
ldr r0, [r5]
mov r1, #4
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_021E86BC: .word 0x00000424
@@ -3603,7 +3603,7 @@ MOD75_021E87B8: ; 0x021E87B8
ldrh r2, [r3, #0x1c]
ldrh r3, [r3, #0x1e]
mov r1, #4
- bl FUN_0201AFBC
+ bl DoesPixelAtScreenXYMatchPtrVal
cmp r0, #0
beq _021E87EE
add sp, #8
@@ -4366,7 +4366,7 @@ MOD75_021E8DAC: ; 0x021E8DAC
ldr r2, _021E8E08 ; =0x021EC5C0
mov r1, #1
mov r3, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
add r0, #0xfc
ldr r0, [r0]
@@ -4383,7 +4383,7 @@ _021E8DDA:
ldr r2, _021E8E0C ; =0x021EC5F2
mov r1, #1
mov r3, #0
- bl FUN_02018148
+ bl LoadRectToBgTilemapRect
add r0, r4, #0
add r0, #0xfc
ldr r0, [r0]
@@ -4392,7 +4392,7 @@ _021E8DDA:
_021E8DFC:
ldr r0, [r4]
mov r1, #1
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0xc
pop {r3, r4, pc}
.align 2, 0
@@ -4504,7 +4504,7 @@ _021E8ED2:
bl FUN_0200D0E0
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD75_021EC090
@@ -4834,7 +4834,7 @@ _021E917A:
bl FUN_0200D0E0
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD75_021EC090
@@ -5150,7 +5150,7 @@ _021E9402:
_021E940E:
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD75_021EC090
@@ -5507,7 +5507,7 @@ _021E96EC:
bl FUN_0200D0E0
add r0, r5, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
mov r1, #1
bl MOD75_021EC090
@@ -5542,7 +5542,7 @@ _021E9730:
bl MOD75_021E92BC
add r4, #0x64
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0xb
pop {r4, pc}
.align 2, 0
@@ -5577,7 +5577,7 @@ _021E9772:
bl FUN_0200D0E0
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD75_021EC090
@@ -5613,7 +5613,7 @@ MOD75_021E97A8: ; 0x021E97A8
bl MOD75_021EB344
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD75_021EC090
@@ -5638,7 +5638,7 @@ MOD75_021E97E4: ; 0x021E97E4
bl MOD75_021EB344
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD75_021EC090
@@ -5807,7 +5807,7 @@ _021E9952:
bl FUN_0200D0E0
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD75_021EC090
@@ -6258,7 +6258,7 @@ _021E9D00:
bl FUN_0200D0E0
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD75_021EC090
@@ -6446,7 +6446,7 @@ _021E9EA2:
bl FUN_0200D0E0
add r0, r5, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
mov r1, #1
bl MOD75_021EC090
@@ -6523,7 +6523,7 @@ _021E9F44:
bl MOD75_021E92BC
add r4, #0x64
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #0x16
pop {r4, pc}
.align 2, 0
@@ -6567,7 +6567,7 @@ _021E9F96:
bl FUN_0200D0E0
add r0, r4, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
mov r1, #1
bl MOD75_021EC090
@@ -6707,7 +6707,7 @@ MOD75_021EA0CC: ; 0x021EA0CC
ldr r0, [r4]
add r5, r1, #0
mov r1, #7
- bl FUN_02018878
+ bl GetBgAffineRotation
lsl r0, r0, #0x10
asr r0, r0, #0x10
add r0, r0, r5
@@ -6733,7 +6733,7 @@ _021EA0FE:
mov r1, #7
mov r2, #0
lsr r3, r3, #0x10
- bl FUN_0201AF08
+ bl ScheduleSetBgAffineRotation
ldr r0, _021EA114 ; =0x0000049A
strh r5, [r4, r0]
pop {r3, r4, r5, pc}
@@ -6862,7 +6862,7 @@ _021EA1EC:
ldrh r3, [r5, r3]
mov r1, #7
mov r2, #0
- bl FUN_0201AF08
+ bl ScheduleSetBgAffineRotation
ldr r0, _021EA2CC ; =0x000001F6
add r1, r6, #0
bl _s32_div_f
@@ -7424,7 +7424,7 @@ MOD75_021EA604: ; 0x021EA604
add r1, r4, #4
mov r2, #2
mov r3, #0xe
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x12
str r0, [sp]
mov r0, #0x20
@@ -7440,7 +7440,7 @@ MOD75_021EA604: ; 0x021EA604
ldr r0, [r4]
add r1, #0x14
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xd
str r0, [sp]
mov r0, #0x24
@@ -7455,7 +7455,7 @@ MOD75_021EA604: ; 0x021EA604
add r1, #0x24
mov r2, #2
mov r3, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x13
str r0, [sp]
mov r0, #0xe
@@ -7471,7 +7471,7 @@ MOD75_021EA604: ; 0x021EA604
add r1, #0x34
mov r2, #0
mov r3, #6
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x13
str r0, [sp]
mov r0, #0xd
@@ -7487,7 +7487,7 @@ MOD75_021EA604: ; 0x021EA604
add r1, #0x44
mov r2, #0
mov r3, #6
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xb
str r0, [sp]
mov r0, #0xc
@@ -7503,7 +7503,7 @@ MOD75_021EA604: ; 0x021EA604
ldr r0, [r4]
add r1, #0x54
add r3, r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x13
str r0, [sp]
mov r0, #0x1b
@@ -7519,7 +7519,7 @@ MOD75_021EA604: ; 0x021EA604
add r1, #0x64
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xd
str r0, [sp]
mov r0, #0xc
@@ -7535,7 +7535,7 @@ MOD75_021EA604: ; 0x021EA604
add r1, #0x74
mov r2, #0
mov r3, #0x13
- bl FUN_02019064
+ bl AddWindowParameterized
mov r3, #1
add r1, r4, #0
str r3, [sp]
@@ -7550,7 +7550,7 @@ MOD75_021EA604: ; 0x021EA604
str r0, [sp, #0x10]
ldr r0, [r4]
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x13
str r0, [sp]
mov r0, #7
@@ -7566,7 +7566,7 @@ MOD75_021EA604: ; 0x021EA604
add r1, #0x94
mov r2, #0
mov r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xc
str r0, [sp]
mov r0, #0xb
@@ -7582,7 +7582,7 @@ MOD75_021EA604: ; 0x021EA604
add r4, #0xa4
add r1, r4, #0
mov r3, #1
- bl FUN_02019064
+ bl AddWindowParameterized
add sp, #0x14
pop {r3, r4, pc}
nop
@@ -7604,7 +7604,7 @@ MOD75_021EA7A0: ; 0x021EA7A0
_021EA7A6:
lsl r0, r4, #4
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -7689,7 +7689,7 @@ _021EA828:
mov r1, #2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0xe
str r0, [sp]
mov r0, #1
@@ -7705,7 +7705,7 @@ _021EA828:
mov r1, #2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add r0, r4, #1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -7817,7 +7817,7 @@ _021EA936:
bl MOD75_021EA880
add r4, #0x24
add r0, r4, #0
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
pop {r3, r4, r5, r6, r7, pc}
nop
_021EA94C: .word 0x00000429
@@ -7901,7 +7901,7 @@ _021EA9A8:
bl BlitBitmapRectToWindow
add r5, #0x54
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r0, #6
add r1, r7, #0
bl FreeToHeapExplicit
@@ -7990,7 +7990,7 @@ _021EAA4C:
_021EAA8C:
add r5, #0x54
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r1, [sp, #0x18]
mov r0, #6
bl FreeToHeapExplicit
@@ -8850,7 +8850,7 @@ MOD75_021EB130: ; 0x021EB130
ldr r0, [r5]
add r1, #0xb4
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #4
str r0, [sp, #0x14]
b _021EB1B0
@@ -8875,7 +8875,7 @@ _021EB180:
add r1, #0xb4
mov r2, #0
mov r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #3
str r0, [sp, #0x14]
_021EB1B0:
@@ -8981,7 +8981,7 @@ _021EB22E:
bl MOD75_021EAB44
add r0, r5, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r1, r5, #0
add r1, #0xc4
ldr r1, [r1]
@@ -9048,7 +9048,7 @@ _021EB298:
ldr r0, [sp, #0x18]
bl String_dtor
add r0, r4, r6
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
_021EB31E:
add r0, r5, #0
ldr r2, _021EB340 ; =0x000003F7
@@ -9058,7 +9058,7 @@ _021EB31E:
bl FUN_0200CCA4
add r5, #0xb4
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -9095,7 +9095,7 @@ _021EB364:
mov r1, #1
bl FUN_0200D0E0
add r0, r4, r6
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
_021EB37A:
add r0, r5, #0
add r0, #0xb4
@@ -9103,7 +9103,7 @@ _021EB37A:
bl FUN_0200CCF8
add r0, r5, #0
add r0, #0xb4
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
mov r0, #0x56
lsl r0, r0, #2
ldr r0, [r5, r0]
@@ -9115,7 +9115,7 @@ _021EB37A:
bl ListMenuItems_dtor
add r0, r5, #0
add r0, #0xb4
- bl FUN_02019178
+ bl RemoveWindow
add r0, r5, #0
add r0, #0x14
mov r1, #0
@@ -9129,7 +9129,7 @@ _021EB37A:
bl MOD75_021EAAE8
add r0, r5, #0
add r0, #0x14
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
mov r1, #0
add r0, r5, #0
add r2, r1, #0
@@ -9181,7 +9181,7 @@ MOD75_021EB3D8: ; 0x021EB3D8
bl AddTextPrinterParameterized2
add r5, #0x14
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
bl String_dtor
add r0, r6, #0
@@ -9259,7 +9259,7 @@ MOD75_021EB454: ; 0x021EB454
bl AddTextPrinterParameterized
add r5, #0x34
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
bl String_dtor
add r0, r6, #0
@@ -9320,7 +9320,7 @@ MOD75_021EB504: ; 0x021EB504
mov r3, #0x10
bl AddTextPrinterParameterized
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r6, #0
bl String_dtor
add sp, #0xc
@@ -9342,13 +9342,13 @@ MOD75_021EB580: ; 0x021EB580
bl FUN_0200CCF8
add r0, r4, #0
add r0, #0x34
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r4, #0
add r0, #0x94
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r4, #0x14
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r4, pc}
thumb_func_end MOD75_021EB580
@@ -9632,7 +9632,7 @@ _021EB722:
sub r3, r5, r3
bl AddTextPrinterParameterized
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r6, #0
bl String_dtor
add sp, #0xc
@@ -9737,7 +9737,7 @@ _021EB866:
sub r3, r5, r3
bl AddTextPrinterParameterized
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r6, #0
bl String_dtor
add sp, #0xc
@@ -9831,7 +9831,7 @@ MOD75_021EB8E8: ; 0x021EB8E8
sub r3, r5, r3
bl AddTextPrinterParameterized
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
index 06e6303e..16cdc8de 100644
--- a/arm9/modules/76/asm/module_76.s
+++ b/arm9/modules/76/asm/module_76.s
@@ -50,7 +50,7 @@ MOD76_021D74E0: ; 0x021D74E0
str r1, [r4, r0]
add r0, r4, #0
add r0, #0xc8
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r4, #0
bl MOD76_021D8CD4
ldr r0, _021D7564 ; =MOD76_021D76E8
@@ -192,7 +192,7 @@ MOD76_021D7638: ; 0x021D7638
and r0, r1
str r0, [r2]
mov r0, #0x43
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
mov r0, #0
mov r1, #0x43
@@ -247,7 +247,7 @@ MOD76_021D76B8: ; 0x021D76B8
MOD76_021D76E8: ; 0x021D76E8
push {r3, lr}
ldr r0, [r0, #4]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
bl FUN_0201C30C
bl FUN_0200BC30
ldr r3, _021D7708 ; =0x027E0000
@@ -295,7 +295,7 @@ MOD76_021D7730: ; 0x021D7730
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D77D8 ; =0x021D8E88
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -310,10 +310,10 @@ MOD76_021D7730: ; 0x021D7730
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D77DC ; =0x021D8EC0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -328,10 +328,10 @@ MOD76_021D7730: ; 0x021D7730
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D77E0 ; =0x021D8EA4
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -346,15 +346,15 @@ MOD76_021D7730: ; 0x021D7730
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x43
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x64
pop {r4, r5, pc}
nop
@@ -373,13 +373,13 @@ MOD76_021D77E4: ; 0x021D77E4
bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
mov r0, #0x43
add r1, r4, #0
bl FreeToHeapExplicit
@@ -464,7 +464,7 @@ _021D78A8:
ldr r0, [r7, #4]
add r1, r5, #0
add r2, r4, #0
- bl FUN_02019150
+ bl AddWindow
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -498,7 +498,7 @@ MOD76_021D78E8: ; 0x021D78E8
add r5, #8
_021D78F0:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #0xf
@@ -901,19 +901,19 @@ MOD76_021D7BE0: ; 0x021D7BE0
mov r2, #0
mov r1, #2
add r3, r2, #0
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
add r0, r5, #0
add r0, #0x18
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x68
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0xb8
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #8
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _021D7CC4 ; =0x0000FFFF
cmp r4, r0
beq _021D7C2E
@@ -932,37 +932,37 @@ _021D7C3A:
add r3, r1, #0
mov r2, #0
add r3, #0xfe
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
add r0, r5, #0
add r0, #8
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x28
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x38
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x48
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x58
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0xa8
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x78
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x88
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x98
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x18
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r0, _021D7CC4 ; =0x0000FFFF
cmp r4, r0
beq _021D7CA6
@@ -1346,7 +1346,7 @@ _021D7F50:
str r0, [r5, r1]
add r5, #0xd8
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -1549,43 +1549,43 @@ _021D80BE:
bl FUN_0200C644
add r0, r5, #0
add r0, #0x28
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
add r0, #0x38
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
add r0, #0x48
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
add r0, #0x58
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
b _021D817E
_021D815E:
add r0, r5, #0
add r0, #0x28
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x38
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x48
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
add r0, r5, #0
add r0, #0x58
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
_021D817E:
add r0, r5, #0
add r0, #0xa8
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
add r0, #0x78
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r0, r5, #0
add r0, #0x88
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add r5, #0x98
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
@@ -1643,7 +1643,7 @@ MOD76_021D81AC: ; 0x021D81AC
bl MOD76_021D8300
add r0, r5, #0
add r0, #0x68
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
b _021D8232
_021D8222:
add r0, r5, #0
@@ -1651,11 +1651,11 @@ _021D8222:
bl MOD76_021D8300
add r0, r5, #0
add r0, #0x68
- bl FUN_0201958C
+ bl ClearWindowTilemapAndScheduleTransfer
_021D8232:
add r5, #0xb8
add r0, r5, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -1683,7 +1683,7 @@ MOD76_021D8244: ; 0x021D8244
mov r1, #2
add r2, r4, #0
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #5
str r0, [sp]
mov r0, #1
@@ -1699,7 +1699,7 @@ MOD76_021D8244: ; 0x021D8244
mov r1, #2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #6
str r0, [sp]
mov r0, #1
@@ -1715,7 +1715,7 @@ MOD76_021D8244: ; 0x021D8244
mov r1, #2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #6
str r0, [sp]
mov r0, #1
@@ -1730,7 +1730,7 @@ MOD76_021D8244: ; 0x021D8244
mov r1, #2
lsr r2, r2, #0x10
lsr r3, r3, #0x18
- bl FUN_02018540
+ bl FillBgTilemapRect
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -1755,7 +1755,7 @@ _021D82E0:
blo _021D82E0
ldr r0, [r5, #4]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r4, r5, r6, pc}
thumb_func_end MOD76_021D82D8
@@ -1794,7 +1794,7 @@ _021D832E:
_021D8344:
ldr r0, [r5, #4]
mov r1, #2
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
pop {r3, r4, r5, r6, r7, pc}
nop
_021D8350: .word 0x0000FFFF
@@ -2182,7 +2182,7 @@ MOD76_021D862C: ; 0x021D862C
bl MOD76_021D7CC8
add r0, r4, #0
add r0, #0xc8
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r1, [r4]
add r0, r4, #0
ldrh r1, [r1, #0x10]
@@ -2230,7 +2230,7 @@ MOD76_021D8688: ; 0x021D8688
bl MOD76_021D7CC8
add r0, r4, #0
add r0, #0xc8
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
ldr r1, [r4]
add r0, r4, #0
ldrh r1, [r1, #0x10]
diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s
index 0b432b90..697ffe65 100644
--- a/arm9/modules/77/asm/module_77.s
+++ b/arm9/modules/77/asm/module_77.s
@@ -76,7 +76,7 @@ _021D7540:
lsr r0, r0, #0x18
bl FUN_0201B2EC
ldr r0, [r5]
- bl FUN_02016B94
+ bl BgConfig_Alloc
ldr r1, _021D75F4 ; =0x0000C010
str r0, [r5, r1]
bl GX_BothDispOn
@@ -876,7 +876,7 @@ MOD77_021D7C44: ; 0x021D7C44
ldmia r4!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -1338,17 +1338,17 @@ MOD77_021D7FAC: ; 0x021D7FAC
ldr r0, [r5, r0]
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, _021D8208 ; =0x0000C010
mov r1, #6
ldr r0, [r5, r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, _021D8208 ; =0x0000C010
ldr r2, _021D8210 ; =0x021D8F98
ldr r0, [r5, r0]
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -1413,16 +1413,16 @@ MOD77_021D7FAC: ; 0x021D7FAC
mov r0, #6
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r1, _021D821C ; =0x00004753
mov r0, #6
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r1, _021D8208 ; =0x0000C010
ldr r2, _021D8220 ; =0x021D8F40
ldr r0, [r5, r1]
add r1, r1, #4
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd8
str r0, [sp]
mov r0, #0x20
@@ -1446,17 +1446,17 @@ MOD77_021D7FAC: ; 0x021D7FAC
ldr r0, [r5, r0]
ldr r2, _021D820C ; =0x021D8F7C
mov r1, #2
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, _021D8208 ; =0x0000C010
mov r1, #2
ldr r0, [r5, r0]
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, _021D8208 ; =0x0000C010
ldr r2, _021D8210 ; =0x021D8F98
ldr r0, [r5, r0]
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -1508,10 +1508,10 @@ MOD77_021D7FAC: ; 0x021D7FAC
mov r0, #2
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #2
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
ldr r1, [r5]
mov r0, #0x10
bl String_ctor
@@ -1533,29 +1533,29 @@ MOD77_021D7FAC: ; 0x021D7FAC
add r1, sp, #0x14
add r1, #2
add r2, r0, #0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r0, #2
add r1, sp, #0x14
add r2, r0, #0
mov r3, #0x84
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r0, #2
add r1, sp, #0x10
add r1, #2
add r2, r0, #0
mov r3, #0x86
- bl FUN_02017FB4
+ bl BG_LoadPlttData
mov r0, #2
add r1, sp, #0x10
add r2, r0, #0
mov r3, #0x9e
- bl FUN_02017FB4
+ bl BG_LoadPlttData
ldr r1, _021D8208 ; =0x0000C010
ldr r2, _021D823C ; =0x021D8F30
ldr r0, [r5, r1]
add r1, #0x24
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd8
str r0, [sp]
mov r0, #0x20
@@ -1618,26 +1618,26 @@ MOD77_021D8248: ; 0x021D8248
add r4, r0, #0
ldr r0, _021D8288 ; =0x0000C034
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _021D828C ; =0x0000C014
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _021D8290 ; =0x0000C010
mov r1, #2
ldr r0, [r4, r0]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _021D8290 ; =0x0000C010
mov r1, #6
ldr r0, [r4, r0]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _021D8290 ; =0x0000C010
mov r1, #3
ldr r0, [r4, r0]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _021D8290 ; =0x0000C010
mov r1, #7
ldr r0, [r4, r0]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
nop
_021D8288: .word 0x0000C034
@@ -1764,7 +1764,7 @@ MOD77_021D8370: ; 0x021D8370
add r6, r3, #0
ldr r0, [r5, r0]
str r1, [sp]
- bl FUN_02019150
+ bl AddWindow
ldrh r0, [r6, #0x10]
ldr r1, [r5]
bl ListMenuItems_ctor
@@ -1844,7 +1844,7 @@ MOD77_021D8418: ; 0x021D8418
str r3, [sp, #4]
ldr r7, [sp, #0x44]
ldr r6, [sp, #0x48]
- bl FUN_02019150
+ bl AddWindow
ldr r2, [sp, #0x40]
ldr r3, [r5]
mov r0, #0
@@ -1932,7 +1932,7 @@ MOD77_021D84D8: ; 0x021D84D8
bl FUN_0200CCF8
ldr r0, _021D8504 ; =0x0000C024
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _021D8508 ; =0x0000C054
mov r1, #0
ldr r0, [r4, r0]
@@ -1968,7 +1968,7 @@ MOD77_021D8510: ; 0x021D8510
add r1, #0x34
ldr r2, _021D85C8 ; =0x021D8F28
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd8
str r0, [sp]
mov r0, #0x30
@@ -2057,7 +2057,7 @@ MOD77_021D85E0: ; 0x021D85E0
add r1, #0x34
ldr r2, _021D868C ; =0x021D8F28
add r1, r5, r1
- bl FUN_02019150
+ bl AddWindow
mov r0, #0xd8
str r0, [sp]
mov r0, #0x30
@@ -2130,7 +2130,7 @@ MOD77_021D8698: ; 0x021D8698
bl FUN_0200CCF8
ldr r0, _021D86B0 ; =0x0000C044
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
.align 2, 0
_021D86B0: .word 0x0000C044
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index db04b6c2..878b206a 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -1401,7 +1401,7 @@ _0222DFE4:
add r4, r0, #0
bl memset
mov r0, #0x3e
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
ldr r0, _0222E10C ; =0x02237E24
add r2, sp, #0
@@ -1413,7 +1413,7 @@ _0222DFE4:
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r0, r7, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r0, #0xb
mov r1, #0x40
mov r2, #0x3e
@@ -2631,7 +2631,7 @@ MOD80_0222EA04: ; 0x0222EA04
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _0222EB00 ; =0x02236F04
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -2646,10 +2646,10 @@ MOD80_0222EA04: ; 0x0222EA04
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0222EB04 ; =0x02236EE8
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -2664,7 +2664,7 @@ MOD80_0222EA04: ; 0x0222EA04
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _0222EB08 ; =0x02236F20
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -2679,7 +2679,7 @@ MOD80_0222EA04: ; 0x0222EA04
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _0222EB0C ; =0x02236F3C
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -2694,10 +2694,10 @@ MOD80_0222EA04: ; 0x0222EA04
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0222EB10 ; =0x02236ECC
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -2712,17 +2712,17 @@ MOD80_0222EA04: ; 0x0222EA04
add r0, r4, #0
mov r1, #5
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -2745,19 +2745,19 @@ MOD80_0222EB14: ; 0x0222EB14
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD80_0222EB14
@@ -2947,7 +2947,7 @@ MOD80_0222EC98: ; 0x0222EC98
ldr r0, [r7, #4]
add r1, r7, r1
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _0222ED88 ; =0x00000EB8
mov r1, #0
add r0, r7, r0
@@ -2989,7 +2989,7 @@ _0222ECF2:
add r1, r5, #0
mov r2, #1
mov r3, #9
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -3015,7 +3015,7 @@ _0222ECF2:
ldr r0, [r7, #4]
add r1, r7, r1
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _0222ED94 ; =0x00000E98
mov r1, #0xf
add r0, r7, r0
@@ -3035,7 +3035,7 @@ _0222ECF2:
add r1, r7, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _0222ED98 ; =0x00000FB8
mov r1, #0xf
add r0, r7, r0
@@ -3056,23 +3056,23 @@ MOD80_0222ED9C: ; 0x0222ED9C
add r6, r0, #0
ldr r0, _0222EDD0 ; =0x00000FB8
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0222EDD4 ; =0x00000E98
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0222EDD8 ; =0x00000ED8
mov r4, #0
add r5, r6, r0
_0222EDB6:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #3
blt _0222EDB6
ldr r0, _0222EDDC ; =0x00000EB8
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, r5, r6, pc}
nop
_0222EDD0: .word 0x00000FB8
@@ -3550,7 +3550,7 @@ MOD80_0222F14C: ; 0x0222F14C
bl FUN_0200D0E0
ldr r0, _0222F1B0 ; =0x00000FB8
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, _0222F1B4 ; =0x00000D5C
mov r1, #1
ldr r0, [r4, r0]
@@ -3564,7 +3564,7 @@ _0222F18A:
bl FUN_0200D0E0
ldr r0, _0222F1B0 ; =0x00000FB8
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r1, #0
add r0, r4, #0
add r2, r1, #0
@@ -3959,10 +3959,10 @@ MOD80_0222F494: ; 0x0222F494
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0222F56C ; =0x02236FAC
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -3977,7 +3977,7 @@ MOD80_0222F494: ; 0x0222F494
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _0222F570 ; =0x02236F90
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -3992,7 +3992,7 @@ MOD80_0222F494: ; 0x0222F494
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _0222F574 ; =0x02236F74
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -4007,10 +4007,10 @@ MOD80_0222F494: ; 0x0222F494
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0222F578 ; =0x02236F58
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -4025,17 +4025,17 @@ MOD80_0222F494: ; 0x0222F494
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x8c
pop {r4, r5, pc}
nop
@@ -4051,19 +4051,19 @@ MOD80_0222F57C: ; 0x0222F57C
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD80_0222F57C
@@ -4245,7 +4245,7 @@ MOD80_0222F6EC: ; 0x0222F6EC
ldr r0, [r0, #4]
add r1, r1, r2
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r1, _0222F7A8 ; =0x00000E98
ldr r0, [sp, #0x14]
add r0, r0, r1
@@ -4268,7 +4268,7 @@ MOD80_0222F6EC: ; 0x0222F6EC
add r1, r1, r2
mov r2, #0
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r1, _0222F7B0 ; =0x00000F08
ldr r0, [sp, #0x14]
ldr r4, _0222F7B4 ; =0x02236FE4
@@ -4300,7 +4300,7 @@ _0222F754:
ldr r0, [r0, #4]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -4328,16 +4328,16 @@ MOD80_0222F7B8: ; 0x0222F7B8
add r5, r0, #0
ldr r0, _0222F7E4 ; =0x00000E98
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0222F7E8 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0222F7EC ; =0x00000F08
mov r4, #0
add r5, r5, r0
_0222F7D2:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #0xa
@@ -5286,10 +5286,10 @@ MOD80_0222FF6C: ; 0x0222FF6C
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02230024 ; =0x022370BC
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -5304,7 +5304,7 @@ MOD80_0222FF6C: ; 0x0222FF6C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _02230028 ; =0x022370A0
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -5319,10 +5319,10 @@ MOD80_0222FF6C: ; 0x0222FF6C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0223002C ; =0x02237084
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -5337,17 +5337,17 @@ MOD80_0222FF6C: ; 0x0222FF6C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x70
pop {r3, r4, r5, pc}
nop
@@ -5362,16 +5362,16 @@ MOD80_02230030: ; 0x02230030
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD80_02230030
@@ -5501,7 +5501,7 @@ MOD80_02230128: ; 0x02230128
ldr r0, [r0, #4]
add r1, r1, r2
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r1, _022301E4 ; =0x00000E98
ldr r0, [sp, #0x14]
add r0, r0, r1
@@ -5524,7 +5524,7 @@ MOD80_02230128: ; 0x02230128
add r1, r1, r2
mov r2, #0
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r1, _022301EC ; =0x00000F08
ldr r0, [sp, #0x14]
ldr r4, _022301F0 ; =0x022370F4
@@ -5556,7 +5556,7 @@ _02230190:
ldr r0, [r0, #4]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -5584,16 +5584,16 @@ MOD80_022301F4: ; 0x022301F4
add r5, r0, #0
ldr r0, _02230220 ; =0x00000E98
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02230224 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02230228 ; =0x00000F08
mov r4, #0
add r5, r5, r0
_0223020E:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #0xa
@@ -6279,10 +6279,10 @@ MOD80_02230760: ; 0x02230760
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0223080C ; =0x022371EC
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -6297,10 +6297,10 @@ MOD80_02230760: ; 0x02230760
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02230810 ; =0x022371B4
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -6315,25 +6315,25 @@ MOD80_02230760: ; 0x02230760
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #2
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x54
pop {r4, r5, pc}
nop
@@ -6347,19 +6347,19 @@ MOD80_02230814: ; 0x02230814
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD80_02230814
@@ -6511,7 +6511,7 @@ MOD80_02230944: ; 0x02230944
ldr r0, [r0, #4]
add r1, r1, r2
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r1, _02230A6C ; =0x00000EB8
ldr r0, [sp, #0x14]
add r0, r0, r1
@@ -6546,7 +6546,7 @@ MOD80_02230944: ; 0x02230944
ldr r0, [r0, #4]
add r1, r1, r2
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r1, _02230A74 ; =0x00000E98
ldr r0, [sp, #0x14]
add r0, r0, r1
@@ -6579,7 +6579,7 @@ _022309D2:
lsl r3, r3, #0x18
ldr r0, [r0, #4]
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -6620,7 +6620,7 @@ _02230A20:
lsl r3, r3, #0x18
ldr r0, [r0, #4]
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [sp, #0x18]
mov r1, #0
add r0, r0, r7
@@ -6648,16 +6648,16 @@ MOD80_02230A88: ; 0x02230A88
add r5, r0, #0
ldr r0, _02230AB4 ; =0x00000E98
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02230AB8 ; =0x00000EB8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02230ABC ; =0x00000F08
mov r4, #0
add r5, r5, r0
_02230AA2:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #8
@@ -7520,7 +7520,7 @@ MOD80_0223113C: ; 0x0223113C
add r1, r4, r1
mov r2, #0
mov r3, #0xf
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _022311BC ; =0x00000ED8
mov r1, #0
add r0, r4, r0
@@ -7539,7 +7539,7 @@ MOD80_0223113C: ; 0x0223113C
add r1, r4, r1
mov r2, #0
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _022311C4 ; =0x00000EE8
mov r1, #0
add r0, r4, r0
@@ -7657,10 +7657,10 @@ _02231266:
bl FUN_0200D0E0
ldr r0, _022312C0 ; =0x00000ED8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _022312C8 ; =0x00000EE8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _022312BC ; =0x000005DC
bl FUN_020054C8
mov r0, #0
@@ -7794,10 +7794,10 @@ _0223138C:
bl FUN_0200CCF8
ldr r0, _02231474 ; =0x00000ED8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0223146C ; =0x00000EE8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02231478 ; =0x00000B22
strh r5, [r4, r0]
mov r0, #0
@@ -7909,7 +7909,7 @@ MOD80_02231490: ; 0x02231490
add r1, r4, r1
mov r2, #0
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _022314E8 ; =0x00000ED8
mov r1, #0
add r0, r4, r0
@@ -7994,7 +7994,7 @@ _0223154A:
bl FUN_0200D0E0
ldr r0, _022315F8 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02231600 ; =0x000005DC
bl FUN_020054C8
mov r0, #0
@@ -8015,7 +8015,7 @@ _0223158E:
bl FUN_0200CCF8
ldr r0, _022315F8 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02231600 ; =0x000005DC
bl FUN_020054C8
ldr r0, _02231604 ; =0x00000B24
@@ -8085,7 +8085,7 @@ MOD80_02231614: ; 0x02231614
add r1, r4, r1
mov r2, #0
mov r3, #0xf
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _0223166C ; =0x00000ED8
mov r1, #0
add r0, r4, r0
@@ -8167,7 +8167,7 @@ _022316D0:
bl FUN_0200D0E0
ldr r0, _02231774 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0223177C ; =0x000005DC
bl FUN_020054C8
mov r0, #0
@@ -8188,7 +8188,7 @@ _0223170C:
bl FUN_0200CCF8
ldr r0, _02231774 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0223177C ; =0x000005DC
bl FUN_020054C8
ldr r0, _02231780 ; =0x00000B22
@@ -8642,7 +8642,7 @@ MOD80_02231AB0: ; 0x02231AB0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _02231BB4 ; =0x02237288
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -8657,10 +8657,10 @@ MOD80_02231AB0: ; 0x02231AB0
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02231BB8 ; =0x022372A4
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -8675,7 +8675,7 @@ MOD80_02231AB0: ; 0x02231AB0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _02231BBC ; =0x0223726C
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -8690,10 +8690,10 @@ MOD80_02231AB0: ; 0x02231AB0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02231BC0 ; =0x02237234
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -8708,10 +8708,10 @@ MOD80_02231AB0: ; 0x02231AB0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02231BC4 ; =0x02237250
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -8726,17 +8726,17 @@ MOD80_02231AB0: ; 0x02231AB0
add r0, r4, #0
mov r1, #5
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -8759,19 +8759,19 @@ MOD80_02231BC8: ; 0x02231BC8
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD80_02231BC8
@@ -9117,7 +9117,7 @@ MOD80_02231EA8: ; 0x02231EA8
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02231FDC ; =0x00000EB8
mov r1, #0
add r0, r4, r0
@@ -9146,7 +9146,7 @@ MOD80_02231EA8: ; 0x02231EA8
add r1, r4, r1
mov r2, #0
mov r3, #5
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02231FE4 ; =0x00000EC8
mov r1, #0
add r0, r4, r0
@@ -9168,7 +9168,7 @@ MOD80_02231EA8: ; 0x02231EA8
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02231FE8 ; =0x00000E98
mov r1, #0
add r0, r4, r0
@@ -9188,7 +9188,7 @@ MOD80_02231EA8: ; 0x02231EA8
add r1, r4, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02231FF0 ; =0x00000FB8
mov r1, #0
add r0, r4, r0
@@ -9208,7 +9208,7 @@ MOD80_02231EA8: ; 0x02231EA8
add r1, r4, r1
mov r2, #1
mov r3, #0x19
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02231FF8 ; =0x00000EE8
mov r1, #6
add r0, r4, r0
@@ -9237,7 +9237,7 @@ MOD80_02231EA8: ; 0x02231EA8
add r1, r4, r1
mov r2, #0
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
add sp, #0x14
pop {r3, r4, pc}
.align 2, 0
@@ -9261,22 +9261,22 @@ MOD80_0223200C: ; 0x0223200C
add r4, r0, #0
ldr r0, _02232044 ; =0x00000FB8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02232048 ; =0x00000EE8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0223204C ; =0x00000ED8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02232050 ; =0x00000E98
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02232054 ; =0x00000EC8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02232058 ; =0x00000EB8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
nop
_02232044: .word 0x00000FB8
@@ -11706,10 +11706,10 @@ MOD80_02233358: ; 0x02233358
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02233430 ; =0x0223743C
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -11724,7 +11724,7 @@ MOD80_02233358: ; 0x02233358
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _02233434 ; =0x02237458
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -11739,7 +11739,7 @@ MOD80_02233358: ; 0x02233358
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r5, _02233438 ; =0x02237404
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -11754,10 +11754,10 @@ MOD80_02233358: ; 0x02233358
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0223343C ; =0x022373E8
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -11772,17 +11772,17 @@ MOD80_02233358: ; 0x02233358
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x8c
pop {r4, r5, pc}
nop
@@ -11798,19 +11798,19 @@ MOD80_02233440: ; 0x02233440
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD80_02233440
@@ -11904,7 +11904,7 @@ MOD80_02233500: ; 0x02233500
ldr r0, [r7, #4]
add r1, r7, r1
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _022335CC ; =0x00000EB8
mov r1, #0
add r0, r7, r0
@@ -11934,7 +11934,7 @@ MOD80_02233500: ; 0x02233500
ldr r0, [r7, #4]
add r1, r7, r1
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _022335D4 ; =0x00000E98
mov r1, #0
add r0, r7, r0
@@ -11965,7 +11965,7 @@ _0223357E:
ldr r0, [r7, #4]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
mov r1, #0
bl FillWindowPixelBuffer
@@ -11998,17 +11998,17 @@ MOD80_022335E0: ; 0x022335E0
add r5, r6, r0
_022335EA:
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
add r4, r4, #1
add r5, #0x10
cmp r4, #6
blt _022335EA
ldr r0, _02233610 ; =0x00000E98
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02233614 ; =0x00000EB8
add r0, r6, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, r5, r6, pc}
nop
_0223360C: .word 0x00000F08
@@ -12154,7 +12154,7 @@ _02233714:
add r1, r4, r1
mov r2, #0
mov r3, #0xf
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02233778 ; =0x00000ED8
mov r1, #0
add r0, r4, r0
@@ -12173,7 +12173,7 @@ _02233714:
add r1, r4, r1
mov r2, #0
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02233780 ; =0x00000EE8
mov r1, #0
add r0, r4, r0
@@ -12291,10 +12291,10 @@ _02233820:
bl FUN_0200D0E0
ldr r0, _02233884 ; =0x00000ED8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0223388C ; =0x00000EE8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r1, #5
add r0, r4, #0
add r2, r1, #0
@@ -12425,10 +12425,10 @@ _02233932:
bl FUN_0200CCF8
ldr r0, _02233A58 ; =0x00000ED8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02233A54 ; =0x00000EE8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0
str r0, [r4, #0x2c]
ldr r0, _02233A5C ; =0x000005DC
@@ -12468,10 +12468,10 @@ _0223398C:
bl FUN_0200CCF8
ldr r0, _02233A58 ; =0x00000ED8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02233A54 ; =0x00000EE8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02233A60 ; =0x00000B1C
strh r5, [r4, r0]
ldr r0, _02233A5C ; =0x000005DC
@@ -12573,7 +12573,7 @@ MOD80_02233A6C: ; 0x02233A6C
add r1, r4, r1
mov r2, #0
mov r3, #0x15
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02233AC4 ; =0x00000ED8
mov r1, #0
add r0, r4, r0
@@ -12658,7 +12658,7 @@ _02233B26:
bl FUN_0200D0E0
ldr r0, _02233BD4 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02233BDC ; =0x000005DC
bl FUN_020054C8
mov r0, #0
@@ -12679,7 +12679,7 @@ _02233B6A:
bl FUN_0200CCF8
ldr r0, _02233BD4 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02233BDC ; =0x000005DC
bl FUN_020054C8
ldr r3, _02233BE0 ; =0x00000F08
@@ -12748,7 +12748,7 @@ MOD80_02233BE8: ; 0x02233BE8
add r1, r4, r1
mov r2, #0
mov r3, #0xf
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02233C40 ; =0x00000ED8
mov r1, #0
add r0, r4, r0
@@ -12830,7 +12830,7 @@ _02233CA4:
bl FUN_0200D0E0
ldr r0, _02233D74 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02233D7C ; =0x000005DC
bl FUN_020054C8
mov r1, #0xfe
@@ -12866,7 +12866,7 @@ _02233CFA:
bl FUN_0200CCF8
ldr r0, _02233D74 ; =0x00000ED8
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02233D80 ; =0x00000B1C
add r1, r4, #0
add r0, r5, r0
@@ -14222,7 +14222,7 @@ MOD80_02234780: ; 0x02234780
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _0223488C ; =0x02237544
add r3, sp, #0x70
ldmia r5!, {r0, r1}
@@ -14237,10 +14237,10 @@ MOD80_02234780: ; 0x02234780
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02234890 ; =0x02237528
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -14255,10 +14255,10 @@ MOD80_02234780: ; 0x02234780
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02234894 ; =0x0223757C
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -14273,10 +14273,10 @@ MOD80_02234780: ; 0x02234780
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02234898 ; =0x02237560
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -14291,10 +14291,10 @@ MOD80_02234780: ; 0x02234780
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0223489C ; =0x0223750C
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -14309,17 +14309,17 @@ MOD80_02234780: ; 0x02234780
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -14342,19 +14342,19 @@ MOD80_022348A0: ; 0x022348A0
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD80_022348A0
@@ -14405,10 +14405,10 @@ MOD80_022348CC: ; 0x022348CC
bne _02234944
mov r0, #4
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x10
mov r1, #0
bl GX_EngineBToggleLayers
@@ -14445,7 +14445,7 @@ MOD80_02234958: ; 0x02234958
add r1, r4, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02234990 ; =0x00000E98
mov r1, #0
add r0, r4, r0
@@ -14464,7 +14464,7 @@ MOD80_02234994: ; 0x02234994
bx r3
.align 2, 0
_0223499C: .word 0x00000E98
-_022349A0: .word FUN_02019178
+_022349A0: .word RemoveWindow
thumb_func_end MOD80_02234994
thumb_func_start MOD80_022349A4
@@ -17886,13 +17886,13 @@ MOD80_02236378: ; 0x02236378
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0
bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02236458 ; =0x0223761C
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -17907,7 +17907,7 @@ MOD80_02236378: ; 0x02236378
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0
bl GX_EngineAToggleLayers
@@ -17925,13 +17925,13 @@ MOD80_02236378: ; 0x02236378
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0
bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02236460 ; =0x02237600
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -17946,7 +17946,7 @@ MOD80_02236378: ; 0x02236378
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0
bl GX_EngineBToggleLayers
@@ -17954,12 +17954,12 @@ MOD80_02236378: ; 0x02236378
mov r1, #0x20
add r2, r0, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x3e
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0x10
mov r1, #0
bl GX_EngineBToggleLayers
@@ -17977,16 +17977,16 @@ MOD80_02236464: ; 0x02236464
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD80_02236464
@@ -18097,10 +18097,10 @@ MOD80_02236488: ; 0x02236488
bl GfGfxLoader_LoadScrnData
mov r0, #0
add r1, r0, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x10
pop {r3, r4, r5, pc}
thumb_func_end MOD80_02236488
@@ -18124,7 +18124,7 @@ MOD80_02236580: ; 0x02236580
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02236628 ; =0x00000EC8
mov r1, #0
add r0, r4, r0
@@ -18145,7 +18145,7 @@ MOD80_02236580: ; 0x02236580
add r1, r4, r1
mov r2, #0
mov r3, #4
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _0223662C ; =0x00000EB8
mov r1, #0
add r0, r4, r0
@@ -18176,7 +18176,7 @@ MOD80_02236580: ; 0x02236580
add r1, r4, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _02236634 ; =0x00000E98
mov r1, #0
add r0, r4, r0
@@ -18196,13 +18196,13 @@ MOD80_02236638: ; 0x02236638
add r4, r0, #0
ldr r0, _02236658 ; =0x00000E98
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _0223665C ; =0x00000EB8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _02236660 ; =0x00000EC8
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
nop
_02236658: .word 0x00000E98
diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s
index 599ede77..07e7ce6f 100644
--- a/arm9/modules/81/asm/module_81.s
+++ b/arm9/modules/81/asm/module_81.s
@@ -41,7 +41,7 @@ _02237E84:
mov r0, #0
str r0, [r4, #4]
mov r0, #0x39
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #8]
mov r0, #0x19
lsl r0, r0, #4
@@ -944,7 +944,7 @@ MOD81_02238588: ; 0x02238588
mov r1, #2
str r0, [sp]
ldr r0, [r4]
- bl FUN_02017BD0
+ bl SetBgAffine
ldr r0, [r4, #0x1c]
add r2, sp, #4
lsl r1, r0, #2
@@ -954,7 +954,7 @@ MOD81_02238588: ; 0x02238588
mov r1, #6
str r0, [sp]
ldr r0, [r4]
- bl FUN_02017BD0
+ bl SetBgAffine
add sp, #0x14
pop {r3, r4, pc}
.align 2, 0
@@ -1048,7 +1048,7 @@ _02238648:
lsr r1, r1, #0x18
add r2, r7, #0
add r3, r6, #0
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
ldr r1, [sp, #0x20]
add r0, r4, #0
bl ReleaseBoxMonLock
@@ -1130,7 +1130,7 @@ _022386DE:
lsr r1, r1, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_02018170
+ bl CopyToBgTilemapRect
mov r0, #0xa
str r0, [sp]
str r0, [sp, #4]
@@ -1146,7 +1146,7 @@ _022386DE:
lsr r1, r1, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r7, #0
bl FreeToHeap
_02238746:
@@ -2059,16 +2059,16 @@ MOD81_02238D64: ; 0x02238D64
bl MOD81_0223890C
ldr r0, [r4, #0x40]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x40]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x40]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
add r0, #0x44
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x10]
cmp r0, #0
beq _02238DB6
@@ -2158,22 +2158,22 @@ MOD81_02238E44: ; 0x02238E44
and r0, r1
strh r0, [r2]
ldr r0, _0223904C ; =0x0223D00C
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r4, #0x40]
ldr r2, _02239050 ; =0x0223D01C
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x40]
ldr r2, _02239054 ; =0x0223D038
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x40]
ldr r2, _02239054 ; =0x0223D038
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
add r1, r0, #0
bl GX_EngineAToggleLayers
@@ -2189,7 +2189,7 @@ MOD81_02238E44: ; 0x02238E44
str r2, [sp]
ldr r0, [r4, #0x40]
add r3, r1, #0
- bl FUN_02017F48
+ bl BG_FillCharDataRange
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -2199,7 +2199,7 @@ MOD81_02238E44: ; 0x02238E44
ldr r0, [r4, #0x40]
mov r1, #1
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r4]
bl MOD81_02238844
lsl r0, r0, #0x18
@@ -2225,7 +2225,7 @@ MOD81_02238E44: ; 0x02238E44
ldr r0, [r4, #0x40]
add r1, #0x44
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
add r0, #0x44
mov r1, #0xf
@@ -2306,7 +2306,7 @@ MOD81_02238E44: ; 0x02238E44
bl GfGfxLoader_GXLoadPal
ldr r0, [r4, #0x40]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r4, #0
bl MOD81_022392D8
mov r1, #0
@@ -2540,7 +2540,7 @@ _0223918A:
bl AddTextPrinterParameterized
add r0, r4, #0
add r0, #0x44
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
mov r0, #0
str r0, [r4, #8]
ldr r0, [r5]
@@ -3641,21 +3641,21 @@ MOD81_022399FC: ; 0x022399FC
and r0, r1
strh r0, [r2]
ldr r0, _02239C84 ; =0x0223D084
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
add r0, r4, #0
add r0, #0xc0
ldr r0, [r0]
ldr r2, _02239C88 ; =0x0223D0B4
mov r1, #2
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
add r0, #0xc0
ldr r0, [r0]
ldr r2, _02239C88 ; =0x0223D0B4
mov r1, #6
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
bl OS_DisableInterrupts
add r5, r0, #0
add r0, r4, #0
@@ -3664,14 +3664,14 @@ MOD81_022399FC: ; 0x022399FC
ldr r2, _02239C8C ; =0x0223D0D0
mov r1, #3
mov r3, #2
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
add r0, #0xc0
ldr r0, [r0]
ldr r2, _02239C8C ; =0x0223D0D0
mov r1, #7
mov r3, #2
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0
bl OS_RestoreInterrupts
mov r0, #0
@@ -3866,10 +3866,10 @@ _02239C02:
mov r1, #6
mov r2, #3
mvn r3, r3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -3882,7 +3882,7 @@ _02239C02:
ldr r0, [r0]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r4, #0
add r0, #0xc8
mov r1, #1
@@ -3938,21 +3938,21 @@ _02239CAA:
add r0, #0xc0
ldr r0, [r0]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
add r0, #0xc0
ldr r0, [r0]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
add r0, #0xc0
ldr r0, [r0]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r4, #0xc0
ldr r0, [r4]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD81_02239C94
@@ -4272,19 +4272,19 @@ MOD81_02239F58: ; 0x02239F58
mov r1, #2
mov r2, #3
mvn r3, r3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r4, #0xc0
ldr r0, [r4]
mov r1, #6
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #3
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r2, _02239FB0 ; =0x04000304
ldrh r1, [r2]
lsr r0, r2, #0xb
@@ -4493,7 +4493,7 @@ MOD81_0223A104: ; 0x0223A104
str r1, [r4, r0]
ldr r0, [r4, r0]
mov r1, #2
- bl FUN_02017B54
+ bl Bg_GetYpos
lsl r1, r0, #0xc
mov r0, #0x56
lsl r0, r0, #2
@@ -4501,7 +4501,7 @@ MOD81_0223A104: ; 0x0223A104
sub r0, r0, #4
ldr r0, [r4, r0]
mov r1, #6
- bl FUN_02017B54
+ bl Bg_GetYpos
mov r1, #0x57
lsl r0, r0, #0xc
lsl r1, r1, #2
@@ -4564,7 +4564,7 @@ MOD81_0223A178: ; 0x0223A178
mov r1, #2
mov r2, #3
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r5, #0x55
lsl r5, r5, #2
add r3, r5, #0
@@ -4577,7 +4577,7 @@ MOD81_0223A178: ; 0x0223A178
sub r3, r6, r3
mov r2, #3
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #0x59
lsl r1, r1, #2
mov r0, #2
@@ -5710,17 +5710,17 @@ MOD81_0223AA68: ; 0x0223AA68
and r0, r1
strh r0, [r2]
ldr r0, _0223ABB8 ; =0x0223D11C
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r4, #0x24]
ldr r2, _0223ABBC ; =0x0223D13C
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x24]
ldr r2, _0223ABBC ; =0x0223D13C
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4]
bl MOD81_02238828
cmp r0, #3
@@ -5838,12 +5838,12 @@ _0223AAE8:
ldr r0, [r4, #0x24]
add r2, r1, #0
add r3, #0xfd
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x24]
mov r1, #7
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -5866,10 +5866,10 @@ MOD81_0223ABC0: ; 0x0223ABC0
add r4, r0, #0
ldr r0, [r4, #0x24]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x24]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD81_0223ABC0
@@ -6491,13 +6491,13 @@ MOD81_0223B090: ; 0x0223B090
mov r1, #3
ldr r0, [r4, #0x24]
add r2, r1, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #0x24]
mov r1, #7
add r3, #0xfd
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x28]
add r1, sp, #0
bl MOD81_02238C70
@@ -6732,32 +6732,32 @@ MOD81_0223B264: ; 0x0223B264
orr r0, r1
strh r0, [r2]
ldr r0, _0223B464 ; =0x0223D188
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r4, #0xc]
ldr r2, _0223B468 ; =0x0223D198
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
ldr r2, _0223B468 ; =0x0223D198
mov r1, #5
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
ldr r2, _0223B46C ; =0x0223D1B4
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
ldr r2, _0223B470 ; =0x0223D1D0
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
ldr r2, _0223B470 ; =0x0223D1D0
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -6830,21 +6830,21 @@ MOD81_0223B264: ; 0x0223B264
ldr r0, [r4, #0xc]
mov r2, #0
add r3, r1, #0
- bl FUN_02017F48
+ bl BG_FillCharDataRange
mov r0, #0xc8
str r0, [sp]
ldr r0, [r4, #0xc]
mov r1, #5
mov r2, #0
mov r3, #1
- bl FUN_02017F48
+ bl BG_FillCharDataRange
mov r0, #0xc8
str r0, [sp]
ldr r0, [r4, #0xc]
mov r1, #2
mov r2, #0
mov r3, #1
- bl FUN_02017F48
+ bl BG_FillCharDataRange
mov r1, #0
str r1, [sp]
ldr r0, [r4]
@@ -6874,7 +6874,7 @@ MOD81_0223B264: ; 0x0223B264
ldr r0, [r4, #0xc]
mov r1, #1
mov r2, #0xc8
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0
str r3, [sp]
mov r0, #0x20
@@ -6885,7 +6885,7 @@ MOD81_0223B264: ; 0x0223B264
ldr r0, [r4, #0xc]
mov r1, #5
mov r2, #0xc8
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r3, #0
str r3, [sp]
mov r0, #0x20
@@ -6896,7 +6896,7 @@ MOD81_0223B264: ; 0x0223B264
ldr r0, [r4, #0xc]
mov r1, #2
mov r2, #0xc8
- bl FUN_02018540
+ bl FillBgTilemapRect
mov r0, #0x14
str r0, [sp]
mov r1, #0
@@ -6923,13 +6923,13 @@ MOD81_0223B264: ; 0x0223B264
bl MOD81_022386BC
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, [r4, #0xc]
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r0, [r4, #0xc]
ldr r2, _0223B474 ; =0xFFFFFE80
mov r1, #0x50
@@ -6958,22 +6958,22 @@ MOD81_0223B478: ; 0x0223B478
add r4, r0, #0
ldr r0, [r4, #0xc]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD81_0223B478
@@ -6989,18 +6989,18 @@ MOD81_0223B4B0: ; 0x0223B4B0
mov r1, #2
mov r2, #3
and r3, r6
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r5, #0
mov r1, #1
mov r2, #3
add r3, r4, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r4, #0xc0
add r0, r5, #0
mov r1, #5
mov r2, #3
add r3, r4, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r4, r5, r6, pc}
nop
_0223B4E4: .word 0x000001FF
@@ -7219,17 +7219,17 @@ MOD81_0223B670: ; 0x0223B670
orr r0, r1
strh r0, [r2]
ldr r0, _0223B7C8 ; =0x0223D21C
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r4, #0x24]
ldr r2, _0223B7CC ; =0x0223D23C
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x24]
ldr r2, _0223B7CC ; =0x0223D23C
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4]
bl MOD81_02238828
cmp r0, #3
@@ -7346,13 +7346,13 @@ _0223B6F0:
ldr r0, [r4, #0x24]
add r2, r1, #0
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #0x24]
mov r1, #7
add r3, #0xfd
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -7378,10 +7378,10 @@ MOD81_0223B7D0: ; 0x0223B7D0
add r4, r0, #0
ldr r0, [r4, #0x24]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x24]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD81_0223B7D0
@@ -8018,12 +8018,12 @@ _0223BCC6:
ldr r0, [r4, #0x24]
add r2, r1, #0
add r3, #0xfd
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x24]
mov r1, #7
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x28]
add r1, sp, #0
bl MOD81_02238C70
@@ -8381,29 +8381,29 @@ MOD81_0223BF74: ; 0x0223BF74
orr r0, r1
strh r0, [r2]
ldr r0, _0223C194 ; =0x0223D294
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r4, #0xc]
ldr r2, _0223C198 ; =0x0223D2B4
mov r1, #2
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
ldr r2, _0223C198 ; =0x0223D2B4
mov r1, #6
mov r3, #1
- bl FUN_02016C18
+ bl InitBgFromTemplate
bl OS_DisableInterrupts
add r5, r0, #0
ldr r0, [r4, #0xc]
ldr r2, _0223C19C ; =0x0223D2D0
mov r1, #3
mov r3, #2
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0xc]
ldr r2, _0223C19C ; =0x0223D2D0
mov r1, #7
mov r3, #2
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r5, #0
bl OS_RestoreInterrupts
mov r0, #0
@@ -8579,21 +8579,21 @@ _0223C14A:
ldr r3, _0223C1A4 ; =0xFFFFFE80
mov r1, #2
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r2, #3
add r3, r2, #0
ldr r0, [r4, #0xc]
mov r1, #6
sub r3, #0xc3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r1, #3
ldr r0, [r4, #0xc]
add r2, r1, #0
mov r3, #0x43
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #0x10
mov r1, #1
bl GX_EngineAToggleLayers
@@ -8624,16 +8624,16 @@ MOD81_0223C1A8: ; 0x0223C1A8
_0223C1B8:
ldr r0, [r4, #0xc]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0xc]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD81_0223C1A8
@@ -8828,13 +8828,13 @@ MOD81_0223C350: ; 0x0223C350
ldr r0, [r4, #4]
mov r1, #2
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r3, [r4, #0x10]
ldr r0, [r4, #4]
mov r1, #6
mov r2, #3
asr r3, r3, #0xc
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #8]
sub r0, r0, #1
str r0, [r4, #8]
@@ -8844,12 +8844,12 @@ _0223C390:
mov r1, #2
mov r2, #3
mov r3, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #4]
mov r1, #6
mov r2, #3
mov r3, #0xc0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
add r0, r5, #0
bl MOD81_0223C3B0
pop {r3, r4, r5, pc}
@@ -9119,10 +9119,10 @@ MOD81_0223C580: ; 0x0223C580
_0223C5AC:
ldr r0, [r4, #0x44]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
add r0, #0x48
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x14]
cmp r0, #0
beq _0223C5C6
@@ -9215,17 +9215,17 @@ MOD81_0223C658: ; 0x0223C658
orr r0, r1
strh r0, [r2]
ldr r0, _0223C810 ; =0x0223D32C
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r4, #0x44]
ldr r2, _0223C814 ; =0x0223D33C
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x44]
ldr r2, _0223C818 ; =0x0223D358
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
add r1, r0, #0
bl GX_EngineAToggleLayers
@@ -9241,7 +9241,7 @@ MOD81_0223C658: ; 0x0223C658
str r2, [sp]
ldr r0, [r4, #0x44]
add r3, r1, #0
- bl FUN_02017F48
+ bl BG_FillCharDataRange
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -9251,7 +9251,7 @@ MOD81_0223C658: ; 0x0223C658
ldr r0, [r4, #0x44]
mov r1, #1
add r3, r2, #0
- bl FUN_02018540
+ bl FillBgTilemapRect
ldr r0, [r4]
bl MOD81_02238844
lsl r0, r0, #0x18
@@ -9277,7 +9277,7 @@ MOD81_0223C658: ; 0x0223C658
ldr r0, [r4, #0x44]
add r1, #0x48
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r4, #0
add r0, #0x48
mov r1, #0xf
@@ -9292,7 +9292,7 @@ MOD81_0223C658: ; 0x0223C658
bl GfGfxLoader_GXLoadPal
ldr r0, [r4, #0x44]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -9653,7 +9653,7 @@ _0223C9D0:
bl AddTextPrinterParameterized
add r0, r4, #0
add r0, #0x48
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
mov r0, #0
str r0, [r4, #8]
ldr r0, [r5]
diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s
index 20b82216..d67f1cb3 100644
--- a/arm9/modules/82/asm/module_82.s
+++ b/arm9/modules/82/asm/module_82.s
@@ -651,7 +651,7 @@ _0222DA48:
add r4, r0, #0
bl memset
mov r0, #0x44
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
ldr r0, _0222DB5C ; =0x0222FC0C
add r2, sp, #0
@@ -663,7 +663,7 @@ _0222DA48:
ldmia r3!, {r0, r1}
stmia r2!, {r0, r1}
add r0, r7, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r0, #0xb
mov r1, #0x20
mov r2, #0x44
@@ -1503,13 +1503,13 @@ MOD82_0222E15C: ; 0x0222E15C
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0
bl GX_EngineAToggleLayers
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0222E234 ; =0x0222F878
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -1524,7 +1524,7 @@ MOD82_0222E15C: ; 0x0222E15C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0
bl GX_EngineAToggleLayers
@@ -1542,13 +1542,13 @@ MOD82_0222E15C: ; 0x0222E15C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #1
mov r1, #0
bl GX_EngineBToggleLayers
add r0, r4, #0
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _0222E23C ; =0x0222F85C
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -1563,7 +1563,7 @@ MOD82_0222E15C: ; 0x0222E15C
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r0, #2
mov r1, #0
bl GX_EngineBToggleLayers
@@ -1571,12 +1571,12 @@ MOD82_0222E15C: ; 0x0222E15C
mov r1, #0x20
add r2, r0, #0
mov r3, #0x44
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #4
mov r1, #0x20
mov r2, #0
mov r3, #0x44
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
add sp, #0x70
pop {r3, r4, r5, pc}
nop
@@ -1591,16 +1591,16 @@ MOD82_0222E240: ; 0x0222E240
push {r4, lr}
add r4, r0, #0
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD82_0222E240
@@ -1711,10 +1711,10 @@ MOD82_0222E264: ; 0x0222E264
bl GfGfxLoader_LoadScrnData
mov r0, #0
add r1, r0, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
mov r0, #4
mov r1, #0
- bl FUN_02017FE4
+ bl BG_SetMaskColor
add sp, #0x10
pop {r3, r4, r5, pc}
thumb_func_end MOD82_0222E264
@@ -1739,7 +1739,7 @@ MOD82_0222E35C: ; 0x0222E35C
ldr r0, [r4, #4]
add r1, r4, r1
mov r2, #0
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x37
lsl r0, r0, #6
add r0, r4, r0
@@ -1761,7 +1761,7 @@ MOD82_0222E35C: ; 0x0222E35C
add r1, r4, r1
mov r2, #0
mov r3, #0x1a
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xda
lsl r0, r0, #4
add r0, r4, r0
@@ -1783,7 +1783,7 @@ MOD82_0222E35C: ; 0x0222E35C
add r1, r4, r1
mov r2, #0
mov r3, #0x1a
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xd9
lsl r0, r0, #4
add r0, r4, r0
@@ -1805,7 +1805,7 @@ MOD82_0222E35C: ; 0x0222E35C
ldr r0, [r4, #4]
add r1, r4, r1
mov r3, #4
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0xdb
lsl r0, r0, #4
add r0, r4, r0
@@ -1837,7 +1837,7 @@ MOD82_0222E35C: ; 0x0222E35C
add r1, r4, r1
mov r2, #0
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
mov r0, #0x36
lsl r0, r0, #6
add r0, r4, r0
@@ -1857,23 +1857,23 @@ MOD82_0222E474: ; 0x0222E474
mov r0, #0x36
lsl r0, r0, #6
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xdb
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xd9
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0xda
lsl r0, r0, #4
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x37
lsl r0, r0, #6
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
thumb_func_end MOD82_0222E474
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 0527c923..3f6affe6 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -18,7 +18,7 @@ MOD83_0222D5C4: ; 0x0222D5C4
mov r0, #5
lsl r0, r0, #6
add r0, r5, r0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0222D63C
mov r1, #0x4f
@@ -86,7 +86,7 @@ _0222D63C:
mov r0, #5
lsl r0, r0, #6
add r0, r5, r0
- bl FUN_02019178
+ bl RemoveWindow
_0222D662:
add sp, #0x5c
mov r0, #1
@@ -354,7 +354,7 @@ _0222D832:
bl FUN_0200CB00
ldr r0, [r4]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r1, _0222D99C ; =0x00006B5A
ldr r0, _0222D9A0 ; =0x05000042
strh r1, [r0]
@@ -428,10 +428,10 @@ _0222D8B2:
ldr r3, [r5, #4]
bl MOD83_02238A38
ldr r0, [sp, #0x1c]
- bl FUN_0201AB14
+ bl GetWindowX
add r6, r0, #0
ldr r0, [sp, #0x1c]
- bl FUN_0201AB18
+ bl GetWindowY
add r7, r0, #0
ldr r0, [sp, #0x1c]
bl GetWindowWidth
@@ -446,7 +446,7 @@ _0222D8B2:
mov r1, #1
add r2, r6, #0
add r3, r7, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
mov r0, #1
mov r1, #0
bl GX_EngineAToggleLayers
@@ -485,7 +485,7 @@ _0222D94A:
beq _0222D994
add r1, #0x10
add r0, r4, r1
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #0x45
mov r1, #0x13
lsl r0, r0, #2
@@ -586,7 +586,7 @@ _0222DA18:
mov r1, #0
mov r2, #3
asr r3, r3, #0xc
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
mov r3, #0x41
lsl r3, r3, #2
ldr r0, [r4]
@@ -597,7 +597,7 @@ _0222DA18:
add r3, r4, r3
mov r2, #3
asr r3, r3, #0xc
- bl FUN_0201AEE4
+ bl ScheduleSetBgPosText
_0222DA48:
pop {r3, r4, r5, pc}
nop
@@ -626,7 +626,7 @@ _0222DA5C:
add r0, sp, #0x18
bl GX_SetBanks
add r0, sp, #8
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r1, #0
str r1, [sp]
mov r3, #0xf
@@ -645,7 +645,7 @@ _0222DA5C:
mov r0, #0
mov r1, #0x20
add r2, r0, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #2
lsl r0, r0, #0xe
str r0, [sp]
@@ -665,7 +665,7 @@ _0222DA5C:
strh r2, [r1]
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
mov r0, #0
str r0, [sp]
mov r1, #2
@@ -683,7 +683,7 @@ _0222DA5C:
mov r0, #2
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
bl FUN_0201BD5C
mov r0, #0
mov r1, #0x20
@@ -822,7 +822,7 @@ MOD83_0222DC10: ; 0x0222DC10
mov r1, #2
add r6, r2, #0
add r7, r3, #0
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
ldr r1, _0222DC5C ; =0x00004380
cmp r7, #2
bne _0222DC2A
@@ -849,7 +849,7 @@ _0222DC2A:
strh r1, [r0, r2]
ldr r0, [r5]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
pop {r3, r4, r5, r6, r7, pc}
nop
_0222DC5C: .word 0x00004380
@@ -863,7 +863,7 @@ MOD83_0222DC60: ; 0x0222DC60
add r4, r1, #0
add r6, r2, #0
mov r1, #2
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
lsl r1, r6, #5
add r3, r4, r1
ldr r1, _0222DC9C ; =0x00004384
@@ -882,7 +882,7 @@ MOD83_0222DC60: ; 0x0222DC60
strh r1, [r0, r2]
ldr r0, [r5]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
pop {r4, r5, r6, pc}
nop
_0222DC9C: .word 0x00004384
@@ -1477,11 +1477,11 @@ _0222E104:
beq _0222E188
ldr r0, [sp, #0x2c]
mov r1, #3
- bl FUN_0201AB1C
+ bl MoveWindowX
lsl r1, r5, #0x18
ldr r0, [sp, #0x2c]
lsr r1, r1, #0x18
- bl FUN_0201AB20
+ bl MoveWindowY
ldr r2, [sp, #0x54]
ldr r3, [sp, #0x58]
lsl r2, r2, #0x10
@@ -1583,7 +1583,7 @@ MOD83_0222E1F8: ; 0x0222E1F8
add r5, #0x5c
_0222E206:
add r0, r5, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _0222E294
ldr r0, [sp, #0xc]
@@ -1595,10 +1595,10 @@ _0222E206:
mov r3, #3
bl FUN_0200CCA4
add r0, r5, #0
- bl FUN_0201AB14
+ bl GetWindowX
str r0, [sp, #0x10]
add r0, r5, #0
- bl FUN_0201AB18
+ bl GetWindowY
str r0, [sp, #0x14]
add r0, r5, #0
bl GetWindowWidth
@@ -1613,7 +1613,7 @@ _0222E206:
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
mov r1, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
b _0222E294
_0222E256:
mov r1, #1
@@ -1622,10 +1622,10 @@ _0222E256:
mov r3, #2
bl FUN_0200CCA4
add r0, r5, #0
- bl FUN_0201AB14
+ bl GetWindowX
str r0, [sp, #0x18]
add r0, r5, #0
- bl FUN_0201AB18
+ bl GetWindowY
str r0, [sp, #0x1c]
add r0, r5, #0
bl GetWindowWidth
@@ -1640,7 +1640,7 @@ _0222E256:
ldr r2, [sp, #0x18]
ldr r3, [sp, #0x1c]
mov r1, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
_0222E294:
add r4, r4, #1
add r5, #0x10
@@ -1648,7 +1648,7 @@ _0222E294:
blo _0222E206
ldr r0, [r6]
mov r1, #0
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD83_0222E1F8
@@ -1699,7 +1699,7 @@ MOD83_0222E2E4: ; 0x0222E2E4
add r1, #0x5c
lsl r0, r0, #4
add r0, r1, r0
- bl FUN_0201AB18
+ bl GetWindowY
sub r0, r0, #1
lsl r4, r0, #3
ldr r0, [r5, #0x54]
@@ -1761,11 +1761,11 @@ MOD83_0222E338: ; 0x0222E338
str r0, [sp, #0xc]
_0222E362:
add r0, r5, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _0222E38E
add r0, r5, #0
- bl FUN_0201AB18
+ bl GetWindowY
sub r0, r0, #1
lsl r4, r0, #3
add r0, r5, #0
@@ -1833,9 +1833,9 @@ _0222E3EC:
cmp r0, #0
beq _0222E3FE
add r0, r5, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
_0222E3FE:
add r6, r6, #1
add r4, #0x10
@@ -1844,13 +1844,13 @@ _0222E3FE:
blo _0222E3EC
ldr r0, [r7]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7]
bl FreeToHeap
mov r0, #0
@@ -1895,7 +1895,7 @@ MOD83_0222E464: ; 0x0222E464
bl FUN_0201C30C
bl FUN_02009F80
add r0, r4, #0
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _0222E484 ; =MOD83_027E0000
ldr r1, _0222E488 ; =0x00003FF8
mov r0, #1
@@ -1928,7 +1928,7 @@ MOD83_0222E48C: ; 0x0222E48C
add r4, r0, #0
bl memset
mov r0, #0x51
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4]
mov r0, #0
add r1, r0, #0
@@ -2513,7 +2513,7 @@ _0222E960:
add r0, sp, #0x20
bl GX_SetBanks
add r0, sp, #0x10
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r1, #0
str r1, [sp]
mov r3, #0xf
@@ -2618,10 +2618,10 @@ _0222E960:
ldr r0, [r4, #4]
mov r1, #1
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r4, #0
bl MOD83_0222EA88
add sp, #0x48
@@ -2683,10 +2683,10 @@ MOD83_0222EA88: ; 0x0222EA88
ldr r0, [r4, #4]
mov r1, #4
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, [r4, #4]
mov r1, #4
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -2698,7 +2698,7 @@ MOD83_0222EB04: ; 0x0222EB04
sub sp, #0x5c
add r4, r0, #0
add r0, #0x18
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _0222EB4E
mov r0, #1
@@ -2739,7 +2739,7 @@ _0222EB4E:
bl FUN_0200CCF8
add r4, #0x18
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
add sp, #0x5c
mov r0, #0
pop {r3, r4, pc}
@@ -2994,40 +2994,40 @@ MOD83_0222ED88: ; 0x0222ED88
bl MOD83_02238E48
add r0, r4, #0
add r0, #0x18
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #1
bne _0222EDD0
add r0, r4, #0
add r0, #0x18
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x18
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x28
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x28
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x38
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
add r0, #0x38
- bl FUN_02019178
+ bl RemoveWindow
_0222EDD0:
ldr r0, [r4, #4]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
bl FreeToHeap
pop {r4, pc}
@@ -3045,7 +3045,7 @@ MOD83_0222EDF8: ; 0x0222EDF8
add r4, r0, #0
mov r0, #0x55
str r0, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
add r0, r5, #0
bl OverlayManager_GetField18
@@ -4620,21 +4620,21 @@ _0222FA62:
_0222FA70:
add r0, r7, #0
add r0, #0x18
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r7, #0
add r0, #0x18
- bl FUN_02019178
+ bl RemoveWindow
add r0, r7, #0
add r0, #0x58
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
beq _0222FA9C
add r0, r7, #0
add r0, #0x58
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r7, #0
add r0, #0x58
- bl FUN_02019178
+ bl RemoveWindow
_0222FA9C:
add r5, r7, #0
mov r6, #0
@@ -4645,9 +4645,9 @@ _0222FAA4:
cmp r0, #0
beq _0222FAB6
add r0, r5, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
_0222FAB6:
add r6, r6, #1
add r4, #0x10
@@ -4656,16 +4656,16 @@ _0222FAB6:
blt _0222FAA4
ldr r0, [r7]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r7]
bl FreeToHeap
pop {r3, r4, r5, r6, r7, pc}
@@ -4726,7 +4726,7 @@ MOD83_0222FB44: ; 0x0222FB44
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #1
bne _0222FB5A
add r0, r5, #0
@@ -5044,7 +5044,7 @@ _0222FD9C:
ldr r0, [r0]
add r1, r4, #0
mov r3, #0x17
- bl FUN_02019064
+ bl AddWindowParameterized
_0222FDC6:
add r0, r4, #0
mov r1, #1
@@ -5132,7 +5132,7 @@ _0222FE3E:
ldr r0, [r5]
add r1, r4, #0
mov r3, #0x17
- bl FUN_02019064
+ bl AddWindowParameterized
_0222FE76:
add r0, r4, #0
mov r1, #1
@@ -5186,7 +5186,7 @@ MOD83_0222FEA0: ; 0x0222FEA0
ldr r0, [r4]
add r1, r5, #0
mov r3, #0x17
- bl FUN_02019064
+ bl AddWindowParameterized
_0222FEE6:
add r0, r5, #0
mov r1, #1
@@ -5241,7 +5241,7 @@ MOD83_0222FF10: ; 0x0222FF10
ldr r0, [r4]
add r1, r5, #0
mov r3, #0x17
- bl FUN_02019064
+ bl AddWindowParameterized
_0222FF56:
add r0, r5, #0
mov r1, #1
@@ -5288,7 +5288,7 @@ MOD83_0222FF80: ; 0x0222FF80
ldr r0, [r0]
add r1, r4, #0
mov r3, #0x17
- bl FUN_02019064
+ bl AddWindowParameterized
_0222FFB4:
add r0, r4, #0
mov r1, #1
@@ -5512,7 +5512,7 @@ _0223013E:
ldr r0, [r5]
add r1, r4, #0
mov r3, #0xf
- bl FUN_02019064
+ bl AddWindowParameterized
_02230172:
add r0, r4, #0
mov r1, #1
@@ -5620,11 +5620,11 @@ MOD83_0223020C: ; 0x0223020C
lsr r1, r1, #0x18
mov r2, ip
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
lsl r1, r4, #0x18
add r0, r7, #0
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -5644,7 +5644,7 @@ MOD83_02230258: ; 0x02230258
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
mov r1, #0
mov r2, #0xf
add r0, r4, #0
@@ -5728,10 +5728,10 @@ MOD83_022302B4: ; 0x022302B4
add r0, r4, #0
mov r1, #5
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r4, #0
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -5788,10 +5788,10 @@ MOD83_02230330: ; 0x02230330
add r0, r4, #0
mov r1, #1
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r4, #0
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r4, #0
bl MOD83_022302B4
add sp, #0x10
@@ -5951,7 +5951,7 @@ _022304A8:
ldr r0, [r7]
add r1, r4, #0
mov r3, #8
- bl FUN_02019064
+ bl AddWindowParameterized
_022304E6:
add r0, r4, #0
mov r1, #1
@@ -6178,7 +6178,7 @@ MOD83_02230668: ; 0x02230668
strh r1, [r0]
add r0, r4, #0
add r0, #0x18
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _022306EC
mov r0, #0x13
@@ -6195,7 +6195,7 @@ MOD83_02230668: ; 0x02230668
ldr r0, [r4]
add r1, #0x18
mov r3, #2
- bl FUN_02019064
+ bl AddWindowParameterized
_022306EC:
add r1, r4, #0
add r0, r5, #0
@@ -6267,13 +6267,13 @@ _02230768:
_02230776:
ldr r0, _022307AC ; =0x00002624
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, _022307AC ; =0x00002624
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4]
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r0, _022307B0 ; =0x000005DC
bl FUN_020054C8
add r0, r6, #0
@@ -6309,7 +6309,7 @@ _022307C8:
bl GX_EngineAToggleLayers
ldr r0, [r5]
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0x56
bl ScrStrBufs_new
mov r1, #2
@@ -6515,7 +6515,7 @@ MOD83_02230954: ; 0x02230954
add r4, r0, #0
bl memset
mov r0, #0x56
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4]
bl GX_DisableEngineALayers
bl GX_DisableEngineBLayers
@@ -6737,7 +6737,7 @@ _02230B28:
_02230B6C:
add r0, r4, #0
add r0, #0x58
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _02230B9A
mov r0, #2
@@ -6755,7 +6755,7 @@ _02230B6C:
ldr r0, [r4]
add r1, #0x58
mov r3, #3
- bl FUN_02019064
+ bl AddWindowParameterized
_02230B9A:
bl MOD83_02239DA0
add r1, r4, #0
@@ -6895,7 +6895,7 @@ _02230CA0:
str r0, [r1]
add r0, r4, #0
add r0, #0x58
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _02230CFA
mov r0, #2
@@ -6913,7 +6913,7 @@ _02230CA0:
ldr r0, [r4]
add r1, #0x58
mov r3, #3
- bl FUN_02019064
+ bl AddWindowParameterized
_02230CFA:
add r1, r4, #0
add r2, r4, #0
@@ -7342,7 +7342,7 @@ _02231090:
_022310B8:
add r0, r4, #0
add r0, #0x58
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #0
bne _022310E6
mov r0, #2
@@ -7360,7 +7360,7 @@ _022310B8:
ldr r0, [r4]
add r1, #0x58
mov r3, #3
- bl FUN_02019064
+ bl AddWindowParameterized
_022310E6:
add r1, r4, #0
add r2, r4, #0
@@ -8105,7 +8105,7 @@ MOD83_022316C0: ; 0x022316C0
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #1
bne _022316D6
add r0, r5, #0
@@ -8120,7 +8120,7 @@ MOD83_022316D8: ; 0x022316D8
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
- bl FUN_02019048
+ bl WindowIsInUse
cmp r0, #1
bne _022316EE
add r0, r5, #0
@@ -8332,10 +8332,10 @@ MOD83_02231820: ; 0x02231820
add r0, r4, #0
mov r1, #1
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r4, #0
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -8520,11 +8520,11 @@ MOD83_02231A00: ; 0x02231A00
mov r0, #0xae
lsl r0, r0, #6
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0xae
lsl r0, r0, #6
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
pop {r4, pc}
.align 2, 0
_02231A40: .word 0x00002B6C
@@ -8865,9 +8865,9 @@ _02231CC2:
str r2, [r3, #4]
ldr r6, [r5, r0]
add r0, r7, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r7, #0
- bl FUN_02019178
+ bl RemoveWindow
add r1, r4, #1
mov r0, #4
sub r0, r0, r1
@@ -8900,7 +8900,7 @@ _02231CC2:
ldr r0, [r5, r0]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
add r0, r5, #0
add r1, sp, #0x14
add r2, r4, #1
@@ -9056,9 +9056,9 @@ _02231E2E:
cmp r0, #0
beq _02231E50
add r0, r6, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r6, #0
- bl FUN_02019178
+ bl RemoveWindow
_02231E50:
ldr r0, [sp, #0x1c]
add r7, #0x30
@@ -9114,7 +9114,7 @@ _02231E72:
ldr r0, [r5, r0]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
_02231EBE:
ldr r0, [r4, #0x14]
ldr r1, [r4, #0x1c]
@@ -9243,7 +9243,7 @@ MOD83_02231F88: ; 0x02231F88
ldr r0, [r5, r0]
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
_02231FD2:
ldr r1, [r4, #0x1c]
add r0, r6, #0
@@ -9393,7 +9393,7 @@ MOD83_022320D8: ; 0x022320D8
lsr r1, r1, #0x18
add r2, #0xc
add r3, r6, #0
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
add r0, r7, #0
bl FreeToHeap
add sp, #8
@@ -9509,11 +9509,11 @@ _0223219C:
ldr r0, [r5, r0]
mov r1, #3
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, _02232204 ; =0x0000299C
mov r1, #3
ldr r0, [r5, r0]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -9736,7 +9736,7 @@ MOD83_022323A8: ; 0x022323A8
add r4, r0, #0
bl memset
mov r0, #0x57
- bl FUN_02016B94
+ bl BgConfig_Alloc
ldr r1, _02232410 ; =0x0000299C
str r0, [r4, r1]
mov r0, #0x57
@@ -10584,10 +10584,10 @@ _02232A88:
bl MOD83_022316D8
ldr r0, _02232B7C ; =0x00002B70
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, _02232B7C ; =0x00002B70
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
mov r0, #3
str r0, [r5]
b _02232CF4
@@ -10626,10 +10626,10 @@ _02232AE2:
bl MOD83_022316D8
ldr r0, _02232B7C ; =0x00002B70
add r0, r4, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, _02232B7C ; =0x00002B70
add r0, r4, r0
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
mov r1, #0
mov r2, #3
@@ -11312,9 +11312,9 @@ _022330B6:
cmp r0, #0
beq _022330CA
add r0, r5, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r5, #0
- bl FUN_02019178
+ bl RemoveWindow
_022330CA:
add r6, r6, #1
add r4, #0x10
@@ -11326,10 +11326,10 @@ _022330CA:
cmp r1, #0
beq _022330EA
add r0, r7, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
ldr r0, _02233158 ; =0x00002B70
add r0, r7, r0
- bl FUN_02019178
+ bl RemoveWindow
_022330EA:
mov r0, #0xae
lsl r0, r0, #6
@@ -11337,28 +11337,28 @@ _022330EA:
cmp r1, #0
beq _02233104
add r0, r7, r0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
mov r0, #0xae
lsl r0, r0, #6
add r0, r7, r0
- bl FUN_02019178
+ bl RemoveWindow
_02233104:
ldr r0, _0223315C ; =0x0000299C
mov r1, #0
ldr r0, [r7, r0]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _0223315C ; =0x0000299C
mov r1, #1
ldr r0, [r7, r0]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _0223315C ; =0x0000299C
mov r1, #2
ldr r0, [r7, r0]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _0223315C ; =0x0000299C
mov r1, #3
ldr r0, [r7, r0]
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, _0223315C ; =0x0000299C
ldr r0, [r7, r0]
bl FreeToHeap
@@ -11453,7 +11453,7 @@ MOD83_022331E0: ; 0x022331E0
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _022332A4 ; =MOD83_0223A480
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -11468,10 +11468,10 @@ MOD83_022331E0: ; 0x022331E0
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _022332A8 ; =MOD83_0223A4B8
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -11486,10 +11486,10 @@ MOD83_022331E0: ; 0x022331E0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _022332AC ; =MOD83_0223A49C
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -11504,10 +11504,10 @@ MOD83_022331E0: ; 0x022331E0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _022332B0 ; =MOD83_0223A464
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -11522,10 +11522,10 @@ MOD83_022331E0: ; 0x022331E0
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x80
pop {r3, r4, r5, pc}
nop
@@ -15502,7 +15502,7 @@ _02234F3C:
ldr r0, [r0, #0x20]
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
_02234F7A:
mov r0, #2
tst r0, r4
@@ -17117,7 +17117,7 @@ MOD83_02235BF4: ; 0x02235BF4
ldr r0, [r5, #0x20]
add r6, r1, #0
mov r1, #2
- bl FUN_0201886C
+ bl GetBgTilemapBuffer
add r4, r0, #0
cmp r6, #0
beq _02235C18
@@ -17155,7 +17155,7 @@ _02235C2E:
blt _02235C1E
ldr r0, [r5, #0x20]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end MOD83_02235BF4
@@ -17427,7 +17427,7 @@ MOD83_02235E68: ; 0x02235E68
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _02235F2C ; =MOD83_0223A52C
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -17442,10 +17442,10 @@ MOD83_02235E68: ; 0x02235E68
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02235F30 ; =MOD83_0223A548
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -17460,10 +17460,10 @@ MOD83_02235E68: ; 0x02235E68
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02235F34 ; =MOD83_0223A564
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -17478,10 +17478,10 @@ MOD83_02235E68: ; 0x02235E68
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _02235F38 ; =MOD83_0223A580
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -17496,10 +17496,10 @@ MOD83_02235E68: ; 0x02235E68
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x80
pop {r3, r4, r5, pc}
nop
@@ -17601,10 +17601,10 @@ MOD83_02235FBC: ; 0x02235FBC
mov r1, #2
str r0, [sp, #8]
ldr r0, [r4, #0x20]
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, [r4, #0x20]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -17859,10 +17859,10 @@ _02236148:
mov r1, #2
str r0, [sp, #8]
ldr r0, [r6, #0x20]
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, [r6, #0x20]
mov r1, #2
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #2
mov r1, #0
bl GX_EngineAToggleLayers
@@ -17921,9 +17921,9 @@ MOD83_02236298: ; 0x02236298
mov r1, #0
bl FUN_0200D0E0
add r0, r4, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r4, #0
- bl FUN_02019178
+ bl RemoveWindow
_022362B4:
pop {r4, pc}
.align 2, 0
@@ -18097,16 +18097,16 @@ _022363E2:
bl GX_SwapDisplay
ldr r0, [r6, #0x20]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r6, #0x20]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r6, #0x20]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r6, #0x20]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r3, r4, r5, r6, r7, pc}
nop
_0223643C: .word 0x00000478
@@ -18219,7 +18219,7 @@ _02236520:
bl FUN_0201C30C
bl FUN_02009F80
ldr r0, [r4, #0x20]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
ldr r3, _02236540 ; =MOD83_027E0000
ldr r1, _02236544 ; =0x00003FF8
mov r0, #1
@@ -18519,7 +18519,7 @@ MOD83_02236764: ; 0x02236764
add r4, r0, #0
bl memset
mov r0, #0x4e
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #0x20]
mov r0, #0x4e
bl FUN_02014590
@@ -22910,11 +22910,11 @@ _02238832:
add r0, r7, #0
lsr r1, r1, #0x18
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
lsl r1, r4, #0x18
add r0, r7, #0
lsr r1, r1, #0x18
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
@@ -23214,7 +23214,7 @@ MOD83_02238A38: ; 0x02238A38
ldr r2, [r4, #0x2c]
lsl r2, r2, #0x18
lsr r2, r2, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r1, [sp, #0x28]
add r0, r4, #0
bl MOD83_0223894C
@@ -23228,7 +23228,7 @@ _02238A8A:
add r0, r1, #0
lsl r1, r6, #0x18
lsr r1, r1, #0x18
- bl FUN_0201AB1C
+ bl MoveWindowX
_02238A9C:
mov r0, #0
mvn r0, r0
@@ -23237,7 +23237,7 @@ _02238A9C:
lsl r1, r5, #0x18
ldr r0, [r4, #0x10]
lsr r1, r1, #0x18
- bl FUN_0201AB20
+ bl MoveWindowY
_02238AAE:
ldr r1, [sp, #0x28]
add r0, r4, #0
@@ -24230,7 +24230,7 @@ MOD83_022391EC: ; 0x022391EC
mov r1, #5
add r2, #0xc
lsl r3, r3, #8
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
ldr r0, [sp, #0x10]
bl FreeToHeap
mov r0, #0x20
@@ -24245,10 +24245,10 @@ MOD83_022391EC: ; 0x022391EC
add r0, r5, #0
mov r1, #5
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
add r0, r5, #0
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
ldr r1, _022392E0 ; =MOD83_022391CC
ldr r0, _022392E4 ; =MOD83_0223CAB0
cmp r4, #0xb
diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s
index 3c6bd557..ea18857a 100644
--- a/arm9/modules/84/asm/module_84_thumb1.s
+++ b/arm9/modules/84/asm/module_84_thumb1.s
@@ -562,7 +562,7 @@ MOD84_021D7968: ; 0x021D7968
sub sp, #0xc
add r4, r0, #0
mov r0, #0x4b
- bl FUN_02016B94
+ bl BgConfig_Alloc
str r0, [r4, #4]
ldr r0, _021D7A60 ; =0x021DA68C
bl GX_SetBanks
@@ -576,17 +576,17 @@ MOD84_021D7968: ; 0x021D7968
add r2, r0, #0
bl GX_SetGraphicsMode
ldr r0, _021D7A6C ; =0x021DA650
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r0, [r4, #4]
ldr r2, _021D7A70 ; =0x021DA670
mov r1, #1
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
ldr r2, _021D7A70 ; =0x021DA670
mov r1, #5
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
mov r2, #0
str r2, [sp]
mov r0, #0x20
@@ -692,10 +692,10 @@ MOD84_021D7A84: ; 0x021D7A84
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
bl FreeToHeap
pop {r4, pc}
diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s
index 17f9316e..d97e5a59 100644
--- a/arm9/modules/84/asm/module_84_thumb2.s
+++ b/arm9/modules/84/asm/module_84_thumb2.s
@@ -32,12 +32,12 @@ _021D817A:
mov r1, #2
lsl r0, r0, #24
lsr r0, r0, #24
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r5, #20]
mov r1, #3
lsl r0, r0, #24
lsr r0, r0, #24
- bl FUN_020178BC
+ bl SetBgPriority
ldr r0, [r5, #16]
add r0, r0, #1
str r0, [r5, #16]
@@ -574,12 +574,12 @@ MOD84_021D84F8: ; 0x021D84F8
ldr r1, [r4, #0x24]
add r0, r6, #0
lsr r2, r2, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, [r4, #0x24]
mov r1, #0
bl FillWindowPixelBuffer
ldr r0, [r4, #0x24]
- bl FUN_02019270
+ bl PutWindowTilemap
ldr r0, [r4, #0x24]
bl CopyWindowToVram
mov r0, #0x4b
@@ -600,7 +600,7 @@ MOD84_021D84F8: ; 0x021D84F8
ldr r1, [r4, #0x28]
add r0, r6, #0
lsr r2, r2, #0x18
- bl FUN_02019064
+ bl AddWindowParameterized
ldr r0, _021D85B4 ; =MOD84_021D8784
add r1, r4, #0
mov r2, #0
@@ -626,9 +626,9 @@ _021D85C6:
ldr r0, [r4, #0x30]
bl String_dtor
ldr r0, [r4, #0x24]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x28]
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x24]
bl FreeToHeap
ldr r0, [r4, #0x28]
@@ -850,7 +850,7 @@ MOD84_021D8784: ; 0x021D8784
cmp r0, #0
beq _021D8798
ldr r0, [r4, #0x24]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
mov r0, #0
str r0, [r4, #0x18]
_021D8798:
@@ -862,7 +862,7 @@ _021D8798:
lsr r1, r1, #0x18
mov r2, #3
lsr r3, r3, #0x18
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D8784
@@ -913,7 +913,7 @@ _021D87D0:
ldr r2, [r5, #0x30]
bl AddTextPrinterParameterized3
ldr r0, [r5, #0x24]
- bl FUN_02019548
+ bl CopyWindowPixelsToVram_TextMode
add sp, #0x18
pop {r3, r4, r5, pc}
.align 2, 0
@@ -1041,12 +1041,12 @@ MOD84_021D88DC: ; 0x021D88DC
mov r1, #2
mov r2, #0
add r3, r6, r7
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r5, #4]
mov r1, #6
mov r2, #0
add r3, r6, r7
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4]
cmp r0, #0
beq _021D8914
@@ -1115,12 +1115,12 @@ _021D897C:
ldr r2, _021D8A6C ; =0x021DAC70
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
ldr r2, _021D8A6C ; =0x021DAC70
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -1238,10 +1238,10 @@ MOD84_021D8A74: ; 0x021D8A74
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D8A74
@@ -1399,12 +1399,12 @@ _021D8B92:
ldr r2, _021D8C38 ; =0x021DAC8C
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
ldr r2, _021D8C38 ; =0x021DAC8C
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -1486,10 +1486,10 @@ MOD84_021D8C3C: ; 0x021D8C3C
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D8C3C
@@ -1739,12 +1739,12 @@ _021D8E26:
ldr r2, _021D903C ; =0x021DACB8
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
ldr r2, _021D903C ; =0x021DACB8
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [sp, #0x14]
ldr r0, [r0]
add r1, r0, #1
@@ -2052,10 +2052,10 @@ _021D90A2:
_021D90AC:
ldr r0, [r6, #4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r6, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [sp]
bl OS_RestoreInterrupts
pop {r3, r4, r5, r6, r7, pc}
@@ -2558,12 +2558,12 @@ _021D949A:
ldr r2, _021D9540 ; =0x021DACD4
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
ldr r2, _021D9540 ; =0x021DACD4
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -2645,10 +2645,10 @@ MOD84_021D9544: ; 0x021D9544
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D9544
@@ -2730,22 +2730,22 @@ MOD84_021D95CC: ; 0x021D95CC
mov r1, #2
mov r2, #0
add r3, r6, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #4]
mov r1, #6
mov r2, #0
add r3, r6, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #4]
mov r1, #3
mov r2, #0
add r3, r6, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #4]
mov r1, #7
mov r2, #0
add r3, r6, #0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
ldr r0, [r4, #0x50]
cmp r0, #0
beq _021D9632
@@ -3018,22 +3018,22 @@ _021D9832:
ldr r2, _021D99FC ; =0x021DACF0
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
ldr r2, _021D9A00 ; =0x021DAD0C
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
ldr r2, _021D99FC ; =0x021DACF0
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
ldr r2, _021D9A00 ; =0x021DAD0C
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
@@ -3264,16 +3264,16 @@ _021D9A26:
_021D9A30:
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D9A04
@@ -3431,12 +3431,12 @@ _021D9B5A:
ldr r2, _021D9C00 ; =0x021DAD28
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5, #4]
ldr r2, _021D9C00 ; =0x021DAD28
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -3518,10 +3518,10 @@ MOD84_021D9C04: ; 0x021D9C04
add r4, r0, #0
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
.align 2, 0
thumb_func_end MOD84_021D9C04
@@ -4105,22 +4105,22 @@ _021DA0AA:
ldr r2, _021DA30C ; =0x021DAD68
mov r1, #2
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
ldr r2, _021DA310 ; =0x021DAD4C
mov r1, #3
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
ldr r2, _021DA30C ; =0x021DAD68
mov r1, #6
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #4]
ldr r2, _021DA310 ; =0x021DAD4C
mov r1, #7
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
@@ -4437,16 +4437,16 @@ _021DA35C:
_021DA366:
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #6
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #4]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
pop {r4, pc}
thumb_func_end MOD84_021DA31C
diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s
index 4ccc0477..eab7a6cf 100644
--- a/arm9/modules/85/asm/module_85.s
+++ b/arm9/modules/85/asm/module_85.s
@@ -263,7 +263,7 @@ MOD85_021D76FC: ; 0x021D76FC
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
mov r0, #0x4f
- bl FUN_02016B94
+ bl BgConfig_Alloc
ldr r1, _021D77CC ; =0x0000043C
str r0, [r4, r1]
bl MOD85_021D77F8
@@ -408,7 +408,7 @@ MOD85_021D7818: ; 0x021D7818
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D78F4 ; =0x021DED28
add r3, sp, #0x54
ldmia r5!, {r0, r1}
@@ -423,15 +423,15 @@ MOD85_021D7818: ; 0x021D7818
str r0, [r3]
add r0, r4, #0
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
mov r1, #0x20
add r2, r0, #0
mov r3, #0x4f
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r5, _021D78F8 ; =0x021DED44
add r3, sp, #0x38
ldmia r5!, {r0, r1}
@@ -446,10 +446,10 @@ MOD85_021D7818: ; 0x021D7818
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D78FC ; =0x021DED60
add r3, sp, #0x1c
ldmia r5!, {r0, r1}
@@ -464,10 +464,10 @@ MOD85_021D7818: ; 0x021D7818
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #2
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
ldr r5, _021D7900 ; =0x021DED0C
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -482,10 +482,10 @@ MOD85_021D7818: ; 0x021D7818
str r0, [r3]
add r0, r4, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
add r0, r4, #0
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
add sp, #0x80
pop {r3, r4, r5, pc}
.align 2, 0
@@ -502,16 +502,16 @@ MOD85_021D7904: ; 0x021D7904
push {r4, lr}
add r4, r0, #0
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #2
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
@@ -578,7 +578,7 @@ MOD85_021D797C: ; 0x021D797C
ldr r1, [r1, #0xc]
lsl r2, r2, #4
mov r3, #0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
add r0, r5, #0
bl FreeToHeap
mov r1, #0
@@ -598,7 +598,7 @@ MOD85_021D797C: ; 0x021D797C
ldr r0, [r4, r0]
ldr r3, [r3, #0x10]
mov r1, #1
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
@@ -619,11 +619,11 @@ MOD85_021D797C: ; 0x021D797C
ldr r3, [r3, #8]
mov r1, #1
add r2, #0xc
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
ldr r0, _021D7B24 ; =0x0000043C
mov r1, #1
ldr r0, [r4, r0]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
@@ -643,7 +643,7 @@ MOD85_021D797C: ; 0x021D797C
ldr r0, [r4, r0]
ldr r3, [r3, #0x10]
mov r1, #2
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
@@ -664,11 +664,11 @@ MOD85_021D797C: ; 0x021D797C
ldr r3, [r3, #8]
mov r1, #2
add r2, #0xc
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
ldr r0, _021D7B24 ; =0x0000043C
mov r1, #2
ldr r0, [r4, r0]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
@@ -686,7 +686,7 @@ MOD85_021D797C: ; 0x021D797C
ldr r1, [r1, #0xc]
lsl r2, r2, #4
mov r3, #0
- bl FUN_02017FB4
+ bl BG_LoadPlttData
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
@@ -706,7 +706,7 @@ MOD85_021D797C: ; 0x021D797C
ldr r0, [r4, r0]
ldr r3, [r3, #0x10]
mov r1, #7
- bl FUN_02017E14
+ bl BG_LoadCharTilesData
add r0, r5, #0
bl FreeToHeap
add r0, r4, #0
@@ -727,11 +727,11 @@ MOD85_021D797C: ; 0x021D797C
ldr r3, [r3, #8]
mov r1, #7
add r2, #0xc
- bl FUN_02017DFC
+ bl BG_LoadScreenTilemapData
ldr r0, _021D7B24 ; =0x0000043C
mov r1, #7
ldr r0, [r4, r0]
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
add r0, r5, #0
bl FreeToHeap
pop {r3, r4, r5, pc}
@@ -790,7 +790,7 @@ MOD85_021D7B28: ; 0x021D7B28
ldr r0, [r5, r0]
ldr r2, _021D7BB4 ; =0x021DECE4
add r1, #8
- bl FUN_02019150
+ bl AddWindow
mov r0, #1
lsl r0, r0, #8
mov r1, #0x4f
@@ -815,9 +815,9 @@ MOD85_021D7BB8: ; 0x021D7BB8
add r6, r4, #0
add r6, #8
add r0, r6, #0
- bl FUN_02019570
+ bl ClearWindowTilemapAndCopyToVram
add r0, r6, #0
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, _021D7BE8 ; =0x00000408
ldr r0, [r5, r0]
bl DestroyMsgData
@@ -865,7 +865,7 @@ MOD85_021D7BEC: ; 0x021D7BEC
bl AddTextPrinterParameterized
add r4, #8
add r0, r4, #0
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
add sp, #0xc
pop {r3, r4, r5, r6, pc}
nop
@@ -887,7 +887,7 @@ MOD85_021D7C44: ; 0x021D7C44
bl FillWindowPixelBuffer
add r0, r5, r4
add r0, #8
- bl FUN_02019220
+ bl ScheduleWindowCopyToVram
pop {r3, r4, r5, pc}
.align 2, 0
_021D7C68: .word 0x00000408
@@ -1462,7 +1462,7 @@ MOD85_021D80DC: ; 0x021D80DC
bl FUN_02009F80
ldr r0, _021D80F4 ; =0x0000043C
ldr r0, [r4, r0]
- bl FUN_0201AB60
+ bl DoScheduledBgGpuUpdates
pop {r4, pc}
nop
_021D80F4: .word 0x0000043C
@@ -8830,7 +8830,7 @@ MOD85_021DB69C: ; 0x021DB69C
lsr r0, r0, #0x18
mov r2, #0x20
lsr r3, r3, #0x10
- bl FUN_02017FB4
+ bl BG_LoadPlttData
pop {r4, pc}
.align 2, 0
thumb_func_end MOD85_021DB69C
@@ -10243,11 +10243,11 @@ MOD85_021DC050: ; 0x021DC050
mov r1, #1
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, _021DC090 ; =0x0000043C
mov r1, #1
ldr r0, [r4, r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
@@ -10278,11 +10278,11 @@ MOD85_021DC094: ; 0x021DC094
mov r1, #1
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, _021DC0D4 ; =0x0000043C
mov r1, #1
ldr r0, [r4, r0]
- bl FUN_0201AC68
+ bl ScheduleBgTilemapBufferTransfer
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s
index 0c2e1774..17607453 100644
--- a/arm9/modules/86/asm/module_86.s
+++ b/arm9/modules/86/asm/module_86.s
@@ -106,22 +106,22 @@ _021D75B8:
bl MOD86_021D7B80
add r0, r6, #0
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #4
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #1
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #1
str r0, [sp]
@@ -245,7 +245,7 @@ MOD86_021D76E0: ; 0x021D76E0
ldr r0, [r0, #0x10]
bx r3
nop
-_021D76E8: .word FUN_0201AB60
+_021D76E8: .word DoScheduledBgGpuUpdates
thumb_func_end MOD86_021D76E0
thumb_func_start MOD86_021D76EC
@@ -264,7 +264,7 @@ _021D76F8:
add r0, sp, #0x2c
bl GX_SetBanks
ldr r0, [r4]
- bl FUN_02016B94
+ bl BgConfig_Alloc
add r3, sp, #0x1c
ldr r5, _021D7850 ; =0x021D7C90
str r0, [r4, #0x10]
@@ -274,7 +274,7 @@ _021D76F8:
ldmia r5!, {r0, r1}
stmia r3!, {r0, r1}
add r0, r2, #0
- bl FUN_02016BBC
+ bl SetBothScreensModesAndDisable
ldr r5, _021D7854 ; =0x021D7CA0
add r3, sp, #0
ldmia r5!, {r0, r1}
@@ -297,10 +297,10 @@ _021D76F8:
strb r3, [r0, #0x10]
ldr r0, [r4, #0x10]
add r3, r1, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x10]
mov r1, #0
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #2
add r0, sp, #0
strb r2, [r0, #0x12]
@@ -312,10 +312,10 @@ _021D76F8:
mov r1, #1
add r2, sp, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x10]
mov r1, #1
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #4
add r0, sp, #0
strb r1, [r0, #0x12]
@@ -328,10 +328,10 @@ _021D76F8:
mov r1, #3
add r2, sp, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x10]
mov r1, #3
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #4
mov r3, #0
add r0, sp, #0
@@ -343,10 +343,10 @@ _021D76F8:
strb r2, [r0, #0x10]
ldr r0, [r4, #0x10]
add r2, sp, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x10]
mov r1, #4
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r2, #2
add r0, sp, #0
strb r2, [r0, #0x12]
@@ -358,10 +358,10 @@ _021D76F8:
mov r1, #5
add r2, sp, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x10]
mov r1, #5
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r1, #4
add r0, sp, #0
strb r1, [r0, #0x12]
@@ -374,34 +374,34 @@ _021D76F8:
mov r1, #7
add r2, sp, #0
mov r3, #0
- bl FUN_02016C18
+ bl InitBgFromTemplate
ldr r0, [r4, #0x10]
mov r1, #7
- bl FUN_02018744
+ bl BgClearTilemapBufferAndCommit
mov r0, #0
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #4
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
add sp, #0x54
pop {r4, r5, pc}
.align 2, 0
@@ -416,46 +416,46 @@ MOD86_021D7858: ; 0x021D7858
add r4, r0, #0
mov r0, #0
add r1, r0, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #1
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #2
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #3
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #4
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #5
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #6
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
mov r0, #7
mov r1, #0
- bl FUN_0201797C
+ bl ToggleBgLayer
ldr r0, [r4, #0x10]
mov r1, #0
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #1
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #3
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #4
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #5
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
mov r1, #7
- bl FUN_020178A0
+ bl FreeBgTilemapBuffer
ldr r0, [r4, #0x10]
bl FreeToHeap
pop {r4, pc}
@@ -493,7 +493,7 @@ MOD86_021D78D4: ; 0x021D78D4
ldr r0, [r4, #0x10]
add r1, #0x14
add r2, sp, #8
- bl FUN_02019150
+ bl AddWindow
mov r1, #0
mov r0, #1
lsl r0, r0, #8
@@ -512,7 +512,7 @@ MOD86_021D78D4: ; 0x021D78D4
ldr r0, [r4, #0x10]
add r1, #0x24
add r2, sp, #8
- bl FUN_02019150
+ bl AddWindow
mov r1, #0
mov r0, #1
lsl r0, r0, #8
@@ -535,10 +535,10 @@ MOD86_021D7964: ; 0x021D7964
push {r4, lr}
add r4, r0, #0
add r0, #0x24
- bl FUN_02019178
+ bl RemoveWindow
add r0, r4, #0
add r0, #0x14
- bl FUN_02019178
+ bl RemoveWindow
ldr r0, [r4, #0x38]
bl ScrStrBufs_delete
ldr r0, [r4, #0x34]
@@ -565,27 +565,27 @@ MOD86_021D7990: ; 0x021D7990
ldr r0, [r4, #0x10]
mov r1, #1
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0x3c
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x10]
mov r1, #5
mov r2, #3
add r3, #0xc0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0x3c
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x10]
mov r1, #0
mov r2, #3
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
mov r3, #0x3c
ldrsh r3, [r4, r3]
ldr r0, [r4, #0x10]
mov r1, #4
mov r2, #3
add r3, #0xc0
- bl FUN_020179E0
+ bl BgSetPosTextAndCommit
pop {r4, pc}
.align 2, 0
thumb_func_end MOD86_021D7990
@@ -701,10 +701,10 @@ _021D7A06:
mov r2, #0
ldr r0, [r5, #0x10]
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, [r5, #0x10]
mov r1, #1
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -745,10 +745,10 @@ _021D7A06:
ldr r0, [r5, #0x10]
mov r1, #5
add r3, r2, #0
- bl FUN_020186B4
+ bl BgTilemapRectChangePalette
ldr r0, [r5, #0x10]
mov r1, #5
- bl FUN_02017CD0
+ bl BgCommitTilemapBufferToVram
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -772,12 +772,12 @@ _021D7A06:
ldr r3, [r5]
mov r1, #0x20
add r2, r0, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r3, [r5]
mov r0, #4
mov r1, #0x20
mov r2, #0
- bl FUN_02017F18
+ bl BG_ClearCharDataRange
ldr r2, [r5]
mov r0, #0
mov r1, #0x40
diff --git a/arm9/src/GX_layers.c b/arm9/src/GX_layers.c
index f0ac9472..28147dbd 100644
--- a/arm9/src/GX_layers.c
+++ b/arm9/src/GX_layers.c
@@ -3,19 +3,19 @@
#include "gx.h"
#include "main.h"
-
-struct GX_LayerData layer_data;
+static u32 EngineA_DISPCNT_LayerMask;
+static u32 EngineB_DISPCNT_LayerMask;
THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks)
{
GX_ResetBankForBG();
GX_ResetBankForBGExtPltt();
GX_ResetBankForSubBG();
- FUN_020C6034();
+ GX_ResetBankForSubBGExtPltt();
GX_ResetBankForOBJ();
GX_ResetBankForOBJExtPltt();
- FUN_020C605C();
GX_ResetBankForSubOBJ();
+ GX_ResetBankForSubOBJExtPltt();
GX_ResetBankForTex();
GX_ResetBankForTexPltt();
@@ -34,80 +34,79 @@ THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks)
THUMB_FUNC void GX_DisableEngineALayers()
{
- layer_data.EngineA_DISPCNT_LayerMask = 0;
+ 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)
+ if ((EngineA_DISPCNT_LayerMask & layer_mask) != 0)
{
return;
}
}
else
{
- if ((layer_data.EngineA_DISPCNT_LayerMask & layer_mask) == 0)
+ if ((EngineA_DISPCNT_LayerMask & layer_mask) == 0)
{
return;
}
}
- reg_GX_DISPCNT = (reg_GX_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineA_DISPCNT_LayerMask ^= layer_mask) << 8;
+ GX_SetVisiblePlane(EngineA_DISPCNT_LayerMask ^= layer_mask);
}
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;
+ EngineA_DISPCNT_LayerMask = layer_mask;
+ GX_SetVisiblePlane(layer_mask);
}
THUMB_FUNC void GX_DisableEngineBLayers()
{
- layer_data.EngineB_DISPCNT_LayerMask = 0;
+ 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)
+ if ((EngineB_DISPCNT_LayerMask & layer_mask) != 0)
{
return;
}
}
else
{
- if ((layer_data.EngineB_DISPCNT_LayerMask & layer_mask) == 0)
+ if ((EngineB_DISPCNT_LayerMask & layer_mask) == 0)
{
return;
}
}
- reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineB_DISPCNT_LayerMask ^= layer_mask) << 8;
+ GXS_SetVisiblePlane(EngineB_DISPCNT_LayerMask ^= layer_mask);
}
THUMB_FUNC void GX_BothDispOn()
{
GX_DispOn();
-
- reg_GXS_DB_DISPCNT |= 0x10000;
+ GXS_DispOn();
}
THUMB_FUNC void GX_SwapDisplay()
{
if (gMain.unk65 == 0)
{
- reg_GX_POWCNT |= 0x8000; //send display A to lower screen
+ GX_SetDispSelect(GX_DISP_SELECT_MAIN_SUB);
}
else
{
- reg_GX_POWCNT &= 0xFFFF7FFF; // sned display A to upper screen
+ GX_SetDispSelect(GX_DISP_SELECT_SUB_MAIN);
}
}
THUMB_FUNC u32 GX_GetEngineALayers()
{
- return layer_data.EngineA_DISPCNT_LayerMask;
+ return EngineA_DISPCNT_LayerMask;
}
diff --git a/arm9/src/bg_window.c b/arm9/src/bg_window.c
new file mode 100644
index 00000000..2986645f
--- /dev/null
+++ b/arm9/src/bg_window.c
@@ -0,0 +1,5456 @@
+#include "global.h"
+#include "bg_window.h"
+#include "GX_layers.h"
+#include "game_init.h"
+#include "gx.h"
+#include "heap.h"
+
+const u8 sTilemapWidthByBufferSize[] = {
+ [GF_BG_SCR_SIZE_128x128] = 0x10,
+ [GF_BG_SCR_SIZE_256x256] = 0x20,
+ [GF_BG_SCR_SIZE_256x512] = 0x20,
+ [GF_BG_SCR_SIZE_512x256] = 0x20,
+ [GF_BG_SCR_SIZE_512x512] = 0x20,
+ [GF_BG_SCR_SIZE_1024x1024] = 0x20,
+};
+
+void (*const sScheduleWindowCopyToVramFuncs[])(struct Window *) = {
+ ScheduleWindowCopyToVram_TextMode,
+ ScheduleWindowCopyToVram_AffineMode,
+ ScheduleWindowCopyToVram_TextMode,
+};
+
+void (*const sClearWindowTilemapAndCopyToVramFuncs[])(struct Window *) = {
+ ClearWindowTilemapAndCopyToVram_TextMode,
+ ClearWindowTilemapAndCopyToVram_AffineMode,
+ ClearWindowTilemapAndCopyToVram_TextMode,
+};
+
+void (*const sClearWindowTilemapAndScheduleTransferFuncs[])(struct Window *) = {
+ ClearWindowTilemapAndScheduleTransfer_TextMode,
+ ClearWindowTilemapAndScheduleTransfer_AffineMode,
+ ClearWindowTilemapAndScheduleTransfer_TextMode,
+};
+
+void (*const sPutWindowTilemapFuncs[])(struct Window *) = {
+ PutWindowTilemap_TextMode,
+ PutWindowTilemap_AffineMode,
+ PutWindowTilemap_TextMode,
+};
+
+void (*const sCopyWindowToVramFuncs[])(struct Window *) = {
+ CopyWindowToVram_TextMode,
+ CopyWindowToVram_AffineMode,
+ CopyWindowToVram_TextMode,
+};
+
+void (*const sClearWindowTilemapFuncs[])(struct Window *) = {
+ ClearWindowTilemapText,
+ ClearWindowTilemapAffine,
+ ClearWindowTilemapText,
+};
+
+THUMB_FUNC struct BgConfig *BgConfig_Alloc(u32 heap_id)
+{
+ struct BgConfig *ptr = AllocFromHeap(heap_id, sizeof(struct BgConfig));
+ memset(ptr, 0, sizeof(struct BgConfig));
+ ptr->heap_id = heap_id;
+ ptr->scrollScheduled = 0;
+ ptr->bufferTransferScheduled = 0;
+
+ return ptr;
+}
+
+THUMB_FUNC u32 BgConfig_GetHeapId(struct BgConfig *bgConfig)
+{
+ return bgConfig->heap_id;
+}
+
+THUMB_FUNC void SetBothScreensModesAndDisable(const struct GraphicsModes *modes)
+{
+ GX_SetGraphicsMode(modes->dispMode, modes->bgMode, modes->_2d3dMode);
+ GXS_SetGraphicsMode(modes->subMode);
+ GX_SetBGScrOffset(0);
+ GX_SetBGCharOffset(0);
+
+ GX_DisableEngineALayers();
+ GX_DisableEngineBLayers();
+}
+
+THUMB_FUNC void SetScreenModeAndDisable(const struct GraphicsModes *gfxModes, u32 whichScreen)
+{
+ if (whichScreen == 0)
+ {
+ GX_SetGraphicsMode(gfxModes->dispMode, gfxModes->bgMode, gfxModes->_2d3dMode);
+ GX_DisableEngineALayers();
+ }
+ else
+ {
+ GXS_SetGraphicsMode(gfxModes->subMode);
+ GX_DisableEngineBLayers();
+ }
+}
+
+THUMB_FUNC void InitBgFromTemplate(
+ struct BgConfig *bgConfig, u8 bgId, const struct BgTemplate *template, u8 bgMode)
+{
+ u8 screenSize = TranslateGFBgModePairToGXScreenSize(template->size, bgMode);
+ switch (bgId)
+ {
+ case GF_BG_LYR_MAIN_0:
+ GX_EngineAToggleLayers(GF_BG_LYR_MAIN_0_F, GX_LAYER_TOGGLE_ON);
+ G2_SetBG0Control(screenSize, template->colorMode, template->screenBase, template->charBase, template->bgExtPltt);
+ G2_SetBG0Priority(template->priority);
+ G2_BG0Mosaic(template->mosaic);
+ break;
+
+ case GF_BG_LYR_MAIN_1:
+ GX_EngineAToggleLayers(GF_BG_LYR_MAIN_1_F, GX_LAYER_TOGGLE_ON);
+ G2_SetBG1Control(screenSize, template->colorMode, template->screenBase, template->charBase, template->bgExtPltt);
+ G2_SetBG1Priority(template->priority);
+ G2_BG1Mosaic(template->mosaic);
+ break;
+
+ case GF_BG_LYR_MAIN_2:
+ GX_EngineAToggleLayers(GF_BG_LYR_MAIN_2_F, GX_LAYER_TOGGLE_ON);
+ switch (bgMode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ G2_SetBG2ControlText(screenSize, template->colorMode, template->screenBase, template->charBase);
+ break;
+ case GF_BG_TYPE_AFFINE:
+ G2_SetBG2ControlAffine(screenSize, template->areaOver, template->screenBase, template->charBase);
+ break;
+ case GF_BG_TYPE_256x16PLTT:
+ G2_SetBG2Control256x16Pltt(screenSize, template->areaOver, template->screenBase, template->charBase);
+ break;
+ }
+ G2_SetBG2Priority(template->priority);
+ G2_BG2Mosaic(template->mosaic);
+ break;
+
+ case GF_BG_LYR_MAIN_3:
+ GX_EngineAToggleLayers(GF_BG_LYR_MAIN_3_F, GX_LAYER_TOGGLE_ON);
+ switch (bgMode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ G2_SetBG3ControlText(screenSize, template->colorMode, template->screenBase, template->charBase);
+ break;
+ case GF_BG_TYPE_AFFINE:
+ G2_SetBG3ControlAffine(screenSize, template->areaOver, template->screenBase, template->charBase);
+ break;
+ case GF_BG_TYPE_256x16PLTT:
+ G2_SetBG3Control256x16Pltt(screenSize, template->areaOver, template->screenBase, template->charBase);
+ break;
+ }
+ G2_SetBG3Priority(template->priority);
+ G2_BG3Mosaic(template->mosaic);
+ break;
+
+ case GF_BG_LYR_SUB_0:
+ GX_EngineBToggleLayers(GF_BG_LYR_SUB_0_F, GX_LAYER_TOGGLE_ON);
+ G2S_SetBG0Control(screenSize, template->colorMode, template->screenBase, template->charBase, template->bgExtPltt);
+ G2S_SetBG0Priority(template->priority);
+ G2S_BG0Mosaic(template->mosaic);
+ break;
+
+ case GF_BG_LYR_SUB_1:
+ GX_EngineBToggleLayers(GF_BG_LYR_SUB_1_F, GX_LAYER_TOGGLE_ON);
+ G2S_SetBG1Control(screenSize, template->colorMode, template->screenBase, template->charBase, template->bgExtPltt);
+ G2S_SetBG1Priority(template->priority);
+ G2S_BG1Mosaic(template->mosaic);
+ break;
+
+ case GF_BG_LYR_SUB_2:
+ GX_EngineBToggleLayers(GF_BG_LYR_SUB_2_F, GX_LAYER_TOGGLE_ON);
+ switch (bgMode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ G2S_SetBG2ControlText(screenSize, template->colorMode, template->screenBase, template->charBase);
+ break;
+ case GF_BG_TYPE_AFFINE:
+ G2S_SetBG2ControlAffine(screenSize, template->areaOver, template->screenBase, template->charBase);
+ break;
+ case GF_BG_TYPE_256x16PLTT:
+ G2S_SetBG2Control256x16Pltt(screenSize, template->areaOver, template->screenBase, template->charBase);
+ break;
+ }
+ G2S_SetBG2Priority(template->priority);
+ G2S_BG2Mosaic(template->mosaic);
+ break;
+
+ case GF_BG_LYR_SUB_3:
+ GX_EngineBToggleLayers(GF_BG_LYR_SUB_3_F, GX_LAYER_TOGGLE_ON);
+ switch (bgMode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ G2S_SetBG3ControlText(screenSize, template->colorMode, template->screenBase, template->charBase);
+ break;
+ case GF_BG_TYPE_AFFINE:
+ G2S_SetBG3ControlAffine(screenSize, template->areaOver, template->screenBase, template->charBase);
+ break;
+ case GF_BG_TYPE_256x16PLTT:
+ G2S_SetBG3Control256x16Pltt(screenSize, template->areaOver, template->screenBase, template->charBase);
+ break;
+ }
+ G2S_SetBG3Priority(template->priority);
+ G2S_BG3Mosaic(template->mosaic);
+ break;
+ }
+
+ bgConfig->bgs[bgId].rotation = 0;
+ bgConfig->bgs[bgId].xScale = FX32_ONE;
+ bgConfig->bgs[bgId].yScale = FX32_ONE;
+ bgConfig->bgs[bgId].centerX = 0;
+ bgConfig->bgs[bgId].centerY = 0;
+
+ if (template->bufferSize != 0)
+ {
+ bgConfig->bgs[bgId].tilemapBuffer = AllocFromHeap(bgConfig->heap_id, template->bufferSize);
+
+ MI_CpuClear16(bgConfig->bgs[bgId].tilemapBuffer, template->bufferSize);
+
+ bgConfig->bgs[bgId].bufferSize = template->bufferSize;
+ bgConfig->bgs[bgId].baseTile = template->baseTile;
+ }
+ else
+ {
+ bgConfig->bgs[bgId].tilemapBuffer = NULL;
+ bgConfig->bgs[bgId].bufferSize = 0;
+ bgConfig->bgs[bgId].baseTile = 0;
+ }
+
+ bgConfig->bgs[bgId].size = template->size;
+ bgConfig->bgs[bgId].mode = bgMode;
+ bgConfig->bgs[bgId].colorMode = template->colorMode;
+
+ if (bgMode == GF_BG_TYPE_TEXT && template->colorMode == GX_BG_COLORMODE_16)
+ {
+ bgConfig->bgs[bgId].tileSize = 0x20;
+ }
+ else
+ {
+ bgConfig->bgs[bgId].tileSize = 0x40;
+ }
+
+ BgSetPosTextAndCommit(bgConfig, bgId, BG_POS_OP_SET_X, template->x);
+ BgSetPosTextAndCommit(bgConfig, bgId, BG_POS_OP_SET_Y, template->y);
+}
+
+THUMB_FUNC void SetBgControlParam(struct BgConfig *config, u8 bgId, u32 attr, u8 value)
+{
+ if (attr == GF_BG_CNT_SET_COLOR_MODE)
+ {
+ config->bgs[bgId].colorMode = value;
+ }
+
+ switch (bgId)
+ {
+ case GF_BG_LYR_MAIN_0:
+ GXBg01Control bg0cnt = G2_GetBG0Control();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg0cnt.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg0cnt.charBase = value;
+ }
+
+ G2_SetBG0Control(bg0cnt.screenSize, config->bgs[bgId].colorMode, bg0cnt.screenBase, bg0cnt.charBase, bg0cnt.bgExtPltt);
+ break;
+ case GF_BG_LYR_MAIN_1:
+ GXBg01Control bg1cnt = G2_GetBG1Control();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg1cnt.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg1cnt.charBase = value;
+ }
+
+ G2_SetBG1Control(bg1cnt.screenSize, config->bgs[bgId].colorMode, bg1cnt.screenBase, bg1cnt.charBase, bg1cnt.bgExtPltt);
+ break;
+ case GF_BG_LYR_MAIN_2:
+ switch (config->bgs[bgId].mode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ GXBg23ControlText bg2cnt_tx = G2_GetBG2ControlText();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg2cnt_tx.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg2cnt_tx.charBase = value;
+ }
+
+ G2_SetBG2ControlText(bg2cnt_tx.screenSize, config->bgs[bgId].colorMode, bg2cnt_tx.screenBase, bg2cnt_tx.charBase);
+ break;
+ case GF_BG_TYPE_AFFINE:
+ GXBg23ControlAffine bg2cnt_aff = G2_GetBG2ControlAffine();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg2cnt_aff.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg2cnt_aff.charBase = value;
+ }
+
+ G2_SetBG2ControlAffine(bg2cnt_aff.screenSize, bg2cnt_aff.areaOver, bg2cnt_aff.screenBase,
+ bg2cnt_aff.charBase);
+ break;
+ case GF_BG_TYPE_256x16PLTT:
+ GXBg23Control256x16Pltt bg2cnt_256x16pltt = G2_GetBG2Control256x16Pltt();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg2cnt_256x16pltt.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg2cnt_256x16pltt.charBase = value;
+ }
+
+ G2_SetBG2Control256x16Pltt(bg2cnt_256x16pltt.screenSize, bg2cnt_256x16pltt.areaOver,
+ bg2cnt_256x16pltt.screenBase, bg2cnt_256x16pltt.charBase);
+ break;
+ }
+ break;
+ case GF_BG_LYR_MAIN_3:
+ switch (config->bgs[bgId].mode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ GXBg23ControlText bg3cnt_tx = G2_GetBG3ControlText();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg3cnt_tx.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg3cnt_tx.charBase = value;
+ }
+
+ G2_SetBG3ControlText(bg3cnt_tx.screenSize, config->bgs[bgId].colorMode, bg3cnt_tx.screenBase, bg3cnt_tx.charBase);
+ break;
+ case GF_BG_TYPE_AFFINE:
+ GXBg23ControlAffine bg3cnt_aff = G2_GetBG3ControlAffine();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg3cnt_aff.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg3cnt_aff.charBase = value;
+ }
+
+ G2_SetBG3ControlAffine(bg3cnt_aff.screenSize, bg3cnt_aff.areaOver, bg3cnt_aff.screenBase,
+ bg3cnt_aff.charBase);
+ break;
+ case GF_BG_TYPE_256x16PLTT:
+ GXBg23Control256x16Pltt bg3cnt_256x16pltt = G2_GetBG3Control256x16Pltt();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg3cnt_256x16pltt.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg3cnt_256x16pltt.charBase = value;
+ }
+
+ G2_SetBG3Control256x16Pltt(bg3cnt_256x16pltt.screenSize, bg3cnt_256x16pltt.areaOver,
+ bg3cnt_256x16pltt.screenBase, bg3cnt_256x16pltt.charBase);
+ break;
+ }
+ break;
+ case GF_BG_LYR_SUB_0:
+ GXBg01Control bg0cntsub = G2S_GetBG0Control();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg0cntsub.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg0cntsub.charBase = value;
+ }
+
+ G2S_SetBG0Control(bg0cntsub.screenSize, config->bgs[bgId].colorMode, bg0cntsub.screenBase, bg0cntsub.charBase, bg0cntsub.bgExtPltt);
+ break;
+ case GF_BG_LYR_SUB_1:
+ GXBg01Control bg1cntsub = G2S_GetBG1Control();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg1cntsub.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg1cntsub.charBase = value;
+ }
+
+ G2S_SetBG1Control(bg1cntsub.screenSize, config->bgs[bgId].colorMode, bg1cntsub.screenBase, bg1cntsub.charBase, bg1cntsub.bgExtPltt);
+ break;
+ case GF_BG_LYR_SUB_2:
+ switch (config->bgs[bgId].mode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ GXBg23ControlText bg2cntsub_tx = G2S_GetBG2ControlText();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg2cntsub_tx.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg2cntsub_tx.charBase = value;
+ }
+
+ G2S_SetBG2ControlText(bg2cntsub_tx.screenSize, config->bgs[bgId].colorMode, bg2cntsub_tx.screenBase, bg2cntsub_tx.charBase);
+ break;
+ case GF_BG_TYPE_AFFINE:
+ GXBg23ControlAffine bg2cntsub_aff = G2S_GetBG2ControlAffine();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg2cntsub_aff.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg2cntsub_aff.charBase = value;
+ }
+
+ G2S_SetBG2ControlAffine(bg2cntsub_aff.screenSize, bg2cntsub_aff.areaOver, bg2cntsub_aff.screenBase,
+ bg2cntsub_aff.charBase);
+ break;
+ case GF_BG_TYPE_256x16PLTT:
+ GXBg23Control256x16Pltt bg2cntsub_256x16pltt = G2S_GetBG2Control256x16Pltt();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg2cntsub_256x16pltt.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg2cntsub_256x16pltt.charBase = value;
+ }
+
+ G2S_SetBG2Control256x16Pltt(bg2cntsub_256x16pltt.screenSize, bg2cntsub_256x16pltt.areaOver,
+ bg2cntsub_256x16pltt.screenBase, bg2cntsub_256x16pltt.charBase);
+ break;
+ }
+ break;
+ case GF_BG_LYR_SUB_3:
+ switch (config->bgs[bgId].mode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ GXBg23ControlText bg3cntsub_tx = G2S_GetBG3ControlText();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg3cntsub_tx.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg3cntsub_tx.charBase = value;
+ }
+
+ G2S_SetBG3ControlText(bg3cntsub_tx.screenSize, config->bgs[bgId].colorMode, bg3cntsub_tx.screenBase, bg3cntsub_tx.charBase);
+ break;
+ case GF_BG_TYPE_AFFINE:
+ GXBg23ControlAffine bg3cntsub_aff = G2S_GetBG3ControlAffine();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg3cntsub_aff.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg3cntsub_aff.charBase = value;
+ }
+
+ G2S_SetBG3ControlAffine(bg3cntsub_aff.screenSize, bg3cntsub_aff.areaOver, bg3cntsub_aff.screenBase,
+ bg3cntsub_aff.charBase);
+ break;
+ case GF_BG_TYPE_256x16PLTT:
+ GXBg23Control256x16Pltt bg3cntsub_256x16pltt = G2S_GetBG3Control256x16Pltt();
+ if (attr == GF_BG_CNT_SET_SCREEN_BASE)
+ {
+ bg3cntsub_256x16pltt.screenBase = value;
+ }
+ else if (attr == GF_BG_CNT_SET_CHAR_BASE)
+ {
+ bg3cntsub_256x16pltt.charBase = value;
+ }
+
+ G2S_SetBG3Control256x16Pltt(bg3cntsub_256x16pltt.screenSize, bg3cntsub_256x16pltt.areaOver,
+ bg3cntsub_256x16pltt.screenBase, bg3cntsub_256x16pltt.charBase);
+ break;
+ }
+ break;
+ }
+}
+
+THUMB_FUNC u8 TranslateGFBgModePairToGXScreenSize(u8 size, u32 bgMode)
+{
+ switch (bgMode)
+ {
+ case GF_BG_TYPE_TEXT:
+
+ if (size == GF_BG_SCR_SIZE_256x256)
+ {
+ return GX_BG_SCRSIZE_TEXT_256x256;
+ }
+ else if (size == GF_BG_SCR_SIZE_256x512)
+ {
+ return GX_BG_SCRSIZE_TEXT_256x512;
+ }
+ else if (size == GF_BG_SCR_SIZE_512x256)
+ {
+ return GX_BG_SCRSIZE_TEXT_512x256;
+ }
+ else if (size == GF_BG_SCR_SIZE_512x512)
+ {
+ return GX_BG_SCRSIZE_TEXT_512x512;
+ }
+ break;
+
+ case GF_BG_TYPE_AFFINE:
+
+ if (size == GF_BG_SCR_SIZE_128x128)
+ {
+ return GX_BG_SCRSIZE_AFFINE_128x128;
+ }
+ else if (size == GF_BG_SCR_SIZE_256x256)
+ {
+ return GX_BG_SCRSIZE_AFFINE_256x256;
+ }
+ else if (size == GF_BG_SCR_SIZE_512x512)
+ {
+ return GX_BG_SCRSIZE_AFFINE_512x512;
+ }
+ else if (size == GF_BG_SCR_SIZE_1024x1024)
+ {
+ return GX_BG_SCRSIZE_AFFINE_1024x1024;
+ }
+ break;
+
+ case GF_BG_TYPE_256x16PLTT:
+
+ if (size == GF_BG_SCR_SIZE_128x128)
+ {
+ return GX_BG_SCRSIZE_256x16PLTT_128x128;
+ }
+ else if (size == GF_BG_SCR_SIZE_256x256)
+ {
+ return GX_BG_SCRSIZE_256x16PLTT_256x256;
+ }
+ else if (size == GF_BG_SCR_SIZE_512x512)
+ {
+ return GX_BG_SCRSIZE_256x16PLTT_512x512;
+ }
+ else if (size == GF_BG_SCR_SIZE_1024x1024)
+ {
+ return GX_BG_SCRSIZE_256x16PLTT_1024x1024;
+ }
+ break;
+ }
+
+ return GX_BG_SCRSIZE_TEXT_256x256; // GX_BG_SCRSIZE_AFFINE_128x128; GX_BG_SCRSIZE_256x16PLTT_128x128;
+}
+
+THUMB_FUNC void GetBgScreenDimensions(u32 screenSize, u8 *width_p, u8 *height_p)
+{
+ switch (screenSize)
+ {
+ case GF_BG_SCR_SIZE_128x128:
+ *width_p = 0x10;
+ *height_p = 0x10;
+ break;
+ case GF_BG_SCR_SIZE_256x256:
+ *width_p = 0x20;
+ *height_p = 0x20;
+ break;
+ case GF_BG_SCR_SIZE_256x512:
+ *width_p = 0x20;
+ *height_p = 0x40;
+ break;
+ case GF_BG_SCR_SIZE_512x256:
+ *width_p = 0x40;
+ *height_p = 0x20;
+ break;
+ case GF_BG_SCR_SIZE_512x512:
+ *width_p = 0x40;
+ *height_p = 0x40;
+ break;
+ case GF_BG_SCR_SIZE_1024x1024:
+ *width_p = 0x80;
+ *height_p = 0x80;
+ break;
+ }
+}
+
+THUMB_FUNC void FreeBgTilemapBuffer(struct BgConfig *bgConfig, u32 bgId)
+{
+ if (bgConfig->bgs[bgId].tilemapBuffer != NULL)
+ {
+ FreeToHeap(bgConfig->bgs[bgId].tilemapBuffer);
+ bgConfig->bgs[bgId].tilemapBuffer = NULL;
+ }
+}
+
+THUMB_FUNC void SetBgPriority(u32 bgId, u16 priority)
+{
+ switch (bgId)
+ {
+ case GF_BG_LYR_MAIN_0:
+ G2_SetBG0Priority(priority);
+ break;
+ case GF_BG_LYR_MAIN_1:
+ G2_SetBG1Priority(priority);
+ break;
+ case GF_BG_LYR_MAIN_2:
+ G2_SetBG2Priority(priority);
+ break;
+ case GF_BG_LYR_MAIN_3:
+ G2_SetBG3Priority(priority);
+ break;
+ case GF_BG_LYR_SUB_0:
+ G2S_SetBG0Priority(priority);
+ break;
+ case GF_BG_LYR_SUB_1:
+ G2S_SetBG1Priority(priority);
+ break;
+ case GF_BG_LYR_SUB_2:
+ G2S_SetBG2Priority(priority);
+ break;
+ case GF_BG_LYR_SUB_3:
+ G2S_SetBG3Priority(priority);
+ break;
+ }
+}
+
+THUMB_FUNC void ToggleBgLayer(u32 bgId, GX_LayerToggle toggle)
+{
+ switch (bgId)
+ {
+ case GF_BG_LYR_MAIN_0:
+ GX_EngineAToggleLayers(GF_BG_LYR_MAIN_0_F, toggle);
+ break;
+ case GF_BG_LYR_MAIN_1:
+ GX_EngineAToggleLayers(GF_BG_LYR_MAIN_1_F, toggle);
+ break;
+ case GF_BG_LYR_MAIN_2:
+ GX_EngineAToggleLayers(GF_BG_LYR_MAIN_2_F, toggle);
+ break;
+ case GF_BG_LYR_MAIN_3:
+ GX_EngineAToggleLayers(GF_BG_LYR_MAIN_3_F, toggle);
+ break;
+ case GF_BG_LYR_SUB_0:
+ GX_EngineBToggleLayers(GF_BG_LYR_SUB_0_F, toggle);
+ break;
+ case GF_BG_LYR_SUB_1:
+ GX_EngineBToggleLayers(GF_BG_LYR_SUB_1_F, toggle);
+ break;
+ case GF_BG_LYR_SUB_2:
+ GX_EngineBToggleLayers(GF_BG_LYR_SUB_2_F, toggle);
+ break;
+ case GF_BG_LYR_SUB_3:
+ GX_EngineBToggleLayers(GF_BG_LYR_SUB_3_F, toggle);
+ break;
+ }
+}
+
+THUMB_FUNC void BgSetPosTextAndCommit(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 val)
+{
+ Bg_SetPosText(&bgConfig->bgs[bgId], op, val);
+
+ u32 x = (u32)bgConfig->bgs[bgId].hOffset;
+ u32 y = (u32)bgConfig->bgs[bgId].vOffset;
+ switch (bgId)
+ {
+ case GF_BG_LYR_MAIN_0:
+ G2_SetBG0Offset(x, y);
+ break;
+ case GF_BG_LYR_MAIN_1:
+ G2_SetBG1Offset(x, y);
+ break;
+ case GF_BG_LYR_MAIN_2:
+ if (bgConfig->bgs[GF_BG_LYR_MAIN_2].mode == 0)
+ {
+ G2_SetBG2Offset(x, y);
+ }
+ else
+ {
+ BgAffineReset(bgConfig, GF_BG_LYR_MAIN_2);
+ }
+
+ break;
+ case GF_BG_LYR_MAIN_3:
+ if (bgConfig->bgs[GF_BG_LYR_MAIN_3].mode == 0)
+ {
+ G2_SetBG3Offset(x, y);
+ }
+ else
+ {
+ BgAffineReset(bgConfig, GF_BG_LYR_MAIN_3);
+ }
+ break;
+ case GF_BG_LYR_SUB_0:
+ G2S_SetBG0Offset(x, y);
+ break;
+ case GF_BG_LYR_SUB_1:
+ G2S_SetBG1Offset(x, y);
+ break;
+ case GF_BG_LYR_SUB_2:
+ if (bgConfig->bgs[GF_BG_LYR_SUB_2].mode == 0)
+ {
+ G2S_SetBG2Offset(x, y);
+ }
+ else
+ {
+ BgAffineReset(bgConfig, GF_BG_LYR_SUB_2);
+ }
+ break;
+ case GF_BG_LYR_SUB_3:
+ if (bgConfig->bgs[GF_BG_LYR_SUB_3].mode == 0)
+ {
+ G2S_SetBG3Offset(x, y);
+ }
+ else
+ {
+ BgAffineReset(bgConfig, GF_BG_LYR_SUB_3);
+ }
+ break;
+ }
+}
+
+THUMB_FUNC fx32 Bg_GetXpos(struct BgConfig *bgConfig, u32 bgId)
+{
+ return bgConfig->bgs[bgId].hOffset;
+}
+
+THUMB_FUNC fx32 Bg_GetYpos(struct BgConfig *bgConfig, u32 bgId)
+{
+ return bgConfig->bgs[bgId].vOffset;
+}
+
+THUMB_FUNC void Bg_SetTextDimAndAffineParams(struct BgConfig *bgConfig,
+ u32 bgId,
+ u32 txOp,
+ fx32 txVal,
+ struct Mtx22 *mtx,
+ fx32 centerX,
+ fx32 centerY)
+{
+ Bg_SetPosText(&bgConfig->bgs[bgId], txOp, txVal);
+ SetBgAffine(bgConfig, bgId, mtx, centerX, centerY);
+}
+
+THUMB_FUNC void Bg_SetPosText(struct Bg *bg, u32 op, fx32 val)
+{
+ switch (op)
+ {
+ case BG_POS_OP_SET_X:
+ bg->hOffset = val;
+ break;
+ case BG_POS_OP_ADD_X:
+ bg->hOffset += val;
+ break;
+ case BG_POS_OP_SUB_X:
+ bg->hOffset -= val;
+ break;
+ case BG_POS_OP_SET_Y:
+ bg->vOffset = val;
+ break;
+ case BG_POS_OP_ADD_Y:
+ bg->vOffset += val;
+ break;
+ case BG_POS_OP_SUB_Y:
+ bg->vOffset -= val;
+ break;
+ }
+}
+
+THUMB_FUNC void SetBgAffine(
+ struct BgConfig *bgConfig, u32 bgId, struct Mtx22 *mtx, fx32 centerX, fx32 centerY)
+{
+ switch (bgId)
+ {
+ case GF_BG_LYR_MAIN_2:
+ G2_SetBG2Affine(mtx, centerX, centerY, bgConfig->bgs[bgId].hOffset, bgConfig->bgs[bgId].vOffset);
+ break;
+ case GF_BG_LYR_MAIN_3:
+ G2_SetBG3Affine(mtx, centerX, centerY, bgConfig->bgs[bgId].hOffset, bgConfig->bgs[bgId].vOffset);
+ break;
+ case GF_BG_LYR_SUB_2:
+ G2S_SetBG2Affine(mtx, centerX, centerY, bgConfig->bgs[bgId].hOffset, bgConfig->bgs[bgId].vOffset);
+ break;
+ case GF_BG_LYR_SUB_3:
+ G2S_SetBG3Affine(mtx, centerX, centerY, bgConfig->bgs[bgId].hOffset, bgConfig->bgs[bgId].vOffset);
+ break;
+ }
+}
+
+THUMB_FUNC void BgAffineReset(struct BgConfig *bgConfig, u32 bgId)
+{
+ struct Mtx22 mtx;
+ MTX22_2DAffine(&mtx, 0, FX32_ONE, FX32_ONE, 0);
+ SetBgAffine(bgConfig, bgId, &mtx, 0, 0);
+}
+
+THUMB_FUNC void CopyOrUncompressTilemapData(const void *src, void *dest, u32 size)
+{
+ if (size == 0)
+ {
+ MI_UncompressLZ8(src, dest);
+ return;
+ }
+
+ if (((u32)src % 4) == 0 && ((u32)dest % 4) == 0 && ((u16)size % 4) == 0)
+ {
+ MI_CpuCopy32(src, dest, size);
+ return;
+ }
+
+ MI_CpuCopy16(src, dest, size);
+}
+
+THUMB_FUNC void BgCommitTilemapBufferToVram(struct BgConfig *bgConfig, u32 bgId)
+{
+ BgCopyOrUncompressTilemapBufferRangeToVram(bgConfig,
+ bgId,
+ bgConfig->bgs[bgId].tilemapBuffer,
+ bgConfig->bgs[bgId].bufferSize,
+ bgConfig->bgs[bgId].baseTile);
+}
+
+THUMB_FUNC void BgCopyOrUncompressTilemapBufferRangeToVram(
+ struct BgConfig *bgConfig, u32 bgId, u32 *src, u32 size, u32 tileOffset)
+{
+ if (size == 0)
+ {
+ void *tilemapBuffer = bgConfig->bgs[bgId].tilemapBuffer;
+ if (tilemapBuffer != 0)
+ {
+ CopyOrUncompressTilemapData(src, tilemapBuffer, size);
+ LoadBgVramScr(bgId, tilemapBuffer, bgConfig->bgs[bgId].baseTile * 2, bgConfig->bgs[bgId].bufferSize);
+ return;
+ }
+
+ u32 uncompSize = src[0] >> 8;
+ void *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, uncompSize);
+ CopyOrUncompressTilemapData(src, ptr, size);
+ LoadBgVramScr(bgId, ptr, tileOffset * 2, uncompSize);
+ FreeToHeap(ptr);
+ return;
+ }
+
+ LoadBgVramScr(bgId, src, tileOffset * 2, size);
+}
+
+THUMB_FUNC void LoadBgVramScr(u32 bgId, void *buffer_p, u32 offset, u32 size)
+{
+ DC_FlushRange(buffer_p, size);
+
+ switch (bgId)
+ {
+ case 0:
+ GX_LoadBG0Scr(buffer_p, offset, size);
+ break;
+ case 1:
+ GX_LoadBG1Scr(buffer_p, offset, size);
+ break;
+ case 2:
+ GX_LoadBG2Scr(buffer_p, offset, size);
+ break;
+ case 3:
+ GX_LoadBG3Scr(buffer_p, offset, size);
+ break;
+ case 4:
+ GXS_LoadBG0Scr(buffer_p, offset, size);
+ break;
+ case 5:
+ GXS_LoadBG1Scr(buffer_p, offset, size);
+ break;
+ case 6:
+ GXS_LoadBG2Scr(buffer_p, offset, size);
+ break;
+ case 7:
+ GXS_LoadBG3Scr(buffer_p, offset, size);
+ break;
+ }
+}
+
+THUMB_FUNC void BG_LoadScreenTilemapData(
+ struct BgConfig *bgConfig, u32 bgId, void *src, u32 numTiles)
+{
+ CopyOrUncompressTilemapData(src, bgConfig->bgs[bgId].tilemapBuffer, numTiles);
+}
+
+THUMB_FUNC void BG_LoadCharTilesData(
+ struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 offset, u32 numTiles)
+{
+ if (bgConfig->bgs[bgId].colorMode == GX_BG_COLORMODE_16)
+ {
+ BG_LoadCharPixelData(bgConfig, bgId, charData, offset, numTiles << 5);
+ return;
+ }
+ BG_LoadCharPixelData(bgConfig, bgId, charData, offset, numTiles << 6);
+}
+
+THUMB_FUNC void BG_LoadCharPixelData(
+ struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 size, u32 offset)
+{
+ if (size == 0)
+ {
+
+ u32 uncompressedSize = charData[0] >> 8;
+ void *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, uncompressedSize);
+ CopyOrUncompressTilemapData(charData, ptr, size);
+ LoadBgVramChar(bgId, ptr, offset, uncompressedSize);
+ FreeToHeap(ptr);
+ return;
+ }
+
+ LoadBgVramChar(bgId, charData, offset, size);
+}
+
+THUMB_FUNC void LoadBgVramChar(u32 bgId, void *buffer_p, u32 offset, u32 size)
+{
+ DC_FlushRange(buffer_p, size);
+
+ switch (bgId)
+ {
+ case GF_BG_LYR_MAIN_0:
+ GX_LoadBG0Char(buffer_p, offset, size);
+ break;
+ case GF_BG_LYR_MAIN_1:
+ GX_LoadBG1Char(buffer_p, offset, size);
+ break;
+ case GF_BG_LYR_MAIN_2:
+ GX_LoadBG2Char(buffer_p, offset, size);
+ break;
+ case GF_BG_LYR_MAIN_3:
+ GX_LoadBG3Char(buffer_p, offset, size);
+ break;
+ case GF_BG_LYR_SUB_0:
+ GXS_LoadBG0Char(buffer_p, offset, size);
+ break;
+ case GF_BG_LYR_SUB_1:
+ GXS_LoadBG1Char(buffer_p, offset, size);
+ break;
+ case GF_BG_LYR_SUB_2:
+ GXS_LoadBG2Char(buffer_p, offset, size);
+ break;
+ case GF_BG_LYR_SUB_3:
+ GXS_LoadBG3Char(buffer_p, offset, size);
+ break;
+ }
+}
+
+THUMB_FUNC void BG_ClearCharDataRange(u32 bgId, u32 size, u32 offset, u32 heap_id)
+{
+ void *ptr = AllocFromHeapAtEnd(heap_id, size);
+ memset(ptr, 0, size);
+
+ LoadBgVramChar(bgId, ptr, offset, size);
+ FreeToHeapExplicit(heap_id, ptr);
+}
+
+THUMB_FUNC void BG_FillCharDataRange(
+ struct BgConfig *param0, u32 bgId, u32 fillValue, u32 count, u32 offset)
+{
+ void *st4;
+ u32 size = count * param0->bgs[bgId].tileSize;
+ u32 r5 = fillValue;
+ st4 = AllocFromHeapAtEnd(param0->heap_id, size);
+
+ if (param0->bgs[bgId].tileSize == 0x20)
+ {
+ r5 = (r5 << 0xc | r5 << 0x8 | r5 << 0x4 | r5);
+ r5 |= r5 << 0x10;
+ }
+ else
+ {
+ r5 = r5 << 0x18 | r5 << 0x10 | r5 << 8 | r5;
+ }
+
+ MI_CpuFillFast(st4, r5, size);
+
+ LoadBgVramChar((u8)bgId, st4, param0->bgs[bgId].tileSize * offset, size);
+ FreeToHeap(st4);
+}
+
+THUMB_FUNC void BG_LoadPlttData(u32 bgId, void *plttData, u32 size, u32 offset)
+{
+ DC_FlushRange(plttData, size);
+ if (bgId < GF_BG_LYR_MAIN_CNT)
+ {
+ GX_LoadBGPltt(plttData, offset, size);
+ return;
+ }
+
+ GXS_LoadBGPltt(plttData, offset, size);
+}
+
+THUMB_FUNC void BG_SetMaskColor(u32 bgId, u32 value)
+{
+ BG_LoadPlttData(bgId, &value, 2, 0);
+}
+
+THUMB_FUNC u16 GetTileMapIndexFromCoords(u8 x, u8 y, u8 screenSize)
+{
+ switch (screenSize)
+ {
+ case GF_BG_SCR_SIZE_128x128:
+ return (u16)(x + (y << 4));
+ case GF_BG_SCR_SIZE_256x256:
+ case GF_BG_SCR_SIZE_256x512:
+ return (u16)(x + (y << 5));
+ case GF_BG_SCR_SIZE_512x256:
+ return (u16)((x & 0x1f) + ((y + (x & ~0x1f)) << 5));
+ case GF_BG_SCR_SIZE_512x512:
+ u16 res = (u16)(((u16)((x >> 5) + (y >> 5) * 2)) << 10);
+ res += (x & 0x1f) + ((y & 0x1f) << 5);
+ return res;
+ case GF_BG_SCR_SIZE_1024x1024:
+ return 0;
+ }
+
+ return x;
+}
+
+THUMB_FUNC u16 GetSrcTileMapIndexFromCoords(u8 x, u8 y, u8 width, u8 height)
+{
+ u8 coordType = 0;
+ u16 r3 = 0;
+ s16 r4 = (s16)(width - 32);
+ s16 r5 = (s16)(height - 32);
+
+ if (((u32)x >> 5) != 0)
+ {
+ coordType++;
+ }
+
+ if (((u32)y >> 5) != 0)
+ {
+ coordType += 2;
+ }
+
+ switch (coordType)
+ {
+ case 0:
+ if (r4 >= 0)
+ {
+ r3 += x + (y << 5);
+ }
+ else
+ {
+ r3 += x + y * width;
+ }
+ break;
+ case 1:
+ if (r5 >= 0)
+ {
+ r3 += 0x400;
+ }
+ else
+ {
+ r3 += (height << 5);
+ }
+
+ r3 += (x & 0x1f) + y * r4;
+ break;
+ case 2:
+ r3 += width << 5;
+ if (r4 >= 0)
+ {
+ r3 += x + ((y & 0x1f) << 5);
+ }
+ else
+ {
+ r3 += x + (y & 0x1f) * width;
+ }
+ break;
+ case 3:
+ r3 += (width + r5) << 5;
+ r3 += (x & 0x1f) + (y & 0x1f) * r4;
+ break;
+ }
+
+ return r3;
+}
+
+THUMB_FUNC void LoadRectToBgTilemapRect(struct BgConfig *bgConfig,
+ u32 bgId,
+ void *src,
+ u8 dstX,
+ u8 dstY,
+ u8 width,
+ u8 height)
+{
+ CopyToBgTilemapRect(bgConfig, bgId, dstX, dstY, width, height, src, 0, 0, width, height);
+}
+
+THUMB_FUNC void CopyToBgTilemapRect(struct BgConfig *bgConfig,
+ u32 bgId,
+ u8 dstX,
+ u8 dstY,
+ u8 dstWidth,
+ u8 dstHeight,
+ void *src,
+ u8 srcX,
+ u8 srcY,
+ u8 srcWidth,
+ u8 srcHeight)
+{
+ if (bgConfig->bgs[bgId].mode != 1)
+ {
+ CopyBgTilemapRectText(&bgConfig->bgs[bgId],
+ dstX,
+ dstY,
+ dstWidth,
+ dstHeight,
+ (u16 *) src,
+ srcX,
+ srcY,
+ srcWidth,
+ srcHeight,
+ 0);
+ }
+ else
+ {
+ CopyBgTilemapRectAffine(&bgConfig->bgs[bgId],
+ dstX,
+ dstY,
+ dstWidth,
+ dstHeight,
+ (u8 *) src,
+ srcX,
+ srcY,
+ srcWidth,
+ srcHeight,
+ 0);
+ }
+}
+
+THUMB_FUNC void CopyRectToBgTilemapRect(struct BgConfig *bgConfig,
+ u32 bgId,
+ u8 dstX,
+ u8 dstY,
+ u8 dstWidth,
+ u8 dstHeight,
+ void *src,
+ u8 srcX,
+ u8 srcY,
+ u8 srcWidth,
+ u8 srcHeight)
+{
+ if (bgConfig->bgs[bgId].mode != 1)
+ {
+ CopyBgTilemapRectText(&bgConfig->bgs[bgId],
+ dstX,
+ dstY,
+ dstWidth,
+ dstHeight,
+ (u16 *) src,
+ srcX,
+ srcY,
+ srcWidth,
+ srcHeight,
+ TRUE);
+ }
+ else
+ {
+ CopyBgTilemapRectAffine(&bgConfig->bgs[bgId],
+ dstX,
+ dstY,
+ dstWidth,
+ dstHeight,
+ (u8 *) src,
+ srcX,
+ srcY,
+ srcWidth,
+ srcHeight,
+ TRUE);
+ }
+}
+
+THUMB_FUNC void CopyBgTilemapRectText(struct Bg *bg,
+ u8 dstX,
+ u8 dstY,
+ u8 dstWidth,
+ u8 dstHeight,
+ u16 *src,
+ u8 srcX,
+ u8 srcY,
+ u8 srcWidth,
+ u8 srcHeight,
+ u8 adjustForSrcDims)
+{
+ u16 *tilemapBuffer = bg->tilemapBuffer;
+
+ if (tilemapBuffer == 0)
+ {
+ return;
+ }
+
+ u8 screenWidth;
+ u8 screenHeight;
+ GetBgScreenDimensions(bg->size, &screenWidth, &screenHeight);
+
+ u8 i;
+ u8 j;
+ if (adjustForSrcDims == 0)
+ {
+ for (i = 0; i < dstHeight; i++)
+ {
+
+ if (dstY + i >= screenHeight)
+ {
+ break;
+ }
+
+ if (srcY + i >= srcHeight)
+ {
+ break;
+ }
+
+ for (j = 0; j < dstWidth; j++)
+ {
+
+ if (dstX + j >= screenWidth)
+ {
+ break;
+ }
+
+ if (srcX + j >= srcWidth)
+ {
+ break;
+ }
+
+ ((u16 *)tilemapBuffer)[GetTileMapIndexFromCoords((u8) (dstX + j), (u8) (dstY + i), bg->size)] =
+ src[srcX + srcWidth * (srcY + i) + j];
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < dstHeight; i++)
+ {
+
+ if (dstY + i >= screenHeight)
+ {
+ break;
+ }
+
+ if (srcY + i >= srcHeight)
+ {
+ break;
+ }
+
+ for (j = 0; j < dstWidth; j++)
+ {
+
+ if (dstX + j >= screenWidth)
+ {
+ break;
+ }
+
+ if (srcX + j >= srcWidth)
+ {
+ break;
+ }
+
+ ((u16 *)tilemapBuffer)[GetTileMapIndexFromCoords((u8) (dstX + j), (u8) (dstY + i), bg->size)] =
+ src[GetSrcTileMapIndexFromCoords((u8) (srcX + j), (u8) (srcY + i), srcWidth, srcHeight)];
+ }
+ }
+ }
+}
+
+THUMB_FUNC void CopyBgTilemapRectAffine(struct Bg *bg,
+ u8 dstX,
+ u8 dstY,
+ u8 dstWidth,
+ u8 dstHeight,
+ u8 *src,
+ u8 srcX,
+ u8 srcY,
+ u8 srcWidth,
+ u8 srcHeight,
+ u8 adjustForSrcDims)
+{
+ void *tilemapBuffer = bg->tilemapBuffer;
+
+ if (tilemapBuffer == 0)
+ {
+ return;
+ }
+
+ u8 screenWidth;
+ u8 screenHeight;
+ GetBgScreenDimensions(bg->size, &screenWidth, &screenHeight);
+
+ u8 i;
+ u8 j;
+ if (adjustForSrcDims == 0)
+ {
+ for (i = 0; i < dstHeight; i++)
+ {
+
+ if (dstY + i >= screenHeight)
+ {
+ break;
+ }
+
+ if (srcY + i >= srcHeight)
+ {
+ break;
+ }
+
+ for (j = 0; j < dstWidth; j++)
+ {
+
+ if (dstX + j >= screenWidth)
+ {
+ break;
+ }
+
+ if (srcX + j >= srcWidth)
+ {
+ break;
+ }
+
+ ((u8 *)tilemapBuffer)[GetTileMapIndexFromCoords((u8) (dstX + j), (u8) (dstY + i), bg->size)] =
+ src[srcX + srcWidth * (srcY + i) + j];
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < dstHeight; i++)
+ {
+
+ if (dstY + i >= screenHeight)
+ {
+ break;
+ }
+
+ if (srcY + i >= srcHeight)
+ {
+ break;
+ }
+
+ for (j = 0; j < dstWidth; j++)
+ {
+
+ if (dstX + j >= screenWidth)
+ {
+ break;
+ }
+
+ if (srcX + j >= srcWidth)
+ {
+ break;
+ }
+
+ ((u8 *)tilemapBuffer)[GetTileMapIndexFromCoords((u8) (dstX + j), (u8) (dstY + i), bg->size)] =
+ src[GetSrcTileMapIndexFromCoords((u8) (srcX + j), (u8) (srcY + i), srcWidth, srcHeight)];
+ }
+ }
+ }
+}
+
+THUMB_FUNC void FillBgTilemapRect(struct BgConfig *bgConfig,
+ u32 bgId,
+ u16 fillValue,
+ u8 x,
+ u8 y,
+ u8 width,
+ u8 height,
+ u8 paletteNum)
+{
+ if (bgConfig->bgs[bgId].mode != 1)
+ {
+
+ FillBgTilemapRectText(&bgConfig->bgs[bgId], fillValue, x, y, width, height, paletteNum);
+ }
+ else
+ {
+ FillBgTilemapRectAffine(&bgConfig->bgs[bgId], (u8) fillValue, x, y, width, height);
+ }
+}
+
+THUMB_FUNC void FillBgTilemapRectText(struct Bg *bg,
+ u16 fillValue,
+ u8 x,
+ u8 y,
+ u8 width,
+ u8 height,
+ u8 paletteNum)
+{
+ void *tilemapBuffer = bg->tilemapBuffer;
+
+ if (tilemapBuffer != 0)
+ {
+
+ u8 screenWidth;
+ u8 screenHeight;
+ GetBgScreenDimensions(bg->size, &screenWidth, &screenHeight);
+
+ u8 i;
+ u8 j;
+ for (i = y; i < y + height; i++)
+ {
+ if (i >= screenHeight)
+ {
+ break;
+ }
+
+ for (j = x; j < x + width; j++)
+ {
+ if (j >= screenWidth)
+ {
+ break;
+ }
+
+ u16 idx = GetTileMapIndexFromCoords(j, i, bg->size);
+
+ if (paletteNum == 0x11)
+ {
+ ((u16 *)tilemapBuffer)[idx] = fillValue;
+ }
+ else if (paletteNum == 0x10)
+ {
+ ((u16 *)tilemapBuffer)[idx] = (u16)((((u16 *)tilemapBuffer)[idx] & 0xF000) + fillValue);
+ }
+ else
+ {
+ ((u16 *)tilemapBuffer)[idx] = (u16)((paletteNum << 0xc) + fillValue);
+ }
+ }
+ }
+ }
+}
+
+THUMB_FUNC void FillBgTilemapRectAffine(
+ struct Bg *bg, u8 fillValue, u8 x, u8 y, u8 width, u8 height)
+{
+ void *tilemapBuffer = bg->tilemapBuffer;
+
+ if (tilemapBuffer != 0)
+ {
+
+ u8 screenWidth;
+ u8 screenHeight;
+ GetBgScreenDimensions(bg->size, &screenWidth, &screenHeight);
+
+ u8 i;
+ u8 j;
+ for (i = y; i < y + height; i++)
+ {
+ if (i >= screenHeight)
+ {
+ break;
+ }
+
+ for (j = x; j < x + width; j++)
+ {
+ if (j >= screenWidth)
+ {
+ break;
+ }
+
+ ((u8 *)tilemapBuffer)[GetTileMapIndexFromCoords(j, i, bg->size)] = fillValue;
+ }
+ }
+ }
+}
+
+THUMB_FUNC void BgTilemapRectChangePalette(struct BgConfig *bgConfig,
+ u32 bgId,
+ u8 x,
+ u8 y,
+ u8 width,
+ u8 height,
+ u8 paletteNum)
+{
+ void *tilemapBuffer = bgConfig->bgs[bgId].tilemapBuffer;
+
+ if (tilemapBuffer != NULL)
+ {
+ u8 screenWidth;
+ u8 screenHeight;
+ GetBgScreenDimensions(bgConfig->bgs[bgId].size, &screenWidth, &screenHeight);
+
+ u8 i;
+ u8 j;
+ for (i = y; i < y + height; i++)
+ {
+ if (i >= screenHeight)
+ {
+ break;
+ }
+
+ for (j = x; j < x + width; j++)
+ {
+ if (j >= screenWidth)
+ {
+ break;
+ }
+
+ u16 idx = GetTileMapIndexFromCoords(j, i, bgConfig->bgs[bgId].size);
+ ((u16 *)tilemapBuffer)[idx] = (u16)((((u16 *)tilemapBuffer)[idx] & 0xfff) | (paletteNum << 0xc));
+ }
+ }
+ }
+}
+
+THUMB_FUNC void BgClearTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId)
+{
+ if (bgConfig->bgs[bgId].tilemapBuffer != NULL)
+ {
+ MI_CpuClear16(bgConfig->bgs[bgId].tilemapBuffer, bgConfig->bgs[bgId].bufferSize);
+ BgCommitTilemapBufferToVram(bgConfig, bgId);
+ }
+}
+
+THUMB_FUNC void BgFillTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId, u16 fillValue)
+{
+ if (bgConfig->bgs[bgId].tilemapBuffer != NULL)
+ {
+ MI_CpuFill16(bgConfig->bgs[bgId].tilemapBuffer, fillValue, bgConfig->bgs[bgId].bufferSize);
+ BgCommitTilemapBufferToVram(bgConfig, bgId);
+ }
+}
+
+THUMB_FUNC void BgFillTilemapBufferAndSchedule(struct BgConfig *bgConfig, u32 bgId, u16 fillValue)
+{
+ if (bgConfig->bgs[bgId].tilemapBuffer != NULL)
+ {
+ MI_CpuFill16(bgConfig->bgs[bgId].tilemapBuffer, fillValue, bgConfig->bgs[bgId].bufferSize);
+ ScheduleBgTilemapBufferTransfer(bgConfig, bgId);
+ }
+}
+
+THUMB_FUNC void *BgGetCharPtr(u32 bgId)
+{
+ switch (bgId)
+ {
+ case GF_BG_LYR_MAIN_0:
+ return G2_GetBG0CharPtr();
+ case GF_BG_LYR_MAIN_1:
+ return G2_GetBG1CharPtr();
+ case GF_BG_LYR_MAIN_2:
+ return G2_GetBG2CharPtr();
+ case GF_BG_LYR_MAIN_3:
+ return G2_GetBG3CharPtr();
+ case GF_BG_LYR_SUB_0:
+ return G2S_GetBG0CharPtr();
+ case GF_BG_LYR_SUB_1:
+ return G2S_GetBG1CharPtr();
+ case GF_BG_LYR_SUB_2:
+ return G2S_GetBG2CharPtr();
+ case GF_BG_LYR_SUB_3:
+ return G2S_GetBG3CharPtr();
+ }
+
+ return NULL;
+}
+
+THUMB_FUNC void Convert4bppTo8bppInternal(u8 *src4bpp, u32 size, u8 (*dest8bpp), u8 paletteNum)
+{
+ paletteNum <<= 4;
+ for (u32 i = 0; i < size; i++)
+ {
+ dest8bpp[i * 2 + 0] = (u8)(src4bpp[i] & 0xf);
+ if (dest8bpp[i * 2 + 0] != 0)
+ {
+ dest8bpp[i * 2 + 0] += paletteNum;
+ }
+
+ dest8bpp[i * 2 + 1] = (u8)((src4bpp[i] >> 4) & 0xf);
+ if (dest8bpp[i * 2 + 1] != 0)
+ {
+ dest8bpp[i * 2 + 1] += paletteNum;
+ }
+ }
+}
+
+THUMB_FUNC u8 *Convert4bppTo8bpp(u8 *src4Bpp, u32 size, u8 paletteNum, u32 heap_id)
+{
+ u8 *ptr = (u8*)AllocFromHeap(heap_id, size * 2);
+
+ Convert4bppTo8bppInternal(src4Bpp, size, ptr, paletteNum);
+
+ return ptr;
+}
+
+THUMB_FUNC void *GetBgTilemapBuffer(struct BgConfig *bgConfig, u8 bgId)
+{
+ return bgConfig->bgs[bgId].tilemapBuffer;
+}
+
+THUMB_FUNC u16 GetBgAffineRotation(struct BgConfig *bgConfig, u32 bgId)
+{
+ return bgConfig->bgs[bgId].rotation;
+}
+
+THUMB_FUNC u8 GetBgPriority(struct BgConfig *bgConfig, u32 bgId)
+{
+ switch (bgId)
+ {
+ case GF_BG_LYR_MAIN_0:
+ return G2_GetBG0Control().priority;
+ case GF_BG_LYR_MAIN_1:
+ return G2_GetBG1Control().priority;
+ case GF_BG_LYR_MAIN_2:
+ switch (bgConfig->bgs[bgId].mode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ return G2_GetBG2ControlText().priority;
+ case GF_BG_TYPE_AFFINE:
+ return G2_GetBG2ControlAffine().priority;
+ case GF_BG_TYPE_256x16PLTT:
+ return G2_GetBG2Control256x16Pltt().priority;
+ }
+ break;
+ case GF_BG_LYR_MAIN_3:
+ switch (bgConfig->bgs[bgId].mode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ return G2_GetBG3ControlText().priority;
+ case GF_BG_TYPE_AFFINE:
+ return G2_GetBG3ControlAffine().priority;
+ case GF_BG_TYPE_256x16PLTT:
+ return G2_GetBG3Control256x16Pltt().priority;
+ }
+ break;
+
+ case GF_BG_LYR_SUB_0:
+ return G2S_GetBG0Control().priority;
+ case GF_BG_LYR_SUB_1:
+ return G2S_GetBG1Control().priority;
+
+ case GF_BG_LYR_SUB_2:
+ switch (bgConfig->bgs[bgId].mode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ return G2S_GetBG2ControlText().priority;
+ case GF_BG_TYPE_AFFINE:
+ return G2S_GetBG2ControlAffine().priority;
+ case GF_BG_TYPE_256x16PLTT:
+ return G2S_GetBG2Control256x16Pltt().priority;
+ }
+ break;
+ case GF_BG_LYR_SUB_3:
+ switch (bgConfig->bgs[bgId].mode)
+ {
+ default:
+ case GF_BG_TYPE_TEXT:
+ return G2S_GetBG3ControlText().priority;
+ case GF_BG_TYPE_AFFINE:
+ return G2S_GetBG3ControlAffine().priority;
+ case GF_BG_TYPE_256x16PLTT:
+ return G2S_GetBG3Control256x16Pltt().priority;
+ }
+ break;
+ }
+
+ return 0;
+}
+
+THUMB_FUNC void BlitBitmapRect4Bit(const struct Bitmap *src,
+ const struct Bitmap *dst,
+ u16 srcX,
+ u16 srcY,
+ u16 dstX,
+ u16 dstY,
+ u16 width,
+ u16 height,
+ u16 colorKey)
+{
+ int xEnd, yEnd;
+ int multiplierSrcY, multiplierDstY;
+ int loopSrcY, loopDstY;
+ int loopSrcX, loopDstX;
+ int toOrr, toShift;
+ u8 * pixelsSrc, * pixelsDst;
+
+ if (dst->width - dstX < width)
+ xEnd = dst->width - dstX + srcX;
+ else
+ xEnd = width + srcX;
+ if (dst->height - dstY < height)
+ yEnd = dst->height - dstY + srcY;
+ else
+ yEnd = height + srcY;
+ multiplierSrcY = (src->width + (src->width & 7)) >> 3;
+ multiplierDstY = (dst->width + (dst->width & 7)) >> 3;
+
+ if (colorKey == 0xFFFF)
+ {
+ for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++)
+ {
+ for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++)
+ {
+ pixelsSrc = (u8 *)(src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX << 2) & 0x3FE0) + (((loopSrcY << 2) & 0x3FE0) * multiplierSrcY) + (((loopSrcY << 2) & 0x1C)));
+ pixelsDst = (u8 *)(dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX << 2) & 0x3FE0) + (((loopDstY << 2) & 0x3FE0) * multiplierDstY) + (((loopDstY << 2) & 0x1C)));
+
+ toOrr = (*pixelsSrc >> ((loopSrcX & 1) * 4)) & 0xF;
+ toShift = (loopDstX & 1) * 4;
+ *pixelsDst = ((toOrr << toShift) | (*pixelsDst & (0xF0 >> toShift)));
+ }
+ }
+ }
+ else
+ {
+ for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++)
+ {
+ for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++)
+ {
+ pixelsSrc = (u8 *)(src->pixels + ((loopSrcX >> 1) & 3) + ((loopSrcX << 2) & 0x3FE0) + (((loopSrcY << 2) & 0x3FE0) * multiplierSrcY) + ((u32)((loopSrcY << 2) & 0x1C)));
+ pixelsDst = (u8 *)(dst->pixels + ((loopDstX >> 1) & 3) + ((loopDstX << 2) & 0x3FE0) + (((loopDstY << 2) & 0x3FE0) * multiplierDstY) + ((u32)((loopDstY << 2) & 0x1C)));
+
+ toOrr = (*pixelsSrc >> ((loopSrcX & 1) * 4)) & 0xF;
+ if (toOrr != colorKey)
+ {
+ toShift = (loopDstX & 1) * 4;
+ *pixelsDst = (u8) ((toOrr << toShift) | (*pixelsDst & (0xF0 >> toShift)));
+ }
+ }
+ }
+ }
+}
+
+THUMB_FUNC void BlitBitmapRect8Bit(const struct Bitmap *src,
+ const struct Bitmap *dst,
+ u16 srcX,
+ u16 srcY,
+ u16 dstX,
+ u16 dstY,
+ u16 width,
+ u16 height,
+ u16 colorKey)
+{
+ int xEnd, yEnd;
+ int multiplierSrcY, multiplierDstY;
+ int loopSrcY, loopDstY;
+ int loopSrcX, loopDstX;
+ u8 * pixelsSrc, * pixelsDst;
+
+ if (dst->width - dstX < width)
+ xEnd = dst->width - dstX + srcX;
+ else
+ xEnd = width + srcX;
+ if (dst->height - dstY < height)
+ yEnd = dst->height - dstY + srcY;
+ else
+ yEnd = height + srcY;
+ multiplierSrcY = (src->width + (src->width & 7)) >> 3;
+ multiplierDstY = (dst->width + (dst->width & 7)) >> 3;
+
+ if (colorKey == 0xFFFF)
+ {
+ for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++)
+ {
+ for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++)
+ {
+ pixelsSrc = (u8 *)(src->pixels + ((loopSrcX >> 0) & 7) + ((loopSrcX << 3) & 0x7FC0) + (((loopSrcY << 3) & 0x7FC0) * multiplierSrcY) + (((loopSrcY << 3) & 0x38)));
+ pixelsDst = (u8 *)(dst->pixels + ((loopDstX >> 0) & 7) + ((loopDstX << 3) & 0x7FC0) + (((loopDstY << 3) & 0x7FC0) * multiplierDstY) + (((loopDstY << 3) & 0x38)));
+
+ *pixelsDst = *pixelsSrc;
+ }
+ }
+ }
+ else
+ {
+ for (loopSrcY = srcY, loopDstY = dstY; loopSrcY < yEnd; loopSrcY++, loopDstY++)
+ {
+ for (loopSrcX = srcX, loopDstX = dstX; loopSrcX < xEnd; loopSrcX++, loopDstX++)
+ {
+ pixelsSrc = (u8 *)(src->pixels + ((loopSrcX >> 0) & 7) + ((loopSrcX << 3) & 0x7FC0) + (((loopSrcY << 3) & 0x7FC0) * multiplierSrcY) + (((loopSrcY << 3) & 0x38)));
+ pixelsDst = (u8 *)(dst->pixels + ((loopDstX >> 0) & 7) + ((loopDstX << 3) & 0x7FC0) + (((loopDstY << 3) & 0x7FC0) * multiplierDstY) + (((loopDstY << 3) & 0x38)));
+
+ if (*pixelsSrc != colorKey)
+ *pixelsDst = *pixelsSrc;
+ }
+ }
+ }
+}
+
+THUMB_FUNC void FillBitmapRect4Bit(
+ struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue)
+{
+
+ int r6 = x + width;
+ if (r6 > surface->width)
+ {
+ r6 = surface->width;
+ }
+
+ int r12 = y + height;
+ if (r12 > surface->height)
+ {
+ r12 = surface->height;
+ }
+
+ int lr = (((surface->width) + (surface->width & 7)) >> 3);
+
+ for (int i = y; i < r12; i++)
+ {
+
+ for (int j = x; j < r6; j++)
+ {
+
+ u8 *unk = (u8 *)((u8 *)surface->pixels + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) +
+ (((i << 2) & 0x3fe0) * lr) + ((i << 2) & 0x1c));
+
+ if ((j & 1) != 0)
+ {
+ *unk &= 0xf;
+ *unk |= (fillValue << 4);
+ }
+ else
+ {
+ *unk &= 0xf0;
+ *unk |= fillValue;
+ }
+ }
+ }
+}
+
+THUMB_FUNC void FillBitmapRect8Bit(
+ struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue)
+{
+
+ int r6 = x + width;
+ if (r6 > surface->width)
+ {
+ r6 = surface->width;
+ }
+
+ int r12 = y + height;
+ if (r12 > surface->height)
+ {
+ r12 = surface->height;
+ }
+
+ int lr = (((surface->width) + (surface->width & 7)) >> 3);
+
+ for (int i = y; i < r12; i++)
+ {
+
+ for (int j = x; j < r6; j++)
+ {
+
+ u8 *unk = (u8 *)((u8 *)surface->pixels + (j & 7) + ((j << 3) & 0x7fc0) +
+ (((i << 3) & 0x7fc0) * lr) + ((i << 3) & 0x38));
+
+ *unk = fillValue;
+ }
+ }
+}
+
+THUMB_FUNC struct Window *AllocWindows(u32 heap_id, s32 size)
+{
+ struct Window *ptr = AllocFromHeap(heap_id, (u32)(size << 4));
+
+ for (u16 i = 0; i < size; i++)
+ {
+ InitWindow(&ptr[i]);
+ }
+
+ return ptr;
+}
+
+THUMB_FUNC void InitWindow(struct Window *window)
+{
+ window->bgConfig = NULL;
+ window->bgId = GF_BG_LYR_UNALLOC;
+ window->tilemapLeft = 0;
+ window->tilemapTop = 0;
+ window->width = 0;
+ window->height = 0;
+ window->paletteNum = 0;
+
+ window->baseTile = 0;
+ window->pixelBuffer = NULL;
+
+ window->colorMode = GF_BG_CLR_4BPP;
+}
+
+THUMB_FUNC BOOL WindowIsInUse(struct Window *window)
+{
+ if (window->bgConfig == NULL || window->bgId == 0xff || window->pixelBuffer == NULL)
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+THUMB_FUNC void AddWindowParameterized(struct BgConfig *param0,
+ struct Window *window,
+ u8 bgId,
+ u8 tilemapLeft,
+ u8 tilemapTop,
+ u8 width,
+ u8 height,
+ u8 paletteNum,
+ u16 baseTile)
+{
+ if (param0->bgs[bgId].tilemapBuffer == NULL)
+ {
+ return;
+ }
+
+ void *ptr = AllocFromHeap(param0->heap_id, (u32)(width * height * param0->bgs[bgId].tileSize));
+
+ if (ptr == NULL)
+ {
+ return;
+ }
+ window->bgConfig = param0;
+ window->bgId = bgId;
+ window->tilemapLeft = tilemapLeft;
+ window->tilemapTop = tilemapTop;
+ window->width = width;
+ window->height = height;
+ window->paletteNum = paletteNum;
+
+ window->baseTile = baseTile;
+ window->pixelBuffer = ptr;
+
+ window->colorMode = param0->bgs[bgId].colorMode == GX_BG_COLORMODE_16 ? GF_BG_CLR_4BPP : GF_BG_CLR_8BPP;
+}
+
+THUMB_FUNC void AddTextWindowTopLeftCorner(struct BgConfig *param0,
+ struct Window *window,
+ u8 width,
+ u8 height,
+ u16 baseTile,
+ u8 paletteNum)
+{
+ u32 size = (u32)(width * height * 32);
+
+ void *ptr = AllocFromHeap(param0->heap_id, size);
+
+ paletteNum |= (paletteNum * 16);
+ memset(ptr, paletteNum, size);
+
+ if (ptr != NULL)
+ {
+ window->bgConfig = param0;
+ window->width = width;
+ window->height = height;
+ window->baseTile = baseTile;
+ window->pixelBuffer = ptr;
+ window->colorMode = GF_BG_CLR_4BPP;
+ }
+}
+
+THUMB_FUNC void AddWindow(
+ struct BgConfig *bgConfig, struct Window *window, const struct WindowTemplate *template)
+{
+
+ AddWindowParameterized(bgConfig,
+ window,
+ template->bgId,
+ template->tilemapLeft,
+ template->tilemapTop,
+ template->width,
+ template->height,
+ template->paletteNum,
+ template->baseTile);
+}
+
+THUMB_FUNC void RemoveWindow(struct Window *window)
+{
+ FreeToHeap(window->pixelBuffer);
+
+ window->bgConfig = NULL;
+ window->bgId = 0xff;
+ window->tilemapLeft = 0;
+ window->tilemapTop = 0;
+ window->width = 0;
+ window->height = 0;
+ window->paletteNum = 0;
+ window->baseTile = 0;
+ window->pixelBuffer = NULL;
+}
+
+THUMB_FUNC void WindowArray_dtor(struct Window *windows, int count)
+{
+ for (u16 i = 0; i < count; i++)
+ {
+ if (windows[i].pixelBuffer != NULL)
+ {
+ FreeToHeap(windows[i].pixelBuffer);
+ }
+ }
+
+ FreeToHeap(windows);
+}
+
+THUMB_FUNC void CopyWindowToVram(struct Window *window)
+{
+
+ GF_ASSERT(window != NULL);
+ GF_ASSERT(window->bgConfig != NULL);
+ GF_ASSERT(window->bgId < NELEMS(window->bgConfig->bgs));
+ GF_ASSERT(window->bgConfig->bgs[window->bgId].mode < NELEMS(sCopyWindowToVramFuncs));
+
+ sCopyWindowToVramFuncs[window->bgConfig->bgs[window->bgId].mode](window);
+}
+
+THUMB_FUNC void ScheduleWindowCopyToVram(struct Window *window)
+{
+
+ GF_ASSERT(window);
+ GF_ASSERT(window->bgConfig);
+ GF_ASSERT(window->bgId < NELEMS(window->bgConfig->bgs));
+ GF_ASSERT(window->bgConfig->bgs[window->bgId].mode < NELEMS(sScheduleWindowCopyToVramFuncs));
+
+ sScheduleWindowCopyToVramFuncs[window->bgConfig->bgs[window->bgId].mode](window);
+}
+
+THUMB_FUNC void PutWindowTilemap(struct Window *window)
+{
+ sPutWindowTilemapFuncs[window->bgConfig->bgs[window->bgId].mode](window);
+}
+
+THUMB_FUNC void PutWindowTilemapRectAnchoredTopLeft(struct Window *window, u8 width, u8 height)
+{
+ u8 widthBak = window->width;
+ u8 heightBak = window->height;
+
+ window->width = width;
+ window->height = height;
+ sPutWindowTilemapFuncs[window->bgConfig->bgs[window->bgId].mode](window);
+
+ window->width = widthBak;
+ window->height = heightBak;
+}
+
+THUMB_FUNC void ClearWindowTilemap(struct Window *window)
+{
+ sClearWindowTilemapFuncs[window->bgConfig->bgs[window->bgId].mode](window);
+}
+
+THUMB_FUNC void PutWindowTilemap_TextMode(struct Window *param0)
+{
+ u32 i, j;
+ u32 r3;
+ u32 iCount, jCount;
+ u16 *st4 = param0->bgConfig->bgs[param0->bgId].tilemapBuffer;
+
+ if (st4 == NULL)
+ {
+ return;
+ }
+
+ r3 = param0->baseTile;
+ jCount = (u32)(param0->tilemapLeft + param0->width);
+ iCount = (u32)(param0->tilemapTop + param0->height);
+
+ for (i = param0->tilemapTop; i < iCount; i++)
+ {
+ for (j = param0->tilemapLeft; j < jCount; j++)
+ {
+ st4[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) << 5) + (j & 0x1f)] =
+ (u16)(r3 | (param0->paletteNum << 12));
+
+ r3++;
+ }
+ }
+}
+
+THUMB_FUNC void PutWindowTilemap_AffineMode(struct Window *window)
+{
+ int j, i;
+ u8 *dst;
+
+ int tileId;
+ int tilemapWidth;
+
+ if (window->bgConfig->bgs[window->bgId].tilemapBuffer == NULL)
+ {
+ return;
+ }
+
+ tilemapWidth = sTilemapWidthByBufferSize[window->bgConfig->bgs[window->bgId].size];
+
+ dst = window->bgConfig->bgs[window->bgId].tilemapBuffer + window->tilemapTop * tilemapWidth + window->tilemapLeft;
+ tileId = window->baseTile;
+
+ for (i = 0; i < window->height; i++)
+ {
+ for (j = 0; j < window->width; j++)
+ {
+ dst[j] = (u8)tileId;
+ tileId++;
+ }
+ dst += tilemapWidth;
+ }
+}
+
+THUMB_FUNC void ClearWindowTilemapText(struct Window *window)
+{
+
+ u32 i, j;
+
+ u32 yEnd, xEnd;
+ u32 tilemapWidth;
+
+ u16 *dst;
+
+ if (window->bgConfig->bgs[window->bgId].tilemapBuffer == NULL)
+ {
+ return;
+ }
+ dst = window->bgConfig->bgs[window->bgId].tilemapBuffer;
+
+ tilemapWidth = sTilemapWidthByBufferSize[window->bgConfig->bgs[window->bgId].size];
+ xEnd = (u32)(window->tilemapLeft + window->width);
+ yEnd = (u32)(window->tilemapTop + window->height);
+
+ for (i = window->tilemapTop; i < yEnd; i++)
+ {
+ for (j = window->tilemapLeft; j < xEnd; j++)
+ {
+ dst[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) * tilemapWidth) + (j & 0x1f)] = 0;
+ }
+ }
+}
+
+THUMB_FUNC void ClearWindowTilemapAffine(struct Window *window)
+{
+
+ int j, i;
+ u8 *dstPos;
+
+ int tilemapWidth;
+
+ if (window->bgConfig->bgs[window->bgId].tilemapBuffer == NULL)
+ {
+ return;
+ }
+
+ tilemapWidth = sTilemapWidthByBufferSize[window->bgConfig->bgs[window->bgId].size];
+ dstPos = window->bgConfig->bgs[window->bgId].tilemapBuffer + window->tilemapTop * tilemapWidth + window->tilemapLeft;
+
+ for (i = 0; i < window->height; i++)
+ {
+ for (j = 0; j < window->width; j++)
+ {
+ dstPos[j] = 0;
+ }
+ dstPos += tilemapWidth;
+ }
+}
+
+THUMB_FUNC void CopyWindowToVram_TextMode(struct Window *window)
+{
+ PutWindowTilemap_TextMode(window);
+ CopyWindowPixelsToVram_TextMode(window);
+ BgCopyOrUncompressTilemapBufferRangeToVram(window->bgConfig,
+ window->bgId,
+ window->bgConfig->bgs[window->bgId].tilemapBuffer,
+ window->bgConfig->bgs[window->bgId].bufferSize,
+ window->bgConfig->bgs[window->bgId].baseTile);
+}
+
+THUMB_FUNC void ScheduleWindowCopyToVram_TextMode(struct Window *window)
+{
+ PutWindowTilemap_TextMode(window);
+ ScheduleBgTilemapBufferTransfer(window->bgConfig, window->bgId);
+ CopyWindowPixelsToVram_TextMode(window);
+}
+
+THUMB_FUNC void CopyWindowToVram_AffineMode(struct Window *window)
+{
+ PutWindowTilemap_AffineMode(window);
+ BgCopyOrUncompressTilemapBufferRangeToVram(window->bgConfig,
+ window->bgId,
+ window->bgConfig->bgs[window->bgId].tilemapBuffer,
+ window->bgConfig->bgs[window->bgId].bufferSize,
+ window->bgConfig->bgs[window->bgId].baseTile);
+
+ BG_LoadCharTilesData(window->bgConfig,
+ window->bgId,
+ window->pixelBuffer,
+ (u32)(window->width * window->height * 64),
+ window->baseTile);
+}
+
+THUMB_FUNC void ScheduleWindowCopyToVram_AffineMode(struct Window *window)
+{
+ PutWindowTilemap_AffineMode(window);
+ ScheduleBgTilemapBufferTransfer(window->bgConfig, window->bgId);
+ BG_LoadCharTilesData(window->bgConfig,
+ window->bgId,
+ window->pixelBuffer,
+ (u32)(window->width * window->height * 64),
+ window->baseTile);
+}
+
+THUMB_FUNC void CopyWindowPixelsToVram_TextMode(struct Window *window)
+{
+ BG_LoadCharTilesData(window->bgConfig,
+ window->bgId,
+ window->pixelBuffer,
+ (u32)(window->width * window->height * window->bgConfig->bgs[window->bgId].tileSize),
+ window->baseTile);
+}
+
+THUMB_FUNC void ClearWindowTilemapAndCopyToVram(struct Window *window)
+{
+ sClearWindowTilemapAndCopyToVramFuncs[window->bgConfig->bgs[window->bgId].mode](window);
+}
+
+THUMB_FUNC void ClearWindowTilemapAndScheduleTransfer(struct Window *window)
+{
+ sClearWindowTilemapAndScheduleTransferFuncs[window->bgConfig->bgs[window->bgId].mode](window);
+}
+
+THUMB_FUNC void ClearWindowTilemapAndCopyToVram_TextMode(struct Window *window)
+{
+ ClearWindowTilemapText(window);
+ BgCopyOrUncompressTilemapBufferRangeToVram(window->bgConfig,
+ window->bgId,
+ window->bgConfig->bgs[window->bgId].tilemapBuffer,
+ window->bgConfig->bgs[window->bgId].bufferSize,
+ window->bgConfig->bgs[window->bgId].baseTile);
+}
+
+THUMB_FUNC void ClearWindowTilemapAndScheduleTransfer_TextMode(struct Window *window)
+{
+ ClearWindowTilemapText(window);
+ ScheduleBgTilemapBufferTransfer(window->bgConfig, window->bgId);
+}
+
+THUMB_FUNC void ClearWindowTilemapAndCopyToVram_AffineMode(struct Window *window)
+{
+ ClearWindowTilemapAffine(window);
+ BgCopyOrUncompressTilemapBufferRangeToVram(window->bgConfig,
+ window->bgId,
+ window->bgConfig->bgs[window->bgId].tilemapBuffer,
+ window->bgConfig->bgs[window->bgId].bufferSize,
+ window->bgConfig->bgs[window->bgId].baseTile);
+}
+
+THUMB_FUNC void ClearWindowTilemapAndScheduleTransfer_AffineMode(struct Window *window)
+{
+ ClearWindowTilemapAffine(window);
+ ScheduleBgTilemapBufferTransfer(window->bgConfig, window->bgId);
+}
+
+THUMB_FUNC void FillWindowPixelBuffer(struct Window *window, u8 param1)
+{
+ if (window->bgConfig->bgs[window->bgId].tileSize == 0x20)
+ {
+ param1 |= param1 << 4;
+ }
+
+ MI_CpuFillFast(
+ window->pixelBuffer,
+ (u32)((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1),
+ (u32)(window->bgConfig->bgs[window->bgId].tileSize * window->width * window->height));
+}
+
+THUMB_FUNC void BlitBitmapRectToWindow(struct Window *window,
+ const void *src,
+ u16 srcX,
+ u16 srcY,
+ u16 srcWidth,
+ u16 srcHeight,
+ u16 dstX,
+ u16 dstY,
+ u16 dstWidth,
+ u16 dstHeight)
+{
+ BlitBitmapRect(
+ window, src, srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, 0);
+}
+
+THUMB_FUNC void BlitBitmapRect(struct Window *window,
+ void *param1,
+ u16 param2,
+ u16 param3,
+ u16 param4,
+ u16 param5,
+ u16 param6,
+ u16 param7,
+ u16 param8,
+ u16 param9,
+ u16 param10)
+{
+ struct Bitmap st1c = { param1, param4, param5 };
+ struct Bitmap st14 = {
+ window->pixelBuffer, (u16)(window->width << 3), (u16)(window->height << 3)
+ };
+
+ if (window->bgConfig->bgs[window->bgId].colorMode == GX_BG_COLORMODE_16)
+ {
+ BlitBitmapRect4Bit(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10);
+ }
+ else
+ {
+ BlitBitmapRect8Bit(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10);
+ }
+}
+
+THUMB_FUNC void FillWindowPixelRect(
+ struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height)
+{
+ struct Bitmap st8 = {
+ window->pixelBuffer, (u16)(window->width << 3), (u16)(window->height << 3)
+ };
+
+ if (window->bgConfig->bgs[window->bgId].colorMode == GX_BG_COLORMODE_16)
+ {
+ FillBitmapRect4Bit(&st8, x, y, width, height, fillValue);
+ }
+ else
+ {
+ FillBitmapRect8Bit(&st8, x, y, width, height, fillValue);
+ }
+}
+
+#ifdef NONMATCHING
+THUMB_FUNC void CopyGlyphToWindow(
+ struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6)
+{
+ u32 str330 = param6;
+ u32 *st0 = param1;
+ u16 st5c = param4;
+
+ void *st278 = window->unk0c;
+ u16 st58 = window->width << 3;
+
+ int st8 = st58 - st5c;
+
+ if (st8 >= param2)
+ {
+ st8 = param2;
+ }
+
+ int st4 = (u16)(window->height << 3) - param5;
+ u16 st48 = param5;
+
+ if (st4 >= param3)
+ {
+ st4 = param3;
+ }
+
+ u8 r4 = 0;
+ if (st8 > 8)
+ {
+ r4 |= 1;
+ }
+
+ if (st4 > 8)
+ {
+ r4 |= 2;
+ }
+
+ if (window->unk0b_15 == 0)
+ {
+ switch (r4)
+ {
+ case 0:
+ u8 st70 = param6;
+ for (u32 st274 = 0; st274 < st4; st274++)
+ {
+ u32 st6c = (st58 + (st58 & 7)) >> 3;
+
+ u32 st26c = st0[0];
+ u8 st270 = (u8)((st70 >> st274) & 1);
+ u32 r2 = st5c;
+
+ for (u32 r1 = 0; r1 < st8; r1++)
+ {
+ u32 r3 = st5c << 2;
+ u32 st68 = ((st48 << 2) & 0x3fe0) * st6c;
+ u32 r7 = (st48 << 2) & 0x1c;
+ u32 st64 = (((st48 + 1) << 2) & 0x3fe0) * st6c;
+ u32 st60 = ((st48 + 1) << 2) & 0x1c;
+ u32 r4 = r1;
+
+ void *st27c = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0);
+ u8 *r0 = st27c + st68;
+
+ u8 r5 = (u8)((st26c >> r4) & 0xf);
+ if (r5 != 0)
+ {
+ u32 st280 = (r5 << ((r2 & 1) << 2));
+ u32 st284 = r0[r7];
+
+ u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st284) | st280;
+ r0[r7] = r5;
+
+ if (st270 != 0)
+ {
+ *(u8 *)(st27c + st64 + st60) = r5;
+ }
+ }
+
+ r4 += 4;
+ r3 += 4;
+ r2 += 1;
+ }
+
+ if (st270 != 0)
+ {
+ st48 += 2;
+ }
+ else
+ {
+ st48++;
+ }
+
+ st0++;
+ }
+
+ break;
+
+ case 1:
+ u32 *st25c = st0;
+ u32 st264 = st48;
+ u8 st54 = param6;
+ u8 st84 = param6;
+
+ for (u32 st268 = 0; st268 < st4; st268++)
+ {
+ u32 st80 = (st58 + (st58 & 7)) >> 3;
+
+ u32 st258 = *st25c;
+ u32 r2 = st5c;
+ u8 st260 = (st84 >> st268) & 1;
+ u32 r3 = st5c << 2;
+ u32 st7c = ((st264 << 2) & 0x3fe0) * st80;
+ u32 r7 = (st264 << 2) & 0x1c;
+ u32 st78 = (((st264 + 1) << 2) & 0x3fe0) * st80;
+ u32 st74 = ((st264 + 1) << 2) & 0x1c;
+ u32 r4 = 0;
+
+ for (u32 r1 = 0; r1 < 8; r1++)
+ {
+ void *st288 = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0);
+ u8 *r0 = st288 + st7c;
+ u8 r5 = (st258 >> r4) & 0xf;
+ if (r5 != 0)
+ {
+ u32 st28c = r5 << ((r2 & 1) << 2);
+ u32 st290 = r0[r7];
+ u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st290) | st28c;
+ r0[r7] = r5;
+
+ if (st260 != 0)
+ {
+ *(u8 *)(st288 + st78 + st74) = r5;
+ }
+ }
+
+ r4 += 4;
+ r3 += 4;
+ r2++;
+ }
+
+ if (st260 != 0)
+ {
+ st264 += 2;
+ }
+ else
+ {
+ st264++;
+ }
+
+ st25c++;
+ }
+
+ st0 += 0x20;
+ u8 st98 = st54;
+
+ for (u32 st254 = 0; st254 < st4; st254++)
+ {
+ st5c += 8;
+ u32 st94 = (st58 + (st58 & 7)) >> 3;
+
+ //_02019A00
+ }
+
+ break;
+
+ case 2:
+ // TODO
+ break;
+ case 3:
+ // TODO
+ break;
+ }
+ }
+ else
+ {
+ // TODO: _0201A12C
+ }
+}
+#else
+asm void CopyGlyphToWindow(
+ struct Window *window, const char *param1, u16 param2, u16 param3, u16 param4, u16 param5, u16 param6)
+{
+ // clang-format off
+ push {r4-r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x118
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x330]
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x330]
+ add r1, sp, #0x318
+ ldrh r1, [r1, #0x10]
+ ldr r0, [r5, #0xc]
+ str r1, [sp, #0x5c]
+ ldrb r1, [r5, #0x7]
+ str r0, [sp, #0x278]
+ ldrb r0, [r5, #0x8]
+ lsl r1, r1, #0x13
+ lsr r4, r1, #0x10
+ ldr r1, [sp, #0x5c]
+ lsl r0, r0, #0x13
+ sub r1, r4, r1
+ lsr r0, r0, #0x10
+ str r4, [sp, #0x58]
+ str r1, [sp, #0x8]
+ cmp r1, r2
+ blt _0201977E
+ str r2, [sp, #0x8]
+_0201977E:
+ add r1, sp, #0x318
+ ldrh r1, [r1, #0x14]
+ sub r0, r0, r1
+ str r1, [sp, #0x48]
+ str r0, [sp, #0x4]
+ cmp r0, r3
+ blt _0201978E
+ str r3, [sp, #0x4]
+_0201978E:
+ ldr r0, [sp, #0x8]
+ mov r4, #0x0
+ cmp r0, #0x8
+ ble _0201979E
+ mov r0, #0x1
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0201979E:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x8
+ ble _020197AC
+ mov r0, #0x2
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_020197AC:
+ ldrh r0, [r5, #0xa]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1f
+ beq _020197B8
+ bl _0201A12C
+_020197B8:
+ cmp r4, #0x3
+ bls _020197C0
+ bl _0201A8BC
+_020197C0:
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020197CC:
+ lsl r6, r0, #0
+ lsl r0, r1, #4
+ lsl r0, r3, #12
+ lsl r0, r7, #20
+ // jump table (using 16-bit offset)
+ // .short _020197D4 - _020197CC - 2; case 0
+ // .short _020198D6 - _020197CC - 2; case 1
+ // .short _02019AE6 - _020197CC - 2; case 2
+ // .short _02019D06 - _020197CC - 2; case 3
+_020197D4:
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ mov r0, #0x0
+ str r0, [sp, #0x274]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bgt _020197EA
+ bl _0201A8BC
+_020197EA:
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x6c]
+_020197F6:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x70]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x26c]
+ ldr r0, [sp, #0x274]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x270]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ cmp r0, #0x0
+ ble _020198AA
+ ble _020198AA
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x6c]
+ lsl r5, r0, #0x2
+ ldr r0, =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0x68]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, =0x00003FE0
+ ldr r5, [sp, #0x6c]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0x64]
+ str r0, [sp, #0x60]
+_02019848:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0x68]
+ str r5, [sp, #0x27c]
+ add r0, r5, r0
+ ldr r5, [sp, #0x26c]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _0201989C
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x280]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x284]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x284]
+ and r6, r5
+ ldr r5, [sp, #0x280]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x270]
+ cmp r0, #0x0
+ beq _0201989C
+ ldr r6, [sp, #0x27c]
+ ldr r0, [sp, #0x64]
+ add r6, r6, r0
+ ldr r0, [sp, #0x60]
+ strb r5, [r0, r6]
+_0201989C:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019848
+_020198AA:
+ ldr r0, [sp, #0x270]
+ cmp r0, #0x0
+ beq _020198B8
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _020198BE
+_020198B8:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_020198BE:
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x274]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x274]
+ cmp r1, r0
+ blt _020197F6
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_020198D6:
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x25c]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x264]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x54]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x84]
+ mov r0, #0x0
+ str r0, [sp, #0x268]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _020199D2
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x80]
+_02019902:
+ ldr r0, [sp, #0x25c]
+ ldr r1, [sp, #0x84]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x258]
+ ldr r0, [sp, #0x268]
+ ldr r6, [sp, #0x80]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x260]
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x264]
+ mov r1, #0x0
+ lsl r5, r0, #0x2
+ ldr r0, =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x264]
+ str r6, [sp, #0x7c]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, =0x00003FE0
+ ldr r5, [sp, #0x80]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0x78]
+ str r0, [sp, #0x74]
+_0201994C:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0x7c]
+ str r5, [sp, #0x288]
+ add r0, r5, r0
+ ldr r5, [sp, #0x258]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _020199A0
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x28c]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x290]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x290]
+ and r6, r5
+ ldr r5, [sp, #0x28c]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x260]
+ cmp r0, #0x0
+ beq _020199A0
+ ldr r6, [sp, #0x288]
+ ldr r0, [sp, #0x78]
+ add r6, r6, r0
+ ldr r0, [sp, #0x74]
+ strb r5, [r0, r6]
+_020199A0:
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, #0x8
+ blt _0201994C
+ ldr r0, [sp, #0x260]
+ cmp r0, #0x0
+ beq _020199BA
+ ldr r0, [sp, #0x264]
+ add r0, r0, #0x2
+ str r0, [sp, #0x264]
+ b _020199C0
+_020199BA:
+ ldr r0, [sp, #0x264]
+ add r0, r0, #0x1
+ str r0, [sp, #0x264]
+_020199C0:
+ ldr r0, [sp, #0x25c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x25c]
+ ldr r0, [sp, #0x268]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x268]
+ cmp r1, r0
+ blt _02019902
+_020199D2:
+ ldr r0, [sp, #0x0]
+ add r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x54]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x98]
+ mov r0, #0x0
+ str r0, [sp, #0x254]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bgt _020199EE
+ bl _0201A8BC
+_020199EE:
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x7
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x94]
+_02019A00:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x98]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x24c]
+ ldr r0, [sp, #0x254]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x250]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ str r0, [sp, #0x294]
+ sub r0, #0x8
+ str r0, [sp, #0x294]
+ cmp r0, #0x0
+ ble _02019ABA
+ ble _02019ABA
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x94]
+ lsl r5, r0, #0x2
+ ldr r0, =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0x90]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, =0x00003FE0
+ ldr r5, [sp, #0x94]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0x8c]
+ str r0, [sp, #0x88]
+_02019A58:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0x90]
+ str r5, [sp, #0x298]
+ add r0, r5, r0
+ ldr r5, [sp, #0x24c]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019AAC
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x29c]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2a0]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2a0]
+ and r6, r5
+ ldr r5, [sp, #0x29c]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x250]
+ cmp r0, #0x0
+ beq _02019AAC
+ ldr r6, [sp, #0x298]
+ ldr r0, [sp, #0x8c]
+ add r6, r6, r0
+ ldr r0, [sp, #0x88]
+ strb r5, [r0, r6]
+_02019AAC:
+ ldr r0, [sp, #0x294]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019A58
+_02019ABA:
+ ldr r0, [sp, #0x250]
+ cmp r0, #0x0
+ beq _02019AC8
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _02019ACE
+_02019AC8:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_02019ACE:
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x254]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x254]
+ cmp r1, r0
+ blt _02019A00
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_02019AE6:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x7
+ str r0, [sp, #0x23c]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x244]
+ mov r0, #0x0
+ str r0, [sp, #0x248]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xa8]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x40]
+_02019B06:
+ ldr r0, [sp, #0x23c]
+ ldr r1, [sp, #0xa8]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x238]
+ ldr r0, [sp, #0x248]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x240]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ cmp r0, #0x0
+ ble _02019BC2
+ ble _02019BC2
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x244]
+ ldr r6, [sp, #0x40]
+ lsl r5, r0, #0x2
+ ldr r0, =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x244]
+ str r6, [sp, #0xa4]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, =0x00003FE0
+ ldr r5, [sp, #0x40]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xa0]
+ str r0, [sp, #0x9c]
+_02019B58:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, =0x00003FE0
+// b _02019B6C
+// nop
+// _02019B68: .word 0x00003FE0
+// _02019B6C:
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xa4]
+ str r5, [sp, #0x2a4]
+ add r0, r5, r0
+ ldr r5, [sp, #0x238]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019BB4
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2a8]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2ac]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2ac]
+ and r6, r5
+ ldr r5, [sp, #0x2a8]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x240]
+ cmp r0, #0x0
+ beq _02019BB4
+ ldr r6, [sp, #0x2a4]
+ ldr r0, [sp, #0xa0]
+ add r6, r6, r0
+ ldr r0, [sp, #0x9c]
+ strb r5, [r0, r6]
+_02019BB4:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019B58
+_02019BC2:
+ ldr r0, [sp, #0x240]
+ cmp r0, #0x0
+ beq _02019BD0
+ ldr r0, [sp, #0x244]
+ add r0, r0, #0x2
+ str r0, [sp, #0x244]
+ b _02019BD6
+_02019BD0:
+ ldr r0, [sp, #0x244]
+ add r0, r0, #0x1
+ str r0, [sp, #0x244]
+_02019BD6:
+ ldr r0, [sp, #0x23c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x23c]
+ ldr r0, [sp, #0x248]
+ add r0, r0, #0x1
+ str r0, [sp, #0x248]
+ cmp r0, #0x8
+ blt _02019B06
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ add r0, #0x40
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x48]
+ mov r1, #0x1
+ add r0, #0x8
+ str r0, [sp, #0x48]
+_02019BF6:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _02019C04
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_02019C04:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _02019BF6
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xb8]
+ mov r0, #0x0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ bgt _02019C24
+ bl _0201A8BC
+_02019C24:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0xb8]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x230]
+ ldr r0, [sp, #0x20]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x234]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ cmp r0, #0x0
+ ble _02019CD8
+ ble _02019CD8
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x40]
+ lsl r5, r0, #0x2
+ ldr r0, =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0xb4]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, =0x00003FE0
+ ldr r5, [sp, #0x40]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xb0]
+ str r0, [sp, #0xac]
+_02019C76:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xb4]
+ str r5, [sp, #0x2b0]
+ add r0, r5, r0
+ ldr r5, [sp, #0x230]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019CCA
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2b4]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2b8]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2b8]
+ and r6, r5
+ ldr r5, [sp, #0x2b4]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x234]
+ cmp r0, #0x0
+ beq _02019CCA
+ ldr r6, [sp, #0x2b0]
+ ldr r0, [sp, #0xb0]
+ add r6, r6, r0
+ ldr r0, [sp, #0xac]
+ strb r5, [r0, r6]
+_02019CCA:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019C76
+_02019CD8:
+ ldr r0, [sp, #0x234]
+ cmp r0, #0x0
+ beq _02019CE6
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _02019CEC
+_02019CE6:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_02019CEC:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ blt _02019C24
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_02019D06:
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x220]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x228]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x0
+ str r0, [sp, #0x22c]
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x38]
+_02019D2A:
+ ldr r0, [sp, #0x220]
+ ldr r1, [sp, #0x3c]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x21c]
+ ldr r0, [sp, #0x22c]
+ ldr r6, [sp, #0x38]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x224]
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x228]
+ mov r1, #0x0
+ lsl r5, r0, #0x2
+ ldr r0, =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x228]
+ str r6, [sp, #0xc4]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ str r3, [sp, #0x34]
+ add r4, r1, #0x0
+ str r5, [sp, #0xc0]
+ str r0, [sp, #0xbc]
+_02019D76:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xc4]
+ str r5, [sp, #0x2bc]
+ add r0, r5, r0
+ ldr r5, [sp, #0x21c]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019DCA
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2c0]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2c4]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2c4]
+ and r6, r5
+ ldr r5, [sp, #0x2c0]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x224]
+ cmp r0, #0x0
+ beq _02019DCA
+ ldr r6, [sp, #0x2bc]
+ ldr r0, [sp, #0xc0]
+ add r6, r6, r0
+ ldr r0, [sp, #0xbc]
+ strb r5, [r0, r6]
+_02019DCA:
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, #0x8
+ blt _02019D76
+ ldr r0, [sp, #0x224]
+ cmp r0, #0x0
+ beq _02019DE4
+ ldr r0, [sp, #0x228]
+ add r0, r0, #0x2
+ str r0, [sp, #0x228]
+ b _02019DEA
+_02019DE4:
+ ldr r0, [sp, #0x228]
+ add r0, r0, #0x1
+ str r0, [sp, #0x228]
+_02019DEA:
+ ldr r0, [sp, #0x220]
+ add r0, r0, #0x4
+ str r0, [sp, #0x220]
+ ldr r0, [sp, #0x22c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x22c]
+ cmp r0, #0x8
+ blt _02019D2A
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x20c]
+ add r0, #0x20
+ str r0, [sp, #0x20c]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x214]
+ mov r0, #0x0
+ str r0, [sp, #0x218]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0xd4]
+ add r0, #0x8
+ str r0, [sp, #0xd4]
+_02019E12:
+ ldr r0, [sp, #0x20c]
+ ldr r1, [sp, #0x3c]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0xd4]
+ str r0, [sp, #0x208]
+ ldr r0, [sp, #0x218]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x210]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ str r0, [sp, #0x2c8]
+ sub r0, #0x8
+ str r0, [sp, #0x2c8]
+ cmp r0, #0x0
+ ble _02019ECC
+ ble _02019ECC
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x214]
+ ldr r6, [sp, #0x38]
+ lsl r5, r0, #0x2
+ ldr r0, =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x214]
+ str r6, [sp, #0xd0]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xcc]
+ str r0, [sp, #0xc8]
+_02019E6A:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xd0]
+ str r5, [sp, #0x2cc]
+ add r0, r5, r0
+ ldr r5, [sp, #0x208]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019EBE
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2d0]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2d4]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2d4]
+ and r6, r5
+ ldr r5, [sp, #0x2d0]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x210]
+ cmp r0, #0x0
+ beq _02019EBE
+ ldr r6, [sp, #0x2cc]
+ ldr r0, [sp, #0xcc]
+ add r6, r6, r0
+ ldr r0, [sp, #0xc8]
+ strb r5, [r0, r6]
+_02019EBE:
+ ldr r0, [sp, #0x2c8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019E6A
+_02019ECC:
+ ldr r0, [sp, #0x210]
+ cmp r0, #0x0
+ beq _02019EDA
+ ldr r0, [sp, #0x214]
+ add r0, r0, #0x2
+ str r0, [sp, #0x214]
+ b _02019EE0
+_02019EDA:
+ ldr r0, [sp, #0x214]
+ add r0, r0, #0x1
+ str r0, [sp, #0x214]
+_02019EE0:
+ ldr r0, [sp, #0x20c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x20c]
+ ldr r0, [sp, #0x218]
+ add r0, r0, #0x1
+ str r0, [sp, #0x218]
+ cmp r0, #0x8
+ blt _02019E12
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ str r0, [sp, #0x1fc]
+ add r0, #0x40
+ str r0, [sp, #0x1fc]
+ ldr r0, [sp, #0x48]
+ mov r1, #0x1
+ add r0, #0x8
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x204]
+_02019F04:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _02019F12
+ ldr r0, [sp, #0x204]
+ add r0, r0, #0x1
+ str r0, [sp, #0x204]
+_02019F12:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _02019F04
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ str r0, [sp, #0x50]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xe4]
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A008
+_02019F30:
+ ldr r0, [sp, #0x1fc]
+ ldr r1, [sp, #0xe4]
+ ldr r0, [r0, #0x0]
+ ldr r6, [sp, #0x38]
+ str r0, [sp, #0x1f8]
+ ldr r0, [sp, #0x1c]
+ ldr r2, [sp, #0x5c]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x200]
+ ldr r0, [sp, #0x204]
+ mov r1, #0x0
+ lsl r5, r0, #0x2
+ ldr r0, =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x204]
+ str r6, [sp, #0xe0]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ ldr r3, [sp, #0x34]
+ add r4, r1, #0x0
+ str r5, [sp, #0xdc]
+ str r0, [sp, #0xd8]
+_02019F78:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, =0x00003FE0
+// b _02019F8C
+// nop
+// _02019F88: .word 0x00003FE0
+// _02019F8C:
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xe0]
+ str r5, [sp, #0x2d8]
+ add r0, r5, r0
+ ldr r5, [sp, #0x1f8]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019FD4
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2dc]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2e0]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2e0]
+ and r6, r5
+ ldr r5, [sp, #0x2dc]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x200]
+ cmp r0, #0x0
+ beq _02019FD4
+ ldr r6, [sp, #0x2d8]
+ ldr r0, [sp, #0xdc]
+ add r6, r6, r0
+ ldr r0, [sp, #0xd8]
+ strb r5, [r0, r6]
+_02019FD4:
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, #0x8
+ blt _02019F78
+ ldr r0, [sp, #0x200]
+ cmp r0, #0x0
+ beq _02019FEE
+ ldr r0, [sp, #0x204]
+ add r0, r0, #0x2
+ str r0, [sp, #0x204]
+ b _02019FF4
+_02019FEE:
+ ldr r0, [sp, #0x204]
+ add r0, r0, #0x1
+ str r0, [sp, #0x204]
+_02019FF4:
+ ldr r0, [sp, #0x1fc]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x1fc]
+ ldr r0, [sp, #0x1c]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ blt _02019F30
+_0201A008:
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ add r0, #0x60
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+_0201A012:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _0201A020
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A020:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _0201A012
+ ldr r0, [sp, #0x50]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xf4]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ bgt _0201A03E
+ bl _0201A8BC
+_0201A03E:
+ ldr r0, [sp, #0x5c]
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+_0201A044:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0xf4]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x1f0]
+ ldr r0, [sp, #0x18]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1f4]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ str r0, [sp, #0x2e4]
+ sub r0, #0x8
+ str r0, [sp, #0x2e4]
+ cmp r0, #0x0
+ ble _0201A0FE
+ ble _0201A0FE
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x38]
+ lsl r5, r0, #0x2
+ ldr r0, =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0xf0]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xec]
+ str r0, [sp, #0xe8]
+_0201A09C:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xf0]
+ str r5, [sp, #0x2e8]
+ add r0, r5, r0
+ ldr r5, [sp, #0x1f0]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _0201A0F0
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2ec]
+ ldrb r5, [r0, r7]
+ mov r12, r5
+ mov r5, #0xf0
+ asr r5, r6
+ mov r6, r12
+ and r6, r5
+ ldr r5, [sp, #0x2ec]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x1f4]
+ cmp r0, #0x0
+ beq _0201A0F0
+ ldr r6, [sp, #0x2e8]
+ ldr r0, [sp, #0xec]
+ add r6, r6, r0
+ ldr r0, [sp, #0xe8]
+ strb r5, [r0, r6]
+_0201A0F0:
+ ldr r0, [sp, #0x2e4]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _0201A09C
+_0201A0FE:
+ ldr r0, [sp, #0x1f4]
+ cmp r0, #0x0
+ beq _0201A10C
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A112
+_0201A10C:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A112:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x18]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x18]
+ cmp r0, r1
+ blt _0201A044
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_0201A12C: // 0x0201A12C
+ lsl r1, r2, #0x2
+ mul r1, r3
+ ldr r3, [r5, #0x0]
+ ldrb r2, [r5, #0x9]
+ ldr r0, [sp, #0x0]
+ ldr r3, [r3, #0x0]
+ lsl r1, r1, #0x3
+ bl Convert4bppTo8bpp
+ str r0, [sp, #0x1ec]
+ cmp r4, #0x3
+ bhi _0201A21E
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0201A150:
+
+ lsl r6, r0, #0
+ lsl r6, r1, #3
+ lsl r0, r7, #9
+ lsl r4, r3, #16
+ // jump table (using 16-bit offset)
+ // .short _0201A158 - _0201A150 - 2; case 0
+ // .short _0201A220 - _0201A150 - 2; case 1
+ // .short _0201A3CA - _0201A150 - 2; case 2
+ // .short _0201A56E - _0201A150 - 2; case 3
+_0201A158:
+ ldr r0, [sp, #0x330]
+ ldr r7, [sp, #0x1ec]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10c]
+ mov r0, #0x0
+ str r0, [sp, #0x1e8]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201A21E
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x108]
+_0201A178:
+ ldr r1, [sp, #0x10c]
+ ldr r0, [sp, #0x1e8]
+ mov r4, #0x0
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x310]
+ ldr r0, [sp, #0x8]
+ ldr r5, [sp, #0x5c]
+ cmp r0, #0x0
+ ble _0201A1FC
+ ble _0201A1FC
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x108]
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x100]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x104]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ ldr r2, [sp, #0x108]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0xfc]
+ str r0, [sp, #0xf8]
+_0201A1C4:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x104]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A1F0
+ ldr r0, [sp, #0x100]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x310]
+ cmp r0, #0x0
+ beq _0201A1F0
+ ldr r0, [sp, #0xfc]
+ add r2, r3, r0
+ ldr r0, [sp, #0xf8]
+ strb r1, [r0, r2]
+_0201A1F0:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r0
+ blt _0201A1C4
+_0201A1FC:
+ ldr r0, [sp, #0x310]
+ cmp r0, #0x0
+ beq _0201A20A
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A210
+_0201A20A:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A210:
+ ldr r0, [sp, #0x1e8]
+ add r7, #0x8
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x1e8]
+ cmp r1, r0
+ blt _0201A178
+_0201A21E:
+ b _0201A8B6
+_0201A220:
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ str r0, [sp, #0x1e0]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x124]
+ mov r0, #0x0
+ str r0, [sp, #0x1e4]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201A2E6
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x120]
+_0201A24A:
+ ldr r1, [sp, #0x124]
+ ldr r0, [sp, #0x1e4]
+ ldr r5, [sp, #0x5c]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x30c]
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1e0]
+ ldr r2, [sp, #0x120]
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x118]
+ ldr r0, [sp, #0x1e0]
+ str r2, [sp, #0x11c]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ ldr r2, [sp, #0x120]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ mov r4, #0x0
+ str r2, [sp, #0x114]
+ str r0, [sp, #0x110]
+_0201A28E:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x11c]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A2BA
+ ldr r0, [sp, #0x118]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x30c]
+ cmp r0, #0x0
+ beq _0201A2BA
+ ldr r0, [sp, #0x114]
+ add r2, r3, r0
+ ldr r0, [sp, #0x110]
+ strb r1, [r0, r2]
+_0201A2BA:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, #0x8
+ blt _0201A28E
+ ldr r0, [sp, #0x30c]
+ cmp r0, #0x0
+ beq _0201A2D2
+ ldr r0, [sp, #0x1e0]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1e0]
+ b _0201A2D8
+_0201A2D2:
+ ldr r0, [sp, #0x1e0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1e0]
+_0201A2D8:
+ ldr r0, [sp, #0x1e4]
+ add r7, #0x8
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x1e4]
+ cmp r1, r0
+ blt _0201A24A
+_0201A2E6:
+ ldr r0, [sp, #0x1ec]
+ str r0, [sp, #0x308]
+ add r0, #0x40
+ str r0, [sp, #0x308]
+ ldr r0, [sp, #0x4c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x13c]
+ mov r0, #0x0
+ str r0, [sp, #0x1dc]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201A3C8
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x7
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x138]
+_0201A312:
+ ldr r1, [sp, #0x13c]
+ ldr r0, [sp, #0x1dc]
+ ldr r7, [sp, #0x8]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r7, #0x8
+ mov r4, #0x0
+ str r0, [sp, #0x1d8]
+ ldr r5, [sp, #0x5c]
+ cmp r7, #0x0
+ ble _0201A398
+ ble _0201A398
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x138]
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x130]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x134]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ ldr r2, [sp, #0x138]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x12c]
+ str r0, [sp, #0x128]
+_0201A360:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x134]
+ add r2, r3, r0
+ ldr r0, [sp, #0x308]
+ ldrb r1, [r0, r4]
+ cmp r1, #0x0
+ beq _0201A38E
+ ldr r0, [sp, #0x130]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x1d8]
+ cmp r0, #0x0
+ beq _0201A38E
+ ldr r0, [sp, #0x12c]
+ add r2, r3, r0
+ ldr r0, [sp, #0x128]
+ strb r1, [r0, r2]
+_0201A38E:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r7
+ blt _0201A360
+_0201A398:
+ ldr r0, [sp, #0x1d8]
+ cmp r0, #0x0
+ beq _0201A3B0
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A3B6
+// nop
+// _0201A3A8: .word 0x00003FE0
+// _0201A3AC: .word 0x00007FC0
+_0201A3B0:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A3B6:
+ ldr r0, [sp, #0x308]
+ add r0, #0x8
+ str r0, [sp, #0x308]
+ ldr r0, [sp, #0x1dc]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x1dc]
+ cmp r1, r0
+ blt _0201A312
+_0201A3C8:
+ b _0201A8B6
+_0201A3CA:
+ ldr r0, [sp, #0x48]
+ mov r1, #0x7
+ str r0, [sp, #0x1d0]
+ mov r0, #0x0
+ str r0, [sp, #0x1d4]
+ ldr r0, [sp, #0x330]
+ ldr r7, [sp, #0x1ec]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x150]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x30]
+_0201A3E8:
+ ldr r1, [sp, #0x150]
+ ldr r0, [sp, #0x1d4]
+ mov r4, #0x0
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x304]
+ ldr r0, [sp, #0x8]
+ ldr r5, [sp, #0x5c]
+ cmp r0, #0x0
+ ble _0201A46C
+ ble _0201A46C
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1d0]
+ ldr r2, [sp, #0x30]
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x148]
+ ldr r0, [sp, #0x1d0]
+ str r2, [sp, #0x14c]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ ldr r2, [sp, #0x30]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x144]
+ str r0, [sp, #0x140]
+_0201A434:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x14c]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A460
+ ldr r0, [sp, #0x148]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x304]
+ cmp r0, #0x0
+ beq _0201A460
+ ldr r0, [sp, #0x144]
+ add r2, r3, r0
+ ldr r0, [sp, #0x140]
+ strb r1, [r0, r2]
+_0201A460:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r0
+ blt _0201A434
+_0201A46C:
+ ldr r0, [sp, #0x304]
+ cmp r0, #0x0
+ beq _0201A47A
+ ldr r0, [sp, #0x1d0]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1d0]
+ b _0201A480
+_0201A47A:
+ ldr r0, [sp, #0x1d0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1d0]
+_0201A480:
+ ldr r0, [sp, #0x1d4]
+ add r7, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1d4]
+ cmp r0, #0x8
+ blt _0201A3E8
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ add r0, #0x8
+ str r0, [sp, #0x48]
+ add r7, #0x80
+ mov r0, #0x0
+ mov r2, #0x1
+_0201A49A:
+ ldr r1, [sp, #0x330]
+ asr r1, r0
+ tst r1, r2
+ beq _0201A4A8
+ ldr r1, [sp, #0x48]
+ add r1, r1, #0x1
+ str r1, [sp, #0x48]
+_0201A4A8:
+ add r0, r0, #0x1
+ cmp r0, #0x8
+ blt _0201A49A
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x164]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A56C
+_0201A4C4:
+ ldr r1, [sp, #0x164]
+ ldr r0, [sp, #0x14]
+ mov r4, #0x0
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x300]
+ ldr r0, [sp, #0x8]
+ ldr r5, [sp, #0x5c]
+ cmp r0, #0x0
+ ble _0201A548
+ ble _0201A548
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x30]
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x15c]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x160]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ ldr r2, [sp, #0x30]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x158]
+ str r0, [sp, #0x154]
+_0201A510:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x160]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A53C
+ ldr r0, [sp, #0x15c]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x300]
+ cmp r0, #0x0
+ beq _0201A53C
+ ldr r0, [sp, #0x158]
+ add r2, r3, r0
+ ldr r0, [sp, #0x154]
+ strb r1, [r0, r2]
+_0201A53C:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r0
+ blt _0201A510
+_0201A548:
+ ldr r0, [sp, #0x300]
+ cmp r0, #0x0
+ beq _0201A556
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A55C
+_0201A556:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A55C:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x1
+ sub r1, #0x8
+ add r7, #0x8
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _0201A4C4
+_0201A56C:
+ b _0201A8B6
+_0201A56E:
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ str r0, [sp, #0x1c8]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x0
+ str r0, [sp, #0x1cc]
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x28]
+_0201A590:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x1cc]
+ ldr r5, [sp, #0x5c]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2fc]
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1c8]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x170]
+ ldr r0, [sp, #0x1c8]
+ str r2, [sp, #0x174]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ mov r4, #0x0
+ str r6, [sp, #0x24]
+ str r2, [sp, #0x16c]
+ str r0, [sp, #0x168]
+_0201A5D6:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x174]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A602
+ ldr r0, [sp, #0x170]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x2fc]
+ cmp r0, #0x0
+ beq _0201A602
+ ldr r0, [sp, #0x16c]
+ add r2, r3, r0
+ ldr r0, [sp, #0x168]
+ strb r1, [r0, r2]
+_0201A602:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, #0x8
+ blt _0201A5D6
+ ldr r0, [sp, #0x2fc]
+ cmp r0, #0x0
+ beq _0201A61A
+ ldr r0, [sp, #0x1c8]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1c8]
+ b _0201A620
+_0201A61A:
+ ldr r0, [sp, #0x1c8]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c8]
+_0201A620:
+ ldr r0, [sp, #0x1cc]
+ add r7, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1cc]
+ cmp r0, #0x8
+ blt _0201A590
+ ldr r0, [sp, #0x1ec]
+ str r0, [sp, #0x2f8]
+ add r0, #0x40
+ str r0, [sp, #0x2f8]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x1c0]
+ mov r0, #0x0
+ str r0, [sp, #0x1c4]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0x188]
+ add r0, #0x8
+ str r0, [sp, #0x188]
+_0201A644:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x1c4]
+ ldr r7, [sp, #0x8]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r7, #0x8
+ mov r4, #0x0
+ str r0, [sp, #0x1bc]
+ ldr r5, [sp, #0x188]
+ cmp r7, #0x0
+ ble _0201A6CA
+ ble _0201A6CA
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1c0]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x180]
+ ldr r0, [sp, #0x1c0]
+ str r2, [sp, #0x184]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x17c]
+ str r0, [sp, #0x178]
+_0201A692:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x184]
+ add r2, r3, r0
+ ldr r0, [sp, #0x2f8]
+ ldrb r1, [r0, r4]
+ cmp r1, #0x0
+ beq _0201A6C0
+ ldr r0, [sp, #0x180]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x1bc]
+ cmp r0, #0x0
+ beq _0201A6C0
+ ldr r0, [sp, #0x17c]
+ add r2, r3, r0
+ ldr r0, [sp, #0x178]
+ strb r1, [r0, r2]
+_0201A6C0:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r7
+ blt _0201A692
+_0201A6CA:
+ ldr r0, [sp, #0x1bc]
+ cmp r0, #0x0
+ beq _0201A6D8
+ ldr r0, [sp, #0x1c0]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1c0]
+ b _0201A6DE
+_0201A6D8:
+ ldr r0, [sp, #0x1c0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c0]
+_0201A6DE:
+ ldr r0, [sp, #0x2f8]
+ add r0, #0x8
+ str r0, [sp, #0x2f8]
+ ldr r0, [sp, #0x1c4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c4]
+ cmp r0, #0x8
+ blt _0201A644
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ add r0, #0x8
+ add r7, #0x80
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x1b8]
+ mov r0, #0x0
+ mov r2, #0x1
+_0201A6FE:
+ ldr r1, [sp, #0x330]
+ asr r1, r0
+ tst r1, r2
+ beq _0201A70C
+ ldr r1, [sp, #0x1b8]
+ add r1, r1, #0x1
+ str r1, [sp, #0x1b8]
+_0201A70C:
+ add r0, r0, #0x1
+ cmp r0, #0x8
+ blt _0201A6FE
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ str r0, [sp, #0x44]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x19c]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A7CE
+_0201A72A:
+ ldr r1, [sp, #0x19c]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x28]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2f4]
+ ldr r0, [sp, #0x1b8]
+ mov r3, #0x38
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+// b _0201A74C
+// nop
+// _0201A748: .word 0x00007FC0
+// _0201A74C:
+ ldr r5, [sp, #0x5c]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x194]
+ ldr r0, [sp, #0x1b8]
+ str r2, [sp, #0x198]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ ldr r6, [sp, #0x24]
+ mov r4, #0x0
+ str r2, [sp, #0x190]
+ str r0, [sp, #0x18c]
+_0201A774:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x198]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A7A0
+ ldr r0, [sp, #0x194]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x2f4]
+ cmp r0, #0x0
+ beq _0201A7A0
+ ldr r0, [sp, #0x190]
+ add r2, r3, r0
+ ldr r0, [sp, #0x18c]
+ strb r1, [r0, r2]
+_0201A7A0:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, #0x8
+ blt _0201A774
+ ldr r0, [sp, #0x2f4]
+ cmp r0, #0x0
+ beq _0201A7B8
+ ldr r0, [sp, #0x1b8]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1b8]
+ b _0201A7BE
+_0201A7B8:
+ ldr r0, [sp, #0x1b8]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1b8]
+_0201A7BE:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x1
+ sub r1, #0x8
+ add r7, #0x8
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ blt _0201A72A
+_0201A7CE:
+ ldr r0, [sp, #0x1ec]
+ mov r2, #0x0
+ str r0, [sp, #0x2f0]
+ add r0, #0xc0
+ str r0, [sp, #0x2f0]
+ mov r1, #0x1
+_0201A7DA:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _0201A7E8
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A7E8:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _0201A7DA
+ ldr r0, [sp, #0x44]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1b0]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A8B6
+ ldr r0, [sp, #0x5c]
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+_0201A808:
+ ldr r1, [sp, #0x1b0]
+ ldr r0, [sp, #0xc]
+ ldr r7, [sp, #0x8]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r7, #0x8
+ mov r4, #0x0
+ str r0, [sp, #0x1b4]
+ ldr r5, [sp, #0x5c]
+ cmp r7, #0x0
+ ble _0201A88E
+ ble _0201A88E
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x1a8]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x1ac]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x1a4]
+ str r0, [sp, #0x1a0]
+_0201A856:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x1ac]
+ add r2, r3, r0
+ ldr r0, [sp, #0x2f0]
+ ldrb r1, [r0, r4]
+ cmp r1, #0x0
+ beq _0201A884
+ ldr r0, [sp, #0x1a8]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x1b4]
+ cmp r0, #0x0
+ beq _0201A884
+ ldr r0, [sp, #0x1a4]
+ add r2, r3, r0
+ ldr r0, [sp, #0x1a0]
+ strb r1, [r0, r2]
+_0201A884:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r7
+ blt _0201A856
+_0201A88E:
+ ldr r0, [sp, #0x1b4]
+ cmp r0, #0x0
+ beq _0201A89C
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A8A2
+_0201A89C:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A8A2:
+ ldr r0, [sp, #0x2f0]
+ ldr r1, [sp, #0x4]
+ add r0, #0x8
+ str r0, [sp, #0x2f0]
+ ldr r0, [sp, #0xc]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ cmp r0, r1
+ blt _0201A808
+_0201A8B6:
+ ldr r0, [sp, #0x1ec]
+ bl FreeToHeap
+_0201A8BC: // 0x0201A8BC
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+ // clang-format on
+}
+#endif
+
+THUMB_FUNC void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3)
+{
+ if (window->bgConfig->bgs[window->bgId].colorMode == GX_BG_COLORMODE_16)
+ {
+ ScrollWindow4bpp(window, param1, param2, param3);
+ }
+ else
+ {
+ ScrollWindow8bpp(window, param1, param2, param3);
+ }
+}
+
+THUMB_FUNC void ScrollWindow4bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue)
+{
+ void *r2;
+ int r5, r1, r3;
+ int st4, stc;
+ u32 st8;
+ int i, j;
+
+ r2 = window->pixelBuffer;
+ st4 = (fillValue << 0x18) | (fillValue << 0x10) | (fillValue << 0x8) | fillValue;
+ stc = window->height * window->width * 32;
+ st8 = window->width;
+
+ switch (param1)
+ {
+ case 0:
+ for (i = 0; i < stc; i += 32)
+ {
+ r3 = param2;
+ for (j = 0; j < 8; j++)
+ {
+ r5 = i + (j << 2);
+ r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2);
+
+ if (r1 < stc)
+ {
+ *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1);
+ }
+ else
+ {
+ *(u32 *)(r2 + r5) = (u32)st4;
+ }
+
+ r3++;
+ }
+ }
+
+ break;
+ case 1:
+ r2 += stc - 4;
+ for (i = 0; i < stc; i += 32)
+ {
+ r3 = param2;
+ for (j = 0; j < 8; j++)
+ {
+ r5 = i + (j << 2);
+ r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2);
+
+ if (r1 < stc)
+ {
+ *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1);
+ }
+ else
+ {
+ *(u32 *)(r2 - r5) = (u32)st4;
+ }
+
+ r3++;
+ }
+ }
+
+ break;
+ case 2:
+ case 3:
+ break;
+ }
+}
+
+THUMB_FUNC void ScrollWindow8bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue)
+{
+
+ void *pixelBuffer;
+ int dstOffs, srcOffs, r3;
+ int st4, size;
+ u32 srcWidth;
+ int i, j;
+
+ pixelBuffer = (u8 *)window->pixelBuffer;
+ st4 = (fillValue << 0x18) | (fillValue << 0x10) | (fillValue << 0x8) | fillValue;
+ size = window->height * window->width * 64;
+ srcWidth = window->width;
+
+ switch (param1)
+ {
+ case 0:
+ for (i = 0; i < size; i += 64)
+ {
+ r3 = param2;
+ for (j = 0; j < 8; j++)
+ {
+ dstOffs = i + (j << 3);
+ srcOffs = i + (int)(((srcWidth * (r3 & ~7)) | (r3 & 7)) << 3);
+
+ if (srcOffs < size)
+ {
+ *(u32 *)(pixelBuffer + dstOffs) = *(u32 *)(pixelBuffer + srcOffs);
+ }
+ else
+ {
+ *(u32 *)(pixelBuffer + dstOffs) = (u32)st4;
+ }
+
+ dstOffs += 4;
+ srcOffs += 4;
+ if (srcOffs < size + 4)
+ {
+ *(u32 *)(pixelBuffer + dstOffs) = *(u32 *)(pixelBuffer + srcOffs);
+ }
+ else
+ {
+ *(u32 *)(pixelBuffer + dstOffs) = (u32)st4;
+ }
+
+ r3++;
+ }
+ }
+
+ break;
+ case 1:
+ pixelBuffer += size - 8;
+ for (i = 0; i < size; i += 64)
+ {
+ r3 = param2;
+ for (j = 0; j < 8; j++)
+ {
+ dstOffs = i + (j << 3);
+ srcOffs = i + (int)(((srcWidth * (r3 & ~7)) | (r3 & 7)) << 3);
+
+ if (srcOffs < size)
+ {
+ *(u32 *)(pixelBuffer - dstOffs) = *(u32 *)(pixelBuffer - srcOffs);
+ }
+ else
+ {
+ *(u32 *)(pixelBuffer - dstOffs) = (u32)st4;
+ }
+
+ dstOffs -= 4;
+ srcOffs -= 4;
+ if (srcOffs < size - 4)
+ {
+ *(u32 *)(pixelBuffer - dstOffs) = *(u32 *)(pixelBuffer - srcOffs);
+ }
+ else
+ {
+ *(u32 *)(pixelBuffer - dstOffs) = (u32)st4;
+ }
+
+ r3++;
+ }
+ }
+
+ break;
+ case 2:
+ case 3:
+ break;
+ }
+}
+
+THUMB_FUNC u8 GetWindowBgId(struct Window *window)
+{
+ return window->bgId;
+}
+
+THUMB_FUNC u8 GetWindowWidth(struct Window *window)
+{
+ return window->width;
+}
+THUMB_FUNC u8 GetWindowHeight(struct Window *window)
+{
+ return window->height;
+}
+THUMB_FUNC u8 GetWindowX(struct Window *window)
+{
+ return window->tilemapLeft;
+}
+THUMB_FUNC u8 GetWindowY(struct Window *window)
+{
+ return window->tilemapTop;
+}
+THUMB_FUNC void MoveWindowX(struct Window *window, u8 x)
+{
+ window->tilemapLeft = x;
+}
+THUMB_FUNC void MoveWindowY(struct Window *window, u8 y)
+{
+ window->tilemapTop = y;
+}
+THUMB_FUNC void SetWindowPaletteNum(struct Window *window, u8 paletteNum)
+{
+ window->paletteNum = paletteNum;
+}
+
+THUMB_FUNC NNSG2dCharacterData * LoadCharacterDataFromFile(void **char_ret, u32 heap_id, const char *path)
+{
+ void *ptr = AllocAndReadFile(heap_id, path);
+ *char_ret = ptr;
+ NNSG2dCharacterData *st0;
+ NNS_G2dGetUnpackedBGCharacterData(ptr, &st0);
+
+ return st0;
+}
+
+THUMB_FUNC NNSG2dPaletteData * LoadPaletteDataFromFile(void **pltt_ret, u32 heap_id, const char *path)
+{
+ void *ptr = AllocAndReadFile(heap_id, path);
+ *pltt_ret = ptr;
+ NNSG2dPaletteData *st0;
+ NNS_G2dGetUnpackedPaletteData(ptr, &st0);
+
+ return st0;
+}
+
+THUMB_FUNC void DoScheduledBgGpuUpdates(struct BgConfig *bgConfig)
+{
+ ApplyScheduledBgPosUpdate(bgConfig);
+ DoScheduledBgTilemapBufferTransfers(bgConfig);
+
+ bgConfig->scrollScheduled = 0;
+ bgConfig->bufferTransferScheduled = 0;
+}
+
+THUMB_FUNC void DoScheduledBgTilemapBufferTransfers(struct BgConfig *bgConfig)
+{
+ if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_MAIN_0)) != 0)
+ {
+ LoadBgVramScr(GF_BG_LYR_MAIN_0, bgConfig->bgs[GF_BG_LYR_MAIN_0].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_MAIN_0].baseTile * 2, bgConfig->bgs[GF_BG_LYR_MAIN_0].bufferSize);
+ }
+
+ if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_MAIN_1)) != 0)
+ {
+ LoadBgVramScr(GF_BG_LYR_MAIN_1, bgConfig->bgs[GF_BG_LYR_MAIN_1].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_MAIN_1].baseTile * 2, bgConfig->bgs[GF_BG_LYR_MAIN_1].bufferSize);
+ }
+
+ if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_MAIN_2)) != 0)
+ {
+ LoadBgVramScr(GF_BG_LYR_MAIN_2, bgConfig->bgs[GF_BG_LYR_MAIN_2].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_MAIN_2].baseTile * 2, bgConfig->bgs[GF_BG_LYR_MAIN_2].bufferSize);
+ }
+
+ if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_MAIN_3)) != 0)
+ {
+ LoadBgVramScr(GF_BG_LYR_MAIN_3, bgConfig->bgs[GF_BG_LYR_MAIN_3].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_MAIN_3].baseTile * 2, bgConfig->bgs[GF_BG_LYR_MAIN_3].bufferSize);
+ }
+
+ if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_SUB_0)) != 0)
+ {
+ LoadBgVramScr(GF_BG_LYR_SUB_0, bgConfig->bgs[GF_BG_LYR_SUB_0].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_SUB_0].baseTile * 2, bgConfig->bgs[GF_BG_LYR_SUB_0].bufferSize);
+ }
+
+ if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_SUB_1)) != 0)
+ {
+ LoadBgVramScr(GF_BG_LYR_SUB_1, bgConfig->bgs[GF_BG_LYR_SUB_1].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_SUB_1].baseTile * 2, bgConfig->bgs[GF_BG_LYR_SUB_1].bufferSize);
+ }
+
+ if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_SUB_2)) != 0)
+ {
+ LoadBgVramScr(GF_BG_LYR_SUB_2, bgConfig->bgs[GF_BG_LYR_SUB_2].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_SUB_2].baseTile * 2, bgConfig->bgs[GF_BG_LYR_SUB_2].bufferSize);
+ }
+
+ if ((bgConfig->bufferTransferScheduled & (1 << GF_BG_LYR_SUB_3)) != 0)
+ {
+ LoadBgVramScr(GF_BG_LYR_SUB_3, bgConfig->bgs[GF_BG_LYR_SUB_3].tilemapBuffer, bgConfig->bgs[GF_BG_LYR_SUB_3].baseTile * 2, bgConfig->bgs[GF_BG_LYR_SUB_3].bufferSize);
+ }
+}
+
+THUMB_FUNC void ScheduleBgTilemapBufferTransfer(struct BgConfig *bgConfig, u32 bgId)
+{
+ bgConfig->bufferTransferScheduled |= 1 << bgId;
+}
+
+THUMB_FUNC void ApplyScheduledBgPosUpdate(struct BgConfig *bgConfig)
+{
+ if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_MAIN_0)) != 0)
+ {
+ G2_SetBG0Offset(bgConfig->bgs[GF_BG_LYR_MAIN_0].hOffset, bgConfig->bgs[GF_BG_LYR_MAIN_0].vOffset);
+ }
+
+ if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_MAIN_1)) != 0)
+ {
+ G2_SetBG1Offset(bgConfig->bgs[GF_BG_LYR_MAIN_1].hOffset, bgConfig->bgs[GF_BG_LYR_MAIN_1].vOffset);
+ }
+
+ if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_MAIN_2)) != 0)
+ {
+ if (bgConfig->bgs[GF_BG_LYR_MAIN_2].mode == 0)
+ {
+ G2_SetBG2Offset(bgConfig->bgs[GF_BG_LYR_MAIN_2].hOffset, bgConfig->bgs[GF_BG_LYR_MAIN_2].vOffset);
+ }
+ else
+ {
+ struct Mtx22 st38;
+ MTX22_2DAffine(
+ &st38, bgConfig->bgs[GF_BG_LYR_MAIN_2].rotation, bgConfig->bgs[GF_BG_LYR_MAIN_2].xScale, bgConfig->bgs[GF_BG_LYR_MAIN_2].yScale, 2);
+ G2_SetBG2Affine(
+ &st38,
+ bgConfig->bgs[GF_BG_LYR_MAIN_2].centerX,
+ bgConfig->bgs[GF_BG_LYR_MAIN_2].centerY,
+ bgConfig->bgs[GF_BG_LYR_MAIN_2].hOffset,
+ bgConfig->bgs[GF_BG_LYR_MAIN_2].vOffset);
+ }
+ }
+
+ if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_MAIN_3)) != 0)
+ {
+ if (bgConfig->bgs[GF_BG_LYR_MAIN_3].mode == 0)
+ {
+ G2_SetBG3Offset(bgConfig->bgs[GF_BG_LYR_MAIN_3].hOffset, bgConfig->bgs[GF_BG_LYR_MAIN_3].vOffset);
+ }
+ else
+ {
+ struct Mtx22 st28;
+ MTX22_2DAffine(
+ &st28, bgConfig->bgs[GF_BG_LYR_MAIN_3].rotation, bgConfig->bgs[GF_BG_LYR_MAIN_3].xScale, bgConfig->bgs[GF_BG_LYR_MAIN_3].yScale, 2);
+ G2_SetBG3Affine(
+ &st28,
+ bgConfig->bgs[GF_BG_LYR_MAIN_3].centerX,
+ bgConfig->bgs[GF_BG_LYR_MAIN_3].centerY,
+ bgConfig->bgs[GF_BG_LYR_MAIN_3].hOffset,
+ bgConfig->bgs[GF_BG_LYR_MAIN_3].vOffset);
+ }
+ }
+
+ if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_SUB_0)) != 0)
+ {
+ G2S_SetBG0Offset(bgConfig->bgs[GF_BG_LYR_SUB_0].hOffset, bgConfig->bgs[GF_BG_LYR_SUB_0].vOffset);
+ }
+
+ if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_SUB_1)) != 0)
+ {
+ G2S_SetBG1Offset(bgConfig->bgs[GF_BG_LYR_SUB_1].hOffset, bgConfig->bgs[GF_BG_LYR_SUB_1].vOffset);
+ }
+
+ if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_SUB_2)) != 0)
+ {
+ if (bgConfig->bgs[GF_BG_LYR_SUB_2].mode == 0)
+ {
+ G2S_SetBG2Offset(bgConfig->bgs[GF_BG_LYR_SUB_2].hOffset, bgConfig->bgs[GF_BG_LYR_SUB_2].vOffset);
+ }
+ else
+ {
+ struct Mtx22 st18;
+ MTX22_2DAffine(
+ &st18, bgConfig->bgs[GF_BG_LYR_SUB_2].rotation, bgConfig->bgs[GF_BG_LYR_SUB_2].xScale, bgConfig->bgs[GF_BG_LYR_SUB_2].yScale, 2);
+ G2S_SetBG2Affine(
+ &st18,
+ bgConfig->bgs[GF_BG_LYR_SUB_2].centerX,
+ bgConfig->bgs[GF_BG_LYR_SUB_2].centerY,
+ bgConfig->bgs[GF_BG_LYR_SUB_2].hOffset,
+ bgConfig->bgs[GF_BG_LYR_SUB_2].vOffset);
+ }
+ }
+
+ if ((bgConfig->scrollScheduled & (1 << GF_BG_LYR_SUB_3)) != 0)
+ {
+ if (bgConfig->bgs[GF_BG_LYR_SUB_3].mode == 0)
+ {
+ G2S_SetBG3Offset(bgConfig->bgs[GF_BG_LYR_SUB_3].hOffset, bgConfig->bgs[GF_BG_LYR_SUB_3].vOffset);
+ }
+ else
+ {
+ struct Mtx22 st08;
+ MTX22_2DAffine(
+ &st08, bgConfig->bgs[GF_BG_LYR_SUB_3].rotation, bgConfig->bgs[GF_BG_LYR_SUB_3].xScale, bgConfig->bgs[GF_BG_LYR_SUB_3].yScale, 2);
+ G2S_SetBG3Affine(
+ &st08,
+ bgConfig->bgs[GF_BG_LYR_SUB_3].centerX,
+ bgConfig->bgs[GF_BG_LYR_SUB_3].centerY,
+ bgConfig->bgs[GF_BG_LYR_SUB_3].hOffset,
+ bgConfig->bgs[GF_BG_LYR_SUB_3].vOffset);
+ }
+ }
+}
+
+THUMB_FUNC void ScheduleSetBgPosText(
+ struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value)
+{
+ Bg_SetPosText(&bgConfig->bgs[bgId], op, value);
+ bgConfig->scrollScheduled |= 1 << bgId;
+}
+
+THUMB_FUNC void ScheduleSetBgAffineRotation(
+ struct BgConfig *bgConfig, u32 bgId, u32 op, u16 value)
+{
+ Bg_SetAffineRotation(&bgConfig->bgs[bgId], op, value);
+ bgConfig->scrollScheduled |= 1 << bgId;
+}
+
+THUMB_FUNC void Bg_SetAffineRotation(struct Bg *bg, u32 op, u16 val)
+{
+ switch (op)
+ {
+ case BG_POS_OP_SET_ROT:
+ bg->rotation = val;
+ break;
+ case BG_POS_OP_ADD_ROT:
+ bg->rotation += val;
+ break;
+ case BG_POS_OP_SUB_ROT:
+ bg->rotation -= val;
+ break;
+ }
+}
+
+THUMB_FUNC void ScheduleSetBgAffinePos(
+ struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value)
+{
+ Bg_SetAffinePos(&bgConfig->bgs[bgId], op, value);
+ bgConfig->scrollScheduled |= 1 << bgId;
+}
+
+THUMB_FUNC void Bg_SetAffinePos(struct Bg *bg, u32 op, fx32 val)
+{
+ switch (op)
+ {
+ case BG_POS_OP_SET_CENTERX:
+ bg->centerX = val;
+ break;
+ case BG_POS_OP_ADD_CENTERX:
+ bg->centerX += val;
+ break;
+ case BG_POS_OP_SUB_CENTERX:
+ bg->centerX -= val;
+ break;
+ case BG_POS_OP_SET_CENTERY:
+ bg->centerY = val;
+ break;
+ case BG_POS_OP_ADD_CENTERY:
+ bg->centerY += val;
+ break;
+ case BG_POS_OP_SUB_CENTERY:
+ bg->centerY -= val;
+ break;
+ }
+}
+
+THUMB_FUNC u32 DoesPixelAtScreenXYMatchPtrVal(
+ struct BgConfig *bgConfig, u8 bgId, u8 x, u8 y, u16 *src)
+{
+ void *bgCharPtr;
+ u16 tilemapIdx;
+ u8 xPixOffs;
+ u8 yPixOffs;
+ u8 pixelValue;
+ u8 i;
+
+ if (bgConfig->bgs[bgId].tilemapBuffer == NULL)
+ {
+ return 0;
+ }
+
+ tilemapIdx = GetTileMapIndexFromCoords((u8) (x >> 3), (u8) (y >> 3), bgConfig->bgs[bgId].size);
+ bgCharPtr = BgGetCharPtr(bgId);
+
+ xPixOffs = (u8)(x & 7);
+ yPixOffs = (u8)(y & 7);
+
+ if (bgConfig->bgs[bgId].colorMode == GX_BG_COLORMODE_16)
+ {
+ u16 *tilemapBuffer = bgConfig->bgs[bgId].tilemapBuffer;
+ u8 *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, 0x40);
+
+ bgCharPtr += ((tilemapBuffer[tilemapIdx] & 0x3ff) << 5);
+ for (i = 0; i < 0x20; i++)
+ {
+ ptr[(i << 1)] = (u8)(((u8 *)bgCharPtr)[i] & 0xf);
+ ptr[(i << 1) + 1] = (u8)(((u8 *)bgCharPtr)[i] >> 4);
+ }
+
+ ApplyFlipFlagsToTile(bgConfig, (u8)((tilemapBuffer[tilemapIdx] >> 0xa) & 3), ptr);
+
+ pixelValue = ptr[xPixOffs + (yPixOffs << 3)];
+ FreeToHeap(ptr);
+
+ if ((src[0] & (1 << pixelValue)) != 0)
+ {
+ return 1;
+ }
+ }
+ else
+ {
+ if (bgConfig->bgs[bgId].mode != GF_BG_TYPE_AFFINE)
+ {
+ u16 *tilemapBuffer = bgConfig->bgs[bgId].tilemapBuffer;
+ u8 *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, 0x40);
+
+ memcpy(ptr, bgCharPtr + ((tilemapBuffer[tilemapIdx] & 0x3ff) << 6), 0x40);
+
+ ApplyFlipFlagsToTile(bgConfig, (u8)((tilemapBuffer[tilemapIdx] >> 0xa) & 3), ptr);
+
+ pixelValue = ptr[xPixOffs + (yPixOffs << 3)];
+ FreeToHeap(ptr);
+ }
+ else
+ {
+ pixelValue = ((u8 *)bgCharPtr)[(((u8 *)bgConfig->bgs[bgId].tilemapBuffer)[tilemapIdx] << 6) + xPixOffs + (yPixOffs << 3)];
+ }
+
+ // BUG: Infinite loop
+ while (TRUE)
+ {
+ if (src[0] == 0xffff)
+ {
+ break;
+ }
+ if (pixelValue == (u8)(src[0]))
+ {
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+THUMB_FUNC void ApplyFlipFlagsToTile(struct BgConfig *bgConfig, u8 flag, u8 *src)
+{
+ u8 i, j;
+ if (flag != 0)
+ {
+ u8 *ptr = AllocFromHeapAtEnd(bgConfig->heap_id, 0x40);
+
+ if ((flag & 1) != 0)
+ {
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 8; j++)
+ {
+ ptr[i * 8 + j] = src[i * 8 + (7 - j)];
+ }
+ }
+
+ memcpy(src, ptr, 0x40);
+ }
+
+ if ((flag & 2) != 0)
+ {
+ for (i = 0; i < 8; i++)
+ {
+ u8 *r3 = &ptr[i * 8];
+ u8 *r2 = &src[(7 - i) * 8];
+ for (u32 j = 8; j > 0; j--)
+ {
+ *r3++ = *r2++;
+ }
+ }
+
+ memcpy(src, ptr, 0x40);
+ }
+
+ FreeToHeap(ptr);
+ }
+}
diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c
index 07c285a4..e0d01bde 100644
--- a/arm9/src/error_message_reset.c
+++ b/arm9/src/error_message_reset.c
@@ -3,26 +3,46 @@
#include "gx.h"
#include "unk_02031734.h"
#include "unk_0202F150.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
#include "PAD_pad.h"
-const struct UnkStruct_02016B94_4 UNK_020FF49C = { 0, 3, 3, 0x1a, 0x12, 1, 0x23 };
+const struct WindowTemplate UNK_020FF49C = {
+ .bgId = GF_BG_LYR_MAIN_0,
+ .tilemapLeft = 3,
+ .tilemapTop = 3,
+ .width = 26,
+ .height = 18,
+ .paletteNum = 1,
+ .baseTile = 0x23
+};
const struct HeapParam UNK_020FF4A4[] = {
{0x00020000, OS_ARENA_MAIN}
};
-const struct GraphicsModes UNK_020FF4AC = { dispMode : GX_DISPMODE_GRAPHICS };
-
-const struct UnkStruct_02016B94_1 UNK_020FF4BC = { 0, 0, 0x800, 0, 1, 0, 0, 6, 0, 1, 0, 0, 0 };
+const struct GraphicsModes UNK_020FF4AC = { .dispMode = GX_DISPMODE_GRAPHICS };
+
+const struct BgTemplate UNK_020FF4BC = {
+ .x = 0,
+ .y = 0,
+ .bufferSize = 0x800,
+ .baseTile = 0,
+ .size = GF_BG_SCR_SIZE_256x256,
+ .colorMode = GX_BG_COLORMODE_16,
+ .screenBase = GX_BG_SCRBASE_0x0000, .charBase = GX_BG_CHARBASE_0x18000,
+ .bgExtPltt = GX_BG_EXTPLTT_01,
+ .priority = 1,
+ .areaOver = 0,
+ .mosaic = FALSE
+};
-const struct GraphicsBanks UNK_020FF4D8 = { bg : 3 };
+const struct GraphicsBanks UNK_020FF4D8 = { .bg = 3 };
u32 sErrorMessagePrinterLock;
extern void FUN_0200E3A0(PMLCDTarget, int);
-extern void FUN_0200CB00(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5);
+extern void FUN_0200CB00(struct BgConfig *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5);
extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2);
extern void FUN_0200CCA4(struct Window *param0, u32 param1, u32 param2, u32 param3);
extern void FUN_0200E394(u32 param0);
@@ -30,15 +50,14 @@ extern void FUN_0200A274(u32 param0, u32 param1, u32 param2);
THUMB_FUNC void VBlankHandler()
{
- *(vu32 *)HW_INTR_CHECK_BUF |= 1;
-
+ OS_SetIrqCheckFlag(OS_IE_V_BLANK);
MI_WaitDma(3);
}
THUMB_FUNC void PrintErrorMessageAndReset()
{
- struct UnkStruct_02016B94_2 *ptr;
+ struct BgConfig *ptr;
struct Window buf;
if (sErrorMessagePrinterLock != 1)
@@ -61,38 +80,39 @@ THUMB_FUNC void PrintErrorMessageAndReset()
GX_DisableEngineALayers();
GX_DisableEngineBLayers();
- reg_GX_DISPCNT &= ~REG_GX_DISPCNT_DISPLAY_MASK;
- reg_GXS_DB_DISPCNT &= ~REG_GXS_DB_DISPCNT_DISPLAY_MASK;
+ GX_SetVisiblePlane(0);
+ GXS_SetVisiblePlane(0);
SetKeyRepeatTimers(4, 8);
gMain.unk65 = 0;
GX_SwapDisplay();
- reg_G2_BLDCNT = 0;
- reg_G2S_DB_BLDCNT = 0;
- reg_GX_DISPCNT &= ~(REG_GX_DISPCNT_OW_MASK | REG_GX_DISPCNT_W1_MASK | REG_GX_DISPCNT_W0_MASK);
- reg_GXS_DB_DISPCNT &= ~(REG_GXS_DB_DISPCNT_OW_MASK | REG_GXS_DB_DISPCNT_W1_MASK | REG_GXS_DB_DISPCNT_W0_MASK);
+ G2_BlendNone();
+ G2S_BlendNone();
+
+ GX_SetVisibleWnd(0);
+ GXS_SetVisibleWnd(0);
GX_SetBanks(&UNK_020FF4D8);
- ptr = FUN_02016B94(0);
- FUN_02016BBC(&UNK_020FF4AC);
+ ptr = BgConfig_Alloc(0);
+ SetBothScreensModesAndDisable(&UNK_020FF4AC);
- FUN_02016C18(ptr, 0, &UNK_020FF4BC, 0);
- FUN_02018744(ptr, 0);
+ InitBgFromTemplate(ptr, 0, &UNK_020FF4BC, 0);
+ BgClearTilemapBufferAndCommit(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);
+ BG_ClearCharDataRange(0, 0x20, 0, 0);
+ BG_SetMaskColor(0, 0x6C21);
+ BG_SetMaskColor(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);
+ AddWindow(ptr, &buf, &UNK_020FF49C);
FillWindowPixelRect(&buf, 15, 0, 0, 0xd0, 0x90);
FUN_0200CCA4(&buf, 0, 0x1f7, 2);
@@ -126,7 +146,7 @@ THUMB_FUNC void PrintErrorMessageAndReset()
FUN_0200E3A0(PM_LCD_TOP, 0x7FFF);
FUN_0200E3A0(PM_LCD_BOTTOM, 0x7FFF);
- FUN_02019178(&buf);
+ RemoveWindow(&buf);
DestroyMsgData(msg_data);
FreeToHeap(ptr);
diff --git a/arm9/src/filesystem.c b/arm9/src/filesystem.c
index ed82acb9..37d381a3 100644
--- a/arm9/src/filesystem.c
+++ b/arm9/src/filesystem.c
@@ -175,8 +175,7 @@ THUMB_FUNC void ReadFromNarcMemberByPathAndId(void * dest, const char * path, s3
FS_SeekFile(&file, (s32)(chunk_starts[0] + 4), FS_SEEK_SET);
FS_ReadFile(&file, &chunk_size, 4);
FS_ReadFile(&file, &num_files, 2);
- if (num_files <= file_idx)
- GF_AssertFail();
+ GF_ASSERT(num_files > file_idx);
chunk_starts[1] = chunk_starts[0] + chunk_size;
FS_SeekFile(&file, (s32)(chunk_starts[1] + 4), FS_SEEK_SET);
FS_ReadFile(&file, &chunk_size, 4);
@@ -190,8 +189,7 @@ THUMB_FUNC void ReadFromNarcMemberByPathAndId(void * dest, const char * path, s3
chunk_size = file_end - file_start;
else
chunk_size = size;
- if (chunk_size == 0)
- GF_AssertFail();
+ GF_ASSERT(chunk_size != 0);
FS_ReadFile(&file, dest, (s32)chunk_size);
FS_CloseFile(&file);
}
@@ -216,8 +214,7 @@ THUMB_FUNC void * AllocAndReadFromNarcMemberByPathAndId(const char * path, s32 f
FS_SeekFile(&file, (s32)(chunk_starts[0] + 4), FS_SEEK_SET);
FS_ReadFile(&file, &chunk_size, 4);
FS_ReadFile(&file, &num_files, 2);
- if (num_files <= file_idx)
- GF_AssertFail();
+ GF_ASSERT(num_files > file_idx);
chunk_starts[1] = chunk_starts[0] + chunk_size;
FS_SeekFile(&file, (s32)(chunk_starts[1] + 4), FS_SEEK_SET);
FS_ReadFile(&file, &chunk_size, 4);
@@ -231,8 +228,7 @@ THUMB_FUNC void * AllocAndReadFromNarcMemberByPathAndId(const char * path, s32 f
chunk_size = file_end - file_start;
else
chunk_size = size;
- if (chunk_size == 0)
- GF_AssertFail();
+ GF_ASSERT(chunk_size != 0);
switch (r4)
{
case 0:
@@ -296,8 +292,7 @@ THUMB_FUNC u32 GetNarcMemberSizeByIdPair(NarcId narc_id, s32 file_idx)
FS_SeekFile(&file, (s32)(chunk_starts[0] + 4), FS_SEEK_SET);
FS_ReadFile(&file, &chunk_size, 4);
FS_ReadFile(&file, &num_files, 2);
- if (num_files <= file_idx)
- GF_AssertFail();
+ GF_ASSERT(num_files > file_idx);
chunk_starts[1] = chunk_starts[0] + chunk_size;
FS_SeekFile(&file, (s32)(chunk_starts[1] + 4), FS_SEEK_SET);
FS_ReadFile(&file, &chunk_size, 4);
@@ -308,8 +303,7 @@ THUMB_FUNC u32 GetNarcMemberSizeByIdPair(NarcId narc_id, s32 file_idx)
chunk_starts[2] = chunk_starts[1] + btnf_size;
FS_SeekFile(&file, (s32)(chunk_starts[2] + 8 + file_start + 0), FS_SEEK_SET);
chunk_size = file_end - file_start;
- if (chunk_size == 0)
- GF_AssertFail();
+ GF_ASSERT(chunk_size != 0);
// Bug: File is never closed
return chunk_size;
}
@@ -348,8 +342,7 @@ THUMB_FUNC void * NARC_AllocAndReadWholeMember(NARC * narc, u32 file_id, u32 hea
u32 file_start;
u32 file_end;
void * dest;
- if (narc->num_files <= file_id)
- GF_AssertFail();
+ GF_ASSERT(narc->num_files > file_id);
FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET);
FS_ReadFile(&narc->file, &file_start, 4);
FS_ReadFile(&narc->file, &file_end, 4);
@@ -366,8 +359,7 @@ THUMB_FUNC void NARC_ReadWholeMember(NARC * narc, u32 file_id, void * dest)
{
u32 file_start;
u32 file_end;
- if (narc->num_files <= file_id)
- GF_AssertFail();
+ GF_ASSERT(narc->num_files > file_id);
FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET);
FS_ReadFile(&narc->file, &file_start, 4);
FS_ReadFile(&narc->file, &file_end, 4);
@@ -379,8 +371,7 @@ THUMB_FUNC u32 NARC_GetMemberSize(NARC * narc, u32 file_id)
{
u32 file_start;
u32 file_end;
- if (narc->num_files <= file_id)
- GF_AssertFail();
+ GF_ASSERT(narc->num_files > file_id);
FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET);
FS_ReadFile(&narc->file, &file_start, 4);
FS_ReadFile(&narc->file, &file_end, 4);
@@ -390,8 +381,7 @@ THUMB_FUNC u32 NARC_GetMemberSize(NARC * narc, u32 file_id)
THUMB_FUNC void NARC_ReadFromMember(NARC * narc, u32 file_id, u32 pos, u32 size, void * dest)
{
u32 file_start;
- if (narc->num_files <= file_id)
- GF_AssertFail();
+ GF_ASSERT(narc->num_files > file_id);
FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET);
FS_ReadFile(&narc->file, &file_start, 4);
FS_SeekFile(&narc->file, (s32)(narc->gmif_start + 8 + file_start + pos), FS_SEEK_SET);
diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c
index 769c90d9..1dc7f50e 100644
--- a/arm9/src/gf_gfx_loader.c
+++ b/arm9/src/gf_gfx_loader.c
@@ -3,7 +3,7 @@
#include "NNS_g2d.h"
#include "gf_gfx_loader.h"
-THUMB_FUNC u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id)
+THUMB_FUNC u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id)
{
NNSG2dCharacterData * pCharData;
void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberNo, isCompressed, heap_id, FALSE);
@@ -13,14 +13,14 @@ THUMB_FUNC u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkS
{
if (szByte == 0)
szByte = pCharData->szByte;
- FUN_02017E14(unkStruct02016B94_2, (u8)a3, pCharData->pRawData, szByte, a4);
+ BG_LoadCharTilesData(unkStruct02016B94_2, (u8)a3, pCharData->pRawData, szByte, a4);
}
FreeToHeap(pFile);
}
return szByte;
}
-THUMB_FUNC void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id)
+THUMB_FUNC void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id)
{
NNSG2dScreenData * pScreenData;
void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberNo, isCompressed, heap_id, TRUE);
@@ -30,9 +30,9 @@ THUMB_FUNC void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct Unk
{
if (szByte == 0)
szByte = pScreenData->szByte;
- if (FUN_0201886C(unkStruct02016B94_2, (u8)a3) != NULL)
- FUN_02017DFC(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte);
- FUN_02017CE8(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte, a4);
+ if (GetBgTilemapBuffer(unkStruct02016B94_2, (u8) a3) != NULL)
+ BG_LoadScreenTilemapData(unkStruct02016B94_2, (u8) a3, pScreenData->rawData, szByte);
+ BgCopyOrUncompressTilemapBufferRangeToVram(unkStruct02016B94_2, (u8) a3, pScreenData->rawData, szByte, a4);
}
FreeToHeap(pFile);
}
diff --git a/arm9/src/main.c b/arm9/src/main.c
index fa35c81c..979fb7ca 100644
--- a/arm9/src/main.c
+++ b/arm9/src/main.c
@@ -168,8 +168,7 @@ THUMB_FUNC void Main_RunOverlayManager(void)
THUMB_FUNC void RegisterMainOverlay(FSOverlayID id, const struct Unk21DBE18 * arg1)
{
- if (UNK_02016FA8.unkC != NULL)
- GF_AssertFail();
+ GF_ASSERT(UNK_02016FA8.unkC == NULL);
UNK_02016FA8.unk8 = id;
UNK_02016FA8.unkC = arg1;
}
diff --git a/arm9/src/poke_overlay.c b/arm9/src/poke_overlay.c
index e11ecbb6..bb5bb891 100644
--- a/arm9/src/poke_overlay.c
+++ b/arm9/src/poke_overlay.c
@@ -8,10 +8,8 @@ static struct LoadedOverlay gLoadedOverlays[3][8];
THUMB_FUNC void FreeOverlayAllocation(struct LoadedOverlay * loaded)
{
- if (loaded->active != TRUE)
- GF_AssertFail();
- if (FS_UnloadOverlay(MI_PROCESSOR_ARM9, loaded->id) != TRUE)
- GF_AssertFail();
+ GF_ASSERT(loaded->active == TRUE);
+ GF_ASSERT(FS_UnloadOverlay(MI_PROCESSOR_ARM9, loaded->id) == TRUE);
loaded->active = FALSE;
}
@@ -34,8 +32,7 @@ THUMB_FUNC s32 GetOverlayLoadDestination(FSOverlayID id)
FSOverlayInfo info;
u8 *end;
u8 *start;
- if (FS_LoadOverlayInfo(&info, MI_PROCESSOR_ARM9, id) != TRUE)
- GF_AssertFail();
+ GF_ASSERT(FS_LoadOverlayInfo(&info, MI_PROCESSOR_ARM9, id) == TRUE);
start = (u8 *)HW_ITCM_IMAGE;
end = (u8 *)HW_ITCM_END;
if (info.header.ram_address <= end && info.header.ram_address >= start)
@@ -72,7 +69,7 @@ THUMB_FUNC BOOL HandleLoadOverlay(FSOverlayID id, s32 a1)
}
if (r6 >= 8)
{
- GF_AssertFail();
+ GF_ASSERT(0);
return FALSE;
}
if (r7 == OVERLAY_LOAD_ITCM || r7 == OVERLAY_LOAD_DTCM)
@@ -91,7 +88,7 @@ THUMB_FUNC BOOL HandleLoadOverlay(FSOverlayID id, s32 a1)
result = LoadOverlayNoInitAsync(MI_PROCESSOR_ARM9, id);
break;
default:
- GF_AssertFail();
+ GF_ASSERT(0);
return FALSE;
}
if (r7 == OVERLAY_LOAD_ITCM || r7 == OVERLAY_LOAD_DTCM)
@@ -100,7 +97,7 @@ THUMB_FUNC BOOL HandleLoadOverlay(FSOverlayID id, s32 a1)
}
if (result == 0)
{
- GF_AssertFail();
+ GF_ASSERT(0);
return FALSE;
}
return TRUE;
@@ -120,7 +117,7 @@ THUMB_FUNC BOOL CanOverlayBeLoaded(FSOverlayID id)
{
if ((start >= start2 && start < end2) || (end > start2 && end <= end2) || (start <= start2 && end >= end2))
{
- GF_AssertFail();
+ GF_ASSERT(0);
return FALSE;
}
}
@@ -146,7 +143,7 @@ THUMB_FUNC BOOL GetOverlayRamBounds(FSOverlayID id, void ** start, void ** end)
{
FSOverlayInfo info;
if (!FS_LoadOverlayInfo(&info, MI_PROCESSOR_ARM9, id)) {
- GF_AssertFail();
+ GF_ASSERT(0);
return FALSE;
}
*start = (void *)info.header.ram_address;
diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c
index 7adb1fe8..6287579c 100644
--- a/arm9/src/scrcmd.c
+++ b/arm9/src/scrcmd.c
@@ -4,7 +4,7 @@
#include "options.h"
#include "player_data.h"
#include "text.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
extern void *FUN_02039438(struct UnkSavStruct80* arg, u32 id);
extern void *CreateScriptContext(struct UnkSavStruct80* arg, u16 id);
@@ -779,7 +779,7 @@ THUMB_FUNC BOOL ScrCmd_CloseMessageBox(struct ScriptContext* ctx)
struct Window *unk = FUN_02039438(unk80, 0x1);
u8 *unk2 = FUN_02039438(unk80, 0x6);
FUN_0200D0E0(unk, 0); //clear window?
- FUN_02019178(unk);
+ RemoveWindow(unk);
*unk2 = 0;
return FALSE;
}
@@ -789,7 +789,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0035(struct ScriptContext* ctx)
struct UnkSavStruct80 *unk80 = ctx->unk80;
struct Window *unk = FUN_02039438(unk80, 0x1);
u8 *unk2 = FUN_02039438(unk80, 0x6);
- FUN_02019178(unk);
+ RemoveWindow(unk);
*unk2 = 0;
return FALSE;
}
@@ -834,11 +834,11 @@ THUMB_FUNC static BOOL FUN_0203A6C8(struct ScriptContext* ctx)
{
if (*xdir == 0)
{
- FUN_020179E0(unk80->unk08, 3, 1, *xval);
+ BgSetPosTextAndCommit(unk80->unk08, 3, 1, *xval);
}
else
{
- FUN_020179E0(unk80->unk08, 3, 2, *xval);
+ BgSetPosTextAndCommit(unk80->unk08, 3, 2, *xval);
}
}
@@ -846,11 +846,11 @@ THUMB_FUNC static BOOL FUN_0203A6C8(struct ScriptContext* ctx)
{
if (*ydir == 0)
{
- FUN_020179E0(unk80->unk08, 3, 4, *yval);
+ BgSetPosTextAndCommit(unk80->unk08, 3, 4, *yval);
}
else
{
- FUN_020179E0(unk80->unk08, 3, 5, *yval);
+ BgSetPosTextAndCommit(unk80->unk08, 3, 5, *yval);
}
}
diff --git a/arm9/src/scrcmd_24.c b/arm9/src/scrcmd_24.c
index 9c8f8d4b..b38ed05a 100644
--- a/arm9/src/scrcmd_24.c
+++ b/arm9/src/scrcmd_24.c
@@ -25,11 +25,13 @@ THUMB_FUNC BOOL ScrCmd_Unk01C6(struct ScriptContext* ctx)
return TRUE;
}
-#ifdef NONMATCHING
THUMB_FUNC BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx)
{
- u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
- struct UnkStruct_02037CF0** unk_ptr = FUN_02039438(ctx->unk80, 19);
+ struct UnkStruct_02037CF0** unk_ptr;
+ u16* ret_ptr;
+
+ ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ unk_ptr = FUN_02039438(ctx->unk80, 19);
GF_ASSERT(*unk_ptr != NULL);
*ret_ptr = FUN_02037D5C(*unk_ptr);
@@ -42,44 +44,6 @@ THUMB_FUNC BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx)
*unk_ptr = NULL;
return FALSE;
}
-#else
-THUMB_FUNC asm BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx)
-{
- 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 r4, #0x80
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- mov r1, #0x13
- bl FUN_02039438
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- bne _02045DFC
- bl GF_AssertFail
-_02045DFC:
- ldr r0, [r4, #0x0]
- bl FUN_02037D5C
- strh r0, [r5, #0x0]
- ldrh r0, [r5, #0x0]
- cmp r0, #0x4
- bne _02045E0E
- mov r0, #0xff
- strh r0, [r5, #0x0]
-_02045E0E:
- ldr r0, [r4, #0x0]
- bl FreeToHeap
- mov r0, #0x0
- str r0, [r4, #0x0]
- pop {r3-r5, pc}
-}
-#endif
THUMB_FUNC BOOL ScrCmd_Unk021E(struct ScriptContext* ctx)
{
@@ -159,12 +123,15 @@ THUMB_FUNC BOOL ScrCmd_Unk0222(struct ScriptContext* ctx)
return FALSE;
}
-#ifdef NONMATCHING
THUMB_FUNC BOOL ScrCmd_Unk0223(struct ScriptContext* ctx)
{
- u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
- struct UnkStruct_02037CF0** unk = FUN_02039438(ctx->unk80, 19);
- struct UnkStruct_02037CF0* unk_sub = *unk;
+ struct UnkStruct_02037CF0** unk;
+ struct UnkStruct_02037CF0* unk_sub;
+ u16* ret_ptr;
+
+ ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ unk = FUN_02039438(ctx->unk80, 19);
+ unk_sub = *unk;
GF_ASSERT(unk_sub != NULL);
@@ -180,49 +147,16 @@ THUMB_FUNC BOOL ScrCmd_Unk0223(struct ScriptContext* ctx)
FUN_02088DF0(unk_sub);
return FALSE;
}
-#else
-THUMB_FUNC asm BOOL ScrCmd_Unk0223(struct ScriptContext* ctx)
-{
- 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 r4, #0x80
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- mov r1, #0x13
- bl FUN_02039438
- ldr r4, [r0, #0x0]
- cmp r4, #0x0
- bne _02045FB2
- bl GF_AssertFail
-_02045FB2:
- ldrb r0, [r4, #0x16]
- cmp r0, #0x0
- bne _02045FBC
- mov r0, #0x0
- b _02045FBE
-_02045FBC:
- mov r0, #0xff
-_02045FBE:
- strh r0, [r5, #0x0]
- add r0, r4, #0x0
- bl FUN_02088DF0
- mov r0, #0x0
- pop {r3-r5, pc}
-}
-#endif
-#ifdef NONMATCHING
THUMB_FUNC BOOL ScrCmd_Unk0225(struct ScriptContext* ctx)
{
- u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
- struct UnkStruct_02037CF0** unk = FUN_02039438(ctx->unk80, 19);
- struct UnkStruct_02037CF0* unk_sub = *unk;
+ struct UnkStruct_02037CF0** unk;
+ struct UnkStruct_02037CF0* unk_sub;
+ u16* ret_ptr;
+
+ ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ unk = FUN_02039438(ctx->unk80, 19);
+ unk_sub = *unk;
GF_ASSERT(unk_sub != NULL);
@@ -238,39 +172,3 @@ THUMB_FUNC BOOL ScrCmd_Unk0225(struct ScriptContext* ctx)
FUN_02088DF0(unk_sub);
return FALSE;
}
-#else
-THUMB_FUNC asm BOOL ScrCmd_Unk0225(struct ScriptContext* ctx)
-{
- 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 r4, #0x80
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- mov r1, #0x13
- bl FUN_02039438
- ldr r4, [r0, #0x0]
- cmp r4, #0x0
- bne _02045FB2
- bl GF_AssertFail
-_02045FB2:
- ldrb r0, [r4, #0x16]
- cmp r0, #0x0
- bne _02045FBC
- mov r0, #0x0
- b _02045FBE
-_02045FBC:
- mov r0, #0xff
-_02045FBE:
- strh r0, [r5, #0x0]
- add r0, r4, #0x0
- bl FUN_02088DF0
- mov r0, #0x0
- pop {r3-r5, pc}
-}
-#endif
diff --git a/arm9/src/script.c b/arm9/src/script.c
index 3de2ee73..3e8cca58 100644
--- a/arm9/src/script.c
+++ b/arm9/src/script.c
@@ -76,7 +76,7 @@ THUMB_FUNC u8 RunScriptCommand(struct ScriptContext *ctx)
cmdCode = ScriptReadHalfword(ctx);
if (cmdCode >= ctx->cmdCount)
{
- GF_AssertFail();
+ GF_ASSERT(0);
ctx->mode = 0;
return FALSE;
}
diff --git a/arm9/src/script_pokemon_util.c b/arm9/src/script_pokemon_util.c
index 55519ca3..de78ae28 100644
--- a/arm9/src/script_pokemon_util.c
+++ b/arm9/src/script_pokemon_util.c
@@ -109,7 +109,7 @@ struct Pokemon * GetFirstAliveMonInParty_CrashIfNone(struct PlayerParty * party)
if(MonNotFaintedOrEgg(mon))
return mon;
}
- GF_AssertFail();
+ GF_ASSERT(0);
return 0;
}
diff --git a/arm9/src/text_02054590.c b/arm9/src/text_02054590.c
index dcbad024..d4984f78 100644
--- a/arm9/src/text_02054590.c
+++ b/arm9/src/text_02054590.c
@@ -1,20 +1,20 @@
#include "text_02054590.h"
#include "text.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
extern void FUN_0201BD5C(void);
extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2);
extern void FUN_02002EEC(u32 param0, u32 param1, u32 param2);
extern void FUN_0200CD68(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5);
+ struct BgConfig *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5);
extern void FUN_0200D0BC(struct Window *param0, u32 param1, u32 param2, u32 param3);
extern void FUN_02002B60(u8 param0);
extern void FUN_02002B7C(u32 param0);
extern void FUN_02002BB8(u32 param0);
-extern void FUN_0200D300(struct UnkStruct_02016B94_2 *param0,
+extern void FUN_0200D300(struct BgConfig *param0,
u32 param1,
u32 param2,
u32 param3,
@@ -33,21 +33,21 @@ THUMB_FUNC void FUN_02054590(u32 param0, u32 param1)
FUN_02002EEC(param0, 384, 4);
}
-THUMB_FUNC void FUN_020545B8(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2)
+THUMB_FUNC void FUN_020545B8(struct BgConfig *param0, struct Window *param1, u32 param2)
{
if (param2 == 3)
{
- FUN_02019064(param0, param1, 3, 2, 19, 27, 4, 12, 813);
+ AddWindowParameterized(param0, param1, 3, 2, 19, 27, 4, 12, 813);
}
else
{
- FUN_02019064(param0, param1, 7, 2, 19, 27, 4, 12, 404);
+ AddWindowParameterized(param0, param1, 7, 2, 19, 27, 4, 12, 404);
}
}
THUMB_FUNC void FUN_02054608(struct Window *param0, struct Options *options)
{
- FUN_0200CD68(param0->unk00, FUN_0201AB08(param0), 994, 10, (u8)Options_GetFrame(options), 4);
+ FUN_0200CD68(param0->bgConfig, GetWindowBgId(param0), 994, 10, (u8)Options_GetFrame(options), 4);
FUN_0205464C(param0);
FUN_0200D0BC(param0, 0, 994, 10);
}
@@ -79,7 +79,7 @@ THUMB_FUNC u8 FUN_020546C8(u32 param0) // bool8?
}
THUMB_FUNC void FUN_020546E0(
- struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2, u32 param3)
+ struct BgConfig *param0, struct Window *param1, u32 param2, u32 param3)
{
u32 r4 = 0;
u32 r5 = 0;
@@ -95,17 +95,17 @@ THUMB_FUNC void FUN_020546E0(
}
if (param3 == 3)
{
- FUN_02019064(param0, param1, 3, (u8)r4, 19, (u8)r5, 4, 9, 813);
+ AddWindowParameterized(param0, param1, 3, (u8) r4, 19, (u8) r5, 4, 9, 813);
}
else
{
- FUN_02019064(param0, param1, 7, (u8)r4, 19, (u8)r5, 4, 9, 404);
+ AddWindowParameterized(param0, param1, 7, (u8) r4, 19, (u8) r5, 4, 9, 404);
}
}
THUMB_FUNC void FUN_02054744(struct Window *param0, u32 param1, u32 param2)
{
- FUN_0200D300(param0->unk00, FUN_0201AB08(param0), 0x399, 9, (u8)param1, param2, 4);
+ FUN_0200D300(param0->bgConfig, GetWindowBgId(param0), 0x399, 9, (u8)param1, param2, 4);
FillWindowPixelBuffer(param0, 15);
FUN_0200D6F8(param0, 0, 0x399, 9, (u8)param1);
}
diff --git a/arm9/src/timer3.c b/arm9/src/timer3.c
index 1799fd24..d4e8f8a1 100644
--- a/arm9/src/timer3.c
+++ b/arm9/src/timer3.c
@@ -1,37 +1,37 @@
#include "timer3.h"
-struct Timer3Data timer3_data;
+static BOOL timer3_needReset;
+static vu64 timer3_counter;
THUMB_FUNC void Init_Timer3()
{
- timer3_data.Timer3Counter = 0;
- timer3_data.NeedReset = FALSE;
+ timer3_counter = 0;
+ timer3_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_SetTimerControl(OS_TIMER_3, 0);
+ OS_SetTimerCount(OS_TIMER_3, 0);
+ OS_SetTimerControl(OS_TIMER_3, REG_OS_TM3CNT_H_E_MASK | REG_OS_TM3CNT_H_I_MASK | OS_TIMER_PRESCALER_64); // start timer3 with f/64 and irq enable
- OS_SetIrqFunction(0x40, &CountUpTimer3);
- OS_EnableIrqMask(0x40); // irq on timer3 overflow
+ OS_SetIrqFunction(OS_IE_TIMER3, &CountUpTimer3);
+ OS_EnableIrqMask(OS_IE_TIMER3); // irq on timer3 overflow
}
THUMB_FUNC void CountUpTimer3()
{
- timer3_data.Timer3Counter++;
+ timer3_counter++;
- if (timer3_data.NeedReset)
+ if (timer3_needReset)
{
- reg_OS_TM3CNT_H = 0;
- reg_OS_TM3CNT_L = 0;
- reg_OS_TM3CNT_H = 0xc1;
- timer3_data.NeedReset = FALSE;
+ OS_SetTimerControl(OS_TIMER_3, 0);
+ OS_SetTimerCount(OS_TIMER_3, 0);
+ OS_SetTimerControl(OS_TIMER_3, REG_OS_TM3CNT_H_E_MASK | REG_OS_TM3CNT_H_I_MASK | OS_TIMER_PRESCALER_64);
+ timer3_needReset = FALSE;
}
- *(vu32 *)HW_INTR_CHECK_BUF |= 0x40;
-
- OS_SetIrqFunction(0x40, &CountUpTimer3);
+ OS_SetIrqCheckFlag(OS_IE_TIMER3);
+ OS_SetIrqFunction(OS_IE_TIMER3, &CountUpTimer3);
}
THUMB_FUNC u64 internal_GetTimer3Count()
@@ -39,15 +39,15 @@ THUMB_FUNC u64 internal_GetTimer3Count()
OSIntrMode intr_mode = OS_DisableInterrupts();
vu16 timer3 = reg_OS_TM3CNT_L;
- vu64 timer3_counter = timer3_data.Timer3Counter & 0x0000ffffffffffff;
+ vu64 counter = timer3_counter & 0x0000ffffffffffff;
- if (reg_OS_IF & 0x40 && !(timer3 & 0x8000))
+ if (reg_OS_IF & OS_IE_TIMER3 && !(timer3 & 0x8000))
{
- timer3_counter++;
+ counter++;
}
OS_RestoreInterrupts(intr_mode);
- return (timer3_counter << 16) | timer3;
+ return (counter << 16) | timer3;
}
THUMB_FUNC u64 GetTimer3Count()
@@ -57,10 +57,10 @@ THUMB_FUNC u64 GetTimer3Count()
THUMB_FUNC u64 Timer3CountToMilliSeconds(u64 count)
{
- return (count *64) / 33514;
+ return (count * 64) / (HW_SYSTEM_CLOCK / 1000);
}
THUMB_FUNC u64 Timer3CountToSeconds(u64 count)
{
- return (count *64) / HW_SYSTEM_CLOCK;
+ return (count * 64) / HW_SYSTEM_CLOCK;
}
diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c
index 358d21ea..4ed957d6 100644
--- a/arm9/src/unk_0200BB14.c
+++ b/arm9/src/unk_0200BB14.c
@@ -517,13 +517,8 @@ THUMB_FUNC BOOL FUN_0200C00C(u32 *param0,
return TRUE;
}
- GF_AssertFail();
- if (r5 != 0)
- {
- return TRUE;
- }
-
- return FALSE;
+ GF_ASSERT(0);
+ return r5 != 0 ? TRUE : FALSE;
}
THUMB_FUNC s32 FUN_0200C06C(u32 *param0,
@@ -549,7 +544,7 @@ THUMB_FUNC s32 FUN_0200C06C(u32 *param0,
return (s8)FUN_02009E88(r5, param6);
}
- GF_AssertFail();
+ GF_ASSERT(0);
return -1;
}
@@ -721,7 +716,7 @@ THUMB_FUNC struct UnkStruct_0200BB14_5 *FUN_0200C154(
}
else
{
- GF_AssertFail();
+ GF_ASSERT(0);
}
return ptr;
@@ -805,13 +800,8 @@ THUMB_FUNC BOOL FUN_0200C404(u32 *param0,
GF_ASSERT(r4 == 1);
return r4;
}
- GF_AssertFail();
- if (r5 != 0)
- {
- return TRUE;
- }
-
- return FALSE;
+ GF_ASSERT(0);
+ return r5 != 0 ? TRUE : FALSE;
}
THUMB_FUNC BOOL FUN_0200C474(u32 *param0, u32 param1)
@@ -1259,13 +1249,8 @@ THUMB_FUNC BOOL FUN_0200C918(u32 *param0,
return TRUE;
}
- GF_AssertFail();
- if (r5 != 0)
- {
- return TRUE;
- }
-
- return FALSE;
+ GF_ASSERT(0);
+ return r5 != 0 ? TRUE : FALSE;
}
THUMB_FUNC BOOL FUN_0200C978(u32 *param0,
@@ -1290,13 +1275,8 @@ THUMB_FUNC BOOL FUN_0200C978(u32 *param0,
return TRUE;
}
- GF_AssertFail();
- if (r5 != 0)
- {
- return TRUE;
- }
-
- return FALSE;
+ GF_ASSERT(0);
+ return r5 != 0 ? TRUE : FALSE;
}
THUMB_FUNC void FUN_0200C9D8(
diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c
deleted file mode 100644
index c03fbd75..00000000
--- a/arm9/src/unk_02016B94.c
+++ /dev/null
@@ -1,8110 +0,0 @@
-#include "global.h"
-#include "unk_02016B94.h"
-#include "GX_layers.h"
-#include "game_init.h"
-#include "gx.h"
-#include "heap.h"
-
-extern void NNS_G2dGetUnpackedBGCharacterData(void *param0, u32 *param1);
-extern void NNS_G2dGetUnpackedPaletteData(void *param0, u32 *param1);
-
-const u8 UNK_020EDB30[8] = {
- 0x10,
- 0x20,
- 0x20,
- 0x20,
- 0x20,
- 0x20,
- 0x00,
- 0x00,
-};
-
-void (*const UNK_020EDB5C[])(struct Window *) = {
- FUN_020194C8,
- FUN_0201951C,
- FUN_020194C8,
-};
-
-void (*const UNK_020EDB50[])(struct Window *) = {
- FUN_020195A8,
- FUN_020195E4,
- FUN_020195A8,
-};
-
-void (*const UNK_020EDB44[])(struct Window *) = {
- FUN_020195D0,
- FUN_0201960C,
- FUN_020195D0,
-};
-
-void (*const UNK_020EDB38[])(struct Window *) = {
- FUN_020192D4,
- FUN_02019358,
- FUN_020192D4,
-};
-
-void (*const UNK_020EDB68[])(struct Window *) = {
- FUN_0201949C,
- FUN_020194E0,
- FUN_0201949C,
-};
-
-void (*const UNK_020EDB74[])(struct Window *) = {
- FUN_020193B4,
- FUN_02019444,
- FUN_020193B4,
-};
-
-THUMB_FUNC struct UnkStruct_02016B94_2 *FUN_02016B94(u32 heap_id)
-{
- struct UnkStruct_02016B94_2 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct_02016B94_2));
- memset(ptr, 0, sizeof(struct UnkStruct_02016B94_2));
- ptr->unk00 = heap_id;
- ptr->unk04 = 0;
- ptr->unk06 = 0;
-
- return ptr;
-}
-
-THUMB_FUNC u32 FUN_02016BB8(u32 *param0)
-{
- return *param0;
-}
-
-THUMB_FUNC void FUN_02016BBC(const struct GraphicsModes *modes)
-{
- GX_SetGraphicsMode(modes->dispMode, modes->bgMode, modes->_2d3dMode);
- GXS_SetGraphicsMode(modes->subMode);
- reg_GX_DISPCNT &= ~REG_GX_DISPCNT_BGSCREENOFFSET_MASK;
- reg_GX_DISPCNT &= ~REG_GX_DISPCNT_BGCHAROFFSET_MASK;
-
- GX_DisableEngineALayers();
- GX_DisableEngineBLayers();
-}
-
-THUMB_FUNC void FUN_02016BF4(const struct GraphicsModes *param0, u32 param1)
-{
- if (param1 == 0)
- {
- GX_SetGraphicsMode(param0->dispMode, param0->bgMode, param0->_2d3dMode);
- GX_DisableEngineALayers();
- }
- else
- {
- GXS_SetGraphicsMode(param0->subMode);
- GX_DisableEngineBLayers();
- }
-}
-
-#ifdef NONMATCHING
-THUMB_FUNC void FUN_02016C18(
- struct UnkStruct_02016B94_2 *param0, u8 param1, const struct UnkStruct_02016B94_1 *param2, u8 param3)
-{
- u8 res = FUN_020177DC(param2->unk10, param3);
- switch (param1)
- {
- case 0:
- GX_EngineAToggleLayers(1, GX_LAYER_TOGGLE_ON);
-
- reg_G2_BG0CNT = (reg_G2_BG0CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2);
- reg_G2_BG0CNT = (reg_G2_BG0CNT & ~3) | (param2->unk15);
-
- if (param2->unk18 != 0)
- {
- reg_G2_BG0CNT |= 0x40;
- }
- else
- {
- reg_G2_BG0CNT &= ~0x40;
- }
-
- break;
-
- case 1:
- GX_EngineAToggleLayers(2, GX_LAYER_TOGGLE_ON);
- reg_G2_BG1CNT = (reg_G2_BG1CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2);
- reg_G2_BG1CNT = (reg_G2_BG1CNT & ~3) | (param2->unk15);
-
- if (param2->unk18 != 0)
- {
- reg_G2_BG1CNT |= 0x40;
- }
- else
- {
- reg_G2_BG1CNT &= ~0x40;
- }
-
- break;
-
- case 2:
- GX_EngineAToggleLayers(4, GX_LAYER_TOGGLE_ON);
- switch (param3)
- {
- default:
- case 0:
- reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk11 << 7) | (param2->unk13 << 2);
- break;
- case 1:
- reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk16 << 13) | (param2->unk13 << 2);
- break;
- case 2:
- reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk16 << 13) | (param2->unk13 << 2);
- break;
- }
-
- reg_G2_BG2CNT = (reg_G2_BG2CNT & ~3) | (param2->unk15);
-
- if (param2->unk18 != 0)
- {
- reg_G2_BG2CNT |= 0x40;
- }
- else
- {
- reg_G2_BG2CNT &= ~0x40;
- }
-
- break;
-
- case 3:
- GX_EngineAToggleLayers(8, GX_LAYER_TOGGLE_ON);
-
- switch (param3)
- {
- default:
- case 0:
- reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk11 << 7) | (param2->unk13 << 2);
- break;
- case 1:
- reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk16 << 13) | (param2->unk13 << 2);
- break;
- case 2:
- reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk16 << 13) | (param2->unk13 << 2);
- break;
- }
-
- reg_G2_BG3CNT = (reg_G2_BG3CNT & ~3) | (param2->unk15);
- if (param2->unk18 != 0)
- {
- reg_G2_BG3CNT |= 0x40;
- }
- else
- {
- reg_G2_BG3CNT &= ~0x40;
- }
- break;
-
- case 4:
- GX_EngineBToggleLayers(1, GX_LAYER_TOGGLE_ON);
-
- reg_G2S_DB_BG0CNT = (reg_G2S_DB_BG0CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2);
-
- reg_G2S_DB_BG0CNT = (reg_G2S_DB_BG0CNT & ~3) | (param2->unk15);
-
- if (param2->unk18 != 0)
- {
- reg_G2S_DB_BG0CNT |= 0x40;
- }
- else
- {
- reg_G2S_DB_BG0CNT &= ~0x40;
- }
-
- break;
-
- case 5:
- GX_EngineBToggleLayers(2, GX_LAYER_TOGGLE_ON);
-
- reg_G2S_DB_BG1CNT = (reg_G2S_DB_BG1CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2);
-
- reg_G2S_DB_BG1CNT = (reg_G2S_DB_BG1CNT & ~3) | (param2->unk15);
-
- if (param2->unk18 != 0)
- {
- reg_G2S_DB_BG1CNT |= 0x40;
- }
- else
- {
- reg_G2S_DB_BG1CNT &= ~0x40;
- }
-
- break;
-
- case 6:
- GX_EngineBToggleLayers(4, GX_LAYER_TOGGLE_ON);
-
- switch (param3)
- {
- default:
- case 0:
- reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk11 << 7) | (param2->unk13 << 2);
- break;
- case 1:
- reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk16 << 13) | (param2->unk13 << 2);
- break;
- case 2:
- reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk16 << 13) | (param2->unk13 << 2);
- break;
- }
-
- reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & ~3) | (param2->unk15);
-
- if (param2->unk18 != 0)
- {
- reg_G2S_DB_BG2CNT |= 0x40;
- }
- else
- {
- reg_G2S_DB_BG2CNT &= ~0x40;
- }
-
- break;
- case 7:
- GX_EngineBToggleLayers(8, GX_LAYER_TOGGLE_ON);
- switch (param3)
- {
- default:
- case 0:
- reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk11 << 7) | (param2->unk13 << 2);
- break;
- case 1:
- reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk16 << 13) | (param2->unk13 << 2);
- break;
- case 2:
- reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) |
- (param2->unk16 << 13) | (param2->unk13 << 2);
- break;
- }
-
- reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & ~3) | (param2->unk15);
- if (param2->unk18 != 0)
- {
- reg_G2S_DB_BG3CNT |= 0x40;
- }
- else
- {
- reg_G2S_DB_BG3CNT &= ~0x40;
- }
- break;
- }
-
- param0->unk08[param1].unk20 = 0;
- param0->unk08[param1].unk24 = 0x1000;
- param0->unk08[param1].unk28 = 0x1000;
- param0->unk08[param1].unk2c = 0;
- param0->unk08[param1].unk30 = 0;
-
- if (param2->unk08 != 0)
- {
- param0->unk08[param1].unk08 = AllocFromHeap(param0->unk00, param2->unk08);
-
- MI_CpuClear16(param0->unk08[param1].unk08, param2->unk08);
-
- param0->unk08[param1].unk0c = param2->unk08;
- param0->unk08[param1].unk10 = param2->unk0c;
- }
- else
- {
- param0->unk08[param1].unk08 = 0;
- param0->unk08[param1].unk0c = 0;
- param0->unk08[param1].unk10 = 0;
- }
-
- param0->unk08[param1].unk1d = param2->unk10;
- param0->unk08[param1].unk1c = param3;
- param0->unk08[param1].unk1e = param2->unk11;
-
- if (param3 == 0 && param2->unk11 == 0)
- {
- param0->unk08[param1].unk1f = 0x20;
- }
- else
- {
- param0->unk08[param1].unk1f = 0x40;
- }
-
- FUN_020179E0(param0, param1, 0, param2->unk00);
- FUN_020179E0(param0, param1, 3, param2->unk04);
-}
-#else
-THUMB_FUNC asm void FUN_02016C18(
- struct UnkStruct_02016B94_2 *param0, u8 param1, const struct UnkStruct_02016B94_1 *param2, u8 param3)
-{
- // clang-format off
- push {r3-r7, lr}
- sub sp, #0x18
- str r1, [sp, #0x4]
- str r3, [sp, #0x8]
- add r4, r2, #0x0
- str r0, [sp, #0x0]
- ldrb r0, [r4, #0x10]
- ldr r1, [sp, #0x8]
- bl FUN_020177DC
- add r5, r0, #0x0
- ldr r0, [sp, #0x4]
- cmp r0, #0x7
- bls _02016C36
- b _0201705A
-_02016C36:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02016C42:
- // jump table (using 16-bit offset)
- // .short _02016C52 - _02016C42 - 2; case 0
- // .short _02016CAA - _02016C42 - 2; case 1
- // .short _02016D02 - _02016C42 - 2; case 2
- // .short _02016DA4 - _02016C42 - 2; case 3
- // .short _02016E46 - _02016C42 - 2; case 4
- // .short _02016E9E - _02016C42 - 2; case 5
- // .short _02016EF6 - _02016C42 - 2; case 6
- // .short _02016F98 - _02016C42 - 2; case 7
-
- lsl r6, r1, #0
- lsl r6, r4, #1
- lsl r6, r7, #2
- lsl r0, r4, #5
- lsl r2, r0, #8
- lsl r2, r3, #9
- lsl r2, r6, #10
- lsl r4, r2, #13
-_02016C52:
- mov r0, #0x1
- add r1, r0, #0x0
- bl GX_EngineAToggleLayers
- ldrb r3, [r4, #0x14]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x11]
- ldrb r2, [r4, #0x13]
- lsl r6, r3, #0xd
- lsl r0, r0, #0x7
- lsl r3, r2, #0x2
- str r0, [sp, #0xc]
- ldr r2, =0x04000008
- lsl r7, r1, #0x8
- ldrh r1, [r2, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r1, r0
- ldr r0, [sp, #0xc]
- orr r0, r1
- orr r0, r7
- orr r0, r3
- orr r0, r6
- strh r0, [r2, #0x0]
- ldrh r1, [r2, #0x0]
- mov r0, #0x3
- bic r1, r0
- ldrb r0, [r4, #0x15]
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r0, [r4, #0x18]
- cmp r0, #0x0
- beq _02016CA0
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- orr r0, r1
- strh r0, [r2, #0x0]
- b _0201705A
-_02016CA0:
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r2, #0x0]
- b _0201705A
-_02016CAA:
- mov r0, #0x2
- mov r1, #0x1
- bl GX_EngineAToggleLayers
- ldrb r3, [r4, #0x14]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x11]
- ldrb r2, [r4, #0x13]
- lsl r6, r3, #0xd
- lsl r0, r0, #0x7
- lsl r3, r2, #0x2
- str r0, [sp, #0x10]
- ldr r2, =0x0400000A
- lsl r7, r1, #0x8
- ldrh r1, [r2, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r1, r0
- ldr r0, [sp, #0x10]
- orr r0, r1
- orr r0, r7
- orr r0, r3
- orr r0, r6
- strh r0, [r2, #0x0]
- ldrh r1, [r2, #0x0]
- mov r0, #0x3
- bic r1, r0
- ldrb r0, [r4, #0x15]
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r0, [r4, #0x18]
- cmp r0, #0x0
- beq _02016CF8
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- orr r0, r1
- strh r0, [r2, #0x0]
- b _0201705A
-_02016CF8:
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r2, #0x0]
- b _0201705A
-_02016D02:
- mov r0, #0x4
- mov r1, #0x1
- bl GX_EngineAToggleLayers
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- beq _02016D18
- cmp r0, #0x1
- beq _02016D3A
- cmp r0, #0x2
- beq _02016D5C
-_02016D18:
- ldrb r1, [r4, #0x12]
- ldr r7, =0x0400000C
- ldrb r2, [r4, #0x13]
- lsl r3, r1, #0x8
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrh r1, [r7, #0x0]
- lsl r2, r0, #0x7
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016D7C
-_02016D3A:
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x16]
- lsl r3, r2, #0x2
- ldr r7, =0x0400000C
- lsl r2, r1, #0x8
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016D7C
-_02016D5C:
- ldrb r1, [r4, #0x12]
- ldr r7, =0x0400000C
- ldrb r0, [r4, #0x16]
- lsl r3, r1, #0x8
- ldrb r2, [r4, #0x13]
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- lsl r2, r2, #0x2
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
-_02016D7C:
- ldr r0, =0x0400000C
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- ldrb r1, [r4, #0x15]
- orr r1, r2
- strh r1, [r0, #0x0]
- ldr r1, [r4, #0x18]
- cmp r1, #0x0
- beq _02016D9A
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- orr r1, r2
- strh r1, [r0, #0x0]
- b _0201705A
-_02016D9A:
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- bic r2, r1
- strh r2, [r0, #0x0]
- b _0201705A
-_02016DA4:
- mov r0, #0x8
- mov r1, #0x1
- bl GX_EngineAToggleLayers
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- beq _02016DBA
- cmp r0, #0x1
- beq _02016DDC
- cmp r0, #0x2
- beq _02016DFE
-_02016DBA:
- ldrb r1, [r4, #0x12]
- ldr r7, =0x0400000E
- ldrb r2, [r4, #0x13]
- lsl r3, r1, #0x8
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrh r1, [r7, #0x0]
- lsl r2, r0, #0x7
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016E1E
-_02016DDC:
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x16]
- lsl r3, r2, #0x2
- ldr r7, =0x0400000E
- lsl r2, r1, #0x8
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016E1E
-_02016DFE:
- ldrb r1, [r4, #0x12]
- ldr r7, =0x0400000E
- ldrb r0, [r4, #0x16]
- lsl r3, r1, #0x8
- ldrb r2, [r4, #0x13]
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- lsl r2, r2, #0x2
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
-_02016E1E:
- ldr r0, =0x0400000E
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- ldrb r1, [r4, #0x15]
- orr r1, r2
- strh r1, [r0, #0x0]
- ldr r1, [r4, #0x18]
- cmp r1, #0x0
- beq _02016E3C
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- orr r1, r2
- strh r1, [r0, #0x0]
- b _0201705A
-_02016E3C:
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- bic r2, r1
- strh r2, [r0, #0x0]
- b _0201705A
-_02016E46:
- mov r0, #0x1
- add r1, r0, #0x0
- bl GX_EngineBToggleLayers
- ldrb r3, [r4, #0x14]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x11]
- ldrb r2, [r4, #0x13]
- lsl r6, r3, #0xd
- lsl r0, r0, #0x7
- lsl r3, r2, #0x2
- str r0, [sp, #0x14]
- ldr r2, =0x04001008
- lsl r7, r1, #0x8
- ldrh r1, [r2, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r1, r0
- ldr r0, [sp, #0x14]
- orr r0, r1
- orr r0, r7
- orr r0, r3
- orr r0, r6
- strh r0, [r2, #0x0]
- ldrh r1, [r2, #0x0]
- mov r0, #0x3
- bic r1, r0
- ldrb r0, [r4, #0x15]
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r0, [r4, #0x18]
- cmp r0, #0x0
- beq _02016E94
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- orr r0, r1
- strh r0, [r2, #0x0]
- b _0201705A
-_02016E94:
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r2, #0x0]
- b _0201705A
-_02016E9E:
- mov r0, #0x2
- mov r1, #0x1
- bl GX_EngineBToggleLayers
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrb r3, [r4, #0x14]
- lsl r0, r0, #0x7
- mov r12, r0
- ldr r2, =0x0400100A
- lsl r7, r1, #0x8
- ldrh r1, [r2, #0x0]
- mov r0, #0x43
- lsl r3, r3, #0xd
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- mov r1, r12
- orr r0, r1
- orr r0, r7
- orr r0, r6
- orr r0, r3
- strh r0, [r2, #0x0]
- ldrh r1, [r2, #0x0]
- mov r0, #0x3
- bic r1, r0
- ldrb r0, [r4, #0x15]
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r0, [r4, #0x18]
- cmp r0, #0x0
- beq _02016EEC
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- orr r0, r1
- strh r0, [r2, #0x0]
- b _0201705A
-_02016EEC:
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r2, #0x0]
- b _0201705A
-_02016EF6:
- mov r0, #0x4
- mov r1, #0x1
- bl GX_EngineBToggleLayers
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- beq _02016F0C
- cmp r0, #0x1
- beq _02016F2E
- cmp r0, #0x2
- beq _02016F50
-_02016F0C:
- ldrb r1, [r4, #0x12]
- ldr r7, =0x0400100C
- ldrb r2, [r4, #0x13]
- lsl r3, r1, #0x8
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrh r1, [r7, #0x0]
- lsl r2, r0, #0x7
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016F70
-_02016F2E:
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x16]
- lsl r3, r2, #0x2
- ldr r7, =0x0400100C
- lsl r2, r1, #0x8
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016F70
-_02016F50:
- ldrb r1, [r4, #0x12]
- ldr r7, =0x0400100C
- ldrb r0, [r4, #0x16]
- lsl r3, r1, #0x8
- ldrb r2, [r4, #0x13]
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- lsl r2, r2, #0x2
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
-_02016F70:
- ldr r0, =0x0400100C
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- ldrb r1, [r4, #0x15]
- orr r1, r2
- strh r1, [r0, #0x0]
- ldr r1, [r4, #0x18]
- cmp r1, #0x0
- beq _02016F8E
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- orr r1, r2
- strh r1, [r0, #0x0]
- b _0201705A
-_02016F8E:
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- bic r2, r1
- strh r2, [r0, #0x0]
- b _0201705A
-_02016F98:
- mov r0, #0x8
- mov r1, #0x1
- bl GX_EngineBToggleLayers
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- beq _02016FAE
- cmp r0, #0x1
- beq _02016FF2
- cmp r0, #0x2
- beq _02017014
-_02016FAE:
- ldrb r1, [r4, #0x12]
- ldr r7, =0x0400100E
- b _02016FD4
-_02016FD4:
- ldrb r2, [r4, #0x13]
- lsl r3, r1, #0x8
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrh r1, [r7, #0x0]
- lsl r2, r0, #0x7
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02017034
-_02016FF2:
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x16]
- lsl r3, r2, #0x2
- ldr r7, =0x0400100E
- lsl r2, r1, #0x8
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02017034
-_02017014:
- ldrb r1, [r4, #0x12]
- ldr r7, =0x0400100E
- ldrb r0, [r4, #0x16]
- lsl r3, r1, #0x8
- ldrb r2, [r4, #0x13]
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- lsl r2, r2, #0x2
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
-_02017034:
- ldr r0, =0x0400100E
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- ldrb r1, [r4, #0x15]
- orr r1, r2
- strh r1, [r0, #0x0]
- ldr r1, [r4, #0x18]
- cmp r1, #0x0
- beq _02017052
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- orr r1, r2
- strh r1, [r0, #0x0]
- b _0201705A
-_02017052:
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- bic r2, r1
- strh r2, [r0, #0x0]
-_0201705A:
- ldr r0, [sp, #0x4]
- mov r1, #0x2c
- add r5, r0, #0x0
- ldr r0, [sp, #0x0]
- mul r5, r1
- add r2, r0, r5
- mov r3, #0x0
- mov r0, #0x1
- strh r3, [r2, #0x20]
- lsl r0, r0, #0xc
- str r0, [r2, #0x24]
- str r0, [r2, #0x28]
- str r3, [r2, #0x2c]
- str r3, [r2, #0x30]
- ldr r1, [r4, #0x8]
- cmp r1, #0x0
- beq _020170A2
- ldr r0, [sp, #0x0]
- ldr r6, [sp, #0x0]
- ldr r0, [r0, #0x0]
- add r6, #0x8
- bl AllocFromHeap
- str r0, [r6, r5]
- ldr r1, [r6, r5]
- ldr r2, [r4, #0x8]
- mov r0, #0x0
- bl MIi_CpuClear16
- ldr r0, [sp, #0x0]
- ldr r2, [r4, #0x8]
- add r1, r0, r5
- str r2, [r1, #0xc]
- ldr r0, [r4, #0xc]
- str r0, [r1, #0x10]
- b _020170A8
-_020170A2:
- str r3, [r2, #0x8]
- str r3, [r2, #0xc]
- str r3, [r2, #0x10]
-_020170A8:
- ldr r0, [sp, #0x0]
- ldrb r1, [r4, #0x10]
- add r0, r0, r5
- strb r1, [r0, #0x1d]
- ldr r1, [sp, #0x8]
- strb r1, [r0, #0x1c]
- ldrb r1, [r4, #0x11]
- strb r1, [r0, #0x1e]
- ldr r1, [sp, #0x8]
- cmp r1, #0x0
- bne _020170CA
- ldrb r1, [r4, #0x11]
- cmp r1, #0x0
- bne _020170CA
- mov r1, #0x20
- strb r1, [r0, #0x1f]
- b _020170D2
-_020170CA:
- ldr r0, [sp, #0x0]
- mov r1, #0x40
- add r0, r0, r5
- strb r1, [r0, #0x1f]
-_020170D2:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- ldr r3, [r4, #0x0]
- mov r2, #0x0
- bl FUN_020179E0
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- ldr r3, [r4, #0x4]
- mov r2, #0x3
- bl FUN_020179E0
- add sp, #0x18
- pop {r3-r7, pc}
- // clang-format on
-}
-#endif
-
-#ifdef NONMATCHING
-THUMB_FUNC void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3)
-{
- if (param2 == 0)
- {
- param0->unk08[param1].unk1e = param3;
- }
-
- switch (param1)
- {
- case 0:
- u16 bg0cnt = reg_G2_BG0CNT;
- if (param2 == 1)
- {
- bg0cnt = bg0cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- bg0cnt = bg0cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2_BG0CNT = (reg_G2_BG0CNT & 0x43) | ((u32)(bg0cnt << 0x10) >> 0x1e) << 0xe |
- param0->unk08[param1].unk1e << 7 | ((u32)(bg0cnt << 0x13) >> 0x1b) << 8 |
- ((u32)(bg0cnt << 0x1a) >> 0x1c) << 2 |
- ((u32)(bg0cnt << 0x12) >> 0x1f) << 0xd;
-
- break;
- case 1:
- u16 bg1cnt = reg_G2_BG1CNT;
- if (param2 == 1)
- {
- bg1cnt = bg1cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- bg1cnt = bg1cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2_BG1CNT = (reg_G2_BG1CNT & 0x43) | (((u32)bg1cnt << 0x10) >> 0x1e) << 0xe |
- param0->unk08[param1].unk1e << 7 | ((u32)(bg1cnt << 0x13) >> 0x1b) << 8 |
- ((u32)(bg1cnt << 0x1a) >> 0x1c) << 2 |
- ((u32)(bg1cnt << 0x12) >> 0x1f) << 0xd;
-
- break;
- case 2:
- switch (param0->unk08[param1].unk1c)
- {
- default:
- case 0:
- u16 bg2cnt_0 = reg_G2_BG2CNT;
- if (param2 == 1)
- {
- bg2cnt_0 = bg2cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- bg2cnt_0 = bg2cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | ((u32)(bg2cnt_0 << 0x10) >> 0x1e) << 0xe |
- param0->unk08[param1].unk1e << 7 |
- ((u32)(bg2cnt_0 << 0x13) >> 0x1b) << 8 |
- ((u32)(bg2cnt_0 << 0x1a) >> 0x1c) << 2;
-
- break;
- case 1:
- u16 bg2cnt_1 = reg_G2_BG2CNT;
- if (param2 == 1)
- {
- bg2cnt_1 = bg2cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- bg2cnt_1 = bg2cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | ((u32)(bg2cnt_1 << 0x10) >> 0x1e) << 0xe |
- ((u32)(bg2cnt_1 << 0x13) >> 0x1b) << 8 |
- ((u32)(bg2cnt_1 << 0x1a) >> 0x1c) << 2 |
- ((u32)(bg2cnt_1 << 0x12) >> 0x1f) << 0xd;
- break;
- case 2:
- u16 bg2cnt_2 = reg_G2_BG2CNT;
- if (param2 == 1)
- {
- bg2cnt_2 = bg2cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- bg2cnt_2 = bg2cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a);
- }
-
- reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | ((u32)(bg2cnt_2 << 0x10) >> 0x1e) << 0xe |
- ((u32)(bg2cnt_2 << 0x13) >> 0x1b) << 8 |
- ((u32)(bg2cnt_2 << 0x1a) >> 0x1d) << 2 |
- ((u32)(bg2cnt_2 << 0x12) >> 0x1f) << 0xd;
- break;
- }
- break;
- case 3:
- switch (param0->unk08[param1].unk1c)
- {
- default:
- case 0:
- u16 bg3cnt_0 = reg_G2_BG3CNT;
- if (param2 == 1)
- {
- bg3cnt_0 = bg3cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- bg3cnt_0 = bg3cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | ((u32)(bg3cnt_0 << 0x10) >> 0x1e) << 0xe |
- param0->unk08[param1].unk1e << 7 |
- ((u32)(bg3cnt_0 << 0x13) >> 0x1b) << 8 |
- ((u32)(bg3cnt_0 << 0x1a) >> 0x1c) << 2;
-
- break;
- case 1:
- u16 bg3cnt_1 = reg_G2_BG3CNT;
- if (param2 == 1)
- {
- bg3cnt_1 = bg3cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- bg3cnt_1 = bg3cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | ((u32)(bg3cnt_1 << 0x10) >> 0x1e) << 0xe |
- ((u32)(bg3cnt_1 << 0x13) >> 0x1b) << 8 |
- ((u32)(bg3cnt_1 << 0x1a) >> 0x1c) << 2 |
- ((u32)(bg3cnt_1 << 0x12) >> 0x1f) << 0xd;
- break;
- case 2:
- u16 bg3cnt_2 = reg_G2_BG3CNT;
- if (param2 == 1)
- {
- bg3cnt_2 = bg3cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- bg3cnt_2 = bg3cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a);
- }
-
- reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | ((u32)(bg3cnt_2 << 0x10) >> 0x1e) << 0xe |
- ((u32)(bg3cnt_2 << 0x13) >> 0x1b) << 8 |
- ((u32)(bg3cnt_2 << 0x1a) >> 0x1d) << 2 |
- ((u32)(bg3cnt_2 << 0x12) >> 0x1f) << 0xd;
- break;
- }
- break;
- case 4:
- u16 db_bg0cnt = reg_G2S_DB_BG0CNT;
- if (param2 == 1)
- {
- db_bg0cnt = db_bg0cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- db_bg0cnt = db_bg0cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2S_DB_BG0CNT =
- (reg_G2S_DB_BG0CNT & 0x43) | ((u32)(db_bg0cnt << 0x10) >> 0x1e) << 0xe |
- param0->unk08[param1].unk1e << 7 | ((u32)(db_bg0cnt << 0x13) >> 0x1b) << 8 |
- ((u32)(db_bg0cnt << 0x1a) >> 0x1c) << 2 | ((u32)(db_bg0cnt << 0x12) >> 0x1f) << 0xd;
-
- break;
- case 5:
- u16 db_bg1cnt = reg_G2S_DB_BG1CNT;
- if (param2 == 1)
- {
- db_bg1cnt = db_bg1cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- db_bg1cnt = db_bg1cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2S_DB_BG1CNT =
- (reg_G2S_DB_BG1CNT & 0x43) | ((u32)(db_bg1cnt << 0x10) >> 0x1e) << 0xe |
- param0->unk08[param1].unk1e << 7 | ((u32)(db_bg1cnt << 0x13) >> 0x1b) << 8 |
- ((u32)(db_bg1cnt << 0x1a) >> 0x1c) << 2 | ((u32)(db_bg1cnt << 0x12) >> 0x1f) << 0xd;
-
- break;
- case 6:
- switch (param0->unk08[param1].unk1c)
- {
- default:
- case 0:
- u16 db_bg2cnt_0 = reg_G2S_DB_BG2CNT;
- if (param2 == 1)
- {
- db_bg2cnt_0 = db_bg2cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- db_bg2cnt_0 = db_bg2cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2S_DB_BG2CNT =
- (reg_G2S_DB_BG2CNT & 0x43) | ((u32)(db_bg2cnt_0 << 0x10) >> 0x1e) << 0xe |
- param0->unk08[param1].unk1e << 7 | ((u32)(db_bg2cnt_0 << 0x13) >> 0x1b) << 8 |
- ((u32)(db_bg2cnt_0 << 0x1a) >> 0x1c) << 2;
-
- break;
- case 1:
- u16 db_bg2cnt_1 = reg_G2S_DB_BG2CNT;
- if (param2 == 1)
- {
- db_bg2cnt_1 = db_bg2cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- db_bg2cnt_1 = db_bg2cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) |
- ((u32)(db_bg2cnt_1 << 0x10) >> 0x1e) << 0xe |
- ((u32)(db_bg2cnt_1 << 0x13) >> 0x1b) << 8 |
- ((u32)(db_bg2cnt_1 << 0x1a) >> 0x1c) << 2 |
- ((u32)(db_bg2cnt_1 << 0x12) >> 0x1f) << 0xd;
- break;
- case 2:
- u16 db_bg2cnt_2 = reg_G2S_DB_BG2CNT;
- if (param2 == 1)
- {
- db_bg2cnt_2 = db_bg2cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- db_bg2cnt_2 = db_bg2cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a);
- }
-
- reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) |
- ((u32)(db_bg2cnt_2 << 0x10) >> 0x1e) << 0xe |
- ((u32)(db_bg2cnt_2 << 0x13) >> 0x1b) << 8 |
- ((u32)(db_bg2cnt_2 << 0x1a) >> 0x1d) << 2 |
- ((u32)(db_bg2cnt_2 << 0x12) >> 0x1f) << 0xd;
- break;
- }
- break;
- case 7:
- switch (param0->unk08[param1].unk1c)
- {
- default:
- case 0:
- u16 db_bg3cnt_0 = reg_G2S_DB_BG3CNT;
- if (param2 == 1)
- {
- db_bg3cnt_0 = db_bg3cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- db_bg3cnt_0 = db_bg3cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2S_DB_BG3CNT =
- (reg_G2S_DB_BG3CNT & 0x43) | ((u32)(db_bg3cnt_0 << 0x10) >> 0x1e) << 0xe |
- param0->unk08[param1].unk1e << 7 | ((u32)(db_bg3cnt_0 << 0x13) >> 0x1b) << 8 |
- ((u32)(db_bg3cnt_0 << 0x1a) >> 0x1c) << 2;
-
- break;
- case 1:
- u16 db_bg3cnt_1 = reg_G2S_DB_BG3CNT;
- if (param2 == 1)
- {
- db_bg3cnt_1 = db_bg3cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- db_bg3cnt_1 = db_bg3cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a);
- }
-
- reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) |
- ((u32)(db_bg3cnt_1 << 0x10) >> 0x1e) << 0xe |
- ((u32)(db_bg3cnt_1 << 0x13) >> 0x1b) << 8 |
- ((u32)(db_bg3cnt_1 << 0x1a) >> 0x1c) << 2 |
- ((u32)(db_bg3cnt_1 << 0x12) >> 0x1f) << 0xd;
- break;
- case 2:
- u16 db_bg3cnt_2 = reg_G2S_DB_BG3CNT;
- if (param2 == 1)
- {
- db_bg3cnt_2 = db_bg3cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13);
- }
- else if (param2 == 2)
- {
- db_bg3cnt_2 = db_bg3cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a);
- }
-
- reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) |
- ((u32)(db_bg3cnt_2 << 0x10) >> 0x1e) << 0xe |
- ((u32)(db_bg3cnt_2 << 0x13) >> 0x1b) << 8 |
- ((u32)(db_bg3cnt_2 << 0x1a) >> 0x1d) << 2 |
- ((u32)(db_bg3cnt_2 << 0x12) >> 0x1f) << 0xd;
- break;
- }
- break;
- }
-}
-#else
-THUMB_FUNC asm void FUN_020170F4(
- struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3)
-{
- // clang-format off
- push {r3-r7, lr}
- sub sp, #0x20
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r1, r2, #0x0
- add r0, r3, #0x0
- cmp r1, #0x0
- bne _0201710C
- mov r2, #0x2c
- mul r2, r4
- add r2, r5, r2
- strb r0, [r2, #0x1e]
-_0201710C:
- cmp r4, #0x7
- bls _02017112
- b _020177C4
-_02017112:
- add r2, r4, r4
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0201711E: //; jump table (using 16-bit offset)
- // .short _0201712E - _0201711E - 2; case 0
- // .short _0201719A - _0201711E - 2; case 1
- // .short _02017206 - _0201711E - 2; case 2
- // .short _0201733A - _0201711E - 2; case 3
- // .short _0201746E - _0201711E - 2; case 4
- // .short _020174F4 - _0201711E - 2; case 5
- // .short _02017560 - _0201711E - 2; case 6
- // .short _02017694 - _0201711E - 2; case 7
-
- lsl r6, r1, #0
- lsl r2, r7, #1
- lsl r6, r4, #3
- lsl r2, r3, #8
- lsl r6, r1, #13
- lsl r4, r2, #15
- lsl r0, r0, #17
- lsl r4, r6, #21
-_0201712E:
- ldr r2, =0x04000008
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x1e]
- bne _0201714A
- ldrh r3, [r2, #0x1e]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x1e]
- b _0201715C
-_0201714A:
- cmp r1, #0x2
- bne _0201715C
- ldrh r3, [r2, #0x1e]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x1e]
-_0201715C:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x1e]
- add sp, #0x20
- lsl r0, r3, #0x12
- lsr r6, r0, #0x1f
- lsl r0, r3, #0x1a
- lsr r2, r0, #0x1c
- lsl r0, r3, #0x13
- lsr r1, r0, #0x1b
- mov r0, #0x2c
- mul r0, r4
- add r0, r5, r0
- lsl r3, r3, #0x10
- lsr r5, r3, #0x1e
- lsl r3, r2, #0x2
- ldrb r0, [r0, #0x1e]
- lsl r2, r1, #0x8
- lsl r4, r6, #0xd
- lsl r1, r0, #0x7
- ldr r0, =0x04000008
- mov r6, #0x43
- ldrh r7, [r0, #0x0]
- lsl r5, r5, #0xe
- and r6, r7
- orr r5, r6
- orr r1, r5
- orr r1, r2
- orr r1, r3
- orr r1, r4
- strh r1, [r0, #0x0]
- pop {r3-r7, pc}
-_0201719A:
- ldr r2, =0x0400000A
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x1c]
- bne _020171B6
- ldrh r3, [r2, #0x1c]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x1c]
- b _020171C8
-_020171B6:
- cmp r1, #0x2
- bne _020171C8
- ldrh r3, [r2, #0x1c]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x1c]
-_020171C8:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x1c]
- add sp, #0x20
- lsl r0, r3, #0x12
- lsr r6, r0, #0x1f
- lsl r0, r3, #0x1a
- lsr r2, r0, #0x1c
- lsl r0, r3, #0x13
- lsr r1, r0, #0x1b
- mov r0, #0x2c
- mul r0, r4
- add r0, r5, r0
- lsl r3, r3, #0x10
- lsr r5, r3, #0x1e
- lsl r3, r2, #0x2
- ldrb r0, [r0, #0x1e]
- lsl r2, r1, #0x8
- lsl r4, r6, #0xd
- lsl r1, r0, #0x7
- ldr r0, =0x0400000A
- mov r6, #0x43
- ldrh r7, [r0, #0x0]
- lsl r5, r5, #0xe
- and r6, r7
- orr r5, r6
- orr r1, r5
- orr r1, r2
- orr r1, r3
- orr r1, r4
- strh r1, [r0, #0x0]
- pop {r3-r7, pc}
-_02017206:
- mov r2, #0x2c
- mul r2, r4
- add r3, r5, r2
- ldrb r3, [r3, #0x1c]
- cmp r3, #0x0
- beq _0201721A
- cmp r3, #0x1
- beq _0201727A
- cmp r3, #0x2
- beq _020172DA
-_0201721A:
- ldr r3, =0x0400000C
- cmp r1, #0x1
- ldrh r4, [r3, #0x0]
- add r3, sp, #0x0
- strh r4, [r3, #0x1a]
- bne _02017236
- ldrh r4, [r3, #0x1a]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r4
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r3, #0x1a]
- b _02017248
-_02017236:
- cmp r1, #0x2
- bne _02017248
- ldrh r4, [r3, #0x1a]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r4, r1
- lsr r0, r0, #0x1a
- orr r0, r4
- strh r0, [r3, #0x1a]
-_02017248:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x1a]
- add r2, r5, r2
- ldr r6, =0x0400000C
- lsl r0, r3, #0x1a
- ldrb r4, [r2, #0x1e]
- lsr r1, r0, #0x1c
- lsl r0, r3, #0x13
- lsl r2, r3, #0x10
- lsr r3, r2, #0x1e
- ldrh r5, [r6, #0x0]
- lsr r0, r0, #0x1b
- lsl r2, r1, #0x2
- lsl r1, r0, #0x8
- lsl r0, r4, #0x7
- mov r4, #0x43
- and r4, r5
- lsl r3, r3, #0xe
- orr r3, r4
- orr r0, r3
- orr r0, r1
- orr r0, r2
- add sp, #0x20
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_0201727A:
- ldr r2, =0x0400000C
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x18]
- bne _02017296
- ldrh r3, [r2, #0x18]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x18]
- b _020172A8
-_02017296:
- cmp r1, #0x2
- bne _020172A8
- ldrh r3, [r2, #0x18]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x18]
-_020172A8:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x18]
- ldr r6, =0x0400000C
- add sp, #0x20
- lsl r1, r3, #0x13
- lsl r0, r3, #0x1a
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsr r0, r0, #0x1c
- lsl r1, r0, #0x2
- lsl r0, r4, #0x8
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_020172DA:
- ldr r2, =0x0400000C
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x16]
- bne _020172F6
- ldrh r3, [r2, #0x16]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x16]
- b _02017308
-_020172F6:
- cmp r1, #0x2
- bne _02017308
- ldrh r3, [r2, #0x16]
- mov r1, #0x38
- lsl r0, r0, #0x1d
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x16]
-_02017308:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x16]
- ldr r6, =0x0400000C
- add sp, #0x20
- lsl r1, r3, #0x13
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r0, r3, #0x1a
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsl r1, r4, #0x8
- lsr r0, r0, #0x1d
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- lsl r0, r0, #0x2
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_0201733A:
- mov r2, #0x2c
- mul r2, r4
- add r3, r5, r2
- ldrb r3, [r3, #0x1c]
- cmp r3, #0x0
- beq _0201734E
- cmp r3, #0x1
- beq _020173AE
- cmp r3, #0x2
- beq _0201740E
-_0201734E:
- ldr r3, =0x0400000E
- cmp r1, #0x1
- ldrh r4, [r3, #0x0]
- add r3, sp, #0x0
- strh r4, [r3, #0x14]
- bne _0201736A
- ldrh r4, [r3, #0x14]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r4
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r3, #0x14]
- b _0201737C
-_0201736A:
- cmp r1, #0x2
- bne _0201737C
- ldrh r4, [r3, #0x14]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r4, r1
- lsr r0, r0, #0x1a
- orr r0, r4
- strh r0, [r3, #0x14]
-_0201737C:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x14]
- add r2, r5, r2
- ldr r6, =0x0400000E
- lsl r0, r3, #0x1a
- ldrb r4, [r2, #0x1e]
- lsr r1, r0, #0x1c
- lsl r0, r3, #0x13
- lsl r2, r3, #0x10
- lsr r3, r2, #0x1e
- ldrh r5, [r6, #0x0]
- lsr r0, r0, #0x1b
- lsl r2, r1, #0x2
- lsl r1, r0, #0x8
- lsl r0, r4, #0x7
- mov r4, #0x43
- and r4, r5
- lsl r3, r3, #0xe
- orr r3, r4
- orr r0, r3
- orr r0, r1
- orr r0, r2
- add sp, #0x20
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_020173AE:
- ldr r2, =0x0400000E
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x12]
- bne _020173CA
- ldrh r3, [r2, #0x12]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x12]
- b _020173DC
-_020173CA:
- cmp r1, #0x2
- bne _020173DC
- ldrh r3, [r2, #0x12]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x12]
-_020173DC:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x12]
- ldr r6, =0x0400000E
- add sp, #0x20
- lsl r1, r3, #0x13
- lsl r0, r3, #0x1a
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsr r0, r0, #0x1c
- lsl r1, r0, #0x2
- lsl r0, r4, #0x8
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_0201740E:
- ldr r2, =0x0400000E
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x10]
- bne _0201742A
- ldrh r3, [r2, #0x10]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x10]
- b _0201743C
-_0201742A:
- cmp r1, #0x2
- bne _0201743C
- ldrh r3, [r2, #0x10]
- mov r1, #0x38
- lsl r0, r0, #0x1d
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x10]
-_0201743C:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x10]
- ldr r6, =0x0400000E
- add sp, #0x20
- lsl r1, r3, #0x13
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r0, r3, #0x1a
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsl r1, r4, #0x8
- lsr r0, r0, #0x1d
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- lsl r0, r0, #0x2
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_0201746E:
- ldr r2, =0x04001008
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0xe]
- bne _020174A4
- ldrh r3, [r2, #0xe]
- ldr r1, =0xFFFFE0FF
- b _02017498
-_02017498:
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0xe]
- b _020174B6
-_020174A4:
- cmp r1, #0x2
- bne _020174B6
- ldrh r3, [r2, #0xe]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0xe]
-_020174B6:
- add r0, sp, #0x0
- ldrh r3, [r0, #0xe]
- add sp, #0x20
- lsl r0, r3, #0x12
- lsr r6, r0, #0x1f
- lsl r0, r3, #0x1a
- lsr r2, r0, #0x1c
- lsl r0, r3, #0x13
- lsr r1, r0, #0x1b
- mov r0, #0x2c
- mul r0, r4
- add r0, r5, r0
- lsl r3, r3, #0x10
- lsr r5, r3, #0x1e
- lsl r3, r2, #0x2
- ldrb r0, [r0, #0x1e]
- lsl r2, r1, #0x8
- lsl r4, r6, #0xd
- lsl r1, r0, #0x7
- ldr r0, =0x04001008
- mov r6, #0x43
- ldrh r7, [r0, #0x0]
- lsl r5, r5, #0xe
- and r6, r7
- orr r5, r6
- orr r1, r5
- orr r1, r2
- orr r1, r3
- orr r1, r4
- strh r1, [r0, #0x0]
- pop {r3-r7, pc}
-_020174F4:
- ldr r2, =0x0400100A
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0xc]
- bne _02017510
- ldrh r3, [r2, #0xc]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0xc]
- b _02017522
-_02017510:
- cmp r1, #0x2
- bne _02017522
- ldrh r3, [r2, #0xc]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0xc]
-_02017522:
- add r0, sp, #0x0
- ldrh r3, [r0, #0xc]
- add sp, #0x20
- lsl r0, r3, #0x12
- lsr r6, r0, #0x1f
- lsl r0, r3, #0x1a
- lsr r2, r0, #0x1c
- lsl r0, r3, #0x13
- lsr r1, r0, #0x1b
- mov r0, #0x2c
- mul r0, r4
- add r0, r5, r0
- lsl r3, r3, #0x10
- lsr r5, r3, #0x1e
- lsl r3, r2, #0x2
- ldrb r0, [r0, #0x1e]
- lsl r2, r1, #0x8
- lsl r4, r6, #0xd
- lsl r1, r0, #0x7
- ldr r0, =0x0400100A
- mov r6, #0x43
- ldrh r7, [r0, #0x0]
- lsl r5, r5, #0xe
- and r6, r7
- orr r5, r6
- orr r1, r5
- orr r1, r2
- orr r1, r3
- orr r1, r4
- strh r1, [r0, #0x0]
- pop {r3-r7, pc}
-_02017560:
- mov r2, #0x2c
- mul r2, r4
- add r3, r5, r2
- ldrb r3, [r3, #0x1c]
- cmp r3, #0x0
- beq _02017574
- cmp r3, #0x1
- beq _020175D4
- cmp r3, #0x2
- beq _02017634
-_02017574:
- ldr r3, =0x0400100C
- cmp r1, #0x1
- ldrh r4, [r3, #0x0]
- add r3, sp, #0x0
- strh r4, [r3, #0xa]
- bne _02017590
- ldrh r4, [r3, #0xa]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r4
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r3, #0xa]
- b _020175A2
-_02017590:
- cmp r1, #0x2
- bne _020175A2
- ldrh r4, [r3, #0xa]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r4, r1
- lsr r0, r0, #0x1a
- orr r0, r4
- strh r0, [r3, #0xa]
-_020175A2:
- add r0, sp, #0x0
- ldrh r3, [r0, #0xa]
- add r2, r5, r2
- ldr r6, =0x0400100C
- lsl r0, r3, #0x1a
- ldrb r4, [r2, #0x1e]
- lsr r1, r0, #0x1c
- lsl r0, r3, #0x13
- lsl r2, r3, #0x10
- lsr r3, r2, #0x1e
- ldrh r5, [r6, #0x0]
- lsr r0, r0, #0x1b
- lsl r2, r1, #0x2
- lsl r1, r0, #0x8
- lsl r0, r4, #0x7
- mov r4, #0x43
- and r4, r5
- lsl r3, r3, #0xe
- orr r3, r4
- orr r0, r3
- orr r0, r1
- orr r0, r2
- add sp, #0x20
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_020175D4:
- ldr r2, =0x0400100C
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x8]
- bne _020175F0
- ldrh r3, [r2, #0x8]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x8]
- b _02017602
-_020175F0:
- cmp r1, #0x2
- bne _02017602
- ldrh r3, [r2, #0x8]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x8]
-_02017602:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x8]
- ldr r6, =0x0400100C
- add sp, #0x20
- lsl r1, r3, #0x13
- lsl r0, r3, #0x1a
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsr r0, r0, #0x1c
- lsl r1, r0, #0x2
- lsl r0, r4, #0x8
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_02017634:
- ldr r2, =0x0400100C
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x6]
- bne _02017650
- ldrh r3, [r2, #0x6]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x6]
- b _02017662
-_02017650:
- cmp r1, #0x2
- bne _02017662
- ldrh r3, [r2, #0x6]
- mov r1, #0x38
- lsl r0, r0, #0x1d
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x6]
-_02017662:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x6]
- ldr r6, =0x0400100C
- add sp, #0x20
- lsl r1, r3, #0x13
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r0, r3, #0x1a
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsl r1, r4, #0x8
- lsr r0, r0, #0x1d
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- lsl r0, r0, #0x2
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_02017694:
- mov r2, #0x2c
- mul r2, r4
- add r3, r5, r2
- ldrb r3, [r3, #0x1c]
- cmp r3, #0x0
- beq _020176A8
- cmp r3, #0x1
- beq _02017708
- cmp r3, #0x2
- beq _02017768
-_020176A8:
- ldr r3, =0x0400100E
- cmp r1, #0x1
- ldrh r4, [r3, #0x0]
- add r3, sp, #0x0
- strh r4, [r3, #0x4]
- bne _020176C4
- ldrh r4, [r3, #0x4]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r4
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r3, #0x4]
- b _020176D6
-_020176C4:
- cmp r1, #0x2
- bne _020176D6
- ldrh r4, [r3, #0x4]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r4, r1
- lsr r0, r0, #0x1a
- orr r0, r4
- strh r0, [r3, #0x4]
-_020176D6:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x4]
- add r2, r5, r2
- ldr r6, =0x0400100E
- lsl r0, r3, #0x1a
- ldrb r4, [r2, #0x1e]
- lsr r1, r0, #0x1c
- lsl r0, r3, #0x13
- lsl r2, r3, #0x10
- lsr r3, r2, #0x1e
- ldrh r5, [r6, #0x0]
- lsr r0, r0, #0x1b
- lsl r2, r1, #0x2
- lsl r1, r0, #0x8
- lsl r0, r4, #0x7
- mov r4, #0x43
- and r4, r5
- lsl r3, r3, #0xe
- orr r3, r4
- orr r0, r3
- orr r0, r1
- orr r0, r2
- add sp, #0x20
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_02017708:
- ldr r2, =0x0400100E
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x2]
- bne _02017724
- ldrh r3, [r2, #0x2]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x2]
- b _02017736
-_02017724:
- cmp r1, #0x2
- bne _02017736
- ldrh r3, [r2, #0x2]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x2]
-_02017736:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x2]
- ldr r6, =0x0400100E
- add sp, #0x20
- lsl r1, r3, #0x13
- lsl r0, r3, #0x1a
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsr r0, r0, #0x1c
- lsl r1, r0, #0x2
- lsl r0, r4, #0x8
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_02017768:
- ldr r2, =0x0400100E
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x0]
- bne _02017784
- ldrh r3, [r2, #0x0]
- ldr r1, =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x0]
- b _02017796
-_02017784:
- cmp r1, #0x2
- bne _02017796
- ldrh r3, [r2, #0x0]
- mov r1, #0x38
- lsl r0, r0, #0x1d
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x0]
-_02017796:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x0]
- ldr r6, =0x0400100E
- lsl r1, r3, #0x13
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r0, r3, #0x1a
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsl r1, r4, #0x8
- lsr r0, r0, #0x1d
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- lsl r0, r0, #0x2
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
-_020177C4:
- add sp, #0x20
- pop {r3-r7, pc}
- // clang-format on
-}
-#endif
-
-THUMB_FUNC u8 FUN_020177DC(u8 param0, u32 param1)
-{
- switch (param1)
- {
- case 0:
-
- if (param0 == 1)
- {
- return 0;
- }
- else if (param0 == 2)
- {
- return 2;
- }
- else if (param0 == 3)
- {
- return 1;
- }
- else if (param0 == 4)
- {
- return 3;
- }
- break;
-
- case 1:
-
- if (param0 == 0)
- {
- return 0;
- }
- else if (param0 == 1)
- {
- return 1;
- }
- else if (param0 == 4)
- {
- return 2;
- }
- else if (param0 == 5)
- {
- return 3;
- }
- break;
-
- case 2:
-
- if (param0 == 0)
- {
- return 0;
- }
- else if (param0 == 1)
- {
- return 1;
- }
- else if (param0 == 4)
- {
- return 2;
- }
- else if (param0 == 5)
- {
- return 3;
- }
- break;
- }
-
- return 0;
-}
-
-THUMB_FUNC void FUN_02017850(u32 param0, u8 *param1, u8 *param2)
-{
- switch (param0)
- {
- case 0:
- *param1 = 0x10;
- *param2 = 0x10;
- break;
- case 1:
- *param1 = 0x20;
- *param2 = 0x20;
- break;
- case 2:
- *param1 = 0x20;
- *param2 = 0x40;
- break;
- case 3:
- *param1 = 0x40;
- *param2 = 0x20;
- break;
- case 4:
- *param1 = 0x40;
- *param2 = 0x40;
- break;
- case 5:
- *param1 = 0x80;
- *param2 = 0x80;
- break;
- }
-}
-
-THUMB_FUNC void FUN_020178A0(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
- if (param0->unk08[param1].unk08 != NULL)
- {
- FreeToHeap(param0->unk08[param1].unk08);
- param0->unk08[param1].unk08 = NULL;
- }
-}
-
-THUMB_FUNC void FUN_020178BC(u32 param0, u16 param1)
-{
- switch (param0)
- {
- case 0:
- reg_G2_BG0CNT = (u16)(reg_G2_BG0CNT & ~3 | param1);
- break;
- case 1:
- reg_G2_BG1CNT = (u16)(reg_G2_BG1CNT & ~3 | param1);
- break;
- case 2:
- reg_G2_BG2CNT = (u16)(reg_G2_BG2CNT & ~3 | param1);
- break;
- case 3:
- reg_G2_BG3CNT = (u16)(reg_G2_BG3CNT & ~3 | param1);
- break;
- case 4:
- reg_G2S_DB_BG0CNT = (u16)(reg_G2S_DB_BG0CNT & ~3 | param1);
- break;
- case 5:
- reg_G2S_DB_BG1CNT = (u16)(reg_G2S_DB_BG1CNT & ~3 | param1);
- break;
- case 6:
- reg_G2S_DB_BG2CNT = (u16)(reg_G2S_DB_BG2CNT & ~3 | param1);
- break;
- case 7:
- reg_G2S_DB_BG3CNT = (u16)(reg_G2S_DB_BG3CNT & ~3 | param1);
- break;
- }
-}
-
-THUMB_FUNC void FUN_0201797C(u32 param0, GX_LayerToggle toggle)
-{
- switch (param0)
- {
- case 0:
- GX_EngineAToggleLayers(1, toggle);
- break;
- case 1:
- GX_EngineAToggleLayers(2, toggle);
- break;
- case 2:
- GX_EngineAToggleLayers(4, toggle);
- break;
- case 3:
- GX_EngineAToggleLayers(8, toggle);
- break;
- case 4:
- GX_EngineBToggleLayers(1, toggle);
- break;
- case 5:
- GX_EngineBToggleLayers(2, toggle);
- break;
- case 6:
- GX_EngineBToggleLayers(4, toggle);
- break;
- case 7:
- GX_EngineBToggleLayers(8, toggle);
- break;
- }
-}
-
-THUMB_FUNC void FUN_020179E0(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 val)
-{
- FUN_02017B8C(&param0->unk08[param1], param2, val);
-
- u32 r1 = (u32)param0->unk08[param1].unk14;
- u32 r0 = (u32)param0->unk08[param1].unk18;
- switch (param1)
- {
- case 0:
-
- reg_G2_BG0OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
- break;
- case 1:
-
- reg_G2_BG1OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
- break;
-
- case 2:
- if (param0->unk08[2].unk1c == 0)
- {
- reg_G2_BG2OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
- }
- else
- {
- FUN_02017C6C(param0, 2);
- }
-
- break;
-
- case 3:
- if (param0->unk08[3].unk1c == 0)
- {
- reg_G2_BG3OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
- }
- else
- {
- FUN_02017C6C(param0, 3);
- }
-
- break;
-
- case 4:
-
- reg_G2S_DB_BG0OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
- break;
- case 5:
-
- reg_G2S_DB_BG1OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
- break;
-
- case 6:
- if (param0->unk08[6].unk1c == 0)
- {
- reg_G2S_DB_BG2OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
- }
- else
- {
- FUN_02017C6C(param0, 6);
- }
-
- break;
-
- case 7:
- if (param0->unk08[7].unk1c == 0)
- {
- reg_G2S_DB_BG3OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
- }
- else
- {
- FUN_02017C6C(param0, 7);
- }
-
- break;
- }
-}
-
-THUMB_FUNC fx32 FUN_02017B48(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
- return param0->unk08[param1].unk14;
-}
-
-THUMB_FUNC fx32 FUN_02017B54(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
- return param0->unk08[param1].unk18;
-}
-
-THUMB_FUNC void FUN_02017B60(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u32 param2,
- fx32 param3,
- struct Mtx22 *param4,
- fx32 param5,
- fx32 param6)
-{
- FUN_02017B8C(&param0->unk08[param1], param2, param3);
- FUN_02017BD0(param0, param1, param4, param5, param6);
-}
-
-THUMB_FUNC void FUN_02017B8C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val)
-{
- switch (param1)
- {
- case 0:
- param0->unk14 = val;
- break;
- case 1:
- param0->unk14 += val;
- break;
- case 2:
- param0->unk14 -= val;
- break;
- case 3:
- param0->unk18 = val;
- break;
- case 4:
- param0->unk18 += val;
- break;
- case 5:
- param0->unk18 -= val;
- break;
- }
-}
-
-THUMB_FUNC void FUN_02017BD0(
- struct UnkStruct_02016B94_2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4)
-{
- switch (param1)
- {
- case 2:
- G2x_SetBGyAffine_(reg_G2_BG2P,
- param2,
- param3,
- param4,
- param0->unk08[param1].unk14,
- param0->unk08[param1].unk18);
- break;
- case 3:
- G2x_SetBGyAffine_(reg_G2_BG3P,
- param2,
- param3,
- param4,
- param0->unk08[param1].unk14,
- param0->unk08[param1].unk18);
- break;
- case 6:
- G2x_SetBGyAffine_(reg_G2S_DB_BG2P,
- param2,
- param3,
- param4,
- param0->unk08[param1].unk14,
- param0->unk08[param1].unk18);
- break;
- case 7:
- G2x_SetBGyAffine_(reg_G2S_DB_BG3P,
- param2,
- param3,
- param4,
- param0->unk08[param1].unk14,
- param0->unk08[param1].unk18);
- break;
- }
-}
-
-THUMB_FUNC void FUN_02017C6C(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
- struct Mtx22 mtx;
- MTX22_2DAffine(&mtx, 0, 0x1000, 0x1000, 0);
- FUN_02017BD0(param0, param1, &mtx, 0, 0);
-}
-
-THUMB_FUNC void FUN_02017C98(const void *param0, void *param1, u32 param2)
-{
- if (param2 == 0)
- {
- MI_UncompressLZ8(param0, param1);
- return;
- }
-
- if (((u32)param0 % 4) == 0 && ((u32)param1 % 4) == 0 && ((u16)param2 % 4) == 0)
- {
- MI_CpuCopy32(param0, param1, param2);
- return;
- }
-
- MI_CpuCopy16(param0, param1, param2);
-}
-
-THUMB_FUNC void FUN_02017CD0(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
- FUN_02017CE8(param0,
- param1,
- param0->unk08[param1].unk08,
- param0->unk08[param1].unk0c,
- param0->unk08[param1].unk10);
-}
-
-THUMB_FUNC void FUN_02017CE8(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4)
-{
- u32 st0 = param3;
- if (param3 == 0)
- {
- void *st4 = param0->unk08[param1].unk08;
- if (st4 != 0)
- {
- FUN_02017C98(param2, st4, param3);
- FUN_02017D68(param1, st4, param0->unk08[param1].unk10 * 2, param0->unk08[param1].unk0c);
- return;
- }
-
- u32 r7 = param2[0] >> 8;
- void *ptr = AllocFromHeapAtEnd(param0->unk00, r7);
- FUN_02017C98(param2, ptr, st0);
- FUN_02017D68(param1, ptr, param4 * 2, r7);
- FreeToHeap(ptr);
- return;
- }
-
- FUN_02017D68(param1, param2, param4 * 2, param3);
-}
-
-THUMB_FUNC void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size)
-{
- DC_FlushRange(param1, size);
-
- switch (param0)
- {
- case 0:
- GX_LoadBG0Scr(param1, offset, size);
- break;
- case 1:
- GX_LoadBG1Scr(param1, offset, size);
- break;
- case 2:
- GX_LoadBG2Scr(param1, offset, size);
- break;
- case 3:
- GX_LoadBG3Scr(param1, offset, size);
- break;
- case 4:
- GXS_LoadBG0Scr(param1, offset, size);
- break;
- case 5:
- GXS_LoadBG1Scr(param1, offset, size);
- break;
- case 6:
- GXS_LoadBG2Scr(param1, offset, size);
- break;
- case 7:
- GXS_LoadBG3Scr(param1, offset, size);
- break;
- }
-}
-
-THUMB_FUNC void FUN_02017DFC(
- struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3)
-{
- FUN_02017C98(param2, param0->unk08[param1].unk08, param3);
-}
-
-THUMB_FUNC void FUN_02017E14(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4)
-{
- if (param0->unk08[param1].unk1e == 0)
- {
- FUN_02017E40(param0, param1, param2, param3, param4 << 5);
- return;
- }
- FUN_02017E40(param0, param1, param2, param3, param4 << 6);
-}
-
-THUMB_FUNC void FUN_02017E40(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4)
-{
- u32 st0 = param3;
- if (param3 == 0)
- {
-
- u32 r4 = param2[0] >> 8;
- void *ptr = AllocFromHeapAtEnd(param0->unk00, r4);
- FUN_02017C98(param2, ptr, st0);
- FUN_02017E84(param1, ptr, param4, r4);
- FreeToHeap(ptr);
- return;
- }
-
- FUN_02017E84(param1, param2, param4, param3);
-}
-
-THUMB_FUNC void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size)
-{
- DC_FlushRange(param1, size);
-
- switch (param0)
- {
- case 0:
- GX_LoadBG0Char(param1, offset, size);
- break;
- case 1:
- GX_LoadBG1Char(param1, offset, size);
- break;
- case 2:
- GX_LoadBG2Char(param1, offset, size);
- break;
- case 3:
- GX_LoadBG3Char(param1, offset, size);
- break;
- case 4:
- GXS_LoadBG0Char(param1, offset, size);
- break;
- case 5:
- GXS_LoadBG1Char(param1, offset, size);
- break;
- case 6:
- GXS_LoadBG2Char(param1, offset, size);
- break;
- case 7:
- GXS_LoadBG3Char(param1, offset, size);
- break;
- }
-}
-
-THUMB_FUNC void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id)
-{
- void *ptr = AllocFromHeapAtEnd(heap_id, size);
- memset(ptr, 0, size);
-
- FUN_02017E84(param0, ptr, offset, size);
- FreeToHeapExplicit(heap_id, ptr);
-}
-
-THUMB_FUNC void FUN_02017F48(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4)
-{
- void *st4;
- u32 st0 = param3 * param0->unk08[param1].unk1f;
- u32 r5 = param2;
- st4 = AllocFromHeapAtEnd(param0->unk00, st0);
-
- if (param0->unk08[param1].unk1f == 0x20)
- {
- r5 = (r5 << 0xc | r5 << 0x8 | r5 << 0x4 | r5);
- r5 |= r5 << 0x10;
- }
- else
- {
- r5 = r5 << 0x18 | r5 << 0x10 | r5 << 8 | r5;
- }
-
- MI_CpuFillFast(st4, r5, st0);
-
- FUN_02017E84((u8)param1, st4, param0->unk08[param1].unk1f * param4, st0);
- FreeToHeap(st4);
-}
-
-THUMB_FUNC void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size)
-{
- DC_FlushRange(param1, offset);
- if (param0 < 4)
- {
- GX_LoadBGPltt(param1, size, offset);
- return;
- }
-
- GXS_LoadBGPltt(param1, size, offset);
-}
-
-THUMB_FUNC void FUN_02017FE4(u32 param0, u32 param1)
-{
- FUN_02017FB4(param0, &param1, 2, 0);
-}
-
-THUMB_FUNC u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2)
-{
- switch (param2)
- {
- case 0:
- return (u16)(param0 + (param1 << 4));
- case 1:
- case 2:
- return (u16)(param0 + (param1 << 5));
- case 3:
- return (u16)((param0 & 0x1f) + ((param1 + (param0 & ~0x1f)) << 5));
- case 4:
- u16 res = (u16)(((u16)((param0 >> 5) + (param1 >> 5) * 2)) << 10);
- res += (param0 & 0x1f) + ((param1 & 0x1f) << 5);
- return res;
- case 5:
- return 0;
- }
-
- return param0;
-}
-
-THUMB_FUNC u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3)
-{
- u8 r2 = 0;
- u16 r3 = 0;
- s16 r4 = (s16)(param2 - 32);
- s16 r5 = (s16)(param3 - 32);
-
- if (((u32)param0 >> 5) != 0)
- {
- r2++;
- }
-
- if (((u32)param1 >> 5) != 0)
- {
- r2 += 2;
- }
-
- switch (r2)
- {
- case 0:
- if (r4 >= 0)
- {
- r3 += param0 + (param1 << 5);
- }
- else
- {
- r3 += param0 + param1 * param2;
- }
- break;
- case 1:
- if (r5 >= 0)
- {
- r3 += 0x400;
- }
- else
- {
- r3 += (param3 << 5);
- }
-
- r3 += (param0 & 0x1f) + param1 * r4;
- break;
- case 2:
- r3 += param2 << 5;
- if (r4 >= 0)
- {
- r3 += param0 + ((param1 & 0x1f) << 5);
- }
- else
- {
- r3 += param0 + (param1 & 0x1f) * param2;
- }
- break;
- case 3:
- r3 += (param2 + r5) << 5;
- r3 += (param0 & 0x1f) + (param1 & 0x1f) * r4;
- break;
- }
-
- return r3;
-}
-
-THUMB_FUNC void FUN_02018148(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- void *param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6)
-{
- FUN_02018170(param0, param1, param3, param4, param5, param6, param2, 0, 0, param5, param6);
-}
-
-THUMB_FUNC void FUN_02018170(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- void *param6,
- u8 param7,
- u8 param8,
- u8 param9,
- u8 param10)
-{
- if (param0->unk08[param1].unk1c != 1)
- {
- FUN_02018268(&param0->unk08[param1],
- param2,
- param3,
- param4,
- param5,
- (u16 *)param6,
- param7,
- param8,
- param9,
- param10,
- 0);
- }
- else
- {
- FUN_020183DC(&param0->unk08[param1],
- param2,
- param3,
- param4,
- param5,
- (u8 *)param6,
- param7,
- param8,
- param9,
- param10,
- 0);
- }
-}
-
-THUMB_FUNC void FUN_020181EC(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- void *param6,
- u8 param7,
- u8 param8,
- u8 param9,
- u8 param10)
-{
- if (param0->unk08[param1].unk1c != 1)
- {
- FUN_02018268(&param0->unk08[param1],
- param2,
- param3,
- param4,
- param5,
- (u16 *)param6,
- param7,
- param8,
- param9,
- param10,
- 1);
- }
- else
- {
- FUN_020183DC(&param0->unk08[param1],
- param2,
- param3,
- param4,
- param5,
- (u8 *)param6,
- param7,
- param8,
- param9,
- param10,
- 1);
- }
-}
-
-THUMB_FUNC void FUN_02018268(struct UnkStruct_02016B94_2_sub *param0,
- u8 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u16 *param5,
- u8 param6,
- u8 param7,
- u8 param8,
- u8 param9,
- u8 param10)
-{
- void *st2c = param0->unk08;
-
- if (st2c == 0)
- {
- return;
- }
-
- u8 st41;
- u8 st40;
- FUN_02017850(param0->unk1d, &st41, &st40);
-
- u8 i;
- u8 j;
- if (param10 == 0)
- {
- for (i = 0; i < param4; i++)
- {
-
- if (param2 + i >= st40)
- {
- break;
- }
-
- if (param7 + i >= param9)
- {
- break;
- }
-
- for (j = 0; j < param3; j++)
- {
-
- if (param1 + j >= st41)
- {
- break;
- }
-
- if (param6 + j >= param8)
- {
- break;
- }
-
- ((u16 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] =
- param5[param6 + param8 * (param7 + i) + j];
- }
- }
- }
- else
- {
- for (i = 0; i < param4; i++)
- {
-
- if (param2 + i >= st40)
- {
- break;
- }
-
- if (param7 + i >= param9)
- {
- break;
- }
-
- for (j = 0; j < param3; j++)
- {
-
- if (param1 + j >= st41)
- {
- break;
- }
-
- if (param6 + j >= param8)
- {
- break;
- }
-
- ((u16 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] =
- param5[FUN_02018068((u8)(param6 + j), (u8)(param7 + i), param8, param9)];
- }
- }
- }
-}
-
-THUMB_FUNC void FUN_020183DC(struct UnkStruct_02016B94_2_sub *param0,
- u8 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 *param5,
- u8 param6,
- u8 param7,
- u8 param8,
- u8 param9,
- u8 param10)
-{
- void *st2c = param0->unk08;
-
- if (st2c == 0)
- {
- return;
- }
-
- u8 st41;
- u8 st40;
- FUN_02017850(param0->unk1d, &st41, &st40);
-
- u8 i;
- u8 j;
- if (param10 == 0)
- {
- for (i = 0; i < param4; i++)
- {
-
- if (param2 + i >= st40)
- {
- break;
- }
-
- if (param7 + i >= param9)
- {
- break;
- }
-
- for (j = 0; j < param3; j++)
- {
-
- if (param1 + j >= st41)
- {
- break;
- }
-
- if (param6 + j >= param8)
- {
- break;
- }
-
- ((u8 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] =
- param5[param6 + param8 * (param7 + i) + j];
- }
- }
- }
- else
- {
- for (i = 0; i < param4; i++)
- {
-
- if (param2 + i >= st40)
- {
- break;
- }
-
- if (param7 + i >= param9)
- {
- break;
- }
-
- for (j = 0; j < param3; j++)
- {
-
- if (param1 + j >= st41)
- {
- break;
- }
-
- if (param6 + j >= param8)
- {
- break;
- }
-
- ((u8 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] =
- param5[FUN_02018068((u8)(param6 + j), (u8)(param7 + i), param8, param9)];
- }
- }
- }
-}
-
-THUMB_FUNC void FUN_02018540(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u16 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6,
- u8 param7)
-{
- if (param0->unk08[param1].unk1c != 1)
- {
-
- FUN_02018590(&param0->unk08[param1], param2, param3, param4, param5, param6, param7);
- }
- else
- {
- FUN_02018640(&param0->unk08[param1], (u8)param2, param3, param4, param5, param6);
- }
-}
-
-THUMB_FUNC void FUN_02018590(struct UnkStruct_02016B94_2_sub *param0,
- u16 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6)
-{
- void *r4 = param0->unk08;
-
- if (r4 != 0)
- {
-
- u8 st19;
- u8 st18;
- FUN_02017850(param0->unk1d, &st19, &st18);
-
- u8 i;
- u8 j;
- for (i = param3; i < param3 + param5; i++)
- {
- if (i >= st18)
- {
- break;
- }
-
- for (j = param2; j < param2 + param4; j++)
- {
- if (j >= st19)
- {
- break;
- }
-
- u16 idx = FUN_02017FFC(j, i, param0->unk1d);
-
- if (param6 == 0x11)
- {
- ((u16 *)r4)[idx] = param1;
- }
- else if (param6 == 0x10)
- {
- ((u16 *)r4)[idx] = (u16)((((u16 *)r4)[idx] & 0xF000) + param1);
- }
- else
- {
- ((u16 *)r4)[idx] = (u16)((param6 << 0xc) + param1);
- }
- }
- }
- }
-}
-
-THUMB_FUNC void FUN_02018640(
- struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5)
-{
- void *r4 = param0->unk08;
-
- if (r4 != 0)
- {
-
- u8 st19;
- u8 st18;
- FUN_02017850(param0->unk1d, &st19, &st18);
-
- u8 i;
- u8 j;
- for (i = param3; i < param3 + param5; i++)
- {
- if (i >= st18)
- {
- break;
- }
-
- for (j = param2; j < param2 + param4; j++)
- {
- if (j >= st19)
- {
- break;
- }
-
- ((u8 *)r4)[FUN_02017FFC(j, i, param0->unk1d)] = param1;
- }
- }
- }
-}
-
-THUMB_FUNC void FUN_020186B4(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6)
-{
- void *r4 = param0->unk08[param1].unk08;
-
- if (r4 != NULL)
- {
- u8 st11;
- u8 st10;
- FUN_02017850(param0->unk08[param1].unk1d, &st11, &st10);
-
- u8 i;
- u8 j;
- for (i = param3; i < param3 + param5; i++)
- {
- if (i >= st10)
- {
- break;
- }
-
- for (j = param2; j < param2 + param4; j++)
- {
- if (j >= st11)
- {
- break;
- }
-
- u16 idx = FUN_02017FFC(j, i, param0->unk08[param1].unk1d);
- ((u16 *)r4)[idx] = (u16)((((u16 *)r4)[idx] & 0xfff) | (param6 << 0xc));
- }
- }
- }
-}
-
-THUMB_FUNC void FUN_02018744(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
- if (param0->unk08[param1].unk08 != NULL)
- {
- MI_CpuClear16(param0->unk08[param1].unk08, param0->unk08[param1].unk0c);
- FUN_02017CD0(param0, param1);
- }
-}
-
-THUMB_FUNC void FUN_02018768(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2)
-{
- if (param0->unk08[param1].unk08 != NULL)
- {
- MI_CpuFill16(param0->unk08[param1].unk08, param2, param0->unk08[param1].unk0c);
- FUN_02017CD0(param0, param1);
- }
-}
-
-THUMB_FUNC void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2)
-{
- if (param0->unk08[param1].unk08 != NULL)
- {
- MI_CpuFill16(param0->unk08[param1].unk08, param2, param0->unk08[param1].unk0c);
- FUN_0201AC68(param0, param1);
- }
-}
-
-THUMB_FUNC void *FUN_020187B0(u32 param0)
-{
- switch (param0)
- {
- case 0:
- return G2_GetBG0CharPtr();
- case 1:
- return G2_GetBG1CharPtr();
- case 2:
- return G2_GetBG2CharPtr();
- case 3:
- return G2_GetBG3CharPtr();
- case 4:
- return G2S_GetBG0CharPtr();
- case 5:
- return G2S_GetBG1CharPtr();
- case 6:
- return G2S_GetBG2CharPtr();
- case 7:
- return G2S_GetBG3CharPtr();
- }
-
- return NULL;
-}
-
-THUMB_FUNC void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3)
-{
- param3 <<= 4;
- for (int i = 0; i < param1; i++)
- {
- param2[i][0] = (u8)(param0[i] & 0xf);
- if (param2[i][0] != 0)
- {
- param2[i][0] += param3;
- }
-
- param2[i][1] = (u8)((param0[i] >> 4) & 0xf);
- if (param2[i][1] != 0)
- {
- param2[i][1] += param3;
- }
- }
-}
-
-THUMB_FUNC u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2]
-{
- u8(*ptr)[2] = (u8(*)[2])AllocFromHeap(heap_id, param1 * 2);
-
- FUN_02018808(param0, param1, ptr, param2);
-
- return ptr;
-}
-
-THUMB_FUNC void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u8 param1)
-{
- return param0->unk08[param1].unk08;
-}
-
-THUMB_FUNC u16 FUN_02018878(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
- return param0->unk08[param1].unk20;
-}
-
-#ifdef NONMATCHING
-THUMB_FUNC u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
-
- // the compiler keeps optimizing the stack away :(
- u16 st0[16];
- switch (param1)
- {
- case 0:
- st0[15] = reg_G2_BG0CNT;
- return (u32)(st0[15] << 0x1e) >> 0x1e;
- case 1:
- st0[14] = reg_G2_BG1CNT;
- return (u32)(st0[14] << 0x1e) >> 0x1e;
-
- case 2:
- switch (param0->unk08[param1].unk1c)
- {
- default:
- case 0:
- st0[13] = reg_G2_BG2CNT;
- return (u32)(st0[13] << 0x1e) >> 0x1e;
- case 1:
- st0[12] = reg_G2_BG2CNT;
- return (u32)(st0[12] << 0x1e) >> 0x1e;
- case 2:
- st0[11] = reg_G2_BG2CNT;
- return (u32)(st0[11] << 0x1e) >> 0x1e;
- }
- break;
- case 3:
- switch (param0->unk08[param1].unk1c)
- {
- default:
- case 0:
- st0[10] = reg_G2_BG3CNT;
- return (u32)(st0[10] << 0x1e) >> 0x1e;
- case 1:
- st0[9] = reg_G2_BG3CNT;
- return (u32)(st0[9] << 0x1e) >> 0x1e;
- case 2:
- st0[8] = reg_G2_BG3CNT;
- return (u32)(st0[8] << 0x1e) >> 0x1e;
- }
- break;
-
- case 4:
- st0[7] = reg_G2S_DB_BG0CNT;
- return (u32)(st0[7] << 0x1e) >> 0x1e;
- case 5:
- st0[6] = reg_G2S_DB_BG1CNT;
- return (u32)(st0[6] << 0x1e) >> 0x1e;
-
- case 6:
- switch (param0->unk08[param1].unk1c)
- {
- default:
- case 0:
- st0[5] = reg_G2S_DB_BG2CNT;
- return (u32)(st0[5] << 0x1e) >> 0x1e;
- case 1:
- st0[4] = reg_G2S_DB_BG2CNT;
- return (u32)(st0[4] << 0x1e) >> 0x1e;
- case 2:
- st0[3] = reg_G2S_DB_BG2CNT;
- return (u32)(st0[3] << 0x1e) >> 0x1e;
- }
- break;
- case 7:
- switch (param0->unk08[param1].unk1c)
- {
- default:
- case 0:
- st0[2] = reg_G2S_DB_BG3CNT;
- return (u32)(st0[2] << 0x1e) >> 0x1e;
- case 1:
- st0[1] = reg_G2S_DB_BG3CNT;
- return (u32)(st0[1] << 0x1e) >> 0x1e;
- case 2:
- st0[0] = reg_G2S_DB_BG3CNT;
- return (u32)(st0[0] << 0x1e) >> 0x1e;
- }
- break;
- }
-
- return 0;
-}
-#else
-THUMB_FUNC asm u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
- // clang-format off
- sub sp, #0x20
- cmp r1, #0x7
- bls _0201888C
- b _02018A38
-_0201888C:
- add r2, r1, r1
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02018898:
- // jump table (using 16-bit offset)
- // .short _020188A8 - _02018898 - 2; case 0
- // .short _020188BC - _02018898 - 2; case 1
- // .short _020188D0 - _02018898 - 2; case 2
- // .short _02018920 - _02018898 - 2; case 3
- // .short _02018970 - _02018898 - 2; case 4
- // .short _02018984 - _02018898 - 2; case 5
- // .short _02018998 - _02018898 - 2; case 6
- // .short _020189E8 - _02018898 - 2; case 7
-
- lsl r6, r1, #0
- lsl r2, r4, #0
- lsl r6, r6, #0
- lsl r6, r0, #2
- lsl r6, r2, #3
- lsl r2, r5, #3
- lsl r6, r7, #3
- lsl r6, r1, #5
-_020188A8:
- ldr r0, =0x04000008
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x1e]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020188BC:
- ldr r0, =0x0400000A
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x1c]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020188D0:
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x0
- beq _020188E4
- cmp r0, #0x1
- beq _020188F8
- cmp r0, #0x2
- beq _0201890C
-_020188E4:
- ldr r0, =0x0400000C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x1a]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020188F8:
- ldr r0, =0x0400000C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x18]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_0201890C:
- ldr r0, =0x0400000C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x16]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018920:
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x0
- beq _02018934
- cmp r0, #0x1
- beq _02018948
- cmp r0, #0x2
- beq _0201895C
-_02018934:
- ldr r0, =0x0400000E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x14]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018948:
- ldr r0, =0x0400000E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x12]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_0201895C:
- ldr r0, =0x0400000E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x10]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018970:
- ldr r0, =0x04001008
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0xe]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018984:
- ldr r0, =0x0400100A
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0xc]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018998:
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x0
- beq _020189AC
- cmp r0, #0x1
- beq _020189C0
- cmp r0, #0x2
- beq _020189D4
-_020189AC:
- ldr r0, =0x0400100C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0xa]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020189C0:
- ldr r0, =0x0400100C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x8]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020189D4:
- ldr r0, =0x0400100C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x6]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020189E8:
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x0
- beq _020189FC
- cmp r0, #0x1
- beq _02018A10
- cmp r0, #0x2
- beq _02018A24
-_020189FC:
- ldr r0, =0x0400100E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x4]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018A10:
- ldr r0, =0x0400100E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x2]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018A24:
- ldr r0, =0x0400100E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x0]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018A38:
- mov r0, #0x0
- add sp, #0x20
- bx lr
- // clang-format on
-}
-#endif
-
-#ifdef NONMATCHING
-THUMB_FUNC void BlitBitmapRect4Bit(struct UnkStruct_02016B94_3 *param0,
- struct UnkStruct_02016B94_3 *param1,
- u16 param2,
- u16 param3,
- u16 param4,
- u16 param5,
- u16 param6,
- u16 param7,
- u16 param8)
-{
-
- u8 *unk1;
- u8 *unk2;
-
- int st50;
- if (param1->unk04 - param4 < param6)
- {
- st50 = param2 + param1->unk04 - param4;
- }
- else
- {
- st50 = param2 + param6;
- }
-
- int st4c;
- if (param1->unk06 - param5 < param7)
- {
- st4c = param3 + param1->unk06 - param5;
- }
- else
- {
- st4c = param3 + param7;
- }
-
- int st48 = (param0->unk04 + (param0->unk04 & 7)) >> 3;
-
- int st44 = (param1->unk04 + (param1->unk04 & 7)) >> 3;
-
- u32 i, i1;
- u32 j, j1;
- if (param8 == 0xFFFF)
- {
- i1 = param5;
- for (i = param3; i < st4c; i++)
- {
- j1 = param4;
- for (j = param2; j < st50; j++)
- {
-
- unk1 =
- (u32)(param1->unk00) + (j1 >> 1) &
- 0x3 + ((j1 << 2) & 0x3fe0) + st44 * ((i1 << 2) & 0x3fe0) + ((i1 << 2) & 0x1c);
- unk2 = (u32)(param0->unk00) + (j >> 1) &
- 0x3 + ((j << 2) & 0x3fe0) + st48 * ((i << 2) & 0x3FE0) + ((i << 2) & 0x1c);
-
- u8 r1 = *unk2;
-
- u32 r2 = (j1 << 0x1f) >> 0x1d;
- u32 r7 = ((r1 >> ((j << 0x1f) >> 0x1d)) & 0xf) << r2;
-
- *unk1 = r7 | (*unk1 & (0xf0 >> r2));
-
- j1++;
- }
- i1++;
- }
- }
- else
- {
-
- i1 = param5;
- for (i = param3; i < st4c; i++)
- {
- j1 = param4;
- for (j = param2; j < st50; j++)
- {
-
- unk1 = (u32)param1->unk00 + ((j1 >> 1) & 3) + ((j1 << 2) & 0x3fe0) +
- st44 * ((i1 << 2) & 0x3fe0) + (i1 << 2) &
- 0x1c;
- unk2 = (u32)param0->unk00 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) +
- st48 * ((i << 2) & 0x3fe0) + ((i << 2) & 0x1c);
- u8 r0 = ((*unk2) >> ((j << 0x1f) >> 0x1d)) & 0xf;
-
- if (r0 != param8)
- {
- u32 r7 = ((j1 << 0x1f) >> 0x1d);
- *unk1 = (r0 << r7) | (*unk1 & (0xf0 >> r7));
- }
-
- j1++;
- }
- i1++;
- }
- }
-}
-#else
-THUMB_FUNC asm void BlitBitmapRect4Bit(struct UnkStruct_02016B94_3 *param0,
- struct UnkStruct_02016B94_3 *param1,
- u16 param2,
- u16 param3,
- u16 param4,
- u16 param5,
- u16 param6,
- u16 param7,
- u16 param8)
-{
- // clang-format off
- push {r3-r7, lr}
- sub sp, #0x68
- str r2, [sp, #0x8]
- str r3, [sp, #0xc]
- add r2, sp, #0x70
- str r0, [sp, #0x0]
- ldrh r0, [r2, #0x10]
- str r1, [sp, #0x4]
- ldrh r2, [r2, #0x18]
- str r0, [sp, #0x10]
- add r0, r1, #0x0
- ldrh r1, [r0, #0x4]
- ldr r0, [sp, #0x10]
- sub r3, r1, r0
- cmp r3, r2
- bge _02018A88
- ldr r0, [sp, #0x8]
- add r0, r0, r3
- str r0, [sp, #0x50]
- b _02018A8E
-_02018A88:
- ldr r0, [sp, #0x8]
- add r0, r2, r0
- str r0, [sp, #0x50]
-_02018A8E:
- ldr r2, [sp, #0x4]
- add r3, sp, #0x70
- ldrh r0, [r3, #0x14]
- ldrh r2, [r2, #0x6]
- ldrh r3, [r3, #0x1c]
- sub r4, r2, r0
- cmp r4, r3
- bge _02018AA6
- ldr r2, [sp, #0xc]
- add r2, r2, r4
- str r2, [sp, #0x4c]
- b _02018AAC
-_02018AA6:
- ldr r2, [sp, #0xc]
- add r2, r3, r2
- str r2, [sp, #0x4c]
-_02018AAC:
- ldr r2, [sp, #0x0]
- mov r3, #0x7
- ldrh r4, [r2, #0x4]
- add r2, r4, #0x0
- and r2, r3
- add r2, r4, r2
- asr r2, r2, #0x3
- str r2, [sp, #0x48]
- add r2, r1, #0x0
- and r2, r3
- add r1, r1, r2
- asr r1, r1, #0x3
- str r1, [sp, #0x44]
- add r1, sp, #0x70
- ldrh r1, [r1, #0x20]
- ldr r2, =0x0000FFFF
- str r1, [sp, #0x38]
- cmp r1, r2
- bne _02018BB4
- ldr r2, [sp, #0xc]
- ldr r1, [sp, #0x4c]
- cmp r2, r1
- bge _02018ADE
- cmp r2, r1
- blt _02018AE0
-_02018ADE:
- b _02018C92
-_02018AE0:
- add r1, r2, #0x0
- lsl r1, r1, #0x2
- lsl r0, r0, #0x2
- str r1, [sp, #0x28]
- str r0, [sp, #0x24]
-_02018AEA:
- ldr r3, [sp, #0x8]
- ldr r0, [sp, #0x50]
- add r1, r3, #0x0
- ldr r4, [sp, #0x10]
- cmp r1, r0
- bge _02018B96
- cmp r1, r0
- bge _02018B96
- add r0, r3, #0x0
- lsl r5, r0, #0x2
- add r0, r4, #0x0
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r1, [sp, #0x28]
- ldr r2, [sp, #0x48]
- and r1, r0
- mul r2, r1
- str r2, [sp, #0x20]
- ldr r2, [sp, #0x28]
- mov r1, #0x1c
- and r2, r1
- str r2, [sp, #0x1c]
- ldr r2, [sp, #0x24]
- and r0, r2
- ldr r2, [sp, #0x44]
- mul r2, r0
- ldr r0, [sp, #0x24]
- str r2, [sp, #0x18]
- and r0, r1
- str r0, [sp, #0x14]
-_02018B26:
- ldr r0, [sp, #0x4]
- asr r2, r4, #0x1
- mov r1, #0x3
- ldr r0, [r0, #0x0]
- and r1, r2
- add r1, r0, r1
- ldr r0, =0x00003FE0
- and r0, r6
- add r1, r1, r0
- ldr r0, [sp, #0x18]
- add r6, r6, #0x4
- add r0, r1, r0
- str r0, [sp, #0x64]
- lsl r0, r4, #0x1f
- lsr r2, r0, #0x1d
- ldr r0, [sp, #0x0]
- asr r1, r3, #0x1
- ldr r7, [r0, #0x0]
- mov r0, #0x3
- and r0, r1
- ldr r1, =0x00003FE0
- add r4, r4, #0x1
- and r1, r5
- str r1, [sp, #0x54]
- add r1, r7, r0
- ldr r0, [sp, #0x54]
- add r5, r5, #0x4
- add r1, r0, r1
- ldr r0, [sp, #0x20]
- add r1, r0, r1
- ldr r0, [sp, #0x1c]
- ldrb r1, [r0, r1]
- lsl r0, r3, #0x1f
- lsr r0, r0, #0x1d
- asr r1, r0
- mov r0, #0xf
- and r0, r1
- add r7, r0, #0x0
- ldr r1, [sp, #0x14]
- ldr r0, [sp, #0x64]
- lsl r7, r2
- ldrb r0, [r0, r1]
- add r3, r3, #0x1
- str r0, [sp, #0x58]
- mov r0, #0xf0
- asr r0, r2
- ldr r1, [sp, #0x58]
- add r2, r7, #0x0
- and r0, r1
- orr r2, r0
- ldr r1, [sp, #0x14]
- ldr r0, [sp, #0x64]
- strb r2, [r0, r1]
- ldr r0, [sp, #0x50]
- cmp r3, r0
- blt _02018B26
-_02018B96:
- ldr r0, [sp, #0x28]
- add r0, r0, #0x4
- str r0, [sp, #0x28]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0xc]
- add r0, r0, #0x4
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x4c]
- cmp r1, r0
- blt _02018AEA
- add sp, #0x68
- pop {r3-r7, pc}
-_02018BB4:
- ldr r2, [sp, #0xc]
- ldr r1, [sp, #0x4c]
- cmp r2, r1
- bge _02018C92
- cmp r2, r1
- bge _02018C92
- add r1, r2, #0x0
- lsl r1, r1, #0x2
- lsl r0, r0, #0x2
- str r1, [sp, #0x40]
- str r0, [sp, #0x3c]
-_02018BCA:
- ldr r3, [sp, #0x8]
- ldr r0, [sp, #0x50]
- add r1, r3, #0x0
- ldr r4, [sp, #0x10]
- cmp r1, r0
- bge _02018C78
- cmp r1, r0
- bge _02018C78
- add r0, r3, #0x0
- lsl r1, r0, #0x2
- add r0, r4, #0x0
- lsl r2, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x40]
- ldr r6, [sp, #0x48]
- and r5, r0
- mul r6, r5
- str r6, [sp, #0x34]
- ldr r6, [sp, #0x40]
- mov r5, #0x1c
- and r6, r5
- str r6, [sp, #0x30]
- ldr r6, [sp, #0x3c]
- and r0, r6
- ldr r6, [sp, #0x44]
- mul r6, r0
- ldr r0, [sp, #0x3c]
- str r6, [sp, #0x2c]
- and r0, r5
- str r0, [sp, #0x60]
-_02018C06:
- ldr r0, [sp, #0x4]
- asr r6, r4, #0x1
- mov r5, #0x3
- and r5, r6
- ldr r0, [r0, #0x0]
- asr r6, r3, #0x1
- add r5, r0, r5
- ldr r0, =0x00003FE0
- and r0, r2
- add r5, r5, r0
- ldr r0, [sp, #0x2c]
- add r5, r5, r0
- ldr r0, [sp, #0x0]
- ldr r7, [r0, #0x0]
- mov r0, #0x3
- and r0, r6
- ldr r6, =0x00003FE0
- and r6, r1
- str r6, [sp, #0x5c]
- add r6, r7, r0
- ldr r0, [sp, #0x5c]
- add r6, r0, r6
- ldr r0, [sp, #0x34]
- add r6, r0, r6
- ldr r0, [sp, #0x30]
- ldrb r6, [r0, r6]
- lsl r0, r3, #0x1f
- lsr r0, r0, #0x1d
- asr r6, r0
- mov r0, #0xf
- and r0, r6
- ldr r6, [sp, #0x38]
- cmp r0, r6
- beq _02018C6A
- lsl r6, r4, #0x1f
- lsr r7, r6, #0x1d
- lsl r0, r7
- mov lr, r0
- ldr r0, [sp, #0x60]
- ldrb r0, [r5, r0]
- mov r12, r0
- mov r0, #0xf0
- add r6, r0, #0x0
- asr r6, r7
- mov r0, r12
- and r0, r6
- mov r6, lr
- orr r6, r0
- ldr r0, [sp, #0x60]
- strb r6, [r5, r0]
-_02018C6A:
- ldr r0, [sp, #0x50]
- add r3, r3, #0x1
- add r1, r1, #0x4
- add r2, r2, #0x4
- add r4, r4, #0x1
- cmp r3, r0
- blt _02018C06
-_02018C78:
- ldr r0, [sp, #0x40]
- add r0, r0, #0x4
- str r0, [sp, #0x40]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x3c]
- ldr r1, [sp, #0xc]
- add r0, r0, #0x4
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x4c]
- cmp r1, r0
- blt _02018BCA
-_02018C92:
- add sp, #0x68
- pop {r3-r7, pc}
- // clang-format on
-}
-#endif
-
-#ifdef NONMATCHING
-THUMB_FUNC void BlitBitmapRect8Bit(struct UnkStruct_02016B94_3 *param0,
- struct UnkStruct_02016B94_3 *param1,
- u16 param2,
- u16 param3,
- u16 param4,
- u16 param5,
- u16 param6,
- u16 param7,
- u16 param8)
-{
- // horrible for loops like the one above
-}
-#else
-THUMB_FUNC asm void BlitBitmapRect8Bit(struct UnkStruct_02016B94_3 *param0,
- struct UnkStruct_02016B94_3 *param1,
- u16 param2,
- u16 param3,
- u16 param4,
- u16 param5,
- u16 param6,
- u16 param7,
- u16 param8)
-{
- // clang-format off
- push {r3-r7, lr}
- sub sp, #0x50
- str r2, [sp, #0x8]
- str r3, [sp, #0xc]
- add r2, sp, #0x58
- str r0, [sp, #0x0]
- ldrh r0, [r2, #0x10]
- str r1, [sp, #0x4]
- ldrh r2, [r2, #0x18]
- str r0, [sp, #0x10]
- add r0, r1, #0x0
- ldrh r1, [r0, #0x4]
- ldr r0, [sp, #0x10]
- sub r3, r1, r0
- cmp r3, r2
- bge _02018CC6
- ldr r0, [sp, #0x8]
- add r0, r0, r3
- b _02018CCA
-_02018CC6:
- ldr r0, [sp, #0x8]
- add r0, r2, r0
-_02018CCA:
- ldr r2, [sp, #0x4]
- add r3, sp, #0x58
- mov r12, r0
- ldrh r0, [r3, #0x14]
- ldrh r2, [r2, #0x6]
- ldrh r3, [r3, #0x1c]
- sub r4, r2, r0
- cmp r4, r3
- bge _02018CE2
- ldr r2, [sp, #0xc]
- add r2, r2, r4
- b _02018CE6
-_02018CE2:
- ldr r2, [sp, #0xc]
- add r2, r3, r2
-_02018CE6:
- mov lr, r2
- ldr r2, [sp, #0x0]
- mov r3, #0x7
- ldrh r4, [r2, #0x4]
- add r2, r4, #0x0
- and r2, r3
- add r2, r4, r2
- asr r2, r2, #0x3
- str r2, [sp, #0x4c]
- add r2, r1, #0x0
- and r2, r3
- add r1, r1, r2
- asr r1, r1, #0x3
- str r1, [sp, #0x48]
- add r1, sp, #0x58
- ldrh r1, [r1, #0x20]
- ldr r2, =0x0000FFFF
- str r1, [sp, #0x3c]
- cmp r1, r2
- bne _02018DC6
- ldr r2, [sp, #0xc]
- mov r1, lr
- cmp r2, r1
- bge _02018D1C
- mov r1, lr
- cmp r2, r1
- blt _02018D1E
-_02018D1C:
- b _02018E7C
-_02018D1E:
- add r1, r2, #0x0
- lsl r1, r1, #0x3
- lsl r0, r0, #0x3
- str r1, [sp, #0x28]
- str r0, [sp, #0x24]
-_02018D28:
- ldr r1, [sp, #0x8]
- mov r0, r12
- add r2, r1, #0x0
- ldr r7, [sp, #0x10]
- cmp r2, r0
- bge _02018DA8
- mov r0, r12
- cmp r2, r0
- bge _02018DA8
- add r0, r1, #0x0
- lsl r2, r0, #0x3
- add r0, r7, #0x0
- lsl r3, r0, #0x3
- ldr r6, =0x00007FC0
- ldr r0, [sp, #0x28]
- ldr r4, [sp, #0x4c]
- and r0, r6
- mul r4, r0
- str r4, [sp, #0x20]
- ldr r0, [sp, #0x28]
- mov r5, #0x38
- and r0, r5
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x24]
- ldr r4, [sp, #0x48]
- and r0, r6
- mul r4, r0
- ldr r0, [sp, #0x24]
- str r4, [sp, #0x18]
- and r0, r5
- str r0, [sp, #0x14]
-_02018D66:
- ldr r0, [sp, #0x0]
- add r5, r1, #0x0
- mov r4, #0x7
- and r5, r4
- ldr r0, [r0, #0x0]
- ldr r4, =0x00007FC0
- add r0, r0, r5
- and r4, r2
- add r4, r4, r0
- ldr r0, [sp, #0x20]
- add r5, r7, #0x0
- add r4, r0, r4
- ldr r0, [sp, #0x1c]
- add r1, r1, #0x1
- ldrb r6, [r0, r4]
- ldr r0, [sp, #0x4]
- mov r4, #0x7
- and r5, r4
- ldr r0, [r0, #0x0]
- ldr r4, =0x00007FC0
- add r0, r0, r5
- and r4, r3
- add r4, r4, r0
- ldr r0, [sp, #0x18]
- add r2, #0x8
- add r4, r0, r4
- ldr r0, [sp, #0x14]
- add r3, #0x8
- strb r6, [r0, r4]
- mov r0, r12
- add r7, r7, #0x1
- cmp r1, r0
- blt _02018D66
-_02018DA8:
- ldr r0, [sp, #0x28]
- add r0, #0x8
- str r0, [sp, #0x28]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0xc]
- add r0, #0x8
- str r0, [sp, #0x24]
- mov r0, lr
- cmp r1, r0
- blt _02018D28
- add sp, #0x50
- pop {r3-r7, pc}
-_02018DC6:
- ldr r2, [sp, #0xc]
- mov r1, lr
- cmp r2, r1
- bge _02018E7C
- mov r1, lr
- cmp r2, r1
- bge _02018E7C
- add r1, r2, #0x0
- lsl r1, r1, #0x3
- lsl r0, r0, #0x3
- str r1, [sp, #0x44]
- str r0, [sp, #0x40]
-_02018DDE:
- ldr r2, [sp, #0x8]
- mov r0, r12
- add r1, r2, #0x0
- ldr r3, [sp, #0x10]
- cmp r1, r0
- bge _02018E62
- mov r0, r12
- cmp r1, r0
- bge _02018E62
- add r0, r2, #0x0
- lsl r6, r0, #0x3
- add r0, r3, #0x0
- lsl r1, r0, #0x3
- ldr r7, =0x00007FC0
- ldr r0, [sp, #0x44]
- ldr r4, [sp, #0x4c]
- and r0, r7
- mul r4, r0
- str r4, [sp, #0x38]
- ldr r0, [sp, #0x44]
- mov r5, #0x38
- and r0, r5
- str r0, [sp, #0x34]
- ldr r0, [sp, #0x40]
- ldr r4, [sp, #0x48]
- and r0, r7
- mul r4, r0
- ldr r0, [sp, #0x40]
- str r4, [sp, #0x30]
- and r0, r5
- str r0, [sp, #0x2c]
-_02018E1C:
- ldr r0, [sp, #0x4]
- mov r4, #0x7
- ldr r0, [r0, #0x0]
- and r4, r3
- add r0, r0, r4
- ldr r4, =0x00007FC0
- add r5, r2, #0x0
- and r4, r1
- add r4, r0, r4
- ldr r0, [sp, #0x30]
- add r7, r4, r0
- ldr r0, [sp, #0x0]
- mov r4, #0x7
- and r5, r4
- ldr r0, [r0, #0x0]
- ldr r4, =0x00007FC0
- add r0, r0, r5
- and r4, r6
- add r4, r4, r0
- ldr r0, [sp, #0x38]
- add r4, r0, r4
- ldr r0, [sp, #0x34]
- ldrb r0, [r0, r4]
- ldr r4, [sp, #0x3c]
- cmp r0, r4
- beq _02018E54
- ldr r4, [sp, #0x2c]
- strb r0, [r7, r4]
-_02018E54:
- add r2, r2, #0x1
- mov r0, r12
- add r6, #0x8
- add r1, #0x8
- add r3, r3, #0x1
- cmp r2, r0
- blt _02018E1C
-_02018E62:
- ldr r0, [sp, #0x44]
- add r0, #0x8
- str r0, [sp, #0x44]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x40]
- ldr r1, [sp, #0xc]
- add r0, #0x8
- str r0, [sp, #0x40]
- mov r0, lr
- cmp r1, r0
- blt _02018DDE
-_02018E7C:
- add sp, #0x50
- pop {r3-r7, pc}
- // clang-format on
-}
-#endif
-
-THUMB_FUNC void FUN_02018E88(
- struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5)
-{
-
- int r6 = param1 + param3;
- if (r6 > param0->unk04)
- {
- r6 = param0->unk04;
- }
-
- int r12 = param2 + param4;
- if (r12 > param0->unk06)
- {
- r12 = param0->unk06;
- }
-
- int lr = (((param0->unk04) + (param0->unk04 & 7)) >> 3);
-
- for (int i = param2; i < r12; i++)
- {
-
- for (int j = param1; j < r6; j++)
- {
-
- u8 *unk = (u8 *)((u8 *)param0->unk00 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) +
- (((i << 2) & 0x3fe0) * lr) + ((i << 2) & 0x1c));
-
- if ((j & 1) != 0)
- {
- *unk &= 0xf;
- *unk |= (param5 << 4);
- }
- else
- {
- *unk &= 0xf0;
- *unk |= param5;
- }
- }
- }
-}
-
-THUMB_FUNC void FUN_02018F4C(
- struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5)
-{
-
- int r6 = param1 + param3;
- if (r6 > param0->unk04)
- {
- r6 = param0->unk04;
- }
-
- int r12 = param2 + param4;
- if (r12 > param0->unk06)
- {
- r12 = param0->unk06;
- }
-
- int lr = (((param0->unk04) + (param0->unk04 & 7)) >> 3);
-
- for (int i = param2; i < r12; i++)
- {
-
- for (int j = param1; j < r6; j++)
- {
-
- u8 *unk = (u8 *)((u8 *)param0->unk00 + (j & 7) + ((j << 3) & 0x7fc0) +
- (((i << 3) & 0x7fc0) * lr) + ((i << 3) & 0x38));
-
- *unk = param5;
- }
- }
-}
-
-THUMB_FUNC void *AllocWindows(u32 heap_id, s32 size)
-{
- struct Window *ptr = AllocFromHeap(heap_id, (u32)(size << 4));
-
- for (u16 i = 0; i < size; i++)
- {
- InitWindow(&ptr[i]);
- }
-
- return ptr;
-}
-
-THUMB_FUNC void InitWindow(struct Window *param0)
-{
- param0->unk00 = 0;
- param0->unk04 = 0xff;
- param0->unk05 = 0;
- param0->unk06 = 0;
- param0->width = 0;
- param0->height = 0;
- param0->unk09 = 0;
-
- param0->unk0a_0 = 0;
- param0->unk0c = 0;
-
- param0->unk0b_15 = 0;
-}
-
-THUMB_FUNC BOOL FUN_02019048(struct Window *param0)
-{
- if (param0->unk00 == 0 || param0->unk04 == 0xff || param0->unk0c == 0)
- {
- return FALSE;
- }
-
- return TRUE;
-}
-
-enum UnkEnum1
-{
- UnkEnum1_0 = 0,
- UnkEnum1_1 = 1
-};
-
-THUMB_FUNC void FUN_02019064(struct UnkStruct_02016B94_2 *param0,
- struct Window *param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6,
- u8 param7,
- u16 param8)
-{
- if (param0->unk08[param2].unk08 == NULL)
- {
- return;
- }
-
- void *ptr = AllocFromHeap(param0->unk00, (u32)(param5 * param6 * param0->unk08[param2].unk1f));
-
- if (ptr == NULL)
- {
- return;
- }
- param1->unk00 = param0;
- param1->unk04 = param2;
- param1->unk05 = param3;
- param1->unk06 = param4;
- param1->width = param5;
- param1->height = param6;
- param1->unk09 = param7;
-
- param1->unk0a_0 = param8;
- param1->unk0c = ptr;
-
- enum UnkEnum1 r2;
- if (param0->unk08[param2].unk1e == 0)
- {
- r2 = UnkEnum1_0;
- }
- else
- {
- r2 = UnkEnum1_1;
- }
-
- param1->unk0b_15 = r2;
-}
-
-THUMB_FUNC void FUN_020190EC(struct UnkStruct_02016B94_2 *param0,
- struct Window *param1,
- u8 param2,
- u8 param3,
- u16 param4,
- u8 param5)
-{
- u32 size = (u32)(param2 * param3 * 32);
-
- void *ptr = AllocFromHeap(param0->unk00, size);
-
- param5 |= (param5 * 16);
- memset(ptr, param5, size);
-
- if (ptr != NULL)
- {
- param1->unk00 = param0;
- param1->width = param2;
- param1->height = param3;
- param1->unk0a_0 = param4;
- param1->unk0c = ptr;
- param1->unk0b_15 = 0;
- }
-}
-
-THUMB_FUNC void FUN_02019150(
- struct UnkStruct_02016B94_2 *param0, struct Window *param1, const struct UnkStruct_02016B94_4 *param2)
-{
-
- FUN_02019064(param0,
- param1,
- param2->unk0,
- param2->unk1,
- param2->unk2,
- param2->unk3,
- param2->unk4,
- param2->unk5,
- param2->unk6);
-}
-
-THUMB_FUNC void FUN_02019178(struct Window *param0)
-{
- FreeToHeap(param0->unk0c);
-
- param0->unk00 = 0;
- param0->unk04 = 0xff;
- param0->unk05 = 0;
- param0->unk06 = 0;
- param0->width = 0;
- param0->height = 0;
- param0->unk09 = 0;
- param0->unk0a_0 = 0;
- param0->unk0c = 0;
-}
-
-THUMB_FUNC void FUN_020191A4(struct Window *param0, int param1)
-{
- for (u16 i = 0; i < param1; i++)
- {
- if (param0[i].unk0c != NULL)
- {
- FreeToHeap(param0[i].unk0c);
- }
- }
-
- FreeToHeap(param0);
-}
-
-THUMB_FUNC void CopyWindowToVram(struct Window *param0)
-{
-
- GF_ASSERT(param0);
- GF_ASSERT(param0->unk00);
- GF_ASSERT(param0->unk04 < 8);
- GF_ASSERT(param0->unk00->unk08[param0->unk04].unk1c < 3);
-
- UNK_020EDB68[param0->unk00->unk08[param0->unk04].unk1c](param0);
-}
-
-THUMB_FUNC void FUN_02019220(struct Window *param0)
-{
-
- GF_ASSERT(param0);
- GF_ASSERT(param0->unk00);
- GF_ASSERT(param0->unk04 < 8);
- GF_ASSERT(param0->unk00->unk08[param0->unk04].unk1c < 3);
-
- UNK_020EDB5C[param0->unk00->unk08[param0->unk04].unk1c](param0);
-}
-
-THUMB_FUNC void FUN_02019270(struct Window *param0)
-{
- UNK_020EDB38[param0->unk00->unk08[param0->unk04].unk1c](param0);
-}
-
-THUMB_FUNC void FUN_0201928C(struct Window *param0, u8 param1, u8 param2)
-{
- u8 unk07 = param0->width;
- u8 unk08 = param0->height;
-
- param0->width = param1;
- param0->height = param2;
- UNK_020EDB38[param0->unk00->unk08[param0->unk04].unk1c](param0);
-
- param0->width = unk07;
- param0->height = unk08;
-}
-
-THUMB_FUNC void FUN_020192B8(struct Window *param0)
-{
- UNK_020EDB74[param0->unk00->unk08[param0->unk04].unk1c](param0);
-}
-
-THUMB_FUNC void FUN_020192D4(struct Window *param0)
-{
- u32 i, j;
- u32 r3;
- u32 iCount, jCount;
- u16 *st4 = param0->unk00->unk08[param0->unk04].unk08;
-
- if (st4 == NULL)
- {
- return;
- }
-
- r3 = param0->unk0a_0;
- jCount = (u32)(param0->unk05 + param0->width);
- iCount = (u32)(param0->unk06 + param0->height);
-
- for (i = param0->unk06; i < iCount; i++)
- {
- for (j = param0->unk05; j < jCount; j++)
- {
- st4[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) << 5) + (j & 0x1f)] =
- (u16)(r3 | (param0->unk09 << 12));
-
- r3++;
- }
- }
-}
-
-THUMB_FUNC void FUN_02019358(struct Window *param0)
-{
- int j, i;
- u8 *r4;
-
- int r5;
- int r6;
-
- if (param0->unk00->unk08[param0->unk04].unk08 == NULL)
- {
- return;
- }
-
- r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d];
-
- r4 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05;
- r5 = param0->unk0a_0;
-
- for (i = 0; i < param0->height; i++)
- {
- for (j = 0; j < param0->width; j++)
- {
- r4[j] = (u8)r5;
- r5++;
- }
- r4 += r6;
- }
-}
-
-THUMB_FUNC void FUN_020193B4(struct Window *param0)
-{
-
- u32 i, j;
-
- u32 iCount, jCount;
- u32 st8;
-
- u16 *st4;
-
- if (param0->unk00->unk08[param0->unk04].unk08 == NULL)
- {
- return;
- }
- st4 = param0->unk00->unk08[param0->unk04].unk08;
-
- st8 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d];
- jCount = (u32)(param0->unk05 + param0->width);
- iCount = (u32)(param0->unk06 + param0->height);
-
- for (i = param0->unk06; i < iCount; i++)
- {
- for (j = param0->unk05; j < jCount; j++)
- {
- st4[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) * st8) + (j & 0x1f)] = 0;
- }
- }
-}
-
-THUMB_FUNC void FUN_02019444(struct Window *param0)
-{
-
- int j, i;
- u8 *r5;
-
- int r6;
-
- if (param0->unk00->unk08[param0->unk04].unk08 == NULL)
- {
- return;
- }
-
- r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d];
- r5 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05;
-
- for (i = 0; i < param0->height; i++)
- {
- for (j = 0; j < param0->width; j++)
- {
- r5[j] = 0;
- }
- r5 += r6;
- }
-}
-
-THUMB_FUNC void FUN_0201949C(struct Window *window)
-{
- FUN_020192D4(window);
- FUN_02019548(window);
- FUN_02017CE8(window->unk00,
- window->unk04,
- window->unk00->unk08[window->unk04].unk08,
- window->unk00->unk08[window->unk04].unk0c,
- window->unk00->unk08[window->unk04].unk10);
-}
-
-THUMB_FUNC void FUN_020194C8(struct Window *window)
-{
- FUN_020192D4(window);
- FUN_0201AC68(window->unk00, window->unk04);
- FUN_02019548(window);
-}
-
-THUMB_FUNC void FUN_020194E0(struct Window *window)
-{
- FUN_02019358(window);
- FUN_02017CE8(window->unk00,
- window->unk04,
- window->unk00->unk08[window->unk04].unk08,
- window->unk00->unk08[window->unk04].unk0c,
- window->unk00->unk08[window->unk04].unk10);
-
- FUN_02017E14(window->unk00,
- window->unk04,
- window->unk0c,
- (u32)(window->width * window->height * 64),
- window->unk0a_0);
-}
-
-THUMB_FUNC void FUN_0201951C(struct Window *window)
-{
- FUN_02019358(window);
- FUN_0201AC68(window->unk00, window->unk04);
- FUN_02017E14(window->unk00,
- window->unk04,
- window->unk0c,
- (u32)(window->width * window->height * 64),
- window->unk0a_0);
-}
-
-THUMB_FUNC void FUN_02019548(struct Window *window)
-{
- FUN_02017E14(window->unk00,
- window->unk04,
- window->unk0c,
- (u32)(window->width * window->height * window->unk00->unk08[window->unk04].unk1f),
- window->unk0a_0);
-}
-
-THUMB_FUNC void FUN_02019570(struct Window *window)
-{
- UNK_020EDB50[window->unk00->unk08[window->unk04].unk1c](window);
-}
-
-THUMB_FUNC void FUN_0201958C(struct Window *window)
-{
- UNK_020EDB44[window->unk00->unk08[window->unk04].unk1c](window);
-}
-
-THUMB_FUNC void FUN_020195A8(struct Window *window)
-{
- FUN_020193B4(window);
- FUN_02017CE8(window->unk00,
- window->unk04,
- window->unk00->unk08[window->unk04].unk08,
- window->unk00->unk08[window->unk04].unk0c,
- window->unk00->unk08[window->unk04].unk10);
-}
-
-THUMB_FUNC void FUN_020195D0(struct Window *window)
-{
- FUN_020193B4(window);
- FUN_0201AC68(window->unk00, window->unk04);
-}
-
-THUMB_FUNC void FUN_020195E4(struct Window *window)
-{
- FUN_02019444(window);
- FUN_02017CE8(window->unk00,
- window->unk04,
- window->unk00->unk08[window->unk04].unk08,
- window->unk00->unk08[window->unk04].unk0c,
- window->unk00->unk08[window->unk04].unk10);
-}
-
-THUMB_FUNC void FUN_0201960C(struct Window *window)
-{
- FUN_02019444(window);
- FUN_0201AC68(window->unk00, window->unk04);
-}
-
-THUMB_FUNC void FillWindowPixelBuffer(struct Window *window, u8 param1)
-{
- if (window->unk00->unk08[window->unk04].unk1f == 0x20)
- {
- param1 |= param1 << 4;
- }
-
- MI_CpuFillFast(
- window->unk0c,
- (u32)((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1),
- (u32)(window->unk00->unk08[window->unk04].unk1f * window->width * window->height));
-}
-
-THUMB_FUNC void BlitBitmapRectToWindow(struct Window *window,
- const void *src,
- u16 srcX,
- u16 srcY,
- u16 srcWidth,
- u16 srcHeight,
- u16 dstX,
- u16 dstY,
- u16 dstWidth,
- u16 dstHeight)
-{
- BlitBitmapRect(
- window, src, srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, 0);
-}
-
-THUMB_FUNC void BlitBitmapRect(struct Window *window,
- void *param1,
- u16 param2,
- u16 param3,
- u16 param4,
- u16 param5,
- u16 param6,
- u16 param7,
- u16 param8,
- u16 param9,
- u16 param10)
-{
- struct UnkStruct_02016B94_3 st1c = { param1, param4, param5 };
- struct UnkStruct_02016B94_3 st14 = {
- window->unk0c, (u16)(window->width << 3), (u16)(window->height << 3)
- };
-
- if (window->unk00->unk08[window->unk04].unk1e == 0)
- {
- BlitBitmapRect4Bit(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10);
- }
- else
- {
- BlitBitmapRect8Bit(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10);
- }
-}
-
-THUMB_FUNC void FillWindowPixelRect(
- struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height)
-{
- struct UnkStruct_02016B94_3 st8 = {
- window->unk0c, (u16)(window->width << 3), (u16)(window->height << 3)
- };
-
- if (window->unk00->unk08[window->unk04].unk1e == 0)
- {
- FUN_02018E88(&st8, x, y, width, height, fillValue);
- }
- else
- {
- FUN_02018F4C(&st8, x, y, width, height, fillValue);
- }
-}
-
-#ifdef NONMATCHING
-THUMB_FUNC void FUN_0201974C(
- struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6)
-{
- u32 str330 = param6;
- u32 *st0 = param1;
- u16 st5c = param4;
-
- void *st278 = window->unk0c;
- u16 st58 = window->width << 3;
-
- int st8 = st58 - st5c;
-
- if (st8 >= param2)
- {
- st8 = param2;
- }
-
- int st4 = (u16)(window->height << 3) - param5;
- u16 st48 = param5;
-
- if (st4 >= param3)
- {
- st4 = param3;
- }
-
- u8 r4 = 0;
- if (st8 > 8)
- {
- r4 |= 1;
- }
-
- if (st4 > 8)
- {
- r4 |= 2;
- }
-
- if (window->unk0b_15 == 0)
- {
- switch (r4)
- {
- case 0:
- u8 st70 = param6;
- for (u32 st274 = 0; st274 < st4; st274++)
- {
- u32 st6c = (st58 + (st58 & 7)) >> 3;
-
- u32 st26c = st0[0];
- u8 st270 = (u8)((st70 >> st274) & 1);
- u32 r2 = st5c;
-
- for (u32 r1 = 0; r1 < st8; r1++)
- {
- u32 r3 = st5c << 2;
- u32 st68 = ((st48 << 2) & 0x3fe0) * st6c;
- u32 r7 = (st48 << 2) & 0x1c;
- u32 st64 = (((st48 + 1) << 2) & 0x3fe0) * st6c;
- u32 st60 = ((st48 + 1) << 2) & 0x1c;
- u32 r4 = r1;
-
- void *st27c = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0);
- u8 *r0 = st27c + st68;
-
- u8 r5 = (u8)((st26c >> r4) & 0xf);
- if (r5 != 0)
- {
- u32 st280 = (r5 << ((r2 & 1) << 2));
- u32 st284 = r0[r7];
-
- u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st284) | st280;
- r0[r7] = r5;
-
- if (st270 != 0)
- {
- *(u8 *)(st27c + st64 + st60) = r5;
- }
- }
-
- r4 += 4;
- r3 += 4;
- r2 += 1;
- }
-
- if (st270 != 0)
- {
- st48 += 2;
- }
- else
- {
- st48++;
- }
-
- st0++;
- }
-
- break;
-
- case 1:
- u32 *st25c = st0;
- u32 st264 = st48;
- u8 st54 = param6;
- u8 st84 = param6;
-
- for (u32 st268 = 0; st268 < st4; st268++)
- {
- u32 st80 = (st58 + (st58 & 7)) >> 3;
-
- u32 st258 = *st25c;
- u32 r2 = st5c;
- u8 st260 = (st84 >> st268) & 1;
- u32 r3 = st5c << 2;
- u32 st7c = ((st264 << 2) & 0x3fe0) * st80;
- u32 r7 = (st264 << 2) & 0x1c;
- u32 st78 = (((st264 + 1) << 2) & 0x3fe0) * st80;
- u32 st74 = ((st264 + 1) << 2) & 0x1c;
- u32 r4 = 0;
-
- for (u32 r1 = 0; r1 < 8; r1++)
- {
- void *st288 = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0);
- u8 *r0 = st288 + st7c;
- u8 r5 = (st258 >> r4) & 0xf;
- if (r5 != 0)
- {
- u32 st28c = r5 << ((r2 & 1) << 2);
- u32 st290 = r0[r7];
- u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st290) | st28c;
- r0[r7] = r5;
-
- if (st260 != 0)
- {
- *(u8 *)(st288 + st78 + st74) = r5;
- }
- }
-
- r4 += 4;
- r3 += 4;
- r2++;
- }
-
- if (st260 != 0)
- {
- st264 += 2;
- }
- else
- {
- st264++;
- }
-
- st25c++;
- }
-
- st0 += 0x20;
- u8 st98 = st54;
-
- for (u32 st254 = 0; st254 < st4; st254++)
- {
- st5c += 8;
- u32 st94 = (st58 + (st58 & 7)) >> 3;
-
- //_02019A00
- }
-
- break;
-
- case 2:
- // TODO
- break;
- case 3:
- // TODO
- break;
- }
- }
- else
- {
- // TODO: FUN_0201A12C
- }
-}
-#else
-asm void FUN_0201974C(
- struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6)
-{
- // clang-format off
- push {r4-r7, lr}
- sub sp, #0x1fc
- sub sp, #0x118
- add r5, r0, #0x0
- ldr r0, [sp, #0x330]
- str r1, [sp, #0x0]
- str r0, [sp, #0x330]
- add r1, sp, #0x318
- ldrh r1, [r1, #0x10]
- ldr r0, [r5, #0xc]
- str r1, [sp, #0x5c]
- ldrb r1, [r5, #0x7]
- str r0, [sp, #0x278]
- ldrb r0, [r5, #0x8]
- lsl r1, r1, #0x13
- lsr r4, r1, #0x10
- ldr r1, [sp, #0x5c]
- lsl r0, r0, #0x13
- sub r1, r4, r1
- lsr r0, r0, #0x10
- str r4, [sp, #0x58]
- str r1, [sp, #0x8]
- cmp r1, r2
- blt _0201977E
- str r2, [sp, #0x8]
-_0201977E:
- add r1, sp, #0x318
- ldrh r1, [r1, #0x14]
- sub r0, r0, r1
- str r1, [sp, #0x48]
- str r0, [sp, #0x4]
- cmp r0, r3
- blt _0201978E
- str r3, [sp, #0x4]
-_0201978E:
- ldr r0, [sp, #0x8]
- mov r4, #0x0
- cmp r0, #0x8
- ble _0201979E
- mov r0, #0x1
- orr r0, r4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_0201979E:
- ldr r0, [sp, #0x4]
- cmp r0, #0x8
- ble _020197AC
- mov r0, #0x2
- orr r0, r4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_020197AC:
- ldrh r0, [r5, #0xa]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1f
- beq _020197B8
- bl FUN_0201A12C
-_020197B8:
- cmp r4, #0x3
- bls _020197C0
- bl FUN_0201A8BC
-_020197C0:
- add r0, r4, r4
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020197CC:
- lsl r6, r0, #0
- lsl r0, r1, #4
- lsl r0, r3, #12
- lsl r0, r7, #20
- // jump table (using 16-bit offset)
- // .short _020197D4 - _020197CC - 2; case 0
- // .short _020198D6 - _020197CC - 2; case 1
- // .short _02019AE6 - _020197CC - 2; case 2
- // .short _02019D06 - _020197CC - 2; case 3
-_020197D4:
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x70]
- mov r0, #0x0
- str r0, [sp, #0x274]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- bgt _020197EA
- bl FUN_0201A8BC
-_020197EA:
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x6c]
-_020197F6:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x70]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x26c]
- ldr r0, [sp, #0x274]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x270]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- cmp r0, #0x0
- ble _020198AA
- ble _020198AA
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x48]
- ldr r6, [sp, #0x6c]
- lsl r5, r0, #0x2
- ldr r0, =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x48]
- str r6, [sp, #0x68]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x6c]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0x64]
- str r0, [sp, #0x60]
-_02019848:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0x68]
- str r5, [sp, #0x27c]
- add r0, r5, r0
- ldr r5, [sp, #0x26c]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _0201989C
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x280]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x284]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x284]
- and r6, r5
- ldr r5, [sp, #0x280]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x270]
- cmp r0, #0x0
- beq _0201989C
- ldr r6, [sp, #0x27c]
- ldr r0, [sp, #0x64]
- add r6, r6, r0
- ldr r0, [sp, #0x60]
- strb r5, [r0, r6]
-_0201989C:
- ldr r0, [sp, #0x8]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019848
-_020198AA:
- ldr r0, [sp, #0x270]
- cmp r0, #0x0
- beq _020198B8
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _020198BE
-_020198B8:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_020198BE:
- ldr r0, [sp, #0x0]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x274]
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x274]
- cmp r1, r0
- blt _020197F6
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
-_020198D6:
- ldr r0, [sp, #0x0]
- str r0, [sp, #0x25c]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x264]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x54]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x84]
- mov r0, #0x0
- str r0, [sp, #0x268]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _020199D2
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x80]
-_02019902:
- ldr r0, [sp, #0x25c]
- ldr r1, [sp, #0x84]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x258]
- ldr r0, [sp, #0x268]
- ldr r6, [sp, #0x80]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x260]
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x264]
- mov r1, #0x0
- lsl r5, r0, #0x2
- ldr r0, =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x264]
- str r6, [sp, #0x7c]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x80]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0x78]
- str r0, [sp, #0x74]
-_0201994C:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0x7c]
- str r5, [sp, #0x288]
- add r0, r5, r0
- ldr r5, [sp, #0x258]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _020199A0
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x28c]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x290]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x290]
- and r6, r5
- ldr r5, [sp, #0x28c]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x260]
- cmp r0, #0x0
- beq _020199A0
- ldr r6, [sp, #0x288]
- ldr r0, [sp, #0x78]
- add r6, r6, r0
- ldr r0, [sp, #0x74]
- strb r5, [r0, r6]
-_020199A0:
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, #0x8
- blt _0201994C
- ldr r0, [sp, #0x260]
- cmp r0, #0x0
- beq _020199BA
- ldr r0, [sp, #0x264]
- add r0, r0, #0x2
- str r0, [sp, #0x264]
- b _020199C0
-_020199BA:
- ldr r0, [sp, #0x264]
- add r0, r0, #0x1
- str r0, [sp, #0x264]
-_020199C0:
- ldr r0, [sp, #0x25c]
- add r0, r0, #0x4
- str r0, [sp, #0x25c]
- ldr r0, [sp, #0x268]
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x268]
- cmp r1, r0
- blt _02019902
-_020199D2:
- ldr r0, [sp, #0x0]
- add r0, #0x20
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x54]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x98]
- mov r0, #0x0
- str r0, [sp, #0x254]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- bgt _020199EE
- bl FUN_0201A8BC
-_020199EE:
- ldr r0, [sp, #0x5c]
- mov r1, #0x7
- add r0, #0x8
- str r0, [sp, #0x5c]
- ldr r0, [sp, #0x58]
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x94]
-_02019A00:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x98]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x24c]
- ldr r0, [sp, #0x254]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x250]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- str r0, [sp, #0x294]
- sub r0, #0x8
- str r0, [sp, #0x294]
- cmp r0, #0x0
- ble _02019ABA
- ble _02019ABA
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x48]
- ldr r6, [sp, #0x94]
- lsl r5, r0, #0x2
- ldr r0, =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x48]
- str r6, [sp, #0x90]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x94]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0x8c]
- str r0, [sp, #0x88]
-_02019A58:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0x90]
- str r5, [sp, #0x298]
- add r0, r5, r0
- ldr r5, [sp, #0x24c]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019AAC
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x29c]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2a0]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2a0]
- and r6, r5
- ldr r5, [sp, #0x29c]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x250]
- cmp r0, #0x0
- beq _02019AAC
- ldr r6, [sp, #0x298]
- ldr r0, [sp, #0x8c]
- add r6, r6, r0
- ldr r0, [sp, #0x88]
- strb r5, [r0, r6]
-_02019AAC:
- ldr r0, [sp, #0x294]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019A58
-_02019ABA:
- ldr r0, [sp, #0x250]
- cmp r0, #0x0
- beq _02019AC8
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _02019ACE
-_02019AC8:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_02019ACE:
- ldr r0, [sp, #0x0]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x254]
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x254]
- cmp r1, r0
- blt _02019A00
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
-_02019AE6:
- ldr r0, [sp, #0x0]
- mov r1, #0x7
- str r0, [sp, #0x23c]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x244]
- mov r0, #0x0
- str r0, [sp, #0x248]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xa8]
- ldr r0, [sp, #0x58]
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x40]
-_02019B06:
- ldr r0, [sp, #0x23c]
- ldr r1, [sp, #0xa8]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x238]
- ldr r0, [sp, #0x248]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x240]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- cmp r0, #0x0
- ble _02019BC2
- ble _02019BC2
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x244]
- ldr r6, [sp, #0x40]
- lsl r5, r0, #0x2
- ldr r0, =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x244]
- str r6, [sp, #0xa4]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x40]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0xa0]
- str r0, [sp, #0x9c]
-_02019B58:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, =0x00003FE0
-// b _02019B6C
-// nop
-// _02019B68: .word 0x00003FE0
-// _02019B6C:
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xa4]
- str r5, [sp, #0x2a4]
- add r0, r5, r0
- ldr r5, [sp, #0x238]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019BB4
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2a8]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2ac]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2ac]
- and r6, r5
- ldr r5, [sp, #0x2a8]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x240]
- cmp r0, #0x0
- beq _02019BB4
- ldr r6, [sp, #0x2a4]
- ldr r0, [sp, #0xa0]
- add r6, r6, r0
- ldr r0, [sp, #0x9c]
- strb r5, [r0, r6]
-_02019BB4:
- ldr r0, [sp, #0x8]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019B58
-_02019BC2:
- ldr r0, [sp, #0x240]
- cmp r0, #0x0
- beq _02019BD0
- ldr r0, [sp, #0x244]
- add r0, r0, #0x2
- str r0, [sp, #0x244]
- b _02019BD6
-_02019BD0:
- ldr r0, [sp, #0x244]
- add r0, r0, #0x1
- str r0, [sp, #0x244]
-_02019BD6:
- ldr r0, [sp, #0x23c]
- add r0, r0, #0x4
- str r0, [sp, #0x23c]
- ldr r0, [sp, #0x248]
- add r0, r0, #0x1
- str r0, [sp, #0x248]
- cmp r0, #0x8
- blt _02019B06
- ldr r0, [sp, #0x0]
- mov r2, #0x0
- add r0, #0x40
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x48]
- mov r1, #0x1
- add r0, #0x8
- str r0, [sp, #0x48]
-_02019BF6:
- ldr r0, [sp, #0x330]
- asr r0, r2
- tst r0, r1
- beq _02019C04
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_02019C04:
- add r2, r2, #0x1
- cmp r2, #0x8
- blt _02019BF6
- ldr r0, [sp, #0x330]
- asr r0, r0, #0x8
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xb8]
- mov r0, #0x0
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- bgt _02019C24
- bl FUN_0201A8BC
-_02019C24:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0xb8]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x230]
- ldr r0, [sp, #0x20]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x234]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- cmp r0, #0x0
- ble _02019CD8
- ble _02019CD8
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x48]
- ldr r6, [sp, #0x40]
- lsl r5, r0, #0x2
- ldr r0, =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x48]
- str r6, [sp, #0xb4]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x40]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0xb0]
- str r0, [sp, #0xac]
-_02019C76:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xb4]
- str r5, [sp, #0x2b0]
- add r0, r5, r0
- ldr r5, [sp, #0x230]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019CCA
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2b4]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2b8]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2b8]
- and r6, r5
- ldr r5, [sp, #0x2b4]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x234]
- cmp r0, #0x0
- beq _02019CCA
- ldr r6, [sp, #0x2b0]
- ldr r0, [sp, #0xb0]
- add r6, r6, r0
- ldr r0, [sp, #0xac]
- strb r5, [r0, r6]
-_02019CCA:
- ldr r0, [sp, #0x8]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019C76
-_02019CD8:
- ldr r0, [sp, #0x234]
- cmp r0, #0x0
- beq _02019CE6
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _02019CEC
-_02019CE6:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_02019CEC:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x20]
- sub r1, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x20]
- cmp r0, r1
- blt _02019C24
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
-_02019D06:
- ldr r0, [sp, #0x0]
- str r0, [sp, #0x220]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x228]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r0, #0x0
- str r0, [sp, #0x22c]
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x38]
-_02019D2A:
- ldr r0, [sp, #0x220]
- ldr r1, [sp, #0x3c]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x21c]
- ldr r0, [sp, #0x22c]
- ldr r6, [sp, #0x38]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x224]
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x228]
- mov r1, #0x0
- lsl r5, r0, #0x2
- ldr r0, =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x228]
- str r6, [sp, #0xc4]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x38]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- str r3, [sp, #0x34]
- add r4, r1, #0x0
- str r5, [sp, #0xc0]
- str r0, [sp, #0xbc]
-_02019D76:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xc4]
- str r5, [sp, #0x2bc]
- add r0, r5, r0
- ldr r5, [sp, #0x21c]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019DCA
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2c0]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2c4]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2c4]
- and r6, r5
- ldr r5, [sp, #0x2c0]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x224]
- cmp r0, #0x0
- beq _02019DCA
- ldr r6, [sp, #0x2bc]
- ldr r0, [sp, #0xc0]
- add r6, r6, r0
- ldr r0, [sp, #0xbc]
- strb r5, [r0, r6]
-_02019DCA:
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, #0x8
- blt _02019D76
- ldr r0, [sp, #0x224]
- cmp r0, #0x0
- beq _02019DE4
- ldr r0, [sp, #0x228]
- add r0, r0, #0x2
- str r0, [sp, #0x228]
- b _02019DEA
-_02019DE4:
- ldr r0, [sp, #0x228]
- add r0, r0, #0x1
- str r0, [sp, #0x228]
-_02019DEA:
- ldr r0, [sp, #0x220]
- add r0, r0, #0x4
- str r0, [sp, #0x220]
- ldr r0, [sp, #0x22c]
- add r0, r0, #0x1
- str r0, [sp, #0x22c]
- cmp r0, #0x8
- blt _02019D2A
- ldr r0, [sp, #0x0]
- str r0, [sp, #0x20c]
- add r0, #0x20
- str r0, [sp, #0x20c]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x214]
- mov r0, #0x0
- str r0, [sp, #0x218]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0xd4]
- add r0, #0x8
- str r0, [sp, #0xd4]
-_02019E12:
- ldr r0, [sp, #0x20c]
- ldr r1, [sp, #0x3c]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0xd4]
- str r0, [sp, #0x208]
- ldr r0, [sp, #0x218]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x210]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- str r0, [sp, #0x2c8]
- sub r0, #0x8
- str r0, [sp, #0x2c8]
- cmp r0, #0x0
- ble _02019ECC
- ble _02019ECC
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x214]
- ldr r6, [sp, #0x38]
- lsl r5, r0, #0x2
- ldr r0, =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x214]
- str r6, [sp, #0xd0]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x38]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0xcc]
- str r0, [sp, #0xc8]
-_02019E6A:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xd0]
- str r5, [sp, #0x2cc]
- add r0, r5, r0
- ldr r5, [sp, #0x208]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019EBE
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2d0]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2d4]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2d4]
- and r6, r5
- ldr r5, [sp, #0x2d0]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x210]
- cmp r0, #0x0
- beq _02019EBE
- ldr r6, [sp, #0x2cc]
- ldr r0, [sp, #0xcc]
- add r6, r6, r0
- ldr r0, [sp, #0xc8]
- strb r5, [r0, r6]
-_02019EBE:
- ldr r0, [sp, #0x2c8]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019E6A
-_02019ECC:
- ldr r0, [sp, #0x210]
- cmp r0, #0x0
- beq _02019EDA
- ldr r0, [sp, #0x214]
- add r0, r0, #0x2
- str r0, [sp, #0x214]
- b _02019EE0
-_02019EDA:
- ldr r0, [sp, #0x214]
- add r0, r0, #0x1
- str r0, [sp, #0x214]
-_02019EE0:
- ldr r0, [sp, #0x20c]
- add r0, r0, #0x4
- str r0, [sp, #0x20c]
- ldr r0, [sp, #0x218]
- add r0, r0, #0x1
- str r0, [sp, #0x218]
- cmp r0, #0x8
- blt _02019E12
- ldr r0, [sp, #0x0]
- mov r2, #0x0
- str r0, [sp, #0x1fc]
- add r0, #0x40
- str r0, [sp, #0x1fc]
- ldr r0, [sp, #0x48]
- mov r1, #0x1
- add r0, #0x8
- str r0, [sp, #0x48]
- str r0, [sp, #0x204]
-_02019F04:
- ldr r0, [sp, #0x330]
- asr r0, r2
- tst r0, r1
- beq _02019F12
- ldr r0, [sp, #0x204]
- add r0, r0, #0x1
- str r0, [sp, #0x204]
-_02019F12:
- add r2, r2, #0x1
- cmp r2, #0x8
- blt _02019F04
- ldr r0, [sp, #0x330]
- asr r0, r0, #0x8
- str r0, [sp, #0x50]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xe4]
- mov r0, #0x0
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- ble _0201A008
-_02019F30:
- ldr r0, [sp, #0x1fc]
- ldr r1, [sp, #0xe4]
- ldr r0, [r0, #0x0]
- ldr r6, [sp, #0x38]
- str r0, [sp, #0x1f8]
- ldr r0, [sp, #0x1c]
- ldr r2, [sp, #0x5c]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x200]
- ldr r0, [sp, #0x204]
- mov r1, #0x0
- lsl r5, r0, #0x2
- ldr r0, =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x204]
- str r6, [sp, #0xe0]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x38]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- ldr r3, [sp, #0x34]
- add r4, r1, #0x0
- str r5, [sp, #0xdc]
- str r0, [sp, #0xd8]
-_02019F78:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, =0x00003FE0
-// b _02019F8C
-// nop
-// _02019F88: .word 0x00003FE0
-// _02019F8C:
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xe0]
- str r5, [sp, #0x2d8]
- add r0, r5, r0
- ldr r5, [sp, #0x1f8]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019FD4
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2dc]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2e0]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2e0]
- and r6, r5
- ldr r5, [sp, #0x2dc]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x200]
- cmp r0, #0x0
- beq _02019FD4
- ldr r6, [sp, #0x2d8]
- ldr r0, [sp, #0xdc]
- add r6, r6, r0
- ldr r0, [sp, #0xd8]
- strb r5, [r0, r6]
-_02019FD4:
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, #0x8
- blt _02019F78
- ldr r0, [sp, #0x200]
- cmp r0, #0x0
- beq _02019FEE
- ldr r0, [sp, #0x204]
- add r0, r0, #0x2
- str r0, [sp, #0x204]
- b _02019FF4
-_02019FEE:
- ldr r0, [sp, #0x204]
- add r0, r0, #0x1
- str r0, [sp, #0x204]
-_02019FF4:
- ldr r0, [sp, #0x1fc]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x4
- str r0, [sp, #0x1fc]
- ldr r0, [sp, #0x1c]
- sub r1, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x1c]
- cmp r0, r1
- blt _02019F30
-_0201A008:
- ldr r0, [sp, #0x0]
- mov r2, #0x0
- add r0, #0x60
- str r0, [sp, #0x0]
- mov r1, #0x1
-_0201A012:
- ldr r0, [sp, #0x330]
- asr r0, r2
- tst r0, r1
- beq _0201A020
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A020:
- add r2, r2, #0x1
- cmp r2, #0x8
- blt _0201A012
- ldr r0, [sp, #0x50]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xf4]
- mov r0, #0x0
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- bgt _0201A03E
- bl FUN_0201A8BC
-_0201A03E:
- ldr r0, [sp, #0x5c]
- add r0, #0x8
- str r0, [sp, #0x5c]
-_0201A044:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0xf4]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x1f0]
- ldr r0, [sp, #0x18]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1f4]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- str r0, [sp, #0x2e4]
- sub r0, #0x8
- str r0, [sp, #0x2e4]
- cmp r0, #0x0
- ble _0201A0FE
- ble _0201A0FE
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x48]
- ldr r6, [sp, #0x38]
- lsl r5, r0, #0x2
- ldr r0, =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x48]
- str r6, [sp, #0xf0]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, =0x00003FE0
- ldr r5, [sp, #0x38]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0xec]
- str r0, [sp, #0xe8]
-_0201A09C:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xf0]
- str r5, [sp, #0x2e8]
- add r0, r5, r0
- ldr r5, [sp, #0x1f0]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _0201A0F0
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2ec]
- ldrb r5, [r0, r7]
- mov r12, r5
- mov r5, #0xf0
- asr r5, r6
- mov r6, r12
- and r6, r5
- ldr r5, [sp, #0x2ec]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x1f4]
- cmp r0, #0x0
- beq _0201A0F0
- ldr r6, [sp, #0x2e8]
- ldr r0, [sp, #0xec]
- add r6, r6, r0
- ldr r0, [sp, #0xe8]
- strb r5, [r0, r6]
-_0201A0F0:
- ldr r0, [sp, #0x2e4]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _0201A09C
-_0201A0FE:
- ldr r0, [sp, #0x1f4]
- cmp r0, #0x0
- beq _0201A10C
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A112
-_0201A10C:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A112:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x18]
- sub r1, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x18]
- cmp r0, r1
- blt _0201A044
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
-
-FUN_0201A12C: // 0x0201A12C
- lsl r1, r2, #0x2
- mul r1, r3
- ldr r3, [r5, #0x0]
- ldrb r2, [r5, #0x9]
- ldr r0, [sp, #0x0]
- ldr r3, [r3, #0x0]
- lsl r1, r1, #0x3
- bl FUN_02018848
- str r0, [sp, #0x1ec]
- cmp r4, #0x3
- bhi _0201A21E
- add r0, r4, r4
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0201A150:
-
- lsl r6, r0, #0
- lsl r6, r1, #3
- lsl r0, r7, #9
- lsl r4, r3, #16
- // jump table (using 16-bit offset)
- // .short _0201A158 - _0201A150 - 2; case 0
- // .short _0201A220 - _0201A150 - 2; case 1
- // .short _0201A3CA - _0201A150 - 2; case 2
- // .short _0201A56E - _0201A150 - 2; case 3
-_0201A158:
- ldr r0, [sp, #0x330]
- ldr r7, [sp, #0x1ec]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10c]
- mov r0, #0x0
- str r0, [sp, #0x1e8]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0201A21E
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x108]
-_0201A178:
- ldr r1, [sp, #0x10c]
- ldr r0, [sp, #0x1e8]
- mov r4, #0x0
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x310]
- ldr r0, [sp, #0x8]
- ldr r5, [sp, #0x5c]
- cmp r0, #0x0
- ble _0201A1FC
- ble _0201A1FC
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x48]
- ldr r2, [sp, #0x108]
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x100]
- ldr r0, [sp, #0x48]
- str r2, [sp, #0x104]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- ldr r2, [sp, #0x108]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0xfc]
- str r0, [sp, #0xf8]
-_0201A1C4:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x104]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A1F0
- ldr r0, [sp, #0x100]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x310]
- cmp r0, #0x0
- beq _0201A1F0
- ldr r0, [sp, #0xfc]
- add r2, r3, r0
- ldr r0, [sp, #0xf8]
- strb r1, [r0, r2]
-_0201A1F0:
- ldr r0, [sp, #0x8]
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r0
- blt _0201A1C4
-_0201A1FC:
- ldr r0, [sp, #0x310]
- cmp r0, #0x0
- beq _0201A20A
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A210
-_0201A20A:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A210:
- ldr r0, [sp, #0x1e8]
- add r7, #0x8
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x1e8]
- cmp r1, r0
- blt _0201A178
-_0201A21E:
- b _0201A8B6
-_0201A220:
- ldr r0, [sp, #0x48]
- ldr r7, [sp, #0x1ec]
- str r0, [sp, #0x1e0]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x4c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x124]
- mov r0, #0x0
- str r0, [sp, #0x1e4]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0201A2E6
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x120]
-_0201A24A:
- ldr r1, [sp, #0x124]
- ldr r0, [sp, #0x1e4]
- ldr r5, [sp, #0x5c]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x30c]
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x1e0]
- ldr r2, [sp, #0x120]
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x118]
- ldr r0, [sp, #0x1e0]
- str r2, [sp, #0x11c]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- ldr r2, [sp, #0x120]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- mov r4, #0x0
- str r2, [sp, #0x114]
- str r0, [sp, #0x110]
-_0201A28E:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x11c]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A2BA
- ldr r0, [sp, #0x118]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x30c]
- cmp r0, #0x0
- beq _0201A2BA
- ldr r0, [sp, #0x114]
- add r2, r3, r0
- ldr r0, [sp, #0x110]
- strb r1, [r0, r2]
-_0201A2BA:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, #0x8
- blt _0201A28E
- ldr r0, [sp, #0x30c]
- cmp r0, #0x0
- beq _0201A2D2
- ldr r0, [sp, #0x1e0]
- add r0, r0, #0x2
- str r0, [sp, #0x1e0]
- b _0201A2D8
-_0201A2D2:
- ldr r0, [sp, #0x1e0]
- add r0, r0, #0x1
- str r0, [sp, #0x1e0]
-_0201A2D8:
- ldr r0, [sp, #0x1e4]
- add r7, #0x8
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x1e4]
- cmp r1, r0
- blt _0201A24A
-_0201A2E6:
- ldr r0, [sp, #0x1ec]
- str r0, [sp, #0x308]
- add r0, #0x40
- str r0, [sp, #0x308]
- ldr r0, [sp, #0x4c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x13c]
- mov r0, #0x0
- str r0, [sp, #0x1dc]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0201A3C8
- ldr r0, [sp, #0x5c]
- mov r1, #0x7
- add r0, #0x8
- str r0, [sp, #0x5c]
- ldr r0, [sp, #0x58]
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x138]
-_0201A312:
- ldr r1, [sp, #0x13c]
- ldr r0, [sp, #0x1dc]
- ldr r7, [sp, #0x8]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- sub r7, #0x8
- mov r4, #0x0
- str r0, [sp, #0x1d8]
- ldr r5, [sp, #0x5c]
- cmp r7, #0x0
- ble _0201A398
- ble _0201A398
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x48]
- ldr r2, [sp, #0x138]
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x130]
- ldr r0, [sp, #0x48]
- str r2, [sp, #0x134]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- ldr r2, [sp, #0x138]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x12c]
- str r0, [sp, #0x128]
-_0201A360:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x134]
- add r2, r3, r0
- ldr r0, [sp, #0x308]
- ldrb r1, [r0, r4]
- cmp r1, #0x0
- beq _0201A38E
- ldr r0, [sp, #0x130]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x1d8]
- cmp r0, #0x0
- beq _0201A38E
- ldr r0, [sp, #0x12c]
- add r2, r3, r0
- ldr r0, [sp, #0x128]
- strb r1, [r0, r2]
-_0201A38E:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r7
- blt _0201A360
-_0201A398:
- ldr r0, [sp, #0x1d8]
- cmp r0, #0x0
- beq _0201A3B0
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A3B6
-// nop
-// _0201A3A8: .word 0x00003FE0
-// _0201A3AC: .word 0x00007FC0
-_0201A3B0:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A3B6:
- ldr r0, [sp, #0x308]
- add r0, #0x8
- str r0, [sp, #0x308]
- ldr r0, [sp, #0x1dc]
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x1dc]
- cmp r1, r0
- blt _0201A312
-_0201A3C8:
- b _0201A8B6
-_0201A3CA:
- ldr r0, [sp, #0x48]
- mov r1, #0x7
- str r0, [sp, #0x1d0]
- mov r0, #0x0
- str r0, [sp, #0x1d4]
- ldr r0, [sp, #0x330]
- ldr r7, [sp, #0x1ec]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x150]
- ldr r0, [sp, #0x58]
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x30]
-_0201A3E8:
- ldr r1, [sp, #0x150]
- ldr r0, [sp, #0x1d4]
- mov r4, #0x0
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x304]
- ldr r0, [sp, #0x8]
- ldr r5, [sp, #0x5c]
- cmp r0, #0x0
- ble _0201A46C
- ble _0201A46C
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x1d0]
- ldr r2, [sp, #0x30]
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x148]
- ldr r0, [sp, #0x1d0]
- str r2, [sp, #0x14c]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- ldr r2, [sp, #0x30]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x144]
- str r0, [sp, #0x140]
-_0201A434:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x14c]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A460
- ldr r0, [sp, #0x148]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x304]
- cmp r0, #0x0
- beq _0201A460
- ldr r0, [sp, #0x144]
- add r2, r3, r0
- ldr r0, [sp, #0x140]
- strb r1, [r0, r2]
-_0201A460:
- ldr r0, [sp, #0x8]
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r0
- blt _0201A434
-_0201A46C:
- ldr r0, [sp, #0x304]
- cmp r0, #0x0
- beq _0201A47A
- ldr r0, [sp, #0x1d0]
- add r0, r0, #0x2
- str r0, [sp, #0x1d0]
- b _0201A480
-_0201A47A:
- ldr r0, [sp, #0x1d0]
- add r0, r0, #0x1
- str r0, [sp, #0x1d0]
-_0201A480:
- ldr r0, [sp, #0x1d4]
- add r7, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x1d4]
- cmp r0, #0x8
- blt _0201A3E8
- ldr r0, [sp, #0x48]
- ldr r7, [sp, #0x1ec]
- add r0, #0x8
- str r0, [sp, #0x48]
- add r7, #0x80
- mov r0, #0x0
- mov r2, #0x1
-_0201A49A:
- ldr r1, [sp, #0x330]
- asr r1, r0
- tst r1, r2
- beq _0201A4A8
- ldr r1, [sp, #0x48]
- add r1, r1, #0x1
- str r1, [sp, #0x48]
-_0201A4A8:
- add r0, r0, #0x1
- cmp r0, #0x8
- blt _0201A49A
- ldr r0, [sp, #0x330]
- asr r0, r0, #0x8
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x164]
- mov r0, #0x0
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- ble _0201A56C
-_0201A4C4:
- ldr r1, [sp, #0x164]
- ldr r0, [sp, #0x14]
- mov r4, #0x0
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x300]
- ldr r0, [sp, #0x8]
- ldr r5, [sp, #0x5c]
- cmp r0, #0x0
- ble _0201A548
- ble _0201A548
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x48]
- ldr r2, [sp, #0x30]
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x15c]
- ldr r0, [sp, #0x48]
- str r2, [sp, #0x160]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- ldr r2, [sp, #0x30]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x158]
- str r0, [sp, #0x154]
-_0201A510:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x160]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A53C
- ldr r0, [sp, #0x15c]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x300]
- cmp r0, #0x0
- beq _0201A53C
- ldr r0, [sp, #0x158]
- add r2, r3, r0
- ldr r0, [sp, #0x154]
- strb r1, [r0, r2]
-_0201A53C:
- ldr r0, [sp, #0x8]
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r0
- blt _0201A510
-_0201A548:
- ldr r0, [sp, #0x300]
- cmp r0, #0x0
- beq _0201A556
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A55C
-_0201A556:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A55C:
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x1
- sub r1, #0x8
- add r7, #0x8
- str r0, [sp, #0x14]
- cmp r0, r1
- blt _0201A4C4
-_0201A56C:
- b _0201A8B6
-_0201A56E:
- ldr r0, [sp, #0x48]
- ldr r7, [sp, #0x1ec]
- str r0, [sp, #0x1c8]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r0, #0x0
- str r0, [sp, #0x1cc]
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x28]
-_0201A590:
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #0x1cc]
- ldr r5, [sp, #0x5c]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x2fc]
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x1c8]
- ldr r2, [sp, #0x28]
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x170]
- ldr r0, [sp, #0x1c8]
- str r2, [sp, #0x174]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- ldr r2, [sp, #0x28]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- mov r4, #0x0
- str r6, [sp, #0x24]
- str r2, [sp, #0x16c]
- str r0, [sp, #0x168]
-_0201A5D6:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x174]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A602
- ldr r0, [sp, #0x170]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x2fc]
- cmp r0, #0x0
- beq _0201A602
- ldr r0, [sp, #0x16c]
- add r2, r3, r0
- ldr r0, [sp, #0x168]
- strb r1, [r0, r2]
-_0201A602:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, #0x8
- blt _0201A5D6
- ldr r0, [sp, #0x2fc]
- cmp r0, #0x0
- beq _0201A61A
- ldr r0, [sp, #0x1c8]
- add r0, r0, #0x2
- str r0, [sp, #0x1c8]
- b _0201A620
-_0201A61A:
- ldr r0, [sp, #0x1c8]
- add r0, r0, #0x1
- str r0, [sp, #0x1c8]
-_0201A620:
- ldr r0, [sp, #0x1cc]
- add r7, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x1cc]
- cmp r0, #0x8
- blt _0201A590
- ldr r0, [sp, #0x1ec]
- str r0, [sp, #0x2f8]
- add r0, #0x40
- str r0, [sp, #0x2f8]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x1c0]
- mov r0, #0x0
- str r0, [sp, #0x1c4]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0x188]
- add r0, #0x8
- str r0, [sp, #0x188]
-_0201A644:
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #0x1c4]
- ldr r7, [sp, #0x8]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- sub r7, #0x8
- mov r4, #0x0
- str r0, [sp, #0x1bc]
- ldr r5, [sp, #0x188]
- cmp r7, #0x0
- ble _0201A6CA
- ble _0201A6CA
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x1c0]
- ldr r2, [sp, #0x28]
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x180]
- ldr r0, [sp, #0x1c0]
- str r2, [sp, #0x184]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- ldr r2, [sp, #0x28]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x17c]
- str r0, [sp, #0x178]
-_0201A692:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x184]
- add r2, r3, r0
- ldr r0, [sp, #0x2f8]
- ldrb r1, [r0, r4]
- cmp r1, #0x0
- beq _0201A6C0
- ldr r0, [sp, #0x180]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x1bc]
- cmp r0, #0x0
- beq _0201A6C0
- ldr r0, [sp, #0x17c]
- add r2, r3, r0
- ldr r0, [sp, #0x178]
- strb r1, [r0, r2]
-_0201A6C0:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r7
- blt _0201A692
-_0201A6CA:
- ldr r0, [sp, #0x1bc]
- cmp r0, #0x0
- beq _0201A6D8
- ldr r0, [sp, #0x1c0]
- add r0, r0, #0x2
- str r0, [sp, #0x1c0]
- b _0201A6DE
-_0201A6D8:
- ldr r0, [sp, #0x1c0]
- add r0, r0, #0x1
- str r0, [sp, #0x1c0]
-_0201A6DE:
- ldr r0, [sp, #0x2f8]
- add r0, #0x8
- str r0, [sp, #0x2f8]
- ldr r0, [sp, #0x1c4]
- add r0, r0, #0x1
- str r0, [sp, #0x1c4]
- cmp r0, #0x8
- blt _0201A644
- ldr r0, [sp, #0x48]
- ldr r7, [sp, #0x1ec]
- add r0, #0x8
- add r7, #0x80
- str r0, [sp, #0x48]
- str r0, [sp, #0x1b8]
- mov r0, #0x0
- mov r2, #0x1
-_0201A6FE:
- ldr r1, [sp, #0x330]
- asr r1, r0
- tst r1, r2
- beq _0201A70C
- ldr r1, [sp, #0x1b8]
- add r1, r1, #0x1
- str r1, [sp, #0x1b8]
-_0201A70C:
- add r0, r0, #0x1
- cmp r0, #0x8
- blt _0201A6FE
- ldr r0, [sp, #0x330]
- asr r0, r0, #0x8
- str r0, [sp, #0x44]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x19c]
- mov r0, #0x0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- ble _0201A7CE
-_0201A72A:
- ldr r1, [sp, #0x19c]
- ldr r0, [sp, #0x10]
- ldr r2, [sp, #0x28]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x2f4]
- ldr r0, [sp, #0x1b8]
- mov r3, #0x38
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
-// b _0201A74C
-// nop
-// _0201A748: .word 0x00007FC0
-// _0201A74C:
- ldr r5, [sp, #0x5c]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x194]
- ldr r0, [sp, #0x1b8]
- str r2, [sp, #0x198]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- ldr r2, [sp, #0x28]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- ldr r6, [sp, #0x24]
- mov r4, #0x0
- str r2, [sp, #0x190]
- str r0, [sp, #0x18c]
-_0201A774:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x198]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A7A0
- ldr r0, [sp, #0x194]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x2f4]
- cmp r0, #0x0
- beq _0201A7A0
- ldr r0, [sp, #0x190]
- add r2, r3, r0
- ldr r0, [sp, #0x18c]
- strb r1, [r0, r2]
-_0201A7A0:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, #0x8
- blt _0201A774
- ldr r0, [sp, #0x2f4]
- cmp r0, #0x0
- beq _0201A7B8
- ldr r0, [sp, #0x1b8]
- add r0, r0, #0x2
- str r0, [sp, #0x1b8]
- b _0201A7BE
-_0201A7B8:
- ldr r0, [sp, #0x1b8]
- add r0, r0, #0x1
- str r0, [sp, #0x1b8]
-_0201A7BE:
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x1
- sub r1, #0x8
- add r7, #0x8
- str r0, [sp, #0x10]
- cmp r0, r1
- blt _0201A72A
-_0201A7CE:
- ldr r0, [sp, #0x1ec]
- mov r2, #0x0
- str r0, [sp, #0x2f0]
- add r0, #0xc0
- str r0, [sp, #0x2f0]
- mov r1, #0x1
-_0201A7DA:
- ldr r0, [sp, #0x330]
- asr r0, r2
- tst r0, r1
- beq _0201A7E8
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A7E8:
- add r2, r2, #0x1
- cmp r2, #0x8
- blt _0201A7DA
- ldr r0, [sp, #0x44]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1b0]
- mov r0, #0x0
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- ble _0201A8B6
- ldr r0, [sp, #0x5c]
- add r0, #0x8
- str r0, [sp, #0x5c]
-_0201A808:
- ldr r1, [sp, #0x1b0]
- ldr r0, [sp, #0xc]
- ldr r7, [sp, #0x8]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- sub r7, #0x8
- mov r4, #0x0
- str r0, [sp, #0x1b4]
- ldr r5, [sp, #0x5c]
- cmp r7, #0x0
- ble _0201A88E
- ble _0201A88E
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x48]
- ldr r2, [sp, #0x28]
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x1a8]
- ldr r0, [sp, #0x48]
- str r2, [sp, #0x1ac]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, =0x00007FC0
- ldr r2, [sp, #0x28]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x1a4]
- str r0, [sp, #0x1a0]
-_0201A856:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x1ac]
- add r2, r3, r0
- ldr r0, [sp, #0x2f0]
- ldrb r1, [r0, r4]
- cmp r1, #0x0
- beq _0201A884
- ldr r0, [sp, #0x1a8]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x1b4]
- cmp r0, #0x0
- beq _0201A884
- ldr r0, [sp, #0x1a4]
- add r2, r3, r0
- ldr r0, [sp, #0x1a0]
- strb r1, [r0, r2]
-_0201A884:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r7
- blt _0201A856
-_0201A88E:
- ldr r0, [sp, #0x1b4]
- cmp r0, #0x0
- beq _0201A89C
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A8A2
-_0201A89C:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A8A2:
- ldr r0, [sp, #0x2f0]
- ldr r1, [sp, #0x4]
- add r0, #0x8
- str r0, [sp, #0x2f0]
- ldr r0, [sp, #0xc]
- sub r1, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- cmp r0, r1
- blt _0201A808
-_0201A8B6:
- ldr r0, [sp, #0x1ec]
- bl FreeToHeap
-
-FUN_0201A8BC: // 0x0201A8BC
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
- // clang-format on
-}
-#endif
-
-THUMB_FUNC void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3)
-{
- if (window->unk00->unk08[window->unk04].unk1e == 0)
- {
- FUN_0201A8E8(window, param1, param2, param3);
- }
- else
- {
- FUN_0201A9D4(window, param1, param2, param3);
- }
-}
-
-THUMB_FUNC void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 param3)
-{
- void *r2;
- int r5, r1, r3;
- int st4, stc;
- u32 st8;
- int i, j;
-
- r2 = window->unk0c;
- st4 = (param3 << 0x18) | (param3 << 0x10) | (param3 << 0x8) | param3;
- stc = window->height * window->width * 32;
- st8 = window->width;
-
- switch (param1)
- {
- case 0:
- for (i = 0; i < stc; i += 32)
- {
- r3 = param2;
- for (j = 0; j < 8; j++)
- {
- r5 = i + (j << 2);
- r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2);
-
- if (r1 < stc)
- {
- *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1);
- }
- else
- {
- *(u32 *)(r2 + r5) = (u32)st4;
- }
-
- r3++;
- }
- }
-
- break;
- case 1:
- r2 += stc - 4;
- for (i = 0; i < stc; i += 32)
- {
- r3 = param2;
- for (j = 0; j < 8; j++)
- {
- r5 = i + (j << 2);
- r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2);
-
- if (r1 < stc)
- {
- *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1);
- }
- else
- {
- *(u32 *)(r2 - r5) = (u32)st4;
- }
-
- r3++;
- }
- }
-
- break;
- case 2:
- case 3:
- break;
- }
-}
-
-THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 param3)
-{
-
- void *r2;
- int r5, r1, r3;
- int st4, stc;
- u32 st8;
- int i, j;
-
- r2 = (u8 *)window->unk0c;
- st4 = (param3 << 0x18) | (param3 << 0x10) | (param3 << 0x8) | param3;
- stc = window->height * window->width * 64;
- st8 = window->width;
-
- switch (param1)
- {
- case 0:
- for (i = 0; i < stc; i += 64)
- {
- r3 = param2;
- for (j = 0; j < 8; j++)
- {
- r5 = i + (j << 3);
- r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 3);
-
- if (r1 < stc)
- {
- *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1);
- }
- else
- {
- *(u32 *)(r2 + r5) = (u32)st4;
- }
-
- r5 += 4;
- r1 += 4;
- if (r1 < stc + 4)
- {
- *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1);
- }
- else
- {
- *(u32 *)(r2 + r5) = (u32)st4;
- }
-
- r3++;
- }
- }
-
- break;
- case 1:
- r2 += stc - 8;
- for (i = 0; i < stc; i += 64)
- {
- r3 = param2;
- for (j = 0; j < 8; j++)
- {
- r5 = i + (j << 3);
- r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 3);
-
- if (r1 < stc)
- {
- *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1);
- }
- else
- {
- *(u32 *)(r2 - r5) = (u32)st4;
- }
-
- r5 -= 4;
- r1 -= 4;
- if (r1 < stc - 4)
- {
- *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1);
- }
- else
- {
- *(u32 *)(r2 - r5) = (u32)st4;
- }
-
- r3++;
- }
- }
-
- break;
- case 2:
- case 3:
- break;
- }
-}
-
-THUMB_FUNC u8 FUN_0201AB08(struct Window *window)
-{
- return window->unk04;
-}
-
-THUMB_FUNC u8 GetWindowWidth(struct Window *window)
-{
- return window->width;
-}
-THUMB_FUNC u8 GetWindowHeight(struct Window *window)
-{
- return window->height;
-}
-THUMB_FUNC u8 FUN_0201AB14(struct Window *window)
-{
- return window->unk05;
-}
-THUMB_FUNC u8 FUN_0201AB18(struct Window *window)
-{
- return window->unk06;
-}
-THUMB_FUNC void FUN_0201AB1C(struct Window *window, u8 param1)
-{
- window->unk05 = param1;
-}
-THUMB_FUNC void FUN_0201AB20(struct Window *window, u8 param1)
-{
- window->unk06 = param1;
-}
-THUMB_FUNC void FUN_0201AB24(struct Window *window, u8 param1)
-{
- window->unk09 = param1;
-}
-
-THUMB_FUNC u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path)
-{
- void *ptr = AllocAndReadFile(heap_id, path);
- window->unk00 = ptr;
- u32 st0;
- NNS_G2dGetUnpackedBGCharacterData(ptr, &st0);
-
- return st0;
-}
-
-THUMB_FUNC u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path)
-{
- void *ptr = AllocAndReadFile(heap_id, path);
- window->unk00 = ptr;
- u32 st0;
- NNS_G2dGetUnpackedPaletteData(ptr, &st0);
-
- return st0;
-}
-
-THUMB_FUNC void FUN_0201AB60(struct UnkStruct_02016B94_2 *param0)
-{
- FUN_0201AC78(param0);
- FUN_0201AB78(param0);
-
- param0->unk04 = 0;
- param0->unk06 = 0;
-}
-
-THUMB_FUNC void FUN_0201AB78(struct UnkStruct_02016B94_2 *param0)
-{
- if ((param0->unk06 & 1) != 0)
- {
- FUN_02017D68(0, param0->unk08[0].unk08, param0->unk08[0].unk10 * 2, param0->unk08[0].unk0c);
- }
-
- if ((param0->unk06 & 2) != 0)
- {
- FUN_02017D68(1, param0->unk08[1].unk08, param0->unk08[1].unk10 * 2, param0->unk08[1].unk0c);
- }
-
- if ((param0->unk06 & 4) != 0)
- {
- FUN_02017D68(2, param0->unk08[2].unk08, param0->unk08[2].unk10 * 2, param0->unk08[2].unk0c);
- }
-
- if ((param0->unk06 & 8) != 0)
- {
- FUN_02017D68(3, param0->unk08[3].unk08, param0->unk08[3].unk10 * 2, param0->unk08[3].unk0c);
- }
-
- if ((param0->unk06 & 0x10) != 0)
- {
- FUN_02017D68(4, param0->unk08[4].unk08, param0->unk08[4].unk10 * 2, param0->unk08[4].unk0c);
- }
-
- if ((param0->unk06 & 0x20) != 0)
- {
- FUN_02017D68(5, param0->unk08[5].unk08, param0->unk08[5].unk10 * 2, param0->unk08[5].unk0c);
- }
-
- if ((param0->unk06 & 0x40) != 0)
- {
- FUN_02017D68(6, param0->unk08[6].unk08, param0->unk08[6].unk10 * 2, param0->unk08[6].unk0c);
- }
-
- if ((param0->unk06 & 0x80) != 0)
- {
- FUN_02017D68(7, param0->unk08[7].unk08, param0->unk08[7].unk10 * 2, param0->unk08[7].unk0c);
- }
-}
-
-THUMB_FUNC void FUN_0201AC68(struct UnkStruct_02016B94_2 *param0, u32 param1)
-{
- param0->unk06 |= 1 << param1;
-}
-
-THUMB_FUNC void FUN_0201AC78(struct UnkStruct_02016B94_2 *param0)
-{
- if ((param0->unk04 & 1) != 0)
- {
- reg_G2_BG0OFS = (u32)(
- (param0->unk08[0].unk14 & 0x1ff) | ((param0->unk08[0].unk18 << 0x10) & 0x1ff0000));
- }
-
- if ((param0->unk04 & 2) != 0)
- {
- reg_G2_BG1OFS = (u32)(
- (param0->unk08[1].unk14 & 0x1ff) | ((param0->unk08[1].unk18 << 0x10) & 0x1ff0000));
- }
-
- if ((param0->unk04 & 4) != 0)
- {
- if (param0->unk08[2].unk1c == 0)
- {
- reg_G2_BG2OFS = (u32)(
- (param0->unk08[2].unk14 & 0x1ff) | ((param0->unk08[2].unk18 << 0x10) & 0x1ff0000));
- }
- else
- {
- struct Mtx22 st38;
- MTX22_2DAffine(
- &st38, param0->unk08[2].unk20, param0->unk08[2].unk24, param0->unk08[2].unk28, 2);
- G2x_SetBGyAffine_(reg_G2_BG2P,
- &st38,
- param0->unk08[2].unk2c,
- param0->unk08[2].unk30,
- param0->unk08[2].unk14,
- param0->unk08[2].unk18);
- }
- }
-
- if ((param0->unk04 & 8) != 0)
- {
- if (param0->unk08[3].unk1c == 0)
- {
- reg_G2_BG3OFS = (u32)(
- (param0->unk08[3].unk14 & 0x1ff) | ((param0->unk08[3].unk18 << 0x10) & 0x1ff0000));
- }
- else
- {
- struct Mtx22 st28;
- MTX22_2DAffine(
- &st28, param0->unk08[3].unk20, param0->unk08[3].unk24, param0->unk08[3].unk28, 2);
- G2x_SetBGyAffine_(reg_G2_BG3P,
- &st28,
- param0->unk08[3].unk2c,
- param0->unk08[3].unk30,
- param0->unk08[3].unk14,
- param0->unk08[3].unk18);
- }
- }
-
- if ((param0->unk04 & 0x10) != 0)
- {
- reg_G2S_DB_BG0OFS = (u32)(
- (param0->unk08[4].unk14 & 0x1ff) | ((param0->unk08[4].unk18 << 0x10) & 0x1ff0000));
- }
-
- if ((param0->unk04 & 0x20) != 0)
- {
- reg_G2S_DB_BG1OFS = (u32)(
- (param0->unk08[5].unk14 & 0x1ff) | ((param0->unk08[5].unk18 << 0x10) & 0x1ff0000));
- }
-
- if ((param0->unk04 & 0x40) != 0)
- {
- if (param0->unk08[6].unk1c == 0)
- {
- reg_G2S_DB_BG2OFS = (u32)(
- (param0->unk08[6].unk14 & 0x1ff) | ((param0->unk08[6].unk18 << 0x10) & 0x1ff0000));
- }
- else
- {
- struct Mtx22 st18;
- MTX22_2DAffine(
- &st18, param0->unk08[6].unk20, param0->unk08[6].unk24, param0->unk08[6].unk28, 2);
- G2x_SetBGyAffine_(reg_G2S_DB_BG2P,
- &st18,
- param0->unk08[6].unk2c,
- param0->unk08[6].unk30,
- param0->unk08[6].unk14,
- param0->unk08[6].unk18);
- }
- }
-
- if ((param0->unk04 & 0x80) != 0)
- {
- if (param0->unk08[7].unk1c == 0)
- {
- reg_G2S_DB_BG3OFS = (u32)(
- (param0->unk08[7].unk14 & 0x1ff) | ((param0->unk08[7].unk18 << 0x10) & 0x1ff0000));
- }
- else
- {
- struct Mtx22 st08;
- MTX22_2DAffine(
- &st08, param0->unk08[7].unk20, param0->unk08[7].unk24, param0->unk08[7].unk28, 2);
- G2x_SetBGyAffine_(reg_G2S_DB_BG3P,
- &st08,
- param0->unk08[7].unk2c,
- param0->unk08[7].unk30,
- param0->unk08[7].unk14,
- param0->unk08[7].unk18);
- }
- }
-}
-
-THUMB_FUNC void FUN_0201AEE4(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3)
-{
- FUN_02017B8C(&param0->unk08[param1], param2, param3);
- param0->unk04 |= 1 << param1;
-}
-
-THUMB_FUNC void FUN_0201AF08(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u16 param3)
-{
- FUN_0201AF2C(&param0->unk08[param1], param2, param3);
- param0->unk04 |= 1 << param1;
-}
-
-THUMB_FUNC void FUN_0201AF2C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, u16 val)
-{
- switch (param1)
- {
- case 0:
- param0->unk20 = val;
- break;
- case 1:
- param0->unk20 += val;
- break;
- case 2:
- param0->unk20 -= val;
- break;
- }
-}
-
-THUMB_FUNC void FUN_0201AF50(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3)
-{
- FUN_0201AF74(&param0->unk08[param1], param2, param3);
- param0->unk04 |= 1 << param1;
-}
-
-THUMB_FUNC void FUN_0201AF74(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val)
-{
- switch (param1 - 9)
- {
- case 0:
- param0->unk2c = val;
- break;
- case 1:
- param0->unk2c += val;
- break;
- case 2:
- param0->unk2c -= val;
- break;
- case 3:
- param0->unk30 = val;
- break;
- case 4:
- param0->unk30 += val;
- break;
- case 5:
- param0->unk30 -= val;
- break;
- }
-}
-
-THUMB_FUNC u32 FUN_0201AFBC(
- struct UnkStruct_02016B94_2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4)
-{
- void *st18;
- u16 r6;
- u8 st14;
- u8 st10;
- u8 r5;
- u8 i;
-
- if (param0->unk08[param1].unk08 == NULL)
- {
- return 0;
- }
-
- r6 = FUN_02017FFC((u8)(param2 >> 3), (u8)(param3 >> 3), param0->unk08[param1].unk1d);
- st18 = FUN_020187B0(param1);
-
- st14 = (u8)(param2 & 7);
- st10 = (u8)(param3 & 7);
-
- if (param0->unk08[param1].unk1e == 0)
- {
- u16 *stc = param0->unk08[param1].unk08;
- u8 *ptr = AllocFromHeapAtEnd(param0->unk00, 0x40);
-
- st18 += ((stc[r6] & 0x3ff) << 5);
- for (i = 0; i < 0x20; i++)
- {
- ptr[(i << 1)] = (u8)(((u8 *)st18)[i] & 0xf);
- ptr[(i << 1) + 1] = (u8)(((u8 *)st18)[i] >> 4);
- }
-
- FUN_0201B118(param0, (u8)((stc[r6] >> 0xa) & 3), ptr);
-
- r5 = ptr[st14 + (st10 << 3)];
- FreeToHeap(ptr);
-
- if ((param4[0] & (1 << r5)) != 0)
- {
- return 1;
- }
- }
- else
- {
- if (param0->unk08[param1].unk1c != 1)
- {
- u16 *r4 = param0->unk08[param1].unk08;
- u8 *ptr = AllocFromHeapAtEnd(param0->unk00, 0x40);
-
- memcpy(ptr, st18 + ((r4[r6] & 0x3ff) << 6), 0x40);
-
- FUN_0201B118(param0, (u8)((r4[r6] >> 0xa) & 3), ptr);
-
- r5 = ptr[st14 + (st10 << 3)];
- FreeToHeap(ptr);
- }
- else
- {
- r5 = ((u8 *)st18)[(((u8 *)param0->unk08[param1].unk08)[r6] << 6) + st14 + (st10 << 3)];
- }
-
- while (TRUE)
- {
- if (param4[0] == 0xffff)
- {
- break;
- }
- if (r5 == (u8)(param4[0]))
- {
- return 1;
- }
- }
- }
- return 0;
-}
-
-THUMB_FUNC void FUN_0201B118(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 *param2)
-{
- u8 i, j;
- if (param1 != 0)
- {
- u8 *ptr = AllocFromHeapAtEnd(param0->unk00, 0x40);
-
- if ((param1 & 1) != 0)
- {
- for (i = 0; i < 8; i++)
- {
- for (j = 0; j < 8; j++)
- {
- ptr[i * 8 + j] = param2[i * 8 + (7 - j)];
- }
- }
-
- memcpy(param2, ptr, 0x40);
- }
-
- if ((param1 & 2) != 0)
- {
- for (i = 0; i < 8; i++)
- {
- u8 *r3 = &ptr[i * 8];
- u8 *r2 = &param2[(7 - i) * 8];
- for (u32 j = 8; j > 0; j--)
- {
- *r3++ = *r2++;
- }
- }
-
- memcpy(param2, ptr, 0x40);
- }
-
- FreeToHeap(ptr);
- }
-}
diff --git a/arm9/src/unk_0202E29C.c b/arm9/src/unk_0202E29C.c
index 2b088d6f..52ee3143 100644
--- a/arm9/src/unk_0202E29C.c
+++ b/arm9/src/unk_0202E29C.c
@@ -432,7 +432,7 @@ THUMB_FUNC s32 FUN_0202E844(u32 param0)
count++;
}
- GF_AssertFail();
+ GF_ASSERT(0);
return 0;
}
diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c
index ef9a6193..e5188db2 100644
--- a/arm9/src/unk_0202F150.c
+++ b/arm9/src/unk_0202F150.c
@@ -93,10 +93,7 @@ THUMB_FUNC u32 FUN_0202F150(u32 param0, u32 param1)
{
r4 = 1;
- if (UNK_021C59F4.unk04 == 0)
- {
- GF_AssertFail();
- }
+ GF_ASSERT(UNK_021C59F4.unk04 != 0);
}
UNK_021C59F4.unk04->unk65C = 0;
@@ -1191,7 +1188,7 @@ THUMB_FUNC void FUN_020304D4(u32 param0)
return;
}
- GF_AssertFail();
+ GF_ASSERT(0);
}
THUMB_FUNC void FUN_020304F0(u32 param0)
@@ -1202,7 +1199,7 @@ THUMB_FUNC void FUN_020304F0(u32 param0)
return;
}
- GF_AssertFail();
+ GF_ASSERT(0);
}
THUMB_FUNC void FUN_0203050C()
@@ -1741,7 +1738,7 @@ THUMB_FUNC u32 FUN_02030B3C(u32 param0, u8 *param1, u32 param2)
{
if (FUN_02031190() != 0)
{
- GF_AssertFail();
+ GF_ASSERT(0);
return 0;
}
diff --git a/include/GX_layers.h b/include/GX_layers.h
index aca0154b..03c20df6 100644
--- a/include/GX_layers.h
+++ b/include/GX_layers.h
@@ -5,12 +5,6 @@
#include "global.h"
#include "gx.h"
-struct GX_LayerData
-{
- u32 EngineB_DISPCNT_LayerMask;
- u32 EngineA_DISPCNT_LayerMask;
-};
-
typedef enum {
GX_LAYER_TOGGLE_OFF,
diff --git a/include/bg_window.h b/include/bg_window.h
new file mode 100644
index 00000000..24ed152b
--- /dev/null
+++ b/include/bg_window.h
@@ -0,0 +1,424 @@
+#ifndef POKEDIAMOND_UNK_02016B94_H
+#define POKEDIAMOND_UNK_02016B94_H
+
+#include "NNS_g2d.h"
+#include "global.h"
+#include "GX_layers.h"
+#include "MI_uncompress.h"
+#include "OS_cache.h"
+#include "gx.h"
+#include "heap.h"
+#include "math_util.h"
+
+struct BgTemplate
+{
+ u32 x;
+ u32 y;
+ u32 bufferSize;
+ u32 baseTile;
+
+ u8 size;
+ u8 colorMode;
+ u8 screenBase;
+ u8 charBase;
+ u8 bgExtPltt;
+ u8 priority;
+ u8 areaOver;
+ u8 unk17; // probably paddding
+ u32 mosaic;
+};
+
+struct Bg
+{
+ void *tilemapBuffer;
+ u32 bufferSize;
+ u32 baseTile;
+
+ fx32 hOffset;
+ fx32 vOffset;
+
+ u8 mode;
+ u8 size;
+ u8 colorMode;
+ u8 tileSize;
+ u16 rotation;
+ u16 unk22; // probably padding
+ fx32 xScale;
+ fx32 yScale;
+ fx32 centerX;
+ fx32 centerY;
+};
+
+struct BgConfig
+{
+ u32 heap_id;
+ u16 scrollScheduled;
+ u16 bufferTransferScheduled;
+ struct Bg bgs[8];
+};
+
+struct Bitmap
+{
+ const u8 *pixels;
+ u16 width;
+ u16 height;
+};
+
+struct WindowTemplate
+{
+ u8 bgId;
+ u8 tilemapLeft;
+ u8 tilemapTop;
+ u8 width;
+ u8 height;
+ u8 paletteNum;
+ u16 baseTile;
+};
+
+struct Window
+{
+ struct BgConfig *bgConfig;
+ u8 bgId;
+ u8 tilemapLeft;
+ u8 tilemapTop;
+ u8 width;
+ u8 height;
+ u8 paletteNum;
+ u16 baseTile : 15;
+ u16 colorMode : 1;
+ void *pixelBuffer;
+};
+
+enum GFBppMode
+{
+ GF_BG_CLR_4BPP = 0,
+ GF_BG_CLR_8BPP,
+};
+
+enum GFBgLayer
+{
+ GF_BG_LYR_MAIN_0 = 0,
+ GF_BG_LYR_MAIN_1,
+ GF_BG_LYR_MAIN_2,
+ GF_BG_LYR_MAIN_3,
+ GF_BG_LYR_SUB_0,
+ GF_BG_LYR_SUB_1,
+ GF_BG_LYR_SUB_2,
+ GF_BG_LYR_SUB_3,
+ GF_BG_LYR_MAIN_CNT = 4,
+ GF_BG_LYR_SUB_CNT = 4,
+ GF_BG_LYR_MAIN_FIRST = GF_BG_LYR_MAIN_0,
+ GF_BG_LYR_SUB_FIRST = GF_BG_LYR_SUB_0,
+
+ GF_BG_LYR_MAIN_0_F = 1 << (GF_BG_LYR_MAIN_0 - GF_BG_LYR_MAIN_FIRST),
+ GF_BG_LYR_MAIN_1_F = 1 << (GF_BG_LYR_MAIN_1 - GF_BG_LYR_MAIN_FIRST),
+ GF_BG_LYR_MAIN_2_F = 1 << (GF_BG_LYR_MAIN_2 - GF_BG_LYR_MAIN_FIRST),
+ GF_BG_LYR_MAIN_3_F = 1 << (GF_BG_LYR_MAIN_3 - GF_BG_LYR_MAIN_FIRST),
+ GF_BG_LYR_SUB_0_F = 1 << (GF_BG_LYR_SUB_0 - GF_BG_LYR_SUB_FIRST),
+ GF_BG_LYR_SUB_1_F = 1 << (GF_BG_LYR_SUB_1 - GF_BG_LYR_SUB_FIRST),
+ GF_BG_LYR_SUB_2_F = 1 << (GF_BG_LYR_SUB_2 - GF_BG_LYR_SUB_FIRST),
+ GF_BG_LYR_SUB_3_F = 1 << (GF_BG_LYR_SUB_3 - GF_BG_LYR_SUB_FIRST),
+
+ GF_BG_LYR_UNALLOC = 0xFF,
+};
+
+enum GFBgType
+{
+ GF_BG_TYPE_TEXT = 0,
+ GF_BG_TYPE_AFFINE,
+ GF_BG_TYPE_256x16PLTT,
+};
+
+enum GFBgCntSet
+{
+ GF_BG_CNT_SET_COLOR_MODE = 0,
+ GF_BG_CNT_SET_SCREEN_BASE,
+ GF_BG_CNT_SET_CHAR_BASE,
+};
+
+enum GFBgScreenSize
+{
+ GF_BG_SCR_SIZE_128x128 = 0,
+ GF_BG_SCR_SIZE_256x256,
+ GF_BG_SCR_SIZE_256x512,
+ GF_BG_SCR_SIZE_512x256,
+ GF_BG_SCR_SIZE_512x512,
+ GF_BG_SCR_SIZE_1024x1024
+};
+
+enum BgPosAdjustOp
+{
+ // Text layers
+ BG_POS_OP_SET_X = 0,
+ BG_POS_OP_ADD_X,
+ BG_POS_OP_SUB_X,
+ BG_POS_OP_SET_Y,
+ BG_POS_OP_ADD_Y,
+ BG_POS_OP_SUB_Y,
+
+ // Affine layers
+ BG_POS_OP_SET_ROT = 0,
+ BG_POS_OP_ADD_ROT,
+ BG_POS_OP_SUB_ROT,
+ BG_POS_OP_SET_CENTERX = 9,
+ BG_POS_OP_ADD_CENTERX,
+ BG_POS_OP_SUB_CENTERX,
+ BG_POS_OP_SET_CENTERY,
+ BG_POS_OP_ADD_CENTERY,
+ BG_POS_OP_SUB_CENTERY,
+};
+
+struct BgConfig *BgConfig_Alloc(u32 heap_id);
+u32 BgConfig_GetHeapId(struct BgConfig *bgConfig);
+void SetBothScreensModesAndDisable(const struct GraphicsModes *modes);
+void SetScreenModeAndDisable(const struct GraphicsModes *gfxModes, u32 whichScreen);
+void InitBgFromTemplate(
+ struct BgConfig *bgConfig, u8 bgId, const struct BgTemplate *template, u8 bgMode);
+void SetBgControlParam(struct BgConfig *config, u8 bgId, u32 attr, u8 value);
+u8 TranslateGFBgModePairToGXScreenSize(u8 size, u32 bgMode);
+void GetBgScreenDimensions(u32 screenSize, u8 *width_p, u8 *height_p);
+void FreeBgTilemapBuffer(struct BgConfig *bgConfig, u32 bgId);
+void SetBgPriority(u32 bgId, u16 priority);
+void ToggleBgLayer(u32 bgId, GX_LayerToggle toggle);
+void BgSetPosTextAndCommit(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 val);
+fx32 Bg_GetXpos(struct BgConfig *bgConfig, u32 bgId);
+fx32 Bg_GetYpos(struct BgConfig *bgConfig, u32 bgId);
+void Bg_SetTextDimAndAffineParams(struct BgConfig *bgConfig,
+ u32 bgId,
+ u32 txOp,
+ fx32 txVal,
+ struct Mtx22 *mtx,
+ fx32 centerX,
+ fx32 centerY);
+void Bg_SetPosText(struct Bg *bg, u32 op, fx32 val);
+void SetBgAffine(struct BgConfig *bgConfig,
+ u32 bgId,
+ struct Mtx22 *mtx,
+ fx32 centerX,
+ fx32 centerY);
+void BgAffineReset(struct BgConfig *bgConfig, u32 bgId);
+void CopyOrUncompressTilemapData(const void *src, void *dest, u32 size);
+void BgCommitTilemapBufferToVram(struct BgConfig *bgConfig, u32 bgId);
+void BgCopyOrUncompressTilemapBufferRangeToVram(
+ struct BgConfig *bgConfig, u32 bgId, u32 *src, u32 size, u32 tileOffset);
+void LoadBgVramScr(u32 bgId, void *buffer_p, u32 offset, u32 size);
+void BG_LoadScreenTilemapData(struct BgConfig *bgConfig, u32 bgId, void *src, u32 numTiles);
+void BG_LoadCharTilesData(
+ struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 offset, u32 numTiles);
+void BG_LoadCharPixelData(
+ struct BgConfig *bgConfig, u32 bgId, u32 *charData, u32 size, u32 offset);
+void LoadBgVramChar(u32 bgId, void *buffer_p, u32 offset, u32 size);
+void BG_ClearCharDataRange(u32 bgId, u32 size, u32 offset, u32 heap_id);
+void BG_FillCharDataRange(
+ struct BgConfig *param0, u32 bgId, u32 fillValue, u32 count, u32 offset);
+void BG_LoadPlttData(u32 bgId, void *plttData, u32 size, u32 offset);
+void BG_SetMaskColor(u32 bgId, u32 value);
+u16 GetTileMapIndexFromCoords(u8 x, u8 y, u8 screenSize);
+u16 GetSrcTileMapIndexFromCoords(u8 x, u8 y, u8 width, u8 height);
+void LoadRectToBgTilemapRect(struct BgConfig *bgConfig,
+ u32 bgId,
+ void *src,
+ u8 dstX,
+ u8 dstY,
+ u8 width,
+ u8 height);
+void CopyToBgTilemapRect(struct BgConfig *bgConfig,
+ u32 bgId,
+ u8 dstX,
+ u8 dstY,
+ u8 dstWidth,
+ u8 dstHeight,
+ void *src,
+ u8 srcX,
+ u8 srcY,
+ u8 srcWidth,
+ u8 srcHeight);
+void CopyRectToBgTilemapRect(struct BgConfig *bgConfig,
+ u32 bgId,
+ u8 dstX,
+ u8 dstY,
+ u8 dstWidth,
+ u8 dstHeight,
+ void *src,
+ u8 srcX,
+ u8 srcY,
+ u8 srcWidth,
+ u8 srcHeight);
+void CopyBgTilemapRectText(struct Bg *bg,
+ u8 dstX,
+ u8 dstY,
+ u8 dstWidth,
+ u8 dstHeight,
+ u16 *src,
+ u8 srcX,
+ u8 srcY,
+ u8 srcWidth,
+ u8 srcHeight,
+ u8 adjustForSrcDims);
+void CopyBgTilemapRectAffine(struct Bg *bg,
+ u8 dstX,
+ u8 dstY,
+ u8 dstWidth,
+ u8 dstHeight,
+ u8 *src,
+ u8 srcX,
+ u8 srcY,
+ u8 srcWidth,
+ u8 srcHeight,
+ u8 adjustForSrcDims);
+void FillBgTilemapRect(struct BgConfig *bgConfig,
+ u32 bgId,
+ u16 fillValue,
+ u8 x,
+ u8 y,
+ u8 width,
+ u8 height,
+ u8 paletteNum);
+void FillBgTilemapRectText(struct Bg *bg,
+ u16 fillValue,
+ u8 x,
+ u8 y,
+ u8 width,
+ u8 height,
+ u8 paletteNum);
+void FillBgTilemapRectAffine(
+ struct Bg *bg, u8 fillValue, u8 x, u8 y, u8 width, u8 height);
+void BgTilemapRectChangePalette(struct BgConfig *bgConfig,
+ u32 bgId,
+ u8 x,
+ u8 y,
+ u8 width,
+ u8 height,
+ u8 paletteNum);
+void BgClearTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId);
+void BgFillTilemapBufferAndCommit(struct BgConfig *bgConfig, u32 bgId, u16 fillValue);
+void BgFillTilemapBufferAndSchedule(struct BgConfig *bgConfig, u32 bgId, u16 fillValue);
+void *BgGetCharPtr(u32 bgId);
+void Convert4bppTo8bppInternal(u8 *src4bpp, u32 size, u8 (*dest8bpp), u8 paletteNum);
+u8 *Convert4bppTo8bpp(u8 *src4Bpp, u32 size, u8 paletteNum, u32 heap_id);
+void *GetBgTilemapBuffer(struct BgConfig *bgConfig, u8 bgId);
+u16 GetBgAffineRotation(struct BgConfig *bgConfig, u32 bgId);
+u8 GetBgPriority(struct BgConfig *bgConfig, u32 bgId);
+void BlitBitmapRect4Bit(const struct Bitmap *src,
+ const struct Bitmap *dst,
+ u16 srcX,
+ u16 srcY,
+ u16 dstX,
+ u16 dstY,
+ u16 width,
+ u16 height,
+ u16 colorKey);
+void BlitBitmapRect8Bit(const struct Bitmap *src,
+ const struct Bitmap *dst,
+ u16 srcX,
+ u16 srcY,
+ u16 dstX,
+ u16 dstY,
+ u16 width,
+ u16 height,
+ u16 colorKey);
+void FillBitmapRect4Bit(
+ struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue);
+void FillBitmapRect8Bit(
+ struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue);
+struct Window *AllocWindows(u32 heap_id, s32 size);
+void InitWindow(struct Window *window);
+BOOL WindowIsInUse(struct Window *window);
+void AddWindowParameterized(struct BgConfig *param0,
+ struct Window *window,
+ u8 bgId,
+ u8 tilemapLeft,
+ u8 tilemapTop,
+ u8 width,
+ u8 height,
+ u8 paletteNum,
+ u16 baseTile);
+void AddTextWindowTopLeftCorner(struct BgConfig *param0,
+ struct Window *window,
+ u8 width,
+ u8 height,
+ u16 baseTile,
+ u8 paletteNum);
+void AddWindow(struct BgConfig *bgConfig,
+ struct Window *window,
+ const struct WindowTemplate *template);
+void RemoveWindow(struct Window *window);
+void WindowArray_dtor(struct Window *windows, int count);
+void CopyWindowToVram(struct Window *window);
+void ScheduleWindowCopyToVram(struct Window *window);
+void PutWindowTilemap(struct Window *window);
+void PutWindowTilemapRectAnchoredTopLeft(struct Window *window, u8 width, u8 height);
+void ClearWindowTilemap(struct Window *window);
+void PutWindowTilemap_TextMode(struct Window *param0);
+void PutWindowTilemap_AffineMode(struct Window *window);
+void ClearWindowTilemapText(struct Window *window);
+void ClearWindowTilemapAffine(struct Window *window);
+void CopyWindowToVram_TextMode(struct Window *window);
+void ScheduleWindowCopyToVram_TextMode(struct Window *window);
+void CopyWindowToVram_AffineMode(struct Window *window);
+void ScheduleWindowCopyToVram_AffineMode(struct Window *window);
+void CopyWindowPixelsToVram_TextMode(struct Window *window);
+void ClearWindowTilemapAndCopyToVram(struct Window *window);
+void ClearWindowTilemapAndScheduleTransfer(struct Window *window);
+void ClearWindowTilemapAndCopyToVram_TextMode(struct Window *window);
+void ClearWindowTilemapAndScheduleTransfer_TextMode(struct Window *window);
+void ClearWindowTilemapAndCopyToVram_AffineMode(struct Window *window);
+void ClearWindowTilemapAndScheduleTransfer_AffineMode(struct Window *window);
+void FillWindowPixelBuffer(struct Window *window, u8 param1);
+void BlitBitmapRectToWindow(struct Window *window,
+ const void *src,
+ u16 srcX,
+ u16 srcY,
+ u16 srcWidth,
+ u16 srcHeight,
+ u16 dstX,
+ u16 dstY,
+ u16 dstWidth,
+ u16 dstHeight);
+void BlitBitmapRect(struct Window *window,
+ void *param1,
+ u16 param2,
+ u16 param3,
+ u16 param4,
+ u16 param5,
+ u16 param6,
+ u16 param7,
+ u16 param8,
+ u16 param9,
+ u16 param10);
+void FillWindowPixelRect(struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
+void CopyGlyphToWindow(
+ struct Window * window,
+ const char * src,
+ u16 srcWidth,
+ u16 srcHeight,
+ u16 width,
+ u16 height,
+ u16 glyph
+);
+void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3);
+void ScrollWindow4bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue);
+void ScrollWindow8bpp(struct Window *window, u32 param1, u8 param2, u8 fillValue);
+u8 GetWindowBgId(struct Window *window);
+u8 GetWindowWidth(struct Window *window);
+u8 GetWindowHeight(struct Window *window);
+u8 GetWindowX(struct Window *window);
+u8 GetWindowY(struct Window *window);
+void MoveWindowX(struct Window *window, u8 x);
+void MoveWindowY(struct Window *window, u8 y);
+void SetWindowPaletteNum(struct Window *window, u8 paletteNum);
+NNSG2dCharacterData * LoadCharacterDataFromFile(void **char_ret, u32 heap_id, const char *path);
+NNSG2dPaletteData * LoadPaletteDataFromFile(void **pltt_ret, u32 heap_id, const char *path);
+void DoScheduledBgGpuUpdates(struct BgConfig *bgConfig);
+void DoScheduledBgTilemapBufferTransfers(struct BgConfig *bgConfig);
+void ScheduleBgTilemapBufferTransfer(struct BgConfig *bgConfig, u32 bgId);
+void ApplyScheduledBgPosUpdate(struct BgConfig *bgConfig);
+void ScheduleSetBgPosText(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value);
+void ScheduleSetBgAffineRotation(struct BgConfig *bgConfig, u32 bgId, u32 op, u16 value);
+void Bg_SetAffineRotation(struct Bg *bg, u32 op, u16 val);
+void ScheduleSetBgAffinePos(struct BgConfig *bgConfig, u32 bgId, u32 op, fx32 value);
+void Bg_SetAffinePos(struct Bg *bg, u32 op, fx32 val);
+u32 DoesPixelAtScreenXYMatchPtrVal(struct BgConfig *bgConfig, u8 bgId, u8 x, u8 y, u16 *src);
+void ApplyFlipFlagsToTile(struct BgConfig *bgConfig, u8 flag, u8 *src);
+
+#endif // POKEDIAMOND_UNK_02016B94_H
diff --git a/include/gf_gfx_loader.h b/include/gf_gfx_loader.h
index b95075dc..cb7de269 100644
--- a/include/gf_gfx_loader.h
+++ b/include/gf_gfx_loader.h
@@ -1,10 +1,10 @@
#ifndef POKEDIAMOND_GF_GFX_LOADER_H
#define POKEDIAMOND_GF_GFX_LOADER_H
-#include "unk_02016B94.h"
+#include "bg_window.h"
-u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id);
-void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id);
+u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id);
+void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct BgConfig * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id);
void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 baseAddr, u32 szByte, u32 heap_id);
void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id);
u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 whichRoutine, u32 baseAddr, u32 szByte, BOOL isCompressed, u32 heap_id);
diff --git a/include/list_menu_cursor.h b/include/list_menu_cursor.h
index e4a4b6b9..a2337e9a 100644
--- a/include/list_menu_cursor.h
+++ b/include/list_menu_cursor.h
@@ -1,7 +1,7 @@
#ifndef POKEDIAMOND_LIST_MENU_CURSOR_H
#define POKEDIAMOND_LIST_MENU_CURSOR_H
-#include "unk_02016B94.h"
+#include "bg_window.h"
// TODO: Move to its own header, and fill it out
struct ListMenuCursor
diff --git a/include/script.h b/include/script.h
index 01bba305..75b65f90 100644
--- a/include/script.h
+++ b/include/script.h
@@ -4,7 +4,7 @@
#include "global.h"
#include "msgdata.h"
#include "save_block_2.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
struct ScriptContext;
@@ -28,7 +28,7 @@ struct UnkStruct_02046444
struct UnkSavStruct80
{
u8 padding[0x8];
- struct UnkStruct_02016B94_2 *unk08;
+ struct BgConfig *unk08;
struct SaveBlock2 *saveBlock2; //0xC
struct UnkStruct_0204639C *unk10;
u8 padding2[0x8];
diff --git a/include/script_buffers.h b/include/script_buffers.h
index 9a742545..b9f0e268 100644
--- a/include/script_buffers.h
+++ b/include/script_buffers.h
@@ -4,7 +4,7 @@
#include "pokemon.h"
#include "pokemon_storage_system.h"
#include "trainer_data.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
struct UnkStruct_0200AA80_sub_sub
{
diff --git a/include/text.h b/include/text.h
index c9984d75..034447c7 100644
--- a/include/text.h
+++ b/include/text.h
@@ -3,7 +3,7 @@
#include "global.h"
#include "font.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
#define CHAR_0 0x00A2
diff --git a/include/text_02054590.h b/include/text_02054590.h
index 77170e70..b2f4898b 100644
--- a/include/text_02054590.h
+++ b/include/text_02054590.h
@@ -3,18 +3,18 @@
#include "global.h"
#include "options.h"
-#include "unk_02016B94.h"
+#include "bg_window.h"
#include "string16.h"
void FUN_02054590(u32 param0, u32 param1);
-void FUN_020545B8(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2);
+void FUN_020545B8(struct BgConfig *param0, struct Window *param1, u32 param2);
void FUN_02054608(struct Window *param0, struct Options *options);
void FUN_0205464C(struct Window *param0);
u16 FUN_02054658(struct Window * window, struct String *str, struct Options *options, u8 param3);
u16 DrawFieldMessage(struct Window * window, struct String *str, u8 fontId, u32 speed, u8 a4, u32 a5);
u8 FUN_020546C8(u32 param0);
-void FUN_020546E0(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2, u32 param3);
+void FUN_020546E0(struct BgConfig *param0, struct Window *param1, u32 param2, u32 param3);
void FUN_02054744(struct Window *param0, u32 param1, u32 param2);
#endif // POKEDIAMOND_UNK_02054590_H
diff --git a/include/timer3.h b/include/timer3.h
index 3220c7a3..a49cf3e6 100644
--- a/include/timer3.h
+++ b/include/timer3.h
@@ -4,12 +4,6 @@
#include "global.h"
-struct Timer3Data
-{
- BOOL NeedReset;
- vu64 Timer3Counter;
-};
-
void Init_Timer3();
void CountUpTimer3();
u64 internal_GetTimer3Count();
diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h
deleted file mode 100644
index d3648560..00000000
--- a/include/unk_02016B94.h
+++ /dev/null
@@ -1,340 +0,0 @@
-#ifndef POKEDIAMOND_UNK_02016B94_H
-#define POKEDIAMOND_UNK_02016B94_H
-
-#include "global.h"
-#include "GX_layers.h"
-#include "MI_uncompress.h"
-#include "OS_cache.h"
-#include "gx.h"
-#include "heap.h"
-#include "math_util.h"
-
-#define reg_G2_BG2P (u32 *)0x4000020
-#define reg_G2_BG3P (u32 *)0x4000030
-#define reg_G2S_DB_BG2P (u32 *)0x4001020
-#define reg_G2S_DB_BG3P (u32 *)0x4001030
-struct UnkStruct_02016B94_1
-{
- u32 unk00;
- u32 unk04;
- u32 unk08;
- u32 unk0c;
-
- u8 unk10;
- u8 unk11;
- u8 unk12;
- u8 unk13;
- u8 unk14;
- u8 unk15;
- u8 unk16;
- u8 unk17; // probably paddding
- u32 unk18;
-};
-
-struct UnkStruct_02016B94_2
-{
- u32 unk00;
- u16 unk04;
- u16 unk06;
-
- struct UnkStruct_02016B94_2_sub
- {
- void *unk08;
- u32 unk0c;
- u32 unk10;
-
- fx32 unk14;
- fx32 unk18;
-
- u8 unk1c;
- u8 unk1d;
- u8 unk1e;
- u8 unk1f;
- u16 unk20;
- u16 unk22; // probably padding
- fx32 unk24;
- fx32 unk28;
- fx32 unk2c;
- fx32 unk30;
- } unk08[8];
-};
-
-struct UnkStruct_02016B94_3
-{
- void *unk00;
- u16 unk04;
- u16 unk06;
-};
-
-struct UnkStruct_02016B94_4
-{
- u8 unk0;
- u8 unk1;
- u8 unk2;
- u8 unk3;
- u8 unk4;
- u8 unk5;
- u16 unk6;
-};
-
-struct Window
-{
- struct UnkStruct_02016B94_2 *unk00;
- u8 unk04;
- u8 unk05;
- u8 unk06;
- u8 width;
- u8 height;
- u8 unk09;
- u16 unk0a_0 : 15;
- u16 unk0b_15 : 1;
- void *unk0c;
-};
-
-struct UnkStruct_02016B94_2 *FUN_02016B94(u32 heap_id);
-u32 FUN_02016BB8(u32 *param0);
-void FUN_02016BBC(const struct GraphicsModes *modes);
-void FUN_02016BF4(const struct GraphicsModes *param0, u32 param1);
-void FUN_02016C18(
- struct UnkStruct_02016B94_2 *param0, u8 param1, const struct UnkStruct_02016B94_1 *param2, u8 param3);
-void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3);
-u8 FUN_020177DC(u8 param0, u32 param1);
-void FUN_02017850(u32 param0, u8 *param1, u8 *param2);
-void FUN_020178A0(struct UnkStruct_02016B94_2 *param0, u32 param1);
-void FUN_020178BC(u32 param0, u16 param1);
-void FUN_0201797C(u32 param0, GX_LayerToggle toggle);
-void FUN_020179E0(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 val);
-fx32 FUN_02017B48(struct UnkStruct_02016B94_2 *param0, u32 param1);
-fx32 FUN_02017B54(struct UnkStruct_02016B94_2 *param0, u32 param1);
-void FUN_02017B60(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u32 param2,
- fx32 param3,
- struct Mtx22 *param4,
- fx32 param5,
- fx32 param6);
-void FUN_02017B8C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val);
-void FUN_02017BD0(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- struct Mtx22 *param2,
- fx32 param3,
- fx32 param4);
-void FUN_02017C6C(struct UnkStruct_02016B94_2 *param0, u32 param1);
-void FUN_02017C98(const void *param0, void *param1, u32 param2);
-void FUN_02017CD0(struct UnkStruct_02016B94_2 *param0, u32 param1);
-void FUN_02017CE8(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4);
-void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size);
-void FUN_02017DFC(struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3);
-void FUN_02017E14(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4);
-void FUN_02017E40(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4);
-void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size);
-void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id);
-void FUN_02017F48(
- struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4);
-void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size);
-void FUN_02017FE4(u32 param0, u32 param1);
-u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2);
-u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3);
-void FUN_02018148(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- void *param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6);
-void FUN_02018170(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- void *param6,
- u8 param7,
- u8 param8,
- u8 param9,
- u8 param10);
-void FUN_020181EC(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- void *param6,
- u8 param7,
- u8 param8,
- u8 param9,
- u8 param10);
-void FUN_02018268(struct UnkStruct_02016B94_2_sub *param0,
- u8 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u16 *param5,
- u8 param6,
- u8 param7,
- u8 param8,
- u8 param9,
- u8 param10);
-void FUN_020183DC(struct UnkStruct_02016B94_2_sub *param0,
- u8 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 *param5,
- u8 param6,
- u8 param7,
- u8 param8,
- u8 param9,
- u8 param10);
-void FUN_02018540(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u16 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6,
- u8 param7);
-void FUN_02018590(struct UnkStruct_02016B94_2_sub *param0,
- u16 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6);
-void FUN_02018640(
- struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5);
-void FUN_020186B4(struct UnkStruct_02016B94_2 *param0,
- u32 param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6);
-void FUN_02018744(struct UnkStruct_02016B94_2 *param0, u32 param1);
-void FUN_02018768(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2);
-void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2);
-void *FUN_020187B0(u32 param0);
-void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3);
-u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2];
-void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u8 param1);
-u16 FUN_02018878(struct UnkStruct_02016B94_2 *param0, u32 param1);
-u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1);
-void BlitBitmapRect4Bit(struct UnkStruct_02016B94_3 *param0,
- struct UnkStruct_02016B94_3 *param1,
- u16 param2,
- u16 param3,
- u16 param4,
- u16 param5,
- u16 param6,
- u16 param7,
- u16 param8);
-void BlitBitmapRect8Bit(struct UnkStruct_02016B94_3 *param0,
- struct UnkStruct_02016B94_3 *param1,
- u16 param2,
- u16 param3,
- u16 param4,
- u16 param5,
- u16 param6,
- u16 param7,
- u16 param8);
-void FUN_02018E88(
- struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5);
-void FUN_02018F4C(
- struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5);
-void *AllocWindows(u32 heap_id, s32 size);
-void InitWindow(struct Window *param0);
-BOOL FUN_02019048(struct Window *param0);
-void FUN_02019064(struct UnkStruct_02016B94_2 *param0,
- struct Window *param1,
- u8 param2,
- u8 param3,
- u8 param4,
- u8 param5,
- u8 param6,
- u8 param7,
- u16 param8);
-void FUN_020190EC(struct UnkStruct_02016B94_2 *param0,
- struct Window *param1,
- u8 param2,
- u8 param3,
- u16 param4,
- u8 param5);
-void FUN_02019150(struct UnkStruct_02016B94_2 *param0,
- struct Window *param1,
- const struct UnkStruct_02016B94_4 *param2);
-void FUN_02019178(struct Window *param0);
-void FUN_020191A4(struct Window *param0, int param1);
-void CopyWindowToVram(struct Window *param0);
-void FUN_02019220(struct Window *param0);
-void FUN_02019270(struct Window *param0);
-void FUN_0201928C(struct Window *param0, u8 param1, u8 param2);
-void FUN_020192B8(struct Window *param0);
-void FUN_020192D4(struct Window *param0);
-void FUN_02019358(struct Window *param0);
-void FUN_020193B4(struct Window *param0);
-void FUN_02019444(struct Window *param0);
-void FUN_0201949C(struct Window *window);
-void FUN_020194C8(struct Window *window);
-void FUN_020194E0(struct Window *window);
-void FUN_0201951C(struct Window *window);
-void FUN_02019548(struct Window *window);
-void FUN_02019570(struct Window *window);
-void FUN_0201958C(struct Window *window);
-void FUN_020195A8(struct Window *window);
-void FUN_020195D0(struct Window *window);
-void FUN_020195E4(struct Window *window);
-void FUN_0201960C(struct Window *window);
-void FillWindowPixelBuffer(struct Window *window, u8 param1);
-void BlitBitmapRectToWindow(struct Window *window,
- const void *src,
- u16 srcX,
- u16 srcY,
- u16 srcWidth,
- u16 srcHeight,
- u16 dstX,
- u16 dstY,
- u16 dstWidth,
- u16 dstHeight);
-void BlitBitmapRect(struct Window *window,
- void *param1,
- u16 param2,
- u16 param3,
- u16 param4,
- u16 param5,
- u16 param6,
- u16 param7,
- u16 param8,
- u16 param9,
- u16 param10);
-void FillWindowPixelRect(struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
-void FUN_0201974C(
- struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6);
-void ScrollWindow(struct Window *window, u32 param1, u8 param2, u8 param3);
-void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 param3);
-void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 param3);
-u8 FUN_0201AB08(struct Window *window);
-u8 GetWindowWidth(struct Window *window);
-u8 GetWindowHeight(struct Window *window);
-u8 FUN_0201AB14(struct Window *window);
-u8 FUN_0201AB18(struct Window *window);
-void FUN_0201AB1C(struct Window *window, u8 param1);
-void FUN_0201AB20(struct Window *window, u8 param1);
-void FUN_0201AB24(struct Window *window, u8 param1);
-u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path);
-u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path);
-void FUN_0201AB60(struct UnkStruct_02016B94_2 *param0);
-void FUN_0201AB78(struct UnkStruct_02016B94_2 *param0);
-void FUN_0201AC68(struct UnkStruct_02016B94_2 *param0, u32 param1);
-void FUN_0201AC78(struct UnkStruct_02016B94_2 *param0);
-void FUN_0201AEE4(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3);
-void FUN_0201AF08(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u16 param3);
-void FUN_0201AF2C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, u16 val);
-void FUN_0201AF50(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3);
-void FUN_0201AF74(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val);
-u32 FUN_0201AFBC(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4);
-void FUN_0201B118(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 *param2);
-
-#endif // POKEDIAMOND_UNK_02016B94_H