summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-07-01 21:45:36 -0400
committerGitHub <noreply@github.com>2019-07-01 21:45:36 -0400
commit74d771ef90a3189bd2da1b35f6b42a1fa8f51e67 (patch)
tree96c754aee40f16956fb0958ecb31bd806bd99642
parent7f06718571de81609208a5fa402a93da63cfa8bf (diff)
parent062238aa12cb4f54f70b73459ff5b5d775f69a54 (diff)
Merge pull request #76 from jiangzhengwenjz/misc
new_menu_helpers, multiboot, hof_pc, play_time, decompress, reset_save_heap, save_location, mail_data, fldeff_*
-rw-r--r--.gitignore2
-rw-r--r--asm/battle_1.s4
-rw-r--r--asm/battle_anim.s4
-rw-r--r--asm/battle_anim_special.s12
-rw-r--r--asm/battle_anim_status_effects.s4
-rw-r--r--asm/battle_gfx_sfx_util.s36
-rw-r--r--asm/battle_interface.s2
-rw-r--r--asm/battle_setup.s2
-rw-r--r--asm/battle_transition.s2
-rw-r--r--asm/berry_crush_2.s2
-rw-r--r--asm/berry_crush_3.s8
-rw-r--r--asm/berry_pouch.s70
-rw-r--r--asm/bike.s2
-rw-r--r--asm/braille_text.s8
-rw-r--r--asm/buy_menu_helpers.s4
-rw-r--r--asm/cable_club.s2
-rw-r--r--asm/credits.s14
-rw-r--r--asm/decompress.s887
-rw-r--r--asm/diploma.s6
-rw-r--r--asm/dodrio_berry_picking.s6
-rw-r--r--asm/evolution_graphics.s2
-rw-r--r--asm/evolution_scene.s4
-rw-r--r--asm/field_camera.s6
-rw-r--r--asm/field_control_avatar.s6
-rw-r--r--asm/field_effect.s130
-rw-r--r--asm/field_fadetransition.s42
-rw-r--r--asm/field_map_obj.s42
-rw-r--r--asm/field_message_box.s10
-rw-r--r--asm/field_player_avatar.s76
-rw-r--r--asm/field_poison.s2
-rw-r--r--asm/field_special_scene.s39
-rw-r--r--asm/field_specials.s8
-rw-r--r--asm/field_weather.s6
-rw-r--r--asm/fldeff_cut.s10
-rw-r--r--asm/fldeff_poison.s98
-rw-r--r--asm/fldeff_strength.s111
-rw-r--r--asm/fldeff_sweetscent.s262
-rw-r--r--asm/hall_of_fame.s12
-rw-r--r--asm/hof_pc.s118
-rw-r--r--asm/intro.s66
-rw-r--r--asm/item_menu.s60
-rw-r--r--asm/itemfinder.s2
-rw-r--r--asm/learn_move.s2
-rw-r--r--asm/link.s2
-rw-r--r--asm/link_rfu.s2
-rw-r--r--asm/link_rfu_2.s2
-rw-r--r--asm/link_rfu_3.s22
-rw-r--r--asm/mail.s6
-rw-r--r--asm/mail_data.s626
-rw-r--r--asm/mailbox_pc.s2
-rw-r--r--asm/map_preview_screen.s8
-rw-r--r--asm/menu_indicators.s6
-rw-r--r--asm/multiboot.s924
-rw-r--r--asm/new_game.s6
-rw-r--r--asm/new_menu_helpers.s2497
-rw-r--r--asm/overworld.s48
-rw-r--r--asm/party_menu.s116
-rw-r--r--asm/play_time.s137
-rw-r--r--asm/player_pc.s26
-rw-r--r--asm/pokeball.s12
-rw-r--r--asm/pokedex_area_markers.s2
-rw-r--r--asm/pokemon_icon.s8
-rw-r--r--asm/pokemon_jump.s2
-rw-r--r--asm/pokemon_jump_2.s24
-rw-r--r--asm/pokemon_special_anim.s14
-rw-r--r--asm/pokemon_storage_system.s34
-rw-r--r--asm/pokemon_summary_screen.s6
-rw-r--r--asm/region_map.s8
-rw-r--r--asm/reset_save_heap.s68
-rw-r--r--asm/rom6.s459
-rw-r--r--asm/save_location.s222
-rw-r--r--asm/script_menu.s40
-rw-r--r--asm/script_movement.s4
-rw-r--r--asm/shop.s26
-rw-r--r--asm/slot_machine.s16
-rw-r--r--asm/smokescreen.s4
-rw-r--r--asm/start_menu.s18
-rw-r--r--asm/title_screen.s24
-rw-r--r--asm/trade.s10
-rw-r--r--asm/trainer_see.s54
-rw-r--r--asm/union_room_chat.s10
-rw-r--r--asm/wild_encounter.s14
-rw-r--r--berry_fix/payload/include/global.fieldmap.h2
-rw-r--r--data/data_83FECCC.s27
-rw-r--r--data/map_event_scripts.inc6
-rw-r--r--data/maps/FiveIsland_RocketWarehouse/scripts.inc2
-rw-r--r--data/specials.inc10
-rw-r--r--include/bg.h13
-rw-r--r--include/decompress.h19
-rw-r--r--include/dma3.h51
-rw-r--r--include/event_scripts.h4
-rw-r--r--include/field_map_obj.h8
-rw-r--r--include/field_player_avatar.h6
-rw-r--r--include/field_weather.h2
-rw-r--r--include/fldeff.h46
-rw-r--r--include/fldeff_80F9BCC.h16
-rw-r--r--include/gba/defines.h3
-rw-r--r--include/gba/multiboot.h6
-rw-r--r--include/global.h10
-rw-r--r--include/hall_of_fame.h3
-rw-r--r--include/item_use.h2
-rw-r--r--include/mail.h6
-rw-r--r--include/mail_data.h11
-rw-r--r--include/menu.h14
-rw-r--r--include/multiboot.h2
-rw-r--r--include/new_game.h1
-rw-r--r--include/new_menu_helpers.h32
-rw-r--r--include/overworld.h7
-rw-r--r--include/palette.h2
-rw-r--r--include/pokemon_icon.h1
-rw-r--r--include/quest_log.h5
-rw-r--r--include/reset_save_heap.h13
-rw-r--r--include/save_location.h13
-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--include/wild_encounter.h3
-rw-r--r--ld_script.txt28
-rw-r--r--src/bag.c10
-rw-r--r--src/battle_ai_script_commands.c328
-rw-r--r--src/bg.c188
-rw-r--r--src/daycare.c8
-rw-r--r--src/decompress.c662
-rw-r--r--src/dma3_manager.c413
-rw-r--r--src/fieldmap.c4
-rw-r--r--src/fldeff_dig.c48
-rw-r--r--src/fldeff_poison.c39
-rw-r--r--src/fldeff_rocksmash.c137
-rw-r--r--src/fldeff_softboiled.c23
-rw-r--r--src/fldeff_strength.c47
-rw-r--r--src/fldeff_sweetscent.c101
-rw-r--r--src/fldeff_teleport.c3
-rw-r--r--src/hof_pc.c53
-rw-r--r--src/item_menu_icons.c4
-rw-r--r--src/item_pc.c40
-rw-r--r--src/item_use.c7
-rw-r--r--src/load_save.c11
-rw-r--r--src/mail_data.c186
-rw-r--r--src/map_obj_lock.c6
-rw-r--r--src/menu2.c2
-rw-r--r--src/mevent_8145654.c10
-rw-r--r--src/multiboot.c416
-rw-r--r--src/new_menu_helpers.c767
-rw-r--r--src/oak_speech.c32
-rw-r--r--src/play_time.c65
-rw-r--r--src/quest_log.c22
-rw-r--r--src/quest_log_8150454.c4
-rw-r--r--src/reset_save_heap.c29
-rw-r--r--src/save_location.c108
-rw-r--r--src/scrcmd.c10
-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.c68
-rw-r--r--src/trainer_pokemon_sprites.c4
-rw-r--r--src/unk_8159F40.c2
-rw-r--r--src/unk_815C980.c2
-rw-r--r--src/unk_815F138.c2
-rw-r--r--src/window.c736
-rw-r--r--sym_bss.txt9
-rw-r--r--sym_ewram.txt18
164 files changed, 3909 insertions, 8954 deletions
diff --git a/.gitignore b/.gitignore
index 7029feac1..e3cb43d69 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,5 +42,5 @@ build/
*.DS_Store
*.pl
*.bak
-src/data/items.h # Autogenerated by jsonproc
+src/data/items.h
tools/br_ips/{br_ips,ips_patch}{,.exe}
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 87cb0e750..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
@@ -1197,7 +1197,7 @@ sub_800FAE0: @ 800FAE0
ldr r0, _0800FB8C @ =gBattle_BG2_Y
strh r1, [r0]
ldr r0, _0800FB90 @ =gUnknown_8248318
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0800FC26
.align 2, 0
_0800FB64: .4byte gBattleTypeFlags
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index 7e698830f..9aa80db64 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -483,11 +483,11 @@ ScriptCmd_loadspritegfx: @ 8072868
lsls r5, r4, 3
ldr r0, _080728B8 @ =gUnknown_8399388
adds r0, r5, r0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080728BC @ =gUnknown_8399C90
adds r5, r0
adds r0, r5, 0
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r0, [r6]
adds r0, 0x2
str r0, [r6]
diff --git a/asm/battle_anim_special.s b/asm/battle_anim_special.s
index 704a1e9a7..02a1216c6 100644
--- a/asm/battle_anim_special.s
+++ b/asm/battle_anim_special.s
@@ -3264,10 +3264,10 @@ sub_80F05B4: @ 80F05B4
cmp r0, r1
bne _080F05DA
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080F05E8 @ =gUnknown_840BFA8
adds r0, r5, r0
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
_080F05DA:
pop {r4,r5}
pop {r0}
@@ -5514,9 +5514,9 @@ _080F177E:
cmp r0, r7
bne _080F179E
ldr r0, _080F17E8 @ =gUnknown_83AD350
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080F17EC @ =gUnknown_83ADC58
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
_080F179E:
ldr r5, _080F17F0 @ =sub_80F181C
adds r0, r5, 0
@@ -5941,9 +5941,9 @@ sub_80F1AE0: @ 80F1AE0
lsls r4, 24
lsrs r4, 24
ldr r0, _080F1B08 @ =gUnknown_83AD470
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080F1B0C @ =gUnknown_83ADD78
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r0, _080F1B10 @ =0x0000281d
bl IndexOfSpritePaletteTag
adds r0, r4, 0
diff --git a/asm/battle_anim_status_effects.s b/asm/battle_anim_status_effects.s
index 5530fd869..b1da74298 100644
--- a/asm/battle_anim_status_effects.s
+++ b/asm/battle_anim_status_effects.s
@@ -26,9 +26,9 @@ sub_8078178: @ 8078178
lsrs r0, 24
mov r8, r0
ldr r0, _08078224 @ =gUnknown_83AD048
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _08078228 @ =gUnknown_83AD950
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r1, _0807822C @ =gTasks
mov r2, r8
lsls r0, r2, 2
diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s
index efbd89e9e..ba54bafbb 100644
--- a/asm/battle_gfx_sfx_util.s
+++ b/asm/battle_gfx_sfx_util.s
@@ -975,7 +975,7 @@ _08034548:
ldr r1, [r1]
adds r2, r5, 0
adds r3, r4, 0
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
_08034562:
mov r2, r8
lsls r1, r2, 4
@@ -1184,7 +1184,7 @@ sub_80346C4: @ 80346C4
ldr r0, _0803474C @ =gTrainerFrontPicPaletteTable
adds r5, r0
adds r0, r5, 0
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
add sp, 0x8
pop {r3}
mov r8, r3
@@ -1262,9 +1262,9 @@ sub_80347A8: @ 80347A8
cmp r0, 0
bne _080347E0
ldr r0, _080347D8 @ =gUnknown_8260208
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080347DC @ =gUnknown_8260210
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
movs r5, 0x2
b _08034802
.align 2, 0
@@ -1274,16 +1274,16 @@ _080347DC: .4byte gUnknown_8260210
_080347E0:
ldr r4, _08034828 @ =gUnknown_8260218
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
adds r4, 0x8
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r4, _0803482C @ =gUnknown_8260228
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
adds r4, 0x8
adds r0, r4, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
movs r5, 0x4
_08034802:
movs r4, 0
@@ -1296,7 +1296,7 @@ _0803480C:
ldrb r0, [r0]
lsls r0, 3
adds r0, r6
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -1349,14 +1349,14 @@ _08034864:
cmp r0, 0
beq _08034890
ldr r0, _0803488C @ =gUnknown_8260238
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_08034888: .4byte gBattleTypeFlags
_0803488C: .4byte gUnknown_8260238
_08034890:
ldr r0, _08034898 @ =gUnknown_8260208
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_08034898: .4byte gUnknown_8260208
@@ -1364,7 +1364,7 @@ _0803489C:
cmp r4, 0x3
bne _080348AC
ldr r0, _080348A8 @ =gUnknown_8260210
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_080348A8: .4byte gUnknown_8260210
@@ -1388,7 +1388,7 @@ _080348CC:
cmp r4, 0x2
bne _080348DC
ldr r0, _080348D8 @ =gUnknown_8260218
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_080348D8: .4byte gUnknown_8260218
@@ -1396,7 +1396,7 @@ _080348DC:
cmp r4, 0x3
bne _080348EC
ldr r0, _080348E8 @ =gUnknown_8260220
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_080348E8: .4byte gUnknown_8260220
@@ -1404,7 +1404,7 @@ _080348EC:
cmp r4, 0x4
bne _080348FC
ldr r0, _080348F8 @ =gUnknown_8260228
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_080348F8: .4byte gUnknown_8260228
@@ -1412,7 +1412,7 @@ _080348FC:
cmp r4, 0x5
bne _0803490C
ldr r0, _08034908 @ =gUnknown_8260230
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_08034908: .4byte gUnknown_8260230
@@ -1449,7 +1449,7 @@ _08034944:
lsls r0, 3
ldr r1, _08034954 @ =gUnknown_8260240
adds r0, r1
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
b _0803495A
.align 2, 0
_08034950: .4byte gUnknown_2023BD6
@@ -2911,7 +2911,7 @@ LoadAndCreateEnemyShadowSprites: @ 8035538
mov r7, r8
push {r7}
ldr r0, _08035614 @ =gUnknown_8250A0C
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
movs r0, 0x1
bl GetBattlerAtPosition
adds r5, r0, 0
diff --git a/asm/battle_interface.s b/asm/battle_interface.s
index 393eb4ee6..fa06f684b 100644
--- a/asm/battle_interface.s
+++ b/asm/battle_interface.s
@@ -2381,7 +2381,7 @@ _08048DC4:
bge _08048DB0
mov r6, r10
adds r0, r4, r6
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _08048E4C @ =gUnknown_826049C
adds r0, r4, r0
bl LoadSpriteSheet
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index 146e4a3c9..a13c1a418 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -25,7 +25,7 @@ sub_807F620: @ 807F620
.align 2, 0
_0807F640: .4byte gTasks+0x8
_0807F644:
- bl c3_80A0DD8_is_running
+ bl FldEffPoison_IsActive
cmp r0, 0
bne _0807F686
bl sub_812B478
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index cf761a220..48a5836ed 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -137,7 +137,7 @@ _080D09AC: .4byte gTasks
Transition_Phase1: @ 80D09B0
push {r4,lr}
adds r4, r0, 0
- bl sub_807B05C
+ bl SetWeatherScreenFadeOut
ldr r0, _080D09DC @ =gPlttBufferFaded
ldr r1, _080D09E0 @ =gPlttBufferUnfaded
ldr r2, _080D09E4 @ =0x04000100
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 f447c848f..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
@@ -2845,7 +2845,7 @@ sub_814ECE0: @ 814ECE0
_0814ECF6:
lsls r0, r5, 3
adds r0, r4
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index 67d189a12..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
@@ -498,7 +498,7 @@ _0813D170: .4byte gSaveBlock2Ptr
_0813D174: .4byte gUnknown_8E85BF4
_0813D178:
ldr r0, _0813D18C @ =gUnknown_84644A8
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
_0813D17E:
ldr r1, [r5]
adds r1, r6
@@ -510,7 +510,7 @@ _0813D17E:
_0813D18C: .4byte gUnknown_84644A8
_0813D190:
ldr r0, _0813D1A8 @ =gUnknown_84644B0
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
ldr r0, _0813D1AC @ =gUnknown_203F36C
ldr r0, [r0]
ldr r1, _0813D1B0 @ =0x0000080c
@@ -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/braille_text.s b/asm/braille_text.s
deleted file mode 100644
index 2428f2984..000000000
--- a/asm/braille_text.s
+++ /dev/null
@@ -1,8 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- .align 2, 0 @ Don't pad with nop.
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/credits.s b/asm/credits.s
index 6317b95f7..e52275e77 100644
--- a/asm/credits.s
+++ b/asm/credits.s
@@ -1987,7 +1987,7 @@ _080F49D8:
ands r1, r3
orrs r1, r2
str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4A1C @ =gUnknown_8410E10
b _080F4A36
.align 2, 0
@@ -2005,7 +2005,7 @@ _080F4A20:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x2]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4A48 @ =gUnknown_8411BF8
_080F4A36:
movs r1, 0xF8
@@ -2025,7 +2025,7 @@ _080F4A4C:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x2]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4ADC @ =gUnknown_84129A0
movs r1, 0xF8
lsls r1, 1
@@ -2107,7 +2107,7 @@ _080F4AFE:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x8]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4B1C @ =gUnknown_8413318
b _080F4B8A
.align 2, 0
@@ -2122,7 +2122,7 @@ _080F4B20:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x8]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4B4C @ =gUnknown_8413318
movs r1, 0xF0
lsls r1, 1
@@ -2144,7 +2144,7 @@ _080F4B54:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x8]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4B70 @ =gUnknown_8413854
b _080F4B8A
.align 2, 0
@@ -2159,7 +2159,7 @@ _080F4B74:
strh r1, [r0, 0x4]
ldrh r1, [r6, 0x8]
strh r1, [r0, 0x6]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F4BF0 @ =gUnknown_8413D98
_080F4B8A:
movs r1, 0xF0
diff --git a/asm/decompress.s b/asm/decompress.s
deleted file mode 100644
index cc38e0df5..000000000
--- a/asm/decompress.s
+++ /dev/null
@@ -1,887 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start LZDecompressWram
-LZDecompressWram: @ 800EBB4
- push {lr}
- bl LZ77UnCompWram
- pop {r0}
- bx r0
- thumb_func_end LZDecompressWram
-
- thumb_func_start LZDecompressVram
-LZDecompressVram: @ 800EBC0
- push {lr}
- bl LZ77UnCompVram
- pop {r0}
- bx r0
- thumb_func_end LZDecompressVram
-
- thumb_func_start LoadCompressedObjectPic
-LoadCompressedObjectPic: @ 800EBCC
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4]
- ldr r5, _0800EBFC @ =gDecompressionBuffer
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0800EBFC: .4byte gDecompressionBuffer
- thumb_func_end LoadCompressedObjectPic
-
- thumb_func_start LoadCompressedObjectPicOverrideBuffer
-LoadCompressedObjectPicOverrideBuffer: @ 800EC00
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end LoadCompressedObjectPicOverrideBuffer
-
- thumb_func_start LoadCompressedObjectPalette
-LoadCompressedObjectPalette: @ 800EC28
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5]
- ldr r4, _0800EC54 @ =gDecompressionBuffer
- adds r1, r4, 0
- bl LZ77UnCompWram
- str r4, [sp]
- ldrh r2, [r5, 0x4]
- ldr r1, _0800EC58 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC54: .4byte gDecompressionBuffer
-_0800EC58: .4byte 0xffff0000
- thumb_func_end LoadCompressedObjectPalette
-
- thumb_func_start LoadCompressedObjectPaletteOverrideBuffer
-LoadCompressedObjectPaletteOverrideBuffer: @ 800EC5C
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, [r5]
- bl LZ77UnCompWram
- str r4, [sp]
- ldrh r2, [r5, 0x4]
- ldr r1, _0800EC88 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC88: .4byte 0xffff0000
- thumb_func_end LoadCompressedObjectPaletteOverrideBuffer
-
- thumb_func_start DecompressPicFromTable
-DecompressPicFromTable: @ 800EC8C
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _0800ECAC
- ldr r0, _0800ECA8 @ =gMonFrontPicTable
- ldr r0, [r0]
- bl LZ77UnCompWram
- b _0800ECB4
- .align 2, 0
-_0800ECA8: .4byte gMonFrontPicTable
-_0800ECAC:
- ldr r0, [r3]
- adds r1, r4, 0
- bl LZ77UnCompWram
-_0800ECB4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_800EDAC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end DecompressPicFromTable
-
- thumb_func_start sub_800ECC4
-sub_800ECC4: @ 800ECC4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r0, r2, 3
- ldr r1, _0800ECEC @ =gMonFrontPicTable
- adds r0, r1
- movs r1, 0
- cmp r4, r0
- bne _0800ECDA
- movs r1, 0x1
-_0800ECDA:
- str r1, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- bl LoadSpecialPokePic
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800ECEC: .4byte gMonFrontPicTable
- thumb_func_end sub_800ECC4
-
- thumb_func_start LoadSpecialPokePic
-LoadSpecialPokePic: @ 800ECF0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- adds r7, r2, 0
- adds r5, r3, 0
- ldr r0, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r7, 0xC9
- bne _0800ED6C
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r5
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r5
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r5
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r5
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0800ED3E
- movs r1, 0xC9
- b _0800ED48
-_0800ED3E:
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r1, r2
- lsls r0, 16
- lsrs r1, r0, 16
-_0800ED48:
- mov r0, r8
- cmp r0, 0
- bne _0800ED5C
- ldr r0, _0800ED58 @ =gMonBackPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800ED78
- .align 2, 0
-_0800ED58: .4byte gMonBackPicTable
-_0800ED5C:
- ldr r0, _0800ED68 @ =gMonFrontPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800ED78
- .align 2, 0
-_0800ED68: .4byte gMonFrontPicTable
-_0800ED6C:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- ble _0800ED84
- ldr r0, _0800ED80 @ =gMonFrontPicTable
- ldr r0, [r0]
-_0800ED78:
- adds r1, r4, 0
- bl LZ77UnCompWram
- b _0800ED8C
- .align 2, 0
-_0800ED80: .4byte gMonFrontPicTable
-_0800ED84:
- ldr r0, [r6]
- adds r1, r4, 0
- bl LZ77UnCompWram
-_0800ED8C:
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_800EDAC
- lsls r0, r7, 16
- lsrs r0, 16
- adds r1, r5, 0
- adds r2, r4, 0
- mov r3, r8
- bl DrawSpindaSpots
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end LoadSpecialPokePic
-
- thumb_func_start sub_800EDAC
-sub_800EDAC: @ 800EDAC
- push {lr}
- adds r3, r0, 0
- movs r0, 0xCD
- lsls r0, 1
- cmp r1, r0
- bne _0800EDC6
- movs r1, 0x80
- lsls r1, 4
- adds r0, r3, r1
- ldr r2, _0800EDCC @ =0x04000200
- adds r1, r3, 0
- bl CpuSet
-_0800EDC6:
- pop {r0}
- bx r0
- .align 2, 0
-_0800EDCC: .4byte 0x04000200
- thumb_func_end sub_800EDAC
-
- thumb_func_start sub_800EDD0
-sub_800EDD0: @ 800EDD0
- push {lr}
- ldr r0, [r0]
- bl LZ77UnCompWram
- pop {r0}
- bx r0
- thumb_func_end sub_800EDD0
-
- thumb_func_start sub_800EDDC
-sub_800EDDC: @ 800EDDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- mov r9, r0
- str r1, [sp]
- str r2, [sp, 0x4]
- adds r5, r3, 0
- movs r0, 0x1
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- bne _0800EDFC
- b _0800EF94
-_0800EDFC:
- asrs r0, r1, 1
- adds r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- movs r0, 0
- ldr r2, [sp]
- cmp r0, r2
- blt _0800EE10
- b _0800F024
-_0800EE10:
- movs r4, 0x8
- subs r1, r4, r1
- str r1, [sp, 0x10]
-_0800EE16:
- movs r7, 0
- adds r0, 0x1
- str r0, [sp, 0x14]
- ldr r0, [sp, 0x10]
- cmp r7, r0
- bge _0800EE92
- ldr r1, [sp, 0x8]
- lsls r1, 8
- str r1, [sp, 0x18]
- movs r2, 0
- mov r10, r2
- mov r0, r9
- movs r4, 0x8
- subs r0, r4, r0
- str r0, [sp, 0xC]
-_0800EE34:
- movs r3, 0
- asrs r0, r7, 1
- adds r1, r7, 0
- movs r2, 0x1
- ands r1, r2
- str r1, [sp, 0x20]
- lsls r0, 8
- mov r8, r0
- mov r12, r5
-_0800EE46:
- lsls r1, r3, 5
- ldr r4, [sp, 0x18]
- adds r0, r5, r4
- adds r0, r1
- mov r1, r8
- adds r2, r0, r1
- mov r1, r12
- add r1, r8
- movs r6, 0xF
-_0800EE58:
- ldr r4, [sp, 0x20]
- cmp r4, 0
- bne _0800EE68
- strb r4, [r1]
- add r4, sp, 0x20
- ldrb r4, [r4]
- strb r4, [r2, 0x10]
- b _0800EE76
-_0800EE68:
- mov r0, r10
- strb r0, [r1, 0x10]
- movs r4, 0x80
- lsls r4, 1
- adds r4, r2, r4
- str r4, [sp, 0x1C]
- strb r0, [r4]
-_0800EE76:
- adds r2, 0x1
- adds r1, 0x1
- subs r6, 0x1
- cmp r6, 0
- bge _0800EE58
- movs r0, 0x20
- add r12, r0
- adds r3, 0x1
- cmp r3, 0x7
- ble _0800EE46
- adds r7, 0x1
- ldr r1, [sp, 0xC]
- cmp r7, r1
- blt _0800EE34
-_0800EE92:
- movs r7, 0
- movs r2, 0
-_0800EE96:
- movs r6, 0
- adds r4, r7, 0x1
- mov r8, r4
- lsls r4, r7, 5
-_0800EE9E:
- adds r0, r6, 0x1
- mov r10, r0
- lsls r1, r6, 8
- adds r0, r1, 0
- adds r0, 0xC0
- adds r0, r5, r0
- adds r0, r4
- adds r1, r5, r1
- adds r1, r4
- movs r3, 0x1F
-_0800EEB2:
- strb r2, [r1]
- strb r2, [r0]
- adds r0, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800EEB2
- mov r6, r10
- cmp r6, 0x7
- ble _0800EE9E
- mov r7, r8
- cmp r7, 0x1
- ble _0800EE96
- mov r1, r9
- cmp r1, 0x5
- bne _0800EED8
- movs r2, 0x90
- lsls r2, 1
- adds r5, r2
-_0800EED8:
- movs r7, 0
- cmp r7, r9
- bge _0800EF6E
-_0800EEDE:
- movs r3, 0
- adds r7, 0x1
- mov r8, r7
- cmp r3, r9
- bge _0800EF4E
-_0800EEE8:
- adds r3, 0x1
- mov r10, r3
- ldr r4, [sp, 0x4]
- adds r4, 0x20
- adds r7, r5, 0
- adds r7, 0x20
- movs r0, 0x12
- adds r0, r5
- mov r12, r0
- ldr r2, [sp, 0x4]
- adds r3, r5, 0
- movs r6, 0x3
-_0800EF00:
- ldrb r0, [r2]
- mov r1, r12
- strb r0, [r1]
- ldrb r0, [r2, 0x1]
- strb r0, [r1, 0x1]
- ldrb r0, [r2, 0x2]
- strb r0, [r1, 0x1E]
- ldrb r0, [r2, 0x3]
- strb r0, [r1, 0x1F]
- movs r0, 0x81
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r2, 0x10]
- strb r0, [r1]
- ldr r0, _0800EF58 @ =0x00000103
- adds r1, r3, r0
- ldrb r0, [r2, 0x11]
- strb r0, [r1]
- movs r0, 0x90
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r2, 0x12]
- strb r0, [r1]
- ldr r0, _0800EF5C @ =0x00000121
- adds r1, r3, r0
- ldrb r0, [r2, 0x13]
- strb r0, [r1]
- movs r1, 0x4
- add r12, r1
- adds r2, 0x4
- adds r3, 0x4
- subs r6, 0x1
- cmp r6, 0
- bge _0800EF00
- str r4, [sp, 0x4]
- adds r5, r7, 0
- mov r3, r10
- cmp r3, r9
- blt _0800EEE8
-_0800EF4E:
- mov r2, r9
- cmp r2, 0x7
- bne _0800EF60
- adds r5, 0x20
- b _0800EF68
- .align 2, 0
-_0800EF58: .4byte 0x00000103
-_0800EF5C: .4byte 0x00000121
-_0800EF60:
- mov r4, r9
- cmp r4, 0x5
- bne _0800EF68
- adds r5, 0x60
-_0800EF68:
- mov r7, r8
- cmp r7, r9
- blt _0800EEDE
-_0800EF6E:
- mov r0, r9
- cmp r0, 0x7
- bne _0800EF7C
- movs r1, 0x80
- lsls r1, 1
- adds r5, r1
- b _0800EF88
-_0800EF7C:
- mov r2, r9
- cmp r2, 0x5
- bne _0800EF88
- movs r4, 0xF0
- lsls r4, 1
- adds r5, r4
-_0800EF88:
- ldr r0, [sp, 0x14]
- ldr r1, [sp]
- cmp r0, r1
- bge _0800EF92
- b _0800EE16
-_0800EF92:
- b _0800F024
-_0800EF94:
- movs r6, 0
- ldr r2, [sp]
- cmp r6, r2
- bge _0800F024
-_0800EF9C:
- adds r6, 0x1
- mov r10, r6
- mov r4, r9
- cmp r4, 0x6
- bne _0800EFB4
- movs r0, 0
- movs r3, 0xFF
-_0800EFAA:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800EFAA
-_0800EFB4:
- movs r7, 0
- cmp r7, r9
- bge _0800F008
-_0800EFBA:
- adds r7, 0x1
- mov r8, r7
- mov r1, r9
- lsls r0, r1, 5
- cmp r1, 0x6
- bne _0800EFD4
- movs r1, 0
- movs r3, 0x1F
-_0800EFCA:
- strb r1, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800EFCA
-_0800EFD4:
- adds r1, r0, 0
- cmp r1, 0
- ble _0800EFEE
- adds r3, r1, 0
-_0800EFDC:
- ldr r2, [sp, 0x4]
- ldrb r0, [r2]
- strb r0, [r5]
- adds r2, 0x1
- str r2, [sp, 0x4]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _0800EFDC
-_0800EFEE:
- mov r4, r9
- cmp r4, 0x6
- bne _0800F002
- movs r0, 0
- movs r3, 0x1F
-_0800EFF8:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800EFF8
-_0800F002:
- mov r7, r8
- cmp r7, r9
- blt _0800EFBA
-_0800F008:
- mov r0, r9
- cmp r0, 0x6
- bne _0800F01C
- movs r0, 0
- movs r3, 0xFF
-_0800F012:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800F012
-_0800F01C:
- mov r6, r10
- ldr r1, [sp]
- cmp r6, r1
- blt _0800EF9C
-_0800F024:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_800EDDC
-
- thumb_func_start sub_800F034
-sub_800F034: @ 800F034
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4]
- ldr r0, [r0]
- lsrs r0, 8
- bl AllocZeroed
- adds r5, r0, 0
- cmp r5, 0
- beq _0800F06E
- ldr r0, [r4]
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0
- bl Free
- movs r0, 0
- b _0800F070
-_0800F06E:
- movs r0, 0x1
-_0800F070:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_800F034
-
- thumb_func_start sub_800F078
-sub_800F078: @ 800F078
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4]
- ldr r0, [r0]
- lsrs r0, 8
- bl AllocZeroed
- adds r5, r0, 0
- cmp r5, 0
- beq _0800F0B8
- ldr r0, [r4]
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r2, [r4, 0x4]
- ldr r1, _0800F0B4 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- adds r0, r5, 0
- bl Free
- movs r0, 0
- b _0800F0BA
- .align 2, 0
-_0800F0B4: .4byte 0xffff0000
-_0800F0B8:
- movs r0, 0x1
-_0800F0BA:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_800F078
-
- thumb_func_start GetDecompressedDataSize
-GetDecompressedDataSize: @ 800F0C4
- sub sp, 0x4
- mov r3, sp
- ldrb r2, [r0, 0x1]
- mov r1, sp
- strb r2, [r1]
- ldrb r1, [r0, 0x2]
- strb r1, [r3, 0x1]
- ldrb r0, [r0, 0x3]
- strb r0, [r3, 0x2]
- movs r0, 0
- strb r0, [r3, 0x3]
- ldr r0, [sp]
- add sp, 0x4
- bx lr
- thumb_func_end GetDecompressedDataSize
-
- thumb_func_start DecompressPicFromTable_DontHandleDeoxys
-DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0
- push {lr}
- adds r3, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r2, r0
- ble _0800F0FC
- ldr r0, _0800F0F8 @ =gMonFrontPicTable
- ldr r0, [r0]
- bl LZ77UnCompWram
- b _0800F102
- .align 2, 0
-_0800F0F8: .4byte gMonFrontPicTable
-_0800F0FC:
- ldr r0, [r3]
- bl LZ77UnCompWram
-_0800F102:
- pop {r0}
- bx r0
- thumb_func_end DecompressPicFromTable_DontHandleDeoxys
-
- thumb_func_start HandleLoadSpecialPokePic_DontHandleDeoxys
-HandleLoadSpecialPokePic_DontHandleDeoxys: @ 800F108
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r0, r2, 3
- ldr r1, _0800F130 @ =gMonFrontPicTable
- adds r0, r1
- movs r1, 0
- cmp r4, r0
- bne _0800F11E
- movs r1, 0x1
-_0800F11E:
- str r1, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- bl LoadSpecialPokePic_DontHandleDeoxys
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F130: .4byte gMonFrontPicTable
- thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys
-
- thumb_func_start LoadSpecialPokePic_DontHandleDeoxys
-LoadSpecialPokePic_DontHandleDeoxys: @ 800F134
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- adds r4, r3, 0
- ldr r0, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r7, 0xC9
- bne _0800F1B0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r4
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r4
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r4
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r4
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0800F182
- movs r1, 0xC9
- b _0800F18C
-_0800F182:
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r1, r2
- lsls r0, 16
- lsrs r1, r0, 16
-_0800F18C:
- mov r0, r8
- cmp r0, 0
- bne _0800F1A0
- ldr r0, _0800F19C @ =gMonBackPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800F1BC
- .align 2, 0
-_0800F19C: .4byte gMonBackPicTable
-_0800F1A0:
- ldr r0, _0800F1AC @ =gMonFrontPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800F1BC
- .align 2, 0
-_0800F1AC: .4byte gMonFrontPicTable
-_0800F1B0:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- ble _0800F1C8
- ldr r0, _0800F1C4 @ =gMonFrontPicTable
- ldr r0, [r0]
-_0800F1BC:
- adds r1, r5, 0
- bl LZ77UnCompWram
- b _0800F1D0
- .align 2, 0
-_0800F1C4: .4byte gMonFrontPicTable
-_0800F1C8:
- ldr r0, [r6]
- adds r1, r5, 0
- bl LZ77UnCompWram
-_0800F1D0:
- lsls r0, r7, 16
- lsrs r0, 16
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl DrawSpindaSpots
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end LoadSpecialPokePic_DontHandleDeoxys
-
- .align 2, 0 @ Don't pad with nop.
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_graphics.s b/asm/evolution_graphics.s
index 1dafc92ea..64edbdf7a 100644
--- a/asm/evolution_graphics.s
+++ b/asm/evolution_graphics.s
@@ -573,7 +573,7 @@ _080F5D80: .4byte SpriteCB_PostEvoSparkleSet2
LoadEvoSparkleSpriteAndPal: @ 80F5D84
push {lr}
ldr r0, _080F5D98 @ =gUnknown_841EEC4
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _080F5D9C @ =gUnknown_841EED4
bl LoadSpritePalettes
pop {r0}
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_control_avatar.s b/asm/field_control_avatar.s
index 67e7e7d5a..c6476053a 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -320,7 +320,7 @@ sub_806CAC8: @ 806CAC8
sub sp, 0x8
adds r5, r0, 0
bl sub_8069A54
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r6, r0, 24
mov r4, sp
@@ -629,7 +629,7 @@ _0806CD54:
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _0806CDC0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x2]
@@ -1033,7 +1033,7 @@ _0806D078:
lsls r0, 2
ldr r1, _0806D098 @ =gMapObjects
adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
bne _0806D0A0
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 0fa36ce46..3655d2830 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -608,12 +608,12 @@ CreateTrainerSprite: @ 8083858
add r8, r4
mov r0, r8
adds r1, r7, 0
- bl LoadCompressedObjectPaletteOverrideBuffer
+ bl LoadCompressedSpritePaletteOverrideBuffer
ldr r0, _080838E4 @ =gTrainerFrontPicTable
adds r4, r0
adds r0, r4, 0
adds r1, r7, 0
- bl LoadCompressedObjectPicOverrideBuffer
+ bl LoadCompressedSpriteSheetOverrideBuffer
mov r1, sp
ldrh r0, [r4, 0x6]
movs r2, 0
@@ -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
@@ -2235,7 +2235,7 @@ sub_80844BC: @ 80844BC
strb r1, [r0, 0x1]
movs r0, 0x1
strb r0, [r6, 0x6]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063EB8
@@ -2243,7 +2243,7 @@ sub_80844BC: @ 80844BC
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
adds r3, r4, 0
adds r3, 0x42
ldrb r0, [r3]
@@ -2653,17 +2653,17 @@ sub_8084820: @ 8084820
ldr r1, _0808488C @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808484A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808487E
_0808484A:
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063EB8
@@ -2671,7 +2671,7 @@ _0808484A:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
movs r1, 0
@@ -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
@@ -2952,7 +2952,7 @@ sub_8084A5C: @ 8084A5C
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
mov r4, sp
adds r4, 0x2
mov r0, sp
@@ -3192,7 +3192,7 @@ sub_8084C3C: @ 8084C3C
ldr r1, _08084C98 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08084C8A
@@ -3205,7 +3205,7 @@ sub_8084C3C: @ 8084C3C
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldr r0, _08084C9C @ =sub_8084A24
bl FindTaskIdByFunc
lsls r0, 24
@@ -3317,12 +3317,12 @@ waterfall_1_do_anim_probably: @ 8084D44
adds r5, r1, 0
bl ScriptContext2_Enable
adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _08084D74
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
ldr r1, _08084D7C @ =gFieldEffectArguments
movs r2, 0xA
ldrsh r0, [r4, r2]
@@ -3374,7 +3374,7 @@ sub_8084DA4: @ 8084DA4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -3390,7 +3390,7 @@ sub_8084DCC: @ 8084DCC
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _08084DE2
@@ -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
@@ -4070,7 +4070,7 @@ sub_80852C0: @ 80852C0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
_08085308:
movs r0, 0
pop {r4}
@@ -4084,7 +4084,7 @@ _08085310: .4byte gSprites
sub_8085314: @ 8085314
push {lr}
adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808533E
@@ -4266,7 +4266,7 @@ sub_8085470: @ 8085470
adds r4, r1, 0
adds r6, r2, 0
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080854E4
@@ -4311,7 +4311,7 @@ _080854C4:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x21
bl PlaySE
_080854E4:
@@ -4527,7 +4527,7 @@ sub_808566C: @ 808566C
strh r0, [r4, 0x8]
movs r0, 0x40
strh r0, [r4, 0x22]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
@@ -4641,12 +4641,12 @@ sub_808576C: @ 808576C
adds r4, r0, 0
adds r6, r1, 0
adds r5, r2, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808578A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080857E4
@@ -4673,7 +4673,7 @@ _0808579E:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r1, [r5]
movs r2, 0
ldrsh r0, [r5, r2]
@@ -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
@@ -5031,7 +5031,7 @@ sub_8085A54: @ 8085A54
beq _08085A78
movs r0, 0x28
bl PlaySE
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -5125,7 +5125,7 @@ _08085B10:
cmp r1, r0
bne _08085B58
adds r0, r6, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5200,7 +5200,7 @@ sub_8085BA8: @ 8085BA8
bl ScriptContext2_Enable
bl player_bitmagic
bl CameraObjectReset2
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -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
@@ -5540,7 +5540,7 @@ sub_8085E0C: @ 8085E0C
ldrb r0, [r2]
lsrs r0, 6
strh r0, [r6, 0x24]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -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
@@ -7050,12 +7050,12 @@ sub_8086A20: @ 8086A20
ldr r1, _08086A68 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08086A4A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086A5C
@@ -7063,7 +7063,7 @@ _08086A4A:
bl sub_805CB70
adds r0, r4, 0
movs r1, 0x45
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -7087,7 +7087,7 @@ sub_8086A6C: @ 8086A6C
lsls r0, 2
ldr r1, _08086AAC @ =gMapObjects
adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _08086AA2
@@ -7135,9 +7135,9 @@ sub_8086AB4: @ 8086AB4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl sub_80641C0
@@ -7145,7 +7145,7 @@ sub_8086AB4: @ 8086AB4
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldr r1, _08086B2C @ =gFieldEffectArguments
movs r2, 0xA
ldrsh r0, [r6, r2]
@@ -7182,7 +7182,7 @@ sub_8086B30: @ 8086B30
ldr r1, _08086BA0 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086B96
@@ -7199,7 +7199,7 @@ sub_8086B30: @ 8086B30
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrb r0, [r4, 0x1A]
movs r1, 0x1
bl sub_80DC44C
@@ -7302,12 +7302,12 @@ sub_8086C24: @ 8086C24
ldr r1, _08086C6C @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08086C4E
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086C60
@@ -7315,7 +7315,7 @@ _08086C4E:
bl sub_805CBE8
adds r0, r4, 0
movs r1, 0x45
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -7340,7 +7340,7 @@ sub_8086C70: @ 8086C70
ldr r1, _08086CA0 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086CEE
@@ -7366,7 +7366,7 @@ _08086CAE:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
b _08086CD2
_08086CC0:
movs r0, 0
@@ -7375,7 +7375,7 @@ _08086CC0:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
_08086CD2:
ldrb r0, [r4, 0x18]
lsls r0, 28
@@ -7405,7 +7405,7 @@ sub_8086CF4: @ 8086CF4
lsls r0, 2
ldr r1, _08086D30 @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086D26
@@ -7599,12 +7599,12 @@ sub_8086E70: @ 8086E70
ldr r1, _08086EC4 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08086E9A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086EB8
@@ -7617,7 +7617,7 @@ _08086E9A:
bl sub_805CB70
adds r0, r4, 0
movs r1, 0x45
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -7641,7 +7641,7 @@ sub_8086EC8: @ 8086EC8
lsls r0, 2
ldr r1, _08086F04 @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086EF8
@@ -7732,7 +7732,7 @@ sub_8086F64: @ 8086F64
ldr r1, _08086FA4 @ =gMapObjects
adds r0, r1
movs r1, 0x2
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
_08086F98:
pop {r4}
pop {r0}
@@ -7765,7 +7765,7 @@ sub_8086FA8: @ 8086FA8
bne _08086FEC
_08086FCE:
adds r0, r2, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08086FEC
@@ -7809,7 +7809,7 @@ sub_8086FFC: @ 8086FFC
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -7824,7 +7824,7 @@ sub_8086FFC: @ 8086FFC
strb r0, [r4, 0x1]
adds r0, r4, 0
movs r1, 0x54
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -8433,12 +8433,12 @@ sub_80874C8: @ 80874C8
ldr r1, _080875B8 @ =gMapObjects
adds r5, r0, r1
adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080874F2
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080875AE
@@ -8468,7 +8468,7 @@ _0808751A:
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
bl CameraObjectReset2
adds r0, r5, 0
movs r1, 0x3
@@ -8688,7 +8688,7 @@ sub_8087698: @ 8087698
bl sub_805CB70
adds r0, r5, 0
movs r1, 0x45
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r6, 0x8]
adds r0, 0x1
strh r0, [r6, 0x8]
@@ -8713,7 +8713,7 @@ sub_8087710: @ 8087710
lsls r0, 2
ldr r1, _08087744 @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08087738
@@ -8795,7 +8795,7 @@ _080877B4:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
adds r0, r4, 0
movs r1, 0x1
bl FieldObjectTurn
diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s
index ceaaaf7a6..6939ccac0 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
@@ -730,7 +730,7 @@ _0807E0AE:
ldr r1, _0807E0E8 @ =gMapObjects
adds r0, r1
movs r1, 0x10
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x8
strh r0, [r4, 0x8]
b _0807E206
@@ -783,7 +783,7 @@ _0807E10E:
lsls r0, 2
ldr r1, _0807E15C @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
b _0807E1F2
.align 2, 0
_0807E158: .4byte sub_807F204
@@ -807,7 +807,7 @@ _0807E160:
ldr r1, _0807E194 @ =gMapObjects
adds r0, r1
movs r1, 0x10
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x2
strh r0, [r4, 0x8]
b _0807E206
@@ -838,7 +838,7 @@ _0807E198:
lsls r0, 2
ldr r1, _0807E1D8 @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
movs r0, 0x3
strh r0, [r4, 0x8]
b _0807E206
@@ -929,7 +929,7 @@ _0807E25E:
lsls r4, 2
ldr r0, _0807E2A4 @ =gMapObjects
adds r4, r0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063F84
@@ -937,7 +937,7 @@ _0807E25E:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x2
strh r0, [r5, 0x8]
b _0807E2C6
@@ -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
@@ -1744,7 +1744,7 @@ _0807E8AE:
lsls r0, 2
adds r0, r4
movs r1, 0x11
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
movs r0, 0x2
strh r0, [r5, 0x8]
b _0807E976
@@ -1776,7 +1776,7 @@ _0807E8F4:
lsls r0, 2
ldr r1, _0807E93C @ =gMapObjects
adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
movs r0, 0
bl sub_807DCB0
movs r0, 0x3
@@ -1871,12 +1871,12 @@ _0807E9DA:
b _0807EA92
_0807E9E8:
adds r0, r6, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0807EA00
adds r0, r6, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0807EAB0
@@ -2033,7 +2033,7 @@ _0807EB08:
lsrs r0, 7
cmp r0, 0
beq _0807EB4C
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl GetStepInPlaceDelay16AnimId
@@ -2071,7 +2071,7 @@ sub_807EB64: @ 807EB64
lsls r4, 2
ldr r0, _0807EBB8 @ =gMapObjects
adds r4, r0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl GetStepInPlaceDelay16AnimId
@@ -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_map_obj.s b/asm/field_map_obj.s
index 1275f7471..92ef6a6e4 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -2440,8 +2440,8 @@ _0805F058: .4byte gPlayerAvatar
_0805F05C: .4byte gMapObjects
thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId
- thumb_func_start sub_805F060
-sub_805F060: @ 805F060
+ thumb_func_start EventObjectSetGraphicsId
+EventObjectSetGraphicsId: @ 805F060
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2625,7 +2625,7 @@ _0805F1BA:
_0805F1CC: .4byte gSprites
_0805F1D0: .4byte 0x000003ff
_0805F1D4: .4byte 0xfffffc00
- thumb_func_end sub_805F060
+ thumb_func_end EventObjectSetGraphicsId
thumb_func_start FieldObjectSetGraphicsIdByLocalIdAndMap
FieldObjectSetGraphicsIdByLocalIdAndMap: @ 805F1D8
@@ -2652,7 +2652,7 @@ FieldObjectSetGraphicsIdByLocalIdAndMap: @ 805F1D8
ldr r1, _0805F214 @ =gMapObjects
adds r0, r1
adds r1, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
_0805F20C:
add sp, 0x4
pop {r4}
@@ -10353,7 +10353,7 @@ mss_npc_reset_oampriv3_1_unk2_unk3: @ 80628C0
ldrb r0, [r4]
cmp r0, 0
bne _080628D8
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
strb r0, [r4]
_080628D8:
movs r0, 0x1
@@ -13097,8 +13097,8 @@ FieldObjectMoveDestCoords: @ 8063C50
bx r0
thumb_func_end FieldObjectMoveDestCoords
- thumb_func_start FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
-FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 8063C70
+ thumb_func_start FieldObjectIsMovementOverridden
+FieldObjectIsMovementOverridden: @ 8063C70
push {lr}
ldrb r1, [r0]
movs r0, 0x42
@@ -13112,7 +13112,7 @@ _08063C80:
_08063C82:
pop {r1}
bx r1
- thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ thumb_func_end FieldObjectIsMovementOverridden
thumb_func_start FieldObjectIsSpecialAnimActive
FieldObjectIsSpecialAnimActive: @ 8063C88
@@ -13134,8 +13134,8 @@ _08063CA0:
bx r1
thumb_func_end FieldObjectIsSpecialAnimActive
- thumb_func_start sub_8063CA4
-sub_8063CA4: @ 8063CA4
+ thumb_func_start FieldObjectSetHeldMovement
+FieldObjectSetHeldMovement: @ 8063CA4
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
@@ -13146,7 +13146,7 @@ sub_8063CA4: @ 8063CA4
cmp r0, 0x1
beq _08063CC8
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08063CCE
@@ -13180,7 +13180,7 @@ _08063CF4:
bx r1
.align 2, 0
_08063CFC: .4byte gSprites
- thumb_func_end sub_8063CA4
+ thumb_func_end FieldObjectSetHeldMovement
thumb_func_start FieldObjectForceSetSpecialAnim
FieldObjectForceSetSpecialAnim: @ 8063D00
@@ -13191,7 +13191,7 @@ FieldObjectForceSetSpecialAnim: @ 8063D00
bl FieldObjectClearAnimIfSpecialAnimActive
adds r0, r5, 0
adds r1, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
pop {r4,r5}
pop {r0}
bx r0
@@ -13242,8 +13242,8 @@ FieldObjectClearAnim: @ 8063D34
_08063D64: .4byte gSprites
thumb_func_end FieldObjectClearAnim
- thumb_func_start FieldObjectCheckIfSpecialAnimFinishedOrInactive
-FieldObjectCheckIfSpecialAnimFinishedOrInactive: @ 8063D68
+ thumb_func_start FieldObjectCheckHeldMovementStatus
+FieldObjectCheckHeldMovementStatus: @ 8063D68
push {lr}
ldrb r1, [r0]
lsls r0, r1, 25
@@ -13256,13 +13256,13 @@ _08063D76:
_08063D78:
pop {r1}
bx r1
- thumb_func_end FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ thumb_func_end FieldObjectCheckHeldMovementStatus
- thumb_func_start FieldObjectClearAnimIfSpecialAnimFinished
-FieldObjectClearAnimIfSpecialAnimFinished: @ 8063D7C
+ thumb_func_start FieldObjectClearHeldMovementIfFinished
+FieldObjectClearHeldMovementIfFinished: @ 8063D7C
push {r4,r5,lr}
adds r5, r0, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -13276,7 +13276,7 @@ _08063D96:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end FieldObjectClearAnimIfSpecialAnimFinished
+ thumb_func_end FieldObjectClearHeldMovementIfFinished
thumb_func_start FieldObjectGetSpecialAnim
FieldObjectGetSpecialAnim: @ 8063DA0
@@ -14023,7 +14023,7 @@ FieldObjectFaceOppositeDirection: @ 80642C8
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
lsrs r0, 24
pop {r4}
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_player_avatar.s b/asm/field_player_avatar.s
index 5fb0f3dad..c753fb948 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -94,12 +94,12 @@ sub_805B45C: @ 805B45C
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0805B4A6
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _0805B4A6
@@ -845,7 +845,7 @@ _0805B9AC: .4byte gPlayerAvatar
thumb_func_start PlayerNotOnBikeNotMoving
PlayerNotOnBikeNotMoving: @ 805B9B0
push {lr}
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl PlayerFaceDirection
@@ -1631,7 +1631,7 @@ PlayerIsAnimActive: @ 805BF7C
lsls r0, 2
ldr r1, _0805BF9C @ =gMapObjects
adds r0, r1
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -1651,7 +1651,7 @@ PlayerCheckIfAnimFinishedOrInactive: @ 805BFA0
lsls r0, 2
ldr r1, _0805BFC0 @ =gMapObjects
adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -1737,7 +1737,7 @@ sub_805C024: @ 805C024
ldr r1, _0805C068 @ =gMapObjects
adds r0, r1
adds r1, r5, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0805C05E
@@ -1765,7 +1765,7 @@ sub_805C06C: @ 805C06C
ldr r1, _0805C0A0 @ =gMapObjects
adds r0, r1
adds r1, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0805C094
@@ -1789,7 +1789,7 @@ sub_805C0A4: @ 805C0A4
lsls r1, 24
lsrs r5, r1, 24
adds r1, r5, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0805C0CA
@@ -2404,7 +2404,7 @@ GetXYCoordsOneStepInFrontOfPlayer: @ 805C4F4
adds r0, r3
ldrh r0, [r0, 0x12]
strh r0, [r5]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
@@ -2582,8 +2582,8 @@ _0805C6BC:
bx r1
thumb_func_end plaer_get_pos_including_state_based_drift
- thumb_func_start player_get_direction_lower_nybble
-player_get_direction_lower_nybble: @ 805C6C4
+ thumb_func_start GetPlayerFacingDirection
+GetPlayerFacingDirection: @ 805C6C4
ldr r2, _0805C6DC @ =gMapObjects
ldr r0, _0805C6E0 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
@@ -2598,7 +2598,7 @@ player_get_direction_lower_nybble: @ 805C6C4
.align 2, 0
_0805C6DC: .4byte gMapObjects
_0805C6E0: .4byte gPlayerAvatar
- thumb_func_end player_get_direction_lower_nybble
+ thumb_func_end GetPlayerFacingDirection
thumb_func_start player_get_direction_upper_nybble
player_get_direction_upper_nybble: @ 805C6E4
@@ -3257,7 +3257,7 @@ sub_805CB70: @ 805CB70
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -3318,7 +3318,7 @@ sub_805CBE8: @ 805CBE8
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
@@ -3532,19 +3532,19 @@ sub_805CD84: @ 805CD84
adds r5, r1, 0
adds r4, r2, 0
adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _0805CE0E
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _0805CE0E
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
ldrb r0, [r6, 0xC]
bl GetStepInPlaceDelay16AnimId
adds r1, r0, 0
@@ -3602,19 +3602,19 @@ sub_805CE20: @ 805CE20
adds r5, r1, 0
adds r4, r2, 0
adds r0, r5, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _0805CE70
adds r0, r4, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _0805CE70
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
adds r0, r4, 0
bl sub_806DE28
ldrh r0, [r4, 0x10]
@@ -3704,7 +3704,7 @@ PlayerAvatar_DoSecretBaseMatJump: @ 805CEEC
movs r0, 0x1
strb r0, [r5, 0x6]
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805CF48
@@ -3836,7 +3836,7 @@ sub_805CFEC: @ 805CFEC
movs r2, 0x4
bl memcpy
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D054
@@ -3896,7 +3896,7 @@ sub_805D064: @ 805D064
movs r2, 0x5
bl memcpy
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D094
@@ -3924,7 +3924,7 @@ sub_805D0A4: @ 805D0A4
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D0E8
@@ -4073,12 +4073,12 @@ taskFF_0805D1D4: @ 805D1D4
ldr r1, _0805D234 @ =gMapObjects
adds r5, r0, r1
adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0805D200
adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D228
@@ -4124,7 +4124,7 @@ sub_805D240: @ 805D240
ldr r1, _0805D2B8 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805D2AE
@@ -4134,7 +4134,7 @@ sub_805D240: @ 805D240
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
@@ -4503,7 +4503,7 @@ _0805D548:
adds r4, r0
lsls r4, 2
adds r4, r5
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063510
@@ -4734,7 +4734,7 @@ _0805D6EA:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
@@ -4827,7 +4827,7 @@ sub_805D7C0: @ 805D7C0
adds r4, r0
lsls r4, 2
adds r4, r5
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063500
@@ -4883,7 +4883,7 @@ sub_805D838: @ 805D838
adds r4, r0
lsls r4, 2
adds r4, r5
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
bl sub_8063500
@@ -4978,7 +4978,7 @@ sub_805D8D8: @ 805D8D8
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_805F060
+ bl EventObjectSetGraphicsId
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
@@ -5131,7 +5131,7 @@ _0805DA2E:
bhi _0805DA60
movs r0, 0x8
strh r0, [r4, 0x24]
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -5280,7 +5280,7 @@ _0805DB58:
b _0805DBFA
_0805DB5E:
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0805DBFA
@@ -5608,7 +5608,7 @@ sub_805DDC8: @ 805DDC8
ble _0805DE20
_0805DDE4:
adds r0, r5, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _0805DE20
diff --git a/asm/field_poison.s b/asm/field_poison.s
index f76e7db4f..811f375c6 100644
--- a/asm/field_poison.s
+++ b/asm/field_poison.s
@@ -291,7 +291,7 @@ _080A0668:
cmp r7, 0
beq _080A067C
_080A0678:
- bl overworld_poison_effect
+ bl FldEffPoison_Start
_080A067C:
cmp r6, 0
beq _080A0688
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..fe4ac2b2d 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -413,7 +413,7 @@ sub_80CA8F8: @ 80CA8F8
movs r4, 0
movs r7, 0
movs r5, 0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -510,7 +510,7 @@ sub_80CA9A8: @ 80CA9A8
movs r4, 0
movs r6, 0
movs r5, 0
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -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]
@@ -5152,7 +5152,7 @@ sub_80CCD84: @ 80CCD84
ldr r0, _080CCDC4 @ =0x00190018
cmp r1, r0
bne _080CCDC8
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
diff --git a/asm/field_weather.s b/asm/field_weather.s
index e8d3ba7ee..ac24101a7 100644
--- a/asm/field_weather.s
+++ b/asm/field_weather.s
@@ -2672,8 +2672,8 @@ _0807B054: .4byte gUnknown_2037F34
_0807B058: .4byte 0x000006d3
thumb_func_end sub_807B048
- thumb_func_start sub_807B05C
-sub_807B05C: @ 807B05C
+ thumb_func_start SetWeatherScreenFadeOut
+SetWeatherScreenFadeOut: @ 807B05C
ldr r0, _0807B068 @ =gUnknown_2037F34
ldr r1, _0807B06C @ =0x000006c6
adds r0, r1
@@ -2683,7 +2683,7 @@ sub_807B05C: @ 807B05C
.align 2, 0
_0807B068: .4byte gUnknown_2037F34
_0807B06C: .4byte 0x000006c6
- thumb_func_end sub_807B05C
+ thumb_func_end SetWeatherScreenFadeOut
thumb_func_start sub_807B070
sub_807B070: @ 807B070
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
index c98cda3b7..3452841c4 100644
--- a/asm/fldeff_cut.s
+++ b/asm/fldeff_cut.s
@@ -39,7 +39,7 @@ sub_8097898: @ 8097898
cmp r0, 0x1
beq _080978E0
movs r0, 0x5F
- bl npc_before_player_of_type
+ bl CheckObjectGraphicsInFrontOfPlayer
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -74,7 +74,7 @@ _080978F8: .4byte FieldCallback_PrepareFadeInFromMenu
_080978FC: .4byte gPostMenuFieldCallback
_08097900: .4byte sub_8097984
_08097904:
- ldr r4, _0809797C @ =gUnknown_2039A04
+ ldr r4, _0809797C @ =gPlayerFacingPosition
adds r1, r4, 0x2
adds r0, r4, 0
bl PlayerGetDestCoords
@@ -136,7 +136,7 @@ _08097970:
pop {r1}
bx r1
.align 2, 0
-_0809797C: .4byte gUnknown_2039A04
+_0809797C: .4byte gPlayerFacingPosition
_08097980: .4byte 0x0000ffff
thumb_func_end sub_8097898
@@ -253,7 +253,7 @@ sub_8097A48: @ 8097A48
movs r7, 0
movs r0, 0x79
bl PlaySE
- ldr r4, _08097B38 @ =gUnknown_2039A04
+ ldr r4, _08097B38 @ =gPlayerFacingPosition
adds r1, r4, 0x2
adds r0, r4, 0
bl PlayerGetDestCoords
@@ -362,7 +362,7 @@ _08097AE2:
pop {r1}
bx r1
.align 2, 0
-_08097B38: .4byte gUnknown_2039A04
+_08097B38: .4byte gPlayerFacingPosition
_08097B3C: .4byte 0x0000ffff
_08097B40: .4byte gUnknown_2039870
_08097B44: .4byte gSprites
diff --git a/asm/fldeff_poison.s b/asm/fldeff_poison.s
deleted file mode 100644
index dd3bb622e..000000000
--- a/asm/fldeff_poison.s
+++ /dev/null
@@ -1,98 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start task50_overworld_poison_effect
-task50_overworld_poison_effect: @ 80A0DD8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A0DFC @ =gTasks+0x8
- adds r1, r0, r1
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080A0E16
- cmp r0, 0x1
- bgt _080A0E00
- cmp r0, 0
- beq _080A0E06
- b _080A0E32
- .align 2, 0
-_080A0DFC: .4byte gTasks+0x8
-_080A0E00:
- cmp r0, 0x2
- beq _080A0E2A
- b _080A0E32
-_080A0E06:
- ldrh r0, [r1, 0x2]
- adds r0, 0x1
- strh r0, [r1, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080A0E32
- b _080A0E22
-_080A0E16:
- ldrh r0, [r1, 0x2]
- subs r0, 0x1
- strh r0, [r1, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080A0E32
-_080A0E22:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080A0E32
-_080A0E2A:
- adds r0, r2, 0
- bl DestroyTask
- b _080A0E42
-_080A0E32:
- ldrb r1, [r1, 0x2]
- lsls r0, r1, 4
- orrs r0, r1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl Unused_AdjustBgMosaic
-_080A0E42:
- pop {r0}
- bx r0
- thumb_func_end task50_overworld_poison_effect
-
- thumb_func_start overworld_poison_effect
-overworld_poison_effect: @ 80A0E48
- push {lr}
- movs r0, 0x48
- bl PlaySE
- ldr r0, _080A0E5C @ =task50_overworld_poison_effect
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080A0E5C: .4byte task50_overworld_poison_effect
- thumb_func_end overworld_poison_effect
-
- thumb_func_start c3_80A0DD8_is_running
-c3_80A0DD8_is_running: @ 80A0E60
- push {lr}
- ldr r0, _080A0E70 @ =task50_overworld_poison_effect
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A0E70: .4byte task50_overworld_poison_effect
- thumb_func_end c3_80A0DD8_is_running
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s
deleted file mode 100644
index ace765f55..000000000
--- a/asm/fldeff_strength.s
+++ /dev/null
@@ -1,111 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80D07EC
-sub_80D07EC: @ 80D07EC
- push {r4,lr}
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080D0808
- movs r0, 0x61
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080D080C
-_080D0808:
- movs r0, 0
- b _080D0826
-_080D080C:
- ldr r4, _080D082C @ =gSpecialVar_Result
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r1, _080D0830 @ =gFieldCallback2
- ldr r0, _080D0834 @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080D0838 @ =gPostMenuFieldCallback
- ldr r0, _080D083C @ =sub_80D0840
- str r0, [r1]
- movs r0, 0x1
-_080D0826:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080D082C: .4byte gSpecialVar_Result
-_080D0830: .4byte gFieldCallback2
-_080D0834: .4byte FieldCallback_PrepareFadeInFromMenu
-_080D0838: .4byte gPostMenuFieldCallback
-_080D083C: .4byte sub_80D0840
- thumb_func_end sub_80D07EC
-
- thumb_func_start sub_80D0840
-sub_80D0840: @ 80D0840
- push {lr}
- bl GetCursorSelectionMonId
- ldr r1, _080D0858 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- ldr r0, _080D085C @ =gUnknown_81BE16E
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080D0858: .4byte gFieldEffectArguments
-_080D085C: .4byte gUnknown_81BE16E
- thumb_func_end sub_80D0840
-
- thumb_func_start sub_80D0860
-sub_80D0860: @ 80D0860
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D0894 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080D0898 @ =sub_80D08A8
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080D089C @ =gFieldEffectArguments
- ldr r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080D08A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080D08A4 @ =gStringVar1
- bl GetMonNickname
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080D0894: .4byte gTasks
-_080D0898: .4byte sub_80D08A8
-_080D089C: .4byte gFieldEffectArguments
-_080D08A0: .4byte gPlayerParty
-_080D08A4: .4byte gStringVar1
- thumb_func_end sub_80D0860
-
- thumb_func_start sub_80D08A8
-sub_80D08A8: @ 80D08A8
- push {lr}
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80D08A8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s
deleted file mode 100644
index aead537d4..000000000
--- a/asm/fldeff_sweetscent.s
+++ /dev/null
@@ -1,262 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80DE0B4
-sub_80DE0B4: @ 80DE0B4
- push {lr}
- ldr r1, _080DE0C4 @ =gUnknown_203B0A0
- movs r0, 0
- strb r0, [r1, 0x9]
- bl hm2_sweet_scent
- pop {r0}
- bx r0
- .align 2, 0
-_080DE0C4: .4byte gUnknown_203B0A0
- thumb_func_end sub_80DE0B4
-
- thumb_func_start sub_80DE0C8
-sub_80DE0C8: @ 80DE0C8
- ldr r1, _080DE0D8 @ =gFieldCallback2
- ldr r0, _080DE0DC @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080DE0E0 @ =gPostMenuFieldCallback
- ldr r0, _080DE0E4 @ =hm2_sweet_scent
- str r0, [r1]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_080DE0D8: .4byte gFieldCallback2
-_080DE0DC: .4byte FieldCallback_PrepareFadeInFromMenu
-_080DE0E0: .4byte gPostMenuFieldCallback
-_080DE0E4: .4byte hm2_sweet_scent
- thumb_func_end sub_80DE0C8
-
- thumb_func_start hm2_sweet_scent
-hm2_sweet_scent: @ 80DE0E8
- push {lr}
- movs r0, 0x33
- bl FieldEffectStart
- bl GetCursorSelectionMonId
- ldr r1, _080DE100 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080DE100: .4byte gFieldEffectArguments
- thumb_func_end hm2_sweet_scent
-
- thumb_func_start FldEff_SweetScent
-FldEff_SweetScent: @ 80DE104
- push {lr}
- bl sub_807B05C
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DE12C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080DE130 @ =sub_80DE134
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080DE12C: .4byte gTasks
-_080DE130: .4byte sub_80DE134
- thumb_func_end FldEff_SweetScent
-
- thumb_func_start sub_80DE134
-sub_80DE134: @ 80DE134
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0xE5
- bl PlaySE
- ldr r4, _080DE1B8 @ =gUnknown_203AAB0
- movs r0, 0x80
- lsls r0, 3
- bl Alloc
- adds r1, r0, 0
- str r1, [r4]
- ldr r4, _080DE1BC @ =gPlttBufferUnfaded
- movs r5, 0x80
- lsls r5, 1
- adds r0, r4, 0
- adds r2, r5, 0
- bl CpuFastSet
- ldr r0, _080DE1C0 @ =gPlttBufferFaded
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuFastSet
- bl GetPlayerAvatarObjectId
- ldr r2, _080DE1C4 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r0, _080DE1C8 @ =sub_80DE1D0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DE1CC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x33
- bl FieldEffectActiveListRemove
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE1B8: .4byte gUnknown_203AAB0
-_080DE1BC: .4byte gPlttBufferUnfaded
-_080DE1C0: .4byte gPlttBufferFaded
-_080DE1C4: .4byte gSprites
-_080DE1C8: .4byte sub_80DE1D0
-_080DE1CC: .4byte gTasks
- thumb_func_end sub_80DE134
-
- thumb_func_start sub_80DE1D0
-sub_80DE1D0: @ 80DE1D0
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r5, r0, 3
- ldr r6, _080DE21C @ =gTasks+0x8
- adds r2, r5, r6
- ldr r0, _080DE220 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080DE26C
- ldrh r3, [r2]
- movs r7, 0
- ldrsh r0, [r2, r7]
- cmp r0, 0x40
- bne _080DE268
- strh r1, [r2]
- bl sub_8082EC0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DE228
- ldr r0, _080DE224 @ =gUnknown_203AAB0
- ldr r0, [r0]
- bl Free
- adds r0, r4, 0
- bl DestroyTask
- b _080DE26C
- .align 2, 0
-_080DE21C: .4byte gTasks+0x8
-_080DE220: .4byte gPaletteFade
-_080DE224: .4byte gUnknown_203AAB0
-_080DE228:
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _080DE260 @ =sub_80DE274
- str r1, [r0]
- bl GetPlayerAvatarObjectId
- ldr r2, _080DE264 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080DE26C
- .align 2, 0
-_080DE260: .4byte sub_80DE274
-_080DE264: .4byte gSprites
-_080DE268:
- adds r0, r3, 0x1
- strh r0, [r2]
-_080DE26C:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE1D0
-
- thumb_func_start sub_80DE274
-sub_80DE274: @ 80DE274
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080DE2B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080DE2AA
- ldr r4, _080DE2B4 @ =gUnknown_203AAB0
- ldr r0, [r4]
- ldr r1, _080DE2B8 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
- bl sub_807B070
- ldr r0, [r4]
- bl Free
- ldr r0, _080DE2BC @ =gUnknown_81BE564
- bl ScriptContext1_SetupScript
- adds r0, r5, 0
- bl DestroyTask
-_080DE2AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE2B0: .4byte gPaletteFade
-_080DE2B4: .4byte gUnknown_203AAB0
-_080DE2B8: .4byte gPlttBufferUnfaded
-_080DE2BC: .4byte gUnknown_81BE564
- thumb_func_end sub_80DE274
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index 97bf9ef64..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,16 +3073,16 @@ 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
movs r0, 0x8
strb r0, [r1]
ldr r0, _080F36F0 @ =gUnknown_840C248
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _080F36F4 @ =gUnknown_840C258
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
pop {r0}
bx r0
.align 2, 0
@@ -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 909fee72e..24b7bb9b6 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -305,7 +305,7 @@ c2_copyright_1: @ 80EC820
lsls r0, 24
cmp r0, 0
bne _080EC858
- bl sub_8054A28
+ bl ResetMenuAndMonGlobals
bl Save_ResetSaveCounters
movs r0, 0
bl Save_LoadGameData
@@ -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
@@ -2759,7 +2759,7 @@ sub_80EDC40: @ 80EDC40
ldr r4, _080EDCE4 @ =gUnknown_840BBC0
_080EDC46:
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x4
@@ -4823,7 +4823,7 @@ sub_80EEBE4: @ 80EEBE4
ldr r4, _080EEC04 @ =gUnknown_840BEDC
_080EEBEA:
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x6
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 4e4c2ebfd..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
@@ -676,20 +676,20 @@ _0810832C: .4byte gSaveBlock2Ptr
_08108330: .4byte gUnknown_83D41E4
_08108334:
ldr r0, _0810833C @ =gUnknown_83D41EC
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
b _08108352
.align 2, 0
_0810833C: .4byte gUnknown_83D41EC
_08108340:
ldr r0, _08108348 @ =gUnknown_83D41F4
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
b _08108352
.align 2, 0
_08108348: .4byte gUnknown_83D41F4
_0810834C:
ldr r0, _08108360 @ =gBagSwapSpriteSheet
_0810834E:
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
_08108352:
ldr r0, _08108364 @ =gUnknown_203AD10
ldr r1, [r0]
@@ -702,7 +702,7 @@ _08108360: .4byte gBagSwapSpriteSheet
_08108364: .4byte gUnknown_203AD10
_08108368:
ldr r0, _08108378 @ =gBagSwapSpritePalette
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
ldr r1, [r4]
movs r0, 0
strb r0, [r1, 0x10]
@@ -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/itemfinder.s b/asm/itemfinder.s
index e510252ab..8a2dec9de 100644
--- a/asm/itemfinder.s
+++ b/asm/itemfinder.s
@@ -1091,7 +1091,7 @@ _0813F470:
.4byte _0813F50C
.4byte _0813F52C
_0813F484:
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
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.s b/asm/link_rfu.s
index a2b6a20fc..c6918f6ad 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -9465,7 +9465,7 @@ sub_8101A90: @ 8101A90
ldr r4, _08101AC0 @ =gUnknown_843F938
_08101AA2:
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x3
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index feb7c886f..2bfeaca50 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -9525,7 +9525,7 @@ sub_80FCEA8: @ 80FCEA8
cmp r0, r1
bne _080FCEC0
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
_080FCEC0:
ldr r0, _080FCEDC @ =gUnknown_843F27C
bl LoadSpritePalette
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 50121e847..111161c06 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]
@@ -11381,13 +11381,13 @@ sub_811B66C: @ 811B66C
ldr r1, _0811B6C0 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _0811B6D0
ldrb r1, [r5]
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0811B6C4
@@ -11440,7 +11440,7 @@ sub_811B6E8: @ 811B6E8
ldr r1, _0811B72C @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _0811B730
@@ -12496,7 +12496,7 @@ sub_811BF00: @ 811BF00
b _0811BFEE
_0811BF1C:
ldr r4, _0811BF44 @ =gUnknown_8457116
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds 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/mail_data.s b/asm/mail_data.s
deleted file mode 100644
index e19c99e59..000000000
--- a/asm/mail_data.s
+++ /dev/null
@@ -1,626 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ClearMailData
-ClearMailData: @ 8097C84
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08097CAC @ =gSaveBlock1Ptr
-_08097C8A:
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _08097CB0 @ =0x00002cd0
- adds r1, r0
- ldr r0, [r5]
- adds r0, r1
- bl ClearMailStruct
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08097C8A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097CAC: .4byte gSaveBlock1Ptr
-_08097CB0: .4byte 0x00002cd0
- thumb_func_end ClearMailData
-
- thumb_func_start ClearMailStruct
-ClearMailStruct: @ 8097CB4
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, _08097D04 @ =0x0000ffff
- adds r4, r0, 0
- adds r1, r3, 0
- movs r2, 0x8
-_08097CC0:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08097CC0
- movs r2, 0
- adds r6, r3, 0
- adds r6, 0x1A
- adds r4, r3, 0
- adds r4, 0x12
- movs r5, 0xFF
-_08097CDA:
- adds r1, r4, r2
- ldrb r0, [r1]
- orrs r0, r5
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08097CDA
- adds r1, r6, 0
- movs r2, 0
- adds r0, r1, 0x3
-_08097CEE:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08097CEE
- movs r1, 0
- movs r0, 0x1
- strh r0, [r3, 0x1E]
- strh r1, [r3, 0x20]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08097D04: .4byte 0x0000ffff
- thumb_func_end ClearMailStruct
-
- thumb_func_start MonHasMail
-MonHasMail: @ 8097D08
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- beq _08097D30
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- cmp r0, 0xFF
- beq _08097D30
- movs r0, 0x1
- b _08097D32
-_08097D30:
- movs r0, 0
-_08097D32:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MonHasMail
-
- thumb_func_start sub_8097D38
-sub_8097D38: @ 8097D38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r8, r0
- lsls r1, 16
- lsrs r0, r1, 16
- str r0, [sp, 0x8]
- mov r0, sp
- movs r2, 0
- ldrb r3, [r0, 0x8]
- strb r3, [r0]
- lsrs r1, 24
- strb r1, [r0, 0x1]
- add r4, sp, 0x4
- strb r2, [r4]
- mov r12, r4
- mov r9, r4
- adds r5, r4, 0
-_08097D62:
- ldr r2, _08097EC0 @ =gSaveBlock1Ptr
- ldr r0, [r2]
- ldrb r3, [r5]
- lsls r1, r3, 3
- adds r1, r3
- lsls r1, 2
- adds r0, r1
- ldr r1, _08097EC4 @ =0x00002cf0
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _08097D7C
- b _08097EE0
-_08097D7C:
- movs r4, 0
- ldr r3, _08097EC8 @ =gSaveBlock2Ptr
- mov r10, r3
- adds r7, r2, 0
- mov r5, r12
- ldr r0, _08097ECC @ =0x0000ffff
- adds r6, r0, 0
-_08097D8A:
- ldr r2, [r7]
- lsls r3, r4, 1
- ldrb r1, [r5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r1, _08097ED0 @ =0x00002cd0
- adds r2, r1
- adds r2, r3
- ldrh r0, [r2]
- orrs r0, r6
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _08097D8A
- movs r4, 0
- mov r2, r10
- ldr r0, [r2]
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08097DEE
- ldr r3, _08097EC8 @ =gSaveBlock2Ptr
-_08097DBC:
- ldr r0, _08097EC0 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- mov r0, r12
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldr r1, _08097ED4 @ =0x00002ce2
- adds r2, r1
- adds r2, r0
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bhi _08097DEE
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08097DBC
-_08097DEE:
- cmp r4, 0x5
- bhi _08097E16
- ldr r7, _08097EC0 @ =gSaveBlock1Ptr
- mov r3, r12
- ldr r6, _08097ED4 @ =0x00002ce2
- movs r5, 0
-_08097DFA:
- ldr r2, [r7]
- ldrb r1, [r3]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- adds r2, r6
- adds r2, r0
- strb r5, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08097DFA
-_08097E16:
- ldr r3, _08097EC0 @ =gSaveBlock1Ptr
- ldr r2, [r3]
- mov r0, r12
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldr r1, _08097ED4 @ =0x00002ce2
- adds r2, r1
- adds r2, r0
- movs r0, 0xFF
- strb r0, [r2]
- movs r4, 0
- adds r5, r3, 0
- mov r3, r12
-_08097E36:
- ldr r2, [r5]
- ldrb r1, [r3]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldr r1, _08097ED8 @ =0x00002cea
- adds r2, r1
- adds r2, r0
- mov r1, r10
- ldr r0, [r1]
- adds r0, 0xA
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08097E36
- mov r0, r8
- movs r1, 0xB
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl SpeciesToMailSpecies
- ldr r1, _08097EC0 @ =gSaveBlock1Ptr
- ldr r3, [r1]
- mov r4, r9
- ldrb r2, [r4]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r3, r1
- ldr r2, _08097EDC @ =0x00002cee
- adds r1, r2
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r4, _08097EC4 @ =0x00002cf0
- adds r3, r4
- mov r0, sp
- ldrh r0, [r0, 0x8]
- strh r0, [r3]
- mov r0, r8
- movs r1, 0x40
- mov r2, r9
- bl SetMonData
- mov r0, r8
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- mov r1, r9
- ldrb r0, [r1]
- b _08097EEE
- .align 2, 0
-_08097EC0: .4byte gSaveBlock1Ptr
-_08097EC4: .4byte 0x00002cf0
-_08097EC8: .4byte gSaveBlock2Ptr
-_08097ECC: .4byte 0x0000ffff
-_08097ED0: .4byte 0x00002cd0
-_08097ED4: .4byte 0x00002ce2
-_08097ED8: .4byte 0x00002cea
-_08097EDC: .4byte 0x00002cee
-_08097EE0:
- adds r0, r3, 0x1
- strb r0, [r4]
- ldrb r0, [r5]
- cmp r0, 0x5
- bhi _08097EEC
- b _08097D62
-_08097EEC:
- movs r0, 0xFF
-_08097EEE:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8097D38
-
- thumb_func_start SpeciesToMailSpecies
-SpeciesToMailSpecies: @ 8097F00
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bne _08097F18
- adds r0, r1, 0
- bl mon_icon_personality_to_unown_id
- lsls r0, 16
- ldr r1, _08097F1C @ =0x75300000
- adds r0, r1
- lsrs r0, 16
-_08097F18:
- pop {r1}
- bx r1
- .align 2, 0
-_08097F1C: .4byte 0x75300000
- thumb_func_end SpeciesToMailSpecies
-
- thumb_func_start MailSpeciesToSpecies
-MailSpeciesToSpecies: @ 8097F20
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _08097F38 @ =0xffff8ad0
- adds r2, r3, r0
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x1B
- bhi _08097F3C
- movs r0, 0xC9
- strh r2, [r1]
- b _08097F3E
- .align 2, 0
-_08097F38: .4byte 0xffff8ad0
-_08097F3C:
- adds r0, r3, 0
-_08097F3E:
- pop {r1}
- bx r1
- thumb_func_end MailSpeciesToSpecies
-
- thumb_func_start GiveMailToMon2
-GiveMailToMon2: @ 8097F44
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r7, r1, 0
- ldrh r5, [r7, 0x20]
- adds r1, r5, 0
- bl sub_8097D38
- add r4, sp, 0x4
- strb r0, [r4]
- ldrb r2, [r4]
- cmp r2, 0xFF
- beq _08097FA8
- ldr r0, _08097FA0 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- ldr r0, _08097FA4 @ =0x00002cd0
- adds r1, r0
- adds r0, r7, 0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r6, 0
- movs r1, 0x40
- adds r2, r4, 0
- bl SetMonData
- mov r0, sp
- strb r5, [r0]
- mov r1, sp
- lsrs r0, r5, 8
- strb r0, [r1, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _08097FAA
- .align 2, 0
-_08097FA0: .4byte gSaveBlock1Ptr
-_08097FA4: .4byte 0x00002cd0
-_08097FA8:
- movs r0, 0xFF
-_08097FAA:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GiveMailToMon2
-
- thumb_func_start sub_8097FB4
-sub_8097FB4: @ 8097FB4
- movs r0, 0
- bx lr
- thumb_func_end sub_8097FB4
-
- thumb_func_start TakeMailFromMon
-TakeMailFromMon: @ 8097FB8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl MonHasMail
- lsls r0, 24
- cmp r0, 0
- beq _08098008
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- add r2, sp, 0x4
- strb r0, [r2]
- ldr r0, _08098010 @ =gSaveBlock1Ptr
- ldr r3, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r0, _08098014 @ =0x00002cf0
- adds r3, r0
- movs r1, 0
- movs r0, 0
- strh r0, [r3]
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, sp
- strb r1, [r0]
- strb r1, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x40
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_08098008:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08098010: .4byte gSaveBlock1Ptr
-_08098014: .4byte 0x00002cf0
- thumb_func_end TakeMailFromMon
-
- thumb_func_start sub_8098018
-sub_8098018: @ 8098018
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08098034 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- ldr r0, _08098038 @ =0x00002cf0
- adds r2, r0
- movs r0, 0
- strh r0, [r2]
- bx lr
- .align 2, 0
-_08098034: .4byte gSaveBlock1Ptr
-_08098038: .4byte 0x00002cf0
- thumb_func_end sub_8098018
-
- thumb_func_start sub_809803C
-sub_809803C: @ 809803C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r5, r0, 0
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- add r1, sp, 0x4
- movs r0, 0xFF
- strb r0, [r1]
- movs r7, 0x6
- mov r9, r1
- ldr r0, _080980D0 @ =gSaveBlock1Ptr
- mov r8, r0
- ldr r3, _080980D4 @ =0x00002cd0
-_08098060:
- mov r1, r8
- ldr r0, [r1]
- lsls r1, r7, 3
- adds r1, r7
- lsls r1, 2
- adds r4, r0, r1
- ldr r2, _080980D8 @ =0x00002cf0
- adds r0, r4, r2
- ldrh r6, [r0]
- cmp r6, 0
- bne _080980DC
- adds r4, r3
- adds r0, r5, 0
- movs r1, 0x40
- str r3, [sp, 0x8]
- bl GetMonData
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r3, [sp, 0x8]
- adds r1, r3
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- ldr r3, _080980D8 @ =0x00002cf0
- adds r2, r3
- strh r6, [r2]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r7, 0
- b _080980E8
- .align 2, 0
-_080980D0: .4byte gSaveBlock1Ptr
-_080980D4: .4byte 0x00002cd0
-_080980D8: .4byte 0x00002cf0
-_080980DC:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _08098060
- movs r0, 0xFF
-_080980E8:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809803C
-
- thumb_func_start ItemIsMail
-ItemIsMail: @ 80980F8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bgt _0809810A
- cmp r0, 0x79
- blt _0809810A
- movs r0, 0x1
- b _0809810C
-_0809810A:
- movs r0, 0
-_0809810C:
- pop {r1}
- bx r1
- thumb_func_end ItemIsMail
-
- .align 2, 0 @ Don't pad with nop.
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/menu_indicators.s b/asm/menu_indicators.s
index 28e783731..d7b78b1b2 100644
--- a/asm/menu_indicators.s
+++ b/asm/menu_indicators.s
@@ -180,7 +180,7 @@ AddScrollIndicatorArrowPair: @ 8133A20
orrs r0, r1
str r0, [sp, 0x8]
add r0, sp, 0x4
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldrh r2, [r6, 0xC]
cmp r2, r4
bne _08133A7C
@@ -727,7 +727,7 @@ ListMenuAddRedOutlineCursorObject: @ 8133E38
ands r1, r3
orrs r1, r2
str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldrh r2, [r6, 0x8]
ldr r7, _08133E8C @ =0x0000ffff
cmp r2, r7
@@ -1005,7 +1005,7 @@ ListMenuAddRedArrowCursorObject: @ 8134070
ands r1, r4
orrs r1, r2
str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldrh r2, [r5, 0x8]
cmp r2, r4
bne _081340C4
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_game.s b/asm/new_game.s
index 234fefcd7..ad4983770 100644
--- a/asm/new_game.s
+++ b/asm/new_game.s
@@ -174,8 +174,8 @@ Sav2_ClearSetDefault: @ 8054A18
bx r0
thumb_func_end Sav2_ClearSetDefault
- thumb_func_start sub_8054A28
-sub_8054A28: @ 8054A28
+ thumb_func_start ResetMenuAndMonGlobals
+ResetMenuAndMonGlobals: @ 8054A28
push {lr}
ldr r1, _08054A5C @ =gUnknown_2031DB0
movs r0, 0
@@ -195,7 +195,7 @@ sub_8054A28: @ 8054A28
bx r0
.align 2, 0
_08054A5C: .4byte gUnknown_2031DB0
- thumb_func_end sub_8054A28
+ thumb_func_end ResetMenuAndMonGlobals
thumb_func_start sub_8054A60
sub_8054A60: @ 8054A60
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..aacb22510 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -193,8 +193,8 @@ _08054D68: .4byte 0x00000808
_08054D6C: .4byte 0x0000404d
thumb_func_end Overworld_ResetStateAfterTeleport
- thumb_func_start sub_8054D70
-sub_8054D70: @ 8054D70
+ thumb_func_start Overworld_ResetStateAfterDigEscRope
+Overworld_ResetStateAfterDigEscRope: @ 8054D70
push {lr}
bl ResetInitialPlayerAvatarState
movs r0, 0x83
@@ -230,7 +230,7 @@ _08054DC8: .4byte 0x00000805
_08054DCC: .4byte 0x00000806
_08054DD0: .4byte 0x00000808
_08054DD4: .4byte 0x0000404d
- thumb_func_end sub_8054D70
+ thumb_func_end Overworld_ResetStateAfterDigEscRope
thumb_func_start sub_8054DD8
sub_8054DD8: @ 8054DD8
@@ -1257,7 +1257,7 @@ sub_805550C: @ 805550C
ldrh r0, [r0, 0x4]
cmp r0, 0x1
beq _08055590
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -1858,7 +1858,7 @@ _08055A04: .4byte gUnknown_2031DD4
thumb_func_start sub_8055A08
sub_8055A08: @ 8055A08
push {r4,lr}
- bl player_get_direction_lower_nybble
+ bl GetPlayerFacingDirection
ldr r4, _08055A24 @ =gUnknown_2031DD4
strb r0, [r4, 0x1]
movs r0, 0x2
@@ -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
@@ -3833,8 +3833,8 @@ _0805692C:
_08056934: .4byte gMapHeader
thumb_func_end sub_8056918
- thumb_func_start sub_8056938
-sub_8056938: @ 8056938
+ thumb_func_start CB2_ContinueSavedGame
+CB2_ContinueSavedGame: @ 8056938
push {lr}
bl sub_80569BC
bl StopMapMusic
@@ -3880,7 +3880,7 @@ _080569AC:
_080569B0: .4byte gFieldCallback
_080569B4: .4byte sub_8056918
_080569B8: .4byte sub_8056534
- thumb_func_end sub_8056938
+ thumb_func_end CB2_ContinueSavedGame
thumb_func_start sub_80569BC
sub_80569BC: @ 80569BC
@@ -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 9042219e3..58f7529e2 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
@@ -3543,7 +3543,7 @@ sub_81205C8: @ 81205C8
bne _081205F2
adds r0, r6, 0
adds r1, r4, 0
- bl sub_8097D38
+ bl GiveMailToMon
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -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}
@@ -8013,11 +8013,11 @@ _0812285C: .4byte 0x0000fffc
sub_8122860: @ 8122860
push {lr}
ldr r0, _08122878 @ =gUnknown_845A474
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _0812287C @ =gUnknown_845A4EC
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _08122880 @ =gUnknown_845A47C
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
pop {r0}
bx r0
.align 2, 0
@@ -8164,9 +8164,9 @@ _0812297C: .4byte gSprites
sub_8122980: @ 8122980
push {lr}
ldr r0, _08122994 @ =gUnknown_845A574
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _08122998 @ =gUnknown_845A57C
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
pop {r0}
bx r0
.align 2, 0
@@ -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
@@ -10776,7 +10776,7 @@ _08123EB2:
muls r0, r1
ldr r1, _08123EE8 @ =gPlayerParty
adds r0, r1
- bl sub_809803C
+ bl TakeMailFromMon2
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -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/pokeball.s b/asm/pokeball.s
index eace88832..85bfcb620 100644
--- a/asm/pokeball.s
+++ b/asm/pokeball.s
@@ -2029,9 +2029,9 @@ CreatePokeballSpriteToReleaseMon: @ 804B908
lsls r0, 24
lsrs r7, r0, 24
ldr r0, _0804B9D4 @ =gUnknown_826056C
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _0804B9D8 @ =gUnknown_82605CC
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r0, _0804B9DC @ =gUnknown_82606F4
mov r1, r9
mov r2, r10
@@ -2362,9 +2362,9 @@ sub_804BB98: @ 804BB98
lsrs r0, 24
mov r9, r0
ldr r0, _0804BC3C @ =gUnknown_826056C
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _0804BC40 @ =gUnknown_82605CC
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
ldr r0, _0804BC44 @ =gUnknown_82606F4
adds r1, r6, 0
mov r2, r8
@@ -2790,10 +2790,10 @@ LoadBallGfx: @ 804BEF4
cmp r0, r1
bne _0804BF1C
adds r0, r5, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _0804BF58 @ =gUnknown_82605CC
adds r0, r6, r0
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
_0804BF1C:
cmp r4, 0x6
beq _0804BF48
diff --git a/asm/pokedex_area_markers.s b/asm/pokedex_area_markers.s
index 6062b95ee..d6ea7f251 100644
--- a/asm/pokedex_area_markers.s
+++ b/asm/pokedex_area_markers.s
@@ -66,7 +66,7 @@ sub_8134230: @ 8134230
ands r2, r5
orrs r2, r1
str r2, [r0, 0x4]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _081343D0 @ =gUnknown_846341C
mov r3, r8
lsls r3, 4
diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s
index c269ce8a4..a6a83033a 100644
--- a/asm/pokemon_icon.s
+++ b/asm/pokemon_icon.s
@@ -166,7 +166,7 @@ mon_icon_convert_unown_species_id: @ 8096F5C
cmp r2, 0xC9
bne _08096F86
adds r0, r1, 0
- bl mon_icon_personality_to_unown_id
+ bl GetUnownLetterByPersonality
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -195,8 +195,8 @@ _08096F92:
bx r1
thumb_func_end mon_icon_convert_unown_species_id
- thumb_func_start mon_icon_personality_to_unown_id
-mon_icon_personality_to_unown_id: @ 8096F98
+ thumb_func_start GetUnownLetterByPersonality
+GetUnownLetterByPersonality: @ 8096F98
push {lr}
adds r2, r0, 0
cmp r2, 0
@@ -228,7 +228,7 @@ _08096FCE:
_08096FD0:
pop {r1}
bx r1
- thumb_func_end mon_icon_personality_to_unown_id
+ thumb_func_end GetUnownLetterByPersonality
thumb_func_start sub_8096FD4
sub_8096FD4: @ 8096FD4
diff --git a/asm/pokemon_jump.s b/asm/pokemon_jump.s
index c00c08f20..d94a5c8db 100644
--- a/asm/pokemon_jump.s
+++ b/asm/pokemon_jump.s
@@ -170,7 +170,7 @@ sub_81476E0: @ 81476E0
lsls r0, 3
ldr r1, _081477B0 @ =gUnknown_846B42C
adds r0, r1
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
movs r2, 0x8
ldrsh r0, [r4, r2]
lsls r0, 3
diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s
index a8595db7f..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
@@ -6777,7 +6777,7 @@ sub_814AD6C: @ 814AD6C
ldr r5, _0814ADAC @ =gUnknown_846E0B0
_0814AD74:
adds r0, r5, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r5, 0x8
adds r4, 0x1
cmp r4, 0x4
@@ -6881,7 +6881,7 @@ _0814AE2A:
adds r0, r1
ldr r3, [r7, 0x8]
mov r1, r8
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
mov r3, r8
str r3, [sp, 0x18]
adds r4, r6, 0
@@ -6903,7 +6903,7 @@ _0814AE2A:
ands r1, r5
orrs r1, r4
str r1, [r0, 0x4]
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
mov r0, r8
bl Free
mov r0, r10
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index 94d451a73..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
@@ -2446,7 +2446,7 @@ _0811D884:
adds r1, r6, 0
adds r2, r7, 0
mov r3, r10
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
mov r0, r8
bl GetMonFrontSpritePal
adds r1, r4, 0
@@ -3699,7 +3699,7 @@ sub_811E204: @ 811E204
sub sp, 0x8
mov r10, r0
ldr r0, _0811E2E0 @ =gUnknown_84599B8
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _0811E2E4 @ =gUnknown_84599C0
bl LoadSpritePalette
movs r0, 0
@@ -4148,7 +4148,7 @@ _0811E582:
sub_811E588: @ 811E588
push {lr}
ldr r0, _0811E59C @ =gUnknown_84599C8
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
ldr r0, _0811E5A0 @ =gUnknown_84599D0
bl LoadSpritePalette
pop {r0}
@@ -4216,7 +4216,7 @@ sub_811E5B8: @ 811E5B8
str r1, [r4]
mov r1, r9
strh r1, [r4, 0x4]
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r0, r4, 0
bl LoadSpritePalette
ldr r0, _0811E674 @ =sub_811E694
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index a4c77e32e..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
@@ -7233,7 +7233,7 @@ sub_808F3F8: @ 808F3F8
adds r0, r1
ldr r5, _0808F474 @ =0x000022bc
adds r1, r4, r5
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
ldr r1, [r6]
ldr r2, _0808F478 @ =0x00000cd8
adds r0, r1, r2
@@ -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
@@ -20609,7 +20609,7 @@ _08095B9C:
orrs r0, r1
str r0, [r2, 0x4]
mov r0, r9
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
mov r4, r9
ldrh r0, [r4, 0x6]
bl GetSpriteTileStartByTag
@@ -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/reset_save_heap.s b/asm/reset_save_heap.s
deleted file mode 100644
index fb46afb94..000000000
--- a/asm/reset_save_heap.s
+++ /dev/null
@@ -1,68 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8079B7C
-sub_8079B7C: @ 8079B7C
- push {r4,r5,lr}
- ldr r5, _08079BEC @ =0x04000208
- ldrh r4, [r5]
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x1
- bl RegisterRamReset
- movs r0, 0
- movs r1, 0x80
- bl ClearGpuRegBits
- strh r4, [r5]
- ldr r1, _08079BF0 @ =gMain
- ldr r0, _08079BF4 @ =0x00000439
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl SetSaveBlocksPointers
- bl sub_8054A28
- bl Save_ResetSaveCounters
- movs r0, 0
- bl Save_LoadGameData
- ldr r0, _08079BF8 @ =gSaveFileStatus
- ldrh r0, [r0]
- cmp r0, 0
- beq _08079BC4
- cmp r0, 0x2
- bne _08079BC8
-_08079BC4:
- bl Sav2_ClearSetDefault
-_08079BC8:
- ldr r0, _08079BFC @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- lsls r0, 31
- lsrs r0, 31
- bl SetPokemonCryStereo
- ldr r0, _08079C00 @ =gHeap
- movs r1, 0xE0
- lsls r1, 9
- bl InitHeap
- ldr r0, _08079C04 @ =sub_8056938
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08079BEC: .4byte 0x04000208
-_08079BF0: .4byte gMain
-_08079BF4: .4byte 0x00000439
-_08079BF8: .4byte gSaveFileStatus
-_08079BFC: .4byte gSaveBlock2Ptr
-_08079C00: .4byte gHeap
-_08079C04: .4byte sub_8056938
- thumb_func_end sub_8079B7C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom6.s b/asm/rom6.s
deleted file mode 100644
index 2ac2cc0a4..000000000
--- a/asm/rom6.s
+++ /dev/null
@@ -1,459 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start npc_before_player_of_type
-npc_before_player_of_type: @ 80C97A8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080C97E8 @ =gUnknown_2039A04
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- bl PlayerGetZCoord
- strb r0, [r4, 0x4]
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C97EC @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x5]
- cmp r0, r5
- bne _080C97F4
- ldr r1, _080C97F0 @ =gSpecialVar_LastTalked
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- movs r0, 0x1
- b _080C97F6
- .align 2, 0
-_080C97E8: .4byte gUnknown_2039A04
-_080C97EC: .4byte gMapObjects
-_080C97F0: .4byte gSpecialVar_LastTalked
-_080C97F4:
- movs r0, 0
-_080C97F6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end npc_before_player_of_type
-
- thumb_func_start oei_task_add
-oei_task_add: @ 80C97FC
- push {lr}
- ldr r0, _080C9818 @ =gUnknown_2039A04
- adds r1, r0, 0x2
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r0, _080C981C @ =task08_080C9820
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C9818: .4byte gUnknown_2039A04
-_080C981C: .4byte task08_080C9820
- thumb_func_end oei_task_add
-
- thumb_func_start task08_080C9820
-task08_080C9820: @ 80C9820
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ScriptContext2_Enable
- ldr r1, _080C9874 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r1, [r1, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9878 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080C9856
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C98A2
-_080C9856:
- ldr r0, _080C987C @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _080C9888
- movs r0, 0x3B
- bl FieldEffectStart
- ldr r0, _080C9880 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C9884 @ =sub_80C98FC
- b _080C98A0
- .align 2, 0
-_080C9874: .4byte gPlayerAvatar
-_080C9878: .4byte gMapObjects
-_080C987C: .4byte gMapHeader
-_080C9880: .4byte gTasks
-_080C9884: .4byte sub_80C98FC
-_080C9888:
- bl sub_805CB70
- adds r0, r4, 0
- movs r1, 0x45
- bl sub_8063CA4
- ldr r0, _080C98A8 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C98AC @ =sub_80C98B0
-_080C98A0:
- str r0, [r1]
-_080C98A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C98A8: .4byte gTasks
-_080C98AC: .4byte sub_80C98B0
- thumb_func_end task08_080C9820
-
- thumb_func_start sub_80C98B0
-sub_80C98B0: @ 80C98B0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C98EC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C98F0 @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C98E4
- movs r0, 0x3B
- bl FieldEffectStart
- ldr r0, _080C98F4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C98F8 @ =sub_80C98FC
- str r0, [r1]
-_080C98E4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C98EC: .4byte gPlayerAvatar
-_080C98F0: .4byte gMapObjects
-_080C98F4: .4byte gTasks
-_080C98F8: .4byte sub_80C98FC
- thumb_func_end sub_80C98B0
-
- thumb_func_start sub_80C98FC
-sub_80C98FC: @ 80C98FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080C9980
- bl player_get_direction_lower_nybble
- ldr r6, _080C9988 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r6, 0x4]
- cmp r0, 0x1
- bne _080C9922
- str r4, [r6, 0x8]
-_080C9922:
- ldr r1, [r6, 0x4]
- cmp r1, 0x2
- bne _080C992C
- movs r0, 0x1
- str r0, [r6, 0x8]
-_080C992C:
- cmp r1, 0x3
- bne _080C9934
- movs r0, 0x2
- str r0, [r6, 0x8]
-_080C9934:
- cmp r1, 0x4
- bne _080C993C
- movs r0, 0x3
- str r0, [r6, 0x8]
-_080C993C:
- ldr r5, _080C998C @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C9990 @ =gMapObjects
- adds r4, r0
- bl GetPlayerAvatarGraphicsIdByCurrentState
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805F060
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9994 @ =gSprites
- adds r0, r1
- ldrb r1, [r6, 0x8]
- bl StartSpriteAnim
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r1, _080C9998 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C999C @ =sub_80C99A0
- str r1, [r0]
-_080C9980:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9988: .4byte gFieldEffectArguments
-_080C998C: .4byte gPlayerAvatar
-_080C9990: .4byte gMapObjects
-_080C9994: .4byte gSprites
-_080C9998: .4byte gTasks
-_080C999C: .4byte sub_80C99A0
- thumb_func_end sub_80C98FC
-
- thumb_func_start sub_80C99A0
-sub_80C99A0: @ 80C99A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080C99D0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x18]
- lsls r1, 16
- ldrh r0, [r0, 0x1A]
- orrs r1, r0
- bl _call_via_r1
- ldr r1, _080C99D4 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C99D0: .4byte gTasks
-_080C99D4: .4byte gPlayerAvatar
- thumb_func_end sub_80C99A0
-
- thumb_func_start SetUpFieldMove_RockSmash
-SetUpFieldMove_RockSmash: @ 80C99D8
- push {lr}
- movs r0, 0x60
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C99EC
- movs r0, 0
- b _080C99FA
-_080C99EC:
- ldr r1, _080C9A00 @ =gFieldCallback2
- ldr r0, _080C9A04 @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080C9A08 @ =gPostMenuFieldCallback
- ldr r0, _080C9A0C @ =sub_80C9A10
- str r0, [r1]
- movs r0, 0x1
-_080C99FA:
- pop {r1}
- bx r1
- .align 2, 0
-_080C9A00: .4byte gFieldCallback2
-_080C9A04: .4byte FieldCallback_PrepareFadeInFromMenu
-_080C9A08: .4byte gPostMenuFieldCallback
-_080C9A0C: .4byte sub_80C9A10
- thumb_func_end SetUpFieldMove_RockSmash
-
- thumb_func_start sub_80C9A10
-sub_80C9A10: @ 80C9A10
- push {lr}
- bl GetCursorSelectionMonId
- ldr r1, _080C9A28 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- ldr r0, _080C9A2C @ =gUnknown_81BE064
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C9A28: .4byte gFieldEffectArguments
-_080C9A2C: .4byte gUnknown_81BE064
- thumb_func_end sub_80C9A10
-
- thumb_func_start oei_rocksmash
-oei_rocksmash: @ 80C9A30
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9A58 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C9A5C @ =sub_80C9A60
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x13
- bl IncrementGameStat
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C9A58: .4byte gTasks
-_080C9A5C: .4byte sub_80C9A60
- thumb_func_end oei_rocksmash
-
- thumb_func_start sub_80C9A60
-sub_80C9A60: @ 80C9A60
- push {lr}
- movs r0, 0x7C
- bl PlaySE
- movs r0, 0x25
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C9A60
-
- thumb_func_start SetUpFieldMove_Dig
-SetUpFieldMove_Dig: @ 80C9A78
- push {lr}
- bl sub_80A1B8C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9A8A
- movs r0, 0
- b _080C9A98
-_080C9A8A:
- ldr r1, _080C9A9C @ =gFieldCallback2
- ldr r0, _080C9AA0 @ =FieldCallback_PrepareFadeInFromMenu
- str r0, [r1]
- ldr r1, _080C9AA4 @ =gPostMenuFieldCallback
- ldr r0, _080C9AA8 @ =hm2_dig
- str r0, [r1]
- movs r0, 0x1
-_080C9A98:
- pop {r1}
- bx r1
- .align 2, 0
-_080C9A9C: .4byte gFieldCallback2
-_080C9AA0: .4byte FieldCallback_PrepareFadeInFromMenu
-_080C9AA4: .4byte gPostMenuFieldCallback
-_080C9AA8: .4byte hm2_dig
- thumb_func_end SetUpFieldMove_Dig
-
- thumb_func_start hm2_dig
-hm2_dig: @ 80C9AAC
- push {lr}
- bl sub_8054D70
- movs r0, 0x26
- bl FieldEffectStart
- bl GetCursorSelectionMonId
- ldr r1, _080C9AC8 @ =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C9AC8: .4byte gFieldEffectArguments
- thumb_func_end hm2_dig
-
- thumb_func_start sub_80C9ACC
-sub_80C9ACC: @ 80C9ACC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9AF4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C9AF8 @ =sub_80C9AFC
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C9AF4: .4byte gTasks
-_080C9AF8: .4byte sub_80C9AFC
- thumb_func_end sub_80C9ACC
-
- thumb_func_start sub_80C9AFC
-sub_80C9AFC: @ 80C9AFC
- push {lr}
- movs r0, 0x26
- bl FieldEffectActiveListRemove
- ldr r0, _080C9B24 @ =sub_80A1C44
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9B28 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_080C9B24: .4byte sub_80A1C44
-_080C9B28: .4byte gTasks
- thumb_func_end sub_80C9AFC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/save_location.s b/asm/save_location.s
deleted file mode 100644
index 8a1031963..000000000
--- a/asm/save_location.s
+++ /dev/null
@@ -1,222 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start IsCurMapInLocationList
-IsCurMapInLocationList: @ 810B6F4
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _0810B724 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r0, [r2]
- ldr r1, _0810B728 @ =0x0000ffff
- cmp r0, r1
- beq _0810B734
- adds r4, r1, 0
- adds r1, r2, 0
-_0810B71A:
- ldrh r0, [r1]
- cmp r0, r3
- bne _0810B72C
- movs r0, 0x1
- b _0810B736
- .align 2, 0
-_0810B724: .4byte gSaveBlock1Ptr
-_0810B728: .4byte 0x0000ffff
-_0810B72C:
- adds r1, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _0810B71A
-_0810B734:
- movs r0, 0
-_0810B736:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsCurMapInLocationList
-
- thumb_func_start IsCurMapPokeCenter
-IsCurMapPokeCenter: @ 810B73C
- push {lr}
- ldr r0, _0810B748 @ =gUnknown_845303C
- bl IsCurMapInLocationList
- pop {r1}
- bx r1
- .align 2, 0
-_0810B748: .4byte gUnknown_845303C
- thumb_func_end IsCurMapPokeCenter
-
- thumb_func_start IsCurMapReloadLocation
-IsCurMapReloadLocation: @ 810B74C
- push {lr}
- ldr r0, _0810B758 @ =gUnknown_8453092
- bl IsCurMapInLocationList
- pop {r1}
- bx r1
- .align 2, 0
-_0810B758: .4byte gUnknown_8453092
- thumb_func_end IsCurMapReloadLocation
-
- thumb_func_start sub_810B75C
-sub_810B75C: @ 810B75C
- push {lr}
- ldr r0, _0810B768 @ =gUnknown_8453094
- bl IsCurMapInLocationList
- pop {r1}
- bx r1
- .align 2, 0
-_0810B768: .4byte gUnknown_8453094
- thumb_func_end sub_810B75C
-
- thumb_func_start TrySetPokeCenterWarpStatus
-TrySetPokeCenterWarpStatus: @ 810B76C
- push {lr}
- bl IsCurMapPokeCenter
- cmp r0, 0
- bne _0810B788
- ldr r0, _0810B784 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0xFD
- ands r0, r1
- b _0810B792
- .align 2, 0
-_0810B784: .4byte gSaveBlock2Ptr
-_0810B788:
- ldr r0, _0810B798 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- orrs r0, r1
-_0810B792:
- strb r0, [r2, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B798: .4byte gSaveBlock2Ptr
- thumb_func_end TrySetPokeCenterWarpStatus
-
- thumb_func_start TrySetReloadWarpStatus
-TrySetReloadWarpStatus: @ 810B79C
- push {lr}
- bl IsCurMapReloadLocation
- cmp r0, 0
- bne _0810B7B8
- ldr r0, _0810B7B4 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0xFB
- ands r0, r1
- b _0810B7C2
- .align 2, 0
-_0810B7B4: .4byte gSaveBlock2Ptr
-_0810B7B8:
- ldr r0, _0810B7C8 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x4
- orrs r0, r1
-_0810B7C2:
- strb r0, [r2, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B7C8: .4byte gSaveBlock2Ptr
- thumb_func_end TrySetReloadWarpStatus
-
- thumb_func_start sub_810B7CC
-sub_810B7CC: @ 810B7CC
- push {lr}
- bl sub_810B75C
- cmp r0, 0
- bne _0810B7E8
- ldr r0, _0810B7E4 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0xF7
- ands r0, r1
- b _0810B7F2
- .align 2, 0
-_0810B7E4: .4byte gSaveBlock2Ptr
-_0810B7E8:
- ldr r0, _0810B7F8 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x8
- orrs r0, r1
-_0810B7F2:
- strb r0, [r2, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B7F8: .4byte gSaveBlock2Ptr
- thumb_func_end sub_810B7CC
-
- thumb_func_start TrySetMapSaveWarpStatus
-TrySetMapSaveWarpStatus: @ 810B7FC
- push {lr}
- bl TrySetPokeCenterWarpStatus
- bl TrySetReloadWarpStatus
- bl sub_810B7CC
- pop {r0}
- bx r0
- thumb_func_end TrySetMapSaveWarpStatus
-
- thumb_func_start sub_810B810
-sub_810B810: @ 810B810
- ldr r0, _0810B828 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xA8
- ldr r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_0810B828: .4byte gSaveBlock2Ptr
- thumb_func_end sub_810B810
-
- thumb_func_start sub_810B82C
-sub_810B82C: @ 810B82C
- ldr r3, _0810B854 @ =gSaveBlock2Ptr
- ldr r2, [r3]
- ldrb r1, [r2, 0x9]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r2, [r3]
- adds r2, 0xA8
- ldr r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_0810B854: .4byte gSaveBlock2Ptr
- thumb_func_end sub_810B82C
-
- .align 2, 0 @ Don't pad with nop.
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/script_movement.s b/asm/script_movement.s
index 826d6d6bd..a2d48d44a 100644
--- a/asm/script_movement.s
+++ b/asm/script_movement.s
@@ -565,7 +565,7 @@ sub_80977F0: @ 80977F0
cmp r0, 0
beq _08097838
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0809786A
@@ -583,7 +583,7 @@ _08097838:
_08097850: .4byte gMapObjects
_08097854:
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _0809786A
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 680004d4a..b355fed51 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -2689,7 +2689,7 @@ sub_8140C0C: @ 8140C0C
ldr r4, _08140C3C @ =gUnknown_84655B0
_08140C12:
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x2
@@ -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/smokescreen.s b/asm/smokescreen.s
index 1768a5ea4..2a350c911 100644
--- a/asm/smokescreen.s
+++ b/asm/smokescreen.s
@@ -26,9 +26,9 @@ sub_804A76C: @ 804A76C
cmp r0, r1
bne _0804A79E
adds r0, r5, 0
- bl sub_800F034
+ bl LoadCompressedSpriteSheetUsingHeap
ldr r0, _0804A8AC @ =gUnknown_8250994
- bl sub_800F078
+ bl LoadCompressedSpritePaletteUsingHeap
_0804A79E:
ldr r0, _0804A8B0 @ =sub_804A8C0
bl CreateInvisibleSpriteWithCallback
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 07a861c86..1646e6ce4 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
@@ -1106,7 +1106,7 @@ _08079248:
bne _080792A6
bl SeedRngAndSetTrainerId
bl SetSaveBlocksPointers
- bl sub_8054A28
+ bl ResetMenuAndMonGlobals
bl Save_ResetSaveCounters
movs r0, 0
bl Save_LoadGameData
@@ -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
@@ -1704,7 +1704,7 @@ sub_8079708: @ 8079708
ldr r4, _08079728 @ =gUnknown_83BFB9C
_0807970E:
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x3
diff --git a/asm/trade.s b/asm/trade.s
index a45cedc3e..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
@@ -7292,7 +7292,7 @@ _08050040:
ldr r1, [r1, 0x8]
adds r2, r5, 0
adds r3, r7, 0
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
movs r4, 0
b _0805009A
.align 2, 0
@@ -7316,7 +7316,7 @@ _0805007C:
_0805009A:
mov r0, r8
bl GetMonSpritePalStruct
- bl LoadCompressedObjectPalette
+ bl LoadCompressedSpritePalette
ldr r0, _080500C4 @ =gUnknown_2031DAC
ldr r1, [r0]
adds r0, r1, 0
@@ -10813,7 +10813,7 @@ _08052042:
ldr r1, [r1]
ldr r1, [r1, 0x10]
ldr r3, [r3, 0x6C]
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
ldr r1, [r7]
b _080522AC
.align 2, 0
@@ -13038,7 +13038,7 @@ _0805349E:
ldr r1, [r1]
ldr r1, [r1, 0x10]
ldr r3, [r3, 0x6C]
- bl sub_800ECC4
+ bl HandleLoadSpecialPokePic
ldr r1, [r7]
b _08053708
.align 2, 0
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index a07c918f8..c52229215 100644
--- a/asm/trainer_see.s
+++ b/asm/trainer_see.s
@@ -601,7 +601,7 @@ _08081F54:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
_08081F82:
@@ -658,12 +658,12 @@ sub_8081FD0: @ 8081FD0
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08081FEE
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08082022
@@ -680,7 +680,7 @@ _08081FEE:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0xE]
subs r0, 0x1
strh r0, [r5, 0xE]
@@ -688,7 +688,7 @@ _08081FEE:
_08082014:
adds r0, r4, 0
movs r1, 0x4A
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -705,12 +705,12 @@ sub_808202C: @ 808202C
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808204A
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080820AC
@@ -743,12 +743,12 @@ _0808204A:
ldr r1, _080820B8 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080820A2
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080820AC
@@ -780,12 +780,12 @@ sub_80820BC: @ 80820BC
ldr r1, _080820FC @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080820E8
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _080820EE
@@ -808,19 +808,19 @@ sub_8082100: @ 8082100
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808211E
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808212C
_0808211E:
adds r0, r4, 0
movs r1, 0x67
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -836,7 +836,7 @@ sub_8082134: @ 8082134
push {r4,lr}
adds r4, r1, 0
adds r0, r2, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _08082148
@@ -855,19 +855,19 @@ sub_8082150: @ 8082150
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _0808216E
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808217C
_0808216E:
adds r0, r4, 0
movs r1, 0x4A
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -884,7 +884,7 @@ sub_8082184: @ 8082184
adds r5, r1, 0
adds r4, r2, 0
adds r0, r4, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ bl FieldObjectCheckHeldMovementStatus
lsls r0, 24
cmp r0, 0
beq _080821CA
@@ -961,7 +961,7 @@ sub_80821DC: @ 80821DC
orrs r1, r2
strb r1, [r0, 0x5]
adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
@@ -970,7 +970,7 @@ sub_80821DC: @ 80821DC
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -1069,7 +1069,7 @@ sub_80822CC: @ 80822CC
lsls r0, 2
ldr r4, _0808234C @ =gMapObjects
adds r0, r4
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08082312
@@ -1079,7 +1079,7 @@ sub_80822CC: @ 80822CC
adds r0, r1
lsls r0, 2
adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808236E
@@ -1104,7 +1104,7 @@ _08082312:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x12]
adds r0, 0x1
strh r0, [r5, 0x12]
@@ -1160,7 +1160,7 @@ sub_808237C: @ 808237C
lsls r0, 2
ldr r4, _08082408 @ =gMapObjects
adds r0, r4
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ bl FieldObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _080823CC
@@ -1170,7 +1170,7 @@ sub_808237C: @ 808237C
adds r0, r1
lsls r0, 2
adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl FieldObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
beq _0808242E
@@ -1195,7 +1195,7 @@ _080823CC:
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl sub_8063CA4
+ bl FieldObjectSetHeldMovement
ldrh r0, [r5, 0x12]
adds r0, 0x1
strh r0, [r5, 0x12]
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index 6c917be27..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
@@ -5510,7 +5510,7 @@ sub_812AE70: @ 812AE70
ldr r4, _0812AE9C @ =gUnknown_845AF58
_0812AE76:
adds r0, r4, 0
- bl LoadCompressedObjectPic
+ bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x4
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
index 21b97c942..e9fb8a630 100644
--- a/asm/wild_encounter.s
+++ b/asm/wild_encounter.s
@@ -482,7 +482,7 @@ _08082A8E:
lsrs r0, 16
orrs r4, r0
adds r0, r4, 0
- bl GetUnownLetterByPersonality
+ bl GetUnownLetterByPersonalityLoByte
lsls r0, 24
lsrs r0, 24
cmp r0, r5
@@ -493,8 +493,8 @@ _08082A8E:
bx r1
thumb_func_end sub_8082A88
- thumb_func_start GetUnownLetterByPersonality
-GetUnownLetterByPersonality: @ 8082AB8
+ thumb_func_start GetUnownLetterByPersonalityLoByte
+GetUnownLetterByPersonalityLoByte: @ 8082AB8
push {lr}
adds r2, r0, 0
movs r0, 0xC0
@@ -520,7 +520,7 @@ GetUnownLetterByPersonality: @ 8082AB8
lsrs r0, 24
pop {r1}
bx r1
- thumb_func_end GetUnownLetterByPersonality
+ thumb_func_end GetUnownLetterByPersonalityLoByte
thumb_func_start sub_8082AEC
sub_8082AEC: @ 8082AEC
@@ -1020,8 +1020,8 @@ _08082EB6:
_08082EBC: .4byte gSpecialVar_Result
thumb_func_end sub_8082E54
- thumb_func_start sub_8082EC0
-sub_8082EC0: @ 8082EC0
+ thumb_func_start SweetScentWildEncounter
+SweetScentWildEncounter: @ 8082EC0
push {r4,r5,lr}
sub sp, 0x4
mov r4, sp
@@ -1108,7 +1108,7 @@ _08082F6E:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_8082EC0
+ thumb_func_end SweetScentWildEncounter
thumb_func_start sub_8082F78
sub_8082F78: @ 8082F78
diff --git a/berry_fix/payload/include/global.fieldmap.h b/berry_fix/payload/include/global.fieldmap.h
index 81f805ee2..f876e5a56 100644
--- a/berry_fix/payload/include/global.fieldmap.h
+++ b/berry_fix/payload/include/global.fieldmap.h
@@ -309,7 +309,7 @@ struct Camera
s32 y;
};
-extern struct EventObject gEventObjects[];
+extern struct EventObject gMapObjects[];
extern u8 gSelectedEventObject;
extern struct MapHeader gMapHeader;
extern struct PlayerAvatar gPlayerAvatar;
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index 30a3f101a..d10a7d403 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
@@ -982,17 +969,7 @@ gUnknown_8452F6C:: @ 8452F6C
gUnknown_8452F7C:: @ 8452F7C
.incbin "baserom.gba", 0x452F7C, 0xC0
-gUnknown_845303C:: @ 845303C
- .incbin "baserom.gba", 0x45303C, 0x56
-
-gUnknown_8453092:: @ 8453092
- .incbin "baserom.gba", 0x453092, 0x2
-
-gUnknown_8453094:: @ 8453094
- .incbin "baserom.gba", 0x453094, 0x4
-
.section .rodata.8453F6C
-
// mailbox_pc.o
gUnknown_8453FE8:: @ 8453FE8
.incbin "baserom.gba", 0x453FE8, 0x18
diff --git a/data/map_event_scripts.inc b/data/map_event_scripts.inc
index 460477812..f3205689d 100644
--- a/data/map_event_scripts.inc
+++ b/data/map_event_scripts.inc
@@ -3545,7 +3545,7 @@ CeruleanCave_B1F_EventScript_1BE00C:: @ 81BE00C
CeruleanCave_1F_EventScript_1BE00C:: @ 81BE00C
.incbin "baserom.gba", 0x1BE00C, 0x58
-gUnknown_81BE064:: @ 81BE064
+EventScript_FldEffRockSmash:: @ 81BE064
.incbin "baserom.gba", 0x1BE064, 0xB9
MtEmber_Exterior_EventScript_1BE11D:: @ 81BE11D
@@ -3566,7 +3566,7 @@ SeafoamIslands_B1F_EventScript_1BE11D:: @ 81BE11D
VictoryRoad_2F_EventScript_1BE11D:: @ 81BE11D
.incbin "baserom.gba", 0x1BE11D, 0x51
-gUnknown_81BE16E:: @ 81BE16E
+EventScript_FldEffStrength:: @ 81BE16E
.incbin "baserom.gba", 0x1BE16E, 0x149
gUnknown_81BE2B7:: @ 81BE2B7
@@ -3575,7 +3575,7 @@ gUnknown_81BE2B7:: @ 81BE2B7
gUnknown_81BE2FF:: @ 81BE2FF
.incbin "baserom.gba", 0x1BE2FF, 0x265
-gUnknown_81BE564:: @ 81BE564
+EventScript_FailSweetScent:: @ 81BE564
.incbin "baserom.gba", 0x1BE564, 0x2A
Route2_EventScript_1BE58E:: @ 81BE58E
diff --git a/data/maps/FiveIsland_RocketWarehouse/scripts.inc b/data/maps/FiveIsland_RocketWarehouse/scripts.inc
index bac115e76..490afe501 100644
--- a/data/maps/FiveIsland_RocketWarehouse/scripts.inc
+++ b/data/maps/FiveIsland_RocketWarehouse/scripts.inc
@@ -113,7 +113,7 @@ FiveIsland_RocketWarehouse_EventScript_164087:: @ 8164087
EventScript_1640A2:: @ 81640A2
getplayerxy VAR_0x8004, VAR_0x8005
- specialvar VAR_RESULT, player_get_direction_lower_nybble
+ specialvar VAR_RESULT, GetPlayerFacingDirection
compare_var_to_value VAR_RESULT, 2
call_if 1, EventScript_16412E
msgbox gUnknown_817B7AE
diff --git a/data/specials.inc b/data/specials.inc
index 96d0ef253..e6cec1766 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
@@ -296,7 +296,7 @@ gSpecials:: @ 815FD60
def_special nullsub_75
def_special sub_80CAAAC
def_special sub_80CAABC
- def_special player_get_direction_lower_nybble
+ def_special GetPlayerFacingDirection
def_special nullsub_75
def_special nullsub_75
def_special nullsub_75
@@ -435,7 +435,7 @@ gSpecials:: @ 815FD60
def_special sub_809D764
def_special sub_809D8C0
def_special sub_8147500
- def_special player_get_direction_lower_nybble
+ def_special GetPlayerFacingDirection
def_special sub_80CCDFC
def_special sub_80CD008
def_special sub_8147594
diff --git a/include/bg.h b/include/bg.h
index 003ffc916..40c51167f 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -25,6 +25,17 @@ enum
BG_CTRL_ATTR_WRAPAROUND = 8,
};
+enum AdjustBgMosaicMode
+{
+ BG_MOSAIC_SET,
+ BG_MOSAIC_SET_H,
+ BG_MOSAIC_INC_H,
+ BG_MOSAIC_DEC_H,
+ BG_MOSAIC_SET_V,
+ BG_MOSAIC_INC_V,
+ BG_MOSAIC_DEC_V,
+};
+
enum BgTileAllocMode
{
BG_TILE_FIND_FREE_SPACE,
@@ -71,7 +82,7 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op);
u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op);
u32 GetBgY(u8 bg);
void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
-u8 Unused_AdjustBgMosaic(u8 a1, u8 a2);
+u8 AdjustBgMosaic(u8 value, u8 mode);
void SetBgTilemapBuffer(u8 bg, void *tilemap);
void UnsetBgTilemapBuffer(u8 bg);
void* GetBgTilemapBuffer(u8 bg);
diff --git a/include/decompress.h b/include/decompress.h
index 19b507525..03080fe48 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -10,15 +10,13 @@ extern u8 gDecompressionBuffer[0x4000];
void LZDecompressWram(const void *src, void *dest);
void LZDecompressVram(const void *src, void *dest);
-u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src);
-void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
-bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src);
+u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src);
+void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
+bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src);
-void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src);
-void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
-bool8 LoadCompressedObjectPaletteUsingHeap(const struct CompressedSpritePalette *src);
-
-bool8 sub_800F078(const struct CompressedSpritePalette *src);
+void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src);
+void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
+bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src);
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
@@ -27,15 +25,12 @@ void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
-void sub_800ECC4(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
+void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
-u32 sub_8034974(const u8 *ptr);
-
-void sub_800F034(const struct CompressedSpriteSheet *src);
u32 GetDecompressedDataSize(const u8 *ptr);
#endif // GUARD_DECOMPRESS_H
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/event_scripts.h b/include/event_scripts.h
index d5ee57d56..917269de4 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1144,4 +1144,8 @@ extern const u8 gUnknown_81BB084[];
extern const u8 gUnknown_81BB0DF[];
extern const u8 gUnknown_81BB156[];
+extern const u8 EventScript_FldEffStrength[];
+extern const u8 EventScript_FailSweetScent[];
+extern const u8 EventScript_FldEffRockSmash[];
+
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 27a7f23d7..83cc263e5 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -76,18 +76,20 @@ u8 GetStepInPlaceDelay32AnimId(u32);
u8 npc_block_way(struct MapObject *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
-u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
+u8 FieldObjectClearHeldMovementIfFinished(struct MapObject *);
u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
void sub_8063E28(struct MapObject *, struct Sprite *);
-void sub_8063CA4(struct MapObject *, u8);
+void FieldObjectSetHeldMovement(struct MapObject *, u8);
void npc_coords_shift_still(struct MapObject *);
void sub_805FE7C(struct MapObject *, u8);
void npc_set_running_behaviour_etc(struct MapObject *, u8);
u8 sub_80634F0(u8 direction);
u8 sub_8063500(u8 a0);
-void sub_805F060(struct MapObject *mapObject, u8 a1);
+void EventObjectSetGraphicsId(struct MapObject *mapObject, u8 a1);
u8 sub_805EB44(u8, u8, s16, s16);
void npc_paltag_set_load(u8 mode);
+bool8 FieldObjectIsMovementOverridden(struct MapObject *mapObject);
+u8 FieldObjectCheckHeldMovementStatus(struct MapObject *mapObject);
// Exported data declarations
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 4871bd082..b87de3fef 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -8,7 +8,7 @@ void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8);
bool8 TestPlayerAvatarFlags(u8);
void PlayerGetDestCoords(s16 *, s16 *);
-u8 player_get_direction_lower_nybble(void);
+u8 GetPlayerFacingDirection(void);
u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
@@ -24,5 +24,9 @@ void sub_805DAE4(u8 direction);
void SetPlayerAvatarTransitionFlags(u16 a);
bool8 IsPlayerFacingSurfableFishableWater(void);
void sub_805D2C0(u8 secondaryId);
+u8 GetPlayerAvatarObjectId(void);
+u8 PlayerGetZCoord(void);
+u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
+void sub_805CB70(void);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_weather.h b/include/field_weather.h
index 13a1b4fcb..c3ecd4fa6 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -14,5 +14,7 @@ void SetSav1WeatherFromCurrMapHeader(void);
void sub_807B0C4(u16 *, u16 *, u32);
void PlayRainStoppingSoundEffect(void);
bool8 sub_807AA70(void);
+void SetWeatherScreenFadeOut(void);
+void sub_807B070(void);
#endif // GUARD_WEATHER_H
diff --git a/include/fldeff.h b/include/fldeff.h
index 364cb7550..e5e7e5f7d 100644
--- a/include/fldeff.h
+++ b/include/fldeff.h
@@ -1,7 +1,51 @@
#ifndef GUARD_FLDEFF_H
#define GUARD_FLDEFF_H
-// rock smash
+#define FLDEFF_CALL_FUNC_IN_DATA() ((void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]))();
+
+#define FLDEFF_SET_FUNC_TO_DATA(func) \
+gTasks[taskId].data[8] = (u32)func >> 16; \
+gTasks[taskId].data[9] = (u32)func;
+
+extern struct MapPosition gPlayerFacingPosition;
+
+bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
u8 oei_task_add(void);
+// flash
+
+// cut
+
+// dig
+bool8 SetUpFieldMove_Dig(void);
+bool8 FldEff_UseDig(void);
+
+// rocksmash
+bool8 SetUpFieldMove_RockSmash(void);
+bool8 FldEff_UseRockSmash(void);
+
+// berrytree
+void nullsub_56(void);
+
+// poison
+void FldEffPoison_Start(void);
+bool32 FldEffPoison_IsActive(void);
+
+// strength
+bool8 SetUpFieldMove_Strength(void);
+bool8 sub_80D0860(void);
+
+// teleport
+bool8 SetUpFieldMove_Teleport(void);
+bool8 FldEff_UseTeleport(void);
+
+// softboiled
+bool8 hm_prepare_dive_probably(void);
+void sub_80E56DC(u8 taskId);
+void sub_80E5724(u8 taskId);
+
+// sweetscent
+bool8 SetUpFieldMove_SweetScent(void);
+bool8 FldEff_SweetScent(void);
+
#endif // GUARD_FLDEFF_H
diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h
deleted file mode 100644
index 3960c6c65..000000000
--- a/include/fldeff_80F9BCC.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef GUARD_FLDEFF_80F9BCC_H
-#define GUARD_FLDEFF_80F9BCC_H
-
-#include "global.h"
-
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-void sub_80FA5E4(s16 id, s16 x, s16 y);
-void sub_80FA794(s16 x, s16 y);
-void overworld_poison_effect(void);
-
-#endif //GUARD_FLDEFF_80F9BCC_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/global.h b/include/global.h
index 050c311e4..e1f63213a 100644
--- a/include/global.h
+++ b/include/global.h
@@ -209,7 +209,7 @@ struct SaveBlock2
{
/*0x000*/ u8 playerName[PLAYER_NAME_LENGTH];
/*0x008*/ u8 playerGender; // MALE, FEMALE
- /*0x009*/ u8 specialSaveWarp;
+ /*0x009*/ u8 specialSaveWarpFlags;
/*0x00A*/ u8 playerTrainerId[4];
/*0x00E*/ u16 playTimeHours;
/*0x010*/ u8 playTimeMinutes;
@@ -726,8 +726,14 @@ struct SaveBlock1
/*0x3D38*/ struct TrainerTowerLog unkArray[4];
};
-extern struct SaveBlock1* gSaveBlock1Ptr;
+struct MapPosition
+{
+ s16 x;
+ s16 y;
+ s8 height;
+};
+extern struct SaveBlock1* gSaveBlock1Ptr;
extern u8 gReservedSpritePaletteCount;
#endif // GUARD_GLOBAL_H
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/item_use.h b/include/item_use.h
index 0a45762f7..db98533f1 100644
--- a/include/item_use.h
+++ b/include/item_use.h
@@ -38,5 +38,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId);
void ItemUseOutOfBattle_EnigmaBerry(u8 taskId);
void ItemUseInBattle_EnigmaBerry(u8 taskId);
void ItemUseOutOfBattle_Itemfinder(u8 taskId);
+void sub_80A1C44(u8 taskId);
+u8 CanUseEscapeRopeOnCurrMap(void);
#endif //GUARD_ITEM_USE_H
diff --git a/include/mail.h b/include/mail.h
index 9ffccbb5b..3ba731c66 100644
--- a/include/mail.h
+++ b/include/mail.h
@@ -3,6 +3,8 @@
#include "global.h"
+#define MAIL_WORDS_COUNT 9
+
#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \
|| itemId == ITEM_HARBOR_MAIL \
|| itemId == ITEM_GLITTER_MAIL \
@@ -17,10 +19,6 @@
|| itemId == ITEM_RETRO_MAIL))
-bool8 MonHasMail(struct Pokemon *mon);
-void TakeMailFromMon(struct Pokemon *mon);
-u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail);
-void ClearMailStruct(struct MailStruct *mail);
void sub_80BEBEC(struct MailStruct * mail, void (* callback)(void), u8 a2);
#endif // GUARD_MAIL_H
diff --git a/include/mail_data.h b/include/mail_data.h
index 79a4a7851..a5795ed7e 100644
--- a/include/mail_data.h
+++ b/include/mail_data.h
@@ -9,7 +9,16 @@
// Exported ROM declarations
-u16 sub_80D45E8(u16, u16 *);
+void ClearMailData(void);
+void ClearMailStruct(struct MailStruct *mail);
+bool8 MonHasMail(struct Pokemon *mon);
+u8 GiveMailToMon(struct Pokemon *mon, u16 itemId);
+u16 SpeciesToMailSpecies(u16 species, u32 personality);
+u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer);
+u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail);
+void TakeMailFromMon(struct Pokemon *mon);
+void ClearMailItemId(u8 mailId);
+u8 TakeMailFromMon2(struct Pokemon *mon);
bool8 ItemIsMail(u16 itemId);
#endif //GUARD_MAIL_DATA_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_game.h b/include/new_game.h
index c495a9585..a45b090c8 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -14,5 +14,6 @@ void NewGameInitData(void);
void ResetMiniGamesResults(void);
void sub_808447C(void);
void Sav2_ClearSetDefault(void);
+void ResetMenuAndMonGlobals(void);
#endif // GUARD_NEW_GAME_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..bab4797ff 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -81,12 +81,12 @@ void mapldr_default(void);
u32 GetGameStat(u8);
-void sub_8056938(void);
+void CB2_ContinueSavedGame(void);
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,11 +111,10 @@ 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);
-void sub_8054D70(void);
+void Overworld_ResetStateAfterDigEscRope(void);
bool32 sub_8058244(void);
#endif //GUARD_ROM4_H
diff --git a/include/palette.h b/include/palette.h
index 31c8ffefe..78f398873 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -43,7 +43,7 @@ struct PaletteFadeControl
extern struct PaletteFadeControl gPaletteFade;
extern u32 gPlttBufferTransferPending;
-extern u8 gPaletteDecompressionBuffer[];
+extern u8 *gPaletteDecompressionBuffer;
extern u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE];
extern u16 gPlttBufferFaded[PLTT_BUFFER_SIZE];
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index 593715b7d..cd8c798f9 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -15,5 +15,6 @@ void FreeMonIconPalettes(void);
u16 sub_8096FD4(u16);
u8 sub_8096ECC(u16, void (*)(struct Sprite *), s16, s16, u8, bool32);
void sub_8097070(struct Sprite *);
+u16 GetUnownLetterByPersonality(u32 personality);
#endif // GUARD_POKEMON_ICON_H
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/reset_save_heap.h b/include/reset_save_heap.h
new file mode 100644
index 000000000..8cb038906
--- /dev/null
+++ b/include/reset_save_heap.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_RESET_SAVE_HEAP_H
+#define GUARD_RESET_SAVE_HEAP_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void sub_8079B7C(void);
+
+#endif //GUARD_RESET_SAVE_HEAP_H
+
diff --git a/include/save_location.h b/include/save_location.h
index cd499643e..4e01c64e4 100644
--- a/include/save_location.h
+++ b/include/save_location.h
@@ -1,12 +1,15 @@
#ifndef GUARD_SAVE_LOCATION_H
#define GUARD_SAVE_LOCATION_H
-#include "global.h"
+// specialSaveWarp flags
+#define CONTINUE_GAME_WARP (1 << 0)
+#define POKECENTER_SAVEWARP (1 << 1)
+#define LOBBY_SAVEWARP (1 << 2)
+#define UNK_SPECIAL_SAVE_WARP_FLAG_3 (1 << 3)
-bool32 sub_81AFCEC(void);
void TrySetMapSaveWarpStatus(void);
-void sub_81AFDA0(void);
-void sub_81AFDD0(void);
bool32 IsCurMapPokeCenter(void);
+void sub_810B810(void);
+void sub_810B82C(void);
-#endif // GUARD_SAVE_LOCATION_H
+#endif // GUARD_SAVE_LOCATION_H \ No newline at end of file
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/include/wild_encounter.h b/include/wild_encounter.h
index b4c42116a..bf53ed6ee 100644
--- a/include/wild_encounter.h
+++ b/include/wild_encounter.h
@@ -43,6 +43,7 @@ u16 GetLocalWildMon(bool8 *isWaterMon);
u16 GetLocalWaterMon(void);
bool8 UpdateRepelCounter(void);
void sub_8082740(u8);
-u8 GetUnownLetterByPersonality(u32 personality);
+u8 GetUnownLetterByPersonalityLoByte(u32 personality);
+bool8 SweetScentWildEncounter(void);
#endif // GUARD_WILD_ENCOUNTER_H
diff --git a/ld_script.txt b/ld_script.txt
index 2664d8010..22672e178 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -61,10 +61,10 @@ 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);
- asm/decompress.o(.text);
+ src/decompress.o(.text);
asm/battle_1.o(.text);
asm/battle_2.o(.text);
asm/battle_util.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);
@@ -117,7 +117,7 @@ SECTIONS {
asm/reshow_battle_screen.o(.text);
asm/battle_anim_status_effects.o(.text);
asm/title_screen.o(.text);
- asm/reset_save_heap.o(.text);
+ src/reset_save_heap.o(.text);
asm/field_weather.o(.text);
asm/field_weather_effects.o(.text);
asm/field_fadetransition.o(.text);
@@ -135,7 +135,7 @@ SECTIONS {
asm/pokemon_icon.o(.text);
asm/script_movement.o(.text);
asm/fldeff_cut.o(.text);
- asm/mail_data.o(.text);
+ src/mail_data.o(.text);
asm/map_name_popup.o(.text);
src/item_menu_icons.o(.text);
src/battle_anim_mon_movement.o(.text);
@@ -149,7 +149,7 @@ SECTIONS {
asm/field_poison.o(.text);
asm/pokemon_size_record.o(.text);
asm/pc_screen_effect.o(.text);
- asm/fldeff_poison.o(.text);
+ src/fldeff_poison.o(.text);
src/fldeff_berrytree.o(.text);
src/field_special_scene.o(.text);
asm/safari_zone.o(.text);
@@ -181,16 +181,17 @@ SECTIONS {
src/heal_location.o(.text);
asm/region_map.o(.text);
src/battle_ai_script_commands.o(.text);
- asm/rom6.o(.text);
+ src/fldeff_rocksmash.o(.text);
+ src/fldeff_dig.o(.text);
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);
src/coins.o(.text);
- asm/fldeff_strength.o(.text);
+ src/fldeff_strength.o(.text);
asm/battle_transition.o(.text);
asm/battle_controller_link_partner.o(.text);
asm/battle_message.o(.text);
@@ -202,7 +203,7 @@ SECTIONS {
asm/field_effect_helpers.o(.text);
asm/battle_anim_sound_tasks.o(.text);
asm/battle_controller_safari.o(.text);
- asm/fldeff_sweetscent.o(.text);
+ src/fldeff_sweetscent.o(.text);
asm/battle_anim_effects_3.o(.text);
asm/learn_move.o(.text);
src/fldeff_softboiled.o(.text);
@@ -218,7 +219,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);
@@ -227,7 +228,7 @@ SECTIONS {
asm/pokedex_screen.o(.text);
asm/list_menu.o(.text);
asm/item_menu.o(.text);
- asm/save_location.o(.text);
+ src/save_location.o(.text);
src/bag.o(.text);
src/trainer_pokemon_sprites.o(.text);
src/vs_seeker.o(.text);
@@ -419,6 +420,9 @@ 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/save_location.o(.rodata);
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..ff3d26b65 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..18cb4ec05 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)
{
@@ -928,79 +865,58 @@ void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dis
SetBgAffineInternal(bg, srcCenterX, srcCenterY, dispCenterX, dispCenterY, scaleX, scaleY, rotationAngle);
}
-u8 Unused_AdjustBgMosaic(u8 a1, u8 a2)
+u8 AdjustBgMosaic(u8 value, u8 mode)
{
- u16 result;
- s16 test1;
- s16 test2;
-
- result = GetGpuReg(REG_OFFSET_MOSAIC);
-
- test1 = result & 0xF;
- test2 = (result >> 4) & 0xF;
- result &= 0xFF00;
+ u16 mosaicSize;
+ s16 bgMosaicH;
+ s16 bgMosaicV;
+ mosaicSize = GetGpuReg(REG_OFFSET_MOSAIC);
+ bgMosaicH = mosaicSize & 0xF;
+ bgMosaicV = (mosaicSize >> 4) & 0xF;
+ mosaicSize &= 0xFF00;
- switch (a2)
+ switch (mode)
{
- case 0:
- default:
- test1 = a1 & 0xF;
- test2 = a1 >> 0x4;
- break;
- case 1:
- test1 = a1 & 0xF;
- break;
- case 2:
- if ((test1 + a1) > 0xF)
- {
- test1 = 0xF;
- }
- else
- {
- test1 += a1;
- }
- break;
- case 3:
- if ((test1 - a1) < 0)
- {
- test1 = 0x0;
- }
- else
- {
- test1 -= a1;
- }
- break;
- case 4:
- test2 = a1 & 0xF;
- break;
- case 5:
- if ((test2 + a1) > 0xF)
- {
- test2 = 0xF;
- }
- else
- {
- test2 += a1;
- }
- break;
- case 6:
- if ((test2 - a1) < 0)
- {
- test2 = 0x0;
- }
- else
- {
- test2 -= a1;
- }
- break;
+ case BG_MOSAIC_SET:
+ default:
+ bgMosaicH = value & 0xF;
+ bgMosaicV = value >> 0x4;
+ break;
+ case BG_MOSAIC_SET_H:
+ bgMosaicH = value & 0xF;
+ break;
+ case BG_MOSAIC_INC_H:
+ if ((bgMosaicH + value) > 0xF)
+ bgMosaicH = 0xF;
+ else
+ bgMosaicH += value;
+ break;
+ case BG_MOSAIC_DEC_H:
+ if ((bgMosaicH - value) < 0)
+ bgMosaicH = 0x0;
+ else
+ bgMosaicH -= value;
+ break;
+ case BG_MOSAIC_SET_V:
+ bgMosaicV = value & 0xF;
+ break;
+ case BG_MOSAIC_INC_V:
+ if ((bgMosaicV + value) > 0xF)
+ bgMosaicV = 0xF;
+ else
+ bgMosaicV += value;
+ break;
+ case BG_MOSAIC_DEC_V:
+ if ((bgMosaicV - value) < 0)
+ bgMosaicV = 0x0;
+ else
+ bgMosaicV -= value;
+ break;
}
-
- result |= ((test2 << 0x4) & 0xF0);
- result |= (test1 & 0xF);
-
- SetGpuReg(REG_OFFSET_MOSAIC, result);
-
- return result;
+ mosaicSize |= ((bgMosaicV << 0x4) & 0xF0);
+ mosaicSize |= (bgMosaicH & 0xF);
+ SetGpuReg(REG_OFFSET_MOSAIC, mosaicSize);
+ return mosaicSize;
}
void SetBgTilemapBuffer(u8 bg, void *tilemap)
diff --git a/src/daycare.c b/src/daycare.c
index 206e0b383..7a2cb0698 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -5,7 +5,7 @@
#include "string_util.h"
#include "constants/species.h"
#include "constants/items.h"
-#include "mail.h"
+#include "mail_data.h"
#include "pokemon_storage_system.h"
#include "event_data.h"
#include "random.h"
@@ -1768,8 +1768,8 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
- sub_800ECC4(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid);
- LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid);
+ LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
*speciesLoc = species;
}
break;
@@ -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/decompress.c b/src/decompress.c
new file mode 100644
index 000000000..caeda738a
--- /dev/null
+++ b/src/decompress.c
@@ -0,0 +1,662 @@
+#include "global.h"
+#include "malloc.h"
+#include "decompress.h"
+#include "pokemon.h"
+#include "text.h"
+#include "constants/species.h"
+
+extern const struct CompressedSpriteSheet gMonFrontPicTable[];
+extern const struct CompressedSpriteSheet gMonBackPicTable[];
+
+static void DuplicateDeoxysTiles(void *pointer, s32 species);
+
+void LZDecompressWram(const void *src, void *dest)
+{
+ LZ77UnCompWram(src, dest);
+}
+
+void LZDecompressVram(const void *src, void *dest)
+{
+ LZ77UnCompVram(src, dest);
+}
+
+u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src)
+{
+ struct SpriteSheet dest;
+
+ LZ77UnCompWram(src->data, gDecompressionBuffer);
+ dest.data = gDecompressionBuffer;
+ dest.size = src->size;
+ dest.tag = src->tag;
+ return LoadSpriteSheet(&dest);
+}
+
+void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer)
+{
+ struct SpriteSheet dest;
+
+ LZ77UnCompWram(src->data, buffer);
+ dest.data = buffer;
+ dest.size = src->size;
+ dest.tag = src->tag;
+ LoadSpriteSheet(&dest);
+}
+
+void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src)
+{
+ struct SpritePalette dest;
+
+ LZ77UnCompWram(src->data, gDecompressionBuffer);
+ dest.data = (void*) gDecompressionBuffer;
+ dest.tag = src->tag;
+ LoadSpritePalette(&dest);
+}
+
+void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer)
+{
+ struct SpritePalette dest;
+
+ LZ77UnCompWram(a->data, buffer);
+ dest.data = buffer;
+ dest.tag = a->tag;
+ LoadSpritePalette(&dest);
+}
+
+void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species)
+{
+ if (species > NUM_SPECIES)
+ LZ77UnCompWram(gMonFrontPicTable[0].data, buffer);
+ else
+ LZ77UnCompWram(src->data, buffer);
+ DuplicateDeoxysTiles(buffer, species);
+}
+
+void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality)
+{
+ bool8 isFrontPic;
+
+ if (src == &gMonFrontPicTable[species])
+ isFrontPic = TRUE; // frontPic
+ else
+ isFrontPic = FALSE; // backPic
+ LoadSpecialPokePic(src, dest, species, personality, isFrontPic);
+}
+
+void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic)
+{
+ if (species == SPECIES_UNOWN)
+ {
+ u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C;
+
+ // The other Unowns are separate from Unown A.
+ if (i == 0)
+ i = SPECIES_UNOWN;
+ else
+ i += SPECIES_UNOWN_B - 1;
+ if (!isFrontPic)
+ LZ77UnCompWram(gMonBackPicTable[i].data, dest);
+ else
+ LZ77UnCompWram(gMonFrontPicTable[i].data, dest);
+ }
+ else if (species > NUM_SPECIES) // is species unknown? draw the ? icon
+ LZ77UnCompWram(gMonFrontPicTable[0].data, dest);
+ else
+ LZ77UnCompWram(src->data, dest);
+
+ DuplicateDeoxysTiles(dest, species);
+ DrawSpindaSpots(species, personality, dest, isFrontPic);
+}
+
+static void DuplicateDeoxysTiles(void *pointer, s32 species)
+{
+ if (species == SPECIES_DEOXYS)
+ CpuCopy32(pointer + 0x800, pointer, 0x800);
+}
+
+static void Unused_LZDecompressWramIndirect(const void **src, void *dest)
+{
+ LZ77UnCompWram(*src, dest);
+}
+
+#ifdef NONMATCHING
+static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3)
+{
+ u8 *v1, *v2;
+ int i, j, k, l;
+
+ if (a0 & 1)
+ {
+ u8 v40 = ((a0 >> 1) + 4);
+ for (i = 0; i < a1; ++i)
+ {
+ // this nested loop failed to match
+ for (j = 0; j < 8 - a0; ++j)
+ {
+ for (k = 0; k < 8; ++k)
+ {
+
+ v1 = a3 + 0x100 * v40 + 0x100 * (j >> 1) + 0x20 * k;
+ v2 = a3 + 0x20 * k + 0x100 * (j >> 1);
+ for (l = 0; l < 0x10; ++l)
+ {
+ if (!(j & 1))
+ {
+ v2[0] = j & 1;
+ v1[16] = 0;
+// a3[0x100 * (j / 2) + 0x20 * k + l] = 0;
+// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0;
+ }
+ else
+ {
+ v2[16] = 0;
+ v1[0x100] = 0;
+// a3[0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0;
+// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x100] = 0;
+ }
+ ++v1;
+ ++v2; // this should be generated if you write stuff inside operator [] instead of declaring v1/v2
+ }
+ }
+ }
+ for (j = 0; j < 2; ++j)
+ {
+ for (k = 0; k < 8; ++k)
+ {
+ for (l = 0; l < 0x20; ++l)
+ {
+ a3[0x100 * k + 0x20 * j + l] = 0;
+ a3[0x100 * k + 0xC0 + 0x20 * j + l] = 0;
+ }
+ }
+ }
+ if (a0 == 5)
+ a3 += 0x120;
+ for (j = 0; j < a0; ++j)
+ {
+ for (k = 0; k < a0; ++k)
+ {
+ for (l = 0; l < 4; ++l)
+ {
+ a3[0x12 + 4 * l] = a2[0 + 4 * l];
+ a3[0x13 + 4 * l] = a2[1 + 4 * l];
+ a3[0x12 + 0x1E + 4 * l] = a2[2 + 4 * l];
+ a3[0x12 + 0x1F + 4 * l] = a2[3 + 4 * l];
+ a3[0x102 + 4 * l] = a2[0x10 + 4 * l];
+ a3[0x103 + 4 * l] = a2[0x11 + 4 * l];
+ a3[0x120 + 4 * l] = a2[0x12 + 4 * l];
+ a3[0x121 + 4 * l] = a2[0x13 + 4 * l];
+ }
+ a2 += 0x20;
+ a3 += 0x20;
+ }
+ if (a0 == 7)
+ a3 += 0x20;
+ else if (a0 == 5)
+ a3 += 0x60;
+ }
+ if (a0 == 7)
+ a3 += 0x100;
+ else if (a0 == 5)
+ a3 += 0x1E0;
+ }
+ }
+ else
+ {
+ for (i = 0; i < a1; ++i)
+ {
+ if (a0 == 6)
+ for (j = 0; j < 0x100; ++j)
+ *a3++ = 0;
+ for (j = 0; j < a0; ++j)
+ {
+ if (a0 == 6)
+ for (k = 0; k < 0x20; ++k)
+ *a3++ = 0;
+ for (k = 0; k < 0x20 * a0; ++k)
+ *a3++ = *a2++;
+ if (a0 == 6)
+ for (k = 0; k < 0x20; ++k)
+ *a3++ = 0;
+ }
+ if (a0 == 6)
+ for (j = 0; j < 0x100; ++j)
+ *a3++ = 0;
+ }
+ }
+}
+#else
+NAKED
+static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3)
+{
+ asm_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, 0x24\n\
+ mov r9, r0\n\
+ str r1, [sp]\n\
+ str r2, [sp, 0x4]\n\
+ adds r5, r3, 0\n\
+ movs r0, 0x1\n\
+ mov r1, r9\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _0800EDFC\n\
+ b _0800EF94\n\
+ _0800EDFC:\n\
+ asrs r0, r1, 1\n\
+ adds r0, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ str r0, [sp, 0x8]\n\
+ movs r0, 0\n\
+ ldr r2, [sp]\n\
+ cmp r0, r2\n\
+ blt _0800EE10\n\
+ b _0800F024\n\
+ _0800EE10:\n\
+ movs r4, 0x8\n\
+ subs r1, r4, r1\n\
+ str r1, [sp, 0x10]\n\
+ _0800EE16:\n\
+ movs r7, 0\n\
+ adds r0, 0x1\n\
+ str r0, [sp, 0x14]\n\
+ ldr r0, [sp, 0x10]\n\
+ cmp r7, r0\n\
+ bge _0800EE92\n\
+ ldr r1, [sp, 0x8]\n\
+ lsls r1, 8\n\
+ str r1, [sp, 0x18]\n\
+ movs r2, 0\n\
+ mov r10, r2\n\
+ mov r0, r9\n\
+ movs r4, 0x8\n\
+ subs r0, r4, r0\n\
+ str r0, [sp, 0xC]\n\
+ _0800EE34:\n\
+ movs r3, 0\n\
+ asrs r0, r7, 1\n\
+ adds r1, r7, 0\n\
+ movs r2, 0x1\n\
+ ands r1, r2\n\
+ str r1, [sp, 0x20]\n\
+ lsls r0, 8\n\
+ mov r8, r0\n\
+ mov r12, r5\n\
+ _0800EE46:\n\
+ lsls r1, r3, 5\n\
+ ldr r4, [sp, 0x18]\n\
+ adds r0, r5, r4\n\
+ adds r0, r1\n\
+ mov r1, r8\n\
+ adds r2, r0, r1\n\
+ mov r1, r12\n\
+ add r1, r8\n\
+ movs r6, 0xF\n\
+ _0800EE58:\n\
+ ldr r4, [sp, 0x20]\n\
+ cmp r4, 0\n\
+ bne _0800EE68\n\
+ strb r4, [r1]\n\
+ add r4, sp, 0x20\n\
+ ldrb r4, [r4]\n\
+ strb r4, [r2, 0x10]\n\
+ b _0800EE76\n\
+ _0800EE68:\n\
+ mov r0, r10\n\
+ strb r0, [r1, 0x10]\n\
+ movs r4, 0x80\n\
+ lsls r4, 1\n\
+ adds r4, r2, r4\n\
+ str r4, [sp, 0x1C]\n\
+ strb r0, [r4]\n\
+ _0800EE76:\n\
+ adds r2, 0x1\n\
+ adds r1, 0x1\n\
+ subs r6, 0x1\n\
+ cmp r6, 0\n\
+ bge _0800EE58\n\
+ movs r0, 0x20\n\
+ add r12, r0\n\
+ adds r3, 0x1\n\
+ cmp r3, 0x7\n\
+ ble _0800EE46\n\
+ adds r7, 0x1\n\
+ ldr r1, [sp, 0xC]\n\
+ cmp r7, r1\n\
+ blt _0800EE34\n\
+ _0800EE92:\n\
+ movs r7, 0\n\
+ movs r2, 0\n\
+ _0800EE96:\n\
+ movs r6, 0\n\
+ adds r4, r7, 0x1\n\
+ mov r8, r4\n\
+ lsls r4, r7, 5\n\
+ _0800EE9E:\n\
+ adds r0, r6, 0x1\n\
+ mov r10, r0\n\
+ lsls r1, r6, 8\n\
+ adds r0, r1, 0\n\
+ adds r0, 0xC0\n\
+ adds r0, r5, r0\n\
+ adds r0, r4\n\
+ adds r1, r5, r1\n\
+ adds r1, r4\n\
+ movs r3, 0x1F\n\
+ _0800EEB2:\n\
+ strb r2, [r1]\n\
+ strb r2, [r0]\n\
+ adds r0, 0x1\n\
+ adds r1, 0x1\n\
+ subs r3, 0x1\n\
+ cmp r3, 0\n\
+ bge _0800EEB2\n\
+ mov r6, r10\n\
+ cmp r6, 0x7\n\
+ ble _0800EE9E\n\
+ mov r7, r8\n\
+ cmp r7, 0x1\n\
+ ble _0800EE96\n\
+ mov r1, r9\n\
+ cmp r1, 0x5\n\
+ bne _0800EED8\n\
+ movs r2, 0x90\n\
+ lsls r2, 1\n\
+ adds r5, r2\n\
+ _0800EED8:\n\
+ movs r7, 0\n\
+ cmp r7, r9\n\
+ bge _0800EF6E\n\
+ _0800EEDE:\n\
+ movs r3, 0\n\
+ adds r7, 0x1\n\
+ mov r8, r7\n\
+ cmp r3, r9\n\
+ bge _0800EF4E\n\
+ _0800EEE8:\n\
+ adds r3, 0x1\n\
+ mov r10, r3\n\
+ ldr r4, [sp, 0x4]\n\
+ adds r4, 0x20\n\
+ adds r7, r5, 0\n\
+ adds r7, 0x20\n\
+ movs r0, 0x12\n\
+ adds r0, r5\n\
+ mov r12, r0\n\
+ ldr r2, [sp, 0x4]\n\
+ adds r3, r5, 0\n\
+ movs r6, 0x3\n\
+ _0800EF00:\n\
+ ldrb r0, [r2]\n\
+ mov r1, r12\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r2, 0x1]\n\
+ strb r0, [r1, 0x1]\n\
+ ldrb r0, [r2, 0x2]\n\
+ strb r0, [r1, 0x1E]\n\
+ ldrb r0, [r2, 0x3]\n\
+ strb r0, [r1, 0x1F]\n\
+ movs r0, 0x81\n\
+ lsls r0, 1\n\
+ adds r1, r3, r0\n\
+ ldrb r0, [r2, 0x10]\n\
+ strb r0, [r1]\n\
+ ldr r0, _0800EF58 @ =0x00000103\n\
+ adds r1, r3, r0\n\
+ ldrb r0, [r2, 0x11]\n\
+ strb r0, [r1]\n\
+ movs r0, 0x90\n\
+ lsls r0, 1\n\
+ adds r1, r3, r0\n\
+ ldrb r0, [r2, 0x12]\n\
+ strb r0, [r1]\n\
+ ldr r0, _0800EF5C @ =0x00000121\n\
+ adds r1, r3, r0\n\
+ ldrb r0, [r2, 0x13]\n\
+ strb r0, [r1]\n\
+ movs r1, 0x4\n\
+ add r12, r1\n\
+ adds r2, 0x4\n\
+ adds r3, 0x4\n\
+ subs r6, 0x1\n\
+ cmp r6, 0\n\
+ bge _0800EF00\n\
+ str r4, [sp, 0x4]\n\
+ adds r5, r7, 0\n\
+ mov r3, r10\n\
+ cmp r3, r9\n\
+ blt _0800EEE8\n\
+ _0800EF4E:\n\
+ mov r2, r9\n\
+ cmp r2, 0x7\n\
+ bne _0800EF60\n\
+ adds r5, 0x20\n\
+ b _0800EF68\n\
+ .align 2, 0\n\
+ _0800EF58: .4byte 0x00000103\n\
+ _0800EF5C: .4byte 0x00000121\n\
+ _0800EF60:\n\
+ mov r4, r9\n\
+ cmp r4, 0x5\n\
+ bne _0800EF68\n\
+ adds r5, 0x60\n\
+ _0800EF68:\n\
+ mov r7, r8\n\
+ cmp r7, r9\n\
+ blt _0800EEDE\n\
+ _0800EF6E:\n\
+ mov r0, r9\n\
+ cmp r0, 0x7\n\
+ bne _0800EF7C\n\
+ movs r1, 0x80\n\
+ lsls r1, 1\n\
+ adds r5, r1\n\
+ b _0800EF88\n\
+ _0800EF7C:\n\
+ mov r2, r9\n\
+ cmp r2, 0x5\n\
+ bne _0800EF88\n\
+ movs r4, 0xF0\n\
+ lsls r4, 1\n\
+ adds r5, r4\n\
+ _0800EF88:\n\
+ ldr r0, [sp, 0x14]\n\
+ ldr r1, [sp]\n\
+ cmp r0, r1\n\
+ bge _0800EF92\n\
+ b _0800EE16\n\
+ _0800EF92:\n\
+ b _0800F024\n\
+ _0800EF94:\n\
+ movs r6, 0\n\
+ ldr r2, [sp]\n\
+ cmp r6, r2\n\
+ bge _0800F024\n\
+ _0800EF9C:\n\
+ adds r6, 0x1\n\
+ mov r10, r6\n\
+ mov r4, r9\n\
+ cmp r4, 0x6\n\
+ bne _0800EFB4\n\
+ movs r0, 0\n\
+ movs r3, 0xFF\n\
+ _0800EFAA:\n\
+ strb r0, [r5]\n\
+ adds r5, 0x1\n\
+ subs r3, 0x1\n\
+ cmp r3, 0\n\
+ bge _0800EFAA\n\
+ _0800EFB4:\n\
+ movs r7, 0\n\
+ cmp r7, r9\n\
+ bge _0800F008\n\
+ _0800EFBA:\n\
+ adds r7, 0x1\n\
+ mov r8, r7\n\
+ mov r1, r9\n\
+ lsls r0, r1, 5\n\
+ cmp r1, 0x6\n\
+ bne _0800EFD4\n\
+ movs r1, 0\n\
+ movs r3, 0x1F\n\
+ _0800EFCA:\n\
+ strb r1, [r5]\n\
+ adds r5, 0x1\n\
+ subs r3, 0x1\n\
+ cmp r3, 0\n\
+ bge _0800EFCA\n\
+ _0800EFD4:\n\
+ adds r1, r0, 0\n\
+ cmp r1, 0\n\
+ ble _0800EFEE\n\
+ adds r3, r1, 0\n\
+ _0800EFDC:\n\
+ ldr r2, [sp, 0x4]\n\
+ ldrb r0, [r2]\n\
+ strb r0, [r5]\n\
+ adds r2, 0x1\n\
+ str r2, [sp, 0x4]\n\
+ adds r5, 0x1\n\
+ subs r3, 0x1\n\
+ cmp r3, 0\n\
+ bne _0800EFDC\n\
+ _0800EFEE:\n\
+ mov r4, r9\n\
+ cmp r4, 0x6\n\
+ bne _0800F002\n\
+ movs r0, 0\n\
+ movs r3, 0x1F\n\
+ _0800EFF8:\n\
+ strb r0, [r5]\n\
+ adds r5, 0x1\n\
+ subs r3, 0x1\n\
+ cmp r3, 0\n\
+ bge _0800EFF8\n\
+ _0800F002:\n\
+ mov r7, r8\n\
+ cmp r7, r9\n\
+ blt _0800EFBA\n\
+ _0800F008:\n\
+ mov r0, r9\n\
+ cmp r0, 0x6\n\
+ bne _0800F01C\n\
+ movs r0, 0\n\
+ movs r3, 0xFF\n\
+ _0800F012:\n\
+ strb r0, [r5]\n\
+ adds r5, 0x1\n\
+ subs r3, 0x1\n\
+ cmp r3, 0\n\
+ bge _0800F012\n\
+ _0800F01C:\n\
+ mov r6, r10\n\
+ ldr r1, [sp]\n\
+ cmp r6, r1\n\
+ blt _0800EF9C\n\
+ _0800F024:\n\
+ add sp, 0x24\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\
+ ");
+}
+#endif
+
+bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src)
+{
+ struct SpriteSheet dest;
+ void* buffer;
+
+ buffer = AllocZeroed(*((u32*)src->data) >> 8);
+ if (!buffer)
+ return TRUE;
+ LZ77UnCompWram(src->data, buffer);
+ dest.data = buffer;
+ dest.size = src->size;
+ dest.tag = src->tag;
+ LoadSpriteSheet(&dest);
+ Free(buffer);
+ return FALSE;
+}
+
+bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src)
+{
+ struct SpritePalette dest;
+ void* buffer;
+
+ buffer = AllocZeroed(*((u32*)src->data) >> 8);
+ if (!buffer)
+ return TRUE;
+ LZ77UnCompWram(src->data, buffer);
+ dest.data = buffer;
+ dest.tag = src->tag;
+ LoadSpritePalette(&dest);
+ Free(buffer);
+ return FALSE;
+}
+
+u32 GetDecompressedDataSize(const u8 *ptr)
+{
+ u32 ptr32[1];
+ u8 *ptr8 = (u8 *)ptr32;
+
+ ptr8[0] = ptr[1];
+ ptr8[1] = ptr[2];
+ ptr8[2] = ptr[3];
+ ptr8[3] = 0;
+ return ptr32[0];
+}
+
+void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species)
+{
+ if (species > NUM_SPECIES)
+ LZ77UnCompWram(gMonFrontPicTable[0].data, buffer);
+ else
+ LZ77UnCompWram(src->data, buffer);
+}
+
+void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality)
+{
+ bool8 isFrontPic;
+
+ if (src == &gMonFrontPicTable[species])
+ isFrontPic = TRUE; // frontPic
+ else
+ isFrontPic = FALSE; // backPic
+ LoadSpecialPokePic_DontHandleDeoxys(src, dest, species, personality, isFrontPic);
+}
+
+void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic)
+{
+ if (species == SPECIES_UNOWN)
+ {
+ u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C;
+
+ // The other Unowns are separate from Unown A.
+ if (i == 0)
+ i = SPECIES_UNOWN;
+ else
+ i += SPECIES_UNOWN_B - 1;
+ if (!isFrontPic)
+ LZ77UnCompWram(gMonBackPicTable[i].data, dest);
+ else
+ LZ77UnCompWram(gMonFrontPicTable[i].data, dest);
+ }
+ else if (species > NUM_SPECIES) // is species unknown? draw the ? icon
+ {
+ LZ77UnCompWram(gMonFrontPicTable[0].data, dest);
+ }
+ else
+ {
+ LZ77UnCompWram(src->data, dest);
+ }
+ DrawSpindaSpots(species, personality, dest, isFrontPic);
+}
diff --git a/src/dma3_manager.c b/src/dma3_manager.c
index 10049a566..ec2cb932f 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;
@@ -9,7 +16,7 @@ static /*IWRAM_DATA*/ struct {
/* 0x0C */ u32 value;
} gDma3Requests[128];
-static bool8 gDma3ManagerLocked;
+static volatile bool8 gDma3ManagerLocked;
static u8 gDma3RequestCursor;
void ClearDma3Requests(void)
@@ -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_dig.c b/src/fldeff_dig.c
new file mode 100644
index 000000000..3a28c1adc
--- /dev/null
+++ b/src/fldeff_dig.c
@@ -0,0 +1,48 @@
+#include "global.h"
+#include "field_effect.h"
+#include "field_player_avatar.h"
+#include "fldeff.h"
+#include "item_use.h"
+#include "overworld.h"
+#include "party_menu.h"
+#include "sprite.h"
+#include "constants/map_objects.h"
+
+static void FieldCallback_Dig(void);
+static void sub_80C9AFC(void);
+
+bool8 SetUpFieldMove_Dig(void)
+{
+ if (CanUseEscapeRopeOnCurrMap() == TRUE)
+ {
+ gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
+ gPostMenuFieldCallback = FieldCallback_Dig;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void FieldCallback_Dig(void)
+{
+ Overworld_ResetStateAfterDigEscRope();
+ FieldEffectStart(FLDEFF_USE_DIG);
+ gFieldEffectArguments[0] = GetCursorSelectionMonId();
+}
+
+bool8 FldEff_UseDig(void)
+{
+ u8 taskId = oei_task_add();
+
+ FLDEFF_SET_FUNC_TO_DATA(sub_80C9AFC);
+ SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
+ return FALSE;
+}
+
+static void sub_80C9AFC(void)
+{
+ u8 taskId;
+
+ FieldEffectActiveListRemove(FLDEFF_USE_DIG);
+ taskId = CreateTask(sub_80A1C44, 8);
+ gTasks[taskId].data[0] = 0;
+}
diff --git a/src/fldeff_poison.c b/src/fldeff_poison.c
new file mode 100644
index 000000000..98f54b4d4
--- /dev/null
+++ b/src/fldeff_poison.c
@@ -0,0 +1,39 @@
+#include "global.h"
+#include "task.h"
+#include "bg.h"
+#include "sound.h"
+#include "constants/songs.h"
+
+static void Task_FieldPoisonEffect(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ data[1] += 1;
+ if (data[1] > 4)
+ data[0]++;
+ break;
+ case 1:
+ data[1] -= 1;
+ if (data[1] == 0)
+ data[0]++;
+ break;
+ case 2:
+ DestroyTask(taskId);
+ return;
+ }
+ AdjustBgMosaic((u8)(((u8)data[1] << 4) | (u8)data[1]), BG_MOSAIC_SET);
+}
+
+void FldEffPoison_Start(void)
+{
+ PlaySE(SE_DAUGI);
+ CreateTask(Task_FieldPoisonEffect, 80);
+}
+
+bool32 FldEffPoison_IsActive(void)
+{
+ return FuncIsActiveTask(Task_FieldPoisonEffect);
+}
diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c
new file mode 100644
index 000000000..517f3479a
--- /dev/null
+++ b/src/fldeff_rocksmash.c
@@ -0,0 +1,137 @@
+#include "global.h"
+#include "global.fieldmap.h"
+#include "field_player_avatar.h"
+#include "field_effect.h"
+#include "party_menu.h"
+#include "malloc.h"
+#include "event_data.h"
+#include "script.h"
+#include "fldeff.h"
+#include "event_scripts.h"
+#include "field_weather.h"
+#include "sound.h"
+#include "palette.h"
+#include "overworld.h"
+#include "wild_encounter.h"
+#include "field_map_obj.h"
+#include "constants/songs.h"
+#include "constants/map_objects.h"
+
+static void task08_080C9820(u8 taskId);
+static void sub_80C98FC(u8 taskId);
+static void sub_80C98B0(u8 taskId);
+static void sub_80C99A0(u8 taskId);
+static void sub_80C9A10(void);
+static void sub_80C9A60(void);
+
+bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId)
+{
+ u8 mapObjId;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
+ gPlayerFacingPosition.height = PlayerGetZCoord();
+ mapObjId = GetFieldObjectIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height);
+ if (gMapObjects[mapObjId].graphicsId != graphicsId)
+ return FALSE;
+ gSpecialVar_LastTalked = gMapObjects[mapObjId].localId;
+ return TRUE;
+}
+
+u8 oei_task_add(void)
+{
+ GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
+ return CreateTask(task08_080C9820, 8);
+}
+
+static void task08_080C9820(u8 taskId)
+{
+ u8 mapObjId;
+
+ ScriptContext2_Enable();
+ gPlayerAvatar.unk6 = TRUE;
+ mapObjId = gPlayerAvatar.mapObjectId;
+ if (!FieldObjectIsMovementOverridden(&gMapObjects[mapObjId])
+ || FieldObjectClearHeldMovementIfFinished(&gMapObjects[mapObjId]))
+ {
+ if (gMapHeader.mapType == MAP_TYPE_UNDERWATER)
+ {
+ FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
+ gTasks[taskId].func = sub_80C98FC;
+ }
+ else
+ {
+ sub_805CB70();
+ FieldObjectSetHeldMovement(&gMapObjects[mapObjId], 0x45);
+ gTasks[taskId].func = sub_80C98B0;
+ }
+ }
+}
+
+static void sub_80C98B0(u8 taskId)
+{
+ if (FieldObjectCheckHeldMovementStatus(&gMapObjects[gPlayerAvatar.mapObjectId]) == TRUE)
+ {
+ FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
+ gTasks[taskId].func = sub_80C98FC;
+ }
+}
+
+static void sub_80C98FC(u8 taskId)
+{
+ if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
+ {
+ gFieldEffectArguments[1] = GetPlayerFacingDirection();
+ if (gFieldEffectArguments[1] == 1)
+ gFieldEffectArguments[2] = 0;
+ if (gFieldEffectArguments[1] == 2)
+ gFieldEffectArguments[2] = 1;
+ if (gFieldEffectArguments[1] == 3)
+ gFieldEffectArguments[2] = 2;
+ if (gFieldEffectArguments[1] == 4)
+ gFieldEffectArguments[2] = 3;
+ EventObjectSetGraphicsId(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByCurrentState());
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]);
+ FieldEffectActiveListRemove(6);
+ gTasks[taskId].func = sub_80C99A0;
+ }
+}
+
+static void sub_80C99A0(u8 taskId)
+{
+ FLDEFF_CALL_FUNC_IN_DATA();
+ gPlayerAvatar.unk6 = FALSE;
+ DestroyTask(taskId);
+}
+
+bool8 SetUpFieldMove_RockSmash(void)
+{
+ if (CheckObjectGraphicsInFrontOfPlayer(/*MAP_OBJ_GFX_BREAKABLE_ROCK*/0x60) == TRUE)
+ {
+ gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
+ gPostMenuFieldCallback = sub_80C9A10;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void sub_80C9A10(void)
+{
+ gFieldEffectArguments[0] = GetCursorSelectionMonId();
+ ScriptContext1_SetupScript(EventScript_FldEffRockSmash);
+}
+
+bool8 FldEff_UseRockSmash(void)
+{
+ u8 taskId = oei_task_add();
+
+ FLDEFF_SET_FUNC_TO_DATA(sub_80C9A60);
+ IncrementGameStat(GAME_STAT_USED_ROCK_SMASH);
+ return FALSE;
+}
+
+static void sub_80C9A60(void)
+{
+ PlaySE(SE_W145);
+ FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH);
+ EnableBothScriptContexts();
+}
diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c
index 50c715388..2a3d68e70 100644
--- a/src/fldeff_softboiled.c
+++ b/src/fldeff_softboiled.c
@@ -4,11 +4,12 @@
#include "string_util.h"
#include "menu.h"
#include "constants/songs.h"
+#include "fldeff.h"
-void sub_80E57E8(u8 taskId);
-void sub_80E583C(u8 taskId);
-void sub_80E58A0(u8 taskId);
-void sub_80E5934(u8 taskId);
+static void sub_80E57E8(u8 taskId);
+static void sub_80E583C(u8 taskId);
+static void sub_80E58A0(u8 taskId);
+static void sub_80E5934(u8 taskId);
extern const u8 gUnknown_84169F8[];
extern const u8 gUnknown_8416F27[];
@@ -61,22 +62,22 @@ void sub_80E5724(u8 taskId)
}
}
-void sub_80E57E8(u8 taskId)
+static void sub_80E57E8(u8 taskId)
{
PlaySE(SE_KAIFUKU);
sub_8120760(taskId, gUnknown_203B0A0.unkA, 1, GetMonData(&gPlayerParty[gUnknown_203B0A0.unk9], MON_DATA_MAX_HP) / 5, sub_80E583C);
}
-void sub_80E583C(u8 taskId)
+static 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;
}
-void sub_80E58A0(u8 taskId)
+static void sub_80E58A0(u8 taskId)
{
if (sub_8120370() != TRUE)
{
@@ -91,7 +92,7 @@ void sub_80E58A0(u8 taskId)
}
}
-void sub_80E5900(u8 taskId)
+static void sub_80E5900(u8 taskId)
{
if (sub_8120370() != TRUE)
{
@@ -100,10 +101,10 @@ void sub_80E5900(u8 taskId)
}
}
-void sub_80E5934(u8 taskId)
+static 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/fldeff_strength.c b/src/fldeff_strength.c
new file mode 100644
index 000000000..3f3254ade
--- /dev/null
+++ b/src/fldeff_strength.c
@@ -0,0 +1,47 @@
+#include "global.h"
+#include "field_player_avatar.h"
+#include "field_effect.h"
+#include "party_menu.h"
+#include "event_data.h"
+#include "script.h"
+#include "fldeff.h"
+#include "event_scripts.h"
+#include "constants/songs.h"
+#include "constants/map_objects.h"
+
+static void FldEff_UseStrength(void);
+static void sub_80D08A8(void);
+
+bool8 SetUpFieldMove_Strength(void)
+{
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(/*MAP_OBJ_GFX_PUSHABLE_BOULDER*/0x61) != TRUE)
+ {
+ return FALSE;
+ }
+ else
+ {
+ gSpecialVar_Result = GetCursorSelectionMonId();
+ gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
+ gPostMenuFieldCallback = FldEff_UseStrength;
+ return TRUE;
+ }
+}
+static void FldEff_UseStrength(void)
+{
+ gFieldEffectArguments[0] = GetCursorSelectionMonId();
+ ScriptContext1_SetupScript(EventScript_FldEffStrength);
+}
+
+bool8 sub_80D0860(void)
+{
+ u8 taskId = oei_task_add();
+ FLDEFF_SET_FUNC_TO_DATA(sub_80D08A8);
+ GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1);
+ return FALSE;
+}
+
+static void sub_80D08A8(void)
+{
+ FieldEffectActiveListRemove(FLDEFF_USE_STRENGTH);
+ EnableBothScriptContexts();
+}
diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c
new file mode 100644
index 000000000..9c6115044
--- /dev/null
+++ b/src/fldeff_sweetscent.c
@@ -0,0 +1,101 @@
+#include "global.h"
+#include "field_player_avatar.h"
+#include "field_effect.h"
+#include "party_menu.h"
+#include "malloc.h"
+#include "event_data.h"
+#include "script.h"
+#include "fldeff.h"
+#include "event_scripts.h"
+#include "field_weather.h"
+#include "sound.h"
+#include "palette.h"
+#include "wild_encounter.h"
+#include "constants/songs.h"
+
+static void FieldCallback_SweetScent(void);
+static void StartSweetScentFieldEffect(void);
+static void TrySweetScentEncounter(u8 taskId);
+static void FailSweetScentEncounter(u8 taskId);
+
+static void Unused_StartSweetscentFldeff(void)
+{
+ gUnknown_203B0A0.unk9 = 0;
+ FieldCallback_SweetScent();
+}
+
+bool8 SetUpFieldMove_SweetScent(void)
+{
+ gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
+ gPostMenuFieldCallback = FieldCallback_SweetScent;
+ return TRUE;
+}
+
+static void FieldCallback_SweetScent(void)
+{
+ FieldEffectStart(FLDEFF_SWEET_SCENT);
+ gFieldEffectArguments[0] = GetCursorSelectionMonId();
+}
+
+bool8 FldEff_SweetScent(void)
+{
+ u8 taskId;
+
+ SetWeatherScreenFadeOut();
+ taskId = oei_task_add();
+ FLDEFF_SET_FUNC_TO_DATA(StartSweetScentFieldEffect);
+ return FALSE;
+}
+
+static void StartSweetScentFieldEffect(void)
+{
+ u8 taskId;
+
+ PlaySE(SE_W260);
+ gPaletteDecompressionBuffer = (u8 *)Alloc(0x400);
+ CpuFastSet(gPlttBufferUnfaded, gPaletteDecompressionBuffer, 0x100);
+ CpuFastSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x100);
+ BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, RGB(31, 0, 0));
+ taskId = CreateTask(TrySweetScentEncounter, 0);
+ gTasks[taskId].data[0] = 0;
+ FieldEffectActiveListRemove(FLDEFF_SWEET_SCENT);
+}
+
+static void TrySweetScentEncounter(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ if (data[0] == 64)
+ {
+ data[0] = 0;
+ if (SweetScentWildEncounter() == TRUE)
+ {
+ Free(gPaletteDecompressionBuffer);
+ DestroyTask(taskId);
+ }
+ else
+ {
+ gTasks[taskId].func = FailSweetScentEncounter;
+ BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 8, 0, RGB(31, 0, 0));
+ }
+ }
+ else
+ {
+ data[0]++;
+ }
+ }
+}
+
+static void FailSweetScentEncounter(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ CpuFastSet(gPaletteDecompressionBuffer, gPlttBufferUnfaded, 0x100);
+ sub_807B070();
+ Free(gPaletteDecompressionBuffer);
+ ScriptContext1_SetupScript(EventScript_FailSweetScent);
+ DestroyTask(taskId);
+ }
+}
diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c
index 74fad1110..a66a332bf 100644
--- a/src/fldeff_teleport.c
+++ b/src/fldeff_teleport.c
@@ -29,8 +29,7 @@ static void FieldCallback_Teleport(void)
bool8 FldEff_UseTeleport(void)
{
u8 taskId = oei_task_add();
- gTasks[taskId].data[8] = (u32)StartTeleportFieldEffect >> 16;
- gTasks[taskId].data[9] = (u32)StartTeleportFieldEffect;
+ FLDEFF_SET_FUNC_TO_DATA(StartTeleportFieldEffect);
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
return FALSE;
}
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_menu_icons.c b/src/item_menu_icons.c
index a244a1075..0c2c60437 100644
--- a/src/item_menu_icons.c
+++ b/src/item_menu_icons.c
@@ -683,7 +683,7 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
spritePalette.data = sub_8098974(itemId, 1);
spritePalette.tag = paletteTag;
- LoadCompressedObjectPalette(&spritePalette);
+ LoadCompressedSpritePalette(&spritePalette);
CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate));
template.tileTag = tilesTag;
@@ -714,7 +714,7 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
spritePalette.data = sub_8098974(itemId, 1);
spritePalette.tag = paletteTag;
- LoadCompressedObjectPalette(&spritePalette);
+ LoadCompressedSpritePalette(&spritePalette);
CpuCopy16(origTemplate, &template, sizeof(struct SpriteTemplate));
template.tileTag = tilesTag;
diff --git a/src/item_pc.c b/src/item_pc.c
index afc82a73f..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]++;
@@ -452,11 +452,11 @@ static bool8 ItemPc_LoadGraphics(void)
sStateDataPtr->data[0]++;
break;
case 3:
- LoadCompressedObjectPic(&gBagSwapSpriteSheet);
+ LoadCompressedSpriteSheet(&gBagSwapSpriteSheet);
sStateDataPtr->data[0]++;
break;
default:
- LoadCompressedObjectPalette(&gBagSwapSpritePalette);
+ LoadCompressedSpritePalette(&gBagSwapSpritePalette);
sStateDataPtr->data[0] = 0;
return TRUE;
}
@@ -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/item_use.c b/src/item_use.c
index a7146b65e..3653a1699 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -68,7 +68,6 @@ void sub_80A19E8(u8 taskId);
void sub_80A1A44(void);
void sub_80A1B48(u8 taskId);
void sub_80A1C08(u8 taskId);
-void sub_80A1C44(u8 taskId);
void sub_80A1CAC(void);
void sub_80A1CC0(u8 taskId);
void sub_80A1D58(void);
@@ -557,7 +556,7 @@ void sub_80A1B48(u8 taskId)
}
}
-bool8 sub_80A1B8C(void)
+bool8 CanUseEscapeRopeOnCurrMap(void)
{
if (gMapHeader.escapeRope & 1)
return TRUE;
@@ -567,7 +566,7 @@ bool8 sub_80A1B8C(void)
void ItemUseOutOfBattle_EscapeRope(u8 taskId)
{
- if (sub_80A1B8C() == TRUE)
+ if (CanUseEscapeRopeOnCurrMap() == TRUE)
{
ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, gMapHeader.regionMapSectionId);
sItemUseOnFieldCB = sub_80A1C08;
@@ -579,7 +578,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId)
void sub_80A1C08(u8 taskId)
{
- sub_8054D70();
+ Overworld_ResetStateAfterDigEscRope();
sub_80A1A44();
gTasks[taskId].data[0] = 0;
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A1C44);
diff --git a/src/load_save.c b/src/load_save.c
index 8d09a86a8..0a7bbbfc5 100644
--- a/src/load_save.c
+++ b/src/load_save.c
@@ -6,6 +6,7 @@
#include "random.h"
#include "malloc.h"
#include "item.h"
+#include "save_location.h"
extern void SetBagPocketsPointers(void);
extern void sub_8110840(void *oldSave);
@@ -132,28 +133,28 @@ void MoveSaveBlocks_ResetHeap(void)
u32 sav2_x1_query_bit1(void)
{
- return gSaveBlock2Ptr->specialSaveWarp & 1;
+ return gSaveBlock2Ptr->specialSaveWarpFlags & CONTINUE_GAME_WARP;
}
void sav2_x9_clear_bit1(void)
{
- gSaveBlock2Ptr->specialSaveWarp &= ~1;
+ gSaveBlock2Ptr->specialSaveWarpFlags &= ~CONTINUE_GAME_WARP;
}
void sub_804C1AC(void)
{
- gSaveBlock2Ptr->specialSaveWarp |= 1;
+ gSaveBlock2Ptr->specialSaveWarpFlags |= CONTINUE_GAME_WARP;
}
void sub_804C1C0(void)
{
sub_8055778(0);
- gSaveBlock2Ptr->specialSaveWarp |= 1;
+ gSaveBlock2Ptr->specialSaveWarpFlags |= CONTINUE_GAME_WARP;
}
void sav2_gender2_inplace_and_xFE(void)
{
- gSaveBlock2Ptr->specialSaveWarp &= ~1;
+ gSaveBlock2Ptr->specialSaveWarpFlags &= ~CONTINUE_GAME_WARP;
}
void SavePlayerParty(void)
diff --git a/src/mail_data.c b/src/mail_data.c
new file mode 100644
index 000000000..d4fa649e1
--- /dev/null
+++ b/src/mail_data.c
@@ -0,0 +1,186 @@
+#include "global.h"
+#include "text.h"
+#include "mail.h"
+#include "mail_data.h"
+#include "constants/species.h"
+#include "constants/items.h"
+#include "pokemon_icon.h"
+
+void ClearMailData(void)
+{
+ u8 i;
+
+ for (i = 0; i < MAIL_COUNT; i++)
+ ClearMailStruct(&gSaveBlock1Ptr->mail[i]);
+}
+
+void ClearMailStruct(struct MailStruct *mail)
+{
+ s32 i;
+
+ for (i = 0; i < MAIL_WORDS_COUNT; i++)
+ mail->words[i] = 0xFFFF;
+ for (i = 0; i < PLAYER_NAME_LENGTH; i++)
+ mail->playerName[i] = EOS;
+ for (i = 0; i < 4; i++)
+ mail->trainerId[i] = 0;
+ mail->species = SPECIES_BULBASAUR;
+ mail->itemId = ITEM_NONE;
+}
+
+bool8 MonHasMail(struct Pokemon *mon)
+{
+ u16 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM);
+ if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != 0xFF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+u8 GiveMailToMon(struct Pokemon *mon, u16 itemId)
+{
+ u8 heldItem[2];
+ u8 id, i;
+ u16 species;
+ u32 personality;
+
+ heldItem[0] = itemId;
+ heldItem[1] = itemId >> 8;
+ for (id = 0; id < PARTY_SIZE; id++)
+ {
+ if (gSaveBlock1Ptr->mail[id].itemId == 0)
+ {
+ for (i = 0; i < MAIL_WORDS_COUNT; i++)
+ gSaveBlock1Ptr->mail[id].words[i] = 0xFFFF;
+ for (i = 0; i < PLAYER_NAME_LENGTH - 1 && gSaveBlock2Ptr->playerName[i] != EOS; i++)
+ gSaveBlock1Ptr->mail[id].playerName[i] = gSaveBlock2Ptr->playerName[i];
+ for (; i <= 5; i++)
+ gSaveBlock1Ptr->mail[id].playerName[i] = CHAR_SPACE;
+ gSaveBlock1Ptr->mail[id].playerName[i] = EOS;
+ for (i = 0; i < 4; i++)
+ gSaveBlock1Ptr->mail[id].trainerId[i] = gSaveBlock2Ptr->playerTrainerId[i];
+ species = GetBoxMonData(&mon->box, MON_DATA_SPECIES);
+ personality = GetBoxMonData(&mon->box, MON_DATA_PERSONALITY);
+ gSaveBlock1Ptr->mail[id].species = SpeciesToMailSpecies(species, personality);
+ gSaveBlock1Ptr->mail[id].itemId = itemId;
+ SetMonData(mon, MON_DATA_MAIL, &id);
+ SetMonData(mon, MON_DATA_HELD_ITEM, heldItem);
+ return id;
+ }
+ }
+ return 0xFF;
+}
+
+u16 SpeciesToMailSpecies(u16 species, u32 personality)
+{
+ if (species == SPECIES_UNOWN) {
+ u32 mailSpecies = GetUnownLetterByPersonality(personality) + 30000;
+ return mailSpecies;
+ }
+ return species;
+}
+
+u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *unownLetter)
+{
+ u16 result;
+
+ if (mailSpecies >= 30000 && mailSpecies < (30000 + UNOWN_FORM_COUNT))
+ {
+ result = SPECIES_UNOWN;
+ *unownLetter = mailSpecies - 30000;
+ }
+ else
+ {
+ result = mailSpecies;
+ }
+ return result;
+}
+
+u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail)
+{
+ u8 heldItem[2];
+ u16 itemId = mail->itemId;
+ u8 mailId = GiveMailToMon(mon, itemId);
+
+ if (mailId == 0xFF)
+ return 0xFF;
+ gSaveBlock1Ptr->mail[mailId] = *mail;
+ SetMonData(mon, MON_DATA_MAIL, &mailId);
+ heldItem[0] = itemId;
+ heldItem[1] = itemId >> 8;
+
+ SetMonData(mon, MON_DATA_HELD_ITEM, heldItem);
+
+ return mailId;
+}
+
+static bool32 DummyMailFunc(void)
+{
+ return FALSE;
+}
+
+void TakeMailFromMon(struct Pokemon *mon)
+{
+ u8 heldItem[2];
+ u8 mailId;
+
+ if (MonHasMail(mon))
+ {
+ mailId = GetMonData(mon, MON_DATA_MAIL);
+ gSaveBlock1Ptr->mail[mailId].itemId = ITEM_NONE;
+ mailId = 0xFF;
+ heldItem[0] = ITEM_NONE;
+ heldItem[1] = ITEM_NONE << 8;
+ SetMonData(mon, MON_DATA_MAIL, &mailId);
+ SetMonData(mon, MON_DATA_HELD_ITEM, heldItem);
+ }
+}
+
+void ClearMailItemId(u8 mailId)
+{
+ gSaveBlock1Ptr->mail[mailId].itemId = ITEM_NONE;
+}
+
+u8 TakeMailFromMon2(struct Pokemon *mon)
+{
+ u8 i, newMailId;
+ u8 newHeldItem[2];
+
+ newHeldItem[0] = ITEM_NONE;
+ newHeldItem[1] = ITEM_NONE << 8;
+ newMailId = 0xFF;
+ for (i = PARTY_SIZE; i < MAIL_COUNT; i++)
+ {
+ if (gSaveBlock1Ptr->mail[i].itemId == ITEM_NONE)
+ {
+ memcpy(&gSaveBlock1Ptr->mail[i], &gSaveBlock1Ptr->mail[GetMonData(mon, MON_DATA_MAIL)], sizeof(struct MailStruct));
+ gSaveBlock1Ptr->mail[GetMonData(mon, MON_DATA_MAIL)].itemId = ITEM_NONE;
+ SetMonData(mon, MON_DATA_MAIL, &newMailId);
+ SetMonData(mon, MON_DATA_HELD_ITEM, newHeldItem);
+ return i;
+ }
+ }
+ return 0xFF;
+}
+
+bool8 ItemIsMail(u16 itemId)
+{
+ switch (itemId)
+ {
+ case ITEM_ORANGE_MAIL:
+ case ITEM_HARBOR_MAIL:
+ case ITEM_GLITTER_MAIL:
+ case ITEM_MECH_MAIL:
+ case ITEM_WOOD_MAIL:
+ case ITEM_WAVE_MAIL:
+ case ITEM_BEAD_MAIL:
+ case ITEM_SHADOW_MAIL:
+ case ITEM_TROPIC_MAIL:
+ case ITEM_DREAM_MAIL:
+ case ITEM_FAB_MAIL:
+ case ITEM_RETRO_MAIL:
+ return TRUE;
+ default:
+ return FALSE;
+ }
+}
diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c
index cdd74a5b9..f89819647 100644
--- a/src/map_obj_lock.c
+++ b/src/map_obj_lock.c
@@ -89,7 +89,7 @@ void LockSelectedMapObject(void)
void sub_80696C0(void)
{
u8 fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
- FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[fieldObjectId]);
+ FieldObjectClearHeldMovementIfFinished(&gMapObjects[fieldObjectId]);
sub_80974D8();
UnfreezeMapObjects();
}
@@ -98,9 +98,9 @@ void sub_80696F0(void)
{
u8 fieldObjectId;
if (gMapObjects[gSelectedEventObject].active)
- FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]);
+ FieldObjectClearHeldMovementIfFinished(&gMapObjects[gSelectedEventObject]);
fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
- FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[fieldObjectId]);
+ FieldObjectClearHeldMovementIfFinished(&gMapObjects[fieldObjectId]);
sub_80974D8();
UnfreezeMapObjects();
}
diff --git a/src/menu2.c b/src/menu2.c
index 9a1846c7e..ffe5865e4 100644
--- a/src/menu2.c
+++ b/src/menu2.c
@@ -820,7 +820,7 @@ u8 sub_812EA78(u16 species, u32 personality, u8 a2)
{
if (species == SPECIES_UNOWN)
{
- u8 unownLetter = GetUnownLetterByPersonality(personality);
+ u8 unownLetter = GetUnownLetterByPersonalityLoByte(personality);
switch (unownLetter)
{
case 0:
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index 034a07679..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);
@@ -402,7 +402,7 @@ void sub_8146060(void)
}
if (gUnknown_203F3C8->unk_0000.unk_09 != 0 && gUnknown_203F3C8->unk_0000.unk_08_0 == 1)
{
- sub_800F034(&gUnknown_8467F58);
+ LoadCompressedSpriteSheetUsingHeap(&gUnknown_8467F58);
LoadSpritePalette(&gUnknown_8467F60[gUnknown_203F3C8->unk_0170->textPal4]);
for (; r7 < gUnknown_203F3C8->unk_0000.unk_09; r7++)
{
@@ -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..cfc9821d2
--- /dev/null
+++ b/src/multiboot.c
@@ -0,0 +1,416 @@
+#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, j, 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 = 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 3bf174778..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);
@@ -1613,7 +1613,7 @@ static void CreateNidoranFSprite(u8 taskId)
u8 spriteId;
DecompressPicFromTable(gUnknown_8235194, sub_8044E00(0), SPECIES_NIDORAN_F);
- sub_800F078(&gUnknown_82373F4);
+ LoadCompressedSpritePaletteUsingHeap(&gUnknown_82373F4);
SetMultiuseSpriteTemplateToPokemon(SPECIES_NIDORAN_F, 0);
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x60, 0x60, 1);
gSprites[spriteId].callback = SpriteCallbackDummy;
@@ -1635,9 +1635,9 @@ static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 st
switch (state)
{
case 0:
- LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[0]);
- LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[1]);
- LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[2]);
+ LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[0]);
+ LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[1]);
+ LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[2]);
LoadSpritePalette(&sOakSpeech_PikaSpritePal);
spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[0], 0x10, 0x11, 2);
gSprites[spriteId].oam.priority = 0;
@@ -1654,7 +1654,7 @@ static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 st
gTasks[taskId].data[9] = spriteId;
break;
case 1:
- LoadCompressedObjectPic(&sOakSpeech_GrassPlatformSpriteSheet);
+ LoadCompressedSpriteSheet(&sOakSpeech_GrassPlatformSpriteSheet);
LoadSpritePalette(&sOakSpeech_GrassPlatformSpritePal);
for (i = 0; i < 3; i++)
{
@@ -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..04f4b2040
--- /dev/null
+++ b/src/play_time.c
@@ -0,0 +1,65 @@
+#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..fe83f67e9 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -859,7 +859,7 @@ void sub_8110F14(u8 taskId)
}
else
{
- SetMainCallback2(sub_8056938);
+ SetMainCallback2(CB2_ContinueSavedGame);
DestroyTask(taskId);
}
}
@@ -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]++;
@@ -1705,7 +1705,7 @@ void sub_811246C(struct Sprite *sprite)
{
if (gUnknown_203AF9A[0][0] != 0xFF)
{
- sub_8063CA4(mapObject, gUnknown_203AF9A[0][0]);
+ FieldObjectSetHeldMovement(mapObject, gUnknown_203AF9A[0][0]);
gUnknown_203AF9A[0][0] = 0xFF;
}
if (gUnknown_203AF9A[0][1] != 0xFF)
@@ -1719,7 +1719,7 @@ void sub_811246C(struct Sprite *sprite)
{
if (gUnknown_203AF9A[mapObject->localId][0] != 0xFF)
{
- sub_8063CA4(mapObject, gUnknown_203AF9A[mapObject->localId][0]);
+ FieldObjectSetHeldMovement(mapObject, gUnknown_203AF9A[mapObject->localId][0]);
gUnknown_203AF9A[mapObject->localId][0] = 0xFF;
}
sub_8063E28(mapObject, sprite);
@@ -1911,7 +1911,7 @@ void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2)
gUnknown_3005E94[gUnknown_203AF98].unk_4 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 0;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0;
- switch (player_get_direction_lower_nybble())
+ switch (GetPlayerFacingDirection())
{
case 0:
case 1:
@@ -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/quest_log_8150454.c b/src/quest_log_8150454.c
index 8af516e3a..3d61dee72 100644
--- a/src/quest_log_8150454.c
+++ b/src/quest_log_8150454.c
@@ -115,7 +115,7 @@ void sub_81505C4(u8 taskId)
gTasks[taskId].data[0]++;
break;
case 2:
- StartSpriteAnim(sprite, sub_8063500(player_get_direction_lower_nybble()));
+ StartSpriteAnim(sprite, sub_8063500(GetPlayerFacingDirection()));
gTasks[taskId].data[0]++;
break;
case 3:
@@ -173,7 +173,7 @@ void sub_8150794(u8 taskId)
void sub_81507BC(struct MapObject * a0, u8 a1)
{
- sub_805F060(a0, a1);
+ EventObjectSetGraphicsId(a0, a1);
}
void sub_81507CC(void)
diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c
new file mode 100644
index 000000000..428f7b88d
--- /dev/null
+++ b/src/reset_save_heap.c
@@ -0,0 +1,29 @@
+#include "global.h"
+#include "main.h"
+#include "gpu_regs.h"
+#include "m4a.h"
+#include "load_save.h"
+#include "save.h"
+#include "new_game.h"
+#include "overworld.h"
+#include "malloc.h"
+
+void sub_8079B7C(void)
+{
+ u16 imeBackup = REG_IME;
+
+ REG_IME = 0;
+ RegisterRamReset(RESET_EWRAM);
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_FORCED_BLANK);
+ REG_IME = imeBackup;
+ gMain.inBattle = FALSE;
+ SetSaveBlocksPointers();
+ ResetMenuAndMonGlobals();
+ Save_ResetSaveCounters();
+ Save_LoadGameData(0);
+ if (gSaveFileStatus == 0 || gSaveFileStatus == 2)
+ Sav2_ClearSetDefault();
+ SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound);
+ InitHeap(gHeap, HEAP_SIZE);
+ SetMainCallback2(CB2_ContinueSavedGame);
+}
diff --git a/src/save_location.c b/src/save_location.c
new file mode 100644
index 000000000..9b679c7ee
--- /dev/null
+++ b/src/save_location.c
@@ -0,0 +1,108 @@
+#include "global.h"
+#include "save_location.h"
+#include "constants/maps.h"
+
+static bool32 IsCurMapInLocationList(const u16 *list)
+{
+ s32 i;
+ u16 locSum = (gSaveBlock1Ptr->location.mapGroup << 8) + (gSaveBlock1Ptr->location.mapNum);
+
+ for (i = 0; list[i] != 0xFFFF; i++)
+ {
+ if (list[i] == locSum)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static const u16 sSaveLocationPokeCenterList[] =
+{
+ MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F, MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F,
+ MAP_PEWTER_CITY_POKEMON_CENTER_1F, MAP_PEWTER_CITY_POKEMON_CENTER_2F,
+ MAP_CERULEAN_CITY_POKEMON_CENTER_1F, MAP_CERULEAN_CITY_POKEMON_CENTER_2F,
+ MAP_LAVENDER_TOWN_POKEMON_CENTER_1F, MAP_LAVENDER_TOWN_POKEMON_CENTER_2F,
+ MAP_VERMILION_CITY_POKEMON_CENTER_1F, MAP_VERMILION_CITY_POKEMON_CENTER_2F,
+ MAP_CELADON_CITY_POKEMON_CENTER_1F, MAP_CELADON_CITY_POKEMON_CENTER_2F,
+ MAP_FUCHSIA_CITY_POKEMON_CENTER_1F, MAP_FUCHSIA_CITY_POKEMON_CENTER_2F,
+ MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F, MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F,
+ MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F, MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F,
+ MAP_SAFFRON_CITY_POKEMON_CENTER_1F, MAP_SAFFRON_CITY_POKEMON_CENTER_2F,
+ MAP_ROUTE4_POKEMON_CENTER_1F, MAP_ROUTE4_POKEMON_CENTER_2F,
+ MAP_ROUTE10_POKEMON_CENTER_1F, MAP_ROUTE10_POKEMON_CENTER_2F,
+ MAP_ONE_ISLAND_POKEMON_CENTER_1F, MAP_ONE_ISLAND_POKEMON_CENTER_2F,
+ MAP_TWO_ISLAND_POKEMON_CENTER_1F, MAP_TWO_ISLAND_POKEMON_CENTER_2F,
+ MAP_THREE_ISLAND_POKEMON_CENTER_1F, MAP_THREE_ISLAND_POKEMON_CENTER_2F,
+ MAP_FOUR_ISLAND_POKEMON_CENTER_1F, MAP_FOUR_ISLAND_POKEMON_CENTER_2F,
+ MAP_FIVE_ISLAND_POKEMON_CENTER_1F, MAP_FIVE_ISLAND_POKEMON_CENTER_2F,
+ MAP_SEVEN_ISLAND_POKEMON_CENTER_1F, MAP_SEVEN_ISLAND_POKEMON_CENTER_2F,
+ MAP_SIX_ISLAND_POKEMON_CENTER_1F, MAP_SIX_ISLAND_POKEMON_CENTER_2F,
+ MAP_UNKNOWN_MAP_00_00, MAP_UNKNOWN_MAP_00_01,
+ MAP_UNKNOWN_MAP_00_03, MAP_UNKNOWN_MAP_00_04,
+ 0xFFFF,
+};
+
+bool32 IsCurMapPokeCenter(void)
+{
+ return IsCurMapInLocationList(sSaveLocationPokeCenterList);
+}
+
+static const u16 sSaveLocationReloadLocList[] = { 0xFFFF };
+
+static bool32 IsCurMapReloadLocation(void)
+{
+ return IsCurMapInLocationList(sSaveLocationReloadLocList);
+}
+
+static const u16 sUnknown_8453094[] = { 0xFFFF };
+
+static bool32 sub_810B75C(void)
+{
+ return IsCurMapInLocationList(sUnknown_8453094);
+}
+
+static void TrySetPokeCenterWarpStatus(void)
+{
+ if (IsCurMapPokeCenter() == FALSE)
+ gSaveBlock2Ptr->specialSaveWarpFlags &= ~(POKECENTER_SAVEWARP);
+ else
+ gSaveBlock2Ptr->specialSaveWarpFlags |= POKECENTER_SAVEWARP;
+}
+
+static void TrySetReloadWarpStatus(void)
+{
+ if (!IsCurMapReloadLocation())
+ gSaveBlock2Ptr->specialSaveWarpFlags &= ~(LOBBY_SAVEWARP);
+ else
+ gSaveBlock2Ptr->specialSaveWarpFlags |= LOBBY_SAVEWARP;
+}
+
+static void sub_810B7CC(void)
+{
+ if (!sub_810B75C())
+ gSaveBlock2Ptr->specialSaveWarpFlags &= ~(UNK_SPECIAL_SAVE_WARP_FLAG_3);
+ else
+ gSaveBlock2Ptr->specialSaveWarpFlags |= UNK_SPECIAL_SAVE_WARP_FLAG_3;
+}
+
+void TrySetMapSaveWarpStatus(void)
+{
+ TrySetPokeCenterWarpStatus();
+ TrySetReloadWarpStatus();
+ sub_810B7CC();
+}
+
+void sub_810B810(void)
+{
+ gSaveBlock2Ptr->field_A8 |= 0x1;
+ gSaveBlock2Ptr->field_A8 |= 0x10;
+ gSaveBlock2Ptr->field_A8 |= 0x20;
+}
+
+void sub_810B82C(void)
+{
+ gSaveBlock2Ptr->specialSaveWarpFlags |= 0x80;
+ gSaveBlock2Ptr->field_A8 |= 0x2;
+ gSaveBlock2Ptr->field_A8 |= 0x4;
+ gSaveBlock2Ptr->field_A8 |= 0x8;
+ gSaveBlock2Ptr->field_A8 |= 0x8000;
+}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 12b2892bb..d317a78b5 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -807,7 +807,7 @@ bool8 ScrCmd_warpteleport2(struct ScriptContext *ctx)
u16 y = VarGet(ScriptReadHalfword(ctx));
Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
- sub_805DAE4(player_get_direction_lower_nybble());
+ sub_805DAE4(GetPlayerFacingDirection());
sub_807E500();
ResetInitialPlayerAvatarState();
return TRUE;
@@ -1154,7 +1154,7 @@ bool8 ScrCmd_faceplayer(struct ScriptContext *ctx)
if (gMapObjects[gSelectedEventObject].active)
{
FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject],
- player_get_direction_lower_nybble());
+ GetPlayerFacingDirection());
}
return FALSE;
}
@@ -1241,7 +1241,7 @@ bool8 ScrCmd_releaseall(struct ScriptContext *ctx)
HideFieldMessageBox();
playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
- FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]);
+ FieldObjectClearHeldMovementIfFinished(&gMapObjects[playerObjectId]);
sub_80974D8();
UnfreezeMapObjects();
return FALSE;
@@ -1253,9 +1253,9 @@ bool8 ScrCmd_release(struct ScriptContext *ctx)
HideFieldMessageBox();
if (gMapObjects[gSelectedEventObject].active)
- FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]);
+ FieldObjectClearHeldMovementIfFinished(&gMapObjects[gSelectedEventObject]);
playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
- FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]);
+ FieldObjectClearHeldMovementIfFinished(&gMapObjects[playerObjectId]);
sub_80974D8();
UnfreezeMapObjects();
return FALSE;
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 7c26c1c58..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++;
@@ -469,7 +469,7 @@ static bool8 HandleLoadTMCaseGraphicsAndPalettes(void)
sTMCaseDynamicResources->seqId++;
break;
case 4:
- LoadCompressedObjectPic(&sTMSpriteSheet);
+ LoadCompressedSpriteSheet(&sTMSpriteSheet);
sTMCaseDynamicResources->seqId++;
break;
default:
@@ -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/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c
index ecd889d80..25a8d4515 100644
--- a/src/trainer_pokemon_sprites.c
+++ b/src/trainer_pokemon_sprites.c
@@ -109,7 +109,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett
else
{
sCreatingSpriteTemplate.paletteTag = paletteTag;
- LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality));
+ LoadCompressedSpritePalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality));
}
}
else
@@ -122,7 +122,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett
else
{
sCreatingSpriteTemplate.paletteTag = paletteTag;
- LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]);
+ LoadCompressedSpritePalette(&gTrainerFrontPicPaletteTable[species]);
}
}
}
diff --git a/src/unk_8159F40.c b/src/unk_8159F40.c
index a6f6e67fc..b0147d06a 100644
--- a/src/unk_8159F40.c
+++ b/src/unk_8159F40.c
@@ -612,7 +612,7 @@ void sub_815A540(void)
s16 x, y;
PlayerGetDestCoords(&x, &y);
- if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(0x08))
+ if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
{
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
SetPlayerAvatarTransitionFlags(0x01);
diff --git a/src/unk_815C980.c b/src/unk_815C980.c
index b90d2fb03..09b92c834 100644
--- a/src/unk_815C980.c
+++ b/src/unk_815C980.c
@@ -128,7 +128,7 @@ bool32 sub_815CA40(u32 id, s32 arg1, const struct UnkStruct3 *arg2)
compObjectPic = *(struct CompressedSpriteSheet*)(arg2->spriteSheet);
compObjectPic.size = GetDecompressedDataSize(arg2->spriteSheet->data);
- gUnknown_203F454->array[id].tileStart = LoadCompressedObjectPic(&compObjectPic);
+ gUnknown_203F454->array[id].tileStart = LoadCompressedSpriteSheet(&compObjectPic);
}
if (gUnknown_203F454->array[id].tileStart == 0xFFFF)
diff --git a/src/unk_815F138.c b/src/unk_815F138.c
index 8941f1559..96005a07b 100644
--- a/src/unk_815F138.c
+++ b/src/unk_815F138.c
@@ -209,7 +209,7 @@ void sub_815F564(u16 tilesTag, u16 palTag)
struct SpritePalette spritePalette = {gUnknown_847A328};
spriteSheet.tag = tilesTag;
spritePalette.tag = palTag;
- LoadCompressedObjectPic(&spriteSheet);
+ LoadCompressedSpriteSheet(&spriteSheet);
LoadSpritePalette(&spritePalette);
}
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..2c791be78 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1043,7 +1043,7 @@ gUnknown_20399FC: @ 20399FC
gAIScriptPtr: @ 2039A00
.space 0x4
-gUnknown_2039A04: @ 2039A04
+gPlayerFacingPosition: @ 2039A04
.space 0x8
gUnknown_2039A0C: @ 2039A0C
@@ -1091,7 +1091,7 @@ gUnknown_2039A34: @ 2039A34
.include "src/save.o"
.include "src/mystery_event_script.o"
-gUnknown_203AAB0: @ 203AAB0
+gPaletteDecompressionBuffer: @ 203AAB0
.space 0x4
gUnknown_203AAB4: @ 203AAB4
@@ -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