diff options
author | Akira Akashi <rubenru09@aol.com> | 2021-06-10 22:42:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-10 22:42:43 +0100 |
commit | aa185f6be5696ae4bd6c9f8093eb13a06cb2cc79 (patch) | |
tree | 8f56e977e7e4f69c1c48249118074f500857f195 | |
parent | 6bede5a9393e2796c110e6304f455293a240cd7b (diff) | |
parent | e8d0b49a6864d6077a5d7b1c123c49481fe14bfe (diff) |
Merge branch 'master' into unkk_020851B8
167 files changed, 11536 insertions, 13332 deletions
@@ -1,6 +1,6 @@ # Pokémon Diamond -[](https://travis-ci.com/pret/pokediamond) +[](https://github.com/pret/pokediamond/actions/workflows/build.yml) This is a decompilation of Pokémon Diamond. 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 *)®_G2_BG0CNT; +} + +static inline GXBg01Control G2S_GetBG0Control(void) +{ + return *(volatile GXBg01Control *)®_G2S_DB_BG0CNT; +} + +static inline GXBg01Control G2_GetBG1Control(void) +{ + return *(volatile GXBg01Control *)®_G2_BG1CNT; +} + +static inline GXBg01Control G2S_GetBG1Control(void) +{ + return *(volatile GXBg01Control *)®_G2S_DB_BG1CNT; +} + +static inline GXBg23ControlText G2_GetBG2ControlText(void) +{ + return *(volatile GXBg23ControlText *)®_G2_BG2CNT; +} + +static inline GXBg23ControlText G2S_GetBG2ControlText(void) +{ + return *(volatile GXBg23ControlText *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23ControlAffine G2_GetBG2ControlAffine(void) +{ + return *(volatile GXBg23ControlAffine *)®_G2_BG2CNT; +} + +static inline GXBg23ControlAffine G2S_GetBG2ControlAffine(void) +{ + return *(volatile GXBg23ControlAffine *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23Control256x16Pltt G2_GetBG2Control256x16Pltt(void) +{ + return *(volatile GXBg23Control256x16Pltt *)®_G2_BG2CNT; +} + +static inline GXBg23Control256x16Pltt G2S_GetBG2Control256x16Pltt(void) +{ + return *(volatile GXBg23Control256x16Pltt *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23Control256Bmp G2_GetBG2Control256Bmp(void) +{ + return *(volatile GXBg23Control256Bmp *)®_G2_BG2CNT; +} + +static inline GXBg23Control256Bmp G2S_GetBG2Control256Bmp(void) +{ + return *(volatile GXBg23Control256Bmp *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23ControlDCBmp G2_GetBG2ControlDCBmp(void) +{ + return *(volatile GXBg23ControlDCBmp *)®_G2_BG2CNT; +} + +static inline GXBg23ControlDCBmp G2S_GetBG2ControlDCBmp(void) +{ + return *(volatile GXBg23ControlDCBmp *)®_G2S_DB_BG2CNT; +} + +static inline GXBg2ControlLargeBmp G2_GetBG2ControlLargeBmp(void) +{ + return *(volatile GXBg2ControlLargeBmp *)®_G2_BG2CNT; +} + +static inline GXBg2ControlLargeBmp G2S_GetBG2ControlLargeBmp(void) +{ + return *(volatile GXBg2ControlLargeBmp *)®_G2S_DB_BG2CNT; +} + +static inline GXBg23ControlText G2_GetBG3ControlText(void) +{ + return *(volatile GXBg23ControlText *)®_G2_BG3CNT; +} + +static inline GXBg23ControlText G2S_GetBG3ControlText(void) +{ + return *(volatile GXBg23ControlText *)®_G2S_DB_BG3CNT; +} + +static inline GXBg23ControlAffine G2_GetBG3ControlAffine(void) +{ + return *(volatile GXBg23ControlAffine *)®_G2_BG3CNT; +} + +static inline GXBg23ControlAffine G2S_GetBG3ControlAffine(void) +{ + return *(volatile GXBg23ControlAffine *)®_G2S_DB_BG3CNT; +} + +static inline GXBg23Control256x16Pltt G2_GetBG3Control256x16Pltt(void) +{ + return *(volatile GXBg23Control256x16Pltt *)®_G2_BG3CNT; +} + +static inline GXBg23Control256x16Pltt G2S_GetBG3Control256x16Pltt(void) +{ + return *(volatile GXBg23Control256x16Pltt *)®_G2S_DB_BG3CNT; +} + +static inline GXBg23Control256Bmp G2_GetBG3Control256Bmp(void) +{ + return *(volatile GXBg23Control256Bmp *)®_G2_BG3CNT; +} + +static inline GXBg23Control256Bmp G2S_GetBG3Control256Bmp(void) +{ + return *(volatile GXBg23Control256Bmp *)®_G2S_DB_BG3CNT; +} + +static inline GXBg23ControlDCBmp G2_GetBG3ControlDCBmp(void) +{ + return *(volatile GXBg23ControlDCBmp *)®_G2_BG3CNT; +} + +static inline GXBg23ControlDCBmp G2S_GetBG3ControlDCBmp(void) +{ + return *(volatile GXBg23ControlDCBmp *)®_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)®_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)®_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)®_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)®_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_(®_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(¶m0->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(¶m0->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, ¶m1, 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(¶m0->unk08[param1], - param2, - param3, - param4, - param5, - (u16 *)param6, - param7, - param8, - param9, - param10, - 0); - } - else - { - FUN_020183DC(¶m0->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(¶m0->unk08[param1], - param2, - param3, - param4, - param5, - (u16 *)param6, - param7, - param8, - param9, - param10, - 1); - } - else - { - FUN_020183DC(¶m0->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(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7); - } - else - { - FUN_02018640(¶m0->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(¶m0->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(¶m0->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(¶m0->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 = ¶m2[(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 |