summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_1.s4
-rw-r--r--asm/battle_records.s4
-rw-r--r--asm/berry_pouch.s4
-rw-r--r--asm/bg.s3421
-rw-r--r--asm/clear_save_data_screen.s4
-rw-r--r--asm/credits.s8
-rw-r--r--asm/diploma.s4
-rw-r--r--asm/egg_hatch.s4
-rw-r--r--asm/fame_checker.s4
-rw-r--r--asm/hall_of_fame.s8
-rw-r--r--asm/hof_pc.s2
-rw-r--r--asm/intro.s10
-rw-r--r--asm/item_menu.s4
-rw-r--r--asm/item_pc.s4
-rw-r--r--asm/learn_move.s4
-rw-r--r--asm/link.s4
-rw-r--r--asm/link_rfu.s4
-rw-r--r--asm/link_rfu_3.s4
-rw-r--r--asm/mail.s4
-rw-r--r--asm/main_menu.s4
-rw-r--r--asm/map_preview_screen.s2
-rw-r--r--asm/mystery_gift_menu.s4
-rw-r--r--asm/naming_screen.s4
-rw-r--r--asm/oak_speech.s8
-rw-r--r--asm/option_menu.s4
-rw-r--r--asm/overworld.s8
-rw-r--r--asm/party_menu.s4
-rw-r--r--asm/pokedex_screen.s4
-rw-r--r--asm/pokemon_special_anim.s4
-rw-r--r--asm/pokemon_storage_system.s2
-rw-r--r--asm/pokemon_summary_screen.s4
-rw-r--r--asm/region_map.s4
-rw-r--r--asm/seagallop.s4
-rw-r--r--asm/shop.s4
-rw-r--r--asm/slot_machine.s4
-rw-r--r--asm/start_menu.s4
-rw-r--r--asm/teachy_tv.s4
-rw-r--r--asm/title_screen.s4
-rw-r--r--asm/tm_case.s4
-rw-r--r--asm/trade.s8
-rw-r--r--asm/trainer_card.s4
-rw-r--r--asm/union_room_chat.s4
-rw-r--r--asm/unk_8147AA8.s4
-rw-r--r--asm/unk_814D5C8.s4
-rw-r--r--asm/unk_81507FC.s4
-rw-r--r--asm/window.s30
-rw-r--r--asm/wireless_communication_status_screen.s4
47 files changed, 115 insertions, 3536 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index e25330776..c31187f21 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -178,11 +178,11 @@ _0800F320: .4byte gUnknown_824EE34
sub_800F324: @ 800F324
push {lr}
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0800F344 @ =gUnknown_8248320
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r0, _0800F348 @ =gUnknown_8248330
bl InitWindows
bl DeactivateAllTextPrinters
diff --git a/asm/battle_records.s b/asm/battle_records.s
index 4f7ed298b..239b59dd4 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -64,11 +64,11 @@ _080CD29A:
bl AllocZeroed
str r0, [r4]
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080CD2C8 @ =gUnknown_83F6C7C
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, [r4]
movs r0, 0x3
bl SetBgTilemapBuffer
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index feb1333b0..02abba1df 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -395,11 +395,11 @@ sub_813D07C: @ 813D07C
movs r1, 0
bl memset
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0813D0E0 @ =gUnknown_846434C
movs r0, 0
movs r2, 0x3
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, [r4]
adds r1, 0xC
movs r0, 0x1
diff --git a/asm/bg.s b/asm/bg.s
deleted file mode 100644
index 93bb880e2..000000000
--- a/asm/bg.s
+++ /dev/null
@@ -1,3421 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ResetBgs
-ResetBgs: @ 8001028
- push {lr}
- bl ResetBgControlStructs
- ldr r1, _0800103C @ =gUnknown_30008D0
- movs r0, 0
- strh r0, [r1, 0x10]
- bl SetTextModeAndHideBgs
- pop {r0}
- bx r0
- .align 2, 0
-_0800103C: .4byte gUnknown_30008D0
- thumb_func_end ResetBgs
-
- thumb_func_start SetBgModeInternal
-SetBgModeInternal: @ 8001040
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08001054 @ =gUnknown_30008D0
- ldrh r2, [r3, 0x10]
- ldr r1, _08001058 @ =0x0000fff8
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x10]
- bx lr
- .align 2, 0
-_08001054: .4byte gUnknown_30008D0
-_08001058: .4byte 0x0000fff8
- thumb_func_end SetBgModeInternal
-
- thumb_func_start GetBgMode
-GetBgMode: @ 800105C
- ldr r0, _08001068 @ =gUnknown_30008D0
- ldrb r1, [r0, 0x10]
- movs r0, 0x7
- ands r0, r1
- bx lr
- .align 2, 0
-_08001068: .4byte gUnknown_30008D0
- thumb_func_end GetBgMode
-
- thumb_func_start ResetBgControlStructs
-ResetBgControlStructs: @ 800106C
- push {lr}
- ldr r2, _08001084 @ =gUnknown_30008D0
- ldr r0, _08001088 @ =gUnknown_81E9F64
- ldr r0, [r0]
- adds r1, r2, 0
- adds r1, 0xC
-_08001078:
- str r0, [r1]
- subs r1, 0x4
- cmp r1, r2
- bge _08001078
- pop {r0}
- bx r0
- .align 2, 0
-_08001084: .4byte gUnknown_30008D0
-_08001088: .4byte gUnknown_81E9F64
- thumb_func_end ResetBgControlStructs
-
- thumb_func_start Unused_ResetBgControlStruct
-Unused_ResetBgControlStruct: @ 800108C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsInvalidBg
- lsls r0, 24
- cmp r0, 0
- bne _080010AA
- ldr r1, _080010B0 @ =gUnknown_30008D0
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, _080010B4 @ =gUnknown_81E9F64
- ldr r1, [r1]
- str r1, [r0]
-_080010AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080010B0: .4byte gUnknown_30008D0
-_080010B4: .4byte gUnknown_81E9F64
- thumb_func_end Unused_ResetBgControlStruct
-
- thumb_func_start SetBgControlAttributes
-SetBgControlAttributes: @ 80010B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- ldr r5, [sp, 0x34]
- ldr r6, [sp, 0x38]
- mov r12, r6
- ldr r6, [sp, 0x3C]
- mov r8, r6
- lsls r0, 24
- lsrs r7, r0, 24
- str r7, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x4]
- lsls r5, 24
- lsrs r5, 24
- mov r0, r12
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- adds r0, r7, 0
- bl IsInvalidBg
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0
- bne _080011D0
- ldr r2, _080011E0 @ =gUnknown_30008D0
- mov r8, r2
- mov r0, r10
- cmp r0, 0xFF
- beq _0800112C
- lsls r2, r7, 2
- add r2, r8
- movs r1, 0x3
- ands r1, r0
- ldrb r3, [r2, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0800112C:
- cmp r6, 0xFF
- beq _08001144
- lsls r1, r7, 2
- add r1, r8
- movs r0, 0x1F
- ands r6, r0
- lsls r3, r6, 2
- ldrb r2, [r1, 0x1]
- subs r0, 0x9C
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x1]
-_08001144:
- mov r1, r9
- cmp r1, 0xFF
- beq _08001160
- lsls r1, r7, 2
- add r1, r8
- movs r0, 0x3
- mov r2, r9
- ands r2, r0
- lsls r3, r2, 2
- ldrb r2, [r1]
- subs r0, 0x10
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
-_08001160:
- ldr r6, [sp, 0x4]
- cmp r6, 0xFF
- beq _08001176
- lsls r1, r7, 2
- add r1, r8
- lsls r3, r6, 7
- ldrb r2, [r1, 0x1]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x1]
-_08001176:
- cmp r5, 0xFF
- beq _0800118E
- lsls r1, r7, 2
- add r1, r8
- movs r0, 0x3
- ands r5, r0
- lsls r3, r5, 4
- ldrb r2, [r1]
- subs r0, 0x34
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
-_0800118E:
- cmp r4, 0xFF
- beq _080011A6
- lsls r1, r7, 2
- add r1, r8
- movs r0, 0x1
- ands r4, r0
- lsls r3, r4, 6
- ldrb r2, [r1]
- subs r0, 0x42
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
-_080011A6:
- ldr r0, [sp, 0xC]
- cmp r0, 0xFF
- beq _080011BC
- lsls r1, r7, 2
- add r1, r8
- lsls r3, r0, 7
- ldrb r2, [r1]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
-_080011BC:
- ldr r1, [sp]
- lsls r0, r1, 2
- add r0, r8
- mov r2, r12
- strb r2, [r0, 0x2]
- strb r2, [r0, 0x3]
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_080011D0:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080011E0: .4byte gUnknown_30008D0
- thumb_func_end SetBgControlAttributes
-
- thumb_func_start GetBgControlAttribute
-GetBgControlAttribute: @ 80011E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- bl IsInvalidBg
- lsls r0, 24
- cmp r0, 0
- bne _08001290
- ldr r1, _0800121C @ =gUnknown_30008D0
- lsls r2, r4, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 31
- adds r3, r1, 0
- cmp r0, 0
- beq _08001290
- subs r0, r5, 0x1
- cmp r0, 0x7
- bhi _08001290
- lsls r0, 2
- ldr r1, _08001220 @ =_08001224
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800121C: .4byte gUnknown_30008D0
-_08001220: .4byte _08001224
- .align 2, 0
-_08001224:
- .4byte _08001244
- .4byte _0800124E
- .4byte _08001258
- .4byte _08001262
- .4byte _0800126C
- .4byte _08001274
- .4byte _0800127E
- .4byte _08001288
-_08001244:
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- b _08001292
-_0800124E:
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 30
- lsrs r0, 30
- b _08001292
-_08001258:
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 25
- lsrs r0, 27
- b _08001292
-_08001262:
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 30
- b _08001292
-_0800126C:
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsrs r0, 7
- b _08001292
-_08001274:
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 30
- b _08001292
-_0800127E:
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 31
- b _08001292
-_08001288:
- adds r0, r2, r3
- ldrb r0, [r0]
- lsrs r0, 7
- b _08001292
-_08001290:
- movs r0, 0xFF
-_08001292:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetBgControlAttribute
-
- thumb_func_start LoadBgVram
-LoadBgVram: @ 8001298
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- bl IsInvalidBg
- lsls r0, 24
- cmp r0, 0
- bne _08001310
- ldr r1, _080012D8 @ =gUnknown_30008D0
- lsls r0, r4, 2
- adds r1, r0, r1
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08001310
- cmp r5, 0x1
- beq _080012DC
- cmp r5, 0x2
- beq _080012E4
- movs r2, 0xFF
- b _08001314
- .align 2, 0
-_080012D8: .4byte gUnknown_30008D0
-_080012DC:
- ldrb r0, [r1, 0x1]
- lsls r0, 30
- lsrs r0, 16
- b _080012EC
-_080012E4:
- ldrb r0, [r1, 0x1]
- lsls r0, 25
- lsrs r0, 27
- lsls r0, 11
-_080012EC:
- adds r0, r6, r0
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xC0
- lsls r1, 19
- adds r1, r0, r1
- mov r0, r8
- adds r2, r7, 0
- movs r3, 0
- bl RequestDma3Copy
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08001314
-_08001310:
- movs r0, 0xFF
- b _08001316
-_08001314:
- adds r0, r2, 0
-_08001316:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end LoadBgVram
-
- thumb_func_start ShowBgInternal
-ShowBgInternal: @ 8001320
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsInvalidBg
- lsls r0, 24
- cmp r0, 0
- bne _0800138E
- ldr r5, _08001394 @ =gUnknown_30008D0
- lsls r0, r4, 2
- adds r2, r0, r5
- ldrb r3, [r2]
- lsls r0, r3, 31
- cmp r0, 0
- beq _0800138E
- lsls r1, r3, 26
- lsrs r1, 30
- ldrb r2, [r2, 0x1]
- lsls r0, r2, 30
- lsrs r0, 28
- orrs r1, r0
- movs r0, 0x40
- ands r0, r3
- orrs r1, r0
- lsrs r0, r2, 7
- lsls r0, 7
- orrs r1, r0
- lsls r2, 25
- lsrs r2, 27
- lsls r2, 8
- orrs r1, r2
- lsrs r0, r3, 7
- lsls r0, 13
- orrs r1, r0
- lsls r0, r3, 28
- lsrs r0, 30
- lsls r0, 14
- orrs r1, r0
- lsls r0, r4, 25
- movs r2, 0x80
- lsls r2, 20
- adds r0, r2
- lsrs r0, 24
- bl SetGpuReg
- adds r1, r4, 0
- adds r1, 0x8
- movs r0, 0x1
- lsls r0, r1
- ldrh r1, [r5, 0x10]
- orrs r0, r1
- ldr r1, _08001398 @ =0x00000f07
- ands r0, r1
- strh r0, [r5, 0x10]
-_0800138E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08001394: .4byte gUnknown_30008D0
-_08001398: .4byte 0x00000f07
- thumb_func_end ShowBgInternal
-
- thumb_func_start HideBgInternal
-HideBgInternal: @ 800139C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsInvalidBg
- lsls r0, 24
- cmp r0, 0
- bne _080013C2
- ldr r2, _080013C8 @ =gUnknown_30008D0
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0x1
- lsls r1, r0
- ldrh r0, [r2, 0x10]
- bics r0, r1
- ldr r1, _080013CC @ =0x00000f07
- ands r0, r1
- strh r0, [r2, 0x10]
-_080013C2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080013C8: .4byte gUnknown_30008D0
-_080013CC: .4byte 0x00000f07
- thumb_func_end HideBgInternal
-
- thumb_func_start SyncBgVisibilityAndMode
-SyncBgVisibilityAndMode: @ 80013D0
- push {lr}
- movs r0, 0
- bl GetGpuReg
- ldr r1, _080013EC @ =0x0000f0f8
- ands r1, r0
- ldr r0, _080013F0 @ =gUnknown_30008D0
- ldrh r0, [r0, 0x10]
- orrs r1, r0
- movs r0, 0
- bl SetGpuReg
- pop {r0}
- bx r0
- .align 2, 0
-_080013EC: .4byte 0x0000f0f8
-_080013F0: .4byte gUnknown_30008D0
- thumb_func_end SyncBgVisibilityAndMode
-
- thumb_func_start SetTextModeAndHideBgs
-SetTextModeAndHideBgs: @ 80013F4
- push {lr}
- movs r0, 0
- bl GetGpuReg
- ldr r1, _0800140C @ =0x0000f0f8
- ands r1, r0
- movs r0, 0
- bl SetGpuReg
- pop {r0}
- bx r0
- .align 2, 0
-_0800140C: .4byte 0x0000f0f8
- thumb_func_end SetTextModeAndHideBgs
-
- thumb_func_start SetBgAffineInternal
-SetBgAffineInternal: @ 8001410
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x24
- mov r12, r1
- mov r8, r2
- ldr r1, [sp, 0x3C]
- ldr r2, [sp, 0x40]
- ldr r4, [sp, 0x44]
- ldr r5, [sp, 0x48]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r3, 16
- lsrs r3, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _08001454 @ =gUnknown_30008D0
- ldrh r0, [r0, 0x10]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0x1
- beq _08001458
- cmp r1, 0x1
- ble _080014CE
- cmp r1, 0x2
- beq _0800145E
- b _080014CE
- .align 2, 0
-_08001454: .4byte gUnknown_30008D0
-_08001458:
- cmp r6, 0x2
- bne _080014CE
- b _08001468
-_0800145E:
- subs r0, r6, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080014CE
-_08001468:
- mov r0, r12
- str r0, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- mov r0, sp
- strh r3, [r0, 0x8]
- strh r7, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r4, [r0, 0xE]
- strh r5, [r0, 0x10]
- add r4, sp, 0x14
- adds r1, r4, 0
- movs r2, 0x1
- bl BgAffineSet
- ldrh r1, [r4]
- movs r0, 0x20
- bl SetGpuReg
- ldrh r1, [r4, 0x2]
- movs r0, 0x22
- bl SetGpuReg
- ldrh r1, [r4, 0x4]
- movs r0, 0x24
- bl SetGpuReg
- ldrh r1, [r4, 0x6]
- movs r0, 0x26
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x20
- bl SetGpuReg
- ldrh r1, [r4, 0x8]
- movs r0, 0x28
- bl SetGpuReg
- ldrh r1, [r4, 0xA]
- movs r0, 0x2A
- bl SetGpuReg
- ldrh r1, [r4, 0xC]
- movs r0, 0x2C
- bl SetGpuReg
- ldrh r1, [r4, 0xE]
- movs r0, 0x2E
- bl SetGpuReg
-_080014CE:
- add sp, 0x24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SetBgAffineInternal
-
- thumb_func_start IsInvalidBg
-IsInvalidBg: @ 80014DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _080014EA
- movs r0, 0
- b _080014EC
-_080014EA:
- movs r0, 0x1
-_080014EC:
- pop {r1}
- bx r1
- thumb_func_end IsInvalidBg
-
- thumb_func_start sub_80014F0
-sub_80014F0: @ 80014F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r1, 0
- mov r8, r2
- cmp r3, 0x1
- beq _08001582
- cmp r3, 0x1
- bgt _08001508
- cmp r3, 0
- beq _0800150E
- b _08001606
-_08001508:
- cmp r3, 0x2
- beq _080015C8
- b _08001606
-_0800150E:
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl GetBgControlAttribute
- lsls r0, 16
- lsrs r0, 7
- movs r1, 0x80
- lsls r1, 3
- adds r4, r0, r1
- movs r1, 0x80
- lsls r1, 4
- cmp r4, r1
- ble _0800152C
- adds r4, r1, 0
-_0800152C:
- movs r2, 0
- movs r6, 0
- adds r3, r0, 0
- movs r5, 0
- cmp r3, r4
- bge _0800157C
- ldr r7, _08001568 @ =gUnknown_3000938
- mov r12, r7
-_0800153C:
- adds r0, r3, 0
- cmp r3, 0
- bge _08001544
- adds r0, r3, 0x7
-_08001544:
- asrs r0, 3
- mov r7, r12
- adds r1, r0, r7
- ldrb r1, [r1]
- lsls r0, 3
- subs r0, r3, r0
- asrs r1, r0
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _08001572
- cmp r2, 0
- beq _0800156C
- adds r2, 0x1
- cmp r2, r8
- bne _08001574
- adds r0, r6, 0
- b _08001608
- .align 2, 0
-_08001568: .4byte gUnknown_3000938
-_0800156C:
- adds r6, r5, 0
- movs r2, 0x1
- b _08001574
-_08001572:
- movs r2, 0
-_08001574:
- adds r3, 0x1
- adds r5, 0x1
- cmp r3, r4
- blt _0800153C
-_0800157C:
- movs r0, 0x1
- negs r0, r0
- b _08001608
-_08001582:
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl GetBgControlAttribute
- lsls r0, 16
- lsrs r0, 7
- adds r0, r5
- mov r1, r8
- adds r4, r0, r1
- adds r3, r0, 0
- cmp r3, r4
- bge _08001606
- ldr r5, _080015C4 @ =gUnknown_3000938
- movs r6, 0x1
-_080015A0:
- adds r1, r3, 0
- cmp r3, 0
- bge _080015A8
- adds r1, r3, 0x7
-_080015A8:
- asrs r1, 3
- adds r2, r1, r5
- lsls r1, 3
- subs r1, r3, r1
- adds r0, r6, 0
- lsls r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, r4
- blt _080015A0
- b _08001606
- .align 2, 0
-_080015C4: .4byte gUnknown_3000938
-_080015C8:
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl GetBgControlAttribute
- lsls r0, 16
- lsrs r0, 7
- adds r0, r5
- mov r7, r8
- adds r4, r0, r7
- adds r3, r0, 0
- cmp r3, r4
- bge _08001606
- ldr r5, _08001614 @ =gUnknown_3000938
- movs r6, 0x1
-_080015E6:
- adds r0, r3, 0
- cmp r3, 0
- bge _080015EE
- adds r0, r3, 0x7
-_080015EE:
- asrs r0, 3
- adds r2, r0, r5
- lsls r0, 3
- subs r0, r3, r0
- adds r1, r6, 0
- lsls r1, r0
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, r4
- blt _080015E6
-_08001606:
- movs r0, 0
-_08001608:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08001614: .4byte gUnknown_3000938
- thumb_func_end sub_80014F0
-
- thumb_func_start sub_8001618
-sub_8001618: @ 8001618
- push {r4,lr}
- adds r4, r0, 0
- bl ResetBgs
- ldr r1, _0800164C @ =gUnknown_3000928
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xC
-_08001628:
- str r2, [r0]
- subs r0, 0x4
- cmp r0, r1
- bge _08001628
- ldr r0, _08001650 @ =gUnknown_3003D8C
- str r4, [r0]
- ldr r1, _08001654 @ =gUnknown_3000938
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xFF
-_0800163C:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _0800163C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800164C: .4byte gUnknown_3000928
-_08001650: .4byte gUnknown_3003D8C
-_08001654: .4byte gUnknown_3000938
- thumb_func_end sub_8001618
-
- thumb_func_start sub_8001658
-sub_8001658: @ 8001658
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r4, r2, 24
- bl SetBgModeInternal
- bl ResetBgControlStructs
- cmp r4, 0
- beq _08001712
- movs r7, 0
- ldr r0, _08001724 @ =gUnknown_30008E8
- mov r9, r0
- adds r6, r5, 0
- ldr r2, _08001728 @ =gUnknown_3000938
- mov r10, r2
- mov r8, r4
-_08001688:
- ldr r4, [r6]
- lsls r0, r4, 30
- lsrs r5, r0, 30
- cmp r5, 0x3
- bhi _08001704
- lsls r1, r4, 28
- lsrs r1, 30
- lsls r2, r4, 23
- lsrs r2, 27
- lsls r3, r4, 21
- lsrs r3, 30
- lsls r0, r4, 20
- lsrs r0, 31
- str r0, [sp]
- lsls r0, r4, 18
- lsrs r0, 30
- str r0, [sp, 0x4]
- str r7, [sp, 0x8]
- str r7, [sp, 0xC]
- adds r0, r5, 0
- bl SetBgControlAttributes
- lsls r4, r5, 4
- mov r5, r9
- adds r3, r4, r5
- ldr r2, [r6]
- lsls r2, 8
- lsrs r2, 22
- ldrh r0, [r3]
- ldr r5, _0800172C @ =0xfffffc00
- adds r1, r5, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r3]
- ldrb r0, [r3, 0x1]
- movs r2, 0x3D
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r3, 0x1]
- ldr r0, [r3]
- ldr r1, _08001730 @ =0x00003fff
- ands r0, r1
- str r0, [r3]
- mov r0, r9
- adds r0, 0x4
- adds r0, r4, r0
- str r7, [r0]
- mov r0, r9
- adds r0, 0x8
- adds r0, r4, r0
- str r7, [r0]
- ldr r5, _08001734 @ =gUnknown_30008F4
- adds r4, r5
- str r7, [r4]
- ldr r0, [r6]
- lsls r0, 28
- lsrs r0, 30
- lsls r0, 6
- add r0, r10
- movs r1, 0x1
- strb r1, [r0]
-_08001704:
- adds r6, 0x4
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- mov r2, r8
- cmp r2, 0
- bne _08001688
-_08001712:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08001724: .4byte gUnknown_30008E8
-_08001728: .4byte gUnknown_3000938
-_0800172C: .4byte 0xfffffc00
-_08001730: .4byte 0x00003fff
-_08001734: .4byte gUnknown_30008F4
- thumb_func_end sub_8001658
-
- thumb_func_start sub_8001738
-sub_8001738: @ 8001738
- push {r4-r7,lr}
- sub sp, 0x10
- adds r7, r0, 0
- ldr r4, [r7]
- lsls r0, r4, 30
- lsrs r5, r0, 30
- cmp r5, 0x3
- bhi _080017B8
- lsls r1, r4, 28
- lsrs r1, 30
- lsls r2, r4, 23
- lsrs r2, 27
- lsls r3, r4, 21
- lsrs r3, 30
- lsls r0, r4, 20
- lsrs r0, 31
- str r0, [sp]
- lsls r0, r4, 18
- lsrs r0, 30
- str r0, [sp, 0x4]
- movs r6, 0
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- adds r0, r5, 0
- bl SetBgControlAttributes
- ldr r4, _080017C0 @ =gUnknown_30008E8
- lsls r5, 4
- adds r3, r5, r4
- ldr r1, [r7]
- lsls r1, 8
- lsrs r1, 22
- ldrh r2, [r3]
- ldr r0, _080017C4 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3]
- ldrb r1, [r3, 0x1]
- movs r0, 0x3D
- negs r0, r0
- ands r0, r1
- strb r0, [r3, 0x1]
- ldr r0, [r3]
- ldr r1, _080017C8 @ =0x00003fff
- ands r0, r1
- str r0, [r3]
- adds r0, r4, 0x4
- adds r0, r5, r0
- str r6, [r0]
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r5, r0
- str r6, [r0]
- adds r4, 0xC
- adds r5, r4
- str r6, [r5]
- ldr r1, _080017CC @ =gUnknown_3000938
- ldr r0, [r7]
- lsls r0, 28
- lsrs r0, 30
- lsls r0, 6
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_080017B8:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080017C0: .4byte gUnknown_30008E8
-_080017C4: .4byte 0xfffffc00
-_080017C8: .4byte 0x00003fff
-_080017CC: .4byte gUnknown_3000938
- thumb_func_end sub_8001738
-
- thumb_func_start LoadBgTiles
-LoadBgTiles: @ 80017D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- lsls r3, 16
- lsrs r4, r3, 16
- adds r0, r5, 0
- movs r1, 0x5
- bl GetBgControlAttribute
- lsls r0, 16
- cmp r0, 0
- bne _0800180C
- ldr r1, _08001808 @ =gUnknown_30008E8
- lsls r0, r5, 4
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- adds r0, r4
- lsls r0, 21
- b _0800181C
- .align 2, 0
-_08001808: .4byte gUnknown_30008E8
-_0800180C:
- ldr r1, _0800183C @ =gUnknown_30008E8
- lsls r0, r5, 4
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- adds r0, r4
- lsls r0, 22
-_0800181C:
- lsrs r4, r0, 16
- movs r6, 0x1
- str r6, [sp]
- adds r0, r5, 0
- adds r1, r7, 0
- mov r2, r8
- adds r3, r4, 0
- bl LoadBgVram
- lsls r2, r0, 24
- lsrs r1, r2, 24
- adds r7, r1, 0
- cmp r1, 0xFF
- bne _08001844
- ldr r0, _08001840 @ =0x0000ffff
- b _08001872
- .align 2, 0
-_0800183C: .4byte gUnknown_30008E8
-_08001840: .4byte 0x0000ffff
-_08001844:
- ldr r0, _08001880 @ =gUnknown_3000928
- lsrs r2, 29
- lsls r2, 2
- adds r2, r0
- movs r0, 0x1F
- ands r0, r1
- adds r1, r6, 0
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r0, _08001884 @ =gUnknown_3003D8C
- ldr r0, [r0]
- cmp r0, 0x1
- bne _08001870
- lsrs r1, r4, 5
- mov r0, r8
- lsrs r2, r0, 5
- adds r0, r5, 0
- movs r3, 0x1
- bl sub_80014F0
-_08001870:
- adds r0, r7, 0
-_08001872:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08001880: .4byte gUnknown_3000928
-_08001884: .4byte gUnknown_3003D8C
- thumb_func_end LoadBgTiles
-
- thumb_func_start LoadBgTilemap
-LoadBgTilemap: @ 8001888
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 21
- lsrs r3, 16
- movs r4, 0x2
- str r4, [sp]
- bl LoadBgVram
- lsls r2, r0, 24
- lsrs r3, r2, 24
- cmp r3, 0xFF
- beq _080018C8
- ldr r0, _080018C4 @ =gUnknown_3000928
- lsrs r2, 29
- lsls r2, 2
- adds r2, r0
- movs r0, 0x1F
- ands r0, r3
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- adds r0, r3, 0
- b _080018CA
- .align 2, 0
-_080018C4: .4byte gUnknown_3000928
-_080018C8:
- ldr r0, _080018D4 @ =0x0000ffff
-_080018CA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080018D4: .4byte 0x0000ffff
- thumb_func_end LoadBgTilemap
-
- thumb_func_start Unused_LoadBgPalette
-Unused_LoadBgPalette: @ 80018D8
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- adds r0, r4, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08001924
- ldr r1, _08001928 @ =gUnknown_30008E8
- lsls r0, r4, 4
- adds r0, r1
- ldrb r1, [r0, 0x1]
- lsls r1, 26
- lsrs r1, 28
- lsls r1, 5
- lsls r0, r5, 1
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0xA0
- lsls r0, 19
- adds r1, r0
- adds r0, r7, 0
- adds r2, r6, 0
- movs r3, 0
- bl RequestDma3Copy
- lsls r3, r0, 24
- asrs r1, r3, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08001930
-_08001924:
- ldr r0, _0800192C @ =0x0000ffff
- b _08001954
- .align 2, 0
-_08001928: .4byte gUnknown_30008E8
-_0800192C: .4byte 0x0000ffff
-_08001930:
- ldr r4, _0800195C @ =gUnknown_3000928
- adds r0, r1, 0
- cmp r1, 0
- bge _0800193A
- adds r0, 0x1F
-_0800193A:
- asrs r0, 5
- lsls r2, r0, 2
- adds r2, r4
- lsls r0, 5
- subs r0, r1, r0
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- lsrs r0, r3, 24
-_08001954:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0800195C: .4byte gUnknown_3000928
- thumb_func_end Unused_LoadBgPalette
-
- thumb_func_start IsDma3ManagerBusyWithBgCopy
-IsDma3ManagerBusyWithBgCopy: @ 8001960
- push {r4-r7,lr}
- movs r5, 0
- movs r7, 0x1
- negs r7, r7
-_08001968:
- adds r0, r5, 0
- cmp r5, 0
- bge _08001970
- adds r0, 0x1F
-_08001970:
- asrs r0, 5
- lsls r2, r0, 24
- lsls r0, 5
- subs r0, r5, r0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080019A4 @ =gUnknown_3000928
- lsrs r2, 22
- adds r4, r2, r1
- movs r6, 0x1
- lsls r6, r0
- ldr r0, [r4]
- ands r0, r6
- cmp r0, 0
- beq _080019AE
- lsls r0, r5, 16
- asrs r0, 16
- bl CheckForSpaceForDma3Request
- lsls r0, 24
- asrs r0, 24
- cmp r0, r7
- bne _080019A8
- movs r0, 0x1
- b _080019B6
- .align 2, 0
-_080019A4: .4byte gUnknown_3000928
-_080019A8:
- ldr r0, [r4]
- bics r0, r6
- str r0, [r4]
-_080019AE:
- adds r5, 0x1
- cmp r5, 0x7F
- ble _08001968
- movs r0, 0
-_080019B6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end IsDma3ManagerBusyWithBgCopy
-
- thumb_func_start ShowBg
-ShowBg: @ 80019BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl ShowBgInternal
- bl SyncBgVisibilityAndMode
- pop {r0}
- bx r0
- thumb_func_end ShowBg
-
- thumb_func_start HideBg
-HideBg: @ 80019D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl HideBgInternal
- bl SyncBgVisibilityAndMode
- pop {r0}
- bx r0
- thumb_func_end HideBg
-
- thumb_func_start SetBgAttribute
-SetBgAttribute: @ 80019E4
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- subs r0, r1, 0x1
- cmp r0, 0x6
- bhi _08001A9E
- lsls r0, 2
- ldr r1, _08001A04 @ =_08001A08
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08001A04: .4byte _08001A08
- .align 2, 0
-_08001A08:
- .4byte _08001A24
- .4byte _08001A34
- .4byte _08001A46
- .4byte _08001A5C
- .4byte _08001A70
- .4byte _08001A88
- .4byte _08001A66
-_08001A24:
- movs r0, 0xFF
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r1, r3, 0
- b _08001A7E
-_08001A34:
- movs r0, 0xFF
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xFF
- adds r2, r3, 0
- b _08001A80
-_08001A46:
- movs r0, 0xFF
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xFF
- movs r2, 0xFF
- bl SetBgControlAttributes
- b _08001A9E
-_08001A5C:
- str r3, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- b _08001A78
-_08001A66:
- movs r0, 0xFF
- str r0, [sp]
- str r3, [sp, 0x4]
- str r0, [sp, 0x8]
- b _08001A78
-_08001A70:
- movs r0, 0xFF
- str r0, [sp]
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
-_08001A78:
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xFF
-_08001A7E:
- movs r2, 0xFF
-_08001A80:
- movs r3, 0xFF
- bl SetBgControlAttributes
- b _08001A9E
-_08001A88:
- movs r0, 0xFF
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r3, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xFF
- movs r2, 0xFF
- movs r3, 0xFF
- bl SetBgControlAttributes
-_08001A9E:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SetBgAttribute
-
- thumb_func_start GetBgAttribute
-GetBgAttribute: @ 8001AA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- subs r0, r1, 0x1
- cmp r0, 0x9
- bhi _08001B84
- lsls r0, 2
- ldr r1, _08001AC4 @ =_08001AC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08001AC4: .4byte _08001AC8
- .align 2, 0
-_08001AC8:
- .4byte _08001AF0
- .4byte _08001AFA
- .4byte _08001B04
- .4byte _08001B0E
- .4byte _08001B22
- .4byte _08001B2C
- .4byte _08001B18
- .4byte _08001B36
- .4byte _08001B64
- .4byte _08001B70
-_08001AF0:
- adds r0, r4, 0
- movs r1, 0x2
- bl GetBgControlAttribute
- b _08001B6A
-_08001AFA:
- adds r0, r4, 0
- movs r1, 0x3
- bl GetBgControlAttribute
- b _08001B6A
-_08001B04:
- adds r0, r4, 0
- movs r1, 0x4
- bl GetBgControlAttribute
- b _08001B6A
-_08001B0E:
- adds r0, r4, 0
- movs r1, 0x5
- bl GetBgControlAttribute
- b _08001B6A
-_08001B18:
- adds r0, r4, 0
- movs r1, 0x6
- bl GetBgControlAttribute
- b _08001B6A
-_08001B22:
- adds r0, r4, 0
- movs r1, 0x7
- bl GetBgControlAttribute
- b _08001B6A
-_08001B2C:
- adds r0, r4, 0
- movs r1, 0x8
- bl GetBgControlAttribute
- b _08001B6A
-_08001B36:
- adds r0, r4, 0
- bl GetBgType
- cmp r0, 0
- beq _08001B48
- cmp r0, 0x1
- beq _08001B56
- movs r0, 0
- b _08001B86
-_08001B48:
- adds r0, r4, 0
- movs r1, 0
- bl GetBgMetricTextMode
- lsls r0, 27
- lsrs r0, 16
- b _08001B86
-_08001B56:
- adds r0, r4, 0
- movs r1, 0
- bl GetBgMetricAffineMode
- lsls r0, 24
- lsrs r0, 16
- b _08001B86
-_08001B64:
- adds r0, r4, 0
- bl GetBgType
-_08001B6A:
- lsls r0, 16
- lsrs r0, 16
- b _08001B86
-_08001B70:
- ldr r0, _08001B80 @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r1, r0
- ldrh r0, [r1]
- lsls r0, 22
- lsrs r0, 22
- b _08001B86
- .align 2, 0
-_08001B80: .4byte gUnknown_30008E8
-_08001B84:
- ldr r0, _08001B8C @ =0x0000ffff
-_08001B86:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08001B8C: .4byte 0x0000ffff
- thumb_func_end GetBgAttribute
-
- thumb_func_start ChangeBgX
-ChangeBgX: @ 8001B90
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, 24
- lsrs r5, r2, 24
- adds r0, r4, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08001BB4
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBgControlAttribute
- lsls r0, 16
- cmp r0, 0
- bne _08001BBA
-_08001BB4:
- movs r0, 0x1
- negs r0, r0
- b _08001CC0
-_08001BBA:
- cmp r5, 0x1
- beq _08001BD8
- cmp r5, 0x1
- ble _08001BC6
- cmp r5, 0x2
- beq _08001BEC
-_08001BC6:
- ldr r0, _08001BD4 @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r0, 0x8
- adds r0, r1, r0
- str r6, [r0]
- adds r5, r1, 0
- b _08001BFC
- .align 2, 0
-_08001BD4: .4byte gUnknown_30008E8
-_08001BD8:
- ldr r0, _08001BE8 @ =gUnknown_30008E8
- lsls r2, r4, 4
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r0]
- adds r1, r6
- b _08001BF8
- .align 2, 0
-_08001BE8: .4byte gUnknown_30008E8
-_08001BEC:
- ldr r0, _08001C14 @ =gUnknown_30008E8
- lsls r2, r4, 4
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r0]
- subs r1, r6
-_08001BF8:
- str r1, [r0]
- adds r5, r2, 0
-_08001BFC:
- bl GetBgMode
- lsls r0, 24
- lsrs r0, 24
- cmp r4, 0x1
- beq _08001C38
- cmp r4, 0x1
- bgt _08001C18
- cmp r4, 0
- beq _08001C22
- b _08001CB8
- .align 2, 0
-_08001C14: .4byte gUnknown_30008E8
-_08001C18:
- cmp r4, 0x2
- beq _08001C4C
- cmp r4, 0x3
- beq _08001C84
- b _08001CB8
-_08001C22:
- ldr r0, _08001C34 @ =gUnknown_30008E8
- ldr r0, [r0, 0x8]
- lsls r0, 8
- lsrs r1, r0, 16
- movs r0, 0x10
- bl SetGpuReg
- b _08001CB8
- .align 2, 0
-_08001C34: .4byte gUnknown_30008E8
-_08001C38:
- ldr r0, _08001C48 @ =gUnknown_30008E8
- ldr r0, [r0, 0x18]
- lsls r0, 8
- lsrs r1, r0, 16
- movs r0, 0x14
- bl SetGpuReg
- b _08001CB8
- .align 2, 0
-_08001C48: .4byte gUnknown_30008E8
-_08001C4C:
- cmp r0, 0
- bne _08001C64
- ldr r0, _08001C60 @ =gUnknown_30008E8
- ldr r0, [r0, 0x28]
- lsls r0, 8
- lsrs r1, r0, 16
- movs r0, 0x18
- bl SetGpuReg
- b _08001CB8
- .align 2, 0
-_08001C60: .4byte gUnknown_30008E8
-_08001C64:
- ldr r0, _08001C80 @ =gUnknown_30008E8
- ldr r0, [r0, 0x28]
- lsrs r1, r0, 16
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x2A
- bl SetGpuReg
- movs r0, 0x28
- adds r1, r4, 0
- bl SetGpuReg
- b _08001CB8
- .align 2, 0
-_08001C80: .4byte gUnknown_30008E8
-_08001C84:
- cmp r0, 0
- bne _08001C9C
- ldr r0, _08001C98 @ =gUnknown_30008E8
- ldr r0, [r0, 0x38]
- lsls r0, 8
- lsrs r1, r0, 16
- movs r0, 0x1C
- bl SetGpuReg
- b _08001CB8
- .align 2, 0
-_08001C98: .4byte gUnknown_30008E8
-_08001C9C:
- cmp r0, 0x2
- bne _08001CB8
- ldr r0, _08001CC8 @ =gUnknown_30008E8
- ldr r0, [r0, 0x38]
- lsrs r1, r0, 16
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x3A
- bl SetGpuReg
- movs r0, 0x38
- adds r1, r4, 0
- bl SetGpuReg
-_08001CB8:
- ldr r0, _08001CC8 @ =gUnknown_30008E8
- adds r0, 0x8
- adds r0, r5, r0
- ldr r0, [r0]
-_08001CC0:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08001CC8: .4byte gUnknown_30008E8
- thumb_func_end ChangeBgX
-
- thumb_func_start GetBgX
-GetBgX: @ 8001CCC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08001CFC
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBgControlAttribute
- lsls r0, 16
- cmp r0, 0
- beq _08001CFC
- ldr r0, _08001CF8 @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r0, 0x8
- adds r1, r0
- ldr r0, [r1]
- b _08001D00
- .align 2, 0
-_08001CF8: .4byte gUnknown_30008E8
-_08001CFC:
- movs r0, 0x1
- negs r0, r0
-_08001D00:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetBgX
-
- thumb_func_start ChangeBgY
-ChangeBgY: @ 8001D08
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, 24
- lsrs r5, r2, 24
- adds r0, r4, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08001D2C
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBgControlAttribute
- lsls r0, 16
- cmp r0, 0
- bne _08001D32
-_08001D2C:
- movs r0, 0x1
- negs r0, r0
- b _08001E38
-_08001D32:
- cmp r5, 0x1
- beq _08001D50
- cmp r5, 0x1
- ble _08001D3E
- cmp r5, 0x2
- beq _08001D64
-_08001D3E:
- ldr r0, _08001D4C @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r0, 0xC
- adds r0, r1, r0
- str r6, [r0]
- adds r5, r1, 0
- b _08001D74
- .align 2, 0
-_08001D4C: .4byte gUnknown_30008E8
-_08001D50:
- ldr r0, _08001D60 @ =gUnknown_30008E8
- lsls r2, r4, 4
- adds r0, 0xC
- adds r0, r2, r0
- ldr r1, [r0]
- adds r1, r6
- b _08001D70
- .align 2, 0
-_08001D60: .4byte gUnknown_30008E8
-_08001D64:
- ldr r0, _08001D8C @ =gUnknown_30008E8
- lsls r2, r4, 4
- adds r0, 0xC
- adds r0, r2, r0
- ldr r1, [r0]
- subs r1, r6
-_08001D70:
- str r1, [r0]
- adds r5, r2, 0
-_08001D74:
- bl GetBgMode
- lsls r0, 24
- lsrs r0, 24
- cmp r4, 0x1
- beq _08001DB0
- cmp r4, 0x1
- bgt _08001D90
- cmp r4, 0
- beq _08001D9A
- b _08001E30
- .align 2, 0
-_08001D8C: .4byte gUnknown_30008E8
-_08001D90:
- cmp r4, 0x2
- beq _08001DC4
- cmp r4, 0x3
- beq _08001DFC
- b _08001E30
-_08001D9A:
- ldr r0, _08001DAC @ =gUnknown_30008E8
- ldr r0, [r0, 0xC]
- lsls r0, 8
- lsrs r1, r0, 16
- movs r0, 0x12
- bl SetGpuReg
- b _08001E30
- .align 2, 0
-_08001DAC: .4byte gUnknown_30008E8
-_08001DB0:
- ldr r0, _08001DC0 @ =gUnknown_30008E8
- ldr r0, [r0, 0x1C]
- lsls r0, 8
- lsrs r1, r0, 16
- movs r0, 0x16
- bl SetGpuReg
- b _08001E30
- .align 2, 0
-_08001DC0: .4byte gUnknown_30008E8
-_08001DC4:
- cmp r0, 0
- bne _08001DDC
- ldr r0, _08001DD8 @ =gUnknown_30008E8
- ldr r0, [r0, 0x2C]
- lsls r0, 8
- lsrs r1, r0, 16
- movs r0, 0x1A
- bl SetGpuReg
- b _08001E30
- .align 2, 0
-_08001DD8: .4byte gUnknown_30008E8
-_08001DDC:
- ldr r0, _08001DF8 @ =gUnknown_30008E8
- ldr r0, [r0, 0x2C]
- lsrs r1, r0, 16
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x2E
- bl SetGpuReg
- movs r0, 0x2C
- adds r1, r4, 0
- bl SetGpuReg
- b _08001E30
- .align 2, 0
-_08001DF8: .4byte gUnknown_30008E8
-_08001DFC:
- cmp r0, 0
- bne _08001E14
- ldr r0, _08001E10 @ =gUnknown_30008E8
- ldr r0, [r0, 0x3C]
- lsls r0, 8
- lsrs r1, r0, 16
- movs r0, 0x1E
- bl SetGpuReg
- b _08001E30
- .align 2, 0
-_08001E10: .4byte gUnknown_30008E8
-_08001E14:
- cmp r0, 0x2
- bne _08001E30
- ldr r0, _08001E40 @ =gUnknown_30008E8
- ldr r0, [r0, 0x3C]
- lsrs r1, r0, 16
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x3E
- bl SetGpuReg
- movs r0, 0x3C
- adds r1, r4, 0
- bl SetGpuReg
-_08001E30:
- ldr r0, _08001E40 @ =gUnknown_30008E8
- adds r0, 0xC
- adds r0, r5, r0
- ldr r0, [r0]
-_08001E38:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08001E40: .4byte gUnknown_30008E8
- thumb_func_end ChangeBgY
-
- thumb_func_start GetBgY
-GetBgY: @ 8001E44
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08001E74
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBgControlAttribute
- lsls r0, 16
- cmp r0, 0
- beq _08001E74
- ldr r0, _08001E70 @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r0, 0xC
- adds r1, r0
- ldr r0, [r1]
- b _08001E78
- .align 2, 0
-_08001E70: .4byte gUnknown_30008E8
-_08001E74:
- movs r0, 0x1
- negs r0, r0
-_08001E78:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetBgY
-
- thumb_func_start SetBgAffine
-SetBgAffine: @ 8001E80
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- ldr r7, [sp, 0x34]
- lsls r0, 24
- lsrs r0, 24
- lsls r7, 16
- lsrs r7, 16
- lsls r3, 16
- asrs r3, 16
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x4]
- lsls r6, 16
- asrs r6, 16
- str r6, [sp, 0x8]
- str r7, [sp, 0xC]
- bl SetBgAffineInternal
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SetBgAffine
-
- thumb_func_start Unused_AdjustBgMosaic
-Unused_AdjustBgMosaic: @ 8001EC0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- movs r0, 0x4C
- bl GetGpuReg
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0xF
- movs r3, 0xF
- ands r3, r5
- lsrs r2, r0, 20
- ands r2, r1
- movs r0, 0xFF
- lsls r0, 8
- ands r5, r0
- cmp r6, 0x6
- bhi _08001F14
- lsls r0, r6, 2
- ldr r1, _08001EF4 @ =_08001EF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08001EF4: .4byte _08001EF8
- .align 2, 0
-_08001EF8:
- .4byte _08001F14
- .4byte _08001F1C
- .4byte _08001F22
- .4byte _08001F34
- .4byte _08001F4A
- .4byte _08001F50
- .4byte _08001F62
-_08001F14:
- movs r3, 0xF
- ands r3, r4
- lsrs r2, r4, 4
- b _08001F76
-_08001F1C:
- movs r3, 0xF
- ands r3, r4
- b _08001F76
-_08001F22:
- lsls r0, r3, 16
- asrs r0, 16
- adds r0, r4
- cmp r0, 0xF
- ble _08001F30
- movs r3, 0xF
- b _08001F76
-_08001F30:
- adds r0, r3, r4
- b _08001F44
-_08001F34:
- lsls r0, r3, 16
- asrs r0, 16
- subs r0, r4
- cmp r0, 0
- bge _08001F42
- movs r3, 0
- b _08001F76
-_08001F42:
- subs r0, r3, r4
-_08001F44:
- lsls r0, 16
- lsrs r3, r0, 16
- b _08001F76
-_08001F4A:
- movs r2, 0xF
- ands r2, r4
- b _08001F76
-_08001F50:
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, r4
- cmp r0, 0xF
- ble _08001F5E
- movs r2, 0xF
- b _08001F76
-_08001F5E:
- adds r0, r2, r4
- b _08001F72
-_08001F62:
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r4
- cmp r0, 0
- bge _08001F70
- movs r2, 0
- b _08001F76
-_08001F70:
- subs r0, r2, r4
-_08001F72:
- lsls r0, 16
- lsrs r2, r0, 16
-_08001F76:
- lsls r0, r2, 16
- asrs r0, 12
- movs r1, 0xF0
- ands r0, r1
- orrs r5, r0
- lsls r0, r3, 16
- asrs r0, 16
- movs r1, 0xF
- ands r0, r1
- orrs r5, r0
- lsls r0, r5, 16
- lsrs r5, r0, 16
- movs r0, 0x4C
- adds r1, r5, 0
- bl SetGpuReg
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end Unused_AdjustBgMosaic
-
- thumb_func_start SetBgTilemapBuffer
-SetBgTilemapBuffer: @ 8001FA0
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08001FCA
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBgControlAttribute
- lsls r0, 16
- cmp r0, 0
- beq _08001FCA
- ldr r0, _08001FD0 @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r0, 0x4
- adds r1, r0
- str r5, [r1]
-_08001FCA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08001FD0: .4byte gUnknown_30008E8
- thumb_func_end SetBgTilemapBuffer
-
- thumb_func_start UnsetBgTilemapBuffer
-UnsetBgTilemapBuffer: @ 8001FD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsInvalidBg32
- adds r5, r0, 0
- cmp r5, 0
- bne _08001FFE
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBgControlAttribute
- lsls r0, 16
- cmp r0, 0
- beq _08001FFE
- ldr r0, _08002004 @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r0, 0x4
- adds r1, r0
- str r5, [r1]
-_08001FFE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08002004: .4byte gUnknown_30008E8
- thumb_func_end UnsetBgTilemapBuffer
-
- thumb_func_start GetBgTilemapBuffer
-GetBgTilemapBuffer: @ 8002008
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08002038
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBgControlAttribute
- lsls r0, 16
- cmp r0, 0
- beq _08002038
- ldr r0, _08002034 @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- b _0800203A
- .align 2, 0
-_08002034: .4byte gUnknown_30008E8
-_08002038:
- movs r0, 0
-_0800203A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetBgTilemapBuffer
-
- thumb_func_start CopyToBgTilemapBuffer
-CopyToBgTilemapBuffer: @ 8002040
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r9, r4
- lsls r7, r2, 16
- lsrs r6, r7, 16
- lsls r3, 16
- lsrs r5, r3, 16
- mov r8, r5
- adds r0, r4, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _080020A8
- adds r0, r4, 0
- bl IsTileMapOutsideWram
- cmp r0, 0
- bne _080020A8
- cmp r6, 0
- beq _08002090
- ldr r0, _0800208C @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r0, 0x4
- adds r1, r0
- lsls r0, r5, 5
- ldr r1, [r1]
- adds r1, r0
- lsrs r2, r7, 17
- mov r0, r10
- bl CpuSet
- b _080020A8
- .align 2, 0
-_0800208C: .4byte gUnknown_30008E8
-_08002090:
- ldr r0, _080020B8 @ =gUnknown_30008E8
- mov r2, r9
- lsls r1, r2, 4
- adds r0, 0x4
- adds r1, r0
- mov r2, r8
- lsls r0, r2, 5
- ldr r1, [r1]
- adds r1, r0
- mov r0, r10
- bl LZ77UnCompWram
-_080020A8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080020B8: .4byte gUnknown_30008E8
- thumb_func_end CopyToBgTilemapBuffer
-
- thumb_func_start CopyBgTilemapBufferToVram
-CopyBgTilemapBufferToVram: @ 80020BC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08002118
- adds r0, r4, 0
- bl IsTileMapOutsideWram
- cmp r0, 0
- bne _08002118
- adds r0, r4, 0
- bl GetBgType
- cmp r0, 0
- beq _080020EA
- cmp r0, 0x1
- beq _080020F6
- movs r2, 0
- b _08002102
-_080020EA:
- adds r0, r4, 0
- movs r1, 0
- bl GetBgMetricTextMode
- lsls r0, 27
- b _08002100
-_080020F6:
- adds r0, r4, 0
- movs r1, 0
- bl GetBgMetricAffineMode
- lsls r0, 24
-_08002100:
- lsrs r2, r0, 16
-_08002102:
- ldr r0, _08002120 @ =gUnknown_30008E8
- lsls r1, r4, 4
- adds r0, 0x4
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0
- bl LoadBgVram
-_08002118:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08002120: .4byte gUnknown_30008E8
- thumb_func_end CopyBgTilemapBufferToVram
-
- thumb_func_start CopyToBgTilemapBufferRect
-CopyToBgTilemapBufferRect: @ 8002124
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r1
- ldr r1, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r4, 24
- lsrs r6, r4, 24
- adds r0, r5, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08002214
- adds r0, r5, 0
- bl IsTileMapOutsideWram
- cmp r0, 0
- bne _08002214
- adds r0, r5, 0
- bl GetBgType
- cmp r0, 0
- beq _08002172
- cmp r0, 0x1
- beq _080021C0
- b _08002214
-_08002172:
- mov r4, r8
- adds r3, r7, 0
- adds r0, r3, r6
- cmp r3, r0
- bge _08002214
- mov r12, r0
- lsls r1, r5, 4
- ldr r0, _080021BC @ =gUnknown_30008EC
- adds r1, r0
- mov r8, r1
-_08002186:
- mov r2, r10
- mov r1, r9
- adds r0, r2, r1
- adds r7, r3, 0x1
- cmp r2, r0
- bge _080021B0
- mov r1, r8
- ldr r6, [r1]
- lsls r5, r3, 5
- adds r3, r0, 0
-_0800219A:
- adds r0, r5, r2
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r4]
- strh r1, [r0]
- adds r4, 0x2
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- blt _0800219A
-_080021B0:
- lsls r0, r7, 16
- lsrs r3, r0, 16
- cmp r3, r12
- blt _08002186
- b _08002214
- .align 2, 0
-_080021BC: .4byte gUnknown_30008EC
-_080021C0:
- mov r4, r8
- adds r0, r5, 0
- movs r1, 0x1
- bl GetBgMetricAffineMode
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- adds r3, r7, 0
- adds r0, r3, r6
- cmp r3, r0
- bge _08002214
- mov r12, r0
- lsls r5, 4
- mov r8, r5
-_080021DE:
- mov r2, r10
- mov r1, r9
- adds r0, r2, r1
- adds r7, r3, 0x1
- cmp r2, r0
- bge _0800220C
- ldr r6, _08002224 @ =gUnknown_30008EC
- add r6, r8
- ldr r1, [sp]
- adds r5, r3, 0
- muls r5, r1
- adds r3, r0, 0
-_080021F6:
- ldr r1, [r6]
- adds r0, r5, r2
- adds r1, r0
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- blt _080021F6
-_0800220C:
- lsls r0, r7, 16
- lsrs r3, r0, 16
- cmp r3, r12
- blt _080021DE
-_08002214:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08002224: .4byte gUnknown_30008EC
- thumb_func_end CopyToBgTilemapBufferRect
-
- thumb_func_start CopyToBgTilemapBufferRect_ChangePalette
-CopyToBgTilemapBufferRect_ChangePalette: @ 8002228
- push {r4-r6,lr}
- sub sp, 0x24
- ldr r4, [sp, 0x34]
- ldr r5, [sp, 0x38]
- ldr r6, [sp, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- str r4, [sp, 0x10]
- str r5, [sp, 0x14]
- str r6, [sp, 0x18]
- movs r2, 0
- str r2, [sp, 0x1C]
- str r2, [sp, 0x20]
- movs r3, 0
- bl CopyRectToBgTilemapBufferRect
- add sp, 0x24
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end CopyToBgTilemapBufferRect_ChangePalette
-
- thumb_func_start CopyRectToBgTilemapBufferRect
-CopyRectToBgTilemapBufferRect: @ 800226C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- str r1, [sp, 0x8]
- ldr r1, [sp, 0x60]
- ldr r4, [sp, 0x68]
- ldr r5, [sp, 0x6C]
- ldr r6, [sp, 0x70]
- ldr r7, [sp, 0x74]
- mov r8, r7
- ldr r7, [sp, 0x78]
- mov r9, r7
- ldr r7, [sp, 0x7C]
- mov r10, r7
- ldr r7, [sp, 0x80]
- mov r12, r7
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x14]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- str r6, [sp, 0x18]
- mov r0, r8
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x1C]
- mov r2, r10
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x20]
- mov r0, r12
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x4]
- bl IsInvalidBg32
- cmp r0, 0
- beq _080022E2
- b _0800243E
-_080022E2:
- ldr r0, [sp, 0x4]
- bl IsTileMapOutsideWram
- cmp r0, 0
- beq _080022EE
- b _0800243E
-_080022EE:
- ldr r0, [sp, 0x4]
- movs r1, 0x4
- bl GetBgControlAttribute
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x30]
- ldr r0, [sp, 0x4]
- movs r1, 0x1
- bl GetBgMetricTextMode
- lsls r0, 21
- lsrs r0, 16
- str r0, [sp, 0x28]
- ldr r0, [sp, 0x4]
- movs r1, 0x2
- bl GetBgMetricTextMode
- lsls r0, 21
- lsrs r0, 16
- str r0, [sp, 0x2C]
- ldr r0, [sp, 0x4]
- bl GetBgType
- cmp r0, 0
- beq _08002328
- cmp r0, 0x1
- beq _080023C4
- b _0800243E
-_08002328:
- ldr r1, [sp, 0x10]
- adds r0, r1, 0
- muls r0, r7
- ldr r2, [sp, 0xC]
- adds r0, r2
- lsls r0, 1
- ldr r1, [sp, 0x8]
- adds r6, r1, r0
- adds r0, r5, r4
- cmp r5, r0
- blt _08002340
- b _0800243E
-_08002340:
- ldr r2, [sp, 0x18]
- subs r2, r7, r2
- str r2, [sp, 0x34]
- str r0, [sp, 0x38]
-_08002348:
- ldr r4, [sp, 0x14]
- ldr r7, [sp, 0x18]
- adds r0, r4, r7
- adds r1, r5, 0x1
- str r1, [sp, 0x3C]
- cmp r4, r0
- bge _080023AA
- ldr r2, [sp, 0x4]
- lsls r0, r2, 4
- ldr r1, _080023C0 @ =gUnknown_30008EC
- adds r0, r1
- mov r10, r0
- ldr r7, [sp, 0x20]
- lsls r7, 16
- mov r9, r7
- ldr r1, [sp, 0x24]
- lsls r0, r1, 16
- asrs r0, 16
- mov r8, r0
-_0800236E:
- ldr r2, [sp, 0x2C]
- str r2, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- ldr r2, [sp, 0x30]
- ldr r3, [sp, 0x28]
- bl GetTileMapIndexFromCoords
- lsls r0, 16
- lsrs r0, 15
- mov r7, r10
- ldr r1, [r7]
- adds r1, r0
- mov r0, r8
- str r0, [sp]
- adds r0, r6, 0
- ldr r2, [sp, 0x1C]
- mov r7, r9
- asrs r3, r7, 16
- bl CopyTileMapEntry
- adds r6, 0x2
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, [sp, 0x14]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- cmp r4, r0
- blt _0800236E
-_080023AA:
- ldr r5, [sp, 0x34]
- lsls r0, r5, 1
- adds r6, r0
- ldr r7, [sp, 0x3C]
- lsls r0, r7, 16
- lsrs r5, r0, 16
- ldr r0, [sp, 0x38]
- cmp r5, r0
- blt _08002348
- b _0800243E
- .align 2, 0
-_080023C0: .4byte gUnknown_30008EC
-_080023C4:
- ldr r1, [sp, 0x10]
- adds r0, r1, 0
- muls r0, r7
- ldr r2, [sp, 0xC]
- adds r0, r2
- ldr r1, [sp, 0x8]
- adds r6, r1, r0
- ldr r0, [sp, 0x4]
- movs r1, 0x1
- bl GetBgMetricAffineMode
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r5, r4
- cmp r5, r0
- bge _0800243E
- ldr r2, [sp, 0x18]
- subs r2, r7, r2
- str r2, [sp, 0x34]
- str r0, [sp, 0x38]
- ldr r7, _08002450 @ =gUnknown_30008EC
- mov r10, r7
- ldr r0, [sp, 0x4]
- lsls r0, 4
- mov r8, r0
-_080023F8:
- ldr r4, [sp, 0x14]
- ldr r1, [sp, 0x18]
- adds r0, r4, r1
- adds r2, r5, 0x1
- str r2, [sp, 0x3C]
- cmp r4, r0
- bge _0800242E
- mov r3, r8
- add r3, r10
- mov r7, r9
- muls r7, r5
- mov r12, r7
- adds r2, r0, 0
-_08002412:
- ldr r1, [r3]
- mov r5, r12
- adds r0, r5, r4
- adds r1, r0
- ldrb r0, [r6]
- ldr r7, [sp, 0x20]
- adds r0, r7
- strb r0, [r1]
- adds r6, 0x1
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- blt _08002412
-_0800242E:
- ldr r0, [sp, 0x34]
- adds r6, r0
- ldr r1, [sp, 0x3C]
- lsls r0, r1, 16
- lsrs r5, r0, 16
- ldr r2, [sp, 0x38]
- cmp r5, r2
- blt _080023F8
-_0800243E:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08002450: .4byte gUnknown_30008EC
- thumb_func_end CopyRectToBgTilemapBufferRect
-
- thumb_func_start FillBgTilemapBufferRect_Palette0
-FillBgTilemapBufferRect_Palette0: @ 8002454
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl IsInvalidBg32
- cmp r0, 0
- bne _08002540
- adds r0, r6, 0
- bl IsTileMapOutsideWram
- cmp r0, 0
- bne _08002540
- adds r0, r6, 0
- bl GetBgType
- cmp r0, 0
- beq _080024A6
- cmp r0, 0x1
- beq _080024F0
- b _08002540
-_080024A6:
- adds r3, r7, 0
- adds r5, r3, r5
- cmp r3, r5
- bge _08002540
- adds r7, r5, 0
- lsls r1, r6, 4
- ldr r0, _080024EC @ =gUnknown_30008EC
- adds r1, r0
- mov r12, r1
-_080024B8:
- mov r2, r10
- mov r1, r9
- adds r0, r2, r1
- adds r6, r3, 0x1
- cmp r2, r0
- bge _080024E0
- mov r5, r12
- ldr r4, [r5]
- lsls r3, 5
- adds r1, r0, 0
-_080024CC:
- adds r0, r3, r2
- lsls r0, 1
- adds r0, r4
- mov r5, r8
- strh r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r1
- blt _080024CC
-_080024E0:
- lsls r0, r6, 16
- lsrs r3, r0, 16
- cmp r3, r7
- blt _080024B8
- b _08002540
- .align 2, 0
-_080024EC: .4byte gUnknown_30008EC
-_080024F0:
- adds r0, r6, 0
- movs r1, 0x1
- bl GetBgMetricAffineMode
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- adds r3, r7, 0
- adds r5, r3, r5
- cmp r3, r5
- bge _08002540
- adds r7, r5, 0
- lsls r6, 4
- mov r12, r6
-_0800250C:
- mov r2, r10
- mov r1, r9
- adds r0, r2, r1
- adds r6, r3, 0x1
- cmp r2, r0
- bge _08002538
- ldr r5, _08002550 @ =gUnknown_30008EC
- add r5, r12
- ldr r1, [sp]
- adds r4, r3, 0
- muls r4, r1
- adds r3, r0, 0
-_08002524:
- ldr r0, [r5]
- adds r1, r4, r2
- adds r0, r1
- mov r1, r8
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- blt _08002524
-_08002538:
- lsls r0, r6, 16
- lsrs r3, r0, 16
- cmp r3, r7
- blt _0800250C
-_08002540:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08002550: .4byte gUnknown_30008EC
- thumb_func_end FillBgTilemapBufferRect_Palette0
-
- thumb_func_start FillBgTilemapBufferRect
-FillBgTilemapBufferRect: @ 8002554
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r4, 0
- str r4, [sp, 0xC]
- bl WriteSequenceToBgTilemapBuffer
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end FillBgTilemapBufferRect
-
- thumb_func_start WriteSequenceToBgTilemapBuffer
-WriteSequenceToBgTilemapBuffer: @ 8002590
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- ldr r4, [sp, 0x4C]
- ldr r5, [sp, 0x50]
- ldr r6, [sp, 0x54]
- ldr r7, [sp, 0x58]
- mov r8, r7
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- add r0, sp, 0x4
- strh r1, [r0]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x8]
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsls r5, 24
- lsrs r4, r5, 24
- lsls r6, 24
- lsrs r6, 24
- str r6, [sp, 0xC]
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- mov r0, r9
- bl IsInvalidBg32
- cmp r0, 0
- beq _080025DE
- b _08002724
-_080025DE:
- mov r0, r9
- bl IsTileMapOutsideWram
- cmp r0, 0
- beq _080025EA
- b _08002724
-_080025EA:
- mov r0, r9
- movs r1, 0x4
- bl GetBgControlAttribute
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x1C]
- mov r0, r9
- movs r1, 0x1
- bl GetBgMetricTextMode
- lsls r0, 21
- lsrs r0, 16
- str r0, [sp, 0x14]
- mov r0, r9
- movs r1, 0x2
- bl GetBgMetricTextMode
- lsls r0, 21
- lsrs r0, 16
- str r0, [sp, 0x18]
- mov r0, r9
- bl GetBgType
- cmp r0, 0
- beq _08002624
- cmp r0, 0x1
- beq _080026AC
- b _08002724
-_08002624:
- adds r5, r7, 0
- adds r0, r5, r4
- cmp r5, r0
- bge _08002724
- str r0, [sp, 0x24]
- add r7, sp, 0x4
-_08002630:
- ldr r4, [sp, 0x8]
- mov r1, r10
- adds r0, r4, r1
- adds r2, r5, 0x1
- mov r8, r2
- cmp r4, r0
- bge _08002694
- mov r3, r9
- lsls r1, r3, 4
- ldr r0, _080026A4 @ =gUnknown_30008EC
- adds r6, r1, r0
-_08002646:
- ldr r0, [sp, 0x18]
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- ldr r2, [sp, 0x1C]
- ldr r3, [sp, 0x14]
- bl GetTileMapIndexFromCoords
- lsls r0, 16
- lsrs r0, 15
- ldr r1, [r6]
- adds r1, r0
- movs r0, 0
- str r0, [sp]
- add r0, sp, 0x4
- ldr r2, [sp, 0xC]
- movs r3, 0
- bl CopyTileMapEntry
- ldrh r0, [r7]
- movs r2, 0xFC
- lsls r2, 8
- adds r1, r2, 0
- adds r2, r0, 0
- ands r2, r1
- ldr r3, [sp, 0x10]
- adds r0, r3
- ldr r3, _080026A8 @ =0x000003ff
- adds r1, r3, 0
- ands r0, r1
- adds r2, r0
- strh r2, [r7]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [sp, 0x8]
- add r0, r10
- cmp r4, r0
- blt _08002646
-_08002694:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r5, r0, 16
- ldr r2, [sp, 0x24]
- cmp r5, r2
- blt _08002630
- b _08002724
- .align 2, 0
-_080026A4: .4byte gUnknown_30008EC
-_080026A8: .4byte 0x000003ff
-_080026AC:
- mov r0, r9
- movs r1, 0x1
- bl GetBgMetricAffineMode
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x20]
- adds r5, r7, 0
- adds r0, r5, r4
- cmp r5, r0
- bge _08002724
- str r0, [sp, 0x24]
- mov r3, r9
- lsls r3, 4
- mov r12, r3
-_080026CA:
- ldr r4, [sp, 0x8]
- mov r7, r10
- adds r0, r4, r7
- adds r1, r5, 0x1
- mov r8, r1
- cmp r4, r0
- bge _08002718
- ldr r2, _08002734 @ =gUnknown_30008EC
- add r2, r12
- str r2, [sp, 0x28]
- ldr r7, [sp, 0x20]
- adds r3, r5, 0
- muls r3, r7
- add r2, sp, 0x4
- movs r1, 0xFC
- lsls r1, 8
- mov r9, r1
- ldr r7, _08002738 @ =0x000003ff
- adds r5, r7, 0
- adds r6, r0, 0
-_080026F2:
- ldr r0, [sp, 0x28]
- ldr r1, [r0]
- adds r0, r3, r4
- adds r1, r0
- ldrh r0, [r2]
- strb r0, [r1]
- ldrh r0, [r2]
- mov r1, r9
- ands r1, r0
- ldr r7, [sp, 0x10]
- adds r0, r7
- ands r0, r5
- adds r1, r0
- strh r1, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r6
- blt _080026F2
-_08002718:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r5, r0, 16
- ldr r2, [sp, 0x24]
- cmp r5, r2
- blt _080026CA
-_08002724:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08002734: .4byte gUnknown_30008EC
-_08002738: .4byte 0x000003ff
- thumb_func_end WriteSequenceToBgTilemapBuffer
-
- thumb_func_start GetBgMetricTextMode
-GetBgMetricTextMode: @ 800273C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0x4
- bl GetBgControlAttribute
- lsls r0, 24
- lsrs r0, 24
- cmp r4, 0x1
- beq _0800277C
- cmp r4, 0x1
- bgt _08002760
- cmp r4, 0
- beq _08002766
- b _080027A2
-_08002760:
- cmp r5, 0x2
- beq _0800278E
- b _080027A2
-_08002766:
- cmp r0, 0x2
- bgt _08002774
- cmp r0, 0x1
- bge _0800279E
-_0800276E:
- cmp r0, 0
- beq _08002796
- b _080027A2
-_08002774:
- cmp r0, 0x3
- bne _080027A2
- movs r0, 0x4
- b _080027A4
-_0800277C:
- cmp r0, 0x1
- beq _0800279E
- cmp r0, 0x1
- ble _0800276E
- cmp r0, 0x2
- beq _08002796
- cmp r0, 0x3
- bne _080027A2
- b _0800279E
-_0800278E:
- cmp r0, 0
- blt _080027A2
- cmp r0, 0x1
- bgt _0800279A
-_08002796:
- movs r0, 0x1
- b _080027A4
-_0800279A:
- cmp r0, 0x3
- bgt _080027A2
-_0800279E:
- movs r0, 0x2
- b _080027A4
-_080027A2:
- movs r0, 0
-_080027A4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetBgMetricTextMode
-
- thumb_func_start GetBgMetricAffineMode
-GetBgMetricAffineMode: @ 80027AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r1, 0x4
- bl GetBgControlAttribute
- lsls r0, 24
- lsrs r1, r0, 24
- adds r0, r1, 0
- cmp r4, 0
- beq _080027D4
- cmp r4, 0
- blt _080027FC
- cmp r4, 0x2
- bgt _080027FC
- movs r0, 0x10
- lsls r0, r1
- b _080027FE
-_080027D4:
- cmp r1, 0x1
- beq _080027F0
- cmp r1, 0x1
- bgt _080027E2
- cmp r1, 0
- beq _080027EC
- b _080027FC
-_080027E2:
- cmp r0, 0x2
- beq _080027F4
- cmp r0, 0x3
- beq _080027F8
- b _080027FC
-_080027EC:
- movs r0, 0x1
- b _080027FE
-_080027F0:
- movs r0, 0x4
- b _080027FE
-_080027F4:
- movs r0, 0x10
- b _080027FE
-_080027F8:
- movs r0, 0x40
- b _080027FE
-_080027FC:
- movs r0, 0
-_080027FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetBgMetricAffineMode
-
- thumb_func_start GetTileMapIndexFromCoords
-GetTileMapIndexFromCoords: @ 8002804
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [sp, 0x8]
- subs r3, 0x1
- ands r4, r3
- subs r0, 0x1
- ands r1, r0
- cmp r2, 0x1
- beq _08002828
- cmp r2, 0x1
- ble _08002830
- cmp r2, 0x2
- beq _08002830
- cmp r2, 0x3
- bne _08002830
- cmp r1, 0x1F
- ble _08002828
- adds r1, 0x20
-_08002828:
- cmp r4, 0x1F
- ble _08002830
- subs r4, 0x20
- adds r1, 0x20
-_08002830:
- lsls r0, r1, 5
- adds r0, r4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetTileMapIndexFromCoords
-
- thumb_func_start CopyTileMapEntry
-CopyTileMapEntry: @ 800283C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r5, [sp, 0x10]
- cmp r2, 0x10
- beq _08002864
- cmp r2, 0x10
- bgt _08002884
- cmp r2, 0
- blt _08002884
- ldrh r0, [r4]
- adds r0, r3
- ldr r3, _08002860 @ =0x00000fff
- adds r1, r3, 0
- ands r0, r1
- adds r1, r2, r5
- lsls r1, 12
- b _0800288A
- .align 2, 0
-_08002860: .4byte 0x00000fff
-_08002864:
- ldrh r1, [r6]
- movs r0, 0xFC
- lsls r0, 8
- ands r1, r0
- lsls r2, r5, 12
- adds r2, r1, r2
- ldrh r0, [r4]
- adds r0, r3
- ldr r3, _08002880 @ =0x000003ff
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- b _0800288C
- .align 2, 0
-_08002880: .4byte 0x000003ff
-_08002884:
- ldrh r0, [r4]
- adds r0, r3
- lsls r1, r5, 12
-_0800288A:
- adds r0, r1
-_0800288C:
- lsls r0, 16
- lsrs r1, r0, 16
- strh r1, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end CopyTileMapEntry
-
- thumb_func_start GetBgType
-GetBgType: @ 8002898
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl GetBgMode
- lsls r0, 24
- lsrs r0, 24
- cmp r4, 0x2
- beq _080028C6
- cmp r4, 0x2
- ble _080028B6
- cmp r4, 0x3
- beq _080028D6
- b _080028DE
-_080028B6:
- cmp r5, 0
- blt _080028DE
- cmp r0, 0x1
- bgt _080028DE
- cmp r0, 0
- blt _080028DE
-_080028C2:
- movs r0, 0
- b _080028E0
-_080028C6:
- cmp r0, 0
- beq _080028C2
- cmp r0, 0
- blt _080028DE
- cmp r0, 0x2
- bgt _080028DE
-_080028D2:
- movs r0, 0x1
- b _080028E0
-_080028D6:
- cmp r0, 0
- beq _080028C2
- cmp r0, 0x2
- beq _080028D2
-_080028DE:
- ldr r0, _080028E8 @ =0x0000ffff
-_080028E0:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080028E8: .4byte 0x0000ffff
- thumb_func_end GetBgType
-
- thumb_func_start IsInvalidBg32
-IsInvalidBg32: @ 80028EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _080028FA
- movs r0, 0
- b _080028FC
-_080028FA:
- movs r0, 0x1
-_080028FC:
- pop {r1}
- bx r1
- thumb_func_end IsInvalidBg32
-
- thumb_func_start IsTileMapOutsideWram
-IsTileMapOutsideWram: @ 8002900
- push {lr}
- lsls r0, 24
- ldr r1, _0800291C @ =gUnknown_30008E8
- lsrs r0, 20
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _08002920 @ =0x03008000
- cmp r1, r0
- bhi _08002924
- cmp r1, 0
- beq _08002924
- movs r0, 0
- b _08002926
- .align 2, 0
-_0800291C: .4byte gUnknown_30008E8
-_08002920: .4byte 0x03008000
-_08002924:
- movs r0, 0x1
-_08002926:
- pop {r1}
- bx r1
- thumb_func_end IsTileMapOutsideWram
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s
index 33e7e386b..132d88a25 100644
--- a/asm/clear_save_data_screen.s
+++ b/asm/clear_save_data_screen.s
@@ -407,11 +407,11 @@ _080F5846:
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080F5944 @ =gUnknown_841EE64
movs r0, 0
movs r2, 0x1
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/credits.s b/asm/credits.s
index 5a7cbd9c0..a2c55239a 100644
--- a/asm/credits.s
+++ b/asm/credits.s
@@ -1225,11 +1225,11 @@ _080F4374:
bl ResetSpriteData
bl ResetTasks
movs r0, 0x1
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080F44A8 @ =gUnknown_840C5A4
movs r0, 0x1
movs r2, 0x3
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0x80
lsls r0, 4
bl Alloc
@@ -1594,11 +1594,11 @@ _080F46A0:
bl ResetSpriteData
bl ResetTasks
movs r0, 0x1
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080F4778 @ =gUnknown_840C5A4
movs r0, 0
movs r2, 0x1
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/diploma.s b/asm/diploma.s
index 3994b228d..f2dfa0785 100644
--- a/asm/diploma.s
+++ b/asm/diploma.s
@@ -357,11 +357,11 @@ _080F4E66:
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080F4F90 @ =gUnknown_8415A08
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index 94e977b3a..f39bc39de 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -579,11 +579,11 @@ _08047090:
strh r0, [r1]
bl reset_temp_tile_data_buffers
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08047158 @ =gUnknown_826019C
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0x1
movs r1, 0
movs r2, 0
diff --git a/asm/fame_checker.s b/asm/fame_checker.s
index e3559bcc1..68e2e1c49 100644
--- a/asm/fame_checker.s
+++ b/asm/fame_checker.s
@@ -122,11 +122,11 @@ _0812C456:
bl AllocZeroed
str r0, [r5]
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0812C4BC @ =gUnknown_845FBF4
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, [r6]
movs r0, 0x3
bl SetBgTilemapBuffer
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index fc58fc678..0a9fbf98a 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -1407,7 +1407,7 @@ _080F28B6:
movs r0, 0x3
bl UnsetBgTilemapBuffer
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
adds r0, r6, 0
bl DestroyTask
ldr r4, _080F292C @ =gUnknown_203AB3C
@@ -2305,7 +2305,7 @@ sub_80F3030: @ 80F3030
movs r0, 0x3
bl UnsetBgTilemapBuffer
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
adds r0, r5, 0
bl DestroyTask
ldr r5, _080F309C @ =gUnknown_203AB3C
@@ -3095,11 +3095,11 @@ _080F36F4: .4byte gUnknown_840C258
sub_80F36F8: @ 80F36F8
push {r4,lr}
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080F3764 @ =gUnknown_840C228
movs r0, 0
movs r2, 0x3
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r4, _080F3768 @ =gUnknown_203AB3C
ldr r1, [r4]
adds r1, 0x6
diff --git a/asm/hof_pc.s b/asm/hof_pc.s
index 554db8992..48085bbd8 100644
--- a/asm/hof_pc.s
+++ b/asm/hof_pc.s
@@ -18,7 +18,7 @@ sub_80CA53C: @ 80CA53C
bne _080CA564
bl FreeAllWindowBuffers
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
adds r0, r4, 0
bl DestroyTask
ldr r0, _080CA570 @ =sub_80F2978
diff --git a/asm/intro.s b/asm/intro.s
index 11e6128f0..cc3f1559d 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -420,11 +420,11 @@ _080EC8A0:
movs r1, 0
bl FillPalette
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080EC940 @ =gUnknown_840BB80
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
b _080EC9B8
.align 2, 0
_080EC928: .4byte gMain
@@ -1137,7 +1137,7 @@ _080ECED8:
ldr r1, _080ECF54 @ =gUnknown_840BB88
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, _080ECF58 @ =gUnknown_84048EC
movs r0, 0
str r0, [sp]
@@ -1469,7 +1469,7 @@ _080ED1C4:
ldr r1, _080ED208 @ =gUnknown_840BB90
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, _080ED20C @ =gUnknown_8405414
movs r0, 0
str r0, [sp]
@@ -1841,7 +1841,7 @@ _080ED4E4:
ldr r1, _080ED590 @ =gUnknown_840BBA0
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, _080ED594 @ =gUnknown_8407470
str r4, [sp]
movs r0, 0x1
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 241805a06..ce700b255 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -533,11 +533,11 @@ sub_81081D0: @ 81081D0
adds r2, r4, 0
bl memset
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08108234 @ =gUnknown_8452CF4
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, [r5]
movs r0, 0x1
bl SetBgTilemapBuffer
diff --git a/asm/item_pc.s b/asm/item_pc.s
index e0c626933..3d02d0d69 100644
--- a/asm/item_pc.s
+++ b/asm/item_pc.s
@@ -402,11 +402,11 @@ sub_810D71C: @ 810D71C
adds r2, r4, 0
bl memset
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0810D780 @ =gUnknown_8453F6C
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, [r5]
movs r0, 0x1
bl SetBgTilemapBuffer
diff --git a/asm/learn_move.s b/asm/learn_move.s
index 9f2629f6b..d726b3bf0 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -71,11 +71,11 @@ sub_80E469C: @ 80E469C
push {r4,r5,lr}
sub sp, 0xC
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080E4774 @ =gUnknown_83FFA3C
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
bl reset_temp_tile_data_buffers
ldr r0, _080E4778 @ =gUnknown_83FFA44
bl InitWindows
diff --git a/asm/link.s b/asm/link.s
index 9d975387d..0dd52991a 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -3269,11 +3269,11 @@ _0800AD30:
ldr r0, _0800ADF8 @ =sub_800978C
bl SetVBlankCallback
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0800ADFC @ =gUnknown_82345E8
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r4, _0800AE00 @ =gUnknown_2022860
movs r0, 0x80
lsls r0, 4
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
index 3bb3ca1bd..0cf9e7529 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -6036,11 +6036,11 @@ _080FFFBC:
.4byte _081000B8
_080FFFD4:
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08100028 @ =gUnknown_843F8A0
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r4, _0810002C @ =gUnknown_203ACEC
ldr r1, [r4]
movs r0, 0xB0
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index d194ed0dd..05e84a1cb 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -12930,11 +12930,11 @@ _0811C2C0:
bl FreeAllSpritePalettes
bl ResetTasks
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0811C354 @ =gUnknown_8457194
movs r0, 0
movs r2, 0x1
- bl sub_8001658
+ bl InitBgsFromTemplates
bl reset_temp_tile_data_buffers
ldr r0, _0811C358 @ =gUnknown_8457198
bl InitWindows
diff --git a/asm/mail.s b/asm/mail.s
index 34fb68748..e00947a9b 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -274,11 +274,11 @@ _080BEDE6:
b _080BF0F4
_080BEE40:
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080BEE6C @ =gUnknown_83EE998
movs r0, 0
movs r2, 0x3
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r4, _080BEE70 @ =gUnknown_20399C4
ldr r1, [r4]
adds r1, 0xFC
diff --git a/asm/main_menu.s b/asm/main_menu.s
index 32563db7e..cd3a008f9 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -119,11 +119,11 @@ sub_800C318: @ 800C318
bl FreeAllSpritePalettes
bl ResetPaletteFade
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0800C4B4 @ =gUnknown_8234690
movs r0, 0
movs r2, 0x1
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/map_preview_screen.s b/asm/map_preview_screen.s
index 3b493fb66..345118304 100644
--- a/asm/map_preview_screen.s
+++ b/asm/map_preview_screen.s
@@ -103,7 +103,7 @@ sub_80F8180: @ 80F8180
ldr r1, _080F8198 @ =gUnknown_843EBB0
movs r0, 0
movs r2, 0x1
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
bl ShowBg
pop {r0}
diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s
index bfeea8b5a..34b6ed87d 100644
--- a/asm/mystery_gift_menu.s
+++ b/asm/mystery_gift_menu.s
@@ -66,11 +66,11 @@ _081420D6:
bl ResetTasks
bl remove_some_task
movs r0, 0x1
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _081421E0 @ =gUnknown_8466D60
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index 2457798b4..60c81ba86 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -364,11 +364,11 @@ _0809DBD6:
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0809DD4C @ =gUnknown_83E2290
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/oak_speech.s b/asm/oak_speech.s
index 97726705d..ef204e879 100644
--- a/asm/oak_speech.s
+++ b/asm/oak_speech.s
@@ -416,11 +416,11 @@ _0812EC44:
b _0812EE94
_0812EC8E:
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0812ECF0 @ =gUnknown_8462E58
movs r0, 0x1
movs r2, 0x3
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r4, _0812ECF4 @ =gUnknown_203B108
ldr r1, [r4]
movs r0, 0xE1
@@ -4391,11 +4391,11 @@ _08130D10: .4byte 0x05000002
_08130D14: .4byte 0x810001ff
_08130D18:
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08130D70 @ =gUnknown_8462E58
movs r0, 0x1
movs r2, 0x3
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r4, _08130D74 @ =gUnknown_203B108
ldr r1, [r4]
movs r0, 0xE1
diff --git a/asm/option_menu.s b/asm/option_menu.s
index 34768ce92..df5d187bc 100644
--- a/asm/option_menu.s
+++ b/asm/option_menu.s
@@ -309,11 +309,11 @@ _08088556:
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08088678 @ =gUnknown_83CC2D8
movs r0, 0
movs r2, 0x3
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/overworld.s b/asm/overworld.s
index 02b5e746f..f9422d297 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -3074,11 +3074,11 @@ sub_80562B0: @ 80562B0
bl MoveSaveBlocks_ResetHeap_
bl sub_8056E80
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08056344 @ =gUnknown_826D320
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0x1
movs r1, 0x5
movs r2, 0x1
@@ -3138,11 +3138,11 @@ sub_8056354: @ 8056354
mov r6, r8
push {r6}
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080563E0 @ =gUnknown_826D320
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0x1
movs r1, 0x5
movs r2, 0x1
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 7ca4b3aa1..6bef97b0c 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -578,11 +578,11 @@ sub_811EECC: @ 811EECC
adds r2, r4, 0
bl memset
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0811EF38 @ =gUnknown_8459EB8
movs r0, 0
movs r2, 0x3
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, [r5]
movs r0, 0x1
bl SetBgTilemapBuffer
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index d8114ea2b..77376e270 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -60,11 +60,11 @@ sub_810250C: @ 810250C
bl ResetTasks
bl remove_some_task
movs r0, 0x1
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08102598 @ =gUnknown_8451EBC
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index b1aaa452e..ad42d068b 100644
--- a/asm/pokemon_special_anim.s
+++ b/asm/pokemon_special_anim.s
@@ -1563,11 +1563,11 @@ sub_811D184: @ 811D184
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0811D270 @ =gUnknown_8459980
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r0, _0811D274 @ =gUnknown_8459988
bl InitWindows
movs r0, 0
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 7eb81d847..7bc405b91 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -6717,7 +6717,7 @@ sub_808EFE4: @ 808EFE4
ldr r1, _0808F030 @ =gUnknown_83CEA50
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, _0808F034 @ =gUnknown_8E9C438
movs r0, 0
str r0, [sp]
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index f6e8dc3ad..28244b569 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -4645,11 +4645,11 @@ _08136BEA:
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08136D40 @ =gUnknown_8463EFC
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/region_map.s b/asm/region_map.s
index 4567e2bf7..fba9869de 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -1392,11 +1392,11 @@ _080C092A:
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080C0A20 @ =gUnknown_83F1A50
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/seagallop.s b/asm/seagallop.s
index 9e189c02e..ea7bd3536 100644
--- a/asm/seagallop.s
+++ b/asm/seagallop.s
@@ -65,11 +65,11 @@ _08146EEE:
bl AllocZeroed
str r0, [r4]
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08146F1C @ =gUnknown_846AEF8
movs r0, 0
movs r2, 0x1
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, [r4]
movs r0, 0x3
bl SetBgTilemapBuffer
diff --git a/asm/shop.s b/asm/shop.s
index a99066578..a9e4ba047 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -644,11 +644,11 @@ _0809AFCA:
sub_809AFD0: @ 809AFD0
push {lr}
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0809B070 @ =gUnknown_83DF0C4
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r0, _0809B074 @ =gUnknown_2039958
ldr r1, [r0]
movs r0, 0x1
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 105e2850f..489ddeee4 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -3474,11 +3474,11 @@ _081411D0:
bl SetGpuReg
bl sub_80F6C14
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _081413A0 @ =gUnknown_8466B10
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r0, _081413A4 @ =gUnknown_8466B20
bl InitWindows
ldr r1, _081413A8 @ =0x0000205c
diff --git a/asm/start_menu.s b/asm/start_menu.s
index 081f0eebf..fc3dea0a9 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -1771,11 +1771,11 @@ _0806FB00:
b _0806FB64
_0806FB12:
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0806FB34 @ =gUnknown_83A73B8
movs r0, 0
movs r2, 0x1
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r0, _0806FB38 @ =gUnknown_83A73BC
bl InitWindows
movs r0, 0
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s
index 9f250560e..9a6f9c115 100644
--- a/asm/teachy_tv.s
+++ b/asm/teachy_tv.s
@@ -239,11 +239,11 @@ sub_815AD88: @ 815AD88
push {r4,lr}
bl sub_80BF7C8
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0815AE20 @ =gUnknown_84792E0
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r4, _0815AE24 @ =gUnknown_203F450
ldr r1, [r4]
adds r1, 0x4
diff --git a/asm/title_screen.s b/asm/title_screen.s
index 0151bcba6..4dc0c43da 100644
--- a/asm/title_screen.s
+++ b/asm/title_screen.s
@@ -79,11 +79,11 @@ _08078946:
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080789E8 @ =gUnknown_83BFB74
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r1, 0x82
lsls r1, 5
movs r0, 0
diff --git a/asm/tm_case.s b/asm/tm_case.s
index e727ee878..bf9163797 100644
--- a/asm/tm_case.s
+++ b/asm/tm_case.s
@@ -342,11 +342,11 @@ sub_8131AB8: @ 8131AB8
bl AllocZeroed
str r0, [r4]
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08131B1C @ =gUnknown_8463134
movs r0, 0
movs r2, 0x3
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r1, [r4]
movs r0, 0x2
bl SetBgTilemapBuffer
diff --git a/asm/trade.s b/asm/trade.s
index 6ebaf9948..406bbc88f 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -30,11 +30,11 @@ sub_804C600: @ 804C600
movs r2, 0x14
bl LoadPalette
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0804C704 @ =gUnknown_8261F1C
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r0, _0804C708 @ =gUnknown_2031DA8
ldr r1, [r0]
movs r0, 0x8F
@@ -7810,11 +7810,11 @@ sub_80504CC: @ 80504CC
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080505B4 @ =gUnknown_826D1D4
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 2cc358510..b60bba1a5 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -1594,11 +1594,11 @@ sub_8089D0C: @ 8089D0C
bl ResetSpriteData
bl ResetPaletteFade
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08089D84 @ =gUnknown_83CD888
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index a9b2bd82d..f463953c4 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -2992,11 +2992,11 @@ sub_8129B14: @ 8129B14
cmp r0, 0
beq _08129B70
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08129B68 @ =gUnknown_845AA84
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r0, _08129B6C @ =gUnknown_845AA94
bl InitWindows
bl reset_temp_tile_data_buffers
diff --git a/asm/unk_8147AA8.s b/asm/unk_8147AA8.s
index d0d6d3791..cd77e0c7d 100644
--- a/asm/unk_8147AA8.s
+++ b/asm/unk_8147AA8.s
@@ -4786,11 +4786,11 @@ _08149DEE:
b _08149F5A
_08149DF0:
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08149EE8 @ =gUnknown_846D8D4
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
ldr r0, _08149EEC @ =gUnknown_846D8E4
bl InitWindows
bl sub_80F6C14
diff --git a/asm/unk_814D5C8.s b/asm/unk_814D5C8.s
index bbde70074..dc4f5ab52 100644
--- a/asm/unk_814D5C8.s
+++ b/asm/unk_814D5C8.s
@@ -75,11 +75,11 @@ _0814D660:
b _0814D878
_0814D66E:
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0814D6F0 @ =gUnknown_846E3CC
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0xE0
lsls r0, 1
adds r1, r5, r0
diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s
index 381c4a092..a46ac1ef6 100644
--- a/asm/unk_81507FC.s
+++ b/asm/unk_81507FC.s
@@ -11239,11 +11239,11 @@ _08155EC6:
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08155FD8 @ =gUnknown_847565C
movs r0, 0
movs r2, 0x4
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
diff --git a/asm/window.s b/asm/window.s
index aaf823c12..670b96cc0 100644
--- a/asm/window.s
+++ b/asm/window.s
@@ -69,7 +69,7 @@ _08003B88:
movs r2, 0
str r2, [sp, 0x4]
_08003B8E:
- ldr r0, _08003BC8 @ =gUnknown_3003D8C
+ ldr r0, _08003BC8 @ =gUnneededFireRedVariable
ldr r0, [r0]
cmp r0, 0x1
bne _08003BCC
@@ -80,7 +80,7 @@ _08003B8E:
adds r0, r7, 0
movs r1, 0
movs r3, 0
- bl sub_80014F0
+ bl DummiedOutFireRedLeafGreenTileAllocFunc
str r0, [sp]
movs r0, 0x1
negs r0, r0
@@ -95,7 +95,7 @@ _08003BB8: .4byte gUnknown_3003E40
_08003BBC: .4byte nullsub_6
_08003BC0: .4byte gUnknown_81EA144
_08003BC4: .4byte gUnknown_20204B4
-_08003BC8: .4byte gUnknown_3003D8C
+_08003BC8: .4byte gUnneededFireRedVariable
_08003BCC:
ldr r0, _08003C04 @ =gUnknown_3003E40
mov r9, r0
@@ -184,7 +184,7 @@ _08003C70:
ldr r1, [r6, 0x4]
str r0, [r2]
str r1, [r2, 0x4]
- ldr r0, _08003CDC @ =gUnknown_3003D8C
+ ldr r0, _08003CDC @ =gUnneededFireRedVariable
ldr r0, [r0]
cmp r0, 0x1
bne _08003CA6
@@ -198,7 +198,7 @@ _08003C70:
adds r0, r7, 0
ldr r1, [sp]
movs r3, 0x1
- bl sub_80014F0
+ bl DummiedOutFireRedLeafGreenTileAllocFunc
_08003CA6:
adds r6, 0x8
ldr r0, [sp, 0x4]
@@ -229,7 +229,7 @@ _08003CC8:
bx r1
.align 2, 0
_08003CD8: .4byte gUnknown_20204B4
-_08003CDC: .4byte gUnknown_3003D8C
+_08003CDC: .4byte gUnneededFireRedVariable
_08003CE0: .4byte gUnknown_3003E30
thumb_func_end InitWindows
@@ -267,7 +267,7 @@ _08003D14:
ldrb r7, [r0]
movs r1, 0
mov r9, r1
- ldr r0, _08003DD8 @ =gUnknown_3003D8C
+ ldr r0, _08003DD8 @ =gUnneededFireRedVariable
ldr r0, [r0]
cmp r0, 0x1
bne _08003D46
@@ -279,7 +279,7 @@ _08003D14:
adds r0, r7, 0
movs r1, 0
movs r3, 0
- bl sub_80014F0
+ bl DummiedOutFireRedLeafGreenTileAllocFunc
mov r9, r0
movs r0, 0x1
negs r0, r0
@@ -356,7 +356,7 @@ _08003DCE:
b _08003E24
.align 2, 0
_08003DD4: .4byte gUnknown_20204B4
-_08003DD8: .4byte gUnknown_3003D8C
+_08003DD8: .4byte gUnneededFireRedVariable
_08003DDC: .4byte gUnknown_3003E40
_08003DE0: .4byte 0x0000ffff
_08003DE4: .4byte nullsub_6
@@ -375,7 +375,7 @@ _08003DE8:
ldr r1, [r3, 0x4]
str r0, [r2]
str r1, [r2, 0x4]
- ldr r0, _08003E38 @ =gUnknown_3003D8C
+ ldr r0, _08003E38 @ =gUnneededFireRedVariable
ldr r0, [r0]
cmp r0, 0x1
bne _08003E22
@@ -388,7 +388,7 @@ _08003DE8:
adds r0, r7, 0
mov r1, r9
movs r3, 0x1
- bl sub_80014F0
+ bl DummiedOutFireRedLeafGreenTileAllocFunc
_08003E22:
adds r0, r6, 0
_08003E24:
@@ -402,7 +402,7 @@ _08003E24:
bx r1
.align 2, 0
_08003E34: .4byte gUnknown_20204B4
-_08003E38: .4byte gUnknown_3003D8C
+_08003E38: .4byte gUnneededFireRedVariable
thumb_func_end AddWindow
thumb_func_start RemoveWindow
@@ -417,7 +417,7 @@ RemoveWindow: @ 8003E3C
adds r4, r0, r1
ldrb r3, [r4]
adds r7, r3, 0
- ldr r0, _08003EBC @ =gUnknown_3003D8C
+ ldr r0, _08003EBC @ =gUnneededFireRedVariable
ldr r0, [r0]
cmp r0, 0x1
bne _08003E68
@@ -427,7 +427,7 @@ RemoveWindow: @ 8003E3C
muls r2, r0
adds r0, r3, 0
movs r3, 0x2
- bl sub_80014F0
+ bl DummiedOutFireRedLeafGreenTileAllocFunc
_08003E68:
ldr r0, _08003EC0 @ =gUnknown_81EA144
ldr r1, [r0, 0x4]
@@ -469,7 +469,7 @@ _08003EB0:
bx r0
.align 2, 0
_08003EB8: .4byte gUnknown_20204B4
-_08003EBC: .4byte gUnknown_3003D8C
+_08003EBC: .4byte gUnneededFireRedVariable
_08003EC0: .4byte gUnknown_81EA144
_08003EC4: .4byte gUnknown_3003E40
_08003EC8: .4byte nullsub_6
diff --git a/asm/wireless_communication_status_screen.s b/asm/wireless_communication_status_screen.s
index c6b667356..abac81dc1 100644
--- a/asm/wireless_communication_status_screen.s
+++ b/asm/wireless_communication_status_screen.s
@@ -57,11 +57,11 @@ sub_814F1E4: @ 814F1E4
movs r0, 0
bl SetVBlankCallback
movs r0, 0
- bl sub_8001618
+ bl ResetBgsAndClearDma3BusyFlags
ldr r1, _0814F30C @ =gUnknown_846FA74
movs r0, 0
movs r2, 0x2
- bl sub_8001658
+ bl InitBgsFromTemplates
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0