summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/bag.s4
-rw-r--r--asm/battle_1.s42
-rw-r--r--asm/battle_2.s184
-rw-r--r--asm/battle_anim.s80
-rw-r--r--asm/battle_anim_80A22E8.s736
-rw-r--r--asm/battle_anim_80DE2C0.s186
-rw-r--r--asm/battle_anim_80EEC0C.s12
-rw-r--r--asm/battle_controller_link_opponent.s8
-rw-r--r--asm/battle_controller_link_partner.s8
-rw-r--r--asm/battle_controller_oak.s24
-rw-r--r--asm/battle_controller_opponent.s8
-rw-r--r--asm/battle_controller_player.s72
-rw-r--r--asm/battle_controller_pokedude.s36
-rw-r--r--asm/battle_controller_safari.s16
-rw-r--r--asm/battle_message.s2
-rw-r--r--asm/battle_records.s2
-rw-r--r--asm/battle_script_commands.s44
-rw-r--r--asm/battle_transition.s312
-rw-r--r--asm/berry_fix_program.s2
-rw-r--r--asm/berry_pouch.s126
-rw-r--r--asm/buy_menu_helpers.s4
-rw-r--r--asm/cable_club.s2
-rw-r--r--asm/coord_event_weather.s105
-rw-r--r--asm/credits.s4
-rw-r--r--asm/daycare.s14
-rw-r--r--asm/diploma.s2
-rw-r--r--asm/egg_hatch.s2
-rw-r--r--asm/evolution_scene.s234
-rw-r--r--asm/field_effect.s4
-rw-r--r--asm/field_map_obj.s8
-rw-r--r--asm/field_message_box.s6
-rw-r--r--asm/field_player_avatar.s4
-rw-r--r--asm/field_screen_effect.s26
-rw-r--r--asm/field_specials.s26
-rw-r--r--asm/field_weather.s4
-rw-r--r--asm/field_weather_effects.s12
-rw-r--r--asm/hall_of_fame.s38
-rw-r--r--asm/help_system_812B1E0.s24
-rw-r--r--asm/intro.s34
-rw-r--r--asm/item.s122
-rw-r--r--asm/item_menu.s186
-rw-r--r--asm/item_pc.s56
-rw-r--r--asm/item_use.s6
-rw-r--r--asm/itemfinder.s4
-rw-r--r--asm/learn_move.s30
-rw-r--r--asm/link.s6
-rw-r--r--asm/link_rfu_3.s86
-rw-r--r--asm/list_menu.s20
-rw-r--r--asm/macros.inc5
-rw-r--r--asm/mail.s6
-rw-r--r--asm/mailbox_pc.s4
-rw-r--r--asm/main_menu.s4
-rw-r--r--asm/menu.s28
-rw-r--r--asm/menu2.s563
-rw-r--r--asm/menu_helpers.s6
-rw-r--r--asm/menu_indicators.s12
-rw-r--r--asm/mystery_gift_menu.s2
-rw-r--r--asm/naming_screen.s10
-rw-r--r--asm/new_game.s4
-rw-r--r--asm/new_menu_helpers.s74
-rw-r--r--asm/oak_speech.s5728
-rw-r--r--asm/option_menu.s4
-rw-r--r--asm/overworld.s18
-rw-r--r--asm/party_menu.s20
-rw-r--r--asm/player_pc.s40
-rw-r--r--asm/pokeball.s4
-rw-r--r--asm/pokedex_screen.s26
-rw-r--r--asm/pokemon_3.s6
-rw-r--r--asm/pokemon_special_anim.s10
-rw-r--r--asm/pokemon_storage_system.s30
-rw-r--r--asm/pokemon_summary_screen.s34
-rw-r--r--asm/region_map.s2
-rw-r--r--asm/reshow_battle_screen.s42
-rw-r--r--asm/roamer.s531
-rw-r--r--asm/script_menu.s10
-rw-r--r--asm/seagallop.s2
-rw-r--r--asm/shop.s30
-rw-r--r--asm/slot_machine.s8
-rw-r--r--asm/start_menu.s22
-rw-r--r--asm/teachy_tv.s78
-rw-r--r--asm/title_screen.s38
-rw-r--r--asm/tm_case.s3999
-rw-r--r--asm/trade.s10
-rw-r--r--asm/trainer_card.s42
-rw-r--r--asm/trig.s8
-rw-r--r--asm/union_room_chat.s32
-rw-r--r--asm/unk_8147AA8.s4
-rw-r--r--asm/unk_814BB4C.s14
-rw-r--r--asm/unk_814D5C8.s6
-rw-r--r--asm/unk_81507FC.s6
-rw-r--r--asm/unk_815F138.s8
-rw-r--r--asm/unknown_task.s644
-rw-r--r--asm/wild_encounter.s8
-rw-r--r--asm/wild_pokemon_area.s4
-rw-r--r--asm/wireless_communication_status_screen.s4
-rw-r--r--charmap.txt77
-rw-r--r--data/battle_anim.s262
-rw-r--r--data/battle_anim_scripts.s1
-rw-r--r--data/battle_anim_status_effects.s11
-rw-r--r--data/berry_pouch.s59
-rw-r--r--data/buy_menu_helpers.s14
-rw-r--r--data/connections.s365
-rw-r--r--data/data.s1055
-rw-r--r--data/data_835B488.s933
-rw-r--r--data/data_83F5738.s2
-rw-r--r--data/data_83FECCC.s442
-rw-r--r--data/data_845FD54.s600
-rw-r--r--data/data_8471F00.s7
-rw-r--r--data/event_scripts.s1659
-rw-r--r--data/field_door.s17
-rw-r--r--data/field_ground_effect.s34
-rw-r--r--data/field_map_obj.s508
-rw-r--r--data/field_player_avatar.s73
-rw-r--r--data/field_tasks.s7
-rw-r--r--data/field_weather.s101
-rw-r--r--data/graphics.s23
-rw-r--r--data/help_system.s8
-rw-r--r--data/itemfinder.s7
-rw-r--r--data/link_rfu_4.s54
-rw-r--r--data/map_events.s1276
-rw-r--r--data/map_obj_80688E4.s30
-rw-r--r--data/maps/groups.inc5948
-rw-r--r--data/menu_indicators.s46
-rw-r--r--data/mystery_gift_menu.s14
-rw-r--r--data/oak_speech/help_docs_page2_tilemap.binbin0 -> 160 bytes
-rw-r--r--data/oak_speech/help_docs_page3_tilemap.binbin0 -> 160 bytes
-rw-r--r--data/oak_speech/help_docs_palette.pal67
-rw-r--r--data/oak_speech/new_game_adventure_intro_tilemap.bin2
-rw-r--r--data/oak_speech/oak_speech_background_tilemap.binbin0 -> 1280 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_game_start_help_u_i.pngbin0 -> 1118 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_grass_platform.pngbin0 -> 341 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_leaf_pal.pal35
-rw-r--r--data/oak_speech/oak_speech_gfx_leaf_pic.pngbin0 -> 1219 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_oak_pal.pal35
-rw-r--r--data/oak_speech/oak_speech_gfx_oak_pic.pngbin0 -> 1172 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_pika1.pngbin0 -> 414 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_pika2.pngbin0 -> 297 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_pika_eyes.pngbin0 -> 187 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_red_pal.pal35
-rw-r--r--data/oak_speech/oak_speech_gfx_red_pic.pngbin0 -> 1087 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_rival_pal.pal35
-rw-r--r--data/oak_speech/oak_speech_gfx_rival_pic.pngbin0 -> 970 bytes
-rw-r--r--data/oak_speech/oak_speech_gfx_solid_colors.pngbin0 -> 110 bytes
-rw-r--r--data/oak_speech/oak_speech_grass_platform_palette.pal19
-rw-r--r--data/oak_speech/oak_speech_pika_palette.pal19
-rw-r--r--data/palette.s7
-rw-r--r--data/pokedex_area_markers.s14
-rw-r--r--data/pokemon_summary_screen.s134
-rw-r--r--data/slot_machine.s94
-rw-r--r--data/specials.inc4
-rw-r--r--data/start_menu.s28
-rw-r--r--data/text/species_names.inc412
-rw-r--r--data/tileset_anims.s25
-rw-r--r--data/title_screen.s34
-rw-r--r--data/unk_text_util.s5
-rw-r--r--data/wild_pokemon_area.s14
-rw-r--r--graphics/tm_case/unk_841F408.pal19
-rw-r--r--graphics/tm_case/unk_8E845D8.pngbin0 -> 951 bytes
-rw-r--r--graphics/tm_case/unk_8E84A24.binbin0 -> 2048 bytes
-rw-r--r--graphics/tm_case/unk_8E84B70.binbin0 -> 2048 bytes
-rw-r--r--graphics/tm_case/unk_8E84CB0.pal67
-rw-r--r--graphics/tm_case/unk_8E84D20.pal67
-rw-r--r--graphics/tm_case/unk_8E84D90.pngbin0 -> 293 bytes
-rw-r--r--graphics/tm_case/unk_8E84F20.pal259
-rw-r--r--graphics/tm_case/unk_8E85068.pal19
-rw-r--r--graphics/tm_case/unk_8E99118.pngbin0 -> 99 bytes
-rw-r--r--graphics_file_rules.mk3
-rw-r--r--include/constants/map_groups.h515
-rw-r--r--include/constants/maps.h585
-rw-r--r--include/constants/region_map.h308
-rw-r--r--include/constants/songs.h164
-rw-r--r--include/constants/species.h3
-rw-r--r--include/constants/vars.h2
-rw-r--r--include/decompress.h2
-rw-r--r--include/event_scripts.h67
-rw-r--r--include/field_specials.h1
-rw-r--r--include/graphics.h11
-rw-r--r--include/help_system.h1
-rw-r--r--include/item.h6
-rw-r--r--include/item_menu.h1
-rw-r--r--include/list_menu.h4
-rw-r--r--include/math_util.h6
-rw-r--r--include/menu.h12
-rw-r--r--include/menu_helpers.h7
-rw-r--r--include/money.h7
-rw-r--r--include/new_menu_helpers.h14
-rw-r--r--include/oak_speech.h6
-rw-r--r--include/overworld.h1
-rw-r--r--include/party_menu.h6
-rw-r--r--include/pokeball.h3
-rw-r--r--include/pokemon.h3
-rw-r--r--include/pokemon_3.h3
-rw-r--r--include/pokemon_storage_system.h1
-rw-r--r--include/scanline_effect.h46
-rw-r--r--include/shop.h1
-rw-r--r--include/strings.h23
-rw-r--r--include/teachy_tv.h7
-rw-r--r--include/text.h2
-rw-r--r--include/text_window.h2
-rw-r--r--include/tm_case.h8
-rw-r--r--include/unknown_task.h24
-rw-r--r--include/wild_encounter.h1
-rw-r--r--include/window.h2
-rw-r--r--ld_script.txt48
-rw-r--r--src/coord_event_weather.c47
-rw-r--r--src/fame_checker.c10
-rw-r--r--src/main.c4
-rw-r--r--src/menu2.c851
-rw-r--r--src/mevent_8145654.c4
-rw-r--r--src/oak_speech.c1891
-rw-r--r--src/roamer.c240
-rw-r--r--src/scanline_effect.c262
-rw-r--r--src/scrcmd.c6
-rw-r--r--src/sound.c18
-rw-r--r--src/text.c10
-rw-r--r--src/tm_case.c1537
-rw-r--r--src/trainer_tower.c2
-rw-r--r--src/vs_seeker.c2
-rw-r--r--src/window.c2
-rw-r--r--sym_common.txt2
-rw-r--r--sym_ewram.txt86
-rw-r--r--tools/gbafix/gbafix.c2
-rw-r--r--tools/gbagfx/Makefile7
-rw-r--r--tools/gbagfx/gfx.c197
-rw-r--r--tools/gbagfx/gfx.h17
-rw-r--r--tools/gbagfx/huff.c398
-rw-r--r--tools/gbagfx/huff.h38
-rw-r--r--tools/gbagfx/main.c118
-rw-r--r--tools/gbagfx/options.h2
-rwxr-xr-xtools/mapjson/.gitignore1
-rw-r--r--tools/mapjson/Makefile15
-rw-r--r--tools/mapjson/json11.cpp786
-rw-r--r--tools/mapjson/json11.h230
-rw-r--r--tools/mapjson/mapjson.cpp538
-rw-r--r--tools/mapjson/mapjson.h31
-rw-r--r--tools/scaninc/Makefile4
-rw-r--r--tools/scaninc/asm_file.cpp3
-rw-r--r--tools/scaninc/scaninc.cpp88
-rw-r--r--tools/scaninc/source_file.cpp125
-rw-r--r--tools/scaninc/source_file.h71
240 files changed, 21640 insertions, 18156 deletions
diff --git a/asm/bag.s b/asm/bag.s
index e7c72d082..aeac17e69 100644
--- a/asm/bag.s
+++ b/asm/bag.s
@@ -356,7 +356,7 @@ sub_810BAE8: @ 810BAE8
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
@@ -381,7 +381,7 @@ sub_810BB14: @ 810BB14
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 72f5fe901..6ae993e27 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -253,7 +253,7 @@ sub_800F380: @ 800F380
cmp r0, 0
beq _0800F3EA
movs r0, 0x70
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
movs r0, 0
movs r1, 0x30
movs r2, 0x70
@@ -908,7 +908,7 @@ _0800F8F0:
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0800F958
- ldr r4, _0800F944 @ =gUnknown_2022978
+ ldr r4, _0800F944 @ =gBattle_BG1_X
ldrh r0, [r5, 0xA]
bl Sin2
lsls r0, 16
@@ -923,7 +923,7 @@ _0800F90A:
adds r0, r2, 0
subs r0, r1
strh r0, [r4]
- ldr r4, _0800F948 @ =gUnknown_202297C
+ ldr r4, _0800F948 @ =gBattle_BG2_X
ldrh r0, [r5, 0xC]
bl Sin2
lsls r0, 16
@@ -938,21 +938,21 @@ _0800F928:
adds r0, r3, 0
subs r0, r1
strh r0, [r4]
- ldr r0, _0800F94C @ =gUnknown_202297A
+ ldr r0, _0800F94C @ =gBattle_BG1_Y
ldr r2, _0800F950 @ =0x0000ffdc
adds r1, r2, 0
strh r1, [r0]
- ldr r0, _0800F954 @ =gUnknown_202297E
+ ldr r0, _0800F954 @ =gBattle_BG2_Y
strh r1, [r0]
b _0800F9C4
.align 2, 0
-_0800F944: .4byte gUnknown_2022978
-_0800F948: .4byte gUnknown_202297C
-_0800F94C: .4byte gUnknown_202297A
+_0800F944: .4byte gBattle_BG1_X
+_0800F948: .4byte gBattle_BG2_X
+_0800F94C: .4byte gBattle_BG1_Y
_0800F950: .4byte 0x0000ffdc
-_0800F954: .4byte gUnknown_202297E
+_0800F954: .4byte gBattle_BG2_Y
_0800F958:
- ldr r4, _0800F9E8 @ =gUnknown_2022978
+ ldr r4, _0800F9E8 @ =gBattle_BG1_X
ldrh r0, [r5, 0xA]
bl Sin2
lsls r0, 16
@@ -967,7 +967,7 @@ _0800F96A:
adds r0, r3, 0
subs r0, r1
strh r0, [r4]
- ldr r4, _0800F9EC @ =gUnknown_202297A
+ ldr r4, _0800F9EC @ =gBattle_BG1_Y
ldrh r0, [r5, 0xA]
bl Cos2
lsls r0, 16
@@ -979,7 +979,7 @@ _0800F988:
asrs r0, 5
subs r0, 0xA4
strh r0, [r4]
- ldr r4, _0800F9F0 @ =gUnknown_202297C
+ ldr r4, _0800F9F0 @ =gBattle_BG2_X
ldrh r0, [r5, 0xC]
bl Sin2
lsls r0, 16
@@ -994,7 +994,7 @@ _0800F9A0:
adds r0, r2, 0
subs r0, r1
strh r0, [r4]
- ldr r4, _0800F9F4 @ =gUnknown_202297E
+ ldr r4, _0800F9F4 @ =gBattle_BG2_Y
ldrh r0, [r5, 0xC]
bl Cos2
lsls r0, 16
@@ -1025,10 +1025,10 @@ _0800F9C4:
strh r0, [r1, 0xA]
b _0800FAC4
.align 2, 0
-_0800F9E8: .4byte gUnknown_2022978
-_0800F9EC: .4byte gUnknown_202297A
-_0800F9F0: .4byte gUnknown_202297C
-_0800F9F4: .4byte gUnknown_202297E
+_0800F9E8: .4byte gBattle_BG1_X
+_0800F9EC: .4byte gBattle_BG1_Y
+_0800F9F0: .4byte gBattle_BG2_X
+_0800F9F4: .4byte gBattle_BG2_Y
_0800F9F8: .4byte gTasks
_0800F9FC:
movs r3, 0x12
@@ -1190,11 +1190,11 @@ sub_800FAE0: @ 800FAE0
movs r0, 0x4A
movs r1, 0x36
bl SetGpuReg
- ldr r0, _0800FB84 @ =gUnknown_202297A
+ ldr r0, _0800FB84 @ =gBattle_BG1_Y
ldr r2, _0800FB88 @ =0x0000ff5c
adds r1, r2, 0
strh r1, [r0]
- ldr r0, _0800FB8C @ =gUnknown_202297E
+ ldr r0, _0800FB8C @ =gBattle_BG2_Y
strh r1, [r0]
ldr r0, _0800FB90 @ =gUnknown_8248318
bl sub_800F034
@@ -1208,9 +1208,9 @@ _0800FB74: .4byte 0x06010000
_0800FB78: .4byte gFile_graphics_battle_transitions_vs_frame_palette
_0800FB7C: .4byte 0x00005c04
_0800FB80: .4byte gFile_graphics_battle_transitions_vs_frame_tilemap
-_0800FB84: .4byte gUnknown_202297A
+_0800FB84: .4byte gBattle_BG1_Y
_0800FB88: .4byte 0x0000ff5c
-_0800FB8C: .4byte gUnknown_202297E
+_0800FB8C: .4byte gBattle_BG2_Y
_0800FB90: .4byte gUnknown_8248318
_0800FB94:
movs r0, 0x80
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 1ecfe6ad3..ec9fa32a3 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -45,11 +45,11 @@ _0800FDD8:
cmp r1, 0
beq _0800FDFE
movs r0, 0x19
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0800FE1C
_0800FDFE:
movs r0, 0x18
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0800FE1C
_0800FE06:
movs r0, 0x80
@@ -57,11 +57,11 @@ _0800FE06:
cmp r1, 0
beq _0800FE16
movs r0, 0x1A
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0800FE1C
_0800FE16:
movs r0, 0x17
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_0800FE1C:
pop {r4}
pop {r0}
@@ -104,8 +104,8 @@ sub_800FE24: @ 800FE24
strh r0, [r1]
ldr r0, _0800FF34 @ =gUnknown_2022986
strh r4, [r0]
- bl dp12_8087EA4
- ldr r0, _0800FF38 @ =gUnknown_2038700
+ bl ScanlineEffect_Clear
+ ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
movs r3, 0xF0
movs r1, 0xF0
lsls r1, 3
@@ -121,7 +121,7 @@ _0800FE88:
bge _0800FE88
movs r1, 0x50
ldr r4, _0800FF3C @ =gUnknown_824EFE4
- ldr r0, _0800FF38 @ =gUnknown_2038700
+ ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
ldr r3, _0800FF40 @ =0x0000ff10
movs r5, 0x82
lsls r5, 4
@@ -138,24 +138,24 @@ _0800FEA6:
ldr r0, [r4]
ldr r1, [r4, 0x4]
ldr r2, [r4, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
bl ResetPaletteFade
- ldr r0, _0800FF44 @ =gUnknown_2022974
+ ldr r0, _0800FF44 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _0800FF48 @ =gUnknown_2022976
+ ldr r0, _0800FF48 @ =gBattle_BG0_Y
strh r1, [r0]
- ldr r0, _0800FF4C @ =gUnknown_2022978
+ ldr r0, _0800FF4C @ =gBattle_BG1_X
strh r1, [r0]
- ldr r0, _0800FF50 @ =gUnknown_202297A
+ ldr r0, _0800FF50 @ =gBattle_BG1_Y
strh r1, [r0]
- ldr r0, _0800FF54 @ =gUnknown_202297C
+ ldr r0, _0800FF54 @ =gBattle_BG2_X
strh r1, [r0]
- ldr r0, _0800FF58 @ =gUnknown_202297E
+ ldr r0, _0800FF58 @ =gBattle_BG2_Y
strh r1, [r0]
- ldr r0, _0800FF5C @ =gUnknown_2022980
+ ldr r0, _0800FF5C @ =gBattle_BG3_X
strh r1, [r0]
- ldr r0, _0800FF60 @ =gUnknown_2022982
+ ldr r0, _0800FF60 @ =gBattle_BG3_Y
strh r1, [r0]
bl sub_807FC5C
ldr r1, _0800FF64 @ =gUnknown_2022B50
@@ -186,17 +186,17 @@ _0800FF28: .4byte 0x05006000
_0800FF2C: .4byte 0x00005051
_0800FF30: .4byte gUnknown_2022984
_0800FF34: .4byte gUnknown_2022986
-_0800FF38: .4byte gUnknown_2038700
+_0800FF38: .4byte gScanlineEffectRegBuffers
_0800FF3C: .4byte gUnknown_824EFE4
_0800FF40: .4byte 0x0000ff10
-_0800FF44: .4byte gUnknown_2022974
-_0800FF48: .4byte gUnknown_2022976
-_0800FF4C: .4byte gUnknown_2022978
-_0800FF50: .4byte gUnknown_202297A
-_0800FF54: .4byte gUnknown_202297C
-_0800FF58: .4byte gUnknown_202297E
-_0800FF5C: .4byte gUnknown_2022980
-_0800FF60: .4byte gUnknown_2022982
+_0800FF44: .4byte gBattle_BG0_X
+_0800FF48: .4byte gBattle_BG0_Y
+_0800FF4C: .4byte gBattle_BG1_X
+_0800FF50: .4byte gBattle_BG1_Y
+_0800FF54: .4byte gBattle_BG2_X
+_0800FF58: .4byte gBattle_BG2_Y
+_0800FF5C: .4byte gBattle_BG3_X
+_0800FF60: .4byte gBattle_BG3_Y
_0800FF64: .4byte gUnknown_2022B50
_0800FF68: .4byte gReservedSpritePaletteCount
_0800FF6C: .4byte sub_80116F4
@@ -2410,7 +2410,7 @@ FreeRestoreBattleData: @ 8011174
ldr r0, _080111B0 @ =gUnknown_3004F80
ldr r0, [r0]
str r0, [r1]
- ldr r2, _080111B4 @ =gUnknown_2039600
+ ldr r2, _080111B4 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r2, 0x15]
ldr r0, _080111B8 @ =0x00000439
@@ -2431,7 +2431,7 @@ FreeRestoreBattleData: @ 8011174
.align 2, 0
_080111AC: .4byte gMain
_080111B0: .4byte gUnknown_3004F80
-_080111B4: .4byte gUnknown_2039600
+_080111B4: .4byte gScanlineEffect
_080111B8: .4byte 0x00000439
thumb_func_end FreeRestoreBattleData
@@ -3125,35 +3125,35 @@ _080116F0: .4byte 0x04000008
sub_80116F4: @ 80116F4
push {lr}
bl Random
- ldr r0, _08011788 @ =gUnknown_2022974
+ ldr r0, _08011788 @ =gBattle_BG0_X
ldrh r1, [r0]
movs r0, 0x10
bl SetGpuReg
- ldr r0, _0801178C @ =gUnknown_2022976
+ ldr r0, _0801178C @ =gBattle_BG0_Y
ldrh r1, [r0]
movs r0, 0x12
bl SetGpuReg
- ldr r0, _08011790 @ =gUnknown_2022978
+ ldr r0, _08011790 @ =gBattle_BG1_X
ldrh r1, [r0]
movs r0, 0x14
bl SetGpuReg
- ldr r0, _08011794 @ =gUnknown_202297A
+ ldr r0, _08011794 @ =gBattle_BG1_Y
ldrh r1, [r0]
movs r0, 0x16
bl SetGpuReg
- ldr r0, _08011798 @ =gUnknown_202297C
+ ldr r0, _08011798 @ =gBattle_BG2_X
ldrh r1, [r0]
movs r0, 0x18
bl SetGpuReg
- ldr r0, _0801179C @ =gUnknown_202297E
+ ldr r0, _0801179C @ =gBattle_BG2_Y
ldrh r1, [r0]
movs r0, 0x1A
bl SetGpuReg
- ldr r0, _080117A0 @ =gUnknown_2022980
+ ldr r0, _080117A0 @ =gBattle_BG3_X
ldrh r1, [r0]
movs r0, 0x1C
bl SetGpuReg
- ldr r0, _080117A4 @ =gUnknown_2022982
+ ldr r0, _080117A4 @ =gBattle_BG3_Y
ldrh r1, [r0]
movs r0, 0x1E
bl SetGpuReg
@@ -3176,18 +3176,18 @@ sub_80116F4: @ 80116F4
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
-_08011788: .4byte gUnknown_2022974
-_0801178C: .4byte gUnknown_2022976
-_08011790: .4byte gUnknown_2022978
-_08011794: .4byte gUnknown_202297A
-_08011798: .4byte gUnknown_202297C
-_0801179C: .4byte gUnknown_202297E
-_080117A0: .4byte gUnknown_2022980
-_080117A4: .4byte gUnknown_2022982
+_08011788: .4byte gBattle_BG0_X
+_0801178C: .4byte gBattle_BG0_Y
+_08011790: .4byte gBattle_BG1_X
+_08011794: .4byte gBattle_BG1_Y
+_08011798: .4byte gBattle_BG2_X
+_0801179C: .4byte gBattle_BG2_Y
+_080117A0: .4byte gBattle_BG3_X
+_080117A4: .4byte gBattle_BG3_Y
_080117A8: .4byte gUnknown_2022984
_080117AC: .4byte gUnknown_2022986
_080117B0: .4byte gUnknown_2022988
@@ -3548,8 +3548,8 @@ sub_8011A1C: @ 8011A1C
strh r0, [r1]
ldr r0, _08011B4C @ =gUnknown_2022986
strh r4, [r0]
- bl dp12_8087EA4
- ldr r0, _08011B50 @ =gUnknown_2038700
+ bl ScanlineEffect_Clear
+ ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
movs r3, 0xF0
movs r1, 0xF0
lsls r1, 3
@@ -3564,7 +3564,7 @@ _08011A80:
cmp r1, 0
bge _08011A80
movs r1, 0x50
- ldr r0, _08011B50 @ =gUnknown_2038700
+ ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
ldr r3, _08011B54 @ =0x0000ff10
movs r4, 0x82
lsls r4, 4
@@ -3579,22 +3579,22 @@ _08011A9C:
cmp r1, 0x9F
ble _08011A9C
bl ResetPaletteFade
- ldr r0, _08011B58 @ =gUnknown_2022974
+ ldr r0, _08011B58 @ =gBattle_BG0_X
movs r4, 0
strh r4, [r0]
- ldr r0, _08011B5C @ =gUnknown_2022976
+ ldr r0, _08011B5C @ =gBattle_BG0_Y
strh r4, [r0]
- ldr r0, _08011B60 @ =gUnknown_2022978
+ ldr r0, _08011B60 @ =gBattle_BG1_X
strh r4, [r0]
- ldr r0, _08011B64 @ =gUnknown_202297A
+ ldr r0, _08011B64 @ =gBattle_BG1_Y
strh r4, [r0]
- ldr r0, _08011B68 @ =gUnknown_202297C
+ ldr r0, _08011B68 @ =gBattle_BG2_X
strh r4, [r0]
- ldr r0, _08011B6C @ =gUnknown_202297E
+ ldr r0, _08011B6C @ =gBattle_BG2_Y
strh r4, [r0]
- ldr r0, _08011B70 @ =gUnknown_2022980
+ ldr r0, _08011B70 @ =gBattle_BG3_X
strh r4, [r0]
- ldr r0, _08011B74 @ =gUnknown_2022982
+ ldr r0, _08011B74 @ =gBattle_BG3_Y
strh r4, [r0]
bl sub_800F34C
ldr r0, _08011B78 @ =gUnknown_8D004D8
@@ -3645,16 +3645,16 @@ _08011B40: .4byte 0x05006000
_08011B44: .4byte 0x00005051
_08011B48: .4byte gUnknown_2022984
_08011B4C: .4byte gUnknown_2022986
-_08011B50: .4byte gUnknown_2038700
+_08011B50: .4byte gScanlineEffectRegBuffers
_08011B54: .4byte 0x0000ff10
-_08011B58: .4byte gUnknown_2022974
-_08011B5C: .4byte gUnknown_2022976
-_08011B60: .4byte gUnknown_2022978
-_08011B64: .4byte gUnknown_202297A
-_08011B68: .4byte gUnknown_202297C
-_08011B6C: .4byte gUnknown_202297E
-_08011B70: .4byte gUnknown_2022980
-_08011B74: .4byte gUnknown_2022982
+_08011B58: .4byte gBattle_BG0_X
+_08011B5C: .4byte gBattle_BG0_Y
+_08011B60: .4byte gBattle_BG1_X
+_08011B64: .4byte gBattle_BG1_Y
+_08011B68: .4byte gBattle_BG2_X
+_08011B6C: .4byte gBattle_BG2_Y
+_08011B70: .4byte gBattle_BG3_X
+_08011B74: .4byte gBattle_BG3_Y
_08011B78: .4byte gUnknown_8D004D8
_08011B7C: .4byte gReservedSpritePaletteCount
_08011B80: .4byte sub_80116F4
@@ -12610,10 +12610,10 @@ sub_8016374: @ 8016374
adds r0, r1
ldrb r0, [r0]
strb r0, [r3]
- ldr r0, _080163EC @ =gUnknown_2022974
+ ldr r0, _080163EC @ =gBattle_BG0_X
movs r2, 0
strh r2, [r0]
- ldr r0, _080163F0 @ =gUnknown_2022976
+ ldr r0, _080163F0 @ =gBattle_BG0_Y
strh r2, [r0]
ldr r1, _080163F4 @ =gUnknown_2023FF8
ldrb r0, [r3]
@@ -12661,8 +12661,8 @@ _080163DA:
_080163E0: .4byte sBattler_AI
_080163E4: .4byte gUnknown_2023BDE
_080163E8: .4byte gUnknown_2023BE2
-_080163EC: .4byte gUnknown_2022974
-_080163F0: .4byte gUnknown_2022976
+_080163EC: .4byte gBattle_BG0_X
+_080163F0: .4byte gBattle_BG0_Y
_080163F4: .4byte gUnknown_2023FF8
_080163F8: .4byte gUnknown_2023FFC
_080163FC: .4byte gBattleTextBuff1
@@ -12690,10 +12690,10 @@ sub_8016418: @ 8016418
ldrb r0, [r0]
strb r0, [r2]
strb r0, [r4]
- ldr r0, _08016484 @ =gUnknown_2022974
+ ldr r0, _08016484 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08016488 @ =gUnknown_2022976
+ ldr r0, _08016488 @ =gBattle_BG0_Y
strh r1, [r0]
ldrb r0, [r4]
bl ClearFuryCutterDestinyBondGrudge
@@ -12726,8 +12726,8 @@ _08016474: .4byte sBattler_AI
_08016478: .4byte gBattlerTarget
_0801647C: .4byte gUnknown_2023BDE
_08016480: .4byte gUnknown_2023BE2
-_08016484: .4byte gUnknown_2022974
-_08016488: .4byte gUnknown_2022976
+_08016484: .4byte gBattle_BG0_X
+_08016488: .4byte gBattle_BG0_Y
_0801648C: .4byte gUnknown_2023D68
_08016490: .4byte gUnknown_20233C4
_08016494: .4byte gUnknown_2023D74
@@ -13391,10 +13391,10 @@ sub_80169E8: @ 80169E8
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
- ldr r0, _08016A50 @ =gUnknown_2022974
+ ldr r0, _08016A50 @ =gBattle_BG0_X
movs r5, 0
strh r5, [r0]
- ldr r0, _08016A54 @ =gUnknown_2022976
+ ldr r0, _08016A54 @ =gBattle_BG0_Y
strh r5, [r0]
ldr r4, _08016A58 @ =gBattleStruct
ldr r1, [r4]
@@ -13431,8 +13431,8 @@ sub_80169E8: @ 80169E8
_08016A44: .4byte sBattler_AI
_08016A48: .4byte gUnknown_2023BDE
_08016A4C: .4byte gUnknown_2023BE2
-_08016A50: .4byte gUnknown_2022974
-_08016A54: .4byte gUnknown_2022976
+_08016A50: .4byte gBattle_BG0_X
+_08016A54: .4byte gBattle_BG0_Y
_08016A58: .4byte gBattleStruct
_08016A5C: .4byte gEnemyParty
_08016A60: .4byte gBaseStats
@@ -13492,10 +13492,10 @@ sub_8016AC0: @ 8016AC0
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
- ldr r0, _08016B04 @ =gUnknown_2022974
+ ldr r0, _08016B04 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08016B08 @ =gUnknown_2022976
+ ldr r0, _08016B08 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r1, _08016B0C @ =gUnknown_2039994
ldrb r0, [r1]
@@ -13516,8 +13516,8 @@ sub_8016AC0: @ 8016AC0
_08016AF8: .4byte sBattler_AI
_08016AFC: .4byte gUnknown_2023BDE
_08016B00: .4byte gUnknown_2023BE2
-_08016B04: .4byte gUnknown_2022974
-_08016B08: .4byte gUnknown_2022976
+_08016B04: .4byte gBattle_BG0_X
+_08016B08: .4byte gBattle_BG0_Y
_08016B0C: .4byte gUnknown_2039994
_08016B10: .4byte gUnknown_2023D68
_08016B14: .4byte gUnknown_2023D74
@@ -13535,10 +13535,10 @@ sub_8016B20: @ 8016B20
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
- ldr r0, _08016BA8 @ =gUnknown_2022974
+ ldr r0, _08016BA8 @ =gBattle_BG0_X
movs r7, 0
strh r7, [r0]
- ldr r0, _08016BAC @ =gUnknown_2022976
+ ldr r0, _08016BAC @ =gBattle_BG0_Y
strh r7, [r0]
bl Random
ldr r6, _08016BB0 @ =gBattleStruct
@@ -13592,8 +13592,8 @@ _08016B86:
_08016B9C: .4byte sBattler_AI
_08016BA0: .4byte gUnknown_2023BDE
_08016BA4: .4byte gUnknown_2023BE2
-_08016BA8: .4byte gUnknown_2022974
-_08016BAC: .4byte gUnknown_2022976
+_08016BA8: .4byte gBattle_BG0_X
+_08016BAC: .4byte gBattle_BG0_Y
_08016BB0: .4byte gBattleStruct
_08016BB4: .4byte gUnknown_2023D74
_08016BB8: .4byte gUnknown_81D9A04
@@ -13610,10 +13610,10 @@ sub_8016BC0: @ 8016BC0
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
- ldr r0, _08016C48 @ =gUnknown_2022974
+ ldr r0, _08016C48 @ =gBattle_BG0_X
movs r7, 0
strh r7, [r0]
- ldr r0, _08016C4C @ =gUnknown_2022976
+ ldr r0, _08016C4C @ =gBattle_BG0_Y
strh r7, [r0]
bl Random
ldr r6, _08016C50 @ =gBattleStruct
@@ -13667,8 +13667,8 @@ _08016C26:
_08016C3C: .4byte sBattler_AI
_08016C40: .4byte gUnknown_2023BDE
_08016C44: .4byte gUnknown_2023BE2
-_08016C48: .4byte gUnknown_2022974
-_08016C4C: .4byte gUnknown_2022976
+_08016C48: .4byte gBattle_BG0_X
+_08016C4C: .4byte gBattle_BG0_Y
_08016C50: .4byte gBattleStruct
_08016C54: .4byte gUnknown_2023D74
_08016C58: .4byte gUnknown_81D9A04
@@ -13713,10 +13713,10 @@ HandleAction_Action9: @ 8016C9C
adds r0, r1
ldrb r2, [r0]
strb r2, [r3]
- ldr r0, _08016CF4 @ =gUnknown_2022974
+ ldr r0, _08016CF4 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08016CF8 @ =gUnknown_2022976
+ ldr r0, _08016CF8 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r1, _08016CFC @ =gBattleTextBuff1
movs r0, 0xFD
@@ -13747,8 +13747,8 @@ HandleAction_Action9: @ 8016C9C
_08016CE8: .4byte sBattler_AI
_08016CEC: .4byte gUnknown_2023BDE
_08016CF0: .4byte gUnknown_2023BE2
-_08016CF4: .4byte gUnknown_2022974
-_08016CF8: .4byte gUnknown_2022976
+_08016CF4: .4byte gBattle_BG0_X
+_08016CF8: .4byte gBattle_BG0_Y
_08016CFC: .4byte gBattleTextBuff1
_08016D00: .4byte gBattlerPartyIndexes
_08016D04: .4byte gUnknown_2023D74
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index 085b11f09..f65b9b705 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -1037,10 +1037,10 @@ _08072C88:
strh r1, [r2, 0xC]
cmp r7, 0
bne _08072CF4
- ldr r0, _08072CEC @ =gUnknown_2022978
+ ldr r0, _08072CEC @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r2, 0xE]
- ldr r0, _08072CF0 @ =gUnknown_202297A
+ ldr r0, _08072CF0 @ =gBattle_BG1_Y
b _08072CFC
.align 2, 0
_08072CD8: .4byte gUnknown_2037F1B
@@ -1048,13 +1048,13 @@ _08072CDC: .4byte gUnknown_2023D44
_08072CE0: .4byte task_pA_ma0A_obj_to_bg_pal
_08072CE4: .4byte gTasks
_08072CE8: .4byte gSprites
-_08072CEC: .4byte gUnknown_2022978
-_08072CF0: .4byte gUnknown_202297A
+_08072CEC: .4byte gBattle_BG1_X
+_08072CF0: .4byte gBattle_BG1_Y
_08072CF4:
- ldr r0, _08072D8C @ =gUnknown_202297C
+ ldr r0, _08072D8C @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r2, 0xE]
- ldr r0, _08072D90 @ =gUnknown_202297E
+ ldr r0, _08072D90 @ =gBattle_BG2_Y
_08072CFC:
ldrh r0, [r0]
strh r0, [r2, 0x10]
@@ -1121,26 +1121,26 @@ _08072D3E:
strh r1, [r2, 0xC]
cmp r7, 0
bne _08072DB0
- ldr r0, _08072DA8 @ =gUnknown_2022978
+ ldr r0, _08072DA8 @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r2, 0xE]
- ldr r0, _08072DAC @ =gUnknown_202297A
+ ldr r0, _08072DAC @ =gBattle_BG1_Y
b _08072DB8
.align 2, 0
-_08072D8C: .4byte gUnknown_202297C
-_08072D90: .4byte gUnknown_202297E
+_08072D8C: .4byte gBattle_BG2_X
+_08072D90: .4byte gBattle_BG2_Y
_08072D94: .4byte gTasks
_08072D98: .4byte gUnknown_2037F14
_08072D9C: .4byte gUnknown_2023D44
_08072DA0: .4byte task_pA_ma0A_obj_to_bg_pal
_08072DA4: .4byte gSprites
-_08072DA8: .4byte gUnknown_2022978
-_08072DAC: .4byte gUnknown_202297A
+_08072DA8: .4byte gBattle_BG1_X
+_08072DAC: .4byte gBattle_BG1_Y
_08072DB0:
- ldr r0, _08072DDC @ =gUnknown_202297C
+ ldr r0, _08072DDC @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r2, 0xE]
- ldr r0, _08072DE0 @ =gUnknown_202297E
+ ldr r0, _08072DE0 @ =gBattle_BG2_Y
_08072DB8:
ldrh r0, [r0]
strh r0, [r2, 0x10]
@@ -1162,8 +1162,8 @@ _08072DCE:
pop {r0}
bx r0
.align 2, 0
-_08072DDC: .4byte gUnknown_202297C
-_08072DE0: .4byte gUnknown_202297E
+_08072DDC: .4byte gBattle_BG2_X
+_08072DE0: .4byte gBattle_BG2_Y
_08072DE4: .4byte gTasks
_08072DE8: .4byte gUnknown_2037F14
_08072DEC: .4byte gUnknown_2037ED4
@@ -1271,7 +1271,7 @@ _08072E5E:
ldr r2, _08072F6C @ =gUnknown_2023D44
adds r2, r7, r2
ldrb r0, [r2]
- ldr r5, _08072F70 @ =gUnknown_2022978
+ ldr r5, _08072F70 @ =gBattle_BG1_X
ldr r3, _08072F74 @ =gSprites
lsls r1, r0, 4
adds r1, r0
@@ -1283,7 +1283,7 @@ _08072E5E:
negs r0, r0
adds r0, 0x20
strh r0, [r5]
- ldr r4, _08072F78 @ =gUnknown_202297A
+ ldr r4, _08072F78 @ =gBattle_BG1_Y
ldrh r0, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r0, r1
@@ -1350,9 +1350,9 @@ _08072F60: .4byte 0x0600e000
_08072F64: .4byte 0x01000800
_08072F68: .4byte 0x01000400
_08072F6C: .4byte gUnknown_2023D44
-_08072F70: .4byte gUnknown_2022978
+_08072F70: .4byte gBattle_BG1_X
_08072F74: .4byte gSprites
-_08072F78: .4byte gUnknown_202297A
+_08072F78: .4byte gBattle_BG1_Y
_08072F7C: .4byte gPlttBufferUnfaded + 0x200
_08072F80: .4byte 0x04000008
_08072F84:
@@ -1404,7 +1404,7 @@ _08072F84:
ldr r2, _080730A4 @ =gUnknown_2023D44
adds r2, r7, r2
ldrb r0, [r2]
- ldr r5, _080730A8 @ =gUnknown_202297C
+ ldr r5, _080730A8 @ =gBattle_BG2_X
ldr r3, _080730AC @ =gSprites
lsls r1, r0, 4
adds r1, r0
@@ -1416,7 +1416,7 @@ _08072F84:
negs r0, r0
adds r0, 0x20
strh r0, [r5]
- ldr r4, _080730B0 @ =gUnknown_202297E
+ ldr r4, _080730B0 @ =gBattle_BG2_Y
ldrh r0, [r1, 0x26]
ldrh r1, [r1, 0x22]
adds r0, r1
@@ -1484,9 +1484,9 @@ _08073098: .4byte 0x0600f000
_0807309C: .4byte 0x01000800
_080730A0: .4byte 0x01000400
_080730A4: .4byte gUnknown_2023D44
-_080730A8: .4byte gUnknown_202297C
+_080730A8: .4byte gBattle_BG2_X
_080730AC: .4byte gSprites
-_080730B0: .4byte gUnknown_202297E
+_080730B0: .4byte gBattle_BG2_Y
_080730B4: .4byte gPlttBufferUnfaded + 0x200
_080730B8: .4byte 0x05000120
_080730BC: .4byte 0x04000008
@@ -1563,21 +1563,21 @@ sub_8073128: @ 8073128
bne _08073154
movs r0, 0x1
bl sub_8075358
- ldr r0, _0807314C @ =gUnknown_2022978
+ ldr r0, _0807314C @ =gBattle_BG1_X
strh r4, [r0]
- ldr r0, _08073150 @ =gUnknown_202297A
+ ldr r0, _08073150 @ =gBattle_BG1_Y
strh r4, [r0]
b _08073164
.align 2, 0
-_0807314C: .4byte gUnknown_2022978
-_08073150: .4byte gUnknown_202297A
+_0807314C: .4byte gBattle_BG1_X
+_08073150: .4byte gBattle_BG1_Y
_08073154:
movs r0, 0x2
bl sub_8075358
- ldr r0, _0807316C @ =gUnknown_202297C
+ ldr r0, _0807316C @ =gBattle_BG2_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08073170 @ =gUnknown_202297E
+ ldr r0, _08073170 @ =gBattle_BG2_Y
strh r1, [r0]
_08073164:
add sp, 0x10
@@ -1585,8 +1585,8 @@ _08073164:
pop {r0}
bx r0
.align 2, 0
-_0807316C: .4byte gUnknown_202297C
-_08073170: .4byte gUnknown_202297E
+_0807316C: .4byte gBattle_BG2_X
+_08073170: .4byte gBattle_BG2_Y
thumb_func_end sub_8073128
thumb_func_start task_pA_ma0A_obj_to_bg_pal
@@ -1627,13 +1627,13 @@ task_pA_ma0A_obj_to_bg_pal: @ 8073174
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0807320C
- ldr r1, _080731F8 @ =gUnknown_2022978
+ ldr r1, _080731F8 @ =gBattle_BG1_X
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r5, 0xE]
adds r0, r3
strh r0, [r1]
- ldr r1, _080731FC @ =gUnknown_202297A
+ ldr r1, _080731FC @ =gBattle_BG1_Y
lsls r0, r2, 16
asrs r0, 16
ldrh r5, [r5, 0x10]
@@ -1654,19 +1654,19 @@ task_pA_ma0A_obj_to_bg_pal: @ 8073174
.align 2, 0
_080731F0: .4byte gTasks
_080731F4: .4byte gSprites
-_080731F8: .4byte gUnknown_2022978
-_080731FC: .4byte gUnknown_202297A
+_080731F8: .4byte gBattle_BG1_X
+_080731FC: .4byte gBattle_BG1_Y
_08073200: .4byte gPlttBufferFaded + 0x200
_08073204: .4byte 0xfffffe00
_08073208: .4byte 0x04000008
_0807320C:
- ldr r1, _0807323C @ =gUnknown_202297C
+ ldr r1, _0807323C @ =gBattle_BG2_X
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r5, 0xE]
adds r0, r3
strh r0, [r1]
- ldr r1, _08073240 @ =gUnknown_202297E
+ ldr r1, _08073240 @ =gBattle_BG2_Y
lsls r0, r2, 16
asrs r0, 16
ldrh r5, [r5, 0x10]
@@ -1684,8 +1684,8 @@ _08073232:
pop {r0}
bx r0
.align 2, 0
-_0807323C: .4byte gUnknown_202297C
-_08073240: .4byte gUnknown_202297E
+_0807323C: .4byte gBattle_BG2_X
+_08073240: .4byte gBattle_BG2_Y
_08073244: .4byte gPlttBufferFaded + 0x200
_08073248: .4byte 0x04000008
thumb_func_end task_pA_ma0A_obj_to_bg_pal
diff --git a/asm/battle_anim_80A22E8.s b/asm/battle_anim_80A22E8.s
index e64654d57..bf7f547f6 100644
--- a/asm/battle_anim_80A22E8.s
+++ b/asm/battle_anim_80A22E8.s
@@ -3962,7 +3962,7 @@ sub_80A414C: @ 80A414C
strh r0, [r4, 0x3C]
movs r1, 0x30
ldrsh r2, [r4, r1]
- ldr r1, _080A41A0 @ =gUnknown_825E074
+ ldr r1, _080A41A0 @ =gSineTable
movs r5, 0x2E
ldrsh r0, [r4, r5]
lsls r0, 1
@@ -3995,7 +3995,7 @@ sub_80A414C: @ 80A414C
ble _080A41BC
b _080A41B6
.align 2, 0
-_080A41A0: .4byte gUnknown_825E074
+_080A41A0: .4byte gSineTable
_080A41A4:
movs r1, 0x24
ldrsh r0, [r4, r1]
@@ -8720,7 +8720,7 @@ _080A6558:
.align 2, 0
_080A657C: .4byte gTasks
_080A6580:
- ldr r4, _080A65C8 @ =gUnknown_825E074
+ ldr r4, _080A65C8 @ =gSineTable
movs r1, 0x2E
ldrsh r0, [r5, r1]
lsls r0, 1
@@ -8755,7 +8755,7 @@ _080A65C2:
pop {r0}
bx r0
.align 2, 0
-_080A65C8: .4byte gUnknown_825E074
+_080A65C8: .4byte gSineTable
thumb_func_end sub_80A653C
thumb_func_start sub_80A65CC
@@ -9762,7 +9762,7 @@ _080A6D62:
adds r1, 0x43
strb r0, [r1]
_080A6D72:
- ldr r1, _080A6D8C @ =gUnknown_825E074
+ ldr r1, _080A6D8C @ =gSineTable
movs r3, 0x30
ldrsh r0, [r2, r3]
lsls r0, 1
@@ -9777,7 +9777,7 @@ _080A6D88:
pop {r0}
bx r0
.align 2, 0
-_080A6D8C: .4byte gUnknown_825E074
+_080A6D8C: .4byte gSineTable
thumb_func_end sub_80A6D20
thumb_func_start sub_80A6D90
@@ -13284,7 +13284,7 @@ sub_80A8874: @ 80A8874
lsrs r0, 24
cmp r0, 0x1
bne _080A88D4
- ldr r0, _080A88CC @ =gUnknown_2022978
+ ldr r0, _080A88CC @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r5, 0x14]
ldr r0, _080A88D0 @ =0x04000014
@@ -13292,10 +13292,10 @@ sub_80A8874: @ 80A8874
.align 2, 0
_080A88C4: .4byte gTasks
_080A88C8: .4byte gUnknown_2037F1B
-_080A88CC: .4byte gUnknown_2022978
+_080A88CC: .4byte gBattle_BG1_X
_080A88D0: .4byte 0x04000014
_080A88D4:
- ldr r0, _080A8940 @ =gUnknown_202297C
+ ldr r0, _080A8940 @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r5, 0x14]
ldr r0, _080A8944 @ =0x04000018
@@ -13308,7 +13308,7 @@ _080A88DC:
lsls r0, 16
cmp r2, r0
bgt _080A891A
- ldr r4, _080A8948 @ =gUnknown_2038700
+ ldr r4, _080A8948 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r4, r0
@@ -13345,7 +13345,7 @@ _080A891A:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
ldr r0, _080A8950 @ =sub_80A8954
str r0, [r5]
add sp, 0xC
@@ -13353,9 +13353,9 @@ _080A891A:
pop {r0}
bx r0
.align 2, 0
-_080A8940: .4byte gUnknown_202297C
+_080A8940: .4byte gBattle_BG2_X
_080A8944: .4byte 0x04000018
-_080A8948: .4byte gUnknown_2038700
+_080A8948: .4byte gScanlineEffectRegBuffers
_080A894C: .4byte 0xa2600001
_080A8950: .4byte sub_80A8954
thumb_func_end sub_80A8874
@@ -13431,7 +13431,7 @@ _080A89CC:
ldrsh r0, [r3, r1]
cmp r0, 0
blt _080A89F0
- ldr r2, _080A8A14 @ =gUnknown_2038700
+ ldr r2, _080A8A14 @ =gScanlineEffectRegBuffers
lsls r0, 1
adds r0, r2
ldrh r1, [r3, 0x14]
@@ -13455,7 +13455,7 @@ _080A89F0:
ldrsh r1, [r3, r2]
cmp r0, r1
blt _080A8A0E
- ldr r1, _080A8A18 @ =gUnknown_2039600
+ ldr r1, _080A8A18 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
adds r0, r4, 0
@@ -13465,8 +13465,8 @@ _080A8A0E:
pop {r0}
bx r0
.align 2, 0
-_080A8A14: .4byte gUnknown_2038700
-_080A8A18: .4byte gUnknown_2039600
+_080A8A14: .4byte gScanlineEffectRegBuffers
+_080A8A18: .4byte gScanlineEffect
thumb_func_end sub_80A8954
thumb_func_start sub_80A8A1C
@@ -15940,10 +15940,10 @@ sub_80A9CE8: @ 80A9CE8
movs r2, 0x1
bl SetAnimBgAttribute
_080A9D2A:
- ldr r0, _080A9DA4 @ =gUnknown_2022978
+ ldr r0, _080A9DA4 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r4, _080A9DA8 @ =gUnknown_202297A
+ ldr r4, _080A9DA8 @ =gBattle_BG1_Y
strh r1, [r4]
movs r0, 0x14
movs r1, 0
@@ -15993,8 +15993,8 @@ _080A9D88:
bx r0
.align 2, 0
_080A9DA0: .4byte 0x00003f42
-_080A9DA4: .4byte gUnknown_2022978
-_080A9DA8: .4byte gUnknown_202297A
+_080A9DA4: .4byte gBattle_BG1_X
+_080A9DA8: .4byte gBattle_BG1_Y
_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap
_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet
_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette
@@ -16197,10 +16197,10 @@ sub_80A9F10: @ 80A9F10
movs r2, 0x1
bl SetAnimBgAttribute
_080A9F52:
- ldr r0, _080A9F8C @ =gUnknown_2022978
+ ldr r0, _080A9F8C @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r4, _080A9F90 @ =gUnknown_202297A
+ ldr r4, _080A9F90 @ =gBattle_BG1_Y
strh r1, [r4]
movs r0, 0x14
movs r1, 0
@@ -16220,8 +16220,8 @@ _080A9F52:
b _080A9FC6
.align 2, 0
_080A9F88: .4byte 0x00003f42
-_080A9F8C: .4byte gUnknown_2022978
-_080A9F90: .4byte gUnknown_202297A
+_080A9F8C: .4byte gBattle_BG1_X
+_080A9F90: .4byte gBattle_BG1_Y
_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
_080A9F98:
ldr r0, _080A9FB4 @ =gUnknown_2037F1B
@@ -18959,11 +18959,11 @@ _080AB476:
beq _080AB4F8
ldr r1, _080AB4EC @ =0x0000ffb0
adds r0, r1, 0
- ldr r2, _080AB4F0 @ =gUnknown_2022978
+ ldr r2, _080AB4F0 @ =gBattle_BG1_X
strh r0, [r2]
adds r1, 0x20
adds r0, r1, 0
- ldr r2, _080AB4F4 @ =gUnknown_202297A
+ ldr r2, _080AB4F4 @ =gBattle_BG1_Y
strh r0, [r2]
movs r0, 0x2
strh r0, [r6, 0x8]
@@ -18977,8 +18977,8 @@ _080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette
_080AB4E4: .4byte sub_80AB79C
_080AB4E8: .4byte gTasks
_080AB4EC: .4byte 0x0000ffb0
-_080AB4F0: .4byte gUnknown_2022978
-_080AB4F4: .4byte gUnknown_202297A
+_080AB4F0: .4byte gBattle_BG1_X
+_080AB4F4: .4byte gBattle_BG1_Y
_080AB4F8:
ldr r0, _080AB528 @ =gUnknown_2037F1A
ldrb r0, [r0]
@@ -18989,12 +18989,12 @@ _080AB4F8:
bne _080AB53C
ldr r2, _080AB52C @ =0x0000ff20
adds r0, r2, 0
- ldr r2, _080AB530 @ =gUnknown_2022978
+ ldr r2, _080AB530 @ =gBattle_BG1_X
strh r0, [r2]
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
- ldr r2, _080AB534 @ =gUnknown_202297A
+ ldr r2, _080AB534 @ =gBattle_BG1_Y
strh r0, [r2]
movs r0, 0x2
strh r0, [r6, 0x8]
@@ -19005,15 +19005,15 @@ _080AB4F8:
.align 2, 0
_080AB528: .4byte gUnknown_2037F1A
_080AB52C: .4byte 0x0000ff20
-_080AB530: .4byte gUnknown_2022978
-_080AB534: .4byte gUnknown_202297A
+_080AB530: .4byte gBattle_BG1_X
+_080AB534: .4byte gBattle_BG1_Y
_080AB538: .4byte 0x0000ffff
_080AB53C:
- ldr r0, _080AB584 @ =gUnknown_2022978
+ ldr r0, _080AB584 @ =gBattle_BG1_X
strh r4, [r0]
ldr r1, _080AB588 @ =0x0000ffd0
adds r0, r1, 0
- ldr r2, _080AB58C @ =gUnknown_202297A
+ ldr r2, _080AB58C @ =gBattle_BG1_Y
strh r0, [r2]
ldr r0, _080AB590 @ =0x0000fffe
strh r0, [r6, 0x8]
@@ -19021,11 +19021,11 @@ _080AB53C:
strh r0, [r6, 0xA]
strh r4, [r7, 0xE]
_080AB552:
- ldr r0, _080AB584 @ =gUnknown_2022978
+ ldr r0, _080AB584 @ =gBattle_BG1_X
ldrh r1, [r0]
movs r0, 0x14
bl SetGpuReg
- ldr r2, _080AB58C @ =gUnknown_202297A
+ ldr r2, _080AB58C @ =gBattle_BG1_Y
ldrh r1, [r2]
movs r0, 0x16
bl SetGpuReg
@@ -19044,9 +19044,9 @@ _080AB552:
movs r0, 0x70
b _080AB59C
.align 2, 0
-_080AB584: .4byte gUnknown_2022978
+_080AB584: .4byte gBattle_BG1_X
_080AB588: .4byte 0x0000ffd0
-_080AB58C: .4byte gUnknown_202297A
+_080AB58C: .4byte gBattle_BG1_Y
_080AB590: .4byte 0x0000fffe
_080AB594: .4byte gTasks
_080AB598:
@@ -19082,8 +19082,8 @@ sub_80AB5C8: @ 80AB5C8
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
- ldr r1, _080AB6F4 @ =gUnknown_2022978
- ldr r2, _080AB6F8 @ =gUnknown_202297A
+ ldr r1, _080AB6F4 @ =gBattle_BG1_X
+ ldr r2, _080AB6F8 @ =gBattle_BG1_Y
ldr r0, _080AB6FC @ =gTasks
lsls r4, r5, 2
adds r4, r5
@@ -19233,8 +19233,8 @@ _080AB6EC:
pop {r0}
bx r0
.align 2, 0
-_080AB6F4: .4byte gUnknown_2022978
-_080AB6F8: .4byte gUnknown_202297A
+_080AB6F4: .4byte gBattle_BG1_X
+_080AB6F8: .4byte gBattle_BG1_Y
_080AB6FC: .4byte gTasks
_080AB700: .4byte gPlttBufferFaded
_080AB704: .4byte sub_80AB708
@@ -19248,8 +19248,8 @@ sub_80AB708: @ 80AB708
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
- ldr r7, _080AB740 @ =gUnknown_2022978
- ldr r0, _080AB744 @ =gUnknown_202297A
+ ldr r7, _080AB740 @ =gBattle_BG1_X
+ ldr r0, _080AB744 @ =gBattle_BG1_Y
mov r8, r0
ldr r6, _080AB748 @ =gTasks
lsls r0, r5, 2
@@ -19269,8 +19269,8 @@ sub_80AB708: @ 80AB708
strh r0, [r4, 0x8]
b _080AB78E
.align 2, 0
-_080AB740: .4byte gUnknown_2022978
-_080AB744: .4byte gUnknown_202297A
+_080AB740: .4byte gBattle_BG1_X
+_080AB744: .4byte gBattle_BG1_Y
_080AB748: .4byte gTasks
_080AB74C:
bl sub_8073788
@@ -19346,7 +19346,7 @@ _080AB7D0:
movs r3, 0
movs r2, 0x10
ldrsh r0, [r4, r2]
- ldr r1, _080AB8A0 @ =gUnknown_2038700
+ ldr r1, _080AB8A0 @ =gScanlineEffectRegBuffers
mov r12, r1
cmp r3, r0
bge _080AB80E
@@ -19383,7 +19383,7 @@ _080AB80E:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _080AB848
- ldr r5, _080AB8A0 @ =gUnknown_2038700
+ ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -19412,7 +19412,7 @@ _080AB848:
asrs r0, r2, 16
cmp r0, 0x9F
bgt _080AB87E
- ldr r5, _080AB8A0 @ =gUnknown_2038700
+ ldr r5, _080AB8A0 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -19453,7 +19453,7 @@ _080AB87E:
ldrh r0, [r4, 0xA]
b _080AB8BE
.align 2, 0
-_080AB8A0: .4byte gUnknown_2038700
+_080AB8A0: .4byte gScanlineEffectRegBuffers
_080AB8A4: .4byte 0x0000ffff
_080AB8A8:
lsls r0, r3, 16
@@ -19482,7 +19482,7 @@ _080AB8BE:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -19521,8 +19521,8 @@ _080AB91C:
ldrsh r0, [r4, r1]
cmp r3, r0
bge _080AB950
- ldr r6, _080AB9B4 @ =gUnknown_2038700
- ldr r5, _080AB9B8 @ =gUnknown_2039600
+ ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
+ ldr r5, _080AB9B8 @ =gScanlineEffect
_080AB92A:
lsls r1, r3, 16
asrs r1, 16
@@ -19551,8 +19551,8 @@ _080AB950:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _080AB984
- ldr r6, _080AB9B4 @ =gUnknown_2038700
- ldr r5, _080AB9B8 @ =gUnknown_2039600
+ ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
+ ldr r5, _080AB9B8 @ =gScanlineEffect
_080AB962:
asrs r3, r2, 16
lsls r2, r3, 1
@@ -19577,8 +19577,8 @@ _080AB984:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080ABA66
- ldr r6, _080AB9B4 @ =gUnknown_2038700
- ldr r5, _080AB9B8 @ =gUnknown_2039600
+ ldr r6, _080AB9B4 @ =gScanlineEffectRegBuffers
+ ldr r5, _080AB9B8 @ =gScanlineEffect
_080AB992:
asrs r3, r1, 16
lsls r2, r3, 1
@@ -19597,16 +19597,16 @@ _080AB992:
ble _080AB992
b _080ABA66
.align 2, 0
-_080AB9B4: .4byte gUnknown_2038700
-_080AB9B8: .4byte gUnknown_2039600
+_080AB9B4: .4byte gScanlineEffectRegBuffers
+_080AB9B8: .4byte gScanlineEffect
_080AB9BC:
movs r3, 0
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r3, r0
bge _080AB9F0
- ldr r6, _080ABA70 @ =gUnknown_2038700
- ldr r5, _080ABA74 @ =gUnknown_2039600
+ ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
+ ldr r5, _080ABA74 @ =gScanlineEffect
_080AB9CA:
lsls r1, r3, 16
asrs r1, 16
@@ -19635,8 +19635,8 @@ _080AB9F0:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _080ABA24
- ldr r6, _080ABA70 @ =gUnknown_2038700
- ldr r5, _080ABA74 @ =gUnknown_2039600
+ ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
+ ldr r5, _080ABA74 @ =gScanlineEffect
_080ABA02:
asrs r3, r2, 16
lsls r2, r3, 1
@@ -19661,8 +19661,8 @@ _080ABA24:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080ABA50
- ldr r6, _080ABA70 @ =gUnknown_2038700
- ldr r5, _080ABA74 @ =gUnknown_2039600
+ ldr r6, _080ABA70 @ =gScanlineEffectRegBuffers
+ ldr r5, _080ABA74 @ =gScanlineEffect
_080ABA32:
asrs r3, r1, 16
lsls r2, r3, 1
@@ -19686,7 +19686,7 @@ _080ABA50:
negs r0, r0
cmp r1, r0
bne _080ABA66
- bl remove_some_task
+ bl ScanlineEffect_Stop
adds r0, r7, 0
bl DestroyTask
_080ABA66:
@@ -19695,8 +19695,8 @@ _080ABA66:
pop {r0}
bx r0
.align 2, 0
-_080ABA70: .4byte gUnknown_2038700
-_080ABA74: .4byte gUnknown_2039600
+_080ABA70: .4byte gScanlineEffectRegBuffers
+_080ABA74: .4byte gScanlineEffect
thumb_func_end sub_80AB79C
thumb_func_start sub_80ABA78
@@ -20603,7 +20603,7 @@ sub_80AC160: @ 80AC160
adds r4, r0, 0
lsls r1, 24
lsrs r6, r1, 24
- ldr r1, _080AC1EC @ =gUnknown_825E074
+ ldr r1, _080AC1EC @ =gSineTable
movs r2, 0x18
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -20668,7 +20668,7 @@ _080AC1BA:
pop {r0}
bx r0
.align 2, 0
-_080AC1EC: .4byte gUnknown_825E074
+_080AC1EC: .4byte gSineTable
_080AC1F0: .4byte gUnknown_83E5AE0
_080AC1F4: .4byte gSprites
_080AC1F8: .4byte sub_80AC204
@@ -24355,7 +24355,7 @@ _080ADE02:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r7, _080ADEA0 @ =gUnknown_825E074
+ ldr r7, _080ADEA0 @ =gSineTable
ldr r6, _080ADEA4 @ =gUnknown_2037F02
movs r1, 0
ldrsh r0, [r6, r1]
@@ -24430,7 +24430,7 @@ _080ADE66:
pop {r0}
bx r0
.align 2, 0
-_080ADEA0: .4byte gUnknown_825E074
+_080ADEA0: .4byte gSineTable
_080ADEA4: .4byte gUnknown_2037F02
_080ADEA8: .4byte gOamMatrices
_080ADEAC: .4byte sub_80B1D3C
@@ -28140,10 +28140,10 @@ sub_80AFAE4: @ 80AFAE4
movs r2, 0x1
bl SetAnimBgAttribute
_080AFB26:
- ldr r0, _080AFBA4 @ =gUnknown_2022978
+ ldr r0, _080AFBA4 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r4, _080AFBA8 @ =gUnknown_202297A
+ ldr r4, _080AFBA8 @ =gBattle_BG1_Y
strh r1, [r4]
movs r0, 0x14
movs r1, 0
@@ -28195,8 +28195,8 @@ _080AFB88:
bx r0
.align 2, 0
_080AFBA0: .4byte 0x00003f42
-_080AFBA4: .4byte gUnknown_2022978
-_080AFBA8: .4byte gUnknown_202297A
+_080AFBA4: .4byte gBattle_BG1_X
+_080AFBA8: .4byte gBattle_BG1_Y
_080AFBAC: .4byte gUnknown_83C3540
_080AFBB0: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap
_080AFBB4: .4byte gUnknown_83C2CE0
@@ -28210,7 +28210,7 @@ sub_80AFBC0: @ 80AFBC0
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
- ldr r1, _080AFBF4 @ =gUnknown_2022978
+ ldr r1, _080AFBF4 @ =gBattle_BG1_X
ldr r2, _080AFBF8 @ =0x0000ffff
adds r0, r2, 0
ldrh r2, [r1]
@@ -28234,7 +28234,7 @@ _080AFBEA:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080AFBF4: .4byte gUnknown_2022978
+_080AFBF4: .4byte gBattle_BG1_X
_080AFBF8: .4byte 0x0000ffff
_080AFBFC: .4byte gTasks
_080AFC00: .4byte _080AFC04
@@ -28366,10 +28366,10 @@ _080AFCF8:
movs r2, 0
bl SetAnimBgAttribute
_080AFD0C:
- ldr r0, _080AFD44 @ =gUnknown_2022978
+ ldr r0, _080AFD44 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080AFD48 @ =gUnknown_202297A
+ ldr r0, _080AFD48 @ =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
@@ -28390,8 +28390,8 @@ _080AFD36:
bx r0
.align 2, 0
_080AFD40: .4byte gTasks
-_080AFD44: .4byte gUnknown_2022978
-_080AFD48: .4byte gUnknown_202297A
+_080AFD44: .4byte gBattle_BG1_X
+_080AFD48: .4byte gBattle_BG1_Y
thumb_func_end sub_80AFBC0
thumb_func_start sub_80AFD4C
@@ -28451,10 +28451,10 @@ sub_80AFD80: @ 80AFD80
movs r2, 0x1
bl SetAnimBgAttribute
_080AFDC2:
- ldr r0, _080AFE44 @ =gUnknown_2022978
+ ldr r0, _080AFE44 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r4, _080AFE48 @ =gUnknown_202297A
+ ldr r4, _080AFE48 @ =gBattle_BG1_Y
strh r1, [r4]
movs r0, 0x14
movs r1, 0
@@ -28508,8 +28508,8 @@ _080AFE24:
bx r0
.align 2, 0
_080AFE40: .4byte 0x00003f42
-_080AFE44: .4byte gUnknown_2022978
-_080AFE48: .4byte gUnknown_202297A
+_080AFE44: .4byte gBattle_BG1_X
+_080AFE48: .4byte gBattle_BG1_Y
_080AFE4C: .4byte gUnknown_83C3540
_080AFE50: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap
_080AFE54: .4byte gUnknown_83C2CE0
@@ -28524,7 +28524,7 @@ sub_80AFE64: @ 80AFE64
sub sp, 0x10
lsls r0, 24
lsrs r4, r0, 24
- ldr r2, _080AFE94 @ =gUnknown_2022978
+ ldr r2, _080AFE94 @ =gBattle_BG1_X
ldr r3, _080AFE98 @ =gTasks
lsls r1, r4, 2
adds r1, r4
@@ -28546,7 +28546,7 @@ _080AFE8A:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080AFE94: .4byte gUnknown_2022978
+_080AFE94: .4byte gBattle_BG1_X
_080AFE98: .4byte gTasks
_080AFE9C: .4byte _080AFEA0
.align 2, 0
@@ -28667,10 +28667,10 @@ _080AFF80:
movs r2, 0
bl SetAnimBgAttribute
_080AFF94:
- ldr r0, _080AFFCC @ =gUnknown_2022978
+ ldr r0, _080AFFCC @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080AFFD0 @ =gUnknown_202297A
+ ldr r0, _080AFFD0 @ =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
@@ -28691,8 +28691,8 @@ _080AFFBE:
bx r0
.align 2, 0
_080AFFC8: .4byte gTasks
-_080AFFCC: .4byte gUnknown_2022978
-_080AFFD0: .4byte gUnknown_202297A
+_080AFFCC: .4byte gBattle_BG1_X
+_080AFFD0: .4byte gBattle_BG1_Y
thumb_func_end sub_80AFE64
thumb_func_start sub_80AFFD4
@@ -28898,7 +28898,7 @@ _080B0168:
_080B016A:
adds r0, r4, 0
bl sub_80755E0
- ldr r1, _080B0194 @ =gUnknown_825E074
+ ldr r1, _080B0194 @ =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -28917,7 +28917,7 @@ _080B016A:
subs r0, 0x8
b _080B019C
.align 2, 0
-_080B0194: .4byte gUnknown_825E074
+_080B0194: .4byte gSineTable
_080B0198:
ldrh r0, [r4, 0x38]
adds r0, 0x8
@@ -28974,7 +28974,7 @@ _080B0200:
_080B0202:
movs r0, 0
strh r0, [r4, 0x26]
- ldr r1, _080B022C @ =gUnknown_825E074
+ ldr r1, _080B022C @ =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -28992,11 +28992,11 @@ _080B0202:
bl obj_translate_based_on_private_1_2_3_4
b _080B0380
.align 2, 0
-_080B022C: .4byte gUnknown_825E074
+_080B022C: .4byte gSineTable
_080B0230:
adds r0, r4, 0
bl sub_80755E0
- ldr r1, _080B028C @ =gUnknown_825E074
+ ldr r1, _080B028C @ =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -29038,7 +29038,7 @@ _080B0230:
asrs r1, 24
b _080B0298
.align 2, 0
-_080B028C: .4byte gUnknown_825E074
+_080B028C: .4byte gSineTable
_080B0290:
ldrh r1, [r4, 0x3C]
lsls r1, 16
@@ -31514,7 +31514,7 @@ _080B158E:
lsls r0, 24
cmp r0, 0
bne _080B15C4
- ldr r1, _080B15C0 @ =gUnknown_2022980
+ ldr r1, _080B15C0 @ =gBattle_BG3_X
ldrh r0, [r4, 0x1A]
lsls r0, 16
asrs r0, 24
@@ -31525,9 +31525,9 @@ _080B158E:
b _080B15D4
.align 2, 0
_080B15BC: .4byte gUnknown_2037F1B
-_080B15C0: .4byte gUnknown_2022980
+_080B15C0: .4byte gBattle_BG3_X
_080B15C4:
- ldr r2, _080B1614 @ =gUnknown_2022980
+ ldr r2, _080B1614 @ =gBattle_BG3_X
ldrh r1, [r4, 0x1A]
lsls r1, 16
asrs r1, 24
@@ -31536,7 +31536,7 @@ _080B15C4:
strh r0, [r2]
adds r7, r2, 0
_080B15D4:
- ldr r3, _080B1618 @ =gUnknown_2022982
+ ldr r3, _080B1618 @ =gBattle_BG3_Y
ldrh r2, [r4, 0x1C]
lsls r0, r2, 16
asrs r0, 24
@@ -31567,8 +31567,8 @@ _080B160C:
pop {r0}
bx r0
.align 2, 0
-_080B1614: .4byte gUnknown_2022980
-_080B1618: .4byte gUnknown_2022982
+_080B1614: .4byte gBattle_BG3_X
+_080B1618: .4byte gBattle_BG3_Y
_080B161C: .4byte gUnknown_2037F02
thumb_func_end sub_80B1530
@@ -32731,7 +32731,7 @@ _080B1F1E:
ands r0, r2
orrs r0, r1
strb r0, [r5]
- ldr r3, _080B1F88 @ =gUnknown_825E074
+ ldr r3, _080B1F88 @ =gSineTable
ldrh r0, [r5, 0x2]
lsls r0, 1
adds r0, r3
@@ -32777,7 +32777,7 @@ _080B1F1E:
pop {r0}
bx r0
.align 2, 0
-_080B1F88: .4byte gUnknown_825E074
+_080B1F88: .4byte gSineTable
_080B1F8C: .4byte gOamMatrices
_080B1F90: .4byte sub_80B1F94
thumb_func_end sub_80B1D88
@@ -33395,7 +33395,7 @@ _080B23F0:
adds r0, 0xC
adds r0, r1
ldrb r1, [r0]
- ldr r3, _080B2478 @ =gUnknown_825E074
+ ldr r3, _080B2478 @ =gSineTable
mov r2, r12
lsls r0, r2, 1
adds r0, r3
@@ -33456,7 +33456,7 @@ _080B23F0:
strh r0, [r4, 0x2]
b _080B2490
.align 2, 0
-_080B2478: .4byte gUnknown_825E074
+_080B2478: .4byte gSineTable
_080B247C: .4byte gOamMatrices
_080B2480:
ldrh r0, [r4, 0x4]
@@ -33629,7 +33629,7 @@ _080B25C4:
adds r0, r5
strh r0, [r4, 0x3C]
_080B25D8:
- ldr r5, _080B2680 @ =gUnknown_825E074
+ ldr r5, _080B2680 @ =gSineTable
ldrh r3, [r4, 0x30]
movs r1, 0xFF
ands r1, r3
@@ -33714,7 +33714,7 @@ _080B2672:
bx r0
.align 2, 0
_080B267C: .4byte gUnknown_2037F1B
-_080B2680: .4byte gUnknown_825E074
+_080B2680: .4byte gSineTable
_080B2684: .4byte gOamMatrices
_080B2688: .4byte sub_80B268C
thumb_func_end sub_80B2514
@@ -36385,17 +36385,17 @@ _080B3AD6:
lsrs r0, 24
cmp r0, 0x1
bne _080B3AFC
- ldr r0, _080B3AF4 @ =gUnknown_2022978
+ ldr r0, _080B3AF4 @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r4, 0x1C]
ldr r0, _080B3AF8 @ =0x04000014
b _080B3B04
.align 2, 0
_080B3AF0: .4byte gUnknown_2037F1B
-_080B3AF4: .4byte gUnknown_2022978
+_080B3AF4: .4byte gBattle_BG1_X
_080B3AF8: .4byte 0x04000014
_080B3AFC:
- ldr r0, _080B3B64 @ =gUnknown_202297C
+ ldr r0, _080B3B64 @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r4, 0x1C]
ldr r0, _080B3B68 @ =0x04000018
@@ -36409,7 +36409,7 @@ _080B3B04:
adds r0, 0x40
cmp r1, r0
bgt _080B3B3E
- ldr r5, _080B3B6C @ =gUnknown_2038700
+ ldr r5, _080B3B6C @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -36442,7 +36442,7 @@ _080B3B3E:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
ldr r0, _080B3B74 @ =sub_80B3B78
str r0, [r4]
add sp, 0xC
@@ -36450,9 +36450,9 @@ _080B3B3E:
pop {r0}
bx r0
.align 2, 0
-_080B3B64: .4byte gUnknown_202297C
+_080B3B64: .4byte gBattle_BG2_X
_080B3B68: .4byte 0x04000018
-_080B3B6C: .4byte gUnknown_2038700
+_080B3B6C: .4byte gScanlineEffectRegBuffers
_080B3B70: .4byte 0xa2600001
_080B3B74: .4byte sub_80B3B78
thumb_func_end sub_80B3A58
@@ -36494,10 +36494,10 @@ _080B3BAA:
ldrsh r0, [r5, r2]
cmp r1, r0
bgt _080B3C42
- ldr r0, _080B3BF4 @ =gUnknown_825E074
+ ldr r0, _080B3BF4 @ =gSineTable
mov r9, r0
movs r7, 0x3
- ldr r1, _080B3BF8 @ =gUnknown_2038700
+ ldr r1, _080B3BF8 @ =gScanlineEffectRegBuffers
mov r12, r1
movs r2, 0xF0
lsls r2, 3
@@ -36524,8 +36524,8 @@ _080B3BCC:
adds r0, r3, r0
b _080B3C08
.align 2, 0
-_080B3BF4: .4byte gUnknown_825E074
-_080B3BF8: .4byte gUnknown_2038700
+_080B3BF4: .4byte gSineTable
+_080B3BF8: .4byte gScanlineEffectRegBuffers
_080B3BFC:
cmp r3, 0
bge _080B3C0C
@@ -36574,7 +36574,7 @@ _080B3C42:
ble _080B3C6A
b _080B3C58
_080B3C52:
- ldr r1, _080B3C60 @ =gUnknown_2039600
+ ldr r1, _080B3C60 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080B3C58:
@@ -36583,7 +36583,7 @@ _080B3C58:
strh r0, [r5, 0x8]
b _080B3C6A
.align 2, 0
-_080B3C60: .4byte gUnknown_2039600
+_080B3C60: .4byte gScanlineEffect
_080B3C64:
adds r0, r2, 0
bl DestroyAnimVisualTask
@@ -36749,7 +36749,7 @@ _080B3DAA:
ldrh r0, [r4, 0xA]
adds r0, 0x4
strh r0, [r4, 0xA]
- ldr r1, _080B3DF8 @ =gUnknown_825E074
+ ldr r1, _080B3DF8 @ =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -36783,12 +36783,12 @@ _080B3DAA:
bne _080B3E7C
b _080B3E5E
.align 2, 0
-_080B3DF8: .4byte gUnknown_825E074
+_080B3DF8: .4byte gSineTable
_080B3DFC:
ldrh r0, [r4, 0xA]
subs r0, 0x4
strh r0, [r4, 0xA]
- ldr r1, _080B3E48 @ =gUnknown_825E074
+ ldr r1, _080B3E48 @ =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -36822,7 +36822,7 @@ _080B3DFC:
bne _080B3E7C
b _080B3E5E
.align 2, 0
-_080B3E48: .4byte gUnknown_825E074
+_080B3E48: .4byte gSineTable
_080B3E4C:
movs r0, 0x26
ldrsh r1, [r4, r0]
@@ -38086,9 +38086,9 @@ do_boulder_dust: @ 80B4810
movs r2, 0x1
bl SetAnimBgAttribute
_080B4854:
- ldr r0, _080B48E8 @ =gUnknown_2022978
+ ldr r0, _080B48E8 @ =gBattle_BG1_X
strh r5, [r0]
- ldr r4, _080B48EC @ =gUnknown_202297A
+ ldr r4, _080B48EC @ =gBattle_BG1_Y
strh r5, [r4]
movs r0, 0x14
movs r1, 0
@@ -38152,8 +38152,8 @@ _080B48CA:
bx r0
.align 2, 0
_080B48E4: .4byte 0x00003f42
-_080B48E8: .4byte gUnknown_2022978
-_080B48EC: .4byte gUnknown_202297A
+_080B48E8: .4byte gBattle_BG1_X
+_080B48EC: .4byte gBattle_BG1_Y
_080B48F0: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap
_080B48F4: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet
_080B48F8: .4byte gFile_graphics_battle_anims_sprites_261_palette
@@ -38179,7 +38179,7 @@ sub_80B490C: @ 80B490C
adds r2, r1, 0
cmp r0, 0
bne _080B4940
- ldr r1, _080B4938 @ =gUnknown_2022978
+ ldr r1, _080B4938 @ =gBattle_BG1_X
ldr r3, _080B493C @ =0x0000fffa
adds r0, r3, 0
ldrh r3, [r1]
@@ -38187,15 +38187,15 @@ sub_80B490C: @ 80B490C
b _080B4946
.align 2, 0
_080B4934: .4byte gTasks
-_080B4938: .4byte gUnknown_2022978
+_080B4938: .4byte gBattle_BG1_X
_080B493C: .4byte 0x0000fffa
_080B4940:
- ldr r1, _080B4974 @ =gUnknown_2022978
+ ldr r1, _080B4974 @ =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x6
_080B4946:
strh r0, [r1]
- ldr r1, _080B4978 @ =gUnknown_202297A
+ ldr r1, _080B4978 @ =gBattle_BG1_Y
ldr r3, _080B497C @ =0x0000ffff
adds r0, r3, 0
ldrh r3, [r1]
@@ -38218,8 +38218,8 @@ _080B4968:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080B4974: .4byte gUnknown_2022978
-_080B4978: .4byte gUnknown_202297A
+_080B4974: .4byte gBattle_BG1_X
+_080B4978: .4byte gBattle_BG1_Y
_080B497C: .4byte 0x0000ffff
_080B4980: .4byte _080B4984
.align 2, 0
@@ -38336,10 +38336,10 @@ _080B4A58:
movs r2, 0
bl SetAnimBgAttribute
_080B4A6C:
- ldr r0, _080B4AA0 @ =gUnknown_2022978
+ ldr r0, _080B4AA0 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080B4AA4 @ =gUnknown_202297A
+ ldr r0, _080B4AA4 @ =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
@@ -38359,8 +38359,8 @@ _080B4A96:
pop {r0}
bx r0
.align 2, 0
-_080B4AA0: .4byte gUnknown_2022978
-_080B4AA4: .4byte gUnknown_202297A
+_080B4AA0: .4byte gBattle_BG1_X
+_080B4AA4: .4byte gBattle_BG1_Y
thumb_func_end sub_80B490C
thumb_func_start sub_80B4AA8
@@ -39279,7 +39279,7 @@ sub_80B5188: @ 80B5188
movs r0, 0xC8
strh r0, [r5, 0xA]
_080B51AA:
- ldr r4, _080B51E8 @ =gUnknown_2022982
+ ldr r4, _080B51E8 @ =gBattle_BG3_Y
movs r1, 0xA
ldrsh r0, [r5, r1]
movs r1, 0xA
@@ -39307,7 +39307,7 @@ _080B51D6:
bx r0
.align 2, 0
_080B51E4: .4byte gTasks
-_080B51E8: .4byte gUnknown_2022982
+_080B51E8: .4byte gBattle_BG3_Y
thumb_func_end sub_80B5188
thumb_func_start sub_80B51EC
@@ -39330,7 +39330,7 @@ sub_80B51EC: @ 80B51EC
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r0, _080B525C @ =gUnknown_2022982
+ ldr r0, _080B525C @ =gBattle_BG3_Y
ldrh r0, [r0]
strh r0, [r4, 0xC]
_080B5218:
@@ -39339,7 +39339,7 @@ _080B5218:
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0xA]
- ldr r6, _080B525C @ =gUnknown_2022982
+ ldr r6, _080B525C @ =gBattle_BG3_Y
movs r2, 0xA
ldrsh r1, [r4, r2]
movs r0, 0x4
@@ -39365,7 +39365,7 @@ _080B5250:
bx r0
.align 2, 0
_080B5258: .4byte gTasks
-_080B525C: .4byte gUnknown_2022982
+_080B525C: .4byte gBattle_BG3_Y
_080B5260: .4byte gUnknown_2037F02
_080B5264: .4byte 0x00000fff
thumb_func_end sub_80B51EC
@@ -40713,7 +40713,7 @@ _080B5CB0:
_080B5CC8:
movs r2, 0x2
movs r3, 0x6
- bl sub_8088230
+ bl ScanlineEffect_InitWave
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x1C]
@@ -40789,7 +40789,7 @@ sub_80B5D38: @ 80B5D38
strh r0, [r4, 0x12]
cmp r0, 0
bne _080B5D70
- ldr r1, _080B5DC4 @ =gUnknown_825E074
+ ldr r1, _080B5DC4 @ =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -40804,7 +40804,7 @@ _080B5D70:
ldrsh r0, [r4, r2]
cmp r0, 0x1
bne _080B5D92
- ldr r1, _080B5DC4 @ =gUnknown_825E074
+ ldr r1, _080B5DC4 @ =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -40841,7 +40841,7 @@ _080B5DBA:
bx r0
.align 2, 0
_080B5DC0: .4byte gTasks
-_080B5DC4: .4byte gUnknown_825E074
+_080B5DC4: .4byte gSineTable
_080B5DC8: .4byte sub_80B5DCC
thumb_func_end sub_80B5D38
@@ -40877,7 +40877,7 @@ _080B5E04:
beq _080B5E4C
b _080B5EB4
_080B5E0A:
- ldr r1, _080B5E28 @ =gUnknown_2039600
+ ldr r1, _080B5E28 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0x1
@@ -40891,7 +40891,7 @@ _080B5E0A:
lsls r1, 2
b _080B5E30
.align 2, 0
-_080B5E28: .4byte gUnknown_2039600
+_080B5E28: .4byte gScanlineEffect
_080B5E2C:
movs r1, 0x80
lsls r1, 3
@@ -42784,10 +42784,10 @@ _080B6D28:
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
- ldr r0, _080B6D7C @ =gUnknown_202297C
+ ldr r0, _080B6D7C @ =gBattle_BG2_X
movs r1, 0
strh r1, [r0]
- ldr r4, _080B6D80 @ =gUnknown_202297E
+ ldr r4, _080B6D80 @ =gBattle_BG2_Y
strh r1, [r4]
movs r0, 0x18
movs r1, 0
@@ -42812,8 +42812,8 @@ _080B6D28:
bl LoadCompressedPalette
b _080B6F1E
.align 2, 0
-_080B6D7C: .4byte gUnknown_202297C
-_080B6D80: .4byte gUnknown_202297E
+_080B6D7C: .4byte gBattle_BG2_X
+_080B6D80: .4byte gBattle_BG2_Y
_080B6D84: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
_080B6D88: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
_080B6D8C:
@@ -42979,7 +42979,7 @@ _080B6EC4:
movs r2, 0x4
_080B6EDE:
movs r3, 0x8
- bl sub_8088230
+ bl ScanlineEffect_InitWave
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x1C]
@@ -43041,7 +43041,7 @@ sub_80B6F30: @ 80B6F30
strh r0, [r4, 0x18]
cmp r0, 0
bne _080B6F68
- ldr r1, _080B6FBC @ =gUnknown_825E074
+ ldr r1, _080B6FBC @ =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -43056,7 +43056,7 @@ _080B6F68:
ldrsh r0, [r4, r2]
cmp r0, 0x1
bne _080B6F8A
- ldr r1, _080B6FBC @ =gUnknown_825E074
+ ldr r1, _080B6FBC @ =gSineTable
movs r2, 0xA
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -43093,7 +43093,7 @@ _080B6FB2:
bx r0
.align 2, 0
_080B6FB8: .4byte gTasks
-_080B6FBC: .4byte gUnknown_825E074
+_080B6FBC: .4byte gSineTable
_080B6FC0: .4byte sub_80B6FC4
thumb_func_end sub_80B6F30
@@ -43130,7 +43130,7 @@ _080B6FF0:
.4byte _080B709C
.4byte _080B70E8
_080B7008:
- ldr r1, _080B701C @ =gUnknown_2039600
+ ldr r1, _080B701C @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
ldrh r0, [r6, 0x16]
@@ -43140,7 +43140,7 @@ _080B7008:
bl BlendPalette
b _080B7148
.align 2, 0
-_080B701C: .4byte gUnknown_2039600
+_080B701C: .4byte gScanlineEffect
_080B7020: .4byte 0x000066e0
_080B7024:
ldr r1, _080B7040 @ =0x00003f44
@@ -43879,17 +43879,17 @@ sub_80B75E0: @ 80B75E0
bne _080B761C
ldr r0, _080B7614 @ =0x04000014
str r0, [sp]
- ldr r0, _080B7618 @ =gUnknown_2022978
+ ldr r0, _080B7618 @ =gBattle_BG1_X
b _080B7622
.align 2, 0
_080B760C: .4byte gTasks
_080B7610: .4byte gUnknown_2037F1A
_080B7614: .4byte 0x04000014
-_080B7618: .4byte gUnknown_2022978
+_080B7618: .4byte gBattle_BG1_X
_080B761C:
ldr r0, _080B7698 @ =0x04000018
str r0, [sp]
- ldr r0, _080B769C @ =gUnknown_202297C
+ ldr r0, _080B769C @ =gBattle_BG2_X
_080B7622:
ldrh r0, [r0]
strh r0, [r4, 0xC]
@@ -43920,7 +43920,7 @@ _080B7652:
ldrsh r0, [r4, r1]
cmp r3, r0
bgt _080B7680
- ldr r5, _080B76A8 @ =gUnknown_2038700
+ ldr r5, _080B76A8 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -43943,7 +43943,7 @@ _080B7680:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
ldr r0, _080B76AC @ =sub_80B76B0
str r0, [r4]
add sp, 0xC
@@ -43952,10 +43952,10 @@ _080B7680:
bx r0
.align 2, 0
_080B7698: .4byte 0x04000018
-_080B769C: .4byte gUnknown_202297C
+_080B769C: .4byte gBattle_BG2_X
_080B76A0: .4byte 0xa2600001
_080B76A4: .4byte gUnknown_2037F1A
-_080B76A8: .4byte gUnknown_2038700
+_080B76A8: .4byte gScanlineEffectRegBuffers
_080B76AC: .4byte sub_80B76B0
thumb_func_end sub_80B75E0
@@ -44040,7 +44040,7 @@ _080B7746:
bl sub_80B776C
b _080B7766
_080B774E:
- ldr r1, _080B775C @ =gUnknown_2039600
+ ldr r1, _080B775C @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
ldrh r0, [r2, 0x8]
@@ -44048,7 +44048,7 @@ _080B774E:
strh r0, [r2, 0x8]
b _080B7766
.align 2, 0
-_080B775C: .4byte gUnknown_2039600
+_080B775C: .4byte gScanlineEffect
_080B7760:
adds r0, r3, 0
bl DestroyAnimVisualTask
@@ -44069,11 +44069,11 @@ sub_80B776C: @ 80B776C
ldrsh r0, [r5, r1]
cmp r4, r0
bgt _080B77C2
- ldr r7, _080B77D8 @ =gUnknown_2038700
+ ldr r7, _080B77D8 @ =gScanlineEffectRegBuffers
mov r12, r7
- ldr r0, _080B77DC @ =gUnknown_825E074
+ ldr r0, _080B77DC @ =gSineTable
mov r8, r0
- ldr r6, _080B77E0 @ =gUnknown_2039600
+ ldr r6, _080B77E0 @ =gScanlineEffect
_080B778A:
lsls r2, r4, 1
ldrb r1, [r6, 0x14]
@@ -44115,9 +44115,9 @@ _080B77C2:
pop {r0}
bx r0
.align 2, 0
-_080B77D8: .4byte gUnknown_2038700
-_080B77DC: .4byte gUnknown_825E074
-_080B77E0: .4byte gUnknown_2039600
+_080B77D8: .4byte gScanlineEffectRegBuffers
+_080B77DC: .4byte gSineTable
+_080B77E0: .4byte gScanlineEffect
thumb_func_end sub_80B776C
thumb_func_start sub_80B77E4
@@ -44926,7 +44926,7 @@ _080B7E16:
add r4, sp, 0xC
adds r0, r4, 0
bl sub_80752A0
- ldr r0, _080B7E68 @ =gUnknown_202297A
+ ldr r0, _080B7E68 @ =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
ldr r1, _080B7E6C @ =0x00003f42
@@ -44944,17 +44944,17 @@ _080B7E16:
lsls r0, 24
cmp r0, 0
bne _080B7EA8
- ldr r1, _080B7E74 @ =gUnknown_202297C
+ ldr r1, _080B7E74 @ =gBattle_BG2_X
b _080B7EA2
.align 2, 0
_080B7E60: .4byte 0x0000ffc0
_080B7E64: .4byte gUnknown_2037F1A
-_080B7E68: .4byte gUnknown_202297A
+_080B7E68: .4byte gBattle_BG1_Y
_080B7E6C: .4byte 0x00003f42
_080B7E70: .4byte 0x04000016
-_080B7E74: .4byte gUnknown_202297C
+_080B7E74: .4byte gBattle_BG2_X
_080B7E78:
- ldr r0, _080B7F30 @ =gUnknown_202297E
+ ldr r0, _080B7F30 @ =gBattle_BG2_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
ldr r1, _080B7F34 @ =0x00003f44
@@ -44971,7 +44971,7 @@ _080B7E78:
lsls r0, 24
cmp r0, 0
bne _080B7EA8
- ldr r1, _080B7F3C @ =gUnknown_2022978
+ ldr r1, _080B7F3C @ =gBattle_BG1_X
_080B7EA2:
ldrh r0, [r1]
adds r0, 0xF0
@@ -44994,7 +44994,7 @@ _080B7EA8:
movs r0, 0x3
bl sub_80B856C
movs r3, 0
- ldr r4, _080B7F44 @ =gUnknown_2038700
+ ldr r4, _080B7F44 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r4, r0
@@ -45014,7 +45014,7 @@ _080B7ED4:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
movs r0, 0x3F
eors r7, r0
movs r1, 0xFC
@@ -45043,12 +45043,12 @@ _080B7ED4:
pop {r0}
bx r0
.align 2, 0
-_080B7F30: .4byte gUnknown_202297E
+_080B7F30: .4byte gBattle_BG2_Y
_080B7F34: .4byte 0x00003f44
_080B7F38: .4byte 0x0400001a
-_080B7F3C: .4byte gUnknown_2022978
+_080B7F3C: .4byte gBattle_BG1_X
_080B7F40: .4byte 0xa2600001
-_080B7F44: .4byte gUnknown_2038700
+_080B7F44: .4byte gScanlineEffectRegBuffers
_080B7F48: .4byte 0x00003f3f
_080B7F4C: .4byte gUnknown_2022984
_080B7F50: .4byte gUnknown_2022986
@@ -45182,7 +45182,7 @@ _080B8036:
.align 2, 0
_080B804C: .4byte gUnknown_2022984
_080B8050:
- ldr r1, _080B8060 @ =gUnknown_2039600
+ ldr r1, _080B8060 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080B8056:
@@ -45191,7 +45191,7 @@ _080B8056:
strh r0, [r4, 0x8]
b _080B806A
.align 2, 0
-_080B8060: .4byte gUnknown_2039600
+_080B8060: .4byte gScanlineEffect
_080B8064:
adds r0, r2, 0
bl DestroyAnimVisualTask
@@ -45270,17 +45270,17 @@ _080B80F0:
ldr r1, _080B8114 @ =0x00003f42
movs r0, 0x50
bl SetGpuReg
- ldr r1, _080B8118 @ =gUnknown_202297C
+ ldr r1, _080B8118 @ =gBattle_BG2_X
b _080B8126
.align 2, 0
_080B8110: .4byte gUnknown_2037F1B
_080B8114: .4byte 0x00003f42
-_080B8118: .4byte gUnknown_202297C
+_080B8118: .4byte gBattle_BG2_X
_080B811C:
ldr r1, _080B8130 @ =0x00003f44
movs r0, 0x50
bl SetGpuReg
- ldr r1, _080B8134 @ =gUnknown_2022978
+ ldr r1, _080B8134 @ =gBattle_BG1_X
_080B8126:
ldrh r0, [r1]
adds r0, 0xF0
@@ -45288,7 +45288,7 @@ _080B8126:
b _080B823C
.align 2, 0
_080B8130: .4byte 0x00003f44
-_080B8134: .4byte gUnknown_2022978
+_080B8134: .4byte gBattle_BG1_X
_080B8138:
movs r1, 0xE
ldrsh r0, [r5, r1]
@@ -45296,7 +45296,7 @@ _080B8138:
bne _080B8160
mov r0, sp
bl sub_80752A0
- ldr r0, _080B815C @ =gUnknown_202297A
+ ldr r0, _080B815C @ =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
mov r0, sp
@@ -45307,9 +45307,9 @@ _080B8138:
bl FillPalette
b _080B8170
.align 2, 0
-_080B815C: .4byte gUnknown_202297A
+_080B815C: .4byte gBattle_BG1_Y
_080B8160:
- ldr r0, _080B8178 @ =gUnknown_202297E
+ ldr r0, _080B8178 @ =gBattle_BG2_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
movs r0, 0
@@ -45321,7 +45321,7 @@ _080B8170:
bl sub_80B856C
b _080B823C
.align 2, 0
-_080B8178: .4byte gUnknown_202297E
+_080B8178: .4byte gBattle_BG2_Y
_080B817C:
ldr r4, _080B81C8 @ =gUnknown_2037F1B
ldrb r0, [r4]
@@ -45389,7 +45389,7 @@ _080B81FA:
str r0, [sp, 0x10]
movs r3, 0
add r4, sp, 0x10
- ldr r6, _080B8248 @ =gUnknown_2038700
+ ldr r6, _080B8248 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r7, r6, r0
@@ -45418,7 +45418,7 @@ _080B8208:
strb r2, [r4, 0x9]
ldr r0, [sp, 0x10]
ldr r2, [r4, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
_080B823C:
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -45426,7 +45426,7 @@ _080B823C:
b _080B829E
.align 2, 0
_080B8244: .4byte 0x0400001a
-_080B8248: .4byte gUnknown_2038700
+_080B8248: .4byte gScanlineEffectRegBuffers
_080B824C: .4byte 0xa2600001
_080B8250:
movs r1, 0xE
@@ -45640,7 +45640,7 @@ _080B83D2:
bne _080B842A
b _080B83FC
_080B83F6:
- ldr r1, _080B8404 @ =gUnknown_2039600
+ ldr r1, _080B8404 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080B83FC:
@@ -45649,7 +45649,7 @@ _080B83FC:
strh r0, [r4, 0x8]
b _080B842A
.align 2, 0
-_080B8404: .4byte gUnknown_2039600
+_080B8404: .4byte gScanlineEffect
_080B8408:
ldr r0, _080B8430 @ =gUnknown_2022984
movs r1, 0
@@ -45699,9 +45699,9 @@ sub_80B843C: @ 80B843C
movs r4, 0
cmp r0, 0
ble _080B849C
- ldr r0, _080B8528 @ =gUnknown_2038700
+ ldr r0, _080B8528 @ =gScanlineEffectRegBuffers
mov r12, r0
- ldr r7, _080B852C @ =gUnknown_2039600
+ ldr r7, _080B852C @ =gScanlineEffect
_080B8470:
lsls r2, r4, 16
asrs r2, 16
@@ -45733,9 +45733,9 @@ _080B849C:
ldrsh r0, [r6, r2]
cmp r1, r0
bgt _080B84E6
- ldr r0, _080B8528 @ =gUnknown_2038700
+ ldr r0, _080B8528 @ =gScanlineEffectRegBuffers
mov r12, r0
- ldr r7, _080B852C @ =gUnknown_2039600
+ ldr r7, _080B852C @ =gScanlineEffect
_080B84B0:
asrs r4, r3, 16
cmp r4, 0
@@ -45776,8 +45776,8 @@ _080B84E6:
ldrsh r0, [r6, r3]
cmp r1, r0
bge _080B855E
- ldr r7, _080B8528 @ =gUnknown_2038700
- ldr r4, _080B852C @ =gUnknown_2039600
+ ldr r7, _080B8528 @ =gScanlineEffectRegBuffers
+ ldr r4, _080B852C @ =gScanlineEffect
_080B84FE:
asrs r3, r2, 16
cmp r3, 0
@@ -45801,15 +45801,15 @@ _080B8516:
blt _080B84FE
b _080B855E
.align 2, 0
-_080B8528: .4byte gUnknown_2038700
-_080B852C: .4byte gUnknown_2039600
+_080B8528: .4byte gScanlineEffectRegBuffers
+_080B852C: .4byte gScanlineEffect
_080B8530:
movs r1, 0x1C
ldrsh r0, [r6, r1]
adds r5, r0, 0
adds r5, 0x9F
movs r4, 0
- ldr r3, _080B8568 @ =gUnknown_2038700
+ ldr r3, _080B8568 @ =gScanlineEffectRegBuffers
movs r2, 0xF0
lsls r2, 3
adds r6, r3, r2
@@ -45835,7 +45835,7 @@ _080B855E:
pop {r0}
bx r0
.align 2, 0
-_080B8568: .4byte gUnknown_2038700
+_080B8568: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80B843C
thumb_func_start sub_80B856C
@@ -46204,7 +46204,7 @@ _080B8828:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- ldr r2, _080B88D0 @ =gUnknown_2022978
+ ldr r2, _080B88D0 @ =gBattle_BG1_X
ldr r0, _080B88D4 @ =gSprites
lsls r1, r4, 4
adds r1, r4
@@ -46214,7 +46214,7 @@ _080B8828:
negs r0, r0
adds r0, 0x60
strh r0, [r2]
- ldr r2, _080B88D8 @ =gUnknown_202297A
+ ldr r2, _080B88D8 @ =gBattle_BG1_Y
ldrh r0, [r1, 0x22]
negs r0, r0
adds r0, 0x20
@@ -46239,9 +46239,9 @@ _080B88C0: .4byte gUnknown_2037F1A
_080B88C4: .4byte gFile_graphics_battle_anims_masks_metal_shine_tilemap
_080B88C8: .4byte gFile_graphics_battle_anims_masks_metal_shine_sheet
_080B88CC: .4byte gFile_graphics_battle_anims_masks_metal_shine_palette
-_080B88D0: .4byte gUnknown_2022978
+_080B88D0: .4byte gBattle_BG1_X
_080B88D4: .4byte gSprites
-_080B88D8: .4byte gUnknown_202297A
+_080B88D8: .4byte gBattle_BG1_Y
_080B88DC: .4byte gUnknown_2037F02
_080B88E0:
lsls r0, r1, 4
@@ -46292,7 +46292,7 @@ sub_80B8920: @ 80B8920
adds r0, 0x4
movs r5, 0
strh r0, [r4, 0x1C]
- ldr r2, _080B89EC @ =gUnknown_2022978
+ ldr r2, _080B89EC @ =gBattle_BG1_X
ldrh r3, [r2]
subs r1, r3, 0x4
strh r1, [r2]
@@ -46376,7 +46376,7 @@ _080B8990:
b _080B8A5E
.align 2, 0
_080B89E8: .4byte gTasks
-_080B89EC: .4byte gUnknown_2022978
+_080B89EC: .4byte gBattle_BG1_X
_080B89F0: .4byte gSprites
_080B89F4: .4byte gUnknown_2023D44
_080B89F8: .4byte gUnknown_2037F1A
@@ -47039,20 +47039,20 @@ _080B8F14:
strh r0, [r4, 0x1E]
cmp r0, 0x1
bne _080B8F48
- ldr r0, _080B8F40 @ =gUnknown_2022978
+ ldr r0, _080B8F40 @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r4, 0x20]
- ldr r0, _080B8F44 @ =gUnknown_202297A
+ ldr r0, _080B8F44 @ =gBattle_BG1_Y
b _080B8F50
.align 2, 0
_080B8F3C: .4byte gUnknown_2037F1A
-_080B8F40: .4byte gUnknown_2022978
-_080B8F44: .4byte gUnknown_202297A
+_080B8F40: .4byte gBattle_BG1_X
+_080B8F44: .4byte gBattle_BG1_Y
_080B8F48:
- ldr r0, _080B8F8C @ =gUnknown_202297C
+ ldr r0, _080B8F8C @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r4, 0x20]
- ldr r0, _080B8F90 @ =gUnknown_202297E
+ ldr r0, _080B8F90 @ =gBattle_BG2_Y
_080B8F50:
ldrh r0, [r0]
strh r0, [r4, 0x22]
@@ -47085,8 +47085,8 @@ _080B8F72:
strb r1, [r0]
b _080B9056
.align 2, 0
-_080B8F8C: .4byte gUnknown_202297C
-_080B8F90: .4byte gUnknown_202297E
+_080B8F8C: .4byte gBattle_BG2_X
+_080B8F90: .4byte gBattle_BG2_Y
_080B8F94: .4byte gUnknown_2037F1A
_080B8F98: .4byte gSprites
_080B8F9C:
@@ -47116,7 +47116,7 @@ _080B8FAC:
adds r0, 0x1
strh r0, [r4, 0xE]
_080B8FCE:
- ldr r1, _080B8FF0 @ =gUnknown_825E074
+ ldr r1, _080B8FF0 @ =gSineTable
movs r2, 0xC
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -47131,13 +47131,13 @@ _080B8FCE:
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080B8FF8
- ldr r1, _080B8FF4 @ =gUnknown_202297A
+ ldr r1, _080B8FF4 @ =gBattle_BG1_Y
b _080B8FFA
.align 2, 0
-_080B8FF0: .4byte gUnknown_825E074
-_080B8FF4: .4byte gUnknown_202297A
+_080B8FF0: .4byte gSineTable
+_080B8FF4: .4byte gBattle_BG1_Y
_080B8FF8:
- ldr r1, _080B901C @ =gUnknown_202297E
+ ldr r1, _080B901C @ =gBattle_BG2_Y
_080B8FFA:
ldrh r0, [r4, 0x22]
subs r0, r2
@@ -47154,13 +47154,13 @@ _080B8FFA:
ldrsh r0, [r4, r3]
cmp r0, 0x1
bne _080B9024
- ldr r1, _080B9020 @ =gUnknown_202297A
+ ldr r1, _080B9020 @ =gBattle_BG1_Y
b _080B9026
.align 2, 0
-_080B901C: .4byte gUnknown_202297E
-_080B9020: .4byte gUnknown_202297A
+_080B901C: .4byte gBattle_BG2_Y
+_080B9020: .4byte gBattle_BG1_Y
_080B9024:
- ldr r1, _080B9048 @ =gUnknown_202297E
+ ldr r1, _080B9048 @ =gBattle_BG2_Y
_080B9026:
ldrh r0, [r4, 0x22]
subs r0, r2
@@ -47180,10 +47180,10 @@ _080B9026:
strh r0, [r1, 0x24]
b _080B9056
.align 2, 0
-_080B9048: .4byte gUnknown_202297E
+_080B9048: .4byte gBattle_BG2_Y
_080B904C: .4byte gSprites
_080B9050:
- ldr r1, _080B9060 @ =gUnknown_2039600
+ ldr r1, _080B9060 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080B9056:
@@ -47192,7 +47192,7 @@ _080B9056:
strh r0, [r4, 0x8]
b _080B9082
.align 2, 0
-_080B9060: .4byte gUnknown_2039600
+_080B9060: .4byte gScanlineEffect
_080B9064:
adds r0, r2, 0
bl DestroyAnimVisualTask
@@ -47246,14 +47246,14 @@ sub_80B908C: @ 80B908C
lsrs r0, 24
cmp r0, 0x1
bne _080B90D8
- ldr r0, _080B90D4 @ =gUnknown_202297A
+ ldr r0, _080B90D4 @ =gBattle_BG1_Y
b _080B90DA
.align 2, 0
_080B90CC: .4byte gSprites
_080B90D0: .4byte gUnknown_2037F1A
-_080B90D4: .4byte gUnknown_202297A
+_080B90D4: .4byte gBattle_BG1_Y
_080B90D8:
- ldr r0, _080B90E8 @ =gUnknown_202297E
+ ldr r0, _080B90E8 @ =gBattle_BG2_Y
_080B90DA:
strh r4, [r0]
adds r0, r5, 0
@@ -47262,7 +47262,7 @@ _080B90DA:
pop {r0}
bx r0
.align 2, 0
-_080B90E8: .4byte gUnknown_202297E
+_080B90E8: .4byte gBattle_BG2_Y
thumb_func_end sub_80B908C
thumb_func_start sub_80B90EC
@@ -47412,13 +47412,13 @@ _080B91F0:
strh r0, [r4, 0x1E]
cmp r0, 0x1
bne _080B921C
- ldr r0, _080B9218 @ =gUnknown_2022978
+ ldr r0, _080B9218 @ =gBattle_BG1_X
b _080B921E
.align 2, 0
_080B9214: .4byte gUnknown_2037F1A
-_080B9218: .4byte gUnknown_2022978
+_080B9218: .4byte gBattle_BG1_X
_080B921C:
- ldr r0, _080B923C @ =gUnknown_202297C
+ ldr r0, _080B923C @ =gBattle_BG2_X
_080B921E:
ldrh r0, [r0]
strh r0, [r4, 0x20]
@@ -47434,7 +47434,7 @@ _080B921E:
strh r0, [r4, 0x26]
b _080B929A
.align 2, 0
-_080B923C: .4byte gUnknown_202297C
+_080B923C: .4byte gBattle_BG2_X
_080B9240: .4byte gUnknown_2037F1A
_080B9244:
ldrb r0, [r4, 0x1E]
@@ -47477,7 +47477,7 @@ _080B926C:
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080B92B2
- ldr r1, _080B92A8 @ =gUnknown_2039600
+ ldr r1, _080B92A8 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080B929A:
@@ -47487,7 +47487,7 @@ _080B929A:
b _080B92B2
.align 2, 0
_080B92A4: .4byte gSprites
-_080B92A8: .4byte gUnknown_2039600
+_080B92A8: .4byte gScanlineEffect
_080B92AC:
adds r0, r2, 0
bl DestroyAnimVisualTask
@@ -47509,15 +47509,15 @@ sub_80B92B8: @ 80B92B8
lsrs r4, r2, 16
cmp r0, 0x1
bne _080B92DC
- ldr r0, _080B92D4 @ =gUnknown_2022978
+ ldr r0, _080B92D4 @ =gBattle_BG1_X
ldrh r3, [r0]
ldr r0, _080B92D8 @ =0x04000014
b _080B92E2
.align 2, 0
-_080B92D4: .4byte gUnknown_2022978
+_080B92D4: .4byte gBattle_BG1_X
_080B92D8: .4byte 0x04000014
_080B92DC:
- ldr r0, _080B9368 @ =gUnknown_202297C
+ ldr r0, _080B9368 @ =gBattle_BG2_X
ldrh r3, [r0]
ldr r0, _080B936C @ =0x04000018
_080B92E2:
@@ -47532,7 +47532,7 @@ _080B92EC:
asrs r4, r0, 16
cmp r2, r0
bge _080B9318
- ldr r5, _080B9370 @ =gUnknown_2038700
+ ldr r5, _080B9370 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -47555,7 +47555,7 @@ _080B9318:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080B9346
- ldr r4, _080B9370 @ =gUnknown_2038700
+ ldr r4, _080B9370 @ =gScanlineEffectRegBuffers
lsls r0, r3, 16
asrs r0, 16
adds r3, r0, 0
@@ -47587,15 +47587,15 @@ _080B9346:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080B9368: .4byte gUnknown_202297C
+_080B9368: .4byte gBattle_BG2_X
_080B936C: .4byte 0x04000018
-_080B9370: .4byte gUnknown_2038700
+_080B9370: .4byte gScanlineEffectRegBuffers
_080B9374: .4byte 0xa2600001
thumb_func_end sub_80B92B8
@@ -47795,14 +47795,14 @@ _080B94EC:
beq _080B9518
cmp r0, 0x5
bne _080B9558
- ldr r0, _080B9510 @ =gUnknown_2022980
+ ldr r0, _080B9510 @ =gBattle_BG3_X
ldrh r0, [r0]
strh r0, [r4, 0x22]
ldr r0, _080B9514 @ =sub_80B9584
b _080B9576
.align 2, 0
_080B950C: .4byte gUnknown_2037EEC
-_080B9510: .4byte gUnknown_2022980
+_080B9510: .4byte gBattle_BG3_X
_080B9514: .4byte sub_80B9584
_080B9518:
movs r0, 0
@@ -47903,16 +47903,16 @@ _080B95B2:
ands r0, r1
cmp r0, 0
bne _080B95DC
- ldr r1, _080B95D8 @ =gUnknown_2022980
+ ldr r1, _080B95D8 @ =gBattle_BG3_X
ldrh r0, [r3, 0x26]
ldrh r2, [r3, 0x22]
adds r0, r2
strh r0, [r1]
b _080B95E6
.align 2, 0
-_080B95D8: .4byte gUnknown_2022980
+_080B95D8: .4byte gBattle_BG3_X
_080B95DC:
- ldr r0, _080B9604 @ =gUnknown_2022980
+ ldr r0, _080B9604 @ =gBattle_BG3_X
ldrh r1, [r3, 0x22]
ldrh r2, [r3, 0x26]
subs r1, r2
@@ -47934,7 +47934,7 @@ _080B95E6:
strh r0, [r3, 0x24]
b _080B965C
.align 2, 0
-_080B9604: .4byte gUnknown_2022980
+_080B9604: .4byte gBattle_BG3_X
_080B9608:
ldrh r0, [r3, 0xA]
adds r0, 0x1
@@ -47949,16 +47949,16 @@ _080B9608:
ands r1, r0
cmp r1, 0
bne _080B9634
- ldr r1, _080B9630 @ =gUnknown_2022980
+ ldr r1, _080B9630 @ =gBattle_BG3_X
ldrh r0, [r3, 0x24]
ldrh r2, [r3, 0x22]
adds r0, r2
strh r0, [r1]
b _080B963E
.align 2, 0
-_080B9630: .4byte gUnknown_2022980
+_080B9630: .4byte gBattle_BG3_X
_080B9634:
- ldr r0, _080B9664 @ =gUnknown_2022980
+ ldr r0, _080B9664 @ =gBattle_BG3_X
ldrh r1, [r3, 0x22]
ldrh r2, [r3, 0x24]
subs r1, r2
@@ -47985,9 +47985,9 @@ _080B965C:
strh r0, [r3, 0x8]
b _080B9674
.align 2, 0
-_080B9664: .4byte gUnknown_2022980
+_080B9664: .4byte gBattle_BG3_X
_080B9668:
- ldr r1, _080B9678 @ =gUnknown_2022980
+ ldr r1, _080B9678 @ =gBattle_BG3_X
ldrh r0, [r3, 0x22]
strh r0, [r1]
adds r0, r2, 0
@@ -47996,7 +47996,7 @@ _080B9674:
pop {r0}
bx r0
.align 2, 0
-_080B9678: .4byte gUnknown_2022980
+_080B9678: .4byte gBattle_BG3_X
thumb_func_end sub_80B9584
thumb_func_start sub_80B967C
@@ -48271,10 +48271,10 @@ _080B9832:
movs r0, 0xFF
ands r1, r0
strh r1, [r4, 0xC]
- ldr r2, _080B98A0 @ =gUnknown_2022980
+ ldr r2, _080B98A0 @ =gBattle_BG3_X
ldrh r0, [r4, 0xA]
strh r0, [r2]
- ldr r0, _080B98A4 @ =gUnknown_2022982
+ ldr r0, _080B98A4 @ =gBattle_BG3_Y
strh r1, [r0]
ldrh r0, [r6, 0x4]
strh r0, [r4, 0xE]
@@ -48288,8 +48288,8 @@ _080B9890: .4byte gUnknown_2037F1A
_080B9894: .4byte sub_80B98A8
_080B9898: .4byte gTasks
_080B989C: .4byte 0x000001ff
-_080B98A0: .4byte gUnknown_2022980
-_080B98A4: .4byte gUnknown_2022982
+_080B98A0: .4byte gBattle_BG3_X
+_080B98A4: .4byte gBattle_BG3_Y
thumb_func_end sub_80B9800
thumb_func_start sub_80B98A8
@@ -48309,10 +48309,10 @@ sub_80B98A8: @ 80B98A8
ldrsh r0, [r2, r4]
cmp r1, r0
bne _080B98E8
- ldr r0, _080B98E0 @ =gUnknown_2022980
+ ldr r0, _080B98E0 @ =gBattle_BG3_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080B98E4 @ =gUnknown_2022982
+ ldr r0, _080B98E4 @ =gBattle_BG3_Y
strh r1, [r0]
adds r0, r3, 0
bl DestroyTask
@@ -48320,13 +48320,13 @@ sub_80B98A8: @ 80B98A8
.align 2, 0
_080B98D8: .4byte gTasks
_080B98DC: .4byte gUnknown_2037F02
-_080B98E0: .4byte gUnknown_2022980
-_080B98E4: .4byte gUnknown_2022982
+_080B98E0: .4byte gBattle_BG3_X
+_080B98E4: .4byte gBattle_BG3_Y
_080B98E8:
- ldr r1, _080B98FC @ =gUnknown_2022980
+ ldr r1, _080B98FC @ =gBattle_BG3_X
ldrh r0, [r2, 0xA]
strh r0, [r1]
- ldr r1, _080B9900 @ =gUnknown_2022982
+ ldr r1, _080B9900 @ =gBattle_BG3_Y
ldrh r0, [r2, 0xC]
strh r0, [r1]
_080B98F4:
@@ -48334,8 +48334,8 @@ _080B98F4:
pop {r0}
bx r0
.align 2, 0
-_080B98FC: .4byte gUnknown_2022980
-_080B9900: .4byte gUnknown_2022982
+_080B98FC: .4byte gBattle_BG3_X
+_080B9900: .4byte gBattle_BG3_Y
thumb_func_end sub_80B98A8
thumb_func_start sub_80B9904
@@ -49629,15 +49629,15 @@ _080BA2B4:
beq _080BA2CC
b _080BA2DC
_080BA2BA:
- ldr r1, _080BA2C0 @ =gUnknown_2022980
+ ldr r1, _080BA2C0 @ =gBattle_BG3_X
b _080BA2CE
.align 2, 0
-_080BA2C0: .4byte gUnknown_2022980
+_080BA2C0: .4byte gBattle_BG3_X
_080BA2C4:
- ldr r1, _080BA2C8 @ =gUnknown_2022982
+ ldr r1, _080BA2C8 @ =gBattle_BG3_Y
b _080BA2CE
.align 2, 0
-_080BA2C8: .4byte gUnknown_2022982
+_080BA2C8: .4byte gBattle_BG3_Y
_080BA2CC:
ldr r1, _080BA2D8 @ =gSpriteCoordOffsetX
_080BA2CE:
@@ -49883,10 +49883,10 @@ sub_80BA47C: @ 80BA47C
strh r1, [r2, 0xE]
ldrh r1, [r3, 0x6]
strh r1, [r2, 0x18]
- ldr r4, _080BA4C4 @ =gUnknown_2022980
+ ldr r4, _080BA4C4 @ =gBattle_BG3_X
ldrh r1, [r3]
strh r1, [r4]
- ldr r4, _080BA4C8 @ =gUnknown_2022982
+ ldr r4, _080BA4C8 @ =gBattle_BG3_Y
ldrh r1, [r3, 0x2]
strh r1, [r4]
ldr r1, _080BA4CC @ =sub_80BA4D0
@@ -49898,8 +49898,8 @@ sub_80BA47C: @ 80BA47C
.align 2, 0
_080BA4BC: .4byte gTasks
_080BA4C0: .4byte gUnknown_2037F02
-_080BA4C4: .4byte gUnknown_2022980
-_080BA4C8: .4byte gUnknown_2022982
+_080BA4C4: .4byte gBattle_BG3_X
+_080BA4C8: .4byte gBattle_BG3_Y
_080BA4CC: .4byte sub_80BA4D0
thumb_func_end sub_80BA47C
@@ -49919,7 +49919,7 @@ sub_80BA4D0: @ 80BA4D0
mov r12, r1
cmp r0, 0
bne _080BA556
- ldr r0, _080BA504 @ =gUnknown_2022980
+ ldr r0, _080BA504 @ =gBattle_BG3_X
ldrh r2, [r0]
movs r7, 0x8
ldrsh r1, [r3, r7]
@@ -49931,12 +49931,12 @@ sub_80BA4D0: @ 80BA4D0
b _080BA50A
.align 2, 0
_080BA500: .4byte gTasks
-_080BA504: .4byte gUnknown_2022980
+_080BA504: .4byte gBattle_BG3_X
_080BA508:
ldrh r0, [r3, 0x8]
_080BA50A:
strh r0, [r6]
- ldr r2, _080BA528 @ =gUnknown_2022982
+ ldr r2, _080BA528 @ =gBattle_BG3_Y
ldrh r3, [r2]
lsls r1, r5, 2
adds r0, r1, r5
@@ -49950,7 +49950,7 @@ _080BA50A:
movs r0, 0
b _080BA530
.align 2, 0
-_080BA528: .4byte gUnknown_2022982
+_080BA528: .4byte gBattle_BG3_Y
_080BA52C:
ldrh r0, [r4, 0xA]
negs r0, r0
@@ -51171,7 +51171,7 @@ _080BAEAC:
adds r1, 0x1
movs r2, 0x2
bl LoadPalette
- ldr r2, _080BAF24 @ =gUnknown_2022978
+ ldr r2, _080BAF24 @ =gBattle_BG1_X
ldr r0, _080BAF28 @ =gSprites
lsls r1, r5, 4
adds r1, r5
@@ -51181,7 +51181,7 @@ _080BAEAC:
negs r0, r0
adds r0, 0x20
strh r0, [r2]
- ldr r2, _080BAF2C @ =gUnknown_202297A
+ ldr r2, _080BAF2C @ =gBattle_BG1_Y
ldrh r0, [r1, 0x22]
negs r0, r0
adds r0, 0x20
@@ -51210,9 +51210,9 @@ _080BAF14: .4byte gUnknown_2037F1A
_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap
_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet
_080BAF20: .4byte gUnknown_83E7CC8
-_080BAF24: .4byte gUnknown_2022978
+_080BAF24: .4byte gBattle_BG1_X
_080BAF28: .4byte gSprites
-_080BAF2C: .4byte gUnknown_202297A
+_080BAF2C: .4byte gBattle_BG1_Y
_080BAF30: .4byte gTasks
_080BAF34: .4byte sub_80BAF38
thumb_func_end sub_80BACEC
@@ -51236,7 +51236,7 @@ sub_80BAF38: @ 80BAF38
movs r1, 0
mov r8, r1
strh r0, [r5, 0x1C]
- ldr r7, _080BB06C @ =gUnknown_202297A
+ ldr r7, _080BB06C @ =gBattle_BG1_Y
ldrh r2, [r7]
subs r1, r2, 0x4
strh r1, [r7]
@@ -51360,7 +51360,7 @@ _080BB05A:
bx r0
.align 2, 0
_080BB068: .4byte gTasks
-_080BB06C: .4byte gUnknown_202297A
+_080BB06C: .4byte gBattle_BG1_Y
_080BB070: .4byte gUnknown_2022984
_080BB074: .4byte gUnknown_2022986
_080BB078: .4byte 0x00003f3f
@@ -51763,10 +51763,10 @@ _080BB3C4:
movs r2, 0x20
bl LoadCompressedPalette
_080BB3D2:
- ldr r3, _080BB400 @ =gUnknown_2022978
+ ldr r3, _080BB400 @ =gBattle_BG1_X
movs r2, 0
strh r2, [r3]
- ldr r0, _080BB404 @ =gUnknown_202297A
+ ldr r0, _080BB404 @ =gBattle_BG1_Y
strh r2, [r0]
ldr r1, _080BB408 @ =gUnknown_20399B4
ldr r0, [r1]
@@ -51786,8 +51786,8 @@ _080BB3D2:
b _080BB420
.align 2, 0
_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette
-_080BB400: .4byte gUnknown_2022978
-_080BB404: .4byte gUnknown_202297A
+_080BB400: .4byte gBattle_BG1_X
+_080BB404: .4byte gBattle_BG1_Y
_080BB408: .4byte gUnknown_20399B4
_080BB40C: .4byte gTasks
_080BB410: .4byte 0x0000fffd
@@ -51880,7 +51880,7 @@ sub_80BB4B8: @ 80BB4B8
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r2, _080BB4E4 @ =gUnknown_202297A
+ ldr r2, _080BB4E4 @ =gBattle_BG1_Y
ldr r1, _080BB4E8 @ =gTasks
lsls r0, r6, 2
adds r0, r6
@@ -51900,7 +51900,7 @@ sub_80BB4B8: @ 80BB4B8
beq _080BB4F6
b _080BB644
.align 2, 0
-_080BB4E4: .4byte gUnknown_202297A
+_080BB4E4: .4byte gBattle_BG1_Y
_080BB4E8: .4byte gTasks
_080BB4EC:
cmp r2, 0x2
@@ -52406,13 +52406,13 @@ sub_80BB8A4: @ 80BB8A4
ldrh r7, [r1, 0x1E]
adds r2, r7
strh r2, [r1, 0x1E]
- ldr r6, _080BB914 @ =gUnknown_2022980
+ ldr r6, _080BB914 @ =gBattle_BG3_X
lsls r0, r3, 16
asrs r0, 24
ldrh r4, [r6]
adds r0, r4
strh r0, [r6]
- ldr r4, _080BB918 @ =gUnknown_2022982
+ ldr r4, _080BB918 @ =gBattle_BG3_Y
lsls r0, r2, 16
asrs r0, 24
ldrh r7, [r4]
@@ -52443,8 +52443,8 @@ _080BB90A:
bx r0
.align 2, 0
_080BB910: .4byte gTasks
-_080BB914: .4byte gUnknown_2022980
-_080BB918: .4byte gUnknown_2022982
+_080BB914: .4byte gBattle_BG3_X
+_080BB918: .4byte gBattle_BG3_Y
_080BB91C: .4byte gUnknown_2037F02
thumb_func_end sub_80BB8A4
@@ -52772,10 +52772,10 @@ _080BBBA8:
ldr r0, [sp, 0x5C]
movs r2, 0x20
bl LoadCompressedPalette
- ldr r0, _080BBC1C @ =gUnknown_2022978
+ ldr r0, _080BBC1C @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080BBC20 @ =gUnknown_202297A
+ ldr r0, _080BBC20 @ =gBattle_BG1_Y
strh r1, [r0]
ldr r1, _080BBC24 @ =gTasks
mov r2, r9
@@ -52814,8 +52814,8 @@ _080BBBA8:
_080BBC10: .4byte gBattlerPartyIndexes
_080BBC14: .4byte gPlayerParty
_080BBC18: .4byte gUnknown_2023D44
-_080BBC1C: .4byte gUnknown_2022978
-_080BBC20: .4byte gUnknown_202297A
+_080BBC1C: .4byte gBattle_BG1_X
+_080BBC20: .4byte gBattle_BG1_Y
_080BBC24: .4byte gTasks
_080BBC28: .4byte sub_80BBC2C
thumb_func_end sub_80BBA20
@@ -52845,7 +52845,7 @@ _080BBC4A:
ldrsh r0, [r3, r1]
cmp r0, 0
bge _080BBC70
- ldr r2, _080BBC6C @ =gUnknown_202297A
+ ldr r2, _080BBC6C @ =gBattle_BG1_Y
lsls r1, r4, 16
asrs r1, 24
ldrh r0, [r2]
@@ -52854,9 +52854,9 @@ _080BBC4A:
b _080BBC7C
.align 2, 0
_080BBC68: .4byte gTasks
-_080BBC6C: .4byte gUnknown_202297A
+_080BBC6C: .4byte gBattle_BG1_Y
_080BBC70:
- ldr r1, _080BBCA0 @ =gUnknown_202297A
+ ldr r1, _080BBCA0 @ =gBattle_BG1_Y
lsls r0, r4, 16
asrs r0, 24
ldrh r2, [r1]
@@ -52882,7 +52882,7 @@ _080BBC7C:
beq _080BBCAA
b _080BBDD8
.align 2, 0
-_080BBCA0: .4byte gUnknown_202297A
+_080BBCA0: .4byte gBattle_BG1_Y
_080BBCA4:
cmp r0, 0x2
beq _080BBD00
@@ -53860,14 +53860,14 @@ sub_80BC41C: @ 80BC41C
lsls r0, 24
lsrs r0, 24
bl DestroyTask
- ldr r0, _080BC468 @ =gUnknown_2022978
+ ldr r0, _080BC468 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080BC46C @ =gUnknown_202297A
+ ldr r0, _080BC46C @ =gBattle_BG1_Y
strh r1, [r0]
- ldr r0, _080BC470 @ =gUnknown_202297C
+ ldr r0, _080BC470 @ =gBattle_BG2_X
strh r1, [r0]
- ldr r0, _080BC474 @ =gUnknown_202297E
+ ldr r0, _080BC474 @ =gBattle_BG2_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
@@ -53889,10 +53889,10 @@ sub_80BC41C: @ 80BC41C
pop {r0}
bx r0
.align 2, 0
-_080BC468: .4byte gUnknown_2022978
-_080BC46C: .4byte gUnknown_202297A
-_080BC470: .4byte gUnknown_202297C
-_080BC474: .4byte gUnknown_202297E
+_080BC468: .4byte gBattle_BG1_X
+_080BC46C: .4byte gBattle_BG1_Y
+_080BC470: .4byte gBattle_BG2_X
+_080BC474: .4byte gBattle_BG2_Y
_080BC478: .4byte 0x00003f3f
thumb_func_end sub_80BC41C
@@ -53905,7 +53905,7 @@ task_battle_intro_80BC47C: @ 80BC47C
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
- ldr r1, _080BC4B4 @ =gUnknown_2022978
+ ldr r1, _080BC4B4 @ =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x6
strh r0, [r1]
@@ -53927,7 +53927,7 @@ _080BC4A8:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080BC4B4: .4byte gUnknown_2022978
+_080BC4B4: .4byte gBattle_BG1_X
_080BC4B8: .4byte gTasks
_080BC4BC: .4byte _080BC4C0
.align 2, 0
@@ -54040,7 +54040,7 @@ _080BC590:
ldrsh r0, [r2, r1]
cmp r0, 0x1
bne _080BC5B0
- ldr r2, _080BC5A8 @ =gUnknown_202297A
+ ldr r2, _080BC5A8 @ =gBattle_BG1_Y
ldrh r1, [r2]
ldr r0, _080BC5AC @ =0x0000ffb0
cmp r1, r0
@@ -54048,10 +54048,10 @@ _080BC590:
subs r0, r1, 0x2
b _080BC5BC
.align 2, 0
-_080BC5A8: .4byte gUnknown_202297A
+_080BC5A8: .4byte gBattle_BG1_Y
_080BC5AC: .4byte 0x0000ffb0
_080BC5B0:
- ldr r2, _080BC690 @ =gUnknown_202297A
+ ldr r2, _080BC690 @ =gBattle_BG1_Y
ldrh r1, [r2]
ldr r0, _080BC694 @ =0x0000ffc8
cmp r1, r0
@@ -54085,9 +54085,9 @@ _080BC5D2:
strh r0, [r1, 0xC]
_080BC5EA:
movs r3, 0
- ldr r5, _080BC6A0 @ =gUnknown_2039600
+ ldr r5, _080BC6A0 @ =gScanlineEffect
mov r9, r5
- ldr r7, _080BC6A4 @ =gUnknown_2038700
+ ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers
mov r6, r9
adds r5, r1, 0
_080BC5F6:
@@ -54105,8 +54105,8 @@ _080BC5F6:
ble _080BC5F6
cmp r3, 0x9F
bgt _080BC63A
- ldr r7, _080BC6A4 @ =gUnknown_2038700
- ldr r6, _080BC6A0 @ =gUnknown_2039600
+ ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers
+ ldr r6, _080BC6A0 @ =gScanlineEffect
ldr r1, _080BC6A8 @ =gTasks
mov r2, r12
adds r0, r2, r4
@@ -54165,12 +54165,12 @@ _080BC63A:
bl SetGpuReg
b _080BC6BA
.align 2, 0
-_080BC690: .4byte gUnknown_202297A
+_080BC690: .4byte gBattle_BG1_Y
_080BC694: .4byte 0x0000ffc8
_080BC698: .4byte gUnknown_2022986
_080BC69C: .4byte 0xfffffc04
-_080BC6A0: .4byte gUnknown_2039600
-_080BC6A4: .4byte gUnknown_2038700
+_080BC6A0: .4byte gScanlineEffect
+_080BC6A4: .4byte gScanlineEffectRegBuffers
_080BC6A8: .4byte gTasks
_080BC6AC: .4byte 0x0600e000
_080BC6B0: .4byte 0x05000200
@@ -54216,14 +54216,14 @@ _080BC6F8:
cmp r0, 0x4
bne _080BC710
_080BC6FC:
- ldr r1, _080BC704 @ =gUnknown_2022978
+ ldr r1, _080BC704 @ =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x8
b _080BC70E
.align 2, 0
-_080BC704: .4byte gUnknown_2022978
+_080BC704: .4byte gBattle_BG1_X
_080BC708:
- ldr r1, _080BC74C @ =gUnknown_2022978
+ ldr r1, _080BC74C @ =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x6
_080BC70E:
@@ -54238,7 +54238,7 @@ _080BC710:
adds r6, r0, 0
cmp r1, 0x4
bne _080BC774
- ldr r7, _080BC750 @ =gUnknown_202297A
+ ldr r7, _080BC750 @ =gBattle_BG1_Y
ldrh r0, [r4, 0x14]
bl Cos2
lsls r0, 16
@@ -54259,8 +54259,8 @@ _080BC736:
adds r0, r1, 0x4
b _080BC75A
.align 2, 0
-_080BC74C: .4byte gUnknown_2022978
-_080BC750: .4byte gUnknown_202297A
+_080BC74C: .4byte gBattle_BG1_X
+_080BC750: .4byte gBattle_BG1_Y
_080BC754: .4byte 0x000001ff
_080BC758:
adds r0, r1, 0x6
@@ -54459,9 +54459,9 @@ _080BC8CC:
strh r0, [r1, 0xC]
_080BC8E2:
movs r3, 0
- ldr r0, _080BC994 @ =gUnknown_2039600
+ ldr r0, _080BC994 @ =gScanlineEffect
mov r8, r0
- ldr r2, _080BC998 @ =gUnknown_2038700
+ ldr r2, _080BC998 @ =gScanlineEffectRegBuffers
mov r12, r2
mov r7, r8
adds r4, r1, 0
@@ -54480,9 +54480,9 @@ _080BC8F0:
ble _080BC8F0
cmp r3, 0x9F
bgt _080BC934
- ldr r0, _080BC998 @ =gUnknown_2038700
+ ldr r0, _080BC998 @ =gScanlineEffectRegBuffers
mov r12, r0
- ldr r7, _080BC994 @ =gUnknown_2039600
+ ldr r7, _080BC994 @ =gScanlineEffect
ldr r1, _080BC990 @ =gTasks
adds r0, r6, r5
lsls r0, 3
@@ -54542,8 +54542,8 @@ _080BC934:
_080BC988: .4byte gUnknown_2022986
_080BC98C: .4byte 0xfffffc04
_080BC990: .4byte gTasks
-_080BC994: .4byte gUnknown_2039600
-_080BC998: .4byte gUnknown_2038700
+_080BC994: .4byte gScanlineEffect
+_080BC998: .4byte gScanlineEffectRegBuffers
_080BC99C: .4byte 0x0600e000
_080BC9A0: .4byte 0x05000200
_080BC9A4:
@@ -54580,7 +54580,7 @@ task_battle_intro_anim: @ 80BC9D4
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
- ldr r1, _080BCA08 @ =gUnknown_2022978
+ ldr r1, _080BCA08 @ =gBattle_BG1_X
ldrh r0, [r1]
adds r0, 0x8
strh r0, [r1]
@@ -54602,7 +54602,7 @@ _080BC9FE:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080BCA08: .4byte gUnknown_2022978
+_080BCA08: .4byte gBattle_BG1_X
_080BCA0C: .4byte gTasks
_080BCA10: .4byte _080BCA14
.align 2, 0
@@ -54768,9 +54768,9 @@ _080BCB46:
strh r0, [r1, 0xC]
_080BCB5C:
movs r3, 0
- ldr r6, _080BCC08 @ =gUnknown_2039600
+ ldr r6, _080BCC08 @ =gScanlineEffect
mov r8, r6
- ldr r7, _080BCC0C @ =gUnknown_2038700
+ ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers
adds r4, r1, 0
_080BCB66:
lsls r2, r3, 1
@@ -54787,8 +54787,8 @@ _080BCB66:
ble _080BCB66
cmp r3, 0x9F
bgt _080BCBAA
- ldr r7, _080BCC0C @ =gUnknown_2038700
- ldr r6, _080BCC08 @ =gUnknown_2039600
+ ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers
+ ldr r6, _080BCC08 @ =gScanlineEffect
ldr r1, _080BCC10 @ =gTasks
mov r2, r12
adds r0, r2, r5
@@ -54849,8 +54849,8 @@ _080BCBAA:
.align 2, 0
_080BCC00: .4byte gUnknown_2022986
_080BCC04: .4byte 0xfffffc04
-_080BCC08: .4byte gUnknown_2039600
-_080BCC0C: .4byte gUnknown_2038700
+_080BCC08: .4byte gScanlineEffect
+_080BCC0C: .4byte gScanlineEffectRegBuffers
_080BCC10: .4byte gTasks
_080BCC14: .4byte 0x0600e000
_080BCC18: .4byte 0x05000200
@@ -54903,7 +54903,7 @@ sub_80BCC4C: @ 80BCC4C
ldrsh r0, [r7, r2]
cmp r0, 0
bne _080BCCC2
- ldr r2, _080BCC9C @ =gUnknown_2022978
+ ldr r2, _080BCC9C @ =gBattle_BG1_X
ldrh r1, [r2]
movs r0, 0x80
lsls r0, 8
@@ -54917,15 +54917,15 @@ sub_80BCC4C: @ 80BCC4C
_080BCC8A:
adds r0, r1, 0x3
strh r0, [r2]
- ldr r1, _080BCCA0 @ =gUnknown_202297C
+ ldr r1, _080BCCA0 @ =gBattle_BG2_X
ldrh r0, [r1]
subs r0, 0x3
strh r0, [r1]
b _080BCCC2
.align 2, 0
_080BCC98: .4byte gTasks
-_080BCC9C: .4byte gUnknown_2022978
-_080BCCA0: .4byte gUnknown_202297C
+_080BCC9C: .4byte gBattle_BG1_X
+_080BCCA0: .4byte gBattle_BG2_X
_080BCCA4:
str r5, [sp]
ldr r1, _080BCCE4 @ =0x0600e000
@@ -55120,9 +55120,9 @@ _080BCE1C:
strh r0, [r1, 0xC]
_080BCE32:
movs r3, 0
- ldr r0, _080BCED4 @ =gUnknown_2039600
+ ldr r0, _080BCED4 @ =gScanlineEffect
mov r12, r0
- ldr r2, _080BCED8 @ =gUnknown_2038700
+ ldr r2, _080BCED8 @ =gScanlineEffectRegBuffers
mov r8, r2
mov r7, r12
adds r4, r1, 0
@@ -55141,9 +55141,9 @@ _080BCE40:
ble _080BCE40
cmp r3, 0x9F
bgt _080BCE84
- ldr r0, _080BCED8 @ =gUnknown_2038700
+ ldr r0, _080BCED8 @ =gScanlineEffectRegBuffers
mov r8, r0
- ldr r7, _080BCED4 @ =gUnknown_2039600
+ ldr r7, _080BCED4 @ =gScanlineEffect
ldr r1, _080BCEDC @ =gTasks
adds r0, r5, r6
lsls r0, 3
@@ -55197,8 +55197,8 @@ _080BCE84:
.align 2, 0
_080BCECC: .4byte gUnknown_2022986
_080BCED0: .4byte 0xfffffc04
-_080BCED4: .4byte gUnknown_2039600
-_080BCED8: .4byte gUnknown_2038700
+_080BCED4: .4byte gScanlineEffect
+_080BCED8: .4byte gScanlineEffectRegBuffers
_080BCEDC: .4byte gTasks
_080BCEE0:
adds r0, r6, 0
diff --git a/asm/battle_anim_80DE2C0.s b/asm/battle_anim_80DE2C0.s
index f3ddeb0b1..603005d78 100644
--- a/asm/battle_anim_80DE2C0.s
+++ b/asm/battle_anim_80DE2C0.s
@@ -1644,7 +1644,7 @@ sub_80DEF38: @ 80DEF38
movs r1, 0xFF
ands r0, r1
strh r0, [r2, 0x30]
- ldr r1, _080DEF80 @ =gUnknown_825E074
+ ldr r1, _080DEF80 @ =gSineTable
movs r3, 0x30
ldrsh r0, [r2, r3]
lsls r0, 1
@@ -1671,7 +1671,7 @@ sub_80DEF38: @ 80DEF38
bl DestroyAnimSprite
b _080DEF96
.align 2, 0
-_080DEF80: .4byte gUnknown_825E074
+_080DEF80: .4byte gSineTable
_080DEF84:
lsls r0, r1, 16
asrs r0, 16
@@ -1742,14 +1742,14 @@ _080DEFF4:
strh r2, [r5, 0x16]
cmp r7, 0x1
bne _080DF01C
- ldr r0, _080DF018 @ =gUnknown_2022978
+ ldr r0, _080DF018 @ =gBattle_BG1_X
b _080DF01E
.align 2, 0
_080DF010: .4byte gUnknown_2037F1B
_080DF014: .4byte gUnknown_2037F02
-_080DF018: .4byte gUnknown_2022978
+_080DF018: .4byte gBattle_BG1_X
_080DF01C:
- ldr r0, _080DF03C @ =gUnknown_202297C
+ ldr r0, _080DF03C @ =gBattle_BG2_X
_080DF01E:
ldrh r2, [r0]
strh r2, [r5, 0x18]
@@ -1766,7 +1766,7 @@ _080DF01E:
ldrh r3, [r5, 0x18]
b _080DF044
.align 2, 0
-_080DF03C: .4byte gUnknown_202297C
+_080DF03C: .4byte gBattle_BG2_X
_080DF040:
strh r2, [r5, 0x1E]
ldrh r3, [r5, 0x1A]
@@ -1780,7 +1780,7 @@ _080DF044:
ldrsh r0, [r5, r6]
cmp r1, r0
bgt _080DF07A
- ldr r4, _080DF084 @ =gUnknown_2038700
+ ldr r4, _080DF084 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r4
@@ -1805,7 +1805,7 @@ _080DF07A:
ldr r0, _080DF088 @ =0x04000014
b _080DF08E
.align 2, 0
-_080DF084: .4byte gUnknown_2038700
+_080DF084: .4byte gScanlineEffectRegBuffers
_080DF088: .4byte 0x04000014
_080DF08C:
ldr r0, _080DF0B8 @ =0x04000018
@@ -1822,7 +1822,7 @@ _080DF08E:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
ldr r0, _080DF0C0 @ =sub_80DF0C4
str r0, [r5]
add sp, 0xC
@@ -1917,7 +1917,7 @@ _080DF148:
ldrsh r0, [r4, r2]
cmp r1, r0
bge _080DF17C
- ldr r5, _080DF1D4 @ =gUnknown_2038700
+ ldr r5, _080DF1D4 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1945,7 +1945,7 @@ _080DF17C:
ldrsh r0, [r4, r2]
cmp r1, r0
bgt _080DF1B0
- ldr r5, _080DF1D4 @ =gUnknown_2038700
+ ldr r5, _080DF1D4 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1974,7 +1974,7 @@ _080DF1B0:
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080DF1C6
- ldr r1, _080DF1D8 @ =gUnknown_2039600
+ ldr r1, _080DF1D8 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080DF1C6:
@@ -1985,8 +1985,8 @@ _080DF1CC:
pop {r0}
bx r0
.align 2, 0
-_080DF1D4: .4byte gUnknown_2038700
-_080DF1D8: .4byte gUnknown_2039600
+_080DF1D4: .4byte gScanlineEffectRegBuffers
+_080DF1D8: .4byte gScanlineEffect
thumb_func_end sub_80DF0C4
thumb_func_start sub_80DF1DC
@@ -3434,7 +3434,7 @@ _080DFCCE:
movs r2, 0
movs r3, 0
bl sub_80730C0
- ldr r1, _080DFD28 @ =gUnknown_2022978
+ ldr r1, _080DFD28 @ =gBattle_BG1_X
ldr r3, _080DFD2C @ =0x0000ffc8
b _080DFD58
.align 2, 0
@@ -3442,7 +3442,7 @@ _080DFD18: .4byte 0x00003f42
_080DFD1C: .4byte gFile_graphics_battle_anims_masks_morning_sun_tilemap
_080DFD20: .4byte gFile_graphics_battle_anims_masks_morning_sun_sheet
_080DFD24: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette
-_080DFD28: .4byte gUnknown_2022978
+_080DFD28: .4byte gBattle_BG1_X
_080DFD2C: .4byte 0x0000ffc8
_080DFD30:
ldr r0, _080DFD48 @ =gUnknown_2037F1A
@@ -3451,22 +3451,22 @@ _080DFD30:
lsls r0, 24
cmp r0, 0
beq _080DFD54
- ldr r1, _080DFD4C @ =gUnknown_2022978
+ ldr r1, _080DFD4C @ =gBattle_BG1_X
ldr r2, _080DFD50 @ =0x0000ff79
adds r0, r2, 0
b _080DFD5A
.align 2, 0
_080DFD48: .4byte gUnknown_2037F1A
-_080DFD4C: .4byte gUnknown_2022978
+_080DFD4C: .4byte gBattle_BG1_X
_080DFD50: .4byte 0x0000ff79
_080DFD54:
- ldr r1, _080DFD80 @ =gUnknown_2022978
+ ldr r1, _080DFD80 @ =gBattle_BG1_X
ldr r3, _080DFD84 @ =0x0000fff6
_080DFD58:
adds r0, r3, 0
_080DFD5A:
strh r0, [r1]
- ldr r1, _080DFD88 @ =gUnknown_202297A
+ ldr r1, _080DFD88 @ =gBattle_BG1_Y
movs r0, 0
strh r0, [r1]
ldr r0, _080DFD8C @ =gTasks
@@ -3474,19 +3474,19 @@ _080DFD5A:
adds r1, r4
lsls r1, 3
adds r1, r0
- ldr r0, _080DFD80 @ =gUnknown_2022978
+ ldr r0, _080DFD80 @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r1, 0x1C]
- ldr r0, _080DFD88 @ =gUnknown_202297A
+ ldr r0, _080DFD88 @ =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r1, 0x1E]
ldrh r0, [r1, 0x8]
adds r0, 0x1
b _080DFE66
.align 2, 0
-_080DFD80: .4byte gUnknown_2022978
+_080DFD80: .4byte gBattle_BG1_X
_080DFD84: .4byte 0x0000fff6
-_080DFD88: .4byte gUnknown_202297A
+_080DFD88: .4byte gBattle_BG1_Y
_080DFD8C: .4byte gTasks
_080DFD90:
lsls r0, r4, 2
@@ -3557,7 +3557,7 @@ _080DFDF8:
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080DFECA
- ldr r2, _080DFE3C @ =gUnknown_2022978
+ ldr r2, _080DFE3C @ =gBattle_BG1_X
ldr r1, _080DFE40 @ =gUnknown_83FF240
movs r3, 0xC
ldrsh r0, [r4, r3]
@@ -3578,7 +3578,7 @@ _080DFDF8:
strh r0, [r4, 0x8]
b _080DFECA
.align 2, 0
-_080DFE3C: .4byte gUnknown_2022978
+_080DFE3C: .4byte gBattle_BG1_X
_080DFE40: .4byte gUnknown_83FF240
_080DFE44:
movs r0, 0x3
@@ -3629,10 +3629,10 @@ _080DFEA0:
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
- ldr r0, _080DFED4 @ =gUnknown_2022978
+ ldr r0, _080DFED4 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080DFED8 @ =gUnknown_202297A
+ ldr r0, _080DFED8 @ =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
@@ -3648,8 +3648,8 @@ _080DFECA:
pop {r0}
bx r0
.align 2, 0
-_080DFED4: .4byte gUnknown_2022978
-_080DFED8: .4byte gUnknown_202297A
+_080DFED4: .4byte gBattle_BG1_X
+_080DFED8: .4byte gBattle_BG1_Y
thumb_func_end sub_80DFC50
thumb_func_start sub_80DFEDC
@@ -4076,7 +4076,7 @@ _080E01FC:
movs r2, 0
movs r3, 0
bl sub_80730C0
- ldr r1, _080E025C @ =gUnknown_2022978
+ ldr r1, _080E025C @ =gBattle_BG1_X
ldr r3, _080E0260 @ =0x0000ffc8
adds r0, r3, 0
b _080E02CE
@@ -4086,7 +4086,7 @@ _080E024C: .4byte 0x00000d03
_080E0250: .4byte gFile_graphics_battle_anims_masks_morning_sun_tilemap
_080E0254: .4byte gFile_graphics_battle_anims_masks_morning_sun_sheet
_080E0258: .4byte gFile_graphics_battle_anims_masks_morning_sun_palette
-_080E025C: .4byte gUnknown_2022978
+_080E025C: .4byte gBattle_BG1_X
_080E0260: .4byte 0x0000ffc8
_080E0264:
ldr r0, _080E02A4 @ =gUnknown_2037F1B
@@ -4099,7 +4099,7 @@ _080E0264:
lsrs r0, 24
cmp r0, 0x1
bne _080E02B8
- ldr r1, _080E02A8 @ =gUnknown_2022978
+ ldr r1, _080E02A8 @ =gBattle_BG1_X
cmp r4, 0x1
bne _080E0288
ldr r2, _080E02AC @ =0x0000ff65
@@ -4119,33 +4119,33 @@ _080E0292:
_080E029A:
cmp r4, 0x2
bne _080E02D0
- ldr r1, _080E02A8 @ =gUnknown_2022978
+ ldr r1, _080E02A8 @ =gBattle_BG1_X
ldr r2, _080E02B4 @ =0x0000ffec
b _080E02CC
.align 2, 0
_080E02A4: .4byte gUnknown_2037F1B
-_080E02A8: .4byte gUnknown_2022978
+_080E02A8: .4byte gBattle_BG1_X
_080E02AC: .4byte 0x0000ff65
_080E02B0: .4byte 0x0000ff8d
_080E02B4: .4byte 0x0000ffec
_080E02B8:
cmp r4, 0x1
bne _080E02C4
- ldr r1, _080E02F0 @ =gUnknown_2022978
+ ldr r1, _080E02F0 @ =gBattle_BG1_X
ldr r3, _080E02F4 @ =0x0000ff79
adds r0, r3, 0
strh r0, [r1]
_080E02C4:
cmp r4, 0
bne _080E02D0
- ldr r1, _080E02F0 @ =gUnknown_2022978
+ ldr r1, _080E02F0 @ =gBattle_BG1_X
ldr r2, _080E02F8 @ =0x0000fff6
_080E02CC:
adds r0, r2, 0
_080E02CE:
strh r0, [r1]
_080E02D0:
- ldr r1, _080E02FC @ =gUnknown_202297A
+ ldr r1, _080E02FC @ =gBattle_BG1_Y
movs r0, 0
strh r0, [r1]
ldr r0, _080E0300 @ =gTasks
@@ -4153,18 +4153,18 @@ _080E02D0:
adds r1, r6
lsls r1, 3
adds r1, r0
- ldr r0, _080E02F0 @ =gUnknown_2022978
+ ldr r0, _080E02F0 @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r1, 0x1C]
- ldr r0, _080E02FC @ =gUnknown_202297A
+ ldr r0, _080E02FC @ =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r1, 0x1E]
b _080E0384
.align 2, 0
-_080E02F0: .4byte gUnknown_2022978
+_080E02F0: .4byte gBattle_BG1_X
_080E02F4: .4byte 0x0000ff79
_080E02F8: .4byte 0x0000fff6
-_080E02FC: .4byte gUnknown_202297A
+_080E02FC: .4byte gBattle_BG1_Y
_080E0300: .4byte gTasks
_080E0304:
ldr r1, _080E0338 @ =gTasks
@@ -4181,7 +4181,7 @@ _080E0304:
lsrs r0, 24
cmp r0, 0x1
bne _080E0348
- ldr r2, _080E0340 @ =gUnknown_2022978
+ ldr r2, _080E0340 @ =gBattle_BG1_X
ldr r1, _080E0344 @ =gUnknown_83FF284
movs r3, 0xC
ldrsh r0, [r5, r3]
@@ -4195,10 +4195,10 @@ _080E0304:
.align 2, 0
_080E0338: .4byte gTasks
_080E033C: .4byte gUnknown_2037F1B
-_080E0340: .4byte gUnknown_2022978
+_080E0340: .4byte gBattle_BG1_X
_080E0344: .4byte gUnknown_83FF284
_080E0348:
- ldr r2, _080E0378 @ =gUnknown_2022978
+ ldr r2, _080E0378 @ =gBattle_BG1_X
ldr r1, _080E037C @ =gUnknown_83FF284
movs r3, 0xC
ldrsh r0, [r5, r3]
@@ -4223,7 +4223,7 @@ _080E035A:
strh r0, [r1, 0x8]
b _080E0476
.align 2, 0
-_080E0378: .4byte gUnknown_2022978
+_080E0378: .4byte gBattle_BG1_X
_080E037C: .4byte gUnknown_83FF284
_080E0380: .4byte gTasks
_080E0384:
@@ -4332,10 +4332,10 @@ _080E044C:
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
- ldr r0, _080E0480 @ =gUnknown_2022978
+ ldr r0, _080E0480 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080E0484 @ =gUnknown_202297A
+ ldr r0, _080E0484 @ =gBattle_BG1_Y
strh r1, [r0]
movs r0, 0x50
movs r1, 0
@@ -4351,8 +4351,8 @@ _080E0476:
pop {r0}
bx r0
.align 2, 0
-_080E0480: .4byte gUnknown_2022978
-_080E0484: .4byte gUnknown_202297A
+_080E0480: .4byte gBattle_BG1_X
+_080E0484: .4byte gBattle_BG1_Y
thumb_func_end sub_80E017C
thumb_func_start sub_80E0488
@@ -6291,31 +6291,31 @@ _080E136C:
ldr r1, _080E13B0 @ =0x00003f42
movs r0, 0x50
bl SetGpuReg
- ldr r0, _080E13B4 @ =gUnknown_2022978
+ ldr r0, _080E13B4 @ =gBattle_BG1_X
ldrh r5, [r0]
- ldr r0, _080E13B8 @ =gUnknown_202297A
+ ldr r0, _080E13B8 @ =gBattle_BG1_Y
b _080E13CE
.align 2, 0
_080E13A4: .4byte gUnknown_2037F1B
_080E13A8: .4byte gUnknown_2037F02
_080E13AC: .4byte 0x04000014
_080E13B0: .4byte 0x00003f42
-_080E13B4: .4byte gUnknown_2022978
-_080E13B8: .4byte gUnknown_202297A
+_080E13B4: .4byte gBattle_BG1_X
+_080E13B8: .4byte gBattle_BG1_Y
_080E13BC:
ldr r0, _080E1434 @ =0x04000018
str r0, [sp]
ldr r1, _080E1438 @ =0x00003f44
movs r0, 0x50
bl SetGpuReg
- ldr r0, _080E143C @ =gUnknown_202297C
+ ldr r0, _080E143C @ =gBattle_BG2_X
ldrh r5, [r0]
- ldr r0, _080E1440 @ =gUnknown_202297E
+ ldr r0, _080E1440 @ =gBattle_BG2_Y
_080E13CE:
ldrh r3, [r0]
movs r7, 0
movs r2, 0
- ldr r6, _080E1444 @ =gUnknown_2038700
+ ldr r6, _080E1444 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r6
@@ -6356,7 +6356,7 @@ _080E13DE:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
ldr r0, _080E144C @ =sub_80E1450
str r0, [r4]
add sp, 0xC
@@ -6366,9 +6366,9 @@ _080E13DE:
.align 2, 0
_080E1434: .4byte 0x04000018
_080E1438: .4byte 0x00003f44
-_080E143C: .4byte gUnknown_202297C
-_080E1440: .4byte gUnknown_202297E
-_080E1444: .4byte gUnknown_2038700
+_080E143C: .4byte gBattle_BG2_X
+_080E1440: .4byte gBattle_BG2_Y
+_080E1444: .4byte gScanlineEffectRegBuffers
_080E1448: .4byte 0xa6600001
_080E144C: .4byte sub_80E1450
thumb_func_end sub_80E12F8
@@ -6394,20 +6394,20 @@ sub_80E1450: @ 80E1450
lsrs r0, 24
cmp r0, 0x1
bne _080E1490
- ldr r0, _080E1488 @ =gUnknown_2022978
+ ldr r0, _080E1488 @ =gBattle_BG1_X
ldrh r0, [r0]
str r0, [sp, 0x4]
- ldr r0, _080E148C @ =gUnknown_202297A
+ ldr r0, _080E148C @ =gBattle_BG1_Y
b _080E1498
.align 2, 0
_080E1484: .4byte gTasks
-_080E1488: .4byte gUnknown_2022978
-_080E148C: .4byte gUnknown_202297A
+_080E1488: .4byte gBattle_BG1_X
+_080E148C: .4byte gBattle_BG1_Y
_080E1490:
- ldr r0, _080E14B0 @ =gUnknown_202297C
+ ldr r0, _080E14B0 @ =gBattle_BG2_X
ldrh r0, [r0]
str r0, [sp, 0x4]
- ldr r0, _080E14B4 @ =gUnknown_202297E
+ ldr r0, _080E14B4 @ =gBattle_BG2_Y
_080E1498:
ldrh r0, [r0]
str r0, [sp, 0x8]
@@ -6423,8 +6423,8 @@ _080E14A6:
beq _080E14C6
b _080E16F4
.align 2, 0
-_080E14B0: .4byte gUnknown_202297C
-_080E14B4: .4byte gUnknown_202297E
+_080E14B0: .4byte gBattle_BG2_X
+_080E14B4: .4byte gBattle_BG2_Y
_080E14B8:
cmp r0, 0x2
bne _080E14BE
@@ -6480,7 +6480,7 @@ _080E14C6:
ldrsh r0, [r6, r3]
cmp r1, r0
ble _080E15E6
- ldr r0, _080E163C @ =gUnknown_2039600
+ ldr r0, _080E163C @ =gScanlineEffect
mov r10, r0
ldr r1, [sp, 0x4]
lsls r0, r1, 16
@@ -6501,7 +6501,7 @@ _080E1536:
subs r0, r1
lsls r0, 7
adds r2, r0
- ldr r0, _080E1640 @ =gUnknown_2038700
+ ldr r0, _080E1640 @ =gScanlineEffectRegBuffers
adds r2, r0
lsls r4, 16
asrs r4, 16
@@ -6519,7 +6519,7 @@ _080E1536:
subs r0, r1
lsls r0, 7
adds r3, r0
- ldr r1, _080E1640 @ =gUnknown_2038700
+ ldr r1, _080E1640 @ =gScanlineEffectRegBuffers
adds r3, r1
lsls r1, r7, 16
asrs r1, 16
@@ -6529,7 +6529,7 @@ _080E1536:
lsls r2, r7, 16
asrs r2, 16
lsls r0, r2, 1
- ldr r7, _080E1644 @ =gUnknown_825E074
+ ldr r7, _080E1644 @ =gSineTable
adds r0, r7
ldrh r0, [r0]
lsls r0, 16
@@ -6583,7 +6583,7 @@ _080E15E6:
lsls r1, r2, 17
cmp r1, 0
blt _080E1612
- ldr r4, _080E1640 @ =gUnknown_2038700
+ ldr r4, _080E1640 @ =gScanlineEffectRegBuffers
ldr r7, [sp, 0x4]
lsls r0, r7, 16
asrs r0, 16
@@ -6625,9 +6625,9 @@ _080E1612:
strh r0, [r6, 0xE]
b _080E1652
.align 2, 0
-_080E163C: .4byte gUnknown_2039600
-_080E1640: .4byte gUnknown_2038700
-_080E1644: .4byte gUnknown_825E074
+_080E163C: .4byte gScanlineEffect
+_080E1640: .4byte gScanlineEffectRegBuffers
+_080E1644: .4byte gSineTable
_080E1648: .4byte 0xffff0000
_080E164C:
ldrh r0, [r6, 0x10]
@@ -6667,14 +6667,14 @@ _080E1684:
asrs r0, 16
cmp r0, 0xC
ble _080E16F4
- ldr r1, _080E16A0 @ =gUnknown_2039600
+ ldr r1, _080E16A0 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0
strh r0, [r6, 0xC]
b _080E16E6
.align 2, 0
-_080E16A0: .4byte gUnknown_2039600
+_080E16A0: .4byte gScanlineEffect
_080E16A4:
ldrh r0, [r6, 0xC]
adds r0, 0x1
@@ -9427,7 +9427,7 @@ _080E2B80:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r3, _080E2BBC @ =gUnknown_825E074
+ ldr r3, _080E2BBC @ =gSineTable
movs r0, 0x30
ldrsh r1, [r4, r0]
lsls r0, r1, 2
@@ -9448,7 +9448,7 @@ _080E2B80:
_080E2BB8:
b _080E2CAE
.align 2, 0
-_080E2BBC: .4byte gUnknown_825E074
+_080E2BBC: .4byte gSineTable
_080E2BC0:
ldrh r0, [r4, 0x30]
adds r0, 0x1
@@ -9471,7 +9471,7 @@ _080E2BD2:
ldrh r0, [r4, 0x22]
subs r0, r1
strh r0, [r4, 0x22]
- ldr r3, _080E2C0C @ =gUnknown_825E074
+ ldr r3, _080E2C0C @ =gSineTable
movs r0, 0x30
ldrsh r1, [r4, r0]
lsls r0, r1, 2
@@ -9490,7 +9490,7 @@ _080E2BD2:
bne _080E2CDC
b _080E2CB2
.align 2, 0
-_080E2C0C: .4byte gUnknown_825E074
+_080E2C0C: .4byte gSineTable
_080E2C10:
ldrh r2, [r4, 0x30]
adds r2, 0x1
@@ -9502,7 +9502,7 @@ _080E2C10:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r3, _080E2C68 @ =gUnknown_825E074
+ ldr r3, _080E2C68 @ =gSineTable
movs r0, 0x30
ldrsh r1, [r4, r0]
lsls r0, r1, 2
@@ -9537,7 +9537,7 @@ _080E2C5C:
bne _080E2CDC
b _080E2CAE
.align 2, 0
-_080E2C68: .4byte gUnknown_825E074
+_080E2C68: .4byte gSineTable
_080E2C6C: .4byte 0x000003ff
_080E2C70: .4byte 0xfffffc00
_080E2C74:
@@ -10738,7 +10738,7 @@ _080E3588:
adds r1, 0x4
movs r5, 0
strh r1, [r4, 0x30]
- ldr r2, _080E35C4 @ =gUnknown_825E074
+ ldr r2, _080E35C4 @ =gSineTable
movs r3, 0x30
ldrsh r0, [r4, r3]
lsls r0, 1
@@ -10763,13 +10763,13 @@ _080E3588:
strh r5, [r4, 0x26]
b _080E361C
.align 2, 0
-_080E35C4: .4byte gUnknown_825E074
+_080E35C4: .4byte gSineTable
_080E35C8:
ldrh r1, [r4, 0x30]
adds r1, 0x6
movs r3, 0
strh r1, [r4, 0x30]
- ldr r2, _080E35F4 @ =gUnknown_825E074
+ ldr r2, _080E35F4 @ =gSineTable
movs r5, 0x30
ldrsh r0, [r4, r5]
lsls r0, 1
@@ -10787,7 +10787,7 @@ _080E35C8:
strh r3, [r4, 0x26]
b _080E361C
.align 2, 0
-_080E35F4: .4byte gUnknown_825E074
+_080E35F4: .4byte gSineTable
_080E35F8:
ldrh r0, [r4, 0x30]
adds r0, 0x1
@@ -12322,7 +12322,7 @@ _080E4206:
adds r1, r0
lsls r1, 2
adds r1, r5
- ldr r3, _080E427C @ =gUnknown_825E074
+ ldr r3, _080E427C @ =gSineTable
movs r6, 0x1E
ldrsh r0, [r4, r6]
lsls r0, 1
@@ -12368,7 +12368,7 @@ _080E4206:
b _080E42C0
.align 2, 0
_080E4278: .4byte gSprites
-_080E427C: .4byte gUnknown_825E074
+_080E427C: .4byte gSineTable
_080E4280:
ldrh r0, [r4, 0x1E]
adds r0, 0x8
@@ -12382,7 +12382,7 @@ _080E4280:
adds r1, r0
lsls r1, 2
adds r1, r3
- ldr r2, _080E42CC @ =gUnknown_825E074
+ ldr r2, _080E42CC @ =gSineTable
movs r5, 0x1E
ldrsh r0, [r4, r5]
lsls r0, 1
@@ -12409,7 +12409,7 @@ _080E42C0:
b _080E42D6
.align 2, 0
_080E42C8: .4byte gSprites
-_080E42CC: .4byte gUnknown_825E074
+_080E42CC: .4byte gSineTable
_080E42D0:
adds r0, r2, 0
bl DestroyAnimVisualTask
diff --git a/asm/battle_anim_80EEC0C.s b/asm/battle_anim_80EEC0C.s
index 82179f2e0..dbcc63093 100644
--- a/asm/battle_anim_80EEC0C.s
+++ b/asm/battle_anim_80EEC0C.s
@@ -168,12 +168,12 @@ sub_80EEC0C: @ 80EEC0C
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- ldr r1, _080EEDE4 @ =gUnknown_2022978
+ ldr r1, _080EEDE4 @ =gBattle_BG1_X
ldrh r0, [r7, 0x20]
negs r0, r0
adds r0, 0x20
strh r0, [r1]
- ldr r1, _080EEDE8 @ =gUnknown_202297A
+ ldr r1, _080EEDE8 @ =gBattle_BG1_Y
ldrh r0, [r7, 0x22]
negs r0, r0
subs r0, 0x20
@@ -215,8 +215,8 @@ _080EEDD4: .4byte SpriteCallbackDummy
_080EEDD8: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_tilemap
_080EEDDC: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_sheet
_080EEDE0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette
-_080EEDE4: .4byte gUnknown_2022978
-_080EEDE8: .4byte gUnknown_202297A
+_080EEDE4: .4byte gBattle_BG1_X
+_080EEDE8: .4byte gBattle_BG1_Y
_080EEDEC: .4byte gTasks
_080EEDF0: .4byte sub_80EEDF4
thumb_func_end sub_80EEC0C
@@ -241,7 +241,7 @@ sub_80EEDF4: @ 80EEDF4
adds r1, r0
movs r3, 0
strh r1, [r5, 0x22]
- ldr r2, _080EEE44 @ =gUnknown_202297A
+ ldr r2, _080EEE44 @ =gBattle_BG1_Y
lsls r0, r1, 16
lsrs r0, 24
ldrh r4, [r2]
@@ -262,7 +262,7 @@ sub_80EEDF4: @ 80EEDF4
.align 2, 0
_080EEE3C: .4byte gUnknown_2037F1A
_080EEE40: .4byte gTasks
-_080EEE44: .4byte gUnknown_202297A
+_080EEE44: .4byte gBattle_BG1_Y
_080EEE48:
cmp r0, 0x2
beq _080EEE9C
diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s
index d5a9b8ae6..e2c52a592 100644
--- a/asm/battle_controller_link_opponent.s
+++ b/asm/battle_controller_link_opponent.s
@@ -4952,10 +4952,10 @@ _0803CF40:
thumb_func_start sub_803CF50
sub_803CF50: @ 803CF50
push {r4,lr}
- ldr r0, _0803CF84 @ =gUnknown_2022974
+ ldr r0, _0803CF84 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _0803CF88 @ =gUnknown_2022976
+ ldr r0, _0803CF88 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _0803CF8C @ =gActiveBattler
ldrb r4, [r0]
@@ -4974,8 +4974,8 @@ sub_803CF50: @ 803CF50
bl sub_80D87BC
b _0803CFA0
.align 2, 0
-_0803CF84: .4byte gUnknown_2022974
-_0803CF88: .4byte gUnknown_2022976
+_0803CF84: .4byte gBattle_BG0_X
+_0803CF88: .4byte gBattle_BG0_Y
_0803CF8C: .4byte gActiveBattler
_0803CF90: .4byte gUnknown_2022BC6
_0803CF94: .4byte gDisplayedStringBattle
diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s
index 7480e8b12..0087859c4 100644
--- a/asm/battle_controller_link_partner.s
+++ b/asm/battle_controller_link_partner.s
@@ -4573,10 +4573,10 @@ _080D67BC:
thumb_func_start sub_80D67CC
sub_80D67CC: @ 80D67CC
push {r4,lr}
- ldr r0, _080D6800 @ =gUnknown_2022974
+ ldr r0, _080D6800 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080D6804 @ =gUnknown_2022976
+ ldr r0, _080D6804 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _080D6808 @ =gActiveBattler
ldrb r4, [r0]
@@ -4595,8 +4595,8 @@ sub_80D67CC: @ 80D67CC
bl sub_80D87BC
b _080D681C
.align 2, 0
-_080D6800: .4byte gUnknown_2022974
-_080D6804: .4byte gUnknown_2022976
+_080D6800: .4byte gBattle_BG0_X
+_080D6804: .4byte gBattle_BG0_Y
_080D6808: .4byte gActiveBattler
_080D680C: .4byte gUnknown_2022BC6
_080D6810: .4byte gDisplayedStringBattle
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
index 91931bb63..7ccd33f5d 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -5776,10 +5776,10 @@ _080EA520:
thumb_func_start sub_80EA52C
sub_80EA52C: @ 80EA52C
push {r4,lr}
- ldr r0, _080EA55C @ =gUnknown_2022974
+ ldr r0, _080EA55C @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080EA560 @ =gUnknown_2022976
+ ldr r0, _080EA560 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _080EA564 @ =gActiveBattler
ldrb r0, [r0]
@@ -5799,8 +5799,8 @@ sub_80EA52C: @ 80EA52C
bl WallyBufferExecCompleted
b _080EA65A
.align 2, 0
-_080EA55C: .4byte gUnknown_2022974
-_080EA560: .4byte gUnknown_2022976
+_080EA55C: .4byte gBattle_BG0_X
+_080EA560: .4byte gBattle_BG0_Y
_080EA564: .4byte gActiveBattler
_080EA568: .4byte gUnknown_2022BC6
_080EA56C: .4byte gBattleTypeFlags
@@ -5951,9 +5951,9 @@ sub_80EA690: @ 80EA690
lsrs r1, r0, 24
cmp r1, 0
bne _080EA6EA
- ldr r0, _080EA6C4 @ =gUnknown_2022974
+ ldr r0, _080EA6C4 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _080EA6C8 @ =gUnknown_2022976
+ ldr r1, _080EA6C8 @ =gBattle_BG0_Y
movs r0, 0xA0
strh r0, [r1]
ldr r0, _080EA6CC @ =gBattleTypeFlags
@@ -5970,8 +5970,8 @@ sub_80EA690: @ 80EA690
ldr r1, _080EA6D8 @ =sub_80E763C
b _080EA6E8
.align 2, 0
-_080EA6C4: .4byte gUnknown_2022974
-_080EA6C8: .4byte gUnknown_2022976
+_080EA6C4: .4byte gBattle_BG0_X
+_080EA6C8: .4byte gBattle_BG0_Y
_080EA6CC: .4byte gBattleTypeFlags
_080EA6D0: .4byte gUnknown_3004FE0
_080EA6D4: .4byte gActiveBattler
@@ -6074,9 +6074,9 @@ sub_80EA798: @ 80EA798
lsrs r1, r0, 24
cmp r1, 0
bne _080EA7C2
- ldr r0, _080EA7C8 @ =gUnknown_2022974
+ ldr r0, _080EA7C8 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _080EA7CC @ =gUnknown_2022976
+ ldr r1, _080EA7CC @ =gBattle_BG0_Y
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
@@ -6092,8 +6092,8 @@ _080EA7C2:
pop {r0}
bx r0
.align 2, 0
-_080EA7C8: .4byte gUnknown_2022974
-_080EA7CC: .4byte gUnknown_2022976
+_080EA7C8: .4byte gBattle_BG0_X
+_080EA7CC: .4byte gBattle_BG0_Y
_080EA7D0: .4byte gUnknown_3004FE0
_080EA7D4: .4byte gActiveBattler
_080EA7D8: .4byte sub_80E7988
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
index 0405efdf1..12185d562 100644
--- a/asm/battle_controller_opponent.s
+++ b/asm/battle_controller_opponent.s
@@ -5113,10 +5113,10 @@ _080384AC:
thumb_func_start sub_80384BC
sub_80384BC: @ 80384BC
push {r4,lr}
- ldr r0, _080384F0 @ =gUnknown_2022974
+ ldr r0, _080384F0 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080384F4 @ =gUnknown_2022976
+ ldr r0, _080384F4 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _080384F8 @ =gActiveBattler
ldrb r0, [r0]
@@ -5135,8 +5135,8 @@ sub_80384BC: @ 80384BC
bl sub_80D87BC
b _0803850C
.align 2, 0
-_080384F0: .4byte gUnknown_2022974
-_080384F4: .4byte gUnknown_2022976
+_080384F0: .4byte gBattle_BG0_X
+_080384F4: .4byte gBattle_BG0_Y
_080384F8: .4byte gActiveBattler
_080384FC: .4byte gUnknown_2022BC6
_08038500: .4byte gDisplayedStringBattle
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index d83245653..9a2ef0f7d 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -1354,10 +1354,10 @@ _0802EDF6:
beq _0802EE18
movs r0, 0x5
bl PlaySE
- ldr r1, _0802EF44 @ =gUnknown_2022974
+ ldr r1, _0802EF44 @ =gBattle_BG0_X
movs r0, 0
strh r0, [r1]
- ldr r1, _0802EF48 @ =gUnknown_2022976
+ ldr r1, _0802EF48 @ =gBattle_BG0_Y
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
@@ -1505,8 +1505,8 @@ _0802EF36:
bx r1
.align 2, 0
_0802EF40: .4byte gMain
-_0802EF44: .4byte gUnknown_2022974
-_0802EF48: .4byte gUnknown_2022976
+_0802EF44: .4byte gBattle_BG0_X
+_0802EF48: .4byte gBattle_BG0_Y
_0802EF4C: .4byte gUnknown_2023FFC
_0802EF50: .4byte gActiveBattler
_0802EF54: .4byte gUnknown_3004FF8
@@ -4051,19 +4051,19 @@ _08030428:
bne _0803051C
cmp r6, 0
bne _0803044C
- ldr r1, _08030444 @ =gUnknown_2022978
+ ldr r1, _08030444 @ =gBattle_BG1_X
ldrh r0, [r1]
strh r0, [r5, 0x1C]
- ldr r2, _08030448 @ =gUnknown_202297A
+ ldr r2, _08030448 @ =gBattle_BG1_Y
b _08030454
.align 2, 0
-_08030444: .4byte gUnknown_2022978
-_08030448: .4byte gUnknown_202297A
+_08030444: .4byte gBattle_BG1_X
+_08030448: .4byte gBattle_BG1_Y
_0803044C:
- ldr r1, _08030474 @ =gUnknown_202297C
+ ldr r1, _08030474 @ =gBattle_BG2_X
ldrh r0, [r1]
strh r0, [r5, 0x1C]
- ldr r2, _08030478 @ =gUnknown_202297E
+ ldr r2, _08030478 @ =gBattle_BG2_Y
_08030454:
ldrh r0, [r2]
strh r0, [r5, 0x1A]
@@ -4081,8 +4081,8 @@ _08030454:
strh r0, [r2]
b _080304E0
.align 2, 0
-_08030474: .4byte gUnknown_202297C
-_08030478: .4byte gUnknown_202297E
+_08030474: .4byte gBattle_BG2_X
+_08030478: .4byte gBattle_BG2_Y
_0803047C:
adds r0, r7, 0
adds r1, r6, 0
@@ -4138,19 +4138,19 @@ _080304E0:
_080304E8:
cmp r6, 0
bne _08030500
- ldr r1, _080304F8 @ =gUnknown_2022978
+ ldr r1, _080304F8 @ =gBattle_BG1_X
ldrh r0, [r5, 0x1C]
strh r0, [r1]
- ldr r1, _080304FC @ =gUnknown_202297A
+ ldr r1, _080304FC @ =gBattle_BG1_Y
b _08030508
.align 2, 0
-_080304F8: .4byte gUnknown_2022978
-_080304FC: .4byte gUnknown_202297A
+_080304F8: .4byte gBattle_BG1_X
+_080304FC: .4byte gBattle_BG1_Y
_08030500:
- ldr r1, _08030528 @ =gUnknown_202297C
+ ldr r1, _08030528 @ =gBattle_BG2_X
ldrh r0, [r5, 0x1C]
strh r0, [r1]
- ldr r1, _0803052C @ =gUnknown_202297E
+ ldr r1, _0803052C @ =gBattle_BG2_Y
_08030508:
ldrh r0, [r5, 0x1A]
strh r0, [r1]
@@ -4169,8 +4169,8 @@ _0803051C:
pop {r0}
bx r0
.align 2, 0
-_08030528: .4byte gUnknown_202297C
-_0803052C: .4byte gUnknown_202297E
+_08030528: .4byte gBattle_BG2_X
+_0803052C: .4byte gBattle_BG2_Y
_08030530: .4byte gUnknown_3004FE0
_08030534: .4byte sub_802FE94
thumb_func_end sub_80303A8
@@ -4964,10 +4964,10 @@ PrintLinkStandbyMsg: @ 8030B5C
ands r0, r1
cmp r0, 0
beq _08030B7C
- ldr r0, _08030B84 @ =gUnknown_2022974
+ ldr r0, _08030B84 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08030B88 @ =gUnknown_2022976
+ ldr r0, _08030B88 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _08030B8C @ =gUnknown_83FE714
movs r1, 0
@@ -4977,8 +4977,8 @@ _08030B7C:
bx r0
.align 2, 0
_08030B80: .4byte gBattleTypeFlags
-_08030B84: .4byte gUnknown_2022974
-_08030B88: .4byte gUnknown_2022976
+_08030B84: .4byte gBattle_BG0_X
+_08030B88: .4byte gBattle_BG0_Y
_08030B8C: .4byte gUnknown_83FE714
thumb_func_end PrintLinkStandbyMsg
@@ -8747,10 +8747,10 @@ _08032AEC:
thumb_func_start sub_8032AFC
sub_8032AFC: @ 8032AFC
push {r4,lr}
- ldr r0, _08032B30 @ =gUnknown_2022974
+ ldr r0, _08032B30 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08032B34 @ =gUnknown_2022976
+ ldr r0, _08032B34 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _08032B38 @ =gActiveBattler
ldrb r4, [r0]
@@ -8769,8 +8769,8 @@ sub_8032AFC: @ 8032AFC
bl sub_80D87BC
b _08032B4C
.align 2, 0
-_08032B30: .4byte gUnknown_2022974
-_08032B34: .4byte gUnknown_2022976
+_08032B30: .4byte gBattle_BG0_X
+_08032B34: .4byte gBattle_BG0_Y
_08032B38: .4byte gActiveBattler
_08032B3C: .4byte gUnknown_2022BC6
_08032B40: .4byte gDisplayedStringBattle
@@ -8824,9 +8824,9 @@ sub_8032B94: @ 8032B94
lsrs r1, r0, 24
cmp r1, 0
bne _08032BBA
- ldr r0, _08032BC0 @ =gUnknown_2022974
+ ldr r0, _08032BC0 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _08032BC4 @ =gUnknown_2022976
+ ldr r1, _08032BC4 @ =gBattle_BG0_Y
movs r0, 0xA0
strh r0, [r1]
ldr r1, _08032BC8 @ =gUnknown_3004FE0
@@ -8840,8 +8840,8 @@ _08032BBA:
pop {r0}
bx r0
.align 2, 0
-_08032BC0: .4byte gUnknown_2022974
-_08032BC4: .4byte gUnknown_2022976
+_08032BC0: .4byte gBattle_BG0_X
+_08032BC4: .4byte gBattle_BG0_Y
_08032BC8: .4byte gUnknown_3004FE0
_08032BCC: .4byte gActiveBattler
_08032BD0: .4byte sub_802E438
@@ -8910,9 +8910,9 @@ sub_8032C4C: @ 8032C4C
lsrs r1, r0, 24
cmp r1, 0
bne _08032C76
- ldr r0, _08032C7C @ =gUnknown_2022974
+ ldr r0, _08032C7C @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _08032C80 @ =gUnknown_2022976
+ ldr r1, _08032C80 @ =gBattle_BG0_Y
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
@@ -8928,8 +8928,8 @@ _08032C76:
pop {r0}
bx r0
.align 2, 0
-_08032C7C: .4byte gUnknown_2022974
-_08032C80: .4byte gUnknown_2022976
+_08032C7C: .4byte gBattle_BG0_X
+_08032C80: .4byte gBattle_BG0_Y
_08032C84: .4byte gUnknown_3004FE0
_08032C88: .4byte gActiveBattler
_08032C8C: .4byte sub_802EA10
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s
index 58fad294a..957a6f658 100644
--- a/asm/battle_controller_pokedude.s
+++ b/asm/battle_controller_pokedude.s
@@ -5055,10 +5055,10 @@ _08158A7C:
thumb_func_start sub_8158A88
sub_8158A88: @ 8158A88
push {r4,lr}
- ldr r0, _08158ABC @ =gUnknown_2022974
+ ldr r0, _08158ABC @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _08158AC0 @ =gUnknown_2022976
+ ldr r0, _08158AC0 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _08158AC4 @ =gActiveBattler
ldrb r4, [r0]
@@ -5077,8 +5077,8 @@ sub_8158A88: @ 8158A88
bl sub_80D87BC
b _08158AD8
.align 2, 0
-_08158ABC: .4byte gUnknown_2022974
-_08158AC0: .4byte gUnknown_2022976
+_08158ABC: .4byte gBattle_BG0_X
+_08158AC0: .4byte gBattle_BG0_Y
_08158AC4: .4byte gActiveBattler
_08158AC8: .4byte gUnknown_2022BC6
_08158ACC: .4byte gDisplayedStringBattle
@@ -5132,9 +5132,9 @@ sub_8158B20: @ 8158B20
lsrs r1, r0, 24
cmp r1, 0
bne _08158B46
- ldr r0, _08158B4C @ =gUnknown_2022974
+ ldr r0, _08158B4C @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _08158B50 @ =gUnknown_2022976
+ ldr r1, _08158B50 @ =gBattle_BG0_Y
movs r0, 0xA0
strh r0, [r1]
ldr r1, _08158B54 @ =gUnknown_3004FE0
@@ -5148,8 +5148,8 @@ _08158B46:
pop {r0}
bx r0
.align 2, 0
-_08158B4C: .4byte gUnknown_2022974
-_08158B50: .4byte gUnknown_2022976
+_08158B4C: .4byte gBattle_BG0_X
+_08158B50: .4byte gBattle_BG0_Y
_08158B54: .4byte gUnknown_3004FE0
_08158B58: .4byte gActiveBattler
_08158B5C: .4byte sub_8156140
@@ -5238,9 +5238,9 @@ sub_8158C04: @ 8158C04
lsrs r1, r0, 24
cmp r1, 0
bne _08158C2E
- ldr r0, _08158C34 @ =gUnknown_2022974
+ ldr r0, _08158C34 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _08158C38 @ =gUnknown_2022976
+ ldr r1, _08158C38 @ =gBattle_BG0_Y
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
@@ -5256,8 +5256,8 @@ _08158C2E:
pop {r0}
bx r0
.align 2, 0
-_08158C34: .4byte gUnknown_2022974
-_08158C38: .4byte gUnknown_2022976
+_08158C34: .4byte gBattle_BG0_X
+_08158C38: .4byte gBattle_BG0_Y
_08158C3C: .4byte gUnknown_3004FE0
_08158C40: .4byte gActiveBattler
_08158C44: .4byte sub_81564E4
@@ -7250,7 +7250,7 @@ _08159C14:
lsls r0, 2
adds r0, r5
ldr r1, [r0]
- ldr r0, _08159C40 @ =gUnknown_2022976
+ ldr r0, _08159C40 @ =gBattle_BG0_Y
ldrh r0, [r0]
strb r0, [r1, 0x4]
bl sub_80EB30C
@@ -7260,9 +7260,9 @@ _08159C14:
b _08159C9E
.align 2, 0
_08159C3C: .4byte gPaletteFade
-_08159C40: .4byte gUnknown_2022976
+_08159C40: .4byte gBattle_BG0_Y
_08159C44:
- ldr r1, _08159C5C @ =gUnknown_2022976
+ ldr r1, _08159C5C @ =gBattle_BG0_Y
movs r0, 0
strh r0, [r1]
bl sub_8159EF0
@@ -7272,7 +7272,7 @@ _08159C44:
bl sub_80D87BC
b _08159C94
.align 2, 0
-_08159C5C: .4byte gUnknown_2022976
+_08159C5C: .4byte gBattle_BG0_Y
_08159C60: .4byte gDisplayedStringBattle
_08159C64:
movs r0, 0x18
@@ -7331,7 +7331,7 @@ _08159CB4:
ldr r0, _08159CFC @ =0x00000137
bl PlayBGM
_08159CD8:
- ldr r1, _08159D00 @ =gUnknown_2022976
+ ldr r1, _08159D00 @ =gBattle_BG0_Y
ldrb r0, [r4]
lsls r0, 2
adds r0, r5
@@ -7348,7 +7348,7 @@ _08159CEE:
.align 2, 0
_08159CF8: .4byte gPaletteFade
_08159CFC: .4byte 0x00000137
-_08159D00: .4byte gUnknown_2022976
+_08159D00: .4byte gBattle_BG0_Y
thumb_func_end sub_8159BA8
thumb_func_start sub_8159D04
diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s
index 405d4c45b..e8edcb7fd 100644
--- a/asm/battle_controller_safari.s
+++ b/asm/battle_controller_safari.s
@@ -849,10 +849,10 @@ sub_80DDB94: @ 80DDB94
thumb_func_start sub_80DDBA0
sub_80DDBA0: @ 80DDBA0
push {r4,lr}
- ldr r0, _080DDBD4 @ =gUnknown_2022974
+ ldr r0, _080DDBD4 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080DDBD8 @ =gUnknown_2022976
+ ldr r0, _080DDBD8 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r0, _080DDBDC @ =gActiveBattler
ldrb r4, [r0]
@@ -871,8 +871,8 @@ sub_80DDBA0: @ 80DDBA0
bl sub_80D87BC
b _080DDBF0
.align 2, 0
-_080DDBD4: .4byte gUnknown_2022974
-_080DDBD8: .4byte gUnknown_2022976
+_080DDBD4: .4byte gBattle_BG0_X
+_080DDBD8: .4byte gBattle_BG0_Y
_080DDBDC: .4byte gActiveBattler
_080DDBE0: .4byte gUnknown_2022BC6
_080DDBE4: .4byte gDisplayedStringBattle
@@ -926,9 +926,9 @@ sub_80DDC38: @ 80DDC38
lsrs r1, r0, 24
cmp r1, 0
bne _080DDC5E
- ldr r0, _080DDC64 @ =gUnknown_2022974
+ ldr r0, _080DDC64 @ =gBattle_BG0_X
strh r1, [r0]
- ldr r1, _080DDC68 @ =gUnknown_2022976
+ ldr r1, _080DDC68 @ =gBattle_BG0_Y
movs r0, 0xA0
strh r0, [r1]
ldr r1, _080DDC6C @ =gUnknown_3004FE0
@@ -942,8 +942,8 @@ _080DDC5E:
pop {r0}
bx r0
.align 2, 0
-_080DDC64: .4byte gUnknown_2022974
-_080DDC68: .4byte gUnknown_2022976
+_080DDC64: .4byte gBattle_BG0_X
+_080DDC68: .4byte gBattle_BG0_Y
_080DDC6C: .4byte gUnknown_3004FE0
_080DDC70: .4byte gActiveBattler
_080DDC74: .4byte HandleInputChooseAction_0
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 183306f97..9505d542b 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -2863,7 +2863,7 @@ _080D894A:
movs r3, 0x1
b _080D8960
_080D8958:
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r3, r0, 24
_080D8960:
diff --git a/asm/battle_records.s b/asm/battle_records.s
index 392161676..c407a988a 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -471,7 +471,7 @@ _080CD604: .4byte 0x81000800
thumb_func_start sub_80CD608
sub_80CD608: @ 80CD608
push {lr}
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
bl dp13_810BB8C
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index ed0e6cb50..b01533468 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -17358,7 +17358,7 @@ _08026244:
.4byte _08026380
.4byte _080263C4
_0802626C:
- ldr r1, _08026290 @ =gUnknown_202297E
+ ldr r1, _08026290 @ =gBattle_BG2_Y
movs r0, 0x60
strh r0, [r1]
movs r0, 0x2
@@ -17373,7 +17373,7 @@ _0802626C:
strb r0, [r1, 0x1E]
b _080263F6
.align 2, 0
-_08026290: .4byte gUnknown_202297E
+_08026290: .4byte gBattle_BG2_Y
_08026294: .4byte gBattleScripting
_08026298:
bl sub_80264D0
@@ -17389,10 +17389,10 @@ _080262A4:
.align 2, 0
_080262AC: .4byte gBattleScripting
_080262B0:
- ldr r1, _080262F8 @ =gUnknown_2022978
+ ldr r1, _080262F8 @ =gBattle_BG1_X
movs r0, 0
strh r0, [r1]
- ldr r1, _080262FC @ =gUnknown_202297A
+ ldr r1, _080262FC @ =gBattle_BG1_Y
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
@@ -17421,8 +17421,8 @@ _080262B0:
strb r0, [r1, 0x1E]
b _080263F6
.align 2, 0
-_080262F8: .4byte gUnknown_2022978
-_080262FC: .4byte gUnknown_202297A
+_080262F8: .4byte gBattle_BG1_X
+_080262FC: .4byte gBattle_BG1_Y
_08026300: .4byte gBattleScripting
_08026304:
bl sub_8026404
@@ -17438,11 +17438,11 @@ _08026318:
lsrs r1, r0, 24
cmp r1, 0
bne _080263F6
- ldr r0, _0802632C @ =gUnknown_202297A
+ ldr r0, _0802632C @ =gBattle_BG1_Y
strh r1, [r0]
b _0802636E
.align 2, 0
-_0802632C: .4byte gUnknown_202297A
+_0802632C: .4byte gBattle_BG1_Y
_08026330:
ldr r0, _0802634C @ =gMain
ldrh r0, [r0, 0x2E]
@@ -17601,10 +17601,10 @@ _0802647C: .4byte gPlayerParty
thumb_func_start sub_8026480
sub_8026480: @ 8026480
push {lr}
- ldr r1, _080264C0 @ =gUnknown_202297E
+ ldr r1, _080264C0 @ =gBattle_BG2_Y
movs r0, 0
strh r0, [r1]
- ldr r1, _080264C4 @ =gUnknown_202297C
+ ldr r1, _080264C4 @ =gBattle_BG2_X
movs r2, 0xD0
lsls r2, 1
adds r0, r2, 0
@@ -17627,8 +17627,8 @@ sub_8026480: @ 8026480
pop {r0}
bx r0
.align 2, 0
-_080264C0: .4byte gUnknown_202297E
-_080264C4: .4byte gUnknown_202297C
+_080264C0: .4byte gBattle_BG2_Y
+_080264C4: .4byte gBattle_BG2_X
_080264C8: .4byte gUnknown_82506D0
_080264CC: .4byte gUnknown_82506F0
thumb_func_end sub_8026480
@@ -17643,7 +17643,7 @@ sub_80264D0: @ 80264D0
movs r0, 0x1
b _0802651A
_080264E0:
- ldr r4, _080264F0 @ =gUnknown_202297C
+ ldr r4, _080264F0 @ =gBattle_BG2_X
ldrh r1, [r4]
movs r5, 0x80
lsls r5, 2
@@ -17652,7 +17652,7 @@ _080264E0:
movs r0, 0
b _0802651A
.align 2, 0
-_080264F0: .4byte gUnknown_202297C
+_080264F0: .4byte gBattle_BG2_X
_080264F4:
movs r0, 0xD0
lsls r0, 1
@@ -17823,7 +17823,7 @@ _08026624:
thumb_func_start sub_8026648
sub_8026648: @ 8026648
push {lr}
- ldr r0, _0802665C @ =gUnknown_202297C
+ ldr r0, _0802665C @ =gBattle_BG2_X
ldrh r1, [r0]
movs r3, 0xD0
lsls r3, 1
@@ -17833,7 +17833,7 @@ sub_8026648: @ 8026648
movs r0, 0
b _08026684
.align 2, 0
-_0802665C: .4byte gUnknown_202297C
+_0802665C: .4byte gBattle_BG2_X
_08026660:
ldrh r0, [r2]
adds r1, r0, 0
@@ -17930,7 +17930,7 @@ PutMonIconOnLvlUpBox: @ 8026688
adds r1, r2
movs r0, 0
strh r0, [r1, 0x2E]
- ldr r0, _08026750 @ =gUnknown_202297C
+ ldr r0, _08026750 @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r1, 0x30]
add sp, 0x10
@@ -17948,14 +17948,14 @@ _08026740: .4byte 0xd75a0000
_08026744: .4byte 0x0000d75a
_08026748: .4byte gUnknown_82507C8
_0802674C: .4byte gSprites
-_08026750: .4byte gUnknown_202297C
+_08026750: .4byte gBattle_BG2_X
thumb_func_end PutMonIconOnLvlUpBox
thumb_func_start SpriteCB_MonIconOnLvlUpBox
SpriteCB_MonIconOnLvlUpBox: @ 8026754
push {r4,lr}
adds r2, r0, 0
- ldr r0, _08026770 @ =gUnknown_202297C
+ ldr r0, _08026770 @ =gBattle_BG2_X
ldrh r1, [r2, 0x30]
ldrh r0, [r0]
subs r1, r0
@@ -17967,7 +17967,7 @@ SpriteCB_MonIconOnLvlUpBox: @ 8026754
strh r0, [r2, 0x2E]
b _08026790
.align 2, 0
-_08026770: .4byte gUnknown_202297C
+_08026770: .4byte gBattle_BG2_X
_08026774:
movs r1, 0x2E
ldrsh r0, [r2, r1]
@@ -32507,14 +32507,14 @@ _0802DAC4: .4byte sub_80116F4
_0802DAC8:
bl sub_800F34C
bl LoadBattleTextboxAndBackground
- ldr r1, _0802DADC @ =gUnknown_2022980
+ ldr r1, _0802DADC @ =gBattle_BG3_X
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
b _0802DB34
.align 2, 0
-_0802DADC: .4byte gUnknown_2022980
+_0802DADC: .4byte gBattle_BG3_X
_0802DAE0:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index ae1c7fa08..195d67c8c 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -463,7 +463,7 @@ sub_80D0C0C: @ 80D0C0C
sub sp, 0x8
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r0, 0x1
negs r0, r0
movs r4, 0
@@ -472,7 +472,7 @@ sub_80D0C0C: @ 80D0C0C
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _080D0C68 @ =gUnknown_2038E80
+ ldr r0, _080D0C68 @ =gScanlineEffectRegBuffers + 0x780
ldr r1, _080D0C6C @ =gUnknown_2039A2C
ldr r1, [r1]
movs r2, 0x14
@@ -498,7 +498,7 @@ sub_80D0C0C: @ 80D0C0C
pop {r1}
bx r1
.align 2, 0
-_080D0C68: .4byte gUnknown_2038E80
+_080D0C68: .4byte gScanlineEffectRegBuffers + 0x780
_080D0C6C: .4byte gUnknown_2039A2C
_080D0C70: .4byte sub_80D0CF0
_080D0C74: .4byte sub_80D0D28
@@ -519,7 +519,7 @@ sub_80D0C78: @ 80D0C78
ldrh r1, [r0, 0xC]
adds r1, 0x8
strh r1, [r0, 0xC]
- ldr r3, _080D0CE4 @ =gUnknown_2038700
+ ldr r3, _080D0CE4 @ =gScanlineEffectRegBuffers
ldr r1, [r4]
movs r2, 0x14
ldrsh r1, [r1, r2]
@@ -557,7 +557,7 @@ _080D0CCA:
bx r1
.align 2, 0
_080D0CE0: .4byte gUnknown_2039A2C
-_080D0CE4: .4byte gUnknown_2038700
+_080D0CE4: .4byte gScanlineEffectRegBuffers
_080D0CE8: .4byte gPaletteFade
_080D0CEC: .4byte sub_80D0BD4
thumb_func_end sub_80D0C78
@@ -572,7 +572,7 @@ sub_80D0CF0: @ 80D0CF0
cmp r0, 0
beq _080D0D14
ldr r1, _080D0D1C @ =0x040000d4
- ldr r0, _080D0D20 @ =gUnknown_2038700
+ ldr r0, _080D0D20 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -587,13 +587,13 @@ _080D0D14:
.align 2, 0
_080D0D18: .4byte gUnknown_2039A2C
_080D0D1C: .4byte 0x040000d4
-_080D0D20: .4byte gUnknown_2038700
+_080D0D20: .4byte gScanlineEffectRegBuffers
_080D0D24: .4byte 0x800000a0
thumb_func_end sub_80D0CF0
thumb_func_start sub_80D0D28
sub_80D0D28: @ 80D0D28
- ldr r1, _080D0D48 @ =gUnknown_2038700
+ ldr r1, _080D0D48 @ =gScanlineEffectRegBuffers
ldr r0, _080D0D4C @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
@@ -610,7 +610,7 @@ sub_80D0D28: @ 80D0D28
strh r1, [r0]
bx lr
.align 2, 0
-_080D0D48: .4byte gUnknown_2038700
+_080D0D48: .4byte gScanlineEffectRegBuffers
_080D0D4C: .4byte 0x04000006
_080D0D50: .4byte 0x04000014
thumb_func_end sub_80D0D28
@@ -651,7 +651,7 @@ sub_80D0D8C: @ 80D0D8C
sub sp, 0x4
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r0, 0x1
negs r0, r0
movs r1, 0
@@ -662,7 +662,7 @@ sub_80D0D8C: @ 80D0D8C
bl BeginNormalPaletteFade
ldr r0, _080D0DE0 @ =gUnknown_2039A2C
ldr r1, [r0]
- ldr r0, _080D0DE4 @ =gUnknown_2038E80
+ ldr r0, _080D0DE4 @ =gScanlineEffectRegBuffers + 0x780
movs r2, 0x16
ldrsh r1, [r1, r2]
movs r2, 0xA0
@@ -684,7 +684,7 @@ sub_80D0D8C: @ 80D0D8C
bx r1
.align 2, 0
_080D0DE0: .4byte gUnknown_2039A2C
-_080D0DE4: .4byte gUnknown_2038E80
+_080D0DE4: .4byte gScanlineEffectRegBuffers + 0x780
_080D0DE8: .4byte sub_80D0E80
_080D0DEC: .4byte sub_80D0EB8
thumb_func_end sub_80D0D8C
@@ -715,7 +715,7 @@ _080D0E18:
lsrs r0, r4, 8
asrs r1, r7, 16
bl Sin
- ldr r1, _080D0E74 @ =gUnknown_2038700
+ ldr r1, _080D0E74 @ =gScanlineEffectRegBuffers
lsls r2, r5, 1
adds r2, r1
ldr r6, _080D0E70 @ =gUnknown_2039A2C
@@ -756,7 +756,7 @@ _080D0E5E:
bx r1
.align 2, 0
_080D0E70: .4byte gUnknown_2039A2C
-_080D0E74: .4byte gUnknown_2038700
+_080D0E74: .4byte gScanlineEffectRegBuffers
_080D0E78: .4byte gPaletteFade
_080D0E7C: .4byte sub_80D0D54
thumb_func_end sub_80D0DF0
@@ -771,7 +771,7 @@ sub_80D0E80: @ 80D0E80
cmp r0, 0
beq _080D0EA4
ldr r1, _080D0EAC @ =0x040000d4
- ldr r0, _080D0EB0 @ =gUnknown_2038700
+ ldr r0, _080D0EB0 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -786,13 +786,13 @@ _080D0EA4:
.align 2, 0
_080D0EA8: .4byte gUnknown_2039A2C
_080D0EAC: .4byte 0x040000d4
-_080D0EB0: .4byte gUnknown_2038700
+_080D0EB0: .4byte gScanlineEffectRegBuffers
_080D0EB4: .4byte 0x800000a0
thumb_func_end sub_80D0E80
thumb_func_start sub_80D0EB8
sub_80D0EB8: @ 80D0EB8
- ldr r1, _080D0ED8 @ =gUnknown_2038700
+ ldr r1, _080D0ED8 @ =gScanlineEffectRegBuffers
ldr r0, _080D0EDC @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
@@ -809,7 +809,7 @@ sub_80D0EB8: @ 80D0EB8
strh r1, [r0]
bx lr
.align 2, 0
-_080D0ED8: .4byte gUnknown_2038700
+_080D0ED8: .4byte gScanlineEffectRegBuffers
_080D0EDC: .4byte 0x04000006
_080D0EE0: .4byte 0x04000016
thumb_func_end sub_80D0EB8
@@ -850,7 +850,7 @@ sub_80D0F1C: @ 80D0F1C
sub sp, 0xC
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r1, 0
movs r0, 0x10
strh r0, [r4, 0xA]
@@ -878,7 +878,7 @@ sub_80D0F1C: @ 80D0F1C
movs r1, 0
add r5, sp, 0x4
add r6, sp, 0x8
- ldr r3, _080D0FC0 @ =gUnknown_2038E80
+ ldr r3, _080D0FC0 @ =gScanlineEffectRegBuffers + 0x780
movs r2, 0xF0
_080D0F64:
lsls r0, r1, 1
@@ -921,7 +921,7 @@ _080D0F64:
.align 2, 0
_080D0FB8: .4byte gUnknown_2039A2C
_080D0FBC: .4byte 0x00003f41
-_080D0FC0: .4byte gUnknown_2038E80
+_080D0FC0: .4byte gScanlineEffectRegBuffers + 0x780
_080D0FC4: .4byte sub_80D1370
_080D0FC8: .4byte 0x01000400
_080D0FCC: .4byte gUnknown_83F87A0
@@ -943,7 +943,7 @@ sub_80D0FD4: @ 80D0FD4
movs r1, 0
ldr r0, [sp, 0x8]
mov r9, r0
- ldr r6, _080D1060 @ =gUnknown_2038700
+ ldr r6, _080D1060 @ =gScanlineEffectRegBuffers
mov r8, r6
movs r0, 0xF0
lsls r0, 8
@@ -1000,7 +1000,7 @@ _080D1000:
bx r1
.align 2, 0
_080D105C: .4byte gUnknown_83FA784
-_080D1060: .4byte gUnknown_2038700
+_080D1060: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D0FD4
thumb_func_start sub_80D1064
@@ -1053,7 +1053,7 @@ _080D10AE:
ldrh r5, [r3, 0x12]
adds r1, r5
strh r1, [r3, 0x12]
- ldr r0, _080D10F4 @ =gUnknown_2038700
+ ldr r0, _080D10F4 @ =gScanlineEffectRegBuffers
movs r5, 0x10
ldrsh r2, [r3, r5]
lsls r1, 16
@@ -1077,7 +1077,7 @@ _080D10AE:
.align 2, 0
_080D10EC: .4byte gUnknown_2039A2C
_080D10F0: .4byte 0xfffffe80
-_080D10F4: .4byte gUnknown_2038700
+_080D10F4: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D1064
thumb_func_start sub_80D10F8
@@ -1139,7 +1139,7 @@ _080D1160:
movs r0, 0
_080D1162:
strh r0, [r3, 0x12]
- ldr r0, _080D1194 @ =gUnknown_2038700
+ ldr r0, _080D1194 @ =gScanlineEffectRegBuffers
movs r1, 0x10
ldrsh r2, [r3, r1]
ldrh r1, [r3, 0x12]
@@ -1163,7 +1163,7 @@ _080D1162:
pop {r1}
bx r1
.align 2, 0
-_080D1194: .4byte gUnknown_2038700
+_080D1194: .4byte gScanlineEffectRegBuffers
_080D1198: .4byte gUnknown_2039A2C
thumb_func_end sub_80D10F8
@@ -1195,7 +1195,7 @@ _080D11C8: .4byte 0xfffffe80
_080D11CC:
strh r2, [r4, 0x12]
_080D11CE:
- ldr r0, _080D1218 @ =gUnknown_2038700
+ ldr r0, _080D1218 @ =gScanlineEffectRegBuffers
movs r3, 0x10
ldrsh r2, [r4, r3]
ldrh r1, [r4, 0x12]
@@ -1233,7 +1233,7 @@ _080D1202:
pop {r1}
bx r1
.align 2, 0
-_080D1218: .4byte gUnknown_2038700
+_080D1218: .4byte gScanlineEffectRegBuffers
_080D121C: .4byte gUnknown_2039A2C
thumb_func_end sub_80D119C
@@ -1272,7 +1272,7 @@ _080D1242:
bge _080D125E
strh r3, [r4, 0xA]
_080D125E:
- ldr r0, _080D12CC @ =gUnknown_2038700
+ ldr r0, _080D12CC @ =gScanlineEffectRegBuffers
movs r1, 0xA
ldrsh r3, [r4, r1]
movs r1, 0x78
@@ -1322,7 +1322,7 @@ _080D12AE:
.align 2, 0
_080D12C4: .4byte gUnknown_2039A2C
_080D12C8: .4byte 0x000007ff
-_080D12CC: .4byte gUnknown_2038700
+_080D12CC: .4byte gScanlineEffectRegBuffers
_080D12D0: .4byte 0x040000b0
_080D12D4: .4byte 0x0000c5ff
_080D12D8: .4byte 0x00007fff
@@ -1350,7 +1350,7 @@ sub_80D12E4: @ 80D12E4
cmp r0, 0
beq _080D131C
ldr r1, _080D1364 @ =0x040000d4
- ldr r0, _080D1368 @ =gUnknown_2038700
+ ldr r0, _080D1368 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -1389,7 +1389,7 @@ _080D1358: .4byte 0x0000c5ff
_080D135C: .4byte 0x00007fff
_080D1360: .4byte gUnknown_2039A2C
_080D1364: .4byte 0x040000d4
-_080D1368: .4byte gUnknown_2038700
+_080D1368: .4byte gScanlineEffectRegBuffers
_080D136C: .4byte 0x800000a0
thumb_func_end sub_80D12E4
@@ -1398,7 +1398,7 @@ sub_80D1370: @ 80D1370
push {lr}
bl sub_80D12E4
ldr r1, _080D138C @ =0x040000b0
- ldr r0, _080D1390 @ =gUnknown_2038E80
+ ldr r0, _080D1390 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r1]
ldr r0, _080D1394 @ =0x04000010
str r0, [r1, 0x4]
@@ -1409,7 +1409,7 @@ sub_80D1370: @ 80D1370
bx r0
.align 2, 0
_080D138C: .4byte 0x040000b0
-_080D1390: .4byte gUnknown_2038E80
+_080D1390: .4byte gScanlineEffectRegBuffers + 0x780
_080D1394: .4byte 0x04000010
_080D1398: .4byte 0xa2400001
thumb_func_end sub_80D1370
@@ -1419,7 +1419,7 @@ sub_80D139C: @ 80D139C
push {lr}
bl sub_80D12E4
ldr r1, _080D13B8 @ =0x040000b0
- ldr r0, _080D13BC @ =gUnknown_2038E80
+ ldr r0, _080D13BC @ =gScanlineEffectRegBuffers + 0x780
str r0, [r1]
ldr r0, _080D13C0 @ =0x04000040
str r0, [r1, 0x4]
@@ -1430,7 +1430,7 @@ sub_80D139C: @ 80D139C
bx r0
.align 2, 0
_080D13B8: .4byte 0x040000b0
-_080D13BC: .4byte gUnknown_2038E80
+_080D13BC: .4byte gScanlineEffectRegBuffers + 0x780
_080D13C0: .4byte 0x04000040
_080D13C4: .4byte 0xa2400001
thumb_func_end sub_80D139C
@@ -1782,7 +1782,7 @@ sub_80D1670: @ 80D1670
push {r4,lr}
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D16C4 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r0, 0
@@ -1794,7 +1794,7 @@ sub_80D1670: @ 80D1670
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r3, _080D16CC @ =gUnknown_2038E80
+ ldr r3, _080D16CC @ =gScanlineEffectRegBuffers + 0x780
ldr r2, _080D16D0 @ =0x0000f3f4
_080D1696:
lsls r0, r1, 1
@@ -1821,7 +1821,7 @@ _080D1696:
.align 2, 0
_080D16C4: .4byte gUnknown_2039A2C
_080D16C8: .4byte 0x0000f0f1
-_080D16CC: .4byte gUnknown_2038E80
+_080D16CC: .4byte gScanlineEffectRegBuffers + 0x780
_080D16D0: .4byte 0x0000f3f4
_080D16D4: .4byte sub_80D1ABC
thumb_func_end sub_80D1670
@@ -1850,7 +1850,7 @@ sub_80D16D8: @ 80D16D8
movs r1, 0x78
movs r2, 0x50
bl sub_80D4088
- ldr r5, _080D1764 @ =gUnknown_2038700
+ ldr r5, _080D1764 @ =gScanlineEffectRegBuffers
_080D1708:
ldr r4, _080D1760 @ =gUnknown_2039A2C
ldr r0, [r4]
@@ -1898,7 +1898,7 @@ _080D174C:
bx r1
.align 2, 0
_080D1760: .4byte gUnknown_2039A2C
-_080D1764: .4byte gUnknown_2038700
+_080D1764: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D16D8
thumb_func_start sub_80D1768
@@ -1947,7 +1947,7 @@ _080D17A6:
ldrh r1, [r3, 0x28]
movs r4, 0xF0
_080D17BE:
- ldr r6, _080D17F0 @ =gUnknown_2038700
+ ldr r6, _080D17F0 @ =gScanlineEffectRegBuffers
movs r0, 0x2A
ldrsh r2, [r3, r0]
lsls r2, 1
@@ -1970,7 +1970,7 @@ _080D17BE:
b _080D17A6
.align 2, 0
_080D17EC: .4byte gUnknown_2039A2C
-_080D17F0: .4byte gUnknown_2038700
+_080D17F0: .4byte gScanlineEffectRegBuffers
_080D17F4:
ldr r1, [r7]
ldrh r0, [r1, 0x2E]
@@ -2051,7 +2051,7 @@ sub_80D185C: @ 80D185C
movs r1, 0x78
movs r2, 0x50
bl sub_80D4088
- ldr r5, _080D18E0 @ =gUnknown_2038700
+ ldr r5, _080D18E0 @ =gScanlineEffectRegBuffers
_080D188A:
ldr r4, _080D18DC @ =gUnknown_2039A2C
ldr r0, [r4]
@@ -2096,7 +2096,7 @@ _080D18C8:
bx r1
.align 2, 0
_080D18DC: .4byte gUnknown_2039A2C
-_080D18E0: .4byte gUnknown_2038700
+_080D18E0: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D185C
thumb_func_start sub_80D18E4
@@ -2129,7 +2129,7 @@ sub_80D18E4: @ 80D18E4
movs r2, 0x50
movs r3, 0
bl sub_80D4088
- ldr r7, _080D1970 @ =gUnknown_2038700
+ ldr r7, _080D1970 @ =gScanlineEffectRegBuffers
mov r10, r7
ldr r0, _080D196C @ =gUnknown_2039A2C
mov r8, r0
@@ -2171,7 +2171,7 @@ _080D1948:
b _080D1928
.align 2, 0
_080D196C: .4byte gUnknown_2039A2C
-_080D1970: .4byte gUnknown_2038700
+_080D1970: .4byte gScanlineEffectRegBuffers
_080D1974:
mov r0, r8
ldr r2, [r0]
@@ -2193,7 +2193,7 @@ _080D1992:
ldrsh r0, [r2, r4]
cmp r0, r3
ble _080D19BC
- ldr r6, _080D19DC @ =gUnknown_2038700
+ ldr r6, _080D19DC @ =gScanlineEffectRegBuffers
adds r3, r1, 0
ldr r5, _080D19E0 @ =gUnknown_2039A2C
_080D19A0:
@@ -2228,7 +2228,7 @@ _080D19BC:
pop {r1}
bx r1
.align 2, 0
-_080D19DC: .4byte gUnknown_2038700
+_080D19DC: .4byte gScanlineEffectRegBuffers
_080D19E0: .4byte gUnknown_2039A2C
thumb_func_end sub_80D18E4
@@ -2254,7 +2254,7 @@ sub_80D19E4: @ 80D19E4
movs r1, 0x78
movs r2, 0x50
bl sub_80D4088
- ldr r6, _080D1A78 @ =gUnknown_2038700
+ ldr r6, _080D1A78 @ =gScanlineEffectRegBuffers
_080D1A10:
movs r2, 0x78
ldr r5, _080D1A74 @ =gUnknown_2039A2C
@@ -2308,7 +2308,7 @@ _080D1A5E:
bx r1
.align 2, 0
_080D1A74: .4byte gUnknown_2039A2C
-_080D1A78: .4byte gUnknown_2038700
+_080D1A78: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D19E4
thumb_func_start sub_80D1A7C
@@ -2360,7 +2360,7 @@ sub_80D1ABC: @ 80D1ABC
cmp r0, 0
beq _080D1AF4
ldr r1, _080D1B44 @ =0x040000d4
- ldr r0, _080D1B48 @ =gUnknown_2038700
+ ldr r0, _080D1B48 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -2382,7 +2382,7 @@ _080D1AF4:
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
- ldr r4, _080D1B48 @ =gUnknown_2038700
+ ldr r4, _080D1B48 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r4, r0
@@ -2404,7 +2404,7 @@ _080D1B38: .4byte 0x0000c5ff
_080D1B3C: .4byte 0x00007fff
_080D1B40: .4byte gUnknown_2039A2C
_080D1B44: .4byte 0x040000d4
-_080D1B48: .4byte gUnknown_2038700
+_080D1B48: .4byte gScanlineEffectRegBuffers
_080D1B4C: .4byte 0x800000a0
_080D1B50: .4byte 0x04000040
_080D1B54: .4byte 0xa2400001
@@ -2445,9 +2445,9 @@ sub_80D1B90: @ 80D1B90
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r2, 0
- ldr r4, _080D1BD8 @ =gUnknown_2038E80
+ ldr r4, _080D1BD8 @ =gScanlineEffectRegBuffers + 0x780
ldr r3, _080D1BDC @ =gUnknown_2039A2C
_080D1BA2:
lsls r1, r2, 1
@@ -2474,7 +2474,7 @@ _080D1BA2:
pop {r1}
bx r1
.align 2, 0
-_080D1BD8: .4byte gUnknown_2038E80
+_080D1BD8: .4byte gScanlineEffectRegBuffers + 0x780
_080D1BDC: .4byte gUnknown_2039A2C
_080D1BE0: .4byte sub_80D1CC8
_080D1BE4: .4byte sub_80D1D00
@@ -2519,7 +2519,7 @@ _080D1C28:
lsrs r0, r4, 8
asrs r1, r7, 16
bl Sin
- ldr r1, _080D1CBC @ =gUnknown_2038700
+ ldr r1, _080D1CBC @ =gScanlineEffectRegBuffers
lsls r2, r5, 1
adds r2, r1
ldr r1, _080D1CB4 @ =gUnknown_2039A2C
@@ -2587,7 +2587,7 @@ _080D1C9A:
.align 2, 0
_080D1CB4: .4byte gUnknown_2039A2C
_080D1CB8: .4byte 0x1fff0000
-_080D1CBC: .4byte gUnknown_2038700
+_080D1CBC: .4byte gScanlineEffectRegBuffers
_080D1CC0: .4byte gPaletteFade
_080D1CC4: .4byte sub_80D1B58
thumb_func_end sub_80D1BE8
@@ -2602,7 +2602,7 @@ sub_80D1CC8: @ 80D1CC8
cmp r0, 0
beq _080D1CEC
ldr r1, _080D1CF4 @ =0x040000d4
- ldr r0, _080D1CF8 @ =gUnknown_2038700
+ ldr r0, _080D1CF8 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -2617,13 +2617,13 @@ _080D1CEC:
.align 2, 0
_080D1CF0: .4byte gUnknown_2039A2C
_080D1CF4: .4byte 0x040000d4
-_080D1CF8: .4byte gUnknown_2038700
+_080D1CF8: .4byte gScanlineEffectRegBuffers
_080D1CFC: .4byte 0x800000a0
thumb_func_end sub_80D1CC8
thumb_func_start sub_80D1D00
sub_80D1D00: @ 80D1D00
- ldr r1, _080D1D20 @ =gUnknown_2038700
+ ldr r1, _080D1D20 @ =gScanlineEffectRegBuffers
ldr r0, _080D1D24 @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
@@ -2640,7 +2640,7 @@ sub_80D1D00: @ 80D1D00
strh r1, [r0]
bx lr
.align 2, 0
-_080D1D20: .4byte gUnknown_2038700
+_080D1D20: .4byte gScanlineEffectRegBuffers
_080D1D24: .4byte 0x04000006
_080D1D28: .4byte 0x04000016
thumb_func_end sub_80D1D00
@@ -2680,7 +2680,7 @@ sub_80D1D64: @ 80D1D64
push {r4,lr}
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D1DB0 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0
@@ -2692,7 +2692,7 @@ sub_80D1D64: @ 80D1D64
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r3, _080D1DB4 @ =gUnknown_2038E80
+ ldr r3, _080D1DB4 @ =gScanlineEffectRegBuffers + 0x780
movs r2, 0xF2
_080D1D8A:
lsls r0, r1, 1
@@ -2714,7 +2714,7 @@ _080D1D8A:
bx r1
.align 2, 0
_080D1DB0: .4byte gUnknown_2039A2C
-_080D1DB4: .4byte gUnknown_2038E80
+_080D1DB4: .4byte gScanlineEffectRegBuffers + 0x780
_080D1DB8: .4byte sub_80D1E98
thumb_func_end sub_80D1D64
@@ -2729,7 +2729,7 @@ sub_80D1DBC: @ 80D1DBC
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
- ldr r7, _080D1E54 @ =gUnknown_2038700
+ ldr r7, _080D1E54 @ =gScanlineEffectRegBuffers
ldrh r0, [r4, 0xC]
ldrb r5, [r4, 0xC]
adds r0, 0x10
@@ -2799,7 +2799,7 @@ _080D1E36:
bx r1
.align 2, 0
_080D1E50: .4byte gUnknown_2039A2C
-_080D1E54: .4byte gUnknown_2038700
+_080D1E54: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D1DBC
thumb_func_start sub_80D1E58
@@ -2851,7 +2851,7 @@ sub_80D1E98: @ 80D1E98
cmp r0, 0
beq _080D1ED0
ldr r1, _080D1F14 @ =0x040000d4
- ldr r0, _080D1F18 @ =gUnknown_2038700
+ ldr r0, _080D1F18 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -2873,7 +2873,7 @@ _080D1ED0:
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
- ldr r0, _080D1F20 @ =gUnknown_2038E80
+ ldr r0, _080D1F20 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r4]
ldr r0, _080D1F24 @ =0x04000040
str r0, [r4, 0x4]
@@ -2889,9 +2889,9 @@ _080D1F08: .4byte 0x0000c5ff
_080D1F0C: .4byte 0x00007fff
_080D1F10: .4byte gUnknown_2039A2C
_080D1F14: .4byte 0x040000d4
-_080D1F18: .4byte gUnknown_2038700
+_080D1F18: .4byte gScanlineEffectRegBuffers
_080D1F1C: .4byte 0x800000a0
-_080D1F20: .4byte gUnknown_2038E80
+_080D1F20: .4byte gScanlineEffectRegBuffers + 0x780
_080D1F24: .4byte 0x04000040
_080D1F28: .4byte 0xa2400001
thumb_func_end sub_80D1E98
@@ -2946,7 +2946,7 @@ sub_80D1F64: @ 80D1F64
mov r10, r0
movs r1, 0xA0
lsls r1, 17
- ldr r4, _080D1FD8 @ =gUnknown_2038E80
+ ldr r4, _080D1FD8 @ =gScanlineEffectRegBuffers + 0x780
ldr r3, _080D1FDC @ =0x000003bf
movs r2, 0x78
_080D1F8E:
@@ -2988,7 +2988,7 @@ _080D1FAE:
adds r0, r1, 0
b _080D1FE6
.align 2, 0
-_080D1FD8: .4byte gUnknown_2038E80
+_080D1FD8: .4byte gScanlineEffectRegBuffers + 0x780
_080D1FDC: .4byte 0x000003bf
_080D1FE0:
lsls r0, r3, 16
@@ -3104,7 +3104,7 @@ _080D2092:
lsls r4, 1
adds r0, r2, r4
lsls r0, 1
- ldr r1, _080D20E8 @ =gUnknown_2038E80
+ ldr r1, _080D20E8 @ =gScanlineEffectRegBuffers + 0x780
adds r0, r1
strh r7, [r0]
lsls r0, r5, 16
@@ -3131,7 +3131,7 @@ _080D20C4:
subs r0, r2, 0x1
b _080D20FC
.align 2, 0
-_080D20E8: .4byte gUnknown_2038E80
+_080D20E8: .4byte gScanlineEffectRegBuffers + 0x780
_080D20EC:
lsls r0, r3, 16
asrs r0, 16
@@ -3150,7 +3150,7 @@ _080D2100:
cmp r1, 0
bge _080D212C
asrs r2, r6, 16
- ldr r3, _080D2128 @ =gUnknown_2038E80
+ ldr r3, _080D2128 @ =gScanlineEffectRegBuffers + 0x780
_080D210C:
asrs r1, r0, 16
adds r0, r2, r1
@@ -3166,12 +3166,12 @@ _080D210C:
blt _080D210C
b _080D21F8
.align 2, 0
-_080D2128: .4byte gUnknown_2038E80
+_080D2128: .4byte gScanlineEffectRegBuffers + 0x780
_080D212C:
cmp r1, 0
ble _080D21F8
asrs r2, r6, 16
- ldr r3, _080D2154 @ =gUnknown_2038E80
+ ldr r3, _080D2154 @ =gScanlineEffectRegBuffers + 0x780
_080D2134:
lsls r1, r5, 16
asrs r1, 16
@@ -3189,13 +3189,13 @@ _080D2134:
bgt _080D2134
b _080D21F8
.align 2, 0
-_080D2154: .4byte gUnknown_2038E80
+_080D2154: .4byte gScanlineEffectRegBuffers + 0x780
_080D2158:
movs r1, 0xF0
lsls r1, 1
adds r0, r2, r1
lsls r0, 1
- ldr r2, _080D2190 @ =gUnknown_2038E80
+ ldr r2, _080D2190 @ =gScanlineEffectRegBuffers + 0x780
adds r0, r2
strh r7, [r0]
lsls r0, r5, 16
@@ -3220,7 +3220,7 @@ _080D2158:
subs r0, r2, 0x1
b _080D21A4
.align 2, 0
-_080D2190: .4byte gUnknown_2038E80
+_080D2190: .4byte gScanlineEffectRegBuffers + 0x780
_080D2194:
lsls r0, r3, 16
asrs r0, 16
@@ -3239,7 +3239,7 @@ _080D21A8:
cmp r1, 0
bge _080D21D4
asrs r2, r6, 16
- ldr r3, _080D21D0 @ =gUnknown_2038E80
+ ldr r3, _080D21D0 @ =gScanlineEffectRegBuffers + 0x780
_080D21B4:
asrs r1, r0, 16
adds r0, r2, r1
@@ -3255,12 +3255,12 @@ _080D21B4:
blt _080D21B4
b _080D21F8
.align 2, 0
-_080D21D0: .4byte gUnknown_2038E80
+_080D21D0: .4byte gScanlineEffectRegBuffers + 0x780
_080D21D4:
cmp r1, 0
ble _080D21F8
asrs r2, r6, 16
- ldr r3, _080D2270 @ =gUnknown_2038E80
+ ldr r3, _080D2270 @ =gScanlineEffectRegBuffers + 0x780
_080D21DC:
lsls r1, r5, 16
asrs r1, 16
@@ -3307,7 +3307,7 @@ _080D221A:
_080D222C:
movs r2, 0
mov r9, r2
- ldr r4, _080D2270 @ =gUnknown_2038E80
+ ldr r4, _080D2270 @ =gScanlineEffectRegBuffers + 0x780
movs r5, 0xA0
lsls r5, 1
_080D2236:
@@ -3341,7 +3341,7 @@ _080D2236:
ble _080D2236
b _080D251C
.align 2, 0
-_080D2270: .4byte gUnknown_2038E80
+_080D2270: .4byte gScanlineEffectRegBuffers + 0x780
_080D2274:
ldr r1, [sp, 0xC]
asrs r4, r1, 16
@@ -3396,7 +3396,7 @@ _080D22CA:
adds r0, r5, r0
movs r3, 0
ldrsh r4, [r0, r3]
- ldr r6, _080D2324 @ =gUnknown_2038E80
+ ldr r6, _080D2324 @ =gScanlineEffectRegBuffers + 0x780
_080D22D4:
ldr r0, _080D2328 @ =gUnknown_2039A2C
ldr r5, [r0]
@@ -3437,7 +3437,7 @@ _080D22D4:
b _080D2334
.align 2, 0
_080D2320: .4byte gUnknown_83FA444
-_080D2324: .4byte gUnknown_2038E80
+_080D2324: .4byte gScanlineEffectRegBuffers + 0x780
_080D2328: .4byte gUnknown_2039A2C
_080D232C:
ldrh r0, [r3]
@@ -3474,7 +3474,7 @@ _080D2360:
adds r0, r5, r0
movs r3, 0
ldrsh r4, [r0, r3]
- ldr r6, _080D23C0 @ =gUnknown_2038E80
+ ldr r6, _080D23C0 @ =gScanlineEffectRegBuffers + 0x780
_080D236A:
ldr r0, _080D23C4 @ =gUnknown_2039A2C
ldr r3, [r0]
@@ -3519,7 +3519,7 @@ _080D23A6:
b _080D24DA
.align 2, 0
_080D23BC: .4byte gUnknown_83FA444
-_080D23C0: .4byte gUnknown_2038E80
+_080D23C0: .4byte gScanlineEffectRegBuffers + 0x780
_080D23C4: .4byte gUnknown_2039A2C
_080D23C8: .4byte 0xffff0000
_080D23CC:
@@ -3539,7 +3539,7 @@ _080D23DA:
adds r0, r5, r0
movs r6, 0
ldrsh r4, [r0, r6]
- ldr r6, _080D2440 @ =gUnknown_2038E80
+ ldr r6, _080D2440 @ =gScanlineEffectRegBuffers + 0x780
_080D23EC:
ldr r0, _080D2444 @ =gUnknown_2039A2C
ldr r5, [r0]
@@ -3581,7 +3581,7 @@ _080D23EC:
.align 2, 0
_080D2438: .4byte 0x0000ffb1
_080D243C: .4byte gUnknown_83FA444
-_080D2440: .4byte gUnknown_2038E80
+_080D2440: .4byte gScanlineEffectRegBuffers + 0x780
_080D2444: .4byte gUnknown_2039A2C
_080D2448:
ldrh r0, [r3]
@@ -3619,7 +3619,7 @@ _080D2474:
ldrsh r4, [r0, r3]
ldr r6, _080D2534 @ =gUnknown_2039A2C
mov r8, r6
- ldr r6, _080D2538 @ =gUnknown_2038E80
+ ldr r6, _080D2538 @ =gScanlineEffectRegBuffers + 0x780
_080D248A:
mov r0, r8
ldr r3, [r0]
@@ -3665,7 +3665,7 @@ _080D24C6:
_080D24DA:
movs r4, 0
mov r9, r4
- ldr r4, _080D2538 @ =gUnknown_2038E80
+ ldr r4, _080D2538 @ =gScanlineEffectRegBuffers + 0x780
movs r5, 0xA0
lsls r5, 1
_080D24E4:
@@ -3710,7 +3710,7 @@ _080D251C:
_080D252C: .4byte 0x0000ffb1
_080D2530: .4byte gUnknown_83FA444
_080D2534: .4byte gUnknown_2039A2C
-_080D2538: .4byte gUnknown_2038E80
+_080D2538: .4byte gScanlineEffectRegBuffers + 0x780
thumb_func_end sub_80D1F64
thumb_func_start sub_80D253C
@@ -3718,7 +3718,7 @@ sub_80D253C: @ 80D253C
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D25A0 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r4, 0
@@ -3741,7 +3741,7 @@ sub_80D253C: @ 80D253C
movs r2, 0x1
bl sub_80D1F64
ldr r1, _080D25B0 @ =0x040000d4
- ldr r0, _080D25B4 @ =gUnknown_2038E80
+ ldr r0, _080D25B4 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r1]
ldr r2, _080D25B8 @ =0xfffff880
adds r0, r2
@@ -3766,7 +3766,7 @@ _080D25A4: .4byte 0x00007878
_080D25A8: .4byte 0x00003070
_080D25AC: .4byte 0x00001090
_080D25B0: .4byte 0x040000d4
-_080D25B4: .4byte gUnknown_2038E80
+_080D25B4: .4byte gScanlineEffectRegBuffers + 0x780
_080D25B8: .4byte 0xfffff880
_080D25BC: .4byte 0x80000140
_080D25C0: .4byte sub_80D2698
@@ -3919,7 +3919,7 @@ _080D26E4:
cmp r0, 0
beq _080D2700
ldr r1, _080D274C @ =0x040000d4
- ldr r0, _080D2750 @ =gUnknown_2038E80
+ ldr r0, _080D2750 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r1]
ldr r6, _080D2754 @ =0xfffff880
adds r0, r6
@@ -3946,7 +3946,7 @@ _080D2700:
ldrh r1, [r0, 0xC]
movs r0, 0x46
bl SetGpuReg
- ldr r4, _080D275C @ =gUnknown_2038700
+ ldr r4, _080D275C @ =gScanlineEffectRegBuffers
ldrh r1, [r4]
movs r0, 0x40
bl SetGpuReg
@@ -3965,10 +3965,10 @@ _080D2746:
bx r0
.align 2, 0
_080D274C: .4byte 0x040000d4
-_080D2750: .4byte gUnknown_2038E80
+_080D2750: .4byte gScanlineEffectRegBuffers + 0x780
_080D2754: .4byte 0xfffff880
_080D2758: .4byte 0x80000140
-_080D275C: .4byte gUnknown_2038700
+_080D275C: .4byte gScanlineEffectRegBuffers
_080D2760: .4byte 0x04000040
_080D2764: .4byte 0xa6400001
thumb_func_end sub_80D2698
@@ -4103,7 +4103,7 @@ Phase2_Mugshot_Func1: @ 80D2840
push {r4,lr}
adds r4, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
adds r0, r4, 0
bl sub_80D2EA4
movs r0, 0
@@ -4121,7 +4121,7 @@ Phase2_Mugshot_Func1: @ 80D2840
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r3, _080D289C @ =gUnknown_2038E80
+ ldr r3, _080D289C @ =gScanlineEffectRegBuffers + 0x780
ldr r2, _080D28A0 @ =0x0000f0f1
_080D2874:
lsls r0, r1, 1
@@ -4143,7 +4143,7 @@ _080D2874:
bx r1
.align 2, 0
_080D2898: .4byte gUnknown_2039A2C
-_080D289C: .4byte gUnknown_2038E80
+_080D289C: .4byte gScanlineEffectRegBuffers + 0x780
_080D28A0: .4byte 0x0000f0f1
_080D28A4: .4byte sub_80D2D50
thumb_func_end Phase2_Mugshot_Func1
@@ -4248,7 +4248,7 @@ sub_80D2968: @ 80D2968
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
- ldr r7, _080D2A50 @ =gUnknown_2038700
+ ldr r7, _080D2A50 @ =gScanlineEffectRegBuffers
ldrh r0, [r4, 0xA]
ldrb r5, [r4, 0xA]
adds r0, 0x10
@@ -4364,7 +4364,7 @@ _080D2A2A:
bx r1
.align 2, 0
_080D2A4C: .4byte gUnknown_2039A2C
-_080D2A50: .4byte gUnknown_2038700
+_080D2A50: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D2968
thumb_func_start sub_80D2A54
@@ -4376,7 +4376,7 @@ sub_80D2A54: @ 80D2A54
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
- ldr r1, _080D2ACC @ =gUnknown_2038700
+ ldr r1, _080D2ACC @ =gScanlineEffectRegBuffers
adds r5, r2, 0
movs r2, 0xF0
_080D2A68:
@@ -4425,7 +4425,7 @@ _080D2A68:
bx r1
.align 2, 0
_080D2AC8: .4byte gUnknown_2039A2C
-_080D2ACC: .4byte gUnknown_2038700
+_080D2ACC: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D2A54
thumb_func_start sub_80D2AD0
@@ -4499,7 +4499,7 @@ sub_80D2B0C: @ 80D2B0C
ands r0, r2
strh r0, [r1, 0xA]
ldrh r0, [r1, 0xA]
- ldr r4, _080D2BBC @ =gUnknown_2038700
+ ldr r4, _080D2BBC @ =gScanlineEffectRegBuffers
movs r5, 0xA0
lsls r5, 1
adds r0, r4, 0
@@ -4542,7 +4542,7 @@ _080D2BAC: .4byte gUnknown_2039A2C
_080D2BB0: .4byte 0x040000b0
_080D2BB4: .4byte 0x0000c5ff
_080D2BB8: .4byte 0x00007fff
-_080D2BBC: .4byte gUnknown_2038700
+_080D2BBC: .4byte gScanlineEffectRegBuffers
_080D2BC0: .4byte sub_80D2DEC
thumb_func_end sub_80D2B0C
@@ -4593,7 +4593,7 @@ _080D2BFE:
cmp r0, 0
blt _080D2C60
movs r7, 0x50
- ldr r5, _080D2C88 @ =gUnknown_2038700
+ ldr r5, _080D2C88 @ =gScanlineEffectRegBuffers
_080D2C1C:
lsls r0, r2, 16
asrs r3, r0, 16
@@ -4652,7 +4652,7 @@ _080D2C6E:
bx r1
.align 2, 0
_080D2C84: .4byte gUnknown_2039A2C
-_080D2C88: .4byte gUnknown_2038700
+_080D2C88: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D2BC4
thumb_func_start sub_80D2C8C
@@ -4697,7 +4697,7 @@ sub_80D2CC4: @ 80D2CC4
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
- ldr r0, _080D2D0C @ =gUnknown_2038700
+ ldr r0, _080D2D0C @ =gScanlineEffectRegBuffers
movs r2, 0xE
ldrsh r1, [r4, r2]
movs r2, 0xA0
@@ -4722,7 +4722,7 @@ _080D2CF4:
bx r1
.align 2, 0
_080D2D08: .4byte gUnknown_2039A2C
-_080D2D0C: .4byte gUnknown_2038700
+_080D2D0C: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D2CC4
thumb_func_start sub_80D2D10
@@ -4775,7 +4775,7 @@ sub_80D2D50: @ 80D2D50
cmp r0, 0
beq _080D2D88
ldr r1, _080D2DD4 @ =0x040000d4
- ldr r0, _080D2DD8 @ =gUnknown_2038700
+ ldr r0, _080D2DD8 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -4801,7 +4801,7 @@ _080D2D88:
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
- ldr r0, _080D2DE0 @ =gUnknown_2038E80
+ ldr r0, _080D2DE0 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r4]
ldr r0, _080D2DE4 @ =0x04000040
str r0, [r4, 0x4]
@@ -4817,9 +4817,9 @@ _080D2DC8: .4byte 0x0000c5ff
_080D2DCC: .4byte 0x00007fff
_080D2DD0: .4byte gUnknown_2039A2C
_080D2DD4: .4byte 0x040000d4
-_080D2DD8: .4byte gUnknown_2038700
+_080D2DD8: .4byte gScanlineEffectRegBuffers
_080D2DDC: .4byte 0x800000a0
-_080D2DE0: .4byte gUnknown_2038E80
+_080D2DE0: .4byte gScanlineEffectRegBuffers + 0x780
_080D2DE4: .4byte 0x04000040
_080D2DE8: .4byte 0xa2400001
thumb_func_end sub_80D2D50
@@ -4844,7 +4844,7 @@ sub_80D2DEC: @ 80D2DEC
cmp r0, 0
beq _080D2E24
ldr r1, _080D2E54 @ =0x040000d4
- ldr r0, _080D2E58 @ =gUnknown_2038700
+ ldr r0, _080D2E58 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r3, 0xF0
lsls r3, 3
@@ -4858,7 +4858,7 @@ _080D2E24:
ldrh r1, [r0, 0xE]
movs r0, 0x50
bl SetGpuReg
- ldr r0, _080D2E60 @ =gUnknown_2038E80
+ ldr r0, _080D2E60 @ =gScanlineEffectRegBuffers + 0x780
str r0, [r4]
ldr r0, _080D2E64 @ =0x04000054
str r0, [r4, 0x4]
@@ -4874,9 +4874,9 @@ _080D2E48: .4byte 0x0000c5ff
_080D2E4C: .4byte 0x00007fff
_080D2E50: .4byte gUnknown_2039A2C
_080D2E54: .4byte 0x040000d4
-_080D2E58: .4byte gUnknown_2038700
+_080D2E58: .4byte gScanlineEffectRegBuffers
_080D2E5C: .4byte 0x800000a0
-_080D2E60: .4byte gUnknown_2038E80
+_080D2E60: .4byte gScanlineEffectRegBuffers + 0x780
_080D2E64: .4byte 0x04000054
_080D2E68: .4byte 0xa2400001
thumb_func_end sub_80D2DEC
@@ -5321,7 +5321,7 @@ sub_80D31A4: @ 80D31A4
push {r4-r6,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r3, 0
movs r0, 0x80
lsls r0, 1
@@ -5335,7 +5335,7 @@ sub_80D31A4: @ 80D31A4
strh r3, [r1, 0x4]
movs r0, 0xA0
strh r0, [r1, 0x8]
- ldr r4, _080D3214 @ =gUnknown_2038E80
+ ldr r4, _080D3214 @ =gScanlineEffectRegBuffers + 0x780
adds r6, r2, 0
movs r2, 0xF0
_080D31D0:
@@ -5369,7 +5369,7 @@ _080D31D0:
bx r1
.align 2, 0
_080D3210: .4byte gUnknown_2039A2C
-_080D3214: .4byte gUnknown_2038E80
+_080D3214: .4byte gScanlineEffectRegBuffers + 0x780
_080D3218: .4byte sub_80D332C
_080D321C: .4byte sub_80D33C0
thumb_func_end sub_80D31A4
@@ -5417,7 +5417,7 @@ _080D325E:
strh r0, [r3, 0xE]
_080D326A:
movs r5, 0
- ldr r7, _080D32A4 @ =gUnknown_2038700
+ ldr r7, _080D32A4 @ =gScanlineEffectRegBuffers
movs r1, 0xA0
lsls r1, 1
adds r1, r7
@@ -5444,7 +5444,7 @@ _080D3278:
.align 2, 0
_080D329C: .4byte gUnknown_2039A2C
_080D32A0: .4byte 0x00000fff
-_080D32A4: .4byte gUnknown_2038700
+_080D32A4: .4byte gScanlineEffectRegBuffers
_080D32A8:
ldr r0, [r6]
ldrh r0, [r0, 0x14]
@@ -5545,7 +5545,7 @@ sub_80D332C: @ 80D332C
cmp r0, 0
beq _080D3382
ldr r1, _080D33A8 @ =0x040000d4
- ldr r0, _080D33AC @ =gUnknown_2038700
+ ldr r0, _080D33AC @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -5555,7 +5555,7 @@ sub_80D332C: @ 80D332C
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D3382:
- ldr r0, _080D33B4 @ =gUnknown_2038FC0
+ ldr r0, _080D33B4 @ =gScanlineEffectRegBuffers + 0x8C0
str r0, [r5]
ldr r0, _080D33B8 @ =0x04000040
str r0, [r5, 0x4]
@@ -5571,16 +5571,16 @@ _080D339C: .4byte 0x0000c5ff
_080D33A0: .4byte 0x00007fff
_080D33A4: .4byte gUnknown_2039A2C
_080D33A8: .4byte 0x040000d4
-_080D33AC: .4byte gUnknown_2038700
+_080D33AC: .4byte gScanlineEffectRegBuffers
_080D33B0: .4byte 0x80000140
-_080D33B4: .4byte gUnknown_2038FC0
+_080D33B4: .4byte gScanlineEffectRegBuffers + 0x8C0
_080D33B8: .4byte 0x04000040
_080D33BC: .4byte 0xa2400001
thumb_func_end sub_80D332C
thumb_func_start sub_80D33C0
sub_80D33C0: @ 80D33C0
- ldr r1, _080D33E0 @ =gUnknown_2038700
+ ldr r1, _080D33E0 @ =gScanlineEffectRegBuffers
ldr r0, _080D33E4 @ =0x04000006
ldrh r0, [r0]
lsls r0, 1
@@ -5597,7 +5597,7 @@ sub_80D33C0: @ 80D33C0
strh r1, [r0]
bx lr
.align 2, 0
-_080D33E0: .4byte gUnknown_2038700
+_080D33E0: .4byte gScanlineEffectRegBuffers
_080D33E4: .4byte 0x04000006
_080D33E8: .4byte 0x04000014
thumb_func_end sub_80D33C0
@@ -5637,7 +5637,7 @@ sub_80D3424: @ 80D3424
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D348C @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0
@@ -5651,7 +5651,7 @@ sub_80D3424: @ 80D3424
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r2, _080D3490 @ =gUnknown_2038E80
+ ldr r2, _080D3490 @ =gScanlineEffectRegBuffers + 0x780
movs r4, 0
movs r3, 0xF0
_080D3450:
@@ -5683,7 +5683,7 @@ _080D3450:
bx r1
.align 2, 0
_080D348C: .4byte gUnknown_2039A2C
-_080D3490: .4byte gUnknown_2038E80
+_080D3490: .4byte gScanlineEffectRegBuffers + 0x780
_080D3494: .4byte sub_80D36E0
_080D3498: .4byte sub_80D35F4
thumb_func_end sub_80D3424
@@ -5896,7 +5896,7 @@ sub_80D35F4: @ 80D35F4
cmp r0, 0
beq _080D3654
ldr r1, _080D3678 @ =0x040000d4
- ldr r0, _080D367C @ =gUnknown_2038700
+ ldr r0, _080D367C @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -5906,7 +5906,7 @@ sub_80D35F4: @ 80D35F4
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
_080D3654:
- ldr r0, _080D3684 @ =gUnknown_2038FC0
+ ldr r0, _080D3684 @ =gScanlineEffectRegBuffers + 0x8C0
str r0, [r5]
ldr r0, _080D3688 @ =0x04000040
str r0, [r5, 0x4]
@@ -5922,9 +5922,9 @@ _080D366C: .4byte 0x0000c5ff
_080D3670: .4byte 0x00007fff
_080D3674: .4byte gUnknown_2039A2C
_080D3678: .4byte 0x040000d4
-_080D367C: .4byte gUnknown_2038700
+_080D367C: .4byte gScanlineEffectRegBuffers
_080D3680: .4byte 0x80000140
-_080D3684: .4byte gUnknown_2038FC0
+_080D3684: .4byte gScanlineEffectRegBuffers + 0x8C0
_080D3688: .4byte 0x04000040
_080D368C: .4byte 0xa2400001
thumb_func_end sub_80D35F4
@@ -5981,7 +5981,7 @@ sub_80D36E0: @ 80D36E0
strh r0, [r1]
_080D36F8:
ldr r2, _080D3718 @ =0x04000054
- ldr r1, _080D371C @ =gUnknown_2038700
+ ldr r1, _080D371C @ =gScanlineEffectRegBuffers
mov r0, sp
ldrh r0, [r0]
lsls r0, 1
@@ -5997,7 +5997,7 @@ _080D36F8:
.align 2, 0
_080D3714: .4byte 0x04000006
_080D3718: .4byte 0x04000054
-_080D371C: .4byte gUnknown_2038700
+_080D371C: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80D36E0
thumb_func_start sub_80D3720
@@ -6027,7 +6027,7 @@ _080D374C:
movs r2, 0x22
ldrsh r0, [r3, r2]
lsls r0, 1
- ldr r1, _080D3810 @ =gUnknown_2038700
+ ldr r1, _080D3810 @ =gScanlineEffectRegBuffers
adds r7, r0, r1
movs r2, 0xA0
lsls r2, 1
@@ -6131,7 +6131,7 @@ _080D380A:
pop {r0}
bx r0
.align 2, 0
-_080D3810: .4byte gUnknown_2038700
+_080D3810: .4byte gScanlineEffectRegBuffers
_080D3814: .4byte gUnknown_2039A2C
thumb_func_end sub_80D3720
@@ -6308,7 +6308,7 @@ sub_80D3960: @ 80D3960
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80D3DD0
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldr r0, _080D39B8 @ =gUnknown_2039A2C
ldr r1, [r0]
movs r2, 0
@@ -6318,7 +6318,7 @@ sub_80D3960: @ 80D3960
movs r0, 0xA0
strh r0, [r1, 0x8]
movs r1, 0
- ldr r2, _080D39BC @ =gUnknown_2038700
+ ldr r2, _080D39BC @ =gScanlineEffectRegBuffers
movs r3, 0xF0
adds r4, r2, 0
_080D3984:
@@ -6347,7 +6347,7 @@ _080D3984:
bx r1
.align 2, 0
_080D39B8: .4byte gUnknown_2039A2C
-_080D39BC: .4byte gUnknown_2038700
+_080D39BC: .4byte gScanlineEffectRegBuffers
_080D39C0: .4byte sub_80D3BA4
thumb_func_end sub_80D3960
@@ -6428,10 +6428,10 @@ sub_80D3A40: @ 80D3A40
strb r0, [r1]
mov r8, r0
movs r7, 0
- ldr r0, _080D3A94 @ =gUnknown_2038700
+ ldr r0, _080D3A94 @ =gScanlineEffectRegBuffers
mov r9, r0
_080D3A5C:
- ldr r1, _080D3A94 @ =gUnknown_2038700
+ ldr r1, _080D3A94 @ =gScanlineEffectRegBuffers
ldr r0, _080D3A90 @ =gUnknown_2039A2C
ldr r2, [r0]
movs r3, 0x2A
@@ -6460,7 +6460,7 @@ _080D3A84:
b _080D3AB0
.align 2, 0
_080D3A90: .4byte gUnknown_2039A2C
-_080D3A94: .4byte gUnknown_2038700
+_080D3A94: .4byte gScanlineEffectRegBuffers
_080D3A98:
lsls r0, r5, 16
asrs r0, 16
@@ -6626,7 +6626,7 @@ sub_80D3BA4: @ 80D3BA4
cmp r0, 0
beq _080D3BDC
ldr r1, _080D3C2C @ =0x040000d4
- ldr r0, _080D3C30 @ =gUnknown_2038700
+ ldr r0, _080D3C30 @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -6648,7 +6648,7 @@ _080D3BDC:
ldrh r1, [r0, 0x8]
movs r0, 0x44
bl SetGpuReg
- ldr r4, _080D3C30 @ =gUnknown_2038700
+ ldr r4, _080D3C30 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r4, r0
@@ -6670,7 +6670,7 @@ _080D3C20: .4byte 0x0000c5ff
_080D3C24: .4byte 0x00007fff
_080D3C28: .4byte gUnknown_2039A2C
_080D3C2C: .4byte 0x040000d4
-_080D3C30: .4byte gUnknown_2038700
+_080D3C30: .4byte gScanlineEffectRegBuffers
_080D3C34: .4byte 0x800000a0
_080D3C38: .4byte 0x04000040
_080D3C3C: .4byte 0xa2400001
diff --git a/asm/berry_fix_program.s b/asm/berry_fix_program.s
index ec40e1d98..e24fa6c3c 100644
--- a/asm/berry_fix_program.s
+++ b/asm/berry_fix_program.s
@@ -90,7 +90,7 @@ sub_815F74C: @ 815F74C
ldr r0, [r0, 0x8]
bl ResetSpriteData
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
ldr r0, _0815F7D4 @ =gUnknown_3005ECC
strb r4, [r0]
ldr r0, _0815F7D8 @ =sub_815F7F0
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index 146a71788..762938e3c 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -187,7 +187,7 @@ _0813CED0:
bl clear_scheduled_bg_copies_to_vram
b _0813CFD2
_0813CEDA:
- bl remove_some_task
+ bl ScanlineEffect_Stop
b _0813CFD2
_0813CEE0:
bl FreeAllSpritePalettes
@@ -255,7 +255,7 @@ _0813CF62:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0813CF98 @ =gUnknown_3005E70
+ ldr r0, _0813CF98 @ =gMultiuseListMenuTemplate
ldr r2, _0813CF9C @ =gUnknown_203F370
ldrh r1, [r2, 0xA]
ldrh r2, [r2, 0x8]
@@ -273,7 +273,7 @@ _0813CF62:
b _0813CFD2
.align 2, 0
_0813CF94: .4byte sub_813DA68
-_0813CF98: .4byte gUnknown_3005E70
+_0813CF98: .4byte gMultiuseListMenuTemplate
_0813CF9C: .4byte gUnknown_203F370
_0813CFA0: .4byte gTasks
_0813CFA4:
@@ -573,7 +573,7 @@ sub_813D204: @ 813D204
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _0813D280 @ =gUnknown_20398AC
+ ldr r0, _0813D280 @ =gBagPockets + 0x20
mov r8, r0
movs r6, 0
ldr r0, _0813D284 @ =gUnknown_203F36C
@@ -615,10 +615,10 @@ _0813D254:
ldr r2, [r0]
lsls r0, r6, 3
adds r0, r2
- ldr r1, _0813D290 @ =gUnknown_84166DB
+ ldr r1, _0813D290 @ =gText_Close
str r1, [r0]
str r6, [r0, 0x4]
- ldr r1, _0813D294 @ =gUnknown_3005E70
+ ldr r1, _0813D294 @ =gMultiuseListMenuTemplate
str r2, [r1]
ldr r0, _0813D298 @ =gUnknown_203F370
ldrb r0, [r0, 0x4]
@@ -633,12 +633,12 @@ _0813D254:
adds r2, r1, 0
b _0813D2A6
.align 2, 0
-_0813D280: .4byte gUnknown_20398AC
+_0813D280: .4byte gBagPockets + 0x20
_0813D284: .4byte gUnknown_203F36C
_0813D288: .4byte gUnknown_203F380
_0813D28C: .4byte gUnknown_203F37C
-_0813D290: .4byte gUnknown_84166DB
-_0813D294: .4byte gUnknown_3005E70
+_0813D290: .4byte gText_Close
+_0813D294: .4byte gMultiuseListMenuTemplate
_0813D298: .4byte gUnknown_203F370
_0813D29C:
ldr r0, _0813D310 @ =gUnknown_203F36C
@@ -715,10 +715,10 @@ sub_813D31C: @ 813D31C
lsls r5, r1, 16
lsrs r5, 16
ldr r4, _0813D384 @ =gStringVar4
- ldr r1, _0813D388 @ =gUnknown_84166FF
+ ldr r1, _0813D388 @ =gText_FontSize0
adds r0, r4, 0
bl StringCopy
- ldr r1, _0813D38C @ =gUnknown_8416226
+ ldr r1, _0813D38C @ =gOtherText_UnkF9_08_Clear_01
adds r0, r4, 0
bl StringAppend
ldr r6, _0813D390 @ =gStringVar1
@@ -737,7 +737,7 @@ sub_813D31C: @ 813D31C
ldr r1, _0813D394 @ =gUnknown_84643B4
adds r0, r4, 0
bl StringAppend
- ldr r1, _0813D398 @ =gUnknown_8416703
+ ldr r1, _0813D398 @ =gText_FontSize2
adds r0, r4, 0
bl StringAppend
adds r0, r4, 0
@@ -753,11 +753,11 @@ sub_813D31C: @ 813D31C
bx r0
.align 2, 0
_0813D384: .4byte gStringVar4
-_0813D388: .4byte gUnknown_84166FF
-_0813D38C: .4byte gUnknown_8416226
+_0813D388: .4byte gText_FontSize0
+_0813D38C: .4byte gOtherText_UnkF9_08_Clear_01
_0813D390: .4byte gStringVar1
_0813D394: .4byte gUnknown_84643B4
-_0813D398: .4byte gUnknown_8416703
+_0813D398: .4byte gText_FontSize2
thumb_func_end sub_813D31C
thumb_func_start sub_813D39C
@@ -806,7 +806,7 @@ _0813D3D6:
lsls r1, r5, 16
lsrs r1, 16
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, [r4]
@@ -857,10 +857,10 @@ sub_813D430: @ 813D430
lsrs r4, 16
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -869,7 +869,7 @@ sub_813D430: @ 813D430
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0813D4A8 @ =gStringVar4
- ldr r1, _0813D4AC @ =gUnknown_84162B9
+ ldr r1, _0813D4AC @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
str r5, [sp]
@@ -894,7 +894,7 @@ _0813D498:
_0813D4A0: .4byte gUnknown_203F36C
_0813D4A4: .4byte gStringVar1
_0813D4A8: .4byte gStringVar4
-_0813D4AC: .4byte gUnknown_84162B9
+_0813D4AC: .4byte gText_TimesStrVar1
thumb_func_end sub_813D430
thumb_func_start sub_813D4B0
@@ -980,7 +980,7 @@ sub_813D538: @ 813D538
lsls r1, 16
lsrs r1, 16
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl ItemId_GetDescription
@@ -1409,7 +1409,7 @@ sub_813D844: @ 813D844
ldr r4, _0813D884 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _0813D888 @ =gUnknown_203F36C
ldr r0, [r0]
ldr r0, [r0]
@@ -1441,7 +1441,7 @@ _0813D8A4:
thumb_func_start sub_813D8AC
sub_813D8AC: @ 813D8AC
push {r4,lr}
- ldr r4, _0813D904 @ =gUnknown_20398AC
+ ldr r4, _0813D904 @ =gBagPockets + 0x20
adds r0, r4, 0
bl sub_809A720
ldr r3, _0813D908 @ =gUnknown_203F36C
@@ -1485,7 +1485,7 @@ _0813D8EE:
adds r1, r0, 0
b _0813D916
.align 2, 0
-_0813D904: .4byte gUnknown_20398AC
+_0813D904: .4byte gBagPockets + 0x20
_0813D908: .4byte gUnknown_203F36C
_0813D90C: .4byte gUnknown_203F370
_0813D910:
@@ -1574,7 +1574,7 @@ sub_813D940: @ 813D940
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
- ldr r1, _0813D9F4 @ =gUnknown_84162B9
+ ldr r1, _0813D9F4 @ =gText_TimesStrVar1
mov r0, r9
bl StringExpandPlaceholders
movs r0, 0xA
@@ -1601,7 +1601,7 @@ sub_813D940: @ 813D940
_0813D9E8: .4byte gTasks+0x8
_0813D9EC: .4byte gStringVar1
_0813D9F0: .4byte gStringVar4
-_0813D9F4: .4byte gUnknown_84162B9
+_0813D9F4: .4byte gText_TimesStrVar1
thumb_func_end sub_813D940
thumb_func_start sub_813D9F8
@@ -1631,7 +1631,7 @@ sub_813D9F8: @ 813D9F8
adds r3, r5, 0
bl ConvertIntToDecimalStringN
ldr r4, _0813DA60 @ =gStringVar4
- ldr r1, _0813DA64 @ =gUnknown_84162B9
+ ldr r1, _0813DA64 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -1654,7 +1654,7 @@ sub_813D9F8: @ 813D9F8
.align 2, 0
_0813DA5C: .4byte gStringVar1
_0813DA60: .4byte gStringVar4
-_0813DA64: .4byte gUnknown_84162B9
+_0813DA64: .4byte gText_TimesStrVar1
thumb_func_end sub_813D9F8
thumb_func_start sub_813DA68
@@ -1748,7 +1748,7 @@ _0813DB10:
lsls r1, r5, 16
lsrs r1, 16
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
ldr r1, _0813DB34 @ =gSpecialVar_ItemId
b _0813DB46
.align 2, 0
@@ -1784,11 +1784,11 @@ _0813DB58:
lsrs r4, 16
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
strh r0, [r7, 0x4]
movs r0, 0x5
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
ldr r1, _0813DBA8 @ =gSpecialVar_ItemId
strh r0, [r1]
ldr r0, _0813DBAC @ =gTasks
@@ -1974,7 +1974,7 @@ _0813DC86:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x6
bl sub_813EA08
adds r4, r0, 0
@@ -2504,11 +2504,11 @@ _0813E18A:
ldr r4, _0813E1F8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
- ldr r0, _0813E1FC @ =gUnknown_3005E70
+ ldr r0, _0813E1FC @ =gMultiuseListMenuTemplate
subs r4, 0xA
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0x8]
@@ -2534,7 +2534,7 @@ _0813E1EC: .4byte gTasks+0x8
_0813E1F0: .4byte gMain
_0813E1F4: .4byte gSpecialVar_ItemId
_0813E1F8: .4byte gUnknown_203F37A
-_0813E1FC: .4byte gUnknown_3005E70
+_0813E1FC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_813E164
thumb_func_start sub_813E200
@@ -2595,14 +2595,14 @@ sub_813E274: @ 813E274
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _0813E288 @ =gUnknown_841632A
+ ldr r2, _0813E288 @ =gText_ThereIsNoPokemon
ldr r3, _0813E28C @ =sub_813E290
movs r1, 0x2
bl sub_813EB20
pop {r0}
bx r0
.align 2, 0
-_0813E288: .4byte gUnknown_841632A
+_0813E288: .4byte gText_ThereIsNoPokemon
_0813E28C: .4byte sub_813E290
thumb_func_end sub_813E274
@@ -2646,11 +2646,11 @@ sub_813E2B8: @ 813E2B8
ldr r4, _0813E318 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
- ldr r0, _0813E31C @ =gUnknown_3005E70
+ ldr r0, _0813E31C @ =gMultiuseListMenuTemplate
subs r4, 0xA
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0x8]
@@ -2671,7 +2671,7 @@ sub_813E2B8: @ 813E2B8
.align 2, 0
_0813E314: .4byte gTasks+0x8
_0813E318: .4byte gUnknown_203F37A
-_0813E31C: .4byte gUnknown_3005E70
+_0813E31C: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_813E2B8
thumb_func_start sub_813E320
@@ -2726,7 +2726,7 @@ sub_813E37C: @ 813E37C
adds r0, r6, r7
ldrh r1, [r0, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
@@ -2817,7 +2817,7 @@ sub_813E428: @ 813E428
ldr r1, _0813E478 @ =gStringVar1
bl CopyItemName
ldr r4, _0813E47C @ =gStringVar4
- ldr r1, _0813E480 @ =gUnknown_84168F1
+ ldr r1, _0813E480 @ =gText_OhNoICantBuyThat
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -2834,7 +2834,7 @@ _0813E470: .4byte gTasks+0x8
_0813E474: .4byte gSpecialVar_ItemId
_0813E478: .4byte gStringVar1
_0813E47C: .4byte gStringVar4
-_0813E480: .4byte gUnknown_84168F1
+_0813E480: .4byte gText_OhNoICantBuyThat
_0813E484: .4byte sub_813E2B8
_0813E488:
movs r0, 0x1
@@ -2857,7 +2857,7 @@ _0813E4A8:
ldr r1, _0813E4D4 @ =gStringVar1
bl CopyItemName
ldr r4, _0813E4D8 @ =gStringVar4
- ldr r1, _0813E4DC @ =gUnknown_8416911
+ ldr r1, _0813E4DC @ =gText_HowManyWouldYouLikeToSell
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -2875,7 +2875,7 @@ _0813E4CE:
.align 2, 0
_0813E4D4: .4byte gStringVar1
_0813E4D8: .4byte gStringVar4
-_0813E4DC: .4byte gUnknown_8416911
+_0813E4DC: .4byte gText_HowManyWouldYouLikeToSell
_0813E4E0: .4byte sub_813E5B8
thumb_func_end sub_813E428
@@ -2893,7 +2893,7 @@ sub_813E4E4: @ 813E4E4
ldr r6, _0813E544 @ =gStringVar3
ldrh r1, [r4, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -2907,7 +2907,7 @@ sub_813E4E4: @ 813E4E4
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0813E548 @ =gStringVar4
- ldr r1, _0813E54C @ =gUnknown_8416936
+ ldr r1, _0813E54C @ =gText_ICanPayThisMuch_WouldThatBeOkay
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -2925,7 +2925,7 @@ sub_813E4E4: @ 813E4E4
_0813E540: .4byte gTasks+0x8
_0813E544: .4byte gStringVar3
_0813E548: .4byte gStringVar4
-_0813E54C: .4byte gUnknown_8416936
+_0813E54C: .4byte gText_ICanPayThisMuch_WouldThatBeOkay
_0813E550: .4byte sub_813E554
thumb_func_end sub_813E4E4
@@ -3004,7 +3004,7 @@ sub_813E5B8: @ 813E5B8
bl ConvertIntToDecimalStringN
ldr r2, _0813E65C @ =gStringVar4
mov r8, r2
- ldr r1, _0813E660 @ =gUnknown_84162B9
+ ldr r1, _0813E660 @ =gText_TimesStrVar1
mov r0, r8
bl StringExpandPlaceholders
movs r0, 0xA
@@ -3024,7 +3024,7 @@ sub_813E5B8: @ 813E5B8
mov r3, r9
ldrh r1, [r3, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -3052,7 +3052,7 @@ sub_813E5B8: @ 813E5B8
_0813E654: .4byte gTasks+0x8
_0813E658: .4byte gStringVar1
_0813E65C: .4byte gStringVar4
-_0813E660: .4byte gUnknown_84162B9
+_0813E660: .4byte gText_TimesStrVar1
_0813E664: .4byte sub_813E690
thumb_func_end sub_813E5B8
@@ -3103,7 +3103,7 @@ sub_813E690: @ 813E690
bl sub_813D9F8
ldrh r1, [r5, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -3192,7 +3192,7 @@ sub_813E768: @ 813E768
ldr r6, _0813E7E0 @ =gStringVar3
ldrh r1, [r4, 0x2]
movs r0, 0x5
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -3206,7 +3206,7 @@ sub_813E768: @ 813E768
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0813E7E4 @ =gStringVar4
- ldr r1, _0813E7E8 @ =gUnknown_8416959
+ ldr r1, _0813E7E8 @ =gText_TurnedOverItemsWorthYen
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r3, _0813E7EC @ =sub_813E7F0
@@ -3223,7 +3223,7 @@ _0813E7D8: .4byte gSpecialVar_ItemId
_0813E7DC: .4byte gStringVar1
_0813E7E0: .4byte gStringVar3
_0813E7E4: .4byte gStringVar4
-_0813E7E8: .4byte gUnknown_8416959
+_0813E7E8: .4byte gText_TurnedOverItemsWorthYen
_0813E7EC: .4byte sub_813E7F0
thumb_func_end sub_813E768
@@ -3277,11 +3277,11 @@ sub_813E7F0: @ 813E7F0
ldr r4, _0813E8C8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
- ldr r0, _0813E8CC @ =gUnknown_3005E70
+ ldr r0, _0813E8CC @ =gMultiuseListMenuTemplate
subs r4, 0xA
ldrh r1, [r4, 0xA]
ldrh r2, [r4, 0x8]
@@ -3322,7 +3322,7 @@ _0813E8BC: .4byte gTasks+0x8
_0813E8C0: .4byte gSpecialVar_ItemId
_0813E8C4: .4byte gSaveBlock1Ptr
_0813E8C8: .4byte gUnknown_203F37A
-_0813E8CC: .4byte gUnknown_3005E70
+_0813E8CC: .4byte gMultiuseListMenuTemplate
_0813E8D0: .4byte sub_813E8D4
thumb_func_end sub_813E7F0
@@ -3376,7 +3376,7 @@ sub_813E910: @ 813E910
movs r1, 0xA
movs r2, 0xC0
bl sub_814FF2C
- ldr r0, _0813E998 @ =gUnknown_841F408
+ ldr r0, _0813E998 @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
@@ -3418,7 +3418,7 @@ _0813E97C:
bx r0
.align 2, 0
_0813E994: .4byte gUnknown_84643B8
-_0813E998: .4byte gUnknown_841F408
+_0813E998: .4byte gTMCaseMainWindowPalette
_0813E99C: .4byte gUnknown_203F38C
thumb_func_end sub_813E910
@@ -3642,7 +3642,7 @@ sub_813EB20: @ 813EB20
bl AddWindow
strb r0, [r4, 0x5]
_0813EB44:
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x5]
@@ -3685,7 +3685,7 @@ sub_813EB7C: @ 813EB7C
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
@@ -3710,7 +3710,7 @@ sub_813EBA8: @ 813EBA8
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s
index 734e648b3..04caf30a4 100644
--- a/asm/buy_menu_helpers.s
+++ b/asm/buy_menu_helpers.s
@@ -141,7 +141,7 @@ sub_813F75C: @ 813F75C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r4, [sp]
@@ -209,7 +209,7 @@ sub_813F7D8: @ 813F7D8
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
- bl sub_80BF5D0
+ bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 45967283c..a403aa659 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -91,7 +91,7 @@ sub_80807E8: @ 80807E8
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
adds r0, r4, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/coord_event_weather.s b/asm/coord_event_weather.s
deleted file mode 100644
index 8c987c6e2..000000000
--- a/asm/coord_event_weather.s
+++ /dev/null
@@ -1,105 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_27
-nullsub_27: @ 806E7A8
- bx lr
- thumb_func_end nullsub_27
-
- thumb_func_start nullsub_28
-nullsub_28: @ 806E7AC
- bx lr
- thumb_func_end nullsub_28
-
- thumb_func_start nullsub_29
-nullsub_29: @ 806E7B0
- bx lr
- thumb_func_end nullsub_29
-
- thumb_func_start nullsub_30
-nullsub_30: @ 806E7B4
- bx lr
- thumb_func_end nullsub_30
-
- thumb_func_start nullsub_31
-nullsub_31: @ 806E7B8
- bx lr
- thumb_func_end nullsub_31
-
- thumb_func_start nullsub_32
-nullsub_32: @ 806E7BC
- bx lr
- thumb_func_end nullsub_32
-
- thumb_func_start nullsub_33
-nullsub_33: @ 806E7C0
- bx lr
- thumb_func_end nullsub_33
-
- thumb_func_start nullsub_34
-nullsub_34: @ 806E7C4
- bx lr
- thumb_func_end nullsub_34
-
- thumb_func_start nullsub_35
-nullsub_35: @ 806E7C8
- bx lr
- thumb_func_end nullsub_35
-
- thumb_func_start nullsub_36
-nullsub_36: @ 806E7CC
- bx lr
- thumb_func_end nullsub_36
-
- thumb_func_start nullsub_37
-nullsub_37: @ 806E7D0
- bx lr
- thumb_func_end nullsub_37
-
- thumb_func_start nullsub_38
-nullsub_38: @ 806E7D4
- bx lr
- thumb_func_end nullsub_38
-
- thumb_func_start nullsub_39
-nullsub_39: @ 806E7D8
- bx lr
- thumb_func_end nullsub_39
-
- thumb_func_start trigger_activate_weather
-trigger_activate_weather: @ 806E7DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r2, 0
- ldr r3, _0806E7FC @ =gUnknown_83A72A8
-_0806E7E6:
- lsls r1, r2, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0806E800
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- bl _call_via_r0
- b _0806E80A
- .align 2, 0
-_0806E7FC: .4byte gUnknown_83A72A8
-_0806E800:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xC
- bls _0806E7E6
-_0806E80A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end trigger_activate_weather
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/credits.s b/asm/credits.s
index bf8c5eeac..0413aac97 100644
--- a/asm/credits.s
+++ b/asm/credits.s
@@ -241,7 +241,7 @@ _080F3B5E:
bl sub_80F3A74
bl sub_80F3AA4
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
ldr r0, _080F3BC8 @ =gPlttBufferUnfaded
movs r2, 0xFF
lsls r2, 1
@@ -325,7 +325,7 @@ _080F3C64:
bl sub_80F3AA4
bl sub_80F3AC4
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
ldr r0, _080F3C8C @ =gPlttBufferUnfaded
movs r2, 0xFF
lsls r2, 1
diff --git a/asm/daycare.s b/asm/daycare.s
index 3b7d7ffe0..5f1b787af 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -2714,7 +2714,7 @@ _080467C8:
adds r0, r7, 0
adds r1, r4, 0
bl StringAppend
- ldr r1, _08046830 @ =gUnknown_84161C8
+ ldr r1, _08046830 @ =gOtherText_Exit
adds r0, r7, 0
bl StringAppend
add sp, 0x28
@@ -2726,7 +2726,7 @@ _080467C8:
bx r0
.align 2, 0
_0804682C: .4byte gUnknown_825F83C
-_08046830: .4byte gUnknown_84161C8
+_08046830: .4byte gOtherText_Exit
thumb_func_end GetDaycareLevelMenuText
thumb_func_start GetDaycareLevelMenuLevelText
@@ -3008,10 +3008,10 @@ _08046A46:
ldrb r0, [r4, 0x8]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0xA]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4, 0xA]
bl RemoveWindow
adds r0, r5, 0
@@ -3032,10 +3032,10 @@ _08046A7C:
ldrb r0, [r4, 0x8]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0xA]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4, 0xA]
bl RemoveWindow
adds r0, r5, 0
@@ -3060,7 +3060,7 @@ ShowDaycareLevelMenu: @ 8046AB8
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
mov r1, sp
ldr r0, _08046B1C @ =gUnknown_825F814
ldm r0!, {r2,r3,r5}
diff --git a/asm/diploma.s b/asm/diploma.s
index d0b652619..31f0d368d 100644
--- a/asm/diploma.s
+++ b/asm/diploma.s
@@ -279,7 +279,7 @@ sub_80F4E24: @ 80F4E24
bl ResetPaletteFade
bl FreeAllSpritePalettes
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
pop {r0}
bx r0
thumb_func_end sub_80F4E24
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index eef234a71..aa5b2d8f6 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -621,7 +621,7 @@ _08047090:
bl FreeAllSpritePalettes
bl ResetSpriteData
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl m4aSoundVSyncOn
b _0804724A
.align 2, 0
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index d343c68d4..c02eef927 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -171,25 +171,25 @@ EvolutionScene: @ 80CDDF4
movs r1, 0
bl SetGpuReg
bl ResetPaletteFade
- ldr r0, _080CE080 @ =gUnknown_2022974
+ ldr r0, _080CE080 @ =gBattle_BG0_X
movs r2, 0
strh r2, [r0]
- ldr r0, _080CE084 @ =gUnknown_2022976
+ ldr r0, _080CE084 @ =gBattle_BG0_Y
strh r2, [r0]
- ldr r0, _080CE088 @ =gUnknown_2022978
+ ldr r0, _080CE088 @ =gBattle_BG1_X
strh r2, [r0]
- ldr r0, _080CE08C @ =gUnknown_202297A
+ ldr r0, _080CE08C @ =gBattle_BG1_Y
strh r2, [r0]
- ldr r0, _080CE090 @ =gUnknown_202297C
+ ldr r0, _080CE090 @ =gBattle_BG2_X
strh r2, [r0]
- ldr r0, _080CE094 @ =gUnknown_202297E
+ ldr r0, _080CE094 @ =gBattle_BG2_Y
strh r2, [r0]
- ldr r1, _080CE098 @ =gUnknown_2022980
+ ldr r1, _080CE098 @ =gBattle_BG3_X
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _080CE09C @ =gUnknown_2022982
+ ldr r0, _080CE09C @ =gBattle_BG3_Y
movs r1, 0
strh r1, [r0]
ldr r1, _080CE0A0 @ =gUnknown_2022B50
@@ -198,7 +198,7 @@ EvolutionScene: @ 80CDDF4
bl sub_800F34C
bl LoadBattleTextboxAndBackground
bl ResetSpriteData
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl FreeAllSpritePalettes
ldr r0, _080CE0A4 @ =gReservedSpritePaletteCount
@@ -401,14 +401,14 @@ EvolutionScene: @ 80CDDF4
bx r0
.align 2, 0
_080CE07C: .4byte 0x05006000
-_080CE080: .4byte gUnknown_2022974
-_080CE084: .4byte gUnknown_2022976
-_080CE088: .4byte gUnknown_2022978
-_080CE08C: .4byte gUnknown_202297A
-_080CE090: .4byte gUnknown_202297C
-_080CE094: .4byte gUnknown_202297E
-_080CE098: .4byte gUnknown_2022980
-_080CE09C: .4byte gUnknown_2022982
+_080CE080: .4byte gBattle_BG0_X
+_080CE084: .4byte gBattle_BG0_Y
+_080CE088: .4byte gBattle_BG1_X
+_080CE08C: .4byte gBattle_BG1_Y
+_080CE090: .4byte gBattle_BG2_X
+_080CE094: .4byte gBattle_BG2_Y
+_080CE098: .4byte gBattle_BG3_X
+_080CE09C: .4byte gBattle_BG3_Y
_080CE0A0: .4byte gUnknown_2022B50
_080CE0A4: .4byte gReservedSpritePaletteCount
_080CE0A8: .4byte gUnknown_2039A20
@@ -494,24 +494,24 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8
movs r1, 0
bl SetGpuReg
bl ResetPaletteFade
- ldr r0, _080CE290 @ =gUnknown_2022974
+ ldr r0, _080CE290 @ =gBattle_BG0_X
strh r4, [r0]
- ldr r0, _080CE294 @ =gUnknown_2022976
+ ldr r0, _080CE294 @ =gBattle_BG0_Y
strh r4, [r0]
- ldr r0, _080CE298 @ =gUnknown_2022978
+ ldr r0, _080CE298 @ =gBattle_BG1_X
strh r4, [r0]
- ldr r0, _080CE29C @ =gUnknown_202297A
+ ldr r0, _080CE29C @ =gBattle_BG1_Y
strh r4, [r0]
- ldr r0, _080CE2A0 @ =gUnknown_202297C
+ ldr r0, _080CE2A0 @ =gBattle_BG2_X
strh r4, [r0]
- ldr r0, _080CE2A4 @ =gUnknown_202297E
+ ldr r0, _080CE2A4 @ =gBattle_BG2_Y
strh r4, [r0]
- ldr r1, _080CE2A8 @ =gUnknown_2022980
+ ldr r1, _080CE2A8 @ =gBattle_BG3_X
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _080CE2AC @ =gUnknown_2022982
+ ldr r0, _080CE2AC @ =gBattle_BG3_Y
strh r4, [r0]
ldr r1, _080CE2B0 @ =gUnknown_2022B50
movs r0, 0x9
@@ -608,14 +608,14 @@ _080CE280: .4byte gTasks
_080CE284: .4byte gUnknown_2039A20
_080CE288: .4byte gPlayerParty
_080CE28C: .4byte 0x05006000
-_080CE290: .4byte gUnknown_2022974
-_080CE294: .4byte gUnknown_2022976
-_080CE298: .4byte gUnknown_2022978
-_080CE29C: .4byte gUnknown_202297A
-_080CE2A0: .4byte gUnknown_202297C
-_080CE2A4: .4byte gUnknown_202297E
-_080CE2A8: .4byte gUnknown_2022980
-_080CE2AC: .4byte gUnknown_2022982
+_080CE290: .4byte gBattle_BG0_X
+_080CE294: .4byte gBattle_BG0_Y
+_080CE298: .4byte gBattle_BG1_X
+_080CE29C: .4byte gBattle_BG1_Y
+_080CE2A0: .4byte gBattle_BG2_X
+_080CE2A4: .4byte gBattle_BG2_Y
+_080CE2A8: .4byte gBattle_BG3_X
+_080CE2AC: .4byte gBattle_BG3_Y
_080CE2B0: .4byte gUnknown_2022B50
_080CE2B4: .4byte gReservedSpritePaletteCount
_080CE2B8: .4byte gUnknown_82350AC
@@ -691,37 +691,37 @@ _080CE34C:
ldr r1, _080CE398 @ =gReservedSpritePaletteCount
movs r0, 0x4
strb r0, [r1]
- ldr r0, _080CE39C @ =gUnknown_2022974
+ ldr r0, _080CE39C @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080CE3A0 @ =gUnknown_2022976
+ ldr r0, _080CE3A0 @ =gBattle_BG0_Y
strh r1, [r0]
- ldr r0, _080CE3A4 @ =gUnknown_2022978
+ ldr r0, _080CE3A4 @ =gBattle_BG1_X
strh r1, [r0]
- ldr r0, _080CE3A8 @ =gUnknown_202297A
+ ldr r0, _080CE3A8 @ =gBattle_BG1_Y
strh r1, [r0]
- ldr r0, _080CE3AC @ =gUnknown_202297C
+ ldr r0, _080CE3AC @ =gBattle_BG2_X
strh r1, [r0]
- ldr r0, _080CE3B0 @ =gUnknown_202297E
+ ldr r0, _080CE3B0 @ =gBattle_BG2_Y
strh r1, [r0]
- ldr r2, _080CE3B4 @ =gUnknown_2022980
+ ldr r2, _080CE3B4 @ =gBattle_BG3_X
movs r3, 0x80
lsls r3, 1
adds r0, r3, 0
strh r0, [r2]
- ldr r0, _080CE3B8 @ =gUnknown_2022982
+ ldr r0, _080CE3B8 @ =gBattle_BG3_Y
strh r1, [r0]
b _080CE4EC
.align 2, 0
_080CE398: .4byte gReservedSpritePaletteCount
-_080CE39C: .4byte gUnknown_2022974
-_080CE3A0: .4byte gUnknown_2022976
-_080CE3A4: .4byte gUnknown_2022978
-_080CE3A8: .4byte gUnknown_202297A
-_080CE3AC: .4byte gUnknown_202297C
-_080CE3B0: .4byte gUnknown_202297E
-_080CE3B4: .4byte gUnknown_2022980
-_080CE3B8: .4byte gUnknown_2022982
+_080CE39C: .4byte gBattle_BG0_X
+_080CE3A0: .4byte gBattle_BG0_Y
+_080CE3A4: .4byte gBattle_BG1_X
+_080CE3A8: .4byte gBattle_BG1_Y
+_080CE3AC: .4byte gBattle_BG2_X
+_080CE3B0: .4byte gBattle_BG2_Y
+_080CE3B4: .4byte gBattle_BG3_X
+_080CE3B8: .4byte gBattle_BG3_Y
_080CE3BC:
bl ResetPaletteFade
ldr r0, _080CE3D8 @ =nullsub_76
@@ -1027,24 +1027,24 @@ TradeEvolutionScene: @ 80CE540
mov r1, sp
ldrh r1, [r1, 0x14]
strh r1, [r0, 0x1C]
- ldr r0, _080CE6E4 @ =gUnknown_2022974
+ ldr r0, _080CE6E4 @ =gBattle_BG0_X
strh r4, [r0]
- ldr r0, _080CE6E8 @ =gUnknown_2022976
+ ldr r0, _080CE6E8 @ =gBattle_BG0_Y
strh r4, [r0]
- ldr r0, _080CE6EC @ =gUnknown_2022978
+ ldr r0, _080CE6EC @ =gBattle_BG1_X
strh r4, [r0]
- ldr r0, _080CE6F0 @ =gUnknown_202297A
+ ldr r0, _080CE6F0 @ =gBattle_BG1_Y
strh r4, [r0]
- ldr r0, _080CE6F4 @ =gUnknown_202297C
+ ldr r0, _080CE6F4 @ =gBattle_BG2_X
strh r4, [r0]
- ldr r0, _080CE6F8 @ =gUnknown_202297E
+ ldr r0, _080CE6F8 @ =gBattle_BG2_Y
strh r4, [r0]
- ldr r1, _080CE6FC @ =gUnknown_2022980
+ ldr r1, _080CE6FC @ =gBattle_BG3_X
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _080CE700 @ =gUnknown_2022982
+ ldr r0, _080CE700 @ =gBattle_BG3_Y
strh r4, [r0]
ldr r2, _080CE704 @ =gTextFlags
ldrb r0, [r2]
@@ -1077,14 +1077,14 @@ _080CE6D4: .4byte gSprites
_080CE6D8: .4byte nullsub_10
_080CE6DC: .4byte sub_80CF53C
_080CE6E0: .4byte gTasks
-_080CE6E4: .4byte gUnknown_2022974
-_080CE6E8: .4byte gUnknown_2022976
-_080CE6EC: .4byte gUnknown_2022978
-_080CE6F0: .4byte gUnknown_202297A
-_080CE6F4: .4byte gUnknown_202297C
-_080CE6F8: .4byte gUnknown_202297E
-_080CE6FC: .4byte gUnknown_2022980
-_080CE700: .4byte gUnknown_2022982
+_080CE6E4: .4byte gBattle_BG0_X
+_080CE6E8: .4byte gBattle_BG0_Y
+_080CE6EC: .4byte gBattle_BG1_X
+_080CE6F0: .4byte gBattle_BG1_Y
+_080CE6F4: .4byte gBattle_BG2_X
+_080CE6F8: .4byte gBattle_BG2_Y
+_080CE6FC: .4byte gBattle_BG3_X
+_080CE700: .4byte gBattle_BG3_Y
_080CE704: .4byte gTextFlags
_080CE708: .4byte sub_80D00D8
_080CE70C: .4byte sub_80CE72C
@@ -3981,105 +3981,105 @@ nullsub_76: @ 80D004C
thumb_func_start sub_80D0050
sub_80D0050: @ 80D0050
push {lr}
- ldr r0, _080D00B8 @ =gUnknown_2022974
+ ldr r0, _080D00B8 @ =gBattle_BG0_X
ldrh r1, [r0]
movs r0, 0x10
bl SetGpuReg
- ldr r0, _080D00BC @ =gUnknown_2022976
+ ldr r0, _080D00BC @ =gBattle_BG0_Y
ldrh r1, [r0]
movs r0, 0x12
bl SetGpuReg
- ldr r0, _080D00C0 @ =gUnknown_2022978
+ ldr r0, _080D00C0 @ =gBattle_BG1_X
ldrh r1, [r0]
movs r0, 0x14
bl SetGpuReg
- ldr r0, _080D00C4 @ =gUnknown_202297A
+ ldr r0, _080D00C4 @ =gBattle_BG1_Y
ldrh r1, [r0]
movs r0, 0x16
bl SetGpuReg
- ldr r0, _080D00C8 @ =gUnknown_202297C
+ ldr r0, _080D00C8 @ =gBattle_BG2_X
ldrh r1, [r0]
movs r0, 0x18
bl SetGpuReg
- ldr r0, _080D00CC @ =gUnknown_202297E
+ ldr r0, _080D00CC @ =gBattle_BG2_Y
ldrh r1, [r0]
movs r0, 0x1A
bl SetGpuReg
- ldr r0, _080D00D0 @ =gUnknown_2022980
+ ldr r0, _080D00D0 @ =gBattle_BG3_X
ldrh r1, [r0]
movs r0, 0x1C
bl SetGpuReg
- ldr r0, _080D00D4 @ =gUnknown_2022982
+ ldr r0, _080D00D4 @ =gBattle_BG3_Y
ldrh r1, [r0]
movs r0, 0x1E
bl SetGpuReg
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
-_080D00B8: .4byte gUnknown_2022974
-_080D00BC: .4byte gUnknown_2022976
-_080D00C0: .4byte gUnknown_2022978
-_080D00C4: .4byte gUnknown_202297A
-_080D00C8: .4byte gUnknown_202297C
-_080D00CC: .4byte gUnknown_202297E
-_080D00D0: .4byte gUnknown_2022980
-_080D00D4: .4byte gUnknown_2022982
+_080D00B8: .4byte gBattle_BG0_X
+_080D00BC: .4byte gBattle_BG0_Y
+_080D00C0: .4byte gBattle_BG1_X
+_080D00C4: .4byte gBattle_BG1_Y
+_080D00C8: .4byte gBattle_BG2_X
+_080D00CC: .4byte gBattle_BG2_Y
+_080D00D0: .4byte gBattle_BG3_X
+_080D00D4: .4byte gBattle_BG3_Y
thumb_func_end sub_80D0050
thumb_func_start sub_80D00D8
sub_80D00D8: @ 80D00D8
push {lr}
- ldr r0, _080D0140 @ =gUnknown_2022974
+ ldr r0, _080D0140 @ =gBattle_BG0_X
ldrh r1, [r0]
movs r0, 0x10
bl SetGpuReg
- ldr r0, _080D0144 @ =gUnknown_2022976
+ ldr r0, _080D0144 @ =gBattle_BG0_Y
ldrh r1, [r0]
movs r0, 0x12
bl SetGpuReg
- ldr r0, _080D0148 @ =gUnknown_2022978
+ ldr r0, _080D0148 @ =gBattle_BG1_X
ldrh r1, [r0]
movs r0, 0x14
bl SetGpuReg
- ldr r0, _080D014C @ =gUnknown_202297A
+ ldr r0, _080D014C @ =gBattle_BG1_Y
ldrh r1, [r0]
movs r0, 0x16
bl SetGpuReg
- ldr r0, _080D0150 @ =gUnknown_202297C
+ ldr r0, _080D0150 @ =gBattle_BG2_X
ldrh r1, [r0]
movs r0, 0x18
bl SetGpuReg
- ldr r0, _080D0154 @ =gUnknown_202297E
+ ldr r0, _080D0154 @ =gBattle_BG2_Y
ldrh r1, [r0]
movs r0, 0x1A
bl SetGpuReg
- ldr r0, _080D0158 @ =gUnknown_2022980
+ ldr r0, _080D0158 @ =gBattle_BG3_X
ldrh r1, [r0]
movs r0, 0x1C
bl SetGpuReg
- ldr r0, _080D015C @ =gUnknown_2022982
+ ldr r0, _080D015C @ =gBattle_BG3_Y
ldrh r1, [r0]
movs r0, 0x1E
bl SetGpuReg
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
-_080D0140: .4byte gUnknown_2022974
-_080D0144: .4byte gUnknown_2022976
-_080D0148: .4byte gUnknown_2022978
-_080D014C: .4byte gUnknown_202297A
-_080D0150: .4byte gUnknown_202297C
-_080D0154: .4byte gUnknown_202297E
-_080D0158: .4byte gUnknown_2022980
-_080D015C: .4byte gUnknown_2022982
+_080D0140: .4byte gBattle_BG0_X
+_080D0144: .4byte gBattle_BG0_Y
+_080D0148: .4byte gBattle_BG1_X
+_080D014C: .4byte gBattle_BG1_Y
+_080D0150: .4byte gBattle_BG2_X
+_080D0154: .4byte gBattle_BG2_Y
+_080D0158: .4byte gBattle_BG3_X
+_080D015C: .4byte gBattle_BG3_Y
thumb_func_end sub_80D00D8
thumb_func_start sub_80D0160
@@ -4225,9 +4225,9 @@ sub_80D025C: @ 80D025C
push {r6,r7}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080D0288 @ =gUnknown_2022978
+ ldr r0, _080D0288 @ =gBattle_BG1_X
mov r8, r0
- ldr r1, _080D028C @ =gUnknown_202297A
+ ldr r1, _080D028C @ =gBattle_BG1_Y
mov r9, r1
ldr r1, _080D0290 @ =gTasks
lsls r0, r5, 2
@@ -4238,18 +4238,18 @@ sub_80D025C: @ 80D025C
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080D029C
- ldr r7, _080D0294 @ =gUnknown_202297C
- ldr r6, _080D0298 @ =gUnknown_202297E
+ ldr r7, _080D0294 @ =gBattle_BG2_X
+ ldr r6, _080D0298 @ =gBattle_BG2_Y
b _080D02A0
.align 2, 0
-_080D0288: .4byte gUnknown_2022978
-_080D028C: .4byte gUnknown_202297A
+_080D0288: .4byte gBattle_BG1_X
+_080D028C: .4byte gBattle_BG1_Y
_080D0290: .4byte gTasks
-_080D0294: .4byte gUnknown_202297C
-_080D0298: .4byte gUnknown_202297E
+_080D0294: .4byte gBattle_BG2_X
+_080D0298: .4byte gBattle_BG2_Y
_080D029C:
- ldr r7, _080D0328 @ =gUnknown_2022980
- ldr r6, _080D032C @ =gUnknown_2022982
+ ldr r7, _080D0328 @ =gBattle_BG3_X
+ ldr r6, _080D032C @ =gBattle_BG3_Y
_080D02A0:
lsls r4, r5, 2
adds r4, r5
@@ -4314,8 +4314,8 @@ _080D031A:
pop {r0}
bx r0
.align 2, 0
-_080D0328: .4byte gUnknown_2022980
-_080D032C: .4byte gUnknown_2022982
+_080D0328: .4byte gBattle_BG3_X
+_080D032C: .4byte gBattle_BG3_Y
_080D0330: .4byte sub_80D0160
thumb_func_end sub_80D025C
@@ -4527,12 +4527,12 @@ sub_80D04E8: @ 80D04E8
movs r0, 0x50
movs r1, 0
bl SetGpuReg
- ldr r0, _080D0544 @ =gUnknown_2022978
+ ldr r0, _080D0544 @ =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080D0548 @ =gUnknown_202297A
+ ldr r0, _080D0548 @ =gBattle_BG1_Y
strh r1, [r0]
- ldr r0, _080D054C @ =gUnknown_202297C
+ ldr r0, _080D054C @ =gBattle_BG2_X
strh r1, [r0]
movs r0, 0x1
movs r1, 0x5
@@ -4562,9 +4562,9 @@ sub_80D04E8: @ 80D04E8
pop {r0}
bx r0
.align 2, 0
-_080D0544: .4byte gUnknown_2022978
-_080D0548: .4byte gUnknown_202297A
-_080D054C: .4byte gUnknown_202297C
+_080D0544: .4byte gBattle_BG1_X
+_080D0548: .4byte gBattle_BG1_Y
+_080D054C: .4byte gBattle_BG2_X
_080D0550: .4byte gUnknown_2039A24
thumb_func_end sub_80D04E8
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 5aa0772dd..785e36266 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -2542,7 +2542,7 @@ sub_8084708: @ 8084708
movs r0, 0x8
bl SetPlayerAvatarTransitionFlags
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_08084760:
ldr r0, _08084780 @ =sub_8084484
bl FindTaskIdByFunc
@@ -7213,7 +7213,7 @@ sub_8086B30: @ 8086B30
lsrs r0, 24
bl DestroyTask
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_08086B96:
pop {r4,r5}
pop {r0}
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index ef1c75939..145521094 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -21605,7 +21605,7 @@ _080677EA:
ands r0, r1
strb r0, [r5, 0x1]
_08067822:
- ldr r1, _08067850 @ =gUnknown_825E074
+ ldr r1, _08067850 @ =gSineTable
movs r2, 0x3A
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -21629,7 +21629,7 @@ _08067822:
strb r0, [r5]
b _080678B6
.align 2, 0
-_08067850: .4byte gUnknown_825E074
+_08067850: .4byte gSineTable
_08067854:
ldrh r0, [r4, 0x36]
adds r0, 0x1
@@ -21697,7 +21697,7 @@ sub_80678C0: @ 80678C0
movs r0, 0xFF
ands r2, r0
strh r2, [r1, 0x3C]
- ldr r3, _080678EC @ =gUnknown_825E074
+ ldr r3, _080678EC @ =gSineTable
movs r4, 0x3C
ldrsh r0, [r1, r4]
lsls r0, 1
@@ -21715,7 +21715,7 @@ _080678E6:
pop {r1}
bx r1
.align 2, 0
-_080678EC: .4byte gUnknown_825E074
+_080678EC: .4byte gSineTable
thumb_func_end sub_80678C0
thumb_func_start sub_80678F0
diff --git a/asm/field_message_box.s b/asm/field_message_box.s
index 78a5f8c8c..46f4c3f8e 100644
--- a/asm/field_message_box.s
+++ b/asm/field_message_box.s
@@ -83,7 +83,7 @@ _080693D4:
_080693DA:
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
_080693E2:
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -250,7 +250,7 @@ HideFieldMessageBox: @ 80694F4
bl task_del_textbox
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
ldr r1, _0806950C @ =gUnknown_203709C
movs r0, 0
strb r0, [r1]
@@ -293,7 +293,7 @@ sub_8069538: @ 8069538
bl task_del_textbox
movs r0, 0
movs r1, 0x1
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r1, _08069550 @ =gUnknown_203709C
movs r0, 0
strb r0, [r1]
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index df2588587..b7824ee84 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -4769,7 +4769,7 @@ _0805D748:
strh r6, [r0, 0x26]
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
@@ -5043,7 +5043,7 @@ sub_805D980: @ 805D980
bl UnfreezeMapObjects
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
ldr r0, _0805D9C0 @ =sub_805D304
bl FindTaskIdByFunc
lsls r0, 24
diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s
index a8477a33f..24ca7a19a 100644
--- a/asm/field_screen_effect.s
+++ b/asm/field_screen_effect.s
@@ -135,12 +135,12 @@ _0807EEE0:
beq _0807EF6C
b _0807EF76
_0807EEE6:
- ldr r0, _0807EF0C @ =gUnknown_2039600
+ ldr r0, _0807EF0C @ =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
- ldr r1, _0807EF10 @ =gUnknown_2038700
+ ldr r1, _0807EF10 @ =gScanlineEffectRegBuffers
adds r0, r1
movs r2, 0x2
ldrsh r1, [r4, r2]
@@ -153,15 +153,15 @@ _0807EEE6:
strh r0, [r4]
b _0807EF76
.align 2, 0
-_0807EF0C: .4byte gUnknown_2039600
-_0807EF10: .4byte gUnknown_2038700
+_0807EF0C: .4byte gScanlineEffect
+_0807EF10: .4byte gScanlineEffectRegBuffers
_0807EF14:
- ldr r0, _0807EF5C @ =gUnknown_2039600
+ ldr r0, _0807EF5C @ =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
- ldr r1, _0807EF60 @ =gUnknown_2038700
+ ldr r1, _0807EF60 @ =gScanlineEffectRegBuffers
adds r0, r1
movs r6, 0x2
ldrsh r1, [r4, r6]
@@ -186,19 +186,19 @@ _0807EF14:
ldrsh r0, [r4, r3]
cmp r0, 0x1
bne _0807EF64
- bl remove_some_task
+ bl ScanlineEffect_Stop
movs r0, 0x2
strh r0, [r4]
b _0807EF76
.align 2, 0
-_0807EF5C: .4byte gUnknown_2039600
-_0807EF60: .4byte gUnknown_2038700
+_0807EF5C: .4byte gScanlineEffect
+_0807EF60: .4byte gScanlineEffectRegBuffers
_0807EF64:
adds r0, r5, 0
bl DestroyTask
b _0807EF76
_0807EF6C:
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
adds r0, r5, 0
bl DestroyTask
_0807EF76:
@@ -344,7 +344,7 @@ sub_807F074: @ 807F074
lsrs r0, 24
cmp r0, 0
beq _0807F0A2
- ldr r4, _0807F0A8 @ =gUnknown_2038700
+ ldr r4, _0807F0A8 @ =gScanlineEffectRegBuffers
ldr r1, _0807F0AC @ =gUnknown_83C68D4
lsls r0, 1
adds r0, r1
@@ -365,7 +365,7 @@ _0807F0A2:
pop {r0}
bx r0
.align 2, 0
-_0807F0A8: .4byte gUnknown_2038700
+_0807F0A8: .4byte gScanlineEffectRegBuffers
_0807F0AC: .4byte gUnknown_83C68D4
thumb_func_end sub_807F074
@@ -869,7 +869,7 @@ _0807F4A8:
adds r7, r0, r1
strh r5, [r7, 0xA]
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
adds r0, r5, 0
movs r1, 0
bl FillWindowPixelBuffer
diff --git a/asm/field_specials.s b/asm/field_specials.s
index 4c0b97151..d98798352 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -756,7 +756,7 @@ sub_80CAB78: @ 80CAB78
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_80CBD94
+ bl GetStarterPokemon
lsls r0, 16
lsrs r6, r0, 16
bl CalculatePlayerPartyCount
@@ -2854,7 +2854,7 @@ sub_80CBBAC: @ 80CBBAC
lsrs r0, 24
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _080CBC28 @ =gUnknown_2039A14
ldr r0, [r0]
bl Free
@@ -3078,15 +3078,15 @@ _080CBD7C: .4byte gTasks
sub_80CBD80: @ 80CBD80
push {lr}
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
movs r0, 0x8
bl SetPlayerAvatarTransitionFlags
pop {r0}
bx r0
thumb_func_end sub_80CBD80
- thumb_func_start sub_80CBD94
-sub_80CBD94: @ 80CBD94
+ thumb_func_start GetStarterPokemon
+GetStarterPokemon: @ 80CBD94
push {lr}
lsls r0, 16
lsrs r1, r0, 16
@@ -3094,31 +3094,31 @@ sub_80CBD94: @ 80CBD94
bls _080CBDA0
movs r1, 0
_080CBDA0:
- ldr r0, _080CBDAC @ =gUnknown_83F5D2C
+ ldr r0, _080CBDAC @ =sStarterMon
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
pop {r1}
bx r1
.align 2, 0
-_080CBDAC: .4byte gUnknown_83F5D2C
- thumb_func_end sub_80CBD94
+_080CBDAC: .4byte sStarterMon
+ thumb_func_end GetStarterPokemon
- thumb_func_start sub_80CBDB0
-sub_80CBDB0: @ 80CBDB0
+ thumb_func_start ScrSpecial_GetStarter
+ScrSpecial_GetStarter: @ 80CBDB0
push {lr}
ldr r0, _080CBDC8 @ =0x00004031
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_80CBD94
+ bl GetStarterPokemon
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_080CBDC8: .4byte 0x00004031
- thumb_func_end sub_80CBDB0
+ thumb_func_end ScrSpecial_GetStarter
thumb_func_start sub_80CBDCC
sub_80CBDCC: @ 80CBDCC
@@ -5542,7 +5542,7 @@ sub_80CD098: @ 80CD098
str r3, [sp]
movs r0, 0
movs r3, 0
- bl sub_8006300
+ bl CreateTextCursorSpriteForOakSpeech
ldr r1, _080CD0DC @ =gUnknown_2039A1B
strb r0, [r1]
b _080CD0E8
diff --git a/asm/field_weather.s b/asm/field_weather.s
index 49a1ed95b..416fd90d4 100644
--- a/asm/field_weather.s
+++ b/asm/field_weather.s
@@ -2250,7 +2250,7 @@ _0807AD14:
movs r1, 0x7F
ands r0, r1
strh r0, [r2]
- ldr r1, _0807AD5C @ =gUnknown_825E074
+ ldr r1, _0807AD5C @ =gSineTable
movs r3, 0
ldrsh r0, [r2, r3]
lsls r0, 1
@@ -2278,7 +2278,7 @@ _0807AD54:
strh r0, [r4]
b _0807ADA0
.align 2, 0
-_0807AD5C: .4byte gUnknown_825E074
+_0807AD5C: .4byte gSineTable
_0807AD60: .4byte 0x0000073c
_0807AD64: .4byte 0x0000073e
_0807AD68:
diff --git a/asm/field_weather_effects.s b/asm/field_weather_effects.s
index fd9b2361a..0330bcbaf 100644
--- a/asm/field_weather_effects.s
+++ b/asm/field_weather_effects.s
@@ -1972,7 +1972,7 @@ sub_807C1AC: @ 807C1AC
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x34]
- ldr r1, _0807C224 @ =gUnknown_825E074
+ ldr r1, _0807C224 @ =gSineTable
movs r3, 0x34
ldrsh r0, [r4, r3]
lsls r0, 1
@@ -2020,7 +2020,7 @@ _0807C210:
subs r0, r1
b _0807C23C
.align 2, 0
-_0807C224: .4byte gUnknown_825E074
+_0807C224: .4byte gSineTable
_0807C228: .4byte gSpriteCoordOffsetX
_0807C22C: .4byte 0x000001ff
_0807C230: .4byte 0xffffff00
@@ -4417,7 +4417,7 @@ sub_807D4C4: @ 807D4C4
ldr r2, [r0]
ldr r0, _0807D52C @ =0x00000704
adds r4, r2, r0
- ldr r6, _0807D530 @ =gUnknown_825E074
+ ldr r6, _0807D530 @ =gSineTable
ldr r1, _0807D534 @ =0x00000712
adds r5, r2, r1
ldrh r0, [r5]
@@ -4465,7 +4465,7 @@ sub_807D4C4: @ 807D4C4
.align 2, 0
_0807D528: .4byte gUnknown_83C2BBC
_0807D52C: .4byte 0x00000704
-_0807D530: .4byte gUnknown_825E074
+_0807D530: .4byte gSineTable
_0807D534: .4byte 0x00000712
_0807D538: .4byte gSpriteCoordOffsetX
_0807D53C: .4byte 0x0000070e
@@ -4856,7 +4856,7 @@ SandstormSpriteCallback3: @ 807D81C
_0807D83A:
movs r0, 0x2E
ldrsh r4, [r5, r0]
- ldr r3, _0807D88C @ =gUnknown_825E074
+ ldr r3, _0807D88C @ =gSineTable
movs r2, 0x30
ldrsh r1, [r5, r2]
lsls r0, r1, 1
@@ -4897,7 +4897,7 @@ _0807D886:
pop {r0}
bx r0
.align 2, 0
-_0807D88C: .4byte gUnknown_825E074
+_0807D88C: .4byte gSineTable
thumb_func_end SandstormSpriteCallback3
thumb_func_start Weather11_InitVars
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index 43ec5eede..c74165999 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -508,7 +508,7 @@ _080F21B2:
bl memcpy
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080F2214 @ =gUnknown_8419F54
movs r0, 0
str r0, [sp]
@@ -723,7 +723,7 @@ _080F22F2:
strh r0, [r1]
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r4, r5
ldr r0, _080F239C @ =sub_80F23A0
str r0, [r4]
@@ -1265,7 +1265,7 @@ _080F27AC:
bl sub_80F33DC
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080F27FC @ =gUnknown_84160C8
str r5, [sp]
movs r0, 0x2
@@ -1607,7 +1607,7 @@ sub_80F2AA4: @ 80F2AA4
movs r1, 0x1E
movs r2, 0
movs r3, 0xC
- bl sub_810F558
+ bl CreateWindow_SnapRight_StdPal
movs r0, 0x3
bl Save_LoadGameData
lsls r0, 24
@@ -1888,13 +1888,13 @@ _080F2CB4:
ldrsh r0, [r4, r1]
cmp r0, 0
bgt _080F2D24
- ldr r1, _080F2D20 @ =gUnknown_8415D78
+ ldr r1, _080F2D20 @ =gText_UPDOWNPick_ABUTTONBBUTTONCancel
movs r0, 0x1
str r0, [sp]
adds r0, r5, 0
movs r2, 0
movs r3, 0
- bl sub_810F650
+ bl Menu_PrintHelpSystemUIHeader
b _080F2D34
.align 2, 0
_080F2D08: .4byte 0xffff0000
@@ -1903,15 +1903,15 @@ _080F2D10: .4byte gStringVar1
_080F2D14: .4byte gTasks
_080F2D18: .4byte gStringVar4
_080F2D1C: .4byte gUnknown_84160B4
-_080F2D20: .4byte gUnknown_8415D78
+_080F2D20: .4byte gText_UPDOWNPick_ABUTTONBBUTTONCancel
_080F2D24:
- ldr r1, _080F2D54 @ =gUnknown_8415D60
+ ldr r1, _080F2D54 @ =gText_UPDOWNPick_ABUTTONNext_BBUTTONBack
movs r0, 0x1
str r0, [sp]
adds r0, r5, 0
movs r2, 0
movs r3, 0
- bl sub_810F650
+ bl Menu_PrintHelpSystemUIHeader
_080F2D34:
ldr r0, _080F2D58 @ =gTasks
ldr r1, [sp, 0x14]
@@ -1929,7 +1929,7 @@ _080F2D34:
pop {r0}
bx r0
.align 2, 0
-_080F2D54: .4byte gUnknown_8415D60
+_080F2D54: .4byte gText_UPDOWNPick_ABUTTONNext_BBUTTONBack
_080F2D58: .4byte gTasks
_080F2D5C: .4byte Task_HofPC_PrintMonInfo
thumb_func_end sub_80F2B6C
@@ -2339,13 +2339,13 @@ sub_80F30A4: @ 80F30A4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080F30FC @ =gUnknown_8415D8C
+ ldr r0, _080F30FC @ =gText_ABUTTONExit
movs r1, 0x8
movs r2, 0x1
- bl sub_810F5E8
+ bl PrintTextOnRightSnappedWindow
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080F3100 @ =gUnknown_8416090
movs r0, 0
str r0, [sp]
@@ -2374,7 +2374,7 @@ sub_80F30A4: @ 80F30A4
pop {r0}
bx r0
.align 2, 0
-_080F30FC: .4byte gUnknown_8415D8C
+_080F30FC: .4byte gText_ABUTTONExit
_080F3100: .4byte gUnknown_8416090
_080F3104: .4byte gTasks
_080F3108: .4byte Task_HofPC_ExitOnButtonPress
@@ -3070,7 +3070,7 @@ _080F36B8: .4byte gUnknown_840C39C
thumb_func_start sub_80F36BC
sub_80F36BC: @ 80F36BC
push {lr}
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
bl reset_temp_tile_data_buffers
@@ -3223,8 +3223,8 @@ _080F37C8:
bl CopyBgTilemapBufferToVram
b _080F3854
_080F381E:
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
b _080F3854
_080F3828:
movs r1, 0x82
@@ -3353,7 +3353,7 @@ _080F38EE:
movs r1, 0x3
ands r0, r1
adds r0, 0x8
- ldr r1, _080F392C @ =gUnknown_825E074
+ ldr r1, _080F392C @ =gSineTable
lsls r4, 1
adds r4, r1
movs r2, 0
@@ -3373,7 +3373,7 @@ _080F3926:
pop {r0}
bx r0
.align 2, 0
-_080F392C: .4byte gUnknown_825E074
+_080F392C: .4byte gSineTable
thumb_func_end sub_80F38D8
thumb_func_start sub_80F3930
diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s
index bca296e67..b88a86b47 100644
--- a/asm/help_system_812B1E0.s
+++ b/asm/help_system_812B1E0.s
@@ -16,8 +16,8 @@ sub_812B1E0: @ 812B1E0
_0812B1EC: .4byte gUnknown_203B0EC
thumb_func_end sub_812B1E0
- thumb_func_start sub_812B1F0
-sub_812B1F0: @ 812B1F0
+ thumb_func_start HelpSystem_SetSomeVariable2
+HelpSystem_SetSomeVariable2: @ 812B1F0
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -44,7 +44,7 @@ _0812B218:
bx r0
.align 2, 0
_0812B21C: .4byte gUnknown_203B0EC
- thumb_func_end sub_812B1F0
+ thumb_func_end HelpSystem_SetSomeVariable2
thumb_func_start sub_812B220
sub_812B220: @ 812B220
@@ -240,7 +240,7 @@ sub_812B35C: @ 812B35C
cmp r0, 0
beq _0812B376
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B376:
bl sub_812B2C4
@@ -248,7 +248,7 @@ _0812B376:
cmp r0, 0
beq _0812B388
movs r0, 0x15
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B388:
ldr r0, _0812B3B0 @ =gMapHeader
@@ -268,7 +268,7 @@ _0812B388:
bne _0812B3B8
_0812B3A8:
movs r0, 0xE
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
.align 2, 0
_0812B3B0: .4byte gMapHeader
@@ -279,36 +279,36 @@ _0812B3B8:
cmp r1, r0
bne _0812B3C8
movs r0, 0xF
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B3C8:
bl IsCurMapPokeCenter
cmp r0, 0x1
bne _0812B3D8
movs r0, 0x10
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B3D8:
bl sub_812B25C
cmp r0, 0x1
bne _0812B3E8
movs r0, 0x11
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B3E8:
bl sub_812B26C
cmp r0, 0x1
bne _0812B3F8
movs r0, 0x12
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B3F8:
movs r0, 0x13
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B400:
movs r0, 0x14
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_0812B406:
pop {r0}
bx r0
diff --git a/asm/intro.s b/asm/intro.s
index af5104da3..309b636c8 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -166,7 +166,7 @@ _080EC65E:
movs r0, 0
movs r2, 0
bl load_copyright_graphics
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
@@ -898,7 +898,7 @@ _080ECCF6:
movs r1, 0x10
movs r2, 0x10
movs r3, 0
- bl sub_812E944
+ bl StartBlendTask
b _080ECD36
.align 2, 0
_080ECD14: .4byte 0x00003f44
@@ -907,7 +907,7 @@ _080ECD18:
bl ShowBg
b _080ECD36
_080ECD20:
- bl sub_812E9E4
+ bl IsBlendTaskActive
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -980,7 +980,7 @@ _080ECD9C:
movs r1, 0x10
movs r2, 0x10
movs r3, 0
- bl sub_812E944
+ bl StartBlendTask
strh r4, [r6, 0x8]
strh r5, [r6, 0xA]
strh r4, [r6, 0x12]
@@ -992,7 +992,7 @@ _080ECDC4:
str r0, [r6, 0x14]
b _080ECE70
_080ECDCC:
- bl sub_812E9E4
+ bl IsBlendTaskActive
lsls r0, 24
cmp r0, 0
bne _080ECE96
@@ -1051,10 +1051,10 @@ _080ECE26:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl sub_812E944
+ bl StartBlendTask
b _080ECE70
_080ECE52:
- bl sub_812E9E4
+ bl IsBlendTaskActive
lsls r0, 24
cmp r0, 0
bne _080ECE96
@@ -3369,7 +3369,7 @@ _080EE114:
_080EE11C:
movs r4, 0x6
ldrsh r3, [r5, r4]
- ldr r4, _080EE15C @ =gUnknown_825E074
+ ldr r4, _080EE15C @ =gSineTable
adds r0, r3, 0
adds r0, 0x40
lsls r0, 1
@@ -3400,7 +3400,7 @@ _080EE156:
pop {r0}
bx r0
.align 2, 0
-_080EE15C: .4byte gUnknown_825E074
+_080EE15C: .4byte gSineTable
thumb_func_end sub_80EE024
thumb_func_start sub_80EE160
@@ -3587,7 +3587,7 @@ sub_80EE29C: @ 80EE29C
lsls r1, 16
asrs r1, 20
strh r1, [r5, 0x22]
- ldr r1, _080EE340 @ =gUnknown_825E074
+ ldr r1, _080EE340 @ =gSineTable
lsls r0, 16
asrs r0, 20
adds r0, 0x40
@@ -3646,7 +3646,7 @@ _080EE336:
pop {r0}
bx r0
.align 2, 0
-_080EE340: .4byte gUnknown_825E074
+_080EE340: .4byte gSineTable
_080EE344: .4byte gUnknown_203AB16
_080EE348: .4byte 0x41c64e6d
_080EE34C: .4byte 0x00006073
@@ -4208,7 +4208,7 @@ _080EE740:
lsls r1, 16
asrs r1, 20
strh r1, [r4, 0x24]
- ldr r1, _080EE7B0 @ =gUnknown_825E074
+ ldr r1, _080EE7B0 @ =gSineTable
movs r3, 0x34
ldrsh r0, [r4, r3]
lsls r0, 1
@@ -4253,7 +4253,7 @@ _080EE78C:
strh r0, [r4, 0x3C]
b _080EE818
.align 2, 0
-_080EE7B0: .4byte gUnknown_825E074
+_080EE7B0: .4byte gSineTable
_080EE7B4: .4byte gUnknown_203AB04
_080EE7B8: .4byte gUnknown_203AB08
_080EE7BC: .4byte gUnknown_203AB06
@@ -4585,7 +4585,7 @@ _080EEA08:
lsls r1, 16
asrs r1, 20
strh r1, [r4, 0x24]
- ldr r1, _080EEA48 @ =gUnknown_825E074
+ ldr r1, _080EEA48 @ =gSineTable
lsls r0, 16
asrs r0, 20
lsls r0, 1
@@ -4599,7 +4599,7 @@ _080EEA08:
strh r0, [r4, 0x26]
b _080EEA88
.align 2, 0
-_080EEA48: .4byte gUnknown_825E074
+_080EEA48: .4byte gSineTable
_080EEA4C:
ldrh r0, [r4, 0x32]
lsrs r0, 4
@@ -4775,7 +4775,7 @@ _080EEB84:
asrs r0, 20
negs r1, r0
strh r1, [r4, 0x24]
- ldr r1, _080EEBD4 @ =gUnknown_825E074
+ ldr r1, _080EEBD4 @ =gSineTable
lsls r0, 1
adds r0, r1
movs r3, 0
@@ -4810,7 +4810,7 @@ _080EEBCE:
pop {r0}
bx r0
.align 2, 0
-_080EEBD4: .4byte gUnknown_825E074
+_080EEBD4: .4byte gSineTable
_080EEBD8: .4byte gUnknown_203AB04
_080EEBDC: .4byte gUnknown_203AB08
_080EEBE0: .4byte SpriteCallbackDummy
diff --git a/asm/item.s b/asm/item.s
index 800df5f82..ce20d4f8c 100644
--- a/asm/item.s
+++ b/asm/item.s
@@ -61,7 +61,7 @@ ApplyNewEncryptionKeyToBagItems: @ 8099DE0
sub sp, 0x4
mov r8, r0
movs r1, 0
- ldr r0, _08099E34 @ =gUnknown_203988C
+ ldr r0, _08099E34 @ =gBagPockets
mov r9, r0
_08099DF2:
movs r6, 0
@@ -72,7 +72,7 @@ _08099DF2:
ldrb r0, [r0, 0x4]
cmp r6, r0
bcs _08099E20
- ldr r2, _08099E34 @ =gUnknown_203988C
+ ldr r2, _08099E34 @ =gBagPockets
_08099E04:
adds r4, r5, r2
lsls r1, r6, 2
@@ -99,7 +99,7 @@ _08099E20:
pop {r0}
bx r0
.align 2, 0
-_08099E34: .4byte gUnknown_203988C
+_08099E34: .4byte gBagPockets
thumb_func_end ApplyNewEncryptionKeyToBagItems
thumb_func_start ApplyNewEncryptionKeyToBagItems_
@@ -112,7 +112,7 @@ ApplyNewEncryptionKeyToBagItems_: @ 8099E38
thumb_func_start sub_8099E44
sub_8099E44: @ 8099E44
- ldr r1, _08099E84 @ =gUnknown_203988C
+ ldr r1, _08099E84 @ =gBagPockets
ldr r0, _08099E88 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r3, 0xC4
@@ -144,7 +144,7 @@ sub_8099E44: @ 8099E44
strb r0, [r1]
bx lr
.align 2, 0
-_08099E84: .4byte gUnknown_203988C
+_08099E84: .4byte gBagPockets
_08099E88: .4byte gSaveBlock1Ptr
_08099E8C: .4byte 0x0000054c
thumb_func_end sub_8099E44
@@ -184,7 +184,7 @@ sub_8099ECC: @ 8099ECC
push {lr}
lsls r0, 24
movs r2, 0
- ldr r1, _08099EF0 @ =gUnknown_203988C
+ ldr r1, _08099EF0 @ =gBagPockets
lsrs r0, 21
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -201,7 +201,7 @@ _08099EE0:
asrs r0, 24
b _08099F02
.align 2, 0
-_08099EF0: .4byte gUnknown_203988C
+_08099EF0: .4byte gBagPockets
_08099EF4:
adds r0, r2, 0x1
lsls r0, 16
@@ -221,7 +221,7 @@ sub_8099F08: @ 8099F08
push {lr}
lsls r0, 24
movs r2, 0
- ldr r1, _08099F2C @ =gUnknown_203988C
+ ldr r1, _08099F2C @ =gBagPockets
lsrs r0, 21
subs r0, 0x8
adds r0, r1
@@ -238,7 +238,7 @@ _08099F1E:
movs r0, 0x1
b _08099F3C
.align 2, 0
-_08099F2C: .4byte gUnknown_203988C
+_08099F2C: .4byte gBagPockets
_08099F30:
adds r0, r2, 0x1
lsls r0, 24
@@ -274,7 +274,7 @@ _08099F5C:
subs r0, 0x1
lsls r0, 24
movs r2, 0
- ldr r1, _08099F94 @ =gUnknown_203988C
+ ldr r1, _08099F94 @ =gBagPockets
lsrs r0, 21
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -296,7 +296,7 @@ _08099F76:
bcs _08099F58
b _08099FA4
.align 2, 0
-_08099F94: .4byte gUnknown_203988C
+_08099F94: .4byte gBagPockets
_08099F98:
adds r0, r2, 0x1
lsls r0, 24
@@ -378,7 +378,7 @@ CheckBagHasSpace: @ 809A000
lsls r0, 24
lsrs r5, r0, 24
movs r2, 0
- ldr r1, _0809A054 @ =gUnknown_203988C
+ ldr r1, _0809A054 @ =gBagPockets
lsls r0, r5, 3
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -404,7 +404,7 @@ _0809A050:
movs r0, 0
b _0809A07C
.align 2, 0
-_0809A054: .4byte gUnknown_203988C
+_0809A054: .4byte gBagPockets
_0809A058: .4byte 0x000003e7
_0809A05C:
adds r0, r2, 0x1
@@ -453,7 +453,7 @@ _0809A0A2:
lsls r0, 24
lsrs r7, r0, 24
movs r2, 0
- ldr r1, _0809A0E0 @ =gUnknown_203988C
+ ldr r1, _0809A0E0 @ =gBagPockets
lsls r0, r7, 3
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -478,7 +478,7 @@ _0809A0BE:
ble _0809A1B8
b _0809A1CA
.align 2, 0
-_0809A0E0: .4byte gUnknown_203988C
+_0809A0E0: .4byte gBagPockets
_0809A0E4: .4byte 0x000003e7
_0809A0E8:
adds r0, r2, 0x1
@@ -506,7 +506,7 @@ _0809A0F4:
negs r0, r0
cmp r1, r0
beq _0809A1CA
- ldr r2, _0809A1AC @ =gUnknown_203988C
+ ldr r2, _0809A1AC @ =gBagPockets
ldr r0, [r2, 0x8]
lsls r1, 2
adds r0, r1, r0
@@ -534,7 +534,7 @@ _0809A132:
negs r0, r0
cmp r1, r0
beq _0809A1CA
- ldr r2, _0809A1AC @ =gUnknown_203988C
+ ldr r2, _0809A1AC @ =gBagPockets
ldr r0, [r2, 0x8]
lsls r1, 2
adds r0, r1, r0
@@ -561,7 +561,7 @@ _0809A180:
negs r0, r0
cmp r2, r0
beq _0809A1CA
- ldr r0, _0809A1AC @ =gUnknown_203988C
+ ldr r0, _0809A1AC @ =gBagPockets
lsls r1, r7, 3
adds r1, r0
ldr r0, [r1]
@@ -574,7 +574,7 @@ _0809A180:
mov r1, r8
b _0809A1C2
.align 2, 0
-_0809A1AC: .4byte gUnknown_203988C
+_0809A1AC: .4byte gBagPockets
_0809A1B0: .4byte 0x0000016d
_0809A1B4: .4byte 0x00000847
_0809A1B8:
@@ -616,7 +616,7 @@ RemoveBagItem: @ 809A1D8
subs r0, 0x1
lsls r0, 24
movs r2, 0
- ldr r1, _0809A248 @ =gUnknown_203988C
+ ldr r1, _0809A248 @ =gBagPockets
lsrs r0, 21
adds r0, r1
ldrb r1, [r0, 0x4]
@@ -653,7 +653,7 @@ _0809A242:
movs r0, 0x1
b _0809A25A
.align 2, 0
-_0809A248: .4byte gUnknown_203988C
+_0809A248: .4byte gBagPockets
_0809A24C:
adds r0, r2, 0x1
lsls r0, 24
@@ -745,7 +745,7 @@ _0809A2D8: .4byte gSaveBlock1Ptr
sub_809A2DC: @ 809A2DC
push {r4,r5,lr}
movs r4, 0
- ldr r5, _0809A300 @ =gUnknown_203988C
+ ldr r5, _0809A300 @ =gBagPockets
_0809A2E2:
lsls r1, r4, 3
adds r1, r5
@@ -761,7 +761,7 @@ _0809A2E2:
pop {r0}
bx r0
.align 2, 0
-_0809A300: .4byte gUnknown_203988C
+_0809A300: .4byte gBagPockets
thumb_func_end sub_809A2DC
thumb_func_start sub_809A304
@@ -1404,11 +1404,11 @@ _0809A786:
bx r0
thumb_func_end sub_809A720
- thumb_func_start sub_809A798
-sub_809A798: @ 809A798
+ thumb_func_start BagGetItemIdByPocketPosition
+BagGetItemIdByPocketPosition: @ 809A798
lsls r0, 24
lsls r1, 16
- ldr r2, _0809A7B0 @ =gUnknown_203988C
+ ldr r2, _0809A7B0 @ =gBagPockets
lsrs r0, 21
subs r0, 0x8
adds r0, r2
@@ -1418,15 +1418,15 @@ sub_809A798: @ 809A798
ldrh r0, [r1]
bx lr
.align 2, 0
-_0809A7B0: .4byte gUnknown_203988C
- thumb_func_end sub_809A798
+_0809A7B0: .4byte gBagPockets
+ thumb_func_end BagGetItemIdByPocketPosition
- thumb_func_start sub_809A7B4
-sub_809A7B4: @ 809A7B4
+ thumb_func_start BagGetQuantityByPocketPosition
+BagGetQuantityByPocketPosition: @ 809A7B4
push {lr}
lsls r0, 24
lsls r1, 16
- ldr r2, _0809A7D8 @ =gUnknown_203988C
+ ldr r2, _0809A7D8 @ =gBagPockets
lsrs r0, 21
subs r0, 0x8
adds r0, r2
@@ -1440,8 +1440,8 @@ sub_809A7B4: @ 809A7B4
pop {r1}
bx r1
.align 2, 0
-_0809A7D8: .4byte gUnknown_203988C
- thumb_func_end sub_809A7B4
+_0809A7D8: .4byte gBagPockets
+ thumb_func_end BagGetQuantityByPocketPosition
thumb_func_start sub_809A7DC
sub_809A7DC: @ 809A7DC
@@ -1577,12 +1577,12 @@ ItemId_GetItem: @ 809A8BC
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
- ldr r1, _0809A8D8 @ =gUnknown_83DB028
+ ldr r1, _0809A8D8 @ =gItems
adds r0, r1
pop {r1}
bx r1
.align 2, 0
-_0809A8D8: .4byte gUnknown_83DB028
+_0809A8D8: .4byte gItems
thumb_func_end ItemId_GetItem
thumb_func_start itemid_get_number
@@ -1590,7 +1590,7 @@ itemid_get_number: @ 809A8DC
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A8FC @ =gUnknown_83DB028
+ ldr r4, _0809A8FC @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1602,7 +1602,7 @@ itemid_get_number: @ 809A8DC
pop {r1}
bx r1
.align 2, 0
-_0809A8FC: .4byte gUnknown_83DB028
+_0809A8FC: .4byte gItems
thumb_func_end itemid_get_number
thumb_func_start itemid_get_market_price
@@ -1610,7 +1610,7 @@ itemid_get_market_price: @ 809A900
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A920 @ =gUnknown_83DB028
+ ldr r4, _0809A920 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1622,7 +1622,7 @@ itemid_get_market_price: @ 809A900
pop {r1}
bx r1
.align 2, 0
-_0809A920: .4byte gUnknown_83DB028
+_0809A920: .4byte gItems
thumb_func_end itemid_get_market_price
thumb_func_start ItemId_GetHoldEffect
@@ -1630,7 +1630,7 @@ ItemId_GetHoldEffect: @ 809A924
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A944 @ =gUnknown_83DB028
+ ldr r4, _0809A944 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1642,7 +1642,7 @@ ItemId_GetHoldEffect: @ 809A924
pop {r1}
bx r1
.align 2, 0
-_0809A944: .4byte gUnknown_83DB028
+_0809A944: .4byte gItems
thumb_func_end ItemId_GetHoldEffect
thumb_func_start ItemId_GetHoldEffectParam
@@ -1650,7 +1650,7 @@ ItemId_GetHoldEffectParam: @ 809A948
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A968 @ =gUnknown_83DB028
+ ldr r4, _0809A968 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1662,7 +1662,7 @@ ItemId_GetHoldEffectParam: @ 809A948
pop {r1}
bx r1
.align 2, 0
-_0809A968: .4byte gUnknown_83DB028
+_0809A968: .4byte gItems
thumb_func_end ItemId_GetHoldEffectParam
thumb_func_start ItemId_GetDescription
@@ -1670,7 +1670,7 @@ ItemId_GetDescription: @ 809A96C
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A98C @ =gUnknown_83DB028
+ ldr r4, _0809A98C @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1683,7 +1683,7 @@ ItemId_GetDescription: @ 809A96C
pop {r1}
bx r1
.align 2, 0
-_0809A98C: .4byte gUnknown_83DB028
+_0809A98C: .4byte gItems
thumb_func_end ItemId_GetDescription
thumb_func_start itemid_is_unique
@@ -1691,7 +1691,7 @@ itemid_is_unique: @ 809A990
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A9B0 @ =gUnknown_83DB028
+ ldr r4, _0809A9B0 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1703,7 +1703,7 @@ itemid_is_unique: @ 809A990
pop {r1}
bx r1
.align 2, 0
-_0809A9B0: .4byte gUnknown_83DB028
+_0809A9B0: .4byte gItems
thumb_func_end itemid_is_unique
thumb_func_start itemid_get_x19
@@ -1711,7 +1711,7 @@ itemid_get_x19: @ 809A9B4
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A9D4 @ =gUnknown_83DB028
+ ldr r4, _0809A9D4 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1723,7 +1723,7 @@ itemid_get_x19: @ 809A9B4
pop {r1}
bx r1
.align 2, 0
-_0809A9D4: .4byte gUnknown_83DB028
+_0809A9D4: .4byte gItems
thumb_func_end itemid_get_x19
thumb_func_start ItemId_GetPocket
@@ -1731,7 +1731,7 @@ ItemId_GetPocket: @ 809A9D8
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809A9F8 @ =gUnknown_83DB028
+ ldr r4, _0809A9F8 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1743,7 +1743,7 @@ ItemId_GetPocket: @ 809A9D8
pop {r1}
bx r1
.align 2, 0
-_0809A9F8: .4byte gUnknown_83DB028
+_0809A9F8: .4byte gItems
thumb_func_end ItemId_GetPocket
thumb_func_start ItemId_GetType
@@ -1751,7 +1751,7 @@ ItemId_GetType: @ 809A9FC
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AA1C @ =gUnknown_83DB028
+ ldr r4, _0809AA1C @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1763,7 +1763,7 @@ ItemId_GetType: @ 809A9FC
pop {r1}
bx r1
.align 2, 0
-_0809AA1C: .4byte gUnknown_83DB028
+_0809AA1C: .4byte gItems
thumb_func_end ItemId_GetType
thumb_func_start ItemId_GetFieldFunc
@@ -1771,7 +1771,7 @@ ItemId_GetFieldFunc: @ 809AA20
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AA40 @ =gUnknown_83DB028
+ ldr r4, _0809AA40 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1784,7 +1784,7 @@ ItemId_GetFieldFunc: @ 809AA20
pop {r1}
bx r1
.align 2, 0
-_0809AA40: .4byte gUnknown_83DB028
+_0809AA40: .4byte gItems
thumb_func_end ItemId_GetFieldFunc
thumb_func_start ItemId_GetBattleUsage
@@ -1792,7 +1792,7 @@ ItemId_GetBattleUsage: @ 809AA44
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AA64 @ =gUnknown_83DB028
+ ldr r4, _0809AA64 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1805,7 +1805,7 @@ ItemId_GetBattleUsage: @ 809AA44
pop {r1}
bx r1
.align 2, 0
-_0809AA64: .4byte gUnknown_83DB028
+_0809AA64: .4byte gItems
thumb_func_end ItemId_GetBattleUsage
thumb_func_start ItemId_GetBattleFunc
@@ -1813,7 +1813,7 @@ ItemId_GetBattleFunc: @ 809AA68
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AA88 @ =gUnknown_83DB028
+ ldr r4, _0809AA88 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1826,7 +1826,7 @@ ItemId_GetBattleFunc: @ 809AA68
pop {r1}
bx r1
.align 2, 0
-_0809AA88: .4byte gUnknown_83DB028
+_0809AA88: .4byte gItems
thumb_func_end ItemId_GetBattleFunc
thumb_func_start ItemId_GetSecondaryId
@@ -1834,7 +1834,7 @@ ItemId_GetSecondaryId: @ 809AA8C
push {r4,lr}
lsls r0, 16
lsrs r0, 16
- ldr r4, _0809AAAC @ =gUnknown_83DB028
+ ldr r4, _0809AAAC @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
@@ -1847,7 +1847,7 @@ ItemId_GetSecondaryId: @ 809AA8C
pop {r1}
bx r1
.align 2, 0
-_0809AAAC: .4byte gUnknown_83DB028
+_0809AAAC: .4byte gItems
thumb_func_end ItemId_GetSecondaryId
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index d08021d15..01c5f6e4c 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -257,7 +257,7 @@ _08107FB0:
bl clear_scheduled_bg_copies_to_vram
b _08108104
_08107FBA:
- bl remove_some_task
+ bl ScanlineEffect_Stop
b _08108104
_08107FC0:
bl FreeAllSpritePalettes
@@ -350,7 +350,7 @@ _0810806E:
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r0, _081080B0 @ =gUnknown_3005E70
+ ldr r0, _081080B0 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r1, r4, 0
@@ -375,7 +375,7 @@ _0810806E:
b _08108104
.align 2, 0
_081080AC: .4byte gUnknown_203ACFC
-_081080B0: .4byte gUnknown_3005E70
+_081080B0: .4byte gMultiuseListMenuTemplate
_081080B4: .4byte gTasks
_081080B8:
ldr r0, _081080C4 @ =gUnknown_203ACFC
@@ -400,13 +400,13 @@ _081080DE:
cmp r0, 0x3
bne _081080F4
movs r0, 0x1D
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _081080FA
.align 2, 0
_081080F0: .4byte gUnknown_203ACFC
_081080F4:
movs r0, 0x9
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_081080FA:
ldr r2, _08108114 @ =gPaletteFade
ldrb r1, [r2, 0x8]
@@ -817,7 +817,7 @@ sub_810842C: @ 810842C
lsls r0, 24
lsrs r7, r0, 24
lsls r1, r7, 3
- ldr r0, _0810853C @ =gUnknown_203988C
+ ldr r0, _0810853C @ =gBagPockets
adds r1, r0
mov r8, r1
movs r6, 0
@@ -881,7 +881,7 @@ _0810848C:
adds r0, r4
str r0, [r1]
str r6, [r1, 0x4]
- ldr r3, _08108554 @ =gUnknown_3005E70
+ ldr r3, _08108554 @ =gMultiuseListMenuTemplate
str r2, [r3]
ldr r0, _08108540 @ =gUnknown_203AD10
ldr r2, [r0]
@@ -946,13 +946,13 @@ _0810848C:
pop {r0}
bx r0
.align 2, 0
-_0810853C: .4byte gUnknown_203988C
+_0810853C: .4byte gBagPockets
_08108540: .4byte gUnknown_203AD10
_08108544: .4byte gUnknown_203AD1C
_08108548: .4byte gUnknown_203AD18
_0810854C: .4byte gUnknown_8452F60
_08108550: .4byte gFameCheckerText_Cancel
-_08108554: .4byte gUnknown_3005E70
+_08108554: .4byte gMultiuseListMenuTemplate
_08108558: .4byte sub_81085A4
_0810855C: .4byte sub_8108654
thumb_func_end sub_810842C
@@ -1029,7 +1029,7 @@ _081085BA:
lsrs r0, 24
lsls r1, r5, 16
lsrs r1, 16
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, [r4]
@@ -1129,7 +1129,7 @@ _08108690:
lsls r4, 16
lsrs r4, 16
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r7, r0, 16
ldrb r0, [r5, 0x6]
@@ -1137,7 +1137,7 @@ _08108690:
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
ldrh r0, [r5, 0x6]
@@ -1155,7 +1155,7 @@ _08108690:
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _08108724 @ =gStringVar4
- ldr r1, _08108728 @ =gUnknown_84162B9
+ ldr r1, _08108728 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
str r6, [sp]
@@ -1176,7 +1176,7 @@ _08108718: .4byte gUnknown_203AD10
_0810871C: .4byte gUnknown_203ACFC
_08108720: .4byte gStringVar1
_08108724: .4byte gStringVar4
-_08108728: .4byte gUnknown_84162B9
+_08108728: .4byte gText_TimesStrVar1
_0810872C:
ldr r0, _08108760 @ =gSaveBlock1Ptr
ldr r0, [r0]
@@ -1317,7 +1317,7 @@ sub_8108818: @ 8108818
lsrs r0, 24
lsls r1, r2, 16
lsrs r1, 16
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl ItemId_GetDescription
@@ -1802,7 +1802,7 @@ sub_8108B8C: @ 8108B8C
adds r3, r4, 0
adds r3, 0x8
adds r2, r3
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _08108BF0 @ =gUnknown_203AD10
ldr r0, [r0]
ldr r0, [r0]
@@ -2065,7 +2065,7 @@ sub_8108DC8: @ 8108DC8
lsls r0, 24
lsrs r5, r0, 24
lsls r1, r5, 3
- ldr r0, _08108E3C @ =gUnknown_203988C
+ ldr r0, _08108E3C @ =gBagPockets
adds r4, r1, r0
ldr r0, [r4]
ldrb r1, [r4, 0x4]
@@ -2120,7 +2120,7 @@ _08108E1C:
strb r1, [r0]
b _08108E4C
.align 2, 0
-_08108E3C: .4byte gUnknown_203988C
+_08108E3C: .4byte gBagPockets
_08108E40: .4byte gUnknown_203AD10
_08108E44:
adds r0, r1, 0
@@ -2177,7 +2177,7 @@ sub_8108E70: @ 8108E70
strh r0, [r4, 0x14]
movs r1, 0x11
bl FillWindowPixelBuffer
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x14]
@@ -2422,14 +2422,14 @@ _08109084:
lsls r4, 16
lsrs r4, 16
adds r1, r4, 0
- bl sub_809A7B4
+ bl BagGetQuantityByPocketPosition
strh r0, [r7, 0x4]
ldrb r0, [r5, 0x6]
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
ldr r1, _081090D0 @ =gSpecialVar_ItemId
strh r0, [r1]
ldr r1, _081090D4 @ =gTasks
@@ -2617,7 +2617,7 @@ sub_81091D0: @ 81091D0
adds r1, r2, r1
adds r3, 0x8
adds r2, r3
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, _08109290 @ =gUnknown_203AD10
@@ -2773,7 +2773,7 @@ _08109358:
bl sub_81087EC
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _081093B4 @ =gUnknown_3005E70
+ ldr r0, _081093B4 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r1, r4, 0
@@ -2803,7 +2803,7 @@ _081093AA:
bx r0
.align 2, 0
_081093B0: .4byte gUnknown_203ACFC
-_081093B4: .4byte gUnknown_3005E70
+_081093B4: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_8109298
thumb_func_start sub_81093B8
@@ -2850,7 +2850,7 @@ sub_81093B8: @ 81093B8
lsrs r0, 24
mov r2, r8
ldrh r1, [r2, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl ItemId_GetItem
@@ -3063,7 +3063,7 @@ _081095DA:
.align 2, 0
_081095E4: .4byte gTasks+0x8
_081095E8:
- ldr r1, _0810966C @ =gUnknown_203988C
+ ldr r1, _0810966C @ =gBagPockets
ldr r4, _08109670 @ =gUnknown_203ACFC
ldrh r0, [r4, 0x6]
lsls r0, 3
@@ -3082,7 +3082,7 @@ _081095E8:
adds r7, r4, 0
adds r7, 0x8
adds r2, r7
- bl sub_810713C
+ bl DestroyListMenu
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r5
@@ -3096,7 +3096,7 @@ _081095E8:
_08109628:
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _08109674 @ =gUnknown_3005E70
+ ldr r0, _08109674 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
mov r3, r8
@@ -3125,9 +3125,9 @@ _0810965C:
pop {r0}
bx r0
.align 2, 0
-_0810966C: .4byte gUnknown_203988C
+_0810966C: .4byte gBagPockets
_08109670: .4byte gUnknown_203ACFC
-_08109674: .4byte gUnknown_3005E70
+_08109674: .4byte gMultiuseListMenuTemplate
_08109678: .4byte sub_8108F0C
thumb_func_end sub_81095AC
@@ -3160,7 +3160,7 @@ sub_810967C: @ 810967C
adds r7, r5, 0
adds r7, 0x8
adds r2, r7
- bl sub_810713C
+ bl DestroyListMenu
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r4
@@ -3174,7 +3174,7 @@ sub_810967C: @ 810967C
_081096CA:
ldrb r0, [r5, 0x6]
bl sub_810842C
- ldr r0, _08109714 @ =gUnknown_3005E70
+ ldr r0, _08109714 @ =gMultiuseListMenuTemplate
ldrh r2, [r5, 0x6]
lsls r2, 1
mov r3, r9
@@ -3204,7 +3204,7 @@ _081096CA:
.align 2, 0
_0810970C: .4byte gTasks+0x8
_08109710: .4byte gUnknown_203ACFC
-_08109714: .4byte gUnknown_3005E70
+_08109714: .4byte gMultiuseListMenuTemplate
_08109718: .4byte sub_8108F0C
thumb_func_end sub_810967C
@@ -3232,7 +3232,7 @@ sub_810971C: @ 810971C
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, _081097D8 @ =gStringVar1
@@ -3267,7 +3267,7 @@ sub_810971C: @ 810971C
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
- ldr r1, _081097E0 @ =gUnknown_84162B9
+ ldr r1, _081097E0 @ =gText_TimesStrVar1
mov r0, r9
bl StringExpandPlaceholders
movs r0, 0xA
@@ -3295,7 +3295,7 @@ sub_810971C: @ 810971C
_081097D4: .4byte gUnknown_203ACFC
_081097D8: .4byte gStringVar1
_081097DC: .4byte gStringVar4
-_081097E0: .4byte gUnknown_84162B9
+_081097E0: .4byte gText_TimesStrVar1
thumb_func_end sub_810971C
thumb_func_start sub_81097E4
@@ -3324,7 +3324,7 @@ sub_81097E4: @ 81097E4
adds r3, r5, 0
bl ConvertIntToDecimalStringN
ldr r4, _0810984C @ =gStringVar4
- ldr r1, _08109850 @ =gUnknown_84162B9
+ ldr r1, _08109850 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -3347,7 +3347,7 @@ sub_81097E4: @ 81097E4
.align 2, 0
_08109848: .4byte gStringVar1
_0810984C: .4byte gStringVar4
-_08109850: .4byte gUnknown_84162B9
+_08109850: .4byte gText_TimesStrVar1
thumb_func_end sub_81097E4
thumb_func_start sub_8109854
@@ -3715,7 +3715,7 @@ _08109AD4:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x6
movs r1, 0
bl sub_810B9DC
@@ -4121,7 +4121,7 @@ sub_8109EA8: @ 8109EA8
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
ldr r1, _08109F30 @ =gStringVar1
@@ -4213,14 +4213,14 @@ _08109F6E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
bl sub_81089F4
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _08109FFC @ =gUnknown_3005E70
+ ldr r0, _08109FFC @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -4251,7 +4251,7 @@ _08109FEC: .4byte gTasks+0x8
_08109FF0: .4byte gMain
_08109FF4: .4byte gSpecialVar_ItemId
_08109FF8: .4byte gUnknown_203ACFC
-_08109FFC: .4byte gUnknown_3005E70
+_08109FFC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_8109F44
thumb_func_start sub_810A000
@@ -4273,7 +4273,7 @@ sub_810A000: @ 810A000
lsls r0, 24
lsrs r0, 24
ldrh r1, [r7, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _0810A048 @ =gSaveBlock1Ptr
@@ -4304,10 +4304,10 @@ _0810A052:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810A0A4 @ =gUnknown_3005E70
+ ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -4330,7 +4330,7 @@ _0810A052:
bx r0
.align 2, 0
_0810A0A0: .4byte gUnknown_203ACFC
-_0810A0A4: .4byte gUnknown_3005E70
+_0810A0A4: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810A000
thumb_func_start sub_810A0A8
@@ -4353,7 +4353,7 @@ sub_810A0A8: @ 810A0A8
lsls r0, 24
lsrs r0, 24
ldrh r1, [r1, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r5, r0, 16
movs r0, 0xA
@@ -4427,14 +4427,14 @@ sub_810A170: @ 810A170
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _0810A184 @ =gUnknown_841632A
+ ldr r2, _0810A184 @ =gText_ThereIsNoPokemon
ldr r3, _0810A188 @ =sub_810A1D0
movs r1, 0x2
bl sub_8108E70
pop {r0}
bx r0
.align 2, 0
-_0810A184: .4byte gUnknown_841632A
+_0810A184: .4byte gText_ThereIsNoPokemon
_0810A188: .4byte sub_810A1D0
thumb_func_end sub_810A170
@@ -4449,7 +4449,7 @@ sub_810A18C: @ 810A18C
ldr r1, _0810A1C0 @ =gStringVar1
bl CopyItemName
ldr r5, _0810A1C4 @ =gStringVar4
- ldr r1, _0810A1C8 @ =gUnknown_841635E
+ ldr r1, _0810A1C8 @ =gText_ItemCantBeHeld
adds r0, r5, 0
bl StringExpandPlaceholders
ldr r3, _0810A1CC @ =sub_810A1D0
@@ -4464,7 +4464,7 @@ sub_810A18C: @ 810A18C
_0810A1BC: .4byte gSpecialVar_ItemId
_0810A1C0: .4byte gStringVar1
_0810A1C4: .4byte gStringVar4
-_0810A1C8: .4byte gUnknown_841635E
+_0810A1C8: .4byte gText_ItemCantBeHeld
_0810A1CC: .4byte sub_810A1D0
thumb_func_end sub_810A18C
@@ -4519,14 +4519,14 @@ sub_810A1F8: @ 810A1F8
adds r3, r4
mov r9, r3
add r2, r9
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
bl sub_81089F4
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810A284 @ =gUnknown_3005E70
+ ldr r0, _0810A284 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r6, r2, r6
@@ -4553,7 +4553,7 @@ sub_810A1F8: @ 810A1F8
.align 2, 0
_0810A27C: .4byte gTasks+0x8
_0810A280: .4byte gUnknown_203ACFC
-_0810A284: .4byte gUnknown_3005E70
+_0810A284: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810A1F8
thumb_func_start sub_810A288
@@ -4684,7 +4684,7 @@ sub_810A370: @ 810A370
lsls r0, 24
lsrs r0, 24
ldrh r1, [r1, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
adds r6, r4, 0
@@ -4763,7 +4763,7 @@ sub_810A434: @ 810A434
ldr r1, _0810A444 @ =sub_810A45C
movs r0, 0x1
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -4812,7 +4812,7 @@ sub_810A468: @ 810A468
lsls r0, 24
lsrs r0, 24
ldrh r1, [r1, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r4, r0, 16
adds r6, r4, 0
@@ -4835,7 +4835,7 @@ _0810A4BC: .4byte gUnknown_841630F
_0810A4C0: .4byte sub_810A1D0
_0810A4C4:
movs r0, 0xB6
- lsls r0, 1
+ lsls r0, 1 @ ITEM_TM_CASE
cmp r4, r0
bne _0810A4D4
ldr r0, _0810A4D0 @ =sub_810A52C
@@ -4843,7 +4843,7 @@ _0810A4C4:
.align 2, 0
_0810A4D0: .4byte sub_810A52C
_0810A4D4:
- ldr r0, _0810A4E8 @ =0x0000016d
+ ldr r0, _0810A4E8 @ =0x0000016d @ ITEM_BERRY_POUCH
cmp r4, r0
bne _0810A4F0
ldr r0, _0810A4EC @ =sub_810A540
@@ -4892,7 +4892,7 @@ sub_810A52C: @ 810A52C
ldr r1, _0810A53C @ =sub_810A554
movs r0, 0x3
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -4971,7 +4971,7 @@ _0810A5B4:
ldr r1, _0810A5E8 @ =gStringVar1
bl CopyItemName
ldr r4, _0810A5EC @ =gStringVar4
- ldr r1, _0810A5F0 @ =gUnknown_84168F1
+ ldr r1, _0810A5F0 @ =gText_OhNoICantBuyThat
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -4986,7 +4986,7 @@ _0810A5B4:
.align 2, 0
_0810A5E8: .4byte gStringVar1
_0810A5EC: .4byte gStringVar4
-_0810A5F0: .4byte gUnknown_84168F1
+_0810A5F0: .4byte gText_OhNoICantBuyThat
_0810A5F4: .4byte sub_810A1F8
_0810A5F8:
movs r0, 0x1
@@ -5009,7 +5009,7 @@ _0810A618:
ldr r1, _0810A644 @ =gStringVar1
bl CopyItemName
ldr r4, _0810A648 @ =gStringVar4
- ldr r1, _0810A64C @ =gUnknown_8416911
+ ldr r1, _0810A64C @ =gText_HowManyWouldYouLikeToSell
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -5027,7 +5027,7 @@ _0810A63E:
.align 2, 0
_0810A644: .4byte gStringVar1
_0810A648: .4byte gStringVar4
-_0810A64C: .4byte gUnknown_8416911
+_0810A64C: .4byte gText_HowManyWouldYouLikeToSell
_0810A650: .4byte sub_810A770
thumb_func_end sub_810A568
@@ -5037,7 +5037,7 @@ sub_810A654: @ 810A654
ldr r1, _0810A664 @ =sub_810A67C
movs r0, 0x2
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -5088,7 +5088,7 @@ sub_810A690: @ 810A690
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5102,7 +5102,7 @@ sub_810A690: @ 810A690
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0810A700 @ =gStringVar4
- ldr r1, _0810A704 @ =gUnknown_8416936
+ ldr r1, _0810A704 @ =gText_ICanPayThisMuch_WouldThatBeOkay
adds r0, r4, 0
bl StringExpandPlaceholders
bl sub_80BF8E4
@@ -5121,7 +5121,7 @@ _0810A6F4: .4byte gTasks+0x8
_0810A6F8: .4byte gStringVar3
_0810A6FC: .4byte gUnknown_203ACFC
_0810A700: .4byte gStringVar4
-_0810A704: .4byte gUnknown_8416936
+_0810A704: .4byte gText_ICanPayThisMuch_WouldThatBeOkay
_0810A708: .4byte sub_810A70C
thumb_func_end sub_810A690
@@ -5202,7 +5202,7 @@ sub_810A770: @ 810A770
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r6, _0810A824 @ =gStringVar4
- ldr r1, _0810A828 @ =gUnknown_84162B9
+ ldr r1, _0810A828 @ =gText_TimesStrVar1
adds r0, r6, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -5226,7 +5226,7 @@ sub_810A770: @ 810A770
lsrs r0, 24
mov r3, r9
ldrh r1, [r3, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5256,7 +5256,7 @@ sub_810A770: @ 810A770
_0810A81C: .4byte gTasks+0x8
_0810A820: .4byte gStringVar1
_0810A824: .4byte gStringVar4
-_0810A828: .4byte gUnknown_84162B9
+_0810A828: .4byte gText_TimesStrVar1
_0810A82C: .4byte gUnknown_203ACFC
_0810A830: .4byte sub_810A85C
thumb_func_end sub_810A770
@@ -5311,7 +5311,7 @@ sub_810A85C: @ 810A85C
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5405,7 +5405,7 @@ sub_810A940: @ 810A940
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
- bl sub_809A798
+ bl BagGetItemIdByPocketPosition
lsls r0, 16
lsrs r0, 16
bl itemid_get_market_price
@@ -5419,7 +5419,7 @@ sub_810A940: @ 810A940
movs r3, 0x6
bl ConvertIntToDecimalStringN
ldr r4, _0810A9C8 @ =gStringVar4
- ldr r1, _0810A9CC @ =gUnknown_8416959
+ ldr r1, _0810A9CC @ =gText_TurnedOverItemsWorthYen
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r3, _0810A9D0 @ =sub_810A9D4
@@ -5437,7 +5437,7 @@ _0810A9BC: .4byte gStringVar1
_0810A9C0: .4byte gStringVar3
_0810A9C4: .4byte gUnknown_203ACFC
_0810A9C8: .4byte gStringVar4
-_0810A9CC: .4byte gUnknown_8416959
+_0810A9CC: .4byte gText_TurnedOverItemsWorthYen
_0810A9D0: .4byte sub_810A9D4
thumb_func_end sub_810A940
@@ -5497,7 +5497,7 @@ sub_810A9D4: @ 810A9D4
adds r3, r4
mov r9, r3
add r2, r9
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@@ -5512,7 +5512,7 @@ sub_810A9D4: @ 810A9D4
strb r0, [r2, 0x5]
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810AAEC @ =gUnknown_3005E70
+ ldr r0, _0810AAEC @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -5563,7 +5563,7 @@ _0810AADC: .4byte gSpecialVar_ItemId
_0810AAE0: .4byte gSaveBlock1Ptr
_0810AAE4: .4byte gUnknown_203ACFC
_0810AAE8: .4byte gUnknown_203AD10
-_0810AAEC: .4byte gUnknown_3005E70
+_0810AAEC: .4byte gMultiuseListMenuTemplate
_0810AAF0: .4byte sub_810AAF4
thumb_func_end sub_810A9D4
@@ -6212,7 +6212,7 @@ _0810B01C:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6342,11 +6342,11 @@ sub_810B108: @ 810B108
beq _0810B160
cmp r4, 0x8
beq _0810B16C
- ldr r2, _0810B15C @ =sub_815ABFC
+ ldr r2, _0810B15C @ =CB2_ReturnToTeachyTV
adds r0, r4, 0
b _0810B170
.align 2, 0
-_0810B15C: .4byte sub_815ABFC
+_0810B15C: .4byte CB2_ReturnToTeachyTV
_0810B160:
ldr r2, _0810B168 @ =sub_8030AEC
movs r0, 0x7
@@ -6386,7 +6386,7 @@ _0810B19C:
bl sub_815AC20
ldr r0, _0810B1C4 @ =gUnknown_203AD10
ldr r1, [r0]
- ldr r0, _0810B1C8 @ =sub_815ABFC
+ ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV
str r0, [r1]
ldr r1, _0810B1CC @ =gTasks
lsls r0, r4, 2
@@ -6402,7 +6402,7 @@ _0810B1BC:
bx r1
.align 2, 0
_0810B1C4: .4byte gUnknown_203AD10
-_0810B1C8: .4byte sub_815ABFC
+_0810B1C8: .4byte CB2_ReturnToTeachyTV
_0810B1CC: .4byte gTasks
_0810B1D0: .4byte sub_810B070
thumb_func_end sub_810B180
@@ -6537,10 +6537,10 @@ _0810B29E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x6]
bl sub_810842C
- ldr r0, _0810B328 @ =gUnknown_3005E70
+ ldr r0, _0810B328 @ =gMultiuseListMenuTemplate
ldrh r2, [r4, 0x6]
lsls r2, 1
adds r5, r2, r5
@@ -6565,7 +6565,7 @@ _0810B318: .4byte gSaveBlock1Ptr
_0810B31C: .4byte gSpecialVar_ItemId
_0810B320: .4byte 0x00000296
_0810B324: .4byte gUnknown_203ACFC
-_0810B328: .4byte gUnknown_3005E70
+_0810B328: .4byte gMultiuseListMenuTemplate
_0810B32C:
ldr r1, _0810B340 @ =gMain
movs r0, 0
@@ -6583,7 +6583,7 @@ _0810B344:
ldrb r0, [r7]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
bl sub_8108CB4
adds r0, r6, 0
@@ -6738,7 +6738,7 @@ _0810B468:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@@ -6854,7 +6854,7 @@ _0810B564:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
ldr r1, _0810B5B0 @ =gUnknown_3005E98
ldr r0, _0810B5B4 @ =ItemUseCB_Medicine
@@ -6989,11 +6989,11 @@ _0810B68C:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810AECC
ldr r0, _0810B6D4 @ =gUnknown_203AD10
ldr r1, [r0]
- ldr r0, _0810B6D8 @ =sub_8132E64
+ ldr r0, _0810B6D8 @ =PokeDude_InitTMCase
str r0, [r1]
mov r0, r9
subs r0, 0x8
@@ -7003,7 +7003,7 @@ _0810B68C:
b _0810B6E6
.align 2, 0
_0810B6D4: .4byte gUnknown_203AD10
-_0810B6D8: .4byte sub_8132E64
+_0810B6D8: .4byte PokeDude_InitTMCase
_0810B6DC: .4byte sub_810B070
_0810B6E0:
ldrh r0, [r6, 0x10]
diff --git a/asm/item_pc.s b/asm/item_pc.s
index 8d36ccc81..e7a9f8ee5 100644
--- a/asm/item_pc.s
+++ b/asm/item_pc.s
@@ -162,7 +162,7 @@ _0810D53C:
bl clear_scheduled_bg_copies_to_vram
b _0810D674
_0810D546:
- bl remove_some_task
+ bl ScanlineEffect_Stop
b _0810D674
_0810D54C:
bl FreeAllSpritePalettes
@@ -233,7 +233,7 @@ _0810D5CC:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0810D5FC @ =gUnknown_3005E70
+ ldr r0, _0810D5FC @ =gMultiuseListMenuTemplate
ldr r2, _0810D600 @ =gUnknown_203ADCC
ldrh r1, [r2, 0x4]
ldrh r2, [r2, 0x6]
@@ -249,7 +249,7 @@ _0810D5CC:
b _0810D674
.align 2, 0
_0810D5F8: .4byte sub_810DEA0
-_0810D5FC: .4byte gUnknown_3005E70
+_0810D5FC: .4byte gMultiuseListMenuTemplate
_0810D600: .4byte gUnknown_203ADCC
_0810D604: .4byte gTasks
_0810D608:
@@ -257,7 +257,7 @@ _0810D608:
b _0810D674
_0810D60E:
movs r0, 0x1D
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0810D674
_0810D616:
ldr r0, _0810D62C @ =gUnknown_203ADCC
@@ -594,7 +594,7 @@ _0810D8A4:
movs r1, 0x2
negs r1, r1
str r1, [r0, 0x4]
- ldr r2, _0810D948 @ =gUnknown_3005E70
+ ldr r2, _0810D948 @ =gMultiuseListMenuTemplate
str r3, [r2]
ldr r0, _0810D940 @ =gUnknown_203ADBC
ldr r3, [r0]
@@ -658,7 +658,7 @@ _0810D938: .4byte gSaveBlock1Ptr
_0810D93C: .4byte gUnknown_203ADC4
_0810D940: .4byte gUnknown_203ADBC
_0810D944: .4byte gFameCheckerText_Cancel
-_0810D948: .4byte gUnknown_3005E70
+_0810D948: .4byte gMultiuseListMenuTemplate
_0810D94C: .4byte sub_810D954
_0810D950: .4byte sub_810DA20
thumb_func_end sub_810D878
@@ -804,7 +804,7 @@ _0810DA58:
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0810DAAC @ =gStringVar4
- ldr r1, _0810DAB0 @ =gUnknown_84162B9
+ ldr r1, _0810DAB0 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
str r5, [sp]
@@ -828,7 +828,7 @@ _0810DA9E:
.align 2, 0
_0810DAA8: .4byte gStringVar1
_0810DAAC: .4byte gStringVar4
-_0810DAB0: .4byte gUnknown_84162B9
+_0810DAB0: .4byte gText_TimesStrVar1
thumb_func_end sub_810DA20
thumb_func_start sub_810DAB4
@@ -1154,7 +1154,7 @@ sub_810DCE4: @ 810DCE4
ldr r4, _0810DD30 @ =gUnknown_203ADD0
adds r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
ldr r0, _0810DD34 @ =gUnknown_203ADBC
ldr r0, [r0]
ldr r0, [r0]
@@ -1731,7 +1731,7 @@ _0810E194:
ldr r5, _0810E1F4 @ =gUnknown_203ADD0
adds r2, r5, 0x2
adds r1, r5, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r1, 0x2
ldrsh r0, [r6, r1]
cmp r0, r4
@@ -1742,7 +1742,7 @@ _0810E194:
strh r0, [r1, 0x6]
_0810E1C0:
bl sub_810D878
- ldr r0, _0810E1F8 @ =gUnknown_3005E70
+ ldr r0, _0810E1F8 @ =gMultiuseListMenuTemplate
subs r2, r5, 0x4
ldrh r1, [r2, 0x4]
ldrh r2, [r2, 0x6]
@@ -1766,7 +1766,7 @@ _0810E1E6:
.align 2, 0
_0810E1F0: .4byte gSaveBlock1Ptr
_0810E1F4: .4byte gUnknown_203ADD0
-_0810E1F8: .4byte gUnknown_3005E70
+_0810E1F8: .4byte gMultiuseListMenuTemplate
_0810E1FC: .4byte sub_810DEA0
thumb_func_end sub_810E160
@@ -1788,7 +1788,7 @@ sub_810E200: @ 810E200
ldr r5, _0810E268 @ =gUnknown_203ADD0
adds r2, r5, 0x2
adds r1, r5, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r1, 0x2
ldrsh r0, [r6, r1]
cmp r0, r4
@@ -1799,7 +1799,7 @@ sub_810E200: @ 810E200
strh r0, [r1, 0x6]
_0810E234:
bl sub_810D878
- ldr r0, _0810E26C @ =gUnknown_3005E70
+ ldr r0, _0810E26C @ =gMultiuseListMenuTemplate
subs r2, r5, 0x4
ldrh r1, [r2, 0x4]
ldrh r2, [r2, 0x6]
@@ -1822,7 +1822,7 @@ _0810E234:
.align 2, 0
_0810E264: .4byte gTasks+0x8
_0810E268: .4byte gUnknown_203ADD0
-_0810E26C: .4byte gUnknown_3005E70
+_0810E26C: .4byte gMultiuseListMenuTemplate
_0810E270: .4byte sub_810DEA0
thumb_func_end sub_810E200
@@ -1880,7 +1880,7 @@ sub_810E274: @ 810E274
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
ldrh r0, [r6, 0x2]
bl sub_810DD68
lsls r0, 16
@@ -2205,11 +2205,11 @@ sub_810E578: @ 810E578
ldr r4, _0810E5D8 @ =gUnknown_203ADD0
adds r2, r4, 0x2
adds r1, r4, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_810DDA4
bl sub_810DBF0
bl sub_810D878
- ldr r0, _0810E5DC @ =gUnknown_3005E70
+ ldr r0, _0810E5DC @ =gMultiuseListMenuTemplate
subs r4, 0x4
ldrh r1, [r4, 0x4]
ldrh r2, [r4, 0x6]
@@ -2227,7 +2227,7 @@ sub_810E578: @ 810E578
.align 2, 0
_0810E5D4: .4byte gTasks+0x8
_0810E5D8: .4byte gUnknown_203ADD0
-_0810E5DC: .4byte gUnknown_3005E70
+_0810E5DC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_810E578
thumb_func_start sub_810E5E0
@@ -2263,7 +2263,7 @@ sub_810E5E0: @ 810E5E0
movs r2, 0x2
movs r3, 0x3
bl ConvertIntToDecimalStringN
- ldr r1, _0810E66C @ =gUnknown_84162B9
+ ldr r1, _0810E66C @ =gText_TimesStrVar1
adds r0, r5, 0
bl StringExpandPlaceholders
movs r0, 0x3
@@ -2290,7 +2290,7 @@ sub_810E5E0: @ 810E5E0
_0810E660: .4byte gStringVar1
_0810E664: .4byte gStringVar4
_0810E668: .4byte gUnknown_84177AC
-_0810E66C: .4byte gUnknown_84162B9
+_0810E66C: .4byte gText_TimesStrVar1
thumb_func_end sub_810E5E0
thumb_func_start sub_810E670
@@ -2317,7 +2317,7 @@ sub_810E670: @ 810E670
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r4, _0810E6D0 @ =gStringVar4
- ldr r1, _0810E6D4 @ =gUnknown_84162B9
+ ldr r1, _0810E6D4 @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -2340,7 +2340,7 @@ sub_810E670: @ 810E670
.align 2, 0
_0810E6CC: .4byte gStringVar1
_0810E6D0: .4byte gStringVar4
-_0810E6D4: .4byte gUnknown_84162B9
+_0810E6D4: .4byte gText_TimesStrVar1
thumb_func_end sub_810E670
thumb_func_start sub_810E6D8
@@ -2444,13 +2444,13 @@ sub_810E79C: @ 810E79C
bl ClearWindowTilemap
movs r0, 0
bl PutWindowTilemap
- ldr r1, _0810E7D4 @ =gUnknown_841632A
+ ldr r1, _0810E7D4 @ =gText_ThereIsNoPokemon
ldr r2, _0810E7D8 @ =sub_810E848
adds r0, r4, 0
bl sub_810EB30
b _0810E7EA
.align 2, 0
-_0810E7D4: .4byte gUnknown_841632A
+_0810E7D4: .4byte gText_ThereIsNoPokemon
_0810E7D8: .4byte sub_810E848
_0810E7DC:
ldr r0, _0810E7F0 @ =gUnknown_203ADBC
@@ -2610,7 +2610,7 @@ sub_810E8F0: @ 810E8F0
movs r1, 0xD0
movs r2, 0x20
bl LoadPalette
- ldr r0, _0810E97C @ =gUnknown_841F408
+ ldr r0, _0810E97C @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
@@ -2647,7 +2647,7 @@ _0810E95C:
.align 2, 0
_0810E974: .4byte gUnknown_8453F98
_0810E978: .4byte 0x000003a3
-_0810E97C: .4byte gUnknown_841F408
+_0810E97C: .4byte gTMCaseMainWindowPalette
_0810E980: .4byte gUnknown_203ADD8
thumb_func_end sub_810E8F0
@@ -2884,7 +2884,7 @@ sub_810EB30: @ 810EB30
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
movs r2, 0xEB
diff --git a/asm/item_use.s b/asm/item_use.s
index fce57bc88..79dcb290a 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -203,7 +203,7 @@ sub_80A112C: @ 80A112C
lsrs r4, 24
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r4, 0
bl DestroyTask
bl sub_80696C0
@@ -1048,7 +1048,7 @@ sub_80A17D4: @ 80A17D4
ldr r1, _080A17E4 @ =UseFameCheckerFromMenu
movs r0, 0
movs r2, 0
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
.align 2, 0
@@ -1071,7 +1071,7 @@ sub_80A17E8: @ 80A17E8
ldr r1, _080A181C @ =c2_exit_to_overworld_2_switch
movs r0, 0
movs r2, 0x1
- bl sub_81317F8
+ bl InitTMCase
adds r0, r4, 0
bl DestroyTask
_080A1812:
diff --git a/asm/itemfinder.s b/asm/itemfinder.s
index bf3e78ebc..e510252ab 100644
--- a/asm/itemfinder.s
+++ b/asm/itemfinder.s
@@ -81,7 +81,7 @@ sub_813ED18: @ 813ED18
lsrs r4, 24
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
bl sub_80696C0
bl ScriptContext2_Disable
adds r0, r4, 0
@@ -970,7 +970,7 @@ sub_813F380: @ 813F380
bl sub_813F3FC
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
bl sub_80696C0
bl ScriptContext2_Disable
adds r0, r4, 0
diff --git a/asm/learn_move.s b/asm/learn_move.s
index 5068e6d16..db41257a2 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -296,7 +296,7 @@ sub_80E48C0: @ 80E48C0
ldr r4, _080E48F0 @ =gStringVar4
adds r0, r4, 0
bl StringExpandPlaceholders
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r0, [sp]
@@ -1373,7 +1373,7 @@ _080E51AA:
adds r2, r3
movs r0, 0xFE
str r0, [r2]
- ldr r2, _080E51FC @ =gUnknown_3005E70
+ ldr r2, _080E51FC @ =gMultiuseListMenuTemplate
adds r1, r2, 0
ldr r0, _080E5200 @ =gUnknown_83FFA94
ldm r0!, {r3,r5,r6}
@@ -1397,7 +1397,7 @@ _080E51EC: .4byte gPlayerParty
_080E51F0: .4byte gMoveNames
_080E51F4: .4byte gStringVar1
_080E51F8: .4byte gFameCheckerText_Cancel
-_080E51FC: .4byte gUnknown_3005E70
+_080E51FC: .4byte gMultiuseListMenuTemplate
_080E5200: .4byte gUnknown_83FFA94
thumb_func_end sub_80E50CC
@@ -1523,7 +1523,7 @@ _080E52FA:
thumb_func_start sub_80E5300
sub_80E5300: @ 80E5300
push {r4,lr}
- ldr r0, _080E5330 @ =gUnknown_3005E70
+ ldr r0, _080E5330 @ =gMultiuseListMenuTemplate
ldr r4, _080E5334 @ =gUnknown_203AAB4
ldr r2, [r4]
ldr r3, _080E5338 @ =0x00000a68
@@ -1544,7 +1544,7 @@ sub_80E5300: @ 80E5300
pop {r0}
bx r0
.align 2, 0
-_080E5330: .4byte gUnknown_3005E70
+_080E5330: .4byte gMultiuseListMenuTemplate
_080E5334: .4byte gUnknown_203AAB4
_080E5338: .4byte 0x00000a68
_080E533C: .4byte 0x00000263
@@ -1568,11 +1568,11 @@ sub_80E5340: @ 80E5340
movs r0, 0x2
movs r2, 0x1
movs r3, 0x4
- bl sub_8107D68
+ bl blit_move_info_icon
ldrb r0, [r4, 0x1]
cmp r0, 0x1
bhi _080E5388
- ldr r1, _080E5384 @ =gUnknown_8416213
+ ldr r1, _080E5384 @ =gText_ThreeHyphens
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
@@ -1583,7 +1583,7 @@ sub_80E5340: @ 80E5340
b _080E53A6
.align 2, 0
_080E5380: .4byte gBattleMoves
-_080E5384: .4byte gUnknown_8416213
+_080E5384: .4byte gText_ThreeHyphens
_080E5388:
ldrb r1, [r4, 0x1]
add r0, sp, 0x8
@@ -1608,7 +1608,7 @@ _080E53A6:
adds r4, r1, 0
cmp r2, 0
bne _080E53D4
- ldr r1, _080E53D0 @ =gUnknown_8416213
+ ldr r1, _080E53D0 @ =gText_ThreeHyphens
str r2, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
@@ -1619,7 +1619,7 @@ _080E53A6:
b _080E53F4
.align 2, 0
_080E53CC: .4byte gBattleMoves
-_080E53D0: .4byte gUnknown_8416213
+_080E53D0: .4byte gText_ThreeHyphens
_080E53D4:
ldrb r1, [r0, 0x3]
add r0, sp, 0x8
@@ -1680,27 +1680,27 @@ sub_80E5444: @ 80E5444
movs r1, 0x13
movs r2, 0x1
movs r3, 0x4
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0x1
movs r1, 0x14
movs r2, 0
movs r3, 0x4
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0x1
movs r1, 0x15
movs r2, 0
movs r3, 0x13
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0
movs r1, 0x16
movs r2, 0x1
movs r3, 0x13
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0
movs r1, 0x17
movs r2, 0x1
movs r3, 0x22
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
diff --git a/asm/link.s b/asm/link.s
index a0ba7f9cb..7130ce69d 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -3252,7 +3252,7 @@ c2_800ACD4: @ 800ACD4
movs r2, 0x2
bl FillPalette
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
ldr r1, _0800ADF0 @ =gWirelessCommType
ldrb r0, [r1]
cmp r0, 0
@@ -3308,7 +3308,7 @@ _0800AD30:
lsls r1, 8
movs r0, 0
bl ClearGpuRegBits
- ldr r0, _0800AE08 @ =gUnknown_841F408
+ ldr r0, _0800AE08 @ =gTMCaseMainWindowPalette
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
@@ -3343,7 +3343,7 @@ _0800ADF8: .4byte sub_800978C
_0800ADFC: .4byte gUnknown_82345E8
_0800AE00: .4byte gUnknown_2022860
_0800AE04: .4byte gUnknown_82345F0
-_0800AE08: .4byte gUnknown_841F408
+_0800AE08: .4byte gTMCaseMainWindowPalette
_0800AE0C: .4byte gSoftResetDisabled
_0800AE10: .4byte sub_80094D4
_0800AE14: .4byte gMain
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 01e93a41d..776b94c41 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -401,8 +401,8 @@ _08115B5C:
bl CopyWindowToVram
ldrb r0, [r5, 0xF]
movs r1, 0
- bl sub_80F6F1C
- ldr r0, _08115C58 @ =gUnknown_3005E70
+ bl DrawStdWindowFrame
+ ldr r0, _08115C58 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08115C5C @ =gUnknown_8456D34
ldm r1!, {r3,r6,r7}
@@ -417,7 +417,7 @@ _08115B5C:
strb r0, [r5, 0x12]
ldrb r0, [r5, 0x11]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldrb r0, [r5, 0x11]
bl PutWindowTilemap
ldrb r0, [r5, 0x11]
@@ -434,7 +434,7 @@ _08115C48: .4byte gUnknown_8456CD0
_08115C4C: .4byte gUnknown_8456CFC
_08115C50: .4byte gUnknown_8456D04
_08115C54: .4byte gUnknown_845747C
-_08115C58: .4byte gUnknown_3005E70
+_08115C58: .4byte gMultiuseListMenuTemplate
_08115C5C: .4byte gUnknown_8456D34
_08115C60:
ldr r0, _08115C98 @ =gStringVar1
@@ -1135,16 +1135,16 @@ sub_81161E4: @ 81161E4
bl ClearWindowTilemap
ldrb r0, [r4, 0x11]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4, 0x12]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4, 0x10]
bl ClearWindowTilemap
ldrb r0, [r4, 0xF]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r4, 0x11]
@@ -1919,8 +1919,8 @@ _08116838:
bl CopyWindowToVram
ldrb r0, [r6, 0xB]
movs r1, 0
- bl sub_80F6F1C
- ldr r0, _081168FC @ =gUnknown_3005E70
+ bl DrawStdWindowFrame
+ ldr r0, _081168FC @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08116900 @ =gUnknown_8456DDC
ldm r1!, {r3,r5,r7}
@@ -1935,7 +1935,7 @@ _08116838:
strb r0, [r6, 0xE]
ldrb r0, [r6, 0xD]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldrb r0, [r6, 0xD]
bl PutWindowTilemap
ldrb r0, [r6, 0xD]
@@ -1955,7 +1955,7 @@ _081168EC: .4byte gUnknown_8456CD0
_081168F0: .4byte gUnknown_8456D4C
_081168F4: .4byte gUnknown_8456D54
_081168F8: .4byte gUnknown_8458FC8
-_081168FC: .4byte gUnknown_3005E70
+_081168FC: .4byte gMultiuseListMenuTemplate
_08116900: .4byte gUnknown_8456DDC
_08116904:
bl sub_8116FE4
@@ -2318,16 +2318,16 @@ _08116C10:
bl ClearWindowTilemap
ldrb r0, [r6, 0xD]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r6, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r6, 0xC]
bl ClearWindowTilemap
ldrb r0, [r6, 0xB]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r6, 0xD]
@@ -4068,7 +4068,7 @@ _08117AB8:
strb r0, [r5, 0xF]
ldrb r0, [r5, 0xF]
bl sub_814240C
- ldr r0, _08117B74 @ =gUnknown_3005E70
+ ldr r0, _08117B74 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08117B78 @ =gUnknown_8456D34
ldm r1!, {r3,r4,r6}
@@ -4089,7 +4089,7 @@ _08117AB8:
.align 2, 0
_08117B6C: .4byte gUnknown_8456CFC
_08117B70: .4byte 0x0000ffff
-_08117B74: .4byte gUnknown_3005E70
+_08117B74: .4byte gMultiuseListMenuTemplate
_08117B78: .4byte gUnknown_8456D34
_08117B7C:
ldr r0, _08117B9C @ =gStringVar1
@@ -4398,7 +4398,7 @@ _08117DEE:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4457,7 +4457,7 @@ _08117E80:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@@ -4624,7 +4624,7 @@ _08117FC0:
strb r0, [r5, 0xD]
ldrb r0, [r5, 0xB]
bl sub_814240C
- ldr r0, _08118068 @ =gUnknown_3005E70
+ ldr r0, _08118068 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _0811806C @ =gUnknown_8456DDC
ldm r1!, {r3,r6,r7}
@@ -4659,7 +4659,7 @@ _08117FC0:
_0811805C: .4byte gUnknown_8456D4C
_08118060: .4byte 0x0000ffff
_08118064: .4byte gUnknown_8456D54
-_08118068: .4byte gUnknown_3005E70
+_08118068: .4byte gMultiuseListMenuTemplate
_0811806C: .4byte gUnknown_8456DDC
_08118070:
bl sub_8116FE4
@@ -4842,7 +4842,7 @@ _081181EC:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xD]
@@ -5042,7 +5042,7 @@ _08118380:
strb r0, [r5, 0xB]
ldrb r0, [r5, 0xB]
bl sub_814240C
- ldr r0, _08118400 @ =gUnknown_3005E70
+ ldr r0, _08118400 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08118404 @ =gUnknown_8456DDC
ldm r1!, {r3,r4,r6}
@@ -5066,7 +5066,7 @@ _081183EC:
.align 2, 0
_081183F8: .4byte gUnknown_8456D4C
_081183FC: .4byte 0x0000ffff
-_08118400: .4byte gUnknown_3005E70
+_08118400: .4byte gMultiuseListMenuTemplate
_08118404: .4byte gUnknown_8456DDC
_08118408:
bl sub_8116FE4
@@ -5242,7 +5242,7 @@ _08118564:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xB]
@@ -8485,7 +8485,7 @@ sub_811A0B4: @ 811A0B4
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _0811A0DC @ =gStringVar4
adds r1, r4, 0
bl StringExpandPlaceholders
@@ -8531,7 +8531,7 @@ _0811A10A:
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _0811A12C @ =gStringVar4
adds r1, r5, 0
bl StringExpandPlaceholders
@@ -8624,7 +8624,7 @@ sub_811A1AC: @ 811A1AC
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
adds r0, r4, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
@@ -8659,7 +8659,7 @@ sub_811A1FC: @ 811A1FC
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
adds r0, r4, 0
bl RemoveWindow
pop {r4}
@@ -8688,8 +8688,8 @@ _0811A234:
strb r0, [r5]
ldrb r0, [r5]
movs r1, 0
- bl sub_80F6F1C
- ldr r0, _0811A270 @ =gUnknown_3005E70
+ bl DrawStdWindowFrame
+ ldr r0, _0811A270 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp, 0x1C]
ldm r1!, {r3,r4,r6}
@@ -8711,7 +8711,7 @@ _0811A234:
strb r0, [r7]
b _0811A2DA
.align 2, 0
-_0811A270: .4byte gUnknown_3005E70
+_0811A270: .4byte gMultiuseListMenuTemplate
_0811A274:
mov r3, r9
ldrb r0, [r3]
@@ -8726,10 +8726,10 @@ _0811A274:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r5]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r5]
bl RemoveWindow
movs r0, 0
@@ -8747,10 +8747,10 @@ _0811A2B0:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r5]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r5]
bl RemoveWindow
strb r4, [r7]
@@ -8794,8 +8794,8 @@ _0811A308:
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
- bl sub_80F6F1C
- ldr r0, _0811A354 @ =gUnknown_3005E70
+ bl DrawStdWindowFrame
+ ldr r0, _0811A354 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp, 0x20]
ldm r1!, {r3,r6,r7}
@@ -8818,7 +8818,7 @@ _0811A308:
b _0811A3E6
.align 2, 0
_0811A350: .4byte gUnknown_8456F1C
-_0811A354: .4byte gUnknown_3005E70
+_0811A354: .4byte gMultiuseListMenuTemplate
_0811A358:
ldrb r0, [r5]
bl ListMenuHandleInput
@@ -8842,10 +8842,10 @@ _0811A37E:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4]
bl RemoveWindow
ldrb r0, [r7]
@@ -8867,10 +8867,10 @@ _0811A3AC:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r4]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4]
bl RemoveWindow
ldrb r0, [r7]
@@ -9999,7 +9999,7 @@ _0811AC3C:
adds r0, r6, 0
movs r2, 0x44
adds r3, r5, 0
- bl sub_8107D68
+ bl blit_move_info_icon
movs r0, 0xB
mov r2, r8
muls r2, r0
diff --git a/asm/list_menu.s b/asm/list_menu.s
index 3475b0914..3119d53bd 100644
--- a/asm/list_menu.s
+++ b/asm/list_menu.s
@@ -62,7 +62,7 @@ _08106F24:
ldr r1, [sp, 0x4]
bl sub_8150048
_08106F34:
- ldr r0, _08106F64 @ =gUnknown_3005E70
+ ldr r0, _08106F64 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, [sp]
ldm r1!, {r3-r5}
@@ -84,7 +84,7 @@ _08106F34:
b _08106FE4
.align 2, 0
_08106F60: .4byte gUnknown_203ACF4
-_08106F64: .4byte gUnknown_3005E70
+_08106F64: .4byte gMultiuseListMenuTemplate
_08106F68:
ldrb r0, [r5, 0x6]
bl ListMenuHandleInput
@@ -126,7 +126,7 @@ _08106FA8:
bgt _08106FBA
ldrb r0, [r5, 0x5]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
_08106FBA:
ldr r0, _08106FC8 @ =gUnknown_203ACF4
ldrb r0, [r0, 0x5]
@@ -139,7 +139,7 @@ _08106FCC:
ldrb r0, [r5, 0x6]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
ldrb r0, [r5, 0x5]
bl RemoveWindow
movs r0, 0
@@ -340,8 +340,8 @@ _08107136:
bx r1
thumb_func_end ListMenuHandleInput
- thumb_func_start sub_810713C
-sub_810713C: @ 810713C
+ thumb_func_start DestroyListMenu
+DestroyListMenu: @ 810713C
push {r4,lr}
adds r3, r1, 0
lsls r0, 24
@@ -377,7 +377,7 @@ _08107170:
bx r0
.align 2, 0
_0810717C: .4byte gTasks+0x8
- thumb_func_end sub_810713C
+ thumb_func_end DestroyListMenu
thumb_func_start sub_8107180
sub_8107180: @ 8107180
@@ -1976,8 +1976,8 @@ _08107D56:
_08107D64: .4byte gUnknown_8E95DBC
thumb_func_end sub_8107D38
- thumb_func_start sub_8107D68
-sub_8107D68: @ 8107D68
+ thumb_func_start blit_move_info_icon
+blit_move_info_icon: @ 8107D68
push {r4,r5,lr}
sub sp, 0x18
lsls r0, 24
@@ -2014,6 +2014,6 @@ sub_8107D68: @ 8107D68
.align 2, 0
_08107DAC: .4byte gUnknown_8452C94
_08107DB0: .4byte gUnknown_8E95DDC
- thumb_func_end sub_8107D68
+ thumb_func_end blit_move_info_icon
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/macros.inc b/asm/macros.inc
index 6d8657892..324a8de02 100644
--- a/asm/macros.inc
+++ b/asm/macros.inc
@@ -147,3 +147,8 @@
.2byte MAP_\map_name
.space 2
.endm
+
+ .macro window_template bg, top, left, height, width, palno, baseBlock
+ .byte \bg, \top, \left, \height, \width, \palno
+ .2byte \baseBlock
+ .endm
diff --git a/asm/mail.s b/asm/mail.s
index 1ecaf17cc..dac4bf6f8 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -200,7 +200,7 @@ _080BED40:
_080BED8C:
movs r0, 0
bl SetVBlankCallback
- bl remove_some_task
+ bl ScanlineEffect_Stop
movs r0, 0
movs r1, 0
bl SetGpuReg
@@ -209,13 +209,13 @@ _080BED8C:
cmp r0, 0
bne _080BEDB4
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080BF0F4
.align 2, 0
_080BEDB0: .4byte gUnknown_203AAC4
_080BEDB4:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080BF0F4
_080BEDBC:
add r1, sp, 0x8
diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s
index d2cc06070..5273d1357 100644
--- a/asm/mailbox_pc.s
+++ b/asm/mailbox_pc.s
@@ -176,7 +176,7 @@ sub_810EC98: @ 810EC98
ldr r7, _0810ED50 @ =gUnknown_203ADE0
ldr r0, _0810ED54 @ =gFameCheckerText_Cancel
mov r12, r0
- ldr r5, _0810ED58 @ =gUnknown_3005E70
+ ldr r5, _0810ED58 @ =gMultiuseListMenuTemplate
ldr r1, _0810ED5C @ =gUnknown_203ADDC
mov r8, r1
ldrb r0, [r6, 0x5]
@@ -263,7 +263,7 @@ _0810ECCE:
.align 2, 0
_0810ED50: .4byte gUnknown_203ADE0
_0810ED54: .4byte gFameCheckerText_Cancel
-_0810ED58: .4byte gUnknown_3005E70
+_0810ED58: .4byte gMultiuseListMenuTemplate
_0810ED5C: .4byte gUnknown_203ADDC
_0810ED60: .4byte gUnknown_8454003
_0810ED64: .4byte sub_810ED6C
diff --git a/asm/main_menu.s b/asm/main_menu.s
index ae0a4c69b..b170db136 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -113,7 +113,7 @@ sub_800C318: @ 800C318
ldr r0, _0800C4B0 @ =0x810001ff
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
@@ -983,7 +983,7 @@ _0800CB2E:
bl FreeAllWindowBuffers
adds r0, r6, 0
bl DestroyTask
- bl sub_812EB2C
+ bl StartNewGameScene
b _0800CB84
.align 2, 0
_0800CB44: .4byte gUnknown_2031DE0
diff --git a/asm/menu.s b/asm/menu.s
index e593eef1c..a6d3d183b 100644
--- a/asm/menu.s
+++ b/asm/menu.s
@@ -933,8 +933,8 @@ sub_810F510: @ 810F510
bx r0
thumb_func_end sub_810F510
- thumb_func_start sub_810F558
-sub_810F558: @ 810F558
+ thumb_func_start CreateWindow_SnapRight_StdPal
+CreateWindow_SnapRight_StdPal: @ 810F558
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1005,10 +1005,10 @@ _0810F5C4:
bx r1
.align 2, 0
_0810F5E4: .4byte gUnknown_203ADF4
- thumb_func_end sub_810F558
+ thumb_func_end CreateWindow_SnapRight_StdPal
- thumb_func_start sub_810F5E8
-sub_810F5E8: @ 810F5E8
+ thumb_func_start PrintTextOnRightSnappedWindow
+PrintTextOnRightSnappedWindow: @ 810F5E8
push {r4-r6,lr}
sub sp, 0xC
adds r5, r0, 0
@@ -1055,10 +1055,10 @@ _0810F63E:
.align 2, 0
_0810F648: .4byte gUnknown_203ADF4
_0810F64C: .4byte gUnknown_8456618
- thumb_func_end sub_810F5E8
+ thumb_func_end PrintTextOnRightSnappedWindow
- thumb_func_start sub_810F650
-sub_810F650: @ 810F650
+ thumb_func_start Menu_PrintHelpSystemUIHeader
+Menu_PrintHelpSystemUIHeader: @ 810F650
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1145,7 +1145,7 @@ _0810F6F6:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_810F650
+ thumb_func_end Menu_PrintHelpSystemUIHeader
thumb_func_start sub_810F704
sub_810F704: @ 810F704
@@ -1264,8 +1264,8 @@ _0810F7BE:
_0810F7D4: .4byte gUnknown_203ADE4
thumb_func_end sub_810F774
- thumb_func_start sub_810F7D8
-sub_810F7D8: @ 810F7D8
+ thumb_func_start ProgramAndPlaceMenuCursorOnWindow
+ProgramAndPlaceMenuCursorOnWindow: @ 810F7D8
push {r4-r6,lr}
sub sp, 0x10
ldr r4, [sp, 0x20]
@@ -1297,7 +1297,7 @@ sub_810F7D8: @ 810F7D8
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_810F7D8
+ thumb_func_end ProgramAndPlaceMenuCursorOnWindow
thumb_func_start sub_810F818
sub_810F818: @ 810F818
@@ -1336,7 +1336,7 @@ sub_810F818: @ 810F818
adds r1, r6, 0
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
lsls r0, 24
lsrs r0, 24
add sp, 0x14
@@ -2410,7 +2410,7 @@ sub_810FF60: @ 810FF60
adds r1, r6, 0
mov r2, r8
mov r3, r9
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
add sp, 0x1C
pop {r3-r5}
mov r8, r3
diff --git a/asm/menu2.s b/asm/menu2.s
deleted file mode 100644
index c196f77b4..000000000
--- a/asm/menu2.s
+++ /dev/null
@@ -1,563 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start box_print
-box_print: @ 812E51C
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r1, 0
- ldr r6, [sp, 0x20]
- ldr r5, [sp, 0x24]
- ldr r1, [sp, 0x28]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- str r1, [sp]
- mov r1, sp
- strb r0, [r1, 0x4]
- mov r0, sp
- strb r4, [r0, 0x5]
- strb r2, [r0, 0x6]
- strb r3, [r0, 0x7]
- ldrb r0, [r0, 0x6]
- strb r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x7]
- strb r0, [r1, 0x9]
- adds r0, r4, 0
- movs r1, 0x2
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xB]
- mov r3, sp
- ldrb r2, [r3, 0xC]
- movs r1, 0x10
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- mov r2, sp
- ldrb r0, [r6, 0x1]
- lsls r0, 4
- movs r4, 0xF
- strb r0, [r2, 0xC]
- ldrb r2, [r6]
- adds r0, r4, 0
- ands r0, r2
- ldrb r2, [r3, 0xD]
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- mov r2, sp
- ldrb r0, [r6, 0x2]
- lsls r0, 4
- ands r1, r4
- orrs r1, r0
- strb r1, [r2, 0xD]
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end box_print
-
- thumb_func_start AddTextPrinterParametrized2
-AddTextPrinterParametrized2: @ 812E5A4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- adds r5, r1, 0
- ldr r1, [sp, 0x28]
- mov r8, r1
- ldr r1, [sp, 0x2C]
- mov r9, r1
- ldr r6, [sp, 0x30]
- ldr r1, [sp, 0x34]
- ldr r4, [sp, 0x38]
- str r4, [sp]
- mov r4, sp
- strb r0, [r4, 0x4]
- mov r0, sp
- strb r5, [r0, 0x5]
- strb r2, [r0, 0x6]
- strb r3, [r0, 0x7]
- mov r2, sp
- ldrb r0, [r0, 0x6]
- strb r0, [r2, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x7]
- strb r0, [r2, 0x9]
- mov r0, sp
- mov r2, r8
- strb r2, [r0, 0xA]
- mov r2, r9
- strb r2, [r0, 0xB]
- ldrb r3, [r4, 0xC]
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r4, 0xC]
- mov r3, sp
- ldrb r0, [r6, 0x1]
- lsls r0, 4
- movs r5, 0xF
- strb r0, [r3, 0xC]
- ldrb r3, [r6]
- adds r0, r5, 0
- ands r0, r3
- ldrb r3, [r4, 0xD]
- ands r2, r3
- orrs r2, r0
- strb r2, [r4, 0xD]
- mov r3, sp
- ldrb r0, [r6, 0x2]
- lsls r0, 4
- ands r2, r5
- orrs r2, r0
- strb r2, [r3, 0xD]
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end AddTextPrinterParametrized2
-
- thumb_func_start sub_812E62C
-sub_812E62C: @ 812E62C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r6, r1, 0
- ldr r4, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- mov r8, r1
- ldr r7, [sp, 0x34]
- ldr r5, [sp, 0x38]
- ldr r1, [sp, 0x3C]
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- str r2, [sp]
- mov r1, sp
- strb r0, [r1, 0x4]
- mov r0, sp
- strb r6, [r0, 0x5]
- strb r3, [r0, 0x6]
- strb r4, [r0, 0x7]
- strb r3, [r0, 0x8]
- strb r4, [r0, 0x9]
- strb r5, [r0, 0xA]
- mov r1, r9
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r5, 0x10
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0xC]
- adds r0, r6, 0
- movs r1, 0x5
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r4, 0xF
- adds r1, r4, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- adds r0, r6, 0
- movs r1, 0x6
- bl GetFontAttribute
- mov r2, sp
- adds r1, r4, 0
- ands r1, r0
- ldrb r0, [r2, 0xD]
- ands r5, r0
- orrs r5, r1
- strb r5, [r2, 0xD]
- adds r0, r6, 0
- movs r1, 0x7
- bl GetFontAttribute
- mov r2, sp
- lsls r0, 4
- ldrb r1, [r2, 0xD]
- ands r4, r1
- orrs r4, r0
- strb r4, [r2, 0xD]
- mov r0, sp
- mov r1, r8
- adds r2, r7, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E62C
-
- thumb_func_start sub_812E6DC
-sub_812E6DC: @ 812E6DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- movs r4, 0
- ldr r0, _0812E734 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r0, [r2]
- ldr r7, _0812E738 @ =gStringVar4
- cmp r0, 0xFF
- beq _0812E70A
-_0812E700:
- adds r4, 0x1
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0812E700
-_0812E70A:
- adds r0, r7, 0
- bl StringExpandPlaceholders
- cmp r4, 0x5
- beq _0812E73C
- lsls r3, r5, 24
- lsrs r3, 24
- lsls r0, r6, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r0, r8
- movs r1, 0x2
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- b _0812E75C
- .align 2, 0
-_0812E734: .4byte gSaveBlock2Ptr
-_0812E738: .4byte gStringVar4
-_0812E73C:
- lsls r3, r5, 24
- lsrs r3, 24
- lsls r0, r6, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- mov r0, r8
- movs r1, 0x2
- adds r2, r7, 0
- bl sub_812E62C
-_0812E75C:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E6DC
-
- thumb_func_start sub_812E768
-sub_812E768: @ 812E768
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [sp, 0x48]
- ldr r4, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r5, [sp, 0x54]
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x8]
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- lsls r4, 16
- lsrs r4, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r2, [sp, 0x4]
- ldrh r0, [r2, 0x4]
- ldr r2, [sp, 0xC]
- subs r0, r2
- ldr r2, [sp, 0x8]
- adds r2, r1, r2
- str r2, [sp, 0x10]
- cmp r0, r1
- bge _0812E7B4
- ldr r1, [sp, 0x8]
- adds r0, r1
- str r0, [sp, 0x10]
-_0812E7B4:
- ldr r2, [sp, 0x4]
- ldrh r1, [r2, 0x6]
- subs r0, r1, r4
- cmp r0, r5
- bge _0812E7C6
- adds r0, r3, r1
- subs r0, r4
- str r0, [sp, 0x14]
- b _0812E7CA
-_0812E7C6:
- adds r5, r3, r5
- str r5, [sp, 0x14]
-_0812E7CA:
- ldr r0, [sp]
- ldrh r1, [r0, 0x4]
- movs r2, 0x7
- adds r0, r1, 0
- ands r0, r2
- adds r1, r0
- asrs r1, 3
- str r1, [sp, 0x18]
- ldr r0, [sp, 0x4]
- ldrh r1, [r0, 0x4]
- adds r0, r1, 0
- ands r0, r2
- adds r1, r0
- asrs r1, 3
- str r1, [sp, 0x1C]
- mov r12, r3
- mov r8, r4
- ldr r1, [sp, 0x14]
- cmp r12, r1
- blt _0812E7F4
- b _0812E932
-_0812E7F4:
- ldr r5, [sp, 0x8]
- ldr r6, [sp, 0xC]
- mov r2, r12
- adds r2, 0x1
- str r2, [sp, 0x20]
- mov r0, r8
- adds r0, 0x1
- str r0, [sp, 0x24]
- ldr r1, [sp, 0x10]
- cmp r5, r1
- blt _0812E80C
- b _0812E922
-_0812E80C:
- movs r7, 0x1
- movs r2, 0xF0
- mov r10, r2
- movs r0, 0xF
- mov r9, r0
-_0812E816:
- asrs r0, r5, 1
- movs r1, 0x3
- ands r0, r1
- ldr r2, [sp]
- ldr r1, [r2]
- adds r1, r0
- asrs r0, r5, 3
- lsls r0, 5
- adds r1, r0
- mov r2, r12
- asrs r0, r2, 3
- ldr r2, [sp, 0x18]
- muls r0, r2
- lsls r0, 5
- adds r1, r0
- mov r2, r12
- lsls r0, r2, 29
- lsrs r0, 27
- adds r3, r1, r0
- asrs r0, r6, 1
- movs r1, 0x3
- ands r0, r1
- ldr r2, [sp, 0x4]
- ldr r1, [r2]
- adds r1, r0
- asrs r0, r6, 3
- lsls r0, 5
- adds r1, r0
- mov r2, r8
- asrs r0, r2, 3
- ldr r2, [sp, 0x1C]
- muls r0, r2
- lsls r0, 5
- adds r1, r0
- mov r2, r8
- lsls r0, r2, 29
- lsrs r0, 27
- adds r4, r1, r0
- adds r0, r4, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E8C2
- subs r4, 0x1
- adds r0, r6, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E89A
- ldrh r0, [r4]
- ldr r2, _0812E88C @ =0x00000fff
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E890
- ldrb r1, [r3]
- mov r0, r10
- ands r0, r1
- lsls r0, 8
- b _0812E912
- .align 2, 0
-_0812E88C: .4byte 0x00000fff
-_0812E890:
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- lsls r0, 12
- b _0812E912
-_0812E89A:
- ldrh r0, [r4]
- ldr r2, _0812E8B4 @ =0x0000f0ff
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E8B8
- ldrb r1, [r3]
- mov r0, r10
- ands r0, r1
- lsls r0, 4
- b _0812E912
- .align 2, 0
-_0812E8B4: .4byte 0x0000f0ff
-_0812E8B8:
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- lsls r0, 8
- b _0812E912
-_0812E8C2:
- adds r0, r6, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E8EE
- ldrh r0, [r4]
- ldr r2, _0812E8E0 @ =0x0000ff0f
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E8E4
- ldrb r1, [r3]
- mov r0, r10
- b _0812E910
- .align 2, 0
-_0812E8E0: .4byte 0x0000ff0f
-_0812E8E4:
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- lsls r0, 4
- b _0812E912
-_0812E8EE:
- ldrh r0, [r4]
- ldr r2, _0812E908 @ =0x0000fff0
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0812E90C
- ldrb r1, [r3]
- mov r0, r10
- ands r0, r1
- lsrs r0, 4
- b _0812E912
- .align 2, 0
-_0812E908: .4byte 0x0000fff0
-_0812E90C:
- ldrb r1, [r3]
- mov r0, r9
-_0812E910:
- ands r0, r1
-_0812E912:
- orrs r2, r0
- strh r2, [r4]
- adds r5, 0x1
- adds r6, 0x1
- ldr r0, [sp, 0x10]
- cmp r5, r0
- bge _0812E922
- b _0812E816
-_0812E922:
- ldr r1, [sp, 0x20]
- mov r12, r1
- ldr r2, [sp, 0x24]
- mov r8, r2
- ldr r0, [sp, 0x14]
- cmp r12, r0
- bge _0812E932
- b _0812E7F4
-_0812E932:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E768
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index 612672b93..e576313f4 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -182,8 +182,8 @@ _080BF5C8: .4byte gTasks
_080BF5CC: .4byte gUnknown_20399C8
thumb_func_end sub_80BF560
- thumb_func_start sub_80BF5D0
-sub_80BF5D0: @ 80BF5D0
+ thumb_func_start CreateYesNoMenuWithCallbacks
+CreateYesNoMenuWithCallbacks: @ 80BF5D0
push {r4-r7,lr}
sub sp, 0xC
adds r6, r0, 0
@@ -228,7 +228,7 @@ sub_80BF5D0: @ 80BF5D0
_080BF624: .4byte gUnknown_20399C8
_080BF628: .4byte gTasks
_080BF62C: .4byte sub_80BF560
- thumb_func_end sub_80BF5D0
+ thumb_func_end CreateYesNoMenuWithCallbacks
thumb_func_start GetLRKeysState
GetLRKeysState: @ 80BF630
diff --git a/asm/menu_indicators.s b/asm/menu_indicators.s
index 0dad7d3c1..5ae7a46c4 100644
--- a/asm/menu_indicators.s
+++ b/asm/menu_indicators.s
@@ -38,7 +38,7 @@ _0813392A:
_0813393A:
movs r0, 0x34
ldrsh r3, [r4, r0]
- ldr r1, _0813395C @ =gUnknown_825E074
+ ldr r1, _0813395C @ =gSineTable
ldrh r2, [r4, 0x38]
lsls r0, r2, 24
lsrs r0, 23
@@ -54,11 +54,11 @@ _08133954:
strh r0, [r4, 0x24]
b _0813397E
.align 2, 0
-_0813395C: .4byte gUnknown_825E074
+_0813395C: .4byte gSineTable
_08133960:
movs r0, 0x34
ldrsh r3, [r4, r0]
- ldr r1, _0813398C @ =gUnknown_825E074
+ ldr r1, _0813398C @ =gSineTable
ldrh r2, [r4, 0x38]
lsls r0, r2, 24
lsrs r0, 23
@@ -81,7 +81,7 @@ _08133984:
pop {r0}
bx r0
.align 2, 0
-_0813398C: .4byte gUnknown_825E074
+_0813398C: .4byte gSineTable
thumb_func_end sub_8133904
thumb_func_start AddScrollIndicatorArrowObject
@@ -959,7 +959,7 @@ _0813403C: .4byte gSprites
ObjectCB_RedArrowCursor: @ 8134040
push {lr}
adds r2, r0, 0
- ldr r1, _08134068 @ =gUnknown_825E074
+ ldr r1, _08134068 @ =gSineTable
ldrh r3, [r2, 0x2E]
lsls r0, r3, 24
lsrs r0, 23
@@ -978,7 +978,7 @@ _08134058:
pop {r0}
bx r0
.align 2, 0
-_08134068: .4byte gUnknown_825E074
+_08134068: .4byte gSineTable
thumb_func_end ObjectCB_RedArrowCursor
thumb_func_start nullsub_95
diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s
index 790c3c0b2..d6be6db09 100644
--- a/asm/mystery_gift_menu.s
+++ b/asm/mystery_gift_menu.s
@@ -64,7 +64,7 @@ _081420D6:
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
movs r0, 0x1
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _081421E0 @ =gUnknown_8466D60
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index b3c9d1f73..01217d92f 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -401,8 +401,8 @@ _0809DBD6:
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
_0809DCA4:
lsls r0, r4, 3
ldr r1, _0809DD50 @ =gUnknown_83E22A0
@@ -493,7 +493,7 @@ sub_809DD60: @ 809DD60
bl SetMainCallback2
bl sub_812B234
movs r0, 0x3
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
@@ -959,13 +959,13 @@ _0809E156:
bl StringExpandPlaceholders
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _0809E1D0 @ =gTextFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
diff --git a/asm/new_game.s b/asm/new_game.s
index cec2b2c9a..63bfd9523 100644
--- a/asm/new_game.s
+++ b/asm/new_game.s
@@ -183,7 +183,7 @@ sub_8054A28: @ 8054A28
bl ZeroPlayerPartyMons
bl ZeroEnemyPartyMons
bl sub_81089BC
- bl sub_81320AC
+ bl ResetTMCaseCursorPos
bl sub_813D6E4
bl sub_811089C
bl Random
@@ -257,7 +257,7 @@ sub_8054A60: @ 8054A60
strb r5, [r0]
bl ZeroPlayerPartyMons
bl sub_808C7E0
- bl sub_8141C54
+ bl ClearRoamerData
ldr r0, [r6]
ldr r1, _08054B68 @ =0x00000296
adds r0, r1
diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s
index b3844a165..2e4e1a2c9 100644
--- a/asm/new_menu_helpers.s
+++ b/asm/new_menu_helpers.s
@@ -672,8 +672,8 @@ sub_80F6C14: @ 80F6C14
bx r0
thumb_func_end sub_80F6C14
- thumb_func_start sub_80F6C6C
-sub_80F6C6C: @ 80F6C6C
+ thumb_func_start InitStandardTextBoxWindows
+InitStandardTextBoxWindows: @ 80F6C6C
push {lr}
ldr r0, _080F6C84 @ =gUnknown_841F42C
bl InitWindows
@@ -686,7 +686,7 @@ sub_80F6C6C: @ 80F6C6C
.align 2, 0
_080F6C84: .4byte gUnknown_841F42C
_080F6C88: .4byte gUnknown_203ABE0
- thumb_func_end sub_80F6C6C
+ thumb_func_end InitStandardTextBoxWindows
thumb_func_start sub_80F6C8C
sub_80F6C8C: @ 80F6C8C
@@ -696,8 +696,8 @@ sub_80F6C8C: @ 80F6C8C
bx r0
thumb_func_end sub_80F6C8C
- thumb_func_start sub_80F6C98
-sub_80F6C98: @ 80F6C98
+ thumb_func_start ResetBg0
+ResetBg0: @ 80F6C98
push {lr}
movs r0, 0
movs r1, 0
@@ -711,7 +711,7 @@ sub_80F6C98: @ 80F6C98
bl sub_80F6E9C
pop {r0}
bx r0
- thumb_func_end sub_80F6C98
+ thumb_func_end ResetBg0
thumb_func_start sub_80F6CBC
sub_80F6CBC: @ 80F6CBC
@@ -819,7 +819,7 @@ sub_80F6D5C: @ 80F6D5C
lsrs r0, 24
cmp r0, 0
bne _080F6DB0
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -840,7 +840,7 @@ _080F6DAC: .4byte gStringVar4
_080F6DB0:
cmp r0, 0x1
bne _080F6DDC
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -858,7 +858,7 @@ _080F6DB0:
.align 2, 0
_080F6DD8: .4byte gStringVar4
_080F6DDC:
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -896,7 +896,7 @@ sub_80F6E08: @ 80F6E08
ands r1, r2
orrs r1, r0
strb r1, [r3]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -995,8 +995,8 @@ _080F6ED4:
bx r0
thumb_func_end sub_80F6E9C
- thumb_func_start sub_80F6EE4
-sub_80F6EE4: @ 80F6EE4
+ thumb_func_start DrawDialogueFrame
+DrawDialogueFrame: @ 80F6EE4
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1022,10 +1022,10 @@ _080F6F12:
bx r0
.align 2, 0
_080F6F18: .4byte sub_80F7124
- thumb_func_end sub_80F6EE4
+ thumb_func_end DrawDialogueFrame
- thumb_func_start sub_80F6F1C
-sub_80F6F1C: @ 80F6F1C
+ thumb_func_start DrawStdWindowFrame
+DrawStdWindowFrame: @ 80F6F1C
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1051,10 +1051,10 @@ _080F6F4A:
bx r0
.align 2, 0
_080F6F50: .4byte sub_80F6FD4
- thumb_func_end sub_80F6F1C
+ thumb_func_end DrawStdWindowFrame
- thumb_func_start sub_80F6F54
-sub_80F6F54: @ 80F6F54
+ thumb_func_start ClearDialogWindowAndFrame
+ClearDialogWindowAndFrame: @ 80F6F54
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1087,10 +1087,10 @@ _080F6F8E:
.align 2, 0
_080F6F94: .4byte sub_80F76CC
_080F6F98: .4byte gUnknown_203ADFA
- thumb_func_end sub_80F6F54
+ thumb_func_end ClearDialogWindowAndFrame
- thumb_func_start sub_80F6F9C
-sub_80F6F9C: @ 80F6F9C
+ thumb_func_start ClearStdWindowAndFrame
+ClearStdWindowAndFrame: @ 80F6F9C
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1116,7 +1116,7 @@ _080F6FCA:
bx r0
.align 2, 0
_080F6FD0: .4byte sub_80F7684
- thumb_func_end sub_80F6F9C
+ thumb_func_end ClearStdWindowAndFrame
thumb_func_start sub_80F6FD4
sub_80F6FD4: @ 80F6FD4
@@ -2049,37 +2049,37 @@ _080F77A4:
thumb_func_start sub_80F77B8
sub_80F77B8: @ 80F77B8
push {lr}
- ldr r0, _080F77C8 @ =gUnknown_841F408
+ ldr r0, _080F77C8 @ =gTMCaseMainWindowPalette
movs r1, 0xE0
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
-_080F77C8: .4byte gUnknown_841F408
+_080F77C8: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77B8
- thumb_func_start sub_80F77CC
-sub_80F77CC: @ 80F77CC
+ thumb_func_start Menu_LoadStdPalAt
+Menu_LoadStdPalAt: @ 80F77CC
push {lr}
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
- ldr r0, _080F77E0 @ =gUnknown_841F408
+ ldr r0, _080F77E0 @ =gTMCaseMainWindowPalette
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
-_080F77E0: .4byte gUnknown_841F408
- thumb_func_end sub_80F77CC
+_080F77E0: .4byte gTMCaseMainWindowPalette
+ thumb_func_end Menu_LoadStdPalAt
thumb_func_start sub_80F77E4
sub_80F77E4: @ 80F77E4
- ldr r0, _080F77E8 @ =gUnknown_841F408
+ ldr r0, _080F77E8 @ =gTMCaseMainWindowPalette
bx lr
.align 2, 0
-_080F77E8: .4byte gUnknown_841F408
+_080F77E8: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77E4
thumb_func_start sub_80F77EC
@@ -2091,14 +2091,14 @@ sub_80F77EC: @ 80F77EC
bls _080F77F8
movs r1, 0
_080F77F8:
- ldr r0, _080F7804 @ =gUnknown_841F408
+ ldr r0, _080F7804 @ =gTMCaseMainWindowPalette
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
pop {r1}
bx r1
.align 2, 0
-_080F7804: .4byte gUnknown_841F408
+_080F7804: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77EC
thumb_func_start DisplayItemMessageOnField
@@ -2116,7 +2116,7 @@ DisplayItemMessageOnField: @ 80F7808
lsls r4, 24
lsrs r4, 24
bl sub_80F6E9C
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
@@ -2187,8 +2187,8 @@ sub_80F7880: @ 80F7880
_080F78A4: .4byte gUnknown_841F43C
thumb_func_end sub_80F7880
- thumb_func_start sub_80F78A8
-sub_80F78A8: @ 80F78A8
+ thumb_func_start GetTextSpeedSetting
+GetTextSpeedSetting: @ 80F78A8
push {lr}
ldr r3, _080F78D8 @ =gSaveBlock2Ptr
ldr r2, [r3]
@@ -2216,7 +2216,7 @@ _080F78C4:
.align 2, 0
_080F78D8: .4byte gSaveBlock2Ptr
_080F78DC: .4byte gUnknown_841F428
- thumb_func_end sub_80F78A8
+ thumb_func_end GetTextSpeedSetting
thumb_func_start sub_80F78E0
sub_80F78E0: @ 80F78E0
diff --git a/asm/oak_speech.s b/asm/oak_speech.s
deleted file mode 100644
index 5f2326487..000000000
--- a/asm/oak_speech.s
+++ /dev/null
@@ -1,5728 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_812E944
-sub_812E944: @ 812E944
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- adds r0, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r1, [sp, 0x20]
- mov r8, r1
- ldr r1, [sp, 0x24]
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0812E9DC @ =sub_812E9F8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0812E9E0 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- mov r1, r10
- lsls r0, r1, 8
- strh r0, [r4, 0x8]
- lsls r2, r7, 8
- mov r9, r2
- strh r2, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r6, [r4, 0xE]
- subs r5, r1
- lsls r5, 8
- adds r0, r5, 0
- mov r1, r8
- bl __divsi3
- strh r0, [r4, 0x10]
- subs r6, r7
- lsls r6, 8
- adds r0, r6, 0
- mov r1, r8
- bl __divsi3
- strh r0, [r4, 0x12]
- mov r0, r8
- strh r0, [r4, 0x18]
- mov r1, r9
- mov r2, r10
- orrs r1, r2
- mov r9, r1
- movs r0, 0x52
- bl SetGpuReg
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E9DC: .4byte sub_812E9F8
-_0812E9E0: .4byte gTasks
- thumb_func_end sub_812E944
-
- thumb_func_start sub_812E9E4
-sub_812E9E4: @ 812E9E4
- push {lr}
- ldr r0, _0812E9F4 @ =sub_812E9F8
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0812E9F4: .4byte sub_812E9F8
- thumb_func_end sub_812E9E4
-
- thumb_func_start sub_812E9F8
-sub_812E9F8: @ 812E9F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812EA28 @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0812EA6E
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0812EA2C
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r4]
- movs r0, 0x1
- b _0812EA4C
- .align 2, 0
-_0812EA28: .4byte gTasks+0x8
-_0812EA2C:
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- beq _0812EA3E
- ldrh r0, [r4, 0xA]
- ldrh r2, [r4, 0x2]
- adds r0, r2
- b _0812EA48
-_0812EA3E:
- ldrh r0, [r4, 0x4]
- lsls r0, 8
- strh r0, [r4]
- ldrh r0, [r4, 0x6]
- lsls r0, 8
-_0812EA48:
- strh r0, [r4, 0x2]
- movs r0, 0
-_0812EA4C:
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x2]
- ldr r1, _0812EA74 @ =0xffffff00
- ands r1, r0
- ldrh r0, [r4]
- lsrs r0, 8
- orrs r1, r0
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812EA6E
- adds r0, r5, 0
- bl DestroyTask
-_0812EA6E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EA74: .4byte 0xffffff00
- thumb_func_end sub_812E9F8
-
- thumb_func_start sub_812EA78
-sub_812EA78: @ 812EA78
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r2, 24
- lsrs r5, r2, 24
- cmp r4, 0xC9
- bne _0812EAB8
- adds r0, r1, 0
- bl sub_8082AB8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1A
- beq _0812EAA4
- cmp r0, 0x1A
- bgt _0812EA9E
- cmp r0, 0
- beq _0812EAB8
- b _0812EAB4
-_0812EA9E:
- cmp r0, 0x1B
- beq _0812EAAA
- b _0812EAB4
-_0812EAA4:
- movs r4, 0xCE
- lsls r4, 1
- b _0812EABC
-_0812EAAA:
- ldr r4, _0812EAB0 @ =0x0000019d
- b _0812EABC
- .align 2, 0
-_0812EAB0: .4byte 0x0000019d
-_0812EAB4:
- adds r4, r0, 0
- adds r4, 0xFB
-_0812EAB8:
- cmp r4, 0
- beq _0812EAD6
-_0812EABC:
- cmp r5, 0x4
- bhi _0812EAD6
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _0812EAE0 @ =gUnknown_845FD54
- lsls r0, r4, 2
- adds r0, r4
- adds r0, r5, r0
- adds r2, r0, r1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _0812EAD8
-_0812EAD6:
- movs r0, 0x20
-_0812EAD8:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0812EAE0: .4byte gUnknown_845FD54
- thumb_func_end sub_812EA78
-
- thumb_func_start sub_812EAE4
-sub_812EAE4: @ 812EAE4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 24
- lsrs r2, 24
- bl sub_812EA78
- subs r0, 0x20
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_812EAE4
-
- thumb_func_start sub_812EAFC
-sub_812EAFC: @ 812EAFC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_812EAFC
-
- thumb_func_start sub_812EB10
-sub_812EB10: @ 812EB10
- push {lr}
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_812EB10
-
- thumb_func_start sub_812EB2C
-sub_812EB2C: @ 812EB2C
- push {lr}
- ldr r0, _0812EB48 @ =gPlttBufferUnfaded
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812EB4C @ =gPlttBufferFaded
- strh r1, [r0]
- ldr r0, _0812EB50 @ =sub_812EB58
- bl CreateTask
- ldr r0, _0812EB54 @ =sub_812EB10
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0812EB48: .4byte gPlttBufferUnfaded
-_0812EB4C: .4byte gPlttBufferFaded
-_0812EB50: .4byte sub_812EB58
-_0812EB54: .4byte sub_812EB10
- thumb_func_end sub_812EB2C
-
- thumb_func_start sub_812EB58
-sub_812EB58: @ 812EB58
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0812EB7C @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _0812EB70
- b _0812EE94
-_0812EB70:
- lsls r0, 2
- ldr r1, _0812EB80 @ =_0812EB84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812EB7C: .4byte gMain
-_0812EB80: .4byte _0812EB84
- .align 2, 0
-_0812EB84:
- .4byte _0812EBB0
- .4byte _0812EC28
- .4byte _0812EC44
- .4byte _0812EC8E
- .4byte _0812ED00
- .4byte _0812ED3C
- .4byte _0812ED6C
- .4byte _0812ED9A
- .4byte _0812EE94
- .4byte _0812EE94
- .4byte _0812EE30
-_0812EBB0:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- add r1, sp, 0x8
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0812EC14 @ =0x040000d4
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0812EC18 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0xC]
- add r0, sp, 0xC
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0812EC1C @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x8
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _0812EC20 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _0812EC24 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl remove_some_task
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl reset_temp_tile_data_buffers
- movs r0, 0x2
- bl sub_812B1F0
- b _0812EE94
- .align 2, 0
-_0812EC14: .4byte 0x040000d4
-_0812EC18: .4byte 0x8100c000
-_0812EC1C: .4byte 0x85000100
-_0812EC20: .4byte 0x05000002
-_0812EC24: .4byte 0x810001ff
-_0812EC28:
- ldr r4, _0812EC3C @ =gUnknown_203B108
- ldr r0, _0812EC40 @ =0x00002420
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0x1
- movs r1, 0x1
- bl sub_8044AF0
- b _0812EE94
- .align 2, 0
-_0812EC3C: .4byte gUnknown_203B108
-_0812EC40: .4byte 0x00002420
-_0812EC44:
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x42
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x46
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- b _0812EE94
-_0812EC8E:
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0812ECF0 @ =gUnknown_8462E58
- movs r0, 0x1
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r4, _0812ECF4 @ =gUnknown_203B108
- ldr r1, [r4]
- movs r0, 0xE1
- lsls r0, 5
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0xC1
- lsls r0, 5
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldr r0, _0812ECF8 @ =gSpriteCoordOffsetX
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812ECFC @ =gSpriteCoordOffsetY
- strh r1, [r0]
- b _0812EE94
- .align 2, 0
-_0812ECF0: .4byte gUnknown_8462E58
-_0812ECF4: .4byte gUnknown_203B108
-_0812ECF8: .4byte gSpriteCoordOffsetX
-_0812ECFC: .4byte gSpriteCoordOffsetY
-_0812ED00:
- ldr r2, _0812ED34 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- bl sub_80F6C6C
- bl sub_80F6C98
- movs r0, 0xD0
- bl sub_80F77CC
- ldr r0, _0812ED38 @ =gUnknown_8460568
- movs r1, 0
- movs r2, 0x80
- bl LoadPalette
- movs r0, 0x2
- bl stdpal_get
- adds r0, 0x1E
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- b _0812EE94
- .align 2, 0
-_0812ED34: .4byte gPaletteFade
-_0812ED38: .4byte gUnknown_8460568
-_0812ED3C:
- bl sub_80F78A8
- ldr r1, _0812ED60 @ =gUnknown_203B108
- ldr r1, [r1]
- movs r3, 0
- strb r0, [r1, 0x1F]
- ldr r2, _0812ED64 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0812ED68 @ =gUnknown_84605E8
- str r3, [sp]
- movs r0, 0x1
- movs r2, 0
- bl decompress_and_copy_tile_data_to_vram
- b _0812EE94
- .align 2, 0
-_0812ED60: .4byte gUnknown_203B108
-_0812ED64: .4byte gTextFlags
-_0812ED68: .4byte gUnknown_84605E8
-_0812ED6C:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- beq _0812ED78
- b _0812EEA2
-_0812ED78:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- b _0812EE94
-_0812ED9A:
- movs r0, 0xE2
- lsls r0, 1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1E
- movs r2, 0
- movs r3, 0xD
- bl sub_810F558
- ldr r1, _0812EE1C @ =0x0000d00f
- movs r4, 0x1E
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- ldr r1, _0812EE20 @ =0x0000d002
- str r4, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- ldr r1, _0812EE24 @ =0x0000d00e
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect_Palette0
- bl sub_812EEB0
- ldr r2, _0812EE28 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0
- str r0, [sp]
- movs r1, 0xE6
- movs r2, 0x95
- movs r3, 0
- bl sub_8006300
- ldr r2, _0812EE2C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x12]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _0812EE94
- .align 2, 0
-_0812EE1C: .4byte 0x0000d00f
-_0812EE20: .4byte 0x0000d002
-_0812EE24: .4byte 0x0000d00e
-_0812EE28: .4byte gPaletteFade
-_0812EE2C: .4byte gTasks
-_0812EE30:
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- ldr r0, _0812EE80 @ =sub_812EAFC
- bl SetVBlankCallback
- ldr r0, _0812EE84 @ =0x00000143
- bl PlayBGM
- ldr r1, _0812EE88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0812EE8C @ =sub_812F0B0
- str r1, [r0]
- ldr r0, _0812EE90 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- strb r4, [r0]
- b _0812EEA2
- .align 2, 0
-_0812EE80: .4byte sub_812EAFC
-_0812EE84: .4byte 0x00000143
-_0812EE88: .4byte gTasks
-_0812EE8C: .4byte sub_812F0B0
-_0812EE90: .4byte gMain
-_0812EE94:
- ldr r1, _0812EEAC @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0812EEA2:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EEAC: .4byte gMain
- thumb_func_end sub_812EB58
-
- thumb_func_start sub_812EEB0
-sub_812EEB0: @ 812EEB0
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _0812EF38 @ =gUnknown_8415D2C
- ldr r1, _0812EF3C @ =gUnknown_8415D48
- movs r5, 0x1
- str r5, [sp]
- movs r2, 0
- movs r3, 0
- bl sub_810F650
- ldr r1, _0812EF40 @ =gUnknown_8462EB4
- ldr r4, _0812EF44 @ =gUnknown_203B108
- ldr r0, [r4]
- ldrh r0, [r0, 0x12]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl AddWindow
- ldr r1, [r4]
- movs r6, 0
- strh r0, [r1, 0x14]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- str r5, [sp]
- str r5, [sp, 0x4]
- ldr r1, _0812EF48 @ =gUnknown_8462EE8
- str r1, [sp, 0x8]
- str r6, [sp, 0xC]
- ldr r1, _0812EF4C @ =gUnknown_81C582D
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0
- bl AddTextPrinterParametrized2
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- movs r1, 0x3
- bl CopyWindowToVram
- movs r1, 0xC0
- lsls r1, 6
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0x1
- movs r3, 0x3
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EF38: .4byte gUnknown_8415D2C
-_0812EF3C: .4byte gUnknown_8415D48
-_0812EF40: .4byte gUnknown_8462EB4
-_0812EF44: .4byte gUnknown_203B108
-_0812EF48: .4byte gUnknown_8462EE8
-_0812EF4C: .4byte gUnknown_81C582D
- thumb_func_end sub_812EEB0
-
- thumb_func_start sub_812EF50
-sub_812EF50: @ 812EF50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
- ldr r4, _0812EF80 @ =gUnknown_203B108
- ldr r0, [r4]
- ldrh r1, [r0, 0x12]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r1, 0
- bne _0812EF84
- bl sub_812EEB0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- b _0812F06A
- .align 2, 0
-_0812EF80: .4byte gUnknown_203B108
-_0812EF84:
- ldr r0, _0812F038 @ =gUnknown_8415D50
- movs r1, 0
- movs r2, 0x1
- bl sub_810F5E8
- lsls r1, r7, 1
- mov r9, r1
- mov r3, r8
- lsls r3, 2
- mov r10, r3
- adds r5, r4, 0
-_0812EF9A:
- ldr r1, _0812F03C @ =gUnknown_8462EB4
- ldr r0, [r5]
- ldrh r0, [r0, 0x12]
- lsls r0, 2
- adds r0, r1
- lsls r1, r6, 3
- ldr r0, [r0]
- adds r0, r1
- bl AddWindow
- ldr r1, [r5]
- lsls r4, r6, 1
- adds r1, 0x14
- adds r1, r4
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x1
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _0812F040 @ =gUnknown_8462EE8
- str r1, [sp, 0x8]
- movs r1, 0
- str r1, [sp, 0xC]
- ldr r2, _0812F044 @ =gUnknown_8463074
- mov r3, r9
- adds r1, r3, r7
- adds r1, r6, r1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x6
- movs r3, 0
- bl AddTextPrinterParametrized2
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x3
- bl CopyWindowToVram
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _0812EF9A
- ldr r0, _0812F048 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- cmp r0, 0x1
- bne _0812F050
- ldr r1, _0812F04C @ =gUnknown_8460D94
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0x1
- movs r3, 0x3
- bl CopyToBgTilemapBufferRect
- b _0812F064
- .align 2, 0
-_0812F038: .4byte gUnknown_8415D50
-_0812F03C: .4byte gUnknown_8462EB4
-_0812F040: .4byte gUnknown_8462EE8
-_0812F044: .4byte gUnknown_8463074
-_0812F048: .4byte gUnknown_203B108
-_0812F04C: .4byte gUnknown_8460D94
-_0812F050:
- ldr r1, _0812F0A0 @ =gUnknown_8460E34
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0x1
- movs r3, 0x3
- bl CopyToBgTilemapBufferRect
-_0812F064:
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
-_0812F06A:
- movs r0, 0x2
- bl stdpal_get
- ldrh r2, [r0, 0x1E]
- ldr r0, _0812F0A4 @ =0xffffdfff
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0812F0A8 @ =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0812F0AC @ =sub_812F0B0
- str r1, [r0]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F0A0: .4byte gUnknown_8460E34
-_0812F0A4: .4byte 0xffffdfff
-_0812F0A8: .4byte gTasks
-_0812F0AC: .4byte sub_812F0B0
- thumb_func_end sub_812EF50
-
- thumb_func_start sub_812F0B0
-sub_812F0B0: @ 812F0B0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0812F10C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812F162
- ldr r0, _0812F110 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0812F162
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0812F120
- ldr r1, _0812F114 @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x26]
- ldr r0, _0812F118 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- adds r4, r2, 0
- cmp r0, 0x1
- bhi _0812F150
- movs r0, 0x2
- bl stdpal_get
- ldrh r2, [r0, 0x1E]
- ldr r0, _0812F11C @ =0xffffdfff
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0812F150
- .align 2, 0
-_0812F10C: .4byte gPaletteFade
-_0812F110: .4byte gMain
-_0812F114: .4byte gTasks
-_0812F118: .4byte gUnknown_203B108
-_0812F11C: .4byte 0xffffdfff
-_0812F120:
- ldr r0, _0812F16C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- cmp r0, 0
- beq _0812F162
- ldr r1, _0812F170 @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0812F174 @ =0x0000ffff
- strh r1, [r0, 0x26]
- movs r0, 0x2
- bl stdpal_get
- ldrh r2, [r0, 0x1E]
- ldr r0, _0812F178 @ =0xffffdfff
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0812F150:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0812F170 @ =gTasks
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812F17C @ =sub_812F180
- str r0, [r1]
-_0812F162:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F16C: .4byte gUnknown_203B108
-_0812F170: .4byte gTasks
-_0812F174: .4byte 0x0000ffff
-_0812F178: .4byte 0xffffdfff
-_0812F17C: .4byte sub_812F180
- thumb_func_end sub_812F0B0
-
- thumb_func_start sub_812F180
-sub_812F180: @ 812F180
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r0, _0812F1B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812F260
- ldr r1, _0812F1B4 @ =gUnknown_203B108
- ldr r0, [r1]
- ldrh r0, [r0, 0x12]
- adds r5, r1, 0
- cmp r0, 0
- bne _0812F1B8
- movs r1, 0x1
- mov r8, r1
- b _0812F1C4
- .align 2, 0
-_0812F1B0: .4byte gPaletteFade
-_0812F1B4: .4byte gUnknown_203B108
-_0812F1B8:
- cmp r0, 0
- blt _0812F1C4
- cmp r0, 0x2
- bgt _0812F1C4
- movs r2, 0x3
- mov r8, r2
-_0812F1C4:
- ldr r2, [r5]
- ldr r1, _0812F244 @ =gTasks
- lsls r3, r7, 2
- adds r0, r3, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- ldrh r1, [r2, 0x12]
- adds r0, r1
- movs r1, 0
- strh r0, [r2, 0x12]
- lsls r0, 16
- lsrs r0, 16
- mov r9, r3
- cmp r0, 0x2
- bhi _0812F24C
- movs r6, 0
- cmp r1, r8
- bcs _0812F234
-_0812F1EA:
- ldr r0, [r5]
- lsls r4, r6, 1
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- bl ClearWindowTilemap
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- bl RemoveWindow
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- movs r1, 0
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r8
- bcc _0812F1EA
-_0812F234:
- ldr r0, _0812F244 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812F248 @ =sub_812EF50
- str r0, [r1]
- b _0812F260
- .align 2, 0
-_0812F244: .4byte gTasks
-_0812F248: .4byte sub_812EF50
-_0812F24C:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0812F270 @ =sub_812F274
- str r0, [r4]
-_0812F260:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F270: .4byte sub_812F274
- thumb_func_end sub_812F180
-
- thumb_func_start sub_812F274
-sub_812F274: @ 812F274
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
- ldr r0, _0812F32C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812F320
- ldr r5, _0812F330 @ =gUnknown_203B108
-_0812F292:
- ldr r0, [r5]
- lsls r4, r6, 1
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- bl ClearWindowTilemap
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- ldrb r0, [r0]
- bl RemoveWindow
- ldr r0, [r5]
- adds r0, 0x14
- adds r0, r4
- movs r7, 0
- strh r7, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _0812F292
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- ldr r0, _0812F334 @ =gTasks
- mov r1, r8
- lsls r4, r1, 2
- add r4, r8
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x12]
- bl sub_8006398
- ldr r0, _0812F330 @ =gUnknown_203B108
- ldr r0, [r0]
- strh r7, [r0, 0x14]
- adds r0, 0x14
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x20
- strh r0, [r4, 0xE]
- ldr r0, _0812F338 @ =sub_812F33C
- str r0, [r4]
-_0812F320:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F32C: .4byte gPaletteFade
-_0812F330: .4byte gUnknown_203B108
-_0812F334: .4byte gTasks
-_0812F338: .4byte sub_812F33C
- thumb_func_end sub_812F274
-
- thumb_func_start sub_812F33C
-sub_812F33C: @ 812F33C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- mov r8, r0
- ldr r0, _0812F370 @ =gTasks+0x8
- mov r9, r0
- mov r5, r8
- add r5, r9
- movs r0, 0
- str r0, [sp, 0x14]
- ldrh r0, [r5, 0x6]
- movs r1, 0x6
- ldrsh r6, [r5, r1]
- cmp r6, 0
- beq _0812F374
- subs r0, 0x1
- strh r0, [r5, 0x6]
- b _0812F476
- .align 2, 0
-_0812F370: .4byte gTasks+0x8
-_0812F374:
- movs r0, 0xA2
- lsls r0, 1
- bl PlayBGM
- bl sub_810F71C
- ldr r0, _0812F484 @ =gUnknown_8415D48
- movs r1, 0
- movs r2, 0x1
- bl sub_810F5E8
- ldr r0, _0812F488 @ =gUnknown_8460BA8
- add r1, sp, 0x14
- bl malloc_and_decompress
- adds r1, r0, 0
- ldr r4, _0812F48C @ =gUnknown_203B108
- ldr r0, [r4]
- str r1, [r0, 0x8]
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x13
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0x2
- bl CopyToBgTilemapBufferRect
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- bl Free
- ldr r0, [r4]
- str r6, [r0, 0x8]
- ldr r0, _0812F490 @ =gUnknown_8462EC0
- bl AddWindow
- strh r0, [r5, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldrb r0, [r5, 0x1C]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrb r0, [r5, 0x1C]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, [r4]
- movs r1, 0
- strh r6, [r0, 0x12]
- ldr r0, _0812F494 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x10
- strh r0, [r5, 0x1E]
- ldrb r0, [r5, 0x1C]
- movs r1, 0x1
- str r1, [sp]
- str r6, [sp, 0x4]
- ldr r1, _0812F498 @ =gUnknown_8462EEC
- str r1, [sp, 0x8]
- str r6, [sp, 0xC]
- ldr r1, _0812F49C @ =gUnknown_8462EF0
- ldr r1, [r1]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x3
- movs r3, 0x5
- bl AddTextPrinterParametrized2
- str r6, [sp]
- movs r0, 0
- movs r1, 0xE2
- movs r2, 0x91
- movs r3, 0
- bl sub_8006300
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- ldr r4, _0812F4A0 @ =gSprites
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- ands r3, r1
- strb r3, [r0, 0x5]
- adds r0, r7, 0
- movs r1, 0
- bl sub_8130FD4
- movs r0, 0x1
- negs r0, r0
- str r6, [sp]
- movs r1, 0x2
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, _0812F4A4 @ =sub_812F4A8
- str r1, [r0]
-_0812F476:
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F484: .4byte gUnknown_8415D48
-_0812F488: .4byte gUnknown_8460BA8
-_0812F48C: .4byte gUnknown_203B108
-_0812F490: .4byte gUnknown_8462EC0
-_0812F494: .4byte gMain
-_0812F498: .4byte gUnknown_8462EEC
-_0812F49C: .4byte gUnknown_8462EF0
-_0812F4A0: .4byte gSprites
-_0812F4A4: .4byte sub_812F4A8
- thumb_func_end sub_812F33C
-
- thumb_func_start sub_812F4A8
-sub_812F4A8: @ 812F4A8
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r6, r0, 3
- ldr r7, _0812F4D8 @ =gTasks+0x8
- adds r5, r6, r7
- ldr r0, _0812F4DC @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r3, r0, r1
- ldrb r1, [r3]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _0812F4CC
- b _0812F6C0
-_0812F4CC:
- lsls r0, r1, 2
- ldr r1, _0812F4E0 @ =_0812F4E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812F4D8: .4byte gTasks+0x8
-_0812F4DC: .4byte gMain
-_0812F4E0: .4byte _0812F4E4
- .align 2, 0
-_0812F4E4:
- .4byte _0812F4F8
- .4byte _0812F538
- .4byte _0812F5B4
- .4byte _0812F644
- .4byte _0812F688
-_0812F4F8:
- ldr r0, _0812F534 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0812F506
- b _0812F71C
-_0812F506:
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- movs r1, 0x85
- lsls r1, 5
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x1F
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- b _0812F676
- .align 2, 0
-_0812F534: .4byte gPaletteFade
-_0812F538:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0812F544
- b _0812F71C
-_0812F544:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812F55C
- ldr r0, _0812F558 @ =gUnknown_203B108
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- b _0812F56A
- .align 2, 0
-_0812F558: .4byte gUnknown_203B108
-_0812F55C:
- ldr r0, _0812F58C @ =gUnknown_203B108
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- cmp r0, 0
- bne _0812F568
- b _0812F71C
-_0812F568:
- subs r0, 0x1
-_0812F56A:
- strh r0, [r1, 0x12]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0812F58C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- cmp r0, 0x3
- bne _0812F594
- ldr r0, _0812F590 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _0812F71C
- .align 2, 0
-_0812F58C: .4byte gUnknown_203B108
-_0812F590: .4byte gMain
-_0812F594:
- ldr r1, _0812F5B0 @ =0x00000241
- movs r0, 0x50
- bl SetGpuReg
- ldrh r0, [r5, 0x1E]
- movs r1, 0x10
- subs r1, r0
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- b _0812F6A2
- .align 2, 0
-_0812F5B0: .4byte 0x00000241
-_0812F5B4:
- ldrh r1, [r5, 0x1E]
- subs r1, 0x2
- strh r1, [r5, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- ble _0812F5D6
- b _0812F71C
-_0812F5D6:
- ldrb r0, [r5, 0x1C]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrb r0, [r5, 0x1C]
- movs r1, 0x1
- str r1, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r1, _0812F620 @ =gUnknown_8462EEC
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r2, _0812F624 @ =gUnknown_8462EF0
- ldr r4, _0812F628 @ =gUnknown_203B108
- ldr r1, [r4]
- ldrh r1, [r1, 0x12]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x3
- movs r3, 0x5
- bl AddTextPrinterParametrized2
- ldr r0, [r4]
- ldrh r0, [r0, 0x12]
- cmp r0, 0
- bne _0812F630
- bl sub_810F71C
- ldr r0, _0812F62C @ =gUnknown_8415D48
- movs r1, 0
- movs r2, 0x1
- bl sub_810F5E8
- b _0812F6A2
- .align 2, 0
-_0812F620: .4byte gUnknown_8462EEC
-_0812F624: .4byte gUnknown_8462EF0
-_0812F628: .4byte gUnknown_203B108
-_0812F62C: .4byte gUnknown_8415D48
-_0812F630:
- bl sub_810F71C
- ldr r0, _0812F640 @ =gUnknown_8415D50
- movs r1, 0
- movs r2, 0x1
- bl sub_810F5E8
- b _0812F6A2
- .align 2, 0
-_0812F640: .4byte gUnknown_8415D50
-_0812F644:
- ldrh r1, [r5, 0x1E]
- adds r1, 0x2
- strh r1, [r5, 0x1E]
- movs r4, 0x10
- subs r0, r4, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- ble _0812F71C
- strh r4, [r5, 0x1E]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
-_0812F676:
- ldr r0, _0812F684 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _0812F71C
- .align 2, 0
-_0812F684: .4byte gMain
-_0812F688:
- ldr r1, _0812F6B4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x12]
- bl sub_8006398
- ldr r0, _0812F6B8 @ =0x00000145
- bl PlayBGM
- movs r0, 0x18
- strh r0, [r5, 0x1E]
-_0812F6A2:
- ldr r1, _0812F6BC @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0812F71C
- .align 2, 0
-_0812F6B4: .4byte gTasks
-_0812F6B8: .4byte 0x00000145
-_0812F6BC: .4byte gMain
-_0812F6C0:
- ldrh r0, [r5, 0x1E]
- movs r1, 0x1E
- ldrsh r4, [r5, r1]
- cmp r4, 0
- beq _0812F6D0
- subs r0, 0x1
- strh r0, [r5, 0x1E]
- b _0812F71C
-_0812F6D0:
- strb r4, [r3]
- ldr r0, _0812F724 @ =gUnknown_203B108
- ldr r0, [r0]
- strh r4, [r0, 0x12]
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0812F728 @ =sub_812F72C
- str r1, [r0]
-_0812F71C:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F724: .4byte gUnknown_203B108
-_0812F728: .4byte sub_812F72C
- thumb_func_end sub_812F4A8
-
- thumb_func_start sub_812F72C
-sub_812F72C: @ 812F72C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r7, r0, 3
- ldr r0, _0812F7B4 @ =gTasks+0x8
- mov r8, r0
- adds r4, r7, r0
- ldr r0, _0812F7B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0812F7A6
- bl sub_810F740
- ldrb r0, [r4, 0x1C]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrb r0, [r4, 0x1C]
- bl ClearWindowTilemap
- ldrb r0, [r4, 0x1C]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4, 0x1C]
- bl RemoveWindow
- strh r6, [r4, 0x1C]
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- adds r0, r5, 0
- movs r1, 0
- bl sub_8131168
- movs r0, 0x50
- strh r0, [r4, 0x6]
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0812F7BC @ =sub_812F7C0
- str r1, [r0]
-_0812F7A6:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F7B4: .4byte gTasks+0x8
-_0812F7B8: .4byte gPaletteFade
-_0812F7BC: .4byte sub_812F7C0
- thumb_func_end sub_812F72C
-
- thumb_func_start sub_812F7C0
-sub_812F7C0: @ 812F7C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r7, r0, 3
- ldr r0, _0812F7EC @ =gTasks+0x8
- mov r8, r0
- adds r5, r7, r0
- movs r0, 0
- str r0, [sp, 0x4]
- ldrh r0, [r5, 0x6]
- movs r1, 0x6
- ldrsh r6, [r5, r1]
- cmp r6, 0
- beq _0812F7F0
- subs r0, 0x1
- strh r0, [r5, 0x6]
- b _0812F862
- .align 2, 0
-_0812F7EC: .4byte gTasks+0x8
-_0812F7F0:
- ldr r0, _0812F870 @ =gUnknown_8460CA4
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r1, r0, 0
- ldr r0, _0812F874 @ =gUnknown_203B108
- ldr r0, [r0]
- str r1, [r0]
- ldr r2, [sp, 0x4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTiles
- ldr r1, _0812F878 @ =gUnknown_8460CE8
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- adds r0, r4, 0
- bl sub_8130F2C
- movs r0, 0x3
- movs r1, 0
- bl sub_81311F4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8130FD4
- movs r0, 0x92
- lsls r0, 1
- bl PlayBGM
- movs r0, 0x1
- negs r0, r0
- str r6, [sp]
- movs r1, 0x5
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x50
- strh r0, [r5, 0x6]
- movs r0, 0x2
- bl ShowBg
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0812F87C @ =sub_812F880
- str r1, [r0]
-_0812F862:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F870: .4byte gUnknown_8460CA4
-_0812F874: .4byte gUnknown_203B108
-_0812F878: .4byte gUnknown_8460CE8
-_0812F87C: .4byte sub_812F880
- thumb_func_end sub_812F7C0
-
- thumb_func_start sub_812F880
-sub_812F880: @ 812F880
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0812F8B0 @ =gTasks+0x8
- adds r2, r0, r1
- ldr r0, _0812F8B4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812F92E
- ldrh r0, [r2, 0x6]
- movs r1, 0x6
- ldrsh r4, [r2, r1]
- cmp r4, 0
- beq _0812F8B8
- subs r0, 0x1
- strh r0, [r2, 0x6]
- b _0812F92E
- .align 2, 0
-_0812F8B0: .4byte gTasks+0x8
-_0812F8B4: .4byte gPaletteFade
-_0812F8B8:
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812F8F0 @ =gUnknown_81C5C78
- ldr r5, _0812F8F4 @ =gStringVar4
- cmp r2, r5
- beq _0812F8FC
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812F8F8 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812F918
- .align 2, 0
-_0812F8F0: .4byte gUnknown_81C5C78
-_0812F8F4: .4byte gStringVar4
-_0812F8F8: .4byte gUnknown_203B108
-_0812F8FC:
- ldr r0, _0812F938 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812F918:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812F93C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812F940 @ =sub_812F944
- str r0, [r1]
-_0812F92E:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F938: .4byte gUnknown_203B108
-_0812F93C: .4byte gTasks
-_0812F940: .4byte sub_812F944
- thumb_func_end sub_812F880
-
- thumb_func_start sub_812F944
-sub_812F944: @ 812F944
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0812F9D6
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812F994 @ =gUnknown_81C5D06
- ldr r5, _0812F998 @ =gStringVar4
- cmp r2, r5
- beq _0812F9A0
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812F99C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812F9BC
- .align 2, 0
-_0812F994: .4byte gUnknown_81C5D06
-_0812F998: .4byte gStringVar4
-_0812F99C: .4byte gUnknown_203B108
-_0812F9A0:
- ldr r0, _0812F9E0 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812F9BC:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, _0812F9E4 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- strh r1, [r0, 0xE]
- ldr r1, _0812F9E8 @ =sub_812F9EC
- str r1, [r0]
-_0812F9D6:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F9E0: .4byte gUnknown_203B108
-_0812F9E4: .4byte gTasks
-_0812F9E8: .4byte sub_812F9EC
- thumb_func_end sub_812F944
-
- thumb_func_start sub_812F9EC
-sub_812F9EC: @ 812F9EC
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0812FA68 @ =gTasks+0x8
- adds r4, r6, r7
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0812FA5E
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0812FA1A
- subs r0, r1, 0x1
- strh r0, [r4, 0x6]
-_0812FA1A:
- adds r4, r7, 0
- subs r4, 0x8
- adds r4, r6, r4
- ldrb r0, [r4, 0x10]
- ldr r1, _0812FA6C @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r3, 0x3E
- adds r3, r2
- mov r12, r3
- ldrb r3, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- mov r3, r12
- strb r1, [r3]
- strh r5, [r2, 0x2E]
- ldrb r1, [r2, 0x5]
- lsrs r1, 4
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x20
- str r2, [sp, 0x8]
- ldr r2, _0812FA70 @ =0xffff1fff
- str r2, [sp, 0xC]
- movs r2, 0x64
- movs r3, 0x42
- bl CreatePokeballSpriteToReleaseMon
- ldr r0, _0812FA74 @ =sub_812FA78
- str r0, [r4]
- strh r5, [r4, 0xE]
-_0812FA5E:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FA68: .4byte gTasks+0x8
-_0812FA6C: .4byte gSprites
-_0812FA70: .4byte 0xffff1fff
-_0812FA74: .4byte sub_812FA78
- thumb_func_end sub_812F9EC
-
- thumb_func_start sub_812FA78
-sub_812FA78: @ 812FA78
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- beq _0812FAA0
- ldr r0, _0812FAFC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0x5F
- ble _0812FAA0
- ldr r0, _0812FB00 @ =sub_812FB4C
- str r0, [r1]
-_0812FAA0:
- ldr r1, _0812FAFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r3, [r2, 0xE]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- ldr r0, _0812FB04 @ =0x00003fff
- cmp r1, r0
- bgt _0812FB40
- adds r0, r3, 0x1
- movs r5, 0
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _0812FB40
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812FB08 @ =gUnknown_81C5D12
- ldr r4, _0812FB0C @ =gStringVar4
- cmp r2, r4
- beq _0812FB14
- adds r0, r4, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812FB10 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- b _0812FB30
- .align 2, 0
-_0812FAFC: .4byte gTasks
-_0812FB00: .4byte sub_812FB4C
-_0812FB04: .4byte 0x00003fff
-_0812FB08: .4byte gUnknown_81C5D12
-_0812FB0C: .4byte gStringVar4
-_0812FB10: .4byte gUnknown_203B108
-_0812FB14:
- ldr r0, _0812FB48 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812FB30:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1D
- movs r1, 0
- bl PlayCry1
-_0812FB40:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FB48: .4byte gUnknown_203B108
- thumb_func_end sub_812FA78
-
- thumb_func_start sub_812FB4C
-sub_812FB4C: @ 812FB4C
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0812FBDA
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812FB9C @ =gUnknown_81C5D4B
- ldr r5, _0812FBA0 @ =gStringVar4
- cmp r2, r5
- beq _0812FBA8
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812FBA4 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812FBC4
- .align 2, 0
-_0812FB9C: .4byte gUnknown_81C5D4B
-_0812FBA0: .4byte gStringVar4
-_0812FBA4: .4byte gUnknown_203B108
-_0812FBA8:
- ldr r0, _0812FBE4 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812FBC4:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812FBE8 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812FBEC @ =sub_812FBF0
- str r0, [r1]
-_0812FBDA:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FBE4: .4byte gUnknown_203B108
-_0812FBE8: .4byte gTasks
-_0812FBEC: .4byte sub_812FBF0
- thumb_func_end sub_812FB4C
-
- thumb_func_start sub_812FBF0
-sub_812FBF0: @ 812FBF0
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0812FC4E
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- ldr r0, _0812FC58 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- ldr r2, _0812FC5C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x20
- str r2, [sp, 0x8]
- ldr r2, _0812FC60 @ =0xffff1f3f
- str r2, [sp, 0xC]
- movs r2, 0x64
- movs r3, 0x42
- bl sub_804BB98
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r0, 0x30
- strh r0, [r4, 0xE]
- movs r0, 0x40
- strh r0, [r4, 0x8]
- ldr r0, _0812FC64 @ =sub_812FC68
- str r0, [r4]
-_0812FC4E:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FC58: .4byte gTasks
-_0812FC5C: .4byte gSprites
-_0812FC60: .4byte 0xffff1f3f
-_0812FC64: .4byte sub_812FC68
- thumb_func_end sub_812FBF0
-
- thumb_func_start sub_812FC68
-sub_812FC68: @ 812FC68
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0812FCA4 @ =gTasks+0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0812FCAC
- cmp r0, 0x17
- bgt _0812FC9A
- ldr r2, _0812FCA8 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_0812FC9A:
- ldrh r0, [r5]
- subs r0, 0x1
- strh r0, [r5]
- b _0812FD62
- .align 2, 0
-_0812FCA4: .4byte gTasks+0x8
-_0812FCA8: .4byte gSprites
-_0812FCAC:
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- cmp r0, 0x30
- bne _0812FCD6
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0812FCE8 @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_0812FCD6:
- ldrh r0, [r5, 0x6]
- movs r1, 0x6
- ldrsh r4, [r5, r1]
- cmp r4, 0
- beq _0812FCEC
- subs r0, 0x1
- strh r0, [r5, 0x6]
- b _0812FD62
- .align 2, 0
-_0812FCE8: .4byte gSprites
-_0812FCEC:
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812FD24 @ =gUnknown_81C5DBD
- ldr r5, _0812FD28 @ =gStringVar4
- cmp r2, r5
- beq _0812FD30
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812FD2C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812FD4C
- .align 2, 0
-_0812FD24: .4byte gUnknown_81C5DBD
-_0812FD28: .4byte gStringVar4
-_0812FD2C: .4byte gUnknown_203B108
-_0812FD30:
- ldr r0, _0812FD6C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812FD4C:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812FD70 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812FD74 @ =sub_812FD78
- str r0, [r1]
-_0812FD62:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FD6C: .4byte gUnknown_203B108
-_0812FD70: .4byte gTasks
-_0812FD74: .4byte sub_812FD78
- thumb_func_end sub_812FC68
-
- thumb_func_start sub_812FD78
-sub_812FD78: @ 812FD78
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r5, r0, 3
- ldr r7, _0812FDB8 @ =gTasks+0x8
- adds r6, r5, r7
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _0812FDB2
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_813144C
- movs r0, 0x30
- strh r0, [r6, 0x6]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _0812FDBC @ =sub_812FDC0
- str r1, [r0]
-_0812FDB2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FDB8: .4byte gTasks+0x8
-_0812FDBC: .4byte sub_812FDC0
- thumb_func_end sub_812FD78
-
- thumb_func_start sub_812FDC0
-sub_812FDC0: @ 812FDC0
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0812FDEC @ =gTasks+0x8
- adds r1, r0, r1
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0812FE72
- ldrh r0, [r1, 0x6]
- movs r2, 0x6
- ldrsh r4, [r1, r2]
- cmp r4, 0
- beq _0812FDF0
- subs r0, 0x1
- strh r0, [r1, 0x6]
- b _0812FE72
- .align 2, 0
-_0812FDEC: .4byte gTasks+0x8
-_0812FDF0:
- movs r2, 0x3C
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r1, 0x2]
- bl sub_8131310
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0812FE34 @ =gUnknown_81C59D5
- ldr r5, _0812FE38 @ =gStringVar4
- cmp r2, r5
- beq _0812FE40
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0812FE3C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _0812FE5C
- .align 2, 0
-_0812FE34: .4byte gUnknown_81C59D5
-_0812FE38: .4byte gStringVar4
-_0812FE3C: .4byte gUnknown_203B108
-_0812FE40:
- ldr r0, _0812FE7C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0812FE5C:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812FE80 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812FE84 @ =sub_812FE88
- str r0, [r1]
-_0812FE72:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FE7C: .4byte gUnknown_203B108
-_0812FE80: .4byte gTasks
-_0812FE84: .4byte sub_812FE88
- thumb_func_end sub_812FDC0
-
- thumb_func_start sub_812FE88
-sub_812FE88: @ 812FE88
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0
- bne _0812FF7E
- ldr r0, _0812FF8C @ =gUnknown_8462EC8
- bl AddWindow
- ldr r1, _0812FF90 @ =gTasks
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r1
- strh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldrh r4, [r5, 0x22]
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F796C
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0xE
- bl SetWindowBorderStyle
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, _0812FF94 @ =gUnknown_203B108
- ldr r0, [r4]
- movs r1, 0x1
- mov r9, r1
- mov r1, r9
- strb r1, [r0, 0x1C]
- ldr r0, [r4]
- movs r6, 0x2
- strb r6, [r0, 0x1D]
- ldr r0, [r4]
- movs r1, 0x3
- mov r8, r1
- mov r1, r8
- strb r1, [r0, 0x1E]
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x1C
- str r1, [sp]
- str r7, [sp, 0x4]
- ldr r1, _0812FF98 @ =gUnknown_8415D93
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x1
- bl box_print
- ldr r0, [r4]
- mov r1, r9
- strb r1, [r0, 0x1C]
- ldr r0, [r4]
- strb r6, [r0, 0x1D]
- ldr r0, [r4]
- mov r1, r8
- strb r1, [r0, 0x1E]
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x1C
- str r1, [sp]
- str r7, [sp, 0x4]
- ldr r1, _0812FF9C @ =gUnknown_8415D97
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x11
- bl box_print
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x22]
- lsls r1, 24
- lsrs r1, 24
- str r0, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x1
- bl sub_810F7D8
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _0812FFA0 @ =sub_812FFA4
- str r0, [r5]
-_0812FF7E:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FF8C: .4byte gUnknown_8462EC8
-_0812FF90: .4byte gTasks
-_0812FF94: .4byte gUnknown_203B108
-_0812FF98: .4byte gUnknown_8415D93
-_0812FF9C: .4byte gUnknown_8415D97
-_0812FFA0: .4byte sub_812FFA4
- thumb_func_end sub_812FE88
-
- thumb_func_start sub_812FFA4
-sub_812FFA4: @ 812FFA4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0812FFC8
- cmp r1, 0
- bgt _0812FFC4
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- blt _0812FFCE
- b _0812FFDC
-_0812FFC4:
- cmp r1, 0x1
- bne _0812FFCE
-_0812FFC8:
- ldr r0, _0812FFE4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- strb r1, [r0, 0x8]
-_0812FFCE:
- ldr r0, _0812FFE8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812FFEC @ =sub_812FFF0
- str r0, [r1]
-_0812FFDC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FFE4: .4byte gSaveBlock2Ptr
-_0812FFE8: .4byte gTasks
-_0812FFEC: .4byte sub_812FFF0
- thumb_func_end sub_812FFA4
-
- thumb_func_start sub_812FFF0
-sub_812FFF0: @ 812FFF0
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- ldr r6, _08130048 @ =gTasks+0x8
- adds r4, r5, r6
- ldrb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_810F4D8
- ldrb r0, [r4, 0x1A]
- bl RemoveWindow
- movs r0, 0
- strh r0, [r4, 0x1A]
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- subs r6, 0x8
- adds r5, r6
- ldr r0, _0813004C @ =sub_8130050
- str r0, [r5]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130048: .4byte gTasks+0x8
-_0813004C: .4byte sub_8130050
- thumb_func_end sub_812FFF0
-
- thumb_func_start sub_8130050
-sub_8130050: @ 8130050
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813006C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08130070
- movs r0, 0
- movs r1, 0
- bl sub_81311F4
- b _08130078
- .align 2, 0
-_0813006C: .4byte gSaveBlock2Ptr
-_08130070:
- movs r0, 0x1
- movs r1, 0
- bl sub_81311F4
-_08130078:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_81315CC
- ldr r1, _08130098 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x20
- strh r1, [r0, 0xE]
- ldr r1, _0813009C @ =sub_81300A0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130098: .4byte gTasks
-_0813009C: .4byte sub_81300A0
- thumb_func_end sub_8130050
-
- thumb_func_start sub_81300A0
-sub_81300A0: @ 81300A0
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _081300CC @ =gTasks+0x8
- adds r1, r0, r1
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0813014A
- ldrh r0, [r1, 0x6]
- movs r2, 0x6
- ldrsh r4, [r1, r2]
- cmp r4, 0
- beq _081300D0
- subs r0, 0x1
- strh r0, [r1, 0x6]
- b _0813014A
- .align 2, 0
-_081300CC: .4byte gTasks+0x8
-_081300D0:
- strh r4, [r1, 0x2]
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0813010C @ =gUnknown_81C5DEA
- ldr r5, _08130110 @ =gStringVar4
- cmp r2, r5
- beq _08130118
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _08130114 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- bl AddTextPrinterParametrized
- b _08130134
- .align 2, 0
-_0813010C: .4byte gUnknown_81C5DEA
-_08130110: .4byte gStringVar4
-_08130114: .4byte gUnknown_203B108
-_08130118:
- ldr r0, _08130154 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_08130134:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _08130158 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813015C @ =sub_8130160
- str r0, [r1]
-_0813014A:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130154: .4byte gUnknown_203B108
-_08130158: .4byte gTasks
-_0813015C: .4byte sub_8130160
- thumb_func_end sub_81300A0
-
- thumb_func_start sub_8130160
-sub_8130160: @ 8130160
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0813019A
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081301A4 @ =gUnknown_203B108
- ldr r0, [r0]
- strh r4, [r0, 0x10]
- ldr r1, _081301A8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _081301AC @ =sub_81303B4
- str r1, [r0]
-_0813019A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081301A4: .4byte gUnknown_203B108
-_081301A8: .4byte gTasks
-_081301AC: .4byte sub_81303B4
- thumb_func_end sub_8130160
-
- thumb_func_start sub_81301B0
-sub_81301B0: @ 81301B0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _081301F8 @ =gTasks+0x8
- adds r4, r6, r7
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _08130218
- ldrh r2, [r4, 0x2]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r1, 0x3C
- negs r1, r1
- cmp r0, r1
- ble _08130200
- subs r0, r2, 0x2
- strh r0, [r4, 0x2]
- ldr r1, _081301FC @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0x2
- movs r2, 0x2
- bl ChangeBgX
- b _08130218
- .align 2, 0
-_081301F8: .4byte gTasks+0x8
-_081301FC: .4byte gSpriteCoordOffsetX
-_08130200:
- strh r1, [r4, 0x2]
- ldr r0, _08130220 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- adds r0, r5, 0
- bl sub_8131660
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _08130224 @ =sub_8130324
- str r1, [r0]
-_08130218:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130220: .4byte gUnknown_203B108
-_08130224: .4byte sub_8130324
- thumb_func_end sub_81301B0
-
- thumb_func_start sub_8130228
-sub_8130228: @ 8130228
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _08130278 @ =gUnknown_203B108
- ldr r0, [r4]
- ldrb r1, [r0, 0x10]
- adds r0, r6, 0
- bl sub_8131660
- ldr r0, [r4]
- ldrh r4, [r0, 0x10]
- cmp r4, 0
- bne _081302A6
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _0813027C @ =gUnknown_81C5DEA
- ldr r5, _08130280 @ =gStringVar4
- cmp r2, r5
- beq _08130284
- adds r0, r5, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r5, 0
- movs r3, 0
- bl AddTextPrinterParametrized
- b _0813029C
- .align 2, 0
-_08130278: .4byte gUnknown_203B108
-_0813027C: .4byte gUnknown_81C5DEA
-_08130280: .4byte gStringVar4
-_08130284:
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- movs r3, 0
- bl AddTextPrinterParametrized
-_0813029C:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- b _08130306
-_081302A6:
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _081302DC @ =gUnknown_81C5E91
- ldr r4, _081302E0 @ =gStringVar4
- cmp r2, r4
- beq _081302E4
- adds r0, r4, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- movs r3, 0
- bl AddTextPrinterParametrized
- b _081302FE
- .align 2, 0
-_081302DC: .4byte gUnknown_81C5E91
-_081302E0: .4byte gStringVar4
-_081302E4:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- movs r3, 0
- bl AddTextPrinterParametrized
-_081302FE:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_08130306:
- ldr r0, _0813031C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08130320 @ =sub_8130324
- str r0, [r1]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813031C: .4byte gTasks
-_08130320: .4byte sub_8130324
- thumb_func_end sub_8130228
-
- thumb_func_start sub_8130324
-sub_8130324: @ 8130324
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0813037C @ =gTasks+0x8
- adds r5, r6, r7
- bl ProcessMenuInput
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- beq _08130388
- cmp r4, 0
- ble _081303A8
- cmp r4, 0x4
- bgt _081303A8
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r5, 0x1A]
- movs r1, 0x1
- bl sub_810F4D8
- ldrb r0, [r5, 0x1A]
- bl RemoveWindow
- ldr r0, _08130380 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- subs r1, r4, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl sub_8131754
- movs r0, 0x1
- strh r0, [r5, 0x1E]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _08130384 @ =sub_8130464
- b _081303A6
- .align 2, 0
-_0813037C: .4byte gTasks+0x8
-_08130380: .4byte gUnknown_203B108
-_08130384: .4byte sub_8130464
-_08130388:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _081303B0 @ =sub_81303B4
-_081303A6:
- str r1, [r0]
-_081303A8:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081303B0: .4byte sub_81303B4
- thumb_func_end sub_8130324
-
- thumb_func_start sub_81303B4
-sub_81303B4: @ 81303B4
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _081303F8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0813044C
- ldr r4, _081303FC @ =gUnknown_203B108
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- movs r1, 0
- bl sub_8131754
- ldr r0, [r4]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _08130408
- ldr r0, _08130400 @ =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r2, [r1, 0x8]
- str r5, [sp]
- ldr r0, _08130404 @ =sub_8130C64
- str r0, [sp, 0x4]
- movs r0, 0
- movs r3, 0
- bl DoNamingScreen
- b _08130440
- .align 2, 0
-_081303F8: .4byte gPaletteFade
-_081303FC: .4byte gUnknown_203B108
-_08130400: .4byte gSaveBlock2Ptr
-_08130404: .4byte sub_8130C64
-_08130408:
- ldr r0, _08130454 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_810F4D8
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- ldr r0, _08130458 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, _0813045C @ =0x00003a4c
- adds r1, r0
- str r5, [sp]
- ldr r0, _08130460 @ =sub_8130C64
- str r0, [sp, 0x4]
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl DoNamingScreen
-_08130440:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8131168
- bl FreeAllWindowBuffers
-_0813044C:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130454: .4byte gTasks
-_08130458: .4byte gSaveBlock1Ptr
-_0813045C: .4byte 0x00003a4c
-_08130460: .4byte sub_8130C64
- thumb_func_end sub_81303B4
-
- thumb_func_start sub_8130464
-sub_8130464: @ 8130464
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _081304A0 @ =gTasks+0x8
- adds r5, r6, r7
- ldr r0, _081304A4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08130544
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08130500
- ldr r0, _081304A8 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _081304B4
- ldr r0, _081304AC @ =gStringVar4
- ldr r1, _081304B0 @ =gUnknown_81C5E13
- bl StringExpandPlaceholders
- b _081304BC
- .align 2, 0
-_081304A0: .4byte gTasks+0x8
-_081304A4: .4byte gPaletteFade
-_081304A8: .4byte gUnknown_203B108
-_081304AC: .4byte gStringVar4
-_081304B0: .4byte gUnknown_81C5E13
-_081304B4:
- ldr r0, _081304F4 @ =gStringVar4
- ldr r1, _081304F8 @ =gUnknown_81C5EB5
- bl StringExpandPlaceholders
-_081304BC:
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _081304F4 @ =gStringVar4
- ldr r0, _081304FC @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- movs r4, 0
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- strh r4, [r5, 0x1E]
- movs r0, 0x19
- strh r0, [r5, 0x6]
- b _08130544
- .align 2, 0
-_081304F4: .4byte gStringVar4
-_081304F8: .4byte gUnknown_81C5EB5
-_081304FC: .4byte gUnknown_203B108
-_08130500:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _08130544
- ldrh r0, [r5, 0x6]
- movs r1, 0x6
- ldrsh r4, [r5, r1]
- cmp r4, 0
- beq _0813051C
- subs r0, 0x1
- strh r0, [r5, 0x6]
- b _08130544
-_0813051C:
- bl sub_80F796C
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0813054C @ =gUnknown_8462ED0
- str r0, [sp]
- movs r0, 0xE
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl sub_810FF60
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _08130550 @ =sub_8130554
- str r1, [r0]
-_08130544:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813054C: .4byte gUnknown_8462ED0
-_08130550: .4byte sub_8130554
- thumb_func_end sub_8130464
-
- thumb_func_start sub_8130554
-sub_8130554: @ 8130554
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r5, r0, 24
- cmp r5, 0
- beq _0813057C
- cmp r5, 0
- bgt _08130576
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- beq _08130604
- b _0813063E
-_08130576:
- cmp r5, 0x1
- beq _08130604
- b _0813063E
-_0813057C:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _081305B0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r6, r0, r1
- movs r0, 0x28
- strh r0, [r6, 0xE]
- ldr r7, _081305B4 @ =gUnknown_203B108
- ldr r0, [r7]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _081305BC
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_813144C
- ldr r0, _081305B8 @ =sub_8130650
- str r0, [r6]
- b _0813063E
- .align 2, 0
-_081305B0: .4byte gTasks
-_081305B4: .4byte gUnknown_203B108
-_081305B8: .4byte sub_8130650
-_081305BC:
- ldr r4, _081305F8 @ =gStringVar4
- ldr r1, _081305FC @ =gUnknown_81C5EC5
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r0, [r7]
- ldrb r3, [r0, 0x1F]
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _08130600 @ =sub_8130694
- str r0, [r6]
- b _0813063E
- .align 2, 0
-_081305F8: .4byte gStringVar4
-_081305FC: .4byte gUnknown_81C5EC5
-_08130600: .4byte sub_8130694
-_08130604:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08130624 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _08130630
- ldr r0, _08130628 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813062C @ =sub_8130160
- b _0813063C
- .align 2, 0
-_08130624: .4byte gUnknown_203B108
-_08130628: .4byte gTasks
-_0813062C: .4byte sub_8130160
-_08130630:
- ldr r0, _08130648 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813064C @ =sub_8130228
-_0813063C:
- str r0, [r1]
-_0813063E:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130648: .4byte gTasks
-_0813064C: .4byte sub_8130228
- thumb_func_end sub_8130554
-
- thumb_func_start sub_8130650
-sub_8130650: @ 8130650
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r5, r1, 3
- ldr r6, _0813067C @ =gTasks+0x8
- adds r4, r5, r6
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813068A
- bl sub_8131310
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130680
- subs r0, r1, 0x1
- strh r0, [r4, 0x6]
- b _0813068A
- .align 2, 0
-_0813067C: .4byte gTasks+0x8
-_08130680:
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _08130690 @ =sub_81306D4
- str r1, [r0]
-_0813068A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130690: .4byte sub_81306D4
- thumb_func_end sub_8130650
-
- thumb_func_start sub_8130694
-sub_8130694: @ 8130694
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _081306C4
- movs r0, 0
- movs r1, 0x1
- bl sub_80F6F54
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_813144C
- ldr r0, _081306CC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _081306D0 @ =sub_81307D0
- str r0, [r1]
-_081306C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081306CC: .4byte gTasks
-_081306D0: .4byte sub_81307D0
- thumb_func_end sub_8130694
-
- thumb_func_start sub_81306D4
-sub_81306D4: @ 81306D4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- ldr r0, _08130710 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r1, 0
- strh r1, [r4, 0xA]
- ldr r0, _08130714 @ =gSpriteCoordOffsetX
- strh r1, [r0]
- movs r0, 0x2
- bl sub_81311F4
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_81315CC
- ldr r0, _08130718 @ =sub_813071C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130710: .4byte gTasks
-_08130714: .4byte gSpriteCoordOffsetX
-_08130718: .4byte sub_813071C
- thumb_func_end sub_81306D4
-
- thumb_func_start sub_813071C
-sub_813071C: @ 813071C
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08130770 @ =gTasks+0x8
- adds r0, r1
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _081307BC
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r2, _08130774 @ =gUnknown_81C5E2E
- ldr r4, _08130778 @ =gStringVar4
- cmp r2, r4
- beq _08130780
- adds r0, r4, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- ldr r0, _0813077C @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- b _0813079E
- .align 2, 0
-_08130770: .4byte gTasks+0x8
-_08130774: .4byte gUnknown_81C5E2E
-_08130778: .4byte gStringVar4
-_0813077C: .4byte gUnknown_203B108
-_08130780:
- ldr r0, _081307C4 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParametrized
-_0813079E:
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, _081307C4 @ =gUnknown_203B108
- ldr r1, [r0]
- movs r0, 0x1
- strh r0, [r1, 0x10]
- ldr r1, _081307C8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _081307CC @ =sub_81301B0
- str r1, [r0]
-_081307BC:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081307C4: .4byte gUnknown_203B108
-_081307C8: .4byte gTasks
-_081307CC: .4byte sub_81301B0
- thumb_func_end sub_813071C
-
- thumb_func_start sub_81307D0
-sub_81307D0: @ 81307D0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081307FC @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08130846
- bl sub_8131310
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130800
- subs r0, r1, 0x1
- strh r0, [r4, 0x6]
- b _08130846
- .align 2, 0
-_081307FC: .4byte gTasks+0x8
-_08130800:
- ldr r0, _08130814 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08130818
- movs r0, 0
- movs r1, 0
- bl sub_81311F4
- b _08130820
- .align 2, 0
-_08130814: .4byte gSaveBlock2Ptr
-_08130818:
- movs r0, 0x1
- movs r1, 0
- bl sub_81311F4
-_08130820:
- ldr r0, _0813084C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r1, 0
- strh r1, [r4, 0xA]
- ldr r0, _08130850 @ =gSpriteCoordOffsetX
- strh r1, [r0]
- movs r0, 0x2
- movs r2, 0
- bl ChangeBgX
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_81315CC
- ldr r0, _08130854 @ =sub_8130858
- str r0, [r4]
-_08130846:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813084C: .4byte gTasks
-_08130850: .4byte gSpriteCoordOffsetX
-_08130854: .4byte sub_8130858
- thumb_func_end sub_81307D0
-
- thumb_func_start sub_8130858
-sub_8130858: @ 8130858
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081308BC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081308B4
- ldr r4, _081308C0 @ =gStringVar4
- ldr r1, _081308C4 @ =gUnknown_81C5EF4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- bl sub_80F6EE4
- ldr r0, _081308C8 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrb r3, [r0, 0x1F]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1E
- strh r0, [r5, 0xE]
- ldr r0, _081308CC @ =sub_81308D0
- str r0, [r5]
-_081308B4:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081308BC: .4byte gTasks
-_081308C0: .4byte gStringVar4
-_081308C4: .4byte gUnknown_81C5EF4
-_081308C8: .4byte gUnknown_203B108
-_081308CC: .4byte sub_81308D0
- thumb_func_end sub_8130858
-
- thumb_func_start sub_81308D0
-sub_81308D0: @ 81308D0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _0813090A
- ldr r0, _081308FC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r4, r1, r0
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130900
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _0813090A
- .align 2, 0
-_081308FC: .4byte gTasks
-_08130900:
- movs r0, 0x4
- bl FadeOutBGM
- ldr r0, _08130910 @ =sub_8130914
- str r0, [r4]
-_0813090A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130910: .4byte sub_8130914
- thumb_func_end sub_81308D0
-
- thumb_func_start sub_8130914
-sub_8130914: @ 8130914
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813093C @ =gUnknown_203B108
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0x12]
- adds r0, r4, 0
- bl sub_8130A38
- adds r0, r4, 0
- bl sub_8130ADC
- adds r0, r4, 0
- bl sub_8130940
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813093C: .4byte gUnknown_203B108
- thumb_func_end sub_8130914
-
- thumb_func_start sub_8130940
-sub_8130940: @ 8130940
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _08130978 @ =gTasks+0x8
- adds r5, r4, r6
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x1
- bl SetBgAttribute
- movs r1, 0
- strh r1, [r5]
- strh r1, [r5, 0x2]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r5, 0x4]
- strh r1, [r5, 0x1E]
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0813097C @ =sub_8130980
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130978: .4byte gTasks+0x8
-_0813097C: .4byte sub_8130980
- thumb_func_end sub_8130940
-
- thumb_func_start sub_8130980
-sub_8130980: @ 8130980
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r7, r1, 3
- ldr r0, _08130A2C @ =gTasks+0x8
- mov r8, r0
- adds r5, r7, r0
- ldr r0, _08130A30 @ =gUnknown_203B108
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- ldrh r4, [r1, 0x12]
- adds r0, r4, 0
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- bne _08130A1E
- cmp r4, 0x28
- bne _081309BE
- movs r0, 0x27
- bl PlaySE
-_081309BE:
- ldrh r0, [r5, 0x4]
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r5, 0x4]
- subs r0, 0x8
- lsls r0, 16
- asrs r0, 16
- bl sub_80D8B90
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r5, 0x4]
- subs r0, 0x10
- lsls r0, 16
- asrs r0, 16
- bl sub_80D8B90
- movs r1, 0xF0
- lsls r1, 7
- movs r2, 0xA8
- lsls r2, 7
- movs r3, 0x54
- str r3, [sp]
- lsls r4, 16
- asrs r4, 16
- str r4, [sp, 0x4]
- lsls r0, 16
- asrs r0, 16
- str r0, [sp, 0x8]
- str r6, [sp, 0xC]
- movs r0, 0x2
- movs r3, 0x78
- bl SetBgAffine
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0x60
- bgt _08130A1E
- movs r0, 0x1
- strh r0, [r5, 0x1E]
- movs r0, 0x24
- strh r0, [r5]
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _08130A34 @ =sub_8130BA8
- str r1, [r0]
-_08130A1E:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130A2C: .4byte gTasks+0x8
-_08130A30: .4byte gUnknown_203B108
-_08130A34: .4byte sub_8130BA8
- thumb_func_end sub_8130980
-
- thumb_func_start sub_8130A38
-sub_8130A38: @ 8130A38
- push {lr}
- sub sp, 0x4
- ldr r0, _08130A74 @ =sub_8130A80
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130A78 @ =gTasks+0x8
- adds r1, r0
- movs r0, 0
- strh r0, [r1]
- strh r0, [r1, 0x2]
- strh r0, [r1, 0x4]
- strh r0, [r1, 0x1E]
- ldr r0, _08130A7C @ =0xffff0fcf
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08130A74: .4byte sub_8130A80
-_08130A78: .4byte gTasks+0x8
-_08130A7C: .4byte 0xffff0fcf
- thumb_func_end sub_8130A38
-
- thumb_func_start sub_8130A80
-sub_8130A80: @ 8130A80
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08130AB8 @ =gTasks+0x8
- adds r2, r0, r1
- ldr r0, _08130ABC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08130AD4
- ldrh r0, [r2, 0x2]
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- cmp r1, 0
- beq _08130AC0
- adds r0, r4, 0
- bl DestroyTask
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8131168
- b _08130AD4
- .align 2, 0
-_08130AB8: .4byte gTasks+0x8
-_08130ABC: .4byte gPaletteFade
-_08130AC0:
- adds r0, 0x1
- strh r0, [r2, 0x2]
- movs r0, 0xF0
- lsls r0, 8
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08130AD4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8130A80
-
- thumb_func_start sub_8130ADC
-sub_8130ADC: @ 8130ADC
- push {lr}
- ldr r0, _08130B08 @ =sub_8130B10
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130B0C @ =gTasks+0x8
- adds r1, r0
- movs r2, 0x8
- strh r2, [r1]
- movs r0, 0
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- strh r0, [r1, 0x1C]
- strh r0, [r1, 0x1E]
- pop {r0}
- bx r0
- .align 2, 0
-_08130B08: .4byte sub_8130B10
-_08130B0C: .4byte gTasks+0x8
- thumb_func_end sub_8130ADC
-
- thumb_func_start sub_8130B10
-sub_8130B10: @ 8130B10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08130B30 @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r1, [r4]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130B34
- subs r0, r1, 0x1
- strh r0, [r4]
- b _08130B96
- .align 2, 0
-_08130B30: .4byte gTasks+0x8
-_08130B34:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _08130B4A
- ldrh r1, [r4, 0x4]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08130B4A
- subs r0, r1, 0x1
- strh r0, [r4, 0x4]
-_08130B4A:
- ldrb r2, [r4, 0x1C]
- ldr r7, _08130B9C @ =0x00007fff
- movs r0, 0x40
- movs r1, 0x20
- adds r3, r7, 0
- bl BlendPalette
- ldrh r1, [r4, 0x1C]
- adds r1, 0x1
- strh r1, [r4, 0x1C]
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- strh r0, [r4]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xE
- ble _08130B96
- movs r2, 0
- ldr r6, _08130BA0 @ =gPlttBufferFaded
- adds r3, r7, 0
- ldr r4, _08130BA4 @ =gPlttBufferUnfaded
-_08130B78:
- adds r0, r2, 0
- adds r0, 0x40
- lsls r0, 1
- adds r1, r0, r6
- strh r3, [r1]
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _08130B78
- adds r0, r5, 0
- bl DestroyTask
-_08130B96:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130B9C: .4byte 0x00007fff
-_08130BA0: .4byte gPlttBufferFaded
-_08130BA4: .4byte gPlttBufferUnfaded
- thumb_func_end sub_8130B10
-
- thumb_func_start sub_8130BA8
-sub_8130BA8: @ 8130BA8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08130BCC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08130BD0
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _08130BE2
- .align 2, 0
-_08130BCC: .4byte gTasks
-_08130BD0:
- str r1, [sp]
- movs r0, 0x30
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08130BEC @ =sub_8130BF0
- str r0, [r4]
-_08130BE2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130BEC: .4byte sub_8130BF0
- thumb_func_end sub_8130BA8
-
- thumb_func_start sub_8130BF0
-sub_8130BF0: @ 8130BF0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08130C14 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08130C10
- ldr r0, _08130C18 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _08130C1C @ =sub_8130C20
- str r0, [r1]
-_08130C10:
- pop {r0}
- bx r0
- .align 2, 0
-_08130C14: .4byte gPaletteFade
-_08130C18: .4byte gTasks
-_08130C1C: .4byte sub_8130C20
- thumb_func_end sub_8130BF0
-
- thumb_func_start sub_8130C20
-sub_8130C20: @ 8130C20
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl FreeAllWindowBuffers
- bl sub_8044D80
- ldr r5, _08130C58 @ =gUnknown_203B108
- ldr r0, [r5]
- bl Free
- movs r0, 0
- str r0, [r5]
- ldr r2, _08130C5C @ =gTextFlags
- ldrb r1, [r2]
- subs r0, 0x2
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08130C60 @ =CB2_NewGame
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130C58: .4byte gUnknown_203B108
-_08130C5C: .4byte gTextFlags
-_08130C60: .4byte CB2_NewGame
- thumb_func_end sub_8130C20
-
- thumb_func_start sub_8130C64
-sub_8130C64: @ 8130C64
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r0, _08130C84 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08130C78
- b _08130F10
-_08130C78:
- lsls r0, 2
- ldr r1, _08130C88 @ =_08130C8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130C84: .4byte gMain
-_08130C88: .4byte _08130C8C
- .align 2, 0
-_08130C8C:
- .4byte _08130CAC
- .4byte _08130D18
- .4byte _08130D78
- .4byte _08130DB2
- .4byte _08130DD0
- .4byte _08130DE8
- .4byte _08130E38
- .4byte _08130EB8
-_08130CAC:
- movs r0, 0
- bl SetVBlankCallback
- add r1, sp, 0x8
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08130D04 @ =0x040000d4
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _08130D08 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0xC]
- add r0, sp, 0xC
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _08130D0C @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x8
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _08130D10 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _08130D14 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl remove_some_task
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl reset_temp_tile_data_buffers
- b _08130F10
- .align 2, 0
-_08130D04: .4byte 0x040000d4
-_08130D08: .4byte 0x8100c000
-_08130D0C: .4byte 0x85000100
-_08130D10: .4byte 0x05000002
-_08130D14: .4byte 0x810001ff
-_08130D18:
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08130D70 @ =gUnknown_8462E58
- movs r0, 0x1
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r4, _08130D74 @ =gUnknown_203B108
- ldr r1, [r4]
- movs r0, 0xE1
- lsls r0, 5
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0xC1
- lsls r0, 5
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- b _08130F10
- .align 2, 0
-_08130D70: .4byte gUnknown_8462E58
-_08130D74: .4byte gUnknown_203B108
-_08130D78:
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- b _08130F10
-_08130DB2:
- bl FreeAllWindowBuffers
- bl sub_80F6C6C
- bl sub_80F6C98
- ldr r0, _08130DCC @ =gUnknown_8460568
- movs r1, 0
- movs r2, 0xE0
- bl LoadPalette
- b _08130F10
- .align 2, 0
-_08130DCC: .4byte gUnknown_8460568
-_08130DD0:
- ldr r1, _08130DE4 @ =gUnknown_8460CA4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _08130F10
- .align 2, 0
-_08130DE4: .4byte gUnknown_8460CA4
-_08130DE8:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- beq _08130DF4
- b _08130F1E
-_08130DF4:
- movs r5, 0x1E
- str r5, [sp]
- movs r4, 0x14
- str r4, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- ldr r1, _08130E34 @ =gUnknown_8460CE8
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- str r5, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- b _08130F10
- .align 2, 0
-_08130E34: .4byte gUnknown_8460CE8
-_08130E38:
- ldr r0, _08130E5C @ =sub_8130464
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08130E60 @ =gUnknown_203B108
- ldr r0, [r0]
- ldrh r0, [r0, 0x10]
- cmp r0, 0
- bne _08130E72
- ldr r0, _08130E64 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08130E68
- movs r0, 0
- b _08130E6A
- .align 2, 0
-_08130E5C: .4byte sub_8130464
-_08130E60: .4byte gUnknown_203B108
-_08130E64: .4byte gSaveBlock2Ptr
-_08130E68:
- movs r0, 0x1
-_08130E6A:
- movs r1, 0
- bl sub_81311F4
- b _08130E7A
-_08130E72:
- movs r0, 0x2
- movs r1, 0
- bl sub_81311F4
-_08130E7A:
- ldr r0, _08130EA8 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldr r0, _08130EAC @ =0x0000ffc4
- strh r0, [r4, 0xA]
- ldr r1, _08130EB0 @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- adds r0, 0x3C
- strh r0, [r1]
- ldr r1, _08130EB4 @ =0xffffc400
- movs r0, 0x2
- movs r2, 0
- bl ChangeBgX
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8130FD4
- movs r0, 0x1
- strh r0, [r4, 0x26]
- b _08130F10
- .align 2, 0
-_08130EA8: .4byte gTasks
-_08130EAC: .4byte 0x0000ffc4
-_08130EB0: .4byte gSpriteCoordOffsetX
-_08130EB4: .4byte 0xffffc400
-_08130EB8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x1
- bl EnableInterrupts
- ldr r0, _08130F04 @ =sub_812EAFC
- bl SetVBlankCallback
- ldr r2, _08130F08 @ =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08130F0C @ =sub_812EB10
- bl SetMainCallback2
- b _08130F1E
- .align 2, 0
-_08130F04: .4byte sub_812EAFC
-_08130F08: .4byte gTextFlags
-_08130F0C: .4byte sub_812EB10
-_08130F10:
- ldr r1, _08130F28 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08130F1E:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130F28: .4byte gMain
- thumb_func_end sub_8130C64
-
- thumb_func_start sub_8130F2C
-sub_8130F2C: @ 8130F2C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _08130FA0 @ =gUnknown_8235194
- movs r0, 0
- bl sub_8044E00
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1D
- bl DecompressPicFromTable
- ldr r0, _08130FA4 @ =gUnknown_82373F4
- bl sub_800F078
- movs r0, 0x1D
- movs r1, 0
- bl sub_803F7D4
- ldr r0, _08130FA8 @ =gMultiuseSpriteTemplate
- movs r1, 0x60
- movs r2, 0x60
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08130FAC @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r1, r2, r1
- ldr r3, _08130FB0 @ =SpriteCallbackDummy
- str r3, [r1]
- adds r2, r4
- ldrb r3, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- orrs r1, r3
- strb r1, [r2]
- ldr r2, _08130FB4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x10]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130FA0: .4byte gUnknown_8235194
-_08130FA4: .4byte gUnknown_82373F4
-_08130FA8: .4byte gMultiuseSpriteTemplate
-_08130FAC: .4byte gSprites
-_08130FB0: .4byte SpriteCallbackDummy
-_08130FB4: .4byte gTasks
- thumb_func_end sub_8130F2C
-
- thumb_func_start sub_8130FB8
-sub_8130FB8: @ 8130FB8
- ldr r3, _08130FD0 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x2B
- ldrb r1, [r1]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_08130FD0: .4byte gSprites
- thumb_func_end sub_8130FB8
-
- thumb_func_start sub_8130FD4
-sub_8130FD4: @ 8130FD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- movs r4, 0
- cmp r1, 0
- beq _08130FF4
- cmp r1, 0x1
- beq _081310C8
- b _08131146
-_08130FF4:
- ldr r4, _081310B0 @ =gUnknown_8462EFC
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r0, r4, 0
- adds r0, 0x8
- bl LoadCompressedObjectPic
- adds r4, 0x10
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r0, _081310B4 @ =gUnknown_8462F1C
- bl LoadSpritePalette
- ldr r0, _081310B8 @ =gUnknown_846302C
- mov r8, r0
- movs r1, 0x10
- movs r2, 0x11
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _081310BC @ =gSprites
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, _081310C0 @ =gTasks
- mov r1, r9
- lsls r4, r1, 2
- add r4, r9
- lsls r4, 3
- adds r4, r0
- strh r7, [r4, 0x16]
- mov r0, r8
- adds r0, 0x18
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r2, r1, r6
- ldrb r3, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r3
- strb r0, [r2, 0x5]
- ldrh r0, [r4, 0x16]
- strh r0, [r2, 0x2E]
- movs r2, 0x1C
- adds r2, r6
- mov r10, r2
- add r1, r10
- ldr r3, _081310C4 @ =sub_8130FB8
- mov r9, r3
- str r3, [r1]
- strh r7, [r4, 0x18]
- movs r0, 0x30
- add r8, r0
- mov r0, r8
- movs r1, 0x18
- movs r2, 0xD
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r6, r0, r6
- ldrb r1, [r6, 0x5]
- ands r5, r1
- strb r5, [r6, 0x5]
- ldrh r1, [r4, 0x16]
- strh r1, [r6, 0x2E]
- add r0, r10
- mov r1, r9
- str r1, [r0]
- strh r7, [r4, 0x1A]
- b _08131146
- .align 2, 0
-_081310B0: .4byte gUnknown_8462EFC
-_081310B4: .4byte gUnknown_8462F1C
-_081310B8: .4byte gUnknown_846302C
-_081310BC: .4byte gSprites
-_081310C0: .4byte gTasks
-_081310C4: .4byte sub_8130FB8
-_081310C8:
- ldr r0, _08131154 @ =gUnknown_8462F14
- bl LoadCompressedObjectPic
- ldr r0, _08131158 @ =gUnknown_8462F24
- bl LoadSpritePalette
- mov r2, r9
- lsls r5, r2, 2
- ldr r3, _0813115C @ =gTasks+0x8
- mov r8, r3
- ldr r6, _08131160 @ =gSprites
-_081310DE:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _08131164 @ =gUnknown_8462F50
- adds r0, r1
- lsls r1, r4, 21
- movs r2, 0xB0
- lsls r2, 15
- adds r1, r2
- asrs r1, 16
- movs r2, 0x70
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r2, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r2, 0x5]
- adds r3, r2, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r3]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- adds r1, r4, 0x7
- lsls r1, 1
- mov r2, r9
- adds r0, r5, r2
- lsls r0, 3
- adds r1, r0
- add r1, r8
- strh r7, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081310DE
-_08131146:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131154: .4byte gUnknown_8462F14
-_08131158: .4byte gUnknown_8462F24
-_0813115C: .4byte gTasks+0x8
-_08131160: .4byte gSprites
-_08131164: .4byte gUnknown_8462F50
- thumb_func_end sub_8130FD4
-
- thumb_func_start sub_8131168
-sub_8131168: @ 8131168
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- movs r4, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r5, r1, 3
- ldr r7, _081311AC @ =gTasks+0x8
-_0813117C:
- adds r0, r4, 0x7
- lsls r0, 1
- adds r0, r5
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081311B0 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0813117C
- cmp r6, 0
- beq _081311B4
- cmp r6, 0x1
- beq _081311DC
- b _081311EC
- .align 2, 0
-_081311AC: .4byte gTasks+0x8
-_081311B0: .4byte gSprites
-_081311B4:
- ldr r0, _081311D0 @ =0x00001003
- bl FreeSpriteTilesByTag
- ldr r0, _081311D4 @ =0x00001002
- bl FreeSpriteTilesByTag
- ldr r4, _081311D8 @ =0x00001001
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- b _081311EC
- .align 2, 0
-_081311D0: .4byte 0x00001003
-_081311D4: .4byte 0x00001002
-_081311D8: .4byte 0x00001001
-_081311DC:
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
-_081311EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8131168
-
- thumb_func_start sub_81311F4
-sub_81311F4: @ 81311F4
- push {r4-r6,lr}
- sub sp, 0x24
- lsls r0, 16
- lsrs r0, 16
- adds r2, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- cmp r0, 0x1
- beq _08131230
- cmp r0, 0x1
- bgt _08131210
- cmp r0, 0
- beq _0813121A
- b _081312F6
-_08131210:
- cmp r2, 0x2
- beq _08131248
- cmp r2, 0x3
- beq _0813126C
- b _081312F6
-_0813121A:
- ldr r0, _08131228 @ =gUnknown_84615FC
- movs r1, 0x40
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _0813122C @ =gUnknown_846163C
- b _08131254
- .align 2, 0
-_08131228: .4byte gUnknown_84615FC
-_0813122C: .4byte gUnknown_846163C
-_08131230:
- ldr r0, _08131240 @ =gUnknown_8460ED4
- movs r1, 0x40
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08131244 @ =gUnknown_8460F14
- b _08131254
- .align 2, 0
-_08131240: .4byte gUnknown_8460ED4
-_08131244: .4byte gUnknown_8460F14
-_08131248:
- ldr r0, _08131260 @ =gUnknown_84623AC
- movs r1, 0x60
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08131264 @ =gUnknown_84623EC
-_08131254:
- ldr r2, _08131268 @ =0x06000600
- adds r1, r4, r2
- bl LZ77UnCompVram
- b _08131280
- .align 2, 0
-_08131260: .4byte gUnknown_84623AC
-_08131264: .4byte gUnknown_84623EC
-_08131268: .4byte 0x06000600
-_0813126C:
- ldr r0, _08131300 @ =gUnknown_8461CD4
- movs r1, 0x60
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08131304 @ =gUnknown_8461D14
- ldr r2, _08131308 @ =0x06000600
- adds r1, r4, r2
- bl LZ77UnCompVram
-_08131280:
- movs r0, 0x60
- bl AllocZeroed
- ldr r2, _0813130C @ =gUnknown_203B108
- ldr r1, [r2]
- str r0, [r1, 0x4]
- movs r1, 0
- lsrs r6, r4, 6
-_08131290:
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r0, r1
- strb r1, [r0]
- adds r1, 0x1
- cmp r1, 0x5F
- bls _08131290
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r5, 0x10
- str r5, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r4, _0813130C @ =gUnknown_203B108
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- movs r3, 0x8
- str r3, [sp]
- movs r2, 0xC
- str r2, [sp, 0x4]
- movs r0, 0xB
- str r0, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- str r3, [sp, 0x10]
- str r2, [sp, 0x14]
- str r5, [sp, 0x18]
- adds r0, r6, 0
- adds r0, 0x18
- str r0, [sp, 0x1C]
- movs r5, 0
- str r5, [sp, 0x20]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl CopyRectToBgTilemapBufferRect
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- bl Free
- ldr r0, [r4]
- str r5, [r0, 0x4]
-_081312F6:
- add sp, 0x24
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08131300: .4byte gUnknown_8461CD4
-_08131304: .4byte gUnknown_8461D14
-_08131308: .4byte 0x06000600
-_0813130C: .4byte gUnknown_203B108
- thumb_func_end sub_81311F4
-
- thumb_func_start sub_8131310
-sub_8131310: @ 8131310
- push {lr}
- sub sp, 0xC
- movs r0, 0x8
- str r0, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0x10
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_8131310
-
- thumb_func_start sub_8131338
-sub_8131338: @ 8131338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r1, _081313A8 @ =gTasks
- lsls r0, r6, 2
- mov r9, r0
- adds r0, r6
- lsls r5, r0, 3
- adds r2, r5, r1
- ldrh r3, [r2, 0xA]
- movs r7, 0xA
- ldrsh r0, [r2, r7]
- mov r8, r1
- cmp r0, 0
- bne _081313B0
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- add r1, r8
- movs r0, 0x1
- strh r0, [r1, 0xC]
- adds r0, r6, 0
- bl DestroyTask
- ldr r6, _081313AC @ =gSprites
- adds r2, r5, 0
- mov r5, r8
- adds r5, 0x8
- movs r3, 0x4
-_08131380:
- adds r0, r4, 0x7
- lsls r0, 1
- adds r0, r2
- adds r0, r5
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08131380
- b _0813143A
- .align 2, 0
-_081313A8: .4byte gTasks
-_081313AC: .4byte gSprites
-_081313B0:
- ldrh r1, [r2, 0x10]
- movs r7, 0x10
- ldrsh r0, [r2, r7]
- cmp r0, 0
- beq _081313C0
- subs r0, r1, 0x1
- strh r0, [r2, 0x10]
- b _0813143A
-_081313C0:
- ldrh r0, [r2, 0xE]
- strh r0, [r2, 0x10]
- subs r1, r3, 0x1
- strh r1, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- lsls r1, 16
- asrs r1, 16
- mov r12, r9
- cmp r1, 0x8
- bne _0813141E
- adds r7, r5, 0
- movs r0, 0x8
- add r0, r8
- mov r10, r0
- movs r5, 0x1
- movs r1, 0x5
- negs r1, r1
- mov r9, r1
-_081313E8:
- adds r0, r4, 0x7
- lsls r0, 1
- adds r0, r7
- add r0, r10
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08131448 @ =gSprites
- adds r2, r0
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r1, r3, 29
- lsrs r1, 31
- eors r1, r5
- ands r1, r5
- lsls r1, 2
- mov r0, r9
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081313E8
-_0813141E:
- mov r1, r12
- adds r0, r1, r6
- lsls r0, 3
- add r0, r8
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- lsls r1, 8
- ldrh r0, [r0, 0xA]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
-_0813143A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131448: .4byte gSprites
- thumb_func_end sub_8131338
-
- thumb_func_start sub_813144C
-sub_813144C: @ 813144C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- movs r7, 0
- ldr r1, _081314D0 @ =0x00001244
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r0, _081314D4 @ =gTasks
- mov r8, r0
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r0, r5, r0
- strh r7, [r0, 0xC]
- ldr r0, _081314D8 @ =sub_8131338
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- mov r1, r8
- adds r0, r2, r1
- strh r4, [r0, 0x8]
- movs r1, 0x10
- strh r1, [r0, 0xA]
- strh r7, [r0, 0xC]
- strh r6, [r0, 0xE]
- strh r6, [r0, 0x10]
- mov r3, r8
- adds r3, 0x8
-_081314AC:
- adds r0, r7, 0x7
- lsls r0, 1
- adds r1, r0, r2
- adds r1, r3
- adds r0, r5
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _081314AC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081314D0: .4byte 0x00001244
-_081314D4: .4byte gTasks
-_081314D8: .4byte sub_8131338
- thumb_func_end sub_813144C
-
- thumb_func_start sub_81314DC
-sub_81314DC: @ 81314DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r1, _08131528 @ =gTasks
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- mov r9, r0
- adds r2, r0, r1
- ldrh r3, [r2, 0xA]
- movs r7, 0xA
- ldrsh r0, [r2, r7]
- mov r12, r1
- cmp r0, 0x10
- bne _08131530
- ldr r0, _0813152C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081315BA
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- add r1, r12
- movs r0, 0x1
- strh r0, [r1, 0xC]
- adds r0, r6, 0
- bl DestroyTask
- b _081315BA
- .align 2, 0
-_08131528: .4byte gTasks
-_0813152C: .4byte gPaletteFade
-_08131530:
- ldrh r1, [r2, 0x10]
- movs r7, 0x10
- ldrsh r0, [r2, r7]
- cmp r0, 0
- beq _08131540
- subs r0, r1, 0x1
- strh r0, [r2, 0x10]
- b _081315BA
-_08131540:
- ldrh r0, [r2, 0xE]
- strh r0, [r2, 0x10]
- adds r1, r3, 0x2
- strh r1, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- subs r0, 0x2
- strh r0, [r2, 0xC]
- lsls r1, 16
- asrs r1, 16
- mov r8, r5
- cmp r1, 0x8
- bne _0813159E
- mov r7, r9
- movs r0, 0x8
- add r0, r12
- mov r10, r0
- movs r5, 0x1
- movs r1, 0x5
- negs r1, r1
- mov r9, r1
-_08131568:
- adds r0, r4, 0x7
- lsls r0, 1
- adds r0, r7
- add r0, r10
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081315C8 @ =gSprites
- adds r2, r0
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r1, r3, 29
- lsrs r1, 31
- eors r1, r5
- ands r1, r5
- lsls r1, 2
- mov r0, r9
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08131568
-_0813159E:
- mov r1, r8
- adds r0, r1, r6
- lsls r0, 3
- add r0, r12
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- lsls r1, 8
- ldrh r0, [r0, 0xA]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
-_081315BA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081315C8: .4byte gSprites
- thumb_func_end sub_81314DC
-
- thumb_func_start sub_81315CC
-sub_81315CC: @ 81315CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- movs r7, 0
- ldr r1, _08131654 @ =0x00001244
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r0, _08131658 @ =gTasks
- mov r8, r0
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r0, r5, r0
- strh r7, [r0, 0xC]
- ldr r0, _0813165C @ =sub_81314DC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- mov r1, r8
- adds r0, r2, r1
- strh r4, [r0, 0x8]
- strh r7, [r0, 0xA]
- movs r1, 0x10
- strh r1, [r0, 0xC]
- strh r6, [r0, 0xE]
- strh r6, [r0, 0x10]
- mov r3, r8
- adds r3, 0x8
-_0813162E:
- adds r0, r7, 0x7
- lsls r0, 1
- adds r1, r0, r2
- adds r1, r3
- adds r0, r5
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _0813162E
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131654: .4byte 0x00001244
-_08131658: .4byte gTasks
-_0813165C: .4byte sub_81314DC
- thumb_func_end sub_81315CC
-
- thumb_func_start sub_8131660
-sub_8131660: @ 8131660
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, _081316DC @ =gTasks+0x8
- adds r7, r4, r5
- ldr r0, _081316E0 @ =gUnknown_8462ED8
- bl AddWindow
- strh r0, [r7, 0x1A]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldrb r6, [r7, 0x1A]
- bl sub_80F796C
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- movs r1, 0x1
- movs r3, 0xE
- bl SetWindowBorderStyle
- adds r5, r4
- ldrb r0, [r5, 0x1A]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldrb r0, [r7, 0x1A]
- ldr r2, _081316E4 @ =gUnknown_81C574F
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x8
- bl AddTextPrinterParameterized
- mov r0, r8
- cmp r0, 0
- bne _081316F4
- ldr r0, _081316E8 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- ldr r6, _081316EC @ =gUnknown_84630D8
- cmp r0, 0
- bne _081316F6
- ldr r6, _081316F0 @ =gUnknown_846308C
- b _081316F6
- .align 2, 0
-_081316DC: .4byte gTasks+0x8
-_081316E0: .4byte gUnknown_8462ED8
-_081316E4: .4byte gUnknown_81C574F
-_081316E8: .4byte gSaveBlock2Ptr
-_081316EC: .4byte gUnknown_84630D8
-_081316F0: .4byte gUnknown_846308C
-_081316F4:
- ldr r6, _08131750 @ =gUnknown_8463124
-_081316F6:
- movs r4, 0
- movs r5, 0
-_081316FA:
- ldrb r0, [r7, 0x1A]
- lsls r1, r4, 2
- adds r1, r6
- ldr r2, [r1]
- adds r4, 0x1
- lsls r1, r4, 4
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x8
- bl AddTextPrinterParameterized
- lsls r4, 24
- lsrs r4, 24
- cmp r4, 0x3
- bls _081316FA
- ldrb r0, [r7, 0x1A]
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0x5
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x1
- bl sub_810F7D8
- ldrb r0, [r7, 0x1A]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131750: .4byte gUnknown_8463124
- thumb_func_end sub_8131660
-
- thumb_func_start sub_8131754
-sub_8131754: @ 8131754
- push {r4,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r0, 0
- bne _081317A0
- ldr r0, _08131770 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08131778
- ldr r4, _08131774 @ =gUnknown_846308C
- b _0813177A
- .align 2, 0
-_08131770: .4byte gSaveBlock2Ptr
-_08131774: .4byte gUnknown_846308C
-_08131778:
- ldr r4, _08131798 @ =gUnknown_84630D8
-_0813177A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x13
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 14
- adds r0, r4
- ldr r3, [r0]
- ldr r0, _0813179C @ =gSaveBlock2Ptr
- ldr r4, [r0]
- b _081317B0
- .align 2, 0
-_08131798: .4byte gUnknown_84630D8
-_0813179C: .4byte gSaveBlock2Ptr
-_081317A0:
- ldr r1, _081317EC @ =gUnknown_8463124
- lsls r0, r2, 2
- adds r0, r1
- ldr r3, [r0]
- ldr r0, _081317F0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _081317F4 @ =0x00003a4c
- adds r4, r0, r1
-_081317B0:
- movs r2, 0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _081317D2
-_081317B8:
- adds r1, r4, r2
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x6
- bhi _081317D2
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081317B8
-_081317D2:
- cmp r2, 0x7
- bhi _081317E6
- movs r1, 0xFF
-_081317D8:
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081317D8
-_081317E6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081317EC: .4byte gUnknown_8463124
-_081317F0: .4byte gSaveBlock1Ptr
-_081317F4: .4byte 0x00003a4c
- thumb_func_end sub_8131754
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/option_menu.s b/asm/option_menu.s
index 7ee737053..cff6f1f25 100644
--- a/asm/option_menu.s
+++ b/asm/option_menu.s
@@ -93,7 +93,7 @@ _080883FA:
cmp r3, 0x5
bls _080883E6
movs r0, 0xD
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, _0808842C @ =sub_8088454
bl SetMainCallback2
pop {r4-r6}
@@ -431,7 +431,7 @@ sub_80886D4: @ 80886D4
bl ResetPaletteFade
bl FreeAllSpritePalettes
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
pop {r0}
bx r0
thumb_func_end sub_80886D4
diff --git a/asm/overworld.s b/asm/overworld.s
index 679203034..e44855b46 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -3117,8 +3117,8 @@ sub_80562B0: @ 80562B0
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
@@ -3181,8 +3181,8 @@ sub_8056354: @ 8056354
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
@@ -3933,7 +3933,7 @@ VBlankCB_Field: @ 8056A14
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
bl FieldUpdateBgTilemapScroll
bl TransferPlttBuffer
bl TransferTilesetAnimsBuffer
@@ -3954,7 +3954,7 @@ sub_8056A34: @ 8056A34
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
_08056A52:
pop {r0}
bx r0
@@ -4451,7 +4451,7 @@ sub_8056E80: @ 8056E80
movs r0, 0
movs r1, 0
bl SetGpuReg
- bl remove_some_task
+ bl ScanlineEffect_Stop
ldr r2, _08056EF8 @ =0x05000002
mov r1, sp
movs r0, 0
@@ -4630,7 +4630,7 @@ sub_8057024: @ 8057024
bl ResetTasks
bl ResetSpriteData
bl ResetPaletteFade
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
bl dp13_810BB8C
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
@@ -5395,7 +5395,7 @@ _08057690:
bl sub_8055920
b _0805772A
_0805769C:
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
bl dp13_810BB8C
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
diff --git a/asm/party_menu.s b/asm/party_menu.s
index c0e4a79f4..d716165ac 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -281,7 +281,7 @@ _0811EC80:
bl clear_scheduled_bg_copies_to_vram
b _0811EDFC
_0811EC8E:
- bl remove_some_task
+ bl ScanlineEffect_Stop
b _0811EDFC
_0811EC94:
bl ResetPaletteFade
@@ -420,7 +420,7 @@ _0811ED96:
_0811EDA8: .4byte gUnknown_203B09C
_0811EDAC:
movs r0, 0x5
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0811EDFC
_0811EDB4:
ldr r4, _0811EDCC @ =gUnknown_203B09C
@@ -4879,12 +4879,12 @@ sub_8120FB0: @ 8120FB0
bl FreeRestoreBattleData
bl LoadPlayerParty
bl sub_815AC20
- ldr r0, _08120FC8 @ =sub_815ABFC
+ ldr r0, _08120FC8 @ =CB2_ReturnToTeachyTV
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
-_08120FC8: .4byte sub_815ABFC
+_08120FC8: .4byte CB2_ReturnToTeachyTV
thumb_func_end sub_8120FB0
thumb_func_start sub_8120FCC
@@ -5149,7 +5149,7 @@ _081211E4: .4byte gUnknown_203B0A0
_081211E8: .4byte gFameCheckerText_Cancel
_081211EC: .4byte gUnknown_8459FFC
_081211F0:
- ldr r4, _08121240 @ =gUnknown_84161C8
+ ldr r4, _08121240 @ =gOtherText_Exit
movs r0, 0
adds r1, r4, 0
movs r2, 0
@@ -5187,7 +5187,7 @@ _08121238:
pop {r0}
bx r0
.align 2, 0
-_08121240: .4byte gUnknown_84161C8
+_08121240: .4byte gOtherText_Exit
_08121244: .4byte gUnknown_8459FFC
thumb_func_end sub_81210F8
@@ -6888,7 +6888,7 @@ sub_8121FC0: @ 8121FC0
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -6990,7 +6990,7 @@ sub_8122084: @ 8122084
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -12606,7 +12606,7 @@ sub_8124DA0: @ 8124DA0
movs r0, 0x5
movs r1, 0
movs r2, 0xFF
- bl sub_81317F8
+ bl InitTMCase
pop {r0}
bx r0
thumb_func_end sub_8124DA0
@@ -13684,7 +13684,7 @@ _08125680:
mov r1, r8
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x10
diff --git a/asm/player_pc.s b/asm/player_pc.s
index 4fea7bea1..f847db1e6 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -187,7 +187,7 @@ _080EB77E:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _080EB814 @ =gTasks
@@ -361,11 +361,11 @@ _080EB940:
cmp r0, 0
bne _080EB95C
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EB962
_080EB95C:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EB962:
ldr r0, _080EB990 @ =gUnknown_203AAC4
ldrb r0, [r0, 0x5]
@@ -376,7 +376,7 @@ _080EB962:
bne _080EB99C
movs r0, 0
movs r1, 0
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r5, 0
bl sub_80EBEB0
ldr r0, _080EB994 @ =gTasks
@@ -449,14 +449,14 @@ sub_80EB9E8: @ 80EB9E8
cmp r0, 0
bne _080EBA18
movs r0, 0x21
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EBA1E
.align 2, 0
_080EBA10: .4byte gTasks+0x8
_080EBA14: .4byte gUnknown_203AAC4
_080EBA18:
movs r0, 0x1D
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EBA1E:
ldr r0, _080EBA80 @ =gUnknown_8402258
bl AddWindow
@@ -488,7 +488,7 @@ _080EBA1E:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _080EBA88 @ =gUnknown_84021DC
@@ -513,7 +513,7 @@ sub_80EBA8C: @ 80EBA8C
adds r4, r0, 0
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
movs r0, 0x1
str r0, [sp]
movs r0, 0
@@ -702,7 +702,7 @@ sub_80EBC0C: @ 80EBC0C
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _080EBC34 @ =sub_80EBBDC
movs r1, 0
bl CreateTask
@@ -777,7 +777,7 @@ sub_80EBCAC: @ 80EBCAC
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _080EBCD4 @ =sub_80EBBDC
movs r1, 0
bl CreateTask
@@ -1174,7 +1174,7 @@ _080EBFB6:
ldrb r0, [r4, 0x16]
adds r1, r7, 0
mov r2, r8
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
mov r1, r8
@@ -1288,7 +1288,7 @@ sub_80EC094: @ 80EC094
ldrb r0, [r4, 0x16]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
bl sub_810EDB0
@@ -1341,7 +1341,7 @@ sub_80EC0D8: @ 80EC0D8
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _080EC154 @ =gTasks
@@ -1503,13 +1503,13 @@ sub_80EC260: @ 80EC260
cmp r0, 0
bne _080EC278
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EC27E
.align 2, 0
_080EC274: .4byte gUnknown_203AAC4
_080EC278:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EC27E:
bl sub_80F6E9C
ldr r0, _080EC2A8 @ =sub_80EC230
@@ -1773,13 +1773,13 @@ sub_80EC474: @ 80EC474
cmp r0, 0
bne _080EC48C
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EC492
.align 2, 0
_080EC488: .4byte gUnknown_203AAC4
_080EC48C:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EC492:
ldr r0, _080EC4E8 @ =sub_80EC230
movs r1, 0
@@ -1852,14 +1852,14 @@ sub_80EC520: @ 80EC520
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080EC534 @ =gUnknown_841632A
+ ldr r2, _080EC534 @ =gText_ThereIsNoPokemon
ldr r3, _080EC538 @ =sub_80EC574
movs r1, 0x2
bl DisplayItemMessageOnField
pop {r0}
bx r0
.align 2, 0
-_080EC534: .4byte gUnknown_841632A
+_080EC534: .4byte gText_ThereIsNoPokemon
_080EC538: .4byte sub_80EC574
thumb_func_end sub_80EC520
@@ -1871,7 +1871,7 @@ sub_80EC53C: @ 80EC53C
lsrs r4, 24
movs r0, 0
movs r1, 0
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r4, 0
bl sub_80EBEB0
movs r0, 0
diff --git a/asm/pokeball.s b/asm/pokeball.s
index 11572c80f..58c9ac77c 100644
--- a/asm/pokeball.s
+++ b/asm/pokeball.s
@@ -2276,7 +2276,7 @@ _0804BB22:
ldrsh r0, [r4, r7]
cmp r0, 0x7F
bgt _0804BB64
- ldr r1, _0804BB60 @ =gUnknown_825E074
+ ldr r1, _0804BB60 @ =gSineTable
lsls r0, r2, 24
lsrs r0, 23
adds r0, r1
@@ -2297,7 +2297,7 @@ _0804BB48:
b _0804BB72
.align 2, 0
_0804BB5C: .4byte gSprites
-_0804BB60: .4byte gUnknown_825E074
+_0804BB60: .4byte gSineTable
_0804BB64:
ldrh r0, [r4, 0x38]
strh r0, [r5, 0x20]
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index 3d3ca02ea..68b30e43b 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -58,7 +58,7 @@ sub_810250C: @ 810250C
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
movs r0, 0x1
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08102598 @ =gUnknown_8451EBC
@@ -309,7 +309,7 @@ sub_810275C: @ 810275C
ldr r0, _08102794 @ =sub_81024D4
bl SetMainCallback2
movs r0, 0x4
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
@@ -754,7 +754,7 @@ _08102B24:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
@@ -804,7 +804,7 @@ _08102B94:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -832,7 +832,7 @@ _08102BD8:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
- bl sub_810713C
+ bl DestroyListMenu
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@@ -2467,7 +2467,7 @@ _0810399C:
adds r1, r2, 0
adds r1, 0x36
adds r2, 0x34
- bl sub_810713C
+ bl DestroyListMenu
b _081039E8
.align 2, 0
_081039B4: .4byte gUnknown_203ACF0
@@ -2480,7 +2480,7 @@ _081039B8:
adds r1, r2, 0
adds r1, 0x3A
adds r2, 0x38
- bl sub_810713C
+ bl DestroyListMenu
b _081039E8
.align 2, 0
_081039D0: .4byte gUnknown_203ACF0
@@ -2493,7 +2493,7 @@ _081039D4:
adds r1, r2, 0
adds r1, 0x3E
adds r2, 0x3C
- bl sub_810713C
+ bl DestroyListMenu
_081039E8:
pop {r0}
bx r0
@@ -2572,7 +2572,7 @@ sub_8103A40: @ 8103A40
movs r1, 0
movs r2, 0x28
adds r3, r6, 0
- bl sub_8107D68
+ bl blit_move_info_icon
ldr r0, _08103AC4 @ =gBaseStats
lsls r4, r5, 3
subs r4, r5
@@ -2587,7 +2587,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x78
adds r3, r6, 0
- bl sub_8107D68
+ bl blit_move_info_icon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08103AB6
@@ -2599,7 +2599,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x98
adds r3, r6, 0
- bl sub_8107D68
+ bl blit_move_info_icon
_08103AB6:
add sp, 0x4
pop {r4-r7}
@@ -7753,7 +7753,7 @@ _08106478:
lsrs r1, 24
movs r2, 0
movs r3, 0x1
- bl sub_8107D68
+ bl blit_move_info_icon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08106504
@@ -7765,7 +7765,7 @@ _08106478:
lsrs r1, 24
movs r2, 0x20
movs r3, 0x1
- bl sub_8107D68
+ bl blit_move_info_icon
_08106504:
ldr r7, _081066B8 @ =gUnknown_203ACF0
ldr r0, [r7]
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index 0d4ee1bcb..416c996bb 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -785,8 +785,8 @@ _08044AE8: .4byte gUnknown_825E05C
_08044AEC: .4byte gUnknown_82349BC
thumb_func_end sub_8044A40
- thumb_func_start sub_8044AF0
-sub_8044AF0: @ 8044AF0
+ thumb_func_start SetUpMonSpriteManagerMaybe
+SetUpMonSpriteManagerMaybe: @ 8044AF0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1124,7 +1124,7 @@ _08044D70:
bx r1
.align 2, 0
_08044D7C: .4byte gUnknown_20244F4
- thumb_func_end sub_8044AF0
+ thumb_func_end SetUpMonSpriteManagerMaybe
thumb_func_start sub_8044D80
sub_8044D80: @ 8044D80
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index fa72d3c8e..33f64b00b 100644
--- a/asm/pokemon_special_anim.s
+++ b/asm/pokemon_special_anim.s
@@ -1727,7 +1727,7 @@ sub_811D2EC: @ 811D2EC
lsrs r7, r0, 16
movs r0, 0
mov r8, r0
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
mov r9, r0
@@ -3400,7 +3400,7 @@ sub_811DFC0: @ 811DFC0
strh r0, [r3, 0x4]
movs r5, 0x4
ldrsh r1, [r3, r5]
- ldr r2, _0811E018 @ =gUnknown_825E074
+ ldr r2, _0811E018 @ =gSineTable
movs r5, 0x2
ldrsh r0, [r3, r5]
adds r0, 0x40
@@ -3424,7 +3424,7 @@ sub_811DFC0: @ 811DFC0
strh r0, [r4, 0x26]
b _0811E036
.align 2, 0
-_0811E018: .4byte gUnknown_825E074
+_0811E018: .4byte gSineTable
_0811E01C:
ldr r2, _0811E03C @ =gTasks
movs r5, 0xE
@@ -3958,7 +3958,7 @@ _0811E3E0:
lsls r0, 16
lsrs r0, 16
adds r0, 0x46
- ldr r3, _0811E4BC @ =gUnknown_825E074
+ ldr r3, _0811E4BC @ =gSineTable
movs r4, 0xA
ldrsh r2, [r5, r4]
adds r1, r2, 0
@@ -4035,7 +4035,7 @@ _0811E4A4:
strh r0, [r5]
b _0811E4DC
.align 2, 0
-_0811E4BC: .4byte gUnknown_825E074
+_0811E4BC: .4byte gSineTable
_0811E4C0: .4byte gUnknown_8459B30
_0811E4C4: .4byte gSprites
_0811E4C8:
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index c40afefde..826e2f9e4 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1412,7 +1412,7 @@ _0808C3CC:
.4byte _0808C680
_0808C3E0:
movs r0, 0x1C
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldrb r0, [r5, 0xA]
adds r1, r5, 0
adds r1, 0x26
@@ -1420,7 +1420,7 @@ _0808C3E0:
bl sub_80F6E9C
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
movs r0, 0
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -1557,12 +1557,12 @@ _0808C508: .4byte gUnknown_83CDA20
_0808C50C:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrh r0, [r5, 0x26]
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
bl ScriptContext2_Disable
bl EnableBothScriptContexts
adds r0, r4, 0
@@ -1833,7 +1833,7 @@ sub_808C72C: @ 808C72C
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -1861,7 +1861,7 @@ sub_808C72C: @ 808C72C
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
mov r0, r10
strh r5, [r0]
add sp, 0xC
@@ -2716,7 +2716,7 @@ _0808CE18:
ldr r1, [r4]
strb r0, [r1, 0x4]
movs r0, 0x1C
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl StorageGetCurrentBox
ldr r1, _0808CE58 @ =gUnknown_20397B8
strb r0, [r1]
@@ -2767,7 +2767,7 @@ _0808CE8C:
ldr r1, [r4]
strb r0, [r1, 0x4]
movs r0, 0x1C
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, _0808CEC4 @ =c2_Box
bl SetMainCallback2
_0808CEB6:
@@ -10686,7 +10686,7 @@ _08090EC6:
ldr r0, [r4]
ldr r0, [r0]
mov r8, r0
- ldr r5, _08090FB8 @ =gUnknown_825E074
+ ldr r5, _08090FB8 @ =gSineTable
mov r0, r9
adds r1, r3, r0
ldrb r0, [r1]
@@ -10803,7 +10803,7 @@ _08090FA0:
_08090FAC: .4byte 0x00000c59
_08090FB0: .4byte 0x00000afc
_08090FB4: .4byte 0x00000a68
-_08090FB8: .4byte gUnknown_825E074
+_08090FB8: .4byte gSineTable
_08090FBC: .4byte sub_80911B0
_08090FC0: .4byte SpriteCallbackDummy
thumb_func_end sub_8090E74
@@ -18961,7 +18961,7 @@ sub_8094E88: @ 8094E88
movs r1, 0x1
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, [r5]
@@ -22569,7 +22569,7 @@ _08096AA2:
lsls r0, 16
asrs r0, 20
strh r0, [r4, 0x22]
- ldr r1, _08096B08 @ =gUnknown_825E074
+ ldr r1, _08096B08 @ =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 4
@@ -22605,7 +22605,7 @@ _08096B00:
pop {r0}
bx r0
.align 2, 0
-_08096B08: .4byte gUnknown_825E074
+_08096B08: .4byte gSineTable
_08096B0C: .4byte sub_80969BC
thumb_func_end sub_8096A74
@@ -22650,7 +22650,7 @@ _08096B3E:
lsls r1, 16
asrs r1, 20
strh r1, [r4, 0x22]
- ldr r1, _08096BA4 @ =gUnknown_825E074
+ ldr r1, _08096BA4 @ =gSineTable
movs r2, 0x38
ldrsh r0, [r4, r2]
lsls r0, 4
@@ -22687,7 +22687,7 @@ _08096B9E:
pop {r0}
bx r0
.align 2, 0
-_08096BA4: .4byte gUnknown_825E074
+_08096BA4: .4byte gSineTable
_08096BA8: .4byte SpriteCallbackDummy
thumb_func_end sub_8096B10
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 65fc2cb45..1688f2ed5 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -107,7 +107,7 @@ _081345D0:
beq _08134604
_081345D4:
movs r0, 0x6
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r2, _081345F8 @ =gUnknown_203B140
ldr r0, [r2]
ldr r3, _081345FC @ =0x00003214
@@ -128,7 +128,7 @@ _081345FC: .4byte 0x00003214
_08134600: .4byte 0x00003234
_08134604:
movs r0, 0x6
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, [r4]
ldr r3, _08134628 @ =0x00003214
adds r0, r3
@@ -149,7 +149,7 @@ _0813462C: .4byte 0x0000321c
_08134630: .4byte 0x00003234
_08134634:
movs r0, 0x8
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, [r4]
ldr r3, _08134710 @ =0x00003214
adds r0, r3
@@ -4180,7 +4180,7 @@ _08136812:
adds r1, r4, r3
ldr r0, [r6]
adds r0, r1
- ldr r5, _081368A4 @ =gUnknown_8416213
+ ldr r5, _081368A4 @ =gText_ThreeHyphens
adds r1, r5, 0
bl StringCopy
ldr r0, _081368A8 @ =0x00003188
@@ -4209,7 +4209,7 @@ _08136894: .4byte gUnknown_841620E
_08136898: .4byte 0x000030b8
_0813689C: .4byte gUnknown_8416210
_081368A0: .4byte 0x0000316c
-_081368A4: .4byte gUnknown_8416213
+_081368A4: .4byte gText_ThreeHyphens
_081368A8: .4byte 0x00003188
_081368AC: .4byte gUnknown_203B144
_081368B0:
@@ -4399,7 +4399,7 @@ _081369D0:
ldr r1, _08136A68 @ =0x0000316c
adds r0, r1
adds r0, r6, r0
- ldr r1, _08136A6C @ =gUnknown_8416213
+ ldr r1, _08136A6C @ =gText_ThreeHyphens
bl StringCopy
b _08136A84
.align 2, 0
@@ -4411,7 +4411,7 @@ _08136A5C: .4byte 0x00003258
_08136A60: .4byte gUnknown_203B144
_08136A64: .4byte gBattleMoves
_08136A68: .4byte 0x0000316c
-_08136A6C: .4byte gUnknown_8416213
+_08136A6C: .4byte gText_ThreeHyphens
_08136A70:
lsls r4, r7, 2
adds r0, r4, r7
@@ -4441,7 +4441,7 @@ _08136A84:
ldr r2, _08136AC0 @ =0x00003188
adds r0, r2
adds r0, r3, r0
- ldr r1, _08136AC4 @ =gUnknown_8416213
+ ldr r1, _08136AC4 @ =gText_ThreeHyphens
bl StringCopy
b _08136ADA
.align 2, 0
@@ -4450,7 +4450,7 @@ _08136AB4: .4byte gBattleMoves
_08136AB8: .4byte gUnknown_203B140
_08136ABC: .4byte 0x00003258
_08136AC0: .4byte 0x00003188
-_08136AC4: .4byte gUnknown_8416213
+_08136AC4: .4byte gText_ThreeHyphens
_08136AC8:
adds r0, r4, r7
ldr r4, _08136AE8 @ =0x00003188
@@ -4567,7 +4567,7 @@ sub_8136BAC: @ 8136BAC
bl ResetSpriteData
bl ResetPaletteFade
bl FreeAllSpritePalettes
- bl remove_some_task
+ bl ScanlineEffect_Stop
pop {r0}
bx r0
thumb_func_end sub_8136BAC
@@ -6636,7 +6636,7 @@ _08137CA4:
adds r3, r2
lsrs r3, 16
movs r2, 0x3
- bl sub_8107D68
+ bl blit_move_info_icon
_08137CDE:
adds r0, r4, 0x1
lsls r0, 24
@@ -6660,7 +6660,7 @@ _08137CDE:
lsrs r1, 24
movs r2, 0x3
movs r3, 0x75
- bl sub_8107D68
+ bl blit_move_info_icon
_08137D0E:
pop {r4,r5}
pop {r0}
@@ -7608,7 +7608,7 @@ _0813846C:
_08138470:
movs r0, 0x7
_08138472:
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_08138476:
pop {r0}
bx r0
@@ -8325,7 +8325,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x2F
movs r3, 0x23
- bl sub_8107D68
+ bl blit_move_info_icon
ldr r1, [r6]
adds r4, r1, r4
ldr r3, _08138AB8 @ =0x00003221
@@ -8342,7 +8342,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x53
movs r3, 0x23
- bl sub_8107D68
+ bl blit_move_info_icon
b _08138B0E
.align 2, 0
_08138AB0: .4byte 0x00003003
@@ -8365,7 +8365,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0
movs r3, 0x3
- bl sub_8107D68
+ bl blit_move_info_icon
ldr r2, [r6]
adds r4, r2, r4
ldr r1, _08138B1C @ =0x00003221
@@ -8381,7 +8381,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0x24
movs r3, 0x3
- bl sub_8107D68
+ bl blit_move_info_icon
_08138B04:
ldr r0, [r6]
adds r0, r5
diff --git a/asm/region_map.s b/asm/region_map.s
index 168ca47c3..1072e3068 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -1487,7 +1487,7 @@ sub_80C0A6C: @ 80C0A6C
bl ResetPaletteFade
bl FreeAllSpritePalettes
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
pop {r0}
bx r0
thumb_func_end sub_80C0A6C
diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s
index 6fb09f439..d88ecf578 100644
--- a/asm/reshow_battle_screen.s
+++ b/asm/reshow_battle_screen.s
@@ -45,7 +45,7 @@ sub_8077764: @ 8077764
cmp r1, 0
beq _080777BC
movs r0, 0x19
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080777DA
.align 2, 0
_080777B0: .4byte gPaletteFade
@@ -53,7 +53,7 @@ _080777B4: .4byte gBattleScripting
_080777B8: .4byte gBattleTypeFlags
_080777BC:
movs r0, 0x18
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080777DA
_080777C4:
movs r0, 0x80
@@ -61,11 +61,11 @@ _080777C4:
cmp r1, 0
beq _080777D4
movs r0, 0x1A
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080777DA
_080777D4:
movs r0, 0x17
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080777DA:
ldr r0, _080777E4 @ =sub_80777E8
bl SetMainCallback2
@@ -123,7 +123,7 @@ _08077860:
_08077866:
movs r0, 0
bl SetVBlankCallback
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
bl sub_800F324
movs r0, 0x1
movs r1, 0x1
@@ -142,33 +142,33 @@ _08077866:
movs r0, 0x3
bl ShowBg
bl ResetPaletteFade
- ldr r0, _080778C8 @ =gUnknown_2022974
+ ldr r0, _080778C8 @ =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080778CC @ =gUnknown_2022976
+ ldr r0, _080778CC @ =gBattle_BG0_Y
strh r1, [r0]
- ldr r0, _080778D0 @ =gUnknown_2022978
+ ldr r0, _080778D0 @ =gBattle_BG1_X
strh r1, [r0]
- ldr r0, _080778D4 @ =gUnknown_202297A
+ ldr r0, _080778D4 @ =gBattle_BG1_Y
strh r1, [r0]
- ldr r0, _080778D8 @ =gUnknown_202297C
+ ldr r0, _080778D8 @ =gBattle_BG2_X
strh r1, [r0]
- ldr r0, _080778DC @ =gUnknown_202297E
+ ldr r0, _080778DC @ =gBattle_BG2_Y
strh r1, [r0]
- ldr r0, _080778E0 @ =gUnknown_2022980
+ ldr r0, _080778E0 @ =gBattle_BG3_X
strh r1, [r0]
- ldr r0, _080778E4 @ =gUnknown_2022982
+ ldr r0, _080778E4 @ =gBattle_BG3_Y
strh r1, [r0]
b _08077A8A
.align 2, 0
-_080778C8: .4byte gUnknown_2022974
-_080778CC: .4byte gUnknown_2022976
-_080778D0: .4byte gUnknown_2022978
-_080778D4: .4byte gUnknown_202297A
-_080778D8: .4byte gUnknown_202297C
-_080778DC: .4byte gUnknown_202297E
-_080778E0: .4byte gUnknown_2022980
-_080778E4: .4byte gUnknown_2022982
+_080778C8: .4byte gBattle_BG0_X
+_080778CC: .4byte gBattle_BG0_Y
+_080778D0: .4byte gBattle_BG1_X
+_080778D4: .4byte gBattle_BG1_Y
+_080778D8: .4byte gBattle_BG2_X
+_080778DC: .4byte gBattle_BG2_Y
+_080778E0: .4byte gBattle_BG3_X
+_080778E4: .4byte gBattle_BG3_Y
_080778E8:
movs r0, 0
str r0, [sp, 0x4]
diff --git a/asm/roamer.s b/asm/roamer.s
deleted file mode 100644
index d42b34293..000000000
--- a/asm/roamer.s
+++ /dev/null
@@ -1,531 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8141C54
-sub_8141C54: @ 8141C54
- push {lr}
- ldr r0, _08141C84 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08141C88 @ =0x000030d0
- adds r0, r1
- movs r1, 0
- movs r2, 0x1C
- bl memset
- ldr r1, _08141C8C @ =gUnknown_203F3AE
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- movs r1, 0
- movs r2, 0
- ldr r0, _08141C90 @ =gUnknown_203F3A8
-_08141C74:
- strb r2, [r0]
- strb r2, [r0, 0x1]
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x2
- bls _08141C74
- pop {r0}
- bx r0
- .align 2, 0
-_08141C84: .4byte gSaveBlock1Ptr
-_08141C88: .4byte 0x000030d0
-_08141C8C: .4byte gUnknown_203F3AE
-_08141C90: .4byte gUnknown_203F3A8
- thumb_func_end sub_8141C54
-
- thumb_func_start sub_8141C94
-sub_8141C94: @ 8141C94
- push {r4-r7,lr}
- sub sp, 0x10
- ldr r7, _08141CB0 @ =gEnemyParty
- bl sub_80CBDB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08141CB4
- cmp r0, 0x4
- beq _08141CB8
- movs r6, 0xF3
- b _08141CBA
- .align 2, 0
-_08141CB0: .4byte gEnemyParty
-_08141CB4:
- movs r6, 0xF4
- b _08141CBA
-_08141CB8:
- movs r6, 0xF5
-_08141CBA:
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0x32
- movs r3, 0x20
- bl CreateMon
- ldr r5, _08141D8C @ =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r4, _08141D90 @ =0x000030d0
- adds r1, r4
- movs r2, 0
- strh r6, [r1, 0x8]
- movs r0, 0x32
- strb r0, [r1, 0xC]
- ldr r0, [r5]
- adds r0, r4
- strb r2, [r0, 0xD]
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x1
- strb r1, [r0, 0x13]
- adds r0, r7, 0
- movs r1, 0x42
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- str r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- str r0, [r1, 0x4]
- adds r0, r7, 0
- movs r1, 0x3A
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strh r0, [r1, 0xA]
- adds r0, r7, 0
- movs r1, 0x16
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xE]
- adds r0, r7, 0
- movs r1, 0x17
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xF]
- adds r0, r7, 0
- movs r1, 0x18
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0x10]
- adds r0, r7, 0
- movs r1, 0x21
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0x11]
- adds r0, r7, 0
- movs r1, 0x2F
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0x12]
- ldr r5, _08141D94 @ =gUnknown_203F3AE
- movs r0, 0x3
- strb r0, [r5]
- bl Random
- ldr r4, _08141D98 @ =gUnknown_8466C58
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- adds r1, r4
- ldrb r0, [r1]
- strb r0, [r5, 0x1]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D8C: .4byte gSaveBlock1Ptr
-_08141D90: .4byte 0x000030d0
-_08141D94: .4byte gUnknown_203F3AE
-_08141D98: .4byte gUnknown_8466C58
- thumb_func_end sub_8141C94
-
- thumb_func_start sub_8141D9C
-sub_8141D9C: @ 8141D9C
- push {lr}
- bl sub_8141C54
- bl sub_8141C94
- pop {r0}
- bx r0
- thumb_func_end sub_8141D9C
-
- thumb_func_start UpdateLocationHistoryForRoamer
-UpdateLocationHistoryForRoamer: @ 8141DAC
- ldr r0, _08141DCC @ =gUnknown_203F3A8
- ldrb r1, [r0, 0x2]
- strb r1, [r0, 0x4]
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0x5]
- ldrb r1, [r0]
- strb r1, [r0, 0x2]
- ldrb r1, [r0, 0x1]
- strb r1, [r0, 0x3]
- ldr r1, _08141DD0 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x4]
- strb r1, [r0]
- ldrb r1, [r2, 0x5]
- strb r1, [r0, 0x1]
- bx lr
- .align 2, 0
-_08141DCC: .4byte gUnknown_203F3A8
-_08141DD0: .4byte gSaveBlock1Ptr
- thumb_func_end UpdateLocationHistoryForRoamer
-
- thumb_func_start RoamerMoveToOtherLocationSet
-RoamerMoveToOtherLocationSet: @ 8141DD4
- push {r4,r5,lr}
- ldr r0, _08141E18 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08141E1C @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08141E10
- ldr r1, _08141E20 @ =gUnknown_203F3AE
- movs r0, 0x3
- strb r0, [r1]
- ldr r5, _08141E24 @ =gUnknown_8466C58
- adds r4, r1, 0
-_08141DEE:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- adds r1, r5
- ldrb r1, [r1]
- ldrb r0, [r4, 0x1]
- cmp r0, r1
- beq _08141DEE
- strb r1, [r4, 0x1]
-_08141E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141E18: .4byte gSaveBlock1Ptr
-_08141E1C: .4byte 0x000030d0
-_08141E20: .4byte gUnknown_203F3AE
-_08141E24: .4byte gUnknown_8466C58
- thumb_func_end RoamerMoveToOtherLocationSet
-
- thumb_func_start RoamerMove
-RoamerMove: @ 8141E28
- push {r4-r7,lr}
- movs r4, 0
- bl Random
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 12
- ands r1, r0
- cmp r1, 0
- bne _08141E42
- bl RoamerMoveToOtherLocationSet
- b _08141EB2
-_08141E42:
- ldr r0, _08141E94 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08141E98 @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08141EB2
- ldr r7, _08141E9C @ =gUnknown_203F3AE
-_08141E52:
- ldr r3, _08141EA0 @ =gUnknown_8466C58
- lsls r0, r4, 3
- subs r2, r0, r4
- adds r1, r2, r3
- ldrb r0, [r7, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08141EA8
- adds r6, r3, 0
- adds r5, r2, 0x1
- ldr r4, _08141EA4 @ =gUnknown_203F3A8
-_08141E68:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, r5
- adds r0, r6
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- cmp r0, 0x3
- bne _08141E8C
- ldrb r0, [r4, 0x5]
- cmp r0, r1
- beq _08141E68
-_08141E8C:
- cmp r1, 0xFF
- beq _08141E68
- strb r1, [r7, 0x1]
- b _08141EB2
- .align 2, 0
-_08141E94: .4byte gSaveBlock1Ptr
-_08141E98: .4byte 0x000030d0
-_08141E9C: .4byte gUnknown_203F3AE
-_08141EA0: .4byte gUnknown_8466C58
-_08141EA4: .4byte gUnknown_203F3A8
-_08141EA8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x18
- bls _08141E52
-_08141EB2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end RoamerMove
-
- thumb_func_start IsRoamerAt
-IsRoamerAt: @ 8141EB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08141EE4 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, _08141EE8 @ =0x000030d0
- adds r0, r3
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08141EF0
- ldr r0, _08141EEC @ =gUnknown_203F3AE
- ldrb r3, [r0]
- cmp r2, r3
- bne _08141EF0
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bne _08141EF0
- movs r0, 0x1
- b _08141EF2
- .align 2, 0
-_08141EE4: .4byte gSaveBlock1Ptr
-_08141EE8: .4byte 0x000030d0
-_08141EEC: .4byte gUnknown_203F3AE
-_08141EF0:
- movs r0, 0
-_08141EF2:
- pop {r1}
- bx r1
- thumb_func_end IsRoamerAt
-
- thumb_func_start CreateRoamerMonInstance
-CreateRoamerMonInstance: @ 8141EF8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08141F84 @ =gEnemyParty
- bl ZeroEnemyPartyMons
- ldr r4, _08141F88 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r1, _08141F8C @ =0x000030d0
- adds r0, r1
- ldrh r1, [r0, 0x8]
- ldrb r2, [r0, 0xC]
- ldr r3, [r0]
- ldr r0, [r0, 0x4]
- str r0, [sp]
- adds r0, r5, 0
- bl CreateMonWithIVsPersonality
- ldr r2, [r4]
- ldr r0, _08141F90 @ =0x000030dd
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x37
- bl SetMonData
- ldr r2, [r4]
- ldr r1, _08141F94 @ =0x000030da
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x39
- bl SetMonData
- ldr r2, [r4]
- ldr r0, _08141F98 @ =0x000030de
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x16
- bl SetMonData
- ldr r2, [r4]
- ldr r1, _08141F9C @ =0x000030df
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x17
- bl SetMonData
- ldr r2, [r4]
- ldr r0, _08141FA0 @ =0x000030e0
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x18
- bl SetMonData
- ldr r2, [r4]
- ldr r1, _08141FA4 @ =0x000030e1
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x21
- bl SetMonData
- ldr r2, [r4]
- ldr r0, _08141FA8 @ =0x000030e2
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x2F
- bl SetMonData
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141F84: .4byte gEnemyParty
-_08141F88: .4byte gSaveBlock1Ptr
-_08141F8C: .4byte 0x000030d0
-_08141F90: .4byte 0x000030dd
-_08141F94: .4byte 0x000030da
-_08141F98: .4byte 0x000030de
-_08141F9C: .4byte 0x000030df
-_08141FA0: .4byte 0x000030e0
-_08141FA4: .4byte 0x000030e1
-_08141FA8: .4byte 0x000030e2
- thumb_func_end CreateRoamerMonInstance
-
- thumb_func_start TryStartRoamerEncounter
-TryStartRoamerEncounter: @ 8141FAC
- push {lr}
- ldr r0, _08141FDC @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- bl IsRoamerAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08141FE0
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08141FE0
- bl CreateRoamerMonInstance
- movs r0, 0x1
- b _08141FE2
- .align 2, 0
-_08141FDC: .4byte gSaveBlock1Ptr
-_08141FE0:
- movs r0, 0
-_08141FE2:
- pop {r1}
- bx r1
- thumb_func_end TryStartRoamerEncounter
-
- thumb_func_start UpdateRoamerHPStatus
-UpdateRoamerHPStatus: @ 8141FE8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x39
- bl GetMonData
- ldr r5, _08142014 @ =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r4, _08142018 @ =0x000030d0
- adds r1, r4
- strh r0, [r1, 0xA]
- adds r0, r6, 0
- movs r1, 0x37
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xD]
- bl RoamerMoveToOtherLocationSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142014: .4byte gSaveBlock1Ptr
-_08142018: .4byte 0x000030d0
- thumb_func_end UpdateRoamerHPStatus
-
- thumb_func_start SetRoamerInactive
-SetRoamerInactive: @ 814201C
- ldr r0, _0814202C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08142030 @ =0x000030d0
- adds r0, r1
- movs r1, 0
- strb r1, [r0, 0x13]
- bx lr
- .align 2, 0
-_0814202C: .4byte gSaveBlock1Ptr
-_08142030: .4byte 0x000030d0
- thumb_func_end SetRoamerInactive
-
- thumb_func_start GetRoamerLocation
-GetRoamerLocation: @ 8142034
- ldr r3, _08142040 @ =gUnknown_203F3AE
- ldrb r2, [r3]
- strb r2, [r0]
- ldrb r0, [r3, 0x1]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08142040: .4byte gUnknown_203F3AE
- thumb_func_end GetRoamerLocation
-
- thumb_func_start sub_8142044
-sub_8142044: @ 8142044
- push {lr}
- ldr r0, _08142064 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08142068 @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08142070
- ldr r1, _0814206C @ =gUnknown_203F3AE
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl get_mapheader_by_bank_and_number
- ldrb r0, [r0, 0x14]
- b _08142072
- .align 2, 0
-_08142064: .4byte gSaveBlock1Ptr
-_08142068: .4byte 0x000030d0
-_0814206C: .4byte gUnknown_203F3AE
-_08142070:
- movs r0, 0xC5
-_08142072:
- pop {r1}
- bx r1
- thumb_func_end sub_8142044
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 438f715fa..eaf874aea 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -301,7 +301,7 @@ _0809CB7A:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
ldr r0, [sp, 0x18]
adds r1, r7, 0
adds r2, r5, 0
@@ -1138,7 +1138,7 @@ _0809D1FA:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
mov r1, r9
adds r2, r6, 0
@@ -1925,7 +1925,7 @@ _0809D844:
bl AddTextPrinterParameterized
adds r0, r6, 0x1
lsls r0, 24
- ldr r2, _0809D8BC @ =gUnknown_84161C8
+ ldr r2, _0809D8BC @ =gOtherText_Exit
lsrs r0, 20
adds r0, 0x2
lsls r0, 24
@@ -1946,7 +1946,7 @@ _0809D844:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
mov r1, r9
adds r2, r7, 0
@@ -1964,7 +1964,7 @@ _0809D8A8:
bx r0
.align 2, 0
_0809D8B8: .4byte gUnknown_8417DED
-_0809D8BC: .4byte gUnknown_84161C8
+_0809D8BC: .4byte gOtherText_Exit
thumb_func_end sub_809D764
thumb_func_start sub_809D8C0
diff --git a/asm/seagallop.s b/asm/seagallop.s
index f54d0d986..c4bf6cccf 100644
--- a/asm/seagallop.s
+++ b/asm/seagallop.s
@@ -533,7 +533,7 @@ _081472F8: .4byte 0x81000800
thumb_func_start sub_81472FC
sub_81472FC: @ 81472FC
push {lr}
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl ResetTasks
bl ResetSpriteData
bl dp13_810BB8C
diff --git a/asm/shop.s b/asm/shop.s
index aed90ff85..bdb2f8e9e 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -74,7 +74,7 @@ _0809AAF8:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
ldrb r0, [r4]
bl PutWindowTilemap
ldrb r0, [r4]
@@ -477,7 +477,7 @@ _0809AE2C:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0809AE9C @ =gUnknown_3005E70
+ ldr r0, _0809AE9C @ =gMultiuseListMenuTemplate
movs r1, 0
movs r2, 0
bl ListMenuInit
@@ -510,7 +510,7 @@ _0809AE2C:
_0809AE90: .4byte gMain
_0809AE94: .4byte gUnknown_2039934
_0809AE98: .4byte sub_809BBC0
-_0809AE9C: .4byte gUnknown_3005E70
+_0809AE9C: .4byte gMultiuseListMenuTemplate
_0809AEA0: .4byte gTasks
_0809AEA4: .4byte sub_809AE00
_0809AEA8: .4byte sub_809ADE4
@@ -522,7 +522,7 @@ _0809AEAC:
ldr r2, _0809AF4C @ =0x01000100
add r0, sp, 0x8
bl CpuFastSet
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl reset_temp_tile_data_buffers
bl FreeAllSpritePalettes
bl ResetPaletteFade
@@ -904,7 +904,7 @@ _0809B1F2:
movs r0, 0x2
negs r0, r0
str r0, [r1, 0x4]
- ldr r5, _0809B2D4 @ =gUnknown_3005E70
+ ldr r5, _0809B2D4 @ =gMultiuseListMenuTemplate
str r2, [r5]
ldr r6, _0809B2D8 @ =gUnknown_2039934
ldrh r0, [r6, 0x10]
@@ -992,7 +992,7 @@ _0809B2BC:
_0809B2C8: .4byte gUnknown_2039968
_0809B2CC: .4byte gFameCheckerText_Cancel
_0809B2D0: .4byte gUnknown_2039964
-_0809B2D4: .4byte gUnknown_3005E70
+_0809B2D4: .4byte gMultiuseListMenuTemplate
_0809B2D8: .4byte gUnknown_2039934
_0809B2DC: .4byte sub_809B320
_0809B2E0: .4byte sub_809B408
@@ -1000,7 +1000,7 @@ _0809B2E4:
strh r0, [r5, 0xE]
_0809B2E6:
ldr r0, _0809B2F8 @ =gUnknown_2039934
- ldr r1, _0809B2FC @ =gUnknown_3005E70
+ ldr r1, _0809B2FC @ =gMultiuseListMenuTemplate
ldrh r1, [r1, 0xE]
strh r1, [r0, 0x12]
movs r0, 0x1
@@ -1010,7 +1010,7 @@ _0809B2F0:
bx r1
.align 2, 0
_0809B2F8: .4byte gUnknown_2039934
-_0809B2FC: .4byte gUnknown_3005E70
+_0809B2FC: .4byte gMultiuseListMenuTemplate
thumb_func_end sub_809B188
thumb_func_start sub_809B300
@@ -1233,7 +1233,7 @@ sub_809B494: @ 809B494
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r5, _0809B51C @ =gStringVar4
- ldr r1, _0809B520 @ =gUnknown_8416226
+ ldr r1, _0809B520 @ =gOtherText_UnkF9_08_Clear_01
adds r0, r5, 0
bl StringCopy
adds r0, r5, 0
@@ -1279,10 +1279,10 @@ sub_809B494: @ 809B494
_0809B514: .4byte gStringVar1
_0809B518: .4byte 0xfffffee0
_0809B51C: .4byte gStringVar4
-_0809B520: .4byte gUnknown_8416226
+_0809B520: .4byte gOtherText_UnkF9_08_Clear_01
_0809B524: .4byte gMoveNames
_0809B528:
- ldr r2, _0809B564 @ =gUnknown_8416213
+ ldr r2, _0809B564 @ =gText_ThreeHyphens
movs r4, 0
str r4, [sp]
str r4, [sp, 0x4]
@@ -1312,7 +1312,7 @@ _0809B55C:
pop {r0}
bx r0
.align 2, 0
-_0809B564: .4byte gUnknown_8416213
+_0809B564: .4byte gText_ThreeHyphens
_0809B568: .4byte gUnknown_8416217
thumb_func_end sub_809B494
@@ -2119,7 +2119,7 @@ sub_809BB44: @ 809BB44
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, _0809BBB8 @ =gStringVar4
- ldr r1, _0809BBBC @ =gUnknown_84162B9
+ ldr r1, _0809BBBC @ =gText_TimesStrVar1
adds r0, r4, 0
bl StringExpandPlaceholders
movs r0, 0xA
@@ -2144,7 +2144,7 @@ _0809BBAC: .4byte gTasks+0x8
_0809BBB0: .4byte gUnknown_2039934
_0809BBB4: .4byte gStringVar1
_0809BBB8: .4byte gStringVar4
-_0809BBBC: .4byte gUnknown_84162B9
+_0809BBBC: .4byte gText_TimesStrVar1
thumb_func_end sub_809BB44
thumb_func_start sub_809BBC0
@@ -2691,7 +2691,7 @@ sub_809C04C: @ 809C04C
ldrb r0, [r2, 0xE]
movs r1, 0
movs r2, 0
- bl sub_810713C
+ bl DestroyListMenu
bl sub_809B604
ldr r0, _0809C090 @ =c2_exit_to_overworld_2_switch
bl SetMainCallback2
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 07483bb5e..48cb65638 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -4424,7 +4424,7 @@ _08141984:
ldrsh r0, [r5, r2]
cmp r0, 0
bne _081419C4
- ldr r1, _081419BC @ =gUnknown_825E074
+ ldr r1, _081419BC @ =gSineTable
movs r2, 0x4
ldrsh r0, [r5, r2]
lsls r0, 1
@@ -4447,7 +4447,7 @@ _08141984:
movs r0, 0x8
b _081419C6
.align 2, 0
-_081419BC: .4byte gUnknown_825E074
+_081419BC: .4byte gSineTable
_081419C0: .4byte gUnknown_84664DC
_081419C4:
subs r0, r1, 0x1
@@ -4462,7 +4462,7 @@ _081419C6:
movs r1, 0x7F
ands r0, r1
strh r0, [r5, 0x8]
- ldr r1, _081419FC @ =gUnknown_825E074
+ ldr r1, _081419FC @ =gSineTable
movs r2, 0x8
ldrsh r0, [r5, r2]
lsls r0, 1
@@ -4478,7 +4478,7 @@ _081419C6:
bl BlendPalettes
b _08141A2C
.align 2, 0
-_081419FC: .4byte gUnknown_825E074
+_081419FC: .4byte gSineTable
_08141A00:
ldrh r0, [r5, 0x8]
adds r0, 0x1
diff --git a/asm/start_menu.s b/asm/start_menu.s
index cfd970001..65a1e4402 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -158,7 +158,7 @@ sub_806EE7C: @ 806EE7C
bl PutWindowTilemap
ldrb r0, [r4]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r0, _0806EEFC @ =gStringVar1
ldr r1, _0806EF00 @ =gUnknown_2039996
ldrh r1, [r1]
@@ -390,7 +390,7 @@ _0806F06C:
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r1, _0806F08C @ =gUnknown_20370FF
b _0806F0B8
.align 2, 0
@@ -438,7 +438,7 @@ _0806F0C4:
movs r1, 0x2
movs r2, 0
movs r3, 0
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
strb r0, [r4]
bl sub_80BF708
lsls r0, 24
@@ -1049,7 +1049,7 @@ sub_806F5A4: @ 806F5A4
push {lr}
bl sub_812B234
movs r0, 0xC
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_806F624
ldr r1, _0806F5C0 @ =gUnknown_20370F0
ldr r0, _0806F5C4 @ =sub_806F5C8
@@ -1156,7 +1156,7 @@ sub_806F67C: @ 806F67C
push {lr}
bl sub_812B234
movs r0, 0xC
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_806F624
ldr r0, _0806F698 @ =task50_save_game
movs r1, 0x50
@@ -1239,7 +1239,7 @@ sub_806F71C: @ 806F71C
push {lr}
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
pop {r0}
bx r0
thumb_func_end sub_806F71C
@@ -1328,7 +1328,7 @@ sub_806F7A8: @ 806F7A8
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
bl remove_start_menu_window_maybe
movs r0, 0
bl sub_8112EDC
@@ -1713,7 +1713,7 @@ _0806FA88:
bl SetGpuReg
movs r0, 0
bl SetVBlankCallback
- bl remove_some_task
+ bl ScanlineEffect_Stop
movs r2, 0xA0
lsls r2, 19
mov r1, sp
@@ -1767,7 +1767,7 @@ _0806FB00:
bl ResetSpriteData
bl ResetTasks
bl ResetPaletteFade
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
b _0806FB64
_0806FB12:
movs r0, 0
@@ -2178,7 +2178,7 @@ sub_806FE84: @ 806FE84
ldr r4, _0806FE9C @ =gUnknown_2037104
ldrb r0, [r4]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
@@ -2197,7 +2197,7 @@ sub_806FEA0: @ 806FEA0
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
bl remove_start_menu_window_maybe
bl sub_80696C0
bl ScriptContext2_Disable
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s
index 5e2b048e2..b7875e7a9 100644
--- a/asm/teachy_tv.s
+++ b/asm/teachy_tv.s
@@ -33,7 +33,7 @@ sub_815ABC4: @ 815ABC4
lsls r0, 24
lsrs r0, 24
adds r2, r0, 0
- ldr r3, _0815ABF4 @ =gUnknown_203F444
+ ldr r3, _0815ABF4 @ =gTeachyTV_StaticResources
movs r4, 0
strb r2, [r3, 0x4]
str r1, [r3]
@@ -54,14 +54,14 @@ _0815ABE6:
pop {r0}
bx r0
.align 2, 0
-_0815ABF4: .4byte gUnknown_203F444
+_0815ABF4: .4byte gTeachyTV_StaticResources
_0815ABF8: .4byte sub_815AC2C
thumb_func_end sub_815ABC4
- thumb_func_start sub_815ABFC
-sub_815ABFC: @ 815ABFC
+ thumb_func_start CB2_ReturnToTeachyTV
+CB2_ReturnToTeachyTV: @ 815ABFC
push {lr}
- ldr r1, _0815AC10 @ =gUnknown_203F444
+ ldr r1, _0815AC10 @ =gTeachyTV_StaticResources
ldrb r0, [r1, 0x4]
cmp r0, 0x1
bne _0815AC14
@@ -70,7 +70,7 @@ sub_815ABFC: @ 815ABFC
bl sub_815ABC4
b _0815AC1C
.align 2, 0
-_0815AC10: .4byte gUnknown_203F444
+_0815AC10: .4byte gTeachyTV_StaticResources
_0815AC14:
ldr r1, [r1]
movs r0, 0x2
@@ -78,16 +78,16 @@ _0815AC14:
_0815AC1C:
pop {r0}
bx r0
- thumb_func_end sub_815ABFC
+ thumb_func_end CB2_ReturnToTeachyTV
thumb_func_start sub_815AC20
sub_815AC20: @ 815AC20
- ldr r1, _0815AC28 @ =gUnknown_203F444
+ ldr r1, _0815AC28 @ =gTeachyTV_StaticResources
movs r0, 0x1
strb r0, [r1, 0x4]
bx lr
.align 2, 0
-_0815AC28: .4byte gUnknown_203F444
+_0815AC28: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815AC20
thumb_func_start sub_815AC2C
@@ -122,7 +122,7 @@ _0815AC48:
strb r1, [r0]
bl sub_80BF768
bl clear_scheduled_bg_copies_to_vram
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl FreeAllSpritePalettes
bl ResetPaletteFade
bl ResetSpriteData
@@ -145,7 +145,7 @@ _0815AC9C:
beq _0815AD6E
bl sub_815AEB8
bl sub_815AFEC
- ldr r0, _0815ACE0 @ =gUnknown_203F444
+ ldr r0, _0815ACE0 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x4]
cmp r0, 0x2
bne _0815ACEC
@@ -167,7 +167,7 @@ _0815AC9C:
bl sub_815B118
b _0815AD26
.align 2, 0
-_0815ACE0: .4byte gUnknown_203F444
+_0815ACE0: .4byte gTeachyTV_StaticResources
_0815ACE4: .4byte sub_815BA54
_0815ACE8: .4byte gTasks
_0815ACEC:
@@ -384,7 +384,7 @@ _0815AEE4: .4byte gUnknown_84792F0
thumb_func_start sub_815AEE8
sub_815AEE8: @ 815AEE8
push {r4,r5,lr}
- ldr r4, _0815AF48 @ =gUnknown_3005E70
+ ldr r4, _0815AF48 @ =gMultiuseListMenuTemplate
adds r1, r4, 0
ldr r0, _0815AF4C @ =gUnknown_8479368
ldm r0!, {r2,r3,r5}
@@ -419,7 +419,7 @@ sub_815AEE8: @ 815AEE8
orrs r0, r1
strb r0, [r4, 0x14]
_0815AF30:
- ldr r0, _0815AF58 @ =gUnknown_203F444
+ ldr r0, _0815AF58 @ =gTeachyTV_StaticResources
ldrh r1, [r0, 0x6]
ldrh r2, [r0, 0x8]
adds r0, r4, 0
@@ -430,11 +430,11 @@ _0815AF30:
pop {r1}
bx r1
.align 2, 0
-_0815AF48: .4byte gUnknown_3005E70
+_0815AF48: .4byte gMultiuseListMenuTemplate
_0815AF4C: .4byte gUnknown_8479368
_0815AF50: .4byte sub_815AFD8
_0815AF54: .4byte gUnknown_8479340
-_0815AF58: .4byte gUnknown_203F444
+_0815AF58: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815AEE8
thumb_func_start sub_815AF5C
@@ -694,7 +694,7 @@ sub_815B118: @ 815B118
movs r0, 0x1
bl ClearWindowTilemap
bl sub_815B0B4
- ldr r0, _0815B198 @ =gUnknown_203F444
+ ldr r0, _0815B198 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
cmp r0, 0
blt _0815B1B8
@@ -732,7 +732,7 @@ sub_815B118: @ 815B118
.align 2, 0
_0815B190: .4byte gTasks+0x8
_0815B194: .4byte gSprites
-_0815B198: .4byte gUnknown_203F444
+_0815B198: .4byte gTeachyTV_StaticResources
_0815B19C: .4byte gUnknown_203F450
_0815B1A0: .4byte 0x00004004
_0815B1A4: .4byte 0x00004005
@@ -774,7 +774,7 @@ sub_815B1DC: @ 815B1DC
negs r0, r0
ands r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -867,7 +867,7 @@ _0815B298: .4byte gPaletteFade
_0815B29C: .4byte gUnknown_203F450
_0815B2A0:
bl sub_8055DC4
- ldr r0, _0815B2BC @ =gUnknown_203F444
+ ldr r0, _0815B2BC @ =gTeachyTV_StaticResources
ldr r0, [r0]
bl SetMainCallback2
_0815B2AC:
@@ -879,7 +879,7 @@ _0815B2B6:
pop {r0}
bx r0
.align 2, 0
-_0815B2BC: .4byte gUnknown_203F444
+_0815B2BC: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815B274
thumb_func_start sub_815B2C0
@@ -942,13 +942,13 @@ _0815B330:
_0815B33E:
movs r0, 0x5
bl PlaySE
- ldr r2, _0815B380 @ =gUnknown_203F444
+ ldr r2, _0815B380 @ =gTeachyTV_StaticResources
movs r4, 0
strb r5, [r2, 0x5]
ldrb r0, [r6]
adds r1, r2, 0x6
adds r2, 0x8
- bl sub_810713C
+ bl DestroyListMenu
bl sub_815B0B4
movs r0, 0x1
bl ClearWindowTilemap
@@ -969,7 +969,7 @@ _0815B37A:
pop {r0}
bx r0
.align 2, 0
-_0815B380: .4byte gUnknown_203F444
+_0815B380: .4byte gTeachyTV_StaticResources
_0815B384: .4byte gTasks
_0815B388: .4byte sub_815B4EC
thumb_func_end sub_815B2C0
@@ -1208,7 +1208,7 @@ _0815B554: .4byte 0x00004006
_0815B558: .4byte sub_815B92C
_0815B55C:
ldr r1, _0815B580 @ =gUnknown_8479548
- ldr r0, _0815B584 @ =gUnknown_203F444
+ ldr r0, _0815B584 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
lsls r0, 2
adds r0, r1
@@ -1226,7 +1226,7 @@ _0815B578:
bx r0
.align 2, 0
_0815B580: .4byte gUnknown_8479548
-_0815B584: .4byte gUnknown_203F444
+_0815B584: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815B4EC
thumb_func_start sub_815B588
@@ -1240,7 +1240,7 @@ sub_815B588: @ 815B588
ldr r0, _0815B5B4 @ =gTasks+0x8
adds r4, r0
ldr r1, _0815B5B8 @ =gUnknown_8479560
- ldr r0, _0815B5BC @ =gUnknown_203F444
+ ldr r0, _0815B5BC @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
lsls r0, 2
adds r0, r1
@@ -1255,7 +1255,7 @@ sub_815B588: @ 815B588
.align 2, 0
_0815B5B4: .4byte gTasks+0x8
_0815B5B8: .4byte gUnknown_8479560
-_0815B5BC: .4byte gUnknown_203F444
+_0815B5BC: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815B588
thumb_func_start sub_815B5C0
@@ -1269,7 +1269,7 @@ sub_815B5C0: @ 815B5C0
ldr r0, _0815B5EC @ =gTasks+0x8
adds r4, r0
ldr r1, _0815B5F0 @ =gUnknown_8479578
- ldr r0, _0815B5F4 @ =gUnknown_203F444
+ ldr r0, _0815B5F4 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
lsls r0, 2
adds r0, r1
@@ -1284,7 +1284,7 @@ sub_815B5C0: @ 815B5C0
.align 2, 0
_0815B5EC: .4byte gTasks+0x8
_0815B5F0: .4byte gUnknown_8479578
-_0815B5F4: .4byte gUnknown_203F444
+_0815B5F4: .4byte gTeachyTV_StaticResources
thumb_func_end sub_815B5C0
thumb_func_start sub_815B5F8
@@ -1806,7 +1806,7 @@ sub_815B9F0: @ 815B9F0
lsls r0, 24
lsrs r1, r0, 24
adds r2, r1, 0
- ldr r0, _0815BA0C @ =gUnknown_203F444
+ ldr r0, _0815BA0C @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
cmp r0, 0
blt _0815BA22
@@ -1816,7 +1816,7 @@ sub_815B9F0: @ 815B9F0
bl sub_815BC90
b _0815BA22
.align 2, 0
-_0815BA0C: .4byte gUnknown_203F444
+_0815BA0C: .4byte gTeachyTV_StaticResources
_0815BA10:
cmp r0, 0x5
bgt _0815BA22
@@ -1837,7 +1837,7 @@ _0815BA2C: .4byte sub_815BA30
thumb_func_start sub_815BA30
sub_815BA30: @ 815BA30
push {lr}
- ldr r0, _0815BA44 @ =gUnknown_203F444
+ ldr r0, _0815BA44 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
cmp r0, 0x4
bne _0815BA48
@@ -1845,7 +1845,7 @@ sub_815BA30: @ 815BA30
bl sub_810B108
b _0815BA4E
.align 2, 0
-_0815BA44: .4byte gUnknown_203F444
+_0815BA44: .4byte gTeachyTV_StaticResources
_0815BA48:
movs r0, 0x9
bl sub_810B108
@@ -1871,7 +1871,7 @@ sub_815BA54: @ 815BA54
cmp r0, 0
bne _0815BA86
ldr r1, _0815BA94 @ =gUnknown_8479390
- ldr r0, _0815BA98 @ =gUnknown_203F444
+ ldr r0, _0815BA98 @ =gTeachyTV_StaticResources
ldrb r0, [r0, 0x5]
adds r0, r1
ldrb r0, [r0]
@@ -1889,7 +1889,7 @@ _0815BA86:
_0815BA8C: .4byte gTasks+0x8
_0815BA90: .4byte gPaletteFade
_0815BA94: .4byte gUnknown_8479390
-_0815BA98: .4byte gUnknown_203F444
+_0815BA98: .4byte gTeachyTV_StaticResources
_0815BA9C: .4byte sub_815B4EC
thumb_func_end sub_815BA54
@@ -2155,7 +2155,7 @@ sub_815BC90: @ 815BC90
adds r5, r0, r1
bl sub_815B220
ldr r1, _0815BCD0 @ =gSpecialVar_0x8004
- ldr r4, _0815BCD4 @ =gUnknown_203F444
+ ldr r4, _0815BCD4 @ =gTeachyTV_StaticResources
ldrb r0, [r4, 0x5]
strh r0, [r1]
ldr r1, _0815BCD8 @ =gMain
@@ -2173,7 +2173,7 @@ sub_815BC90: @ 815BC90
.align 2, 0
_0815BCCC: .4byte gTasks+0x8
_0815BCD0: .4byte gSpecialVar_0x8004
-_0815BCD4: .4byte gUnknown_203F444
+_0815BCD4: .4byte gTeachyTV_StaticResources
_0815BCD8: .4byte gMain
_0815BCDC: .4byte sub_815BD58
_0815BCE0:
@@ -2257,7 +2257,7 @@ _0815BD70:
lsls r0, 1
bl PlayNewMapMusic
_0815BD78:
- bl sub_815ABFC
+ bl CB2_ReturnToTeachyTV
pop {r0}
bx r0
thumb_func_end sub_815BD58
diff --git a/asm/title_screen.s b/asm/title_screen.s
index c07978623..c8261c1d3 100644
--- a/asm/title_screen.s
+++ b/asm/title_screen.s
@@ -292,7 +292,7 @@ sub_8078BB4: @ 8078BB4
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
ldr r1, _08078BE4 @ =gUnknown_2037F30
ldrb r0, [r1]
cmp r0, 0xFF
@@ -433,7 +433,7 @@ sub_8078C9C: @ 8078C9C
strb r5, [r0, 0x9]
add r0, sp, 0xC
strh r5, [r0]
- ldr r4, _08078D1C @ =gUnknown_2038700
+ ldr r4, _08078D1C @ =gScanlineEffectRegBuffers
ldr r6, _08078D20 @ =0x010000a0
adds r1, r4, 0
adds r2, r6, 0
@@ -450,7 +450,7 @@ sub_8078C9C: @ 8078C9C
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
mov r0, r8
movs r1, 0x1
bl sub_8078C90
@@ -463,7 +463,7 @@ sub_8078C9C: @ 8078C9C
.align 2, 0
_08078D14: .4byte 0x04000054
_08078D18: .4byte 0xa2600001
-_08078D1C: .4byte gUnknown_2038700
+_08078D1C: .4byte gScanlineEffectRegBuffers
_08078D20: .4byte 0x010000a0
thumb_func_end sub_8078C9C
@@ -507,7 +507,7 @@ _08078D5C:
ldrsh r0, [r4, r1]
cmp r0, 0
bge _08078D9C
- ldr r1, _08078D80 @ =gUnknown_2039600
+ ldr r1, _08078D80 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08078D78:
@@ -516,7 +516,7 @@ _08078D78:
strh r0, [r4, 0x2]
b _08078D9C
.align 2, 0
-_08078D80: .4byte gUnknown_2039600
+_08078D80: .4byte gScanlineEffect
_08078D84:
movs r0, 0x50
movs r1, 0
@@ -809,7 +809,7 @@ sub_8078FC4: @ 8078FC4
b _08079094
_08078FD6:
movs r0, 0x1
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, _0807902C @ =sub_807941C
movs r1, 0
bl CreateTask
@@ -1481,9 +1481,9 @@ sub_8079550: @ 8079550
asrs r4, r5, 16
cmp r4, 0
blt _08079574
- ldr r3, _08079618 @ =gUnknown_2038700
+ ldr r3, _08079618 @ =gScanlineEffectRegBuffers
lsls r2, r4, 1
- ldr r0, _0807961C @ =gUnknown_2039600
+ ldr r0, _0807961C @ =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
@@ -1496,9 +1496,9 @@ _08079574:
movs r3, 0
mov r8, r5
adds r6, r4, 0
- ldr r0, _08079618 @ =gUnknown_2038700
+ ldr r0, _08079618 @ =gScanlineEffectRegBuffers
mov r12, r0
- ldr r7, _0807961C @ =gUnknown_2039600
+ ldr r7, _0807961C @ =gScanlineEffect
movs r5, 0xF
lsls r2, r6, 1
adds r4, r2, 0
@@ -1537,8 +1537,8 @@ _080795AE:
adds r3, 0x10
cmp r3, 0x9F
bgt _080795E6
- ldr r6, _08079618 @ =gUnknown_2038700
- ldr r5, _0807961C @ =gUnknown_2039600
+ ldr r6, _08079618 @ =gScanlineEffectRegBuffers
+ ldr r5, _0807961C @ =gScanlineEffect
movs r4, 0
_080795CC:
cmp r3, 0
@@ -1562,8 +1562,8 @@ _080795E6:
subs r3, 0x10
cmp r3, 0
blt _0807960E
- ldr r6, _08079618 @ =gUnknown_2038700
- ldr r5, _0807961C @ =gUnknown_2039600
+ ldr r6, _08079618 @ =gScanlineEffectRegBuffers
+ ldr r5, _0807961C @ =gScanlineEffect
movs r4, 0
_080795F8:
lsls r2, r3, 1
@@ -1584,14 +1584,14 @@ _0807960E:
pop {r0}
bx r0
.align 2, 0
-_08079618: .4byte gUnknown_2038700
-_0807961C: .4byte gUnknown_2039600
+_08079618: .4byte gScanlineEffectRegBuffers
+_0807961C: .4byte gScanlineEffect
thumb_func_end sub_8079550
thumb_func_start sub_8079620
sub_8079620: @ 8079620
push {lr}
- ldr r1, _08079644 @ =gUnknown_2039600
+ ldr r1, _08079644 @ =gScanlineEffect
ldrb r0, [r1, 0x15]
cmp r0, 0
beq _0807962E
@@ -1607,7 +1607,7 @@ _0807962E:
pop {r0}
bx r0
.align 2, 0
-_08079644: .4byte gUnknown_2039600
+_08079644: .4byte gScanlineEffect
thumb_func_end sub_8079620
thumb_func_start sub_8079648
diff --git a/asm/tm_case.s b/asm/tm_case.s
deleted file mode 100644
index e942bbc32..000000000
--- a/asm/tm_case.s
+++ /dev/null
@@ -1,3999 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81317F8
-sub_81317F8: @ 81317F8
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 24
- lsrs r6, r2, 24
- bl sub_8131A8C
- ldr r4, _08131854 @ =gUnknown_203B118
- movs r0, 0x1C
- bl Alloc
- str r0, [r4]
- movs r1, 0
- str r1, [r0]
- movs r1, 0xFF
- strb r1, [r0, 0x8]
- ldr r1, [r4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x7]
- cmp r5, 0x5
- beq _0813182A
- ldr r0, _08131858 @ =gUnknown_203B10C
- strb r5, [r0, 0x4]
-_0813182A:
- cmp r7, 0
- beq _08131832
- ldr r0, _08131858 @ =gUnknown_203B10C
- str r7, [r0]
-_08131832:
- cmp r6, 0xFF
- beq _0813183A
- ldr r0, _08131858 @ =gUnknown_203B10C
- strb r6, [r0, 0x5]
-_0813183A:
- ldr r2, _0813185C @ =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08131860 @ =sub_8131894
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131854: .4byte gUnknown_203B118
-_08131858: .4byte gUnknown_203B10C
-_0813185C: .4byte gTextFlags
-_08131860: .4byte sub_8131894
- thumb_func_end sub_81317F8
-
- thumb_func_start sub_8131864
-sub_8131864: @ 8131864
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8131864
-
- thumb_func_start sub_8131880
-sub_8131880: @ 8131880
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8131880
-
- thumb_func_start sub_8131894
-sub_8131894: @ 8131894
- push {lr}
-_08131896:
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081318BA
- bl sub_81318C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081318BA
- bl sub_80BF708
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08131896
-_081318BA:
- pop {r0}
- bx r0
- thumb_func_end sub_8131894
-
- thumb_func_start sub_81318C0
-sub_81318C0: @ 81318C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081318E0 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _081318D4
- b _08131A68
-_081318D4:
- lsls r0, 2
- ldr r1, _081318E4 @ =_081318E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081318E0: .4byte gMain
-_081318E4: .4byte _081318E8
- .align 2, 0
-_081318E8:
- .4byte _08131934
- .4byte _0813193E
- .4byte _08131944
- .4byte _0813194A
- .4byte _08131950
- .4byte _08131956
- .4byte _0813195C
- .4byte _08131970
- .4byte _08131976
- .4byte _08131984
- .4byte _08131990
- .4byte _0813199E
- .4byte _081319A4
- .4byte _081319AE
- .4byte _081319B4
- .4byte _08131A04
- .4byte _08131A0A
- .4byte _08131A34
- .4byte _08131A42
-_08131934:
- bl sub_80BF768
- bl clear_scheduled_bg_copies_to_vram
- b _08131A52
-_0813193E:
- bl remove_some_task
- b _08131A52
-_08131944:
- bl FreeAllSpritePalettes
- b _08131A52
-_0813194A:
- bl ResetPaletteFade
- b _08131A52
-_08131950:
- bl ResetSpriteData
- b _08131A52
-_08131956:
- bl ResetTasks
- b _08131A52
-_0813195C:
- bl sub_8131AB8
- ldr r0, _0813196C @ =gUnknown_203B118
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1, 0x12]
- b _08131A52
- .align 2, 0
-_0813196C: .4byte gUnknown_203B118
-_08131970:
- bl sub_8133244
- b _08131A52
-_08131976:
- bl sub_8131B20
- lsls r0, 24
- cmp r0, 0
- bne _08131982
- b _08131A80
-_08131982:
- b _08131A52
-_08131984:
- ldr r0, _0813198C @ =gUnknown_20398A4
- bl sub_809A5E4
- b _08131A52
- .align 2, 0
-_0813198C: .4byte gUnknown_20398A4
-_08131990:
- bl sub_81320BC
- bl sub_8132120
- bl sub_8132170
- b _08131A52
-_0813199E:
- bl sub_8133404
- b _08131A52
-_081319A4:
- bl sub_8131C10
- bl sub_8131C50
- b _08131A52
-_081319AE:
- bl sub_81333C4
- b _08131A52
-_081319B4:
- ldr r0, _081319C0 @ =gUnknown_203B10C
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bne _081319C8
- ldr r0, _081319C4 @ =sub_8132F20
- b _081319CA
- .align 2, 0
-_081319C0: .4byte gUnknown_203B10C
-_081319C4: .4byte sub_8132F20
-_081319C8:
- ldr r0, _081319F4 @ =sub_81322D4
-_081319CA:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081319F8 @ =gUnknown_3005E70
- ldr r2, _081319FC @ =gUnknown_203B10C
- ldrh r1, [r2, 0xA]
- ldrh r2, [r2, 0x8]
- bl ListMenuInit
- ldr r2, _08131A00 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- b _08131A52
- .align 2, 0
-_081319F4: .4byte sub_81322D4
-_081319F8: .4byte gUnknown_3005E70
-_081319FC: .4byte gUnknown_203B10C
-_08131A00: .4byte gTasks
-_08131A04:
- bl sub_8132018
- b _08131A52
-_08131A0A:
- ldr r0, _08131A2C @ =gUnknown_203B10C
- ldrh r1, [r0, 0x8]
- ldrh r0, [r0, 0xA]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl sub_813368C
- ldr r1, _08131A30 @ =gUnknown_203B118
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- b _08131A52
- .align 2, 0
-_08131A2C: .4byte gUnknown_203B10C
-_08131A30: .4byte gUnknown_203B118
-_08131A34:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08131A52
-_08131A42:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08131A52:
- ldr r1, _08131A64 @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08131A80
- .align 2, 0
-_08131A64: .4byte gMain
-_08131A68:
- ldr r0, _08131A78 @ =sub_8131880
- bl SetVBlankCallback
- ldr r0, _08131A7C @ =sub_8131864
- bl SetMainCallback2
- movs r0, 0x1
- b _08131A82
- .align 2, 0
-_08131A78: .4byte sub_8131880
-_08131A7C: .4byte sub_8131864
-_08131A80:
- movs r0, 0
-_08131A82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81318C0
-
- thumb_func_start sub_8131A8C
-sub_8131A8C: @ 8131A8C
- ldr r0, _08131AA4 @ =gUnknown_203B118
- movs r1, 0
- str r1, [r0]
- ldr r0, _08131AA8 @ =gUnknown_203B120
- str r1, [r0]
- ldr r0, _08131AAC @ =gUnknown_203B124
- str r1, [r0]
- ldr r0, _08131AB0 @ =gUnknown_203B128
- str r1, [r0]
- ldr r0, _08131AB4 @ =gUnknown_203B12C
- str r1, [r0]
- bx lr
- .align 2, 0
-_08131AA4: .4byte gUnknown_203B118
-_08131AA8: .4byte gUnknown_203B120
-_08131AAC: .4byte gUnknown_203B124
-_08131AB0: .4byte gUnknown_203B128
-_08131AB4: .4byte gUnknown_203B12C
- thumb_func_end sub_8131A8C
-
- thumb_func_start sub_8131AB8
-sub_8131AB8: @ 8131AB8
- push {r4,lr}
- bl sub_80BF7C8
- ldr r4, _08131B18 @ =gUnknown_203B120
- movs r0, 0x80
- lsls r0, 4
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08131B1C @ =gUnknown_8463134
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r1, [r4]
- movs r0, 0x2
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08131B18: .4byte gUnknown_203B120
-_08131B1C: .4byte gUnknown_8463134
- thumb_func_end sub_8131AB8
-
- thumb_func_start sub_8131B20
-sub_8131B20: @ 8131B20
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08131B3C @ =gUnknown_203B118
- ldr r0, [r4]
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bhi _08131BF8
- lsls r0, 2
- ldr r1, _08131B40 @ =_08131B44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08131B3C: .4byte gUnknown_203B118
-_08131B40: .4byte _08131B44
- .align 2, 0
-_08131B44:
- .4byte _08131B58
- .4byte _08131B74
- .4byte _08131B94
- .4byte _08131BAC
- .4byte _08131BDC
-_08131B58:
- bl reset_temp_tile_data_buffers
- ldr r1, _08131B70 @ =gUnknown_8E845D8
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _08131BE2
- .align 2, 0
-_08131B70: .4byte gUnknown_8E845D8
-_08131B74:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08131C06
- ldr r0, _08131B8C @ =gUnknown_8E84A24
- ldr r1, _08131B90 @ =gUnknown_203B120
- ldr r1, [r1]
- bl LZDecompressWram
- b _08131BE2
- .align 2, 0
-_08131B8C: .4byte gUnknown_8E84A24
-_08131B90: .4byte gUnknown_203B120
-_08131B94:
- ldr r4, _08131BA8 @ =gUnknown_8E84B70
- movs r0, 0x1
- bl GetBgTilemapBuffer
- adds r1, r0, 0
- adds r0, r4, 0
- bl LZDecompressWram
- b _08131BE2
- .align 2, 0
-_08131BA8: .4byte gUnknown_8E84B70
-_08131BAC:
- ldr r0, _08131BC4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08131BCC
- ldr r0, _08131BC8 @ =gUnknown_8E84CB0
- movs r1, 0
- movs r2, 0x80
- bl LoadCompressedPalette
- b _08131BE2
- .align 2, 0
-_08131BC4: .4byte gSaveBlock2Ptr
-_08131BC8: .4byte gUnknown_8E84CB0
-_08131BCC:
- ldr r0, _08131BD8 @ =gUnknown_8E84D20
- movs r1, 0
- movs r2, 0x80
- bl LoadCompressedPalette
- b _08131BE2
- .align 2, 0
-_08131BD8: .4byte gUnknown_8E84D20
-_08131BDC:
- ldr r0, _08131BF0 @ =gUnknown_8463218
- bl LoadCompressedObjectPic
-_08131BE2:
- ldr r0, _08131BF4 @ =gUnknown_203B118
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- b _08131C06
- .align 2, 0
-_08131BF0: .4byte gUnknown_8463218
-_08131BF4: .4byte gUnknown_203B118
-_08131BF8:
- bl sub_81338A8
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1, 0x12]
- movs r0, 0x1
- b _08131C08
-_08131C06:
- movs r0, 0
-_08131C08:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8131B20
-
- thumb_func_start sub_8131C10
-sub_8131C10: @ 8131C10
- push {r4,lr}
- ldr r0, _08131C40 @ =gUnknown_20398A4
- ldr r4, _08131C44 @ =gUnknown_203B124
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- lsls r0, 3
- bl Alloc
- str r0, [r4]
- ldr r4, _08131C48 @ =gUnknown_203B128
- ldr r0, _08131C4C @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r1, [r0, 0x6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- bl Alloc
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08131C40: .4byte gUnknown_20398A4
-_08131C44: .4byte gUnknown_203B124
-_08131C48: .4byte gUnknown_203B128
-_08131C4C: .4byte gUnknown_203B118
- thumb_func_end sub_8131C10
-
- thumb_func_start sub_8131C50
-sub_8131C50: @ 8131C50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08131D28 @ =gUnknown_20398A4
- mov r8, r0
- movs r6, 0
- ldr r0, _08131D2C @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- cmp r6, r0
- bcs _08131CA0
- ldr r7, _08131D30 @ =gUnknown_203B128
-_08131C68:
- lsls r5, r6, 3
- subs r4, r5, r6
- lsls r4, 2
- adds r4, r6
- ldr r0, [r7]
- adds r0, r4
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r6, 2
- adds r1, r2
- ldrh r1, [r1]
- bl sub_8131D48
- ldr r0, _08131D34 @ =gUnknown_203B124
- ldr r0, [r0]
- adds r5, r0
- ldr r0, [r7]
- adds r0, r4
- str r0, [r5]
- str r6, [r5, 0x4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08131D2C @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- cmp r6, r0
- bcc _08131C68
-_08131CA0:
- ldr r0, _08131D34 @ =gUnknown_203B124
- ldr r3, [r0]
- lsls r0, r6, 3
- adds r0, r3
- ldr r1, _08131D38 @ =gUnknown_84166DB
- str r1, [r0]
- movs r1, 0x2
- negs r1, r1
- str r1, [r0, 0x4]
- ldr r2, _08131D3C @ =gUnknown_3005E70
- str r3, [r2]
- ldr r0, _08131D2C @ =gUnknown_203B118
- ldr r3, [r0]
- ldrb r0, [r3, 0x6]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2, 0xC]
- strb r1, [r2, 0x10]
- strb r1, [r2, 0x11]
- movs r0, 0x8
- strb r0, [r2, 0x12]
- strb r1, [r2, 0x13]
- ldrb r0, [r2, 0x16]
- movs r4, 0x8
- negs r4, r4
- ands r4, r0
- movs r0, 0x39
- negs r0, r0
- ands r4, r0
- movs r0, 0x10
- orrs r4, r0
- strb r4, [r2, 0x16]
- ldrb r1, [r2, 0x14]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r5, 0x2
- orrs r0, r5
- strb r0, [r2, 0x14]
- ldrb r1, [r3, 0x5]
- strh r1, [r2, 0xE]
- ldrb r1, [r2, 0x17]
- movs r3, 0x40
- negs r3, r3
- ands r3, r1
- orrs r3, r5
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x14]
- movs r0, 0x30
- strb r0, [r2, 0x15]
- ldr r0, _08131D40 @ =sub_8131E18
- str r0, [r2, 0x4]
- ldr r0, _08131D44 @ =sub_8131E68
- str r0, [r2, 0x8]
- movs r0, 0x3F
- ands r3, r0
- strb r3, [r2, 0x17]
- ands r4, r0
- strb r4, [r2, 0x16]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131D28: .4byte gUnknown_20398A4
-_08131D2C: .4byte gUnknown_203B118
-_08131D30: .4byte gUnknown_203B128
-_08131D34: .4byte gUnknown_203B124
-_08131D38: .4byte gUnknown_84166DB
-_08131D3C: .4byte gUnknown_3005E70
-_08131D40: .4byte sub_8131E18
-_08131D44: .4byte sub_8131E68
- thumb_func_end sub_8131C50
-
- thumb_func_start sub_8131D48
-sub_8131D48: @ 8131D48
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r5, _08131D8C @ =gStringVar4
- ldr r1, _08131D90 @ =gUnknown_84166FF
- adds r0, r5, 0
- bl StringCopy
- movs r0, 0xA9
- lsls r0, 1
- cmp r6, r0
- bls _08131DA4
- ldr r1, _08131D94 @ =gUnknown_8463178
- adds r0, r5, 0
- bl StringAppend
- ldr r1, _08131D98 @ =gUnknown_8416226
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _08131D9C @ =gStringVar1
- ldr r0, _08131DA0 @ =0xfffffeae
- adds r1, r6, r0
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
- b _08131DC4
- .align 2, 0
-_08131D8C: .4byte gStringVar4
-_08131D90: .4byte gUnknown_84166FF
-_08131D94: .4byte gUnknown_8463178
-_08131D98: .4byte gUnknown_8416226
-_08131D9C: .4byte gStringVar1
-_08131DA0: .4byte 0xfffffeae
-_08131DA4:
- ldr r1, _08131DFC @ =gUnknown_8416226
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _08131E00 @ =gStringVar1
- ldr r0, _08131E04 @ =0xfffffee0
- adds r1, r6, r0
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
-_08131DC4:
- ldr r4, _08131E08 @ =gStringVar4
- ldr r1, _08131E0C @ =gUnknown_846317C
- adds r0, r4, 0
- bl StringAppend
- ldr r1, _08131E10 @ =gUnknown_8416703
- adds r0, r4, 0
- bl StringAppend
- adds r0, r6, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _08131E14 @ =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringAppend
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131DFC: .4byte gUnknown_8416226
-_08131E00: .4byte gStringVar1
-_08131E04: .4byte 0xfffffee0
-_08131E08: .4byte gStringVar4
-_08131E0C: .4byte gUnknown_846317C
-_08131E10: .4byte gUnknown_8416703
-_08131E14: .4byte gMoveNames
- thumb_func_end sub_8131D48
-
- thumb_func_start sub_8131E18
-sub_8131E18: @ 8131E18
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- bne _08131E2C
- movs r5, 0
- b _08131E3A
-_08131E2C:
- lsls r1, r4, 16
- lsrs r1, 16
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r5, r0, 16
-_08131E3A:
- cmp r6, 0x1
- beq _08131E50
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08131E64 @ =gUnknown_203B118
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- adds r1, r5, 0
- bl sub_81337E4
-_08131E50:
- adds r0, r4, 0
- bl sub_8131F0C
- adds r0, r5, 0
- bl sub_8133444
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08131E64: .4byte gUnknown_203B118
- thumb_func_end sub_8131E18
-
- thumb_func_start sub_8131E68
-sub_8131E68: @ 8131E68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r7, r9
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- mov r4, r8
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08131EFE
- lsls r0, r1, 16
- lsrs r6, r0, 16
- movs r0, 0x4
- adds r1, r6, 0
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_unique
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08131EF4
- ldr r4, _08131EE8 @ =gStringVar1
- movs r0, 0x4
- adds r1, r6, 0
- bl sub_809A7B4
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08131EEC @ =gStringVar4
- ldr r1, _08131EF0 @ =gUnknown_84162B9
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r0, r8
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x1
- str r0, [sp, 0x10]
- mov r0, r9
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x7E
- bl sub_81332EC
- b _08131EFE
- .align 2, 0
-_08131EE8: .4byte gStringVar1
-_08131EEC: .4byte gStringVar4
-_08131EF0: .4byte gUnknown_84162B9
-_08131EF4:
- adds r0, r7, 0
- movs r1, 0x8
- adds r2, r4, 0
- bl sub_81335B0
-_08131EFE:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8131E68
-
- thumb_func_start sub_8131F0C
-sub_8131F0C: @ 8131F0C
- push {r4,lr}
- sub sp, 0x14
- adds r1, r0, 0
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08131F30
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetDescription
- adds r4, r0, 0
- b _08131F32
-_08131F30:
- ldr r4, _08131F60 @ =gUnknown_84166E1
-_08131F32:
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0x2
- bl sub_81332EC
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08131F60: .4byte gUnknown_84166E1
- thumb_func_end sub_8131F0C
-
- thumb_func_start sub_8131F64
-sub_8131F64: @ 8131F64
- push {lr}
- sub sp, 0x8
- movs r1, 0x8
- str r1, [sp]
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x1E
- bl sub_80F6B08
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_8131F64
-
- thumb_func_start sub_8131F90
-sub_8131F90: @ 8131F90
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl ListMenuGetYCoordForPrintingArrowCursor
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_8131FB0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8131F90
-
- thumb_func_start sub_8131FB0
-sub_8131FB0: @ 8131FB0
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- bne _08131FF4
- movs r0, 0x2
- movs r1, 0
- bl GetFontAttribute
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- adds r3, r5, 0
- bl FillWindowPixelRect
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- b _0813200A
-_08131FF4:
- ldr r2, _08132014 @ =gFameCheckerText_ListMenuCursor
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r3, 0
- bl sub_81332EC
-_0813200A:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132014: .4byte gFameCheckerText_ListMenuCursor
- thumb_func_end sub_8131FB0
-
- thumb_func_start sub_8132018
-sub_8132018: @ 8132018
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _0813204C @ =gUnknown_203B118
- ldr r1, [r4]
- ldrb r0, [r1, 0x6]
- ldrb r1, [r1, 0x5]
- subs r0, r1
- adds r0, 0x1
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, _08132050 @ =gUnknown_203B116
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xA0
- movs r2, 0x8
- movs r3, 0x58
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813204C: .4byte gUnknown_203B118
-_08132050: .4byte gUnknown_203B116
- thumb_func_end sub_8132018
-
- thumb_func_start sub_8132054
-sub_8132054: @ 8132054
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08132088 @ =gUnknown_203B118
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r1, 0xA
- str r1, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0x98
- movs r2, 0x48
- movs r3, 0x68
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132088: .4byte gUnknown_203B118
- thumb_func_end sub_8132054
-
- thumb_func_start sub_813208C
-sub_813208C: @ 813208C
- push {r4,lr}
- ldr r4, _081320A8 @ =gUnknown_203B118
- ldr r1, [r4]
- ldrb r0, [r1, 0x8]
- cmp r0, 0xFF
- beq _081320A2
- bl RemoveScrollIndicatorArrowPair
- ldr r1, [r4]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
-_081320A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081320A8: .4byte gUnknown_203B118
- thumb_func_end sub_813208C
-
- thumb_func_start sub_81320AC
-sub_81320AC: @ 81320AC
- ldr r1, _081320B8 @ =gUnknown_203B10C
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- bx lr
- .align 2, 0
-_081320B8: .4byte gUnknown_203B10C
- thumb_func_end sub_81320AC
-
- thumb_func_start sub_81320BC
-sub_81320BC: @ 81320BC
- push {r4,lr}
- ldr r4, _08132118 @ =gUnknown_20398A4
- ldr r0, [r4]
- ldrb r1, [r4, 0x4]
- bl sub_809A584
- ldr r3, _0813211C @ =gUnknown_203B118
- ldr r1, [r3]
- movs r0, 0
- strb r0, [r1, 0x6]
- movs r2, 0
- ldrb r0, [r4, 0x4]
- cmp r2, r0
- bcs _08132100
- ldr r0, [r4]
- ldrh r0, [r0]
- cmp r0, 0
- beq _08132100
-_081320E0:
- ldr r0, [r3]
- ldrb r1, [r0, 0x6]
- adds r1, 0x1
- strb r1, [r0, 0x6]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r4, 0x4]
- cmp r2, r0
- bcs _08132100
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _081320E0
-_08132100:
- ldr r0, _0813211C @ =gUnknown_203B118
- ldr r1, [r0]
- ldrb r0, [r1, 0x6]
- adds r0, 0x1
- cmp r0, 0x5
- ble _0813210E
- movs r0, 0x5
-_0813210E:
- strb r0, [r1, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132118: .4byte gUnknown_20398A4
-_0813211C: .4byte gUnknown_203B118
- thumb_func_end sub_81320BC
-
- thumb_func_start sub_8132120
-sub_8132120: @ 8132120
- push {r4,r5,lr}
- ldr r0, _08132160 @ =gUnknown_203B10C
- ldrh r1, [r0, 0xA]
- adds r4, r0, 0
- ldr r5, _08132164 @ =gUnknown_203B118
- cmp r1, 0
- beq _08132144
- ldrh r0, [r4, 0xA]
- ldr r1, [r5]
- ldrb r3, [r1, 0x5]
- adds r0, r3
- ldrb r2, [r1, 0x6]
- adds r1, r2, 0x1
- cmp r0, r1
- ble _08132144
- subs r0, r3, 0x1
- subs r0, r2, r0
- strh r0, [r4, 0xA]
-_08132144:
- adds r3, r4, 0
- ldrh r0, [r3, 0xA]
- ldrh r1, [r3, 0x8]
- adds r0, r1
- ldr r1, [r5]
- ldrb r1, [r1, 0x6]
- adds r2, r1, 0x1
- cmp r0, r2
- blt _0813216A
- cmp r2, 0x1
- bgt _08132168
- movs r0, 0
- strh r0, [r3, 0x8]
- b _0813216A
- .align 2, 0
-_08132160: .4byte gUnknown_203B10C
-_08132164: .4byte gUnknown_203B118
-_08132168:
- strh r1, [r4, 0x8]
-_0813216A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8132120
-
- thumb_func_start sub_8132170
-sub_8132170: @ 8132170
- push {r4-r6,lr}
- ldr r0, _081321CC @ =gUnknown_203B10C
- ldrh r1, [r0, 0x8]
- adds r6, r0, 0
- cmp r1, 0x3
- bls _081321C4
- movs r4, 0
- ldrh r0, [r6, 0x8]
- subs r0, 0x3
- cmp r4, r0
- bgt _081321C4
- ldrh r1, [r6, 0xA]
- ldr r5, _081321D0 @ =gUnknown_203B118
- ldr r2, [r5]
- ldrb r0, [r2, 0x5]
- adds r1, r0
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- cmp r1, r0
- beq _081321C4
- adds r3, r6, 0
-_0813219A:
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r3, 0x8]
- subs r0, 0x3
- cmp r4, r0
- bgt _081321C4
- ldrh r1, [r6, 0xA]
- ldr r2, [r5]
- ldrb r0, [r2, 0x5]
- adds r1, r0
- ldrb r0, [r2, 0x6]
- adds r0, 0x1
- cmp r1, r0
- bne _0813219A
-_081321C4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081321CC: .4byte gUnknown_203B10C
-_081321D0: .4byte gUnknown_203B118
- thumb_func_end sub_8132170
-
- thumb_func_start sub_81321D4
-sub_81321D4: @ 81321D4
- push {lr}
- ldr r0, _0813221C @ =gUnknown_203B118
- ldr r0, [r0]
- cmp r0, 0
- beq _081321E2
- bl Free
-_081321E2:
- ldr r0, _08132220 @ =gUnknown_203B120
- ldr r0, [r0]
- cmp r0, 0
- beq _081321EE
- bl Free
-_081321EE:
- ldr r0, _08132224 @ =gUnknown_203B124
- ldr r0, [r0]
- cmp r0, 0
- beq _081321FA
- bl Free
-_081321FA:
- ldr r0, _08132228 @ =gUnknown_203B128
- ldr r0, [r0]
- cmp r0, 0
- beq _08132206
- bl Free
-_08132206:
- ldr r0, _0813222C @ =gUnknown_203B12C
- ldr r0, [r0]
- cmp r0, 0
- beq _08132212
- bl Free
-_08132212:
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- .align 2, 0
-_0813221C: .4byte gUnknown_203B118
-_08132220: .4byte gUnknown_203B120
-_08132224: .4byte gUnknown_203B124
-_08132228: .4byte gUnknown_203B128
-_0813222C: .4byte gUnknown_203B12C
- thumb_func_end sub_81321D4
-
- thumb_func_start sub_8132230
-sub_8132230: @ 8132230
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08132264 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08132268 @ =sub_813226C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132264: .4byte gTasks
-_08132268: .4byte sub_813226C
- thumb_func_end sub_8132230
-
- thumb_func_start sub_813226C
-sub_813226C: @ 813226C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081322A4 @ =gTasks+0x8
- adds r2, r0, r1
- ldr r0, _081322A8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081322CC
- ldrb r0, [r2]
- ldr r4, _081322AC @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- ldr r0, _081322B0 @ =gUnknown_203B118
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _081322B4
- bl SetMainCallback2
- b _081322BE
- .align 2, 0
-_081322A4: .4byte gTasks+0x8
-_081322A8: .4byte gPaletteFade
-_081322AC: .4byte gUnknown_203B116
-_081322B0: .4byte gUnknown_203B118
-_081322B4:
- adds r0, r4, 0
- subs r0, 0xA
- ldr r0, [r0]
- bl SetMainCallback2
-_081322BE:
- bl sub_813208C
- bl sub_81321D4
- adds r0, r5, 0
- bl DestroyTask
-_081322CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813226C
-
- thumb_func_start sub_81322D4
-sub_81322D4: @ 81322D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08132340 @ =gTasks+0x8
- adds r6, r0, r1
- ldr r0, _08132344 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0
- bne _081323C8
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081323C8
- ldrb r0, [r6]
- bl ListMenuHandleInput
- adds r5, r0, 0
- ldrb r0, [r6]
- ldr r4, _08132348 @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl get_coro_args_x18_x1A
- ldr r0, _0813234C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08132354
- adds r0, r4, 0
- subs r0, 0xA
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _08132354
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08132350 @ =gSpecialVar_ItemId
- mov r1, r8
- strh r1, [r0]
- b _08132370
- .align 2, 0
-_08132340: .4byte gTasks+0x8
-_08132344: .4byte gPaletteFade
-_08132348: .4byte gUnknown_203B116
-_0813234C: .4byte gMain
-_08132350: .4byte gSpecialVar_ItemId
-_08132354:
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _08132364
- adds r0, 0x1
- cmp r5, r0
- bne _0813237C
- b _081323C8
-_08132364:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08132378 @ =gSpecialVar_ItemId
- movs r0, 0
- strh r0, [r1]
-_08132370:
- adds r0, r7, 0
- bl sub_8132230
- b _081323C8
- .align 2, 0
-_08132378: .4byte gSpecialVar_ItemId
-_0813237C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_8131F64
- bl sub_813208C
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8131F90
- strh r5, [r6, 0x2]
- lsls r4, r5, 16
- lsrs r4, 16
- movs r0, 0x4
- adds r1, r4, 0
- bl sub_809A7B4
- strh r0, [r6, 0x4]
- movs r0, 0x4
- adds r1, r4, 0
- bl sub_809A798
- ldr r1, _081323D4 @ =gSpecialVar_ItemId
- strh r0, [r1]
- ldr r0, _081323D8 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r2, _081323DC @ =gUnknown_8463140
- ldr r0, _081323E0 @ =gUnknown_203B10C
- ldrb r0, [r0, 0x4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
-_081323C8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081323D4: .4byte gSpecialVar_ItemId
-_081323D8: .4byte gTasks
-_081323DC: .4byte gUnknown_8463140
-_081323E0: .4byte gUnknown_203B10C
- thumb_func_end sub_81322D4
-
- thumb_func_start sub_81323E4
-sub_81323E4: @ 81323E4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_8131F64
- bl sub_8132018
- ldr r1, _0813240C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08132410 @ =sub_81322D4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813240C: .4byte gTasks
-_08132410: .4byte sub_81322D4
- thumb_func_end sub_81323E4
-
- thumb_func_start sub_8132414
-sub_8132414: @ 8132414
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- bl sub_8133368
- bl sub_80BF708
- lsls r0, 24
- cmp r0, 0
- bne _08132454
- bl InUnionRoom
- cmp r0, 0x1
- beq _08132454
- ldr r4, _0813244C @ =gUnknown_203B118
- ldr r0, [r4]
- adds r0, 0x7
- movs r1, 0
- bl sub_8133630
- ldr r1, [r4]
- ldr r0, _08132450 @ =gUnknown_8463168
- str r0, [r1, 0xC]
- movs r0, 0x3
- b _08132468
- .align 2, 0
-_0813244C: .4byte gUnknown_203B118
-_08132450: .4byte gUnknown_8463168
-_08132454:
- ldr r4, _0813254C @ =gUnknown_203B118
- ldr r0, [r4]
- adds r0, 0x7
- movs r1, 0x1
- bl sub_8133630
- ldr r1, [r4]
- ldr r0, _08132550 @ =gUnknown_846316B
- str r0, [r1, 0xC]
- movs r0, 0x2
-_08132468:
- strb r0, [r1, 0x10]
- movs r0, 0x2
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _0813254C @ =gUnknown_203B118
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- movs r5, 0
- str r5, [sp]
- str r0, [sp, 0x4]
- ldrb r0, [r1, 0x10]
- str r0, [sp, 0x8]
- ldr r0, _08132554 @ =gUnknown_8463150
- str r0, [sp, 0xC]
- ldr r0, [r1, 0xC]
- str r0, [sp, 0x10]
- adds r0, r2, 0
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0x2
- bl AddItemMenuActionTextPrinters
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- str r0, [sp]
- ldrb r0, [r1, 0x10]
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r2, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl sub_810F7D8
- movs r0, 0x80
- lsls r0, 1
- bl Alloc
- adds r4, r0, 0
- ldr r6, _08132558 @ =gSpecialVar_ItemId
- ldrh r1, [r6]
- bl sub_8131D48
- ldr r1, _0813255C @ =gUnknown_8416301
- adds r0, r4, 0
- bl StringAppend
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x2
- movs r1, 0x2
- adds r2, r4, 0
- movs r3, 0
- bl sub_81332EC
- adds r0, r4, 0
- bl Free
- ldrh r0, [r6]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- beq _08132528
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x2
- bl sub_81335B0
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
-_08132528:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, _08132560 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _08132564 @ =sub_8132568
- str r0, [r1]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813254C: .4byte gUnknown_203B118
-_08132550: .4byte gUnknown_846316B
-_08132554: .4byte gUnknown_8463150
-_08132558: .4byte gSpecialVar_ItemId
-_0813255C: .4byte gUnknown_8416301
-_08132560: .4byte gTasks
-_08132564: .4byte sub_8132568
- thumb_func_end sub_8132414
-
- thumb_func_start sub_8132568
-sub_8132568: @ 8132568
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl sub_80BF72C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081325E0
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081325E0
- adds r0, 0x1
- cmp r4, r0
- bne _081325C0
- movs r0, 0x5
- bl PlaySE
- ldr r2, _081325B8 @ =gUnknown_8463150
- ldr r0, _081325BC @ =gUnknown_203B118
- ldr r1, [r0]
- ldrb r0, [r1, 0x10]
- ldr r1, [r1, 0xC]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _081325E0
- .align 2, 0
-_081325B8: .4byte gUnknown_8463150
-_081325BC: .4byte gUnknown_203B118
-_081325C0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _081325E8 @ =gUnknown_8463150
- ldr r0, _081325EC @ =gUnknown_203B118
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
-_081325E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081325E8: .4byte gUnknown_8463150
-_081325EC: .4byte gUnknown_203B118
- thumb_func_end sub_8132568
-
- thumb_func_start sub_81325F0
-sub_81325F0: @ 81325F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _08132634 @ =gUnknown_203B118
- ldr r0, [r5]
- adds r0, 0x7
- bl sub_8133664
- movs r0, 0x2
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _08132638
- adds r0, r4, 0
- bl sub_81326F8
- b _0813264A
- .align 2, 0
-_08132634: .4byte gUnknown_203B118
-_08132638:
- ldr r1, _08132650 @ =gUnknown_3005E98
- ldr r0, _08132654 @ =sub_8125B40
- str r0, [r1]
- ldr r1, [r5]
- ldr r0, _08132658 @ =sub_8124C8C
- str r0, [r1]
- adds r0, r4, 0
- bl sub_8132230
-_0813264A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132650: .4byte gUnknown_3005E98
-_08132654: .4byte sub_8125B40
-_08132658: .4byte sub_8124C8C
- thumb_func_end sub_81325F0
-
- thumb_func_start sub_813265C
-sub_813265C: @ 813265C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081326D0 @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0, 0x2]
- movs r0, 0x4
- bl sub_809A798
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r6, _081326D4 @ =gUnknown_203B118
- ldr r0, [r6]
- adds r0, 0x7
- bl sub_8133664
- movs r0, 0x2
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r4, 0
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081326EC
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _081326D8
- adds r0, r5, 0
- bl sub_81326F8
- b _081326F2
- .align 2, 0
-_081326D0: .4byte gTasks+0x8
-_081326D4: .4byte gUnknown_203B118
-_081326D8:
- ldr r1, [r6]
- ldr r0, _081326E8 @ =sub_8126EDC
- str r0, [r1]
- adds r0, r5, 0
- bl sub_8132230
- b _081326F2
- .align 2, 0
-_081326E8: .4byte sub_8126EDC
-_081326EC:
- adds r0, r5, 0
- bl sub_8132714
-_081326F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813265C
-
- thumb_func_start sub_81326F8
-sub_81326F8: @ 81326F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813270C @ =gUnknown_841632A
- ldr r3, _08132710 @ =sub_8132758
- movs r1, 0x2
- bl sub_813337C
- pop {r0}
- bx r0
- .align 2, 0
-_0813270C: .4byte gUnknown_841632A
-_08132710: .4byte sub_8132758
- thumb_func_end sub_81326F8
-
- thumb_func_start sub_8132714
-sub_8132714: @ 8132714
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08132744 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, _08132748 @ =gStringVar1
- bl CopyItemName
- ldr r5, _0813274C @ =gStringVar4
- ldr r1, _08132750 @ =gUnknown_841635E
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r3, _08132754 @ =sub_8132758
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl sub_813337C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132744: .4byte gSpecialVar_ItemId
-_08132748: .4byte gStringVar1
-_0813274C: .4byte gStringVar4
-_08132750: .4byte gUnknown_841635E
-_08132754: .4byte sub_8132758
- thumb_func_end sub_8132714
-
- thumb_func_start sub_8132758
-sub_8132758: @ 8132758
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813277C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132776
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8132780
-_08132776:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813277C: .4byte gMain
- thumb_func_end sub_8132758
-
- thumb_func_start sub_8132780
-sub_8132780: @ 8132780
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, _081327F0 @ =gTasks+0x8
- adds r5, r0
- ldrb r0, [r5]
- ldr r4, _081327F4 @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- ldr r0, _081327F8 @ =gUnknown_3005E70
- subs r4, 0xA
- ldrh r1, [r4, 0xA]
- ldrh r2, [r4, 0x8]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r1, 0x1
- bl sub_8131F90
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x6
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl sub_81323E4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081327F0: .4byte gTasks+0x8
-_081327F4: .4byte gUnknown_203B116
-_081327F8: .4byte gUnknown_3005E70
- thumb_func_end sub_8132780
-
- thumb_func_start sub_81327FC
-sub_81327FC: @ 81327FC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132860 @ =gTasks+0x8
- adds r4, r0
- ldr r0, _08132864 @ =gUnknown_203B118
- ldr r0, [r0]
- adds r0, 0x7
- bl sub_8133664
- movs r0, 0x2
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8131F90
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_81323E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132860: .4byte gTasks+0x8
-_08132864: .4byte gUnknown_203B118
- thumb_func_end sub_81327FC
-
- thumb_func_start sub_8132868
-sub_8132868: @ 8132868
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _081328A0 @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081328AC
- ldr r0, _081328A4 @ =gUnknown_203B118
- ldr r1, [r0]
- ldr r0, _081328A8 @ =c2_8123744
- str r0, [r1]
- adds r0, r4, 0
- bl sub_8132230
- b _081328B2
- .align 2, 0
-_081328A0: .4byte gTasks+0x8
-_081328A4: .4byte gUnknown_203B118
-_081328A8: .4byte c2_8123744
-_081328AC:
- adds r0, r4, 0
- bl sub_8132714
-_081328B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8132868
-
- thumb_func_start sub_81328B8
-sub_81328B8: @ 81328B8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _081328F0 @ =gTasks+0x8
- adds r0, r1
- ldrh r1, [r0, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081328FC
- ldr r0, _081328F4 @ =gUnknown_203B118
- ldr r1, [r0]
- ldr r0, _081328F8 @ =sub_808CE60
- str r0, [r1]
- adds r0, r4, 0
- bl sub_8132230
- b _08132902
- .align 2, 0
-_081328F0: .4byte gTasks+0x8
-_081328F4: .4byte gUnknown_203B118
-_081328F8: .4byte sub_808CE60
-_081328FC:
- adds r0, r4, 0
- bl sub_8132714
-_08132902:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81328B8
-
- thumb_func_start sub_8132908
-sub_8132908: @ 8132908
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08132950 @ =gTasks+0x8
- adds r4, r0, r1
- ldr r6, _08132954 @ =gSpecialVar_ItemId
- ldrh r0, [r6]
- bl itemid_get_market_price
- lsls r0, 16
- cmp r0, 0
- bne _08132968
- ldrh r0, [r6]
- ldr r1, _08132958 @ =gStringVar1
- bl CopyItemName
- ldr r4, _0813295C @ =gStringVar4
- ldr r1, _08132960 @ =gUnknown_84168F1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08132964 @ =sub_8132780
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_813337C
- b _081329AE
- .align 2, 0
-_08132950: .4byte gTasks+0x8
-_08132954: .4byte gSpecialVar_ItemId
-_08132958: .4byte gStringVar1
-_0813295C: .4byte gStringVar4
-_08132960: .4byte gUnknown_84168F1
-_08132964: .4byte sub_8132780
-_08132968:
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08132980
- bl sub_81335E0
- adds r0, r5, 0
- bl sub_81329C4
- b _081329AE
-_08132980:
- cmp r0, 0x63
- ble _08132988
- movs r0, 0x63
- strh r0, [r4, 0x4]
-_08132988:
- ldrh r0, [r6]
- ldr r1, _081329B4 @ =gStringVar1
- bl CopyItemName
- ldr r4, _081329B8 @ =gStringVar4
- ldr r1, _081329BC @ =gUnknown_8416911
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _081329C0 @ =sub_8132AAC
- adds r0, r7, 0
- adds r2, r4, 0
- bl sub_813337C
-_081329AE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081329B4: .4byte gStringVar1
-_081329B8: .4byte gStringVar4
-_081329BC: .4byte gUnknown_8416911
-_081329C0: .4byte sub_8132AAC
- thumb_func_end sub_8132908
-
- thumb_func_start sub_81329C4
-sub_81329C4: @ 81329C4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132A20 @ =gTasks+0x8
- adds r4, r0
- ldr r6, _08132A24 @ =gStringVar3
- ldrh r1, [r4, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _08132A28 @ =gStringVar4
- ldr r1, _08132A2C @ =gUnknown_8416936
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80BF8E4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08132A30 @ =sub_8132A34
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_813337C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132A20: .4byte gTasks+0x8
-_08132A24: .4byte gStringVar3
-_08132A28: .4byte gStringVar4
-_08132A2C: .4byte gUnknown_8416936
-_08132A30: .4byte sub_8132A34
- thumb_func_end sub_81329C4
-
- thumb_func_start sub_8132A34
-sub_8132A34: @ 8132A34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08132A44 @ =gUnknown_8463170
- bl sub_8133604
- pop {r0}
- bx r0
- .align 2, 0
-_08132A44: .4byte gUnknown_8463170
- thumb_func_end sub_8132A34
-
- thumb_func_start sub_8132A48
-sub_8132A48: @ 8132A48
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132AA8 @ =gTasks+0x8
- adds r4, r0
- movs r0, 0x8
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8131F90
- adds r0, r5, 0
- bl sub_81323E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132AA8: .4byte gTasks+0x8
- thumb_func_end sub_8132A48
-
- thumb_func_start sub_8132AAC
-sub_8132AAC: @ 8132AAC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _08132B48 @ =gTasks+0x8
- adds r0, r4, r6
- mov r8, r0
- movs r0, 0x7
- bl sub_8133354
- ldr r0, _08132B4C @ =gStringVar1
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _08132B50 @ =gStringVar4
- ldr r1, _08132B54 @ =gUnknown_84162B9
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r0, 0x7
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl sub_81332EC
- mov r2, r8
- ldrh r1, [r2, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r3, r8
- movs r2, 0x10
- ldrsh r1, [r3, r2]
- muls r1, r0
- movs r0, 0x1
- bl sub_8132B5C
- bl sub_81335E0
- bl sub_8132054
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- subs r6, 0x8
- adds r4, r6
- ldr r0, _08132B58 @ =sub_8132BC8
- str r0, [r4]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132B48: .4byte gTasks+0x8
-_08132B4C: .4byte gStringVar1
-_08132B50: .4byte gStringVar4
-_08132B54: .4byte gUnknown_84162B9
-_08132B58: .4byte sub_8132BC8
- thumb_func_end sub_8132AAC
-
- thumb_func_start sub_8132B5C
-sub_8132B5C: @ 8132B5C
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x7
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, _08132BBC @ =gStringVar1
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _08132BC0 @ =gStringVar4
- ldr r1, _08132BC4 @ =gUnknown_84162B9
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0xA
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x7
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl sub_81332EC
- str r4, [sp]
- movs r0, 0x7
- movs r1, 0x38
- movs r2, 0xA
- adds r3, r6, 0
- bl PrintMoneyAmount
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132BBC: .4byte gStringVar1
-_08132BC0: .4byte gStringVar4
-_08132BC4: .4byte gUnknown_84162B9
- thumb_func_end sub_8132B5C
-
- thumb_func_start sub_8132BC8
-sub_8132BC8: @ 8132BC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08132C14 @ =gTasks+0x8
- adds r5, r0, r1
- adds r0, r5, 0
- adds r0, 0x10
- ldrh r1, [r5, 0x4]
- bl sub_80BF848
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08132C18
- movs r0, 0x10
- ldrsh r4, [r5, r0]
- ldrh r1, [r5, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- muls r1, r0
- adds r0, r4, 0
- bl sub_8132B5C
- b _08132CA6
- .align 2, 0
-_08132C14: .4byte gTasks+0x8
-_08132C18:
- ldr r0, _08132C4C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132C50
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x7
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_813208C
- adds r0, r4, 0
- bl sub_81329C4
- b _08132CA6
- .align 2, 0
-_08132C4C: .4byte gMain
-_08132C50:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08132CA6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x7
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x8
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_813208C
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8131F90
- adds r0, r6, 0
- bl sub_81323E4
-_08132CA6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8132BC8
-
- thumb_func_start sub_8132CAC
-sub_8132CAC: @ 8132CAC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _08132D18 @ =gTasks+0x8
- adds r4, r0
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, _08132D1C @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, _08132D20 @ =gStringVar1
- bl CopyItemName
- ldr r6, _08132D24 @ =gStringVar3
- ldrh r1, [r4, 0x2]
- movs r0, 0x4
- bl sub_809A798
- lsls r0, 16
- lsrs r0, 16
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _08132D28 @ =gStringVar4
- ldr r1, _08132D2C @ =gUnknown_8416959
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, _08132D30 @ =sub_8132D34
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_813337C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132D18: .4byte gTasks+0x8
-_08132D1C: .4byte gSpecialVar_ItemId
-_08132D20: .4byte gStringVar1
-_08132D24: .4byte gStringVar3
-_08132D28: .4byte gStringVar4
-_08132D2C: .4byte gUnknown_8416959
-_08132D30: .4byte sub_8132D34
- thumb_func_end sub_8132CAC
-
- thumb_func_start sub_8132D34
-sub_8132D34: @ 8132D34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- ldr r0, _08132DF4 @ =gTasks+0x8
- mov r9, r0
- adds r1, r6, 0
- add r1, r9
- mov r8, r1
- movs r0, 0xF8
- bl PlaySE
- ldr r5, _08132DF8 @ =gSpecialVar_ItemId
- ldrh r0, [r5]
- mov r2, r8
- ldrh r1, [r2, 0x10]
- bl RemoveBagItem
- ldr r7, _08132DFC @ =gSaveBlock1Ptr
- ldr r4, [r7]
- movs r3, 0xA4
- lsls r3, 2
- mov r10, r3
- add r4, r10
- ldrh r0, [r5]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r2, r8
- movs r3, 0x10
- ldrsh r1, [r2, r3]
- muls r1, r0
- adds r0, r4, 0
- bl AddMoney
- ldrh r0, [r5]
- mov r2, r8
- ldrh r1, [r2, 0x10]
- movs r2, 0x2
- bl sub_809C09C
- mov r3, r8
- ldrb r0, [r3]
- ldr r4, _08132E00 @ =gUnknown_203B116
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl sub_810713C
- bl sub_81320BC
- bl sub_8132120
- bl sub_8131C50
- ldr r0, _08132E04 @ =gUnknown_3005E70
- subs r4, 0xA
- ldrh r1, [r4, 0xA]
- ldrh r2, [r4, 0x8]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1]
- movs r1, 0x2
- bl sub_8131F90
- ldr r0, [r7]
- add r0, r10
- bl GetMoney
- adds r1, r0, 0
- movs r0, 0x8
- movs r2, 0
- bl PrintMoneyAmountInMoneyBox
- movs r2, 0x8
- negs r2, r2
- add r9, r2
- add r6, r9
- ldr r0, _08132E08 @ =sub_8132E0C
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08132DF4: .4byte gTasks+0x8
-_08132DF8: .4byte gSpecialVar_ItemId
-_08132DFC: .4byte gSaveBlock1Ptr
-_08132E00: .4byte gUnknown_203B116
-_08132E04: .4byte gUnknown_3005E70
-_08132E08: .4byte sub_8132E0C
- thumb_func_end sub_8132D34
-
- thumb_func_start sub_8132E0C
-sub_8132E0C: @ 8132E0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08132E60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08132E26
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08132E5A
-_08132E26:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x8
- movs r1, 0
- bl sub_810F4D8
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- adds r0, r4, 0
- bl sub_8132780
-_08132E5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132E60: .4byte gMain
- thumb_func_end sub_8132E0C
-
- thumb_func_start sub_8132E64
-sub_8132E64: @ 8132E64
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, _08132EFC @ =gUnknown_203B11C
- movs r0, 0xB2
- lsls r0, 1
- bl AllocZeroed
- str r0, [r4]
- ldr r5, _08132F00 @ =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r2, _08132F04 @ =0x00000464
- mov r8, r2
- add r1, r8
- movs r2, 0xE8
- bl memcpy
- ldr r0, [r4]
- adds r0, 0xE8
- ldr r1, [r5]
- movs r6, 0xEE
- lsls r6, 2
- adds r1, r6
- movs r2, 0x78
- bl memcpy
- ldr r3, [r4]
- ldr r2, _08132F08 @ =gUnknown_203B10C
- ldrh r1, [r2, 0x8]
- movs r4, 0xB0
- lsls r4, 1
- adds r0, r3, r4
- strh r1, [r0]
- ldrh r0, [r2, 0xA]
- movs r2, 0xB1
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- ldr r0, [r5]
- add r0, r8
- movs r1, 0x3A
- bl ClearItemSlots
- ldr r0, [r5]
- adds r0, r6
- movs r1, 0x1E
- bl ClearItemSlots
- bl sub_81320AC
- ldr r0, _08132F0C @ =0x00000121
- movs r1, 0x1
- bl AddBagItem
- ldr r0, _08132F10 @ =0x00000123
- movs r1, 0x1
- bl AddBagItem
- ldr r0, _08132F14 @ =0x00000129
- movs r1, 0x1
- bl AddBagItem
- ldr r0, _08132F18 @ =0x00000143
- movs r1, 0x1
- bl AddBagItem
- ldr r1, _08132F1C @ =sub_815ABFC
- movs r0, 0x4
- movs r2, 0
- bl sub_81317F8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132EFC: .4byte gUnknown_203B11C
-_08132F00: .4byte gSaveBlock1Ptr
-_08132F04: .4byte 0x00000464
-_08132F08: .4byte gUnknown_203B10C
-_08132F0C: .4byte 0x00000121
-_08132F10: .4byte 0x00000123
-_08132F14: .4byte 0x00000129
-_08132F18: .4byte 0x00000143
-_08132F1C: .4byte sub_815ABFC
- thumb_func_end sub_8132E64
-
- thumb_func_start sub_8132F20
-sub_8132F20: @ 8132F20
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r3, r1, 3
- ldr r4, _08132F54 @ =gTasks+0x8
- adds r2, r3, r4
- ldr r0, _08132F58 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08132F4E
- strh r0, [r2, 0x10]
- strh r0, [r2, 0x12]
- adds r0, r4, 0
- subs r0, 0x8
- adds r0, r3, r0
- ldr r1, _08132F5C @ =sub_8132F60
- str r1, [r0]
-_08132F4E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132F54: .4byte gTasks+0x8
-_08132F58: .4byte gPaletteFade
-_08132F5C: .4byte sub_8132F60
- thumb_func_end sub_8132F20
-
- thumb_func_start sub_8132F60
-sub_8132F60: @ 8132F60
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08132FA4 @ =gTasks+0x8
- adds r6, r0, r1
- ldr r0, _08132FA8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08132F8E
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r0, 0x14
- bgt _08132F8E
- movs r0, 0x15
- strh r0, [r6, 0x10]
- bl sub_815AC20
-_08132F8E:
- movs r3, 0x10
- ldrsh r0, [r6, r3]
- cmp r0, 0x15
- bls _08132F98
- b _08133210
-_08132F98:
- lsls r0, 2
- ldr r1, _08132FAC @ =_08132FB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08132FA4: .4byte gTasks+0x8
-_08132FA8: .4byte gMain
-_08132FAC: .4byte _08132FB0
- .align 2, 0
-_08132FB0:
- .4byte _08133008
- .4byte _08133024
- .4byte _08133050
- .4byte _08133050
- .4byte _08133050
- .4byte _08133080
- .4byte _08133080
- .4byte _08133080
- .4byte _081330B0
- .4byte _081330E0
- .4byte _081330F4
- .4byte _08133024
- .4byte _08133050
- .4byte _08133050
- .4byte _08133050
- .4byte _08133080
- .4byte _08133080
- .4byte _08133080
- .4byte _0813312C
- .4byte _081330E0
- .4byte _0813315C
- .4byte _08133170
-_08133008:
- ldr r0, _08133020 @ =0xffff8405
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x6
- bl BeginNormalPaletteFade
- movs r0, 0x1
- bl sub_8131F64
- b _081331EA
- .align 2, 0
-_08133020: .4byte 0xffff8405
-_08133024:
- ldr r0, _0813304C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08133036
- b _08133232
-_08133036:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bgt _08133046
- b _08133232
-_08133046:
- strh r1, [r6, 0x12]
- b _081331EA
- .align 2, 0
-_0813304C: .4byte gPaletteFade
-_08133050:
- movs r0, 0x12
- ldrsh r1, [r6, r0]
- cmp r1, 0
- bne _08133066
- ldr r0, _0813307C @ =gMain
- strh r1, [r0, 0x2E]
- movs r1, 0x80
- strh r1, [r0, 0x30]
- ldrb r0, [r6]
- bl ListMenuHandleInput
-_08133066:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bgt _08133076
- b _08133232
-_08133076:
- movs r0, 0
- strh r0, [r6, 0x12]
- b _081331EA
- .align 2, 0
-_0813307C: .4byte gMain
-_08133080:
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- cmp r1, 0
- bne _08133096
- ldr r0, _081330AC @ =gMain
- strh r1, [r0, 0x2E]
- movs r1, 0x40
- strh r1, [r0, 0x30]
- ldrb r0, [r6]
- bl ListMenuHandleInput
-_08133096:
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bgt _081330A6
- b _08133232
-_081330A6:
- movs r0, 0
- strh r0, [r6, 0x12]
- b _081331EA
- .align 2, 0
-_081330AC: .4byte gMain
-_081330B0:
- movs r0, 0x1
- bl sub_8131F64
- ldr r2, _081330D4 @ =gUnknown_841C587
- adds r0, r4, 0
- movs r1, 0x4
- movs r3, 0
- bl sub_813337C
- ldr r1, _081330D8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081330DC @ =sub_8132F60
- str r1, [r0]
- b _081331EA
- .align 2, 0
-_081330D4: .4byte gUnknown_841C587
-_081330D8: .4byte gTasks
-_081330DC: .4byte sub_8132F60
-_081330E0:
- bl RunTextPrinters
- movs r0, 0x6
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- beq _081330F2
- b _08133232
-_081330F2:
- b _081331EA
-_081330F4:
- ldr r0, _08133128 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08133102
- b _08133232
-_08133102:
- movs r0, 0
- bl sub_8131F64
- movs r0, 0x80
- lsls r0, 3
- movs r1, 0
- str r1, [sp]
- movs r2, 0x6
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x6
- movs r1, 0
- bl sub_810F260
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- b _081331EA
- .align 2, 0
-_08133128: .4byte gMain
-_0813312C:
- movs r0, 0x1
- bl sub_8131F64
- ldr r2, _08133150 @ =gUnknown_841C693
- adds r0, r4, 0
- movs r1, 0x4
- movs r3, 0
- bl sub_813337C
- ldr r1, _08133154 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08133158 @ =sub_8132F60
- str r1, [r0]
- b _081331EA
- .align 2, 0
-_08133150: .4byte gUnknown_841C693
-_08133154: .4byte gTasks
-_08133158: .4byte sub_8132F60
-_0813315C:
- ldr r0, _0813316C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08133232
- b _081331EA
- .align 2, 0
-_0813316C: .4byte gMain
-_08133170:
- ldr r0, _081331F4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _08133232
- ldr r5, _081331F8 @ =gSaveBlock1Ptr
- ldr r0, [r5]
- ldr r1, _081331FC @ =0x00000464
- adds r0, r1
- ldr r4, _08133200 @ =gUnknown_203B11C
- ldr r1, [r4]
- movs r2, 0xE8
- bl memcpy
- ldr r0, [r5]
- movs r3, 0xEE
- lsls r3, 2
- adds r0, r3
- ldr r1, [r4]
- adds r1, 0xE8
- movs r2, 0x78
- bl memcpy
- ldrb r0, [r6]
- movs r1, 0
- movs r2, 0
- bl sub_810713C
- ldr r2, _08133204 @ =gUnknown_203B10C
- ldr r0, [r4]
- movs r3, 0xB0
- lsls r3, 1
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2, 0x8]
- adds r3, 0x2
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2, 0xA]
- bl Free
- ldr r0, _08133208 @ =gPlttBufferFaded
- ldr r1, _0813320C @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 1
- bl CpuFastSet
- bl sub_8108CF0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- str r7, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_081331EA:
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
- b _08133232
- .align 2, 0
-_081331F4: .4byte gPaletteFade
-_081331F8: .4byte gSaveBlock1Ptr
-_081331FC: .4byte 0x00000464
-_08133200: .4byte gUnknown_203B11C
-_08133204: .4byte gUnknown_203B10C
-_08133208: .4byte gPlttBufferFaded
-_0813320C: .4byte gPlttBufferUnfaded
-_08133210:
- ldr r0, _0813323C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08133232
- ldr r0, _08133240 @ =gUnknown_203B10C
- ldr r0, [r0]
- bl SetMainCallback2
- bl sub_813208C
- bl sub_81321D4
- adds r0, r4, 0
- bl DestroyTask
-_08133232:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813323C: .4byte gPaletteFade
-_08133240: .4byte gUnknown_203B10C
- thumb_func_end sub_8132F60
-
- thumb_func_start sub_8133244
-sub_8133244: @ 8133244
- push {r4,lr}
- ldr r0, _081332E0 @ =gUnknown_8463190
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x5B
- movs r2, 0xE0
- bl sub_815001C
- movs r0, 0
- movs r1, 0x64
- movs r2, 0xB0
- bl sub_814FEAC
- movs r0, 0
- movs r1, 0x78
- movs r2, 0xD0
- bl sub_814FF2C
- ldr r4, _081332E4 @ =gUnknown_841F408
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xA0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _081332E8 @ =gUnknown_8463180
- adds r0, r4, 0
- movs r1, 0xF6
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD6
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0xC0
- movs r1, 0x1
- bl sub_8107D38
- movs r4, 0
-_081332A4:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _081332A4
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081332E0: .4byte gUnknown_8463190
-_081332E4: .4byte gUnknown_841F408
-_081332E8: .4byte gUnknown_8463180
- thumb_func_end sub_8133244
-
- thumb_func_start sub_81332EC
-sub_81332EC: @ 81332EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r3
- ldr r3, [sp, 0x30]
- ldr r4, [sp, 0x34]
- ldr r6, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- mov r8, r5
- ldr r5, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- lsls r7, 24
- lsrs r7, 24
- mov r9, r7
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r6, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, _08133350 @ =gUnknown_8463184
- adds r4, r5
- str r4, [sp, 0x8]
- mov r4, r8
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r2, [sp, 0x10]
- mov r2, r9
- bl AddTextPrinterParametrized2
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133350: .4byte gUnknown_8463184
- thumb_func_end sub_81332EC
-
- thumb_func_start sub_8133354
-sub_8133354: @ 8133354
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0x5B
- movs r3, 0xE
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_8133354
-
- thumb_func_start sub_8133368
-sub_8133368: @ 8133368
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0x78
- movs r3, 0xD
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end sub_8133368
-
- thumb_func_start sub_813337C
-sub_813337C: @ 813337C
- 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_80F78A8
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x6
- movs r2, 0x64
- movs r3, 0xB
- bl DisplayMessageAndContinueTask
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813337C
-
- thumb_func_start sub_81333C4
-sub_81333C4: @ 81333C4
- push {r4,lr}
- sub sp, 0xC
- ldr r4, _081333FC @ =gUnknown_84166D3
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- movs r2, 0x48
- subs r2, r0
- lsrs r2, 1
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08133400 @ =gUnknown_8463184
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081333FC: .4byte gUnknown_84166D3
-_08133400: .4byte gUnknown_8463184
- thumb_func_end sub_81333C4
-
- thumb_func_start sub_8133404
-sub_8133404: @ 8133404
- push {lr}
- movs r0, 0x4
- movs r1, 0x13
- movs r2, 0
- movs r3, 0
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x14
- movs r2, 0
- movs r3, 0xC
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x15
- movs r2, 0
- movs r3, 0x18
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x16
- movs r2, 0
- movs r3, 0x24
- bl sub_8107D68
- movs r0, 0x4
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_8133404
-
- thumb_func_start sub_8133444
-sub_8133444: @ 8133444
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x28
- str r0, [sp]
- movs r0, 0x30
- str r0, [sp, 0x4]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowPixelRect
- cmp r4, 0
- bne _081334A8
- movs r4, 0
- movs r5, 0
-_0813346E:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 26
- lsrs r0, 24
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x3
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- ldr r2, _081334A4 @ =gUnknown_8416213
- movs r3, 0x7
- bl sub_81332EC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0813346E
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- b _0813359A
- .align 2, 0
-_081334A4: .4byte gUnknown_8416213
-_081334A8:
- adds r0, r4, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, _081334D8 @ =gBattleMoves
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r5, r0, r1
- ldrb r1, [r5, 0x2]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- movs r2, 0
- movs r3, 0
- bl sub_8107D68
- ldrb r0, [r5, 0x1]
- cmp r0, 0x1
- bhi _081334E0
- ldr r2, _081334DC @ =gUnknown_8416213
- b _081334F0
- .align 2, 0
-_081334D8: .4byte gBattleMoves
-_081334DC: .4byte gUnknown_8416213
-_081334E0:
- ldr r4, _08133524 @ =gStringVar1
- ldrb r1, [r5, 0x1]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r4, 0
-_081334F0:
- movs r0, 0xC
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x3
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- movs r3, 0x7
- bl sub_81332EC
- ldr r2, _08133528 @ =gBattleMoves
- lsls r1, r7, 1
- adds r0, r1, r7
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x3]
- adds r6, r1, 0
- cmp r0, 0
- bne _08133530
- ldr r2, _0813352C @ =gUnknown_8416213
- b _08133540
- .align 2, 0
-_08133524: .4byte gStringVar1
-_08133528: .4byte gBattleMoves
-_0813352C: .4byte gUnknown_8416213
-_08133530:
- ldr r4, _081335A8 @ =gStringVar1
- ldrb r1, [r2, 0x3]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r4, 0
-_08133540:
- movs r0, 0x18
- str r0, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0xFF
- mov r8, r0
- str r0, [sp, 0xC]
- movs r0, 0x3
- mov r9, r0
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- movs r3, 0x7
- bl sub_81332EC
- ldr r5, _081335A8 @ =gStringVar1
- ldr r1, _081335AC @ =gBattleMoves
- adds r0, r6, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x4]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x24
- str r0, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- mov r0, r9
- str r0, [sp, 0x10]
- movs r0, 0x5
- movs r1, 0x3
- adds r2, r5, 0
- movs r3, 0x7
- bl sub_81332EC
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
-_0813359A:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081335A8: .4byte gStringVar1
-_081335AC: .4byte gBattleMoves
- thumb_func_end sub_8133444
-
- thumb_func_start sub_81335B0
-sub_81335B0: @ 81335B0
- push {r4,lr}
- sub sp, 0x8
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _081335DC @ =gUnknown_8E99118
- movs r2, 0x10
- str r2, [sp]
- movs r2, 0xC
- str r2, [sp, 0x4]
- adds r2, r4, 0
- bl BlitBitmapToWindow
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081335DC: .4byte gUnknown_8E99118
- thumb_func_end sub_81335B0
-
- thumb_func_start sub_81335E0
-sub_81335E0: @ 81335E0
- push {lr}
- ldr r0, _08133600 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 2
- adds r0, r1
- bl GetMoney
- adds r3, r0, 0
- movs r0, 0x8
- movs r1, 0x78
- movs r2, 0xD
- bl PrintMoneyAmountInMoneyBoxWithBorder
- pop {r0}
- bx r0
- .align 2, 0
-_08133600: .4byte gSaveBlock1Ptr
- thumb_func_end sub_81335E0
-
- thumb_func_start sub_8133604
-sub_8133604: @ 8133604
- push {lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813362C @ =gUnknown_84631E0
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x5B
- str r2, [sp, 0x4]
- movs r2, 0xE
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0x2
- movs r3, 0
- bl sub_80BF5D0
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0813362C: .4byte gUnknown_84631E0
- thumb_func_end sub_8133604
-
- thumb_func_start sub_8133630
-sub_8133630: @ 8133630
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _08133656
- lsls r0, r1, 3
- ldr r1, _08133660 @ =gUnknown_84631E8
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_8133354
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
-_08133656:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133660: .4byte gUnknown_84631E8
- thumb_func_end sub_8133630
-
- thumb_func_start sub_8133664
-sub_8133664: @ 8133664
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_810F4D8
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133664
-
- thumb_func_start sub_813368C
-sub_813368C: @ 813368C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _081336E8 @ =gUnknown_8463220
- movs r1, 0x29
- movs r2, 0x2E
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r6, 0
- beq _081336F4
- adds r5, r6, 0
- subs r5, 0x21
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- ldr r0, _081336EC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8133714
- ldr r0, _081336F0 @ =gBattleMoves
- mov r8, r0
- adds r0, r6, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x2]
- bl sub_8133730
- adds r0, r4, 0
- adds r1, r5, 0
- b _08133700
- .align 2, 0
-_081336E8: .4byte gUnknown_8463220
-_081336EC: .4byte gSprites
-_081336F0: .4byte gBattleMoves
-_081336F4:
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08133710 @ =gSprites
- adds r0, r1
- movs r1, 0xFF
-_08133700:
- bl sub_8133790
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08133710: .4byte gSprites
- thumb_func_end sub_813368C
-
- thumb_func_start sub_8133714
-sub_8133714: @ 8133714
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x31
- bls _08133726
- movs r1, 0x1
- bl StartSpriteAnim
- b _0813372C
-_08133726:
- movs r1, 0
- bl StartSpriteAnim
-_0813372C:
- pop {r0}
- bx r0
- thumb_func_end sub_8133714
-
- thumb_func_start sub_8133730
-sub_8133730: @ 8133730
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xC8
- lsls r0, 1
- bl IndexOfSpritePaletteTag
- lsls r0, 28
- lsrs r5, r0, 24
- ldr r2, _08133784 @ =gUnknown_203B12C
- ldr r0, _08133788 @ =gUnknown_8463238
- lsls r4, 1
- adds r4, r0
- ldrh r1, [r4]
- lsls r1, 1
- ldr r0, [r2]
- adds r0, r1
- movs r1, 0x80
- lsls r1, 1
- adds r2, r1, 0
- adds r1, r5, 0
- orrs r1, r2
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0813378C @ =gUnknown_203B10C
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bne _0813377C
- adds r1, r5, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- movs r1, 0x4
- movs r2, 0
- bl BlendPalettes
-_0813377C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08133784: .4byte gUnknown_203B12C
-_08133788: .4byte gUnknown_8463238
-_0813378C: .4byte gUnknown_203B10C
- thumb_func_end sub_8133730
-
- thumb_func_start sub_8133790
-sub_8133790: @ 8133790
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r4, 0xFF
- bne _081337A6
- movs r6, 0x1B
- movs r1, 0x36
- movs r0, 0x14
- strh r0, [r5, 0x26]
- b _081337D8
-_081337A6:
- cmp r4, 0x31
- bls _081337B0
- adds r0, r4, 0
- subs r0, 0x32
- b _081337B4
-_081337B0:
- adds r0, r4, 0
- adds r0, 0x8
-_081337B4:
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 9
- movs r1, 0x3A
- bl __divsi3
- asrs r0, 8
- movs r1, 0x29
- subs r6, r1, r0
- lsls r0, r4, 11
- movs r1, 0x3A
- bl __divsi3
- asrs r0, 8
- adds r1, r0, 0
- adds r1, 0x2E
-_081337D8:
- strh r6, [r5, 0x20]
- strh r1, [r5, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8133790
-
- thumb_func_start sub_81337E4
-sub_81337E4: @ 81337E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08133808 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r0, r2, r3
- movs r4, 0
- strh r1, [r0, 0x2E]
- strh r4, [r0, 0x30]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _0813380C @ =sub_8133810
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133808: .4byte gSprites
-_0813380C: .4byte sub_8133810
- thumb_func_end sub_81337E4
-
- thumb_func_start sub_8133810
-sub_8133810: @ 8133810
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08133822
- cmp r0, 0x1
- beq _08133886
- b _081338A2
-_08133822:
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0x13
- ble _08133880
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08133890
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldr r4, _08133878 @ =gBattleMoves
- ldrh r0, [r5, 0x2E]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x2]
- bl sub_8133730
- ldr r2, _0813387C @ =0xfffffedf
- adds r1, r2, 0
- ldrh r0, [r5, 0x2E]
- adds r1, r0
- strh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_8133714
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_8133790
- b _081338A2
- .align 2, 0
-_08133878: .4byte gBattleMoves
-_0813387C: .4byte 0xfffffedf
-_08133880:
- adds r0, r1, 0
- adds r0, 0xA
- b _081338A0
-_08133886:
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bgt _0813389C
-_08133890:
- ldr r0, _08133898 @ =SpriteCallbackDummy
- str r0, [r5, 0x1C]
- b _081338A2
- .align 2, 0
-_08133898: .4byte SpriteCallbackDummy
-_0813389C:
- adds r0, r1, 0
- subs r0, 0xA
-_081338A0:
- strh r0, [r5, 0x26]
-_081338A2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8133810
-
- thumb_func_start sub_81338A8
-sub_81338A8: @ 81338A8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _081338F4 @ =gUnknown_203B12C
- movs r5, 0x88
- lsls r5, 2
- adds r0, r5, 0
- bl Alloc
- adds r1, r0, 0
- str r1, [r4]
- ldr r0, _081338F8 @ =gUnknown_8E84F20
- bl LZDecompressWram
- ldr r0, _081338FC @ =gUnknown_8E85068
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 2
- adds r1, r2
- bl LZDecompressWram
- ldr r0, [r4]
- adds r0, r5
- str r0, [sp]
- ldr r1, _08133900 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC8
- lsls r1, 1
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081338F4: .4byte gUnknown_203B12C
-_081338F8: .4byte gUnknown_8E84F20
-_081338FC: .4byte gUnknown_8E85068
-_08133900: .4byte 0xffff0000
- thumb_func_end sub_81338A8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index e9fcddf2d..ea2221aa1 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -20,7 +20,7 @@ sub_804C600: @ 804C600
strb r0, [r2, 0x8]
ldr r0, _0804C6FC @ =sub_804D4F8
bl SetVBlankCallback
- ldr r4, _0804C700 @ =gUnknown_841F408
+ ldr r4, _0804C700 @ =gTMCaseMainWindowPalette
adds r0, r4, 0
movs r1, 0xF0
movs r2, 0x14
@@ -118,7 +118,7 @@ _0804C6F0:
.align 2, 0
_0804C6F8: .4byte gPaletteFade
_0804C6FC: .4byte sub_804D4F8
-_0804C700: .4byte gUnknown_841F408
+_0804C700: .4byte gTMCaseMainWindowPalette
_0804C704: .4byte gUnknown_8261F1C
_0804C708: .4byte gUnknown_2031DA8
_0804C70C: .4byte gUnknown_8261F2C
@@ -2487,7 +2487,7 @@ _0804DB1A:
bne _0804DB5A
adds r0, r4, 0
movs r1, 0x2
- ldr r2, _0804DB74 @ =gUnknown_8246BE5
+ ldr r2, _0804DB74 @ = gSpeciesNames + 0xD05
bl SetMonData
_0804DB5A:
adds r4, 0x64
@@ -2500,7 +2500,7 @@ _0804DB5A:
_0804DB68: .4byte gEnemyParty
_0804DB6C: .4byte 0x0000012f
_0804DB70: .4byte gUnknown_8262034
-_0804DB74: .4byte gUnknown_8246BE5
+_0804DB74: .4byte gSpeciesNames+0xD05
_0804DB78:
ldr r2, _0804DBA8 @ =gUnknown_2031DA8
ldr r1, [r2]
@@ -3390,7 +3390,7 @@ _0804E208:
movs r1, 0x3
movs r2, 0
movs r3, 0
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index e44503915..0b0d6c2cf 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -18,7 +18,7 @@ sub_8088FF0: @ 8088FF0
cmp r0, 0
beq _08089020
ldr r1, _08089028 @ =0x040000d4
- ldr r0, _0808902C @ =gUnknown_2038700
+ ldr r0, _0808902C @ =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -33,7 +33,7 @@ _08089020:
.align 2, 0
_08089024: .4byte gUnknown_20397A4
_08089028: .4byte 0x040000d4
-_0808902C: .4byte gUnknown_2038700
+_0808902C: .4byte gScanlineEffectRegBuffers
_08089030: .4byte 0x800000a0
thumb_func_end sub_8088FF0
@@ -44,7 +44,7 @@ sub_8089034: @ 8089034
ldrh r3, [r4]
movs r0, 0
strh r0, [r4]
- ldr r1, _08089064 @ =gUnknown_2038700
+ ldr r1, _08089064 @ =gScanlineEffectRegBuffers
ldr r0, _08089068 @ =0x04000006
ldrh r2, [r0]
movs r0, 0xFF
@@ -63,7 +63,7 @@ sub_8089034: @ 8089034
bx r0
.align 2, 0
_08089060: .4byte 0x04000208
-_08089064: .4byte gUnknown_2038700
+_08089064: .4byte gScanlineEffectRegBuffers
_08089068: .4byte 0x04000006
_0808906C: .4byte 0x04000012
thumb_func_end sub_8089034
@@ -291,7 +291,7 @@ _0808924A:
cmp r0, 0
beq _08089280
movs r0, 0xB
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_808B1D4
movs r0, 0xF2
bl PlaySE
@@ -387,7 +387,7 @@ _0808931C: .4byte gMain
_08089320: .4byte gReceivedRemoteLinkPlayers
_08089324:
movs r0, 0xA
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_808B1D4
ldr r0, _08089340 @ =gUnknown_20397A4
ldr r1, [r0]
@@ -431,7 +431,7 @@ _0808937A:
bl sub_800AAC0
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080893B0 @ =gUnknown_8419D89
movs r0, 0x1
str r0, [sp]
@@ -1647,7 +1647,7 @@ sub_8089D8C: @ 8089D8C
ldr r0, _08089DA0 @ =sub_8089070
bl SetMainCallback2
movs r0, 0xA
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
@@ -1658,7 +1658,7 @@ _08089DA0: .4byte sub_8089070
sub_8089DA4: @ 8089DA4
push {lr}
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
ldr r0, _08089DC4 @ =sub_80890C0
movs r1, 0
bl CreateTask
@@ -4179,10 +4179,10 @@ sub_808B254: @ 808B254
bl HideBg
movs r0, 0x3
bl HideBg
- bl remove_some_task
- bl dp12_8087EA4
+ bl ScanlineEffect_Stop
+ bl ScanlineEffect_Clear
movs r1, 0
- ldr r0, _0808B290 @ =gUnknown_2038700
+ ldr r0, _0808B290 @ =gScanlineEffectRegBuffers
movs r2, 0
movs r3, 0xF0
lsls r3, 3
@@ -4201,7 +4201,7 @@ _0808B278:
pop {r1}
bx r1
.align 2, 0
-_0808B290: .4byte gUnknown_2038700
+_0808B290: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_808B254
thumb_func_start sub_808B294
@@ -4271,7 +4271,7 @@ _0808B2CA:
movs r2, 0
cmp r2, r7
bcs _0808B334
- ldr r3, _0808B3C0 @ =gUnknown_2038700
+ ldr r3, _0808B3C0 @ =gScanlineEffectRegBuffers
_0808B31C:
lsls r0, r2, 16
asrs r0, 16
@@ -4296,7 +4296,7 @@ _0808B334:
lsrs r7, r4, 16
cmp r1, r0
bge _0808B36C
- ldr r0, _0808B3C0 @ =gUnknown_2038700
+ ldr r0, _0808B3C0 @ =gScanlineEffectRegBuffers
mov r12, r0
adds r4, r3, 0
_0808B34E:
@@ -4321,7 +4321,7 @@ _0808B36C:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _0808B38A
- ldr r2, _0808B3C0 @ =gUnknown_2038700
+ ldr r2, _0808B3C0 @ =gScanlineEffectRegBuffers
_0808B378:
asrs r0, r1, 16
lsls r1, r0, 1
@@ -4359,7 +4359,7 @@ _0808B3A2:
_0808B3B4: .4byte gUnknown_20397A4
_0808B3B8: .4byte 0x00007bcc
_0808B3BC: .4byte 0xffff0000
-_0808B3C0: .4byte gUnknown_2038700
+_0808B3C0: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_808B294
thumb_func_start sub_808B3C4
@@ -4612,7 +4612,7 @@ _0808B572:
movs r2, 0
cmp r2, r7
bcs _0808B5DC
- ldr r3, _0808B668 @ =gUnknown_2038700
+ ldr r3, _0808B668 @ =gScanlineEffectRegBuffers
_0808B5C4:
lsls r0, r2, 16
asrs r0, 16
@@ -4637,7 +4637,7 @@ _0808B5DC:
lsrs r7, r4, 16
cmp r1, r0
bge _0808B612
- ldr r0, _0808B668 @ =gUnknown_2038700
+ ldr r0, _0808B668 @ =gScanlineEffectRegBuffers
mov r12, r0
adds r4, r3, 0
_0808B5F6:
@@ -4661,7 +4661,7 @@ _0808B612:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _0808B630
- ldr r2, _0808B668 @ =gUnknown_2038700
+ ldr r2, _0808B668 @ =gScanlineEffectRegBuffers
_0808B61E:
asrs r0, r1, 16
lsls r1, r0, 1
@@ -4699,7 +4699,7 @@ _0808B648:
_0808B65C: .4byte gUnknown_20397A4
_0808B660: .4byte 0x00007bcc
_0808B664: .4byte 0xffff0000
-_0808B668: .4byte gUnknown_2038700
+_0808B668: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_808B540
thumb_func_start sub_808B66C
diff --git a/asm/trig.s b/asm/trig.s
index ca1993b60..1a82afd65 100644
--- a/asm/trig.s
+++ b/asm/trig.s
@@ -9,7 +9,7 @@
Sin: @ 8044E30
lsls r1, 16
asrs r1, 16
- ldr r2, _08044E48 @ =gUnknown_825E074
+ ldr r2, _08044E48 @ =gSineTable
lsls r0, 16
asrs r0, 15
adds r0, r2
@@ -20,14 +20,14 @@ Sin: @ 8044E30
asrs r0, 16
bx lr
.align 2, 0
-_08044E48: .4byte gUnknown_825E074
+_08044E48: .4byte gSineTable
thumb_func_end Sin
thumb_func_start Cos
Cos: @ 8044E4C
lsls r1, 16
asrs r1, 16
- ldr r2, _08044E68 @ =gUnknown_825E074
+ ldr r2, _08044E68 @ =gSineTable
lsls r0, 16
asrs r0, 15
adds r0, 0x80
@@ -39,7 +39,7 @@ Cos: @ 8044E4C
asrs r0, 16
bx lr
.align 2, 0
-_08044E68: .4byte gUnknown_825E074
+_08044E68: .4byte gSineTable
thumb_func_end Cos
thumb_func_start Sin2
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index c61c9a3d8..fcf0ceb19 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -200,7 +200,7 @@ sub_81285B4: @ 81285B4
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
- bl sub_8087F54
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
thumb_func_end sub_81285B4
@@ -3046,7 +3046,7 @@ sub_8129B88: @ 8129B88
str r0, [r4]
_08129B9E:
bl FreeAllWindowBuffers
- ldr r1, _08129BB4 @ =gUnknown_2039600
+ ldr r1, _08129BB4 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
pop {r4}
@@ -3054,7 +3054,7 @@ _08129B9E:
bx r0
.align 2, 0
_08129BB0: .4byte gUnknown_203B0E4
-_08129BB4: .4byte gUnknown_2039600
+_08129BB4: .4byte gScanlineEffect
thumb_func_end sub_8129B88
thumb_func_start sub_8129BB8
@@ -4299,7 +4299,7 @@ sub_812A424: @ 812A424
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
_0812A4F0:
add sp, 0x14
pop {r3}
@@ -5000,7 +5000,7 @@ sub_812AA10: @ 812AA10
movs r1, 0x2
movs r2, 0
movs r3, 0
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x3
bl PutWindowTilemap
add sp, 0xC
@@ -5355,14 +5355,14 @@ sub_812AD20: @ 812AD20
movs r1, 0xA
movs r2, 0x20
bl sub_814FF2C
- ldr r0, _0812AD4C @ =gUnknown_841F408
+ ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
-_0812AD4C: .4byte gUnknown_841F408
+_0812AD4C: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_812AD20
thumb_func_start sub_812AD50
@@ -5384,13 +5384,13 @@ sub_812AD50: @ 812AD50
strh r1, [r0, 0x20]
str r1, [sp, 0xC]
add r0, sp, 0xC
- ldr r1, _0812AD98 @ =gUnknown_2038700
+ ldr r1, _0812AD98 @ =gScanlineEffectRegBuffers
ldr r2, _0812AD9C @ =0x010003c0
bl CpuFastSet
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_8087EE4
+ bl ScanlineEffect_SetParams
add sp, 0x10
pop {r0}
bx r0
@@ -5398,7 +5398,7 @@ sub_812AD50: @ 812AD50
_0812AD8C: .4byte 0xa2600001
_0812AD90: .4byte 0x04000014
_0812AD94: .4byte gUnknown_203B0E4
-_0812AD98: .4byte gUnknown_2038700
+_0812AD98: .4byte gScanlineEffectRegBuffers
_0812AD9C: .4byte 0x010003c0
thumb_func_end sub_812AD50
@@ -5410,12 +5410,12 @@ sub_812ADA0: @ 812ADA0
lsrs r0, 16
mov r1, sp
strh r0, [r1]
- ldr r5, _0812ADE8 @ =gUnknown_2039600
+ ldr r5, _0812ADE8 @ =gScanlineEffect
ldrb r0, [r5, 0x14]
lsls r1, r0, 4
subs r1, r0
lsls r1, 7
- ldr r4, _0812ADEC @ =gUnknown_2038700
+ ldr r4, _0812ADEC @ =gScanlineEffectRegBuffers
adds r1, r4
ldr r2, _0812ADF0 @ =0x01000090
mov r0, sp
@@ -5439,8 +5439,8 @@ sub_812ADA0: @ 812ADA0
pop {r0}
bx r0
.align 2, 0
-_0812ADE8: .4byte gUnknown_2039600
-_0812ADEC: .4byte gUnknown_2038700
+_0812ADE8: .4byte gScanlineEffect
+_0812ADEC: .4byte gScanlineEffectRegBuffers
_0812ADF0: .4byte 0x01000090
_0812ADF4: .4byte 0x01000010
thumb_func_end sub_812ADA0
@@ -5457,7 +5457,7 @@ sub_812ADF8: @ 812ADF8
lsrs r4, 16
mov r0, sp
strh r4, [r0]
- ldr r5, _0812AE64 @ =gUnknown_2038700
+ ldr r5, _0812AE64 @ =gScanlineEffectRegBuffers
ldr r0, _0812AE68 @ =0x01000090
mov r9, r0
mov r0, sp
@@ -5498,7 +5498,7 @@ sub_812ADF8: @ 812ADF8
pop {r0}
bx r0
.align 2, 0
-_0812AE64: .4byte gUnknown_2038700
+_0812AE64: .4byte gScanlineEffectRegBuffers
_0812AE68: .4byte 0x01000090
_0812AE6C: .4byte 0x01000010
thumb_func_end sub_812ADF8
diff --git a/asm/unk_8147AA8.s b/asm/unk_8147AA8.s
index c495dc281..36b8940ab 100644
--- a/asm/unk_8147AA8.s
+++ b/asm/unk_8147AA8.s
@@ -7393,7 +7393,7 @@ _0814B1EC:
movs r0, 0
strh r0, [r5, 0x30]
_0814B1FE:
- ldr r1, _0814B22C @ =gUnknown_825E074
+ ldr r1, _0814B22C @ =gSineTable
movs r2, 0x30
ldrsh r0, [r5, r2]
lsls r0, 1
@@ -7417,7 +7417,7 @@ _0814B1FE:
strh r1, [r5, 0x2E]
b _0814B234
.align 2, 0
-_0814B22C: .4byte gUnknown_825E074
+_0814B22C: .4byte gSineTable
_0814B230:
ldr r0, _0814B23C @ =SpriteCallbackDummy
str r0, [r5, 0x1C]
diff --git a/asm/unk_814BB4C.s b/asm/unk_814BB4C.s
index 9c0e0503b..5ad566185 100644
--- a/asm/unk_814BB4C.s
+++ b/asm/unk_814BB4C.s
@@ -201,7 +201,7 @@ _0814BC98:
_0814BCA2:
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldrb r1, [r5, 0x1]
movs r0, 0x2
mov r8, r0
@@ -287,7 +287,7 @@ _0814BD48:
beq _0814BD5A
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
_0814BD5A:
ldrb r0, [r7, 0xE]
movs r1, 0x1
@@ -597,7 +597,7 @@ _0814BFA0: .4byte gUnknown_83DFC9C
_0814BFA4:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
movs r0, 0xA
movs r1, 0x1
movs r2, 0
@@ -2855,7 +2855,7 @@ _0814D106:
beq _0814D17E
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _0814D148 @ =gUnknown_8419F54
movs r0, 0
str r0, [sp]
@@ -2979,7 +2979,7 @@ _0814D204:
_0814D206:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
movs r4, 0
str r4, [sp]
adds r0, r6, 0
@@ -3159,7 +3159,7 @@ _0814D34A:
_0814D356:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r5, 0
bl sub_814DA04
movs r0, 0x1
@@ -3217,7 +3217,7 @@ _0814D3BA:
_0814D3C0:
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldrh r1, [r5, 0x14]
cmp r1, 0x3
bne _0814D3F0
diff --git a/asm/unk_814D5C8.s b/asm/unk_814D5C8.s
index 4c78d4459..422d34f07 100644
--- a/asm/unk_814D5C8.s
+++ b/asm/unk_814D5C8.s
@@ -49,7 +49,7 @@ _0814D61C:
movs r0, 0
movs r1, 0
bl SetGpuReg
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl reset_temp_tile_data_buffers
b _0814D878
_0814D63A:
@@ -186,8 +186,8 @@ _0814D768:
beq _0814D774
b _0814D87E
_0814D774:
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
adds r0, r5, 0
bl sub_814EB38
adds r0, r5, 0
diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s
index e0448643e..324a6b48c 100644
--- a/asm/unk_81507FC.s
+++ b/asm/unk_81507FC.s
@@ -10657,7 +10657,7 @@ _08155A9C:
_08155AA6:
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _08155ACC @ =gUnknown_8419F54
str r4, [sp]
movs r0, 0x2
@@ -11276,8 +11276,8 @@ _08155EC6:
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
movs r1, 0x82
lsls r1, 5
movs r0, 0
diff --git a/asm/unk_815F138.s b/asm/unk_815F138.s
index eaca7d2a4..3a1d49e81 100644
--- a/asm/unk_815F138.s
+++ b/asm/unk_815F138.s
@@ -500,7 +500,7 @@ _0815F4DC:
adds r0, 0x1
strh r0, [r4]
_0815F4FA:
- ldr r0, _0815F50C @ =gUnknown_825E074
+ ldr r0, _0815F50C @ =gSineTable
movs r2, 0x2
ldrsh r1, [r4, r2]
lsls r1, 1
@@ -510,7 +510,7 @@ _0815F4FA:
asrs r0, 4
b _0815F53E
.align 2, 0
-_0815F50C: .4byte gUnknown_825E074
+_0815F50C: .4byte gSineTable
_0815F510:
ldrh r0, [r4, 0x2]
adds r0, 0x10
@@ -527,7 +527,7 @@ _0815F510:
adds r0, 0x1
strh r0, [r4]
_0815F52E:
- ldr r1, _0815F544 @ =gUnknown_825E074
+ ldr r1, _0815F544 @ =gSineTable
movs r2, 0x2
ldrsh r0, [r4, r2]
lsls r0, 1
@@ -540,7 +540,7 @@ _0815F53E:
strh r0, [r5, 0x26]
b _0815F55A
.align 2, 0
-_0815F544: .4byte gUnknown_825E074
+_0815F544: .4byte gSineTable
_0815F548:
ldrh r0, [r4, 0x2]
adds r0, 0x1
diff --git a/asm/unknown_task.s b/asm/unknown_task.s
deleted file mode 100644
index 6f417a4a1..000000000
--- a/asm/unknown_task.s
+++ /dev/null
@@ -1,644 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start remove_some_task
-remove_some_task: @ 8087E64
- push {r4,lr}
- ldr r4, _08087E94 @ =gUnknown_2039600
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _08087E98 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _08087E9C @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _08087EA0 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x18]
- cmp r0, 0xFF
- beq _08087E8E
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r4, 0x18]
-_08087E8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087E94: .4byte gUnknown_2039600
-_08087E98: .4byte 0x040000b0
-_08087E9C: .4byte 0x0000c5ff
-_08087EA0: .4byte 0x00007fff
- thumb_func_end remove_some_task
-
- thumb_func_start dp12_8087EA4
-dp12_8087EA4: @ 8087EA4
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- movs r4, 0
- strh r4, [r0]
- ldr r1, _08087ED8 @ =gUnknown_2038700
- ldr r2, _08087EDC @ =0x01000780
- bl CpuSet
- ldr r0, _08087EE0 @ =gUnknown_2039600
- movs r1, 0
- str r1, [r0]
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- strb r4, [r0, 0x14]
- strb r4, [r0, 0x15]
- strb r4, [r0, 0x16]
- strb r4, [r0, 0x17]
- movs r1, 0xFF
- strb r1, [r0, 0x18]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087ED8: .4byte gUnknown_2038700
-_08087EDC: .4byte 0x01000780
-_08087EE0: .4byte gUnknown_2039600
- thumb_func_end dp12_8087EA4
-
- thumb_func_start sub_8087EE4
-sub_8087EE4: @ 8087EE4
- push {lr}
- sub sp, 0xC
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, _08087F08 @ =0xa2600001
- cmp r1, r0
- bne _08087F18
- ldr r0, _08087F0C @ =gUnknown_2039600
- ldr r1, _08087F10 @ =gUnknown_2038702
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08087F14 @ =sub_8087FE0
- b _08087F28
- .align 2, 0
-_08087F08: .4byte 0xa2600001
-_08087F0C: .4byte gUnknown_2039600
-_08087F10: .4byte gUnknown_2038702
-_08087F14: .4byte sub_8087FE0
-_08087F18:
- ldr r0, _08087F48 @ =gUnknown_2039600
- ldr r1, _08087F4C @ =gUnknown_2038704
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08087F50 @ =sub_8088000
-_08087F28:
- str r1, [r0, 0x10]
- adds r1, r0, 0
- ldr r0, [sp, 0x4]
- str r0, [r1, 0xC]
- ldr r0, [sp]
- str r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x8]
- strb r0, [r1, 0x15]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- strb r0, [r1, 0x16]
- strb r0, [r1, 0x17]
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_08087F48: .4byte gUnknown_2039600
-_08087F4C: .4byte gUnknown_2038704
-_08087F50: .4byte sub_8088000
- thumb_func_end sub_8087EE4
-
- thumb_func_start sub_8087F54
-sub_8087F54: @ 8087F54
- push {r4,lr}
- ldr r4, _08087F84 @ =gUnknown_2039600
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _08087FCE
- cmp r0, 0x3
- bne _08087F98
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _08087F88 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _08087F8C @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _08087F90 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r1, _08087F94 @ =gUnknown_203961C
- movs r0, 0x1
- strb r0, [r1]
- b _08087FCE
- .align 2, 0
-_08087F84: .4byte gUnknown_2039600
-_08087F88: .4byte 0x040000b0
-_08087F8C: .4byte 0x0000c5ff
-_08087F90: .4byte 0x00007fff
-_08087F94: .4byte gUnknown_203961C
-_08087F98:
- ldr r1, _08087FD4 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _08087FD8 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _08087FDC @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x14]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r4, 0x8]
- str r0, [r1, 0x4]
- ldr r0, [r4, 0xC]
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, [r4, 0x10]
- bl _call_via_r0
- ldrb r0, [r4, 0x14]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4, 0x14]
-_08087FCE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087FD4: .4byte 0x040000b0
-_08087FD8: .4byte 0x0000c5ff
-_08087FDC: .4byte 0x00007fff
- thumb_func_end sub_8087F54
-
- thumb_func_start sub_8087FE0
-sub_8087FE0: @ 8087FE0
- ldr r0, _08087FF8 @ =gUnknown_2039600
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08087FFC @ =gUnknown_2038700
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_08087FF8: .4byte gUnknown_2039600
-_08087FFC: .4byte gUnknown_2038700
- thumb_func_end sub_8087FE0
-
- thumb_func_start sub_8088000
-sub_8088000: @ 8088000
- ldr r0, _08088018 @ =gUnknown_2039600
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _0808801C @ =gUnknown_2038700
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- bx lr
- .align 2, 0
-_08088018: .4byte gUnknown_2039600
-_0808801C: .4byte gUnknown_2038700
- thumb_func_end sub_8088000
-
- thumb_func_start task00_for_dp12
-task00_for_dp12: @ 8088020
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r6, 0
- ldr r0, _08088048 @ =gUnknown_203961C
- ldrb r0, [r0]
- cmp r0, 0
- beq _08088050
- mov r0, r12
- bl DestroyTask
- ldr r1, _0808804C @ =gUnknown_2039600
- movs r0, 0xFF
- strb r0, [r1, 0x18]
- b _080881D0
- .align 2, 0
-_08088048: .4byte gUnknown_203961C
-_0808804C: .4byte gUnknown_2039600
-_08088050:
- ldr r1, _0808807C @ =gTasks
- mov r0, r12
- lsls r2, r0, 2
- adds r0, r2, r0
- lsls r0, 3
- adds r3, r0, r1
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- mov r10, r1
- mov r9, r2
- cmp r0, 0
- beq _080880FC
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- bhi _080880FC
- lsls r0, 2
- ldr r1, _08088080 @ =_08088084
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808807C: .4byte gTasks
-_08088080: .4byte _08088084
- .align 2, 0
-_08088084:
- .4byte _080880C0
- .4byte _080880FC
- .4byte _080880C8
- .4byte _080880FC
- .4byte _080880D0
- .4byte _080880FC
- .4byte _080880D8
- .4byte _080880FC
- .4byte _080880E0
- .4byte _080880FC
- .4byte _080880E8
- .4byte _080880FC
- .4byte _080880F0
- .4byte _080880FC
- .4byte _080880F8
-_080880C0:
- ldr r0, _080880C4 @ =gUnknown_2022974
- b _080880FA
- .align 2, 0
-_080880C4: .4byte gUnknown_2022974
-_080880C8:
- ldr r0, _080880CC @ =gUnknown_2022976
- b _080880FA
- .align 2, 0
-_080880CC: .4byte gUnknown_2022976
-_080880D0:
- ldr r0, _080880D4 @ =gUnknown_2022978
- b _080880FA
- .align 2, 0
-_080880D4: .4byte gUnknown_2022978
-_080880D8:
- ldr r0, _080880DC @ =gUnknown_202297A
- b _080880FA
- .align 2, 0
-_080880DC: .4byte gUnknown_202297A
-_080880E0:
- ldr r0, _080880E4 @ =gUnknown_202297C
- b _080880FA
- .align 2, 0
-_080880E4: .4byte gUnknown_202297C
-_080880E8:
- ldr r0, _080880EC @ =gUnknown_202297E
- b _080880FA
- .align 2, 0
-_080880EC: .4byte gUnknown_202297E
-_080880F0:
- ldr r0, _080880F4 @ =gUnknown_2022980
- b _080880FA
- .align 2, 0
-_080880F4: .4byte gUnknown_2022980
-_080880F8:
- ldr r0, _0808815C @ =gUnknown_2022982
-_080880FA:
- ldrh r6, [r0]
-_080880FC:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r2, r10
- adds r1, r0, r2
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08088168
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080881D0
- ldr r5, _08088160 @ =gUnknown_2038700
- ldr r0, _08088164 @ =gUnknown_2039600
- mov r8, r0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
-_08088136:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _08088136
- b _080881D0
- .align 2, 0
-_0808815C: .4byte gUnknown_2022982
-_08088160: .4byte gUnknown_2038700
-_08088164: .4byte gUnknown_2039600
-_08088168:
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x10]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080881B0
- ldr r5, _080881E0 @ =gUnknown_2038700
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
- ldr r0, _080881E4 @ =gUnknown_2039600
- mov r8, r0
-_0808818E:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _0808818E
-_080881B0:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r3, r10
- adds r2, r0, r3
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bne _080881D0
- movs r0, 0
- strh r0, [r2, 0xE]
-_080881D0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080881E0: .4byte gUnknown_2038700
-_080881E4: .4byte gUnknown_2039600
- thumb_func_end task00_for_dp12
-
- thumb_func_start sub_80881E8
-sub_80881E8: @ 80881E8
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0
- movs r2, 0
- ldr r0, _0808822C @ =gUnknown_825E074
- mov r12, r0
-_080881FC:
- lsls r0, r1, 1
- adds r3, r0, r6
- lsls r0, r2, 1
- add r0, r12
- movs r7, 0
- ldrsh r0, [r0, r7]
- muls r0, r4
- cmp r0, 0
- bge _08088210
- adds r0, 0xFF
-_08088210:
- asrs r0, 8
- strh r0, [r3]
- adds r0, r2, r5
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _080881FC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808822C: .4byte gUnknown_825E074
- thumb_func_end sub_80881E8
-
- thumb_func_start sub_8088230
-sub_8088230: @ 8088230
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r5, r0, 0
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x40]
- mov r8, r0
- ldr r1, [sp, 0x44]
- mov r9, r1
- ldr r0, [sp, 0x48]
- mov r10, r0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, [sp, 0x10]
- lsls r1, 24
- str r1, [sp, 0x14]
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, r3, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r3, r9
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl dp12_8087EA4
- ldr r0, _0808833C @ =0x04000010
- add r0, r9
- str r0, [sp]
- ldr r0, _08088340 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_8087EE4
- ldr r0, _08088344 @ =task00_for_dp12
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08088348 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r5, [r4, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ldr r1, [sp, 0x18]
- bl __divsi3
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4, 0xE]
- mov r1, r8
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- mov r3, r9
- strh r3, [r4, 0x14]
- mov r0, r10
- strh r0, [r4, 0x16]
- ldr r0, _0808834C @ =gUnknown_2039600
- strb r7, [r0, 0x18]
- ldr r0, _08088350 @ =gUnknown_203961C
- movs r1, 0
- strb r1, [r0]
- ldr r4, _08088354 @ =gUnknown_2038980
- ldr r3, [sp, 0xC]
- subs r6, r3, r5
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r4, 0
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- bl sub_80881E8
- ldr r0, [sp, 0xC]
- cmp r5, r0
- bge _0808832A
- ldr r1, _08088358 @ =0xfffffd80
- adds r2, r4, r1
- lsls r1, r5, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r1, r3
- adds r3, r0, r2
- adds r1, r2
- adds r2, r4, 0
- adds r5, r6, 0
-_08088316:
- ldrh r0, [r2]
- strh r0, [r1]
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bne _08088316
-_0808832A:
- adds r0, r7, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808833C: .4byte 0x04000010
-_08088340: .4byte 0xa2600001
-_08088344: .4byte task00_for_dp12
-_08088348: .4byte gTasks
-_0808834C: .4byte gUnknown_2039600
-_08088350: .4byte gUnknown_203961C
-_08088354: .4byte gUnknown_2038980
-_08088358: .4byte 0xfffffd80
- thumb_func_end sub_8088230
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
index 67c159abc..21b97c942 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 sub_8082AB8
+ bl GetUnownLetterByPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, r5
@@ -493,8 +493,8 @@ _08082A8E:
bx r1
thumb_func_end sub_8082A88
- thumb_func_start sub_8082AB8
-sub_8082AB8: @ 8082AB8
+ thumb_func_start GetUnownLetterByPersonality
+GetUnownLetterByPersonality: @ 8082AB8
push {lr}
adds r2, r0, 0
movs r0, 0xC0
@@ -520,7 +520,7 @@ sub_8082AB8: @ 8082AB8
lsrs r0, 24
pop {r1}
bx r1
- thumb_func_end sub_8082AB8
+ thumb_func_end GetUnownLetterByPersonality
thumb_func_start sub_8082AEC
sub_8082AEC: @ 8082AEC
diff --git a/asm/wild_pokemon_area.s b/asm/wild_pokemon_area.s
index 26c908a14..71d8ac8dc 100644
--- a/asm/wild_pokemon_area.s
+++ b/asm/wild_pokemon_area.s
@@ -221,13 +221,13 @@ sub_813CB5C: @ 813CB5C
ldr r0, _0813CBBC @ =gUnknown_84642F4
lsls r4, 2
adds r4, r0
- bl sub_80CBDB0
+ bl ScrSpecial_GetStarter
ldrh r1, [r4, 0x2]
lsls r0, 16
lsrs r0, 16
cmp r1, r0
bne _0813CBC4
- bl sub_8142044
+ bl GetRoamerLocationMapSectionId
lsls r0, 16
lsrs r0, 16
movs r1, 0
diff --git a/asm/wireless_communication_status_screen.s b/asm/wireless_communication_status_screen.s
index b4aecb9a5..72368171f 100644
--- a/asm/wireless_communication_status_screen.s
+++ b/asm/wireless_communication_status_screen.s
@@ -92,7 +92,7 @@ sub_814F1E4: @ 814F1E4
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
- bl remove_some_task
+ bl ScanlineEffect_Stop
bl m4aSoundVSyncOn
ldr r0, _0814F31C @ =sub_814F1C0
bl SetVBlankCallback
@@ -130,7 +130,7 @@ sub_814F1E4: @ 814F1E4
movs r2, 0x20
bl LoadPalette
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
bl UnkTextUtil_Reset
movs r0, 0x20
str r0, [sp]
diff --git a/charmap.txt b/charmap.txt
index ad4062731..f8161e87d 100644
--- a/charmap.txt
+++ b/charmap.txt
@@ -534,6 +534,83 @@ SE_TB_START = 72 00
SE_TB_KON = 73 00
SE_TB_KARA = 74 00
SE_BIDORO = 75 00
+
+BGM_FRLG_FOLLOW_ME = 10 01
+BGM_FRLG_GAMECORNER = 11 01
+BGM_FRLG_ROCKET_HIDEOUT = 12 01
+BGM_FRLG_GYM = 13 01
+BGM_FRLG_JIGGLYPUFF = 14 01
+BGM_FRLG_OPENING = 15 01
+BGM_FRLG_TITLE = 16 01
+BGM_FRLG_CINNABAR_ISLAND = 17 01
+BGM_FRLG_LAVENDER_TOWN = 18 01
+BGM_FRLG_HEALING_TEST = 19 01
+BGM_FRLG_BICYCLE = 1A 01
+BGM_FRLG_SUSPICIOUS_EYE = 1B 01
+BGM_FRLG_GIRL_EYE = 1C 01
+BGM_FRLG_BOY_EYE = 1D 01
+BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME = 1E 01
+BGM_FRLG_VIRIDIAN_FOREST = 1F 01
+BGM_FRLG_MT_MOON = 20 01
+BGM_FRLG_POKEMON_MANSION = 21 01
+BGM_FRLG_CREDITS = 22 01
+BGM_FRLG_ROUTE_1 = 23 01
+BGM_FRLG_ROUTE_24 = 24 01
+BGM_FRLG_ROUTE_3 = 25 01
+BGM_FRLG_ROUTE_11 = 26 01
+BGM_FRLG_INDIGO_PLATEAU = 27 01
+BGM_FRLG_BATTLE_LEADER = 28 01
+BGM_FRLG_BATTLE_TRAINER = 29 01
+BGM_FRLG_BATTLE_WILD_POKEMON = 2A 01
+BGM_FRLG_BATTLE_CHAMPION = 2B 01
+BGM_FRLG_PALLET_TOWN = 2C 01
+BGM_FRLG_OAK_LAB = 2D 01
+BGM_FRLG_PROF_OAK = 2E 01
+BGM_FRLG_POKEMON_CENTER = 2F 01
+BGM_FRLG_SS_ANNE = 30 01
+BGM_FRLG_SURF = 31 01
+BGM_FRLG_POKEMON_TOWER = 32 01
+BGM_FRLG_SILPH = 33 01
+BGM_FRLG_CERULEAN_CITY = 34 01
+BGM_FRLG_CELADON_CITY = 35 01
+BGM_FRLG_KACHI_TRAINER = 36 01
+BGM_FRLG_KACHI_WILD_POKEMON = 37 01
+BGM_FRLG_KACHI_LEADER = 38 01
+BGM_FRLG_VERMILION_CITY = 39 01
+BGM_FRLG_VIRIDIAN_CITY = 3A 01
+BGM_FRLG_RIVAL = 3B 01
+BGM_FRLG_RIVAL_POSTBATTLE = 3C 01
+BGM_FRLG_ME_POKEDEX_EVAL = 3D 01
+BGM_FRLG_ME_KEYITEM = 3E 01
+BGM_FRLG_FANFA_POKEMON_CAUGHT = 3F 01
+BGM_FRLG_FANFA_TRAINERCARD_PHOTO = 40 01
+BGM_FRLG_GAMEFREAK_LOGO = 41 01
+BGM_FRLG_CAUGHT_POKEMON = 42 01
+BGM_FRLG_GAME_EXPLANATION_START = 43 01
+BGM_FRLG_GAME_EXPLANATION_MIDDLE = 44 01
+BGM_FRLG_GAME_EXPLANATION_END = 45 01
+BGM_FRLG_POKEMON_JUMP = 46 01
+BGM_FRLG_UNION_ROOM = 47 01
+BGM_FRLG_POKEMON_NETWORK_CENTER = 48 01
+BGM_FRLG_MYSTERY_GIFT = 49 01
+BGM_FRLG_DODRIO_BERRY_PICK = 4A 01
+BGM_FRLG_MT_EMBER = 4B 01
+BGM_FRLG_TEACHY_TV_EPISODE = 4C 01
+BGM_FRLG_SEVII_ISLANDS = 4D 01
+BGM_FRLG_TANOBY_RUINS = 4E 01
+BGM_FRLG_ISLAND_ONE = 4F 01
+BGM_FRLG_ISLAND_FOUR = 50 01
+BGM_FRLG_ISLAND_SIX = 51 01
+BGM_FRLG_FLUTE = 52 01
+BGM_FRLG_BATTLE_DEOXYS = 53 01
+BGM_FRLG_BATTLE_MEWTWO = 54 01
+BGM_FRLG_BATTLE_LEGENDARY = 55 01
+BGM_FRLG_LEADER_EYE = 56 01
+BGM_FRLG_DEOXYS_EYE = 57 01
+BGM_FRLG_TRAINER_TOWER = 58 01
+BGM_FRLG_HALL_OF_FAME_PALLET_TOWN = 59 01
+BGM_FRLG_TEACHY_TV = 5A 01
+
BGM_STOP = 5D 01
BGM_TETSUJI = 5E 01
BGM_FIELD13 = 5F 01
diff --git a/data/battle_anim.s b/data/battle_anim.s
new file mode 100644
index 000000000..a3c58fb11
--- /dev/null
+++ b/data/battle_anim.s
@@ -0,0 +1,262 @@
+ .section .rodata
+ .align 2
+gOamData_83AC9C8::
+ .4byte 0x00000000, 0x00000800
+
+gOamData_83AC9D0::
+ .4byte 0x40000000, 0x00000800
+
+gOamData_83AC9D8::
+ .4byte 0x80000000, 0x00000800
+
+gOamData_83AC9E0::
+ .4byte 0xc0000000, 0x00000800
+
+gOamData_83AC9E8::
+ .4byte 0x00004000, 0x00000800
+
+gOamData_83AC9F0::
+ .4byte 0x40004000, 0x00000800
+
+gOamData_83AC9F8::
+ .4byte 0x80004000, 0x00000800
+
+gOamData_83ACA00::
+ .4byte 0xc0004000, 0x00000800
+
+gOamData_83ACA08::
+ .4byte 0x00008000, 0x00000800
+
+gOamData_83ACA10::
+ .4byte 0x40008000, 0x00000800
+
+gOamData_83ACA18::
+ .4byte 0x80008000, 0x00000800
+
+gOamData_83ACA20::
+ .4byte 0xc0008000, 0x00000800
+
+gOamData_83ACA28::
+ .4byte 0x00000100, 0x00000800
+
+gOamData_83ACA30::
+ .4byte 0x40000100, 0x00000800
+
+gOamData_83ACA38::
+ .4byte 0x80000100, 0x00000800
+
+gOamData_83ACA40::
+ .4byte 0xc0000100, 0x00000800
+
+gOamData_83ACA48::
+ .4byte 0x00004100, 0x00000800
+
+gOamData_83ACA50::
+ .4byte 0x40004100, 0x00000800
+
+gOamData_83ACA58::
+ .4byte 0x80004100, 0x00000800
+
+gOamData_83ACA60::
+ .4byte 0xc0004100, 0x00000800
+
+gOamData_83ACA68::
+ .4byte 0x00008100, 0x00000800
+
+gOamData_83ACA70::
+ .4byte 0x40008100, 0x00000800
+
+gOamData_83ACA78::
+ .4byte 0x80008100, 0x00000800
+
+gOamData_83ACA80::
+ .4byte 0xc0008100, 0x00000800
+
+gOamData_83ACA88::
+ .4byte 0x00000300, 0x00000800
+
+gOamData_83ACA90::
+ .4byte 0x40000300, 0x00000800
+
+gOamData_83ACA98::
+ .4byte 0x80000300, 0x00000800
+
+gOamData_83ACAA0::
+ .4byte 0xc0000300, 0x00000800
+
+gOamData_83ACAA8::
+ .4byte 0x00004300, 0x00000800
+
+gOamData_83ACAB0::
+ .4byte 0x40004300, 0x00000800
+
+gOamData_83ACAB8::
+ .4byte 0x80004300, 0x00000800
+
+gOamData_83ACAC0::
+ .4byte 0xc0004300, 0x00000800
+
+gOamData_83ACAC8::
+ .4byte 0x00008300, 0x00000800
+
+gOamData_83ACAD0::
+ .4byte 0x40008300, 0x00000800
+
+gOamData_83ACAD8::
+ .4byte 0x80008300, 0x00000800
+
+gOamData_83ACAE0::
+ .4byte 0xc0008300, 0x00000800
+
+gOamData_83ACAE8::
+ .4byte 0x00000400, 0x00000800
+
+gOamData_83ACAF0::
+ .4byte 0x40000400, 0x00000800
+
+gOamData_83ACAF8::
+ .4byte 0x80000400, 0x00000800
+
+gOamData_83ACB00::
+ .4byte 0xc0000400, 0x00000800
+
+gOamData_83ACB08::
+ .4byte 0x00004400, 0x00000800
+
+gOamData_83ACB10::
+ .4byte 0x40004400, 0x00000800
+
+gOamData_83ACB18::
+ .4byte 0x80004400, 0x00000800
+
+gOamData_83ACB20::
+ .4byte 0xc0004400, 0x00000800
+
+gOamData_83ACB28::
+ .4byte 0x00008400, 0x00000800
+
+gOamData_83ACB30::
+ .4byte 0x40008400, 0x00000800
+
+gOamData_83ACB38::
+ .4byte 0x80008400, 0x00000800
+
+gOamData_83ACB40::
+ .4byte 0xc0008400, 0x00000800
+
+gOamData_83ACB48::
+ .4byte 0x00000500, 0x00000800
+
+gOamData_83ACB50::
+ .4byte 0x40000500, 0x00000800
+
+gOamData_83ACB58::
+ .4byte 0x80000500, 0x00000800
+
+gOamData_83ACB60::
+ .4byte 0xc0000500, 0x00000800
+
+gOamData_83ACB68::
+ .4byte 0x00004500, 0x00000800
+
+gOamData_83ACB70::
+ .4byte 0x40004500, 0x00000800
+
+gOamData_83ACB78::
+ .4byte 0x80004500, 0x00000800
+
+gOamData_83ACB80::
+ .4byte 0xc0004500, 0x00000800
+
+gOamData_83ACB88::
+ .4byte 0x00008500, 0x00000800
+
+gOamData_83ACB90::
+ .4byte 0x40008500, 0x00000800
+
+gOamData_83ACB98::
+ .4byte 0x80008500, 0x00000800
+
+gOamData_83ACBA0::
+ .4byte 0xc0008500, 0x00000800
+
+gOamData_83ACBA8::
+ .4byte 0x00000700, 0x00000800
+
+gOamData_83ACBB0::
+ .4byte 0x40000700, 0x00000800
+
+gOamData_83ACBB8::
+ .4byte 0x80000700, 0x00000800
+
+gOamData_83ACBC0::
+ .4byte 0xc0000700, 0x00000800
+
+gOamData_83ACBC8::
+ .4byte 0x00004700, 0x00000800
+
+gOamData_83ACBD0::
+ .4byte 0x40004700, 0x00000800
+
+gOamData_83ACBD8::
+ .4byte 0x80004700, 0x00000800
+
+gOamData_83ACBE0::
+ .4byte 0xc0004700, 0x00000800
+
+gOamData_83ACBE8::
+ .4byte 0x00008700, 0x00000800
+
+gOamData_83ACBF0::
+ .4byte 0x40008700, 0x00000800
+
+gOamData_83ACBF8::
+ .4byte 0x80008700, 0x00000800
+
+gOamData_83ACC00::
+ .4byte 0xc0008700, 0x00000800
+
+gUnknown_83ACC08:: @ 83ACC08
+ .incbin "baserom.gba", 0x3ACC08, 0x440
+
+gUnknown_83AD048:: @ 83AD048
+ .incbin "baserom.gba", 0x3AD048, 0x308
+
+gUnknown_83AD350:: @ 83AD350
+ .incbin "baserom.gba", 0x3AD350, 0x120
+
+gUnknown_83AD470:: @ 83AD470
+ .incbin "baserom.gba", 0x3AD470, 0x4E0
+
+gUnknown_83AD950:: @ 83AD950
+ .incbin "baserom.gba", 0x3AD950, 0x308
+
+gUnknown_83ADC58:: @ 83ADC58
+ .incbin "baserom.gba", 0x3ADC58, 0x120
+
+gUnknown_83ADD78:: @ 83ADD78
+ .incbin "baserom.gba", 0x3ADD78, 0xA0
+
+gUnknown_83ADE18:: @ 83ADE18
+ .incbin "baserom.gba", 0x3ADE18, 0x144
+
+gUnknown_83ADF5C:: @ 83ADF5C
+ .incbin "baserom.gba", 0x3ADF5C, 0xC0
+
+gUnknown_83AE01C:: @ 83AE01C
+ .incbin "baserom.gba", 0x3AE01C, 0x20
+
+gUnknown_83AE03C:: @ 83AE03C
+ .incbin "baserom.gba", 0x3AE03C, 0x10
+
+gUnknown_83AE04C:: @ 83AE04C
+ .incbin "baserom.gba", 0x3AE04C, 0x4
+
+gUnknown_83AE050:: @ 83AE050
+ .incbin "baserom.gba", 0x3AE050, 0x4
+
+gUnknown_83AE054:: @ 83AE054
+ .incbin "baserom.gba", 0x3AE054, 0x30
+
+gUnknown_83AE084:: @ 0x83AE084
+ .incbin "baserom.gba", 0x3AE084, 0x58
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index 78267e5ea..3d1de8ac5 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -1,4 +1,5 @@
.section script_data, "aw", %progbits
+ .align 2
gUnknown_81C68EC:: @ 81C68EC
.incbin "baserom.gba", 0x1C68EC, 0x8
diff --git a/data/battle_anim_status_effects.s b/data/battle_anim_status_effects.s
new file mode 100644
index 000000000..6c0bd6e3f
--- /dev/null
+++ b/data/battle_anim_status_effects.s
@@ -0,0 +1,11 @@
+ .section .rodata
+ .align 2
+
+gUnknown_83BF554:: @ 83BF554
+ .incbin "baserom.gba", 0x3BF554, 0x8
+
+gUnknown_83BF55C:: @ 83BF55C
+ .incbin "baserom.gba", 0x3BF55C, 0x18
+
+gUnknown_83BF574:: @ 83BF574
+ .incbin "baserom.gba", 0x3BF574, 0x18
diff --git a/data/berry_pouch.s b/data/berry_pouch.s
new file mode 100644
index 000000000..172443b5e
--- /dev/null
+++ b/data/berry_pouch.s
@@ -0,0 +1,59 @@
+ .section .rodata
+ .align 2
+
+gUnknown_846434C:: @ 846434C
+ .incbin "baserom.gba", 0x46434C, 0xC
+
+gUnknown_8464358:: @ 8464358
+ .incbin "baserom.gba", 0x464358, 0x14
+
+gUnknown_846436C:: @ 846436C
+ .incbin "baserom.gba", 0x46436C, 0x8
+
+gUnknown_8464374:: @ 8464374
+ .incbin "baserom.gba", 0x464374, 0x8
+
+gUnknown_846437C:: @ 846437C
+ .incbin "baserom.gba", 0x46437C, 0x28
+
+gUnknown_84643A4:: @ 84643A4
+ .incbin "baserom.gba", 0x4643A4, 0x4
+
+gUnknown_84643A8:: @ 84643A8
+ .incbin "baserom.gba", 0x4643A8, 0x4
+
+gUnknown_84643AC:: @ 84643AC
+ .incbin "baserom.gba", 0x4643AC, 0x4
+
+gUnknown_84643B0:: @ 84643B0
+ .incbin "baserom.gba", 0x4643B0, 0x4
+
+gUnknown_84643B4:: @ 84643B4
+ .incbin "baserom.gba", 0x4643B4, 0x4
+
+gUnknown_84643B8:: @ 84643B8
+ .incbin "baserom.gba", 0x4643B8, 0x20
+
+gUnknown_84643D8:: @ 84643D8
+ .incbin "baserom.gba", 0x4643D8, 0x18
+
+gUnknown_84643F0:: @ 84643F0
+ .incbin "baserom.gba", 0x4643F0, 0x8
+
+gUnknown_84643F8:: @ 84643F8
+ .incbin "baserom.gba", 0x4643F8, 0x8
+
+gUnknown_8464400:: @ 8464400
+ .incbin "baserom.gba", 0x464400, 0x48
+
+gUnknown_8464448:: @ 8464448
+ .incbin "baserom.gba", 0x464448, 0x60
+
+gUnknown_84644A8:: @ 84644A8
+ .incbin "baserom.gba", 0x4644A8, 0x8
+
+gUnknown_84644B0:: @ 84644B0
+ .incbin "baserom.gba", 0x4644B0, 0x8
+
+gUnknown_84644B8:: @ 84644B8
+ .incbin "baserom.gba", 0x4644B8, 0x32C
diff --git a/data/buy_menu_helpers.s b/data/buy_menu_helpers.s
new file mode 100644
index 000000000..a59b8e069
--- /dev/null
+++ b/data/buy_menu_helpers.s
@@ -0,0 +1,14 @@
+ .section .rodata
+ .align 2
+
+gUnknown_8464804:: @ 8464804
+ .incbin "baserom.gba", 0x464804, 0x38
+
+gUnknown_846483C:: @ 846483C
+ .incbin "baserom.gba", 0x46483C, 0x40
+
+gUnknown_846487C:: @ 846487C
+ .incbin "baserom.gba", 0x46487C, 0x8
+
+gUnknown_8464884:: @ 8464884
+ .incbin "baserom.gba", 0x464884, 0xC
diff --git a/data/connections.s b/data/connections.s
index 15c02ebbe..ec3eb9106 100644
--- a/data/connections.s
+++ b/data/connections.s
@@ -1,501 +1,502 @@
+#include "constants/maps.h"
.include "asm/macros.inc"
.section .rodata
gUnknown_8352754:: @ 8352754
- connection up, 0, 0x313
- connection down, 0, 0x327
+ connection up, 0, MAP_ROUTE1
+ connection down, 0, MAP_ROUTE21_NORTH
-gUnknown_835276C:: @ 835276C
+gMapConnections_PalletTown:: @ 835276C
.4byte 2
.4byte gUnknown_8352754
gUnknown_8352774:: @ 8352774
- connection up, 12, 0x314
- connection down, 12, 0x313
- connection left, 10, 0x329
+ connection up, 12, MAP_ROUTE2
+ connection down, 12, MAP_ROUTE1
+ connection left, 10, MAP_ROUTE22
-gUnknown_8352798:: @ 8352798
+gMapConnections_ViridianCity:: @ 8352798
.4byte 3
.4byte gUnknown_8352774
gUnknown_83527A0:: @ 83527A0
- connection down, 12, 0x314
- connection right, 10, 0x315
+ connection down, 12, MAP_ROUTE2
+ connection right, 10, MAP_ROUTE3
-gUnknown_83527B8:: @ 83527B8
+gMapConnections_PewterCity:: @ 83527B8
.4byte 2
.4byte gUnknown_83527A0
gUnknown_83527C0:: @ 83527C0
- connection up, 12, 0x32B
- connection down, 0, 0x317
- connection left, 10, 0x316
- connection right, 10, 0x31B
+ connection up, 12, MAP_ROUTE24
+ connection down, 0, MAP_ROUTE5
+ connection left, 10, MAP_ROUTE4
+ connection right, 10, MAP_ROUTE9
-gUnknown_83527F0:: @ 83527F0
+gMapConnections_CeruleanCity:: @ 83527F0
.4byte 4
.4byte gUnknown_83527C0
gUnknown_83527F8:: @ 83527F8
- connection up, 0, 0x31C
- connection down, 0, 0x31E
- connection left, 0, 0x31A
+ connection up, 0, MAP_ROUTE10
+ connection down, 0, MAP_ROUTE12
+ connection left, 0, MAP_ROUTE8
-gUnknown_835281C:: @ 835281C
+gMapConnections_LavenderTown:: @ 835281C
.4byte 3
.4byte gUnknown_83527F8
gUnknown_8352824:: @ 8352824
- connection up, 12, 0x318
- connection right, 10, 0x31D
+ connection up, 12, MAP_ROUTE6
+ connection right, 10, MAP_ROUTE11
-gUnknown_835283C:: @ 835283C
+gMapConnections_VermilionCity:: @ 835283C
.4byte 2
.4byte gUnknown_8352824
gUnknown_8352844:: @ 8352844
- connection left, 10, 0x322
- connection right, 10, 0x319
+ connection left, 10, MAP_ROUTE16
+ connection right, 10, MAP_ROUTE7
-gUnknown_835285C:: @ 835285C
+gMapConnections_CeladonCity:: @ 835285C
.4byte 2
.4byte gUnknown_8352844
gUnknown_8352864:: @ 8352864
- connection down, 12, 0x325
- connection left, 10, 0x324
- connection right, 10, 0x321
+ connection down, 12, MAP_ROUTE19
+ connection left, 10, MAP_ROUTE18
+ connection right, 10, MAP_ROUTE15
-gUnknown_8352888:: @ 8352888
+gMapConnections_FuchsiaCity:: @ 8352888
.4byte 3
.4byte gUnknown_8352864
gUnknown_8352890:: @ 8352890
- connection up, 0, 0x328
- connection right, 0, 0x326
+ connection up, 0, MAP_ROUTE21_SOUTH
+ connection right, 0, MAP_ROUTE20
-gUnknown_83528A8:: @ 83528A8
+gMapConnections_CinnabarIsland:: @ 83528A8
.4byte 2
.4byte gUnknown_8352890
gUnknown_83528B0:: @ 83528B0
- connection down, 0, 0x32A
+ connection down, 0, MAP_ROUTE23
-gUnknown_83528BC:: @ 83528BC
+gMapConnections_IndigoPlateau_Exterior:: @ 83528BC
.4byte 1
.4byte gUnknown_83528B0
gUnknown_83528C4:: @ 83528C4
- connection up, 0, 0x317
- connection down, 12, 0x318
- connection left, 10, 0x319
- connection right, 10, 0x31A
+ connection up, 0, MAP_ROUTE5
+ connection down, 12, MAP_ROUTE6
+ connection left, 10, MAP_ROUTE7
+ connection right, 10, MAP_ROUTE8
gUnknown_83528F4:: @ 83528F4
.4byte 4
.4byte gUnknown_83528C4
gUnknown_83528FC:: @ 83528FC
- connection up, 0, 0x317
- connection down, 12, 0x318
- connection left, 10, 0x319
- connection right, 10, 0x31A
+ connection up, 0, MAP_ROUTE5
+ connection down, 12, MAP_ROUTE6
+ connection left, 10, MAP_ROUTE7
+ connection right, 10, MAP_ROUTE8
-gUnknown_835292C:: @ 835292C
+gMapConnections_SaffronCity:: @ 835292C
.4byte 4
.4byte gUnknown_83528FC
gUnknown_8352934:: @ 8352934
- connection down, 0, 0x32E
- connection right, -120, 0x32D
+ connection down, 0, MAP_ONEISLAND_TREASUREBEACH
+ connection right, -120, MAP_ONEISLAND_KINDLEROAD
-gUnknown_835294C:: @ 835294C
+gMapConnections_OneIsland:: @ 835294C
.4byte 2
.4byte gUnknown_8352934
gUnknown_8352954:: @ 8352954
- connection up, 24, 0x32F
+ connection up, 24, MAP_TWOISLAND_CAPEBRINK
-gUnknown_8352960:: @ 8352960
+gMapConnections_TwoIsland:: @ 8352960
.4byte 1
.4byte gUnknown_8352954
gUnknown_8352968:: @ 8352968
- connection down, 0, 0x331
- connection left, 0, 0x330
+ connection down, 0, MAP_THREEISLAND_PORT
+ connection left, 0, MAP_THREEISLAND_BONDBRIDGE
-gUnknown_8352980:: @ 8352980
+gMapConnections_ThreeIsland:: @ 8352980
.4byte 2
.4byte gUnknown_8352968
gUnknown_8352988:: @ 8352988
- connection up, -48, 0x337
- connection right, 0, 0x338
+ connection up, -48, MAP_FIVEISLAND_WATERLABYRINTH
+ connection right, 0, MAP_FIVEISLAND_MEADOW
-gUnknown_83529A0:: @ 83529A0
+gMapConnections_FiveIsland:: @ 83529A0
.4byte 2
.4byte gUnknown_8352988
gUnknown_83529A8:: @ 83529A8
- connection up, -48, 0x33E
- connection down, 0, 0x33F
+ connection up, -48, MAP_SEVENISLAND_TRAINERTOWER
+ connection down, 0, MAP_SEVENISLAND_SEVAULTCANYON_ENTRANCE
-gUnknown_83529C0:: @ 83529C0
+gMapConnections_SevenIsland:: @ 83529C0
.4byte 2
.4byte gUnknown_83529A8
gUnknown_83529C8:: @ 83529C8
- connection right, -40, 0x33C
+ connection right, -40, MAP_SIXISLAND_WATERPATH
-gUnknown_83529D4:: @ 83529D4
+gMapConnections_SixIsland:: @ 83529D4
.4byte 1
.4byte gUnknown_83529C8
gUnknown_83529DC:: @ 83529DC
- connection up, -12, 0x301
- connection down, 0, 0x300
+ connection up, -12, MAP_VIRIDIANCITY
+ connection down, 0, MAP_PALLETTOWN
-gUnknown_83529F4:: @ 83529F4
+gMapConnections_Route1:: @ 83529F4
.4byte 2
.4byte gUnknown_83529DC
gUnknown_83529FC:: @ 83529FC
- connection up, -12, 0x302
- connection down, -12, 0x301
+ connection up, -12, MAP_PEWTERCITY
+ connection down, -12, MAP_VIRIDIANCITY
-gUnknown_8352A14:: @ 8352A14
+gMapConnections_Route2:: @ 8352A14
.4byte 2
.4byte gUnknown_83529FC
gUnknown_8352A1C:: @ 8352A1C
- connection up, 60, 0x316
- connection left, -10, 0x302
+ connection up, 60, MAP_ROUTE4
+ connection left, -10, MAP_PEWTERCITY
-gUnknown_8352A34:: @ 8352A34
+gMapConnections_Route3:: @ 8352A34
.4byte 2
.4byte gUnknown_8352A1C
gUnknown_8352A3C:: @ 8352A3C
- connection down, -60, 0x315
- connection right, -10, 0x303
+ connection down, -60, MAP_ROUTE3
+ connection right, -10, MAP_CERULEANCITY
-gUnknown_8352A54:: @ 8352A54
+gMapConnections_Route4:: @ 8352A54
.4byte 2
.4byte gUnknown_8352A3C
gUnknown_8352A5C:: @ 8352A5C
- connection up, 0, 0x303
- connection down, 0, 0x30B
+ connection up, 0, MAP_CERULEANCITY
+ connection down, 0, MAP_SAFFRONCITY
-gUnknown_8352A74:: @ 8352A74
+gMapConnections_Route5:: @ 8352A74
.4byte 2
.4byte gUnknown_8352A5C
gUnknown_8352A7C:: @ 8352A7C
- connection up, 0, 0x30B
- connection down, -12, 0x305
+ connection up, 0, MAP_SAFFRONCITY
+ connection down, -12, MAP_VERMILIONCITY
-gUnknown_8352A94:: @ 8352A94
+gMapConnections_Route6:: @ 8352A94
.4byte 2
.4byte gUnknown_8352A7C
gUnknown_8352A9C:: @ 8352A9C
- connection left, -10, 0x306
- connection right, -10, 0x30B
+ connection left, -10, MAP_CELADONCITY
+ connection right, -10, MAP_SAFFRONCITY
-gUnknown_8352AB4:: @ 8352AB4
+gMapConnections_Route7:: @ 8352AB4
.4byte 2
.4byte gUnknown_8352A9C
gUnknown_8352ABC:: @ 8352ABC
- connection left, -10, 0x30B
- connection right, 0, 0x304
+ connection left, -10, MAP_SAFFRONCITY
+ connection right, 0, MAP_LAVENDERTOWN
-gUnknown_8352AD4:: @ 8352AD4
+gMapConnections_Route8:: @ 8352AD4
.4byte 2
.4byte gUnknown_8352ABC
gUnknown_8352ADC:: @ 8352ADC
- connection left, -10, 0x303
- connection right, 0, 0x31C
+ connection left, -10, MAP_CERULEANCITY
+ connection right, 0, MAP_ROUTE10
-gUnknown_8352AF4:: @ 8352AF4
+gMapConnections_Route9:: @ 8352AF4
.4byte 2
.4byte gUnknown_8352ADC
gUnknown_8352AFC:: @ 8352AFC
- connection down, 0, 0x304
- connection left, 0, 0x31B
+ connection down, 0, MAP_LAVENDERTOWN
+ connection left, 0, MAP_ROUTE9
-gUnknown_8352B14:: @ 8352B14
+gMapConnections_Route10:: @ 8352B14
.4byte 2
.4byte gUnknown_8352AFC
gUnknown_8352B1C:: @ 8352B1C
- connection left, -10, 0x305
- connection right, -60, 0x31E
+ connection left, -10, MAP_VERMILIONCITY
+ connection right, -60, MAP_ROUTE12
-gUnknown_8352B34:: @ 8352B34
+gMapConnections_Route11:: @ 8352B34
.4byte 2
.4byte gUnknown_8352B1C
gUnknown_8352B3C:: @ 8352B3C
- connection up, 0, 0x304
- connection down, -48, 0x31F
- connection left, 60, 0x31D
+ connection up, 0, MAP_LAVENDERTOWN
+ connection down, -48, MAP_ROUTE13
+ connection left, 60, MAP_ROUTE11
-gUnknown_8352B60:: @ 8352B60
+gMapConnections_Route12:: @ 8352B60
.4byte 3
.4byte gUnknown_8352B3C
gUnknown_8352B68:: @ 8352B68
- connection up, 48, 0x31E
- connection left, 0, 0x320
+ connection up, 48, MAP_ROUTE12
+ connection left, 0, MAP_ROUTE14
-gUnknown_8352B80:: @ 8352B80
+gMapConnections_Route13:: @ 8352B80
.4byte 2
.4byte gUnknown_8352B68
gUnknown_8352B88:: @ 8352B88
- connection left, 40, 0x321
- connection right, 0, 0x31F
+ connection left, 40, MAP_ROUTE15
+ connection right, 0, MAP_ROUTE13
-gUnknown_8352BA0:: @ 8352BA0
+gMapConnections_Route14:: @ 8352BA0
.4byte 2
.4byte gUnknown_8352B88
gUnknown_8352BA8:: @ 8352BA8
- connection left, -10, 0x307
- connection right, -40, 0x320
+ connection left, -10, MAP_FUCHSIACITY
+ connection right, -40, MAP_ROUTE14
-gUnknown_8352BC0:: @ 8352BC0
+gMapConnections_Route15:: @ 8352BC0
.4byte 2
.4byte gUnknown_8352BA8
gUnknown_8352BC8:: @ 8352BC8
- connection down, 0, 0x323
- connection right, -10, 0x306
+ connection down, 0, MAP_ROUTE17
+ connection right, -10, MAP_CELADONCITY
-gUnknown_8352BE0:: @ 8352BE0
+gMapConnections_Route16:: @ 8352BE0
.4byte 2
.4byte gUnknown_8352BC8
gUnknown_8352BE8:: @ 8352BE8
- connection up, 0, 0x322
- connection down, 0, 0x324
+ connection up, 0, MAP_ROUTE16
+ connection down, 0, MAP_ROUTE18
-gUnknown_8352C00:: @ 8352C00
+gMapConnections_Route17:: @ 8352C00
.4byte 2
.4byte gUnknown_8352BE8
gUnknown_8352C08:: @ 8352C08
- connection up, 0, 0x323
- connection right, -10, 0x307
+ connection up, 0, MAP_ROUTE17
+ connection right, -10, MAP_FUCHSIACITY
-gUnknown_8352C20:: @ 8352C20
+gMapConnections_Route18:: @ 8352C20
.4byte 2
.4byte gUnknown_8352C08
gUnknown_8352C28:: @ 8352C28
- connection up, -12, 0x307
- connection left, 40, 0x326
+ connection up, -12, MAP_FUCHSIACITY
+ connection left, 40, MAP_ROUTE20
-gUnknown_8352C40:: @ 8352C40
+gMapConnections_Route19:: @ 8352C40
.4byte 2
.4byte gUnknown_8352C28
gUnknown_8352C48:: @ 8352C48
- connection left, 0, 0x308
- connection right, -40, 0x325
+ connection left, 0, MAP_CINNABARISLAND
+ connection right, -40, MAP_ROUTE19
-gUnknown_8352C60:: @ 8352C60
+gMapConnections_Route20:: @ 8352C60
.4byte 2
.4byte gUnknown_8352C48
gUnknown_8352C68:: @ 8352C68
- connection up, 0, 0x300
- connection down, 0, 0x328
+ connection up, 0, MAP_PALLETTOWN
+ connection down, 0, MAP_ROUTE21_SOUTH
-gUnknown_8352C80:: @ 8352C80
+gMapConnections_Route21_North:: @ 8352C80
.4byte 2
.4byte gUnknown_8352C68
gUnknown_8352C88:: @ 8352C88
- connection up, 0, 0x327
- connection down, 0, 0x308
+ connection up, 0, MAP_ROUTE21_NORTH
+ connection down, 0, MAP_CINNABARISLAND
-gUnknown_8352CA0:: @ 8352CA0
+gMapConnections_Route21_South:: @ 8352CA0
.4byte 2
.4byte gUnknown_8352C88
gUnknown_8352CA8:: @ 8352CA8
- connection up, 0, 0x32A
- connection right, -10, 0x301
+ connection up, 0, MAP_ROUTE23
+ connection right, -10, MAP_VIRIDIANCITY
-gUnknown_8352CC0:: @ 8352CC0
+gMapConnections_Route22:: @ 8352CC0
.4byte 2
.4byte gUnknown_8352CA8
gUnknown_8352CC8:: @ 8352CC8
- connection up, 0, 0x309
- connection down, 0, 0x329
+ connection up, 0, MAP_INDIGOPLATEAU_EXTERIOR
+ connection down, 0, MAP_ROUTE22
-gUnknown_8352CE0:: @ 8352CE0
+gMapConnections_Route23:: @ 8352CE0
.4byte 2
.4byte gUnknown_8352CC8
gUnknown_8352CE8:: @ 8352CE8
- connection down, -12, 0x303
- connection right, 0, 0x32C
+ connection down, -12, MAP_CERULEANCITY
+ connection right, 0, MAP_ROUTE25
-gUnknown_8352D00:: @ 8352D00
+gMapConnections_Route24:: @ 8352D00
.4byte 2
.4byte gUnknown_8352CE8
gUnknown_8352D08:: @ 8352D08
- connection left, 0, 0x32B
+ connection left, 0, MAP_ROUTE24
-gUnknown_8352D14:: @ 8352D14
+gMapConnections_Route25:: @ 8352D14
.4byte 1
.4byte gUnknown_8352D08
gUnknown_8352D1C:: @ 8352D1C
- connection left, 120, 0x30C
+ connection left, 120, MAP_ONEISLAND
-gUnknown_8352D28:: @ 8352D28
+gMapConnections_OneIsland_KindleRoad:: @ 8352D28
.4byte 1
.4byte gUnknown_8352D1C
gUnknown_8352D30:: @ 8352D30
- connection up, 0, 0x30C
+ connection up, 0, MAP_ONEISLAND
-gUnknown_8352D3C:: @ 8352D3C
+gMapConnections_OneIsland_TreasureBeach:: @ 8352D3C
.4byte 1
.4byte gUnknown_8352D30
gUnknown_8352D44:: @ 8352D44
- connection down, -24, 0x30D
+ connection down, -24, MAP_TWOISLAND
-gUnknown_8352D50:: @ 8352D50
+gMapConnections_TwoIsland_CapeBrink:: @ 8352D50
.4byte 1
.4byte gUnknown_8352D44
gUnknown_8352D58:: @ 8352D58
- connection right, 0, 0x30E
+ connection right, 0, MAP_THREEISLAND
-gUnknown_8352D64:: @ 8352D64
+gMapConnections_ThreeIsland_BondBridge:: @ 8352D64
.4byte 1
.4byte gUnknown_8352D58
gUnknown_8352D6C:: @ 8352D6C
- connection up, 0, 0x30E
+ connection up, 0, MAP_THREEISLAND
-gUnknown_8352D78:: @ 8352D78
+gMapConnections_ThreeIsland_Port:: @ 8352D78
.4byte 1
.4byte gUnknown_8352D6C
gUnknown_8352D80:: @ 8352D80
- connection up, 0, 0x30E
+ connection up, 0, MAP_THREEISLAND
-gUnknown_8352D8C:: @ 8352D8C
+gMapConnections_UnknownMap_03_50:: @ 8352D8C
.4byte 1
.4byte gUnknown_8352D80
gUnknown_8352D94:: @ 8352D94
- connection up, 0, 0x30E
+ connection up, 0, MAP_THREEISLAND
-gUnknown_8352DA0:: @ 8352DA0
+gMapConnections_UnknownMap_03_51:: @ 8352DA0
.4byte 1
.4byte gUnknown_8352D94
gUnknown_8352DA8:: @ 8352DA8
- connection down, -48, 0x337
+ connection down, -48, MAP_FIVEISLAND_WATERLABYRINTH
-gUnknown_8352DB4:: @ 8352DB4
+gMapConnections_FiveIsland_ResortGorgeous:: @ 8352DB4
.4byte 1
.4byte gUnknown_8352DA8
gUnknown_8352DBC:: @ 8352DBC
- connection up, 48, 0x336
- connection down, 48, 0x310
+ connection up, 48, MAP_FIVEISLAND_RESORTGORGEOUS
+ connection down, 48, MAP_FIVEISLAND
-gUnknown_8352DD4:: @ 8352DD4
+gMapConnections_FiveIsland_WaterLabyrinth:: @ 8352DD4
.4byte 2
.4byte gUnknown_8352DBC
gUnknown_8352DDC:: @ 8352DDC
- connection left, 0, 0x310
- connection right, 20, 0x339
+ connection left, 0, MAP_FIVEISLAND
+ connection right, 20, MAP_FIVEISLAND_MEMORIALPILLAR
-gUnknown_8352DF4:: @ 8352DF4
+gMapConnections_FiveIsland_Meadow:: @ 8352DF4
.4byte 2
.4byte gUnknown_8352DDC
gUnknown_8352DFC:: @ 8352DFC
- connection left, -20, 0x338
+ connection left, -20, MAP_FIVEISLAND_MEADOW
-gUnknown_8352E08:: @ 8352E08
+gMapConnections_FiveIsland_MemorialPillar:: @ 8352E08
.4byte 1
.4byte gUnknown_8352DFC
gUnknown_8352E10:: @ 8352E10
- connection down, 0, 0x33B
+ connection down, 0, MAP_SIXISLAND_GREENPATH
-gUnknown_8352E1C:: @ 8352E1C
+gMapConnections_SixIsland_OutcastIsland:: @ 8352E1C
.4byte 1
.4byte gUnknown_8352E10
gUnknown_8352E24:: @ 8352E24
- connection up, 0, 0x33A
- connection right, 0, 0x33C
+ connection up, 0, MAP_SIXISLAND_OUTCASTISLAND
+ connection right, 0, MAP_SIXISLAND_WATERPATH
-gUnknown_8352E3C:: @ 8352E3C
+gMapConnections_SixIsland_GreenPath:: @ 8352E3C
.4byte 2
.4byte gUnknown_8352E24
gUnknown_8352E44:: @ 8352E44
- connection left, 0, 0x33B
- connection left, 40, 0x312
- connection left, 80, 0x33D
+ connection left, 0, MAP_SIXISLAND_GREENPATH
+ connection left, 40, MAP_SIXISLAND
+ connection left, 80, MAP_SIXISLAND_RUINVALLEY
-gUnknown_8352E68:: @ 8352E68
+gMapConnections_SixIsland_WaterPath:: @ 8352E68
.4byte 3
.4byte gUnknown_8352E44
gUnknown_8352E70:: @ 8352E70
- connection right, -80, 0x33C
+ connection right, -80, MAP_SIXISLAND_WATERPATH
-gUnknown_8352E7C:: @ 8352E7C
+gMapConnections_SixIsland_RuinValley:: @ 8352E7C
.4byte 1
.4byte gUnknown_8352E70
gUnknown_8352E84:: @ 8352E84
- connection down, 48, 0x311
+ connection down, 48, MAP_SEVENISLAND
-gUnknown_8352E90:: @ 8352E90
+gMapConnections_SevenIsland_TrainerTower:: @ 8352E90
.4byte 1
.4byte gUnknown_8352E84
gUnknown_8352E98:: @ 8352E98
- connection up, 0, 0x311
- connection right, 20, 0x340
+ connection up, 0, MAP_SEVENISLAND
+ connection right, 20, MAP_SEVENISLAND_SEVAULTCANYON
-gUnknown_8352EB0:: @ 8352EB0
+gMapConnections_SevenIsland_SevaultCanyon_Entrance:: @ 8352EB0
.4byte 2
.4byte gUnknown_8352E98
gUnknown_8352EB8:: @ 8352EB8
- connection down, -48, 0x341
- connection left, -20, 0x33F
+ connection down, -48, MAP_SEVENISLAND_TANOBYRUINS
+ connection left, -20, MAP_SEVENISLAND_SEVAULTCANYON_ENTRANCE
-gUnknown_8352ED0:: @ 8352ED0
+gMapConnections_SevenIsland_SevaultCanyon:: @ 8352ED0
.4byte 2
.4byte gUnknown_8352EB8
gUnknown_8352ED8:: @ 8352ED8
- connection up, 48, 0x340
+ connection up, 48, MAP_SEVENISLAND_SEVAULTCANYON
-gUnknown_8352EE4:: @ 8352EE4
+gMapConnections_SevenIsland_TanobyRuins:: @ 8352EE4
.4byte 1
.4byte gUnknown_8352ED8
diff --git a/data/data.s b/data/data.s
index e17c041a2..2d3806e4a 100644
--- a/data/data.s
+++ b/data/data.s
@@ -1,5 +1,8 @@
#include "constants/region_map.h"
#include "constants/trainer_classes.h"
+#include "constants/songs.h"
+#include "constants/region_map.h"
+ .set NULL, 0
.section .rodata
@@ -129,10 +132,7 @@ gTrainers:: @ 823EAD8
.incbin "baserom.gba", 0x23EAC8, 0x7418
gSpeciesNames:: @ 8245EE0
- .incbin "baserom.gba", 0x245EE0, 0xD05
-
-gUnknown_8246BE5:: @ 8246BE5
- .incbin "baserom.gba", 0x246BE5, 0x4AF
+ .include "data/text/species_names.inc"
gMoveNames:: @ 8247094
.incbin "baserom.gba", 0x247094, 0xF97
@@ -547,7 +547,7 @@ gUnknown_825E032:: @ 825E032
gUnknown_825E05C:: @ 825E05C
.incbin "baserom.gba", 0x25E05C, 0x18
-gUnknown_825E074:: @ 825E074
+gSineTable:: @ 825E074
.incbin "baserom.gba", 0x25E074, 0x280
gUnknown_825E2F4:: @ 825E2F4
@@ -948,10 +948,1051 @@ gUnknown_826D374:: @ 826D374
.4byte sub_8058754
gUnknown_826D37C:: @ 826D37C
- .incbin "baserom.gba", 0x26D37C, 0x78250
+ .incbin "baserom.gba", 0x26D37C, 0x67E84
+
+gMapData_PalletTown_PlayersHouse_1F:: @ 82D5200
+ .incbin "baserom.gba", 0x2D5200, 0xFC
+
+gMapData_PalletTown_PlayersHouse_2F:: @ 82D52FC
+ .incbin "baserom.gba", 0x2D52FC, 0x128
+
+gMapData_PalletTown_GarysHouse:: @ 82D5424
+ .incbin "baserom.gba", 0x2D5424, 0x244
+
+gMapData_PalletTown_ProfessorOaksLab:: @ 82D5668
+ .incbin "baserom.gba", 0x2D5668, 0xEC
+
+gMapData_CeruleanCity_House3:: @ 82D5754
+gMapData_CeruleanCity_House4:: @ 82D5754
+gMapData_VermilionCity_House1:: @ 82D5754
+gMapData_VermilionCity_House2:: @ 82D5754
+gMapData_VermilionCity_House3:: @ 82D5754
+gMapData_FuchsiaCity_House1:: @ 82D5754
+gMapData_FuchsiaCity_House3:: @ 82D5754
+gMapData_Route16_House:: @ 82D5754
+ .incbin "baserom.gba", 0x2D5754, 0xEC
+
+gMapData_PewterCity_House1:: @ 82D5840
+gMapData_PewterCity_House2:: @ 82D5840
+gMapData_Route2_House:: @ 82D5840
+gMapData_UnknownMap_18_01:: @ 82D5840
+gMapData_UnusedHouse_27_00:: @ 82D5840
+gMapData_UnusedHouse_29_00:: @ 82D5840
+ .incbin "baserom.gba", 0x2D5840, 0x150
+
+gMapData_ViridianCity_PokemonCenter_1F:: @ 82D5990
+gMapData_PewterCity_PokemonCenter_1F:: @ 82D5990
+gMapData_CeruleanCity_PokemonCenter_1F:: @ 82D5990
+gMapData_LavenderTown_PokemonCenter_1F:: @ 82D5990
+gMapData_VermilionCity_PokemonCenter_1F:: @ 82D5990
+gMapData_CeladonCity_PokemonCenter_1F:: @ 82D5990
+gMapData_FuchsiaCity_PokemonCenter_1F:: @ 82D5990
+gMapData_CinnabarIsland_PokemonCenter_1F:: @ 82D5990
+gMapData_SaffronCity_PokemonCenter_1F:: @ 82D5990
+gMapData_Route4_PokemonCenter_1F:: @ 82D5990
+gMapData_Route10_PokemonCenter_1F:: @ 82D5990
+gMapData_SevenIsland_PokemonCenter_1F:: @ 82D5990
+gMapData_TwoIsland_PokemonCenter_1F:: @ 82D5990
+gMapData_ThreeIsland_PokemonCenter_1F:: @ 82D5990
+gMapData_FourIsland_PokemonCenter_1F:: @ 82D5990
+gMapData_FiveIsland_PokemonCenter_1F:: @ 82D5990
+gMapData_SixIsland_PokemonCenter_1F:: @ 82D5990
+ .incbin "baserom.gba", 0x2D5990, 0x150
+
+gMapData_ViridianCity_PokemonCenter_2F:: @ 82D5AE0
+gMapData_PewterCity_PokemonCenter_2F:: @ 82D5AE0
+gMapData_CeruleanCity_PokemonCenter_2F:: @ 82D5AE0
+gMapData_LavenderTown_PokemonCenter_2F:: @ 82D5AE0
+gMapData_VermilionCity_PokemonCenter_2F:: @ 82D5AE0
+gMapData_CeladonCity_PokemonCenter_2F:: @ 82D5AE0
+gMapData_FuchsiaCity_PokemonCenter_2F:: @ 82D5AE0
+gMapData_CinnabarIsland_PokemonCenter_2F:: @ 82D5AE0
+gMapData_IndigoPlateau_PokemonCenter_2F:: @ 82D5AE0
+gMapData_SaffronCity_PokemonCenter_2F:: @ 82D5AE0
+gMapData_Route4_PokemonCenter_2F:: @ 82D5AE0
+gMapData_Route10_PokemonCenter_2F:: @ 82D5AE0
+gMapData_SevenIsland_PokemonCenter_2F:: @ 82D5AE0
+gMapData_TwoIsland_PokemonCenter_2F:: @ 82D5AE0
+gMapData_ThreeIsland_PokemonCenter_2F:: @ 82D5AE0
+gMapData_FourIsland_PokemonCenter_2F:: @ 82D5AE0
+gMapData_FiveIsland_PokemonCenter_2F:: @ 82D5AE0
+gMapData_SixIsland_PokemonCenter_2F:: @ 82D5AE0
+ .incbin "baserom.gba", 0x2D5AE0, 0xEC
+
+gMapData_ViridianCity_Mart:: @ 82D5BCC
+gMapData_PewterCity_Mart:: @ 82D5BCC
+gMapData_CeruleanCity_Mart:: @ 82D5BCC
+gMapData_LavenderTown_Mart:: @ 82D5BCC
+gMapData_VermilionCity_Mart:: @ 82D5BCC
+gMapData_FuchsiaCity_Mart:: @ 82D5BCC
+gMapData_CinnabarIsland_Mart:: @ 82D5BCC
+gMapData_SaffronCity_Mart:: @ 82D5BCC
+gMapData_SevenIsland_Mart:: @ 82D5BCC
+gMapData_ThreeIsland_Mart:: @ 82D5BCC
+gMapData_FourIsland_Mart:: @ 82D5BCC
+gMapData_SixIsland_Mart:: @ 82D5BCC
+ .incbin "baserom.gba", 0x2D5BCC, 0xEC
+
+gMapData_OneIsland_House1:: @ 82D5CB8
+gMapData_OneIsland_House2:: @ 82D5CB8
+gMapData_TwoIsland_House:: @ 82D5CB8
+gMapData_ThreeIsland_House2:: @ 82D5CB8
+gMapData_ThreeIsland_House3:: @ 82D5CB8
+gMapData_ThreeIsland_House4:: @ 82D5CB8
+gMapData_ThreeIsland_House5:: @ 82D5CB8
+gMapData_FourIsland_House1:: @ 82D5CB8
+gMapData_FourIsland_House2:: @ 82D5CB8
+gMapData_FiveIsland_House1:: @ 82D5CB8
+gMapData_FiveIsland_House2:: @ 82D5CB8
+gMapData_SixIsland_House:: @ 82D5CB8
+gMapData_TwoIsland_CapeBrink_House:: @ 82D5CB8
+gMapData_SixIsland_WaterPath_House2:: @ 82D5CB8
+gMapData_SevenIsland_SevaultCanyon_House:: @ 82D5CB8
+ .incbin "baserom.gba", 0x2D5CB8, 0x2CC
+
+gMapData_CeruleanCity_Gym:: @ 82D5F84
+ .incbin "baserom.gba", 0x2D5F84, 0xEC
+
+gMapData_Route12_FishingHouse:: @ 82D6070
+gMapData_UnusedHouse_31_05:: @ 82D6070
+gMapData_SixIsland_WaterPath_House1:: @ 82D6070
+ .incbin "baserom.gba", 0x2D6070, 0x300
+
+gMapData_CeladonCity_Gym:: @ 82D6370
+ .incbin "baserom.gba", 0x2D6370, 0x20C
+
+gMapData_FiveIsland_ResortGorgeous_House:: @ 82D657C
+ .incbin "baserom.gba", 0x2D657C, 0x488
+
+gMapData_FuchsiaCity_Gym:: @ 82D6A04
+ .incbin "baserom.gba", 0x2D6A04, 0xEC
+
+gMapData_LavenderTown_House1:: @ 82D6AF0
+gMapData_LavenderTown_House2:: @ 82D6AF0
+gMapData_CeladonCity_House1:: @ 82D6AF0
+gMapData_SaffronCity_House2:: @ 82D6AF0
+gMapData_SaffronCity_House3:: @ 82D6AF0
+ .incbin "baserom.gba", 0x2D6AF0, 0x338
+
+gMapData_VermilionCity_Gym:: @ 82D6E28
+ .incbin "baserom.gba", 0x2D6E28, 0x100
+
+gMapData_CeruleanCity_BikeShop:: @ 82D6F28
+ .incbin "baserom.gba", 0x2D6F28, 0x240
+
+gMapData_CeladonCity_GameCorner:: @ 82D7168
+ .incbin "baserom.gba", 0x2D7168, 0x1C4
+
+gMapData_PewterCity_Gym:: @ 82D732C
+ .incbin "baserom.gba", 0x2D732C, 0xEC
+
+gMapData_FourIsland_LoreleisHouse:: @ 82D7418
+ .incbin "baserom.gba", 0x2D7418, 0xEC
+
+gMapData_ThreeIsland_House1:: @ 82D7504
+ .incbin "baserom.gba", 0x2D7504, 0x740
+
+gMapData_SaffronCity_Gym:: @ 82D7C44
+ .incbin "baserom.gba", 0x2D7C44, 0x684
+
+gMapData_CinnabarIsland_Gym:: @ 82D82C8
+ .incbin "baserom.gba", 0x2D82C8, 0x3E4
+
+gMapData_ViridianCity_Gym:: @ 82D86AC
+ .incbin "baserom.gba", 0x2D86AC, 0x33C
+
+gMapData_UnknownMap_00_00:: @ 82D89E8
+ .incbin "baserom.gba", 0x2D89E8, 0xFC
+
+gMapData_UnknownMap_00_01:: @ 82D8AE4
+ .incbin "baserom.gba", 0x2D8AE4, 0x1B4
+
+gMapData_UnknownMap_00_02:: @ 82D8C98
+ .incbin "baserom.gba", 0x2D8C98, 0x120
+
+gMapData_UnknownMap_00_03:: @ 82D8DB8
+ .incbin "baserom.gba", 0x2D8DB8, 0xC8
+
+gMapData_FuchsiaCity_SafariZone_Entrance:: @ 82D8E80
+ .incbin "baserom.gba", 0x2D8E80, 0x4640
+
+gMapData_PalletTown:: @ 82DD4C0
+ .incbin "baserom.gba", 0x2DD4C0, 0xF24
+
+gMapData_ViridianCity:: @ 82DE3E4
+ .incbin "baserom.gba", 0x2DE3E4, 0xF24
+
+gMapData_PewterCity:: @ 82DF308
+ .incbin "baserom.gba", 0x2DF308, 0xF24
+
+gMapData_CeruleanCity:: @ 82E022C
+ .incbin "baserom.gba", 0x2E022C, 0x3E4
+
+gMapData_LavenderTown:: @ 82E0610
+ .incbin "baserom.gba", 0x2E0610, 0xF24
+
+gMapData_VermilionCity:: @ 82E1534
+ .incbin "baserom.gba", 0x2E1534, 0x12E4
+gMapData_CeladonCity:: @ 82E2818
+ .incbin "baserom.gba", 0x2E2818, 0xF24
+
+gMapData_FuchsiaCity:: @ 82E373C
+ .incbin "baserom.gba", 0x2E373C, 0x3E4
+
+gMapData_CinnabarIsland:: @ 82E3B20
+ .incbin "baserom.gba", 0x2E3B20, 0x3E4
+
+gMapData_IndigoPlateau_Exterior:: @ 82E3F04
+ .incbin "baserom.gba", 0x2E3F04, 0xF24
+
+gMapData_SaffronCity:: @ 82E4E28
+ .incbin "baserom.gba", 0x2E4E28, 0x7A4
+
+gMapData_Route1:: @ 82E55CC
gUnknown_82E55CC:: @ 82E55CC
- .incbin "baserom.gba", 0x2E55CC, 0x695C0
+ .incbin "baserom.gba", 0x2E55CC, 0xF24
+
+gMapData_Route2:: @ 82E64F0
+ .incbin "baserom.gba", 0x2E64F0, 0xD44
+
+gMapData_Route3:: @ 82E7234
+ .incbin "baserom.gba", 0x2E7234, 0x1104
+
+gMapData_Route4:: @ 82E8338
+ .incbin "baserom.gba", 0x2E8338, 0xF24
+
+gMapData_Route5:: @ 82E925C
+ .incbin "baserom.gba", 0x2E925C, 0x7A4
+
+gMapData_Route6:: @ 82E9A00
+ .incbin "baserom.gba", 0x2E9A00, 0x3E4
+
+gMapData_Route7:: @ 82E9DE4
+ .incbin "baserom.gba", 0x2E9DE4, 0xB64
+
+gMapData_Route8:: @ 82EA948
+ .incbin "baserom.gba", 0x2EA948, 0xB64
+
+gMapData_Route9:: @ 82EB4AC
+ .incbin "baserom.gba", 0x2EB4AC, 0xF24
+
+gMapData_Route10:: @ 82EC3D0
+ .incbin "baserom.gba", 0x2EC3D0, 0xB64
+
+gMapData_Route11:: @ 82ECF34
+ .incbin "baserom.gba", 0x2ECF34, 0x16A4
+
+gMapData_Route12:: @ 82EE5D8
+ .incbin "baserom.gba", 0x2EE5D8, 0xB64
+
+gMapData_Route13:: @ 82EF13C
+ .incbin "baserom.gba", 0x2EF13C, 0xB64
+
+gMapData_Route14:: @ 82EFCA0
+ .incbin "baserom.gba", 0x2EFCA0, 0xB64
+
+gMapData_Route15:: @ 82F0804
+ .incbin "baserom.gba", 0x2F0804, 0x7A4
+
+gMapData_Route16:: @ 82F0FA8
+ .incbin "baserom.gba", 0x2F0FA8, 0x1E24
+
+gMapData_Route17:: @ 82F2DCC
+ .incbin "baserom.gba", 0x2F2DCC, 0x984
+
+gMapData_Route18:: @ 82F3750
+ .incbin "baserom.gba", 0x2F3750, 0xB64
+
+gMapData_Route19:: @ 82F42B4
+ .incbin "baserom.gba", 0x2F42B4, 0x12E4
+
+gMapData_Route20:: @ 82F5598
+ .incbin "baserom.gba", 0x2F5598, 0x984
+
+gMapData_Route21_North:: @ 82F5F1C
+ .incbin "baserom.gba", 0x2F5F1C, 0x924
+
+gMapData_Route22:: @ 82F6840
+ .incbin "baserom.gba", 0x2F6840, 0x1E24
+
+gMapData_Route23:: @ 82F8664
+ .incbin "baserom.gba", 0x2F8664, 0x7A4
+
+gMapData_Route24:: @ 82F8E08
+ .incbin "baserom.gba", 0x2F8E08, 0xB64
+
+gMapData_Route25:: @ 82F996C
+ .incbin "baserom.gba", 0x2F996C, 0xF24
+
+gMapData_MtMoon_1F:: @ 82FA890
+ .incbin "baserom.gba", 0x2FA890, 0xF74
+
+gMapData_MtMoon_B1F:: @ 82FB804
+ .incbin "baserom.gba", 0x2FB804, 0xF24
+
+gMapData_MtMoon_B2F:: @ 82FC728
+ .incbin "baserom.gba", 0x2FC728, 0x1D44
+
+gMapData_ViridianForest:: @ 82FE46C
+ .incbin "baserom.gba", 0x2FE46C, 0x11A4
+
+gMapData_SSAnne_Exterior:: @ 82FF610
+ .incbin "baserom.gba", 0x2FF610, 0x53C
+
+gMapData_SSAnne_1F_Corridor:: @ 82FFB4C
+ .incbin "baserom.gba", 0x2FFB4C, 0x464
+
+gMapData_SSAnne_2F_Corridor:: @ 82FFFB0
+ .incbin "baserom.gba", 0x2FFFB0, 0x158
+
+gMapData_SSAnne_3F_Corridor:: @ 8300108
+ .incbin "baserom.gba", 0x300108, 0x168
+
+gMapData_SSAnne_B1F_Corridor:: @ 8300270
+ .incbin "baserom.gba", 0x300270, 0x3B4
+
+gMapData_SSAnne_Deck:: @ 8300624
+ .incbin "baserom.gba", 0x300624, 0x3544
+
+gMapData_DiglettsCave_B1F:: @ 8303B68
+ .incbin "baserom.gba", 0x303B68, 0x864
+
+gMapData_VictoryRoad_1F:: @ 83043CC
+ .incbin "baserom.gba", 0x3043CC, 0x8E8
+
+gMapData_VictoryRoad_2F:: @ 8304CB4
+ .incbin "baserom.gba", 0x304CB4, 0x7E0
+
+gMapData_VictoryRoad_3F:: @ 8305494
+ .incbin "baserom.gba", 0x305494, 0x794
+
+gMapData_RocketHideout_B1F:: @ 8305C28
+ .incbin "baserom.gba", 0x305C28, 0x5A4
+
+gMapData_RocketHideout_B2F:: @ 83061CC
+ .incbin "baserom.gba", 0x3061CC, 0x4C8
+
+gMapData_RocketHideout_B3F:: @ 8306694
+ .incbin "baserom.gba", 0x306694, 0x504
+
+gMapData_RocketHideout_B4F:: @ 8306B98
+ .incbin "baserom.gba", 0x306B98, 0x654
+
+gMapData_SilphCo_1F:: @ 83071EC
+ .incbin "baserom.gba", 0x3071EC, 0x654
+
+gMapData_SilphCo_2F:: @ 8307840
+ .incbin "baserom.gba", 0x307840, 0x654
+
+gMapData_SilphCo_3F:: @ 8307E94
+ .incbin "baserom.gba", 0x307E94, 0x654
+
+gMapData_SilphCo_4F:: @ 83084E8
+ .incbin "baserom.gba", 0x3084E8, 0x654
+
+gMapData_SilphCo_5F:: @ 8308B3C
+ .incbin "baserom.gba", 0x308B3C, 0x4C0
+
+gMapData_SilphCo_6F:: @ 8308FFC
+ .incbin "baserom.gba", 0x308FFC, 0x4C0
+
+gMapData_SilphCo_7F:: @ 83094BC
+ .incbin "baserom.gba", 0x3094BC, 0x4C0
+
+gMapData_SilphCo_8F:: @ 830997C
+ .incbin "baserom.gba", 0x30997C, 0x4C0
+
+gMapData_SilphCo_9F:: @ 8309E3C
+ .incbin "baserom.gba", 0x309E3C, 0x2AC
+
+gMapData_SilphCo_10F:: @ 830A0E8
+ .incbin "baserom.gba", 0x30A0E8, 0x2CC
+
+gMapData_SilphCo_11F:: @ 830A3B4
+ .incbin "baserom.gba", 0x30A3B4, 0xA88
+
+gMapData_PokemonMansion_1F:: @ 830AE3C
+ .incbin "baserom.gba", 0x30AE3C, 0xB6C
+
+gMapData_PokemonMansion_2F:: @ 830B9A8
+ .incbin "baserom.gba", 0x30B9A8, 0xA88
+
+gMapData_PokemonMansion_3F:: @ 830C430
+ .incbin "baserom.gba", 0x30C430, 0xA88
+
+gMapData_PokemonMansion_B1F:: @ 830CEB8
+ .incbin "baserom.gba", 0x30CEB8, 0xE80
+
+gMapData_SafariZone_Center:: @ 830DD38
+ .incbin "baserom.gba", 0x30DD38, 0xEEC
+
+gMapData_SafariZone_East:: @ 830EC24
+ .incbin "baserom.gba", 0x30EC24, 0x11F8
+
+gMapData_SafariZone_North:: @ 830FE1C
+ .incbin "baserom.gba", 0x30FE1C, 0xDA8
+
+gMapData_SafariZone_West:: @ 8310BC4
+ .incbin "baserom.gba", 0x310BC4, 0x754
+
+gMapData_CeruleanCave_1F:: @ 8311318
+ .incbin "baserom.gba", 0x311318, 0x754
+
+gMapData_CeruleanCave_2F:: @ 8311A6C
+ .incbin "baserom.gba", 0x311A6C, 0x754
+
+gMapData_CeruleanCave_B1F:: @ 83121C0
+ .incbin "baserom.gba", 0x3121C0, 0xF24
+
+gMapData_RockTunnel_1F:: @ 83130E4
+ .incbin "baserom.gba", 0x3130E4, 0xF24
+
+gMapData_RockTunnel_B1F:: @ 8314008
+ .incbin "baserom.gba", 0x314008, 0x744
+
+gMapData_SeafoamIslands_1F:: @ 831474C
+ .incbin "baserom.gba", 0x31474C, 0x6F8
+
+gMapData_SeafoamIslands_B1F:: @ 8314E44
+ .incbin "baserom.gba", 0x314E44, 0x744
+
+gMapData_SeafoamIslands_B2F:: @ 8315588
+ .incbin "baserom.gba", 0x315588, 0x744
+
+gMapData_SeafoamIslands_B3F:: @ 8315CCC
+ .incbin "baserom.gba", 0x315CCC, 0x744
+
+gMapData_SeafoamIslands_B4F:: @ 8316410
+ .incbin "baserom.gba", 0x316410, 0x3E4
+
+gMapData_PokemonTower_1F:: @ 83167F4
+ .incbin "baserom.gba", 0x3167F4, 0x3E4
+
+gMapData_PokemonTower_2F:: @ 8316BD8
+ .incbin "baserom.gba", 0x316BD8, 0x3E4
+
+gMapData_PokemonTower_3F:: @ 8316FBC
+ .incbin "baserom.gba", 0x316FBC, 0x3E4
+
+gMapData_PokemonTower_4F:: @ 83173A0
+ .incbin "baserom.gba", 0x3173A0, 0x3E4
+
+gMapData_PokemonTower_5F:: @ 8317784
+ .incbin "baserom.gba", 0x317784, 0x3E4
+
+gMapData_PokemonTower_6F:: @ 8317B68
+ .incbin "baserom.gba", 0x317B68, 0x3E4
+
+gMapData_PokemonTower_7F:: @ 8317F4C
+ .incbin "baserom.gba", 0x317F4C, 0xF74
+
+gMapData_PowerPlant:: @ 8318EC0
+ .incbin "baserom.gba", 0x318EC0, 0x170
+
+gMapData_Route25_SeaCottage:: @ 8319030
+ .incbin "baserom.gba", 0x319030, 0x1E4
+
+gMapData_SSAnne_Kitchen:: @ 8319214
+ .incbin "baserom.gba", 0x319214, 0xD8
+
+gMapData_SSAnne_CaptainsOffice:: @ 83192EC
+ .incbin "baserom.gba", 0x3192EC, 0x128
+
+gMapData_UndergroundPath_NorthEntrance:: @ 8319414
+gMapData_UndergroundPath_SouthEntrance:: @ 8319414
+gMapData_UndergroundPath_WestEntrance:: @ 8319414
+gMapData_UndergroundPath_EastEntrance:: @ 8319414
+ .incbin "baserom.gba", 0x319414, 0x484
+
+gMapData_UndergroundPath_EastWestTunnel:: @ 8319898
+ .incbin "baserom.gba", 0x319898, 0x414
+
+gMapData_UndergroundPath_NorthSouthTunnel:: @ 8319CAC
+ .incbin "baserom.gba", 0x319CAC, 0x144
+
+gMapData_Route12_NorthEntrance_1F:: @ 8319DF0
+ .incbin "baserom.gba", 0x319DF0, 0x84
+
+gMapData_SSAnne_1F_Room1:: @ 8319E74
+gMapData_SSAnne_1F_Room2:: @ 8319E74
+gMapData_SSAnne_1F_Room3:: @ 8319E74
+gMapData_SSAnne_1F_Room4:: @ 8319E74
+gMapData_SSAnne_1F_Room5:: @ 8319E74
+gMapData_SSAnne_1F_Room7:: @ 8319E74
+gMapData_SSAnne_1F_Room6:: @ 8319E74
+ .incbin "baserom.gba", 0x319E74, 0x90
+
+gMapData_SSAnne_2F_Room1:: @ 8319F04
+gMapData_SSAnne_2F_Room2:: @ 8319F04
+gMapData_SSAnne_2F_Room3:: @ 8319F04
+gMapData_SSAnne_2F_Room4:: @ 8319F04
+gMapData_SSAnne_2F_Room5:: @ 8319F04
+gMapData_SSAnne_2F_Room6:: @ 8319F04
+gMapData_SSAnne_B1F_Room1:: @ 8319F04
+gMapData_SSAnne_B1F_Room2:: @ 8319F04
+gMapData_SSAnne_B1F_Room3:: @ 8319F04
+gMapData_SSAnne_B1F_Room4:: @ 8319F04
+gMapData_SSAnne_B1F_Room5:: @ 8319F04
+ .incbin "baserom.gba", 0x319F04, 0x6C
+
+gMapData_CeladonCity_DepartmentStore_Elevator:: @ 8319F70
+ .incbin "baserom.gba", 0x319F70, 0x28C
+
+gMapData_PewterCity_Museum_1F:: @ 831A1FC
+ .incbin "baserom.gba", 0x31A1FC, 0x1A0
+
+gMapData_PewterCity_Museum_2F:: @ 831A39C
+ .incbin "baserom.gba", 0x31A39C, 0xD8
+
+gMapData_CeruleanCity_House2:: @ 831A474
+ .incbin "baserom.gba", 0x31A474, 0xEC
+
+gMapData_CeruleanCity_House1:: @ 831A560
+ .incbin "baserom.gba", 0x31A560, 0x27C
+
+gMapData_CeladonCity_Condominiums_1F:: @ 831A7DC
+ .incbin "baserom.gba", 0x31A7DC, 0x27C
+
+gMapData_CeladonCity_Condominiums_2F:: @ 831AA58
+ .incbin "baserom.gba", 0x31AA58, 0x27C
+
+gMapData_CeladonCity_Condominiums_3F:: @ 831ACD4
+ .incbin "baserom.gba", 0x31ACD4, 0x2A8
+
+gMapData_CeladonCity_Condominiums_Roof:: @ 831AF7C
+ .incbin "baserom.gba", 0x31AF7C, 0xD8
+
+gMapData_CeladonCity_Condominiums_RoofRoom:: @ 831B054
+ .incbin "baserom.gba", 0x31B054, 0xD8
+
+gMapData_CeladonCity_GameCorner_PrizeRoom:: @ 831B12C
+ .incbin "baserom.gba", 0x31B12C, 0x170
+
+gMapData_CeladonCity_Restaurant:: @ 831B29C
+ .incbin "baserom.gba", 0x31B29C, 0x19C
+
+gMapData_CeladonCity_Hotel:: @ 831B438
+ .incbin "baserom.gba", 0x31B438, 0x1C4
+
+gMapData_CeladonCity_DepartmentStore_1F:: @ 831B5FC
+ .incbin "baserom.gba", 0x31B5FC, 0x1AC
+
+gMapData_CeladonCity_DepartmentStore_2F:: @ 831B7A8
+ .incbin "baserom.gba", 0x31B7A8, 0x1AC
+
+gMapData_CeladonCity_DepartmentStore_3F:: @ 831B954
+ .incbin "baserom.gba", 0x31B954, 0x1AC
+
+gMapData_CeladonCity_DepartmentStore_4F:: @ 831BB00
+ .incbin "baserom.gba", 0x31BB00, 0x1AC
+
+gMapData_CeladonCity_DepartmentStore_5F:: @ 831BCAC
+ .incbin "baserom.gba", 0x31BCAC, 0x238
+
+gMapData_CeladonCity_DepartmentStore_Roof:: @ 831BEE4
+ .incbin "baserom.gba", 0x31BEE4, 0x144
+
+gMapData_SafariZone_Building1:: @ 831C028
+gMapData_SafariZone_Building2:: @ 831C028
+gMapData_SafariZone_Building3:: @ 831C028
+gMapData_SafariZone_Building4:: @ 831C028
+ .incbin "baserom.gba", 0x31C028, 0x144
+
+gMapData_SafariZone_SecretHouse:: @ 831C16C
+ .incbin "baserom.gba", 0x31C16C, 0x1DC
+
+gMapData_FuchsiaCity_ZooBuilding:: @ 831C348
+ .incbin "baserom.gba", 0x31C348, 0x144
+
+gMapData_FuchsiaCity_Building1:: @ 831C48C
+ .incbin "baserom.gba", 0x31C48C, 0xEC
+
+gMapData_FuchsiaCity_House2:: @ 831C578
+ .incbin "baserom.gba", 0x31C578, 0x28C
+
+gMapData_CinnabarIsland_PokemonLab_Entrance:: @ 831C804
+ .incbin "baserom.gba", 0x31C804, 0x170
+
+gMapData_CinnabarIsland_PokemonLab_Lounge:: @ 831C974
+ .incbin "baserom.gba", 0x31C974, 0x170
+
+gMapData_CinnabarIsland_PokemonLab_ResearchRoom:: @ 831CAE4
+ .incbin "baserom.gba", 0x31CAE4, 0x170
+
+gMapData_CinnabarIsland_PokemonLab_ExperimentRoom:: @ 831CC54
+ .incbin "baserom.gba", 0x31CC54, 0x1C80
+
+gMapData_SaffronCity_Duplicate:: @ 831E8D4
+ .incbin "baserom.gba", 0x31E8D4, 0xEC
+
+gMapData_Route5_SouthEntrance:: @ 831E9C0
+gMapData_Route6_NorthEntrance:: @ 831E9C0
+ .incbin "baserom.gba", 0x31E9C0, 0x110
+
+gMapData_Route7_EastEntrance:: @ 831EAD0
+gMapData_Route8_WestEntrance:: @ 831EAD0
+ .incbin "baserom.gba", 0x31EAD0, 0xC4
+
+gMapData_DiglettsCave_NorthEntrance:: @ 831EB94
+ .incbin "baserom.gba", 0x31EB94, 0xC4
+
+gMapData_DiglettsCave_SouthEntrance:: @ 831EC58
+ .incbin "baserom.gba", 0x31EC58, 0x3A8
+
+gMapData_IndigoPlateau_PokemonCenter_1F:: @ 831F000
+ .incbin "baserom.gba", 0x31F000, 0x178
+
+gMapData_PokemonLeague_LoreleisRoom:: @ 831F178
+ .incbin "baserom.gba", 0x31F178, 0x178
+
+gMapData_PokemonLeague_BrunosRoom:: @ 831F2F0
+ .incbin "baserom.gba", 0x31F2F0, 0x178
+
+gMapData_PokemonLeague_AgathasRoom:: @ 831F468
+ .incbin "baserom.gba", 0x31F468, 0x564
+
+gMapData_PokemonLeague_LancesRoom:: @ 831F9CC
+ .incbin "baserom.gba", 0x31F9CC, 0x22C
+
+gMapData_PokemonLeague_ChampionsRoom:: @ 831FBF8
+ .incbin "baserom.gba", 0x31FBF8, 0x144
+
+gMapData_PokemonLeague_HallOfFame:: @ 831FD3C
+ .incbin "baserom.gba", 0x31FD3C, 0x984
+
+gMapData_Route21_South:: @ 83206C0
+ .incbin "baserom.gba", 0x3206C0, 0x144
+
+gMapData_Route11_EastEntrance_2F:: @ 8320804
+gMapData_Route12_NorthEntrance_2F:: @ 8320804
+gMapData_Route15_WestEntrance_2F:: @ 8320804
+gMapData_Route16_NorthEntrance_2F:: @ 8320804
+gMapData_Route18_EastEntrance_2F:: @ 8320804
+ .incbin "baserom.gba", 0x320804, 0x18C
+
+gMapData_Route2_ViridianForest_SouthEntrance:: @ 8320990
+gMapData_Route2_EastBuilding:: @ 8320990
+gMapData_Route2_ViridianForest_NorthEntrance:: @ 8320990
+ .incbin "baserom.gba", 0x320990, 0x18C
+
+gMapData_Route22_NorthEntrance:: @ 8320B1C
+ .incbin "baserom.gba", 0x320B1C, 0x1F8
+
+gMapData_Route16_NorthEntrance_1F:: @ 8320D14
+ .incbin "baserom.gba", 0x320D14, 0x15C
+
+gMapData_Route11_EastEntrance_1F:: @ 8320E70
+gMapData_Route15_WestEntrance_1F:: @ 8320E70
+gMapData_Route18_EastEntrance_1F:: @ 8320E70
+ .incbin "baserom.gba", 0x320E70, 0x6C
+
+gMapData_RocketHideout_Elevator:: @ 8320EDC
+ .incbin "baserom.gba", 0x320EDC, 0x128
+
+gMapData_SaffronCity_House1_1F:: @ 8321004
+ .incbin "baserom.gba", 0x321004, 0xFC
+
+gMapData_SaffronCity_House1_2F:: @ 8321100
+ .incbin "baserom.gba", 0x321100, 0x1C4
+
+gMapData_SaffronCity_Dojo:: @ 83212C4
+ .incbin "baserom.gba", 0x3212C4, 0x6C
+
+gMapData_SilphCo_Elevator:: @ 8321330
+ .incbin "baserom.gba", 0x321330, 0x3E4
+
+gMapData_OneIsland:: @ 8321714
+ .incbin "baserom.gba", 0x321714, 0x7A4
+
+gMapData_TwoIsland:: @ 8321EB8
+ .incbin "baserom.gba", 0x321EB8, 0x7A4
+
+gMapData_ThreeIsland:: @ 832265C
+ .incbin "baserom.gba", 0x32265C, 0xF24
+
+gMapData_FourIsland:: @ 8323580
+ .incbin "baserom.gba", 0x323580, 0x3E4
+
+gMapData_FiveIsland:: @ 8323964
+ .incbin "baserom.gba", 0x323964, 0x3E4
+
+gMapData_SevenIsland:: @ 8323D48
+ .incbin "baserom.gba", 0x323D48, 0x5C4
+
+gMapData_SixIsland:: @ 832430C
+ .incbin "baserom.gba", 0x32430C, 0x1A64
+
+gMapData_OneIsland_KindleRoad:: @ 8325D70
+ .incbin "baserom.gba", 0x325D70, 0x7A4
+
+gMapData_OneIsland_TreasureBeach:: @ 8326514
+ .incbin "baserom.gba", 0x326514, 0x7A4
+
+gMapData_TwoIsland_CapeBrink:: @ 8326CB8
+ .incbin "baserom.gba", 0x326CB8, 0xF24
+
+gMapData_ThreeIsland_BondBridge:: @ 8327BDC
+ .incbin "baserom.gba", 0x327BDC, 0x7A4
+
+gMapData_ThreeIsland_Port:: @ 8328380
+ .incbin "baserom.gba", 0x328380, 0x28
+
+gMapData_UnknownMap_03_50:: @ 83283A8
+ .incbin "baserom.gba", 0x3283A8, 0x28
+
+gMapData_UnknownMap_03_51:: @ 83283D0
+ .incbin "baserom.gba", 0x3283D0, 0xD44
+
+gMapData_UnknownMap_03_52:: @ 8329114
+ .incbin "baserom.gba", 0x329114, 0xB64
+
+gMapData_UnknownMap_03_53:: @ 8329C78
+ .incbin "baserom.gba", 0x329C78, 0xB64
+
+gMapData_FiveIsland_ResortGorgeous:: @ 832A7DC
+ .incbin "baserom.gba", 0x32A7DC, 0xB64
+
+gMapData_FiveIsland_WaterLabyrinth:: @ 832B340
+ .incbin "baserom.gba", 0x32B340, 0x7A4
+
+gMapData_FiveIsland_Meadow:: @ 832BAE4
+ .incbin "baserom.gba", 0x32BAE4, 0xB64
+
+gMapData_FiveIsland_MemorialPillar:: @ 832C648
+ .incbin "baserom.gba", 0x32C648, 0xF24
+
+gMapData_SixIsland_OutcastIsland:: @ 832D56C
+ .incbin "baserom.gba", 0x32D56C, 0xB64
+
+gMapData_SixIsland_GreenPath:: @ 832E0D0
+ .incbin "baserom.gba", 0x32E0D0, 0x12E4
+
+gMapData_SixIsland_WaterPath:: @ 832F3B4
+ .incbin "baserom.gba", 0x32F3B4, 0xF24
+
+gMapData_SixIsland_RuinValley:: @ 83302D8
+ .incbin "baserom.gba", 0x3302D8, 0x25A4
+
+gMapData_SevenIsland_TrainerTower:: @ 833287C
+ .incbin "baserom.gba", 0x33287C, 0x7A4
+
+gMapData_SevenIsland_SevaultCanyon_Entrance:: @ 8333020
+ .incbin "baserom.gba", 0x333020, 0xF24
+
+gMapData_SevenIsland_SevaultCanyon:: @ 8333F44
+ .incbin "baserom.gba", 0x333F44, 0x16A4
+
+gMapData_SevenIsland_TanobyRuins:: @ 83355E8
+ .incbin "baserom.gba", 0x3355E8, 0x32DC
+
+gMapData_UnknownMap_00_04:: @ 83388C4
+ .incbin "baserom.gba", 0x3388C4, 0x19C
+
+gMapData_SaffronCity_PokemonTrainerFanClub:: @ 8338A60
+ .incbin "baserom.gba", 0x338A60, 0x1E8
+
+gMapData_SevenIsland_House_Room2:: @ 8338C48
+ .incbin "baserom.gba", 0x338C48, 0xD8
+
+gMapData_ViridianCity_House2:: @ 8338D20
+ .incbin "baserom.gba", 0x338D20, 0x570
+
+gMapData_MtEmber_RubyPath_B4F:: @ 8339290
+ .incbin "baserom.gba", 0x339290, 0x1518
+
+gMapData_ThreeIsland_BerryForest:: @ 833A7A8
+ .incbin "baserom.gba", 0x33A7A8, 0x1C8
+
+gMapData_OneIsland_PokemonCenter_1F:: @ 833A970
+ .incbin "baserom.gba", 0x33A970, 0x114
+
+gMapData_TwoIsland_JoyfulGameCorner:: @ 833AA84
+ .incbin "baserom.gba", 0x33AA84, 0x144
+
+gMapData_VermilionCity_PokemonFanClub:: @ 833ABC8
+ .incbin "baserom.gba", 0x33ABC8, 0xFC
+
+gMapData_LavenderTown_VolunteerPokemonHouse:: @ 833ACC4
+ .incbin "baserom.gba", 0x33ACC4, 0xFC
+
+gMapData_Route5_PokemonDayCare:: @ 833ADC0
+ .incbin "baserom.gba", 0x33ADC0, 0xEC
+
+gMapData_ViridianCity_House1:: @ 833AEAC
+ .incbin "baserom.gba", 0x33AEAC, 0xFC
+
+gMapData_FourIsland_PokemonDayCare:: @ 833AFA8
+ .incbin "baserom.gba", 0x33AFA8, 0x26B8
+
+gMapData_MtEmber_Exterior:: @ 833D660
+ .incbin "baserom.gba", 0x33D660, 0x368
+
+gMapData_MtEmber_Summit:: @ 833D9C8
+ .incbin "baserom.gba", 0x33D9C8, 0x240
+
+gMapData_MtEmber_SummitPath_1F:: @ 833DC08
+ .incbin "baserom.gba", 0x33DC08, 0x1164
+
+gMapData_MtEmber_SummitPath_2F:: @ 833ED6C
+ .incbin "baserom.gba", 0x33ED6C, 0x170
+
+gMapData_MtEmber_SummitPath_3F:: @ 833EEDC
+ .incbin "baserom.gba", 0x33EEDC, 0x428
+
+gMapData_SSAnne_Kitchen3:: @ 833F304
+ .incbin "baserom.gba", 0x33F304, 0x220
+
+gMapData_MtEmber_RubyPath_B1F:: @ 833F524
+ .incbin "baserom.gba", 0x33F524, 0x184
+
+gMapData_MtEmber_RubyPath_B2F:: @ 833F6A8
+ .incbin "baserom.gba", 0x33F6A8, 0x5B8
+
+gMapData_MtEmber_RubyPath_B3F:: @ 833FC60
+ .incbin "baserom.gba", 0x33FC60, 0x78
+
+gMapData_MtEmber_RubyPath_B1F_Stairs:: @ 833FCD8
+ .incbin "baserom.gba", 0x33FCD8, 0x84
+
+gMapData_MtEmber_RubyPath_B2F_Stairs:: @ 833FD5C
+ .incbin "baserom.gba", 0x33FD5C, 0x204
+
+gMapData_MtEmber_RubyPath_B5F:: @ 833FF60
+ .incbin "baserom.gba", 0x33FF60, 0x644
+
+gMapData_SSAnne_CaptainsOffice4:: @ 83405A4
+ .incbin "baserom.gba", 0x3405A4, 0x894
+
+gMapData_FourIsland_IcefallCave_Entrance:: @ 8340E38
+ .incbin "baserom.gba", 0x340E38, 0x344
+
+gMapData_FourIsland_IcefallCave_1F:: @ 834117C
+ .incbin "baserom.gba", 0x34117C, 0x3E4
+
+gMapData_SSAnne_CaptainsOffice2:: @ 8341560
+ .incbin "baserom.gba", 0x341560, 0x538
+
+gMapData_SSAnne_CaptainsOffice3:: @ 8341A98
+ .incbin "baserom.gba", 0x341A98, 0x2AC
+
+gMapData_SevenIsland_TrainerTower_Lobby:: @ 8341D44
+ .incbin "baserom.gba", 0x341D44, 0x288
+
+gMapData_SevenIsland_TrainerTower_1F:: @ 8341FCC
+ .incbin "baserom.gba", 0x341FCC, 0x288
+
+gMapData_SevenIsland_TrainerTower_2F:: @ 8342254
+ .incbin "baserom.gba", 0x342254, 0x288
+
+gMapData_SevenIsland_TrainerTower_3F:: @ 83424DC
+ .incbin "baserom.gba", 0x3424DC, 0x288
+
+gMapData_SevenIsland_TrainerTower_4F:: @ 8342764
+ .incbin "baserom.gba", 0x342764, 0x288
+
+gMapData_SevenIsland_TrainerTower_5F:: @ 83429EC
+ .incbin "baserom.gba", 0x3429EC, 0x288
+
+gMapData_SevenIsland_TrainerTower_6F:: @ 8342C74
+ .incbin "baserom.gba", 0x342C74, 0x288
+
+gMapData_SevenIsland_TrainerTower_7F:: @ 8342EFC
+ .incbin "baserom.gba", 0x342EFC, 0x288
+
+gMapData_SevenIsland_TrainerTower_8F:: @ 8343184
+ .incbin "baserom.gba", 0x343184, 0x264
+
+gMapData_SevenIsland_TrainerTower_Roof:: @ 83433E8
+ .incbin "baserom.gba", 0x3433E8, 0x6C
+
+gMapData_SevenIsland_TrainerTower_Elevator:: @ 8343454
+ .incbin "baserom.gba", 0x343454, 0xEC
+
+gMapData_CeruleanCity_House5:: @ 8343540
+ .incbin "baserom.gba", 0x343540, 0x184
+
+gMapData_SSAnne_CaptainsOffice5:: @ 83436C4
+ .incbin "baserom.gba", 0x3436C4, 0x144
+
+gMapData_SixIsland_DottedHole_B1F:: @ 8343808
+ .incbin "baserom.gba", 0x343808, 0x144
+
+gMapData_SixIsland_DottedHole_B2F:: @ 834394C
+ .incbin "baserom.gba", 0x34394C, 0x144
+
+gMapData_SixIsland_DottedHole_B3F:: @ 8343A90
+ .incbin "baserom.gba", 0x343A90, 0x144
+
+gMapData_SSAnne_CaptainsOffice9:: @ 8343BD4
+ .incbin "baserom.gba", 0x343BD4, 0x204
+
+gMapData_SixIsland_DottedHole_SapphireRoom:: @ 8343DD8
+ .incbin "baserom.gba", 0x343DD8, 0x1E0
+
+gMapData_BirthIsland_Harbor:: @ 8343FB8
+gMapData_NavelRock_Harbor:: @ 8343FB8
+gMapData_SevenIsland_Harbor:: @ 8343FB8
+gMapData_OneIsland_Harbor:: @ 8343FB8
+gMapData_TwoIsland_Harbor:: @ 8343FB8
+gMapData_FourIsland_Harbor:: @ 8343FB8
+gMapData_FiveIsland_Harbor:: @ 8343FB8
+gMapData_SixIsland_Harbor:: @ 8343FB8
+gMapData_ThreeIsland_Harbor:: @ 8343FB8
+ .incbin "baserom.gba", 0x343FB8, 0x150
+
+gMapData_OneIsland_PokemonCenter_2F:: @ 8344108
+ .incbin "baserom.gba", 0x344108, 0xF28
+
+gMapData_SSAnne_1F_Room11:: @ 8345030
+ .incbin "baserom.gba", 0x345030, 0x1C8
+
+gMapData_ThreeIsland_DunsparceTunnel:: @ 83451F8
+ .incbin "baserom.gba", 0x3451F8, 0x2E0
+
+gMapData_FiveIsland_LostCave_Entrance:: @ 83454D8
+ .incbin "baserom.gba", 0x3454D8, 0x118
+
+gMapData_FiveIsland_LostCave_Room1:: @ 83455F0
+ .incbin "baserom.gba", 0x3455F0, 0x118
+
+gMapData_FiveIsland_LostCave_Room2:: @ 8345708
+ .incbin "baserom.gba", 0x345708, 0x118
+
+gMapData_FiveIsland_LostCave_Room3:: @ 8345820
+ .incbin "baserom.gba", 0x345820, 0x118
+
+gMapData_FiveIsland_LostCave_Room4:: @ 8345938
+ .incbin "baserom.gba", 0x345938, 0x118
+
+gMapData_FiveIsland_LostCave_Room5:: @ 8345A50
+ .incbin "baserom.gba", 0x345A50, 0x118
+
+gMapData_FiveIsland_LostCave_Room6:: @ 8345B68
+ .incbin "baserom.gba", 0x345B68, 0x118
+
+gMapData_FiveIsland_LostCave_Room7:: @ 8345C80
+ .incbin "baserom.gba", 0x345C80, 0x118
+
+gMapData_FiveIsland_LostCave_Room8:: @ 8345D98
+ .incbin "baserom.gba", 0x345D98, 0x118
+
+gMapData_FiveIsland_LostCave_Room9:: @ 8345EB0
+ .incbin "baserom.gba", 0x345EB0, 0x118
+
+gMapData_FiveIsland_LostCave_Room10:: @ 8345FC8
+ .incbin "baserom.gba", 0x345FC8, 0x118
+
+gMapData_FiveIsland_LostCave_Room11:: @ 83460E0
+ .incbin "baserom.gba", 0x3460E0, 0x118
+
+gMapData_FiveIsland_LostCave_Room12:: @ 83461F8
+ .incbin "baserom.gba", 0x3461F8, 0x118
+
+gMapData_FiveIsland_LostCave_Room13:: @ 8346310
+ .incbin "baserom.gba", 0x346310, 0x118
+
+gMapData_FiveIsland_LostCave_Room14:: @ 8346428
+ .incbin "baserom.gba", 0x346428, 0x334
+
+gMapData_SevenIsland_TanobyRuins_MoneanChamber:: @ 834675C
+ .incbin "baserom.gba", 0x34675C, 0x334
+
+gMapData_SevenIsland_TanobyRuins_LiptooChamber:: @ 8346A90
+ .incbin "baserom.gba", 0x346A90, 0x334
+
+gMapData_SevenIsland_TanobyRuins_WeepthChamber:: @ 8346DC4
+ .incbin "baserom.gba", 0x346DC4, 0x334
+
+gMapData_SevenIsland_TanobyRuins_DilfordChamber:: @ 83470F8
+ .incbin "baserom.gba", 0x3470F8, 0x334
+
+gMapData_SevenIsland_TanobyRuins_ScufibChamber:: @ 834742C
+ .incbin "baserom.gba", 0x34742C, 0x624
+
+gMapData_SSAnne_1F_Room12:: @ 8347A50
+ .incbin "baserom.gba", 0x347A50, 0x204
+
+gMapData_SevenIsland_SeavaultCanyon_TanobyKey:: @ 8347C54
+ .incbin "baserom.gba", 0x347C54, 0x72C
+
+gMapData_BirthIsland_Exterior:: @ 8348380
+ .incbin "baserom.gba", 0x348380, 0x3BC
+
+gMapData_NavelRock_Exterior:: @ 834873C
+ .incbin "baserom.gba", 0x34873C, 0x398
+
+gMapData_NavelRock_1F:: @ 8348AD4
+ .incbin "baserom.gba", 0x348AD4, 0x3DC
+
+gMapData_NavelRock_Summit:: @ 8348EB0
+ .incbin "baserom.gba", 0x348EB0, 0x3EC
+
+gMapData_NavelRock_Base:: @ 834929C
+ .incbin "baserom.gba", 0x34929C, 0x88
+
+gMapData_NavelRock_SummitPath_2F:: @ 8349324
+ .incbin "baserom.gba", 0x349324, 0x88
+
+gMapData_NavelRock_SummitPath_3F:: @ 83493AC
+ .incbin "baserom.gba", 0x3493AC, 0x88
+
+gMapData_NavelRock_SummitPath_4F:: @ 8349434
+ .incbin "baserom.gba", 0x349434, 0x88
+
+gMapData_NavelRock_SummitPath_5F:: @ 83494BC
+ .incbin "baserom.gba", 0x3494BC, 0x88
+
+gMapData_NavelRock_BasePath_B1F:: @ 8349544
+ .incbin "baserom.gba", 0x349544, 0x88
+
+gMapData_NavelRock_BasePath_B2F:: @ 83495CC
+ .incbin "baserom.gba", 0x3495CC, 0x88
+
+gMapData_NavelRock_BasePath_B3F:: @ 8349654
+ .incbin "baserom.gba", 0x349654, 0x88
+
+gMapData_NavelRock_BasePath_B4F:: @ 83496DC
+ .incbin "baserom.gba", 0x3496DC, 0x88
+
+gMapData_NavelRock_BasePath_B5F:: @ 8349764
+ .incbin "baserom.gba", 0x349764, 0x88
+
+gMapData_NavelRock_BasePath_B6F:: @ 83497EC
+ .incbin "baserom.gba", 0x3497EC, 0x88
+
+gMapData_NavelRock_BasePath_B7F:: @ 8349874
+ .incbin "baserom.gba", 0x349874, 0x88
+
+gMapData_NavelRock_BasePath_B8F:: @ 83498FC
+ .incbin "baserom.gba", 0x3498FC, 0x88
+
+gMapData_NavelRock_BasePath_B9F:: @ 8349984
+ .incbin "baserom.gba", 0x349984, 0x88
+
+gMapData_NavelRock_BasePath_B10F:: @ 8349A0C
+ .incbin "baserom.gba", 0x349A0C, 0x88
+
+gMapData_NavelRock_BasePath_B11F:: @ 8349A94
+ .incbin "baserom.gba", 0x349A94, 0x334
+
+gMapData_SevenIsland_TanobyRuins_RixyChamber:: @ 8349DC8
+ .incbin "baserom.gba", 0x349DC8, 0x334
+
+gMapData_SevenIsland_TanobyRuins_ViapoisChamber:: @ 834A0FC
+ .incbin "baserom.gba", 0x34A0FC, 0x114
+
+gMapData_NavelRock_B1F:: @ 834A210
+ .incbin "baserom.gba", 0x34A210, 0x1794
+
+gMapData_NavelRock_Fork:: @ 834B9A4
+ .incbin "baserom.gba", 0x34B9A4, 0x296C
+
+gMapData_SevenIsland_House_Room1:: @ 834E310
+ .incbin "baserom.gba", 0x34E310, 0x860
+
+gMapData_OneIsland_KindleRoad_EmberSpa:: @ 834EB70
+ .incbin "baserom.gba", 0x34EB70, 0x1C
gUnknown_834EB8C:: @ 834EB8C
.incbin "baserom.gba", 0x34EB8C, 0x5FC
diff --git a/data/data_835B488.s b/data/data_835B488.s
index 71e98b2ba..2c8a853a8 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -1,936 +1,5 @@
.section .rodata
-
- .align 2
-gUnknown_835B488:: @ 835B488
- .incbin "baserom.gba", 0x35B488, 0x14
-
-gUnknown_835B49C:: @ 835B49C
- .incbin "baserom.gba", 0x35B49C, 0x14
-
-gUnknown_835B4B0:: @ 835B4B0
- .incbin "baserom.gba", 0x35B4B0, 0x14
-
-gUnknown_835B4C4:: @ 835B4C4
- .incbin "baserom.gba", 0x35B4C4, 0x114
-
-gUnknown_835B5D8:: @ 835B5D8
- .incbin "baserom.gba", 0x35B5D8, 0x18C
-
-gUnknown_835B764:: @ 835B764
- .incbin "baserom.gba", 0x35B764, 0xB0
-
-gUnknown_835B814:: @ 835B814
- .incbin "baserom.gba", 0x35B814, 0xC
-
-gUnknown_835B820:: @ 835B820
- .incbin "baserom.gba", 0x35B820, 0x8
-
-gUnknown_835B828:: @ 835B828
- .incbin "baserom.gba", 0x35B828, 0x14
-
-gUnknown_835B83C:: @ 835B83C
- .incbin "baserom.gba", 0x35B83C, 0x8
-
-gUnknown_835B844:: @ 835B844
- .incbin "baserom.gba", 0x35B844, 0x20
-
-gUnknown_835B864:: @ 835B864
- .incbin "baserom.gba", 0x35B864, 0x10
-
-gUnknown_835B874:: @ 835B874
- .incbin "baserom.gba", 0x35B874, 0xC
-
-gUnknown_835B880:: @ 835B880
- .incbin "baserom.gba", 0x35B880, 0x2
-
-gUnknown_835B882:: @ 835B882
- .incbin "baserom.gba", 0x35B882, 0xC
-
-gUnknown_835B88E:: @ 835B88E
- .incbin "baserom.gba", 0x35B88E, 0x2
-
-gUnknown_835B890:: @ 835B890
- .incbin "baserom.gba", 0x35B890, 0x10
-
-gUnknown_835B8A0:: @ 835B8A0
- .incbin "baserom.gba", 0x35B8A0, 0xC
-
-gUnknown_835B8AC:: @ 835B8AC
- .incbin "baserom.gba", 0x35B8AC, 0x4
-
-gUnknown_835B8B0:: @ 835B8B0
- .incbin "baserom.gba", 0x35B8B0, 0x10
-
-gUnknown_835B8C0:: @ 835B8C0
- .incbin "baserom.gba", 0x35B8C0, 0x4
-
-gUnknown_835B8C4:: @ 835B8C4
- .incbin "baserom.gba", 0x35B8C4, 0x8
-
-gUnknown_835B8CC:: @ 835B8CC
- .incbin "baserom.gba", 0x35B8CC, 0x40
-
-gUnknown_835B90C:: @ 835B90C
- .incbin "baserom.gba", 0x35B90C, 0x6
-
-gUnknown_835B912:: @ 835B912
- .incbin "baserom.gba", 0x35B912, 0x6
-
-gUnknown_835B918:: @ 835B918
- .incbin "baserom.gba", 0x35B918, 0x2
-
-gUnknown_835B91A:: @ 835B91A
- .incbin "baserom.gba", 0x35B91A, 0x6
-
-gUnknown_835B920:: @ 835B920
- .incbin "baserom.gba", 0x35B920, 0xC
-
-gUnknown_835B92C:: @ 835B92C
- .incbin "baserom.gba", 0x35B92C, 0x8
-
-gUnknown_835B934:: @ 835B934
- .incbin "baserom.gba", 0x35B934, 0x10
-
-gUnknown_835B944:: @ 835B944
- .incbin "baserom.gba", 0x35B944, 0x18
-
-gUnknown_835B95C:: @ 835B95C
- .incbin "baserom.gba", 0x35B95C, 0x3DA2C
-
-gUnknown_8399388:: @ 8399388
- .incbin "baserom.gba", 0x399388, 0x908
-
-gUnknown_8399C90:: @ 8399C90
- .incbin "baserom.gba", 0x399C90, 0x5F38
-
-gUnknown_839FBC8:: @ 839FBC8
- .incbin "baserom.gba", 0x39FBC8, 0x144
-
-gUnknown_839FD0C:: @ 839FD0C
- .incbin "baserom.gba", 0x39FD0C, 0x51
-
-gUnknown_839FD5D:: @ 839FD5D
- .incbin "baserom.gba", 0x39FD5D, 0x53
-
-gUnknown_839FDB0:: @ 839FDB0
- .incbin "baserom.gba", 0x39FDB0, 0x260
-
-gUnknown_83A0010:: @ 83A0010
- .incbin "baserom.gba", 0x3A0010, 0x3688
-
-gUnknown_83A3698:: @ 83A3698
- .incbin "baserom.gba", 0x3A3698, 0x1AC0
-
-gUnknown_83A5158:: @ 83A5158
- .incbin "baserom.gba", 0x3A5158, 0xB0
-
-gUnknown_83A5208:: @ 83A5208
- .incbin "baserom.gba", 0x3A5208, 0x70
-
-gUnknown_83A5278:: @ 83A5278
- .incbin "baserom.gba", 0x3A5278, 0xB8
-
-gUnknown_83A5330:: @ 83A5330
- .incbin "baserom.gba", 0x3A5330, 0x18
-
-gUnknown_83A5348:: @ 83A5348
- .incbin "baserom.gba", 0x3A5348, 0xCB8
-
-gUnknown_83A6000:: @ 83A6000
- .incbin "baserom.gba", 0x3A6000, 0x10
-
-gUnknown_83A6010:: @ 83A6010
- .incbin "baserom.gba", 0x3A6010, 0x8
-
-gUnknown_83A6018:: @ 83A6018
- .incbin "baserom.gba", 0x3A6018, 0x1C
-
-gUnknown_83A6034:: @ 83A6034
- .incbin "baserom.gba", 0x3A6034, 0x1C
-
-gUnknown_83A6050:: @ 83A6050
- .incbin "baserom.gba", 0x3A6050, 0x4
-
-gUnknown_83A6054:: @ 83A6054
- .incbin "baserom.gba", 0x3A6054, 0x2C
-
-gUnknown_83A6080:: @ 83A6080
- .incbin "baserom.gba", 0x3A6080, 0x14
-
-gUnknown_83A6094:: @ 83A6094
- .incbin "baserom.gba", 0x3A6094, 0x1C
-
-gUnknown_83A60B0:: @ 83A60B0
- .incbin "baserom.gba", 0x3A60B0, 0x4
-
-gUnknown_83A60B4:: @ 83A60B4
- .incbin "baserom.gba", 0x3A60B4, 0x1C
-
-gUnknown_83A60D0:: @ 83A60D0
- .incbin "baserom.gba", 0x3A60D0, 0x4
-
-gUnknown_83A60D4:: @ 83A60D4
- .incbin "baserom.gba", 0x3A60D4, 0xC
-
-gUnknown_83A60E0:: @ 83A60E0
- .incbin "baserom.gba", 0x3A60E0, 0x14
-
-gUnknown_83A60F4:: @ 83A60F4
- .incbin "baserom.gba", 0x3A60F4, 0x14
-
-gUnknown_83A6108:: @ 83A6108
- .incbin "baserom.gba", 0x3A6108, 0x14
-
-gUnknown_83A611C:: @ 83A611C
- .incbin "baserom.gba", 0x3A611C, 0x4
-
-gUnknown_83A6120:: @ 83A6120
- .incbin "baserom.gba", 0x3A6120, 0x14
-
-gUnknown_83A6134:: @ 83A6134
- .incbin "baserom.gba", 0x3A6134, 0x4
-
-gUnknown_83A6138:: @ 83A6138
- .incbin "baserom.gba", 0x3A6138, 0x14
-
-gUnknown_83A614C:: @ 83A614C
- .incbin "baserom.gba", 0x3A614C, 0x4
-
-gUnknown_83A6150:: @ 83A6150
- .incbin "baserom.gba", 0x3A6150, 0x14
-
-gUnknown_83A6164:: @ 83A6164
- .incbin "baserom.gba", 0x3A6164, 0x4
-
-gUnknown_83A6168:: @ 83A6168
- .incbin "baserom.gba", 0x3A6168, 0x14
-
-gUnknown_83A617C:: @ 83A617C
- .incbin "baserom.gba", 0x3A617C, 0x4
-
-gUnknown_83A6180:: @ 83A6180
- .incbin "baserom.gba", 0x3A6180, 0x14
-
-gUnknown_83A6194:: @ 83A6194
- .incbin "baserom.gba", 0x3A6194, 0x4
-
-gUnknown_83A6198:: @ 83A6198
- .incbin "baserom.gba", 0x3A6198, 0x14
-
-gUnknown_83A61AC:: @ 83A61AC
- .incbin "baserom.gba", 0x3A61AC, 0x4
-
-gUnknown_83A61B0:: @ 83A61B0
- .incbin "baserom.gba", 0x3A61B0, 0x14
-
-gUnknown_83A61C4:: @ 83A61C4
- .incbin "baserom.gba", 0x3A61C4, 0x4
-
-gUnknown_83A61C8:: @ 83A61C8
- .incbin "baserom.gba", 0x3A61C8, 0x10
-
-gUnknown_83A61D8:: @ 83A61D8
- .incbin "baserom.gba", 0x3A61D8, 0x8
-
-gUnknown_83A61E0:: @ 83A61E0
- .incbin "baserom.gba", 0x3A61E0, 0x10
-
-gUnknown_83A61F0:: @ 83A61F0
- .incbin "baserom.gba", 0x3A61F0, 0x8
-
-gUnknown_83A61F8:: @ 83A61F8
- .incbin "baserom.gba", 0x3A61F8, 0x10
-
-gUnknown_83A6208:: @ 83A6208
- .incbin "baserom.gba", 0x3A6208, 0xC
-
-gUnknown_83A6214:: @ 83A6214
- .incbin "baserom.gba", 0x3A6214, 0x4
-
-gUnknown_83A6218:: @ 83A6218
- .incbin "baserom.gba", 0x3A6218, 0xC
-
-gUnknown_83A6224:: @ 83A6224
- .incbin "baserom.gba", 0x3A6224, 0x4
-
-gUnknown_83A6228:: @ 83A6228
- .incbin "baserom.gba", 0x3A6228, 0xC
-
-gUnknown_83A6234:: @ 83A6234
- .incbin "baserom.gba", 0x3A6234, 0x4
-
-gUnknown_83A6238:: @ 83A6238
- .incbin "baserom.gba", 0x3A6238, 0xC
-
-gUnknown_83A6244:: @ 83A6244
- .incbin "baserom.gba", 0x3A6244, 0x4
-
-gUnknown_83A6248:: @ 83A6248
- .incbin "baserom.gba", 0x3A6248, 0xC
-
-gUnknown_83A6254:: @ 83A6254
- .incbin "baserom.gba", 0x3A6254, 0x4
-
-gUnknown_83A6258:: @ 83A6258
- .incbin "baserom.gba", 0x3A6258, 0xC
-
-gUnknown_83A6264:: @ 83A6264
- .incbin "baserom.gba", 0x3A6264, 0x4
-
-gUnknown_83A6268:: @ 83A6268
- .incbin "baserom.gba", 0x3A6268, 0xC
-
-gUnknown_83A6274:: @ 83A6274
- .incbin "baserom.gba", 0x3A6274, 0xC
-
-gUnknown_83A6280:: @ 83A6280
- .incbin "baserom.gba", 0x3A6280, 0x4
-
-gUnknown_83A6284:: @ 83A6284
- .incbin "baserom.gba", 0x3A6284, 0xC
-
-gUnknown_83A6290:: @ 83A6290
- .incbin "baserom.gba", 0x3A6290, 0x4
-
-gUnknown_83A6294:: @ 83A6294
- .incbin "baserom.gba", 0x3A6294, 0xC
-
-gUnknown_83A62A0:: @ 83A62A0
- .incbin "baserom.gba", 0x3A62A0, 0x4
-
-gUnknown_83A62A4:: @ 83A62A4
- .incbin "baserom.gba", 0x3A62A4, 0xC
-
-gUnknown_83A62B0:: @ 83A62B0
- .incbin "baserom.gba", 0x3A62B0, 0x4
-
-gUnknown_83A62B4:: @ 83A62B4
- .incbin "baserom.gba", 0x3A62B4, 0xC
-
-gUnknown_83A62C0:: @ 83A62C0
- .incbin "baserom.gba", 0x3A62C0, 0x4
-
-gUnknown_83A62C4:: @ 83A62C4
- .incbin "baserom.gba", 0x3A62C4, 0xC
-
-gUnknown_83A62D0:: @ 83A62D0
- .incbin "baserom.gba", 0x3A62D0, 0x4
-
-gUnknown_83A62D4:: @ 83A62D4
- .incbin "baserom.gba", 0x3A62D4, 0xC
-
-gUnknown_83A62E0:: @ 83A62E0
- .incbin "baserom.gba", 0x3A62E0, 0x4
-
-gUnknown_83A62E4:: @ 83A62E4
- .incbin "baserom.gba", 0x3A62E4, 0xC
-
-gUnknown_83A62F0:: @ 83A62F0
- .incbin "baserom.gba", 0x3A62F0, 0x4
-
-gUnknown_83A62F4:: @ 83A62F4
- .incbin "baserom.gba", 0x3A62F4, 0xC
-
-gUnknown_83A6300:: @ 83A6300
- .incbin "baserom.gba", 0x3A6300, 0x4
-
-gUnknown_83A6304:: @ 83A6304
- .incbin "baserom.gba", 0x3A6304, 0xC
-
-gUnknown_83A6310:: @ 83A6310
- .incbin "baserom.gba", 0x3A6310, 0x4
-
-gUnknown_83A6314:: @ 83A6314
- .incbin "baserom.gba", 0x3A6314, 0xC
-
-gUnknown_83A6320:: @ 83A6320
- .incbin "baserom.gba", 0x3A6320, 0x4
-
-gUnknown_83A6324:: @ 83A6324
- .incbin "baserom.gba", 0x3A6324, 0xC
-
-gUnknown_83A6330:: @ 83A6330
- .incbin "baserom.gba", 0x3A6330, 0x4
-
-gUnknown_83A6334:: @ 83A6334
- .incbin "baserom.gba", 0x3A6334, 0xC
-
-gUnknown_83A6340:: @ 83A6340
- .incbin "baserom.gba", 0x3A6340, 0x4
-
-gUnknown_83A6344:: @ 83A6344
- .incbin "baserom.gba", 0x3A6344, 0xC
-
-gUnknown_83A6350:: @ 83A6350
- .incbin "baserom.gba", 0x3A6350, 0x4
-
-gUnknown_83A6354:: @ 83A6354
- .incbin "baserom.gba", 0x3A6354, 0xC
-
-gUnknown_83A6360:: @ 83A6360
- .incbin "baserom.gba", 0x3A6360, 0x4
-
-gUnknown_83A6364:: @ 83A6364
- .incbin "baserom.gba", 0x3A6364, 0xC
-
-gUnknown_83A6370:: @ 83A6370
- .incbin "baserom.gba", 0x3A6370, 0x4
-
-gUnknown_83A6374:: @ 83A6374
- .incbin "baserom.gba", 0x3A6374, 0xC
-
-gUnknown_83A6380:: @ 83A6380
- .incbin "baserom.gba", 0x3A6380, 0x4
-
-gUnknown_83A6384:: @ 83A6384
- .incbin "baserom.gba", 0x3A6384, 0xC
-
-gUnknown_83A6390:: @ 83A6390
- .incbin "baserom.gba", 0x3A6390, 0x2C
-
-gUnknown_83A63BC:: @ 83A63BC
- .incbin "baserom.gba", 0x3A63BC, 0xC
-
-gUnknown_83A63C8:: @ 83A63C8
- .incbin "baserom.gba", 0x3A63C8, 0x4
-
-gUnknown_83A63CC:: @ 83A63CC
- .incbin "baserom.gba", 0x3A63CC, 0x8
-
-gUnknown_83A63D4:: @ 83A63D4
- .incbin "baserom.gba", 0x3A63D4, 0x8
-
-gUnknown_83A63DC:: @ 83A63DC
- .incbin "baserom.gba", 0x3A63DC, 0x8
-
-gUnknown_83A63E4:: @ 83A63E4
- .incbin "baserom.gba", 0x3A63E4, 0xC
-
-gUnknown_83A63F0:: @ 83A63F0
- .incbin "baserom.gba", 0x3A63F0, 0xC
-
-gUnknown_83A63FC:: @ 83A63FC
- .incbin "baserom.gba", 0x3A63FC, 0x8
-
-gUnknown_83A6404:: @ 83A6404
- .incbin "baserom.gba", 0x3A6404, 0x8
-
-gUnknown_83A640C:: @ 83A640C
- .incbin "baserom.gba", 0x3A640C, 0x9
-
-gUnknown_83A6415:: @ 83A6415
- .incbin "baserom.gba", 0x3A6415, 0x9
-
-gUnknown_83A641E:: @ 83A641E
- .incbin "baserom.gba", 0x3A641E, 0x9
-
-gUnknown_83A6427:: @ 83A6427
- .incbin "baserom.gba", 0x3A6427, 0x9
-
-gUnknown_83A6430:: @ 83A6430
- .incbin "baserom.gba", 0x3A6430, 0x9
-
-gUnknown_83A6439:: @ 83A6439
- .incbin "baserom.gba", 0x3A6439, 0x9
-
-gUnknown_83A6442:: @ 83A6442
- .incbin "baserom.gba", 0x3A6442, 0x9
-
-gUnknown_83A644B:: @ 83A644B
- .incbin "baserom.gba", 0x3A644B, 0x9
-
-gUnknown_83A6454:: @ 83A6454
- .incbin "baserom.gba", 0x3A6454, 0x9
-
-gUnknown_83A645D:: @ 83A645D
- .incbin "baserom.gba", 0x3A645D, 0x9
-
-gUnknown_83A6466:: @ 83A6466
- .incbin "baserom.gba", 0x3A6466, 0x9
-
-gUnknown_83A646F:: @ 83A646F
- .incbin "baserom.gba", 0x3A646F, 0x9
-
-gUnknown_83A6478:: @ 83A6478
- .incbin "baserom.gba", 0x3A6478, 0x9
-
-gUnknown_83A6481:: @ 83A6481
- .incbin "baserom.gba", 0x3A6481, 0x9
-
-gUnknown_83A648A:: @ 83A648A
- .incbin "baserom.gba", 0x3A648A, 0x9
-
-gUnknown_83A6493:: @ 83A6493
- .incbin "baserom.gba", 0x3A6493, 0x9
-
-gUnknown_83A649C:: @ 83A649C
- .incbin "baserom.gba", 0x3A649C, 0xC
-
-gUnknown_83A64A8:: @ 83A64A8
- .incbin "baserom.gba", 0x3A64A8, 0x10
-
-gUnknown_83A64B8:: @ 83A64B8
- .incbin "baserom.gba", 0x3A64B8, 0x10
-
-gUnknown_83A64C8:: @ 83A64C8
- .incbin "baserom.gba", 0x3A64C8, 0x24
-
-gUnknown_83A64EC:: @ 83A64EC
- .incbin "baserom.gba", 0x3A64EC, 0x5
-
-gUnknown_83A64F1:: @ 83A64F1
- .incbin "baserom.gba", 0x3A64F1, 0x5
-
-gUnknown_83A64F6:: @ 83A64F6
- .incbin "baserom.gba", 0x3A64F6, 0x5
-
-gUnknown_83A64FB:: @ 83A64FB
- .incbin "baserom.gba", 0x3A64FB, 0x5
-
-gUnknown_83A6500:: @ 83A6500
- .incbin "baserom.gba", 0x3A6500, 0x5
-
-gUnknown_83A6505:: @ 83A6505
- .incbin "baserom.gba", 0x3A6505, 0x5
-
-gUnknown_83A650A:: @ 83A650A
- .incbin "baserom.gba", 0x3A650A, 0x5
-
-gUnknown_83A650F:: @ 83A650F
- .incbin "baserom.gba", 0x3A650F, 0x5
-
-gUnknown_83A6514:: @ 83A6514
- .incbin "baserom.gba", 0x3A6514, 0x5
-
-gUnknown_83A6519:: @ 83A6519
- .incbin "baserom.gba", 0x3A6519, 0x5
-
-gUnknown_83A651E:: @ 83A651E
- .incbin "baserom.gba", 0x3A651E, 0x5
-
-gUnknown_83A6523:: @ 83A6523
- .incbin "baserom.gba", 0x3A6523, 0x5
-
-gUnknown_83A6528:: @ 83A6528
- .incbin "baserom.gba", 0x3A6528, 0x5
-
-gUnknown_83A652D:: @ 83A652D
- .incbin "baserom.gba", 0x3A652D, 0x5
-
-gUnknown_83A6532:: @ 83A6532
- .incbin "baserom.gba", 0x3A6532, 0x5
-
-gUnknown_83A6537:: @ 83A6537
- .incbin "baserom.gba", 0x3A6537, 0x5
-
-gUnknown_83A653C:: @ 83A653C
- .incbin "baserom.gba", 0x3A653C, 0x5
-
-gUnknown_83A6541:: @ 83A6541
- .incbin "baserom.gba", 0x3A6541, 0x5
-
-gUnknown_83A6546:: @ 83A6546
- .incbin "baserom.gba", 0x3A6546, 0x5
-
-gUnknown_83A654B:: @ 83A654B
- .incbin "baserom.gba", 0x3A654B, 0x5
-
-gUnknown_83A6550:: @ 83A6550
- .incbin "baserom.gba", 0x3A6550, 0x5
-
-gUnknown_83A6555:: @ 83A6555
- .incbin "baserom.gba", 0x3A6555, 0x5
-
-gUnknown_83A655A:: @ 83A655A
- .incbin "baserom.gba", 0x3A655A, 0x5
-
-gUnknown_83A655F:: @ 83A655F
- .incbin "baserom.gba", 0x3A655F, 0x5
-
-gUnknown_83A6564:: @ 83A6564
- .incbin "baserom.gba", 0x3A6564, 0x5
-
-gUnknown_83A6569:: @ 83A6569
- .incbin "baserom.gba", 0x3A6569, 0x5
-
-gUnknown_83A656E:: @ 83A656E
- .incbin "baserom.gba", 0x3A656E, 0x5
-
-gUnknown_83A6573:: @ 83A6573
- .incbin "baserom.gba", 0x3A6573, 0x5
-
-gUnknown_83A6578:: @ 83A6578
- .incbin "baserom.gba", 0x3A6578, 0x5
-
-gUnknown_83A657D:: @ 83A657D
- .incbin "baserom.gba", 0x3A657D, 0x5
-
-gUnknown_83A6582:: @ 83A6582
- .incbin "baserom.gba", 0x3A6582, 0x5
-
-gUnknown_83A6587:: @ 83A6587
- .incbin "baserom.gba", 0x3A6587, 0x5
-
-gUnknown_83A658C:: @ 83A658C
- .incbin "baserom.gba", 0x3A658C, 0x5
-
-gUnknown_83A6591:: @ 83A6591
- .incbin "baserom.gba", 0x3A6591, 0x8
-
-gUnknown_83A6599:: @ 83A6599
- .incbin "baserom.gba", 0x3A6599, 0x10
-
-gUnknown_83A65A9:: @ 83A65A9
- .incbin "baserom.gba", 0x3A65A9, 0x13
-
-gUnknown_83A65BC:: @ 83A65BC
- .incbin "baserom.gba", 0x3A65BC, 0x2C8
-
-gUnknown_83A6884:: @ 83A6884
- .incbin "baserom.gba", 0x3A6884, 0xD4
-
-gUnknown_83A6958:: @ 83A6958
- .incbin "baserom.gba", 0x3A6958, 0x6
-
-gUnknown_83A695E:: @ 83A695E
- .incbin "baserom.gba", 0x3A695E, 0x6C6
-
-gUnknown_83A7024:: @ 83A7024
- .incbin "baserom.gba", 0x3A7024, 0x8
-
-gUnknown_83A702C:: @ 83A702C
- .incbin "baserom.gba", 0x3A702C, 0x18
-
-gUnknown_83A7044:: @ 83A7044
- .incbin "baserom.gba", 0x3A7044, 0x18
-
-gUnknown_83A705C:: @ 83A705C
- .incbin "baserom.gba", 0x3A705C, 0x10
-
-gUnknown_83A706C:: @ 83A706C
- .incbin "baserom.gba", 0x3A706C, 0x10
-
-gUnknown_83A707C:: @ 83A707C
- .incbin "baserom.gba", 0x3A707C, 0x10
-
-gUnknown_83A708C:: @ 83A708C
- .incbin "baserom.gba", 0x3A708C, 0x10
-
-gUnknown_83A709C:: @ 83A709C
- .incbin "baserom.gba", 0x3A709C, 0xC
-
-gUnknown_83A70A8:: @ 83A70A8
- .incbin "baserom.gba", 0x3A70A8, 0x4
-
-gUnknown_83A70AC:: @ 83A70AC
- .incbin "baserom.gba", 0x3A70AC, 0x10
-
-gUnknown_83A70BC:: @ 83A70BC
- .incbin "baserom.gba", 0x3A70BC, 0xE0
-
-gUnknown_83A719C:: @ 83A719C
- .incbin "baserom.gba", 0x3A719C, 0x14
-
-gUnknown_83A71B0:: @ 83A71B0
- .incbin "baserom.gba", 0x3A71B0, 0x3C
-
-gUnknown_83A71EC:: @ 83A71EC
- .incbin "baserom.gba", 0x3A71EC, 0xC
-
-gUnknown_83A71F8:: @ 83A71F8
- .incbin "baserom.gba", 0x3A71F8, 0x6
-
-gUnknown_83A71FE:: @ 83A71FE
- .incbin "baserom.gba", 0x3A71FE, 0x4
-
-gUnknown_83A7202:: @ 83A7202
- .incbin "baserom.gba", 0x3A7202, 0x6
-
-gUnknown_83A7208:: @ 83A7208
- .incbin "baserom.gba", 0x3A7208, 0x4
-
- .align 2
-gUnknown_83A720C:: @ 83A720C
- .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/evobjmv.c"
-
.align 2
-gUnknown_83A7240:: @ 83A7240
- .asciz "0"
-
- .section .rodata.83A72A0
-
-gUnknown_83A72A0:: @ 83A72A0
- .string "S$"
-
-gUnknown_83A72A2:: @ 83A72A2
- .string "IES$"
-
-gUnknown_83A72A6:: @ 83A72A6
- .string " "
-
-gUnknown_83A72A8:: @ 83A72A8
- .incbin "baserom.gba", 0x3A72A8, 0x68
-
-gUnknown_83A7310:: @ 83A7310
- .incbin "baserom.gba", 0x3A7310, 0x20
-
-gUnknown_83A7330:: @ 83A7330
- .incbin "baserom.gba", 0x3A7330, 0x14
-
-gUnknown_83A7344:: @ 83A7344
- .incbin "baserom.gba", 0x3A7344, 0x48
-
-gUnknown_83A738C:: @ 83A738C
- .incbin "baserom.gba", 0x3A738C, 0x8
-
-gUnknown_83A7394:: @ 83A7394
- .incbin "baserom.gba", 0x3A7394, 0x24
-
-gUnknown_83A73B8:: @ 83A73B8
- .incbin "baserom.gba", 0x3A73B8, 0x4
-
-gUnknown_83A73BC:: @ 83A73BC
- .incbin "baserom.gba", 0x3A73BC, 0x10
-
-gUnknown_83A73CC:: @ 83A73CC
- .incbin "baserom.gba", 0x3A73CC, 0x8
-
-gUnknown_83A73D4:: @ 83A73D4
- .incbin "baserom.gba", 0x3A73D4, 0x4
-
-gUnknown_83A73D8:: @ 83A73D8
- .incbin "baserom.gba", 0x3A73D8, 0x4
-
-gUnknown_83A73DC:: @ 83A73DC
- .incbin "baserom.gba", 0x3A73DC, 0x284
-
-gUnknown_83A7660:: @ 83A7660
- .incbin "baserom.gba", 0x3A7660, 0x2FF4
-
-gUnknown_83AA654:: @ 83AA654
- .incbin "baserom.gba", 0x3AA654, 0x1220
-
-gUnknown_83AB874:: @ 83AB874
- .incbin "baserom.gba", 0x3AB874, 0x540
-
-gUnknown_83ABDB4:: @ 83ABDB4
- .incbin "baserom.gba", 0x3ABDB4, 0x434
-
-gUnknown_83AC1E8:: @ 83AC1E8
- .incbin "baserom.gba", 0x3AC1E8, 0x410
-
-gUnknown_83AC5F8:: @ 83AC5F8
- .incbin "baserom.gba", 0x3AC5F8, 0x1D0
-
-gUnknown_83AC7C8:: @ 83AC7C8
- .incbin "baserom.gba", 0x3AC7C8, 0x188
-
-gUnknown_83AC950:: @ 83AC950
- .incbin "baserom.gba", 0x3AC950, 0x10
-
-gUnknown_83AC960:: @ 83AC960
- .incbin "baserom.gba", 0x3AC960, 0x10
-
-gUnknown_83AC970:: @ 83AC970
- .incbin "baserom.gba", 0x3AC970, 0x20
-
-sFanfares:: @ 83AC990
- .incbin "baserom.gba", 0x3AC990, 0x40
-
-gUnknown_83AC9D0:: @ 83AC9D0
- .incbin "baserom.gba", 0x3AC9D0, 0x28
-
-gUnknown_83AC9F8::
- .incbin "baserom.gba", 0x3AC9F8, 0x8
-
-gUnknown_83ACA00::
- .incbin "baserom.gba", 0x3ACA00, 0x208
-
-gUnknown_83ACC08:: @ 83ACC08
- .incbin "baserom.gba", 0x3ACC08, 0x440
-
-gUnknown_83AD048:: @ 83AD048
- .incbin "baserom.gba", 0x3AD048, 0x308
-
-gUnknown_83AD350:: @ 83AD350
- .incbin "baserom.gba", 0x3AD350, 0x120
-
-gUnknown_83AD470:: @ 83AD470
- .incbin "baserom.gba", 0x3AD470, 0x4E0
-
-gUnknown_83AD950:: @ 83AD950
- .incbin "baserom.gba", 0x3AD950, 0x308
-
-gUnknown_83ADC58:: @ 83ADC58
- .incbin "baserom.gba", 0x3ADC58, 0x120
-
-gUnknown_83ADD78:: @ 83ADD78
- .incbin "baserom.gba", 0x3ADD78, 0xA0
-
-gUnknown_83ADE18:: @ 83ADE18
- .incbin "baserom.gba", 0x3ADE18, 0x144
-
-gUnknown_83ADF5C:: @ 83ADF5C
- .incbin "baserom.gba", 0x3ADF5C, 0xC0
-
-gUnknown_83AE01C:: @ 83AE01C
- .incbin "baserom.gba", 0x3AE01C, 0x20
-
-gUnknown_83AE03C:: @ 83AE03C
- .incbin "baserom.gba", 0x3AE03C, 0x10
-
-gUnknown_83AE04C:: @ 83AE04C
- .incbin "baserom.gba", 0x3AE04C, 0x4
-
-gUnknown_83AE050:: @ 83AE050
- .incbin "baserom.gba", 0x3AE050, 0x4
-
-gUnknown_83AE054:: @ 83AE054
- .incbin "baserom.gba", 0x3AE054, 0x30
-
-gUnknown_83AE084:: @ 83AE084
- .incbin "baserom.gba", 0x3AE084, 0x114D0
-
-gUnknown_83BF554:: @ 83BF554
- .incbin "baserom.gba", 0x3BF554, 0x8
-
-gUnknown_83BF55C:: @ 83BF55C
- .incbin "baserom.gba", 0x3BF55C, 0x18
-
-gUnknown_83BF574:: @ 83BF574
- .incbin "baserom.gba", 0x3BF574, 0x18
-
-gUnknown_83BF58C:: @ 83BF58C
- .incbin "baserom.gba", 0x3BF58C, 0x1C
-
-gUnknown_83BF5A8:: @ 83BF5A8
- .incbin "baserom.gba", 0x3BF5A8, 0x55C
-
-gUnknown_83BFB04:: @ 83BFB04
- .incbin "baserom.gba", 0x3BFB04, 0x18
-
-gUnknown_83BFB1C:: @ 83BFB1C
- .incbin "baserom.gba", 0x3BFB1C, 0x20
-
-gUnknown_83BFB3C:: @ 83BFB3C
- .incbin "baserom.gba", 0x3BFB3C, 0x20
-
-gUnknown_83BFB5C:: @ 83BFB5C
- .incbin "baserom.gba", 0x3BFB5C, 0x18
-
-gUnknown_83BFB74:: @ 83BFB74
- .incbin "baserom.gba", 0x3BFB74, 0x10
-
-gUnknown_83BFB84:: @ 83BFB84
- .incbin "baserom.gba", 0x3BFB84, 0x18
-
-gUnknown_83BFB9C:: @ 83BFB9C
- .incbin "baserom.gba", 0x3BFB9C, 0x20
-
-gUnknown_83BFBBC:: @ 83BFBBC
- .incbin "baserom.gba", 0x3BFBBC, 0x18
-
-gUnknown_83BFBD4:: @ 83BFBD4
- .incbin "baserom.gba", 0x3BFBD4, 0x2FE8
-
-gUnknown_83C2BBC:: @ 83C2BBC
- .incbin "baserom.gba", 0x3C2BBC, 0x4
-
-gUnknown_83C2BC0:: @ 83C2BC0
- .incbin "baserom.gba", 0x3C2BC0, 0xF0
-
-gUnknown_83C2CB0:: @ 83C2CB0
- .incbin "baserom.gba", 0x3C2CB0, 0x10
-
-gUnknown_83C2CC0:: @ 83C2CC0
- .incbin "baserom.gba", 0x3C2CC0, 0x20
-
-gUnknown_83C2CE0:: @ 83C2CE0
- .incbin "baserom.gba", 0x3C2CE0, 0x20
-
-gUnknown_83C2D00:: @ 83C2D00
- .incbin "baserom.gba", 0x3C2D00, 0x20
-
-gUnknown_83C2D20:: @ 83C2D20
- .incbin "baserom.gba", 0x3C2D20, 0x820
-
-gUnknown_83C3540:: @ 83C3540
- .incbin "baserom.gba", 0x3C3540, 0x3080
-
-gUnknown_83C65C0:: @ 83C65C0
- .incbin "baserom.gba", 0x3C65C0, 0x4
-
-gUnknown_83C65C4:: @ 83C65C4
- .incbin "baserom.gba", 0x3C65C4, 0x4
-
-gUnknown_83C65C8:: @ 83C65C8
- .incbin "baserom.gba", 0x3C65C8, 0xC
-
-gUnknown_83C65D4:: @ 83C65D4
- .incbin "baserom.gba", 0x3C65D4, 0x1C
-
-gUnknown_83C65F0:: @ 83C65F0
- .incbin "baserom.gba", 0x3C65F0, 0x18
-
-gUnknown_83C6608:: @ 83C6608
- .incbin "baserom.gba", 0x3C6608, 0x9C
-
-gUnknown_83C66A4:: @ 83C66A4
- .incbin "baserom.gba", 0x3C66A4, 0x18
-
-gUnknown_83C66BC:: @ 83C66BC
- .incbin "baserom.gba", 0x3C66BC, 0x8
-
-gUnknown_83C66C4:: @ 83C66C4
- .incbin "baserom.gba", 0x3C66C4, 0x8
-
-gUnknown_83C66CC:: @ 83C66CC
- .incbin "baserom.gba", 0x3C66CC, 0x38
-
-gUnknown_83C6704:: @ 83C6704
- .incbin "baserom.gba", 0x3C6704, 0x8C
-
-gUnknown_83C6790:: @ 83C6790
- .incbin "baserom.gba", 0x3C6790, 0x18
-
-gUnknown_83C67A8:: @ 83C67A8
- .incbin "baserom.gba", 0x3C67A8, 0x8
-
-gUnknown_83C67B0:: @ 83C67B0
- .incbin "baserom.gba", 0x3C67B0, 0x20
-
-gUnknown_83C67D0:: @ 83C67D0
- .incbin "baserom.gba", 0x3C67D0, 0x18
-
-gUnknown_83C67E8:: @ 83C67E8
- .incbin "baserom.gba", 0x3C67E8, 0x1C
-
-gUnknown_83C6804:: @ 83C6804
- .incbin "baserom.gba", 0x3C6804, 0x38
-
-gUnknown_83C683C:: @ 83C683C
- .incbin "baserom.gba", 0x3C683C, 0x18
-
-gUnknown_83C6854:: @ 83C6854
- .incbin "baserom.gba", 0x3C6854, 0x8
-
-gUnknown_83C685C:: @ 83C685C
- .incbin "baserom.gba", 0x3C685C, 0xC
-
-gUnknown_83C6868:: @ 83C6868
- .incbin "baserom.gba", 0x3C6868, 0x8
-
-gUnknown_83C6870:: @ 83C6870
- .incbin "baserom.gba", 0x3C6870, 0x8
-
-gUnknown_83C6878:: @ 83C6878
- .incbin "baserom.gba", 0x3C6878, 0x44
-
-gUnknown_83C68BC:: @ 83C68BC
- .incbin "baserom.gba", 0x3C68BC, 0x18
-
-gUnknown_83C68D4:: @ 83C68D4
- .incbin "baserom.gba", 0x3C68D4, 0xC
gUnknown_83C68E0:: @ 83C68E0
.incbin "baserom.gba", 0x3C68E0, 0x4
@@ -1499,7 +568,7 @@ gUnknown_83D427C:: @ 83D427C
gUnknown_83D4294:: @ 83D4294
.incbin "baserom.gba", 0x3D4294, 0x6D94
-gUnknown_83DB028:: @ 83DB028
+gItems:: @ 83DB028
.incbin "baserom.gba", 0x3DB028, 0x4074
gUnknown_83DF09C:: @ 83DF09C
diff --git a/data/data_83F5738.s b/data/data_83F5738.s
index e6f026d0e..c14edc5c8 100644
--- a/data/data_83F5738.s
+++ b/data/data_83F5738.s
@@ -55,7 +55,7 @@ gUnknown_83F5BCC:: @ 83F5BCC
gUnknown_83F5D1C:: @ 83F5D1C
.incbin "baserom.gba", 0x3F5D1C, 0x10
-gUnknown_83F5D2C:: @ 83F5D2C
+sStarterMon:: @ 83F5D2C
.incbin "baserom.gba", 0x3F5D2C, 0x6
gUnknown_83F5D32:: @ 83F5D32
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index a96e9ff70..8fb1d4533 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -517,6 +517,7 @@ gUnknown_8415A08:: @ 8415A08
gUnknown_8415A10:: @ 8415A10
.incbin "baserom.gba", 0x415A10, 0x10
+ @ strings
gExpandedPlaceholder_Empty:: @ 8415A20
.incbin "baserom.gba", 0x415A20, 0x1
@@ -586,29 +587,38 @@ gUnknown_8415C64:: @ 8415C64
gUnknown_8415CE8:: @ 8415CE8
.incbin "baserom.gba", 0x415CE8, 0x44
-gUnknown_8415D2C:: @ 8415D2C
- .incbin "baserom.gba", 0x415D2C, 0x1C
+gText_Controls:: @ 8415D2C
+ .string "CONTROLS$"
-gUnknown_8415D48:: @ 8415D48
- .incbin "baserom.gba", 0x415D48, 0x8
+ .align 2
+gUnknown_8415D38:: @ 8415D2C
+ .string "{KEYGFX_DPAD_UP_DOWN}えらぶ {KEYGFX_A_BUTTON}けってい$"
-gUnknown_8415D50:: @ 8415D50
- .incbin "baserom.gba", 0x415D50, 0x10
+ .align 2
+gText_ABUTTONNext:: @ 8415D48
+ .string "{KEYGFX_A_BUTTON}NEXT$"
-gUnknown_8415D60:: @ 8415D60
- .incbin "baserom.gba", 0x415D60, 0x18
+ .align 2
+gText_ABUTTONNext_BBUTTONBack:: @ 8415D50
+ .string "{KEYGFX_A_BUTTON}NEXT {KEYGFX_B_BUTTON}BACK$"
+
+ .align 2
+gText_UPDOWNPick_ABUTTONNext_BBUTTONBack:: @ 8415D60
+ .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}NEXT {KEYGFX_B_BUTTON}CANCEL$"
-gUnknown_8415D78:: @ 8415D78
- .incbin "baserom.gba", 0x415D78, 0x14
+ .align 2
+gText_UPDOWNPick_ABUTTONBBUTTONCancel:: @ 8415D78
+ .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}{KEYGFX_B_BUTTON}CANCEL$"
-gUnknown_8415D8C:: @ 8415D8C
- .incbin "baserom.gba", 0x415D8C, 0x7
+ .align 2
+gText_ABUTTONExit:: @ 8415D8C
+ .string "{KEYGFX_A_BUTTON}EXIT$"
-gUnknown_8415D93:: @ 8415D93
- .incbin "baserom.gba", 0x415D93, 0x4
+gText_Boy:: @ 8415D93
+ .string "BOY$"
-gUnknown_8415D97:: @ 8415D97
- .incbin "baserom.gba", 0x415D97, 0x5
+gText_Girl:: @ 8415D97
+ .string "GIRL$"
gUnknown_8415D9C:: @ 8415D9C
.incbin "baserom.gba", 0x415D9C, 0x1C
@@ -719,70 +729,151 @@ gUnknown_8416188:: @ 8416188
.incbin "baserom.gba", 0x416188, 0x8
gUnknown_8416190:: @ 8416190
- .incbin "baserom.gba", 0x416190, 0x31
+ .string "TIME$"
+
+gUnknown_8416195::
+ .string "どこへ とびますか?$"
+
+gOtherText_Use::
+ .string "USE$"
+
+gUnknown_84161A4::
+ .string "TOSS$"
+
+gUnknown_84161A9::
+ .string "REGISTER$"
+
+gOtherText_Give::
+ .string "GIVE$"
+
+gUnknown_84161B7::
+ .string "けってい$"
+
+gUnknown_84161BC::
+ .string "WALK$"
gFameCheckerText_Cancel:: @ 84161C1
.string "CANCEL$"
-gUnknown_84161C8:: @ 84161C8
- .incbin "baserom.gba", 0x4161C8, 0x5
+gOtherText_Exit:: @ 84161C8
+ .string "EXIT$"
gUnknown_84161CD:: @ 84161CD
- .incbin "baserom.gba", 0x4161CD, 0x22
+ .string "$"
+
+gUnknown_84161CE::
+ .string "キャンセル$"
+
+gUnknown_84161D4::
+ .string "ITEM$"
+
+gUnknown_84161D9::
+ .string "MAIL$"
+
+gUnknown_84161DE::
+ .string "TAKE$"
+
+gUnknown_84161E3::
+ .string "STORE$"
+
+gUnknown_84161E9::
+ .string "CHECK$"
gUnknown_84161EF:: @ 84161EF
- .incbin "baserom.gba", 0x4161EF, 0x13
+ .string "NONE$"
+
+gUnknown_84161F4::
+ .string "OPEN$"
+
+gUnknown_84161F9::
+ .string "DESELECT$"
gUnknown_8416202:: @ 8416202
- .incbin "baserom.gba", 0x416202, 0xA
+ .string "???$"
+
+gUnknown_8416206::
+ .string "?????$"
gUnknown_841620C:: @ 841620C
- .incbin "baserom.gba", 0x41620C, 0x2
+ .string "/$"
gUnknown_841620E:: @ 841620E
- .incbin "baserom.gba", 0x41620E, 0x2
+ .string "-$"
gUnknown_8416210:: @ 8416210
- .incbin "baserom.gba", 0x416210, 0x3
+ .string "--$"
-gUnknown_8416213:: @ 8416213
- .incbin "baserom.gba", 0x416213, 0x4
+gText_ThreeHyphens:: @ 8416213
+ .string "---$"
gUnknown_8416217:: @ 8416217
- .incbin "baserom.gba", 0x416217, 0x8
+ .string "-------$"
gUnknown_841621F:: @ 841621F
- .incbin "baserom.gba", 0x41621F, 0x2
+ .string "♂$"
gUnknown_8416221:: @ 8416221
- .incbin "baserom.gba", 0x416221, 0x2
+ .string "♀$"
gUnknown_8416223:: @ 8416223
- .incbin "baserom.gba", 0x416223, 0x3
+ .string "{UNKNOWN_F9 0x05}$"
+
+gOtherText_UnkF9_08_Clear_01:: @ 8416226
+ .string "{UNKNOWN_F9 0x08}{CLEAR 0x01}$"
-gUnknown_8416226:: @ 8416226
- .incbin "baserom.gba", 0x416226, 0x12
+gUnknown_841622C::
+ .string "{UNKNOWN_F9 0x04}$"
+
+gUnknown_841622F::
+ .string "{ESCAPE 0x03}$"
+
+gUnknown_8416233::
+ .string "{UNKNOWN_F9 0x07}{UNKNOWN_F9 0x08}$"
gUnknown_8416238:: @ 8416238
- .incbin "baserom.gba", 0x416238, 0x3
+ .string "{UNKNOWN_F9 0x06}$"
gFameCheckerText_ListMenuCursor:: @ 841623B
.string "▶$"
gUnknown_841623D:: @ 841623D
- .incbin "baserom.gba", 0x41623D, 0x25
+ .string "YES\nNO$"
+
+gUnknown_8416244::
+ .string "Go back to the\nprevious menu.$"
gUnknown_8416262:: @ 8416262
- .incbin "baserom.gba", 0x416262, 0x23
+ .string "What would you like to do?$"
+
+gUnknown_841627D::
+ .string "POKéDEX$"
gUnknown_8416285:: @ 8416285
- .incbin "baserom.gba", 0x416285, 0x24
+ .string "BAG$"
+
+gUnknown_8416289::
+ .string "ポケナビ$"
+
+gUnknown_841628E::
+ .string "{PLAYER}$"
+
+gUnknown_8416291::
+ .string "SAVE$"
+
+gUnknown_8416296::
+ .string "OPTION$"
+
+gUnknown_841629D::
+ .string "EXIT$"
+
+gUnknown_84162A2::
+ .string "RETIRE$"
gUnknown_84162A9:: @ 84162A9
- .incbin "baserom.gba", 0x4162A9, 0x10
+ .string "{STR_VAR_1}/{STR_VAR_2}\nBALLS {STR_VAR_3}$"
-gUnknown_84162B9:: @ 84162B9
- .incbin "baserom.gba", 0x4162B9, 0x4
+gText_TimesStrVar1:: @ 84162B9
+ .string "×{STR_VAR_1}$"
gUnknown_84162BD:: @ 84162BD
.string " BERRY$"
@@ -799,20 +890,21 @@ gUnknown_84162F5:: @ 84162F5
gUnknown_84162FF:: @ 84162FF
.incbin "baserom.gba", 0x4162FF, 0x2
-gUnknown_8416301:: @ 8416301
- .incbin "baserom.gba", 0x416301, 0xE
+gText_IsSelected:: @ 8416301
+ .string " is\nselected.$"
gUnknown_841630F:: @ 841630F
.incbin "baserom.gba", 0x41630F, 0x1B
-gUnknown_841632A:: @ 841632A
- .incbin "baserom.gba", 0x41632A, 0x15
+gText_ThereIsNoPokemon:: @ 841632A
+ .string "There is no\n"
+ .string "POKéMON.$"
gUnknown_841633F:: @ 841633F
.incbin "baserom.gba", 0x41633F, 0x1F
-gUnknown_841635E:: @ 841635E
- .incbin "baserom.gba", 0x41635E, 0x16
+gText_ItemCantBeHeld:: @ 841635E
+ .string "The {STR_VAR_1} can’t be held.$"
gUnknown_8416374:: @ 8416374
.incbin "baserom.gba", 0x416374, 0x1B
@@ -883,20 +975,24 @@ gUnknown_8416690:: @ 8416690
gUnknown_84166A7:: @ 84166A7
.incbin "baserom.gba", 0x4166A7, 0x2C
-gUnknown_84166D3:: @ 84166D3
- .incbin "baserom.gba", 0x4166D3, 0x8
+gText_TMCase:: @ 84166D3
+ .string "TM CASE$"
-gUnknown_84166DB:: @ 84166DB
- .incbin "baserom.gba", 0x4166DB, 0x6
+gText_Close:: @ 84166DB
+ .string "CLOSE$"
-gUnknown_84166E1:: @ 84166E1
- .incbin "baserom.gba", 0x4166E1, 0x1E
+gText_TMCaseWillBePutAway:: @ 84166E1
+ .string "The TM CASE will be\n"
+ .string "put away.$"
-gUnknown_84166FF:: @ 84166FF
- .incbin "baserom.gba", 0x4166FF, 0x4
+gText_FontSize0:: @ 84166FF
+ .string "{SIZE 0}$"
-gUnknown_8416703:: @ 8416703
- .incbin "baserom.gba", 0x416703, 0x7
+gText_FontSize2:: @ 8416703
+ .string "{SIZE 2}$"
+
+gUnknown_8416707:: @ 8416707
+ .string " $"
gUnknown_841670A:: @ 841670A
.incbin "baserom.gba", 0x41670A, 0xC
@@ -928,16 +1024,19 @@ gUnknown_8416861:: @ 8416861
gUnknown_841689E:: @ 841689E
.incbin "baserom.gba", 0x41689E, 0x53
-gUnknown_84168F1:: @ 84168F1
- .incbin "baserom.gba", 0x4168F1, 0x20
+gText_OhNoICantBuyThat:: @ 84168F1
+ .string "{STR_VAR_1}? Oh, no.\n"
+ .string "I can’t buy that.{PAUSE_UNTIL_PRESS}$"
-gUnknown_8416911:: @ 8416911
- .incbin "baserom.gba", 0x416911, 0x25
+gText_HowManyWouldYouLikeToSell:: @ 8416911
+ .string "{STR_VAR_1}?\n"
+ .string "How many would you like to sell?$"
-gUnknown_8416936:: @ 8416936
- .incbin "baserom.gba", 0x416936, 0x23
+gText_ICanPayThisMuch_WouldThatBeOkay:: @ 8416936
+ .string "I can pay ¥{STR_VAR_3}.\n"
+ .string "Would that be okay?$"
-gUnknown_8416959:: @ 8416959
+gText_TurnedOverItemsWorthYen:: @ 8416959
.incbin "baserom.gba", 0x416959, 0x21
gText_PokedollarVar1:: @ 841697A
@@ -1803,13 +1902,211 @@ gUnknown_841B779:: @ 841B779
.incbin "baserom.gba", 0x41B779, 0xC4
gUnknown_841B83D:: @ 841B83D
- .incbin "baserom.gba", 0x41B83D, 0xD4A
-
-gUnknown_841C587:: @ 841C587
- .incbin "baserom.gba", 0x41C587, 0x10C
+ .string "Hey, all you TRAINERS out there!\n"
+ .string "HELLO, TRAINERS!\p"
+ .string "……… ……… ………\p"
+ .string "Come on, let me hear you!\n"
+ .string "HELLO, TRAINERS!\l"
+ .string "It’s me, the POKé DUDE!\p"
+ .string "$"
-gUnknown_841C693:: @ 841C693
- .incbin "baserom.gba", 0x41C693, 0x4A9
+gUnknown_841B8BF:: @ 841B8BF
+ .string "Today, the POKé DUDE’s here to\n"
+ .string "tell you about how you can battle\l"
+ .string "POKéMON!\p"
+ .string "Say you’re out for a stroll when,\n"
+ .string "suddenly, a wild POKéMON appears!\p"
+ .string "It’s up to you to smartly use your\n"
+ .string "POKéMON and their moves to reduce\l"
+ .string "the opponent’s HP to nothing, and\l"
+ .string "claim victory!\p"
+ .string "I’ll show you how to do that in\n"
+ .string "person and for sure!\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the super\n"
+ .string "POKé DUDE SHOW!$"
+
+gUnknown_841BA41:: @ 841BA41
+ .string "Well, did you get that?\p"
+ .string "Even if your own POKéMON’s HP\n"
+ .string "falls to zero, and it becomes\l"
+ .string "unable to battle, not to worry!\p"
+ .string "Just take it to any POKéMON\n"
+ .string "CENTER and heal it!\p"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
+
+gUnknown_841BB40:: @ 841BB40
+ .string "Today, the POKé DUDE’s here to\n"
+ .string "tell you about status problems!\p"
+ .string "Status problems include poisoning,\n"
+ .string "paralysis, sleep, burn…\p"
+ .string "There are a couple others, but\n"
+ .string "they really are trouble.\p"
+ .string "Get any one, and your POKéMON\n"
+ .string "may become useless in battle.\p"
+ .string "You know, it hurts the POKé DUDE\n"
+ .string "to see a POKéMON suffer…\p"
+ .string "So, what should you do if your\n"
+ .string "POKéMON gets a status problem?\p"
+ .string "Well, you’ve got me to show you!\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the super\n"
+ .string "POKé DUDE SHOW!$"
+
+gUnknown_841BD10:: @ 841BD10
+ .string "Poisoning or paralysis don’t go\n"
+ .string "away after a battle.\p"
+ .string "If a POKéMON is poisoned, it loses\n"
+ .string "HP even while you’re walking.\p"
+ .string "You should heal POKéMON of these\n"
+ .string "kinds of problems right away.\p"
+ .string "Use an item, or try to get to a\n"
+ .string "POKéMON CENTER for healing.\p"
+ .string "That wasn’t hard, was it?\n"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
+
+gUnknown_841BE76:: @ 841BE76
+ .string "Does everyone know about type\n"
+ .string "matchups?\p"
+ .string "POKéMON and their moves all\n"
+ .string "belong to certain types.\p"
+ .string "For example, there are such types\n"
+ .string "as GRASS and WATER.\p"
+ .string "You need to consider the type of\n"
+ .string "the move used to attack…\p"
+ .string "And, the type of the POKéMON that\n"
+ .string "is hit by that attack.\p"
+ .string "Depending on how those two types\n"
+ .string "match up, the damage can change.\p"
+ .string "You see, it depends on whether\n"
+ .string "the type matchup is good or bad.\p"
+ .string "If you don’t know how matchups\n"
+ .string "work, battles will be tough.\p"
+ .string "So, let me demonstrate exactly\n"
+ .string "what I mean.\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the super\n"
+ .string "POKé DUDE SHOW!$"
+
+gUnknown_841C0AF:: @ 841C0AF
+ .string "Is it possible to launch an attack\n"
+ .string "that will inflict heavy damage?\p"
+ .string "Does the opposing POKéMON pose\n"
+ .string "a threat to your POKéMON?\p"
+ .string "Is there any chance that it may\n"
+ .string "have disastrously tough moves?\p"
+ .string "Watch the type matchups to gain\n"
+ .string "the upper hand!\p"
+ .string "All righty, be seeing you!\p"
+ .string "Oh, for the COOL-type POKé DUDE,\n"
+ .string "AWESOME-type kids like you match\l"
+ .string "up perfectly!\p"
+ .string "Remember, a good deed a day\n"
+ .string "brings happiness to stay!$"
+
+gUnknown_841C23B:: @ 841C23B
+ .string "Today, the POKé DUDE’s going to\n"
+ .string "show you how to catch POKéMON!\p"
+ .string "Just imagine… A groovy POKéMON\n"
+ .string "suddenly appearing in the wild!\p"
+ .string "Oh, you want it!\n"
+ .string "You just can’t help it!\p"
+ .string "Oh, you have to catch it!\n"
+ .string "You gotta have it!\p"
+ .string "Let me show you how you can make\n"
+ .string "it happen!\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the super\n"
+ .string "POKé DUDE SHOW!$"
+
+gUnknown_841C384:: @ 841C384
+ .string "If your first POKé BALL fails to\n"
+ .string "catch the POKéMON, don’t give up!\p"
+ .string "Keep throwing POKé BALLS…\n"
+ .string "It’s bound to work sometime!\p"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
+
+gUnknown_841C459:: @ 841C459
+ .string "Hey, everyone!\n"
+ .string "Do you all have TMs?\p"
+ .string "A TM, Technical Machine, is an\n"
+ .string "amazingly great item!\p"
+ .string "It teaches POKéMON a move that\n"
+ .string "it may not learn when leveling up!\p"
+ .string "Isn’t that just great? What a\n"
+ .string "convenient world we live in!\p"
+ .string "Open the TM CASE and check out\n"
+ .string "the TMs you have.\p"
+ .string "You can check them out in detail,\n"
+ .string "too.$"
+
+gPokeDudeText_TMTypes:: @ 841C587
+ .string "POKé DUDE: NORMAL, WATER, GRASS…\n"
+ .string "TMs also come in types.\p"
+ .string "Check the type and teach it to\n"
+ .string "a POKéMON that matches up well.\p"
+ .string "For example, WATER PULSE is\n"
+ .string "suitable for WATER-type POKéMON.\p"
+ .string "BULLET SEED is a move that most\n"
+ .string "GRASS-type POKéMON can learn.\p"
+ .string "There’s one other thing!$"
+
+gPokeDudeText_ReadTMDescription:: @ 841C693
+ .string "Don’t just look at the type, read\n"
+ .string "the description, too.\p"
+ .string "It will contain hints about what\n"
+ .string "POKéMON might learn the move.\p"
+ .string "For example, take a move like\n"
+ .string "FOCUS PUNCH.\p"
+ .string "It doesn’t sound like anything a\n"
+ .string "bird or fish POKéMON can learn.\p"
+ .string "So, try using it on POKéMON with\n"
+ .string "arms that can throw punches!$"
+
+gUnknown_841C7B4:: @ 841C7B4
+ .string "Wow, I talked a lot today!\n"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
+
+gUnknown_841C82A:: @ 841C82A
+ .string "A TRAINER’s BAG has a bunch of\n"
+ .string "nifty, convenient features!\p"
+ .string "Take stuff in the KEY ITEMS\n"
+ .string "POCKET, for instance.\p"
+ .string "You can use a key item without\n"
+ .string "opening the BAG every time.\p"
+ .string "For example, let’s pretend I have\n"
+ .string "a TEACHY TV in my BAG.\p"
+ .string "I can register it for instant use,\n"
+ .string "and I’ll show you how!\p"
+ .string "All righty, here goes!\p"
+ .string "Keep your eyes glued to the sorta\n"
+ .string "super POKé DUDE SHOW!$"
+
+gUnknown_841C994:: @ 841C994
+ .string "And now, your TEACHY TV is\n"
+ .string "registered.\p"
+ .string "How do you use it?\n"
+ .string "Well, here’s how it works.\p"
+ .string "Once an item in the KEY ITEMS\n"
+ .string "POKCET is registered, you can use\l"
+ .string "it by pressing SELECT.\p"
+ .string "So, you’ve given yourself\n"
+ .string "one-touch access to TEACHY TV.\p"
+ .string "All it takes for you to see me is\n"
+ .string "pressing one button!\p"
+ .string "That kind of attention is a little\n"
+ .string "embarrassing!\p"
+ .string "All righty, be seeing you!\p"
+ .string "Remember, TRAINERS, a good deed\n"
+ .string "a day brings happiness to stay!$"
gUnknown_841CB3C:: @ 841CB3C
.incbin "baserom.gba", 0x41CB3C, 0x5
@@ -2286,8 +2583,9 @@ gUnknown_841EDCA:: @ 841EDCA
.incbin "baserom.gba", 0x41EDCA, 0x61
gUnknown_841EE2B:: @ 841EE2B
- .incbin "baserom.gba", 0x41EE2B, 0x19
+ .incbin "baserom.gba", 0x41EE2B, 0x17
+ .align 2
gUnknown_841EE44:: @ 841EE44
.incbin "baserom.gba", 0x41EE44, 0x20
@@ -2315,8 +2613,8 @@ gUnknown_841EF10:: @ 841EF10
gUnknown_841F1C8:: @ 841F1C8
.incbin "baserom.gba", 0x41F1C8, 0x240
-gUnknown_841F408:: @ 841F408
- .incbin "baserom.gba", 0x41F408, 0x20
+gTMCaseMainWindowPalette:: @ 841F408
+ .incbin "graphics/tm_case/unk_841F408.gbapal"
gUnknown_841F428:: @ 841F428
.incbin "baserom.gba", 0x41F428, 0x4
diff --git a/data/data_845FD54.s b/data/data_845FD54.s
deleted file mode 100644
index d05e14570..000000000
--- a/data/data_845FD54.s
+++ /dev/null
@@ -1,600 +0,0 @@
- .section .rodata
-
- .align 2
- // oak_speech
-gUnknown_845FD54:: @ 845FD54
- .incbin "baserom.gba", 0x45FD54, 0x814
-
-gUnknown_8460568:: @ 8460568
- .incbin "baserom.gba", 0x460568, 0x80
-
-gUnknown_84605E8:: @ 84605E8
- .incbin "baserom.gba", 0x4605E8, 0x5C0
-
-gUnknown_8460BA8:: @ 8460BA8
- .incbin "baserom.gba", 0x460BA8, 0xFC
-
-gUnknown_8460CA4:: @ 8460CA4
- .incbin "baserom.gba", 0x460CA4, 0x44
-
-gUnknown_8460CE8:: @ 8460CE8
- .incbin "baserom.gba", 0x460CE8, 0xAC
-
-gUnknown_8460D94:: @ 8460D94
- .incbin "baserom.gba", 0x460D94, 0xA0
-
-gUnknown_8460E34:: @ 8460E34
- .incbin "baserom.gba", 0x460E34, 0xA0
-
-gUnknown_8460ED4:: @ 8460ED4
- .incbin "baserom.gba", 0x460ED4, 0x40
-
-gUnknown_8460F14:: @ 8460F14
- .incbin "baserom.gba", 0x460F14, 0x6E8
-
-gUnknown_84615FC:: @ 84615FC
- .incbin "baserom.gba", 0x4615FC, 0x40
-
-gUnknown_846163C:: @ 846163C
- .incbin "baserom.gba", 0x46163C, 0x698
-
-gUnknown_8461CD4:: @ 8461CD4
- .incbin "baserom.gba", 0x461CD4, 0x40
-
-gUnknown_8461D14:: @ 8461D14
- .incbin "baserom.gba", 0x461D14, 0x698
-
-gUnknown_84623AC:: @ 84623AC
- .incbin "baserom.gba", 0x4623AC, 0x40
-
-gUnknown_84623EC:: @ 84623EC
- .incbin "baserom.gba", 0x4623EC, 0xA6C
-
-gUnknown_8462E58:: @ 8462E58
- .incbin "baserom.gba", 0x462E58, 0x5C
-
-gUnknown_8462EB4:: @ 8462EB4
- .incbin "baserom.gba", 0x462EB4, 0xC
-
-gUnknown_8462EC0:: @ 8462EC0
- .incbin "baserom.gba", 0x462EC0, 0x8
-
-gUnknown_8462EC8:: @ 8462EC8
- .incbin "baserom.gba", 0x462EC8, 0x8
-
-gUnknown_8462ED0:: @ 8462ED0
- .incbin "baserom.gba", 0x462ED0, 0x8
-
-gUnknown_8462ED8:: @ 8462ED8
- .incbin "baserom.gba", 0x462ED8, 0x10
-
-gUnknown_8462EE8:: @ 8462EE8
- .incbin "baserom.gba", 0x462EE8, 0x4
-
-gUnknown_8462EEC:: @ 8462EEC
- .incbin "baserom.gba", 0x462EEC, 0x4
-
-gUnknown_8462EF0:: @ 8462EF0
- .incbin "baserom.gba", 0x462EF0, 0xC
-
-gUnknown_8462EFC:: @ 8462EFC
- .incbin "baserom.gba", 0x462EFC, 0x18
-
-gUnknown_8462F14:: @ 8462F14
- .incbin "baserom.gba", 0x462F14, 0x8
-
-gUnknown_8462F1C:: @ 8462F1C
- .incbin "baserom.gba", 0x462F1C, 0x8
-
-gUnknown_8462F24:: @ 8462F24
- .incbin "baserom.gba", 0x462F24, 0x2C
-
-gUnknown_8462F50:: @ 8462F50
- .incbin "baserom.gba", 0x462F50, 0xDC
-
-gUnknown_846302C:: @ 846302C
- .incbin "baserom.gba", 0x46302C, 0x48
-
-gUnknown_8463074:: @ 8463074
- .incbin "baserom.gba", 0x463074, 0x18
-
-gUnknown_846308C:: @ 846308C
- .incbin "baserom.gba", 0x46308C, 0x4C
-
-gUnknown_84630D8:: @ 84630D8
- .incbin "baserom.gba", 0x4630D8, 0x4C
-
-gUnknown_8463124:: @ 8463124
- .incbin "baserom.gba", 0x463124, 0x10
-
-gUnknown_8463134:: @ 8463134
- .incbin "baserom.gba", 0x463134, 0xC
-
-gUnknown_8463140:: @ 8463140
- .incbin "baserom.gba", 0x463140, 0x10
-
-gUnknown_8463150:: @ 8463150
- .incbin "baserom.gba", 0x463150, 0x18
-
-gUnknown_8463168:: @ 8463168
- .incbin "baserom.gba", 0x463168, 0x3
-
-gUnknown_846316B:: @ 846316B
- .incbin "baserom.gba", 0x46316B, 0x5
-
-gUnknown_8463170:: @ 8463170
- .incbin "baserom.gba", 0x463170, 0x8
-
-gUnknown_8463178:: @ 8463178
- .incbin "baserom.gba", 0x463178, 0x4
-
-gUnknown_846317C:: @ 846317C
- .incbin "baserom.gba", 0x46317C, 0x4
-
-gUnknown_8463180:: @ 8463180
- .incbin "baserom.gba", 0x463180, 0x4
-
-gUnknown_8463184:: @ 8463184
- .incbin "baserom.gba", 0x463184, 0xC
-
-gUnknown_8463190:: @ 8463190
- .incbin "baserom.gba", 0x463190, 0x50
-
-gUnknown_84631E0:: @ 84631E0
- .incbin "baserom.gba", 0x4631E0, 0x8
-
-gUnknown_84631E8:: @ 84631E8
- .incbin "baserom.gba", 0x4631E8, 0x30
-
-gUnknown_8463218:: @ 8463218
- .incbin "baserom.gba", 0x463218, 0x8
-
-gUnknown_8463220:: @ 8463220
- .incbin "baserom.gba", 0x463220, 0x18
-
-gUnknown_8463238:: @ 8463238
- .incbin "baserom.gba", 0x463238, 0x24
-
-gUnknown_846325C:: @ 846325C
- .incbin "baserom.gba", 0x46325C, 0x48
-
-gUnknown_84632A4:: @ 84632A4
- .incbin "baserom.gba", 0x4632A4, 0x18
-
-gUnknown_84632BC:: @ 84632BC
- .incbin "baserom.gba", 0x4632BC, 0x4
-
-gUnknown_84632C0:: @ 84632C0
- .incbin "baserom.gba", 0x4632C0, 0x4
-
-gUnknown_84632C4:: @ 84632C4
- .incbin "baserom.gba", 0x4632C4, 0x4
-
-gUnknown_84632C8:: @ 84632C8
- .incbin "baserom.gba", 0x4632C8, 0x4
-
-gUnknown_84632CC:: @ 84632CC
- .incbin "baserom.gba", 0x4632CC, 0x4
-
-gUnknown_84632D0:: @ 84632D0
- .incbin "baserom.gba", 0x4632D0, 0x4
-
-gUnknown_84632D4:: @ 84632D4
- .incbin "baserom.gba", 0x4632D4, 0x4
-
-gUnknown_84632D8:: @ 84632D8
- .incbin "baserom.gba", 0x4632D8, 0x18
-
-gUnknown_84632F0:: @ 84632F0
- .incbin "baserom.gba", 0x4632F0, 0x18
-
-gUnknown_8463308:: @ 8463308
- .incbin "baserom.gba", 0x463308, 0x20
-
-gUnknown_8463328:: @ 8463328
- .incbin "baserom.gba", 0x463328, 0x70
-
-gUnknown_8463398:: @ 8463398
- .incbin "baserom.gba", 0x463398, 0x40
-
-gUnknown_84633D8:: @ 84633D8
- .incbin "baserom.gba", 0x4633D8, 0x44
-
-gUnknown_846341C:: @ 846341C
- .incbin "baserom.gba", 0x46341C, 0x20
-
-gUnknown_846343C:: @ 846343C
- .incbin "baserom.gba", 0x46343C, 0x128
-
-gUnknown_8463564:: @ 8463564
- .incbin "baserom.gba", 0x463564, 0x1C
-
-gUnknown_8463580:: @ 8463580
- .incbin "baserom.gba", 0x463580, 0x140
-
-gUnknown_84636C0:: @ 84636C0
- .incbin "baserom.gba", 0x4636C0, 0x20
-
-gUnknown_84636E0:: @ 84636E0
- .incbin "baserom.gba", 0x4636E0, 0x20
-
-gUnknown_8463700:: @ 8463700
- .incbin "baserom.gba", 0x463700, 0x20
-
-gUnknown_8463720:: @ 8463720
- .incbin "baserom.gba", 0x463720, 0x20
-
-gUnknown_8463740:: @ 8463740
- .incbin "baserom.gba", 0x463740, 0x12C
-
-gUnknown_846386C:: @ 846386C
- .incbin "baserom.gba", 0x46386C, 0x120
-
-gUnknown_846398C:: @ 846398C
- .incbin "baserom.gba", 0x46398C, 0x18
-
-gUnknown_84639A4:: @ 84639A4
- .incbin "baserom.gba", 0x4639A4, 0x8
-
-gUnknown_84639AC:: @ 84639AC
- .incbin "baserom.gba", 0x4639AC, 0x48
-
-gUnknown_84639F4:: @ 84639F4
- .incbin "baserom.gba", 0x4639F4, 0x20
-
-gUnknown_8463A14:: @ 8463A14
- .incbin "baserom.gba", 0x463A14, 0x68
-
-gUnknown_8463A7C:: @ 8463A7C
- .incbin "baserom.gba", 0x463A7C, 0x70
-
-gUnknown_8463AEC:: @ 8463AEC
- .incbin "baserom.gba", 0x463AEC, 0x10
-
-gUnknown_8463AFC:: @ 8463AFC
- .incbin "baserom.gba", 0x463AFC, 0x4
-
-gUnknown_8463B00:: @ 8463B00
- .incbin "baserom.gba", 0x463B00, 0x20
-
-gUnknown_8463B20:: @ 8463B20
- .incbin "baserom.gba", 0x463B20, 0x10
-
-gUnknown_8463B30:: @ 8463B30
- .incbin "baserom.gba", 0x463B30, 0x10
-
-gUnknown_8463B40:: @ 8463B40
- .incbin "baserom.gba", 0x463B40, 0x4
-
-gUnknown_8463B44:: @ 8463B44
- .incbin "baserom.gba", 0x463B44, 0x20
-
-gUnknown_8463B64:: @ 8463B64
- .incbin "baserom.gba", 0x463B64, 0x24
-
-gUnknown_8463B88:: @ 8463B88
- .incbin "baserom.gba", 0x463B88, 0xF8
-
-gUnknown_8463C80:: @ 8463C80
- .incbin "baserom.gba", 0x463C80, 0x1E0
-
-gUnknown_8463E60:: @ 8463E60
- .incbin "baserom.gba", 0x463E60, 0x64
-
-gUnknown_8463EC4:: @ 8463EC4
- .incbin "baserom.gba", 0x463EC4, 0x10
-
-gUnknown_8463ED4:: @ 8463ED4
- .incbin "baserom.gba", 0x463ED4, 0x1C
-
-gUnknown_8463EF0:: @ 8463EF0
- .incbin "baserom.gba", 0x463EF0, 0xC
-
-gUnknown_8463EFC:: @ 8463EFC
- .incbin "baserom.gba", 0x463EFC, 0x10
-
-gUnknown_8463F0C:: @ 8463F0C
- .incbin "baserom.gba", 0x463F0C, 0x18
-
-gUnknown_8463F24:: @ 8463F24
- .incbin "baserom.gba", 0x463F24, 0x18
-
-gUnknown_8463F3C:: @ 8463F3C
- .incbin "baserom.gba", 0x463F3C, 0x20
-
-gUnknown_8463F5C:: @ 8463F5C
- .incbin "baserom.gba", 0x463F5C, 0x20
-
-gUnknown_8463F7C:: @ 8463F7C
- .incbin "baserom.gba", 0x463F7C, 0x20
-
-gUnknown_8463F9C:: @ 8463F9C
- .incbin "baserom.gba", 0x463F9C, 0x8
-
-gUnknown_8463FA4:: @ 8463FA4
- .incbin "baserom.gba", 0x463FA4, 0x3
-
-gUnknown_8463FA7:: @ 8463FA7
- .incbin "baserom.gba", 0x463FA7, 0x11
-
-gUnknown_8463FB8:: @ 8463FB8
- .incbin "baserom.gba", 0x463FB8, 0x6
-
-gUnknown_8463FBE:: @ 8463FBE
- .incbin "baserom.gba", 0x463FBE, 0x3
-
-gUnknown_8463FC1:: @ 8463FC1
- .incbin "baserom.gba", 0x463FC1, 0x5
-
-gUnknown_8463FC6:: @ 8463FC6
- .incbin "baserom.gba", 0x463FC6, 0x7
-
-gUnknown_8463FCD:: @ 8463FCD
- .incbin "baserom.gba", 0x463FCD, 0x7
-
-gUnknown_8463FD4:: @ 8463FD4
- .incbin "baserom.gba", 0x463FD4, 0xB
-
-gUnknown_8463FDF:: @ 8463FDF
- .incbin "baserom.gba", 0x463FDF, 0xB
-
-gUnknown_8463FEA:: @ 8463FEA
- .incbin "baserom.gba", 0x463FEA, 0x12
-
-gUnknown_8463FFC:: @ 8463FFC
- .incbin "baserom.gba", 0x463FFC, 0xC
-
-gUnknown_8464008:: @ 8464008
- .incbin "baserom.gba", 0x464008, 0x120
-
-gUnknown_8464128:: @ 8464128
- .incbin "baserom.gba", 0x464128, 0x20
-
-gUnknown_8464148:: @ 8464148
- .incbin "baserom.gba", 0x464148, 0x174
-
-gUnknown_84642BC:: @ 84642BC
- .incbin "baserom.gba", 0x4642BC, 0x4
-
-gUnknown_84642C0:: @ 84642C0
- .incbin "baserom.gba", 0x4642C0, 0x34
-
-gUnknown_84642F4:: @ 84642F4
- .incbin "baserom.gba", 0x4642F4, 0xC
-
-gUnknown_8464300:: @ 8464300
- .incbin "baserom.gba", 0x464300, 0x4C
-
-gUnknown_846434C:: @ 846434C
- .incbin "baserom.gba", 0x46434C, 0xC
-
-gUnknown_8464358:: @ 8464358
- .incbin "baserom.gba", 0x464358, 0x14
-
-gUnknown_846436C:: @ 846436C
- .incbin "baserom.gba", 0x46436C, 0x8
-
-gUnknown_8464374:: @ 8464374
- .incbin "baserom.gba", 0x464374, 0x8
-
-gUnknown_846437C:: @ 846437C
- .incbin "baserom.gba", 0x46437C, 0x28
-
-gUnknown_84643A4:: @ 84643A4
- .incbin "baserom.gba", 0x4643A4, 0x4
-
-gUnknown_84643A8:: @ 84643A8
- .incbin "baserom.gba", 0x4643A8, 0x4
-
-gUnknown_84643AC:: @ 84643AC
- .incbin "baserom.gba", 0x4643AC, 0x4
-
-gUnknown_84643B0:: @ 84643B0
- .incbin "baserom.gba", 0x4643B0, 0x4
-
-gUnknown_84643B4:: @ 84643B4
- .incbin "baserom.gba", 0x4643B4, 0x4
-
-gUnknown_84643B8:: @ 84643B8
- .incbin "baserom.gba", 0x4643B8, 0x20
-
-gUnknown_84643D8:: @ 84643D8
- .incbin "baserom.gba", 0x4643D8, 0x18
-
-gUnknown_84643F0:: @ 84643F0
- .incbin "baserom.gba", 0x4643F0, 0x8
-
-gUnknown_84643F8:: @ 84643F8
- .incbin "baserom.gba", 0x4643F8, 0x8
-
-gUnknown_8464400:: @ 8464400
- .incbin "baserom.gba", 0x464400, 0x48
-
-gUnknown_8464448:: @ 8464448
- .incbin "baserom.gba", 0x464448, 0x60
-
-gUnknown_84644A8:: @ 84644A8
- .incbin "baserom.gba", 0x4644A8, 0x8
-
-gUnknown_84644B0:: @ 84644B0
- .incbin "baserom.gba", 0x4644B0, 0x8
-
-gUnknown_84644B8:: @ 84644B8
- .incbin "baserom.gba", 0x4644B8, 0x32C
-
-gUnknown_84647E4:: @ 84647E4
- .incbin "baserom.gba", 0x4647E4, 0x18
-
-gUnknown_84647FC:: @ 84647FC
- .incbin "baserom.gba", 0x4647FC, 0x8
-
-gUnknown_8464804:: @ 8464804
- .incbin "baserom.gba", 0x464804, 0x38
-
-gUnknown_846483C:: @ 846483C
- .incbin "baserom.gba", 0x46483C, 0x40
-
-gUnknown_846487C:: @ 846487C
- .incbin "baserom.gba", 0x46487C, 0x8
-
-gUnknown_8464884:: @ 8464884
- .incbin "baserom.gba", 0x464884, 0xC
-
-gUnknown_8464890:: @ 8464890
- .incbin "baserom.gba", 0x464890, 0x1E
-
-gUnknown_84648AE:: @ 84648AE
- .incbin "baserom.gba", 0x4648AE, 0xF
-
-gUnknown_84648BD:: @ 84648BD
- .incbin "baserom.gba", 0x4648BD, 0x15
-
-gUnknown_84648D2:: @ 84648D2
- .incbin "baserom.gba", 0x4648D2, 0x54
-
-gUnknown_8464926:: @ 8464926
- .incbin "baserom.gba", 0x464926, 0x40
-
-gUnknown_8464966:: @ 8464966
- .incbin "baserom.gba", 0x464966, 0xC4A
-
-gUnknown_84655B0:: @ 84655B0
- .incbin "baserom.gba", 0x4655B0, 0x18
-
-gUnknown_84655C8:: @ 84655C8
- .incbin "baserom.gba", 0x4655C8, 0x40
-
-gUnknown_8465608:: @ 8465608
- .incbin "baserom.gba", 0x465608, 0xE
-
-gUnknown_8465616:: @ 8465616
- .incbin "baserom.gba", 0x465616, 0xC0
-
-gUnknown_84656D6:: @ 84656D6
- .incbin "baserom.gba", 0x4656D6, 0x10E
-
-gUnknown_84657E4:: @ 84657E4
- .incbin "baserom.gba", 0x4657E4, 0x98
-
-gUnknown_846587C:: @ 846587C
- .incbin "baserom.gba", 0x46587C, 0x5C
-
-gUnknown_84658D8:: @ 84658D8
- .incbin "baserom.gba", 0x4658D8, 0x18
-
-gUnknown_84658F0:: @ 84658F0
- .incbin "baserom.gba", 0x4658F0, 0x40
-
-gUnknown_8465930:: @ 8465930
- .incbin "baserom.gba", 0x465930, 0x20
-
-gUnknown_8465950:: @ 8465950
- .incbin "baserom.gba", 0x465950, 0x80
-
-gUnknown_84659D0:: @ 84659D0
- .incbin "baserom.gba", 0x4659D0, 0x804
-
-gUnknown_84661D4:: @ 84661D4
- .incbin "baserom.gba", 0x4661D4, 0x2E8
-
-gUnknown_84664BC:: @ 84664BC
- .incbin "baserom.gba", 0x4664BC, 0x20
-
-gUnknown_84664DC:: @ 84664DC
- .incbin "baserom.gba", 0x4664DC, 0x60
-
-gUnknown_846653C:: @ 846653C
- .incbin "baserom.gba", 0x46653C, 0x84
-
-gUnknown_84665C0:: @ 84665C0
- .incbin "baserom.gba", 0x4665C0, 0x60
-
-gUnknown_8466620:: @ 8466620
- .incbin "baserom.gba", 0x466620, 0x378
-
-gUnknown_8466998:: @ 8466998
- .incbin "baserom.gba", 0x466998, 0x178
-
-gUnknown_8466B10:: @ 8466B10
- .incbin "baserom.gba", 0x466B10, 0x10
-
-gUnknown_8466B20:: @ 8466B20
- .incbin "baserom.gba", 0x466B20, 0xEC
-
-gUnknown_8466C0C:: @ 8466C0C
- .incbin "baserom.gba", 0x466C0C, 0x28
-
-gUnknown_8466C34:: @ 8466C34
- .incbin "baserom.gba", 0x466C34, 0x4
-
-gUnknown_8466C38:: @ 8466C38
- .incbin "baserom.gba", 0x466C38, 0x8
-
-gUnknown_8466C40:: @ 8466C40
- .incbin "baserom.gba", 0x466C40, 0x18
-
-gUnknown_8466C58:: @ 8466C58
- .incbin "baserom.gba", 0x466C58, 0xB8
-
-gUnknown_8466D10:: @ 8466D10
- .incbin "baserom.gba", 0x466D10, 0x20
-
-gUnknown_8466D30:: @ 8466D30
- .incbin "baserom.gba", 0x466D30, 0x30
-
-gUnknown_8466D60:: @ 8466D60
- .incbin "baserom.gba", 0x466D60, 0x10
-
-gUnknown_8466D70:: @ 8466D70
- .incbin "baserom.gba", 0x466D70, 0x20
-
-gUnknown_8466D90:: @ 8466D90
- .incbin "baserom.gba", 0x466D90, 0x8
-
-gUnknown_8466D98:: @ 8466D98
- .incbin "baserom.gba", 0x466D98, 0x8
-
-gUnknown_8466DA0:: @ 8466DA0
- .incbin "baserom.gba", 0x466DA0, 0x8
-
-gUnknown_8466DA8:: @ 8466DA8
- .incbin "baserom.gba", 0x466DA8, 0x8
-
-gUnknown_8466DB0:: @ 8466DB0
- .incbin "baserom.gba", 0x466DB0, 0x8
-
-gUnknown_8466DB8:: @ 8466DB8
- .incbin "baserom.gba", 0x466DB8, 0x8
-
-gUnknown_8466DC0:: @ 8466DC0
- .incbin "baserom.gba", 0x466DC0, 0x8
-
-gUnknown_8466DC8:: @ 8466DC8
- .incbin "baserom.gba", 0x466DC8, 0x8
-
-gUnknown_8466DD0:: @ 8466DD0
- .incbin "baserom.gba", 0x466DD0, 0x18
-
-gUnknown_8466DE8:: @ 8466DE8
- .incbin "baserom.gba", 0x466DE8, 0x18
-
-gUnknown_8466E00:: @ 8466E00
- .incbin "baserom.gba", 0x466E00, 0x78
-
-gUnknown_8466E78:: @ 8466E78
- .incbin "baserom.gba", 0x466E78, 0x18
-
-gUnknown_8466E90:: @ 8466E90
- .incbin "baserom.gba", 0x466E90, 0x18
-
-gUnknown_8466EA8:: @ 8466EA8
- .incbin "baserom.gba", 0x466EA8, 0x18
-
-gUnknown_8466EC0:: @ 8466EC0
- .incbin "baserom.gba", 0x466EC0, 0x28
-
-gUnknown_8466EE8:: @ 8466EE8
- .incbin "baserom.gba", 0x466EE8, 0x8
-
-gUnknown_8466EF0:: @ 8466EF0
- .incbin "baserom.gba", 0x466EF0, 0x10
diff --git a/data/data_8471F00.s b/data/data_8471F00.s
index 6733b3f4d..9c616b37c 100644
--- a/data/data_8471F00.s
+++ b/data/data_8471F00.s
@@ -237,7 +237,12 @@ gUnknown_8479548:: @ 8479548
.incbin "baserom.gba", 0x479548, 0x18
gUnknown_8479560:: @ 8479560
- .incbin "baserom.gba", 0x479560, 0x18
+ .4byte gUnknown_841B8BF
+ .4byte gUnknown_841BB40
+ .4byte gUnknown_841BE76
+ .4byte gUnknown_841C23B
+ .4byte gUnknown_841C459
+ .4byte gUnknown_841C82A
gUnknown_8479578:: @ 8479578
.incbin "baserom.gba", 0x479578, 0x18
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 23f6ad5a9..16e6b6ae0 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -42,14 +42,1286 @@ gStdScripts:: @ 8160450
.4byte gStdScript_81A4E66
gStdScriptsEnd::
-gUnknown_8160478:: @ 8160478
- .incbin "baserom.gba", 0x160478, 0x886C
+gMapScripts_UnknownMap_00_00:: @ 8160478
+ .incbin "baserom.gba", 0x160478, 0x1
+
+gMapScripts_UnknownMap_00_01:: @ 8160479
+ .incbin "baserom.gba", 0x160479, 0x1
+
+gMapScripts_UnknownMap_00_02:: @ 816047A
+ .incbin "baserom.gba", 0x16047A, 0x1
+
+gMapScripts_UnknownMap_00_03:: @ 816047B
+ .incbin "baserom.gba", 0x16047B, 0x1
+
+gMapScripts_UnknownMap_00_04:: @ 816047C
+ .incbin "baserom.gba", 0x16047C, 0xA3
+
+gMapScripts_ViridianForest:: @ 816051F
+ .incbin "baserom.gba", 0x16051F, 0xC5
+
+gMapScripts_MtMoon_1F:: @ 81605E4
+ .incbin "baserom.gba", 0x1605E4, 0xB4
+
+gMapScripts_MtMoon_B1F:: @ 8160698
+ .incbin "baserom.gba", 0x160698, 0x1
+
+gMapScripts_MtMoon_B2F:: @ 8160699
+ .incbin "baserom.gba", 0x160699, 0x1A7
+
+gMapScripts_SSAnne_Exterior:: @ 8160840
+ .incbin "baserom.gba", 0x160840, 0x8B
+
+gMapScripts_SSAnne_1F_Corridor:: @ 81608CB
+ .incbin "baserom.gba", 0x1608CB, 0x13
+
+gMapScripts_SSAnne_2F_Corridor:: @ 81608DE
+ .incbin "baserom.gba", 0x1608DE, 0x17F
+
+gMapScripts_SSAnne_3F_Corridor:: @ 8160A5D
+ .incbin "baserom.gba", 0x160A5D, 0xA
+
+gMapScripts_SSAnne_B1F_Corridor:: @ 8160A67
+ .incbin "baserom.gba", 0x160A67, 0x1
+
+gMapScripts_SSAnne_Deck:: @ 8160A68
+ .incbin "baserom.gba", 0x160A68, 0x4A
+
+gMapScripts_SSAnne_Kitchen:: @ 8160AB2
+ .incbin "baserom.gba", 0x160AB2, 0x87
+
+gMapScripts_SSAnne_CaptainsOffice:: @ 8160B39
+ .incbin "baserom.gba", 0x160B39, 0xA2
+
+gMapScripts_SSAnne_1F_Room1:: @ 8160BDB
+ .incbin "baserom.gba", 0x160BDB, 0xA
+
+gMapScripts_SSAnne_1F_Room2:: @ 8160BE5
+ .incbin "baserom.gba", 0x160BE5, 0x38
+
+gMapScripts_SSAnne_1F_Room3:: @ 8160C1D
+ .incbin "baserom.gba", 0x160C1D, 0x26
+
+gMapScripts_SSAnne_1F_Room4:: @ 8160C43
+ .incbin "baserom.gba", 0x160C43, 0x23
+
+gMapScripts_SSAnne_1F_Room5:: @ 8160C66
+ .incbin "baserom.gba", 0x160C66, 0x18
+
+gMapScripts_SSAnne_1F_Room7:: @ 8160C7E
+ .incbin "baserom.gba", 0x160C7E, 0x18
+
+gMapScripts_SSAnne_2F_Room1:: @ 8160C96
+ .incbin "baserom.gba", 0x160C96, 0x1A
+
+gMapScripts_SSAnne_2F_Room2:: @ 8160CB0
+ .incbin "baserom.gba", 0x160CB0, 0x2F
+
+gMapScripts_SSAnne_2F_Room3:: @ 8160CDF
+ .incbin "baserom.gba", 0x160CDF, 0x13
+
+gMapScripts_SSAnne_2F_Room4:: @ 8160CF2
+ .incbin "baserom.gba", 0x160CF2, 0x2F
+
+gMapScripts_SSAnne_2F_Room5:: @ 8160D21
+ .incbin "baserom.gba", 0x160D21, 0x13
+
+gMapScripts_SSAnne_2F_Room6:: @ 8160D34
+ .incbin "baserom.gba", 0x160D34, 0x13
+
+gMapScripts_SSAnne_B1F_Room1:: @ 8160D47
+ .incbin "baserom.gba", 0x160D47, 0x2F
+
+gMapScripts_SSAnne_B1F_Room2:: @ 8160D76
+ .incbin "baserom.gba", 0x160D76, 0x18
+
+gMapScripts_SSAnne_B1F_Room3:: @ 8160D8E
+ .incbin "baserom.gba", 0x160D8E, 0x18
+
+gMapScripts_SSAnne_B1F_Room4:: @ 8160DA6
+ .incbin "baserom.gba", 0x160DA6, 0x2F
+
+gMapScripts_SSAnne_B1F_Room5:: @ 8160DD5
+ .incbin "baserom.gba", 0x160DD5, 0x1D
+
+gMapScripts_SSAnne_1F_Room6:: @ 8160DF2
+ .incbin "baserom.gba", 0x160DF2, 0x46
+
+gMapScripts_UndergroundPath_NorthEntrance:: @ 8160E38
+ .incbin "baserom.gba", 0x160E38, 0x7D
+
+gMapScripts_UndergroundPath_NorthSouthTunnel:: @ 8160EB5
+ .incbin "baserom.gba", 0x160EB5, 0xA
+
+gMapScripts_UndergroundPath_SouthEntrance:: @ 8160EBF
+ .incbin "baserom.gba", 0x160EBF, 0xA
+
+gMapScripts_UndergroundPath_WestEntrance:: @ 8160EC9
+ .incbin "baserom.gba", 0x160EC9, 0xA
+
+gMapScripts_UndergroundPath_EastWestTunnel:: @ 8160ED3
+ .incbin "baserom.gba", 0x160ED3, 0xA
+
+gMapScripts_UndergroundPath_EastEntrance:: @ 8160EDD
+ .incbin "baserom.gba", 0x160EDD, 0xA
+
+gMapScripts_DiglettsCave_NorthEntrance:: @ 8160EE7
+ .incbin "baserom.gba", 0x160EE7, 0xA
+
+gMapScripts_DiglettsCave_B1F:: @ 8160EF1
+ .incbin "baserom.gba", 0x160EF1, 0xA
+
+gMapScripts_DiglettsCave_SouthEntrance:: @ 8160EFB
+ .incbin "baserom.gba", 0x160EFB, 0xA
+
+gMapScripts_VictoryRoad_1F:: @ 8160F05
+ .incbin "baserom.gba", 0x160F05, 0x8D
+
+gMapScripts_VictoryRoad_2F:: @ 8160F92
+ .incbin "baserom.gba", 0x160F92, 0x118
+
+gMapScripts_VictoryRoad_3F:: @ 81610AA
+ .incbin "baserom.gba", 0x1610AA, 0xEB
+
+gMapScripts_RocketHideout_B1F:: @ 8161195
+ .incbin "baserom.gba", 0x161195, 0x10C
+
+gMapScripts_RocketHideout_B2F:: @ 81612A1
+ .incbin "baserom.gba", 0x1612A1, 0x18
+
+gMapScripts_RocketHideout_B3F:: @ 81612B9
+ .incbin "baserom.gba", 0x1612B9, 0x2F
+
+gMapScripts_RocketHideout_B4F:: @ 81612E8
+ .incbin "baserom.gba", 0x1612E8, 0x1F0
+
+gMapScripts_RocketHideout_Elevator:: @ 81614D8
+ .incbin "baserom.gba", 0x1614D8, 0x14D
+
+gMapScripts_SilphCo_1F:: @ 8161625
+ .incbin "baserom.gba", 0x161625, 0x1C
+
+gMapScripts_SilphCo_2F:: @ 8161641
+ .incbin "baserom.gba", 0x161641, 0x84
+
+gMapScripts_SilphCo_3F:: @ 81616C5
+ .incbin "baserom.gba", 0x1616C5, 0x71
+
+gMapScripts_SilphCo_4F:: @ 8161736
+ .incbin "baserom.gba", 0x161736, 0x88
+
+gMapScripts_SilphCo_5F:: @ 81617BE
+ .incbin "baserom.gba", 0x1617BE, 0xC3
+
+gMapScripts_SilphCo_6F:: @ 8161881
+ .incbin "baserom.gba", 0x161881, 0x103
+
+gMapScripts_SilphCo_7F:: @ 8161984
+ .incbin "baserom.gba", 0x161984, 0x2DB
+
+gMapScripts_SilphCo_8F:: @ 8161C5F
+ .incbin "baserom.gba", 0x161C5F, 0x7F
+
+gMapScripts_SilphCo_9F:: @ 8161CDE
+ .incbin "baserom.gba", 0x161CDE, 0xA8
+
+gMapScripts_SilphCo_10F:: @ 8161D86
+ .incbin "baserom.gba", 0x161D86, 0x68
+
+gMapScripts_SilphCo_11F:: @ 8161DEE
+ .incbin "baserom.gba", 0x161DEE, 0x180
+
+gMapScripts_SilphCo_Elevator:: @ 8161F6E
+ .incbin "baserom.gba", 0x161F6E, 0x28B
+
+gMapScripts_PokemonMansion_1F:: @ 81621F9
+ .incbin "baserom.gba", 0x1621F9, 0x5B
+
+gMapScripts_PokemonMansion_2F:: @ 8162254
+ .incbin "baserom.gba", 0x162254, 0x4D
+
+gMapScripts_PokemonMansion_3F:: @ 81622A1
+ .incbin "baserom.gba", 0x1622A1, 0x5B
+
+gMapScripts_PokemonMansion_B1F:: @ 81622FC
+ .incbin "baserom.gba", 0x1622FC, 0x5B
+
+gMapScripts_SafariZone_Center:: @ 8162357
+ .incbin "baserom.gba", 0x162357, 0x25
+
+gMapScripts_SafariZone_East:: @ 816237C
+ .incbin "baserom.gba", 0x16237C, 0x1C
+
+gMapScripts_SafariZone_North:: @ 8162398
+ .incbin "baserom.gba", 0x162398, 0x2E
+
+gMapScripts_SafariZone_West:: @ 81623C6
+ .incbin "baserom.gba", 0x1623C6, 0x25
+
+gMapScripts_SafariZone_Building1:: @ 81623EB
+ .incbin "baserom.gba", 0x1623EB, 0x13
+
+gMapScripts_SafariZone_Building2:: @ 81623FE
+ .incbin "baserom.gba", 0x1623FE, 0x1C
+
+gMapScripts_SafariZone_Building3:: @ 816241A
+ .incbin "baserom.gba", 0x16241A, 0x1C
+
+gMapScripts_SafariZone_Building4:: @ 8162436
+ .incbin "baserom.gba", 0x162436, 0x1C
+
+gMapScripts_SafariZone_SecretHouse:: @ 8162452
+ .incbin "baserom.gba", 0x162452, 0x61
+
+gMapScripts_CeruleanCave_1F:: @ 81624B3
+ .incbin "baserom.gba", 0x1624B3, 0xA
+
+gMapScripts_CeruleanCave_2F:: @ 81624BD
+ .incbin "baserom.gba", 0x1624BD, 0x1
+
+gMapScripts_CeruleanCave_B1F:: @ 81624BE
+ .incbin "baserom.gba", 0x1624BE, 0xAE
+
+gMapScripts_PokemonLeague_LoreleisRoom:: @ 816256C
+ .incbin "baserom.gba", 0x16256C, 0x119
+
+gMapScripts_PokemonLeague_BrunosRoom:: @ 8162685
+ .incbin "baserom.gba", 0x162685, 0x18B
+
+gMapScripts_PokemonLeague_AgathasRoom:: @ 8162810
+ .incbin "baserom.gba", 0x162810, 0x11D
+
+gMapScripts_PokemonLeague_LancesRoom:: @ 816292D
+ .incbin "baserom.gba", 0x16292D, 0x1B5
+
+gMapScripts_PokemonLeague_ChampionsRoom:: @ 8162AE2
+ .incbin "baserom.gba", 0x162AE2, 0x26A
+
+gMapScripts_PokemonLeague_HallOfFame:: @ 8162D4C
+ .incbin "baserom.gba", 0x162D4C, 0x8A
+
+gMapScripts_RockTunnel_1F:: @ 8162DD6
+ .incbin "baserom.gba", 0x162DD6, 0xB4
+
+gMapScripts_RockTunnel_B1F:: @ 8162E8A
+ .incbin "baserom.gba", 0x162E8A, 0xB9
+
+gMapScripts_SeafoamIslands_1F:: @ 8162F43
+ .incbin "baserom.gba", 0x162F43, 0xA
+
+gMapScripts_SeafoamIslands_B1F:: @ 8162F4D
+ .incbin "baserom.gba", 0x162F4D, 0x1
+
+gMapScripts_SeafoamIslands_B2F:: @ 8162F4E
+ .incbin "baserom.gba", 0x162F4E, 0x1
+
+gMapScripts_SeafoamIslands_B3F:: @ 8162F4F
+ .incbin "baserom.gba", 0x162F4F, 0xDF
+
+gMapScripts_SeafoamIslands_B4F:: @ 816302E
+ .incbin "baserom.gba", 0x16302E, 0x207
+
+gMapScripts_PokemonTower_1F:: @ 8163235
+ .incbin "baserom.gba", 0x163235, 0x50
+
+gMapScripts_PokemonTower_2F:: @ 8163285
+ .incbin "baserom.gba", 0x163285, 0x121
+
+gMapScripts_PokemonTower_3F:: @ 81633A6
+ .incbin "baserom.gba", 0x1633A6, 0x46
+
+gMapScripts_PokemonTower_4F:: @ 81633EC
+ .incbin "baserom.gba", 0x1633EC, 0x46
+
+gMapScripts_PokemonTower_5F:: @ 8163432
+ .incbin "baserom.gba", 0x163432, 0x85
+
+gMapScripts_PokemonTower_6F:: @ 81634B7
+ .incbin "baserom.gba", 0x1634B7, 0xA2
+
+gMapScripts_PokemonTower_7F:: @ 8163559
+ .incbin "baserom.gba", 0x163559, 0x20B
+
+gMapScripts_PowerPlant:: @ 8163764
+ .incbin "baserom.gba", 0x163764, 0x187
+
+gMapScripts_MtEmber_RubyPath_B4F:: @ 81638EB
+ .incbin "baserom.gba", 0x1638EB, 0x5B
+
+gMapScripts_MtEmber_Exterior:: @ 8163946
+ .incbin "baserom.gba", 0x163946, 0x1B3
+
+gMapScripts_MtEmber_SummitPath_1F:: @ 8163AF9
+ .incbin "baserom.gba", 0x163AF9, 0x1
+
+gMapScripts_MtEmber_SummitPath_2F:: @ 8163AFA
+ .incbin "baserom.gba", 0x163AFA, 0x1
+
+gMapScripts_MtEmber_SummitPath_3F:: @ 8163AFB
+ .incbin "baserom.gba", 0x163AFB, 0x1
+
+gMapScripts_MtEmber_Summit:: @ 8163AFC
+ .incbin "baserom.gba", 0x163AFC, 0xAE
+
+gMapScripts_MtEmber_RubyPath_B5F:: @ 8163BAA
+ .incbin "baserom.gba", 0x163BAA, 0x9B
+
+gMapScripts_SSAnne_Kitchen3:: @ 8163C45
+ .incbin "baserom.gba", 0x163C45, 0x1
+
+gMapScripts_MtEmber_RubyPath_B1F:: @ 8163C46
+ .incbin "baserom.gba", 0x163C46, 0x1
+
+gMapScripts_MtEmber_RubyPath_B2F:: @ 8163C47
+ .incbin "baserom.gba", 0x163C47, 0x1
+
+gMapScripts_MtEmber_RubyPath_B3F:: @ 8163C48
+ .incbin "baserom.gba", 0x163C48, 0x27
+
+gMapScripts_MtEmber_RubyPath_B1F_Stairs:: @ 8163C6F
+ .incbin "baserom.gba", 0x163C6F, 0x1
+
+gMapScripts_MtEmber_RubyPath_B2F_Stairs:: @ 8163C70
+ .incbin "baserom.gba", 0x163C70, 0x1
+
+gMapScripts_ThreeIsland_BerryForest:: @ 8163C71
+ .incbin "baserom.gba", 0x163C71, 0xC9
+
+gMapScripts_FourIsland_IcefallCave_Entrance:: @ 8163D3A
+ .incbin "baserom.gba", 0x163D3A, 0xA
+
+gMapScripts_FourIsland_IcefallCave_1F:: @ 8163D44
+ .incbin "baserom.gba", 0x163D44, 0x3D
+
+gMapScripts_SSAnne_CaptainsOffice2:: @ 8163D81
+ .incbin "baserom.gba", 0x163D81, 0x1
+
+gMapScripts_SSAnne_CaptainsOffice3:: @ 8163D82
+ .incbin "baserom.gba", 0x163D82, 0x1AC
+
+gMapScripts_SSAnne_CaptainsOffice4:: @ 8163F2E
+ .incbin "baserom.gba", 0x163F2E, 0x254
+
+gMapScripts_SSAnne_CaptainsOffice5:: @ 8164182
+ .incbin "baserom.gba", 0x164182, 0x2E
+
+gMapScripts_SixIsland_DottedHole_B1F:: @ 81641B0
+ .incbin "baserom.gba", 0x1641B0, 0x1
+
+gMapScripts_SixIsland_DottedHole_B2F:: @ 81641B1
+ .incbin "baserom.gba", 0x1641B1, 0x1
+
+gMapScripts_SixIsland_DottedHole_B3F:: @ 81641B2
+ .incbin "baserom.gba", 0x1641B2, 0x1
+
+gMapScripts_SSAnne_CaptainsOffice9:: @ 81641B3
+ .incbin "baserom.gba", 0x1641B3, 0x1
+
+gMapScripts_SixIsland_DottedHole_SapphireRoom:: @ 81641B4
+ .incbin "baserom.gba", 0x1641B4, 0x3A5
+
+gMapScripts_SSAnne_1F_Room11:: @ 8164559
+ .incbin "baserom.gba", 0x164559, 0x14B
+
+gMapScripts_SSAnne_1F_Room12:: @ 81646A4
+ .incbin "baserom.gba", 0x1646A4, 0xA
+
+gMapScripts_NavelRock_Exterior:: @ 81646AE
+ .incbin "baserom.gba", 0x1646AE, 0xA
+
+gMapScripts_SevenIsland_TrainerTower_1F:: @ 81646B8
+ .incbin "baserom.gba", 0x1646B8, 0x2E
+
+gMapScripts_SevenIsland_TrainerTower_2F:: @ 81646E6
+ .incbin "baserom.gba", 0x1646E6, 0x2E
+
+gMapScripts_SevenIsland_TrainerTower_3F:: @ 8164714
+ .incbin "baserom.gba", 0x164714, 0x2E
+
+gMapScripts_SevenIsland_TrainerTower_4F:: @ 8164742
+ .incbin "baserom.gba", 0x164742, 0x2E
+
+gMapScripts_SevenIsland_TrainerTower_5F:: @ 8164770
+ .incbin "baserom.gba", 0x164770, 0x2E
+
+gMapScripts_SevenIsland_TrainerTower_6F:: @ 816479E
+ .incbin "baserom.gba", 0x16479E, 0x2E
+
+gMapScripts_SevenIsland_TrainerTower_7F:: @ 81647CC
+ .incbin "baserom.gba", 0x1647CC, 0x2E
+
+gMapScripts_SevenIsland_TrainerTower_8F:: @ 81647FA
+ .incbin "baserom.gba", 0x1647FA, 0x2E
+
+gMapScripts_SevenIsland_TrainerTower_Roof:: @ 8164828
+ .incbin "baserom.gba", 0x164828, 0x11
+
+gMapScripts_SevenIsland_TrainerTower_Lobby:: @ 8164839
+ .incbin "baserom.gba", 0x164839, 0x2BF
+
+gMapScripts_SevenIsland_TrainerTower_Elevator:: @ 8164AF8
+ .incbin "baserom.gba", 0x164AF8, 0xF4
+
+gMapScripts_FiveIsland_LostCave_Entrance:: @ 8164BEC
+ .incbin "baserom.gba", 0x164BEC, 0xA
+
+gMapScripts_FiveIsland_LostCave_Room1:: @ 8164BF6
+ .incbin "baserom.gba", 0x164BF6, 0x18
+
+gMapScripts_FiveIsland_LostCave_Room2:: @ 8164C0E
+ .incbin "baserom.gba", 0x164C0E, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room3:: @ 8164C0F
+ .incbin "baserom.gba", 0x164C0F, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room4:: @ 8164C10
+ .incbin "baserom.gba", 0x164C10, 0x18
+
+gMapScripts_FiveIsland_LostCave_Room5:: @ 8164C28
+ .incbin "baserom.gba", 0x164C28, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room6:: @ 8164C29
+ .incbin "baserom.gba", 0x164C29, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room7:: @ 8164C2A
+ .incbin "baserom.gba", 0x164C2A, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room8:: @ 8164C2B
+ .incbin "baserom.gba", 0x164C2B, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room9:: @ 8164C2C
+ .incbin "baserom.gba", 0x164C2C, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room10:: @ 8164C2D
+ .incbin "baserom.gba", 0x164C2D, 0x9E
+
+gMapScripts_FiveIsland_LostCave_Room11:: @ 8164CCB
+ .incbin "baserom.gba", 0x164CCB, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room12:: @ 8164CCC
+ .incbin "baserom.gba", 0x164CCC, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room13:: @ 8164CCD
+ .incbin "baserom.gba", 0x164CCD, 0x1
+
+gMapScripts_FiveIsland_LostCave_Room14:: @ 8164CCE
+ .incbin "baserom.gba", 0x164CCE, 0x1
+
+gMapScripts_SevenIsland_TanobyRuins_MoneanChamber:: @ 8164CCF
+ .incbin "baserom.gba", 0x164CCF, 0xF
+
+gMapScripts_SevenIsland_TanobyRuins_LiptooChamber:: @ 8164CDE
+ .incbin "baserom.gba", 0x164CDE, 0xC
+
+gMapScripts_SevenIsland_TanobyRuins_WeepthChamber:: @ 8164CEA
+ .incbin "baserom.gba", 0x164CEA, 0xC
+
+gMapScripts_SevenIsland_TanobyRuins_DilfordChamber:: @ 8164CF6
+ .incbin "baserom.gba", 0x164CF6, 0xC
+
+gMapScripts_SevenIsland_TanobyRuins_ScufibChamber:: @ 8164D02
+ .incbin "baserom.gba", 0x164D02, 0xC
+
+gMapScripts_SevenIsland_TanobyRuins_RixyChamber:: @ 8164D0E
+ .incbin "baserom.gba", 0x164D0E, 0xC
+
+gMapScripts_SevenIsland_TanobyRuins_ViapoisChamber:: @ 8164D1A
+ .incbin "baserom.gba", 0x164D1A, 0xC
+
+gMapScripts_ThreeIsland_DunsparceTunnel:: @ 8164D26
+ .incbin "baserom.gba", 0x164D26, 0xA6
+
+gMapScripts_SevenIsland_SeavaultCanyon_TanobyKey:: @ 8164DCC
+ .incbin "baserom.gba", 0x164DCC, 0x1D2
+
+gMapScripts_NavelRock_1F:: @ 8164F9E
+ .incbin "baserom.gba", 0x164F9E, 0x1
+
+gMapScripts_NavelRock_Summit:: @ 8164F9F
+ .incbin "baserom.gba", 0x164F9F, 0x148
+
+gMapScripts_NavelRock_Base:: @ 81650E7
+ .incbin "baserom.gba", 0x1650E7, 0x10B
+
+gMapScripts_NavelRock_SummitPath_2F:: @ 81651F2
+ .incbin "baserom.gba", 0x1651F2, 0x1
+
+gMapScripts_NavelRock_SummitPath_3F:: @ 81651F3
+ .incbin "baserom.gba", 0x1651F3, 0x1
+
+gMapScripts_NavelRock_SummitPath_4F:: @ 81651F4
+ .incbin "baserom.gba", 0x1651F4, 0x1
+
+gMapScripts_NavelRock_SummitPath_5F:: @ 81651F5
+ .incbin "baserom.gba", 0x1651F5, 0x1
+
+gMapScripts_NavelRock_BasePath_B1F:: @ 81651F6
+ .incbin "baserom.gba", 0x1651F6, 0x1
+
+gMapScripts_NavelRock_BasePath_B2F:: @ 81651F7
+ .incbin "baserom.gba", 0x1651F7, 0x1
+
+gMapScripts_NavelRock_BasePath_B3F:: @ 81651F8
+ .incbin "baserom.gba", 0x1651F8, 0x1
+
+gMapScripts_NavelRock_BasePath_B4F:: @ 81651F9
+ .incbin "baserom.gba", 0x1651F9, 0x1
+
+gMapScripts_NavelRock_BasePath_B5F:: @ 81651FA
+ .incbin "baserom.gba", 0x1651FA, 0x1
+
+gMapScripts_NavelRock_BasePath_B6F:: @ 81651FB
+ .incbin "baserom.gba", 0x1651FB, 0x1
+
+gMapScripts_NavelRock_BasePath_B7F:: @ 81651FC
+ .incbin "baserom.gba", 0x1651FC, 0x1
+
+gMapScripts_NavelRock_BasePath_B8F:: @ 81651FD
+ .incbin "baserom.gba", 0x1651FD, 0x1
+
+gMapScripts_NavelRock_BasePath_B9F:: @ 81651FE
+ .incbin "baserom.gba", 0x1651FE, 0x1
+
+gMapScripts_NavelRock_BasePath_B10F:: @ 81651FF
+ .incbin "baserom.gba", 0x1651FF, 0x1
+
+gMapScripts_NavelRock_BasePath_B11F:: @ 8165200
+ .incbin "baserom.gba", 0x165200, 0x1
+
+gMapScripts_NavelRock_B1F:: @ 8165201
+ .incbin "baserom.gba", 0x165201, 0x1
+
+gMapScripts_NavelRock_Fork:: @ 8165202
+ .incbin "baserom.gba", 0x165202, 0x1
+
+gMapScripts_BirthIsland_Exterior:: @ 8165203
+ .incbin "baserom.gba", 0x165203, 0x158
+
+gMapScripts_OneIsland_KindleRoad_EmberSpa:: @ 816535B
+ .incbin "baserom.gba", 0x16535B, 0x8B
+
+gMapScripts_BirthIsland_Harbor:: @ 81653E6
+ .incbin "baserom.gba", 0x1653E6, 0x3A
+
+gMapScripts_NavelRock_Harbor:: @ 8165420
+ .incbin "baserom.gba", 0x165420, 0x3A
+
+gMapScripts_PalletTown:: @ 816545A
+ .incbin "baserom.gba", 0x16545A, 0x479
+
+gMapScripts_ViridianCity:: @ 81658D3
+ .incbin "baserom.gba", 0x1658D3, 0x2BB
+
+gMapScripts_PewterCity:: @ 8165B8E
+ .incbin "baserom.gba", 0x165B8E, 0x8E3
+
+gMapScripts_CeruleanCity:: @ 8166471
+ .incbin "baserom.gba", 0x166471, 0x3FA
+
+gMapScripts_LavenderTown:: @ 816686B
+ .incbin "baserom.gba", 0x16686B, 0x71
+
+gMapScripts_VermilionCity:: @ 81668DC
+ .incbin "baserom.gba", 0x1668DC, 0x3B3
+
+gMapScripts_CeladonCity:: @ 8166C8F
+ .incbin "baserom.gba", 0x166C8F, 0xE6
+
+gMapScripts_FuchsiaCity:: @ 8166D75
+ .incbin "baserom.gba", 0x166D75, 0x161
+
+gMapScripts_CinnabarIsland:: @ 8166ED6
+ .incbin "baserom.gba", 0x166ED6, 0x365
+
+gMapScripts_IndigoPlateau_Exterior:: @ 816723B
+ .incbin "baserom.gba", 0x16723B, 0x124
+
+gMapScripts_SaffronCity_Duplicate:: @ 816735F
+ .incbin "baserom.gba", 0x16735F, 0x124
+
+gMapScripts_SaffronCity:: @ 8167483
+ .incbin "baserom.gba", 0x167483, 0x1
+
+gMapScripts_OneIsland:: @ 8167484
+ .incbin "baserom.gba", 0x167484, 0xE0
+
+gMapScripts_TwoIsland:: @ 8167564
+ .incbin "baserom.gba", 0x167564, 0x249
+
+gMapScripts_ThreeIsland:: @ 81677AD
+ .incbin "baserom.gba", 0x1677AD, 0x501
+
+gMapScripts_FourIsland:: @ 8167CAE
+ .incbin "baserom.gba", 0x167CAE, 0x1E0
+
+gMapScripts_FiveIsland:: @ 8167E8E
+ .incbin "baserom.gba", 0x167E8E, 0x25
+
+gMapScripts_SevenIsland:: @ 8167EB3
+ .incbin "baserom.gba", 0x167EB3, 0x25
+
+gMapScripts_SixIsland:: @ 8167ED8
+ .incbin "baserom.gba", 0x167ED8, 0x25
+
+gMapScripts_Route1:: @ 8167EFD
+ .incbin "baserom.gba", 0x167EFD, 0x67
+
+gMapScripts_Route2:: @ 8167F64
+ .incbin "baserom.gba", 0x167F64, 0x13
+
+gMapScripts_Route3:: @ 8167F77
+ .incbin "baserom.gba", 0x167F77, 0x13
+
+gMapScripts_Route4:: @ 8167F8A
+ .incbin "baserom.gba", 0x167F8A, 0x1D
+
+gMapScripts_Route5:: @ 8167FA7
+ .incbin "baserom.gba", 0x167FA7, 0xA
+
+gMapScripts_Route6:: @ 8167FB1
+ .incbin "baserom.gba", 0x167FB1, 0xA
+
+gMapScripts_Route7:: @ 8167FBB
+ .incbin "baserom.gba", 0x167FBB, 0xA
+
+gMapScripts_Route8:: @ 8167FC5
+ .incbin "baserom.gba", 0x167FC5, 0xA
+
+gMapScripts_Route9:: @ 8167FCF
+ .incbin "baserom.gba", 0x167FCF, 0xA
+
+gMapScripts_Route10:: @ 8167FD9
+ .incbin "baserom.gba", 0x167FD9, 0x1D
+
+gMapScripts_Route11:: @ 8167FF6
+ .incbin "baserom.gba", 0x167FF6, 0xA
+
+gMapScripts_Route12:: @ 8168000
+ .incbin "baserom.gba", 0x168000, 0xB5
+
+gMapScripts_Route13:: @ 81680B5
+ .incbin "baserom.gba", 0x1680B5, 0x1C
+
+gMapScripts_Route14:: @ 81680D1
+ .incbin "baserom.gba", 0x1680D1, 0xA
+
+gMapScripts_Route15:: @ 81680DB
+ .incbin "baserom.gba", 0x1680DB, 0xA
+
+gMapScripts_Route16:: @ 81680E5
+ .incbin "baserom.gba", 0x1680E5, 0xDA
+
+gMapScripts_Route17:: @ 81681BF
+ .incbin "baserom.gba", 0x1681BF, 0x37
+
+gMapScripts_Route18:: @ 81681F6
+ .incbin "baserom.gba", 0x1681F6, 0x3B
+
+gMapScripts_Route19:: @ 8168231
+ .incbin "baserom.gba", 0x168231, 0xA
+
+gMapScripts_Route20:: @ 816823B
+ .incbin "baserom.gba", 0x16823B, 0x4E
+
+gMapScripts_Route21_North:: @ 8168289
+ .incbin "baserom.gba", 0x168289, 0x1
+
+gMapScripts_Route21_South:: @ 816828A
+ .incbin "baserom.gba", 0x16828A, 0x1
+
+gMapScripts_Route22:: @ 816828B
+ .incbin "baserom.gba", 0x16828B, 0x260
+
+gMapScripts_Route23:: @ 81684EB
+ .incbin "baserom.gba", 0x1684EB, 0x134
+
+gMapScripts_Route24:: @ 816861F
+ .incbin "baserom.gba", 0x16861F, 0x126
+
+gMapScripts_Route25:: @ 8168745
+ .incbin "baserom.gba", 0x168745, 0x13
+
+gMapScripts_OneIsland_KindleRoad:: @ 8168758
+ .incbin "baserom.gba", 0x168758, 0x13
+
+gMapScripts_OneIsland_TreasureBeach:: @ 816876B
+ .incbin "baserom.gba", 0x16876B, 0xA
+
+gMapScripts_TwoIsland_CapeBrink:: @ 8168775
+ .incbin "baserom.gba", 0x168775, 0x1
+
+gMapScripts_ThreeIsland_BondBridge:: @ 8168776
+ .incbin "baserom.gba", 0x168776, 0x13
+
+gMapScripts_ThreeIsland_Port:: @ 8168789
+ .incbin "baserom.gba", 0x168789, 0x57
+
+gMapScripts_UnknownMap_03_50:: @ 81687E0
+ .incbin "baserom.gba", 0x1687E0, 0x1
+
+gMapScripts_UnknownMap_03_51:: @ 81687E1
+ .incbin "baserom.gba", 0x1687E1, 0x1
+
+gMapScripts_UnknownMap_03_52:: @ 81687E2
+ .incbin "baserom.gba", 0x1687E2, 0x1
+
+gMapScripts_UnknownMap_03_53:: @ 81687E3
+ .incbin "baserom.gba", 0x1687E3, 0x1
+
+gMapScripts_FiveIsland_ResortGorgeous:: @ 81687E4
+ .incbin "baserom.gba", 0x1687E4, 0x69
+
+gMapScripts_FiveIsland_WaterLabyrinth:: @ 816884D
+ .incbin "baserom.gba", 0x16884D, 0xE5
+
+gMapScripts_FiveIsland_Meadow:: @ 8168932
+ .incbin "baserom.gba", 0x168932, 0xA0
+
+gMapScripts_FiveIsland_MemorialPillar:: @ 81689D2
+ .incbin "baserom.gba", 0x1689D2, 0x143
+
+gMapScripts_SixIsland_OutcastIsland:: @ 8168B15
+ .incbin "baserom.gba", 0x168B15, 0x18
+
+gMapScripts_SixIsland_GreenPath:: @ 8168B2D
+ .incbin "baserom.gba", 0x168B2D, 0x13
+
+gMapScripts_SixIsland_WaterPath:: @ 8168B40
+ .incbin "baserom.gba", 0x168B40, 0x13
+
+gMapScripts_SixIsland_RuinValley:: @ 8168B53
+ .incbin "baserom.gba", 0x168B53, 0x82
+
+gMapScripts_SevenIsland_TrainerTower:: @ 8168BD5
+ .incbin "baserom.gba", 0x168BD5, 0x1E
+
+gMapScripts_SevenIsland_SevaultCanyon_Entrance:: @ 8168BF3
+ .incbin "baserom.gba", 0x168BF3, 0xA
+
+gMapScripts_SevenIsland_SevaultCanyon:: @ 8168BFD
+ .incbin "baserom.gba", 0x168BFD, 0xA
+
+gMapScripts_SevenIsland_TanobyRuins:: @ 8168C07
+ .incbin "baserom.gba", 0x168C07, 0x1
+
+gMapScripts_PalletTown_PlayersHouse_1F:: @ 8168C08
+ .incbin "baserom.gba", 0x168C08, 0x9B
+
+gMapScripts_PalletTown_PlayersHouse_2F:: @ 8168CA3
+ .incbin "baserom.gba", 0x168CA3, 0x41
gUnknown_8168CE4:: @ 8168CE4
.incbin "baserom.gba", 0x168CE4, 0x33
gUnknown_8168D17:: @ 8168D17
- .incbin "baserom.gba", 0x168D17, 0x3C128
+ .incbin "baserom.gba", 0x168D17, 0x10
+
+gMapScripts_PalletTown_GarysHouse:: @ 8168D27
+ .incbin "baserom.gba", 0x168D27, 0x257
+
+gMapScripts_PalletTown_ProfessorOaksLab:: @ 8168F7E
+ .incbin "baserom.gba", 0x168F7E, 0xF1C
+
+gMapScripts_ViridianCity_House1:: @ 8169E9A
+ .incbin "baserom.gba", 0x169E9A, 0x2F
+
+gMapScripts_ViridianCity_Gym:: @ 8169EC9
+ .incbin "baserom.gba", 0x169EC9, 0x1B3
+
+gMapScripts_ViridianCity_House2:: @ 816A07C
+ .incbin "baserom.gba", 0x16A07C, 0x157
+
+gMapScripts_ViridianCity_Mart:: @ 816A1D3
+ .incbin "baserom.gba", 0x16A1D3, 0xED
+
+gMapScripts_ViridianCity_PokemonCenter_1F:: @ 816A2C0
+ .incbin "baserom.gba", 0x16A2C0, 0x33
+
+gMapScripts_ViridianCity_PokemonCenter_2F:: @ 816A2F3
+ .incbin "baserom.gba", 0x16A2F3, 0x27
+
+gMapScripts_PewterCity_Museum_1F:: @ 816A31A
+ .incbin "baserom.gba", 0x16A31A, 0x238
+
+gMapScripts_PewterCity_Museum_2F:: @ 816A552
+ .incbin "baserom.gba", 0x16A552, 0x40
+
+gMapScripts_PewterCity_Gym:: @ 816A592
+ .incbin "baserom.gba", 0x16A592, 0x13B
+
+gMapScripts_PewterCity_Mart:: @ 816A6CD
+ .incbin "baserom.gba", 0x16A6CD, 0x4F
+
+gMapScripts_PewterCity_House1:: @ 816A71C
+ .incbin "baserom.gba", 0x16A71C, 0x44
+
+gMapScripts_PewterCity_PokemonCenter_1F:: @ 816A760
+ .incbin "baserom.gba", 0x16A760, 0x55
+
+gMapScripts_PewterCity_PokemonCenter_2F:: @ 816A7B5
+ .incbin "baserom.gba", 0x16A7B5, 0x27
+
+gMapScripts_PewterCity_House2:: @ 816A7DC
+ .incbin "baserom.gba", 0x16A7DC, 0x13
+
+gMapScripts_CeruleanCity_House1:: @ 816A7EF
+ .incbin "baserom.gba", 0x16A7EF, 0x186
+
+gMapScripts_CeruleanCity_House2:: @ 816A975
+ .incbin "baserom.gba", 0x16A975, 0x32
+
+gMapScripts_CeruleanCity_House3:: @ 816A9A7
+ .incbin "baserom.gba", 0x16A9A7, 0x86
+
+gMapScripts_CeruleanCity_PokemonCenter_1F:: @ 816AA2D
+ .incbin "baserom.gba", 0x16AA2D, 0x4C
+
+gMapScripts_CeruleanCity_PokemonCenter_2F:: @ 816AA79
+ .incbin "baserom.gba", 0x16AA79, 0x27
+
+gMapScripts_CeruleanCity_Gym:: @ 816AAA0
+ .incbin "baserom.gba", 0x16AAA0, 0x11C
+
+gMapScripts_CeruleanCity_BikeShop:: @ 816ABBC
+ .incbin "baserom.gba", 0x16ABBC, 0xE1
+
+gMapScripts_CeruleanCity_Mart:: @ 816AC9D
+ .incbin "baserom.gba", 0x16AC9D, 0x51
+
+gMapScripts_CeruleanCity_House4:: @ 816ACEE
+ .incbin "baserom.gba", 0x16ACEE, 0x161
+
+gMapScripts_CeruleanCity_House5:: @ 816AE4F
+ .incbin "baserom.gba", 0x16AE4F, 0x2A0
+
+gMapScripts_LavenderTown_PokemonCenter_1F:: @ 816B0EF
+ .incbin "baserom.gba", 0x16B0EF, 0x33
+
+gMapScripts_LavenderTown_PokemonCenter_2F:: @ 816B122
+ .incbin "baserom.gba", 0x16B122, 0x27
+
+gMapScripts_LavenderTown_VolunteerPokemonHouse:: @ 816B149
+ .incbin "baserom.gba", 0x16B149, 0xE9
+
+gMapScripts_LavenderTown_House1:: @ 816B232
+ .incbin "baserom.gba", 0x16B232, 0x33
+
+gMapScripts_LavenderTown_House2:: @ 816B265
+ .incbin "baserom.gba", 0x16B265, 0xEA
+
+gMapScripts_LavenderTown_Mart:: @ 816B34F
+ .incbin "baserom.gba", 0x16B34F, 0x57
+
+gMapScripts_VermilionCity_House1:: @ 816B3A6
+ .incbin "baserom.gba", 0x16B3A6, 0x7E
+
+gMapScripts_VermilionCity_PokemonCenter_1F:: @ 816B424
+ .incbin "baserom.gba", 0x16B424, 0x33
+
+gMapScripts_VermilionCity_PokemonCenter_2F:: @ 816B457
+ .incbin "baserom.gba", 0x16B457, 0x27
+
+gMapScripts_VermilionCity_PokemonFanClub:: @ 816B47E
+ .incbin "baserom.gba", 0x16B47E, 0x158
+
+gMapScripts_VermilionCity_House2:: @ 816B5D6
+ .incbin "baserom.gba", 0x16B5D6, 0x7D
+
+gMapScripts_VermilionCity_Mart:: @ 816B653
+ .incbin "baserom.gba", 0x16B653, 0x4B
+
+gMapScripts_VermilionCity_Gym:: @ 816B69E
+ .incbin "baserom.gba", 0x16B69E, 0x40B
+
+gMapScripts_VermilionCity_House3:: @ 816BAA9
+ .incbin "baserom.gba", 0x16BAA9, 0x2F
+
+gMapScripts_CeladonCity_DepartmentStore_1F:: @ 816BAD8
+ .incbin "baserom.gba", 0x16BAD8, 0x1C
+
+gMapScripts_CeladonCity_DepartmentStore_2F:: @ 816BAF4
+ .incbin "baserom.gba", 0x16BAF4, 0x90
+
+gMapScripts_CeladonCity_DepartmentStore_3F:: @ 816BB84
+ .incbin "baserom.gba", 0x16BB84, 0x6A
+
+gMapScripts_CeladonCity_DepartmentStore_4F:: @ 816BBEE
+ .incbin "baserom.gba", 0x16BBEE, 0x52
+
+gMapScripts_CeladonCity_DepartmentStore_5F:: @ 816BC40
+ .incbin "baserom.gba", 0x16BC40, 0x8C
+
+gMapScripts_CeladonCity_DepartmentStore_Roof:: @ 816BCCC
+ .incbin "baserom.gba", 0x16BCCC, 0x486
+
+gMapScripts_CeladonCity_DepartmentStore_Elevator:: @ 816C152
+ .incbin "baserom.gba", 0x16C152, 0x1CE
+
+gMapScripts_CeladonCity_Condominiums_1F:: @ 816C320
+ .incbin "baserom.gba", 0x16C320, 0xB0
+
+gMapScripts_CeladonCity_Condominiums_2F:: @ 816C3D0
+ .incbin "baserom.gba", 0x16C3D0, 0xA
+
+gMapScripts_CeladonCity_Condominiums_3F:: @ 816C3DA
+ .incbin "baserom.gba", 0x16C3DA, 0x7F
+
+gMapScripts_CeladonCity_Condominiums_Roof:: @ 816C459
+ .incbin "baserom.gba", 0x16C459, 0xA
+
+gMapScripts_CeladonCity_Condominiums_RoofRoom:: @ 816C463
+ .incbin "baserom.gba", 0x16C463, 0x189
+
+gMapScripts_CeladonCity_PokemonCenter_1F:: @ 816C5EC
+ .incbin "baserom.gba", 0x16C5EC, 0x33
+
+gMapScripts_CeladonCity_PokemonCenter_2F:: @ 816C61F
+ .incbin "baserom.gba", 0x16C61F, 0x27
+
+gMapScripts_CeladonCity_GameCorner:: @ 816C646
+ .incbin "baserom.gba", 0x16C646, 0x52F
+
+gMapScripts_CeladonCity_GameCorner_PrizeRoom:: @ 816CB75
+ .incbin "baserom.gba", 0x16CB75, 0x4EB
+
+gMapScripts_CeladonCity_Gym:: @ 816D060
+ .incbin "baserom.gba", 0x16D060, 0x18A
+
+gMapScripts_CeladonCity_Restaurant:: @ 816D1EA
+ .incbin "baserom.gba", 0x16D1EA, 0x7D
+
+gMapScripts_CeladonCity_House1:: @ 816D267
+ .incbin "baserom.gba", 0x16D267, 0x1C
+
+gMapScripts_CeladonCity_Hotel:: @ 816D283
+ .incbin "baserom.gba", 0x16D283, 0x25
+
+gMapScripts_FuchsiaCity_SafariZone_Entrance:: @ 816D2A8
+ .incbin "baserom.gba", 0x16D2A8, 0x238
+
+gMapScripts_FuchsiaCity_Mart:: @ 816D4E0
+ .incbin "baserom.gba", 0x16D4E0, 0x48
+
+gMapScripts_FuchsiaCity_ZooBuilding:: @ 816D528
+ .incbin "baserom.gba", 0x16D528, 0x25
+
+gMapScripts_FuchsiaCity_Gym:: @ 816D54D
+ .incbin "baserom.gba", 0x16D54D, 0x178
+
+gMapScripts_FuchsiaCity_House1:: @ 816D6C5
+ .incbin "baserom.gba", 0x16D6C5, 0x2C
+
+gMapScripts_FuchsiaCity_PokemonCenter_1F:: @ 816D6F1
+ .incbin "baserom.gba", 0x16D6F1, 0x33
+
+gMapScripts_FuchsiaCity_PokemonCenter_2F:: @ 816D724
+ .incbin "baserom.gba", 0x16D724, 0x27
+
+gMapScripts_FuchsiaCity_Building1:: @ 816D74B
+ .incbin "baserom.gba", 0x16D74B, 0xCB
+
+gMapScripts_FuchsiaCity_House2:: @ 816D816
+ .incbin "baserom.gba", 0x16D816, 0x7E
+
+gMapScripts_FuchsiaCity_House3:: @ 816D894
+ .incbin "baserom.gba", 0x16D894, 0xB7
+
+gMapScripts_CinnabarIsland_Gym:: @ 816D94B
+ .incbin "baserom.gba", 0x16D94B, 0x928
+
+gMapScripts_CinnabarIsland_PokemonLab_Entrance:: @ 816E273
+ .incbin "baserom.gba", 0x16E273, 0x45
+
+gMapScripts_CinnabarIsland_PokemonLab_Lounge:: @ 816E2B8
+ .incbin "baserom.gba", 0x16E2B8, 0x126
+
+gMapScripts_CinnabarIsland_PokemonLab_ResearchRoom:: @ 816E3DE
+ .incbin "baserom.gba", 0x16E3DE, 0x22
+
+gMapScripts_CinnabarIsland_PokemonLab_ExperimentRoom:: @ 816E400
+ .incbin "baserom.gba", 0x16E400, 0x4D7
+
+gMapScripts_CinnabarIsland_PokemonCenter_1F:: @ 816E8D7
+ .incbin "baserom.gba", 0x16E8D7, 0x111
+
+gMapScripts_CinnabarIsland_PokemonCenter_2F:: @ 816E9E8
+ .incbin "baserom.gba", 0x16E9E8, 0x27
+
+gMapScripts_CinnabarIsland_Mart:: @ 816EA0F
+ .incbin "baserom.gba", 0x16EA0F, 0x4B
+
+gMapScripts_IndigoPlateau_PokemonCenter_1F:: @ 816EA5A
+ .incbin "baserom.gba", 0x16EA5A, 0xB5
+
+gMapScripts_IndigoPlateau_PokemonCenter_2F:: @ 816EB0F
+ .incbin "baserom.gba", 0x16EB0F, 0x27
+
+gMapScripts_SaffronCity_House1_1F:: @ 816EB36
+ .incbin "baserom.gba", 0x16EB36, 0x26
+
+gMapScripts_SaffronCity_House1_2F:: @ 816EB5C
+ .incbin "baserom.gba", 0x16EB5C, 0x7F
+
+gMapScripts_SaffronCity_Dojo:: @ 816EBDB
+ .incbin "baserom.gba", 0x16EBDB, 0x1FC
+
+gMapScripts_SaffronCity_Gym:: @ 816EDD7
+ .incbin "baserom.gba", 0x16EDD7, 0x19C
+
+gMapScripts_SaffronCity_House2:: @ 816EF73
+ .incbin "baserom.gba", 0x16EF73, 0x2F
+
+gMapScripts_SaffronCity_Mart:: @ 816EFA2
+ .incbin "baserom.gba", 0x16EFA2, 0x4A
+
+gMapScripts_SaffronCity_PokemonCenter_1F:: @ 816EFEC
+ .incbin "baserom.gba", 0x16EFEC, 0x4B
+
+gMapScripts_SaffronCity_PokemonCenter_2F:: @ 816F037
+ .incbin "baserom.gba", 0x16F037, 0x27
+
+gMapScripts_SaffronCity_House3:: @ 816F05E
+ .incbin "baserom.gba", 0x16F05E, 0x61
+
+gMapScripts_SaffronCity_PokemonTrainerFanClub:: @ 816F0BF
+ .incbin "baserom.gba", 0x16F0BF, 0x526
+
+gMapScripts_Route2_ViridianForest_SouthEntrance:: @ 816F5E5
+ .incbin "baserom.gba", 0x16F5E5, 0x13
+
+gMapScripts_Route2_House:: @ 816F5F8
+ .incbin "baserom.gba", 0x16F5F8, 0x86
+
+gMapScripts_Route2_EastBuilding:: @ 816F67E
+ .incbin "baserom.gba", 0x16F67E, 0x9F
+
+gMapScripts_Route2_ViridianForest_NorthEntrance:: @ 816F71D
+ .incbin "baserom.gba", 0x16F71D, 0x1C
+
+gMapScripts_Route4_PokemonCenter_1F:: @ 816F739
+ .incbin "baserom.gba", 0x16F739, 0x19F
+
+gMapScripts_Route4_PokemonCenter_2F:: @ 816F8D8
+ .incbin "baserom.gba", 0x16F8D8, 0x27
+
+gMapScripts_Route5_PokemonDayCare:: @ 816F8FF
+ .incbin "baserom.gba", 0x16F8FF, 0x1
+
+gMapScripts_Route5_SouthEntrance:: @ 816F900
+ .incbin "baserom.gba", 0x16F900, 0xC6
+
+gMapScripts_Route6_NorthEntrance:: @ 816F9C6
+ .incbin "baserom.gba", 0x16F9C6, 0xC6
+
+gMapScripts_UnknownMap_18_01:: @ 816FA8C
+ .incbin "baserom.gba", 0x16FA8C, 0x1
+
+gMapScripts_Route7_EastEntrance:: @ 816FA8D
+ .incbin "baserom.gba", 0x16FA8D, 0xC6
+
+gMapScripts_Route8_WestEntrance:: @ 816FB53
+ .incbin "baserom.gba", 0x16FB53, 0xDC
+
+gMapScripts_Route10_PokemonCenter_1F:: @ 816FC2F
+ .incbin "baserom.gba", 0x16FC2F, 0xCB
+
+gMapScripts_Route10_PokemonCenter_2F:: @ 816FCFA
+ .incbin "baserom.gba", 0x16FCFA, 0x27
+
+gMapScripts_Route11_EastEntrance_1F:: @ 816FD21
+ .incbin "baserom.gba", 0x16FD21, 0x13
+
+gMapScripts_Route11_EastEntrance_2F:: @ 816FD34
+ .incbin "baserom.gba", 0x16FD34, 0x139
+
+gMapScripts_Route12_NorthEntrance_1F:: @ 816FE6D
+ .incbin "baserom.gba", 0x16FE6D, 0xA
+
+gMapScripts_Route12_NorthEntrance_2F:: @ 816FE77
+ .incbin "baserom.gba", 0x16FE77, 0x94
+
+gMapScripts_Route12_FishingHouse:: @ 816FF0B
+ .incbin "baserom.gba", 0x16FF0B, 0x17D
+
+gMapScripts_Route15_WestEntrance_1F:: @ 8170088
+ .incbin "baserom.gba", 0x170088, 0xA
+
+gMapScripts_Route15_WestEntrance_2F:: @ 8170092
+ .incbin "baserom.gba", 0x170092, 0xBC
+
+gMapScripts_Route16_House:: @ 817014E
+ .incbin "baserom.gba", 0x17014E, 0x74
+
+gMapScripts_Route16_NorthEntrance_1F:: @ 81701C2
+ .incbin "baserom.gba", 0x1701C2, 0xFC
+
+gMapScripts_Route16_NorthEntrance_2F:: @ 81702BE
+ .incbin "baserom.gba", 0x1702BE, 0xBA
+
+gMapScripts_Route18_EastEntrance_1F:: @ 8170378
+ .incbin "baserom.gba", 0x170378, 0xF3
+
+gMapScripts_Route18_EastEntrance_2F:: @ 817046B
+ .incbin "baserom.gba", 0x17046B, 0x8F
+
+gMapScripts_UnusedHouse_27_00:: @ 81704FA
+ .incbin "baserom.gba", 0x1704FA, 0x1
+
+gMapScripts_Route22_NorthEntrance:: @ 81704FB
+ .incbin "baserom.gba", 0x1704FB, 0x27
+
+gMapScripts_UnusedHouse_29_00:: @ 8170522
+ .incbin "baserom.gba", 0x170522, 0x1
+
+gMapScripts_Route25_SeaCottage:: @ 8170523
+ .incbin "baserom.gba", 0x170523, 0x367
+
+gMapScripts_SevenIsland_House_Room1:: @ 817088A
+ .incbin "baserom.gba", 0x17088A, 0x1F4
+
+gMapScripts_SevenIsland_House_Room2:: @ 8170A7E
+ .incbin "baserom.gba", 0x170A7E, 0xB2
+
+gMapScripts_SevenIsland_Mart:: @ 8170B30
+ .incbin "baserom.gba", 0x170B30, 0x59
+
+gMapScripts_SevenIsland_PokemonCenter_1F:: @ 8170B89
+ .incbin "baserom.gba", 0x170B89, 0x33
+
+gMapScripts_SevenIsland_PokemonCenter_2F:: @ 8170BBC
+ .incbin "baserom.gba", 0x170BBC, 0x27
+
+gMapScripts_UnusedHouse_31_05:: @ 8170BE3
+ .incbin "baserom.gba", 0x170BE3, 0x1
+
+gMapScripts_SevenIsland_Harbor:: @ 8170BE4
+ .incbin "baserom.gba", 0x170BE4, 0x14
+
+gMapScripts_OneIsland_PokemonCenter_1F:: @ 8170BF8
+ .incbin "baserom.gba", 0x170BF8, 0x73C
+
+gMapScripts_OneIsland_PokemonCenter_2F:: @ 8171334
+ .incbin "baserom.gba", 0x171334, 0x27
+
+gMapScripts_OneIsland_House1:: @ 817135B
+ .incbin "baserom.gba", 0x17135B, 0x13
+
+gMapScripts_OneIsland_House2:: @ 817136E
+ .incbin "baserom.gba", 0x17136E, 0xA
+
+gMapScripts_OneIsland_Harbor:: @ 8171378
+ .incbin "baserom.gba", 0x171378, 0x58
+
+gMapScripts_TwoIsland_JoyfulGameCorner:: @ 81713D0
+ .incbin "baserom.gba", 0x1713D0, 0x248
+
+gMapScripts_TwoIsland_House:: @ 8171618
+ .incbin "baserom.gba", 0x171618, 0x19C
+
+gMapScripts_TwoIsland_PokemonCenter_1F:: @ 81717B4
+ .incbin "baserom.gba", 0x1717B4, 0x2A
+
+gMapScripts_TwoIsland_PokemonCenter_2F:: @ 81717DE
+ .incbin "baserom.gba", 0x1717DE, 0x27
+
+gMapScripts_TwoIsland_Harbor:: @ 8171805
+ .incbin "baserom.gba", 0x171805, 0x14
+
+gMapScripts_ThreeIsland_House1:: @ 8171819
+ .incbin "baserom.gba", 0x171819, 0x19
+
+gMapScripts_ThreeIsland_PokemonCenter_1F:: @ 8171832
+ .incbin "baserom.gba", 0x171832, 0x33
+
+gMapScripts_ThreeIsland_PokemonCenter_2F:: @ 8171865
+ .incbin "baserom.gba", 0x171865, 0x27
+
+gMapScripts_ThreeIsland_Mart:: @ 817188C
+ .incbin "baserom.gba", 0x17188C, 0x53
+
+gMapScripts_ThreeIsland_House2:: @ 81718DF
+ .incbin "baserom.gba", 0x1718DF, 0x23
+
+gMapScripts_ThreeIsland_House3:: @ 8171902
+ .incbin "baserom.gba", 0x171902, 0xA
+
+gMapScripts_ThreeIsland_House4:: @ 817190C
+ .incbin "baserom.gba", 0x17190C, 0x13
+
+gMapScripts_ThreeIsland_House5:: @ 817191F
+ .incbin "baserom.gba", 0x17191F, 0x20
+
+gMapScripts_FourIsland_PokemonDayCare:: @ 817193F
+ .incbin "baserom.gba", 0x17193F, 0x2AB
+
+gMapScripts_FourIsland_PokemonCenter_1F:: @ 8171BEA
+ .incbin "baserom.gba", 0x171BEA, 0x33
+
+gMapScripts_FourIsland_PokemonCenter_2F:: @ 8171C1D
+ .incbin "baserom.gba", 0x171C1D, 0x27
+
+gMapScripts_FourIsland_House1:: @ 8171C44
+ .incbin "baserom.gba", 0x171C44, 0xA
+
+gMapScripts_FourIsland_LoreleisHouse:: @ 8171C4E
+ .incbin "baserom.gba", 0x171C4E, 0x4A
+
+gMapScripts_FourIsland_Harbor:: @ 8171C98
+ .incbin "baserom.gba", 0x171C98, 0x14
+
+gMapScripts_FourIsland_House2:: @ 8171CAC
+ .incbin "baserom.gba", 0x171CAC, 0x1
+
+gMapScripts_FourIsland_Mart:: @ 8171CAD
+ .incbin "baserom.gba", 0x171CAD, 0x44
+
+gMapScripts_FiveIsland_PokemonCenter_1F:: @ 8171CF1
+ .incbin "baserom.gba", 0x171CF1, 0x2A
+
+gMapScripts_FiveIsland_PokemonCenter_2F:: @ 8171D1B
+ .incbin "baserom.gba", 0x171D1B, 0x27
+
+gMapScripts_FiveIsland_Harbor:: @ 8171D42
+ .incbin "baserom.gba", 0x171D42, 0x14
+
+gMapScripts_FiveIsland_House1:: @ 8171D56
+ .incbin "baserom.gba", 0x171D56, 0xA
+
+gMapScripts_FiveIsland_House2:: @ 8171D60
+ .incbin "baserom.gba", 0x171D60, 0xA
+
+gMapScripts_SixIsland_PokemonCenter_1F:: @ 8171D6A
+ .incbin "baserom.gba", 0x171D6A, 0xB6
+
+gMapScripts_SixIsland_PokemonCenter_2F:: @ 8171E20
+ .incbin "baserom.gba", 0x171E20, 0x27
+
+gMapScripts_SixIsland_Harbor:: @ 8171E47
+ .incbin "baserom.gba", 0x171E47, 0x14
+
+gMapScripts_SixIsland_House:: @ 8171E5B
+ .incbin "baserom.gba", 0x171E5B, 0xA
+
+gMapScripts_SixIsland_Mart:: @ 8171E65
+ .incbin "baserom.gba", 0x171E65, 0x44
+
+gMapScripts_ThreeIsland_Harbor:: @ 8171EA9
+ .incbin "baserom.gba", 0x171EA9, 0x14
+
+gMapScripts_FiveIsland_ResortGorgeous_House:: @ 8171EBD
+ .incbin "baserom.gba", 0x171EBD, 0x1AE
+
+gMapScripts_TwoIsland_CapeBrink_House:: @ 817206B
+ .incbin "baserom.gba", 0x17206B, 0x1
+
+gMapScripts_SixIsland_WaterPath_House1:: @ 817206C
+ .incbin "baserom.gba", 0x17206C, 0x10C
+
+gMapScripts_SixIsland_WaterPath_House2:: @ 8172178
+ .incbin "baserom.gba", 0x172178, 0xA
+
+gMapScripts_SevenIsland_SevaultCanyon_House:: @ 8172182
+ .incbin "baserom.gba", 0x172182, 0x32CBD
gStdScript_81A4E3F::
.incbin "baserom.gba", 0x1A4E3F, 0xB
@@ -428,50 +1700,369 @@ gUnknown_81C5647:: @ 81C5647
gUnknown_81C566A:: @ 81C566A
.incbin "baserom.gba", 0x1C566A, 0xE5
-gUnknown_81C574F:: @ 81C574F
- .incbin "baserom.gba", 0x1C574F, 0xDE
+gOtherText_NewName:: @ 81C574F
+ .string "NEW NAME$"
+
+gNameChoice_Green:: @ 81C5758
+ .string "GREEN$"
+
+gNameChoice_Red:: @ 81C575E
+ .string "RED$"
+
+gNameChoice_Leaf:: @ 81C5762
+ .string "LEAF$"
+
+gNameChoice_Fire:: @ 81C5767
+ .string "FIRE$"
+
+gNameChoice_Gary:: @ 81C576C
+ .string "GARY$"
+
+gNameChoice_Kaz:: @ 81C5771
+ .string "KAZ$"
+
+gNameChoice_Toru:: @ 81C5775
+ .string "TORU$"
+
+gNameChoice_Ash:: @ 81C577A
+ .string "ASH$"
+
+gNameChoice_Kene:: @ 81C577E
+ .string "KENE$"
+
+gNameChoice_Geki:: @ 81C5783
+ .string "GEKI$"
+
+gNameChoice_Jak:: @ 81C5788
+ .string "JAK$"
+
+gNameChoice_Janne:: @ 81C578C
+ .string "JANNE$"
+
+gNameChoice_Jonn:: @ 81C5792
+ .string "JONN$"
+
+gNameChoice_Kamon:: @ 81C5797
+ .string "KAMON$"
+
+gNameChoice_Karl:: @ 81C579D
+ .string "KARL$"
+
+gNameChoice_Taylor:: @ 81C57A2
+ .string "TAYLOR$"
+
+gNameChoice_Oscar:: @ 81C57A9
+ .string "OSCAR$"
+
+gNameChoice_Hiro:: @ 81C57AF
+ .string "HIRO$"
+
+gNameChoice_Max:: @ 81C57B4
+ .string "MAX$"
+
+gNameChoice_Jon:: @ 81C57B8
+ .string "JON$"
+
+gNameChoice_Ralph:: @ 81C57BC
+ .string "RALPH$"
+
+gNameChoice_Kay:: @ 81C57C2
+ .string "KAY$"
+
+gNameChoice_Tosh:: @ 81C57C6
+ .string "TOSH$"
+
+gNameChoice_Roak:: @ 81C57CB
+ .string "ROAK$"
+
+gNameChoice_Omi:: @ 81C57D0
+ .string "OMI$"
+
+gNameChoice_Jodi:: @ 81C57D4
+ .string "JODI$"
+
+gNameChoice_Amanda:: @ 81C57D9
+ .string "AMANDA$"
+
+gNameChoice_Hillary:: @ 81C57E0
+ .string "HILLARY$"
+
+gNameChoice_Makey:: @ 81C57E8
+ .string "MAKEY$"
+
+gNameChoice_Michi:: @ 81C57EE
+ .string "MICHI$"
+
+gNameChoice_Paula:: @ 81C57F4
+ .string "PAULA$"
+
+gNameChoice_June:: @ 81C57FA
+ .string "JUNE$"
+
+gNameChoice_Cassie:: @ 81C57FF
+ .string "CASSIE$"
+
+gNameChoice_Rey:: @ 81C5806
+ .string "REY$"
+
+gNameChoice_Seda:: @ 81C580A
+ .string "SEDA$"
+
+gNameChoice_Kiko:: @ 81C580F
+ .string "KIKO$"
+
+gNameChoice_Mina:: @ 81C5814
+ .string "MINA$"
+
+gNameChoice_Norie:: @ 81C5819
+ .string "NORIE$"
+
+gNameChoice_Sai:: @ 81C581F
+ .string "SAI$"
-gUnknown_81C582D:: @ 81C582D
- .incbin "baserom.gba", 0x1C582D, 0x1A8
+gNameChoice_Momo:: @ 81C5823
+ .string "MOMO$"
-gUnknown_81C59D5:: @ 81C59D5
- .incbin "baserom.gba", 0x1C59D5, 0x2A3
+gNameChoice_Suzi:: @ 81C5828
+ .string "SUZI$"
-gUnknown_81C5C78:: @ 81C5C78
- .incbin "baserom.gba", 0x1C5C78, 0x8E
+gNewGame_HelpDocs1:: @ 81C582D
+ .string "The various buttons will be explained in\n"
+ .string "the order of their importance.$"
-gUnknown_81C5D06:: @ 81C5D06
- .incbin "baserom.gba", 0x1C5D06, 0xC
+gNewGame_HelpDocs2:: @ 81C5875
+ .string "Moves the main character.\n"
+ .string "Also used to choose various data\n"
+ .string "headings.$"
-gUnknown_81C5D12:: @ 81C5D12
- .incbin "baserom.gba", 0x1C5D12, 0x39
+gNewGame_HelpDocs3:: @ 81C58BA
+ .string "Used to confirm a choice, check\n"
+ .string "things, chat, and scroll text.$"
-gUnknown_81C5D4B:: @ 81C5D4B
- .incbin "baserom.gba", 0x1C5D4B, 0x72
+gNewGame_HelpDocs4:: @ 81C58F9
+ .string "Used to exit, cancel a choice,\n"
+ .string "and cancel a mode.$"
-gUnknown_81C5DBD:: @ 81C5DBD
- .incbin "baserom.gba", 0x1C5DBD, 0x2D
+gNewGame_HelpDocs5:: @ 81C592B
+ .string "Press this button to open the\n"
+ .string "MENU.$"
-gUnknown_81C5DEA:: @ 81C5DEA
- .incbin "baserom.gba", 0x1C5DEA, 0x29
+gNewGame_HelpDocs6:: @ 81C594F
+ .string "Used to shift items and to use\n"
+ .string "a registered item.$"
-gUnknown_81C5E13:: @ 81C5E13
- .incbin "baserom.gba", 0x1C5E13, 0x1B
+gNewGame_HelpDocs7:: @ 81C5981
+ .string "If you need help playing the\n"
+ .string "game, or on how to do things,\n"
+ .string "press the L or R Button.$"
-gUnknown_81C5E2E:: @ 81C5E2E
- .incbin "baserom.gba", 0x1C5E2E, 0x63
+gOakText_AskPlayerGender:: @ 81C59D5
+ .string "Now tell me. Are you a boy?\n"
+ .string "Or are you a girl?$"
-gUnknown_81C5E91:: @ 81C5E91
- .incbin "baserom.gba", 0x1C5E91, 0x24
+gNewGameAdventureIntro1::
+ .string "In the world which you are about to\n"
+ .string "enter, you will embark on a grand\n"
+ .string "adventure with you as the hero.\n"
+ .string "\n"
+ .string "Speak to people and check things\n"
+ .string "wherever you go, be it towns, roads,\n"
+ .string "or caves. Gather information and\n"
+ .string "hints from every source.$"
-gUnknown_81C5EB5:: @ 81C5EB5
- .incbin "baserom.gba", 0x1C5EB5, 0x10
+gNewGameAdventureIntro2::
+ .string "New paths will open to you by helping\n"
+ .string "people in need, overcoming challenges,\n"
+ .string "and solving mysteries.\n"
+ .string "\n"
+ .string "At times, you will be challenged by\n"
+ .string "others and attacked by wild creatures.\n"
+ .string "Be brave and keep pushing on.$"
-gUnknown_81C5EC5:: @ 81C5EC5
- .incbin "baserom.gba", 0x1C5EC5, 0x2F
+gNewGameAdventureIntro3::
+ .string "Through your adventure, we hope\n"
+ .string "that you will interact with all sorts\n"
+ .string "of people and achieve personal growth.\n"
+ .string "That is our biggest objective.\n"
+ .string "\n"
+ .string "Press the A Button, and let your\n"
+ .string "adventure begin!$"
+
+gOakText_WelcomeToTheWorld:: @ 81C5C78
+ .string "Hello, there!\n"
+ .string "Glad to meet you!\pWelcome to the world of POKéMON!\pMy name is OAK.\pPeople affectionately refer to me\n"
+ .string "as the POKéMON PROFESSOR.\p$"
-gUnknown_81C5EF4:: @ 81C5EF4
- .incbin "baserom.gba", 0x1C5EF4, 0x75
+gOakText_WorldInhabited1:: @ 81C5D06
+ .string "This world…$"
+
+gOakText_WorldInhabited2:: @ 81C5D12
+ .string "…is inhabited far and wide by\n"
+ .string "creatures called POKéMON.\p$"
+
+gOakText_PetsBattlingStudy:: @ 81C5D4B
+ .string "For some people, POKéMON are pets.\n"
+ .string "Others use them for battling.\pAs for myself…\pI study POKéMON as a profession.\p$"
+
+gOakText_TellMeALittleAboutYourself:: @ 81C5DBD
+ .string "But first, tell me a little about\n"
+ .string "yourself.\p$"
+
+gOakText_AskPlayerName:: @ 81C5DEA
+ .string "Let’s begin with your name.\n"
+ .string "What is it?\p$"
+
+gOakText_FinalizePlayerName:: @ 81C5E13
+ .string "Right…\n"
+ .string "So your name is {PLAYER}.$"
+
+gOakText_IntroduceRival:: @ 81C5E2E
+ .string "This is my grandson.\pHe’s been your rival since you both\n"
+ .string "were babies.\p…Erm, what was his name now?$"
+
+gOakText_AskRivalName:: @ 81C5E91
+ .string "Your rival’s name, what was it now?$"
+
+gOakText_ConfirmRivalName:: @ 81C5EB5
+ .string "…Er, was it {RIVAL}?$"
+
+gOakText_RememberRivalName:: @ 81C5EC5
+ .string "That’s right! I remember now!\n"
+ .string "His name is {RIVAL}!\p$"
+
+gOakText_LegendAboutToUnfold:: @ 81C5EF4
+ .string "{PLAYER}!\pYour very own POKéMON legend is\n"
+ .string "about to unfold!\pA world of dreams and adventures\n"
+ .string "with POKéMON awaits! Let’s go!$"
@ pokedude data
- .incbin "baserom.gba", 0x1C5F69, 0x983
+gUnknown_81C5F69::
+ .string "POKé DUDE: The speedier of the\n"
+ .string "battlers gets to attack first.$"
+
+gUnknown_81C5FA7::
+ .string "It looks like my RATTATA was\n"
+ .string "faster than the PIDGEY.$"
+
+gUnknown_81C5FDC::
+ .string "The battlers take turns attacking\n"
+ .string "and reducing each other’s HP.$"
+
+gUnknown_81C601C::
+ .string "My RATTATA reduced the foe’s HP\n"
+ .string "to zero, so it wins!\p"
+ .string "The POKéMON that took part in the\n"
+ .string "battle get EXP. Points.\p"
+ .string "When a POKéMON collects enough\n"
+ .string "EXP. Points, it levels up.\p"
+ .string "Leveling up makes your POKéMON\n"
+ .string "stronger than before.$"
+
+gUnknown_81C60FA::
+ .string "POKé DUDE: Uh-oh…\n"
+ .string "My RATTATA has been poisoned…\p"
+ .string "If a POKéMON is poisoned, it loses\n"
+ .string "HP steadily.$"
+
+gUnknown_81C615A::
+ .string "If a POKéMON develops a status\n"
+ .string "problem, heal it right away.$"
+
+gUnknown_81C6196::
+ .string "Using an item on a POKéMON uses\n"
+ .string "up one turn, though.\p"
+ .string "Now, it’s the opponent’s turn!$"
+
+gUnknown_81C61EA::
+ .string "Yay!\n"
+ .string "We managed to win!$"
+
+gUnknown_81C6202::
+ .string "POKé DUDE: The move BUBBLE is\n"
+ .string "a WATER-type attack.\p"
+ .string "The targeted ODDISH is a\n"
+ .string "GRASS/POISON-type POKéMON.\p"
+ .string "The WATER-type attack is absorbed\n"
+ .string "by the GRASS-type POKéMON…\p"
+ .string "As a result, the move becomes not\n"
+ .string "very effective, and inflicts only\l"
+ .string "half the usual damage.$"
+
+gUnknown_81C6301::
+ .string "Uh-oh, this is not good!\p"
+ .string "The ABSORB attack you just saw\n"
+ .string "is a GRASS-type move.\p"
+ .string "POLIWAG is a WATER-type POKéMON.\p"
+ .string "So, ABSORB becomes super\n"
+ .string "effective, doubling the damage.$"
+
+gUnknown_81C63A9::
+ .string "It’s not going to be easy to win\n"
+ .string "with this matchup…\p"
+ .string "Let’s try shifting POKéMON!$"
+
+gUnknown_81C63F9::
+ .string "Shifting POKéMON in and out uses\n"
+ .string "up one turn.\p"
+ .string "Now, it’s the opponent’s turn.$"
+
+gUnknown_81C6446::
+ .string "BUTTERFREE is a BUG/FLYING-type\n"
+ .string "POKéMON.\p"
+ .string "Against this POKéMON, a GRASS-\n"
+ .string "type attack…\p"
+ .string "…inflicts only half the usual\n"
+ .string "damage on a BUG-type POKéMON…\p"
+ .string "…And, it also causes only half the\n"
+ .string "damage on a FLYING-type POKéMON.\p"
+ .string "Therefore, BUTTERFREE, being a\n"
+ .string "BUG/FLYING POKéMON, only takes\l"
+ .string "one quarter of the usual damage.$"
+
+gUnknown_81C657A::
+ .string "ODDISH is a GRASS/POISON-type\n"
+ .string "POKéMON.\p"
+ .string "A FLYING- or PSYCHIC-type attack\n"
+ .string "is super effective against it.\p"
+ .string "One of those types of attacks will\n"
+ .string "inflict double the usual damage.\p"
+ .string "Okay, here we go!$"
+
+gUnknown_81C6637::
+ .string "Yeah!\n"
+ .string "We won!$"
+
+gUnknown_81C6645::
+ .string "POKé DUDE: When you’re trying to\n"
+ .string "catch a POKéMON, don’t throw any\l"
+ .string "POKé BALLS right away.\p"
+ .string "First, you need to weaken it by\n"
+ .string "reducing its HP.$"
+
+gUnknown_81C66CF::
+ .string "Okay, that should be good enough.\p"
+ .string "But, if it’s possible, it would be\n"
+ .string "best if the target has a status\l"
+ .string "problem.\p"
+ .string "For instance, it would be easier\n"
+ .string "to catch if it were asleep or\l"
+ .string "paralyzed.$"
+
+gUnknown_81C6787::
+ .string "This will make the POKéMON a lot\n"
+ .string "easier to catch!\p"
+ .string "Oh, yes. If you paralyze a\n"
+ .string "POKéMON, you can’t make it fall\l"
+ .string "asleep on top of paralysis.\p"
+ .string "In other words, you can’t double\n"
+ .string "up status problems, okay?$"
+
+gUnknown_81C684B::
+ .string "Okay!\n"
+ .string "Let me throw my POKé BALL!$"
+
+gUnknown_81C686C::
+ .string "Before you throw a POKé BALL,\n"
+ .string "consider the condition and the\l"
+ .string "type of POKéMON, and pick the kind\l"
+ .string "of BALL that would work best.$"
diff --git a/data/field_door.s b/data/field_door.s
new file mode 100644
index 000000000..a29cf3e24
--- /dev/null
+++ b/data/field_door.s
@@ -0,0 +1,17 @@
+ .section .rodata
+
+ .align 2
+gUnknown_835B488:: @ 835B488
+ .incbin "baserom.gba", 0x35B488, 0x14
+
+gUnknown_835B49C:: @ 835B49C
+ .incbin "baserom.gba", 0x35B49C, 0x14
+
+gUnknown_835B4B0:: @ 835B4B0
+ .incbin "baserom.gba", 0x35B4B0, 0x14
+
+gUnknown_835B4C4:: @ 835B4C4
+ .incbin "baserom.gba", 0x35B4C4, 0x114
+
+gUnknown_835B5D8:: @ 835B5D8
+ .incbin "baserom.gba", 0x35B5D8, 0x18C
diff --git a/data/field_ground_effect.s b/data/field_ground_effect.s
new file mode 100644
index 000000000..7979c7522
--- /dev/null
+++ b/data/field_ground_effect.s
@@ -0,0 +1,34 @@
+ .section .rodata
+ .align 2
+gUnknown_83A7024:: @ 83A7024
+ .incbin "baserom.gba", 0x3A7024, 0x8
+
+gUnknown_83A702C:: @ 83A702C
+ .incbin "baserom.gba", 0x3A702C, 0x18
+
+gUnknown_83A7044:: @ 83A7044
+ .incbin "baserom.gba", 0x3A7044, 0x18
+
+gUnknown_83A705C:: @ 83A705C
+ .incbin "baserom.gba", 0x3A705C, 0x10
+
+gUnknown_83A706C:: @ 83A706C
+ .incbin "baserom.gba", 0x3A706C, 0x10
+
+gUnknown_83A707C:: @ 83A707C
+ .incbin "baserom.gba", 0x3A707C, 0x10
+
+gUnknown_83A708C:: @ 83A708C
+ .incbin "baserom.gba", 0x3A708C, 0x10
+
+gUnknown_83A709C:: @ 83A709C
+ .incbin "baserom.gba", 0x3A709C, 0xC
+
+gUnknown_83A70A8:: @ 83A70A8
+ .incbin "baserom.gba", 0x3A70A8, 0x4
+
+gUnknown_83A70AC:: @ 83A70AC
+ .incbin "baserom.gba", 0x3A70AC, 0x10
+
+gUnknown_83A70BC:: @ 83A70BC
+ .incbin "baserom.gba", 0x3A70BC, 0xE0
diff --git a/data/field_map_obj.s b/data/field_map_obj.s
new file mode 100644
index 000000000..d12de7aa9
--- /dev/null
+++ b/data/field_map_obj.s
@@ -0,0 +1,508 @@
+ .section .rodata
+ .align 2
+gUnknown_835B934:: @ 835B934
+ .incbin "baserom.gba", 0x35B934, 0x10
+
+gUnknown_835B944:: @ 835B944
+ .incbin "baserom.gba", 0x35B944, 0x18
+
+gUnknown_835B95C:: @ 835B95C
+ .incbin "baserom.gba", 0x35B95C, 0x3DA2C
+
+gUnknown_8399388:: @ 8399388
+ .incbin "baserom.gba", 0x399388, 0x908
+
+gUnknown_8399C90:: @ 8399C90
+ .incbin "baserom.gba", 0x399C90, 0x5F38
+
+gUnknown_839FBC8:: @ 839FBC8
+ .incbin "baserom.gba", 0x39FBC8, 0x144
+
+gUnknown_839FD0C:: @ 839FD0C
+ .incbin "baserom.gba", 0x39FD0C, 0x51
+
+gUnknown_839FD5D:: @ 839FD5D
+ .incbin "baserom.gba", 0x39FD5D, 0x53
+
+gUnknown_839FDB0:: @ 839FDB0
+ .incbin "baserom.gba", 0x39FDB0, 0x260
+
+gUnknown_83A0010:: @ 83A0010
+ .incbin "baserom.gba", 0x3A0010, 0x3688
+
+gUnknown_83A3698:: @ 83A3698
+ .incbin "baserom.gba", 0x3A3698, 0x1AC0
+
+gUnknown_83A5158:: @ 83A5158
+ .incbin "baserom.gba", 0x3A5158, 0xB0
+
+gUnknown_83A5208:: @ 83A5208
+ .incbin "baserom.gba", 0x3A5208, 0x70
+
+gUnknown_83A5278:: @ 83A5278
+ .incbin "baserom.gba", 0x3A5278, 0xB8
+
+gUnknown_83A5330:: @ 83A5330
+ .incbin "baserom.gba", 0x3A5330, 0x18
+
+gUnknown_83A5348:: @ 83A5348
+ .incbin "baserom.gba", 0x3A5348, 0xCB8
+
+gUnknown_83A6000:: @ 83A6000
+ .incbin "baserom.gba", 0x3A6000, 0x10
+
+gUnknown_83A6010:: @ 83A6010
+ .incbin "baserom.gba", 0x3A6010, 0x8
+
+gUnknown_83A6018:: @ 83A6018
+ .incbin "baserom.gba", 0x3A6018, 0x1C
+
+gUnknown_83A6034:: @ 83A6034
+ .incbin "baserom.gba", 0x3A6034, 0x1C
+
+gUnknown_83A6050:: @ 83A6050
+ .incbin "baserom.gba", 0x3A6050, 0x4
+
+gUnknown_83A6054:: @ 83A6054
+ .incbin "baserom.gba", 0x3A6054, 0x2C
+
+gUnknown_83A6080:: @ 83A6080
+ .incbin "baserom.gba", 0x3A6080, 0x14
+
+gUnknown_83A6094:: @ 83A6094
+ .incbin "baserom.gba", 0x3A6094, 0x1C
+
+gUnknown_83A60B0:: @ 83A60B0
+ .incbin "baserom.gba", 0x3A60B0, 0x4
+
+gUnknown_83A60B4:: @ 83A60B4
+ .incbin "baserom.gba", 0x3A60B4, 0x1C
+
+gUnknown_83A60D0:: @ 83A60D0
+ .incbin "baserom.gba", 0x3A60D0, 0x4
+
+gUnknown_83A60D4:: @ 83A60D4
+ .incbin "baserom.gba", 0x3A60D4, 0xC
+
+gUnknown_83A60E0:: @ 83A60E0
+ .incbin "baserom.gba", 0x3A60E0, 0x14
+
+gUnknown_83A60F4:: @ 83A60F4
+ .incbin "baserom.gba", 0x3A60F4, 0x14
+
+gUnknown_83A6108:: @ 83A6108
+ .incbin "baserom.gba", 0x3A6108, 0x14
+
+gUnknown_83A611C:: @ 83A611C
+ .incbin "baserom.gba", 0x3A611C, 0x4
+
+gUnknown_83A6120:: @ 83A6120
+ .incbin "baserom.gba", 0x3A6120, 0x14
+
+gUnknown_83A6134:: @ 83A6134
+ .incbin "baserom.gba", 0x3A6134, 0x4
+
+gUnknown_83A6138:: @ 83A6138
+ .incbin "baserom.gba", 0x3A6138, 0x14
+
+gUnknown_83A614C:: @ 83A614C
+ .incbin "baserom.gba", 0x3A614C, 0x4
+
+gUnknown_83A6150:: @ 83A6150
+ .incbin "baserom.gba", 0x3A6150, 0x14
+
+gUnknown_83A6164:: @ 83A6164
+ .incbin "baserom.gba", 0x3A6164, 0x4
+
+gUnknown_83A6168:: @ 83A6168
+ .incbin "baserom.gba", 0x3A6168, 0x14
+
+gUnknown_83A617C:: @ 83A617C
+ .incbin "baserom.gba", 0x3A617C, 0x4
+
+gUnknown_83A6180:: @ 83A6180
+ .incbin "baserom.gba", 0x3A6180, 0x14
+
+gUnknown_83A6194:: @ 83A6194
+ .incbin "baserom.gba", 0x3A6194, 0x4
+
+gUnknown_83A6198:: @ 83A6198
+ .incbin "baserom.gba", 0x3A6198, 0x14
+
+gUnknown_83A61AC:: @ 83A61AC
+ .incbin "baserom.gba", 0x3A61AC, 0x4
+
+gUnknown_83A61B0:: @ 83A61B0
+ .incbin "baserom.gba", 0x3A61B0, 0x14
+
+gUnknown_83A61C4:: @ 83A61C4
+ .incbin "baserom.gba", 0x3A61C4, 0x4
+
+gUnknown_83A61C8:: @ 83A61C8
+ .incbin "baserom.gba", 0x3A61C8, 0x10
+
+gUnknown_83A61D8:: @ 83A61D8
+ .incbin "baserom.gba", 0x3A61D8, 0x8
+
+gUnknown_83A61E0:: @ 83A61E0
+ .incbin "baserom.gba", 0x3A61E0, 0x10
+
+gUnknown_83A61F0:: @ 83A61F0
+ .incbin "baserom.gba", 0x3A61F0, 0x8
+
+gUnknown_83A61F8:: @ 83A61F8
+ .incbin "baserom.gba", 0x3A61F8, 0x10
+
+gUnknown_83A6208:: @ 83A6208
+ .incbin "baserom.gba", 0x3A6208, 0xC
+
+gUnknown_83A6214:: @ 83A6214
+ .incbin "baserom.gba", 0x3A6214, 0x4
+
+gUnknown_83A6218:: @ 83A6218
+ .incbin "baserom.gba", 0x3A6218, 0xC
+
+gUnknown_83A6224:: @ 83A6224
+ .incbin "baserom.gba", 0x3A6224, 0x4
+
+gUnknown_83A6228:: @ 83A6228
+ .incbin "baserom.gba", 0x3A6228, 0xC
+
+gUnknown_83A6234:: @ 83A6234
+ .incbin "baserom.gba", 0x3A6234, 0x4
+
+gUnknown_83A6238:: @ 83A6238
+ .incbin "baserom.gba", 0x3A6238, 0xC
+
+gUnknown_83A6244:: @ 83A6244
+ .incbin "baserom.gba", 0x3A6244, 0x4
+
+gUnknown_83A6248:: @ 83A6248
+ .incbin "baserom.gba", 0x3A6248, 0xC
+
+gUnknown_83A6254:: @ 83A6254
+ .incbin "baserom.gba", 0x3A6254, 0x4
+
+gUnknown_83A6258:: @ 83A6258
+ .incbin "baserom.gba", 0x3A6258, 0xC
+
+gUnknown_83A6264:: @ 83A6264
+ .incbin "baserom.gba", 0x3A6264, 0x4
+
+gUnknown_83A6268:: @ 83A6268
+ .incbin "baserom.gba", 0x3A6268, 0xC
+
+gUnknown_83A6274:: @ 83A6274
+ .incbin "baserom.gba", 0x3A6274, 0xC
+
+gUnknown_83A6280:: @ 83A6280
+ .incbin "baserom.gba", 0x3A6280, 0x4
+
+gUnknown_83A6284:: @ 83A6284
+ .incbin "baserom.gba", 0x3A6284, 0xC
+
+gUnknown_83A6290:: @ 83A6290
+ .incbin "baserom.gba", 0x3A6290, 0x4
+
+gUnknown_83A6294:: @ 83A6294
+ .incbin "baserom.gba", 0x3A6294, 0xC
+
+gUnknown_83A62A0:: @ 83A62A0
+ .incbin "baserom.gba", 0x3A62A0, 0x4
+
+gUnknown_83A62A4:: @ 83A62A4
+ .incbin "baserom.gba", 0x3A62A4, 0xC
+
+gUnknown_83A62B0:: @ 83A62B0
+ .incbin "baserom.gba", 0x3A62B0, 0x4
+
+gUnknown_83A62B4:: @ 83A62B4
+ .incbin "baserom.gba", 0x3A62B4, 0xC
+
+gUnknown_83A62C0:: @ 83A62C0
+ .incbin "baserom.gba", 0x3A62C0, 0x4
+
+gUnknown_83A62C4:: @ 83A62C4
+ .incbin "baserom.gba", 0x3A62C4, 0xC
+
+gUnknown_83A62D0:: @ 83A62D0
+ .incbin "baserom.gba", 0x3A62D0, 0x4
+
+gUnknown_83A62D4:: @ 83A62D4
+ .incbin "baserom.gba", 0x3A62D4, 0xC
+
+gUnknown_83A62E0:: @ 83A62E0
+ .incbin "baserom.gba", 0x3A62E0, 0x4
+
+gUnknown_83A62E4:: @ 83A62E4
+ .incbin "baserom.gba", 0x3A62E4, 0xC
+
+gUnknown_83A62F0:: @ 83A62F0
+ .incbin "baserom.gba", 0x3A62F0, 0x4
+
+gUnknown_83A62F4:: @ 83A62F4
+ .incbin "baserom.gba", 0x3A62F4, 0xC
+
+gUnknown_83A6300:: @ 83A6300
+ .incbin "baserom.gba", 0x3A6300, 0x4
+
+gUnknown_83A6304:: @ 83A6304
+ .incbin "baserom.gba", 0x3A6304, 0xC
+
+gUnknown_83A6310:: @ 83A6310
+ .incbin "baserom.gba", 0x3A6310, 0x4
+
+gUnknown_83A6314:: @ 83A6314
+ .incbin "baserom.gba", 0x3A6314, 0xC
+
+gUnknown_83A6320:: @ 83A6320
+ .incbin "baserom.gba", 0x3A6320, 0x4
+
+gUnknown_83A6324:: @ 83A6324
+ .incbin "baserom.gba", 0x3A6324, 0xC
+
+gUnknown_83A6330:: @ 83A6330
+ .incbin "baserom.gba", 0x3A6330, 0x4
+
+gUnknown_83A6334:: @ 83A6334
+ .incbin "baserom.gba", 0x3A6334, 0xC
+
+gUnknown_83A6340:: @ 83A6340
+ .incbin "baserom.gba", 0x3A6340, 0x4
+
+gUnknown_83A6344:: @ 83A6344
+ .incbin "baserom.gba", 0x3A6344, 0xC
+
+gUnknown_83A6350:: @ 83A6350
+ .incbin "baserom.gba", 0x3A6350, 0x4
+
+gUnknown_83A6354:: @ 83A6354
+ .incbin "baserom.gba", 0x3A6354, 0xC
+
+gUnknown_83A6360:: @ 83A6360
+ .incbin "baserom.gba", 0x3A6360, 0x4
+
+gUnknown_83A6364:: @ 83A6364
+ .incbin "baserom.gba", 0x3A6364, 0xC
+
+gUnknown_83A6370:: @ 83A6370
+ .incbin "baserom.gba", 0x3A6370, 0x4
+
+gUnknown_83A6374:: @ 83A6374
+ .incbin "baserom.gba", 0x3A6374, 0xC
+
+gUnknown_83A6380:: @ 83A6380
+ .incbin "baserom.gba", 0x3A6380, 0x4
+
+gUnknown_83A6384:: @ 83A6384
+ .incbin "baserom.gba", 0x3A6384, 0xC
+
+gUnknown_83A6390:: @ 83A6390
+ .incbin "baserom.gba", 0x3A6390, 0x2C
+
+gUnknown_83A63BC:: @ 83A63BC
+ .incbin "baserom.gba", 0x3A63BC, 0xC
+
+gUnknown_83A63C8:: @ 83A63C8
+ .incbin "baserom.gba", 0x3A63C8, 0x4
+
+gUnknown_83A63CC:: @ 83A63CC
+ .incbin "baserom.gba", 0x3A63CC, 0x8
+
+gUnknown_83A63D4:: @ 83A63D4
+ .incbin "baserom.gba", 0x3A63D4, 0x8
+
+gUnknown_83A63DC:: @ 83A63DC
+ .incbin "baserom.gba", 0x3A63DC, 0x8
+
+gUnknown_83A63E4:: @ 83A63E4
+ .incbin "baserom.gba", 0x3A63E4, 0xC
+
+gUnknown_83A63F0:: @ 83A63F0
+ .incbin "baserom.gba", 0x3A63F0, 0xC
+
+gUnknown_83A63FC:: @ 83A63FC
+ .incbin "baserom.gba", 0x3A63FC, 0x8
+
+gUnknown_83A6404:: @ 83A6404
+ .incbin "baserom.gba", 0x3A6404, 0x8
+
+gUnknown_83A640C:: @ 83A640C
+ .incbin "baserom.gba", 0x3A640C, 0x9
+
+gUnknown_83A6415:: @ 83A6415
+ .incbin "baserom.gba", 0x3A6415, 0x9
+
+gUnknown_83A641E:: @ 83A641E
+ .incbin "baserom.gba", 0x3A641E, 0x9
+
+gUnknown_83A6427:: @ 83A6427
+ .incbin "baserom.gba", 0x3A6427, 0x9
+
+gUnknown_83A6430:: @ 83A6430
+ .incbin "baserom.gba", 0x3A6430, 0x9
+
+gUnknown_83A6439:: @ 83A6439
+ .incbin "baserom.gba", 0x3A6439, 0x9
+
+gUnknown_83A6442:: @ 83A6442
+ .incbin "baserom.gba", 0x3A6442, 0x9
+
+gUnknown_83A644B:: @ 83A644B
+ .incbin "baserom.gba", 0x3A644B, 0x9
+
+gUnknown_83A6454:: @ 83A6454
+ .incbin "baserom.gba", 0x3A6454, 0x9
+
+gUnknown_83A645D:: @ 83A645D
+ .incbin "baserom.gba", 0x3A645D, 0x9
+
+gUnknown_83A6466:: @ 83A6466
+ .incbin "baserom.gba", 0x3A6466, 0x9
+
+gUnknown_83A646F:: @ 83A646F
+ .incbin "baserom.gba", 0x3A646F, 0x9
+
+gUnknown_83A6478:: @ 83A6478
+ .incbin "baserom.gba", 0x3A6478, 0x9
+
+gUnknown_83A6481:: @ 83A6481
+ .incbin "baserom.gba", 0x3A6481, 0x9
+
+gUnknown_83A648A:: @ 83A648A
+ .incbin "baserom.gba", 0x3A648A, 0x9
+
+gUnknown_83A6493:: @ 83A6493
+ .incbin "baserom.gba", 0x3A6493, 0x9
+
+gUnknown_83A649C:: @ 83A649C
+ .incbin "baserom.gba", 0x3A649C, 0xC
+
+gUnknown_83A64A8:: @ 83A64A8
+ .incbin "baserom.gba", 0x3A64A8, 0x10
+
+gUnknown_83A64B8:: @ 83A64B8
+ .incbin "baserom.gba", 0x3A64B8, 0x10
+
+gUnknown_83A64C8:: @ 83A64C8
+ .incbin "baserom.gba", 0x3A64C8, 0x24
+
+gUnknown_83A64EC:: @ 83A64EC
+ .incbin "baserom.gba", 0x3A64EC, 0x5
+
+gUnknown_83A64F1:: @ 83A64F1
+ .incbin "baserom.gba", 0x3A64F1, 0x5
+
+gUnknown_83A64F6:: @ 83A64F6
+ .incbin "baserom.gba", 0x3A64F6, 0x5
+
+gUnknown_83A64FB:: @ 83A64FB
+ .incbin "baserom.gba", 0x3A64FB, 0x5
+
+gUnknown_83A6500:: @ 83A6500
+ .incbin "baserom.gba", 0x3A6500, 0x5
+
+gUnknown_83A6505:: @ 83A6505
+ .incbin "baserom.gba", 0x3A6505, 0x5
+
+gUnknown_83A650A:: @ 83A650A
+ .incbin "baserom.gba", 0x3A650A, 0x5
+
+gUnknown_83A650F:: @ 83A650F
+ .incbin "baserom.gba", 0x3A650F, 0x5
+
+gUnknown_83A6514:: @ 83A6514
+ .incbin "baserom.gba", 0x3A6514, 0x5
+
+gUnknown_83A6519:: @ 83A6519
+ .incbin "baserom.gba", 0x3A6519, 0x5
+
+gUnknown_83A651E:: @ 83A651E
+ .incbin "baserom.gba", 0x3A651E, 0x5
+
+gUnknown_83A6523:: @ 83A6523
+ .incbin "baserom.gba", 0x3A6523, 0x5
+
+gUnknown_83A6528:: @ 83A6528
+ .incbin "baserom.gba", 0x3A6528, 0x5
+
+gUnknown_83A652D:: @ 83A652D
+ .incbin "baserom.gba", 0x3A652D, 0x5
+
+gUnknown_83A6532:: @ 83A6532
+ .incbin "baserom.gba", 0x3A6532, 0x5
+
+gUnknown_83A6537:: @ 83A6537
+ .incbin "baserom.gba", 0x3A6537, 0x5
+
+gUnknown_83A653C:: @ 83A653C
+ .incbin "baserom.gba", 0x3A653C, 0x5
+
+gUnknown_83A6541:: @ 83A6541
+ .incbin "baserom.gba", 0x3A6541, 0x5
+
+gUnknown_83A6546:: @ 83A6546
+ .incbin "baserom.gba", 0x3A6546, 0x5
+
+gUnknown_83A654B:: @ 83A654B
+ .incbin "baserom.gba", 0x3A654B, 0x5
+
+gUnknown_83A6550:: @ 83A6550
+ .incbin "baserom.gba", 0x3A6550, 0x5
+
+gUnknown_83A6555:: @ 83A6555
+ .incbin "baserom.gba", 0x3A6555, 0x5
+
+gUnknown_83A655A:: @ 83A655A
+ .incbin "baserom.gba", 0x3A655A, 0x5
+
+gUnknown_83A655F:: @ 83A655F
+ .incbin "baserom.gba", 0x3A655F, 0x5
+
+gUnknown_83A6564:: @ 83A6564
+ .incbin "baserom.gba", 0x3A6564, 0x5
+
+gUnknown_83A6569:: @ 83A6569
+ .incbin "baserom.gba", 0x3A6569, 0x5
+
+gUnknown_83A656E:: @ 83A656E
+ .incbin "baserom.gba", 0x3A656E, 0x5
+
+gUnknown_83A6573:: @ 83A6573
+ .incbin "baserom.gba", 0x3A6573, 0x5
+
+gUnknown_83A6578:: @ 83A6578
+ .incbin "baserom.gba", 0x3A6578, 0x5
+
+gUnknown_83A657D:: @ 83A657D
+ .incbin "baserom.gba", 0x3A657D, 0x5
+
+gUnknown_83A6582:: @ 83A6582
+ .incbin "baserom.gba", 0x3A6582, 0x5
+
+gUnknown_83A6587:: @ 83A6587
+ .incbin "baserom.gba", 0x3A6587, 0x5
+
+gUnknown_83A658C:: @ 83A658C
+ .incbin "baserom.gba", 0x3A658C, 0x5
+
+gUnknown_83A6591:: @ 83A6591
+ .incbin "baserom.gba", 0x3A6591, 0x8
+
+gUnknown_83A6599:: @ 83A6599
+ .incbin "baserom.gba", 0x3A6599, 0x10
+
+gUnknown_83A65A9:: @ 83A65A9
+ .incbin "baserom.gba", 0x3A65A9, 0x13
+
+gUnknown_83A65BC:: @ 83A65BC
+ .incbin "baserom.gba", 0x3A65BC, 0x2C8
+
+gUnknown_83A6884:: @ 83A6884
+ .incbin "baserom.gba", 0x3A6884, 0xD4
+
+gUnknown_83A6958:: @ 83A6958
+ .incbin "baserom.gba", 0x3A6958, 0x6
+
+gUnknown_83A695E:: @ 83A695E
+ .incbin "baserom.gba", 0x3A695E, 0x6C6
diff --git a/data/field_player_avatar.s b/data/field_player_avatar.s
new file mode 100644
index 000000000..c11bc74b3
--- /dev/null
+++ b/data/field_player_avatar.s
@@ -0,0 +1,73 @@
+ .section .rodata
+ .align 2
+gUnknown_835B764:: @ 835B764
+ .incbin "baserom.gba", 0x35B764, 0xB0
+
+gUnknown_835B814:: @ 835B814
+ .incbin "baserom.gba", 0x35B814, 0xC
+
+gUnknown_835B820:: @ 835B820
+ .incbin "baserom.gba", 0x35B820, 0x8
+
+gUnknown_835B828:: @ 835B828
+ .incbin "baserom.gba", 0x35B828, 0x14
+
+gUnknown_835B83C:: @ 835B83C
+ .incbin "baserom.gba", 0x35B83C, 0x8
+
+gUnknown_835B844:: @ 835B844
+ .incbin "baserom.gba", 0x35B844, 0x20
+
+gUnknown_835B864:: @ 835B864
+ .incbin "baserom.gba", 0x35B864, 0x10
+
+gUnknown_835B874:: @ 835B874
+ .incbin "baserom.gba", 0x35B874, 0xC
+
+gUnknown_835B880:: @ 835B880
+ .incbin "baserom.gba", 0x35B880, 0x2
+
+gUnknown_835B882:: @ 835B882
+ .incbin "baserom.gba", 0x35B882, 0xC
+
+gUnknown_835B88E:: @ 835B88E
+ .incbin "baserom.gba", 0x35B88E, 0x2
+
+gUnknown_835B890:: @ 835B890
+ .incbin "baserom.gba", 0x35B890, 0x10
+
+gUnknown_835B8A0:: @ 835B8A0
+ .incbin "baserom.gba", 0x35B8A0, 0xC
+
+gUnknown_835B8AC:: @ 835B8AC
+ .incbin "baserom.gba", 0x35B8AC, 0x4
+
+gUnknown_835B8B0:: @ 835B8B0
+ .incbin "baserom.gba", 0x35B8B0, 0x10
+
+gUnknown_835B8C0:: @ 835B8C0
+ .incbin "baserom.gba", 0x35B8C0, 0x4
+
+gUnknown_835B8C4:: @ 835B8C4
+ .incbin "baserom.gba", 0x35B8C4, 0x8
+
+gUnknown_835B8CC:: @ 835B8CC
+ .incbin "baserom.gba", 0x35B8CC, 0x40
+
+gUnknown_835B90C:: @ 835B90C
+ .incbin "baserom.gba", 0x35B90C, 0x6
+
+gUnknown_835B912:: @ 835B912
+ .incbin "baserom.gba", 0x35B912, 0x6
+
+gUnknown_835B918:: @ 835B918
+ .incbin "baserom.gba", 0x35B918, 0x2
+
+gUnknown_835B91A:: @ 835B91A
+ .incbin "baserom.gba", 0x35B91A, 0x6
+
+gUnknown_835B920:: @ 835B920
+ .incbin "baserom.gba", 0x35B920, 0xC
+
+gUnknown_835B92C:: @ 835B92C
+ .incbin "baserom.gba", 0x35B92C, 0x8
diff --git a/data/field_tasks.s b/data/field_tasks.s
new file mode 100644
index 000000000..a91e6cec9
--- /dev/null
+++ b/data/field_tasks.s
@@ -0,0 +1,7 @@
+ .section .rodata
+ .align 2
+gUnknown_83A7310:: @ 83A7310
+ .incbin "baserom.gba", 0x3A7310, 0x20
+
+gUnknown_83A7330:: @ 83A7330
+ .incbin "baserom.gba", 0x3A7330, 0x14
diff --git a/data/field_weather.s b/data/field_weather.s
new file mode 100644
index 000000000..a25e44344
--- /dev/null
+++ b/data/field_weather.s
@@ -0,0 +1,101 @@
+ .section .rodata
+ .align 2
+
+gUnknown_83C2BBC:: @ 83C2BBC
+ .incbin "baserom.gba", 0x3C2BBC, 0x4
+
+gUnknown_83C2BC0:: @ 83C2BC0
+ .incbin "baserom.gba", 0x3C2BC0, 0xF0
+
+gUnknown_83C2CB0:: @ 83C2CB0
+ .incbin "baserom.gba", 0x3C2CB0, 0x10
+
+gUnknown_83C2CC0:: @ 83C2CC0
+ .incbin "baserom.gba", 0x3C2CC0, 0x20
+
+gUnknown_83C2CE0:: @ 83C2CE0
+ .incbin "baserom.gba", 0x3C2CE0, 0x20
+
+gUnknown_83C2D00:: @ 83C2D00
+ .incbin "baserom.gba", 0x3C2D00, 0x20
+
+gUnknown_83C2D20:: @ 83C2D20
+ .incbin "baserom.gba", 0x3C2D20, 0x820
+
+gUnknown_83C3540:: @ 83C3540
+ .incbin "baserom.gba", 0x3C3540, 0x3080
+
+gUnknown_83C65C0:: @ 83C65C0
+ .incbin "baserom.gba", 0x3C65C0, 0x4
+
+gUnknown_83C65C4:: @ 83C65C4
+ .incbin "baserom.gba", 0x3C65C4, 0x4
+
+gUnknown_83C65C8:: @ 83C65C8
+ .incbin "baserom.gba", 0x3C65C8, 0xC
+
+gUnknown_83C65D4:: @ 83C65D4
+ .incbin "baserom.gba", 0x3C65D4, 0x1C
+
+gUnknown_83C65F0:: @ 83C65F0
+ .incbin "baserom.gba", 0x3C65F0, 0x18
+
+gUnknown_83C6608:: @ 83C6608
+ .incbin "baserom.gba", 0x3C6608, 0x9C
+
+gUnknown_83C66A4:: @ 83C66A4
+ .incbin "baserom.gba", 0x3C66A4, 0x18
+
+gUnknown_83C66BC:: @ 83C66BC
+ .incbin "baserom.gba", 0x3C66BC, 0x8
+
+gUnknown_83C66C4:: @ 83C66C4
+ .incbin "baserom.gba", 0x3C66C4, 0x8
+
+gUnknown_83C66CC:: @ 83C66CC
+ .incbin "baserom.gba", 0x3C66CC, 0x38
+
+gUnknown_83C6704:: @ 83C6704
+ .incbin "baserom.gba", 0x3C6704, 0x8C
+
+gUnknown_83C6790:: @ 83C6790
+ .incbin "baserom.gba", 0x3C6790, 0x18
+
+gUnknown_83C67A8:: @ 83C67A8
+ .incbin "baserom.gba", 0x3C67A8, 0x8
+
+gUnknown_83C67B0:: @ 83C67B0
+ .incbin "baserom.gba", 0x3C67B0, 0x20
+
+gUnknown_83C67D0:: @ 83C67D0
+ .incbin "baserom.gba", 0x3C67D0, 0x18
+
+gUnknown_83C67E8:: @ 83C67E8
+ .incbin "baserom.gba", 0x3C67E8, 0x1C
+
+gUnknown_83C6804:: @ 83C6804
+ .incbin "baserom.gba", 0x3C6804, 0x38
+
+gUnknown_83C683C:: @ 83C683C
+ .incbin "baserom.gba", 0x3C683C, 0x18
+
+gUnknown_83C6854:: @ 83C6854
+ .incbin "baserom.gba", 0x3C6854, 0x8
+
+gUnknown_83C685C:: @ 83C685C
+ .incbin "baserom.gba", 0x3C685C, 0xC
+
+gUnknown_83C6868:: @ 83C6868
+ .incbin "baserom.gba", 0x3C6868, 0x8
+
+gUnknown_83C6870:: @ 83C6870
+ .incbin "baserom.gba", 0x3C6870, 0x8
+
+gUnknown_83C6878:: @ 83C6878
+ .incbin "baserom.gba", 0x3C6878, 0x44
+
+gUnknown_83C68BC:: @ 83C68BC
+ .incbin "baserom.gba", 0x3C68BC, 0x18
+
+gUnknown_83C68D4:: @ 83C68D4
+ .incbin "baserom.gba", 0x3C68D4, 0xC
diff --git a/data/graphics.s b/data/graphics.s
index a1e421f2c..12cb6a33f 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -13953,28 +13953,28 @@ gFile_graphics_interface_bag_swap_palette:: @ 8E845C8
.align 2
gUnknown_8E845D8:: @ 8E845D8
- .incbin "baserom.gba", 0xE845D8, 0x44C
+ .incbin "graphics/tm_case/unk_8E845D8.4bpp.lz"
gUnknown_8E84A24:: @ 8E84A24
- .incbin "baserom.gba", 0xE84A24, 0x14C
+ .incbin "graphics/tm_case/unk_8E84A24.bin.lz"
gUnknown_8E84B70:: @ 8E84B70
- .incbin "baserom.gba", 0xE84B70, 0x140
+ .incbin "graphics/tm_case/unk_8E84B70.bin.lz"
gUnknown_8E84CB0:: @ 8E84CB0
- .incbin "baserom.gba", 0xE84CB0, 0x70
+ .incbin "graphics/tm_case/unk_8E84CB0.gbapal.lz"
gUnknown_8E84D20:: @ 8E84D20
- .incbin "baserom.gba", 0xE84D20, 0x70
+ .incbin "graphics/tm_case/unk_8E84D20.gbapal.lz"
-gUnknown_8E84D90:: @ 8E84D90
- .incbin "baserom.gba", 0xE84D90, 0x190
+gTMCase_TMSpriteGfx:: @ 8E84D90
+ .incbin "graphics/tm_case/unk_8E84D90.4bpp.lz"
gUnknown_8E84F20:: @ 8E84F20
- .incbin "baserom.gba", 0xE84F20, 0x148
+ .incbin "graphics/tm_case/unk_8E84F20.gbapal.lz"
gUnknown_8E85068:: @ 8E85068
- .incbin "baserom.gba", 0xE85068, 0x28
+ .incbin "graphics/tm_case/unk_8E85068.gbapal.lz"
gUnknown_8E85090:: @ 8E85090
.incbin "baserom.gba", 0xE85090, 0x378
@@ -16072,7 +16072,10 @@ gUnknown_8E985D8:: @ 8E985D8
.incbin "baserom.gba", 0xE985D8, 0xB40 @UNKNOWN, FALSEPOSITIVE?
gUnknown_8E99118:: @ 8E99118
- .incbin "baserom.gba", 0xE99118, 0xE0 @UNKNOWN
+ .incbin "graphics/tm_case/unk_8E99118.4bpp"
+
+gUnknown_8E99198::
+ .incbin "baserom.gba", 0xE99198, 0x60 @UNKNOWN
gUnknown_8E991F8:: @ 8E991F8
.incbin "baserom.gba", 0xE991F8, 0x674
diff --git a/data/help_system.s b/data/help_system.s
new file mode 100644
index 000000000..3031f4c7f
--- /dev/null
+++ b/data/help_system.s
@@ -0,0 +1,8 @@
+ .section .rodata
+ .align 2
+
+gUnknown_8464008:: @ 8464008
+ .incbin "baserom.gba", 0x464008, 0x120
+
+gUnknown_8464128:: @ 8464128
+ .incbin "baserom.gba", 0x464128, 0x20
diff --git a/data/itemfinder.s b/data/itemfinder.s
new file mode 100644
index 000000000..3a955deeb
--- /dev/null
+++ b/data/itemfinder.s
@@ -0,0 +1,7 @@
+ .section .rodata
+ .align 2
+gUnknown_84647E4:: @ 84647E4
+ .incbin "baserom.gba", 0x4647E4, 0x18
+
+gUnknown_84647FC:: @ 84647FC
+ .incbin "baserom.gba", 0x4647FC, 0x8
diff --git a/data/link_rfu_4.s b/data/link_rfu_4.s
new file mode 100644
index 000000000..20f235a80
--- /dev/null
+++ b/data/link_rfu_4.s
@@ -0,0 +1,54 @@
+ .section .rodata
+
+ .align 2
+
+gUnknown_8466D90:: @ 8466D90
+ .incbin "baserom.gba", 0x466D90, 0x8
+
+gUnknown_8466D98:: @ 8466D98
+ .incbin "baserom.gba", 0x466D98, 0x8
+
+gUnknown_8466DA0:: @ 8466DA0
+ .incbin "baserom.gba", 0x466DA0, 0x8
+
+gUnknown_8466DA8:: @ 8466DA8
+ .incbin "baserom.gba", 0x466DA8, 0x8
+
+gUnknown_8466DB0:: @ 8466DB0
+ .incbin "baserom.gba", 0x466DB0, 0x8
+
+gUnknown_8466DB8:: @ 8466DB8
+ .incbin "baserom.gba", 0x466DB8, 0x8
+
+gUnknown_8466DC0:: @ 8466DC0
+ .incbin "baserom.gba", 0x466DC0, 0x8
+
+gUnknown_8466DC8:: @ 8466DC8
+ .incbin "baserom.gba", 0x466DC8, 0x8
+
+gUnknown_8466DD0:: @ 8466DD0
+ .incbin "baserom.gba", 0x466DD0, 0x18
+
+gUnknown_8466DE8:: @ 8466DE8
+ .incbin "baserom.gba", 0x466DE8, 0x18
+
+gUnknown_8466E00:: @ 8466E00
+ .incbin "baserom.gba", 0x466E00, 0x78
+
+gUnknown_8466E78:: @ 8466E78
+ .incbin "baserom.gba", 0x466E78, 0x18
+
+gUnknown_8466E90:: @ 8466E90
+ .incbin "baserom.gba", 0x466E90, 0x18
+
+gUnknown_8466EA8:: @ 8466EA8
+ .incbin "baserom.gba", 0x466EA8, 0x18
+
+gUnknown_8466EC0:: @ 8466EC0
+ .incbin "baserom.gba", 0x466EC0, 0x28
+
+gUnknown_8466EE8:: @ 8466EE8
+ .incbin "baserom.gba", 0x466EE8, 0x8
+
+gUnknown_8466EF0:: @ 8466EF0
+ .incbin "baserom.gba", 0x466EF0, 0x10
diff --git a/data/map_events.s b/data/map_events.s
new file mode 100644
index 000000000..d61949575
--- /dev/null
+++ b/data/map_events.s
@@ -0,0 +1,1276 @@
+ .section .rodata
+ .align 2
+gMapEvents_UnknownMap_00_00:: @ 0x83AE0DC
+ .incbin "baserom.gba", 0x3AE0DC, 0x5C
+
+gMapEvents_UnknownMap_00_01:: @ 0x83AE138
+ .incbin "baserom.gba", 0x3AE138, 0x8C
+
+gMapEvents_UnknownMap_00_02:: @ 0x83AE1C4
+ .incbin "baserom.gba", 0x3AE1C4, 0x74
+
+gMapEvents_UnknownMap_00_03:: @ 0x83AE238
+ .incbin "baserom.gba", 0x3AE238, 0xF4
+
+gMapEvents_UnknownMap_00_04:: @ 0x83AE32C
+ .incbin "baserom.gba", 0x3AE32C, 0x1AC
+
+gMapEvents_ViridianForest:: @ 0x83AE4D8
+ .incbin "baserom.gba", 0x3AE4D8, 0x190
+
+gMapEvents_MtMoon_1F:: @ 0x83AE668
+ .incbin "baserom.gba", 0x3AE668, 0x9C
+
+gMapEvents_MtMoon_B1F:: @ 0x83AE704
+ .incbin "baserom.gba", 0x3AE704, 0x164
+
+gMapEvents_MtMoon_B2F:: @ 0x83AE868
+ .incbin "baserom.gba", 0x3AE868, 0x60
+
+gMapEvents_SSAnne_Exterior:: @ 0x83AE8C8
+ .incbin "baserom.gba", 0x3AE8C8, 0xAC
+
+gMapEvents_SSAnne_1F_Corridor:: @ 0x83AE974
+ .incbin "baserom.gba", 0x3AE974, 0xBC
+
+gMapEvents_SSAnne_2F_Corridor:: @ 0x83AEA30
+ .incbin "baserom.gba", 0x3AEA30, 0x44
+
+gMapEvents_SSAnne_3F_Corridor:: @ 0x83AEA74
+ .incbin "baserom.gba", 0x3AEA74, 0x50
+
+gMapEvents_SSAnne_B1F_Corridor:: @ 0x83AEAC4
+ .incbin "baserom.gba", 0x3AEAC4, 0x9C
+
+gMapEvents_SSAnne_Deck:: @ 0x83AEB60
+ .incbin "baserom.gba", 0x3AEB60, 0x100
+
+gMapEvents_SSAnne_Kitchen:: @ 0x83AEC60
+ .incbin "baserom.gba", 0x3AEC60, 0x58
+
+gMapEvents_SSAnne_CaptainsOffice:: @ 0x83AECB8
+ .incbin "baserom.gba", 0x3AECB8, 0x34
+
+gMapEvents_SSAnne_1F_Room1:: @ 0x83AECEC
+ .incbin "baserom.gba", 0x3AECEC, 0x7C
+
+gMapEvents_SSAnne_1F_Room2:: @ 0x83AED68
+ .incbin "baserom.gba", 0x3AED68, 0x64
+
+gMapEvents_SSAnne_1F_Room3:: @ 0x83AEDCC
+ .incbin "baserom.gba", 0x3AEDCC, 0x34
+
+gMapEvents_SSAnne_1F_Room4:: @ 0x83AEE00
+ .incbin "baserom.gba", 0x3AEE00, 0x34
+
+gMapEvents_SSAnne_1F_Room5:: @ 0x83AEE34
+ .incbin "baserom.gba", 0x3AEE34, 0x34
+
+gMapEvents_SSAnne_1F_Room7:: @ 0x83AEE68
+ .incbin "baserom.gba", 0x3AEE68, 0x34
+
+gMapEvents_SSAnne_2F_Room1:: @ 0x83AEE9C
+ .incbin "baserom.gba", 0x3AEE9C, 0x64
+
+gMapEvents_SSAnne_2F_Room2:: @ 0x83AEF00
+ .incbin "baserom.gba", 0x3AEF00, 0x4C
+
+gMapEvents_SSAnne_2F_Room3:: @ 0x83AEF4C
+ .incbin "baserom.gba", 0x3AEF4C, 0x64
+
+gMapEvents_SSAnne_2F_Room4:: @ 0x83AEFB0
+ .incbin "baserom.gba", 0x3AEFB0, 0x4C
+
+gMapEvents_SSAnne_2F_Room5:: @ 0x83AEFFC
+ .incbin "baserom.gba", 0x3AEFFC, 0x4C
+
+gMapEvents_SSAnne_2F_Room6:: @ 0x83AF048
+ .incbin "baserom.gba", 0x3AF048, 0x4C
+
+gMapEvents_SSAnne_B1F_Room1:: @ 0x83AF094
+ .incbin "baserom.gba", 0x3AF094, 0x4C
+
+gMapEvents_SSAnne_B1F_Room2:: @ 0x83AF0E0
+ .incbin "baserom.gba", 0x3AF0E0, 0x4C
+
+gMapEvents_SSAnne_B1F_Room3:: @ 0x83AF12C
+ .incbin "baserom.gba", 0x3AF12C, 0x4C
+
+gMapEvents_SSAnne_B1F_Room4:: @ 0x83AF178
+ .incbin "baserom.gba", 0x3AF178, 0x64
+
+gMapEvents_SSAnne_B1F_Room5:: @ 0x83AF1DC
+ .incbin "baserom.gba", 0x3AF1DC, 0x34
+
+gMapEvents_SSAnne_1F_Room6:: @ 0x83AF210
+ .incbin "baserom.gba", 0x3AF210, 0x4C
+
+gMapEvents_UndergroundPath_NorthEntrance:: @ 0x83AF25C
+ .incbin "baserom.gba", 0x3AF25C, 0x78
+
+gMapEvents_UndergroundPath_NorthSouthTunnel:: @ 0x83AF2D4
+ .incbin "baserom.gba", 0x3AF2D4, 0x4C
+
+gMapEvents_UndergroundPath_SouthEntrance:: @ 0x83AF320
+ .incbin "baserom.gba", 0x3AF320, 0x4C
+
+gMapEvents_UndergroundPath_WestEntrance:: @ 0x83AF36C
+ .incbin "baserom.gba", 0x3AF36C, 0x78
+
+gMapEvents_UndergroundPath_EastWestTunnel:: @ 0x83AF3E4
+ .incbin "baserom.gba", 0x3AF3E4, 0x4C
+
+gMapEvents_UndergroundPath_EastEntrance:: @ 0x83AF430
+ .incbin "baserom.gba", 0x3AF430, 0x3C
+
+gMapEvents_DiglettsCave_NorthEntrance:: @ 0x83AF46C
+ .incbin "baserom.gba", 0x3AF46C, 0x24
+
+gMapEvents_DiglettsCave_B1F:: @ 0x83AF490
+ .incbin "baserom.gba", 0x3AF490, 0x3C
+
+gMapEvents_DiglettsCave_SouthEntrance:: @ 0x83AF4CC
+ .incbin "baserom.gba", 0x3AF4CC, 0xF4
+
+gMapEvents_VictoryRoad_1F:: @ 0x83AF5C0
+ .incbin "baserom.gba", 0x3AF5C0, 0x1B4
+
+gMapEvents_VictoryRoad_2F:: @ 0x83AF774
+ .incbin "baserom.gba", 0x3AF774, 0x16C
+
+gMapEvents_VictoryRoad_3F:: @ 0x83AF8E0
+ .incbin "baserom.gba", 0x3AF8E0, 0xF8
+
+gMapEvents_RocketHideout_B1F:: @ 0x83AF9D8
+ .incbin "baserom.gba", 0x3AF9D8, 0xB4
+
+gMapEvents_RocketHideout_B2F:: @ 0x83AFA8C
+ .incbin "baserom.gba", 0x3AFA8C, 0xA8
+
+gMapEvents_RocketHideout_B3F:: @ 0x83AFB34
+ .incbin "baserom.gba", 0x3AFB34, 0x11C
+
+gMapEvents_RocketHideout_B4F:: @ 0x83AFC50
+ .incbin "baserom.gba", 0x3AFC50, 0x30
+
+gMapEvents_RocketHideout_Elevator:: @ 0x83AFC80
+ .incbin "baserom.gba", 0x3AFC80, 0x60
+
+gMapEvents_SilphCo_1F:: @ 0x83AFCE0
+ .incbin "baserom.gba", 0x3AFCE0, 0x13C
+
+gMapEvents_SilphCo_2F:: @ 0x83AFE1C
+ .incbin "baserom.gba", 0x3AFE1C, 0x13C
+
+gMapEvents_SilphCo_3F:: @ 0x83AFF58
+ .incbin "baserom.gba", 0x3AFF58, 0x184
+
+gMapEvents_SilphCo_4F:: @ 0x83B00DC
+ .incbin "baserom.gba", 0x3B00DC, 0x1FC
+
+gMapEvents_SilphCo_5F:: @ 0x83B02D8
+ .incbin "baserom.gba", 0x3B02D8, 0x174
+
+gMapEvents_SilphCo_6F:: @ 0x83B044C
+ .incbin "baserom.gba", 0x3B044C, 0x214
+
+gMapEvents_SilphCo_7F:: @ 0x83B0660
+ .incbin "baserom.gba", 0x3B0660, 0x124
+
+gMapEvents_SilphCo_8F:: @ 0x83B0784
+ .incbin "baserom.gba", 0x3B0784, 0x180
+
+gMapEvents_SilphCo_9F:: @ 0x83B0904
+ .incbin "baserom.gba", 0x3B0904, 0x11C
+
+gMapEvents_SilphCo_10F:: @ 0x83B0A20
+ .incbin "baserom.gba", 0x3B0A20, 0x124
+
+gMapEvents_SilphCo_11F:: @ 0x83B0B44
+ .incbin "baserom.gba", 0x3B0B44, 0x28
+
+gMapEvents_SilphCo_Elevator:: @ 0x83B0B6C
+ .incbin "baserom.gba", 0x3B0B6C, 0xF4
+
+gMapEvents_PokemonMansion_1F:: @ 0x83B0C60
+ .incbin "baserom.gba", 0x3B0C60, 0xC0
+
+gMapEvents_PokemonMansion_2F:: @ 0x83B0D20
+ .incbin "baserom.gba", 0x3B0D20, 0xD8
+
+gMapEvents_PokemonMansion_3F:: @ 0x83B0DF8
+ .incbin "baserom.gba", 0x3B0DF8, 0xDC
+
+gMapEvents_PokemonMansion_B1F:: @ 0x83B0ED4
+ .incbin "baserom.gba", 0x3B0ED4, 0xC4
+
+gMapEvents_SafariZone_Center:: @ 0x83B0F98
+ .incbin "baserom.gba", 0x3B0F98, 0xD0
+
+gMapEvents_SafariZone_East:: @ 0x83B1068
+ .incbin "baserom.gba", 0x3B1068, 0x100
+
+gMapEvents_SafariZone_North:: @ 0x83B1168
+ .incbin "baserom.gba", 0x3B1168, 0x108
+
+gMapEvents_SafariZone_West:: @ 0x83B1270
+ .incbin "baserom.gba", 0x3B1270, 0x5C
+
+gMapEvents_SafariZone_Building1:: @ 0x83B12CC
+ .incbin "baserom.gba", 0x3B12CC, 0x74
+
+gMapEvents_SafariZone_Building2:: @ 0x83B1340
+ .incbin "baserom.gba", 0x3B1340, 0x8C
+
+gMapEvents_SafariZone_Building3:: @ 0x83B13CC
+ .incbin "baserom.gba", 0x3B13CC, 0x74
+
+gMapEvents_SafariZone_Building4:: @ 0x83B1440
+ .incbin "baserom.gba", 0x3B1440, 0x44
+
+gMapEvents_SafariZone_SecretHouse:: @ 0x83B1484
+ .incbin "baserom.gba", 0x3B1484, 0x138
+
+gMapEvents_CeruleanCave_1F:: @ 0x83B15BC
+ .incbin "baserom.gba", 0x3B15BC, 0x17C
+
+gMapEvents_CeruleanCave_2F:: @ 0x83B1738
+ .incbin "baserom.gba", 0x3B1738, 0x13C
+
+gMapEvents_CeruleanCave_B1F:: @ 0x83B1874
+ .incbin "baserom.gba", 0x3B1874, 0x3C
+
+gMapEvents_PokemonLeague_LoreleisRoom:: @ 0x83B18B0
+ .incbin "baserom.gba", 0x3B18B0, 0x3C
+
+gMapEvents_PokemonLeague_BrunosRoom:: @ 0x83B18EC
+ .incbin "baserom.gba", 0x3B18EC, 0x3C
+
+gMapEvents_PokemonLeague_AgathasRoom:: @ 0x83B1928
+ .incbin "baserom.gba", 0x3B1928, 0x3C
+
+gMapEvents_PokemonLeague_LancesRoom:: @ 0x83B1964
+ .incbin "baserom.gba", 0x3B1964, 0x54
+
+gMapEvents_PokemonLeague_ChampionsRoom:: @ 0x83B19B8
+ .incbin "baserom.gba", 0x3B19B8, 0x34
+
+gMapEvents_PokemonLeague_HallOfFame:: @ 0x83B19EC
+ .incbin "baserom.gba", 0x3B19EC, 0x140
+
+gMapEvents_RockTunnel_1F:: @ 0x83B1B2C
+ .incbin "baserom.gba", 0x3B1B2C, 0x2A4
+
+gMapEvents_RockTunnel_B1F:: @ 0x83B1DD0
+ .incbin "baserom.gba", 0x3B1DD0, 0x94
+
+gMapEvents_SeafoamIslands_1F:: @ 0x83B1E64
+ .incbin "baserom.gba", 0x3B1E64, 0xCC
+
+gMapEvents_SeafoamIslands_B1F:: @ 0x83B1F30
+ .incbin "baserom.gba", 0x3B1F30, 0xB4
+
+gMapEvents_SeafoamIslands_B2F:: @ 0x83B1FE4
+ .incbin "baserom.gba", 0x3B1FE4, 0xF8
+
+gMapEvents_SeafoamIslands_B3F:: @ 0x83B20DC
+ .incbin "baserom.gba", 0x3B20DC, 0xE8
+
+gMapEvents_SeafoamIslands_B4F:: @ 0x83B21C4
+ .incbin "baserom.gba", 0x3B21C4, 0xAC
+
+gMapEvents_PokemonTower_1F:: @ 0x83B2270
+ .incbin "baserom.gba", 0x3B2270, 0x74
+
+gMapEvents_PokemonTower_2F:: @ 0x83B22E4
+ .incbin "baserom.gba", 0x3B22E4, 0x84
+
+gMapEvents_PokemonTower_3F:: @ 0x83B2368
+ .incbin "baserom.gba", 0x3B2368, 0xB4
+
+gMapEvents_PokemonTower_4F:: @ 0x83B241C
+ .incbin "baserom.gba", 0x3B241C, 0x1E8
+
+gMapEvents_PokemonTower_5F:: @ 0x83B2604
+ .incbin "baserom.gba", 0x3B2604, 0xBC
+
+gMapEvents_PokemonTower_6F:: @ 0x83B26C0
+ .incbin "baserom.gba", 0x3B26C0, 0x88
+
+gMapEvents_PokemonTower_7F:: @ 0x83B2748
+ .incbin "baserom.gba", 0x3B2748, 0x114
+
+gMapEvents_PowerPlant:: @ 0x83B285C
+ .incbin "baserom.gba", 0x3B285C, 0x15C
+
+gMapEvents_MtEmber_RubyPath_B4F:: @ 0x83B29B8
+ .incbin "baserom.gba", 0x3B29B8, 0x26C
+
+gMapEvents_MtEmber_Exterior:: @ 0x83B2C24
+ .incbin "baserom.gba", 0x3B2C24, 0x24
+
+gMapEvents_MtEmber_SummitPath_1F:: @ 0x83B2C48
+ .incbin "baserom.gba", 0x3B2C48, 0xFC
+
+gMapEvents_MtEmber_SummitPath_2F:: @ 0x83B2D44
+ .incbin "baserom.gba", 0x3B2D44, 0x24
+
+gMapEvents_MtEmber_SummitPath_3F:: @ 0x83B2D68
+ .incbin "baserom.gba", 0x3B2D68, 0x94
+
+gMapEvents_MtEmber_Summit:: @ 0x83B2DFC
+ .incbin "baserom.gba", 0x3B2DFC, 0x40
+
+gMapEvents_MtEmber_RubyPath_B5F:: @ 0x83B2E3C
+ .incbin "baserom.gba", 0x3B2E3C, 0xA4
+
+gMapEvents_SSAnne_Kitchen3:: @ 0x83B2EE0
+ .incbin "baserom.gba", 0x3B2EE0, 0x84
+
+gMapEvents_MtEmber_RubyPath_B1F:: @ 0x83B2F64
+ .incbin "baserom.gba", 0x3B2F64, 0xCC
+
+gMapEvents_MtEmber_RubyPath_B2F:: @ 0x83B3030
+ .incbin "baserom.gba", 0x3B3030, 0x11C
+
+gMapEvents_MtEmber_RubyPath_B3F:: @ 0x83B314C
+ .incbin "baserom.gba", 0x3B314C, 0x3C
+
+gMapEvents_MtEmber_RubyPath_B1F_Stairs:: @ 0x83B3188
+ .incbin "baserom.gba", 0x3B3188, 0x54
+
+gMapEvents_MtEmber_RubyPath_B2F_Stairs:: @ 0x83B31DC
+ .incbin "baserom.gba", 0x3B31DC, 0x230
+
+gMapEvents_ThreeIsland_BerryForest:: @ 0x83B340C
+ .incbin "baserom.gba", 0x3B340C, 0x2C
+
+gMapEvents_FourIsland_IcefallCave_Entrance:: @ 0x83B3438
+ .incbin "baserom.gba", 0x3B3438, 0x74
+
+gMapEvents_FourIsland_IcefallCave_1F:: @ 0x83B34AC
+ .incbin "baserom.gba", 0x3B34AC, 0x5C
+
+gMapEvents_SSAnne_CaptainsOffice2:: @ 0x83B3508
+ .incbin "baserom.gba", 0x3B3508, 0xAC
+
+gMapEvents_SSAnne_CaptainsOffice3:: @ 0x83B35B4
+ .incbin "baserom.gba", 0x3B35B4, 0x268
+
+gMapEvents_SSAnne_CaptainsOffice4:: @ 0x83B381C
+ .incbin "baserom.gba", 0x3B381C, 0x34
+
+gMapEvents_SSAnne_CaptainsOffice5:: @ 0x83B3850
+ .incbin "baserom.gba", 0x3B3850, 0x48
+
+gMapEvents_SixIsland_DottedHole_B1F:: @ 0x83B3898
+ .incbin "baserom.gba", 0x3B3898, 0x48
+
+gMapEvents_SixIsland_DottedHole_B2F:: @ 0x83B38E0
+ .incbin "baserom.gba", 0x3B38E0, 0x48
+
+gMapEvents_SixIsland_DottedHole_B3F:: @ 0x83B3928
+ .incbin "baserom.gba", 0x3B3928, 0x48
+
+gMapEvents_SSAnne_CaptainsOffice9:: @ 0x83B3970
+ .incbin "baserom.gba", 0x3B3970, 0x60
+
+gMapEvents_SixIsland_DottedHole_SapphireRoom:: @ 0x83B39D0
+ .incbin "baserom.gba", 0x3B39D0, 0x164
+
+gMapEvents_SSAnne_1F_Room11:: @ 0x83B3B34
+ .incbin "baserom.gba", 0x3B3B34, 0x1C
+
+gMapEvents_SSAnne_1F_Room12:: @ 0x83B3B50
+ .incbin "baserom.gba", 0x3B3B50, 0x24
+
+gMapEvents_NavelRock_Exterior:: @ 0x83B3B74
+ .incbin "baserom.gba", 0x3B3B74, 0xCC
+
+gMapEvents_SevenIsland_TrainerTower_1F:: @ 0x83B3C40
+ .incbin "baserom.gba", 0x3B3C40, 0xD4
+
+gMapEvents_SevenIsland_TrainerTower_2F:: @ 0x83B3D14
+ .incbin "baserom.gba", 0x3B3D14, 0xD4
+
+gMapEvents_SevenIsland_TrainerTower_3F:: @ 0x83B3DE8
+ .incbin "baserom.gba", 0x3B3DE8, 0xD4
+
+gMapEvents_SevenIsland_TrainerTower_4F:: @ 0x83B3EBC
+ .incbin "baserom.gba", 0x3B3EBC, 0xD4
+
+gMapEvents_SevenIsland_TrainerTower_5F:: @ 0x83B3F90
+ .incbin "baserom.gba", 0x3B3F90, 0xD4
+
+gMapEvents_SevenIsland_TrainerTower_6F:: @ 0x83B4064
+ .incbin "baserom.gba", 0x3B4064, 0xD4
+
+gMapEvents_SevenIsland_TrainerTower_7F:: @ 0x83B4138
+ .incbin "baserom.gba", 0x3B4138, 0xD4
+
+gMapEvents_SevenIsland_TrainerTower_8F:: @ 0x83B420C
+ .incbin "baserom.gba", 0x3B420C, 0x3C
+
+gMapEvents_SevenIsland_TrainerTower_Roof:: @ 0x83B4248
+ .incbin "baserom.gba", 0x3B4248, 0xC0
+
+gMapEvents_SevenIsland_TrainerTower_Lobby:: @ 0x83B4308
+ .incbin "baserom.gba", 0x3B4308, 0x28
+
+gMapEvents_SevenIsland_TrainerTower_Elevator:: @ 0x83B4330
+ .incbin "baserom.gba", 0x3B4330, 0x24
+
+gMapEvents_FiveIsland_LostCave_Entrance:: @ 0x83B4354
+ .incbin "baserom.gba", 0x3B4354, 0x54
+
+gMapEvents_FiveIsland_LostCave_Room1:: @ 0x83B43A8
+ .incbin "baserom.gba", 0x3B43A8, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room2:: @ 0x83B43DC
+ .incbin "baserom.gba", 0x3B43DC, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room3:: @ 0x83B4410
+ .incbin "baserom.gba", 0x3B4410, 0x4C
+
+gMapEvents_FiveIsland_LostCave_Room4:: @ 0x83B445C
+ .incbin "baserom.gba", 0x3B445C, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room5:: @ 0x83B4490
+ .incbin "baserom.gba", 0x3B4490, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room6:: @ 0x83B44C4
+ .incbin "baserom.gba", 0x3B44C4, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room7:: @ 0x83B44F8
+ .incbin "baserom.gba", 0x3B44F8, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room8:: @ 0x83B452C
+ .incbin "baserom.gba", 0x3B452C, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room9:: @ 0x83B4560
+ .incbin "baserom.gba", 0x3B4560, 0x4C
+
+gMapEvents_FiveIsland_LostCave_Room10:: @ 0x83B45AC
+ .incbin "baserom.gba", 0x3B45AC, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room11:: @ 0x83B45E0
+ .incbin "baserom.gba", 0x3B45E0, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room12:: @ 0x83B4614
+ .incbin "baserom.gba", 0x3B4614, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room13:: @ 0x83B4648
+ .incbin "baserom.gba", 0x3B4648, 0x34
+
+gMapEvents_FiveIsland_LostCave_Room14:: @ 0x83B467C
+ .incbin "baserom.gba", 0x3B467C, 0x1C
+
+gMapEvents_SevenIsland_TanobyRuins_MoneanChamber:: @ 0x83B4698
+ .incbin "baserom.gba", 0x3B4698, 0x1C
+
+gMapEvents_SevenIsland_TanobyRuins_LiptooChamber:: @ 0x83B46B4
+ .incbin "baserom.gba", 0x3B46B4, 0x1C
+
+gMapEvents_SevenIsland_TanobyRuins_WeepthChamber:: @ 0x83B46D0
+ .incbin "baserom.gba", 0x3B46D0, 0x1C
+
+gMapEvents_SevenIsland_TanobyRuins_DilfordChamber:: @ 0x83B46EC
+ .incbin "baserom.gba", 0x3B46EC, 0x1C
+
+gMapEvents_SevenIsland_TanobyRuins_ScufibChamber:: @ 0x83B4708
+ .incbin "baserom.gba", 0x3B4708, 0x1C
+
+gMapEvents_SevenIsland_TanobyRuins_RixyChamber:: @ 0x83B4724
+ .incbin "baserom.gba", 0x3B4724, 0x1C
+
+gMapEvents_SevenIsland_TanobyRuins_ViapoisChamber:: @ 0x83B4740
+ .incbin "baserom.gba", 0x3B4740, 0x48
+
+gMapEvents_ThreeIsland_DunsparceTunnel:: @ 0x83B4788
+ .incbin "baserom.gba", 0x3B4788, 0x134
+
+gMapEvents_SevenIsland_SeavaultCanyon_TanobyKey:: @ 0x83B48BC
+ .incbin "baserom.gba", 0x3B48BC, 0x24
+
+gMapEvents_NavelRock_1F:: @ 0x83B48E0
+ .incbin "baserom.gba", 0x3B48E0, 0x50
+
+gMapEvents_NavelRock_Summit:: @ 0x83B4930
+ .incbin "baserom.gba", 0x3B4930, 0x34
+
+gMapEvents_NavelRock_Base:: @ 0x83B4964
+ .incbin "baserom.gba", 0x3B4964, 0x24
+
+gMapEvents_NavelRock_SummitPath_2F:: @ 0x83B4988
+ .incbin "baserom.gba", 0x3B4988, 0x24
+
+gMapEvents_NavelRock_SummitPath_3F:: @ 0x83B49AC
+ .incbin "baserom.gba", 0x3B49AC, 0x24
+
+gMapEvents_NavelRock_SummitPath_4F:: @ 0x83B49D0
+ .incbin "baserom.gba", 0x3B49D0, 0x24
+
+gMapEvents_NavelRock_SummitPath_5F:: @ 0x83B49F4
+ .incbin "baserom.gba", 0x3B49F4, 0x24
+
+gMapEvents_NavelRock_BasePath_B1F:: @ 0x83B4A18
+ .incbin "baserom.gba", 0x3B4A18, 0x24
+
+gMapEvents_NavelRock_BasePath_B2F:: @ 0x83B4A3C
+ .incbin "baserom.gba", 0x3B4A3C, 0x24
+
+gMapEvents_NavelRock_BasePath_B3F:: @ 0x83B4A60
+ .incbin "baserom.gba", 0x3B4A60, 0x24
+
+gMapEvents_NavelRock_BasePath_B4F:: @ 0x83B4A84
+ .incbin "baserom.gba", 0x3B4A84, 0x24
+
+gMapEvents_NavelRock_BasePath_B5F:: @ 0x83B4AA8
+ .incbin "baserom.gba", 0x3B4AA8, 0x24
+
+gMapEvents_NavelRock_BasePath_B6F:: @ 0x83B4ACC
+ .incbin "baserom.gba", 0x3B4ACC, 0x24
+
+gMapEvents_NavelRock_BasePath_B7F:: @ 0x83B4AF0
+ .incbin "baserom.gba", 0x3B4AF0, 0x24
+
+gMapEvents_NavelRock_BasePath_B8F:: @ 0x83B4B14
+ .incbin "baserom.gba", 0x3B4B14, 0x24
+
+gMapEvents_NavelRock_BasePath_B9F:: @ 0x83B4B38
+ .incbin "baserom.gba", 0x3B4B38, 0x24
+
+gMapEvents_NavelRock_BasePath_B10F:: @ 0x83B4B5C
+ .incbin "baserom.gba", 0x3B4B5C, 0x24
+
+gMapEvents_NavelRock_BasePath_B11F:: @ 0x83B4B80
+ .incbin "baserom.gba", 0x3B4B80, 0x24
+
+gMapEvents_NavelRock_B1F:: @ 0x83B4BA4
+ .incbin "baserom.gba", 0x3B4BA4, 0x2C
+
+gMapEvents_NavelRock_Fork:: @ 0x83B4BD0
+ .incbin "baserom.gba", 0x3B4BD0, 0x4C
+
+gMapEvents_BirthIsland_Exterior:: @ 0x83B4C1C
+ .incbin "baserom.gba", 0x3B4C1C, 0xBC
+
+gMapEvents_OneIsland_KindleRoad_EmberSpa:: @ 0x83B4CD8
+ .incbin "baserom.gba", 0x3B4CD8, 0x4C
+
+gMapEvents_BirthIsland_Harbor:: @ 0x83B4D24
+ .incbin "baserom.gba", 0x3B4D24, 0x4C
+
+gMapEvents_NavelRock_Harbor:: @ 0x83B4D70
+ .incbin "baserom.gba", 0x3B4D70, 0xE0
+
+gMapEvents_PalletTown:: @ 0x83B4E50
+ .incbin "baserom.gba", 0x3B4E50, 0x190
+
+gMapEvents_ViridianCity:: @ 0x83B4FE0
+ .incbin "baserom.gba", 0x3B4FE0, 0x1AC
+
+gMapEvents_PewterCity:: @ 0x83B518C
+ .incbin "baserom.gba", 0x3B518C, 0x254
+
+gMapEvents_CeruleanCity:: @ 0x83B53E0
+ .incbin "baserom.gba", 0x3B53E0, 0xBC
+
+gMapEvents_LavenderTown:: @ 0x83B549C
+ .incbin "baserom.gba", 0x3B549C, 0x1AC
+
+gMapEvents_VermilionCity:: @ 0x83B5648
+ .incbin "baserom.gba", 0x3B5648, 0x250
+
+gMapEvents_CeladonCity:: @ 0x83B5898
+ .incbin "baserom.gba", 0x3B5898, 0x27C
+
+gMapEvents_FuchsiaCity:: @ 0x83B5B14
+ .incbin "baserom.gba", 0x3B5B14, 0xDC
+
+gMapEvents_CinnabarIsland:: @ 0x83B5BF0
+ .incbin "baserom.gba", 0x3B5BF0, 0x4C
+
+gMapEvents_IndigoPlateau_Exterior:: @ 0x83B5C3C
+ .incbin "baserom.gba", 0x3B5C3C, 0x260
+
+gMapEvents_SaffronCity_Duplicate:: @ 0x83B5E9C
+ .incbin "baserom.gba", 0x3B5E9C, 0x14
+
+gMapEvents_SaffronCity:: @ 0x83B5EB0
+ .incbin "baserom.gba", 0x3B5EB0, 0x94
+
+gMapEvents_OneIsland:: @ 0x83B5F44
+ .incbin "baserom.gba", 0x3B5F44, 0x130
+
+gMapEvents_TwoIsland:: @ 0x83B6074
+ .incbin "baserom.gba", 0x3B6074, 0x254
+
+gMapEvents_ThreeIsland:: @ 0x83B62C8
+ .incbin "baserom.gba", 0x3B62C8, 0x1A4
+
+gMapEvents_FourIsland:: @ 0x83B646C
+ .incbin "baserom.gba", 0x3B646C, 0x88
+
+gMapEvents_FiveIsland:: @ 0x83B64F4
+ .incbin "baserom.gba", 0x3B64F4, 0x88
+
+gMapEvents_SevenIsland:: @ 0x83B657C
+ .incbin "baserom.gba", 0x3B657C, 0x7C
+
+gMapEvents_SixIsland:: @ 0x83B65F8
+ .incbin "baserom.gba", 0x3B65F8, 0x50
+
+gMapEvents_Route1:: @ 0x83B6648
+ .incbin "baserom.gba", 0x3B6648, 0x124
+
+gMapEvents_Route2:: @ 0x83B676C
+ .incbin "baserom.gba", 0x3B676C, 0x104
+
+gMapEvents_Route3:: @ 0x83B6870
+ .incbin "baserom.gba", 0x3B6870, 0x110
+
+gMapEvents_Route4:: @ 0x83B6980
+ .incbin "baserom.gba", 0x3B6980, 0x40
+
+gMapEvents_Route5:: @ 0x83B69C0
+ .incbin "baserom.gba", 0x3B69C0, 0xE0
+
+gMapEvents_Route6:: @ 0x83B6AA0
+ .incbin "baserom.gba", 0x3B6AA0, 0x54
+
+gMapEvents_Route7:: @ 0x83B6AF4
+ .incbin "baserom.gba", 0x3B6AF4, 0x1BC
+
+gMapEvents_Route8:: @ 0x83B6CB0
+ .incbin "baserom.gba", 0x3B6CB0, 0x164
+
+gMapEvents_Route9:: @ 0x83B6E14
+ .incbin "baserom.gba", 0x3B6E14, 0x18C
+
+gMapEvents_Route10:: @ 0x83B6FA0
+ .incbin "baserom.gba", 0x3B6FA0, 0x17C
+
+gMapEvents_Route11:: @ 0x83B711C
+ .incbin "baserom.gba", 0x3B711C, 0x1C0
+
+gMapEvents_Route12:: @ 0x83B72DC
+ .incbin "baserom.gba", 0x3B72DC, 0x14C
+
+gMapEvents_Route13:: @ 0x83B7428
+ .incbin "baserom.gba", 0x3B7428, 0x1A0
+
+gMapEvents_Route14:: @ 0x83B75C8
+ .incbin "baserom.gba", 0x3B75C8, 0x180
+
+gMapEvents_Route15:: @ 0x83B7748
+ .incbin "baserom.gba", 0x3B7748, 0x150
+
+gMapEvents_Route16:: @ 0x83B7898
+ .incbin "baserom.gba", 0x3B7898, 0x188
+
+gMapEvents_Route17:: @ 0x83B7A20
+ .incbin "baserom.gba", 0x3B7A20, 0x84
+
+gMapEvents_Route18:: @ 0x83B7AA4
+ .incbin "baserom.gba", 0x3B7AA4, 0x140
+
+gMapEvents_Route19:: @ 0x83B7BE4
+ .incbin "baserom.gba", 0x3B7BE4, 0x150
+
+gMapEvents_Route20:: @ 0x83B7D34
+ .incbin "baserom.gba", 0x3B7D34, 0xB0
+
+gMapEvents_Route21_North:: @ 0x83B7DE4
+ .incbin "baserom.gba", 0x3B7DE4, 0x8C
+
+gMapEvents_Route21_South:: @ 0x83B7E70
+ .incbin "baserom.gba", 0x3B7E70, 0xA8
+
+gMapEvents_Route22:: @ 0x83B7F18
+ .incbin "baserom.gba", 0x3B7F18, 0x3E8
+
+gMapEvents_Route23:: @ 0x83B8300
+ .incbin "baserom.gba", 0x3B8300, 0x100
+
+gMapEvents_Route24:: @ 0x83B8400
+ .incbin "baserom.gba", 0x3B8400, 0x190
+
+gMapEvents_Route25:: @ 0x83B8590
+ .incbin "baserom.gba", 0x3B8590, 0x2FC
+
+gMapEvents_OneIsland_KindleRoad:: @ 0x83B888C
+ .incbin "baserom.gba", 0x3B888C, 0xA4
+
+gMapEvents_OneIsland_TreasureBeach:: @ 0x83B8930
+ .incbin "baserom.gba", 0x3B8930, 0x34
+
+gMapEvents_TwoIsland_CapeBrink:: @ 0x83B8964
+ .incbin "baserom.gba", 0x3B8964, 0x138
+
+gMapEvents_ThreeIsland_BondBridge:: @ 0x83B8A9C
+ .incbin "baserom.gba", 0x3B8A9C, 0x74
+
+gMapEvents_ThreeIsland_Port:: @ 0x83B8B10
+ .incbin "baserom.gba", 0x3B8B10, 0x14
+
+gMapEvents_UnknownMap_03_50:: @ 0x83B8B24
+ .incbin "baserom.gba", 0x3B8B24, 0x14
+
+gMapEvents_UnknownMap_03_51:: @ 0x83B8B38
+ .incbin "baserom.gba", 0x3B8B38, 0x14
+
+gMapEvents_UnknownMap_03_52:: @ 0x83B8B4C
+ .incbin "baserom.gba", 0x3B8B4C, 0x14
+
+gMapEvents_UnknownMap_03_53:: @ 0x83B8B60
+ .incbin "baserom.gba", 0x3B8B60, 0x120
+
+gMapEvents_FiveIsland_ResortGorgeous:: @ 0x83B8C80
+ .incbin "baserom.gba", 0x3B8C80, 0x44
+
+gMapEvents_FiveIsland_WaterLabyrinth:: @ 0x83B8CC4
+ .incbin "baserom.gba", 0x3B8CC4, 0xD0
+
+gMapEvents_FiveIsland_Meadow:: @ 0x83B8D94
+ .incbin "baserom.gba", 0x3B8D94, 0xC8
+
+gMapEvents_FiveIsland_MemorialPillar:: @ 0x83B8E5C
+ .incbin "baserom.gba", 0x3B8E5C, 0xDC
+
+gMapEvents_SixIsland_OutcastIsland:: @ 0x83B8F38
+ .incbin "baserom.gba", 0x3B8F38, 0x70
+
+gMapEvents_SixIsland_GreenPath:: @ 0x83B8FA8
+ .incbin "baserom.gba", 0x3B8FA8, 0x138
+
+gMapEvents_SixIsland_WaterPath:: @ 0x83B90E0
+ .incbin "baserom.gba", 0x3B90E0, 0x1C0
+
+gMapEvents_SixIsland_RuinValley:: @ 0x83B92A0
+ .incbin "baserom.gba", 0x3B92A0, 0x88
+
+gMapEvents_SevenIsland_TrainerTower:: @ 0x83B9328
+ .incbin "baserom.gba", 0x3B9328, 0xD4
+
+gMapEvents_SevenIsland_SevaultCanyon_Entrance:: @ 0x83B93FC
+ .incbin "baserom.gba", 0x3B93FC, 0x21C
+
+gMapEvents_SevenIsland_SevaultCanyon:: @ 0x83B9618
+ .incbin "baserom.gba", 0x3B9618, 0xDC
+
+gMapEvents_SevenIsland_TanobyRuins:: @ 0x83B96F4
+ .incbin "baserom.gba", 0x3B96F4, 0x58
+
+gMapEvents_PalletTown_PlayersHouse_1F:: @ 0x83B974C
+ .incbin "baserom.gba", 0x3B974C, 0x40
+
+gMapEvents_PalletTown_PlayersHouse_2F:: @ 0x83B978C
+ .incbin "baserom.gba", 0x3B978C, 0x80
+
+gMapEvents_PalletTown_GarysHouse:: @ 0x83B980C
+ .incbin "baserom.gba", 0x3B980C, 0x1AC
+
+gMapEvents_PalletTown_ProfessorOaksLab:: @ 0x83B99B8
+ .incbin "baserom.gba", 0x3B99B8, 0x80
+
+gMapEvents_ViridianCity_House1:: @ 0x83B9A38
+ .incbin "baserom.gba", 0x3B9A38, 0x140
+
+gMapEvents_ViridianCity_Gym:: @ 0x83B9B78
+ .incbin "baserom.gba", 0x3B9B78, 0x98
+
+gMapEvents_ViridianCity_House2:: @ 0x83B9C10
+ .incbin "baserom.gba", 0x3B9C10, 0x74
+
+gMapEvents_ViridianCity_Mart:: @ 0x83B9C84
+ .incbin "baserom.gba", 0x3B9C84, 0x94
+
+gMapEvents_ViridianCity_PokemonCenter_1F:: @ 0x83B9D18
+ .incbin "baserom.gba", 0x3B9D18, 0x8C
+
+gMapEvents_ViridianCity_PokemonCenter_2F:: @ 0x83B9DA4
+ .incbin "baserom.gba", 0x3B9DA4, 0x134
+
+gMapEvents_PewterCity_Museum_1F:: @ 0x83B9ED8
+ .incbin "baserom.gba", 0x3B9ED8, 0xF4
+
+gMapEvents_PewterCity_Museum_2F:: @ 0x83B9FCC
+ .incbin "baserom.gba", 0x3B9FCC, 0x8C
+
+gMapEvents_PewterCity_Gym:: @ 0x83BA058
+ .incbin "baserom.gba", 0x3BA058, 0x74
+
+gMapEvents_PewterCity_Mart:: @ 0x83BA0CC
+ .incbin "baserom.gba", 0x3BA0CC, 0x74
+
+gMapEvents_PewterCity_House1:: @ 0x83BA140
+ .incbin "baserom.gba", 0x3BA140, 0xDC
+
+gMapEvents_PewterCity_PokemonCenter_1F:: @ 0x83BA21C
+ .incbin "baserom.gba", 0x3BA21C, 0x8C
+
+gMapEvents_PewterCity_PokemonCenter_2F:: @ 0x83BA2A8
+ .incbin "baserom.gba", 0x3BA2A8, 0x5C
+
+gMapEvents_PewterCity_House2:: @ 0x83BA304
+ .incbin "baserom.gba", 0x3BA304, 0x4C
+
+gMapEvents_CeruleanCity_House1:: @ 0x83BA350
+ .incbin "baserom.gba", 0x3BA350, 0x70
+
+gMapEvents_CeruleanCity_House2:: @ 0x83BA3C0
+ .incbin "baserom.gba", 0x3BA3C0, 0x5C
+
+gMapEvents_CeruleanCity_House3:: @ 0x83BA41C
+ .incbin "baserom.gba", 0x3BA41C, 0xDC
+
+gMapEvents_CeruleanCity_PokemonCenter_1F:: @ 0x83BA4F8
+ .incbin "baserom.gba", 0x3BA4F8, 0x8C
+
+gMapEvents_CeruleanCity_PokemonCenter_2F:: @ 0x83BA584
+ .incbin "baserom.gba", 0x3BA584, 0xA4
+
+gMapEvents_CeruleanCity_Gym:: @ 0x83BA628
+ .incbin "baserom.gba", 0x3BA628, 0xD4
+
+gMapEvents_CeruleanCity_BikeShop:: @ 0x83BA6FC
+ .incbin "baserom.gba", 0x3BA6FC, 0x74
+
+gMapEvents_CeruleanCity_Mart:: @ 0x83BA770
+ .incbin "baserom.gba", 0x3BA770, 0x34
+
+gMapEvents_CeruleanCity_House4:: @ 0x83BA7A4
+ .incbin "baserom.gba", 0x3BA7A4, 0x40
+
+gMapEvents_CeruleanCity_House5:: @ 0x83BA7E4
+ .incbin "baserom.gba", 0x3BA7E4, 0xAC
+
+gMapEvents_LavenderTown_PokemonCenter_1F:: @ 0x83BA890
+ .incbin "baserom.gba", 0x3BA890, 0x8C
+
+gMapEvents_LavenderTown_PokemonCenter_2F:: @ 0x83BA91C
+ .incbin "baserom.gba", 0x3BA91C, 0xE0
+
+gMapEvents_LavenderTown_VolunteerPokemonHouse:: @ 0x83BA9FC
+ .incbin "baserom.gba", 0x3BA9FC, 0x5C
+
+gMapEvents_LavenderTown_House1:: @ 0x83BAA58
+ .incbin "baserom.gba", 0x3BAA58, 0x44
+
+gMapEvents_LavenderTown_House2:: @ 0x83BAA9C
+ .incbin "baserom.gba", 0x3BAA9C, 0x8C
+
+gMapEvents_LavenderTown_Mart:: @ 0x83BAB28
+ .incbin "baserom.gba", 0x3BAB28, 0x44
+
+gMapEvents_VermilionCity_House1:: @ 0x83BAB6C
+ .incbin "baserom.gba", 0x3BAB6C, 0xDC
+
+gMapEvents_VermilionCity_PokemonCenter_1F:: @ 0x83BAC48
+ .incbin "baserom.gba", 0x3BAC48, 0x8C
+
+gMapEvents_VermilionCity_PokemonCenter_2F:: @ 0x83BACD4
+ .incbin "baserom.gba", 0x3BACD4, 0xD4
+
+gMapEvents_VermilionCity_PokemonFanClub:: @ 0x83BADA8
+ .incbin "baserom.gba", 0x3BADA8, 0x44
+
+gMapEvents_VermilionCity_House2:: @ 0x83BADEC
+ .incbin "baserom.gba", 0x3BADEC, 0x74
+
+gMapEvents_VermilionCity_Mart:: @ 0x83BAE60
+ .incbin "baserom.gba", 0x3BAE60, 0x170
+
+gMapEvents_VermilionCity_Gym:: @ 0x83BAFD0
+ .incbin "baserom.gba", 0x3BAFD0, 0x98
+
+gMapEvents_VermilionCity_House3:: @ 0x83BB068
+ .incbin "baserom.gba", 0x3BB068, 0x84
+
+gMapEvents_CeladonCity_DepartmentStore_1F:: @ 0x83BB0EC
+ .incbin "baserom.gba", 0x3BB0EC, 0x98
+
+gMapEvents_CeladonCity_DepartmentStore_2F:: @ 0x83BB184
+ .incbin "baserom.gba", 0x3BB184, 0x128
+
+gMapEvents_CeladonCity_DepartmentStore_3F:: @ 0x83BB2AC
+ .incbin "baserom.gba", 0x3BB2AC, 0x80
+
+gMapEvents_CeladonCity_DepartmentStore_4F:: @ 0x83BB32C
+ .incbin "baserom.gba", 0x3BB32C, 0x98
+
+gMapEvents_CeladonCity_DepartmentStore_5F:: @ 0x83BB3C4
+ .incbin "baserom.gba", 0x3BB3C4, 0x7C
+
+gMapEvents_CeladonCity_DepartmentStore_Roof:: @ 0x83BB440
+ .incbin "baserom.gba", 0x3BB440, 0x3C
+
+gMapEvents_CeladonCity_DepartmentStore_Elevator:: @ 0x83BB47C
+ .incbin "baserom.gba", 0x3BB47C, 0xBC
+
+gMapEvents_CeladonCity_Condominiums_1F:: @ 0x83BB538
+ .incbin "baserom.gba", 0x3BB538, 0x7C
+
+gMapEvents_CeladonCity_Condominiums_2F:: @ 0x83BB5B4
+ .incbin "baserom.gba", 0x3BB5B4, 0xF4
+
+gMapEvents_CeladonCity_Condominiums_3F:: @ 0x83BB6A8
+ .incbin "baserom.gba", 0x3BB6A8, 0x44
+
+gMapEvents_CeladonCity_Condominiums_Roof:: @ 0x83BB6EC
+ .incbin "baserom.gba", 0x3BB6EC, 0x80
+
+gMapEvents_CeladonCity_Condominiums_RoofRoom:: @ 0x83BB76C
+ .incbin "baserom.gba", 0x3BB76C, 0x94
+
+gMapEvents_CeladonCity_PokemonCenter_1F:: @ 0x83BB800
+ .incbin "baserom.gba", 0x3BB800, 0x8C
+
+gMapEvents_CeladonCity_PokemonCenter_2F:: @ 0x83BB88C
+ .incbin "baserom.gba", 0x3BB88C, 0x2EC
+
+gMapEvents_CeladonCity_GameCorner:: @ 0x83BBB78
+ .incbin "baserom.gba", 0x3BBB78, 0xA4
+
+gMapEvents_CeladonCity_GameCorner_PrizeRoom:: @ 0x83BBC1C
+ .incbin "baserom.gba", 0x3BBC1C, 0x14C
+
+gMapEvents_CeladonCity_Gym:: @ 0x83BBD68
+ .incbin "baserom.gba", 0x3BBD68, 0xA4
+
+gMapEvents_CeladonCity_Restaurant:: @ 0x83BBE0C
+ .incbin "baserom.gba", 0x3BBE0C, 0x74
+
+gMapEvents_CeladonCity_House1:: @ 0x83BBE80
+ .incbin "baserom.gba", 0x3BBE80, 0x8C
+
+gMapEvents_CeladonCity_Hotel:: @ 0x83BBF0C
+ .incbin "baserom.gba", 0x3BBF0C, 0x94
+
+gMapEvents_FuchsiaCity_SafariZone_Entrance:: @ 0x83BBFA0
+ .incbin "baserom.gba", 0x3BBFA0, 0x74
+
+gMapEvents_FuchsiaCity_Mart:: @ 0x83BC014
+ .incbin "baserom.gba", 0x3BC014, 0x8C
+
+gMapEvents_FuchsiaCity_ZooBuilding:: @ 0x83BC0A0
+ .incbin "baserom.gba", 0x3BC0A0, 0x104
+
+gMapEvents_FuchsiaCity_Gym:: @ 0x83BC1A4
+ .incbin "baserom.gba", 0x3BC1A4, 0x74
+
+gMapEvents_FuchsiaCity_House1:: @ 0x83BC218
+ .incbin "baserom.gba", 0x3BC218, 0x94
+
+gMapEvents_FuchsiaCity_PokemonCenter_1F:: @ 0x83BC2AC
+ .incbin "baserom.gba", 0x3BC2AC, 0x8C
+
+gMapEvents_FuchsiaCity_PokemonCenter_2F:: @ 0x83BC338
+ .incbin "baserom.gba", 0x3BC338, 0xBC
+
+gMapEvents_FuchsiaCity_Building1:: @ 0x83BC3F4
+ .incbin "baserom.gba", 0x3BC3F4, 0x4C
+
+gMapEvents_FuchsiaCity_House2:: @ 0x83BC440
+ .incbin "baserom.gba", 0x3BC440, 0x34
+
+gMapEvents_FuchsiaCity_House3:: @ 0x83BC474
+ .incbin "baserom.gba", 0x3BC474, 0x1B8
+
+gMapEvents_CinnabarIsland_Gym:: @ 0x83BC62C
+ .incbin "baserom.gba", 0x3BC62C, 0x8C
+
+gMapEvents_CinnabarIsland_PokemonLab_Entrance:: @ 0x83BC6B8
+ .incbin "baserom.gba", 0x3BC6B8, 0x64
+
+gMapEvents_CinnabarIsland_PokemonLab_Lounge:: @ 0x83BC71C
+ .incbin "baserom.gba", 0x3BC71C, 0x64
+
+gMapEvents_CinnabarIsland_PokemonLab_ResearchRoom:: @ 0x83BC780
+ .incbin "baserom.gba", 0x3BC780, 0x4C
+
+gMapEvents_CinnabarIsland_PokemonLab_ExperimentRoom:: @ 0x83BC7CC
+ .incbin "baserom.gba", 0x3BC7CC, 0xDC
+
+gMapEvents_CinnabarIsland_PokemonCenter_1F:: @ 0x83BC8A8
+ .incbin "baserom.gba", 0x3BC8A8, 0x8C
+
+gMapEvents_CinnabarIsland_PokemonCenter_2F:: @ 0x83BC934
+ .incbin "baserom.gba", 0x3BC934, 0x74
+
+gMapEvents_CinnabarIsland_Mart:: @ 0x83BC9A8
+ .incbin "baserom.gba", 0x3BC9A8, 0xEC
+
+gMapEvents_IndigoPlateau_PokemonCenter_1F:: @ 0x83BCA94
+ .incbin "baserom.gba", 0x3BCA94, 0x8C
+
+gMapEvents_IndigoPlateau_PokemonCenter_2F:: @ 0x83BCB20
+ .incbin "baserom.gba", 0x3BCB20, 0x7C
+
+gMapEvents_SaffronCity_House1_1F:: @ 0x83BCB9C
+ .incbin "baserom.gba", 0x3BCB9C, 0xA0
+
+gMapEvents_SaffronCity_House1_2F:: @ 0x83BCC3C
+ .incbin "baserom.gba", 0x3BCC3C, 0x124
+
+gMapEvents_SaffronCity_Dojo:: @ 0x83BCD60
+ .incbin "baserom.gba", 0x3BCD60, 0x20C
+
+gMapEvents_SaffronCity_Gym:: @ 0x83BCF6C
+ .incbin "baserom.gba", 0x3BCF6C, 0x98
+
+gMapEvents_SaffronCity_House2:: @ 0x83BD004
+ .incbin "baserom.gba", 0x3BD004, 0x74
+
+gMapEvents_SaffronCity_Mart:: @ 0x83BD078
+ .incbin "baserom.gba", 0x3BD078, 0xC4
+
+gMapEvents_SaffronCity_PokemonCenter_1F:: @ 0x83BD13C
+ .incbin "baserom.gba", 0x3BD13C, 0x8C
+
+gMapEvents_SaffronCity_PokemonCenter_2F:: @ 0x83BD1C8
+ .incbin "baserom.gba", 0x3BD1C8, 0x44
+
+gMapEvents_SaffronCity_House3:: @ 0x83BD20C
+ .incbin "baserom.gba", 0x3BD20C, 0x10C
+
+gMapEvents_SaffronCity_PokemonTrainerFanClub:: @ 0x83BD318
+ .incbin "baserom.gba", 0x3BD318, 0x64
+
+gMapEvents_Route2_ViridianForest_SouthEntrance:: @ 0x83BD37C
+ .incbin "baserom.gba", 0x3BD37C, 0x5C
+
+gMapEvents_Route2_House:: @ 0x83BD3D8
+ .incbin "baserom.gba", 0x3BD3D8, 0x64
+
+gMapEvents_Route2_EastBuilding:: @ 0x83BD43C
+ .incbin "baserom.gba", 0x3BD43C, 0x7C
+
+gMapEvents_Route2_ViridianForest_NorthEntrance:: @ 0x83BD4B8
+ .incbin "baserom.gba", 0x3BD4B8, 0xC4
+
+gMapEvents_Route4_PokemonCenter_1F:: @ 0x83BD57C
+ .incbin "baserom.gba", 0x3BD57C, 0x8C
+
+gMapEvents_Route4_PokemonCenter_2F:: @ 0x83BD608
+ .incbin "baserom.gba", 0x3BD608, 0x44
+
+gMapEvents_Route5_PokemonDayCare:: @ 0x83BD64C
+ .incbin "baserom.gba", 0x3BD64C, 0x7C
+
+gMapEvents_Route5_SouthEntrance:: @ 0x83BD6C8
+ .incbin "baserom.gba", 0x3BD6C8, 0x7C
+
+gMapEvents_Route6_NorthEntrance:: @ 0x83BD744
+ .incbin "baserom.gba", 0x3BD744, 0x14
+
+gMapEvents_UnknownMap_18_01:: @ 0x83BD758
+ .incbin "baserom.gba", 0x3BD758, 0x7C
+
+gMapEvents_Route7_EastEntrance:: @ 0x83BD7D4
+ .incbin "baserom.gba", 0x3BD7D4, 0x7C
+
+gMapEvents_Route8_WestEntrance:: @ 0x83BD850
+ .incbin "baserom.gba", 0x3BD850, 0xAC
+
+gMapEvents_Route10_PokemonCenter_1F:: @ 0x83BD8FC
+ .incbin "baserom.gba", 0x3BD8FC, 0x8C
+
+gMapEvents_Route10_PokemonCenter_2F:: @ 0x83BD988
+ .incbin "baserom.gba", 0x3BD988, 0x6C
+
+gMapEvents_Route11_EastEntrance_1F:: @ 0x83BD9F4
+ .incbin "baserom.gba", 0x3BD9F4, 0x64
+
+gMapEvents_Route11_EastEntrance_2F:: @ 0x83BDA58
+ .incbin "baserom.gba", 0x3BDA58, 0x54
+
+gMapEvents_Route12_NorthEntrance_1F:: @ 0x83BDAAC
+ .incbin "baserom.gba", 0x3BDAAC, 0x4C
+
+gMapEvents_Route12_NorthEntrance_2F:: @ 0x83BDAF8
+ .incbin "baserom.gba", 0x3BDAF8, 0x50
+
+gMapEvents_Route12_FishingHouse:: @ 0x83BDB48
+ .incbin "baserom.gba", 0x3BDB48, 0x54
+
+gMapEvents_Route15_WestEntrance_1F:: @ 0x83BDB9C
+ .incbin "baserom.gba", 0x3BDB9C, 0x4C
+
+gMapEvents_Route15_WestEntrance_2F:: @ 0x83BDBE8
+ .incbin "baserom.gba", 0x3BDBE8, 0x5C
+
+gMapEvents_Route16_House:: @ 0x83BDC44
+ .incbin "baserom.gba", 0x3BDC44, 0x11C
+
+gMapEvents_Route16_NorthEntrance_1F:: @ 0x83BDD60
+ .incbin "baserom.gba", 0x3BDD60, 0x7C
+
+gMapEvents_Route16_NorthEntrance_2F:: @ 0x83BDDDC
+ .incbin "baserom.gba", 0x3BDDDC, 0xF4
+
+gMapEvents_Route18_EastEntrance_1F:: @ 0x83BDED0
+ .incbin "baserom.gba", 0x3BDED0, 0x4C
+
+gMapEvents_Route18_EastEntrance_2F:: @ 0x83BDF1C
+ .incbin "baserom.gba", 0x3BDF1C, 0x14
+
+gMapEvents_UnusedHouse_27_00:: @ 0x83BDF30
+ .incbin "baserom.gba", 0x3BDF30, 0x5C
+
+gMapEvents_Route22_NorthEntrance:: @ 0x83BDF8C
+ .incbin "baserom.gba", 0x3BDF8C, 0x14
+
+gMapEvents_UnusedHouse_29_00:: @ 0x83BDFA0
+ .incbin "baserom.gba", 0x3BDFA0, 0x68
+
+gMapEvents_Route25_SeaCottage:: @ 0x83BE008
+ .incbin "baserom.gba", 0x3BE008, 0x48
+
+gMapEvents_SevenIsland_House_Room1:: @ 0x83BE050
+ .incbin "baserom.gba", 0x3BE050, 0x34
+
+gMapEvents_SevenIsland_House_Room2:: @ 0x83BE084
+ .incbin "baserom.gba", 0x3BE084, 0x7C
+
+gMapEvents_SevenIsland_Mart:: @ 0x83BE100
+ .incbin "baserom.gba", 0x3BE100, 0xB4
+
+gMapEvents_SevenIsland_PokemonCenter_1F:: @ 0x83BE1B4
+ .incbin "baserom.gba", 0x3BE1B4, 0x8C
+
+gMapEvents_SevenIsland_PokemonCenter_2F:: @ 0x83BE240
+ .incbin "baserom.gba", 0x3BE240, 0x14
+
+gMapEvents_UnusedHouse_31_05:: @ 0x83BE254
+ .incbin "baserom.gba", 0x3BE254, 0x4C
+
+gMapEvents_SevenIsland_Harbor:: @ 0x83BE2A0
+ .incbin "baserom.gba", 0x3BE2A0, 0x160
+
+gMapEvents_OneIsland_PokemonCenter_1F:: @ 0x83BE400
+ .incbin "baserom.gba", 0x3BE400, 0x8C
+
+gMapEvents_OneIsland_PokemonCenter_2F:: @ 0x83BE48C
+ .incbin "baserom.gba", 0x3BE48C, 0x4C
+
+gMapEvents_OneIsland_House1:: @ 0x83BE4D8
+ .incbin "baserom.gba", 0x3BE4D8, 0x34
+
+gMapEvents_OneIsland_House2:: @ 0x83BE50C
+ .incbin "baserom.gba", 0x3BE50C, 0x4C
+
+gMapEvents_OneIsland_Harbor:: @ 0x83BE558
+ .incbin "baserom.gba", 0x3BE558, 0x94
+
+gMapEvents_TwoIsland_JoyfulGameCorner:: @ 0x83BE5EC
+ .incbin "baserom.gba", 0x3BE5EC, 0x34
+
+gMapEvents_TwoIsland_House:: @ 0x83BE620
+ .incbin "baserom.gba", 0x3BE620, 0x6C
+
+gMapEvents_TwoIsland_PokemonCenter_1F:: @ 0x83BE68C
+ .incbin "baserom.gba", 0x3BE68C, 0x8C
+
+gMapEvents_TwoIsland_PokemonCenter_2F:: @ 0x83BE718
+ .incbin "baserom.gba", 0x3BE718, 0x4C
+
+gMapEvents_TwoIsland_Harbor:: @ 0x83BE764
+ .incbin "baserom.gba", 0x3BE764, 0x40
+
+gMapEvents_ThreeIsland_House1:: @ 0x83BE7A4
+ .incbin "baserom.gba", 0x3BE7A4, 0x84
+
+gMapEvents_ThreeIsland_PokemonCenter_1F:: @ 0x83BE828
+ .incbin "baserom.gba", 0x3BE828, 0x8C
+
+gMapEvents_ThreeIsland_PokemonCenter_2F:: @ 0x83BE8B4
+ .incbin "baserom.gba", 0x3BE8B4, 0x7C
+
+gMapEvents_ThreeIsland_Mart:: @ 0x83BE930
+ .incbin "baserom.gba", 0x3BE930, 0x4C
+
+gMapEvents_ThreeIsland_House2:: @ 0x83BE97C
+ .incbin "baserom.gba", 0x3BE97C, 0x34
+
+gMapEvents_ThreeIsland_House3:: @ 0x83BE9B0
+ .incbin "baserom.gba", 0x3BE9B0, 0x4C
+
+gMapEvents_ThreeIsland_House4:: @ 0x83BE9FC
+ .incbin "baserom.gba", 0x3BE9FC, 0x34
+
+gMapEvents_ThreeIsland_House5:: @ 0x83BEA30
+ .incbin "baserom.gba", 0x3BEA30, 0x34
+
+gMapEvents_FourIsland_PokemonDayCare:: @ 0x83BEA64
+ .incbin "baserom.gba", 0x3BEA64, 0x9C
+
+gMapEvents_FourIsland_PokemonCenter_1F:: @ 0x83BEB00
+ .incbin "baserom.gba", 0x3BEB00, 0x8C
+
+gMapEvents_FourIsland_PokemonCenter_2F:: @ 0x83BEB8C
+ .incbin "baserom.gba", 0x3BEB8C, 0x4C
+
+gMapEvents_FourIsland_House1:: @ 0x83BEBD8
+ .incbin "baserom.gba", 0x3BEBD8, 0x184
+
+gMapEvents_FourIsland_LoreleisHouse:: @ 0x83BED5C
+ .incbin "baserom.gba", 0x3BED5C, 0x4C
+
+gMapEvents_FourIsland_Harbor:: @ 0x83BEDA8
+ .incbin "baserom.gba", 0x3BEDA8, 0x34
+
+gMapEvents_FourIsland_House2:: @ 0x83BEDDC
+ .incbin "baserom.gba", 0x3BEDDC, 0x64
+
+gMapEvents_FourIsland_Mart:: @ 0x83BEE40
+ .incbin "baserom.gba", 0x3BEE40, 0x9C
+
+gMapEvents_FiveIsland_PokemonCenter_1F:: @ 0x83BEEDC
+ .incbin "baserom.gba", 0x3BEEDC, 0x8C
+
+gMapEvents_FiveIsland_PokemonCenter_2F:: @ 0x83BEF68
+ .incbin "baserom.gba", 0x3BEF68, 0x4C
+
+gMapEvents_FiveIsland_Harbor:: @ 0x83BEFB4
+ .incbin "baserom.gba", 0x3BEFB4, 0x34
+
+gMapEvents_FiveIsland_House1:: @ 0x83BEFE8
+ .incbin "baserom.gba", 0x3BEFE8, 0x34
+
+gMapEvents_FiveIsland_House2:: @ 0x83BF01C
+ .incbin "baserom.gba", 0x3BF01C, 0x84
+
+gMapEvents_SixIsland_PokemonCenter_1F:: @ 0x83BF0A0
+ .incbin "baserom.gba", 0x3BF0A0, 0x8C
+
+gMapEvents_SixIsland_PokemonCenter_2F:: @ 0x83BF12C
+ .incbin "baserom.gba", 0x3BF12C, 0x4C
+
+gMapEvents_SixIsland_Harbor:: @ 0x83BF178
+ .incbin "baserom.gba", 0x3BF178, 0x34
+
+gMapEvents_SixIsland_House:: @ 0x83BF1AC
+ .incbin "baserom.gba", 0x3BF1AC, 0x64
+
+gMapEvents_SixIsland_Mart:: @ 0x83BF210
+ .incbin "baserom.gba", 0x3BF210, 0x4C
+
+gMapEvents_ThreeIsland_Harbor:: @ 0x83BF25C
+ .incbin "baserom.gba", 0x3BF25C, 0x64
+
+gMapEvents_FiveIsland_ResortGorgeous_House:: @ 0x83BF2C0
+ .incbin "baserom.gba", 0x3BF2C0, 0x34
+
+gMapEvents_TwoIsland_CapeBrink_House:: @ 0x83BF2F4
+ .incbin "baserom.gba", 0x3BF2F4, 0x40
+
+gMapEvents_SixIsland_WaterPath_House1:: @ 0x83BF334
+ .incbin "baserom.gba", 0x3BF334, 0x34
+
+gMapEvents_SixIsland_WaterPath_House2:: @ 0x83BF368
+ .incbin "baserom.gba", 0x3BF368, 0x64
+
+gMapEvents_SevenIsland_SevaultCanyon_House:: @ 0x83BF3CC
+ .incbin "baserom.gba", 0x3BF3CC, 0x188
diff --git a/data/map_obj_80688E4.s b/data/map_obj_80688E4.s
new file mode 100644
index 000000000..9010be906
--- /dev/null
+++ b/data/map_obj_80688E4.s
@@ -0,0 +1,30 @@
+ .section .rodata
+ .align 2
+gUnknown_83A719C:: @ 83A719C
+ .incbin "baserom.gba", 0x3A719C, 0x14
+
+gUnknown_83A71B0:: @ 83A71B0
+ .incbin "baserom.gba", 0x3A71B0, 0x3C
+
+gUnknown_83A71EC:: @ 83A71EC
+ .incbin "baserom.gba", 0x3A71EC, 0xC
+
+gUnknown_83A71F8:: @ 83A71F8
+ .incbin "baserom.gba", 0x3A71F8, 0x6
+
+gUnknown_83A71FE:: @ 83A71FE
+ .incbin "baserom.gba", 0x3A71FE, 0x4
+
+gUnknown_83A7202:: @ 83A7202
+ .incbin "baserom.gba", 0x3A7202, 0x6
+
+gUnknown_83A7208:: @ 83A7208
+ .incbin "baserom.gba", 0x3A7208, 0x4
+
+ .align 2
+gUnknown_83A720C:: @ 83A720C
+ .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/evobjmv.c"
+
+ .align 2
+gUnknown_83A7240:: @ 83A7240
+ .asciz "0"
diff --git a/data/maps/groups.inc b/data/maps/groups.inc
index 27168da81..d96d28329 100644
--- a/data/maps/groups.inc
+++ b/data/maps/groups.inc
@@ -1,1788 +1,4338 @@
-gMap_00_00:: @ 834F188
- .incbin "baserom.gba", 0x34F188, 0x1C
-
-gMap_00_01:: @ 834F1A4
- .incbin "baserom.gba", 0x34F1A4, 0x1C
-
-gMap_00_02:: @ 834F1C0
- .incbin "baserom.gba", 0x34F1C0, 0x1C
-
-gMap_00_03:: @ 834F1DC
- .incbin "baserom.gba", 0x34F1DC, 0x1C
-
-gMap_00_04:: @ 834F1F8
- .incbin "baserom.gba", 0x34F1F8, 0x1C
-
-gMap_01_00:: @ 834F214
- .incbin "baserom.gba", 0x34F214, 0x1C
-
-gMap_01_01:: @ 834F230
- .incbin "baserom.gba", 0x34F230, 0x1C
-
-gMap_01_02:: @ 834F24C
- .incbin "baserom.gba", 0x34F24C, 0x1C
-
-gMap_01_03:: @ 834F268
- .incbin "baserom.gba", 0x34F268, 0x1C
-
-gMap_01_04:: @ 834F284
- .incbin "baserom.gba", 0x34F284, 0x1C
-
-gMap_01_05:: @ 834F2A0
- .incbin "baserom.gba", 0x34F2A0, 0x1C
-
-gMap_01_06:: @ 834F2BC
- .incbin "baserom.gba", 0x34F2BC, 0x1C
-
-gMap_01_07:: @ 834F2D8
- .incbin "baserom.gba", 0x34F2D8, 0x1C
-
-gMap_01_08:: @ 834F2F4
- .incbin "baserom.gba", 0x34F2F4, 0x1C
-
-gMap_01_09:: @ 834F310
- .incbin "baserom.gba", 0x34F310, 0x1C
-
-gMap_01_10:: @ 834F32C
- .incbin "baserom.gba", 0x34F32C, 0x1C
-
-gMap_01_11:: @ 834F348
- .incbin "baserom.gba", 0x34F348, 0x1C
-
-gMap_01_12:: @ 834F364
- .incbin "baserom.gba", 0x34F364, 0x1C
-
-gMap_01_13:: @ 834F380
- .incbin "baserom.gba", 0x34F380, 0x1C
-
-gMap_01_14:: @ 834F39C
- .incbin "baserom.gba", 0x34F39C, 0x1C
-
-gMap_01_15:: @ 834F3B8
- .incbin "baserom.gba", 0x34F3B8, 0x1C
-
-gMap_01_16:: @ 834F3D4
- .incbin "baserom.gba", 0x34F3D4, 0x1C
-
-gMap_01_17:: @ 834F3F0
- .incbin "baserom.gba", 0x34F3F0, 0x1C
-
-gMap_01_18:: @ 834F40C
- .incbin "baserom.gba", 0x34F40C, 0x1C
-
-gMap_01_19:: @ 834F428
- .incbin "baserom.gba", 0x34F428, 0x1C
-
-gMap_01_20:: @ 834F444
- .incbin "baserom.gba", 0x34F444, 0x1C
-
-gMap_01_21:: @ 834F460
- .incbin "baserom.gba", 0x34F460, 0x1C
-
-gMap_01_22:: @ 834F47C
- .incbin "baserom.gba", 0x34F47C, 0x1C
-
-gMap_01_23:: @ 834F498
- .incbin "baserom.gba", 0x34F498, 0x1C
-
-gMap_01_24:: @ 834F4B4
- .incbin "baserom.gba", 0x34F4B4, 0x1C
-
-gMap_01_25:: @ 834F4D0
- .incbin "baserom.gba", 0x34F4D0, 0x1C
-
-gMap_01_26:: @ 834F4EC
- .incbin "baserom.gba", 0x34F4EC, 0x1C
-
-gMap_01_27:: @ 834F508
- .incbin "baserom.gba", 0x34F508, 0x1C
-
-gMap_01_28:: @ 834F524
- .incbin "baserom.gba", 0x34F524, 0x1C
-
-gMap_01_29:: @ 834F540
- .incbin "baserom.gba", 0x34F540, 0x1C
-
-gMap_01_30:: @ 834F55C
- .incbin "baserom.gba", 0x34F55C, 0x1C
-
-gMap_01_31:: @ 834F578
- .incbin "baserom.gba", 0x34F578, 0x1C
-
-gMap_01_32:: @ 834F594
- .incbin "baserom.gba", 0x34F594, 0x1C
-
-gMap_01_33:: @ 834F5B0
- .incbin "baserom.gba", 0x34F5B0, 0x1C
-
-gMap_01_34:: @ 834F5CC
- .incbin "baserom.gba", 0x34F5CC, 0x1C
-
-gMap_01_35:: @ 834F5E8
- .incbin "baserom.gba", 0x34F5E8, 0x1C
-
-gMap_01_36:: @ 834F604
- .incbin "baserom.gba", 0x34F604, 0x1C
-
-gMap_01_37:: @ 834F620
- .incbin "baserom.gba", 0x34F620, 0x1C
-
-gMap_01_38:: @ 834F63C
- .incbin "baserom.gba", 0x34F63C, 0x1C
-
-gMap_01_39:: @ 834F658
- .incbin "baserom.gba", 0x34F658, 0x1C
-
-gMap_01_40:: @ 834F674
- .incbin "baserom.gba", 0x34F674, 0x1C
-
-gMap_01_41:: @ 834F690
- .incbin "baserom.gba", 0x34F690, 0x1C
-
-gMap_01_42:: @ 834F6AC
- .incbin "baserom.gba", 0x34F6AC, 0x1C
-
-gMap_01_43:: @ 834F6C8
- .incbin "baserom.gba", 0x34F6C8, 0x1C
-
-gMap_01_44:: @ 834F6E4
- .incbin "baserom.gba", 0x34F6E4, 0x1C
-
-gMap_01_45:: @ 834F700
- .incbin "baserom.gba", 0x34F700, 0x1C
-
-gMap_01_46:: @ 834F71C
- .incbin "baserom.gba", 0x34F71C, 0x1C
-
-gMap_01_47:: @ 834F738
- .incbin "baserom.gba", 0x34F738, 0x1C
-
-gMap_01_48:: @ 834F754
- .incbin "baserom.gba", 0x34F754, 0x1C
-
-gMap_01_49:: @ 834F770
- .incbin "baserom.gba", 0x34F770, 0x1C
-
-gMap_01_50:: @ 834F78C
- .incbin "baserom.gba", 0x34F78C, 0x1C
-
-gMap_01_51:: @ 834F7A8
- .incbin "baserom.gba", 0x34F7A8, 0x1C
-
-gMap_01_52:: @ 834F7C4
- .incbin "baserom.gba", 0x34F7C4, 0x1C
-
-gMap_01_53:: @ 834F7E0
- .incbin "baserom.gba", 0x34F7E0, 0x1C
-
-gMap_01_54:: @ 834F7FC
- .incbin "baserom.gba", 0x34F7FC, 0x1C
-
-gMap_01_55:: @ 834F818
- .incbin "baserom.gba", 0x34F818, 0x1C
-
-gMap_01_56:: @ 834F834
- .incbin "baserom.gba", 0x34F834, 0x1C
-
-gMap_01_57:: @ 834F850
- .incbin "baserom.gba", 0x34F850, 0x1C
-
-gMap_01_58:: @ 834F86C
- .incbin "baserom.gba", 0x34F86C, 0x1C
-
-gMap_01_59:: @ 834F888
- .incbin "baserom.gba", 0x34F888, 0x1C
-
-gMap_01_60:: @ 834F8A4
- .incbin "baserom.gba", 0x34F8A4, 0x1C
-
-gMap_01_61:: @ 834F8C0
- .incbin "baserom.gba", 0x34F8C0, 0x1C
-
-gMap_01_62:: @ 834F8DC
- .incbin "baserom.gba", 0x34F8DC, 0x1C
-
-gMap_01_63:: @ 834F8F8
- .incbin "baserom.gba", 0x34F8F8, 0x1C
-
-gMap_01_64:: @ 834F914
- .incbin "baserom.gba", 0x34F914, 0x1C
-
-gMap_01_65:: @ 834F930
- .incbin "baserom.gba", 0x34F930, 0x1C
-
-gMap_01_66:: @ 834F94C
- .incbin "baserom.gba", 0x34F94C, 0x1C
-
-gMap_01_67:: @ 834F968
- .incbin "baserom.gba", 0x34F968, 0x1C
-
-gMap_01_68:: @ 834F984
- .incbin "baserom.gba", 0x34F984, 0x1C
-
-gMap_01_69:: @ 834F9A0
- .incbin "baserom.gba", 0x34F9A0, 0x1C
-
-gMap_01_70:: @ 834F9BC
- .incbin "baserom.gba", 0x34F9BC, 0x1C
-
-gMap_01_71:: @ 834F9D8
- .incbin "baserom.gba", 0x34F9D8, 0x1C
-
-gMap_01_72:: @ 834F9F4
- .incbin "baserom.gba", 0x34F9F4, 0x1C
-
-gMap_01_73:: @ 834FA10
- .incbin "baserom.gba", 0x34FA10, 0x1C
-
-gMap_01_74:: @ 834FA2C
- .incbin "baserom.gba", 0x34FA2C, 0x1C
-
-gMap_01_75:: @ 834FA48
- .incbin "baserom.gba", 0x34FA48, 0x1C
-
-gMap_01_76:: @ 834FA64
- .incbin "baserom.gba", 0x34FA64, 0x1C
-
-gMap_01_77:: @ 834FA80
- .incbin "baserom.gba", 0x34FA80, 0x1C
-
-gMap_01_78:: @ 834FA9C
- .incbin "baserom.gba", 0x34FA9C, 0x1C
-
-gMap_01_79:: @ 834FAB8
- .incbin "baserom.gba", 0x34FAB8, 0x1C
-
-gMap_01_80:: @ 834FAD4
- .incbin "baserom.gba", 0x34FAD4, 0x1C
-
-gMap_01_81:: @ 834FAF0
- .incbin "baserom.gba", 0x34FAF0, 0x1C
-
-gMap_01_82:: @ 834FB0C
- .incbin "baserom.gba", 0x34FB0C, 0x1C
-
-gMap_01_83:: @ 834FB28
- .incbin "baserom.gba", 0x34FB28, 0x1C
-
-gMap_01_84:: @ 834FB44
- .incbin "baserom.gba", 0x34FB44, 0x1C
-
-gMap_01_85:: @ 834FB60
- .incbin "baserom.gba", 0x34FB60, 0x1C
-
-gMap_01_86:: @ 834FB7C
- .incbin "baserom.gba", 0x34FB7C, 0x1C
-
-gMap_01_87:: @ 834FB98
- .incbin "baserom.gba", 0x34FB98, 0x1C
-
-gMap_01_88:: @ 834FBB4
- .incbin "baserom.gba", 0x34FBB4, 0x1C
-
-gMap_01_89:: @ 834FBD0
- .incbin "baserom.gba", 0x34FBD0, 0x1C
-
-gMap_01_90:: @ 834FBEC
- .incbin "baserom.gba", 0x34FBEC, 0x1C
-
-gMap_01_91:: @ 834FC08
- .incbin "baserom.gba", 0x34FC08, 0x1C
-
-gMap_01_92:: @ 834FC24
- .incbin "baserom.gba", 0x34FC24, 0x1C
-
-gMap_01_93:: @ 834FC40
- .incbin "baserom.gba", 0x34FC40, 0x1C
-
-gMap_01_94:: @ 834FC5C
- .incbin "baserom.gba", 0x34FC5C, 0x1C
-
-gMap_01_95:: @ 834FC78
- .incbin "baserom.gba", 0x34FC78, 0x1C
-
-gMap_01_96:: @ 834FC94
- .incbin "baserom.gba", 0x34FC94, 0x1C
-
-gMap_01_97:: @ 834FCB0
- .incbin "baserom.gba", 0x34FCB0, 0x1C
-
-gMap_01_98:: @ 834FCCC
- .incbin "baserom.gba", 0x34FCCC, 0x1C
-
-gMap_01_99:: @ 834FCE8
- .incbin "baserom.gba", 0x34FCE8, 0x1C
-
-gMap_01_100:: @ 834FD04
- .incbin "baserom.gba", 0x34FD04, 0x1C
-
-gMap_01_101:: @ 834FD20
- .incbin "baserom.gba", 0x34FD20, 0x1C
-
-gMap_01_102:: @ 834FD3C
- .incbin "baserom.gba", 0x34FD3C, 0x1C
-
-gMap_01_103:: @ 834FD58
- .incbin "baserom.gba", 0x34FD58, 0x1C
-
-gMap_01_104:: @ 834FD74
- .incbin "baserom.gba", 0x34FD74, 0x1C
-
-gMap_01_105:: @ 834FD90
- .incbin "baserom.gba", 0x34FD90, 0x1C
-
-gMap_01_106:: @ 834FDAC
- .incbin "baserom.gba", 0x34FDAC, 0x1C
-
-gMap_01_107:: @ 834FDC8
- .incbin "baserom.gba", 0x34FDC8, 0x1C
-
-gMap_01_108:: @ 834FDE4
- .incbin "baserom.gba", 0x34FDE4, 0x1C
-
-gMap_01_109:: @ 834FE00
- .incbin "baserom.gba", 0x34FE00, 0x1C
-
-gMap_01_110:: @ 834FE1C
- .incbin "baserom.gba", 0x34FE1C, 0x1C
-
-gMap_01_111:: @ 834FE38
- .incbin "baserom.gba", 0x34FE38, 0x1C
-
-gMap_01_112:: @ 834FE54
- .incbin "baserom.gba", 0x34FE54, 0x1C
-
-gMap_01_113:: @ 834FE70
- .incbin "baserom.gba", 0x34FE70, 0x1C
-
-gMap_01_114:: @ 834FE8C
- .incbin "baserom.gba", 0x34FE8C, 0x1C
-
-gMap_01_115:: @ 834FEA8
- .incbin "baserom.gba", 0x34FEA8, 0x1C
-
-gMap_01_116:: @ 834FEC4
- .incbin "baserom.gba", 0x34FEC4, 0x1C
-
-gMap_01_117:: @ 834FEE0
- .incbin "baserom.gba", 0x34FEE0, 0x1C
-
-gMap_01_118:: @ 834FEFC
- .incbin "baserom.gba", 0x34FEFC, 0x1C
-
-gMap_01_119:: @ 834FF18
- .incbin "baserom.gba", 0x34FF18, 0x1C
-
-gMap_01_120:: @ 834FF34
- .incbin "baserom.gba", 0x34FF34, 0x1C
-
-gMap_01_121:: @ 834FF50
- .incbin "baserom.gba", 0x34FF50, 0x1C
-
-gMap_01_122:: @ 834FF6C
- .incbin "baserom.gba", 0x34FF6C, 0x1C
-
-gMap_02_00:: @ 834FF88
- .incbin "baserom.gba", 0x34FF88, 0x1C
-
-gMap_02_01:: @ 834FFA4
- .incbin "baserom.gba", 0x34FFA4, 0x1C
-
-gMap_02_02:: @ 834FFC0
- .incbin "baserom.gba", 0x34FFC0, 0x1C
-
-gMap_02_03:: @ 834FFDC
- .incbin "baserom.gba", 0x34FFDC, 0x1C
-
-gMap_02_04:: @ 834FFF8
- .incbin "baserom.gba", 0x34FFF8, 0x1C
-
-gMap_02_05:: @ 8350014
- .incbin "baserom.gba", 0x350014, 0x1C
-
-gMap_02_06:: @ 8350030
- .incbin "baserom.gba", 0x350030, 0x1C
-
-gMap_02_07:: @ 835004C
- .incbin "baserom.gba", 0x35004C, 0x1C
-
-gMap_02_08:: @ 8350068
- .incbin "baserom.gba", 0x350068, 0x1C
-
-gMap_02_09:: @ 8350084
- .incbin "baserom.gba", 0x350084, 0x1C
-
-gMap_02_10:: @ 83500A0
- .incbin "baserom.gba", 0x3500A0, 0x1C
-
-gMap_02_11:: @ 83500BC
- .incbin "baserom.gba", 0x3500BC, 0x1C
-
-gMap_02_12:: @ 83500D8
- .incbin "baserom.gba", 0x3500D8, 0x1C
-
-gMap_02_13:: @ 83500F4
- .incbin "baserom.gba", 0x3500F4, 0x1C
-
-gMap_02_14:: @ 8350110
- .incbin "baserom.gba", 0x350110, 0x1C
-
-gMap_02_15:: @ 835012C
- .incbin "baserom.gba", 0x35012C, 0x1C
-
-gMap_02_16:: @ 8350148
- .incbin "baserom.gba", 0x350148, 0x1C
-
-gMap_02_17:: @ 8350164
- .incbin "baserom.gba", 0x350164, 0x1C
-
-gMap_02_18:: @ 8350180
- .incbin "baserom.gba", 0x350180, 0x1C
-
-gMap_02_19:: @ 835019C
- .incbin "baserom.gba", 0x35019C, 0x1C
-
-gMap_02_20:: @ 83501B8
- .incbin "baserom.gba", 0x3501B8, 0x1C
-
-gMap_02_21:: @ 83501D4
- .incbin "baserom.gba", 0x3501D4, 0x1C
-
-gMap_02_22:: @ 83501F0
- .incbin "baserom.gba", 0x3501F0, 0x1C
-
-gMap_02_23:: @ 835020C
- .incbin "baserom.gba", 0x35020C, 0x1C
-
-gMap_02_24:: @ 8350228
- .incbin "baserom.gba", 0x350228, 0x1C
-
-gMap_02_25:: @ 8350244
- .incbin "baserom.gba", 0x350244, 0x1C
-
-gMap_02_26:: @ 8350260
- .incbin "baserom.gba", 0x350260, 0x1C
-
-gMap_02_27:: @ 835027C
- .incbin "baserom.gba", 0x35027C, 0x1C
-
-gMap_02_28:: @ 8350298
- .incbin "baserom.gba", 0x350298, 0x1C
-
-gMap_02_29:: @ 83502B4
- .incbin "baserom.gba", 0x3502B4, 0x1C
-
-gMap_02_30:: @ 83502D0
- .incbin "baserom.gba", 0x3502D0, 0x1C
-
-gMap_02_31:: @ 83502EC
- .incbin "baserom.gba", 0x3502EC, 0x1C
-
-gMap_02_32:: @ 8350308
- .incbin "baserom.gba", 0x350308, 0x1C
-
-gMap_02_33:: @ 8350324
- .incbin "baserom.gba", 0x350324, 0x1C
-
-gMap_02_34:: @ 8350340
- .incbin "baserom.gba", 0x350340, 0x1C
-
-gMap_02_35:: @ 835035C
- .incbin "baserom.gba", 0x35035C, 0x1C
-
-gMap_02_36:: @ 8350378
- .incbin "baserom.gba", 0x350378, 0x1C
-
-gMap_02_37:: @ 8350394
- .incbin "baserom.gba", 0x350394, 0x1C
-
-gMap_02_38:: @ 83503B0
- .incbin "baserom.gba", 0x3503B0, 0x1C
-
-gMap_02_39:: @ 83503CC
- .incbin "baserom.gba", 0x3503CC, 0x1C
-
-gMap_02_40:: @ 83503E8
- .incbin "baserom.gba", 0x3503E8, 0x1C
-
-gMap_02_41:: @ 8350404
- .incbin "baserom.gba", 0x350404, 0x1C
-
-gMap_02_42:: @ 8350420
- .incbin "baserom.gba", 0x350420, 0x1C
-
-gMap_02_43:: @ 835043C
- .incbin "baserom.gba", 0x35043C, 0x1C
-
-gMap_02_44:: @ 8350458
- .incbin "baserom.gba", 0x350458, 0x1C
-
-gMap_02_45:: @ 8350474
- .incbin "baserom.gba", 0x350474, 0x1C
-
-gMap_02_46:: @ 8350490
- .incbin "baserom.gba", 0x350490, 0x1C
-
-gMap_02_47:: @ 83504AC
- .incbin "baserom.gba", 0x3504AC, 0x1C
-
-gMap_02_48:: @ 83504C8
- .incbin "baserom.gba", 0x3504C8, 0x1C
-
-gMap_02_49:: @ 83504E4
- .incbin "baserom.gba", 0x3504E4, 0x1C
-
-gMap_02_50:: @ 8350500
- .incbin "baserom.gba", 0x350500, 0x1C
-
-gMap_02_51:: @ 835051C
- .incbin "baserom.gba", 0x35051C, 0x1C
-
-gMap_02_52:: @ 8350538
- .incbin "baserom.gba", 0x350538, 0x1C
-
-gMap_02_53:: @ 8350554
- .incbin "baserom.gba", 0x350554, 0x1C
-
-gMap_02_54:: @ 8350570
- .incbin "baserom.gba", 0x350570, 0x1C
-
-gMap_02_55:: @ 835058C
- .incbin "baserom.gba", 0x35058C, 0x1C
-
-gMap_02_56:: @ 83505A8
- .incbin "baserom.gba", 0x3505A8, 0x1C
-
-gMap_02_57:: @ 83505C4
- .incbin "baserom.gba", 0x3505C4, 0x1C
-
-gMap_02_58:: @ 83505E0
- .incbin "baserom.gba", 0x3505E0, 0x1C
-
-gMap_02_59:: @ 83505FC
- .incbin "baserom.gba", 0x3505FC, 0x1C
-
-gMap_03_00:: @ 8350618
- .incbin "baserom.gba", 0x350618, 0x1C
-
-gMap_03_01:: @ 8350634
- .incbin "baserom.gba", 0x350634, 0x1C
-
-gMap_03_02:: @ 8350650
- .incbin "baserom.gba", 0x350650, 0x1C
-
-gMap_03_03:: @ 835066C
- .incbin "baserom.gba", 0x35066C, 0x1C
-
-gMap_03_04:: @ 8350688
- .incbin "baserom.gba", 0x350688, 0x1C
-
-gMap_03_05:: @ 83506A4
- .incbin "baserom.gba", 0x3506A4, 0x1C
-
-gMap_03_06:: @ 83506C0
- .incbin "baserom.gba", 0x3506C0, 0x1C
-
-gMap_03_07:: @ 83506DC
- .incbin "baserom.gba", 0x3506DC, 0x1C
-
-gMap_03_08:: @ 83506F8
- .incbin "baserom.gba", 0x3506F8, 0x1C
-
-gMap_03_09:: @ 8350714
- .incbin "baserom.gba", 0x350714, 0x1C
-
-gMap_03_10:: @ 8350730
- .incbin "baserom.gba", 0x350730, 0x1C
-
-gMap_03_11:: @ 835074C
- .incbin "baserom.gba", 0x35074C, 0x1C
-
-gMap_03_12:: @ 8350768
- .incbin "baserom.gba", 0x350768, 0x1C
-
-gMap_03_13:: @ 8350784
- .incbin "baserom.gba", 0x350784, 0x1C
-
-gMap_03_14:: @ 83507A0
- .incbin "baserom.gba", 0x3507A0, 0x1C
-
-gMap_03_15:: @ 83507BC
- .incbin "baserom.gba", 0x3507BC, 0x1C
-
-gMap_03_16:: @ 83507D8
- .incbin "baserom.gba", 0x3507D8, 0x1C
-
-gMap_03_17:: @ 83507F4
- .incbin "baserom.gba", 0x3507F4, 0x1C
-
-gMap_03_18:: @ 8350810
- .incbin "baserom.gba", 0x350810, 0x1C
-
-gMap_03_19:: @ 835082C
- .incbin "baserom.gba", 0x35082C, 0x1C
-
-gMap_03_20:: @ 8350848
- .incbin "baserom.gba", 0x350848, 0x1C
-
-gMap_03_21:: @ 8350864
- .incbin "baserom.gba", 0x350864, 0x1C
-
-gMap_03_22:: @ 8350880
- .incbin "baserom.gba", 0x350880, 0x1C
-
-gMap_03_23:: @ 835089C
- .incbin "baserom.gba", 0x35089C, 0x1C
-
-gMap_03_24:: @ 83508B8
- .incbin "baserom.gba", 0x3508B8, 0x1C
-
-gMap_03_25:: @ 83508D4
- .incbin "baserom.gba", 0x3508D4, 0x1C
-
-gMap_03_26:: @ 83508F0
- .incbin "baserom.gba", 0x3508F0, 0x1C
-
-gMap_03_27:: @ 835090C
- .incbin "baserom.gba", 0x35090C, 0x1C
-
-gMap_03_28:: @ 8350928
- .incbin "baserom.gba", 0x350928, 0x1C
-
-gMap_03_29:: @ 8350944
- .incbin "baserom.gba", 0x350944, 0x1C
-
-gMap_03_30:: @ 8350960
- .incbin "baserom.gba", 0x350960, 0x1C
-
-gMap_03_31:: @ 835097C
- .incbin "baserom.gba", 0x35097C, 0x1C
-
-gMap_03_32:: @ 8350998
- .incbin "baserom.gba", 0x350998, 0x1C
-
-gMap_03_33:: @ 83509B4
- .incbin "baserom.gba", 0x3509B4, 0x1C
-
-gMap_03_34:: @ 83509D0
- .incbin "baserom.gba", 0x3509D0, 0x1C
-
-gMap_03_35:: @ 83509EC
- .incbin "baserom.gba", 0x3509EC, 0x1C
-
-gMap_03_36:: @ 8350A08
- .incbin "baserom.gba", 0x350A08, 0x1C
-
-gMap_03_37:: @ 8350A24
- .incbin "baserom.gba", 0x350A24, 0x1C
-
-gMap_03_38:: @ 8350A40
- .incbin "baserom.gba", 0x350A40, 0x1C
-
-gMap_03_39:: @ 8350A5C
- .incbin "baserom.gba", 0x350A5C, 0x1C
-
-gMap_03_40:: @ 8350A78
- .incbin "baserom.gba", 0x350A78, 0x1C
-
-gMap_03_41:: @ 8350A94
- .incbin "baserom.gba", 0x350A94, 0x1C
-
-gMap_03_42:: @ 8350AB0
- .incbin "baserom.gba", 0x350AB0, 0x1C
-
-gMap_03_43:: @ 8350ACC
- .incbin "baserom.gba", 0x350ACC, 0x1C
-
-gMap_03_44:: @ 8350AE8
- .incbin "baserom.gba", 0x350AE8, 0x1C
-
-gMap_03_45:: @ 8350B04
- .incbin "baserom.gba", 0x350B04, 0x1C
-
-gMap_03_46:: @ 8350B20
- .incbin "baserom.gba", 0x350B20, 0x1C
-
-gMap_03_47:: @ 8350B3C
- .incbin "baserom.gba", 0x350B3C, 0x1C
-
-gMap_03_48:: @ 8350B58
- .incbin "baserom.gba", 0x350B58, 0x1C
-
-gMap_03_49:: @ 8350B74
- .incbin "baserom.gba", 0x350B74, 0x1C
-
-gMap_03_50:: @ 8350B90
- .incbin "baserom.gba", 0x350B90, 0x1C
-
-gMap_03_51:: @ 8350BAC
- .incbin "baserom.gba", 0x350BAC, 0x1C
-
-gMap_03_52:: @ 8350BC8
- .incbin "baserom.gba", 0x350BC8, 0x1C
-
-gMap_03_53:: @ 8350BE4
- .incbin "baserom.gba", 0x350BE4, 0x1C
-
-gMap_03_54:: @ 8350C00
- .incbin "baserom.gba", 0x350C00, 0x1C
-
-gMap_03_55:: @ 8350C1C
- .incbin "baserom.gba", 0x350C1C, 0x1C
-
-gMap_03_56:: @ 8350C38
- .incbin "baserom.gba", 0x350C38, 0x1C
-
-gMap_03_57:: @ 8350C54
- .incbin "baserom.gba", 0x350C54, 0x1C
-
-gMap_03_58:: @ 8350C70
- .incbin "baserom.gba", 0x350C70, 0x1C
-
-gMap_03_59:: @ 8350C8C
- .incbin "baserom.gba", 0x350C8C, 0x1C
-
-gMap_03_60:: @ 8350CA8
- .incbin "baserom.gba", 0x350CA8, 0x1C
-
-gMap_03_61:: @ 8350CC4
- .incbin "baserom.gba", 0x350CC4, 0x1C
-
-gMap_03_62:: @ 8350CE0
- .incbin "baserom.gba", 0x350CE0, 0x1C
-
-gMap_03_63:: @ 8350CFC
- .incbin "baserom.gba", 0x350CFC, 0x1C
-
-gMap_03_64:: @ 8350D18
- .incbin "baserom.gba", 0x350D18, 0x1C
-
-gMap_03_65:: @ 8350D34
- .incbin "baserom.gba", 0x350D34, 0x1C
-
-gMap_04_00:: @ 8350D50
- .incbin "baserom.gba", 0x350D50, 0x1C
-
-gMap_04_01:: @ 8350D6C
- .incbin "baserom.gba", 0x350D6C, 0x1C
-
-gMap_04_02:: @ 8350D88
- .incbin "baserom.gba", 0x350D88, 0x1C
-
-gMap_04_03:: @ 8350DA4
- .incbin "baserom.gba", 0x350DA4, 0x1C
-
-gMap_05_00:: @ 8350DC0
- .incbin "baserom.gba", 0x350DC0, 0x1C
-
-gMap_05_01:: @ 8350DDC
- .incbin "baserom.gba", 0x350DDC, 0x1C
-
-gMap_05_02:: @ 8350DF8
- .incbin "baserom.gba", 0x350DF8, 0x1C
-
-gMap_05_03:: @ 8350E14
- .incbin "baserom.gba", 0x350E14, 0x1C
-
-gMap_05_04:: @ 8350E30
- .incbin "baserom.gba", 0x350E30, 0x1C
-
-gMap_05_05:: @ 8350E4C
- .incbin "baserom.gba", 0x350E4C, 0x1C
-
-gMap_06_00:: @ 8350E68
- .incbin "baserom.gba", 0x350E68, 0x1C
-
-gMap_06_01:: @ 8350E84
- .incbin "baserom.gba", 0x350E84, 0x1C
-
-gMap_06_02:: @ 8350EA0
- .incbin "baserom.gba", 0x350EA0, 0x1C
-
-gMap_06_03:: @ 8350EBC
- .incbin "baserom.gba", 0x350EBC, 0x1C
-
-gMap_06_04:: @ 8350ED8
- .incbin "baserom.gba", 0x350ED8, 0x1C
-
-gMap_06_05:: @ 8350EF4
- .incbin "baserom.gba", 0x350EF4, 0x1C
-
-gMap_06_06:: @ 8350F10
- .incbin "baserom.gba", 0x350F10, 0x1C
-
-gMap_06_07:: @ 8350F2C
- .incbin "baserom.gba", 0x350F2C, 0x1C
-
-gMap_07_00:: @ 8350F48
- .incbin "baserom.gba", 0x350F48, 0x1C
-
-gMap_07_01:: @ 8350F64
- .incbin "baserom.gba", 0x350F64, 0x1C
-
-gMap_07_02:: @ 8350F80
- .incbin "baserom.gba", 0x350F80, 0x1C
-
-gMap_07_03:: @ 8350F9C
- .incbin "baserom.gba", 0x350F9C, 0x1C
-
-gMap_07_04:: @ 8350FB8
- .incbin "baserom.gba", 0x350FB8, 0x1C
-
-gMap_07_05:: @ 8350FD4
- .incbin "baserom.gba", 0x350FD4, 0x1C
-
-gMap_07_06:: @ 8350FF0
- .incbin "baserom.gba", 0x350FF0, 0x1C
-
-gMap_07_07:: @ 835100C
- .incbin "baserom.gba", 0x35100C, 0x1C
-
-gMap_07_08:: @ 8351028
- .incbin "baserom.gba", 0x351028, 0x1C
-
-gMap_07_09:: @ 8351044
- .incbin "baserom.gba", 0x351044, 0x1C
-
-gMap_08_00:: @ 8351060
- .incbin "baserom.gba", 0x351060, 0x1C
-
-gMap_08_01:: @ 835107C
- .incbin "baserom.gba", 0x35107C, 0x1C
-
-gMap_08_02:: @ 8351098
- .incbin "baserom.gba", 0x351098, 0x1C
-
-gMap_08_03:: @ 83510B4
- .incbin "baserom.gba", 0x3510B4, 0x1C
-
-gMap_08_04:: @ 83510D0
- .incbin "baserom.gba", 0x3510D0, 0x1C
-
-gMap_08_05:: @ 83510EC
- .incbin "baserom.gba", 0x3510EC, 0x1C
-
-gMap_09_00:: @ 8351108
- .incbin "baserom.gba", 0x351108, 0x1C
-
-gMap_09_01:: @ 8351124
- .incbin "baserom.gba", 0x351124, 0x1C
-
-gMap_09_02:: @ 8351140
- .incbin "baserom.gba", 0x351140, 0x1C
-
-gMap_09_03:: @ 835115C
- .incbin "baserom.gba", 0x35115C, 0x1C
-
-gMap_09_04:: @ 8351178
- .incbin "baserom.gba", 0x351178, 0x1C
-
-gMap_09_05:: @ 8351194
- .incbin "baserom.gba", 0x351194, 0x1C
-
-gMap_09_06:: @ 83511B0
- .incbin "baserom.gba", 0x3511B0, 0x1C
-
-gMap_09_07:: @ 83511CC
- .incbin "baserom.gba", 0x3511CC, 0x1C
-
-gMap_10_00:: @ 83511E8
- .incbin "baserom.gba", 0x3511E8, 0x1C
-
-gMap_10_01:: @ 8351204
- .incbin "baserom.gba", 0x351204, 0x1C
-
-gMap_10_02:: @ 8351220
- .incbin "baserom.gba", 0x351220, 0x1C
-
-gMap_10_03:: @ 835123C
- .incbin "baserom.gba", 0x35123C, 0x1C
-
-gMap_10_04:: @ 8351258
- .incbin "baserom.gba", 0x351258, 0x1C
-
-gMap_10_05:: @ 8351274
- .incbin "baserom.gba", 0x351274, 0x1C
-
-gMap_10_06:: @ 8351290
- .incbin "baserom.gba", 0x351290, 0x1C
-
-gMap_10_07:: @ 83512AC
- .incbin "baserom.gba", 0x3512AC, 0x1C
-
-gMap_10_08:: @ 83512C8
- .incbin "baserom.gba", 0x3512C8, 0x1C
-
-gMap_10_09:: @ 83512E4
- .incbin "baserom.gba", 0x3512E4, 0x1C
-
-gMap_10_10:: @ 8351300
- .incbin "baserom.gba", 0x351300, 0x1C
-
-gMap_10_11:: @ 835131C
- .incbin "baserom.gba", 0x35131C, 0x1C
-
-gMap_10_12:: @ 8351338
- .incbin "baserom.gba", 0x351338, 0x1C
-
-gMap_10_13:: @ 8351354
- .incbin "baserom.gba", 0x351354, 0x1C
-
-gMap_10_14:: @ 8351370
- .incbin "baserom.gba", 0x351370, 0x1C
-
-gMap_10_15:: @ 835138C
- .incbin "baserom.gba", 0x35138C, 0x1C
-
-gMap_10_16:: @ 83513A8
- .incbin "baserom.gba", 0x3513A8, 0x1C
-
-gMap_10_17:: @ 83513C4
- .incbin "baserom.gba", 0x3513C4, 0x1C
-
-gMap_10_18:: @ 83513E0
- .incbin "baserom.gba", 0x3513E0, 0x1C
-
-gMap_10_19:: @ 83513FC
- .incbin "baserom.gba", 0x3513FC, 0x1C
-
-gMap_11_00:: @ 8351418
- .incbin "baserom.gba", 0x351418, 0x1C
-
-gMap_11_01:: @ 8351434
- .incbin "baserom.gba", 0x351434, 0x1C
-
-gMap_11_02:: @ 8351450
- .incbin "baserom.gba", 0x351450, 0x1C
-
-gMap_11_03:: @ 835146C
- .incbin "baserom.gba", 0x35146C, 0x1C
-
-gMap_11_04:: @ 8351488
- .incbin "baserom.gba", 0x351488, 0x1C
-
-gMap_11_05:: @ 83514A4
- .incbin "baserom.gba", 0x3514A4, 0x1C
-
-gMap_11_06:: @ 83514C0
- .incbin "baserom.gba", 0x3514C0, 0x1C
-
-gMap_11_07:: @ 83514DC
- .incbin "baserom.gba", 0x3514DC, 0x1C
-
-gMap_11_08:: @ 83514F8
- .incbin "baserom.gba", 0x3514F8, 0x1C
-
-gMap_11_09:: @ 8351514
- .incbin "baserom.gba", 0x351514, 0x1C
-
-gMap_12_00:: @ 8351530
- .incbin "baserom.gba", 0x351530, 0x1C
-
-gMap_12_01:: @ 835154C
- .incbin "baserom.gba", 0x35154C, 0x1C
-
-gMap_12_02:: @ 8351568
- .incbin "baserom.gba", 0x351568, 0x1C
-
-gMap_12_03:: @ 8351584
- .incbin "baserom.gba", 0x351584, 0x1C
-
-gMap_12_04:: @ 83515A0
- .incbin "baserom.gba", 0x3515A0, 0x1C
-
-gMap_12_05:: @ 83515BC
- .incbin "baserom.gba", 0x3515BC, 0x1C
-
-gMap_12_06:: @ 83515D8
- .incbin "baserom.gba", 0x3515D8, 0x1C
-
-gMap_12_07:: @ 83515F4
- .incbin "baserom.gba", 0x3515F4, 0x1C
-
-gMap_13_00:: @ 8351610
- .incbin "baserom.gba", 0x351610, 0x1C
-
-gMap_13_01:: @ 835162C
- .incbin "baserom.gba", 0x35162C, 0x1C
-
-gMap_14_00:: @ 8351648
- .incbin "baserom.gba", 0x351648, 0x1C
-
-gMap_14_01:: @ 8351664
- .incbin "baserom.gba", 0x351664, 0x1C
-
-gMap_14_02:: @ 8351680
- .incbin "baserom.gba", 0x351680, 0x1C
-
-gMap_14_03:: @ 835169C
- .incbin "baserom.gba", 0x35169C, 0x1C
-
-gMap_14_04:: @ 83516B8
- .incbin "baserom.gba", 0x3516B8, 0x1C
-
-gMap_14_05:: @ 83516D4
- .incbin "baserom.gba", 0x3516D4, 0x1C
-
-gMap_14_06:: @ 83516F0
- .incbin "baserom.gba", 0x3516F0, 0x1C
-
-gMap_14_07:: @ 835170C
- .incbin "baserom.gba", 0x35170C, 0x1C
-
-gMap_14_08:: @ 8351728
- .incbin "baserom.gba", 0x351728, 0x1C
-
-gMap_14_09:: @ 8351744
- .incbin "baserom.gba", 0x351744, 0x1C
-
-gMap_15_00:: @ 8351760
- .incbin "baserom.gba", 0x351760, 0x1C
-
-gMap_15_01:: @ 835177C
- .incbin "baserom.gba", 0x35177C, 0x1C
-
-gMap_15_02:: @ 8351798
- .incbin "baserom.gba", 0x351798, 0x1C
-
-gMap_15_03:: @ 83517B4
- .incbin "baserom.gba", 0x3517B4, 0x1C
-
-gMap_16_00:: @ 83517D0
- .incbin "baserom.gba", 0x3517D0, 0x1C
-
-gMap_16_01:: @ 83517EC
- .incbin "baserom.gba", 0x3517EC, 0x1C
-
-gMap_17_00:: @ 8351808
- .incbin "baserom.gba", 0x351808, 0x1C
-
-gMap_17_01:: @ 8351824
- .incbin "baserom.gba", 0x351824, 0x1C
-
-gMap_18_00:: @ 8351840
- .incbin "baserom.gba", 0x351840, 0x1C
-
-gMap_18_01:: @ 835185C
- .incbin "baserom.gba", 0x35185C, 0x1C
-
-gMap_19_00:: @ 8351878
- .incbin "baserom.gba", 0x351878, 0x1C
-
-gMap_20_00:: @ 8351894
- .incbin "baserom.gba", 0x351894, 0x1C
-
-gMap_21_00:: @ 83518B0
- .incbin "baserom.gba", 0x3518B0, 0x1C
-
-gMap_21_01:: @ 83518CC
- .incbin "baserom.gba", 0x3518CC, 0x1C
-
-gMap_22_00:: @ 83518E8
- .incbin "baserom.gba", 0x3518E8, 0x1C
-
-gMap_22_01:: @ 8351904
- .incbin "baserom.gba", 0x351904, 0x1C
-
-gMap_23_00:: @ 8351920
- .incbin "baserom.gba", 0x351920, 0x1C
-
-gMap_23_01:: @ 835193C
- .incbin "baserom.gba", 0x35193C, 0x1C
-
-gMap_23_02:: @ 8351958
- .incbin "baserom.gba", 0x351958, 0x1C
-
-gMap_24_00:: @ 8351974
- .incbin "baserom.gba", 0x351974, 0x1C
-
-gMap_24_01:: @ 8351990
- .incbin "baserom.gba", 0x351990, 0x1C
-
-gMap_25_00:: @ 83519AC
- .incbin "baserom.gba", 0x3519AC, 0x1C
-
-gMap_25_01:: @ 83519C8
- .incbin "baserom.gba", 0x3519C8, 0x1C
-
-gMap_25_02:: @ 83519E4
- .incbin "baserom.gba", 0x3519E4, 0x1C
-
-gMap_26_00:: @ 8351A00
- .incbin "baserom.gba", 0x351A00, 0x1C
-
-gMap_26_01:: @ 8351A1C
- .incbin "baserom.gba", 0x351A1C, 0x1C
-
-gMap_27_00:: @ 8351A38
- .incbin "baserom.gba", 0x351A38, 0x1C
-
-gMap_28_00:: @ 8351A54
- .incbin "baserom.gba", 0x351A54, 0x1C
-
-gMap_29_00:: @ 8351A70
- .incbin "baserom.gba", 0x351A70, 0x1C
-
-gMap_30_00:: @ 8351A8C
- .incbin "baserom.gba", 0x351A8C, 0x1C
-
-gMap_31_00:: @ 8351AA8
- .incbin "baserom.gba", 0x351AA8, 0x1C
-
-gMap_31_01:: @ 8351AC4
- .incbin "baserom.gba", 0x351AC4, 0x1C
-
-gMap_31_02:: @ 8351AE0
- .incbin "baserom.gba", 0x351AE0, 0x1C
-
-gMap_31_03:: @ 8351AFC
- .incbin "baserom.gba", 0x351AFC, 0x1C
-
-gMap_31_04:: @ 8351B18
- .incbin "baserom.gba", 0x351B18, 0x1C
-
-gMap_31_05:: @ 8351B34
- .incbin "baserom.gba", 0x351B34, 0x1C
-
-gMap_31_06:: @ 8351B50
- .incbin "baserom.gba", 0x351B50, 0x1C
-
-gMap_32_00:: @ 8351B6C
- .incbin "baserom.gba", 0x351B6C, 0x1C
-
-gMap_32_01:: @ 8351B88
- .incbin "baserom.gba", 0x351B88, 0x1C
-
-gMap_32_02:: @ 8351BA4
- .incbin "baserom.gba", 0x351BA4, 0x1C
-
-gMap_32_03:: @ 8351BC0
- .incbin "baserom.gba", 0x351BC0, 0x1C
-
-gMap_32_04:: @ 8351BDC
- .incbin "baserom.gba", 0x351BDC, 0x1C
-
-gMap_33_00:: @ 8351BF8
- .incbin "baserom.gba", 0x351BF8, 0x1C
-
-gMap_33_01:: @ 8351C14
- .incbin "baserom.gba", 0x351C14, 0x1C
-
-gMap_33_02:: @ 8351C30
- .incbin "baserom.gba", 0x351C30, 0x1C
-
-gMap_33_03:: @ 8351C4C
- .incbin "baserom.gba", 0x351C4C, 0x1C
-
-gMap_33_04:: @ 8351C68
- .incbin "baserom.gba", 0x351C68, 0x1C
-
-gMap_34_00:: @ 8351C84
- .incbin "baserom.gba", 0x351C84, 0x1C
-
-gMap_34_01:: @ 8351CA0
- .incbin "baserom.gba", 0x351CA0, 0x1C
-
-gMap_34_02:: @ 8351CBC
- .incbin "baserom.gba", 0x351CBC, 0x1C
-
-gMap_34_03:: @ 8351CD8
- .incbin "baserom.gba", 0x351CD8, 0x1C
-
-gMap_34_04:: @ 8351CF4
- .incbin "baserom.gba", 0x351CF4, 0x1C
-
-gMap_34_05:: @ 8351D10
- .incbin "baserom.gba", 0x351D10, 0x1C
-
-gMap_34_06:: @ 8351D2C
- .incbin "baserom.gba", 0x351D2C, 0x1C
-
-gMap_34_07:: @ 8351D48
- .incbin "baserom.gba", 0x351D48, 0x1C
-
-gMap_35_00:: @ 8351D64
- .incbin "baserom.gba", 0x351D64, 0x1C
-
-gMap_35_01:: @ 8351D80
- .incbin "baserom.gba", 0x351D80, 0x1C
-
-gMap_35_02:: @ 8351D9C
- .incbin "baserom.gba", 0x351D9C, 0x1C
-
-gMap_35_03:: @ 8351DB8
- .incbin "baserom.gba", 0x351DB8, 0x1C
-
-gMap_35_04:: @ 8351DD4
- .incbin "baserom.gba", 0x351DD4, 0x1C
-
-gMap_35_05:: @ 8351DF0
- .incbin "baserom.gba", 0x351DF0, 0x1C
-
-gMap_35_06:: @ 8351E0C
- .incbin "baserom.gba", 0x351E0C, 0x1C
-
-gMap_35_07:: @ 8351E28
- .incbin "baserom.gba", 0x351E28, 0x1C
-
-gMap_36_00:: @ 8351E44
- .incbin "baserom.gba", 0x351E44, 0x1C
-
-gMap_36_01:: @ 8351E60
- .incbin "baserom.gba", 0x351E60, 0x1C
-
-gMap_36_02:: @ 8351E7C
- .incbin "baserom.gba", 0x351E7C, 0x1C
-
-gMap_36_03:: @ 8351E98
- .incbin "baserom.gba", 0x351E98, 0x1C
-
-gMap_36_04:: @ 8351EB4
- .incbin "baserom.gba", 0x351EB4, 0x1C
-
-gMap_37_00:: @ 8351ED0
- .incbin "baserom.gba", 0x351ED0, 0x1C
-
-gMap_37_01:: @ 8351EEC
- .incbin "baserom.gba", 0x351EEC, 0x1C
-
-gMap_37_02:: @ 8351F08
- .incbin "baserom.gba", 0x351F08, 0x1C
-
-gMap_37_03:: @ 8351F24
- .incbin "baserom.gba", 0x351F24, 0x1C
-
-gMap_37_04:: @ 8351F40
- .incbin "baserom.gba", 0x351F40, 0x1C
-
-gMap_38_00:: @ 8351F5C
- .incbin "baserom.gba", 0x351F5C, 0x1C
-
-gMap_39_00:: @ 8351F78
- .incbin "baserom.gba", 0x351F78, 0x1C
-
-gMap_40_00:: @ 8351F94
- .incbin "baserom.gba", 0x351F94, 0x1C
-
-gMap_41_00:: @ 8351FB0
- .incbin "baserom.gba", 0x351FB0, 0x1C
-
-gMap_41_01:: @ 8351FCC
- .incbin "baserom.gba", 0x351FCC, 0x1C
-
-gMap_42_00:: @ 8351FE8
- .incbin "baserom.gba", 0x351FE8, 0x1C
+UnknownMap_00_00:: @ 834F188
+ .4byte gMapData_UnknownMap_00_00 @ 0x82D89E8
+ .4byte gMapEvents_UnknownMap_00_00 @ 0x83AE0DC
+ .4byte gMapScripts_UnknownMap_00_00 @ 0x8160478
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 47
+ .byte 0xc4, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
+
+UnknownMap_00_01:: @ 834F1A4
+ .4byte gMapData_UnknownMap_00_01 @ 0x82D8AE4
+ .4byte gMapEvents_UnknownMap_00_01 @ 0x83AE138
+ .4byte gMapScripts_UnknownMap_00_01 @ 0x8160479
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 48
+ .byte 0xc4, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+UnknownMap_00_02:: @ 834F1C0
+ .4byte gMapData_UnknownMap_00_02 @ 0x82D8C98
+ .4byte gMapEvents_UnknownMap_00_02 @ 0x83AE1C4
+ .4byte gMapScripts_UnknownMap_00_02 @ 0x816047A
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 49
+ .byte 0xc4, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+UnknownMap_00_03:: @ 834F1DC
+ .4byte gMapData_UnknownMap_00_03 @ 0x82D8DB8
+ .4byte gMapEvents_UnknownMap_00_03 @ 0x83AE238
+ .4byte gMapScripts_UnknownMap_00_03 @ 0x816047B
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 50
+ .byte 0xc4, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
+
+UnknownMap_00_04:: @ 834F1F8
+ .4byte gMapData_UnknownMap_00_04 @ 0x83388C4
+ .4byte gMapEvents_UnknownMap_00_04 @ 0x83AE32C
+ .4byte gMapScripts_UnknownMap_00_04 @ 0x816047C
+ .4byte NULL
+ .2byte BGM_FRLG_UNION_ROOM
+ .2byte 262
+ .byte 0xc4, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
+
+ViridianForest:: @ 834F214
+ .4byte gMapData_ViridianForest @ 0x82FE46C
+ .4byte gMapEvents_ViridianForest @ 0x83AE4D8
+ .4byte gMapScripts_ViridianForest @ 0x816051F
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 117
+ .byte 0x7e, 0x00, 0x0b, 0x03, 0x01, 0x07, 0x00, 0x00
+
+MtMoon_1F:: @ 834F230
+ .4byte gMapData_MtMoon_1F @ 0x82FA890
+ .4byte gMapEvents_MtMoon_1F @ 0x83AE668
+ .4byte gMapScripts_MtMoon_1F @ 0x81605E4
+ .4byte NULL
+ .2byte BGM_FRLG_MT_MOON
+ .2byte 114
+ .byte 0x7f, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtMoon_B1F:: @ 834F24C
+ .4byte gMapData_MtMoon_B1F @ 0x82FB804
+ .4byte gMapEvents_MtMoon_B1F @ 0x83AE704
+ .4byte gMapScripts_MtMoon_B1F @ 0x8160698
+ .4byte NULL
+ .2byte BGM_FRLG_MT_MOON
+ .2byte 115
+ .byte 0x7f, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtMoon_B2F:: @ 834F268
+ .4byte gMapData_MtMoon_B2F @ 0x82FC728
+ .4byte gMapEvents_MtMoon_B2F @ 0x83AE868
+ .4byte gMapScripts_MtMoon_B2F @ 0x8160699
+ .4byte NULL
+ .2byte BGM_FRLG_MT_MOON
+ .2byte 116
+ .byte 0x7f, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SSAnne_Exterior:: @ 834F284
+ .4byte gMapData_SSAnne_Exterior @ 0x82FF610
+ .4byte gMapEvents_SSAnne_Exterior @ 0x83AE8C8
+ .4byte gMapScripts_SSAnne_Exterior @ 0x8160840
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 118
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_1F_Corridor:: @ 834F2A0
+ .4byte gMapData_SSAnne_1F_Corridor @ 0x82FFB4C
+ .4byte gMapEvents_SSAnne_1F_Corridor @ 0x83AE974
+ .4byte gMapScripts_SSAnne_1F_Corridor @ 0x81608CB
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 119
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_2F_Corridor:: @ 834F2BC
+ .4byte gMapData_SSAnne_2F_Corridor @ 0x82FFFB0
+ .4byte gMapEvents_SSAnne_2F_Corridor @ 0x83AEA30
+ .4byte gMapScripts_SSAnne_2F_Corridor @ 0x81608DE
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 120
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_3F_Corridor:: @ 834F2D8
+ .4byte gMapData_SSAnne_3F_Corridor @ 0x8300108
+ .4byte gMapEvents_SSAnne_3F_Corridor @ 0x83AEA74
+ .4byte gMapScripts_SSAnne_3F_Corridor @ 0x8160A5D
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 121
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_B1F_Corridor:: @ 834F2F4
+ .4byte gMapData_SSAnne_B1F_Corridor @ 0x8300270
+ .4byte gMapEvents_SSAnne_B1F_Corridor @ 0x83AEAC4
+ .4byte gMapScripts_SSAnne_B1F_Corridor @ 0x8160A67
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 122
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_Deck:: @ 834F310
+ .4byte gMapData_SSAnne_Deck @ 0x8300624
+ .4byte gMapEvents_SSAnne_Deck @ 0x83AEB60
+ .4byte gMapScripts_SSAnne_Deck @ 0x8160A68
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 123
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_Kitchen:: @ 834F32C
+ .4byte gMapData_SSAnne_Kitchen @ 0x8319214
+ .4byte gMapEvents_SSAnne_Kitchen @ 0x83AEC60
+ .4byte gMapScripts_SSAnne_Kitchen @ 0x8160AB2
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 170
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_CaptainsOffice:: @ 834F348
+ .4byte gMapData_SSAnne_CaptainsOffice @ 0x83192EC
+ .4byte gMapEvents_SSAnne_CaptainsOffice @ 0x83AECB8
+ .4byte gMapScripts_SSAnne_CaptainsOffice @ 0x8160B39
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 171
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_1F_Room1:: @ 834F364
+ .4byte gMapData_SSAnne_1F_Room1 @ 0x8319E74
+ .4byte gMapEvents_SSAnne_1F_Room1 @ 0x83AECEC
+ .4byte gMapScripts_SSAnne_1F_Room1 @ 0x8160BDB
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 177
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_1F_Room2:: @ 834F380
+ .4byte gMapData_SSAnne_1F_Room2 @ 0x8319E74
+ .4byte gMapEvents_SSAnne_1F_Room2 @ 0x83AED68
+ .4byte gMapScripts_SSAnne_1F_Room2 @ 0x8160BE5
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 177
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_1F_Room3:: @ 834F39C
+ .4byte gMapData_SSAnne_1F_Room3 @ 0x8319E74
+ .4byte gMapEvents_SSAnne_1F_Room3 @ 0x83AEDCC
+ .4byte gMapScripts_SSAnne_1F_Room3 @ 0x8160C1D
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 177
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_1F_Room4:: @ 834F3B8
+ .4byte gMapData_SSAnne_1F_Room4 @ 0x8319E74
+ .4byte gMapEvents_SSAnne_1F_Room4 @ 0x83AEE00
+ .4byte gMapScripts_SSAnne_1F_Room4 @ 0x8160C43
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 177
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_1F_Room5:: @ 834F3D4
+ .4byte gMapData_SSAnne_1F_Room5 @ 0x8319E74
+ .4byte gMapEvents_SSAnne_1F_Room5 @ 0x83AEE34
+ .4byte gMapScripts_SSAnne_1F_Room5 @ 0x8160C66
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 177
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_1F_Room7:: @ 834F3F0
+ .4byte gMapData_SSAnne_1F_Room7 @ 0x8319E74
+ .4byte gMapEvents_SSAnne_1F_Room7 @ 0x83AEE68
+ .4byte gMapScripts_SSAnne_1F_Room7 @ 0x8160C7E
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 177
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_2F_Room1:: @ 834F40C
+ .4byte gMapData_SSAnne_2F_Room1 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_2F_Room1 @ 0x83AEE9C
+ .4byte gMapScripts_SSAnne_2F_Room1 @ 0x8160C96
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_2F_Room2:: @ 834F428
+ .4byte gMapData_SSAnne_2F_Room2 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_2F_Room2 @ 0x83AEF00
+ .4byte gMapScripts_SSAnne_2F_Room2 @ 0x8160CB0
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_2F_Room3:: @ 834F444
+ .4byte gMapData_SSAnne_2F_Room3 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_2F_Room3 @ 0x83AEF4C
+ .4byte gMapScripts_SSAnne_2F_Room3 @ 0x8160CDF
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_2F_Room4:: @ 834F460
+ .4byte gMapData_SSAnne_2F_Room4 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_2F_Room4 @ 0x83AEFB0
+ .4byte gMapScripts_SSAnne_2F_Room4 @ 0x8160CF2
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_2F_Room5:: @ 834F47C
+ .4byte gMapData_SSAnne_2F_Room5 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_2F_Room5 @ 0x83AEFFC
+ .4byte gMapScripts_SSAnne_2F_Room5 @ 0x8160D21
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_2F_Room6:: @ 834F498
+ .4byte gMapData_SSAnne_2F_Room6 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_2F_Room6 @ 0x83AF048
+ .4byte gMapScripts_SSAnne_2F_Room6 @ 0x8160D34
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_B1F_Room1:: @ 834F4B4
+ .4byte gMapData_SSAnne_B1F_Room1 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_B1F_Room1 @ 0x83AF094
+ .4byte gMapScripts_SSAnne_B1F_Room1 @ 0x8160D47
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_B1F_Room2:: @ 834F4D0
+ .4byte gMapData_SSAnne_B1F_Room2 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_B1F_Room2 @ 0x83AF0E0
+ .4byte gMapScripts_SSAnne_B1F_Room2 @ 0x8160D76
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_B1F_Room3:: @ 834F4EC
+ .4byte gMapData_SSAnne_B1F_Room3 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_B1F_Room3 @ 0x83AF12C
+ .4byte gMapScripts_SSAnne_B1F_Room3 @ 0x8160D8E
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_B1F_Room4:: @ 834F508
+ .4byte gMapData_SSAnne_B1F_Room4 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_B1F_Room4 @ 0x83AF178
+ .4byte gMapScripts_SSAnne_B1F_Room4 @ 0x8160DA6
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_B1F_Room5:: @ 834F524
+ .4byte gMapData_SSAnne_B1F_Room5 @ 0x8319F04
+ .4byte gMapEvents_SSAnne_B1F_Room5 @ 0x83AF1DC
+ .4byte gMapScripts_SSAnne_B1F_Room5 @ 0x8160DD5
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 178
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+SSAnne_1F_Room6:: @ 834F540
+ .4byte gMapData_SSAnne_1F_Room6 @ 0x8319E74
+ .4byte gMapEvents_SSAnne_1F_Room6 @ 0x83AF210
+ .4byte gMapScripts_SSAnne_1F_Room6 @ 0x8160DF2
+ .4byte NULL
+ .2byte BGM_FRLG_SS_ANNE
+ .2byte 177
+ .byte 0x80, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+UndergroundPath_NorthEntrance:: @ 834F55C
+ .4byte gMapData_UndergroundPath_NorthEntrance @ 0x8319414
+ .4byte gMapEvents_UndergroundPath_NorthEntrance @ 0x83AF25C
+ .4byte gMapScripts_UndergroundPath_NorthEntrance @ 0x8160E38
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 172
+ .byte 0x81, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+UndergroundPath_NorthSouthTunnel:: @ 834F578
+ .4byte gMapData_UndergroundPath_NorthSouthTunnel @ 0x8319CAC
+ .4byte gMapEvents_UndergroundPath_NorthSouthTunnel @ 0x83AF2D4
+ .4byte gMapScripts_UndergroundPath_NorthSouthTunnel @ 0x8160EB5
+ .4byte NULL
+ .2byte BGM_FRLG_ROUTE_1
+ .2byte 174
+ .byte 0x81, 0x00, 0x00, 0x08, 0x01, 0x06, 0x00, 0x00
+
+UndergroundPath_SouthEntrance:: @ 834F594
+ .4byte gMapData_UndergroundPath_SouthEntrance @ 0x8319414
+ .4byte gMapEvents_UndergroundPath_SouthEntrance @ 0x83AF320
+ .4byte gMapScripts_UndergroundPath_SouthEntrance @ 0x8160EBF
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 172
+ .byte 0x81, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+UndergroundPath_WestEntrance:: @ 834F5B0
+ .4byte gMapData_UndergroundPath_WestEntrance @ 0x8319414
+ .4byte gMapEvents_UndergroundPath_WestEntrance @ 0x83AF36C
+ .4byte gMapScripts_UndergroundPath_WestEntrance @ 0x8160EC9
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 172
+ .byte 0x82, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+UndergroundPath_EastWestTunnel:: @ 834F5CC
+ .4byte gMapData_UndergroundPath_EastWestTunnel @ 0x8319898
+ .4byte gMapEvents_UndergroundPath_EastWestTunnel @ 0x83AF3E4
+ .4byte gMapScripts_UndergroundPath_EastWestTunnel @ 0x8160ED3
+ .4byte NULL
+ .2byte BGM_FRLG_ROUTE_1
+ .2byte 173
+ .byte 0x82, 0x00, 0x00, 0x08, 0x01, 0x06, 0x00, 0x00
+
+UndergroundPath_EastEntrance:: @ 834F5E8
+ .4byte gMapData_UndergroundPath_EastEntrance @ 0x8319414
+ .4byte gMapEvents_UndergroundPath_EastEntrance @ 0x83AF430
+ .4byte gMapScripts_UndergroundPath_EastEntrance @ 0x8160EDD
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 172
+ .byte 0x82, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+DiglettsCave_NorthEntrance:: @ 834F604
+ .4byte gMapData_DiglettsCave_NorthEntrance @ 0x831EB94
+ .4byte gMapEvents_DiglettsCave_NorthEntrance @ 0x83AF46C
+ .4byte gMapScripts_DiglettsCave_NorthEntrance @ 0x8160EE7
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 210
+ .byte 0x83, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+DiglettsCave_B1F:: @ 834F620
+ .4byte gMapData_DiglettsCave_B1F @ 0x8303B68
+ .4byte gMapEvents_DiglettsCave_B1F @ 0x83AF490
+ .4byte gMapScripts_DiglettsCave_B1F @ 0x8160EF1
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 124
+ .byte 0x83, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+DiglettsCave_SouthEntrance:: @ 834F63C
+ .4byte gMapData_DiglettsCave_SouthEntrance @ 0x831EC58
+ .4byte gMapEvents_DiglettsCave_SouthEntrance @ 0x83AF4CC
+ .4byte gMapScripts_DiglettsCave_SouthEntrance @ 0x8160EFB
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 211
+ .byte 0x83, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+VictoryRoad_1F:: @ 834F658
+ .4byte gMapData_VictoryRoad_1F @ 0x83043CC
+ .4byte gMapEvents_VictoryRoad_1F @ 0x83AF5C0
+ .4byte gMapScripts_VictoryRoad_1F @ 0x8160F05
+ .4byte NULL
+ .2byte BGM_FRLG_MT_MOON
+ .2byte 125
+ .byte 0x84, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+VictoryRoad_2F:: @ 834F674
+ .4byte gMapData_VictoryRoad_2F @ 0x8304CB4
+ .4byte gMapEvents_VictoryRoad_2F @ 0x83AF774
+ .4byte gMapScripts_VictoryRoad_2F @ 0x8160F92
+ .4byte NULL
+ .2byte BGM_FRLG_MT_MOON
+ .2byte 126
+ .byte 0x84, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+VictoryRoad_3F:: @ 834F690
+ .4byte gMapData_VictoryRoad_3F @ 0x8305494
+ .4byte gMapEvents_VictoryRoad_3F @ 0x83AF8E0
+ .4byte gMapScripts_VictoryRoad_3F @ 0x81610AA
+ .4byte NULL
+ .2byte BGM_FRLG_MT_MOON
+ .2byte 127
+ .byte 0x84, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+RocketHideout_B1F:: @ 834F6AC
+ .4byte gMapData_RocketHideout_B1F @ 0x8305C28
+ .4byte gMapEvents_RocketHideout_B1F @ 0x83AF9D8
+ .4byte gMapScripts_RocketHideout_B1F @ 0x8161195
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 128
+ .byte 0x85, 0x00, 0x00, 0x08, 0x00, 0x07, 0xff, 0x03
+
+RocketHideout_B2F:: @ 834F6C8
+ .4byte gMapData_RocketHideout_B2F @ 0x83061CC
+ .4byte gMapEvents_RocketHideout_B2F @ 0x83AFA8C
+ .4byte gMapScripts_RocketHideout_B2F @ 0x81612A1
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 129
+ .byte 0x85, 0x00, 0x00, 0x08, 0x00, 0x07, 0xfe, 0x03
+
+RocketHideout_B3F:: @ 834F6E4
+ .4byte gMapData_RocketHideout_B3F @ 0x8306694
+ .4byte gMapEvents_RocketHideout_B3F @ 0x83AFB34
+ .4byte gMapScripts_RocketHideout_B3F @ 0x81612B9
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 130
+ .byte 0x85, 0x00, 0x00, 0x08, 0x00, 0x07, 0xfd, 0x03
+
+RocketHideout_B4F:: @ 834F700
+ .4byte gMapData_RocketHideout_B4F @ 0x8306B98
+ .4byte gMapEvents_RocketHideout_B4F @ 0x83AFC50
+ .4byte gMapScripts_RocketHideout_B4F @ 0x81612E8
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 131
+ .byte 0x85, 0x00, 0x00, 0x08, 0x00, 0x07, 0xfc, 0x03
+
+RocketHideout_Elevator:: @ 834F71C
+ .4byte gMapData_RocketHideout_Elevator @ 0x8320EDC
+ .4byte gMapEvents_RocketHideout_Elevator @ 0x83AFC80
+ .4byte gMapScripts_RocketHideout_Elevator @ 0x81614D8
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 225
+ .byte 0x85, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x03
+
+SilphCo_1F:: @ 834F738
+ .4byte gMapData_SilphCo_1F @ 0x83071EC
+ .4byte gMapEvents_SilphCo_1F @ 0x83AFCE0
+ .4byte gMapScripts_SilphCo_1F @ 0x8161625
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 132
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x01, 0x00
+
+SilphCo_2F:: @ 834F754
+ .4byte gMapData_SilphCo_2F @ 0x8307840
+ .4byte gMapEvents_SilphCo_2F @ 0x83AFE1C
+ .4byte gMapScripts_SilphCo_2F @ 0x8161641
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 133
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x02, 0x00
+
+SilphCo_3F:: @ 834F770
+ .4byte gMapData_SilphCo_3F @ 0x8307E94
+ .4byte gMapEvents_SilphCo_3F @ 0x83AFF58
+ .4byte gMapScripts_SilphCo_3F @ 0x81616C5
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 134
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x03, 0x00
+
+SilphCo_4F:: @ 834F78C
+ .4byte gMapData_SilphCo_4F @ 0x83084E8
+ .4byte gMapEvents_SilphCo_4F @ 0x83B00DC
+ .4byte gMapScripts_SilphCo_4F @ 0x8161736
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 135
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x04, 0x00
+
+SilphCo_5F:: @ 834F7A8
+ .4byte gMapData_SilphCo_5F @ 0x8308B3C
+ .4byte gMapEvents_SilphCo_5F @ 0x83B02D8
+ .4byte gMapScripts_SilphCo_5F @ 0x81617BE
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 136
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x05, 0x00
+
+SilphCo_6F:: @ 834F7C4
+ .4byte gMapData_SilphCo_6F @ 0x8308FFC
+ .4byte gMapEvents_SilphCo_6F @ 0x83B044C
+ .4byte gMapScripts_SilphCo_6F @ 0x8161881
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 137
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x06, 0x00
+
+SilphCo_7F:: @ 834F7E0
+ .4byte gMapData_SilphCo_7F @ 0x83094BC
+ .4byte gMapEvents_SilphCo_7F @ 0x83B0660
+ .4byte gMapScripts_SilphCo_7F @ 0x8161984
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 138
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x07, 0x00
+
+SilphCo_8F:: @ 834F7FC
+ .4byte gMapData_SilphCo_8F @ 0x830997C
+ .4byte gMapEvents_SilphCo_8F @ 0x83B0784
+ .4byte gMapScripts_SilphCo_8F @ 0x8161C5F
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 139
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x08, 0x00
+
+SilphCo_9F:: @ 834F818
+ .4byte gMapData_SilphCo_9F @ 0x8309E3C
+ .4byte gMapEvents_SilphCo_9F @ 0x83B0904
+ .4byte gMapScripts_SilphCo_9F @ 0x8161CDE
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 140
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x09, 0x00
+
+SilphCo_10F:: @ 834F834
+ .4byte gMapData_SilphCo_10F @ 0x830A0E8
+ .4byte gMapEvents_SilphCo_10F @ 0x83B0A20
+ .4byte gMapScripts_SilphCo_10F @ 0x8161D86
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 141
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x0a, 0x00
+
+SilphCo_11F:: @ 834F850
+ .4byte gMapData_SilphCo_11F @ 0x830A3B4
+ .4byte gMapEvents_SilphCo_11F @ 0x83B0B44
+ .4byte gMapScripts_SilphCo_11F @ 0x8161DEE
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 142
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x07, 0x0b, 0x00
+
+SilphCo_Elevator:: @ 834F86C
+ .4byte gMapData_SilphCo_Elevator @ 0x8321330
+ .4byte gMapEvents_SilphCo_Elevator @ 0x83B0B6C
+ .4byte gMapScripts_SilphCo_Elevator @ 0x8161F6E
+ .4byte NULL
+ .2byte BGM_FRLG_SILPH
+ .2byte 229
+ .byte 0x86, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00
+
+PokemonMansion_1F:: @ 834F888
+ .4byte gMapData_PokemonMansion_1F @ 0x830AE3C
+ .4byte gMapEvents_PokemonMansion_1F @ 0x83B0C60
+ .4byte gMapScripts_PokemonMansion_1F @ 0x81621F9
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_MANSION
+ .2byte 143
+ .byte 0x87, 0x00, 0x0b, 0x08, 0x00, 0x07, 0x00, 0x03
+
+PokemonMansion_2F:: @ 834F8A4
+ .4byte gMapData_PokemonMansion_2F @ 0x830B9A8
+ .4byte gMapEvents_PokemonMansion_2F @ 0x83B0D20
+ .4byte gMapScripts_PokemonMansion_2F @ 0x8162254
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_MANSION
+ .2byte 144
+ .byte 0x87, 0x00, 0x0b, 0x08, 0x00, 0x07, 0x00, 0x03
+
+PokemonMansion_3F:: @ 834F8C0
+ .4byte gMapData_PokemonMansion_3F @ 0x830C430
+ .4byte gMapEvents_PokemonMansion_3F @ 0x83B0DF8
+ .4byte gMapScripts_PokemonMansion_3F @ 0x81622A1
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_MANSION
+ .2byte 145
+ .byte 0x87, 0x00, 0x0b, 0x08, 0x00, 0x07, 0x00, 0x03
+
+PokemonMansion_B1F:: @ 834F8DC
+ .4byte gMapData_PokemonMansion_B1F @ 0x830CEB8
+ .4byte gMapEvents_PokemonMansion_B1F @ 0x83B0ED4
+ .4byte gMapScripts_PokemonMansion_B1F @ 0x81622FC
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_MANSION
+ .2byte 146
+ .byte 0x87, 0x00, 0x0b, 0x08, 0x00, 0x07, 0x00, 0x03
+
+SafariZone_Center:: @ 834F8F8
+ .4byte gMapData_SafariZone_Center @ 0x830DD38
+ .4byte gMapEvents_SafariZone_Center @ 0x83B0F98
+ .4byte gMapScripts_SafariZone_Center @ 0x8162357
+ .4byte NULL
+ .2byte BGM_FRLG_SAFARI_ZONE
+ .2byte 147
+ .byte 0x88, 0x00, 0x00, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SafariZone_East:: @ 834F914
+ .4byte gMapData_SafariZone_East @ 0x830EC24
+ .4byte gMapEvents_SafariZone_East @ 0x83B1068
+ .4byte gMapScripts_SafariZone_East @ 0x816237C
+ .4byte NULL
+ .2byte BGM_FRLG_SAFARI_ZONE
+ .2byte 148
+ .byte 0x88, 0x00, 0x00, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SafariZone_North:: @ 834F930
+ .4byte gMapData_SafariZone_North @ 0x830FE1C
+ .4byte gMapEvents_SafariZone_North @ 0x83B1168
+ .4byte gMapScripts_SafariZone_North @ 0x8162398
+ .4byte NULL
+ .2byte BGM_FRLG_SAFARI_ZONE
+ .2byte 149
+ .byte 0x88, 0x00, 0x00, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SafariZone_West:: @ 834F94C
+ .4byte gMapData_SafariZone_West @ 0x8310BC4
+ .4byte gMapEvents_SafariZone_West @ 0x83B1270
+ .4byte gMapScripts_SafariZone_West @ 0x81623C6
+ .4byte NULL
+ .2byte BGM_FRLG_SAFARI_ZONE
+ .2byte 150
+ .byte 0x88, 0x00, 0x00, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SafariZone_Building1:: @ 834F968
+ .4byte gMapData_SafariZone_Building1 @ 0x831C028
+ .4byte gMapEvents_SafariZone_Building1 @ 0x83B12CC
+ .4byte gMapScripts_SafariZone_Building1 @ 0x81623EB
+ .4byte NULL
+ .2byte BGM_FRLG_SAFARI_ZONE
+ .2byte 198
+ .byte 0x88, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SafariZone_Building2:: @ 834F984
+ .4byte gMapData_SafariZone_Building2 @ 0x831C028
+ .4byte gMapEvents_SafariZone_Building2 @ 0x83B1340
+ .4byte gMapScripts_SafariZone_Building2 @ 0x81623FE
+ .4byte NULL
+ .2byte BGM_FRLG_SAFARI_ZONE
+ .2byte 198
+ .byte 0x88, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SafariZone_Building3:: @ 834F9A0
+ .4byte gMapData_SafariZone_Building3 @ 0x831C028
+ .4byte gMapEvents_SafariZone_Building3 @ 0x83B13CC
+ .4byte gMapScripts_SafariZone_Building3 @ 0x816241A
+ .4byte NULL
+ .2byte BGM_FRLG_SAFARI_ZONE
+ .2byte 198
+ .byte 0x88, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SafariZone_Building4:: @ 834F9BC
+ .4byte gMapData_SafariZone_Building4 @ 0x831C028
+ .4byte gMapEvents_SafariZone_Building4 @ 0x83B1440
+ .4byte gMapScripts_SafariZone_Building4 @ 0x8162436
+ .4byte NULL
+ .2byte BGM_FRLG_SAFARI_ZONE
+ .2byte 198
+ .byte 0x88, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SafariZone_SecretHouse:: @ 834F9D8
+ .4byte gMapData_SafariZone_SecretHouse @ 0x831C16C
+ .4byte gMapEvents_SafariZone_SecretHouse @ 0x83B1484
+ .4byte gMapScripts_SafariZone_SecretHouse @ 0x8162452
+ .4byte NULL
+ .2byte BGM_FRLG_SAFARI_ZONE
+ .2byte 199
+ .byte 0x88, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCave_1F:: @ 834F9F4
+ .4byte gMapData_CeruleanCave_1F @ 0x8311318
+ .4byte gMapEvents_CeruleanCave_1F @ 0x83B15BC
+ .4byte gMapScripts_CeruleanCave_1F @ 0x81624B3
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 151
+ .byte 0x8d, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+CeruleanCave_2F:: @ 834FA10
+ .4byte gMapData_CeruleanCave_2F @ 0x8311A6C
+ .4byte gMapEvents_CeruleanCave_2F @ 0x83B1738
+ .4byte gMapScripts_CeruleanCave_2F @ 0x81624BD
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 152
+ .byte 0x8d, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+CeruleanCave_B1F:: @ 834FA2C
+ .4byte gMapData_CeruleanCave_B1F @ 0x83121C0
+ .4byte gMapEvents_CeruleanCave_B1F @ 0x83B1874
+ .4byte gMapScripts_CeruleanCave_B1F @ 0x81624BE
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 153
+ .byte 0x8d, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+PokemonLeague_LoreleisRoom:: @ 834FA48
+ .4byte gMapData_PokemonLeague_LoreleisRoom @ 0x831F178
+ .4byte gMapEvents_PokemonLeague_LoreleisRoom @ 0x83B18B0
+ .4byte gMapScripts_PokemonLeague_LoreleisRoom @ 0x816256C
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 213
+ .byte 0x89, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04
+
+PokemonLeague_BrunosRoom:: @ 834FA64
+ .4byte gMapData_PokemonLeague_BrunosRoom @ 0x831F2F0
+ .4byte gMapEvents_PokemonLeague_BrunosRoom @ 0x83B18EC
+ .4byte gMapScripts_PokemonLeague_BrunosRoom @ 0x8162685
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 214
+ .byte 0x89, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x05
+
+PokemonLeague_AgathasRoom:: @ 834FA80
+ .4byte gMapData_PokemonLeague_AgathasRoom @ 0x831F468
+ .4byte gMapEvents_PokemonLeague_AgathasRoom @ 0x83B1928
+ .4byte gMapScripts_PokemonLeague_AgathasRoom @ 0x8162810
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_TOWER
+ .2byte 215
+ .byte 0x89, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x06
+
+PokemonLeague_LancesRoom:: @ 834FA9C
+ .4byte gMapData_PokemonLeague_LancesRoom @ 0x831F9CC
+ .4byte gMapEvents_PokemonLeague_LancesRoom @ 0x83B1964
+ .4byte gMapScripts_PokemonLeague_LancesRoom @ 0x816292D
+ .4byte NULL
+ .2byte BGM_FRLG_INDIGO_PLATEAU
+ .2byte 216
+ .byte 0x89, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07
+
+PokemonLeague_ChampionsRoom:: @ 834FAB8
+ .4byte gMapData_PokemonLeague_ChampionsRoom @ 0x831FBF8
+ .4byte gMapEvents_PokemonLeague_ChampionsRoom @ 0x83B19B8
+ .4byte gMapScripts_PokemonLeague_ChampionsRoom @ 0x8162AE2
+ .4byte NULL
+ .2byte BGM_FRLG_INDIGO_PLATEAU
+ .2byte 217
+ .byte 0x89, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PokemonLeague_HallOfFame:: @ 834FAD4
+ .4byte gMapData_PokemonLeague_HallOfFame @ 0x831FD3C
+ .4byte gMapEvents_PokemonLeague_HallOfFame @ 0x83B19EC
+ .4byte gMapScripts_PokemonLeague_HallOfFame @ 0x8162D4C
+ .4byte NULL
+ .2byte BGM_FRLG_HALL_OF_FAME_PALLET_TOWN
+ .2byte 218
+ .byte 0x89, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+RockTunnel_1F:: @ 834FAF0
+ .4byte gMapData_RockTunnel_1F @ 0x83130E4
+ .4byte gMapEvents_RockTunnel_1F @ 0x83B1B2C
+ .4byte gMapScripts_RockTunnel_1F @ 0x8162DD6
+ .4byte NULL
+ .2byte BGM_FRLG_MT_MOON
+ .2byte 154
+ .byte 0x8a, 0x01, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+RockTunnel_B1F:: @ 834FB0C
+ .4byte gMapData_RockTunnel_B1F @ 0x8314008
+ .4byte gMapEvents_RockTunnel_B1F @ 0x83B1DD0
+ .4byte gMapScripts_RockTunnel_B1F @ 0x8162E8A
+ .4byte NULL
+ .2byte BGM_FRLG_MT_MOON
+ .2byte 155
+ .byte 0x8a, 0x01, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SeafoamIslands_1F:: @ 834FB28
+ .4byte gMapData_SeafoamIslands_1F @ 0x831474C
+ .4byte gMapEvents_SeafoamIslands_1F @ 0x83B1E64
+ .4byte gMapScripts_SeafoamIslands_1F @ 0x8162F43
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 156
+ .byte 0x8b, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SeafoamIslands_B1F:: @ 834FB44
+ .4byte gMapData_SeafoamIslands_B1F @ 0x8314E44
+ .4byte gMapEvents_SeafoamIslands_B1F @ 0x83B1F30
+ .4byte gMapScripts_SeafoamIslands_B1F @ 0x8162F4D
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 157
+ .byte 0x8b, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SeafoamIslands_B2F:: @ 834FB60
+ .4byte gMapData_SeafoamIslands_B2F @ 0x8315588
+ .4byte gMapEvents_SeafoamIslands_B2F @ 0x83B1FE4
+ .4byte gMapScripts_SeafoamIslands_B2F @ 0x8162F4E
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 158
+ .byte 0x8b, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SeafoamIslands_B3F:: @ 834FB7C
+ .4byte gMapData_SeafoamIslands_B3F @ 0x8315CCC
+ .4byte gMapEvents_SeafoamIslands_B3F @ 0x83B20DC
+ .4byte gMapScripts_SeafoamIslands_B3F @ 0x8162F4F
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 159
+ .byte 0x8b, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SeafoamIslands_B4F:: @ 834FB98
+ .4byte gMapData_SeafoamIslands_B4F @ 0x8316410
+ .4byte gMapEvents_SeafoamIslands_B4F @ 0x83B21C4
+ .4byte gMapScripts_SeafoamIslands_B4F @ 0x816302E
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 160
+ .byte 0x8b, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+PokemonTower_1F:: @ 834FBB4
+ .4byte gMapData_PokemonTower_1F @ 0x83167F4
+ .4byte gMapEvents_PokemonTower_1F @ 0x83B2270
+ .4byte gMapScripts_PokemonTower_1F @ 0x8163235
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_TOWER
+ .2byte 161
+ .byte 0x8c, 0x00, 0x00, 0x08, 0x00, 0x05, 0x00, 0x02
+
+PokemonTower_2F:: @ 834FBD0
+ .4byte gMapData_PokemonTower_2F @ 0x8316BD8
+ .4byte gMapEvents_PokemonTower_2F @ 0x83B22E4
+ .4byte gMapScripts_PokemonTower_2F @ 0x8163285
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_TOWER
+ .2byte 162
+ .byte 0x8c, 0x00, 0x00, 0x08, 0x00, 0x05, 0x00, 0x02
+
+PokemonTower_3F:: @ 834FBEC
+ .4byte gMapData_PokemonTower_3F @ 0x8316FBC
+ .4byte gMapEvents_PokemonTower_3F @ 0x83B2368
+ .4byte gMapScripts_PokemonTower_3F @ 0x81633A6
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_TOWER
+ .2byte 163
+ .byte 0x8c, 0x00, 0x06, 0x08, 0x00, 0x05, 0x00, 0x02
+
+PokemonTower_4F:: @ 834FC08
+ .4byte gMapData_PokemonTower_4F @ 0x83173A0
+ .4byte gMapEvents_PokemonTower_4F @ 0x83B241C
+ .4byte gMapScripts_PokemonTower_4F @ 0x81633EC
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_TOWER
+ .2byte 164
+ .byte 0x8c, 0x00, 0x06, 0x08, 0x00, 0x05, 0x00, 0x02
+
+PokemonTower_5F:: @ 834FC24
+ .4byte gMapData_PokemonTower_5F @ 0x8317784
+ .4byte gMapEvents_PokemonTower_5F @ 0x83B2604
+ .4byte gMapScripts_PokemonTower_5F @ 0x8163432
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_TOWER
+ .2byte 165
+ .byte 0x8c, 0x00, 0x06, 0x08, 0x00, 0x05, 0x00, 0x02
+
+PokemonTower_6F:: @ 834FC40
+ .4byte gMapData_PokemonTower_6F @ 0x8317B68
+ .4byte gMapEvents_PokemonTower_6F @ 0x83B26C0
+ .4byte gMapScripts_PokemonTower_6F @ 0x81634B7
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_TOWER
+ .2byte 166
+ .byte 0x8c, 0x00, 0x06, 0x08, 0x00, 0x05, 0x00, 0x02
+
+PokemonTower_7F:: @ 834FC5C
+ .4byte gMapData_PokemonTower_7F @ 0x8317F4C
+ .4byte gMapEvents_PokemonTower_7F @ 0x83B2748
+ .4byte gMapScripts_PokemonTower_7F @ 0x8163559
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_TOWER
+ .2byte 167
+ .byte 0x8c, 0x00, 0x06, 0x08, 0x00, 0x05, 0x00, 0x02
+
+PowerPlant:: @ 834FC78
+ .4byte gMapData_PowerPlant @ 0x8318EC0
+ .4byte gMapEvents_PowerPlant @ 0x83B285C
+ .4byte gMapScripts_PowerPlant @ 0x8163764
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_MANSION
+ .2byte 168
+ .byte 0x8e, 0x00, 0x00, 0x08, 0x00, 0x07, 0x00, 0x03
+
+MtEmber_RubyPath_B4F:: @ 834FC94
+ .4byte gMapData_MtEmber_RubyPath_B4F @ 0x8339290
+ .4byte gMapEvents_MtEmber_RubyPath_B4F @ 0x83B29B8
+ .4byte gMapScripts_MtEmber_RubyPath_B4F @ 0x81638EB
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 269
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_Exterior:: @ 834FCB0
+ .4byte gMapData_MtEmber_Exterior @ 0x833D660
+ .4byte gMapEvents_MtEmber_Exterior @ 0x83B2C24
+ .4byte gMapScripts_MtEmber_Exterior @ 0x8163946
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 280
+ .byte 0xaf, 0x00, 0x00, 0x03, 0x01, 0x06, 0x00, 0x00
+
+MtEmber_SummitPath_1F:: @ 834FCCC
+ .4byte gMapData_MtEmber_SummitPath_1F @ 0x833DC08
+ .4byte gMapEvents_MtEmber_SummitPath_1F @ 0x83B2C48
+ .4byte gMapScripts_MtEmber_SummitPath_1F @ 0x8163AF9
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 282
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_SummitPath_2F:: @ 834FCE8
+ .4byte gMapData_MtEmber_SummitPath_2F @ 0x833ED6C
+ .4byte gMapEvents_MtEmber_SummitPath_2F @ 0x83B2D44
+ .4byte gMapScripts_MtEmber_SummitPath_2F @ 0x8163AFA
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 283
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_SummitPath_3F:: @ 834FD04
+ .4byte gMapData_MtEmber_SummitPath_3F @ 0x833EEDC
+ .4byte gMapEvents_MtEmber_SummitPath_3F @ 0x83B2D68
+ .4byte gMapScripts_MtEmber_SummitPath_3F @ 0x8163AFB
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 284
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_Summit:: @ 834FD20
+ .4byte gMapData_MtEmber_Summit @ 0x833D9C8
+ .4byte gMapEvents_MtEmber_Summit @ 0x83B2DFC
+ .4byte gMapScripts_MtEmber_Summit @ 0x8163AFC
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 281
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_RubyPath_B5F:: @ 834FD3C
+ .4byte gMapData_MtEmber_RubyPath_B5F @ 0x833FF60
+ .4byte gMapEvents_MtEmber_RubyPath_B5F @ 0x83B2E3C
+ .4byte gMapScripts_MtEmber_RubyPath_B5F @ 0x8163BAA
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 291
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SSAnne_Kitchen3:: @ 834FD58
+ .4byte gMapData_SSAnne_Kitchen3 @ 0x833F304
+ .4byte gMapEvents_SSAnne_Kitchen3 @ 0x83B2EE0
+ .4byte gMapScripts_SSAnne_Kitchen3 @ 0x8163C45
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 285
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_RubyPath_B1F:: @ 834FD74
+ .4byte gMapData_MtEmber_RubyPath_B1F @ 0x833F524
+ .4byte gMapEvents_MtEmber_RubyPath_B1F @ 0x83B2F64
+ .4byte gMapScripts_MtEmber_RubyPath_B1F @ 0x8163C46
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 286
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_RubyPath_B2F:: @ 834FD90
+ .4byte gMapData_MtEmber_RubyPath_B2F @ 0x833F6A8
+ .4byte gMapEvents_MtEmber_RubyPath_B2F @ 0x83B3030
+ .4byte gMapScripts_MtEmber_RubyPath_B2F @ 0x8163C47
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 287
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_RubyPath_B3F:: @ 834FDAC
+ .4byte gMapData_MtEmber_RubyPath_B3F @ 0x833FC60
+ .4byte gMapEvents_MtEmber_RubyPath_B3F @ 0x83B314C
+ .4byte gMapScripts_MtEmber_RubyPath_B3F @ 0x8163C48
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 288
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_RubyPath_B1F_Stairs:: @ 834FDC8
+ .4byte gMapData_MtEmber_RubyPath_B1F_Stairs @ 0x833FCD8
+ .4byte gMapEvents_MtEmber_RubyPath_B1F_Stairs @ 0x83B3188
+ .4byte gMapScripts_MtEmber_RubyPath_B1F_Stairs @ 0x8163C6F
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 289
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+MtEmber_RubyPath_B2F_Stairs:: @ 834FDE4
+ .4byte gMapData_MtEmber_RubyPath_B2F_Stairs @ 0x833FD5C
+ .4byte gMapEvents_MtEmber_RubyPath_B2F_Stairs @ 0x83B31DC
+ .4byte gMapScripts_MtEmber_RubyPath_B2F_Stairs @ 0x8163C70
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 290
+ .byte 0xaf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+ThreeIsland_BerryForest:: @ 834FE00
+ .4byte gMapData_ThreeIsland_BerryForest @ 0x833A7A8
+ .4byte gMapEvents_ThreeIsland_BerryForest @ 0x83B340C
+ .4byte gMapScripts_ThreeIsland_BerryForest @ 0x8163C71
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 270
+ .byte 0xb0, 0x00, 0x0b, 0x03, 0x01, 0x07, 0x00, 0x00
+
+FourIsland_IcefallCave_Entrance:: @ 834FE1C
+ .4byte gMapData_FourIsland_IcefallCave_Entrance @ 0x8340E38
+ .4byte gMapEvents_FourIsland_IcefallCave_Entrance @ 0x83B3438
+ .4byte gMapScripts_FourIsland_IcefallCave_Entrance @ 0x8163D3A
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 293
+ .byte 0xb1, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FourIsland_IcefallCave_1F:: @ 834FE38
+ .4byte gMapData_FourIsland_IcefallCave_1F @ 0x834117C
+ .4byte gMapEvents_FourIsland_IcefallCave_1F @ 0x83B34AC
+ .4byte gMapScripts_FourIsland_IcefallCave_1F @ 0x8163D44
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 294
+ .byte 0xb1, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SSAnne_CaptainsOffice2:: @ 834FE54
+ .4byte gMapData_SSAnne_CaptainsOffice2 @ 0x8341560
+ .4byte gMapEvents_SSAnne_CaptainsOffice2 @ 0x83B3508
+ .4byte gMapScripts_SSAnne_CaptainsOffice2 @ 0x8163D81
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 295
+ .byte 0xb1, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SSAnne_CaptainsOffice3:: @ 834FE70
+ .4byte gMapData_SSAnne_CaptainsOffice3 @ 0x8341A98
+ .4byte gMapEvents_SSAnne_CaptainsOffice3 @ 0x83B35B4
+ .4byte gMapScripts_SSAnne_CaptainsOffice3 @ 0x8163D82
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 296
+ .byte 0xb1, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SSAnne_CaptainsOffice4:: @ 834FE8C
+ .4byte gMapData_SSAnne_CaptainsOffice4 @ 0x83405A4
+ .4byte gMapEvents_SSAnne_CaptainsOffice4 @ 0x83B381C
+ .4byte gMapScripts_SSAnne_CaptainsOffice4 @ 0x8163F2E
+ .4byte NULL
+ .2byte BGM_FRLG_ROCKET_HIDEOUT
+ .2byte 292
+ .byte 0xb2, 0x00, 0x00, 0x08, 0x00, 0x05, 0x00, 0x03
+
+SSAnne_CaptainsOffice5:: @ 834FEA8
+ .4byte gMapData_SSAnne_CaptainsOffice5 @ 0x83436C4
+ .4byte gMapEvents_SSAnne_CaptainsOffice5 @ 0x83B3850
+ .4byte gMapScripts_SSAnne_CaptainsOffice5 @ 0x8164182
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 309
+ .byte 0xb4, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SixIsland_DottedHole_B1F:: @ 834FEC4
+ .4byte gMapData_SixIsland_DottedHole_B1F @ 0x8343808
+ .4byte gMapEvents_SixIsland_DottedHole_B1F @ 0x83B3898
+ .4byte gMapScripts_SixIsland_DottedHole_B1F @ 0x81641B0
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 310
+ .byte 0xb4, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SixIsland_DottedHole_B2F:: @ 834FEE0
+ .4byte gMapData_SixIsland_DottedHole_B2F @ 0x834394C
+ .4byte gMapEvents_SixIsland_DottedHole_B2F @ 0x83B38E0
+ .4byte gMapScripts_SixIsland_DottedHole_B2F @ 0x81641B1
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 311
+ .byte 0xb4, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SixIsland_DottedHole_B3F:: @ 834FEFC
+ .4byte gMapData_SixIsland_DottedHole_B3F @ 0x8343A90
+ .4byte gMapEvents_SixIsland_DottedHole_B3F @ 0x83B3928
+ .4byte gMapScripts_SixIsland_DottedHole_B3F @ 0x81641B2
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 312
+ .byte 0xb4, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SSAnne_CaptainsOffice9:: @ 834FF18
+ .4byte gMapData_SSAnne_CaptainsOffice9 @ 0x8343BD4
+ .4byte gMapEvents_SSAnne_CaptainsOffice9 @ 0x83B3970
+ .4byte gMapScripts_SSAnne_CaptainsOffice9 @ 0x81641B3
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 313
+ .byte 0xb4, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SixIsland_DottedHole_SapphireRoom:: @ 834FF34
+ .4byte gMapData_SixIsland_DottedHole_SapphireRoom @ 0x8343DD8
+ .4byte gMapEvents_SixIsland_DottedHole_SapphireRoom @ 0x83B39D0
+ .4byte gMapScripts_SixIsland_DottedHole_SapphireRoom @ 0x81641B4
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 314
+ .byte 0xb4, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SSAnne_1F_Room11:: @ 834FF50
+ .4byte gMapData_SSAnne_1F_Room11 @ 0x8345030
+ .4byte gMapEvents_SSAnne_1F_Room11 @ 0x83B3B34
+ .4byte gMapScripts_SSAnne_1F_Room11 @ 0x8164559
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 317
+ .byte 0xb6, 0x00, 0x00, 0x03, 0x01, 0x07, 0x00, 0x00
+
+SSAnne_1F_Room12:: @ 834FF6C
+ .4byte gMapData_SSAnne_1F_Room12 @ 0x8347A50
+ .4byte gMapEvents_SSAnne_1F_Room12 @ 0x83B3B50
+ .4byte gMapScripts_SSAnne_1F_Room12 @ 0x81646A4
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 340
+ .byte 0xb7, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+NavelRock_Exterior:: @ 834FF88
+ .4byte gMapData_NavelRock_Exterior @ 0x834873C
+ .4byte gMapEvents_NavelRock_Exterior @ 0x83B3B74
+ .4byte gMapScripts_NavelRock_Exterior @ 0x81646AE
+ .4byte NULL
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 343
+ .byte 0xae, 0x00, 0x00, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SevenIsland_TrainerTower_1F:: @ 834FFA4
+ .4byte gMapData_SevenIsland_TrainerTower_1F @ 0x8341FCC
+ .4byte gMapEvents_SevenIsland_TrainerTower_1F @ 0x83B3C40
+ .4byte gMapScripts_SevenIsland_TrainerTower_1F @ 0x81646B8
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 298
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_2F:: @ 834FFC0
+ .4byte gMapData_SevenIsland_TrainerTower_2F @ 0x8342254
+ .4byte gMapEvents_SevenIsland_TrainerTower_2F @ 0x83B3D14
+ .4byte gMapScripts_SevenIsland_TrainerTower_2F @ 0x81646E6
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 299
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_3F:: @ 834FFDC
+ .4byte gMapData_SevenIsland_TrainerTower_3F @ 0x83424DC
+ .4byte gMapEvents_SevenIsland_TrainerTower_3F @ 0x83B3DE8
+ .4byte gMapScripts_SevenIsland_TrainerTower_3F @ 0x8164714
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 300
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_4F:: @ 834FFF8
+ .4byte gMapData_SevenIsland_TrainerTower_4F @ 0x8342764
+ .4byte gMapEvents_SevenIsland_TrainerTower_4F @ 0x83B3EBC
+ .4byte gMapScripts_SevenIsland_TrainerTower_4F @ 0x8164742
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 301
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_5F:: @ 8350014
+ .4byte gMapData_SevenIsland_TrainerTower_5F @ 0x83429EC
+ .4byte gMapEvents_SevenIsland_TrainerTower_5F @ 0x83B3F90
+ .4byte gMapScripts_SevenIsland_TrainerTower_5F @ 0x8164770
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 302
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_6F:: @ 8350030
+ .4byte gMapData_SevenIsland_TrainerTower_6F @ 0x8342C74
+ .4byte gMapEvents_SevenIsland_TrainerTower_6F @ 0x83B4064
+ .4byte gMapScripts_SevenIsland_TrainerTower_6F @ 0x816479E
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 303
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_7F:: @ 835004C
+ .4byte gMapData_SevenIsland_TrainerTower_7F @ 0x8342EFC
+ .4byte gMapEvents_SevenIsland_TrainerTower_7F @ 0x83B4138
+ .4byte gMapScripts_SevenIsland_TrainerTower_7F @ 0x81647CC
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 304
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_8F:: @ 8350068
+ .4byte gMapData_SevenIsland_TrainerTower_8F @ 0x8343184
+ .4byte gMapEvents_SevenIsland_TrainerTower_8F @ 0x83B420C
+ .4byte gMapScripts_SevenIsland_TrainerTower_8F @ 0x81647FA
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 305
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_Roof:: @ 8350084
+ .4byte gMapData_SevenIsland_TrainerTower_Roof @ 0x83433E8
+ .4byte gMapEvents_SevenIsland_TrainerTower_Roof @ 0x83B4248
+ .4byte gMapScripts_SevenIsland_TrainerTower_Roof @ 0x8164828
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 306
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_Lobby:: @ 83500A0
+ .4byte gMapData_SevenIsland_TrainerTower_Lobby @ 0x8341D44
+ .4byte gMapEvents_SevenIsland_TrainerTower_Lobby @ 0x83B4308
+ .4byte gMapScripts_SevenIsland_TrainerTower_Lobby @ 0x8164839
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 297
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+SevenIsland_TrainerTower_Elevator:: @ 83500BC
+ .4byte gMapData_SevenIsland_TrainerTower_Elevator @ 0x8343454
+ .4byte gMapEvents_SevenIsland_TrainerTower_Elevator @ 0x83B4330
+ .4byte gMapScripts_SevenIsland_TrainerTower_Elevator @ 0x8164AF8
+ .4byte NULL
+ .2byte BGM_FRLG_TRAINER_TOWER
+ .2byte 307
+ .byte 0xb3, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00
+
+FiveIsland_LostCave_Entrance:: @ 83500D8
+ .4byte gMapData_FiveIsland_LostCave_Entrance @ 0x83454D8
+ .4byte gMapEvents_FiveIsland_LostCave_Entrance @ 0x83B4354
+ .4byte gMapScripts_FiveIsland_LostCave_Entrance @ 0x8164BEC
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 320
+ .byte 0xb5, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room1:: @ 83500F4
+ .4byte gMapData_FiveIsland_LostCave_Room1 @ 0x83455F0
+ .4byte gMapEvents_FiveIsland_LostCave_Room1 @ 0x83B43A8
+ .4byte gMapScripts_FiveIsland_LostCave_Room1 @ 0x8164BF6
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 321
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room2:: @ 8350110
+ .4byte gMapData_FiveIsland_LostCave_Room2 @ 0x8345708
+ .4byte gMapEvents_FiveIsland_LostCave_Room2 @ 0x83B43DC
+ .4byte gMapScripts_FiveIsland_LostCave_Room2 @ 0x8164C0E
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 322
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room3:: @ 835012C
+ .4byte gMapData_FiveIsland_LostCave_Room3 @ 0x8345820
+ .4byte gMapEvents_FiveIsland_LostCave_Room3 @ 0x83B4410
+ .4byte gMapScripts_FiveIsland_LostCave_Room3 @ 0x8164C0F
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 323
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room4:: @ 8350148
+ .4byte gMapData_FiveIsland_LostCave_Room4 @ 0x8345938
+ .4byte gMapEvents_FiveIsland_LostCave_Room4 @ 0x83B445C
+ .4byte gMapScripts_FiveIsland_LostCave_Room4 @ 0x8164C10
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 324
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room5:: @ 8350164
+ .4byte gMapData_FiveIsland_LostCave_Room5 @ 0x8345A50
+ .4byte gMapEvents_FiveIsland_LostCave_Room5 @ 0x83B4490
+ .4byte gMapScripts_FiveIsland_LostCave_Room5 @ 0x8164C28
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 325
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room6:: @ 8350180
+ .4byte gMapData_FiveIsland_LostCave_Room6 @ 0x8345B68
+ .4byte gMapEvents_FiveIsland_LostCave_Room6 @ 0x83B44C4
+ .4byte gMapScripts_FiveIsland_LostCave_Room6 @ 0x8164C29
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 326
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room7:: @ 835019C
+ .4byte gMapData_FiveIsland_LostCave_Room7 @ 0x8345C80
+ .4byte gMapEvents_FiveIsland_LostCave_Room7 @ 0x83B44F8
+ .4byte gMapScripts_FiveIsland_LostCave_Room7 @ 0x8164C2A
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 327
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room8:: @ 83501B8
+ .4byte gMapData_FiveIsland_LostCave_Room8 @ 0x8345D98
+ .4byte gMapEvents_FiveIsland_LostCave_Room8 @ 0x83B452C
+ .4byte gMapScripts_FiveIsland_LostCave_Room8 @ 0x8164C2B
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 328
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room9:: @ 83501D4
+ .4byte gMapData_FiveIsland_LostCave_Room9 @ 0x8345EB0
+ .4byte gMapEvents_FiveIsland_LostCave_Room9 @ 0x83B4560
+ .4byte gMapScripts_FiveIsland_LostCave_Room9 @ 0x8164C2C
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 329
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room10:: @ 83501F0
+ .4byte gMapData_FiveIsland_LostCave_Room10 @ 0x8345FC8
+ .4byte gMapEvents_FiveIsland_LostCave_Room10 @ 0x83B45AC
+ .4byte gMapScripts_FiveIsland_LostCave_Room10 @ 0x8164C2D
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 330
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room11:: @ 835020C
+ .4byte gMapData_FiveIsland_LostCave_Room11 @ 0x83460E0
+ .4byte gMapEvents_FiveIsland_LostCave_Room11 @ 0x83B45E0
+ .4byte gMapScripts_FiveIsland_LostCave_Room11 @ 0x8164CCB
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 331
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room12:: @ 8350228
+ .4byte gMapData_FiveIsland_LostCave_Room12 @ 0x83461F8
+ .4byte gMapEvents_FiveIsland_LostCave_Room12 @ 0x83B4614
+ .4byte gMapScripts_FiveIsland_LostCave_Room12 @ 0x8164CCC
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 332
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room13:: @ 8350244
+ .4byte gMapData_FiveIsland_LostCave_Room13 @ 0x8346310
+ .4byte gMapEvents_FiveIsland_LostCave_Room13 @ 0x83B4648
+ .4byte gMapScripts_FiveIsland_LostCave_Room13 @ 0x8164CCD
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 333
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+FiveIsland_LostCave_Room14:: @ 8350260
+ .4byte gMapData_FiveIsland_LostCave_Room14 @ 0x8346428
+ .4byte gMapEvents_FiveIsland_LostCave_Room14 @ 0x83B467C
+ .4byte gMapScripts_FiveIsland_LostCave_Room14 @ 0x8164CCE
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 334
+ .byte 0xb5, 0x00, 0x06, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SevenIsland_TanobyRuins_MoneanChamber:: @ 835027C
+ .4byte gMapData_SevenIsland_TanobyRuins_MoneanChamber @ 0x834675C
+ .4byte gMapEvents_SevenIsland_TanobyRuins_MoneanChamber @ 0x83B4698
+ .4byte gMapScripts_SevenIsland_TanobyRuins_MoneanChamber @ 0x8164CCF
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 335
+ .byte 0xbc, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x02
+
+SevenIsland_TanobyRuins_LiptooChamber:: @ 8350298
+ .4byte gMapData_SevenIsland_TanobyRuins_LiptooChamber @ 0x8346A90
+ .4byte gMapEvents_SevenIsland_TanobyRuins_LiptooChamber @ 0x83B46B4
+ .4byte gMapScripts_SevenIsland_TanobyRuins_LiptooChamber @ 0x8164CDE
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 336
+ .byte 0xbd, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x02
+
+SevenIsland_TanobyRuins_WeepthChamber:: @ 83502B4
+ .4byte gMapData_SevenIsland_TanobyRuins_WeepthChamber @ 0x8346DC4
+ .4byte gMapEvents_SevenIsland_TanobyRuins_WeepthChamber @ 0x83B46D0
+ .4byte gMapScripts_SevenIsland_TanobyRuins_WeepthChamber @ 0x8164CEA
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 337
+ .byte 0xbe, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x02
+
+SevenIsland_TanobyRuins_DilfordChamber:: @ 83502D0
+ .4byte gMapData_SevenIsland_TanobyRuins_DilfordChamber @ 0x83470F8
+ .4byte gMapEvents_SevenIsland_TanobyRuins_DilfordChamber @ 0x83B46EC
+ .4byte gMapScripts_SevenIsland_TanobyRuins_DilfordChamber @ 0x8164CF6
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 338
+ .byte 0xbf, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x02
+
+SevenIsland_TanobyRuins_ScufibChamber:: @ 83502EC
+ .4byte gMapData_SevenIsland_TanobyRuins_ScufibChamber @ 0x834742C
+ .4byte gMapEvents_SevenIsland_TanobyRuins_ScufibChamber @ 0x83B4708
+ .4byte gMapScripts_SevenIsland_TanobyRuins_ScufibChamber @ 0x8164D02
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 339
+ .byte 0xc0, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x02
+
+SevenIsland_TanobyRuins_RixyChamber:: @ 8350308
+ .4byte gMapData_SevenIsland_TanobyRuins_RixyChamber @ 0x8349DC8
+ .4byte gMapEvents_SevenIsland_TanobyRuins_RixyChamber @ 0x83B4724
+ .4byte gMapScripts_SevenIsland_TanobyRuins_RixyChamber @ 0x8164D0E
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 362
+ .byte 0xc1, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x02
+
+SevenIsland_TanobyRuins_ViapoisChamber:: @ 8350324
+ .4byte gMapData_SevenIsland_TanobyRuins_ViapoisChamber @ 0x834A0FC
+ .4byte gMapEvents_SevenIsland_TanobyRuins_ViapoisChamber @ 0x83B4740
+ .4byte gMapScripts_SevenIsland_TanobyRuins_ViapoisChamber @ 0x8164D1A
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 363
+ .byte 0xc2, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x02
+
+ThreeIsland_DunsparceTunnel:: @ 8350340
+ .4byte gMapData_ThreeIsland_DunsparceTunnel @ 0x83451F8
+ .4byte gMapEvents_ThreeIsland_DunsparceTunnel @ 0x83B4788
+ .4byte gMapScripts_ThreeIsland_DunsparceTunnel @ 0x8164D26
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 318
+ .byte 0xb9, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00
+
+SevenIsland_SeavaultCanyon_TanobyKey:: @ 835035C
+ .4byte gMapData_SevenIsland_SeavaultCanyon_TanobyKey @ 0x8347C54
+ .4byte gMapEvents_SevenIsland_SeavaultCanyon_TanobyKey @ 0x83B48BC
+ .4byte gMapScripts_SevenIsland_SeavaultCanyon_TanobyKey @ 0x8164DCC
+ .4byte NULL
+ .2byte BGM_FRLG_TANOBY_RUINS
+ .2byte 341
+ .byte 0xba, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x02
+
+NavelRock_1F:: @ 8350378
+ .4byte gMapData_NavelRock_1F @ 0x8348AD4
+ .4byte gMapEvents_NavelRock_1F @ 0x83B48E0
+ .4byte gMapScripts_NavelRock_1F @ 0x8164F9E
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 344
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_Summit:: @ 8350394
+ .4byte gMapData_NavelRock_Summit @ 0x8348EB0
+ .4byte gMapEvents_NavelRock_Summit @ 0x83B4930
+ .4byte gMapScripts_NavelRock_Summit @ 0x8164F9F
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 345
+ .byte 0xae, 0x00, 0x0b, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_Base:: @ 83503B0
+ .4byte gMapData_NavelRock_Base @ 0x834929C
+ .4byte gMapEvents_NavelRock_Base @ 0x83B4964
+ .4byte gMapScripts_NavelRock_Base @ 0x81650E7
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 346
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_SummitPath_2F:: @ 83503CC
+ .4byte gMapData_NavelRock_SummitPath_2F @ 0x8349324
+ .4byte gMapEvents_NavelRock_SummitPath_2F @ 0x83B4988
+ .4byte gMapScripts_NavelRock_SummitPath_2F @ 0x81651F2
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 347
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_SummitPath_3F:: @ 83503E8
+ .4byte gMapData_NavelRock_SummitPath_3F @ 0x83493AC
+ .4byte gMapEvents_NavelRock_SummitPath_3F @ 0x83B49AC
+ .4byte gMapScripts_NavelRock_SummitPath_3F @ 0x81651F3
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 348
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_SummitPath_4F:: @ 8350404
+ .4byte gMapData_NavelRock_SummitPath_4F @ 0x8349434
+ .4byte gMapEvents_NavelRock_SummitPath_4F @ 0x83B49D0
+ .4byte gMapScripts_NavelRock_SummitPath_4F @ 0x81651F4
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 349
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_SummitPath_5F:: @ 8350420
+ .4byte gMapData_NavelRock_SummitPath_5F @ 0x83494BC
+ .4byte gMapEvents_NavelRock_SummitPath_5F @ 0x83B49F4
+ .4byte gMapScripts_NavelRock_SummitPath_5F @ 0x81651F5
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 350
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B1F:: @ 835043C
+ .4byte gMapData_NavelRock_BasePath_B1F @ 0x8349544
+ .4byte gMapEvents_NavelRock_BasePath_B1F @ 0x83B4A18
+ .4byte gMapScripts_NavelRock_BasePath_B1F @ 0x81651F6
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 351
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B2F:: @ 8350458
+ .4byte gMapData_NavelRock_BasePath_B2F @ 0x83495CC
+ .4byte gMapEvents_NavelRock_BasePath_B2F @ 0x83B4A3C
+ .4byte gMapScripts_NavelRock_BasePath_B2F @ 0x81651F7
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 352
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B3F:: @ 8350474
+ .4byte gMapData_NavelRock_BasePath_B3F @ 0x8349654
+ .4byte gMapEvents_NavelRock_BasePath_B3F @ 0x83B4A60
+ .4byte gMapScripts_NavelRock_BasePath_B3F @ 0x81651F8
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 353
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B4F:: @ 8350490
+ .4byte gMapData_NavelRock_BasePath_B4F @ 0x83496DC
+ .4byte gMapEvents_NavelRock_BasePath_B4F @ 0x83B4A84
+ .4byte gMapScripts_NavelRock_BasePath_B4F @ 0x81651F9
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 354
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B5F:: @ 83504AC
+ .4byte gMapData_NavelRock_BasePath_B5F @ 0x8349764
+ .4byte gMapEvents_NavelRock_BasePath_B5F @ 0x83B4AA8
+ .4byte gMapScripts_NavelRock_BasePath_B5F @ 0x81651FA
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 355
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B6F:: @ 83504C8
+ .4byte gMapData_NavelRock_BasePath_B6F @ 0x83497EC
+ .4byte gMapEvents_NavelRock_BasePath_B6F @ 0x83B4ACC
+ .4byte gMapScripts_NavelRock_BasePath_B6F @ 0x81651FB
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 356
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B7F:: @ 83504E4
+ .4byte gMapData_NavelRock_BasePath_B7F @ 0x8349874
+ .4byte gMapEvents_NavelRock_BasePath_B7F @ 0x83B4AF0
+ .4byte gMapScripts_NavelRock_BasePath_B7F @ 0x81651FC
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 357
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B8F:: @ 8350500
+ .4byte gMapData_NavelRock_BasePath_B8F @ 0x83498FC
+ .4byte gMapEvents_NavelRock_BasePath_B8F @ 0x83B4B14
+ .4byte gMapScripts_NavelRock_BasePath_B8F @ 0x81651FD
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 358
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B9F:: @ 835051C
+ .4byte gMapData_NavelRock_BasePath_B9F @ 0x8349984
+ .4byte gMapEvents_NavelRock_BasePath_B9F @ 0x83B4B38
+ .4byte gMapScripts_NavelRock_BasePath_B9F @ 0x81651FE
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 359
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B10F:: @ 8350538
+ .4byte gMapData_NavelRock_BasePath_B10F @ 0x8349A0C
+ .4byte gMapEvents_NavelRock_BasePath_B10F @ 0x83B4B5C
+ .4byte gMapScripts_NavelRock_BasePath_B10F @ 0x81651FF
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 360
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_BasePath_B11F:: @ 8350554
+ .4byte gMapData_NavelRock_BasePath_B11F @ 0x8349A94
+ .4byte gMapEvents_NavelRock_BasePath_B11F @ 0x83B4B80
+ .4byte gMapScripts_NavelRock_BasePath_B11F @ 0x8165200
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 361
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_B1F:: @ 8350570
+ .4byte gMapData_NavelRock_B1F @ 0x834A210
+ .4byte gMapEvents_NavelRock_B1F @ 0x83B4BA4
+ .4byte gMapScripts_NavelRock_B1F @ 0x8165201
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 364
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+NavelRock_Fork:: @ 835058C
+ .4byte gMapData_NavelRock_Fork @ 0x834B9A4
+ .4byte gMapEvents_NavelRock_Fork @ 0x83B4BD0
+ .4byte gMapScripts_NavelRock_Fork @ 0x8165202
+ .4byte NULL
+ .2byte BGM_FRLG_MT_EMBER
+ .2byte 365
+ .byte 0xae, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+BirthIsland_Exterior:: @ 83505A8
+ .4byte gMapData_BirthIsland_Exterior @ 0x8348380
+ .4byte gMapEvents_BirthIsland_Exterior @ 0x83B4C1C
+ .4byte gMapScripts_BirthIsland_Exterior @ 0x8165203
+ .4byte NULL
+ .2byte 0xFFFF
+ .2byte 342
+ .byte 0xbb, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00
+
+OneIsland_KindleRoad_EmberSpa:: @ 83505C4
+ .4byte gMapData_OneIsland_KindleRoad_EmberSpa @ 0x834EB70
+ .4byte gMapEvents_OneIsland_KindleRoad_EmberSpa @ 0x83B4CD8
+ .4byte gMapScripts_OneIsland_KindleRoad_EmberSpa @ 0x816535B
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 383
+ .byte 0xc3, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00
+
+BirthIsland_Harbor:: @ 83505E0
+ .4byte gMapData_BirthIsland_Harbor @ 0x8343FB8
+ .4byte gMapEvents_BirthIsland_Harbor @ 0x83B4D24
+ .4byte gMapScripts_BirthIsland_Harbor @ 0x81653E6
+ .4byte NULL
+ .2byte 0xFFFF
+ .2byte 315
+ .byte 0xbb, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+NavelRock_Harbor:: @ 83505FC
+ .4byte gMapData_NavelRock_Harbor @ 0x8343FB8
+ .4byte gMapEvents_NavelRock_Harbor @ 0x83B4D70
+ .4byte gMapScripts_NavelRock_Harbor @ 0x8165420
+ .4byte NULL
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 315
+ .byte 0xae, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PalletTown:: @ 8350618
+ .4byte gMapData_PalletTown @ 0x82DD4C0
+ .4byte gMapEvents_PalletTown @ 0x83B4E50
+ .4byte gMapScripts_PalletTown @ 0x816545A
+ .4byte gMapConnections_PalletTown @ 0x835276C
+ .2byte BGM_FRLG_PALLET_TOWN
+ .2byte 78
+ .byte 0x58, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+ViridianCity:: @ 8350634
+ .4byte gMapData_ViridianCity @ 0x82DE3E4
+ .4byte gMapEvents_ViridianCity @ 0x83B4FE0
+ .4byte gMapScripts_ViridianCity @ 0x81658D3
+ .4byte gMapConnections_ViridianCity @ 0x8352798
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 79
+ .byte 0x59, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+PewterCity:: @ 8350650
+ .4byte gMapData_PewterCity @ 0x82DF308
+ .4byte gMapEvents_PewterCity @ 0x83B518C
+ .4byte gMapScripts_PewterCity @ 0x8165B8E
+ .4byte gMapConnections_PewterCity @ 0x83527B8
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 80
+ .byte 0x5a, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+CeruleanCity:: @ 835066C
+ .4byte gMapData_CeruleanCity @ 0x82E022C
+ .4byte gMapEvents_CeruleanCity @ 0x83B53E0
+ .4byte gMapScripts_CeruleanCity @ 0x8166471
+ .4byte gMapConnections_CeruleanCity @ 0x83527F0
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 81
+ .byte 0x5b, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+LavenderTown:: @ 8350688
+ .4byte gMapData_LavenderTown @ 0x82E0610
+ .4byte gMapEvents_LavenderTown @ 0x83B549C
+ .4byte gMapScripts_LavenderTown @ 0x816686B
+ .4byte gMapConnections_LavenderTown @ 0x835281C
+ .2byte BGM_FRLG_LAVENDER_TOWN
+ .2byte 82
+ .byte 0x5c, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+VermilionCity:: @ 83506A4
+ .4byte gMapData_VermilionCity @ 0x82E1534
+ .4byte gMapEvents_VermilionCity @ 0x83B5648
+ .4byte gMapScripts_VermilionCity @ 0x81668DC
+ .4byte gMapConnections_VermilionCity @ 0x835283C
+ .2byte BGM_FRLG_VERMILION_CITY
+ .2byte 83
+ .byte 0x5d, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+CeladonCity:: @ 83506C0
+ .4byte gMapData_CeladonCity @ 0x82E2818
+ .4byte gMapEvents_CeladonCity @ 0x83B5898
+ .4byte gMapScripts_CeladonCity @ 0x8166C8F
+ .4byte gMapConnections_CeladonCity @ 0x835285C
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 84
+ .byte 0x5e, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+FuchsiaCity:: @ 83506DC
+ .4byte gMapData_FuchsiaCity @ 0x82E373C
+ .4byte gMapEvents_FuchsiaCity @ 0x83B5B14
+ .4byte gMapScripts_FuchsiaCity @ 0x8166D75
+ .4byte gMapConnections_FuchsiaCity @ 0x8352888
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 85
+ .byte 0x5f, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+CinnabarIsland:: @ 83506F8
+ .4byte gMapData_CinnabarIsland @ 0x82E3B20
+ .4byte gMapEvents_CinnabarIsland @ 0x83B5BF0
+ .4byte gMapScripts_CinnabarIsland @ 0x8166ED6
+ .4byte gMapConnections_CinnabarIsland @ 0x83528A8
+ .2byte BGM_FRLG_CINNABAR_ISLAND
+ .2byte 86
+ .byte 0x60, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+IndigoPlateau_Exterior:: @ 8350714
+ .4byte gMapData_IndigoPlateau_Exterior @ 0x82E3F04
+ .4byte gMapEvents_IndigoPlateau_Exterior @ 0x83B5C3C
+ .4byte gMapScripts_IndigoPlateau_Exterior @ 0x816723B
+ .4byte gMapConnections_IndigoPlateau_Exterior @ 0x83528BC
+ .2byte BGM_FRLG_INDIGO_PLATEAU
+ .2byte 87
+ .byte 0x61, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+SaffronCity_Duplicate:: @ 8350730
+ .4byte gMapData_SaffronCity_Duplicate @ 0x831E8D4
+ .4byte gMapEvents_SaffronCity_Duplicate @ 0x83B5E9C
+ .4byte gMapScripts_SaffronCity_Duplicate @ 0x816735F
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 207
+ .byte 0x62, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+SaffronCity:: @ 835074C
+ .4byte gMapData_SaffronCity @ 0x82E4E28
+ .4byte gMapEvents_SaffronCity @ 0x83B5EB0
+ .4byte gMapScripts_SaffronCity @ 0x8167483
+ .4byte gMapConnections_SaffronCity @ 0x835292C
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 88
+ .byte 0x62, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+OneIsland:: @ 8350768
+ .4byte gMapData_OneIsland @ 0x8321714
+ .4byte gMapEvents_OneIsland @ 0x83B5F44
+ .4byte gMapScripts_OneIsland @ 0x8167484
+ .4byte gMapConnections_OneIsland @ 0x835294C
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 230
+ .byte 0x8f, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+TwoIsland:: @ 8350784
+ .4byte gMapData_TwoIsland @ 0x8321EB8
+ .4byte gMapEvents_TwoIsland @ 0x83B6074
+ .4byte gMapScripts_TwoIsland @ 0x8167564
+ .4byte gMapConnections_TwoIsland @ 0x8352960
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 231
+ .byte 0x90, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+ThreeIsland:: @ 83507A0
+ .4byte gMapData_ThreeIsland @ 0x832265C
+ .4byte gMapEvents_ThreeIsland @ 0x83B62C8
+ .4byte gMapScripts_ThreeIsland @ 0x81677AD
+ .4byte gMapConnections_ThreeIsland @ 0x8352980
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 232
+ .byte 0x91, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+FourIsland:: @ 83507BC
+ .4byte gMapData_FourIsland @ 0x8323580
+ .4byte gMapEvents_FourIsland @ 0x83B646C
+ .4byte gMapScripts_FourIsland @ 0x8167CAE
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 233
+ .byte 0x92, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+FiveIsland:: @ 83507D8
+ .4byte gMapData_FiveIsland @ 0x8323964
+ .4byte gMapEvents_FiveIsland @ 0x83B64F4
+ .4byte gMapScripts_FiveIsland @ 0x8167E8E
+ .4byte gMapConnections_FiveIsland @ 0x83529A0
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 234
+ .byte 0x93, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+SevenIsland:: @ 83507F4
+ .4byte gMapData_SevenIsland @ 0x8323D48
+ .4byte gMapEvents_SevenIsland @ 0x83B657C
+ .4byte gMapScripts_SevenIsland @ 0x8167EB3
+ .4byte gMapConnections_SevenIsland @ 0x83529C0
+ .2byte BGM_FRLG_ISLAND_SIX
+ .2byte 235
+ .byte 0x94, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+SixIsland:: @ 8350810
+ .4byte gMapData_SixIsland @ 0x832430C
+ .4byte gMapEvents_SixIsland @ 0x83B65F8
+ .4byte gMapScripts_SixIsland @ 0x8167ED8
+ .4byte gMapConnections_SixIsland @ 0x83529D4
+ .2byte BGM_FRLG_ISLAND_SIX
+ .2byte 236
+ .byte 0x95, 0x00, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00
+
+Route1:: @ 835082C
+ .4byte gMapData_Route1 @ 0x82E55CC
+ .4byte gMapEvents_Route1 @ 0x83B6648
+ .4byte gMapScripts_Route1 @ 0x8167EFD
+ .4byte gMapConnections_Route1 @ 0x83529F4
+ .2byte BGM_FRLG_ROUTE_1
+ .2byte 89
+ .byte 0x65, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route2:: @ 8350848
+ .4byte gMapData_Route2 @ 0x82E64F0
+ .4byte gMapEvents_Route2 @ 0x83B676C
+ .4byte gMapScripts_Route2 @ 0x8167F64
+ .4byte gMapConnections_Route2 @ 0x8352A14
+ .2byte BGM_FRLG_ROUTE_1
+ .2byte 90
+ .byte 0x66, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route3:: @ 8350864
+ .4byte gMapData_Route3 @ 0x82E7234
+ .4byte gMapEvents_Route3 @ 0x83B6870
+ .4byte gMapScripts_Route3 @ 0x8167F77
+ .4byte gMapConnections_Route3 @ 0x8352A34
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 91
+ .byte 0x67, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route4:: @ 8350880
+ .4byte gMapData_Route4 @ 0x82E8338
+ .4byte gMapEvents_Route4 @ 0x83B6980
+ .4byte gMapScripts_Route4 @ 0x8167F8A
+ .4byte gMapConnections_Route4 @ 0x8352A54
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 92
+ .byte 0x68, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route5:: @ 835089C
+ .4byte gMapData_Route5 @ 0x82E925C
+ .4byte gMapEvents_Route5 @ 0x83B69C0
+ .4byte gMapScripts_Route5 @ 0x8167FA7
+ .4byte gMapConnections_Route5 @ 0x8352A74
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 93
+ .byte 0x69, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route6:: @ 83508B8
+ .4byte gMapData_Route6 @ 0x82E9A00
+ .4byte gMapEvents_Route6 @ 0x83B6AA0
+ .4byte gMapScripts_Route6 @ 0x8167FB1
+ .4byte gMapConnections_Route6 @ 0x8352A94
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 94
+ .byte 0x6a, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route7:: @ 83508D4
+ .4byte gMapData_Route7 @ 0x82E9DE4
+ .4byte gMapEvents_Route7 @ 0x83B6AF4
+ .4byte gMapScripts_Route7 @ 0x8167FBB
+ .4byte gMapConnections_Route7 @ 0x8352AB4
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 95
+ .byte 0x6b, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route8:: @ 83508F0
+ .4byte gMapData_Route8 @ 0x82EA948
+ .4byte gMapEvents_Route8 @ 0x83B6CB0
+ .4byte gMapScripts_Route8 @ 0x8167FC5
+ .4byte gMapConnections_Route8 @ 0x8352AD4
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 96
+ .byte 0x6c, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route9:: @ 835090C
+ .4byte gMapData_Route9 @ 0x82EB4AC
+ .4byte gMapEvents_Route9 @ 0x83B6E14
+ .4byte gMapScripts_Route9 @ 0x8167FCF
+ .4byte gMapConnections_Route9 @ 0x8352AF4
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 97
+ .byte 0x6d, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route10:: @ 8350928
+ .4byte gMapData_Route10 @ 0x82EC3D0
+ .4byte gMapEvents_Route10 @ 0x83B6FA0
+ .4byte gMapScripts_Route10 @ 0x8167FD9
+ .4byte gMapConnections_Route10 @ 0x8352B14
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 98
+ .byte 0x6e, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route11:: @ 8350944
+ .4byte gMapData_Route11 @ 0x82ECF34
+ .4byte gMapEvents_Route11 @ 0x83B711C
+ .4byte gMapScripts_Route11 @ 0x8167FF6
+ .4byte gMapConnections_Route11 @ 0x8352B34
+ .2byte BGM_FRLG_ROUTE_11
+ .2byte 99
+ .byte 0x6f, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route12:: @ 8350960
+ .4byte gMapData_Route12 @ 0x82EE5D8
+ .4byte gMapEvents_Route12 @ 0x83B72DC
+ .4byte gMapScripts_Route12 @ 0x8168000
+ .4byte gMapConnections_Route12 @ 0x8352B60
+ .2byte BGM_FRLG_ROUTE_11
+ .2byte 100
+ .byte 0x70, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route13:: @ 835097C
+ .4byte gMapData_Route13 @ 0x82EF13C
+ .4byte gMapEvents_Route13 @ 0x83B7428
+ .4byte gMapScripts_Route13 @ 0x81680B5
+ .4byte gMapConnections_Route13 @ 0x8352B80
+ .2byte BGM_FRLG_ROUTE_11
+ .2byte 101
+ .byte 0x71, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route14:: @ 8350998
+ .4byte gMapData_Route14 @ 0x82EFCA0
+ .4byte gMapEvents_Route14 @ 0x83B75C8
+ .4byte gMapScripts_Route14 @ 0x81680D1
+ .4byte gMapConnections_Route14 @ 0x8352BA0
+ .2byte BGM_FRLG_ROUTE_11
+ .2byte 102
+ .byte 0x72, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route15:: @ 83509B4
+ .4byte gMapData_Route15 @ 0x82F0804
+ .4byte gMapEvents_Route15 @ 0x83B7748
+ .4byte gMapScripts_Route15 @ 0x81680DB
+ .4byte gMapConnections_Route15 @ 0x8352BC0
+ .2byte BGM_FRLG_ROUTE_11
+ .2byte 103
+ .byte 0x73, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route16:: @ 83509D0
+ .4byte gMapData_Route16 @ 0x82F0FA8
+ .4byte gMapEvents_Route16 @ 0x83B7898
+ .4byte gMapScripts_Route16 @ 0x81680E5
+ .4byte gMapConnections_Route16 @ 0x8352BE0
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 104
+ .byte 0x74, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route17:: @ 83509EC
+ .4byte gMapData_Route17 @ 0x82F2DCC
+ .4byte gMapEvents_Route17 @ 0x83B7A20
+ .4byte gMapScripts_Route17 @ 0x81681BF
+ .4byte gMapConnections_Route17 @ 0x8352C00
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 105
+ .byte 0x75, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route18:: @ 8350A08
+ .4byte gMapData_Route18 @ 0x82F3750
+ .4byte gMapEvents_Route18 @ 0x83B7AA4
+ .4byte gMapScripts_Route18 @ 0x81681F6
+ .4byte gMapConnections_Route18 @ 0x8352C20
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 106
+ .byte 0x76, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route19:: @ 8350A24
+ .4byte gMapData_Route19 @ 0x82F42B4
+ .4byte gMapEvents_Route19 @ 0x83B7BE4
+ .4byte gMapScripts_Route19 @ 0x8168231
+ .4byte gMapConnections_Route19 @ 0x8352C40
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 107
+ .byte 0x77, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route20:: @ 8350A40
+ .4byte gMapData_Route20 @ 0x82F5598
+ .4byte gMapEvents_Route20 @ 0x83B7D34
+ .4byte gMapScripts_Route20 @ 0x816823B
+ .4byte gMapConnections_Route20 @ 0x8352C60
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 108
+ .byte 0x78, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route21_North:: @ 8350A5C
+ .4byte gMapData_Route21_North @ 0x82F5F1C
+ .4byte gMapEvents_Route21_North @ 0x83B7DE4
+ .4byte gMapScripts_Route21_North @ 0x8168289
+ .4byte gMapConnections_Route21_North @ 0x8352C80
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 109
+ .byte 0x79, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route21_South:: @ 8350A78
+ .4byte gMapData_Route21_South @ 0x83206C0
+ .4byte gMapEvents_Route21_South @ 0x83B7E70
+ .4byte gMapScripts_Route21_South @ 0x816828A
+ .4byte gMapConnections_Route21_South @ 0x8352CA0
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 219
+ .byte 0x79, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route22:: @ 8350A94
+ .4byte gMapData_Route22 @ 0x82F6840
+ .4byte gMapEvents_Route22 @ 0x83B7F18
+ .4byte gMapScripts_Route22 @ 0x816828B
+ .4byte gMapConnections_Route22 @ 0x8352CC0
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 110
+ .byte 0x7a, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route23:: @ 8350AB0
+ .4byte gMapData_Route23 @ 0x82F8664
+ .4byte gMapEvents_Route23 @ 0x83B8300
+ .4byte gMapScripts_Route23 @ 0x81684EB
+ .4byte gMapConnections_Route23 @ 0x8352CE0
+ .2byte BGM_FRLG_INDIGO_PLATEAU
+ .2byte 111
+ .byte 0x7b, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route24:: @ 8350ACC
+ .4byte gMapData_Route24 @ 0x82F8E08
+ .4byte gMapEvents_Route24 @ 0x83B8400
+ .4byte gMapScripts_Route24 @ 0x816861F
+ .4byte gMapConnections_Route24 @ 0x8352D00
+ .2byte BGM_FRLG_ROUTE_24
+ .2byte 112
+ .byte 0x7c, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+Route25:: @ 8350AE8
+ .4byte gMapData_Route25 @ 0x82F996C
+ .4byte gMapEvents_Route25 @ 0x83B8590
+ .4byte gMapScripts_Route25 @ 0x8168745
+ .4byte gMapConnections_Route25 @ 0x8352D14
+ .2byte BGM_FRLG_ROUTE_24
+ .2byte 113
+ .byte 0x7d, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+OneIsland_KindleRoad:: @ 8350B04
+ .4byte gMapData_OneIsland_KindleRoad @ 0x8325D70
+ .4byte gMapEvents_OneIsland_KindleRoad @ 0x83B888C
+ .4byte gMapScripts_OneIsland_KindleRoad @ 0x8168758
+ .4byte gMapConnections_OneIsland_KindleRoad @ 0x8352D28
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 237
+ .byte 0x96, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+OneIsland_TreasureBeach:: @ 8350B20
+ .4byte gMapData_OneIsland_TreasureBeach @ 0x8326514
+ .4byte gMapEvents_OneIsland_TreasureBeach @ 0x83B8930
+ .4byte gMapScripts_OneIsland_TreasureBeach @ 0x816876B
+ .4byte gMapConnections_OneIsland_TreasureBeach @ 0x8352D3C
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 238
+ .byte 0x97, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+TwoIsland_CapeBrink:: @ 8350B3C
+ .4byte gMapData_TwoIsland_CapeBrink @ 0x8326CB8
+ .4byte gMapEvents_TwoIsland_CapeBrink @ 0x83B8964
+ .4byte gMapScripts_TwoIsland_CapeBrink @ 0x8168775
+ .4byte gMapConnections_TwoIsland_CapeBrink @ 0x8352D50
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 239
+ .byte 0x98, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+ThreeIsland_BondBridge:: @ 8350B58
+ .4byte gMapData_ThreeIsland_BondBridge @ 0x8327BDC
+ .4byte gMapEvents_ThreeIsland_BondBridge @ 0x83B8A9C
+ .4byte gMapScripts_ThreeIsland_BondBridge @ 0x8168776
+ .4byte gMapConnections_ThreeIsland_BondBridge @ 0x8352D64
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 240
+ .byte 0x99, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+ThreeIsland_Port:: @ 8350B74
+ .4byte gMapData_ThreeIsland_Port @ 0x8328380
+ .4byte gMapEvents_ThreeIsland_Port @ 0x83B8B10
+ .4byte gMapScripts_ThreeIsland_Port @ 0x8168789
+ .4byte gMapConnections_ThreeIsland_Port @ 0x8352D78
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 241
+ .byte 0x9a, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+UnknownMap_03_50:: @ 8350B90
+ .4byte gMapData_UnknownMap_03_50 @ 0x83283A8
+ .4byte gMapEvents_UnknownMap_03_50 @ 0x83B8B24
+ .4byte gMapScripts_UnknownMap_03_50 @ 0x81687E0
+ .4byte gMapConnections_UnknownMap_03_50 @ 0x8352D8C
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 242
+ .byte 0x9b, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+UnknownMap_03_51:: @ 8350BAC
+ .4byte gMapData_UnknownMap_03_51 @ 0x83283D0
+ .4byte gMapEvents_UnknownMap_03_51 @ 0x83B8B38
+ .4byte gMapScripts_UnknownMap_03_51 @ 0x81687E1
+ .4byte gMapConnections_UnknownMap_03_51 @ 0x8352DA0
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 243
+ .byte 0x9c, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+UnknownMap_03_52:: @ 8350BC8
+ .4byte gMapData_UnknownMap_03_52 @ 0x8329114
+ .4byte gMapEvents_UnknownMap_03_52 @ 0x83B8B4C
+ .4byte gMapScripts_UnknownMap_03_52 @ 0x81687E2
+ .4byte NULL
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 244
+ .byte 0x9d, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+UnknownMap_03_53:: @ 8350BE4
+ .4byte gMapData_UnknownMap_03_53 @ 0x8329C78
+ .4byte gMapEvents_UnknownMap_03_53 @ 0x83B8B60
+ .4byte gMapScripts_UnknownMap_03_53 @ 0x81687E3
+ .4byte NULL
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 245
+ .byte 0x9e, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+FiveIsland_ResortGorgeous:: @ 8350C00
+ .4byte gMapData_FiveIsland_ResortGorgeous @ 0x832A7DC
+ .4byte gMapEvents_FiveIsland_ResortGorgeous @ 0x83B8C80
+ .4byte gMapScripts_FiveIsland_ResortGorgeous @ 0x81687E4
+ .4byte gMapConnections_FiveIsland_ResortGorgeous @ 0x8352DB4
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 246
+ .byte 0x9f, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+FiveIsland_WaterLabyrinth:: @ 8350C1C
+ .4byte gMapData_FiveIsland_WaterLabyrinth @ 0x832B340
+ .4byte gMapEvents_FiveIsland_WaterLabyrinth @ 0x83B8CC4
+ .4byte gMapScripts_FiveIsland_WaterLabyrinth @ 0x816884D
+ .4byte gMapConnections_FiveIsland_WaterLabyrinth @ 0x8352DD4
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 247
+ .byte 0xa0, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+FiveIsland_Meadow:: @ 8350C38
+ .4byte gMapData_FiveIsland_Meadow @ 0x832BAE4
+ .4byte gMapEvents_FiveIsland_Meadow @ 0x83B8D94
+ .4byte gMapScripts_FiveIsland_Meadow @ 0x8168932
+ .4byte gMapConnections_FiveIsland_Meadow @ 0x8352DF4
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 248
+ .byte 0xa1, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+FiveIsland_MemorialPillar:: @ 8350C54
+ .4byte gMapData_FiveIsland_MemorialPillar @ 0x832C648
+ .4byte gMapEvents_FiveIsland_MemorialPillar @ 0x83B8E5C
+ .4byte gMapScripts_FiveIsland_MemorialPillar @ 0x81689D2
+ .4byte gMapConnections_FiveIsland_MemorialPillar @ 0x8352E08
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 249
+ .byte 0xa2, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SixIsland_OutcastIsland:: @ 8350C70
+ .4byte gMapData_SixIsland_OutcastIsland @ 0x832D56C
+ .4byte gMapEvents_SixIsland_OutcastIsland @ 0x83B8F38
+ .4byte gMapScripts_SixIsland_OutcastIsland @ 0x8168B15
+ .4byte gMapConnections_SixIsland_OutcastIsland @ 0x8352E1C
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 250
+ .byte 0xa3, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SixIsland_GreenPath:: @ 8350C8C
+ .4byte gMapData_SixIsland_GreenPath @ 0x832E0D0
+ .4byte gMapEvents_SixIsland_GreenPath @ 0x83B8FA8
+ .4byte gMapScripts_SixIsland_GreenPath @ 0x8168B2D
+ .4byte gMapConnections_SixIsland_GreenPath @ 0x8352E3C
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 251
+ .byte 0xa4, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SixIsland_WaterPath:: @ 8350CA8
+ .4byte gMapData_SixIsland_WaterPath @ 0x832F3B4
+ .4byte gMapEvents_SixIsland_WaterPath @ 0x83B90E0
+ .4byte gMapScripts_SixIsland_WaterPath @ 0x8168B40
+ .4byte gMapConnections_SixIsland_WaterPath @ 0x8352E68
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 252
+ .byte 0xa5, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SixIsland_RuinValley:: @ 8350CC4
+ .4byte gMapData_SixIsland_RuinValley @ 0x83302D8
+ .4byte gMapEvents_SixIsland_RuinValley @ 0x83B92A0
+ .4byte gMapScripts_SixIsland_RuinValley @ 0x8168B53
+ .4byte gMapConnections_SixIsland_RuinValley @ 0x8352E7C
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 253
+ .byte 0xa6, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SevenIsland_TrainerTower:: @ 8350CE0
+ .4byte gMapData_SevenIsland_TrainerTower @ 0x833287C
+ .4byte gMapEvents_SevenIsland_TrainerTower @ 0x83B9328
+ .4byte gMapScripts_SevenIsland_TrainerTower @ 0x8168BD5
+ .4byte gMapConnections_SevenIsland_TrainerTower @ 0x8352E90
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 254
+ .byte 0xa7, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SevenIsland_SevaultCanyon_Entrance:: @ 8350CFC
+ .4byte gMapData_SevenIsland_SevaultCanyon_Entrance @ 0x8333020
+ .4byte gMapEvents_SevenIsland_SevaultCanyon_Entrance @ 0x83B93FC
+ .4byte gMapScripts_SevenIsland_SevaultCanyon_Entrance @ 0x8168BF3
+ .4byte gMapConnections_SevenIsland_SevaultCanyon_Entrance @ 0x8352EB0
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 255
+ .byte 0xa8, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SevenIsland_SevaultCanyon:: @ 8350D18
+ .4byte gMapData_SevenIsland_SevaultCanyon @ 0x8333F44
+ .4byte gMapEvents_SevenIsland_SevaultCanyon @ 0x83B9618
+ .4byte gMapScripts_SevenIsland_SevaultCanyon @ 0x8168BFD
+ .4byte gMapConnections_SevenIsland_SevaultCanyon @ 0x8352ED0
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 256
+ .byte 0xa9, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+SevenIsland_TanobyRuins:: @ 8350D34
+ .4byte gMapData_SevenIsland_TanobyRuins @ 0x83355E8
+ .4byte gMapEvents_SevenIsland_TanobyRuins @ 0x83B96F4
+ .4byte gMapScripts_SevenIsland_TanobyRuins @ 0x8168C07
+ .4byte gMapConnections_SevenIsland_TanobyRuins @ 0x8352EE4
+ .2byte BGM_FRLG_SEVII_ISLANDS
+ .2byte 257
+ .byte 0xaa, 0x00, 0x02, 0x03, 0x01, 0x06, 0x00, 0x00
+
+PalletTown_PlayersHouse_1F:: @ 8350D50
+ .4byte gMapData_PalletTown_PlayersHouse_1F @ 0x82D5200
+ .4byte gMapEvents_PalletTown_PlayersHouse_1F @ 0x83B974C
+ .4byte gMapScripts_PalletTown_PlayersHouse_1F @ 0x8168C08
+ .4byte NULL
+ .2byte BGM_FRLG_PALLET_TOWN
+ .2byte 1
+ .byte 0x58, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PalletTown_PlayersHouse_2F:: @ 8350D6C
+ .4byte gMapData_PalletTown_PlayersHouse_2F @ 0x82D52FC
+ .4byte gMapEvents_PalletTown_PlayersHouse_2F @ 0x83B978C
+ .4byte gMapScripts_PalletTown_PlayersHouse_2F @ 0x8168CA3
+ .4byte NULL
+ .2byte BGM_FRLG_PALLET_TOWN
+ .2byte 2
+ .byte 0x58, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PalletTown_GarysHouse:: @ 8350D88
+ .4byte gMapData_PalletTown_GarysHouse @ 0x82D5424
+ .4byte gMapEvents_PalletTown_GarysHouse @ 0x83B980C
+ .4byte gMapScripts_PalletTown_GarysHouse @ 0x8168D27
+ .4byte NULL
+ .2byte BGM_FRLG_PALLET_TOWN
+ .2byte 3
+ .byte 0x58, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PalletTown_ProfessorOaksLab:: @ 8350DA4
+ .4byte gMapData_PalletTown_ProfessorOaksLab @ 0x82D5668
+ .4byte gMapEvents_PalletTown_ProfessorOaksLab @ 0x83B99B8
+ .4byte gMapScripts_PalletTown_ProfessorOaksLab @ 0x8168F7E
+ .4byte NULL
+ .2byte BGM_FRLG_OAK_LAB
+ .2byte 5
+ .byte 0x58, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ViridianCity_House1:: @ 8350DC0
+ .4byte gMapData_ViridianCity_House1 @ 0x833AEAC
+ .4byte gMapEvents_ViridianCity_House1 @ 0x83B9A38
+ .4byte gMapScripts_ViridianCity_House1 @ 0x8169E9A
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 276
+ .byte 0x59, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ViridianCity_Gym:: @ 8350DDC
+ .4byte gMapData_ViridianCity_Gym @ 0x82D86AC
+ .4byte gMapEvents_ViridianCity_Gym @ 0x83B9B78
+ .4byte gMapScripts_ViridianCity_Gym @ 0x8169EC9
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 37
+ .byte 0x59, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+ViridianCity_House2:: @ 8350DF8
+ .4byte gMapData_ViridianCity_House2 @ 0x8338D20
+ .4byte gMapEvents_ViridianCity_House2 @ 0x83B9C10
+ .4byte gMapScripts_ViridianCity_House2 @ 0x816A07C
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 266
+ .byte 0x59, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ViridianCity_Mart:: @ 8350E14
+ .4byte gMapData_ViridianCity_Mart @ 0x82D5BCC
+ .4byte gMapEvents_ViridianCity_Mart @ 0x83B9C84
+ .4byte gMapScripts_ViridianCity_Mart @ 0x816A1D3
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x59, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ViridianCity_PokemonCenter_1F:: @ 8350E30
+ .4byte gMapData_ViridianCity_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_ViridianCity_PokemonCenter_1F @ 0x83B9D18
+ .4byte gMapScripts_ViridianCity_PokemonCenter_1F @ 0x816A2C0
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x59, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ViridianCity_PokemonCenter_2F:: @ 8350E4C
+ .4byte gMapData_ViridianCity_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_ViridianCity_PokemonCenter_2F @ 0x83B9DA4
+ .4byte gMapScripts_ViridianCity_PokemonCenter_2F @ 0x816A2F3
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x59, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PewterCity_Museum_1F:: @ 8350E68
+ .4byte gMapData_PewterCity_Museum_1F @ 0x831A1FC
+ .4byte gMapEvents_PewterCity_Museum_1F @ 0x83B9ED8
+ .4byte gMapScripts_PewterCity_Museum_1F @ 0x816A31A
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 180
+ .byte 0x5a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PewterCity_Museum_2F:: @ 8350E84
+ .4byte gMapData_PewterCity_Museum_2F @ 0x831A39C
+ .4byte gMapEvents_PewterCity_Museum_2F @ 0x83B9FCC
+ .4byte gMapScripts_PewterCity_Museum_2F @ 0x816A552
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 181
+ .byte 0x5a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PewterCity_Gym:: @ 8350EA0
+ .4byte gMapData_PewterCity_Gym @ 0x82D732C
+ .4byte gMapEvents_PewterCity_Gym @ 0x83BA058
+ .4byte gMapScripts_PewterCity_Gym @ 0x816A592
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 28
+ .byte 0x5a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+PewterCity_Mart:: @ 8350EBC
+ .4byte gMapData_PewterCity_Mart @ 0x82D5BCC
+ .4byte gMapEvents_PewterCity_Mart @ 0x83BA0CC
+ .4byte gMapScripts_PewterCity_Mart @ 0x816A6CD
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x5a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PewterCity_House1:: @ 8350ED8
+ .4byte gMapData_PewterCity_House1 @ 0x82D5840
+ .4byte gMapEvents_PewterCity_House1 @ 0x83BA140
+ .4byte gMapScripts_PewterCity_House1 @ 0x816A71C
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 7
+ .byte 0x5a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PewterCity_PokemonCenter_1F:: @ 8350EF4
+ .4byte gMapData_PewterCity_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_PewterCity_PokemonCenter_1F @ 0x83BA21C
+ .4byte gMapScripts_PewterCity_PokemonCenter_1F @ 0x816A760
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x5a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PewterCity_PokemonCenter_2F:: @ 8350F10
+ .4byte gMapData_PewterCity_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_PewterCity_PokemonCenter_2F @ 0x83BA2A8
+ .4byte gMapScripts_PewterCity_PokemonCenter_2F @ 0x816A7B5
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x5a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+PewterCity_House2:: @ 8350F2C
+ .4byte gMapData_PewterCity_House2 @ 0x82D5840
+ .4byte gMapEvents_PewterCity_House2 @ 0x83BA304
+ .4byte gMapScripts_PewterCity_House2 @ 0x816A7DC
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 7
+ .byte 0x5a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCity_House1:: @ 8350F48
+ .4byte gMapData_CeruleanCity_House1 @ 0x831A560
+ .4byte gMapEvents_CeruleanCity_House1 @ 0x83BA350
+ .4byte gMapScripts_CeruleanCity_House1 @ 0x816A7EF
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 183
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCity_House2:: @ 8350F64
+ .4byte gMapData_CeruleanCity_House2 @ 0x831A474
+ .4byte gMapEvents_CeruleanCity_House2 @ 0x83BA3C0
+ .4byte gMapScripts_CeruleanCity_House2 @ 0x816A975
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 182
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCity_House3:: @ 8350F80
+ .4byte gMapData_CeruleanCity_House3 @ 0x82D5754
+ .4byte gMapEvents_CeruleanCity_House3 @ 0x83BA41C
+ .4byte gMapScripts_CeruleanCity_House3 @ 0x816A9A7
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 6
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCity_PokemonCenter_1F:: @ 8350F9C
+ .4byte gMapData_CeruleanCity_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_CeruleanCity_PokemonCenter_1F @ 0x83BA4F8
+ .4byte gMapScripts_CeruleanCity_PokemonCenter_1F @ 0x816AA2D
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCity_PokemonCenter_2F:: @ 8350FB8
+ .4byte gMapData_CeruleanCity_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_CeruleanCity_PokemonCenter_2F @ 0x83BA584
+ .4byte gMapScripts_CeruleanCity_PokemonCenter_2F @ 0x816AA79
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCity_Gym:: @ 8350FD4
+ .4byte gMapData_CeruleanCity_Gym @ 0x82D5F84
+ .4byte gMapEvents_CeruleanCity_Gym @ 0x83BA628
+ .4byte gMapScripts_CeruleanCity_Gym @ 0x816AAA0
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 12
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+CeruleanCity_BikeShop:: @ 8350FF0
+ .4byte gMapData_CeruleanCity_BikeShop @ 0x82D6F28
+ .4byte gMapEvents_CeruleanCity_BikeShop @ 0x83BA6FC
+ .4byte gMapScripts_CeruleanCity_BikeShop @ 0x816ABBC
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 26
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCity_Mart:: @ 835100C
+ .4byte gMapData_CeruleanCity_Mart @ 0x82D5BCC
+ .4byte gMapEvents_CeruleanCity_Mart @ 0x83BA770
+ .4byte gMapScripts_CeruleanCity_Mart @ 0x816AC9D
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCity_House4:: @ 8351028
+ .4byte gMapData_CeruleanCity_House4 @ 0x82D5754
+ .4byte gMapEvents_CeruleanCity_House4 @ 0x83BA7A4
+ .4byte gMapScripts_CeruleanCity_House4 @ 0x816ACEE
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 6
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeruleanCity_House5:: @ 8351044
+ .4byte gMapData_CeruleanCity_House5 @ 0x8343540
+ .4byte gMapEvents_CeruleanCity_House5 @ 0x83BA7E4
+ .4byte gMapScripts_CeruleanCity_House5 @ 0x816AE4F
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 308
+ .byte 0x5b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+LavenderTown_PokemonCenter_1F:: @ 8351060
+ .4byte gMapData_LavenderTown_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_LavenderTown_PokemonCenter_1F @ 0x83BA890
+ .4byte gMapScripts_LavenderTown_PokemonCenter_1F @ 0x816B0EF
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x5c, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+LavenderTown_PokemonCenter_2F:: @ 835107C
+ .4byte gMapData_LavenderTown_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_LavenderTown_PokemonCenter_2F @ 0x83BA91C
+ .4byte gMapScripts_LavenderTown_PokemonCenter_2F @ 0x816B122
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x5c, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+LavenderTown_VolunteerPokemonHouse:: @ 8351098
+ .4byte gMapData_LavenderTown_VolunteerPokemonHouse @ 0x833ACC4
+ .4byte gMapEvents_LavenderTown_VolunteerPokemonHouse @ 0x83BA9FC
+ .4byte gMapScripts_LavenderTown_VolunteerPokemonHouse @ 0x816B149
+ .4byte NULL
+ .2byte BGM_FRLG_LAVENDER_TOWN
+ .2byte 274
+ .byte 0x5c, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+LavenderTown_House1:: @ 83510B4
+ .4byte gMapData_LavenderTown_House1 @ 0x82D6AF0
+ .4byte gMapEvents_LavenderTown_House1 @ 0x83BAA58
+ .4byte gMapScripts_LavenderTown_House1 @ 0x816B232
+ .4byte NULL
+ .2byte BGM_FRLG_LAVENDER_TOWN
+ .2byte 21
+ .byte 0x5c, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+LavenderTown_House2:: @ 83510D0
+ .4byte gMapData_LavenderTown_House2 @ 0x82D6AF0
+ .4byte gMapEvents_LavenderTown_House2 @ 0x83BAA9C
+ .4byte gMapScripts_LavenderTown_House2 @ 0x816B265
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 21
+ .byte 0x5c, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+LavenderTown_Mart:: @ 83510EC
+ .4byte gMapData_LavenderTown_Mart @ 0x82D5BCC
+ .4byte gMapEvents_LavenderTown_Mart @ 0x83BAB28
+ .4byte gMapScripts_LavenderTown_Mart @ 0x816B34F
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x5c, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+VermilionCity_House1:: @ 8351108
+ .4byte gMapData_VermilionCity_House1 @ 0x82D5754
+ .4byte gMapEvents_VermilionCity_House1 @ 0x83BAB6C
+ .4byte gMapScripts_VermilionCity_House1 @ 0x816B3A6
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 6
+ .byte 0x5d, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+VermilionCity_PokemonCenter_1F:: @ 8351124
+ .4byte gMapData_VermilionCity_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_VermilionCity_PokemonCenter_1F @ 0x83BAC48
+ .4byte gMapScripts_VermilionCity_PokemonCenter_1F @ 0x816B424
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x5d, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+VermilionCity_PokemonCenter_2F:: @ 8351140
+ .4byte gMapData_VermilionCity_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_VermilionCity_PokemonCenter_2F @ 0x83BACD4
+ .4byte gMapScripts_VermilionCity_PokemonCenter_2F @ 0x816B457
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x5d, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+VermilionCity_PokemonFanClub:: @ 835115C
+ .4byte gMapData_VermilionCity_PokemonFanClub @ 0x833ABC8
+ .4byte gMapEvents_VermilionCity_PokemonFanClub @ 0x83BADA8
+ .4byte gMapScripts_VermilionCity_PokemonFanClub @ 0x816B47E
+ .4byte NULL
+ .2byte BGM_FRLG_VERMILION_CITY
+ .2byte 273
+ .byte 0x5d, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+VermilionCity_House2:: @ 8351178
+ .4byte gMapData_VermilionCity_House2 @ 0x82D5754
+ .4byte gMapEvents_VermilionCity_House2 @ 0x83BADEC
+ .4byte gMapScripts_VermilionCity_House2 @ 0x816B5D6
+ .4byte NULL
+ .2byte BGM_FRLG_VERMILION_CITY
+ .2byte 6
+ .byte 0x5d, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+VermilionCity_Mart:: @ 8351194
+ .4byte gMapData_VermilionCity_Mart @ 0x82D5BCC
+ .4byte gMapEvents_VermilionCity_Mart @ 0x83BAE60
+ .4byte gMapScripts_VermilionCity_Mart @ 0x816B653
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x5d, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+VermilionCity_Gym:: @ 83511B0
+ .4byte gMapData_VermilionCity_Gym @ 0x82D6E28
+ .4byte gMapEvents_VermilionCity_Gym @ 0x83BAFD0
+ .4byte gMapScripts_VermilionCity_Gym @ 0x816B69E
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 25
+ .byte 0x5d, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+VermilionCity_House3:: @ 83511CC
+ .4byte gMapData_VermilionCity_House3 @ 0x82D5754
+ .4byte gMapEvents_VermilionCity_House3 @ 0x83BB068
+ .4byte gMapScripts_VermilionCity_House3 @ 0x816BAA9
+ .4byte NULL
+ .2byte BGM_FRLG_VERMILION_CITY
+ .2byte 6
+ .byte 0x5d, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_DepartmentStore_1F:: @ 83511E8
+ .4byte gMapData_CeladonCity_DepartmentStore_1F @ 0x831B5FC
+ .4byte gMapEvents_CeladonCity_DepartmentStore_1F @ 0x83BB0EC
+ .4byte gMapScripts_CeladonCity_DepartmentStore_1F @ 0x816BAD8
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 192
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x04, 0x01, 0x00
+
+CeladonCity_DepartmentStore_2F:: @ 8351204
+ .4byte gMapData_CeladonCity_DepartmentStore_2F @ 0x831B7A8
+ .4byte gMapEvents_CeladonCity_DepartmentStore_2F @ 0x83BB184
+ .4byte gMapScripts_CeladonCity_DepartmentStore_2F @ 0x816BAF4
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 193
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x04, 0x02, 0x00
+
+CeladonCity_DepartmentStore_3F:: @ 8351220
+ .4byte gMapData_CeladonCity_DepartmentStore_3F @ 0x831B954
+ .4byte gMapEvents_CeladonCity_DepartmentStore_3F @ 0x83BB2AC
+ .4byte gMapScripts_CeladonCity_DepartmentStore_3F @ 0x816BB84
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 194
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x04, 0x03, 0x00
+
+CeladonCity_DepartmentStore_4F:: @ 835123C
+ .4byte gMapData_CeladonCity_DepartmentStore_4F @ 0x831BB00
+ .4byte gMapEvents_CeladonCity_DepartmentStore_4F @ 0x83BB32C
+ .4byte gMapScripts_CeladonCity_DepartmentStore_4F @ 0x816BBEE
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 195
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x04, 0x04, 0x00
+
+CeladonCity_DepartmentStore_5F:: @ 8351258
+ .4byte gMapData_CeladonCity_DepartmentStore_5F @ 0x831BCAC
+ .4byte gMapEvents_CeladonCity_DepartmentStore_5F @ 0x83BB3C4
+ .4byte gMapScripts_CeladonCity_DepartmentStore_5F @ 0x816BC40
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 196
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x04, 0x05, 0x00
+
+CeladonCity_DepartmentStore_Roof:: @ 8351274
+ .4byte gMapData_CeladonCity_DepartmentStore_Roof @ 0x831BEE4
+ .4byte gMapEvents_CeladonCity_DepartmentStore_Roof @ 0x83BB440
+ .4byte gMapScripts_CeladonCity_DepartmentStore_Roof @ 0x816BCCC
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 197
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x04, 0x7f, 0x00
+
+CeladonCity_DepartmentStore_Elevator:: @ 8351290
+ .4byte gMapData_CeladonCity_DepartmentStore_Elevator @ 0x8319F70
+ .4byte gMapEvents_CeladonCity_DepartmentStore_Elevator @ 0x83BB47C
+ .4byte gMapScripts_CeladonCity_DepartmentStore_Elevator @ 0x816C152
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 179
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_Condominiums_1F:: @ 83512AC
+ .4byte gMapData_CeladonCity_Condominiums_1F @ 0x831A7DC
+ .4byte gMapEvents_CeladonCity_Condominiums_1F @ 0x83BB538
+ .4byte gMapScripts_CeladonCity_Condominiums_1F @ 0x816C320
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 184
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_Condominiums_2F:: @ 83512C8
+ .4byte gMapData_CeladonCity_Condominiums_2F @ 0x831AA58
+ .4byte gMapEvents_CeladonCity_Condominiums_2F @ 0x83BB5B4
+ .4byte gMapScripts_CeladonCity_Condominiums_2F @ 0x816C3D0
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 185
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_Condominiums_3F:: @ 83512E4
+ .4byte gMapData_CeladonCity_Condominiums_3F @ 0x831ACD4
+ .4byte gMapEvents_CeladonCity_Condominiums_3F @ 0x83BB6A8
+ .4byte gMapScripts_CeladonCity_Condominiums_3F @ 0x816C3DA
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 186
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_Condominiums_Roof:: @ 8351300
+ .4byte gMapData_CeladonCity_Condominiums_Roof @ 0x831AF7C
+ .4byte gMapEvents_CeladonCity_Condominiums_Roof @ 0x83BB6EC
+ .4byte gMapScripts_CeladonCity_Condominiums_Roof @ 0x816C459
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 187
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_Condominiums_RoofRoom:: @ 835131C
+ .4byte gMapData_CeladonCity_Condominiums_RoofRoom @ 0x831B054
+ .4byte gMapEvents_CeladonCity_Condominiums_RoofRoom @ 0x83BB76C
+ .4byte gMapScripts_CeladonCity_Condominiums_RoofRoom @ 0x816C463
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 188
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_PokemonCenter_1F:: @ 8351338
+ .4byte gMapData_CeladonCity_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_CeladonCity_PokemonCenter_1F @ 0x83BB800
+ .4byte gMapScripts_CeladonCity_PokemonCenter_1F @ 0x816C5EC
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_PokemonCenter_2F:: @ 8351354
+ .4byte gMapData_CeladonCity_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_CeladonCity_PokemonCenter_2F @ 0x83BB88C
+ .4byte gMapScripts_CeladonCity_PokemonCenter_2F @ 0x816C61F
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_GameCorner:: @ 8351370
+ .4byte gMapData_CeladonCity_GameCorner @ 0x82D7168
+ .4byte gMapEvents_CeladonCity_GameCorner @ 0x83BBB78
+ .4byte gMapScripts_CeladonCity_GameCorner @ 0x816C646
+ .4byte NULL
+ .2byte BGM_FRLG_GAMECORNER
+ .2byte 27
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_GameCorner_PrizeRoom:: @ 835138C
+ .4byte gMapData_CeladonCity_GameCorner_PrizeRoom @ 0x831B12C
+ .4byte gMapEvents_CeladonCity_GameCorner_PrizeRoom @ 0x83BBC1C
+ .4byte gMapScripts_CeladonCity_GameCorner_PrizeRoom @ 0x816CB75
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 189
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_Gym:: @ 83513A8
+ .4byte gMapData_CeladonCity_Gym @ 0x82D6370
+ .4byte gMapEvents_CeladonCity_Gym @ 0x83BBD68
+ .4byte gMapScripts_CeladonCity_Gym @ 0x816D060
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 15
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+CeladonCity_Restaurant:: @ 83513C4
+ .4byte gMapData_CeladonCity_Restaurant @ 0x831B29C
+ .4byte gMapEvents_CeladonCity_Restaurant @ 0x83BBE0C
+ .4byte gMapScripts_CeladonCity_Restaurant @ 0x816D1EA
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 190
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_House1:: @ 83513E0
+ .4byte gMapData_CeladonCity_House1 @ 0x82D6AF0
+ .4byte gMapEvents_CeladonCity_House1 @ 0x83BBE80
+ .4byte gMapScripts_CeladonCity_House1 @ 0x816D267
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 21
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CeladonCity_Hotel:: @ 83513FC
+ .4byte gMapData_CeladonCity_Hotel @ 0x831B438
+ .4byte gMapEvents_CeladonCity_Hotel @ 0x83BBF0C
+ .4byte gMapScripts_CeladonCity_Hotel @ 0x816D283
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 191
+ .byte 0x5e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FuchsiaCity_SafariZone_Entrance:: @ 8351418
+ .4byte gMapData_FuchsiaCity_SafariZone_Entrance @ 0x82D8E80
+ .4byte gMapEvents_FuchsiaCity_SafariZone_Entrance @ 0x83BBFA0
+ .4byte gMapScripts_FuchsiaCity_SafariZone_Entrance @ 0x816D2A8
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 51
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FuchsiaCity_Mart:: @ 8351434
+ .4byte gMapData_FuchsiaCity_Mart @ 0x82D5BCC
+ .4byte gMapEvents_FuchsiaCity_Mart @ 0x83BC014
+ .4byte gMapScripts_FuchsiaCity_Mart @ 0x816D4E0
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FuchsiaCity_ZooBuilding:: @ 8351450
+ .4byte gMapData_FuchsiaCity_ZooBuilding @ 0x831C348
+ .4byte gMapEvents_FuchsiaCity_ZooBuilding @ 0x83BC0A0
+ .4byte gMapScripts_FuchsiaCity_ZooBuilding @ 0x816D528
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 200
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FuchsiaCity_Gym:: @ 835146C
+ .4byte gMapData_FuchsiaCity_Gym @ 0x82D6A04
+ .4byte gMapEvents_FuchsiaCity_Gym @ 0x83BC1A4
+ .4byte gMapScripts_FuchsiaCity_Gym @ 0x816D54D
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 20
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+FuchsiaCity_House1:: @ 8351488
+ .4byte gMapData_FuchsiaCity_House1 @ 0x82D5754
+ .4byte gMapEvents_FuchsiaCity_House1 @ 0x83BC218
+ .4byte gMapScripts_FuchsiaCity_House1 @ 0x816D6C5
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 6
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FuchsiaCity_PokemonCenter_1F:: @ 83514A4
+ .4byte gMapData_FuchsiaCity_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_FuchsiaCity_PokemonCenter_1F @ 0x83BC2AC
+ .4byte gMapScripts_FuchsiaCity_PokemonCenter_1F @ 0x816D6F1
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FuchsiaCity_PokemonCenter_2F:: @ 83514C0
+ .4byte gMapData_FuchsiaCity_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_FuchsiaCity_PokemonCenter_2F @ 0x83BC338
+ .4byte gMapScripts_FuchsiaCity_PokemonCenter_2F @ 0x816D724
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FuchsiaCity_Building1:: @ 83514DC
+ .4byte gMapData_FuchsiaCity_Building1 @ 0x831C48C
+ .4byte gMapEvents_FuchsiaCity_Building1 @ 0x83BC3F4
+ .4byte gMapScripts_FuchsiaCity_Building1 @ 0x816D74B
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 201
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FuchsiaCity_House2:: @ 83514F8
+ .4byte gMapData_FuchsiaCity_House2 @ 0x831C578
+ .4byte gMapEvents_FuchsiaCity_House2 @ 0x83BC440
+ .4byte gMapScripts_FuchsiaCity_House2 @ 0x816D816
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 202
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FuchsiaCity_House3:: @ 8351514
+ .4byte gMapData_FuchsiaCity_House3 @ 0x82D5754
+ .4byte gMapEvents_FuchsiaCity_House3 @ 0x83BC474
+ .4byte gMapScripts_FuchsiaCity_House3 @ 0x816D894
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 6
+ .byte 0x5f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CinnabarIsland_Gym:: @ 8351530
+ .4byte gMapData_CinnabarIsland_Gym @ 0x82D82C8
+ .4byte gMapEvents_CinnabarIsland_Gym @ 0x83BC62C
+ .4byte gMapScripts_CinnabarIsland_Gym @ 0x816D94B
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 36
+ .byte 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+CinnabarIsland_PokemonLab_Entrance:: @ 835154C
+ .4byte gMapData_CinnabarIsland_PokemonLab_Entrance @ 0x831C804
+ .4byte gMapEvents_CinnabarIsland_PokemonLab_Entrance @ 0x83BC6B8
+ .4byte gMapScripts_CinnabarIsland_PokemonLab_Entrance @ 0x816E273
+ .4byte NULL
+ .2byte BGM_FRLG_CINNABAR_ISLAND
+ .2byte 203
+ .byte 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CinnabarIsland_PokemonLab_Lounge:: @ 8351568
+ .4byte gMapData_CinnabarIsland_PokemonLab_Lounge @ 0x831C974
+ .4byte gMapEvents_CinnabarIsland_PokemonLab_Lounge @ 0x83BC71C
+ .4byte gMapScripts_CinnabarIsland_PokemonLab_Lounge @ 0x816E2B8
+ .4byte NULL
+ .2byte BGM_FRLG_CINNABAR_ISLAND
+ .2byte 204
+ .byte 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CinnabarIsland_PokemonLab_ResearchRoom:: @ 8351584
+ .4byte gMapData_CinnabarIsland_PokemonLab_ResearchRoom @ 0x831CAE4
+ .4byte gMapEvents_CinnabarIsland_PokemonLab_ResearchRoom @ 0x83BC780
+ .4byte gMapScripts_CinnabarIsland_PokemonLab_ResearchRoom @ 0x816E3DE
+ .4byte NULL
+ .2byte BGM_FRLG_CINNABAR_ISLAND
+ .2byte 205
+ .byte 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CinnabarIsland_PokemonLab_ExperimentRoom:: @ 83515A0
+ .4byte gMapData_CinnabarIsland_PokemonLab_ExperimentRoom @ 0x831CC54
+ .4byte gMapEvents_CinnabarIsland_PokemonLab_ExperimentRoom @ 0x83BC7CC
+ .4byte gMapScripts_CinnabarIsland_PokemonLab_ExperimentRoom @ 0x816E400
+ .4byte NULL
+ .2byte BGM_FRLG_CINNABAR_ISLAND
+ .2byte 206
+ .byte 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CinnabarIsland_PokemonCenter_1F:: @ 83515BC
+ .4byte gMapData_CinnabarIsland_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_CinnabarIsland_PokemonCenter_1F @ 0x83BC8A8
+ .4byte gMapScripts_CinnabarIsland_PokemonCenter_1F @ 0x816E8D7
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CinnabarIsland_PokemonCenter_2F:: @ 83515D8
+ .4byte gMapData_CinnabarIsland_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_CinnabarIsland_PokemonCenter_2F @ 0x83BC934
+ .4byte gMapScripts_CinnabarIsland_PokemonCenter_2F @ 0x816E9E8
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+CinnabarIsland_Mart:: @ 83515F4
+ .4byte gMapData_CinnabarIsland_Mart @ 0x82D5BCC
+ .4byte gMapEvents_CinnabarIsland_Mart @ 0x83BC9A8
+ .4byte gMapScripts_CinnabarIsland_Mart @ 0x816EA0F
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+IndigoPlateau_PokemonCenter_1F:: @ 8351610
+ .4byte gMapData_IndigoPlateau_PokemonCenter_1F @ 0x831F000
+ .4byte gMapEvents_IndigoPlateau_PokemonCenter_1F @ 0x83BCA94
+ .4byte gMapScripts_IndigoPlateau_PokemonCenter_1F @ 0x816EA5A
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 212
+ .byte 0x61, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+IndigoPlateau_PokemonCenter_2F:: @ 835162C
+ .4byte gMapData_IndigoPlateau_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_IndigoPlateau_PokemonCenter_2F @ 0x83BCB20
+ .4byte gMapScripts_IndigoPlateau_PokemonCenter_2F @ 0x816EB0F
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x61, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+SaffronCity_House1_1F:: @ 8351648
+ .4byte gMapData_SaffronCity_House1_1F @ 0x8321004
+ .4byte gMapEvents_SaffronCity_House1_1F @ 0x83BCB9C
+ .4byte gMapScripts_SaffronCity_House1_1F @ 0x816EB36
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 226
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SaffronCity_House1_2F:: @ 8351664
+ .4byte gMapData_SaffronCity_House1_2F @ 0x8321100
+ .4byte gMapEvents_SaffronCity_House1_2F @ 0x83BCC3C
+ .4byte gMapScripts_SaffronCity_House1_2F @ 0x816EB5C
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 227
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SaffronCity_Dojo:: @ 8351680
+ .4byte gMapData_SaffronCity_Dojo @ 0x83212C4
+ .4byte gMapEvents_SaffronCity_Dojo @ 0x83BCD60
+ .4byte gMapScripts_SaffronCity_Dojo @ 0x816EBDB
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 228
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SaffronCity_Gym:: @ 835169C
+ .4byte gMapData_SaffronCity_Gym @ 0x82D7C44
+ .4byte gMapEvents_SaffronCity_Gym @ 0x83BCF6C
+ .4byte gMapScripts_SaffronCity_Gym @ 0x816EDD7
+ .4byte NULL
+ .2byte BGM_FRLG_GYM
+ .2byte 34
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x01
+
+SaffronCity_House2:: @ 83516B8
+ .4byte gMapData_SaffronCity_House2 @ 0x82D6AF0
+ .4byte gMapEvents_SaffronCity_House2 @ 0x83BD004
+ .4byte gMapScripts_SaffronCity_House2 @ 0x816EF73
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 21
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SaffronCity_Mart:: @ 83516D4
+ .4byte gMapData_SaffronCity_Mart @ 0x82D5BCC
+ .4byte gMapEvents_SaffronCity_Mart @ 0x83BD078
+ .4byte gMapScripts_SaffronCity_Mart @ 0x816EFA2
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SaffronCity_PokemonCenter_1F:: @ 83516F0
+ .4byte gMapData_SaffronCity_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_SaffronCity_PokemonCenter_1F @ 0x83BD13C
+ .4byte gMapScripts_SaffronCity_PokemonCenter_1F @ 0x816EFEC
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SaffronCity_PokemonCenter_2F:: @ 835170C
+ .4byte gMapData_SaffronCity_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_SaffronCity_PokemonCenter_2F @ 0x83BD1C8
+ .4byte gMapScripts_SaffronCity_PokemonCenter_2F @ 0x816F037
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SaffronCity_House3:: @ 8351728
+ .4byte gMapData_SaffronCity_House3 @ 0x82D6AF0
+ .4byte gMapEvents_SaffronCity_House3 @ 0x83BD20C
+ .4byte gMapScripts_SaffronCity_House3 @ 0x816F05E
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 21
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SaffronCity_PokemonTrainerFanClub:: @ 8351744
+ .4byte gMapData_SaffronCity_PokemonTrainerFanClub @ 0x8338A60
+ .4byte gMapEvents_SaffronCity_PokemonTrainerFanClub @ 0x83BD318
+ .4byte gMapScripts_SaffronCity_PokemonTrainerFanClub @ 0x816F0BF
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 263
+ .byte 0x62, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route2_ViridianForest_SouthEntrance:: @ 8351760
+ .4byte gMapData_Route2_ViridianForest_SouthEntrance @ 0x8320990
+ .4byte gMapEvents_Route2_ViridianForest_SouthEntrance @ 0x83BD37C
+ .4byte gMapScripts_Route2_ViridianForest_SouthEntrance @ 0x816F5E5
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 221
+ .byte 0x66, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route2_House:: @ 835177C
+ .4byte gMapData_Route2_House @ 0x82D5840
+ .4byte gMapEvents_Route2_House @ 0x83BD3D8
+ .4byte gMapScripts_Route2_House @ 0x816F5F8
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 7
+ .byte 0x66, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route2_EastBuilding:: @ 8351798
+ .4byte gMapData_Route2_EastBuilding @ 0x8320990
+ .4byte gMapEvents_Route2_EastBuilding @ 0x83BD43C
+ .4byte gMapScripts_Route2_EastBuilding @ 0x816F67E
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 221
+ .byte 0x66, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route2_ViridianForest_NorthEntrance:: @ 83517B4
+ .4byte gMapData_Route2_ViridianForest_NorthEntrance @ 0x8320990
+ .4byte gMapEvents_Route2_ViridianForest_NorthEntrance @ 0x83BD4B8
+ .4byte gMapScripts_Route2_ViridianForest_NorthEntrance @ 0x816F71D
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 221
+ .byte 0x66, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route4_PokemonCenter_1F:: @ 83517D0
+ .4byte gMapData_Route4_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_Route4_PokemonCenter_1F @ 0x83BD57C
+ .4byte gMapScripts_Route4_PokemonCenter_1F @ 0x816F739
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x68, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route4_PokemonCenter_2F:: @ 83517EC
+ .4byte gMapData_Route4_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_Route4_PokemonCenter_2F @ 0x83BD608
+ .4byte gMapScripts_Route4_PokemonCenter_2F @ 0x816F8D8
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x68, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route5_PokemonDayCare:: @ 8351808
+ .4byte gMapData_Route5_PokemonDayCare @ 0x833ADC0
+ .4byte gMapEvents_Route5_PokemonDayCare @ 0x83BD64C
+ .4byte gMapScripts_Route5_PokemonDayCare @ 0x816F8FF
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 275
+ .byte 0x69, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route5_SouthEntrance:: @ 8351824
+ .4byte gMapData_Route5_SouthEntrance @ 0x831E9C0
+ .4byte gMapEvents_Route5_SouthEntrance @ 0x83BD6C8
+ .4byte gMapScripts_Route5_SouthEntrance @ 0x816F900
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 208
+ .byte 0x69, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route6_NorthEntrance:: @ 8351840
+ .4byte gMapData_Route6_NorthEntrance @ 0x831E9C0
+ .4byte gMapEvents_Route6_NorthEntrance @ 0x83BD744
+ .4byte gMapScripts_Route6_NorthEntrance @ 0x816F9C6
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 208
+ .byte 0x6a, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+UnknownMap_18_01:: @ 835185C
+ .4byte gMapData_UnknownMap_18_01 @ 0x82D5840
+ .4byte gMapEvents_UnknownMap_18_01 @ 0x83BD758
+ .4byte gMapScripts_UnknownMap_18_01 @ 0x816FA8C
+ .4byte NULL
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 7
+ .byte 0x6a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route7_EastEntrance:: @ 8351878
+ .4byte gMapData_Route7_EastEntrance @ 0x831EAD0
+ .4byte gMapEvents_Route7_EastEntrance @ 0x83BD7D4
+ .4byte gMapScripts_Route7_EastEntrance @ 0x816FA8D
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 209
+ .byte 0x6b, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route8_WestEntrance:: @ 8351894
+ .4byte gMapData_Route8_WestEntrance @ 0x831EAD0
+ .4byte gMapEvents_Route8_WestEntrance @ 0x83BD850
+ .4byte gMapScripts_Route8_WestEntrance @ 0x816FB53
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 209
+ .byte 0x6c, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route10_PokemonCenter_1F:: @ 83518B0
+ .4byte gMapData_Route10_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_Route10_PokemonCenter_1F @ 0x83BD8FC
+ .4byte gMapScripts_Route10_PokemonCenter_1F @ 0x816FC2F
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x6e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route10_PokemonCenter_2F:: @ 83518CC
+ .4byte gMapData_Route10_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_Route10_PokemonCenter_2F @ 0x83BD988
+ .4byte gMapScripts_Route10_PokemonCenter_2F @ 0x816FCFA
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x6e, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route11_EastEntrance_1F:: @ 83518E8
+ .4byte gMapData_Route11_EastEntrance_1F @ 0x8320E70
+ .4byte gMapEvents_Route11_EastEntrance_1F @ 0x83BD9F4
+ .4byte gMapScripts_Route11_EastEntrance_1F @ 0x816FD21
+ .4byte NULL
+ .2byte BGM_FRLG_VERMILION_CITY
+ .2byte 224
+ .byte 0x6f, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route11_EastEntrance_2F:: @ 8351904
+ .4byte gMapData_Route11_EastEntrance_2F @ 0x8320804
+ .4byte gMapEvents_Route11_EastEntrance_2F @ 0x83BDA58
+ .4byte gMapScripts_Route11_EastEntrance_2F @ 0x816FD34
+ .4byte NULL
+ .2byte BGM_FRLG_VERMILION_CITY
+ .2byte 220
+ .byte 0x6f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route12_NorthEntrance_1F:: @ 8351920
+ .4byte gMapData_Route12_NorthEntrance_1F @ 0x8319DF0
+ .4byte gMapEvents_Route12_NorthEntrance_1F @ 0x83BDAAC
+ .4byte gMapScripts_Route12_NorthEntrance_1F @ 0x816FE6D
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 176
+ .byte 0x70, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route12_NorthEntrance_2F:: @ 835193C
+ .4byte gMapData_Route12_NorthEntrance_2F @ 0x8320804
+ .4byte gMapEvents_Route12_NorthEntrance_2F @ 0x83BDAF8
+ .4byte gMapScripts_Route12_NorthEntrance_2F @ 0x816FE77
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 220
+ .byte 0x70, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route12_FishingHouse:: @ 8351958
+ .4byte gMapData_Route12_FishingHouse @ 0x82D6070
+ .4byte gMapEvents_Route12_FishingHouse @ 0x83BDB48
+ .4byte gMapScripts_Route12_FishingHouse @ 0x816FF0B
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 13
+ .byte 0x70, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route15_WestEntrance_1F:: @ 8351974
+ .4byte gMapData_Route15_WestEntrance_1F @ 0x8320E70
+ .4byte gMapEvents_Route15_WestEntrance_1F @ 0x83BDB9C
+ .4byte gMapScripts_Route15_WestEntrance_1F @ 0x8170088
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 224
+ .byte 0x73, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route15_WestEntrance_2F:: @ 8351990
+ .4byte gMapData_Route15_WestEntrance_2F @ 0x8320804
+ .4byte gMapEvents_Route15_WestEntrance_2F @ 0x83BDBE8
+ .4byte gMapScripts_Route15_WestEntrance_2F @ 0x8170092
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 220
+ .byte 0x73, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route16_House:: @ 83519AC
+ .4byte gMapData_Route16_House @ 0x82D5754
+ .4byte gMapEvents_Route16_House @ 0x83BDC44
+ .4byte gMapScripts_Route16_House @ 0x817014E
+ .4byte NULL
+ .2byte BGM_FRLG_CELADON_CITY
+ .2byte 6
+ .byte 0x74, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route16_NorthEntrance_1F:: @ 83519C8
+ .4byte gMapData_Route16_NorthEntrance_1F @ 0x8320D14
+ .4byte gMapEvents_Route16_NorthEntrance_1F @ 0x83BDD60
+ .4byte gMapScripts_Route16_NorthEntrance_1F @ 0x81701C2
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 223
+ .byte 0x74, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route16_NorthEntrance_2F:: @ 83519E4
+ .4byte gMapData_Route16_NorthEntrance_2F @ 0x8320804
+ .4byte gMapEvents_Route16_NorthEntrance_2F @ 0x83BDDDC
+ .4byte gMapScripts_Route16_NorthEntrance_2F @ 0x81702BE
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 220
+ .byte 0x74, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route18_EastEntrance_1F:: @ 8351A00
+ .4byte gMapData_Route18_EastEntrance_1F @ 0x8320E70
+ .4byte gMapEvents_Route18_EastEntrance_1F @ 0x83BDED0
+ .4byte gMapScripts_Route18_EastEntrance_1F @ 0x8170378
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 224
+ .byte 0x76, 0x00, 0x00, 0x08, 0x01, 0x02, 0x00, 0x00
+
+Route18_EastEntrance_2F:: @ 8351A1C
+ .4byte gMapData_Route18_EastEntrance_2F @ 0x8320804
+ .4byte gMapEvents_Route18_EastEntrance_2F @ 0x83BDF1C
+ .4byte gMapScripts_Route18_EastEntrance_2F @ 0x817046B
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_CITY
+ .2byte 220
+ .byte 0x76, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+UnusedHouse_27_00:: @ 8351A38
+ .4byte gMapData_UnusedHouse_27_00 @ 0x82D5840
+ .4byte gMapEvents_UnusedHouse_27_00 @ 0x83BDF30
+ .4byte gMapScripts_UnusedHouse_27_00 @ 0x81704FA
+ .4byte NULL
+ .2byte BGM_FRLG_ROUTE_3
+ .2byte 7
+ .byte 0x77, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route22_NorthEntrance:: @ 8351A54
+ .4byte gMapData_Route22_NorthEntrance @ 0x8320B1C
+ .4byte gMapEvents_Route22_NorthEntrance @ 0x83BDF8C
+ .4byte gMapScripts_Route22_NorthEntrance @ 0x81704FB
+ .4byte NULL
+ .2byte BGM_FRLG_VIRIDIAN_FOREST
+ .2byte 222
+ .byte 0x7a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+UnusedHouse_29_00:: @ 8351A70
+ .4byte gMapData_UnusedHouse_29_00 @ 0x82D5840
+ .4byte gMapEvents_UnusedHouse_29_00 @ 0x83BDFA0
+ .4byte gMapScripts_UnusedHouse_29_00 @ 0x8170522
+ .4byte NULL
+ .2byte BGM_FRLG_INDIGO_PLATEAU
+ .2byte 7
+ .byte 0x7b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+Route25_SeaCottage:: @ 8351A8C
+ .4byte gMapData_Route25_SeaCottage @ 0x8319030
+ .4byte gMapEvents_Route25_SeaCottage @ 0x83BE008
+ .4byte gMapScripts_Route25_SeaCottage @ 0x8170523
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 169
+ .byte 0x7d, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SevenIsland_House_Room1:: @ 8351AA8
+ .4byte gMapData_SevenIsland_House_Room1 @ 0x834E310
+ .4byte gMapEvents_SevenIsland_House_Room1 @ 0x83BE050
+ .4byte gMapScripts_SevenIsland_House_Room1 @ 0x817088A
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_SIX
+ .2byte 382
+ .byte 0x94, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+SevenIsland_House_Room2:: @ 8351AC4
+ .4byte gMapData_SevenIsland_House_Room2 @ 0x8338C48
+ .4byte gMapEvents_SevenIsland_House_Room2 @ 0x83BE084
+ .4byte gMapScripts_SevenIsland_House_Room2 @ 0x8170A7E
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_SIX
+ .2byte 265
+ .byte 0x94, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01
+
+SevenIsland_Mart:: @ 8351AE0
+ .4byte gMapData_SevenIsland_Mart @ 0x82D5BCC
+ .4byte gMapEvents_SevenIsland_Mart @ 0x83BE100
+ .4byte gMapScripts_SevenIsland_Mart @ 0x8170B30
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x94, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SevenIsland_PokemonCenter_1F:: @ 8351AFC
+ .4byte gMapData_SevenIsland_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_SevenIsland_PokemonCenter_1F @ 0x83BE1B4
+ .4byte gMapScripts_SevenIsland_PokemonCenter_1F @ 0x8170B89
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x94, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SevenIsland_PokemonCenter_2F:: @ 8351B18
+ .4byte gMapData_SevenIsland_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_SevenIsland_PokemonCenter_2F @ 0x83BE240
+ .4byte gMapScripts_SevenIsland_PokemonCenter_2F @ 0x8170BBC
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x94, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+UnusedHouse_31_05:: @ 8351B34
+ .4byte gMapData_UnusedHouse_31_05 @ 0x82D6070
+ .4byte gMapEvents_UnusedHouse_31_05 @ 0x83BE254
+ .4byte gMapScripts_UnusedHouse_31_05 @ 0x8170BE3
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_SIX
+ .2byte 13
+ .byte 0x94, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SevenIsland_Harbor:: @ 8351B50
+ .4byte gMapData_SevenIsland_Harbor @ 0x8343FB8
+ .4byte gMapEvents_SevenIsland_Harbor @ 0x83BE2A0
+ .4byte gMapScripts_SevenIsland_Harbor @ 0x8170BE4
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_SIX
+ .2byte 315
+ .byte 0x94, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+OneIsland_PokemonCenter_1F:: @ 8351B6C
+ .4byte gMapData_OneIsland_PokemonCenter_1F @ 0x833A970
+ .4byte gMapEvents_OneIsland_PokemonCenter_1F @ 0x83BE400
+ .4byte gMapScripts_OneIsland_PokemonCenter_1F @ 0x8170BF8
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_NETWORK_CENTER
+ .2byte 271
+ .byte 0x8f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+OneIsland_PokemonCenter_2F:: @ 8351B88
+ .4byte gMapData_OneIsland_PokemonCenter_2F @ 0x8344108
+ .4byte gMapEvents_OneIsland_PokemonCenter_2F @ 0x83BE48C
+ .4byte gMapScripts_OneIsland_PokemonCenter_2F @ 0x8171334
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_NETWORK_CENTER
+ .2byte 316
+ .byte 0x8f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+OneIsland_House1:: @ 8351BA4
+ .4byte gMapData_OneIsland_House1 @ 0x82D5CB8
+ .4byte gMapEvents_OneIsland_House1 @ 0x83BE4D8
+ .4byte gMapScripts_OneIsland_House1 @ 0x817135B
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 11
+ .byte 0x8f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+OneIsland_House2:: @ 8351BC0
+ .4byte gMapData_OneIsland_House2 @ 0x82D5CB8
+ .4byte gMapEvents_OneIsland_House2 @ 0x83BE50C
+ .4byte gMapScripts_OneIsland_House2 @ 0x817136E
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 11
+ .byte 0x8f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+OneIsland_Harbor:: @ 8351BDC
+ .4byte gMapData_OneIsland_Harbor @ 0x8343FB8
+ .4byte gMapEvents_OneIsland_Harbor @ 0x83BE558
+ .4byte gMapScripts_OneIsland_Harbor @ 0x8171378
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 315
+ .byte 0x8f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+TwoIsland_JoyfulGameCorner:: @ 8351BF8
+ .4byte gMapData_TwoIsland_JoyfulGameCorner @ 0x833AA84
+ .4byte gMapEvents_TwoIsland_JoyfulGameCorner @ 0x83BE5EC
+ .4byte gMapScripts_TwoIsland_JoyfulGameCorner @ 0x81713D0
+ .4byte NULL
+ .2byte BGM_FRLG_GAMECORNER
+ .2byte 272
+ .byte 0x90, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+TwoIsland_House:: @ 8351C14
+ .4byte gMapData_TwoIsland_House @ 0x82D5CB8
+ .4byte gMapEvents_TwoIsland_House @ 0x83BE620
+ .4byte gMapScripts_TwoIsland_House @ 0x8171618
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 11
+ .byte 0x90, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+TwoIsland_PokemonCenter_1F:: @ 8351C30
+ .4byte gMapData_TwoIsland_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_TwoIsland_PokemonCenter_1F @ 0x83BE68C
+ .4byte gMapScripts_TwoIsland_PokemonCenter_1F @ 0x81717B4
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x90, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+TwoIsland_PokemonCenter_2F:: @ 8351C4C
+ .4byte gMapData_TwoIsland_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_TwoIsland_PokemonCenter_2F @ 0x83BE718
+ .4byte gMapScripts_TwoIsland_PokemonCenter_2F @ 0x81717DE
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x90, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+TwoIsland_Harbor:: @ 8351C68
+ .4byte gMapData_TwoIsland_Harbor @ 0x8343FB8
+ .4byte gMapEvents_TwoIsland_Harbor @ 0x83BE764
+ .4byte gMapScripts_TwoIsland_Harbor @ 0x8171805
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 315
+ .byte 0x90, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ThreeIsland_House1:: @ 8351C84
+ .4byte gMapData_ThreeIsland_House1 @ 0x82D7504
+ .4byte gMapEvents_ThreeIsland_House1 @ 0x83BE7A4
+ .4byte gMapScripts_ThreeIsland_House1 @ 0x8171819
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 31
+ .byte 0x91, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ThreeIsland_PokemonCenter_1F:: @ 8351CA0
+ .4byte gMapData_ThreeIsland_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_ThreeIsland_PokemonCenter_1F @ 0x83BE828
+ .4byte gMapScripts_ThreeIsland_PokemonCenter_1F @ 0x8171832
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x91, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ThreeIsland_PokemonCenter_2F:: @ 8351CBC
+ .4byte gMapData_ThreeIsland_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_ThreeIsland_PokemonCenter_2F @ 0x83BE8B4
+ .4byte gMapScripts_ThreeIsland_PokemonCenter_2F @ 0x8171865
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x91, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ThreeIsland_Mart:: @ 8351CD8
+ .4byte gMapData_ThreeIsland_Mart @ 0x82D5BCC
+ .4byte gMapEvents_ThreeIsland_Mart @ 0x83BE930
+ .4byte gMapScripts_ThreeIsland_Mart @ 0x817188C
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x91, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ThreeIsland_House2:: @ 8351CF4
+ .4byte gMapData_ThreeIsland_House2 @ 0x82D5CB8
+ .4byte gMapEvents_ThreeIsland_House2 @ 0x83BE97C
+ .4byte gMapScripts_ThreeIsland_House2 @ 0x81718DF
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 11
+ .byte 0x91, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ThreeIsland_House3:: @ 8351D10
+ .4byte gMapData_ThreeIsland_House3 @ 0x82D5CB8
+ .4byte gMapEvents_ThreeIsland_House3 @ 0x83BE9B0
+ .4byte gMapScripts_ThreeIsland_House3 @ 0x8171902
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 11
+ .byte 0x91, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ThreeIsland_House4:: @ 8351D2C
+ .4byte gMapData_ThreeIsland_House4 @ 0x82D5CB8
+ .4byte gMapEvents_ThreeIsland_House4 @ 0x83BE9FC
+ .4byte gMapScripts_ThreeIsland_House4 @ 0x817190C
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 11
+ .byte 0x91, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ThreeIsland_House5:: @ 8351D48
+ .4byte gMapData_ThreeIsland_House5 @ 0x82D5CB8
+ .4byte gMapEvents_ThreeIsland_House5 @ 0x83BEA30
+ .4byte gMapScripts_ThreeIsland_House5 @ 0x817191F
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 11
+ .byte 0x91, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FourIsland_PokemonDayCare:: @ 8351D64
+ .4byte gMapData_FourIsland_PokemonDayCare @ 0x833AFA8
+ .4byte gMapEvents_FourIsland_PokemonDayCare @ 0x83BEA64
+ .4byte gMapScripts_FourIsland_PokemonDayCare @ 0x817193F
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 277
+ .byte 0x92, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FourIsland_PokemonCenter_1F:: @ 8351D80
+ .4byte gMapData_FourIsland_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_FourIsland_PokemonCenter_1F @ 0x83BEB00
+ .4byte gMapScripts_FourIsland_PokemonCenter_1F @ 0x8171BEA
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x92, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FourIsland_PokemonCenter_2F:: @ 8351D9C
+ .4byte gMapData_FourIsland_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_FourIsland_PokemonCenter_2F @ 0x83BEB8C
+ .4byte gMapScripts_FourIsland_PokemonCenter_2F @ 0x8171C1D
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x92, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FourIsland_House1:: @ 8351DB8
+ .4byte gMapData_FourIsland_House1 @ 0x82D5CB8
+ .4byte gMapEvents_FourIsland_House1 @ 0x83BEBD8
+ .4byte gMapScripts_FourIsland_House1 @ 0x8171C44
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 11
+ .byte 0x92, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FourIsland_LoreleisHouse:: @ 8351DD4
+ .4byte gMapData_FourIsland_LoreleisHouse @ 0x82D7418
+ .4byte gMapEvents_FourIsland_LoreleisHouse @ 0x83BED5C
+ .4byte gMapScripts_FourIsland_LoreleisHouse @ 0x8171C4E
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 30
+ .byte 0x92, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FourIsland_Harbor:: @ 8351DF0
+ .4byte gMapData_FourIsland_Harbor @ 0x8343FB8
+ .4byte gMapEvents_FourIsland_Harbor @ 0x83BEDA8
+ .4byte gMapScripts_FourIsland_Harbor @ 0x8171C98
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 315
+ .byte 0x92, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FourIsland_House2:: @ 8351E0C
+ .4byte gMapData_FourIsland_House2 @ 0x82D5CB8
+ .4byte gMapEvents_FourIsland_House2 @ 0x83BEDDC
+ .4byte gMapScripts_FourIsland_House2 @ 0x8171CAC
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 11
+ .byte 0x92, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FourIsland_Mart:: @ 8351E28
+ .4byte gMapData_FourIsland_Mart @ 0x82D5BCC
+ .4byte gMapEvents_FourIsland_Mart @ 0x83BEE40
+ .4byte gMapScripts_FourIsland_Mart @ 0x8171CAD
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x92, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FiveIsland_PokemonCenter_1F:: @ 8351E44
+ .4byte gMapData_FiveIsland_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_FiveIsland_PokemonCenter_1F @ 0x83BEEDC
+ .4byte gMapScripts_FiveIsland_PokemonCenter_1F @ 0x8171CF1
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x93, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FiveIsland_PokemonCenter_2F:: @ 8351E60
+ .4byte gMapData_FiveIsland_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_FiveIsland_PokemonCenter_2F @ 0x83BEF68
+ .4byte gMapScripts_FiveIsland_PokemonCenter_2F @ 0x8171D1B
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x93, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FiveIsland_Harbor:: @ 8351E7C
+ .4byte gMapData_FiveIsland_Harbor @ 0x8343FB8
+ .4byte gMapEvents_FiveIsland_Harbor @ 0x83BEFB4
+ .4byte gMapScripts_FiveIsland_Harbor @ 0x8171D42
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 315
+ .byte 0x93, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FiveIsland_House1:: @ 8351E98
+ .4byte gMapData_FiveIsland_House1 @ 0x82D5CB8
+ .4byte gMapEvents_FiveIsland_House1 @ 0x83BEFE8
+ .4byte gMapScripts_FiveIsland_House1 @ 0x8171D56
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 11
+ .byte 0x93, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FiveIsland_House2:: @ 8351EB4
+ .4byte gMapData_FiveIsland_House2 @ 0x82D5CB8
+ .4byte gMapEvents_FiveIsland_House2 @ 0x83BF01C
+ .4byte gMapScripts_FiveIsland_House2 @ 0x8171D60
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 11
+ .byte 0x93, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SixIsland_PokemonCenter_1F:: @ 8351ED0
+ .4byte gMapData_SixIsland_PokemonCenter_1F @ 0x82D5990
+ .4byte gMapEvents_SixIsland_PokemonCenter_1F @ 0x83BF0A0
+ .4byte gMapScripts_SixIsland_PokemonCenter_1F @ 0x8171D6A
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 8
+ .byte 0x95, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SixIsland_PokemonCenter_2F:: @ 8351EEC
+ .4byte gMapData_SixIsland_PokemonCenter_2F @ 0x82D5AE0
+ .4byte gMapEvents_SixIsland_PokemonCenter_2F @ 0x83BF12C
+ .4byte gMapScripts_SixIsland_PokemonCenter_2F @ 0x8171E20
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 9
+ .byte 0x95, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SixIsland_Harbor:: @ 8351F08
+ .4byte gMapData_SixIsland_Harbor @ 0x8343FB8
+ .4byte gMapEvents_SixIsland_Harbor @ 0x83BF178
+ .4byte gMapScripts_SixIsland_Harbor @ 0x8171E47
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_SIX
+ .2byte 315
+ .byte 0x95, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SixIsland_House:: @ 8351F24
+ .4byte gMapData_SixIsland_House @ 0x82D5CB8
+ .4byte gMapEvents_SixIsland_House @ 0x83BF1AC
+ .4byte gMapScripts_SixIsland_House @ 0x8171E5B
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_SIX
+ .2byte 11
+ .byte 0x95, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SixIsland_Mart:: @ 8351F40
+ .4byte gMapData_SixIsland_Mart @ 0x82D5BCC
+ .4byte gMapEvents_SixIsland_Mart @ 0x83BF210
+ .4byte gMapScripts_SixIsland_Mart @ 0x8171E65
+ .4byte NULL
+ .2byte BGM_FRLG_POKEMON_CENTER
+ .2byte 10
+ .byte 0x95, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+ThreeIsland_Harbor:: @ 8351F5C
+ .4byte gMapData_ThreeIsland_Harbor @ 0x8343FB8
+ .4byte gMapEvents_ThreeIsland_Harbor @ 0x83BF25C
+ .4byte gMapScripts_ThreeIsland_Harbor @ 0x8171EA9
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 315
+ .byte 0x9a, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+FiveIsland_ResortGorgeous_House:: @ 8351F78
+ .4byte gMapData_FiveIsland_ResortGorgeous_House @ 0x82D657C
+ .4byte gMapEvents_FiveIsland_ResortGorgeous_House @ 0x83BF2C0
+ .4byte gMapScripts_FiveIsland_ResortGorgeous_House @ 0x8171EBD
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_FOUR
+ .2byte 17
+ .byte 0x9f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+TwoIsland_CapeBrink_House:: @ 8351F94
+ .4byte gMapData_TwoIsland_CapeBrink_House @ 0x82D5CB8
+ .4byte gMapEvents_TwoIsland_CapeBrink_House @ 0x83BF2F4
+ .4byte gMapScripts_TwoIsland_CapeBrink_House @ 0x817206B
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_ONE
+ .2byte 11
+ .byte 0x98, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SixIsland_WaterPath_House1:: @ 8351FB0
+ .4byte gMapData_SixIsland_WaterPath_House1 @ 0x82D6070
+ .4byte gMapEvents_SixIsland_WaterPath_House1 @ 0x83BF334
+ .4byte gMapScripts_SixIsland_WaterPath_House1 @ 0x817206C
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 13
+ .byte 0xa5, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SixIsland_WaterPath_House2:: @ 8351FCC
+ .4byte gMapData_SixIsland_WaterPath_House2 @ 0x82D5CB8
+ .4byte gMapEvents_SixIsland_WaterPath_House2 @ 0x83BF368
+ .4byte gMapScripts_SixIsland_WaterPath_House2 @ 0x8172178
+ .4byte NULL
+ .2byte BGM_FRLG_CERULEAN_CITY
+ .2byte 11
+ .byte 0xa5, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
+
+SevenIsland_SevaultCanyon_House:: @ 8351FE8
+ .4byte gMapData_SevenIsland_SevaultCanyon_House @ 0x82D5CB8
+ .4byte gMapEvents_SevenIsland_SevaultCanyon_House @ 0x83BF3CC
+ .4byte gMapScripts_SevenIsland_SevaultCanyon_House @ 0x8172182
+ .4byte NULL
+ .2byte BGM_FRLG_ISLAND_SIX
+ .2byte 11
+ .byte 0xa9, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
gMapGroup_00:: @ 8352004
- .4byte gMap_00_00
- .4byte gMap_00_01
- .4byte gMap_00_02
- .4byte gMap_00_03
- .4byte gMap_00_04
+ .4byte UnknownMap_00_00
+ .4byte UnknownMap_00_01
+ .4byte UnknownMap_00_02
+ .4byte UnknownMap_00_03
+ .4byte UnknownMap_00_04
gMapGroup_01:: @ 8352018
- .4byte gMap_01_00
- .4byte gMap_01_01
- .4byte gMap_01_02
- .4byte gMap_01_03
- .4byte gMap_01_04
- .4byte gMap_01_05
- .4byte gMap_01_06
- .4byte gMap_01_07
- .4byte gMap_01_08
- .4byte gMap_01_09
- .4byte gMap_01_10
- .4byte gMap_01_11
- .4byte gMap_01_12
- .4byte gMap_01_13
- .4byte gMap_01_14
- .4byte gMap_01_15
- .4byte gMap_01_16
- .4byte gMap_01_17
- .4byte gMap_01_18
- .4byte gMap_01_19
- .4byte gMap_01_20
- .4byte gMap_01_21
- .4byte gMap_01_22
- .4byte gMap_01_23
- .4byte gMap_01_24
- .4byte gMap_01_25
- .4byte gMap_01_26
- .4byte gMap_01_27
- .4byte gMap_01_28
- .4byte gMap_01_29
- .4byte gMap_01_30
- .4byte gMap_01_31
- .4byte gMap_01_32
- .4byte gMap_01_33
- .4byte gMap_01_34
- .4byte gMap_01_35
- .4byte gMap_01_36
- .4byte gMap_01_37
- .4byte gMap_01_38
- .4byte gMap_01_39
- .4byte gMap_01_40
- .4byte gMap_01_41
- .4byte gMap_01_42
- .4byte gMap_01_43
- .4byte gMap_01_44
- .4byte gMap_01_45
- .4byte gMap_01_46
- .4byte gMap_01_47
- .4byte gMap_01_48
- .4byte gMap_01_49
- .4byte gMap_01_50
- .4byte gMap_01_51
- .4byte gMap_01_52
- .4byte gMap_01_53
- .4byte gMap_01_54
- .4byte gMap_01_55
- .4byte gMap_01_56
- .4byte gMap_01_57
- .4byte gMap_01_58
- .4byte gMap_01_59
- .4byte gMap_01_60
- .4byte gMap_01_61
- .4byte gMap_01_62
- .4byte gMap_01_63
- .4byte gMap_01_64
- .4byte gMap_01_65
- .4byte gMap_01_66
- .4byte gMap_01_67
- .4byte gMap_01_68
- .4byte gMap_01_69
- .4byte gMap_01_70
- .4byte gMap_01_71
- .4byte gMap_01_72
- .4byte gMap_01_73
- .4byte gMap_01_74
- .4byte gMap_01_75
- .4byte gMap_01_76
- .4byte gMap_01_77
- .4byte gMap_01_78
- .4byte gMap_01_79
- .4byte gMap_01_80
- .4byte gMap_01_81
- .4byte gMap_01_82
- .4byte gMap_01_83
- .4byte gMap_01_84
- .4byte gMap_01_85
- .4byte gMap_01_86
- .4byte gMap_01_87
- .4byte gMap_01_88
- .4byte gMap_01_89
- .4byte gMap_01_90
- .4byte gMap_01_91
- .4byte gMap_01_92
- .4byte gMap_01_93
- .4byte gMap_01_94
- .4byte gMap_01_95
- .4byte gMap_01_96
- .4byte gMap_01_97
- .4byte gMap_01_98
- .4byte gMap_01_99
- .4byte gMap_01_100
- .4byte gMap_01_101
- .4byte gMap_01_102
- .4byte gMap_01_103
- .4byte gMap_01_104
- .4byte gMap_01_105
- .4byte gMap_01_106
- .4byte gMap_01_107
- .4byte gMap_01_108
- .4byte gMap_01_109
- .4byte gMap_01_110
- .4byte gMap_01_111
- .4byte gMap_01_112
- .4byte gMap_01_113
- .4byte gMap_01_114
- .4byte gMap_01_115
- .4byte gMap_01_116
- .4byte gMap_01_117
- .4byte gMap_01_118
- .4byte gMap_01_119
- .4byte gMap_01_120
- .4byte gMap_01_121
- .4byte gMap_01_122
+ .4byte ViridianForest
+ .4byte MtMoon_1F
+ .4byte MtMoon_B1F
+ .4byte MtMoon_B2F
+ .4byte SSAnne_Exterior
+ .4byte SSAnne_1F_Corridor
+ .4byte SSAnne_2F_Corridor
+ .4byte SSAnne_3F_Corridor
+ .4byte SSAnne_B1F_Corridor
+ .4byte SSAnne_Deck
+ .4byte SSAnne_Kitchen
+ .4byte SSAnne_CaptainsOffice
+ .4byte SSAnne_1F_Room1
+ .4byte SSAnne_1F_Room2
+ .4byte SSAnne_1F_Room3
+ .4byte SSAnne_1F_Room4
+ .4byte SSAnne_1F_Room5
+ .4byte SSAnne_1F_Room7
+ .4byte SSAnne_2F_Room1
+ .4byte SSAnne_2F_Room2
+ .4byte SSAnne_2F_Room3
+ .4byte SSAnne_2F_Room4
+ .4byte SSAnne_2F_Room5
+ .4byte SSAnne_2F_Room6
+ .4byte SSAnne_B1F_Room1
+ .4byte SSAnne_B1F_Room2
+ .4byte SSAnne_B1F_Room3
+ .4byte SSAnne_B1F_Room4
+ .4byte SSAnne_B1F_Room5
+ .4byte SSAnne_1F_Room6
+ .4byte UndergroundPath_NorthEntrance
+ .4byte UndergroundPath_NorthSouthTunnel
+ .4byte UndergroundPath_SouthEntrance
+ .4byte UndergroundPath_WestEntrance
+ .4byte UndergroundPath_EastWestTunnel
+ .4byte UndergroundPath_EastEntrance
+ .4byte DiglettsCave_NorthEntrance
+ .4byte DiglettsCave_B1F
+ .4byte DiglettsCave_SouthEntrance
+ .4byte VictoryRoad_1F
+ .4byte VictoryRoad_2F
+ .4byte VictoryRoad_3F
+ .4byte RocketHideout_B1F
+ .4byte RocketHideout_B2F
+ .4byte RocketHideout_B3F
+ .4byte RocketHideout_B4F
+ .4byte RocketHideout_Elevator
+ .4byte SilphCo_1F
+ .4byte SilphCo_2F
+ .4byte SilphCo_3F
+ .4byte SilphCo_4F
+ .4byte SilphCo_5F
+ .4byte SilphCo_6F
+ .4byte SilphCo_7F
+ .4byte SilphCo_8F
+ .4byte SilphCo_9F
+ .4byte SilphCo_10F
+ .4byte SilphCo_11F
+ .4byte SilphCo_Elevator
+ .4byte PokemonMansion_1F
+ .4byte PokemonMansion_2F
+ .4byte PokemonMansion_3F
+ .4byte PokemonMansion_B1F
+ .4byte SafariZone_Center
+ .4byte SafariZone_East
+ .4byte SafariZone_North
+ .4byte SafariZone_West
+ .4byte SafariZone_Building1
+ .4byte SafariZone_Building2
+ .4byte SafariZone_Building3
+ .4byte SafariZone_Building4
+ .4byte SafariZone_SecretHouse
+ .4byte CeruleanCave_1F
+ .4byte CeruleanCave_2F
+ .4byte CeruleanCave_B1F
+ .4byte PokemonLeague_LoreleisRoom
+ .4byte PokemonLeague_BrunosRoom
+ .4byte PokemonLeague_AgathasRoom
+ .4byte PokemonLeague_LancesRoom
+ .4byte PokemonLeague_ChampionsRoom
+ .4byte PokemonLeague_HallOfFame
+ .4byte RockTunnel_1F
+ .4byte RockTunnel_B1F
+ .4byte SeafoamIslands_1F
+ .4byte SeafoamIslands_B1F
+ .4byte SeafoamIslands_B2F
+ .4byte SeafoamIslands_B3F
+ .4byte SeafoamIslands_B4F
+ .4byte PokemonTower_1F
+ .4byte PokemonTower_2F
+ .4byte PokemonTower_3F
+ .4byte PokemonTower_4F
+ .4byte PokemonTower_5F
+ .4byte PokemonTower_6F
+ .4byte PokemonTower_7F
+ .4byte PowerPlant
+ .4byte MtEmber_RubyPath_B4F
+ .4byte MtEmber_Exterior
+ .4byte MtEmber_SummitPath_1F
+ .4byte MtEmber_SummitPath_2F
+ .4byte MtEmber_SummitPath_3F
+ .4byte MtEmber_Summit
+ .4byte MtEmber_RubyPath_B5F
+ .4byte SSAnne_Kitchen3
+ .4byte MtEmber_RubyPath_B1F
+ .4byte MtEmber_RubyPath_B2F
+ .4byte MtEmber_RubyPath_B3F
+ .4byte MtEmber_RubyPath_B1F_Stairs
+ .4byte MtEmber_RubyPath_B2F_Stairs
+ .4byte ThreeIsland_BerryForest
+ .4byte FourIsland_IcefallCave_Entrance
+ .4byte FourIsland_IcefallCave_1F
+ .4byte SSAnne_CaptainsOffice2
+ .4byte SSAnne_CaptainsOffice3
+ .4byte SSAnne_CaptainsOffice4
+ .4byte SSAnne_CaptainsOffice5
+ .4byte SixIsland_DottedHole_B1F
+ .4byte SixIsland_DottedHole_B2F
+ .4byte SixIsland_DottedHole_B3F
+ .4byte SSAnne_CaptainsOffice9
+ .4byte SixIsland_DottedHole_SapphireRoom
+ .4byte SSAnne_1F_Room11
+ .4byte SSAnne_1F_Room12
gMapGroup_02:: @ 8352204
- .4byte gMap_02_00
- .4byte gMap_02_01
- .4byte gMap_02_02
- .4byte gMap_02_03
- .4byte gMap_02_04
- .4byte gMap_02_05
- .4byte gMap_02_06
- .4byte gMap_02_07
- .4byte gMap_02_08
- .4byte gMap_02_09
- .4byte gMap_02_10
- .4byte gMap_02_11
- .4byte gMap_02_12
- .4byte gMap_02_13
- .4byte gMap_02_14
- .4byte gMap_02_15
- .4byte gMap_02_16
- .4byte gMap_02_17
- .4byte gMap_02_18
- .4byte gMap_02_19
- .4byte gMap_02_20
- .4byte gMap_02_21
- .4byte gMap_02_22
- .4byte gMap_02_23
- .4byte gMap_02_24
- .4byte gMap_02_25
- .4byte gMap_02_26
- .4byte gMap_02_27
- .4byte gMap_02_28
- .4byte gMap_02_29
- .4byte gMap_02_30
- .4byte gMap_02_31
- .4byte gMap_02_32
- .4byte gMap_02_33
- .4byte gMap_02_34
- .4byte gMap_02_35
- .4byte gMap_02_36
- .4byte gMap_02_37
- .4byte gMap_02_38
- .4byte gMap_02_39
- .4byte gMap_02_40
- .4byte gMap_02_41
- .4byte gMap_02_42
- .4byte gMap_02_43
- .4byte gMap_02_44
- .4byte gMap_02_45
- .4byte gMap_02_46
- .4byte gMap_02_47
- .4byte gMap_02_48
- .4byte gMap_02_49
- .4byte gMap_02_50
- .4byte gMap_02_51
- .4byte gMap_02_52
- .4byte gMap_02_53
- .4byte gMap_02_54
- .4byte gMap_02_55
- .4byte gMap_02_56
- .4byte gMap_02_57
- .4byte gMap_02_58
- .4byte gMap_02_59
+ .4byte NavelRock_Exterior
+ .4byte SevenIsland_TrainerTower_1F
+ .4byte SevenIsland_TrainerTower_2F
+ .4byte SevenIsland_TrainerTower_3F
+ .4byte SevenIsland_TrainerTower_4F
+ .4byte SevenIsland_TrainerTower_5F
+ .4byte SevenIsland_TrainerTower_6F
+ .4byte SevenIsland_TrainerTower_7F
+ .4byte SevenIsland_TrainerTower_8F
+ .4byte SevenIsland_TrainerTower_Roof
+ .4byte SevenIsland_TrainerTower_Lobby
+ .4byte SevenIsland_TrainerTower_Elevator
+ .4byte FiveIsland_LostCave_Entrance
+ .4byte FiveIsland_LostCave_Room1
+ .4byte FiveIsland_LostCave_Room2
+ .4byte FiveIsland_LostCave_Room3
+ .4byte FiveIsland_LostCave_Room4
+ .4byte FiveIsland_LostCave_Room5
+ .4byte FiveIsland_LostCave_Room6
+ .4byte FiveIsland_LostCave_Room7
+ .4byte FiveIsland_LostCave_Room8
+ .4byte FiveIsland_LostCave_Room9
+ .4byte FiveIsland_LostCave_Room10
+ .4byte FiveIsland_LostCave_Room11
+ .4byte FiveIsland_LostCave_Room12
+ .4byte FiveIsland_LostCave_Room13
+ .4byte FiveIsland_LostCave_Room14
+ .4byte SevenIsland_TanobyRuins_MoneanChamber
+ .4byte SevenIsland_TanobyRuins_LiptooChamber
+ .4byte SevenIsland_TanobyRuins_WeepthChamber
+ .4byte SevenIsland_TanobyRuins_DilfordChamber
+ .4byte SevenIsland_TanobyRuins_ScufibChamber
+ .4byte SevenIsland_TanobyRuins_RixyChamber
+ .4byte SevenIsland_TanobyRuins_ViapoisChamber
+ .4byte ThreeIsland_DunsparceTunnel
+ .4byte SevenIsland_SeavaultCanyon_TanobyKey
+ .4byte NavelRock_1F
+ .4byte NavelRock_Summit
+ .4byte NavelRock_Base
+ .4byte NavelRock_SummitPath_2F
+ .4byte NavelRock_SummitPath_3F
+ .4byte NavelRock_SummitPath_4F
+ .4byte NavelRock_SummitPath_5F
+ .4byte NavelRock_BasePath_B1F
+ .4byte NavelRock_BasePath_B2F
+ .4byte NavelRock_BasePath_B3F
+ .4byte NavelRock_BasePath_B4F
+ .4byte NavelRock_BasePath_B5F
+ .4byte NavelRock_BasePath_B6F
+ .4byte NavelRock_BasePath_B7F
+ .4byte NavelRock_BasePath_B8F
+ .4byte NavelRock_BasePath_B9F
+ .4byte NavelRock_BasePath_B10F
+ .4byte NavelRock_BasePath_B11F
+ .4byte NavelRock_B1F
+ .4byte NavelRock_Fork
+ .4byte BirthIsland_Exterior
+ .4byte OneIsland_KindleRoad_EmberSpa
+ .4byte BirthIsland_Harbor
+ .4byte NavelRock_Harbor
gMapGroup_03:: @ 83522F4
- .4byte gMap_03_00
- .4byte gMap_03_01
- .4byte gMap_03_02
- .4byte gMap_03_03
- .4byte gMap_03_04
- .4byte gMap_03_05
- .4byte gMap_03_06
- .4byte gMap_03_07
- .4byte gMap_03_08
- .4byte gMap_03_09
- .4byte gMap_03_10
- .4byte gMap_03_11
- .4byte gMap_03_12
- .4byte gMap_03_13
- .4byte gMap_03_14
- .4byte gMap_03_15
- .4byte gMap_03_16
- .4byte gMap_03_17
- .4byte gMap_03_18
- .4byte gMap_03_19
- .4byte gMap_03_20
- .4byte gMap_03_21
- .4byte gMap_03_22
- .4byte gMap_03_23
- .4byte gMap_03_24
- .4byte gMap_03_25
- .4byte gMap_03_26
- .4byte gMap_03_27
- .4byte gMap_03_28
- .4byte gMap_03_29
- .4byte gMap_03_30
- .4byte gMap_03_31
- .4byte gMap_03_32
- .4byte gMap_03_33
- .4byte gMap_03_34
- .4byte gMap_03_35
- .4byte gMap_03_36
- .4byte gMap_03_37
- .4byte gMap_03_38
- .4byte gMap_03_39
- .4byte gMap_03_40
- .4byte gMap_03_41
- .4byte gMap_03_42
- .4byte gMap_03_43
- .4byte gMap_03_44
- .4byte gMap_03_45
- .4byte gMap_03_46
- .4byte gMap_03_47
- .4byte gMap_03_48
- .4byte gMap_03_49
- .4byte gMap_03_50
- .4byte gMap_03_51
- .4byte gMap_03_52
- .4byte gMap_03_53
- .4byte gMap_03_54
- .4byte gMap_03_55
- .4byte gMap_03_56
- .4byte gMap_03_57
- .4byte gMap_03_58
- .4byte gMap_03_59
- .4byte gMap_03_60
- .4byte gMap_03_61
- .4byte gMap_03_62
- .4byte gMap_03_63
- .4byte gMap_03_64
- .4byte gMap_03_65
+ .4byte PalletTown
+ .4byte ViridianCity
+ .4byte PewterCity
+ .4byte CeruleanCity
+ .4byte LavenderTown
+ .4byte VermilionCity
+ .4byte CeladonCity
+ .4byte FuchsiaCity
+ .4byte CinnabarIsland
+ .4byte IndigoPlateau_Exterior
+ .4byte SaffronCity_Duplicate
+ .4byte SaffronCity
+ .4byte OneIsland
+ .4byte TwoIsland
+ .4byte ThreeIsland
+ .4byte FourIsland
+ .4byte FiveIsland
+ .4byte SevenIsland
+ .4byte SixIsland
+ .4byte Route1
+ .4byte Route2
+ .4byte Route3
+ .4byte Route4
+ .4byte Route5
+ .4byte Route6
+ .4byte Route7
+ .4byte Route8
+ .4byte Route9
+ .4byte Route10
+ .4byte Route11
+ .4byte Route12
+ .4byte Route13
+ .4byte Route14
+ .4byte Route15
+ .4byte Route16
+ .4byte Route17
+ .4byte Route18
+ .4byte Route19
+ .4byte Route20
+ .4byte Route21_North
+ .4byte Route21_South
+ .4byte Route22
+ .4byte Route23
+ .4byte Route24
+ .4byte Route25
+ .4byte OneIsland_KindleRoad
+ .4byte OneIsland_TreasureBeach
+ .4byte TwoIsland_CapeBrink
+ .4byte ThreeIsland_BondBridge
+ .4byte ThreeIsland_Port
+ .4byte UnknownMap_03_50
+ .4byte UnknownMap_03_51
+ .4byte UnknownMap_03_52
+ .4byte UnknownMap_03_53
+ .4byte FiveIsland_ResortGorgeous
+ .4byte FiveIsland_WaterLabyrinth
+ .4byte FiveIsland_Meadow
+ .4byte FiveIsland_MemorialPillar
+ .4byte SixIsland_OutcastIsland
+ .4byte SixIsland_GreenPath
+ .4byte SixIsland_WaterPath
+ .4byte SixIsland_RuinValley
+ .4byte SevenIsland_TrainerTower
+ .4byte SevenIsland_SevaultCanyon_Entrance
+ .4byte SevenIsland_SevaultCanyon
+ .4byte SevenIsland_TanobyRuins
gMapGroup_04:: @ 83523FC
- .4byte gMap_04_00
- .4byte gMap_04_01
- .4byte gMap_04_02
- .4byte gMap_04_03
+ .4byte PalletTown_PlayersHouse_1F
+ .4byte PalletTown_PlayersHouse_2F
+ .4byte PalletTown_GarysHouse
+ .4byte PalletTown_ProfessorOaksLab
gMapGroup_05:: @ 835240C
- .4byte gMap_05_00
- .4byte gMap_05_01
- .4byte gMap_05_02
- .4byte gMap_05_03
- .4byte gMap_05_04
- .4byte gMap_05_05
+ .4byte ViridianCity_House1
+ .4byte ViridianCity_Gym
+ .4byte ViridianCity_House2
+ .4byte ViridianCity_Mart
+ .4byte ViridianCity_PokemonCenter_1F
+ .4byte ViridianCity_PokemonCenter_2F
gMapGroup_06:: @ 8352424
- .4byte gMap_06_00
- .4byte gMap_06_01
- .4byte gMap_06_02
- .4byte gMap_06_03
- .4byte gMap_06_04
- .4byte gMap_06_05
- .4byte gMap_06_06
- .4byte gMap_06_07
+ .4byte PewterCity_Museum_1F
+ .4byte PewterCity_Museum_2F
+ .4byte PewterCity_Gym
+ .4byte PewterCity_Mart
+ .4byte PewterCity_House1
+ .4byte PewterCity_PokemonCenter_1F
+ .4byte PewterCity_PokemonCenter_2F
+ .4byte PewterCity_House2
gMapGroup_07:: @ 8352444
- .4byte gMap_07_00
- .4byte gMap_07_01
- .4byte gMap_07_02
- .4byte gMap_07_03
- .4byte gMap_07_04
- .4byte gMap_07_05
- .4byte gMap_07_06
- .4byte gMap_07_07
- .4byte gMap_07_08
- .4byte gMap_07_09
+ .4byte CeruleanCity_House1
+ .4byte CeruleanCity_House2
+ .4byte CeruleanCity_House3
+ .4byte CeruleanCity_PokemonCenter_1F
+ .4byte CeruleanCity_PokemonCenter_2F
+ .4byte CeruleanCity_Gym
+ .4byte CeruleanCity_BikeShop
+ .4byte CeruleanCity_Mart
+ .4byte CeruleanCity_House4
+ .4byte CeruleanCity_House5
gMapGroup_08:: @ 835246C
- .4byte gMap_08_00
- .4byte gMap_08_01
- .4byte gMap_08_02
- .4byte gMap_08_03
- .4byte gMap_08_04
- .4byte gMap_08_05
+ .4byte LavenderTown_PokemonCenter_1F
+ .4byte LavenderTown_PokemonCenter_2F
+ .4byte LavenderTown_VolunteerPokemonHouse
+ .4byte LavenderTown_House1
+ .4byte LavenderTown_House2
+ .4byte LavenderTown_Mart
gMapGroup_09:: @ 8352484
- .4byte gMap_09_00
- .4byte gMap_09_01
- .4byte gMap_09_02
- .4byte gMap_09_03
- .4byte gMap_09_04
- .4byte gMap_09_05
- .4byte gMap_09_06
- .4byte gMap_09_07
+ .4byte VermilionCity_House1
+ .4byte VermilionCity_PokemonCenter_1F
+ .4byte VermilionCity_PokemonCenter_2F
+ .4byte VermilionCity_PokemonFanClub
+ .4byte VermilionCity_House2
+ .4byte VermilionCity_Mart
+ .4byte VermilionCity_Gym
+ .4byte VermilionCity_House3
gMapGroup_10:: @ 83524A4
- .4byte gMap_10_00
- .4byte gMap_10_01
- .4byte gMap_10_02
- .4byte gMap_10_03
- .4byte gMap_10_04
- .4byte gMap_10_05
- .4byte gMap_10_06
- .4byte gMap_10_07
- .4byte gMap_10_08
- .4byte gMap_10_09
- .4byte gMap_10_10
- .4byte gMap_10_11
- .4byte gMap_10_12
- .4byte gMap_10_13
- .4byte gMap_10_14
- .4byte gMap_10_15
- .4byte gMap_10_16
- .4byte gMap_10_17
- .4byte gMap_10_18
- .4byte gMap_10_19
+ .4byte CeladonCity_DepartmentStore_1F
+ .4byte CeladonCity_DepartmentStore_2F
+ .4byte CeladonCity_DepartmentStore_3F
+ .4byte CeladonCity_DepartmentStore_4F
+ .4byte CeladonCity_DepartmentStore_5F
+ .4byte CeladonCity_DepartmentStore_Roof
+ .4byte CeladonCity_DepartmentStore_Elevator
+ .4byte CeladonCity_Condominiums_1F
+ .4byte CeladonCity_Condominiums_2F
+ .4byte CeladonCity_Condominiums_3F
+ .4byte CeladonCity_Condominiums_Roof
+ .4byte CeladonCity_Condominiums_RoofRoom
+ .4byte CeladonCity_PokemonCenter_1F
+ .4byte CeladonCity_PokemonCenter_2F
+ .4byte CeladonCity_GameCorner
+ .4byte CeladonCity_GameCorner_PrizeRoom
+ .4byte CeladonCity_Gym
+ .4byte CeladonCity_Restaurant
+ .4byte CeladonCity_House1
+ .4byte CeladonCity_Hotel
gMapGroup_11:: @ 83524F4
- .4byte gMap_11_00
- .4byte gMap_11_01
- .4byte gMap_11_02
- .4byte gMap_11_03
- .4byte gMap_11_04
- .4byte gMap_11_05
- .4byte gMap_11_06
- .4byte gMap_11_07
- .4byte gMap_11_08
- .4byte gMap_11_09
+ .4byte FuchsiaCity_SafariZone_Entrance
+ .4byte FuchsiaCity_Mart
+ .4byte FuchsiaCity_ZooBuilding
+ .4byte FuchsiaCity_Gym
+ .4byte FuchsiaCity_House1
+ .4byte FuchsiaCity_PokemonCenter_1F
+ .4byte FuchsiaCity_PokemonCenter_2F
+ .4byte FuchsiaCity_Building1
+ .4byte FuchsiaCity_House2
+ .4byte FuchsiaCity_House3
gMapGroup_12:: @ 835251C
- .4byte gMap_12_00
- .4byte gMap_12_01
- .4byte gMap_12_02
- .4byte gMap_12_03
- .4byte gMap_12_04
- .4byte gMap_12_05
- .4byte gMap_12_06
- .4byte gMap_12_07
+ .4byte CinnabarIsland_Gym
+ .4byte CinnabarIsland_PokemonLab_Entrance
+ .4byte CinnabarIsland_PokemonLab_Lounge
+ .4byte CinnabarIsland_PokemonLab_ResearchRoom
+ .4byte CinnabarIsland_PokemonLab_ExperimentRoom
+ .4byte CinnabarIsland_PokemonCenter_1F
+ .4byte CinnabarIsland_PokemonCenter_2F
+ .4byte CinnabarIsland_Mart
gMapGroup_13:: @ 835253C
- .4byte gMap_13_00
- .4byte gMap_13_01
+ .4byte IndigoPlateau_PokemonCenter_1F
+ .4byte IndigoPlateau_PokemonCenter_2F
gMapGroup_14:: @ 8352544
- .4byte gMap_14_00
- .4byte gMap_14_01
- .4byte gMap_14_02
- .4byte gMap_14_03
- .4byte gMap_14_04
- .4byte gMap_14_05
- .4byte gMap_14_06
- .4byte gMap_14_07
- .4byte gMap_14_08
- .4byte gMap_14_09
+ .4byte SaffronCity_House1_1F
+ .4byte SaffronCity_House1_2F
+ .4byte SaffronCity_Dojo
+ .4byte SaffronCity_Gym
+ .4byte SaffronCity_House2
+ .4byte SaffronCity_Mart
+ .4byte SaffronCity_PokemonCenter_1F
+ .4byte SaffronCity_PokemonCenter_2F
+ .4byte SaffronCity_House3
+ .4byte SaffronCity_PokemonTrainerFanClub
gMapGroup_15:: @ 835256C
- .4byte gMap_15_00
- .4byte gMap_15_01
- .4byte gMap_15_02
- .4byte gMap_15_03
+ .4byte Route2_ViridianForest_SouthEntrance
+ .4byte Route2_House
+ .4byte Route2_EastBuilding
+ .4byte Route2_ViridianForest_NorthEntrance
gMapGroup_16:: @ 835257C
- .4byte gMap_16_00
- .4byte gMap_16_01
+ .4byte Route4_PokemonCenter_1F
+ .4byte Route4_PokemonCenter_2F
gMapGroup_17:: @ 8352584
- .4byte gMap_17_00
- .4byte gMap_17_01
+ .4byte Route5_PokemonDayCare
+ .4byte Route5_SouthEntrance
gMapGroup_18:: @ 835258C
- .4byte gMap_18_00
- .4byte gMap_18_01
+ .4byte Route6_NorthEntrance
+ .4byte UnknownMap_18_01
gMapGroup_19:: @ 8352594
- .4byte gMap_19_00
+ .4byte Route7_EastEntrance
gMapGroup_20:: @ 8352598
- .4byte gMap_20_00
+ .4byte Route8_WestEntrance
gMapGroup_21:: @ 835259C
- .4byte gMap_21_00
- .4byte gMap_21_01
+ .4byte Route10_PokemonCenter_1F
+ .4byte Route10_PokemonCenter_2F
gMapGroup_22:: @ 83525A4
- .4byte gMap_22_00
- .4byte gMap_22_01
+ .4byte Route11_EastEntrance_1F
+ .4byte Route11_EastEntrance_2F
gMapGroup_23:: @ 83525AC
- .4byte gMap_23_00
- .4byte gMap_23_01
- .4byte gMap_23_02
+ .4byte Route12_NorthEntrance_1F
+ .4byte Route12_NorthEntrance_2F
+ .4byte Route12_FishingHouse
gMapGroup_24:: @ 83525B8
- .4byte gMap_24_00
- .4byte gMap_24_01
+ .4byte Route15_WestEntrance_1F
+ .4byte Route15_WestEntrance_2F
gMapGroup_25:: @ 83525C0
- .4byte gMap_25_00
- .4byte gMap_25_01
- .4byte gMap_25_02
+ .4byte Route16_House
+ .4byte Route16_NorthEntrance_1F
+ .4byte Route16_NorthEntrance_2F
gMapGroup_26:: @ 83525CC
- .4byte gMap_26_00
- .4byte gMap_26_01
+ .4byte Route18_EastEntrance_1F
+ .4byte Route18_EastEntrance_2F
gMapGroup_27:: @ 83525D4
- .4byte gMap_27_00
+ .4byte UnusedHouse_27_00
gMapGroup_28:: @ 83525D8
- .4byte gMap_28_00
+ .4byte Route22_NorthEntrance
gMapGroup_29:: @ 83525DC
- .4byte gMap_29_00
+ .4byte UnusedHouse_29_00
gMapGroup_30:: @ 83525E0
- .4byte gMap_30_00
+ .4byte Route25_SeaCottage
gMapGroup_31:: @ 83525E4
- .4byte gMap_31_00
- .4byte gMap_31_01
- .4byte gMap_31_02
- .4byte gMap_31_03
- .4byte gMap_31_04
- .4byte gMap_31_05
- .4byte gMap_31_06
+ .4byte SevenIsland_House_Room1
+ .4byte SevenIsland_House_Room2
+ .4byte SevenIsland_Mart
+ .4byte SevenIsland_PokemonCenter_1F
+ .4byte SevenIsland_PokemonCenter_2F
+ .4byte UnusedHouse_31_05
+ .4byte SevenIsland_Harbor
gMapGroup_32:: @ 8352600
- .4byte gMap_32_00
- .4byte gMap_32_01
- .4byte gMap_32_02
- .4byte gMap_32_03
- .4byte gMap_32_04
+ .4byte OneIsland_PokemonCenter_1F
+ .4byte OneIsland_PokemonCenter_2F
+ .4byte OneIsland_House1
+ .4byte OneIsland_House2
+ .4byte OneIsland_Harbor
gMapGroup_33:: @ 8352614
- .4byte gMap_33_00
- .4byte gMap_33_01
- .4byte gMap_33_02
- .4byte gMap_33_03
- .4byte gMap_33_04
+ .4byte TwoIsland_JoyfulGameCorner
+ .4byte TwoIsland_House
+ .4byte TwoIsland_PokemonCenter_1F
+ .4byte TwoIsland_PokemonCenter_2F
+ .4byte TwoIsland_Harbor
gMapGroup_34:: @ 8352628
- .4byte gMap_34_00
- .4byte gMap_34_01
- .4byte gMap_34_02
- .4byte gMap_34_03
- .4byte gMap_34_04
- .4byte gMap_34_05
- .4byte gMap_34_06
- .4byte gMap_34_07
+ .4byte ThreeIsland_House1
+ .4byte ThreeIsland_PokemonCenter_1F
+ .4byte ThreeIsland_PokemonCenter_2F
+ .4byte ThreeIsland_Mart
+ .4byte ThreeIsland_House2
+ .4byte ThreeIsland_House3
+ .4byte ThreeIsland_House4
+ .4byte ThreeIsland_House5
gMapGroup_35:: @ 8352648
- .4byte gMap_35_00
- .4byte gMap_35_01
- .4byte gMap_35_02
- .4byte gMap_35_03
- .4byte gMap_35_04
- .4byte gMap_35_05
- .4byte gMap_35_06
- .4byte gMap_35_07
+ .4byte FourIsland_PokemonDayCare
+ .4byte FourIsland_PokemonCenter_1F
+ .4byte FourIsland_PokemonCenter_2F
+ .4byte FourIsland_House1
+ .4byte FourIsland_LoreleisHouse
+ .4byte FourIsland_Harbor
+ .4byte FourIsland_House2
+ .4byte FourIsland_Mart
gMapGroup_36:: @ 8352668
- .4byte gMap_36_00
- .4byte gMap_36_01
- .4byte gMap_36_02
- .4byte gMap_36_03
- .4byte gMap_36_04
+ .4byte FiveIsland_PokemonCenter_1F
+ .4byte FiveIsland_PokemonCenter_2F
+ .4byte FiveIsland_Harbor
+ .4byte FiveIsland_House1
+ .4byte FiveIsland_House2
gMapGroup_37:: @ 835267C
- .4byte gMap_37_00
- .4byte gMap_37_01
- .4byte gMap_37_02
- .4byte gMap_37_03
- .4byte gMap_37_04
+ .4byte SixIsland_PokemonCenter_1F
+ .4byte SixIsland_PokemonCenter_2F
+ .4byte SixIsland_Harbor
+ .4byte SixIsland_House
+ .4byte SixIsland_Mart
gMapGroup_38:: @ 8352690
- .4byte gMap_38_00
+ .4byte ThreeIsland_Harbor
gMapGroup_39:: @ 8352694
- .4byte gMap_39_00
+ .4byte FiveIsland_ResortGorgeous_House
gMapGroup_40:: @ 8352698
- .4byte gMap_40_00
+ .4byte TwoIsland_CapeBrink_House
gMapGroup_41:: @ 835269C
- .4byte gMap_41_00
- .4byte gMap_41_01
+ .4byte SixIsland_WaterPath_House1
+ .4byte SixIsland_WaterPath_House2
gMapGroup_42:: @ 83526A4
- .4byte gMap_42_00
+ .4byte SevenIsland_SevaultCanyon_House
gMapGroups:: @ 0x83526A8
.4byte gMapGroup_00
diff --git a/data/menu_indicators.s b/data/menu_indicators.s
new file mode 100644
index 000000000..dd8911c7d
--- /dev/null
+++ b/data/menu_indicators.s
@@ -0,0 +1,46 @@
+ .section .rodata
+ .align 2
+gUnknown_846325C:: @ 846325C
+ .incbin "baserom.gba", 0x46325C, 0x48
+
+gUnknown_84632A4:: @ 84632A4
+ .incbin "baserom.gba", 0x4632A4, 0x18
+
+gUnknown_84632BC:: @ 84632BC
+ .incbin "baserom.gba", 0x4632BC, 0x4
+
+gUnknown_84632C0:: @ 84632C0
+ .incbin "baserom.gba", 0x4632C0, 0x4
+
+gUnknown_84632C4:: @ 84632C4
+ .incbin "baserom.gba", 0x4632C4, 0x4
+
+gUnknown_84632C8:: @ 84632C8
+ .incbin "baserom.gba", 0x4632C8, 0x4
+
+gUnknown_84632CC:: @ 84632CC
+ .incbin "baserom.gba", 0x4632CC, 0x4
+
+gUnknown_84632D0:: @ 84632D0
+ .incbin "baserom.gba", 0x4632D0, 0x4
+
+gUnknown_84632D4:: @ 84632D4
+ .incbin "baserom.gba", 0x4632D4, 0x4
+
+gUnknown_84632D8:: @ 84632D8
+ .incbin "baserom.gba", 0x4632D8, 0x18
+
+gUnknown_84632F0:: @ 84632F0
+ .incbin "baserom.gba", 0x4632F0, 0x18
+
+gUnknown_8463308:: @ 8463308
+ .incbin "baserom.gba", 0x463308, 0x20
+
+gUnknown_8463328:: @ 8463328
+ .incbin "baserom.gba", 0x463328, 0x70
+
+gUnknown_8463398:: @ 8463398
+ .incbin "baserom.gba", 0x463398, 0x40
+
+gUnknown_84633D8:: @ 84633D8
+ .incbin "baserom.gba", 0x4633D8, 0x44
diff --git a/data/mystery_gift_menu.s b/data/mystery_gift_menu.s
new file mode 100644
index 000000000..9caee4467
--- /dev/null
+++ b/data/mystery_gift_menu.s
@@ -0,0 +1,14 @@
+ .section .rodata
+ .align 2
+
+gUnknown_8466D10:: @ 8466D10
+ .incbin "baserom.gba", 0x466D10, 0x20
+
+gUnknown_8466D30:: @ 8466D30
+ .incbin "baserom.gba", 0x466D30, 0x30
+
+gUnknown_8466D60:: @ 8466D60
+ .incbin "baserom.gba", 0x466D60, 0x10
+
+gUnknown_8466D70:: @ 8466D70
+ .incbin "baserom.gba", 0x466D70, 0x20
diff --git a/data/oak_speech/help_docs_page2_tilemap.bin b/data/oak_speech/help_docs_page2_tilemap.bin
new file mode 100644
index 000000000..6d3cd42f1
--- /dev/null
+++ b/data/oak_speech/help_docs_page2_tilemap.bin
Binary files differ
diff --git a/data/oak_speech/help_docs_page3_tilemap.bin b/data/oak_speech/help_docs_page3_tilemap.bin
new file mode 100644
index 000000000..24805c96e
--- /dev/null
+++ b/data/oak_speech/help_docs_page3_tilemap.bin
Binary files differ
diff --git a/data/oak_speech/help_docs_palette.pal b/data/oak_speech/help_docs_palette.pal
new file mode 100644
index 000000000..b6905b913
--- /dev/null
+++ b/data/oak_speech/help_docs_palette.pal
@@ -0,0 +1,67 @@
+JASC-PAL
+0100
+64
+16 115 230
+65 139 131
+82 148 139
+106 164 156
+131 180 172
+156 197 189
+180 213 205
+205 230 222
+230 246 238
+255 0 255
+255 0 255
+0 90 16
+255 0 0
+49 82 205
+255 255 255
+32 32 32
+16 115 230
+255 255 164
+255 255 106
+222 222 90
+189 189 74
+156 156 57
+156 156 57
+123 123 49
+90 90 32
+57 57 16
+255 0 0
+255 0 0
+255 0 0
+255 0 0
+255 0 0
+0 0 0
+238 230 172
+115 180 197
+156 213 238
+205 238 246
+246 255 255
+230 246 246
+106 106 106
+74 82 106
+82 98 180
+230 246 246
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 74 139
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 0 255
+123 123 123
+172 172 156
+197 197 197
+222 222 222
+238 238 238
+255 255 255
diff --git a/data/oak_speech/new_game_adventure_intro_tilemap.bin b/data/oak_speech/new_game_adventure_intro_tilemap.bin
new file mode 100644
index 000000000..ad1c8216c
--- /dev/null
+++ b/data/oak_speech/new_game_adventure_intro_tilemap.bin
@@ -0,0 +1,2 @@
+^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^                                ` `   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` `   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (`   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (`   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` `   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `   ` ` a b c d e f   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (p q r s t u v   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` g h i j k l m   ` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (w x y z { | }   ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` n o   ` ~   
+ \ No newline at end of file
diff --git a/data/oak_speech/oak_speech_background_tilemap.bin b/data/oak_speech/oak_speech_background_tilemap.bin
new file mode 100644
index 000000000..64374cd24
--- /dev/null
+++ b/data/oak_speech/oak_speech_background_tilemap.bin
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_game_start_help_u_i.png b/data/oak_speech/oak_speech_gfx_game_start_help_u_i.png
new file mode 100644
index 000000000..419858b1b
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_game_start_help_u_i.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_grass_platform.png b/data/oak_speech/oak_speech_gfx_grass_platform.png
new file mode 100644
index 000000000..2c8e425d2
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_grass_platform.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_leaf_pal.pal b/data/oak_speech/oak_speech_gfx_leaf_pal.pal
new file mode 100644
index 000000000..feb1214a1
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_leaf_pal.pal
@@ -0,0 +1,35 @@
+JASC-PAL
+0100
+32
+115 197 164
+255 238 205
+246 205 180
+213 164 148
+172 131 106
+106 74 65
+205 164 139
+164 123 98
+115 74 49
+74 41 16
+222 222 222
+180 180 180
+131 131 131
+82 82 90
+41 41 49
+255 255 255
+0 0 0
+131 189 213
+106 156 180
+82 131 156
+49 90 115
+32 65 90
+0 0 255
+255 255 189
+222 222 82
+172 172 57
+98 98 0
+213 131 123
+189 106 98
+164 82 74
+139 57 49
+98 24 16
diff --git a/data/oak_speech/oak_speech_gfx_leaf_pic.png b/data/oak_speech/oak_speech_gfx_leaf_pic.png
new file mode 100644
index 000000000..1825f9960
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_leaf_pic.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_oak_pal.pal b/data/oak_speech/oak_speech_gfx_oak_pal.pal
new file mode 100644
index 000000000..a0b648b2b
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_oak_pal.pal
@@ -0,0 +1,35 @@
+JASC-PAL
+0100
+32
+115 197 164
+255 230 205
+222 189 156
+197 148 115
+106 74 65
+238 222 148
+205 189 115
+172 156 90
+139 123 65
+98 90 49
+255 0 255
+205 205 222
+123 131 156
+57 74 106
+255 255 255
+0 0 0
+0 0 255
+172 148 222
+131 115 172
+82 65 115
+230 222 180
+205 197 156
+180 172 139
+164 156 123
+123 115 90
+82 57 49
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
diff --git a/data/oak_speech/oak_speech_gfx_oak_pic.png b/data/oak_speech/oak_speech_gfx_oak_pic.png
new file mode 100644
index 000000000..9ac602944
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_oak_pic.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_pika1.png b/data/oak_speech/oak_speech_gfx_pika1.png
new file mode 100644
index 000000000..71644c355
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_pika1.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_pika2.png b/data/oak_speech/oak_speech_gfx_pika2.png
new file mode 100644
index 000000000..e85cbfa9c
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_pika2.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_pika_eyes.png b/data/oak_speech/oak_speech_gfx_pika_eyes.png
new file mode 100644
index 000000000..5e2fd80c0
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_pika_eyes.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_red_pal.pal b/data/oak_speech/oak_speech_gfx_red_pal.pal
new file mode 100644
index 000000000..7eec09831
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_red_pal.pal
@@ -0,0 +1,35 @@
+JASC-PAL
+0100
+32
+115 197 164
+255 230 205
+222 189 156
+197 148 131
+148 106 90
+106 74 65
+205 164 139
+164 123 98
+115 74 49
+82 65 32
+222 222 222
+180 180 180
+131 131 131
+82 82 90
+57 57 65
+255 255 255
+0 0 0
+131 189 213
+106 156 180
+82 131 156
+49 90 115
+32 65 90
+0 0 255
+238 238 74
+205 205 49
+164 164 32
+98 98 0
+213 131 123
+189 106 98
+164 82 74
+139 57 49
+98 24 16
diff --git a/data/oak_speech/oak_speech_gfx_red_pic.png b/data/oak_speech/oak_speech_gfx_red_pic.png
new file mode 100644
index 000000000..edf5cf9b1
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_red_pic.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_rival_pal.pal b/data/oak_speech/oak_speech_gfx_rival_pal.pal
new file mode 100644
index 000000000..8240527a6
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_rival_pal.pal
@@ -0,0 +1,35 @@
+JASC-PAL
+0100
+32
+115 197 164
+255 230 205
+222 189 156
+197 148 115
+106 74 65
+238 189 74
+213 156 57
+189 123 41
+139 82 41
+164 123 106
+222 222 222
+197 197 197
+139 139 139
+98 98 98
+65 65 65
+255 255 255
+0 0 0
+180 148 180
+139 106 139
+106 74 106
+82 49 82
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+246 131 131
+205 82 82
diff --git a/data/oak_speech/oak_speech_gfx_rival_pic.png b/data/oak_speech/oak_speech_gfx_rival_pic.png
new file mode 100644
index 000000000..317cbc038
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_rival_pic.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_gfx_solid_colors.png b/data/oak_speech/oak_speech_gfx_solid_colors.png
new file mode 100644
index 000000000..30066cdd8
--- /dev/null
+++ b/data/oak_speech/oak_speech_gfx_solid_colors.png
Binary files differ
diff --git a/data/oak_speech/oak_speech_grass_platform_palette.pal b/data/oak_speech/oak_speech_grass_platform_palette.pal
new file mode 100644
index 000000000..4fb339128
--- /dev/null
+++ b/data/oak_speech/oak_speech_grass_platform_palette.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+189 189 164
+65 139 131
+82 148 139
+106 164 156
+131 180 172
+156 197 189
+180 213 205
+205 230 222
+230 246 238
+0 0 0
+255 0 255
+139 189 164
+156 205 172
+180 222 197
+205 238 222
+115 172 156
diff --git a/data/oak_speech/oak_speech_pika_palette.pal b/data/oak_speech/oak_speech_pika_palette.pal
new file mode 100644
index 000000000..4d2e92c74
--- /dev/null
+++ b/data/oak_speech/oak_speech_pika_palette.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+205 205 180
+255 255 255
+255 246 106
+246 213 0
+238 172 0
+197 139 0
+131 82 0
+255 0 255
+255 0 255
+180 180 180
+255 74 74
+230 0 0
+180 0 0
+106 106 106
+16 16 16
+255 0 255
diff --git a/data/palette.s b/data/palette.s
new file mode 100644
index 000000000..67a6fcb0c
--- /dev/null
+++ b/data/palette.s
@@ -0,0 +1,7 @@
+ .section .rodata
+ .align 2
+gUnknown_83AC960:: @ 83AC960
+ .incbin "baserom.gba", 0x3AC960, 0x10
+
+gUnknown_83AC970:: @ 83AC970
+ .incbin "baserom.gba", 0x3AC970, 0x20
diff --git a/data/pokedex_area_markers.s b/data/pokedex_area_markers.s
new file mode 100644
index 000000000..bf63a3210
--- /dev/null
+++ b/data/pokedex_area_markers.s
@@ -0,0 +1,14 @@
+ .section .rodata
+ .align 2
+
+gUnknown_846341C:: @ 846341C
+ .incbin "baserom.gba", 0x46341C, 0x20
+
+gUnknown_846343C:: @ 846343C
+ .incbin "baserom.gba", 0x46343C, 0x128
+
+gUnknown_8463564:: @ 8463564
+ .incbin "baserom.gba", 0x463564, 0x1C
+
+gUnknown_8463580:: @ 8463580
+ .incbin "baserom.gba", 0x463580, 0x140
diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s
new file mode 100644
index 000000000..be7c0de93
--- /dev/null
+++ b/data/pokemon_summary_screen.s
@@ -0,0 +1,134 @@
+ .section .rodata
+ .align 2
+
+gUnknown_84636C0:: @ 84636C0
+ .incbin "baserom.gba", 0x4636C0, 0x20
+
+gUnknown_84636E0:: @ 84636E0
+ .incbin "baserom.gba", 0x4636E0, 0x20
+
+gUnknown_8463700:: @ 8463700
+ .incbin "baserom.gba", 0x463700, 0x20
+
+gUnknown_8463720:: @ 8463720
+ .incbin "baserom.gba", 0x463720, 0x20
+
+gUnknown_8463740:: @ 8463740
+ .incbin "baserom.gba", 0x463740, 0x12C
+
+gUnknown_846386C:: @ 846386C
+ .incbin "baserom.gba", 0x46386C, 0x120
+
+gUnknown_846398C:: @ 846398C
+ .incbin "baserom.gba", 0x46398C, 0x18
+
+gUnknown_84639A4:: @ 84639A4
+ .incbin "baserom.gba", 0x4639A4, 0x8
+
+gUnknown_84639AC:: @ 84639AC
+ .incbin "baserom.gba", 0x4639AC, 0x48
+
+gUnknown_84639F4:: @ 84639F4
+ .incbin "baserom.gba", 0x4639F4, 0x20
+
+gUnknown_8463A14:: @ 8463A14
+ .incbin "baserom.gba", 0x463A14, 0x68
+
+gUnknown_8463A7C:: @ 8463A7C
+ .incbin "baserom.gba", 0x463A7C, 0x70
+
+gUnknown_8463AEC:: @ 8463AEC
+ .incbin "baserom.gba", 0x463AEC, 0x10
+
+gUnknown_8463AFC:: @ 8463AFC
+ .incbin "baserom.gba", 0x463AFC, 0x4
+
+gUnknown_8463B00:: @ 8463B00
+ .incbin "baserom.gba", 0x463B00, 0x20
+
+gUnknown_8463B20:: @ 8463B20
+ .incbin "baserom.gba", 0x463B20, 0x10
+
+gUnknown_8463B30:: @ 8463B30
+ .incbin "baserom.gba", 0x463B30, 0x10
+
+gUnknown_8463B40:: @ 8463B40
+ .incbin "baserom.gba", 0x463B40, 0x4
+
+gUnknown_8463B44:: @ 8463B44
+ .incbin "baserom.gba", 0x463B44, 0x20
+
+gUnknown_8463B64:: @ 8463B64
+ .incbin "baserom.gba", 0x463B64, 0x24
+
+gUnknown_8463B88:: @ 8463B88
+ .incbin "baserom.gba", 0x463B88, 0xF8
+
+gUnknown_8463C80:: @ 8463C80
+ .incbin "baserom.gba", 0x463C80, 0x1E0
+
+gUnknown_8463E60:: @ 8463E60
+ .incbin "baserom.gba", 0x463E60, 0x64
+
+gUnknown_8463EC4:: @ 8463EC4
+ .incbin "baserom.gba", 0x463EC4, 0x10
+
+gUnknown_8463ED4:: @ 8463ED4
+ .incbin "baserom.gba", 0x463ED4, 0x1C
+
+gUnknown_8463EF0:: @ 8463EF0
+ .incbin "baserom.gba", 0x463EF0, 0xC
+
+gUnknown_8463EFC:: @ 8463EFC
+ .incbin "baserom.gba", 0x463EFC, 0x10
+
+gUnknown_8463F0C:: @ 8463F0C
+ .incbin "baserom.gba", 0x463F0C, 0x18
+
+gUnknown_8463F24:: @ 8463F24
+ .incbin "baserom.gba", 0x463F24, 0x18
+
+gUnknown_8463F3C:: @ 8463F3C
+ .incbin "baserom.gba", 0x463F3C, 0x20
+
+gUnknown_8463F5C:: @ 8463F5C
+ .incbin "baserom.gba", 0x463F5C, 0x20
+
+gUnknown_8463F7C:: @ 8463F7C
+ .incbin "baserom.gba", 0x463F7C, 0x20
+
+gUnknown_8463F9C:: @ 8463F9C
+ .incbin "baserom.gba", 0x463F9C, 0x8
+
+gUnknown_8463FA4:: @ 8463FA4
+ .incbin "baserom.gba", 0x463FA4, 0x3
+
+gUnknown_8463FA7:: @ 8463FA7
+ .incbin "baserom.gba", 0x463FA7, 0x11
+
+gUnknown_8463FB8:: @ 8463FB8
+ .incbin "baserom.gba", 0x463FB8, 0x6
+
+gUnknown_8463FBE:: @ 8463FBE
+ .incbin "baserom.gba", 0x463FBE, 0x3
+
+gUnknown_8463FC1:: @ 8463FC1
+ .incbin "baserom.gba", 0x463FC1, 0x5
+
+gUnknown_8463FC6:: @ 8463FC6
+ .incbin "baserom.gba", 0x463FC6, 0x7
+
+gUnknown_8463FCD:: @ 8463FCD
+ .incbin "baserom.gba", 0x463FCD, 0x7
+
+gUnknown_8463FD4:: @ 8463FD4
+ .incbin "baserom.gba", 0x463FD4, 0xB
+
+gUnknown_8463FDF:: @ 8463FDF
+ .incbin "baserom.gba", 0x463FDF, 0xB
+
+gUnknown_8463FEA:: @ 8463FEA
+ .incbin "baserom.gba", 0x463FEA, 0x12
+
+gUnknown_8463FFC:: @ 8463FFC
+ .incbin "baserom.gba", 0x463FFC, 0xC
diff --git a/data/slot_machine.s b/data/slot_machine.s
new file mode 100644
index 000000000..dac396602
--- /dev/null
+++ b/data/slot_machine.s
@@ -0,0 +1,94 @@
+ .section .rodata
+ .align 2
+gUnknown_8464890:: @ 8464890
+ .incbin "baserom.gba", 0x464890, 0x1E
+
+gUnknown_84648AE:: @ 84648AE
+ .incbin "baserom.gba", 0x4648AE, 0xF
+
+gUnknown_84648BD:: @ 84648BD
+ .incbin "baserom.gba", 0x4648BD, 0x15
+
+gUnknown_84648D2:: @ 84648D2
+ .incbin "baserom.gba", 0x4648D2, 0x54
+
+gUnknown_8464926:: @ 8464926
+ .incbin "baserom.gba", 0x464926, 0x40
+
+gUnknown_8464966:: @ 8464966
+ .incbin "baserom.gba", 0x464966, 0xC4A
+
+gUnknown_84655B0:: @ 84655B0
+ .incbin "baserom.gba", 0x4655B0, 0x18
+
+gUnknown_84655C8:: @ 84655C8
+ .incbin "baserom.gba", 0x4655C8, 0x40
+
+gUnknown_8465608:: @ 8465608
+ .incbin "baserom.gba", 0x465608, 0xE
+
+gUnknown_8465616:: @ 8465616
+ .incbin "baserom.gba", 0x465616, 0xC0
+
+gUnknown_84656D6:: @ 84656D6
+ .incbin "baserom.gba", 0x4656D6, 0x10E
+
+gUnknown_84657E4:: @ 84657E4
+ .incbin "baserom.gba", 0x4657E4, 0x98
+
+gUnknown_846587C:: @ 846587C
+ .incbin "baserom.gba", 0x46587C, 0x5C
+
+gUnknown_84658D8:: @ 84658D8
+ .incbin "baserom.gba", 0x4658D8, 0x18
+
+gUnknown_84658F0:: @ 84658F0
+ .incbin "baserom.gba", 0x4658F0, 0x40
+
+gUnknown_8465930:: @ 8465930
+ .incbin "baserom.gba", 0x465930, 0x20
+
+gUnknown_8465950:: @ 8465950
+ .incbin "baserom.gba", 0x465950, 0x80
+
+gUnknown_84659D0:: @ 84659D0
+ .incbin "baserom.gba", 0x4659D0, 0x804
+
+gUnknown_84661D4:: @ 84661D4
+ .incbin "baserom.gba", 0x4661D4, 0x2E8
+
+gUnknown_84664BC:: @ 84664BC
+ .incbin "baserom.gba", 0x4664BC, 0x20
+
+gUnknown_84664DC:: @ 84664DC
+ .incbin "baserom.gba", 0x4664DC, 0x60
+
+gUnknown_846653C:: @ 846653C
+ .incbin "baserom.gba", 0x46653C, 0x84
+
+gUnknown_84665C0:: @ 84665C0
+ .incbin "baserom.gba", 0x4665C0, 0x60
+
+gUnknown_8466620:: @ 8466620
+ .incbin "baserom.gba", 0x466620, 0x378
+
+gUnknown_8466998:: @ 8466998
+ .incbin "baserom.gba", 0x466998, 0x178
+
+gUnknown_8466B10:: @ 8466B10
+ .incbin "baserom.gba", 0x466B10, 0x10
+
+gUnknown_8466B20:: @ 8466B20
+ .incbin "baserom.gba", 0x466B20, 0xEC
+
+gUnknown_8466C0C:: @ 8466C0C
+ .incbin "baserom.gba", 0x466C0C, 0x28
+
+gUnknown_8466C34:: @ 8466C34
+ .incbin "baserom.gba", 0x466C34, 0x4
+
+gUnknown_8466C38:: @ 8466C38
+ .incbin "baserom.gba", 0x466C38, 0x8
+
+gUnknown_8466C40:: @ 8466C40
+ .incbin "baserom.gba", 0x466C40, 0x18
diff --git a/data/specials.inc b/data/specials.inc
index 56b666207..33cc5736b 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -306,7 +306,7 @@ gSpecials:: @ 815FD60
def_special ScrSpecial_AreLeadMonEVsMaxedOut
def_special sub_8069740
def_special sub_8069768
- def_special sub_8141D9C
+ def_special InitRoamer
def_special nullsub_75
def_special sub_80CA804
def_special nullsub_75
@@ -363,7 +363,7 @@ gSpecials:: @ 815FD60
def_special GetDaycarePokemonCount
def_special sub_80CB63C
def_special sub_80CBD80
- def_special sub_80CBDB0
+ def_special ScrSpecial_GetStarter
def_special sub_80CBDCC
def_special sub_810C444
def_special sub_80CC7B4
diff --git a/data/start_menu.s b/data/start_menu.s
new file mode 100644
index 000000000..e004a6628
--- /dev/null
+++ b/data/start_menu.s
@@ -0,0 +1,28 @@
+ .section .rodata
+ .align 2
+gUnknown_83A7344:: @ 83A7344
+ .incbin "baserom.gba", 0x3A7344, 0x48
+
+gUnknown_83A738C:: @ 83A738C
+ .incbin "baserom.gba", 0x3A738C, 0x8
+
+gUnknown_83A7394:: @ 83A7394
+ .incbin "baserom.gba", 0x3A7394, 0x24
+
+gUnknown_83A73B8:: @ 83A73B8
+ .incbin "baserom.gba", 0x3A73B8, 0x4
+
+gUnknown_83A73BC:: @ 83A73BC
+ .incbin "baserom.gba", 0x3A73BC, 0x10
+
+gUnknown_83A73CC:: @ 83A73CC
+ .incbin "baserom.gba", 0x3A73CC, 0x8
+
+gUnknown_83A73D4:: @ 83A73D4
+ .incbin "baserom.gba", 0x3A73D4, 0x4
+
+gUnknown_83A73D8:: @ 83A73D8
+ .incbin "baserom.gba", 0x3A73D8, 0x4
+
+gUnknown_83A73DC:: @ 83A73DC
+ .incbin "baserom.gba", 0x3A73DC, 0x284
diff --git a/data/text/species_names.inc b/data/text/species_names.inc
new file mode 100644
index 000000000..a593ab3a2
--- /dev/null
+++ b/data/text/species_names.inc
@@ -0,0 +1,412 @@
+ .string "??????????$", 11
+ .string "BULBASAUR$", 11
+ .string "IVYSAUR$", 11
+ .string "VENUSAUR$", 11
+ .string "CHARMANDER$", 11
+ .string "CHARMELEON$", 11
+ .string "CHARIZARD$", 11
+ .string "SQUIRTLE$", 11
+ .string "WARTORTLE$", 11
+ .string "BLASTOISE$", 11
+ .string "CATERPIE$", 11
+ .string "METAPOD$", 11
+ .string "BUTTERFREE$", 11
+ .string "WEEDLE$", 11
+ .string "KAKUNA$", 11
+ .string "BEEDRILL$", 11
+ .string "PIDGEY$", 11
+ .string "PIDGEOTTO$", 11
+ .string "PIDGEOT$", 11
+ .string "RATTATA$", 11
+ .string "RATICATE$", 11
+ .string "SPEAROW$", 11
+ .string "FEAROW$", 11
+ .string "EKANS$", 11
+ .string "ARBOK$", 11
+ .string "PIKACHU$", 11
+ .string "RAICHU$", 11
+ .string "SANDSHREW$", 11
+ .string "SANDSLASH$", 11
+ .string "NIDORAN♀$", 11
+ .string "NIDORINA$", 11
+ .string "NIDOQUEEN$", 11
+ .string "NIDORAN♂$", 11
+ .string "NIDORINO$", 11
+ .string "NIDOKING$", 11
+ .string "CLEFAIRY$", 11
+ .string "CLEFABLE$", 11
+ .string "VULPIX$", 11
+ .string "NINETALES$", 11
+ .string "JIGGLYPUFF$", 11
+ .string "WIGGLYTUFF$", 11
+ .string "ZUBAT$", 11
+ .string "GOLBAT$", 11
+ .string "ODDISH$", 11
+ .string "GLOOM$", 11
+ .string "VILEPLUME$", 11
+ .string "PARAS$", 11
+ .string "PARASECT$", 11
+ .string "VENONAT$", 11
+ .string "VENOMOTH$", 11
+ .string "DIGLETT$", 11
+ .string "DUGTRIO$", 11
+ .string "MEOWTH$", 11
+ .string "PERSIAN$", 11
+ .string "PSYDUCK$", 11
+ .string "GOLDUCK$", 11
+ .string "MANKEY$", 11
+ .string "PRIMEAPE$", 11
+ .string "GROWLITHE$", 11
+ .string "ARCANINE$", 11
+ .string "POLIWAG$", 11
+ .string "POLIWHIRL$", 11
+ .string "POLIWRATH$", 11
+ .string "ABRA$", 11
+ .string "KADABRA$", 11
+ .string "ALAKAZAM$", 11
+ .string "MACHOP$", 11
+ .string "MACHOKE$", 11
+ .string "MACHAMP$", 11
+ .string "BELLSPROUT$", 11
+ .string "WEEPINBELL$", 11
+ .string "VICTREEBEL$", 11
+ .string "TENTACOOL$", 11
+ .string "TENTACRUEL$", 11
+ .string "GEODUDE$", 11
+ .string "GRAVELER$", 11
+ .string "GOLEM$", 11
+ .string "PONYTA$", 11
+ .string "RAPIDASH$", 11
+ .string "SLOWPOKE$", 11
+ .string "SLOWBRO$", 11
+ .string "MAGNEMITE$", 11
+ .string "MAGNETON$", 11
+ .string "FARFETCH’D$", 11
+ .string "DODUO$", 11
+ .string "DODRIO$", 11
+ .string "SEEL$", 11
+ .string "DEWGONG$", 11
+ .string "GRIMER$", 11
+ .string "MUK$", 11
+ .string "SHELLDER$", 11
+ .string "CLOYSTER$", 11
+ .string "GASTLY$", 11
+ .string "HAUNTER$", 11
+ .string "GENGAR$", 11
+ .string "ONIX$", 11
+ .string "DROWZEE$", 11
+ .string "HYPNO$", 11
+ .string "KRABBY$", 11
+ .string "KINGLER$", 11
+ .string "VOLTORB$", 11
+ .string "ELECTRODE$", 11
+ .string "EXEGGCUTE$", 11
+ .string "EXEGGUTOR$", 11
+ .string "CUBONE$", 11
+ .string "MAROWAK$", 11
+ .string "HITMONLEE$", 11
+ .string "HITMONCHAN$", 11
+ .string "LICKITUNG$", 11
+ .string "KOFFING$", 11
+ .string "WEEZING$", 11
+ .string "RHYHORN$", 11
+ .string "RHYDON$", 11
+ .string "CHANSEY$", 11
+ .string "TANGELA$", 11
+ .string "KANGASKHAN$", 11
+ .string "HORSEA$", 11
+ .string "SEADRA$", 11
+ .string "GOLDEEN$", 11
+ .string "SEAKING$", 11
+ .string "STARYU$", 11
+ .string "STARMIE$", 11
+ .string "MR. MIME$", 11
+ .string "SCYTHER$", 11
+ .string "JYNX$", 11
+ .string "ELECTABUZZ$", 11
+ .string "MAGMAR$", 11
+ .string "PINSIR$", 11
+ .string "TAUROS$", 11
+ .string "MAGIKARP$", 11
+ .string "GYARADOS$", 11
+ .string "LAPRAS$", 11
+ .string "DITTO$", 11
+ .string "EEVEE$", 11
+ .string "VAPOREON$", 11
+ .string "JOLTEON$", 11
+ .string "FLAREON$", 11
+ .string "PORYGON$", 11
+ .string "OMANYTE$", 11
+ .string "OMASTAR$", 11
+ .string "KABUTO$", 11
+ .string "KABUTOPS$", 11
+ .string "AERODACTYL$", 11
+ .string "SNORLAX$", 11
+ .string "ARTICUNO$", 11
+ .string "ZAPDOS$", 11
+ .string "MOLTRES$", 11
+ .string "DRATINI$", 11
+ .string "DRAGONAIR$", 11
+ .string "DRAGONITE$", 11
+ .string "MEWTWO$", 11
+ .string "MEW$", 11
+ .string "CHIKORITA$", 11
+ .string "BAYLEEF$", 11
+ .string "MEGANIUM$", 11
+ .string "CYNDAQUIL$", 11
+ .string "QUILAVA$", 11
+ .string "TYPHLOSION$", 11
+ .string "TOTODILE$", 11
+ .string "CROCONAW$", 11
+ .string "FERALIGATR$", 11
+ .string "SENTRET$", 11
+ .string "FURRET$", 11
+ .string "HOOTHOOT$", 11
+ .string "NOCTOWL$", 11
+ .string "LEDYBA$", 11
+ .string "LEDIAN$", 11
+ .string "SPINARAK$", 11
+ .string "ARIADOS$", 11
+ .string "CROBAT$", 11
+ .string "CHINCHOU$", 11
+ .string "LANTURN$", 11
+ .string "PICHU$", 11
+ .string "CLEFFA$", 11
+ .string "IGGLYBUFF$", 11
+ .string "TOGEPI$", 11
+ .string "TOGETIC$", 11
+ .string "NATU$", 11
+ .string "XATU$", 11
+ .string "MAREEP$", 11
+ .string "FLAAFFY$", 11
+ .string "AMPHAROS$", 11
+ .string "BELLOSSOM$", 11
+ .string "MARILL$", 11
+ .string "AZUMARILL$", 11
+ .string "SUDOWOODO$", 11
+ .string "POLITOED$", 11
+ .string "HOPPIP$", 11
+ .string "SKIPLOOM$", 11
+ .string "JUMPLUFF$", 11
+ .string "AIPOM$", 11
+ .string "SUNKERN$", 11
+ .string "SUNFLORA$", 11
+ .string "YANMA$", 11
+ .string "WOOPER$", 11
+ .string "QUAGSIRE$", 11
+ .string "ESPEON$", 11
+ .string "UMBREON$", 11
+ .string "MURKROW$", 11
+ .string "SLOWKING$", 11
+ .string "MISDREAVUS$", 11
+ .string "UNOWN$", 11
+ .string "WOBBUFFET$", 11
+ .string "GIRAFARIG$", 11
+ .string "PINECO$", 11
+ .string "FORRETRESS$", 11
+ .string "DUNSPARCE$", 11
+ .string "GLIGAR$", 11
+ .string "STEELIX$", 11
+ .string "SNUBBULL$", 11
+ .string "GRANBULL$", 11
+ .string "QWILFISH$", 11
+ .string "SCIZOR$", 11
+ .string "SHUCKLE$", 11
+ .string "HERACROSS$", 11
+ .string "SNEASEL$", 11
+ .string "TEDDIURSA$", 11
+ .string "URSARING$", 11
+ .string "SLUGMA$", 11
+ .string "MAGCARGO$", 11
+ .string "SWINUB$", 11
+ .string "PILOSWINE$", 11
+ .string "CORSOLA$", 11
+ .string "REMORAID$", 11
+ .string "OCTILLERY$", 11
+ .string "DELIBIRD$", 11
+ .string "MANTINE$", 11
+ .string "SKARMORY$", 11
+ .string "HOUNDOUR$", 11
+ .string "HOUNDOOM$", 11
+ .string "KINGDRA$", 11
+ .string "PHANPY$", 11
+ .string "DONPHAN$", 11
+ .string "PORYGON2$", 11
+ .string "STANTLER$", 11
+ .string "SMEARGLE$", 11
+ .string "TYROGUE$", 11
+ .string "HITMONTOP$", 11
+ .string "SMOOCHUM$", 11
+ .string "ELEKID$", 11
+ .string "MAGBY$", 11
+ .string "MILTANK$", 11
+ .string "BLISSEY$", 11
+ .string "RAIKOU$", 11
+ .string "ENTEI$", 11
+ .string "SUICUNE$", 11
+ .string "LARVITAR$", 11
+ .string "PUPITAR$", 11
+ .string "TYRANITAR$", 11
+ .string "LUGIA$", 11
+ .string "HO-OH$", 11
+ .string "CELEBI$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "?$", 11
+ .string "TREECKO$", 11
+ .string "GROVYLE$", 11
+ .string "SCEPTILE$", 11
+ .string "TORCHIC$", 11
+ .string "COMBUSKEN$", 11
+ .string "BLAZIKEN$", 11
+ .string "MUDKIP$", 11
+ .string "MARSHTOMP$", 11
+ .string "SWAMPERT$", 11
+ .string "POOCHYENA$", 11
+ .string "MIGHTYENA$", 11
+ .string "ZIGZAGOON$", 11
+ .string "LINOONE$", 11
+ .string "WURMPLE$", 11
+ .string "SILCOON$", 11
+ .string "BEAUTIFLY$", 11
+ .string "CASCOON$", 11
+ .string "DUSTOX$", 11
+ .string "LOTAD$", 11
+ .string "LOMBRE$", 11
+ .string "LUDICOLO$", 11
+ .string "SEEDOT$", 11
+ .string "NUZLEAF$", 11
+ .string "SHIFTRY$", 11
+ .string "NINCADA$", 11
+ .string "NINJASK$", 11
+ .string "SHEDINJA$", 11
+ .string "TAILLOW$", 11
+ .string "SWELLOW$", 11
+ .string "SHROOMISH$", 11
+ .string "BRELOOM$", 11
+ .string "SPINDA$", 11
+ .string "WINGULL$", 11
+ .string "PELIPPER$", 11
+ .string "SURSKIT$", 11
+ .string "MASQUERAIN$", 11
+ .string "WAILMER$", 11
+ .string "WAILORD$", 11
+ .string "SKITTY$", 11
+ .string "DELCATTY$", 11
+ .string "KECLEON$", 11
+ .string "BALTOY$", 11
+ .string "CLAYDOL$", 11
+ .string "NOSEPASS$", 11
+ .string "TORKOAL$", 11
+ .string "SABLEYE$", 11
+ .string "BARBOACH$", 11
+ .string "WHISCASH$", 11
+ .string "LUVDISC$", 11
+ .string "CORPHISH$", 11
+ .string "CRAWDAUNT$", 11
+ .string "FEEBAS$", 11
+ .string "MILOTIC$", 11
+ .string "CARVANHA$", 11
+ .string "SHARPEDO$", 11
+ .string "TRAPINCH$", 11
+ .string "VIBRAVA$", 11
+ .string "FLYGON$", 11
+ .string "MAKUHITA$", 11
+ .string "HARIYAMA$", 11
+ .string "ELECTRIKE$", 11
+ .string "MANECTRIC$", 11
+ .string "NUMEL$", 11
+ .string "CAMERUPT$", 11
+ .string "SPHEAL$", 11
+ .string "SEALEO$", 11
+ .string "WALREIN$", 11
+ .string "CACNEA$", 11
+ .string "CACTURNE$", 11
+ .string "SNORUNT$", 11
+ .string "GLALIE$", 11
+ .string "LUNATONE$", 11
+ .string "SOLROCK$", 11
+ .string "AZURILL$", 11
+ .string "SPOINK$", 11
+ .string "GRUMPIG$", 11
+ .string "PLUSLE$", 11
+ .string "MINUN$", 11
+ .string "MAWILE$", 11
+ .string "MEDITITE$", 11
+ .string "MEDICHAM$", 11
+ .string "SWABLU$", 11
+ .string "ALTARIA$", 11
+ .string "WYNAUT$", 11
+ .string "DUSKULL$", 11
+ .string "DUSCLOPS$", 11
+ .string "ROSELIA$", 11
+ .string "SLAKOTH$", 11
+ .string "VIGOROTH$", 11
+ .string "SLAKING$", 11
+ .string "GULPIN$", 11
+ .string "SWALOT$", 11
+ .string "TROPIUS$", 11
+ .string "WHISMUR$", 11
+ .string "LOUDRED$", 11
+ .string "EXPLOUD$", 11
+ .string "CLAMPERL$", 11
+ .string "HUNTAIL$", 11
+ .string "GOREBYSS$", 11
+ .string "ABSOL$", 11
+ .string "SHUPPET$", 11
+ .string "BANETTE$", 11
+ .string "SEVIPER$", 11
+ .string "ZANGOOSE$", 11
+ .string "RELICANTH$", 11
+ .string "ARON$", 11
+ .string "LAIRON$", 11
+ .string "AGGRON$", 11
+ .string "CASTFORM$", 11
+ .string "VOLBEAT$", 11
+ .string "ILLUMISE$", 11
+ .string "LILEEP$", 11
+ .string "CRADILY$", 11
+ .string "ANORITH$", 11
+ .string "ARMALDO$", 11
+ .string "RALTS$", 11
+ .string "KIRLIA$", 11
+ .string "GARDEVOIR$", 11
+ .string "BAGON$", 11
+ .string "SHELGON$", 11
+ .string "SALAMENCE$", 11
+ .string "BELDUM$", 11
+ .string "METANG$", 11
+ .string "METAGROSS$", 11
+ .string "REGIROCK$", 11
+ .string "REGICE$", 11
+ .string "REGISTEEL$", 11
+ .string "KYOGRE$", 11
+ .string "GROUDON$", 11
+ .string "RAYQUAZA$", 11
+ .string "LATIAS$", 11
+ .string "LATIOS$", 11
+ .string "JIRACHI$", 11
+ .string "DEOXYS$", 11
+ .string "CHIMECHO$", 11
diff --git a/data/tileset_anims.s b/data/tileset_anims.s
new file mode 100644
index 000000000..9881cdd3f
--- /dev/null
+++ b/data/tileset_anims.s
@@ -0,0 +1,25 @@
+ .section .rodata
+ .align 2
+gUnknown_83A7660:: @ 83A7660
+ .incbin "baserom.gba", 0x3A7660, 0x2FF4
+
+gUnknown_83AA654:: @ 83AA654
+ .incbin "baserom.gba", 0x3AA654, 0x1220
+
+gUnknown_83AB874:: @ 83AB874
+ .incbin "baserom.gba", 0x3AB874, 0x540
+
+gUnknown_83ABDB4:: @ 83ABDB4
+ .incbin "baserom.gba", 0x3ABDB4, 0x434
+
+gUnknown_83AC1E8:: @ 83AC1E8
+ .incbin "baserom.gba", 0x3AC1E8, 0x410
+
+gUnknown_83AC5F8:: @ 83AC5F8
+ .incbin "baserom.gba", 0x3AC5F8, 0x1D0
+
+gUnknown_83AC7C8:: @ 83AC7C8
+ .incbin "baserom.gba", 0x3AC7C8, 0x188
+
+gUnknown_83AC950:: @ 83AC950
+ .incbin "baserom.gba", 0x3AC950, 0x10
diff --git a/data/title_screen.s b/data/title_screen.s
new file mode 100644
index 000000000..93d0f2f83
--- /dev/null
+++ b/data/title_screen.s
@@ -0,0 +1,34 @@
+ .section .rodata
+ .align 2
+gUnknown_83BF58C:: @ 83BF58C
+ .incbin "baserom.gba", 0x3BF58C, 0x1C
+
+gUnknown_83BF5A8:: @ 83BF5A8
+ .incbin "baserom.gba", 0x3BF5A8, 0x55C
+
+gUnknown_83BFB04:: @ 83BFB04
+ .incbin "baserom.gba", 0x3BFB04, 0x18
+
+gUnknown_83BFB1C:: @ 83BFB1C
+ .incbin "baserom.gba", 0x3BFB1C, 0x20
+
+gUnknown_83BFB3C:: @ 83BFB3C
+ .incbin "baserom.gba", 0x3BFB3C, 0x20
+
+gUnknown_83BFB5C:: @ 83BFB5C
+ .incbin "baserom.gba", 0x3BFB5C, 0x18
+
+gUnknown_83BFB74:: @ 83BFB74
+ .incbin "baserom.gba", 0x3BFB74, 0x10
+
+gUnknown_83BFB84:: @ 83BFB84
+ .incbin "baserom.gba", 0x3BFB84, 0x18
+
+gUnknown_83BFB9C:: @ 83BFB9C
+ .incbin "baserom.gba", 0x3BFB9C, 0x20
+
+gUnknown_83BFBBC:: @ 83BFBBC
+ .incbin "baserom.gba", 0x3BFBBC, 0x18
+
+gUnknown_83BFBD4:: @ 83BFBD4
+ .incbin "baserom.gba", 0x3BFBD4, 0x2FE8
diff --git a/data/unk_text_util.s b/data/unk_text_util.s
new file mode 100644
index 000000000..5e5ce1a5d
--- /dev/null
+++ b/data/unk_text_util.s
@@ -0,0 +1,5 @@
+ .section .rodata
+ .align 2
+
+gUnknown_8464300:: @ 8464300
+ .incbin "baserom.gba", 0x464300, 0x4C
diff --git a/data/wild_pokemon_area.s b/data/wild_pokemon_area.s
new file mode 100644
index 000000000..26913b7c6
--- /dev/null
+++ b/data/wild_pokemon_area.s
@@ -0,0 +1,14 @@
+ .section .rodata
+ .align 2
+
+gUnknown_8464148:: @ 8464148
+ .incbin "baserom.gba", 0x464148, 0x174
+
+gUnknown_84642BC:: @ 84642BC
+ .incbin "baserom.gba", 0x4642BC, 0x4
+
+gUnknown_84642C0:: @ 84642C0
+ .incbin "baserom.gba", 0x4642C0, 0x34
+
+gUnknown_84642F4:: @ 84642F4
+ .incbin "baserom.gba", 0x4642F4, 0xC
diff --git a/graphics/tm_case/unk_841F408.pal b/graphics/tm_case/unk_841F408.pal
new file mode 100644
index 000000000..25a3ac1d2
--- /dev/null
+++ b/graphics/tm_case/unk_841F408.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+255 255 255
+255 255 255
+98 98 98
+213 213 205
+230 8 8
+255 189 115
+32 156 8
+148 246 148
+49 82 205
+164 197 246
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/tm_case/unk_8E845D8.png b/graphics/tm_case/unk_8E845D8.png
new file mode 100644
index 000000000..2729ac568
--- /dev/null
+++ b/graphics/tm_case/unk_8E845D8.png
Binary files differ
diff --git a/graphics/tm_case/unk_8E84A24.bin b/graphics/tm_case/unk_8E84A24.bin
new file mode 100644
index 000000000..a4962cbaa
--- /dev/null
+++ b/graphics/tm_case/unk_8E84A24.bin
Binary files differ
diff --git a/graphics/tm_case/unk_8E84B70.bin b/graphics/tm_case/unk_8E84B70.bin
new file mode 100644
index 000000000..0b13dc93a
--- /dev/null
+++ b/graphics/tm_case/unk_8E84B70.bin
Binary files differ
diff --git a/graphics/tm_case/unk_8E84CB0.pal b/graphics/tm_case/unk_8E84CB0.pal
new file mode 100644
index 000000000..2464f7026
--- /dev/null
+++ b/graphics/tm_case/unk_8E84CB0.pal
@@ -0,0 +1,67 @@
+JASC-PAL
+0100
+64
+0 65 90
+255 0 255
+41 57 82
+65 180 164
+255 0 255
+255 0 255
+106 205 197
+197 230 205
+238 230 172
+255 255 197
+180 180 180
+230 255 238
+139 106 172
+115 115 115
+164 205 172
+148 180 156
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+189 213 213
+238 255 255
+222 246 255
+255 255 255
+164 222 255
+16 172 222
+0 82 115
+0 115 139
+0 123 197
+205 164 238
+106 164 222
+82 123 197
+164 172 131
+106 205 197
+238 238 238
+90 90 65
+115 115 90
+189 189 164
+65 180 164
+222 156 0
+238 180 16
+246 213 57
+255 246 123
+255 255 255
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+189 213 213
+238 255 255
+222 246 255
+255 255 255
+164 222 255
+24 82 180
+0 90 131
+24 82 180
+24 82 180
diff --git a/graphics/tm_case/unk_8E84D20.pal b/graphics/tm_case/unk_8E84D20.pal
new file mode 100644
index 000000000..99fd00240
--- /dev/null
+++ b/graphics/tm_case/unk_8E84D20.pal
@@ -0,0 +1,67 @@
+JASC-PAL
+0100
+64
+0 65 90
+255 0 255
+41 57 82
+213 139 115
+255 0 255
+255 0 255
+255 172 148
+197 230 205
+238 230 172
+255 255 197
+180 180 180
+230 255 238
+139 106 172
+115 115 115
+164 205 172
+148 180 156
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+189 213 213
+238 255 255
+222 246 255
+255 255 255
+164 222 255
+16 172 222
+0 82 115
+0 115 139
+0 123 197
+205 164 238
+106 164 222
+82 123 197
+164 172 131
+255 172 148
+238 238 238
+90 90 65
+115 115 90
+189 189 164
+213 139 115
+222 156 0
+238 180 16
+246 213 57
+255 246 123
+255 255 255
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+189 213 213
+238 255 255
+222 246 255
+255 255 255
+164 222 255
+24 82 180
+0 90 131
+24 82 180
+24 82 180
diff --git a/graphics/tm_case/unk_8E84D90.png b/graphics/tm_case/unk_8E84D90.png
new file mode 100644
index 000000000..a26831822
--- /dev/null
+++ b/graphics/tm_case/unk_8E84D90.png
Binary files differ
diff --git a/graphics/tm_case/unk_8E84F20.pal b/graphics/tm_case/unk_8E84F20.pal
new file mode 100644
index 000000000..c7f6d1d50
--- /dev/null
+++ b/graphics/tm_case/unk_8E84F20.pal
@@ -0,0 +1,259 @@
+JASC-PAL
+0100
+256
+205 164 238
+74 74 98
+238 238 238
+230 230 238
+230 230 230
+222 222 222
+213 213 213
+205 205 205
+197 197 197
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 255
+205 164 238
+0 0 0
+74 74 98
+255 230 189
+255 222 156
+255 205 131
+255 197 98
+255 189 65
+255 180 41
+238 172 32
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 238 222
+205 164 238
+0 0 0
+74 74 98
+205 230 246
+180 213 246
+164 205 246
+139 197 238
+115 180 238
+90 172 238
+74 164 238
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+205 205 205
+238 246 246
+205 164 238
+0 0 0
+74 74 98
+213 246 230
+197 246 213
+180 246 205
+156 238 197
+139 238 180
+123 238 172
+106 238 164
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+238 246 246
+205 164 238
+0 0 0
+74 74 98
+255 255 189
+255 238 156
+255 230 123
+255 222 90
+255 205 57
+255 197 24
+255 197 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 222
+205 164 238
+0 0 0
+74 74 98
+246 238 222
+238 230 197
+238 222 172
+230 213 148
+222 197 115
+222 189 90
+213 180 65
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 255
+205 164 238
+0 0 0
+74 74 98
+255 255 189
+255 255 156
+255 255 123
+255 255 90
+246 238 90
+230 213 82
+222 197 65
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 222
+205 164 238
+0 0 0
+74 74 98
+230 246 255
+213 246 255
+197 246 255
+172 238 255
+156 238 255
+139 230 246
+131 213 238
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+205 205 205
+255 255 255
+205 164 238
+0 0 0
+74 74 98
+213 246 255
+189 238 255
+172 238 255
+156 238 255
+172 222 238
+180 205 222
+197 197 197
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+246 246 255
+205 164 238
+0 0 0
+74 74 98
+246 213 189
+238 197 156
+238 180 123
+238 164 90
+230 148 57
+230 131 24
+230 115 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+172 172 172
+255 238 230
+205 164 238
+0 0 0
+74 74 98
+238 222 246
+230 205 246
+230 189 246
+222 172 246
+213 148 246
+197 123 238
+180 98 222
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 238 255
+205 164 238
+0 0 0
+74 74 98
+255 255 189
+255 255 156
+255 255 123
+255 255 90
+255 238 57
+255 238 24
+255 222 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 255 222
+205 164 238
+0 0 0
+74 74 98
+255 222 197
+255 205 172
+255 189 148
+255 180 123
+230 148 156
+205 123 189
+180 98 222
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 238 230
+205 164 238
+0 0 0
+74 74 98
+255 230 230
+255 222 213
+255 213 205
+255 197 197
+255 189 180
+255 180 172
+255 172 164
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+255 246 246
+205 164 238
+0 0 0
+74 74 98
+222 222 222
+213 213 213
+197 197 197
+189 189 189
+148 172 180
+115 164 172
+82 156 164
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+238 246 246
+205 164 238
+0 0 0
+74 74 98
+205 230 230
+189 213 213
+164 205 205
+139 189 197
+123 180 180
+98 164 172
+82 156 164
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+238 246 246
+205 164 238
diff --git a/graphics/tm_case/unk_8E85068.pal b/graphics/tm_case/unk_8E85068.pal
new file mode 100644
index 000000000..9e3e5e6f5
--- /dev/null
+++ b/graphics/tm_case/unk_8E85068.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+74 74 98
+205 230 255
+180 213 255
+156 197 255
+139 189 255
+172 180 213
+213 180 172
+255 180 131
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+189 189 189
+230 246 255
+205 164 238
diff --git a/graphics/tm_case/unk_8E99118.png b/graphics/tm_case/unk_8E99118.png
new file mode 100644
index 000000000..426e404fe
--- /dev/null
+++ b/graphics/tm_case/unk_8E99118.png
Binary files differ
diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk
index c34f43baa..549527050 100644
--- a/graphics_file_rules.mk
+++ b/graphics_file_rules.mk
@@ -620,6 +620,9 @@ $(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png
$(BATTRANSGFXDIR)/frontier_transition.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 43
+
+graphics/tm_case/unk_8E845D8.4bpp: %.4bpp: %.png
+ $(GFX) $< $@ -num_tiles 91
$(PKNAVOPTIONSGFXDIR)/options.4bpp: $(PKNAVOPTIONSGFXDIR)/hoenn_map.4bpp \
$(PKNAVOPTIONSGFXDIR)/condition.4bpp \
diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h
new file mode 100644
index 000000000..dd2ebf155
--- /dev/null
+++ b/include/constants/map_groups.h
@@ -0,0 +1,515 @@
+#ifndef GUARD_CONSTANTS_MAP_GROUPS_H
+#define GUARD_CONSTANTS_MAP_GROUPS_H
+
+// Map Group 0
+#define MAP_UNKNOWNMAP_00_00 (0 | (0 << 8))
+#define MAP_UNKNOWNMAP_00_01 (1 | (0 << 8))
+#define MAP_UNKNOWNMAP_00_02 (2 | (0 << 8))
+#define MAP_UNKNOWNMAP_00_03 (3 | (0 << 8))
+#define MAP_UNKNOWNMAP_00_04 (4 | (0 << 8))
+
+// Map Group 1
+#define MAP_VIRIDIANFOREST (0 | (1 << 8))
+#define MAP_MTMOON_1F (1 | (1 << 8))
+#define MAP_MTMOON_B1F (2 | (1 << 8))
+#define MAP_MTMOON_B2F (3 | (1 << 8))
+#define MAP_SSANNE_EXTERIOR (4 | (1 << 8))
+#define MAP_SSANNE_1F_CORRIDOR (5 | (1 << 8))
+#define MAP_SSANNE_2F_CORRIDOR (6 | (1 << 8))
+#define MAP_SSANNE_3F_CORRIDOR (7 | (1 << 8))
+#define MAP_SSANNE_B1F_CORRIDOR (8 | (1 << 8))
+#define MAP_SSANNE_DECK (9 | (1 << 8))
+#define MAP_SSANNE_KITCHEN (10 | (1 << 8))
+#define MAP_SSANNE_CAPTAINSOFFICE (11 | (1 << 8))
+#define MAP_SSANNE_1F_ROOM1 (12 | (1 << 8))
+#define MAP_SSANNE_1F_ROOM2 (13 | (1 << 8))
+#define MAP_SSANNE_1F_ROOM3 (14 | (1 << 8))
+#define MAP_SSANNE_1F_ROOM4 (15 | (1 << 8))
+#define MAP_SSANNE_1F_ROOM5 (16 | (1 << 8))
+#define MAP_SSANNE_1F_ROOM7 (17 | (1 << 8))
+#define MAP_SSANNE_2F_ROOM1 (18 | (1 << 8))
+#define MAP_SSANNE_2F_ROOM2 (19 | (1 << 8))
+#define MAP_SSANNE_2F_ROOM3 (20 | (1 << 8))
+#define MAP_SSANNE_2F_ROOM4 (21 | (1 << 8))
+#define MAP_SSANNE_2F_ROOM5 (22 | (1 << 8))
+#define MAP_SSANNE_2F_ROOM6 (23 | (1 << 8))
+#define MAP_SSANNE_B1F_ROOM1 (24 | (1 << 8))
+#define MAP_SSANNE_B1F_ROOM2 (25 | (1 << 8))
+#define MAP_SSANNE_B1F_ROOM3 (26 | (1 << 8))
+#define MAP_SSANNE_B1F_ROOM4 (27 | (1 << 8))
+#define MAP_SSANNE_B1F_ROOM5 (28 | (1 << 8))
+#define MAP_SSANNE_1F_ROOM6 (29 | (1 << 8))
+#define MAP_UNDERGROUNDPATH_NORTHENTRANCE (30 | (1 << 8))
+#define MAP_UNDERGROUNDPATH_NORTHSOUTHTUNNEL (31 | (1 << 8))
+#define MAP_UNDERGROUNDPATH_SOUTHENTRANCE (32 | (1 << 8))
+#define MAP_UNDERGROUNDPATH_WESTENTRANCE (33 | (1 << 8))
+#define MAP_UNDERGROUNDPATH_EASTWESTTUNNEL (34 | (1 << 8))
+#define MAP_UNDERGROUNDPATH_EASTENTRANCE (35 | (1 << 8))
+#define MAP_DIGLETTSCAVE_NORTHENTRANCE (36 | (1 << 8))
+#define MAP_DIGLETTSCAVE_B1F (37 | (1 << 8))
+#define MAP_DIGLETTSCAVE_SOUTHENTRANCE (38 | (1 << 8))
+#define MAP_VICTORYROAD_1F (39 | (1 << 8))
+#define MAP_VICTORYROAD_2F (40 | (1 << 8))
+#define MAP_VICTORYROAD_3F (41 | (1 << 8))
+#define MAP_ROCKETHIDEOUT_B1F (42 | (1 << 8))
+#define MAP_ROCKETHIDEOUT_B2F (43 | (1 << 8))
+#define MAP_ROCKETHIDEOUT_B3F (44 | (1 << 8))
+#define MAP_ROCKETHIDEOUT_B4F (45 | (1 << 8))
+#define MAP_ROCKETHIDEOUT_ELEVATOR (46 | (1 << 8))
+#define MAP_SILPHCO_1F (47 | (1 << 8))
+#define MAP_SILPHCO_2F (48 | (1 << 8))
+#define MAP_SILPHCO_3F (49 | (1 << 8))
+#define MAP_SILPHCO_4F (50 | (1 << 8))
+#define MAP_SILPHCO_5F (51 | (1 << 8))
+#define MAP_SILPHCO_6F (52 | (1 << 8))
+#define MAP_SILPHCO_7F (53 | (1 << 8))
+#define MAP_SILPHCO_8F (54 | (1 << 8))
+#define MAP_SILPHCO_9F (55 | (1 << 8))
+#define MAP_SILPHCO_10F (56 | (1 << 8))
+#define MAP_SILPHCO_11F (57 | (1 << 8))
+#define MAP_SILPHCO_ELEVATOR (58 | (1 << 8))
+#define MAP_POKEMONMANSION_1F (59 | (1 << 8))
+#define MAP_POKEMONMANSION_2F (60 | (1 << 8))
+#define MAP_POKEMONMANSION_3F (61 | (1 << 8))
+#define MAP_POKEMONMANSION_B1F (62 | (1 << 8))
+#define MAP_SAFARIZONE_CENTER (63 | (1 << 8))
+#define MAP_SAFARIZONE_EAST (64 | (1 << 8))
+#define MAP_SAFARIZONE_NORTH (65 | (1 << 8))
+#define MAP_SAFARIZONE_WEST (66 | (1 << 8))
+#define MAP_SAFARIZONE_BUILDING1 (67 | (1 << 8))
+#define MAP_SAFARIZONE_BUILDING2 (68 | (1 << 8))
+#define MAP_SAFARIZONE_BUILDING3 (69 | (1 << 8))
+#define MAP_SAFARIZONE_BUILDING4 (70 | (1 << 8))
+#define MAP_SAFARIZONE_SECRETHOUSE (71 | (1 << 8))
+#define MAP_CERULEANCAVE_1F (72 | (1 << 8))
+#define MAP_CERULEANCAVE_2F (73 | (1 << 8))
+#define MAP_CERULEANCAVE_B1F (74 | (1 << 8))
+#define MAP_POKEMONLEAGUE_LORELEISROOM (75 | (1 << 8))
+#define MAP_POKEMONLEAGUE_BRUNOSROOM (76 | (1 << 8))
+#define MAP_POKEMONLEAGUE_AGATHASROOM (77 | (1 << 8))
+#define MAP_POKEMONLEAGUE_LANCESROOM (78 | (1 << 8))
+#define MAP_POKEMONLEAGUE_CHAMPIONSROOM (79 | (1 << 8))
+#define MAP_POKEMONLEAGUE_HALLOFFAME (80 | (1 << 8))
+#define MAP_ROCKTUNNEL_1F (81 | (1 << 8))
+#define MAP_ROCKTUNNEL_B1F (82 | (1 << 8))
+#define MAP_SEAFOAMISLANDS_1F (83 | (1 << 8))
+#define MAP_SEAFOAMISLANDS_B1F (84 | (1 << 8))
+#define MAP_SEAFOAMISLANDS_B2F (85 | (1 << 8))
+#define MAP_SEAFOAMISLANDS_B3F (86 | (1 << 8))
+#define MAP_SEAFOAMISLANDS_B4F (87 | (1 << 8))
+#define MAP_POKEMONTOWER_1F (88 | (1 << 8))
+#define MAP_POKEMONTOWER_2F (89 | (1 << 8))
+#define MAP_POKEMONTOWER_3F (90 | (1 << 8))
+#define MAP_POKEMONTOWER_4F (91 | (1 << 8))
+#define MAP_POKEMONTOWER_5F (92 | (1 << 8))
+#define MAP_POKEMONTOWER_6F (93 | (1 << 8))
+#define MAP_POKEMONTOWER_7F (94 | (1 << 8))
+#define MAP_POWERPLANT (95 | (1 << 8))
+#define MAP_MTEMBER_RUBYPATH_B4F (96 | (1 << 8))
+#define MAP_MTEMBER_EXTERIOR (97 | (1 << 8))
+#define MAP_MTEMBER_SUMMITPATH_1F (98 | (1 << 8))
+#define MAP_MTEMBER_SUMMITPATH_2F (99 | (1 << 8))
+#define MAP_MTEMBER_SUMMITPATH_3F (100 | (1 << 8))
+#define MAP_MTEMBER_SUMMIT (101 | (1 << 8))
+#define MAP_MTEMBER_RUBYPATH_B5F (102 | (1 << 8))
+#define MAP_MTEMBER_RUBYPATH_1F (103 | (1 << 8))
+#define MAP_MTEMBER_RUBYPATH_B1F (104 | (1 << 8))
+#define MAP_MTEMBER_RUBYPATH_B2F (105 | (1 << 8))
+#define MAP_MTEMBER_RUBYPATH_B3F (106 | (1 << 8))
+#define MAP_MTEMBER_RUBYPATH_B1F_STAIRS (107 | (1 << 8))
+#define MAP_MTEMBER_RUBYPATH_B2F_STAIRS (108 | (1 << 8))
+#define MAP_THREEISLAND_BERRYFOREST (109 | (1 << 8))
+#define MAP_FOURISLAND_ICEFALLCAVE_ENTRANCE (110 | (1 << 8))
+#define MAP_FOURISLAND_ICEFALLCAVE_1F (111 | (1 << 8))
+#define MAP_FOURISLAND_ICEFALLCAVE_B1F (112 | (1 << 8))
+#define MAP_FOURISLAND_ICEFALLCAVE_BACK (113 | (1 << 8))
+#define MAP_FIVEISLAND_ROCKETWAREHOUSE (114 | (1 << 8))
+#define MAP_SIXISLAND_DOTTEDHOLE_1F (115 | (1 << 8))
+#define MAP_SIXISLAND_DOTTEDHOLE_B1F (116 | (1 << 8))
+#define MAP_SIXISLAND_DOTTEDHOLE_B2F (117 | (1 << 8))
+#define MAP_SIXISLAND_DOTTEDHOLE_B3F (118 | (1 << 8))
+#define MAP_SIXISLAND_DOTTEDHOLE_B4F (119 | (1 << 8))
+#define MAP_SIXISLAND_DOTTEDHOLE_SAPPHIREROOM (120 | (1 << 8))
+#define MAP_SIXISLAND_PATTERNBUSH (121 | (1 << 8))
+#define MAP_SIXISLAND_ALTERINGCAVE (122 | (1 << 8))
+
+// Map Group 2
+#define MAP_NAVELROCK_EXTERIOR (0 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_1F (1 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_2F (2 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_3F (3 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_4F (4 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_5F (5 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_6F (6 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_7F (7 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_8F (8 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_ROOF (9 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_LOBBY (10 | (2 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER_ELEVATOR (11 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ENTRANCE (12 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM1 (13 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM2 (14 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM3 (15 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM4 (16 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM5 (17 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM6 (18 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM7 (19 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM8 (20 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM9 (21 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM10 (22 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM11 (23 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM12 (24 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM13 (25 | (2 << 8))
+#define MAP_FIVEISLAND_LOSTCAVE_ROOM14 (26 | (2 << 8))
+#define MAP_SEVENISLAND_TANOBYRUINS_MONEANCHAMBER (27 | (2 << 8))
+#define MAP_SEVENISLAND_TANOBYRUINS_LIPTOOCHAMBER (28 | (2 << 8))
+#define MAP_SEVENISLAND_TANOBYRUINS_WEEPTHCHAMBER (29 | (2 << 8))
+#define MAP_SEVENISLAND_TANOBYRUINS_DILFORDCHAMBER (30 | (2 << 8))
+#define MAP_SEVENISLAND_TANOBYRUINS_SCUFIBCHAMBER (31 | (2 << 8))
+#define MAP_SEVENISLAND_TANOBYRUINS_RIXYCHAMBER (32 | (2 << 8))
+#define MAP_SEVENISLAND_TANOBYRUINS_VIAPOISCHAMBER (33 | (2 << 8))
+#define MAP_THREEISLAND_DUNSPARCETUNNEL (34 | (2 << 8))
+#define MAP_SEVENISLAND_SEAVAULTCANYON_TANOBYKEY (35 | (2 << 8))
+#define MAP_NAVELROCK_1F (36 | (2 << 8))
+#define MAP_NAVELROCK_SUMMIT (37 | (2 << 8))
+#define MAP_NAVELROCK_BASE (38 | (2 << 8))
+#define MAP_NAVELROCK_SUMMITPATH_2F (39 | (2 << 8))
+#define MAP_NAVELROCK_SUMMITPATH_3F (40 | (2 << 8))
+#define MAP_NAVELROCK_SUMMITPATH_4F (41 | (2 << 8))
+#define MAP_NAVELROCK_SUMMITPATH_5F (42 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B1F (43 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B2F (44 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B3F (45 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B4F (46 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B5F (47 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B6F (48 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B7F (49 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B8F (50 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B9F (51 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B10F (52 | (2 << 8))
+#define MAP_NAVELROCK_BASEPATH_B11F (53 | (2 << 8))
+#define MAP_NAVELROCK_B1F (54 | (2 << 8))
+#define MAP_NAVELROCK_FORK (55 | (2 << 8))
+#define MAP_BIRTHISLAND_EXTERIOR (56 | (2 << 8))
+#define MAP_ONEISLAND_KINDLEROAD_EMBERSPA (57 | (2 << 8))
+#define MAP_BIRTHISLAND_HARBOR (58 | (2 << 8))
+#define MAP_NAVELROCK_HARBOR (59 | (2 << 8))
+
+// Map Group 3
+#define MAP_PALLETTOWN (0 | (3 << 8))
+#define MAP_VIRIDIANCITY (1 | (3 << 8))
+#define MAP_PEWTERCITY (2 | (3 << 8))
+#define MAP_CERULEANCITY (3 | (3 << 8))
+#define MAP_LAVENDERTOWN (4 | (3 << 8))
+#define MAP_VERMILIONCITY (5 | (3 << 8))
+#define MAP_CELADONCITY (6 | (3 << 8))
+#define MAP_FUCHSIACITY (7 | (3 << 8))
+#define MAP_CINNABARISLAND (8 | (3 << 8))
+#define MAP_INDIGOPLATEAU_EXTERIOR (9 | (3 << 8))
+#define MAP_SAFFRONCITY_DUPLICATE (10 | (3 << 8))
+#define MAP_SAFFRONCITY (11 | (3 << 8))
+#define MAP_ONEISLAND (12 | (3 << 8))
+#define MAP_TWOISLAND (13 | (3 << 8))
+#define MAP_THREEISLAND (14 | (3 << 8))
+#define MAP_FOURISLAND (15 | (3 << 8))
+#define MAP_FIVEISLAND (16 | (3 << 8))
+#define MAP_SEVENISLAND (17 | (3 << 8))
+#define MAP_SIXISLAND (18 | (3 << 8))
+#define MAP_ROUTE1 (19 | (3 << 8))
+#define MAP_ROUTE2 (20 | (3 << 8))
+#define MAP_ROUTE3 (21 | (3 << 8))
+#define MAP_ROUTE4 (22 | (3 << 8))
+#define MAP_ROUTE5 (23 | (3 << 8))
+#define MAP_ROUTE6 (24 | (3 << 8))
+#define MAP_ROUTE7 (25 | (3 << 8))
+#define MAP_ROUTE8 (26 | (3 << 8))
+#define MAP_ROUTE9 (27 | (3 << 8))
+#define MAP_ROUTE10 (28 | (3 << 8))
+#define MAP_ROUTE11 (29 | (3 << 8))
+#define MAP_ROUTE12 (30 | (3 << 8))
+#define MAP_ROUTE13 (31 | (3 << 8))
+#define MAP_ROUTE14 (32 | (3 << 8))
+#define MAP_ROUTE15 (33 | (3 << 8))
+#define MAP_ROUTE16 (34 | (3 << 8))
+#define MAP_ROUTE17 (35 | (3 << 8))
+#define MAP_ROUTE18 (36 | (3 << 8))
+#define MAP_ROUTE19 (37 | (3 << 8))
+#define MAP_ROUTE20 (38 | (3 << 8))
+#define MAP_ROUTE21_NORTH (39 | (3 << 8))
+#define MAP_ROUTE21_SOUTH (40 | (3 << 8))
+#define MAP_ROUTE22 (41 | (3 << 8))
+#define MAP_ROUTE23 (42 | (3 << 8))
+#define MAP_ROUTE24 (43 | (3 << 8))
+#define MAP_ROUTE25 (44 | (3 << 8))
+#define MAP_ONEISLAND_KINDLEROAD (45 | (3 << 8))
+#define MAP_ONEISLAND_TREASUREBEACH (46 | (3 << 8))
+#define MAP_TWOISLAND_CAPEBRINK (47 | (3 << 8))
+#define MAP_THREEISLAND_BONDBRIDGE (48 | (3 << 8))
+#define MAP_THREEISLAND_PORT (49 | (3 << 8))
+#define MAP_UNKNOWNMAP_03_50 (50 | (3 << 8))
+#define MAP_UNKNOWNMAP_03_51 (51 | (3 << 8))
+#define MAP_UNKNOWNMAP_03_52 (52 | (3 << 8))
+#define MAP_UNKNOWNMAP_03_53 (53 | (3 << 8))
+#define MAP_FIVEISLAND_RESORTGORGEOUS (54 | (3 << 8))
+#define MAP_FIVEISLAND_WATERLABYRINTH (55 | (3 << 8))
+#define MAP_FIVEISLAND_MEADOW (56 | (3 << 8))
+#define MAP_FIVEISLAND_MEMORIALPILLAR (57 | (3 << 8))
+#define MAP_SIXISLAND_OUTCASTISLAND (58 | (3 << 8))
+#define MAP_SIXISLAND_GREENPATH (59 | (3 << 8))
+#define MAP_SIXISLAND_WATERPATH (60 | (3 << 8))
+#define MAP_SIXISLAND_RUINVALLEY (61 | (3 << 8))
+#define MAP_SEVENISLAND_TRAINERTOWER (62 | (3 << 8))
+#define MAP_SEVENISLAND_SEVAULTCANYON_ENTRANCE (63 | (3 << 8))
+#define MAP_SEVENISLAND_SEVAULTCANYON (64 | (3 << 8))
+#define MAP_SEVENISLAND_TANOBYRUINS (65 | (3 << 8))
+
+// Map Group 4
+#define MAP_PALLETTOWN_PLAYERSHOUSE_1F (0 | (4 << 8))
+#define MAP_PALLETTOWN_PLAYERSHOUSE_2F (1 | (4 << 8))
+#define MAP_PALLETTOWN_GARYSHOUSE (2 | (4 << 8))
+#define MAP_PALLETTOWN_PROFESSOROAKSLAB (3 | (4 << 8))
+
+// Map Group 5
+#define MAP_VIRIDIANCITY_HOUSE1 (0 | (5 << 8))
+#define MAP_VIRIDIANCITY_GYM (1 | (5 << 8))
+#define MAP_VIRIDIANCITY_HOUSE2 (2 | (5 << 8))
+#define MAP_VIRIDIANCITY_MART (3 | (5 << 8))
+#define MAP_VIRIDIANCITY_POKEMONCENTER_1F (4 | (5 << 8))
+#define MAP_VIRIDIANCITY_POKEMONCENTER_2F (5 | (5 << 8))
+
+// Map Group 6
+#define MAP_PEWTERCITY_MUSEUM_1F (0 | (6 << 8))
+#define MAP_PEWTERCITY_MUSEUM_2F (1 | (6 << 8))
+#define MAP_PEWTERCITY_GYM (2 | (6 << 8))
+#define MAP_PEWTERCITY_MART (3 | (6 << 8))
+#define MAP_PEWTERCITY_HOUSE1 (4 | (6 << 8))
+#define MAP_PEWTERCITY_POKEMONCENTER_1F (5 | (6 << 8))
+#define MAP_PEWTERCITY_POKEMONCENTER_2F (6 | (6 << 8))
+#define MAP_PEWTERCITY_HOUSE2 (7 | (6 << 8))
+
+// Map Group 7
+#define MAP_CERULEANCITY_HOUSE1 (0 | (7 << 8))
+#define MAP_CERULEANCITY_HOUSE2 (1 | (7 << 8))
+#define MAP_CERULEANCITY_HOUSE3 (2 | (7 << 8))
+#define MAP_CERULEANCITY_POKEMONCENTER_1F (3 | (7 << 8))
+#define MAP_CERULEANCITY_POKEMONCENTER_2F (4 | (7 << 8))
+#define MAP_CERULEANCITY_GYM (5 | (7 << 8))
+#define MAP_CERULEANCITY_BIKESHOP (6 | (7 << 8))
+#define MAP_CERULEANCITY_MART (7 | (7 << 8))
+#define MAP_CERULEANCITY_HOUSE4 (8 | (7 << 8))
+#define MAP_CERULEANCITY_HOUSE5 (9 | (7 << 8))
+
+// Map Group 8
+#define MAP_LAVENDERTOWN_POKEMONCENTER_1F (0 | (8 << 8))
+#define MAP_LAVENDERTOWN_POKEMONCENTER_2F (1 | (8 << 8))
+#define MAP_LAVENDERTOWN_VOLUNTEERPOKEMONHOUSE (2 | (8 << 8))
+#define MAP_LAVENDERTOWN_HOUSE1 (3 | (8 << 8))
+#define MAP_LAVENDERTOWN_HOUSE2 (4 | (8 << 8))
+#define MAP_LAVENDERTOWN_MART (5 | (8 << 8))
+
+// Map Group 9
+#define MAP_VERMILIONCITY_HOUSE1 (0 | (9 << 8))
+#define MAP_VERMILIONCITY_POKEMONCENTER_1F (1 | (9 << 8))
+#define MAP_VERMILIONCITY_POKEMONCENTER_2F (2 | (9 << 8))
+#define MAP_VERMILIONCITY_POKEMONFANCLUB (3 | (9 << 8))
+#define MAP_VERMILIONCITY_HOUSE2 (4 | (9 << 8))
+#define MAP_VERMILIONCITY_MART (5 | (9 << 8))
+#define MAP_VERMILIONCITY_GYM (6 | (9 << 8))
+#define MAP_VERMILIONCITY_HOUSE3 (7 | (9 << 8))
+
+// Map Group 10
+#define MAP_CELADONCITY_DEPARTMENTSTORE_1F (0 | (10 << 8))
+#define MAP_CELADONCITY_DEPARTMENTSTORE_2F (1 | (10 << 8))
+#define MAP_CELADONCITY_DEPARTMENTSTORE_3F (2 | (10 << 8))
+#define MAP_CELADONCITY_DEPARTMENTSTORE_4F (3 | (10 << 8))
+#define MAP_CELADONCITY_DEPARTMENTSTORE_5F (4 | (10 << 8))
+#define MAP_CELADONCITY_DEPARTMENTSTORE_ROOF (5 | (10 << 8))
+#define MAP_CELADONCITY_DEPARTMENTSTORE_ELEVATOR (6 | (10 << 8))
+#define MAP_CELADONCITY_CONDOMINIUMS_1F (7 | (10 << 8))
+#define MAP_CELADONCITY_CONDOMINIUMS_2F (8 | (10 << 8))
+#define MAP_CELADONCITY_CONDOMINIUMS_3F (9 | (10 << 8))
+#define MAP_CELADONCITY_CONDOMINIUMS_ROOF (10 | (10 << 8))
+#define MAP_CELADONCITY_CONDOMINIUMS_ROOFROOM (11 | (10 << 8))
+#define MAP_CELADONCITY_POKEMONCENTER_1F (12 | (10 << 8))
+#define MAP_CELADONCITY_POKEMONCENTER_2F (13 | (10 << 8))
+#define MAP_CELADONCITY_GAMECORNER (14 | (10 << 8))
+#define MAP_CELADONCITY_GAMECORNER_PRIZEROOM (15 | (10 << 8))
+#define MAP_CELADONCITY_GYM (16 | (10 << 8))
+#define MAP_CELADONCITY_RESTAURANT (17 | (10 << 8))
+#define MAP_CELADONCITY_HOUSE1 (18 | (10 << 8))
+#define MAP_CELADONCITY_HOTEL (19 | (10 << 8))
+
+// Map Group 11
+#define MAP_FUCHSIACITY_SAFARIZONE_ENTRANCE (0 | (11 << 8))
+#define MAP_FUCHSIACITY_MART (1 | (11 << 8))
+#define MAP_FUCHSIACITY_ZOOBUILDING (2 | (11 << 8))
+#define MAP_FUCHSIACITY_GYM (3 | (11 << 8))
+#define MAP_FUCHSIACITY_HOUSE1 (4 | (11 << 8))
+#define MAP_FUCHSIACITY_POKEMONCENTER_1F (5 | (11 << 8))
+#define MAP_FUCHSIACITY_POKEMONCENTER_2F (6 | (11 << 8))
+#define MAP_FUCHSIACITY_BUILDING1 (7 | (11 << 8))
+#define MAP_FUCHSIACITY_HOUSE2 (8 | (11 << 8))
+#define MAP_FUCHSIACITY_HOUSE3 (9 | (11 << 8))
+
+// Map Group 12
+#define MAP_CINNABARISLAND_GYM (0 | (12 << 8))
+#define MAP_CINNABARISLAND_POKEMONLAB_ENTRANCE (1 | (12 << 8))
+#define MAP_CINNABARISLAND_POKEMONLAB_LOUNGE (2 | (12 << 8))
+#define MAP_CINNABARISLAND_POKEMONLAB_RESEARCHROOM (3 | (12 << 8))
+#define MAP_CINNABARISLAND_POKEMONLAB_EXPERIMENTROOM (4 | (12 << 8))
+#define MAP_CINNABARISLAND_POKEMONCENTER_1F (5 | (12 << 8))
+#define MAP_CINNABARISLAND_POKEMONCENTER_2F (6 | (12 << 8))
+#define MAP_CINNABARISLAND_MART (7 | (12 << 8))
+
+// Map Group 13
+#define MAP_INDIGOPLATEAU_POKEMONCENTER_1F (0 | (13 << 8))
+#define MAP_INDIGOPLATEAU_POKEMONCENTER_2F (1 | (13 << 8))
+
+// Map Group 14
+#define MAP_SAFFRONCITY_HOUSE1_1F (0 | (14 << 8))
+#define MAP_SAFFRONCITY_HOUSE1_2F (1 | (14 << 8))
+#define MAP_SAFFRONCITY_DOJO (2 | (14 << 8))
+#define MAP_SAFFRONCITY_GYM (3 | (14 << 8))
+#define MAP_SAFFRONCITY_HOUSE2 (4 | (14 << 8))
+#define MAP_SAFFRONCITY_MART (5 | (14 << 8))
+#define MAP_SAFFRONCITY_POKEMONCENTER_1F (6 | (14 << 8))
+#define MAP_SAFFRONCITY_POKEMONCENTER_2F (7 | (14 << 8))
+#define MAP_SAFFRONCITY_HOUSE3 (8 | (14 << 8))
+#define MAP_SAFFRONCITY_POKEMONTRAINERFANCLUB (9 | (14 << 8))
+
+// Map Group 15
+#define MAP_ROUTE2_VIRIDIANFOREST_SOUTHENTRANCE (0 | (15 << 8))
+#define MAP_ROUTE2_HOUSE (1 | (15 << 8))
+#define MAP_ROUTE2_EASTBUILDING (2 | (15 << 8))
+#define MAP_ROUTE2_VIRIDIANFOREST_NORTHENTRANCE (3 | (15 << 8))
+
+// Map Group 16
+#define MAP_ROUTE4_POKEMONCENTER_1F (0 | (16 << 8))
+#define MAP_ROUTE4_POKEMONCENTER_2F (1 | (16 << 8))
+
+// Map Group 17
+#define MAP_ROUTE5_POKEMONDAYCARE (0 | (17 << 8))
+#define MAP_ROUTE5_SOUTHENTRANCE (1 | (17 << 8))
+
+// Map Group 18
+#define MAP_ROUTE6_NORTHENTRANCE (0 | (18 << 8))
+#define MAP_UNKNOWNMAP_18_01 (1 | (18 << 8))
+
+// Map Group 19
+#define MAP_ROUTE7_EASTENTRANCE (0 | (19 << 8))
+
+// Map Group 20
+#define MAP_ROUTE8_WESTENTRANCE (0 | (20 << 8))
+
+// Map Group 21
+#define MAP_ROUTE10_POKEMONCENTER_1F (0 | (21 << 8))
+#define MAP_ROUTE10_POKEMONCENTER_2F (1 | (21 << 8))
+
+// Map Group 22
+#define MAP_ROUTE11_EASTENTRANCE_1F (0 | (22 << 8))
+#define MAP_ROUTE11_EASTENTRANCE_2F (1 | (22 << 8))
+
+// Map Group 23
+#define MAP_ROUTE12_NORTHENTRANCE_1F (0 | (23 << 8))
+#define MAP_ROUTE12_NORTHENTRANCE_2F (1 | (23 << 8))
+#define MAP_ROUTE12_FISHINGHOUSE (2 | (23 << 8))
+
+// Map Group 24
+#define MAP_ROUTE15_WESTENTRANCE_1F (0 | (24 << 8))
+#define MAP_ROUTE15_WESTENTRANCE_2F (1 | (24 << 8))
+
+// Map Group 25
+#define MAP_ROUTE16_HOUSE (0 | (25 << 8))
+#define MAP_ROUTE16_NORTHENTRANCE_1F (1 | (25 << 8))
+#define MAP_ROUTE16_NORTHENTRANCE_2F (2 | (25 << 8))
+
+// Map Group 26
+#define MAP_ROUTE18_EASTENTRANCE_1F (0 | (26 << 8))
+#define MAP_ROUTE18_EASTENTRANCE_2F (1 | (26 << 8))
+
+// Map Group 27
+#define MAP_UNUSEDHOUSE_27_00 (0 | (27 << 8))
+
+// Map Group 28
+#define MAP_ROUTE22_NORTHENTRANCE (0 | (28 << 8))
+
+// Map Group 29
+#define MAP_UNUSEDHOUSE_29_00 (0 | (29 << 8))
+
+// Map Group 30
+#define MAP_ROUTE25_SEACOTTAGE (0 | (30 << 8))
+
+// Map Group 31
+#define MAP_SEVENISLAND_HOUSE_ROOM1 (0 | (31 << 8))
+#define MAP_SEVENISLAND_HOUSE_ROOM2 (1 | (31 << 8))
+#define MAP_SEVENISLAND_MART (2 | (31 << 8))
+#define MAP_SEVENISLAND_POKEMONCENTER_1F (3 | (31 << 8))
+#define MAP_SEVENISLAND_POKEMONCENTER_2F (4 | (31 << 8))
+#define MAP_UNUSEDHOUSE_31_05 (5 | (31 << 8))
+#define MAP_SEVENISLAND_HARBOR (6 | (31 << 8))
+
+// Map Group 32
+#define MAP_ONEISLAND_POKEMONCENTER_1F (0 | (32 << 8))
+#define MAP_ONEISLAND_POKEMONCENTER_2F (1 | (32 << 8))
+#define MAP_ONEISLAND_HOUSE1 (2 | (32 << 8))
+#define MAP_ONEISLAND_HOUSE2 (3 | (32 << 8))
+#define MAP_ONEISLAND_HARBOR (4 | (32 << 8))
+
+// Map Group 33
+#define MAP_TWOISLAND_JOYFULGAMECORNER (0 | (33 << 8))
+#define MAP_TWOISLAND_HOUSE (1 | (33 << 8))
+#define MAP_TWOISLAND_POKEMONCENTER_1F (2 | (33 << 8))
+#define MAP_TWOISLAND_POKEMONCENTER_2F (3 | (33 << 8))
+#define MAP_TWOISLAND_HARBOR (4 | (33 << 8))
+
+// Map Group 34
+#define MAP_THREEISLAND_HOUSE1 (0 | (34 << 8))
+#define MAP_THREEISLAND_POKEMONCENTER_1F (1 | (34 << 8))
+#define MAP_THREEISLAND_POKEMONCENTER_2F (2 | (34 << 8))
+#define MAP_THREEISLAND_MART (3 | (34 << 8))
+#define MAP_THREEISLAND_HOUSE2 (4 | (34 << 8))
+#define MAP_THREEISLAND_HOUSE3 (5 | (34 << 8))
+#define MAP_THREEISLAND_HOUSE4 (6 | (34 << 8))
+#define MAP_THREEISLAND_HOUSE5 (7 | (34 << 8))
+
+// Map Group 35
+#define MAP_FOURISLAND_POKEMONDAYCARE (0 | (35 << 8))
+#define MAP_FOURISLAND_POKEMONCENTER_1F (1 | (35 << 8))
+#define MAP_FOURISLAND_POKEMONCENTER_2F (2 | (35 << 8))
+#define MAP_FOURISLAND_HOUSE1 (3 | (35 << 8))
+#define MAP_FOURISLAND_LORELEISHOUSE (4 | (35 << 8))
+#define MAP_FOURISLAND_HARBOR (5 | (35 << 8))
+#define MAP_FOURISLAND_HOUSE2 (6 | (35 << 8))
+#define MAP_FOURISLAND_MART (7 | (35 << 8))
+
+// Map Group 36
+#define MAP_FIVEISLAND_POKEMONCENTER_1F (0 | (36 << 8))
+#define MAP_FIVEISLAND_POKEMONCENTER_2F (1 | (36 << 8))
+#define MAP_FIVEISLAND_HARBOR (2 | (36 << 8))
+#define MAP_FIVEISLAND_HOUSE1 (3 | (36 << 8))
+#define MAP_FIVEISLAND_HOUSE2 (4 | (36 << 8))
+
+// Map Group 37
+#define MAP_SIXISLAND_POKEMONCENTER_1F (0 | (37 << 8))
+#define MAP_SIXISLAND_POKEMONCENTER_2F (1 | (37 << 8))
+#define MAP_SIXISLAND_HARBOR (2 | (37 << 8))
+#define MAP_SIXISLAND_HOUSE (3 | (37 << 8))
+#define MAP_SIXISLAND_MART (4 | (37 << 8))
+
+// Map Group 38
+#define MAP_THREEISLAND_HARBOR (0 | (38 << 8))
+
+// Map Group 39
+#define MAP_FIVEISLAND_RESORTGORGEOUS_HOUSE (0 | (39 << 8))
+
+// Map Group 40
+#define MAP_TWOISLAND_CAPEBRINK_HOUSE (0 | (40 << 8))
+
+// Map Group 41
+#define MAP_SIXISLAND_WATERPATH_HOUSE1 (0 | (41 << 8))
+#define MAP_SIXISLAND_WATERPATH_HOUSE2 (1 | (41 << 8))
+
+// Map Group 42
+#define MAP_SEVENISLAND_SEVAULTCANYON_HOUSE (0 | (42 << 8))
+
+#endif // GUARD_CONSTANTS_MAP_GROUPS_H
diff --git a/include/constants/maps.h b/include/constants/maps.h
index 737edd7de..8a8a023a8 100644
--- a/include/constants/maps.h
+++ b/include/constants/maps.h
@@ -1,594 +1,11 @@
#ifndef GUARD_CONSTANTS_MAPS_H
#define GUARD_CONSTANTS_MAPS_H
-// Map Group 0
-#define MAP_PETALBURG_CITY (0 | (0 << 8))
-#define MAP_SLATEPORT_CITY (1 | (0 << 8))
-#define MAP_MAUVILLE_CITY (2 | (0 << 8))
-#define MAP_RUSTBORO_CITY (3 | (0 << 8))
-#define MAP_FORTREE_CITY (4 | (0 << 8))
-#define MAP_LILYCOVE_CITY (5 | (0 << 8))
-#define MAP_MOSSDEEP_CITY (6 | (0 << 8))
-#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8))
-#define MAP_EVER_GRANDE_CITY (8 | (0 << 8))
-#define MAP_LITTLEROOT_TOWN (9 | (0 << 8))
-#define MAP_OLDALE_TOWN (10 | (0 << 8))
-#define MAP_DEWFORD_TOWN (11 | (0 << 8))
-#define MAP_LAVARIDGE_TOWN (12 | (0 << 8))
-#define MAP_FALLARBOR_TOWN (13 | (0 << 8))
-#define MAP_VERDANTURF_TOWN (14 | (0 << 8))
-#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8))
-#define MAP_ROUTE101 (16 | (0 << 8))
-#define MAP_ROUTE102 (17 | (0 << 8))
-#define MAP_ROUTE103 (18 | (0 << 8))
-#define MAP_ROUTE104 (19 | (0 << 8))
-#define MAP_ROUTE105 (20 | (0 << 8))
-#define MAP_ROUTE106 (21 | (0 << 8))
-#define MAP_ROUTE107 (22 | (0 << 8))
-#define MAP_ROUTE108 (23 | (0 << 8))
-#define MAP_ROUTE109 (24 | (0 << 8))
-#define MAP_ROUTE110 (25 | (0 << 8))
-#define MAP_ROUTE111 (26 | (0 << 8))
-#define MAP_ROUTE112 (27 | (0 << 8))
-#define MAP_ROUTE113 (28 | (0 << 8))
-#define MAP_ROUTE114 (29 | (0 << 8))
-#define MAP_ROUTE115 (30 | (0 << 8))
-#define MAP_ROUTE116 (31 | (0 << 8))
-#define MAP_ROUTE117 (32 | (0 << 8))
-#define MAP_ROUTE118 (33 | (0 << 8))
-#define MAP_ROUTE119 (34 | (0 << 8))
-#define MAP_ROUTE120 (35 | (0 << 8))
-#define MAP_ROUTE121 (36 | (0 << 8))
-#define MAP_ROUTE122 (37 | (0 << 8))
-#define MAP_ROUTE123 (38 | (0 << 8))
-#define MAP_ROUTE124 (39 | (0 << 8))
-#define MAP_ROUTE125 (40 | (0 << 8))
-#define MAP_ROUTE126 (41 | (0 << 8))
-#define MAP_ROUTE127 (42 | (0 << 8))
-#define MAP_ROUTE128 (43 | (0 << 8))
-#define MAP_ROUTE129 (44 | (0 << 8))
-#define MAP_ROUTE130 (45 | (0 << 8))
-#define MAP_ROUTE131 (46 | (0 << 8))
-#define MAP_ROUTE132 (47 | (0 << 8))
-#define MAP_ROUTE133 (48 | (0 << 8))
-#define MAP_ROUTE134 (49 | (0 << 8))
-#define MAP_UNDERWATER1 (50 | (0 << 8))
-#define MAP_UNDERWATER2 (51 | (0 << 8))
-#define MAP_UNDERWATER3 (52 | (0 << 8))
-#define MAP_UNDERWATER4 (53 | (0 << 8))
-
-// Map Group 1
-#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8))
-#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8))
-#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8))
-#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8))
-#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8))
-
-// Map Group 2
-#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8))
-#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8))
-#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8))
-#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8))
-#define MAP_OLDALE_TOWN_MART (4 | (2 << 8))
-
-// Map Group 3
-#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8))
-#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8))
-#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8))
-#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8))
-#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8))
-#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8))
-
-// Map Group 4
-#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8))
-
-// Map Group 5
-#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8))
-
-// Map Group 6
-#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8))
-
-// Map Group 7
-#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8))
-
-// Map Group 8
-#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8))
-#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8))
-#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8))
-#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8))
-#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8))
-#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8))
-#define MAP_PETALBURG_CITY_MART (6 | (8 << 8))
-
-// Map Group 9
-#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8))
-#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8))
-#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8))
-#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8))
-#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8))
-#define MAP_SLATEPORT_CITY_HOUSE1 (5 | (9 << 8))
-#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8))
-#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8))
-#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8))
-#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8))
-#define MAP_SLATEPORT_CITY_HOUSE2 (10 | (9 << 8))
-#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8))
-#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8))
-#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8))
-
-// Map Group 10
-#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8))
-#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8))
-#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8))
-#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8))
-#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8))
-#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8))
-#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8))
-#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8))
-
-// Map Group 11
-#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8))
-#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8))
-#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8))
-#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8))
-#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8))
-#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8))
-#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8))
-#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8))
-#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8))
-#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8))
-#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8))
-#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8))
-
-// Map Group 12
-#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8))
-#define MAP_FORTREE_CITY_GYM (1 | (12 << 8))
-#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8))
-#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8))
-#define MAP_FORTREE_CITY_MART (4 | (12 << 8))
-#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8))
-#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8))
-#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8))
-#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8))
-#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8))
-
-// Map Group 13
-#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8))
-#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8))
-#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8))
-#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8))
-#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8))
-#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8))
-#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8))
-#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8))
-#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8))
-#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8))
-#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8))
-
-// Map Group 14
-#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8))
-
-// Map Group 15
-#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE9_1F (13 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE9_B1F (14 | (15 << 8))
-
-// Map Group 16
-#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8))
-
-// Map Group 17
-#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8))
-#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8))
-
-// Map Group 18
-#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8))
-#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8))
-
-// Map Group 19
-#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8))
-#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8))
-
-// Map Group 20
-#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8))
-#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8))
-#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8))
-
-// Map Group 21
-#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8))
-
-// Map Group 22
-#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8))
-
-// Map Group 23
-#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8))
-
-// Map Group 24
-#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8))
-#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8))
-#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8))
-#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8))
-#define MAP_RUSTURF_TUNNEL (4 | (24 << 8))
-#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8))
-#define MAP_DESERT_RUINS (6 | (24 << 8))
-#define MAP_GRANITE_CAVE_1F (7 | (24 << 8))
-#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8))
-#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8))
-#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8))
-#define MAP_PETALBURG_WOODS (11 | (24 << 8))
-#define MAP_MT_CHIMNEY (12 | (24 << 8))
-#define MAP_JAGGED_PASS (13 | (24 << 8))
-#define MAP_FIERY_PATH (14 | (24 << 8))
-#define MAP_MT_PYRE_1F (15 | (24 << 8))
-#define MAP_MT_PYRE_2F (16 | (24 << 8))
-#define MAP_MT_PYRE_3F (17 | (24 << 8))
-#define MAP_MT_PYRE_4F (18 | (24 << 8))
-#define MAP_MT_PYRE_5F (19 | (24 << 8))
-#define MAP_MT_PYRE_6F (20 | (24 << 8))
-#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8))
-#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8))
-#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8))
-#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8))
-#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8))
-#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B1F (39 | (24 << 8)) //
-#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B2F (40 | (24 << 8)) // Ruby/Sapphire leftovers
-#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B3F (41 | (24 << 8)) //
-#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8))
-#define MAP_VICTORY_ROAD_1F (43 | (24 << 8))
-#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8))
-#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8))
-#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8))
-#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8))
-#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8))
-#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8))
-#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8))
-#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8))
-#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8))
-#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8))
-#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8))
-#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8))
-#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8))
-#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8))
-#define MAP_ISLAND_CAVE (67 | (24 << 8))
-#define MAP_ANCIENT_TOMB (68 | (24 << 8))
-#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8))
-#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8))
-#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8))
-#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8))
-#define MAP_SCORCHED_SLAB (73 | (24 << 8))
-#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_1F (74 | (24 << 8)) //
-#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B1F (75 | (24 << 8)) // Ruby/Sapphire leftovers
-#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B2F (76 | (24 << 8)) //
-#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8))
-#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8))
-#define MAP_SKY_PILLAR_1F (79 | (24 << 8))
-#define MAP_SKY_PILLAR_2F (80 | (24 << 8))
-#define MAP_SKY_PILLAR_3F (81 | (24 << 8))
-#define MAP_SKY_PILLAR_4F (82 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8))
-#define MAP_SKY_PILLAR_5F (84 | (24 << 8))
-#define MAP_SKY_PILLAR_TOP (85 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8))
-#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8))
-#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8))
-#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8))
-#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8))
-#define MAP_DESERT_UNDERPASS (98 | (24 << 8))
-#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8))
-#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8))
-#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8))
-#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8))
-#define MAP_MARINE_CAVE_END (103 | (24 << 8))
-#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8))
-#define MAP_TERRA_CAVE_END (105 | (24 << 8))
-#define MAP_ALTERING_CAVE (106 | (24 << 8))
-#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8))
-
-// Map Group 25
-#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
-#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
-#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
-#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
-#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
-#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
-#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
-#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
-#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8))
-#define MAP_TRADE_CENTER (25 | (25 << 8))
-#define MAP_RECORD_CORNER (26 | (25 << 8))
-#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8))
-#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
-#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
-#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
-#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_01 (44 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_02 (45 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_03 (46 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_04 (47 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_05 (48 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_06 (49 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_07 (50 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_08 (51 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_09 (52 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_10 (53 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_11 (54 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_12 (55 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_13 (56 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_14 (57 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_15 (58 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_16 (59 | (25 << 8))
-#define MAP_UNION_ROOM (60 | (25 << 8))
-
-// Map Group 26
-#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
-#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
-#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
-#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
-#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
-#define MAP_SAFARI_ZONE_EM_1 (12 | (26 << 8))
-#define MAP_SAFARI_ZONE_EM_2 (13 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR_2 (16 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM_2 (17 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_1 (37 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_2 (38 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_3 (39 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_1 (41 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_2 (43 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_3 (44 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_4 (45 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_5 (47 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_6 (48 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_7 (49 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_8 (51 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_9 (52 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8))
-#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8))
-#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8))
-#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8))
-#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8))
-#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8))
-#define MAP_TRAINER_HILL_1F (61 | (26 << 8))
-#define MAP_TRAINER_HILL_2F (62 | (26 << 8))
-#define MAP_TRAINER_HILL_3F (63 | (26 << 8))
-#define MAP_TRAINER_HILL_4F (64 | (26 << 8))
-#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8))
-#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8))
-#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8))
-#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8))
-#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
-#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP_1 (71 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP_2 (72 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP_3 (73 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP_4 (74 | (26 << 8))
-#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_01 (76 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_02 (77 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_03 (78 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_04 (79 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_05 (80 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_06 (81 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_07 (82 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_08 (83 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_09 (84 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_10 (85 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_11 (86 | (26 << 8))
-#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8))
-#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8))
-
-// Map Group 27
-#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
-#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8))
-
-// Map Group 28
-#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8))
-
-// Map Group 29
-#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8))
-#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8))
-#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8))
-
-// Map Group 30
-#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8))
-
-// Map Group 31
-#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8))
-
-// Map Group 32
-#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8))
-#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8))
-#define MAP_ROUTE119_HOUSE (2 | (32 << 8))
-
-// Map Group 33
-#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))
-
+#include "constants/map_groups.h"
#define MAP_NONE (0x7F | (0x7F << 8))
#define MAP_UNDEFINED (0xFF | (0xFF << 8))
-
#define MAP_GROUP(map) (MAP_##map >> 8)
#define MAP_NUM(map) (MAP_##map & 0xFF)
diff --git a/include/constants/region_map.h b/include/constants/region_map.h
index 87203f538..527acf2c9 100644
--- a/include/constants/region_map.h
+++ b/include/constants/region_map.h
@@ -1,115 +1,203 @@
#ifndef GUARD_CONSTANTS_REGION_MAP_H
#define GUARD_CONSTANTS_REGION_MAP_H
-#define MAPSEC_PALLET_TOWN 0x0
-#define MAPSEC_VIRIDIAN_CITY 0x1
-#define MAPSEC_PEWTER_CITY 0x2
-#define MAPSEC_CERULEAN_CITY 0x3
-#define MAPSEC_LAVENDER_TOWN 0x4
-#define MAPSEC_VERMILION_CITY 0x5
-#define MAPSEC_CELADON_CITY 0x6
-#define MAPSEC_FUCHSIA_CITY 0x7
-#define MAPSEC_CINNABAR_ISLAND 0x8
-#define MAPSEC_INDIGO_PLATEAU 0x9
-#define MAPSEC_SAFFRON_CITY 0xA
-#define MAPSEC_ROUTE_4 0xB
-#define MAPSEC_ROUTE_10 0xC
-#define MAPSEC_ROUTE_1 0xD
-#define MAPSEC_ROUTE_2 0xE
-#define MAPSEC_ROUTE_3 0xF
-#define MAPSEC_ROUTE_4_2 0x10
-#define MAPSEC_ROUTE_5 0x11
-#define MAPSEC_ROUTE_6 0x12
-#define MAPSEC_ROUTE_7 0x13
-#define MAPSEC_ROUTE_8 0x14
-#define MAPSEC_ROUTE_9 0x15
-#define MAPSEC_ROUTE_10_2 0x16
-#define MAPSEC_ROUTE_11 0x17
-#define MAPSEC_ROUTE_12 0x18
-#define MAPSEC_ROUTE_13 0x19
-#define MAPSEC_ROUTE_14 0x1A
-#define MAPSEC_ROUTE_15 0x1B
-#define MAPSEC_ROUTE_16 0x1C
-#define MAPSEC_ROUTE_17 0x1D
-#define MAPSEC_ROUTE_18 0x1E
-#define MAPSEC_ROUTE_19 0x1F
-#define MAPSEC_ROUTE_20 0x20
-#define MAPSEC_ROUTE_21 0x21
-#define MAPSEC_ROUTE_22 0x22
-#define MAPSEC_ROUTE_23 0x23
-#define MAPSEC_ROUTE_24 0x24
-#define MAPSEC_ROUTE_25 0x25
-#define MAPSEC_VIRIDIAN_FOREST 0x26
-#define MAPSEC_MT_MOON 0x27
-#define MAPSEC_S_S_ANNE 0x28
-#define MAPSEC_UNDERGROUND_PATH 0x29
-#define MAPSEC_UNDERGROUND_PATH_2 0x2A
-#define MAPSEC_DIGLETTS_CAVE 0x2B
-#define MAPSEC_KANTO_VICTORY_ROAD 0x2C
-#define MAPSEC_ROCKET_HIDEOUT 0x2D
-#define MAPSEC_SILPH_CO 0x2E
-#define MAPSEC_POKEMON_MANSION 0x2F
-#define MAPSEC_KANTO_SAFARI_ZONE 0x30
-#define MAPSEC_POKEMON_LEAGUE 0x31
-#define MAPSEC_ROCK_TUNNEL 0x32
-#define MAPSEC_SEAFOAM_ISLANDS 0x33
-#define MAPSEC_POKEMON_TOWER 0x34
-#define MAPSEC_CERULEAN_CAVE 0x35
-#define MAPSEC_POWER_PLANT 0x36
-#define MAPSEC_ONE_ISLAND 0x37
-#define MAPSEC_TWO_ISLAND 0x38
-#define MAPSEC_THREE_ISLAND 0x39
-#define MAPSEC_FOUR_ISLAND 0x3A
-#define MAPSEC_FIVE_ISLAND 0x3B
-#define MAPSEC_SEVEN_ISLAND 0x3C
-#define MAPSEC_SIX_ISLAND 0x3D
-#define MAPSEC_KINDLE_ROAD 0x3E
-#define MAPSEC_TREASURE_BEACH 0x3F
-#define MAPSEC_CAPE_BRINK 0x40
-#define MAPSEC_BOND_BRIDGE 0x41
-#define MAPSEC_THREE_ISLE_PORT 0x42
-#define MAPSEC_SEVII_ISLE_6 0x43
-#define MAPSEC_SEVII_ISLE_7 0x44
-#define MAPSEC_SEVII_ISLE_8 0x45
-#define MAPSEC_SEVII_ISLE_9 0x46
-#define MAPSEC_RESORT_GORGEOUS 0x47
-#define MAPSEC_WATER_LABYRINTH 0x48
-#define MAPSEC_FIVE_ISLE_MEADOW 0x49
-#define MAPSEC_MEMORIAL_PILLAR 0x4A
-#define MAPSEC_OUTCAST_ISLAND 0x4B
-#define MAPSEC_GREEN_PATH 0x4C
-#define MAPSEC_WATER_PATH 0x4D
-#define MAPSEC_RUIN_VALLEY 0x4E
-#define MAPSEC_TRAINER_TOWER 0x4F
-#define MAPSEC_CANYON_ENTRANCE 0x50
-#define MAPSEC_SEVAULT_CANYON 0x51
-#define MAPSEC_TANOBY_RUINS 0x52
-#define MAPSEC_SEVII_ISLE_22 0x53
-#define MAPSEC_SEVII_ISLE_23 0x54
-#define MAPSEC_SEVII_ISLE_24 0x55
-#define MAPSEC_NAVEL_ROCK 0x56
-#define MAPSEC_MT_EMBER 0x57
-#define MAPSEC_BERRY_FOREST 0x58
-#define MAPSEC_ICEFALL_CAVE 0x59
-#define MAPSEC_ROCKET_WAREHOUSE 0x5A
-#define MAPSEC_TRAINER_TOWER_2 0x5B
-#define MAPSEC_DOTTED_HOLE 0x5C
-#define MAPSEC_LOST_CAVE 0x5D
-#define MAPSEC_PATTERN_BUSH 0x5E
-#define MAPSEC_ALTERING_CAVE 0x5F
-#define MAPSEC_TANOBY_CHAMBERS 0x60
-#define MAPSEC_THREE_ISLE_PATH 0x61
-#define MAPSEC_TANOBY_KEY 0x62
-#define MAPSEC_BIRTH_ISLAND 0x63
-#define MAPSEC_MONEAN_CHAMBER 0x64
-#define MAPSEC_LIPTOO_CHAMBER 0x65
-#define MAPSEC_WEEPTH_CHAMBER 0x66
-#define MAPSEC_DILFORD_CHAMBER 0x67
-#define MAPSEC_SCUFIB_CHAMBER 0x68
-#define MAPSEC_RIXY_CHAMBER 0x69
-#define MAPSEC_VIAPOIS_CHAMBER 0x6A
-#define MAPSEC_EMBER_SPA 0x6B
-#define MAPSEC_CELADON_DEPT 0x6C
-#define MAPSEC_NONE 0x6D
+#define MAPSEC_LITTLEROOT_TOWN 0x00
+#define MAPSEC_OLDALE_TOWN 0x01
+#define MAPSEC_DEWFORD_TOWN 0x02
+#define MAPSEC_LAVARIDGE_TOWN 0x03
+#define MAPSEC_FALLARBOR_TOWN 0x04
+#define MAPSEC_VERDANTURF_TOWN 0x05
+#define MAPSEC_PACIFIDLOG_TOWN 0x06
+#define MAPSEC_PETALBURG_CITY 0x07
+#define MAPSEC_SLATEPORT_CITY 0x08
+#define MAPSEC_MAUVILLE_CITY 0x09
+#define MAPSEC_RUSTBORO_CITY 0x0A
+#define MAPSEC_FORTREE_CITY 0x0B
+#define MAPSEC_LILYCOVE_CITY 0x0C
+#define MAPSEC_MOSSDEEP_CITY 0x0D
+#define MAPSEC_SOOTOPOLIS_CITY 0x0E
+#define MAPSEC_EVER_GRANDE_CITY 0x0F
+#define MAPSEC_ROUTE_101 0x10
+#define MAPSEC_ROUTE_102 0x11
+#define MAPSEC_ROUTE_103 0x12
+#define MAPSEC_ROUTE_104 0x13
+#define MAPSEC_ROUTE_105 0x14
+#define MAPSEC_ROUTE_106 0x15
+#define MAPSEC_ROUTE_107 0x16
+#define MAPSEC_ROUTE_108 0x17
+#define MAPSEC_ROUTE_109 0x18
+#define MAPSEC_ROUTE_110 0x19
+#define MAPSEC_ROUTE_111 0x1A
+#define MAPSEC_ROUTE_112 0x1B
+#define MAPSEC_ROUTE_113 0x1C
+#define MAPSEC_ROUTE_114 0x1D
+#define MAPSEC_ROUTE_115 0x1E
+#define MAPSEC_ROUTE_116 0x1F
+#define MAPSEC_ROUTE_117 0x20
+#define MAPSEC_ROUTE_118 0x21
+#define MAPSEC_ROUTE_119 0x22
+#define MAPSEC_ROUTE_120 0x23
+#define MAPSEC_ROUTE_121 0x24
+#define MAPSEC_ROUTE_122 0x25
+#define MAPSEC_ROUTE_123 0x26
+#define MAPSEC_ROUTE_124 0x27
+#define MAPSEC_ROUTE_125 0x28
+#define MAPSEC_ROUTE_126 0x29
+#define MAPSEC_ROUTE_127 0x2A
+#define MAPSEC_ROUTE_128 0x2B
+#define MAPSEC_ROUTE_129 0x2C
+#define MAPSEC_ROUTE_130 0x2D
+#define MAPSEC_ROUTE_131 0x2E
+#define MAPSEC_ROUTE_132 0x2F
+#define MAPSEC_ROUTE_133 0x30
+#define MAPSEC_ROUTE_134 0x31
+#define MAPSEC_UNDERWATER_124 0x32
+#define MAPSEC_UNDERWATER_125 0x33
+#define MAPSEC_UNDERWATER_126 0x34
+#define MAPSEC_UNDERWATER_127 0x35
+#define MAPSEC_UNDERWATER_SOOTOPOLIS 0x36
+#define MAPSEC_GRANITE_CAVE 0x37
+#define MAPSEC_MT_CHIMNEY 0x38
+#define MAPSEC_SAFARI_ZONE 0x39
+#define MAPSEC_BATTLE_FRONTIER 0x3A
+#define MAPSEC_PETALBURG_WOODS 0x3B
+#define MAPSEC_RUSTURF_TUNNEL 0x3C
+#define MAPSEC_ABANDONED_SHIP 0x3D
+#define MAPSEC_NEW_MAUVILLE 0x3E
+#define MAPSEC_METEOR_FALLS 0x3F
+#define MAPSEC_METEOR_FALLS2 0x40
+#define MAPSEC_MT_PYRE 0x41
+#define MAPSEC_AQUA_HIDEOUT_OLD 0x42
+#define MAPSEC_SHOAL_CAVE 0x43
+#define MAPSEC_SEAFLOOR_CAVERN 0x44
+#define MAPSEC_UNDERWATER_128 0x45
+#define MAPSEC_VICTORY_ROAD 0x46
+#define MAPSEC_MIRAGE_ISLAND 0x47
+#define MAPSEC_CAVE_OF_ORIGIN 0x48
+#define MAPSEC_SOUTHERN_ISLAND 0x49
+#define MAPSEC_FIERY_PATH 0x4A
+#define MAPSEC_FIERY_PATH2 0x4B
+#define MAPSEC_JAGGED_PASS 0x4C
+#define MAPSEC_JAGGED_PASS2 0x4D
+#define MAPSEC_SEALED_CHAMBER 0x4E
+#define MAPSEC_UNDERWATER_SEALED_CHAMBER 0x4F
+#define MAPSEC_SCORCHED_SLAB 0x50
+#define MAPSEC_ISLAND_CAVE 0x51
+#define MAPSEC_DESERT_RUINS 0x52
+#define MAPSEC_ANCIENT_TOMB 0x53
+#define MAPSEC_INSIDE_OF_TRUCK 0x54
+#define MAPSEC_SKY_PILLAR 0x55
+#define MAPSEC_SECRET_BASE 0x56
+#define MAPSEC_DYNAMIC 0x57
+#define MAPSEC_PALLET_TOWN 0x58
+#define MAPSEC_VIRIDIAN_CITY 0x59
+#define MAPSEC_PEWTER_CITY 0x5A
+#define MAPSEC_CERULEAN_CITY 0x5B
+#define MAPSEC_LAVENDER_TOWN 0x5C
+#define MAPSEC_VERMILION_CITY 0x5D
+#define MAPSEC_CELADON_CITY 0x5E
+#define MAPSEC_FUCHSIA_CITY 0x5F
+#define MAPSEC_CINNABAR_ISLAND 0x60
+#define MAPSEC_INDIGO_PLATEAU 0x61
+#define MAPSEC_SAFFRON_CITY 0x62
+#define MAPSEC_ROUTE_4_FLYDUP 0x63
+#define MAPSEC_ROUTE_10_FLYDUP 0x64
+#define MAPSEC_ROUTE_1 0x65
+#define MAPSEC_ROUTE_2 0x66
+#define MAPSEC_ROUTE_3 0x67
+#define MAPSEC_ROUTE_4 0x68
+#define MAPSEC_ROUTE_5 0x69
+#define MAPSEC_ROUTE_6 0x6A
+#define MAPSEC_ROUTE_7 0x6B
+#define MAPSEC_ROUTE_8 0x6C
+#define MAPSEC_ROUTE_9 0x6D
+#define MAPSEC_ROUTE_10 0x6E
+#define MAPSEC_ROUTE_11 0x6F
+#define MAPSEC_ROUTE_12 0x70
+#define MAPSEC_ROUTE_13 0x71
+#define MAPSEC_ROUTE_14 0x72
+#define MAPSEC_ROUTE_15 0x73
+#define MAPSEC_ROUTE_16 0x74
+#define MAPSEC_ROUTE_17 0x75
+#define MAPSEC_ROUTE_18 0x76
+#define MAPSEC_ROUTE_19 0x77
+#define MAPSEC_ROUTE_20 0x78
+#define MAPSEC_ROUTE_21 0x79
+#define MAPSEC_ROUTE_22 0x7A
+#define MAPSEC_ROUTE_23 0x7B
+#define MAPSEC_ROUTE_24 0x7C
+#define MAPSEC_ROUTE_25 0x7D
+#define MAPSEC_VIRIDIAN_FOREST 0x7E
+#define MAPSEC_MT_MOON 0x7F
+#define MAPSEC_S_S_ANNE 0x80
+#define MAPSEC_UNDERGROUND_PATH 0x81
+#define MAPSEC_UNDERGROUND_PATH_2 0x82
+#define MAPSEC_DIGLETTS_CAVE 0x83
+#define MAPSEC_KANTO_VICTORY_ROAD 0x84
+#define MAPSEC_ROCKET_HIDEOUT 0x85
+#define MAPSEC_SILPH_CO 0x86
+#define MAPSEC_POKEMON_MANSION 0x87
+#define MAPSEC_KANTO_SAFARI_ZONE 0x88
+#define MAPSEC_POKEMON_LEAGUE 0x89
+#define MAPSEC_ROCK_TUNNEL 0x8A
+#define MAPSEC_SEAFOAM_ISLANDS 0x8B
+#define MAPSEC_POKEMON_TOWER 0x8C
+#define MAPSEC_CERULEAN_CAVE 0x8D
+#define MAPSEC_POWER_PLANT 0x8E
+#define MAPSEC_ONE_ISLAND 0x8F
+#define MAPSEC_TWO_ISLAND 0x90
+#define MAPSEC_THREE_ISLAND 0x91
+#define MAPSEC_FOUR_ISLAND 0x92
+#define MAPSEC_FIVE_ISLAND 0x93
+#define MAPSEC_SEVEN_ISLAND 0x94
+#define MAPSEC_SIX_ISLAND 0x95
+#define MAPSEC_KINDLE_ROAD 0x96
+#define MAPSEC_TREASURE_BEACH 0x97
+#define MAPSEC_CAPE_BRINK 0x98
+#define MAPSEC_BOND_BRIDGE 0x99
+#define MAPSEC_THREE_ISLE_PORT 0x9A
+#define MAPSEC_SEVII_ISLE_6 0x9B
+#define MAPSEC_SEVII_ISLE_7 0x9C
+#define MAPSEC_SEVII_ISLE_8 0x9D
+#define MAPSEC_SEVII_ISLE_9 0x9E
+#define MAPSEC_RESORT_GORGEOUS 0x9F
+#define MAPSEC_WATER_LABYRINTH 0xA0
+#define MAPSEC_FIVE_ISLE_MEADOW 0xA1
+#define MAPSEC_MEMORIAL_PILLAR 0xA2
+#define MAPSEC_OUTCAST_ISLAND 0xA3
+#define MAPSEC_GREEN_PATH 0xA4
+#define MAPSEC_WATER_PATH 0xA5
+#define MAPSEC_RUIN_VALLEY 0xA6
+#define MAPSEC_TRAINER_TOWER 0xA7
+#define MAPSEC_CANYON_ENTRANCE 0xA8
+#define MAPSEC_SEVAULT_CANYON 0xA9
+#define MAPSEC_TANOBY_RUINS 0xAA
+#define MAPSEC_SEVII_ISLE_22 0xAB
+#define MAPSEC_SEVII_ISLE_23 0xAC
+#define MAPSEC_SEVII_ISLE_24 0xAD
+#define MAPSEC_NAVEL_ROCK 0xAE
+#define MAPSEC_MT_EMBER 0xAF
+#define MAPSEC_BERRY_FOREST 0xB0
+#define MAPSEC_ICEFALL_CAVE 0xB1
+#define MAPSEC_ROCKET_WAREHOUSE 0xB2
+#define MAPSEC_TRAINER_TOWER_2 0xB3
+#define MAPSEC_DOTTED_HOLE 0xB4
+#define MAPSEC_LOST_CAVE 0xB5
+#define MAPSEC_PATTERN_BUSH 0xB6
+#define MAPSEC_ALTERING_CAVE 0xB7
+#define MAPSEC_TANOBY_CHAMBERS 0xB8
+#define MAPSEC_THREE_ISLE_PATH 0xB9
+#define MAPSEC_TANOBY_KEY 0xBA
+#define MAPSEC_BIRTH_ISLAND 0xBB
+#define MAPSEC_MONEAN_CHAMBER 0xBC
+#define MAPSEC_LIPTOO_CHAMBER 0xBD
+#define MAPSEC_WEEPTH_CHAMBER 0xBE
+#define MAPSEC_DILFORD_CHAMBER 0xBF
+#define MAPSEC_SCUFIB_CHAMBER 0xC0
+#define MAPSEC_RIXY_CHAMBER 0xC1
+#define MAPSEC_VIAPOIS_CHAMBER 0xC2
+#define MAPSEC_EMBER_SPA 0xC3
+#define MAPSEC_SPECIAL_AREA 0xC4
+#define MAPSEC_NONE 0xC5
#endif //GUARD_CONSTANTS_REGION_MAP_H
diff --git a/include/constants/songs.h b/include/constants/songs.h
index e31a38fdc..fc42af3fc 100644
--- a/include/constants/songs.h
+++ b/include/constants/songs.h
@@ -250,6 +250,94 @@
#define SE_W287B 245
#define SE_W114 246
#define SE_W063B 247
+#define MUS_ME_ASA 256
+#define MUS_FANFA1 257
+#define MUS_FANFA4 258
+#define MUS_FANFA5 259
+#define MUS_ME_BACHI 260
+#define MUS_ME_WAZA 261
+#define MUS_ME_KINOMI 262
+#define BGM_FRLG_SAFARI_ZONE 264
+#define MUS_ME_B_BIG 268
+#define MUS_ME_B_SMALL 269
+#define MUS_ME_WASURE 270
+#define MUS_ME_ZANNEN 271
+#define BGM_FRLG_FOLLOW_ME 272
+#define BGM_FRLG_GAMECORNER 273
+#define BGM_FRLG_ROCKET_HIDEOUT 274
+#define BGM_FRLG_GYM 275
+#define BGM_FRLG_JIGGLYPUFF 276
+#define BGM_FRLG_OPENING 277
+#define BGM_FRLG_TITLE 278
+#define BGM_FRLG_CINNABAR_ISLAND 279
+#define BGM_FRLG_LAVENDER_TOWN 280
+#define BGM_FRLG_HEALING_TEST 281
+#define BGM_FRLG_BICYCLE 282
+#define BGM_FRLG_SUSPICIOUS_EYE 283
+#define BGM_FRLG_GIRL_EYE 284
+#define BGM_FRLG_BOY_EYE 285
+#define BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME 286
+#define BGM_FRLG_VIRIDIAN_FOREST 287
+#define BGM_FRLG_MT_MOON 288
+#define BGM_FRLG_POKEMON_MANSION 289
+#define BGM_FRLG_CREDITS 290
+#define BGM_FRLG_ROUTE_1 291
+#define BGM_FRLG_ROUTE_24 292
+#define BGM_FRLG_ROUTE_3 293
+#define BGM_FRLG_ROUTE_11 294
+#define BGM_FRLG_INDIGO_PLATEAU 295
+#define BGM_FRLG_BATTLE_LEADER 296
+#define BGM_FRLG_BATTLE_TRAINER 297
+#define BGM_FRLG_BATTLE_WILD_POKEMON 298
+#define BGM_FRLG_BATTLE_CHAMPION 299
+#define BGM_FRLG_PALLET_TOWN 300
+#define BGM_FRLG_OAK_LAB 301
+#define BGM_FRLG_PROF_OAK 302
+#define BGM_FRLG_POKEMON_CENTER 303
+#define BGM_FRLG_SS_ANNE 304
+#define BGM_FRLG_SURF 305
+#define BGM_FRLG_POKEMON_TOWER 306
+#define BGM_FRLG_SILPH 307
+#define BGM_FRLG_CERULEAN_CITY 308
+#define BGM_FRLG_CELADON_CITY 309
+#define BGM_FRLG_KACHI_TRAINER 310
+#define BGM_FRLG_KACHI_WILD_POKEMON 311
+#define BGM_FRLG_KACHI_LEADER 312
+#define BGM_FRLG_VERMILION_CITY 313
+#define BGM_FRLG_VIRIDIAN_CITY 314
+#define BGM_FRLG_RIVAL 315
+#define BGM_FRLG_RIVAL_POSTBATTLE 316
+#define BGM_FRLG_ME_POKEDEX_EVAL 317
+#define BGM_FRLG_ME_KEYITEM 318
+#define BGM_FRLG_FANFA_POKEMON_CAUGHT 319
+#define BGM_FRLG_FANFA_TRAINERCARD_PHOTO 320
+#define BGM_FRLG_GAMEFREAK_LOGO 321
+#define BGM_FRLG_CAUGHT_POKEMON 322
+#define BGM_FRLG_GAME_EXPLANATION_START 323
+#define BGM_FRLG_GAME_EXPLANATION_MIDDLE 324
+#define BGM_FRLG_GAME_EXPLANATION_END 325
+#define BGM_FRLG_POKEMON_JUMP 326
+#define BGM_FRLG_UNION_ROOM 327
+#define BGM_FRLG_POKEMON_NETWORK_CENTER 328
+#define BGM_FRLG_MYSTERY_GIFT 329
+#define BGM_FRLG_DODRIO_BERRY_PICK 330
+#define BGM_FRLG_MT_EMBER 331
+#define BGM_FRLG_TEACHY_TV_EPISODE 332
+#define BGM_FRLG_SEVII_ISLANDS 333
+#define BGM_FRLG_TANOBY_RUINS 334
+#define BGM_FRLG_ISLAND_ONE 335
+#define BGM_FRLG_ISLAND_FOUR 336
+#define BGM_FRLG_ISLAND_SIX 337
+#define BGM_FRLG_FLUTE 338
+#define BGM_FRLG_BATTLE_DEOXYS 339
+#define BGM_FRLG_BATTLE_MEWTWO 340
+#define BGM_FRLG_BATTLE_LEGENDARY 341
+#define BGM_FRLG_LEADER_EYE 342
+#define BGM_FRLG_DEOXYS_EYE 343
+#define BGM_FRLG_TRAINER_TOWER 344
+#define BGM_FRLG_HALL_OF_FAME_PALLET_TOWN 345
+#define BGM_FRLG_TEACHY_TV 346
+
#define BGM_STOP 349
#define BGM_TETSUJI 350
#define BGM_FIELD13 351
@@ -385,82 +473,6 @@
#define BGM_BATTLE35 481
#define BGM_BATTLE38 482
#define BGM_BATTLE30 483
-#define BGM_FRLG_FOLLOW_ME 484
-#define BGM_FRLG_GAMECORNER 485
-#define BGM_FRLG_ROCKET_HIDEOUT 486
-#define BGM_FRLG_GYM 487
-#define BGM_FRLG_JIGGLYPUFF 488
-#define BGM_FRLG_OPENING 489
-#define BGM_FRLG_TITLE 490
-#define BGM_FRLG_CINNABAR_ISLAND 491
-#define BGM_FRLG_LAVENDER_TOWN 492
-#define BGM_FRLG_HEALING_TEST 493
-#define BGM_FRLG_BICYCLE 494
-#define BGM_FRLG_SUSPICIOUS_EYE 495
-#define BGM_FRLG_GIRL_EYE 496
-#define BGM_FRLG_BOY_EYE 497
-#define BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME 498
-#define BGM_FRLG_VIRIDIAN_FOREST 499
-#define BGM_FRLG_MT_MOON 500
-#define BGM_FRLG_POKEMON_MANSION 501
-#define BGM_FRLG_CREDITS 502
-#define BGM_FRLG_ROUTE_1 503
-#define BGM_FRLG_ROUTE_24 504
-#define BGM_FRLG_ROUTE_3 505
-#define BGM_FRLG_ROUTE_11 506
-#define BGM_FRLG_INDIGO_PLATEAU 507
-#define BGM_FRLG_BATTLE_LEADER 508
-#define BGM_FRLG_BATTLE_TRAINER 509
-#define BGM_FRLG_BATTLE_WILD_POKEMON 510
-#define BGM_FRLG_BATTLE_CHAMPION 511
-#define BGM_FRLG_PALLET_TOWN 512
-#define BGM_FRLG_OAK_LAB 513
-#define BGM_FRLG_PROF_OAK 514
-#define BGM_FRLG_POKEMON_CENTER 515
-#define BGM_FRLG_SS_ANNE 516
-#define BGM_FRLG_SURF 517
-#define BGM_FRLG_POKEMON_TOWER 518
-#define BGM_FRLG_SILPH 519
-#define BGM_FRLG_CERULEAN_CITY 520
-#define BGM_FRLG_CELADON_CITY 521
-#define BGM_FRLG_KACHI_TRAINER 522
-#define BGM_FRLG_KACHI_WILD_POKEMON 523
-#define BGM_FRLG_KACHI_LEADER 524
-#define BGM_FRLG_VERMILION_CITY 525
-#define BGM_FRLG_VIRIDIAN_CITY 526
-#define BGM_FRLG_RIVAL 527
-#define BGM_FRLG_RIVAL_POSTBATTLE 528
-#define BGM_FRLG_ME_POKEDEX_EVAL 529
-#define BGM_FRLG_ME_KEYITEM 530
-#define BGM_FRLG_FANFA_POKEMON_CAUGHT 531
-#define BGM_FRLG_FANFA_TRAINERCARD_PHOTO 532
-#define BGM_FRLG_GAMEFREAK_LOGO 533
-#define BGM_FRLG_CAUGHT_POKEMON 534
-#define BGM_FRLG_GAME_EXPLANATION_START 535
-#define BGM_FRLG_GAME_EXPLANATION_MIDDLE 536
-#define BGM_FRLG_GAME_EXPLANATION_END 537
-#define BGM_FRLG_POKEMON_JUMP 538
-#define BGM_FRLG_UNION_ROOM 539
-#define BGM_FRLG_POKEMON_NETWORK_CENTER 540
-#define BGM_FRLG_MYSTERY_GIFT 541
-#define BGM_FRLG_DODRIO_BERRY_PICK 542
-#define BGM_FRLG_MT_EMBER 543
-#define BGM_FRLG_TEACHY_TV_EPISODE 544
-#define BGM_FRLG_SEVII_ISLANDS 545
-#define BGM_FRLG_TANOBY_RUINS 546
-#define BGM_FRLG_ISLAND_ONE 547
-#define BGM_FRLG_ISLAND_FOUR 548
-#define BGM_FRLG_ISLAND_SIX 549
-#define BGM_FRLG_FLUTE 550
-#define BGM_FRLG_BATTLE_DEOXYS 551
-#define BGM_FRLG_BATTLE_MEWTWO 552
-#define BGM_FRLG_BATTLE_LEGENDARY 553
-#define BGM_FRLG_LEADER_EYE 554
-#define BGM_FRLG_DEOXYS_EYE 555
-#define BGM_FRLG_TRAINER_TOWER 556
-#define BGM_FRLG_HALL_OF_FAME_PALLET_TOWN 557
-#define BGM_FRLG_TEACHY_TV 558
-
#define BGM_ROUTE_118 0x7FFF // What is this for?
#endif // GUARD_CONSTANTS_SONGS_H
diff --git a/include/constants/species.h b/include/constants/species.h
index f698ada14..9cb239799 100644
--- a/include/constants/species.h
+++ b/include/constants/species.h
@@ -445,6 +445,9 @@
#define SPECIES_UNOWN_EMARK 438
#define SPECIES_UNOWN_QMARK 439
+#define SPECIES_OLD_UNOWN_EMARK 412
+#define SPECIES_OLD_UNOWN_QMARK 413
+
#define NUM_SPECIES SPECIES_EGG
#endif // GUARD_CONSTANTS_SPECIES_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
index 886bae93c..2f817fb02 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -54,7 +54,7 @@
#define VAR_0x402F 0x402F
#define VAR_0x4030 0x4030
-#define VAR_0x4031 0x4031
+#define VAR_STARTER_MON 0x4031
#define VAR_0x4032 0x4032
#define VAR_ENIGMA_BERRY_AVAILABLE 0x4033
diff --git a/include/decompress.h b/include/decompress.h
index 36672dcfd..c2c4f0e1c 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -18,6 +18,8 @@ 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 DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
diff --git a/include/event_scripts.h b/include/event_scripts.h
index b909566d0..1762faf8e 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -705,4 +705,71 @@ extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni3[];
extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni4[];
extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni5[];
+extern const u8 gOtherText_NewName[];
+extern const u8 gNameChoice_Green[];
+extern const u8 gNameChoice_Red[];
+extern const u8 gNameChoice_Red[];
+extern const u8 gNameChoice_Fire[];
+extern const u8 gNameChoice_Fire[];
+extern const u8 gNameChoice_Gary[];
+extern const u8 gNameChoice_Kaz[];
+extern const u8 gNameChoice_Toru[];
+extern const u8 gNameChoice_Ash[];
+extern const u8 gNameChoice_Kene[];
+extern const u8 gNameChoice_Geki[];
+extern const u8 gNameChoice_Jak[];
+extern const u8 gNameChoice_Janne[];
+extern const u8 gNameChoice_Jonn[];
+extern const u8 gNameChoice_Kamon[];
+extern const u8 gNameChoice_Karl[];
+extern const u8 gNameChoice_Taylor[];
+extern const u8 gNameChoice_Oscar[];
+extern const u8 gNameChoice_Hiro[];
+extern const u8 gNameChoice_Max[];
+extern const u8 gNameChoice_Jon[];
+extern const u8 gNameChoice_Ralph[];
+extern const u8 gNameChoice_Kay[];
+extern const u8 gNameChoice_Tosh[];
+extern const u8 gNameChoice_Roak[];
+extern const u8 gNameChoice_Omi[];
+extern const u8 gNameChoice_Jodi[];
+extern const u8 gNameChoice_Amanda[];
+extern const u8 gNameChoice_Hillary[];
+extern const u8 gNameChoice_Makey[];
+extern const u8 gNameChoice_Michi[];
+extern const u8 gNameChoice_Paula[];
+extern const u8 gNameChoice_June[];
+extern const u8 gNameChoice_Cassie[];
+extern const u8 gNameChoice_Rey[];
+extern const u8 gNameChoice_Seda[];
+extern const u8 gNameChoice_Kiko[];
+extern const u8 gNameChoice_Mina[];
+extern const u8 gNameChoice_Norie[];
+extern const u8 gNameChoice_Sai[];
+extern const u8 gNameChoice_Momo[];
+extern const u8 gNameChoice_Suzi[];
+extern const u8 gNewGame_HelpDocs1[];
+extern const u8 gNewGame_HelpDocs2[];
+extern const u8 gNewGame_HelpDocs3[];
+extern const u8 gNewGame_HelpDocs4[];
+extern const u8 gNewGame_HelpDocs5[];
+extern const u8 gNewGame_HelpDocs6[];
+extern const u8 gNewGame_HelpDocs7[];
+extern const u8 gOakText_AskPlayerGender[];
+extern const u8 gNewGameAdventureIntro1[];
+extern const u8 gNewGameAdventureIntro2[];
+extern const u8 gNewGameAdventureIntro3[];
+extern const u8 gOakText_WelcomeToTheWorld[];
+extern const u8 gOakText_WorldInhabited1[];
+extern const u8 gOakText_WorldInhabited2[];
+extern const u8 gOakText_PetsBattlingStudy[];
+extern const u8 gOakText_TellMeALittleAboutYourself[];
+extern const u8 gOakText_AskPlayerName[];
+extern const u8 gOakText_FinalizePlayerName[];
+extern const u8 gOakText_IntroduceRival[];
+extern const u8 gOakText_AskRivalName[];
+extern const u8 gOakText_ConfirmRivalName[];
+extern const u8 gOakText_RememberRivalName[];
+extern const u8 gOakText_LegendAboutToUnfold[];
+
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_specials.h b/include/field_specials.h
index 2d495fdd5..c1bc8e8c9 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -6,5 +6,6 @@
u8 GetLeadMonIndex(void);
u8 CountDigits(u16 number);
void TV_PrintIntToStringVar(u8, int);
+u16 ScrSpecial_GetStarter(void);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/graphics.h b/include/graphics.h
index d249ece10..83cc19bb3 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -150,4 +150,15 @@ extern const u16 gFameCheckerBgTiles[0xa50];
extern const u16 gFameCheckerBg3Tilemap[0x400];
extern const u16 gFameCheckerBg2Tilemap[0x400];
+// tm_case
+extern const u32 gUnknown_8E845D8[];
+extern const u32 gUnknown_8E84A24[];
+extern const u32 gUnknown_8E84B70[];
+extern const u32 gUnknown_8E84CB0[];
+extern const u32 gUnknown_8E84D20[];
+extern const u32 gTMCase_TMSpriteGfx[];
+extern const u32 gUnknown_8E84F20[];
+extern const u32 gUnknown_8E85068[];
+extern const u8 gUnknown_8E99118[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/help_system.h b/include/help_system.h
index 632788148..3ef5f53e4 100644
--- a/include/help_system.h
+++ b/include/help_system.h
@@ -6,5 +6,6 @@
extern bool8 gUnknown_3005ECC;
void sub_812B484(void);
+void HelpSystem_SetSomeVariable2(u8);
#endif //GUARD_HELP_SYSTEM_H
diff --git a/include/item.h b/include/item.h
index 25177cb6e..320b7ffec 100644
--- a/include/item.h
+++ b/include/item.h
@@ -66,4 +66,10 @@ void CopyItemName(u16, u8 *);
void sub_809A824(u16 itemId);
bool8 AddBagItem(u16 itemId, u16 amount);
+void sub_809A5E4(struct BagPocket *);
+u16 BagGetItemIdByPocketPosition(u8 a0, u16 a1);
+u16 BagGetQuantityByPocketPosition(u8 a0, u16 a1);
+bool8 itemid_is_unique(u16 itemId);
+void sub_809A584(struct ItemSlot * slots, u8 capacity);
+
#endif // ITEM_H
diff --git a/include/item_menu.h b/include/item_menu.h
index a6128b9fb..9ebe3918a 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -12,6 +12,7 @@ extern u16 gSpecialVar_ItemId;
// Exported ROM declarations
void sub_81AAC50(void);
void sub_81AAC70(void);
+void sub_8108CF0(void);
void UseFameCheckerFromMenu(void);
#endif //GUARD_ITEM_MENU_H
diff --git a/include/list_menu.h b/include/list_menu.h
index 8834e5215..3fd54d0d1 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -48,6 +48,7 @@ struct ListMenu {
};
extern struct ListMenuTemplate gUnknown_03006310;
+extern struct ListMenuTemplate gMultiuseListMenuTemplate;
// Exported ROM declarations
@@ -55,7 +56,8 @@ u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
s32 ListMenuHandleInput(u8 id);
void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2);
void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
-void sub_810713C(u8, u8, u8);
+void DestroyListMenu(u8, u16 *, u16 *);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
+void sub_8107D38(u8, u8);
#endif //GUARD_LIST_MENU_H
diff --git a/include/math_util.h b/include/math_util.h
new file mode 100644
index 000000000..74dbbe98e
--- /dev/null
+++ b/include/math_util.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_MATH_UTIL_H
+#define GUARD_MATH_UTIL_H
+
+s16 sub_80D8B90(s16 y);
+
+#endif //GUARD_MATH_UTIL_H
diff --git a/include/menu.h b/include/menu.h
index b5078df5e..4a5bd8a2c 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -38,5 +38,17 @@ void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSp
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
void sub_810F4D8(u8 windowId, bool32 someBool);
void *sub_80F68F0(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);
+void sub_810F71C(void);
+void sub_810F740(void);
+u8 ProgramAndPlaceMenuCursorOnWindow(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPosition);
+void sub_810FF60(const struct WindowTemplate *, u8, u8, u8, u16, u8, u8);
+
+void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority);
+bool8 IsBlendTaskActive(void);
+void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8);
+void sub_810F260(u8 windowId, u8 a1);
#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index b193388e5..e27fb4e5d 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -18,6 +18,13 @@ void sub_812225C(u16 *, u16 *, u8, u8);
void sub_8122298(u16 *, u16 *, u8, u8, u8);
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
bool8 sub_81221AC(void);
+bool8 sub_80BF72C(void);
bool8 sub_80BF708(void);
+void sub_80BF768(void);
+void sub_80BF7C8(void);
+u8 sub_80BF8E4(void);
+u8 sub_80BF848(s16 * a0, u16 a1);
+void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
+void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate * unk1, u8 unk2, u8 unk3, u8 unk4, u8 unk5, u8 unk6, const struct YesNoFuncTable *ptrs);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/money.h b/include/money.h
index fa63e321c..5bcef18d4 100644
--- a/include/money.h
+++ b/include/money.h
@@ -10,13 +10,14 @@ void AddMoney(u32* moneyPtr, u32 toAdd);
void RemoveMoney(u32* moneyPtr, u32 toSub);
bool8 IsEnoughForCostInVar0x8005(void);
void SubtractMoneyFromVar0x8005(void);
-void PrintMoneyAmountInMoneyBoxInMoneyBox(u8 windowId, int amount, u8 speed);
-void PrintMoneyAmountInMoneyBox(u8 windowId, u8 x, u8 y, int amount, u8 speed);
-void PrintMoneyAmountInMoneyBoxInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount);
+void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
+void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
+void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount);
void ChangeAmountInMoneyBox(int amount);
void DrawMoneyBox(int amount, u8 x, u8 y);
void HideMoneyBox(void);
void AddMoneyLabelObject(u16 x, u16 y);
void RemoveMoneyLabelObject(void);
+void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed);
#endif // GUARD_MONEY_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index e22f89f44..b17326667 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -15,14 +15,20 @@ void sub_8197434(u8 a0, u8 a1);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
void sub_8197930(void);
u8 GetPlayerTextSpeed(void);
-void sub_80F6F54(u8, u8);
-u8 sub_80F78A8(void);
+void ClearDialogWindowAndFrame(u8, u8);
+u8 GetTextSpeedSetting(void);
void sub_80F6E9C(void);
-void sub_80F6EE4(u8 windowId, bool8 transfer);
+void DrawDialogueFrame(u8 windowId, bool8 transfer);
void sub_80F7974(const u8 *);
u8 GetStartMenuWindowId(void);
void sub_80F7998(void);
void sub_80F69E8(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
-void sub_80F6F1C(u8 windowId, bool8 copyNow);
+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 sub_80F6B08(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/oak_speech.h b/include/oak_speech.h
new file mode 100644
index 000000000..d5d94bc83
--- /dev/null
+++ b/include/oak_speech.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_OAK_SPEECH_H
+#define GUARD_OAK_SPEECH_H
+
+void StartNewGameScene(void);
+
+#endif //GUARD_OAK_SPEECH_H
diff --git a/include/overworld.h b/include/overworld.h
index b32d9cf48..8c32d3e06 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -99,5 +99,6 @@ extern u8 gUnknown_2036E28;
extern bool8 (* gUnknown_3005024)(void);
void SetLastHealLocationWarp(u8 healLocaionId);
void sub_8055864(u8 mapGroup, u8 mapNum);
+void CB2_NewGame(void);
#endif //GUARD_ROM4_H
diff --git a/include/party_menu.h b/include/party_menu.h
index 2e83c1496..5f7a3a68e 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -12,10 +12,16 @@ enum {
AILMENT_BRN
};
+extern void (*gUnknown_3005E98)(u8 taskId, TaskFunc func);
+
bool8 MonKnowsMove(struct Pokemon *, u16);
void sub_81B58A8(void);
void DoWallyTutorialBagMenu(void);
u8 pokemon_ailments_get_primary(u32 status);
u16 ItemIdToBattleMoveId(u16 itemId);
+void sub_8125B40(u8 taskId, TaskFunc func);
+void sub_8124C8C(void);
+void sub_8126EDC(void);
+void c2_8123744(void);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/pokeball.h b/include/pokeball.h
index 10a9529b9..5545f8870 100644
--- a/include/pokeball.h
+++ b/include/pokeball.h
@@ -24,7 +24,8 @@ enum
#define POKEBALL_OPPONENT_SENDOUT 0xFE
u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow);
-void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species);
+void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h);
+u8 sub_804BB98(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h);
u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h);
void sub_8076918(u8 bank);
void DoHitAnimHealthboxEffect(u8 bank);
diff --git a/include/pokemon.h b/include/pokemon.h
index f1f04c9eb..c84eb4c42 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -445,6 +445,8 @@ struct BattleMove
u8 flags;
};
+extern const struct BattleMove gBattleMoves[];
+
#define FLAG_MAKES_CONTACT 0x1
#define FLAG_PROTECT_AFFECTED 0x2
#define FLAG_MAGICCOAT_AFFECTED 0x4
@@ -673,5 +675,6 @@ void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
void PlayMapChosenOrBattleBGM(u16 songId);
u8 GetMonsStateToDoubles(void);
void sub_803E0A4(struct Pokemon *mon, struct BattleTowerPokemon *src);
+void sub_803F7D4(u16 trainerSpriteId, u8 battlerPosition);
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_3.h b/include/pokemon_3.h
index cffc9780b..e65bc85fc 100644
--- a/include/pokemon_3.h
+++ b/include/pokemon_3.h
@@ -5,5 +5,8 @@
const u8* GetTrainerClassNameFromId(u16 trainerId);
const u8* GetTrainerNameFromId(u16 trainerId);
+void * SetUpMonSpriteManagerMaybe(u8, u8);
+void sub_8044D80(void);
+void * sub_8044E00(u8 buffId);
#endif // GUARD_POKEMON_3_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 897c5a42e..f2fbe85a7 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -13,5 +13,6 @@ void CompactPartySlots(void);
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
void sub_808BCB4(u8 boxId, u8 monPosition);
u8 * GetBoxNamePtr(u8 boxId);
+void sub_808CE60(void);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/scanline_effect.h b/include/scanline_effect.h
index d49f5b4d6..711ed7da8 100644
--- a/include/scanline_effect.h
+++ b/include/scanline_effect.h
@@ -1,6 +1,48 @@
#ifndef GUARD_SCANLINE_EFFECT_H
#define GUARD_SCANLINE_EFFECT_H
-void remove_some_task(void);
+// DMA control value to transfer a single 16-bit value at HBlank
+#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1)
+#define SCANLINE_EFFECT_DMACNT_32BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_32BIT | DMA_DEST_RELOAD) << 16) | 1)
-#endif //GUARD_SCANLINE_EFFECT_H
+#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG0VOFS (REG_ADDR_BG0VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG1HOFS (REG_ADDR_BG1HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG1VOFS (REG_ADDR_BG1VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG2HOFS (REG_ADDR_BG2HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG2VOFS (REG_ADDR_BG2VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG3HOFS (REG_ADDR_BG3HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG3VOFS (REG_ADDR_BG3VOFS - REG_ADDR_BG0HOFS)
+
+struct ScanlineEffectParams
+{
+ volatile void *dmaDest;
+ u32 dmaControl;
+ u8 initState;
+ u8 unused9;
+};
+
+struct ScanlineEffect
+{
+ void *dmaSrcBuffers[2];
+ volatile void *dmaDest;
+ u32 dmaControl;
+ void (*setFirstScanlineReg)(void);
+ u8 srcBuffer;
+ u8 state;
+ u8 unused16;
+ u8 unused17;
+ u8 waveTaskId;
+};
+
+extern struct ScanlineEffect gScanlineEffect;
+
+extern u16 gScanlineEffectRegBuffers[2][0x3C0];
+
+void ScanlineEffect_Stop(void);
+void ScanlineEffect_Clear(void);
+void ScanlineEffect_SetParams(struct ScanlineEffectParams);
+void ScanlineEffect_InitHBlankDmaTransfer(void);
+u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 a7);
+
+#endif // GUARD_SCANLINE_EFFECT_H \ No newline at end of file
diff --git a/include/shop.h b/include/shop.h
index 1046a590a..05f5160e6 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -8,5 +8,6 @@ extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
void CreatePokemartMenu(const u16 *);
void CreateDecorationShop1Menu(const u16 *);
void CreateDecorationShop2Menu(const u16 *);
+void sub_809C09C(u16, u16, u8);
#endif // GUARD_SHOP_H
diff --git a/include/strings.h b/include/strings.h
index 40021a01d..6af1b0d69 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -92,4 +92,27 @@ extern const u8 gText_Coins[];
extern const u8 gText_EggNickname[];
extern const u8 gText_Pokemon[];
+extern const u8 gOtherText_Use[];
+extern const u8 gOtherText_Give[];
+extern const u8 gOtherText_Exit[];
+extern const u8 gText_ThreeHyphens[];
+extern const u8 gOtherText_UnkF9_08_Clear_01[];
+extern const u8 gFameCheckerText_ListMenuCursor[];
+extern const u8 gText_TimesStrVar1[];
+extern const u8 gText_IsSelected[];
+extern const u8 gText_ThereIsNoPokemon[];
+extern const u8 gText_ItemCantBeHeld[];
+extern const u8 gText_TMCase[];
+extern const u8 gText_Close[];
+extern const u8 gText_TMCaseWillBePutAway[];
+extern const u8 gText_FontSize0[];
+extern const u8 gText_FontSize2[];
+extern const u8 gText_OhNoICantBuyThat[];
+extern const u8 gText_HowManyWouldYouLikeToSell[];
+extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[];
+extern const u8 gText_TurnedOverItemsWorthYen[];
+extern const u8 gPokeDudeText_TMTypes[];
+extern const u8 gPokeDudeText_ReadTMDescription[];
+extern const u16 gTMCaseMainWindowPalette[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/teachy_tv.h b/include/teachy_tv.h
new file mode 100644
index 000000000..374780c04
--- /dev/null
+++ b/include/teachy_tv.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_TEACHY_TV_H
+#define GUARD_TEACHY_TV_H
+
+void CB2_ReturnToTeachyTV(void);
+void sub_815AC20(void);
+
+#endif //GUARD_TEACHY_TV_H
diff --git a/include/text.h b/include/text.h
index e127f103a..d2c2ecf42 100644
--- a/include/text.h
+++ b/include/text.h
@@ -250,5 +250,7 @@ s32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese);
s32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese);
s32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese);
void sub_80062B0(struct Sprite *sprite);
+u8 CreateTextCursorSpriteForOakSpeech(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority);
+void sub_8006398(u8 spriteId);
#endif // GUARD_TEXT_H
diff --git a/include/text_window.h b/include/text_window.h
index 72ce50efc..8a4113c62 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -20,6 +20,8 @@ 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 sub_814FEAC(u8 windowId, u16 tileStart, u8 palette);
void sub_814FF2C(u8 windowId, u16 tileStart, u8 palette);
+void sub_815001C(u8 windowId, u16 tileStart, u8 palette);
#endif // GUARD_TEXT_WINDOW_H
diff --git a/include/tm_case.h b/include/tm_case.h
new file mode 100644
index 000000000..f77eae457
--- /dev/null
+++ b/include/tm_case.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_TM_CASE_H
+#define GUARD_TM_CASE_H
+
+void InitTMCase(u8 a0, void (* a1)(void), u8 a2);
+void ResetTMCaseCursorPos(void);
+void PokeDude_InitTMCase(void);
+
+#endif //GUARD_TM_CASE_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
deleted file mode 100644
index 429e58aad..000000000
--- a/include/unknown_task.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef GUARD_unknown_task_H
-#define GUARD_unknown_task_H
-
-#include "global.h"
-
-// Exported type declarations
-struct UnknownTaskStruct
-{
- volatile void *dest;
- u32 control;
- u8 unk8;
- u8 unk9;
-};
-
-extern struct UnknownTaskStruct gUnknown_0831AC70;
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-void remove_some_task(void);
-void sub_80BA038(struct UnknownTaskStruct arg0);
-void sub_80BA0A8(void);
-
-#endif // GUARD_unknown_task_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
index 2186e0b4f..b4c42116a 100644
--- a/include/wild_encounter.h
+++ b/include/wild_encounter.h
@@ -43,5 +43,6 @@ u16 GetLocalWildMon(bool8 *isWaterMon);
u16 GetLocalWaterMon(void);
bool8 UpdateRepelCounter(void);
void sub_8082740(u8);
+u8 GetUnownLetterByPersonality(u32 personality);
#endif // GUARD_WILD_ENCOUNTER_H
diff --git a/include/window.h b/include/window.h
index 2705a7895..8edaf73ae 100644
--- a/include/window.h
+++ b/include/window.h
@@ -56,7 +56,7 @@ void PutWindowTilemap(u8 windowId);
void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette);
void ClearWindowTilemap(u8 windowId);
void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height);
-void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height);
+void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height);
void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight);
void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset);
diff --git a/ld_script.txt b/ld_script.txt
index 39a12e328..bd94c2055 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -106,7 +106,7 @@ SECTIONS {
src/scrcmd.o(.text);
asm/field_control_avatar.o(.text);
asm/event_data.o(.text);
- asm/coord_event_weather.o(.text);
+ src/coord_event_weather.o(.text);
asm/field_tasks.o(.text);
asm/start_menu.o(.text);
asm/tileset_anims.o(.text);
@@ -128,7 +128,7 @@ SECTIONS {
asm/trainer_see.o(.text);
asm/wild_encounter.o(.text);
asm/field_effect.o(.text);
- asm/unknown_task.o(.text);
+ src/scanline_effect.o(.text);
asm/option_menu.o(.text);
asm/pokedex.o(.text);
asm/trainer_card.o(.text);
@@ -227,9 +227,9 @@ SECTIONS {
asm/help_system_812B1E0.o(.text);
src/quest_log_battle.o(.text);
src/fame_checker.o(.text);
- asm/menu2.o(.text);
- asm/oak_speech.o(.text);
- asm/tm_case.o(.text);
+ src/menu2.o(.text);
+ src/oak_speech.o(.text);
+ src/tm_case.o(.text);
asm/menu_indicators.o(.text);
asm/pokedex_area_markers.o(.text);
asm/pokemon_summary_screen.o(.text);
@@ -240,7 +240,7 @@ SECTIONS {
asm/itemfinder.o(.text);
asm/buy_menu_helpers.o(.text);
asm/slot_machine.o(.text);
- asm/roamer.o(.text);
+ src/roamer.o(.text);
asm/mystery_gift_menu.o(.text);
asm/link_rfu_4.o(.text);
src/mevent.o(.text);
@@ -370,9 +370,24 @@ SECTIONS {
src/fieldmap.o(.rodata);
src/metatile_behavior.o(.rodata);
data/metatile_behavior.o(.rodata);
- data/data_835B488.o(.rodata);
+ data/field_door.o(.rodata);
+ data/field_player_avatar.o(.rodata);
+ data/field_map_obj.o(.rodata);
+ data/field_ground_effect.o(.rodata);
+ data/map_obj_80688E4.o(.rodata);
src/scrcmd.o(.rodata);
- data/data_835B488.o(.rodata.83A72A0);
+ src/coord_event_weather.o(.rodata);
+ data/field_tasks.o(.rodata);
+ data/start_menu.o(.rodata);
+ data/tileset_anims.o(.rodata);
+ data/palette.o(.rodata);
+ src/sound.o(.rodata);
+ data/battle_anim.o(.rodata);
+ data/map_events.o(.rodata);
+ data/battle_anim_status_effects.o(.rodata);
+ data/title_screen.o(.rodata);
+ data/field_weather.o(.rodata);
+ data/data_835B488.o(.rodata);
src/battle_ai_script_commands.o(.rodata);
data/data_83F5738.o(.rodata);
src/save.o(.rodata);
@@ -382,7 +397,22 @@ SECTIONS {
src/quest_log.o(.rodata);
data/data_83FECCC.o(.rodata.8456C74);
src/fame_checker.o(.rodata);
- data/data_845FD54.o(.rodata);
+ src/menu2.o(.rodata);
+ src/oak_speech.o(.rodata);
+ src/tm_case.o(.rodata);
+ data/menu_indicators.o(.rodata);
+ data/pokedex_area_markers.o(.rodata);
+ data/pokemon_summary_screen.o(.rodata);
+ data/help_system.o(.rodata);
+ data/wild_pokemon_area.o(.rodata);
+ data/unk_text_util.o(.rodata);
+ data/berry_pouch.o(.rodata);
+ data/itemfinder.o(.rodata);
+ data/buy_menu_helpers.o(.rodata);
+ data/slot_machine.o(.rodata);
+ src/roamer.o(.rodata);
+ data/mystery_gift_menu.o(.rodata);
+ data/link_rfu_4.o(.rodata);
src/mevent.o(.rodata);
src/mevent_server_helpers.o(.rodata);
src/mevent_server.o(.rodata);
diff --git a/src/coord_event_weather.c b/src/coord_event_weather.c
new file mode 100644
index 000000000..4dbdd574b
--- /dev/null
+++ b/src/coord_event_weather.c
@@ -0,0 +1,47 @@
+#include "global.h"
+
+void nullsub_27(void) {}
+void nullsub_28(void) {}
+void nullsub_29(void) {}
+void nullsub_30(void) {}
+void nullsub_31(void) {}
+void nullsub_32(void) {}
+void nullsub_33(void) {}
+void nullsub_34(void) {}
+void nullsub_35(void) {}
+void nullsub_36(void) {}
+void nullsub_37(void) {}
+void nullsub_38(void) {}
+void nullsub_39(void) {}
+
+struct {
+ u8 weatherId;
+ void (*callback)(void);
+} const gUnknown_83A72A8[] = {
+ {0x01, nullsub_27},
+ {0x02, nullsub_28},
+ {0x03, nullsub_29},
+ {0x04, nullsub_30},
+ {0x05, nullsub_31},
+ {0x06, nullsub_32},
+ {0x07, nullsub_33},
+ {0x08, nullsub_34},
+ {0x09, nullsub_35},
+ {0x0a, nullsub_36},
+ {0x0b, nullsub_37},
+ {0x14, nullsub_38},
+ {0x15, nullsub_39}
+};
+
+void trigger_activate_weather(u8 weatherId)
+{
+ u8 i;
+ for (i = 0; i < NELEMS(gUnknown_83A72A8); i++)
+ {
+ if (gUnknown_83A72A8[i].weatherId == weatherId)
+ {
+ gUnknown_83A72A8[i].callback();
+ return;
+ }
+ }
+}
diff --git a/src/fame_checker.c b/src/fame_checker.c
index bbbe02c58..c47e52f06 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -779,7 +779,7 @@ static void GetPickModeText(void)
if (HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE)
offset = NUM_FAMECHECKER_PERSONS;
StringExpandPlaceholders(gStringVar4, sFameCheckerNameAndQuotesPointers[sFameCheckerData->unlockedPersons[who] + offset]);
- AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3);
+ AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, GetTextSpeedSetting(), NULL, 2, 1, 3);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX);
}
}
@@ -790,7 +790,7 @@ static void PrintSelectedNameInBrightGreen(u8 taskId)
u16 cursorPos = FameCheckerGetCursorY();
FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20);
StringExpandPlaceholders(gStringVar4, sFameCheckerFlavorTextPointers[sFameCheckerData->unlockedPersons[cursorPos] * 6 + data[1]]);
- AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3);
+ AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, GetTextSpeedSetting(), NULL, 2, 1, 3);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX);
}
@@ -803,7 +803,7 @@ static void WipeMsgBoxAndTransfer(void)
static void Setup_DrawMsgAndListBoxes(void)
{
sub_80F6E9C();
- sub_80F6EE4(FCWINDOWID_MSGBOX, TRUE);
+ DrawDialogueFrame(FCWINDOWID_MSGBOX, TRUE);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_LIST);
}
@@ -853,7 +853,7 @@ static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId)
FreeQuestionMarkSpriteResources();
FreeListMenuSelectorArrowPairResources();
SetMainCallback2(sFameCheckerData->savedCallback);
- sub_810713C(sFameCheckerData->listMenuTaskId, 0, 0);
+ DestroyListMenu(sFameCheckerData->listMenuTaskId, NULL, NULL);
Free(sBg3TilemapBuffer);
Free(sBg1TilemapBuffer);
Free(sBg2TilemapBuffer);
@@ -1009,7 +1009,7 @@ static void FCSetup_ClearVideoRegisters(void)
static void FCSetup_ResetTasksAndSpriteResources(void)
{
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
dp13_810BB8C();
diff --git a/src/main.c b/src/main.c
index 068cc8578..bfab49c49 100644
--- a/src/main.c
+++ b/src/main.c
@@ -29,7 +29,7 @@ extern void MapMusicMain(void);
extern void EnableInterrupts(u16);
extern void sub_800DD28(void);
extern u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
-extern void remove_some_task(void);
+extern void ScanlineEffect_Stop(void);
extern void sub_80F50F4(void);
extern bool32 sub_80F5118(void);
extern bool8 sub_813B870(void);
@@ -441,7 +441,7 @@ void DoSoftReset(void)
{
REG_IME = 0;
m4aSoundVSyncOff();
- remove_some_task();
+ ScanlineEffect_Stop();
DmaStop(1);
DmaStop(2);
DmaStop(3);
diff --git a/src/menu2.c b/src/menu2.c
new file mode 100644
index 000000000..ec244b8f7
--- /dev/null
+++ b/src/menu2.c
@@ -0,0 +1,851 @@
+#include "global.h"
+#include "text.h"
+#include "gpu_regs.h"
+#include "task.h"
+#include "wild_encounter.h"
+#include "string_util.h"
+#include "constants/species.h"
+
+static void Task_SmoothBlendLayers(u8 taskId);
+
+static const u8 gUnknown_845FD54[][5] = {
+ [SPECIES_BULBASAUR - 1] = {0x16, 0x1b, 0x30, 0x16, 0x29},
+ [SPECIES_IVYSAUR - 1] = {0x14, 0x1b, 0x30, 0x15, 0x2a},
+ [SPECIES_VENUSAUR - 1] = {0x1b, 0x20, 0x20, 0x1b, 0x33},
+ [SPECIES_CHARMANDER - 1] = {0x14, 0x0f, 0x38, 0x13, 0x1e},
+ [SPECIES_CHARMELEON - 1] = {0x0d, 0x11, 0x30, 0x0f, 0x22},
+ [SPECIES_CHARIZARD - 1] = {0x1b, 0x07, 0x28, 0x1a, 0x19},
+ [SPECIES_SQUIRTLE - 1] = {0x19, 0x13, 0x30, 0x1a, 0x22},
+ [SPECIES_WARTORTLE - 1] = {0x16, 0x13, 0x30, 0x17, 0x21},
+ [SPECIES_BLASTOISE - 1] = {0x12, 0x08, 0x28, 0x15, 0x19},
+ [SPECIES_CATERPIE - 1] = {0x15, 0x14, 0x30, 0x13, 0x24},
+ [SPECIES_METAPOD - 1] = {0x13, 0x1d, 0x30, 0x18, 0x2a},
+ [SPECIES_BUTTERFREE - 1] = {0x12, 0x1b, 0x08, 0x12, 0x2a},
+ [SPECIES_WEEDLE - 1] = {0x16, 0x1c, 0x30, 0x15, 0x2b},
+ [SPECIES_KAKUNA - 1] = {0x19, 0x13, 0x30, 0x1a, 0x24},
+ [SPECIES_BEEDRILL - 1] = {0x19, 0x16, 0x08, 0x19, 0x25},
+ [SPECIES_PIDGEY - 1] = {0x15, 0x12, 0x30, 0x12, 0x1e},
+ [SPECIES_PIDGEOTTO - 1] = {0x24, 0x0e, 0x30, 0x1f, 0x1e},
+ [SPECIES_PIDGEOT - 1] = {0x0c, 0x13, 0x08, 0x0a, 0x23},
+ [SPECIES_RATTATA - 1] = {0x17, 0x1e, 0x30, 0x18, 0x2d},
+ [SPECIES_RATICATE - 1] = {0x12, 0x14, 0x30, 0x10, 0x26},
+ [SPECIES_SPEAROW - 1] = {0x15, 0x14, 0x30, 0x15, 0x1f},
+ [SPECIES_FEAROW - 1] = {0x0c, 0x27, 0x00, 0x0b, 0x3f},
+ [SPECIES_EKANS - 1] = {0x11, 0x0f, 0x30, 0x14, 0x1d},
+ [SPECIES_ARBOK - 1] = {0x1b, 0x01, 0x28, 0x1d, 0x10},
+ [SPECIES_PIKACHU - 1] = {0x19, 0x13, 0x30, 0x1a, 0x1f},
+ [SPECIES_RAICHU - 1] = {0x19, 0x14, 0x28, 0x1c, 0x22},
+ [SPECIES_SANDSHREW - 1] = {0x17, 0x16, 0x30, 0x18, 0x25},
+ [SPECIES_SANDSLASH - 1] = {0x11, 0x13, 0x28, 0x13, 0x22},
+ [SPECIES_NIDORAN_F - 1] = {0x16, 0x15, 0x30, 0x18, 0x21},
+ [SPECIES_NIDORINA - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x28},
+ [SPECIES_NIDOQUEEN - 1] = {0x10, 0x0b, 0x28, 0x13, 0x1c},
+ [SPECIES_NIDORAN_M - 1] = {0x15, 0x22, 0x28, 0x15, 0x31},
+ [SPECIES_NIDORINO - 1] = {0x13, 0x1e, 0x28, 0x1b, 0x2d},
+ [SPECIES_NIDOKING - 1] = {0x12, 0x15, 0x28, 0x13, 0x27},
+ [SPECIES_CLEFAIRY - 1] = {0x19, 0x14, 0x30, 0x1b, 0x24},
+ [SPECIES_CLEFABLE - 1] = {0x1c, 0x12, 0x30, 0x1d, 0x21},
+ [SPECIES_VULPIX - 1] = {0x10, 0x16, 0x30, 0x0e, 0x25},
+ [SPECIES_NINETALES - 1] = {0x28, 0x10, 0x28, 0x27, 0x1e},
+ [SPECIES_JIGGLYPUFF - 1] = {0x1d, 0x15, 0x30, 0x1e, 0x25},
+ [SPECIES_WIGGLYTUFF - 1] = {0x1a, 0x12, 0x30, 0x1c, 0x22},
+ [SPECIES_ZUBAT - 1] = {0x14, 0x1d, 0x08, 0x14, 0x29},
+ [SPECIES_GOLBAT - 1] = {0x23, 0x1a, 0x00, 0x21, 0x2e},
+ [SPECIES_ODDISH - 1] = {0x1d, 0x20, 0x28, 0x1d, 0x2b},
+ [SPECIES_GLOOM - 1] = {0x1c, 0x18, 0x28, 0x1c, 0x27},
+ [SPECIES_VILEPLUME - 1] = {0x1c, 0x1e, 0x28, 0x1d, 0x2a},
+ [SPECIES_PARAS - 1] = {0x1d, 0x1a, 0x30, 0x1c, 0x27},
+ [SPECIES_PARASECT - 1] = {0x1e, 0x1c, 0x28, 0x20, 0x2e},
+ [SPECIES_VENONAT - 1] = {0x1b, 0x16, 0x10, 0x1a, 0x29},
+ [SPECIES_VENOMOTH - 1] = {0x12, 0x19, 0x08, 0x16, 0x27},
+ [SPECIES_DIGLETT - 1] = {0x1e, 0x16, 0x30, 0x1c, 0x23},
+ [SPECIES_DUGTRIO - 1] = {0x1a, 0x11, 0x30, 0x1a, 0x1f},
+ [SPECIES_MEOWTH - 1] = {0x1c, 0x16, 0x30, 0x1c, 0x23},
+ [SPECIES_PERSIAN - 1] = {0x13, 0x13, 0x30, 0x13, 0x21},
+ [SPECIES_PSYDUCK - 1] = {0x1c, 0x13, 0x30, 0x17, 0x29},
+ [SPECIES_GOLDUCK - 1] = {0x17, 0x12, 0x28, 0x17, 0x22},
+ [SPECIES_MANKEY - 1] = {0x1c, 0x15, 0x30, 0x1b, 0x23},
+ [SPECIES_PRIMEAPE - 1] = {0x1e, 0x16, 0x30, 0x1a, 0x27},
+ [SPECIES_GROWLITHE - 1] = {0x14, 0x17, 0x30, 0x14, 0x24},
+ [SPECIES_ARCANINE - 1] = {0x0f, 0x09, 0x28, 0x0c, 0x19},
+ [SPECIES_POLIWAG - 1] = {0x15, 0x14, 0x30, 0x13, 0x1f},
+ [SPECIES_POLIWHIRL - 1] = {0x1f, 0x10, 0x30, 0x1e, 0x17},
+ [SPECIES_POLIWRATH - 1] = {0x22, 0x0c, 0x30, 0x21, 0x18},
+ [SPECIES_ABRA - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x21},
+ [SPECIES_KADABRA - 1] = {0x1b, 0x12, 0x30, 0x1c, 0x25},
+ [SPECIES_ALAKAZAM - 1] = {0x1c, 0x11, 0x28, 0x1d, 0x26},
+ [SPECIES_MACHOP - 1] = {0x1b, 0x11, 0x30, 0x1b, 0x1e},
+ [SPECIES_MACHOKE - 1] = {0x1d, 0x11, 0x30, 0x1d, 0x1f},
+ [SPECIES_MACHAMP - 1] = {0x1a, 0x0d, 0x28, 0x1c, 0x1b},
+ [SPECIES_BELLSPROUT - 1] = {0x15, 0x0e, 0x30, 0x0e, 0x1c},
+ [SPECIES_WEEPINBELL - 1] = {0x1a, 0x1c, 0x10, 0x15, 0x32},
+ [SPECIES_VICTREEBEL - 1] = {0x1e, 0x0f, 0x30, 0x1c, 0x1b},
+ [SPECIES_TENTACOOL - 1] = {0x1a, 0x15, 0x30, 0x1e, 0x26},
+ [SPECIES_TENTACRUEL - 1] = {0x1b, 0x10, 0x28, 0x1c, 0x26},
+ [SPECIES_GEODUDE - 1] = {0x1c, 0x20, 0x28, 0x1d, 0x2d},
+ [SPECIES_GRAVELER - 1] = {0x1d, 0x19, 0x28, 0x1e, 0x26},
+ [SPECIES_GOLEM - 1] = {0x19, 0x1b, 0x28, 0x1c, 0x27},
+ [SPECIES_PONYTA - 1] = {0x0f, 0x11, 0x30, 0x0e, 0x23},
+ [SPECIES_RAPIDASH - 1] = {0x2f, 0x0f, 0x28, 0x2b, 0x1e},
+ [SPECIES_SLOWPOKE - 1] = {0x14, 0x1f, 0x28, 0x15, 0x2f},
+ [SPECIES_SLOWBRO - 1] = {0x0e, 0x0d, 0x28, 0x0c, 0x1f},
+ [SPECIES_MAGNEMITE - 1] = {0x20, 0x1b, 0x10, 0x1f, 0x29},
+ [SPECIES_MAGNETON - 1] = {0x1f, 0x14, 0x08, 0x1f, 0x22},
+ [SPECIES_FARFETCHD - 1] = {0x16, 0x14, 0x30, 0x16, 0x29},
+ [SPECIES_DODUO - 1] = {0x11, 0x16, 0x30, 0x0d, 0x2c},
+ [SPECIES_DODRIO - 1] = {0x1d, 0x04, 0x28, 0x0e, 0x07},
+ [SPECIES_SEEL - 1] = {0x1b, 0x24, 0x20, 0x17, 0x35},
+ [SPECIES_DEWGONG - 1] = {0x12, 0x0a, 0x30, 0x0e, 0x1a},
+ [SPECIES_GRIMER - 1] = {0x1f, 0x10, 0x30, 0x1d, 0x25},
+ [SPECIES_MUK - 1] = {0x17, 0x0f, 0x30, 0x19, 0x22},
+ [SPECIES_SHELLDER - 1] = {0x1a, 0x18, 0x30, 0x17, 0x29},
+ [SPECIES_CLOYSTER - 1] = {0x19, 0x1e, 0x28, 0x1d, 0x2c},
+ [SPECIES_GASTLY - 1] = {0x1a, 0x1f, 0x08, 0x19, 0x30},
+ [SPECIES_HAUNTER - 1] = {0x20, 0x14, 0x08, 0x1d, 0x26},
+ [SPECIES_GENGAR - 1] = {0x1a, 0x16, 0x30, 0x19, 0x28},
+ [SPECIES_ONIX - 1] = {0x1f, 0x24, 0x20, 0x28, 0x36},
+ [SPECIES_DROWZEE - 1] = {0x1a, 0x0e, 0x30, 0x1a, 0x1e},
+ [SPECIES_HYPNO - 1] = {0x1c, 0x12, 0x30, 0x19, 0x24},
+ [SPECIES_KRABBY - 1] = {0x1d, 0x1d, 0x30, 0x1a, 0x2b},
+ [SPECIES_KINGLER - 1] = {0x1e, 0x1f, 0x28, 0x1c, 0x30},
+ [SPECIES_VOLTORB - 1] = {0x1c, 0x1b, 0x30, 0x1b, 0x2b},
+ [SPECIES_ELECTRODE - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x2e},
+ [SPECIES_EXEGGCUTE - 1] = {0x21, 0x17, 0x30, 0x20, 0x24},
+ [SPECIES_EXEGGUTOR - 1] = {0x1c, 0x17, 0x28, 0x1b, 0x25},
+ [SPECIES_CUBONE - 1] = {0x1b, 0x12, 0x30, 0x1b, 0x22},
+ [SPECIES_MAROWAK - 1] = {0x14, 0x0f, 0x30, 0x11, 0x23},
+ [SPECIES_HITMONLEE - 1] = {0x2e, 0x11, 0x30, 0x28, 0x22},
+ [SPECIES_HITMONCHAN - 1] = {0x22, 0x0e, 0x30, 0x1e, 0x1d},
+ [SPECIES_LICKITUNG - 1] = {0x14, 0x11, 0x30, 0x14, 0x24},
+ [SPECIES_KOFFING - 1] = {0x1e, 0x14, 0x10, 0x1d, 0x20},
+ [SPECIES_WEEZING - 1] = {0x11, 0x0d, 0x10, 0x0f, 0x1c},
+ [SPECIES_RHYHORN - 1] = {0x0e, 0x23, 0x20, 0x14, 0x33},
+ [SPECIES_RHYDON - 1] = {0x0d, 0x12, 0x28, 0x17, 0x22},
+ [SPECIES_CHANSEY - 1] = {0x1a, 0x0d, 0x30, 0x1a, 0x1a},
+ [SPECIES_TANGELA - 1] = {0x1c, 0x18, 0x30, 0x1d, 0x29},
+ [SPECIES_KANGASKHAN - 1] = {0x1b, 0x06, 0x28, 0x1c, 0x14},
+ [SPECIES_HORSEA - 1] = {0x1c, 0x14, 0x30, 0x16, 0x23},
+ [SPECIES_SEADRA - 1] = {0x10, 0x17, 0x30, 0x09, 0x2a},
+ [SPECIES_GOLDEEN - 1] = {0x16, 0x23, 0x20, 0x15, 0x34},
+ [SPECIES_SEAKING - 1] = {0x16, 0x0f, 0x30, 0x10, 0x18},
+ [SPECIES_STARYU - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x26},
+ [SPECIES_STARMIE - 1] = {0x1d, 0x13, 0x30, 0x1b, 0x20},
+ [SPECIES_MR_MIME - 1] = {0x24, 0x11, 0x30, 0x25, 0x1e},
+ [SPECIES_SCYTHER - 1] = {0x10, 0x19, 0x28, 0x12, 0x27},
+ [SPECIES_JYNX - 1] = {0x1b, 0x0f, 0x30, 0x19, 0x1c},
+ [SPECIES_ELECTABUZZ - 1] = {0x14, 0x11, 0x30, 0x17, 0x20},
+ [SPECIES_MAGMAR - 1] = {0x10, 0x0e, 0x30, 0x0b, 0x19},
+ [SPECIES_PINSIR - 1] = {0x1d, 0x1c, 0x28, 0x20, 0x2b},
+ [SPECIES_TAUROS - 1] = {0x11, 0x1d, 0x28, 0x13, 0x2e},
+ [SPECIES_MAGIKARP - 1] = {0x16, 0x15, 0x30, 0x13, 0x23},
+ [SPECIES_GYARADOS - 1] = {0x0b, 0x18, 0x28, 0x16, 0x29},
+ [SPECIES_LAPRAS - 1] = {0x16, 0x08, 0x28, 0x15, 0x16},
+ [SPECIES_DITTO - 1] = {0x24, 0x12, 0x30, 0x1f, 0x20},
+ [SPECIES_EEVEE - 1] = {0x16, 0x16, 0x30, 0x16, 0x23},
+ [SPECIES_VAPOREON - 1] = {0x18, 0x23, 0x28, 0x18, 0x30},
+ [SPECIES_JOLTEON - 1] = {0x14, 0x1b, 0x30, 0x16, 0x28},
+ [SPECIES_FLAREON - 1] = {0x16, 0x17, 0x30, 0x14, 0x25},
+ [SPECIES_PORYGON - 1] = {0x18, 0x12, 0x30, 0x10, 0x23},
+ [SPECIES_OMANYTE - 1] = {0x1d, 0x1d, 0x30, 0x1c, 0x2b},
+ [SPECIES_OMASTAR - 1] = {0x16, 0x1a, 0x30, 0x19, 0x2d},
+ [SPECIES_KABUTO - 1] = {0x1b, 0x16, 0x30, 0x1a, 0x27},
+ [SPECIES_KABUTOPS - 1] = {0x15, 0x11, 0x30, 0x15, 0x1f},
+ [SPECIES_AERODACTYL - 1] = {0x13, 0x1d, 0x00, 0x14, 0x30},
+ [SPECIES_SNORLAX - 1] = {0x35, 0x09, 0x30, 0x2e, 0x14},
+ [SPECIES_ARTICUNO - 1] = {0x18, 0x0b, 0x18, 0x17, 0x17},
+ [SPECIES_ZAPDOS - 1] = {0x0e, 0x0e, 0x10, 0x04, 0x28},
+ [SPECIES_MOLTRES - 1] = {0x0b, 0x2a, 0x08, 0x0b, 0x38},
+ [SPECIES_DRATINI - 1] = {0x0d, 0x12, 0x30, 0x0b, 0x21},
+ [SPECIES_DRAGONAIR - 1] = {0x18, 0x0e, 0x30, 0x13, 0x1c},
+ [SPECIES_DRAGONITE - 1] = {0x1b, 0x07, 0x18, 0x19, 0x17},
+ [SPECIES_MEWTWO - 1] = {0x2b, 0x09, 0x28, 0x2c, 0x18},
+ [SPECIES_MEW - 1] = {0x19, 0x14, 0x10, 0x1f, 0x21},
+ [SPECIES_CHIKORITA - 1] = {0x1b, 0x17, 0x30, 0x1b, 0x24},
+ [SPECIES_BAYLEEF - 1] = {0x1d, 0x10, 0x30, 0x20, 0x1d},
+ [SPECIES_MEGANIUM - 1] = {0x05, 0x0d, 0x28, 0x0d, 0x1b},
+ [SPECIES_CYNDAQUIL - 1] = {0x11, 0x1b, 0x30, 0x14, 0x27},
+ [SPECIES_QUILAVA - 1] = {0x25, 0x18, 0x30, 0x27, 0x26},
+ [SPECIES_TYPHLOSION - 1] = {0x09, 0x10, 0x28, 0x10, 0x1c},
+ [SPECIES_TOTODILE - 1] = {0x16, 0x10, 0x30, 0x19, 0x20},
+ [SPECIES_CROCONAW - 1] = {0x16, 0x10, 0x30, 0x18, 0x21},
+ [SPECIES_FERALIGATR - 1] = {0x0e, 0x0a, 0x28, 0x08, 0x1a},
+ [SPECIES_SENTRET - 1] = {0x1e, 0x0a, 0x30, 0x1d, 0x15},
+ [SPECIES_FURRET - 1] = {0x21, 0x0e, 0x30, 0x21, 0x19},
+ [SPECIES_HOOTHOOT - 1] = {0x1d, 0x15, 0x30, 0x1c, 0x24},
+ [SPECIES_NOCTOWL - 1] = {0x19, 0x0e, 0x30, 0x18, 0x1c},
+ [SPECIES_LEDYBA - 1] = {0x1b, 0x15, 0x30, 0x1c, 0x24},
+ [SPECIES_LEDIAN - 1] = {0x18, 0x12, 0x10, 0x1c, 0x21},
+ [SPECIES_SPINARAK - 1] = {0x20, 0x20, 0x28, 0x20, 0x2d},
+ [SPECIES_ARIADOS - 1] = {0x17, 0x23, 0x28, 0x15, 0x30},
+ [SPECIES_CROBAT - 1] = {0x22, 0x1e, 0x08, 0x23, 0x2b},
+ [SPECIES_CHINCHOU - 1] = {0x1f, 0x1d, 0x30, 0x1f, 0x29},
+ [SPECIES_LANTURN - 1] = {0x10, 0x23, 0x28, 0x19, 0x33},
+ [SPECIES_PICHU - 1] = {0x1e, 0x17, 0x30, 0x1e, 0x24},
+ [SPECIES_CLEFFA - 1] = {0x1c, 0x18, 0x30, 0x1e, 0x26},
+ [SPECIES_IGGLYBUFF - 1] = {0x1f, 0x19, 0x30, 0x1f, 0x24},
+ [SPECIES_TOGEPI - 1] = {0x21, 0x15, 0x30, 0x1f, 0x20},
+ [SPECIES_TOGETIC - 1] = {0x1b, 0x10, 0x30, 0x1c, 0x1c},
+ [SPECIES_NATU - 1] = {0x1c, 0x17, 0x30, 0x15, 0x21},
+ [SPECIES_XATU - 1] = {0x1b, 0x08, 0x30, 0x19, 0x14},
+ [SPECIES_MAREEP - 1] = {0x16, 0x15, 0x30, 0x15, 0x24},
+ [SPECIES_FLAAFFY - 1] = {0x19, 0x12, 0x30, 0x18, 0x21},
+ [SPECIES_AMPHAROS - 1] = {0x0f, 0x0a, 0x30, 0x10, 0x1b},
+ [SPECIES_BELLOSSOM - 1] = {0x1f, 0x13, 0x30, 0x1f, 0x20},
+ [SPECIES_MARILL - 1] = {0x1d, 0x15, 0x30, 0x1d, 0x22},
+ [SPECIES_AZUMARILL - 1] = {0x1a, 0x12, 0x30, 0x17, 0x1f},
+ [SPECIES_SUDOWOODO - 1] = {0x20, 0x10, 0x30, 0x20, 0x1f},
+ [SPECIES_POLITOED - 1] = {0x1d, 0x0f, 0x30, 0x1e, 0x20},
+ [SPECIES_HOPPIP - 1] = {0x23, 0x25, 0x08, 0x25, 0x33},
+ [SPECIES_SKIPLOOM - 1] = {0x1e, 0x18, 0x08, 0x1c, 0x27},
+ [SPECIES_JUMPLUFF - 1] = {0x1d, 0x21, 0x08, 0x20, 0x2f},
+ [SPECIES_AIPOM - 1] = {0x1e, 0x29, 0x18, 0x1e, 0x35},
+ [SPECIES_SUNKERN - 1] = {0x1f, 0x20, 0x08, 0x24, 0x2e},
+ [SPECIES_SUNFLORA - 1] = {0x1c, 0x0c, 0x30, 0x1b, 0x19},
+ [SPECIES_YANMA - 1] = {0x1b, 0x28, 0x08, 0x16, 0x35},
+ [SPECIES_WOOPER - 1] = {0x1d, 0x13, 0x30, 0x1f, 0x21},
+ [SPECIES_QUAGSIRE - 1] = {0x15, 0x09, 0x30, 0x12, 0x18},
+ [SPECIES_ESPEON - 1] = {0x11, 0x1b, 0x30, 0x11, 0x29},
+ [SPECIES_UMBREON - 1] = {0x23, 0x15, 0x30, 0x23, 0x22},
+ [SPECIES_MURKROW - 1] = {0x24, 0x13, 0x30, 0x20, 0x22},
+ [SPECIES_SLOWKING - 1] = {0x1e, 0x13, 0x28, 0x1d, 0x25},
+ [SPECIES_MISDREAVUS - 1] = {0x28, 0x21, 0x08, 0x26, 0x2e},
+ [SPECIES_UNOWN - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21},
+ [SPECIES_WOBBUFFET - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x1a},
+ [SPECIES_GIRAFARIG - 1] = {0x0b, 0x0d, 0x28, 0x11, 0x1d},
+ [SPECIES_PINECO - 1] = {0x1d, 0x12, 0x10, 0x19, 0x25},
+ [SPECIES_FORRETRESS - 1] = {0x19, 0x17, 0x08, 0x1e, 0x26},
+ [SPECIES_DUNSPARCE - 1] = {0x10, 0x1b, 0x30, 0x0c, 0x2d},
+ [SPECIES_GLIGAR - 1] = {0x1e, 0x13, 0x08, 0x1d, 0x23},
+ [SPECIES_STEELIX - 1] = {0x0c, 0x0d, 0x28, 0x0d, 0x1c},
+ [SPECIES_SNUBBULL - 1] = {0x1b, 0x15, 0x30, 0x1a, 0x23},
+ [SPECIES_GRANBULL - 1] = {0x1c, 0x09, 0x30, 0x19, 0x18},
+ [SPECIES_QWILFISH - 1] = {0x1f, 0x26, 0x20, 0x1d, 0x33},
+ [SPECIES_SCIZOR - 1] = {0x15, 0x0f, 0x10, 0x1a, 0x1a},
+ [SPECIES_SHUCKLE - 1] = {0x25, 0x0a, 0x30, 0x24, 0x18},
+ [SPECIES_HERACROSS - 1] = {0x18, 0x19, 0x28, 0x1a, 0x26},
+ [SPECIES_SNEASEL - 1] = {0x1c, 0x13, 0x30, 0x1d, 0x24},
+ [SPECIES_TEDDIURSA - 1] = {0x1e, 0x12, 0x30, 0x1b, 0x23},
+ [SPECIES_URSARING - 1] = {0x1e, 0x04, 0x28, 0x1d, 0x14},
+ [SPECIES_SLUGMA - 1] = {0x20, 0x18, 0x30, 0x20, 0x28},
+ [SPECIES_MAGCARGO - 1] = {0x16, 0x11, 0x30, 0x17, 0x23},
+ [SPECIES_SWINUB - 1] = {0x1c, 0x18, 0x30, 0x1b, 0x25},
+ [SPECIES_PILOSWINE - 1] = {0x18, 0x23, 0x20, 0x18, 0x36},
+ [SPECIES_CORSOLA - 1] = {0x19, 0x1d, 0x28, 0x19, 0x2b},
+ [SPECIES_REMORAID - 1] = {0x15, 0x1f, 0x28, 0x13, 0x2b},
+ [SPECIES_OCTILLERY - 1] = {0x1c, 0x11, 0x30, 0x1a, 0x20},
+ [SPECIES_DELIBIRD - 1] = {0x1d, 0x11, 0x30, 0x1b, 0x1f},
+ [SPECIES_MANTINE - 1] = {0x16, 0x1e, 0x28, 0x1f, 0x27},
+ [SPECIES_SKARMORY - 1] = {0x1e, 0x00, 0x28, 0x13, 0x07},
+ [SPECIES_HOUNDOUR - 1] = {0x25, 0x11, 0x30, 0x25, 0x1f},
+ [SPECIES_HOUNDOOM - 1] = {0x0d, 0x13, 0x30, 0x0d, 0x24},
+ [SPECIES_KINGDRA - 1] = {0x0e, 0x13, 0x28, 0x0a, 0x2c},
+ [SPECIES_PHANPY - 1] = {0x1b, 0x11, 0x30, 0x19, 0x24},
+ [SPECIES_DONPHAN - 1] = {0x11, 0x15, 0x30, 0x19, 0x2c},
+ [SPECIES_PORYGON2 - 1] = {0x18, 0x11, 0x30, 0x11, 0x20},
+ [SPECIES_STANTLER - 1] = {0x15, 0x15, 0x28, 0x17, 0x28},
+ [SPECIES_SMEARGLE - 1] = {0x18, 0x10, 0x30, 0x1b, 0x25},
+ [SPECIES_TYROGUE - 1] = {0x1e, 0x12, 0x30, 0x1f, 0x1f},
+ [SPECIES_HITMONTOP - 1] = {0x1a, 0x39, 0x10, 0x1a, 0x2b},
+ [SPECIES_SMOOCHUM - 1] = {0x20, 0x18, 0x30, 0x21, 0x26},
+ [SPECIES_ELEKID - 1] = {0x1d, 0x14, 0x30, 0x1d, 0x23},
+ [SPECIES_MAGBY - 1] = {0x1c, 0x15, 0x30, 0x1a, 0x24},
+ [SPECIES_MILTANK - 1] = {0x18, 0x0e, 0x30, 0x18, 0x1e},
+ [SPECIES_BLISSEY - 1] = {0x1d, 0x09, 0x30, 0x1d, 0x19},
+ [SPECIES_RAIKOU - 1] = {0x29, 0x0c, 0x28, 0x27, 0x1e},
+ [SPECIES_ENTEI - 1] = {0x08, 0x09, 0x28, 0x0b, 0x18},
+ [SPECIES_SUICUNE - 1] = {0x23, 0x1d, 0x28, 0x26, 0x2c},
+ [SPECIES_LARVITAR - 1] = {0x1c, 0x18, 0x30, 0x1a, 0x24},
+ [SPECIES_PUPITAR - 1] = {0x1b, 0x19, 0x30, 0x1b, 0x28},
+ [SPECIES_TYRANITAR - 1] = {0x06, 0x0b, 0x28, 0x0d, 0x19},
+ [SPECIES_LUGIA - 1] = {0x08, 0x2a, 0x08, 0x14, 0x34},
+ [SPECIES_HO_OH - 1] = {0x0d, 0x25, 0x08, 0x0e, 0x34},
+ [SPECIES_CELEBI - 1] = {0x15, 0x21, 0x08, 0x1a, 0x2b},
+ [SPECIES_OLD_UNOWN_B - 1] = {0x1f, 0x12, 0x08, 0x1e, 0x1c},
+ [SPECIES_OLD_UNOWN_C - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21},
+ [SPECIES_OLD_UNOWN_D - 1] = {0x1c, 0x19, 0x08, 0x1b, 0x23},
+ [SPECIES_OLD_UNOWN_E - 1] = {0x21, 0x19, 0x08, 0x20, 0x23},
+ [SPECIES_OLD_UNOWN_F - 1] = {0x1b, 0x13, 0x08, 0x1a, 0x1d},
+ [SPECIES_OLD_UNOWN_G - 1] = {0x20, 0x16, 0x08, 0x1f, 0x21},
+ [SPECIES_OLD_UNOWN_H - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_I - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_J - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20},
+ [SPECIES_OLD_UNOWN_K - 1] = {0x1d, 0x1a, 0x08, 0x1c, 0x24},
+ [SPECIES_OLD_UNOWN_L - 1] = {0x20, 0x16, 0x08, 0x1f, 0x1f},
+ [SPECIES_OLD_UNOWN_M - 1] = {0x20, 0x1c, 0x08, 0x1f, 0x26},
+ [SPECIES_OLD_UNOWN_N - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_O - 1] = {0x20, 0x1a, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_P - 1] = {0x20, 0x16, 0x08, 0x1f, 0x20},
+ [SPECIES_OLD_UNOWN_Q - 1] = {0x1d, 0x16, 0x08, 0x1c, 0x20},
+ [SPECIES_OLD_UNOWN_R - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f},
+ [SPECIES_OLD_UNOWN_S - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_T - 1] = {0x20, 0x1e, 0x08, 0x1f, 0x28},
+ [SPECIES_OLD_UNOWN_U - 1] = {0x20, 0x17, 0x08, 0x1f, 0x21},
+ [SPECIES_OLD_UNOWN_V - 1] = {0x1e, 0x1e, 0x08, 0x1d, 0x28},
+ [SPECIES_OLD_UNOWN_W - 1] = {0x20, 0x1d, 0x08, 0x1f, 0x27},
+ [SPECIES_OLD_UNOWN_X - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_OLD_UNOWN_Y - 1] = {0x20, 0x15, 0x08, 0x1f, 0x1f},
+ [SPECIES_OLD_UNOWN_Z - 1] = {0x20, 0x19, 0x08, 0x1f, 0x23},
+ [SPECIES_TREECKO - 1] = {0x1a, 0x0f, 0x30, 0x19, 0x20},
+ [SPECIES_GROVYLE - 1] = {0x0d, 0x05, 0x10, 0x05, 0x13},
+ [SPECIES_SCEPTILE - 1] = {0x10, 0x04, 0x28, 0x0c, 0x12},
+ [SPECIES_TORCHIC - 1] = {0x17, 0x18, 0x30, 0x15, 0x25},
+ [SPECIES_COMBUSKEN - 1] = {0x20, 0x12, 0x28, 0x1e, 0x20},
+ [SPECIES_BLAZIKEN - 1] = {0x1a, 0x07, 0x28, 0x1d, 0x13},
+ [SPECIES_MUDKIP - 1] = {0x1b, 0x1d, 0x28, 0x19, 0x2c},
+ [SPECIES_MARSHTOMP - 1] = {0x1d, 0x11, 0x30, 0x1c, 0x20},
+ [SPECIES_SWAMPERT - 1] = {0x1b, 0x11, 0x28, 0x1b, 0x23},
+ [SPECIES_POOCHYENA - 1] = {0x14, 0x12, 0x30, 0x0f, 0x20},
+ [SPECIES_MIGHTYENA - 1] = {0x09, 0x0d, 0x28, 0x09, 0x1c},
+ [SPECIES_ZIGZAGOON - 1] = {0x0b, 0x1a, 0x30, 0x09, 0x2b},
+ [SPECIES_LINOONE - 1] = {0x0d, 0x28, 0x18, 0x0b, 0x37},
+ [SPECIES_WURMPLE - 1] = {0x21, 0x17, 0x30, 0x1f, 0x26},
+ [SPECIES_SILCOON - 1] = {0x13, 0x1c, 0x30, 0x11, 0x2a},
+ [SPECIES_BEAUTIFLY - 1] = {0x0f, 0x1b, 0x08, 0x0e, 0x28},
+ [SPECIES_CASCOON - 1] = {0x14, 0x1d, 0x30, 0x11, 0x2c},
+ [SPECIES_DUSTOX - 1] = {0x14, 0x19, 0x08, 0x16, 0x26},
+ [SPECIES_LOTAD - 1] = {0x19, 0x25, 0x28, 0x17, 0x32},
+ [SPECIES_LOMBRE - 1] = {0x22, 0x10, 0x30, 0x29, 0x1d},
+ [SPECIES_LUDICOLO - 1] = {0x1c, 0x0f, 0x28, 0x1b, 0x24},
+ [SPECIES_SEEDOT - 1] = {0x1b, 0x17, 0x30, 0x18, 0x28},
+ [SPECIES_NUZLEAF - 1] = {0x20, 0x0d, 0x30, 0x1a, 0x1d},
+ [SPECIES_SHIFTRY - 1] = {0x32, 0x11, 0x28, 0x2e, 0x23},
+ [SPECIES_NINCADA - 1] = {0x18, 0x1a, 0x30, 0x17, 0x28},
+ [SPECIES_NINJASK - 1] = {0x17, 0x21, 0x00, 0x17, 0x2f},
+ [SPECIES_SHEDINJA - 1] = {0x16, 0x19, 0x08, 0x18, 0x2a},
+ [SPECIES_TAILLOW - 1] = {0x17, 0x10, 0x30, 0x14, 0x1e},
+ [SPECIES_SWELLOW - 1] = {0x0c, 0x0a, 0x28, 0x05, 0x16},
+ [SPECIES_SHROOMISH - 1] = {0x1f, 0x16, 0x30, 0x1d, 0x23},
+ [SPECIES_BRELOOM - 1] = {0x25, 0x0c, 0x30, 0x23, 0x19},
+ [SPECIES_SPINDA - 1] = {0x21, 0x16, 0x30, 0x1f, 0x27},
+ [SPECIES_WINGULL - 1] = {0x1a, 0x16, 0x10, 0x15, 0x26},
+ [SPECIES_PELIPPER - 1] = {0x1d, 0x0a, 0x10, 0x09, 0x1b},
+ [SPECIES_SURSKIT - 1] = {0x1d, 0x16, 0x30, 0x1c, 0x25},
+ [SPECIES_MASQUERAIN - 1] = {0x1a, 0x21, 0x08, 0x14, 0x30},
+ [SPECIES_WAILMER - 1] = {0x17, 0x17, 0x30, 0x16, 0x28},
+ [SPECIES_WAILORD - 1] = {0x17, 0x03, 0x30, 0x09, 0x13},
+ [SPECIES_SKITTY - 1] = {0x24, 0x1a, 0x30, 0x22, 0x2a},
+ [SPECIES_DELCATTY - 1] = {0x1e, 0x12, 0x30, 0x1c, 0x21},
+ [SPECIES_KECLEON - 1] = {0x19, 0x10, 0x30, 0x13, 0x1e},
+ [SPECIES_BALTOY - 1] = {0x1d, 0x15, 0x30, 0x1b, 0x22},
+ [SPECIES_CLAYDOL - 1] = {0x1e, 0x0d, 0x28, 0x1d, 0x24},
+ [SPECIES_NOSEPASS - 1] = {0x1f, 0x10, 0x30, 0x15, 0x23},
+ [SPECIES_TORKOAL - 1] = {0x0e, 0x19, 0x28, 0x0a, 0x27},
+ [SPECIES_SABLEYE - 1] = {0x1e, 0x16, 0x30, 0x1d, 0x27},
+ [SPECIES_BARBOACH - 1] = {0x17, 0x12, 0x30, 0x15, 0x1e},
+ [SPECIES_WHISCASH - 1] = {0x18, 0x20, 0x28, 0x17, 0x31},
+ [SPECIES_LUVDISC - 1] = {0x19, 0x0f, 0x30, 0x13, 0x1c},
+ [SPECIES_CORPHISH - 1] = {0x1f, 0x14, 0x30, 0x1d, 0x23},
+ [SPECIES_CRAWDAUNT - 1] = {0x14, 0x0c, 0x28, 0x18, 0x23},
+ [SPECIES_FEEBAS - 1] = {0x18, 0x1e, 0x28, 0x16, 0x2f},
+ [SPECIES_MILOTIC - 1] = {0x20, 0x0c, 0x28, 0x1f, 0x1d},
+ [SPECIES_CARVANHA - 1] = {0x16, 0x19, 0x30, 0x13, 0x22},
+ [SPECIES_SHARPEDO - 1] = {0x19, 0x0c, 0x28, 0x17, 0x27},
+ [SPECIES_TRAPINCH - 1] = {0x29, 0x13, 0x30, 0x17, 0x18},
+ [SPECIES_VIBRAVA - 1] = {0x10, 0x27, 0x20, 0x0e, 0x34},
+ [SPECIES_FLYGON - 1] = {0x22, 0x07, 0x10, 0x21, 0x13},
+ [SPECIES_MAKUHITA - 1] = {0x22, 0x13, 0x30, 0x1c, 0x23},
+ [SPECIES_HARIYAMA - 1] = {0x24, 0x0f, 0x28, 0x26, 0x1c},
+ [SPECIES_ELECTRIKE - 1] = {0x11, 0x18, 0x30, 0x14, 0x27},
+ [SPECIES_MANECTRIC - 1] = {0x2f, 0x18, 0x28, 0x2e, 0x29},
+ [SPECIES_NUMEL - 1] = {0x10, 0x1a, 0x30, 0x0d, 0x2a},
+ [SPECIES_CAMERUPT - 1] = {0x0d, 0x22, 0x28, 0x0e, 0x36},
+ [SPECIES_SPHEAL - 1] = {0x1e, 0x0f, 0x30, 0x18, 0x1f},
+ [SPECIES_SEALEO - 1] = {0x1c, 0x09, 0x30, 0x1a, 0x18},
+ [SPECIES_WALREIN - 1] = {0x19, 0x01, 0x28, 0x10, 0x16},
+ [SPECIES_CACNEA - 1] = {0x1f, 0x17, 0x30, 0x1d, 0x29},
+ [SPECIES_CACTURNE - 1] = {0x1d, 0x0e, 0x28, 0x1d, 0x1b},
+ [SPECIES_SNORUNT - 1] = {0x1e, 0x16, 0x30, 0x1e, 0x26},
+ [SPECIES_GLALIE - 1] = {0x1a, 0x1c, 0x08, 0x1a, 0x31},
+ [SPECIES_LUNATONE - 1] = {0x1c, 0x16, 0x08, 0x19, 0x2c},
+ [SPECIES_SOLROCK - 1] = {0x18, 0x18, 0x10, 0x17, 0x31},
+ [SPECIES_AZURILL - 1] = {0x1b, 0x10, 0x30, 0x18, 0x1f},
+ [SPECIES_SPOINK - 1] = {0x21, 0x14, 0x30, 0x1b, 0x28},
+ [SPECIES_GRUMPIG - 1] = {0x14, 0x10, 0x30, 0x15, 0x20},
+ [SPECIES_PLUSLE - 1] = {0x1c, 0x16, 0x08, 0x1d, 0x25},
+ [SPECIES_MINUN - 1] = {0x21, 0x16, 0x08, 0x1f, 0x26},
+ [SPECIES_MAWILE - 1] = {0x2d, 0x14, 0x30, 0x2f, 0x24},
+ [SPECIES_MEDITITE - 1] = {0x1f, 0x17, 0x30, 0x1e, 0x25},
+ [SPECIES_MEDICHAM - 1] = {0x21, 0x0f, 0x28, 0x1e, 0x1d},
+ [SPECIES_SWABLU - 1] = {0x1b, 0x16, 0x10, 0x17, 0x23},
+ [SPECIES_ALTARIA - 1] = {0x1d, 0x0b, 0x10, 0x1a, 0x1a},
+ [SPECIES_WYNAUT - 1] = {0x1a, 0x15, 0x30, 0x1b, 0x26},
+ [SPECIES_DUSKULL - 1] = {0x10, 0x18, 0x08, 0x14, 0x2e},
+ [SPECIES_DUSCLOPS - 1] = {0x1c, 0x0f, 0x30, 0x1a, 0x28},
+ [SPECIES_ROSELIA - 1] = {0x1e, 0x11, 0x30, 0x1d, 0x20},
+ [SPECIES_SLAKOTH - 1] = {0x19, 0x1e, 0x30, 0x18, 0x2f},
+ [SPECIES_VIGOROTH - 1] = {0x10, 0x12, 0x28, 0x14, 0x24},
+ [SPECIES_SLAKING - 1] = {0x37, 0x0f, 0x30, 0x29, 0x21},
+ [SPECIES_GULPIN - 1] = {0x1b, 0x18, 0x30, 0x17, 0x26},
+ [SPECIES_SWALOT - 1] = {0x1f, 0x06, 0x30, 0x15, 0x13},
+ [SPECIES_TROPIUS - 1] = {0x18, 0x0a, 0x28, 0x20, 0x18},
+ [SPECIES_WHISMUR - 1] = {0x1f, 0x19, 0x30, 0x1d, 0x29},
+ [SPECIES_LOUDRED - 1] = {0x1c, 0x12, 0x28, 0x22, 0x27},
+ [SPECIES_EXPLOUD - 1] = {0x10, 0x10, 0x28, 0x1a, 0x2a},
+ [SPECIES_CLAMPERL - 1] = {0x20, 0x1a, 0x30, 0x1e, 0x26},
+ [SPECIES_HUNTAIL - 1] = {0x13, 0x1e, 0x28, 0x15, 0x33},
+ [SPECIES_GOREBYSS - 1] = {0x0d, 0x1f, 0x28, 0x03, 0x32},
+ [SPECIES_ABSOL - 1] = {0x2a, 0x11, 0x28, 0x2a, 0x22},
+ [SPECIES_SHUPPET - 1] = {0x16, 0x19, 0x08, 0x17, 0x27},
+ [SPECIES_BANETTE - 1] = {0x1c, 0x14, 0x08, 0x1b, 0x23},
+ [SPECIES_SEVIPER - 1] = {0x0e, 0x0d, 0x30, 0x0b, 0x1e},
+ [SPECIES_ZANGOOSE - 1] = {0x18, 0x0c, 0x28, 0x15, 0x1a},
+ [SPECIES_RELICANTH - 1] = {0x0c, 0x1f, 0x30, 0x09, 0x2d},
+ [SPECIES_ARON - 1] = {0x18, 0x1c, 0x30, 0x1a, 0x2c},
+ [SPECIES_LAIRON - 1] = {0x0b, 0x21, 0x30, 0x12, 0x2f},
+ [SPECIES_AGGRON - 1] = {0x10, 0x0b, 0x28, 0x16, 0x1b},
+ [SPECIES_CASTFORM - 1] = {0x1d, 0x18, 0x08, 0x1b, 0x26},
+ [SPECIES_VOLBEAT - 1] = {0x25, 0x15, 0x08, 0x21, 0x25},
+ [SPECIES_ILLUMISE - 1] = {0x20, 0x12, 0x08, 0x1f, 0x20},
+ [SPECIES_LILEEP - 1] = {0x1e, 0x11, 0x30, 0x1f, 0x1e},
+ [SPECIES_CRADILY - 1] = {0x12, 0x16, 0x28, 0x15, 0x28},
+ [SPECIES_ANORITH - 1] = {0x1c, 0x1e, 0x30, 0x1b, 0x2b},
+ [SPECIES_ARMALDO - 1] = {0x15, 0x05, 0x28, 0x14, 0x13},
+ [SPECIES_RALTS - 1] = {0x1f, 0x17, 0x30, 0x20, 0x23},
+ [SPECIES_KIRLIA - 1] = {0x1c, 0x12, 0x30, 0x1f, 0x1e},
+ [SPECIES_GARDEVOIR - 1] = {0x35, 0x07, 0x28, 0x32, 0x14},
+ [SPECIES_BAGON - 1] = {0x17, 0x13, 0x30, 0x16, 0x26},
+ [SPECIES_SHELGON - 1] = {0x19, 0x1b, 0x30, 0x19, 0x2c},
+ [SPECIES_SALAMENCE - 1] = {0x09, 0x11, 0x30, 0x0a, 0x21},
+ [SPECIES_BELDUM - 1] = {0x16, 0x19, 0x08, 0x18, 0x23},
+ [SPECIES_METANG - 1] = {0x22, 0x0f, 0x10, 0x1f, 0x21},
+ [SPECIES_METAGROSS - 1] = {0x24, 0x1b, 0x28, 0x22, 0x2b},
+ [SPECIES_REGIROCK - 1] = {0x16, 0x07, 0x28, 0x14, 0x12},
+ [SPECIES_REGICE - 1] = {0x19, 0x0c, 0x28, 0x17, 0x19},
+ [SPECIES_REGISTEEL - 1] = {0x19, 0x0d, 0x28, 0x19, 0x19},
+ [SPECIES_KYOGRE - 1] = {0x0e, 0x19, 0x28, 0x0b, 0x26},
+ [SPECIES_GROUDON - 1] = {0x04, 0x0b, 0x28, 0x0a, 0x19},
+ [SPECIES_RAYQUAZA - 1] = {0x0c, 0x0e, 0x10, 0x0e, 0x1f},
+ [SPECIES_LATIAS - 1] = {0x1e, 0x0c, 0x10, 0x23, 0x19},
+ [SPECIES_LATIOS - 1] = {0x05, 0x0e, 0x10, 0x05, 0x1d},
+ [SPECIES_JIRACHI - 1] = {0x1c, 0x15, 0x08, 0x1e, 0x22},
+ [SPECIES_DEOXYS - 1] = {0x1b, 0x08, 0x28, 0x1c, 0x16},
+ [SPECIES_CHIMECHO - 1] = {0x1d, 0x0c, 0x08, 0x1c, 0x1a},
+ [SPECIES_OLD_UNOWN_EMARK - 1] = {0x20, 0x21, 0x08, 0x20, 0x2b},
+ [SPECIES_OLD_UNOWN_QMARK - 1] = {0x20, 0x23, 0x08, 0x20, 0x2d}
+};
+
+void box_print(u8 windowId, u8 fontId, u8 x, u8 y, const struct TextColor * color, s8 speed, const u8 * str)
+{
+ struct TextSubPrinter printer;
+
+ printer.current_text_offset = str;
+ printer.windowId = windowId;
+ printer.fontId = fontId;
+ printer.x = x;
+ printer.y = y;
+ printer.currentX = printer.x;
+ printer.currentY = printer.y;
+ printer.letterSpacing = GetFontAttribute(fontId, 2);
+ printer.lineSpacing = GetFontAttribute(fontId, 3);
+ printer.fontColor_l = 0;
+ printer.fontColor_h = color->bgColor;
+ printer.bgColor = color->fgColor;
+ printer.shadowColor = color->shadowColor;
+ AddTextPrinter(&printer, speed, NULL);
+}
+
+void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str)
+{
+ struct TextSubPrinter printer;
+
+ printer.current_text_offset = str;
+ printer.windowId = windowId;
+ printer.fontId = fontId;
+ printer.x = x;
+ printer.y = y;
+ printer.currentX = printer.x;
+ printer.currentY = printer.y;
+ printer.letterSpacing = letterSpacing;
+ printer.lineSpacing = lineSpacing;
+ printer.fontColor_l = 0;
+ printer.fontColor_h = color->bgColor;
+ printer.bgColor = color->fgColor;
+ printer.shadowColor = color->shadowColor;
+ AddTextPrinter(&printer, speed, NULL);
+}
+
+void sub_812E62C(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing)
+{
+ struct TextSubPrinter printer;
+
+ printer.current_text_offset = str;
+ printer.windowId = windowId;
+ printer.fontId = fontId;
+ printer.x = x;
+ printer.y = y;
+ printer.currentX = x;
+ printer.currentY = y;
+ printer.letterSpacing = letterSpacing;
+ printer.lineSpacing = lineSpacing;
+ printer.fontColor_l = 0;
+ printer.fontColor_h = GetFontAttribute(fontId, 5);
+ printer.bgColor = GetFontAttribute(fontId, 6);
+ printer.shadowColor = GetFontAttribute(fontId, 7);
+ AddTextPrinter(&printer, speed, callback);
+}
+
+void sub_812E6DC(u8 windowId, const u8 * src, u16 x, u16 y)
+{
+ s32 i;
+
+ for (i = 0; gSaveBlock2Ptr->playerName[i] != EOS; i++)
+ ;
+
+ StringExpandPlaceholders(gStringVar4, src);
+ if (i != 5)
+ {
+ AddTextPrinterParameterized(windowId, 2, gStringVar4, x, y, 0xFF, NULL);
+ }
+ else
+ {
+ sub_812E62C(windowId, 2, gStringVar4, x, y, 0xFF, NULL, 0, 0);
+ }
+}
+
+// Yeah, no, I'm not bothering with this
+NAKED
+void sub_819A080(void * a0, void * a1, u16 a2, u16 a3, u16 a4, u16 a5, u16 a6, u16 a7)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r10\n"
+ "\tmov r6, r9\n"
+ "\tmov r5, r8\n"
+ "\tpush {r5-r7}\n"
+ "\tsub sp, 0x28\n"
+ "\tstr r0, [sp]\n"
+ "\tstr r1, [sp, 0x4]\n"
+ "\tldr r0, [sp, 0x48]\n"
+ "\tldr r4, [sp, 0x4C]\n"
+ "\tldr r1, [sp, 0x50]\n"
+ "\tldr r5, [sp, 0x54]\n"
+ "\tlsls r2, 16\n"
+ "\tlsrs r2, 16\n"
+ "\tstr r2, [sp, 0x8]\n"
+ "\tlsls r3, 16\n"
+ "\tlsrs r3, 16\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tstr r0, [sp, 0xC]\n"
+ "\tlsls r4, 16\n"
+ "\tlsrs r4, 16\n"
+ "\tlsls r1, 16\n"
+ "\tlsrs r1, 16\n"
+ "\tlsls r5, 16\n"
+ "\tlsrs r5, 16\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tldrh r0, [r2, 0x4]\n"
+ "\tldr r2, [sp, 0xC]\n"
+ "\tsubs r0, r2\n"
+ "\tldr r2, [sp, 0x8]\n"
+ "\tadds r2, r1, r2\n"
+ "\tstr r2, [sp, 0x10]\n"
+ "\tcmp r0, r1\n"
+ "\tbge _0812E7B4\n"
+ "\tldr r1, [sp, 0x8]\n"
+ "\tadds r0, r1\n"
+ "\tstr r0, [sp, 0x10]\n"
+ "_0812E7B4:\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tldrh r1, [r2, 0x6]\n"
+ "\tsubs r0, r1, r4\n"
+ "\tcmp r0, r5\n"
+ "\tbge _0812E7C6\n"
+ "\tadds r0, r3, r1\n"
+ "\tsubs r0, r4\n"
+ "\tstr r0, [sp, 0x14]\n"
+ "\tb _0812E7CA\n"
+ "_0812E7C6:\n"
+ "\tadds r5, r3, r5\n"
+ "\tstr r5, [sp, 0x14]\n"
+ "_0812E7CA:\n"
+ "\tldr r0, [sp]\n"
+ "\tldrh r1, [r0, 0x4]\n"
+ "\tmovs r2, 0x7\n"
+ "\tadds r0, r1, 0\n"
+ "\tands r0, r2\n"
+ "\tadds r1, r0\n"
+ "\tasrs r1, 3\n"
+ "\tstr r1, [sp, 0x18]\n"
+ "\tldr r0, [sp, 0x4]\n"
+ "\tldrh r1, [r0, 0x4]\n"
+ "\tadds r0, r1, 0\n"
+ "\tands r0, r2\n"
+ "\tadds r1, r0\n"
+ "\tasrs r1, 3\n"
+ "\tstr r1, [sp, 0x1C]\n"
+ "\tmov r12, r3\n"
+ "\tmov r8, r4\n"
+ "\tldr r1, [sp, 0x14]\n"
+ "\tcmp r12, r1\n"
+ "\tblt _0812E7F4\n"
+ "\tb _0812E932\n"
+ "_0812E7F4:\n"
+ "\tldr r5, [sp, 0x8]\n"
+ "\tldr r6, [sp, 0xC]\n"
+ "\tmov r2, r12\n"
+ "\tadds r2, 0x1\n"
+ "\tstr r2, [sp, 0x20]\n"
+ "\tmov r0, r8\n"
+ "\tadds r0, 0x1\n"
+ "\tstr r0, [sp, 0x24]\n"
+ "\tldr r1, [sp, 0x10]\n"
+ "\tcmp r5, r1\n"
+ "\tblt _0812E80C\n"
+ "\tb _0812E922\n"
+ "_0812E80C:\n"
+ "\tmovs r7, 0x1\n"
+ "\tmovs r2, 0xF0\n"
+ "\tmov r10, r2\n"
+ "\tmovs r0, 0xF\n"
+ "\tmov r9, r0\n"
+ "_0812E816:\n"
+ "\tasrs r0, r5, 1\n"
+ "\tmovs r1, 0x3\n"
+ "\tands r0, r1\n"
+ "\tldr r2, [sp]\n"
+ "\tldr r1, [r2]\n"
+ "\tadds r1, r0\n"
+ "\tasrs r0, r5, 3\n"
+ "\tlsls r0, 5\n"
+ "\tadds r1, r0\n"
+ "\tmov r2, r12\n"
+ "\tasrs r0, r2, 3\n"
+ "\tldr r2, [sp, 0x18]\n"
+ "\tmuls r0, r2\n"
+ "\tlsls r0, 5\n"
+ "\tadds r1, r0\n"
+ "\tmov r2, r12\n"
+ "\tlsls r0, r2, 29\n"
+ "\tlsrs r0, 27\n"
+ "\tadds r3, r1, r0\n"
+ "\tasrs r0, r6, 1\n"
+ "\tmovs r1, 0x3\n"
+ "\tands r0, r1\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tldr r1, [r2]\n"
+ "\tadds r1, r0\n"
+ "\tasrs r0, r6, 3\n"
+ "\tlsls r0, 5\n"
+ "\tadds r1, r0\n"
+ "\tmov r2, r8\n"
+ "\tasrs r0, r2, 3\n"
+ "\tldr r2, [sp, 0x1C]\n"
+ "\tmuls r0, r2\n"
+ "\tlsls r0, 5\n"
+ "\tadds r1, r0\n"
+ "\tmov r2, r8\n"
+ "\tlsls r0, r2, 29\n"
+ "\tlsrs r0, 27\n"
+ "\tadds r4, r1, r0\n"
+ "\tadds r0, r4, 0\n"
+ "\tands r0, r7\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0812E8C2\n"
+ "\tsubs r4, 0x1\n"
+ "\tadds r0, r6, 0\n"
+ "\tands r0, r7\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0812E89A\n"
+ "\tldrh r0, [r4]\n"
+ "\tldr r2, _0812E88C @ =0x00000fff\n"
+ "\tands r2, r0\n"
+ "\tadds r0, r5, 0\n"
+ "\tands r0, r7\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0812E890\n"
+ "\tldrb r1, [r3]\n"
+ "\tmov r0, r10\n"
+ "\tands r0, r1\n"
+ "\tlsls r0, 8\n"
+ "\tb _0812E912\n"
+ "\t.align 2, 0\n"
+ "_0812E88C: .4byte 0x00000fff\n"
+ "_0812E890:\n"
+ "\tldrb r1, [r3]\n"
+ "\tmov r0, r9\n"
+ "\tands r0, r1\n"
+ "\tlsls r0, 12\n"
+ "\tb _0812E912\n"
+ "_0812E89A:\n"
+ "\tldrh r0, [r4]\n"
+ "\tldr r2, _0812E8B4 @ =0x0000f0ff\n"
+ "\tands r2, r0\n"
+ "\tadds r0, r5, 0\n"
+ "\tands r0, r7\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0812E8B8\n"
+ "\tldrb r1, [r3]\n"
+ "\tmov r0, r10\n"
+ "\tands r0, r1\n"
+ "\tlsls r0, 4\n"
+ "\tb _0812E912\n"
+ "\t.align 2, 0\n"
+ "_0812E8B4: .4byte 0x0000f0ff\n"
+ "_0812E8B8:\n"
+ "\tldrb r1, [r3]\n"
+ "\tmov r0, r9\n"
+ "\tands r0, r1\n"
+ "\tlsls r0, 8\n"
+ "\tb _0812E912\n"
+ "_0812E8C2:\n"
+ "\tadds r0, r6, 0\n"
+ "\tands r0, r7\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0812E8EE\n"
+ "\tldrh r0, [r4]\n"
+ "\tldr r2, _0812E8E0 @ =0x0000ff0f\n"
+ "\tands r2, r0\n"
+ "\tadds r0, r5, 0\n"
+ "\tands r0, r7\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0812E8E4\n"
+ "\tldrb r1, [r3]\n"
+ "\tmov r0, r10\n"
+ "\tb _0812E910\n"
+ "\t.align 2, 0\n"
+ "_0812E8E0: .4byte 0x0000ff0f\n"
+ "_0812E8E4:\n"
+ "\tldrb r1, [r3]\n"
+ "\tmov r0, r9\n"
+ "\tands r0, r1\n"
+ "\tlsls r0, 4\n"
+ "\tb _0812E912\n"
+ "_0812E8EE:\n"
+ "\tldrh r0, [r4]\n"
+ "\tldr r2, _0812E908 @ =0x0000fff0\n"
+ "\tands r2, r0\n"
+ "\tadds r0, r5, 0\n"
+ "\tands r0, r7\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0812E90C\n"
+ "\tldrb r1, [r3]\n"
+ "\tmov r0, r10\n"
+ "\tands r0, r1\n"
+ "\tlsrs r0, 4\n"
+ "\tb _0812E912\n"
+ "\t.align 2, 0\n"
+ "_0812E908: .4byte 0x0000fff0\n"
+ "_0812E90C:\n"
+ "\tldrb r1, [r3]\n"
+ "\tmov r0, r9\n"
+ "_0812E910:\n"
+ "\tands r0, r1\n"
+ "_0812E912:\n"
+ "\torrs r2, r0\n"
+ "\tstrh r2, [r4]\n"
+ "\tadds r5, 0x1\n"
+ "\tadds r6, 0x1\n"
+ "\tldr r0, [sp, 0x10]\n"
+ "\tcmp r5, r0\n"
+ "\tbge _0812E922\n"
+ "\tb _0812E816\n"
+ "_0812E922:\n"
+ "\tldr r1, [sp, 0x20]\n"
+ "\tmov r12, r1\n"
+ "\tldr r2, [sp, 0x24]\n"
+ "\tmov r8, r2\n"
+ "\tldr r0, [sp, 0x14]\n"
+ "\tcmp r12, r0\n"
+ "\tbge _0812E932\n"
+ "\tb _0812E7F4\n"
+ "_0812E932:\n"
+ "\tadd sp, 0x28\n"
+ "\tpop {r3-r5}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tmov r10, r5\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0");
+}
+
+#define tEvA data[0]
+#define tEvB data[1]
+#define tEvAEnd data[2]
+#define tEvBEnd data[3]
+#define tEvADelta data[4]
+#define tEvBDelta data[5]
+#define tEvWhich data[6]
+#define tEvStepCount data[8]
+
+void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority)
+{
+ u8 taskId = CreateTask(Task_SmoothBlendLayers, priority);
+ gTasks[taskId].tEvA = eva_start << 8;
+ gTasks[taskId].tEvB = evb_start << 8;
+ gTasks[taskId].tEvAEnd = eva_end;
+ gTasks[taskId].tEvBEnd = evb_end;
+ gTasks[taskId].tEvADelta = (eva_end - eva_start) * 256 / ev_step;
+ gTasks[taskId].tEvBDelta = (evb_end - evb_start) * 256 / ev_step;
+ gTasks[taskId].tEvStepCount = ev_step;
+ SetGpuReg(REG_OFFSET_BLDALPHA, (evb_start << 8) | eva_start);
+}
+
+bool8 IsBlendTaskActive(void)
+{
+ return FuncIsActiveTask(Task_SmoothBlendLayers);
+}
+
+static void Task_SmoothBlendLayers(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (tEvStepCount != 0)
+ {
+ if (tEvWhich == 0)
+ {
+ tEvA += tEvADelta;
+ tEvWhich = 1;
+ }
+ else
+ {
+ if (--tEvStepCount != 0)
+ {
+ tEvB += tEvBDelta;
+ }
+ else
+ {
+ tEvA = tEvAEnd << 8;
+ tEvB = tEvBEnd << 8;
+ }
+ tEvWhich = 0;
+ }
+ SetGpuReg(REG_OFFSET_BLDALPHA, (tEvB & ~0xFF) | ((u16)tEvA >> 8));
+ if (tEvStepCount == 0)
+ DestroyTask(taskId);
+ }
+}
+
+u8 sub_812EA78(u16 species, u32 personality, u8 a2)
+{
+ if (species == SPECIES_UNOWN)
+ {
+ u8 unownLetter = GetUnownLetterByPersonality(personality);
+ switch (unownLetter)
+ {
+ case 0:
+ break;
+ case 26:
+ species = SPECIES_OLD_UNOWN_EMARK;
+ break;
+ case 27:
+ species = SPECIES_OLD_UNOWN_QMARK;
+ break;
+ default:
+ species = SPECIES_OLD_UNOWN_B + unownLetter - 1;
+ break;
+ }
+ }
+ if (species != SPECIES_NONE && a2 < 5)
+ {
+ species--;
+ if (gUnknown_845FD54[species][a2] != 0xFF)
+ return gUnknown_845FD54[species][a2];
+ }
+ return 32;
+}
+
+s8 sub_812EAE4(u16 species, u32 personality, u8 a2)
+{
+ return sub_812EA78(species, personality, a2) - 32;
+}
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index c39d76f25..65f515d1b 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -58,7 +58,7 @@ void sub_8145D18(u8 whichWindow);
void sub_8146060(void);
void sub_81461D8(void);
-extern const struct OamData gUnknown_83AC9F8;
+extern const struct OamData gOamData_83AC9F8;
const struct TextColor gUnknown_8467068[] = {
{0, 2, 3},
@@ -113,7 +113,7 @@ const struct SpritePalette gUnknown_8467F60[] = {
{gUnknown_8467ED4, 0x8000}
};
const struct SpriteTemplate gUnknown_8467FA0 = {
- 0x8000, 0x8000, &gUnknown_83AC9F8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ 0x8000, 0x8000, &gOamData_83AC9F8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
};
const struct UnkStruct_8467FB8 gUnknown_8467FB8[8] = {
{1, 0, 0, 0, gUnknown_846718C, gUnknown_8467288, gUnknown_846708C},
diff --git a/src/oak_speech.c b/src/oak_speech.c
new file mode 100644
index 000000000..f00d683cf
--- /dev/null
+++ b/src/oak_speech.c
@@ -0,0 +1,1891 @@
+#include "global.h"
+#include "main.h"
+#include "decompress.h"
+#include "task.h"
+#include "malloc.h"
+#include "gpu_regs.h"
+#include "wild_encounter.h"
+#include "palette.h"
+#include "blend_palette.h"
+#include "text.h"
+#include "window.h"
+#include "text_window.h"
+#include "bg.h"
+#include "menu.h"
+#include "help_system.h"
+#include "new_menu_helpers.h"
+#include "pokemon_3.h"
+#include "sound.h"
+#include "event_scripts.h"
+#include "scanline_effect.h"
+#include "string_util.h"
+#include "pokeball.h"
+#include "naming_screen.h"
+#include "math_util.h"
+#include "overworld.h"
+#include "random.h"
+#include "oak_speech.h"
+#include "constants/species.h"
+#include "constants/songs.h"
+
+struct OakSpeechResources
+{
+ void * solidColorsGfx;
+ void * trainerPicTilemapBuffer;
+ void * unk_0008;
+ u8 filler_000C[4];
+ u16 unk_0010;
+ u16 unk_0012;
+ u16 unk_0014[4];
+ u8 unk_001C[3];
+ u8 textSpeed;
+ u8 filler_0020[0x1800];
+ u8 bg2TilemapBuffer[0x400];
+ u8 bg1TilemapBuffer[0x800];
+}; //size=0x2420
+
+EWRAM_DATA struct OakSpeechResources * sOakSpeechResources = NULL;
+
+static void Task_OaksSpeech1(u8 taskId);
+static void CreateHelpDocsPage1(void);
+static void Task_OaksSpeech2(u8 taskId);
+static void Task_OakSpeech3(u8 taskId);
+static void Task_OakSpeech5(u8 taskId);
+static void Task_OakSpeech6(u8 taskId);
+static void Task_OakSpeech7(u8 taskId);
+static void Task_OakSpeech8(u8 taskId);
+static void Task_OakSpeech9(u8 taskId);
+static void Task_OakSpeech10(u8 taskId);
+static void Task_OakSpeech10(u8 taskId);
+static void Task_OakSpeech11(u8 taskId);
+static void Task_OakSpeech12(u8 taskId);
+static void Task_OakSpeech13(u8 taskId);
+static void Task_OakSpeech14(u8 taskId);
+static void Task_OakSpeech15(u8 taskId);
+static void Task_OakSpeech16(u8 taskId);
+static void Task_OakSpeech17(u8 taskId);
+static void Task_OakSpeech18(u8 taskId);
+static void Task_OakSpeech19(u8 taskId);
+static void Task_OakSpeech20(u8 taskId);
+static void Task_OakSpeech21(u8 taskId);
+static void Task_OakSpeech22(u8 taskId);
+static void Task_OakSpeech23(u8 taskId);
+static void Task_OakSpeech24(u8 taskId);
+static void Task_OakSpeech29(u8 taskId);
+static void Task_OakSpeech25(u8 taskId);
+static void Task_OakSpeech26(u8 taskId);
+static void Task_OakSpeech27(u8 taskId);
+static void Task_OakSpeech30(u8 taskId);
+static void Task_OakSpeech31(u8 taskId);
+static void Task_OakSpeech32(u8 taskId);
+static void Task_OakSpeech34(u8 taskId);
+static void Task_OakSpeech33(u8 taskId);
+static void Task_OakSpeech36(u8 taskId);
+static void Task_OakSpeech37(u8 taskId);
+static void Task_OakSpeech38(u8 taskId);
+static void Task_OakSpeech38_3(u8 taskId);
+static void Task_OakSpeech39(u8 taskId);
+static void Task_OakSpeech38_1(u8 taskId);
+static void Task_OakSpeech38_sub1(u8 taskId);
+static void Task_OakSpeech38_2(u8 taskId);
+static void Task_OakSpeech38_sub2(u8 taskId);
+static void Task_OakSpeech40(u8 taskId);
+static void Task_OakSpeech41(u8 taskId);
+static void Task_OakSpeech42(u8 taskId);
+
+static void CB2_ReturnFromNamingScreen(void);
+static void CreateNidoranFSprite(u8 taskId);
+static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 state);
+static void DestroyLinkedPikaOrGrassPlatformSprites(u8 taskId, u8 state);
+static void LoadOaksSpeechTrainerPic(u16 whichPic, u16 tileOffset);
+static void DestroyOaksSpeechTrainerPic(void);
+static void CreateFadeInTask(u8 taskId, u8 state);
+static void CreateFadeOutTask(u8 taskId, u8 state);
+static void PrintNameChoiceOptions(u8 taskId, u8 state);
+static void GetDefaultName(u8 arg0, u8 namePick);
+
+extern const u8 gText_Controls[];
+extern const u8 gText_ABUTTONNext[];
+extern const u8 gText_ABUTTONNext_BBUTTONBack[];
+extern const u8 gText_Boy[];
+extern const u8 gText_Girl[];
+
+extern const struct CompressedSpriteSheet gUnknown_8235194[];
+extern const struct CompressedSpritePalette gUnknown_82373F4;
+
+ALIGNED(4) static const u16 sHelpDocsPalette[] = INCBIN_U16("data/oak_speech/help_docs_palette.gbapal");
+static const u32 sOakSpeechGfx_GameStartHelpUI[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_game_start_help_u_i.4bpp.lz");
+static const u32 sNewGameAdventureIntroTilemap[] = INCBIN_U32("data/oak_speech/new_game_adventure_intro_tilemap.bin.lz");
+static const u32 sOakSpeechGfx_SolidColors[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_solid_colors.4bpp.lz");
+static const u32 sOakSpeech_BackgroundTilemap[] = INCBIN_U32("data/oak_speech/oak_speech_background_tilemap.bin.lz");
+static const u16 sHelpDocsPage2Tilemap[] = INCBIN_U16("data/oak_speech/help_docs_page2_tilemap.bin");
+static const u16 sHelpDocsPage3Tilemap[] = INCBIN_U16("data/oak_speech/help_docs_page3_tilemap.bin");
+static const u16 sOakSpeechGfx_LeafPal[] = INCBIN_U16("data/oak_speech/oak_speech_gfx_leaf_pal.gbapal");
+static const u32 sOakSpeechGfx_LeafPic[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_leaf_pic.8bpp.lz");
+static const u16 sOakSpeechGfx_RedPal[] = INCBIN_U16("data/oak_speech/oak_speech_gfx_red_pal.gbapal");
+static const u32 sOakSpeechGfx_RedPic[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_red_pic.8bpp.lz");
+static const u16 sOakSpeechGfx_OakPal[] = INCBIN_U16("data/oak_speech/oak_speech_gfx_oak_pal.gbapal");
+static const u32 sOakSpeechGfx_OakPic[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_oak_pic.8bpp.lz");
+static const u16 sOakSpeechGfx_RivalPal[] = INCBIN_U16("data/oak_speech/oak_speech_gfx_rival_pal.gbapal");
+static const u32 sOakSpeechGfx_RivalPic[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_rival_pic.8bpp.lz");
+static const u16 sOakSpeech_GrassPlatformPalette[] = INCBIN_U16("data/oak_speech/oak_speech_grass_platform_palette.gbapal");
+static const u16 sOakSpeech_PikaPalette[] = INCBIN_U16("data/oak_speech/oak_speech_pika_palette.gbapal");
+static const u32 sOakSpeechGfx_GrassPlatform[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_grass_platform.4bpp.lz");
+static const u32 sOakSpeechGfx_Pika1[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_pika1.4bpp.lz");
+static const u32 sOakSpeechGfx_Pika2[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_pika2.4bpp.lz");
+static const u32 sOakSpeechGfx_PikaEyes[] = INCBIN_U32("data/oak_speech/oak_speech_gfx_pika_eyes.4bpp.lz");
+
+static const struct BgTemplate sBgTemplates[3] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }, {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x000
+ }, {
+ .bg = 2,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 28,
+ .screenSize = 1,
+ .paletteMode = 1,
+ .priority = 1,
+ .baseTile = 0x000
+ }
+};
+
+static const struct WindowTemplate sHelpDocsWindowTemplates1[] = {
+ {
+ .priority = 0x00,
+ .tilemapLeft = 0x00,
+ .tilemapTop = 0x07,
+ .width = 0x1e,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0001
+ }, DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sHelpDocsWindowTemplates2[] = {
+ {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x03,
+ .width = 0x18,
+ .height = 0x06,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0001
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0a,
+ .width = 0x18,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0092
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0f,
+ .width = 0x18,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x00f3
+ }, DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sHelpDocsWindowTemplates3[] = {
+ {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x03,
+ .width = 0x18,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0001
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x08,
+ .width = 0x18,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0062
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0d,
+ .width = 0x18,
+ .height = 0x06,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x00c3
+ }, DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate *const sHelpDocsWindowTemplatePtrs[3] = {
+ sHelpDocsWindowTemplates1,
+ sHelpDocsWindowTemplates2,
+ sHelpDocsWindowTemplates3
+};
+
+static const struct WindowTemplate sNewGameAdventureIntroWindowTemplates[] = {
+ {
+ .priority = 0x00,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x04,
+ .width = 0x1c,
+ .height = 0x0f,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0001
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x12,
+ .tilemapTop = 0x09,
+ .width = 0x09,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0174
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x02,
+ .tilemapTop = 0x02,
+ .width = 0x06,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0180
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x02,
+ .tilemapTop = 0x02,
+ .width = 0x0c,
+ .height = 0x0a,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0001
+ }, DUMMY_WIN_TEMPLATE
+};
+
+ALIGNED(4) const struct TextColor sTextColor_HelpSystem = {
+ 0x00, 0x01, 0x02
+};
+
+ALIGNED(4) const struct TextColor sTextColor_OakSpeech = {
+ 0x00, 0x02, 0x03
+};
+
+static const u8 *const sNewGameAdventureIntroTextPointers[] = {
+ gNewGameAdventureIntro1,
+ gNewGameAdventureIntro2,
+ gNewGameAdventureIntro3
+};
+
+static const struct CompressedSpriteSheet sOakSpeech_PikaSpriteSheets[3] = {
+ { (const void *)sOakSpeechGfx_Pika1, 0x0400, 0x1001 },
+ { (const void *)sOakSpeechGfx_Pika2, 0x0200, 0x1002 },
+ { (const void *)sOakSpeechGfx_PikaEyes, 0x0080, 0x1003 },
+};
+
+static const struct CompressedSpriteSheet sOakSpeech_GrassPlatformSpriteSheet = {
+ (const void *)sOakSpeechGfx_GrassPlatform, 0x0600, 0x1000
+};
+
+static const struct SpritePalette sOakSpeech_PikaSpritePal = {
+ (const void *)sOakSpeech_PikaPalette, 0x1001
+};
+
+static const struct SpritePalette sOakSpeech_GrassPlatformSpritePal = {
+ (const void *)sOakSpeech_GrassPlatformPalette, 0x1000
+};
+
+static const union AnimCmd sGrassPlatformAnim1[] = {
+ ANIMCMD_FRAME( 0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sGrassPlatformAnim2[] = {
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sGrassPlatformAnim3[] = {
+ ANIMCMD_FRAME(32, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sGrassPlatformAnims1[] = {
+ sGrassPlatformAnim1
+};
+static const union AnimCmd *const sGrassPlatformAnims2[] = {
+ sGrassPlatformAnim2
+};
+static const union AnimCmd *const sGrassPlatformAnims3[] = {
+ sGrassPlatformAnim3
+};
+
+extern const struct OamData gOamData_83ACAF8;
+
+static const struct SpriteTemplate sOakSpeech_GrassPlatformSpriteTemplates[3] = {
+ { 0x1000, 0x1000, &gOamData_83ACAF8, sGrassPlatformAnims1, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+ { 0x1000, 0x1000, &gOamData_83ACAF8, sGrassPlatformAnims2, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+ { 0x1000, 0x1000, &gOamData_83ACAF8, sGrassPlatformAnims3, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+};
+
+static const union AnimCmd sPikaAnim1[] = {
+ ANIMCMD_FRAME( 0, 30),
+ ANIMCMD_FRAME(16, 30),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd sPikaAnim2[] = {
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd sPikaAnim3[] = {
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(0, 60),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd *const sPikaAnims1[] = {
+ sPikaAnim1
+};
+static const union AnimCmd *const sPikaAnims2[] = {
+ sPikaAnim2
+};
+static const union AnimCmd *const sPikaAnims3[] = {
+ sPikaAnim3
+};
+
+extern const struct OamData gOamData_83AC9D8;
+extern const struct OamData gOamData_83AC9F8;
+extern const struct OamData gOamData_83AC9E8;
+
+static const struct SpriteTemplate sOakSpeech_PikaSpriteTemplates[3] = {
+ { 0x1001, 0x1001, &gOamData_83AC9D8, sPikaAnims1, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+ { 0x1002, 0x1001, &gOamData_83AC9F8, sPikaAnims2, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+ { 0x1003, 0x1001, &gOamData_83AC9E8, sPikaAnims3, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }
+};
+
+static const u8 *const sHelpDocsPtrs[] = {
+ gNewGame_HelpDocs2, gNewGame_HelpDocs3, gNewGame_HelpDocs4,
+ gNewGame_HelpDocs5, gNewGame_HelpDocs6, gNewGame_HelpDocs7
+};
+
+static const u8 *const sMaleNameChoices[] = {
+ gNameChoice_Red,
+ gNameChoice_Fire,
+ gNameChoice_Ash,
+ gNameChoice_Kene,
+ gNameChoice_Geki,
+ gNameChoice_Jak,
+ gNameChoice_Janne,
+ gNameChoice_Jonn,
+ gNameChoice_Kamon,
+ gNameChoice_Karl,
+ gNameChoice_Taylor,
+ gNameChoice_Oscar,
+ gNameChoice_Hiro,
+ gNameChoice_Max,
+ gNameChoice_Jon,
+ gNameChoice_Ralph,
+ gNameChoice_Kay,
+ gNameChoice_Tosh,
+ gNameChoice_Roak
+};
+
+static const u8 *const sFemaleNameChoices[] = {
+ gNameChoice_Red,
+ gNameChoice_Fire,
+ gNameChoice_Omi,
+ gNameChoice_Jodi,
+ gNameChoice_Amanda,
+ gNameChoice_Hillary,
+ gNameChoice_Makey,
+ gNameChoice_Michi,
+ gNameChoice_Paula,
+ gNameChoice_June,
+ gNameChoice_Cassie,
+ gNameChoice_Rey,
+ gNameChoice_Seda,
+ gNameChoice_Kiko,
+ gNameChoice_Mina,
+ gNameChoice_Norie,
+ gNameChoice_Sai,
+ gNameChoice_Momo,
+ gNameChoice_Suzi
+};
+
+static const u8 *const sRivalNameChoices[] = {
+ gNameChoice_Green,
+ gNameChoice_Gary,
+ gNameChoice_Kaz,
+ gNameChoice_Toru
+};
+
+static void VBlankCB_NewGameOaksSpeech(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void CB2_NewGameOaksSpeech(void)
+{
+ RunTasks();
+ RunTextPrinters();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void StartNewGameScene(void)
+{
+ gPlttBufferUnfaded[0] = RGB_BLACK;
+ gPlttBufferFaded[0] = RGB_BLACK;
+ CreateTask(Task_OaksSpeech1, 0);
+ SetMainCallback2(CB2_NewGameOaksSpeech);
+}
+
+static void Task_OaksSpeech1(u8 taskId)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ SetHBlankCallback(NULL);
+ DmaFill16(3, 0, VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, OAM, OAM_SIZE);
+ DmaFill16(3, 0, PLTT + sizeof(u16), PLTT_SIZE - 2);
+ ResetPaletteFade();
+ ScanlineEffect_Stop();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ reset_temp_tile_data_buffers();
+ HelpSystem_SetSomeVariable2(2);
+ break;
+ case 1:
+ sOakSpeechResources = AllocZeroed(sizeof(*sOakSpeechResources));
+ SetUpMonSpriteManagerMaybe(1, 1);
+ break;
+ case 2:
+ SetGpuReg(REG_OFFSET_WIN0H, 0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0);
+ SetGpuReg(REG_OFFSET_WIN1H, 0);
+ SetGpuReg(REG_OFFSET_WIN1V, 0);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ break;
+ case 3:
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(1, sBgTemplates, NELEMS(sBgTemplates));
+ SetBgTilemapBuffer(1, sOakSpeechResources->bg1TilemapBuffer);
+ SetBgTilemapBuffer(2, sOakSpeechResources->bg2TilemapBuffer);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ gSpriteCoordOffsetX = 0;
+ gSpriteCoordOffsetY = 0;
+ break;
+ case 4:
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ InitStandardTextBoxWindows();
+ ResetBg0();
+ Menu_LoadStdPalAt(0xD0);
+ LoadPalette(sHelpDocsPalette, 0x000, 0x080);
+ LoadPalette(stdpal_get(2) + 15, 0x000, 0x002);
+ break;
+ case 5:
+ sOakSpeechResources->textSpeed = GetTextSpeedSetting();
+ gTextFlags.flag_0 = TRUE;
+ decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_GameStartHelpUI, 0, 0, 0);
+ break;
+ case 6:
+ if (free_temp_tile_data_buffers_if_possible())
+ return;
+ ClearDialogWindowAndFrame(0, 1);
+ FillBgTilemapBufferRect_Palette0(1, 0x0000, 0, 0, 32, 32);
+ CopyBgTilemapBufferToVram(1);
+ break;
+ case 7:
+ CreateWindow_SnapRight_StdPal(0, 30, 0, 13, 0x1C4);
+ FillBgTilemapBufferRect_Palette0(1, 0xD00F, 0, 0, 30, 2);
+ FillBgTilemapBufferRect_Palette0(1, 0xD002, 0, 2, 30, 1);
+ FillBgTilemapBufferRect_Palette0(1, 0xD00E, 0, 19, 30, 1);
+ CreateHelpDocsPage1();
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ gTasks[taskId].data[5] = CreateTextCursorSpriteForOakSpeech(0, 0xE6, 0x95, 0, 0);
+ BlendPalettes(0xFFFFFFFF, 0x10, 0x00);
+ break;
+ case 10:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
+ ShowBg(0);
+ ShowBg(1);
+ SetVBlankCallback(VBlankCB_NewGameOaksSpeech);
+ PlayBGM(BGM_FRLG_GAME_EXPLANATION_START);
+ gTasks[taskId].func = Task_OaksSpeech2;
+ gMain.state = 0;
+ return;
+ }
+
+ gMain.state++;
+}
+
+static void CreateHelpDocsPage1(void)
+{
+ Menu_PrintHelpSystemUIHeader(gText_Controls, gText_ABUTTONNext, 0, 0, 1);
+ sOakSpeechResources->unk_0014[0] = AddWindow(sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012]);
+ PutWindowTilemap(sOakSpeechResources->unk_0014[0]);
+ FillWindowPixelBuffer(sOakSpeechResources->unk_0014[0], 0x00);
+ AddTextPrinterParametrized2(sOakSpeechResources->unk_0014[0], 2, 2, 0, 1, 1, &sTextColor_HelpSystem, 0, gNewGame_HelpDocs1);
+ CopyWindowToVram(sOakSpeechResources->unk_0014[0], 3);
+ FillBgTilemapBufferRect_Palette0(1, 0x3000, 1, 3, 5, 16);
+ CopyBgTilemapBufferToVram(1);
+}
+
+static void Task_OakSpeech4(u8 taskId)
+{
+ u8 i = 0;
+ u8 r7 = sOakSpeechResources->unk_0012 - 1;
+ if (sOakSpeechResources->unk_0012 == 0)
+ {
+ CreateHelpDocsPage1();
+ }
+ else
+ {
+ PrintTextOnRightSnappedWindow(gText_ABUTTONNext_BBUTTONBack, 0, 1);
+ for (i = 0; i < 3; i++)
+ {
+ sOakSpeechResources->unk_0014[i] = AddWindow(&sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012][i]);
+ PutWindowTilemap(sOakSpeechResources->unk_0014[i]);
+ FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
+ AddTextPrinterParametrized2(sOakSpeechResources->unk_0014[i], 2, 6, 0, 1, 1, &sTextColor_HelpSystem, 0, sHelpDocsPtrs[i + r7 * 3]);
+ CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
+ }
+
+ if (sOakSpeechResources->unk_0012 == 1)
+ {
+ CopyToBgTilemapBufferRect(1, sHelpDocsPage2Tilemap, 1, 3, 5, 16);
+ }
+ else
+ {
+ CopyToBgTilemapBufferRect(1, sHelpDocsPage3Tilemap, 1, 3, 5, 16);
+ }
+ CopyBgTilemapBufferToVram(1);
+ }
+ BeginNormalPaletteFade(0xFFFFDFFF, -1, 16, 0, stdpal_get(2)[15]);
+ gTasks[taskId].func = Task_OaksSpeech2;
+}
+
+static void Task_OaksSpeech2(u8 taskId)
+{
+ if (!gPaletteFade.active && JOY_NEW((A_BUTTON | B_BUTTON)))
+ {
+ if (JOY_NEW(A_BUTTON))
+ {
+ gTasks[taskId].data[15] = 1;
+ if (sOakSpeechResources->unk_0012 < 2)
+ {
+ BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]);
+ }
+ }
+ else
+ {
+ if (sOakSpeechResources->unk_0012 != 0)
+ {
+ gTasks[taskId].data[15] = -1;
+ BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]);
+ }
+ else
+ return;
+ }
+ }
+ else
+ return;
+ PlaySE(SE_SELECT);
+ gTasks[taskId].func = Task_OakSpeech3;
+}
+
+static void Task_OakSpeech3(u8 taskId)
+{
+ u8 r8 = 0;
+ u8 i;
+
+ if (!gPaletteFade.active)
+ {
+ switch (sOakSpeechResources->unk_0012) {
+ case 0:
+ r8 = 1;
+ break;
+ case 1:
+ case 2:
+ r8 = 3;
+ break;
+ }
+ sOakSpeechResources->unk_0012 += gTasks[taskId].data[15];
+ if (sOakSpeechResources->unk_0012 < 3)
+ {
+ for (i = 0; i < r8; i++)
+ {
+ FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
+ ClearWindowTilemap(sOakSpeechResources->unk_0014[i]);
+ CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
+ RemoveWindow(sOakSpeechResources->unk_0014[i]);
+ sOakSpeechResources->unk_0014[i] = 0;
+ }
+ gTasks[taskId].func = Task_OakSpeech4;
+ }
+ else
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, 0);
+ gTasks[taskId].func = Task_OakSpeech5;
+ }
+ }
+}
+
+static void Task_OakSpeech5(u8 taskId)
+{
+ u8 i = 0;
+
+ if (!gPaletteFade.active)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
+ ClearWindowTilemap(sOakSpeechResources->unk_0014[i]);
+ CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
+ RemoveWindow(sOakSpeechResources->unk_0014[i]);
+ sOakSpeechResources->unk_0014[i] = 0;
+ }
+ FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 18);
+ CopyBgTilemapBufferToVram(1);
+ sub_8006398(gTasks[taskId].data[5]);
+ sOakSpeechResources->unk_0014[0] = RGB_BLACK;
+ LoadPalette(sOakSpeechResources->unk_0014, 0, 2);
+ gTasks[taskId].data[3] = 32;
+ gTasks[taskId].func = Task_OakSpeech6;
+ }
+}
+
+static void Task_OakSpeech6(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u32 sp14 = 0;
+
+ if (data[3] != 0)
+ data[3]--;
+ else
+ {
+ PlayBGM(BGM_FRLG_GAME_EXPLANATION_MIDDLE);
+ sub_810F71C();
+ PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1);
+ sOakSpeechResources->unk_0008 = malloc_and_decompress(sNewGameAdventureIntroTilemap, &sp14);
+ CopyToBgTilemapBufferRect(1, sOakSpeechResources->unk_0008, 0, 2, 30, 19);
+ CopyBgTilemapBufferToVram(1);
+ Free(sOakSpeechResources->unk_0008);
+ sOakSpeechResources->unk_0008 = NULL;
+ data[14] = AddWindow(&sNewGameAdventureIntroWindowTemplates[0]);
+ PutWindowTilemap(data[14]);
+ FillWindowPixelBuffer(data[14], 0x00);
+ CopyWindowToVram(data[14], 3);
+ sOakSpeechResources->unk_0012 = 0;
+ gMain.state = 0;
+ data[15] = 16;
+ AddTextPrinterParametrized2(data[14], 2, 3, 5, 1, 0, &sTextColor_OakSpeech, 0, sNewGameAdventureIntroTextPointers[0]);
+ data[5] = CreateTextCursorSpriteForOakSpeech(0, 0xe2, 0x91, 0, 0);
+ gSprites[data[5]].oam.objMode = ST_OAM_OBJ_BLEND;
+ gSprites[data[5]].oam.priority = 0;
+ CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 0);
+ BeginNormalPaletteFade(0xFFFFFFFF, 2, 16, 0, 0);
+ gTasks[taskId].func = Task_OakSpeech7;
+ }
+}
+
+static void Task_OakSpeech7(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ switch (gMain.state)
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ SetGpuReg(REG_OFFSET_WIN0H, 0x00F0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0x10A0);
+ SetGpuReg(REG_OFFSET_WININ, 0x003F);
+ SetGpuReg(REG_OFFSET_WINOUT, 0x001F);
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
+ gMain.state = 1;
+ }
+ break;
+ case 1:
+ if (JOY_NEW((A_BUTTON | B_BUTTON)))
+ {
+ if (JOY_NEW(A_BUTTON))
+ {
+ sOakSpeechResources->unk_0012++;
+ }
+ else if (sOakSpeechResources->unk_0012 != 0)
+ {
+ sOakSpeechResources->unk_0012--;
+ }
+ else
+ {
+ break;
+ }
+ PlaySE(SE_SELECT);
+ if (sOakSpeechResources->unk_0012 == 3)
+ {
+ gMain.state = 4;
+ }
+ else
+ {
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1);
+ SetGpuReg(REG_OFFSET_BLDALPHA, (16 - data[15]) | data[15]);
+ gMain.state++;
+ }
+ }
+ break;
+ case 2:
+ data[15] -= 2;
+ SetGpuReg(REG_OFFSET_BLDALPHA, ((16 - data[15]) << 8) | data[15]);
+ if (data[15] <= 0)
+ {
+ FillWindowPixelBuffer(data[14], 0x00);
+ AddTextPrinterParametrized2(data[14], 2, 3, 5, 1, 0, &sTextColor_OakSpeech, 0, sNewGameAdventureIntroTextPointers[sOakSpeechResources->unk_0012]);
+ if (sOakSpeechResources->unk_0012 == 0)
+ {
+ sub_810F71C();
+ PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1);
+ }
+ else
+ {
+ sub_810F71C();
+ PrintTextOnRightSnappedWindow(gText_ABUTTONNext_BBUTTONBack, 0, 1);
+ }
+ gMain.state++;
+ }
+ break;
+ case 3:
+ data[15] += 2;
+ SetGpuReg(REG_OFFSET_BLDALPHA, ((16 - data[15]) << 8) | data[15]);
+ if (data[15] >= 16)
+ {
+ data[15] = 16;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ gMain.state = 1;
+ }
+ break;
+ case 4:
+ sub_8006398(gTasks[taskId].data[5]);
+ PlayBGM(BGM_FRLG_GAME_EXPLANATION_END);
+ data[15] = 24;
+ gMain.state++;
+ break;
+ default:
+ if (data[15] != 0)
+ data[15]--;
+ else
+ {
+ gMain.state = 0;
+ sOakSpeechResources->unk_0012 = 0;
+ SetGpuReg(REG_OFFSET_WIN0H, 0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
+ BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, RGB_BLACK);
+ gTasks[taskId].func = Task_OakSpeech8;
+ }
+ break;
+ }
+}
+
+static void Task_OakSpeech8(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ sub_810F740();
+ FillWindowPixelBuffer(data[14], 0x00);
+ ClearWindowTilemap(data[14]);
+ CopyWindowToVram(data[14], 3);
+ RemoveWindow(data[14]);
+ data[14] = 0;
+ FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
+ CopyBgTilemapBufferToVram(1);
+ DestroyLinkedPikaOrGrassPlatformSprites(taskId, 0);
+ data[3] = 80;
+ gTasks[taskId].func = Task_OakSpeech9;
+ }
+}
+
+static void Task_OakSpeech9(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u32 size = 0;
+
+ if (data[3] != 0)
+ data[3]--;
+ else
+ {
+ sOakSpeechResources->solidColorsGfx = malloc_and_decompress(sOakSpeechGfx_SolidColors, &size);
+ LoadBgTiles(1, sOakSpeechResources->solidColorsGfx, size, 0);
+ CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0);
+ CopyBgTilemapBufferToVram(1);
+ CreateNidoranFSprite(taskId);
+ LoadOaksSpeechTrainerPic(3, 0);
+ CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1);
+ PlayBGM(BGM_FRLG_ROUTE_24);
+ BeginNormalPaletteFade(0xFFFFFFFF, 5, 16, 0, RGB_BLACK);
+ data[3] = 80;
+ ShowBg(2);
+ gTasks[taskId].func = Task_OakSpeech10;
+ }
+}
+
+#define OaksSpeechPrintMessage(str, speed) ({ \
+ DrawDialogueFrame(0, FALSE);\
+ if (str != gStringVar4) \
+ { \
+ StringExpandPlaceholders(gStringVar4, str); \
+ AddTextPrinterParametrized(0, 4, gStringVar4, speed, NULL, 2, 1, 3); \
+ } \
+ else \
+ { \
+ AddTextPrinterParametrized(0, 4, str, speed, NULL, 2, 1, 3); \
+ } \
+ CopyWindowToVram(0, 3); \
+})
+
+static void Task_OakSpeech10(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ if (data[3] != 0)
+ data[3]--;
+ else
+ {
+ OaksSpeechPrintMessage(gOakText_WelcomeToTheWorld, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech11;
+ }
+ }
+}
+
+static void Task_OakSpeech11(u8 taskId)
+{
+ if (!IsTextPrinterActive(0))
+ {
+ OaksSpeechPrintMessage(gOakText_WorldInhabited1, sOakSpeechResources->textSpeed);
+ gTasks[taskId].data[3] = 30;
+ gTasks[taskId].func = Task_OakSpeech12;
+ }
+}
+
+static void Task_OakSpeech12(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u8 spriteId;
+
+ if (!IsTextPrinterActive(0))
+ {
+ if (data[3] != 0)
+ data[3]--;
+ // else {
+ spriteId = gTasks[taskId].data[4];
+ gSprites[spriteId].invisible = FALSE;
+ gSprites[spriteId].data[0] = 0;
+ CreatePokeballSpriteToReleaseMon(spriteId, gSprites[spriteId].oam.paletteNum, 0x64, 0x42, 0, 0, 32, 0xFFFF1FFF);
+ gTasks[taskId].func = Task_OakSpeech13;
+ gTasks[taskId].data[3] = 0;
+ // }
+ }
+}
+
+static void Task_OakSpeech13(u8 taskId)
+{
+ if (IsCryFinished())
+ {
+ if (gTasks[taskId].data[3] >= 96)
+ gTasks[taskId].func = Task_OakSpeech14;
+ }
+ if (gTasks[taskId].data[3] < 0x4000)
+ {
+ gTasks[taskId].data[3]++;
+ if (gTasks[taskId].data[3] == 32)
+ {
+ OaksSpeechPrintMessage(gOakText_WorldInhabited2, sOakSpeechResources->textSpeed);
+ PlayCry1(SPECIES_NIDORAN_F, 0);
+ }
+ }
+}
+
+static void Task_OakSpeech14(u8 taskId)
+{
+ if (!IsTextPrinterActive(0))
+ {
+ OaksSpeechPrintMessage(gOakText_PetsBattlingStudy, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech15;
+ }
+}
+
+static void Task_OakSpeech15(u8 taskId)
+{
+ u8 spriteId;
+
+ if (!IsTextPrinterActive(0))
+ {
+ ClearDialogWindowAndFrame(0, 1);
+ spriteId = gTasks[taskId].data[4];
+ gTasks[taskId].data[6] = sub_804BB98(spriteId, gSprites[spriteId].oam.paletteNum, 0x64, 0x42, 0, 0, 32, 0xFFFF1F3F);
+ gTasks[taskId].data[3] = 48;
+ gTasks[taskId].data[0] = 64;
+ gTasks[taskId].func = Task_OakSpeech16;
+ }
+}
+
+static void Task_OakSpeech16(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (data[0] != 0)
+ {
+ if (data[0] < 24)
+ {
+ gSprites[data[4]].pos1.y--;
+ }
+ data[0]--;
+ }
+ else
+ {
+ if (data[3] == 48)
+ {
+ DestroySprite(&gSprites[data[4]]);
+ DestroySprite(&gSprites[data[6]]);
+ }
+ if (data[3] != 0)
+ {
+ data[3]--;
+ }
+ else
+ {
+ OaksSpeechPrintMessage(gOakText_TellMeALittleAboutYourself, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech17;
+ }
+ }
+}
+
+static void Task_OakSpeech17(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!IsTextPrinterActive(0))
+ {
+ ClearDialogWindowAndFrame(0, 1);
+ CreateFadeInTask(taskId, 2);
+ data[3] = 48;
+ gTasks[taskId].func = Task_OakSpeech18;
+ }
+}
+
+static void Task_OakSpeech18(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (data[2] != 0)
+ {
+ if (data[3] != 0)
+ data[3]--;
+ else
+ {
+ data[1] = -60;
+ DestroyOaksSpeechTrainerPic();
+ OaksSpeechPrintMessage(gOakText_AskPlayerGender, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech19;
+ }
+ }
+}
+
+static void Task_OakSpeech19(u8 taskId)
+{
+ if (!IsTextPrinterActive(0))
+ {
+ gTasks[taskId].data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[1]);
+ PutWindowTilemap(gTasks[taskId].data[13]);
+ SetWindowBorderStyle(gTasks[taskId].data[13], 1, sub_80F796C(), 14);
+ FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
+ sOakSpeechResources->unk_001C[0] = 1;
+ sOakSpeechResources->unk_001C[1] = 2;
+ sOakSpeechResources->unk_001C[2] = 3;
+ box_print(gTasks[taskId].data[13], 2, 8, 1, sOakSpeechResources->unk_001C, 0, gText_Boy);
+ sOakSpeechResources->unk_001C[0] = 1;
+ sOakSpeechResources->unk_001C[1] = 2;
+ sOakSpeechResources->unk_001C[2] = 3;
+ box_print(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->unk_001C, 0, gText_Girl);
+ ProgramAndPlaceMenuCursorOnWindow(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0);
+ CopyWindowToVram(gTasks[taskId].data[13], 3);
+ gTasks[taskId].func = Task_OakSpeech20;
+ }
+}
+
+static void Task_OakSpeech20(u8 taskId)
+{
+ s8 input = ProcessMenuInputNoWrapAround();
+ switch (input)
+ {
+ case 0:
+ gSaveBlock2Ptr->playerGender = MALE;
+ break;
+ case 1:
+ gSaveBlock2Ptr->playerGender = FEMALE;
+ break;
+ case -1:
+ case -2:
+ return;
+ }
+ gTasks[taskId].func = Task_OakSpeech21;
+
+}
+
+static void Task_OakSpeech21(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ sub_810F4D8(data[13], 1);
+ RemoveWindow(data[13]);
+ data[13] = 0;
+ ClearDialogWindowAndFrame(0, 1);
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
+ CopyBgTilemapBufferToVram(0);
+ gTasks[taskId].func = Task_OakSpeech22;
+}
+
+static void Task_OakSpeech22(u8 taskId)
+{
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ LoadOaksSpeechTrainerPic(MALE, 0);
+ else
+ LoadOaksSpeechTrainerPic(FEMALE, 0);
+ CreateFadeOutTask(taskId, 2);
+ gTasks[taskId].data[3] = 32;
+ gTasks[taskId].func = Task_OakSpeech23;
+}
+
+static void Task_OakSpeech23(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (data[2] != 0)
+ {
+ if (data[3] != 0)
+ data[3]--;
+ else
+ {
+ data[1] = 0;
+ OaksSpeechPrintMessage(gOakText_AskPlayerName, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech24;
+ }
+ }
+}
+
+static void Task_OakSpeech24(u8 taskId)
+{
+ if (!IsTextPrinterActive(0))
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ sOakSpeechResources->unk_0010 = 0;
+ gTasks[taskId].func = Task_OakSpeech25;
+ }
+}
+static void Task_OakSpeech35(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!IsTextPrinterActive(0))
+ {
+ if (data[1] > -60)
+ {
+ data[1] -= 2;
+ gSpriteCoordOffsetX += 2;
+ ChangeBgX(2, 0x200, 2);
+ }
+ else
+ {
+ data[1] = -60;
+ PrintNameChoiceOptions(taskId, sOakSpeechResources->unk_0010);
+ gTasks[taskId].func = Task_OakSpeech29;
+ }
+ }
+}
+
+static void Task_OakSpeech28(u8 taskId)
+{
+ PrintNameChoiceOptions(taskId, sOakSpeechResources->unk_0010);
+ if (sOakSpeechResources->unk_0010 == 0)
+ {
+ OaksSpeechPrintMessage(gOakText_AskPlayerName, 0);
+ }
+ else
+ {
+ OaksSpeechPrintMessage(gOakText_AskRivalName, 0);
+ }
+ gTasks[taskId].func = Task_OakSpeech29;
+}
+
+static void Task_OakSpeech29(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ s8 input = ProcessMenuInput();
+ switch (input)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ PlaySE(SE_SELECT);
+ sub_810F4D8(data[13], TRUE);
+ RemoveWindow(data[13]);
+ GetDefaultName(sOakSpeechResources->unk_0010, input - 1);
+ data[15] = 1;
+ gTasks[taskId].func = Task_OakSpeech26;
+ break;
+ case 0:
+ PlaySE(SE_SELECT);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gTasks[taskId].func = Task_OakSpeech25;
+ break;
+ case -1:
+ break;
+ }
+}
+
+static void Task_OakSpeech25(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ GetDefaultName(sOakSpeechResources->unk_0010, 0);
+ if (sOakSpeechResources->unk_0010 == 0)
+ {
+ DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnFromNamingScreen);
+ }
+ else
+ {
+ sub_810F4D8(gTasks[taskId].data[13], 1);
+ RemoveWindow(gTasks[taskId].data[13]);
+ DoNamingScreen(4, gSaveBlock1Ptr->rivalName, 0, 0, 0, CB2_ReturnFromNamingScreen);
+ }
+ DestroyLinkedPikaOrGrassPlatformSprites(taskId, 1);
+ FreeAllWindowBuffers();
+ }
+}
+
+static void Task_OakSpeech26(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ if (data[15] == 1)
+ {
+ if (sOakSpeechResources->unk_0010 == 0)
+ {
+ StringExpandPlaceholders(gStringVar4, gOakText_FinalizePlayerName);
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gOakText_ConfirmRivalName);
+ }
+ OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed);
+ data[15] = 0;
+ data[3] = 25;
+ }
+ else if (!IsTextPrinterActive(0))
+ {
+ if (data[3] != 0)
+ data[3]--;
+ else
+ {
+ sub_810FF60(&sNewGameAdventureIntroWindowTemplates[2], 2, 0, 2, sub_80F796C(), 14, 0);
+ gTasks[taskId].func = Task_OakSpeech27;
+ }
+ }
+ }
+}
+
+static void Task_OakSpeech27(u8 taskId)
+{
+ s8 input = ProcessMenuInputNoWrap_();
+ switch (input)
+ {
+ case 0:
+ PlaySE(SE_SELECT);
+ gTasks[taskId].data[3] = 40;
+ if (sOakSpeechResources->unk_0010 == 0)
+ {
+ ClearDialogWindowAndFrame(0, 1);
+ CreateFadeInTask(taskId, 2);
+ gTasks[taskId].func = Task_OakSpeech30;
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gOakText_RememberRivalName);
+ OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech31;
+ }
+ break;
+ case 1:
+ case -1:
+ PlaySE(SE_SELECT);
+ if (sOakSpeechResources->unk_0010 == 0)
+ gTasks[taskId].func = Task_OakSpeech24;
+ else
+ gTasks[taskId].func = Task_OakSpeech28;
+ break;
+ }
+}
+
+static void Task_OakSpeech30(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (data[2] != 0)
+ {
+ DestroyOaksSpeechTrainerPic();
+ if (data[3] != 0)
+ data[3]--;
+ else
+ gTasks[taskId].func = Task_OakSpeech32;
+ }
+}
+
+static void Task_OakSpeech31(u8 taskId)
+{
+ if (!IsTextPrinterActive(0))
+ {
+ ClearDialogWindowAndFrame(0, 1);
+ CreateFadeInTask(taskId, 2);
+ gTasks[taskId].func = Task_OakSpeech33;
+ }
+}
+
+static void Task_OakSpeech32(u8 taskId)
+{
+ ChangeBgX(2, 0, 0);
+ gTasks[taskId].data[1] = 0;
+ gSpriteCoordOffsetX = 0;
+ LoadOaksSpeechTrainerPic(2, 0);
+ CreateFadeOutTask(taskId, 2);
+ gTasks[taskId].func = Task_OakSpeech34;
+}
+
+static void Task_OakSpeech34(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (data[2] != 0)
+ {
+ OaksSpeechPrintMessage(gOakText_IntroduceRival, sOakSpeechResources->textSpeed);
+ sOakSpeechResources->unk_0010 = 1;
+ gTasks[taskId].func = Task_OakSpeech35;
+ }
+}
+
+static void Task_OakSpeech33(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (data[2] != 0)
+ {
+ DestroyOaksSpeechTrainerPic();
+ if (data[3] != 0)
+ data[3]--;
+ else
+ {
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ LoadOaksSpeechTrainerPic(MALE, 0);
+ else
+ LoadOaksSpeechTrainerPic(FEMALE, 0);
+ gTasks[taskId].data[1] = 0;
+ gSpriteCoordOffsetX = 0;
+ ChangeBgX(2, 0, 0);
+ CreateFadeOutTask(taskId, 2);
+ gTasks[taskId].func = Task_OakSpeech36;
+ }
+ }
+}
+
+static void Task_OakSpeech36(u8 taskId)
+{
+ if (gTasks[taskId].data[2] != 0)
+ {
+ StringExpandPlaceholders(gStringVar4, gOakText_LegendAboutToUnfold);
+ OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed);
+ gTasks[taskId].data[3] = 30;
+ gTasks[taskId].func = Task_OakSpeech37;
+ }
+}
+
+static void Task_OakSpeech37(u8 taskId)
+{
+ if (!IsTextPrinterActive(0))
+ {
+ if (gTasks[taskId].data[3] != 0)
+ gTasks[taskId].data[3]--;
+ else
+ {
+ FadeOutBGM(4);
+ gTasks[taskId].func = Task_OakSpeech38;
+ }
+ }
+}
+
+static void Task_OakSpeech38(u8 taskId)
+{
+ sOakSpeechResources->unk_0012 = 0;
+ Task_OakSpeech38_1(taskId);
+ Task_OakSpeech38_2(taskId);
+ Task_OakSpeech38_3(taskId);
+}
+
+static void Task_OakSpeech38_3(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ SetBgAttribute(2, 6, 1);
+ data[0] = 0;
+ data[1] = 0;
+ data[2] = 256;
+ data[15] = 0;
+ gTasks[taskId].func = Task_OakSpeech39;
+}
+
+static void Task_OakSpeech39(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ s16 x, y;
+ u16 r0;
+
+ sOakSpeechResources->unk_0012++;
+ if (sOakSpeechResources->unk_0012 % 20 == 0)
+ {
+ if (sOakSpeechResources->unk_0012 == 40)
+ PlaySE(SE_FU_ZUZUZU);
+ r0 = data[2];
+ data[2] -= 32;
+ x = sub_80D8B90(r0 - 8);
+ y = sub_80D8B90(data[2] - 16);
+ SetBgAffine(2, 0x7800, 0x5400, 0x78, 0x54, x, y, 0);
+ if (data[2] <= 96)
+ {
+ data[15] = 1;
+ data[0] = 36;
+ gTasks[taskId].func = Task_OakSpeech40;
+ }
+ }
+}
+
+static void Task_OakSpeech38_1(u8 taskId)
+{
+ u8 taskId2 = CreateTask(Task_OakSpeech38_sub1, 1);
+ s16 * data = gTasks[taskId2].data;
+ data[0] = 0;
+ data[1] = 0;
+ data[2] = 0;
+ data[15] = 0;
+ BeginNormalPaletteFade(0xFFFF0FCF, 4, 0, 16, RGB_BLACK);
+}
+
+static void Task_OakSpeech38_sub1(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ if (!gPaletteFade.active)
+ {
+ if (data[1] != 0)
+ {
+ DestroyTask(taskId);
+ DestroyLinkedPikaOrGrassPlatformSprites(taskId, 1);
+ }
+ else
+ {
+ data[1]++;
+ BeginNormalPaletteFade(0x0000F000, 0, 0, 16, RGB_BLACK);
+ }
+ }
+}
+
+static void Task_OakSpeech38_2(u8 taskId)
+{
+ u8 taskId2 = CreateTask(Task_OakSpeech38_sub2, 2);
+ s16 * data = gTasks[taskId2].data;
+ data[0] = 8;
+ data[1] = 0;
+ data[2] = 8;
+ data[14] = 0;
+ data[15] = 0;
+}
+
+static void Task_OakSpeech38_sub2(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u8 i;
+
+ if (data[0] != 0)
+ data[0]--;
+ else
+ {
+ if (data[1] <= 0 && data[2] != 0)
+ data[2]--;
+ BlendPalette(0x40, 0x20, data[14], RGB_WHITE);
+ data[14]++;
+ data[1]--;
+ data[0] = data[2];
+ if (data[14] > 14)
+ {
+ for (i = 0; i < 32; i++)
+ {
+ gPlttBufferFaded[i + 0x40] = RGB_WHITE;
+ gPlttBufferUnfaded[i + 0x40] = RGB_WHITE;
+ }
+ DestroyTask(taskId);
+ }
+ }
+}
+
+static void Task_OakSpeech40(u8 taskId)
+{
+ if (gTasks[taskId].data[0] != 0)
+ gTasks[taskId].data[0]--;
+ else
+ {
+ BeginNormalPaletteFade(0x00000030, 2, 0, 16, RGB_BLACK);
+ gTasks[taskId].func = Task_OakSpeech41;
+ }
+}
+
+static void Task_OakSpeech41(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ gTasks[taskId].func = Task_OakSpeech42;
+ }
+}
+
+static void Task_OakSpeech42(u8 taskId)
+{
+ FreeAllWindowBuffers();
+ sub_8044D80();
+ Free(sOakSpeechResources);
+ sOakSpeechResources = NULL;
+ gTextFlags.flag_0 = FALSE;
+ SetMainCallback2(CB2_NewGame);
+ DestroyTask(taskId);
+}
+
+static void CB2_ReturnFromNamingScreen(void)
+{
+ u8 taskId;
+
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ DmaFill16(3, 0, VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, OAM, OAM_SIZE);
+ DmaFill16(3, RGB_BLACK, PLTT + sizeof(u16), PLTT_SIZE - sizeof(u16));
+ ResetPaletteFade();
+ ScanlineEffect_Stop();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ reset_temp_tile_data_buffers();
+ break;
+ case 1:
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(1, sBgTemplates, NELEMS(sBgTemplates));
+ SetBgTilemapBuffer(1, sOakSpeechResources->bg1TilemapBuffer);
+ SetBgTilemapBuffer(2, sOakSpeechResources->bg2TilemapBuffer);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ break;
+ case 2:
+ SetGpuReg(REG_OFFSET_WIN0H, 0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ break;
+ case 3:
+ FreeAllWindowBuffers();
+ InitStandardTextBoxWindows();
+ ResetBg0();
+ LoadPalette(sHelpDocsPalette, 0, 0xe0);
+ break;
+ case 4:
+ decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_SolidColors, 0, 0, 0);
+ break;
+ case 5:
+ if (free_temp_tile_data_buffers_if_possible())
+ return;
+ FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
+ CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0);
+ FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(2);
+ break;
+ case 6:
+ taskId = CreateTask(Task_OakSpeech26, 0);
+ if (sOakSpeechResources->unk_0010 == 0)
+ {
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ LoadOaksSpeechTrainerPic(MALE, 0);
+ else
+ LoadOaksSpeechTrainerPic(FEMALE, 0);
+ }
+ else
+ LoadOaksSpeechTrainerPic(2, 0);
+ gTasks[taskId].data[1] = -60;
+ gSpriteCoordOffsetX += 60;
+ ChangeBgX(2, -0x3C00, 0);
+ CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1);
+ gTasks[taskId].data[15] = 1;
+ break;
+ case 7:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ EnableInterrupts(INTR_FLAG_VBLANK);
+ SetVBlankCallback(VBlankCB_NewGameOaksSpeech);
+ gTextFlags.flag_0 = TRUE;
+ SetMainCallback2(CB2_NewGameOaksSpeech);
+ return;
+ }
+
+ gMain.state++;
+}
+
+static void CreateNidoranFSprite(u8 taskId)
+{
+ u8 spriteId;
+
+ DecompressPicFromTable(gUnknown_8235194, sub_8044E00(0), SPECIES_NIDORAN_F);
+ sub_800F078(&gUnknown_82373F4);
+ sub_803F7D4(SPECIES_NIDORAN_F, 0);
+ spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x60, 0x60, 1);
+ gSprites[spriteId].callback = SpriteCallbackDummy;
+ gSprites[spriteId].oam.priority = 1;
+ gSprites[spriteId].invisible = TRUE;
+ gTasks[taskId].data[4] = spriteId;
+}
+
+static void SpriteCB_PikaSync(struct Sprite * sprite)
+{
+ sprite->pos2.y = gSprites[sprite->data[0]].animCmdIndex;
+}
+
+static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 state)
+{
+ u8 spriteId;
+ u8 i = 0;
+
+ switch (state)
+ {
+ case 0:
+ LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[0]);
+ LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[1]);
+ LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[2]);
+ LoadSpritePalette(&sOakSpeech_PikaSpritePal);
+ spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[0], 0x10, 0x11, 2);
+ gSprites[spriteId].oam.priority = 0;
+ gTasks[taskId].data[7] = spriteId;
+ spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[1], 0x10, 0x09, 3);
+ gSprites[spriteId].oam.priority = 0;
+ gSprites[spriteId].data[0] = gTasks[taskId].data[7];
+ gSprites[spriteId].callback = SpriteCB_PikaSync;
+ gTasks[taskId].data[8] = spriteId;
+ spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[2], 0x18, 0x0D, 1);
+ gSprites[spriteId].oam.priority = 0;
+ gSprites[spriteId].data[0] = gTasks[taskId].data[7];
+ gSprites[spriteId].callback = SpriteCB_PikaSync;
+ gTasks[taskId].data[9] = spriteId;
+ break;
+ case 1:
+ LoadCompressedObjectPic(&sOakSpeech_GrassPlatformSpriteSheet);
+ LoadSpritePalette(&sOakSpeech_GrassPlatformSpritePal);
+ for (i = 0; i < 3; i++)
+ {
+ spriteId = CreateSprite(&sOakSpeech_GrassPlatformSpriteTemplates[i], i * 32 + 88, 0x70, 1);
+ gSprites[spriteId].oam.priority = 2;
+ gSprites[spriteId].animPaused = TRUE;
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ gTasks[taskId].data[7 + i] = spriteId;
+ }
+ break;
+ }
+}
+
+static void DestroyLinkedPikaOrGrassPlatformSprites(u8 taskId, u8 state)
+{
+ u8 i;
+
+ for (i = 0; i < 3; i++)
+ {
+ DestroySprite(&gSprites[gTasks[taskId].data[7 + i]]);
+ }
+
+ switch (state)
+ {
+ case 0:
+ FreeSpriteTilesByTag(0x1003);
+ FreeSpriteTilesByTag(0x1002);
+ FreeSpriteTilesByTag(0x1001);
+ FreeSpritePaletteByTag(0x1001);
+ break;
+ case 1:
+ FreeSpriteTilesByTag(0x1000);
+ FreeSpritePaletteByTag(0x1000);
+ break;
+ }
+}
+
+static void LoadOaksSpeechTrainerPic(u16 whichPic, u16 tileOffset)
+{
+ u32 i;
+
+ switch (whichPic)
+ {
+ case 0: // FIRE
+ LoadPalette(sOakSpeechGfx_RedPal, 0x40, 0x40);
+ LZ77UnCompVram(sOakSpeechGfx_RedPic, (void *)0x06000600 + tileOffset);
+ break;
+ case 1: // LEAF
+ LoadPalette(sOakSpeechGfx_LeafPal, 0x40, 0x40);
+ LZ77UnCompVram(sOakSpeechGfx_LeafPic, (void *)0x06000600 + tileOffset);
+ break;
+ case 2: // BLUE
+ LoadPalette(sOakSpeechGfx_RivalPal, 0x60, 0x40);
+ LZ77UnCompVram(sOakSpeechGfx_RivalPic, (void *)0x06000600 + tileOffset);
+ break;
+ case 3: // OAK
+ LoadPalette(sOakSpeechGfx_OakPal, 0x60, 0x40);
+ LZ77UnCompVram(sOakSpeechGfx_OakPic, (void *)0x06000600 + tileOffset);
+ break;
+ default:
+ return;
+ }
+
+ sOakSpeechResources->trainerPicTilemapBuffer = AllocZeroed(0x60);
+ for (i = 0; i < 0x60; i++)
+ ((u8 *)sOakSpeechResources->trainerPicTilemapBuffer)[i] = i;
+ FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x10);
+ CopyRectToBgTilemapBufferRect(2, sOakSpeechResources->trainerPicTilemapBuffer, 0, 0, 8, 12, 11, 2, 8, 12, 0x10, (tileOffset / 64) + 0x18, 0x00);
+ CopyBgTilemapBufferToVram(2);
+ Free(sOakSpeechResources->trainerPicTilemapBuffer);
+ sOakSpeechResources->trainerPicTilemapBuffer = 0;
+}
+
+static void DestroyOaksSpeechTrainerPic(void)
+{
+ FillBgTilemapBufferRect(2, 0x000, 11, 1, 8, 12, 0x10);
+ CopyBgTilemapBufferToVram(2);
+}
+
+static void Task_SlowFadeIn(u8 taskId)
+{
+ u8 i = 0;
+ if (gTasks[taskId].data[1] == 0)
+ {
+ gTasks[gTasks[taskId].data[0]].data[2] = 1;
+ DestroyTask(taskId);
+ for (i = 0; i < 3; i++)
+ {
+ gSprites[gTasks[taskId].data[7 + i]].invisible = TRUE;
+ }
+ }
+ else
+ {
+ if (gTasks[taskId].data[4] != 0)
+ gTasks[taskId].data[4]--;
+ else
+ {
+ gTasks[taskId].data[4] = gTasks[taskId].data[3];
+ gTasks[taskId].data[1]--;
+ gTasks[taskId].data[2]++;
+ if (gTasks[taskId].data[1] == 8)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ gSprites[gTasks[taskId].data[7 + i]].invisible ^= TRUE;
+ }
+ }
+ SetGpuReg(REG_OFFSET_BLDALPHA, (gTasks[taskId].data[2] * 256) + gTasks[taskId].data[1]);
+ }
+ }
+}
+
+static void CreateFadeInTask(u8 taskId, u8 state)
+{
+ u8 taskId2;
+ u8 i = 0;
+
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0x10);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ gTasks[taskId].data[2] = 0;
+ taskId2 = CreateTask(Task_SlowFadeIn, 0);
+ gTasks[taskId2].data[0] = taskId;
+ gTasks[taskId2].data[1] = 16;
+ gTasks[taskId2].data[2] = 0;
+ gTasks[taskId2].data[3] = state;
+ gTasks[taskId2].data[4] = state;
+ for (i = 0; i < 3; i++)
+ {
+ gTasks[taskId2].data[7 + i] = gTasks[taskId].data[7 + i];
+ }
+}
+
+static void Task_SlowFadeOut(u8 taskId)
+{
+ u8 i = 0;
+
+ if (gTasks[taskId].data[1] == 16)
+ {
+ if (!gPaletteFade.active)
+ {
+ gTasks[gTasks[taskId].data[0]].data[2] = 1;
+ DestroyTask(taskId);
+ }
+ }
+ else
+ {
+ if (gTasks[taskId].data[4] != 0)
+ gTasks[taskId].data[4]--;
+ else
+ {
+ gTasks[taskId].data[4] = gTasks[taskId].data[3];
+ gTasks[taskId].data[1] += 2;
+ gTasks[taskId].data[2] -= 2;
+ if (gTasks[taskId].data[1] == 8)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ gSprites[gTasks[taskId].data[7 + i]].invisible ^= TRUE;
+ }
+ }
+ SetGpuReg(REG_OFFSET_BLDALPHA, (gTasks[taskId].data[2] * 256) + gTasks[taskId].data[1]);
+ }
+ }
+}
+
+static void CreateFadeOutTask(u8 taskId, u8 state)
+{
+ u8 taskId2;
+ u8 i = 0;
+
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0x1000);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ gTasks[taskId].data[2] = 0;
+ taskId2 = CreateTask(Task_SlowFadeOut, 0);
+ gTasks[taskId2].data[0] = taskId;
+ gTasks[taskId2].data[1] = 0;
+ gTasks[taskId2].data[2] = 16;
+ gTasks[taskId2].data[3] = state;
+ gTasks[taskId2].data[4] = state;
+ for (i = 0; i < 3; i++)
+ {
+ gTasks[taskId2].data[7 + i] = gTasks[taskId].data[7 + i];
+ }
+}
+
+static void PrintNameChoiceOptions(u8 taskId, u8 state)
+{
+ s16 * data = gTasks[taskId].data;
+ const u8 *const * textPtrs;
+ u8 i;
+
+ data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[3]);
+ PutWindowTilemap(data[13]);
+ SetWindowBorderStyle(data[13], 1, sub_80F796C(), 14);
+ FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
+ AddTextPrinterParameterized(data[13], 2, gOtherText_NewName, 8, 1, 0, NULL);
+ if (state == 0)
+ textPtrs = gSaveBlock2Ptr->playerGender == MALE ? sMaleNameChoices : sFemaleNameChoices;
+ else
+ textPtrs = sRivalNameChoices;
+ for (i = 0; i < 4; i++)
+ {
+ AddTextPrinterParameterized(data[13], 2, textPtrs[i], 8, 16 * (i + 1) + 1, 0, NULL);
+ }
+ ProgramAndPlaceMenuCursorOnWindow(data[13], 2, 0, 1, 16, 5, 0);
+ CopyWindowToVram(data[13], 3);
+}
+
+static void GetDefaultName(u8 arg0, u8 namePick)
+{
+ const u8 * src;
+ u8 * dest;
+ u8 i;
+
+ if (arg0 == 0)
+ {
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ src = sMaleNameChoices[Random() % 19];
+ else
+ src = sFemaleNameChoices[Random() % 19];
+ dest = gSaveBlock2Ptr->playerName;
+ }
+ else
+ {
+ src = sRivalNameChoices[namePick];
+ dest = gSaveBlock1Ptr->rivalName;
+ }
+ for (i = 0; i < PLAYER_NAME_LENGTH - 1 && src[i] != EOS; i++)
+ dest[i] = src[i];
+ for (; i < PLAYER_NAME_LENGTH; i++)
+ dest[i] = EOS;
+}
diff --git a/src/roamer.c b/src/roamer.c
new file mode 100644
index 000000000..b42855644
--- /dev/null
+++ b/src/roamer.c
@@ -0,0 +1,240 @@
+#include "global.h"
+#include "roamer.h"
+#include "random.h"
+#include "overworld.h"
+#include "field_specials.h"
+#include "constants/species.h"
+#include "constants/maps.h"
+#include "constants/region_map.h"
+
+EWRAM_DATA u8 sLocationHistory[3][2] = {};
+EWRAM_DATA u8 sRoamerLocation[2] = {};
+
+#define saveRoamer (*(&gSaveBlock1Ptr->roamer))
+
+enum
+{
+ MAP_GRP = 0, // map group
+ MAP_NUM = 1, // map number
+};
+
+const u8 sRoamerLocations[][7] = {
+ {MAP_NUM(ROUTE1), MAP_NUM(ROUTE2), MAP_NUM(ROUTE21_NORTH), MAP_NUM(ROUTE22), 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE2), MAP_NUM(ROUTE1), MAP_NUM(ROUTE3), MAP_NUM(ROUTE22), 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE3), MAP_NUM(ROUTE2), MAP_NUM(ROUTE4), 0xff, 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE4), MAP_NUM(ROUTE3), MAP_NUM(ROUTE5), MAP_NUM(ROUTE9), MAP_NUM(ROUTE24), 0xff, 0xff},
+ {MAP_NUM(ROUTE5), MAP_NUM(ROUTE4), MAP_NUM(ROUTE6), MAP_NUM(ROUTE7), MAP_NUM(ROUTE8), MAP_NUM(ROUTE9), MAP_NUM(ROUTE24)},
+ {MAP_NUM(ROUTE6), MAP_NUM(ROUTE5), MAP_NUM(ROUTE7), MAP_NUM(ROUTE8), MAP_NUM(ROUTE11), 0xff, 0xff},
+ {MAP_NUM(ROUTE7), MAP_NUM(ROUTE5), MAP_NUM(ROUTE6), MAP_NUM(ROUTE8), MAP_NUM(ROUTE16), 0xff, 0xff},
+ {MAP_NUM(ROUTE8), MAP_NUM(ROUTE5), MAP_NUM(ROUTE6), MAP_NUM(ROUTE7), MAP_NUM(ROUTE10), MAP_NUM(ROUTE12), 0xff},
+ {MAP_NUM(ROUTE9), MAP_NUM(ROUTE4), MAP_NUM(ROUTE5), MAP_NUM(ROUTE10), MAP_NUM(ROUTE24), 0xff, 0xff},
+ {MAP_NUM(ROUTE10), MAP_NUM(ROUTE8), MAP_NUM(ROUTE9), MAP_NUM(ROUTE12), 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE11), MAP_NUM(ROUTE6), MAP_NUM(ROUTE12), 0xff, 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE12), MAP_NUM(ROUTE10), MAP_NUM(ROUTE11), MAP_NUM(ROUTE13), 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE13), MAP_NUM(ROUTE12), MAP_NUM(ROUTE14), 0xff, 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE14), MAP_NUM(ROUTE13), MAP_NUM(ROUTE15), 0xff, 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE15), MAP_NUM(ROUTE14), MAP_NUM(ROUTE18), MAP_NUM(ROUTE19), 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE16), MAP_NUM(ROUTE7), MAP_NUM(ROUTE17), 0xff, 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE17), MAP_NUM(ROUTE16), MAP_NUM(ROUTE18), 0xff, 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE18), MAP_NUM(ROUTE15), MAP_NUM(ROUTE17), MAP_NUM(ROUTE19), 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE19), MAP_NUM(ROUTE15), MAP_NUM(ROUTE18), MAP_NUM(ROUTE20), 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE20), MAP_NUM(ROUTE19), MAP_NUM(ROUTE21_NORTH), 0xff, 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE21_NORTH), MAP_NUM(ROUTE1), MAP_NUM(ROUTE20), 0xff, 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE22), MAP_NUM(ROUTE1), MAP_NUM(ROUTE2), MAP_NUM(ROUTE23), 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE23), MAP_NUM(ROUTE22), MAP_NUM(ROUTE2), 0xff, 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE24), MAP_NUM(ROUTE4), MAP_NUM(ROUTE5), MAP_NUM(ROUTE9), 0xff, 0xff, 0xff},
+ {MAP_NUM(ROUTE25), MAP_NUM(ROUTE24), MAP_NUM(ROUTE9), 0xff, 0xff, 0xff, 0xff},
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
+};
+
+void ClearRoamerData(void)
+{
+ u32 i;
+ gSaveBlock1Ptr->roamer = (struct Roamer){};
+ sRoamerLocation[MAP_GRP] = 0;
+ sRoamerLocation[MAP_NUM] = 0;
+ for (i = 0; i < 3; i++)
+ {
+ sLocationHistory[i][MAP_GRP] = 0;
+ sLocationHistory[i][MAP_NUM] = 0;
+ }
+}
+
+#define GetRoamerSpecies() ({\
+ u16 a;\
+ switch (ScrSpecial_GetStarter())\
+ {\
+ default:\
+ a = SPECIES_RAIKOU;\
+ break;\
+ case SPECIES_BULBASAUR:\
+ a = SPECIES_ENTEI;\
+ break;\
+ case SPECIES_CHARMANDER:\
+ a = SPECIES_SUICUNE;\
+ break;\
+ }\
+ a;\
+})
+
+void CreateInitialRoamerMon(void)
+{
+ struct Pokemon * tmpMon = &gEnemyParty[0];
+ u16 roamerMon;
+
+ CreateMon(tmpMon, (roamerMon = GetRoamerSpecies()), 50, 0x20, 0, 0, 0, 0);
+ saveRoamer.species = roamerMon;
+ saveRoamer.level = 50;
+ saveRoamer.status = 0;
+ saveRoamer.active = TRUE;
+ saveRoamer.ivs = GetMonData(tmpMon, MON_DATA_IVS);
+ saveRoamer.personality = GetMonData(tmpMon, MON_DATA_PERSONALITY);
+ saveRoamer.hp = GetMonData(tmpMon, MON_DATA_MAX_HP);
+ saveRoamer.cool = GetMonData(tmpMon, MON_DATA_COOL);
+ saveRoamer.beauty = GetMonData(tmpMon, MON_DATA_BEAUTY);
+ saveRoamer.cute = GetMonData(tmpMon, MON_DATA_CUTE);
+ saveRoamer.smart = GetMonData(tmpMon, MON_DATA_SMART);
+ saveRoamer.tough = GetMonData(tmpMon, MON_DATA_TOUGH);
+ sRoamerLocation[MAP_GRP] = 3;
+ sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0];
+}
+
+void InitRoamer(void)
+{
+ ClearRoamerData();
+ CreateInitialRoamerMon();
+}
+
+void UpdateLocationHistoryForRoamer(void)
+{
+ sLocationHistory[2][MAP_GRP] = sLocationHistory[1][MAP_GRP];
+ sLocationHistory[2][MAP_NUM] = sLocationHistory[1][MAP_NUM];
+ sLocationHistory[1][MAP_GRP] = sLocationHistory[0][MAP_GRP];
+ sLocationHistory[1][MAP_NUM] = sLocationHistory[0][MAP_NUM];
+ sLocationHistory[0][MAP_GRP] = gSaveBlock1Ptr->location.mapGroup;
+ sLocationHistory[0][MAP_NUM] = gSaveBlock1Ptr->location.mapNum;
+}
+
+void RoamerMoveToOtherLocationSet(void)
+{
+ u8 mapNum = 0;
+ struct Roamer *roamer = &saveRoamer;
+
+ if (!roamer->active)
+ return;
+
+ sRoamerLocation[MAP_GRP] = 3;
+
+ while (1)
+ {
+ mapNum = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0];
+ if (sRoamerLocation[MAP_NUM] != mapNum)
+ {
+ sRoamerLocation[MAP_NUM] = mapNum;
+ return;
+ }
+ }
+}
+
+
+void RoamerMove(void)
+{
+ u8 locSet = 0;
+
+ if ((Random() % 16) == 0)
+ {
+ RoamerMoveToOtherLocationSet();
+ }
+ else
+ {
+ struct Roamer *roamer = &saveRoamer;
+
+ if (!roamer->active)
+ return;
+
+ while (locSet < (ARRAY_COUNT(sRoamerLocations) - 1))
+ {
+ if (sRoamerLocation[MAP_NUM] == sRoamerLocations[locSet][0])
+ {
+ u8 mapNum;
+ while (1)
+ {
+ mapNum = sRoamerLocations[locSet][(Random() % 6) + 1];
+ if (!(sLocationHistory[2][MAP_GRP] == 3 && sLocationHistory[2][MAP_NUM] == mapNum) && mapNum != 0xFF)
+ break;
+ }
+ sRoamerLocation[MAP_NUM] = mapNum;
+ return;
+ }
+ locSet++;
+ }
+ }
+}
+
+bool8 IsRoamerAt(u8 mapGroup, u8 mapNum)
+{
+ struct Roamer *roamer = &saveRoamer;
+
+ if (roamer->active && mapGroup == sRoamerLocation[MAP_GRP] && mapNum == sRoamerLocation[MAP_NUM])
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void CreateRoamerMonInstance(void)
+{
+ struct Pokemon *mon;
+ struct Roamer *roamer;
+
+ mon = &gEnemyParty[0];
+ ZeroEnemyPartyMons();
+ roamer = &saveRoamer;
+ CreateMonWithIVsPersonality(mon, roamer->species, roamer->level, roamer->ivs, roamer->personality);
+ SetMonData(mon, MON_DATA_STATUS, &gSaveBlock1Ptr->roamer.status);
+ SetMonData(mon, MON_DATA_HP, &gSaveBlock1Ptr->roamer.hp);
+ SetMonData(mon, MON_DATA_COOL, &gSaveBlock1Ptr->roamer.cool);
+ SetMonData(mon, MON_DATA_BEAUTY, &gSaveBlock1Ptr->roamer.beauty);
+ SetMonData(mon, MON_DATA_CUTE, &gSaveBlock1Ptr->roamer.cute);
+ SetMonData(mon, MON_DATA_SMART, &gSaveBlock1Ptr->roamer.smart);
+ SetMonData(mon, MON_DATA_TOUGH, &gSaveBlock1Ptr->roamer.tough);
+}
+
+bool8 TryStartRoamerEncounter(void)
+{
+ if (IsRoamerAt(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum) == TRUE && (Random() % 4) == 0)
+ {
+ CreateRoamerMonInstance();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+void UpdateRoamerHPStatus(struct Pokemon *mon)
+{
+ saveRoamer.hp = GetMonData(mon, MON_DATA_HP);
+ saveRoamer.status = GetMonData(mon, MON_DATA_STATUS);
+
+ RoamerMoveToOtherLocationSet();
+}
+
+void SetRoamerInactive(void)
+{
+ struct Roamer *roamer = &saveRoamer;
+ roamer->active = FALSE;
+}
+
+void GetRoamerLocation(u8 *mapGroup, u8 *mapNum)
+{
+ *mapGroup = sRoamerLocation[MAP_GRP];
+ *mapNum = sRoamerLocation[MAP_NUM];
+}
+
+u16 GetRoamerLocationMapSectionId(void)
+{
+ struct Roamer *roamer = &saveRoamer;
+ if (!saveRoamer.active)
+ return MAPSEC_NONE;
+ return get_mapheader_by_bank_and_number(sRoamerLocation[MAP_GRP], sRoamerLocation[MAP_NUM])->regionMapSectionId;
+}
diff --git a/src/scanline_effect.c b/src/scanline_effect.c
new file mode 100644
index 000000000..22699b96d
--- /dev/null
+++ b/src/scanline_effect.c
@@ -0,0 +1,262 @@
+#include "global.h"
+#include "battle.h"
+#include "task.h"
+#include "trig.h"
+#include "scanline_effect.h"
+
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_X;
+extern u16 gBattle_BG2_Y;
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
+
+static void CopyValue16Bit(void);
+static void CopyValue32Bit(void);
+
+// EWRAM vars
+
+// Per-scanline register values.
+// This is double buffered so that it can be safely written to at any time
+// without overwriting the buffer that the DMA is currently reading
+EWRAM_DATA u16 gScanlineEffectRegBuffers[2][0x3C0] = {0};
+
+EWRAM_DATA struct ScanlineEffect gScanlineEffect = {0};
+EWRAM_DATA static bool8 sShouldStopWaveTask = FALSE;
+
+void ScanlineEffect_Stop(void)
+{
+ gScanlineEffect.state = 0;
+ DmaStop(0);
+ if (gScanlineEffect.waveTaskId != 0xFF)
+ {
+ DestroyTask(gScanlineEffect.waveTaskId);
+ gScanlineEffect.waveTaskId = 0xFF;
+ }
+}
+
+void ScanlineEffect_Clear(void)
+{
+ CpuFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers));
+ gScanlineEffect.dmaSrcBuffers[0] = NULL;
+ gScanlineEffect.dmaSrcBuffers[1] = NULL;
+ gScanlineEffect.dmaDest = NULL;
+ gScanlineEffect.dmaControl = 0;
+ gScanlineEffect.srcBuffer = 0;
+ gScanlineEffect.state = 0;
+ gScanlineEffect.unused16 = 0;
+ gScanlineEffect.unused17 = 0;
+ gScanlineEffect.waveTaskId = 0xFF;
+}
+
+void ScanlineEffect_SetParams(struct ScanlineEffectParams params)
+{
+ if (params.dmaControl == SCANLINE_EFFECT_DMACNT_16BIT) // 16-bit
+ {
+ // Set the DMA src to the value for the second scanline because the
+ // first DMA transfer occurs in HBlank *after* the first scanline is drawn
+ gScanlineEffect.dmaSrcBuffers[0] = (u16 *)gScanlineEffectRegBuffers[0] + 1;
+ gScanlineEffect.dmaSrcBuffers[1] = (u16 *)gScanlineEffectRegBuffers[1] + 1;
+ gScanlineEffect.setFirstScanlineReg = CopyValue16Bit;
+ }
+ else // assume 32-bit
+ {
+ // Set the DMA src to the value for the second scanline because the
+ // first DMA transfer occurs in HBlank *after* the first scanline is drawn
+ gScanlineEffect.dmaSrcBuffers[0] = (u32 *)gScanlineEffectRegBuffers[0] + 1;
+ gScanlineEffect.dmaSrcBuffers[1] = (u32 *)gScanlineEffectRegBuffers[1] + 1;
+ gScanlineEffect.setFirstScanlineReg = CopyValue32Bit;
+ }
+
+ gScanlineEffect.dmaControl = params.dmaControl;
+ gScanlineEffect.dmaDest = params.dmaDest;
+ gScanlineEffect.state = params.initState;
+ gScanlineEffect.unused16 = params.unused9;
+ gScanlineEffect.unused17 = params.unused9;
+}
+
+void ScanlineEffect_InitHBlankDmaTransfer(void)
+{
+ if (gScanlineEffect.state == 0)
+ {
+ return;
+ }
+ else if (gScanlineEffect.state == 3)
+ {
+ gScanlineEffect.state = 0;
+ DmaStop(0);
+ sShouldStopWaveTask = TRUE;
+ }
+ else
+ {
+ DmaStop(0);
+ // Set DMA to copy to dest register on each HBlank for the next frame.
+ // The HBlank DMA transfers do not occurr during VBlank, so the transfer
+ // will begin on the HBlank after the first scanline
+ DmaSet(0, gScanlineEffect.dmaSrcBuffers[gScanlineEffect.srcBuffer], gScanlineEffect.dmaDest, gScanlineEffect.dmaControl);
+ // Manually set the reg for the first scanline
+ gScanlineEffect.setFirstScanlineReg();
+ // Swap current buffer
+ gScanlineEffect.srcBuffer ^= 1;
+ }
+}
+
+// These two functions are used to copy the register for the first scanline,
+// depending whether it is a 16-bit register or a 32-bit register.
+
+static void CopyValue16Bit(void)
+{
+ u16 *dest = (u16 *)gScanlineEffect.dmaDest;
+ u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
+
+ *dest = *src;
+}
+
+static void CopyValue32Bit(void)
+{
+ u32 *dest = (u32 *)gScanlineEffect.dmaDest;
+ u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
+
+ *dest = *src;
+}
+
+#define tStartLine data[0]
+#define tEndLine data[1]
+#define tWaveLength data[2]
+#define tSrcBufferOffset data[3]
+#define tFramesUntilMove data[4]
+#define tDelayInterval data[5]
+#define tRegOffset data[6]
+#define tApplyBattleBgOffsets data[7]
+
+static void TaskFunc_UpdateWavePerFrame(u8 taskId)
+{
+ int value = 0;
+ int i;
+ int offset;
+
+ if (sShouldStopWaveTask)
+ {
+ DestroyTask(taskId);
+ gScanlineEffect.waveTaskId = 0xFF;
+ }
+ else
+ {
+ if (gTasks[taskId].tApplyBattleBgOffsets)
+ {
+ switch (gTasks[taskId].tRegOffset)
+ {
+ case SCANLINE_EFFECT_REG_BG0HOFS:
+ value = gBattle_BG0_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG0VOFS:
+ value = gBattle_BG0_Y;
+ break;
+ case SCANLINE_EFFECT_REG_BG1HOFS:
+ value = gBattle_BG1_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG1VOFS:
+ value = gBattle_BG1_Y;
+ break;
+ case SCANLINE_EFFECT_REG_BG2HOFS:
+ value = gBattle_BG2_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG2VOFS:
+ value = gBattle_BG2_Y;
+ break;
+ case SCANLINE_EFFECT_REG_BG3HOFS:
+ value = gBattle_BG3_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG3VOFS:
+ value = gBattle_BG3_Y;
+ break;
+ }
+ }
+ if (gTasks[taskId].tFramesUntilMove != 0)
+ {
+ gTasks[taskId].tFramesUntilMove--;
+ offset = gTasks[taskId].tSrcBufferOffset + 320;
+ for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value;
+ offset++;
+ }
+ }
+ else
+ {
+ gTasks[taskId].tFramesUntilMove = gTasks[taskId].tDelayInterval;
+ offset = gTasks[taskId].tSrcBufferOffset + 320;
+ for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value;
+ offset++;
+ }
+
+ // increment src buffer offset
+ gTasks[taskId].tSrcBufferOffset++;
+ if (gTasks[taskId].tSrcBufferOffset == gTasks[taskId].tWaveLength)
+ gTasks[taskId].tSrcBufferOffset = 0;
+ }
+ }
+}
+
+static void GenerateWave(u16 *buffer, u8 frequency, u8 amplitude, u8 unused)
+{
+ u16 i = 0;
+ u8 theta = 0;
+
+ while (i < 256)
+ {
+ buffer[i] = (gSineTable[theta] * amplitude) / 256;
+ theta += frequency;
+ i++;
+ }
+}
+
+// Initializes a background "wave" effect that affects scanlines startLine (inclusive) to endLine (exclusive).
+// 'frequency' and 'amplitude' control the frequency and amplitude of the wave.
+// 'delayInterval' controls how fast the wave travels up the screen. The wave will shift upwards one scanline every 'delayInterval'+1 frames.
+// 'regOffset' is the offset of the video register to modify.
+u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 applyBattleBgOffsets)
+{
+ int i;
+ int offset;
+ struct ScanlineEffectParams params;
+ u8 taskId;
+
+ ScanlineEffect_Clear();
+
+ params.dmaDest = (void *)(REG_ADDR_BG0HOFS + regOffset);
+ params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
+ params.initState = 1;
+ params.unused9 = 0;
+ ScanlineEffect_SetParams(params);
+
+ taskId = CreateTask(TaskFunc_UpdateWavePerFrame, 0);
+
+ gTasks[taskId].tStartLine = startLine;
+ gTasks[taskId].tEndLine = endLine;
+ gTasks[taskId].tWaveLength = 256 / frequency;
+ gTasks[taskId].tSrcBufferOffset = 0;
+ gTasks[taskId].tFramesUntilMove = delayInterval;
+ gTasks[taskId].tDelayInterval = delayInterval;
+ gTasks[taskId].tRegOffset = regOffset;
+ gTasks[taskId].tApplyBattleBgOffsets = applyBattleBgOffsets;
+
+ gScanlineEffect.waveTaskId = taskId;
+ sShouldStopWaveTask = FALSE;
+
+ GenerateWave(&gScanlineEffectRegBuffers[0][320], frequency, amplitude, endLine - startLine);
+
+ offset = 320;
+ for (i = startLine; i < endLine; i++)
+ {
+ gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[0][offset];
+ gScanlineEffectRegBuffers[1][i] = gScanlineEffectRegBuffers[0][offset];
+ offset++;
+ }
+
+ return taskId;
+}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 12b35daa4..e7c61db1f 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1567,7 +1567,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
ptr = (u8 *)ctx->data[0];
sub_80F6E9C();
- sub_80F6EE4(0, 1);
+ DrawDialogueFrame(0, 1);
AddTextPrinterParameterized(0, 6, ptr, 0, 1, 0, NULL);
return FALSE;
}
@@ -1636,8 +1636,8 @@ bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx)
return FALSE;
}
-extern const u8 gUnknown_83A72A0[];
-extern const u8 gUnknown_83A72A2[];
+const u8 gUnknown_83A72A0[] = _("S");
+const u8 gUnknown_83A72A2[] = _("IES");
bool8 ScrCmd_bufferitemnameplural(struct ScriptContext *ctx)
{
diff --git a/src/sound.c b/src/sound.c
index f94e44506..ba6511d1c 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -40,7 +40,23 @@ extern struct MusicPlayerInfo gMPlayInfo_SE2;
extern struct MusicPlayerInfo gMPlayInfo_SE3;
extern struct ToneData gCryTable[];
extern struct ToneData gCryTable2[];
-extern const struct Fanfare sFanfares[];
+
+static const struct Fanfare sFanfares[] = {
+ { MUS_FANFA1, 80 },
+ { MUS_FANFA4, 160 },
+ { MUS_FANFA5, 220 },
+ { MUS_ME_WAZA, 220 },
+ { MUS_ME_ASA, 160 },
+ { MUS_ME_BACHI, 340 },
+ { MUS_ME_WASURE, 180 },
+ { MUS_ME_KINOMI, 120 },
+ { MUS_ME_B_BIG, 250 },
+ { MUS_ME_B_SMALL, 150 },
+ { MUS_ME_ZANNEN, 160 },
+ { BGM_FRLG_FLUTE, 450 },
+ { BGM_FRLG_ME_KEYITEM, 170 },
+ { BGM_FRLG_ME_POKEDEX_EVAL, 196 }
+};
extern u16 SpeciesToCryId(u16);
diff --git a/src/text.c b/src/text.c
index 874e12fd5..d74d77e2f 100644
--- a/src/text.c
+++ b/src/text.c
@@ -8,8 +8,8 @@
extern u8 gGlyphInfo[0x90];
extern u8 gUnknown_203ADFA;
-extern u16 gUnknown_841F408[];
-extern const struct OamData gUnknown_83AC9D0;
+extern u16 gTMCaseMainWindowPalette[];
+extern const struct OamData gOamData_83AC9D0;
extern void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue);
extern void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
@@ -52,7 +52,7 @@ const struct SpriteSheet gUnknown_81EA68C[] =
const struct SpritePalette gUnknown_81EA6A4[] =
{
- {gUnknown_841F408, 0x8000},
+ {gTMCaseMainWindowPalette, 0x8000},
{NULL}
};
@@ -60,7 +60,7 @@ const struct SpriteTemplate gUnknown_81EA6B4 =
{
.tileTag = 0x8000,
.paletteTag = 0x8000,
- .oam = &gUnknown_83AC9D0,
+ .oam = &gOamData_83AC9D0,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
@@ -1791,7 +1791,7 @@ void sub_80062B0(struct Sprite *sprite)
}
}
-u8 sub_8006300(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority)
+u8 CreateTextCursorSpriteForOakSpeech(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority)
{
u8 spriteId;
LoadSpriteSheet(&gUnknown_81EA68C[sheetId & 1]);
diff --git a/src/tm_case.c b/src/tm_case.c
new file mode 100644
index 000000000..2fc30da2d
--- /dev/null
+++ b/src/tm_case.c
@@ -0,0 +1,1537 @@
+#include "global.h"
+#include "malloc.h"
+#include "bg.h"
+#include "decompress.h"
+#include "gpu_regs.h"
+#include "palette.h"
+#include "graphics.h"
+#include "task.h"
+#include "text.h"
+#include "text_window.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "new_menu_helpers.h"
+#include "list_menu.h"
+#include "item.h"
+#include "item_menu.h"
+#include "link.h"
+#include "money.h"
+#include "shop.h"
+#include "teachy_tv.h"
+#include "pokemon_storage_system.h"
+#include "string_util.h"
+#include "party_menu.h"
+#include "data2.h"
+#include "scanline_effect.h"
+#include "sound.h"
+#include "strings.h"
+#include "tm_case.h"
+#include "menu_indicators.h"
+#include "constants/items.h"
+#include "constants/songs.h"
+
+#define TM_CASE_TM_TAG 400
+
+struct UnkStruct_203B10C
+{
+ void (* savedCallback)(void);
+ u8 tmCaseMenuType;
+ u8 unk_05;
+ u8 unk_06;
+ u16 selectedRow;
+ u16 scrollOffset;
+};
+
+struct UnkStruct_203B118
+{
+ void (* savedCallback)(void);
+ u8 tmSpriteId;
+ u8 maxTMsShown;
+ u8 numTMs;
+ u8 contextMenuWindowId;
+ u8 scrollIndicatorArrowPairId;
+ u16 currItem;
+ const u8 * menuActionIndices;
+ u8 numMenuActions;
+ s16 seqId;
+ u8 filler_14[8];
+};
+
+struct UnkStruct_203B11C
+{
+ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT];
+ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
+ u16 unk_160;
+ u16 unk_162;
+};
+
+static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {};
+static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL;
+static EWRAM_DATA struct UnkStruct_203B11C * sPokeDudePackBackup = NULL;
+static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer
+static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL;
+static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL;
+static EWRAM_DATA u16 * sTMSpritePaletteBuffer = NULL;
+
+static void CB2_SetUpTMCaseUI_Blocking(void);
+static bool8 DoSetUpTMCaseUI(void);
+static void ResetBufferPointers_NoFree(void);
+static void LoadBGTemplates(void);
+static bool8 HandleLoadTMCaseGraphicsAndPalettes(void);
+static void CreateTMCaseListMenuBuffers(void);
+static void InitTMCaseListMenuItems(void);
+static void GetTMNumberAndMoveString(u8 * dest, u16 itemId);
+static void TMCase_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+static void TMCase_ItemPrintFunc(u8 windowId, s32 itemId, u8 y);
+static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex);
+static void PrintListMenuCursorAt_WithColorIdx(u8 a0, u8 a1);
+static void CreateTMCaseScrollIndicatorArrowPair_Main(void);
+static void TMCaseSetup_GetTMCount(void);
+static void TMCaseSetup_InitListMenuPositions(void);
+static void TMCaseSetup_UpdateVisualMenuOffset(void);
+static void Task_FadeOutAndCloseTMCase(u8 taskId);
+static void Task_TMCaseMain(u8 taskId);
+static void Task_SelectTMAction_FromFieldBag(u8 taskId);
+static void Task_TMContextMenu_HandleInput(u8 taskId);
+static void TMHMContextMenuAction_Use(u8 taskId);
+static void TMHMContextMenuAction_Give(u8 taskId);
+static void PrintError_ThereIsNoPokemon(u8 taskId);
+static void PrintError_ItemCantBeHeld(u8 taskId);
+static void Task_WaitButtonAfterErrorPrint(u8 taskId);
+static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId);
+static void TMHMContextMenuAction_Exit(u8 taskId);
+static void Task_SelectTMAction_Type1(u8 taskId);
+static void Task_SelectTMAction_Type3(u8 taskId);
+static void Task_SelectTMAction_FromSellMenu(u8 taskId);
+static void Task_AskConfirmSaleWithAmount(u8 taskId);
+static void Task_PlaceYesNoBox(u8 taskId);
+static void Task_SaleOfTMsCancelled(u8 taskId);
+static void Task_InitQuantitySelectUI(u8 taskId);
+static void SellTM_PrintQuantityAndSalePrice(s16 quantity, s32 value);
+static void Task_QuantitySelect_HandleInput(u8 taskId);
+static void Task_PrintSaleConfirmedText(u8 taskId);
+static void Task_DoSaleOfTMs(u8 taskId);
+static void Task_AfterSale_ReturnToList(u8 taskId);
+static void Task_TMCaseDude1(u8 taskId);
+static void Task_TMCaseDude_Playback(u8 taskId);
+static void InitWindowTemplatesAndPals(void);
+static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
+static void TMCase_SetWindowBorder1(u8 windowId);
+static void TMCase_SetWindowBorder2(u8 windowId);
+static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func);
+static void PrintStringTMCaseOnWindow3(void);
+static void DrawMoveInfoUIMarkers(void);
+static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId);
+static void PlaceHMTileInWindow(u8 windowId, u8 x, u8 y);
+static void HandlePrintMoneyOnHand(void);
+static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable * ptrs);
+static u8 AddTMContextMenu(u8 * a0, u8 a1);
+static void RemoveTMContextMenu(u8 * a0);
+static u8 CreateTMSprite(u16 itemId);
+static void SetTMSpriteAnim(struct Sprite * sprite, u8 var);
+static void TintTMSpriteByType(u8 type);
+static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var);
+static void InitSelectedTMSpriteData(u8 a0, u16 itemId);
+static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite);
+static void LoadTMTypePalettes(void);
+
+static const struct BgTemplate sBGTemplates[] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x000
+ }, {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }, {
+ .bg = 2,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x000
+ }
+};
+
+static void (*const sSelectTMActionTasks[])(u8 taskId) = {
+ Task_SelectTMAction_FromFieldBag,
+ Task_SelectTMAction_Type1,
+ Task_SelectTMAction_FromSellMenu,
+ Task_SelectTMAction_Type3
+};
+
+static const struct MenuAction sMenuActions_UseGiveExit[] = {
+ {gOtherText_Use, TMHMContextMenuAction_Use },
+ {gOtherText_Give, TMHMContextMenuAction_Give},
+ {gOtherText_Exit, TMHMContextMenuAction_Exit},
+};
+
+static const u8 sMenuActionIndices_Field[] = {0, 1, 2};
+static const u8 sMenuActionIndices_UnionRoom[] = {1, 2};
+static const struct YesNoFuncTable sYesNoFuncTable = {Task_PrintSaleConfirmedText, Task_SaleOfTMsCancelled};
+
+static const u8 sText_ClearTo18[] = _("{CLEAR_TO 18}");
+static const u8 sText_SingleSpace[] = _(" ");
+
+static ALIGNED(4) const u16 sPal3Override[] = {RGB(8, 8, 8), RGB(30, 16, 6)};
+
+static const struct TextColor sTextColors[] = {
+ {0, 1, 2},
+ {0, 2, 3},
+ {0, 3, 6},
+ {0, 14, 10}
+};
+
+static const struct WindowTemplate sWindowTemplates[] = {
+ {0x00, 0x0a, 0x01, 0x13, 0x0a, 0x0f, 0x0081},
+ {0x00, 0x0c, 0x0c, 0x12, 0x08, 0x0a, 0x013f},
+ {0x01, 0x05, 0x0f, 0x0f, 0x04, 0x0d, 0x01f9},
+ {0x00, 0x00, 0x01, 0x0a, 0x02, 0x0f, 0x0235},
+ {0x00, 0x01, 0x0d, 0x05, 0x06, 0x0c, 0x0249},
+ {0x00, 0x07, 0x0d, 0x05, 0x06, 0x0c, 0x0267},
+ {0x01, 0x02, 0x0f, 0x1a, 0x04, 0x0b, 0x0285},
+ {0x01, 0x11, 0x09, 0x0c, 0x04, 0x0f, 0x02ed},
+ {0x01, 0x01, 0x01, 0x08, 0x03, 0x0d, 0x031d},
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sYesNoWindowTemplate = {0x01, 0x15, 0x09, 0x06, 0x04, 0x0f, 0x0335};
+
+static const struct WindowTemplate sTMContextWindowTemplates[] = {
+ {0x01, 0x16, 0x0d, 0x07, 0x06, 0x0f, 0x01cf},
+ {0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01cf}
+};
+
+static const struct OamData sTMSpriteOamData = {
+ .size = 2,
+ .priority = 2
+};
+
+static const union AnimCmd sTMSpriteAnim0[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sTMSpriteAnim1[] = {
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sTMSpriteAnims[] = {
+ sTMSpriteAnim0,
+ sTMSpriteAnim1
+};
+
+static const struct CompressedSpriteSheet sTMSpriteSheet = {
+ (const void *)gTMCase_TMSpriteGfx,
+ 0x400,
+ TM_CASE_TM_TAG
+};
+
+static const struct SpriteTemplate sTMSpriteTemplate = {
+ TM_CASE_TM_TAG,
+ TM_CASE_TM_TAG,
+ &sTMSpriteOamData,
+ sTMSpriteAnims,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+static const u16 sTMSpritePaletteOffsetByType[] = {
+ [TYPE_NORMAL] = 0x000,
+ [TYPE_FIRE] = 0x010,
+ [TYPE_WATER] = 0x020,
+ [TYPE_GRASS] = 0x030,
+ [TYPE_ELECTRIC] = 0x040,
+ [TYPE_ROCK] = 0x050,
+ [TYPE_GROUND] = 0x060,
+ [TYPE_ICE] = 0x070,
+ [TYPE_FLYING] = 0x080,
+ [TYPE_FIGHTING] = 0x090,
+ [TYPE_GHOST] = 0x0a0,
+ [TYPE_BUG] = 0x0b0,
+ [TYPE_POISON] = 0x0c0,
+ [TYPE_PSYCHIC] = 0x0d0,
+ [TYPE_STEEL] = 0x0e0,
+ [TYPE_DARK] = 0x0f0,
+ [TYPE_DRAGON] = 0x100
+};
+
+void InitTMCase(u8 type, void (* callback)(void), u8 a2)
+{
+ ResetBufferPointers_NoFree();
+ sTMCaseDynamicResources = Alloc(sizeof(struct UnkStruct_203B118));
+ sTMCaseDynamicResources->savedCallback = 0;
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = 0xFF;
+ sTMCaseDynamicResources->contextMenuWindowId = 0xFF;
+ if (type != 5)
+ sTMCaseStaticResources.tmCaseMenuType = type;
+ if (callback != NULL)
+ sTMCaseStaticResources.savedCallback = callback;
+ if (a2 != 0xFF)
+ sTMCaseStaticResources.unk_05 = a2;
+ gTextFlags.flag_2 = FALSE;
+ SetMainCallback2(CB2_SetUpTMCaseUI_Blocking);
+}
+
+static void CB2_Idle(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ UpdatePaletteFade();
+}
+
+static void VBlankCB_Idle(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void CB2_SetUpTMCaseUI_Blocking(void)
+{
+ while (1)
+ {
+ if (sub_80BF72C() == TRUE)
+ break;
+ if (DoSetUpTMCaseUI() == TRUE)
+ break;
+ if (sub_80BF708() == TRUE)
+ break;
+ }
+}
+
+static bool8 DoSetUpTMCaseUI(void)
+{
+ u8 taskId;
+
+ switch (gMain.state)
+ {
+ case 0:
+ sub_80BF768();
+ clear_scheduled_bg_copies_to_vram();
+ gMain.state++;
+ break;
+ case 1:
+ ScanlineEffect_Stop();
+ gMain.state++;
+ break;
+ case 2:
+ FreeAllSpritePalettes();
+ gMain.state++;
+ break;
+ case 3:
+ ResetPaletteFade();
+ gMain.state++;
+ break;
+ case 4:
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 5:
+ ResetTasks();
+ gMain.state++;
+ break;
+ case 6:
+ LoadBGTemplates();
+ sTMCaseDynamicResources->seqId = 0;
+ gMain.state++;
+ break;
+ case 7:
+ InitWindowTemplatesAndPals();
+ gMain.state++;
+ break;
+ case 8:
+ if (HandleLoadTMCaseGraphicsAndPalettes())
+ gMain.state++;
+ break;
+ case 9:
+ sub_809A5E4(&gBagPockets[POCKET_TM_CASE - 1]);
+ gMain.state++;
+ break;
+ case 10:
+ TMCaseSetup_GetTMCount();
+ TMCaseSetup_InitListMenuPositions();
+ TMCaseSetup_UpdateVisualMenuOffset();
+ gMain.state++;
+ break;
+ case 11:
+ DrawMoveInfoUIMarkers();
+ gMain.state++;
+ break;
+ case 12:
+ CreateTMCaseListMenuBuffers();
+ InitTMCaseListMenuItems();
+ gMain.state++;
+ break;
+ case 13:
+ PrintStringTMCaseOnWindow3();
+ gMain.state++;
+ break;
+ case 14:
+ if (sTMCaseStaticResources.tmCaseMenuType == 4)
+ taskId = CreateTask(Task_TMCaseDude1, 0);
+ else
+ taskId = CreateTask(Task_TMCaseMain, 0);
+ gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
+ gMain.state++;
+ break;
+ case 15:
+ CreateTMCaseScrollIndicatorArrowPair_Main();
+ gMain.state++;
+ break;
+ case 16:
+ sTMCaseDynamicResources->tmSpriteId = CreateTMSprite(BagGetItemIdByPocketPosition(POCKET_TM_CASE, sTMCaseStaticResources.scrollOffset + sTMCaseStaticResources.selectedRow));
+ gMain.state++;
+ break;
+ case 17:
+ BlendPalettes(0xFFFFFFFF, 16, 0);
+ gMain.state++;
+ break;
+ case 18:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ gMain.state++;
+ break;
+ default:
+ SetVBlankCallback(VBlankCB_Idle);
+ SetMainCallback2(CB2_Idle);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void ResetBufferPointers_NoFree(void)
+{
+ sTMCaseDynamicResources = NULL;
+ sTilemapBuffer = NULL;
+ sListMenuItemsBuffer = NULL;
+ sListMenuStringsBuffer = NULL;
+ sTMSpritePaletteBuffer = NULL;
+}
+
+static void LoadBGTemplates(void)
+{
+ void ** ptr;
+ sub_80BF7C8();
+ ptr = &sTilemapBuffer;
+ *ptr = AllocZeroed(0x800);
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sBGTemplates, NELEMS(sBGTemplates));
+ SetBgTilemapBuffer(2, *ptr);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+}
+
+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);
+ sTMCaseDynamicResources->seqId++;
+ break;
+ case 1:
+ if (free_temp_tile_data_buffers_if_possible() != TRUE)
+ {
+ LZDecompressWram(gUnknown_8E84A24, sTilemapBuffer);
+ sTMCaseDynamicResources->seqId++;
+ }
+ break;
+ case 2:
+ LZDecompressWram(gUnknown_8E84B70, GetBgTilemapBuffer(1));
+ sTMCaseDynamicResources->seqId++;
+ break;
+ case 3:
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ LoadCompressedPalette(gUnknown_8E84CB0, 0, 0x80);
+ else
+ LoadCompressedPalette(gUnknown_8E84D20, 0, 0x80);
+ sTMCaseDynamicResources->seqId++;
+ break;
+ case 4:
+ LoadCompressedObjectPic(&sTMSpriteSheet);
+ sTMCaseDynamicResources->seqId++;
+ break;
+ default:
+ LoadTMTypePalettes();
+ sTMCaseDynamicResources->seqId = 0;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void CreateTMCaseListMenuBuffers(void)
+{
+ struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
+ sListMenuItemsBuffer = Alloc((pocket->capacity + 1) * sizeof(struct ListMenuItem));
+ sListMenuStringsBuffer = Alloc(sTMCaseDynamicResources->numTMs * 29);
+}
+
+static void InitTMCaseListMenuItems(void)
+{
+ struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
+ u16 i;
+
+ for (i = 0; i < sTMCaseDynamicResources->numTMs; i++)
+ {
+ GetTMNumberAndMoveString(sListMenuStringsBuffer[i], pocket->itemSlots[i].itemId);
+ sListMenuItemsBuffer[i].unk_00 = sListMenuStringsBuffer[i];
+ sListMenuItemsBuffer[i].unk_04 = i;
+ }
+ sListMenuItemsBuffer[i].unk_00 = gText_Close;
+ sListMenuItemsBuffer[i].unk_04 = -2;
+ gMultiuseListMenuTemplate.items = sListMenuItemsBuffer;
+ gMultiuseListMenuTemplate.totalItems = sTMCaseDynamicResources->numTMs + 1;
+ gMultiuseListMenuTemplate.windowId = 0;
+ gMultiuseListMenuTemplate.header_X = 0;
+ gMultiuseListMenuTemplate.item_X = 8;
+ gMultiuseListMenuTemplate.cursor_X = 0;
+ gMultiuseListMenuTemplate.lettersSpacing = 0;
+ gMultiuseListMenuTemplate.itemVerticalPadding = 2;
+ gMultiuseListMenuTemplate.upText_Y = 2;
+ gMultiuseListMenuTemplate.maxShowed = sTMCaseDynamicResources->maxTMsShown;
+ gMultiuseListMenuTemplate.fontId = 2;
+ gMultiuseListMenuTemplate.cursorPal = 2;
+ gMultiuseListMenuTemplate.fillValue = 0;
+ gMultiuseListMenuTemplate.cursorShadowPal = 3;
+ gMultiuseListMenuTemplate.moveCursorFunc = TMCase_MoveCursorFunc;
+ gMultiuseListMenuTemplate.itemPrintFunc = TMCase_ItemPrintFunc;
+ gMultiuseListMenuTemplate.cursorKind = 0;
+ gMultiuseListMenuTemplate.scrollMultiple = 0;
+}
+
+static void GetTMNumberAndMoveString(u8 * dest, u16 itemId)
+{
+ StringCopy(gStringVar4, gText_FontSize0);
+ if (itemId >= ITEM_HM01)
+ {
+ StringAppend(gStringVar4, sText_ClearTo18);
+ StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01);
+ ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_HM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 1);
+ StringAppend(gStringVar4, gStringVar1);
+ }
+ else
+ {
+ StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01);
+ ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_TM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringAppend(gStringVar4, gStringVar1);
+ }
+ StringAppend(gStringVar4, sText_SingleSpace);
+ StringAppend(gStringVar4, gText_FontSize2);
+ StringAppend(gStringVar4, gMoveNames[ItemIdToBattleMoveId(itemId)]);
+ StringCopy(dest, gStringVar4);
+}
+
+static void TMCase_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+{
+ u16 itemId;
+
+ if (itemIndex == -2)
+ itemId = 0;
+ else
+ itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemIndex);
+
+ if (onInit != TRUE)
+ {
+ PlaySE(SE_SELECT);
+ InitSelectedTMSpriteData(sTMCaseDynamicResources->tmSpriteId, itemId);
+ }
+ TMCase_MoveCursor_UpdatePrintedDescription(itemIndex);
+ TMCase_MoveCursor_UpdatePrintedTMInfo(itemId);
+}
+
+static void TMCase_ItemPrintFunc(u8 windowId, s32 itemId, u8 y)
+{
+ if (itemId != -2)
+ {
+ if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemId)))
+ {
+ ConvertIntToDecimalStringN(gStringVar1, BagGetQuantityByPocketPosition(POCKET_TM_CASE, itemId), STR_CONV_MODE_RIGHT_ALIGN, 3);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ AddTextPrinterParameterized_ColorByIndex(windowId, 0, gStringVar4, 0x7E, y, 0, 0, 0xFF, 1);
+ }
+ else
+ {
+ PlaceHMTileInWindow(windowId, 8, y);
+ }
+ }
+}
+
+static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex)
+{
+ const u8 * str;
+ if (itemIndex != -2)
+ {
+ str = ItemId_GetDescription(BagGetItemIdByPocketPosition(POCKET_TM_CASE, itemIndex));
+ }
+ else
+ {
+ str = gText_TMCaseWillBePutAway;
+ }
+ FillWindowPixelBuffer(1, 0);
+ AddTextPrinterParameterized_ColorByIndex(1, 2, str, 2, 3, 1, 0, 0, 0);
+}
+
+static void FillBG2RowWithPalette_2timesNplus1(s32 a0)
+{
+ sub_80F6B08(2, 0, 12, 30, 8, 2 * a0 + 1);
+ schedule_bg_copy_tilemap_to_vram(2);
+}
+
+static void PrintListMenuCursorByID_WithColorIdx(u8 a0, u8 a1)
+{
+ PrintListMenuCursorAt_WithColorIdx(ListMenuGetYCoordForPrintingArrowCursor(a0), a1);
+}
+
+static void PrintListMenuCursorAt_WithColorIdx(u8 a0, u8 a1)
+{
+ if (a1 == 0xFF)
+ {
+ FillWindowPixelRect(0, 0, 0, a0, GetFontAttribute(2, 0), GetFontAttribute(2, 1));
+ CopyWindowToVram(0, 2);
+ }
+ else
+ {
+ AddTextPrinterParameterized_ColorByIndex(0, 2, gFameCheckerText_ListMenuCursor, 0, a0, 0, 0, 0, a1);
+ }
+}
+
+static void CreateTMCaseScrollIndicatorArrowPair_Main(void)
+{
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParametrized(2, 0xA0, 0x08, 0x58, sTMCaseDynamicResources->numTMs - sTMCaseDynamicResources->maxTMsShown + 1, 0x6E, 0x6E, &sTMCaseStaticResources.scrollOffset);
+}
+
+static void CreateTMCaseScrollIndicatorArrowPair_SellQuantitySelect(void)
+{
+ sTMCaseDynamicResources->currItem = 1;
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPairParametrized(2, 0x98, 0x48, 0x68, 2, 0x6E, 0x6E, &sTMCaseDynamicResources->currItem);
+}
+
+static void RemoveTMCaseScrollIndicatorArrowPair(void)
+{
+ if (sTMCaseDynamicResources->scrollIndicatorArrowPairId != 0xFF)
+ {
+ RemoveScrollIndicatorArrowPair(sTMCaseDynamicResources->scrollIndicatorArrowPairId);
+ sTMCaseDynamicResources->scrollIndicatorArrowPairId = 0xFF;
+ }
+}
+
+void ResetTMCaseCursorPos(void)
+{
+ sTMCaseStaticResources.selectedRow = 0;
+ sTMCaseStaticResources.scrollOffset = 0;
+}
+
+static void TMCaseSetup_GetTMCount(void)
+{
+ struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1];
+ u16 i;
+
+ sub_809A584(pocket->itemSlots, pocket->capacity);
+ sTMCaseDynamicResources->numTMs = 0;
+ for (i = 0; i < pocket->capacity; i++)
+ {
+ if (pocket->itemSlots[i].itemId == ITEM_NONE)
+ break;
+ sTMCaseDynamicResources->numTMs++;
+ }
+ sTMCaseDynamicResources->maxTMsShown = min(sTMCaseDynamicResources->numTMs + 1, 5);
+}
+
+static void TMCaseSetup_InitListMenuPositions(void)
+{
+ if (sTMCaseStaticResources.scrollOffset != 0)
+ {
+ if (sTMCaseStaticResources.scrollOffset + sTMCaseDynamicResources->maxTMsShown > sTMCaseDynamicResources->numTMs + 1)
+ sTMCaseStaticResources.scrollOffset = sTMCaseDynamicResources->numTMs + 1 - sTMCaseDynamicResources->maxTMsShown;
+ }
+ if (sTMCaseStaticResources.scrollOffset + sTMCaseStaticResources.selectedRow >= sTMCaseDynamicResources->numTMs + 1)
+ {
+ if (sTMCaseDynamicResources->numTMs + 1 < 2)
+ sTMCaseStaticResources.selectedRow = 0;
+ else
+ sTMCaseStaticResources.selectedRow = sTMCaseDynamicResources->numTMs;
+ }
+}
+
+static void TMCaseSetup_UpdateVisualMenuOffset(void)
+{
+ u8 i;
+ if (sTMCaseStaticResources.selectedRow > 3)
+ {
+ for (i = 0; i <= sTMCaseStaticResources.selectedRow - 3 && sTMCaseStaticResources.scrollOffset + sTMCaseDynamicResources->maxTMsShown != sTMCaseDynamicResources->numTMs + 1; i++)
+ {
+ do {} while (0);
+ sTMCaseStaticResources.selectedRow--;
+ sTMCaseStaticResources.scrollOffset++;
+ }
+ }
+}
+
+static void DestroyTMCaseBuffers(void)
+{
+ if (sTMCaseDynamicResources != NULL)
+ Free(sTMCaseDynamicResources);
+ if (sTilemapBuffer != NULL)
+ Free(sTilemapBuffer);
+ if (sListMenuItemsBuffer != NULL)
+ Free(sListMenuItemsBuffer);
+ if (sListMenuStringsBuffer != NULL)
+ Free(sListMenuStringsBuffer);
+ if (sTMSpritePaletteBuffer != NULL)
+ Free(sTMSpritePaletteBuffer);
+ FreeAllWindowBuffers();
+}
+
+static void Task_BeginFadeOutFromTMCase(u8 taskId)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK);
+ gTasks[taskId].func = Task_FadeOutAndCloseTMCase;
+}
+
+static void Task_FadeOutAndCloseTMCase(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ if (sTMCaseDynamicResources->savedCallback != NULL)
+ SetMainCallback2(sTMCaseDynamicResources->savedCallback);
+ else
+ SetMainCallback2(sTMCaseStaticResources.savedCallback);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ DestroyTMCaseBuffers();
+ DestroyTask(taskId);
+ }
+}
+
+static void Task_TMCaseMain(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ s32 input;
+
+ if (!gPaletteFade.active)
+ {
+ if (sub_80BF72C() != TRUE)
+ {
+ input = ListMenuHandleInput(data[0]);
+ get_coro_args_x18_x1A(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ if (JOY_NEW(SELECT_BUTTON) && sTMCaseStaticResources.unk_05 == 1)
+ {
+ PlaySE(SE_SELECT);
+ gSpecialVar_ItemId = ITEM_NONE;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+ else
+ {
+ switch (input)
+ {
+ case -1:
+ break;
+ case -2:
+ PlaySE(SE_SELECT);
+ gSpecialVar_ItemId = 0;
+ Task_BeginFadeOutFromTMCase(taskId);
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ FillBG2RowWithPalette_2timesNplus1(1);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ PrintListMenuCursorByID_WithColorIdx(data[0], 2);
+ data[1] = input;
+ data[2] = BagGetQuantityByPocketPosition(POCKET_TM_CASE, input);
+ gSpecialVar_ItemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, input);
+ gTasks[taskId].func = sSelectTMActionTasks[sTMCaseStaticResources.tmCaseMenuType];
+ break;
+ }
+ }
+ }
+ }
+}
+
+static void Subtask_ReturnToTMCaseMain(u8 taskId)
+{
+ FillBG2RowWithPalette_2timesNplus1(0);
+ CreateTMCaseScrollIndicatorArrowPair_Main();
+ gTasks[taskId].func = Task_TMCaseMain;
+}
+
+static void Task_SelectTMAction_FromFieldBag(u8 taskId)
+{
+ u8 * strbuf;
+ TMCase_SetWindowBorder2(2);
+ if (!sub_80BF708() && InUnionRoom() != TRUE)
+ {
+ AddTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, 0);
+ sTMCaseDynamicResources->menuActionIndices = sMenuActionIndices_Field;
+ sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_Field);
+ }
+ else
+ {
+ AddTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId, 1);
+ sTMCaseDynamicResources->menuActionIndices = sMenuActionIndices_UnionRoom;
+ sTMCaseDynamicResources->numMenuActions = NELEMS(sMenuActionIndices_UnionRoom);
+ }
+ AddItemMenuActionTextPrinters(sTMCaseDynamicResources->contextMenuWindowId, 2, GetMenuCursorDimensionByFont(2, 0), 2, 0, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, sMenuActions_UseGiveExit, sTMCaseDynamicResources->menuActionIndices);
+ ProgramAndPlaceMenuCursorOnWindow(sTMCaseDynamicResources->contextMenuWindowId, 2, 0, 2, GetFontAttribute(2, 1) + 2, sTMCaseDynamicResources->numMenuActions, 0);
+ strbuf = Alloc(256);
+ GetTMNumberAndMoveString(strbuf, gSpecialVar_ItemId);
+ StringAppend(strbuf, gText_IsSelected);
+ AddTextPrinterParameterized_ColorByIndex(2, 2, strbuf, 0, 2, 1, 0, 0, 1);
+ Free(strbuf);
+ if (itemid_is_unique(gSpecialVar_ItemId))
+ {
+ PlaceHMTileInWindow(2, 0, 2);
+ CopyWindowToVram(2, 2);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ gTasks[taskId].func = Task_TMContextMenu_HandleInput;
+}
+
+static void Task_TMContextMenu_HandleInput(u8 taskId)
+{
+ s8 input;
+
+ if (sub_80BF72C() != TRUE)
+ {
+ input = ProcessMenuInputNoWrapAround();
+ switch (input)
+ {
+ case -1:
+ PlaySE(SE_SELECT);
+ sMenuActions_UseGiveExit[sTMCaseDynamicResources->menuActionIndices[sTMCaseDynamicResources->numMenuActions - 1]].func.void_u8(taskId);
+ break;
+ case -2:
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ sMenuActions_UseGiveExit[sTMCaseDynamicResources->menuActionIndices[input]].func.void_u8(taskId);
+ break;
+ }
+ }
+}
+
+static void TMHMContextMenuAction_Use(u8 taskId)
+{
+ RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
+ sub_810F4D8(2, 0);
+ ClearWindowTilemap(2);
+ PutWindowTilemap(0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ if (CalculatePlayerPartyCount() == 0)
+ {
+ PrintError_ThereIsNoPokemon(taskId);
+ }
+ else
+ {
+ gUnknown_3005E98 = sub_8125B40;
+ sTMCaseDynamicResources->savedCallback = sub_8124C8C;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+}
+
+static void TMHMContextMenuAction_Give(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+ u16 itemId = BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]);
+ RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
+ sub_810F4D8(2, 0);
+ ClearWindowTilemap(2);
+ PutWindowTilemap(1);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ if (!itemid_is_unique(itemId))
+ {
+ if (CalculatePlayerPartyCount() == 0)
+ {
+ PrintError_ThereIsNoPokemon(taskId);
+ }
+ else
+ {
+ sTMCaseDynamicResources->savedCallback = sub_8126EDC;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+ }
+ else
+ {
+ PrintError_ItemCantBeHeld(taskId);
+ }
+}
+
+static void PrintError_ThereIsNoPokemon(u8 taskId)
+{
+ TMCase_PrintMessageWithFollowupTask(taskId, 2, gText_ThereIsNoPokemon, Task_WaitButtonAfterErrorPrint);
+}
+
+static void PrintError_ItemCantBeHeld(u8 taskId)
+{
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_ItemCantBeHeld);
+ TMCase_PrintMessageWithFollowupTask(taskId, 2, gStringVar4, Task_WaitButtonAfterErrorPrint);
+}
+
+static void Task_WaitButtonAfterErrorPrint(u8 taskId)
+{
+ if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ Subtask_CloseContextMenuAndReturnToMain(taskId);
+ }
+}
+
+static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ sub_810F260(6, 0);
+ ClearWindowTilemap(6);
+ PutWindowTilemap(1);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ Subtask_ReturnToTMCaseMain(taskId);
+}
+
+static void TMHMContextMenuAction_Exit(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ RemoveTMContextMenu(&sTMCaseDynamicResources->contextMenuWindowId);
+ sub_810F4D8(2, 0);
+ ClearWindowTilemap(2);
+ PutWindowTilemap(0);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ PutWindowTilemap(1);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ Subtask_ReturnToTMCaseMain(taskId);
+}
+
+static void Task_SelectTMAction_Type1(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])))
+ {
+ sTMCaseDynamicResources->savedCallback = c2_8123744;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+ else
+ {
+ PrintError_ItemCantBeHeld(taskId);
+ }
+}
+
+static void Task_SelectTMAction_Type3(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])))
+ {
+ sTMCaseDynamicResources->savedCallback = sub_808CE60;
+ Task_BeginFadeOutFromTMCase(taskId);
+ }
+ else
+ {
+ PrintError_ItemCantBeHeld(taskId);
+ }
+}
+
+static void Task_SelectTMAction_FromSellMenu(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (itemid_get_market_price(gSpecialVar_ItemId) == 0)
+ {
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
+ TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain);
+ }
+ else
+ {
+ data[8] = 1;
+ if (data[2] == 1)
+ {
+ HandlePrintMoneyOnHand();
+ Task_AskConfirmSaleWithAmount(taskId);
+ }
+ else
+ {
+ if (data[2] > 99)
+ data[2] = 99;
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
+ TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_InitQuantitySelectUI);
+ }
+ }
+}
+
+static void Task_AskConfirmSaleWithAmount(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
+ StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
+ TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_PlaceYesNoBox);
+}
+
+static void Task_PlaceYesNoBox(u8 taskId)
+{
+ HandleCreateYesNoMenu(taskId, &sYesNoFuncTable);
+}
+
+static void Task_SaleOfTMsCancelled(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ sub_810F4D8(8, 0);
+ sub_810F260(6, 0);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ PutWindowTilemap(3);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ Subtask_ReturnToTMCaseMain(taskId);
+}
+
+static void Task_InitQuantitySelectUI(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ TMCase_SetWindowBorder1(7);
+ ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ AddTextPrinterParameterized_ColorByIndex(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
+ 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);
+ gTasks[taskId].func = Task_QuantitySelect_HandleInput;
+}
+
+static void SellTM_PrintQuantityAndSalePrice(s16 quantity, s32 amount)
+{
+ FillWindowPixelBuffer(7, 0x11);
+ ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
+ AddTextPrinterParameterized_ColorByIndex(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1);
+ PrintMoneyAmount(7, 0x38, 0x0A, amount, 0);
+}
+
+static void Task_QuantitySelect_HandleInput(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (sub_80BF848(&data[8], data[2]) == 1)
+ {
+ SellTM_PrintQuantityAndSalePrice(data[8], itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]);
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ sub_810F4D8(7, 0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ Task_AskConfirmSaleWithAmount(taskId);
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ sub_810F4D8(7, 0);
+ sub_810F4D8(8, 0);
+ sub_810F260(6, 0);
+ PutWindowTilemap(3);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ PrintListMenuCursorByID_WithColorIdx(data[0], 1);
+ Subtask_ReturnToTMCaseMain(taskId);
+ }
+}
+
+static void Task_PrintSaleConfirmedText(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ PutWindowTilemap(0);
+ schedule_bg_copy_tilemap_to_vram(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);
+ TMCase_PrintMessageWithFollowupTask(taskId, 2, gStringVar4, Task_DoSaleOfTMs);
+}
+
+static void Task_DoSaleOfTMs(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ PlaySE(0xF8);
+ RemoveBagItem(gSpecialVar_ItemId, data[8]);
+ AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]);
+ sub_809C09C(gSpecialVar_ItemId, data[8], 2);
+ DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
+ TMCaseSetup_GetTMCount();
+ TMCaseSetup_InitListMenuPositions();
+ InitTMCaseListMenuItems();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
+ PrintListMenuCursorByID_WithColorIdx(data[0], 2);
+ PrintMoneyAmountInMoneyBox(8, GetMoney(&gSaveBlock1Ptr->money), 0);
+ gTasks[taskId].func = Task_AfterSale_ReturnToList;
+}
+
+static void Task_AfterSale_ReturnToList(u8 taskId)
+{
+ if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ sub_810F4D8(8, 0);
+ sub_810F260(6, 0);
+ PutWindowTilemap(1);
+ PutWindowTilemap(3);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ Subtask_CloseContextMenuAndReturnToMain(taskId);
+ }
+}
+
+void PokeDude_InitTMCase(void)
+{
+ sPokeDudePackBackup = AllocZeroed(sizeof(*sPokeDudePackBackup));
+ memcpy(sPokeDudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
+ memcpy(sPokeDudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
+ sPokeDudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
+ sPokeDudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
+ ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM));
+ ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems));
+ ResetTMCaseCursorPos();
+ AddBagItem(ITEM_TM01, 1);
+ AddBagItem(ITEM_TM03, 1);
+ AddBagItem(ITEM_TM09, 1);
+ AddBagItem(ITEM_TM35, 1);
+ InitTMCase(4, CB2_ReturnToTeachyTV, 0);
+}
+
+static void Task_TMCaseDude1(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ data[8] = 0;
+ data[9] = 0;
+ gTasks[taskId].func = Task_TMCaseDude_Playback;
+ }
+}
+
+static void Task_TMCaseDude_Playback(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (JOY_NEW(B_BUTTON))
+ {
+ if (data[8] < 21)
+ {
+ data[8] = 21;
+ sub_815AC20();
+ }
+ }
+
+ switch (data[8])
+ {
+ case 0:
+ BeginNormalPaletteFade(0xFFFF8405, 4, 0, 6, 0);
+ FillBG2RowWithPalette_2timesNplus1(1);
+ data[8]++;
+ break;
+ case 1:
+ case 11:
+ if (!gPaletteFade.active)
+ {
+ data[9]++;
+ if (data[9] > 0x65)
+ {
+ data[9] = 0;
+ data[8]++;
+ }
+ }
+ break;
+ case 2:
+ case 3:
+ case 4:
+ case 12:
+ case 13:
+ case 14:
+ if (data[9] == 0)
+ {
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = DPAD_DOWN;
+ ListMenuHandleInput(data[0]);
+ }
+ data[9]++;
+ if (data[9] > 0x65)
+ {
+ data[9] = 0;
+ data[8]++;
+ }
+ break;
+ case 5:
+ case 6:
+ case 7:
+ case 15:
+ case 16:
+ case 17:
+ if (data[9] == 0)
+ {
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = DPAD_UP;
+ ListMenuHandleInput(data[0]);
+ }
+ data[9]++;
+ if (data[9] > 0x65)
+ {
+ data[9] = 0;
+ data[8]++;
+ }
+ break;
+ case 8:
+ FillBG2RowWithPalette_2timesNplus1(1);
+ TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_TMTypes, 0);
+ gTasks[taskId].func = Task_TMCaseDude_Playback;
+ data[8]++;
+ break;
+ case 9:
+ case 19:
+ RunTextPrinters();
+ if (!IsTextPrinterActive(6))
+ data[8]++;
+ break;
+ case 10:
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ {
+ FillBG2RowWithPalette_2timesNplus1(0);
+ BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0);
+ sub_810F260(6, 0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ data[8]++;
+ }
+ break;
+ case 18:
+ FillBG2RowWithPalette_2timesNplus1(1);
+ TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_ReadTMDescription, NULL);
+ gTasks[taskId].func = Task_TMCaseDude_Playback; // this function
+ data[8]++;
+ break;
+ case 20:
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ data[8]++;
+ break;
+ case 21:
+ if (!gPaletteFade.active)
+ {
+ memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
+ memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
+ DestroyListMenu(data[0], NULL, NULL);
+ sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160;
+ sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162;
+ Free(sPokeDudePackBackup);
+ CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
+ sub_8108CF0();
+ BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0);
+ data[8]++;
+ }
+ break;
+ default:
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(sTMCaseStaticResources.savedCallback);
+ RemoveTMCaseScrollIndicatorArrowPair();
+ DestroyTMCaseBuffers();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void InitWindowTemplatesAndPals(void)
+{
+ u8 i;
+
+ InitWindows(sWindowTemplates);
+ DeactivateAllTextPrinters();
+ sub_815001C(0, 0x5B, 0xE0);
+ sub_814FEAC(0, 0x64, 0xB0);
+ sub_814FF2C(0, 0x78, 0xD0);
+ LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20);
+ LoadPalette(gTMCaseMainWindowPalette, 0xA0, 0x20);
+ LoadPalette(sPal3Override, 0xF6, 0x04);
+ LoadPalette(sPal3Override, 0xD6, 0x04);
+ sub_8107D38(0xc0, 0x01);
+ for (i = 0; i < 9; i++)
+ FillWindowPixelBuffer(i, 0x00);
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ PutWindowTilemap(3);
+ PutWindowTilemap(4);
+ PutWindowTilemap(5);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
+{
+ AddTextPrinterParametrized2(windowId, fontId, x, y, letterSpacing, lineSpacing, &sTextColors[colorIdx], speed, str);
+}
+
+static void TMCase_SetWindowBorder1(u8 windowId)
+{
+ SetWindowBorderStyle(windowId, FALSE, 0x5B, 0x0E);
+}
+
+static void TMCase_SetWindowBorder2(u8 windowId)
+{
+ SetWindowBorderStyle(windowId, FALSE, 0x78, 0x0D);
+}
+
+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);
+}
+
+static void PrintStringTMCaseOnWindow3(void)
+{
+ u32 distance = 72 - GetStringWidth(1, gText_TMCase, 0);
+ box_print(3, 1, distance / 2, 1, &sTextColors[0], 0, gText_TMCase);
+}
+
+static void DrawMoveInfoUIMarkers(void)
+{
+ blit_move_info_icon(4, 19, 0, 0);
+ blit_move_info_icon(4, 20, 0, 12);
+ blit_move_info_icon(4, 21, 0, 24);
+ blit_move_info_icon(4, 22, 0, 36);
+ CopyWindowToVram(4, 2);
+}
+
+static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId)
+{
+ u8 i;
+ u16 move;
+ const u8 * str;
+
+ FillWindowPixelRect(5, 0, 0, 0, 40, 48);
+ if (itemId == ITEM_NONE)
+ {
+ for (i = 0; i < 4; i++)
+ {
+ AddTextPrinterParameterized_ColorByIndex(5, 3, gText_ThreeHyphens, 7, 12 * i, 0, 0, 0xFF, 3);
+ }
+ CopyWindowToVram(5, 2);
+ }
+ else
+ {
+ move = ItemIdToBattleMoveId(itemId);
+ blit_move_info_icon(5, gBattleMoves[move].type + 1, 0, 0);
+ if (gBattleMoves[move].power < 2)
+ str = gText_ThreeHyphens;
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].power, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ str = gStringVar1;
+ }
+ AddTextPrinterParameterized_ColorByIndex(5, 3, str, 7, 12, 0, 0, 0xFF, 3);
+ if (gBattleMoves[move].accuracy == 0)
+ str = gText_ThreeHyphens;
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ str = gStringVar1;
+ }
+ AddTextPrinterParameterized_ColorByIndex(5, 3, str, 7, 24, 0, 0, 0xFF, 3);
+ ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].pp, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ AddTextPrinterParameterized_ColorByIndex(5, 3, gStringVar1, 7, 36, 0, 0, 0xFF, 3);
+ CopyWindowToVram(5, 2);
+ }
+}
+
+static void PlaceHMTileInWindow(u8 windowId, u8 x, u8 y)
+{
+ BlitBitmapToWindow(windowId, gUnknown_8E99118, x, y, 16, 12);
+}
+
+static void HandlePrintMoneyOnHand(void)
+{
+ PrintMoneyAmountInMoneyBoxWithBorder(8, 0x78, 0xD, GetMoney(&gSaveBlock1Ptr->money));
+}
+
+static void HandleCreateYesNoMenu(u8 taskId, const struct YesNoFuncTable *ptrs)
+{
+ CreateYesNoMenuWithCallbacks(taskId, &sYesNoWindowTemplate, 2, 0, 2, 0x5B, 0x0E, ptrs);
+}
+
+static u8 AddTMContextMenu(u8 * a0, u8 a1)
+{
+ if (*a0 == 0xFF)
+ {
+ *a0 = AddWindow(&sTMContextWindowTemplates[a1]);
+ TMCase_SetWindowBorder1(*a0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ }
+ return *a0;
+}
+
+static void RemoveTMContextMenu(u8 * a0)
+{
+ sub_810F4D8(*a0, FALSE);
+ ClearWindowTilemap(*a0);
+ RemoveWindow(*a0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ *a0 = 0xFF;
+}
+
+static u8 CreateTMSprite(u16 itemId)
+{
+ u8 spriteId = CreateSprite(&sTMSpriteTemplate, 0x29, 0x2E, 0);
+ u8 r5;
+ if (itemId == ITEM_NONE)
+ {
+ UpdateTMSpritePosition(&gSprites[spriteId], 0xFF);
+ return spriteId;
+ }
+ else
+ {
+ r5 = itemId - 33;
+ SetTMSpriteAnim(&gSprites[spriteId], r5);
+ TintTMSpriteByType(gBattleMoves[ItemIdToBattleMoveId(itemId)].type);
+ UpdateTMSpritePosition(&gSprites[spriteId], r5);
+ return spriteId;
+ }
+}
+
+static void SetTMSpriteAnim(struct Sprite * sprite, u8 idx)
+{
+ if (idx >= 50)
+ StartSpriteAnim(sprite, 1);
+ else
+ StartSpriteAnim(sprite, 0);
+}
+
+static void TintTMSpriteByType(u8 type)
+{
+ u8 palIndex = IndexOfSpritePaletteTag(TM_CASE_TM_TAG) << 4;
+ LoadPalette(sTMSpritePaletteBuffer + sTMSpritePaletteOffsetByType[type], 0x100 | palIndex, 0x20);
+ if (sTMCaseStaticResources.tmCaseMenuType == 4)
+ {
+ BlendPalettes(1 << (0x10 + palIndex), 4, RGB_BLACK);
+ }
+}
+
+static void UpdateTMSpritePosition(struct Sprite * sprite, u8 var)
+{
+ s32 x, y;
+ if (var == 0xFF)
+ {
+ x = 0x1B;
+ y = 0x36;
+ sprite->pos2.y = 0x14;
+ }
+ else
+ {
+ if (var >= 50)
+ var -= 50;
+ else
+ var += 8;
+ x = 0x29 - (((0xE00 * var) / 58) >> 8);
+ y = 0x2E + (((0x800 * var) / 58) >> 8);
+ }
+ sprite->pos1.x = x;
+ sprite->pos1.y = y;
+}
+
+static void InitSelectedTMSpriteData(u8 spriteId, u16 itemId)
+{
+ gSprites[spriteId].data[0] = itemId;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].callback = SpriteCB_MoveTMSpriteInCase;
+}
+
+static void SpriteCB_MoveTMSpriteInCase(struct Sprite * sprite)
+{
+ switch (sprite->data[1])
+ {
+ case 0:
+ if (sprite->pos2.y >= 20)
+ {
+ if (sprite->data[0] != ITEM_NONE)
+ {
+ sprite->data[1]++;
+ TintTMSpriteByType(gBattleMoves[ItemIdToBattleMoveId(sprite->data[0])].type);
+ sprite->data[0] -= ITEM_TM01;
+ SetTMSpriteAnim(sprite, sprite->data[0]);
+ UpdateTMSpritePosition(sprite, sprite->data[0]);
+ }
+ else
+ sprite->callback = SpriteCallbackDummy;
+ }
+ else
+ {
+ sprite->pos2.y += 10;
+ }
+ break;
+ case 1:
+ if (sprite->pos2.y <= 0)
+ sprite->callback = SpriteCallbackDummy;
+ else
+ sprite->pos2.y -= 10;
+ }
+}
+
+static void LoadTMTypePalettes(void)
+{
+ struct SpritePalette spritePalette;
+
+ sTMSpritePaletteBuffer = Alloc(0x110 * sizeof(u16));
+ LZDecompressWram(gUnknown_8E84F20, sTMSpritePaletteBuffer);
+ LZDecompressWram(gUnknown_8E85068, sTMSpritePaletteBuffer + 0x100);
+ spritePalette.data = sTMSpritePaletteBuffer + 0x110;
+ spritePalette.tag = TM_CASE_TM_TAG;
+ LoadSpritePalette(&spritePalette);
+}
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index ef34c1629..e914d7ac6 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -1336,7 +1336,7 @@ void sub_815E720(void)
sub_815EC0C();
windowId = AddWindow(gUnknown_847A218);
sub_80F6E9C();
- sub_80F6F1C(windowId, FALSE);
+ DrawStdWindowFrame(windowId, FALSE);
AddTextPrinterParameterized(windowId, 2, gUnknown_83FE982, 0x4A, 0, 0xFF, NULL);
for (i = 0; i < 4; i++)
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index 579800576..9cf6a6e04 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -663,7 +663,7 @@ static void Task_VsSeeker_3(u8 taskId)
{
if (sVsSeeker->responseCode == 2)
StartAllRespondantIdleMovements();
- sub_80F6F54(0, 1);
+ ClearDialogWindowAndFrame(0, 1);
sub_80696C0();
ScriptContext2_Disable();
DestroyTask(taskId);
diff --git a/src/window.c b/src/window.c
index e760fc8e4..71cfa6898 100644
--- a/src/window.c
+++ b/src/window.c
@@ -320,7 +320,7 @@ void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height)
}
}
-void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height)
+void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height)
{
BlitBitmapRectToWindow(windowId, pixels, 0, 0, width, height, x, y, width, height);
}
diff --git a/sym_common.txt b/sym_common.txt
index 16c275b01..4adfe3bac 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -301,7 +301,7 @@ gUnknown_3005E20: @ 3005E20
gUnknown_3005E60: @ 3005E60
.space 0x10
-gUnknown_3005E70: @ 3005E70
+gMultiuseListMenuTemplate: @ 3005E70
.space 0x18
.include "quest_log.o"
diff --git a/sym_ewram.txt b/sym_ewram.txt
index b978e59c4..5a9795eb1 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -116,28 +116,28 @@ gUnknown_2022870: @ 2022870
gUnknown_2022874: @ 2022874
.space 0x100
-gUnknown_2022974: @ 2022974
+gBattle_BG0_X: @ 2022974
.space 0x2
-gUnknown_2022976: @ 2022976
+gBattle_BG0_Y: @ 2022976
.space 0x2
-gUnknown_2022978: @ 2022978
+gBattle_BG1_X: @ 2022978
.space 0x2
-gUnknown_202297A: @ 202297A
+gBattle_BG1_Y: @ 202297A
.space 0x2
-gUnknown_202297C: @ 202297C
+gBattle_BG2_X: @ 202297C
.space 0x2
-gUnknown_202297E: @ 202297E
+gBattle_BG2_Y: @ 202297E
.space 0x2
-gUnknown_2022980: @ 2022980
+gBattle_BG3_X: @ 2022980
.space 0x2
-gUnknown_2022982: @ 2022982
+gBattle_BG3_Y: @ 2022982
.space 0x2
gUnknown_2022984: @ 2022984
@@ -869,30 +869,9 @@ gUnknown_20386DC: @ 20386DC
gFieldEffectArguments: @ 20386E0
.space 0x20
-gUnknown_2038700: @ 2038700
- .space 0x2
-
-gUnknown_2038702: @ 2038702
- .space 0x2
-
-gUnknown_2038704: @ 2038704
- .space 0x27C
-
-gUnknown_2038980: @ 2038980
- .space 0x500
-
-gUnknown_2038E80: @ 2038E80
- .space 0x140
-
-gUnknown_2038FC0: @ 2038FC0
- .space 0x640
-
-gUnknown_2039600: @ 2039600
- .space 0x1C
-
-gUnknown_203961C: @ 203961C
- .space 0x4
+ .include "src/scanline_effect.o"
+ .align 2
gUnknown_2039620: @ 2039620
.space 0x4
@@ -992,14 +971,8 @@ gUnknown_2039884: @ 2039884
gUnknown_2039888: @ 2039888
.space 0x4
-gUnknown_203988C: @ 203988C
- .space 0x18
-
-gUnknown_20398A4: @ 20398A4
- .space 0x8
-
-gUnknown_20398AC: @ 20398AC
- .space 0x8
+gBagPockets: @ 203988C
+ .space 0x28
gUnknown_20398B4: @ 20398B4
.space 0x4
@@ -1531,33 +1504,8 @@ gUnknown_203B0EE: @ 203B0EE
.space 0x2
.include "src/fame_checker.o"
-
-gUnknown_203B108: @ 203B108
- .space 0x4
-
-gUnknown_203B10C: @ 203B10C
- .space 0xA
-
-gUnknown_203B116: @ 203B116
- .space 0x2
-
-gUnknown_203B118: @ 203B118
- .space 0x4
-
-gUnknown_203B11C: @ 203B11C
- .space 0x4
-
-gUnknown_203B120: @ 203B120
- .space 0x4
-
-gUnknown_203B124: @ 203B124
- .space 0x4
-
-gUnknown_203B128: @ 203B128
- .space 0x4
-
-gUnknown_203B12C: @ 203B12C
- .space 0x4
+ .include "src/oak_speech.o"
+ .include "src/tm_case.o"
gUnknown_203B130: @ 203B130
.space 0x10
@@ -1661,10 +1609,10 @@ gUnknown_203F3A0: @ 203F3A0
gUnknown_203F3A4: @ 203F3A4
.space 0x4
-gUnknown_203F3A8: @ 203F3A8
+sLocationHistory: @ 203F3A8
.space 0x6
-gUnknown_203F3AE: @ 203F3AE
+sRoamerLocation: @ 203F3AE
.space 0x2
gUnknown_203F3B0: @ 203F3B0
@@ -1711,7 +1659,7 @@ gUnknown_203F43C: @ 203F43C
gUnknown_203F440: @ 203F440
.space 0x4
-gUnknown_203F444: @ 203F444
+gTeachyTV_StaticResources: @ 203F444
.space 0x6
gUnknown_203F44A: @ 203F44A
diff --git a/tools/gbafix/gbafix.c b/tools/gbafix/gbafix.c
index d5e2f62ab..81c8c04c0 100644
--- a/tools/gbafix/gbafix.c
+++ b/tools/gbafix/gbafix.c
@@ -160,7 +160,7 @@ int main(int argc, char *argv[])
// get filename
for (arg=1; arg<argc; arg++)
{
- if ((ARGV[0] != '-')) { argfile=ARGV; }
+ if (ARGV[0] != '-') { argfile=ARGV; }
if (strncmp("--silent", &ARGV[0], 7) == 0) { silent = 1; }
}
diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile
index 339585b92..93bea4bdc 100644
--- a/tools/gbagfx/Makefile
+++ b/tools/gbagfx/Makefile
@@ -1,16 +1,19 @@
CC = gcc
-CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK
+CFLAGS = -Wall -Wextra -Werror -Wno-sign-compare -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK
LIBS = -lpng -lz
-SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c rl.c util.c font.c
+SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c rl.c util.c font.c huff.c
.PHONY: all clean
all: gbagfx
@:
+gbagfx-debug: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h
+ $(CC) $(CFLAGS) -DDEBUG $(SRCS) -o $@ $(LDFLAGS) $(LIBS)
+
gbagfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h
$(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS)
diff --git a/tools/gbagfx/gfx.c b/tools/gbagfx/gfx.c
index da92771b9..f927deed9 100644
--- a/tools/gbagfx/gfx.c
+++ b/tools/gbagfx/gfx.c
@@ -4,7 +4,6 @@
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
-#include <string.h>
#include "global.h"
#include "gfx.h"
#include "util.h"
@@ -19,140 +18,6 @@
#define DOWNCONVERT_BIT_DEPTH(x) ((x) / 8)
-static inline void swap_bytes(unsigned char * orig, unsigned char * dest) {
- unsigned char tmp = *orig;
- *orig = *dest;
- *dest = tmp;
-}
-
-static inline unsigned char swap_nybbles(unsigned char orig)
-{
- return (orig >> 4) | (orig << 4);
-}
-
-static inline void swap_bytes_nybswap(unsigned char * orig, unsigned char * dest) {
- unsigned char tmp = swap_nybbles(*orig);
- *orig = swap_nybbles(*dest);
- *dest = tmp;
-}
-
-static inline unsigned char reverse_bits(unsigned char orig) {
- unsigned char dest = 0;
- for (int i = 0; i < 8; i++)
- {
- dest <<= 1;
- dest |= orig & 1;
- orig >>= 1;
- }
- return dest;
-}
-
-static void vflip(unsigned char * tile, int bitDepth) {
- for (int x = 0; x < bitDepth; x++)
- {
- unsigned char * col = tile + x;
- swap_bytes(col + 0 * bitDepth, col + 7 * bitDepth);
- swap_bytes(col + 1 * bitDepth, col + 6 * bitDepth);
- swap_bytes(col + 2 * bitDepth, col + 5 * bitDepth);
- swap_bytes(col + 3 * bitDepth, col + 4 * bitDepth);
- }
-}
-
-static void hflip(unsigned char * tile, int bitDepth) {
- for (int y = 0; y < 8; y++)
- {
- unsigned char * row = tile + y * bitDepth;
- switch (bitDepth)
- {
- case 1:
- *row = reverse_bits(*row);
- break;
- case 4:
- swap_bytes_nybswap(row + 0, row + 3);
- swap_bytes_nybswap(row + 1, row + 2);
- break;
- case 8:
- swap_bytes(row + 0, row + 56);
- swap_bytes(row + 8, row + 48);
- swap_bytes(row + 16, row + 40);
- swap_bytes(row + 24, row + 32);
- break;
- }
- }
-}
-
-static unsigned char * ApplyTilemap(struct Image *image, unsigned char * buffer, int bitDepth)
-{
- int tileSize = bitDepth * 8;
- unsigned char * tiles = calloc(image->tileMap.numTiles, tileSize);
- int i;
- struct Tile tileInfo;
-
- for (i = 0; i < image->tileMap.numTiles; i++) {
- tileInfo = image->tileMap.data[i];
- unsigned char * tile = tiles + i * tileSize;
- memcpy(tile, buffer + tileInfo.index * tileSize, tileSize);
- if (tileInfo.xflip)
- hflip(tile, bitDepth);
- if (tileInfo.yflip)
- vflip(tile, bitDepth);
- }
- free(buffer);
- return tiles;
-}
-
-static unsigned char * BuildTilemap(struct Image *image, unsigned char * buffer, int * bufferSize)
-{
- int tileSize = image->bitDepth * 8;
- unsigned char * outputPixels = calloc(1024, tileSize);
- int nTilesIn = image->height * image->width / 64;
- image->tileMap.data = calloc(nTilesIn, sizeof(struct Tilemap));
- image->tileMap.numTiles = nTilesIn;
- int nTilesOut = 0;
- unsigned char curTile1[tileSize];
- unsigned char curTile2[tileSize];
-
- for (int i = 0; i < nTilesIn; i++) {
- bool xflip = false;
- bool yflip = false;
- int j;
- memcpy(curTile1, buffer + i * tileSize, tileSize);
-
- for (j = 0; j < nTilesOut; j++) {
- memcpy(curTile2, outputPixels + j * tileSize, tileSize);
- if (memcmp(curTile1, curTile2, tileSize) == 0)
- break;
- xflip = true;
- hflip(curTile2, image->bitDepth);
- if (memcmp(curTile1, curTile2, tileSize) == 0)
- break;
- yflip = true;
- vflip(curTile2, image->bitDepth);
- if (memcmp(curTile1, curTile2, tileSize) == 0)
- break;
- xflip = false;
- hflip(curTile2, image->bitDepth);
- if (memcmp(curTile1, curTile2, tileSize) == 0)
- break;
- yflip = false;
- }
- image->tileMap.data[i].index = j;
- image->tileMap.data[i].xflip = xflip;
- image->tileMap.data[i].yflip = yflip;
- image->tileMap.data[i].palno = 0;
- if (j >= nTilesOut) {
- if (nTilesOut >= 1024)
- FATAL_ERROR("Cannot reduce image to 1024 or fewer tiles.\n");
- memcpy(outputPixels + nTilesOut * tileSize, curTile1, tileSize);
- nTilesOut++;
- }
- }
-
- free(buffer);
- *bufferSize = nTilesOut * tileSize;
- return outputPixels;
-}
-
static void AdvanceMetatilePosition(int *subTileX, int *subTileY, int *metatileX, int *metatileY, int metatilesWide, int metatileWidth, int metatileHeight)
{
(*subTileX)++;
@@ -345,21 +210,15 @@ void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int
int fileSize;
unsigned char *buffer = ReadWholeFile(path, &fileSize);
- int numTiles;
- if (image->hasTilemap) {
- buffer = ApplyTilemap(image, buffer, bitDepth);
- numTiles = image->tileMap.numTiles;
- }
- else
- numTiles = fileSize / tileSize;
+ int numTiles = fileSize / tileSize;
int tilesHeight = (numTiles + tilesWidth - 1) / tilesWidth;
if (tilesWidth % metatileWidth != 0)
- FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)\n", tilesWidth, metatileWidth);
+ FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)", tilesWidth, metatileWidth);
if (tilesHeight % metatileHeight != 0)
- FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)\n", tilesHeight, metatileHeight);
+ FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)", tilesHeight, metatileHeight);
image->width = tilesWidth * 8;
image->height = tilesHeight * 8;
@@ -432,9 +291,6 @@ void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int m
break;
}
- if (image->hasTilemap)
- buffer = BuildTilemap(image, buffer, &bufferSize);
-
WriteWholeFile(path, buffer, bufferSize);
free(buffer);
@@ -444,11 +300,6 @@ void FreeImage(struct Image *image)
{
free(image->pixels);
image->pixels = NULL;
- if (image->hasTilemap && image->tileMap.data != NULL) {
- free(image->tileMap.data);
- image->tileMap.data = NULL;
- image->tileMap.numTiles = 0;
- }
}
void ReadGbaPalette(char *path, struct Palette *palette)
@@ -491,45 +342,3 @@ void WriteGbaPalette(char *path, struct Palette *palette)
fclose(fp);
}
-
-void ReadGbaTilemap(char *path, struct Tilemap *tileMap)
-{
- int fileSize;
- unsigned char *data = ReadWholeFile(path, &fileSize);
-
- if (fileSize % 2 != 0)
- FATAL_ERROR("The file size (%d) is not a multiple of 2.\n", fileSize);
-
- tileMap->numTiles = fileSize / 2;
- tileMap->data = malloc(tileMap->numTiles * sizeof(struct Tile));
-
- for (int i = 0; i < tileMap->numTiles; i++)
- {
- uint16_t raw = data[2 * i + 0] | (data[2 * i + 1] << 8);
- tileMap->data[i].index = raw & 0x3FF;
- tileMap->data[i].xflip = raw & 0x400 ? 1 : 0;
- tileMap->data[i].yflip = raw & 0x800 ? 1 : 0;
- tileMap->data[i].palno = raw >> 12;
- }
-
- free(data);
-}
-
-void WriteGbaTilemap(char *path, struct Tilemap *tileMap)
-{
- FILE *fp = fopen(path, "wb");
-
- if (fp == NULL)
- FATAL_ERROR("Failed to open \"%s\" for writing.\n", path);
-
- for (int i = 0; i < tileMap->numTiles; i++) {
- uint16_t raw = tileMap->data[i].index
- | (tileMap->data[i].xflip << 10)
- | (tileMap->data[i].yflip << 11)
- | (tileMap->data[i].palno << 12);
- fputc(raw & 0xFF, fp);
- fputc(raw >> 8, fp);
- }
-
- fclose(fp);
-}
diff --git a/tools/gbagfx/gfx.h b/tools/gbagfx/gfx.h
index 15a3c6a6c..5355ced85 100644
--- a/tools/gbagfx/gfx.h
+++ b/tools/gbagfx/gfx.h
@@ -17,18 +17,6 @@ struct Palette {
int numColors;
};
-struct __attribute__((packed)) Tile {
- unsigned short index:10;
- unsigned short xflip:1;
- unsigned short yflip:1;
- unsigned short palno:4;
-};
-
-struct Tilemap {
- struct Tile *data;
- int numTiles;
-};
-
struct Image {
int width;
int height;
@@ -37,9 +25,6 @@ struct Image {
bool hasPalette;
struct Palette palette;
bool hasTransparency;
- struct Tilemap tileMap;
- bool hasTilemap;
-
};
void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors);
@@ -47,7 +32,5 @@ void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int m
void FreeImage(struct Image *image);
void ReadGbaPalette(char *path, struct Palette *palette);
void WriteGbaPalette(char *path, struct Palette *palette);
-void ReadGbaTilemap(char *path, struct Tilemap *tileMap);
-void WriteGbaTilemap(char *path, struct Tilemap *tileMap);
#endif // GFX_H
diff --git a/tools/gbagfx/huff.c b/tools/gbagfx/huff.c
new file mode 100644
index 000000000..143ed79be
--- /dev/null
+++ b/tools/gbagfx/huff.c
@@ -0,0 +1,398 @@
+#include <stdbool.h>
+#include <string.h>
+#include <assert.h>
+#include <stdio.h>
+#include <stdint.h>
+#include "global.h"
+#include "huff.h"
+
+static int cmp_tree(const void * a0, const void * b0) {
+ return ((struct HuffData *)a0)->value - ((struct HuffData *)b0)->value;
+}
+
+typedef int (*cmpfun)(const void *, const void *);
+
+int msort_r(void * data, size_t count, size_t size, cmpfun cmp, void * buffer) {
+ /*
+ * Out-of-place mergesort (stable sort)
+ * Returns 1 on success, 0 on failure
+ */
+ void * leftPtr;
+ void * rightPtr;
+ void * leftEnd;
+ void * rightEnd;
+ int i;
+
+ switch (count) {
+ case 0:
+ // Should never be here
+ return 0;
+
+ case 1:
+ // Nothing to do here
+ break;
+
+ case 2:
+ // Swap the two entries if the right one compares higher.
+ if (cmp(data, data + size) > 0) {
+ memcpy(buffer, data, size);
+ memcpy(data, data + size, size);
+ memcpy(data + size, buffer, size);
+ }
+ break;
+ default:
+ // Merge sort out-of-place.
+ leftPtr = data;
+ leftEnd = rightPtr = data + count / 2 * size;
+ rightEnd = data + count * size;
+
+ // Sort the left half
+ if (!msort_r(leftPtr, count / 2, size, cmp, buffer))
+ return 0;
+
+ // Sort the right half
+ if (!msort_r(rightPtr, count / 2 + (count & 1), size, cmp, buffer))
+ return 0;
+
+ // Merge the sorted halves out of place
+ i = 0;
+ do {
+ if (cmp(leftPtr, rightPtr) <= 0) {
+ memcpy(buffer + i * size, leftPtr, size);
+ leftPtr += size;
+ } else {
+ memcpy(buffer + i * size, rightPtr, size);
+ rightPtr += size;
+ }
+
+ } while (++i < count && leftPtr < leftEnd && rightPtr < rightEnd);
+
+ // Copy the remainder
+ if (i < count) {
+ if (leftPtr < leftEnd) {
+ memcpy(buffer + i * size, leftPtr, leftEnd - leftPtr);
+ }
+ else {
+ memcpy(buffer + i * size, rightPtr, rightEnd - rightPtr);
+ }
+ }
+
+ // Copy the merged data back
+ memcpy(data, buffer, count * size);
+ break;
+ }
+
+ return 1;
+}
+
+int msort(void * data, size_t count, size_t size, cmpfun cmp) {
+ void * buffer = malloc(count * size);
+ if (buffer == NULL) return 0;
+ int result = msort_r(data, count, size, cmp, buffer);
+ free(buffer);
+ return result;
+}
+
+static void write_tree(unsigned char * dest, HuffNode_t * tree, int nitems, struct BitEncoding * encoding) {
+ /*
+ * The example used to guide this function encodes the tree in a
+ * breadth-first manner. We attempt to emulate that here.
+ */
+
+ int i, j, k;
+
+ // There are (2 * nitems - 1) nodes in the binary tree. Allocate that.
+ HuffNode_t * traversal = calloc(2 * nitems - 1, sizeof(HuffNode_t));
+ if (traversal == NULL)
+ FATAL_ERROR("Fatal error while compressing Huff file.\n");
+
+ // The first node is the root of the tree.
+ traversal[0] = *tree;
+ i = 1;
+
+ // Copy the tree into a breadth-first ordering using brute force.
+ for (int depth = 1; i < 2 * nitems - 1; depth++) {
+ // Consider every possible path up to the current depth.
+ for (j = 0; i < 2 * nitems - 1 && j < 1 << depth; j++) {
+ // The index of the path is used to encode the path itself.
+ // Start from the most significant relevant bit and work our way down.
+ // Keep track of the current and previous nodes.
+ HuffNode_t * currNode = traversal;
+ HuffNode_t * parent = NULL;
+ for (k = 0; k < depth; k++) {
+ if (currNode->header.isLeaf)
+ break;
+ parent = currNode;
+ if ((j >> (depth - k - 1)) & 1)
+ currNode = currNode->branch.right;
+ else
+ currNode = currNode->branch.left;
+ }
+ // Check that the length of the current path equals the current depth.
+ if (k == depth) {
+ // Make sure we can encode the current branch.
+ // Bail here if we cannot.
+ // This is only applicable for 8-bit encodings.
+ if (traversal + i - parent > 128)
+ FATAL_ERROR("Fatal error while compressing Huff file: unable to encode binary tree.\n");
+ // Copy the current node, and update its parent.
+ traversal[i] = *currNode;
+ if (parent != NULL) {
+ if ((j & 1) == 1)
+ parent->branch.right = traversal + i;
+ else
+ parent->branch.left = traversal + i;
+ }
+ // Encode the path through the tree in the lookup table
+ if (traversal[i].header.isLeaf) {
+ encoding[traversal[i].leaf.key].nbits = depth;
+ encoding[traversal[i].leaf.key].bitstring = j;
+ }
+ i++;
+ }
+ }
+ }
+
+ // Encode the size of the tree.
+ // This is used by the decompressor to skip the tree.
+ dest[4] = nitems - 1;
+
+ // Encode each node in the tree.
+ for (i = 0; i < 2 * nitems - 1; i++) {
+ HuffNode_t * currNode = traversal + i;
+ if (currNode->header.isLeaf) {
+ dest[5 + i] = traversal[i].leaf.key;
+ } else {
+ dest[5 + i] = (((currNode->branch.right - traversal - i) / 2) - 1);
+ if (currNode->branch.left->header.isLeaf)
+ dest[5 + i] |= 0x80;
+ if (currNode->branch.right->header.isLeaf)
+ dest[5 + i] |= 0x40;
+ }
+ }
+
+ free(traversal);
+}
+
+static inline void write_32_le(unsigned char * dest, int * destPos, uint32_t * buff, int * buffPos) {
+ dest[*destPos] = *buff;
+ dest[*destPos + 1] = *buff >> 8;
+ dest[*destPos + 2] = *buff >> 16;
+ dest[*destPos + 3] = *buff >> 24;
+ *destPos += 4;
+ *buff = 0;
+ *buffPos = 0;
+}
+
+static inline void read_32_le(unsigned char * src, int * srcPos, uint32_t * buff) {
+ uint32_t tmp = src[*srcPos];
+ tmp |= src[*srcPos + 1] << 8;
+ tmp |= src[*srcPos + 2] << 16;
+ tmp |= src[*srcPos + 3] << 24;
+ *srcPos += 4;
+ *buff = tmp;
+}
+
+static void write_bits(unsigned char * dest, int * destPos, struct BitEncoding * encoding, int value, uint32_t * buff, int * buffBits) {
+ int nbits = encoding[value].nbits;
+ uint32_t bitstring = encoding[value].bitstring;
+
+ if (*buffBits + nbits >= 32) {
+ int diff = *buffBits + nbits - 32;
+ *buff <<= nbits - diff;
+ *buff |= bitstring >> diff;
+ bitstring &= ~(1 << diff);
+ nbits = diff;
+ write_32_le(dest, destPos, buff, buffBits);
+ }
+ if (nbits != 0) {
+ *buff <<= nbits;
+ *buff |= bitstring;
+ *buffBits += nbits;
+ }
+}
+
+/*
+=======================================
+MAIN COMPRESSION/DECOMPRESSION ROUTINES
+=======================================
+ */
+
+unsigned char * HuffCompress(unsigned char * src, int srcSize, int * compressedSize_p, int bitDepth) {
+ if (srcSize <= 0)
+ goto fail;
+
+ int worstCaseDestSize = 4 + (2 << bitDepth) + srcSize * 3;
+
+ unsigned char *dest = malloc(worstCaseDestSize);
+ if (dest == NULL)
+ goto fail;
+
+ int nitems = 1 << bitDepth;
+
+ HuffNode_t * freqs = calloc(nitems, sizeof(HuffNode_t));
+ if (freqs == NULL)
+ goto fail;
+
+ struct BitEncoding * encoding = calloc(nitems, sizeof(struct BitEncoding));
+ if (encoding == NULL)
+ goto fail;
+
+ // Set up the frequencies table. This will inform the tree.
+ for (int i = 0; i < nitems; i++) {
+ freqs[i].header.isLeaf = 1;
+ freqs[i].header.value = 0;
+ freqs[i].leaf.key = i;
+ }
+
+ // Count each nybble or byte.
+ for (int i = 0; i < srcSize; i++) {
+ if (bitDepth == 8) {
+ freqs[src[i]].header.value++;
+ } else {
+ freqs[src[i] >> 4].header.value++;
+ freqs[src[i] & 0xF].header.value++;
+ }
+ }
+
+#ifdef DEBUG
+ for (int i = 0; i < nitems; i++) {
+ fprintf(stderr, "%d: %d\n", i, freqs[i].header.value);
+ }
+#endif // DEBUG
+
+ // Sort the frequency table.
+ if (!msort(freqs, nitems, sizeof(HuffNode_t), cmp_tree))
+ goto fail;
+
+ // Prune zero-frequency values.
+ for (int i = 0; i < nitems; i++) {
+ if (freqs[i].header.value != 0) {
+ if (i > 0) {
+ for (int j = i; j < nitems; j++) {
+ freqs[j - i] = freqs[j];
+ }
+ nitems -= i;
+ }
+ break;
+ }
+ // This should never happen:
+ if (i == nitems - 1)
+ goto fail;
+ }
+
+ HuffNode_t * tree = calloc(nitems * 2 - 1, sizeof(HuffNode_t));
+ if (tree == NULL)
+ goto fail;
+
+ // Iteratively collapse the two least frequent nodes.
+ HuffNode_t * endptr = freqs + nitems - 2;
+
+ for (int i = 0; i < nitems - 1; i++) {
+ HuffNode_t * left = freqs;
+ HuffNode_t * right = freqs + 1;
+ tree[i * 2] = *right;
+ tree[i * 2 + 1] = *left;
+ for (int j = 0; j < nitems - i - 2; j++)
+ freqs[j] = freqs[j + 2];
+ endptr->header.isLeaf = 0;
+ endptr->header.value = tree[i * 2].header.value + tree[i * 2 + 1].header.value;
+ endptr->branch.left = tree + i * 2;
+ endptr->branch.right = tree + i * 2 + 1;
+ endptr--;
+ if (i < nitems - 2 && !msort(freqs, nitems - i - 1, sizeof(HuffNode_t), cmp_tree))
+ goto fail;
+ }
+
+ // Write the tree breadth-first, and create the path lookup table.
+ write_tree(dest, freqs, nitems, encoding);
+
+ free(tree);
+ free(freqs);
+
+ // Encode the data itself.
+ int destPos = 4 + nitems * 2;
+ uint32_t destBuf = 0;
+ uint32_t srcBuf = 0;
+ int destBitPos = 0;
+
+ for (int srcPos = 0; srcPos < srcSize;) {
+ read_32_le(src, &srcPos, &srcBuf);
+ for (int i = 0; i < 32 / bitDepth; i++) {
+ write_bits(dest, &destPos, encoding, srcBuf & (0xFF >> (8 - bitDepth)), &destBuf, &destBitPos);
+ srcBuf >>= bitDepth;
+ }
+ }
+
+ if (destBitPos != 0) {
+ write_32_le(dest, &destPos, &destBuf, &destBitPos);
+ }
+
+ free(encoding);
+
+ // Write the header.
+ dest[0] = bitDepth | 0x20;
+ dest[1] = srcSize;
+ dest[2] = srcSize >> 8;
+ dest[3] = srcSize >> 16;
+ *compressedSize_p = (destPos + 3) & ~3;
+ return dest;
+
+fail:
+ FATAL_ERROR("Fatal error while compressing Huff file.\n");
+}
+
+unsigned char * HuffDecompress(unsigned char * src, int srcSize, int * uncompressedSize_p) {
+ if (srcSize < 4)
+ goto fail;
+
+ int bitDepth = *src & 15;
+ if (bitDepth != 4 && bitDepth != 8)
+ goto fail;
+
+ int destSize = (src[3] << 16) | (src[2] << 8) | src[1];
+
+ unsigned char *dest = malloc(destSize);
+
+ if (dest == NULL)
+ goto fail;
+
+ int treePos = 5;
+ int treeSize = (src[4] + 1) * 2;
+ int srcPos = 4 + treeSize;
+ int destPos = 0;
+ int curValPos = 0;
+ uint32_t destTmp = 0;
+ uint32_t window;
+
+ for (;;)
+ {
+ if (srcPos >= srcSize)
+ goto fail;
+ read_32_le(src, &srcPos, &window);
+ for (int i = 0; i < 32; i++) {
+ int curBit = (window >> 31) & 1;
+ unsigned char treeView = src[treePos];
+ bool isLeaf = ((treeView << curBit) & 0x80) != 0;
+ treePos &= ~1; // align
+ treePos += ((treeView & 0x3F) + 1) * 2 + curBit;
+ if (isLeaf) {
+ destTmp >>= bitDepth;
+ destTmp |= (src[treePos] << (32 - bitDepth));
+ curValPos++;
+ if (curValPos == 32 / bitDepth) {
+ write_32_le(dest, &destPos, &destTmp, &curValPos);
+ if (destPos == destSize) {
+ *uncompressedSize_p = destSize;
+ return dest;
+ }
+ }
+ treePos = 5;
+ }
+ window <<= 1;
+ }
+ }
+
+fail:
+ FATAL_ERROR("Fatal error while decompressing Huff file.\n");
+}
diff --git a/tools/gbagfx/huff.h b/tools/gbagfx/huff.h
new file mode 100644
index 000000000..6002fe954
--- /dev/null
+++ b/tools/gbagfx/huff.h
@@ -0,0 +1,38 @@
+#ifndef HUFF_H
+#define HUFF_H
+
+union HuffNode;
+
+struct HuffData {
+ unsigned value:31;
+ unsigned isLeaf:1;
+};
+
+struct HuffLeaf {
+ struct HuffData header;
+ unsigned char key;
+};
+
+struct HuffBranch {
+ struct HuffData header;
+ union HuffNode * left;
+ union HuffNode * right;
+};
+
+union HuffNode {
+ struct HuffData header;
+ struct HuffLeaf leaf;
+ struct HuffBranch branch;
+};
+
+typedef union HuffNode HuffNode_t;
+
+struct BitEncoding {
+ unsigned long long nbits:6;
+ unsigned long long bitstring:58;
+};
+
+unsigned char * HuffCompress(unsigned char * buffer, int srcSize, int * compressedSize_p, int bitDepth);
+unsigned char * HuffDecompress(unsigned char * buffer, int srcSize, int * uncompressedSize_p);
+
+#endif //HUFF_H
diff --git a/tools/gbagfx/main.c b/tools/gbagfx/main.c
index 2174e37a5..aa0681fb6 100644
--- a/tools/gbagfx/main.c
+++ b/tools/gbagfx/main.c
@@ -12,6 +12,7 @@
#include "lz.h"
#include "rl.h"
#include "font.h"
+#include "huff.h"
struct CommandHandler
{
@@ -34,17 +35,6 @@ void ConvertGbaToPng(char *inputPath, char *outputPath, struct GbaToPngOptions *
image.hasPalette = false;
}
- if (options->tilemapFilePath != NULL)
- {
- ReadGbaTilemap(options->tilemapFilePath, &image.tileMap);
- image.hasTilemap = true;
- }
- else
- {
- image.tileMap.data = NULL;
- image.hasTilemap = false;
- }
-
ReadImage(inputPath, options->width, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette);
image.hasTransparency = options->hasTransparency;
@@ -59,17 +49,11 @@ void ConvertPngToGba(char *inputPath, char *outputPath, struct PngToGbaOptions *
struct Image image;
image.bitDepth = options->bitDepth;
- image.hasTilemap = options->tilemapFilePath == NULL ? false : true;
- image.tileMap.data = NULL;
- image.tileMap.numTiles = 0;
ReadPng(inputPath, &image);
WriteImage(outputPath, options->numTiles, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette);
- if (image.hasTilemap)
- WriteGbaTilemap(options->tilemapFilePath, &image.tileMap);
-
FreeImage(&image);
}
@@ -78,7 +62,6 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a
char *inputFileExtension = GetFileExtension(inputPath);
struct GbaToPngOptions options;
options.paletteFilePath = NULL;
- options.tilemapFilePath = NULL;
options.bitDepth = inputFileExtension[0] - '0';
options.hasTransparency = false;
options.width = 1;
@@ -98,15 +81,6 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a
options.paletteFilePath = argv[i];
}
- else if (strcmp(option, "-tilemap") == 0)
- {
- if (i + 1 >= argc)
- FATAL_ERROR("No tilemap file path following \"-tilemap\".\n");
-
- i++;
-
- options.tilemapFilePath = argv[i];
- }
else if (strcmp(option, "-object") == 0)
{
options.hasTransparency = true;
@@ -171,7 +145,6 @@ void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **a
options.bitDepth = bitDepth;
options.metatileWidth = 1;
options.metatileHeight = 1;
- options.tilemapFilePath = NULL;
for (int i = 3; i < argc; i++)
{
@@ -190,14 +163,6 @@ void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **a
if (options.numTiles < 1)
FATAL_ERROR("Number of tiles must be positive.\n");
}
- else if (strcmp(option, "-tilemap") == 0)
- {
- if (i + 1 >= argc)
- FATAL_ERROR("No tilemap path following \"-tilemap\".\n");
-
- i++;
- options.tilemapFilePath = argv[i];
- }
else if (strcmp(option, "-mwidth") == 0)
{
if (i + 1 >= argc)
@@ -290,10 +255,6 @@ void HandleLatinFontToPngCommand(char *inputPath, char *outputPath, int argc UNU
{
struct Image image;
- image.hasTilemap = false;
- image.tileMap.data = NULL;
- image.tileMap.numTiles = 0;
-
ReadLatinFont(inputPath, &image);
WritePng(outputPath, &image);
@@ -304,10 +265,6 @@ void HandlePngToLatinFontCommand(char *inputPath, char *outputPath, int argc UNU
{
struct Image image;
- image.hasTilemap = false;
- image.tileMap.data = NULL;
- image.tileMap.numTiles = 0;
-
image.bitDepth = 2;
ReadPng(inputPath, &image);
@@ -320,10 +277,6 @@ void HandleHalfwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath,
{
struct Image image;
- image.hasTilemap = false;
- image.tileMap.data = NULL;
- image.tileMap.numTiles = 0;
-
ReadHalfwidthJapaneseFont(inputPath, &image);
WritePng(outputPath, &image);
@@ -334,10 +287,6 @@ void HandlePngToHalfwidthJapaneseFontCommand(char *inputPath, char *outputPath,
{
struct Image image;
- image.hasTilemap = false;
- image.tileMap.data = NULL;
- image.tileMap.numTiles = 0;
-
image.bitDepth = 2;
ReadPng(inputPath, &image);
@@ -350,10 +299,6 @@ void HandleFullwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath,
{
struct Image image;
- image.hasTilemap = false;
- image.tileMap.data = NULL;
- image.tileMap.numTiles = 0;
-
ReadFullwidthJapaneseFont(inputPath, &image);
WritePng(outputPath, &image);
@@ -364,10 +309,6 @@ void HandlePngToFullwidthJapaneseFontCommand(char *inputPath, char *outputPath,
{
struct Image image;
- image.hasTilemap = false;
- image.tileMap.data = NULL;
- image.tileMap.numTiles = 0;
-
image.bitDepth = 2;
ReadPng(inputPath, &image);
@@ -485,6 +426,61 @@ void HandleRLDecompressCommand(char *inputPath, char *outputPath, int argc UNUSE
free(uncompressedData);
}
+void HandleHuffCompressCommand(char *inputPath, char *outputPath, int argc, char **argv)
+{
+ int fileSize;
+ int bitDepth = 4;
+
+ for (int i = 3; i < argc; i++)
+ {
+ char *option = argv[i];
+
+ if (strcmp(option, "-depth") == 0)
+ {
+ if (i + 1 >= argc)
+ FATAL_ERROR("No size following \"-depth\".\n");
+
+ i++;
+
+ if (!ParseNumber(argv[i], NULL, 10, &bitDepth))
+ FATAL_ERROR("Failed to parse bit depth.\n");
+
+ if (bitDepth != 4 && bitDepth != 8)
+ FATAL_ERROR("GBA only supports bit depth of 4 or 8.\n");
+ }
+ else
+ {
+ FATAL_ERROR("Unrecognized option \"%s\".\n", option);
+ }
+ }
+
+ unsigned char *buffer = ReadWholeFile(inputPath, &fileSize);
+
+ int compressedSize;
+ unsigned char *compressedData = HuffCompress(buffer, fileSize, &compressedSize, bitDepth);
+
+ free(buffer);
+
+ WriteWholeFile(outputPath, compressedData, compressedSize);
+
+ free(compressedData);
+}
+
+void HandleHuffDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
+{
+ int fileSize;
+ unsigned char *buffer = ReadWholeFile(inputPath, &fileSize);
+
+ int uncompressedSize;
+ unsigned char *uncompressedData = HuffDecompress(buffer, fileSize, &uncompressedSize);
+
+ free(buffer);
+
+ WriteWholeFile(outputPath, uncompressedData, uncompressedSize);
+
+ free(uncompressedData);
+}
+
int main(int argc, char **argv)
{
if (argc < 3)
@@ -507,7 +503,9 @@ int main(int argc, char **argv)
{ "png", "hwjpnfont", HandlePngToHalfwidthJapaneseFontCommand },
{ "fwjpnfont", "png", HandleFullwidthJapaneseFontToPngCommand },
{ "png", "fwjpnfont", HandlePngToFullwidthJapaneseFontCommand },
+ { NULL, "huff", HandleHuffCompressCommand },
{ NULL, "lz", HandleLZCompressCommand },
+ { "huff", NULL, HandleHuffDecompressCommand },
{ "lz", NULL, HandleLZDecompressCommand },
{ NULL, "rl", HandleRLCompressCommand },
{ "rl", NULL, HandleRLDecompressCommand },
diff --git a/tools/gbagfx/options.h b/tools/gbagfx/options.h
index 463ee2455..2ff3967a4 100644
--- a/tools/gbagfx/options.h
+++ b/tools/gbagfx/options.h
@@ -7,7 +7,6 @@
struct GbaToPngOptions {
char *paletteFilePath;
- char *tilemapFilePath;
int bitDepth;
bool hasTransparency;
int width;
@@ -16,7 +15,6 @@ struct GbaToPngOptions {
};
struct PngToGbaOptions {
- char *tilemapFilePath;
int numTiles;
int bitDepth;
int metatileWidth;
diff --git a/tools/mapjson/.gitignore b/tools/mapjson/.gitignore
new file mode 100755
index 000000000..a5d568479
--- /dev/null
+++ b/tools/mapjson/.gitignore
@@ -0,0 +1 @@
+mapjson
diff --git a/tools/mapjson/Makefile b/tools/mapjson/Makefile
new file mode 100644
index 000000000..d09acad50
--- /dev/null
+++ b/tools/mapjson/Makefile
@@ -0,0 +1,15 @@
+CXX := g++
+
+CXXFLAGS := -Wall -std=c++11 -O2
+
+SRCS := json11.cpp mapjson.cpp
+
+HEADERS := mapjson.h
+
+.PHONY: clean
+
+mapjson: $(SRCS) $(HEADERS)
+ $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS)
+
+clean:
+ $(RM) mapjson mapjson.exe
diff --git a/tools/mapjson/json11.cpp b/tools/mapjson/json11.cpp
new file mode 100644
index 000000000..1da530206
--- /dev/null
+++ b/tools/mapjson/json11.cpp
@@ -0,0 +1,786 @@
+/* Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "json11.h"
+#include <cassert>
+#include <cmath>
+#include <cstdlib>
+#include <cstdio>
+#include <limits>
+
+namespace json11 {
+
+static const int max_depth = 200;
+
+using std::string;
+using std::vector;
+using std::map;
+using std::make_shared;
+using std::initializer_list;
+using std::move;
+
+/* Helper for representing null - just a do-nothing struct, plus comparison
+ * operators so the helpers in JsonValue work. We can't use nullptr_t because
+ * it may not be orderable.
+ */
+struct NullStruct {
+ bool operator==(NullStruct) const { return true; }
+ bool operator<(NullStruct) const { return false; }
+};
+
+/* * * * * * * * * * * * * * * * * * * *
+ * Serialization
+ */
+
+static void dump(NullStruct, string &out) {
+ out += "null";
+}
+
+static void dump(double value, string &out) {
+ if (std::isfinite(value)) {
+ char buf[32];
+ snprintf(buf, sizeof buf, "%.17g", value);
+ out += buf;
+ } else {
+ out += "null";
+ }
+}
+
+static void dump(int value, string &out) {
+ char buf[32];
+ snprintf(buf, sizeof buf, "%d", value);
+ out += buf;
+}
+
+static void dump(bool value, string &out) {
+ out += value ? "true" : "false";
+}
+
+static void dump(const string &value, string &out) {
+ out += '"';
+ for (size_t i = 0; i < value.length(); i++) {
+ const char ch = value[i];
+ if (ch == '\\') {
+ out += "\\\\";
+ } else if (ch == '"') {
+ out += "\\\"";
+ } else if (ch == '\b') {
+ out += "\\b";
+ } else if (ch == '\f') {
+ out += "\\f";
+ } else if (ch == '\n') {
+ out += "\\n";
+ } else if (ch == '\r') {
+ out += "\\r";
+ } else if (ch == '\t') {
+ out += "\\t";
+ } else if (static_cast<uint8_t>(ch) <= 0x1f) {
+ char buf[8];
+ snprintf(buf, sizeof buf, "\\u%04x", ch);
+ out += buf;
+ } else if (static_cast<uint8_t>(ch) == 0xe2 && static_cast<uint8_t>(value[i+1]) == 0x80
+ && static_cast<uint8_t>(value[i+2]) == 0xa8) {
+ out += "\\u2028";
+ i += 2;
+ } else if (static_cast<uint8_t>(ch) == 0xe2 && static_cast<uint8_t>(value[i+1]) == 0x80
+ && static_cast<uint8_t>(value[i+2]) == 0xa9) {
+ out += "\\u2029";
+ i += 2;
+ } else {
+ out += ch;
+ }
+ }
+ out += '"';
+}
+
+static void dump(const Json::array &values, string &out) {
+ bool first = true;
+ out += "[";
+ for (const auto &value : values) {
+ if (!first)
+ out += ", ";
+ value.dump(out);
+ first = false;
+ }
+ out += "]";
+}
+
+static void dump(const Json::object &values, string &out) {
+ bool first = true;
+ out += "{";
+ for (const auto &kv : values) {
+ if (!first)
+ out += ", ";
+ dump(kv.first, out);
+ out += ": ";
+ kv.second.dump(out);
+ first = false;
+ }
+ out += "}";
+}
+
+void Json::dump(string &out) const {
+ m_ptr->dump(out);
+}
+
+/* * * * * * * * * * * * * * * * * * * *
+ * Value wrappers
+ */
+
+template <Json::Type tag, typename T>
+class Value : public JsonValue {
+protected:
+
+ // Constructors
+ explicit Value(const T &value) : m_value(value) {}
+ explicit Value(T &&value) : m_value(move(value)) {}
+
+ // Get type tag
+ Json::Type type() const override {
+ return tag;
+ }
+
+ // Comparisons
+ bool equals(const JsonValue * other) const override {
+ return m_value == static_cast<const Value<tag, T> *>(other)->m_value;
+ }
+ bool less(const JsonValue * other) const override {
+ return m_value < static_cast<const Value<tag, T> *>(other)->m_value;
+ }
+
+ const T m_value;
+ void dump(string &out) const override { json11::dump(m_value, out); }
+};
+
+class JsonDouble final : public Value<Json::NUMBER, double> {
+ double number_value() const override { return m_value; }
+ int int_value() const override { return static_cast<int>(m_value); }
+ bool equals(const JsonValue * other) const override { return m_value == other->number_value(); }
+ bool less(const JsonValue * other) const override { return m_value < other->number_value(); }
+public:
+ explicit JsonDouble(double value) : Value(value) {}
+};
+
+class JsonInt final : public Value<Json::NUMBER, int> {
+ double number_value() const override { return m_value; }
+ int int_value() const override { return m_value; }
+ bool equals(const JsonValue * other) const override { return m_value == other->number_value(); }
+ bool less(const JsonValue * other) const override { return m_value < other->number_value(); }
+public:
+ explicit JsonInt(int value) : Value(value) {}
+};
+
+class JsonBoolean final : public Value<Json::BOOL, bool> {
+ bool bool_value() const override { return m_value; }
+public:
+ explicit JsonBoolean(bool value) : Value(value) {}
+};
+
+class JsonString final : public Value<Json::STRING, string> {
+ const string &string_value() const override { return m_value; }
+public:
+ explicit JsonString(const string &value) : Value(value) {}
+ explicit JsonString(string &&value) : Value(move(value)) {}
+};
+
+class JsonArray final : public Value<Json::ARRAY, Json::array> {
+ const Json::array &array_items() const override { return m_value; }
+ const Json & operator[](size_t i) const override;
+public:
+ explicit JsonArray(const Json::array &value) : Value(value) {}
+ explicit JsonArray(Json::array &&value) : Value(move(value)) {}
+};
+
+class JsonObject final : public Value<Json::OBJECT, Json::object> {
+ const Json::object &object_items() const override { return m_value; }
+ const Json & operator[](const string &key) const override;
+public:
+ explicit JsonObject(const Json::object &value) : Value(value) {}
+ explicit JsonObject(Json::object &&value) : Value(move(value)) {}
+};
+
+class JsonNull final : public Value<Json::NUL, NullStruct> {
+public:
+ JsonNull() : Value({}) {}
+};
+
+/* * * * * * * * * * * * * * * * * * * *
+ * Static globals - static-init-safe
+ */
+struct Statics {
+ const std::shared_ptr<JsonValue> null = make_shared<JsonNull>();
+ const std::shared_ptr<JsonValue> t = make_shared<JsonBoolean>(true);
+ const std::shared_ptr<JsonValue> f = make_shared<JsonBoolean>(false);
+ const string empty_string;
+ const vector<Json> empty_vector;
+ const map<string, Json> empty_map;
+ Statics() {}
+};
+
+static const Statics & statics() {
+ static const Statics s {};
+ return s;
+}
+
+static const Json & static_null() {
+ // This has to be separate, not in Statics, because Json() accesses statics().null.
+ static const Json json_null;
+ return json_null;
+}
+
+/* * * * * * * * * * * * * * * * * * * *
+ * Constructors
+ */
+
+Json::Json() noexcept : m_ptr(statics().null) {}
+Json::Json(std::nullptr_t) noexcept : m_ptr(statics().null) {}
+Json::Json(double value) : m_ptr(make_shared<JsonDouble>(value)) {}
+Json::Json(int value) : m_ptr(make_shared<JsonInt>(value)) {}
+Json::Json(bool value) : m_ptr(value ? statics().t : statics().f) {}
+Json::Json(const string &value) : m_ptr(make_shared<JsonString>(value)) {}
+Json::Json(string &&value) : m_ptr(make_shared<JsonString>(move(value))) {}
+Json::Json(const char * value) : m_ptr(make_shared<JsonString>(value)) {}
+Json::Json(const Json::array &values) : m_ptr(make_shared<JsonArray>(values)) {}
+Json::Json(Json::array &&values) : m_ptr(make_shared<JsonArray>(move(values))) {}
+Json::Json(const Json::object &values) : m_ptr(make_shared<JsonObject>(values)) {}
+Json::Json(Json::object &&values) : m_ptr(make_shared<JsonObject>(move(values))) {}
+
+/* * * * * * * * * * * * * * * * * * * *
+ * Accessors
+ */
+
+Json::Type Json::type() const { return m_ptr->type(); }
+double Json::number_value() const { return m_ptr->number_value(); }
+int Json::int_value() const { return m_ptr->int_value(); }
+bool Json::bool_value() const { return m_ptr->bool_value(); }
+const string & Json::string_value() const { return m_ptr->string_value(); }
+const vector<Json> & Json::array_items() const { return m_ptr->array_items(); }
+const map<string, Json> & Json::object_items() const { return m_ptr->object_items(); }
+const Json & Json::operator[] (size_t i) const { return (*m_ptr)[i]; }
+const Json & Json::operator[] (const string &key) const { return (*m_ptr)[key]; }
+
+double JsonValue::number_value() const { return 0; }
+int JsonValue::int_value() const { return 0; }
+bool JsonValue::bool_value() const { return false; }
+const string & JsonValue::string_value() const { return statics().empty_string; }
+const vector<Json> & JsonValue::array_items() const { return statics().empty_vector; }
+const map<string, Json> & JsonValue::object_items() const { return statics().empty_map; }
+const Json & JsonValue::operator[] (size_t) const { return static_null(); }
+const Json & JsonValue::operator[] (const string &) const { return static_null(); }
+
+const Json & JsonObject::operator[] (const string &key) const {
+ auto iter = m_value.find(key);
+ return (iter == m_value.end()) ? static_null() : iter->second;
+}
+const Json & JsonArray::operator[] (size_t i) const {
+ if (i >= m_value.size()) return static_null();
+ else return m_value[i];
+}
+
+/* * * * * * * * * * * * * * * * * * * *
+ * Comparison
+ */
+
+bool Json::operator== (const Json &other) const {
+ if (m_ptr == other.m_ptr)
+ return true;
+ if (m_ptr->type() != other.m_ptr->type())
+ return false;
+
+ return m_ptr->equals(other.m_ptr.get());
+}
+
+bool Json::operator< (const Json &other) const {
+ if (m_ptr == other.m_ptr)
+ return false;
+ if (m_ptr->type() != other.m_ptr->type())
+ return m_ptr->type() < other.m_ptr->type();
+
+ return m_ptr->less(other.m_ptr.get());
+}
+
+/* * * * * * * * * * * * * * * * * * * *
+ * Parsing
+ */
+
+/* esc(c)
+ *
+ * Format char c suitable for printing in an error message.
+ */
+static inline string esc(char c) {
+ char buf[12];
+ if (static_cast<uint8_t>(c) >= 0x20 && static_cast<uint8_t>(c) <= 0x7f) {
+ snprintf(buf, sizeof buf, "'%c' (%d)", c, c);
+ } else {
+ snprintf(buf, sizeof buf, "(%d)", c);
+ }
+ return string(buf);
+}
+
+static inline bool in_range(long x, long lower, long upper) {
+ return (x >= lower && x <= upper);
+}
+
+namespace {
+/* JsonParser
+ *
+ * Object that tracks all state of an in-progress parse.
+ */
+struct JsonParser final {
+
+ /* State
+ */
+ const string &str;
+ size_t i;
+ string &err;
+ bool failed;
+ const JsonParse strategy;
+
+ /* fail(msg, err_ret = Json())
+ *
+ * Mark this parse as failed.
+ */
+ Json fail(string &&msg) {
+ return fail(move(msg), Json());
+ }
+
+ template <typename T>
+ T fail(string &&msg, const T err_ret) {
+ if (!failed)
+ err = std::move(msg);
+ failed = true;
+ return err_ret;
+ }
+
+ /* consume_whitespace()
+ *
+ * Advance until the current character is non-whitespace.
+ */
+ void consume_whitespace() {
+ while (str[i] == ' ' || str[i] == '\r' || str[i] == '\n' || str[i] == '\t')
+ i++;
+ }
+
+ /* consume_comment()
+ *
+ * Advance comments (c-style inline and multiline).
+ */
+ bool consume_comment() {
+ bool comment_found = false;
+ if (str[i] == '/') {
+ i++;
+ if (i == str.size())
+ return fail("unexpected end of input after start of comment", false);
+ if (str[i] == '/') { // inline comment
+ i++;
+ // advance until next line, or end of input
+ while (i < str.size() && str[i] != '\n') {
+ i++;
+ }
+ comment_found = true;
+ }
+ else if (str[i] == '*') { // multiline comment
+ i++;
+ if (i > str.size()-2)
+ return fail("unexpected end of input inside multi-line comment", false);
+ // advance until closing tokens
+ while (!(str[i] == '*' && str[i+1] == '/')) {
+ i++;
+ if (i > str.size()-2)
+ return fail(
+ "unexpected end of input inside multi-line comment", false);
+ }
+ i += 2;
+ comment_found = true;
+ }
+ else
+ return fail("malformed comment", false);
+ }
+ return comment_found;
+ }
+
+ /* consume_garbage()
+ *
+ * Advance until the current character is non-whitespace and non-comment.
+ */
+ void consume_garbage() {
+ consume_whitespace();
+ if(strategy == JsonParse::COMMENTS) {
+ bool comment_found = false;
+ do {
+ comment_found = consume_comment();
+ if (failed) return;
+ consume_whitespace();
+ }
+ while(comment_found);
+ }
+ }
+
+ /* get_next_token()
+ *
+ * Return the next non-whitespace character. If the end of the input is reached,
+ * flag an error and return 0.
+ */
+ char get_next_token() {
+ consume_garbage();
+ if (failed) return static_cast<char>(0);
+ if (i == str.size())
+ return fail("unexpected end of input", static_cast<char>(0));
+
+ return str[i++];
+ }
+
+ /* encode_utf8(pt, out)
+ *
+ * Encode pt as UTF-8 and add it to out.
+ */
+ void encode_utf8(long pt, string & out) {
+ if (pt < 0)
+ return;
+
+ if (pt < 0x80) {
+ out += static_cast<char>(pt);
+ } else if (pt < 0x800) {
+ out += static_cast<char>((pt >> 6) | 0xC0);
+ out += static_cast<char>((pt & 0x3F) | 0x80);
+ } else if (pt < 0x10000) {
+ out += static_cast<char>((pt >> 12) | 0xE0);
+ out += static_cast<char>(((pt >> 6) & 0x3F) | 0x80);
+ out += static_cast<char>((pt & 0x3F) | 0x80);
+ } else {
+ out += static_cast<char>((pt >> 18) | 0xF0);
+ out += static_cast<char>(((pt >> 12) & 0x3F) | 0x80);
+ out += static_cast<char>(((pt >> 6) & 0x3F) | 0x80);
+ out += static_cast<char>((pt & 0x3F) | 0x80);
+ }
+ }
+
+ /* parse_string()
+ *
+ * Parse a string, starting at the current position.
+ */
+ string parse_string() {
+ string out;
+ long last_escaped_codepoint = -1;
+ while (true) {
+ if (i == str.size())
+ return fail("unexpected end of input in string", "");
+
+ char ch = str[i++];
+
+ if (ch == '"') {
+ encode_utf8(last_escaped_codepoint, out);
+ return out;
+ }
+
+ if (in_range(ch, 0, 0x1f))
+ return fail("unescaped " + esc(ch) + " in string", "");
+
+ // The usual case: non-escaped characters
+ if (ch != '\\') {
+ encode_utf8(last_escaped_codepoint, out);
+ last_escaped_codepoint = -1;
+ out += ch;
+ continue;
+ }
+
+ // Handle escapes
+ if (i == str.size())
+ return fail("unexpected end of input in string", "");
+
+ ch = str[i++];
+
+ if (ch == 'u') {
+ // Extract 4-byte escape sequence
+ string esc = str.substr(i, 4);
+ // Explicitly check length of the substring. The following loop
+ // relies on std::string returning the terminating NUL when
+ // accessing str[length]. Checking here reduces brittleness.
+ if (esc.length() < 4) {
+ return fail("bad \\u escape: " + esc, "");
+ }
+ for (size_t j = 0; j < 4; j++) {
+ if (!in_range(esc[j], 'a', 'f') && !in_range(esc[j], 'A', 'F')
+ && !in_range(esc[j], '0', '9'))
+ return fail("bad \\u escape: " + esc, "");
+ }
+
+ long codepoint = strtol(esc.data(), nullptr, 16);
+
+ // JSON specifies that characters outside the BMP shall be encoded as a pair
+ // of 4-hex-digit \u escapes encoding their surrogate pair components. Check
+ // whether we're in the middle of such a beast: the previous codepoint was an
+ // escaped lead (high) surrogate, and this is a trail (low) surrogate.
+ if (in_range(last_escaped_codepoint, 0xD800, 0xDBFF)
+ && in_range(codepoint, 0xDC00, 0xDFFF)) {
+ // Reassemble the two surrogate pairs into one astral-plane character, per
+ // the UTF-16 algorithm.
+ encode_utf8((((last_escaped_codepoint - 0xD800) << 10)
+ | (codepoint - 0xDC00)) + 0x10000, out);
+ last_escaped_codepoint = -1;
+ } else {
+ encode_utf8(last_escaped_codepoint, out);
+ last_escaped_codepoint = codepoint;
+ }
+
+ i += 4;
+ continue;
+ }
+
+ encode_utf8(last_escaped_codepoint, out);
+ last_escaped_codepoint = -1;
+
+ if (ch == 'b') {
+ out += '\b';
+ } else if (ch == 'f') {
+ out += '\f';
+ } else if (ch == 'n') {
+ out += '\n';
+ } else if (ch == 'r') {
+ out += '\r';
+ } else if (ch == 't') {
+ out += '\t';
+ } else if (ch == '"' || ch == '\\' || ch == '/') {
+ out += ch;
+ } else {
+ return fail("invalid escape character " + esc(ch), "");
+ }
+ }
+ }
+
+ /* parse_number()
+ *
+ * Parse a double.
+ */
+ Json parse_number() {
+ size_t start_pos = i;
+
+ if (str[i] == '-')
+ i++;
+
+ // Integer part
+ if (str[i] == '0') {
+ i++;
+ if (in_range(str[i], '0', '9'))
+ return fail("leading 0s not permitted in numbers");
+ } else if (in_range(str[i], '1', '9')) {
+ i++;
+ while (in_range(str[i], '0', '9'))
+ i++;
+ } else {
+ return fail("invalid " + esc(str[i]) + " in number");
+ }
+
+ if (str[i] != '.' && str[i] != 'e' && str[i] != 'E'
+ && (i - start_pos) <= static_cast<size_t>(std::numeric_limits<int>::digits10)) {
+ return std::atoi(str.c_str() + start_pos);
+ }
+
+ // Decimal part
+ if (str[i] == '.') {
+ i++;
+ if (!in_range(str[i], '0', '9'))
+ return fail("at least one digit required in fractional part");
+
+ while (in_range(str[i], '0', '9'))
+ i++;
+ }
+
+ // Exponent part
+ if (str[i] == 'e' || str[i] == 'E') {
+ i++;
+
+ if (str[i] == '+' || str[i] == '-')
+ i++;
+
+ if (!in_range(str[i], '0', '9'))
+ return fail("at least one digit required in exponent");
+
+ while (in_range(str[i], '0', '9'))
+ i++;
+ }
+
+ return std::strtod(str.c_str() + start_pos, nullptr);
+ }
+
+ /* expect(str, res)
+ *
+ * Expect that 'str' starts at the character that was just read. If it does, advance
+ * the input and return res. If not, flag an error.
+ */
+ Json expect(const string &expected, Json res) {
+ assert(i != 0);
+ i--;
+ if (str.compare(i, expected.length(), expected) == 0) {
+ i += expected.length();
+ return res;
+ } else {
+ return fail("parse error: expected " + expected + ", got " + str.substr(i, expected.length()));
+ }
+ }
+
+ /* parse_json()
+ *
+ * Parse a JSON object.
+ */
+ Json parse_json(int depth) {
+ if (depth > max_depth) {
+ return fail("exceeded maximum nesting depth");
+ }
+
+ char ch = get_next_token();
+ if (failed)
+ return Json();
+
+ if (ch == '-' || (ch >= '0' && ch <= '9')) {
+ i--;
+ return parse_number();
+ }
+
+ if (ch == 't')
+ return expect("true", true);
+
+ if (ch == 'f')
+ return expect("false", false);
+
+ if (ch == 'n')
+ return expect("null", Json());
+
+ if (ch == '"')
+ return parse_string();
+
+ if (ch == '{') {
+ map<string, Json> data;
+ ch = get_next_token();
+ if (ch == '}')
+ return data;
+
+ while (1) {
+ if (ch != '"')
+ return fail("expected '\"' in object, got " + esc(ch));
+
+ string key = parse_string();
+ if (failed)
+ return Json();
+
+ ch = get_next_token();
+ if (ch != ':')
+ return fail("expected ':' in object, got " + esc(ch));
+
+ data[std::move(key)] = parse_json(depth + 1);
+ if (failed)
+ return Json();
+
+ ch = get_next_token();
+ if (ch == '}')
+ break;
+ if (ch != ',')
+ return fail("expected ',' in object, got " + esc(ch));
+
+ ch = get_next_token();
+ }
+ return data;
+ }
+
+ if (ch == '[') {
+ vector<Json> data;
+ ch = get_next_token();
+ if (ch == ']')
+ return data;
+
+ while (1) {
+ i--;
+ data.push_back(parse_json(depth + 1));
+ if (failed)
+ return Json();
+
+ ch = get_next_token();
+ if (ch == ']')
+ break;
+ if (ch != ',')
+ return fail("expected ',' in list, got " + esc(ch));
+
+ ch = get_next_token();
+ (void)ch;
+ }
+ return data;
+ }
+
+ return fail("expected value, got " + esc(ch));
+ }
+};
+}//namespace {
+
+Json Json::parse(const string &in, string &err, JsonParse strategy) {
+ JsonParser parser { in, 0, err, false, strategy };
+ Json result = parser.parse_json(0);
+
+ // Check for any trailing garbage
+ parser.consume_garbage();
+ if (parser.failed)
+ return Json();
+ if (parser.i != in.size())
+ return parser.fail("unexpected trailing " + esc(in[parser.i]));
+
+ return result;
+}
+
+// Documented in json11.hpp
+vector<Json> Json::parse_multi(const string &in,
+ std::string::size_type &parser_stop_pos,
+ string &err,
+ JsonParse strategy) {
+ JsonParser parser { in, 0, err, false, strategy };
+ parser_stop_pos = 0;
+ vector<Json> json_vec;
+ while (parser.i != in.size() && !parser.failed) {
+ json_vec.push_back(parser.parse_json(0));
+ if (parser.failed)
+ break;
+
+ // Check for another object
+ parser.consume_garbage();
+ if (parser.failed)
+ break;
+ parser_stop_pos = parser.i;
+ }
+ return json_vec;
+}
+
+/* * * * * * * * * * * * * * * * * * * *
+ * Shape-checking
+ */
+
+bool Json::has_shape(const shape & types, string & err) const {
+ if (!is_object()) {
+ err = "expected JSON object, got " + dump();
+ return false;
+ }
+
+ for (auto & item : types) {
+ if ((*this)[item.first].type() != item.second) {
+ err = "bad type for " + item.first + " in " + dump();
+ return false;
+ }
+ }
+
+ return true;
+}
+
+} // namespace json11
diff --git a/tools/mapjson/json11.h b/tools/mapjson/json11.h
new file mode 100644
index 000000000..c04c4362f
--- /dev/null
+++ b/tools/mapjson/json11.h
@@ -0,0 +1,230 @@
+/* json11
+ *
+ * json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.
+ *
+ * The core object provided by the library is json11::Json. A Json object represents any JSON
+ * value: null, bool, number (int or double), string (std::string), array (std::vector), or
+ * object (std::map).
+ *
+ * Json objects act like values: they can be assigned, copied, moved, compared for equality or
+ * order, etc. There are also helper methods Json::dump, to serialize a Json to a string, and
+ * Json::parse (static) to parse a std::string as a Json object.
+ *
+ * Internally, the various types of Json object are represented by the JsonValue class
+ * hierarchy.
+ *
+ * A note on numbers - JSON specifies the syntax of number formatting but not its semantics,
+ * so some JSON implementations distinguish between integers and floating-point numbers, while
+ * some don't. In json11, we choose the latter. Because some JSON implementations (namely
+ * Javascript itself) treat all numbers as the same type, distinguishing the two leads
+ * to JSON that will be *silently* changed by a round-trip through those implementations.
+ * Dangerous! To avoid that risk, json11 stores all numbers as double internally, but also
+ * provides integer helpers.
+ *
+ * Fortunately, double-precision IEEE754 ('double') can precisely store any integer in the
+ * range +/-2^53, which includes every 'int' on most systems. (Timestamps often use int64
+ * or long long to avoid the Y2038K problem; a double storing microseconds since some epoch
+ * will be exact for +/- 275 years.)
+ */
+
+/* Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#pragma once
+
+#include <string>
+#include <vector>
+#include <map>
+#include <memory>
+#include <initializer_list>
+
+#ifdef _MSC_VER
+ #if _MSC_VER <= 1800 // VS 2013
+ #ifndef noexcept
+ #define noexcept throw()
+ #endif
+
+ #ifndef snprintf
+ #define snprintf _snprintf_s
+ #endif
+ #endif
+#endif
+
+namespace json11 {
+
+enum JsonParse {
+ STANDARD, COMMENTS
+};
+
+class JsonValue;
+
+class Json final {
+public:
+ // Types
+ enum Type {
+ NUL, NUMBER, BOOL, STRING, ARRAY, OBJECT
+ };
+
+ // Array and object typedefs
+ typedef std::vector<Json> array;
+ typedef std::map<std::string, Json> object;
+
+ // Constructors for the various types of JSON value.
+ Json() noexcept; // NUL
+ Json(std::nullptr_t) noexcept; // NUL
+ Json(double value); // NUMBER
+ Json(int value); // NUMBER
+ Json(bool value); // BOOL
+ Json(const std::string &value); // STRING
+ Json(std::string &&value); // STRING
+ Json(const char * value); // STRING
+ Json(const array &values); // ARRAY
+ Json(array &&values); // ARRAY
+ Json(const object &values); // OBJECT
+ Json(object &&values); // OBJECT
+
+ // Implicit constructor: anything with a to_json() function.
+ template <class T, class = decltype(&T::to_json)>
+ Json(const T & t) : Json(t.to_json()) {}
+
+ // Implicit constructor: map-like objects (std::map, std::unordered_map, etc)
+ template <class M, typename std::enable_if<
+ std::is_constructible<std::string, decltype(std::declval<M>().begin()->first)>::value
+ && std::is_constructible<Json, decltype(std::declval<M>().begin()->second)>::value,
+ int>::type = 0>
+ Json(const M & m) : Json(object(m.begin(), m.end())) {}
+
+ // Implicit constructor: vector-like objects (std::list, std::vector, std::set, etc)
+ template <class V, typename std::enable_if<
+ std::is_constructible<Json, decltype(*std::declval<V>().begin())>::value,
+ int>::type = 0>
+ Json(const V & v) : Json(array(v.begin(), v.end())) {}
+
+ // This prevents Json(some_pointer) from accidentally producing a bool. Use
+ // Json(bool(some_pointer)) if that behavior is desired.
+ Json(void *) = delete;
+
+ // Accessors
+ Type type() const;
+
+ bool is_null() const { return type() == NUL; }
+ bool is_number() const { return type() == NUMBER; }
+ bool is_bool() const { return type() == BOOL; }
+ bool is_string() const { return type() == STRING; }
+ bool is_array() const { return type() == ARRAY; }
+ bool is_object() const { return type() == OBJECT; }
+
+ // Return the enclosed value if this is a number, 0 otherwise. Note that json11 does not
+ // distinguish between integer and non-integer numbers - number_value() and int_value()
+ // can both be applied to a NUMBER-typed object.
+ double number_value() const;
+ int int_value() const;
+
+ // Return the enclosed value if this is a boolean, false otherwise.
+ bool bool_value() const;
+ // Return the enclosed string if this is a string, "" otherwise.
+ const std::string &string_value() const;
+ // Return the enclosed std::vector if this is an array, or an empty vector otherwise.
+ const array &array_items() const;
+ // Return the enclosed std::map if this is an object, or an empty map otherwise.
+ const object &object_items() const;
+
+ // Return a reference to arr[i] if this is an array, Json() otherwise.
+ const Json & operator[](size_t i) const;
+ // Return a reference to obj[key] if this is an object, Json() otherwise.
+ const Json & operator[](const std::string &key) const;
+
+ // Serialize.
+ void dump(std::string &out) const;
+ std::string dump() const {
+ std::string out;
+ dump(out);
+ return out;
+ }
+
+ // Parse. If parse fails, return Json() and assign an error message to err.
+ static Json parse(const std::string & in,
+ std::string & err,
+ JsonParse strategy = JsonParse::STANDARD);
+ static Json parse(const char * in,
+ std::string & err,
+ JsonParse strategy = JsonParse::STANDARD) {
+ if (in) {
+ return parse(std::string(in), err, strategy);
+ } else {
+ err = "null input";
+ return nullptr;
+ }
+ }
+ // Parse multiple objects, concatenated or separated by whitespace
+ static std::vector<Json> parse_multi(
+ const std::string & in,
+ std::string::size_type & parser_stop_pos,
+ std::string & err,
+ JsonParse strategy = JsonParse::STANDARD);
+
+ static inline std::vector<Json> parse_multi(
+ const std::string & in,
+ std::string & err,
+ JsonParse strategy = JsonParse::STANDARD) {
+ std::string::size_type parser_stop_pos;
+ return parse_multi(in, parser_stop_pos, err, strategy);
+ }
+
+ bool operator== (const Json &rhs) const;
+ bool operator< (const Json &rhs) const;
+ bool operator!= (const Json &rhs) const { return !(*this == rhs); }
+ bool operator<= (const Json &rhs) const { return !(rhs < *this); }
+ bool operator> (const Json &rhs) const { return (rhs < *this); }
+ bool operator>= (const Json &rhs) const { return !(*this < rhs); }
+
+ /* has_shape(types, err)
+ *
+ * Return true if this is a JSON object and, for each item in types, has a field of
+ * the given type. If not, return false and set err to a descriptive message.
+ */
+ typedef std::initializer_list<std::pair<std::string, Type>> shape;
+ bool has_shape(const shape & types, std::string & err) const;
+
+private:
+ std::shared_ptr<JsonValue> m_ptr;
+};
+
+// Internal class hierarchy - JsonValue objects are not exposed to users of this API.
+class JsonValue {
+protected:
+ friend class Json;
+ friend class JsonInt;
+ friend class JsonDouble;
+ virtual Json::Type type() const = 0;
+ virtual bool equals(const JsonValue * other) const = 0;
+ virtual bool less(const JsonValue * other) const = 0;
+ virtual void dump(std::string &out) const = 0;
+ virtual double number_value() const;
+ virtual int int_value() const;
+ virtual bool bool_value() const;
+ virtual const std::string &string_value() const;
+ virtual const Json::array &array_items() const;
+ virtual const Json &operator[](size_t i) const;
+ virtual const Json::object &object_items() const;
+ virtual const Json &operator[](const std::string &key) const;
+ virtual ~JsonValue() {}
+};
+
+} // namespace json11
diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp
new file mode 100644
index 000000000..1cf196fda
--- /dev/null
+++ b/tools/mapjson/mapjson.cpp
@@ -0,0 +1,538 @@
+// mapjson.cpp
+
+#include <iostream>
+using std::cout; using std::endl;
+
+#include <string>
+using std::string;
+
+#include <vector>
+using std::vector;
+
+#include <algorithm>
+using std::sort; using std::find;
+
+#include <map>
+using std::map;
+
+#include <fstream>
+using std::ofstream; using std::ifstream;
+
+#include <sstream>
+using std::ostringstream;
+
+#include <limits>
+using std::numeric_limits;
+
+#include "json11.h"
+using json11::Json;
+
+#include "mapjson.h"
+
+
+string read_text_file(string filepath) {
+ ifstream in_file(filepath);
+
+ if (!in_file.is_open())
+ FATAL_ERROR("Cannot open file %s for reading.\n", filepath.c_str());
+
+ string text;
+
+ in_file.seekg(0, std::ios::end);
+ text.resize(in_file.tellg());
+
+ in_file.seekg(0, std::ios::beg);
+ in_file.read(&text[0], text.size());
+
+ in_file.close();
+
+ return text;
+}
+
+void write_text_file(string filepath, string text) {
+ ofstream out_file(filepath, std::ofstream::binary);
+
+ if (!out_file.is_open())
+ FATAL_ERROR("Cannot open file %s for writing.\n", filepath.c_str());
+
+ out_file << text;
+
+ out_file.close();
+}
+
+string generate_map_header_text(Json map_data, Json layouts_data, string version) {
+ string map_layout_id = map_data["layout"].string_value();
+
+ vector<Json> matched;
+
+ for (auto &field : layouts_data["layouts"].array_items()) {
+ if (map_layout_id == field["id"].string_value())
+ matched.push_back(field);
+ }
+
+ if (matched.size() != 1)
+ FATAL_ERROR("Failed to find matching layout for %s.\n", map_layout_id.c_str());
+
+ Json layout = matched[0];
+
+ ostringstream text;
+
+ text << map_data["name"].string_value() << ":\n"
+ << "\t.4byte " << layout["name"].string_value() << "\n";
+
+ if (map_data.object_items().find("shared_events_map") != map_data.object_items().end())
+ text << "\t.4byte " << map_data["shared_events_map"].string_value() << "_MapEvents\n";
+ else
+ text << "\t.4byte " << map_data["name"].string_value() << "_MapEvents\n";
+
+ if (map_data.object_items().find("shared_scripts_map") != map_data.object_items().end())
+ text << "\t.4byte " << map_data["shared_scripts_map"].string_value() << "_MapScripts\n";
+ else
+ text << "\t.4byte " << map_data["name"].string_value() << "_MapScripts\n";
+
+ if (map_data.object_items().find("connections") != map_data.object_items().end()
+ && map_data["connections"].array_items().size() > 0)
+ text << "\t.4byte " << map_data["name"].string_value() << "_MapConnections\n";
+ else
+ text << "\t.4byte 0x0\n";
+
+ text << "\t.2byte " << map_data["music"].string_value() << "\n"
+ << "\t.2byte " << layout["id"].string_value() << "\n"
+ << "\t.byte " << map_data["region_map_section"].string_value() << "\n"
+ << "\t.byte " << map_data["requires_flash"].bool_value() << "\n"
+ << "\t.byte " << map_data["weather"].string_value() << "\n"
+ << "\t.byte " << map_data["map_type"].string_value() << "\n"
+ << "\t.2byte 0\n";
+
+ if (version == "ruby")
+ text << "\t.byte " << map_data["show_map_name"].bool_value() << "\n";
+ else if (version == "emerald")
+ text << "\tmap_header_flags "
+ << "allow_bike=" << map_data["allow_bike"].bool_value() << ", "
+ << "allow_escape_rope=" << map_data["allow_escape_rope"].bool_value() << ", "
+ << "allow_run=" << map_data["allow_running"].bool_value() << ", "
+ << "show_map_name=" << map_data["show_map_name"].bool_value() << "\n";
+
+ text << "\t.byte " << map_data["battle_scene"].string_value() << "\n\n";
+
+ return text.str();
+}
+
+string generate_map_connections_text(Json map_data) {
+ if (map_data["connections"] == Json())
+ return string("\n");
+
+ ostringstream text;
+
+ text << map_data["name"].string_value() << "_MapConnectionsList:\n";
+
+ for (auto &connection : map_data["connections"].array_items()) {
+ text << "\tconnection "
+ << connection["direction"].string_value() << ", "
+ << connection["offset"].int_value() << ", "
+ << connection["map"].string_value() << "\n";
+ }
+
+ text << "\n" << map_data["name"].string_value() << "_MapConnections:\n"
+ << "\t.4byte " << map_data["connections"].array_items().size() << "\n"
+ << "\t.4byte " << map_data["name"].string_value() << "_MapConnectionsList\n\n";
+
+ return text.str();
+}
+
+string generate_map_events_text(Json map_data) {
+ if (map_data.object_items().find("shared_events_map") != map_data.object_items().end())
+ return string("\n");
+
+ ostringstream text;
+
+ string objects_label, warps_label, coords_label, bgs_label;
+
+ if (map_data["object_events"].array_items().size() > 0) {
+ objects_label = map_data["name"].string_value() + "_EventObjects";
+ text << objects_label << ":\n";
+ for (unsigned int i = 0; i < map_data["object_events"].array_items().size(); i++) {
+ auto obj_event = map_data["object_events"].array_items()[i];
+ text << "\tobject_event " << i + 1 << ", "
+ << obj_event["graphics_id"].string_value() << ", 0, "
+ << obj_event["x"].int_value() << ", "
+ << obj_event["y"].int_value() << ", "
+ << obj_event["elevation"].int_value() << ", "
+ << obj_event["movement_type"].string_value() << ", "
+ << obj_event["movement_range_x"].int_value() << ", "
+ << obj_event["movement_range_y"].int_value() << ", "
+ << obj_event["trainer_type"].string_value() << ", "
+ << obj_event["trainer_sight_or_berry_tree_id"].string_value() << ", "
+ << obj_event["script"].string_value() << ", "
+ << obj_event["flag"].string_value() << "\n";
+ }
+ text << "\n";
+ } else {
+ objects_label = "0x0";
+ }
+
+ if (map_data["warp_events"].array_items().size() > 0) {
+ warps_label = map_data["name"].string_value() + "_MapWarps";
+ text << warps_label << ":\n";
+ for (auto &warp_event : map_data["warp_events"].array_items()) {
+ text << "\twarp_def "
+ << warp_event["x"].int_value() << ", "
+ << warp_event["y"].int_value() << ", "
+ << warp_event["elevation"].int_value() << ", "
+ << warp_event["dest_warp_id"].int_value() << ", "
+ << warp_event["dest_map"].string_value() << "\n";
+ }
+ text << "\n";
+ } else {
+ warps_label = "0x0";
+ }
+
+ if (map_data["coord_events"].array_items().size() > 0) {
+ coords_label = map_data["name"].string_value() + "_MapCoordEvents";
+ text << coords_label << ":\n";
+ for (auto &coord_event : map_data["coord_events"].array_items()) {
+ if (coord_event["type"].string_value() == "trigger") {
+ text << "\tcoord_event "
+ << coord_event["x"].int_value() << ", "
+ << coord_event["y"].int_value() << ", "
+ << coord_event["elevation"].int_value() << ", "
+ << coord_event["var"].string_value() << ", "
+ << coord_event["var_value"].string_value() << ", "
+ << coord_event["script"].string_value() << "\n";
+ }
+ else if (coord_event["type"] == "weather") {
+ text << "\tcoord_weather_event "
+ << coord_event["x"].int_value() << ", "
+ << coord_event["y"].int_value() << ", "
+ << coord_event["elevation"].int_value() << ", "
+ << coord_event["weather"].string_value() << "\n";
+ }
+ }
+ text << "\n";
+ } else {
+ coords_label = "0x0";
+ }
+
+ if (map_data["bg_events"].array_items().size() > 0) {
+ bgs_label = map_data["name"].string_value() + "_MapBGEvents";
+ text << bgs_label << ":\n";
+ for (auto &bg_event : map_data["bg_events"].array_items()) {
+ if (bg_event["type"] == "sign") {
+ text << "\tbg_event "
+ << bg_event["x"].int_value() << ", "
+ << bg_event["y"].int_value() << ", "
+ << bg_event["elevation"].int_value() << ", "
+ << bg_event["player_facing_dir"].string_value() << ", "
+ << bg_event["script"].string_value() << "\n";
+ }
+ else if (bg_event["type"] == "hidden_item") {
+ text << "\tbg_hidden_item_event "
+ << bg_event["x"].int_value() << ", "
+ << bg_event["y"].int_value() << ", "
+ << bg_event["elevation"].int_value() << ", "
+ << bg_event["item"].string_value() << ", "
+ << bg_event["flag"].string_value() << "\n";
+ }
+ else if (bg_event["type"] == "secret_base") {
+ text << "\tbg_secret_base_event "
+ << bg_event["x"].int_value() << ", "
+ << bg_event["y"].int_value() << ", "
+ << bg_event["elevation"].int_value() << ", "
+ << bg_event["secret_base_id"].string_value() << "\n";
+ }
+ }
+ text << "\n";
+ } else {
+ bgs_label = "0x0";
+ }
+
+ text << map_data["name"].string_value() << "_MapEvents::\n"
+ << "\tmap_events " << objects_label << ", " << warps_label << ", "
+ << coords_label << ", " << bgs_label << "\n\n";
+
+ return text.str();
+}
+
+string get_directory_name(string filename) {
+ size_t dir_pos = filename.find_last_of("/\\");
+
+ return filename.substr(0, dir_pos + 1);
+}
+
+void process_map(string map_filepath, string layouts_filepath, string version) {
+ string mapdata_err, layouts_err;
+
+ string mapdata_json_text = read_text_file(map_filepath);
+ string layouts_json_text = read_text_file(layouts_filepath);
+
+ Json map_data = Json::parse(mapdata_json_text, mapdata_err);
+ if (map_data == Json())
+ FATAL_ERROR("%s\n", mapdata_err.c_str());
+
+ Json layouts_data = Json::parse(layouts_json_text, layouts_err);
+ if (layouts_data == Json())
+ FATAL_ERROR("%s\n", layouts_err.c_str());
+
+ string header_text = generate_map_header_text(map_data, layouts_data, version);
+ string events_text = generate_map_events_text(map_data);
+ string connections_text = generate_map_connections_text(map_data);
+
+ string files_dir = get_directory_name(map_filepath);
+ write_text_file(files_dir + "header.inc", header_text);
+ write_text_file(files_dir + "events.inc", events_text);
+ write_text_file(files_dir + "connections.inc", connections_text);
+}
+
+string generate_groups_text(Json groups_data) {
+ ostringstream text;
+
+ for (auto &key : groups_data["group_order"].array_items()) {
+ string group = key.string_value();
+ text << group << "::\n";
+ auto maps = groups_data[group].array_items();
+ for (Json &map_name : maps)
+ text << "\t.4byte " << map_name.string_value() << "\n";
+ text << "\n";
+ }
+
+ text << "\t.align 2\n" << "gMapGroups::\n";
+ for (auto &group : groups_data["group_order"].array_items())
+ text << "\t.4byte " << group.string_value() << "\n";
+ text << "\n";
+
+ return text.str();
+}
+
+string generate_connections_text(Json groups_data) {
+ vector<Json> map_names;
+
+ for (auto &group : groups_data["group_order"].array_items())
+ for (auto map_name : groups_data[group.string_value()].array_items())
+ map_names.push_back(map_name);
+
+ vector<Json> connections_include_order = groups_data["connections_include_order"].array_items();
+
+ if (connections_include_order.size() > 0)
+ sort(map_names.begin(), map_names.end(), [connections_include_order](const Json &a, const Json &b) {
+ auto iter_a = find(connections_include_order.begin(), connections_include_order.end(), a);
+ if (iter_a == connections_include_order.end())
+ iter_a = connections_include_order.begin() + numeric_limits<int>::max();
+ auto iter_b = find(connections_include_order.begin(), connections_include_order.end(), b);
+ if (iter_b == connections_include_order.end())
+ iter_b = connections_include_order.begin() + numeric_limits<int>::max();
+ return iter_a < iter_b;
+ });
+
+ ostringstream text;
+
+ for (Json map_name : map_names)
+ text << "\t.include \"data/maps/" << map_name.string_value() << "/connections.inc\"\n";
+
+ return text.str();
+}
+
+string generate_headers_text(Json groups_data) {
+ vector<string> map_names;
+
+ for (auto &group : groups_data["group_order"].array_items())
+ for (auto map_name : groups_data[group.string_value()].array_items())
+ map_names.push_back(map_name.string_value());
+
+ ostringstream text;
+
+ for (string map_name : map_names)
+ text << "\t.include \"data/maps/" << map_name << "/header.inc\"\n";
+
+ return text.str();
+}
+
+string generate_events_text(Json groups_data) {
+ vector<string> map_names;
+
+ for (auto &group : groups_data["group_order"].array_items())
+ for (auto map_name : groups_data[group.string_value()].array_items())
+ map_names.push_back(map_name.string_value());
+
+ ostringstream text;
+
+ for (string map_name : map_names)
+ text << "\t.include \"data/maps/" << map_name << "/events.inc\"\n";
+
+ return text.str();
+}
+
+string generate_map_constants_text(string groups_filepath, Json groups_data) {
+ string file_dir = get_directory_name(groups_filepath);
+ char dir_separator = file_dir.back();
+
+ ostringstream text;
+
+ text << "#ifndef GUARD_CONSTANTS_MAP_GROUPS_H\n"
+ << "#define GUARD_CONSTANTS_MAP_GROUPS_H\n\n";
+
+ int group_num = 0;
+
+ for (auto &group : groups_data["group_order"].array_items()) {
+ text << "// Map Group " << group_num << "\n";
+ vector<Json> map_ids;
+ size_t max_length = 0;
+
+ for (auto &map_name : groups_data[group.string_value()].array_items()) {
+ string header_filepath = file_dir + map_name.string_value() + dir_separator + "map.json";
+ string err_str;
+ Json map_data = Json::parse(read_text_file(header_filepath), err_str);
+ map_ids.push_back(map_data["id"]);
+ if (map_data["id"].string_value().length() > max_length)
+ max_length = map_data["id"].string_value().length();
+ }
+
+ int map_id_num = 0;
+ for (Json map_id : map_ids) {
+ text << "#define " << map_id.string_value() << string((max_length - map_id.string_value().length() + 1), ' ')
+ << "(" << map_id_num++ << " | (" << group_num << " << 8))\n";
+ }
+ text << "\n";
+
+ group_num++;
+ }
+
+ text << "#define MAP_GROUPS_COUNT " << group_num << "\n\n";
+ text << "#endif // GUARD_CONSTANTS_MAP_GROUPS_H\n";
+
+ return text.str();
+}
+
+void process_groups(string groups_filepath) {
+ string err;
+ Json groups_data = Json::parse(read_text_file(groups_filepath), err);
+
+ if (groups_data == Json())
+ FATAL_ERROR("%s\n", err.c_str());
+
+ string groups_text = generate_groups_text(groups_data);
+ string connections_text = generate_connections_text(groups_data);
+ string headers_text = generate_headers_text(groups_data);
+ string events_text = generate_events_text(groups_data);
+ string map_header_text = generate_map_constants_text(groups_filepath, groups_data);
+
+ string file_dir = get_directory_name(groups_filepath);
+ char s = file_dir.back();
+
+ write_text_file(file_dir + "groups.inc", groups_text);
+ write_text_file(file_dir + "connections.inc", connections_text);
+ write_text_file(file_dir + "headers.inc", headers_text);
+ write_text_file(file_dir + "events.inc", events_text);
+ write_text_file(file_dir + ".." + s + ".." + s + "include" + s + "constants" + s + "map_groups.h", map_header_text);
+}
+
+string generate_layout_headers_text(Json layouts_data) {
+ ostringstream text;
+
+ for (auto &layout : layouts_data["layouts"].array_items()) {
+ string border_label = layout["name"].string_value() + "_Border";
+ string blockdata_label = layout["name"].string_value() + "_Blockdata";
+ text << border_label << "::\n"
+ << "\t.incbin \"" << layout["border_filepath"].string_value() << "\"\n\n"
+ << blockdata_label << "::\n"
+ << "\t.incbin \"" << layout["blockdata_filepath"].string_value() << "\"\n\n"
+ << "\t.align 2\n"
+ << layout["name"].string_value() << "::\n"
+ << "\t.4byte " << layout["width"].int_value() << "\n"
+ << "\t.4byte " << layout["height"].int_value() << "\n"
+ << "\t.4byte " << border_label << "\n"
+ << "\t.4byte " << blockdata_label << "\n"
+ << "\t.4byte " << layout["primary_tileset"].string_value() << "\n"
+ << "\t.4byte " << layout["secondary_tileset"].string_value() << "\n\n";
+ }
+
+ return text.str();
+}
+
+string generate_layouts_table_text(Json layouts_data) {
+ ostringstream text;
+
+ text << "\t.align 2\n"
+ << layouts_data["layouts_table_label"].string_value() << "::\n";
+
+ for (auto &layout : layouts_data["layouts"].array_items())
+ text << "\t.4byte " << layout["name"].string_value() << "\n";
+
+ return text.str();
+}
+
+string generate_layouts_constants_text(Json layouts_data) {
+ ostringstream text;
+
+ text << "#ifndef GUARD_CONSTANTS_LAYOUTS_H\n"
+ << "#define GUARD_CONSTANTS_LAYOUTS_H\n\n";
+
+ int i = 0;
+ for (auto &layout : layouts_data["layouts"].array_items())
+ text << "#define " << layout["id"].string_value() << " " << ++i << "\n";
+
+ text << "\n#endif // GUARD_CONSTANTS_LAYOUTS_H\n";
+
+ return text.str();
+}
+
+void process_layouts(string layouts_filepath) {
+ string err;
+ Json layouts_data = Json::parse(read_text_file(layouts_filepath), err);
+
+ if (layouts_data == Json())
+ FATAL_ERROR("%s\n", err.c_str());
+
+ string layout_headers_text = generate_layout_headers_text(layouts_data);
+ string layouts_table_text = generate_layouts_table_text(layouts_data);
+ string layouts_constants_text = generate_layouts_constants_text(layouts_data);
+
+ string file_dir = get_directory_name(layouts_filepath);
+ char s = file_dir.back();
+
+ write_text_file(file_dir + "layouts.inc", layout_headers_text);
+ write_text_file(file_dir + "layouts_table.inc", layouts_table_text);
+ write_text_file(file_dir + ".." + s + ".." + s + "include" + s + "constants" + s + "layouts.h", layouts_constants_text);
+}
+
+int main(int argc, char *argv[]) {
+ if (argc < 3)
+ FATAL_ERROR("USAGE: mapjson <mode> <game-version> [options]\n");
+
+ char *version_arg = argv[2];
+ string version(version_arg);
+ if (version != "emerald" && version != "ruby")
+ FATAL_ERROR("ERROR: <game-version> must be 'emerald' or 'ruby'.\n");
+
+ char *mode_arg = argv[1];
+ string mode(mode_arg);
+ if (mode != "layouts" && mode != "map" && mode != "groups")
+ FATAL_ERROR("ERROR: <mode> must be 'layouts', 'map', or 'groups'.\n");
+
+ if (mode == "map") {
+ if (argc != 5)
+ FATAL_ERROR("USAGE: mapjson map <game-version> <map_file> <layouts_file>\n");
+
+ string filepath(argv[3]);
+ string layouts_filepath(argv[4]);
+
+ process_map(filepath, layouts_filepath, version);
+ }
+ else if (mode == "groups") {
+ if (argc != 4)
+ FATAL_ERROR("USAGE: mapjson groups <game-version> <groups_file>\n");
+
+ string filepath(argv[3]);
+
+ process_groups(filepath);
+ }
+ else if (mode == "layouts") {
+ if (argc != 4)
+ FATAL_ERROR("USAGE: mapjson layouts <game-version> <layouts_file>\n");
+
+ string filepath(argv[3]);
+
+ process_layouts(filepath);
+ }
+
+ return 0;
+}
diff --git a/tools/mapjson/mapjson.h b/tools/mapjson/mapjson.h
new file mode 100644
index 000000000..6e961a28e
--- /dev/null
+++ b/tools/mapjson/mapjson.h
@@ -0,0 +1,31 @@
+// mapjson.h
+
+#ifndef MAPJSON_H
+#define MAPJSON_H
+
+#include <cstdio>
+using std::fprintf; using std::exit;
+
+#include <cstdlib>
+
+#ifdef _MSC_VER
+
+#define FATAL_ERROR(format, ...) \
+do \
+{ \
+ fprintf(stderr, format, __VA_ARGS__); \
+ exit(1); \
+} while (0)
+
+#else
+
+#define FATAL_ERROR(format, ...) \
+do \
+{ \
+ fprintf(stderr, format, ##__VA_ARGS__); \
+ exit(1); \
+} while (0)
+
+#endif // _MSC_VER
+
+#endif // MAPJSON_H
diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile
index 367a3350b..53c9d0060 100644
--- a/tools/scaninc/Makefile
+++ b/tools/scaninc/Makefile
@@ -2,9 +2,9 @@ CXX = g++
CXXFLAGS = -Wall -Werror -std=c++11 -O2
-SRCS = scaninc.cpp c_file.cpp asm_file.cpp
+SRCS = scaninc.cpp c_file.cpp asm_file.cpp source_file.cpp
-HEADERS := scaninc.h asm_file.h c_file.h
+HEADERS := scaninc.h asm_file.h c_file.h source_file.h
.PHONY: clean
diff --git a/tools/scaninc/asm_file.cpp b/tools/scaninc/asm_file.cpp
index 6322749e2..109e604a2 100644
--- a/tools/scaninc/asm_file.cpp
+++ b/tools/scaninc/asm_file.cpp
@@ -64,7 +64,8 @@ IncDirectiveType AsmFile::ReadUntilIncDirective(std::string &path)
IncDirectiveType incDirectiveType = IncDirectiveType::None;
- if (PeekChar() == '.')
+ char c = PeekChar();
+ if (c == '.' || c == '#')
{
m_pos++;
diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp
index 3dc221479..b95cbd033 100644
--- a/tools/scaninc/scaninc.cpp
+++ b/tools/scaninc/scaninc.cpp
@@ -25,8 +25,7 @@
#include <set>
#include <string>
#include "scaninc.h"
-#include "asm_file.h"
-#include "c_file.h"
+#include "source_file.h"
bool CanOpenFile(std::string path)
{
@@ -46,7 +45,7 @@ int main(int argc, char **argv)
std::queue<std::string> filesToProcess;
std::set<std::string> dependencies;
- std::list<std::string> includeDirs;
+ std::vector<std::string> includeDirs;
argc--;
argv++;
@@ -63,7 +62,7 @@ int main(int argc, char **argv)
argv++;
includeDir = std::string(argv[0]);
}
- if (includeDir.back() != '/')
+ if (!includeDir.empty() && includeDir.back() != '/')
{
includeDir += '/';
}
@@ -83,79 +82,36 @@ int main(int argc, char **argv)
std::string initialPath(argv[0]);
- std::size_t pos = initialPath.find_last_of('.');
+ filesToProcess.push(initialPath);
- if (pos == std::string::npos)
- FATAL_ERROR("no file extension in path \"%s\"\n", initialPath.c_str());
-
- std::string extension = initialPath.substr(pos + 1);
-
- std::string srcDir("");
- std::size_t slash = initialPath.rfind('/');
- if (slash != std::string::npos)
- {
- srcDir = initialPath.substr(0, slash + 1);
- }
- includeDirs.push_back(srcDir);
-
- if (extension == "c" || extension == "h")
+ while (!filesToProcess.empty())
{
- filesToProcess.push(initialPath);
+ std::string filePath = filesToProcess.front();
+ SourceFile file(filePath);
+ filesToProcess.pop();
- while (!filesToProcess.empty())
+ includeDirs.push_back(file.GetSrcDir());
+ for (auto incbin : file.GetIncbins())
{
- CFile file(filesToProcess.front());
- filesToProcess.pop();
-
- file.FindIncbins();
- for (auto incbin : file.GetIncbins())
- {
- dependencies.insert(incbin);
- }
- for (auto include : file.GetIncludes())
+ dependencies.insert(incbin);
+ }
+ for (auto include : file.GetIncludes())
+ {
+ for (auto includeDir : includeDirs)
{
- for (auto includeDir : includeDirs)
+ std::string path(includeDir + include);
+ if (CanOpenFile(path))
{
- std::string path(includeDir + include);
- if (CanOpenFile(path))
+ bool inserted = dependencies.insert(path).second;
+ if (inserted)
{
- bool inserted = dependencies.insert(path).second;
- if (inserted)
- {
- filesToProcess.push(path);
- }
- break;
+ filesToProcess.push(path);
}
+ break;
}
}
}
- }
- else if (extension == "s" || extension == "inc")
- {
- filesToProcess.push(initialPath);
-
- while (!filesToProcess.empty())
- {
- AsmFile file(filesToProcess.front());
-
- filesToProcess.pop();
-
- IncDirectiveType incDirectiveType;
- std::string path;
-
- while ((incDirectiveType = file.ReadUntilIncDirective(path)) != IncDirectiveType::None)
- {
- bool inserted = dependencies.insert(path).second;
- if (inserted
- && incDirectiveType == IncDirectiveType::Include
- && CanOpenFile(path))
- filesToProcess.push(path);
- }
- }
- }
- else
- {
- FATAL_ERROR("unknown extension \"%s\"\n", extension.c_str());
+ includeDirs.pop_back();
}
for (const std::string &path : dependencies)
diff --git a/tools/scaninc/source_file.cpp b/tools/scaninc/source_file.cpp
new file mode 100644
index 000000000..f23ff6db6
--- /dev/null
+++ b/tools/scaninc/source_file.cpp
@@ -0,0 +1,125 @@
+// Copyright(c) 2019 Phlosioneer
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+#include <new>
+#include "source_file.h"
+
+
+SourceFileType GetFileType(std::string& path)
+{
+ std::size_t pos = path.find_last_of('.');
+
+ if (pos == std::string::npos)
+ FATAL_ERROR("no file extension in path \"%s\"\n", path.c_str());
+
+ std::string extension = path.substr(pos + 1);
+
+ if (extension == "c")
+ return SourceFileType::Cpp;
+ else if (extension == "s")
+ return SourceFileType::Asm;
+ else if (extension == "h")
+ return SourceFileType::Header;
+ else if (extension == "inc")
+ return SourceFileType::Inc;
+ else
+ FATAL_ERROR("Unrecognized extension \"%s\"\n", extension.c_str());
+
+ // Unreachable
+ return SourceFileType::Cpp;
+}
+
+std::string GetDir(std::string& path)
+{
+ std::size_t slash = path.rfind('/');
+
+ if (slash != std::string::npos)
+ return path.substr(0, slash + 1);
+ else
+ return std::string("");
+}
+
+SourceFile::SourceFile(std::string path)
+{
+ m_file_type = GetFileType(path);
+
+ m_src_dir = GetDir(path);
+
+ if (m_file_type == SourceFileType::Cpp
+ || m_file_type == SourceFileType::Header)
+ {
+ new (&m_source_file.c_file) CFile(path);
+ m_source_file.c_file.FindIncbins();
+ }
+ else
+ {
+ AsmFile file(path);
+ std::set<std::string> incbins;
+ std::set<std::string> includes;
+
+ IncDirectiveType incDirectiveType;
+ std::string outputPath;
+
+ while ((incDirectiveType = file.ReadUntilIncDirective(outputPath)) != IncDirectiveType::None)
+ {
+ if (incDirectiveType == IncDirectiveType::Include)
+ includes.insert(outputPath);
+ else
+ incbins.insert(outputPath);
+ }
+
+ new (&m_source_file.asm_wrapper) SourceFile::InnerUnion::AsmWrapper{incbins, includes};
+ }
+}
+
+SourceFile::~SourceFile()
+{
+ if (m_file_type == SourceFileType::Cpp || m_file_type == SourceFileType::Header)
+ {
+ m_source_file.c_file.~CFile();
+ }
+ else
+ {
+ m_source_file.asm_wrapper.asm_incbins.~set();
+ m_source_file.asm_wrapper.asm_includes.~set();
+ }
+}
+
+const std::set<std::string>& SourceFile::GetIncbins()
+{
+ if (m_file_type == SourceFileType::Cpp || m_file_type == SourceFileType::Header)
+ return m_source_file.c_file.GetIncbins();
+ else
+ return m_source_file.asm_wrapper.asm_incbins;
+}
+
+const std::set<std::string>& SourceFile::GetIncludes()
+{
+ if (m_file_type == SourceFileType::Cpp || m_file_type == SourceFileType::Header)
+ return m_source_file.c_file.GetIncludes();
+ else
+ return m_source_file.asm_wrapper.asm_includes;
+}
+
+std::string& SourceFile::GetSrcDir()
+{
+ return m_src_dir;
+}
+
diff --git a/tools/scaninc/source_file.h b/tools/scaninc/source_file.h
new file mode 100644
index 000000000..f7b6412bd
--- /dev/null
+++ b/tools/scaninc/source_file.h
@@ -0,0 +1,71 @@
+// Copyright(c) 2019 Phlosioneer
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+#ifndef SOURCE_FILE_H
+#define SOURCE_FILE_H
+
+#include <string>
+#include "scaninc.h"
+#include "asm_file.h"
+#include "c_file.h"
+
+enum class SourceFileType
+{
+ Cpp,
+ Header,
+ Asm,
+ Inc
+};
+
+SourceFileType GetFileType(std::string& path);
+
+class SourceFile
+{
+public:
+
+ SourceFile(std::string path);
+ ~SourceFile();
+ SourceFile(SourceFile const&) = delete;
+ SourceFile(SourceFile&&) = delete;
+ SourceFile& operator =(SourceFile const&) = delete;
+ SourceFile& operator =(SourceFile&&) = delete;
+ bool HasIncbins();
+ const std::set<std::string>& GetIncbins();
+ const std::set<std::string>& GetIncludes();
+ std::string& GetSrcDir();
+
+private:
+ union InnerUnion {
+ CFile c_file;
+ struct AsmWrapper {
+ std::set<std::string> asm_incbins;
+ std::set<std::string> asm_includes;
+ } asm_wrapper;
+
+ // Construction and destruction handled by SourceFile.
+ InnerUnion() {};
+ ~InnerUnion() {};
+ } m_source_file;
+ SourceFileType m_file_type;
+ std::string m_src_dir;
+};
+
+#endif // SOURCE_FILE_H
+