summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--asm/battle_1.s2
-rw-r--r--asm/berry_crush_2.s2
-rw-r--r--asm/berry_crush_3.s6
-rw-r--r--asm/berry_pouch.s66
-rw-r--r--asm/bike.s2
-rw-r--r--asm/buy_menu_helpers.s4
-rw-r--r--asm/cable_club.s2
-rw-r--r--asm/diploma.s6
-rw-r--r--asm/dodrio_berry_picking.s6
-rw-r--r--asm/evolution_scene.s4
-rw-r--r--asm/field_camera.s6
-rw-r--r--asm/field_effect.s16
-rw-r--r--asm/field_fadetransition.s18
-rw-r--r--asm/field_message_box.s10
-rw-r--r--asm/field_special_scene.s39
-rw-r--r--asm/field_specials.s2
-rw-r--r--asm/hall_of_fame.s8
-rw-r--r--asm/hof_pc.s118
-rw-r--r--asm/intro.s60
-rw-r--r--asm/item_menu.s52
-rw-r--r--asm/learn_move.s2
-rw-r--r--asm/link.s2
-rw-r--r--asm/link_rfu_3.s14
-rw-r--r--asm/mail.s6
-rw-r--r--asm/mailbox_pc.s2
-rw-r--r--asm/map_preview_screen.s8
-rw-r--r--asm/multiboot.s924
-rw-r--r--asm/new_menu_helpers.s2497
-rw-r--r--asm/overworld.s32
-rw-r--r--asm/party_menu.s102
-rw-r--r--asm/play_time.s137
-rw-r--r--asm/player_pc.s26
-rw-r--r--asm/pokemon_jump_2.s18
-rw-r--r--asm/pokemon_special_anim.s6
-rw-r--r--asm/pokemon_storage_system.s30
-rw-r--r--asm/pokemon_summary_screen.s6
-rw-r--r--asm/region_map.s8
-rw-r--r--asm/script_menu.s40
-rw-r--r--asm/shop.s26
-rw-r--r--asm/slot_machine.s14
-rw-r--r--asm/start_menu.s18
-rw-r--r--asm/title_screen.s20
-rw-r--r--asm/trade.s2
-rw-r--r--asm/union_room_chat.s8
-rw-r--r--data/data_83FECCC.s17
-rw-r--r--data/specials.inc6
-rw-r--r--include/dma3.h51
-rw-r--r--include/gba/defines.h3
-rw-r--r--include/gba/multiboot.h6
-rw-r--r--include/hall_of_fame.h3
-rw-r--r--include/menu.h14
-rw-r--r--include/multiboot.h2
-rw-r--r--include/new_menu_helpers.h32
-rw-r--r--include/overworld.h3
-rw-r--r--include/quest_log.h5
-rw-r--r--include/script.h1
-rw-r--r--include/script_menu.h3
-rw-r--r--include/text.h1
-rw-r--r--include/text_window.h5
-rw-r--r--ld_script.txt10
-rw-r--r--src/bag.c10
-rw-r--r--src/battle_ai_script_commands.c328
-rw-r--r--src/bg.c71
-rw-r--r--src/daycare.c2
-rw-r--r--src/dma3_manager.c411
-rw-r--r--src/fieldmap.c4
-rw-r--r--src/fldeff_softboiled.c4
-rw-r--r--src/hof_pc.c53
-rw-r--r--src/item_pc.c36
-rw-r--r--src/mevent_8145654.c8
-rw-r--r--src/multiboot.c420
-rw-r--r--src/new_menu_helpers.c767
-rw-r--r--src/oak_speech.c22
-rw-r--r--src/play_time.c67
-rw-r--r--src/quest_log.c14
-rw-r--r--src/script.c2
-rw-r--r--src/sprite.c114
-rw-r--r--src/teachy_tv.c34
-rw-r--r--src/text.c1
-rw-r--r--src/text_window.c4
-rw-r--r--src/tm_case.c66
-rw-r--r--src/window.c736
-rw-r--r--sym_bss.txt9
-rw-r--r--sym_ewram.txt14
-rw-r--r--tools/br_ips/br_ips.c1
86 files changed, 2017 insertions, 5721 deletions
diff --git a/.gitignore b/.gitignore
index 7029feac1..a28828524 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,5 +42,6 @@ build/
*.DS_Store
*.pl
*.bak
+src/data/items.h
src/data/items.h # Autogenerated by jsonproc
tools/br_ips/{br_ips,ips_patch}{,.exe}
diff --git a/asm/battle_1.s b/asm/battle_1.s
index d60536883..310d1a791 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -257,7 +257,7 @@ sub_800F380: @ 800F380
movs r0, 0
movs r1, 0x30
movs r2, 0x70
- bl TextWindow_SetBubbleFrame_841F1C8
+ bl TextWindow_LoadResourcesStdFrame0
adds r0, r4, 0
adds r0, 0xEC
movs r1, 0
diff --git a/asm/berry_crush_2.s b/asm/berry_crush_2.s
index 172724d0f..f775bd8dc 100644
--- a/asm/berry_crush_2.s
+++ b/asm/berry_crush_2.s
@@ -2946,7 +2946,7 @@ _0814D1A6:
strb r0, [r5, 0xC]
b _0814D238
_0814D1CA:
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
b _0814D230
_0814D1D0:
bl Menu_ProcessInputNoWrapClearOnChoose
diff --git a/asm/berry_crush_3.s b/asm/berry_crush_3.s
index f9c5008d8..716967e65 100644
--- a/asm/berry_crush_3.s
+++ b/asm/berry_crush_3.s
@@ -50,7 +50,7 @@ _0814D61C:
movs r1, 0
bl SetGpuReg
bl ScanlineEffect_Stop
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
b _0814D878
_0814D63A:
add r0, sp, 0x8
@@ -175,12 +175,12 @@ _0814D73A:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _0814D878
.align 2, 0
_0814D764: .4byte gUnknown_8EAFFC0
_0814D768:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
beq _0814D774
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index d3890c6e8..6aaa9ba76 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -100,7 +100,7 @@ sub_813CE00: @ 813CE00
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
bl UpdatePaletteFade
pop {r0}
bx r0
@@ -184,7 +184,7 @@ _0813CE84:
.4byte _0813CFBE
_0813CED0:
bl SetVBlankHBlankCallbacksToNull
- bl clear_scheduled_bg_copies_to_vram
+ bl ClearScheduledBgCopiesToVram
b _0813CFD2
_0813CEDA:
bl ScanlineEffect_Stop
@@ -405,7 +405,7 @@ sub_813D07C: @ 813D07C
movs r0, 0x1
bl SetBgTilemapBuffer
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x50
movs r1, 0
bl SetGpuReg
@@ -454,18 +454,18 @@ _0813D10C:
beq _0813D178
b _0813D190
_0813D116:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r1, _0813D12C @ =gUnknown_8E859D0
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _0813D17E
.align 2, 0
_0813D12C: .4byte gUnknown_8E859D0
_0813D130:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1030,7 +1030,7 @@ sub_813D594: @ 813D594
movs r3, 0x1E
bl SetBgRectPal
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r0}
bx r0
@@ -2111,9 +2111,9 @@ sub_813DE0C: @ 813DE0C
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0813DE60 @ =gUnknown_203F370
ldrb r0, [r0, 0x4]
cmp r0, 0x4
@@ -2309,9 +2309,9 @@ sub_813DFC8: @ 813DFC8
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl sub_813D4B0
@@ -2370,9 +2370,9 @@ _0813E048:
movs r0, 0
bl sub_813EA98
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_813D684
adds r0, r5, 0
bl sub_813DF54
@@ -2395,9 +2395,9 @@ _0813E090:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl sub_813D4B0
@@ -2519,7 +2519,7 @@ _0813E18A:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r5]
movs r1, 0x1
bl sub_813D4B0
@@ -2555,9 +2555,9 @@ sub_813E200: @ 813E200
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl CalculatePlayerPartyCount
lsls r0, 24
cmp r0, 0
@@ -2659,7 +2659,7 @@ sub_813E2B8: @ 813E2B8
lsrs r0, 24
strh r0, [r5]
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r5]
movs r1, 0x1
bl sub_813D4B0
@@ -2693,9 +2693,9 @@ sub_813E320: @ 813E320
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0813E378 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -2964,7 +2964,7 @@ sub_813E568: @ 813E568
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl sub_813D4B0
@@ -3130,7 +3130,7 @@ _0813E6E4:
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_813D684
adds r0, r4, 0
bl sub_813E4E4
@@ -3157,7 +3157,7 @@ _0813E718:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_813D684
ldrb r0, [r5]
movs r1, 0x1
@@ -3184,7 +3184,7 @@ sub_813E768: @ 813E768
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0813E7D8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0813E7DC @ =gStringVar1
@@ -3371,7 +3371,7 @@ sub_813E910: @ 813E910
movs r0, 0
movs r1, 0x13
movs r2, 0xD0
- bl TextWindow_SetBubbleFrame_841F1C8
+ bl TextWindow_LoadResourcesStdFrame0
movs r0, 0
movs r1, 0xA
movs r2, 0xC0
@@ -3397,9 +3397,9 @@ _0813E946:
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r4, 0
ldr r3, _0813E99C @ =gUnknown_203F38C
movs r2, 0xFF
@@ -3522,7 +3522,7 @@ _0813EA54:
bl SetWindowBorderStyle
_0813EA60:
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0813EA74 @ =gUnknown_203F38C
adds r0, r4, r0
ldrb r0, [r0]
@@ -3568,7 +3568,7 @@ sub_813EA98: @ 813EA98
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0xFF
strb r0, [r4]
pop {r4}
@@ -3597,9 +3597,9 @@ sub_813EACC: @ 813EACC
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0xFF
strb r0, [r4]
_0813EB04:
@@ -3656,7 +3656,7 @@ _0813EB44:
movs r3, 0xD
bl DisplayMessageAndContinueTask
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x10
pop {r3}
mov r8, r3
diff --git a/asm/bike.s b/asm/bike.s
index b731e51c0..94583aa47 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -730,7 +730,7 @@ StartTransitionToFlipBikeState: @ 80BD5C8
movs r0, 0x1
bl SetPlayerAvatarTransitionFlags
bl sav1_reset_battle_music_maybe
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
b _080BD618
.align 2, 0
_080BD5F0: .4byte gUnknown_2036E2C
diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s
index ed18eb711..1eba8e42e 100644
--- a/asm/buy_menu_helpers.s
+++ b/asm/buy_menu_helpers.s
@@ -28,7 +28,7 @@ _0813F686:
movs r0, 0
movs r1, 0x13
movs r2, 0xE0
- bl TextWindow_SetBubbleFrame_841F1C8
+ bl TextWindow_LoadResourcesStdFrame0
movs r0, 0
movs r1, 0xA
movs r2, 0xF0
@@ -155,7 +155,7 @@ sub_813F75C: @ 813F75C
movs r3, 0xE
bl DisplayMessageAndContinueTask
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x10
pop {r3}
mov r8, r3
diff --git a/asm/cable_club.s b/asm/cable_club.s
index b9b3a595c..ff11c4cef 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -55,7 +55,7 @@ sub_808078C: @ 808078C
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
ldr r5, _080807E0 @ =gStringVar4
ldr r1, _080807E4 @ =gUnknown_841DF82
adds r0, r5, 0
diff --git a/asm/diploma.s b/asm/diploma.s
index cfc70d694..f3fc0871a 100644
--- a/asm/diploma.s
+++ b/asm/diploma.s
@@ -463,7 +463,7 @@ _080F4FB8:
beq _080F4FEE
b _080F4FF8
_080F4FC2:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
b _080F5000
_080F4FC8:
ldr r1, _080F4FDC @ =gUnknown_84147C0
@@ -472,12 +472,12 @@ _080F4FC8:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _080F5000
.align 2, 0
_080F4FDC: .4byte gUnknown_84147C0
_080F4FE0:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s
index 160208493..35fefbe29 100644
--- a/asm/dodrio_berry_picking.s
+++ b/asm/dodrio_berry_picking.s
@@ -11348,7 +11348,7 @@ _08156020:
.align 2, 0
_0815602C: .4byte gUnknown_84758A8
_08156030:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
b _08156082
_08156036:
ldr r1, _08156040 @ =gUnknown_8475B3C
@@ -11366,12 +11366,12 @@ _08156044:
_0815604C:
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _08156082
.align 2, 0
_08156058: .4byte gUnknown_84763CC
_0815605C:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 08aa16703..e151e6d7d 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -1870,7 +1870,7 @@ _080CEDC6:
cmp r4, 0
bne _080CEE40
bl StopMapMusic
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
ldrh r1, [r5, 0xE]
movs r0, 0x80
orrs r0, r1
@@ -1944,7 +1944,7 @@ _080CEE74:
cmp r0, 0
bne _080CEE90
bl StopMapMusic
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
_080CEE90:
movs r2, 0x1A
ldrsh r0, [r4, r2]
diff --git a/asm/field_camera.s b/asm/field_camera.s
index 5541c6472..f6cbbd0ef 100644
--- a/asm/field_camera.s
+++ b/asm/field_camera.s
@@ -710,11 +710,11 @@ _0805AAA2:
strh r0, [r3]
_0805AABE:
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4}
pop {r0}
bx r0
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 255379525..f833b963a 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -2062,7 +2062,7 @@ _0808438C: .4byte mapldr_08084390
thumb_func_start mapldr_08084390
mapldr_08084390: @ 8084390
push {r4,lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_807DC00
ldr r0, _080843E8 @ =c3_080843F8
movs r1, 0
@@ -2154,7 +2154,7 @@ _08084450: .4byte gPaletteFade
thumb_func_start sub_8084454
sub_8084454: @ 8084454
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -2885,7 +2885,7 @@ _080849F0: .4byte sub_80847C0
thumb_func_start sub_80849F4
sub_80849F4: @ 80849F4
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -3909,7 +3909,7 @@ _080851B8: .4byte sub_8084F44
thumb_func_start mapldr_080851BC
mapldr_080851BC: @ 80851BC
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -4965,7 +4965,7 @@ _080859C4:
thumb_func_start sub_80859D4
sub_80859D4: @ 80859D4
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -5431,7 +5431,7 @@ _08085D84: .4byte sub_8085B78
thumb_func_start mapldr_08085D88
mapldr_08085D88: @ 8085D88
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
@@ -6185,7 +6185,7 @@ sub_8086358: @ 8086358
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F77B8
+ bl Menu_LoadStdPal
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
@@ -6568,7 +6568,7 @@ sub_8086650: @ 8086650
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F77B8
+ bl Menu_LoadStdPal
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s
index ceaaaf7a6..a53329fab 100644
--- a/asm/field_fadetransition.s
+++ b/asm/field_fadetransition.s
@@ -245,7 +245,7 @@ _0807DCDC:
sub_807DCE4: @ 807DCE4
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_807DC00
ldr r0, _0807DD00 @ =task0A_nop_for_a_while
movs r1, 0xA
@@ -277,7 +277,7 @@ _0807DD1C:
FieldCallback_ReturnToEventScript2: @ 807DD24
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_807DC00
ldr r0, _0807DD40 @ =task0A_asap_script_env_2_enable_and_set_ctx_running
movs r1, 0xA
@@ -366,7 +366,7 @@ _0807DDCA:
sub_807DDD0: @ 807DDD0
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl palette_bg_faded_fill_black
ldr r0, _0807DDEC @ =task_mpl_807DD60
movs r1, 0xA
@@ -434,7 +434,7 @@ _0807DE50:
sub_807DE58: @ 807DE58
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl palette_bg_faded_fill_black
ldr r0, _0807DE74 @ =sub_807DDF0
movs r1, 0xA
@@ -563,7 +563,7 @@ _0807DF5E:
thumb_func_start sub_807DF64
sub_807DF64: @ 807DF64
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_8111CF0
movs r0, 0
bl sub_807DE78
@@ -575,7 +575,7 @@ sub_807DF64: @ 807DF64
thumb_func_start sub_807DF7C
sub_807DF7C: @ 807DF7C
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_8111CF0
movs r0, 0x1
bl sub_807DE78
@@ -587,7 +587,7 @@ sub_807DF7C: @ 807DF7C
thumb_func_start sub_807DF94
sub_807DF94: @ 807DF94
push {lr}
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl sub_8111CF0
movs r0, 0x28
@@ -1112,7 +1112,7 @@ _0807E3E4:
sub_807E3EC: @ 807E3EC
push {lr}
bl ScriptContext2_Enable
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl sub_807DC00
ldr r0, _0807E408 @ =task_mpl_807E3C8
movs r1, 0xA
@@ -2188,7 +2188,7 @@ sub_807EC34: @ 807EC34
.align 2, 0
_0807EC6C: .4byte gTasks+0x8
_0807EC70:
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
bl pal_fill_for_maplights
bl ScriptContext2_Enable
adds r0, r5, 0x2
diff --git a/asm/field_message_box.s b/asm/field_message_box.s
index 46f4c3f8e..a326e0f59 100644
--- a/asm/field_message_box.s
+++ b/asm/field_message_box.s
@@ -65,13 +65,13 @@ _0806939E:
movs r1, 0x80
lsls r1, 2
movs r0, 0
- bl sub_814FF98
+ bl TextWindow_LoadTilesStdFrame1
b _080693E2
.align 2, 0
_080693BC: .4byte gUnknown_203ADFA
_080693C0: .4byte gTextFlags
_080693C4:
- bl sub_8069A38
+ bl IsMsgSignPost
lsls r0, 24
cmp r0, 0
bne _080693D4
@@ -90,7 +90,7 @@ _080693E2:
strh r0, [r5, 0x8]
b _08069402
_080693EA:
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -226,7 +226,7 @@ textbox_fdecode_auto_and_task_add: @ 80694C8
ldr r0, _080694E0 @ =gStringVar4
bl StringExpandPlaceholders
movs r0, 0x1
- bl sub_80F6D5C
+ bl AddTextPrinterDiffStyle
bl task_add_textbox
pop {r0}
bx r0
@@ -238,7 +238,7 @@ _080694E0: .4byte gStringVar4
textbox_auto_and_task_add: @ 80694E4
push {lr}
movs r0, 0x1
- bl sub_80F6D5C
+ bl AddTextPrinterDiffStyle
bl task_add_textbox
pop {r0}
bx r0
diff --git a/asm/field_special_scene.s b/asm/field_special_scene.s
deleted file mode 100644
index ab436029f..000000000
--- a/asm/field_special_scene.s
+++ /dev/null
@@ -1,39 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A0E78
-sub_80A0E78: @ 80A0E78
- movs r0, 0
- bx lr
- thumb_func_end sub_80A0E78
-
- thumb_func_start nullsub_57
-nullsub_57: @ 80A0E7C
- bx lr
- thumb_func_end nullsub_57
-
- thumb_func_start nullsub_58
-nullsub_58: @ 80A0E80
- bx lr
- thumb_func_end nullsub_58
-
- thumb_func_start nullsub_59
-nullsub_59: @ 80A0E84
- bx lr
- thumb_func_end nullsub_59
-
- thumb_func_start nullsub_60
-nullsub_60: @ 80A0E88
- bx lr
- thumb_func_end nullsub_60
-
- thumb_func_start nullsub_61
-nullsub_61: @ 80A0E8C
- bx lr
- thumb_func_end nullsub_61
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_specials.s b/asm/field_specials.s
index ad1806d2e..4331fbd74 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -2631,7 +2631,7 @@ _080CB9D2:
lsrs r0, 24
strh r0, [r5, 0x22]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
ldr r4, _080CBA70 @ =gUnknown_3005360
ldrh r0, [r5, 0xA]
strh r0, [r4, 0xC]
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index c70a06c58..4d861b902 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -2322,7 +2322,7 @@ _080F3082:
bl Free
str r4, [r5]
_080F3090:
- bl sub_80CA5A0
+ bl ReturnFromHallOfFamePC
_080F3094:
pop {r4,r5}
pop {r0}
@@ -3073,7 +3073,7 @@ sub_80F36BC: @ 80F36BC
bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
bl ResetAllPicSprites
bl FreeAllSpritePalettes
ldr r1, _080F36EC @ =gReservedSpritePaletteCount
@@ -3174,12 +3174,12 @@ _080F37A4:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _080F3854
.align 2, 0
_080F37B8: .4byte gUnknown_840C3BC
_080F37BC:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
beq _080F3854
diff --git a/asm/hof_pc.s b/asm/hof_pc.s
deleted file mode 100644
index 80f7fc3f9..000000000
--- a/asm/hof_pc.s
+++ /dev/null
@@ -1,118 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80CA53C
-sub_80CA53C: @ 80CA53C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA56C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CA564
- bl FreeAllWindowBuffers
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _080CA570 @ =sub_80F2978
- bl SetMainCallback2
-_080CA564:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA56C: .4byte gPaletteFade
-_080CA570: .4byte sub_80F2978
- thumb_func_end sub_80CA53C
-
- thumb_func_start sub_80CA574
-sub_80CA574: @ 80CA574
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl ScriptContext2_Enable
- ldr r0, _080CA59C @ =sub_80CA53C
- movs r1, 0
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CA59C: .4byte sub_80CA53C
- thumb_func_end sub_80CA574
-
- thumb_func_start sub_80CA5A0
-sub_80CA5A0: @ 80CA5A0
- push {lr}
- ldr r0, _080CA5B4 @ =CB2_ReturnToField
- bl SetMainCallback2
- ldr r1, _080CA5B8 @ =gFieldCallback
- ldr r0, _080CA5BC @ =sub_80CA5C0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080CA5B4: .4byte CB2_ReturnToField
-_080CA5B8: .4byte gFieldCallback
-_080CA5BC: .4byte sub_80CA5C0
- thumb_func_end sub_80CA5A0
-
- thumb_func_start sub_80CA5C0
-sub_80CA5C0: @ 80CA5C0
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl sub_8055DC4
- bl sp109_CreatePCMenu
- bl sub_809D254
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080CA5F4 @ =sub_80CA5F8
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CA5F4: .4byte sub_80CA5F8
- thumb_func_end sub_80CA5C0
-
- thumb_func_start sub_80CA5F8
-sub_80CA5F8: @ 80CA5F8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CA614 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CA610
- adds r0, r2, 0
- bl DestroyTask
-_080CA610:
- pop {r0}
- bx r0
- .align 2, 0
-_080CA614: .4byte gPaletteFade
- thumb_func_end sub_80CA5F8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/intro.s b/asm/intro.s
index de2b73004..4933785df 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -381,7 +381,7 @@ _080EC8A0:
bl ResetTasks
bl ResetSpriteData
bl ResetPaletteFade
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
bl sub_80ECA00
add r1, sp, 0x4
movs r0, 0
@@ -445,13 +445,13 @@ _080EC944:
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080EC980 @ =gUnknown_8402668
str r4, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _080EC984 @ =gUnknown_840270C
movs r1, 0xD0
movs r2, 0x20
@@ -463,7 +463,7 @@ _080EC97C: .4byte gUnknown_8402650
_080EC980: .4byte gUnknown_8402668
_080EC984: .4byte gUnknown_840270C
_080EC988:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _080EC9C6
@@ -1144,13 +1144,13 @@ _080ECED8:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ECF5C @ =gUnknown_8404F7C
movs r0, 0x1
str r0, [sp]
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
movs r0, 0x1
bl ShowBg
movs r0, 0
@@ -1172,7 +1172,7 @@ _080ECF58: .4byte gUnknown_84048EC
_080ECF5C: .4byte gUnknown_8404F7C
_080ECF60: .4byte sub_80EC9EC
_080ECF64:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -1184,15 +1184,15 @@ _080ECF72:
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ECFA0 @ =gUnknown_8403FE8
movs r0, 0x1
str r0, [sp]
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- bl sub_80F6C14
+ bl DecompressAndCopyTileDataToVram
+ bl ResetBgPositions
movs r0, 0x1
bl ShowBg
b _080ECFF0
@@ -1200,7 +1200,7 @@ _080ECF72:
_080ECF9C: .4byte gUnknown_8402D54
_080ECFA0: .4byte gUnknown_8403FE8
_080ECFA4:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _080ED094
@@ -1476,14 +1476,14 @@ _080ED1C4:
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ED210 @ =gUnknown_8405890
movs r0, 0x1
str r0, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
movs r0, 0x3
bl ShowBg
b _080ED3CA
@@ -1493,7 +1493,7 @@ _080ED208: .4byte gUnknown_840BB90
_080ED20C: .4byte gUnknown_8405414
_080ED210: .4byte gUnknown_8405890
_080ED214:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
@@ -1527,39 +1527,39 @@ _080ED222:
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ED310 @ =gUnknown_8405CDC
movs r4, 0x1
str r4, [sp]
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ED314 @ =gUnknown_8406654
str r6, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ED318 @ =gUnknown_84071D0
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ED31C @ =gUnknown_8405DC4
str r6, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ED320 @ =gUnknown_840644C
str r4, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- bl sub_80F6C14
+ bl DecompressAndCopyTileDataToVram
+ bl ResetBgPositions
movs r0, 0
bl ShowBg
movs r0, 0x1
@@ -1602,7 +1602,7 @@ _080ED320: .4byte gUnknown_840644C
_080ED324: .4byte sub_80ED40C
_080ED328: .4byte sub_80EC9EC
_080ED32C:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _080ED3F6
@@ -1847,13 +1847,13 @@ _080ED4E4:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ED598 @ =gUnknown_8407A50
movs r0, 0x1
str r0, [sp]
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
movs r0, 0x1
bl ShowBg
movs r0, 0
@@ -1862,7 +1862,7 @@ _080ED4E4:
bl HideBg
movs r0, 0x3
bl HideBg
- bl sub_80F6C14
+ bl ResetBgPositions
ldrb r0, [r5, 0x4]
adds r0, 0x1
strb r0, [r5, 0x4]
@@ -1895,7 +1895,7 @@ _080ED590: .4byte gUnknown_840BBA0
_080ED594: .4byte gUnknown_8407470
_080ED598: .4byte gUnknown_8407A50
_080ED59C:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -1905,13 +1905,13 @@ _080ED59C:
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ED5F0 @ =gUnknown_8408D98
str r4, [sp]
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _080ED5F4 @ =gUnknown_203AB00
movs r0, 0x4
strh r0, [r1]
@@ -1935,7 +1935,7 @@ _080ED5F0: .4byte gUnknown_8408D98
_080ED5F4: .4byte gUnknown_203AB00
_080ED5F8: .4byte gUnknown_203AB02
_080ED5FC:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -2730,7 +2730,7 @@ _080EDBF8:
strb r0, [r4, 0x4]
b _080EDC34
_080EDC0C:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _080EDC34
diff --git a/asm/item_menu.s b/asm/item_menu.s
index d01991989..001198d95 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -170,7 +170,7 @@ sub_8107EE0: @ 8107EE0
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
bl UpdatePaletteFade
pop {r0}
bx r0
@@ -254,7 +254,7 @@ _08107F60:
.4byte _081080DE
_08107FB0:
bl SetVBlankHBlankCallbacksToNull
- bl clear_scheduled_bg_copies_to_vram
+ bl ClearScheduledBgCopiesToVram
b _08108104
_08107FBA:
bl ScanlineEffect_Stop
@@ -542,7 +542,7 @@ sub_81081D0: @ 81081D0
movs r0, 0x1
bl SetBgTilemapBuffer
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r1, 0xC1
lsls r1, 6
movs r0, 0
@@ -595,19 +595,19 @@ _08108264:
.4byte _08108340
.4byte _0810834C
_0810827C:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r1, _08108294 @ =gUnknown_8E830CC
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _08108352
.align 2, 0
_08108294: .4byte gUnknown_8E830CC
_08108298:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2192,7 +2192,7 @@ DisplayItemMessageInBag: @ 8108E70
movs r3, 0xD
bl DisplayMessageAndContinueTask
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x10
pop {r3,r4}
mov r8, r3
@@ -2516,7 +2516,7 @@ sub_8109140: @ 8109140
movs r3, 0x1E
bl SetBgRectPal
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r0}
bx r0
@@ -2619,7 +2619,7 @@ sub_81091D0: @ 81091D0
adds r2, r3
bl DestroyListMenu
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _08109290 @ =gUnknown_203AD10
ldr r0, [r0]
ldrb r1, [r0, 0x5]
@@ -2640,7 +2640,7 @@ _08109242:
movs r3, 0x1
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0810928C @ =gUnknown_203ACFC
ldrb r0, [r0, 0x6]
adds r0, r6
@@ -2792,7 +2792,7 @@ _08109358:
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108888
bl sub_81088D8
adds r0, r6, 0
@@ -3374,7 +3374,7 @@ sub_8109854: @ 8109854
movs r2, 0xB
bl CopyToBgTilemapBufferRect
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r0}
bx r0
@@ -3852,7 +3852,7 @@ sub_8109C50: @ 8109C50
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl CalculatePlayerPartyCount
lsls r0, 24
cmp r0, 0
@@ -4008,7 +4008,7 @@ sub_8109DB0: @ 8109DB0
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -4066,7 +4066,7 @@ _08109E20:
movs r0, 0
bl sub_810BA3C
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108978
adds r0, r5, 0
bl sub_8109D38
@@ -4089,7 +4089,7 @@ _08109E64:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -4234,7 +4234,7 @@ _08109F6E:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r7]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -4538,7 +4538,7 @@ sub_810A1F8: @ 810A1F8
lsrs r0, 24
strh r0, [r5]
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r5]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -4582,7 +4582,7 @@ sub_810A288: @ 810A288
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -4611,7 +4611,7 @@ sub_810A2DC: @ 810A2DC
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0810A320 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -5160,7 +5160,7 @@ sub_810A720: @ 810A720
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
@@ -5339,7 +5339,7 @@ _0810A8BC:
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108978
adds r0, r4, 0
bl sub_810A690
@@ -5366,7 +5366,7 @@ _0810A8F0:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108978
ldrb r0, [r5]
movs r1, 0x1
@@ -5393,7 +5393,7 @@ sub_810A940: @ 810A940
movs r0, 0
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0810A9B8 @ =gSpecialVar_ItemId
ldrh r0, [r0]
ldr r1, _0810A9BC @ =gStringVar1
@@ -5690,7 +5690,7 @@ _0810ABBC:
movs r0, 0
bl sub_810BA3C
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_8108978
adds r0, r5, 0
bl sub_810AC40
@@ -5711,7 +5711,7 @@ _0810AC00:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrb r0, [r4]
movs r1, 0x1
bl bag_menu_print_cursor_
diff --git a/asm/learn_move.s b/asm/learn_move.s
index 4a37c7eae..f00135fda 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -76,7 +76,7 @@ sub_80E469C: @ 80E469C
movs r0, 0
movs r2, 0x2
bl InitBgsFromTemplates
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r0, _080E4778 @ =gUnknown_83FFA44
bl InitWindows
lsls r0, 16
diff --git a/asm/link.s b/asm/link.s
index 28dc18656..7275ebbd2 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -3288,7 +3288,7 @@ _0800AD30:
cmp r0, 0
beq _0800ADD8
bl DeactivateAllTextPrinters
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
movs r0, 0x52
movs r1, 0
bl SetGpuReg
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 50121e847..31d1e465b 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -8491,7 +8491,7 @@ sub_811A0B4: @ 811A0B4
bl StringExpandPlaceholders
movs r0, 0
movs r1, 0x1
- bl sub_80F6E54
+ bl AddTextPrinterWithCustomSpeedForMessage
movs r0, 0
pop {r4}
pop {r1}
@@ -8503,7 +8503,7 @@ _0811A0DC: .4byte gStringVar4
thumb_func_start sub_811A0E0
sub_811A0E0: @ 811A0E0
push {lr}
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
cmp r0, 0
beq _0811A0F0
@@ -8536,7 +8536,7 @@ _0811A10A:
adds r1, r5, 0
bl StringExpandPlaceholders
movs r0, 0x1
- bl sub_80F6E08
+ bl AddTextPrinterForMessage
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -8544,7 +8544,7 @@ _0811A10A:
.align 2, 0
_0811A12C: .4byte gStringVar4
_0811A130:
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -8578,7 +8578,7 @@ _0811A15E:
negs r0, r0
b _0811A1A4
_0811A168:
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -12935,7 +12935,7 @@ _0811C2C0:
movs r0, 0
movs r2, 0x1
bl InitBgsFromTemplates
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r0, _0811C358 @ =gUnknown_8457198
bl InitWindows
lsls r0, 16
@@ -12967,7 +12967,7 @@ _0811C300:
movs r1, 0x1
movs r2, 0xD0
bl TextWindow_SetStdFrame0_WithPal
- bl sub_80F77B8
+ bl Menu_LoadStdPal
ldr r0, _0811C35C @ =sub_811C1B4
bl SetVBlankCallback
ldr r1, _0811C360 @ =gMain
diff --git a/asm/mail.s b/asm/mail.s
index 77f8864ed..23aba36f6 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -240,7 +240,7 @@ _080BEDE0:
b _080BF0F4
_080BEDE6:
bl FreeAllSpritePalettes
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
movs r0, 0x10
movs r1, 0
bl SetGpuReg
@@ -318,13 +318,13 @@ _080BEE88:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _080BF0F4
.align 2, 0
_080BEEB0: .4byte gUnknown_83EE9C8
_080BEEB4: .4byte gUnknown_20399C4
_080BEEB8:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _080BEEC4
diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s
index aecca0735..e41fb23c1 100644
--- a/asm/mailbox_pc.s
+++ b/asm/mailbox_pc.s
@@ -60,7 +60,7 @@ sub_810EBAC: @ 810EBAC
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
_0810EBD0:
ldrb r0, [r4]
pop {r4}
diff --git a/asm/map_preview_screen.s b/asm/map_preview_screen.s
index be9f5e3c5..900b36d9c 100644
--- a/asm/map_preview_screen.s
+++ b/asm/map_preview_screen.s
@@ -123,7 +123,7 @@ sub_80F819C: @ 80F819C
lsrs r5, r0, 24
cmp r5, 0x1C
beq _080F8224
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r4, _080F8200 @ =gUnknown_843E9E8
lsls r5, 4
adds r0, r4, 0
@@ -141,7 +141,7 @@ sub_80F819C: @ 80F819C
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
movs r0, 0
bl GetBgTilemapBuffer
cmp r0, 0
@@ -206,7 +206,7 @@ _080F8254: .4byte gUnknown_203ABED
thumb_func_start sub_80F8258
sub_80F8258: @ 80F8258
push {lr}
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -440,7 +440,7 @@ _080F8448:
lsls r0, 24
cmp r0, 0
beq _080F853C
- bl sub_8055DC4
+ bl Overworld_PlaySpecialMapMusic
b _080F84EA
_080F8458:
ldrh r0, [r4, 0x2]
diff --git a/asm/multiboot.s b/asm/multiboot.s
deleted file mode 100644
index 615995301..000000000
--- a/asm/multiboot.s
+++ /dev/null
@@ -1,924 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start MultiBootInit
-MultiBootInit: @ 800BC20
- adds r2, r0, 0
- movs r1, 0
- strb r1, [r2, 0x1E]
- strb r1, [r2, 0x18]
- strb r1, [r2, 0x1D]
- adds r3, r2, 0
- adds r3, 0x4A
- movs r0, 0xF
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x48
- strb r1, [r0]
- strh r1, [r2, 0x16]
- ldr r0, _0800BC4C @ =0x04000134
- strh r1, [r0]
- ldr r2, _0800BC50 @ =0x04000128
- ldr r3, _0800BC54 @ =0x00002003
- adds r0, r3, 0
- strh r0, [r2]
- ldr r0, _0800BC58 @ =0x0400012a
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0800BC4C: .4byte 0x04000134
-_0800BC50: .4byte 0x04000128
-_0800BC54: .4byte 0x00002003
-_0800BC58: .4byte 0x0400012a
- thumb_func_end MultiBootInit
-
- thumb_func_start MultiBootMain
-MultiBootMain: @ 800BC5C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- bl MultiBootCheckComplete
- cmp r0, 0
- beq _0800BC72
- b _0800C03A
-_0800BC72:
- adds r0, r7, 0
- adds r0, 0x4A
- ldrb r1, [r0]
- mov r10, r0
- cmp r1, 0xF
- bls _0800BC86
- subs r0, r1, 0x1
- mov r1, r10
- strb r0, [r1]
- b _0800C03A
-_0800BC86:
- adds r1, r7, 0
- adds r1, 0x48
- ldrb r0, [r1]
- cmp r0, 0
- beq _0800BCB0
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0800BCAC @ =0x04000128
- ldrh r0, [r0]
- movs r5, 0xFC
- ands r5, r0
- cmp r5, 0x8
- beq _0800BCB0
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x8
- eors r0, r5
- b _0800C03C
- .align 2, 0
-_0800BCAC: .4byte 0x04000128
-_0800BCB0:
- ldrb r0, [r7, 0x18]
- cmp r0, 0xDF
- bls _0800BD02
- adds r0, r7, 0
- bl MultiBootHandShake
- adds r5, r0, 0
- cmp r5, 0
- beq _0800BCC4
- b _0800C03C
-_0800BCC4:
- adds r0, r7, 0
- adds r0, 0x4B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800BCE0
- ldrb r0, [r7, 0x18]
- cmp r0, 0xE1
- bls _0800BCE0
- adds r0, r7, 0
- bl MultiBootCheckComplete
- cmp r0, 0
- bne _0800BCE0
- b _0800C02A
-_0800BCE0:
- adds r0, r7, 0
- bl MultiBootCheckComplete
- cmp r0, 0
- beq _0800BCEC
- b _0800C03A
-_0800BCEC:
- ldrh r0, [r7, 0x16]
- cmp r0, 0
- bne _0800BCFC
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x71
- b _0800C03C
-_0800BCFC:
- subs r0, 0x1
- strh r0, [r7, 0x16]
- b _0800C03A
-_0800BD02:
- ldrb r0, [r7, 0x18]
- cmp r0, 0x2
- bne _0800BD0A
- b _0800BE40
-_0800BD0A:
- cmp r0, 0x2
- bgt _0800BD18
- cmp r0, 0
- beq _0800BD26
- cmp r0, 0x1
- beq _0800BDE2
- b _0800BF78
-_0800BD18:
- cmp r0, 0xD0
- bne _0800BD1E
- b _0800BE8C
-_0800BD1E:
- cmp r0, 0xD1
- bne _0800BD24
- b _0800BF26
-_0800BD24:
- b _0800BF78
-_0800BD26:
- movs r3, 0xE
- movs r5, 0x3
- ldr r0, _0800BD6C @ =0x04000120
- ldrh r0, [r0, 0x6]
- adds r1, r0, 0
- ldr r0, _0800BD70 @ =0x0000ffff
- ldrb r2, [r7, 0x1E]
- adds r6, r2, 0
- cmp r1, r0
- bne _0800BD4E
- adds r4, r1, 0
- ldr r1, _0800BD74 @ =0x04000126
-_0800BD3E:
- asrs r3, 1
- subs r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- beq _0800BD4E
- ldrh r0, [r1]
- cmp r0, r4
- beq _0800BD3E
-_0800BD4E:
- movs r0, 0xE
- ands r3, r0
- strb r3, [r7, 0x1D]
- movs r5, 0x3
- ldr r0, _0800BD6C @ =0x04000120
- ldrh r0, [r0, 0x6]
- adds r4, r0, 0
- asrs r0, r2, 3
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0800BD7C
- ldr r0, _0800BD78 @ =0x00007208
- b _0800BDA2
- .align 2, 0
-_0800BD6C: .4byte 0x04000120
-_0800BD70: .4byte 0x0000ffff
-_0800BD74: .4byte 0x04000126
-_0800BD78: .4byte 0x00007208
-_0800BD7C:
- subs r5, 0x1
- cmp r5, 0
- beq _0800BDA8
- lsls r0, r5, 1
- ldr r1, _0800BDD0 @ =0x04000120
- adds r0, r1
- ldrh r0, [r0]
- adds r4, r0, 0
- adds r0, r2, 0
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0800BD7C
- adds r0, r1, 0
- lsls r0, r5
- movs r1, 0xE4
- lsls r1, 7
- orrs r0, r1
-_0800BDA2:
- cmp r4, r0
- beq _0800BD7C
- movs r3, 0
-_0800BDA8:
- adds r0, r3, 0
- ands r0, r6
- strb r0, [r7, 0x1E]
- cmp r3, 0
- bne _0800BDB8
- movs r0, 0xF
- mov r2, r10
- strb r0, [r2]
-_0800BDB8:
- mov r1, r10
- ldrb r0, [r1]
- cmp r0, 0
- bne _0800BDD4
- ldrb r0, [r7, 0x1D]
- ldrb r2, [r7, 0x1E]
- cmp r0, r2
- beq _0800BDDA
- adds r0, r7, 0
- bl MultiBootStartProbe
- b _0800BDE2
- .align 2, 0
-_0800BDD0: .4byte 0x04000120
-_0800BDD4:
- subs r0, 0x1
- mov r1, r10
- strb r0, [r1]
-_0800BDDA:
- ldrb r1, [r7, 0x1E]
- movs r2, 0xC4
- lsls r2, 7
- b _0800BEE2
-_0800BDE2:
- adds r1, r7, 0
- adds r1, 0x49
- movs r0, 0
- strb r0, [r1]
- movs r5, 0x3
- mov r12, r1
- ldr r3, _0800BE38 @ =gUnknown_3000E6C
-_0800BDF0:
- lsls r0, r5, 1
- ldr r2, _0800BE3C @ =0x04000120
- adds r0, r2
- ldrh r0, [r0]
- adds r4, r0, 0
- asrs r0, r4, 8
- subs r2, r5, 0x1
- cmp r0, 0x72
- bne _0800BE1A
- lsls r0, r2, 1
- adds r0, r3
- strh r4, [r0]
- movs r0, 0xFF
- ands r4, r0
- movs r0, 0x1
- lsls r0, r5
- cmp r4, r0
- bne _0800BE1A
- ldrb r0, [r1]
- orrs r4, r0
- strb r4, [r1]
-_0800BE1A:
- adds r5, r2, 0
- cmp r5, 0
- bne _0800BDF0
- ldrb r0, [r7, 0x1D]
- mov r1, r12
- ldrb r1, [r1]
- cmp r0, r1
- bne _0800BDDA
- movs r0, 0x2
- strb r0, [r7, 0x18]
- mov r2, r12
- ldrb r1, [r2]
- movs r2, 0xC2
- lsls r2, 7
- b _0800BEE2
- .align 2, 0
-_0800BE38: .4byte gUnknown_3000E6C
-_0800BE3C: .4byte 0x04000120
-_0800BE40:
- movs r5, 0x3
- movs r0, 0x49
- adds r0, r7
- mov r12, r0
- mov r4, r12
- movs r6, 0x1
- ldr r1, _0800BE84 @ =gUnknown_3000E6C
- mov r9, r1
- ldr r2, _0800BE88 @ =0x04000120
- mov r8, r2
-_0800BE54:
- ldrb r3, [r4]
- adds r0, r3, 0
- asrs r0, r5
- ands r0, r6
- subs r2, r5, 0x1
- cmp r0, 0
- beq _0800BE7A
- lsls r0, r5, 1
- add r0, r8
- ldrh r1, [r0]
- lsls r0, r2, 1
- add r0, r9
- ldrh r0, [r0]
- cmp r1, r0
- beq _0800BE7A
- adds r0, r6, 0
- lsls r0, r5
- eors r3, r0
- strb r3, [r4]
-_0800BE7A:
- adds r5, r2, 0
- cmp r5, 0
- bne _0800BE54
- b _0800BFE0
- .align 2, 0
-_0800BE84: .4byte gUnknown_3000E6C
-_0800BE88: .4byte 0x04000120
-_0800BE8C:
- movs r3, 0x1
- movs r5, 0x3
- movs r0, 0x49
- adds r0, r7
- mov r12, r0
- adds r6, r7, 0
- adds r6, 0x19
- ldr r1, _0800BEF0 @ =gUnknown_3000E6C
- mov r8, r1
-_0800BE9E:
- lsls r0, r5, 1
- ldr r2, _0800BEF4 @ =0x04000120
- adds r0, r2
- ldrh r0, [r0]
- adds r4, r0, 0
- subs r2, r5, 0x1
- adds r0, r6, r2
- strb r4, [r0]
- mov r0, r12
- ldrb r1, [r0]
- asrs r1, r5
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0800BED2
- asrs r0, r4, 8
- subs r0, 0x72
- cmp r0, 0x1
- bls _0800BEC6
- b _0800C030
-_0800BEC6:
- lsls r0, r2, 1
- add r0, r8
- ldrh r0, [r0]
- cmp r4, r0
- bne _0800BED2
- movs r3, 0
-_0800BED2:
- adds r5, r2, 0
- cmp r5, 0
- bne _0800BE9E
- cmp r3, 0
- bne _0800BEF8
- ldrb r1, [r7, 0x1C]
- movs r2, 0xC6
- lsls r2, 7
-_0800BEE2:
- adds r0, r2, 0
- orrs r1, r0
- adds r0, r7, 0
- bl MultiBootSend
- b _0800C03C
- .align 2, 0
-_0800BEF0: .4byte gUnknown_3000E6C
-_0800BEF4: .4byte 0x04000120
-_0800BEF8:
- movs r0, 0xD1
- strb r0, [r7, 0x18]
- movs r3, 0x11
- movs r5, 0x3
- adds r1, r6, 0x2
-_0800BF02:
- ldrb r0, [r1]
- adds r3, r0
- subs r1, 0x1
- subs r5, 0x1
- cmp r5, 0
- bne _0800BF02
- strb r3, [r7, 0x14]
- movs r0, 0xFF
- ands r3, r0
- movs r1, 0xC8
- lsls r1, 7
- adds r0, r1, 0
- orrs r3, r0
- adds r0, r7, 0
- adds r1, r3, 0
- bl MultiBootSend
- b _0800C03C
-_0800BF26:
- movs r5, 0x3
- movs r2, 0x49
- ldrb r1, [r2, r7]
- ldr r2, _0800BF64 @ =0x04000126
- movs r3, 0x1
-_0800BF30:
- ldrh r0, [r2]
- adds r4, r0, 0
- adds r0, r1, 0
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _0800BF44
- asrs r0, r4, 8
- cmp r0, 0x73
- bne _0800C030
-_0800BF44:
- subs r2, 0x2
- subs r5, 0x1
- cmp r5, 0
- bne _0800BF30
- adds r0, r7, 0
- bl MultiBoot
- adds r5, r0, 0
- cmp r5, 0
- bne _0800BF68
- movs r0, 0xE0
- strb r0, [r7, 0x18]
- adds r0, 0xB0
- strh r0, [r7, 0x16]
- b _0800C03A
- .align 2, 0
-_0800BF64: .4byte 0x04000126
-_0800BF68:
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x1E
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x70
- b _0800C03C
-_0800BF78:
- movs r5, 0x3
- movs r2, 0x49
- adds r2, r7
- mov r12, r2
- mov r8, r12
- movs r0, 0x1
- mov r9, r0
-_0800BF86:
- mov r1, r8
- ldrb r6, [r1]
- adds r0, r6, 0
- asrs r0, r5
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- beq _0800BFC0
- lsls r0, r5, 1
- ldr r1, _0800BFDC @ =0x04000120
- adds r0, r1
- ldrh r0, [r0]
- adds r4, r0, 0
- asrs r2, r4, 8
- ldrb r0, [r7, 0x18]
- lsrs r0, 1
- movs r1, 0x62
- subs r1, r0
- mov r3, r9
- lsls r3, r5
- cmp r2, r1
- bne _0800BFBA
- movs r0, 0xFF
- ands r4, r0
- cmp r4, r3
- beq _0800BFC0
-_0800BFBA:
- eors r6, r3
- mov r2, r8
- strb r6, [r2]
-_0800BFC0:
- subs r5, 0x1
- cmp r5, 0
- bne _0800BF86
- ldrb r0, [r7, 0x18]
- cmp r0, 0xC4
- bne _0800BFE0
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0xE
- ands r0, r1
- strb r0, [r7, 0x1E]
- strb r5, [r7, 0x18]
- b _0800BDDA
- .align 2, 0
-_0800BFDC: .4byte 0x04000120
-_0800BFE0:
- mov r1, r12
- ldrb r0, [r1]
- cmp r0, 0
- bne _0800BFF2
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x50
- b _0800C03C
-_0800BFF2:
- ldrb r0, [r7, 0x18]
- adds r0, 0x2
- strb r0, [r7, 0x18]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xC4
- bne _0800C002
- b _0800BDDA
-_0800C002:
- ldrb r0, [r7, 0x18]
- ldr r1, [r7, 0x28]
- adds r0, r1
- subs r1, r0, 0x3
- ldrb r2, [r1]
- lsls r2, 8
- subs r0, 0x4
- ldrb r1, [r0]
- orrs r1, r2
- adds r0, r7, 0
- bl MultiBootSend
- adds r5, r0, 0
- cmp r5, 0
- bne _0800C03C
- adds r0, r7, 0
- adds r0, 0x4B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800C03A
-_0800C02A:
- bl MultiBootWaitSendDone
- b _0800BC86
-_0800C030:
- adds r0, r7, 0
- bl MultiBootInit
- movs r0, 0x60
- b _0800C03C
-_0800C03A:
- movs r0, 0
-_0800C03C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end MultiBootMain
-
- thumb_func_start MultiBootSend
-MultiBootSend: @ 800C04C
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _0800C078 @ =0x04000128
- ldrh r0, [r3]
- movs r4, 0x8C
- ands r4, r0
- cmp r4, 0x8
- bne _0800C084
- ldr r0, _0800C07C @ =0x0400012a
- strh r1, [r0]
- ldr r1, _0800C080 @ =0x00002083
- adds r0, r1, 0
- strh r0, [r3]
- adds r1, r2, 0
- adds r1, 0x48
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- b _0800C090
- .align 2, 0
-_0800C078: .4byte 0x04000128
-_0800C07C: .4byte 0x0400012a
-_0800C080: .4byte 0x00002083
-_0800C084:
- adds r0, r2, 0
- bl MultiBootInit
- movs r0, 0x8
- eors r4, r0
- adds r0, r4, 0
-_0800C090:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MultiBootSend
-
- thumb_func_start MultiBootStartProbe
-MultiBootStartProbe: @ 800C098
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- beq _0800C0AA
- adds r0, r1, 0
- bl MultiBootInit
- b _0800C0B6
-_0800C0AA:
- adds r2, r1, 0
- adds r2, 0x4A
- strb r0, [r2]
- strb r0, [r1, 0x1E]
- movs r0, 0x1
- strb r0, [r1, 0x18]
-_0800C0B6:
- pop {r0}
- bx r0
- thumb_func_end MultiBootStartProbe
-
- thumb_func_start MultiBootStartMaster
-MultiBootStartMaster: @ 800C0BC
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r0, [sp, 0x14]
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r0, 24
- lsrs r7, r0, 24
- movs r3, 0
- ldrb r0, [r4, 0x18]
- cmp r0, 0
- bne _0800C0F8
- ldrb r0, [r4, 0x1E]
- cmp r0, 0
- beq _0800C0F8
- adds r0, r4, 0
- adds r0, 0x4A
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800C0F8
- str r6, [r4, 0x20]
- adds r2, 0xF
- movs r0, 0x10
- negs r0, r0
- ands r2, r0
- subs r0, 0xF0
- adds r1, r2, r0
- ldr r0, _0800C100 @ =0x0003ff00
- cmp r1, r0
- bls _0800C104
-_0800C0F8:
- adds r0, r4, 0
- bl MultiBootInit
- b _0800C178
- .align 2, 0
-_0800C100: .4byte 0x0003ff00
-_0800C104:
- adds r0, r6, r2
- str r0, [r4, 0x24]
- lsls r1, r7, 24
- movs r2, 0x80
- lsls r2, 19
- adds r0, r1, r2
- asrs r0, 24
- adds r2, r1, 0
- cmp r0, 0x8
- bhi _0800C164
- lsls r0, 2
- ldr r1, _0800C124 @ =_0800C128
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800C124: .4byte _0800C128
- .align 2, 0
-_0800C128:
- .4byte _0800C14C
- .4byte _0800C14C
- .4byte _0800C14C
- .4byte _0800C14C
- .4byte _0800C156
- .4byte _0800C15C
- .4byte _0800C15C
- .4byte _0800C15C
- .4byte _0800C15C
-_0800C14C:
- lsls r3, r5, 3
- asrs r1, r2, 24
- movs r0, 0x3
- subs r0, r1
- b _0800C162
-_0800C156:
- movs r0, 0x38
- adds r3, r5, 0
- b _0800C162
-_0800C15C:
- lsls r3, r5, 3
- asrs r0, r2, 24
- subs r0, 0x1
-_0800C162:
- orrs r3, r0
-_0800C164:
- movs r0, 0x3F
- ands r3, r0
- lsls r0, r3, 1
- movs r2, 0x7F
- negs r2, r2
- adds r1, r2, 0
- orrs r0, r1
- strb r0, [r4, 0x1C]
- movs r0, 0xD0
- strb r0, [r4, 0x18]
-_0800C178:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end MultiBootStartMaster
-
- thumb_func_start MultiBootCheckComplete
-MultiBootCheckComplete: @ 800C180
- push {lr}
- ldrb r0, [r0, 0x18]
- cmp r0, 0xE9
- beq _0800C18C
- movs r0, 0
- b _0800C18E
-_0800C18C:
- movs r0, 0x1
-_0800C18E:
- pop {r1}
- bx r1
- thumb_func_end MultiBootCheckComplete
-
- thumb_func_start MultiBootHandShake
-MultiBootHandShake: @ 800C194
- push {r4-r6,lr}
- adds r3, r0, 0
- ldrb r0, [r3, 0x18]
- cmp r0, 0xE0
- beq _0800C1B0
- cmp r0, 0xE0
- blt _0800C1C0
- cmp r0, 0xE8
- bgt _0800C1C0
- cmp r0, 0xE7
- blt _0800C1C0
- movs r4, 0x3
- ldrb r5, [r3, 0x1E]
- b _0800C220
-_0800C1B0:
- movs r1, 0
- movs r0, 0xE1
- strb r0, [r3, 0x18]
- str r1, [r3, 0x4]
- movs r0, 0x80
- lsls r0, 13
- str r0, [r3]
- b _0800C212
-_0800C1C0:
- movs r4, 0x3
- ldrb r5, [r3, 0x1E]
- movs r6, 0x1
- ldr r1, _0800C21C @ =0x04000126
-_0800C1C8:
- ldrh r0, [r1]
- adds r2, r0, 0
- adds r0, r5, 0
- asrs r0, r4
- ands r0, r6
- cmp r0, 0
- beq _0800C1DC
- ldr r0, [r3, 0x4]
- cmp r2, r0
- bne _0800C1B0
-_0800C1DC:
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bne _0800C1C8
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- strb r0, [r3, 0x18]
- ldr r1, [r3]
- ldrh r0, [r3]
- str r0, [r3, 0x4]
- cmp r1, 0
- bne _0800C20A
- ldr r0, [r3, 0x28]
- adds r1, r0, 0
- adds r1, 0xAC
- ldrb r1, [r1]
- adds r0, 0xAD
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- str r1, [r3, 0x4]
- lsls r1, 5
- str r1, [r3]
-_0800C20A:
- ldr r0, [r3]
- lsrs r0, 5
- str r0, [r3]
-_0800C210:
- ldrh r1, [r3]
-_0800C212:
- adds r0, r3, 0
- bl MultiBootSend
- b _0800C278
- .align 2, 0
-_0800C21C: .4byte 0x04000126
-_0800C220:
- lsls r0, r4, 1
- ldr r1, _0800C268 @ =0x04000120
- adds r0, r1
- ldrh r0, [r0]
- adds r2, r0, 0
- adds r0, r5, 0
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0800C23C
- ldr r0, [r3, 0x4]
- cmp r2, r0
- bne _0800C26C
-_0800C23C:
- subs r4, 0x1
- cmp r4, 0
- bne _0800C220
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- strb r0, [r3, 0x18]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE9
- beq _0800C276
- ldr r0, [r3, 0x28]
- adds r1, r0, 0
- adds r1, 0xAE
- ldrb r1, [r1]
- adds r0, 0xAF
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- str r1, [r3]
- str r1, [r3, 0x4]
- b _0800C210
- .align 2, 0
-_0800C268: .4byte 0x04000120
-_0800C26C:
- adds r0, r3, 0
- bl MultiBootInit
- movs r0, 0x71
- b _0800C278
-_0800C276:
- movs r0, 0
-_0800C278:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end MultiBootHandShake
-
- thumb_func_start MultiBootWaitCycles
-MultiBootWaitCycles: @ 800C280
- mov r2, pc
- lsrs r2, 24
- movs r1, 0xC
- cmp r2, 0x2
- beq _0800C292
- movs r1, 0xD
- cmp r2, 0x8
- beq _0800C292
- movs r1, 0x4
-_0800C292:
- subs r0, r1
- bgt _0800C292
- bx lr
- thumb_func_end MultiBootWaitCycles
-
- thumb_func_start MultiBootWaitSendDone
-MultiBootWaitSendDone: @ 800C298
- push {r4,r5,lr}
- movs r2, 0
- ldr r3, _0800C2CC @ =0x04000128
- ldrh r1, [r3]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0800C2BC
- ldr r5, _0800C2D0 @ =0x0000795c
- movs r4, 0x80
-_0800C2AC:
- adds r2, 0x1
- cmp r2, r5
- bgt _0800C2BC
- ldrh r1, [r3]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _0800C2AC
-_0800C2BC:
- movs r0, 0x96
- lsls r0, 2
- bl MultiBootWaitCycles
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C2CC: .4byte 0x04000128
-_0800C2D0: .4byte 0x0000795c
- thumb_func_end MultiBootWaitSendDone
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s
deleted file mode 100644
index 5e7b10e5b..000000000
--- a/asm/new_menu_helpers.s
+++ /dev/null
@@ -1,2497 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start clear_scheduled_bg_copies_to_vram
-clear_scheduled_bg_copies_to_vram: @ 80F6790
- push {lr}
- ldr r0, _080F67A0 @ =gUnknown_203AB58
- movs r1, 0
- movs r2, 0x4
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080F67A0: .4byte gUnknown_203AB58
- thumb_func_end clear_scheduled_bg_copies_to_vram
-
- thumb_func_start schedule_bg_copy_tilemap_to_vram
-schedule_bg_copy_tilemap_to_vram: @ 80F67A4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080F67B4 @ =gUnknown_203AB58
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080F67B4: .4byte gUnknown_203AB58
- thumb_func_end schedule_bg_copy_tilemap_to_vram
-
- thumb_func_start do_scheduled_bg_tilemap_copies_to_vram
-do_scheduled_bg_tilemap_copies_to_vram: @ 80F67B8
- push {r4,lr}
- ldr r4, _080F6804 @ =gUnknown_203AB58
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080F67CC
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4]
-_080F67CC:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- bne _080F67DC
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4, 0x1]
-_080F67DC:
- ldrb r0, [r4, 0x2]
- cmp r0, 0x1
- bne _080F67EC
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4, 0x2]
-_080F67EC:
- ldrb r0, [r4, 0x3]
- cmp r0, 0x1
- bne _080F67FC
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4, 0x3]
-_080F67FC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6804: .4byte gUnknown_203AB58
- thumb_func_end do_scheduled_bg_tilemap_copies_to_vram
-
- thumb_func_start reset_temp_tile_data_buffers
-reset_temp_tile_data_buffers: @ 80F6808
- push {lr}
- ldr r3, _080F6824 @ =gUnknown_203AB5C
- ldr r1, _080F6828 @ =gUnknown_203AB60
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x7C
-_080F6814:
- str r2, [r0]
- subs r0, 0x4
- cmp r0, r1
- bge _080F6814
- movs r0, 0
- strh r0, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_080F6824: .4byte gUnknown_203AB5C
-_080F6828: .4byte gUnknown_203AB60
- thumb_func_end reset_temp_tile_data_buffers
-
- thumb_func_start free_temp_tile_data_buffers_if_possible
-free_temp_tile_data_buffers_if_possible: @ 80F682C
- push {r4-r6,lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _080F6870
- ldr r1, _080F6868 @ =gUnknown_203AB5C
- ldrh r0, [r1]
- cmp r0, 0
- beq _080F6864
- movs r4, 0
- ldrh r1, [r1]
- cmp r4, r1
- bge _080F685E
- ldr r5, _080F686C @ =gUnknown_203AB60
- movs r6, 0
-_080F684C:
- ldr r0, [r5]
- bl Free
- stm r5!, {r6}
- adds r4, 0x1
- ldr r0, _080F6868 @ =gUnknown_203AB5C
- ldrh r0, [r0]
- cmp r4, r0
- blt _080F684C
-_080F685E:
- ldr r1, _080F6868 @ =gUnknown_203AB5C
- movs r0, 0
- strh r0, [r1]
-_080F6864:
- movs r0, 0
- b _080F6872
- .align 2, 0
-_080F6868: .4byte gUnknown_203AB5C
-_080F686C: .4byte gUnknown_203AB60
-_080F6870:
- movs r0, 0x1
-_080F6872:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end free_temp_tile_data_buffers_if_possible
-
- thumb_func_start decompress_and_copy_tile_data_to_vram
-decompress_and_copy_tile_data_to_vram: @ 80F6878
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r6, _080F68D8 @ =gUnknown_203AB5C
- ldrh r0, [r6]
- cmp r0, 0x1F
- bhi _080F68E0
- adds r0, r4, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r4, r0, 0
- cmp r5, 0
- bne _080F68B0
- ldr r5, [sp, 0x4]
-_080F68B0:
- cmp r4, 0
- beq _080F68D4
- lsls r2, r5, 16
- lsrs r2, 16
- str r7, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r3, r9
- bl sub_80F6AD0
- ldr r2, _080F68DC @ =gUnknown_203AB60
- ldrh r0, [r6]
- adds r1, r0, 0x1
- strh r1, [r6]
- lsls r0, 16
- lsrs r0, 14
- adds r0, r2
- str r4, [r0]
-_080F68D4:
- adds r0, r4, 0
- b _080F68E2
- .align 2, 0
-_080F68D8: .4byte gUnknown_203AB5C
-_080F68DC: .4byte gUnknown_203AB60
-_080F68E0:
- movs r0, 0
-_080F68E2:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end decompress_and_copy_tile_data_to_vram
-
- thumb_func_start sub_80F68F0
-sub_80F68F0: @ 80F68F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r4, r1, 0
- adds r6, r2, 0
- ldr r1, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r5, _080F6954 @ =gUnknown_203AB5C
- ldrh r0, [r5]
- cmp r0, 0x1F
- bhi _080F695C
- adds r0, r4, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r4, r0, 0
- ldr r0, [sp, 0x4]
- cmp r0, r6
- bls _080F692A
- str r6, [sp, 0x4]
-_080F692A:
- cmp r4, 0
- beq _080F6950
- ldr r2, [sp, 0x4]
- lsls r2, 16
- lsrs r2, 16
- str r7, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r3, r9
- bl sub_80F6AD0
- ldr r2, _080F6958 @ =gUnknown_203AB60
- ldrh r0, [r5]
- adds r1, r0, 0x1
- strh r1, [r5]
- lsls r0, 16
- lsrs r0, 14
- adds r0, r2
- str r4, [r0]
-_080F6950:
- adds r0, r4, 0
- b _080F695E
- .align 2, 0
-_080F6954: .4byte gUnknown_203AB5C
-_080F6958: .4byte gUnknown_203AB60
-_080F695C:
- movs r0, 0
-_080F695E:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F68F0
-
- thumb_func_start DecompressAndLoadBgGfxUsingHeap
-DecompressAndLoadBgGfxUsingHeap: @ 80F696C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r5, r2, 0
- ldr r2, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r2, 24
- lsrs r7, r2, 24
- adds r0, r1, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r6, r0, 0
- cmp r5, 0
- bne _080F699A
- ldr r5, [sp, 0x4]
-_080F699A:
- cmp r6, 0
- beq _080F69D2
- ldr r0, _080F69E0 @ =task_free_buf_after_copying_tile_data_to_vram
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, r5, 16
- lsrs r2, 16
- str r7, [sp]
- mov r0, r8
- adds r1, r6, 0
- mov r3, r9
- bl sub_80F6AD0
- ldr r2, _080F69E4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r6, 0
- bl SetWordTaskArg
-_080F69D2:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F69E0: .4byte task_free_buf_after_copying_tile_data_to_vram
-_080F69E4: .4byte gTasks
- thumb_func_end DecompressAndLoadBgGfxUsingHeap
-
- thumb_func_start sub_80F69E8
-sub_80F69E8: @ 80F69E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r2, 0
- ldr r2, [sp, 0x20]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- adds r0, r1, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r5, r0, 0
- ldr r0, [sp, 0x4]
- cmp r0, r4
- bls _080F6A14
- str r4, [sp, 0x4]
-_080F6A14:
- cmp r5, 0
- beq _080F6A4E
- ldr r0, _080F6A5C @ =task_free_buf_after_copying_tile_data_to_vram
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, [sp, 0x4]
- lsls r2, 16
- lsrs r2, 16
- str r6, [sp]
- adds r0, r7, 0
- adds r1, r5, 0
- mov r3, r8
- bl sub_80F6AD0
- ldr r2, _080F6A60 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r5, 0
- bl SetWordTaskArg
-_080F6A4E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6A5C: .4byte task_free_buf_after_copying_tile_data_to_vram
-_080F6A60: .4byte gTasks
- thumb_func_end sub_80F69E8
-
- thumb_func_start task_free_buf_after_copying_tile_data_to_vram
-task_free_buf_after_copying_tile_data_to_vram: @ 80F6A64
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080F6A9C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- bl CheckForSpaceForDma3Request
- lsls r0, 16
- cmp r0, 0
- bne _080F6A94
- adds r0, r4, 0
- movs r1, 0x1
- bl GetWordTaskArg
- bl Free
- adds r0, r4, 0
- bl DestroyTask
-_080F6A94:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6A9C: .4byte gTasks
- thumb_func_end task_free_buf_after_copying_tile_data_to_vram
-
- thumb_func_start malloc_and_decompress
-malloc_and_decompress: @ 80F6AA0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r0, [r5, 0x1]
- strb r0, [r1]
- ldrb r0, [r5, 0x2]
- strb r0, [r1, 0x1]
- ldrb r0, [r5, 0x3]
- strb r0, [r1, 0x2]
- movs r0, 0
- strb r0, [r1, 0x3]
- ldr r0, [r1]
- bl Alloc
- adds r4, r0, 0
- cmp r4, 0
- beq _080F6AC8
- adds r0, r5, 0
- adds r1, r4, 0
- bl LZ77UnCompWram
-_080F6AC8:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end malloc_and_decompress
-
- thumb_func_start sub_80F6AD0
-sub_80F6AD0: @ 80F6AD0
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, [sp, 0x8]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _080F6AEE
- cmp r1, 0x1
- beq _080F6AF6
-_080F6AEE:
- adds r1, r4, 0
- bl LoadBgTiles
- b _080F6AFC
-_080F6AF6:
- adds r1, r4, 0
- bl LoadBgTilemap
-_080F6AFC:
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6AD0
-
- thumb_func_start SetBgRectPal
-SetBgRectPal: @ 80F6B08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r2, 0
- ldr r4, [sp, 0x28]
- ldr r2, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- bl GetBgTilemapBuffer
- mov r8, r0
- adds r0, r5, r4
- cmp r5, r0
- bge _080F6B80
- mov r9, r0
-_080F6B46:
- ldr r3, [sp]
- ldr r1, [sp, 0x4]
- adds r0, r3, r1
- adds r7, r5, 0x1
- cmp r3, r0
- bge _080F6B78
- lsls r6, r5, 5
- ldr r1, _080F6B90 @ =0x00000fff
- mov r12, r1
- mov r1, r10
- lsls r5, r1, 12
- adds r4, r0, 0
-_080F6B5E:
- adds r1, r6, r3
- lsls r1, 1
- add r1, r8
- ldrh r2, [r1]
- mov r0, r12
- ands r0, r2
- orrs r0, r5
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r4
- blt _080F6B5E
-_080F6B78:
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, r9
- blt _080F6B46
-_080F6B80:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6B90: .4byte 0x00000fff
- thumb_func_end SetBgRectPal
-
- thumb_func_start sub_80F6B94
-sub_80F6B94: @ 80F6B94
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r1
- ldr r1, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- bl GetBgTilemapBuffer
- adds r7, r0, 0
- movs r0, 0
- cmp r0, r8
- bcs _080F6C02
-_080F6BCC:
- movs r2, 0
- adds r6, r0, 0x1
- cmp r2, r5
- bcs _080F6BFA
- adds r4, r0, 0
- muls r4, r5
- ldr r1, [sp]
- adds r0, r1
- lsls r3, r0, 5
-_080F6BDE:
- adds r1, r4, r2
- lsls r1, 1
- add r1, r10
- adds r0, r3, r2
- add r0, r9
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r5
- bcc _080F6BDE
-_080F6BFA:
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, r8
- bcc _080F6BCC
-_080F6C02:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F6B94
-
- thumb_func_start sub_80F6C14
-sub_80F6C14: @ 80F6C14
- push {lr}
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- pop {r0}
- bx r0
- thumb_func_end sub_80F6C14
-
- thumb_func_start InitStandardTextBoxWindows
-InitStandardTextBoxWindows: @ 80F6C6C
- push {lr}
- ldr r0, _080F6C84 @ =gUnknown_841F42C
- bl InitWindows
- ldr r1, _080F6C88 @ =gUnknown_203ABE0
- movs r0, 0xFF
- strb r0, [r1]
- bl sub_8112EA8
- pop {r0}
- bx r0
- .align 2, 0
-_080F6C84: .4byte gUnknown_841F42C
-_080F6C88: .4byte gUnknown_203ABE0
- thumb_func_end InitStandardTextBoxWindows
-
- thumb_func_start sub_80F6C8C
-sub_80F6C8C: @ 80F6C8C
- push {lr}
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- thumb_func_end sub_80F6C8C
-
- thumb_func_start ResetBg0
-ResetBg0: @ 80F6C98
- push {lr}
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- bl DeactivateAllTextPrinters
- bl sub_80F6E9C
- pop {r0}
- bx r0
- thumb_func_end ResetBg0
-
- thumb_func_start sub_80F6CBC
-sub_80F6CBC: @ 80F6CBC
- push {lr}
- bl RunTextPrinters
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80F6CBC
-
- thumb_func_start AddTextPrinterParameterized2
-AddTextPrinterParameterized2: @ 80F6CD0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r7, [sp, 0x28]
- ldr r4, [sp, 0x2C]
- mov r8, r4
- ldr r5, [sp, 0x30]
- ldr r6, [sp, 0x34]
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- str r2, [sp]
- mov r2, sp
- movs r4, 0
- strb r0, [r2, 0x4]
- mov r0, sp
- strb r1, [r0, 0x5]
- strb r4, [r0, 0x6]
- movs r1, 0x1
- strb r1, [r0, 0x7]
- strb r4, [r0, 0x8]
- strb r1, [r0, 0x9]
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r4, sp
- ldrb r2, [r4, 0xC]
- subs r1, 0x11
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r4, 0xC]
- mov r0, sp
- mov r2, r8
- lsls r2, 4
- movs r4, 0xF
- strb r2, [r0, 0xC]
- mov r2, sp
- ands r5, r4
- ldrb r0, [r2, 0xD]
- ands r1, r0
- orrs r1, r5
- strb r1, [r2, 0xD]
- mov r0, sp
- lsrs r6, 20
- ands r1, r4
- orrs r1, r6
- strb r1, [r0, 0xD]
- ldr r2, _080F6D58 @ =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, sp
- adds r1, r3, 0
- adds r2, r7, 0
- bl AddTextPrinter
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080F6D58: .4byte gTextFlags
- thumb_func_end AddTextPrinterParameterized2
-
- thumb_func_start sub_80F6D5C
-sub_80F6D5C: @ 80F6D5C
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- ldr r3, _080F6DA8 @ =gTextFlags
- movs r4, 0x1
- ands r0, r4
- ldrb r2, [r3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
- bl ContextNpcGetTextColor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080F6DB0
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6DAC @ =gStringVar4
- str r5, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParameterized2
- b _080F6DFC
- .align 2, 0
-_080F6DA8: .4byte gTextFlags
-_080F6DAC: .4byte gStringVar4
-_080F6DB0:
- cmp r0, 0x1
- bne _080F6DDC
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6DD8 @ =gStringVar4
- str r5, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x5
- bl AddTextPrinterParameterized2
- b _080F6DFC
- .align 2, 0
-_080F6DD8: .4byte gStringVar4
-_080F6DDC:
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6E04 @ =gStringVar4
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- bl AddTextPrinterParameterized2
-_080F6DFC:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E04: .4byte gStringVar4
- thumb_func_end sub_80F6D5C
-
- thumb_func_start sub_80F6E08
-sub_80F6E08: @ 80F6E08
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080F6E4C @ =gTextFlags
- movs r4, 0x1
- ands r0, r4
- ldrb r2, [r3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6E50 @ =gStringVar4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- bl AddTextPrinterParameterized2
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E4C: .4byte gTextFlags
-_080F6E50: .4byte gStringVar4
- thumb_func_end sub_80F6E08
-
- thumb_func_start sub_80F6E54
-sub_80F6E54: @ 80F6E54
- push {r4,r5,lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, _080F6E94 @ =gTextFlags
- movs r5, 0x1
- ands r0, r5
- ldrb r2, [r4]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4]
- ldr r2, _080F6E98 @ =gStringVar4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- bl AddTextPrinterParameterized2
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E94: .4byte gTextFlags
-_080F6E98: .4byte gStringVar4
- thumb_func_end sub_80F6E54
-
- thumb_func_start sub_80F6E9C
-sub_80F6E9C: @ 80F6E9C
- push {lr}
- ldr r0, _080F6EBC @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080F6EC4
- ldr r2, _080F6EC0 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl sub_814FF98
- b _080F6ED4
- .align 2, 0
-_080F6EBC: .4byte gUnknown_203ADFA
-_080F6EC0: .4byte gTextFlags
-_080F6EC4:
- bl sub_80F77B8
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- movs r2, 0xF0
- bl TextWindow_SetBubbleFrame_841F1C8
-_080F6ED4:
- movs r1, 0x85
- lsls r1, 2
- movs r0, 0
- movs r2, 0xE0
- bl TextWindow_SetUserSelectedFrame
- pop {r0}
- bx r0
- thumb_func_end sub_80F6E9C
-
- thumb_func_start DrawDialogueFrame
-DrawDialogueFrame: @ 80F6EE4
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F6F18 @ =sub_80F7124
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _080F6F12
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_080F6F12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6F18: .4byte sub_80F7124
- thumb_func_end DrawDialogueFrame
-
- thumb_func_start DrawStdWindowFrame
-DrawStdWindowFrame: @ 80F6F1C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F6F50 @ =sub_80F6FD4
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _080F6F4A
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_080F6F4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6F50: .4byte sub_80F6FD4
- thumb_func_end DrawStdWindowFrame
-
- thumb_func_start ClearDialogWindowAndFrame
-ClearDialogWindowAndFrame: @ 80F6F54
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F6F94 @ =sub_80F76CC
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _080F6F82
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_080F6F82:
- ldr r0, _080F6F98 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080F6F8E
- bl sub_8111134
-_080F6F8E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6F94: .4byte sub_80F76CC
-_080F6F98: .4byte gUnknown_203ADFA
- thumb_func_end ClearDialogWindowAndFrame
-
- thumb_func_start ClearStdWindowAndFrame
-ClearStdWindowAndFrame: @ 80F6F9C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F6FD0 @ =sub_80F7684
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _080F6FCA
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_080F6FCA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6FD0: .4byte sub_80F7684
- thumb_func_end ClearStdWindowAndFrame
-
- thumb_func_start sub_80F6FD4
-sub_80F6FD4: @ 80F6FD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r4, r2, 0
- ldr r2, [sp, 0x3C]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsls r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- movs r3, 0x85
- lsls r3, 2
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- movs r2, 0xFF
- lsls r2, 24
- adds r2, r1
- mov r8, r2
- lsrs r2, 24
- lsrs r0, r4, 24
- mov r9, r0
- movs r0, 0xFF
- lsls r0, 24
- adds r4, r0
- lsrs r4, 24
- movs r5, 0x1
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r6, 0xE
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r3, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F710C @ =0x00000215
- ldr r2, [sp, 0x10]
- str r2, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7110 @ =0x00000216
- ldr r3, [sp, 0xC]
- ldr r2, [sp, 0x10]
- adds r0, r3, r2
- lsls r0, 24
- mov r10, r0
- lsrs r2, r0, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- mov r5, r9
- ldr r0, [sp, 0x14]
- add r0, r9
- cmp r9, r0
- bge _080F70A8
- mov r3, r8
- str r3, [sp, 0x18]
- movs r6, 0x1
- movs r0, 0xE
- mov r8, r0
-_080F706E:
- lsls r4, r5, 24
- lsrs r4, 24
- str r6, [sp]
- str r6, [sp, 0x4]
- mov r2, r8
- str r2, [sp, 0x8]
- adds r0, r7, 0
- ldr r1, _080F7114 @ =0x00000217
- ldr r3, [sp, 0x18]
- lsrs r2, r3, 24
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- str r6, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- adds r0, r7, 0
- ldr r1, _080F7118 @ =0x00000219
- mov r3, r10
- lsrs r2, r3, 24
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- adds r5, 0x1
- ldr r0, [sp, 0x14]
- add r0, r9
- cmp r5, r0
- blt _080F706E
-_080F70A8:
- ldr r1, _080F711C @ =0x0000021a
- ldr r2, [sp, 0xC]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r4, [sp, 0x14]
- add r4, r9
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0x1
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r6, 0xE
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7120 @ =0x0000021b
- ldr r0, [sp, 0x10]
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x87
- lsls r1, 2
- ldr r3, [sp, 0xC]
- ldr r0, [sp, 0x10]
- adds r2, r3, r0
- lsls r2, 24
- lsrs r2, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F710C: .4byte 0x00000215
-_080F7110: .4byte 0x00000216
-_080F7114: .4byte 0x00000217
-_080F7118: .4byte 0x00000219
-_080F711C: .4byte 0x0000021a
-_080F7120: .4byte 0x0000021b
- thumb_func_end sub_80F6FD4
-
- thumb_func_start sub_80F7124
-sub_80F7124: @ 80F7124
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- bl sub_8069A38
- lsls r0, 24
- cmp r0, 0
- beq _080F715A
- ldr r0, _080F7390 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080F715A
- b _080F73E8
-_080F715A:
- movs r1, 0x80
- lsls r1, 2
- ldr r0, [sp, 0xC]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r5, [sp, 0x10]
- subs r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r6, 0xF
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7394 @ =0x00000201
- ldr r2, [sp, 0xC]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7398 @ =0x00000202
- ldr r0, [sp, 0x14]
- str r0, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F739C @ =0x00000203
- ldr r2, [sp, 0xC]
- ldr r0, [sp, 0x14]
- adds r2, r0
- mov r8, r2
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x18]
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x81
- lsls r1, 2
- add r8, r4
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73A0 @ =0x00000205
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F73A4 @ =0x00000206
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- movs r1, 0x82
- lsls r1, 2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F73A8 @ =0x00000209
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F73AC @ =0x0000020a
- ldr r5, [sp, 0x10]
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73B0 @ =0x0000020b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x83
- lsls r1, 2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73B4 @ =0x0000020d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73B8 @ =0x00000a0a
- ldr r5, [sp, 0x10]
- adds r5, 0x2
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73BC @ =0x00000a0b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73C0 @ =0x00000a0c
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73C4 @ =0x00000a0d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73C8 @ =0x00000a05
- ldr r5, [sp, 0x10]
- adds r5, 0x3
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73CC @ =0x00000a06
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73D0 @ =0x00000a08
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73D4 @ =0x00000a09
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xA0
- lsls r1, 4
- ldr r5, [sp, 0x10]
- adds r5, 0x4
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73D8 @ =0x00000a01
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73DC @ =0x00000a02
- ldr r0, [sp, 0x14]
- str r0, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73E0 @ =0x00000a03
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F73E4 @ =0x00000a04
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- b _080F761E
- .align 2, 0
-_080F7390: .4byte gUnknown_203ADFA
-_080F7394: .4byte 0x00000201
-_080F7398: .4byte 0x00000202
-_080F739C: .4byte 0x00000203
-_080F73A0: .4byte 0x00000205
-_080F73A4: .4byte 0x00000206
-_080F73A8: .4byte 0x00000209
-_080F73AC: .4byte 0x0000020a
-_080F73B0: .4byte 0x0000020b
-_080F73B4: .4byte 0x0000020d
-_080F73B8: .4byte 0x00000a0a
-_080F73BC: .4byte 0x00000a0b
-_080F73C0: .4byte 0x00000a0c
-_080F73C4: .4byte 0x00000a0d
-_080F73C8: .4byte 0x00000a05
-_080F73CC: .4byte 0x00000a06
-_080F73D0: .4byte 0x00000a08
-_080F73D4: .4byte 0x00000a09
-_080F73D8: .4byte 0x00000a01
-_080F73DC: .4byte 0x00000a02
-_080F73E0: .4byte 0x00000a03
-_080F73E4: .4byte 0x00000a04
-_080F73E8:
- movs r1, 0x80
- lsls r1, 2
- ldr r2, [sp, 0xC]
- subs r2, 0x2
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r5, [sp, 0x10]
- subs r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r6, 0xF
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7630 @ =0x00000201
- ldr r0, [sp, 0xC]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7634 @ =0x00000202
- ldr r2, [sp, 0x14]
- str r2, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7638 @ =0x00000203
- ldr r0, [sp, 0xC]
- ldr r2, [sp, 0x14]
- adds r0, r2
- mov r8, r0
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x81
- lsls r1, 2
- add r8, r4
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F763C @ =0x00000205
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F7640 @ =0x00000206
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- movs r1, 0x82
- lsls r1, 2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F7644 @ =0x00000209
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- ldr r3, [sp, 0x10]
- bl FillBgTilemapBufferRect
- ldr r1, _080F7648 @ =0x0000020a
- ldr r5, [sp, 0x10]
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F764C @ =0x0000020b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x83
- lsls r1, 2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7650 @ =0x0000020d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7654 @ =0x00000a05
- ldr r5, [sp, 0x10]
- adds r5, 0x2
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7658 @ =0x00000a06
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F765C @ =0x00000a08
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7660 @ =0x00000a09
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7664 @ =0x00000a0a
- ldr r5, [sp, 0x10]
- adds r5, 0x3
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7668 @ =0x00000a0b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F766C @ =0x00000a0c
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7670 @ =0x00000a0d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xA0
- lsls r1, 4
- ldr r5, [sp, 0x10]
- adds r5, 0x4
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r10
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7674 @ =0x00000a01
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r9
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7678 @ =0x00000a02
- ldr r2, [sp, 0x14]
- str r2, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F767C @ =0x00000a03
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, _080F7680 @ =0x00000a04
- str r4, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- mov r2, r8
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
-_080F761E:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7630: .4byte 0x00000201
-_080F7634: .4byte 0x00000202
-_080F7638: .4byte 0x00000203
-_080F763C: .4byte 0x00000205
-_080F7640: .4byte 0x00000206
-_080F7644: .4byte 0x00000209
-_080F7648: .4byte 0x0000020a
-_080F764C: .4byte 0x0000020b
-_080F7650: .4byte 0x0000020d
-_080F7654: .4byte 0x00000a05
-_080F7658: .4byte 0x00000a06
-_080F765C: .4byte 0x00000a08
-_080F7660: .4byte 0x00000a09
-_080F7664: .4byte 0x00000a0a
-_080F7668: .4byte 0x00000a0b
-_080F766C: .4byte 0x00000a0c
-_080F7670: .4byte 0x00000a0d
-_080F7674: .4byte 0x00000a01
-_080F7678: .4byte 0x00000a02
-_080F767C: .4byte 0x00000a03
-_080F7680: .4byte 0x00000a04
- thumb_func_end sub_80F7124
-
- thumb_func_start sub_80F7684
-sub_80F7684: @ 80F7684
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0x80
- lsls r2, 18
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0xE
- str r1, [sp, 0x8]
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7684
-
- thumb_func_start sub_80F76CC
-sub_80F76CC: @ 80F76CC
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFE
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0x80
- lsls r2, 19
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0xE
- str r1, [sp, 0x8]
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F76CC
-
- thumb_func_start sub_80F771C
-sub_80F771C: @ 80F771C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- cmp r4, 0x1
- bne _080F7746
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_080F7746:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F771C
-
- thumb_func_start sub_80F7750
-sub_80F7750: @ 80F7750
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x85
- lsls r2, 2
- movs r3, 0xE
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_80F7750
-
- thumb_func_start sub_80F7768
-sub_80F7768: @ 80F7768
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080F7790 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080F7798
- ldr r2, _080F7794 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl sub_814FF98
- b _080F77A4
- .align 2, 0
-_080F7790: .4byte gUnknown_203ADFA
-_080F7794: .4byte gTextFlags
-_080F7798:
- movs r1, 0x80
- lsls r1, 2
- adds r0, r4, 0
- movs r2, 0xF0
- bl TextWindow_SetBubbleFrame_841F1C8
-_080F77A4:
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0xF
- bl DrawDialogFrameWithCustomTileAndPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7768
-
- thumb_func_start sub_80F77B8
-sub_80F77B8: @ 80F77B8
- push {lr}
- ldr r0, _080F77C8 @ =gTMCaseMainWindowPalette
- movs r1, 0xE0
- movs r2, 0x14
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_080F77C8: .4byte gTMCaseMainWindowPalette
- thumb_func_end sub_80F77B8
-
- thumb_func_start Menu_LoadStdPalAt
-Menu_LoadStdPalAt: @ 80F77CC
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _080F77E0 @ =gTMCaseMainWindowPalette
- movs r2, 0x14
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_080F77E0: .4byte gTMCaseMainWindowPalette
- thumb_func_end Menu_LoadStdPalAt
-
- thumb_func_start sub_80F77E4
-sub_80F77E4: @ 80F77E4
- ldr r0, _080F77E8 @ =gTMCaseMainWindowPalette
- bx lr
- .align 2, 0
-_080F77E8: .4byte gTMCaseMainWindowPalette
- thumb_func_end sub_80F77E4
-
- thumb_func_start sub_80F77EC
-sub_80F77EC: @ 80F77EC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080F77F8
- movs r1, 0
-_080F77F8:
- ldr r0, _080F7804 @ =gTMCaseMainWindowPalette
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_080F7804: .4byte gTMCaseMainWindowPalette
- thumb_func_end sub_80F77EC
-
- thumb_func_start DisplayItemMessageOnField
-DisplayItemMessageOnField: @ 80F7808
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F6E9C
- bl GetTextSpeedSetting
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 2
- str r4, [sp]
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r3, 0xF
- bl DisplayMessageAndContinueTask
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end DisplayItemMessageOnField
-
- thumb_func_start sub_80F7858
-sub_80F7858: @ 80F7858
- push {lr}
- sub sp, 0xC
- ldr r0, _080F787C @ =gUnknown_841F43C
- movs r1, 0x85
- lsls r1, 2
- str r1, [sp]
- movs r1, 0xE
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl CreateYesNoMenu
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_080F787C: .4byte gUnknown_841F43C
- thumb_func_end sub_80F7858
-
- thumb_func_start sub_80F7880
-sub_80F7880: @ 80F7880
- push {lr}
- sub sp, 0xC
- ldr r0, _080F78A4 @ =gUnknown_841F43C
- movs r1, 0x85
- lsls r1, 2
- str r1, [sp]
- movs r1, 0xE
- str r1, [sp, 0x4]
- movs r1, 0x1
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl CreateYesNoMenu
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_080F78A4: .4byte gUnknown_841F43C
- thumb_func_end sub_80F7880
-
- thumb_func_start GetTextSpeedSetting
-GetTextSpeedSetting: @ 80F78A8
- push {lr}
- ldr r3, _080F78D8 @ =gSaveBlock2Ptr
- ldr r2, [r3]
- ldrb r1, [r2, 0x14]
- lsls r0, r1, 29
- lsrs r0, 29
- cmp r0, 0x2
- bls _080F78C4
- movs r0, 0x8
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x14]
-_080F78C4:
- ldr r1, _080F78DC @ =gUnknown_841F428
- ldr r0, [r3]
- ldrb r0, [r0, 0x14]
- lsls r0, 29
- lsrs r0, 29
- adds r0, r1
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_080F78D8: .4byte gSaveBlock2Ptr
-_080F78DC: .4byte gUnknown_841F428
- thumb_func_end GetTextSpeedSetting
-
- thumb_func_start sub_80F78E0
-sub_80F78E0: @ 80F78E0
- push {r4,lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r4, _080F7934 @ =gUnknown_203ABE0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080F792A
- movs r0, 0x7
- str r0, [sp]
- lsls r0, r1, 25
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, _080F7938 @ =0x0000013d
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x16
- movs r3, 0x1
- bl SetWindowTemplateFields
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- bl PutWindowTilemap
-_080F792A:
- ldrb r0, [r4]
- add sp, 0x20
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F7934: .4byte gUnknown_203ABE0
-_080F7938: .4byte 0x0000013d
- thumb_func_end sub_80F78E0
-
- thumb_func_start GetStartMenuWindowId
-GetStartMenuWindowId: @ 80F793C
- ldr r0, _080F7944 @ =gUnknown_203ABE0
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080F7944: .4byte gUnknown_203ABE0
- thumb_func_end GetStartMenuWindowId
-
- thumb_func_start remove_start_menu_window_maybe
-remove_start_menu_window_maybe: @ 80F7948
- push {r4,lr}
- ldr r4, _080F7960 @ =gUnknown_203ABE0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080F795A
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
-_080F795A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7960: .4byte gUnknown_203ABE0
- thumb_func_end remove_start_menu_window_maybe
-
- thumb_func_start sub_80F7964
-sub_80F7964: @ 80F7964
- movs r0, 0x80
- lsls r0, 2
- bx lr
- thumb_func_end sub_80F7964
-
- thumb_func_start sub_80F796C
-sub_80F796C: @ 80F796C
- movs r0, 0x85
- lsls r0, 2
- bx lr
- thumb_func_end sub_80F796C
-
- thumb_func_start sub_80F7974
-sub_80F7974: @ 80F7974
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8112EB4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 2
- movs r2, 0xF0
- bl sub_814FE6C
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8113018
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7974
-
- thumb_func_start sub_80F7998
-sub_80F7998: @ 80F7998
- push {lr}
- movs r0, 0x2
- bl sub_8112EDC
- pop {r0}
- bx r0
- thumb_func_end sub_80F7998
-
- thumb_func_start sub_80F79A4
-sub_80F79A4: @ 80F79A4
- push {lr}
- bl sub_80F77B8
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- movs r2, 0xF0
- bl sub_814FEEC
- movs r1, 0x85
- lsls r1, 2
- movs r0, 0
- movs r2, 0xE0
- bl TextWindow_SetUserSelectedFrame
- pop {r0}
- bx r0
- thumb_func_end sub_80F79A4
-
- thumb_func_start SetDefaultFontsPointer
-SetDefaultFontsPointer: @ 80F79C8
- push {lr}
- ldr r0, _080F79D4 @ =gUnknown_841F444
- bl SetFontsPointer
- pop {r0}
- bx r0
- .align 2, 0
-_080F79D4: .4byte gUnknown_841F444
- thumb_func_end SetDefaultFontsPointer
-
- thumb_func_start GetFontAttribute
-GetFontAttribute: @ 80F79D8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- cmp r1, 0x7
- bhi _080F7AB6
- lsls r0, r1, 2
- ldr r1, _080F79F4 @ =_080F79F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F79F4: .4byte _080F79F8
- .align 2, 0
-_080F79F8:
- .4byte _080F7A18
- .4byte _080F7A2C
- .4byte _080F7A40
- .4byte _080F7A54
- .4byte _080F7A68
- .4byte _080F7A7C
- .4byte _080F7A90
- .4byte _080F7AA8
-_080F7A18:
- ldr r1, _080F7A28 @ =gUnknown_841F444
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x4]
- b _080F7AB6
- .align 2, 0
-_080F7A28: .4byte gUnknown_841F444
-_080F7A2C:
- ldr r1, _080F7A3C @ =gUnknown_841F444
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- b _080F7AB6
- .align 2, 0
-_080F7A3C: .4byte gUnknown_841F444
-_080F7A40:
- ldr r1, _080F7A50 @ =gUnknown_841F444
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x6]
- b _080F7AB6
- .align 2, 0
-_080F7A50: .4byte gUnknown_841F444
-_080F7A54:
- ldr r1, _080F7A64 @ =gUnknown_841F444
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- b _080F7AB6
- .align 2, 0
-_080F7A64: .4byte gUnknown_841F444
-_080F7A68:
- ldr r0, _080F7A78 @ =gUnknown_841F444
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x8]
- b _080F7A9C
- .align 2, 0
-_080F7A78: .4byte gUnknown_841F444
-_080F7A7C:
- ldr r0, _080F7A8C @ =gUnknown_841F444
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x8]
- b _080F7AB4
- .align 2, 0
-_080F7A8C: .4byte gUnknown_841F444
-_080F7A90:
- ldr r0, _080F7AA4 @ =gUnknown_841F444
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x9]
-_080F7A9C:
- lsls r0, 28
- lsrs r0, 28
- b _080F7AB6
- .align 2, 0
-_080F7AA4: .4byte gUnknown_841F444
-_080F7AA8:
- ldr r0, _080F7ABC @ =gUnknown_841F444
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x9]
-_080F7AB4:
- lsrs r0, 4
-_080F7AB6:
- pop {r1}
- bx r1
- .align 2, 0
-_080F7ABC: .4byte gUnknown_841F444
- thumb_func_end GetFontAttribute
-
- thumb_func_start GetMenuCursorDimensionByFont
-GetMenuCursorDimensionByFont: @ 80F7AC0
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080F7AD4 @ =gUnknown_841F4A4
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_080F7AD4: .4byte gUnknown_841F4A4
- thumb_func_end GetMenuCursorDimensionByFont
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/overworld.s b/asm/overworld.s
index 62add03d2..6681b4a85 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -2378,8 +2378,8 @@ sub_8055DB8: @ 8055DB8
bx r0
thumb_func_end sub_8055DB8
- thumb_func_start sub_8055DC4
-sub_8055DC4: @ 8055DC4
+ thumb_func_start Overworld_PlaySpecialMapMusic
+Overworld_PlaySpecialMapMusic: @ 8055DC4
push {r4,r5,lr}
sub sp, 0x4
ldr r0, _08055DD8 @ =gUnknown_2031DD8
@@ -2462,7 +2462,7 @@ _08055E6C:
bx r0
.align 2, 0
_08055E74: .4byte 0x00000131
- thumb_func_end sub_8055DC4
+ thumb_func_end Overworld_PlaySpecialMapMusic
thumb_func_start Overworld_SetSavedMusic
Overworld_SetSavedMusic: @ 8055E78
@@ -3199,7 +3199,7 @@ _080563EC: .4byte gUnknown_300501C
thumb_func_start CleanupOverworldWindowsAndTilemaps
CleanupOverworldWindowsAndTilemaps: @ 80563F0
push {lr}
- bl sub_80F6C8C
+ bl FreeAllOverworldWindowBuffers
ldr r0, _08056414 @ =gUnknown_300501C
ldr r0, [r0]
bl Free
@@ -3393,7 +3393,7 @@ sub_8056578: @ 8056578
bl BuildOamBuffer
bl UpdatePaletteFade
bl sub_806FFBC
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
pop {r0}
bx r0
thumb_func_end sub_8056578
@@ -4036,7 +4036,7 @@ _08056B04:
.align 2, 0
_08056B10: .4byte gMapHeader
_08056B14:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4178,7 +4178,7 @@ _08056C40:
.align 2, 0
_08056C4C: .4byte gMapHeader
_08056C50:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4367,7 +4367,7 @@ _08056DE0:
.align 2, 0
_08056DEC: .4byte gMapHeader
_08056DF0:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4523,8 +4523,8 @@ sub_8056F08: @ 8056F08
thumb_func_start sub_8056F1C
sub_8056F1C: @ 8056F1C
push {r4,lr}
- bl clear_scheduled_bg_copies_to_vram
- bl reset_temp_tile_data_buffers
+ bl ClearScheduledBgCopiesToVram
+ bl ResetTempTileDataBuffers
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
@@ -4563,11 +4563,11 @@ sub_8056F1C: @ 8056F1C
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08057020 @ =0x00007060
movs r0, 0
bl SetGpuReg
@@ -5078,7 +5078,7 @@ _080573D8:
.align 2, 0
_080573E4: .4byte gMapHeader
_080573E8:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5177,7 +5177,7 @@ _080574B8:
bl BuildOamBuffer
bl UpdatePaletteFade
bl sub_806FFBC
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
cmp r4, 0
beq _080574E0
bl SetFieldVBlankCallback
@@ -5427,7 +5427,7 @@ _080576E0:
.align 2, 0
_080576EC: .4byte gMapHeader
_080576F0:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 104ba9f7f..e56e6958e 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -189,7 +189,7 @@ sub_811EBA0: @ 811EBA0
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
bl UpdatePaletteFade
pop {r0}
bx r0
@@ -278,7 +278,7 @@ _0811EC24:
_0811EC80:
bl SetVBlankHBlankCallbacksToNull
bl ClearVramOamPltt
- bl clear_scheduled_bg_copies_to_vram
+ bl ClearScheduledBgCopiesToVram
b _0811EDFC
_0811EC8E:
bl ScanlineEffect_Stop
@@ -587,7 +587,7 @@ sub_811EECC: @ 811EECC
movs r0, 0x1
bl SetBgTilemapBuffer
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r1, 0x82
lsls r1, 5
movs r0, 0
@@ -649,7 +649,7 @@ _0811EF8C:
ldr r4, _0811EFAC @ =gUnknown_203B0B8
ldr r0, _0811EFB0 @ =gFile_graphics_interface_party_menu_misc_sheet
mov r1, sp
- bl malloc_and_decompress
+ bl MallocAndDecompress
adds r1, r0, 0
str r1, [r4]
ldr r2, [sp]
@@ -883,7 +883,7 @@ sub_811F124: @ 811F124
ldrb r0, [r4, 0x8]
bl PutWindowTilemap
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
b _0811F22A
.align 2, 0
_0811F16C: .4byte gUnknown_203B0A0
@@ -973,7 +973,7 @@ _0811F218:
ldrb r0, [r0, 0x8]
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0811F22A:
pop {r4,r5}
pop {r0}
@@ -1878,7 +1878,7 @@ _0811F926:
mov r1, r8
bl sub_81227B8
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0811F934:
add sp, 0x8
pop {r3}
@@ -2000,7 +2000,7 @@ sub_811F9DC: @ 811F9DC
movs r3, 0x12
bl CopyToBgTilemapBufferRect_ChangePalette
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -3392,7 +3392,7 @@ _08120468:
adds r1, r6, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4-r6}
pop {r0}
bx r0
@@ -3433,7 +3433,7 @@ sub_81204AC: @ 81204AC
adds r1, r5, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4-r6}
pop {r0}
bx r0
@@ -3467,7 +3467,7 @@ sub_812050C: @ 812050C
adds r1, r5, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4,r5}
pop {r0}
bx r0
@@ -3514,7 +3514,7 @@ sub_8120558: @ 8120558
adds r1, r6, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4-r6}
pop {r0}
bx r0
@@ -4121,7 +4121,7 @@ _08120A24:
movs r1, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08120A50 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -4149,7 +4149,7 @@ sub_8120A58: @ 8120A58
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08120A88 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -5180,7 +5180,7 @@ _08121224:
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_08121238:
add sp, 0x14
pop {r4-r6}
@@ -6513,7 +6513,7 @@ sub_8121CE4: @ 8121CE4
movs r0, 0xFF
strb r0, [r4]
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_08121D04:
pop {r4}
pop {r0}
@@ -6627,7 +6627,7 @@ _08121DB0:
movs r3, 0
bl AddTextPrinterParameterized
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_08121DE8:
add sp, 0xC
pop {r4-r6}
@@ -6856,7 +6856,7 @@ _08121F7A:
movs r3, 0x2
bl sub_810F774
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, [r4]
_08121FA2:
ldrb r0, [r0, 0xC]
@@ -7026,7 +7026,7 @@ sub_81220D4: @ 81220D4
adds r0, r4, 0
movs r1, 0x4F
movs r2, 0xE0
- bl TextWindow_SetBubbleFrame_841F1C8
+ bl TextWindow_LoadResourcesStdFrame0
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x4F
@@ -7058,7 +7058,7 @@ sub_8122110: @ 8122110
adds r0, r4, 0
bl RemoveWindow
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4}
pop {r0}
bx r0
@@ -7084,7 +7084,7 @@ sub_8122138: @ 8122138
movs r0, 0xFF
strb r0, [r4, 0xE]
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
b _081221C0
.align 2, 0
_08122168: .4byte gUnknown_203B09C
@@ -7125,7 +7125,7 @@ _0812217A:
ldrb r0, [r4, 0xE]
bl PutWindowTilemap
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_081221C0:
add sp, 0x14
pop {r4,r5}
@@ -8914,7 +8914,7 @@ _08122F56:
ldrb r0, [r6, 0x6]
str r0, [sp, 0x4]
movs r0, 0
- bl sub_80F6B94
+ bl CopyRectIntoAltRect
ldr r1, [r5]
ldrb r2, [r6, 0x8]
ldrb r3, [r6, 0xA]
@@ -8923,7 +8923,7 @@ _08122F56:
ldrb r0, [r6, 0xE]
str r0, [sp, 0x4]
movs r0, 0
- bl sub_80F6B94
+ bl CopyRectIntoAltRect
add r0, sp, 0x8
ldrb r0, [r0]
bl ClearWindowTilemap
@@ -9276,7 +9276,7 @@ _08123228:
bl sub_8123068
_08123256:
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r4-r6}
pop {r0}
@@ -9369,7 +9369,7 @@ sub_8123270: @ 8123270
ldrb r0, [r6, 0x6]
str r0, [sp, 0x4]
movs r0, 0
- bl sub_80F6B94
+ bl CopyRectIntoAltRect
ldr r0, _08123380 @ =gUnknown_203B0CC
ldr r1, [r0]
ldrb r2, [r6, 0x8]
@@ -9379,7 +9379,7 @@ sub_8123270: @ 8123270
ldrb r0, [r6, 0xE]
str r0, [sp, 0x4]
movs r0, 0
- bl sub_80F6B94
+ bl CopyRectIntoAltRect
movs r0, 0x9
ldrsb r0, [r4, r0]
ldr r1, [r5]
@@ -9454,7 +9454,7 @@ sub_8123388: @ 8123388
ldrb r0, [r0, 0x8]
bl PutWindowTilemap
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
adds r0, r6, 0
bl sub_81235E8
b _08123418
@@ -10537,7 +10537,7 @@ _08123CC8:
bl sub_81202F8
_08123CCE:
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _08123CEC @ =gTasks
lsls r1, r7, 2
adds r1, r7
@@ -13293,7 +13293,7 @@ _08125342:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0812537C @ =gTasks
lsls r0, r7, 2
adds r0, r7
@@ -13501,7 +13501,7 @@ _0812551C:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125550 @ =gTasks
mov r2, r9
lsls r0, r2, 2
@@ -13548,7 +13548,7 @@ sub_8125554: @ 8125554
movs r1, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_803539C
ldr r1, _081255B4 @ =gTasks
lsls r0, r5, 2
@@ -13686,7 +13686,7 @@ _08125680:
movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -13897,7 +13897,7 @@ sub_812580C: @ 812580C
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125874 @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -13984,7 +13984,7 @@ sub_8125898: @ 8125898
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125950 @ =gTasks
mov r2, r8
lsls r0, r2, 2
@@ -14086,7 +14086,7 @@ _081259F6:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125A34 @ =gTasks
lsls r0, r6, 2
adds r0, r6
@@ -14225,7 +14225,7 @@ sub_8125AF0: @ 8125AF0
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4}
pop {r0}
bx r0
@@ -14427,7 +14427,7 @@ _08125C84:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08125CEC @ =gTasks
lsls r0, r7, 2
adds r0, r7
@@ -14956,7 +14956,7 @@ sub_81260D8: @ 81260D8
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08126134 @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -15197,7 +15197,7 @@ _081262F6:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0812632C @ =gTasks
lsls r0, r6, 2
adds r0, r6
@@ -15298,7 +15298,7 @@ sub_8126350: @ 8126350
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08126438 @ =gTasks
mov r2, r8
lsls r0, r2, 2
@@ -15381,7 +15381,7 @@ _0812647C:
movs r1, 0x1
bl sub_811F818
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r4-r7}
pop {r0}
bx r0
@@ -15502,7 +15502,7 @@ sub_8126570: @ 8126570
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r4,r5}
pop {r0}
@@ -15533,7 +15533,7 @@ sub_81265BC: @ 81265BC
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r4}
pop {r0}
@@ -15765,7 +15765,7 @@ sub_8126770: @ 8126770
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldrh r0, [r6]
mov r1, r8
strh r0, [r1, 0xE]
@@ -15829,7 +15829,7 @@ sub_8126804: @ 8126804
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
mov r0, r8
strh r5, [r0, 0xE]
ldr r1, _0812688C @ =gTasks
@@ -16089,7 +16089,7 @@ _08126A4E:
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
b _08126ABE
.align 2, 0
_08126A80: .4byte gUnknown_203B09C
@@ -16170,7 +16170,7 @@ sub_8126AFC: @ 8126AFC
movs r1, 0
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08126B58 @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -16221,7 +16221,7 @@ sub_8126B60: @ 8126B60
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _08126BC4 @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -17205,7 +17205,7 @@ sub_812734C: @ 812734C
movs r1, 0x1
bl sub_81202F8
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _0812737C @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -17351,7 +17351,7 @@ _0812746C:
bl sub_81202F8
_08127482:
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _081274A0 @ =gTasks
lsls r1, r6, 2
adds r1, r6
diff --git a/asm/play_time.s b/asm/play_time.s
deleted file mode 100644
index 41d0f6239..000000000
--- a/asm/play_time.s
+++ /dev/null
@@ -1,137 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start PlayTimeCounter_Reset
-PlayTimeCounter_Reset: @ 8054814
- ldr r1, _08054830 @ =gUnknown_3000E7C
- movs r0, 0
- strb r0, [r1]
- ldr r2, _08054834 @ =gSaveBlock2Ptr
- ldr r3, [r2]
- movs r1, 0
- movs r0, 0
- strh r0, [r3, 0xE]
- strb r1, [r3, 0x10]
- ldr r0, [r2]
- strb r1, [r0, 0x11]
- ldr r0, [r2]
- strb r1, [r0, 0x12]
- bx lr
- .align 2, 0
-_08054830: .4byte gUnknown_3000E7C
-_08054834: .4byte gSaveBlock2Ptr
- thumb_func_end PlayTimeCounter_Reset
-
- thumb_func_start PlayTimeCounter_Start
-PlayTimeCounter_Start: @ 8054838
- push {lr}
- ldr r1, _08054854 @ =gUnknown_3000E7C
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _08054858 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0xE]
- ldr r0, _0805485C @ =0x000003e7
- cmp r1, r0
- bls _08054850
- bl PlayTimeCounter_SetToMax
-_08054850:
- pop {r0}
- bx r0
- .align 2, 0
-_08054854: .4byte gUnknown_3000E7C
-_08054858: .4byte gSaveBlock2Ptr
-_0805485C: .4byte 0x000003e7
- thumb_func_end PlayTimeCounter_Start
-
- thumb_func_start sub_8054860
-sub_8054860: @ 8054860
- ldr r1, _08054868 @ =gUnknown_3000E7C
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08054868: .4byte gUnknown_3000E7C
- thumb_func_end sub_8054860
-
- thumb_func_start PlayTimeCounter_Update
-PlayTimeCounter_Update: @ 805486C
- push {lr}
- ldr r0, _080548C8 @ =gUnknown_3000E7C
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080548C4
- ldr r2, _080548CC @ =gSaveBlock2Ptr
- ldr r0, [r2]
- ldrb r1, [r0, 0x12]
- adds r1, 0x1
- movs r3, 0
- strb r1, [r0, 0x12]
- ldr r1, [r2]
- ldrb r0, [r1, 0x12]
- cmp r0, 0x3B
- bls _080548C4
- strb r3, [r1, 0x12]
- ldr r0, [r2]
- ldrb r1, [r0, 0x11]
- adds r1, 0x1
- strb r1, [r0, 0x11]
- ldr r1, [r2]
- ldrb r0, [r1, 0x11]
- cmp r0, 0x3B
- bls _080548C4
- strb r3, [r1, 0x11]
- ldr r0, [r2]
- ldrb r1, [r0, 0x10]
- adds r1, 0x1
- strb r1, [r0, 0x10]
- ldr r1, [r2]
- ldrb r0, [r1, 0x10]
- cmp r0, 0x3B
- bls _080548C4
- strb r3, [r1, 0x10]
- ldr r0, [r2]
- ldrh r1, [r0, 0xE]
- adds r1, 0x1
- strh r1, [r0, 0xE]
- lsls r1, 16
- ldr r0, _080548D0 @ =0x03e70000
- cmp r1, r0
- bls _080548C4
- bl PlayTimeCounter_SetToMax
-_080548C4:
- pop {r0}
- bx r0
- .align 2, 0
-_080548C8: .4byte gUnknown_3000E7C
-_080548CC: .4byte gSaveBlock2Ptr
-_080548D0: .4byte 0x03e70000
- thumb_func_end PlayTimeCounter_Update
-
- thumb_func_start PlayTimeCounter_SetToMax
-PlayTimeCounter_SetToMax: @ 80548D4
- ldr r1, _080548F0 @ =gUnknown_3000E7C
- movs r0, 0x2
- strb r0, [r1]
- ldr r2, _080548F4 @ =gSaveBlock2Ptr
- ldr r3, [r2]
- ldr r0, _080548F8 @ =0x000003e7
- strh r0, [r3, 0xE]
- movs r1, 0x3B
- strb r1, [r3, 0x10]
- ldr r0, [r2]
- strb r1, [r0, 0x11]
- ldr r0, [r2]
- strb r1, [r0, 0x12]
- bx lr
- .align 2, 0
-_080548F0: .4byte gUnknown_3000E7C
-_080548F4: .4byte gSaveBlock2Ptr
-_080548F8: .4byte 0x000003e7
- thumb_func_end PlayTimeCounter_SetToMax
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/player_pc.s b/asm/player_pc.s
index f9d781513..4d917504a 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -149,7 +149,7 @@ _080EB77E:
strh r0, [r7, 0x14]
ldrb r0, [r7, 0x14]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -189,7 +189,7 @@ _080EB77E:
movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EB814 @ =gTasks
mov r2, r8
lsls r0, r2, 2
@@ -243,7 +243,7 @@ sub_80EB81C: @ 80EB81C
ldrb r0, [r4, 0x14]
bl RemoveWindow
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
adds r0, r7, 0
subs r0, 0x8
adds r0, r6, r0
@@ -262,7 +262,7 @@ _080EB878:
ldrb r0, [r4, 0x14]
bl RemoveWindow
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
adds r2, r7, 0
subs r2, 0x8
adds r2, r6, r2
@@ -464,7 +464,7 @@ _080EBA1E:
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -490,7 +490,7 @@ _080EBA1E:
movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EBA88 @ =gUnknown_84021DC
lsls r0, r7, 2
adds r0, r1
@@ -1084,7 +1084,7 @@ sub_80EBEB0: @ 80EBEB0
mov r2, r8
bl AddTextPrinterParameterized
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r4, _080EBF38 @ =gUnknown_203AAC4
adds r0, r4, 0
bl sub_810EC98
@@ -1176,7 +1176,7 @@ _080EBFB6:
mov r2, r8
bl DestroyListMenu
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
mov r1, r8
ldrb r0, [r1, 0xA]
bl RemoveScrollIndicatorArrowPair
@@ -1290,7 +1290,7 @@ sub_80EC094: @ 80EC094
movs r2, 0
bl DestroyListMenu
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_810EDB0
adds r0, r5, 0
bl sub_80EB8BC
@@ -1343,7 +1343,7 @@ sub_80EC0D8: @ 80EC0D8
movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EC154 @ =gTasks
lsls r0, r5, 2
adds r0, r5
@@ -1578,7 +1578,7 @@ sub_80EC2FC: @ 80EC2FC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
ldr r1, _080EC31C @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -1875,7 +1875,7 @@ sub_80EC53C: @ 80EC53C
adds r0, r4, 0
bl sub_80EBEB0
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EC56C @ =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -1900,7 +1900,7 @@ sub_80EC574: @ 80EC574
movs r0, 0x2
bl sub_810EBE0
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r1, _080EC59C @ =gTasks
lsls r0, r4, 2
adds r0, r4
diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s
index 3497f993e..af4b28a27 100644
--- a/asm/pokemon_jump_2.s
+++ b/asm/pokemon_jump_2.s
@@ -4793,8 +4793,8 @@ _08149DF0:
bl InitBgsFromTemplates
ldr r0, _08149EEC @ =gUnknown_846D8E4
bl InitWindows
- bl sub_80F6C14
- bl reset_temp_tile_data_buffers
+ bl ResetBgPositions
+ bl ResetTempTileDataBuffers
ldr r0, [r6]
bl sub_814AD6C
bl sub_814A9C8
@@ -4807,14 +4807,14 @@ _08149DF0:
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08149EF8 @ =gUnknown_846BA00
movs r4, 0x1
str r4, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _08149EFC @ =gUnknown_846BBB0
movs r1, 0x30
movs r2, 0x20
@@ -4824,13 +4824,13 @@ _08149DF0:
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08149F04 @ =gUnknown_846C520
str r4, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _08149F08 @ =gUnknown_846C8D8
movs r1, 0x10
movs r2, 0x20
@@ -4840,13 +4840,13 @@ _08149DF0:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08149F10 @ =gUnknown_846D3A8
str r4, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _08149F14 @ =gUnknown_846B794
movs r1, 0x20
movs r2, 0x20
@@ -4897,7 +4897,7 @@ _08149F0C: .4byte gUnknown_846C8F8
_08149F10: .4byte gUnknown_846D3A8
_08149F14: .4byte gUnknown_846B794
_08149F18:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _08149F5A
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index 6961aea5e..31e3752d3 100644
--- a/asm/pokemon_special_anim.s
+++ b/asm/pokemon_special_anim.s
@@ -1558,7 +1558,7 @@ sub_811D184: @ 811D184
lsls r5, r1, 16
lsrs r5, 16
bl FreeAllWindowBuffers
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
movs r0, 0
movs r1, 0
bl SetGpuReg
@@ -1654,7 +1654,7 @@ _0811D27C: .4byte 0x00001914
thumb_func_start sub_811D280
sub_811D280: @ 811D280
push {lr}
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
beq _0811D290
@@ -2353,7 +2353,7 @@ sub_811D7D4: @ 811D7D4
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
cmp r4, 0x4
beq _0811D818
ldr r0, _0811D814 @ =gUnknown_845963C
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 5bf5a87ae..0c9536a8e 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -2669,7 +2669,7 @@ _0808CDC0: .4byte gUnknown_20397B0
c2_Box: @ 808CDC4
push {lr}
bl RunTasks
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
bl sub_808EFC8
bl sub_808F99C
bl AnimateSprites
@@ -2835,7 +2835,7 @@ sub_808CF10: @ 808CF10
ldr r1, _0808CF88 @ =gKeyRepeatStartDelay
movs r0, 0x14
strh r0, [r1]
- bl clear_scheduled_bg_copies_to_vram
+ bl ClearScheduledBgCopiesToVram
movs r0, 0x3
bl sub_80F7AD8
ldr r2, _0808CF8C @ =gUnknown_83CE6F8
@@ -6738,7 +6738,7 @@ sub_808EFE4: @ 808EFE4
movs r0, 0x1
bl ShowBg
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -6956,7 +6956,7 @@ sub_808F1D0: @ 808F1D0
bl sub_808F49C
bl sub_808F5E8
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r0}
bx r0
.align 2, 0
@@ -7526,7 +7526,7 @@ _0808F66E:
movs r0, 0
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r4}
pop {r0}
@@ -7608,7 +7608,7 @@ _0808F718:
bl sub_80F7E54
_0808F73A:
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0808F754 @ =gUnknown_20397B0
ldr r0, [r0]
ldr r1, _0808F758 @ =0x000002c7
@@ -7680,7 +7680,7 @@ sub_808F794: @ 808F794
movs r0, 0x1
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x8
bl sub_8090B98
ldr r1, [r4]
@@ -7800,7 +7800,7 @@ sub_808F850: @ 808F850
cmp r0, 0x14
beq _0808F8D4
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x1
b _0808F8FE
.align 2, 0
@@ -7822,7 +7822,7 @@ _0808F8D4:
movs r0, 0x2
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0808F8FC:
movs r0, 0
_0808F8FE:
@@ -7859,7 +7859,7 @@ _0808F934:
movs r0, 0x2
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r0}
bx r0
@@ -8068,7 +8068,7 @@ sub_808FAA8: @ 808FAA8
movs r0, 0x1
bl sub_80F7E54
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x4
pop {r0}
bx r0
@@ -8318,7 +8318,7 @@ _0808FC7C:
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -8365,7 +8365,7 @@ sub_808FD20: @ 808FD20
movs r1, 0
bl ClearMenuWindow
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r0}
bx r0
thumb_func_end sub_808FD20
@@ -18963,7 +18963,7 @@ sub_8094E88: @ 8094E88
movs r3, 0x2
bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, [r5]
ldr r3, _08094F8C @ =0x00000caa
adds r0, r3
@@ -22334,7 +22334,7 @@ _080968D0:
movs r3, 0x14
bl FillBgTilemapBufferRect
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0xC
pop {r4-r7}
pop {r0}
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 301d7e0d7..f561ad660 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -3197,7 +3197,7 @@ _08135FD8:
.align 2, 0
_08135FE0: .4byte gUnknown_84636C0
_08135FE4:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
b _08136020
_08135FEA:
ldr r1, _08135FFC @ =gUnknown_8E9A460
@@ -3206,12 +3206,12 @@ _08135FEA:
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _08136020
.align 2, 0
_08135FFC: .4byte gUnknown_8E9A460
_08136000:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/region_map.s b/asm/region_map.s
index 519b766c1..01c5a71c7 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -595,7 +595,7 @@ _080C02F0: .4byte gUnknown_20399D4
_080C02F4: .4byte 0x00004796
_080C02F8: .4byte gUnknown_83EF25A
_080C02FC:
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
b _080C03C8
_080C0302:
ldr r1, _080C0330 @ =gUnknown_83EF61C
@@ -604,7 +604,7 @@ _080C0302:
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _080C0334 @ =gUnknown_20399D4
ldr r0, [r0]
ldr r2, _080C0338 @ =0x00004796
@@ -617,7 +617,7 @@ _080C0302:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
b _080C03C8
.align 2, 0
_080C0330: .4byte gUnknown_83EF61C
@@ -625,7 +625,7 @@ _080C0334: .4byte gUnknown_20399D4
_080C0338: .4byte 0x00004796
_080C033C: .4byte gUnknown_83F1978
_080C0340:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 69e487bcc..0d5cabbcf 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -249,7 +249,7 @@ _0809CB02:
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
mov r2, r10
cmp r2, 0x1E
beq _0809CB32
@@ -308,7 +308,7 @@ _0809CB7A:
mov r3, r10
bl sub_809CC18
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0809CBA2:
add sp, 0x20
pop {r3-r5}
@@ -636,7 +636,7 @@ _0809CE08:
lsls r0, 24
cmp r0, 0
bne _0809CE26
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
adds r0, r4, 0
movs r1, 0x50
bl CreateTask
@@ -822,7 +822,7 @@ _0809CF08:
lsrs r0, 24
strh r0, [r4, 0x14]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
ldrb r0, [r4, 0x14]
lsls r5, 27
lsrs r5, 24
@@ -845,7 +845,7 @@ _0809CF08:
movs r3, 0x1
bl sub_811030C
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0809CFB8:
movs r0, 0x1
_0809CFBA:
@@ -914,8 +914,8 @@ _0809D034:
_0809D03C: .4byte gSpecialVar_Result
thumb_func_end sub_809CFDC
- thumb_func_start sp109_CreatePCMenu
-sp109_CreatePCMenu: @ 809D040
+ thumb_func_start ScrSpecial_CreatePCMenu
+ScrSpecial_CreatePCMenu: @ 809D040
push {lr}
ldr r0, _0809D060 @ =sub_809CC98
bl FuncIsActiveTask
@@ -937,7 +937,7 @@ _0809D068:
_0809D06A:
pop {r1}
bx r1
- thumb_func_end sp109_CreatePCMenu
+ thumb_func_end ScrSpecial_CreatePCMenu
thumb_func_start sub_809D070
sub_809D070: @ 809D070
@@ -989,7 +989,7 @@ _0809D0B0:
lsrs r6, r0, 24
adds r0, r6, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
ldr r2, _0809D128 @ =gUnknown_8417BD3
movs r0, 0x22
str r0, [sp]
@@ -1050,7 +1050,7 @@ _0809D14C:
lsrs r6, r0, 24
adds r0, r6, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
mov r0, r8
bl FlagGet
lsls r0, 24
@@ -1145,7 +1145,7 @@ _0809D1FA:
movs r3, 0xFF
bl sub_809CC18
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0xC
pop {r3,r4}
mov r8, r3
@@ -1159,8 +1159,8 @@ _0809D24C: .4byte gStringVar4
_0809D250: .4byte gUnknown_8417BB6
thumb_func_end sub_809D070
- thumb_func_start sub_809D254
-sub_809D254: @ 809D254
+ thumb_func_start ScriptMenu_DisplayPCStartupPrompt
+ScriptMenu_DisplayPCStartupPrompt: @ 809D254
push {lr}
sub sp, 0x10
movs r0, 0
@@ -1184,7 +1184,7 @@ sub_809D254: @ 809D254
bx r0
.align 2, 0
_0809D284: .4byte gUnknown_81A508A
- thumb_func_end sub_809D254
+ thumb_func_end ScriptMenu_DisplayPCStartupPrompt
thumb_func_start sub_809D288
sub_809D288: @ 809D288
@@ -1326,9 +1326,9 @@ _0809D31C:
strb r0, [r1, 0x5]
ldrb r0, [r3, 0x12]
movs r1, 0x1
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x1
b _0809D3C2
.align 2, 0
@@ -1613,9 +1613,9 @@ _0809D572:
strh r2, [r1, 0x8]
strh r5, [r1, 0xC]
movs r1, 0x1
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0809D5F2:
movs r0, 0x1
_0809D5F4:
@@ -1859,7 +1859,7 @@ _0809D7B8:
lsrs r7, r0, 24
adds r0, r7, 0
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r6, 0
mov r5, r9
subs r5, 0x2
@@ -1953,7 +1953,7 @@ _0809D844:
movs r3, 0xFF
bl sub_809CC18
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
_0809D8A8:
add sp, 0xC
pop {r3,r4}
diff --git a/asm/shop.s b/asm/shop.s
index 370f8b296..51955f88d 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -49,7 +49,7 @@ _0809AAF8:
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
- bl sub_80F7750
+ bl SetStdWindowBorderStyle
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -435,7 +435,7 @@ sub_809ADE4: @ 809ADE4
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
- bl do_scheduled_bg_tilemap_copies_to_vram
+ bl DoScheduledBgTilemapCopiesToVram
pop {r0}
bx r0
thumb_func_end sub_809ADE4
@@ -523,12 +523,12 @@ _0809AEAC:
add r0, sp, 0x8
bl CpuFastSet
bl ScanlineEffect_Stop
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
bl FreeAllSpritePalettes
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
- bl clear_scheduled_bg_copies_to_vram
+ bl ClearScheduledBgCopiesToVram
bl ResetItemMenuIconState
bl sub_809AF6C
lsls r0, 24
@@ -579,7 +579,7 @@ _0809AEAC:
_0809AF4C: .4byte 0x01000100
_0809AF50: .4byte gUnknown_2039934
_0809AF54:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _0809AF64
@@ -721,7 +721,7 @@ sub_809B080: @ 809B080
movs r0, 0
str r0, [sp]
movs r0, 0x1
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _0809B0B4 @ =gUnknown_2039934
ldrb r1, [r0, 0x16]
movs r0, 0xF
@@ -808,7 +808,7 @@ _0809B13C:
bl SetBgRectPal
_0809B14E:
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
add sp, 0x8
pop {r0}
bx r0
@@ -821,13 +821,13 @@ sub_809B15C: @ 809B15C
bl sub_809BAFC
bl sub_813F6D0
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
pop {r0}
bx r0
thumb_func_end sub_809B15C
@@ -2295,7 +2295,7 @@ sub_809BCA0: @ 809BCA0
adds r0, r7, 0
bl sub_809BB44
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
ldr r0, _0809BD50 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
@@ -2621,7 +2621,7 @@ sub_809BF98: @ 809BF98
bl PutWindowTilemap
_0809BFDC:
movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
+ bl ScheduleBgCopyTilemapToVram
bl sub_809B690
adds r0, r6, 0
subs r0, 0x8
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 8f492120f..b355fed51 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -3472,7 +3472,7 @@ _081411D0:
movs r0, 0
movs r1, 0
bl SetGpuReg
- bl sub_80F6C14
+ bl ResetBgPositions
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _081413A0 @ =gUnknown_8466B10
@@ -3495,20 +3495,20 @@ _081411D0:
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x3
bl CopyBgTilemapBufferToVram
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
ldr r1, _081413AC @ =gUnknown_84659D0
movs r5, 0
str r5, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _081413B0 @ =gUnknown_846653C
str r5, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0xC0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _081413B4 @ =0x0000185c
add r1, r8
movs r0, 0x2
@@ -3563,13 +3563,13 @@ _081411D0:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _081413D4 @ =gUnknown_8466998
str r6, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
@@ -3648,7 +3648,7 @@ _081413D8: .4byte gUnknown_841B779
_081413DC: .4byte sub_8141118
_081413E0: .4byte sub_8140E40
_081413E4:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
diff --git a/asm/start_menu.s b/asm/start_menu.s
index cf06662d2..9f6ef8662 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -1127,7 +1127,7 @@ _0806F644: .4byte gUnknown_3000FA9
thumb_func_start sub_806F648
sub_806F648: @ 806F648
push {lr}
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@@ -1179,7 +1179,7 @@ sub_806F69C: @ 806F69C
movs r1, 0x1
bl sub_80F7768
movs r0, 0x1
- bl sub_80F6E08
+ bl AddTextPrinterForMessage
ldr r1, _0806F6CC @ =gUnknown_3000FA9
movs r0, 0x1
strb r0, [r1]
@@ -1329,7 +1329,7 @@ sub_806F7A8: @ 806F7A8
lsrs r0, 24
movs r1, 0
bl ClearStdWindowAndFrame
- bl remove_start_menu_window_maybe
+ bl RemoveStartMenuWindow
movs r0, 0
bl sub_8112EDC
bl sub_806FCF4
@@ -1347,7 +1347,7 @@ _0806F7D8: .4byte sub_806F7DC
thumb_func_start sub_806F7DC
sub_806F7DC: @ 806F7DC
push {lr}
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
ldr r1, _0806F7F0 @ =gUnknown_3000FA4
ldr r0, _0806F7F4 @ =sub_806F7F8
str r0, [r1]
@@ -1451,7 +1451,7 @@ _0806F8A0: .4byte sub_806F8A4
thumb_func_start sub_806F8A4
sub_806F8A4: @ 806F8A4
push {lr}
- bl sub_80F7858
+ bl DisplayYesNoMenuDefaultYes
ldr r1, _0806F8B8 @ =gUnknown_3000FA4
ldr r0, _0806F8BC @ =sub_806F8DC
str r0, [r1]
@@ -1466,7 +1466,7 @@ _0806F8BC: .4byte sub_806F8DC
thumb_func_start sub_806F8C0
sub_806F8C0: @ 806F8C0
push {lr}
- bl sub_80F7880
+ bl DisplayYesNoMenuDefaultNo
ldr r1, _0806F8D4 @ =gUnknown_3000FA4
ldr r0, _0806F8D8 @ =sub_806F8DC
str r0, [r1]
@@ -1596,7 +1596,7 @@ _0806F9B4: .4byte sub_806FA04
thumb_func_start sub_806F9B8
sub_806F9B8: @ 806F9B8
push {lr}
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
cmp r0, 0
bne _0806F9D0
@@ -1638,7 +1638,7 @@ _0806FA00:
thumb_func_start sub_806FA04
sub_806FA04: @ 806FA04
push {lr}
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
lsls r0, 16
cmp r0, 0
bne _0806FA1C
@@ -2198,7 +2198,7 @@ sub_806FEA0: @ 806FEA0
lsrs r0, 24
movs r1, 0x1
bl ClearStdWindowAndFrame
- bl remove_start_menu_window_maybe
+ bl RemoveStartMenuWindow
bl sub_80696C0
bl ScriptContext2_Disable
pop {r0}
diff --git a/asm/title_screen.s b/asm/title_screen.s
index 06ca468a8..a71921f43 100644
--- a/asm/title_screen.s
+++ b/asm/title_screen.s
@@ -113,13 +113,13 @@ _080789F0:
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08078A9C @ =gUnknown_8EAD390
str r6, [sp]
movs r0, 0
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r0, _08078AA0 @ =gUnknown_8EAD5E8
movs r1, 0xD0
movs r2, 0x20
@@ -129,13 +129,13 @@ _080789F0:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08078AA8 @ =gUnknown_8EADEE4
str r6, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r5, _08078AAC @ =gUnknown_8EAE094
adds r0, r5, 0
movs r1, 0xF0
@@ -146,13 +146,13 @@ _080789F0:
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08078AB4 @ =gUnknown_8EAE374
str r6, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
adds r0, r5, 0
movs r1, 0xE0
movs r2, 0x20
@@ -162,13 +162,13 @@ _080789F0:
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _08078ABC @ =gUnknown_83BF5A8
str r6, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
bl sub_8079708
b _08078B18
.align 2, 0
@@ -184,7 +184,7 @@ _08078AB4: .4byte gUnknown_8EAE374
_08078AB8: .4byte gUnknown_83BF58C
_08078ABC: .4byte gUnknown_83BF5A8
_08078AC0:
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
cmp r0, 0
bne _08078B26
@@ -1641,7 +1641,7 @@ _0807965C:
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
- bl sub_80F6C14
+ bl ResetBgPositions
movs r1, 0xE0
lsls r1, 8
movs r0, 0
diff --git a/asm/trade.s b/asm/trade.s
index 1373b84e1..3e8dc9fc1 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -1909,7 +1909,7 @@ sub_804D638: @ 804D638
lsrs r1, 24
movs r0, 0x1C
bl SetGpuReg
- bl sub_80F6CBC
+ bl RunTextPrinters_CheckPrinter0Active
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index 19969116a..137ee69c1 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -2999,7 +2999,7 @@ sub_8129B14: @ 8129B14
bl InitBgsFromTemplates
ldr r0, _08129B6C @ =gUnknown_845AA94
bl InitWindows
- bl reset_temp_tile_data_buffers
+ bl ResetTempTileDataBuffers
bl sub_812AD50
ldr r0, [r4]
bl sub_8129BB8
@@ -3199,7 +3199,7 @@ _08129C9C: .4byte gUnknown_203B0E4
sub_8129CA0: @ 8129CA0
push {r4,lr}
adds r4, r0, 0
- bl free_temp_tile_data_buffers_if_possible
+ bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5224,7 +5224,7 @@ sub_812AC08: @ 812AC08
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _0812AC54 @ =gUnknown_8EAAA6C
movs r0, 0x1
movs r2, 0
@@ -5256,7 +5256,7 @@ sub_812AC58: @ 812AC58
movs r0, 0x2
movs r2, 0
movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
+ bl DecompressAndCopyTileDataToVram
ldr r1, _0812AC98 @ =gUnknown_8EA1958
movs r0, 0x2
movs r2, 0
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index 30a3f101a..1d96617c4 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -553,21 +553,8 @@ gUnknown_841F1C8:: @ 841F1C8
gTMCaseMainWindowPalette:: @ 841F408
.incbin "graphics/tm_case/unk_841F408.gbapal"
-gUnknown_841F428:: @ 841F428
- .incbin "baserom.gba", 0x41F428, 0x4
-
-gUnknown_841F42C:: @ 841F42C
- .incbin "baserom.gba", 0x41F42C, 0x10
-
-gUnknown_841F43C:: @ 841F43C
- .incbin "baserom.gba", 0x41F43C, 0x8
-
-gUnknown_841F444:: @ 841F444
- .incbin "baserom.gba", 0x41F444, 0x60
-
-gUnknown_841F4A4:: @ 841F4A4
- .incbin "baserom.gba", 0x41F4A4, 0x10
-
+ .section .rodata.841F4B4
+ .align 2
gUnknown_841F4B4:: @ 841F4B4
.incbin "baserom.gba", 0x41F4B4, 0x1F534
diff --git a/data/specials.inc b/data/specials.inc
index 96d0ef253..e5edb47dd 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -162,7 +162,7 @@ gSpecials:: @ 815FD60
def_special sub_80CA758
def_special nullsub_75
def_special nullsub_75
- def_special sub_8055DC4
+ def_special Overworld_PlaySpecialMapMusic
def_special nullsub_75
def_special nullsub_75
def_special nullsub_75
@@ -271,8 +271,8 @@ gSpecials:: @ 815FD60
def_special nullsub_75
def_special nullsub_75
def_special nullsub_75
- def_special sp109_CreatePCMenu
- def_special sub_80CA574
+ def_special ScrSpecial_CreatePCMenu
+ def_special HallOfFamePCBeginFade
def_special sub_80CA618
def_special nullsub_75
def_special nullsub_75
diff --git a/include/dma3.h b/include/dma3.h
index fcd7bae43..381e1e322 100644
--- a/include/dma3.h
+++ b/include/dma3.h
@@ -3,10 +3,55 @@
#include "global.h"
+// Maximum amount of data we will transfer in one operation
+#define MAX_DMA_BLOCK_SIZE 0x1000
+
+#define Dma3CopyLarge_(src, dest, size, bit) \
+{ \
+ const void *_src = src; \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ if (_size <= MAX_DMA_BLOCK_SIZE) \
+ { \
+ DmaCopy##bit(3, _src, _dest, _size); \
+ break; \
+ } \
+ DmaCopy##bit(3, _src, _dest, MAX_DMA_BLOCK_SIZE); \
+ _src += MAX_DMA_BLOCK_SIZE; \
+ _dest += MAX_DMA_BLOCK_SIZE; \
+ _size -= MAX_DMA_BLOCK_SIZE; \
+ } \
+}
+
+#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16)
+#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32)
+
+#define Dma3FillLarge_(value, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ if (_size <= MAX_DMA_BLOCK_SIZE) \
+ { \
+ DmaFill##bit(3, value, _dest, _size); \
+ break; \
+ } \
+ DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \
+ _dest += MAX_DMA_BLOCK_SIZE; \
+ _size -= MAX_DMA_BLOCK_SIZE; \
+ } \
+}
+
+#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
+#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
+
void ClearDma3Requests(void);
void ProcessDma3Requests(void);
-int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
-int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
-int CheckForSpaceForDma3Request(s16 index);
+s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
+s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
+s16 CheckForSpaceForDma3Request(s16 index);
#endif // GUARD_DMA3_H
diff --git a/include/gba/defines.h b/include/gba/defines.h
index a0ef506dd..5489f9e14 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -40,6 +40,9 @@
#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (BG_SCREEN_SIZE * (n)))
#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n)))
+#define BG_TILE_H_FLIP(n) (0x400 + (n))
+#define BG_TILE_V_FLIP(n) (0x800 + (n))
+
// text-mode BG
#define OBJ_VRAM0 (void *)(VRAM + 0x10000)
#define OBJ_VRAM0_SIZE 0x8000
diff --git a/include/gba/multiboot.h b/include/gba/multiboot.h
index e88b43a19..a8bc8fddf 100644
--- a/include/gba/multiboot.h
+++ b/include/gba/multiboot.h
@@ -18,9 +18,9 @@ struct MultiBootParam
u8 response_bit;
u8 client_bit;
u8 reserved1;
- u8 *boot_srcp;
- u8 *boot_endp;
- u8 *masterp;
+ const u8 *boot_srcp;
+ const u8 *boot_endp;
+ const u8 *masterp;
u8 *reserved2[MULTIBOOT_NCHILD];
u32 system_work2[4];
u8 sendflag;
diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h
index 2dc9fae41..1d2122399 100644
--- a/include/hall_of_fame.h
+++ b/include/hall_of_fame.h
@@ -7,5 +7,8 @@ void CB2_DoHallOfFameScreen(void);
void CB2_DoHallOfFameScreenDontSaveData(void);
void CB2_DoHallOfFamePC(void);
void sub_8175280(void);
+void sub_80F2978(void);
+void HallOfFamePCBeginFade(void);
+void ReturnFromHallOfFamePC(void);
#endif // GUARD_HALL_OF_FAME_H
diff --git a/include/menu.h b/include/menu.h
index bc45e7e61..3231587de 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -21,25 +21,25 @@ void AddTextPrinterParameterized3(u8, u8, u8, u8, const void *, s8, const u8 *);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
-void schedule_bg_copy_tilemap_to_vram(u8 bgNum);
+void ScheduleBgCopyTilemapToVram(u8 bgNum);
void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrapAround(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
-void reset_temp_tile_data_buffers(void);
-int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);
-bool8 free_temp_tile_data_buffers_if_possible(void);
+void ResetTempTileDataBuffers(void);
+void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode);
+bool8 FreeTempTileDataBuffersIfPossible(void);
u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
//void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
s8 Menu_ProcessInputNoWrapClearOnChoose(void);
-void do_scheduled_bg_tilemap_copies_to_vram(void);
-void clear_scheduled_bg_copies_to_vram(void);
+void DoScheduledBgTilemapCopiesToVram(void);
+void ClearScheduledBgCopiesToVram(void);
void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
void ClearMenuWindow(u8 windowId, bool8 copyToVram);
-void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
+void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
void CreateWindow_SnapRight_StdPal(u8, u8, u8, u8, u16);
void Menu_PrintHelpSystemUIHeader(const u8 *, const u8 *, u8, u32, u8);
void PrintTextOnRightSnappedWindow(const u8 *, u32, u8);
diff --git a/include/multiboot.h b/include/multiboot.h
index 4b4a3693a..ee0a34c83 100644
--- a/include/multiboot.h
+++ b/include/multiboot.h
@@ -18,6 +18,6 @@ void MultiBootInit(struct MultiBootParam *mp);
int MultiBootMain(struct MultiBootParam *mp);
void MultiBootStartProbe(struct MultiBootParam *mp);
void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed);
-int MultiBootCheckComplete(struct MultiBootParam *mp);
+bool32 MultiBootCheckComplete(struct MultiBootParam *mp);
#endif // GUARD_MULTIBOOT_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index ed933089f..caa7cfc3c 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -9,7 +9,7 @@ void sub_81973A4(void);
void sub_81973C4(u8, u8);
void sub_819746C(u8 windowId, bool8 copyToVram);
void sub_81973FC(u8, u8);
-u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor);
+u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *src, TaskFunc callback);
void sub_8197434(u8 a0, u8 a1);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
@@ -19,18 +19,34 @@ void ClearDialogWindowAndFrame(u8, u8);
u8 GetTextSpeedSetting(void);
void sub_80F6E9C(void);
void DrawDialogueFrame(u8 windowId, bool8 transfer);
-void sub_80F7974(const u8 *);
-u8 GetStartMenuWindowId(void);
+void sub_80F7974(const u8 * text);
void sub_80F7998(void);
-void sub_80F69E8(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
+void sub_80F79A4(void);
void DrawStdWindowFrame(u8 windowId, bool8 copyNow);
void InitStandardTextBoxWindows(void);
void ResetBg0(void);
-void Menu_LoadStdPalAt(u16);
-void * malloc_and_decompress(const void * src, u32 * size);
-u16 sub_80F796C(void);
+void ResetBgPositions(void);
+void CopyRectIntoAltRect(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height);
void SetBgRectPal(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
-void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void * gfx, u32 size, u16 a3, u8 a4);
+void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
+void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
+void Menu_LoadStdPal(void);
+void Menu_LoadStdPalAt(u16);
+void * MallocAndDecompress(const void * src, u32 * size);
+u16 GetStdWindowBaseTileNum(void);
void ClearStdWindowAndFrame(u8 taskId, bool8 copyNow);
+void sub_80F6E9C(void);
+void sub_80F771C(bool8 copyToVram);
+void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed);
+void AddTextPrinterDiffStyle(bool8 allowSkippingDelayWithButtonPress);
+void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
+void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram);
+void sub_80F7768(u8 windowId, bool8 copyToVram);
+void DisplayYesNoMenuDefaultYes(void);
+void DisplayYesNoMenuDefaultNo(void);
+u8 sub_80F78E0(u8 windowId);
+u8 GetStartMenuWindowId(void);
+void RemoveStartMenuWindow(void);
+void SetDefaultFontsPointer(void);
#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/overworld.h b/include/overworld.h
index fed1a33a5..e08842143 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -86,7 +86,7 @@ void sub_8055D5C(struct WarpData *);
void sub_80572A8(void);
void sub_805726C(void);
void sub_8057430(void);
-void sub_8055DC4(void);
+void Overworld_PlaySpecialMapMusic(void);
u8 GetCurrentRegionMapSectionId(void);
@@ -111,7 +111,6 @@ void Overworld_ResetStateAfterTeleport(void);
void Overworld_FadeOutMapMusic(void);
void sub_805671C(void);
-void sub_8055DC4(void);
bool8 sub_8055FC4(void);
bool8 is_light_level_8_or_9(u8 mapType);
bool32 sub_8055C9C(void);
diff --git a/include/quest_log.h b/include/quest_log.h
index cdd28371f..4fb4fe0fa 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -26,6 +26,11 @@ void sub_8115748(u16);
u8 sub_8112CAC(void);
bool8 sub_81119D4(void (*func)(void));
void sub_8111F38(u16, u16);
+void sub_8111134(void);
+void sub_8112EDC(u8 a0);
+u8 sub_8112EB4(void);
+void sub_8113018(const u8 * text, u8 mode);
+void MapNamePopupWindowIdSetDummy(void);
extern u8 gUnknown_203ADFA;
diff --git a/include/script.h b/include/script.h
index 8ffbe1563..4e8b8c305 100644
--- a/include/script.h
+++ b/include/script.h
@@ -72,6 +72,7 @@ void sub_80699A4(void);
void sub_8069970(void);
void sub_8069A20(void);
void sub_8069A2C(void);
+bool8 IsMsgSignPost(void);
extern const u8 *gRAMScriptPtr;
diff --git a/include/script_menu.h b/include/script_menu.h
index f82b061a5..c1e32beae 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -10,6 +10,9 @@ bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 va
bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
+bool32 ScrSpecial_CreatePCMenu(void);
+void ScriptMenu_DisplayPCStartupPrompt(void);
+
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
void sub_809D6D4(void);
diff --git a/include/text.h b/include/text.h
index 2e6a8c837..07f6b29c2 100644
--- a/include/text.h
+++ b/include/text.h
@@ -230,6 +230,7 @@ u16 Font4Func(struct TextPrinter *textPrinter);
u16 Font5Func(struct TextPrinter *textPrinter);
u16 Font7Func(struct TextPrinter *textPrinter);
u16 Font8Func(struct TextPrinter *textPrinter);
+u16 Font6Func(struct TextPrinter *textPrinter);
void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter);
void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter);
diff --git a/include/text_window.h b/include/text_window.h
index cc1de56ae..c1463a9c7 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -20,11 +20,14 @@ void rbox_fill_rectangle(u8 windowId);
const u16* stdpal_get(u8 id);
const u16* GetOverworldTextboxPalettePtr(void);
void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset);
-void TextWindow_SetBubbleFrame_841F1C8(u8 windowId, u16 tileStart, u8 palette);
+void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 tileStart, u8 palette);
void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 tileStart, u8 palette);
void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette);
void LoadUserWindowBorderGfx(u8 windowId, u16 tileStart, u8 palette);
void sub_814FDA0(u8 windowId, u16 tileStart, u8 palette);
void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette);
+void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset);
+void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx);
+void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx);
#endif // GUARD_TEXT_WINDOW_H
diff --git a/ld_script.txt b/ld_script.txt
index 8487e7265..5d1a151f6 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -61,7 +61,7 @@ SECTIONS {
src/sprite.o(.text);
src/string_util.o(.text);
asm/link.o(.text);
- asm/multiboot.o(.text);
+ src/multiboot.o(.text);
asm/main_menu.o(.text);
asm/battle_controllers.o(.text);
src/decompress.o(.text);
@@ -87,7 +87,7 @@ SECTIONS {
asm/pokeball.o(.text);
src/load_save.o(.text);
asm/trade.o(.text);
- asm/play_time.o(.text);
+ src/play_time.o(.text);
asm/new_game.o(.text);
asm/overworld.o(.text);
src/fieldmap.o(.text);
@@ -185,7 +185,7 @@ SECTIONS {
asm/fldeff_flash.o(.text);
asm/post_battle_event_funcs.o(.text);
src/prof_pc.o(.text);
- asm/hof_pc.o(.text);
+ src/hof_pc.o(.text);
asm/field_specials.o(.text);
asm/battle_records.o(.text);
asm/evolution_scene.o(.text);
@@ -218,7 +218,7 @@ SECTIONS {
asm/clear_save_data_screen.o(.text);
asm/evolution_graphics.o(.text);
src/fldeff_teleport.o(.text);
- asm/new_menu_helpers.o(.text);
+ src/new_menu_helpers.o(.text);
asm/box_party_pokemon_dropdown.o(.text);
asm/save_menu_util.o(.text);
asm/map_preview_screen.o(.text);
@@ -419,6 +419,8 @@ SECTIONS {
data/data_83FECCC.o(.rodata);
data/strings.o(.rodata);
data/data_83FECCC.o(.rodata.841EE44);
+ src/new_menu_helpers.o(.rodata);
+ data/data_83FECCC.o(.rodata.841F4B4);
src/bag.o(.rodata);
src/trainer_pokemon_sprites.o(.rodata);
src/vs_seeker.o(.rodata);
diff --git a/src/bag.c b/src/bag.c
index f2fc40d93..f4d29dfd4 100644
--- a/src/bag.c
+++ b/src/bag.c
@@ -211,7 +211,7 @@ void sub_810B858(void)
InitWindows(gUnknown_84530E4);
DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0);
- TextWindow_SetBubbleFrame_841F1C8(0, 0x6D, 0xD0);
+ TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0);
TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0);
LoadPalette(gUnknown_8453098, 0xF0, 0x20);
for (i = 0; i < 3; i++)
@@ -219,7 +219,7 @@ void sub_810B858(void)
FillWindowPixelBuffer(i, 0x00);
PutWindowTilemap(i);
}
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
for (i = 0; i < 11; i++)
{
gUnknown_203AD34[i] = 0xFF;
@@ -258,7 +258,7 @@ u8 sub_810B9DC(u8 a0, u8 a1)
{
SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C);
}
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
}
return gUnknown_203AD34[a0];
}
@@ -268,7 +268,7 @@ void sub_810BA3C(u8 a0)
ClearMenuWindow(gUnknown_203AD34[a0], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
gUnknown_203AD34[a0] = 0xFF;
}
@@ -289,7 +289,7 @@ void sub_810BA9C(u8 a0)
ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]);
PutWindowTilemap(1);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
gUnknown_203AD34[a0] = 0xFF;
}
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 6343b55cd..485d87a57 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -6,6 +6,7 @@
#include "constants/abilities.h"
#include "constants/battle_ai.h"
#include "constants/battle_move_effects.h"
+#include "constants/moves.h"
extern u16 Random(void);
extern void sub_80C7164(void);
@@ -230,10 +231,7 @@ static const BattleAICmdFunc sBattleAICmdTable[] =
BattleAICmd_if_not_taunted, // 0x5D
};
-#ifdef NONMATCHING
-static
-#endif
-const u16 sDiscouragedPowerfulMoveEffects[] =
+static const u16 sDiscouragedPowerfulMoveEffects[] =
{
EFFECT_EXPLOSION,
EFFECT_DREAM_EATER,
@@ -970,331 +968,69 @@ static void BattleAICmd_get_move_power(void)
gAIScriptPtr += 1;
}
-// still a nonmatching
-#ifdef NONMATCHING
static void BattleAICmd_is_most_powerful_move(void)
{
- int i, j;
- s32 damages[MAX_MON_MOVES];
+ s32 i, checkedMove;
+ s32 moveDmgs[4];
for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++)
+ {
if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == sDiscouragedPowerfulMoveEffects[i])
break;
+ }
if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power > 1
- && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
+ && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
{
gDynamicBasePower = 0;
- eDynamicMoveType = 0;
- eDmgMultiplier = 1;
+ *(&gBattleStruct->dynamicMoveType) = 0;
+ gBattleScripting.dmgMultiplier = 1;
gMoveResultFlags = 0;
gCritMultiplier = 1;
- for (i = 0; i < MAX_MON_MOVES; i++)
+ for (checkedMove = 0; checkedMove < MAX_MON_MOVES; checkedMove++)
{
- for (j = 0; sDiscouragedPowerfulMoveEffects[j] != 0xFFFF; j++)
- { // _08108276
- if (gBattleMoves[gBattleMons[gBankAttacker].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j])
+ for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++)
+ {
+ if (gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].effect == sDiscouragedPowerfulMoveEffects[i])
break;
}
- // _081082BA
- if (gBattleMons[gBankAttacker].moves[i]
- && sDiscouragedPowerfulMoveEffects[j] == 0xFFFF
- && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power > 1)
+ if (gBattleMons[sBattler_AI].moves[checkedMove] != MOVE_NONE
+ && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF
+ && gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].power > 1)
{
- gCurrentMove = gBattleMons[gBankAttacker].moves[i];
- AI_CalcDmg(gBankAttacker, gBankTarget);
- TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
- damages[i] = (gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[i]) / 100;
-
- if (damages[i] == 0) // moves always do at least 1 damage.
- damages[i] = 1;
+ gCurrentMove = gBattleMons[sBattler_AI].moves[checkedMove];
+ AI_CalcDmg(sBattler_AI, gBattlerTarget);
+ TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget);
+ moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100;
+ if (moveDmgs[checkedMove] == 0)
+ moveDmgs[checkedMove] = 1;
}
else
{
- damages[i] = 0;
+ moveDmgs[checkedMove] = 0;
}
}
- for (i = 0; i < MAX_MON_MOVES; i++)
- if (damages[i] > damages[AI_THINKING_STRUCT->movesetIndex])
+ for (checkedMove = 0; checkedMove < MAX_MON_MOVES; checkedMove++)
+ {
+ if (moveDmgs[checkedMove] > moveDmgs[AI_THINKING_STRUCT->movesetIndex])
break;
+ }
- if (i == MAX_MON_MOVES)
- AI_THINKING_STRUCT->funcResult = 2;
+ if (checkedMove == MAX_MON_MOVES)
+ AI_THINKING_STRUCT->funcResult = MOVE_MOST_POWERFUL; // Is the most powerful.
else
- AI_THINKING_STRUCT->funcResult = 1;
+ AI_THINKING_STRUCT->funcResult = MOVE_NOT_MOST_POWERFUL; // Not the most powerful.
}
else
{
- AI_THINKING_STRUCT->funcResult = 0;
+ AI_THINKING_STRUCT->funcResult = MOVE_POWER_DISCOURAGED; // Highly discouraged in terms of power.
}
- gAIScriptPtr += 1;
+ gAIScriptPtr++;
}
-#else
-NAKED
-static void BattleAICmd_is_most_powerful_move(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x14\n\
- movs r3, 0\n\
- ldr r0, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\
- ldrh r1, [r0]\n\
- ldr r5, _080C80A8 @ =0x0000ffff\n\
- ldr r6, _080C80AC @ =gBattleMoves\n\
- ldr r2, _080C80B0 @ =gBattleResources\n\
- cmp r1, r5\n\
- beq _080C7FA2\n\
- ldr r0, [r2]\n\
- ldr r0, [r0, 0x14]\n\
- ldrh r1, [r0, 0x2]\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r6\n\
- ldrb r4, [r0]\n\
- ldr r1, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\
-_080C7F92:\n\
- ldrh r0, [r1]\n\
- cmp r4, r0\n\
- beq _080C7FA2\n\
- adds r1, 0x2\n\
- adds r3, 0x1\n\
- ldrh r0, [r1]\n\
- cmp r0, r5\n\
- bne _080C7F92\n\
-_080C7FA2:\n\
- ldr r0, [r2]\n\
- ldr r0, [r0, 0x14]\n\
- ldrh r1, [r0, 0x2]\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r6\n\
- ldrb r0, [r0, 0x1]\n\
- cmp r0, 0x1\n\
- bhi _080C7FB8\n\
- b _080C8142\n\
-_080C7FB8:\n\
- lsls r0, r3, 1\n\
- ldr r1, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\
- adds r0, r1\n\
- ldrh r3, [r0]\n\
- ldr r0, _080C80A8 @ =0x0000ffff\n\
- cmp r3, r0\n\
- beq _080C7FC8\n\
- b _080C8142\n\
-_080C7FC8:\n\
- ldr r0, _080C80B4 @ =gDynamicBasePower\n\
- movs r1, 0\n\
- strh r1, [r0]\n\
- ldr r0, _080C80B8 @ =gBattleStruct\n\
- ldr r0, [r0]\n\
- strb r1, [r0, 0x13]\n\
- ldr r0, _080C80BC @ =gBattleScripting\n\
- movs r2, 0x1\n\
- strb r2, [r0, 0xE]\n\
- ldr r0, _080C80C0 @ =gMoveResultFlags\n\
- strb r1, [r0]\n\
- ldr r0, _080C80C4 @ =gCritMultiplier\n\
- strb r2, [r0]\n\
- movs r6, 0\n\
- mov r9, r3\n\
- ldr r2, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\
- ldrh r2, [r2]\n\
- str r2, [sp, 0x10]\n\
-_080C7FEC:\n\
- movs r3, 0\n\
- ldr r5, _080C80C8 @ =gBattleMons\n\
- lsls r4, r6, 1\n\
- ldr r7, _080C80CC @ =sBattler_AI\n\
- lsls r0, r6, 2\n\
- mov r8, r0\n\
- adds r1, r6, 0x1\n\
- mov r10, r1\n\
- ldr r2, [sp, 0x10]\n\
- cmp r2, r9\n\
- beq _080C8030\n\
- ldr r2, _080C80AC @ =gBattleMoves\n\
- ldrb r1, [r7]\n\
- movs r0, 0x58\n\
- muls r0, r1\n\
- adds r0, r4, r0\n\
- adds r1, r5, 0\n\
- adds r1, 0xC\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r2\n\
- ldrb r2, [r0]\n\
- ldr r1, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\
-_080C8020:\n\
- ldrh r0, [r1]\n\
- cmp r2, r0\n\
- beq _080C8030\n\
- adds r1, 0x2\n\
- adds r3, 0x1\n\
- ldrh r0, [r1]\n\
- cmp r0, r9\n\
- bne _080C8020\n\
-_080C8030:\n\
- ldrb r1, [r7]\n\
- movs r0, 0x58\n\
- muls r0, r1\n\
- adds r0, r4, r0\n\
- adds r1, r5, 0\n\
- adds r1, 0xC\n\
- adds r1, r0, r1\n\
- ldrh r0, [r1]\n\
- cmp r0, 0\n\
- beq _080C80DC\n\
- lsls r0, r3, 1\n\
- ldr r2, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\
- adds r0, r2\n\
- ldrh r0, [r0]\n\
- cmp r0, r9\n\
- bne _080C80DC\n\
- ldr r0, _080C80AC @ =gBattleMoves\n\
- ldrh r2, [r1]\n\
- lsls r1, r2, 1\n\
- adds r1, r2\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0x1\n\
- bls _080C80DC\n\
- ldr r5, _080C80D0 @ =gCurrentMove\n\
- strh r2, [r5]\n\
- ldrb r0, [r7]\n\
- ldr r4, _080C80D4 @ =gBattlerTarget\n\
- ldrb r1, [r4]\n\
- bl AI_CalcDmg\n\
- ldrh r0, [r5]\n\
- ldrb r1, [r7]\n\
- ldrb r2, [r4]\n\
- bl TypeCalc\n\
- mov r4, sp\n\
- add r4, r8\n\
- ldr r2, _080C80D8 @ =gBattleMoveDamage\n\
- ldr r0, _080C80B0 @ =gBattleResources\n\
- ldr r0, [r0]\n\
- ldr r0, [r0, 0x14]\n\
- adds r0, 0x18\n\
- adds r0, r6\n\
- ldrb r1, [r0]\n\
- ldr r0, [r2]\n\
- muls r0, r1\n\
- movs r1, 0x64\n\
- bl __divsi3\n\
- str r0, [r4]\n\
- cmp r0, 0\n\
- bne _080C80E4\n\
- movs r0, 0x1\n\
- str r0, [r4]\n\
- b _080C80E4\n\
- .align 2, 0\n\
-_080C80A4: .4byte sDiscouragedPowerfulMoveEffects\n\
-_080C80A8: .4byte 0x0000ffff\n\
-_080C80AC: .4byte gBattleMoves\n\
-_080C80B0: .4byte gBattleResources\n\
-_080C80B4: .4byte gDynamicBasePower\n\
-_080C80B8: .4byte gBattleStruct\n\
-_080C80BC: .4byte gBattleScripting\n\
-_080C80C0: .4byte gMoveResultFlags\n\
-_080C80C4: .4byte gCritMultiplier\n\
-_080C80C8: .4byte gBattleMons\n\
-_080C80CC: .4byte sBattler_AI\n\
-_080C80D0: .4byte gCurrentMove\n\
-_080C80D4: .4byte gBattlerTarget\n\
-_080C80D8: .4byte gBattleMoveDamage\n\
-_080C80DC:\n\
- mov r1, sp\n\
- add r1, r8\n\
- movs r0, 0\n\
- str r0, [r1]\n\
-_080C80E4:\n\
- mov r6, r10\n\
- cmp r6, 0x3\n\
- bgt _080C80EC\n\
- b _080C7FEC\n\
-_080C80EC:\n\
- movs r6, 0\n\
- ldr r2, _080C8130 @ =gBattleResources\n\
- ldr r0, [r2]\n\
- ldr r0, [r0, 0x14]\n\
- ldrb r0, [r0, 0x1]\n\
- lsls r0, 2\n\
- add r0, sp\n\
- ldr r1, [sp]\n\
- ldr r0, [r0]\n\
- ldr r5, _080C8134 @ =gAIScriptPtr\n\
- cmp r1, r0\n\
- bgt _080C8122\n\
- adds r4, r2, 0\n\
- mov r3, sp\n\
-_080C8108:\n\
- adds r3, 0x4\n\
- adds r6, 0x1\n\
- cmp r6, 0x3\n\
- bgt _080C8122\n\
- ldr r0, [r4]\n\
- ldr r0, [r0, 0x14]\n\
- ldrb r0, [r0, 0x1]\n\
- lsls r0, 2\n\
- add r0, sp\n\
- ldr r1, [r3]\n\
- ldr r0, [r0]\n\
- cmp r1, r0\n\
- ble _080C8108\n\
-_080C8122:\n\
- cmp r6, 0x4\n\
- bne _080C8138\n\
- ldr r0, [r2]\n\
- ldr r1, [r0, 0x14]\n\
- movs r0, 0x2\n\
- str r0, [r1, 0x8]\n\
- b _080C814C\n\
- .align 2, 0\n\
-_080C8130: .4byte gBattleResources\n\
-_080C8134: .4byte gAIScriptPtr\n\
-_080C8138:\n\
- ldr r0, [r2]\n\
- ldr r1, [r0, 0x14]\n\
- movs r0, 0x1\n\
- str r0, [r1, 0x8]\n\
- b _080C814C\n\
-_080C8142:\n\
- ldr r0, [r2]\n\
- ldr r1, [r0, 0x14]\n\
- movs r0, 0\n\
- str r0, [r1, 0x8]\n\
- ldr r5, _080C8164 @ =gAIScriptPtr\n\
-_080C814C:\n\
- ldr r0, [r5]\n\
- adds r0, 0x1\n\
- str r0, [r5]\n\
- add sp, 0x14\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_080C8164: .4byte gAIScriptPtr\n\
- .syntax divided\n");
-}
-#endif
static void BattleAICmd_get_move(void)
{
diff --git a/src/bg.c b/src/bg.c
index 5cbd7658e..027157fa5 100644
--- a/src/bg.c
+++ b/src/bg.c
@@ -605,88 +605,25 @@ u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset)
return (u8)cursor;
}
-#ifdef NONMATCHING // Matches everything but r5 and r6 are flipped, rrr
bool8 IsDma3ManagerBusyWithBgCopy(void)
{
- u8 mod;
- u8 div;
- s8 reqSpace;
-
int i;
for (i = 0; i < 0x80; i++)
{
- div = i / 0x20;
- mod = i % 0x20;
+ u8 div = i / 0x20;
+ u8 mod = i % 0x20;
- if ((sDmaBusyBitfield[div] & (1 << mod)) != FALSE)
+ if ((sDmaBusyBitfield[div] & (1 << mod)))
{
- reqSpace = CheckForSpaceForDma3Request(i);
+ s8 reqSpace = CheckForSpaceForDma3Request(i);
if (reqSpace == -1)
- {
return TRUE;
- }
-
sDmaBusyBitfield[div] &= ~(1 << mod);
}
}
-
return FALSE;
}
-#else
-NAKED
-bool8 IsDma3ManagerBusyWithBgCopy(void)
-{
- asm("push {r4-r7,lr}\n\
- mov r5, #0\n\
- mov r7, #0x1\n\
- neg r7, r7\n\
-_08001ADC:\n\
- add r0, r5, #0\n\
- cmp r5, #0\n\
- bge _08001AE4\n\
- add r0, #0x1F\n\
-_08001AE4:\n\
- asr r0, #5\n\
- lsl r2, r0, #24\n\
- lsl r0, #5\n\
- sub r0, r5, r0\n\
- lsl r0, #24\n\
- lsr r0, #24\n\
- ldr r1, =sDmaBusyBitfield\n\
- lsr r2, #22\n\
- add r4, r2, r1\n\
- mov r6, #0x1\n\
- lsl r6, r0\n\
- ldr r0, [r4]\n\
- and r0, r6\n\
- cmp r0, #0\n\
- beq _08001B22\n\
- lsl r0, r5, #16\n\
- asr r0, #16\n\
- bl CheckForSpaceForDma3Request\n\
- lsl r0, #24\n\
- asr r0, #24\n\
- cmp r0, r7\n\
- bne _08001B1C\n\
- mov r0, #0x1\n\
- b _08001B2A\n\
- .pool\n\
-_08001B1C:\n\
- ldr r0, [r4]\n\
- bic r0, r6\n\
- str r0, [r4]\n\
-_08001B22:\n\
- add r5, #0x1\n\
- cmp r5, #0x7F\n\
- ble _08001ADC\n\
- mov r0, #0\n\
-_08001B2A:\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n");
-}
-#endif // NONMATCHING
void ShowBg(u8 bg)
{
diff --git a/src/daycare.c b/src/daycare.c
index 7f64cf548..35670465a 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -1824,7 +1824,7 @@ static void CB2_EggHatch_0(void)
SetVBlankCallback(VBlankCB_EggHatch);
gSpecialVar_0x8005 = GetCurrentMapMusic();
- reset_temp_tile_data_buffers();
+ ResetTempTileDataBuffers();
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBgTemplates_EggHatch, ARRAY_COUNT(sBgTemplates_EggHatch));
diff --git a/src/dma3_manager.c b/src/dma3_manager.c
index 10049a566..fb75c0963 100644
--- a/src/dma3_manager.c
+++ b/src/dma3_manager.c
@@ -1,6 +1,13 @@
#include "global.h"
#include "dma3.h"
+#define MAX_DMA_REQUESTS 128
+
+#define DMA_REQUEST_COPY32 1
+#define DMA_REQUEST_FILL32 2
+#define DMA_REQUEST_COPY16 3
+#define DMA_REQUEST_FILL16 4
+
static /*IWRAM_DATA*/ struct {
/* 0x00 */ const u8 *src;
/* 0x04 */ u8 *dest;
@@ -29,78 +36,50 @@ void ClearDma3Requests(void)
gDma3ManagerLocked = FALSE;
}
-#ifdef NONMATCHING
void ProcessDma3Requests(void)
{
- // NOTE: the fillerA member of the DMA struct is actually u32 value;
- u16 total_size;
+ u16 bytesTransferred;
if (gDma3ManagerLocked)
return;
- total_size = 0;
+ bytesTransferred = 0;
// as long as there are DMA requests to process (unless size or vblank is an issue), do not exit
- while (gDma3Requests[gDma3RequestCursor].size)
+ while (gDma3Requests[gDma3RequestCursor].size != 0)
{
- total_size += gDma3Requests[gDma3RequestCursor].size;
+ bytesTransferred += gDma3Requests[gDma3RequestCursor].size;
- if (total_size > 0xA000)
- return; // don't do too much at once
-
- if (REG_VCOUNT > 224)
- return;// we're about to leave vblank, stop
+ if (bytesTransferred > 40 * 1024)
+ return; // don't transfer more than 40 KiB
+ if (*(u8 *)REG_ADDR_VCOUNT > 224)
+ return; // we're about to leave vblank, stop
switch (gDma3Requests[gDma3RequestCursor].mode)
{
- case 1: // regular 32-bit copy
- // _08000C8C
- if(gDma3Requests[gDma3RequestCursor].size <= 0x1000)
- {
- DmaCopy32(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size);
- break;
- }
- while (gDma3Requests[gDma3RequestCursor].size > 0x1000)
- {
- DmaCopy32(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, 0x1000);
- gDma3Requests[gDma3RequestCursor].src += 0x1000;
- gDma3Requests[gDma3RequestCursor].dest += 0x1000;
- gDma3Requests[gDma3RequestCursor].size -= 0x1000;
- }
- DmaCopy32(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size);
+ case DMA_REQUEST_COPY32: // regular 32-bit copy
+ Dma3CopyLarge32_(gDma3Requests[gDma3RequestCursor].src,
+ gDma3Requests[gDma3RequestCursor].dest,
+ gDma3Requests[gDma3RequestCursor].size);
break;
- case 2: // repeat a single 32-bit value across RAM
- // _08000CD0
- while (gDma3Requests[gDma3RequestCursor].size > 0x1000)
- {
- DmaFill32(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, 0x1000);
- gDma3Requests[gDma3RequestCursor].dest += 0x1000;
- gDma3Requests[gDma3RequestCursor].size -= 0x1000;
- }
- DmaFill32(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size);
+ case DMA_REQUEST_FILL32: // repeat a single 32-bit value across RAM
+ Dma3FillLarge32_(gDma3Requests[gDma3RequestCursor].value,
+ gDma3Requests[gDma3RequestCursor].dest,
+ gDma3Requests[gDma3RequestCursor].size);
break;
- case 3: // regular 16-bit copy
- // _08000D3C
- while (gDma3Requests[gDma3RequestCursor].size > 0x1000)
- {
- DmaCopy16(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, 0x1000);
- gDma3Requests[gDma3RequestCursor].src += 0x1000;
- gDma3Requests[gDma3RequestCursor].dest += 0x1000;
- gDma3Requests[gDma3RequestCursor].size -= 0x1000;
- }
- DmaCopy16(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size);
+ case DMA_REQUEST_COPY16: // regular 16-bit copy
+ Dma3CopyLarge16_(gDma3Requests[gDma3RequestCursor].src,
+ gDma3Requests[gDma3RequestCursor].dest,
+ gDma3Requests[gDma3RequestCursor].size);
break;
- case 4: // repeat a single 16-bit value across RAM
- // _08000D88
- while (gDma3Requests[gDma3RequestCursor].size > 0x1000)
- {
- DmaFill16(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, 0x1000);
- gDma3Requests[gDma3RequestCursor].dest += 0x1000;
- gDma3Requests[gDma3RequestCursor].size -= 0x1000;
- }
- DmaFill16(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size);
+ case DMA_REQUEST_FILL16: // repeat a single 16-bit value across RAM
+ Dma3FillLarge16_(gDma3Requests[gDma3RequestCursor].value,
+ gDma3Requests[gDma3RequestCursor].dest,
+ gDma3Requests[gDma3RequestCursor].size);
break;
}
+
+ // Free the request
gDma3Requests[gDma3RequestCursor].src = NULL;
gDma3Requests[gDma3RequestCursor].dest = NULL;
gDma3Requests[gDma3RequestCursor].size = 0;
@@ -108,328 +87,12 @@ void ProcessDma3Requests(void)
gDma3Requests[gDma3RequestCursor].value = 0;
gDma3RequestCursor++;
- if (gDma3RequestCursor >= 128) // loop back to the first DMA request
+ if (gDma3RequestCursor >= MAX_DMA_REQUESTS) // loop back to the first DMA request
gDma3RequestCursor = 0;
}
}
-#else
-__attribute__((naked))
-void ProcessDma3Requests(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0xC\n\
- ldr r0, =gDma3ManagerLocked\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _08000C06\n\
- b _08000E46\n\
-_08000C06:\n\
- movs r0, 0\n\
- str r0, [sp, 0x8]\n\
- ldr r1, =gDma3Requests\n\
- ldr r2, =gDma3RequestCursor\n\
- ldrb r0, [r2]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x8]\n\
- mov r12, r2\n\
- cmp r0, 0\n\
- bne _08000C1E\n\
- b _08000E46\n\
-_08000C1E:\n\
- mov r8, r1\n\
- adds r1, 0x4\n\
- mov r10, r1\n\
- movs r6, 0x80\n\
- lsls r6, 5\n\
- ldr r7, =0x040000D4 @REG_DMA3\n\
- movs r2, 0\n\
- mov r9, r2\n\
-_08000C2E:\n\
- mov r3, r12 @ gDma3RequestCursor\n\
- ldrb r0, [r3]\n\
- lsls r5, r0, 4\n\
- mov r0, r8 @ gDma3Requests\n\
- adds r1, r5, r0 @ gDma3Requests[gDma3RequestCursor]\n\
- ldrh r0, [r1, 0x8] @ gDma3Requests[gDma3RequestCursor].size\n\
- ldr r2, [sp, 0x8]\n\
- adds r0, r2, r0\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- str r0, [sp, 0x8]\n\
- movs r0, 0xA0\n\
- lsls r0, 8\n\
- ldr r3, [sp, 0x8]\n\
- cmp r3, r0\n\
- bls _08000C50\n\
- b _08000E46\n\
-_08000C50:\n\
- ldr r0, =0x04000006 @REG_VCOUNT\n\
- ldrb r0, [r0]\n\
- cmp r0, 0xE0\n\
- bls _08000C5A\n\
- b _08000E46\n\
-_08000C5A:\n\
- ldrh r0, [r1, 0xA]\n\
- cmp r0, 0x2\n\
- beq _08000CD0\n\
- cmp r0, 0x2\n\
- bgt _08000C80\n\
- cmp r0, 0x1\n\
- beq _08000C8C\n\
- b _08000DF0\n\
- .pool\n\
-_08000C80:\n\
- cmp r0, 0x3\n\
- beq _08000D3C\n\
- cmp r0, 0x4\n\
- bne _08000C8A\n\
- b _08000D88\n\
-_08000C8A:\n\
- b _08000DF0\n\
-_08000C8C:\n\
- ldr r3, [r1]\n\
- mov r2, r10\n\
- adds r0, r5, r2\n\
- ldr r2, [r0]\n\
- ldrh r1, [r1, 0x8]\n\
- cmp r1, r6\n\
- bhi _08000CA6\n\
- str r3, [r7]\n\
- str r2, [r7, 0x4]\n\
- lsrs r0, r1, 2\n\
- movs r1, 0x84\n\
- lsls r1, 24\n\
- b _08000DAA\n\
-_08000CA6:\n\
- ldr r4, =0x040000D4 @REG_DMA3\n\
- str r3, [r4]\n\
- str r2, [r4, 0x4]\n\
- ldr r0, =0x84000400\n\
- str r0, [r4, 0x8]\n\
- ldr r0, [r4, 0x8]\n\
- adds r3, r6\n\
- adds r2, r6\n\
- subs r1, r6\n\
- cmp r1, r6\n\
- bhi _08000CA6\n\
- str r3, [r4]\n\
- str r2, [r4, 0x4]\n\
- lsrs r0, r1, 2\n\
- movs r1, 0x84\n\
- lsls r1, 24\n\
- b _08000D76\n\
- .pool\n\
-_08000CD0:\n\
- mov r3, r10\n\
- adds r0, r5, r3\n\
- ldr r4, [r0]\n\
- ldrh r1, [r1, 0x8]\n\
- cmp r1, r6\n\
- bhi _08000CF4\n\
- mov r0, r8\n\
- adds r0, 0xC\n\
- adds r0, r5, r0\n\
- ldr r0, [r0]\n\
- str r0, [sp]\n\
- mov r5, sp\n\
- str r5, [r7]\n\
- str r4, [r7, 0x4]\n\
- lsrs r0, r1, 2\n\
- movs r1, 0x85\n\
- lsls r1, 24\n\
- b _08000DAA\n\
-_08000CF4:\n\
- mov r2, r12\n\
- ldrb r0, [r2]\n\
- lsls r0, 4\n\
- mov r5, r8\n\
- adds r5, 0xC\n\
- adds r0, r5\n\
- ldr r0, [r0]\n\
- str r0, [sp]\n\
- ldr r3, =0x040000D4 @REG_DMA3\n\
- mov r0, sp\n\
- str r0, [r3]\n\
- str r4, [r3, 0x4]\n\
- ldr r0, =0x85000400\n\
- str r0, [r3, 0x8]\n\
- ldr r0, [r3, 0x8]\n\
- adds r4, r6\n\
- subs r1, r6\n\
- cmp r1, r6\n\
- bhi _08000CF4\n\
- ldrb r0, [r2]\n\
- lsls r0, 4\n\
- adds r0, r5\n\
- ldr r0, [r0]\n\
- str r0, [sp]\n\
- mov r2, sp\n\
- str r2, [r3]\n\
- str r4, [r3, 0x4]\n\
- lsrs r0, r1, 2\n\
- movs r1, 0x85\n\
- lsls r1, 24\n\
- b _08000DEA\n\
- .pool\n\
-_08000D3C:\n\
- ldr r3, [r1]\n\
- mov r2, r10\n\
- adds r0, r5, r2\n\
- ldr r2, [r0]\n\
- ldrh r1, [r1, 0x8]\n\
- cmp r1, r6\n\
- bhi _08000D56\n\
- str r3, [r7]\n\
- str r2, [r7, 0x4]\n\
- lsrs r0, r1, 1\n\
- movs r1, 0x80\n\
- lsls r1, 24\n\
- b _08000DAA\n\
-_08000D56:\n\
- ldr r4, =0x040000D4 @REG_DMA3\n\
- str r3, [r4]\n\
- str r2, [r4, 0x4]\n\
- ldr r0, =0x80000800\n\
- str r0, [r4, 0x8]\n\
- ldr r0, [r4, 0x8]\n\
- adds r3, r6\n\
- adds r2, r6\n\
- subs r1, r6\n\
- cmp r1, r6\n\
- bhi _08000D56\n\
- str r3, [r4]\n\
- str r2, [r4, 0x4]\n\
- lsrs r0, r1, 1\n\
- movs r1, 0x80\n\
- lsls r1, 24\n\
-_08000D76:\n\
- orrs r0, r1\n\
- str r0, [r4, 0x8]\n\
- ldr r0, [r4, 0x8]\n\
- b _08000DF0\n\
- .pool\n\
-_08000D88:\n\
- mov r3, r10\n\
- adds r0, r5, r3\n\
- ldr r2, [r0]\n\
- ldrh r4, [r1, 0x8]\n\
- add r1, sp, 0x4\n\
- cmp r4, r6\n\
- bhi _08000DB2\n\
- mov r0, r8\n\
- adds r0, 0xC\n\
- adds r0, r5, r0\n\
- ldr r0, [r0]\n\
- strh r0, [r1]\n\
- str r1, [r7]\n\
- str r2, [r7, 0x4]\n\
- lsrs r0, r4, 1\n\
- movs r1, 0x81\n\
- lsls r1, 24\n\
-_08000DAA:\n\
- orrs r0, r1\n\
- str r0, [r7, 0x8]\n\
- ldr r0, [r7, 0x8]\n\
- b _08000DF0\n\
-_08000DB2:\n\
- mov r5, r12\n\
- ldrb r0, [r5]\n\
- lsls r0, 4\n\
- ldr r3, =gDma3Requests + 0x0C\n\
- adds r0, r3\n\
- ldr r0, [r0]\n\
- strh r0, [r1]\n\
- ldr r3, =0x040000D4 @REG_DMA3\n\
- str r1, [r3]\n\
- str r2, [r3, 0x4]\n\
- ldr r0, =0x81000800\n\
- str r0, [r3, 0x8]\n\
- ldr r0, [r3, 0x8]\n\
- adds r2, r6\n\
- subs r4, r6\n\
- cmp r4, r6\n\
- bhi _08000DB2\n\
- ldrb r0, [r5]\n\
- lsls r0, 4\n\
- ldr r5, =gDma3Requests + 0x0C\n\
- adds r0, r5\n\
- ldr r0, [r0]\n\
- strh r0, [r1]\n\
- str r1, [r3]\n\
- str r2, [r3, 0x4]\n\
- lsrs r0, r4, 1\n\
- movs r1, 0x81\n\
- lsls r1, 24\n\
-_08000DEA:\n\
- orrs r0, r1\n\
- str r0, [r3, 0x8]\n\
- ldr r0, [r3, 0x8]\n\
-_08000DF0:\n\
- ldr r1, =gDma3Requests\n\
- mov r3, r12\n\
- ldrb r0, [r3]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- mov r2, r9\n\
- str r2, [r0]\n\
- ldrb r0, [r3]\n\
- lsls r0, 4\n\
- add r0, r10\n\
- str r2, [r0]\n\
- ldrb r0, [r3]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- movs r4, 0\n\
- strh r2, [r0, 0x8]\n\
- ldrb r0, [r3]\n\
- lsls r0, 4\n\
- adds r0, r1\n\
- mov r5, r9\n\
- strh r5, [r0, 0xA]\n\
- ldrb r0, [r3]\n\
- lsls r0, 4\n\
- adds r1, 0xC\n\
- adds r0, r1\n\
- mov r1, r9\n\
- str r1, [r0]\n\
- ldrb r0, [r3]\n\
- adds r0, 0x1\n\
- strb r0, [r3]\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bge _08000E34\n\
- strb r4, [r3]\n\
-_08000E34:\n\
- mov r2, r12\n\
- ldrb r0, [r2]\n\
- lsls r0, 4\n\
- ldr r3, =gDma3Requests\n\
- adds r0, r3\n\
- ldrh r0, [r0, 0x8]\n\
- cmp r0, 0\n\
- beq _08000E46\n\
- b _08000C2E\n\
-_08000E46:\n\
- add sp, 0xC\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- .syntax divided");
-}
-#endif
-int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode)
+s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode)
{
int cursor;
int var = 0;
@@ -466,7 +129,7 @@ int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode)
return -1;
}
-int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
+s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
{
int cursor;
int var = 0;
@@ -504,7 +167,7 @@ int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
return -1;
}
-int CheckForSpaceForDma3Request(s16 index)
+s16 CheckForSpaceForDma3Request(s16 index)
{
int current = 0;
diff --git a/src/fieldmap.c b/src/fieldmap.c
index 5d11c7d99..2683eaf62 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -897,7 +897,7 @@ void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles,
if (!tileset->isCompressed)
LoadBgTiles(2, tileset->tiles, numTiles * 32, offset);
else
- sub_80F68F0(2, tileset->tiles, numTiles * 32, offset, 0);
+ DecompressAndCopyTileDataToVram2(2, tileset->tiles, numTiles * 32, offset, 0);
}
}
@@ -908,7 +908,7 @@ void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles,
if (!tileset->isCompressed)
LoadBgTiles(2, tileset->tiles, numTiles * 32, offset);
else
- sub_80F69E8(2, tileset->tiles, numTiles * 32, offset, 0);
+ DecompressAndLoadBgGfxUsingHeap2(2, tileset->tiles, numTiles * 32, offset, 0);
}
}
diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c
index 50c715388..a31678669 100644
--- a/src/fldeff_softboiled.c
+++ b/src/fldeff_softboiled.c
@@ -72,7 +72,7 @@ void sub_80E583C(u8 taskId)
GetMonNickname(&gPlayerParty[gUnknown_203B0A0.unkA], gStringVar1);
StringExpandPlaceholders(gStringVar4, gUnknown_8416F27);
sub_81202F8(gStringVar4, 0);
- schedule_bg_copy_tilemap_to_vram(2);
+ ScheduleBgCopyTilemapToVram(2);
gTasks[taskId].func = sub_80E58A0;
}
@@ -104,6 +104,6 @@ void sub_80E5934(u8 taskId)
{
PlaySE(SE_SELECT);
sub_81202F8(gUnknown_84169F8, 0);
- schedule_bg_copy_tilemap_to_vram(2);
+ ScheduleBgCopyTilemapToVram(2);
gTasks[taskId].func = sub_80E5900;
}
diff --git a/src/hof_pc.c b/src/hof_pc.c
new file mode 100644
index 000000000..241fbc4f3
--- /dev/null
+++ b/src/hof_pc.c
@@ -0,0 +1,53 @@
+#include "global.h"
+#include "hall_of_fame.h"
+#include "palette.h"
+#include "overworld.h"
+#include "script.h"
+#include "script_menu.h"
+#include "task.h"
+#include "hall_of_fame.h"
+#include "bg.h"
+#include "window.h"
+
+static void ReshowPCMenuAfterHallOfFamePC(void);
+static void Task_WaitForPaletteFade(u8 taskId);
+
+static void Task_WaitFadeAndSetCallback(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ FreeAllWindowBuffers();
+ ResetBgsAndClearDma3BusyFlags(0);
+ DestroyTask(taskId);
+ SetMainCallback2(sub_80F2978);
+ }
+}
+
+void HallOfFamePCBeginFade(void)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ ScriptContext2_Enable();
+ CreateTask(Task_WaitFadeAndSetCallback, 0);
+}
+
+void ReturnFromHallOfFamePC(void)
+{
+ SetMainCallback2(CB2_ReturnToField);
+ gFieldCallback = ReshowPCMenuAfterHallOfFamePC;
+}
+
+static void ReshowPCMenuAfterHallOfFamePC(void)
+{
+ ScriptContext2_Enable();
+ Overworld_PlaySpecialMapMusic();
+ ScrSpecial_CreatePCMenu();
+ ScriptMenu_DisplayPCStartupPrompt();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
+ CreateTask(Task_WaitForPaletteFade, 10);
+}
+
+static void Task_WaitForPaletteFade(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ DestroyTask(taskId);
+}
diff --git a/src/item_pc.c b/src/item_pc.c
index 1df6bcc9d..2d30416c9 100644
--- a/src/item_pc.c
+++ b/src/item_pc.c
@@ -247,7 +247,7 @@ static void ItemPc_MainCB(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
- do_scheduled_bg_tilemap_copies_to_vram();
+ DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@@ -276,7 +276,7 @@ static bool8 ItemPc_DoGfxSetup(void)
{
case 0:
SetVBlankHBlankCallbacksToNull();
- clear_scheduled_bg_copies_to_vram();
+ ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 1:
@@ -423,7 +423,7 @@ static bool8 ItemPc_InitBgs(void)
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates));
SetBgTilemapBuffer(1, sBg1TilemapBuffer);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(1);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
SetGpuReg(REG_OFFSET_BLDCNT , 0);
ShowBg(0);
@@ -436,12 +436,12 @@ static bool8 ItemPc_LoadGraphics(void)
switch (sStateDataPtr->data[0])
{
case 0:
- reset_temp_tile_data_buffers();
- decompress_and_copy_tile_data_to_vram(1, gItemPcTiles, 0, 0, 0);
+ ResetTempTileDataBuffers();
+ DecompressAndCopyTileDataToVram(1, gItemPcTiles, 0, 0, 0);
sStateDataPtr->data[0]++;
break;
case 1:
- if (free_temp_tile_data_buffers_if_possible() != TRUE)
+ if (FreeTempTileDataBuffersIfPossible() != TRUE)
{
LZDecompressWram(gItemPcTilemap, sBg1TilemapBuffer);
sStateDataPtr->data[0]++;
@@ -710,7 +710,7 @@ static void ItemPc_SetScrollPosition(void)
static void ItemPc_SetMessageWindowPalette(int a0)
{
SetBgRectPal(1, 0, 14, 30, 6, a0 + 1);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(1);
}
void ItemPc_SetInitializedFlag(u8 a0)
@@ -849,7 +849,7 @@ static void Task_ItemPcSubmenuInit(u8 taskId)
CopyItemName(ItemPc_GetItemIdBySlotId(data[1]), gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1);
ItemPc_AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 2, 1, 0, 0, 1);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
gTasks[taskId].func = Task_ItemPcSubmenuRun;
}
@@ -881,7 +881,7 @@ static void Task_ItemPcWithdraw(u8 taskId)
if (ItemPc_GetItemQuantityBySlotId(data[1]) == 1)
{
PutWindowTilemap(0);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
ItemPc_DoWithdraw(taskId);
}
else
@@ -952,7 +952,7 @@ static void Task_ItemPcCleanUpWithdraw(u8 taskId)
ItemPc_SetCursorPosition();
ItemPc_BuildListMenuTemplate();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
ItemPc_ReturnFromSubmenu(taskId);
}
@@ -967,7 +967,7 @@ static void ItemPc_WithdrawMultipleInitWindow(u16 slotId)
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
ItemPc_SetBorderStyleOnWindow(3);
ItemPc_AddTextPrinterParameterized(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
}
static void sub_810E670(s16 quantity)
@@ -991,7 +991,7 @@ static void Task_ItemPcHandleWithdrawMultiple(u8 taskId)
ClearWindowTilemap(3);
PutWindowTilemap(0);
ItemPc_PrintOrRemoveCursor(data[0], 1);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
ItemPc_RemoveScrollIndicatorArrowPair();
ItemPc_DoWithdraw(taskId);
}
@@ -1004,7 +1004,7 @@ static void Task_ItemPcHandleWithdrawMultiple(u8 taskId)
PutWindowTilemap(0);
PutWindowTilemap(1);
ItemPc_PrintOrRemoveCursor(data[0], 1);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
ItemPc_RemoveScrollIndicatorArrowPair();
ItemPc_ReturnFromSubmenu(taskId);
}
@@ -1049,7 +1049,7 @@ static void gTask_ItemPcWaitButtonAndExitSubmenu(u8 taskId)
ClearWindowTilemap(5);
PutWindowTilemap(1);
ItemPc_PrintOrRemoveCursor(data[0], 1);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
ItemPc_ReturnFromSubmenu(taskId);
}
}
@@ -1064,7 +1064,7 @@ static void Task_ItemPcCancel(u8 taskId)
PutWindowTilemap(0);
PutWindowTilemap(1);
ItemPc_PrintOrRemoveCursor(data[0], 1);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
ItemPc_ReturnFromSubmenu(taskId);
}
@@ -1076,7 +1076,7 @@ static void ItemPc_InitWindows(void)
DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x3C0, 0xE0);
TextWindow_SetStdFrame0_WithPal(0, 0x3A3, 0xC0);
- TextWindow_SetBubbleFrame_841F1C8(0, 0x3AC, 0xB0);
+ TextWindow_LoadResourcesStdFrame0(0, 0x3AC, 0xB0);
LoadPalette(stdpal_get(2), 0xD0, 0x20);
LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20);
for (i = 0; i < 3; i++)
@@ -1084,7 +1084,7 @@ static void ItemPc_InitWindows(void)
FillWindowPixelBuffer(i, 0x00);
PutWindowTilemap(i);
}
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
for (i = 0; i < 3; i++)
sSubmenuWindowIds[i] = 0xFF;
}
@@ -1146,5 +1146,5 @@ static u8 ItemPc_GetSubwindow(u8 idx)
static void ItemPc_PrintOnWindow5WithContinueTask(u8 taskId, const u8 * str, TaskFunc taskFunc)
{
DisplayMessageAndContinueTask(taskId, 5, 0x3AC, 0x0B, 2, GetTextSpeedSetting(), str, taskFunc);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
}
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index 6534a8dc1..abd29ca11 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -175,13 +175,13 @@ s32 FadeToWonderCardMenu(void)
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
- decompress_and_copy_tile_data_to_vram(2, gUnknown_203F3C8->unk_0170->tiles, 0, 0x008, 0);
+ DecompressAndCopyTileDataToVram(2, gUnknown_203F3C8->unk_0170->tiles, 0, 0x008, 0);
gUnknown_203F3C8->unk_0176[0] = AddWindow(&gUnknown_8467074[0]);
gUnknown_203F3C8->unk_0176[1] = AddWindow(&gUnknown_8467074[1]);
gUnknown_203F3C8->unk_0176[2] = AddWindow(&gUnknown_8467074[2]);
break;
case 3:
- if (free_temp_tile_data_buffers_if_possible())
+ if (FreeTempTileDataBuffersIfPossible())
return 0;
gPaletteFade.bufferTransferDisabled = TRUE;
LoadPalette(gUnknown_203F3C8->unk_0170->pal, 0x10, 0x20);
@@ -565,12 +565,12 @@ s32 FadeToWonderNewsMenu(void)
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
- decompress_and_copy_tile_data_to_vram(3, gUnknown_203F3CC->unk_01BC->tiles, 0, 8, 0);
+ DecompressAndCopyTileDataToVram(3, gUnknown_203F3CC->unk_01BC->tiles, 0, 8, 0);
gUnknown_203F3CC->unk_01C8[0] = AddWindow(&gUnknown_8468040[0]);
gUnknown_203F3CC->unk_01C8[1] = AddWindow(&gUnknown_8468040[1]);
break;
case 3:
- if (free_temp_tile_data_buffers_if_possible())
+ if (FreeTempTileDataBuffersIfPossible())
return 0;
gPaletteFade.bufferTransferDisabled = TRUE;
LoadPalette(gUnknown_203F3CC->unk_01BC->pal, 0x10, 0x20);
diff --git a/src/multiboot.c b/src/multiboot.c
new file mode 100644
index 000000000..25b729dfd
--- /dev/null
+++ b/src/multiboot.c
@@ -0,0 +1,420 @@
+#include "global.h"
+#include "multiboot.h"
+
+static IWRAM_DATA u16 MultiBoot_required_data[MULTIBOOT_NCHILD];
+
+static int MultiBootSend(struct MultiBootParam *mp, u16 data);
+static int MultiBootHandShake(struct MultiBootParam *mp);
+static void MultiBootWaitCycles(u32 cycles);
+static void MultiBootWaitSendDone(void);
+
+void MultiBootInit(struct MultiBootParam *mp)
+{
+ mp->client_bit = 0;
+ mp->probe_count = 0;
+ mp->response_bit = 0;
+ mp->check_wait = MULTIBOOT_CONNECTION_CHECK_WAIT;
+ mp->sendflag = 0;
+ mp->handshake_timeout = 0;
+ REG_RCNT = 0;
+ REG_SIOCNT = SIO_MULTI_MODE | SIO_115200_BPS;
+ REG_SIODATA8 = 0;
+}
+
+int MultiBootMain(struct MultiBootParam *mp)
+{
+ int i;
+ int j;
+ int k;
+
+ if (MultiBootCheckComplete(mp))
+ {
+ return 0;
+ }
+ if (mp->check_wait > MULTIBOOT_CONNECTION_CHECK_WAIT)
+ {
+ mp->check_wait--;
+ return 0;
+ }
+output_burst:
+ if (mp->sendflag)
+ {
+ mp->sendflag = 0;
+
+ i = REG_SIOCNT & (SIO_MULTI_BUSY | SIO_ERROR | SIO_ID | SIO_MULTI_SD | SIO_MULTI_SI);
+ if (i != SIO_MULTI_SD)
+ {
+ MultiBootInit(mp);
+ return i ^ SIO_MULTI_SD;
+ }
+ }
+ if (mp->probe_count >= 0xe0)
+ {
+ i = MultiBootHandShake(mp);
+ if (i)
+ {
+ return i;
+ }
+
+ if (mp->server_type == MULTIBOOT_SERVER_TYPE_QUICK
+ && mp->probe_count > 0xe1
+ && MultiBootCheckComplete(mp) == 0)
+ {
+ MultiBootWaitSendDone();
+ goto output_burst;
+ }
+
+ if (MultiBootCheckComplete(mp) == 0)
+ {
+ if (mp->handshake_timeout == 0)
+ {
+ MultiBootInit(mp);
+ return MULTIBOOT_ERROR_HANDSHAKE_FAILURE;
+ }
+ mp->handshake_timeout--;
+ }
+
+ return 0;
+ }
+ switch (mp->probe_count)
+ {
+ case 0:
+ k = 0x0e;
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ if (*(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2) != 0xffff)
+ {
+ break;
+ }
+ k >>= 1;
+ }
+ k &= 0x0e;
+ mp->response_bit = k;
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2);
+ if (mp->client_bit & (1 << i))
+ {
+ if (j != ((MULTIBOOT_CLIENT_INFO << 8) | (1 << i)))
+ {
+ k = 0;
+ break;
+ }
+ }
+ }
+ mp->client_bit &= k;
+ if (k == 0)
+ {
+ mp->check_wait = MULTIBOOT_CONNECTION_CHECK_WAIT;
+ }
+
+ if (mp->check_wait)
+ {
+ mp->check_wait--;
+ }
+ else
+ {
+ if (mp->response_bit != mp->client_bit)
+ {
+ MultiBootStartProbe(mp);
+ goto case_1;
+ }
+ }
+ output_master_info:
+ return MultiBootSend(mp, (MULTIBOOT_MASTER_INFO << 8) | mp->client_bit);
+ case_1:
+ case 1:
+ mp->probe_target_bit = 0;
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2);
+ if ((j >> 8) == MULTIBOOT_CLIENT_INFO)
+ {
+ MultiBoot_required_data[i - 1] = j;
+ j &= 0xff;
+ if (j == (1 << i))
+ {
+ mp->probe_target_bit |= j;
+ }
+ }
+ }
+ if (mp->response_bit != mp->probe_target_bit)
+ {
+ goto output_master_info;
+ }
+ mp->probe_count = 2;
+ return MultiBootSend(mp, (MULTIBOOT_MASTER_START_PROBE << 8) | mp->probe_target_bit);
+ case 2:
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ if (mp->probe_target_bit & (1 << i))
+ {
+ j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2);
+ if (j != MultiBoot_required_data[i - 1])
+ {
+ mp->probe_target_bit ^= 1 << i;
+ }
+ }
+ }
+ goto output_header;
+ case 0xd0:
+ k = 1;
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2);
+ mp->client_data[i - 1] = j;
+ if (mp->probe_target_bit & (1 << i))
+ {
+ if ((j >> 8) != MULTIBOOT_CLIENT_INFO
+ && (j >> 8) != MULTIBOOT_CLIENT_DLREADY)
+ {
+ MultiBootInit(mp);
+ return MULTIBOOT_ERROR_NO_DLREADY;
+ }
+ if (j == MultiBoot_required_data[i - 1])
+ {
+ k = 0;
+ }
+ }
+ }
+ if (k == 0)
+ {
+ return MultiBootSend(mp, (MULTIBOOT_MASTER_REQUEST_DLREADY << 8) | mp->palette_data);
+ }
+ mp->probe_count = 0xd1;
+ k = 0x11;
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ k += mp->client_data[i - 1];
+ }
+ mp->handshake_data = k;
+ return MultiBootSend(mp, (MULTIBOOT_MASTER_START_DL << 8) | (k & 0xff));
+ case 0xd1:
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2);
+ if (mp->probe_target_bit & (1 << i))
+ {
+ if ((j >> 8) != MULTIBOOT_CLIENT_DLREADY)
+ {
+ MultiBootInit(mp);
+ return MULTIBOOT_ERROR_NO_DLREADY;
+ }
+ }
+ }
+ i = MultiBoot(mp);
+ if (i == 0)
+ {
+ mp->probe_count = 0xe0;
+ mp->handshake_timeout = MULTIBOOT_HANDSHAKE_TIMEOUT;
+ return 0;
+ }
+ MultiBootInit(mp);
+ mp->check_wait = MULTIBOOT_CONNECTION_CHECK_WAIT * 2;
+ return MULTIBOOT_ERROR_BOOT_FAILURE;
+ default:
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ if (mp->probe_target_bit & (1 << i))
+ {
+ j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2);
+ if ((j >> 8) != (MULTIBOOT_MASTER_START_PROBE + 1 - (mp->probe_count >> 1))
+ || ((j & 0xff) != (1 << i)))
+ {
+ mp->probe_target_bit ^= 1 << i;
+ }
+ }
+ }
+ if (mp->probe_count == 0xc4)
+ {
+ mp->client_bit = mp->probe_target_bit & 0x0e;
+ mp->probe_count = 0;
+ goto output_master_info;
+ }
+ output_header:
+ if (mp->probe_target_bit == 0)
+ {
+ MultiBootInit(mp);
+ return MULTIBOOT_ERROR_NO_PROBE_TARGET;
+ }
+ mp->probe_count += 2;
+ if (mp->probe_count == 0xc4)
+ {
+ goto output_master_info;
+ }
+ i = MultiBootSend(mp,
+ (mp->masterp[mp->probe_count - 4 + 1] << 8)
+ | mp->masterp[mp->probe_count - 4]);
+ if (i)
+ {
+ return i;
+ }
+ if (mp->server_type == MULTIBOOT_SERVER_TYPE_QUICK)
+ {
+ MultiBootWaitSendDone();
+ goto output_burst;
+ }
+ return 0;
+ }
+}
+
+static int MultiBootSend(struct MultiBootParam *mp, u16 data)
+{
+ int i;
+
+ i = REG_SIOCNT & (SIO_MULTI_BUSY | SIO_MULTI_SD | SIO_MULTI_SI);
+ if (i != SIO_MULTI_SD)
+ {
+ MultiBootInit(mp);
+ return i ^ SIO_MULTI_SD;
+ }
+ REG_SIODATA8 = data;
+ REG_SIOCNT = SIO_MULTI_MODE | SIO_START | SIO_115200_BPS;
+ mp->sendflag = 1;
+ return 0;
+}
+
+void MultiBootStartProbe(struct MultiBootParam *mp)
+{
+ if (mp->probe_count != 0)
+ {
+ MultiBootInit(mp);
+ return;
+ }
+ mp->check_wait = 0;
+ mp->client_bit = 0;
+ mp->probe_count = 1;
+}
+
+void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed)
+{
+ int i = 0;
+
+ if (mp->probe_count != 0
+ || mp->client_bit == 0
+ || mp->check_wait != 0)
+ {
+ MultiBootInit(mp);
+ return;
+ }
+ mp->boot_srcp = srcp;
+ length = (length + 15) & ~15;
+ if (length < MULTIBOOT_SEND_SIZE_MIN || length > MULTIBOOT_SEND_SIZE_MAX)
+ {
+ MultiBootInit(mp);
+ return;
+ }
+ mp->boot_endp = srcp + length;
+ switch (palette_speed)
+ {
+ case -4:
+ case -3:
+ case -2:
+ case -1:
+ i = (palette_color << 3) | (3 - palette_speed);
+ break;
+ case 0:
+ i = 0x38 | palette_color;
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ i = (palette_color << 3) | (palette_speed - 1);
+ break;
+ }
+ mp->palette_data = ((i & 0x3f) << 1) | 0x81;
+ mp->probe_count = 0xd0;
+}
+
+bool32 MultiBootCheckComplete(struct MultiBootParam *mp)
+{
+ if (mp->probe_count == 0xe9)
+ return 1;
+ else
+ return 0;
+}
+
+static int MultiBootHandShake(struct MultiBootParam *mp)
+{
+ int i, j;
+
+#define send_data (mp->system_work[0])
+#define must_data (mp->system_work[1])
+ switch (mp->probe_count)
+ {
+ case_0xe0:
+ case 0xe0:
+ mp->probe_count = 0xe1;
+ must_data = 0x0000;
+ send_data = 0x100000;
+ return MultiBootSend(mp, 0x0000);
+ default:
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2);
+ if ((mp->client_bit & (1 << i))
+ && j != must_data)
+ {
+ goto case_0xe0;
+ }
+ }
+ mp->probe_count++;
+ must_data = send_data & 0xffff;
+ if (send_data == 0x0000)
+ {
+ must_data = mp->masterp[0xac] | (mp->masterp[0xad] << 8);
+ send_data = must_data << 5;
+ }
+ send_data >>= 5;
+ output_common:
+ return MultiBootSend(mp, send_data);
+ case 0xe7:
+ case 0xe8:
+ for (i = MULTIBOOT_NCHILD; i != 0; i--)
+ {
+ j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2);
+ if ((mp->client_bit & (1 << i)) && j != must_data)
+ {
+ MultiBootInit(mp);
+ return MULTIBOOT_ERROR_HANDSHAKE_FAILURE;
+ }
+ }
+
+ mp->probe_count++;
+ if (mp->probe_count == 0xe9)
+ {
+ return 0;
+ }
+ send_data = mp->masterp[0xae] | (mp->masterp[0xaf] << 8);
+ must_data = send_data;
+ goto output_common;
+ }
+#undef send_data
+#undef must_data
+}
+
+static void MultiBootWaitCycles(u32 cycles)
+{
+ asm("mov r2, pc");
+ asm("lsr r2, #24");
+ asm("mov r1, #12");
+ asm("cmp r2, #0x02");
+ asm("beq MultiBootWaitCyclesLoop");
+ asm("mov r1, #13");
+ asm("cmp r2, #0x08");
+ asm("beq MultiBootWaitCyclesLoop");
+ asm("mov r1, #4");
+
+ asm("MultiBootWaitCyclesLoop:");
+ asm("sub r0, r1");
+ asm("bgt MultiBootWaitCyclesLoop");
+}
+
+static void MultiBootWaitSendDone(void)
+{
+ int i;
+
+ for (i = 0; (i < 31069) && (REG_SIOCNT & SIO_START); i++);
+ MultiBootWaitCycles(600);
+}
diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c
new file mode 100644
index 000000000..1939154da
--- /dev/null
+++ b/src/new_menu_helpers.c
@@ -0,0 +1,767 @@
+#include "global.h"
+#include "malloc.h"
+#include "dma3.h"
+#include "task.h"
+#include "bg.h"
+#include "gpu_regs.h"
+#include "window.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "new_menu_helpers.h"
+#include "quest_log.h"
+#include "text.h"
+#include "field_specials.h"
+#include "text_window.h"
+#include "script.h"
+#include "graphics.h"
+#include "palette.h"
+
+#define DLG_WINDOW_PALETTE_NUM 15
+#define DLG_WINDOW_BASE_TILE_NUM 0x200
+#define STD_WINDOW_PALETTE_NUM 14
+#define STD_WINDOW_BASE_TILE_NUM 0x214
+
+static EWRAM_DATA bool8 gUnknown_203AB58[4] = {FALSE}; // knizz: bgmaps_that_need_syncing
+static EWRAM_DATA u16 gUnknown_203AB5C = {0};
+static EWRAM_DATA void *gUnknown_203AB60[0x20] = {NULL};
+static EWRAM_DATA u8 sStartMenuWindowId = {0};
+
+static const u8 gUnknown_841F428[] = { 8, 4, 1 };
+
+static const struct WindowTemplate sStandardTextBox_WindowTemplates[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 0x2,
+ .tilemapTop = 0xF,
+ .width = 0x1A,
+ .height = 0x4,
+ .paletteNum = DLG_WINDOW_PALETTE_NUM,
+ .baseBlock = 0x198,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sYesNo_WindowTemplate =
+{
+ .bg = 0,
+ .tilemapLeft = 0x15,
+ .tilemapTop = 0x9,
+ .width = 0x6,
+ .height = 0x4,
+ .paletteNum = DLG_WINDOW_PALETTE_NUM,
+ .baseBlock = 0x125,
+};
+
+static const struct FontInfo gFontInfos[] =
+{
+ {
+ .fontFunction = Font0Func,
+ .maxLetterWidth = 0x8,
+ .maxLetterHeight = 0xD,
+ .letterSpacing = 0x0,
+ .lineSpacing = 0x0,
+ .unk = 0x0,
+ .fgColor = 0x2,
+ .bgColor = 0x1,
+ .shadowColor = 0x3,
+ },
+ {
+ .fontFunction = Font1Func,
+ .maxLetterWidth = 0x8,
+ .maxLetterHeight = 0xE,
+ .letterSpacing = 0x0,
+ .lineSpacing = 0x0,
+ .unk = 0x0,
+ .fgColor = 0x2,
+ .bgColor = 0x1,
+ .shadowColor = 0x3,
+ },
+ {
+ .fontFunction = Font2Func,
+ .maxLetterWidth = 0xA,
+ .maxLetterHeight = 0xE,
+ .letterSpacing = 0x1,
+ .lineSpacing = 0x0,
+ .unk = 0x0,
+ .fgColor = 0x2,
+ .bgColor = 0x1,
+ .shadowColor = 0x3,
+ },
+ {
+ .fontFunction = Font3Func,
+ .maxLetterWidth = 0xA,
+ .maxLetterHeight = 0xE,
+ .letterSpacing = 0x1,
+ .lineSpacing = 0x0,
+ .unk = 0x0,
+ .fgColor = 0x2,
+ .bgColor = 0x1,
+ .shadowColor = 0x3,
+ },
+ {
+ .fontFunction = Font4Func,
+ .maxLetterWidth = 0xA,
+ .maxLetterHeight = 0xE,
+ .letterSpacing = 0x0,
+ .lineSpacing = 0x0,
+ .unk = 0x0,
+ .fgColor = 0x2,
+ .bgColor = 0x1,
+ .shadowColor = 0x3,
+ },
+ {
+ .fontFunction = Font5Func,
+ .maxLetterWidth = 0xA,
+ .maxLetterHeight = 0xE,
+ .letterSpacing = 0x0,
+ .lineSpacing = 0x0,
+ .unk = 0x0,
+ .fgColor = 0x2,
+ .bgColor = 0x1,
+ .shadowColor = 0x3,
+ },
+ {
+ .fontFunction = Font6Func,
+ .maxLetterWidth = 0x8,
+ .maxLetterHeight = 0x10,
+ .letterSpacing = 0x0,
+ .lineSpacing = 0x2,
+ .unk = 0x0,
+ .fgColor = 0x2,
+ .bgColor = 0x1,
+ .shadowColor = 0x3,
+ },
+ {
+ .fontFunction = NULL,
+ .maxLetterWidth = 0x8,
+ .maxLetterHeight = 0x8,
+ .letterSpacing = 0x0,
+ .lineSpacing = 0x0,
+ .unk = 0x0,
+ .fgColor = 0x1,
+ .bgColor = 0x2,
+ .shadowColor = 0xF,
+ }
+};
+
+static const u8 gMenuCursorDimensions[][2] =
+{
+ { 0x8, 0xD },
+ { 0x8, 0xE },
+ { 0x8, 0xE },
+ { 0x8, 0xE },
+ { 0x8, 0xE },
+ { 0x8, 0xE },
+ { 0x8, 0x10 },
+ { 0x0, 0x0 }
+};
+
+static u16 CopyDecompressedTileDataToVram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);
+static void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum);
+static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum);
+static void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum);
+static void WindowFunc_ClearStdWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum);
+static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId);
+
+void ClearScheduledBgCopiesToVram(void)
+{
+ memset(gUnknown_203AB58, 0, sizeof(gUnknown_203AB58));
+}
+
+void ScheduleBgCopyTilemapToVram(u8 bgId)
+{
+ gUnknown_203AB58[bgId] = TRUE;
+}
+
+void DoScheduledBgTilemapCopiesToVram(void)
+{
+ if (gUnknown_203AB58[0] == TRUE)
+ {
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203AB58[0] = FALSE;
+ }
+ if (gUnknown_203AB58[1] == TRUE)
+ {
+ CopyBgTilemapBufferToVram(1);
+ gUnknown_203AB58[1] = FALSE;
+ }
+ if (gUnknown_203AB58[2] == TRUE)
+ {
+ CopyBgTilemapBufferToVram(2);
+ gUnknown_203AB58[2] = FALSE;
+ }
+ if (gUnknown_203AB58[3] == TRUE)
+ {
+ CopyBgTilemapBufferToVram(3);
+ gUnknown_203AB58[3] = FALSE;
+ }
+}
+
+void ResetTempTileDataBuffers(void)
+{
+ int i;
+
+ for (i = 0; i < (s32)NELEMS(gUnknown_203AB60); i++)
+ {
+ gUnknown_203AB60[i] = NULL;
+ }
+ gUnknown_203AB5C = 0;
+}
+
+bool8 FreeTempTileDataBuffersIfPossible(void)
+{
+ int i;
+
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ if (gUnknown_203AB5C)
+ {
+ for (i = 0; i < gUnknown_203AB5C; i++)
+ {
+ FREE_AND_SET_NULL(gUnknown_203AB60[i]);
+ }
+ gUnknown_203AB5C = 0;
+ }
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 offset, u8 mode)
+{
+ u32 sizeOut;
+
+ if (gUnknown_203AB5C < NELEMS(gUnknown_203AB60))
+ {
+ void *ptr = MallocAndDecompress(src, &sizeOut);
+ if (!size)
+ size = sizeOut;
+ if (ptr)
+ {
+ CopyDecompressedTileDataToVram(bgId, ptr, size, offset, mode);
+ gUnknown_203AB60[gUnknown_203AB5C++] = ptr;
+ }
+ return ptr;
+ }
+ return NULL;
+}
+
+void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode)
+{
+ u32 sizeOut;
+
+ if (gUnknown_203AB5C < NELEMS(gUnknown_203AB60))
+ {
+ void *ptr = MallocAndDecompress(src, &sizeOut);
+ if (sizeOut > size)
+ sizeOut = size;
+ if (ptr)
+ {
+ CopyDecompressedTileDataToVram(bgId, ptr, sizeOut, offset, mode);
+ gUnknown_203AB60[gUnknown_203AB5C++] = ptr;
+ }
+ return ptr;
+ }
+ return NULL;
+}
+
+void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode)
+{
+ u32 sizeOut;
+
+ void *ptr = MallocAndDecompress(src, &sizeOut);
+ if (!size)
+ size = sizeOut;
+ if (ptr)
+ {
+ u8 taskId = CreateTask(TaskFreeBufAfterCopyingTileDataToVram, 0);
+ gTasks[taskId].data[0] = CopyDecompressedTileDataToVram(bgId, ptr, size, offset, mode);
+ SetWordTaskArg(taskId, 1, (u32)ptr);
+ }
+}
+
+void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode)
+{
+ u32 sizeOut;
+
+ void *ptr = MallocAndDecompress(src, &sizeOut);
+ if (sizeOut > size)
+ sizeOut = size;
+ if (ptr)
+ {
+ u8 taskId = CreateTask(TaskFreeBufAfterCopyingTileDataToVram, 0);
+ gTasks[taskId].data[0] = CopyDecompressedTileDataToVram(bgId, ptr, sizeOut, offset, mode);
+ SetWordTaskArg(taskId, 1, (u32)ptr);
+ }
+}
+
+static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId)
+{
+ if (!CheckForSpaceForDma3Request(gTasks[taskId].data[0]))
+ {
+ Free((void *)GetWordTaskArg(taskId, 1));
+ DestroyTask(taskId);
+ }
+}
+
+void *MallocAndDecompress(const void *src, u32 *size)
+{
+ void *ptr;
+ u8 *sizeAsBytes = (u8 *)size;
+ const u8 *srcAsBytes = src;
+
+ sizeAsBytes[0] = srcAsBytes[1];
+ sizeAsBytes[1] = srcAsBytes[2];
+ sizeAsBytes[2] = srcAsBytes[3];
+ sizeAsBytes[3] = 0;
+
+ ptr = Alloc(*size);
+ if (ptr)
+ LZ77UnCompWram(src, ptr);
+ return ptr;
+}
+
+static u16 CopyDecompressedTileDataToVram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode)
+{
+ switch (mode)
+ {
+ case 1:
+ break;
+ case 0:
+ default:
+ return LoadBgTiles(bgId, src, size, offset);
+ }
+ return LoadBgTilemap(bgId, src, size, offset);
+}
+
+void SetBgRectPal(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette)
+{
+ u8 i, j;
+ u16 *ptr = GetBgTilemapBuffer(bgId);
+
+ for (i = top; i < top + height; i++)
+ {
+ for (j = left; j < left + width; j++)
+ {
+ ptr[(i * 32) + j] = (ptr[(i * 32) + j] & 0xFFF) | (palette << 12);
+ }
+ }
+}
+
+void CopyRectIntoAltRect(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height)
+{
+ u8 i,j;
+ const u16 *src = GetBgTilemapBuffer(bgId);
+
+ for (i = 0; i < height; i++)
+ {
+ for (j = 0; j < width; j++)
+ {
+ dest[(i * width) + j] = src[(i + top) * 32 + j + left];
+ }
+ }
+}
+
+void ResetBgPositions(void)
+{
+ ChangeBgX(0, 0, 0);
+ ChangeBgX(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(0, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgY(2, 0, 0);
+ ChangeBgY(3, 0, 0);
+}
+
+void InitStandardTextBoxWindows(void)
+{
+ InitWindows(sStandardTextBox_WindowTemplates);
+ sStartMenuWindowId = 0xFF;
+ MapNamePopupWindowIdSetDummy();
+}
+
+void FreeAllOverworldWindowBuffers(void)
+{
+ FreeAllWindowBuffers();
+}
+
+void ResetBg0(void)
+{
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ DeactivateAllTextPrinters();
+ sub_80F6E9C();
+}
+
+u16 RunTextPrinters_CheckPrinter0Active(void)
+{
+ RunTextPrinters();
+ return IsTextPrinterActive(0);
+}
+
+u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor)
+{
+ struct TextPrinterTemplate printer;
+
+ printer.currentChar = str;
+ printer.windowId = windowId;
+ printer.fontId = fontId;
+ printer.x = 0;
+ printer.y = 1;
+ printer.currentX = 0;
+ printer.currentY = 1;
+ printer.letterSpacing = 1;
+ printer.lineSpacing = 1;
+ printer.unk = 0;
+ printer.fgColor = fgColor;
+ printer.bgColor = bgColor;
+ printer.shadowColor = shadowColor;
+ gTextFlags.useAlternateDownArrow = 0;
+ return AddTextPrinter(&printer, speed, callback);
+}
+
+void AddTextPrinterDiffStyle(bool8 allowSkippingDelayWithButtonPress)
+{
+ u8 result;
+ void *nptr = NULL;
+
+ gTextFlags.canABSpeedUpPrint = allowSkippingDelayWithButtonPress;
+ result = ContextNpcGetTextColor();
+ if (result == 0)
+ AddTextPrinterParameterized2(0, 4, gStringVar4, GetTextSpeedSetting(), nptr, 8, 1, 3);
+ else if (result == 1)
+ AddTextPrinterParameterized2(0, 5, gStringVar4, GetTextSpeedSetting(), nptr, 4, 1, 3);
+ else
+ AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), nptr, 2, 1, 3);
+}
+
+void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress)
+{
+ gTextFlags.canABSpeedUpPrint = allowSkippingDelayWithButtonPress;
+ AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), NULL, 2, 1, 3);
+}
+
+void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed)
+{
+ gTextFlags.canABSpeedUpPrint = allowSkippingDelayWithButtonPress;
+ AddTextPrinterParameterized2(0, 2, gStringVar4, speed, NULL, 2, 1, 3);
+}
+
+void sub_80F6E9C(void)
+{
+ if (gUnknown_203ADFA == 2)
+ {
+ gTextFlags.autoScroll = 1;
+ TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM);
+ }
+ else
+ {
+ Menu_LoadStdPal();
+ TextWindow_LoadResourcesStdFrame0(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10);
+ }
+ TextWindow_SetUserSelectedFrame(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10);
+}
+
+void DrawDialogueFrame(u8 windowId, bool8 copyToVram)
+{
+ CallWindowFunction(windowId, WindowFunc_DrawDialogueFrame);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ PutWindowTilemap(windowId);
+ if (copyToVram == TRUE)
+ CopyWindowToVram(windowId, 3);
+}
+
+void DrawStdWindowFrame(u8 windowId, bool8 copyToVram)
+{
+ CallWindowFunction(windowId, WindowFunc_DrawStandardFrame);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ PutWindowTilemap(windowId);
+ if (copyToVram == TRUE)
+ CopyWindowToVram(windowId, 3);
+}
+
+void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram)
+{
+ CallWindowFunction(windowId, WindowFunc_ClearDialogWindowAndFrame);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ ClearWindowTilemap(windowId);
+ if (copyToVram == TRUE)
+ CopyWindowToVram(windowId, 3);
+ if (gUnknown_203ADFA == 2)
+ sub_8111134();
+}
+
+void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram)
+{
+ CallWindowFunction(windowId, WindowFunc_ClearStdWindowAndFrame);
+ FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
+ ClearWindowTilemap(windowId);
+ if (copyToVram == TRUE)
+ CopyWindowToVram(windowId, 3);
+}
+
+static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+{
+ int i;
+
+ FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 0, tilemapLeft - 1, tilemapTop - 1, 1, 1, STD_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 1, tilemapLeft, tilemapTop - 1, width, 1, STD_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 2, tilemapLeft + width, tilemapTop - 1, 1, 1, STD_WINDOW_PALETTE_NUM);
+ for (i = tilemapTop; i < tilemapTop + height; i++)
+ {
+ FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 3, tilemapLeft - 1, i, 1, 1, STD_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 5, tilemapLeft + width, i, 1, 1, STD_WINDOW_PALETTE_NUM);
+ }
+ FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 6, tilemapLeft - 1, tilemapTop + height, 1, 1, STD_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 7, tilemapLeft, tilemapTop + height, width, 1, STD_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 8, tilemapLeft + width, tilemapTop + height, 1, 1, STD_WINDOW_PALETTE_NUM);
+}
+
+static void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+{
+ if (!IsMsgSignPost() || gUnknown_203ADFA == 2)
+ {
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 0, tilemapLeft - 2, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 1, tilemapLeft - 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 2, tilemapLeft, tilemapTop - 1, width, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 3, tilemapLeft + width, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 4, tilemapLeft + width + 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 5, tilemapLeft - 2, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 6, tilemapLeft - 1, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 8, tilemapLeft + width, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 9, tilemapLeft + width + 1, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 10, tilemapLeft - 2, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 11, tilemapLeft - 1, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 12, tilemapLeft + width, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 13, tilemapLeft + width + 1, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 10), tilemapLeft - 2, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 11), tilemapLeft - 1, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 12), tilemapLeft + width, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 13), tilemapLeft + width + 1, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 5), tilemapLeft - 2, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 6), tilemapLeft - 1, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 8), tilemapLeft + width, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 9), tilemapLeft + width + 1, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 0), tilemapLeft - 2, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 1), tilemapLeft - 1, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 2), tilemapLeft, tilemapTop + 4, width, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 3), tilemapLeft + width, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 4), tilemapLeft + width + 1, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ }
+ else
+ {
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 0, tilemapLeft - 2, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 1, tilemapLeft - 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 2, tilemapLeft, tilemapTop - 1, width, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 3, tilemapLeft + width, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 4, tilemapLeft + width + 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 5, tilemapLeft - 2, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 6, tilemapLeft - 1, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 8, tilemapLeft + width, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 9, tilemapLeft + width + 1, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 10, tilemapLeft - 2, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 11, tilemapLeft - 1, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 12, tilemapLeft + width, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 13, tilemapLeft + width + 1, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 5), tilemapLeft - 2, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 6), tilemapLeft - 1, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 8), tilemapLeft + width, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 9), tilemapLeft + width + 1, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 10), tilemapLeft - 2, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 11), tilemapLeft - 1, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 12), tilemapLeft + width, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 13), tilemapLeft + width + 1, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 0), tilemapLeft - 2, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 1), tilemapLeft - 1, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 2), tilemapLeft, tilemapTop + 4, width, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 3), tilemapLeft + width, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 4), tilemapLeft + width + 1, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM);
+ }
+}
+
+static void WindowFunc_ClearStdWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+{
+ FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, STD_WINDOW_PALETTE_NUM);
+}
+
+static void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
+{
+ FillBgTilemapBufferRect(bg, 0, tilemapLeft - 2, tilemapTop - 1, width + 4, height + 2, STD_WINDOW_PALETTE_NUM);
+}
+
+void sub_80F771C(bool8 copyToVram)
+{
+ FillBgTilemapBufferRect(0, 0, 0, 0, 0x20, 0x20, 0x11);
+ if (copyToVram == TRUE)
+ CopyBgTilemapBufferToVram(0);
+}
+
+void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram)
+{
+ SetWindowBorderStyle(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM);
+}
+
+void sub_80F7768(u8 windowId, bool8 copyToVram)
+{
+ if (gUnknown_203ADFA == 2)
+ {
+ gTextFlags.autoScroll = 1;
+ TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM);
+ }
+ else
+ {
+ TextWindow_LoadResourcesStdFrame0(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10);
+ }
+ DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM);
+}
+
+void Menu_LoadStdPal(void)
+{
+ LoadPalette(gTMCaseMainWindowPalette, STD_WINDOW_PALETTE_NUM * 0x10, 0x14);
+}
+
+void Menu_LoadStdPalAt(u16 offset)
+{
+ LoadPalette(gTMCaseMainWindowPalette, offset, 0x14);
+}
+
+static const u16 *GetTmCaseMainWindowPalette(void)
+{
+ return gTMCaseMainWindowPalette;
+}
+
+static u16 GetStdPalColor(u8 colorNum)
+{
+ if (colorNum > 0xF)
+ colorNum = 0;
+ return gTMCaseMainWindowPalette[colorNum];
+}
+
+void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *string, TaskFunc callback)
+{
+ sub_80F6E9C();
+ DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, bgId, GetTextSpeedSetting(), string, callback);
+ CopyWindowToVram(0, 3);
+}
+
+void DisplayYesNoMenuDefaultYes(void)
+{
+ CreateYesNoMenu(&sYesNo_WindowTemplate, 2, 0, 2, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 0);
+}
+
+void DisplayYesNoMenuDefaultNo(void)
+{
+ CreateYesNoMenu(&sYesNo_WindowTemplate, 2, 0, 2, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 1);
+}
+
+u8 GetTextSpeedSetting(void)
+{
+ u32 speed;
+ if (gSaveBlock2Ptr->optionsTextSpeed > OPTIONS_TEXT_SPEED_FAST)
+ gSaveBlock2Ptr->optionsTextSpeed = OPTIONS_TEXT_SPEED_MID;
+ return gUnknown_841F428[gSaveBlock2Ptr->optionsTextSpeed];
+}
+
+u8 sub_80F78E0(u8 height)
+{
+ if (sStartMenuWindowId == 0xFF)
+ {
+ struct WindowTemplate wTemp1, wTemp2;
+ SetWindowTemplateFields(&wTemp1, 0, 0x16, 1, 7, height * 2 - 1, DLG_WINDOW_PALETTE_NUM, 0x13D);
+ wTemp2 = wTemp1;
+ sStartMenuWindowId = AddWindow(&wTemp2);
+ PutWindowTilemap(sStartMenuWindowId);
+ }
+ return sStartMenuWindowId;
+}
+
+u8 GetStartMenuWindowId(void)
+{
+ return sStartMenuWindowId;
+}
+
+void RemoveStartMenuWindow(void)
+{
+ if (sStartMenuWindowId != 0xFF)
+ {
+ RemoveWindow(sStartMenuWindowId);
+ sStartMenuWindowId = 0xFF;
+ }
+}
+
+static u16 GetDlgWindowBaseTileNum(void)
+{
+ return DLG_WINDOW_BASE_TILE_NUM;
+}
+
+u16 GetStdWindowBaseTileNum(void)
+{
+ return STD_WINDOW_BASE_TILE_NUM;
+}
+
+void sub_80F7974(const u8 * text)
+{
+ sub_814FE6C(sub_8112EB4(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM);
+ sub_8113018(text, 2);
+}
+
+void sub_80F7998(void)
+{
+ sub_8112EDC(2);
+}
+
+void sub_80F79A4(void)
+{
+ Menu_LoadStdPal();
+ sub_814FEEC(0, DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM);
+ TextWindow_SetUserSelectedFrame(0, STD_WINDOW_BASE_TILE_NUM, 0x10 * STD_WINDOW_PALETTE_NUM);
+}
+
+void SetDefaultFontsPointer(void)
+{
+ SetFontsPointer(&gFontInfos[0]);
+}
+
+u8 GetFontAttribute(u8 fontId, u8 attributeId)
+{
+ int result = 0;
+
+ switch (attributeId)
+ {
+ case FONTATTR_MAX_LETTER_WIDTH:
+ result = gFontInfos[fontId].maxLetterWidth;
+ break;
+ case FONTATTR_MAX_LETTER_HEIGHT:
+ result = gFontInfos[fontId].maxLetterHeight;
+ break;
+ case FONTATTR_LETTER_SPACING:
+ result = gFontInfos[fontId].letterSpacing;
+ break;
+ case FONTATTR_LINE_SPACING:
+ result = gFontInfos[fontId].lineSpacing;
+ break;
+ case FONTATTR_UNKNOWN:
+ result = gFontInfos[fontId].unk;
+ break;
+ case FONTATTR_COLOR_FOREGROUND:
+ result = gFontInfos[fontId].fgColor;
+ break;
+ case FONTATTR_COLOR_BACKGROUND:
+ result = gFontInfos[fontId].bgColor;
+ break;
+ case FONTATTR_COLOR_SHADOW:
+ result = gFontInfos[fontId].shadowColor;
+ break;
+ }
+ return result;
+}
+
+u8 GetMenuCursorDimensionByFont(u8 fontId, u8 whichDimension)
+{
+ return gMenuCursorDimensions[fontId][whichDimension];
+}
diff --git a/src/oak_speech.c b/src/oak_speech.c
index d6939d4e1..14e7c87d0 100644
--- a/src/oak_speech.c
+++ b/src/oak_speech.c
@@ -495,7 +495,7 @@ static void Task_OaksSpeech1(u8 taskId)
ScanlineEffect_Stop();
ResetSpriteData();
FreeAllSpritePalettes();
- reset_temp_tile_data_buffers();
+ ResetTempTileDataBuffers();
HelpSystem_SetSomeVariable2(2);
break;
case 1:
@@ -536,10 +536,10 @@ static void Task_OaksSpeech1(u8 taskId)
case 5:
sOakSpeechResources->textSpeed = GetTextSpeedSetting();
gTextFlags.canABSpeedUpPrint = TRUE;
- decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_GameStartHelpUI, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(1, sOakSpeechGfx_GameStartHelpUI, 0, 0, 0);
break;
case 6:
- if (free_temp_tile_data_buffers_if_possible())
+ if (FreeTempTileDataBuffersIfPossible())
return;
ClearDialogWindowAndFrame(0, 1);
FillBgTilemapBufferRect_Palette0(1, 0x0000, 0, 0, 32, 32);
@@ -718,7 +718,7 @@ static void Task_OakSpeech6(u8 taskId)
PlayBGM(BGM_FRLG_GAME_EXPLANATION_MIDDLE);
sub_810F71C();
PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1);
- sOakSpeechResources->unk_0008 = malloc_and_decompress(sNewGameAdventureIntroTilemap, &sp14);
+ sOakSpeechResources->unk_0008 = MallocAndDecompress(sNewGameAdventureIntroTilemap, &sp14);
CopyToBgTilemapBufferRect(1, sOakSpeechResources->unk_0008, 0, 2, 30, 19);
CopyBgTilemapBufferToVram(1);
Free(sOakSpeechResources->unk_0008);
@@ -869,7 +869,7 @@ static void Task_OakSpeech9(u8 taskId)
data[3]--;
else
{
- sOakSpeechResources->solidColorsGfx = malloc_and_decompress(sOakSpeechGfx_SolidColors, &size);
+ sOakSpeechResources->solidColorsGfx = MallocAndDecompress(sOakSpeechGfx_SolidColors, &size);
LoadBgTiles(1, sOakSpeechResources->solidColorsGfx, size, 0);
CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0);
CopyBgTilemapBufferToVram(1);
@@ -1054,7 +1054,7 @@ static void Task_OakSpeech19(u8 taskId)
{
gTasks[taskId].data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[1]);
PutWindowTilemap(gTasks[taskId].data[13]);
- SetWindowBorderStyle(gTasks[taskId].data[13], 1, sub_80F796C(), 14);
+ SetWindowBorderStyle(gTasks[taskId].data[13], 1, GetStdWindowBaseTileNum(), 14);
FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
sOakSpeechResources->unk_001C[0] = 1;
sOakSpeechResources->unk_001C[1] = 2;
@@ -1246,7 +1246,7 @@ static void Task_OakSpeech26(u8 taskId)
data[3]--;
else
{
- CreateYesNoMenu(&sNewGameAdventureIntroWindowTemplates[2], 2, 0, 2, sub_80F796C(), 14, 0);
+ CreateYesNoMenu(&sNewGameAdventureIntroWindowTemplates[2], 2, 0, 2, GetStdWindowBaseTileNum(), 14, 0);
gTasks[taskId].func = Task_OakSpeech27;
}
}
@@ -1536,7 +1536,7 @@ static void CB2_ReturnFromNamingScreen(void)
ScanlineEffect_Stop();
ResetSpriteData();
FreeAllSpritePalettes();
- reset_temp_tile_data_buffers();
+ ResetTempTileDataBuffers();
break;
case 1:
ResetBgsAndClearDma3BusyFlags(0);
@@ -1564,10 +1564,10 @@ static void CB2_ReturnFromNamingScreen(void)
LoadPalette(sHelpDocsPalette, 0, 0xe0);
break;
case 4:
- decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_SolidColors, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(1, sOakSpeechGfx_SolidColors, 0, 0, 0);
break;
case 5:
- if (free_temp_tile_data_buffers_if_possible())
+ if (FreeTempTileDataBuffersIfPossible())
return;
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0);
@@ -1850,7 +1850,7 @@ static void PrintNameChoiceOptions(u8 taskId, u8 state)
data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[3]);
PutWindowTilemap(data[13]);
- SetWindowBorderStyle(data[13], 1, sub_80F796C(), 14);
+ SetWindowBorderStyle(data[13], 1, GetStdWindowBaseTileNum(), 14);
FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
AddTextPrinterParameterized(data[13], 2, gOtherText_NewName, 8, 1, 0, NULL);
if (state == 0)
diff --git a/src/play_time.c b/src/play_time.c
new file mode 100644
index 000000000..cb70a57c4
--- /dev/null
+++ b/src/play_time.c
@@ -0,0 +1,67 @@
+#include "play_time.h"
+
+static IWRAM_DATA u8 sPlayTimeCounterState;
+
+enum
+{
+ STOPPED,
+ RUNNING,
+ MAXED_OUT,
+};
+
+void PlayTimeCounter_Reset(void)
+{
+ sPlayTimeCounterState = STOPPED;
+
+ gSaveBlock2Ptr->playTimeHours = 0;
+ gSaveBlock2Ptr->playTimeMinutes = 0;
+ gSaveBlock2Ptr->playTimeSeconds = 0;
+ gSaveBlock2Ptr->playTimeVBlanks = 0;
+}
+
+void PlayTimeCounter_Start(void)
+{
+ sPlayTimeCounterState = RUNNING;
+
+ if (gSaveBlock2Ptr->playTimeHours > 999)
+ PlayTimeCounter_SetToMax();
+}
+
+void PlayTimeCounter_Stop(void)
+{
+ sPlayTimeCounterState = STOPPED;
+}
+
+void PlayTimeCounter_Update(void)
+{
+ if (sPlayTimeCounterState == RUNNING)
+ {
+ gSaveBlock2Ptr->playTimeVBlanks++;
+ if (gSaveBlock2Ptr->playTimeVBlanks > 59)
+ {
+ gSaveBlock2Ptr->playTimeVBlanks = 0;
+ gSaveBlock2Ptr->playTimeSeconds++;
+ if (gSaveBlock2Ptr->playTimeSeconds > 59)
+ {
+ gSaveBlock2Ptr->playTimeSeconds = 0;
+ gSaveBlock2Ptr->playTimeMinutes++;
+ if (gSaveBlock2Ptr->playTimeMinutes > 59)
+ {
+ gSaveBlock2Ptr->playTimeMinutes = 0;
+ gSaveBlock2Ptr->playTimeHours++;
+ if (gSaveBlock2Ptr->playTimeHours > 999)
+ PlayTimeCounter_SetToMax();
+ }
+ }
+ }
+ }
+}
+
+void PlayTimeCounter_SetToMax(void)
+{
+ sPlayTimeCounterState = MAXED_OUT;
+ gSaveBlock2Ptr->playTimeHours = 999;
+ gSaveBlock2Ptr->playTimeMinutes = 59;
+ gSaveBlock2Ptr->playTimeSeconds = 59;
+ gSaveBlock2Ptr->playTimeVBlanks = 59;
+}
diff --git a/src/quest_log.c b/src/quest_log.c
index 0021ee927..07d44388d 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -1418,7 +1418,7 @@ void sub_8111D10(void)
PutWindowTilemap(gUnknown_203ADFE[2]);
sub_8111D90(gUnknown_203ADFE[2]);
AddTextPrinterParameterized4(gUnknown_203ADFE[2], 2, 2, gUnknown_8456698[count], 1, 0, &gUnknown_8456634, 0, gStringVar4);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
}
void sub_8111D90(u8 a0)
@@ -1567,7 +1567,7 @@ void sub_81120AC(u8 taskId)
{
case 0:
gUnknown_2031DD8 = 0;
- sub_8055DC4();
+ Overworld_PlaySpecialMapMusic();
sub_811229C();
FillWindowPixelRect(gUnknown_203ADFE[0], 0xF, 0, 0, gUnknown_845661C[0].width * 8, gUnknown_845661C[0].height * 8);
data[0]++;
@@ -2297,7 +2297,7 @@ const struct WindowTemplate gUnknown_8456928 = {
0x00, 0, 15, 30, 5, 15, 0x008F
};
-void sub_8112EA8(void)
+void MapNamePopupWindowIdSetDummy(void)
{
gUnknown_203B020 = 0xFF;
}
@@ -2471,12 +2471,12 @@ void sub_8112FE4(const u8 * a0)
AddTextPrinterParameterized4(gUnknown_203B020, 0x02, 2, 5, 1, 1, &gUnknown_8456930, -1, a0);
}
-void sub_8113018(const u8 * a0, u8 a1)
+void sub_8113018(const u8 * text, u8 mode)
{
sub_8112FD0();
- sub_8112FE4(a0);
- if (a1)
- CopyWindowToVram(gUnknown_203B020, a1);
+ sub_8112FE4(text);
+ if (mode)
+ CopyWindowToVram(gUnknown_203B020, mode);
}
void sub_8113044(void)
diff --git a/src/script.c b/src/script.c
index 608dc6ba0..06418b8d0 100644
--- a/src/script.c
+++ b/src/script.c
@@ -279,7 +279,7 @@ void sub_8069A2C(void)
gUnknown_3000FA1 = 0;
}
-bool8 sub_8069A38(void)
+bool8 IsMsgSignPost(void)
{
if(gUnknown_3000FA1 == TRUE)
return TRUE;
diff --git a/src/sprite.c b/src/sprite.c
index 60bcd1da4..c1fc89777 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -250,12 +250,26 @@ static const AffineAnimCmdFunc sAffineAnimCmdFuncs[] =
AffineAnimCmd_frame,
};
-static const s32 gUnknown_082EC6F4[24] =
+static const s32 sUnknown_082EC6F4[3][4][2] =
{
- 8, 8, 0x10, 0x10, 0x20, 0x20,
- 0x40, 0x40, 0x10, 8, 0x20, 8,
- 0x20, 0x10, 0x40, 0x20, 8, 0x10,
- 8, 0x20, 0x10, 0x20, 0x20, 0x40,
+ {
+ {8, 8},
+ {0x10, 0x10},
+ {0x20, 0x20},
+ {0x40, 0x40},
+ },
+ {
+ {0x10, 8},
+ {0x20, 8},
+ {0x20, 0x10},
+ {0x40, 0x20},
+ },
+ {
+ {8, 0x10},
+ {8, 0x20},
+ {0x10, 0x20},
+ {0x20, 0x40},
+ },
};
static const struct OamDimensions sOamDimensions[3][4] =
@@ -1227,106 +1241,26 @@ s32 sub_800800C(s32 a0, s32 a1, s32 a2)
return a2 - ((u32)(a2 * a1) / (u32)(a0) + var1);
}
-#ifdef NONMATCHING
-void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2)
+void obj_update_pos2(struct Sprite *sprite, s32 a1, s32 a2)
{
s32 var0, var1, var2;
- u8 matrixNum = sprite->oam.matrixNum;
+
+ u32 matrixNum = sprite->oam.matrixNum;
if (a1 != 0x800)
{
- var0 = gUnknown_082EC6F4[sprite->oam.size * 8 + sprite->oam.shape * 32];
+ var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][0];
var1 = var0 << 8;
var2 = (var0 << 16) / gOamMatrices[matrixNum].a;
sprite->pos2.x = sub_800800C(var1, var2, a1);
}
if (a2 != 0x800)
{
- var0 = gUnknown_082EC6F4[4 + (sprite->oam.size * 8 + sprite->oam.shape * 32)];
+ var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][1];
var1 = var0 << 8;
var2 = (var0 << 16) / gOamMatrices[matrixNum].d;
sprite->pos2.y = sub_800800C(var1, var2, a2);
}
}
-#else
-__attribute__((naked))
-void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- adds r5, r0, 0\n\
- adds r6, r1, 0\n\
- mov r8, r2\n\
- ldrb r1, [r5, 0x3]\n\
- lsls r0, r1, 26\n\
- lsrs r7, r0, 27\n\
- movs r0, 0x80\n\
- lsls r0, 4\n\
- mov r9, r0\n\
- cmp r6, r9\n\
- beq _08007EA2\n\
- ldr r2, =gUnknown_082EC6F4\n\
- lsrs r1, 6\n\
- lsls r1, 3\n\
- ldrb r0, [r5, 0x1]\n\
- lsrs r0, 6\n\
- lsls r0, 5\n\
- adds r1, r0\n\
- adds r1, r2\n\
- ldr r0, [r1]\n\
- lsls r4, r0, 8\n\
- lsls r0, 16\n\
- ldr r2, =gOamMatrices\n\
- lsls r1, r7, 3\n\
- adds r1, r2\n\
- movs r2, 0\n\
- ldrsh r1, [r1, r2]\n\
- bl __divsi3\n\
- adds r1, r0, 0\n\
- adds r0, r4, 0\n\
- adds r2, r6, 0\n\
- bl sub_800800C\n\
- strh r0, [r5, 0x24]\n\
-_08007EA2:\n\
- cmp r8, r9\n\
- beq _08007EDA\n\
- ldr r2, =gUnknown_082EC6F4\n\
- ldrb r1, [r5, 0x3]\n\
- lsrs r1, 6\n\
- lsls r1, 3\n\
- ldrb r0, [r5, 0x1]\n\
- lsrs r0, 6\n\
- lsls r0, 5\n\
- adds r1, r0\n\
- adds r2, 0x4\n\
- adds r1, r2\n\
- ldr r0, [r1]\n\
- lsls r4, r0, 8\n\
- lsls r0, 16\n\
- ldr r2, =gOamMatrices\n\
- lsls r1, r7, 3\n\
- adds r1, r2\n\
- movs r2, 0x6\n\
- ldrsh r1, [r1, r2]\n\
- bl __divsi3\n\
- adds r1, r0, 0\n\
- adds r0, r4, 0\n\
- mov r2, r8\n\
- bl sub_800800C\n\
- strh r0, [r5, 0x26]\n\
-_08007EDA:\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- .syntax divided");
-}
-#endif // NONMATCHING
void SetSpriteOamFlipBits(struct Sprite *sprite, u8 hFlip, u8 vFlip)
{
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index eb5a7293d..1e3f42027 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -422,7 +422,7 @@ static void TeachyTvCallback(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
- do_scheduled_bg_tilemap_copies_to_vram();
+ DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@@ -476,7 +476,7 @@ static void TeachyTvMainCallback(void)
sResources->grassAnimDisabled = 0;
sResources->scrollIndicatorArrowPairId = 0xFF;
SetVBlankHBlankCallbacksToNull();
- clear_scheduled_bg_copies_to_vram();
+ ClearScheduledBgCopiesToVram();
ScanlineEffect_Stop();
FreeAllSpritePalettes();
ResetPaletteFade();
@@ -487,7 +487,7 @@ static void TeachyTvMainCallback(void)
++gMain.state;
break;
case 1:
- if (free_temp_tile_data_buffers_if_possible() == TRUE)
+ if (FreeTempTileDataBuffersIfPossible() == TRUE)
return;
TeachyTvCreateAndRenderRbox();
TeachyTvInitIo();
@@ -506,10 +506,10 @@ static void TeachyTvMainCallback(void)
PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
TeachyTvSetWindowRegs();
}
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
- schedule_bg_copy_tilemap_to_vram(2);
- schedule_bg_copy_tilemap_to_vram(3);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
+ ScheduleBgCopyTilemapToVram(2);
+ ScheduleBgCopyTilemapToVram(3);
sub_812B1E0(9); // help system something
BlendPalettes(0xFFFFFFFF, 0x10, 0);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
@@ -542,8 +542,8 @@ static void TeachyTvSetupBg(void)
static void TeachyTvLoadGraphic(void)
{
u16 src = RGB_BLACK;
- reset_temp_tile_data_buffers();
- decompress_and_copy_tile_data_to_vram(1, gUnknown_8E86240, 0, 0, 0);
+ ResetTempTileDataBuffers();
+ DecompressAndCopyTileDataToVram(1, gUnknown_8E86240, 0, 0, 0);
LZDecompressWram(gUnknown_8E86BE8, sResources->buffer1);
LZDecompressWram(gUnknown_8E86D6C, sResources->buffer4);
LoadCompressedPalette(gUnknown_8E86F98, 0, 0x80);
@@ -656,7 +656,7 @@ static void TeachyTvBg2AnimController(void)
tilemapBuffer[32 * i + j] = ((Random() & 3) << 10) + 0x301F;
}
}
- schedule_bg_copy_tilemap_to_vram(2);
+ ScheduleBgCopyTilemapToVram(2);
}
static void TeachyTvSetupPostBattleWindowAndObj(u8 taskId)
@@ -718,7 +718,7 @@ static void TeachyTvQuitFadeControlAndTaskDel(u8 taskId)
}
else
{
- sub_8055DC4();
+ Overworld_PlaySpecialMapMusic();
SetMainCallback2(sStaticResources.callback);
}
TeachyTvFree();
@@ -757,7 +757,7 @@ static void TeachyTvOptionListController(u8 taskId)
DestroyListMenu(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
TeachyTvClearWindowRegs();
ClearWindowTilemap(1);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
TeachyTvRemoveScrollIndicatorArrowPair();
data[3] = 0;
data[2] = 0;
@@ -776,7 +776,7 @@ static void TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId)
{
CopyToBgTilemapBufferRect_ChangePalette(2, sResources->buffer4, 0, 0, 0x20, 0x20, 0x11);
TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 8, 0x38, 7);
- schedule_bg_copy_tilemap_to_vram(2);
+ ScheduleBgCopyTilemapToVram(2);
data[2] = 0;
++data[3];
PlayNewMapMusic(BGM_FRLG_FOLLOW_ME);
@@ -789,7 +789,7 @@ static void TTVcmd_ClearBg2TeachyTvGraphic(u8 taskId)
if (++data[2] == 134)
{
FillBgTilemapBufferRect_Palette0(2, 0, 2, 1, 0x1A, 0xC);
- schedule_bg_copy_tilemap_to_vram(2);
+ ScheduleBgCopyTilemapToVram(2);
data[2] = 0;
++data[3];
}
@@ -1040,7 +1040,7 @@ static void TTVcmd_RenderAndRemoveBg1EndGraphic(u8 taskId)
if (!data[2])
{
CopyToBgTilemapBufferRect_ChangePalette(1, sBg1EndGraphic, 20, 10, 8, 2, 0x11);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(1);
}
if (++data[2] > 126)
{
@@ -1053,7 +1053,7 @@ static void TTVcmd_RenderAndRemoveBg1EndGraphic(u8 taskId)
static void TeachyTvClearBg1EndGraphicText(void)
{
FillBgTilemapBufferRect_Palette0(1, 0, 20, 10, 8, 2);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(1);
}
static void TTVcmd_End(u8 taskId)
@@ -1071,7 +1071,7 @@ static void TTVcmd_End(u8 taskId)
PutWindowTilemap(0);
TeachyTvSetupScrollIndicatorArrowPair();
TeachyTvSetWindowRegs();
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
ChangeBgX(3, 0x0, 0);
ChangeBgY(3, 0x0, 0);
ChangeBgX(3, 0x1000, 2);
diff --git a/src/text.c b/src/text.c
index f84420352..c0fe6a444 100644
--- a/src/text.c
+++ b/src/text.c
@@ -16,7 +16,6 @@ extern void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 wid
extern void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight);
extern u8 GetKeypadIconWidth(u8 keypadIconId);
extern void CopyWindowToVram(u8 windowId, u8 mode);
-extern u16 Font6Func(struct TextPrinter *textPrinter);
extern s32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese);
extern void PlaySE(u16 songNum);
extern u8* UnkTextUtil_GetPtrI(u8 a1);
diff --git a/src/text_window.c b/src/text_window.c
index 0c562b195..98f82e818 100644
--- a/src/text_window.c
+++ b/src/text_window.c
@@ -57,7 +57,7 @@ void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx)
LoadPalette(stdpal_get(2), palIdx, 32);
}
-void TextWindow_SetBubbleFrame_841F1C8(u8 windowId, u16 destOffset, u8 palIdx)
+void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 destOffset, u8 palIdx)
{
LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_841F1C8, 0x280, destOffset);
LoadPalette(stdpal_get(0), palIdx, 32);
@@ -80,7 +80,7 @@ void sub_814FF6C(u8 windowId, u16 destOffset)
LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset);
}
-void sub_814FF98(u8 windowId, u16 destOffset)
+void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset)
{
LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame1, 0x280, destOffset);
}
diff --git a/src/tm_case.c b/src/tm_case.c
index f32273add..54c50cc71 100644
--- a/src/tm_case.c
+++ b/src/tm_case.c
@@ -290,7 +290,7 @@ static void CB2_Idle(void)
RunTasks();
AnimateSprites();
BuildOamBuffer();
- do_scheduled_bg_tilemap_copies_to_vram();
+ DoScheduledBgTilemapCopiesToVram();
UpdatePaletteFade();
}
@@ -322,7 +322,7 @@ static bool8 DoSetUpTMCaseUI(void)
{
case 0:
SetVBlankHBlankCallbacksToNull();
- clear_scheduled_bg_copies_to_vram();
+ ClearScheduledBgCopiesToVram();
gMain.state++;
break;
case 1:
@@ -432,8 +432,8 @@ static void LoadBGTemplates(void)
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, sBGTemplates, NELEMS(sBGTemplates));
SetBgTilemapBuffer(2, *ptr);
- schedule_bg_copy_tilemap_to_vram(1);
- schedule_bg_copy_tilemap_to_vram(2);
+ ScheduleBgCopyTilemapToVram(1);
+ ScheduleBgCopyTilemapToVram(2);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
ShowBg(0);
@@ -446,12 +446,12 @@ static bool8 HandleLoadTMCaseGraphicsAndPalettes(void)
switch (sTMCaseDynamicResources->seqId)
{
case 0:
- reset_temp_tile_data_buffers();
- decompress_and_copy_tile_data_to_vram(1, gUnknown_8E845D8, 0, 0, 0);
+ ResetTempTileDataBuffers();
+ DecompressAndCopyTileDataToVram(1, gUnknown_8E845D8, 0, 0, 0);
sTMCaseDynamicResources->seqId++;
break;
case 1:
- if (free_temp_tile_data_buffers_if_possible() != TRUE)
+ if (FreeTempTileDataBuffersIfPossible() != TRUE)
{
LZDecompressWram(gUnknown_8E84A24, sTilemapBuffer);
sTMCaseDynamicResources->seqId++;
@@ -596,7 +596,7 @@ static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex)
static void FillBG2RowWithPalette_2timesNplus1(s32 a0)
{
SetBgRectPal(2, 0, 12, 30, 8, 2 * a0 + 1);
- schedule_bg_copy_tilemap_to_vram(2);
+ ScheduleBgCopyTilemapToVram(2);
}
static void PrintListMenuCursorByID_WithColorIdx(u8 a0, u8 a1)
@@ -806,8 +806,8 @@ static void Task_SelectTMAction_FromFieldBag(u8 taskId)
PlaceHMTileInWindow(2, 0, 2);
CopyWindowToVram(2, 2);
}
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
gTasks[taskId].func = Task_TMContextMenu_HandleInput;
}
@@ -840,8 +840,8 @@ static void TMHMContextMenuAction_Use(u8 taskId)
ClearMenuWindow(2, 0);
ClearWindowTilemap(2);
PutWindowTilemap(0);
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
if (CalculatePlayerPartyCount() == 0)
{
PrintError_ThereIsNoPokemon(taskId);
@@ -864,8 +864,8 @@ static void TMHMContextMenuAction_Give(u8 taskId)
PutWindowTilemap(1);
PutWindowTilemap(4);
PutWindowTilemap(5);
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
if (!itemid_is_unique(itemId))
{
if (CalculatePlayerPartyCount() == 0)
@@ -917,8 +917,8 @@ static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId)
PutWindowTilemap(1);
PutWindowTilemap(4);
PutWindowTilemap(5);
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
Subtask_ReturnToTMCaseMain(taskId);
}
@@ -934,8 +934,8 @@ static void TMHMContextMenuAction_Exit(u8 taskId)
PutWindowTilemap(1);
PutWindowTilemap(4);
PutWindowTilemap(5);
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
Subtask_ReturnToTMCaseMain(taskId);
}
@@ -1023,8 +1023,8 @@ static void Task_SaleOfTMsCancelled(u8 taskId)
PutWindowTilemap(3);
PutWindowTilemap(4);
PutWindowTilemap(5);
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
PrintListMenuCursorByID_WithColorIdx(data[0], 1);
Subtask_ReturnToTMCaseMain(taskId);
}
@@ -1040,8 +1040,8 @@ static void Task_InitQuantitySelectUI(u8 taskId)
SellTM_PrintQuantityAndSalePrice(1, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]);
HandlePrintMoneyOnHand();
CreateTMCaseScrollIndicatorArrowPair_SellQuantitySelect();
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
gTasks[taskId].func = Task_QuantitySelect_HandleInput;
}
@@ -1066,8 +1066,8 @@ static void Task_QuantitySelect_HandleInput(u8 taskId)
{
PlaySE(SE_SELECT);
ClearMenuWindow(7, 0);
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
RemoveTMCaseScrollIndicatorArrowPair();
Task_AskConfirmSaleWithAmount(taskId);
}
@@ -1080,8 +1080,8 @@ static void Task_QuantitySelect_HandleInput(u8 taskId)
PutWindowTilemap(3);
PutWindowTilemap(0);
PutWindowTilemap(1);
- schedule_bg_copy_tilemap_to_vram(0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(0);
+ ScheduleBgCopyTilemapToVram(1);
RemoveTMCaseScrollIndicatorArrowPair();
PrintListMenuCursorByID_WithColorIdx(data[0], 1);
Subtask_ReturnToTMCaseMain(taskId);
@@ -1093,7 +1093,7 @@ static void Task_PrintSaleConfirmedText(u8 taskId)
s16 * data = gTasks[taskId].data;
PutWindowTilemap(0);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
CopyItemName(gSpecialVar_ItemId, gStringVar1);
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen);
@@ -1250,7 +1250,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
FillBG2RowWithPalette_2timesNplus1(0);
BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0);
ClearMenuWindow_BorderThickness2(6, 0);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(1);
data[8]++;
}
break;
@@ -1298,7 +1298,7 @@ static void InitWindowTemplatesAndPals(void)
InitWindows(sWindowTemplates);
DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x5B, 0xE0);
- TextWindow_SetBubbleFrame_841F1C8(0, 0x64, 0xB0);
+ TextWindow_LoadResourcesStdFrame0(0, 0x64, 0xB0);
TextWindow_SetStdFrame0_WithPal(0, 0x78, 0xD0);
LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20);
LoadPalette(gTMCaseMainWindowPalette, 0xA0, 0x20);
@@ -1312,7 +1312,7 @@ static void InitWindowTemplatesAndPals(void)
PutWindowTilemap(3);
PutWindowTilemap(4);
PutWindowTilemap(5);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
}
static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
@@ -1333,7 +1333,7 @@ static void TMCase_SetWindowBorder2(u8 windowId)
static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func)
{
DisplayMessageAndContinueTask(taskId, 6, 0x64, 0x0B, windowId, GetTextSpeedSetting(), str, func);
- schedule_bg_copy_tilemap_to_vram(1);
+ ScheduleBgCopyTilemapToVram(1);
}
static void PrintStringTMCaseOnWindow3(void)
@@ -1413,7 +1413,7 @@ static u8 AddTMContextMenu(u8 * a0, u8 a1)
{
*a0 = AddWindow(&sTMContextWindowTemplates[a1]);
TMCase_SetWindowBorder1(*a0);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
}
return *a0;
}
@@ -1423,7 +1423,7 @@ static void RemoveTMContextMenu(u8 * a0)
ClearMenuWindow(*a0, FALSE);
ClearWindowTilemap(*a0);
RemoveWindow(*a0);
- schedule_bg_copy_tilemap_to_vram(0);
+ ScheduleBgCopyTilemapToVram(0);
*a0 = 0xFF;
}
diff --git a/src/window.c b/src/window.c
index 4c302885c..5ccd05f35 100644
--- a/src/window.c
+++ b/src/window.c
@@ -378,696 +378,74 @@ void FillWindowPixelBuffer(u8 windowId, u8 fillValue)
CpuFastFill8(fillValue, gWindows[windowId].tileData, 0x20 * fillSize);
}
-// functionally equivalent, its fucking hard to match
-#ifdef NONMATCHING
+#define MOVE_TILES_DOWN(a) \
+{ \
+ destOffset = i + (a); \
+ srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \
+ if (srcOffset < size) \
+ *(u32*)(tileData + destOffset) = *(u32*)(tileData + srcOffset); \
+ else \
+ *(u32*)(tileData + destOffset) = fillValue32; \
+ distanceLoop++; \
+}
+
+#define MOVE_TILES_UP(a) \
+{ \
+ destOffset = i + (a); \
+ srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \
+ if (srcOffset < size) \
+ *(u32*)(tileData - destOffset) = *(u32*)(tileData - srcOffset); \
+ else \
+ *(u32*)(tileData - destOffset) = fillValue32; \
+ distanceLoop++; \
+}
+
void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue)
{
- s32 i, id1, id2, size;
- u32 distanceLoop, toFill, width;
- u8 *tileData;
- struct WindowTemplate window;
-
- tileData = gWindows[windowId].tileData;
- toFill = (fillValue << 0x18) | (fillValue << 0x10) | (fillValue << 8) | fillValue;
- window = gWindows[windowId].window;
- size = 0x20 * (window.height * window.width);
- width = window.width;
- if (direction != 1)
+ struct WindowTemplate window = gWindows[windowId].window;
+ u8 *tileData = gWindows[windowId].tileData;
+ u32 fillValue32 = (fillValue << 24) | (fillValue << 16) | (fillValue << 8) | fillValue;
+ s32 size = window.height * window.width * 32;
+ u32 width = window.width;
+ s32 i;
+ s32 srcOffset, destOffset;
+ u32 distanceLoop;
+
+ switch (direction)
{
- s32 signedDirection = direction;
- if (signedDirection <= 1)
+ case 0:
+ for (i = 0; i < size; i += 32)
{
- if (signedDirection == 0)
- {
- for (i = 0; i < size; i += 0x20)
- {
- distanceLoop = distance;
- id1 = i + 0;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData + id1) = *(u32*)(tileData + id2);
- else
- *(u32*)(tileData + id1) = toFill;
-
- distanceLoop++;
- id1 = i + 4;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData + id1) = *(u32*)(tileData + id2);
- else
- *(u32*)(tileData + id1) = toFill;
-
- distanceLoop++;
- id1 = i + 8;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData + id1) = *(u32*)(tileData + id2);
- else
- *(u32*)(tileData + id1) = toFill;
-
- distanceLoop++;
- id1 = i + 12;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData + id1) = *(u32*)(tileData + id2);
- else
- *(u32*)(tileData + id1) = toFill;
-
- distanceLoop++;
- id1 = i + 16;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData + id1) = *(u32*)(tileData + id2);
- else
- *(u32*)(tileData + id1) = toFill;
-
- distanceLoop++;
- id1 = i + 20;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData + id1) = *(u32*)(tileData + id2);
- else
- *(u32*)(tileData + id1) = toFill;
-
- distanceLoop++;
- id1 = i + 24;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData + id1) = *(u32*)(tileData + id2);
- else
- *(u32*)(tileData + id1) = toFill;
-
- distanceLoop++;
- id1 = i + 28;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData + id1) = *(u32*)(tileData + id2);
- else
- *(u32*)(tileData + id1) = toFill;
- }
- }
+ distanceLoop = distance;
+ MOVE_TILES_DOWN(0)
+ MOVE_TILES_DOWN(4)
+ MOVE_TILES_DOWN(8)
+ MOVE_TILES_DOWN(12)
+ MOVE_TILES_DOWN(16)
+ MOVE_TILES_DOWN(20)
+ MOVE_TILES_DOWN(24)
+ MOVE_TILES_DOWN(28)
}
- }
- else
- {
+ break;
+ case 1:
tileData += size - 4;
- for (i = 0; i < size; i += 0x20)
+ for (i = 0; i < size; i += 32)
{
distanceLoop = distance;
- id1 = i + 0;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData - id1) = *(u32*)(tileData - id2);
- else
- *(u32*)(tileData - id1) = toFill;
-
- distanceLoop++;
- id1 = i + 4;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData - id1) = *(u32*)(tileData - id2);
- else
- *(u32*)(tileData - id1) = toFill;
-
- distanceLoop++;
- id1 = i + 8;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData - id1) = *(u32*)(tileData - id2);
- else
- *(u32*)(tileData - id1) = toFill;
-
- distanceLoop++;
- id1 = i + 12;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData - id1) = *(u32*)(tileData - id2);
- else
- *(u32*)(tileData - id1) = toFill;
-
- distanceLoop++;
- id1 = i + 16;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData - id1) = *(u32*)(tileData - id2);
- else
- *(u32*)(tileData - id1) = toFill;
-
- distanceLoop++;
- id1 = i + 20;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData - id1) = *(u32*)(tileData - id2);
- else
- *(u32*)(tileData - id1) = toFill;
-
- distanceLoop++;
- id1 = i + 24;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData - id1) = *(u32*)(tileData - id2);
- else
- *(u32*)(tileData - id1) = toFill;
-
- distanceLoop++;
- id1 = i + 28;
- id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4);
- if (id2 < size)
- *(u32*)(tileData - id1) = *(u32*)(tileData - id2);
- else
- *(u32*)(tileData - id1) = toFill;
+ MOVE_TILES_UP(0)
+ MOVE_TILES_UP(4)
+ MOVE_TILES_UP(8)
+ MOVE_TILES_UP(12)
+ MOVE_TILES_UP(16)
+ MOVE_TILES_UP(20)
+ MOVE_TILES_UP(24)
+ MOVE_TILES_UP(28)
}
+ break;
+ case 2:
+ break;
}
}
-#else
-__attribute__((naked))
-void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x8\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- mov r8, r1\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- str r2, [sp]\n\
- lsls r3, 24\n\
- lsrs r3, 24\n\
- ldr r2, =gWindows\n\
- lsls r1, r0, 1\n\
- adds r1, r0\n\
- lsls r1, 2\n\
- adds r4, r1, r2\n\
- adds r2, 0x8\n\
- adds r1, r2\n\
- ldr r5, [r1]\n\
- lsls r7, r3, 24\n\
- lsls r0, r3, 16\n\
- orrs r7, r0\n\
- lsls r0, r3, 8\n\
- orrs r7, r0\n\
- orrs r7, r3\n\
- ldr r1, [r4]\n\
- ldr r2, [r4, 0x4]\n\
- ldrb r3, [r4, 0x4]\n\
- lsrs r0, r1, 24\n\
- muls r0, r3\n\
- lsls r6, r0, 5\n\
- lsrs r1, 24\n\
- mov r12, r1\n\
- mov r0, r8\n\
- cmp r0, 0x1\n\
- bne _08003CE8\n\
- b _08003E9E\n\
-_08003CE8:\n\
- cmp r0, 0x1\n\
- ble _08003CEE\n\
- b _08004046\n\
-_08003CEE:\n\
- cmp r0, 0\n\
- beq _08003CF4\n\
- b _08004046\n\
-_08003CF4:\n\
- movs r4, 0\n\
- cmp r4, r6\n\
- blt _08003CFC\n\
- b _08004046\n\
-_08003CFC:\n\
- movs r1, 0x8\n\
- negs r1, r1\n\
- mov r9, r1\n\
- movs r2, 0x7\n\
- mov r8, r2\n\
- mov r10, r5\n\
-_08003D08:\n\
- ldr r3, [sp]\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- adds r0, r3, 0\n\
- mov r2, r8\n\
- ands r0, r2\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003D34\n\
- adds r0, r5, r1\n\
- ldr r0, [r0]\n\
- mov r1, r10\n\
- str r0, [r1]\n\
- b _08003D38\n\
- .pool\n\
-_08003D34:\n\
- mov r2, r10\n\
- str r7, [r2]\n\
-_08003D38:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0x4\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003D64\n\
- adds r0, r5, r2\n\
- adds r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003D68\n\
-_08003D64:\n\
- adds r0, r5, r2\n\
- str r7, [r0]\n\
-_08003D68:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x8\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003D96\n\
- adds r0, r5, r2\n\
- adds r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003D9A\n\
-_08003D96:\n\
- adds r0, r5, r2\n\
- str r7, [r0]\n\
-_08003D9A:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0xC\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003DC8\n\
- adds r0, r5, r2\n\
- adds r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003DCC\n\
-_08003DC8:\n\
- adds r0, r5, r2\n\
- str r7, [r0]\n\
-_08003DCC:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x10\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003DFA\n\
- adds r0, r5, r2\n\
- adds r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003DFE\n\
-_08003DFA:\n\
- adds r0, r5, r2\n\
- str r7, [r0]\n\
-_08003DFE:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x14\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003E2C\n\
- adds r0, r5, r2\n\
- adds r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003E30\n\
-_08003E2C:\n\
- adds r0, r5, r2\n\
- str r7, [r0]\n\
-_08003E30:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x18\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003E5E\n\
- adds r0, r5, r2\n\
- adds r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003E62\n\
-_08003E5E:\n\
- adds r0, r5, r2\n\
- str r7, [r0]\n\
-_08003E62:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x1C\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- mov r1, r8\n\
- ands r3, r1\n\
- orrs r0, r3\n\
- lsls r0, 2\n\
- adds r1, r4, r0\n\
- cmp r1, r6\n\
- bge _08003E8C\n\
- adds r0, r5, r2\n\
- adds r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003E90\n\
-_08003E8C:\n\
- adds r0, r5, r2\n\
- str r7, [r0]\n\
-_08003E90:\n\
- movs r2, 0x20\n\
- add r10, r2\n\
- adds r4, 0x20\n\
- cmp r4, r6\n\
- bge _08003E9C\n\
- b _08003D08\n\
-_08003E9C:\n\
- b _08004046\n\
-_08003E9E:\n\
- subs r0, r6, 0x4\n\
- adds r5, r0\n\
- movs r4, 0\n\
- cmp r4, r6\n\
- blt _08003EAA\n\
- b _08004046\n\
-_08003EAA:\n\
- movs r0, 0x8\n\
- negs r0, r0\n\
- mov r9, r0\n\
- movs r1, 0x7\n\
- mov r8, r1\n\
- mov r10, r5\n\
-_08003EB6:\n\
- ldr r3, [sp]\n\
- adds r0, r3, 0\n\
- mov r2, r9\n\
- ands r0, r2\n\
- mov r1, r12\n\
- muls r1, r0\n\
- adds r0, r3, 0\n\
- mov r2, r8\n\
- ands r0, r2\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003EDC\n\
- subs r0, r5, r1\n\
- ldr r0, [r0]\n\
- mov r1, r10\n\
- str r0, [r1]\n\
- b _08003EE0\n\
-_08003EDC:\n\
- mov r2, r10\n\
- str r7, [r2]\n\
-_08003EE0:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0x4\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003F0C\n\
- subs r0, r5, r2\n\
- subs r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003F10\n\
-_08003F0C:\n\
- subs r0, r5, r2\n\
- str r7, [r0]\n\
-_08003F10:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x8\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003F3E\n\
- subs r0, r5, r2\n\
- subs r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003F42\n\
-_08003F3E:\n\
- subs r0, r5, r2\n\
- str r7, [r0]\n\
-_08003F42:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0xC\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003F70\n\
- subs r0, r5, r2\n\
- subs r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003F74\n\
-_08003F70:\n\
- subs r0, r5, r2\n\
- str r7, [r0]\n\
-_08003F74:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x10\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003FA2\n\
- subs r0, r5, r2\n\
- subs r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003FA6\n\
-_08003FA2:\n\
- subs r0, r5, r2\n\
- str r7, [r0]\n\
-_08003FA6:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x14\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08003FD4\n\
- subs r0, r5, r2\n\
- subs r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08003FD8\n\
-_08003FD4:\n\
- subs r0, r5, r2\n\
- str r7, [r0]\n\
-_08003FD8:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x18\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- str r1, [sp, 0x4]\n\
- adds r0, r3, 0\n\
- mov r1, r8\n\
- ands r0, r1\n\
- ldr r1, [sp, 0x4]\n\
- orrs r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4, r1\n\
- cmp r1, r6\n\
- bge _08004006\n\
- subs r0, r5, r2\n\
- subs r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _0800400A\n\
-_08004006:\n\
- subs r0, r5, r2\n\
- str r7, [r0]\n\
-_0800400A:\n\
- adds r3, 0x1\n\
- adds r2, r4, 0\n\
- adds r2, 0x1C\n\
- adds r0, r3, 0\n\
- mov r1, r9\n\
- ands r0, r1\n\
- mov r1, r12\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- mov r1, r8\n\
- ands r3, r1\n\
- orrs r0, r3\n\
- lsls r0, 2\n\
- adds r1, r4, r0\n\
- cmp r1, r6\n\
- bge _08004034\n\
- subs r0, r5, r2\n\
- subs r1, r5, r1\n\
- ldr r1, [r1]\n\
- str r1, [r0]\n\
- b _08004038\n\
-_08004034:\n\
- subs r0, r5, r2\n\
- str r7, [r0]\n\
-_08004038:\n\
- movs r2, 0x20\n\
- negs r2, r2\n\
- add r10, r2\n\
- adds r4, 0x20\n\
- cmp r4, r6\n\
- bge _08004046\n\
- b _08003EB6\n\
-_08004046:\n\
- add sp, 0x8\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided");
-}
-#endif // NONMATCHING
void CallWindowFunction(u8 windowId, WindowFunc func)
{
diff --git a/sym_bss.txt b/sym_bss.txt
index 603da6ddb..7c0bdf1a1 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -57,17 +57,14 @@ gUnknown_3000E6A: @ 3000E6A
gUnknown_3000E6B: @ 3000E6B
.space 0x1
-gUnknown_3000E6C: @ 3000E6C
- .space 0x8
-
+ .include "src/multiboot.o"
.include "src/daycare.o"
gUnknown_3000E78: @ 3000E78
.space 0x4
-gUnknown_3000E7C: @ 3000E7C
- .space 0x4
-
+ .include "src/play_time.o"
+ .align 2
gUnknown_3000E80: @ 3000E80
.space 0x4
diff --git a/sym_ewram.txt b/sym_ewram.txt
index ca297b540..80a75be9a 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1208,18 +1208,8 @@ gUnknown_203AB50: @ 203AB50
gUnknown_203AB54: @ 203AB54
.space 0x4
-gUnknown_203AB58: @ 203AB58
- .space 0x4
-
-gUnknown_203AB5C: @ 203AB5C
- .space 0x4
-
-gUnknown_203AB60: @ 203AB60
- .space 0x80
-
-gUnknown_203ABE0: @ 203ABE0
- .space 0x4
-
+ .include "src/new_menu_helpers.o"
+ .align 2
gUnknown_203ABE4: @ 203ABE4
.space 0x4
diff --git a/tools/br_ips/br_ips.c b/tools/br_ips/br_ips.c
index 64c454a3e..10d9a37c0 100644
--- a/tools/br_ips/br_ips.c
+++ b/tools/br_ips/br_ips.c
@@ -50,6 +50,7 @@ static int getline(char ** lineptr, size_t * n, FILE * stream) {
return i;
}
+
static void getIncbinsFromFile(hunk_t ** hunks, size_t * num, size_t * maxnum, const char * fname, char ** strbuf, size_t * buffersize) {
// Recursively find incbinned segments and encode them as hunks.
FILE * file = fopen(fname, "r");