summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-17 13:22:46 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-17 13:22:46 -0800
commitb849ce93dbafac8e4961b531ab40585c0fdd103a (patch)
tree1cfd5cf3b7223a8e91dd0a0d4e6e112bd3458d8b
parent3ddda066d91cbbd377584acacaea62a9deba8873 (diff)
decompile main
-rw-r--r--Makefile2
-rw-r--r--asm/bag.s4
-rw-r--r--asm/battle_1.s4
-rw-r--r--asm/battle_2.s68
-rw-r--r--asm/battle_ai_switch_items.s4
-rw-r--r--asm/battle_anim_80A22E8.s4
-rw-r--r--asm/battle_anim_80EEC0C.s48
-rw-r--r--asm/battle_controller_oak.s28
-rw-r--r--asm/battle_controller_opponent.s4
-rw-r--r--asm/battle_controller_player.s82
-rw-r--r--asm/battle_controller_pokedude.s20
-rw-r--r--asm/battle_controller_safari.s16
-rw-r--r--asm/battle_gfx_sfx_util.s4
-rw-r--r--asm/battle_message.s4
-rw-r--r--asm/battle_records.s32
-rw-r--r--asm/battle_script_commands.s72
-rw-r--r--asm/battle_setup.s68
-rw-r--r--asm/battle_tower.s244
-rw-r--r--asm/battle_transition.s12
-rw-r--r--asm/berry.s20
-rw-r--r--asm/berry_fix_program.s18
-rw-r--r--asm/berry_pouch.s44
-rw-r--r--asm/bike.s4
-rw-r--r--asm/braille_text.s8
-rw-r--r--asm/buy_menu_helpers.s4
-rw-r--r--asm/cable_club.s36
-rw-r--r--asm/cereader_tool.s4
-rw-r--r--asm/clear_save_data_screen.s2
-rw-r--r--asm/coins.s16
-rw-r--r--asm/credits.s8
-rw-r--r--asm/daycare.s96
-rw-r--r--asm/diploma.s8
-rw-r--r--asm/easy_chat.s36
-rw-r--r--asm/egg_hatch.s16
-rw-r--r--asm/event_data.s52
-rw-r--r--asm/evolution_scene.s40
-rw-r--r--asm/fame_checker.s60
-rw-r--r--asm/field_camera.s24
-rw-r--r--asm/field_control_avatar.s12
-rw-r--r--asm/field_effect.s24
-rw-r--r--asm/field_effect_helpers.s8
-rw-r--r--asm/field_ground_effect.s16
-rw-r--r--asm/field_map_obj.s44
-rw-r--r--asm/field_player_avatar.s4
-rw-r--r--asm/field_screen_effect.s4
-rw-r--r--asm/field_specials.s92
-rw-r--r--asm/field_weather.s20
-rw-r--r--asm/fieldmap.s82
-rw-r--r--asm/fldeff_flash.s20
-rw-r--r--asm/hall_of_fame.s46
-rw-r--r--asm/heal_location.s8
-rw-r--r--asm/help_system.s26
-rw-r--r--asm/help_system_812B1E0.s20
-rw-r--r--asm/intro.s42
-rw-r--r--asm/item.s52
-rw-r--r--asm/item_menu.s112
-rw-r--r--asm/item_pc.s52
-rw-r--r--asm/item_use.s8
-rw-r--r--asm/learn_move.s8
-rw-r--r--asm/link.s78
-rw-r--r--asm/link_rfu.s36
-rw-r--r--asm/link_rfu_2.s64
-rw-r--r--asm/link_rfu_3.s156
-rw-r--r--asm/link_rfu_4.s20
-rw-r--r--asm/list_menu.s8
-rw-r--r--asm/load_save.s134
-rw-r--r--asm/mail.s16
-rw-r--r--asm/mail_data.s38
-rw-r--r--asm/mailbox_pc.s4
-rw-r--r--asm/main.s757
-rw-r--r--asm/main_menu.s28
-rw-r--r--asm/menu.s32
-rw-r--r--asm/menu2.s4
-rw-r--r--asm/menu_helpers.s24
-rw-r--r--asm/mevent.s152
-rw-r--r--asm/mevent_server.s12
-rw-r--r--asm/mon_markings.s8
-rw-r--r--asm/money.s16
-rw-r--r--asm/mystery_event_script.s8
-rw-r--r--asm/mystery_gift_menu.s4
-rw-r--r--asm/naming_screen.s44
-rw-r--r--asm/new_game.s28
-rw-r--r--asm/new_menu_helpers.s4
-rw-r--r--asm/oak_speech.s84
-rw-r--r--asm/option_menu.s20
-rw-r--r--asm/overworld.s256
-rw-r--r--asm/party_menu.s112
-rw-r--r--asm/play_time.s16
-rw-r--r--asm/player_pc.s24
-rw-r--r--asm/pokeball.s12
-rw-r--r--asm/pokedex_screen.s108
-rw-r--r--asm/pokemon_1.s14
-rw-r--r--asm/pokemon_2.s4
-rw-r--r--asm/pokemon_3.s78
-rw-r--r--asm/pokemon_item_effect.s44
-rw-r--r--asm/pokemon_size_record.s4
-rw-r--r--asm/pokemon_special_anim.s28
-rw-r--r--asm/pokemon_storage_system.s148
-rw-r--r--asm/pokemon_summary_screen.s40
-rw-r--r--asm/post_battle_event_funcs.s4
-rw-r--r--asm/quest_log.s158
-rw-r--r--asm/region_map.s96
-rw-r--r--asm/reset_save_heap.s8
-rw-r--r--asm/reshow_battle_screen.s8
-rw-r--r--asm/roamer.s44
-rw-r--r--asm/save.s24
-rw-r--r--asm/save_failed_screen.s4
-rw-r--r--asm/save_location.s36
-rw-r--r--asm/save_menu_util.s12
-rw-r--r--asm/scrcmd.s64
-rw-r--r--asm/script.s24
-rw-r--r--asm/script_menu.s4
-rw-r--r--asm/script_pokemon_util_80A0058.s8
-rw-r--r--asm/seagallop.s12
-rw-r--r--asm/shop.s24
-rw-r--r--asm/slot_machine.s32
-rw-r--r--asm/sound.s6
-rw-r--r--asm/sprite.s28
-rw-r--r--asm/ss_anne.s16
-rw-r--r--asm/start_menu.s38
-rw-r--r--asm/string_util.s16
-rw-r--r--asm/teachy_tv.s20
-rw-r--r--asm/text.s16
-rw-r--r--asm/text_window.s8
-rw-r--r--asm/title_screen.s24
-rw-r--r--asm/tm_case.s64
-rw-r--r--asm/trade.s340
-rw-r--r--asm/trainer_card.s88
-rw-r--r--asm/trainer_see.s16
-rw-r--r--asm/trainer_tower.s96
-rw-r--r--asm/union_room_chat.s64
-rw-r--r--asm/unk_810C3A4.s28
-rw-r--r--asm/unk_8147500.s4
-rw-r--r--asm/unk_8147AA8.s16
-rw-r--r--asm/unk_814B6F0.s20
-rw-r--r--asm/unk_814BB4C.s12
-rw-r--r--asm/unk_814D5C8.s8
-rw-r--r--asm/unk_81507FC.s44
-rw-r--r--asm/unk_8159F40.s4
-rw-r--r--asm/unk_815C980.s42
-rw-r--r--asm/unk_815EDDC.s48
-rw-r--r--asm/vs_seeker.s46
-rw-r--r--asm/wild_encounter.s16
-rw-r--r--asm/wireless_communication_status_screen.s4
-rw-r--r--common_syms/main.txt12
-rw-r--r--data/data.s12
-rw-r--r--include/battle.h1008
-rw-r--r--include/battle_2.h55
-rw-r--r--include/battle_ai_script_commands.h13
-rw-r--r--include/battle_ai_switch_items.h17
-rw-r--r--include/battle_anim.h118
-rw-r--r--include/battle_controllers.h278
-rw-r--r--include/battle_dome_cards.h13
-rw-r--r--include/battle_gfx_sfx_util.h50
-rw-r--r--include/battle_interface.h75
-rw-r--r--include/battle_message.h235
-rw-r--r--include/battle_script_commands.h66
-rw-r--r--include/battle_scripts.h290
-rw-r--r--include/battle_setup.h18
-rw-r--r--include/battle_string_ids.h387
-rw-r--r--include/battle_tower.h6
-rw-r--r--include/battle_transition.h6
-rw-r--r--include/battle_util.h84
-rw-r--r--include/battle_util2.h10
-rw-r--r--include/berry.h73
-rw-r--r--include/bg.h85
-rw-r--r--include/blend_palette.h12
-rw-r--r--include/calculate_base_damage.h6
-rw-r--r--include/coins.h12
-rw-r--r--include/config.h12
-rw-r--r--include/constants/abilities.h83
-rw-r--r--include/constants/battle_move_effects.h219
-rw-r--r--include/constants/decorations.h126
-rw-r--r--include/constants/easy_chat.h1079
-rw-r--r--include/constants/flags.h1578
-rw-r--r--include/constants/game_stat.h59
-rw-r--r--include/constants/hold_effects.h72
-rw-r--r--include/constants/items.h393
-rw-r--r--include/constants/map_objects.h263
-rw-r--r--include/constants/maps.h595
-rw-r--r--include/constants/moves.h362
-rw-r--r--include/constants/songs.h465
-rw-r--r--include/constants/species.h450
-rw-r--r--include/constants/vars.h288
-rw-r--r--include/data2.h20
-rw-r--r--include/daycare.h27
-rw-r--r--include/decompress.h33
-rw-r--r--include/diploma.h6
-rw-r--r--include/dma3.h10
-rw-r--r--include/easy_chat.h39
-rw-r--r--include/egg_hatch.h10
-rw-r--r--include/event_data.h52
-rw-r--r--include/event_scripts.h375
-rw-r--r--include/evolution_graphics.h15
-rw-r--r--include/evolution_scene.h10
-rw-r--r--include/field_camera.h28
-rw-r--r--include/field_door.h11
-rw-r--r--include/field_effect.h78
-rw-r--r--include/field_effect_helpers.h16
-rw-r--r--include/field_fadetransition.h12
-rw-r--r--include/field_ground_effect.h22
-rw-r--r--include/field_map_obj.h84
-rw-r--r--include/field_map_obj_helpers.h7
-rw-r--r--include/field_message_box.h10
-rw-r--r--include/field_player_avatar.h16
-rw-r--r--include/field_poison.h19
-rw-r--r--include/field_screen.h14
-rw-r--r--include/field_screen_effect.h8
-rw-r--r--include/field_specials.h6
-rw-r--r--include/field_tasks.h6
-rw-r--r--include/field_weather.h12
-rw-r--r--include/fieldmap.h19
-rw-r--r--include/fldeff_80F9BCC.h14
-rw-r--r--include/gba/gba.h13
-rw-r--r--include/gba/isagbprint.h36
-rw-r--r--include/global.berry.h76
-rw-r--r--include/global.fieldmap.h336
-rw-r--r--include/global.h620
-rw-r--r--include/gpu_regs.h19
-rw-r--r--include/graphics.h144
-rw-r--r--include/hall_of_fame.h9
-rw-r--r--include/heal_location.h25
-rw-r--r--include/international_string_util.h23
-rw-r--r--include/item.h64
-rw-r--r--include/item_icon.h17
-rw-r--r--include/item_menu.h12
-rw-r--r--include/item_menu_icons.h6
-rw-r--r--include/librfu.h108
-rw-r--r--include/link.h198
-rw-r--r--include/list_menu.h56
-rw-r--r--include/load_save.h24
-rw-r--r--include/m4a.h20
-rw-r--r--include/mail.h23
-rw-r--r--include/mail_data.h12
-rw-r--r--include/main.h64
-rw-r--r--include/malloc.h20
-rw-r--r--include/map_name_popup.h11
-rw-r--r--include/map_obj_8097404.h32
-rw-r--r--include/map_obj_lock.h11
-rw-r--r--include/menu.h38
-rw-r--r--include/menu_helpers.h20
-rw-r--r--include/menu_indicators.h12
-rw-r--r--include/metatile_behavior.h149
-rw-r--r--include/metatile_behaviors.h179
-rw-r--r--include/money.h20
-rw-r--r--include/multiboot.h21
-rw-r--r--include/mystery_event_script.h8
-rw-r--r--include/naming_screen.h12
-rw-r--r--include/new_game.h16
-rw-r--r--include/new_menu_helpers.h18
-rw-r--r--include/overworld.h74
-rw-r--r--include/palette.h71
-rw-r--r--include/party_menu.h18
-rw-r--r--include/play_time.h10
-rw-r--r--include/player_pc.h12
-rw-r--r--include/pokeball.h32
-rw-r--r--include/pokedex.h23
-rw-r--r--include/pokemon.h663
-rw-r--r--include/pokemon_3.h7
-rw-r--r--include/pokemon_icon.h12
-rw-r--r--include/pokemon_item_effects.h62
-rw-r--r--include/pokemon_size_record.h14
-rw-r--r--include/pokemon_storage_system.h13
-rw-r--r--include/pokenav.h6
-rw-r--r--include/random.h18
-rw-r--r--include/region_map.h314
-rw-r--r--include/reshow_battle_screen.h7
-rw-r--r--include/roamer.h17
-rw-r--r--include/rom6.h15
-rw-r--r--include/rom_818CFC8.h11
-rw-r--r--include/rom_81BE66C.h12
-rw-r--r--include/safari_zone.h19
-rw-r--r--include/save.h97
-rw-r--r--include/save_location.h9
-rw-r--r--include/script.h64
-rw-r--r--include/script_menu.h13
-rw-r--r--include/script_movement.h8
-rw-r--r--include/script_pokemon_80F8.h10
-rw-r--r--include/script_pokemon_81B9.h6
-rw-r--r--include/shop.h10
-rw-r--r--include/slot_machine.h6
-rw-r--r--include/songs.h466
-rw-r--r--include/sound.h48
-rw-r--r--include/sprite.h302
-rw-r--r--include/start_menu.h6
-rw-r--r--include/string_util.h42
-rw-r--r--include/strings.h91
-rw-r--r--include/task.h33
-rw-r--r--include/text.h255
-rw-r--r--include/text_window.h22
-rw-r--r--include/tilesets.h13
-rw-r--r--include/trainer_classes.h74
-rw-r--r--include/trainer_front_sprites.h101
-rw-r--r--include/trainer_ids.h7
-rw-r--r--include/trainer_see.h8
-rw-r--r--include/trig.h11
-rw-r--r--include/unk_text_util.h9
-rw-r--r--include/unknown_task.h22
-rw-r--r--include/util.h17
-rw-r--r--include/wild_encounter.h44
-rw-r--r--include/window.h72
-rw-r--r--ld_script.txt3
-rw-r--r--src/main.c454
-rw-r--r--sym_common.txt36
-rw-r--r--sym_ewram.txt8
305 files changed, 18946 insertions, 3564 deletions
diff --git a/Makefile b/Makefile
index a62e54693..cc6bd3068 100644
--- a/Makefile
+++ b/Makefile
@@ -79,7 +79,7 @@ src/isagbprn.o: CFLAGS := -mthumb-interwork
$(C_OBJS): %.o : %.c
@$(CPP) $(CPPFLAGS) $< -o $*.i
- @$(CC1) $(CFLAGS) $*.i -o $*.s
+ @$(PREPROC) $*.i charmap.txt | $(CC1) $(CFLAGS) $*.i -o $*.s
@printf ".text\n\t.align\t2, 0\n" >> $*.s
$(AS) $(ASFLAGS) -o $@ $*.s
diff --git a/asm/bag.s b/asm/bag.s
index 1f33ad6a2..8b89e16b0 100644
--- a/asm/bag.s
+++ b/asm/bag.s
@@ -398,7 +398,7 @@ sub_810BB40: @ 810BB40
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0810BB70 @ =gUnknown_3005008
+ ldr r0, _0810BB70 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -413,7 +413,7 @@ sub_810BB40: @ 810BB40
pop {r0}
bx r0
.align 2, 0
-_0810BB70: .4byte gUnknown_3005008
+_0810BB70: .4byte gSaveBlock1Ptr
thumb_func_end sub_810BB40
thumb_func_start sub_810BB74
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 469f9b299..e25330776 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -1231,7 +1231,7 @@ _0800FBA6:
ands r0, r1
cmp r0, 0
beq _0800FBD8
- ldr r0, _0800FBCC @ =gUnknown_81E9F10
+ ldr r0, _0800FBCC @ =gGameVersion
ldrb r0, [r0]
cmp r0, 0x4
bne _0800FBD0
@@ -1240,7 +1240,7 @@ _0800FBA6:
b _0800FC26
.align 2, 0
_0800FBC8: .4byte 0x00080902
-_0800FBCC: .4byte gUnknown_81E9F10
+_0800FBCC: .4byte gGameVersion
_0800FBD0:
movs r0, 0x4
bl sub_800F2AC
diff --git a/asm/battle_2.s b/asm/battle_2.s
index a5dca1033..681c34b21 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -218,7 +218,7 @@ _0800FF7E:
bl sub_80112E0
bl SetWildMonHeldItem
_0800FF98:
- ldr r0, _0800FFDC @ =gUnknown_30030F0
+ ldr r0, _0800FFDC @ =gMain
ldr r1, _0800FFE0 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -248,7 +248,7 @@ _0800FFCC: .4byte sub_8010508
_0800FFD0: .4byte gUnknown_2022B4C
_0800FFD4: .4byte gUnknown_202402C
_0800FFD8: .4byte gUnknown_20386AE
-_0800FFDC: .4byte gUnknown_30030F0
+_0800FFDC: .4byte gMain
_0800FFE0: .4byte 0x00000439
_0800FFE4: .4byte gUnknown_2024284
_0800FFE8: .4byte gUnknown_2023E82
@@ -373,7 +373,7 @@ sub_80100B8: @ 80100B8
cmp r0, 0x1
bne _08010134
movs r2, 0
- ldr r7, _08010124 @ =gUnknown_3005008
+ ldr r7, _08010124 @ =gSaveBlock1Ptr
movs r1, 0xC8
lsls r1, 1
adds r5, r1
@@ -394,7 +394,7 @@ _080100DA:
strb r0, [r1]
movs r2, 0
adds r3, r5, 0
- ldr r6, _08010124 @ =gUnknown_3005008
+ ldr r6, _08010124 @ =gSaveBlock1Ptr
ldr r5, _0801012C @ =0x00003108
_080100FA:
adds r0, r3, r2
@@ -418,7 +418,7 @@ _080100FA:
b _08010174
.align 2, 0
_08010120: .4byte gUnknown_2023FE8
-_08010124: .4byte gUnknown_3005008
+_08010124: .4byte gSaveBlock1Ptr
_08010128: .4byte 0x000030ec
_0801012C: .4byte 0x00003108
_08010130: .4byte 0x0000311a
@@ -482,7 +482,7 @@ _08010194:
bne _08010250
movs r5, 0
ldr r3, _08010238 @ =gUnknown_2023F54
- ldr r0, _0801023C @ =gUnknown_3005008
+ ldr r0, _0801023C @ =gSaveBlock1Ptr
mov r8, r0
adds r6, r3, 0
mov r4, r8
@@ -517,7 +517,7 @@ _080101AE:
movs r5, 0
adds r7, r3, 0
adds r7, 0x8
- ldr r4, _0801023C @ =gUnknown_3005008
+ ldr r4, _0801023C @ =gSaveBlock1Ptr
ldr r2, _08010244 @ =0x00003108
adds r6, r3, 0
adds r6, 0x40
@@ -561,7 +561,7 @@ _080101EC:
.align 2, 0
_08010234: .4byte gUnknown_2022B4C
_08010238: .4byte gUnknown_2023F54
-_0801023C: .4byte gUnknown_3005008
+_0801023C: .4byte gSaveBlock1Ptr
_08010240: .4byte 0x000030ec
_08010244: .4byte 0x00003108
_08010248: .4byte 0x0000311a
@@ -1296,7 +1296,7 @@ _0801084C:
cmp r0, 0
beq _080108B8
ldr r2, _08010884 @ =gUnknown_3004F80
- ldr r1, _08010888 @ =gUnknown_30030F0
+ ldr r1, _08010888 @ =gMain
ldr r0, [r1]
str r0, [r2]
ldr r0, _0801088C @ =sub_80123E4
@@ -1316,7 +1316,7 @@ _0801084C:
.align 2, 0
_08010880: .4byte gUnknown_2023E83
_08010884: .4byte gUnknown_3004F80
-_08010888: .4byte gUnknown_30030F0
+_08010888: .4byte gMain
_0801088C: .4byte sub_80123E4
_08010890: .4byte sub_8011100
_08010894: .4byte gUnknown_2022B4C
@@ -1600,7 +1600,7 @@ _08010ABA:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
- ldr r1, _08010AF0 @ =gUnknown_30030F0
+ ldr r1, _08010AF0 @ =gMain
ldr r0, [r1, 0x8]
mov r2, r9
str r0, [r2]
@@ -1616,7 +1616,7 @@ _08010ABA:
_08010AE4: .4byte gUnknown_2022118
_08010AE8: .4byte gUnknown_2022B58
_08010AEC: .4byte gUnknown_2023E82
-_08010AF0: .4byte gUnknown_30030F0
+_08010AF0: .4byte gMain
_08010AF4: .4byte gUnknown_2022B4C
_08010AF8: .4byte sub_80109C8
_08010AFC:
@@ -1653,7 +1653,7 @@ _08010B2A:
mov r2, r8
ldrh r0, [r2]
str r0, [r1]
- ldr r1, _08010B5C @ =gUnknown_30030F0
+ ldr r1, _08010B5C @ =gMain
mov r2, r9
ldr r0, [r2]
str r0, [r1, 0x8]
@@ -1663,7 +1663,7 @@ _08010B2A:
.align 2, 0
_08010B54: .4byte gUnknown_3003F3C
_08010B58: .4byte gUnknown_2022B4C
-_08010B5C: .4byte gUnknown_30030F0
+_08010B5C: .4byte gMain
_08010B60: .4byte sub_800FE24
_08010B64:
ldr r0, _08010B90 @ =gUnknown_3003F64
@@ -1674,7 +1674,7 @@ _08010B64:
mov r2, r8
ldrh r0, [r2]
str r0, [r1]
- ldr r1, _08010B98 @ =gUnknown_30030F0
+ ldr r1, _08010B98 @ =gMain
mov r2, r9
ldr r0, [r2]
str r0, [r1, 0x8]
@@ -1690,7 +1690,7 @@ _08010B82:
.align 2, 0
_08010B90: .4byte gUnknown_3003F64
_08010B94: .4byte gUnknown_2022B4C
-_08010B98: .4byte gUnknown_30030F0
+_08010B98: .4byte gMain
_08010B9C: .4byte sub_800FE24
thumb_func_end sub_80109C8
@@ -2300,7 +2300,7 @@ _08011084:
cmp r0, 0
beq _080110F0
ldr r2, _080110BC @ =gUnknown_3004F80
- ldr r1, _080110C0 @ =gUnknown_30030F0
+ ldr r1, _080110C0 @ =gMain
ldr r0, [r1]
str r0, [r2]
ldr r0, _080110C4 @ =sub_80123E4
@@ -2320,7 +2320,7 @@ _08011084:
.align 2, 0
_080110B8: .4byte gUnknown_2023E83
_080110BC: .4byte gUnknown_3004F80
-_080110C0: .4byte gUnknown_30030F0
+_080110C0: .4byte gMain
_080110C4: .4byte sub_80123E4
_080110C8: .4byte sub_8011100
_080110CC: .4byte gUnknown_2022B4C
@@ -2362,7 +2362,7 @@ sub_8011100: @ 8011100
bl sub_8002DE8
bl UpdatePaletteFade
bl RunTasks
- ldr r0, _08011160 @ =gUnknown_30030F0
+ ldr r0, _08011160 @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x2
ands r0, r1
@@ -2396,7 +2396,7 @@ _08011158:
pop {r0}
bx r0
.align 2, 0
-_08011160: .4byte gUnknown_30030F0
+_08011160: .4byte gMain
_08011164: .4byte gUnknown_2022B4C
_08011168: .4byte gUnknown_20370D0
_0801116C: .4byte gUnknown_2023E8A
@@ -2406,7 +2406,7 @@ _08011170: .4byte CB2_QuitRecordedBattle
thumb_func_start FreeRestoreBattleData
FreeRestoreBattleData: @ 8011174
push {lr}
- ldr r1, _080111AC @ =gUnknown_30030F0
+ ldr r1, _080111AC @ =gMain
ldr r0, _080111B0 @ =gUnknown_3004F80
ldr r0, [r0]
str r0, [r1]
@@ -2429,7 +2429,7 @@ FreeRestoreBattleData: @ 8011174
pop {r0}
bx r0
.align 2, 0
-_080111AC: .4byte gUnknown_30030F0
+_080111AC: .4byte gMain
_080111B0: .4byte gUnknown_3004F80
_080111B4: .4byte gUnknown_2039600
_080111B8: .4byte 0x00000439
@@ -2447,7 +2447,7 @@ CB2_QuitRecordedBattle: @ 80111BC
bne _080111DE
bl FreeRestoreBattleData
bl FreeAllWindowBuffers
- ldr r0, _080111E8 @ =gUnknown_30030F0
+ ldr r0, _080111E8 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_080111DE:
@@ -2455,7 +2455,7 @@ _080111DE:
bx r0
.align 2, 0
_080111E4: .4byte gUnknown_2037AB8
-_080111E8: .4byte gUnknown_30030F0
+_080111E8: .4byte gMain
thumb_func_end CB2_QuitRecordedBattle
thumb_func_start sub_80111EC
@@ -3732,7 +3732,7 @@ _08011C10:
ands r0, r1
cmp r0, 0
bne _08011C34
- ldr r0, _08011C40 @ =gUnknown_30030F0
+ ldr r0, _08011C40 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
bl sub_812C224
@@ -3746,7 +3746,7 @@ _08011C34:
bx r0
.align 2, 0
_08011C3C: .4byte gUnknown_2037AB8
-_08011C40: .4byte gUnknown_30030F0
+_08011C40: .4byte gMain
thumb_func_end sub_8011BB0
thumb_func_start sub_8011C44
@@ -4945,7 +4945,7 @@ _080124F2:
ands r0, r1
cmp r0, 0
bne _08012522
- ldr r1, _0801271C @ =gUnknown_300500C
+ ldr r1, _0801271C @ =gSaveBlock2Ptr
ldr r0, [r1]
ldrb r1, [r0, 0x15]
movs r0, 0x4
@@ -4956,7 +4956,7 @@ _080124F2:
ldr r2, _08012710 @ =gUnknown_2023DD0
str r0, [r2]
_08012522:
- ldr r1, _0801271C @ =gUnknown_300500C
+ ldr r1, _0801271C @ =gSaveBlock2Ptr
ldr r0, [r1]
ldrb r0, [r0, 0x15]
lsls r0, 30
@@ -5191,7 +5191,7 @@ _0801270C: .4byte gUnknown_2023F20
_08012710: .4byte gUnknown_2023DD0
_08012714: .4byte gUnknown_2022B4C
_08012718: .4byte 0x00010002
-_0801271C: .4byte gUnknown_300500C
+_0801271C: .4byte gSaveBlock2Ptr
_08012720: .4byte gUnknown_2023FC4
_08012724: .4byte gUnknown_2023D72
_08012728: .4byte gUnknown_2023E8A
@@ -11609,7 +11609,7 @@ _08015B2C: .4byte ReturnFromBattleToOverworld
thumb_func_start sub_8015B30
sub_8015B30: @ 8015B30
push {lr}
- ldr r0, _08015B48 @ =gUnknown_30030F0
+ ldr r0, _08015B48 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _08015B4C @ =sub_8011100
cmp r1, r0
@@ -11621,7 +11621,7 @@ _08015B42:
pop {r0}
bx r0
.align 2, 0
-_08015B48: .4byte gUnknown_30030F0
+_08015B48: .4byte gMain
_08015B4C: .4byte sub_8011100
_08015B50: .4byte gUnknown_3004F84
_08015B54: .4byte sub_8015AA0
@@ -11656,7 +11656,7 @@ _08015B86:
ldr r5, _08015BEC @ =gUnknown_2023E8A
ldrb r0, [r5]
strh r0, [r1]
- ldr r3, _08015BF0 @ =gUnknown_30030F0
+ ldr r3, _08015BF0 @ =gMain
ldr r0, _08015BF4 @ =0x00000439
adds r2, r3, r0
ldrb r1, [r2]
@@ -11686,7 +11686,7 @@ _08015BC2:
_08015BC6:
movs r0, 0x53
bl m4aSongNumStop
- ldr r0, _08015BF0 @ =gUnknown_30030F0
+ ldr r0, _08015BF0 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_08015BD4:
@@ -11699,7 +11699,7 @@ _08015BE0: .4byte gUnknown_2024284
_08015BE4: .4byte gUnknown_3003F64
_08015BE8: .4byte gUnknown_20370D0
_08015BEC: .4byte gUnknown_2023E8A
-_08015BF0: .4byte gUnknown_30030F0
+_08015BF0: .4byte gMain
_08015BF4: .4byte 0x00000439
_08015BF8: .4byte gUnknown_3004F80
_08015BFC: .4byte gUnknown_202402C
diff --git a/asm/battle_ai_switch_items.s b/asm/battle_ai_switch_items.s
index c9f49c472..0baf7014e 100644
--- a/asm/battle_ai_switch_items.s
+++ b/asm/battle_ai_switch_items.s
@@ -2163,7 +2163,7 @@ _0803A296:
mov r0, r9
cmp r0, 0xAF
bne _0803A2BC
- ldr r0, _0803A2B4 @ =gUnknown_3005008
+ ldr r0, _0803A2B4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _0803A2B8 @ =0x00003108
adds r5, r0, r1
@@ -2172,7 +2172,7 @@ _0803A296:
_0803A2A8: .4byte gUnknown_202402C
_0803A2AC: .4byte gUnknown_2023FF4
_0803A2B0: .4byte gUnknown_82528BC
-_0803A2B4: .4byte gUnknown_3005008
+_0803A2B4: .4byte gSaveBlock1Ptr
_0803A2B8: .4byte 0x00003108
_0803A2BC:
adds r5, r1, 0
diff --git a/asm/battle_anim_80A22E8.s b/asm/battle_anim_80A22E8.s
index d57db1b75..e36e9e23f 100644
--- a/asm/battle_anim_80A22E8.s
+++ b/asm/battle_anim_80A22E8.s
@@ -53813,7 +53813,7 @@ _080BC3C0:
ands r1, r0
cmp r1, 0
beq _080BC3E0
- ldr r0, _080BC3D8 @ =gUnknown_81E9F10
+ ldr r0, _080BC3D8 @ =gGameVersion
ldrb r0, [r0]
cmp r0, 0x2
beq _080BC3E0
@@ -53821,7 +53821,7 @@ _080BC3C0:
ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8
b _080BC3E8
.align 2, 0
-_080BC3D8: .4byte gUnknown_81E9F10
+_080BC3D8: .4byte gGameVersion
_080BC3DC: .4byte task00_battle_intro_80BC6C8
_080BC3E0:
ldr r1, _080BC414 @ =gUnknown_83E7CD4
diff --git a/asm/battle_anim_80EEC0C.s b/asm/battle_anim_80EEC0C.s
index b5bd5e1f4..4630d5e28 100644
--- a/asm/battle_anim_80EEC0C.s
+++ b/asm/battle_anim_80EEC0C.s
@@ -1362,7 +1362,7 @@ _080EF6F4: .4byte gUnknown_2022B4C
_080EF6F8:
movs r5, 0x17
movs r6, 0xB
- ldr r0, _080EF7C4 @ =gUnknown_300500C
+ ldr r0, _080EF7C4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0x1
@@ -1456,7 +1456,7 @@ _080EF708:
pop {r0}
bx r0
.align 2, 0
-_080EF7C4: .4byte gUnknown_300500C
+_080EF7C4: .4byte gSaveBlock2Ptr
_080EF7C8: .4byte gUnknown_2023D68
_080EF7CC: .4byte gUnknown_82606F4
_080EF7D0: .4byte gUnknown_202063C
@@ -3348,7 +3348,7 @@ _080F0670: .4byte gUnknown_3005090
thumb_func_start sub_80F0674
sub_80F0674: @ 80F0674
push {lr}
- ldr r0, _080F0698 @ =gUnknown_30030F0
+ ldr r0, _080F0698 @ =gMain
ldr r1, _080F069C @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -3366,7 +3366,7 @@ _080F0692:
pop {r0}
bx r0
.align 2, 0
-_080F0698: .4byte gUnknown_30030F0
+_080F0698: .4byte gMain
_080F069C: .4byte 0x00000439
_080F06A0: .4byte gUnknown_2024018
thumb_func_end sub_80F0674
@@ -3461,7 +3461,7 @@ _080F0740:
adds r2, r0, 0
cmp r1, 0xF
bne _080F079C
- ldr r0, _080F0794 @ =gUnknown_30030F0
+ ldr r0, _080F0794 @ =gMain
ldr r4, _080F0798 @ =0x00000439
adds r0, r4
ldrb r1, [r0]
@@ -3487,7 +3487,7 @@ _080F0784: .4byte gUnknown_840C0A4
_080F0788: .4byte gUnknown_202063C
_080F078C: .4byte gUnknown_840C068
_080F0790: .4byte sub_80F07BC
-_080F0794: .4byte gUnknown_30030F0
+_080F0794: .4byte gMain
_080F0798: .4byte 0x00000439
_080F079C:
mov r4, r8
@@ -3651,7 +3651,7 @@ _080F08BE:
lsrs r7, r0, 24
cmp r7, 0x7
bls _080F085E
- ldr r0, _080F0914 @ =gUnknown_30030F0
+ ldr r0, _080F0914 @ =gMain
ldr r1, _080F0918 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -3684,7 +3684,7 @@ _080F0904: .4byte gUnknown_840C0A4
_080F0908: .4byte gUnknown_840C068
_080F090C: .4byte gUnknown_2020658
_080F0910: .4byte sub_80F0D5C
-_080F0914: .4byte gUnknown_30030F0
+_080F0914: .4byte gMain
_080F0918: .4byte 0x00000439
thumb_func_end sub_80F0818
@@ -3777,7 +3777,7 @@ _080F09C2:
lsrs r7, r0, 24
cmp r7, 0x7
bls _080F0962
- ldr r0, _080F0A18 @ =gUnknown_30030F0
+ ldr r0, _080F0A18 @ =gMain
ldr r1, _080F0A1C @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -3810,7 +3810,7 @@ _080F0A08: .4byte gUnknown_840C0A4
_080F0A0C: .4byte gUnknown_840C068
_080F0A10: .4byte gUnknown_2020658
_080F0A14: .4byte sub_80F0D5C
-_080F0A18: .4byte gUnknown_30030F0
+_080F0A18: .4byte gMain
_080F0A1C: .4byte 0x00000439
thumb_func_end sub_80F091C
@@ -3901,7 +3901,7 @@ _080F0AC2:
lsrs r7, r0, 24
cmp r7, 0x7
bls _080F0A66
- ldr r0, _080F0B18 @ =gUnknown_30030F0
+ ldr r0, _080F0B18 @ =gMain
ldr r1, _080F0B1C @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -3934,7 +3934,7 @@ _080F0B08: .4byte gUnknown_840C068
_080F0B0C: .4byte gUnknown_840C0A4
_080F0B10: .4byte gUnknown_2020658
_080F0B14: .4byte sub_80F0D5C
-_080F0B18: .4byte gUnknown_30030F0
+_080F0B18: .4byte gMain
_080F0B1C: .4byte 0x00000439
thumb_func_end sub_80F0A20
@@ -4029,7 +4029,7 @@ _080F0BCA:
lsrs r7, r0, 24
cmp r7, 0x9
bls _080F0B66
- ldr r0, _080F0C20 @ =gUnknown_30030F0
+ ldr r0, _080F0C20 @ =gMain
ldr r1, _080F0C24 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -4062,7 +4062,7 @@ _080F0C10: .4byte gUnknown_840C0A4
_080F0C14: .4byte gUnknown_840C068
_080F0C18: .4byte gUnknown_2020658
_080F0C1C: .4byte sub_80F0D5C
-_080F0C20: .4byte gUnknown_30030F0
+_080F0C20: .4byte gMain
_080F0C24: .4byte 0x00000439
thumb_func_end sub_80F0B20
@@ -4179,7 +4179,7 @@ _080F0CE0:
asrs r2, r0, 16
cmp r2, 0x2
bne _080F0D2A
- ldr r0, _080F0D54 @ =gUnknown_30030F0
+ ldr r0, _080F0D54 @ =gMain
ldr r4, _080F0D58 @ =0x00000439
adds r0, r4
ldrb r1, [r0]
@@ -4213,7 +4213,7 @@ _080F0D44: .4byte gUnknown_840C0A4
_080F0D48: .4byte gUnknown_2020658
_080F0D4C: .4byte sub_80F0D5C
_080F0D50: .4byte gUnknown_3005090
-_080F0D54: .4byte gUnknown_30030F0
+_080F0D54: .4byte gMain
_080F0D58: .4byte 0x00000439
thumb_func_end sub_80F0C28
@@ -4347,7 +4347,7 @@ _080F0E52:
lsrs r7, r0, 24
cmp r7, 0xB
bls _080F0DFA
- ldr r0, _080F0EA8 @ =gUnknown_30030F0
+ ldr r0, _080F0EA8 @ =gMain
ldr r1, _080F0EAC @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -4380,7 +4380,7 @@ _080F0E98: .4byte gUnknown_840C068
_080F0E9C: .4byte gUnknown_840C0A4
_080F0EA0: .4byte gUnknown_2020658
_080F0EA4: .4byte sub_80F0EB0
-_080F0EA8: .4byte gUnknown_30030F0
+_080F0EA8: .4byte gMain
_080F0EAC: .4byte 0x00000439
thumb_func_end sub_80F0DB4
@@ -4547,7 +4547,7 @@ _080F0FE4:
mov r8, r0
cmp r0, 0x1
bls _080F0F54
- ldr r0, _080F1030 @ =gUnknown_30030F0
+ ldr r0, _080F1030 @ =gMain
ldr r2, _080F1034 @ =0x00000439
adds r0, r2
ldrb r1, [r0]
@@ -4574,7 +4574,7 @@ _080F1018:
pop {r0}
bx r0
.align 2, 0
-_080F1030: .4byte gUnknown_30030F0
+_080F1030: .4byte gMain
_080F1034: .4byte 0x00000439
_080F1038: .4byte gUnknown_202063C
thumb_func_end sub_80F0F10
@@ -4661,7 +4661,7 @@ _080F10D4:
lsrs r7, r0, 24
cmp r7, 0x7
bls _080F1082
- ldr r0, _080F112C @ =gUnknown_30030F0
+ ldr r0, _080F112C @ =gMain
ldr r1, _080F1130 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -4694,7 +4694,7 @@ _080F111C: .4byte gUnknown_840C068
_080F1120: .4byte gUnknown_840C0A4
_080F1124: .4byte gUnknown_2020658
_080F1128: .4byte sub_80F1134
-_080F112C: .4byte gUnknown_30030F0
+_080F112C: .4byte gMain
_080F1130: .4byte 0x00000439
thumb_func_end sub_80F103C
@@ -4752,7 +4752,7 @@ _080F1190:
sub_80F1198: @ 80F1198
push {r4-r7,lr}
adds r7, r0, 0
- ldr r0, _080F11BC @ =gUnknown_30030F0
+ ldr r0, _080F11BC @ =gMain
ldr r1, _080F11C0 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -4768,7 +4768,7 @@ sub_80F1198: @ 80F1198
bl DestroySpriteAndFreeResources
b _080F1212
.align 2, 0
-_080F11BC: .4byte gUnknown_30030F0
+_080F11BC: .4byte gMain
_080F11C0: .4byte 0x00000439
_080F11C4:
ldr r2, _080F1200 @ =gUnknown_2024018
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
index 8e9448f63..c975b7de2 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -107,7 +107,7 @@ sub_80E763C: @ 80E763C
movs r2, 0x7
movs r3, 0x1
bl dp11b_obj_instanciate
- ldr r0, _080E76A4 @ =gUnknown_30030F0
+ ldr r0, _080E76A4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
@@ -130,7 +130,7 @@ sub_80E763C: @ 80E763C
.align 2, 0
_080E769C: .4byte gUnknown_2022BC4
_080E76A0: .4byte gUnknown_2023BC4
-_080E76A4: .4byte gUnknown_30030F0
+_080E76A4: .4byte gMain
_080E76A8: .4byte gUnknown_2023FF8
_080E76AC:
cmp r0, 0x2
@@ -470,7 +470,7 @@ sub_80E7930: @ 80E7930
ands r0, r1
cmp r0, 0
bne _080E795A
- ldr r2, _080E7964 @ =gUnknown_30030F0
+ ldr r2, _080E7964 @ =gMain
ldr r0, _080E7968 @ =0x00000439
adds r3, r2, r0
ldrb r1, [r3]
@@ -488,7 +488,7 @@ _080E795A:
bx r0
.align 2, 0
_080E7960: .4byte gUnknown_2037AB8
-_080E7964: .4byte gUnknown_30030F0
+_080E7964: .4byte gMain
_080E7968: .4byte 0x00000439
_080E796C: .4byte gUnknown_3004F80
thumb_func_end sub_80E7930
@@ -579,7 +579,7 @@ _080E7A10: .4byte gUnknown_3004FFC
thumb_func_start sub_80E7A14
sub_80E7A14: @ 80E7A14
push {lr}
- ldr r0, _080E7A44 @ =gUnknown_30030F0
+ ldr r0, _080E7A44 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _080E7A48 @ =sub_8011100
cmp r1, r0
@@ -601,7 +601,7 @@ sub_80E7A14: @ 80E7A14
bl EmitChosenMonReturnValue
b _080E7A66
.align 2, 0
-_080E7A44: .4byte gUnknown_30030F0
+_080E7A44: .4byte gMain
_080E7A48: .4byte sub_8011100
_080E7A4C: .4byte gUnknown_2037AB8
_080E7A50: .4byte gUnknown_203B0C0
@@ -661,7 +661,7 @@ _080E7AC0:
thumb_func_start sub_80E7AC4
sub_80E7AC4: @ 80E7AC4
push {lr}
- ldr r0, _080E7B14 @ =gUnknown_30030F0
+ ldr r0, _080E7B14 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _080E7B18 @ =sub_8011100
cmp r1, r0
@@ -698,7 +698,7 @@ sub_80E7AC4: @ 80E7AC4
str r1, [r0]
b _080E7B42
.align 2, 0
-_080E7B14: .4byte gUnknown_30030F0
+_080E7B14: .4byte gMain
_080E7B18: .4byte sub_8011100
_080E7B1C: .4byte gUnknown_2037AB8
_080E7B20: .4byte gUnknown_203AD30
@@ -4961,7 +4961,7 @@ sub_80E9E6C: @ 80E9E6C
ands r0, r1
cmp r0, 0
beq _080E9EE0
- ldr r4, _080E9ECC @ =gUnknown_300500C
+ ldr r4, _080E9ECC @ =gSaveBlock2Ptr
ldr r0, [r4]
ldrb r0, [r0, 0x8]
ldr r6, _080E9ED0 @ =gUnknown_2023BC4
@@ -4998,7 +4998,7 @@ sub_80E9E6C: @ 80E9E6C
b _080E9F1C
.align 2, 0
_080E9EC8: .4byte gUnknown_2022B4C
-_080E9ECC: .4byte gUnknown_300500C
+_080E9ECC: .4byte gSaveBlock2Ptr
_080E9ED0: .4byte gUnknown_2023BC4
_080E9ED4: .4byte gUnknown_20244DC
_080E9ED8: .4byte gUnknown_8239F8C
@@ -5107,7 +5107,7 @@ sub_80E9FB0: @ 80E9FB0
ands r0, r1
cmp r0, 0
beq _080EA024
- ldr r4, _080EA010 @ =gUnknown_300500C
+ ldr r4, _080EA010 @ =gSaveBlock2Ptr
ldr r0, [r4]
ldrb r0, [r0, 0x8]
ldr r6, _080EA014 @ =gUnknown_2023BC4
@@ -5144,7 +5144,7 @@ sub_80E9FB0: @ 80E9FB0
b _080EA060
.align 2, 0
_080EA00C: .4byte gUnknown_2022B4C
-_080EA010: .4byte gUnknown_300500C
+_080EA010: .4byte gSaveBlock2Ptr
_080EA014: .4byte gUnknown_2023BC4
_080EA018: .4byte gUnknown_20244DC
_080EA01C: .4byte gUnknown_8239F8C
@@ -6892,7 +6892,7 @@ _080EAD64:
adds r4, r0, 0
lsls r4, 24
ldr r1, _080EAEC0 @ =gUnknown_8239FD4
- ldr r0, _080EAEC4 @ =gUnknown_300500C
+ ldr r0, _080EAEC4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
lsls r0, 3
@@ -6974,7 +6974,7 @@ _080EAEB4: .4byte sub_8075590
_080EAEB8: .4byte sub_80335F8
_080EAEBC: .4byte 0x0000d6f8
_080EAEC0: .4byte gUnknown_8239FD4
-_080EAEC4: .4byte gUnknown_300500C
+_080EAEC4: .4byte gSaveBlock2Ptr
_080EAEC8: .4byte sub_80EB0A8
_080EAECC: .4byte gUnknown_3005090
_080EAED0: .4byte gUnknown_2024018
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
index d1a2573dd..0571de07a 100644
--- a/asm/battle_controller_opponent.s
+++ b/asm/battle_controller_opponent.s
@@ -6704,7 +6704,7 @@ OpponentHandleCmd55: @ 8039140
ands r0, r1
cmp r0, 0x2
bne _0803916A
- ldr r2, _08039178 @ =gUnknown_30030F0
+ ldr r2, _08039178 @ =gMain
ldr r0, _0803917C @ =0x00000439
adds r3, r2, r0
ldrb r1, [r3]
@@ -6723,7 +6723,7 @@ _0803916A:
bx r0
.align 2, 0
_08039174: .4byte gUnknown_2022B4C
-_08039178: .4byte gUnknown_30030F0
+_08039178: .4byte gMain
_0803917C: .4byte 0x00000439
_08039180: .4byte gUnknown_3004F80
thumb_func_end OpponentHandleCmd55
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index 2473a2ad1..3dacf2d99 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -180,7 +180,7 @@ sub_802E438: @ 802E438
movs r2, 0x7
movs r3, 0x1
bl dp11b_obj_instanciate
- ldr r0, _0802E4A0 @ =gUnknown_30030F0
+ ldr r0, _0802E4A0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
@@ -203,7 +203,7 @@ sub_802E438: @ 802E438
.align 2, 0
_0802E498: .4byte gUnknown_2022BC4
_0802E49C: .4byte gUnknown_2023BC4
-_0802E4A0: .4byte gUnknown_30030F0
+_0802E4A0: .4byte gMain
_0802E4A4: .4byte gUnknown_2023FF8
_0802E4A8:
cmp r0, 0x2
@@ -471,7 +471,7 @@ _0802E6AC:
cmp r4, r0
blt _0802E69A
_0802E6B6:
- ldr r0, _0802E714 @ =gUnknown_30030F0
+ ldr r0, _0802E714 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -512,7 +512,7 @@ _0802E6B6:
_0802E708: .4byte gUnknown_8250980
_0802E70C: .4byte gUnknown_3004FF4
_0802E710: .4byte gUnknown_2023BCC
-_0802E714: .4byte gUnknown_30030F0
+_0802E714: .4byte gMain
_0802E718: .4byte gUnknown_202063C
_0802E71C: .4byte gUnknown_2023D44
_0802E720: .4byte sub_8012098
@@ -885,7 +885,7 @@ sub_802EA10: @ 802EA10
ldr r1, _0802EA70 @ =gUnknown_2022BC8
adds r7, r0, r1
bl sub_8033AC8
- ldr r0, _0802EA74 @ =gUnknown_30030F0
+ ldr r0, _0802EA74 @ =gMain
ldrh r1, [r0, 0x2E]
movs r5, 0x1
adds r0, r5, 0
@@ -921,7 +921,7 @@ _0802EA3A:
.align 2, 0
_0802EA6C: .4byte gUnknown_2023BC4
_0802EA70: .4byte gUnknown_2022BC8
-_0802EA74: .4byte gUnknown_30030F0
+_0802EA74: .4byte gMain
_0802EA78: .4byte gUnknown_2023FFC
_0802EA7C:
ldr r2, _0802EA9C @ =gUnknown_8250C04
@@ -1336,7 +1336,7 @@ _0802EDD8: .4byte sub_802EF58
sub_802EDDC: @ 802EDDC
push {r4-r7,lr}
movs r7, 0
- ldr r4, _0802EF40 @ =gUnknown_30030F0
+ ldr r4, _0802EF40 @ =gMain
ldrh r1, [r4, 0x2E]
movs r6, 0x1
adds r0, r6, 0
@@ -1394,7 +1394,7 @@ _0802EE18:
movs r1, 0
bl MoveSelectionCreateCursorAt
_0802EE58:
- ldr r0, _0802EF40 @ =gUnknown_30030F0
+ ldr r0, _0802EF40 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x10
ands r0, r1
@@ -1431,7 +1431,7 @@ _0802EE58:
movs r1, 0
bl MoveSelectionCreateCursorAt
_0802EEA6:
- ldr r0, _0802EF40 @ =gUnknown_30030F0
+ ldr r0, _0802EF40 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -1462,7 +1462,7 @@ _0802EEA6:
movs r1, 0
bl MoveSelectionCreateCursorAt
_0802EEE8:
- ldr r0, _0802EF40 @ =gUnknown_30030F0
+ ldr r0, _0802EF40 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -1504,7 +1504,7 @@ _0802EF36:
pop {r1}
bx r1
.align 2, 0
-_0802EF40: .4byte gUnknown_30030F0
+_0802EF40: .4byte gMain
_0802EF44: .4byte gUnknown_2022974
_0802EF48: .4byte gUnknown_2022976
_0802EF4C: .4byte gUnknown_2023FFC
@@ -1520,7 +1520,7 @@ sub_802EF58: @ 802EF58
mov r5, r8
push {r5-r7}
sub sp, 0x24
- ldr r0, _0802F2E4 @ =gUnknown_30030F0
+ ldr r0, _0802F2E4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x5
ands r0, r1
@@ -1972,7 +1972,7 @@ _0802F2C8:
ldr r1, _0802F314 @ =sub_80E7988
b _0802F324
.align 2, 0
-_0802F2E4: .4byte gUnknown_30030F0
+_0802F2E4: .4byte gMain
_0802F2E8: .4byte gUnknown_2023FFC
_0802F2EC: .4byte gUnknown_2023BC4
_0802F2F0: .4byte gUnknown_3004FF4
@@ -2010,7 +2010,7 @@ _0802F324:
bl MoveSelectionDisplayPpNumber
bl MoveSelectionDisplayMoveType
_0802F34C:
- ldr r0, _0802F3A4 @ =gUnknown_30030F0
+ ldr r0, _0802F3A4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -2046,7 +2046,7 @@ _0802F394: .4byte gUnknown_2023BC4
_0802F398: .4byte sub_802EA10
_0802F39C: .4byte gUnknown_2023FFC
_0802F3A0: .4byte gUnknown_3004FF4
-_0802F3A4: .4byte gUnknown_30030F0
+_0802F3A4: .4byte gMain
_0802F3A8: .4byte gUnknown_2022B4C
_0802F3AC: .4byte sub_80E7988
_0802F3B0:
@@ -2061,7 +2061,7 @@ _0802F3BA:
bl MoveSelectionDisplayPpNumber
bl MoveSelectionDisplayMoveType
_0802F3C8:
- ldr r0, _0802F400 @ =gUnknown_30030F0
+ ldr r0, _0802F400 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x20
ands r0, r1
@@ -2087,7 +2087,7 @@ _0802F3C8:
.align 2, 0
_0802F3F8: .4byte gUnknown_3004FE0
_0802F3FC: .4byte sub_802EA10
-_0802F400: .4byte gUnknown_30030F0
+_0802F400: .4byte gMain
_0802F404: .4byte gUnknown_3004FF4
_0802F408: .4byte gUnknown_2023FFC
_0802F40C: .4byte gUnknown_2023BC4
@@ -2123,7 +2123,7 @@ _0802F44C:
movs r1, 0x1B
bl MoveSelectionCreateCursorAt
_0802F454:
- ldr r0, _0802F490 @ =gUnknown_30030F0
+ ldr r0, _0802F490 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x10
ands r0, r1
@@ -2153,7 +2153,7 @@ _0802F454:
bl MoveSelectionCreateCursorAt
b _0802F4AA
.align 2, 0
-_0802F490: .4byte gUnknown_30030F0
+_0802F490: .4byte gMain
_0802F494: .4byte gUnknown_3004FF4
_0802F498: .4byte gUnknown_3004FF8
_0802F49C: .4byte gUnknown_2023FFC
@@ -2190,7 +2190,7 @@ _0802F4E0:
movs r1, 0x1B
bl MoveSelectionCreateCursorAt
_0802F4E8:
- ldr r0, _0802F518 @ =gUnknown_30030F0
+ ldr r0, _0802F518 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -2214,7 +2214,7 @@ _0802F4E8:
bl MoveSelectionCreateCursorAt
b _0802F52E
.align 2, 0
-_0802F518: .4byte gUnknown_30030F0
+_0802F518: .4byte gMain
_0802F51C: .4byte gUnknown_3004FF4
_0802F520: .4byte gUnknown_2023FFC
_0802F524: .4byte gUnknown_2023BC4
@@ -2250,7 +2250,7 @@ _0802F564:
movs r1, 0x1B
bl MoveSelectionCreateCursorAt
_0802F56C:
- ldr r0, _0802F5A8 @ =gUnknown_30030F0
+ ldr r0, _0802F5A8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -2280,7 +2280,7 @@ _0802F56C:
bl MoveSelectionCreateCursorAt
b _0802F5C2
.align 2, 0
-_0802F5A8: .4byte gUnknown_30030F0
+_0802F5A8: .4byte gMain
_0802F5AC: .4byte gUnknown_3004FF4
_0802F5B0: .4byte gUnknown_3004FF8
_0802F5B4: .4byte gUnknown_2023FFC
@@ -2340,7 +2340,7 @@ sub_802F610: @ 802F610
bne _0802F694
movs r0, 0x53
bl m4aSongNumStop
- ldr r3, _0802F654 @ =gUnknown_30030F0
+ ldr r3, _0802F654 @ =gMain
ldr r0, _0802F658 @ =0x00000439
adds r2, r3, r0
ldrb r1, [r2]
@@ -2358,7 +2358,7 @@ sub_802F610: @ 802F610
.align 2, 0
_0802F64C: .4byte gUnknown_3003F3C
_0802F650: .4byte gUnknown_3003F64
-_0802F654: .4byte gUnknown_30030F0
+_0802F654: .4byte gMain
_0802F658: .4byte 0x00000439
_0802F65C: .4byte gUnknown_3004F80
_0802F660: .4byte sub_8011A1C
@@ -2369,7 +2369,7 @@ _0802F664:
beq _0802F694
movs r0, 0x53
bl m4aSongNumStop
- ldr r3, _0802F698 @ =gUnknown_30030F0
+ ldr r3, _0802F698 @ =gMain
ldr r0, _0802F69C @ =0x00000439
adds r2, r3, r0
ldrb r1, [r2]
@@ -2387,7 +2387,7 @@ _0802F694:
pop {r0}
bx r0
.align 2, 0
-_0802F698: .4byte gUnknown_30030F0
+_0802F698: .4byte gMain
_0802F69C: .4byte 0x00000439
_0802F6A0: .4byte gUnknown_3004F80
_0802F6A4: .4byte sub_8011A1C
@@ -2436,7 +2436,7 @@ _0802F6F8: .4byte sub_802F610
_0802F6FC:
movs r0, 0x53
bl m4aSongNumStop
- ldr r2, _0802F724 @ =gUnknown_30030F0
+ ldr r2, _0802F724 @ =gMain
ldr r0, _0802F728 @ =0x00000439
adds r3, r2, r0
ldrb r1, [r3]
@@ -2453,7 +2453,7 @@ _0802F71E:
pop {r0}
bx r0
.align 2, 0
-_0802F724: .4byte gUnknown_30030F0
+_0802F724: .4byte gMain
_0802F728: .4byte 0x00000439
_0802F72C: .4byte gUnknown_3004F80
thumb_func_end sub_802F6A8
@@ -2535,7 +2535,7 @@ sub_802F7A0: @ 802F7A0
ldr r0, _0802F808 @ =nullsub_8
cmp r1, r0
bne _0802F7F4
- ldr r0, _0802F80C @ =gUnknown_300500C
+ ldr r0, _0802F80C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
bl nullsub_16
@@ -2565,7 +2565,7 @@ _0802F7FC: .4byte gUnknown_202063C
_0802F800: .4byte gUnknown_2023D44
_0802F804: .4byte gUnknown_2023BC4
_0802F808: .4byte nullsub_8
-_0802F80C: .4byte gUnknown_300500C
+_0802F80C: .4byte gSaveBlock2Ptr
thumb_func_end sub_802F7A0
thumb_func_start sub_802F810
@@ -4336,7 +4336,7 @@ _08030680: .4byte gUnknown_3004FFC
thumb_func_start sub_8030684
sub_8030684: @ 8030684
push {lr}
- ldr r0, _080306B4 @ =gUnknown_30030F0
+ ldr r0, _080306B4 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _080306B8 @ =sub_8011100
cmp r1, r0
@@ -4358,7 +4358,7 @@ sub_8030684: @ 8030684
bl EmitChosenMonReturnValue
b _080306D6
.align 2, 0
-_080306B4: .4byte gUnknown_30030F0
+_080306B4: .4byte gMain
_080306B8: .4byte sub_8011100
_080306BC: .4byte gUnknown_2037AB8
_080306C0: .4byte gUnknown_203B0C0
@@ -4424,7 +4424,7 @@ _08030738: .4byte CompleteWhenChoseItem
thumb_func_start CompleteWhenChoseItem
CompleteWhenChoseItem: @ 803073C
push {lr}
- ldr r0, _08030768 @ =gUnknown_30030F0
+ ldr r0, _08030768 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _0803076C @ =sub_8011100
cmp r1, r0
@@ -4444,7 +4444,7 @@ _08030762:
pop {r0}
bx r0
.align 2, 0
-_08030768: .4byte gUnknown_30030F0
+_08030768: .4byte gMain
_0803076C: .4byte sub_8011100
_08030770: .4byte gUnknown_2037AB8
_08030774: .4byte gUnknown_203AD30
@@ -7796,7 +7796,7 @@ _08032328:
ldrb r4, [r1, 0x13]
b _08032342
_0803233C:
- ldr r0, _08032400 @ =gUnknown_300500C
+ ldr r0, _08032400 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r4, [r0, 0x8]
_08032342:
@@ -7891,7 +7891,7 @@ _08032342:
pop {r0}
bx r0
.align 2, 0
-_08032400: .4byte gUnknown_300500C
+_08032400: .4byte gSaveBlock2Ptr
_08032404: .4byte gUnknown_2023BC4
_08032408: .4byte gUnknown_20244DC
_0803240C: .4byte gUnknown_8239F8C
@@ -7973,7 +7973,7 @@ _080324A4:
ldrb r4, [r1, 0x13]
b _080324BE
_080324B8:
- ldr r0, _08032568 @ =gUnknown_300500C
+ ldr r0, _08032568 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r4, [r0, 0x8]
_080324BE:
@@ -8059,7 +8059,7 @@ _080324BE:
pop {r0}
bx r0
.align 2, 0
-_08032568: .4byte gUnknown_300500C
+_08032568: .4byte gSaveBlock2Ptr
_0803256C: .4byte gUnknown_2023BC4
_08032570: .4byte gUnknown_20244DC
_08032574: .4byte gUnknown_8239F8C
@@ -10010,7 +10010,7 @@ PlayerHandleIntroTrainerBallThrow: @ 8033478
adds r4, r0, 0
lsls r4, 24
ldr r1, _080335D4 @ =gUnknown_8239FD4
- ldr r0, _080335D8 @ =gUnknown_300500C
+ ldr r0, _080335D8 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
lsls r0, 3
@@ -10093,7 +10093,7 @@ _080335C8: .4byte sub_80755B8
_080335CC: .4byte sub_80335F8
_080335D0: .4byte 0x0000d6f8
_080335D4: .4byte gUnknown_8239FD4
-_080335D8: .4byte gUnknown_300500C
+_080335D8: .4byte gSaveBlock2Ptr
_080335DC: .4byte task05_08033660
_080335E0: .4byte gUnknown_3005090
_080335E4: .4byte gUnknown_2024018
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s
index 786b76da2..105922382 100644
--- a/asm/battle_controller_pokedude.s
+++ b/asm/battle_controller_pokedude.s
@@ -233,7 +233,7 @@ sub_8156254: @ 8156254
ands r0, r1
cmp r0, 0
bne _0815627E
- ldr r2, _08156288 @ =gUnknown_30030F0
+ ldr r2, _08156288 @ =gMain
ldr r0, _0815628C @ =0x00000439
adds r3, r2, r0
ldrb r1, [r3]
@@ -251,7 +251,7 @@ _0815627E:
bx r0
.align 2, 0
_08156284: .4byte gUnknown_2037AB8
-_08156288: .4byte gUnknown_30030F0
+_08156288: .4byte gMain
_0815628C: .4byte 0x00000439
_08156290: .4byte gUnknown_3004F80
thumb_func_end sub_8156254
@@ -584,7 +584,7 @@ _08156534: .4byte gUnknown_3004FFC
thumb_func_start sub_8156538
sub_8156538: @ 8156538
push {lr}
- ldr r0, _08156568 @ =gUnknown_30030F0
+ ldr r0, _08156568 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _0815656C @ =sub_8011100
cmp r1, r0
@@ -606,7 +606,7 @@ sub_8156538: @ 8156538
bl EmitChosenMonReturnValue
b _0815658A
.align 2, 0
-_08156568: .4byte gUnknown_30030F0
+_08156568: .4byte gMain
_0815656C: .4byte sub_8011100
_08156570: .4byte gUnknown_2037AB8
_08156574: .4byte gUnknown_203B0C0
@@ -669,7 +669,7 @@ _081565E2:
thumb_func_start sub_81565E8
sub_81565E8: @ 81565E8
push {lr}
- ldr r0, _08156614 @ =gUnknown_30030F0
+ ldr r0, _08156614 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _08156618 @ =sub_8011100
cmp r1, r0
@@ -689,7 +689,7 @@ _0815660E:
pop {r0}
bx r0
.align 2, 0
-_08156614: .4byte gUnknown_30030F0
+_08156614: .4byte gMain
_08156618: .4byte sub_8011100
_0815661C: .4byte gUnknown_2037AB8
_08156620: .4byte gUnknown_203AD30
@@ -7281,7 +7281,7 @@ _08159C64:
lsrs r4, r0, 16
cmp r4, 0
bne _08159CEE
- ldr r0, _08159CA8 @ =gUnknown_30030F0
+ ldr r0, _08159CA8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -7310,7 +7310,7 @@ _08159C9E:
strb r0, [r1, 0x2]
b _08159CEE
.align 2, 0
-_08159CA8: .4byte gUnknown_30030F0
+_08159CA8: .4byte gMain
_08159CAC: .4byte gUnknown_3005EE0
_08159CB0: .4byte gUnknown_2023BC4
_08159CB4:
@@ -7481,7 +7481,7 @@ _08159E0C:
lsrs r4, r0, 16
cmp r4, 0
bne _08159EDE
- ldr r0, _08159E58 @ =gUnknown_30030F0
+ ldr r0, _08159E58 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -7511,7 +7511,7 @@ _08159E0C:
movs r3, 0x8
b _08159E80
.align 2, 0
-_08159E58: .4byte gUnknown_30030F0
+_08159E58: .4byte gMain
_08159E5C: .4byte gUnknown_825E45C
_08159E60: .4byte gUnknown_2023FE8
_08159E64:
diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s
index be5f15841..04269dca0 100644
--- a/asm/battle_controller_safari.s
+++ b/asm/battle_controller_safari.s
@@ -69,7 +69,7 @@ _080DD5A0:
thumb_func_start HandleInputChooseAction_0
HandleInputChooseAction_0: @ 80DD5A4
push {r4,r5,lr}
- ldr r0, _080DD5D4 @ =gUnknown_30030F0
+ ldr r0, _080DD5D4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
@@ -91,7 +91,7 @@ HandleInputChooseAction_0: @ 80DD5A4
beq _080DD5EA
b _080DD60C
.align 2, 0
-_080DD5D4: .4byte gUnknown_30030F0
+_080DD5D4: .4byte gMain
_080DD5D8: .4byte gUnknown_2023FF8
_080DD5DC: .4byte gUnknown_2023BC4
_080DD5E0:
@@ -336,7 +336,7 @@ sub_80DD7B0: @ 80DD7B0
ands r0, r1
cmp r0, 0
bne _080DD7DA
- ldr r2, _080DD7E4 @ =gUnknown_30030F0
+ ldr r2, _080DD7E4 @ =gMain
ldr r0, _080DD7E8 @ =0x00000439
adds r3, r2, r0
ldrb r1, [r3]
@@ -354,7 +354,7 @@ _080DD7DA:
bx r0
.align 2, 0
_080DD7E0: .4byte gUnknown_2037AB8
-_080DD7E4: .4byte gUnknown_30030F0
+_080DD7E4: .4byte gMain
_080DD7E8: .4byte 0x00000439
_080DD7EC: .4byte gUnknown_3004F80
thumb_func_end sub_80DD7B0
@@ -420,7 +420,7 @@ _080DD858: .4byte CompleteWhenChosePokeblock
thumb_func_start CompleteWhenChosePokeblock
CompleteWhenChosePokeblock: @ 80DD85C
push {lr}
- ldr r0, _080DD888 @ =gUnknown_30030F0
+ ldr r0, _080DD888 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _080DD88C @ =sub_8011100
cmp r1, r0
@@ -440,7 +440,7 @@ _080DD882:
pop {r0}
bx r0
.align 2, 0
-_080DD888: .4byte gUnknown_30030F0
+_080DD888: .4byte gMain
_080DD88C: .4byte sub_8011100
_080DD890: .4byte gUnknown_2037AB8
_080DD894: .4byte gUnknown_203AD30
@@ -614,7 +614,7 @@ sub_80DD9B8: @ 80DD9B8
thumb_func_start SafariHandleDrawTrainerPic
SafariHandleDrawTrainerPic: @ 80DD9C4
push {r4-r6,lr}
- ldr r4, _080DDA7C @ =gUnknown_300500C
+ ldr r4, _080DDA7C @ =gSaveBlock2Ptr
ldr r0, [r4]
ldrb r0, [r0, 0x8]
ldr r5, _080DDA80 @ =gUnknown_2023BC4
@@ -702,7 +702,7 @@ SafariHandleDrawTrainerPic: @ 80DD9C4
pop {r0}
bx r0
.align 2, 0
-_080DDA7C: .4byte gUnknown_300500C
+_080DDA7C: .4byte gSaveBlock2Ptr
_080DDA80: .4byte gUnknown_2023BC4
_080DDA84: .4byte gUnknown_20244DC
_080DDA88: .4byte gUnknown_8239F8C
diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s
index ec1e8ba19..49c778509 100644
--- a/asm/battle_gfx_sfx_util.s
+++ b/asm/battle_gfx_sfx_util.s
@@ -2711,7 +2711,7 @@ sub_803539C: @ 803539C
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r0, _08035440 @ =gUnknown_30030F0
+ ldr r0, _08035440 @ =gMain
ldr r1, _08035444 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -2782,7 +2782,7 @@ _08035432:
pop {r0}
bx r0
.align 2, 0
-_08035440: .4byte gUnknown_30030F0
+_08035440: .4byte gMain
_08035444: .4byte 0x00000439
_08035448: .4byte gUnknown_2023BCE
_0803544C: .4byte gUnknown_2024284
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 04f11b70c..395b0ebcb 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -1895,11 +1895,11 @@ _080D81C8:
_080D81D4: .4byte gUnknown_2023FC4
_080D81D8: .4byte gUnknown_2022744
_080D81DC:
- ldr r0, _080D81E4 @ =gUnknown_300500C
+ ldr r0, _080D81E4 @ =gSaveBlock2Ptr
ldr r4, [r0]
b _080D8382
.align 2, 0
-_080D81E4: .4byte gUnknown_300500C
+_080D81E4: .4byte gSaveBlock2Ptr
_080D81E8:
ldr r0, _080D8204 @ =gUnknown_2022B4C
ldr r0, [r0]
diff --git a/asm/battle_records.s b/asm/battle_records.s
index e8a2c4af4..4f7ed298b 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -22,7 +22,7 @@ _080CD23C: .4byte sub_80CD240
sub_80CD240: @ 80CD240
push {r4,lr}
sub sp, 0x4
- ldr r0, _080CD260 @ =gUnknown_30030F0
+ ldr r0, _080CD260 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -37,7 +37,7 @@ _080CD254:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080CD260: .4byte gUnknown_30030F0
+_080CD260: .4byte gMain
_080CD264: .4byte _080CD268
.align 2, 0
_080CD268:
@@ -115,7 +115,7 @@ _080CD314:
movs r3, 0
bl BeginNormalPaletteFade
_080CD324:
- ldr r1, _080CD334 @ =gUnknown_30030F0
+ ldr r1, _080CD334 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -124,7 +124,7 @@ _080CD324:
strb r0, [r1]
b _080CD376
.align 2, 0
-_080CD334: .4byte gUnknown_30030F0
+_080CD334: .4byte gMain
_080CD338:
bl sub_80CD628
ldr r0, _080CD350 @ =sub_80CD38C
@@ -146,7 +146,7 @@ _080CD35C:
bl CreateTask
ldr r0, _080CD384 @ =sub_80CD3A0
bl SetMainCallback2
- ldr r0, _080CD388 @ =gUnknown_30030F0
+ ldr r0, _080CD388 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -160,7 +160,7 @@ _080CD376:
.align 2, 0
_080CD380: .4byte sub_80CD3B8
_080CD384: .4byte sub_80CD3A0
-_080CD388: .4byte gUnknown_30030F0
+_080CD388: .4byte gMain
thumb_func_end sub_80CD240
thumb_func_start sub_80CD38C
@@ -221,7 +221,7 @@ sub_80CD3E8: @ 80CD3E8
lsls r1, 3
ldr r0, _080CD41C @ =gUnknown_3005090
adds r4, r1, r0
- ldr r0, _080CD420 @ =gUnknown_30030F0
+ ldr r0, _080CD420 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -242,7 +242,7 @@ _080CD416:
bx r0
.align 2, 0
_080CD41C: .4byte gUnknown_3005090
-_080CD420: .4byte gUnknown_30030F0
+_080CD420: .4byte gMain
_080CD424: .4byte sub_80CD428
thumb_func_end sub_80CD3E8
@@ -859,7 +859,7 @@ _080CD8BE:
thumb_func_start InitLinkBattleRecords
InitLinkBattleRecords: @ 80CD8DC
push {lr}
- ldr r0, _080CD8F0 @ =gUnknown_300500C
+ ldr r0, _080CD8F0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _080CD8F4 @ =0x00000a98
adds r0, r1
@@ -867,7 +867,7 @@ InitLinkBattleRecords: @ 80CD8DC
pop {r0}
bx r0
.align 2, 0
-_080CD8F0: .4byte gUnknown_300500C
+_080CD8F0: .4byte gSaveBlock2Ptr
_080CD8F4: .4byte 0x00000a98
thumb_func_end InitLinkBattleRecords
@@ -957,7 +957,7 @@ sub_80CD98C: @ 80CD98C
push {r4-r6,lr}
sub sp, 0x4
adds r6, r0, 0
- ldr r0, _080CD9DC @ =gUnknown_3005008
+ ldr r0, _080CD9DC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
movs r0, 0x80
@@ -966,7 +966,7 @@ sub_80CD98C: @ 80CD98C
beq _080CD9D4
adds r0, r6, 0
bl sub_80CD950
- ldr r0, _080CD9E0 @ =gUnknown_300500C
+ ldr r0, _080CD9E0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _080CD9E4 @ =0x00000a98
adds r0, r1
@@ -994,8 +994,8 @@ _080CD9D4:
pop {r0}
bx r0
.align 2, 0
-_080CD9DC: .4byte gUnknown_3005008
-_080CD9E0: .4byte gUnknown_300500C
+_080CD9DC: .4byte gSaveBlock1Ptr
+_080CD9E0: .4byte gSaveBlock2Ptr
_080CD9E4: .4byte 0x00000a98
_080CD9E8: .4byte gUnknown_2039654
_080CD9EC: .4byte gUnknown_2023E8A
@@ -1292,7 +1292,7 @@ sub_80CDBE4: @ 80CDBE4
movs r1, 0x2
movs r3, 0x4
bl AddTextPrinterParametrized2
- ldr r5, _080CDCA8 @ =gUnknown_300500C
+ ldr r5, _080CDCA8 @ =gSaveBlock2Ptr
ldr r0, [r5]
ldr r1, _080CDCAC @ =0x00000a98
mov r8, r1
@@ -1340,7 +1340,7 @@ _080CDC70:
_080CDC9C: .4byte gUnknown_2021D18
_080CDCA0: .4byte gUnknown_8418174
_080CDCA4: .4byte gUnknown_83F6C78
-_080CDCA8: .4byte gUnknown_300500C
+_080CDCA8: .4byte gSaveBlock2Ptr
_080CDCAC: .4byte 0x00000a98
_080CDCB0: .4byte gUnknown_84181A4
thumb_func_end sub_80CDBE4
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index 0a99b658b..2c8756ae1 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -8481,7 +8481,7 @@ _08021B88:
lsrs r0, 16
cmp r0, 0xAF
bne _08021BB4
- ldr r0, _08021BAC @ =gUnknown_3005008
+ ldr r0, _08021BAC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _08021BB0 @ =0x0000311a
adds r0, r2
@@ -8490,7 +8490,7 @@ _08021B88:
.align 2, 0
_08021BA4: .4byte gUnknown_2024284
_08021BA8: .4byte gUnknown_825E45C
-_08021BAC: .4byte gUnknown_3005008
+_08021BAC: .4byte gSaveBlock1Ptr
_08021BB0: .4byte 0x0000311a
_08021BB4:
bl ItemId_GetHoldEffect
@@ -8601,7 +8601,7 @@ _08021C74:
lsrs r0, 16
cmp r0, 0xAF
bne _08021CB8
- ldr r0, _08021CB0 @ =gUnknown_3005008
+ ldr r0, _08021CB0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08021CB4 @ =0x0000311a
adds r0, r1
@@ -8613,7 +8613,7 @@ _08021CA0: .4byte gUnknown_2023FC4
_08021CA4: .4byte gUnknown_2023FE8
_08021CA8: .4byte gUnknown_2023BC8
_08021CAC: .4byte gUnknown_2024284
-_08021CB0: .4byte gUnknown_3005008
+_08021CB0: .4byte gSaveBlock1Ptr
_08021CB4: .4byte 0x0000311a
_08021CB8:
bl ItemId_GetHoldEffect
@@ -15573,7 +15573,7 @@ _080253F0: .4byte gUnknown_83FE791
_080253F4: .4byte gUnknown_2023FC4
_080253F8: .4byte gUnknown_2023E82
_080253FC:
- ldr r0, _08025484 @ =gUnknown_30030F0
+ ldr r0, _08025484 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -15590,7 +15590,7 @@ _080253FC:
strb r0, [r4, 0x1]
bl sub_802DCB8
_08025422:
- ldr r0, _08025484 @ =gUnknown_30030F0
+ ldr r0, _08025484 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -15607,7 +15607,7 @@ _08025422:
strb r0, [r4, 0x1]
bl sub_802DCB8
_08025448:
- ldr r0, _08025484 @ =gUnknown_30030F0
+ ldr r0, _08025484 @ =gMain
ldrh r1, [r0, 0x2E]
movs r5, 0x1
adds r0, r5, 0
@@ -15635,7 +15635,7 @@ _08025448:
bl BeginNormalPaletteFade
b _080254D8
.align 2, 0
-_08025484: .4byte gUnknown_30030F0
+_08025484: .4byte gMain
_08025488: .4byte gUnknown_2023E82
_0802548C:
movs r0, 0x2
@@ -15700,7 +15700,7 @@ _08025500:
beq _0802550E
b _080256D0
_0802550E:
- ldr r0, _08025530 @ =gUnknown_30030F0
+ ldr r0, _08025530 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _08025534 @ =sub_8011100
cmp r1, r0
@@ -15717,7 +15717,7 @@ _0802551A:
b _080256D0
.align 2, 0
_0802552C: .4byte gUnknown_2037AB8
-_08025530: .4byte gUnknown_30030F0
+_08025530: .4byte gMain
_08025534: .4byte sub_8011100
_08025538: .4byte gUnknown_2023FC4
_0802553C:
@@ -15948,7 +15948,7 @@ _080256F8:
_08025720: .4byte gUnknown_83FE791
_08025724: .4byte gUnknown_2023E82
_08025728:
- ldr r0, _080257AC @ =gUnknown_30030F0
+ ldr r0, _080257AC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -15965,7 +15965,7 @@ _08025728:
strb r0, [r4, 0x1]
bl sub_802DCB8
_0802574E:
- ldr r0, _080257AC @ =gUnknown_30030F0
+ ldr r0, _080257AC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -15982,7 +15982,7 @@ _0802574E:
strb r0, [r4, 0x1]
bl sub_802DCB8
_08025774:
- ldr r0, _080257AC @ =gUnknown_30030F0
+ ldr r0, _080257AC @ =gMain
ldrh r1, [r0, 0x2E]
movs r4, 0x1
adds r0, r4, 0
@@ -16010,7 +16010,7 @@ _08025774:
str r1, [r3]
b _080257C0
.align 2, 0
-_080257AC: .4byte gUnknown_30030F0
+_080257AC: .4byte gMain
_080257B0: .4byte gUnknown_2023E82
_080257B4: .4byte gUnknown_2023D74
_080257B8:
@@ -16167,7 +16167,7 @@ _080258C0:
lsls r0, 2
adds r4, r2, 0
muls r4, r0
- ldr r0, _08025900 @ =gUnknown_3005008
+ ldr r0, _08025900 @ =gSaveBlock1Ptr
mov r8, r0
b _080259E8
.align 2, 0
@@ -16175,7 +16175,7 @@ _080258F0: .4byte gUnknown_2023E8A
_080258F4: .4byte gUnknown_20386AE
_080258F8: .4byte gUnknown_2023FF4
_080258FC: .4byte gUnknown_2023FE8
-_08025900: .4byte gUnknown_3005008
+_08025900: .4byte gSaveBlock1Ptr
_08025904:
ldr r2, _08025920 @ =gUnknown_823EAC8
ldrh r1, [r0]
@@ -16245,7 +16245,7 @@ _08025970:
mov r12, r0
lsls r4, r5, 2
ldr r5, _080259D4 @ =gUnknown_2022B4C
- ldr r0, _080259D8 @ =gUnknown_3005008
+ ldr r0, _080259D8 @ =gSaveBlock1Ptr
mov r8, r0
cmp r1, 0xFF
beq _080259AA
@@ -16289,7 +16289,7 @@ _080259AA:
_080259CC: .4byte gUnknown_824F220
_080259D0: .4byte gUnknown_2023FE8
_080259D4: .4byte gUnknown_2022B4C
-_080259D8: .4byte gUnknown_3005008
+_080259D8: .4byte gSaveBlock1Ptr
_080259DC: .4byte gUnknown_823EAC8
_080259E0: .4byte gUnknown_20386AE
_080259E4:
@@ -16942,7 +16942,7 @@ _08025EE4:
.align 2, 0
_08025F08: .4byte gUnknown_83FE791
_08025F0C:
- ldr r0, _08025F6C @ =gUnknown_30030F0
+ ldr r0, _08025F6C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -16958,7 +16958,7 @@ _08025F0C:
strb r0, [r5, 0x1]
bl sub_802DCB8
_08025F30:
- ldr r0, _08025F6C @ =gUnknown_30030F0
+ ldr r0, _08025F6C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -16975,7 +16975,7 @@ _08025F30:
strb r0, [r4, 0x1]
bl sub_802DCB8
_08025F56:
- ldr r0, _08025F6C @ =gUnknown_30030F0
+ ldr r0, _08025F6C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -16986,7 +16986,7 @@ _08025F56:
strb r4, [r0, 0x1]
b _08025F7E
.align 2, 0
-_08025F6C: .4byte gUnknown_30030F0
+_08025F6C: .4byte gMain
_08025F70: .4byte gUnknown_2023E82
_08025F74:
movs r4, 0x1
@@ -17444,7 +17444,7 @@ _08026318:
.align 2, 0
_0802632C: .4byte gUnknown_202297A
_08026330:
- ldr r0, _0802634C @ =gUnknown_30030F0
+ ldr r0, _0802634C @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0
beq _080263F6
@@ -17456,9 +17456,9 @@ _08026330:
bl CopyWindowToVram
b _0802636E
.align 2, 0
-_0802634C: .4byte gUnknown_30030F0
+_0802634C: .4byte gMain
_08026350:
- ldr r0, _08026378 @ =gUnknown_30030F0
+ ldr r0, _08026378 @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0
beq _080263F6
@@ -17478,7 +17478,7 @@ _0802636E:
strb r0, [r1, 0x1E]
b _080263F6
.align 2, 0
-_08026378: .4byte gUnknown_30030F0
+_08026378: .4byte gMain
_0802637C: .4byte gUnknown_2023FC4
_08026380:
bl sub_8026648
@@ -22088,7 +22088,7 @@ atk91_givepaydaymoney: @ 80287A8
ldrb r0, [r0]
adds r4, r1, 0
muls r4, r0
- ldr r0, _08028818 @ =gUnknown_3005008
+ ldr r0, _08028818 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -22122,7 +22122,7 @@ atk91_givepaydaymoney: @ 80287A8
_0802880C: .4byte gUnknown_2022B4C
_08028810: .4byte gUnknown_2023E7E
_08028814: .4byte gUnknown_2023FE8
-_08028818: .4byte gUnknown_3005008
+_08028818: .4byte gSaveBlock1Ptr
_0802881C: .4byte gUnknown_2022AB8
_08028820: .4byte gUnknown_2023D74
_08028824: .4byte gUnknown_81D911D
@@ -32469,7 +32469,7 @@ _0802DA64:
beq _0802DA72
b _0802DB6C
_0802DA72:
- ldr r0, _0802DAB0 @ =gUnknown_30030F0
+ ldr r0, _0802DAB0 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _0802DAB4 @ =sub_8011100
cmp r1, r0
@@ -32498,7 +32498,7 @@ _0802DA72:
b _0802DB6C
.align 2, 0
_0802DAAC: .4byte gUnknown_2037AB8
-_0802DAB0: .4byte gUnknown_30030F0
+_0802DAB0: .4byte gMain
_0802DAB4: .4byte sub_8011100
_0802DAB8: .4byte gUnknown_3005090
_0802DABC: .4byte gUnknown_2023E82
@@ -32875,7 +32875,7 @@ _0802DD78:
_0802DDA0: .4byte gUnknown_83FE791
_0802DDA4: .4byte gUnknown_2023E82
_0802DDA8:
- ldr r0, _0802DE1C @ =gUnknown_30030F0
+ ldr r0, _0802DE1C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -32891,7 +32891,7 @@ _0802DDA8:
strb r0, [r4, 0x1]
bl sub_802DCB8
_0802DDCC:
- ldr r0, _0802DE1C @ =gUnknown_30030F0
+ ldr r0, _0802DE1C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -32908,7 +32908,7 @@ _0802DDCC:
strb r0, [r4, 0x1]
bl sub_802DCB8
_0802DDF2:
- ldr r0, _0802DE1C @ =gUnknown_30030F0
+ ldr r0, _0802DE1C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -32927,7 +32927,7 @@ _0802DDF2:
bl BeginFastPaletteFade
b _0802DFA6
.align 2, 0
-_0802DE1C: .4byte gUnknown_30030F0
+_0802DE1C: .4byte gMain
_0802DE20: .4byte gUnknown_2023E82
_0802DE24:
movs r0, 0x2
@@ -33043,7 +33043,7 @@ _0802DF0C: .4byte gUnknown_2023FE8
_0802DF10: .4byte sub_8011100
_0802DF14: .4byte gUnknown_2023E82
_0802DF18:
- ldr r0, _0802DF54 @ =gUnknown_30030F0
+ ldr r0, _0802DF54 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _0802DF58 @ =sub_8011100
cmp r1, r0
@@ -33073,7 +33073,7 @@ _0802DF18:
bl sub_804037C
b _0802DF8C
.align 2, 0
-_0802DF54: .4byte gUnknown_30030F0
+_0802DF54: .4byte gMain
_0802DF58: .4byte sub_8011100
_0802DF5C: .4byte gUnknown_2037AB8
_0802DF60: .4byte gUnknown_2023BCE
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index 303c4ce77..3034167f4 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -128,7 +128,7 @@ sub_807F704: @ 807F704
bl sub_807F7D8
b _0807F744
_0807F714:
- ldr r0, _0807F73C @ =gUnknown_3005008
+ ldr r0, _0807F73C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -146,7 +146,7 @@ _0807F714:
bl sub_807F810
b _0807F744
.align 2, 0
-_0807F73C: .4byte gUnknown_3005008
+_0807F73C: .4byte gSaveBlock1Ptr
_0807F740:
bl sub_807F748
_0807F744:
@@ -160,7 +160,7 @@ sub_807F748: @ 807F748
bl ScriptContext2_Enable
bl player_bitmagic
bl sub_805C780
- ldr r1, _0807F780 @ =gUnknown_30030F0
+ ldr r1, _0807F780 @ =gMain
ldr r0, _0807F784 @ =sub_807FB40
str r0, [r1, 0x8]
ldr r1, _0807F788 @ =gUnknown_2022B4C
@@ -178,7 +178,7 @@ sub_807F748: @ 807F748
pop {r0}
bx r0
.align 2, 0
-_0807F780: .4byte gUnknown_30030F0
+_0807F780: .4byte gMain
_0807F784: .4byte sub_807FB40
_0807F788: .4byte gUnknown_2022B4C
thumb_func_end sub_807F748
@@ -189,7 +189,7 @@ sub_807F78C: @ 807F78C
bl ScriptContext2_Enable
bl player_bitmagic
bl sub_805C780
- ldr r1, _0807F7C8 @ =gUnknown_30030F0
+ ldr r1, _0807F7C8 @ =gMain
ldr r0, _0807F7CC @ =sub_807FB40
str r0, [r1, 0x8]
ldr r1, _0807F7D0 @ =gUnknown_2022B4C
@@ -208,7 +208,7 @@ sub_807F78C: @ 807F78C
pop {r0}
bx r0
.align 2, 0
-_0807F7C8: .4byte gUnknown_30030F0
+_0807F7C8: .4byte gMain
_0807F7CC: .4byte sub_807FB40
_0807F7D0: .4byte gUnknown_2022B4C
_0807F7D4: .4byte 0x00000155
@@ -220,7 +220,7 @@ sub_807F7D8: @ 807F7D8
bl ScriptContext2_Enable
bl player_bitmagic
bl sub_805C780
- ldr r1, _0807F804 @ =gUnknown_30030F0
+ ldr r1, _0807F804 @ =gMain
ldr r0, _0807F808 @ =sub_80A0F4C
str r0, [r1, 0x8]
ldr r1, _0807F80C @ =gUnknown_2022B4C
@@ -234,7 +234,7 @@ sub_807F7D8: @ 807F7D8
pop {r0}
bx r0
.align 2, 0
-_0807F804: .4byte gUnknown_30030F0
+_0807F804: .4byte gMain
_0807F808: .4byte sub_80A0F4C
_0807F80C: .4byte gUnknown_2022B4C
thumb_func_end sub_807F7D8
@@ -245,7 +245,7 @@ sub_807F810: @ 807F810
bl ScriptContext2_Enable
bl player_bitmagic
bl sub_805C780
- ldr r1, _0807F854 @ =gUnknown_30030F0
+ ldr r1, _0807F854 @ =gMain
ldr r0, _0807F858 @ =sub_807FB40
str r0, [r1, 0x8]
ldr r1, _0807F85C @ =gUnknown_2022B4C
@@ -268,7 +268,7 @@ sub_807F810: @ 807F810
pop {r0}
bx r0
.align 2, 0
-_0807F854: .4byte gUnknown_30030F0
+_0807F854: .4byte gMain
_0807F858: .4byte sub_807FB40
_0807F85C: .4byte gUnknown_2022B4C
_0807F860: .4byte gUnknown_202402C
@@ -299,7 +299,7 @@ sub_807F888: @ 807F888
movs r2, 0x5
bl CreateMaleMon
bl ScriptContext2_Enable
- ldr r1, _0807F8B8 @ =gUnknown_30030F0
+ ldr r1, _0807F8B8 @ =gMain
ldr r0, _0807F8BC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
str r0, [r1, 0x8]
ldr r1, _0807F8C0 @ =gUnknown_2022B4C
@@ -313,7 +313,7 @@ sub_807F888: @ 807F888
bx r0
.align 2, 0
_0807F8B4: .4byte gUnknown_202402C
-_0807F8B8: .4byte gUnknown_30030F0
+_0807F8B8: .4byte gMain
_0807F8BC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_0807F8C0: .4byte gUnknown_2022B4C
thumb_func_end sub_807F888
@@ -322,7 +322,7 @@ _0807F8C0: .4byte gUnknown_2022B4C
sub_807F8C4: @ 807F8C4
push {lr}
bl ScriptContext2_Enable
- ldr r1, _0807F8F8 @ =gUnknown_30030F0
+ ldr r1, _0807F8F8 @ =gMain
ldr r0, _0807F8FC @ =sub_807FBA0
str r0, [r1, 0x8]
ldr r1, _0807F900 @ =gUnknown_2022B4C
@@ -341,7 +341,7 @@ sub_807F8C4: @ 807F8C4
pop {r0}
bx r0
.align 2, 0
-_0807F8F8: .4byte gUnknown_30030F0
+_0807F8F8: .4byte gMain
_0807F8FC: .4byte sub_807FBA0
_0807F900: .4byte gUnknown_2022B4C
thumb_func_end sub_807F8C4
@@ -351,7 +351,7 @@ sub_807F904: @ 807F904
push {lr}
sub sp, 0xC
bl ScriptContext2_Enable
- ldr r1, _0807F944 @ =gUnknown_30030F0
+ ldr r1, _0807F944 @ =gMain
ldr r0, _0807F948 @ =sub_807FBF0
str r0, [r1, 0x8]
ldr r0, _0807F94C @ =0x00000167
@@ -377,7 +377,7 @@ sub_807F904: @ 807F904
bl CreateMonWithGenderNatureLetter
b _0807F960
.align 2, 0
-_0807F944: .4byte gUnknown_30030F0
+_0807F944: .4byte gMain
_0807F948: .4byte sub_807FBF0
_0807F94C: .4byte 0x00000167
_0807F950: .4byte gUnknown_2022B4C
@@ -414,7 +414,7 @@ _0807F994: .4byte gUnknown_841D148
sub_807F998: @ 807F998
push {lr}
bl ScriptContext2_Enable
- ldr r1, _0807F9CC @ =gUnknown_30030F0
+ ldr r1, _0807F9CC @ =gMain
ldr r0, _0807F9D0 @ =sub_807FBA0
str r0, [r1, 0x8]
ldr r1, _0807F9D4 @ =gUnknown_2022B4C
@@ -433,7 +433,7 @@ sub_807F998: @ 807F998
pop {r0}
bx r0
.align 2, 0
-_0807F9CC: .4byte gUnknown_30030F0
+_0807F9CC: .4byte gMain
_0807F9D0: .4byte sub_807FBA0
_0807F9D4: .4byte gUnknown_2022B4C
thumb_func_end sub_807F998
@@ -442,7 +442,7 @@ _0807F9D4: .4byte gUnknown_2022B4C
sub_807F9D8: @ 807F9D8
push {lr}
bl ScriptContext2_Enable
- ldr r1, _0807FA0C @ =gUnknown_30030F0
+ ldr r1, _0807FA0C @ =gMain
ldr r0, _0807FA10 @ =sub_807FBA0
str r0, [r1, 0x8]
ldr r1, _0807FA14 @ =gUnknown_2022B4C
@@ -465,7 +465,7 @@ sub_807F9D8: @ 807F9D8
blt _0807FA4C
b _0807FA3C
.align 2, 0
-_0807FA0C: .4byte gUnknown_30030F0
+_0807FA0C: .4byte gMain
_0807FA10: .4byte sub_807FBA0
_0807FA14: .4byte gUnknown_2022B4C
_0807FA18: .4byte gUnknown_202402C
@@ -514,14 +514,14 @@ _0807FA56:
sub_807FA68: @ 807FA68
push {lr}
bl ScriptContext2_Enable
- ldr r1, _0807FA90 @ =gUnknown_30030F0
+ ldr r1, _0807FA90 @ =gMain
ldr r0, _0807FA94 @ =sub_807FBA0
str r0, [r1, 0x8]
ldr r1, _0807FA98 @ =gUnknown_2022B4C
movs r0, 0xC0
lsls r0, 6
str r0, [r1]
- ldr r0, _0807FA9C @ =gUnknown_81E9F10
+ ldr r0, _0807FA9C @ =gGameVersion
ldrb r0, [r0]
cmp r0, 0x4
bne _0807FAA0
@@ -531,10 +531,10 @@ sub_807FA68: @ 807FA68
bl sub_807F690
b _0807FAAA
.align 2, 0
-_0807FA90: .4byte gUnknown_30030F0
+_0807FA90: .4byte gMain
_0807FA94: .4byte sub_807FBA0
_0807FA98: .4byte gUnknown_2022B4C
-_0807FA9C: .4byte gUnknown_81E9F10
+_0807FA9C: .4byte gGameVersion
_0807FAA0:
movs r1, 0x85
lsls r1, 1
@@ -553,7 +553,7 @@ _0807FAAA:
sub_807FABC: @ 807FABC
push {lr}
bl ScriptContext2_Enable
- ldr r1, _0807FAEC @ =gUnknown_30030F0
+ ldr r1, _0807FAEC @ =gMain
ldr r0, _0807FAF0 @ =sub_807FBA0
str r0, [r1, 0x8]
ldr r1, _0807FAF4 @ =gUnknown_2022B4C
@@ -571,7 +571,7 @@ sub_807FABC: @ 807FABC
pop {r0}
bx r0
.align 2, 0
-_0807FAEC: .4byte gUnknown_30030F0
+_0807FAEC: .4byte gMain
_0807FAF0: .4byte sub_807FBA0
_0807FAF4: .4byte gUnknown_2022B4C
thumb_func_end sub_807FABC
@@ -591,7 +591,7 @@ sub_807FB08: @ 807FB08
bl ScriptContext2_Enable
bl player_bitmagic
bl sub_805C780
- ldr r1, _0807FB38 @ =gUnknown_30030F0
+ ldr r1, _0807FB38 @ =gMain
ldr r0, _0807FB3C @ =sub_807FAF8
str r0, [r1, 0x8]
bl copy_player_party_to_sav1
@@ -604,7 +604,7 @@ sub_807FB08: @ 807FB08
pop {r0}
bx r0
.align 2, 0
-_0807FB38: .4byte gUnknown_30030F0
+_0807FB38: .4byte gMain
_0807FB3C: .4byte sub_807FAF8
thumb_func_end sub_807FB08
@@ -1507,7 +1507,7 @@ battle_80801F0: @ 80801F0
strh r1, [r0]
lsls r0, r1, 24
lsrs r0, 24
- ldr r1, _08080220 @ =gUnknown_3005008
+ ldr r1, _08080220 @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -1520,7 +1520,7 @@ _08080212:
.align 2, 0
_08080218: .4byte gUnknown_20386B0
_0808021C: .4byte gUnknown_20370D2
-_08080220: .4byte gUnknown_3005008
+_08080220: .4byte gSaveBlock1Ptr
_08080224: .4byte gUnknown_3005074
thumb_func_end battle_80801F0
@@ -1832,7 +1832,7 @@ sub_8080464: @ 8080464
orrs r0, r1
str r0, [r4]
_0808048C:
- ldr r1, _080804A4 @ =gUnknown_30030F0
+ ldr r1, _080804A4 @ =gMain
ldr r0, _080804A8 @ =sub_80804AC
str r0, [r1, 0x8]
bl sub_807F868
@@ -1842,7 +1842,7 @@ _0808048C:
bx r0
.align 2, 0
_080804A0: .4byte gUnknown_2022B4C
-_080804A4: .4byte gUnknown_30030F0
+_080804A4: .4byte gMain
_080804A8: .4byte sub_80804AC
thumb_func_end sub_8080464
@@ -1970,7 +1970,7 @@ sub_80805B0: @ 80805B0
ldr r1, _080805CC @ =gUnknown_2022B4C
movs r0, 0x8
str r0, [r1]
- ldr r1, _080805D0 @ =gUnknown_30030F0
+ ldr r1, _080805D0 @ =gMain
ldr r0, _080805D4 @ =sub_8080558
str r0, [r1, 0x8]
bl sub_807F868
@@ -1979,7 +1979,7 @@ sub_80805B0: @ 80805B0
bx r0
.align 2, 0
_080805CC: .4byte gUnknown_2022B4C
-_080805D0: .4byte gUnknown_30030F0
+_080805D0: .4byte gMain
_080805D4: .4byte sub_8080558
thumb_func_end sub_80805B0
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index b2735d96b..d44353044 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -11,7 +11,7 @@ sub_80E5970: @ 80E5970
movs r4, 0
movs r5, 0
_080E5976:
- ldr r0, _080E5990 @ =gUnknown_300500C
+ ldr r0, _080E5990 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _080E5994 @ =0x0000055e
adds r0, r1
@@ -25,7 +25,7 @@ _080E5976:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E5990: .4byte gUnknown_300500C
+_080E5990: .4byte gSaveBlock2Ptr
_080E5994: .4byte 0x0000055e
_080E5998: .4byte _080E599C
.align 2, 0
@@ -79,7 +79,7 @@ _080E5A00:
adds r5, 0x1
cmp r5, 0x1
ble _080E5976
- ldr r0, _080E5A2C @ =gUnknown_300500C
+ ldr r0, _080E5A2C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _080E5A30 @ =0x0000055e
adds r0, r1
@@ -97,7 +97,7 @@ _080E5A20:
pop {r0}
bx r0
.align 2, 0
-_080E5A2C: .4byte gUnknown_300500C
+_080E5A2C: .4byte gSaveBlock2Ptr
_080E5A30: .4byte 0x0000055e
_080E5A34: .4byte 0x00000303
thumb_func_end sub_80E5970
@@ -106,7 +106,7 @@ _080E5A34: .4byte 0x00000303
sub_80E5A38: @ 80E5A38
lsls r0, 24
lsrs r0, 24
- ldr r3, _080E5A64 @ =gUnknown_300500C
+ ldr r3, _080E5A64 @ =gSaveBlock2Ptr
ldr r1, [r3]
ldr r2, _080E5A68 @ =0x0000055e
adds r1, r2
@@ -127,7 +127,7 @@ sub_80E5A38: @ 80E5A38
strh r3, [r2]
bx lr
.align 2, 0
-_080E5A64: .4byte gUnknown_300500C
+_080E5A64: .4byte gSaveBlock2Ptr
_080E5A68: .4byte 0x0000055e
_080E5A6C: .4byte 0x00000564
thumb_func_end sub_80E5A38
@@ -149,7 +149,7 @@ sub_80E5A70: @ 80E5A70
adds r7, r4, 0
cmp r0, 0
bne _080E5A9E
- ldr r0, _080E5AA8 @ =gUnknown_300500C
+ ldr r0, _080E5AA8 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _080E5AAC @ =0x000004a2
adds r0, r1
@@ -161,7 +161,7 @@ _080E5A9E:
b _080E5B02
.align 2, 0
_080E5AA4: .4byte gUnknown_20370D0
-_080E5AA8: .4byte gUnknown_300500C
+_080E5AA8: .4byte gSaveBlock2Ptr
_080E5AAC: .4byte 0x000004a2
_080E5AB0:
movs r6, 0x32
@@ -171,7 +171,7 @@ _080E5AB0:
_080E5AB8:
movs r4, 0
_080E5ABA:
- ldr r0, _080E5B0C @ =gUnknown_300500C
+ ldr r0, _080E5B0C @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0x2C
muls r0, r4
@@ -213,7 +213,7 @@ _080E5B02:
pop {r1}
bx r1
.align 2, 0
-_080E5B0C: .4byte gUnknown_300500C
+_080E5B0C: .4byte gSaveBlock2Ptr
_080E5B10: .4byte 0x000004d4
thumb_func_end sub_80E5A70
@@ -227,7 +227,7 @@ sub_80E5B14: @ 80E5B14
sub sp, 0x24
movs r0, 0
str r0, [sp, 0x14]
- ldr r4, _080E5B58 @ =gUnknown_300500C
+ ldr r4, _080E5B58 @ =gSaveBlock2Ptr
ldr r0, [r4]
ldr r1, _080E5B5C @ =0x0000055c
adds r0, r1
@@ -252,7 +252,7 @@ sub_80E5B14: @ 80E5B14
strb r1, [r0]
b _080E5C0C
.align 2, 0
-_080E5B58: .4byte gUnknown_300500C
+_080E5B58: .4byte gSaveBlock2Ptr
_080E5B5C: .4byte 0x0000055c
_080E5B60: .4byte 0x0000056c
_080E5B64:
@@ -262,7 +262,7 @@ _080E5B64:
movs r7, 0xAA
lsls r7, 1
mov r12, r7
- ldr r0, _080E5BE8 @ =gUnknown_300500C
+ ldr r0, _080E5BE8 @ =gSaveBlock2Ptr
ldr r0, [r0]
str r0, [sp, 0x18]
mov r1, sp
@@ -285,7 +285,7 @@ _080E5B8E:
adds r1, 0x1
cmp r1, 0x27
bls _080E5B8E
- ldr r7, _080E5BE8 @ =gUnknown_300500C
+ ldr r7, _080E5BE8 @ =gSaveBlock2Ptr
ldr r2, [r7]
mov r3, r10
muls r3, r6
@@ -326,10 +326,10 @@ _080E5BD8:
movs r0, 0
b _080E5C0E
.align 2, 0
-_080E5BE8: .4byte gUnknown_300500C
+_080E5BE8: .4byte gSaveBlock2Ptr
_080E5BEC:
bl Random
- ldr r1, _080E5C20 @ =gUnknown_300500C
+ ldr r1, _080E5C20 @ =gSaveBlock2Ptr
ldr r4, [r1]
lsls r0, 16
lsrs r0, 16
@@ -354,7 +354,7 @@ _080E5C0E:
pop {r1}
bx r1
.align 2, 0
-_080E5C20: .4byte gUnknown_300500C
+_080E5C20: .4byte gSaveBlock2Ptr
_080E5C24: .4byte 0x0000056c
thumb_func_end sub_80E5B14
@@ -363,7 +363,7 @@ sub_80E5C28: @ 80E5C28
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r5, _080E5C6C @ =gUnknown_300500C
+ ldr r5, _080E5C6C @ =gSaveBlock2Ptr
ldr r0, [r5]
ldr r1, _080E5C70 @ =0x0000055c
adds r0, r1
@@ -392,7 +392,7 @@ sub_80E5C28: @ 80E5C28
adds r1, r4
b _080E5E3E
.align 2, 0
-_080E5C6C: .4byte gUnknown_300500C
+_080E5C6C: .4byte gSaveBlock2Ptr
_080E5C70: .4byte 0x0000055c
_080E5C74: .4byte 0x0000056c
_080E5C78: .4byte 0x00000571
@@ -472,7 +472,7 @@ _080E5CFC:
adds r0, r6
ldrh r0, [r0]
subs r0, 0x1
- ldr r4, _080E5D24 @ =gUnknown_300500C
+ ldr r4, _080E5D24 @ =gSaveBlock2Ptr
cmp r3, r0
bne _080E5CA2
ldr r0, [r4]
@@ -482,7 +482,7 @@ _080E5CFC:
.align 2, 0
_080E5D1C: .4byte 0x00000564
_080E5D20: .4byte 0x00000572
-_080E5D24: .4byte gUnknown_300500C
+_080E5D24: .4byte gSaveBlock2Ptr
_080E5D28: .4byte 0x0000056c
_080E5D2C:
adds r7, r6, 0
@@ -541,7 +541,7 @@ _080E5D88:
adds r0, r6
ldrh r0, [r0]
subs r0, 0x1
- ldr r4, _080E5DB0 @ =gUnknown_300500C
+ ldr r4, _080E5DB0 @ =gSaveBlock2Ptr
cmp r3, r0
bne _080E5D30
ldr r0, [r4]
@@ -551,7 +551,7 @@ _080E5D88:
.align 2, 0
_080E5DA8: .4byte 0x00000564
_080E5DAC: .4byte 0x00000572
-_080E5DB0: .4byte gUnknown_300500C
+_080E5DB0: .4byte gSaveBlock2Ptr
_080E5DB4: .4byte 0x0000056c
_080E5DB8:
adds r7, r5, 0
@@ -597,7 +597,7 @@ _080E5DFC:
adds r0, r6
ldrh r0, [r0]
subs r0, 0x1
- ldr r4, _080E5E50 @ =gUnknown_300500C
+ ldr r4, _080E5E50 @ =gSaveBlock2Ptr
cmp r3, r0
bne _080E5DBA
ldr r0, [r4]
@@ -634,7 +634,7 @@ _080E5E42:
bx r0
.align 2, 0
_080E5E4C: .4byte 0x00000572
-_080E5E50: .4byte gUnknown_300500C
+_080E5E50: .4byte gSaveBlock2Ptr
_080E5E54: .4byte 0x0000056c
_080E5E58: .4byte 0x00000571
thumb_func_end sub_80E5C28
@@ -672,7 +672,7 @@ sub_80E5E7C: @ 80E5E7C
mov r8, r1
mov r10, r0
movs r5, 0
- ldr r2, _080E5F08 @ =gUnknown_300500C
+ ldr r2, _080E5F08 @ =gSaveBlock2Ptr
ldr r0, [r2]
mov r4, r10
ldrb r4, [r4, 0xC]
@@ -699,7 +699,7 @@ _080E5EBC:
adds r3, 0x1
cmp r3, 0x3
bgt _080E5EDA
- ldr r7, _080E5F08 @ =gUnknown_300500C
+ ldr r7, _080E5F08 @ =gSaveBlock2Ptr
ldr r0, [r7]
adds r1, r3, r4
movs r7, 0xB0
@@ -715,7 +715,7 @@ _080E5EDA:
cmp r3, 0x4
bne _080E5F20
movs r6, 0
- ldr r1, _080E5F08 @ =gUnknown_300500C
+ ldr r1, _080E5F08 @ =gSaveBlock2Ptr
ldr r0, [r1]
movs r3, 0xAC
lsls r3, 1
@@ -736,12 +736,12 @@ _080E5EFE:
movs r6, 0x7
b _080E5F20
.align 2, 0
-_080E5F08: .4byte gUnknown_300500C
+_080E5F08: .4byte gSaveBlock2Ptr
_080E5F0C:
adds r6, 0x1
cmp r6, 0x6
bgt _080E5F20
- ldr r7, _080E5F4C @ =gUnknown_300500C
+ ldr r7, _080E5F4C @ =gSaveBlock2Ptr
ldr r0, [r7]
adds r0, r3
adds r0, r2
@@ -763,7 +763,7 @@ _080E5F20:
_080E5F36:
cmp r5, 0x4
bgt _080E5F50
- ldr r2, _080E5F4C @ =gUnknown_300500C
+ ldr r2, _080E5F4C @ =gSaveBlock2Ptr
ldr r0, [r2]
movs r1, 0xA4
muls r1, r5
@@ -773,10 +773,10 @@ _080E5F36:
adds r0, r4
b _080E5F90
.align 2, 0
-_080E5F4C: .4byte gUnknown_300500C
+_080E5F4C: .4byte gSaveBlock2Ptr
_080E5F50:
movs r5, 0
- ldr r7, _080E5F9C @ =gUnknown_300500C
+ ldr r7, _080E5F9C @ =gSaveBlock2Ptr
ldr r0, [r7]
movs r1, 0xAB
lsls r1, 1
@@ -801,7 +801,7 @@ _080E5F68:
_080E5F7C:
cmp r5, 0x4
bgt _080E5FA0
- ldr r1, _080E5F9C @ =gUnknown_300500C
+ ldr r1, _080E5F9C @ =gSaveBlock2Ptr
ldr r0, [r1]
movs r1, 0xA4
muls r1, r5
@@ -815,10 +815,10 @@ _080E5F90:
bl memcpy
b _080E6062
.align 2, 0
-_080E5F9C: .4byte gUnknown_300500C
+_080E5F9C: .4byte gSaveBlock2Ptr
_080E5FA0:
mov r2, sp
- ldr r4, _080E5FF8 @ =gUnknown_300500C
+ ldr r4, _080E5FF8 @ =gSaveBlock2Ptr
ldr r0, [r4]
movs r3, 0xAB
lsls r3, 1
@@ -839,7 +839,7 @@ _080E5FC2:
adds r7, r5, 0x1
cmp r3, r8
bge _080E6006
- ldr r1, _080E5FF8 @ =gUnknown_300500C
+ ldr r1, _080E5FF8 @ =gSaveBlock2Ptr
ldr r0, [r1]
movs r2, 0xA4
adds r1, r5, 0
@@ -864,7 +864,7 @@ _080E5FDC:
strh r5, [r0]
b _080E6006
.align 2, 0
-_080E5FF8: .4byte gUnknown_300500C
+_080E5FF8: .4byte gSaveBlock2Ptr
_080E5FFC:
cmp r1, r0
bhi _080E6006
@@ -878,7 +878,7 @@ _080E6006:
lsls r2, r1, 1
mov r4, sp
adds r3, r4, r2
- ldr r1, _080E6074 @ =gUnknown_300500C
+ ldr r1, _080E6074 @ =gSaveBlock2Ptr
ldr r0, [r1]
movs r4, 0xA4
adds r1, r5, 0
@@ -901,7 +901,7 @@ _080E602C:
mov r1, r8
bl __modsi3
adds r5, r0, 0
- ldr r0, _080E6074 @ =gUnknown_300500C
+ ldr r0, _080E6074 @ =gSaveBlock2Ptr
ldr r0, [r0]
lsls r1, r5, 1
add r1, sp
@@ -926,13 +926,13 @@ _080E6062:
pop {r0}
bx r0
.align 2, 0
-_080E6074: .4byte gUnknown_300500C
+_080E6074: .4byte gSaveBlock2Ptr
thumb_func_end sub_80E5E7C
thumb_func_start sub_80E6078
sub_80E6078: @ 80E6078
push {lr}
- ldr r0, _080E6094 @ =gUnknown_300500C
+ ldr r0, _080E6094 @ =gSaveBlock2Ptr
ldr r3, [r0]
ldr r0, _080E6098 @ =0x0000056c
adds r1, r3, r0
@@ -946,7 +946,7 @@ sub_80E6078: @ 80E6078
adds r0, r1
b _080E60D6
.align 2, 0
-_080E6094: .4byte gUnknown_300500C
+_080E6094: .4byte gSaveBlock2Ptr
_080E6098: .4byte 0x0000056c
_080E609C: .4byte gUnknown_82538A8
_080E60A0: .4byte 0x000004a1
@@ -988,7 +988,7 @@ _080E60E0: .4byte gUnknown_83FFAC4
thumb_func_start sub_80E60E4
sub_80E60E4: @ 80E60E4
push {lr}
- ldr r0, _080E6100 @ =gUnknown_300500C
+ ldr r0, _080E6100 @ =gSaveBlock2Ptr
ldr r3, [r0]
ldr r0, _080E6104 @ =0x0000056c
adds r1, r3, r0
@@ -1002,7 +1002,7 @@ sub_80E60E4: @ 80E60E4
adds r0, r1
b _080E6144
.align 2, 0
-_080E6100: .4byte gUnknown_300500C
+_080E6100: .4byte gSaveBlock2Ptr
_080E6104: .4byte 0x0000056c
_080E6108: .4byte gUnknown_825393E
_080E610C: .4byte 0x000004a1
@@ -1045,7 +1045,7 @@ _080E614C: .4byte gUnknown_825393E
sub_80E6150: @ 80E6150
push {r4-r6,lr}
adds r4, r0, 0
- ldr r0, _080E6178 @ =gUnknown_300500C
+ ldr r0, _080E6178 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldr r2, _080E617C @ =0x0000056c
adds r0, r1, r2
@@ -1065,7 +1065,7 @@ _080E6168:
ble _080E6168
b _080E61CE
.align 2, 0
-_080E6178: .4byte gUnknown_300500C
+_080E6178: .4byte gSaveBlock2Ptr
_080E617C: .4byte 0x0000056c
_080E6180: .4byte 0x000004a4
_080E6184:
@@ -1134,7 +1134,7 @@ sub_80E61DC: @ 80E61DC
movs r0, 0xFF
strb r0, [r4]
bl ZeroEnemyPartyMons
- ldr r1, _080E6210 @ =gUnknown_300500C
+ ldr r1, _080E6210 @ =gSaveBlock2Ptr
ldr r0, [r1]
ldr r2, _080E6214 @ =0x0000056c
adds r0, r2
@@ -1145,7 +1145,7 @@ sub_80E61DC: @ 80E61DC
str r3, [sp, 0x14]
b _080E62F4
.align 2, 0
-_080E6210: .4byte gUnknown_300500C
+_080E6210: .4byte gSaveBlock2Ptr
_080E6214: .4byte 0x0000056c
_080E6218:
cmp r0, 0x1D
@@ -1237,7 +1237,7 @@ _080E62B2:
muls r0, r6
ldr r1, _080E62E4 @ =gUnknown_202402C
adds r0, r1
- ldr r1, _080E62E8 @ =gUnknown_300500C
+ ldr r1, _080E62E8 @ =gSaveBlock2Ptr
ldr r1, [r1]
ldr r3, _080E62EC @ =0x0000056c
adds r2, r1, r3
@@ -1258,11 +1258,11 @@ _080E62B2:
b _080E64A6
.align 2, 0
_080E62E4: .4byte gUnknown_202402C
-_080E62E8: .4byte gUnknown_300500C
+_080E62E8: .4byte gSaveBlock2Ptr
_080E62EC: .4byte 0x0000056c
_080E62F0: .4byte 0xffffc144
_080E62F4:
- ldr r2, _080E6314 @ =gUnknown_300500C
+ ldr r2, _080E6314 @ =gSaveBlock2Ptr
ldr r0, [r2]
ldr r1, _080E6318 @ =0x0000055c
adds r0, r1
@@ -1278,7 +1278,7 @@ _080E62F4:
str r3, [sp, 0x10]
b _080E6328
.align 2, 0
-_080E6314: .4byte gUnknown_300500C
+_080E6314: .4byte gSaveBlock2Ptr
_080E6318: .4byte 0x0000055c
_080E631C: .4byte gUnknown_8400E04
_080E6320:
@@ -1828,7 +1828,7 @@ _080E6750:
ldr r1, _080E6780 @ =gUnknown_20370C0
movs r0, 0
strh r0, [r1]
- ldr r0, _080E6784 @ =gUnknown_300500C
+ ldr r0, _080E6784 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r0, [r5]
ldr r1, _080E6788 @ =0x0000055c
@@ -1852,7 +1852,7 @@ _080E6770:
bx r0
.align 2, 0
_080E6780: .4byte gUnknown_20370C0
-_080E6784: .4byte gUnknown_300500C
+_080E6784: .4byte gSaveBlock2Ptr
_080E6788: .4byte 0x0000055c
thumb_func_end sub_80E6648
@@ -1921,7 +1921,7 @@ _080E67F8: .4byte gUnknown_2021D18
thumb_func_start sub_80E67FC
sub_80E67FC: @ 80E67FC
push {lr}
- ldr r0, _080E6818 @ =gUnknown_300500C
+ ldr r0, _080E6818 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldr r1, _080E681C @ =0x0000056c
adds r0, r2, r1
@@ -1934,7 +1934,7 @@ sub_80E67FC: @ 80E67FC
bl sub_80E678C
b _080E684C
.align 2, 0
-_080E6818: .4byte gUnknown_300500C
+_080E6818: .4byte gSaveBlock2Ptr
_080E681C: .4byte 0x0000056c
_080E6820:
cmp r1, 0x63
@@ -1981,7 +1981,7 @@ sub_80E6854: @ 80E6854
_080E686C: .4byte gUnknown_203AAB8
_080E6870:
movs r5, 0
- ldr r6, _080E68A4 @ =gUnknown_3005008
+ ldr r6, _080E68A4 @ =gSaveBlock1Ptr
_080E6874:
movs r0, 0x64
adds r4, r5, 0
@@ -2005,7 +2005,7 @@ _080E6874:
ble _080E6874
b _080E68B0
.align 2, 0
-_080E68A4: .4byte gUnknown_3005008
+_080E68A4: .4byte gSaveBlock1Ptr
_080E68A8: .4byte gUnknown_2024284
_080E68AC:
bl sub_80E7550
@@ -2030,7 +2030,7 @@ sub_80E68C4: @ 80E68C4
lsrs r0, 24
cmp r0, 0x1
bne _080E68EC
- ldr r0, _080E68F4 @ =gUnknown_30030F0
+ ldr r0, _080E68F4 @ =gMain
ldr r1, _080E68F8 @ =sub_80E6854
str r1, [r0, 0x8]
bl sub_80563F0
@@ -2043,7 +2043,7 @@ _080E68EC:
pop {r0}
bx r0
.align 2, 0
-_080E68F4: .4byte gUnknown_30030F0
+_080E68F4: .4byte gMain
_080E68F8: .4byte sub_80E6854
_080E68FC: .4byte sub_800FD9C
thumb_func_end sub_80E68C4
@@ -2085,7 +2085,7 @@ _080E693C: .4byte gUnknown_2022B4C
_080E6940: .4byte gUnknown_20386AE
_080E6944:
movs r5, 0
- ldr r6, _080E698C @ =gUnknown_3005008
+ ldr r6, _080E698C @ =gSaveBlock1Ptr
_080E6948:
movs r0, 0x64
adds r4, r5, 0
@@ -2117,13 +2117,13 @@ _080E6970:
bl sub_80D08B8
b _080E69E6
.align 2, 0
-_080E698C: .4byte gUnknown_3005008
+_080E698C: .4byte gSaveBlock1Ptr
_080E6990: .4byte gUnknown_2024284
_080E6994: .4byte sub_80E68C4
_080E6998:
bl ZeroEnemyPartyMons
movs r5, 0
- ldr r4, _080E69F0 @ =gUnknown_300500C
+ ldr r4, _080E69F0 @ =gSaveBlock2Ptr
_080E69A0:
movs r0, 0x64
muls r0, r5
@@ -2161,7 +2161,7 @@ _080E69E6:
pop {r0}
bx r0
.align 2, 0
-_080E69F0: .4byte gUnknown_300500C
+_080E69F0: .4byte gSaveBlock2Ptr
_080E69F4: .4byte gUnknown_202402C
_080E69F8: .4byte 0x000004d4
_080E69FC: .4byte gUnknown_2022B4C
@@ -2173,7 +2173,7 @@ _080E6A08: .4byte sub_80E68C4
thumb_func_start sub_80E6A0C
sub_80E6A0C: @ 80E6A0C
push {r4-r6,lr}
- ldr r1, _080E6A34 @ =gUnknown_300500C
+ ldr r1, _080E6A34 @ =gSaveBlock2Ptr
ldr r0, [r1]
ldr r2, _080E6A38 @ =0x0000055c
adds r0, r2
@@ -2193,7 +2193,7 @@ _080E6A28:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E6A34: .4byte gUnknown_300500C
+_080E6A34: .4byte gSaveBlock2Ptr
_080E6A38: .4byte 0x0000055c
_080E6A3C: .4byte gUnknown_20370C0
_080E6A40: .4byte _080E6A44
@@ -2288,7 +2288,7 @@ _080E6B0C: .4byte gUnknown_20370C2
_080E6B10: .4byte 0x0000056c
_080E6B14:
movs r2, 0
- ldr r5, _080E6B30 @ =gUnknown_300500C
+ ldr r5, _080E6B30 @ =gSaveBlock2Ptr
ldr r4, _080E6B34 @ =0x0000056d
ldr r3, _080E6B38 @ =gUnknown_203B0D4
_080E6B1C:
@@ -2303,7 +2303,7 @@ _080E6B1C:
ble _080E6B1C
b _080E6C80
.align 2, 0
-_080E6B30: .4byte gUnknown_300500C
+_080E6B30: .4byte gSaveBlock2Ptr
_080E6B34: .4byte 0x0000056d
_080E6B38: .4byte gUnknown_203B0D4
_080E6B3C:
@@ -2440,7 +2440,7 @@ _080E6C48: .4byte gUnknown_2023FE8
_080E6C4C:
adds r0, r5, 0
bl sub_80E7188
- ldr r1, _080E6C64 @ =gUnknown_300500C
+ ldr r1, _080E6C64 @ =gSaveBlock2Ptr
ldr r1, [r1]
lsls r2, r5, 1
ldr r3, _080E6C68 @ =0x0000057c
@@ -2449,7 +2449,7 @@ _080E6C4C:
strh r0, [r1]
b _080E6C80
.align 2, 0
-_080E6C64: .4byte gUnknown_300500C
+_080E6C64: .4byte gSaveBlock2Ptr
_080E6C68: .4byte 0x0000057c
_080E6C6C:
ldr r1, [r6]
@@ -2474,7 +2474,7 @@ _080E6C88: .4byte 0x0000055c
thumb_func_start sub_80E6C8C
sub_80E6C8C: @ 80E6C8C
push {r4,lr}
- ldr r1, _080E6CB4 @ =gUnknown_300500C
+ ldr r1, _080E6CB4 @ =gSaveBlock2Ptr
ldr r0, [r1]
ldr r2, _080E6CB8 @ =0x0000055c
adds r0, r2
@@ -2494,7 +2494,7 @@ _080E6CA8:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E6CB4: .4byte gUnknown_300500C
+_080E6CB4: .4byte gSaveBlock2Ptr
_080E6CB8: .4byte 0x0000055c
_080E6CBC: .4byte gUnknown_20370C0
_080E6CC0: .4byte _080E6CC4
@@ -2623,7 +2623,7 @@ _080E6DD0: .4byte gUnknown_2023FE8
_080E6DD4:
adds r0, r4, 0
bl sub_80E7188
- ldr r1, _080E6DEC @ =gUnknown_300500C
+ ldr r1, _080E6DEC @ =gSaveBlock2Ptr
ldr r1, [r1]
lsls r2, r4, 1
ldr r3, _080E6DF0 @ =0x0000057c
@@ -2632,7 +2632,7 @@ _080E6DD4:
strh r0, [r1]
b _080E6E08
.align 2, 0
-_080E6DEC: .4byte gUnknown_300500C
+_080E6DEC: .4byte gSaveBlock2Ptr
_080E6DF0: .4byte 0x0000057c
_080E6DF4:
ldr r1, [r3]
@@ -2659,7 +2659,7 @@ sub_80E6E14: @ 80E6E14
push {r4,r5,lr}
movs r2, 0
ldr r5, _080E6E3C @ =gUnknown_203B0D4
- ldr r4, _080E6E40 @ =gUnknown_300500C
+ ldr r4, _080E6E40 @ =gSaveBlock2Ptr
ldr r3, _080E6E44 @ =0x0000056d
_080E6E1E:
adds r0, r2, r5
@@ -2677,14 +2677,14 @@ _080E6E1E:
bx r0
.align 2, 0
_080E6E3C: .4byte gUnknown_203B0D4
-_080E6E40: .4byte gUnknown_300500C
+_080E6E40: .4byte gSaveBlock2Ptr
_080E6E44: .4byte 0x0000056d
thumb_func_end sub_80E6E14
thumb_func_start sub_80E6E48
sub_80E6E48: @ 80E6E48
push {r4-r6,lr}
- ldr r6, _080E6E98 @ =gUnknown_300500C
+ ldr r6, _080E6E98 @ =gSaveBlock2Ptr
ldr r0, [r6]
ldr r1, _080E6E9C @ =0x0000055c
adds r0, r1
@@ -2723,7 +2723,7 @@ _080E6E76:
bhi _080E6EB8
b _080E6ECC
.align 2, 0
-_080E6E98: .4byte gUnknown_300500C
+_080E6E98: .4byte gSaveBlock2Ptr
_080E6E9C: .4byte 0x0000055c
_080E6EA0: .4byte 0x0000056a
_080E6EA4: .4byte 0x0000270f
@@ -2760,7 +2760,7 @@ _080E6EDC: .4byte 0x0000057a
thumb_func_start sub_80E6EE0
sub_80E6EE0: @ 80E6EE0
push {r4-r6,lr}
- ldr r0, _080E6F00 @ =gUnknown_300500C
+ ldr r0, _080E6F00 @ =gSaveBlock2Ptr
ldr r2, [r0]
adds r5, r2, 0
adds r5, 0xB0
@@ -2775,7 +2775,7 @@ sub_80E6EE0: @ 80E6EE0
ldr r4, _080E6F08 @ =gUnknown_84020C4
b _080E6F0E
.align 2, 0
-_080E6F00: .4byte gUnknown_300500C
+_080E6F00: .4byte gSaveBlock2Ptr
_080E6F04: .4byte 0x0000055c
_080E6F08: .4byte gUnknown_84020C4
_080E6F0C:
@@ -2796,7 +2796,7 @@ _080E6F0E:
strb r0, [r5, 0x1]
adds r0, r5, 0
adds r0, 0xC
- ldr r4, _080E6FA4 @ =gUnknown_300500C
+ ldr r4, _080E6FA4 @ =gSaveBlock2Ptr
ldr r1, [r4]
adds r1, 0xA
bl CopyUnalignedWord
@@ -2807,7 +2807,7 @@ _080E6F0E:
bl sub_80E7188
strh r0, [r5, 0x2]
movs r4, 0
- ldr r6, _080E6FA8 @ =gUnknown_3005008
+ ldr r6, _080E6FA8 @ =gSaveBlock1Ptr
ldr r3, _080E6FAC @ =0x00002cac
adds r2, r5, 0
adds r2, 0x10
@@ -2824,7 +2824,7 @@ _080E6F52:
ble _080E6F52
movs r4, 0
_080E6F68:
- ldr r6, _080E6FA4 @ =gUnknown_300500C
+ ldr r6, _080E6FA4 @ =gSaveBlock2Ptr
ldr r0, [r6]
ldr r1, _080E6FB0 @ =0x0000056d
adds r0, r1
@@ -2851,8 +2851,8 @@ _080E6F68:
bx r0
.align 2, 0
_080E6FA0: .4byte gUnknown_84020C4
-_080E6FA4: .4byte gUnknown_300500C
-_080E6FA8: .4byte gUnknown_3005008
+_080E6FA4: .4byte gSaveBlock2Ptr
+_080E6FA8: .4byte gSaveBlock1Ptr
_080E6FAC: .4byte 0x00002cac
_080E6FB0: .4byte 0x0000056d
_080E6FB4: .4byte gUnknown_2024220
@@ -2861,7 +2861,7 @@ _080E6FB4: .4byte gUnknown_2024220
thumb_func_start sub_80E6FB8
sub_80E6FB8: @ 80E6FB8
push {r4,r5,lr}
- ldr r0, _080E703C @ =gUnknown_300500C
+ ldr r0, _080E703C @ =gSaveBlock2Ptr
ldr r1, [r0]
ldr r2, _080E7040 @ =0x0000055c
adds r0, r1, r2
@@ -2892,7 +2892,7 @@ _080E6FEE:
bl sub_80E6EE0
_080E6FF2:
bl sub_80E712C
- ldr r4, _080E703C @ =gUnknown_300500C
+ ldr r4, _080E703C @ =gSaveBlock2Ptr
ldr r0, [r4]
ldr r1, _080E704C @ =gUnknown_2023E8A
ldrb r1, [r1]
@@ -2926,7 +2926,7 @@ _080E7016:
pop {r0}
bx r0
.align 2, 0
-_080E703C: .4byte gUnknown_300500C
+_080E703C: .4byte gSaveBlock2Ptr
_080E7040: .4byte 0x0000055c
_080E7044: .4byte gUnknown_20370C0
_080E7048: .4byte 0x00000564
@@ -2938,7 +2938,7 @@ _080E7054: .4byte 0x0000055e
thumb_func_start sub_80E7058
sub_80E7058: @ 80E7058
push {lr}
- bl sub_80008D8
+ bl DoSoftReset
pop {r0}
bx r0
thumb_func_end sub_80E7058
@@ -2948,7 +2948,7 @@ sub_80E7064: @ 80E7064
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _080E70F0 @ =gUnknown_300500C
+ ldr r0, _080E70F0 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r3, 0
movs r2, 0
@@ -2960,7 +2960,7 @@ _080E7076:
adds r2, 0x1
cmp r2, 0x27
bls _080E7076
- ldr r5, _080E70F0 @ =gUnknown_300500C
+ ldr r5, _080E70F0 @ =gSaveBlock2Ptr
ldr r1, [r5]
movs r2, 0xA8
lsls r2, 1
@@ -3019,7 +3019,7 @@ _080E70E0:
pop {r0}
bx r0
.align 2, 0
-_080E70F0: .4byte gUnknown_300500C
+_080E70F0: .4byte gSaveBlock2Ptr
thumb_func_end sub_80E7064
thumb_func_start SetBattleTowerRecordChecksum
@@ -3061,7 +3061,7 @@ _080E711E:
thumb_func_start sub_80E712C
sub_80E712C: @ 80E712C
push {r4,r5,lr}
- ldr r4, _080E7174 @ =gUnknown_300500C
+ ldr r4, _080E7174 @ =gSaveBlock2Ptr
ldr r0, [r4]
ldr r1, _080E7178 @ =0x0000048c
adds r0, r1
@@ -3097,7 +3097,7 @@ _080E715C:
pop {r0}
bx r0
.align 2, 0
-_080E7174: .4byte gUnknown_300500C
+_080E7174: .4byte gSaveBlock2Ptr
_080E7178: .4byte 0x0000048c
_080E717C: .4byte gUnknown_2023BE4
_080E7180: .4byte 0x0000048a
@@ -3108,7 +3108,7 @@ _080E7184: .4byte 0x00000494
sub_80E7188: @ 80E7188
push {lr}
lsls r0, 24
- ldr r1, _080E71C0 @ =gUnknown_300500C
+ ldr r1, _080E71C0 @ =gSaveBlock2Ptr
ldr r3, [r1]
lsrs r0, 23
ldr r2, _080E71C4 @ =0x00000564
@@ -3136,7 +3136,7 @@ _080E71BC:
pop {r1}
bx r1
.align 2, 0
-_080E71C0: .4byte gUnknown_300500C
+_080E71C0: .4byte gSaveBlock2Ptr
_080E71C4: .4byte 0x00000564
_080E71C8: .4byte 0x0000ffff
_080E71CC: .4byte 0x0000270f
@@ -3145,7 +3145,7 @@ _080E71CC: .4byte 0x0000270f
thumb_func_start sub_80E71D0
sub_80E71D0: @ 80E71D0
push {r4,r5,lr}
- ldr r4, _080E7214 @ =gUnknown_300500C
+ ldr r4, _080E7214 @ =gSaveBlock2Ptr
ldr r1, [r4]
ldr r2, _080E7218 @ =0x0000055c
adds r0, r1, r2
@@ -3176,7 +3176,7 @@ sub_80E71D0: @ 80E71D0
adds r4, r1
b _080E7240
.align 2, 0
-_080E7214: .4byte gUnknown_300500C
+_080E7214: .4byte gSaveBlock2Ptr
_080E7218: .4byte 0x0000055c
_080E721C: .4byte gUnknown_84020E6
_080E7220:
@@ -3206,7 +3206,7 @@ _080E7248: .4byte gUnknown_84020DA
thumb_func_start sub_80E724C
sub_80E724C: @ 80E724C
push {r4-r6,lr}
- ldr r5, _080E7288 @ =gUnknown_300500C
+ ldr r5, _080E7288 @ =gSaveBlock2Ptr
ldr r1, [r5]
ldr r2, _080E728C @ =0x0000055c
adds r0, r1, r2
@@ -3234,7 +3234,7 @@ sub_80E724C: @ 80E724C
strh r4, [r0]
b _080E72AA
.align 2, 0
-_080E7288: .4byte gUnknown_300500C
+_080E7288: .4byte gSaveBlock2Ptr
_080E728C: .4byte 0x0000055c
_080E7290: .4byte gUnknown_2021CD0
_080E7294: .4byte gUnknown_20370D0
@@ -3260,7 +3260,7 @@ _080E72B4: .4byte 0x0000055e
thumb_func_start sub_80E72B8
sub_80E72B8: @ 80E72B8
push {r4-r7,lr}
- ldr r0, _080E7334 @ =gUnknown_300500C
+ ldr r0, _080E7334 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _080E7338 @ =0x0000055c
adds r0, r1
@@ -3285,7 +3285,7 @@ _080E72D2:
movs r5, 0
adds r6, r4, 0
_080E72EA:
- ldr r0, _080E7334 @ =gUnknown_300500C
+ ldr r0, _080E7334 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _080E7340 @ =0x0000056d
adds r0, r1
@@ -3323,7 +3323,7 @@ _080E732E:
pop {r0}
bx r0
.align 2, 0
-_080E7334: .4byte gUnknown_300500C
+_080E7334: .4byte gSaveBlock2Ptr
_080E7338: .4byte 0x0000055c
_080E733C: .4byte gUnknown_20370D0
_080E7340: .4byte 0x0000056d
@@ -3336,7 +3336,7 @@ sub_80E7348: @ 80E7348
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r1, _080E7368 @ =gUnknown_300500C
+ ldr r1, _080E7368 @ =gSaveBlock2Ptr
ldr r2, [r1]
movs r0, 0x94
lsls r0, 3
@@ -3348,7 +3348,7 @@ sub_80E7348: @ 80E7348
ldr r4, _080E736C @ =gUnknown_84020C4
b _080E7372
.align 2, 0
-_080E7368: .4byte gUnknown_300500C
+_080E7368: .4byte gSaveBlock2Ptr
_080E736C: .4byte gUnknown_84020C4
_080E7370:
ldr r4, _080E7410 @ =gUnknown_84020C4
@@ -3377,7 +3377,7 @@ _080E7372:
strh r0, [r7, 0x2]
movs r6, 0x7
movs r4, 0
- ldr r0, _080E7414 @ =gUnknown_3005008
+ ldr r0, _080E7414 @ =gSaveBlock1Ptr
mov r8, r0
adds r5, r7, 0
adds r5, 0x10
@@ -3430,7 +3430,7 @@ _080E73E2:
bx r0
.align 2, 0
_080E7410: .4byte gUnknown_84020C4
-_080E7414: .4byte gUnknown_3005008
+_080E7414: .4byte gSaveBlock1Ptr
_080E7418: .4byte 0x00002cac
_080E741C: .4byte gUnknown_2024284
thumb_func_end sub_80E7348
@@ -3438,7 +3438,7 @@ _080E741C: .4byte gUnknown_2024284
thumb_func_start GetEreaderTrainerFrontSpriteId
GetEreaderTrainerFrontSpriteId: @ 80E7420
ldr r1, _080E7434 @ =gUnknown_82538A8
- ldr r0, _080E7438 @ =gUnknown_300500C
+ ldr r0, _080E7438 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r2, _080E743C @ =0x000004a1
adds r0, r2
@@ -3448,14 +3448,14 @@ GetEreaderTrainerFrontSpriteId: @ 80E7420
bx lr
.align 2, 0
_080E7434: .4byte gUnknown_82538A8
-_080E7438: .4byte gUnknown_300500C
+_080E7438: .4byte gSaveBlock2Ptr
_080E743C: .4byte 0x000004a1
thumb_func_end GetEreaderTrainerFrontSpriteId
thumb_func_start GetEreaderTrainerClassId
GetEreaderTrainerClassId: @ 80E7440
ldr r1, _080E7454 @ =gUnknown_825393E
- ldr r0, _080E7458 @ =gUnknown_300500C
+ ldr r0, _080E7458 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r2, _080E745C @ =0x000004a1
adds r0, r2
@@ -3465,7 +3465,7 @@ GetEreaderTrainerClassId: @ 80E7440
bx lr
.align 2, 0
_080E7454: .4byte gUnknown_825393E
-_080E7458: .4byte gUnknown_300500C
+_080E7458: .4byte gSaveBlock2Ptr
_080E745C: .4byte 0x000004a1
thumb_func_end GetEreaderTrainerClassId
@@ -3474,7 +3474,7 @@ sub_80E7460: @ 80E7460
push {r4,lr}
adds r3, r0, 0
movs r2, 0
- ldr r0, _080E7488 @ =gUnknown_300500C
+ ldr r0, _080E7488 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _080E748C @ =0x000004a4
adds r4, r0, r1
@@ -3493,7 +3493,7 @@ _080E746E:
pop {r0}
bx r0
.align 2, 0
-_080E7488: .4byte gUnknown_300500C
+_080E7488: .4byte gSaveBlock2Ptr
_080E748C: .4byte 0x000004a4
thumb_func_end sub_80E7460
@@ -3503,7 +3503,7 @@ sub_80E7490: @ 80E7490
ldr r2, _080E74C0 @ =gUnknown_20370D0
movs r0, 0
strh r0, [r2]
- ldr r1, _080E74C4 @ =gUnknown_300500C
+ ldr r1, _080E74C4 @ =gSaveBlock2Ptr
ldr r0, [r1]
movs r3, 0x94
lsls r3, 3
@@ -3525,7 +3525,7 @@ _080E74AA:
b _080E74F6
.align 2, 0
_080E74C0: .4byte gUnknown_20370D0
-_080E74C4: .4byte gUnknown_300500C
+_080E74C4: .4byte gSaveBlock2Ptr
_080E74C8:
movs r4, 0
movs r3, 0
@@ -3597,7 +3597,7 @@ _080E752A:
thumb_func_start sub_80E7538
sub_80E7538: @ 80E7538
push {lr}
- ldr r0, _080E754C @ =gUnknown_300500C
+ ldr r0, _080E754C @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r1, 0x96
lsls r1, 3
@@ -3606,7 +3606,7 @@ sub_80E7538: @ 80E7538
pop {r0}
bx r0
.align 2, 0
-_080E754C: .4byte gUnknown_300500C
+_080E754C: .4byte gSaveBlock2Ptr
thumb_func_end sub_80E7538
thumb_func_start sub_80E7550
@@ -3626,7 +3626,7 @@ _080E7568: .4byte gUnknown_2021D18
_080E756C:
cmp r0, 0x1
bne _080E7584
- ldr r0, _080E7580 @ =gUnknown_300500C
+ ldr r0, _080E7580 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r1, 0x99
lsls r1, 3
@@ -3634,9 +3634,9 @@ _080E756C:
bl sub_80E678C
b _080E7590
.align 2, 0
-_080E7580: .4byte gUnknown_300500C
+_080E7580: .4byte gSaveBlock2Ptr
_080E7584:
- ldr r0, _080E7594 @ =gUnknown_300500C
+ ldr r0, _080E7594 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _080E7598 @ =0x000004bc
adds r0, r1
@@ -3645,7 +3645,7 @@ _080E7590:
pop {r0}
bx r0
.align 2, 0
-_080E7594: .4byte gUnknown_300500C
+_080E7594: .4byte gSaveBlock2Ptr
_080E7598: .4byte 0x000004bc
thumb_func_end sub_80E7550
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index 8db717936..67a711dea 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -15,7 +15,7 @@ sub_80D08B8: @ 80D08B8
movs r0, 0x3C
bl AllocZeroed
str r0, [r5]
- ldr r1, _080D08E0 @ =gUnknown_30030F0
+ ldr r1, _080D08E0 @ =gMain
ldr r0, _080D08E4 @ =sub_80565A8
str r0, [r1, 0x4]
adds r0, r4, 0
@@ -25,7 +25,7 @@ sub_80D08B8: @ 80D08B8
bx r0
.align 2, 0
_080D08DC: .4byte gUnknown_2039A2C
-_080D08E0: .4byte gUnknown_30030F0
+_080D08E0: .4byte gMain
_080D08E4: .4byte sub_80565A8
thumb_func_end sub_80D08B8
@@ -4174,7 +4174,7 @@ Phase2_Mugshot_Func2: @ 80D28A8
movs r2, 0x20
bl LoadPalette
ldr r1, _080D295C @ =gUnknown_83FA754
- ldr r0, _080D2960 @ =gUnknown_300500C
+ ldr r0, _080D2960 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
lsls r0, 2
@@ -4235,7 +4235,7 @@ _080D2950: .4byte gUnknown_83FAC34
_080D2954: .4byte gUnknown_83F8F60
_080D2958: .4byte gUnknown_83FA740
_080D295C: .4byte gUnknown_83FA754
-_080D2960: .4byte gUnknown_300500C
+_080D2960: .4byte gSaveBlock2Ptr
_080D2964: .4byte sub_80D2E6C
thumb_func_end Phase2_Mugshot_Func2
@@ -4949,7 +4949,7 @@ sub_80D2EA4: @ 80D2EA4
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r0, _080D3008 @ =gUnknown_300500C
+ ldr r0, _080D3008 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
movs r1, 0x1
@@ -5078,7 +5078,7 @@ _080D2FF8: .4byte gUnknown_3003E58
_080D2FFC: .4byte gUnknown_83FA494
_080D3000: .4byte gUnknown_83FA4AE
_080D3004: .4byte gUnknown_201C000
-_080D3008: .4byte gUnknown_300500C
+_080D3008: .4byte gSaveBlock2Ptr
_080D300C: .4byte gUnknown_202063C
_080D3010: .4byte sub_80D301C
_080D3014: .4byte gUnknown_83FA49A
diff --git a/asm/berry.s b/asm/berry.s
index c45dec832..8b9593a2a 100644
--- a/asm/berry.s
+++ b/asm/berry.s
@@ -8,7 +8,7 @@
thumb_func_start sub_809C718
sub_809C718: @ 809C718
push {r4,r5,lr}
- ldr r2, _0809C778 @ =gUnknown_3005008
+ ldr r2, _0809C778 @ =gSaveBlock1Ptr
ldr r1, [r2]
ldr r0, _0809C77C @ =gUnknown_83DF7E8
ldr r3, _0809C780 @ =0x000030ec
@@ -56,7 +56,7 @@ _0809C740:
pop {r0}
bx r0
.align 2, 0
-_0809C778: .4byte gUnknown_3005008
+_0809C778: .4byte gSaveBlock1Ptr
_0809C77C: .4byte gUnknown_83DF7E8
_0809C780: .4byte 0x000030ec
_0809C784: .4byte 0x00003108
@@ -72,7 +72,7 @@ sub_809C794: @ 809C794
mov r1, sp
movs r0, 0
strh r0, [r1]
- ldr r0, _0809C7B8 @ =gUnknown_3005008
+ ldr r0, _0809C7B8 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _0809C7BC @ =0x000030ec
adds r1, r0
@@ -84,7 +84,7 @@ sub_809C794: @ 809C794
pop {r0}
bx r0
.align 2, 0
-_0809C7B8: .4byte gUnknown_3005008
+_0809C7B8: .4byte gSaveBlock1Ptr
_0809C7BC: .4byte 0x000030ec
_0809C7C0: .4byte 0x0100001a
thumb_func_end sub_809C794
@@ -95,7 +95,7 @@ sub_809C7C4: @ 809C7C4
adds r4, r0, 0
bl sub_809C794
adds r5, r4, 0
- ldr r0, _0809C824 @ =gUnknown_3005008
+ ldr r0, _0809C824 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r0, _0809C828 @ =0x000030ec
adds r4, r2, r0
@@ -139,7 +139,7 @@ _0809C7F0:
pop {r0}
bx r0
.align 2, 0
-_0809C824: .4byte gUnknown_3005008
+_0809C824: .4byte gSaveBlock1Ptr
_0809C828: .4byte 0x000030ec
_0809C82C: .4byte 0x00003108
_0809C830: .4byte 0x00000516
@@ -167,7 +167,7 @@ _0809C840:
thumb_func_start IsEnigmaBerryValid
IsEnigmaBerryValid: @ 809C854
push {r4,lr}
- ldr r4, _0809C888 @ =gUnknown_3005008
+ ldr r4, _0809C888 @ =gSaveBlock1Ptr
ldr r1, [r4]
movs r2, 0xC4
lsls r2, 6
@@ -192,7 +192,7 @@ IsEnigmaBerryValid: @ 809C854
movs r0, 0x1
b _0809C89A
.align 2, 0
-_0809C888: .4byte gUnknown_3005008
+_0809C888: .4byte gSaveBlock1Ptr
_0809C88C: .4byte 0x000030f6
_0809C890: .4byte 0x000030ec
_0809C894: .4byte 0x0000311c
@@ -214,12 +214,12 @@ sub_809C8A0: @ 809C8A0
bl IsEnigmaBerryValid
cmp r0, 0
beq _0809C8C4
- ldr r0, _0809C8BC @ =gUnknown_3005008
+ ldr r0, _0809C8BC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _0809C8C0 @ =0x000030ec
b _0809C8D8
.align 2, 0
-_0809C8BC: .4byte gUnknown_3005008
+_0809C8BC: .4byte gSaveBlock1Ptr
_0809C8C0: .4byte 0x000030ec
_0809C8C4:
subs r0, r4, 0x1
diff --git a/asm/berry_fix_program.s b/asm/berry_fix_program.s
index 0578cefb9..679a386e0 100644
--- a/asm/berry_fix_program.s
+++ b/asm/berry_fix_program.s
@@ -173,7 +173,7 @@ _0815F84C:
movs r0, 0x1
b _0815F9A4
_0815F856:
- ldr r0, _0815F870 @ =gUnknown_30030F0
+ ldr r0, _0815F870 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -186,9 +186,9 @@ _0815F864:
movs r0, 0x2
b _0815F9A4
.align 2, 0
-_0815F870: .4byte gUnknown_30030F0
+_0815F870: .4byte gMain
_0815F874:
- ldr r0, _0815F88C @ =gUnknown_30030F0
+ ldr r0, _0815F88C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -201,7 +201,7 @@ _0815F882:
movs r0, 0x4
b _0815F9A4
.align 2, 0
-_0815F88C: .4byte gUnknown_30030F0
+_0815F88C: .4byte gMain
_0815F890:
ldr r0, _0815F8B4 @ =gUnknown_3005EF0
ldr r1, _0815F8B8 @ =gMultiBootProgram_BerryGlitchFix_Start
@@ -305,7 +305,7 @@ _0815F96A:
movs r0, 0x8
b _0815F9A4
_0815F96E:
- ldr r0, _0815F988 @ =gUnknown_30030F0
+ ldr r0, _0815F988 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -313,17 +313,17 @@ _0815F96E:
beq _0815F9A6
adds r0, r2, 0
bl DestroyTask
- bl sub_80008D8
+ bl DoSoftReset
b _0815F9A6
.align 2, 0
-_0815F988: .4byte gUnknown_30030F0
+_0815F988: .4byte gMain
_0815F98C:
movs r0, 0x4
bl sub_815F6E0
movs r0, 0xA
b _0815F9A4
_0815F996:
- ldr r0, _0815F9B0 @ =gUnknown_30030F0
+ ldr r0, _0815F9B0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -338,7 +338,7 @@ _0815F9A6:
pop {r0}
bx r0
.align 2, 0
-_0815F9B0: .4byte gUnknown_30030F0
+_0815F9B0: .4byte gMain
thumb_func_end sub_815F7F0
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index 1157a427b..feb1333b0 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -144,7 +144,7 @@ _0813CE56:
sub_813CE5C: @ 813CE5C
push {r4,lr}
sub sp, 0x4
- ldr r0, _0813CE7C @ =gUnknown_30030F0
+ ldr r0, _0813CE7C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -159,7 +159,7 @@ _0813CE70:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0813CE7C: .4byte gUnknown_30030F0
+_0813CE7C: .4byte gMain
_0813CE80: .4byte _0813CE84
.align 2, 0
_0813CE84:
@@ -300,7 +300,7 @@ _0813CFBE:
movs r3, 0
bl BeginNormalPaletteFade
_0813CFD2:
- ldr r1, _0813CFE4 @ =gUnknown_30030F0
+ ldr r1, _0813CFE4 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -309,7 +309,7 @@ _0813CFD2:
strb r0, [r1]
b _0813D000
.align 2, 0
-_0813CFE4: .4byte gUnknown_30030F0
+_0813CFE4: .4byte gMain
_0813CFE8:
ldr r0, _0813CFF8 @ =sub_813CE1C
bl SetVBlankCallback
@@ -482,7 +482,7 @@ _0813D14C:
movs r1, 0
movs r2, 0x60
bl LoadCompressedPalette
- ldr r0, _0813D170 @ =gUnknown_300500C
+ ldr r0, _0813D170 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -494,7 +494,7 @@ _0813D14C:
b _0813D17E
.align 2, 0
_0813D16C: .4byte gUnknown_8E85BA4
-_0813D170: .4byte gUnknown_300500C
+_0813D170: .4byte gSaveBlock2Ptr
_0813D174: .4byte gUnknown_8E85BF4
_0813D178:
ldr r0, _0813D18C @ =gUnknown_84644A8
@@ -1695,7 +1695,7 @@ _0813DA9E:
subs r2, r4, 0x2
adds r1, r4, 0
bl get_coro_args_x18_x1A
- ldr r0, _0813DAE4 @ =gUnknown_30030F0
+ ldr r0, _0813DAE4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
@@ -1716,7 +1716,7 @@ _0813DA9E:
_0813DAD8: .4byte gUnknown_3005098
_0813DADC: .4byte gUnknown_2037AB8
_0813DAE0: .4byte gUnknown_203F37A
-_0813DAE4: .4byte gUnknown_30030F0
+_0813DAE4: .4byte gMain
_0813DAE8: .4byte gUnknown_203AD30
_0813DAEC:
movs r0, 0x2
@@ -2352,7 +2352,7 @@ sub_813E010: @ 813E010
.align 2, 0
_0813E044: .4byte gUnknown_3005098
_0813E048:
- ldr r0, _0813E08C @ =gUnknown_30030F0
+ ldr r0, _0813E08C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2378,7 +2378,7 @@ _0813E048:
bl sub_813DF54
b _0813E0D4
.align 2, 0
-_0813E08C: .4byte gUnknown_30030F0
+_0813E08C: .4byte gMain
_0813E090:
movs r0, 0x2
ands r0, r1
@@ -2481,7 +2481,7 @@ sub_813E164: @ 813E164
lsls r0, 3
ldr r1, _0813E1EC @ =gUnknown_3005098
adds r5, r0, r1
- ldr r0, _0813E1F0 @ =gUnknown_30030F0
+ ldr r0, _0813E1F0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2531,7 +2531,7 @@ _0813E1E4:
bx r0
.align 2, 0
_0813E1EC: .4byte gUnknown_3005098
-_0813E1F0: .4byte gUnknown_30030F0
+_0813E1F0: .4byte gMain
_0813E1F4: .4byte gUnknown_203AD30
_0813E1F8: .4byte gUnknown_203F37A
_0813E1FC: .4byte gUnknown_3005E70
@@ -2611,7 +2611,7 @@ sub_813E290: @ 813E290
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0813E2B4 @ =gUnknown_30030F0
+ ldr r0, _0813E2B4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2626,7 +2626,7 @@ _0813E2AE:
pop {r0}
bx r0
.align 2, 0
-_0813E2B4: .4byte gUnknown_30030F0
+_0813E2B4: .4byte gMain
thumb_func_end sub_813E290
thumb_func_start sub_813E2B8
@@ -3117,7 +3117,7 @@ sub_813E690: @ 813E690
.align 2, 0
_0813E6E0: .4byte gUnknown_3005098
_0813E6E4:
- ldr r0, _0813E714 @ =gUnknown_30030F0
+ ldr r0, _0813E714 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3136,7 +3136,7 @@ _0813E6E4:
bl sub_813E4E4
b _0813E762
.align 2, 0
-_0813E714: .4byte gUnknown_30030F0
+_0813E714: .4byte gMain
_0813E718:
movs r0, 0x2
ands r0, r1
@@ -3251,7 +3251,7 @@ sub_813E7F0: @ 813E7F0
mov r2, r8
ldrh r1, [r2, 0x10]
bl sub_809A1D8
- ldr r7, _0813E8C4 @ =gUnknown_3005008
+ ldr r7, _0813E8C4 @ =gSaveBlock1Ptr
ldr r4, [r7]
movs r3, 0xA4
lsls r3, 2
@@ -3320,7 +3320,7 @@ sub_813E7F0: @ 813E7F0
.align 2, 0
_0813E8BC: .4byte gUnknown_3005098
_0813E8C0: .4byte gUnknown_203AD30
-_0813E8C4: .4byte gUnknown_3005008
+_0813E8C4: .4byte gSaveBlock1Ptr
_0813E8C8: .4byte gUnknown_203F37A
_0813E8CC: .4byte gUnknown_3005E70
_0813E8D0: .4byte sub_813E8D4
@@ -3331,7 +3331,7 @@ sub_813E8D4: @ 813E8D4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0813E90C @ =gUnknown_30030F0
+ ldr r0, _0813E90C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3355,7 +3355,7 @@ _0813E906:
pop {r0}
bx r0
.align 2, 0
-_0813E90C: .4byte gUnknown_30030F0
+_0813E90C: .4byte gMain
thumb_func_end sub_813E8D4
thumb_func_start sub_813E910
@@ -3726,7 +3726,7 @@ sub_813EBD4: @ 813EBD4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0813EC04 @ =gUnknown_3005008
+ ldr r0, _0813EC04 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -3741,7 +3741,7 @@ sub_813EBD4: @ 813EBD4
pop {r0}
bx r0
.align 2, 0
-_0813EC04: .4byte gUnknown_3005008
+_0813EC04: .4byte gSaveBlock1Ptr
thumb_func_end sub_813EBD4
thumb_func_start sub_813EC08
diff --git a/asm/bike.s b/asm/bike.s
index 6760c843d..b987f96fb 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -90,7 +90,7 @@ sub_80BD100: @ 80BD100
bl sub_805A1DC
cmp r0, 0x1
bne _080BD176
- ldr r0, _080BD164 @ =gUnknown_30030F0
+ ldr r0, _080BD164 @ =gMain
ldrh r1, [r0, 0x2C]
movs r2, 0x2
movs r0, 0x2
@@ -107,7 +107,7 @@ sub_80BD100: @ 80BD100
.align 2, 0
_080BD15C: .4byte gUnknown_2037078
_080BD160: .4byte gUnknown_2036E38
-_080BD164: .4byte gUnknown_30030F0
+_080BD164: .4byte gMain
_080BD168:
ldrb r0, [r6]
cmp r0, 0
diff --git a/asm/braille_text.s b/asm/braille_text.s
index 3a46d7d8e..1f1d5f897 100644
--- a/asm/braille_text.s
+++ b/asm/braille_text.s
@@ -33,7 +33,7 @@ _0814F8A4:
.4byte _0814FC70
.4byte _0814FC82
_0814F8C0:
- ldr r2, _0814F914 @ =gUnknown_30030F0
+ ldr r2, _0814F914 @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x3
ands r0, r1
@@ -78,7 +78,7 @@ _0814F904:
strb r0, [r6, 0x1E]
b _0814FB42
.align 2, 0
-_0814F914: .4byte gUnknown_30030F0
+_0814F914: .4byte gMain
_0814F918: .4byte gUnknown_3003E50
_0814F91C:
ldr r2, _0814F92C @ =gUnknown_3003E50
@@ -457,7 +457,7 @@ _0814FBFC:
cmp r2, 0
beq _0814FC6C
ldr r4, _0814FC30 @ =gUnknown_846FB08
- ldr r5, _0814FC34 @ =gUnknown_300500C
+ ldr r5, _0814FC34 @ =gSaveBlock2Ptr
ldr r0, [r5]
ldrb r0, [r0, 0x14]
lsls r1, r0, 29
@@ -479,7 +479,7 @@ _0814FBFC:
b _0814FC62
.align 2, 0
_0814FC30: .4byte gUnknown_846FB08
-_0814FC34: .4byte gUnknown_300500C
+_0814FC34: .4byte gSaveBlock2Ptr
_0814FC38:
ldrb r0, [r6, 0x4]
lsrs r1, 29
diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s
index 30655defd..1f84ec684 100644
--- a/asm/buy_menu_helpers.s
+++ b/asm/buy_menu_helpers.s
@@ -54,7 +54,7 @@ _0813F6CC: .4byte gUnknown_846483C
thumb_func_start sub_813F6D0
sub_813F6D0: @ 813F6D0
push {lr}
- ldr r0, _0813F6F0 @ =gUnknown_3005008
+ ldr r0, _0813F6F0 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -68,7 +68,7 @@ sub_813F6D0: @ 813F6D0
pop {r0}
bx r0
.align 2, 0
-_0813F6F0: .4byte gUnknown_3005008
+_0813F6F0: .4byte gSaveBlock1Ptr
thumb_func_end sub_813F6D0
thumb_func_start sub_813F6F4
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 9322fb528..773e064ea 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -232,7 +232,7 @@ sub_80808F0: @ 80808F0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08080924 @ =gUnknown_30030F0
+ ldr r0, _08080924 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -255,7 +255,7 @@ sub_80808F0: @ 80808F0
movs r0, 0x1
b _08080936
.align 2, 0
-_08080924: .4byte gUnknown_30030F0
+_08080924: .4byte gMain
_08080928: .4byte gUnknown_202271A
_0808092C: .4byte gUnknown_3005090
_08080930: .4byte sub_8080FB4
@@ -279,7 +279,7 @@ sub_808093C: @ 808093C
movs r0, 0x1
bl SetSuppressLinkErrorMessage
_08080952:
- ldr r0, _08080964 @ =gUnknown_30030F0
+ ldr r0, _08080964 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -288,7 +288,7 @@ _08080952:
movs r0, 0
b _0808097E
.align 2, 0
-_08080964: .4byte gUnknown_30030F0
+_08080964: .4byte gMain
_08080968:
ldr r1, _08080984 @ =gUnknown_202271A
movs r0, 0
@@ -545,7 +545,7 @@ sub_8080B20: @ 8080B20
adds r0, r4, 0
adds r1, r6, 0
bl sub_8080808
- ldr r0, _08080BB8 @ =gUnknown_30030F0
+ ldr r0, _08080BB8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -580,7 +580,7 @@ _08080BA8:
bx r0
.align 2, 0
_08080BB4: .4byte gUnknown_3005098
-_08080BB8: .4byte gUnknown_30030F0
+_08080BB8: .4byte gMain
_08080BBC: .4byte gUnknown_2021CD0
_08080BC0: .4byte gUnknown_81BC50D
_08080BC4: .4byte sub_8080BC8
@@ -615,7 +615,7 @@ sub_8080BC8: @ 8080BC8
lsls r0, 24
cmp r4, r0
bne _08080C16
- ldr r0, _08080C2C @ =gUnknown_30030F0
+ ldr r0, _08080C2C @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x2
ands r0, r1
@@ -633,7 +633,7 @@ _08080C16:
str r1, [r0]
b _08080C5C
.align 2, 0
-_08080C2C: .4byte gUnknown_30030F0
+_08080C2C: .4byte gMain
_08080C30: .4byte gUnknown_81BC4CE
_08080C34: .4byte gUnknown_3005090
_08080C38: .4byte sub_8080AD0
@@ -1639,7 +1639,7 @@ _0808141A:
strh r0, [r1]
ldr r0, _08081448 @ =sub_800FD9C
bl SetMainCallback2
- ldr r1, _0808144C @ =gUnknown_30030F0
+ ldr r1, _0808144C @ =gMain
ldr r0, _08081450 @ =sub_8081668
str r0, [r1, 0x8]
adds r0, r5, 0
@@ -1652,7 +1652,7 @@ _0808143A:
_08081440: .4byte gUnknown_2022B4C
_08081444: .4byte gUnknown_20386AE
_08081448: .4byte sub_800FD9C
-_0808144C: .4byte gUnknown_30030F0
+_0808144C: .4byte gMain
_08081450: .4byte sub_8081668
thumb_func_end sub_8081318
@@ -1862,7 +1862,7 @@ _080815EA:
strh r0, [r1]
ldr r0, _08081618 @ =sub_800FD9C
bl SetMainCallback2
- ldr r1, _0808161C @ =gUnknown_30030F0
+ ldr r1, _0808161C @ =gMain
ldr r0, _08081620 @ =sub_8081668
str r0, [r1, 0x8]
adds r0, r4, 0
@@ -1875,14 +1875,14 @@ _0808160A:
_08081610: .4byte gUnknown_2022B4C
_08081614: .4byte gUnknown_20386AE
_08081618: .4byte sub_800FD9C
-_0808161C: .4byte gUnknown_30030F0
+_0808161C: .4byte gMain
_08081620: .4byte sub_8081668
thumb_func_end sub_8081454
thumb_func_start sub_8081624
sub_8081624: @ 8081624
push {r4,lr}
- ldr r0, _0808163C @ =gUnknown_30030F0
+ ldr r0, _0808163C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r4, r0, r1
@@ -1893,7 +1893,7 @@ sub_8081624: @ 8081624
beq _0808164C
b _0808165C
.align 2, 0
-_0808163C: .4byte gUnknown_30030F0
+_0808163C: .4byte gMain
_08081640:
bl sub_800AAC0
ldrb r0, [r4]
@@ -1989,15 +1989,15 @@ _0808170A:
bl InUnionRoom
cmp r0, 0x1
bne _08081724
- ldr r1, _0808171C @ =gUnknown_30030F0
+ ldr r1, _0808171C @ =gMain
ldr r0, _08081720 @ =sub_8081624
b _08081728
.align 2, 0
_08081718: .4byte gUnknown_202273C
-_0808171C: .4byte gUnknown_30030F0
+_0808171C: .4byte gMain
_08081720: .4byte sub_8081624
_08081724:
- ldr r1, _08081738 @ =gUnknown_30030F0
+ ldr r1, _08081738 @ =gMain
ldr r0, _0808173C @ =c2_8056854
_08081728:
str r0, [r1, 0x8]
@@ -2007,7 +2007,7 @@ _08081728:
pop {r0}
bx r0
.align 2, 0
-_08081738: .4byte gUnknown_30030F0
+_08081738: .4byte gMain
_0808173C: .4byte c2_8056854
_08081740: .4byte sub_806FB7C
thumb_func_end sub_8081668
diff --git a/asm/cereader_tool.s b/asm/cereader_tool.s
index 5e677c3f6..8d2beb17d 100644
--- a/asm/cereader_tool.s
+++ b/asm/cereader_tool.s
@@ -8,7 +8,7 @@
thumb_func_start sub_815D654
sub_815D654: @ 815D654
push {lr}
- ldr r0, _0815D674 @ =gUnknown_3005008
+ ldr r0, _0815D674 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _0815D678 @ =0x00003d41
adds r0, r1
@@ -23,7 +23,7 @@ sub_815D654: @ 815D654
pop {r1}
bx r1
.align 2, 0
-_0815D674: .4byte gUnknown_3005008
+_0815D674: .4byte gSaveBlock1Ptr
_0815D678: .4byte 0x00003d41
thumb_func_end sub_815D654
diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s
index 14572b868..33e7e386b 100644
--- a/asm/clear_save_data_screen.s
+++ b/asm/clear_save_data_screen.s
@@ -311,7 +311,7 @@ _080F57D4:
ldr r0, [r5]
bl Free
str r4, [r5]
- bl sub_80008D8
+ bl DoSoftReset
_080F57FE:
add sp, 0x4
pop {r4-r6}
diff --git a/asm/coins.s b/asm/coins.s
index 131a21ff7..54649c141 100644
--- a/asm/coins.s
+++ b/asm/coins.s
@@ -7,12 +7,12 @@
thumb_func_start sub_80D0554
sub_80D0554: @ 80D0554
- ldr r0, _080D0574 @ =gUnknown_3005008
+ ldr r0, _080D0574 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0xA5
lsls r0, 2
adds r1, r0
- ldr r0, _080D0578 @ =gUnknown_300500C
+ ldr r0, _080D0578 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r2, 0xF2
lsls r2, 4
@@ -24,17 +24,17 @@ sub_80D0554: @ 80D0554
lsrs r0, 16
bx lr
.align 2, 0
-_080D0574: .4byte gUnknown_3005008
-_080D0578: .4byte gUnknown_300500C
+_080D0574: .4byte gSaveBlock1Ptr
+_080D0578: .4byte gSaveBlock2Ptr
thumb_func_end sub_80D0554
thumb_func_start sub_80D057C
sub_80D057C: @ 80D057C
lsls r0, 16
lsrs r0, 16
- ldr r1, _080D059C @ =gUnknown_3005008
+ ldr r1, _080D059C @ =gSaveBlock1Ptr
ldr r2, [r1]
- ldr r1, _080D05A0 @ =gUnknown_300500C
+ ldr r1, _080D05A0 @ =gSaveBlock2Ptr
ldr r1, [r1]
movs r3, 0xF2
lsls r3, 4
@@ -47,8 +47,8 @@ sub_80D057C: @ 80D057C
strh r0, [r2]
bx lr
.align 2, 0
-_080D059C: .4byte gUnknown_3005008
-_080D05A0: .4byte gUnknown_300500C
+_080D059C: .4byte gSaveBlock1Ptr
+_080D05A0: .4byte gSaveBlock2Ptr
thumb_func_end sub_80D057C
thumb_func_start sub_80D05A4
diff --git a/asm/credits.s b/asm/credits.s
index fc3afa96b..5a7cbd9c0 100644
--- a/asm/credits.s
+++ b/asm/credits.s
@@ -909,7 +909,7 @@ _080F410A:
.align 2, 0
_080F4114: .4byte gUnknown_203AB40
_080F4118:
- ldr r0, _080F4140 @ =gUnknown_30030F0
+ ldr r0, _080F4140 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -930,7 +930,7 @@ _080F413C:
strb r0, [r1]
b _080F3D06
.align 2, 0
-_080F4140: .4byte gUnknown_30030F0
+_080F4140: .4byte gMain
_080F4144: .4byte 0x00007fff
_080F4148: .4byte gUnknown_203AB40
_080F414C:
@@ -1966,7 +1966,7 @@ _080F49A8:
_080F49D0: .4byte gUnknown_841431C
_080F49D4: .4byte 0x0000ffff
_080F49D8:
- ldr r0, _080F4A0C @ =gUnknown_300500C
+ ldr r0, _080F4A0C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -1991,7 +1991,7 @@ _080F49D8:
ldr r0, _080F4A1C @ =gUnknown_8410E10
b _080F4A36
.align 2, 0
-_080F4A0C: .4byte gUnknown_300500C
+_080F4A0C: .4byte gSaveBlock2Ptr
_080F4A10: .4byte gUnknown_8410E30
_080F4A14: .4byte 0xffff0000
_080F4A18: .4byte 0x0000ffff
diff --git a/asm/daycare.s b/asm/daycare.s
index 177c13035..abb851749 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -168,7 +168,7 @@ StorePokemonInDaycare: @ 80454CC
beq _08045524
adds r0, r4, 0
adds r0, 0x74
- ldr r1, _08045550 @ =gUnknown_300500C
+ ldr r1, _08045550 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
adds r1, r4, 0
@@ -180,7 +180,7 @@ StorePokemonInDaycare: @ 80454CC
bl GetMonData
lsls r0, 24
lsrs r0, 24
- ldr r1, _08045554 @ =gUnknown_3005008
+ ldr r1, _08045554 @ =gSaveBlock1Ptr
ldr r1, [r1]
lsls r2, r0, 3
adds r2, r0
@@ -217,8 +217,8 @@ _08045524:
pop {r0}
bx r0
.align 2, 0
-_08045550: .4byte gUnknown_300500C
-_08045554: .4byte gUnknown_3005008
+_08045550: .4byte gSaveBlock2Ptr
+_08045554: .4byte gSaveBlock1Ptr
_08045558: .4byte 0x00002cd0
thumb_func_end StorePokemonInDaycare
@@ -252,7 +252,7 @@ StoreSelectedPokemonInDaycare: @ 8045580
muls r0, r1
ldr r1, _080455A4 @ =gUnknown_2024284
adds r0, r1
- ldr r1, _080455A8 @ =gUnknown_3005008
+ ldr r1, _080455A8 @ =gSaveBlock1Ptr
ldr r1, [r1]
movs r2, 0xBE
lsls r2, 6
@@ -262,7 +262,7 @@ StoreSelectedPokemonInDaycare: @ 8045580
bx r0
.align 2, 0
_080455A4: .4byte gUnknown_2024284
-_080455A8: .4byte gUnknown_3005008
+_080455A8: .4byte gSaveBlock1Ptr
thumb_func_end StoreSelectedPokemonInDaycare
thumb_func_start ShiftDaycareSlots
@@ -453,7 +453,7 @@ TakeSelectedPokemonMonFromDaycareShiftSlots: @ 8045700
thumb_func_start TakePokemonFromDaycare
TakePokemonFromDaycare: @ 8045728
push {lr}
- ldr r0, _08045744 @ =gUnknown_3005008
+ ldr r0, _08045744 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -466,7 +466,7 @@ TakePokemonFromDaycare: @ 8045728
pop {r1}
bx r1
.align 2, 0
-_08045744: .4byte gUnknown_3005008
+_08045744: .4byte gSaveBlock1Ptr
_08045748: .4byte gUnknown_20370C0
thumb_func_end TakePokemonFromDaycare
@@ -593,7 +593,7 @@ GetDaycareCostForMon: @ 8045820
thumb_func_start GetDaycareCost
GetDaycareCost: @ 8045838
push {lr}
- ldr r0, _08045854 @ =gUnknown_3005008
+ ldr r0, _08045854 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -606,7 +606,7 @@ GetDaycareCost: @ 8045838
pop {r0}
bx r0
.align 2, 0
-_08045854: .4byte gUnknown_3005008
+_08045854: .4byte gSaveBlock1Ptr
_08045858: .4byte gUnknown_20370C0
_0804585C: .4byte gUnknown_20370C2
thumb_func_end GetDaycareCost
@@ -615,7 +615,7 @@ _0804585C: .4byte gUnknown_20370C2
sub_8045860: @ 8045860
lsls r0, 16
lsrs r0, 16
- ldr r1, _08045888 @ =gUnknown_3005008
+ ldr r1, _08045888 @ =gSaveBlock1Ptr
ldr r2, [r1]
ldr r1, _0804588C @ =0x00003008
adds r3, r2, r1
@@ -634,7 +634,7 @@ sub_8045860: @ 8045860
str r1, [r2]
bx lr
.align 2, 0
-_08045888: .4byte gUnknown_3005008
+_08045888: .4byte gSaveBlock1Ptr
_0804588C: .4byte 0x00003008
_08045890: .4byte 0x00003094
_08045894: .4byte 0x00003d20
@@ -643,7 +643,7 @@ _08045894: .4byte 0x00003d20
thumb_func_start GetNumLevelsGainedFromDaycare
GetNumLevelsGainedFromDaycare: @ 8045898
push {r4-r6,lr}
- ldr r6, _080458C0 @ =gUnknown_3005008
+ ldr r6, _080458C0 @ =gSaveBlock1Ptr
ldr r5, _080458C4 @ =gUnknown_20370C0
ldrh r0, [r5]
movs r4, 0x8C
@@ -661,7 +661,7 @@ GetNumLevelsGainedFromDaycare: @ 8045898
movs r0, 0
b _080458E0
.align 2, 0
-_080458C0: .4byte gUnknown_3005008
+_080458C0: .4byte gSaveBlock1Ptr
_080458C4: .4byte gUnknown_20370C0
_080458C8:
ldrh r0, [r5]
@@ -879,7 +879,7 @@ _08045A44: .4byte 0x00000266
thumb_func_start sub_8045A48
sub_8045A48: @ 8045A48
push {lr}
- ldr r0, _08045A5C @ =gUnknown_3005008
+ ldr r0, _08045A5C @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -888,13 +888,13 @@ sub_8045A48: @ 8045A48
pop {r0}
bx r0
.align 2, 0
-_08045A5C: .4byte gUnknown_3005008
+_08045A5C: .4byte gSaveBlock1Ptr
thumb_func_end sub_8045A48
thumb_func_start sub_8045A60
sub_8045A60: @ 8045A60
push {lr}
- ldr r0, _08045A74 @ =gUnknown_3005008
+ ldr r0, _08045A74 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -903,7 +903,7 @@ sub_8045A60: @ 8045A60
pop {r0}
bx r0
.align 2, 0
-_08045A74: .4byte gUnknown_3005008
+_08045A74: .4byte gSaveBlock1Ptr
thumb_func_end sub_8045A60
thumb_func_start RemoveIVIndexFromList
@@ -1570,7 +1570,7 @@ RemoveEggFromDayCare: @ 8045F70
thumb_func_start RejectEggFromDayCare
RejectEggFromDayCare: @ 8045F88
push {lr}
- ldr r0, _08045F9C @ =gUnknown_3005008
+ ldr r0, _08045F9C @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -1579,7 +1579,7 @@ RejectEggFromDayCare: @ 8045F88
pop {r0}
bx r0
.align 2, 0
-_08045F9C: .4byte gUnknown_3005008
+_08045F9C: .4byte gSaveBlock1Ptr
thumb_func_end RejectEggFromDayCare
thumb_func_start sub_8045FA0
@@ -1972,7 +1972,7 @@ _080462A8: .4byte gUnknown_8254795
thumb_func_start GiveEggFromDaycare
GiveEggFromDaycare: @ 80462AC
push {lr}
- ldr r0, _080462C0 @ =gUnknown_3005008
+ ldr r0, _080462C0 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -1981,7 +1981,7 @@ GiveEggFromDaycare: @ 80462AC
pop {r0}
bx r0
.align 2, 0
-_080462C0: .4byte gUnknown_3005008
+_080462C0: .4byte gSaveBlock1Ptr
thumb_func_end GiveEggFromDaycare
thumb_func_start sub_80462C4
@@ -2111,7 +2111,7 @@ _080463B4: .4byte gUnknown_2024029
thumb_func_start sub_80463B8
sub_80463B8: @ 80463B8
push {r4,lr}
- ldr r4, _080463F0 @ =gUnknown_3005008
+ ldr r4, _080463F0 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r1, _080463F4 @ =0x00003c98
adds r0, r1
@@ -2137,7 +2137,7 @@ _080463D8:
pop {r1}
bx r1
.align 2, 0
-_080463F0: .4byte gUnknown_3005008
+_080463F0: .4byte gSaveBlock1Ptr
_080463F4: .4byte 0x00003c98
_080463F8: .4byte 0x00003d20
thumb_func_end sub_80463B8
@@ -2226,7 +2226,7 @@ _08046498: .4byte gUnknown_2021CD0
thumb_func_start GetDaycareMonNicknames
GetDaycareMonNicknames: @ 804649C
push {lr}
- ldr r0, _080464B0 @ =gUnknown_3005008
+ ldr r0, _080464B0 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -2235,13 +2235,13 @@ GetDaycareMonNicknames: @ 804649C
pop {r0}
bx r0
.align 2, 0
-_080464B0: .4byte gUnknown_3005008
+_080464B0: .4byte gSaveBlock1Ptr
thumb_func_end GetDaycareMonNicknames
thumb_func_start sub_80464B4
sub_80464B4: @ 80464B4
push {r4,lr}
- ldr r4, _080464D0 @ =gUnknown_3005008
+ ldr r4, _080464D0 @ =gSaveBlock1Ptr
ldr r0, [r4]
movs r1, 0xBE
lsls r1, 6
@@ -2253,7 +2253,7 @@ sub_80464B4: @ 80464B4
movs r0, 0x1
b _080464F2
.align 2, 0
-_080464D0: .4byte gUnknown_3005008
+_080464D0: .4byte gSaveBlock1Ptr
_080464D4:
ldr r0, [r4]
movs r1, 0xBE
@@ -2279,7 +2279,7 @@ _080464F2:
thumb_func_start GetDaycarePokemonCount
GetDaycarePokemonCount: @ 80464F8
push {lr}
- ldr r0, _08046518 @ =gUnknown_3005008
+ ldr r0, _08046518 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -2294,7 +2294,7 @@ _08046512:
pop {r1}
bx r1
.align 2, 0
-_08046518: .4byte gUnknown_3005008
+_08046518: .4byte gSaveBlock1Ptr
thumb_func_end GetDaycarePokemonCount
thumb_func_start EggGroupsOverlap
@@ -2484,7 +2484,7 @@ _0804665C:
thumb_func_start GetDaycareCompatibilityScoreFromSave
GetDaycareCompatibilityScoreFromSave: @ 804666C
push {lr}
- ldr r0, _08046684 @ =gUnknown_3005008
+ ldr r0, _08046684 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -2495,7 +2495,7 @@ GetDaycareCompatibilityScoreFromSave: @ 804666C
pop {r1}
bx r1
.align 2, 0
-_08046684: .4byte gUnknown_3005008
+_08046684: .4byte gSaveBlock1Ptr
thumb_func_end GetDaycareCompatibilityScoreFromSave
thumb_func_start SetDaycareCompatibilityString
@@ -2934,7 +2934,7 @@ DaycarePrintMonInfo: @ 80469B4
lsrs r5, r2, 24
cmp r6, 0x1
bhi _080469EE
- ldr r0, _080469F8 @ =gUnknown_3005008
+ ldr r0, _080469F8 @ =gSaveBlock1Ptr
mov r8, r0
ldr r0, [r0]
movs r4, 0xBE
@@ -2958,7 +2958,7 @@ _080469EE:
pop {r0}
bx r0
.align 2, 0
-_080469F8: .4byte gUnknown_3005008
+_080469F8: .4byte gSaveBlock1Ptr
thumb_func_end DaycarePrintMonInfo
thumb_func_start Task_HandleDaycareLevelMenuInput
@@ -2975,7 +2975,7 @@ Task_HandleDaycareLevelMenuInput: @ 80469FC
ldrb r0, [r4, 0x8]
bl ListMenuHandleInput
adds r1, r0, 0
- ldr r0, _08046A30 @ =gUnknown_30030F0
+ ldr r0, _08046A30 @ =gMain
ldrh r2, [r0, 0x2E]
movs r0, 0x1
ands r0, r2
@@ -2988,7 +2988,7 @@ Task_HandleDaycareLevelMenuInput: @ 80469FC
b _08046A46
.align 2, 0
_08046A2C: .4byte gUnknown_3005090
-_08046A30: .4byte gUnknown_30030F0
+_08046A30: .4byte gMain
_08046A34:
ldr r0, _08046A3C @ =gUnknown_20370D0
strh r1, [r0]
@@ -3105,13 +3105,13 @@ _08046B24: .4byte gUnknown_3005090
ChooseSendDaycareMon: @ 8046B28
push {lr}
bl sub_8128370
- ldr r1, _08046B38 @ =gUnknown_30030F0
+ ldr r1, _08046B38 @ =gMain
ldr r0, _08046B3C @ =c2_exit_to_overworld_2_switch
str r0, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
-_08046B38: .4byte gUnknown_30030F0
+_08046B38: .4byte gMain
_08046B3C: .4byte c2_exit_to_overworld_2_switch
thumb_func_end ChooseSendDaycareMon
@@ -3125,7 +3125,7 @@ sub_8046B40: @ 8046B40
muls r0, r1
ldr r1, _08046B64 @ =gUnknown_2024284
adds r0, r1
- ldr r1, _08046B68 @ =gUnknown_3005008
+ ldr r1, _08046B68 @ =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, _08046B6C @ =0x00003c98
adds r1, r2
@@ -3134,14 +3134,14 @@ sub_8046B40: @ 8046B40
bx r0
.align 2, 0
_08046B64: .4byte gUnknown_2024284
-_08046B68: .4byte gUnknown_3005008
+_08046B68: .4byte gSaveBlock1Ptr
_08046B6C: .4byte 0x00003c98
thumb_func_end sub_8046B40
thumb_func_start sub_8046B70
sub_8046B70: @ 8046B70
push {lr}
- ldr r0, _08046B88 @ =gUnknown_3005008
+ ldr r0, _08046B88 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08046B8C @ =0x00003c98
adds r0, r1
@@ -3151,7 +3151,7 @@ sub_8046B70: @ 8046B70
pop {r0}
bx r0
.align 2, 0
-_08046B88: .4byte gUnknown_3005008
+_08046B88: .4byte gSaveBlock1Ptr
_08046B8C: .4byte 0x00003c98
_08046B90: .4byte gUnknown_20370C2
thumb_func_end sub_8046B70
@@ -3159,7 +3159,7 @@ _08046B90: .4byte gUnknown_20370C2
thumb_func_start sub_8046B94
sub_8046B94: @ 8046B94
push {lr}
- ldr r0, _08046BAC @ =gUnknown_3005008
+ ldr r0, _08046BAC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08046BB0 @ =0x00003c98
adds r0, r1
@@ -3170,7 +3170,7 @@ sub_8046B94: @ 8046B94
movs r0, 0
b _08046BB6
.align 2, 0
-_08046BAC: .4byte gUnknown_3005008
+_08046BAC: .4byte gSaveBlock1Ptr
_08046BB0: .4byte 0x00003c98
_08046BB4:
movs r0, 0x1
@@ -3182,7 +3182,7 @@ _08046BB6:
thumb_func_start sub_8046BBC
sub_8046BBC: @ 8046BBC
push {lr}
- ldr r0, _08046BD4 @ =gUnknown_3005008
+ ldr r0, _08046BD4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08046BD8 @ =0x00003c98
adds r0, r1
@@ -3192,14 +3192,14 @@ sub_8046BBC: @ 8046BBC
pop {r1}
bx r1
.align 2, 0
-_08046BD4: .4byte gUnknown_3005008
+_08046BD4: .4byte gSaveBlock1Ptr
_08046BD8: .4byte 0x00003c98
thumb_func_end sub_8046BBC
thumb_func_start sub_8046BDC
sub_8046BDC: @ 8046BDC
push {lr}
- ldr r0, _08046BF4 @ =gUnknown_3005008
+ ldr r0, _08046BF4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08046BF8 @ =0x00003c98
adds r0, r1
@@ -3209,7 +3209,7 @@ sub_8046BDC: @ 8046BDC
pop {r1}
bx r1
.align 2, 0
-_08046BF4: .4byte gUnknown_3005008
+_08046BF4: .4byte gSaveBlock1Ptr
_08046BF8: .4byte 0x00003c98
thumb_func_end sub_8046BDC
diff --git a/asm/diploma.s b/asm/diploma.s
index 7a73ccd98..3994b228d 100644
--- a/asm/diploma.s
+++ b/asm/diploma.s
@@ -210,7 +210,7 @@ _080F4D9A:
beq _080F4DD6
b _080F4DC2
_080F4DA8:
- ldr r0, _080F4DCC @ =gUnknown_30030F0
+ ldr r0, _080F4DCC @ =gMain
ldrh r0, [r0, 0x2E]
ands r1, r0
cmp r1, 0
@@ -229,7 +229,7 @@ _080F4DC2:
strb r0, [r1]
b _080F4DD6
.align 2, 0
-_080F4DCC: .4byte gUnknown_30030F0
+_080F4DCC: .4byte gMain
_080F4DD0:
adds r0, r2, 0
bl sub_80F4DE0
@@ -514,7 +514,7 @@ sub_80F5018: @ 80F5018
push {r4-r6,lr}
sub sp, 0xAC
bl UnkTextUtil_Reset
- ldr r0, _080F5040 @ =gUnknown_300500C
+ ldr r0, _080F5040 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0
bl UnkTextUtil_SetPtrI
@@ -527,7 +527,7 @@ sub_80F5018: @ 80F5018
bl UnkTextUtil_SetPtrI
b _080F5050
.align 2, 0
-_080F5040: .4byte gUnknown_300500C
+_080F5040: .4byte gSaveBlock2Ptr
_080F5044: .4byte gUnknown_841B68F
_080F5048:
ldr r1, _080F50E0 @ =gUnknown_841B698
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 60d0b4e9c..4a5032729 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -513,17 +513,17 @@ _080BDA94:
beq _080BDAEC
b _080BDB08
_080BDA9E:
- ldr r0, _080BDAAC @ =gUnknown_3005008
+ ldr r0, _080BDAAC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _080BDAB0 @ =0x00002ca0
adds r5, r0, r1
movs r2, 0x2
b _080BDAF6
.align 2, 0
-_080BDAAC: .4byte gUnknown_3005008
+_080BDAAC: .4byte gSaveBlock1Ptr
_080BDAB0: .4byte 0x00002ca0
_080BDAB4:
- ldr r0, _080BDAD4 @ =gUnknown_3005008
+ ldr r0, _080BDAD4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _080BDAD8 @ =0x00002cac
adds r5, r0, r1
@@ -539,18 +539,18 @@ _080BDAB4:
movs r3, 0x3
b _080BDAF8
.align 2, 0
-_080BDAD4: .4byte gUnknown_3005008
+_080BDAD4: .4byte gSaveBlock1Ptr
_080BDAD8: .4byte 0x00002cac
_080BDADC:
- ldr r0, _080BDAE4 @ =gUnknown_3005008
+ ldr r0, _080BDAE4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _080BDAE8 @ =0x00002cb8
b _080BDAF2
.align 2, 0
-_080BDAE4: .4byte gUnknown_3005008
+_080BDAE4: .4byte gSaveBlock1Ptr
_080BDAE8: .4byte 0x00002cb8
_080BDAEC:
- ldr r0, _080BDB10 @ =gUnknown_3005008
+ ldr r0, _080BDB10 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _080BDB14 @ =0x00002cc4
_080BDAF2:
@@ -571,7 +571,7 @@ _080BDB08:
pop {r0}
bx r0
.align 2, 0
-_080BDB10: .4byte gUnknown_3005008
+_080BDB10: .4byte gSaveBlock1Ptr
_080BDB14: .4byte 0x00002cc4
_080BDB18: .4byte gUnknown_2021D18
thumb_func_end sub_80BDA7C
@@ -607,7 +607,7 @@ sub_80BDB48: @ 80BDB48
lsls r1, 19
ands r1, r0
lsrs r1, 24
- ldr r0, _080BDB68 @ =gUnknown_3005008
+ ldr r0, _080BDB68 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r3, _080BDB6C @ =0x00002f10
adds r0, r3
@@ -618,7 +618,7 @@ sub_80BDB48: @ 80BDB48
ands r0, r1
bx lr
.align 2, 0
-_080BDB68: .4byte gUnknown_3005008
+_080BDB68: .4byte gSaveBlock1Ptr
_080BDB6C: .4byte 0x00002f10
thumb_func_end sub_80BDB48
@@ -632,7 +632,7 @@ sub_80BDB70: @ 80BDB70
lsrs r3, r0, 27
movs r2, 0x7
ands r2, r1
- ldr r0, _080BDB98 @ =gUnknown_3005008
+ ldr r0, _080BDB98 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _080BDB9C @ =0x00002f10
adds r1, r0
@@ -646,7 +646,7 @@ _080BDB94:
pop {r0}
bx r0
.align 2, 0
-_080BDB98: .4byte gUnknown_3005008
+_080BDB98: .4byte gSaveBlock1Ptr
_080BDB9C: .4byte 0x00002f10
thumb_func_end sub_80BDB70
@@ -872,7 +872,7 @@ _080BDD30: .4byte 0x0000ffff
sub_80BDD34: @ 80BDD34
push {r4-r7,lr}
movs r4, 0
- ldr r5, _080BDE00 @ =gUnknown_3005008
+ ldr r5, _080BDE00 @ =gSaveBlock1Ptr
ldr r3, _080BDE04 @ =0x00002ca0
ldr r2, _080BDE08 @ =gUnknown_83EDFF0
_080BDD3E:
@@ -889,7 +889,7 @@ _080BDD3E:
cmp r4, 0x3
bls _080BDD3E
movs r4, 0
- ldr r5, _080BDE00 @ =gUnknown_3005008
+ ldr r5, _080BDE00 @ =gSaveBlock1Ptr
ldr r3, _080BDE0C @ =0x00002cac
ldr r2, _080BDE10 @ =gUnknown_83EDFF8
_080BDD5E:
@@ -906,7 +906,7 @@ _080BDD5E:
cmp r4, 0x5
bls _080BDD5E
movs r4, 0
- ldr r0, _080BDE00 @ =gUnknown_3005008
+ ldr r0, _080BDE00 @ =gSaveBlock1Ptr
mov r12, r0
ldr r7, _080BDE14 @ =0x00002cb8
ldr r0, _080BDE18 @ =0x0000ffff
@@ -932,7 +932,7 @@ _080BDD84:
cmp r4, 0x5
bls _080BDD84
movs r4, 0
- ldr r7, _080BDE00 @ =gUnknown_3005008
+ ldr r7, _080BDE00 @ =gSaveBlock1Ptr
ldr r6, _080BDE20 @ =0x00002cd0
ldr r0, _080BDE18 @ =0x0000ffff
adds r5, r0, 0
@@ -961,7 +961,7 @@ _080BDDBA:
cmp r4, 0xF
bls _080BDDB2
movs r4, 0
- ldr r3, _080BDE00 @ =gUnknown_3005008
+ ldr r3, _080BDE00 @ =gSaveBlock1Ptr
ldr r2, _080BDE24 @ =0x00002f10
movs r1, 0
_080BDDE6:
@@ -978,7 +978,7 @@ _080BDDE6:
pop {r0}
bx r0
.align 2, 0
-_080BDE00: .4byte gUnknown_3005008
+_080BDE00: .4byte gSaveBlock1Ptr
_080BDE04: .4byte 0x00002ca0
_080BDE08: .4byte gUnknown_83EDFF0
_080BDE0C: .4byte 0x00002cac
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index 4a0b4ea45..94e977b3a 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -292,7 +292,7 @@ sub_8046E34: @ 8046E34
adds r4, 0x74
cmp r0, 0
bne _08046E74
- ldr r0, _08046E90 @ =gUnknown_300500C
+ ldr r0, _08046E90 @ =gSaveBlock2Ptr
ldr r0, [r0]
adds r1, r4, 0
bl StringCompare
@@ -311,7 +311,7 @@ _08046E74:
movs r0, 0x1
b _08046EA2
.align 2, 0
-_08046E90: .4byte gUnknown_300500C
+_08046E90: .4byte gSaveBlock2Ptr
_08046E94: .4byte gUnknown_2021CD0
_08046E98: .4byte gUnknown_2021CF0
_08046E9C: .4byte gUnknown_2021D04
@@ -327,7 +327,7 @@ _08046EA2:
thumb_func_start sub_8046EAC
sub_8046EAC: @ 8046EAC
push {lr}
- ldr r0, _08046EC8 @ =gUnknown_3005008
+ ldr r0, _08046EC8 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 6
@@ -340,7 +340,7 @@ sub_8046EAC: @ 8046EAC
pop {r1}
bx r1
.align 2, 0
-_08046EC8: .4byte gUnknown_3005008
+_08046EC8: .4byte gSaveBlock1Ptr
_08046ECC: .4byte gUnknown_20370C0
thumb_func_end sub_8046EAC
@@ -528,7 +528,7 @@ _08047040: .4byte sub_807DD24
CB2_EggHatch_0: @ 8047044
push {r4,lr}
sub sp, 0x4
- ldr r0, _08047064 @ =gUnknown_30030F0
+ ldr r0, _08047064 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -543,7 +543,7 @@ _08047058:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08047064: .4byte gUnknown_30030F0
+_08047064: .4byte gMain
_08047068: .4byte _0804706C
.align 2, 0
_0804706C:
@@ -732,7 +732,7 @@ _08047214:
movs r0, 0x1
bl CopyBgTilemapBufferToVram
_0804724A:
- ldr r1, _08047268 @ =gUnknown_30030F0
+ ldr r1, _08047268 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -744,7 +744,7 @@ _0804724A:
_0804725C: .4byte gUnknown_8EAEA20
_08047260: .4byte gUnknown_8EAEA80
_08047264: .4byte gUnknown_826601C
-_08047268: .4byte gUnknown_30030F0
+_08047268: .4byte gMain
_0804726C:
ldr r0, _08047298 @ =sub_8047338
bl SetMainCallback2
diff --git a/asm/event_data.s b/asm/event_data.s
index 456df7644..e2758639f 100644
--- a/asm/event_data.s
+++ b/asm/event_data.s
@@ -8,7 +8,7 @@
thumb_func_start sub_806E0D0
sub_806E0D0: @ 806E0D0
push {r4,lr}
- ldr r4, _0806E108 @ =gUnknown_3005008
+ ldr r4, _0806E108 @ =gSaveBlock1Ptr
ldr r0, [r4]
movs r1, 0xEE
lsls r1, 4
@@ -33,14 +33,14 @@ sub_806E0D0: @ 806E0D0
pop {r0}
bx r0
.align 2, 0
-_0806E108: .4byte gUnknown_3005008
+_0806E108: .4byte gSaveBlock1Ptr
_0806E10C: .4byte gUnknown_20370E0
thumb_func_end sub_806E0D0
thumb_func_start sub_806E110
sub_806E110: @ 806E110
push {lr}
- ldr r0, _0806E150 @ =gUnknown_3005008
+ ldr r0, _0806E150 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xEE
lsls r1, 4
@@ -66,7 +66,7 @@ sub_806E110: @ 806E110
pop {r0}
bx r0
.align 2, 0
-_0806E150: .4byte gUnknown_3005008
+_0806E150: .4byte gSaveBlock1Ptr
_0806E154: .4byte 0x00000803
_0806E158: .4byte 0x00000804
_0806E15C: .4byte 0x00000805
@@ -79,7 +79,7 @@ sub_806E168: @ 806E168
push {lr}
ldr r0, _0806E184 @ =0x0000403c
bl sub_806E454
- ldr r1, _0806E188 @ =gUnknown_300500C
+ ldr r1, _0806E188 @ =gSaveBlock2Ptr
ldr r2, [r1]
movs r1, 0
strb r1, [r2, 0x1A]
@@ -90,7 +90,7 @@ sub_806E168: @ 806E168
bx r0
.align 2, 0
_0806E184: .4byte 0x0000403c
-_0806E188: .4byte gUnknown_300500C
+_0806E188: .4byte gSaveBlock2Ptr
_0806E18C: .4byte 0x00000838
thumb_func_end sub_806E168
@@ -99,7 +99,7 @@ sub_806E190: @ 806E190
push {lr}
ldr r0, _0806E1B0 @ =0x0000403c
bl sub_806E454
- ldr r1, _0806E1B4 @ =gUnknown_300500C
+ ldr r1, _0806E1B4 @ =gSaveBlock2Ptr
ldr r2, [r1]
movs r1, 0xDA
strb r1, [r2, 0x1A]
@@ -112,7 +112,7 @@ sub_806E190: @ 806E190
bx r0
.align 2, 0
_0806E1B0: .4byte 0x0000403c
-_0806E1B4: .4byte gUnknown_300500C
+_0806E1B4: .4byte gSaveBlock2Ptr
_0806E1B8: .4byte 0x00000302
_0806E1BC: .4byte 0x00000838
thumb_func_end sub_806E190
@@ -120,7 +120,7 @@ _0806E1BC: .4byte 0x00000838
thumb_func_start sub_806E1C0
sub_806E1C0: @ 806E1C0
push {lr}
- ldr r0, _0806E1EC @ =gUnknown_300500C
+ ldr r0, _0806E1EC @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x1A]
cmp r0, 0xDA
@@ -139,7 +139,7 @@ sub_806E1C0: @ 806E1C0
movs r0, 0x1
b _0806E1FE
.align 2, 0
-_0806E1EC: .4byte gUnknown_300500C
+_0806E1EC: .4byte gSaveBlock2Ptr
_0806E1F0: .4byte 0x0000403c
_0806E1F4: .4byte 0x03020000
_0806E1F8: .4byte 0x00000838
@@ -155,7 +155,7 @@ sub_806E204: @ 806E204
push {lr}
ldr r0, _0806E224 @ =0x0000404e
bl sub_806E454
- ldr r1, _0806E228 @ =gUnknown_300500C
+ ldr r1, _0806E228 @ =gSaveBlock2Ptr
ldr r2, [r1]
movs r1, 0
strb r1, [r2, 0x1B]
@@ -167,7 +167,7 @@ sub_806E204: @ 806E204
bx r0
.align 2, 0
_0806E224: .4byte 0x0000404e
-_0806E228: .4byte gUnknown_300500C
+_0806E228: .4byte gSaveBlock2Ptr
thumb_func_end sub_806E204
thumb_func_start sub_806E22C
@@ -175,7 +175,7 @@ sub_806E22C: @ 806E22C
push {lr}
ldr r0, _0806E250 @ =0x0000404e
bl sub_806E454
- ldr r1, _0806E254 @ =gUnknown_300500C
+ ldr r1, _0806E254 @ =gSaveBlock2Ptr
ldr r2, [r1]
movs r1, 0xB9
strb r1, [r2, 0x1B]
@@ -189,14 +189,14 @@ sub_806E22C: @ 806E22C
bx r0
.align 2, 0
_0806E250: .4byte 0x0000404e
-_0806E254: .4byte gUnknown_300500C
+_0806E254: .4byte gSaveBlock2Ptr
_0806E258: .4byte 0x00006258
thumb_func_end sub_806E22C
thumb_func_start sub_806E25C
sub_806E25C: @ 806E25C
push {lr}
- ldr r0, _0806E288 @ =gUnknown_300500C
+ ldr r0, _0806E288 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x1B]
cmp r0, 0xB9
@@ -216,7 +216,7 @@ sub_806E25C: @ 806E25C
movs r0, 0x1
b _0806E296
.align 2, 0
-_0806E288: .4byte gUnknown_300500C
+_0806E288: .4byte gSaveBlock2Ptr
_0806E28C: .4byte 0x0000404e
_0806E290: .4byte 0x62580000
_0806E294:
@@ -454,7 +454,7 @@ _0806E488:
adds r2, r0, 0
cmp r2, 0
beq _0806E4EE
- ldr r0, _0806E4B0 @ =gUnknown_3005008
+ ldr r0, _0806E4B0 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r3, _0806E4B4 @ =0xffffc000
adds r0, r4, r3
@@ -467,7 +467,7 @@ _0806E488:
strh r0, [r1]
b _0806E4EE
.align 2, 0
-_0806E4B0: .4byte gUnknown_3005008
+_0806E4B0: .4byte gSaveBlock1Ptr
_0806E4B4: .4byte 0xffffc000
_0806E4B8:
ldr r0, _0806E4FC @ =0xffffc000
@@ -482,7 +482,7 @@ _0806E4B8:
bne _0806E4EE
ldr r0, _0806E500 @ =gUnknown_300507C
strh r5, [r0]
- ldr r0, _0806E504 @ =gUnknown_3005008
+ ldr r0, _0806E504 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0806E4FC @ =0xffffc000
adds r0, r4, r2
@@ -496,7 +496,7 @@ _0806E4B8:
adds r1, r4, 0
bl sub_8112DB0
_0806E4EE:
- ldr r0, _0806E504 @ =gUnknown_3005008
+ ldr r0, _0806E504 @ =gSaveBlock1Ptr
lsls r1, r6, 1
ldr r2, _0806E508 @ =0xffff9000
adds r1, r2
@@ -506,7 +506,7 @@ _0806E4EE:
.align 2, 0
_0806E4FC: .4byte 0xffffc000
_0806E500: .4byte gUnknown_300507C
-_0806E504: .4byte gUnknown_3005008
+_0806E504: .4byte gSaveBlock1Ptr
_0806E508: .4byte 0xffff9000
_0806E50C:
ldr r0, _0806E520 @ =gUnknown_815FD0C
@@ -653,7 +653,7 @@ _0806E5F0:
adds r2, r0, 0
cmp r2, 0
beq _0806E644
- ldr r0, _0806E614 @ =gUnknown_3005008
+ ldr r0, _0806E614 @ =gSaveBlock1Ptr
ldr r0, [r0]
lsrs r1, r5, 19
movs r3, 0xEE
@@ -664,7 +664,7 @@ _0806E5F0:
strb r1, [r0]
b _0806E644
.align 2, 0
-_0806E614: .4byte gUnknown_3005008
+_0806E614: .4byte gSaveBlock1Ptr
_0806E618:
adds r0, r4, 0
movs r1, 0
@@ -675,7 +675,7 @@ _0806E618:
bne _0806E644
ldr r0, _0806E654 @ =gUnknown_300507C
strh r4, [r0]
- ldr r0, _0806E658 @ =gUnknown_3005008
+ ldr r0, _0806E658 @ =gSaveBlock1Ptr
ldr r0, [r0]
lsrs r1, r5, 19
movs r2, 0xEE
@@ -687,7 +687,7 @@ _0806E618:
adds r1, r4, 0
bl sub_8112DB0
_0806E644:
- ldr r0, _0806E658 @ =gUnknown_3005008
+ ldr r0, _0806E658 @ =gSaveBlock1Ptr
lsrs r1, r6, 3
movs r3, 0xEE
lsls r3, 4
@@ -696,7 +696,7 @@ _0806E644:
b _0806E66C
.align 2, 0
_0806E654: .4byte gUnknown_300507C
-_0806E658: .4byte gUnknown_3005008
+_0806E658: .4byte gSaveBlock1Ptr
_0806E65C:
ldr r1, _0806E674 @ =0xffffc000
adds r0, r6, r1
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 6b1eb99b0..a0a122cc6 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -648,7 +648,7 @@ CB2_TradeEvolutionSceneLoadGraphics: @ 80CE2DC
ldr r1, _080CE320 @ =gUnknown_2024284
adds r4, r2, r1
ldrh r6, [r0, 0xC]
- ldr r0, _080CE324 @ =gUnknown_30030F0
+ ldr r0, _080CE324 @ =gMain
movs r3, 0x87
lsls r3, 3
adds r0, r3
@@ -666,7 +666,7 @@ _080CE30E:
_080CE318: .4byte gUnknown_3005090
_080CE31C: .4byte gUnknown_2039A20
_080CE320: .4byte gUnknown_2024284
-_080CE324: .4byte gUnknown_30030F0
+_080CE324: .4byte gMain
_080CE328: .4byte _080CE32C
.align 2, 0
_080CE32C:
@@ -728,7 +728,7 @@ _080CE3BC:
bl SetHBlankCallback
ldr r0, _080CE3DC @ =sub_80D00D8
bl SetVBlankCallback
- ldr r1, _080CE3E0 @ =gUnknown_30030F0
+ ldr r1, _080CE3E0 @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
@@ -736,7 +736,7 @@ _080CE3BC:
.align 2, 0
_080CE3D8: .4byte nullsub_76
_080CE3DC: .4byte sub_80D00D8
-_080CE3E0: .4byte gUnknown_30030F0
+_080CE3E0: .4byte gMain
_080CE3E4:
bl sub_80544FC
b _080CE4EC
@@ -753,13 +753,13 @@ _080CE3EA:
bl FillBgTilemapBufferRect
movs r0, 0x1
bl CopyBgTilemapBufferToVram
- ldr r1, _080CE410 @ =gUnknown_30030F0
+ ldr r1, _080CE410 @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
b _080CE4F4
.align 2, 0
-_080CE410: .4byte gUnknown_30030F0
+_080CE410: .4byte gMain
_080CE414:
adds r0, r4, 0
movs r1, 0x1
@@ -822,7 +822,7 @@ _080CE45C:
movs r2, 0x20
orrs r0, r2
strb r0, [r1, 0x5]
- ldr r1, _080CE4C8 @ =gUnknown_30030F0
+ ldr r1, _080CE4C8 @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
@@ -837,7 +837,7 @@ _080CE4B8: .4byte gUnknown_8231CFC
_080CE4BC: .4byte gUnknown_2039A20
_080CE4C0: .4byte gUnknown_202063C
_080CE4C4: .4byte nullsub_10
-_080CE4C8: .4byte gUnknown_30030F0
+_080CE4C8: .4byte gMain
_080CE4CC:
ldr r0, _080CE4FC @ =gUnknown_3003F3C
ldrb r0, [r0]
@@ -854,7 +854,7 @@ _080CE4E0:
movs r2, 0
bl BlendPalettes
_080CE4EC:
- ldr r1, _080CE500 @ =gUnknown_30030F0
+ ldr r1, _080CE500 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -865,7 +865,7 @@ _080CE4F4:
b _080CE534
.align 2, 0
_080CE4FC: .4byte gUnknown_3003F3C
-_080CE500: .4byte gUnknown_30030F0
+_080CE500: .4byte gMain
_080CE504:
movs r0, 0x1
negs r0, r0
@@ -1351,7 +1351,7 @@ _080CE93C: .4byte gUnknown_3005090
_080CE940: .4byte gUnknown_2024284
_080CE944: .4byte gUnknown_2023E82
_080CE948:
- ldr r0, _080CE9A0 @ =gUnknown_30030F0
+ ldr r0, _080CE9A0 @ =gMain
ldrh r1, [r0, 0x2C]
ldr r3, _080CE9A4 @ =gUnknown_3005090
mov r10, r3
@@ -1393,7 +1393,7 @@ _080CE948:
bl sub_80D04A8
bl _080CF528
.align 2, 0
-_080CE9A0: .4byte gUnknown_30030F0
+_080CE9A0: .4byte gMain
_080CE9A4: .4byte gUnknown_3005090
_080CE9A8: .4byte gUnknown_2023E82
_080CE9AC:
@@ -2310,7 +2310,7 @@ _080CF1B0: .4byte gUnknown_3005090
_080CF1B4: .4byte gUnknown_83FE791
_080CF1B8: .4byte gUnknown_2023E82
_080CF1BC:
- ldr r0, _080CF244 @ =gUnknown_30030F0
+ ldr r0, _080CF244 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -2327,7 +2327,7 @@ _080CF1BC:
strb r0, [r4, 0x1]
bl sub_802DCB8
_080CF1E2:
- ldr r0, _080CF244 @ =gUnknown_30030F0
+ ldr r0, _080CF244 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -2344,7 +2344,7 @@ _080CF1E2:
strb r0, [r4, 0x1]
bl sub_802DCB8
_080CF208:
- ldr r0, _080CF244 @ =gUnknown_30030F0
+ ldr r0, _080CF244 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
@@ -2372,7 +2372,7 @@ _080CF208:
strh r0, [r1, 0x14]
b _080CF276
.align 2, 0
-_080CF244: .4byte gUnknown_30030F0
+_080CF244: .4byte gMain
_080CF248: .4byte gUnknown_2023E82
_080CF24C: .4byte gUnknown_3005090
_080CF250:
@@ -2395,7 +2395,7 @@ _080CF250:
movs r3, 0x10
bl BeginNormalPaletteFade
_080CF276:
- ldr r0, _080CF2B0 @ =gUnknown_30030F0
+ ldr r0, _080CF2B0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -2422,7 +2422,7 @@ _080CF284:
b _080CF528
.align 2, 0
_080CF2AC: .4byte gUnknown_3005090
-_080CF2B0: .4byte gUnknown_30030F0
+_080CF2B0: .4byte gMain
_080CF2B4:
ldr r0, _080CF2F4 @ =gUnknown_2037AB8
ldrb r1, [r0, 0x7]
@@ -3740,7 +3740,7 @@ _080CFE30:
beq _080CFE3E
b _080D003A
_080CFE3E:
- ldr r0, _080CFE68 @ =gUnknown_30030F0
+ ldr r0, _080CFE68 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _080CFE6C @ =sub_80CE72C
cmp r1, r0
@@ -3760,7 +3760,7 @@ _080CFE4A:
b _080D0038
.align 2, 0
_080CFE64: .4byte gUnknown_2037AB8
-_080CFE68: .4byte gUnknown_30030F0
+_080CFE68: .4byte gMain
_080CFE6C: .4byte sub_80CE72C
_080CFE70: .4byte gUnknown_3005090
_080CFE74:
diff --git a/asm/fame_checker.s b/asm/fame_checker.s
index af3959b5e..e3559bcc1 100644
--- a/asm/fame_checker.s
+++ b/asm/fame_checker.s
@@ -68,7 +68,7 @@ sub_812C3F8: @ 812C3F8
mov r6, r8
push {r6}
sub sp, 0xC
- ldr r0, _0812C41C @ =gUnknown_30030F0
+ ldr r0, _0812C41C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -83,7 +83,7 @@ _0812C410:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0812C41C: .4byte gUnknown_30030F0
+_0812C41C: .4byte gMain
_0812C420: .4byte _0812C424
.align 2, 0
_0812C424:
@@ -245,7 +245,7 @@ _0812C5A0:
movs r3, 0
bl BeginNormalPaletteFade
_0812C5BE:
- ldr r1, _0812C5D0 @ =gUnknown_30030F0
+ ldr r1, _0812C5D0 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -254,7 +254,7 @@ _0812C5BE:
strb r0, [r1]
b _0812C626
.align 2, 0
-_0812C5D0: .4byte gUnknown_30030F0
+_0812C5D0: .4byte gMain
_0812C5D4:
bl sub_812D584
movs r1, 0xFD
@@ -283,7 +283,7 @@ _0812C5D4:
bl CreateTask
ldr r0, _0812C640 @ =sub_812C394
bl SetMainCallback2
- ldr r0, _0812C644 @ =gUnknown_30030F0
+ ldr r0, _0812C644 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -300,7 +300,7 @@ _0812C634: .4byte sub_812C380
_0812C638: .4byte gUnknown_203B0FC
_0812C63C: .4byte sub_812C664
_0812C640: .4byte sub_812C394
-_0812C644: .4byte gUnknown_30030F0
+_0812C644: .4byte gMain
thumb_func_end sub_812C3F8
thumb_func_start sub_812C648
@@ -369,7 +369,7 @@ sub_812C694: @ 812C694
b _0812C8EA
_0812C6C0:
bl sub_8002DE8
- ldr r0, _0812C71C @ =gUnknown_30030F0
+ ldr r0, _0812C71C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
@@ -388,7 +388,7 @@ _0812C6C0:
beq _0812C6E8
b _0812C8DA
_0812C6E8:
- ldr r0, _0812C71C @ =gUnknown_30030F0
+ ldr r0, _0812C71C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x8
ands r0, r1
@@ -409,7 +409,7 @@ _0812C6E8:
.align 2, 0
_0812C714: .4byte gUnknown_3005090
_0812C718: .4byte sub_812E110
-_0812C71C: .4byte gUnknown_30030F0
+_0812C71C: .4byte gMain
_0812C720: .4byte gUnknown_203B0FC
_0812C724: .4byte sub_8107EB8
_0812C728:
@@ -880,7 +880,7 @@ sub_812CAD8: @ 812CAD8
adds r0, 0x8
adds r6, r1, r0
bl sub_8002DE8
- ldr r0, _0812CBA0 @ =gUnknown_30030F0
+ ldr r0, _0812CBA0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -910,7 +910,7 @@ sub_812CAD8: @ 812CAD8
adds r0, r4, 0
bl sub_812CE04
_0812CB2E:
- ldr r0, _0812CBA0 @ =gUnknown_30030F0
+ ldr r0, _0812CBA0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -960,7 +960,7 @@ _0812CB80:
b _0812CC62
.align 2, 0
_0812CB9C: .4byte gUnknown_3005090
-_0812CBA0: .4byte gUnknown_30030F0
+_0812CBA0: .4byte gMain
_0812CBA4: .4byte gUnknown_203B0FC
_0812CBA8: .4byte gUnknown_202063C
_0812CBAC: .4byte sub_812D764
@@ -1176,7 +1176,7 @@ sub_812CD3C: @ 812CD3C
lsls r0, 16
lsrs r0, 16
adds r6, r0, 0
- ldr r0, _0812CD7C @ =gUnknown_3005008
+ ldr r0, _0812CD7C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r7, _0812CD80 @ =gUnknown_203B0FC
ldr r0, [r7]
@@ -1196,7 +1196,7 @@ sub_812CD3C: @ 812CD3C
bl sub_812C990
b _0812CDEE
.align 2, 0
-_0812CD7C: .4byte gUnknown_3005008
+_0812CD7C: .4byte gSaveBlock1Ptr
_0812CD80: .4byte gUnknown_203B0FC
_0812CD84: .4byte 0x00003a54
_0812CD88:
@@ -1720,7 +1720,7 @@ sub_812D1A8: @ 812D1A8
movs r6, 0
ldr r7, _0812D238 @ =gUnknown_203B0FC
_0812D1BA:
- ldr r0, _0812D23C @ =gUnknown_3005008
+ ldr r0, _0812D23C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, [r7]
adds r0, 0xC
@@ -1781,7 +1781,7 @@ _0812D1BA:
b _0812D2A0
.align 2, 0
_0812D238: .4byte gUnknown_203B0FC
-_0812D23C: .4byte gUnknown_3005008
+_0812D23C: .4byte gSaveBlock1Ptr
_0812D240: .4byte 0x00003a54
_0812D244: .4byte gUnknown_845F83C
_0812D248:
@@ -1884,7 +1884,7 @@ sub_812D304: @ 812D304
mov r6, r8
push {r6,r7}
movs r4, 0
- ldr r0, _0812D378 @ =gUnknown_3005008
+ ldr r0, _0812D378 @ =gSaveBlock1Ptr
mov r9, r0
mov r6, r9
ldr r5, _0812D37C @ =0x00003a54
@@ -1938,7 +1938,7 @@ _0812D322:
pop {r0}
bx r0
.align 2, 0
-_0812D378: .4byte gUnknown_3005008
+_0812D378: .4byte gSaveBlock1Ptr
_0812D37C: .4byte 0x00003a54
_0812D380: .4byte 0xffffc003
_0812D384: .4byte 0x00003a55
@@ -1953,7 +1953,7 @@ sub_812D388: @ 812D388
push {r5-r7}
sub sp, 0x4
movs r5, 0
- ldr r0, _0812D410 @ =gUnknown_3005008
+ ldr r0, _0812D410 @ =gSaveBlock1Ptr
mov r12, r0
ldr r7, _0812D414 @ =0x00003a54
movs r1, 0x4
@@ -2017,7 +2017,7 @@ _0812D3C8:
pop {r0}
bx r0
.align 2, 0
-_0812D410: .4byte gUnknown_3005008
+_0812D410: .4byte gSaveBlock1Ptr
_0812D414: .4byte 0x00003a54
_0812D418: .4byte 0xffffc003
_0812D41C: .4byte 0x00000fff
@@ -2243,7 +2243,7 @@ sub_812D5EC: @ 812D5EC
ldrh r0, [r5]
cmp r0, 0x5
bhi _0812D632
- ldr r0, _0812D640 @ =gUnknown_3005008
+ ldr r0, _0812D640 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldrh r0, [r1]
lsls r0, 2
@@ -2275,7 +2275,7 @@ _0812D632:
.align 2, 0
_0812D638: .4byte gUnknown_20370C0
_0812D63C: .4byte gUnknown_20370C2
-_0812D640: .4byte gUnknown_3005008
+_0812D640: .4byte gSaveBlock1Ptr
_0812D644: .4byte 0x00003a54
_0812D648: .4byte 0x00000fff
_0812D64C: .4byte 0xffffc003
@@ -2295,7 +2295,7 @@ sub_812D650: @ 812D650
bhi _0812D69E
cmp r0, 0
beq _0812D69E
- ldr r2, _0812D6AC @ =gUnknown_3005008
+ ldr r2, _0812D6AC @ =gSaveBlock1Ptr
ldrh r3, [r1]
cmp r0, 0x1
bne _0812D684
@@ -2330,7 +2330,7 @@ _0812D69E:
.align 2, 0
_0812D6A4: .4byte gUnknown_20370C0
_0812D6A8: .4byte gUnknown_20370C2
-_0812D6AC: .4byte gUnknown_3005008
+_0812D6AC: .4byte gSaveBlock1Ptr
_0812D6B0: .4byte 0x00003a54
thumb_func_end sub_812D650
@@ -2346,7 +2346,7 @@ sub_812D6B4: @ 812D6B4
adds r4, r0
ldrb r1, [r4]
movs r2, 0
- ldr r0, _0812D6F0 @ =gUnknown_3005008
+ ldr r0, _0812D6F0 @ =gSaveBlock1Ptr
ldr r0, [r0]
lsls r1, 2
adds r0, r1
@@ -2365,7 +2365,7 @@ _0812D6DC:
b _0812D704
.align 2, 0
_0812D6EC: .4byte gUnknown_203B0FC
-_0812D6F0: .4byte gUnknown_3005008
+_0812D6F0: .4byte gSaveBlock1Ptr
_0812D6F4: .4byte 0x00003a54
_0812D6F8:
adds r0, r2, 0x1
@@ -2697,7 +2697,7 @@ _0812D950:
adds r0, r1
ldr r1, _0812D998 @ =sub_812D840
str r1, [r0]
- ldr r0, _0812D99C @ =gUnknown_3005008
+ ldr r0, _0812D99C @ =gSaveBlock1Ptr
ldr r0, [r0]
lsls r1, r5, 2
adds r0, r1
@@ -2724,7 +2724,7 @@ _0812D98C: .4byte gUnknown_845F61C
_0812D990: .4byte 0x0000ffff
_0812D994: .4byte gUnknown_202063C
_0812D998: .4byte sub_812D840
-_0812D99C: .4byte gUnknown_3005008
+_0812D99C: .4byte gSaveBlock1Ptr
_0812D9A0: .4byte 0x00003a54
_0812D9A4: .4byte gUnknown_845F5C0
thumb_func_end sub_812D888
@@ -3410,7 +3410,7 @@ _0812DF00:
bl sub_812D0C0
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _0812DF4C @ =gUnknown_3005008
+ ldr r0, _0812DF4C @ =gSaveBlock1Ptr
ldr r0, [r0]
lsls r1, r5, 2
adds r0, r1
@@ -3442,7 +3442,7 @@ _0812DF00:
.align 2, 0
_0812DF44: .4byte 0x0000fdff
_0812DF48: .4byte gUnknown_845F60C
-_0812DF4C: .4byte gUnknown_3005008
+_0812DF4C: .4byte gSaveBlock1Ptr
_0812DF50: .4byte 0x00003a54
_0812DF54: .4byte gUnknown_845F5EA
_0812DF58: .4byte gUnknown_203B100
diff --git a/asm/field_camera.s b/asm/field_camera.s
index 255027bbc..5be87081b 100644
--- a/asm/field_camera.s
+++ b/asm/field_camera.s
@@ -130,7 +130,7 @@ _0805A680: .4byte gUnknown_3000E9A
thumb_func_start DrawWholeMapView
DrawWholeMapView: @ 805A684
push {lr}
- ldr r0, _0805A6A0 @ =gUnknown_3005008
+ ldr r0, _0805A6A0 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r2, 0
ldrsh r0, [r1, r2]
@@ -142,7 +142,7 @@ DrawWholeMapView: @ 805A684
pop {r0}
bx r0
.align 2, 0
-_0805A6A0: .4byte gUnknown_3005008
+_0805A6A0: .4byte gSaveBlock1Ptr
_0805A6A4: .4byte gUnknown_2036DFC
thumb_func_end DrawWholeMapView
@@ -290,7 +290,7 @@ _0805A7A6:
adds r1, r6, r0
lsls r1, 16
lsrs r1, 16
- ldr r0, _0805A7D4 @ =gUnknown_3005008
+ ldr r0, _0805A7D4 @ =gSaveBlock1Ptr
ldr r3, [r0]
movs r0, 0
ldrsh r2, [r3, r0]
@@ -310,7 +310,7 @@ _0805A7A6:
pop {r0}
bx r0
.align 2, 0
-_0805A7D4: .4byte gUnknown_3005008
+_0805A7D4: .4byte gSaveBlock1Ptr
thumb_func_end RedrawMapSliceNorth
thumb_func_start RedrawMapSliceSouth
@@ -333,7 +333,7 @@ _0805A7E4:
lsrs r0, 24
_0805A7F6:
adds r1, r6, r0
- ldr r0, _0805A820 @ =gUnknown_3005008
+ ldr r0, _0805A820 @ =gSaveBlock1Ptr
ldr r3, [r0]
movs r0, 0
ldrsh r2, [r3, r0]
@@ -352,7 +352,7 @@ _0805A7F6:
pop {r0}
bx r0
.align 2, 0
-_0805A820: .4byte gUnknown_3005008
+_0805A820: .4byte gSaveBlock1Ptr
thumb_func_end RedrawMapSliceSouth
thumb_func_start RedrawMapSliceEast
@@ -379,7 +379,7 @@ _0805A844:
adds r1, r6
lsls r1, 16
lsrs r1, 16
- ldr r0, _0805A878 @ =gUnknown_3005008
+ ldr r0, _0805A878 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r3, 0
ldrsh r2, [r0, r3]
@@ -400,7 +400,7 @@ _0805A844:
pop {r0}
bx r0
.align 2, 0
-_0805A878: .4byte gUnknown_3005008
+_0805A878: .4byte gSaveBlock1Ptr
thumb_func_end RedrawMapSliceEast
thumb_func_start RedrawMapSliceWest
@@ -437,7 +437,7 @@ _0805A8AE:
adds r1, r5
lsls r1, 16
lsrs r1, 16
- ldr r0, _0805A8E4 @ =gUnknown_3005008
+ ldr r0, _0805A8E4 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r3, 0
ldrsh r2, [r0, r3]
@@ -459,7 +459,7 @@ _0805A8AE:
pop {r0}
bx r0
.align 2, 0
-_0805A8E4: .4byte gUnknown_3005008
+_0805A8E4: .4byte gSaveBlock1Ptr
thumb_func_end RedrawMapSliceWest
thumb_func_start CurrentMapDrawMetatileAt
@@ -729,7 +729,7 @@ _0805AAE4: .4byte gUnknown_3005018
MapPosToBgTilemapOffset: @ 805AAE8
push {r4,r5,lr}
adds r4, r0, 0
- ldr r0, _0805AB18 @ =gUnknown_3005008
+ ldr r0, _0805AB18 @ =gSaveBlock1Ptr
ldr r3, [r0]
movs r5, 0
ldrsh r0, [r3, r5]
@@ -754,7 +754,7 @@ _0805AB12:
negs r0, r0
b _0805AB2A
.align 2, 0
-_0805AB18: .4byte gUnknown_3005008
+_0805AB18: .4byte gSaveBlock1Ptr
_0805AB1C:
ldrb r0, [r4, 0x3]
adds r2, r0
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index 932258c6f..4add791f3 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -1980,7 +1980,7 @@ sub_806D804: @ 806D804
lsls r2, 24
lsrs r5, r2, 24
adds r7, r5, 0
- ldr r0, _0806D840 @ =gUnknown_30030F0
+ ldr r0, _0806D840 @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x30
ands r0, r1
@@ -2002,7 +2002,7 @@ sub_806D804: @ 806D804
adds r1, r5, 0
b _0806D888
.align 2, 0
-_0806D840: .4byte gUnknown_30030F0
+_0806D840: .4byte gMain
_0806D844: .4byte gUnknown_81A76E7
_0806D848:
cmp r4, 0x1
@@ -2583,7 +2583,7 @@ _0806DC78:
bne _0806DCC4
adds r0, r6, r1
ldrb r0, [r0, 0x5]
- ldr r1, _0806DCCC @ =gUnknown_3005008
+ ldr r1, _0806DCCC @ =gSaveBlock1Ptr
ldr r2, [r1]
movs r1, 0x4
ldrsb r1, [r2, r1]
@@ -2597,7 +2597,7 @@ _0806DCC4:
pop {r0}
bx r0
.align 2, 0
-_0806DCCC: .4byte gUnknown_3005008
+_0806DCCC: .4byte gSaveBlock1Ptr
thumb_func_end sub_806DC54
thumb_func_start sub_806DCD0
@@ -2805,7 +2805,7 @@ sub_806DE28: @ 806DE28
movs r0, 0x25
bl sub_80722CC
ldrb r0, [r5, 0x8]
- ldr r4, _0806DE6C @ =gUnknown_3005008
+ ldr r4, _0806DE6C @ =gSaveBlock1Ptr
ldr r2, [r4]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -2823,7 +2823,7 @@ _0806DE64:
pop {r0}
bx r0
.align 2, 0
-_0806DE6C: .4byte gUnknown_3005008
+_0806DE6C: .4byte gSaveBlock1Ptr
thumb_func_end sub_806DE28
thumb_func_start sub_806DE70
diff --git a/asm/field_effect.s b/asm/field_effect.s
index f7ae6897b..5433dfe60 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -5880,7 +5880,7 @@ sub_8086110: @ 8086110
strh r0, [r4, 0x20]
adds r0, r4, 0
adds r0, 0x22
- ldr r1, _08086170 @ =gUnknown_30030F0
+ ldr r1, _08086170 @ =gMain
ldr r1, [r1, 0xC]
bl StoreWordInTwoHalfwords
ldr r1, _08086174 @ =0x0000f0f1
@@ -5911,7 +5911,7 @@ sub_8086110: @ 8086110
pop {r0}
bx r0
.align 2, 0
-_08086170: .4byte gUnknown_30030F0
+_08086170: .4byte gMain
_08086174: .4byte 0x0000f0f1
_08086178: .4byte 0x00005051
_0808617C: .4byte sub_80863C0
@@ -6330,7 +6330,7 @@ sub_8086498: @ 8086498
bl SetGpuReg
adds r0, r4, 0
adds r0, 0x22
- ldr r1, _080864CC @ =gUnknown_30030F0
+ ldr r1, _080864CC @ =gMain
ldr r1, [r1, 0xC]
bl StoreWordInTwoHalfwords
ldr r0, _080864D0 @ =sub_80866E0
@@ -6342,7 +6342,7 @@ sub_8086498: @ 8086498
pop {r0}
bx r0
.align 2, 0
-_080864CC: .4byte gUnknown_30030F0
+_080864CC: .4byte gMain
_080864D0: .4byte sub_80866E0
thumb_func_end sub_8086498
@@ -7880,7 +7880,7 @@ sub_808706C: @ 808706C
lsls r0, 2
ldr r4, _0808710C @ =gUnknown_202063C
adds r0, r4
- ldr r1, _08087110 @ =gUnknown_300500C
+ ldr r1, _08087110 @ =gSaveBlock2Ptr
ldr r1, [r1]
ldrb r1, [r1, 0x8]
lsls r1, 1
@@ -7917,7 +7917,7 @@ _080870FC:
_08087104: .4byte gUnknown_2037078
_08087108: .4byte gUnknown_2036E38
_0808710C: .4byte gUnknown_202063C
-_08087110: .4byte gUnknown_300500C
+_08087110: .4byte gSaveBlock2Ptr
_08087114: .4byte sub_8087828
thumb_func_end sub_808706C
@@ -8088,7 +8088,7 @@ sub_8087220: @ 8087220
adds r0, r4, 0
movs r1, 0
bl StartSpriteAffineAnim
- ldr r0, _08087260 @ =gUnknown_300500C
+ ldr r0, _08087260 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -8097,7 +8097,7 @@ sub_8087220: @ 8087220
b _08087266
.align 2, 0
_0808725C: .4byte gUnknown_83CC1CC
-_08087260: .4byte gUnknown_300500C
+_08087260: .4byte gSaveBlock2Ptr
_08087264:
movs r0, 0x76
_08087266:
@@ -8255,7 +8255,7 @@ sub_8087364: @ 8087364
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r0, _080873A4 @ =gUnknown_300500C
+ ldr r0, _080873A4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -8264,7 +8264,7 @@ sub_8087364: @ 8087364
b _080873AA
.align 2, 0
_080873A0: .4byte gUnknown_83CC1CC
-_080873A4: .4byte gUnknown_300500C
+_080873A4: .4byte gSaveBlock2Ptr
_080873A8:
movs r0, 0x64
_080873AA:
@@ -8500,7 +8500,7 @@ _0808751A:
adds r0, r1
lsls r0, 2
adds r0, r4
- ldr r1, _080875C0 @ =gUnknown_300500C
+ ldr r1, _080875C0 @ =gSaveBlock2Ptr
ldr r1, [r1]
ldrb r1, [r1, 0x8]
lsls r1, 25
@@ -8534,7 +8534,7 @@ _080875AE:
_080875B4: .4byte gUnknown_2037078
_080875B8: .4byte gUnknown_2036E38
_080875BC: .4byte gUnknown_202063C
-_080875C0: .4byte gUnknown_300500C
+_080875C0: .4byte gSaveBlock2Ptr
_080875C4: .4byte sub_8087828
thumb_func_end sub_80874C8
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index c70033cc8..2b1ca9bc8 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -851,7 +851,7 @@ unc_grass_normal: @ 80DB3EC
ands r0, r1
cmp r0, 0
beq _080DB438
- ldr r0, _080DB49C @ =gUnknown_3005008
+ ldr r0, _080DB49C @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r0, 0x5
ldrsb r0, [r2, r0]
@@ -922,7 +922,7 @@ _080DB48C:
b _080DB4E4
.align 2, 0
_080DB498: .4byte gUnknown_2036E18
-_080DB49C: .4byte gUnknown_3005008
+_080DB49C: .4byte gSaveBlock1Ptr
_080DB4A0:
mov r0, sp
ldrb r1, [r0]
@@ -1202,7 +1202,7 @@ unc_grass_tall: @ 80DB69C
ands r0, r1
cmp r0, 0
beq _080DB6E8
- ldr r0, _080DB74C @ =gUnknown_3005008
+ ldr r0, _080DB74C @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r0, 0x5
ldrsb r0, [r2, r0]
@@ -1273,7 +1273,7 @@ _080DB73C:
b _080DB786
.align 2, 0
_080DB748: .4byte gUnknown_2036E18
-_080DB74C: .4byte gUnknown_3005008
+_080DB74C: .4byte gSaveBlock1Ptr
_080DB750:
mov r0, sp
ldrb r1, [r0]
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index 9bcaa32d5..7bfe0772b 100644
--- a/asm/field_ground_effect.s
+++ b/asm/field_ground_effect.s
@@ -1158,7 +1158,7 @@ GroundEffect_SpawnOnTallGrass: @ 806837C
str r1, [r3, 0x10]
ldrb r0, [r0, 0xA]
str r0, [r3, 0x14]
- ldr r0, _080683C4 @ =gUnknown_3005008
+ ldr r0, _080683C4 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x5]
lsls r0, 8
@@ -1173,7 +1173,7 @@ GroundEffect_SpawnOnTallGrass: @ 806837C
bx r0
.align 2, 0
_080683C0: .4byte gUnknown_20386E0
-_080683C4: .4byte gUnknown_3005008
+_080683C4: .4byte gSaveBlock1Ptr
thumb_func_end GroundEffect_SpawnOnTallGrass
thumb_func_start GroundEffect_StepOnTallGrass
@@ -1198,7 +1198,7 @@ GroundEffect_StepOnTallGrass: @ 80683C8
str r1, [r3, 0x10]
ldrb r0, [r0, 0xA]
str r0, [r3, 0x14]
- ldr r0, _08068410 @ =gUnknown_3005008
+ ldr r0, _08068410 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x5]
lsls r0, 8
@@ -1213,7 +1213,7 @@ GroundEffect_StepOnTallGrass: @ 80683C8
bx r0
.align 2, 0
_0806840C: .4byte gUnknown_20386E0
-_08068410: .4byte gUnknown_3005008
+_08068410: .4byte gSaveBlock1Ptr
thumb_func_end GroundEffect_StepOnTallGrass
thumb_func_start GroundEffect_SpawnOnLongGrass
@@ -1238,7 +1238,7 @@ GroundEffect_SpawnOnLongGrass: @ 8068414
str r1, [r3, 0x10]
ldrb r0, [r0, 0xA]
str r0, [r3, 0x14]
- ldr r0, _0806845C @ =gUnknown_3005008
+ ldr r0, _0806845C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x5]
lsls r0, 8
@@ -1253,7 +1253,7 @@ GroundEffect_SpawnOnLongGrass: @ 8068414
bx r0
.align 2, 0
_08068458: .4byte gUnknown_20386E0
-_0806845C: .4byte gUnknown_3005008
+_0806845C: .4byte gSaveBlock1Ptr
thumb_func_end GroundEffect_SpawnOnLongGrass
thumb_func_start GroundEffect_StepOnLongGrass
@@ -1278,7 +1278,7 @@ GroundEffect_StepOnLongGrass: @ 8068460
str r1, [r3, 0x10]
ldrb r0, [r0, 0xA]
str r0, [r3, 0x14]
- ldr r0, _080684A8 @ =gUnknown_3005008
+ ldr r0, _080684A8 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x5]
lsls r0, 8
@@ -1293,7 +1293,7 @@ GroundEffect_StepOnLongGrass: @ 8068460
bx r0
.align 2, 0
_080684A4: .4byte gUnknown_20386E0
-_080684A8: .4byte gUnknown_3005008
+_080684A8: .4byte gSaveBlock1Ptr
thumb_func_end GroundEffect_StepOnLongGrass
thumb_func_start GroundEffect_WaterReflection
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 1471ca4cd..0c3e20951 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -616,7 +616,7 @@ sub_805E27C: @ 805E27C
lsrs r0, 24
cmp r0, 0x1
bhi _0805E2DE
- ldr r0, _0805E2B8 @ =gUnknown_3005008
+ ldr r0, _0805E2B8 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r0, 0
ldrsh r1, [r2, r0]
@@ -634,7 +634,7 @@ sub_805E27C: @ 805E27C
lsls r0, r4, 16
b _0805E2CE
.align 2, 0
-_0805E2B8: .4byte gUnknown_3005008
+_0805E2B8: .4byte gSaveBlock1Ptr
_0805E2BC:
movs r1, 0
ldrsh r0, [r2, r1]
@@ -686,7 +686,7 @@ sub_805E2E8: @ 805E2E8
lsrs r0, 24
cmp r0, 0x1
bhi _0805E37C
- ldr r0, _0805E378 @ =gUnknown_3005008
+ ldr r0, _0805E378 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r2, 0
ldrsh r1, [r1, r2]
@@ -737,7 +737,7 @@ _0805E36A:
b _0805E37E
.align 2, 0
_0805E374: .4byte gUnknown_3005040
-_0805E378: .4byte gUnknown_3005008
+_0805E378: .4byte gSaveBlock1Ptr
_0805E37C:
movs r0, 0x1
_0805E37E:
@@ -792,7 +792,7 @@ _0805E3CE:
movs r5, 0
cmp r5, r6
bcs _0805E404
- ldr r7, _0805E410 @ =gUnknown_3005008
+ ldr r7, _0805E410 @ =gSaveBlock1Ptr
_0805E3D8:
lsls r0, r5, 1
adds r0, r5
@@ -825,7 +825,7 @@ _0805E406:
pop {r1}
bx r1
.align 2, 0
-_0805E410: .4byte gUnknown_3005008
+_0805E410: .4byte gSaveBlock1Ptr
thumb_func_end sub_805E3A0
thumb_func_start GetAvailableFieldObjectSlot
@@ -1351,7 +1351,7 @@ SpawnSpecialFieldObject: @ 805E7F4
add r0, sp, 0x4
adds r1, r4, 0
bl GetFieldObjectMovingCameraOffset
- ldr r0, _0805E82C @ =gUnknown_3005008
+ ldr r0, _0805E82C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -1370,7 +1370,7 @@ SpawnSpecialFieldObject: @ 805E7F4
pop {r1}
bx r1
.align 2, 0
-_0805E82C: .4byte gUnknown_3005008
+_0805E82C: .4byte gSaveBlock1Ptr
thumb_func_end SpawnSpecialFieldObject
thumb_func_start SpawnSpecialFieldObjectParametrized
@@ -1907,7 +1907,7 @@ sub_805EC30: @ 805EC30
ldr r3, [r0, 0x4]
cmp r3, 0
beq _0805ECF8
- ldr r7, _0805ED0C @ =gUnknown_3005008
+ ldr r7, _0805ED0C @ =gSaveBlock1Ptr
ldr r2, [r7]
ldrh r1, [r2]
subs r0, r1, 0x2
@@ -2002,7 +2002,7 @@ _0805ECF8:
bx r0
.align 2, 0
_0805ED08: .4byte gUnknown_2036DFC
-_0805ED0C: .4byte gUnknown_3005008
+_0805ED0C: .4byte gSaveBlock1Ptr
thumb_func_end sub_805EC30
thumb_func_start RemoveFieldObjectsOutsideView
@@ -2062,7 +2062,7 @@ _0805ED6C: .4byte 0x00010001
RemoveFieldObjectIfOutsideView: @ 805ED70
push {r4-r7,lr}
adds r3, r0, 0
- ldr r0, _0805EDEC @ =gUnknown_3005008
+ ldr r0, _0805EDEC @ =gSaveBlock1Ptr
ldr r2, [r0]
ldrh r0, [r2]
subs r1, r0, 0x2
@@ -2124,7 +2124,7 @@ _0805EDE4:
pop {r0}
bx r0
.align 2, 0
-_0805EDEC: .4byte gUnknown_3005008
+_0805EDEC: .4byte gSaveBlock1Ptr
thumb_func_end RemoveFieldObjectIfOutsideView
thumb_func_start sub_805EDF0
@@ -4272,7 +4272,7 @@ GetFieldObjectTemplateByLocalIdAndMap: @ 805FD5C
lsrs r3, r1, 24
lsls r2, 24
lsrs r2, 24
- ldr r0, _0805FD8C @ =gUnknown_3005008
+ ldr r0, _0805FD8C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x5
ldrsb r0, [r1, r0]
@@ -4289,7 +4289,7 @@ GetFieldObjectTemplateByLocalIdAndMap: @ 805FD5C
ldr r0, [r0, 0x4]
b _0805FDA0
.align 2, 0
-_0805FD8C: .4byte gUnknown_3005008
+_0805FD8C: .4byte gSaveBlock1Ptr
_0805FD90: .4byte gUnknown_2036DFC
_0805FD94:
adds r0, r2, 0
@@ -4348,7 +4348,7 @@ sub_805FDE8: @ 805FDE8
push {r7}
adds r4, r0, 0
ldrb r0, [r4, 0x9]
- ldr r1, _0805FE0C @ =gUnknown_3005008
+ ldr r1, _0805FE0C @ =gSaveBlock1Ptr
ldr r2, [r1]
movs r1, 0x5
ldrsb r1, [r2, r1]
@@ -4361,7 +4361,7 @@ sub_805FDE8: @ 805FDE8
beq _0805FE18
b _0805FE50
.align 2, 0
-_0805FE0C: .4byte gUnknown_3005008
+_0805FE0C: .4byte gSaveBlock1Ptr
_0805FE10:
mov r1, r8
adds r0, r5, r1
@@ -12878,7 +12878,7 @@ _08063AD0: .4byte gUnknown_83A64C8
thumb_func_start sub_8063AD4
sub_8063AD4: @ 8063AD4
push {r4,r5,lr}
- ldr r5, _08063B10 @ =gUnknown_3005008
+ ldr r5, _08063B10 @ =gSaveBlock1Ptr
ldr r4, [r5]
ldrh r4, [r4]
lsls r0, 16
@@ -12907,7 +12907,7 @@ sub_8063AD4: @ 8063AD4
pop {r0}
bx r0
.align 2, 0
-_08063B10: .4byte gUnknown_3005008
+_08063B10: .4byte gSaveBlock1Ptr
_08063B14: .4byte gUnknown_300506C
_08063B18: .4byte gUnknown_3005068
thumb_func_end sub_8063AD4
@@ -12966,7 +12966,7 @@ _08063B70:
adds r0, r1
lsrs r4, r0, 16
_08063B7C:
- ldr r2, _08063BC0 @ =gUnknown_3005008
+ ldr r2, _08063BC0 @ =gSaveBlock1Ptr
ldr r0, [r2]
ldrh r1, [r0]
lsls r0, r5, 16
@@ -12996,7 +12996,7 @@ _08063BB0: .4byte gUnknown_300506C
_08063BB4: .4byte gUnknown_3005050
_08063BB8: .4byte gUnknown_3005068
_08063BBC: .4byte 0xfff00000
-_08063BC0: .4byte gUnknown_3005008
+_08063BC0: .4byte gSaveBlock1Ptr
thumb_func_end sub_8063B1C
thumb_func_start sub_8063BC4
@@ -21984,7 +21984,7 @@ _08067A9C:
adds r0, r2
lsls r0, 16
lsrs r7, r0, 16
- ldr r0, _08067B00 @ =gUnknown_3005008
+ ldr r0, _08067B00 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _08067B04 @ =0x00000401
@@ -22030,7 +22030,7 @@ _08067AFA:
pop {r0}
bx r0
.align 2, 0
-_08067B00: .4byte gUnknown_3005008
+_08067B00: .4byte gSaveBlock1Ptr
_08067B04: .4byte 0x00000401
_08067B08: .4byte 0x0000fff0
thumb_func_end sub_8067A10
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index 2e430872d..1b27d2840 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -4565,7 +4565,7 @@ _0805D5C0: .4byte gUnknown_835B91A
_0805D5C4: .4byte gUnknown_2037078
_0805D5C8: .4byte gUnknown_202063C
_0805D5CC:
- ldr r0, _0805D5E8 @ =gUnknown_30030F0
+ ldr r0, _0805D5E8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -4582,7 +4582,7 @@ _0805D5DE:
pop {r1}
bx r1
.align 2, 0
-_0805D5E8: .4byte gUnknown_30030F0
+_0805D5E8: .4byte gMain
thumb_func_end sub_805D580
thumb_func_start sub_805D5EC
diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s
index d1fee0015..13808bf72 100644
--- a/asm/field_screen_effect.s
+++ b/asm/field_screen_effect.s
@@ -881,7 +881,7 @@ _0807F4A8:
movs r0, 0x1
bl GetHealLocationPointer
adds r3, r0, 0
- ldr r0, _0807F520 @ =gUnknown_3005008
+ ldr r0, _0807F520 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldrh r0, [r2, 0x1C]
ldrh r5, [r3]
@@ -911,7 +911,7 @@ _0807F4A8:
.align 2, 0
_0807F518: .4byte gUnknown_83C68E4
_0807F51C: .4byte gUnknown_3005090
-_0807F520: .4byte gUnknown_3005008
+_0807F520: .4byte gSaveBlock1Ptr
_0807F524:
ldr r0, _0807F534 @ =gUnknown_3005090
adds r1, r4, r6
diff --git a/asm/field_specials.s b/asm/field_specials.s
index e56ad2b80..cab7ecc82 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -87,7 +87,7 @@ _080CA698: .4byte gUnknown_2021D18
thumb_func_start sub_80CA69C
sub_80CA69C: @ 80CA69C
ldr r1, _080CA6B0 @ =gUnknown_20370C0
- ldr r0, _080CA6B4 @ =gUnknown_3005008
+ ldr r0, _080CA6B4 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldrh r0, [r2]
strh r0, [r1]
@@ -97,14 +97,14 @@ sub_80CA69C: @ 80CA69C
bx lr
.align 2, 0
_080CA6B0: .4byte gUnknown_20370C0
-_080CA6B4: .4byte gUnknown_3005008
+_080CA6B4: .4byte gSaveBlock1Ptr
_080CA6B8: .4byte gUnknown_20370C2
thumb_func_end sub_80CA69C
thumb_func_start sub_80CA6BC
sub_80CA6BC: @ 80CA6BC
push {lr}
- ldr r0, _080CA6D8 @ =gUnknown_300500C
+ ldr r0, _080CA6D8 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r1, [r0, 0xB]
lsls r1, 8
@@ -117,13 +117,13 @@ sub_80CA6BC: @ 80CA6BC
pop {r1}
bx r1
.align 2, 0
-_080CA6D8: .4byte gUnknown_300500C
+_080CA6D8: .4byte gSaveBlock2Ptr
thumb_func_end sub_80CA6BC
thumb_func_start sub_80CA6DC
sub_80CA6DC: @ 80CA6DC
push {lr}
- ldr r0, _080CA6F4 @ =gUnknown_300500C
+ ldr r0, _080CA6F4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -133,7 +133,7 @@ sub_80CA6DC: @ 80CA6DC
bl StringCopy
b _080CA708
.align 2, 0
-_080CA6F4: .4byte gUnknown_300500C
+_080CA6F4: .4byte gSaveBlock2Ptr
_080CA6F8: .4byte gUnknown_2021CD0
_080CA6FC: .4byte gUnknown_8417FBB
_080CA700:
@@ -151,7 +151,7 @@ _080CA710: .4byte gUnknown_8417FC3
thumb_func_start sub_80CA714
sub_80CA714: @ 80CA714
push {lr}
- ldr r0, _080CA72C @ =gUnknown_300500C
+ ldr r0, _080CA72C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -161,7 +161,7 @@ sub_80CA714: @ 80CA714
bl StringCopy
b _080CA740
.align 2, 0
-_080CA72C: .4byte gUnknown_300500C
+_080CA72C: .4byte gSaveBlock2Ptr
_080CA730: .4byte gUnknown_2021CD0
_080CA734: .4byte gUnknown_8417FD0
_080CA738:
@@ -476,7 +476,7 @@ _080CA964:
_080CA96C:
ldr r4, _080CA9A0 @ =0x0000028a
_080CA96E:
- ldr r0, _080CA9A4 @ =gUnknown_3005008
+ ldr r0, _080CA9A4 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r1, 0
ldrsh r0, [r2, r1]
@@ -501,7 +501,7 @@ _080CA96E:
bx r0
.align 2, 0
_080CA9A0: .4byte 0x0000028a
-_080CA9A4: .4byte gUnknown_3005008
+_080CA9A4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80CA8F8
thumb_func_start sub_80CA9A8
@@ -552,7 +552,7 @@ _080CA9EC:
_080CA9F4:
ldr r4, _080CAA2C @ =0x0000028f
_080CA9F6:
- ldr r0, _080CAA30 @ =gUnknown_3005008
+ ldr r0, _080CAA30 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r1, 0
ldrsh r0, [r2, r1]
@@ -578,14 +578,14 @@ _080CA9F6:
bx r0
.align 2, 0
_080CAA2C: .4byte 0x0000028f
-_080CAA30: .4byte gUnknown_3005008
+_080CAA30: .4byte gSaveBlock1Ptr
thumb_func_end sub_80CA9A8
thumb_func_start SpawnScriptFieldObject
SpawnScriptFieldObject: @ 80CAA34
push {lr}
sub sp, 0x8
- ldr r0, _080CAA80 @ =gUnknown_3005008
+ ldr r0, _080CAA80 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r3, [r0]
adds r3, 0x7
@@ -619,7 +619,7 @@ SpawnScriptFieldObject: @ 80CAA34
pop {r0}
bx r0
.align 2, 0
-_080CAA80: .4byte gUnknown_3005008
+_080CAA80: .4byte gSaveBlock1Ptr
_080CAA84: .4byte gUnknown_2036E38
thumb_func_end SpawnScriptFieldObject
@@ -630,7 +630,7 @@ RemoveScriptFieldObject: @ 80CAA88
lsls r0, 24
lsrs r0, 24
bl CameraObjectSetFollowedObjectId
- ldr r0, _080CAAA8 @ =gUnknown_3005008
+ ldr r0, _080CAAA8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -639,7 +639,7 @@ RemoveScriptFieldObject: @ 80CAA88
pop {r0}
bx r0
.align 2, 0
-_080CAAA8: .4byte gUnknown_3005008
+_080CAAA8: .4byte gSaveBlock1Ptr
thumb_func_end RemoveScriptFieldObject
thumb_func_start sub_80CAAAC
@@ -1033,7 +1033,7 @@ sub_80CAD7C: @ 80CAD7C
movs r1, 0x7
adds r2, r4, 0
bl GetMonData
- ldr r0, _080CADB4 @ =gUnknown_300500C
+ ldr r0, _080CADB4 @ =gSaveBlock2Ptr
ldr r0, [r0]
adds r1, r4, 0
bl StringCompare
@@ -1045,7 +1045,7 @@ sub_80CAD7C: @ 80CAD7C
_080CADA8: .4byte gUnknown_20370C0
_080CADAC: .4byte gUnknown_2024284
_080CADB0: .4byte gUnknown_2021CD0
-_080CADB4: .4byte gUnknown_300500C
+_080CADB4: .4byte gSaveBlock2Ptr
_080CADB8:
movs r0, 0
_080CADBA:
@@ -1594,7 +1594,7 @@ _080CB1FE:
sub_80CB204: @ 80CB204
push {r4,lr}
movs r3, 0x4
- ldr r0, _080CB22C @ =gUnknown_3005008
+ ldr r0, _080CB22C @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r1, 0x14
ldrsb r1, [r2, r1]
@@ -1613,7 +1613,7 @@ sub_80CB204: @ 80CB204
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080CB22C: .4byte gUnknown_3005008
+_080CB22C: .4byte gSaveBlock1Ptr
_080CB230: .4byte _080CB234
.align 2, 0
_080CB234:
@@ -1751,7 +1751,7 @@ sub_80CB328: @ 80CB328
strh r0, [r3]
ldr r1, _080CB360 @ =gUnknown_2039A10
strh r0, [r1]
- ldr r0, _080CB364 @ =gUnknown_3005008
+ ldr r0, _080CB364 @ =gSaveBlock1Ptr
ldr r5, [r0]
movs r2, 0x14
ldrsb r2, [r5, r2]
@@ -1774,7 +1774,7 @@ sub_80CB328: @ 80CB328
.align 2, 0
_080CB35C: .4byte gUnknown_2039A0E
_080CB360: .4byte gUnknown_2039A10
-_080CB364: .4byte gUnknown_3005008
+_080CB364: .4byte gSaveBlock1Ptr
_080CB368: .4byte _080CB36C
.align 2, 0
_080CB36C:
@@ -3647,7 +3647,7 @@ _080CC1E0: .4byte gUnknown_20370D0
thumb_func_start sub_80CC1E4
sub_80CC1E4: @ 80CC1E4
- ldr r0, _080CC200 @ =gUnknown_300500C
+ ldr r0, _080CC200 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r0, [r2, 0xD]
lsls r0, 24
@@ -3661,7 +3661,7 @@ sub_80CC1E4: @ 80CC1E4
orrs r0, r1
bx lr
.align 2, 0
-_080CC200: .4byte gUnknown_300500C
+_080CC200: .4byte gSaveBlock2Ptr
thumb_func_end sub_80CC1E4
thumb_func_start sub_80CC204
@@ -4026,7 +4026,7 @@ _080CC4CC:
sub_80CC4D4: @ 80CC4D4
push {r4-r7,lr}
movs r3, 0
- ldr r0, _080CC508 @ =gUnknown_3005008
+ ldr r0, _080CC508 @ =gSaveBlock1Ptr
ldr r4, [r0]
movs r6, 0x4
ldrsb r6, [r4, r6]
@@ -4052,7 +4052,7 @@ _080CC4E8:
ldrb r0, [r0]
b _080CC51C
.align 2, 0
-_080CC508: .4byte gUnknown_3005008
+_080CC508: .4byte gSaveBlock1Ptr
_080CC50C: .4byte gUnknown_83F5D32
_080CC510:
adds r0, r3, 0x1
@@ -4081,7 +4081,7 @@ sub_80CC524: @ 80CC524
sub_80CC534: @ 80CC534
push {r4-r6,lr}
movs r4, 0
- ldr r6, _080CC57C @ =gUnknown_3005008
+ ldr r6, _080CC57C @ =gSaveBlock1Ptr
ldr r5, _080CC580 @ =gUnknown_83F5D58
_080CC53C:
ldr r3, [r6]
@@ -4114,7 +4114,7 @@ _080CC56A:
bl FlagSet
b _080CC596
.align 2, 0
-_080CC57C: .4byte gUnknown_3005008
+_080CC57C: .4byte gSaveBlock1Ptr
_080CC580: .4byte gUnknown_83F5D58
_080CC584: .4byte 0x0000404d
_080CC588: .4byte 0x00000808
@@ -4153,7 +4153,7 @@ sub_80CC59C: @ 80CC59C
_080CC5C4:
cmp r5, 0x5
bne _080CC61C
- ldr r0, _080CC608 @ =gUnknown_3005008
+ ldr r0, _080CC608 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r1, 0x4
ldrsb r1, [r2, r1]
@@ -4183,7 +4183,7 @@ _080CC5F8: .4byte 0x0000404d
_080CC5FC: .4byte 0xffffff00
_080CC600: .4byte 0xffff00ff
_080CC604: .4byte 0x00000808
-_080CC608: .4byte gUnknown_3005008
+_080CC608: .4byte gSaveBlock1Ptr
_080CC60C:
movs r0, 0xC0
lsls r0, 3
@@ -4195,7 +4195,7 @@ _080CC610:
movs r0, 0x23
b _080CC66C
_080CC61C:
- ldr r7, _080CC65C @ =gUnknown_3005008
+ ldr r7, _080CC65C @ =gSaveBlock1Ptr
cmp r5, 0x3
bne _080CC67C
ldr r1, [r7]
@@ -4226,7 +4226,7 @@ _080CC61C:
strb r5, [r6, 0x1]
b _080CC668
.align 2, 0
-_080CC65C: .4byte gUnknown_3005008
+_080CC65C: .4byte gSaveBlock1Ptr
_080CC660: .4byte gUnknown_83F5D58
_080CC664:
movs r0, 0x4
@@ -4661,7 +4661,7 @@ _080CC9A8: .4byte sub_80CCA18
_080CC9AC: .4byte gUnknown_3005098
_080CC9B0: .4byte sub_80CCAF4
_080CC9B4:
- ldr r0, _080CC9D8 @ =gUnknown_3005008
+ ldr r0, _080CC9D8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _080CC9DC @ =0x00004f01
@@ -4678,7 +4678,7 @@ _080CC9B4:
bl LoadPalette
b _080CC9FC
.align 2, 0
-_080CC9D8: .4byte gUnknown_3005008
+_080CC9D8: .4byte gSaveBlock1Ptr
_080CC9DC: .4byte 0x00004f01
_080CC9E0: .4byte gUnknown_83F61FB
_080CC9E4: .4byte gUnknown_83F60D0
@@ -4756,7 +4756,7 @@ sub_80CCA18: @ 80CCA18
bne _080CCA78
strh r2, [r4, 0x2]
_080CCA78:
- ldr r0, _080CCAB0 @ =gUnknown_3005008
+ ldr r0, _080CCAB0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _080CCAB4 @ =0x00004f01
@@ -4781,7 +4781,7 @@ _080CCA78:
_080CCAA4: .4byte gUnknown_3005098
_080CCAA8: .4byte gUnknown_2037AB8
_080CCAAC: .4byte gUnknown_2036E28
-_080CCAB0: .4byte gUnknown_3005008
+_080CCAB0: .4byte gSaveBlock1Ptr
_080CCAB4: .4byte 0x00004f01
_080CCAB8: .4byte gUnknown_83F61FB
_080CCABC: .4byte gUnknown_83F60D0
@@ -4823,7 +4823,7 @@ sub_80CCAF4: @ 80CCAF4
lsls r0, 24
cmp r0, 0
beq _080CCB5A
- ldr r0, _080CCB20 @ =gUnknown_3005008
+ ldr r0, _080CCB20 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _080CCB24 @ =0x00004f01
@@ -4835,7 +4835,7 @@ sub_80CCAF4: @ 80CCAF4
bl LoadPalette
b _080CCB36
.align 2, 0
-_080CCB20: .4byte gUnknown_3005008
+_080CCB20: .4byte gSaveBlock1Ptr
_080CCB24: .4byte 0x00004f01
_080CCB28: .4byte gUnknown_83F61D0
_080CCB2C:
@@ -5142,7 +5142,7 @@ sub_80CCD84: @ 80CCD84
lsrs r0, 24
cmp r0, 0x1
beq _080CCDC8
- ldr r0, _080CCDBC @ =gUnknown_3005008
+ ldr r0, _080CCDBC @ =gSaveBlock1Ptr
ldr r2, [r0]
ldrh r1, [r2, 0x4]
ldr r0, _080CCDC0 @ =0x00003d03
@@ -5161,7 +5161,7 @@ sub_80CCD84: @ 80CCD84
b _080CCDCA
.align 2, 0
_080CCDB8: .4byte 0x000002e3
-_080CCDBC: .4byte gUnknown_3005008
+_080CCDBC: .4byte gSaveBlock1Ptr
_080CCDC0: .4byte 0x00003d03
_080CCDC4: .4byte 0x00190018
_080CCDC8:
@@ -5316,7 +5316,7 @@ sub_80CCEE8: @ 80CCEE8
bl LoadPalette
movs r0, 0xA
bl sub_8083598
- ldr r0, _080CCF28 @ =gUnknown_3005008
+ ldr r0, _080CCF28 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -5330,7 +5330,7 @@ sub_80CCEE8: @ 80CCEE8
b _080CCF32
.align 2, 0
_080CCF24: .4byte gUnknown_83F6206
-_080CCF28: .4byte gUnknown_3005008
+_080CCF28: .4byte gSaveBlock1Ptr
_080CCF2C:
movs r0, 0xFD
bl sub_80722CC
@@ -5412,7 +5412,7 @@ sub_80CCFBC: @ 80CCFBC
bl VarGet
lsls r0, 16
lsrs r2, r0, 16
- ldr r0, _080CCFF0 @ =gUnknown_3005008
+ ldr r0, _080CCFF0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _080CCFF4 @ =0x00003802
@@ -5429,7 +5429,7 @@ sub_80CCFBC: @ 80CCFBC
b _080CD000
.align 2, 0
_080CCFEC: .4byte 0x00004026
-_080CCFF0: .4byte gUnknown_3005008
+_080CCFF0: .4byte gSaveBlock1Ptr
_080CCFF4: .4byte 0x00003802
_080CCFF8:
adds r0, r4, 0
@@ -5502,7 +5502,7 @@ _080CD06C:
thumb_func_start sub_80CD074
sub_80CD074: @ 80CD074
push {lr}
- ldr r0, _080CD088 @ =gUnknown_3005008
+ ldr r0, _080CD088 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _080CD08C @ =0x00000a02
@@ -5511,7 +5511,7 @@ sub_80CD074: @ 80CD074
movs r0, 0x1
b _080CD092
.align 2, 0
-_080CD088: .4byte gUnknown_3005008
+_080CD088: .4byte gSaveBlock1Ptr
_080CD08C: .4byte 0x00000a02
_080CD090:
movs r0, 0
diff --git a/asm/field_weather.s b/asm/field_weather.s
index bf5b8d883..4186d50e6 100644
--- a/asm/field_weather.s
+++ b/asm/field_weather.s
@@ -2771,7 +2771,7 @@ _0807B0FA:
thumb_func_start SetSav1Weather
SetSav1Weather: @ 807B100
push {r4,r5,lr}
- ldr r4, _0807B12C @ =gUnknown_3005008
+ ldr r4, _0807B12C @ =gSaveBlock1Ptr
ldr r1, [r4]
adds r1, 0x2E
ldrb r5, [r1]
@@ -2790,24 +2790,24 @@ SetSav1Weather: @ 807B100
pop {r0}
bx r0
.align 2, 0
-_0807B12C: .4byte gUnknown_3005008
+_0807B12C: .4byte gSaveBlock1Ptr
thumb_func_end SetSav1Weather
thumb_func_start sav1_get_weather_probably
sav1_get_weather_probably: @ 807B130
- ldr r0, _0807B13C @ =gUnknown_3005008
+ ldr r0, _0807B13C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x2E
ldrb r0, [r0]
bx lr
.align 2, 0
-_0807B13C: .4byte gUnknown_3005008
+_0807B13C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_get_weather_probably
thumb_func_start sub_807B140
sub_807B140: @ 807B140
push {r4,r5,lr}
- ldr r4, _0807B16C @ =gUnknown_3005008
+ ldr r4, _0807B16C @ =gSaveBlock1Ptr
ldr r0, [r4]
adds r0, 0x2E
ldrb r5, [r0]
@@ -2826,7 +2826,7 @@ sub_807B140: @ 807B140
pop {r0}
bx r0
.align 2, 0
-_0807B16C: .4byte gUnknown_3005008
+_0807B16C: .4byte gSaveBlock1Ptr
_0807B170: .4byte gUnknown_2036DFC
thumb_func_end sub_807B140
@@ -2964,7 +2964,7 @@ _0807B278: .4byte gUnknown_83C65C0
_0807B27C:
ldr r1, _0807B28C @ =gUnknown_83C65C4
_0807B27E:
- ldr r0, _0807B290 @ =gUnknown_3005008
+ ldr r0, _0807B290 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x2F
ldrb r0, [r0]
@@ -2973,7 +2973,7 @@ _0807B27E:
b _0807B296
.align 2, 0
_0807B28C: .4byte gUnknown_83C65C4
-_0807B290: .4byte gUnknown_3005008
+_0807B290: .4byte gSaveBlock1Ptr
_0807B294:
movs r0, 0
_0807B296:
@@ -2984,7 +2984,7 @@ _0807B296:
thumb_func_start UpdateWeatherPerDay
UpdateWeatherPerDay: @ 807B29C
lsls r0, 16
- ldr r1, _0807B2B8 @ =gUnknown_3005008
+ ldr r1, _0807B2B8 @ =gSaveBlock1Ptr
ldr r2, [r1]
adds r2, 0x2F
lsrs r0, 16
@@ -2998,7 +2998,7 @@ UpdateWeatherPerDay: @ 807B29C
strb r1, [r2]
bx lr
.align 2, 0
-_0807B2B8: .4byte gUnknown_3005008
+_0807B2B8: .4byte gSaveBlock1Ptr
thumb_func_end UpdateWeatherPerDay
thumb_func_start UpdateRainCounter
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
index 3eaad3a9c..b1aa05f04 100644
--- a/asm/fieldmap.s
+++ b/asm/fieldmap.s
@@ -995,14 +995,14 @@ sub_80590D8: @ 80590D8
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r0, _08059144 @ =gUnknown_300500C
+ ldr r0, _08059144 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _08059148 @ =0x00000898
adds r4, r0, r1
ldr r0, _0805914C @ =gUnknown_3005040
ldr r0, [r0]
mov r8, r0
- ldr r0, _08059150 @ =gUnknown_3005008
+ ldr r0, _08059150 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r2, 0
ldrsh r6, [r0, r2]
@@ -1050,10 +1050,10 @@ _08059138:
pop {r0}
bx r0
.align 2, 0
-_08059144: .4byte gUnknown_300500C
+_08059144: .4byte gSaveBlock2Ptr
_08059148: .4byte 0x00000898
_0805914C: .4byte gUnknown_3005040
-_08059150: .4byte gUnknown_3005008
+_08059150: .4byte gSaveBlock1Ptr
_08059154: .4byte gUnknown_2031DFC
thumb_func_end sub_80590D8
@@ -1062,7 +1062,7 @@ sub_8059158: @ 8059158
push {r4,lr}
movs r2, 0
movs r1, 0
- ldr r0, _08059184 @ =gUnknown_300500C
+ ldr r0, _08059184 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r4, _08059188 @ =0x00000898
adds r3, r0, r4
@@ -1082,7 +1082,7 @@ _08059168:
movs r0, 0
b _08059192
.align 2, 0
-_08059184: .4byte gUnknown_300500C
+_08059184: .4byte gSaveBlock2Ptr
_08059188: .4byte 0x00000898
_0805918C: .4byte 0x000001ff
_08059190:
@@ -1100,7 +1100,7 @@ sub_8059198: @ 8059198
mov r1, sp
movs r0, 0
strh r0, [r1]
- ldr r0, _080591B8 @ =gUnknown_300500C
+ ldr r0, _080591B8 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, _080591BC @ =0x00000898
adds r1, r0
@@ -1111,7 +1111,7 @@ sub_8059198: @ 8059198
pop {r0}
bx r0
.align 2, 0
-_080591B8: .4byte gUnknown_300500C
+_080591B8: .4byte gSaveBlock2Ptr
_080591BC: .4byte 0x00000898
_080591C0: .4byte 0x01000100
thumb_func_end sub_8059198
@@ -1122,7 +1122,7 @@ sub_80591C4: @ 80591C4
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r0, _0805923C @ =gUnknown_300500C
+ ldr r0, _0805923C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _08059240 @ =0x00000898
adds r4, r0, r1
@@ -1132,7 +1132,7 @@ sub_80591C4: @ 80591C4
ldr r0, _08059244 @ =gUnknown_3005040
ldr r0, [r0]
mov r8, r0
- ldr r0, _08059248 @ =gUnknown_3005008
+ ldr r0, _08059248 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r2, 0
ldrsh r6, [r0, r2]
@@ -1182,10 +1182,10 @@ _08059230:
pop {r0}
bx r0
.align 2, 0
-_0805923C: .4byte gUnknown_300500C
+_0805923C: .4byte gSaveBlock2Ptr
_08059240: .4byte 0x00000898
_08059244: .4byte gUnknown_3005040
-_08059248: .4byte gUnknown_3005008
+_08059248: .4byte gSaveBlock1Ptr
_0805924C: .4byte gUnknown_2031DFC
thumb_func_end sub_80591C4
@@ -1200,7 +1200,7 @@ sub_8059250: @ 8059250
lsls r0, 24
lsrs r1, r0, 24
adds r2, r1, 0
- ldr r0, _0805929C @ =gUnknown_300500C
+ ldr r0, _0805929C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r3, _080592A0 @ =0x00000898
adds r3, r0, r3
@@ -1211,7 +1211,7 @@ sub_8059250: @ 8059250
movs r4, 0
mov r9, r4
mov r8, r4
- ldr r0, _080592A8 @ =gUnknown_3005008
+ ldr r0, _080592A8 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r3, 0
ldrsh r6, [r0, r3]
@@ -1229,10 +1229,10 @@ sub_8059250: @ 8059250
beq _080592BE
b _080592D6
.align 2, 0
-_0805929C: .4byte gUnknown_300500C
+_0805929C: .4byte gSaveBlock2Ptr
_080592A0: .4byte 0x00000898
_080592A4: .4byte gUnknown_3005040
-_080592A8: .4byte gUnknown_3005008
+_080592A8: .4byte gSaveBlock1Ptr
_080592AC:
cmp r2, 0x3
beq _080592C8
@@ -1454,7 +1454,7 @@ _08059432:
GetPostCameraMoveMapBorderId: @ 805943C
push {r4,lr}
adds r3, r1, 0
- ldr r1, _08059460 @ =gUnknown_3005008
+ ldr r1, _08059460 @ =gSaveBlock1Ptr
ldr r1, [r1]
movs r4, 0
ldrsh r2, [r1, r4]
@@ -1470,13 +1470,13 @@ GetPostCameraMoveMapBorderId: @ 805943C
pop {r1}
bx r1
.align 2, 0
-_08059460: .4byte gUnknown_3005008
+_08059460: .4byte gSaveBlock1Ptr
thumb_func_end GetPostCameraMoveMapBorderId
thumb_func_start CanCameraMoveInDirection
CanCameraMoveInDirection: @ 8059464
push {r4,r5,lr}
- ldr r1, _0805949C @ =gUnknown_3005008
+ ldr r1, _0805949C @ =gSaveBlock1Ptr
ldr r4, [r1]
movs r1, 0
ldrsh r3, [r4, r1]
@@ -1502,7 +1502,7 @@ CanCameraMoveInDirection: @ 8059464
movs r0, 0x1
b _080594A6
.align 2, 0
-_0805949C: .4byte gUnknown_3005008
+_0805949C: .4byte gSaveBlock1Ptr
_080594A0: .4byte gUnknown_826D2D8
_080594A4:
movs r0, 0
@@ -1533,7 +1533,7 @@ _080594CA:
beq _080594E8
cmp r4, 0x4
bne _08059526
- ldr r0, _080594E4 @ =gUnknown_3005008
+ ldr r0, _080594E4 @ =gSaveBlock1Ptr
ldr r1, [r0]
negs r0, r6
strh r0, [r1]
@@ -1542,9 +1542,9 @@ _080594CA:
subs r0, r2
b _08059524
.align 2, 0
-_080594E4: .4byte gUnknown_3005008
+_080594E4: .4byte gSaveBlock1Ptr
_080594E8:
- ldr r0, _080594FC @ =gUnknown_3005008
+ ldr r0, _080594FC @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, [r3]
ldr r0, [r0]
@@ -1554,9 +1554,9 @@ _080594E8:
subs r0, r2
b _08059524
.align 2, 0
-_080594FC: .4byte gUnknown_3005008
+_080594FC: .4byte gSaveBlock1Ptr
_08059500:
- ldr r0, _08059510 @ =gUnknown_3005008
+ ldr r0, _08059510 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, [r5, 0x4]
ldrh r0, [r1]
@@ -1565,9 +1565,9 @@ _08059500:
negs r0, r7
b _08059524
.align 2, 0
-_08059510: .4byte gUnknown_3005008
+_08059510: .4byte gSaveBlock1Ptr
_08059514:
- ldr r0, _0805952C @ =gUnknown_3005008
+ ldr r0, _0805952C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, [r5, 0x4]
ldrh r0, [r1]
@@ -1582,7 +1582,7 @@ _08059526:
pop {r0}
bx r0
.align 2, 0
-_0805952C: .4byte gUnknown_3005008
+_0805952C: .4byte gSaveBlock1Ptr
thumb_func_end sub_80594AC
thumb_func_start CameraMove
@@ -1608,7 +1608,7 @@ CameraMove: @ 8059530
adds r0, r7, 0x1
cmp r0, 0x1
bhi _08059578
- ldr r0, _08059574 @ =gUnknown_3005008
+ ldr r0, _08059574 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrh r0, [r1]
add r0, r10
@@ -1619,10 +1619,10 @@ CameraMove: @ 8059530
b _080595E2
.align 2, 0
_08059570: .4byte gUnknown_2036E18
-_08059574: .4byte gUnknown_3005008
+_08059574: .4byte gSaveBlock1Ptr
_08059578:
bl sub_80590D8
- ldr r1, _080595F8 @ =gUnknown_3005008
+ ldr r1, _080595F8 @ =gSaveBlock1Ptr
ldr r0, [r1]
movs r2, 0
ldrsh r5, [r0, r2]
@@ -1649,7 +1649,7 @@ _08059578:
orrs r0, r1
ldr r2, _080595FC @ =gUnknown_2036E18
strb r0, [r2]
- ldr r0, _080595F8 @ =gUnknown_3005008
+ ldr r0, _080595F8 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r2, 0
ldrsh r0, [r1, r2]
@@ -1682,7 +1682,7 @@ _080595E2:
pop {r1}
bx r1
.align 2, 0
-_080595F8: .4byte gUnknown_3005008
+_080595F8: .4byte gSaveBlock1Ptr
_080595FC: .4byte gUnknown_2036E18
thumb_func_end CameraMove
@@ -1977,7 +1977,7 @@ sub_80597EC: @ 80597EC
lsrs r0, 16
lsls r1, 16
lsrs r1, 16
- ldr r2, _08059804 @ =gUnknown_3005008
+ ldr r2, _08059804 @ =gSaveBlock1Ptr
ldr r2, [r2]
subs r0, 0x7
strh r0, [r2]
@@ -1985,12 +1985,12 @@ sub_80597EC: @ 80597EC
strh r1, [r2, 0x2]
bx lr
.align 2, 0
-_08059804: .4byte gUnknown_3005008
+_08059804: .4byte gSaveBlock1Ptr
thumb_func_end sub_80597EC
thumb_func_start sav1_camera_get_focus_coords
sav1_camera_get_focus_coords: @ 8059808
- ldr r2, _0805981C @ =gUnknown_3005008
+ ldr r2, _0805981C @ =gSaveBlock1Ptr
ldr r3, [r2]
ldrh r2, [r3]
adds r2, 0x7
@@ -2000,23 +2000,23 @@ sav1_camera_get_focus_coords: @ 8059808
strh r0, [r1]
bx lr
.align 2, 0
-_0805981C: .4byte gUnknown_3005008
+_0805981C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_camera_get_focus_coords
thumb_func_start SetCameraCoords
SetCameraCoords: @ 8059820
- ldr r2, _0805982C @ =gUnknown_3005008
+ ldr r2, _0805982C @ =gSaveBlock1Ptr
ldr r2, [r2]
strh r0, [r2]
strh r1, [r2, 0x2]
bx lr
.align 2, 0
-_0805982C: .4byte gUnknown_3005008
+_0805982C: .4byte gSaveBlock1Ptr
thumb_func_end SetCameraCoords
thumb_func_start GetCameraCoords
GetCameraCoords: @ 8059830
- ldr r2, _08059840 @ =gUnknown_3005008
+ ldr r2, _08059840 @ =gSaveBlock1Ptr
ldr r3, [r2]
ldrh r2, [r3]
strh r2, [r0]
@@ -2024,7 +2024,7 @@ GetCameraCoords: @ 8059830
strh r0, [r1]
bx lr
.align 2, 0
-_08059840: .4byte gUnknown_3005008
+_08059840: .4byte gSaveBlock1Ptr
thumb_func_end GetCameraCoords
thumb_func_start copy_tileset_patterns_to_vram
diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s
index fc53891b5..5e144a46a 100644
--- a/asm/fldeff_flash.s
+++ b/asm/fldeff_flash.s
@@ -185,7 +185,7 @@ sub_80C9BFC: @ 80C9BFC
lsls r0, 24
cmp r0, 0
bne _080C9CC2
- ldr r0, _080C9CE4 @ =gUnknown_30030F0
+ ldr r0, _080C9CE4 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_080C9CC2:
@@ -200,7 +200,7 @@ _080C9CD4: .4byte 0x05000002
_080C9CD8: .4byte 0x810001ff
_080C9CDC: .4byte sub_80C9BE8
_080C9CE0: .4byte sub_80C9BD0
-_080C9CE4: .4byte gUnknown_30030F0
+_080C9CE4: .4byte gMain
thumb_func_end sub_80C9BFC
thumb_func_start sub_80C9CE8
@@ -579,14 +579,14 @@ sub_80C9FA0: @ 80C9FA0
.align 2, 0
_080C9FC0: .4byte gUnknown_3005090
_080C9FC4:
- ldr r0, _080C9FD0 @ =gUnknown_30030F0
+ ldr r0, _080C9FD0 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_080C9FCC:
pop {r0}
bx r0
.align 2, 0
-_080C9FD0: .4byte gUnknown_30030F0
+_080C9FD0: .4byte gMain
thumb_func_end sub_80C9FA0
thumb_func_start sub_80C9FD4
@@ -766,7 +766,7 @@ _080CA140:
movs r1, 0
movs r2, 0x20
bl LoadPalette
- ldr r0, _080CA15C @ =gUnknown_30030F0
+ ldr r0, _080CA15C @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_080CA152:
@@ -775,7 +775,7 @@ _080CA152:
bx r0
.align 2, 0
_080CA158: .4byte gUnknown_83F5824
-_080CA15C: .4byte gUnknown_30030F0
+_080CA15C: .4byte gMain
thumb_func_end sub_80CA108
thumb_func_start sub_80CA160
@@ -837,7 +837,7 @@ _080CA1C0:
.4byte _080CA262
.4byte _080CA2A4
_080CA1D8:
- ldr r0, _080CA204 @ =gUnknown_30030F0
+ ldr r0, _080CA204 @ =gMain
ldr r2, [r0, 0xC]
adds r0, r5, 0
movs r1, 0x5
@@ -854,7 +854,7 @@ _080CA1D8:
bl BlendPalettes
b _080CA294
.align 2, 0
-_080CA204: .4byte gUnknown_30030F0
+_080CA204: .4byte gMain
_080CA208:
bl sub_80F8258
cmp r0, 0
@@ -904,7 +904,7 @@ _080CA262:
ldrsh r1, [r4, r2]
cmp r0, r1
bgt _080CA280
- ldr r0, _080CA29C @ =gUnknown_30030F0
+ ldr r0, _080CA29C @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x2
ands r0, r1
@@ -926,7 +926,7 @@ _080CA294:
strh r0, [r4]
b _080CA2D2
.align 2, 0
-_080CA29C: .4byte gUnknown_30030F0
+_080CA29C: .4byte gMain
_080CA2A0: .4byte 0x00007fff
_080CA2A4:
bl UpdatePaletteFade
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index b171801bd..fc58fc678 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -31,7 +31,7 @@ sub_80F1DC0: @ 80F1DC0
InitHallOfFameScreen: @ 80F1DDC
push {r4,lr}
sub sp, 0x4
- ldr r0, _080F1DFC @ =gUnknown_30030F0
+ ldr r0, _080F1DFC @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -46,7 +46,7 @@ _080F1DF0:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080F1DFC: .4byte gUnknown_30030F0
+_080F1DFC: .4byte gMain
_080F1E00: .4byte _080F1E04
.align 2, 0
_080F1E04:
@@ -66,7 +66,7 @@ _080F1E18:
ldr r0, _080F1E48 @ =0x00002008
bl AllocZeroed
str r0, [r4]
- ldr r0, _080F1E4C @ =gUnknown_30030F0
+ ldr r0, _080F1E4C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -77,7 +77,7 @@ _080F1E18:
_080F1E40: .4byte gUnknown_3005ECC
_080F1E44: .4byte gUnknown_203AB3C
_080F1E48: .4byte 0x00002008
-_080F1E4C: .4byte gUnknown_30030F0
+_080F1E4C: .4byte gMain
_080F1E50:
bl sub_80F36BC
b _080F1EAA
@@ -117,7 +117,7 @@ _080F1E88:
movs r3, 0
bl BeginNormalPaletteFade
_080F1EAA:
- ldr r1, _080F1EC0 @ =gUnknown_30030F0
+ ldr r1, _080F1EC0 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -127,7 +127,7 @@ _080F1EAA:
b _080F1EF0
.align 2, 0
_080F1EBC: .4byte sub_80F1DAC
-_080F1EC0: .4byte gUnknown_30030F0
+_080F1EC0: .4byte gMain
_080F1EC4:
bl UpdatePaletteFade
ldr r0, _080F1EE8 @ =gUnknown_2037AB8
@@ -1168,7 +1168,7 @@ sub_80F26D4: @ 80F26D4
bl ShowBg
movs r0, 0x3
bl ShowBg
- ldr r0, _080F2748 @ =gUnknown_300500C
+ ldr r0, _080F2748 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
movs r1, 0x1
@@ -1204,7 +1204,7 @@ sub_80F26D4: @ 80F26D4
pop {r0}
bx r0
.align 2, 0
-_080F2748: .4byte gUnknown_300500C
+_080F2748: .4byte gSaveBlock2Ptr
_080F274C: .4byte 0x0000ffff
_080F2750: .4byte gUnknown_3005090
_080F2754: .4byte gUnknown_840C234
@@ -1298,7 +1298,7 @@ Task_Hof_ExitOnKeyPressed: @ 80F2804
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080F2830 @ =gUnknown_30030F0
+ ldr r0, _080F2830 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1318,7 +1318,7 @@ _080F282A:
pop {r0}
bx r0
.align 2, 0
-_080F2830: .4byte gUnknown_30030F0
+_080F2830: .4byte gMain
_080F2834: .4byte gUnknown_3005090
_080F2838: .4byte Task_Hof_HandlePaletteOnExit
thumb_func_end Task_Hof_ExitOnKeyPressed
@@ -1472,7 +1472,7 @@ _080F2974: .4byte gUnknown_2031DD8
thumb_func_start sub_80F2978
sub_80F2978: @ 80F2978
push {r4,lr}
- ldr r0, _080F2994 @ =gUnknown_30030F0
+ ldr r0, _080F2994 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -1485,7 +1485,7 @@ sub_80F2978: @ 80F2978
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080F2994: .4byte gUnknown_30030F0
+_080F2994: .4byte gMain
_080F2998: .4byte _080F299C
.align 2, 0
_080F299C:
@@ -1503,7 +1503,7 @@ _080F29B4:
ldr r0, _080F29DC @ =0x00002008
bl AllocZeroed
str r0, [r4]
- ldr r0, _080F29E0 @ =gUnknown_30030F0
+ ldr r0, _080F29E0 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -1513,7 +1513,7 @@ _080F29B4:
.align 2, 0
_080F29D8: .4byte gUnknown_203AB3C
_080F29DC: .4byte 0x00002008
-_080F29E0: .4byte gUnknown_30030F0
+_080F29E0: .4byte gMain
_080F29E4:
bl sub_80F36BC
b _080F2A42
@@ -1553,7 +1553,7 @@ _080F2A28:
cmp r0, 0
bne _080F2A8C
_080F2A42:
- ldr r1, _080F2A54 @ =gUnknown_30030F0
+ ldr r1, _080F2A54 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -1562,7 +1562,7 @@ _080F2A42:
strb r0, [r1]
b _080F2A8C
.align 2, 0
-_080F2A54: .4byte gUnknown_30030F0
+_080F2A54: .4byte gMain
_080F2A58:
ldr r1, _080F2A94 @ =0x00003f42
movs r0, 0x50
@@ -2087,7 +2087,7 @@ Task_HofPC_HandleInput: @ 80F2E8C
push {r7}
lsls r0, 24
lsrs r5, r0, 24
- ldr r1, _080F2F00 @ =gUnknown_30030F0
+ ldr r1, _080F2F00 @ =gMain
ldrh r2, [r1, 0x2E]
movs r0, 0x1
ands r0, r2
@@ -2142,7 +2142,7 @@ _080F2EF8:
str r0, [r1]
b _080F2FD8
.align 2, 0
-_080F2F00: .4byte gUnknown_30030F0
+_080F2F00: .4byte gMain
_080F2F04: .4byte gUnknown_3005090
_080F2F08: .4byte sub_80F2B6C
_080F2F0C:
@@ -2385,7 +2385,7 @@ Task_HofPC_ExitOnButtonPress: @ 80F310C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080F3130 @ =gUnknown_30030F0
+ ldr r0, _080F3130 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2402,7 +2402,7 @@ _080F312C:
pop {r0}
bx r0
.align 2, 0
-_080F3130: .4byte gUnknown_30030F0
+_080F3130: .4byte gMain
_080F3134: .4byte gUnknown_3005090
_080F3138: .4byte sub_80F2FEC
thumb_func_end Task_HofPC_ExitOnButtonPress
@@ -2765,7 +2765,7 @@ sub_80F33DC: @ 80F33DC
movs r2, 0x4
movs r3, 0x3
bl AddTextPrinterParametrized2
- ldr r0, _080F35FC @ =gUnknown_300500C
+ ldr r0, _080F35FC @ =gSaveBlock2Ptr
mov r10, r0
ldr r1, [r0]
movs r0, 0x2
@@ -2926,7 +2926,7 @@ _080F3582:
movs r0, 0xF0
strb r0, [r1, 0x3]
adds r4, r1, 0
- ldr r0, _080F35FC @ =gUnknown_300500C
+ ldr r0, _080F35FC @ =gSaveBlock2Ptr
ldr r5, [r0]
ldrb r0, [r5, 0x10]
movs r1, 0x64
@@ -2974,7 +2974,7 @@ _080F35EC: .4byte gUnknown_840C234
_080F35F0: .4byte 0x0000021d
_080F35F4: .4byte gUnknown_840C240
_080F35F8: .4byte gUnknown_84160FC
-_080F35FC: .4byte gUnknown_300500C
+_080F35FC: .4byte gSaveBlock2Ptr
_080F3600: .4byte gUnknown_8416104
_080F3604: .4byte 0x000186a0
_080F3608: .4byte 0x00002710
diff --git a/asm/heal_location.s b/asm/heal_location.s
index eb87254e8..33732a934 100644
--- a/asm/heal_location.s
+++ b/asm/heal_location.s
@@ -93,7 +93,7 @@ sub_80BFCD0: @ 80BFCD0
lsrs r5, r0, 16
cmp r5, 0x1
bne _080BFD38
- ldr r0, _080BFD28 @ =gUnknown_3005008
+ ldr r0, _080BFD28 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _080BFD2C @ =0x00003d34
adds r0, r1, r2
@@ -127,12 +127,12 @@ _080BFD0A:
b _080BFDFA
.align 2, 0
_080BFD24: .4byte 0x00004082
-_080BFD28: .4byte gUnknown_3005008
+_080BFD28: .4byte gSaveBlock1Ptr
_080BFD2C: .4byte 0x00003d34
_080BFD30: .4byte 0x00003d42
_080BFD34: .4byte gUnknown_20370D2
_080BFD38:
- ldr r0, _080BFD7C @ =gUnknown_3005008
+ ldr r0, _080BFD7C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x1C
ldrsb r0, [r1, r0]
@@ -166,7 +166,7 @@ _080BFD38:
movs r0, 0x5
b _080BFDF2
.align 2, 0
-_080BFD7C: .4byte gUnknown_3005008
+_080BFD7C: .4byte gSaveBlock1Ptr
_080BFD80: .4byte gUnknown_83EEC98
_080BFD84:
ldr r0, _080BFDA4 @ =gUnknown_83EEC98
diff --git a/asm/help_system.s b/asm/help_system.s
index 8099ba39d..06d57678d 100644
--- a/asm/help_system.s
+++ b/asm/help_system.s
@@ -37,12 +37,12 @@ _0813B8B4:
ldr r1, _0813B904 @ =gUnknown_203F177
movs r0, 0
strb r0, [r1]
- ldr r0, _0813B908 @ =gUnknown_300500C
+ ldr r0, _0813B908 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0
bne _0813B900
- ldr r2, _0813B90C @ =gUnknown_30030F0
+ ldr r2, _0813B90C @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x80
lsls r0, 1
@@ -78,8 +78,8 @@ _0813B900:
b _0813BB28
.align 2, 0
_0813B904: .4byte gUnknown_203F177
-_0813B908: .4byte gUnknown_300500C
-_0813B90C: .4byte gUnknown_30030F0
+_0813B908: .4byte gSaveBlock2Ptr
+_0813B90C: .4byte gMain
_0813B910: .4byte gUnknown_203F175
_0813B914: .4byte gUnknown_3005ECC
_0813B918:
@@ -309,7 +309,7 @@ _0813BB34: .4byte gUnknown_203F178
thumb_func_start sub_813BB38
sub_813BB38: @ 813BB38
ldr r2, _0813BB60 @ =gUnknown_203F178
- ldr r1, _0813BB64 @ =gUnknown_30030F0
+ ldr r1, _0813BB64 @ =gMain
ldr r0, [r1, 0xC]
str r0, [r2]
ldr r0, [r1, 0x10]
@@ -330,7 +330,7 @@ sub_813BB38: @ 813BB38
bx lr
.align 2, 0
_0813BB60: .4byte gUnknown_203F178
-_0813BB64: .4byte gUnknown_30030F0
+_0813BB64: .4byte gMain
_0813BB68: .4byte 0x040000b0
_0813BB6C: .4byte 0x0000c5ff
_0813BB70: .4byte 0x00007fff
@@ -393,7 +393,7 @@ _0813BBD8: .4byte gUnknown_203F18A
thumb_func_start sub_813BBDC
sub_813BBDC: @ 813BBDC
- ldr r2, _0813BBEC @ =gUnknown_30030F0
+ ldr r2, _0813BBEC @ =gMain
ldr r1, _0813BBF0 @ =gUnknown_203F178
ldr r0, [r1]
str r0, [r2, 0xC]
@@ -401,7 +401,7 @@ sub_813BBDC: @ 813BBDC
str r0, [r2, 0x10]
bx lr
.align 2, 0
-_0813BBEC: .4byte gUnknown_30030F0
+_0813BBEC: .4byte gMain
_0813BBF0: .4byte gUnknown_203F178
thumb_func_end sub_813BBDC
@@ -1095,7 +1095,7 @@ _0813C0EC:
cmp r1, 0x1
bne _0813C154
movs r4, 0
- ldr r0, _0813C14C @ =gUnknown_300500C
+ ldr r0, _0813C14C @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r1, [r1]
cmp r1, 0xFF
@@ -1128,7 +1128,7 @@ _0813C106:
lsrs r4, r0, 24
cmp r4, 0x9
bhi _0813C0AC
- ldr r0, _0813C14C @ =gUnknown_300500C
+ ldr r0, _0813C14C @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r1, r4
ldrb r1, [r1]
@@ -1136,7 +1136,7 @@ _0813C106:
bne _0813C106
b _0813C0AC
.align 2, 0
-_0813C14C: .4byte gUnknown_300500C
+_0813C14C: .4byte gSaveBlock2Ptr
_0813C150: .4byte gUnknown_3003E20
_0813C154:
cmp r1, 0x2
@@ -1815,7 +1815,7 @@ sub_813C690: @ 813C690
.align 2, 0
_0813C6A0: .4byte gUnknown_203F176
_0813C6A4:
- ldr r2, _0813C6C8 @ =gUnknown_30030F0
+ ldr r2, _0813C6C8 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1833,7 +1833,7 @@ _0813C6A4:
ldr r0, [r0, 0x4]
b _0813C756
.align 2, 0
-_0813C6C8: .4byte gUnknown_30030F0
+_0813C6C8: .4byte gMain
_0813C6CC: .4byte gUnknown_203F190
_0813C6D0:
movs r0, 0x2
diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s
index eff9cae2a..8f584f55c 100644
--- a/asm/help_system_812B1E0.s
+++ b/asm/help_system_812B1E0.s
@@ -108,7 +108,7 @@ _0812B278: .4byte gUnknown_845C5BC
sub_812B27C: @ 812B27C
push {r4,lr}
adds r2, r0, 0
- ldr r0, _0812B2AC @ =gUnknown_3005008
+ ldr r0, _0812B2AC @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0x4
ldrsb r1, [r0, r1]
@@ -132,7 +132,7 @@ _0812B2A2:
movs r0, 0x1
b _0812B2BE
.align 2, 0
-_0812B2AC: .4byte gUnknown_3005008
+_0812B2AC: .4byte gSaveBlock1Ptr
_0812B2B0: .4byte 0x0000ffff
_0812B2B4:
adds r1, 0x2
@@ -173,7 +173,7 @@ _0812B2EC:
adds r3, r1, r5
adds r0, r3, r4
ldrb r1, [r0]
- ldr r0, _0812B324 @ =gUnknown_3005008
+ ldr r0, _0812B324 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r0, 0x4
ldrsb r0, [r2, r0]
@@ -199,7 +199,7 @@ _0812B320:
movs r0, 0x1
b _0812B34C
.align 2, 0
-_0812B324: .4byte gUnknown_3005008
+_0812B324: .4byte gSaveBlock1Ptr
_0812B328: .4byte 0x00000849
_0812B32C:
adds r0, r6, 0x1
@@ -257,7 +257,7 @@ _0812B388:
lsls r0, 24
cmp r0, 0
beq _0812B400
- ldr r0, _0812B3B4 @ =gUnknown_3005008
+ ldr r0, _0812B3B4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
cmp r1, 0x4
@@ -272,7 +272,7 @@ _0812B3A8:
b _0812B406
.align 2, 0
_0812B3B0: .4byte gUnknown_2036DFC
-_0812B3B4: .4byte gUnknown_3005008
+_0812B3B4: .4byte gSaveBlock1Ptr
_0812B3B8:
movs r0, 0xC1
lsls r0, 2
@@ -1312,7 +1312,7 @@ _0812BC7C: .4byte gUnknown_841DFA5
sub_812BC80: @ 812BC80
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0812BCA4 @ =gUnknown_30030F0
+ ldr r0, _0812BCA4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1328,7 +1328,7 @@ _0812BC9A:
pop {r1}
bx r1
.align 2, 0
-_0812BCA4: .4byte gUnknown_30030F0
+_0812BCA4: .4byte gMain
thumb_func_end sub_812BC80
thumb_func_start sub_812BCA8
@@ -1646,7 +1646,7 @@ _0812BF14: .4byte gUnknown_3005E9C
sub_812BF18: @ 812BF18
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0812BF40 @ =gUnknown_30030F0
+ ldr r0, _0812BF40 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -1664,7 +1664,7 @@ _0812BF30:
movs r0, 0x1
b _0812BF54
.align 2, 0
-_0812BF40: .4byte gUnknown_30030F0
+_0812BF40: .4byte gMain
_0812BF44:
movs r0, 0xC0
lsls r0, 2
diff --git a/asm/intro.s b/asm/intro.s
index 8799502dd..11e6128f0 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -81,7 +81,7 @@ _080EC628: .4byte gUnknown_203AAD4
sub_80EC62C: @ 80EC62C
push {r4-r6,lr}
sub sp, 0xC
- ldr r0, _080EC64C @ =gUnknown_30030F0
+ ldr r0, _080EC64C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r5, r0, r1
@@ -96,7 +96,7 @@ _080EC640:
beq _080EC65E
b _080EC732
.align 2, 0
-_080EC64C: .4byte gUnknown_30030F0
+_080EC64C: .4byte gMain
_080EC650:
cmp r4, 0x8D
bne _080EC656
@@ -191,12 +191,12 @@ _080EC65E:
movs r0, 0
bl SetGpuReg
ldr r0, _080EC76C @ =SerialCb_CopyrightScreen
- bl sub_8000718
+ bl SetSerialCallback
ldr r0, _080EC770 @ =gUnknown_203AAD4
bl GameCubeMultiBoot_Init
_080EC732:
bl UpdatePaletteFade
- ldr r0, _080EC774 @ =gUnknown_30030F0
+ ldr r0, _080EC774 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -217,7 +217,7 @@ _080EC764: .4byte 0x0000ffff
_080EC768: .4byte sub_80EC5A4
_080EC76C: .4byte SerialCb_CopyrightScreen
_080EC770: .4byte gUnknown_203AAD4
-_080EC774: .4byte gUnknown_30030F0
+_080EC774: .4byte gMain
_080EC778:
ldr r4, _080EC7A0 @ =gUnknown_203AAD4
adds r0, r4, 0
@@ -277,7 +277,7 @@ _080EC7F0: .4byte gMultiBootProgram_PokemonColosseum_Start
_080EC7F4:
bl GameCubeMultiBoot_Quit
ldr r0, _080EC804 @ =SerialCB
- bl sub_8000718
+ bl SetSerialCallback
_080EC7FE:
movs r0, 0
b _080EC814
@@ -298,8 +298,8 @@ _080EC814:
_080EC81C: .4byte sub_80EC5B8
thumb_func_end sub_80EC62C
- thumb_func_start sub_80EC820
-sub_80EC820: @ 80EC820
+ thumb_func_start c2_copyright_1
+c2_copyright_1: @ 80EC820
push {lr}
bl sub_80EC62C
lsls r0, 24
@@ -318,7 +318,7 @@ sub_80EC820: @ 80EC820
_080EC846:
bl Sav2_ClearSetDefault
_080EC84A:
- ldr r0, _080EC860 @ =gUnknown_300500C
+ ldr r0, _080EC860 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x15]
lsls r0, 31
@@ -329,8 +329,8 @@ _080EC858:
bx r0
.align 2, 0
_080EC85C: .4byte gUnknown_30053A0
-_080EC860: .4byte gUnknown_300500C
- thumb_func_end sub_80EC820
+_080EC860: .4byte gSaveBlock2Ptr
+ thumb_func_end c2_copyright_1
thumb_func_start sub_80EC864
sub_80EC864: @ 80EC864
@@ -344,7 +344,7 @@ sub_80EC864: @ 80EC864
sub_80EC870: @ 80EC870
push {r4,lr}
sub sp, 0xC
- ldr r0, _080EC88C @ =gUnknown_30030F0
+ ldr r0, _080EC88C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -357,12 +357,12 @@ sub_80EC870: @ 80EC870
beq _080EC8A0
b _080EC894
.align 2, 0
-_080EC88C: .4byte gUnknown_30030F0
+_080EC88C: .4byte gMain
_080EC890:
cmp r4, 0x2
beq _080EC988
_080EC894:
- ldr r0, _080EC928 @ =gUnknown_30030F0
+ ldr r0, _080EC928 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -427,7 +427,7 @@ _080EC8A0:
bl sub_8001658
b _080EC9B8
.align 2, 0
-_080EC928: .4byte gUnknown_30030F0
+_080EC928: .4byte gMain
_080EC92C: .4byte gHeap
_080EC930: .4byte 0x040000d4
_080EC934: .4byte 0x8100c000
@@ -482,7 +482,7 @@ _080EC988:
_080EC9B0: .4byte sub_80EC9D4
_080EC9B4: .4byte sub_80EC9EC
_080EC9B8:
- ldr r1, _080EC9D0 @ =gUnknown_30030F0
+ ldr r1, _080EC9D0 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -495,7 +495,7 @@ _080EC9C6:
pop {r0}
bx r0
.align 2, 0
-_080EC9D0: .4byte gUnknown_30030F0
+_080EC9D0: .4byte gMain
thumb_func_end sub_80EC870
thumb_func_start sub_80EC9D4
@@ -607,7 +607,7 @@ sub_80ECAB0: @ 80ECAB0
movs r1, 0
bl GetWordTaskArg
adds r4, r0, 0
- ldr r0, _080ECAE8 @ =gUnknown_30030F0
+ ldr r0, _080ECAE8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xD
ands r0, r1
@@ -627,7 +627,7 @@ _080ECAD8:
pop {r0}
bx r0
.align 2, 0
-_080ECAE8: .4byte gUnknown_30030F0
+_080ECAE8: .4byte gMain
_080ECAEC: .4byte sub_80EDBE8
thumb_func_end sub_80ECAB0
@@ -2528,7 +2528,7 @@ _080EDA7C:
.align 2, 0
_080EDA94: .4byte sub_80EDBE8
_080EDA98:
- ldr r0, _080EDACC @ =gUnknown_30030F0
+ ldr r0, _080EDACC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
lsls r0, 1
@@ -2556,7 +2556,7 @@ _080EDAC4:
pop {r0}
bx r0
.align 2, 0
-_080EDACC: .4byte gUnknown_30030F0
+_080EDACC: .4byte gMain
_080EDAD0: .4byte 0xffff0064
_080EDAD4: .4byte 0x00007fff
thumb_func_end sub_80ED898
diff --git a/asm/item.s b/asm/item.s
index fb3784373..1805be5fe 100644
--- a/asm/item.s
+++ b/asm/item.s
@@ -8,7 +8,7 @@
thumb_func_start GetBagItemQuantity
GetBagItemQuantity: @ 8099DA0
adds r1, r0, 0
- ldr r0, _08099DB8 @ =gUnknown_300500C
+ ldr r0, _08099DB8 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r2, 0xF2
lsls r2, 4
@@ -20,14 +20,14 @@ GetBagItemQuantity: @ 8099DA0
lsrs r0, 16
bx lr
.align 2, 0
-_08099DB8: .4byte gUnknown_300500C
+_08099DB8: .4byte gSaveBlock2Ptr
thumb_func_end GetBagItemQuantity
thumb_func_start sub_8099DBC
sub_8099DBC: @ 8099DBC
lsls r1, 16
lsrs r1, 16
- ldr r2, _08099DD4 @ =gUnknown_300500C
+ ldr r2, _08099DD4 @ =gSaveBlock2Ptr
ldr r2, [r2]
movs r3, 0xF2
lsls r3, 4
@@ -37,7 +37,7 @@ sub_8099DBC: @ 8099DBC
strh r1, [r0]
bx lr
.align 2, 0
-_08099DD4: .4byte gUnknown_300500C
+_08099DD4: .4byte gSaveBlock2Ptr
thumb_func_end sub_8099DBC
thumb_func_start GetBagItemId
@@ -113,7 +113,7 @@ ApplyNewEncryptionKeyToBagItems_: @ 8099E38
thumb_func_start sub_8099E44
sub_8099E44: @ 8099E44
ldr r1, _08099E84 @ =gUnknown_203988C
- ldr r0, _08099E88 @ =gUnknown_3005008
+ ldr r0, _08099E88 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r3, 0xC4
lsls r3, 2
@@ -145,7 +145,7 @@ sub_8099E44: @ 8099E44
bx lr
.align 2, 0
_08099E84: .4byte gUnknown_203988C
-_08099E88: .4byte gUnknown_3005008
+_08099E88: .4byte gSaveBlock1Ptr
_08099E8C: .4byte 0x0000054c
thumb_func_end sub_8099E44
@@ -717,7 +717,7 @@ sub_809A2A4: @ 809A2A4
movs r5, 0xA6
lsls r5, 2
_0809A2AC:
- ldr r0, _0809A2D8 @ =gUnknown_3005008
+ ldr r0, _0809A2D8 @ =gSaveBlock1Ptr
ldr r0, [r0]
lsls r3, r4, 2
adds r1, r0, r3
@@ -738,7 +738,7 @@ _0809A2AC:
pop {r0}
bx r0
.align 2, 0
-_0809A2D8: .4byte gUnknown_3005008
+_0809A2D8: .4byte gSaveBlock1Ptr
thumb_func_end sub_809A2A4
thumb_func_start sub_809A2DC
@@ -768,7 +768,7 @@ _0809A300: .4byte gUnknown_203988C
sub_809A304: @ 809A304
push {lr}
movs r1, 0
- ldr r0, _0809A324 @ =gUnknown_3005008
+ ldr r0, _0809A324 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r3, 0xA6
lsls r3, 2
@@ -784,7 +784,7 @@ _0809A310:
adds r0, r1, 0
b _0809A338
.align 2, 0
-_0809A324: .4byte gUnknown_3005008
+_0809A324: .4byte gSaveBlock1Ptr
_0809A328:
adds r0, r1, 0x1
lsls r0, 24
@@ -804,7 +804,7 @@ sub_809A33C: @ 809A33C
push {r4,lr}
movs r2, 0
movs r1, 0
- ldr r0, _0809A370 @ =gUnknown_3005008
+ ldr r0, _0809A370 @ =gSaveBlock1Ptr
ldr r3, [r0]
movs r4, 0xA6
lsls r4, 2
@@ -829,7 +829,7 @@ _0809A35C:
pop {r1}
bx r1
.align 2, 0
-_0809A370: .4byte gUnknown_3005008
+_0809A370: .4byte gSaveBlock1Ptr
thumb_func_end sub_809A33C
thumb_func_start sub_809A374
@@ -841,7 +841,7 @@ sub_809A374: @ 809A374
lsrs r5, r1, 16
movs r4, 0
_0809A380:
- ldr r0, _0809A3AC @ =gUnknown_3005008
+ ldr r0, _0809A3AC @ =gSaveBlock1Ptr
ldr r2, [r0]
lsls r1, r4, 2
adds r0, r2, r1
@@ -862,7 +862,7 @@ _0809A380:
movs r0, 0x1
b _0809A3C0
.align 2, 0
-_0809A3AC: .4byte gUnknown_3005008
+_0809A3AC: .4byte gSaveBlock1Ptr
_0809A3B0: .4byte 0x0000029a
_0809A3B4:
adds r0, r4, 0x1
@@ -885,7 +885,7 @@ sub_809A3C8: @ 809A3C8
lsls r1, 16
lsrs r5, r1, 16
movs r3, 0
- ldr r6, _0809A404 @ =gUnknown_3005008
+ ldr r6, _0809A404 @ =gSaveBlock1Ptr
_0809A3D6:
ldr r2, [r6]
lsls r1, r3, 2
@@ -909,7 +909,7 @@ _0809A3D6:
ble _0809A444
b _0809A456
.align 2, 0
-_0809A404: .4byte gUnknown_3005008
+_0809A404: .4byte gSaveBlock1Ptr
_0809A408: .4byte 0x000003e7
_0809A40C:
adds r0, r3, 0x1
@@ -924,7 +924,7 @@ _0809A40C:
negs r0, r0
cmp r2, r0
beq _0809A456
- ldr r0, _0809A440 @ =gUnknown_3005008
+ ldr r0, _0809A440 @ =gSaveBlock1Ptr
ldr r0, [r0]
lsls r2, 2
adds r1, r0, r2
@@ -938,7 +938,7 @@ _0809A40C:
adds r1, r5, 0
b _0809A44E
.align 2, 0
-_0809A440: .4byte gUnknown_3005008
+_0809A440: .4byte gSaveBlock1Ptr
_0809A444:
lsls r1, 16
lsrs r1, 16
@@ -970,7 +970,7 @@ sub_809A460: @ 809A460
cmp r2, 0
beq _0809A4D8
movs r4, 0
- ldr r0, _0809A4E4 @ =gUnknown_3005008
+ ldr r0, _0809A4E4 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r3, 0xA6
lsls r3, 2
@@ -1026,7 +1026,7 @@ _0809A4D8:
pop {r0}
bx r0
.align 2, 0
-_0809A4E4: .4byte gUnknown_3005008
+_0809A4E4: .4byte gSaveBlock1Ptr
thumb_func_end sub_809A460
thumb_func_start sub_809A4E8
@@ -1040,7 +1040,7 @@ _0809A4EC:
adds r6, r1, 0
cmp r4, 0x1D
bhi _0809A52E
- ldr r0, _0809A53C @ =gUnknown_3005008
+ ldr r0, _0809A53C @ =gSaveBlock1Ptr
mov r12, r0
lsls r5, r2, 2
movs r7, 0xA6
@@ -1078,13 +1078,13 @@ _0809A52E:
pop {r0}
bx r0
.align 2, 0
-_0809A53C: .4byte gUnknown_3005008
+_0809A53C: .4byte gSaveBlock1Ptr
thumb_func_end sub_809A4E8
thumb_func_start sub_809A540
sub_809A540: @ 809A540
push {lr}
- ldr r0, _0809A55C @ =gUnknown_3005008
+ ldr r0, _0809A55C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _0809A560 @ =0x00000296
adds r1, r0, r2
@@ -1098,7 +1098,7 @@ sub_809A540: @ 809A540
beq _0809A570
b _0809A572
.align 2, 0
-_0809A55C: .4byte gUnknown_3005008
+_0809A55C: .4byte gSaveBlock1Ptr
_0809A560: .4byte 0x00000296
_0809A564: .4byte 0x00000103
_0809A568:
@@ -1518,7 +1518,7 @@ _0809A85A:
ldr r0, _0809A898 @ =0x00000169
cmp r5, r0
bne _0809A86E
- ldr r0, _0809A89C @ =gUnknown_3005008
+ ldr r0, _0809A89C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
movs r0, 0x81
@@ -1545,7 +1545,7 @@ _0809A88C:
.align 2, 0
_0809A894: .4byte 0xfea30000
_0809A898: .4byte 0x00000169
-_0809A89C: .4byte gUnknown_3005008
+_0809A89C: .4byte gSaveBlock1Ptr
_0809A8A0: .4byte gUnknown_2036DFC
thumb_func_end sub_809A824
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 0431ce7c9..241805a06 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -213,7 +213,7 @@ _08107F36:
thumb_func_start sub_8107F3C
sub_8107F3C: @ 8107F3C
push {r4,r5,lr}
- ldr r0, _08107F58 @ =gUnknown_30030F0
+ ldr r0, _08107F58 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -228,7 +228,7 @@ _08107F4E:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08107F58: .4byte gUnknown_30030F0
+_08107F58: .4byte gMain
_08107F5C: .4byte _08107F60
.align 2, 0
_08107F60:
@@ -415,7 +415,7 @@ _081080FA:
_08108102:
strb r0, [r2, 0x8]
_08108104:
- ldr r1, _08108118 @ =gUnknown_30030F0
+ ldr r1, _08108118 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -425,7 +425,7 @@ _08108104:
b _08108134
.align 2, 0
_08108114: .4byte gUnknown_2037AB8
-_08108118: .4byte gUnknown_30030F0
+_08108118: .4byte gMain
_0810811C:
ldr r0, _0810812C @ =sub_8107EFC
bl SetVBlankCallback
@@ -643,7 +643,7 @@ _081082D8:
lsls r0, 24
cmp r0, 0
bne _08108352
- ldr r0, _08108308 @ =gUnknown_300500C
+ ldr r0, _08108308 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -655,7 +655,7 @@ _081082D8:
b _08108352
.align 2, 0
_08108304: .4byte gUnknown_8E835B4
-_08108308: .4byte gUnknown_300500C
+_08108308: .4byte gSaveBlock2Ptr
_0810830C: .4byte gUnknown_8E83604
_08108310:
bl sub_810ADAC
@@ -663,7 +663,7 @@ _08108310:
lsrs r0, 24
cmp r0, 0x1
beq _08108326
- ldr r0, _0810832C @ =gUnknown_300500C
+ ldr r0, _0810832C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -672,7 +672,7 @@ _08108326:
ldr r0, _08108330 @ =gUnknown_83D41E4
b _0810834E
.align 2, 0
-_0810832C: .4byte gUnknown_300500C
+_0810832C: .4byte gSaveBlock2Ptr
_08108330: .4byte gUnknown_83D41E4
_08108334:
ldr r0, _0810833C @ =gUnknown_83D41EC
@@ -1178,7 +1178,7 @@ _08108720: .4byte gUnknown_2021CD0
_08108724: .4byte gUnknown_2021D18
_08108728: .4byte gUnknown_84162B9
_0810872C:
- ldr r0, _08108760 @ =gUnknown_3005008
+ ldr r0, _08108760 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08108764 @ =0x00000296
adds r0, r1
@@ -1204,7 +1204,7 @@ _08108752:
pop {r0}
bx r0
.align 2, 0
-_08108760: .4byte gUnknown_3005008
+_08108760: .4byte gSaveBlock1Ptr
_08108764: .4byte 0x00000296
_08108768: .4byte gUnknown_8452F7C
thumb_func_end sub_8108654
@@ -2278,7 +2278,7 @@ _08108F4A:
beq _08108F8C
cmp r0, 0x2
beq _08108F94
- ldr r0, _08108F88 @ =gUnknown_30030F0
+ ldr r0, _08108F88 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
@@ -2294,7 +2294,7 @@ _08108F78: .4byte gUnknown_3005098
_08108F7C: .4byte gUnknown_2037AB8
_08108F80: .4byte sub_8108CFC
_08108F84: .4byte gUnknown_203ACFC
-_08108F88: .4byte gUnknown_30030F0
+_08108F88: .4byte gMain
_08108F8C:
movs r1, 0x1
negs r1, r1
@@ -2537,7 +2537,7 @@ sub_8109168: @ 8109168
bl GetLRKeysState
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _081091A8 @ =gUnknown_30030F0
+ ldr r0, _081091A8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x20
ands r0, r1
@@ -2554,7 +2554,7 @@ _08109194:
b _081091C8
.align 2, 0
_081091A4: .4byte gUnknown_203AD10
-_081091A8: .4byte gUnknown_30030F0
+_081091A8: .4byte gMain
_081091AC:
movs r0, 0x10
ands r0, r1
@@ -2950,7 +2950,7 @@ sub_81094B0: @ 81094B0
lsrs r1, 16
movs r0, 0
bl sub_80986A8
- ldr r0, _08109540 @ =gUnknown_30030F0
+ ldr r0, _08109540 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
@@ -2978,7 +2978,7 @@ sub_81094B0: @ 81094B0
.align 2, 0
_08109538: .4byte gUnknown_3005098
_0810953C: .4byte gUnknown_203ACFC
-_08109540: .4byte gUnknown_30030F0
+_08109540: .4byte gMain
_08109544: .4byte gUnknown_203AD10
_08109548:
movs r0, 0x2
@@ -3587,7 +3587,7 @@ _08109A34:
strb r0, [r3]
movs r0, 0x4
strb r0, [r2, 0x2]
- ldr r0, _08109A68 @ =gUnknown_3005008
+ ldr r0, _08109A68 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08109A6C @ =0x00000296
adds r0, r1
@@ -3603,7 +3603,7 @@ _08109A34:
_08109A5C: .4byte gUnknown_203AD24
_08109A60: .4byte gUnknown_203AD20
_08109A64: .4byte gUnknown_203AD28
-_08109A68: .4byte gUnknown_3005008
+_08109A68: .4byte gSaveBlock1Ptr
_08109A6C: .4byte 0x00000296
_08109A70: .4byte gUnknown_203AD30
_08109A74:
@@ -4048,7 +4048,7 @@ sub_8109DEC: @ 8109DEC
.align 2, 0
_08109E1C: .4byte gUnknown_3005098
_08109E20:
- ldr r0, _08109E60 @ =gUnknown_30030F0
+ ldr r0, _08109E60 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -4072,7 +4072,7 @@ _08109E20:
bl sub_8109D38
b _08109EA2
.align 2, 0
-_08109E60: .4byte gUnknown_30030F0
+_08109E60: .4byte gMain
_08109E64:
movs r0, 0x2
ands r0, r1
@@ -4184,7 +4184,7 @@ sub_8109F44: @ 8109F44
lsls r0, 3
ldr r1, _08109FEC @ =gUnknown_3005098
adds r7, r0, r1
- ldr r0, _08109FF0 @ =gUnknown_30030F0
+ ldr r0, _08109FF0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -4248,7 +4248,7 @@ _08109FE0:
bx r0
.align 2, 0
_08109FEC: .4byte gUnknown_3005098
-_08109FF0: .4byte gUnknown_30030F0
+_08109FF0: .4byte gMain
_08109FF4: .4byte gUnknown_203AD30
_08109FF8: .4byte gUnknown_203ACFC
_08109FFC: .4byte gUnknown_3005E70
@@ -4276,7 +4276,7 @@ sub_810A000: @ 810A000
bl sub_809A798
lsls r0, 16
lsrs r2, r0, 16
- ldr r0, _0810A048 @ =gUnknown_3005008
+ ldr r0, _0810A048 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r3, _0810A04C @ =0x00000296
adds r1, r0, r3
@@ -4289,7 +4289,7 @@ sub_810A000: @ 810A000
.align 2, 0
_0810A040: .4byte gUnknown_3005098
_0810A044: .4byte gUnknown_203ACFC
-_0810A048: .4byte gUnknown_3005008
+_0810A048: .4byte gSaveBlock1Ptr
_0810A04C: .4byte 0x00000296
_0810A050:
strh r2, [r1]
@@ -4473,7 +4473,7 @@ sub_810A1D0: @ 810A1D0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0810A1F4 @ =gUnknown_30030F0
+ ldr r0, _0810A1F4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -4488,7 +4488,7 @@ _0810A1EE:
pop {r0}
bx r0
.align 2, 0
-_0810A1F4: .4byte gUnknown_30030F0
+_0810A1F4: .4byte gMain
thumb_func_end sub_810A1D0
thumb_func_start sub_810A1F8
@@ -5326,7 +5326,7 @@ sub_810A85C: @ 810A85C
_0810A8B4: .4byte gUnknown_3005098
_0810A8B8: .4byte gUnknown_203ACFC
_0810A8BC:
- ldr r0, _0810A8EC @ =gUnknown_30030F0
+ ldr r0, _0810A8EC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -5345,7 +5345,7 @@ _0810A8BC:
bl sub_810A690
b _0810A93A
.align 2, 0
-_0810A8EC: .4byte gUnknown_30030F0
+_0810A8EC: .4byte gMain
_0810A8F0:
movs r0, 0x2
ands r0, r1
@@ -5465,7 +5465,7 @@ sub_810A9D4: @ 810A9D4
mov r2, r8
ldrh r1, [r2, 0x10]
bl sub_809A1D8
- ldr r3, _0810AAE0 @ =gUnknown_3005008
+ ldr r3, _0810AAE0 @ =gSaveBlock1Ptr
ldr r4, [r3]
movs r7, 0xA4
lsls r7, 2
@@ -5536,7 +5536,7 @@ sub_810A9D4: @ 810A9D4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r2, _0810AAE0 @ =gUnknown_3005008
+ ldr r2, _0810AAE0 @ =gSaveBlock1Ptr
ldr r0, [r2]
adds r0, r7
bl sub_809FD58
@@ -5560,7 +5560,7 @@ sub_810A9D4: @ 810A9D4
.align 2, 0
_0810AAD8: .4byte gUnknown_3005098
_0810AADC: .4byte gUnknown_203AD30
-_0810AAE0: .4byte gUnknown_3005008
+_0810AAE0: .4byte gSaveBlock1Ptr
_0810AAE4: .4byte gUnknown_203ACFC
_0810AAE8: .4byte gUnknown_203AD10
_0810AAEC: .4byte gUnknown_3005E70
@@ -5572,7 +5572,7 @@ sub_810AAF4: @ 810AAF4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0810AB38 @ =gUnknown_30030F0
+ ldr r0, _0810AB38 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -5602,7 +5602,7 @@ _0810AB32:
pop {r0}
bx r0
.align 2, 0
-_0810AB38: .4byte gUnknown_30030F0
+_0810AB38: .4byte gMain
_0810AB3C: .4byte gUnknown_203AD10
thumb_func_end sub_810AAF4
@@ -5672,7 +5672,7 @@ sub_810AB88: @ 810AB88
.align 2, 0
_0810ABB8: .4byte gUnknown_3005098
_0810ABBC:
- ldr r0, _0810ABFC @ =gUnknown_30030F0
+ ldr r0, _0810ABFC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -5696,7 +5696,7 @@ _0810ABBC:
bl sub_810AC40
b _0810AC38
.align 2, 0
-_0810ABFC: .4byte gUnknown_30030F0
+_0810ABFC: .4byte gMain
_0810AC00:
movs r0, 0x2
ands r0, r1
@@ -5831,7 +5831,7 @@ _0810AD1E:
movs r1, 0
movs r2, 0
bl ChangeBgY
- ldr r4, _0810AD80 @ =gUnknown_3005008
+ ldr r4, _0810AD80 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r5, _0810AD84 @ =0x00000296
adds r1, r0, r5
@@ -5867,7 +5867,7 @@ _0810AD1E:
strh r6, [r1, 0xE]
b _0810AD9E
.align 2, 0
-_0810AD80: .4byte gUnknown_3005008
+_0810AD80: .4byte gSaveBlock1Ptr
_0810AD84: .4byte 0x00000296
_0810AD88: .4byte gUnknown_203AD30
_0810AD8C: .4byte gUnknown_3005090
@@ -5926,7 +5926,7 @@ sub_810ADD8: @ 810ADD8
lsls r0, 1
bl AllocZeroed
str r0, [r5]
- ldr r4, _0810AEC0 @ =gUnknown_3005008
+ ldr r4, _0810AEC0 @ =gSaveBlock1Ptr
ldr r1, [r4]
movs r2, 0xC4
lsls r2, 2
@@ -5995,7 +5995,7 @@ _0810AE54:
adds r4, 0x1
cmp r4, 0x2
bls _0810AE54
- ldr r4, _0810AEC0 @ =gUnknown_3005008
+ ldr r4, _0810AEC0 @ =gSaveBlock1Ptr
ldr r0, [r4]
movs r1, 0xC4
lsls r1, 2
@@ -6027,7 +6027,7 @@ _0810AE54:
bx r0
.align 2, 0
_0810AEBC: .4byte gUnknown_203AD2C
-_0810AEC0: .4byte gUnknown_3005008
+_0810AEC0: .4byte gSaveBlock1Ptr
_0810AEC4: .4byte 0x00000296
_0810AEC8: .4byte gUnknown_203ACFC
thumb_func_end sub_810ADD8
@@ -6035,7 +6035,7 @@ _0810AEC8: .4byte gUnknown_203ACFC
thumb_func_start sub_810AECC
sub_810AECC: @ 810AECC
push {r4-r7,lr}
- ldr r4, _0810AF64 @ =gUnknown_3005008
+ ldr r4, _0810AF64 @ =gSaveBlock1Ptr
ldr r0, [r4]
movs r1, 0xC4
lsls r1, 2
@@ -6108,7 +6108,7 @@ _0810AF3A:
pop {r0}
bx r0
.align 2, 0
-_0810AF64: .4byte gUnknown_3005008
+_0810AF64: .4byte gSaveBlock1Ptr
_0810AF68: .4byte gUnknown_203AD2C
_0810AF6C: .4byte 0x00000296
_0810AF70: .4byte gUnknown_203ACFC
@@ -6371,7 +6371,7 @@ sub_810B180: @ 810B180
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0810B198 @ =gUnknown_30030F0
+ ldr r0, _0810B198 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -6380,7 +6380,7 @@ sub_810B180: @ 810B180
movs r0, 0
b _0810B1BC
.align 2, 0
-_0810B198: .4byte gUnknown_30030F0
+_0810B198: .4byte gMain
_0810B19C:
bl sub_810AECC
bl sub_815AC20
@@ -6512,7 +6512,7 @@ _0810B290:
_0810B29E:
movs r0, 0x5
bl sub_80722CC
- ldr r0, _0810B318 @ =gUnknown_3005008
+ ldr r0, _0810B318 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _0810B31C @ =gUnknown_203AD30
ldrh r1, [r1]
@@ -6561,13 +6561,13 @@ _0810B29E:
bl CopyWindowToVram
b _0810B36C
.align 2, 0
-_0810B318: .4byte gUnknown_3005008
+_0810B318: .4byte gSaveBlock1Ptr
_0810B31C: .4byte gUnknown_203AD30
_0810B320: .4byte 0x00000296
_0810B324: .4byte gUnknown_203ACFC
_0810B328: .4byte gUnknown_3005E70
_0810B32C:
- ldr r1, _0810B340 @ =gUnknown_30030F0
+ ldr r1, _0810B340 @ =gMain
movs r0, 0
strh r0, [r1, 0x2E]
movs r0, 0x80
@@ -6576,7 +6576,7 @@ _0810B32C:
bl ListMenuHandleInput
b _0810B36C
.align 2, 0
-_0810B340: .4byte gUnknown_30030F0
+_0810B340: .4byte gMain
_0810B344:
movs r0, 0x5
bl sub_80722CC
@@ -6686,15 +6686,15 @@ _0810B408:
bl sub_81091D0
b _0810B4B0
_0810B41A:
- ldr r1, _0810B424 @ =gUnknown_30030F0
+ ldr r1, _0810B424 @ =gMain
movs r0, 0
strh r0, [r1, 0x2E]
movs r0, 0x80
b _0810B430
.align 2, 0
-_0810B424: .4byte gUnknown_30030F0
+_0810B424: .4byte gMain
_0810B428:
- ldr r1, _0810B43C @ =gUnknown_30030F0
+ ldr r1, _0810B43C @ =gMain
movs r0, 0
strh r0, [r1, 0x2E]
movs r0, 0x40
@@ -6704,7 +6704,7 @@ _0810B430:
bl ListMenuHandleInput
b _0810B4B0
.align 2, 0
-_0810B43C: .4byte gUnknown_30030F0
+_0810B43C: .4byte gMain
_0810B440:
movs r0, 0x5
bl sub_80722CC
@@ -6813,14 +6813,14 @@ _0810B51E:
beq _0810B564
b _0810B5C0
_0810B528:
- ldr r0, _0810B538 @ =gUnknown_30030F0
+ ldr r0, _0810B538 @ =gMain
strh r6, [r0, 0x2E]
strh r7, [r0, 0x30]
ldrb r0, [r5]
bl ListMenuHandleInput
b _0810B5C0
.align 2, 0
-_0810B538: .4byte gUnknown_30030F0
+_0810B538: .4byte gMain
_0810B53C:
movs r0, 0x5
bl sub_80722CC
@@ -6946,14 +6946,14 @@ _0810B63C:
bl sub_81091D0
b _0810B6E0
_0810B64E:
- ldr r0, _0810B65C @ =gUnknown_30030F0
+ ldr r0, _0810B65C @ =gMain
strh r5, [r0, 0x2E]
strh r7, [r0, 0x30]
ldrb r0, [r6]
bl ListMenuHandleInput
b _0810B6E0
.align 2, 0
-_0810B65C: .4byte gUnknown_30030F0
+_0810B65C: .4byte gMain
_0810B660:
movs r0, 0x5
bl sub_80722CC
diff --git a/asm/item_pc.s b/asm/item_pc.s
index 239cc0f6e..e0c626933 100644
--- a/asm/item_pc.s
+++ b/asm/item_pc.s
@@ -117,7 +117,7 @@ _0810D4BA:
sub_810D4C0: @ 810D4C0
push {r4,lr}
sub sp, 0x4
- ldr r0, _0810D4E0 @ =gUnknown_30030F0
+ ldr r0, _0810D4E0 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -132,7 +132,7 @@ _0810D4D4:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0810D4E0: .4byte gUnknown_30030F0
+_0810D4E0: .4byte gMain
_0810D4E4: .4byte _0810D4E8
.align 2, 0
_0810D4E8:
@@ -304,7 +304,7 @@ _0810D668:
cmp r0, 0x1
beq _0810D6A0
_0810D674:
- ldr r1, _0810D684 @ =gUnknown_30030F0
+ ldr r1, _0810D684 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -313,7 +313,7 @@ _0810D674:
strb r0, [r1]
b _0810D6A0
.align 2, 0
-_0810D684: .4byte gUnknown_30030F0
+_0810D684: .4byte gMain
_0810D688:
ldr r0, _0810D698 @ =sub_810D48C
bl SetVBlankCallback
@@ -561,7 +561,7 @@ sub_810D878: @ 810D878
movs r4, 0
b _0810D8A4
_0810D87E:
- ldr r0, _0810D938 @ =gUnknown_3005008
+ ldr r0, _0810D938 @ =gSaveBlock1Ptr
ldr r0, [r0]
lsls r1, r4, 2
adds r0, r1
@@ -654,7 +654,7 @@ _0810D8A4:
pop {r0}
bx r0
.align 2, 0
-_0810D938: .4byte gUnknown_3005008
+_0810D938: .4byte gSaveBlock1Ptr
_0810D93C: .4byte gUnknown_203ADC4
_0810D940: .4byte gUnknown_203ADBC
_0810D944: .4byte gUnknown_84161C1
@@ -1198,7 +1198,7 @@ _0810DD64: .4byte gUnknown_203ADCC
thumb_func_start sub_810DD68
sub_810DD68: @ 810DD68
lsls r0, 16
- ldr r1, _0810DD7C @ =gUnknown_3005008
+ ldr r1, _0810DD7C @ =gSaveBlock1Ptr
ldr r1, [r1]
lsrs r0, 14
adds r1, r0
@@ -1208,14 +1208,14 @@ sub_810DD68: @ 810DD68
ldrh r0, [r1]
bx lr
.align 2, 0
-_0810DD7C: .4byte gUnknown_3005008
+_0810DD7C: .4byte gSaveBlock1Ptr
thumb_func_end sub_810DD68
thumb_func_start sub_810DD80
sub_810DD80: @ 810DD80
push {lr}
lsls r0, 16
- ldr r1, _0810DD9C @ =gUnknown_3005008
+ ldr r1, _0810DD9C @ =gSaveBlock1Ptr
lsrs r0, 14
ldr r1, [r1]
adds r0, r1
@@ -1227,7 +1227,7 @@ sub_810DD80: @ 810DD80
pop {r1}
bx r1
.align 2, 0
-_0810DD9C: .4byte gUnknown_3005008
+_0810DD9C: .4byte gSaveBlock1Ptr
_0810DDA0: .4byte 0x0000029a
thumb_func_end sub_810DD80
@@ -1240,7 +1240,7 @@ sub_810DDA4: @ 810DDA4
movs r0, 0
strb r0, [r1, 0x7]
movs r2, 0
- ldr r3, _0810DE04 @ =gUnknown_3005008
+ ldr r3, _0810DE04 @ =gSaveBlock1Ptr
ldr r0, [r3]
movs r1, 0xA6
lsls r1, 2
@@ -1283,7 +1283,7 @@ _0810DDF8:
bx r0
.align 2, 0
_0810DE00: .4byte gUnknown_203ADBC
-_0810DE04: .4byte gUnknown_3005008
+_0810DE04: .4byte gSaveBlock1Ptr
thumb_func_end sub_810DDA4
thumb_func_start sub_810DE08
@@ -1392,7 +1392,7 @@ sub_810DEA0: @ 810DEA0
lsls r0, 24
cmp r0, 0
bne _0810DF9E
- ldr r0, _0810DF18 @ =gUnknown_30030F0
+ ldr r0, _0810DF18 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
@@ -1427,7 +1427,7 @@ sub_810DEA0: @ 810DEA0
.align 2, 0
_0810DF10: .4byte gUnknown_3005098
_0810DF14: .4byte gUnknown_2037AB8
-_0810DF18: .4byte gUnknown_30030F0
+_0810DF18: .4byte gMain
_0810DF1C: .4byte gUnknown_203ADBC
_0810DF20:
ldrb r0, [r6]
@@ -1640,7 +1640,7 @@ sub_810E0B4: @ 810E0B4
lsrs r1, 16
adds r0, r5, 0
bl sub_80986A8
- ldr r0, _0810E124 @ =gUnknown_30030F0
+ ldr r0, _0810E124 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x5
ands r0, r1
@@ -1662,7 +1662,7 @@ sub_810E0B4: @ 810E0B4
.align 2, 0
_0810E11C: .4byte gUnknown_3005098
_0810E120: .4byte gUnknown_203ADD0
-_0810E124: .4byte gUnknown_30030F0
+_0810E124: .4byte gMain
_0810E128: .4byte gUnknown_203ADBC
_0810E12C:
movs r0, 0x2
@@ -1720,7 +1720,7 @@ _0810E186:
.align 2, 0
_0810E190: .4byte gUnknown_3005098
_0810E194:
- ldr r0, _0810E1F0 @ =gUnknown_3005008
+ ldr r0, _0810E1F0 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r2, 0xA6
lsls r2, 2
@@ -1764,7 +1764,7 @@ _0810E1E6:
pop {r0}
bx r0
.align 2, 0
-_0810E1F0: .4byte gUnknown_3005008
+_0810E1F0: .4byte gSaveBlock1Ptr
_0810E1F4: .4byte gUnknown_203ADD0
_0810E1F8: .4byte gUnknown_3005E70
_0810E1FC: .4byte sub_810DEA0
@@ -2127,7 +2127,7 @@ sub_810E4F4: @ 810E4F4
lsls r0, 3
ldr r1, _0810E540 @ =gUnknown_3005098
adds r5, r0, r1
- ldr r0, _0810E544 @ =gUnknown_30030F0
+ ldr r0, _0810E544 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2155,7 +2155,7 @@ _0810E53A:
bx r0
.align 2, 0
_0810E540: .4byte gUnknown_3005098
-_0810E544: .4byte gUnknown_30030F0
+_0810E544: .4byte gMain
thumb_func_end sub_810E4F4
thumb_func_start sub_810E548
@@ -2163,7 +2163,7 @@ sub_810E548: @ 810E548
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0810E574 @ =gUnknown_30030F0
+ ldr r0, _0810E574 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2183,7 +2183,7 @@ _0810E56E:
pop {r0}
bx r0
.align 2, 0
-_0810E574: .4byte gUnknown_30030F0
+_0810E574: .4byte gMain
thumb_func_end sub_810E548
thumb_func_start sub_810E578
@@ -2369,7 +2369,7 @@ sub_810E6D8: @ 810E6D8
.align 2, 0
_0810E708: .4byte gUnknown_3005098
_0810E70C:
- ldr r0, _0810E74C @ =gUnknown_30030F0
+ ldr r0, _0810E74C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2393,7 +2393,7 @@ _0810E70C:
bl sub_810E418
b _0810E796
.align 2, 0
-_0810E74C: .4byte gUnknown_30030F0
+_0810E74C: .4byte gMain
_0810E750:
movs r0, 0x2
ands r0, r1
@@ -2518,7 +2518,7 @@ sub_810E848: @ 810E848
lsls r0, 3
ldr r1, _0810E898 @ =gUnknown_3005098
adds r5, r0, r1
- ldr r0, _0810E89C @ =gUnknown_30030F0
+ ldr r0, _0810E89C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2546,7 +2546,7 @@ _0810E892:
bx r0
.align 2, 0
_0810E898: .4byte gUnknown_3005098
-_0810E89C: .4byte gUnknown_30030F0
+_0810E89C: .4byte gMain
thumb_func_end sub_810E848
thumb_func_start sub_810E8A0
diff --git a/asm/item_use.s b/asm/item_use.s
index 63cd71e10..cd83baa59 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -1778,7 +1778,7 @@ sub_80A1D9C: @ 80A1D9C
cmp r0, 0x2
bne _080A1DD2
_080A1DB2:
- ldr r0, _080A1DEC @ =gUnknown_3005008
+ ldr r0, _080A1DEC @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -1806,7 +1806,7 @@ _080A1DD2:
b _080A1E00
.align 2, 0
_080A1DE8: .4byte gUnknown_2036DFC
-_080A1DEC: .4byte gUnknown_3005008
+_080A1DEC: .4byte gSaveBlock1Ptr
_080A1DF0: .4byte gUnknown_3005090
_080A1DF4:
ldr r1, _080A1E04 @ =gUnknown_2039998
@@ -1982,7 +1982,7 @@ sub_80A1F48: @ 80A1F48
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080A1F74 @ =gUnknown_30030F0
+ ldr r0, _080A1F74 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2001,7 +2001,7 @@ _080A1F6C:
pop {r0}
bx r0
.align 2, 0
-_080A1F74: .4byte gUnknown_30030F0
+_080A1F74: .4byte gMain
thumb_func_end sub_80A1F48
thumb_func_start sub_80A1F78
diff --git a/asm/learn_move.s b/asm/learn_move.s
index 70ec808d5..9f2629f6b 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -979,7 +979,7 @@ _080E4EA8:
.align 2, 0
_080E4EBC: .4byte gUnknown_203AAB4
_080E4EC0:
- ldr r0, _080E4EE8 @ =gUnknown_30030F0
+ ldr r0, _080E4EE8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1003,7 +1003,7 @@ _080E4EDA:
pop {r0}
bx r0
.align 2, 0
-_080E4EE8: .4byte gUnknown_30030F0
+_080E4EE8: .4byte gMain
_080E4EEC: .4byte gUnknown_203AAB4
thumb_func_end sub_80E48F4
@@ -1410,7 +1410,7 @@ sub_80E5204: @ 80E5204
adds r0, r1
ldrb r0, [r0]
bl ListMenuHandleInput
- ldr r0, _080E5260 @ =gUnknown_30030F0
+ ldr r0, _080E5260 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1443,7 +1443,7 @@ sub_80E5204: @ 80E5204
.align 2, 0
_080E5258: .4byte gUnknown_203AAB4
_080E525C: .4byte 0x00000263
-_080E5260: .4byte gUnknown_30030F0
+_080E5260: .4byte gMain
_080E5264: .4byte 0x00000a67
_080E5268: .4byte gUnknown_2021CF0
_080E526C: .4byte gUnknown_841E3FB
diff --git a/asm/link.s b/asm/link.s
index 5f29d6806..9d975387d 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -30,7 +30,7 @@ _08009498:
beq _080094C4
bl sub_800B210
bl sub_80098B8
- bl sub_8000874
+ bl RestoreSerialTimer3IntrHandlers
movs r0, 0
b _080094CE
.align 2, 0
@@ -237,13 +237,13 @@ sub_8009640: @ 8009640
adds r0, r2, 0
strh r0, [r1]
bl sub_8009804
- ldr r0, _080096E0 @ =gUnknown_30030F0
+ ldr r0, _080096E0 @ =gMain
ldrh r0, [r0, 0x24]
bl SeedRng
movs r4, 0
_08009670:
bl Random
- ldr r1, _080096E4 @ =gUnknown_300500C
+ ldr r1, _080096E4 @ =gSaveBlock2Ptr
ldr r1, [r1]
adds r1, 0xA
adds r1, r4
@@ -285,8 +285,8 @@ _08009670:
_080096D4: .4byte sub_800978C
_080096D8: .4byte gUnknown_202271A
_080096DC: .4byte 0x00001111
-_080096E0: .4byte gUnknown_30030F0
-_080096E4: .4byte gUnknown_300500C
+_080096E0: .4byte gMain
+_080096E4: .4byte gSaveBlock2Ptr
_080096E8: .4byte sub_80094D4
_080096EC: .4byte gUnknown_3000E58
_080096F0: .4byte task00_link_test
@@ -308,7 +308,7 @@ _08009704: .4byte gUnknown_2022720
sub_8009708: @ 8009708
push {r4,r5,lr}
ldr r5, _08009774 @ =gUnknown_2022720
- ldr r4, _08009778 @ =gUnknown_300500C
+ ldr r4, _08009778 @ =gSaveBlock2Ptr
ldr r1, [r4]
ldrb r2, [r1, 0xA]
ldrb r0, [r1, 0xB]
@@ -330,10 +330,10 @@ sub_8009708: @ 8009708
ldr r0, _0800977C @ =gUnknown_202271A
ldrh r0, [r0]
str r0, [r5, 0x14]
- ldr r0, _08009780 @ =gUnknown_81E9F11
+ ldr r0, _08009780 @ =gGameLanguage
ldrb r0, [r0]
strh r0, [r5, 0x1A]
- ldr r0, _08009784 @ =gUnknown_81E9F10
+ ldr r0, _08009784 @ =gGameVersion
ldrb r0, [r0]
movs r2, 0x80
lsls r2, 7
@@ -360,10 +360,10 @@ _0800976E:
bx r0
.align 2, 0
_08009774: .4byte gUnknown_2022720
-_08009778: .4byte gUnknown_300500C
+_08009778: .4byte gSaveBlock2Ptr
_0800977C: .4byte gUnknown_202271A
-_08009780: .4byte gUnknown_81E9F11
-_08009784: .4byte gUnknown_81E9F10
+_08009780: .4byte gGameLanguage
+_08009784: .4byte gGameVersion
_08009788: .4byte 0x00000844
thumb_func_end sub_8009708
@@ -443,7 +443,7 @@ sub_8009804: @ 8009804
ldr r1, _08009850 @ =gUnknown_3003F80
ldr r0, _08009854 @ =sub_800A720
str r0, [r1]
- ldr r0, _08009858 @ =gUnknown_300357C
+ ldr r0, _08009858 @ =gLinkVSyncDisabled
strb r4, [r0]
ldr r0, _0800985C @ =gUnknown_3003EAC
strb r4, [r0]
@@ -467,7 +467,7 @@ sub_8009804: @ 8009804
_0800984C: .4byte gUnknown_3003F3C
_08009850: .4byte gUnknown_3003F80
_08009854: .4byte sub_800A720
-_08009858: .4byte gUnknown_300357C
+_08009858: .4byte gLinkVSyncDisabled
_0800985C: .4byte gUnknown_3003EAC
_08009860: .4byte gUnknown_3003F38
_08009864: .4byte gUnknown_3000E4C
@@ -647,7 +647,7 @@ _080099CC: .4byte gUnknown_2022111
LinkTestProcessKeyInput: @ 80099D0
push {r4,r5,lr}
sub sp, 0x4
- ldr r4, _08009A70 @ =gUnknown_30030F0
+ ldr r4, _08009A70 @ =gMain
ldrh r1, [r4, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -710,7 +710,7 @@ _08009A46:
cmp r0, 0
beq _08009A66
ldr r2, [r4, 0x24]
- ldr r0, _08009A84 @ =gUnknown_300357C
+ ldr r0, _08009A84 @ =gLinkVSyncDisabled
ldrb r1, [r0]
ldr r0, _08009A88 @ =gUnknown_3003F80
ldr r0, [r0]
@@ -727,12 +727,12 @@ _08009A66:
pop {r0}
bx r0
.align 2, 0
-_08009A70: .4byte gUnknown_30030F0
+_08009A70: .4byte gMain
_08009A74: .4byte gUnknown_3003F84
_08009A78: .4byte gHeap + 0x4000
_08009A7C: .4byte 0x00002004
_08009A80: .4byte gUnknown_2022110
-_08009A84: .4byte gUnknown_300357C
+_08009A84: .4byte gLinkVSyncDisabled
_08009A88: .4byte gUnknown_3003F80
thumb_func_end LinkTestProcessKeyInput
@@ -1327,12 +1327,12 @@ _08009F18: .4byte gUnknown_202271A
_08009F1C:
ldr r0, _08009F28 @ =gUnknown_3003F50
strh r2, [r0]
- ldr r1, _08009F2C @ =gUnknown_30030F0
+ ldr r1, _08009F2C @ =gMain
ldrh r1, [r1, 0x2C]
b _08009FD4
.align 2, 0
_08009F28: .4byte gUnknown_3003F50
-_08009F2C: .4byte gUnknown_30030F0
+_08009F2C: .4byte gMain
_08009F30:
ldr r0, _08009F38 @ =gUnknown_3003F50
movs r1, 0
@@ -1408,7 +1408,7 @@ _08009FC0:
ldrh r1, [r0]
cmp r1, 0
beq _08009FD6
- ldr r0, _08009FE0 @ =gUnknown_30030E4
+ ldr r0, _08009FE0 @ =gLinkTransferringData
ldrb r0, [r0]
cmp r0, 0
bne _08009FD6
@@ -1422,7 +1422,7 @@ _08009FD6:
bx r0
.align 2, 0
_08009FDC: .4byte gUnknown_3005028
-_08009FE0: .4byte gUnknown_30030E4
+_08009FE0: .4byte gLinkTransferringData
_08009FE4: .4byte gUnknown_3003F50
thumb_func_end sub_8009E60
@@ -3042,7 +3042,7 @@ _0800AB5C:
ldr r1, _0800AB8C @ =0x0000ffdf
ands r0, r1
str r0, [r2]
- ldr r0, _0800AB90 @ =gUnknown_300357C
+ ldr r0, _0800AB90 @ =gLinkVSyncDisabled
movs r4, 0x1
strb r4, [r0]
bl sub_80098B8
@@ -3059,7 +3059,7 @@ _0800AB7E:
_0800AB84: .4byte gUnknown_3003F30
_0800AB88: .4byte gUnknown_2022B4C
_0800AB8C: .4byte 0x0000ffdf
-_0800AB90: .4byte gUnknown_300357C
+_0800AB90: .4byte gLinkVSyncDisabled
_0800AB94: .4byte gUnknown_3003F80
_0800AB98: .4byte gUnknown_3003F24
thumb_func_end sub_800AB38
@@ -3312,14 +3312,14 @@ _0800AD30:
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
- ldr r1, _0800AE0C @ =gUnknown_3003530
+ ldr r1, _0800AE0C @ =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
ldr r0, _0800AE10 @ =sub_80094D4
movs r1, 0
bl CreateTask
bl StopMapMusic
- ldr r1, _0800AE14 @ =gUnknown_30030F0
+ ldr r1, _0800AE14 @ =gMain
movs r0, 0
str r0, [r1]
bl RunTasks
@@ -3344,9 +3344,9 @@ _0800ADFC: .4byte gUnknown_82345E8
_0800AE00: .4byte gUnknown_2022860
_0800AE04: .4byte gUnknown_82345F0
_0800AE08: .4byte gUnknown_841F408
-_0800AE0C: .4byte gUnknown_3003530
+_0800AE0C: .4byte gSoftResetDisabled
_0800AE10: .4byte sub_80094D4
-_0800AE14: .4byte gUnknown_30030F0
+_0800AE14: .4byte gMain
_0800AE18: .4byte sub_800AF2C
thumb_func_end c2_800ACD4
@@ -3469,7 +3469,7 @@ _0800AF28: .4byte gUnknown_841DE9D
sub_800AF2C: @ 800AF2C
push {r4,lr}
sub sp, 0xC
- ldr r0, _0800AF4C @ =gUnknown_30030F0
+ ldr r0, _0800AF4C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -3484,7 +3484,7 @@ sub_800AF2C: @ 800AF2C
beq _0800AF72
b _0800AFC4
.align 2, 0
-_0800AF4C: .4byte gUnknown_30030F0
+_0800AF4C: .4byte gMain
_0800AF50:
cmp r0, 0x5A
beq _0800AF72
@@ -3543,7 +3543,7 @@ _0800AFA8:
movs r3, 0x14
bl box_print
_0800AFC4:
- ldr r0, _0800B004 @ =gUnknown_30030F0
+ ldr r0, _0800B004 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r0, r2
@@ -3571,7 +3571,7 @@ _0800AFC4:
.align 2, 0
_0800AFFC: .4byte gUnknown_8234610
_0800B000: .4byte gUnknown_841DF4C
-_0800B004: .4byte gUnknown_30030F0
+_0800B004: .4byte gMain
_0800B008: .4byte gUnknown_3003F3C
_0800B00C: .4byte gUnknown_2022854
_0800B010:
@@ -3585,9 +3585,9 @@ _0800B010:
bl sub_812B484
bl rfu_REQ_stopMode
bl rfu_waitREQComplete
- bl sub_80008D8
+ bl DoSoftReset
_0800B02E:
- ldr r0, _0800B050 @ =gUnknown_30030F0
+ ldr r0, _0800B050 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r0, r2
@@ -3607,7 +3607,7 @@ _0800B048:
pop {r0}
bx r0
.align 2, 0
-_0800B050: .4byte gUnknown_30030F0
+_0800B050: .4byte gMain
thumb_func_end sub_800AF2C
thumb_func_start GetSioMultiSI
@@ -3783,7 +3783,7 @@ HandleLinkConnection: @ 800B178
bl LinkMain1
ldr r4, _0800B1C0 @ =gUnknown_3003F20
str r0, [r4]
- ldr r0, _0800B1C4 @ =gUnknown_300311C
+ ldr r0, _0800B1C4 @ =gMain + 0x2C
bl LinkMain2
ldr r0, [r4]
movs r1, 0x80
@@ -3803,7 +3803,7 @@ _0800B1B4: .4byte gUnknown_3003F84
_0800B1B8: .4byte gUnknown_3003F50
_0800B1BC: .4byte gUnknown_3003ED0
_0800B1C0: .4byte gUnknown_3003F20
-_0800B1C4: .4byte gUnknown_300311C
+_0800B1C4: .4byte gMain + 0x2C
_0800B1C8:
bl sub_80FAE94
adds r4, r0, 0
@@ -4505,8 +4505,8 @@ _0800B710: .4byte 0x04000208
_0800B714: .4byte gUnknown_3004F74
thumb_func_end sub_800B608
- thumb_func_start sub_800B718
-sub_800B718: @ 800B718
+ thumb_func_start LinkVSync
+LinkVSync: @ 800B718
push {r4,lr}
ldr r3, _0800B740 @ =gUnknown_3003FB0
ldrb r4, [r3]
@@ -4568,7 +4568,7 @@ _0800B77E:
bx r0
.align 2, 0
_0800B784: .4byte gUnknown_3000E64
- thumb_func_end sub_800B718
+ thumb_func_end LinkVSync
thumb_func_start Timer3Intr
Timer3Intr: @ 800B788
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
index b29441cff..3bb3ca1bd 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -3534,47 +3534,47 @@ _080FEE60:
.4byte _080FEF12
.4byte _080FEEEC
_080FEE9C:
- ldr r0, _080FEEA8 @ =gUnknown_3005008
+ ldr r0, _080FEEA8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _080FEEAC @ =0x00002ca0
adds r1, r0, r2
b _080FEF08
.align 2, 0
-_080FEEA8: .4byte gUnknown_3005008
+_080FEEA8: .4byte gSaveBlock1Ptr
_080FEEAC: .4byte 0x00002ca0
_080FEEB0:
- ldr r0, _080FEEBC @ =gUnknown_3005008
+ ldr r0, _080FEEBC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _080FEEC0 @ =0x00002cac
adds r1, r0, r2
b _080FEF08
.align 2, 0
-_080FEEBC: .4byte gUnknown_3005008
+_080FEEBC: .4byte gSaveBlock1Ptr
_080FEEC0: .4byte 0x00002cac
_080FEEC4:
- ldr r0, _080FEED0 @ =gUnknown_3005008
+ ldr r0, _080FEED0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _080FEED4 @ =0x00002cb8
adds r1, r0, r2
b _080FEF08
.align 2, 0
-_080FEED0: .4byte gUnknown_3005008
+_080FEED0: .4byte gSaveBlock1Ptr
_080FEED4: .4byte 0x00002cb8
_080FEED8:
- ldr r0, _080FEEE4 @ =gUnknown_3005008
+ ldr r0, _080FEEE4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _080FEEE8 @ =0x00002cc4
adds r1, r0, r2
b _080FEF08
.align 2, 0
-_080FEEE4: .4byte gUnknown_3005008
+_080FEEE4: .4byte gSaveBlock1Ptr
_080FEEE8: .4byte 0x00002cc4
_080FEEEC:
bl sub_8143DA8
adds r1, r0, 0
b _080FEF08
_080FEEF4:
- ldr r2, _080FEF18 @ =gUnknown_3005008
+ ldr r2, _080FEF18 @ =gSaveBlock1Ptr
ldr r0, _080FEF1C @ =gUnknown_20370C2
ldrh r1, [r0]
lsls r0, r1, 3
@@ -3593,7 +3593,7 @@ _080FEF12:
pop {r0}
bx r0
.align 2, 0
-_080FEF18: .4byte gUnknown_3005008
+_080FEF18: .4byte gSaveBlock1Ptr
_080FEF1C: .4byte gUnknown_20370C2
_080FEF20: .4byte 0x00002cd0
_080FEF24: .4byte gUnknown_20370C0
@@ -3794,7 +3794,7 @@ _080FF094:
thumb_func_start sub_80FF098
sub_80FF098: @ 80FF098
push {r4-r7,lr}
- ldr r0, _080FF0C0 @ =gUnknown_30030F0
+ ldr r0, _080FF0C0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3814,7 +3814,7 @@ sub_80FF098: @ 80FF098
movs r0, 0x9
b _080FF1FC
.align 2, 0
-_080FF0C0: .4byte gUnknown_30030F0
+_080FF0C0: .4byte gMain
_080FF0C4: .4byte gUnknown_203ACE8
_080FF0C8:
movs r0, 0x20
@@ -3994,7 +3994,7 @@ _080FF208: .4byte 0x00040100
thumb_func_start sub_80FF20C
sub_80FF20C: @ 80FF20C
push {r4-r6,lr}
- ldr r2, _080FF22C @ =gUnknown_30030F0
+ ldr r2, _080FF22C @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -4009,7 +4009,7 @@ sub_80FF20C: @ 80FF20C
beq _080FF26A
b _080FF254
.align 2, 0
-_080FF22C: .4byte gUnknown_30030F0
+_080FF22C: .4byte gMain
_080FF230: .4byte gUnknown_203ACE8
_080FF234:
movs r0, 0x20
@@ -4176,7 +4176,7 @@ _080FF35C: .4byte gUnknown_203ACE8
thumb_func_start sub_80FF360
sub_80FF360: @ 80FF360
push {lr}
- ldr r1, _080FF378 @ =gUnknown_30030F0
+ ldr r1, _080FF378 @ =gMain
ldrh r2, [r1, 0x2E]
movs r0, 0x2
ands r0, r2
@@ -4186,7 +4186,7 @@ sub_80FF360: @ 80FF360
bl sub_80FF678
b _080FF412
.align 2, 0
-_080FF378: .4byte gUnknown_30030F0
+_080FF378: .4byte gMain
_080FF37C:
movs r0, 0x1
ands r0, r2
@@ -4279,7 +4279,7 @@ _080FF416:
thumb_func_start sub_80FF41C
sub_80FF41C: @ 80FF41C
push {lr}
- ldr r2, _080FF438 @ =gUnknown_30030F0
+ ldr r2, _080FF438 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -4292,7 +4292,7 @@ sub_80FF41C: @ 80FF41C
movs r0, 0xD
b _080FF4A2
.align 2, 0
-_080FF438: .4byte gUnknown_30030F0
+_080FF438: .4byte gMain
_080FF43C: .4byte gUnknown_203ACE8
_080FF440:
movs r0, 0x1
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index 8609dd759..531ebfe0f 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -105,8 +105,8 @@ _080F86BC: .4byte gUnknown_202273C
_080F86C0: .4byte 0x01000046
thumb_func_end sub_80F85F8
- thumb_func_start sub_80F86C4
-sub_80F86C4: @ 80F86C4
+ thumb_func_start InitRFU
+InitRFU: @ 80F86C4
push {r4-r6,lr}
ldr r4, _080F86EC @ =gIntrTable
ldr r5, [r4, 0x4]
@@ -127,14 +127,14 @@ sub_80F86C4: @ 80F86C4
.align 2, 0
_080F86EC: .4byte gIntrTable
_080F86F0: .4byte 0x04000208
- thumb_func_end sub_80F86C4
+ thumb_func_end InitRFU
thumb_func_start sub_80F86F4
sub_80F86F4: @ 80F86F4
push {r4,lr}
ldr r0, _080F8728 @ =gUnknown_3001190
ldr r1, _080F872C @ =0x00000e64
- ldr r4, _080F8730 @ =gUnknown_3003544
+ ldr r4, _080F8730 @ =gIntrTable + 0x4
adds r2, r4, 0
movs r3, 0x1
bl sub_81E05B0
@@ -157,7 +157,7 @@ _080F8722:
.align 2, 0
_080F8728: .4byte gUnknown_3001190
_080F872C: .4byte 0x00000e64
-_080F8730: .4byte gUnknown_3003544
+_080F8730: .4byte gIntrTable + 0x4
_080F8734: .4byte gUnknown_202271A
thumb_func_end sub_80F86F4
@@ -2248,7 +2248,7 @@ rfu_func_080F97B8: @ 80F97B8
ldrh r2, [r3]
cmp r2, 0
beq _080F97EA
- ldr r0, _080F97F8 @ =gUnknown_30030E4
+ ldr r0, _080F97F8 @ =gLinkTransferringData
ldrb r0, [r0]
cmp r0, 0x1
beq _080F97EA
@@ -2269,7 +2269,7 @@ _080F97EA:
.align 2, 0
_080F97F0: .4byte gUnknown_3003F64
_080F97F4: .4byte gUnknown_3005028
-_080F97F8: .4byte gUnknown_30030E4
+_080F97F8: .4byte gLinkTransferringData
_080F97FC: .4byte gUnknown_3001188
thumb_func_end rfu_func_080F97B8
@@ -5150,7 +5150,7 @@ sub_80FAD98: @ 80FAD98
ldrb r0, [r0, 0x2]
cmp r0, 0
bne _080FAE30
- ldr r6, _080FAE18 @ =gUnknown_30030F0
+ ldr r6, _080FAE18 @ =gMain
ldr r1, [r6, 0x4]
ldr r0, _080FAE1C @ =sub_814208C
cmp r1, r0
@@ -5198,7 +5198,7 @@ _080FADF8:
.align 2, 0
_080FAE10: .4byte gUnknown_3005450
_080FAE14: .4byte gUnknown_3005E10
-_080FAE18: .4byte gUnknown_30030F0
+_080FAE18: .4byte gMain
_080FAE1C: .4byte sub_814208C
_080FAE20: .4byte gUnknown_3003F3C
_080FAE24: .4byte c2_800ACD4
@@ -5335,14 +5335,14 @@ _080FAF18: .4byte gUnknown_3005450
sub_80FAF1C: @ 80FAF1C
push {lr}
ldr r0, _080FAF2C @ =gUnknown_3005E00
- ldr r1, _080FAF30 @ =gUnknown_300500C
+ ldr r1, _080FAF30 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
pop {r0}
bx r0
.align 2, 0
_080FAF2C: .4byte gUnknown_3005E00
-_080FAF30: .4byte gUnknown_300500C
+_080FAF30: .4byte gSaveBlock2Ptr
thumb_func_end sub_80FAF1C
thumb_func_start sub_80FAF34
@@ -6821,13 +6821,13 @@ sub_80FBA2C: @ 80FBA2C
_080FBA34: .4byte gUnknown_3005450
thumb_func_end sub_80FBA2C
- thumb_func_start LinkVSync
-LinkVSync: @ 80FBA38
+ thumb_func_start RFUVSync
+RFUVSync: @ 80FBA38
push {lr}
bl rfu_syncVBlank_
pop {r0}
bx r0
- thumb_func_end LinkVSync
+ thumb_func_end RFUVSync
thumb_func_start sub_80FBA44
sub_80FBA44: @ 80FBA44
@@ -6876,13 +6876,13 @@ sub_80FBA78: @ 80FBA78
strh r0, [r1]
bl sub_800B1F4
bl sub_8009804
- ldr r0, _080FBB00 @ =gUnknown_30030F0
+ ldr r0, _080FBB00 @ =gMain
ldrh r0, [r0, 0x24]
bl SeedRng
movs r4, 0
_080FBAB4:
bl Random
- ldr r1, _080FBB04 @ =gUnknown_300500C
+ ldr r1, _080FBB04 @ =gSaveBlock2Ptr
ldr r1, [r1]
adds r1, 0xA
adds r1, r4
@@ -6909,8 +6909,8 @@ _080FBAEC:
_080FBAF4: .4byte sub_80FBA64
_080FBAF8: .4byte gUnknown_202271A
_080FBAFC: .4byte 0x00001111
-_080FBB00: .4byte gUnknown_30030F0
-_080FBB04: .4byte gUnknown_300500C
+_080FBB00: .4byte gMain
+_080FBB04: .4byte gSaveBlock2Ptr
_080FBB08: .4byte sub_80FBB74
thumb_func_end sub_80FBA78
@@ -9106,7 +9106,7 @@ sub_80FCB54: @ 80FCB54
lsrs r1, 24
mov r9, r1
movs r4, 0
- ldr r0, _080FCC30 @ =gUnknown_300500C
+ ldr r0, _080FCC30 @ =gSaveBlock2Ptr
mov r8, r0
adds r6, r7, 0x2
ldr r0, [r0]
@@ -9207,7 +9207,7 @@ _080FCB88:
pop {r0}
bx r0
.align 2, 0
-_080FCC30: .4byte gUnknown_300500C
+_080FCC30: .4byte gSaveBlock2Ptr
_080FCC34: .4byte 0x00000844
_080FCC38: .4byte 0x0000082c
thumb_func_end sub_80FCB54
@@ -9489,7 +9489,7 @@ sub_80FCE44: @ 80FCE44
lsls r0, 2
adds r0, r4
bl DestroySprite
- ldr r3, _080FCE9C @ =gUnknown_30030F0
+ ldr r3, _080FCE9C @ =gMain
movs r0, 0x84
lsls r0, 3
adds r3, r0
@@ -9509,7 +9509,7 @@ _080FCE8A:
_080FCE90: .4byte gUnknown_202063C
_080FCE94: .4byte gUnknown_203ACE4
_080FCE98: .4byte 0x00001234
-_080FCE9C: .4byte gUnknown_30030F0
+_080FCE9C: .4byte gMain
_080FCEA0: .4byte gUnknown_8231CE4
_080FCEA4: .4byte 0x070003e8
thumb_func_end sub_80FCE44
@@ -9760,7 +9760,7 @@ _080FD06C:
adds r0, 0x1
strh r0, [r6, 0x34]
_080FD072:
- ldr r4, _080FD110 @ =gUnknown_30030F0
+ ldr r4, _080FD110 @ =gMain
movs r1, 0x84
lsls r1, 3
adds r0, r4, r1
@@ -9838,7 +9838,7 @@ _080FD106:
pop {r0}
bx r0
.align 2, 0
-_080FD110: .4byte gUnknown_30030F0
+_080FD110: .4byte gMain
_080FD114: .4byte gUnknown_843F204
_080FD118: .4byte 0x00000422
_080FD11C: .4byte 0x000001ff
@@ -9964,7 +9964,7 @@ _080FD1C8:
adds r3, r7, r0
_080FD1F4:
ldrh r1, [r3]
- ldr r0, _080FD254 @ =gUnknown_3005008
+ ldr r0, _080FD254 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r7, _080FD250 @ =0x00003ba8
adds r0, r2, r7
@@ -10000,7 +10000,7 @@ _080FD22C:
movs r0, 0
mov r8, r0
movs r4, 0
- ldr r1, _080FD254 @ =gUnknown_3005008
+ ldr r1, _080FD254 @ =gSaveBlock1Ptr
mov r9, r1
mov r7, sp
movs r5, 0
@@ -10009,7 +10009,7 @@ _080FD22C:
.align 2, 0
_080FD24C: .4byte gUnknown_2022744
_080FD250: .4byte 0x00003ba8
-_080FD254: .4byte gUnknown_3005008
+_080FD254: .4byte gSaveBlock1Ptr
_080FD258:
bl GetMultiplayerId
lsls r0, 24
@@ -10055,7 +10055,7 @@ _080FD2A4:
cmp r4, r0
blt _080FD258
movs r4, 0
- ldr r7, _080FD330 @ =gUnknown_3005008
+ ldr r7, _080FD330 @ =gSaveBlock1Ptr
mov r9, r7
ldr r6, _080FD334 @ =0x00003ba8
movs r7, 0
@@ -10096,7 +10096,7 @@ _080FD2F8:
cmp r4, 0x13
ble _080FD2C6
_080FD302:
- ldr r0, _080FD330 @ =gUnknown_3005008
+ ldr r0, _080FD330 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _080FD334 @ =0x00003ba8
adds r0, r1
@@ -10117,7 +10117,7 @@ _080FD318:
.align 2, 0
_080FD328: .4byte gUnknown_202273C
_080FD32C: .4byte 0x00003bac
-_080FD330: .4byte gUnknown_3005008
+_080FD330: .4byte gSaveBlock1Ptr
_080FD334: .4byte 0x00003ba8
thumb_func_end sub_80FD1A0
@@ -10132,7 +10132,7 @@ sub_80FD338: @ 80FD338
lsrs r0, 16
mov r8, r0
movs r7, 0
- ldr r6, _080FD374 @ =gUnknown_3005008
+ ldr r6, _080FD374 @ =gSaveBlock1Ptr
ldr r4, _080FD378 @ =0x00003ba8
movs r5, 0
_080FD350:
@@ -10154,7 +10154,7 @@ _080FD350:
movs r0, 0x1
b _080FD396
.align 2, 0
-_080FD374: .4byte gUnknown_3005008
+_080FD374: .4byte gSaveBlock1Ptr
_080FD378: .4byte 0x00003ba8
_080FD37C:
ldr r0, [r6]
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 9e0ecef51..d194ed0dd 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -111,7 +111,7 @@ sub_8115924: @ 8115924
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r6, _08115994 @ =gUnknown_300500C
+ ldr r6, _08115994 @ =gSaveBlock2Ptr
ldr r2, [r6]
movs r0, 0x2
str r0, [sp]
@@ -155,7 +155,7 @@ sub_8115924: @ 8115924
pop {r0}
bx r0
.align 2, 0
-_08115994: .4byte gUnknown_300500C
+_08115994: .4byte gSaveBlock2Ptr
_08115998: .4byte gUnknown_84571B4
thumb_func_end sub_8115924
@@ -513,7 +513,7 @@ _08115D04:
movs r1, 0x7
movs r2, 0xA
bl sub_8116444
- ldr r0, _08115D24 @ =gUnknown_30030F0
+ ldr r0, _08115D24 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -525,7 +525,7 @@ _08115D04:
movs r0, 0x17
b _08115D3E
.align 2, 0
-_08115D24: .4byte gUnknown_30030F0
+_08115D24: .4byte gMain
_08115D28:
ldr r0, _08115D38 @ =gUnknown_203B059
ldrb r1, [r0]
@@ -559,7 +559,7 @@ _08115D40:
bl sub_80FC1CC
cmp r0, 0
beq _08115D76
- ldr r0, _08115D90 @ =gUnknown_30030F0
+ ldr r0, _08115D90 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x8
ands r0, r1
@@ -581,7 +581,7 @@ _08115D88:
b _08115EEE
.align 2, 0
_08115D8C: .4byte gUnknown_203B059
-_08115D90: .4byte gUnknown_30030F0
+_08115D90: .4byte gMain
_08115D94:
bl sub_80FA5D4
cmp r0, 0
@@ -1974,7 +1974,7 @@ _0811691E:
ldrb r0, [r6, 0xE]
bl ListMenuHandleInput
adds r4, r0, 0
- ldr r0, _0811696C @ =gUnknown_30030F0
+ ldr r0, _0811696C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2008,7 +2008,7 @@ _0811691E:
movs r0, 0x5
b _08116982
.align 2, 0
-_0811696C: .4byte gUnknown_30030F0
+_0811696C: .4byte gMain
_08116970:
ldr r0, _0811698C @ =gUnknown_2021D18
ldr r2, _08116990 @ =gUnknown_8457608
@@ -2031,7 +2031,7 @@ _08116994:
bl sub_80722CC
b _08116D06
_0811699C:
- ldr r0, _081169B0 @ =gUnknown_30030F0
+ ldr r0, _081169B0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -2043,7 +2043,7 @@ _081169AA:
strb r0, [r6, 0x8]
b _08116D06
.align 2, 0
-_081169B0: .4byte gUnknown_30030F0
+_081169B0: .4byte gMain
_081169B4:
ldr r4, _081169FC @ =gUnknown_2021D18
ldr r0, _08116A00 @ =gUnknown_203B058
@@ -2233,7 +2233,7 @@ _08116B70:
beq _08116B7C
b _08116D06
_08116B7C:
- ldr r0, _08116B90 @ =gUnknown_30030F0
+ ldr r0, _08116B90 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -2245,7 +2245,7 @@ _08116B8A:
strb r0, [r6, 0x8]
b _08116D06
.align 2, 0
-_08116B90: .4byte gUnknown_30030F0
+_08116B90: .4byte gMain
_08116B94:
adds r0, r6, 0
adds r0, 0x9
@@ -2441,7 +2441,7 @@ sub_8116D10: @ 8116D10
beq _08116D56
cmp r1, 0x14
beq _08116D56
- ldr r0, _08116D48 @ =gUnknown_300500C
+ ldr r0, _08116D48 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x9]
movs r2, 0x80
@@ -2453,7 +2453,7 @@ sub_8116D10: @ 8116D10
b _08116D5C
.align 2, 0
_08116D44: .4byte gUnknown_203B058
-_08116D48: .4byte gUnknown_300500C
+_08116D48: .4byte gSaveBlock2Ptr
_08116D4C:
ldrb r1, [r3]
adds r0, r2, 0
@@ -3041,7 +3041,7 @@ _081171D0: .4byte gUnknown_202402C
_081171D4: .4byte gUnknown_2022118
_081171D8:
ldr r4, _08117204 @ =gUnknown_2022618
- ldr r0, _08117208 @ =gUnknown_3005008
+ ldr r0, _08117208 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _0811720C @ =0x00002cd0
adds r1, r0
@@ -3062,7 +3062,7 @@ _081171FA:
b _0811725C
.align 2, 0
_08117204: .4byte gUnknown_2022618
-_08117208: .4byte gUnknown_3005008
+_08117208: .4byte gSaveBlock1Ptr
_0811720C: .4byte 0x00002cd0
_08117210:
bl GetBlockReceivedStatus
@@ -3087,7 +3087,7 @@ _08117210:
strb r7, [r1]
movs r0, 0x6
strb r0, [r1, 0x1]
- ldr r1, _08117274 @ =gUnknown_30030F0
+ ldr r1, _08117274 @ =gMain
ldr r0, _08117278 @ =c2_exit_to_overworld_2_switch
str r0, [r1, 0x8]
ldr r0, _0811727C @ =sub_8050138
@@ -3106,7 +3106,7 @@ _0811725C:
_08117268: .4byte gUnknown_2031CCC
_0811726C: .4byte gUnknown_2022118
_08117270: .4byte gUnknown_2031DA4
-_08117274: .4byte gUnknown_30030F0
+_08117274: .4byte gMain
_08117278: .4byte c2_exit_to_overworld_2_switch
_0811727C: .4byte sub_8050138
thumb_func_end sub_8117130
@@ -3218,7 +3218,7 @@ _0811734A:
thumb_func_start sub_8117354
sub_8117354: @ 8117354
push {r4,lr}
- ldr r0, _0811736C @ =gUnknown_30030F0
+ ldr r0, _0811736C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r4, r0, r1
@@ -3229,7 +3229,7 @@ sub_8117354: @ 8117354
beq _08117384
b _081173A2
.align 2, 0
-_0811736C: .4byte gUnknown_30030F0
+_0811736C: .4byte gMain
_08117370:
ldr r0, _08117380 @ =sub_8117280
movs r1, 0x5
@@ -3305,7 +3305,7 @@ sub_81173C0: @ 81173C0
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x18]
- ldr r1, _08117434 @ =gUnknown_30030F0
+ ldr r1, _08117434 @ =gMain
ldr r0, _08117438 @ =sub_8081668
str r0, [r1, 0x8]
ldr r0, _0811743C @ =gUnknown_2022B4C
@@ -3317,7 +3317,7 @@ sub_81173C0: @ 81173C0
.align 2, 0
_0811742C: .4byte gUnknown_202273C
_08117430: .4byte 0x00002211
-_08117434: .4byte gUnknown_30030F0
+_08117434: .4byte gMain
_08117438: .4byte sub_8081668
_0811743C: .4byte gUnknown_2022B4C
thumb_func_end sub_81173C0
@@ -3340,7 +3340,7 @@ sub_8117440: @ 8117440
ldr r0, _081174AC @ =0x0000406f
adds r1, r3, 0
bl VarSet
- ldr r6, _081174B0 @ =gUnknown_3005008
+ ldr r6, _081174B0 @ =gSaveBlock1Ptr
ldr r1, [r6]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -3376,7 +3376,7 @@ sub_8117440: @ 8117440
bx r0
.align 2, 0
_081174AC: .4byte 0x0000406f
-_081174B0: .4byte gUnknown_3005008
+_081174B0: .4byte gSaveBlock1Ptr
thumb_func_end sub_8117440
thumb_func_start sub_81174B4
@@ -3441,7 +3441,7 @@ _08117530: .4byte gUnknown_300502C
thumb_func_start sub_8117534
sub_8117534: @ 8117534
push {r4,lr}
- ldr r0, _0811754C @ =gUnknown_30030F0
+ ldr r0, _0811754C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r4, r0, r1
@@ -3452,7 +3452,7 @@ sub_8117534: @ 8117534
beq _08117564
b _08117576
.align 2, 0
-_0811754C: .4byte gUnknown_30030F0
+_0811754C: .4byte gMain
_08117550:
ldr r0, _08117560 @ =sub_8117280
movs r1, 0x5
@@ -3646,14 +3646,14 @@ _08117640:
.4byte _08117784
_08117784:
bl sub_80563F0
- ldr r1, _08117798 @ =gUnknown_30030F0
+ ldr r1, _08117798 @ =gMain
ldr r0, _0811779C @ =sub_811C1C8
str r0, [r1, 0x8]
movs r0, 0x2
bl sub_81274A8
b _081178E0
.align 2, 0
-_08117798: .4byte gUnknown_30030F0
+_08117798: .4byte gMain
_0811779C: .4byte sub_811C1C8
_081177A0:
bl sub_80563F0
@@ -4124,7 +4124,7 @@ _08117BBC:
movs r1, 0x5
movs r2, 0x6
bl sub_8116444
- ldr r0, _08117BE0 @ =gUnknown_30030F0
+ ldr r0, _08117BE0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -4137,7 +4137,7 @@ _08117BD4:
bl sub_80FCE44
b _08117ECA
.align 2, 0
-_08117BE0: .4byte gUnknown_30030F0
+_08117BE0: .4byte gMain
_08117BE4:
adds r0, r5, 0
adds r0, 0xD
@@ -4679,7 +4679,7 @@ _0811808E:
ldrb r0, [r5, 0xE]
bl ListMenuHandleInput
adds r2, r0, 0
- ldr r0, _08118128 @ =gUnknown_30030F0
+ ldr r0, _08118128 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -4744,14 +4744,14 @@ _0811808E:
strb r0, [r5, 0x8]
b _08118288
.align 2, 0
-_08118128: .4byte gUnknown_30030F0
+_08118128: .4byte gMain
_0811812C: .4byte gUnknown_2021CD0
_08118130:
movs r0, 0x7
bl sub_80722CC
b _08118288
_08118138:
- ldr r0, _0811814C @ =gUnknown_30030F0
+ ldr r0, _0811814C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -4763,7 +4763,7 @@ _08118146:
strb r0, [r5, 0x8]
b _08118288
.align 2, 0
-_0811814C: .4byte gUnknown_30030F0
+_0811814C: .4byte gMain
_08118150:
ldr r0, _08118184 @ =gUnknown_8459238
bl sub_8142504
@@ -5144,7 +5144,7 @@ _0811849C:
strb r0, [r5, 0x8]
b _081184BC
_081184A8:
- ldr r0, _081184C4 @ =gUnknown_30030F0
+ ldr r0, _081184C4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -5160,7 +5160,7 @@ _081184BC:
strb r0, [r5, 0x14]
b _08118604
.align 2, 0
-_081184C4: .4byte gUnknown_30030F0
+_081184C4: .4byte gMain
_081184C8:
ldr r0, _081184FC @ =gUnknown_845928C
bl sub_8142504
@@ -5716,7 +5716,7 @@ _081189AA:
movs r0, 0x2
bl sub_80722CC
ldr r0, _081189DC @ =gUnknown_2021CD0
- ldr r1, _081189E0 @ =gUnknown_300500C
+ ldr r1, _081189E0 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
movs r1, 0
@@ -5725,7 +5725,7 @@ _081189AA:
.align 2, 0
_081189D8: .4byte gUnknown_20370D0
_081189DC: .4byte gUnknown_2021CD0
-_081189E0: .4byte gUnknown_300500C
+_081189E0: .4byte gSaveBlock2Ptr
_081189E4:
cmp r0, 0xB
bne _081189F8
@@ -5756,7 +5756,7 @@ _08118A0E:
bne _08118A1E
bl _081198DC
_08118A1E:
- ldr r0, _08118A4C @ =gUnknown_30030F0
+ ldr r0, _08118A4C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -5776,7 +5776,7 @@ _08118A1E:
movs r0, 0x18
bl _081198DA
.align 2, 0
-_08118A4C: .4byte gUnknown_30030F0
+_08118A4C: .4byte gMain
_08118A50:
bl sub_811A9B8
cmp r0, 0
@@ -5789,14 +5789,14 @@ _08118A50:
bl sub_80722CC
bl sub_811B298
ldr r0, _08118A7C @ =gUnknown_2021CD0
- ldr r1, _08118A80 @ =gUnknown_300500C
+ ldr r1, _08118A80 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
movs r0, 0x2D
bl _081198DA
.align 2, 0
_08118A7C: .4byte gUnknown_2021CD0
-_08118A80: .4byte gUnknown_300500C
+_08118A80: .4byte gSaveBlock2Ptr
_08118A84:
bl sub_8119B94
lsls r0, 24
@@ -6590,7 +6590,7 @@ _08119184:
bne _08119196
b _081198DC
_08119196:
- ldr r0, _081191B8 @ =gUnknown_30030F0
+ ldr r0, _081191B8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -6606,7 +6606,7 @@ _081191A4:
movs r0, 0x24
b _081198DA
.align 2, 0
-_081191B8: .4byte gUnknown_30030F0
+_081191B8: .4byte gMain
_081191BC: .4byte gUnknown_2021D18
_081191C0: .4byte gUnknown_8457E60
_081191C4:
@@ -8717,7 +8717,7 @@ _0811A274:
ldrb r0, [r3]
bl ListMenuHandleInput
mov r8, r0
- ldr r0, _0811A2AC @ =gUnknown_30030F0
+ ldr r0, _0811A2AC @ =gMain
ldrh r1, [r0, 0x2E]
ands r4, r1
cmp r4, 0
@@ -8737,7 +8737,7 @@ _0811A274:
mov r0, r8
b _0811A2DE
.align 2, 0
-_0811A2AC: .4byte gUnknown_30030F0
+_0811A2AC: .4byte gMain
_0811A2B0:
movs r0, 0x2
ands r0, r1
@@ -8823,7 +8823,7 @@ _0811A358:
ldrb r0, [r5]
bl ListMenuHandleInput
adds r1, r0, 0
- ldr r0, _0811A3A8 @ =gUnknown_30030F0
+ ldr r0, _0811A3A8 @ =gMain
ldrh r2, [r0, 0x2E]
movs r0, 0x3
ands r0, r2
@@ -8857,7 +8857,7 @@ _0811A37E:
negs r0, r0
b _0811A3EA
.align 2, 0
-_0811A3A8: .4byte gUnknown_30030F0
+_0811A3A8: .4byte gMain
_0811A3AC:
ldr r0, [sp, 0x24]
bl sub_811AD7C
@@ -10077,7 +10077,7 @@ sub_811ACA4: @ 811ACA4
ands r0, r1
cmp r0, 0
beq _0811AD6C
- ldr r0, _0811AD04 @ =gUnknown_300500C
+ ldr r0, _0811AD04 @ =gSaveBlock2Ptr
ldr r3, [r0]
movs r0, 0x5
str r0, [sp]
@@ -10089,7 +10089,7 @@ sub_811ACA4: @ 811ACA4
_0811ACF8: .4byte gUnknown_203B05C
_0811ACFC: .4byte gUnknown_8456F7C
_0811AD00: .4byte 0x000003ff
-_0811AD04: .4byte gUnknown_300500C
+_0811AD04: .4byte gSaveBlock2Ptr
_0811AD08:
mov r0, r12
adds r1, r0, r4
@@ -10605,7 +10605,7 @@ _0811B0CA:
InUnionRoom: @ 811B0D0
push {lr}
movs r2, 0
- ldr r0, _0811B0EC @ =gUnknown_3005008
+ ldr r0, _0811B0EC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
movs r0, 0x80
@@ -10618,7 +10618,7 @@ _0811B0E4:
pop {r1}
bx r1
.align 2, 0
-_0811B0EC: .4byte gUnknown_3005008
+_0811B0EC: .4byte gSaveBlock1Ptr
thumb_func_end InUnionRoom
thumb_func_start sub_811B0F0
@@ -11326,7 +11326,7 @@ sub_811B62C: @ 811B62C
ldr r1, _0811B644 @ =gUnknown_8457120
adds r0, r1
ldrb r0, [r0]
- ldr r1, _0811B648 @ =gUnknown_3005008
+ ldr r1, _0811B648 @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -11335,7 +11335,7 @@ sub_811B62C: @ 811B62C
bx r0
.align 2, 0
_0811B644: .4byte gUnknown_8457120
-_0811B648: .4byte gUnknown_3005008
+_0811B648: .4byte gSaveBlock1Ptr
thumb_func_end sub_811B62C
thumb_func_start sub_811B64C
@@ -11344,7 +11344,7 @@ sub_811B64C: @ 811B64C
ldr r1, _0811B664 @ =gUnknown_8457120
adds r0, r1
ldrb r0, [r0]
- ldr r1, _0811B668 @ =gUnknown_3005008
+ ldr r1, _0811B668 @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -11353,7 +11353,7 @@ sub_811B64C: @ 811B64C
bx r0
.align 2, 0
_0811B664: .4byte gUnknown_8457120
-_0811B668: .4byte gUnknown_3005008
+_0811B668: .4byte gSaveBlock1Ptr
thumb_func_end sub_811B64C
thumb_func_start sub_811B66C
@@ -11364,7 +11364,7 @@ sub_811B66C: @ 811B66C
ldr r1, _0811B6B8 @ =gUnknown_8457120
adds r0, r1
ldrb r0, [r0]
- ldr r1, _0811B6BC @ =gUnknown_3005008
+ ldr r1, _0811B6BC @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -11395,7 +11395,7 @@ sub_811B66C: @ 811B66C
b _0811B6D2
.align 2, 0
_0811B6B8: .4byte gUnknown_8457120
-_0811B6BC: .4byte gUnknown_3005008
+_0811B6BC: .4byte gSaveBlock1Ptr
_0811B6C0: .4byte gUnknown_2036E38
_0811B6C4:
ldr r0, _0811B6DC @ =gUnknown_8457138
@@ -11423,7 +11423,7 @@ sub_811B6E8: @ 811B6E8
ldr r1, _0811B724 @ =gUnknown_8457120
adds r0, r1
ldrb r0, [r0]
- ldr r1, _0811B728 @ =gUnknown_3005008
+ ldr r1, _0811B728 @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -11448,7 +11448,7 @@ sub_811B6E8: @ 811B6E8
b _0811B74A
.align 2, 0
_0811B724: .4byte gUnknown_8457120
-_0811B728: .4byte gUnknown_3005008
+_0811B728: .4byte gSaveBlock1Ptr
_0811B72C: .4byte gUnknown_2036E38
_0811B730:
bl ScriptContext2_IsEnabled
@@ -12846,7 +12846,7 @@ sub_811C1B4: @ 811C1B4
sub_811C1C8: @ 811C1C8
push {r4,lr}
sub sp, 0xC
- ldr r1, _0811C1E8 @ =gUnknown_30030F0
+ ldr r1, _0811C1E8 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
@@ -12862,7 +12862,7 @@ _0811C1DE:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0811C1E8: .4byte gUnknown_30030F0
+_0811C1E8: .4byte gMain
_0811C1EC: .4byte _0811C1F0
.align 2, 0
_0811C1F0:
@@ -12970,7 +12970,7 @@ _0811C300:
bl sub_80F77B8
ldr r0, _0811C35C @ =sub_811C1B4
bl SetVBlankCallback
- ldr r1, _0811C360 @ =gUnknown_30030F0
+ ldr r1, _0811C360 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -12980,7 +12980,7 @@ _0811C350: .4byte gUnknown_203B08C
_0811C354: .4byte gUnknown_8457194
_0811C358: .4byte gUnknown_8457198
_0811C35C: .4byte sub_811C1B4
-_0811C360: .4byte gUnknown_30030F0
+_0811C360: .4byte gMain
_0811C364:
ldr r0, _0811C380 @ =gUnknown_203B08C
ldr r0, [r0]
@@ -12991,7 +12991,7 @@ _0811C364:
bne _0811C376
b _0811C516
_0811C376:
- ldr r1, _0811C388 @ =gUnknown_30030F0
+ ldr r1, _0811C388 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
@@ -12999,7 +12999,7 @@ _0811C376:
.align 2, 0
_0811C380: .4byte gUnknown_203B08C
_0811C384: .4byte gUnknown_841E538
-_0811C388: .4byte gUnknown_30030F0
+_0811C388: .4byte gMain
_0811C38C:
movs r0, 0x1
negs r0, r0
@@ -13010,13 +13010,13 @@ _0811C38C:
bl BeginNormalPaletteFade
movs r0, 0
bl ShowBg
- ldr r1, _0811C3AC @ =gUnknown_30030F0
+ ldr r1, _0811C3AC @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _0811C4F2
.align 2, 0
-_0811C3AC: .4byte gUnknown_30030F0
+_0811C3AC: .4byte gMain
_0811C3B0:
bl UpdatePaletteFade
lsls r0, 24
@@ -13047,14 +13047,14 @@ _0811C3E2:
movs r0, 0
movs r2, 0x20
bl SendBlock
- ldr r1, _0811C3FC @ =gUnknown_30030F0
+ ldr r1, _0811C3FC @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _0811C4F2
.align 2, 0
_0811C3F8: .4byte gUnknown_2022618
-_0811C3FC: .4byte gUnknown_30030F0
+_0811C3FC: .4byte gMain
_0811C400:
bl GetBlockReceivedStatus
lsls r0, 24
@@ -13080,7 +13080,7 @@ _0811C40E:
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _0811C444 @ =gUnknown_30030F0
+ ldr r0, _0811C444 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -13088,7 +13088,7 @@ _0811C40E:
b _0811C47E
.align 2, 0
_0811C440: .4byte gUnknown_2022118
-_0811C444: .4byte gUnknown_30030F0
+_0811C444: .4byte gMain
_0811C448:
bl sub_800AAC0
ldr r4, _0811C46C @ =gUnknown_2022118
@@ -13099,7 +13099,7 @@ _0811C448:
ldrh r0, [r0]
cmp r0, 0x52
bne _0811C474
- ldr r0, _0811C470 @ =gUnknown_30030F0
+ ldr r0, _0811C470 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
@@ -13107,9 +13107,9 @@ _0811C448:
b _0811C47E
.align 2, 0
_0811C46C: .4byte gUnknown_2022118
-_0811C470: .4byte gUnknown_30030F0
+_0811C470: .4byte gMain
_0811C474:
- ldr r0, _0811C488 @ =gUnknown_30030F0
+ ldr r0, _0811C488 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -13119,20 +13119,20 @@ _0811C47E:
bl ResetBlockReceivedFlags
b _0811C516
.align 2, 0
-_0811C488: .4byte gUnknown_30030F0
+_0811C488: .4byte gMain
_0811C48C:
bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _0811C516
bl sub_800AB9C
- ldr r1, _0811C4A4 @ =gUnknown_30030F0
+ ldr r1, _0811C4A4 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _0811C4F2
.align 2, 0
-_0811C4A4: .4byte gUnknown_30030F0
+_0811C4A4: .4byte gMain
_0811C4A8:
bl sub_800A4BC
lsls r0, 24
diff --git a/asm/link_rfu_4.s b/asm/link_rfu_4.s
index 8da510f97..2b3b13400 100644
--- a/asm/link_rfu_4.s
+++ b/asm/link_rfu_4.s
@@ -230,7 +230,7 @@ _081425A4:
movs r2, 0x14
movs r3, 0x1
bl DrawDownArrow
- ldr r0, _081425D4 @ =gUnknown_30030F0
+ ldr r0, _081425D4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -242,7 +242,7 @@ _081425C8:
b _08142602
.align 2, 0
_081425D0: .4byte gUnknown_203F3B0
-_081425D4: .4byte gUnknown_30030F0
+_081425D4: .4byte gMain
_081425D8:
movs r0, 0x1
str r0, [sp]
@@ -331,7 +331,7 @@ sub_8142660: @ 8142660
b _08142698
_08142670:
bl sub_8142610
- ldr r0, _08142688 @ =gUnknown_30030F0
+ ldr r0, _08142688 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -342,7 +342,7 @@ _08142670:
strb r0, [r4]
b _08142698
.align 2, 0
-_08142688: .4byte gUnknown_30030F0
+_08142688: .4byte gMain
_0814268C:
bl sub_8142638
movs r0, 0
@@ -996,7 +996,7 @@ _08142B80:
.align 2, 0
_08142B88: .4byte gUnknown_841ED50
_08142B8C:
- ldr r0, _08142BA0 @ =gUnknown_30030F0
+ ldr r0, _08142BA0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -1008,7 +1008,7 @@ _08142B98:
strb r0, [r4]
b _08142BB0
.align 2, 0
-_08142BA0: .4byte gUnknown_30030F0
+_08142BA0: .4byte gMain
_08142BA4:
movs r0, 0
strb r0, [r4]
@@ -1926,7 +1926,7 @@ _081432DE:
ldrb r0, [r5, 0xC]
cmp r0, 0
bne _08143308
- ldr r2, _08143304 @ =gUnknown_30030F0
+ ldr r2, _08143304 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1944,9 +1944,9 @@ _081432F4:
_08143300:
b _08143326
.align 2, 0
-_08143304: .4byte gUnknown_30030F0
+_08143304: .4byte gMain
_08143308:
- ldr r0, _0814331C @ =gUnknown_30030F0
+ ldr r0, _0814331C @ =gMain
ldrh r0, [r0, 0x2E]
bl sub_8146884
cmp r0, 0
@@ -1955,7 +1955,7 @@ _08143308:
beq _08143326
b _081435C6
.align 2, 0
-_0814331C: .4byte gUnknown_30030F0
+_0814331C: .4byte gMain
_08143320:
bl sub_81467EC
b _08143402
diff --git a/asm/list_menu.s b/asm/list_menu.s
index d2f419d04..b5eca733f 100644
--- a/asm/list_menu.s
+++ b/asm/list_menu.s
@@ -89,7 +89,7 @@ _08106F68:
ldrb r0, [r5, 0x6]
bl ListMenuHandleInput
str r0, [r5]
- ldr r1, _08106FA4 @ =gUnknown_30030F0
+ ldr r1, _08106FA4 @ =gMain
ldrh r0, [r1, 0x2E]
ands r4, r0
cmp r4, 0
@@ -117,7 +117,7 @@ _08106F92:
bl ClearWindowTilemap
b _08106FBA
.align 2, 0
-_08106FA4: .4byte gUnknown_30030F0
+_08106FA4: .4byte gMain
_08106FA8:
mov r4, r10
cmp r4, 0
@@ -237,7 +237,7 @@ ListMenuHandleInput: @ 8107078
lsls r1, 3
ldr r0, _081070A4 @ =gUnknown_3005098
adds r3, r1, r0
- ldr r2, _081070A8 @ =gUnknown_30030F0
+ ldr r2, _081070A8 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -253,7 +253,7 @@ ListMenuHandleInput: @ 8107078
b _08107136
.align 2, 0
_081070A4: .4byte gUnknown_3005098
-_081070A8: .4byte gUnknown_30030F0
+_081070A8: .4byte gMain
_081070AC:
movs r0, 0x2
ands r0, r1
diff --git a/asm/load_save.s b/asm/load_save.s
index 751e41739..bb98ca619 100644
--- a/asm/load_save.s
+++ b/asm/load_save.s
@@ -37,7 +37,7 @@ ClearSav2: @ 804C010
mov r1, sp
movs r0, 0
strh r0, [r1]
- ldr r1, _0804C02C @ =gUnknown_2024588
+ ldr r1, _0804C02C @ =gSaveBlock2
ldr r2, _0804C030 @ =0x010007d2
mov r0, sp
bl CpuSet
@@ -45,7 +45,7 @@ ClearSav2: @ 804C010
pop {r0}
bx r0
.align 2, 0
-_0804C02C: .4byte gUnknown_2024588
+_0804C02C: .4byte gSaveBlock2
_0804C030: .4byte 0x010007d2
thumb_func_end ClearSav2
@@ -56,7 +56,7 @@ ClearSav1: @ 804C034
mov r1, sp
movs r0, 0
strh r0, [r1]
- ldr r1, _0804C050 @ =gUnknown_202552C
+ ldr r1, _0804C050 @ =gSaveBlock1
ldr r2, _0804C054 @ =0x01001ef4
mov r0, sp
bl CpuSet
@@ -64,27 +64,27 @@ ClearSav1: @ 804C034
pop {r0}
bx r0
.align 2, 0
-_0804C050: .4byte gUnknown_202552C
+_0804C050: .4byte gSaveBlock1
_0804C054: .4byte 0x01001ef4
thumb_func_end ClearSav1
thumb_func_start SetSaveBlocksPointers
SetSaveBlocksPointers: @ 804C058
push {r4,r5,lr}
- ldr r4, _0804C08C @ =gUnknown_3005008
+ ldr r4, _0804C08C @ =gSaveBlock1Ptr
ldr r5, [r4]
bl Random
movs r1, 0x7C
ands r1, r0
- ldr r2, _0804C090 @ =gUnknown_300500C
- ldr r0, _0804C094 @ =gUnknown_2024588
+ ldr r2, _0804C090 @ =gSaveBlock2Ptr
+ ldr r0, _0804C094 @ =gSaveBlock2
adds r0, r1, r0
str r0, [r2]
- ldr r0, _0804C098 @ =gUnknown_202552C
+ ldr r0, _0804C098 @ =gSaveBlock1
adds r0, r1, r0
str r0, [r4]
ldr r2, _0804C09C @ =gUnknown_3005010
- ldr r0, _0804C0A0 @ =gUnknown_2029314
+ ldr r0, _0804C0A0 @ =gPokemonStorage
adds r1, r0
str r1, [r2]
bl sub_8099E44
@@ -94,12 +94,12 @@ SetSaveBlocksPointers: @ 804C058
pop {r0}
bx r0
.align 2, 0
-_0804C08C: .4byte gUnknown_3005008
-_0804C090: .4byte gUnknown_300500C
-_0804C094: .4byte gUnknown_2024588
-_0804C098: .4byte gUnknown_202552C
+_0804C08C: .4byte gSaveBlock1Ptr
+_0804C090: .4byte gSaveBlock2Ptr
+_0804C094: .4byte gSaveBlock2
+_0804C098: .4byte gSaveBlock1
_0804C09C: .4byte gUnknown_3005010
-_0804C0A0: .4byte gUnknown_2029314
+_0804C0A0: .4byte gPokemonStorage
thumb_func_end SetSaveBlocksPointers
thumb_func_start sub_804C0A4
@@ -110,7 +110,7 @@ sub_804C0A4: @ 804C0A4
mov r5, r8
push {r5-r7}
sub sp, 0x8
- ldr r4, _0804C160 @ =gUnknown_30030F0
+ ldr r4, _0804C160 @ =gMain
ldr r0, [r4, 0xC]
str r0, [sp]
ldr r1, [r4, 0x10]
@@ -120,14 +120,14 @@ sub_804C0A4: @ 804C0A4
str r0, [r4, 0x10]
str r0, [r4, 0x20]
ldr r5, _0804C164 @ =gHeap
- ldr r0, _0804C168 @ =gUnknown_300500C
+ ldr r0, _0804C168 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, _0804C16C @ =0x00000f24
mov r9, r0
adds r0, r5, 0
mov r2, r9
bl memcpy
- ldr r1, _0804C170 @ =gUnknown_3005008
+ ldr r1, _0804C170 @ =gSaveBlock1Ptr
mov r10, r1
ldr r1, [r1]
ldr r7, _0804C174 @ =0x00003d68
@@ -142,7 +142,7 @@ sub_804C0A4: @ 804C0A4
mov r2, r8
bl memcpy
bl SetSaveBlocksPointers
- ldr r1, _0804C168 @ =gUnknown_300500C
+ ldr r1, _0804C168 @ =gSaveBlock2Ptr
ldr r0, [r1]
adds r1, r5, 0
mov r2, r9
@@ -173,7 +173,7 @@ sub_804C0A4: @ 804C0A4
adds r4, r0
adds r0, r4, 0
bl sub_804C5A4
- ldr r1, _0804C168 @ =gUnknown_300500C
+ ldr r1, _0804C168 @ =gSaveBlock2Ptr
ldr r0, [r1]
movs r1, 0xF2
lsls r1, 4
@@ -188,11 +188,11 @@ sub_804C0A4: @ 804C0A4
pop {r0}
bx r0
.align 2, 0
-_0804C160: .4byte gUnknown_30030F0
+_0804C160: .4byte gMain
_0804C164: .4byte gHeap
-_0804C168: .4byte gUnknown_300500C
+_0804C168: .4byte gSaveBlock2Ptr
_0804C16C: .4byte 0x00000f24
-_0804C170: .4byte gUnknown_3005008
+_0804C170: .4byte gSaveBlock1Ptr
_0804C174: .4byte 0x00003d68
_0804C178: .4byte gHeap + 0xf24
_0804C17C: .4byte gUnknown_3005010
@@ -202,19 +202,19 @@ _0804C184: .4byte gHeap + 0x4c8c
thumb_func_start sav2_x1_query_bit1
sav2_x1_query_bit1: @ 804C188
- ldr r0, _0804C194 @ =gUnknown_300500C
+ ldr r0, _0804C194 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x9]
movs r0, 0x1
ands r0, r1
bx lr
.align 2, 0
-_0804C194: .4byte gUnknown_300500C
+_0804C194: .4byte gSaveBlock2Ptr
thumb_func_end sav2_x1_query_bit1
thumb_func_start sav2_x9_clear_bit1
sav2_x9_clear_bit1: @ 804C198
- ldr r0, _0804C1A8 @ =gUnknown_300500C
+ ldr r0, _0804C1A8 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xFE
@@ -222,12 +222,12 @@ sav2_x9_clear_bit1: @ 804C198
strb r0, [r2, 0x9]
bx lr
.align 2, 0
-_0804C1A8: .4byte gUnknown_300500C
+_0804C1A8: .4byte gSaveBlock2Ptr
thumb_func_end sav2_x9_clear_bit1
thumb_func_start sub_804C1AC
sub_804C1AC: @ 804C1AC
- ldr r0, _0804C1BC @ =gUnknown_300500C
+ ldr r0, _0804C1BC @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x1
@@ -235,7 +235,7 @@ sub_804C1AC: @ 804C1AC
strb r0, [r2, 0x9]
bx lr
.align 2, 0
-_0804C1BC: .4byte gUnknown_300500C
+_0804C1BC: .4byte gSaveBlock2Ptr
thumb_func_end sub_804C1AC
thumb_func_start sub_804C1C0
@@ -243,7 +243,7 @@ sub_804C1C0: @ 804C1C0
push {lr}
movs r0, 0
bl sub_8055778
- ldr r0, _0804C1D8 @ =gUnknown_300500C
+ ldr r0, _0804C1D8 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x1
@@ -252,12 +252,12 @@ sub_804C1C0: @ 804C1C0
pop {r0}
bx r0
.align 2, 0
-_0804C1D8: .4byte gUnknown_300500C
+_0804C1D8: .4byte gSaveBlock2Ptr
thumb_func_end sub_804C1C0
thumb_func_start sav2_gender2_inplace_and_xFE
sav2_gender2_inplace_and_xFE: @ 804C1DC
- ldr r0, _0804C1EC @ =gUnknown_300500C
+ ldr r0, _0804C1EC @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xFE
@@ -265,13 +265,13 @@ sav2_gender2_inplace_and_xFE: @ 804C1DC
strb r0, [r2, 0x9]
bx lr
.align 2, 0
-_0804C1EC: .4byte gUnknown_300500C
+_0804C1EC: .4byte gSaveBlock2Ptr
thumb_func_end sav2_gender2_inplace_and_xFE
thumb_func_start copy_player_party_to_sav1
copy_player_party_to_sav1: @ 804C1F0
push {r4,lr}
- ldr r0, _0804C224 @ =gUnknown_3005008
+ ldr r0, _0804C224 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _0804C228 @ =gUnknown_2024029
ldrb r1, [r1]
@@ -279,7 +279,7 @@ copy_player_party_to_sav1: @ 804C1F0
strb r1, [r0]
movs r4, 0
_0804C200:
- ldr r0, _0804C224 @ =gUnknown_3005008
+ ldr r0, _0804C224 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0x64
muls r1, r4
@@ -296,7 +296,7 @@ _0804C200:
pop {r0}
bx r0
.align 2, 0
-_0804C224: .4byte gUnknown_3005008
+_0804C224: .4byte gSaveBlock1Ptr
_0804C228: .4byte gUnknown_2024029
_0804C22C: .4byte gUnknown_2024284
thumb_func_end copy_player_party_to_sav1
@@ -305,7 +305,7 @@ _0804C22C: .4byte gUnknown_2024284
sub_804C230: @ 804C230
push {r4,r5,lr}
ldr r1, _0804C264 @ =gUnknown_2024029
- ldr r0, _0804C268 @ =gUnknown_3005008
+ ldr r0, _0804C268 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x34
ldrb r0, [r0]
@@ -317,7 +317,7 @@ _0804C242:
adds r2, r4, 0
muls r2, r0
adds r0, r2, r5
- ldr r1, _0804C268 @ =gUnknown_3005008
+ ldr r1, _0804C268 @ =gSaveBlock1Ptr
ldr r1, [r1]
adds r1, r2
adds r1, 0x38
@@ -331,7 +331,7 @@ _0804C242:
bx r0
.align 2, 0
_0804C264: .4byte gUnknown_2024029
-_0804C268: .4byte gUnknown_3005008
+_0804C268: .4byte gSaveBlock1Ptr
_0804C26C: .4byte gUnknown_2024284
thumb_func_end sub_804C230
@@ -340,7 +340,7 @@ save_serialize_npcs: @ 804C270
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _0804C2B0 @ =gUnknown_3005008
+ ldr r0, _0804C2B0 @ =gSaveBlock1Ptr
mov r12, r0
movs r5, 0xD4
lsls r5, 3
@@ -371,7 +371,7 @@ _0804C286:
pop {r0}
bx r0
.align 2, 0
-_0804C2B0: .4byte gUnknown_3005008
+_0804C2B0: .4byte gSaveBlock1Ptr
_0804C2B4: .4byte gUnknown_2036E38
thumb_func_end save_serialize_npcs
@@ -380,7 +380,7 @@ sub_804C2B8: @ 804C2B8
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _0804C2F8 @ =gUnknown_3005008
+ ldr r0, _0804C2F8 @ =gSaveBlock1Ptr
mov r12, r0
movs r5, 0xD4
lsls r5, 3
@@ -411,7 +411,7 @@ _0804C2CE:
pop {r0}
bx r0
.align 2, 0
-_0804C2F8: .4byte gUnknown_3005008
+_0804C2F8: .4byte gSaveBlock1Ptr
_0804C2FC: .4byte gUnknown_2036E38
thumb_func_end sub_804C2B8
@@ -443,9 +443,9 @@ copy_bags_and_unk_data_from_save_blocks: @ 804C320
movs r2, 0
ldr r0, _0804C424 @ =gUnknown_2031C8C
mov r12, r0
- ldr r1, _0804C428 @ =gUnknown_300500C
+ ldr r1, _0804C428 @ =gSaveBlock2Ptr
mov r10, r1
- ldr r5, _0804C42C @ =gUnknown_3005008
+ ldr r5, _0804C42C @ =gSaveBlock1Ptr
movs r3, 0xC4
lsls r3, 2
ldr r4, _0804C430 @ =gUnknown_2031764
@@ -461,7 +461,7 @@ _0804C33C:
ble _0804C33C
movs r2, 0
ldr r0, _0804C430 @ =gUnknown_2031764
- ldr r5, _0804C42C @ =gUnknown_3005008
+ ldr r5, _0804C42C @ =gSaveBlock1Ptr
movs r3, 0xEE
lsls r3, 2
adds r4, r0, 0
@@ -478,7 +478,7 @@ _0804C35C:
ble _0804C35C
movs r2, 0
ldr r0, _0804C430 @ =gUnknown_2031764
- ldr r5, _0804C42C @ =gUnknown_3005008
+ ldr r5, _0804C42C @ =gSaveBlock1Ptr
movs r6, 0x90
lsls r6, 1
adds r4, r0, r6
@@ -496,7 +496,7 @@ _0804C37E:
ble _0804C37E
movs r2, 0
ldr r0, _0804C430 @ =gUnknown_2031764
- ldr r5, _0804C42C @ =gUnknown_3005008
+ ldr r5, _0804C42C @ =gSaveBlock1Ptr
movs r7, 0xAA
lsls r7, 1
adds r4, r0, r7
@@ -513,7 +513,7 @@ _0804C39E:
ble _0804C39E
movs r2, 0
ldr r0, _0804C430 @ =gUnknown_2031764
- ldr r5, _0804C42C @ =gUnknown_3005008
+ ldr r5, _0804C42C @ =gSaveBlock1Ptr
movs r1, 0x8F
lsls r1, 2
adds r4, r0, r1
@@ -529,7 +529,7 @@ _0804C3BE:
cmp r2, 0x2A
ble _0804C3BE
ldr r0, _0804C430 @ =gUnknown_2031764
- ldr r5, _0804C42C @ =gUnknown_3005008
+ ldr r5, _0804C42C @ =gSaveBlock1Ptr
mov r8, r5
movs r6, 0xBA
lsls r6, 2
@@ -572,8 +572,8 @@ _0804C3E4:
bx r0
.align 2, 0
_0804C424: .4byte gUnknown_2031C8C
-_0804C428: .4byte gUnknown_300500C
-_0804C42C: .4byte gUnknown_3005008
+_0804C428: .4byte gSaveBlock2Ptr
+_0804C42C: .4byte gSaveBlock1Ptr
_0804C430: .4byte gUnknown_2031764
_0804C434: .4byte 0x00000464
_0804C438: .4byte 0x0000054c
@@ -588,11 +588,11 @@ sub_804C440: @ 804C440
mov r5, r8
push {r5-r7}
movs r2, 0
- ldr r0, _0804C550 @ =gUnknown_300500C
+ ldr r0, _0804C550 @ =gSaveBlock2Ptr
mov r8, r0
ldr r1, _0804C554 @ =gUnknown_2031C8C
mov r12, r1
- ldr r5, _0804C558 @ =gUnknown_3005008
+ ldr r5, _0804C558 @ =gSaveBlock1Ptr
movs r3, 0xC4
lsls r3, 2
ldr r4, _0804C55C @ =gUnknown_2031764
@@ -607,7 +607,7 @@ _0804C45C:
cmp r2, 0x29
ble _0804C45C
movs r2, 0
- ldr r5, _0804C558 @ =gUnknown_3005008
+ ldr r5, _0804C558 @ =gSaveBlock1Ptr
movs r4, 0xEE
lsls r4, 2
ldr r0, _0804C55C @ =gUnknown_2031764
@@ -624,7 +624,7 @@ _0804C47C:
cmp r2, 0x1D
ble _0804C47C
movs r2, 0
- ldr r5, _0804C558 @ =gUnknown_3005008
+ ldr r5, _0804C558 @ =gSaveBlock1Ptr
movs r4, 0x86
lsls r4, 3
ldr r0, _0804C55C @ =gUnknown_2031764
@@ -642,7 +642,7 @@ _0804C49E:
cmp r2, 0xC
ble _0804C49E
movs r2, 0
- ldr r5, _0804C558 @ =gUnknown_3005008
+ ldr r5, _0804C558 @ =gSaveBlock1Ptr
ldr r4, _0804C560 @ =0x00000464
ldr r0, _0804C55C @ =gUnknown_2031764
movs r7, 0xAA
@@ -659,7 +659,7 @@ _0804C4BE:
cmp r2, 0x39
ble _0804C4BE
movs r2, 0
- ldr r5, _0804C558 @ =gUnknown_3005008
+ ldr r5, _0804C558 @ =gSaveBlock1Ptr
ldr r4, _0804C564 @ =0x0000054c
ldr r0, _0804C55C @ =gUnknown_2031764
movs r1, 0x8F
@@ -675,7 +675,7 @@ _0804C4DE:
adds r2, 0x1
cmp r2, 0x2A
ble _0804C4DE
- ldr r2, _0804C558 @ =gUnknown_3005008
+ ldr r2, _0804C558 @ =gSaveBlock1Ptr
mov r9, r2
ldr r5, _0804C568 @ =0x00002cd0
mov r10, r5
@@ -724,9 +724,9 @@ _0804C4FE:
pop {r0}
bx r0
.align 2, 0
-_0804C550: .4byte gUnknown_300500C
+_0804C550: .4byte gSaveBlock2Ptr
_0804C554: .4byte gUnknown_2031C8C
-_0804C558: .4byte gUnknown_3005008
+_0804C558: .4byte gSaveBlock1Ptr
_0804C55C: .4byte gUnknown_2031764
_0804C560: .4byte 0x00000464
_0804C564: .4byte 0x0000054c
@@ -735,7 +735,7 @@ _0804C568: .4byte 0x00002cd0
thumb_func_start sub_804C56C
sub_804C56C: @ 804C56C
- ldr r2, _0804C584 @ =gUnknown_300500C
+ ldr r2, _0804C584 @ =gSaveBlock2Ptr
ldr r2, [r2]
movs r3, 0xF2
lsls r3, 4
@@ -747,12 +747,12 @@ sub_804C56C: @ 804C56C
strh r2, [r0]
bx lr
.align 2, 0
-_0804C584: .4byte gUnknown_300500C
+_0804C584: .4byte gSaveBlock2Ptr
thumb_func_end sub_804C56C
thumb_func_start sub_804C588
sub_804C588: @ 804C588
- ldr r2, _0804C5A0 @ =gUnknown_300500C
+ ldr r2, _0804C5A0 @ =gSaveBlock2Ptr
ldr r3, [r2]
movs r2, 0xF2
lsls r2, 4
@@ -764,14 +764,14 @@ sub_804C588: @ 804C588
str r2, [r0]
bx lr
.align 2, 0
-_0804C5A0: .4byte gUnknown_300500C
+_0804C5A0: .4byte gSaveBlock2Ptr
thumb_func_end sub_804C588
thumb_func_start sub_804C5A4
sub_804C5A4: @ 804C5A4
push {r4-r7,lr}
adds r5, r0, 0
- ldr r7, _0804C5F8 @ =gUnknown_3005008
+ ldr r7, _0804C5F8 @ =gSaveBlock1Ptr
ldr r6, _0804C5FC @ =0x00003d38
movs r4, 0x3
_0804C5AE:
@@ -790,7 +790,7 @@ _0804C5AE:
bl ApplyNewEncryptionKeyToBagItems_
adds r0, r5, 0
bl sub_815EE6C
- ldr r4, _0804C5F8 @ =gUnknown_3005008
+ ldr r4, _0804C5F8 @ =gSaveBlock1Ptr
ldr r0, [r4]
movs r1, 0xA4
lsls r1, 2
@@ -807,7 +807,7 @@ _0804C5AE:
pop {r0}
bx r0
.align 2, 0
-_0804C5F8: .4byte gUnknown_3005008
+_0804C5F8: .4byte gSaveBlock1Ptr
_0804C5FC: .4byte 0x00003d38
thumb_func_end sub_804C5A4
diff --git a/asm/mail.s b/asm/mail.s
index c4f41b453..34fb68748 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -159,7 +159,7 @@ _080BED14: .4byte sub_80BF110
sub_80BED18: @ 80BED18
push {r4-r6,lr}
sub sp, 0xC
- ldr r0, _080BED38 @ =gUnknown_30030F0
+ ldr r0, _080BED38 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -174,7 +174,7 @@ _080BED2C:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080BED38: .4byte gUnknown_30030F0
+_080BED38: .4byte gMain
_080BED3C: .4byte _080BED40
.align 2, 0
_080BED40:
@@ -433,7 +433,7 @@ _080BEF28:
movs r2, 0x20
bl LoadPalette
ldr r1, _080BEFE0 @ =gUnknown_83EE9C0
- ldr r0, _080BEFE4 @ =gUnknown_300500C
+ ldr r0, _080BEFE4 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r0, [r2, 0x8]
lsls r0, 2
@@ -463,7 +463,7 @@ _080BEFD4: .4byte gUnknown_83EE9C8
_080BEFD8: .4byte gUnknown_20399C4
_080BEFDC: .4byte gUnknown_20375F8
_080BEFE0: .4byte gUnknown_83EE9C0
-_080BEFE4: .4byte gUnknown_300500C
+_080BEFE4: .4byte gSaveBlock2Ptr
_080BEFE8:
ldr r0, _080BEFFC @ =gUnknown_20399C4
ldr r0, [r0]
@@ -590,7 +590,7 @@ _080BF0E8: .4byte gUnknown_2037AB8
_080BF0EC: .4byte gUnknown_20399C4
_080BF0F0: .4byte sub_80BF394
_080BF0F4:
- ldr r1, _080BF10C @ =gUnknown_30030F0
+ ldr r1, _080BF10C @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -605,7 +605,7 @@ _080BF104:
pop {r1}
bx r1
.align 2, 0
-_080BF10C: .4byte gUnknown_30030F0
+_080BF10C: .4byte gMain
thumb_func_end sub_80BED18
thumb_func_start sub_80BF110
@@ -952,7 +952,7 @@ _080BF3B4: .4byte sub_80BF3B8
sub_80BF3B8: @ 80BF3B8
push {lr}
sub sp, 0x4
- ldr r0, _080BF3E8 @ =gUnknown_30030F0
+ ldr r0, _080BF3E8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -975,7 +975,7 @@ _080BF3E2:
pop {r0}
bx r0
.align 2, 0
-_080BF3E8: .4byte gUnknown_30030F0
+_080BF3E8: .4byte gMain
_080BF3EC: .4byte gUnknown_20399C4
_080BF3F0: .4byte sub_80BF3F4
thumb_func_end sub_80BF3B8
diff --git a/asm/mail_data.s b/asm/mail_data.s
index 191120b57..5f577039b 100644
--- a/asm/mail_data.s
+++ b/asm/mail_data.s
@@ -9,7 +9,7 @@
ClearMailData: @ 8097C84
push {r4,r5,lr}
movs r4, 0
- ldr r5, _08097CAC @ =gUnknown_3005008
+ ldr r5, _08097CAC @ =gSaveBlock1Ptr
_08097C8A:
lsls r1, r4, 3
adds r1, r4
@@ -28,7 +28,7 @@ _08097C8A:
pop {r0}
bx r0
.align 2, 0
-_08097CAC: .4byte gUnknown_3005008
+_08097CAC: .4byte gSaveBlock1Ptr
_08097CB0: .4byte 0x00002cd0
thumb_func_end ClearMailData
@@ -132,7 +132,7 @@ sub_8097D38: @ 8097D38
mov r9, r4
adds r5, r4, 0
_08097D62:
- ldr r2, _08097EC0 @ =gUnknown_3005008
+ ldr r2, _08097EC0 @ =gSaveBlock1Ptr
ldr r0, [r2]
ldrb r3, [r5]
lsls r1, r3, 3
@@ -147,7 +147,7 @@ _08097D62:
b _08097EE0
_08097D7C:
movs r4, 0
- ldr r3, _08097EC8 @ =gUnknown_300500C
+ ldr r3, _08097EC8 @ =gSaveBlock2Ptr
mov r10, r3
adds r7, r2, 0
mov r5, r12
@@ -178,9 +178,9 @@ _08097D8A:
ldrb r0, [r0]
cmp r0, 0xFF
beq _08097DEE
- ldr r3, _08097EC8 @ =gUnknown_300500C
+ ldr r3, _08097EC8 @ =gSaveBlock2Ptr
_08097DBC:
- ldr r0, _08097EC0 @ =gUnknown_3005008
+ ldr r0, _08097EC0 @ =gSaveBlock1Ptr
ldr r2, [r0]
mov r0, r12
ldrb r1, [r0]
@@ -208,7 +208,7 @@ _08097DBC:
_08097DEE:
cmp r4, 0x5
bhi _08097E16
- ldr r7, _08097EC0 @ =gUnknown_3005008
+ ldr r7, _08097EC0 @ =gSaveBlock1Ptr
mov r3, r12
ldr r6, _08097ED4 @ =0x00002ce2
movs r5, 0
@@ -228,7 +228,7 @@ _08097DFA:
cmp r4, 0x5
bls _08097DFA
_08097E16:
- ldr r3, _08097EC0 @ =gUnknown_3005008
+ ldr r3, _08097EC0 @ =gSaveBlock1Ptr
ldr r2, [r3]
mov r0, r12
ldrb r1, [r0]
@@ -277,7 +277,7 @@ _08097E36:
adds r1, r0, 0
adds r0, r4, 0
bl SpeciesToMailSpecies
- ldr r1, _08097EC0 @ =gUnknown_3005008
+ ldr r1, _08097EC0 @ =gSaveBlock1Ptr
ldr r3, [r1]
mov r4, r9
ldrb r2, [r4]
@@ -310,9 +310,9 @@ _08097E36:
ldrb r0, [r1]
b _08097EEE
.align 2, 0
-_08097EC0: .4byte gUnknown_3005008
+_08097EC0: .4byte gSaveBlock1Ptr
_08097EC4: .4byte 0x00002cf0
-_08097EC8: .4byte gUnknown_300500C
+_08097EC8: .4byte gSaveBlock2Ptr
_08097ECC: .4byte 0x0000ffff
_08097ED0: .4byte 0x00002cd0
_08097ED4: .4byte 0x00002ce2
@@ -395,7 +395,7 @@ GiveMailToMon2: @ 8097F44
ldrb r2, [r4]
cmp r2, 0xFF
beq _08097FA8
- ldr r0, _08097FA0 @ =gUnknown_3005008
+ ldr r0, _08097FA0 @ =gSaveBlock1Ptr
ldr r1, [r0]
lsls r0, r2, 3
adds r0, r2
@@ -426,7 +426,7 @@ GiveMailToMon2: @ 8097F44
ldrb r0, [r4]
b _08097FAA
.align 2, 0
-_08097FA0: .4byte gUnknown_3005008
+_08097FA0: .4byte gSaveBlock1Ptr
_08097FA4: .4byte 0x00002cd0
_08097FA8:
movs r0, 0xFF
@@ -457,7 +457,7 @@ TakeMailFromMon: @ 8097FB8
bl GetMonData
add r2, sp, 0x4
strb r0, [r2]
- ldr r0, _08098010 @ =gUnknown_3005008
+ ldr r0, _08098010 @ =gSaveBlock1Ptr
ldr r3, [r0]
ldrb r1, [r2]
lsls r0, r1, 3
@@ -487,7 +487,7 @@ _08098008:
pop {r0}
bx r0
.align 2, 0
-_08098010: .4byte gUnknown_3005008
+_08098010: .4byte gSaveBlock1Ptr
_08098014: .4byte 0x00002cf0
thumb_func_end TakeMailFromMon
@@ -495,7 +495,7 @@ _08098014: .4byte 0x00002cf0
sub_8098018: @ 8098018
lsls r0, 24
lsrs r0, 24
- ldr r1, _08098034 @ =gUnknown_3005008
+ ldr r1, _08098034 @ =gSaveBlock1Ptr
ldr r2, [r1]
lsls r1, r0, 3
adds r1, r0
@@ -507,7 +507,7 @@ sub_8098018: @ 8098018
strh r0, [r2]
bx lr
.align 2, 0
-_08098034: .4byte gUnknown_3005008
+_08098034: .4byte gSaveBlock1Ptr
_08098038: .4byte 0x00002cf0
thumb_func_end sub_8098018
@@ -528,7 +528,7 @@ sub_809803C: @ 809803C
strb r0, [r1]
movs r7, 0x6
mov r9, r1
- ldr r0, _080980D0 @ =gUnknown_3005008
+ ldr r0, _080980D0 @ =gSaveBlock1Ptr
mov r8, r0
ldr r3, _080980D4 @ =0x00002cd0
_08098060:
@@ -585,7 +585,7 @@ _08098060:
adds r0, r7, 0
b _080980E8
.align 2, 0
-_080980D0: .4byte gUnknown_3005008
+_080980D0: .4byte gSaveBlock1Ptr
_080980D4: .4byte 0x00002cd0
_080980D8: .4byte 0x00002cf0
_080980DC:
diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s
index 145aef2aa..09fbd313b 100644
--- a/asm/mailbox_pc.s
+++ b/asm/mailbox_pc.s
@@ -120,7 +120,7 @@ sub_810EC20: @ 810EC20
negs r0, r0
cmp r3, r0
beq _0810EC82
- ldr r0, _0810EC8C @ =gUnknown_3005008
+ ldr r0, _0810EC8C @ =gSaveBlock1Ptr
lsls r1, r3, 3
adds r1, r3
lsls r1, 2
@@ -161,7 +161,7 @@ _0810EC82:
pop {r0}
bx r0
.align 2, 0
-_0810EC8C: .4byte gUnknown_3005008
+_0810EC8C: .4byte gSaveBlock1Ptr
_0810EC90: .4byte 0x00002dba
_0810EC94: .4byte gUnknown_8454000
thumb_func_end sub_810EC20
diff --git a/asm/main.s b/asm/main.s
deleted file mode 100644
index b7ac8c75c..000000000
--- a/asm/main.s
+++ /dev/null
@@ -1,757 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start AgbMain
-AgbMain: @ 80003A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0xFF
- bl RegisterRamReset
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _08000458 @ =0x00007fff
- adds r0, r2, 0
- strh r0, [r1]
- bl InitGpuRegManager
- ldr r1, _0800045C @ =0x04000204
- ldr r2, _08000460 @ =0x00004014
- adds r0, r2, 0
- strh r0, [r1]
- bl InitKeys
- bl InitIntrHandlers
- bl m4aSoundInit
- bl EnableVCountIntrAtLine150
- bl sub_80F86C4
- bl CheckForFlashMemory
- bl sub_80004C4
- bl InitMapMusic
- bl ClearDma3Requests
- bl ResetBgs
- ldr r0, _08000464 @ =gHeap
- movs r1, 0xE0
- lsls r1, 9
- bl InitHeap
- bl SetDefaultFontsPointer
- ldr r0, _08000468 @ =gUnknown_3003530
- movs r4, 0
- strb r4, [r0]
- ldr r0, _0800046C @ =gUnknown_3005ECC
- strb r4, [r0]
- bl sub_80F50F4
- bl AGBPrintInit
- ldr r0, _08000470 @ =gUnknown_30030E4
- strb r4, [r0]
- ldr r7, _08000474 @ =gUnknown_30030F0
- movs r1, 0
- mov r8, r1
- adds r6, r0, 0
-_0800041A:
- bl ReadKeys
- ldr r0, _08000468 @ =gUnknown_3003530
- ldrb r0, [r0]
- cmp r0, 0
- bne _08000444
- ldrh r1, [r7, 0x28]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08000444
- movs r0, 0xE
- ands r0, r1
- cmp r0, 0xE
- bne _08000444
- bl rfu_REQ_stopMode
- bl rfu_waitREQComplete
- bl sub_80008D8
-_08000444:
- bl sub_80582E0
- cmp r0, 0x1
- bne _08000478
- strb r0, [r6]
- bl sub_80004B0
- movs r0, 0
- strb r0, [r6]
- b _0800049E
- .align 2, 0
-_08000458: .4byte 0x00007fff
-_0800045C: .4byte 0x04000204
-_08000460: .4byte 0x00004014
-_08000464: .4byte gHeap
-_08000468: .4byte gUnknown_3003530
-_0800046C: .4byte gUnknown_3005ECC
-_08000470: .4byte gUnknown_30030E4
-_08000474: .4byte gUnknown_30030F0
-_08000478:
- ldr r5, _080004AC @ =gUnknown_30030E4
- movs r0, 0
- strb r0, [r5]
- bl sub_80004B0
- bl sub_8058274
- adds r4, r0, 0
- cmp r4, 0x1
- bne _0800049E
- movs r0, 0
- strh r0, [r7, 0x2E]
- bl ClearSpriteCopyRequests
- strb r4, [r5]
- bl sub_80004B0
- mov r2, r8
- strb r2, [r5]
-_0800049E:
- bl PlayTimeCounter_Update
- bl MapMusicMain
- bl sub_8000890
- b _0800041A
- .align 2, 0
-_080004AC: .4byte gUnknown_30030E4
- thumb_func_end AgbMain
-
- thumb_func_start sub_80004B0
-sub_80004B0: @ 80004B0
- push {lr}
- bl HandleLinkConnection
- lsls r0, 24
- cmp r0, 0
- bne _080004C0
- bl sub_8000510
-_080004C0:
- pop {r0}
- bx r0
- thumb_func_end sub_80004B0
-
- thumb_func_start sub_80004C4
-sub_80004C4: @ 80004C4
- push {r4,lr}
- ldr r0, _080004F4 @ =gUnknown_30030F0
- movs r4, 0
- str r4, [r0, 0x20]
- str r4, [r0, 0x24]
- str r4, [r0]
- ldr r0, _080004F8 @ =sub_80EC820
- bl SetMainCallback2
- ldr r0, _080004FC @ =gUnknown_300500C
- ldr r1, _08000500 @ =gUnknown_2024588
- str r1, [r0]
- ldr r2, _08000504 @ =gUnknown_3005008
- ldr r0, _08000508 @ =gUnknown_202552C
- str r0, [r2]
- movs r0, 0xF2
- lsls r0, 4
- adds r1, r0
- str r4, [r1]
- ldr r0, _0800050C @ =gUnknown_3005E88
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080004F4: .4byte gUnknown_30030F0
-_080004F8: .4byte sub_80EC820
-_080004FC: .4byte gUnknown_300500C
-_08000500: .4byte gUnknown_2024588
-_08000504: .4byte gUnknown_3005008
-_08000508: .4byte gUnknown_202552C
-_0800050C: .4byte gUnknown_3005E88
- thumb_func_end sub_80004C4
-
- thumb_func_start sub_8000510
-sub_8000510: @ 8000510
- push {r4,lr}
- bl sub_80F5118
- cmp r0, 0
- bne _0800053A
- bl sub_813B870
- lsls r0, 24
- cmp r0, 0
- bne _0800053A
- ldr r4, _08000540 @ =gUnknown_30030F0
- ldr r0, [r4]
- cmp r0, 0
- beq _08000530
- bl _call_via_r0
-_08000530:
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _0800053A
- bl _call_via_r0
-_0800053A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08000540: .4byte gUnknown_30030F0
- thumb_func_end sub_8000510
-
- thumb_func_start SetMainCallback2
-SetMainCallback2: @ 8000544
- ldr r1, _08000554 @ =gUnknown_30030F0
- str r0, [r1, 0x4]
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08000554: .4byte gUnknown_30030F0
- thumb_func_end SetMainCallback2
-
- thumb_func_start StartTimer1
-StartTimer1: @ 8000558
- ldr r1, _08000560 @ =0x04000106
- movs r0, 0x80
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08000560: .4byte 0x04000106
- thumb_func_end StartTimer1
-
- thumb_func_start SeedRngAndSetTrainerId
-SeedRngAndSetTrainerId: @ 8000564
- push {r4,lr}
- ldr r0, _08000580 @ =0x04000104
- ldrh r4, [r0]
- adds r0, r4, 0
- bl SeedRng
- ldr r1, _08000584 @ =0x04000106
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08000588 @ =gUnknown_2020000
- strh r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08000580: .4byte 0x04000104
-_08000584: .4byte 0x04000106
-_08000588: .4byte gUnknown_2020000
- thumb_func_end SeedRngAndSetTrainerId
-
- thumb_func_start GetGeneratedTrainerIdLower
-GetGeneratedTrainerIdLower: @ 800058C
- ldr r0, _08000594 @ =gUnknown_2020000
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_08000594: .4byte gUnknown_2020000
- thumb_func_end GetGeneratedTrainerIdLower
-
- thumb_func_start EnableVCountIntrAtLine150
-EnableVCountIntrAtLine150: @ 8000598
- push {lr}
- movs r0, 0x4
- bl GetGpuReg
- movs r1, 0xFF
- ands r1, r0
- movs r2, 0x96
- lsls r2, 8
- adds r0, r2, 0
- orrs r1, r0
- movs r0, 0x20
- orrs r1, r0
- movs r0, 0x4
- bl SetGpuReg
- movs r0, 0x4
- bl EnableInterrupts
- pop {r0}
- bx r0
- thumb_func_end EnableVCountIntrAtLine150
-
- thumb_func_start InitKeys
-InitKeys: @ 80005C0
- ldr r1, _080005DC @ =gUnknown_300352C
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _080005E0 @ =gUnknown_30030E0
- movs r0, 0x28
- strh r0, [r1]
- ldr r1, _080005E4 @ =gUnknown_30030F0
- movs r0, 0
- strh r0, [r1, 0x2C]
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- strh r0, [r1, 0x28]
- strh r0, [r1, 0x2A]
- bx lr
- .align 2, 0
-_080005DC: .4byte gUnknown_300352C
-_080005E0: .4byte gUnknown_30030E0
-_080005E4: .4byte gUnknown_30030F0
- thumb_func_end InitKeys
-
- thumb_func_start ReadKeys
-ReadKeys: @ 80005E8
- push {lr}
- ldr r0, _08000624 @ =0x04000130
- ldrh r1, [r0]
- ldr r2, _08000628 @ =0x000003ff
- adds r0, r2, 0
- adds r3, r0, 0
- eors r3, r1
- ldr r1, _0800062C @ =gUnknown_30030F0
- ldrh r2, [r1, 0x28]
- adds r0, r3, 0
- bics r0, r2
- strh r0, [r1, 0x2A]
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- adds r2, r1, 0
- cmp r3, 0
- beq _08000634
- ldrh r0, [r2, 0x2C]
- cmp r0, r3
- bne _08000634
- ldrh r0, [r2, 0x32]
- subs r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _0800063A
- strh r3, [r2, 0x30]
- ldr r0, _08000630 @ =gUnknown_300352C
- b _08000636
- .align 2, 0
-_08000624: .4byte 0x04000130
-_08000628: .4byte 0x000003ff
-_0800062C: .4byte gUnknown_30030F0
-_08000630: .4byte gUnknown_300352C
-_08000634:
- ldr r0, _08000680 @ =gUnknown_30030E0
-_08000636:
- ldrh r0, [r0]
- strh r0, [r2, 0x32]
-_0800063A:
- strh r3, [r2, 0x28]
- strh r3, [r2, 0x2C]
- ldr r0, _08000684 @ =gUnknown_300500C
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x2
- bne _0800066C
- ldrh r1, [r2, 0x2E]
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800065C
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r2, 0x2E]
-_0800065C:
- ldrh r1, [r2, 0x2C]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800066C
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r2, 0x2C]
-_0800066C:
- ldrh r1, [r2, 0x2E]
- ldrh r0, [r2, 0x36]
- ands r0, r1
- cmp r0, 0
- beq _0800067A
- movs r0, 0x1
- strh r0, [r2, 0x34]
-_0800067A:
- pop {r0}
- bx r0
- .align 2, 0
-_08000680: .4byte gUnknown_30030E0
-_08000684: .4byte gUnknown_300500C
- thumb_func_end ReadKeys
-
- thumb_func_start InitIntrHandlers
-InitIntrHandlers: @ 8000688
- push {r4,r5,lr}
- ldr r5, _080006D4 @ =IntrMain
- ldr r4, _080006D8 @ =gUnknown_3003580
- ldr r3, _080006DC @ =gUnknown_81E9F28
- ldr r2, _080006E0 @ =gIntrTable
- movs r1, 0xD
-_08000694:
- ldm r3!, {r0}
- stm r2!, {r0}
- subs r1, 0x1
- cmp r1, 0
- bge _08000694
- ldr r0, _080006E4 @ =0x040000d4
- str r5, [r0]
- str r4, [r0, 0x4]
- ldr r1, _080006E8 @ =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080006EC @ =INTR_VECTOR
- str r4, [r0]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl sub_8000718
- ldr r1, _080006F0 @ =0x04000208
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
- bl EnableInterrupts
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080006D4: .4byte IntrMain
-_080006D8: .4byte gUnknown_3003580
-_080006DC: .4byte gUnknown_81E9F28
-_080006E0: .4byte gIntrTable
-_080006E4: .4byte 0x040000d4
-_080006E8: .4byte 0x84000200
-_080006EC: .4byte INTR_VECTOR
-_080006F0: .4byte 0x04000208
- thumb_func_end InitIntrHandlers
-
- thumb_func_start SetVBlankCallback
-SetVBlankCallback: @ 80006F4
- ldr r1, _080006FC @ =gUnknown_30030F0
- str r0, [r1, 0xC]
- bx lr
- .align 2, 0
-_080006FC: .4byte gUnknown_30030F0
- thumb_func_end SetVBlankCallback
-
- thumb_func_start SetHBlankCallback
-SetHBlankCallback: @ 8000700
- ldr r1, _08000708 @ =gUnknown_30030F0
- str r0, [r1, 0x10]
- bx lr
- .align 2, 0
-_08000708: .4byte gUnknown_30030F0
- thumb_func_end SetHBlankCallback
-
- thumb_func_start sub_800070C
-sub_800070C: @ 800070C
- ldr r1, _08000714 @ =gUnknown_30030F0
- str r0, [r1, 0x14]
- bx lr
- .align 2, 0
-_08000714: .4byte gUnknown_30030F0
- thumb_func_end sub_800070C
-
- thumb_func_start sub_8000718
-sub_8000718: @ 8000718
- ldr r1, _08000720 @ =gUnknown_30030F0
- str r0, [r1, 0x18]
- bx lr
- .align 2, 0
-_08000720: .4byte gUnknown_30030F0
- thumb_func_end sub_8000718
-
- thumb_func_start sub_8000724
-sub_8000724: @ 8000724
- push {r4,r5,lr}
- ldr r0, _08000734 @ =gUnknown_3003F3C
- ldrb r0, [r0]
- cmp r0, 0
- beq _08000738
- bl LinkVSync
- b _08000744
- .align 2, 0
-_08000734: .4byte gUnknown_3003F3C
-_08000738:
- ldr r0, _080007A8 @ =gUnknown_300357C
- ldrb r0, [r0]
- cmp r0, 0
- bne _08000744
- bl sub_800B718
-_08000744:
- ldr r5, _080007AC @ =gUnknown_30030F0
- ldr r1, [r5, 0x20]
- cmp r1, 0
- beq _08000752
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08000752:
- ldr r0, [r5, 0xC]
- cmp r0, 0
- beq _0800075C
- bl _call_via_r0
-_0800075C:
- ldr r0, [r5, 0x24]
- adds r0, 0x1
- str r0, [r5, 0x24]
- bl CopyBufferedValuesToGpuRegs
- bl ProcessDma3Requests
- ldr r1, _080007B0 @ =gUnknown_3003D88
- ldr r0, _080007B4 @ =gSoundInfo
- ldrb r0, [r0, 0x4]
- strb r0, [r1]
- ldr r1, _080007B8 @ =gUnknown_3003D84
- ldr r4, _080007BC @ =0x04000006
- ldrh r0, [r4]
- strb r0, [r1]
- bl m4aSoundMain
- ldr r1, _080007C0 @ =gUnknown_3003578
- ldrh r0, [r4]
- strb r0, [r1]
- bl sub_800DD28
- bl Random
- bl sub_80FCF34
- ldr r2, _080007C4 @ =INTR_CHECK
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x1C]
- ldrh r2, [r5, 0x1C]
- orrs r1, r0
- strh r1, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080007A8: .4byte gUnknown_300357C
-_080007AC: .4byte gUnknown_30030F0
-_080007B0: .4byte gUnknown_3003D88
-_080007B4: .4byte gSoundInfo
-_080007B8: .4byte gUnknown_3003D84
-_080007BC: .4byte 0x04000006
-_080007C0: .4byte gUnknown_3003578
-_080007C4: .4byte INTR_CHECK
- thumb_func_end sub_8000724
-
- thumb_func_start InitFlashTimer
-InitFlashTimer: @ 80007C8
- push {lr}
- ldr r0, _080007D8 @ =gUnknown_81E9F60
- ldr r1, [r0]
- movs r0, 0x2
- bl SetFlashTimerIntr
- pop {r0}
- bx r0
- .align 2, 0
-_080007D8: .4byte gUnknown_81E9F60
- thumb_func_end InitFlashTimer
-
- thumb_func_start HBlankIntr
-HBlankIntr: @ 80007DC
- push {r4,lr}
- ldr r4, _08000804 @ =gUnknown_30030F0
- ldr r0, [r4, 0x10]
- cmp r0, 0
- beq _080007EA
- bl _call_via_r0
-_080007EA:
- ldr r2, _08000808 @ =INTR_CHECK
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x1C]
- ldrh r2, [r4, 0x1C]
- orrs r1, r0
- strh r1, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08000804: .4byte gUnknown_30030F0
-_08000808: .4byte INTR_CHECK
- thumb_func_end HBlankIntr
-
- thumb_func_start sub_800080C
-sub_800080C: @ 800080C
- push {lr}
- ldr r1, _08000834 @ =gUnknown_3003D80
- ldr r0, _08000838 @ =0x04000006
- ldrh r0, [r0]
- strb r0, [r1]
- bl m4aSoundVSync
- ldr r2, _0800083C @ =INTR_CHECK
- ldrh r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08000840 @ =gUnknown_30030F0
- ldrh r2, [r0, 0x1C]
- ldrh r3, [r0, 0x1C]
- orrs r1, r2
- strh r1, [r0, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_08000834: .4byte gUnknown_3003D80
-_08000838: .4byte 0x04000006
-_0800083C: .4byte INTR_CHECK
-_08000840: .4byte gUnknown_30030F0
- thumb_func_end sub_800080C
-
- thumb_func_start sub_8000844
-sub_8000844: @ 8000844
- push {r4,lr}
- ldr r4, _0800086C @ =gUnknown_30030F0
- ldr r0, [r4, 0x18]
- cmp r0, 0
- beq _08000852
- bl _call_via_r0
-_08000852:
- ldr r2, _08000870 @ =INTR_CHECK
- ldrh r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x1C]
- ldrh r2, [r4, 0x1C]
- orrs r1, r0
- strh r1, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800086C: .4byte gUnknown_30030F0
-_08000870: .4byte INTR_CHECK
- thumb_func_end sub_8000844
-
- thumb_func_start sub_8000874
-sub_8000874: @ 8000874
- ldr r0, _08000880 @ =gIntrTable
- ldr r1, _08000884 @ =sub_8000844
- str r1, [r0, 0x4]
- ldr r1, _08000888 @ =Timer3Intr
- str r1, [r0, 0x8]
- bx lr
- .align 2, 0
-_08000880: .4byte gIntrTable
-_08000884: .4byte sub_8000844
-_08000888: .4byte Timer3Intr
- thumb_func_end sub_8000874
-
- thumb_func_start nullsub_4
-nullsub_4: @ 800088C
- bx lr
- thumb_func_end nullsub_4
-
- thumb_func_start sub_8000890
-sub_8000890: @ 8000890
- push {lr}
- ldr r2, _080008B8 @ =gUnknown_30030F0
- ldrh r1, [r2, 0x1C]
- ldr r0, _080008BC @ =0x0000fffe
- ands r0, r1
- ldrh r1, [r2, 0x1C]
- strh r0, [r2, 0x1C]
- ldrh r1, [r2, 0x1C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080008B4
- movs r3, 0x1
-_080008AA:
- ldrh r1, [r2, 0x1C]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080008AA
-_080008B4:
- pop {r0}
- bx r0
- .align 2, 0
-_080008B8: .4byte gUnknown_30030F0
-_080008BC: .4byte 0x0000fffe
- thumb_func_end sub_8000890
-
- thumb_func_start sub_80008C0
-sub_80008C0: @ 80008C0
- ldr r1, _080008C8 @ =gUnknown_30030F0
- str r0, [r1, 0x20]
- bx lr
- .align 2, 0
-_080008C8: .4byte gUnknown_30030F0
- thumb_func_end sub_80008C0
-
- thumb_func_start sub_80008CC
-sub_80008CC: @ 80008CC
- ldr r1, _080008D4 @ =gUnknown_30030F0
- movs r0, 0
- str r0, [r1, 0x20]
- bx lr
- .align 2, 0
-_080008D4: .4byte gUnknown_30030F0
- thumb_func_end sub_80008CC
-
- thumb_func_start sub_80008D8
-sub_80008D8: @ 80008D8
- push {r4,lr}
- ldr r1, _08000930 @ =0x04000208
- movs r0, 0
- strh r0, [r1]
- bl m4aSoundVSyncOff
- bl remove_some_task
- ldr r1, _08000934 @ =0x040000bc
- ldrh r2, [r1, 0xA]
- ldr r3, _08000938 @ =0x0000c5ff
- adds r0, r3, 0
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r4, [r1, 0xA]
- ldr r2, _0800093C @ =0x00007fff
- adds r0, r2, 0
- ands r0, r4
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- adds r1, 0xC
- ldrh r4, [r1, 0xA]
- adds r0, r3, 0
- ands r0, r4
- strh r0, [r1, 0xA]
- ldrh r4, [r1, 0xA]
- adds r0, r2, 0
- ands r0, r4
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r0, _08000940 @ =0x040000d4
- ldrh r1, [r0, 0xA]
- ands r3, r1
- strh r3, [r0, 0xA]
- ldrh r1, [r0, 0xA]
- ands r2, r1
- strh r2, [r0, 0xA]
- ldrh r0, [r0, 0xA]
- movs r0, 0xDF
- bl SoftReset
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08000930: .4byte 0x04000208
-_08000934: .4byte 0x040000bc
-_08000938: .4byte 0x0000c5ff
-_0800093C: .4byte 0x00007fff
-_08000940: .4byte 0x040000d4
- thumb_func_end sub_80008D8
-
- thumb_func_start sub_8000944
-sub_8000944: @ 8000944
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08000960 @ =gPokemonCrySongs
- ldr r2, _08000964 @ =0x01000034
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08000960: .4byte gPokemonCrySongs
-_08000964: .4byte 0x01000034
- thumb_func_end sub_8000944
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/main_menu.s b/asm/main_menu.s
index 7ad15ad26..32563db7e 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -442,7 +442,7 @@ sub_800C688: @ 800C688
lsls r0, 16
cmp r0, 0
bne _0800C6F8
- ldr r0, _0800C6E4 @ =gUnknown_30030F0
+ ldr r0, _0800C6E4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -467,7 +467,7 @@ sub_800C688: @ 800C688
b _0800C6F6
.align 2, 0
_0800C6E0: .4byte gUnknown_2037AB8
-_0800C6E4: .4byte gUnknown_30030F0
+_0800C6E4: .4byte gMain
_0800C6E8: .4byte gUnknown_8234638
_0800C6EC: .4byte gUnknown_3005090
_0800C6F0: .4byte sub_800C704
@@ -591,7 +591,7 @@ sub_800C7A0: @ 800C7A0
movs r0, 0x54
movs r1, 0x7
bl SetGpuReg
- ldr r0, _0800C7F4 @ =gUnknown_300500C
+ ldr r0, _0800C7F4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -599,7 +599,7 @@ sub_800C7A0: @ 800C7A0
ldr r1, _0800C7F8 @ =0x00007e04
b _0800C7FE
.align 2, 0
-_0800C7F4: .4byte gUnknown_300500C
+_0800C7F4: .4byte gSaveBlock2Ptr
_0800C7F8: .4byte 0x00007e04
_0800C7FC:
ldr r1, _0800C85C @ =0x0000547f
@@ -1104,7 +1104,7 @@ _0800CC28:
strh r0, [r4, 0x1A]
b _0800CC58
_0800CC34:
- ldr r0, _0800CC60 @ =gUnknown_30030F0
+ ldr r0, _0800CC60 @ =gMain
ldrh r0, [r0, 0x2E]
ands r1, r0
cmp r1, 0
@@ -1126,7 +1126,7 @@ _0800CC58:
pop {r0}
bx r0
.align 2, 0
-_0800CC60: .4byte gUnknown_30030F0
+_0800CC60: .4byte gMain
_0800CC64: .4byte sub_800CC68
thumb_func_end sub_800CB90
@@ -1218,7 +1218,7 @@ sub_800CCF8: @ 800CCF8
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0800CD38 @ =gUnknown_30030F0
+ ldr r0, _0800CD38 @ =gMain
ldrh r1, [r0, 0x2E]
movs r5, 0x1
ands r5, r1
@@ -1244,7 +1244,7 @@ sub_800CCF8: @ 800CCF8
str r1, [r0]
b _0800CDEC
.align 2, 0
-_0800CD38: .4byte gUnknown_30030F0
+_0800CD38: .4byte gMain
_0800CD3C: .4byte gUnknown_3005090
_0800CD40: .4byte sub_800CA94
_0800CD44:
@@ -1407,7 +1407,7 @@ sub_800CE70: @ 800CE70
bl box_print
add r1, sp, 0xC
movs r2, 0
- ldr r0, _0800CED0 @ =gUnknown_300500C
+ ldr r0, _0800CED0 @ =gSaveBlock2Ptr
ldr r3, [r0]
_0800CE96:
adds r0, r3, r2
@@ -1437,7 +1437,7 @@ _0800CE96:
.align 2, 0
_0800CEC8: .4byte gUnknown_823468B
_0800CECC: .4byte gUnknown_841B6D5
-_0800CED0: .4byte gUnknown_300500C
+_0800CED0: .4byte gSaveBlock2Ptr
thumb_func_end sub_800CE70
thumb_func_start sub_800CED4
@@ -1456,7 +1456,7 @@ sub_800CED4: @ 800CED4
movs r2, 0x2
movs r3, 0x22
bl box_print
- ldr r4, _0800CF38 @ =gUnknown_300500C
+ ldr r4, _0800CF38 @ =gSaveBlock2Ptr
ldr r0, [r4]
ldrh r1, [r0, 0xE]
add r0, sp, 0xC
@@ -1487,7 +1487,7 @@ sub_800CED4: @ 800CED4
.align 2, 0
_0800CF30: .4byte gUnknown_823468B
_0800CF34: .4byte gUnknown_841B6DC
-_0800CF38: .4byte gUnknown_300500C
+_0800CF38: .4byte gSaveBlock2Ptr
thumb_func_end sub_800CED4
thumb_func_start sub_800CF3C
@@ -1620,7 +1620,7 @@ sub_800D044: @ 800D044
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r5, _0800D088 @ =gUnknown_300500C
+ ldr r5, _0800D088 @ =gSaveBlock2Ptr
ldr r0, [r5]
ldrb r0, [r0, 0x14]
lsrs r0, 3
@@ -1645,7 +1645,7 @@ sub_800D044: @ 800D044
pop {r0}
bx r0
.align 2, 0
-_0800D088: .4byte gUnknown_300500C
+_0800D088: .4byte gSaveBlock2Ptr
_0800D08C: .4byte 0x000001b1
_0800D090: .4byte gUnknown_8234638
thumb_func_end sub_800D044
diff --git a/asm/menu.s b/asm/menu.s
index 5fea2df97..e2e8fd6ea 100644
--- a/asm/menu.s
+++ b/asm/menu.s
@@ -1508,7 +1508,7 @@ _0810F994: .4byte gUnknown_203ADE4
thumb_func_start ProcessMenuInput
ProcessMenuInput: @ 810F998
push {r4,lr}
- ldr r0, _0810F9BC @ =gUnknown_30030F0
+ ldr r0, _0810F9BC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1525,7 +1525,7 @@ _0810F9B4:
ldrsb r0, [r4, r0]
b _0810F9FE
.align 2, 0
-_0810F9BC: .4byte gUnknown_30030F0
+_0810F9BC: .4byte gMain
_0810F9C0: .4byte gUnknown_203ADE4
_0810F9C4:
movs r0, 0x2
@@ -1570,7 +1570,7 @@ ProcessMenuInputNoWrapAround: @ 810FA04
ldr r4, _0810FA2C @ =gUnknown_203ADE4
ldrb r5, [r4, 0x2]
adds r6, r5, 0
- ldr r0, _0810FA30 @ =gUnknown_30030F0
+ ldr r0, _0810FA30 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1587,7 +1587,7 @@ _0810FA24:
b _0810FA7C
.align 2, 0
_0810FA2C: .4byte gUnknown_203ADE4
-_0810FA30: .4byte gUnknown_30030F0
+_0810FA30: .4byte gMain
_0810FA34:
movs r0, 0x2
ands r0, r1
@@ -1635,7 +1635,7 @@ _0810FA7C:
thumb_func_start ProcessMenuInput_other
ProcessMenuInput_other: @ 810FA84
push {r4,lr}
- ldr r2, _0810FAA8 @ =gUnknown_30030F0
+ ldr r2, _0810FAA8 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1652,7 +1652,7 @@ _0810FAA0:
ldrsb r0, [r4, r0]
b _0810FAE8
.align 2, 0
-_0810FAA8: .4byte gUnknown_30030F0
+_0810FAA8: .4byte gMain
_0810FAAC: .4byte gUnknown_203ADE4
_0810FAB0:
movs r0, 0x2
@@ -1696,7 +1696,7 @@ ProcessMenuInputNoWrapAround_other: @ 810FAF0
ldr r4, _0810FB18 @ =gUnknown_203ADE4
ldrb r5, [r4, 0x2]
adds r6, r5, 0
- ldr r2, _0810FB1C @ =gUnknown_30030F0
+ ldr r2, _0810FB1C @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1713,7 +1713,7 @@ _0810FB10:
b _0810FB66
.align 2, 0
_0810FB18: .4byte gUnknown_203ADE4
-_0810FB1C: .4byte gUnknown_30030F0
+_0810FB1C: .4byte gMain
_0810FB20:
movs r0, 0x2
ands r0, r1
@@ -3095,7 +3095,7 @@ _08110592:
thumb_func_start sub_81105A0
sub_81105A0: @ 81105A0
push {r4,lr}
- ldr r4, _081105C0 @ =gUnknown_30030F0
+ ldr r4, _081105C0 @ =gMain
ldrh r1, [r4, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3109,7 +3109,7 @@ sub_81105A0: @ 81105A0
asrs r0, 24
b _08110648
.align 2, 0
-_081105C0: .4byte gUnknown_30030F0
+_081105C0: .4byte gMain
_081105C4: .4byte gUnknown_203ADE4
_081105C8:
movs r0, 0x2
@@ -3189,7 +3189,7 @@ sub_8110650: @ 8110650
push {r4-r6,lr}
ldr r5, _08110670 @ =gUnknown_203ADE4
ldrb r4, [r5, 0x2]
- ldr r6, _08110674 @ =gUnknown_30030F0
+ ldr r6, _08110674 @ =gMain
ldrh r1, [r6, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3202,7 +3202,7 @@ sub_8110650: @ 8110650
b _081106EE
.align 2, 0
_08110670: .4byte gUnknown_203ADE4
-_08110674: .4byte gUnknown_30030F0
+_08110674: .4byte gMain
_08110678:
movs r0, 0x2
ands r0, r1
@@ -3277,7 +3277,7 @@ _081106EE:
thumb_func_start sub_81106F4
sub_81106F4: @ 81106F4
push {r4,r5,lr}
- ldr r4, _08110714 @ =gUnknown_30030F0
+ ldr r4, _08110714 @ =gMain
ldrh r1, [r4, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3291,7 +3291,7 @@ sub_81106F4: @ 81106F4
asrs r0, 24
b _08110798
.align 2, 0
-_08110714: .4byte gUnknown_30030F0
+_08110714: .4byte gMain
_08110718: .4byte gUnknown_203ADE4
_0811071C:
movs r0, 0x2
@@ -3369,7 +3369,7 @@ sub_81107A0: @ 81107A0
push {r4-r6,lr}
ldr r6, _081107C0 @ =gUnknown_203ADE4
ldrb r4, [r6, 0x2]
- ldr r5, _081107C4 @ =gUnknown_30030F0
+ ldr r5, _081107C4 @ =gMain
ldrh r1, [r5, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3382,7 +3382,7 @@ sub_81107A0: @ 81107A0
b _0811083A
.align 2, 0
_081107C0: .4byte gUnknown_203ADE4
-_081107C4: .4byte gUnknown_30030F0
+_081107C4: .4byte gMain
_081107C8:
movs r0, 0x2
ands r0, r1
diff --git a/asm/menu2.s b/asm/menu2.s
index 12eae4147..d74f48ea2 100644
--- a/asm/menu2.s
+++ b/asm/menu2.s
@@ -246,7 +246,7 @@ sub_812E6DC: @ 812E6DC
lsls r3, 16
lsrs r6, r3, 16
movs r4, 0
- ldr r0, _0812E734 @ =gUnknown_300500C
+ ldr r0, _0812E734 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r0, [r2]
ldr r7, _0812E738 @ =gUnknown_2021D18
@@ -278,7 +278,7 @@ _0812E70A:
bl PrintTextOnWindow
b _0812E75C
.align 2, 0
-_0812E734: .4byte gUnknown_300500C
+_0812E734: .4byte gSaveBlock2Ptr
_0812E738: .4byte gUnknown_2021D18
_0812E73C:
lsls r3, r5, 24
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index d4339a74b..648b255bc 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -233,12 +233,12 @@ _080BF62C: .4byte sub_80BF560
thumb_func_start GetLRKeysState
GetLRKeysState: @ 80BF630
push {lr}
- ldr r0, _080BF650 @ =gUnknown_300500C
+ ldr r0, _080BF650 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
bne _080BF666
- ldr r0, _080BF654 @ =gUnknown_30030F0
+ ldr r0, _080BF654 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
lsls r0, 2
@@ -248,8 +248,8 @@ GetLRKeysState: @ 80BF630
movs r0, 0x1
b _080BF668
.align 2, 0
-_080BF650: .4byte gUnknown_300500C
-_080BF654: .4byte gUnknown_30030F0
+_080BF650: .4byte gSaveBlock2Ptr
+_080BF654: .4byte gMain
_080BF658:
movs r0, 0x80
lsls r0, 1
@@ -268,12 +268,12 @@ _080BF668:
thumb_func_start sub_80BF66C
sub_80BF66C: @ 80BF66C
push {lr}
- ldr r0, _080BF68C @ =gUnknown_300500C
+ ldr r0, _080BF68C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
bne _080BF6A2
- ldr r0, _080BF690 @ =gUnknown_30030F0
+ ldr r0, _080BF690 @ =gMain
ldrh r1, [r0, 0x30]
movs r0, 0x80
lsls r0, 2
@@ -283,8 +283,8 @@ sub_80BF66C: @ 80BF66C
movs r0, 0x1
b _080BF6A4
.align 2, 0
-_080BF68C: .4byte gUnknown_300500C
-_080BF690: .4byte gUnknown_30030F0
+_080BF68C: .4byte gSaveBlock2Ptr
+_080BF690: .4byte gMain
_080BF694:
movs r0, 0x80
lsls r0, 1
@@ -307,7 +307,7 @@ sub_80BF6A8: @ 80BF6A8
lsrs r0, 16
cmp r0, 0xAF
bne _080BF6D0
- ldr r0, _080BF6CC @ =gUnknown_3005008
+ ldr r0, _080BF6CC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
movs r0, 0x80
@@ -321,7 +321,7 @@ _080BF6C8:
movs r0, 0
b _080BF6D2
.align 2, 0
-_080BF6CC: .4byte gUnknown_3005008
+_080BF6CC: .4byte gSaveBlock1Ptr
_080BF6D0:
movs r0, 0x1
_080BF6D2:
@@ -528,7 +528,7 @@ sub_80BF848: @ 80BF848
adds r5, r1, 0
ldrh r4, [r2]
adds r6, r4, 0
- ldr r0, _080BF87C @ =gUnknown_30030F0
+ ldr r0, _080BF87C @ =gMain
ldrh r0, [r0, 0x30]
movs r3, 0xF0
ands r3, r0
@@ -549,7 +549,7 @@ _080BF876:
lsls r0, r4, 16
b _080BF8CA
.align 2, 0
-_080BF87C: .4byte gUnknown_30030F0
+_080BF87C: .4byte gMain
_080BF880:
cmp r3, 0x80
bne _080BF896
diff --git a/asm/mevent.s b/asm/mevent.s
index e8cf40c37..e4601686e 100644
--- a/asm/mevent.s
+++ b/asm/mevent.s
@@ -66,7 +66,7 @@ sub_8143644: @ 8143644
strh r0, [r4]
bl sub_815C960
bl sub_815C91C
- bl sub_8000874
+ bl RestoreSerialTimer3IntrHandlers
mov r0, sp
ldrh r0, [r0]
strh r0, [r4]
@@ -292,7 +292,7 @@ _081437F8:
strh r0, [r5]
b _08143872
_08143814:
- ldr r0, _08143828 @ =gUnknown_30030F0
+ ldr r0, _08143828 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -303,7 +303,7 @@ _08143814:
movs r0, 0x1
b _0814389A
.align 2, 0
-_08143828: .4byte gUnknown_30030F0
+_08143828: .4byte gMain
_0814382C:
ldrh r0, [r5]
adds r0, 0x1
@@ -555,7 +555,7 @@ _08143A24:
strb r0, [r4, 0x8]
b _08143D1A
_08143A3A:
- ldr r0, _08143A58 @ =gUnknown_30030F0
+ ldr r0, _08143A58 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -569,9 +569,9 @@ _08143A48:
bl sub_80722CC
b _08143BE6
.align 2, 0
-_08143A58: .4byte gUnknown_30030F0
+_08143A58: .4byte gMain
_08143A5C:
- ldr r0, _08143A7C @ =gUnknown_30030F0
+ ldr r0, _08143A7C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -584,7 +584,7 @@ _08143A5C:
bl sub_81438E8
b _08143BE6
.align 2, 0
-_08143A7C: .4byte gUnknown_30030F0
+_08143A7C: .4byte gMain
_08143A80:
bl GetLinkPlayerCount_2
lsls r0, 24
@@ -842,13 +842,13 @@ _08143CA4:
lsls r0, 24
cmp r0, 0
beq _08143D1A
- ldr r0, _08143CB8 @ =gUnknown_30030F0
+ ldr r0, _08143CB8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
b _08143CC6
.align 2, 0
-_08143CB8: .4byte gUnknown_30030F0
+_08143CB8: .4byte gMain
_08143CBC:
adds r0, r4, 0
adds r0, 0x9
@@ -912,7 +912,7 @@ sub_8143D24: @ 8143D24
sub sp, 0x4
movs r0, 0
str r0, [sp]
- ldr r0, _08143D4C @ =gUnknown_3005008
+ ldr r0, _08143D4C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _08143D50 @ =0x00003120
adds r1, r0
@@ -925,68 +925,68 @@ sub_8143D24: @ 8143D24
pop {r0}
bx r0
.align 2, 0
-_08143D4C: .4byte gUnknown_3005008
+_08143D4C: .4byte gSaveBlock1Ptr
_08143D50: .4byte 0x00003120
_08143D54: .4byte 0x050000db
thumb_func_end sub_8143D24
thumb_func_start sub_8143D58
sub_8143D58: @ 8143D58
- ldr r0, _08143D64 @ =gUnknown_3005008
+ ldr r0, _08143D64 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08143D68 @ =0x00003124
adds r0, r1
bx lr
.align 2, 0
-_08143D64: .4byte gUnknown_3005008
+_08143D64: .4byte gSaveBlock1Ptr
_08143D68: .4byte 0x00003124
thumb_func_end sub_8143D58
thumb_func_start sav1_get_mevent_buffer_1
sav1_get_mevent_buffer_1: @ 8143D6C
- ldr r0, _08143D78 @ =gUnknown_3005008
+ ldr r0, _08143D78 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08143D7C @ =0x000032e4
adds r0, r1
bx lr
.align 2, 0
-_08143D78: .4byte gUnknown_3005008
+_08143D78: .4byte gSaveBlock1Ptr
_08143D7C: .4byte 0x000032e4
thumb_func_end sav1_get_mevent_buffer_1
thumb_func_start sav1_get_mevent_buffer_2
sav1_get_mevent_buffer_2: @ 8143D80
- ldr r0, _08143D8C @ =gUnknown_3005008
+ ldr r0, _08143D8C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08143D90 @ =0x00003434
adds r0, r1
bx lr
.align 2, 0
-_08143D8C: .4byte gUnknown_3005008
+_08143D8C: .4byte gSaveBlock1Ptr
_08143D90: .4byte 0x00003434
thumb_func_end sav1_get_mevent_buffer_2
thumb_func_start sub_8143D94
sub_8143D94: @ 8143D94
- ldr r0, _08143DA0 @ =gUnknown_3005008
+ ldr r0, _08143DA0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08143DA4 @ =0x00003460
adds r0, r1
bx lr
.align 2, 0
-_08143DA0: .4byte gUnknown_3005008
+_08143DA0: .4byte gSaveBlock1Ptr
_08143DA4: .4byte 0x00003460
thumb_func_end sub_8143D94
thumb_func_start sub_8143DA8
sub_8143DA8: @ 8143DA8
- ldr r0, _08143DB4 @ =gUnknown_3005008
+ ldr r0, _08143DB4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08143DB8 @ =0x00003458
adds r0, r1
bx lr
.align 2, 0
-_08143DB4: .4byte gUnknown_3005008
+_08143DB4: .4byte gSaveBlock1Ptr
_08143DB8: .4byte 0x00003458
thumb_func_end sub_8143DA8
@@ -1006,7 +1006,7 @@ sub_8143DC8: @ 8143DC8
cmp r0, 0
beq _08143E14
bl sub_8143E9C
- ldr r4, _08143E08 @ =gUnknown_3005008
+ ldr r4, _08143E08 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r5, _08143E0C @ =0x00003124
adds r0, r5
@@ -1028,7 +1028,7 @@ sub_8143DC8: @ 8143DC8
movs r0, 0x1
b _08143E16
.align 2, 0
-_08143E08: .4byte gUnknown_3005008
+_08143E08: .4byte gSaveBlock1Ptr
_08143E0C: .4byte 0x00003124
_08143E10: .4byte 0x00003120
_08143E14:
@@ -1042,7 +1042,7 @@ _08143E16:
thumb_func_start sub_8143E1C
sub_8143E1C: @ 8143E1C
push {r4,lr}
- ldr r4, _08143E50 @ =gUnknown_3005008
+ ldr r4, _08143E50 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r1, _08143E54 @ =0x00003124
adds r0, r1
@@ -1065,7 +1065,7 @@ sub_8143E1C: @ 8143E1C
movs r0, 0x1
b _08143E5E
.align 2, 0
-_08143E50: .4byte gUnknown_3005008
+_08143E50: .4byte gSaveBlock1Ptr
_08143E54: .4byte 0x00003124
_08143E58: .4byte 0x00003120
_08143E5C:
@@ -1094,7 +1094,7 @@ _08143E72:
thumb_func_start sub_8143E78
sub_8143E78: @ 8143E78
push {lr}
- ldr r0, _08143E8C @ =gUnknown_3005008
+ ldr r0, _08143E8C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08143E90 @ =0x00003124
adds r0, r1
@@ -1104,7 +1104,7 @@ sub_8143E78: @ 8143E78
movs r0, 0x1
b _08143E96
.align 2, 0
-_08143E8C: .4byte gUnknown_3005008
+_08143E8C: .4byte gSaveBlock1Ptr
_08143E90: .4byte 0x00003124
_08143E94:
movs r0, 0
@@ -1124,7 +1124,7 @@ sub_8143E9C: @ 8143E9C
ldr r2, _08143EC4 @ =0x0500006f
mov r0, sp
bl CpuSet
- ldr r0, _08143EC8 @ =gUnknown_3005008
+ ldr r0, _08143EC8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08143ECC @ =0x00003120
adds r0, r1
@@ -1135,7 +1135,7 @@ sub_8143E9C: @ 8143E9C
bx r0
.align 2, 0
_08143EC4: .4byte 0x0500006f
-_08143EC8: .4byte gUnknown_3005008
+_08143EC8: .4byte gSaveBlock1Ptr
_08143ECC: .4byte 0x00003120
thumb_func_end sub_8143E9C
@@ -1162,7 +1162,7 @@ _08143EF0: .4byte 0x05000001
sub_8143EF4: @ 8143EF4
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _08143F0C @ =gUnknown_3005008
+ ldr r0, _08143F0C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08143F10 @ =0x00003124
adds r4, r0, r1
@@ -1173,7 +1173,7 @@ _08143F08:
movs r0, 0
b _08143F2C
.align 2, 0
-_08143F0C: .4byte gUnknown_3005008
+_08143F0C: .4byte gSaveBlock1Ptr
_08143F10: .4byte 0x00003124
_08143F14:
movs r2, 0
@@ -1206,7 +1206,7 @@ sub_8143F38: @ 8143F38
bl ClearRamScript
bl sub_806E2D0
bl sub_806E370
- ldr r0, _08143F64 @ =gUnknown_300500C
+ ldr r0, _08143F64 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r1, 0x94
lsls r1, 3
@@ -1215,7 +1215,7 @@ sub_8143F38: @ 8143F38
pop {r0}
bx r0
.align 2, 0
-_08143F64: .4byte gUnknown_300500C
+_08143F64: .4byte gSaveBlock2Ptr
thumb_func_end sub_8143F38
thumb_func_start sub_8143F68
@@ -1226,7 +1226,7 @@ sub_8143F68: @ 8143F68
cmp r0, 0
beq _08143FC0
bl sub_8143F38
- ldr r4, _08143FB0 @ =gUnknown_3005008
+ ldr r4, _08143FB0 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r5, _08143FB4 @ =0x000032e4
adds r0, r5
@@ -1253,7 +1253,7 @@ sub_8143F68: @ 8143F68
movs r0, 0x1
b _08143FC2
.align 2, 0
-_08143FB0: .4byte gUnknown_3005008
+_08143FB0: .4byte gSaveBlock1Ptr
_08143FB4: .4byte 0x000032e4
_08143FB8: .4byte 0x000032e0
_08143FBC: .4byte 0x00003434
@@ -1268,7 +1268,7 @@ _08143FC2:
thumb_func_start sub_8143FC8
sub_8143FC8: @ 8143FC8
push {r4,r5,lr}
- ldr r5, _08144004 @ =gUnknown_3005008
+ ldr r5, _08144004 @ =gSaveBlock1Ptr
ldr r0, [r5]
ldr r1, _08144008 @ =0x000032e0
adds r4, r0, r1
@@ -1294,7 +1294,7 @@ sub_8143FC8: @ 8143FC8
movs r0, 0x1
b _08144012
.align 2, 0
-_08144004: .4byte gUnknown_3005008
+_08144004: .4byte gSaveBlock1Ptr
_08144008: .4byte 0x000032e0
_0814400C: .4byte 0x000032e4
_08144010:
@@ -1345,7 +1345,7 @@ _08144050:
thumb_func_start sub_8144054
sub_8144054: @ 8144054
push {lr}
- ldr r0, _0814406C @ =gUnknown_3005008
+ ldr r0, _0814406C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08144070 @ =0x000032e4
adds r0, r1
@@ -1357,7 +1357,7 @@ sub_8144054: @ 8144054
movs r0, 0x1
b _08144076
.align 2, 0
-_0814406C: .4byte gUnknown_3005008
+_0814406C: .4byte gSaveBlock1Ptr
_08144070: .4byte 0x000032e4
_08144074:
movs r0, 0
@@ -1372,7 +1372,7 @@ sub_814407C: @ 814407C
sub sp, 0x4
movs r5, 0
str r5, [sp]
- ldr r4, _081440A4 @ =gUnknown_3005008
+ ldr r4, _081440A4 @ =gSaveBlock1Ptr
ldr r1, [r4]
ldr r0, _081440A8 @ =0x000032e4
adds r1, r0
@@ -1388,7 +1388,7 @@ sub_814407C: @ 814407C
pop {r0}
bx r0
.align 2, 0
-_081440A4: .4byte gUnknown_3005008
+_081440A4: .4byte gSaveBlock1Ptr
_081440A8: .4byte 0x000032e4
_081440AC: .4byte 0x05000053
_081440B0: .4byte 0x000032e0
@@ -1405,7 +1405,7 @@ sub_81440B4: @ 81440B4
ldr r2, _081440DC @ =0x05000009
mov r0, sp
bl CpuSet
- ldr r0, _081440E0 @ =gUnknown_3005008
+ ldr r0, _081440E0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _081440E4 @ =0x00003430
adds r0, r1
@@ -1416,7 +1416,7 @@ sub_81440B4: @ 81440B4
bx r0
.align 2, 0
_081440DC: .4byte 0x05000009
-_081440E0: .4byte gUnknown_3005008
+_081440E0: .4byte gSaveBlock1Ptr
_081440E4: .4byte 0x00003430
thumb_func_end sub_81440B4
@@ -1429,7 +1429,7 @@ sub_81440E8: @ 81440E8
movs r0, 0
b _08144100
_081440F6:
- ldr r0, _08144104 @ =gUnknown_3005008
+ ldr r0, _08144104 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08144108 @ =0x000032e4
adds r0, r1
@@ -1438,7 +1438,7 @@ _08144100:
pop {r1}
bx r1
.align 2, 0
-_08144104: .4byte gUnknown_3005008
+_08144104: .4byte gSaveBlock1Ptr
_08144108: .4byte 0x000032e4
thumb_func_end sub_81440E8
@@ -1612,7 +1612,7 @@ sub_8144218: @ 8144218
bl sub_8143FC8
cmp r0, 0
beq _0814424C
- ldr r0, _08144240 @ =gUnknown_3005008
+ ldr r0, _08144240 @ =gSaveBlock1Ptr
ldr r3, [r0]
ldr r0, _08144244 @ =0x000032e4
adds r2, r3, r0
@@ -1627,7 +1627,7 @@ sub_8144218: @ 8144218
bl sub_8144184
b _0814424E
.align 2, 0
-_08144240: .4byte gUnknown_3005008
+_08144240: .4byte gSaveBlock1Ptr
_08144244: .4byte 0x000032e4
_08144248: .4byte 0x00003434
_0814424C:
@@ -1641,7 +1641,7 @@ _0814424E:
sub_8144254: @ 8144254
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _08144280 @ =gUnknown_3005008
+ ldr r6, _08144280 @ =gSaveBlock1Ptr
ldr r0, [r6]
ldr r1, _08144284 @ =0x000032e4
adds r0, r1
@@ -1660,7 +1660,7 @@ sub_8144254: @ 8144254
beq _08144298
b _081442BE
.align 2, 0
-_08144280: .4byte gUnknown_3005008
+_08144280: .4byte gSaveBlock1Ptr
_08144284: .4byte 0x000032e4
_08144288: .4byte 0x00003434
_0814428C:
@@ -1753,7 +1753,7 @@ _08144330:
_08144332:
adds r5, r4, 0
adds r5, 0x4C
- ldr r0, _081443BC @ =gUnknown_300500C
+ ldr r0, _081443BC @ =gSaveBlock2Ptr
mov r8, r0
adds r6, r4, 0
adds r6, 0x45
@@ -1765,7 +1765,7 @@ _08144332:
movs r2, 0x60
adds r2, r4
mov r10, r2
- ldr r0, _081443C0 @ =gUnknown_3005008
+ ldr r0, _081443C0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r3, _081443C4 @ =0x00003458
adds r2, r0, r3
@@ -1789,7 +1789,7 @@ _0814435C:
ldr r1, [r2]
adds r0, r6, 0
bl StringCopy
- ldr r0, _081443C0 @ =gUnknown_3005008
+ ldr r0, _081443C0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r3, _081443C8 @ =0x00002ca0
adds r2, r0, r3
@@ -1820,8 +1820,8 @@ _0814438C:
pop {r0}
bx r0
.align 2, 0
-_081443BC: .4byte gUnknown_300500C
-_081443C0: .4byte gUnknown_3005008
+_081443BC: .4byte gSaveBlock2Ptr
+_081443C0: .4byte gSaveBlock1Ptr
_081443C4: .4byte 0x00003458
_081443C8: .4byte 0x00002ca0
_081443CC: .4byte RomHeaderGameCode
@@ -2025,7 +2025,7 @@ _08144518: .4byte gUnknown_8466F5C
sub_814451C: @ 814451C
push {r4,lr}
adds r4, r0, 0
- ldr r2, _08144544 @ =gUnknown_3005008
+ ldr r2, _08144544 @ =gSaveBlock1Ptr
ldr r0, [r2]
ldr r1, _08144548 @ =0x000032e4
adds r0, r1
@@ -2044,7 +2044,7 @@ sub_814451C: @ 814451C
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08144544: .4byte gUnknown_3005008
+_08144544: .4byte gSaveBlock1Ptr
_08144548: .4byte 0x000032e4
_0814454C: .4byte _08144550
.align 2, 0
@@ -2123,7 +2123,7 @@ _081445D4:
.4byte _08144660
.4byte _08144684
_081445E8:
- ldr r0, _08144604 @ =gUnknown_3005008
+ ldr r0, _08144604 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _08144608 @ =0x000032e4
adds r0, r2, r1
@@ -2137,11 +2137,11 @@ _081445E8:
ldrh r0, [r0]
b _081446B2
.align 2, 0
-_08144604: .4byte gUnknown_3005008
+_08144604: .4byte gSaveBlock1Ptr
_08144608: .4byte 0x000032e4
_0814460C: .4byte 0x00003434
_08144610:
- ldr r0, _0814462C @ =gUnknown_3005008
+ ldr r0, _0814462C @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _08144630 @ =0x000032e4
adds r0, r2, r1
@@ -2155,11 +2155,11 @@ _08144610:
ldrh r0, [r0, 0x2]
b _081446B2
.align 2, 0
-_0814462C: .4byte gUnknown_3005008
+_0814462C: .4byte gSaveBlock1Ptr
_08144630: .4byte 0x000032e4
_08144634: .4byte 0x00003434
_08144638:
- ldr r0, _08144654 @ =gUnknown_3005008
+ ldr r0, _08144654 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _08144658 @ =0x000032e4
adds r0, r2, r1
@@ -2173,11 +2173,11 @@ _08144638:
ldrh r0, [r0, 0x4]
b _081446B2
.align 2, 0
-_08144654: .4byte gUnknown_3005008
+_08144654: .4byte gSaveBlock1Ptr
_08144658: .4byte 0x000032e4
_0814465C: .4byte 0x00003434
_08144660:
- ldr r0, _0814467C @ =gUnknown_3005008
+ ldr r0, _0814467C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08144680 @ =0x000032e4
adds r0, r1
@@ -2191,10 +2191,10 @@ _08144660:
lsrs r0, 16
b _081446B2
.align 2, 0
-_0814467C: .4byte gUnknown_3005008
+_0814467C: .4byte gSaveBlock1Ptr
_08144680: .4byte 0x000032e4
_08144684:
- ldr r0, _0814469C @ =gUnknown_3005008
+ ldr r0, _0814469C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _081446A0 @ =0x000032e4
adds r2, r0, r1
@@ -2206,7 +2206,7 @@ _08144684:
ldrb r0, [r2, 0x9]
b _081446B2
.align 2, 0
-_0814469C: .4byte gUnknown_3005008
+_0814469C: .4byte gSaveBlock1Ptr
_081446A0: .4byte 0x000032e4
_081446A4:
ldr r0, _081446B8 @ =gUnknown_8466F28
@@ -2248,7 +2248,7 @@ sub_81446D0: @ 81446D0
bl sub_8143FC8
cmp r0, 0
beq _0814470C
- ldr r0, _08144704 @ =gUnknown_3005008
+ ldr r0, _08144704 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08144708 @ =0x000032e4
adds r0, r1
@@ -2260,7 +2260,7 @@ sub_81446D0: @ 81446D0
b _0814470E
.align 2, 0
_08144700: .4byte gUnknown_203F3BC
-_08144704: .4byte gUnknown_3005008
+_08144704: .4byte gSaveBlock1Ptr
_08144708: .4byte 0x000032e4
_0814470C:
movs r0, 0
@@ -2284,7 +2284,7 @@ sub_8144714: @ 8144714
bcc _08144744
cmp r2, 0x2
bne _08144774
- ldr r0, _0814473C @ =gUnknown_3005008
+ ldr r0, _0814473C @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r0, _08144740 @ =0x00003478
adds r2, r0
@@ -2292,20 +2292,20 @@ sub_8144714: @ 8144714
b _08144762
.align 2, 0
_08144738: .4byte gUnknown_203F3BC
-_0814473C: .4byte gUnknown_3005008
+_0814473C: .4byte gSaveBlock1Ptr
_08144740: .4byte 0x00003478
_08144744:
- ldr r0, _08144750 @ =gUnknown_3005008
+ ldr r0, _08144750 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r0, _08144754 @ =0x00003464
adds r2, r0
movs r0, 0
b _08144762
.align 2, 0
-_08144750: .4byte gUnknown_3005008
+_08144750: .4byte gSaveBlock1Ptr
_08144754: .4byte 0x00003464
_08144758:
- ldr r0, _0814476C @ =gUnknown_3005008
+ ldr r0, _0814476C @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r0, _08144770 @ =0x00003464
adds r2, r0
@@ -2315,7 +2315,7 @@ _08144762:
bl sub_8144824
b _08144782
.align 2, 0
-_0814476C: .4byte gUnknown_3005008
+_0814476C: .4byte gSaveBlock1Ptr
_08144770: .4byte 0x00003464
_08144774:
ldr r0, _08144788 @ =gUnknown_8466F28
@@ -2338,7 +2338,7 @@ sub_8144790: @ 8144790
sub sp, 0x4
movs r0, 0
str r0, [sp]
- ldr r0, _081447B0 @ =gUnknown_3005008
+ ldr r0, _081447B0 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _081447B4 @ =0x00003464
adds r1, r0
@@ -2349,7 +2349,7 @@ sub_8144790: @ 8144790
pop {r0}
bx r0
.align 2, 0
-_081447B0: .4byte gUnknown_3005008
+_081447B0: .4byte gSaveBlock1Ptr
_081447B4: .4byte 0x00003464
_081447B8: .4byte 0x0500000a
thumb_func_end sub_8144790
diff --git a/asm/mevent_server.s b/asm/mevent_server.s
index 031f4ee67..f0438ff5e 100644
--- a/asm/mevent_server.s
+++ b/asm/mevent_server.s
@@ -807,7 +807,7 @@ _08144E24:
bl sub_8069EA4
b _08144E60
_08144E30:
- ldr r0, _08144E48 @ =gUnknown_300500C
+ ldr r0, _08144E48 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r1, 0x94
lsls r1, 3
@@ -818,7 +818,7 @@ _08144E30:
bl sub_80E7490
b _08144E60
.align 2, 0
-_08144E48: .4byte gUnknown_300500C
+_08144E48: .4byte gSaveBlock2Ptr
_08144E4C:
ldr r0, _08144E68 @ =gUnknown_201C000
ldr r1, [r4, 0x18]
@@ -896,9 +896,9 @@ sub_8144EBC: @ 8144EBC
adds r4, r0, 0
ldr r3, _08144EE4 @ =gUnknown_201C000
adds r0, r4, 0x4
- ldr r1, _08144EE8 @ =gUnknown_300500C
+ ldr r1, _08144EE8 @ =gSaveBlock2Ptr
ldr r1, [r1]
- ldr r2, _08144EEC @ =gUnknown_3005008
+ ldr r2, _08144EEC @ =gSaveBlock1Ptr
ldr r2, [r2]
bl _call_via_r3
cmp r0, 0x1
@@ -914,8 +914,8 @@ _08144EDC:
bx r1
.align 2, 0
_08144EE4: .4byte gUnknown_201C000
-_08144EE8: .4byte gUnknown_300500C
-_08144EEC: .4byte gUnknown_3005008
+_08144EE8: .4byte gSaveBlock2Ptr
+_08144EEC: .4byte gSaveBlock1Ptr
thumb_func_end sub_8144EBC
thumb_func_start mevent_srv_ish_exec
diff --git a/asm/mon_markings.s b/asm/mon_markings.s
index f5f602f2e..3fda2b00a 100644
--- a/asm/mon_markings.s
+++ b/asm/mon_markings.s
@@ -18,7 +18,7 @@ _080BE474: .4byte gUnknown_20399C0
sub_80BE478: @ 80BE478
push {lr}
sub sp, 0x4
- ldr r0, _080BE4B0 @ =gUnknown_300500C
+ ldr r0, _080BE4B0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x14]
lsrs r0, 3
@@ -43,7 +43,7 @@ sub_80BE478: @ 80BE478
pop {r0}
bx r0
.align 2, 0
-_080BE4B0: .4byte gUnknown_300500C
+_080BE4B0: .4byte gSaveBlock2Ptr
_080BE4B4: .4byte gUnknown_20399C0
_080BE4B8: .4byte 0x000010b4
_080BE4BC: .4byte 0x01000800
@@ -341,7 +341,7 @@ _080BE6EC: .4byte gUnknown_20399C0
thumb_func_start sub_80BE6F0
sub_80BE6F0: @ 80BE6F0
push {r4,r5,lr}
- ldr r0, _080BE720 @ =gUnknown_30030F0
+ ldr r0, _080BE720 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -364,7 +364,7 @@ sub_80BE6F0: @ 80BE6F0
strb r0, [r1, 0x5]
b _080BE7B0
.align 2, 0
-_080BE720: .4byte gUnknown_30030F0
+_080BE720: .4byte gMain
_080BE724: .4byte gUnknown_20399C0
_080BE728:
movs r0, 0x80
diff --git a/asm/money.s b/asm/money.s
index 7f8b514fc..b841870e8 100644
--- a/asm/money.s
+++ b/asm/money.s
@@ -7,7 +7,7 @@
thumb_func_start sub_809FD58
sub_809FD58: @ 809FD58
- ldr r1, _0809FD6C @ =gUnknown_300500C
+ ldr r1, _0809FD6C @ =gSaveBlock2Ptr
ldr r1, [r1]
movs r2, 0xF2
lsls r2, 4
@@ -17,12 +17,12 @@ sub_809FD58: @ 809FD58
eors r0, r1
bx lr
.align 2, 0
-_0809FD6C: .4byte gUnknown_300500C
+_0809FD6C: .4byte gSaveBlock2Ptr
thumb_func_end sub_809FD58
thumb_func_start sub_809FD70
sub_809FD70: @ 809FD70
- ldr r2, _0809FD84 @ =gUnknown_300500C
+ ldr r2, _0809FD84 @ =gSaveBlock2Ptr
ldr r2, [r2]
movs r3, 0xF2
lsls r3, 4
@@ -32,7 +32,7 @@ sub_809FD70: @ 809FD70
str r2, [r0]
bx lr
.align 2, 0
-_0809FD84: .4byte gUnknown_300500C
+_0809FD84: .4byte gSaveBlock2Ptr
thumb_func_end sub_809FD70
thumb_func_start IsEnoughMoney
@@ -105,7 +105,7 @@ _0809FDEE:
thumb_func_start IsEnoughForCostInVar0x8005
IsEnoughForCostInVar0x8005: @ 809FDFC
push {lr}
- ldr r0, _0809FE18 @ =gUnknown_3005008
+ ldr r0, _0809FE18 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -118,14 +118,14 @@ IsEnoughForCostInVar0x8005: @ 809FDFC
pop {r1}
bx r1
.align 2, 0
-_0809FE18: .4byte gUnknown_3005008
+_0809FE18: .4byte gSaveBlock1Ptr
_0809FE1C: .4byte gUnknown_20370C2
thumb_func_end IsEnoughForCostInVar0x8005
thumb_func_start sub_809FE20
sub_809FE20: @ 809FE20
push {lr}
- ldr r0, _0809FE38 @ =gUnknown_3005008
+ ldr r0, _0809FE38 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -136,7 +136,7 @@ sub_809FE20: @ 809FE20
pop {r0}
bx r0
.align 2, 0
-_0809FE38: .4byte gUnknown_3005008
+_0809FE38: .4byte gSaveBlock1Ptr
_0809FE3C: .4byte gUnknown_20370C2
thumb_func_end sub_809FE20
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
index c826cefd8..bce444d9b 100644
--- a/asm/mystery_event_script.s
+++ b/asm/mystery_event_script.s
@@ -278,7 +278,7 @@ MEScrCmd_setenigmaberry: @ 80DA9B8
adds r4, r0
ldr r0, _080DAA0C @ =gUnknown_2021CD0
mov r9, r0
- ldr r6, _080DAA10 @ =gUnknown_3005008
+ ldr r6, _080DAA10 @ =gSaveBlock1Ptr
ldr r1, [r6]
ldr r5, _080DAA14 @ =0x000030ec
adds r1, r5
@@ -300,7 +300,7 @@ MEScrCmd_setenigmaberry: @ 80DA9B8
b _080DAA44
.align 2, 0
_080DAA0C: .4byte gUnknown_2021CD0
-_080DAA10: .4byte gUnknown_3005008
+_080DAA10: .4byte gSaveBlock1Ptr
_080DAA14: .4byte 0x000030ec
_080DAA18: .4byte gUnknown_2021CF0
_080DAA1C: .4byte gUnknown_2021D18
@@ -609,7 +609,7 @@ sub_80DAC8C: @ 80DAC8C
subs r1, r0
ldr r0, [r4, 0x64]
adds r1, r0
- ldr r0, _080DACC8 @ =gUnknown_300500C
+ ldr r0, _080DACC8 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r2, 0x94
lsls r2, 3
@@ -627,7 +627,7 @@ sub_80DAC8C: @ 80DAC8C
pop {r1}
bx r1
.align 2, 0
-_080DACC8: .4byte gUnknown_300500C
+_080DACC8: .4byte gSaveBlock2Ptr
_080DACCC: .4byte gUnknown_2021D18
_080DACD0: .4byte gUnknown_8488DBD
thumb_func_end sub_80DAC8C
diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s
index 813fbd66f..bfeea8b5a 100644
--- a/asm/mystery_gift_menu.s
+++ b/asm/mystery_gift_menu.s
@@ -31,7 +31,7 @@ sub_81420A4: @ 81420A4
push {r4-r7,lr}
sub sp, 0xC
adds r7, r0, 0
- ldr r0, _081420C4 @ =gUnknown_30030F0
+ ldr r0, _081420C4 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r6, r0, r1
@@ -46,7 +46,7 @@ _081420BA:
beq _081420D6
b _081422A0
.align 2, 0
-_081420C4: .4byte gUnknown_30030F0
+_081420C4: .4byte gMain
_081420C8:
cmp r5, 0x2
bne _081420CE
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index 86cf748d3..2457798b4 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -76,7 +76,7 @@ _0809D9DC: .4byte c2_choose_name_or_words_screen
thumb_func_start c2_choose_name_or_words_screen
c2_choose_name_or_words_screen: @ 809D9E0
push {lr}
- ldr r0, _0809D9FC @ =gUnknown_30030F0
+ ldr r0, _0809D9FC @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -89,7 +89,7 @@ c2_choose_name_or_words_screen: @ 809D9E0
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0809D9FC: .4byte gUnknown_30030F0
+_0809D9FC: .4byte gMain
_0809DA00: .4byte _0809DA04
.align 2, 0
_0809DA04:
@@ -129,7 +129,7 @@ _0809DA56:
bl UpdatePaletteFade
bl sub_809FC34
_0809DA62:
- ldr r1, _0809DA74 @ =gUnknown_30030F0
+ ldr r1, _0809DA74 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -138,7 +138,7 @@ _0809DA62:
strb r0, [r1]
b _0809DA80
.align 2, 0
-_0809DA74: .4byte gUnknown_30030F0
+_0809DA74: .4byte gMain
_0809DA78:
bl sub_809F8C0
bl sub_809DD60
@@ -208,7 +208,7 @@ sub_809DA84: @ 809DA84
ldr r3, _0809DB60 @ =0x00001e16
adds r1, r2, r3
strh r0, [r1]
- ldr r6, _0809DB64 @ =gUnknown_30030E0
+ ldr r6, _0809DB64 @ =gKeyRepeatStartDelay
ldrh r0, [r6]
ldr r1, _0809DB68 @ =0x00001e25
adds r2, r1
@@ -250,7 +250,7 @@ _0809DB54: .4byte 0x00001e28
_0809DB58: .4byte gUnknown_83E248C
_0809DB5C: .4byte 0x00001e22
_0809DB60: .4byte 0x00001e16
-_0809DB64: .4byte gUnknown_30030E0
+_0809DB64: .4byte gKeyRepeatStartDelay
_0809DB68: .4byte 0x00001e25
_0809DB6C: .4byte 0x00001e30
thumb_func_end sub_809DA84
@@ -1010,7 +1010,7 @@ sub_809E1D4: @ 809E1D4
lsls r0, 16
cmp r0, 0
bne _0809E1FE
- ldr r0, _0809E204 @ =gUnknown_30030F0
+ ldr r0, _0809E204 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1027,7 +1027,7 @@ _0809E1FE:
pop {r1}
bx r1
.align 2, 0
-_0809E204: .4byte gUnknown_30030F0
+_0809E204: .4byte gMain
_0809E208: .4byte gUnknown_203998C
_0809E20C: .4byte 0x00001e10
thumb_func_end sub_809E1D4
@@ -3215,7 +3215,7 @@ InputState_Enabled: @ 809F2A4
adds r2, r0, 0
movs r0, 0
strh r0, [r2, 0xA]
- ldr r0, _0809F2C0 @ =gUnknown_30030F0
+ ldr r0, _0809F2C0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3225,7 +3225,7 @@ InputState_Enabled: @ 809F2A4
strh r0, [r2, 0xA]
b _0809F2F4
.align 2, 0
-_0809F2C0: .4byte gUnknown_30030F0
+_0809F2C0: .4byte gMain
_0809F2C4:
movs r0, 0x2
ands r0, r1
@@ -3296,7 +3296,7 @@ sub_809F2F8: @ 809F2F8
adds r0, r4, 0
adds r1, r5, 0
bl sub_809E9CC
- ldr r0, _0809F3F4 @ =gUnknown_30030F0
+ ldr r0, _0809F3F4 @ =gMain
ldrh r2, [r0, 0x30]
movs r0, 0x40
ands r0, r2
@@ -3380,7 +3380,7 @@ _0809F3E4: .4byte gUnknown_83E23E8
_0809F3E8: .4byte gUnknown_83E23F2
_0809F3EC: .4byte gUnknown_83E23FC
_0809F3F0: .4byte gUnknown_83E2404
-_0809F3F4: .4byte gUnknown_30030F0
+_0809F3F4: .4byte gMain
_0809F3F8:
mov r2, r8
lsls r4, r2, 16
@@ -4485,7 +4485,7 @@ _0809FC88:
sub_809FC90: @ 809FC90
push {lr}
sub sp, 0x8
- ldr r0, _0809FCB0 @ =gUnknown_300500C
+ ldr r0, _0809FCB0 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r2, [r1, 0x8]
movs r0, 0
@@ -4499,7 +4499,7 @@ sub_809FC90: @ 809FC90
pop {r0}
bx r0
.align 2, 0
-_0809FCB0: .4byte gUnknown_300500C
+_0809FCB0: .4byte gSaveBlock2Ptr
_0809FCB4: .4byte sub_80568A8
thumb_func_end sub_809FC90
@@ -4507,7 +4507,7 @@ _0809FCB4: .4byte sub_80568A8
sub_809FCB8: @ 809FCB8
push {lr}
sub sp, 0x8
- ldr r0, _0809FCD8 @ =gUnknown_300500C
+ ldr r0, _0809FCD8 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r2, [r1, 0x8]
movs r0, 0
@@ -4521,7 +4521,7 @@ sub_809FCB8: @ 809FCB8
pop {r0}
bx r0
.align 2, 0
-_0809FCD8: .4byte gUnknown_300500C
+_0809FCD8: .4byte gSaveBlock2Ptr
_0809FCDC: .4byte sub_80568A8
thumb_func_end sub_809FCB8
@@ -4529,7 +4529,7 @@ _0809FCDC: .4byte sub_80568A8
sub_809FCE0: @ 809FCE0
push {lr}
sub sp, 0x8
- ldr r0, _0809FD00 @ =gUnknown_300500C
+ ldr r0, _0809FD00 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r2, [r1, 0x8]
movs r0, 0
@@ -4543,7 +4543,7 @@ sub_809FCE0: @ 809FCE0
pop {r0}
bx r0
.align 2, 0
-_0809FD00: .4byte gUnknown_300500C
+_0809FD00: .4byte gSaveBlock2Ptr
_0809FD04: .4byte sub_80568A8
thumb_func_end sub_809FCE0
@@ -4551,7 +4551,7 @@ _0809FD04: .4byte sub_80568A8
sub_809FD08: @ 809FD08
push {lr}
sub sp, 0x8
- ldr r0, _0809FD28 @ =gUnknown_300500C
+ ldr r0, _0809FD28 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r2, [r1, 0x8]
movs r0, 0
@@ -4565,7 +4565,7 @@ sub_809FD08: @ 809FD08
pop {r0}
bx r0
.align 2, 0
-_0809FD28: .4byte gUnknown_300500C
+_0809FD28: .4byte gSaveBlock2Ptr
_0809FD2C: .4byte sub_80568A8
thumb_func_end sub_809FD08
@@ -4573,7 +4573,7 @@ _0809FD2C: .4byte sub_80568A8
sub_809FD30: @ 809FD30
push {lr}
sub sp, 0x8
- ldr r0, _0809FD50 @ =gUnknown_300500C
+ ldr r0, _0809FD50 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r2, [r1, 0x8]
movs r0, 0
@@ -4587,7 +4587,7 @@ sub_809FD30: @ 809FD30
pop {r0}
bx r0
.align 2, 0
-_0809FD50: .4byte gUnknown_300500C
+_0809FD50: .4byte gSaveBlock2Ptr
_0809FD54: .4byte sub_80568A8
thumb_func_end sub_809FD30
diff --git a/asm/new_game.s b/asm/new_game.s
index b17cf8747..d7808dba7 100644
--- a/asm/new_game.s
+++ b/asm/new_game.s
@@ -46,7 +46,7 @@ InitPlayerTrainerId: @ 8054928
lsls r0, 16
lsrs r0, 16
orrs r4, r0
- ldr r0, _08054950 @ =gUnknown_300500C
+ ldr r0, _08054950 @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r1, 0xA
adds r0, r4, 0
@@ -55,12 +55,12 @@ InitPlayerTrainerId: @ 8054928
pop {r0}
bx r0
.align 2, 0
-_08054950: .4byte gUnknown_300500C
+_08054950: .4byte gSaveBlock2Ptr
thumb_func_end InitPlayerTrainerId
thumb_func_start SetDefaultOptions
SetDefaultOptions: @ 8054954
- ldr r3, _080549A8 @ =gUnknown_300500C
+ ldr r3, _080549A8 @ =gSaveBlock2Ptr
ldr r2, [r3]
ldrb r1, [r2, 0x14]
movs r0, 0x8
@@ -103,13 +103,13 @@ SetDefaultOptions: @ 8054954
strb r0, [r1, 0x13]
bx lr
.align 2, 0
-_080549A8: .4byte gUnknown_300500C
+_080549A8: .4byte gSaveBlock2Ptr
thumb_func_end SetDefaultOptions
thumb_func_start sub_80549AC
sub_80549AC: @ 80549AC
push {r4,lr}
- ldr r4, _080549D0 @ =gUnknown_300500C
+ ldr r4, _080549D0 @ =gSaveBlock2Ptr
ldr r0, [r4]
adds r0, 0x28
movs r1, 0
@@ -124,7 +124,7 @@ sub_80549AC: @ 80549AC
pop {r0}
bx r0
.align 2, 0
-_080549D0: .4byte gUnknown_300500C
+_080549D0: .4byte gSaveBlock2Ptr
thumb_func_end sub_80549AC
thumb_func_start sub_80549D4
@@ -133,7 +133,7 @@ sub_80549D4: @ 80549D4
sub sp, 0x4
movs r0, 0
str r0, [sp]
- ldr r0, _080549F0 @ =gUnknown_300500C
+ ldr r0, _080549F0 @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r1, 0xB0
ldr r2, _080549F4 @ =0x050001fa
@@ -143,7 +143,7 @@ sub_80549D4: @ 80549D4
pop {r0}
bx r0
.align 2, 0
-_080549F0: .4byte gUnknown_300500C
+_080549F0: .4byte gSaveBlock2Ptr
_080549F4: .4byte 0x050001fa
thumb_func_end sub_80549D4
@@ -203,7 +203,7 @@ sub_8054A60: @ 8054A60
mov r6, r8
push {r6}
sub sp, 0x8
- ldr r6, _08054B50 @ =gUnknown_3005008
+ ldr r6, _08054B50 @ =gSaveBlock1Ptr
ldr r1, [r6]
ldr r0, _08054B54 @ =0x00003a4c
mov r8, r0
@@ -213,7 +213,7 @@ sub_8054A60: @ 8054A60
ldr r1, _08054B58 @ =gUnknown_2031DB0
movs r0, 0x1
strb r0, [r1]
- ldr r4, _08054B5C @ =gUnknown_300500C
+ ldr r4, _08054B5C @ =gSaveBlock2Ptr
ldr r0, [r4]
movs r1, 0xF2
lsls r1, 4
@@ -286,10 +286,10 @@ sub_8054A60: @ 8054A60
pop {r0}
bx r0
.align 2, 0
-_08054B50: .4byte gUnknown_3005008
+_08054B50: .4byte gSaveBlock1Ptr
_08054B54: .4byte 0x00003a4c
_08054B58: .4byte gUnknown_2031DB0
-_08054B5C: .4byte gUnknown_300500C
+_08054B5C: .4byte gSaveBlock2Ptr
_08054B60: .4byte 0x00000bb8
_08054B64: .4byte gUnknown_2024029
_08054B68: .4byte 0x00000296
@@ -303,7 +303,7 @@ sub_8054B70: @ 8054B70
mov r0, sp
movs r5, 0
strh r5, [r0]
- ldr r4, _08054BBC @ =gUnknown_300500C
+ ldr r4, _08054BBC @ =gSaveBlock2Ptr
ldr r1, [r4]
movs r0, 0xAF
lsls r0, 4
@@ -332,7 +332,7 @@ sub_8054B70: @ 8054B70
pop {r0}
bx r0
.align 2, 0
-_08054BBC: .4byte gUnknown_300500C
+_08054BBC: .4byte gSaveBlock2Ptr
_08054BC0: .4byte 0x01000008
_08054BC4: .4byte 0x00000af8
thumb_func_end sub_8054B70
diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s
index 7f58c7512..5b67c3544 100644
--- a/asm/new_menu_helpers.s
+++ b/asm/new_menu_helpers.s
@@ -2190,7 +2190,7 @@ _080F78A4: .4byte gUnknown_841F43C
thumb_func_start sub_80F78A8
sub_80F78A8: @ 80F78A8
push {lr}
- ldr r3, _080F78D8 @ =gUnknown_300500C
+ ldr r3, _080F78D8 @ =gSaveBlock2Ptr
ldr r2, [r3]
ldrb r1, [r2, 0x14]
lsls r0, r1, 29
@@ -2214,7 +2214,7 @@ _080F78C4:
pop {r1}
bx r1
.align 2, 0
-_080F78D8: .4byte gUnknown_300500C
+_080F78D8: .4byte gSaveBlock2Ptr
_080F78DC: .4byte gUnknown_841F428
thumb_func_end sub_80F78A8
diff --git a/asm/oak_speech.s b/asm/oak_speech.s
index 622dbeab8..97726705d 100644
--- a/asm/oak_speech.s
+++ b/asm/oak_speech.s
@@ -294,7 +294,7 @@ sub_812EB58: @ 812EB58
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, _0812EB7C @ =gUnknown_30030F0
+ ldr r0, _0812EB7C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -309,7 +309,7 @@ _0812EB70:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0812EB7C: .4byte gUnknown_30030F0
+_0812EB7C: .4byte gMain
_0812EB80: .4byte _0812EB84
.align 2, 0
_0812EB84:
@@ -620,7 +620,7 @@ _0812EE30:
adds r0, r1
ldr r1, _0812EE8C @ =sub_812F0B0
str r1, [r0]
- ldr r0, _0812EE90 @ =gUnknown_30030F0
+ ldr r0, _0812EE90 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -631,9 +631,9 @@ _0812EE80: .4byte sub_812EAFC
_0812EE84: .4byte 0x00000143
_0812EE88: .4byte gUnknown_3005090
_0812EE8C: .4byte sub_812F0B0
-_0812EE90: .4byte gUnknown_30030F0
+_0812EE90: .4byte gMain
_0812EE94:
- ldr r1, _0812EEAC @ =gUnknown_30030F0
+ ldr r1, _0812EEAC @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -646,7 +646,7 @@ _0812EEA2:
pop {r0}
bx r0
.align 2, 0
-_0812EEAC: .4byte gUnknown_30030F0
+_0812EEAC: .4byte gMain
thumb_func_end sub_812EB58
thumb_func_start sub_812EEB0
@@ -896,7 +896,7 @@ sub_812F0B0: @ 812F0B0
ands r0, r1
cmp r0, 0
bne _0812F162
- ldr r0, _0812F110 @ =gUnknown_30030F0
+ ldr r0, _0812F110 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -932,7 +932,7 @@ sub_812F0B0: @ 812F0B0
b _0812F150
.align 2, 0
_0812F10C: .4byte gUnknown_2037AB8
-_0812F110: .4byte gUnknown_30030F0
+_0812F110: .4byte gMain
_0812F114: .4byte gUnknown_3005090
_0812F118: .4byte gUnknown_203B108
_0812F11C: .4byte 0xffffdfff
@@ -1275,7 +1275,7 @@ _0812F374:
ldr r0, [r4]
movs r1, 0
strh r6, [r0, 0x12]
- ldr r0, _0812F494 @ =gUnknown_30030F0
+ ldr r0, _0812F494 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
@@ -1357,7 +1357,7 @@ _0812F484: .4byte gUnknown_8415D48
_0812F488: .4byte gUnknown_8460BA8
_0812F48C: .4byte gUnknown_203B108
_0812F490: .4byte gUnknown_8462EC0
-_0812F494: .4byte gUnknown_30030F0
+_0812F494: .4byte gMain
_0812F498: .4byte gUnknown_8462EEC
_0812F49C: .4byte gUnknown_8462EF0
_0812F4A0: .4byte gUnknown_202063C
@@ -1375,7 +1375,7 @@ sub_812F4A8: @ 812F4A8
lsls r6, r0, 3
ldr r7, _0812F4D8 @ =gUnknown_3005098
adds r5, r6, r7
- ldr r0, _0812F4DC @ =gUnknown_30030F0
+ ldr r0, _0812F4DC @ =gMain
movs r1, 0x87
lsls r1, 3
adds r3, r0, r1
@@ -1392,7 +1392,7 @@ _0812F4CC:
mov pc, r0
.align 2, 0
_0812F4D8: .4byte gUnknown_3005098
-_0812F4DC: .4byte gUnknown_30030F0
+_0812F4DC: .4byte gMain
_0812F4E0: .4byte _0812F4E4
.align 2, 0
_0812F4E4:
@@ -1467,7 +1467,7 @@ _0812F56A:
ldrh r0, [r0, 0x12]
cmp r0, 0x3
bne _0812F594
- ldr r0, _0812F590 @ =gUnknown_30030F0
+ ldr r0, _0812F590 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -1476,7 +1476,7 @@ _0812F56A:
b _0812F71C
.align 2, 0
_0812F58C: .4byte gUnknown_203B108
-_0812F590: .4byte gUnknown_30030F0
+_0812F590: .4byte gMain
_0812F594:
ldr r1, _0812F5B0 @ =0x00000241
movs r0, 0x50
@@ -1581,7 +1581,7 @@ _0812F644:
movs r1, 0
bl SetGpuReg
_0812F676:
- ldr r0, _0812F684 @ =gUnknown_30030F0
+ ldr r0, _0812F684 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -1589,7 +1589,7 @@ _0812F676:
strb r1, [r0]
b _0812F71C
.align 2, 0
-_0812F684: .4byte gUnknown_30030F0
+_0812F684: .4byte gMain
_0812F688:
ldr r1, _0812F6B4 @ =gUnknown_3005090
lsls r0, r2, 2
@@ -1603,7 +1603,7 @@ _0812F688:
movs r0, 0x18
strh r0, [r5, 0x1E]
_0812F6A2:
- ldr r1, _0812F6BC @ =gUnknown_30030F0
+ ldr r1, _0812F6BC @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -1614,7 +1614,7 @@ _0812F6A2:
.align 2, 0
_0812F6B4: .4byte gUnknown_3005090
_0812F6B8: .4byte 0x00000145
-_0812F6BC: .4byte gUnknown_30030F0
+_0812F6BC: .4byte gMain
_0812F6C0:
ldrh r0, [r5, 0x1E]
movs r1, 0x1E
@@ -2720,7 +2720,7 @@ _0812FFC4:
cmp r1, 0x1
bne _0812FFCE
_0812FFC8:
- ldr r0, _0812FFE4 @ =gUnknown_300500C
+ ldr r0, _0812FFE4 @ =gSaveBlock2Ptr
ldr r0, [r0]
strb r1, [r0, 0x8]
_0812FFCE:
@@ -2736,7 +2736,7 @@ _0812FFDC:
pop {r0}
bx r0
.align 2, 0
-_0812FFE4: .4byte gUnknown_300500C
+_0812FFE4: .4byte gSaveBlock2Ptr
_0812FFE8: .4byte gUnknown_3005090
_0812FFEC: .4byte sub_812FFF0
thumb_func_end sub_812FFA4
@@ -2791,7 +2791,7 @@ sub_8130050: @ 8130050
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0813006C @ =gUnknown_300500C
+ ldr r0, _0813006C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -2801,7 +2801,7 @@ sub_8130050: @ 8130050
bl sub_81311F4
b _08130078
.align 2, 0
-_0813006C: .4byte gUnknown_300500C
+_0813006C: .4byte gSaveBlock2Ptr
_08130070:
movs r0, 0x1
movs r1, 0
@@ -3232,7 +3232,7 @@ sub_81303B4: @ 81303B4
ldrh r0, [r0, 0x10]
cmp r0, 0
bne _08130408
- ldr r0, _08130400 @ =gUnknown_300500C
+ ldr r0, _08130400 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r2, [r1, 0x8]
str r5, [sp]
@@ -3245,7 +3245,7 @@ sub_81303B4: @ 81303B4
.align 2, 0
_081303F8: .4byte gUnknown_2037AB8
_081303FC: .4byte gUnknown_203B108
-_08130400: .4byte gUnknown_300500C
+_08130400: .4byte gSaveBlock2Ptr
_08130404: .4byte sub_8130C64
_08130408:
ldr r0, _08130454 @ =gUnknown_3005090
@@ -3262,7 +3262,7 @@ _08130408:
lsls r0, 24
lsrs r0, 24
bl RemoveWindow
- ldr r0, _08130458 @ =gUnknown_3005008
+ ldr r0, _08130458 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _0813045C @ =0x00003a4c
adds r1, r0
@@ -3285,7 +3285,7 @@ _0813044C:
bx r0
.align 2, 0
_08130454: .4byte gUnknown_3005090
-_08130458: .4byte gUnknown_3005008
+_08130458: .4byte gSaveBlock1Ptr
_0813045C: .4byte 0x00003a4c
_08130460: .4byte sub_8130C64
thumb_func_end sub_81303B4
@@ -3741,7 +3741,7 @@ sub_81307D0: @ 81307D0
.align 2, 0
_081307FC: .4byte gUnknown_3005098
_08130800:
- ldr r0, _08130814 @ =gUnknown_300500C
+ ldr r0, _08130814 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -3751,7 +3751,7 @@ _08130800:
bl sub_81311F4
b _08130820
.align 2, 0
-_08130814: .4byte gUnknown_300500C
+_08130814: .4byte gSaveBlock2Ptr
_08130818:
movs r0, 0x1
movs r1, 0
@@ -4317,7 +4317,7 @@ _08130C60: .4byte CB2_NewGame
sub_8130C64: @ 8130C64
push {r4,r5,lr}
sub sp, 0x10
- ldr r0, _08130C84 @ =gUnknown_30030F0
+ ldr r0, _08130C84 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -4332,7 +4332,7 @@ _08130C78:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08130C84: .4byte gUnknown_30030F0
+_08130C84: .4byte gMain
_08130C88: .4byte _08130C8C
.align 2, 0
_08130C8C:
@@ -4520,7 +4520,7 @@ _08130E38:
ldrh r0, [r0, 0x10]
cmp r0, 0
bne _08130E72
- ldr r0, _08130E64 @ =gUnknown_300500C
+ ldr r0, _08130E64 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -4530,7 +4530,7 @@ _08130E38:
.align 2, 0
_08130E5C: .4byte sub_8130464
_08130E60: .4byte gUnknown_203B108
-_08130E64: .4byte gUnknown_300500C
+_08130E64: .4byte gSaveBlock2Ptr
_08130E68:
movs r0, 0x1
_08130E6A:
@@ -4603,7 +4603,7 @@ _08130F04: .4byte sub_812EAFC
_08130F08: .4byte gUnknown_3003E50
_08130F0C: .4byte sub_812EB10
_08130F10:
- ldr r1, _08130F28 @ =gUnknown_30030F0
+ ldr r1, _08130F28 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -4616,7 +4616,7 @@ _08130F1E:
pop {r0}
bx r0
.align 2, 0
-_08130F28: .4byte gUnknown_30030F0
+_08130F28: .4byte gMain
thumb_func_end sub_8130C64
thumb_func_start sub_8130F2C
@@ -5575,7 +5575,7 @@ sub_8131660: @ 8131660
mov r0, r8
cmp r0, 0
bne _081316F4
- ldr r0, _081316E8 @ =gUnknown_300500C
+ ldr r0, _081316E8 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
ldr r6, _081316EC @ =gUnknown_84630D8
@@ -5587,7 +5587,7 @@ sub_8131660: @ 8131660
_081316DC: .4byte gUnknown_3005098
_081316E0: .4byte gUnknown_8462ED8
_081316E4: .4byte gUnknown_81C574F
-_081316E8: .4byte gUnknown_300500C
+_081316E8: .4byte gSaveBlock2Ptr
_081316EC: .4byte gUnknown_84630D8
_081316F0: .4byte gUnknown_846308C
_081316F4:
@@ -5647,7 +5647,7 @@ sub_8131754: @ 8131754
lsrs r2, r1, 24
cmp r0, 0
bne _081317A0
- ldr r0, _08131770 @ =gUnknown_300500C
+ ldr r0, _08131770 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -5655,7 +5655,7 @@ sub_8131754: @ 8131754
ldr r4, _08131774 @ =gUnknown_846308C
b _0813177A
.align 2, 0
-_08131770: .4byte gUnknown_300500C
+_08131770: .4byte gSaveBlock2Ptr
_08131774: .4byte gUnknown_846308C
_08131778:
ldr r4, _08131798 @ =gUnknown_84630D8
@@ -5669,18 +5669,18 @@ _0813177A:
lsrs r0, 14
adds r0, r4
ldr r3, [r0]
- ldr r0, _0813179C @ =gUnknown_300500C
+ ldr r0, _0813179C @ =gSaveBlock2Ptr
ldr r4, [r0]
b _081317B0
.align 2, 0
_08131798: .4byte gUnknown_84630D8
-_0813179C: .4byte gUnknown_300500C
+_0813179C: .4byte gSaveBlock2Ptr
_081317A0:
ldr r1, _081317EC @ =gUnknown_8463124
lsls r0, r2, 2
adds r0, r1
ldr r3, [r0]
- ldr r0, _081317F0 @ =gUnknown_3005008
+ ldr r0, _081317F0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _081317F4 @ =0x00003a4c
adds r4, r0, r1
@@ -5721,7 +5721,7 @@ _081317E6:
bx r0
.align 2, 0
_081317EC: .4byte gUnknown_8463124
-_081317F0: .4byte gUnknown_3005008
+_081317F0: .4byte gSaveBlock1Ptr
_081317F4: .4byte 0x00003a4c
thumb_func_end sub_8131754
diff --git a/asm/option_menu.s b/asm/option_menu.s
index 6d10782d7..34768ce92 100644
--- a/asm/option_menu.s
+++ b/asm/option_menu.s
@@ -29,7 +29,7 @@ sub_8088374: @ 8088374
thumb_func_start sub_8088388
sub_8088388: @ 8088388
push {r4-r6,lr}
- ldr r1, _08088418 @ =gUnknown_30030F0
+ ldr r1, _08088418 @ =gMain
ldr r0, [r1, 0x8]
cmp r0, 0
bne _08088396
@@ -48,7 +48,7 @@ _08088396:
strb r1, [r0, 0x11]
ldr r2, [r4]
strh r1, [r2, 0xE]
- ldr r0, _08088424 @ =gUnknown_300500C
+ ldr r0, _08088424 @ =gSaveBlock2Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x14]
lsls r0, 29
@@ -100,10 +100,10 @@ _080883FA:
pop {r0}
bx r0
.align 2, 0
-_08088418: .4byte gUnknown_30030F0
+_08088418: .4byte gMain
_0808841C: .4byte sub_80568A8
_08088420: .4byte gUnknown_2039620
-_08088424: .4byte gUnknown_300500C
+_08088424: .4byte gSaveBlock2Ptr
_08088428: .4byte gUnknown_83CC304
_0808842C: .4byte sub_8088454
thumb_func_end sub_8088388
@@ -667,7 +667,7 @@ _080888B6:
thumb_func_start sub_80888C0
sub_80888C0: @ 80888C0
push {r4,lr}
- ldr r3, _080888EC @ =gUnknown_30030F0
+ ldr r3, _080888EC @ =gMain
ldrh r1, [r3, 0x30]
movs r0, 0x10
ands r0, r1
@@ -688,7 +688,7 @@ sub_80888C0: @ 80888C0
movs r0, 0
b _080888FA
.align 2, 0
-_080888EC: .4byte gUnknown_30030F0
+_080888EC: .4byte gMain
_080888F0: .4byte gUnknown_2039620
_080888F4: .4byte gUnknown_83CC304
_080888F8:
@@ -970,11 +970,11 @@ sub_8088B00: @ 8088B00
ldr r1, _08088BBC @ =gUnknown_3005020
ldr r0, _08088BC0 @ =sub_807DF64
str r0, [r1]
- ldr r0, _08088BC4 @ =gUnknown_30030F0
+ ldr r0, _08088BC4 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
bl FreeAllWindowBuffers
- ldr r3, _08088BC8 @ =gUnknown_300500C
+ ldr r3, _08088BC8 @ =gSaveBlock2Ptr
ldr r5, [r3]
ldr r4, _08088BCC @ =gUnknown_2039620
ldr r0, [r4]
@@ -1052,8 +1052,8 @@ sub_8088B00: @ 8088B00
.align 2, 0
_08088BBC: .4byte gUnknown_3005020
_08088BC0: .4byte sub_807DF64
-_08088BC4: .4byte gUnknown_30030F0
-_08088BC8: .4byte gUnknown_300500C
+_08088BC4: .4byte gMain
+_08088BC8: .4byte gSaveBlock2Ptr
_08088BCC: .4byte gUnknown_2039620
thumb_func_end sub_8088B00
diff --git a/asm/overworld.s b/asm/overworld.s
index 1f545aa1e..02b5e746f 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -10,7 +10,7 @@ sub_8054BC8: @ 8054BC8
push {r4,lr}
ldr r0, _08054BFC @ =gUnknown_81A654B
bl ScriptContext2_RunNewScript
- ldr r0, _08054C00 @ =gUnknown_3005008
+ ldr r0, _08054C00 @ =gSaveBlock1Ptr
ldr r4, [r0]
movs r0, 0xA4
lsls r0, 2
@@ -28,7 +28,7 @@ sub_8054BC8: @ 8054BC8
bx r0
.align 2, 0
_08054BFC: .4byte gUnknown_81A654B
-_08054C00: .4byte gUnknown_3005008
+_08054C00: .4byte gSaveBlock1Ptr
thumb_func_end sub_8054BC8
thumb_func_start sub_8054C04
@@ -47,7 +47,7 @@ sub_8054C04: @ 8054C04
lsls r1, 2
adds r4, r0, 0
muls r4, r1
- ldr r0, _08054C44 @ =gUnknown_3005008
+ ldr r0, _08054C44 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -63,7 +63,7 @@ _08054C38:
bx r1
.align 2, 0
_08054C40: .4byte gUnknown_826D294
-_08054C44: .4byte gUnknown_3005008
+_08054C44: .4byte gSaveBlock1Ptr
thumb_func_end sub_8054C04
thumb_func_start sub_8054C48
@@ -293,7 +293,7 @@ _08054E64: .4byte 0x0000406e
sub_8054E68: @ 8054E68
push {r4,r5,lr}
movs r2, 0
- ldr r5, _08054E8C @ =gUnknown_3005008
+ ldr r5, _08054E8C @ =gSaveBlock1Ptr
movs r4, 0x90
lsls r4, 5
movs r3, 0
@@ -310,7 +310,7 @@ _08054E74:
pop {r0}
bx r0
.align 2, 0
-_08054E8C: .4byte gUnknown_3005008
+_08054E8C: .4byte gSaveBlock1Ptr
thumb_func_end sub_8054E68
thumb_func_start IncrementGameStat
@@ -350,14 +350,14 @@ GetGameStat: @ 8054EC4
lsrs r1, r0, 24
cmp r1, 0x33
bhi _08054EF8
- ldr r0, _08054EF0 @ =gUnknown_3005008
+ ldr r0, _08054EF0 @ =gSaveBlock1Ptr
ldr r2, [r0]
lsls r0, r1, 2
movs r1, 0x90
lsls r1, 5
adds r2, r1
adds r2, r0
- ldr r0, _08054EF4 @ =gUnknown_300500C
+ ldr r0, _08054EF4 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0xF2
lsls r0, 4
@@ -367,8 +367,8 @@ GetGameStat: @ 8054EC4
eors r0, r1
b _08054EFA
.align 2, 0
-_08054EF0: .4byte gUnknown_3005008
-_08054EF4: .4byte gUnknown_300500C
+_08054EF0: .4byte gSaveBlock1Ptr
+_08054EF4: .4byte gSaveBlock2Ptr
_08054EF8:
movs r0, 0
_08054EFA:
@@ -384,14 +384,14 @@ sub_8054F00: @ 8054F00
lsrs r2, r0, 24
cmp r2, 0x33
bhi _08054F2A
- ldr r0, _08054F30 @ =gUnknown_3005008
+ ldr r0, _08054F30 @ =gSaveBlock1Ptr
ldr r1, [r0]
lsls r0, r2, 2
movs r2, 0x90
lsls r2, 5
adds r1, r2
adds r1, r0
- ldr r0, _08054F34 @ =gUnknown_300500C
+ ldr r0, _08054F34 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r2, 0xF2
lsls r2, 4
@@ -403,8 +403,8 @@ _08054F2A:
pop {r0}
bx r0
.align 2, 0
-_08054F30: .4byte gUnknown_3005008
-_08054F34: .4byte gUnknown_300500C
+_08054F30: .4byte gSaveBlock1Ptr
+_08054F34: .4byte gSaveBlock2Ptr
thumb_func_end sub_8054F00
thumb_func_start sub_8054F38
@@ -412,7 +412,7 @@ sub_8054F38: @ 8054F38
push {r4-r6,lr}
adds r5, r0, 0
movs r4, 0
- ldr r6, _08054F64 @ =gUnknown_3005008
+ ldr r6, _08054F64 @ =gSaveBlock1Ptr
_08054F40:
lsls r1, r4, 2
movs r0, 0x90
@@ -431,7 +431,7 @@ _08054F40:
pop {r0}
bx r0
.align 2, 0
-_08054F64: .4byte gUnknown_3005008
+_08054F64: .4byte gSaveBlock1Ptr
thumb_func_end sub_8054F38
thumb_func_start sub_8054F68
@@ -452,7 +452,7 @@ sub_8054F68: @ 8054F68
bcc _08054F86
b _08055092
_08054F86:
- ldr r2, _08055044 @ =gUnknown_3005008
+ ldr r2, _08055044 @ =gSaveBlock1Ptr
mov r10, r2
_08054F8A:
ldr r3, _08055040 @ =gUnknown_2036DFC
@@ -547,7 +547,7 @@ _08054F8A:
b _08055072
.align 2, 0
_08055040: .4byte gUnknown_2036DFC
-_08055044: .4byte gUnknown_3005008
+_08055044: .4byte gSaveBlock1Ptr
_08055048: .4byte 0x000008e4
_0805504C: .4byte 0x000008ec
_08055050: .4byte 0x000008ee
@@ -602,7 +602,7 @@ sub_80550A8: @ 80550A8
push {lr}
ldr r0, _080550D0 @ =gUnknown_2036DFC
ldr r1, [r0, 0x4]
- ldr r0, _080550D4 @ =gUnknown_3005008
+ ldr r0, _080550D4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, [r1, 0x4]
movs r3, 0x8E
@@ -621,7 +621,7 @@ _080550BC:
bx r0
.align 2, 0
_080550D0: .4byte gUnknown_2036DFC
-_080550D4: .4byte gUnknown_3005008
+_080550D4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80550A8
thumb_func_start Overworld_SetMapObjTemplateCoords
@@ -633,7 +633,7 @@ Overworld_SetMapObjTemplateCoords: @ 80550D8
lsrs r4, r1, 16
lsls r2, 16
lsrs r2, 16
- ldr r0, _08055100 @ =gUnknown_3005008
+ ldr r0, _08055100 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0
movs r6, 0x8E
@@ -647,7 +647,7 @@ _080550F2:
strh r2, [r3, 0x6]
b _0805510C
.align 2, 0
-_08055100: .4byte gUnknown_3005008
+_08055100: .4byte gSaveBlock1Ptr
_08055104:
adds r3, 0x18
adds r1, 0x1
@@ -666,7 +666,7 @@ Overworld_SetMapObjTemplateMovementType: @ 8055114
lsrs r4, r0, 24
lsls r1, 24
lsrs r1, 24
- ldr r0, _08055134 @ =gUnknown_3005008
+ ldr r0, _08055134 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r3, 0
movs r5, 0x8E
@@ -679,7 +679,7 @@ _0805512A:
strb r1, [r2, 0x9]
b _08055140
.align 2, 0
-_08055134: .4byte gUnknown_3005008
+_08055134: .4byte gSaveBlock1Ptr
_08055138:
adds r2, 0x18
adds r3, 0x1
@@ -712,7 +712,7 @@ _0805516C: .4byte gUnknown_2036DFC
thumb_func_start get_mapdata_header
get_mapdata_header: @ 8055170
push {lr}
- ldr r0, _08055180 @ =gUnknown_3005008
+ ldr r0, _08055180 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x32]
cmp r1, 0
@@ -720,7 +720,7 @@ get_mapdata_header: @ 8055170
movs r0, 0
b _0805518E
.align 2, 0
-_08055180: .4byte gUnknown_3005008
+_08055180: .4byte gSaveBlock1Ptr
_08055184:
ldr r0, _08055194 @ =gUnknown_834EB8C
subs r1, 0x1
@@ -737,7 +737,7 @@ _08055194: .4byte gUnknown_834EB8C
thumb_func_start warp_shift
warp_shift: @ 8055198
ldr r3, _080551C4 @ =gUnknown_2031DB4
- ldr r0, _080551C8 @ =gUnknown_3005008
+ ldr r0, _080551C8 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r0, [r2, 0x4]
ldr r1, [r2, 0x8]
@@ -760,7 +760,7 @@ warp_shift: @ 8055198
bx lr
.align 2, 0
_080551C4: .4byte gUnknown_2031DB4
-_080551C8: .4byte gUnknown_3005008
+_080551C8: .4byte gSaveBlock1Ptr
_080551CC: .4byte gUnknown_2031DBC
_080551D0: .4byte gUnknown_2031DC4
_080551D4: .4byte gUnknown_826D2B0
@@ -861,7 +861,7 @@ _08055270: .4byte gUnknown_2031DBC
set_current_map_header_from_sav1_save_old_name: @ 8055274
push {r4-r6,lr}
ldr r4, _080552B4 @ =gUnknown_2036DFC
- ldr r5, _080552B8 @ =gUnknown_3005008
+ ldr r5, _080552B8 @ =gSaveBlock1Ptr
ldr r1, [r5]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -890,14 +890,14 @@ set_current_map_header_from_sav1_save_old_name: @ 8055274
bx r0
.align 2, 0
_080552B4: .4byte gUnknown_2036DFC
-_080552B8: .4byte gUnknown_3005008
+_080552B8: .4byte gSaveBlock1Ptr
thumb_func_end set_current_map_header_from_sav1_save_old_name
thumb_func_start set_current_map_header_from_sav1
set_current_map_header_from_sav1: @ 80552BC
push {r4,r5,lr}
ldr r4, _080552F4 @ =gUnknown_2036DFC
- ldr r0, _080552F8 @ =gUnknown_3005008
+ ldr r0, _080552F8 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -923,13 +923,13 @@ set_current_map_header_from_sav1: @ 80552BC
bx r0
.align 2, 0
_080552F4: .4byte gUnknown_2036DFC
-_080552F8: .4byte gUnknown_3005008
+_080552F8: .4byte gSaveBlock1Ptr
thumb_func_end set_current_map_header_from_sav1
thumb_func_start update_camera_pos_from_warpid
update_camera_pos_from_warpid: @ 80552FC
push {r4,r5,lr}
- ldr r0, _0805532C @ =gUnknown_3005008
+ ldr r0, _0805532C @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r1, 0x6
ldrsb r1, [r2, r1]
@@ -953,7 +953,7 @@ update_camera_pos_from_warpid: @ 80552FC
strh r0, [r2, 0x2]
b _0805536C
.align 2, 0
-_0805532C: .4byte gUnknown_3005008
+_0805532C: .4byte gSaveBlock1Ptr
_08055330: .4byte gUnknown_2036DFC
_08055334:
ldr r1, [r4]
@@ -1059,7 +1059,7 @@ warp1_set_2: @ 80553C8
saved_warp2_set: @ 80553E8
push {r4,r5,lr}
sub sp, 0x8
- ldr r0, _08055418 @ =gUnknown_3005008
+ ldr r0, _08055418 @ =gSaveBlock1Ptr
ldr r5, [r0]
adds r0, r5, 0
adds r0, 0x14
@@ -1081,7 +1081,7 @@ saved_warp2_set: @ 80553E8
pop {r0}
bx r0
.align 2, 0
-_08055418: .4byte gUnknown_3005008
+_08055418: .4byte gSaveBlock1Ptr
thumb_func_end saved_warp2_set
thumb_func_start saved_warp2_set_2
@@ -1090,7 +1090,7 @@ saved_warp2_set_2: @ 805541C
sub sp, 0x8
ldr r4, [sp, 0x14]
ldr r5, [sp, 0x18]
- ldr r0, _08055450 @ =gUnknown_3005008
+ ldr r0, _08055450 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x14
lsls r1, 24
@@ -1111,13 +1111,13 @@ saved_warp2_set_2: @ 805541C
pop {r0}
bx r0
.align 2, 0
-_08055450: .4byte gUnknown_3005008
+_08055450: .4byte gSaveBlock1Ptr
thumb_func_end saved_warp2_set_2
thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1
copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8055454
ldr r2, _08055464 @ =gUnknown_2031DBC
- ldr r0, _08055468 @ =gUnknown_3005008
+ ldr r0, _08055468 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x18]
ldr r0, [r0, 0x14]
@@ -1126,7 +1126,7 @@ copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8055454
bx lr
.align 2, 0
_08055464: .4byte gUnknown_2031DBC
-_08055468: .4byte gUnknown_3005008
+_08055468: .4byte gSaveBlock1Ptr
thumb_func_end copy_saved_warp2_bank_and_enter_x_to_warp1
thumb_func_start sub_805546C
@@ -1162,7 +1162,7 @@ _0805549A:
thumb_func_start copy_saved_warp3_bank_and_enter_x_to_warp1
copy_saved_warp3_bank_and_enter_x_to_warp1: @ 80554A4
ldr r2, _080554B4 @ =gUnknown_2031DBC
- ldr r0, _080554B8 @ =gUnknown_3005008
+ ldr r0, _080554B8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x20]
ldr r0, [r0, 0x1C]
@@ -1171,7 +1171,7 @@ copy_saved_warp3_bank_and_enter_x_to_warp1: @ 80554A4
bx lr
.align 2, 0
_080554B4: .4byte gUnknown_2031DBC
-_080554B8: .4byte gUnknown_3005008
+_080554B8: .4byte gSaveBlock1Ptr
thumb_func_end copy_saved_warp3_bank_and_enter_x_to_warp1
thumb_func_start sub_80554BC
@@ -1195,7 +1195,7 @@ sub_80554CC: @ 80554CC
adds r5, r0, 0
cmp r5, 0
beq _08055500
- ldr r0, _08055508 @ =gUnknown_3005008
+ ldr r0, _08055508 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x1C
movs r1, 0
@@ -1217,7 +1217,7 @@ _08055500:
pop {r0}
bx r0
.align 2, 0
-_08055508: .4byte gUnknown_3005008
+_08055508: .4byte gSaveBlock1Ptr
thumb_func_end sub_80554CC
thumb_func_start sub_805550C
@@ -1252,7 +1252,7 @@ sub_805550C: @ 805550C
lsrs r0, 24
cmp r0, 0x1
beq _08055590
- ldr r5, _0805559C @ =gUnknown_3005008
+ ldr r5, _0805559C @ =gSaveBlock1Ptr
ldr r0, [r5]
ldrh r0, [r0, 0x4]
cmp r0, 0x1
@@ -1289,7 +1289,7 @@ _08055590:
bx r0
.align 2, 0
_08055598: .4byte gUnknown_2031DBC
-_0805559C: .4byte gUnknown_3005008
+_0805559C: .4byte gSaveBlock1Ptr
thumb_func_end sub_805550C
thumb_func_start sub_80555A0
@@ -1300,7 +1300,7 @@ sub_80555A0: @ 80555A0
adds r5, r1, 0
adds r6, r2, 0
ldr r1, [sp, 0x18]
- ldr r0, _080555DC @ =gUnknown_3005008
+ ldr r0, _080555DC @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x24
lsls r4, 24
@@ -1324,13 +1324,13 @@ sub_80555A0: @ 80555A0
pop {r0}
bx r0
.align 2, 0
-_080555DC: .4byte gUnknown_3005008
+_080555DC: .4byte gSaveBlock1Ptr
thumb_func_end sub_80555A0
thumb_func_start sub_80555E0
sub_80555E0: @ 80555E0
ldr r2, _080555F0 @ =gUnknown_2031DBC
- ldr r0, _080555F4 @ =gUnknown_3005008
+ ldr r0, _080555F4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x28]
ldr r0, [r0, 0x24]
@@ -1339,7 +1339,7 @@ sub_80555E0: @ 80555E0
bx lr
.align 2, 0
_080555F0: .4byte gUnknown_2031DBC
-_080555F4: .4byte gUnknown_3005008
+_080555F4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80555E0
thumb_func_start sub_80555F8
@@ -1469,7 +1469,7 @@ _080556D6:
thumb_func_start warp1_set_to_sav1w
warp1_set_to_sav1w: @ 80556E0
ldr r2, _080556F0 @ =gUnknown_2031DBC
- ldr r0, _080556F4 @ =gUnknown_3005008
+ ldr r0, _080556F4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x10]
ldr r0, [r0, 0xC]
@@ -1478,7 +1478,7 @@ warp1_set_to_sav1w: @ 80556E0
bx lr
.align 2, 0
_080556F0: .4byte gUnknown_2031DBC
-_080556F4: .4byte gUnknown_3005008
+_080556F4: .4byte gSaveBlock1Ptr
thumb_func_end warp1_set_to_sav1w
thumb_func_start sub_80556F8
@@ -1489,7 +1489,7 @@ sub_80556F8: @ 80556F8
adds r5, r1, 0
adds r6, r2, 0
ldr r1, [sp, 0x18]
- ldr r0, _08055734 @ =gUnknown_3005008
+ ldr r0, _08055734 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0xC
lsls r4, 24
@@ -1513,7 +1513,7 @@ sub_80556F8: @ 80556F8
pop {r0}
bx r0
.align 2, 0
-_08055734: .4byte gUnknown_3005008
+_08055734: .4byte gSaveBlock1Ptr
thumb_func_end sub_80556F8
thumb_func_start sub_8055738
@@ -1526,7 +1526,7 @@ sub_8055738: @ 8055738
adds r5, r0, 0
cmp r5, 0
beq _0805576C
- ldr r0, _08055774 @ =gUnknown_3005008
+ ldr r0, _08055774 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0xC
movs r1, 0
@@ -1548,12 +1548,12 @@ _0805576C:
pop {r0}
bx r0
.align 2, 0
-_08055774: .4byte gUnknown_3005008
+_08055774: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055738
thumb_func_start sub_8055778
sub_8055778: @ 8055778
- ldr r0, _08055788 @ =gUnknown_3005008
+ ldr r0, _08055788 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r0, [r2, 0x14]
ldr r1, [r2, 0x18]
@@ -1561,7 +1561,7 @@ sub_8055778: @ 8055778
str r1, [r2, 0x10]
bx lr
.align 2, 0
-_08055788: .4byte gUnknown_3005008
+_08055788: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055778
thumb_func_start GetMapConnection
@@ -1772,7 +1772,7 @@ sub_8055920: @ 8055920
bl sub_806E110
bl nullsub_74
bl sub_806D7E8
- ldr r0, _080559A0 @ =gUnknown_3005008
+ ldr r0, _080559A0 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -1804,7 +1804,7 @@ _08055974:
bx r0
.align 2, 0
_0805599C: .4byte gUnknown_2036DFC
-_080559A0: .4byte gUnknown_3005008
+_080559A0: .4byte gSaveBlock1Ptr
_080559A4: .4byte 0x00000806
thumb_func_end sub_8055920
@@ -2023,7 +2023,7 @@ sub_8055B38: @ 8055B38
lsrs r0, 24
cmp r0, 0x1
bne _08055B6C
- ldr r0, _08055B60 @ =gUnknown_3005008
+ ldr r0, _08055B60 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _08055B64 @ =0x00005601
@@ -2036,7 +2036,7 @@ _08055B5C:
movs r0, 0x1
b _08055B6E
.align 2, 0
-_08055B60: .4byte gUnknown_3005008
+_08055B60: .4byte gSaveBlock1Ptr
_08055B64: .4byte 0x00005601
_08055B68: .4byte 0x00005701
_08055B6C:
@@ -2180,7 +2180,7 @@ _08055C6E:
thumb_func_start sub_8055C74
sub_8055C74: @ 8055C74
push {lr}
- ldr r0, _08055C98 @ =gUnknown_3005008
+ ldr r0, _08055C98 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x7
@@ -2196,7 +2196,7 @@ sub_8055C74: @ 8055C74
pop {r1}
bx r1
.align 2, 0
-_08055C98: .4byte gUnknown_3005008
+_08055C98: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055C74
thumb_func_start sub_8055C9C
@@ -2224,28 +2224,28 @@ sub_8055CB8: @ 8055CB8
ldrb r1, [r0, 0x15]
cmp r1, 0
bne _08055CD0
- ldr r0, _08055CCC @ =gUnknown_3005008
+ ldr r0, _08055CCC @ =gSaveBlock1Ptr
ldr r0, [r0]
b _08055CF8
.align 2, 0
_08055CC8: .4byte gUnknown_2036DFC
-_08055CCC: .4byte gUnknown_3005008
+_08055CCC: .4byte gSaveBlock1Ptr
_08055CD0:
ldr r0, _08055CE8 @ =0x00000806
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _08055CF0
- ldr r0, _08055CEC @ =gUnknown_3005008
+ ldr r0, _08055CEC @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x30
movs r1, 0
b _08055CFA
.align 2, 0
_08055CE8: .4byte 0x00000806
-_08055CEC: .4byte gUnknown_3005008
+_08055CEC: .4byte gSaveBlock1Ptr
_08055CF0:
- ldr r0, _08055D00 @ =gUnknown_3005008
+ ldr r0, _08055D00 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08055D04 @ =gUnknown_83C68E0
ldr r1, [r1]
@@ -2256,7 +2256,7 @@ _08055CFA:
pop {r0}
bx r0
.align 2, 0
-_08055D00: .4byte gUnknown_3005008
+_08055D00: .4byte gSaveBlock1Ptr
_08055D04: .4byte gUnknown_83C68E0
thumb_func_end sub_8055CB8
@@ -2273,7 +2273,7 @@ Overworld_SetFlashLevel: @ 8055D08
_08055D18:
movs r1, 0
_08055D1A:
- ldr r0, _08055D2C @ =gUnknown_3005008
+ ldr r0, _08055D2C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x30
strb r1, [r0]
@@ -2281,24 +2281,24 @@ _08055D1A:
bx r0
.align 2, 0
_08055D28: .4byte gUnknown_83C68E0
-_08055D2C: .4byte gUnknown_3005008
+_08055D2C: .4byte gSaveBlock1Ptr
thumb_func_end Overworld_SetFlashLevel
thumb_func_start sav1_get_flash_used_on_map
sav1_get_flash_used_on_map: @ 8055D30
- ldr r0, _08055D3C @ =gUnknown_3005008
+ ldr r0, _08055D3C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x30
ldrb r0, [r0]
bx lr
.align 2, 0
-_08055D3C: .4byte gUnknown_3005008
+_08055D3C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_get_flash_used_on_map
thumb_func_start sub_8055D40
sub_8055D40: @ 8055D40
push {lr}
- ldr r1, _08055D54 @ =gUnknown_3005008
+ ldr r1, _08055D54 @ =gSaveBlock1Ptr
ldr r1, [r1]
strh r0, [r1, 0x32]
bl get_mapdata_header
@@ -2307,7 +2307,7 @@ sub_8055D40: @ 8055D40
pop {r0}
bx r0
.align 2, 0
-_08055D54: .4byte gUnknown_3005008
+_08055D54: .4byte gSaveBlock1Ptr
_08055D58: .4byte gUnknown_2036DFC
thumb_func_end sub_8055D40
@@ -2345,7 +2345,7 @@ sub_8055D6C: @ 8055D6C
thumb_func_start sub_8055D8C
sub_8055D8C: @ 8055D8C
push {lr}
- ldr r0, _08055DA0 @ =gUnknown_3005008
+ ldr r0, _08055DA0 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x4
bl sub_8055D6C
@@ -2354,7 +2354,7 @@ sub_8055D8C: @ 8055D8C
pop {r1}
bx r1
.align 2, 0
-_08055DA0: .4byte gUnknown_3005008
+_08055DA0: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055D8C
thumb_func_start sub_8055DA4
@@ -2393,7 +2393,7 @@ _08055DD8: .4byte gUnknown_2031DD8
_08055DDC:
cmp r0, 0x2
beq _08055E6C
- ldr r0, _08055E14 @ =gUnknown_3005008
+ ldr r0, _08055E14 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _08055E18 @ =0x00004f01
@@ -2418,7 +2418,7 @@ _08055DDC:
bl FadeInBGM
b _08055E6C
.align 2, 0
-_08055E14: .4byte gUnknown_3005008
+_08055E14: .4byte gSaveBlock1Ptr
_08055E18: .4byte 0x00004f01
_08055E1C: .4byte gMPlay_BGM
_08055E20: .4byte gUnknown_86E6B0C
@@ -2426,7 +2426,7 @@ _08055E24:
bl sub_8055D8C
lsls r0, 16
lsrs r4, r0, 16
- ldr r0, _08055E3C @ =gUnknown_3005008
+ ldr r0, _08055E3C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrh r0, [r1, 0x2C]
cmp r0, 0
@@ -2434,7 +2434,7 @@ _08055E24:
adds r4, r0, 0
b _08055E5A
.align 2, 0
-_08055E3C: .4byte gUnknown_3005008
+_08055E3C: .4byte gSaveBlock1Ptr
_08055E40:
movs r0, 0x8
bl TestPlayerAvatarFlags
@@ -2466,23 +2466,23 @@ _08055E74: .4byte 0x00000131
thumb_func_start sub_8055E78
sub_8055E78: @ 8055E78
- ldr r1, _08055E80 @ =gUnknown_3005008
+ ldr r1, _08055E80 @ =gSaveBlock1Ptr
ldr r1, [r1]
strh r0, [r1, 0x2C]
bx lr
.align 2, 0
-_08055E80: .4byte gUnknown_3005008
+_08055E80: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055E78
thumb_func_start sav1_reset_battle_music_maybe
sav1_reset_battle_music_maybe: @ 8055E84
- ldr r0, _08055E90 @ =gUnknown_3005008
+ ldr r0, _08055E90 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x2C]
bx lr
.align 2, 0
-_08055E90: .4byte gUnknown_3005008
+_08055E90: .4byte gSaveBlock1Ptr
thumb_func_end sav1_reset_battle_music_maybe
thumb_func_start sub_8055E94
@@ -2887,7 +2887,7 @@ get_map_light_level_from_warp: @ 8056170
thumb_func_start sav1_map_get_light_level
sav1_map_get_light_level: @ 8056188
push {lr}
- ldr r0, _0805619C @ =gUnknown_3005008
+ ldr r0, _0805619C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x4
bl get_map_light_level_from_warp
@@ -2896,7 +2896,7 @@ sav1_map_get_light_level: @ 8056188
pop {r1}
bx r1
.align 2, 0
-_0805619C: .4byte gUnknown_3005008
+_0805619C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_map_get_light_level
thumb_func_start get_map_light_from_warp0
@@ -3003,7 +3003,7 @@ _08056232:
thumb_func_start sav1_saved_warp2_map_get_name
sav1_saved_warp2_map_get_name: @ 8056238
push {lr}
- ldr r0, _0805625C @ =gUnknown_3005008
+ ldr r0, _0805625C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x14
ldrsb r0, [r1, r0]
@@ -3019,13 +3019,13 @@ sav1_saved_warp2_map_get_name: @ 8056238
pop {r1}
bx r1
.align 2, 0
-_0805625C: .4byte gUnknown_3005008
+_0805625C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_saved_warp2_map_get_name
thumb_func_start sav1_map_get_name
sav1_map_get_name: @ 8056260
push {lr}
- ldr r0, _08056284 @ =gUnknown_3005008
+ ldr r0, _08056284 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -3041,13 +3041,13 @@ sav1_map_get_name: @ 8056260
pop {r1}
bx r1
.align 2, 0
-_08056284: .4byte gUnknown_3005008
+_08056284: .4byte gSaveBlock1Ptr
thumb_func_end sav1_map_get_name
thumb_func_start sav1_map_get_battletype
sav1_map_get_battletype: @ 8056288
push {lr}
- ldr r0, _080562AC @ =gUnknown_3005008
+ ldr r0, _080562AC @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -3063,7 +3063,7 @@ sav1_map_get_battletype: @ 8056288
pop {r1}
bx r1
.align 2, 0
-_080562AC: .4byte gUnknown_3005008
+_080562AC: .4byte gSaveBlock1Ptr
thumb_func_end sav1_map_get_battletype
thumb_func_start sub_80562B0
@@ -3228,7 +3228,7 @@ sub_8056420: @ 8056420
thumb_func_start sub_805642C
sub_805642C: @ 805642C
push {lr}
- ldr r0, _0805643C @ =gUnknown_30030F0
+ ldr r0, _0805643C @ =gMain
ldr r1, [r0]
ldr r0, _08056440 @ =c1_link_related
cmp r1, r0
@@ -3236,7 +3236,7 @@ sub_805642C: @ 805642C
movs r0, 0
b _08056446
.align 2, 0
-_0805643C: .4byte gUnknown_30030F0
+_0805643C: .4byte gMain
_08056440: .4byte c1_link_related
_08056444:
movs r0, 0x1
@@ -3350,7 +3350,7 @@ _08056530: .4byte gUnknown_3005E90
thumb_func_start sub_8056534
sub_8056534: @ 8056534
push {r4,lr}
- ldr r4, _0805655C @ =gUnknown_30030F0
+ ldr r4, _0805655C @ =gMain
ldr r1, [r4, 0x4]
ldr r0, _08056560 @ =sub_80565B4
cmp r1, r0
@@ -3368,7 +3368,7 @@ _08056554:
bl sub_80564C8
b _08056570
.align 2, 0
-_0805655C: .4byte gUnknown_30030F0
+_0805655C: .4byte gMain
_08056560: .4byte sub_80565B4
_08056564: .4byte gUnknown_203ADFA
_08056568:
@@ -3432,11 +3432,11 @@ _080565DC: .4byte gUnknown_2037AB8
thumb_func_start sub_80565E0
sub_80565E0: @ 80565E0
- ldr r1, _080565E8 @ =gUnknown_30030F0
+ ldr r1, _080565E8 @ =gMain
str r0, [r1]
bx lr
.align 2, 0
-_080565E8: .4byte gUnknown_30030F0
+_080565E8: .4byte gMain
thumb_func_end sub_80565E0
thumb_func_start map_post_load_hook_exec
@@ -3504,7 +3504,7 @@ CB2_NewGame: @ 8056644
ldr r1, _08056694 @ =gUnknown_3005024
movs r0, 0
str r0, [r1]
- ldr r0, _08056698 @ =gUnknown_3003528
+ ldr r0, _08056698 @ =gMain + 0x438
bl do_load_map_stuff_loop
bl SetFieldVBlankCallback
ldr r0, _0805669C @ =sub_8056534
@@ -3517,7 +3517,7 @@ CB2_NewGame: @ 8056644
_0805668C: .4byte gUnknown_3005020
_08056690: .4byte sub_807DF7C
_08056694: .4byte gUnknown_3005024
-_08056698: .4byte gUnknown_3003528
+_08056698: .4byte gMain + 0x438
_0805669C: .4byte sub_8056534
_080566A0: .4byte sub_80565B4
thumb_func_end CB2_NewGame
@@ -3526,7 +3526,7 @@ _080566A0: .4byte sub_80565B4
c2_whiteout: @ 80566A4
push {lr}
sub sp, 0x4
- ldr r1, _08056708 @ =gUnknown_30030F0
+ ldr r1, _08056708 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -3564,7 +3564,7 @@ _08056702:
pop {r0}
bx r0
.align 2, 0
-_08056708: .4byte gUnknown_30030F0
+_08056708: .4byte gMain
_0805670C: .4byte gUnknown_3005020
_08056710: .4byte sub_807F5F0
_08056714: .4byte sub_8056534
@@ -3581,21 +3581,21 @@ sub_805671C: @ 805671C
bl sub_80565E0
ldr r0, _08056740 @ =sub_80C9BFC
bl SetMainCallback2
- ldr r1, _08056744 @ =gUnknown_30030F0
+ ldr r1, _08056744 @ =gMain
ldr r0, _08056748 @ =sub_805674C
str r0, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
_08056740: .4byte sub_80C9BFC
-_08056744: .4byte gUnknown_30030F0
+_08056744: .4byte gMain
_08056748: .4byte sub_805674C
thumb_func_end sub_805671C
thumb_func_start sub_805674C
sub_805674C: @ 805674C
push {lr}
- ldr r0, _08056768 @ =gUnknown_3003528
+ ldr r0, _08056768 @ =gMain + 0x438
bl do_load_map_stuff_loop
bl sub_8113748
lsls r0, 24
@@ -3605,7 +3605,7 @@ sub_805674C: @ 805674C
bl sub_81119C8
b _0805677C
.align 2, 0
-_08056768: .4byte gUnknown_3003528
+_08056768: .4byte gMain + 0x438
_0805676C:
bl SetFieldVBlankCallback
ldr r0, _08056780 @ =sub_8056534
@@ -3640,7 +3640,7 @@ _080567A8: .4byte c2_80567AC
thumb_func_start c2_80567AC
c2_80567AC: @ 80567AC
push {lr}
- ldr r0, _080567D0 @ =gUnknown_3003528
+ ldr r0, _080567D0 @ =gMain + 0x438
bl sub_8056A5C
cmp r0, 0
beq _080567CC
@@ -3654,7 +3654,7 @@ _080567CC:
pop {r0}
bx r0
.align 2, 0
-_080567D0: .4byte gUnknown_3003528
+_080567D0: .4byte gMain + 0x438
_080567D4: .4byte c1_link_related
_080567D8: .4byte sub_80565B4
thumb_func_end c2_80567AC
@@ -3684,7 +3684,7 @@ _08056804: .4byte c2_exit_to_overworld_2_local
thumb_func_start c2_exit_to_overworld_2_local
c2_exit_to_overworld_2_local: @ 8056808
push {lr}
- ldr r0, _08056824 @ =gUnknown_3003528
+ ldr r0, _08056824 @ =gMain + 0x438
bl sub_8056CD8
cmp r0, 0
beq _0805681E
@@ -3695,7 +3695,7 @@ _0805681E:
pop {r0}
bx r0
.align 2, 0
-_08056824: .4byte gUnknown_3003528
+_08056824: .4byte gMain + 0x438
_08056828: .4byte sub_80565B4
thumb_func_end c2_exit_to_overworld_2_local
@@ -3705,7 +3705,7 @@ c2_exit_to_overworld_2_link: @ 805682C
bl sub_8058244
cmp r0, 0
bne _08056846
- ldr r0, _0805684C @ =gUnknown_3003528
+ ldr r0, _0805684C @ =gMain + 0x438
bl map_loading_iteration_2_link
cmp r0, 0
beq _08056846
@@ -3715,7 +3715,7 @@ _08056846:
pop {r0}
bx r0
.align 2, 0
-_0805684C: .4byte gUnknown_3003528
+_0805684C: .4byte gMain + 0x438
_08056850: .4byte sub_80565B4
thumb_func_end c2_exit_to_overworld_2_link
@@ -4699,7 +4699,7 @@ mli4_mapscripts_and_other: @ 805709C
movs r2, 0
ldrsh r1, [r4, r2]
ldrb r2, [r5, 0x1]
- ldr r3, _080570FC @ =gUnknown_300500C
+ ldr r3, _080570FC @ =gSaveBlock2Ptr
ldr r3, [r3]
ldrb r3, [r3, 0x8]
bl InitPlayerAvatar
@@ -4717,7 +4717,7 @@ mli4_mapscripts_and_other: @ 805709C
.align 2, 0
_080570F4: .4byte gUnknown_300506C
_080570F8: .4byte gUnknown_3005068
-_080570FC: .4byte gUnknown_300500C
+_080570FC: .4byte gSaveBlock2Ptr
thumb_func_end mli4_mapscripts_and_other
thumb_func_start sub_8057100
@@ -4924,7 +4924,7 @@ sub_805726C: @ 805726C
bl sub_80565E0
ldr r0, _0805729C @ =sub_80C9BFC
bl SetMainCallback2
- ldr r1, _080572A0 @ =gUnknown_30030F0
+ ldr r1, _080572A0 @ =gMain
ldr r0, _080572A4 @ =sub_80572D8
str r0, [r1, 0x8]
pop {r0}
@@ -4932,7 +4932,7 @@ sub_805726C: @ 805726C
.align 2, 0
_08057298: .4byte gUnknown_2036E28
_0805729C: .4byte sub_80C9BFC
-_080572A0: .4byte gUnknown_30030F0
+_080572A0: .4byte gMain
_080572A4: .4byte sub_80572D8
thumb_func_end sub_805726C
@@ -4960,7 +4960,7 @@ _080572D4: .4byte sub_80572D8
thumb_func_start sub_80572D8
sub_80572D8: @ 80572D8
push {lr}
- ldr r0, _080572F4 @ =gUnknown_3003528
+ ldr r0, _080572F4 @ =gMain + 0x438
bl sub_8057300
bl SetFieldVBlankCallback
ldr r0, _080572F8 @ =sub_8056534
@@ -4970,7 +4970,7 @@ sub_80572D8: @ 80572D8
pop {r0}
bx r0
.align 2, 0
-_080572F4: .4byte gUnknown_3003528
+_080572F4: .4byte gMain + 0x438
_080572F8: .4byte sub_8056534
_080572FC: .4byte sub_80565B4
thumb_func_end sub_80572D8
@@ -5317,7 +5317,7 @@ _08057560:
ldr r1, _08057614 @ =gUnknown_3005024
ldr r0, _08057618 @ =sub_80574EC
str r0, [r1]
- ldr r0, _0805761C @ =gUnknown_30030F0
+ ldr r0, _0805761C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -5336,7 +5336,7 @@ _0805760C: .4byte gUnknown_2031DE8
_08057610: .4byte gUnknown_2037AB8
_08057614: .4byte gUnknown_3005024
_08057618: .4byte sub_80574EC
-_0805761C: .4byte gUnknown_30030F0
+_0805761C: .4byte gMain
_08057620:
bl sub_8057650
lsls r0, 24
@@ -5366,7 +5366,7 @@ _0805764A:
thumb_func_start sub_8057650
sub_8057650: @ 8057650
push {r4,lr}
- ldr r4, _08057664 @ =gUnknown_3003528
+ ldr r4, _08057664 @ =gMain + 0x438
ldrb r0, [r4]
cmp r0, 0x8
bhi _0805773C
@@ -5376,7 +5376,7 @@ sub_8057650: @ 8057650
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08057664: .4byte gUnknown_3003528
+_08057664: .4byte gMain + 0x438
_08057668: .4byte _0805766C
.align 2, 0
_0805766C:
@@ -6174,7 +6174,7 @@ _08057CB4: .4byte gUnknown_3003F3C
thumb_func_start sub_8057CB8
sub_8057CB8: @ 8057CB8
push {lr}
- ldr r2, _08057CCC @ =gUnknown_30030F0
+ ldr r2, _08057CCC @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x40
ands r0, r1
@@ -6183,7 +6183,7 @@ sub_8057CB8: @ 8057CB8
movs r0, 0x13
b _08057D10
.align 2, 0
-_08057CCC: .4byte gUnknown_30030F0
+_08057CCC: .4byte gMain
_08057CD0:
movs r0, 0x80
ands r0, r1
@@ -6398,7 +6398,7 @@ sub_8057E1C: @ 8057E1C
ldrb r0, [r0]
cmp r0, 0x82
bne _08057E4C
- ldr r0, _08057E44 @ =gUnknown_30030F0
+ ldr r0, _08057E44 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -6410,7 +6410,7 @@ sub_8057E1C: @ 8057E1C
b _08057E52
.align 2, 0
_08057E40: .4byte gUnknown_3000E80
-_08057E44: .4byte gUnknown_30030F0
+_08057E44: .4byte gMain
_08057E48: .4byte sub_8057E10
_08057E4C:
bl sub_8057910
diff --git a/asm/party_menu.s b/asm/party_menu.s
index deae6236d..7ca4b3aa1 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -233,7 +233,7 @@ _0811EBF6:
sub_811EBFC: @ 811EBFC
push {r4,lr}
sub sp, 0x4
- ldr r0, _0811EC1C @ =gUnknown_30030F0
+ ldr r0, _0811EC1C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -248,7 +248,7 @@ _0811EC10:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0811EC1C: .4byte gUnknown_30030F0
+_0811EC1C: .4byte gMain
_0811EC20: .4byte _0811EC24
.align 2, 0
_0811EC24:
@@ -459,7 +459,7 @@ _0811EDDE:
_0811EDFA:
strb r0, [r2, 0x8]
_0811EDFC:
- ldr r1, _0811EE10 @ =gUnknown_30030F0
+ ldr r1, _0811EE10 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -469,7 +469,7 @@ _0811EDFC:
b _0811EE2C
.align 2, 0
_0811EE0C: .4byte gUnknown_2037AB8
-_0811EE10: .4byte gUnknown_30030F0
+_0811EE10: .4byte gMain
_0811EE14:
ldr r0, _0811EE24 @ =sub_811EBBC
bl SetVBlankCallback
@@ -2630,7 +2630,7 @@ _0811FEF4:
sub_811FEFC: @ 811FEFC
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0811FF14 @ =gUnknown_30030F0
+ ldr r0, _0811FF14 @ =gMain
ldrh r1, [r0, 0x30]
adds r3, r0, 0
cmp r1, 0x20
@@ -2641,7 +2641,7 @@ sub_811FEFC: @ 811FEFC
beq _0811FF2E
b _0811FF32
.align 2, 0
-_0811FF14: .4byte gUnknown_30030F0
+_0811FF14: .4byte gMain
_0811FF18:
cmp r1, 0x40
beq _0811FF22
@@ -2676,7 +2676,7 @@ _0811FF46:
_0811FF4A:
movs r1, 0x1
_0811FF4C:
- ldr r3, _0811FF5C @ =gUnknown_30030F0
+ ldr r3, _0811FF5C @ =gMain
_0811FF4E:
ldrh r2, [r3, 0x2E]
movs r0, 0x8
@@ -2686,7 +2686,7 @@ _0811FF4E:
movs r0, 0x8
b _0811FF8C
.align 2, 0
-_0811FF5C: .4byte gUnknown_30030F0
+_0811FF5C: .4byte gMain
_0811FF60:
lsls r0, r1, 24
asrs r1, r0, 24
@@ -4847,7 +4847,7 @@ sub_8120F78: @ 8120F78
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _08120F90 @ =gUnknown_30030F0
+ ldr r0, _08120F90 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -4856,7 +4856,7 @@ sub_8120F78: @ 8120F78
movs r0, 0
b _08120FA4
.align 2, 0
-_08120F90: .4byte gUnknown_30030F0
+_08120F90: .4byte gMain
_08120F94:
ldr r0, _08120FA8 @ =gUnknown_203B09C
ldr r1, [r0]
@@ -7150,7 +7150,7 @@ party_menu_icon_anim: @ 81221D4
lsrs r0, 24
cmp r0, 0x1
bne _0812220A
- ldr r0, _08122240 @ =gUnknown_30030F0
+ ldr r0, _08122240 @ =gMain
ldr r1, _08122244 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -7189,7 +7189,7 @@ _0812220A:
pop {r0}
bx r0
.align 2, 0
-_08122240: .4byte gUnknown_30030F0
+_08122240: .4byte gMain
_08122244: .4byte 0x00000439
_08122248: .4byte gUnknown_845A59C
thumb_func_end party_menu_icon_anim
@@ -10277,7 +10277,7 @@ sub_8123A80: @ 8123A80
bl GetMonData
lsls r0, 24
lsrs r0, 24
- ldr r1, _08123AC0 @ =gUnknown_3005008
+ ldr r1, _08123AC0 @ =gSaveBlock1Ptr
lsls r2, r0, 3
adds r2, r0
lsls r2, 2
@@ -10293,7 +10293,7 @@ sub_8123A80: @ 8123A80
.align 2, 0
_08123AB8: .4byte gUnknown_203B0A0
_08123ABC: .4byte gUnknown_2024284
-_08123AC0: .4byte gUnknown_3005008
+_08123AC0: .4byte gSaveBlock1Ptr
_08123AC4: .4byte 0x00002cd0
_08123AC8: .4byte sub_8123ACC
thumb_func_end sub_8123A80
@@ -10632,7 +10632,7 @@ sub_8123D84: @ 8123D84
adds r0, r1
movs r1, 0x40
bl GetMonData
- ldr r2, _08123DC0 @ =gUnknown_3005008
+ ldr r2, _08123DC0 @ =gSaveBlock1Ptr
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
@@ -10648,7 +10648,7 @@ sub_8123D84: @ 8123D84
.align 2, 0
_08123DB8: .4byte gUnknown_203B0A0
_08123DBC: .4byte gUnknown_2024284
-_08123DC0: .4byte gUnknown_3005008
+_08123DC0: .4byte gSaveBlock1Ptr
_08123DC4: .4byte 0x00002cd0
_08123DC8: .4byte sub_8123DCC
thumb_func_end sub_8123D84
@@ -11716,7 +11716,7 @@ _081246AC:
bl sub_80E56DC
b _081247B4
_081246B4:
- ldr r0, _081246E0 @ =gUnknown_3005008
+ ldr r0, _081246E0 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x1C
ldrsb r0, [r1, r0]
@@ -11736,12 +11736,12 @@ _081246B4:
ldr r1, _081246EC @ =gUnknown_8417640
b _08124720
.align 2, 0
-_081246E0: .4byte gUnknown_3005008
+_081246E0: .4byte gSaveBlock1Ptr
_081246E4: .4byte gUnknown_2021CD0
_081246E8: .4byte gUnknown_2021D18
_081246EC: .4byte gUnknown_8417640
_081246F0:
- ldr r0, _08124738 @ =gUnknown_3005008
+ ldr r0, _08124738 @ =gSaveBlock1Ptr
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x24
@@ -11775,7 +11775,7 @@ _08124720:
strh r4, [r0]
b _081247B4
.align 2, 0
-_08124738: .4byte gUnknown_3005008
+_08124738: .4byte gSaveBlock1Ptr
_0812473C: .4byte gUnknown_2021CD0
_08124740: .4byte gUnknown_2021D18
_08124744: .4byte gUnknown_8417615
@@ -12028,7 +12028,7 @@ task_brm_cancel_1_on_keypad_a_or_b: @ 812492C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _08124950 @ =gUnknown_30030F0
+ ldr r0, _08124950 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -12045,7 +12045,7 @@ _0812494C:
pop {r0}
bx r0
.align 2, 0
-_08124950: .4byte gUnknown_30030F0
+_08124950: .4byte gMain
thumb_func_end task_brm_cancel_1_on_keypad_a_or_b
thumb_func_start sub_8124954
@@ -12175,7 +12175,7 @@ _08124A24:
bl sub_8121D0C
b _08124A82
_08124A56:
- ldr r0, _08124A78 @ =gUnknown_3005008
+ ldr r0, _08124A78 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -12191,7 +12191,7 @@ _08124A56:
bl sub_8121D0C
b _08124A82
.align 2, 0
-_08124A78: .4byte gUnknown_3005008
+_08124A78: .4byte gSaveBlock1Ptr
_08124A7C:
movs r0, 0x8
bl sub_8121D0C
@@ -12374,7 +12374,7 @@ sub_8124BB0: @ 8124BB0
movs r0, 0xFF
b _08124C00
_08124BDA:
- ldr r0, _08124BF8 @ =gUnknown_3005008
+ ldr r0, _08124BF8 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x1C
ldrsb r0, [r1, r0]
@@ -12388,7 +12388,7 @@ _08124BDA:
bl get_mapheader_by_bank_and_number
b _08124BFE
.align 2, 0
-_08124BF8: .4byte gUnknown_3005008
+_08124BF8: .4byte gSaveBlock1Ptr
_08124BFC:
ldr r0, _08124C18 @ =gUnknown_2036DFC
_08124BFE:
@@ -12466,7 +12466,7 @@ sub_8124C8C: @ 8124C8C
push {r7}
sub sp, 0xC
ldr r6, _08124CB4 @ =sub_8124D90
- ldr r0, _08124CB8 @ =gUnknown_30030F0
+ ldr r0, _08124CB8 @ =gMain
ldr r1, _08124CBC @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -12482,7 +12482,7 @@ sub_8124C8C: @ 8124C8C
b _08124CD2
.align 2, 0
_08124CB4: .4byte sub_8124D90
-_08124CB8: .4byte gUnknown_30030F0
+_08124CB8: .4byte gMain
_08124CBC: .4byte 0x00000439
_08124CC0:
ldr r0, _08124CC8 @ =gUnknown_203B0A0
@@ -12911,13 +12911,13 @@ IsHPRecoveryItem: @ 8125018
lsrs r0, 16
cmp r0, 0xAF
bne _08125034
- ldr r0, _0812502C @ =gUnknown_3005008
+ ldr r0, _0812502C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08125030 @ =0x00003108
adds r0, r1
b _0812503E
.align 2, 0
-_0812502C: .4byte gUnknown_3005008
+_0812502C: .4byte gSaveBlock1Ptr
_08125030: .4byte 0x00003108
_08125034:
ldr r1, _0812504C @ =gUnknown_82528BC
@@ -13183,7 +13183,7 @@ ExecuteTableBasedItemEffect__: @ 8125268
lsrs r5, r1, 16
lsls r2, 24
lsrs r6, r2, 24
- ldr r0, _08125294 @ =gUnknown_30030F0
+ ldr r0, _08125294 @ =gMain
ldr r1, _08125298 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -13199,7 +13199,7 @@ ExecuteTableBasedItemEffect__: @ 8125268
adds r2, r3, 0
b _081252BA
.align 2, 0
-_08125294: .4byte gUnknown_30030F0
+_08125294: .4byte gMain
_08125298: .4byte 0x00000439
_0812529C: .4byte gUnknown_2024284
_081252A0:
@@ -13739,14 +13739,14 @@ sub_81256F8: @ 81256F8
ldrh r0, [r0]
cmp r0, 0xAF
bne _0812571C
- ldr r0, _08125714 @ =gUnknown_3005008
+ ldr r0, _08125714 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08125718 @ =0x00003108
adds r0, r1
b _08125726
.align 2, 0
_08125710: .4byte gUnknown_203AD30
-_08125714: .4byte gUnknown_3005008
+_08125714: .4byte gSaveBlock1Ptr
_08125718: .4byte 0x00003108
_0812571C:
ldr r1, _0812574C @ =gUnknown_82528BC
@@ -14490,7 +14490,7 @@ sub_8125D2C: @ 8125D2C
lsls r0, 24
cmp r0, 0
beq _08125D7E
- ldr r0, _08125D68 @ =gUnknown_30030F0
+ ldr r0, _08125D68 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
@@ -14511,7 +14511,7 @@ _08125D54:
bl sub_81266A0
b _08125D7E
.align 2, 0
-_08125D68: .4byte gUnknown_30030F0
+_08125D68: .4byte gMain
_08125D6C: .4byte gUnknown_203B0A0
_08125D70:
cmp r0, 0x2
@@ -15405,7 +15405,7 @@ sub_81264C8: @ 81264C8
lsrs r0, 24
cmp r0, 0x1
beq _08126514
- ldr r0, _0812651C @ =gUnknown_30030F0
+ ldr r0, _0812651C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -15432,7 +15432,7 @@ _08126514:
pop {r0}
bx r0
.align 2, 0
-_0812651C: .4byte gUnknown_30030F0
+_0812651C: .4byte gMain
_08126520: .4byte gUnknown_3005090
_08126524: .4byte sub_8126528
thumb_func_end sub_81264C8
@@ -15442,7 +15442,7 @@ sub_8126528: @ 8126528
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08126564 @ =gUnknown_30030F0
+ ldr r0, _08126564 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -15469,7 +15469,7 @@ _0812655C:
pop {r0}
bx r0
.align 2, 0
-_08126564: .4byte gUnknown_30030F0
+_08126564: .4byte gMain
_08126568: .4byte gUnknown_3005090
_0812656C: .4byte sub_81265F8
thumb_func_end sub_8126528
@@ -15552,7 +15552,7 @@ sub_81265F8: @ 81265F8
lsls r0, 24
cmp r0, 0
beq _0812669A
- ldr r0, _08126650 @ =gUnknown_30030F0
+ ldr r0, _08126650 @ =gMain
ldrh r1, [r0, 0x2E]
movs r6, 0x1
adds r0, r6, 0
@@ -15586,7 +15586,7 @@ _08126620:
beq _0812666C
b _08126694
.align 2, 0
-_08126650: .4byte gUnknown_30030F0
+_08126650: .4byte gMain
_08126654: .4byte gUnknown_203B0A0
_08126658: .4byte gUnknown_2024284
_0812665C: .4byte 0x0000fffe
@@ -16330,13 +16330,13 @@ GetItemEffectType: @ 8126C68
_08126C7C:
cmp r1, 0xAF
bne _08126C94
- ldr r0, _08126C8C @ =gUnknown_3005008
+ ldr r0, _08126C8C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08126C90 @ =0x00003108
adds r4, r0, r1
b _08126C9C
.align 2, 0
-_08126C8C: .4byte gUnknown_3005008
+_08126C8C: .4byte gSaveBlock1Ptr
_08126C90: .4byte 0x00003108
_08126C94:
ldr r1, _08126CC4 @ =gUnknown_82528BC
@@ -16920,7 +16920,7 @@ sub_81270E0: @ 81270E0
bl GetMonData
lsls r0, 24
lsrs r0, 24
- ldr r1, _08127130 @ =gUnknown_3005008
+ ldr r1, _08127130 @ =gSaveBlock1Ptr
lsls r2, r0, 3
adds r2, r0
lsls r2, 2
@@ -16937,7 +16937,7 @@ sub_81270E0: @ 81270E0
.align 2, 0
_08127128: .4byte gUnknown_203B0A0
_0812712C: .4byte gUnknown_2024284
-_08127130: .4byte gUnknown_3005008
+_08127130: .4byte gSaveBlock1Ptr
_08127134: .4byte 0x00002cd0
_08127138: .4byte sub_812713C
thumb_func_end sub_81270E0
@@ -17310,7 +17310,7 @@ sub_8127404: @ 8127404
ldr r1, _08127458 @ =gUnknown_203B0C0
movs r0, 0
strb r0, [r1]
- ldr r2, _0812745C @ =gUnknown_3005008
+ ldr r2, _0812745C @ =gSaveBlock1Ptr
ldr r0, _08127460 @ =gUnknown_203AAC4
ldrh r1, [r0]
adds r1, 0x6
@@ -17336,7 +17336,7 @@ sub_8127404: @ 8127404
_08127450: .4byte gUnknown_203B0A0
_08127454: .4byte gUnknown_2024284
_08127458: .4byte gUnknown_203B0C0
-_0812745C: .4byte gUnknown_3005008
+_0812745C: .4byte gSaveBlock1Ptr
_08127460: .4byte gUnknown_203AAC4
_08127464: .4byte 0x00002cd0
_08127468: .4byte gUnknown_8416D17
@@ -17380,7 +17380,7 @@ sub_81274A8: @ 81274A8
str r0, [sp]
ldr r0, _081274EC @ =sub_811FB28
str r0, [sp, 0x4]
- ldr r0, _081274F0 @ =gUnknown_30030F0
+ ldr r0, _081274F0 @ =gMain
ldr r0, [r0, 0x8]
str r0, [sp, 0x8]
movs r0, 0x4
@@ -17403,7 +17403,7 @@ sub_81274A8: @ 81274A8
bx r0
.align 2, 0
_081274EC: .4byte sub_811FB28
-_081274F0: .4byte gUnknown_30030F0
+_081274F0: .4byte gMain
_081274F4: .4byte gUnknown_203B0A0
_081274F8: .4byte sub_812773C
thumb_func_end sub_81274A8
@@ -17491,7 +17491,7 @@ _08127584:
bne _081275E0
b _0812757A
_08127592:
- ldr r0, _081275E8 @ =gUnknown_300500C
+ ldr r0, _081275E8 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r2, _081275EC @ =0x0000055c
adds r0, r2
@@ -17537,7 +17537,7 @@ _081275E2:
pop {r1}
bx r1
.align 2, 0
-_081275E8: .4byte gUnknown_300500C
+_081275E8: .4byte gSaveBlock2Ptr
_081275EC: .4byte 0x0000055c
_081275F0: .4byte gUnknown_84020C4
_081275F4: .4byte 0x0000ffff
@@ -17778,7 +17778,7 @@ sub_81277AC: @ 81277AC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _081277E8 @ =gUnknown_30030F0
+ ldr r0, _081277E8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -17805,7 +17805,7 @@ _081277E0:
pop {r0}
bx r0
.align 2, 0
-_081277E8: .4byte gUnknown_30030F0
+_081277E8: .4byte gMain
_081277EC: .4byte gUnknown_3005090
_081277F0: .4byte sub_811FB28
thumb_func_end sub_81277AC
@@ -19062,7 +19062,7 @@ sub_8128198: @ 8128198
str r0, [sp]
ldr r0, _081281BC @ =sub_81281C4
str r0, [sp, 0x4]
- ldr r0, _081281C0 @ =gUnknown_30030F0
+ ldr r0, _081281C0 @ =gMain
ldr r0, [r0, 0x8]
str r0, [sp, 0x8]
movs r0, 0x5
@@ -19075,7 +19075,7 @@ sub_8128198: @ 8128198
bx r0
.align 2, 0
_081281BC: .4byte sub_81281C4
-_081281C0: .4byte gUnknown_30030F0
+_081281C0: .4byte gMain
thumb_func_end sub_8128198
thumb_func_start sub_81281C4
diff --git a/asm/play_time.s b/asm/play_time.s
index 79047bf07..41d0f6239 100644
--- a/asm/play_time.s
+++ b/asm/play_time.s
@@ -10,7 +10,7 @@ PlayTimeCounter_Reset: @ 8054814
ldr r1, _08054830 @ =gUnknown_3000E7C
movs r0, 0
strb r0, [r1]
- ldr r2, _08054834 @ =gUnknown_300500C
+ ldr r2, _08054834 @ =gSaveBlock2Ptr
ldr r3, [r2]
movs r1, 0
movs r0, 0
@@ -23,7 +23,7 @@ PlayTimeCounter_Reset: @ 8054814
bx lr
.align 2, 0
_08054830: .4byte gUnknown_3000E7C
-_08054834: .4byte gUnknown_300500C
+_08054834: .4byte gSaveBlock2Ptr
thumb_func_end PlayTimeCounter_Reset
thumb_func_start PlayTimeCounter_Start
@@ -32,7 +32,7 @@ PlayTimeCounter_Start: @ 8054838
ldr r1, _08054854 @ =gUnknown_3000E7C
movs r0, 0x1
strb r0, [r1]
- ldr r0, _08054858 @ =gUnknown_300500C
+ ldr r0, _08054858 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrh r1, [r0, 0xE]
ldr r0, _0805485C @ =0x000003e7
@@ -44,7 +44,7 @@ _08054850:
bx r0
.align 2, 0
_08054854: .4byte gUnknown_3000E7C
-_08054858: .4byte gUnknown_300500C
+_08054858: .4byte gSaveBlock2Ptr
_0805485C: .4byte 0x000003e7
thumb_func_end PlayTimeCounter_Start
@@ -65,7 +65,7 @@ PlayTimeCounter_Update: @ 805486C
ldrb r0, [r0]
cmp r0, 0x1
bne _080548C4
- ldr r2, _080548CC @ =gUnknown_300500C
+ ldr r2, _080548CC @ =gSaveBlock2Ptr
ldr r0, [r2]
ldrb r1, [r0, 0x12]
adds r1, 0x1
@@ -108,7 +108,7 @@ _080548C4:
bx r0
.align 2, 0
_080548C8: .4byte gUnknown_3000E7C
-_080548CC: .4byte gUnknown_300500C
+_080548CC: .4byte gSaveBlock2Ptr
_080548D0: .4byte 0x03e70000
thumb_func_end PlayTimeCounter_Update
@@ -117,7 +117,7 @@ PlayTimeCounter_SetToMax: @ 80548D4
ldr r1, _080548F0 @ =gUnknown_3000E7C
movs r0, 0x2
strb r0, [r1]
- ldr r2, _080548F4 @ =gUnknown_300500C
+ ldr r2, _080548F4 @ =gSaveBlock2Ptr
ldr r3, [r2]
ldr r0, _080548F8 @ =0x000003e7
strh r0, [r3, 0xE]
@@ -130,7 +130,7 @@ PlayTimeCounter_SetToMax: @ 80548D4
bx lr
.align 2, 0
_080548F0: .4byte gUnknown_3000E7C
-_080548F4: .4byte gUnknown_300500C
+_080548F4: .4byte gSaveBlock2Ptr
_080548F8: .4byte 0x000003e7
thumb_func_end PlayTimeCounter_SetToMax
diff --git a/asm/player_pc.s b/asm/player_pc.s
index 58870c6b1..8de67a2d8 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -535,7 +535,7 @@ sub_80EBAB8: @ 80EBAB8
lsls r0, 24
lsrs r5, r0, 24
adds r4, r5, 0
- ldr r2, _080EBAE4 @ =gUnknown_30030F0
+ ldr r2, _080EBAE4 @ =gMain
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
@@ -551,7 +551,7 @@ sub_80EBAB8: @ 80EBAB8
negs r0, r0
b _080EBB04
.align 2, 0
-_080EBAE4: .4byte gUnknown_30030F0
+_080EBAE4: .4byte gMain
_080EBAE8:
movs r0, 0x80
ands r0, r1
@@ -922,7 +922,7 @@ sub_80EBDC8: @ 80EBDC8
push {r4,lr}
movs r2, 0
movs r1, 0x6
- ldr r0, _080EBDFC @ =gUnknown_3005008
+ ldr r0, _080EBDFC @ =gSaveBlock1Ptr
ldr r3, [r0]
ldr r4, _080EBE00 @ =0x00002cf0
_080EBDD4:
@@ -948,7 +948,7 @@ _080EBDEA:
pop {r1}
bx r1
.align 2, 0
-_080EBDFC: .4byte gUnknown_3005008
+_080EBDFC: .4byte gSaveBlock1Ptr
_080EBE00: .4byte 0x00002cf0
thumb_func_end sub_80EBDC8
@@ -968,7 +968,7 @@ _080EBE12:
mov r8, r1
cmp r4, 0xF
bhi _080EBE8A
- ldr r0, _080EBEA4 @ =gUnknown_3005008
+ ldr r0, _080EBEA4 @ =gSaveBlock1Ptr
mov r10, r0
lsls r0, r2, 3
adds r0, r2
@@ -1039,7 +1039,7 @@ _080EBE8A:
pop {r0}
bx r0
.align 2, 0
-_080EBEA4: .4byte gUnknown_3005008
+_080EBEA4: .4byte gSaveBlock1Ptr
_080EBEA8: .4byte 0x00002cd0
_080EBEAC: .4byte 0x00002cf0
thumb_func_end sub_80EBE04
@@ -1203,7 +1203,7 @@ sub_80EBFFC: @ 80EBFFC
lsls r0, 24
lsrs r5, r0, 24
ldr r4, _080EC054 @ =gUnknown_2021CD0
- ldr r2, _080EC058 @ =gUnknown_3005008
+ ldr r2, _080EC058 @ =gSaveBlock1Ptr
ldr r1, _080EC05C @ =gUnknown_203AAC4
ldrh r0, [r1]
adds r0, 0x6
@@ -1244,7 +1244,7 @@ _080EC044:
b _080EC06C
.align 2, 0
_080EC054: .4byte gUnknown_2021CD0
-_080EC058: .4byte gUnknown_3005008
+_080EC058: .4byte gSaveBlock1Ptr
_080EC05C: .4byte gUnknown_203AAC4
_080EC060: .4byte 0x00002ce2
_080EC064:
@@ -1439,7 +1439,7 @@ sub_80EC1D4: @ 80EC1D4
bne _080EC216
bl sub_810EDB0
bl sub_80563F0
- ldr r2, _080EC220 @ =gUnknown_3005008
+ ldr r2, _080EC220 @ =gSaveBlock1Ptr
ldr r1, _080EC224 @ =gUnknown_203AAC4
ldrh r0, [r1]
adds r0, 0x6
@@ -1463,7 +1463,7 @@ _080EC216:
bx r0
.align 2, 0
_080EC21C: .4byte gUnknown_2037AB8
-_080EC220: .4byte gUnknown_3005008
+_080EC220: .4byte gSaveBlock1Ptr
_080EC224: .4byte gUnknown_203AAC4
_080EC228: .4byte 0x00002cd0
_080EC22C: .4byte sub_80EC2C0
@@ -1634,7 +1634,7 @@ sub_80EC364: @ 80EC364
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r2, _080EC3A0 @ =gUnknown_3005008
+ ldr r2, _080EC3A0 @ =gSaveBlock1Ptr
ldr r4, _080EC3A4 @ =gUnknown_203AAC4
ldrh r1, [r4]
adds r1, 0x6
@@ -1660,7 +1660,7 @@ sub_80EC364: @ 80EC364
bl DisplayItemMessageOnField
b _080EC3EA
.align 2, 0
-_080EC3A0: .4byte gUnknown_3005008
+_080EC3A0: .4byte gSaveBlock1Ptr
_080EC3A4: .4byte gUnknown_203AAC4
_080EC3A8: .4byte 0x00002cd0
_080EC3AC: .4byte gUnknown_8417858
diff --git a/asm/pokeball.s b/asm/pokeball.s
index e54e50bd1..ac9ddff68 100644
--- a/asm/pokeball.s
+++ b/asm/pokeball.s
@@ -146,7 +146,7 @@ _0804AA54: .4byte gUnknown_2024284
_0804AA58: .4byte gUnknown_2022B4C
_0804AA5C: .4byte gUnknown_202273C
_0804AA60:
- ldr r0, _0804AAB8 @ =gUnknown_300500C
+ ldr r0, _0804AAB8 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
mov r10, r0
@@ -190,7 +190,7 @@ _0804AA68:
movs r4, 0x40
b _0804AACE
.align 2, 0
-_0804AAB8: .4byte gUnknown_300500C
+_0804AAB8: .4byte gSaveBlock2Ptr
_0804AABC: .4byte gUnknown_82606F4
_0804AAC0: .4byte gUnknown_202063C
_0804AAC4: .4byte gUnknown_2022B4C
@@ -1202,7 +1202,7 @@ sub_804B268: @ 804B268
strh r0, [r6, 0x2E]
ldr r0, _0804B2FC @ =HandleBallAnimEnd
str r0, [r6, 0x1C]
- ldr r0, _0804B300 @ =gUnknown_30030F0
+ ldr r0, _0804B300 @ =gMain
ldr r1, _0804B304 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -1230,7 +1230,7 @@ _0804B2DA:
b _0804B324
.align 2, 0
_0804B2FC: .4byte HandleBallAnimEnd
-_0804B300: .4byte gUnknown_30030F0
+_0804B300: .4byte gMain
_0804B304: .4byte 0x00000439
_0804B308: .4byte gUnknown_2023BCE
_0804B30C: .4byte gUnknown_202402C
@@ -1631,7 +1631,7 @@ _0804B600:
bl DestroySprite
adds r0, r6, 0
bl DestroySpriteAndFreeResources
- ldr r0, _0804B678 @ =gUnknown_30030F0
+ ldr r0, _0804B678 @ =gMain
ldr r1, _0804B67C @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -1659,7 +1659,7 @@ _0804B666:
_0804B66C: .4byte 0x0000013b
_0804B670: .4byte gUnknown_202063C
_0804B674: .4byte gUnknown_2023D44
-_0804B678: .4byte gUnknown_30030F0
+_0804B678: .4byte gMain
_0804B67C: .4byte 0x00000439
_0804B680: .4byte gUnknown_2024018
thumb_func_end sub_804B5C8
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index e7f305065..d8114ea2b 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -320,7 +320,7 @@ _08102794: .4byte sub_81024D4
sub_8102798: @ 8102798
push {r4,lr}
sub sp, 0x4
- ldr r0, _081027B4 @ =gUnknown_30030F0
+ ldr r0, _081027B4 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r4, r0, r1
@@ -333,7 +333,7 @@ sub_8102798: @ 8102798
beq _081027BE
b _0810284A
.align 2, 0
-_081027B4: .4byte gUnknown_30030F0
+_081027B4: .4byte gMain
_081027B8:
cmp r1, 0x2
beq _081027F2
@@ -628,7 +628,7 @@ _08102A14:
adds r1, 0x62
movs r2, 0
bl get_coro_args_x18_x1A
- ldr r0, _08102A4C @ =gUnknown_30030F0
+ ldr r0, _08102A4C @ =gMain
ldrh r1, [r0, 0x2E]
movs r3, 0x1
movs r0, 0x1
@@ -645,7 +645,7 @@ _08102A14:
bls _08102A62
b _08102AA4
.align 2, 0
-_08102A4C: .4byte gUnknown_30030F0
+_08102A4C: .4byte gMain
_08102A50:
cmp r1, 0xE
beq _08102AA4
@@ -1386,7 +1386,7 @@ _08103098:
adds r1, 0x62
movs r2, 0
bl get_coro_args_x18_x1A
- ldr r0, _081030F0 @ =gUnknown_30030F0
+ ldr r0, _081030F0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r3, 0x1
adds r0, r3, 0
@@ -1416,7 +1416,7 @@ _08103098:
movs r0, 0x7
b _0810316A
.align 2, 0
-_081030F0: .4byte gUnknown_30030F0
+_081030F0: .4byte gMain
_081030F4: .4byte 0xffff7fff
_081030F8: .4byte 0x0000ffff
_081030FC:
@@ -1707,7 +1707,7 @@ _08103362:
adds r1, 0x62
movs r2, 0
bl get_coro_args_x18_x1A
- ldr r0, _081033C4 @ =gUnknown_30030F0
+ ldr r0, _081033C4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
@@ -1742,7 +1742,7 @@ _08103362:
strb r0, [r1, 0x1]
b _0810344C
.align 2, 0
-_081033C4: .4byte gUnknown_30030F0
+_081033C4: .4byte gMain
_081033C8: .4byte 0xffff7fff
_081033CC: .4byte 0x0000ffff
_081033D0:
@@ -2811,7 +2811,7 @@ _08103C84:
adds r1, 0x62
strh r0, [r1]
movs r4, 0
- ldr r0, _08103CF8 @ =gUnknown_30030F0
+ ldr r0, _08103CF8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2843,9 +2843,9 @@ _08103C84:
movs r0, 0xC
b _08104226
.align 2, 0
-_08103CF8: .4byte gUnknown_30030F0
+_08103CF8: .4byte gMain
_08103CFC:
- ldr r2, _08103D28 @ =gUnknown_30030F0
+ ldr r2, _08103D28 @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x80
lsls r0, 1
@@ -2868,7 +2868,7 @@ _08103CFC:
strb r0, [r1]
b _08103D60
.align 2, 0
-_08103D28: .4byte gUnknown_30030F0
+_08103D28: .4byte gMain
_08103D2C: .4byte gUnknown_203ACF0
_08103D30:
movs r4, 0x1
@@ -3024,7 +3024,7 @@ _08103E4A:
movs r0, 0x6
strb r0, [r1, 0x1]
_08103E4E:
- ldr r0, _08103E68 @ =gUnknown_30030F0
+ ldr r0, _08103E68 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -3038,7 +3038,7 @@ _08103E5C:
b _08104226
.align 2, 0
_08103E64: .4byte gUnknown_203ACF0
-_08103E68: .4byte gUnknown_30030F0
+_08103E68: .4byte gMain
_08103E6C:
ldr r0, [r5]
adds r0, 0x60
@@ -3224,7 +3224,7 @@ _08103FA8:
movs r0, 0x11
b _08104226
_08103FF0:
- ldr r0, _08104024 @ =gUnknown_30030F0
+ ldr r0, _08104024 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3247,7 +3247,7 @@ _08103FF0:
movs r0, 0x15
b _08104226
.align 2, 0
-_08104024: .4byte gUnknown_30030F0
+_08104024: .4byte gMain
_08104028: .4byte gUnknown_203ACF0
_0810402C:
movs r0, 0x2
@@ -3361,7 +3361,7 @@ _081040F4:
.align 2, 0
_08104114: .4byte gUnknown_203ACF0
_08104118:
- ldr r0, _08104174 @ =gUnknown_30030F0
+ ldr r0, _08104174 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3401,7 +3401,7 @@ _08104118:
movs r0, 0x1A
b _08104226
.align 2, 0
-_08104174: .4byte gUnknown_30030F0
+_08104174: .4byte gMain
_08104178: .4byte gUnknown_203ACF0
_0810417C:
movs r0, 0x2
@@ -3532,7 +3532,7 @@ _08104280: .4byte gUnknown_203ACF0
thumb_func_start sub_8104284
sub_8104284: @ 8104284
push {lr}
- ldr r0, _081042B0 @ =gUnknown_300500C
+ ldr r0, _081042B0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
@@ -3541,7 +3541,7 @@ sub_8104284: @ 8104284
ble _081042E6
cmp r0, 0x2
bne _081042E6
- ldr r0, _081042B4 @ =gUnknown_30030F0
+ ldr r0, _081042B4 @ =gMain
ldr r2, [r0, 0x2C]
ldr r1, _081042B8 @ =0x00200100
adds r0, r2, 0
@@ -3554,12 +3554,12 @@ sub_8104284: @ 8104284
beq _081042E2
b _081042E6
.align 2, 0
-_081042B0: .4byte gUnknown_300500C
-_081042B4: .4byte gUnknown_30030F0
+_081042B0: .4byte gSaveBlock2Ptr
+_081042B4: .4byte gMain
_081042B8: .4byte 0x00200100
_081042BC: .4byte 0x00100100
_081042C0:
- ldr r0, _081042D4 @ =gUnknown_30030F0
+ ldr r0, _081042D4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
lsls r0, 2
@@ -3570,7 +3570,7 @@ _081042CE:
movs r0, 0x1
b _081042E8
.align 2, 0
-_081042D4: .4byte gUnknown_30030F0
+_081042D4: .4byte gMain
_081042D8:
movs r0, 0x80
lsls r0, 1
@@ -3712,7 +3712,7 @@ _0810440C: .4byte 0xffff7fff
_08104410: .4byte 0x0000ffff
_08104414: .4byte gUnknown_203ACF0
_08104418:
- ldr r0, _0810444C @ =gUnknown_30030F0
+ ldr r0, _0810444C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3735,7 +3735,7 @@ _08104418:
movs r0, 0x7
b _08104654
.align 2, 0
-_0810444C: .4byte gUnknown_30030F0
+_0810444C: .4byte gMain
_08104450: .4byte gUnknown_203ACF0
_08104454:
movs r0, 0x2
@@ -3784,7 +3784,7 @@ _081044B4: .4byte 0xffff7fff
_081044B8: .4byte 0x0000ffff
_081044BC: .4byte gUnknown_203ACF0
_081044C0:
- ldr r0, _081044F8 @ =gUnknown_30030F0
+ ldr r0, _081044F8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -3811,7 +3811,7 @@ _081044DA:
movs r0, 0x6
b _08104654
.align 2, 0
-_081044F8: .4byte gUnknown_30030F0
+_081044F8: .4byte gMain
_081044FC: .4byte 0xffff7fff
_08104500: .4byte 0x0000ffff
_08104504: .4byte gUnknown_203ACF0
@@ -3854,7 +3854,7 @@ _08104538:
.align 2, 0
_08104558: .4byte gUnknown_203ACF0
_0810455C:
- ldr r0, _08104580 @ =gUnknown_30030F0
+ ldr r0, _08104580 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3872,7 +3872,7 @@ _0810455C:
movs r0, 0xC
b _08104654
.align 2, 0
-_08104580: .4byte gUnknown_30030F0
+_08104580: .4byte gMain
_08104584: .4byte 0xffff7fff
_08104588: .4byte 0x0000ffff
_0810458C: .4byte gUnknown_203ACF0
@@ -4448,19 +4448,19 @@ sub_81049CC: @ 81049CC
lsls r0, 1
cmp r1, r0
bne _081049F4
- ldr r0, _081049E4 @ =gUnknown_300500C
+ ldr r0, _081049E4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r0, [r0, 0x20]
b _081049F6
.align 2, 0
-_081049E4: .4byte gUnknown_300500C
+_081049E4: .4byte gSaveBlock2Ptr
_081049E8:
- ldr r0, _081049F0 @ =gUnknown_300500C
+ ldr r0, _081049F0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r0, [r0, 0x1C]
b _081049F6
.align 2, 0
-_081049F0: .4byte gUnknown_300500C
+_081049F0: .4byte gSaveBlock2Ptr
_081049F4:
movs r0, 0
_081049F6:
@@ -4604,7 +4604,7 @@ _08104AF4:
beq _08104BA0
b _08104BB0
_08104AFE:
- ldr r0, _08104B10 @ =gUnknown_300500C
+ ldr r0, _08104B10 @ =gSaveBlock2Ptr
ldr r0, [r0]
adds r0, 0x5C
adds r0, r4
@@ -4614,9 +4614,9 @@ _08104AFE:
beq _08104BB0
b _08104B34
.align 2, 0
-_08104B10: .4byte gUnknown_300500C
+_08104B10: .4byte gSaveBlock2Ptr
_08104B14:
- ldr r0, _08104B5C @ =gUnknown_300500C
+ ldr r0, _08104B5C @ =gSaveBlock2Ptr
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x28
@@ -4633,7 +4633,7 @@ _08104B14:
cmp r1, r0
bne _08104BB0
_08104B34:
- ldr r0, _08104B60 @ =gUnknown_3005008
+ ldr r0, _08104B60 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r3, 0xBF
lsls r3, 3
@@ -4654,11 +4654,11 @@ _08104B34:
mov r12, r0
b _08104BB0
.align 2, 0
-_08104B5C: .4byte gUnknown_300500C
-_08104B60: .4byte gUnknown_3005008
+_08104B5C: .4byte gSaveBlock2Ptr
+_08104B60: .4byte gSaveBlock1Ptr
_08104B64: .4byte 0x00003a18
_08104B68:
- ldr r0, _08104B94 @ =gUnknown_300500C
+ ldr r0, _08104B94 @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r1, 0x5C
adds r1, r4
@@ -4666,7 +4666,7 @@ _08104B68:
adds r0, r6, 0
orrs r0, r2
strb r0, [r1]
- ldr r3, _08104B98 @ =gUnknown_3005008
+ ldr r3, _08104B98 @ =gSaveBlock1Ptr
ldr r1, [r3]
movs r0, 0xBF
lsls r0, 3
@@ -4681,11 +4681,11 @@ _08104B68:
adds r1, r3
b _08104BA6
.align 2, 0
-_08104B94: .4byte gUnknown_300500C
-_08104B98: .4byte gUnknown_3005008
+_08104B94: .4byte gSaveBlock2Ptr
+_08104B98: .4byte gSaveBlock1Ptr
_08104B9C: .4byte 0x00003a18
_08104BA0:
- ldr r0, _08104BB8 @ =gUnknown_300500C
+ ldr r0, _08104BB8 @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r1, 0x28
_08104BA6:
@@ -4700,7 +4700,7 @@ _08104BB0:
pop {r1}
bx r1
.align 2, 0
-_08104BB8: .4byte gUnknown_300500C
+_08104BB8: .4byte gSaveBlock2Ptr
thumb_func_end sub_8104AB0
thumb_func_start sub_8104BBC
@@ -7888,7 +7888,7 @@ _08106534:
movs r2, 0
movs r3, 0
bl SetOamMatrix
- ldr r0, _081066CC @ =gUnknown_300500C
+ ldr r0, _081066CC @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
movs r1, 0x1
@@ -7980,7 +7980,7 @@ _081066BC: .4byte gUnknown_8452368
_081066C0: .4byte 0x0000ffff
_081066C4: .4byte gUnknown_202063C
_081066C8: .4byte gUnknown_844E850
-_081066CC: .4byte gUnknown_300500C
+_081066CC: .4byte gSaveBlock2Ptr
_081066D0:
ldr r0, [r7]
adds r0, 0x58
@@ -8574,7 +8574,7 @@ _08106B30: .4byte gUnknown_203ACF0
thumb_func_start sub_8106B34
sub_8106B34: @ 8106B34
push {lr}
- ldr r0, _08106B58 @ =gUnknown_30030F0
+ ldr r0, _08106B58 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x8
ands r0, r1
@@ -8592,7 +8592,7 @@ _08106B54:
pop {r0}
bx r0
.align 2, 0
-_08106B58: .4byte gUnknown_30030F0
+_08106B58: .4byte gMain
_08106B5C: .4byte gUnknown_203ACF0
thumb_func_end sub_8106B34
@@ -8719,7 +8719,7 @@ _08106C5C:
_08106C62:
bl sub_8106014
bl sub_8104E90
- ldr r0, _08106C7C @ =gUnknown_30030F0
+ ldr r0, _08106C7C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -8729,7 +8729,7 @@ _08106C62:
ldr r1, [r0]
b _08106E66
.align 2, 0
-_08106C7C: .4byte gUnknown_30030F0
+_08106C7C: .4byte gMain
_08106C80: .4byte gUnknown_203ACF0
_08106C84:
bl sub_8102798
@@ -8946,7 +8946,7 @@ _08106E10:
movs r0, 0xB
b _08106E68
_08106E58:
- ldr r0, _08106E74 @ =gUnknown_30030F0
+ ldr r0, _08106E74 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -8963,7 +8963,7 @@ _08106E6A:
pop {r0}
bx r0
.align 2, 0
-_08106E74: .4byte gUnknown_30030F0
+_08106E74: .4byte gMain
thumb_func_end sub_8106BE8
thumb_func_start sub_8106E78
diff --git a/asm/pokemon_1.s b/asm/pokemon_1.s
index 6efd98cac..7b1894339 100644
--- a/asm/pokemon_1.s
+++ b/asm/pokemon_1.s
@@ -262,7 +262,7 @@ _0803DB6C:
str r0, [sp, 0x18]
b _0803DB92
_0803DB78:
- ldr r0, _0803DCBC @ =gUnknown_300500C
+ ldr r0, _0803DCBC @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0xA]
ldrb r0, [r2, 0xB]
@@ -296,11 +296,11 @@ _0803DB92:
movs r1, 0x2
mov r2, sp
bl sub_80404D0
- ldr r2, _0803DCC0 @ =gUnknown_81E9F11
+ ldr r2, _0803DCC0 @ =gGameLanguage
adds r0, r7, 0
movs r1, 0x3
bl sub_80404D0
- ldr r5, _0803DCBC @ =gUnknown_300500C
+ ldr r5, _0803DCBC @ =gSaveBlock2Ptr
ldr r2, [r5]
adds r0, r7, 0
movs r1, 0x7
@@ -353,7 +353,7 @@ _0803DB92:
movs r1, 0x24
add r2, sp, 0x10
bl sub_80404D0
- ldr r2, _0803DCCC @ =gUnknown_81E9F10
+ ldr r2, _0803DCCC @ =gGameVersion
adds r0, r7, 0
movs r1, 0x25
bl sub_80404D0
@@ -403,11 +403,11 @@ _0803DB92:
bl sub_80404D0
b _0803DD58
.align 2, 0
-_0803DCBC: .4byte gUnknown_300500C
-_0803DCC0: .4byte gUnknown_81E9F11
+_0803DCBC: .4byte gSaveBlock2Ptr
+_0803DCC0: .4byte gGameLanguage
_0803DCC4: .4byte gUnknown_8254784
_0803DCC8: .4byte gUnknown_8253AE4
-_0803DCCC: .4byte gUnknown_81E9F10
+_0803DCCC: .4byte gGameVersion
_0803DCD0:
bl Random
lsls r0, 16
diff --git a/asm/pokemon_2.s b/asm/pokemon_2.s
index f5a9e738e..e18dca3bc 100644
--- a/asm/pokemon_2.s
+++ b/asm/pokemon_2.s
@@ -2797,7 +2797,7 @@ CopyMon: @ 8040B08
GiveMonToPlayer: @ 8040B14
push {r4-r6,lr}
adds r6, r0, 0
- ldr r4, _08040B40 @ =gUnknown_300500C
+ ldr r4, _08040B40 @ =gSaveBlock2Ptr
ldr r2, [r4]
movs r1, 0x7
bl sub_804037C
@@ -2814,7 +2814,7 @@ GiveMonToPlayer: @ 8040B14
movs r5, 0
b _08040B46
.align 2, 0
-_08040B40: .4byte gUnknown_300500C
+_08040B40: .4byte gSaveBlock2Ptr
_08040B44:
adds r5, 0x1
_08040B46:
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index b84d9b18b..79621efa3 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -28,7 +28,7 @@ sub_80423A4: @ 80423A4
movs r1, 0x37
mov r2, sp
bl sub_804037C
- ldr r0, _080423FC @ =gUnknown_30030F0
+ ldr r0, _080423FC @ =gMain
ldr r1, _08042400 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -50,7 +50,7 @@ _080423F6:
movs r0, 0
b _0804240A
.align 2, 0
-_080423FC: .4byte gUnknown_30030F0
+_080423FC: .4byte gMain
_08042400: .4byte 0x00000439
_08042404: .4byte gUnknown_2023BE4
_08042408:
@@ -101,7 +101,7 @@ _08042458:
ldr r0, _080424B4 @ =gUnknown_2024004
ldrb r2, [r0]
strb r2, [r1]
- ldr r0, _080424B8 @ =gUnknown_30030F0
+ ldr r0, _080424B8 @ =gMain
ldr r1, _080424BC @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -143,7 +143,7 @@ _08042458:
.align 2, 0
_080424B0: .4byte gUnknown_2023D6F
_080424B4: .4byte gUnknown_2024004
-_080424B8: .4byte gUnknown_30030F0
+_080424B8: .4byte gMain
_080424BC: .4byte 0x00000439
_080424C0: .4byte gUnknown_2023BC4
_080424C4: .4byte gUnknown_2023BCC
@@ -200,7 +200,7 @@ _08042528:
cmp r2, 0xAF
bne _0804257C
_0804252E:
- ldr r0, _08042550 @ =gUnknown_30030F0
+ ldr r0, _08042550 @ =gMain
ldr r1, _08042554 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -217,19 +217,19 @@ _0804252E:
adds r0, r1
b _0804257C
.align 2, 0
-_08042550: .4byte gUnknown_30030F0
+_08042550: .4byte gMain
_08042554: .4byte 0x00000439
_08042558: .4byte gUnknown_2023BC4
_0804255C: .4byte gUnknown_2023F5C
_08042560:
- ldr r0, _0804256C @ =gUnknown_3005008
+ ldr r0, _0804256C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _08042570 @ =0x00003108
adds r2, r0, r2
str r2, [sp, 0x14]
b _0804257E
.align 2, 0
-_0804256C: .4byte gUnknown_3005008
+_0804256C: .4byte gSaveBlock1Ptr
_08042570: .4byte 0x00003108
_08042574:
movs r0, 0
@@ -273,7 +273,7 @@ _080425B0:
adds r5, r2, 0
cmp r0, 0
beq _080425F4
- ldr r0, _0804263C @ =gUnknown_30030F0
+ ldr r0, _0804263C @ =gMain
ldr r2, _08042640 @ =0x00000439
adds r0, r2
ldrb r1, [r0]
@@ -338,7 +338,7 @@ _08042628:
asrs r0, 24
b _080426F2
.align 2, 0
-_0804263C: .4byte gUnknown_30030F0
+_0804263C: .4byte gMain
_08042640: .4byte 0x00000439
_08042644: .4byte gUnknown_2023BE4
_08042648: .4byte gUnknown_2023BC4
@@ -568,7 +568,7 @@ _080427F6:
bne _08042802
b _08042BCA
_08042802:
- ldr r0, _08042844 @ =gUnknown_30030F0
+ ldr r0, _08042844 @ =gMain
ldr r1, _08042848 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -602,7 +602,7 @@ _08042832:
_08042838: .4byte gUnknown_2023DE4
_0804283C: .4byte gUnknown_2023BC4
_08042840: .4byte 0x00000f88
-_08042844: .4byte gUnknown_30030F0
+_08042844: .4byte gMain
_08042848: .4byte 0x00000439
_0804284C: .4byte gUnknown_2023BE4
_08042850:
@@ -1306,7 +1306,7 @@ sub_8042DA4: @ 8042DA4
lsrs r0, 16
cmp r0, 0xAF
bne _08042DF8
- ldr r0, _08042DD4 @ =gUnknown_30030F0
+ ldr r0, _08042DD4 @ =gMain
ldr r1, _08042DD8 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -1323,18 +1323,18 @@ sub_8042DA4: @ 8042DA4
adds r7, r0, r1
b _08042E04
.align 2, 0
-_08042DD4: .4byte gUnknown_30030F0
+_08042DD4: .4byte gMain
_08042DD8: .4byte 0x00000439
_08042DDC: .4byte gUnknown_2024004
_08042DE0: .4byte gUnknown_2023F5C
_08042DE4:
- ldr r0, _08042DF0 @ =gUnknown_3005008
+ ldr r0, _08042DF0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08042DF4 @ =0x00003108
adds r7, r0, r1
b _08042E02
.align 2, 0
-_08042DF0: .4byte gUnknown_3005008
+_08042DF0: .4byte gSaveBlock1Ptr
_08042DF4: .4byte 0x00003108
_08042DF8:
ldr r1, _08042E3C @ =gUnknown_82528BC
@@ -1486,14 +1486,14 @@ sub_8042EC4: @ 8042EC4
ldrh r0, [r0]
cmp r0, 0xAF
bne _08042F38
- ldr r0, _08042F30 @ =gUnknown_3005008
+ ldr r0, _08042F30 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08042F34 @ =0x0000311a
adds r0, r1
ldrb r0, [r0]
b _08042F40
.align 2, 0
-_08042F30: .4byte gUnknown_3005008
+_08042F30: .4byte gSaveBlock1Ptr
_08042F34: .4byte 0x0000311a
_08042F38:
bl ItemId_GetHoldEffect
@@ -2598,7 +2598,7 @@ sub_80436F8: @ 80436F8
lsrs r0, 16
cmp r0, 0xAF
bne _08043758
- ldr r0, _08043738 @ =gUnknown_30030F0
+ ldr r0, _08043738 @ =gMain
ldr r1, _0804373C @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -2610,18 +2610,18 @@ sub_80436F8: @ 80436F8
ldrb r4, [r0, 0x7]
b _08043760
.align 2, 0
-_08043738: .4byte gUnknown_30030F0
+_08043738: .4byte gMain
_0804373C: .4byte 0x00000439
_08043740: .4byte gUnknown_2023F54
_08043744:
- ldr r0, _08043750 @ =gUnknown_3005008
+ ldr r0, _08043750 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08043754 @ =0x0000311a
adds r0, r1
ldrb r4, [r0]
b _08043760
.align 2, 0
-_08043750: .4byte gUnknown_3005008
+_08043750: .4byte gSaveBlock1Ptr
_08043754: .4byte 0x0000311a
_08043758:
bl ItemId_GetHoldEffect
@@ -2917,7 +2917,7 @@ _0804397C:
lsrs r0, 16
cmp r0, 0xAF
bne _080439C8
- ldr r0, _080439A8 @ =gUnknown_30030F0
+ ldr r0, _080439A8 @ =gMain
ldr r1, _080439AC @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -2930,18 +2930,18 @@ _0804397C:
b _080439D0
.align 2, 0
_080439A4: .4byte gUnknown_8254784
-_080439A8: .4byte gUnknown_30030F0
+_080439A8: .4byte gMain
_080439AC: .4byte 0x00000439
_080439B0: .4byte gUnknown_2023F54
_080439B4:
- ldr r0, _080439C0 @ =gUnknown_3005008
+ ldr r0, _080439C0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _080439C4 @ =0x0000311a
adds r0, r2
ldrb r0, [r0]
b _080439D0
.align 2, 0
-_080439C0: .4byte gUnknown_3005008
+_080439C0: .4byte gSaveBlock1Ptr
_080439C4: .4byte 0x0000311a
_080439C8:
bl ItemId_GetHoldEffect
@@ -4155,7 +4155,7 @@ IsTradedMon: @ 804425C
IsOtherTrainer: @ 8044288
push {r4,r5,lr}
adds r5, r1, 0
- ldr r1, _080442CC @ =gUnknown_300500C
+ ldr r1, _080442CC @ =gSaveBlock2Ptr
ldr r3, [r1]
ldrb r2, [r3, 0xA]
ldrb r1, [r3, 0xB]
@@ -4189,7 +4189,7 @@ _080442C6:
movs r0, 0
b _080442D2
.align 2, 0
-_080442CC: .4byte gUnknown_300500C
+_080442CC: .4byte gSaveBlock2Ptr
_080442D0:
movs r0, 0x1
_080442D2:
@@ -4557,7 +4557,7 @@ _08044590:
ands r0, r1
cmp r0, 0
beq _08044632
- ldr r0, _080445B4 @ =gUnknown_30030F0
+ ldr r0, _080445B4 @ =gMain
ldr r1, _080445B8 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -4568,7 +4568,7 @@ _08044590:
b _0804461A
.align 2, 0
_080445B0: .4byte gUnknown_2022B4C
-_080445B4: .4byte gUnknown_30030F0
+_080445B4: .4byte gMain
_080445B8: .4byte 0x00000439
_080445BC:
ldr r0, _080445E8 @ =gUnknown_2022B4C
@@ -4577,7 +4577,7 @@ _080445BC:
ands r0, r1
cmp r0, 0
beq _08044632
- ldr r0, _080445EC @ =gUnknown_30030F0
+ ldr r0, _080445EC @ =gMain
ldr r1, _080445F0 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -4594,7 +4594,7 @@ _080445BC:
b _08044632
.align 2, 0
_080445E8: .4byte gUnknown_2022B4C
-_080445EC: .4byte gUnknown_30030F0
+_080445EC: .4byte gMain
_080445F0: .4byte 0x00000439
_080445F4:
ldr r0, _08044638 @ =gUnknown_2022B4C
@@ -4604,7 +4604,7 @@ _080445F4:
ands r0, r3
cmp r0, 0
beq _08044648
- ldr r0, _0804463C @ =gUnknown_30030F0
+ ldr r0, _0804463C @ =gMain
ldr r1, _08044640 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -4633,11 +4633,11 @@ _08044632:
b _08044666
.align 2, 0
_08044638: .4byte gUnknown_2022B4C
-_0804463C: .4byte gUnknown_30030F0
+_0804463C: .4byte gMain
_08044640: .4byte 0x00000439
_08044644: .4byte gUnknown_202273C
_08044648:
- ldr r0, _0804466C @ =gUnknown_30030F0
+ ldr r0, _0804466C @ =gMain
ldr r1, _08044670 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -4658,7 +4658,7 @@ _08044666:
pop {r1}
bx r1
.align 2, 0
-_0804466C: .4byte gUnknown_30030F0
+_0804466C: .4byte gMain
_08044670: .4byte 0x00000439
thumb_func_end sub_804455C
@@ -4960,7 +4960,7 @@ sub_8044898: @ 8044898
lsrs r0, 16
cmp r0, 0xC9
bne _080448D8
- ldr r0, _080448F4 @ =gUnknown_300500C
+ ldr r0, _080448F4 @ =gSaveBlock2Ptr
ldr r0, [r0]
str r7, [r0, 0x1C]
_080448D8:
@@ -4971,7 +4971,7 @@ _080448D8:
lsls r1, 17
cmp r0, r1
bne _080448EE
- ldr r0, _080448F4 @ =gUnknown_300500C
+ ldr r0, _080448F4 @ =gSaveBlock2Ptr
ldr r0, [r0]
str r7, [r0, 0x20]
_080448EE:
@@ -4979,7 +4979,7 @@ _080448EE:
pop {r0}
bx r0
.align 2, 0
-_080448F4: .4byte gUnknown_300500C
+_080448F4: .4byte gSaveBlock2Ptr
thumb_func_end sub_8044898
thumb_func_start sub_80448F8
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
index e48b72e4b..235c46f8c 100644
--- a/asm/pokemon_item_effect.s
+++ b/asm/pokemon_item_effect.s
@@ -63,7 +63,7 @@ sub_80413E4: @ 80413E4
lsrs r0, 16
cmp r0, 0xAF
bne _08041474
- ldr r0, _08041450 @ =gUnknown_30030F0
+ ldr r0, _08041450 @ =gMain
ldr r4, _08041454 @ =0x00000439
adds r0, r4
ldrb r1, [r0]
@@ -81,19 +81,19 @@ sub_80413E4: @ 80413E4
ldrb r0, [r0, 0x7]
b _0804147C
.align 2, 0
-_08041450: .4byte gUnknown_30030F0
+_08041450: .4byte gMain
_08041454: .4byte 0x00000439
_08041458: .4byte gUnknown_2023F54
_0804145C: .4byte gUnknown_2024004
_08041460:
- ldr r0, _0804146C @ =gUnknown_3005008
+ ldr r0, _0804146C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r5, _08041470 @ =0x0000311a
adds r0, r5
ldrb r0, [r0]
b _0804147C
.align 2, 0
-_0804146C: .4byte gUnknown_3005008
+_0804146C: .4byte gSaveBlock1Ptr
_08041470: .4byte 0x0000311a
_08041474:
bl ItemId_GetHoldEffect
@@ -105,7 +105,7 @@ _0804147C:
ldr r0, _080414DC @ =gUnknown_2024004
ldrb r2, [r0]
strb r2, [r1]
- ldr r0, _080414E0 @ =gUnknown_30030F0
+ ldr r0, _080414E0 @ =gMain
ldr r1, _080414E4 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -147,7 +147,7 @@ _0804147C:
.align 2, 0
_080414D8: .4byte gUnknown_2023D6F
_080414DC: .4byte gUnknown_2024004
-_080414E0: .4byte gUnknown_30030F0
+_080414E0: .4byte gMain
_080414E4: .4byte 0x00000439
_080414E8: .4byte gUnknown_2023BC4
_080414EC: .4byte gUnknown_2023BCC
@@ -203,7 +203,7 @@ _0804154C:
cmp r5, 0xAF
bne _080415AE
_08041552:
- ldr r0, _08041574 @ =gUnknown_30030F0
+ ldr r0, _08041574 @ =gMain
ldr r1, _08041578 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -220,19 +220,19 @@ _08041552:
adds r0, r1
b _080415AE
.align 2, 0
-_08041574: .4byte gUnknown_30030F0
+_08041574: .4byte gMain
_08041578: .4byte 0x00000439
_0804157C: .4byte gUnknown_2023BC4
_08041580: .4byte gUnknown_2023F5C
_08041584:
- ldr r0, _08041590 @ =gUnknown_3005008
+ ldr r0, _08041590 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _08041594 @ =0x00003108
adds r2, r0, r2
str r2, [sp, 0x20]
b _080415B0
.align 2, 0
-_08041590: .4byte gUnknown_3005008
+_08041590: .4byte gSaveBlock1Ptr
_08041594: .4byte 0x00003108
_08041598:
mov r0, r8
@@ -280,7 +280,7 @@ _080415E4:
adds r6, r2, 0
cmp r0, 0
beq _0804162C
- ldr r0, _0804169C @ =gUnknown_30030F0
+ ldr r0, _0804169C @ =gMain
ldr r1, _080416A0 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -367,7 +367,7 @@ _08041696:
strb r0, [r1, 0x19]
b _0804198A
.align 2, 0
-_0804169C: .4byte gUnknown_30030F0
+_0804169C: .4byte gMain
_080416A0: .4byte 0x00000439
_080416A4: .4byte gUnknown_2023BE4
_080416A8: .4byte 0xfff0ffff
@@ -707,7 +707,7 @@ _0804193E:
bne _0804194C
bl _08042384
_0804194C:
- ldr r0, _080419B0 @ =gUnknown_30030F0
+ ldr r0, _080419B0 @ =gMain
ldr r3, _080419B4 @ =0x00000439
adds r0, r3
ldrb r1, [r0]
@@ -750,7 +750,7 @@ _080419A0: .4byte gUnknown_8254784
_080419A4: .4byte gUnknown_2023BE4
_080419A8: .4byte 0xf7ffffff
_080419AC: .4byte 0x00000f88
-_080419B0: .4byte gUnknown_30030F0
+_080419B0: .4byte gMain
_080419B4: .4byte 0x00000439
_080419B8:
ldr r1, [sp, 0x20]
@@ -976,7 +976,7 @@ _08041B70:
lsls r0, 24
b _08041ED6
_08041B90:
- ldr r0, _08041BD8 @ =gUnknown_30030F0
+ ldr r0, _08041BD8 @ =gMain
ldr r1, _08041BDC @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -1011,7 +1011,7 @@ _08041B90:
ldrb r0, [r0]
b _08041C08
.align 2, 0
-_08041BD8: .4byte gUnknown_30030F0
+_08041BD8: .4byte gMain
_08041BDC: .4byte 0x00000439
_08041BE0: .4byte gUnknown_2023D70
_08041BE4: .4byte gUnknown_825E45C
@@ -1147,7 +1147,7 @@ _08041CF2:
movs r1, 0x39
mov r2, sp
bl sub_804037C
- ldr r0, _08041D64 @ =gUnknown_30030F0
+ ldr r0, _08041D64 @ =gMain
ldr r1, _08041D68 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -1196,7 +1196,7 @@ _08041D42:
b _08041D80
.align 2, 0
_08041D60: .4byte gUnknown_2023FC4
-_08041D64: .4byte gUnknown_30030F0
+_08041D64: .4byte gMain
_08041D68: .4byte 0x00000439
_08041D6C: .4byte gUnknown_2023BE4
_08041D70: .4byte gUnknown_2023BC4
@@ -1317,7 +1317,7 @@ _08041E60:
mov r1, r9
mov r2, sp
bl sub_804037C
- ldr r0, _08041EDC @ =gUnknown_30030F0
+ ldr r0, _08041EDC @ =gMain
ldr r4, _08041EE0 @ =0x00000439
adds r0, r4
ldrb r1, [r0]
@@ -1379,7 +1379,7 @@ _08041ED6:
str r0, [sp, 0x24]
b _08042042
.align 2, 0
-_08041EDC: .4byte gUnknown_30030F0
+_08041EDC: .4byte gMain
_08041EE0: .4byte 0x00000439
_08041EE4: .4byte gUnknown_2023BE4
_08041EE8: .4byte gUnknown_2023E0C
@@ -1475,7 +1475,7 @@ _08041FAC:
adds r1, r6, 0
mov r2, sp
bl sub_804037C
- ldr r0, _08042018 @ =gUnknown_30030F0
+ ldr r0, _08042018 @ =gMain
ldr r1, _0804201C @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -1525,7 +1525,7 @@ _08042010:
str r0, [sp, 0x1C]
b _08042042
.align 2, 0
-_08042018: .4byte gUnknown_30030F0
+_08042018: .4byte gMain
_0804201C: .4byte 0x00000439
_08042020: .4byte gUnknown_2023BE4
_08042024: .4byte gUnknown_2023E0C
diff --git a/asm/pokemon_size_record.s b/asm/pokemon_size_record.s
index a80fc6425..c407807d0 100644
--- a/asm/pokemon_size_record.s
+++ b/asm/pokemon_size_record.s
@@ -426,7 +426,7 @@ GiveGiftRibbonToParty: @ 80A09AC
bhi _080A0A28
cmp r5, 0x40
bhi _080A0A28
- ldr r0, _080A0A38 @ =gUnknown_3005008
+ ldr r0, _080A0A38 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _080A0A3C @ =0x0000309c
adds r0, r1
@@ -473,7 +473,7 @@ _080A0A28:
bx r0
.align 2, 0
_080A0A34: .4byte gUnknown_83E27AC
-_080A0A38: .4byte gUnknown_3005008
+_080A0A38: .4byte gSaveBlock1Ptr
_080A0A3C: .4byte 0x0000309c
_080A0A40: .4byte gUnknown_2024284
_080A0A44: .4byte 0x0000083b
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index b6cad48be..b1aaa452e 100644
--- a/asm/pokemon_special_anim.s
+++ b/asm/pokemon_special_anim.s
@@ -97,7 +97,7 @@ sub_811C5D4: @ 811C5D4
mov r8, r0
lsls r1, 16
lsrs r6, r1, 16
- ldr r0, _0811C61C @ =gUnknown_30030F0
+ ldr r0, _0811C61C @ =gMain
ldr r1, _0811C620 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -119,7 +119,7 @@ _0811C5FC:
movs r0, 0
b _0811C6D2
.align 2, 0
-_0811C61C: .4byte gUnknown_30030F0
+_0811C61C: .4byte gMain
_0811C620: .4byte 0x00000439
_0811C624: .4byte 0x000028dc
_0811C628:
@@ -392,7 +392,7 @@ sub_811C834: @ 811C834
ldrb r0, [r0]
cmp r0, 0
bne _0811C870
- ldr r0, _0811C868 @ =gUnknown_30030F0
+ ldr r0, _0811C868 @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x3
ands r0, r1
@@ -404,7 +404,7 @@ sub_811C834: @ 811C834
bl sub_811C718
b _0811CA16
.align 2, 0
-_0811C868: .4byte gUnknown_30030F0
+_0811C868: .4byte gMain
_0811C86C: .4byte sub_811CF88
_0811C870:
adds r0, r4, 0
@@ -549,7 +549,7 @@ _0811C996:
strb r0, [r1]
b _0811C9F4
_0811C9AA:
- ldr r0, _0811C9DC @ =gUnknown_30030F0
+ ldr r0, _0811C9DC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -573,7 +573,7 @@ _0811C9AA:
bl BeginNormalPaletteFade
b _0811C9F4
.align 2, 0
-_0811C9DC: .4byte gUnknown_30030F0
+_0811C9DC: .4byte gMain
_0811C9E0:
ldrh r0, [r5]
adds r0, 0x2
@@ -833,7 +833,7 @@ sub_811CBE4: @ 811CBE4
ldrb r0, [r0]
cmp r0, 0
bne _0811CC1C
- ldr r0, _0811CC14 @ =gUnknown_30030F0
+ ldr r0, _0811CC14 @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x2
ands r0, r1
@@ -844,7 +844,7 @@ sub_811CBE4: @ 811CBE4
bl sub_811C718
b _0811CD5A
.align 2, 0
-_0811CC14: .4byte gUnknown_30030F0
+_0811CC14: .4byte gMain
_0811CC18: .4byte sub_811CF88
_0811CC1C:
adds r0, r5, 0
@@ -955,7 +955,7 @@ _0811CCF8:
strb r0, [r1]
b _0811CD2A
_0811CD0C:
- ldr r0, _0811CD34 @ =gUnknown_30030F0
+ ldr r0, _0811CD34 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -975,7 +975,7 @@ _0811CD2A:
strh r0, [r4]
b _0811CD5A
.align 2, 0
-_0811CD34: .4byte gUnknown_30030F0
+_0811CD34: .4byte gMain
_0811CD38:
ldr r0, _0811CD64 @ =gUnknown_2037AB8
ldrb r1, [r0, 0x7]
@@ -1009,7 +1009,7 @@ sub_811CD68: @ 811CD68
movs r1, 0
bl GetWordTaskArg
adds r5, r0, 0
- ldr r0, _0811CD90 @ =gUnknown_30030F0
+ ldr r0, _0811CD90 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -1020,7 +1020,7 @@ sub_811CD68: @ 811CD68
bl sub_811C718
b _0811CE3E
.align 2, 0
-_0811CD90: .4byte gUnknown_30030F0
+_0811CD90: .4byte gMain
_0811CD94: .4byte sub_811CF88
_0811CD98:
adds r4, r5, 0
@@ -1126,7 +1126,7 @@ sub_811CE4C: @ 811CE4C
ldrb r0, [r0]
cmp r0, 0
bne _0811CE88
- ldr r0, _0811CE80 @ =gUnknown_30030F0
+ ldr r0, _0811CE80 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -1138,7 +1138,7 @@ sub_811CE4C: @ 811CE4C
bl sub_811C718
b _0811CF7E
.align 2, 0
-_0811CE80: .4byte gUnknown_30030F0
+_0811CE80: .4byte gMain
_0811CE84: .4byte sub_811CF88
_0811CE88:
adds r0, r5, 0
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index f80eb5441..7eb81d847 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1489,7 +1489,7 @@ _0808C47E:
_0808C484:
ldrh r3, [r5, 0xA]
strh r3, [r5, 0xE]
- ldr r2, _0808C504 @ =gUnknown_30030F0
+ ldr r2, _0808C504 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -1552,7 +1552,7 @@ _0808C4CE:
bl AddTextPrinterParametrized
b _0808C69C
.align 2, 0
-_0808C504: .4byte gUnknown_30030F0
+_0808C504: .4byte gMain
_0808C508: .4byte gUnknown_83CDA20
_0808C50C:
movs r0, 0
@@ -1624,7 +1624,7 @@ _0808C598:
strh r0, [r5, 0x8]
b _0808C69C
_0808C5A6:
- ldr r0, _0808C5D0 @ =gUnknown_30030F0
+ ldr r0, _0808C5D0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r7, 0x3
adds r4, r7, 0
@@ -1645,7 +1645,7 @@ _0808C5A6:
str r0, [sp]
b _0808C664
.align 2, 0
-_0808C5D0: .4byte gUnknown_30030F0
+_0808C5D0: .4byte gMain
_0808C5D4: .4byte gUnknown_83CDA20
_0808C5D8:
movs r0, 0x40
@@ -1778,7 +1778,7 @@ _0808C6D4: .4byte gUnknown_3005090
thumb_func_start mapldr_0808C6D8
mapldr_0808C6D8: @ 808C6D8
push {r4,r5,lr}
- ldr r0, _0808C71C @ =gUnknown_30030F0
+ ldr r0, _0808C71C @ =gMain
ldr r5, [r0, 0xC]
movs r0, 0
bl SetVBlankCallback
@@ -1806,7 +1806,7 @@ mapldr_0808C6D8: @ 808C6D8
pop {r0}
bx r0
.align 2, 0
-_0808C71C: .4byte gUnknown_30030F0
+_0808C71C: .4byte gMain
_0808C720: .4byte c3_0808C39C
_0808C724: .4byte gUnknown_3005090
_0808C728: .4byte gUnknown_20397A8
@@ -2095,7 +2095,7 @@ sub_808C950: @ 808C950
thumb_func_start sub_808C95C
sub_808C95C: @ 808C95C
push {lr}
- ldr r0, _0808C974 @ =gUnknown_30030F0
+ ldr r0, _0808C974 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -2106,7 +2106,7 @@ sub_808C95C: @ 808C95C
movs r0, 0xC9
b _0808C9C0
.align 2, 0
-_0808C974: .4byte gUnknown_30030F0
+_0808C974: .4byte gMain
_0808C978:
movs r0, 0x1
ands r0, r1
@@ -2832,7 +2832,7 @@ sub_808CF10: @ 808CF10
adds r1, 0x10
movs r2, 0x8
bl sub_8096BE4
- ldr r1, _0808CF88 @ =gUnknown_30030E0
+ ldr r1, _0808CF88 @ =gKeyRepeatStartDelay
movs r0, 0x14
strh r0, [r1]
bl clear_scheduled_bg_copies_to_vram
@@ -2861,7 +2861,7 @@ sub_808CF10: @ 808CF10
.align 2, 0
_0808CF80: .4byte gUnknown_2021B46
_0808CF84: .4byte gUnknown_20397B0
-_0808CF88: .4byte gUnknown_30030E0
+_0808CF88: .4byte gKeyRepeatStartDelay
_0808CF8C: .4byte gUnknown_83CE6F8
_0808CF90: .4byte 0x000002c7
thumb_func_end sub_808CF10
@@ -3704,7 +3704,7 @@ _0808D6BC: .4byte gUnknown_20397B0
_0808D6C0: .4byte 0x000002ca
_0808D6C4: .4byte gUnknown_20397B4
_0808D6C8:
- ldr r0, _0808D6E4 @ =gUnknown_30030F0
+ ldr r0, _0808D6E4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -3718,7 +3718,7 @@ _0808D6DC:
strb r0, [r1]
b _0808D7B2
.align 2, 0
-_0808D6E4: .4byte gUnknown_30030F0
+_0808D6E4: .4byte gMain
_0808D6E8: .4byte gUnknown_20397B0
_0808D6EC:
movs r0, 0x1A
@@ -3739,7 +3739,7 @@ _0808D6FE:
.align 2, 0
_0808D70C: .4byte gUnknown_20397B0
_0808D710:
- ldr r0, _0808D728 @ =gUnknown_30030F0
+ ldr r0, _0808D728 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -3750,7 +3750,7 @@ _0808D710:
bl add_to_c3_somehow
b _0808D7B2
.align 2, 0
-_0808D728: .4byte gUnknown_30030F0
+_0808D728: .4byte gMain
_0808D72C: .4byte sub_808D2BC
_0808D730:
bl sub_80950D0
@@ -4253,7 +4253,7 @@ _0808DB5C:
.align 2, 0
_0808DB6C: .4byte gUnknown_20397B0
_0808DB70:
- ldr r0, _0808DB8C @ =gUnknown_30030F0
+ ldr r0, _0808DB8C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -4267,7 +4267,7 @@ _0808DB86:
pop {r0}
bx r0
.align 2, 0
-_0808DB8C: .4byte gUnknown_30030F0
+_0808DB8C: .4byte gMain
_0808DB90: .4byte sub_808D2BC
thumb_func_end sub_808D878
@@ -4457,7 +4457,7 @@ _0808DCF4:
.align 2, 0
_0808DD08: .4byte gUnknown_20397B0
_0808DD0C:
- ldr r0, _0808DD24 @ =gUnknown_30030F0
+ ldr r0, _0808DD24 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -4468,7 +4468,7 @@ _0808DD0C:
bl add_to_c3_somehow
b _0808DD7E
.align 2, 0
-_0808DD24: .4byte gUnknown_30030F0
+_0808DD24: .4byte gMain
_0808DD28: .4byte sub_808D2BC
_0808DD2C:
bl sub_8092BF8
@@ -4632,7 +4632,7 @@ _0808DE92:
.align 2, 0
_0808DE9C: .4byte sub_808D2BC
_0808DEA0:
- ldr r0, _0808DEC4 @ =gUnknown_30030F0
+ ldr r0, _0808DEC4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -4651,7 +4651,7 @@ _0808DEBA:
pop {r0}
bx r0
.align 2, 0
-_0808DEC4: .4byte gUnknown_30030F0
+_0808DEC4: .4byte gMain
_0808DEC8: .4byte gUnknown_20397B0
thumb_func_end sub_808DD88
@@ -4752,7 +4752,7 @@ _0808DF98:
movs r0, 0xA
b _0808E070
_0808DFA4:
- ldr r0, _0808DFB8 @ =gUnknown_30030F0
+ ldr r0, _0808DFB8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -4763,9 +4763,9 @@ _0808DFB2:
movs r0, 0xB
b _0808E070
.align 2, 0
-_0808DFB8: .4byte gUnknown_30030F0
+_0808DFB8: .4byte gMain
_0808DFBC:
- ldr r0, _0808DFE0 @ =gUnknown_30030F0
+ ldr r0, _0808DFE0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -4780,7 +4780,7 @@ _0808DFBC:
bl sub_80909F4
b _0808E074
.align 2, 0
-_0808DFE0: .4byte gUnknown_30030F0
+_0808DFE0: .4byte gMain
_0808DFE4: .4byte gUnknown_20397B4
_0808DFE8:
ldr r0, _0808DFF4 @ =gUnknown_20397B0
@@ -4809,7 +4809,7 @@ _0808E01C:
movs r0, 0xA
b _0808E070
_0808E020:
- ldr r0, _0808E030 @ =gUnknown_30030F0
+ ldr r0, _0808E030 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -4818,9 +4818,9 @@ _0808E020:
movs r0, 0x15
b _0808E070
.align 2, 0
-_0808E030: .4byte gUnknown_30030F0
+_0808E030: .4byte gMain
_0808E034:
- ldr r0, _0808E04C @ =gUnknown_30030F0
+ ldr r0, _0808E04C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -4830,7 +4830,7 @@ _0808E034:
bl sub_8091114
b _0808E074
.align 2, 0
-_0808E04C: .4byte gUnknown_30030F0
+_0808E04C: .4byte gMain
_0808E050:
bl sub_8091150
lsls r0, 24
@@ -4840,7 +4840,7 @@ _0808E050:
movs r0, 0x13
b _0808E070
_0808E062:
- ldr r0, _0808E080 @ =gUnknown_30030F0
+ ldr r0, _0808E080 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -4857,7 +4857,7 @@ _0808E074:
strb r0, [r1]
b _0808E0AE
.align 2, 0
-_0808E080: .4byte gUnknown_30030F0
+_0808E080: .4byte gMain
_0808E084: .4byte gUnknown_20397B0
_0808E088:
ldr r0, _0808E094 @ =gUnknown_20397B0
@@ -4868,7 +4868,7 @@ _0808E088:
.align 2, 0
_0808E094: .4byte gUnknown_20397B0
_0808E098:
- ldr r0, _0808E0B4 @ =gUnknown_30030F0
+ ldr r0, _0808E0B4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -4881,7 +4881,7 @@ _0808E0AE:
pop {r0}
bx r0
.align 2, 0
-_0808E0B4: .4byte gUnknown_30030F0
+_0808E0B4: .4byte gMain
_0808E0B8: .4byte sub_808D2BC
thumb_func_end sub_808DECC
@@ -5086,7 +5086,7 @@ _0808E250:
bl sub_808FBA4
b _0808E280
_0808E270:
- ldr r0, _0808E28C @ =gUnknown_30030F0
+ ldr r0, _0808E28C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -5102,7 +5102,7 @@ _0808E280:
strb r0, [r1]
b _0808E2A4
.align 2, 0
-_0808E28C: .4byte gUnknown_30030F0
+_0808E28C: .4byte gMain
_0808E290: .4byte gUnknown_20397B0
_0808E294:
bl IsDma3ManagerBusyWithBgCopy
@@ -5200,7 +5200,7 @@ _0808E340:
.align 2, 0
_0808E35C: .4byte gUnknown_20397B0
_0808E360:
- ldr r0, _0808E384 @ =gUnknown_30030F0
+ ldr r0, _0808E384 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -5215,7 +5215,7 @@ _0808E360:
strb r0, [r1]
b _0808E3BA
.align 2, 0
-_0808E384: .4byte gUnknown_30030F0
+_0808E384: .4byte gMain
_0808E388: .4byte gUnknown_20397B0
_0808E38C:
bl IsDma3ManagerBusyWithBgCopy
@@ -5228,7 +5228,7 @@ _0808E38C:
.align 2, 0
_0808E3A0: .4byte sub_808D2BC
_0808E3A4:
- ldr r0, _0808E3C0 @ =gUnknown_30030F0
+ ldr r0, _0808E3C0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -5242,7 +5242,7 @@ _0808E3BA:
pop {r0}
bx r0
.align 2, 0
-_0808E3C0: .4byte gUnknown_30030F0
+_0808E3C0: .4byte gMain
_0808E3C4: .4byte sub_808D2BC
thumb_func_end sub_808E2B0
@@ -5320,7 +5320,7 @@ _0808E450:
bl sub_808FBA4
b _0808E480
_0808E470:
- ldr r0, _0808E48C @ =gUnknown_30030F0
+ ldr r0, _0808E48C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -5336,7 +5336,7 @@ _0808E484:
strb r0, [r1]
b _0808E4A4
.align 2, 0
-_0808E48C: .4byte gUnknown_30030F0
+_0808E48C: .4byte gMain
_0808E490: .4byte gUnknown_20397B0
_0808E494:
bl IsDma3ManagerBusyWithBgCopy
@@ -5398,7 +5398,7 @@ _0808E512:
bl IsDma3ManagerBusyWithBgCopy
b _0808E534
_0808E518:
- ldr r0, _0808E52C @ =gUnknown_30030F0
+ ldr r0, _0808E52C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -5408,7 +5408,7 @@ _0808E518:
bl sub_80722CC
b _0808E53A
.align 2, 0
-_0808E52C: .4byte gUnknown_30030F0
+_0808E52C: .4byte gMain
_0808E530:
bl sub_80967C0
_0808E534:
@@ -5525,7 +5525,7 @@ _0808E60C:
strb r0, [r1]
b _0808E67C
_0808E61A:
- ldr r0, _0808E634 @ =gUnknown_30030F0
+ ldr r0, _0808E634 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -5538,7 +5538,7 @@ _0808E61A:
strb r0, [r1]
b _0808E67C
.align 2, 0
-_0808E634: .4byte gUnknown_30030F0
+_0808E634: .4byte gMain
_0808E638: .4byte gUnknown_20397B0
_0808E63C:
bl sub_8096088
@@ -5646,7 +5646,7 @@ _0808E6FE:
bne _0808E738
b _0808E71A
_0808E70A:
- ldr r0, _0808E724 @ =gUnknown_30030F0
+ ldr r0, _0808E724 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -5660,7 +5660,7 @@ _0808E71A:
strb r0, [r1]
b _0808E738
.align 2, 0
-_0808E724: .4byte gUnknown_30030F0
+_0808E724: .4byte gMain
_0808E728:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
@@ -6274,7 +6274,7 @@ _0808EC20:
.align 2, 0
_0808EC3C: .4byte gUnknown_20397B0
_0808EC40:
- ldr r0, _0808EC50 @ =gUnknown_30030F0
+ ldr r0, _0808EC50 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -6282,7 +6282,7 @@ _0808EC40:
beq _0808ECD0
b _0808EC72
.align 2, 0
-_0808EC50: .4byte gUnknown_30030F0
+_0808EC50: .4byte gMain
_0808EC54:
bl ProcessMenuInputNoWrap_
lsls r0, 24
@@ -6416,7 +6416,7 @@ _0808ED54:
.align 2, 0
_0808ED70: .4byte gUnknown_20397B0
_0808ED74:
- ldr r0, _0808ED84 @ =gUnknown_30030F0
+ ldr r0, _0808ED84 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -6424,7 +6424,7 @@ _0808ED74:
beq _0808EE04
b _0808EDA8
.align 2, 0
-_0808ED84: .4byte gUnknown_30030F0
+_0808ED84: .4byte gMain
_0808ED88:
bl ProcessMenuInputNoWrap_
lsls r0, 24
@@ -16968,7 +16968,7 @@ sub_8093FD4: @ 8093FD4
mov r9, r3
add r0, r9
strb r1, [r0]
- ldr r6, _08094070 @ =gUnknown_30030F0
+ ldr r6, _08094070 @ =gMain
ldrh r1, [r6, 0x30]
movs r0, 0x40
ands r0, r1
@@ -17015,7 +17015,7 @@ _08094060: .4byte gUnknown_20397B0
_08094064: .4byte 0x00000cce
_08094068: .4byte 0x00000ccf
_0809406C: .4byte 0x00000cd3
-_08094070: .4byte gUnknown_30030F0
+_08094070: .4byte gMain
_08094074:
movs r0, 0x20
ands r0, r1
@@ -17172,7 +17172,7 @@ _080941A0:
.align 2, 0
_080941AC: .4byte 0x000021ef
_080941B0:
- ldr r2, _080941C0 @ =gUnknown_30030F0
+ ldr r2, _080941C0 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -17181,9 +17181,9 @@ _080941B0:
movs r0, 0x13
b _08094232
.align 2, 0
-_080941C0: .4byte gUnknown_30030F0
+_080941C0: .4byte gMain
_080941C4:
- ldr r0, _080941E0 @ =gUnknown_300500C
+ ldr r0, _080941E0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
@@ -17197,7 +17197,7 @@ _080941C4:
movs r0, 0xA
b _08094232
.align 2, 0
-_080941E0: .4byte gUnknown_300500C
+_080941E0: .4byte gSaveBlock2Ptr
_080941E4:
movs r0, 0x80
lsls r0, 1
@@ -17256,7 +17256,7 @@ _08094232:
thumb_func_start sub_8094240
sub_8094240: @ 8094240
push {r4,lr}
- ldr r1, _08094270 @ =gUnknown_30030F0
+ ldr r1, _08094270 @ =gMain
ldrh r0, [r1, 0x2C]
movs r4, 0x1
ands r4, r0
@@ -17279,7 +17279,7 @@ sub_8094240: @ 8094240
subs r1, 0x6
b _080942DA
.align 2, 0
-_08094270: .4byte gUnknown_30030F0
+_08094270: .4byte gMain
_08094274: .4byte gUnknown_2039821
_08094278:
movs r0, 0x80
@@ -17410,7 +17410,7 @@ _08094374: .4byte 0x00000cb4
thumb_func_start sub_8094378
sub_8094378: @ 8094378
push {r4,lr}
- ldr r2, _0809439C @ =gUnknown_30030F0
+ ldr r2, _0809439C @ =gMain
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
@@ -17426,7 +17426,7 @@ sub_8094378: @ 8094378
subs r1, 0x6
b _08094402
.align 2, 0
-_0809439C: .4byte gUnknown_30030F0
+_0809439C: .4byte gMain
_080943A0: .4byte gUnknown_2039821
_080943A4:
movs r0, 0x80
@@ -17516,7 +17516,7 @@ _08094450:
movs r0, 0x18
b _08094484
_08094454:
- ldr r0, _08094470 @ =gUnknown_300500C
+ ldr r0, _08094470 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
@@ -17531,7 +17531,7 @@ _0809446A:
movs r0, 0xA
b _08094484
.align 2, 0
-_08094470: .4byte gUnknown_300500C
+_08094470: .4byte gSaveBlock2Ptr
_08094474:
movs r0, 0x80
lsls r0, 1
@@ -17576,7 +17576,7 @@ sub_809448C: @ 809448C
strb r1, [r0]
mov r8, r1
movs r7, 0
- ldr r1, _08094510 @ =gUnknown_30030F0
+ ldr r1, _08094510 @ =gMain
ldrh r3, [r1, 0x30]
movs r0, 0x40
ands r0, r3
@@ -17616,7 +17616,7 @@ _08094500: .4byte gUnknown_2039821
_08094504: .4byte gUnknown_20397B0
_08094508: .4byte 0x00000ccf
_0809450C: .4byte 0x00000cce
-_08094510: .4byte gUnknown_30030F0
+_08094510: .4byte gMain
_08094514:
movs r0, 0x20
ands r0, r3
@@ -17752,7 +17752,7 @@ _08094620:
movs r0, 0x12
b _080946A0
_08094624:
- ldr r2, _08094640 @ =gUnknown_30030F0
+ ldr r2, _08094640 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -17767,7 +17767,7 @@ _08094624:
movs r0, 0x13
b _080946A0
.align 2, 0
-_08094640: .4byte gUnknown_30030F0
+_08094640: .4byte gMain
_08094644: .4byte gUnknown_20397B0
_08094648:
movs r1, 0x1
@@ -17845,7 +17845,7 @@ sub_80946AC: @ 80946AC
ldr r5, _080946F4 @ =0x00000cd3
adds r0, r5
strb r1, [r0]
- ldr r1, _080946F8 @ =gUnknown_30030F0
+ ldr r1, _080946F8 @ =gMain
ldrh r2, [r1, 0x30]
movs r0, 0x40
ands r0, r2
@@ -17864,7 +17864,7 @@ _080946E8: .4byte gUnknown_20397B0
_080946EC: .4byte 0x00000ccf
_080946F0: .4byte 0x00000cce
_080946F4: .4byte 0x00000cd3
-_080946F8: .4byte gUnknown_30030F0
+_080946F8: .4byte gMain
_080946FC:
ldrh r2, [r1, 0x2C]
movs r0, 0x20
@@ -17875,7 +17875,7 @@ _080946FC:
ands r0, r2
cmp r0, 0
bne _08094736
- ldr r0, _08094728 @ =gUnknown_300500C
+ ldr r0, _08094728 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
@@ -17889,7 +17889,7 @@ _08094722:
movs r0, 0xA
b _0809479A
.align 2, 0
-_08094728: .4byte gUnknown_300500C
+_08094728: .4byte gSaveBlock2Ptr
_0809472C:
movs r0, 0x80
lsls r0, 1
@@ -17981,7 +17981,7 @@ sub_80947A0: @ 80947A0
ldr r5, _08094804 @ =0x00000cd3
adds r0, r5
strb r1, [r0]
- ldr r7, _08094808 @ =gUnknown_30030F0
+ ldr r7, _08094808 @ =gMain
ldrh r1, [r7, 0x30]
movs r0, 0x40
ands r0, r1
@@ -18005,7 +18005,7 @@ _080947F8: .4byte gUnknown_20397B0
_080947FC: .4byte 0x00000ccf
_08094800: .4byte 0x00000cce
_08094804: .4byte 0x00000cd3
-_08094808: .4byte gUnknown_30030F0
+_08094808: .4byte gMain
_0809480C:
movs r0, 0x20
ands r0, r1
@@ -19000,7 +19000,7 @@ sub_8094F94: @ 8094F94
push {r4,r5,lr}
movs r5, 0x2
negs r5, r5
- ldr r4, _08094FD0 @ =gUnknown_30030F0
+ ldr r4, _08094FD0 @ =gMain
ldrh r1, [r4, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -19026,7 +19026,7 @@ _08094FB6:
bl MoveMenuCursor
b _08094FF2
.align 2, 0
-_08094FD0: .4byte gUnknown_30030F0
+_08094FD0: .4byte gMain
_08094FD4:
movs r0, 0x80
ands r0, r1
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 2807c869b..f6e8dc3ad 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -367,13 +367,13 @@ _081347D8:
beq _08134810
cmp r4, 0x1
bne _08134830
- ldr r0, _08134808 @ =gUnknown_30030F0
+ ldr r0, _08134808 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _081347D0
- ldr r0, _0813480C @ =gUnknown_300500C
+ ldr r0, _0813480C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
@@ -382,16 +382,16 @@ _081347D8:
lsls r0, 1
b _0813482A
.align 2, 0
-_08134808: .4byte gUnknown_30030F0
-_0813480C: .4byte gUnknown_300500C
+_08134808: .4byte gMain
+_0813480C: .4byte gSaveBlock2Ptr
_08134810:
- ldr r0, _08134838 @ =gUnknown_30030F0
+ ldr r0, _08134838 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _081347D0
- ldr r0, _0813483C @ =gUnknown_300500C
+ ldr r0, _0813483C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
@@ -409,8 +409,8 @@ _08134832:
pop {r1}
bx r1
.align 2, 0
-_08134838: .4byte gUnknown_30030F0
-_0813483C: .4byte gUnknown_300500C
+_08134838: .4byte gMain
+_0813483C: .4byte gSaveBlock2Ptr
thumb_func_end sub_81347A4
thumb_func_start sub_8134840
@@ -631,7 +631,7 @@ _081349F8:
bne _08134A12
b _08134B9A
_08134A12:
- ldr r0, _08134A34 @ =gUnknown_30030F0
+ ldr r0, _08134A34 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -645,7 +645,7 @@ _08134A12:
.align 2, 0
_08134A2C: .4byte sub_8134BAC
_08134A30: .4byte sub_813B3F0
-_08134A34: .4byte gUnknown_30030F0
+_08134A34: .4byte gMain
_08134A38:
movs r0, 0x80
ands r0, r1
@@ -1285,7 +1285,7 @@ _08134FC4: .4byte 0x00003214
_08134FC8:
ldr r0, _08134FF0 @ =gUnknown_8419C39
bl sub_8136DA4
- ldr r0, _08134FF4 @ =gUnknown_30030F0
+ ldr r0, _08134FF4 @ =gMain
ldr r2, _08134FF8 @ =0x00000439
adds r0, r2
ldrb r1, [r0]
@@ -1302,7 +1302,7 @@ _08134FC8:
b _08135180
.align 2, 0
_08134FF0: .4byte gUnknown_8419C39
-_08134FF4: .4byte gUnknown_30030F0
+_08134FF4: .4byte gMain
_08134FF8: .4byte 0x00000439
_08134FFC: .4byte gUnknown_3003F64
_08135000: .4byte gUnknown_8419C92
@@ -6739,7 +6739,7 @@ _08137DB8: .4byte gUnknown_8419C82
_08137DBC:
ldr r0, _08137DDC @ =gUnknown_8419C39
bl sub_8136DA4
- ldr r0, _08137DE0 @ =gUnknown_30030F0
+ ldr r0, _08137DE0 @ =gMain
ldr r1, _08137DE4 @ =0x00000439
adds r0, r1
ldrb r1, [r0]
@@ -6752,7 +6752,7 @@ _08137DBC:
b _08137DF2
.align 2, 0
_08137DDC: .4byte gUnknown_8419C39
-_08137DE0: .4byte gUnknown_30030F0
+_08137DE0: .4byte gMain
_08137DE4: .4byte 0x00000439
_08137DE8: .4byte gUnknown_8419C92
_08137DEC:
@@ -7659,7 +7659,7 @@ _081384D0:
ldr r0, [r5]
ldr r1, _08138520 @ =0x0000304c
adds r0, r1
- ldr r1, _08138524 @ =gUnknown_300500C
+ ldr r1, _08138524 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
_081384E8:
@@ -7690,7 +7690,7 @@ _08138518:
.align 2, 0
_0813851C: .4byte 0x0000ffff
_08138520: .4byte 0x0000304c
-_08138524: .4byte gUnknown_300500C
+_08138524: .4byte gSaveBlock2Ptr
_08138528: .4byte gUnknown_203B140
_0813852C: .4byte 0x00003058
_08138530:
@@ -8699,7 +8699,7 @@ _08138D20:
bne _08138D2A
b _08139094
_08138D2A:
- ldr r0, _08138D78 @ =gUnknown_30030F0
+ ldr r0, _08138D78 @ =gMain
mov r9, r0
ldrh r1, [r0, 0x2E]
movs r0, 0x40
@@ -8741,7 +8741,7 @@ _08138D6E:
bne _08138D60
b _08139094
.align 2, 0
-_08138D78: .4byte gUnknown_30030F0
+_08138D78: .4byte gMain
_08138D7C: .4byte gUnknown_203B16D
_08138D80: .4byte 0x00003258
_08138D84:
@@ -9585,7 +9585,7 @@ _08139460: .4byte gUnknown_2037AB8
_08139464: .4byte gUnknown_203B140
_08139468: .4byte 0x00003288
_0813946C:
- ldr r0, _081394BC @ =gUnknown_30030F0
+ ldr r0, _081394BC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -9627,7 +9627,7 @@ _081394B0:
bne _081394A2
b _0813975A
.align 2, 0
-_081394BC: .4byte gUnknown_30030F0
+_081394BC: .4byte gMain
_081394C0: .4byte gUnknown_203B16D
_081394C4: .4byte 0x00003288
_081394C8: .4byte 0x00003258
diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s
index a3f7b45a1..a55c727c6 100644
--- a/asm/post_battle_event_funcs.s
+++ b/asm/post_battle_event_funcs.s
@@ -34,7 +34,7 @@ _080CA318:
bl GetGameStat
cmp r0, 0
bne _080CA33A
- ldr r0, _080CA3B4 @ =gUnknown_300500C
+ ldr r0, _080CA3B4 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrh r1, [r2, 0xE]
lsls r1, 16
@@ -100,7 +100,7 @@ _080CA39E:
bx r1
.align 2, 0
_080CA3B0: .4byte gUnknown_203AB44
-_080CA3B4: .4byte gUnknown_300500C
+_080CA3B4: .4byte gSaveBlock2Ptr
_080CA3B8: .4byte gUnknown_2024284
_080CA3BC: .4byte 0x0000083b
_080CA3C0: .4byte CB2_DoHallOfFameScreen
diff --git a/asm/quest_log.s b/asm/quest_log.s
index 594601af2..60cbf7350 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -8,7 +8,7 @@
thumb_func_start sub_8110840
sub_8110840: @ 8110840
push {lr}
- ldr r1, _08110888 @ =gUnknown_3005008
+ ldr r1, _08110888 @ =gSaveBlock1Ptr
ldr r1, [r1]
subs r1, r0
ldr r2, _0811088C @ =gUnknown_203AE04
@@ -48,7 +48,7 @@ _08110882:
pop {r0}
bx r0
.align 2, 0
-_08110888: .4byte gUnknown_3005008
+_08110888: .4byte gSaveBlock1Ptr
_0811088C: .4byte gUnknown_203AE04
_08110890: .4byte gUnknown_203ADFA
_08110894: .4byte gUnknown_203AE08
@@ -58,7 +58,7 @@ _08110898: .4byte gUnknown_203AE0C
thumb_func_start sub_811089C
sub_811089C: @ 811089C
push {lr}
- ldr r0, _081108D8 @ =gUnknown_3005008
+ ldr r0, _081108D8 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0x98
lsls r1, 5
@@ -84,7 +84,7 @@ sub_811089C: @ 811089C
pop {r0}
bx r0
.align 2, 0
-_081108D8: .4byte gUnknown_3005008
+_081108D8: .4byte gSaveBlock1Ptr
_081108DC: .4byte gUnknown_203ADF8
_081108E0: .4byte gUnknown_203ADFA
_081108E4: .4byte gUnknown_203AE8C
@@ -97,7 +97,7 @@ sub_81108F0: @ 81108F0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, _08110918 @ =gUnknown_3005008
+ ldr r1, _08110918 @ =gSaveBlock1Ptr
ldr r1, [r1]
movs r2, 0xCD
lsls r2, 3
@@ -114,7 +114,7 @@ sub_81108F0: @ 81108F0
pop {r0}
bx r0
.align 2, 0
-_08110918: .4byte gUnknown_3005008
+_08110918: .4byte gSaveBlock1Ptr
_0811091C: .4byte gUnknown_203AE04
thumb_func_end sub_81108F0
@@ -147,7 +147,7 @@ _08110940: .4byte gUnknown_203AE8C
sub_8110944: @ 8110944
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _08110978 @ =gUnknown_3005008
+ ldr r4, _08110978 @ =gSaveBlock1Ptr
ldr r0, _0811097C @ =gUnknown_203ADF8
ldrb r0, [r0]
movs r3, 0xCD
@@ -172,7 +172,7 @@ _08110972:
movs r0, 0
b _08110982
.align 2, 0
-_08110978: .4byte gUnknown_3005008
+_08110978: .4byte gSaveBlock1Ptr
_0811097C: .4byte gUnknown_203ADF8
_08110980:
movs r0, 0x1
@@ -186,7 +186,7 @@ _08110982:
sub_8110988: @ 8110988
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _081109BC @ =gUnknown_3005008
+ ldr r4, _081109BC @ =gSaveBlock1Ptr
ldr r0, _081109C0 @ =gUnknown_203ADF8
ldrb r0, [r0]
movs r3, 0xCD
@@ -211,7 +211,7 @@ _081109B6:
movs r0, 0
b _081109C6
.align 2, 0
-_081109BC: .4byte gUnknown_3005008
+_081109BC: .4byte gSaveBlock1Ptr
_081109C0: .4byte gUnknown_203ADF8
_081109C4:
movs r0, 0x1
@@ -354,7 +354,7 @@ _08110AC4: .4byte gUnknown_203ADFA
thumb_func_start sub_8110AC8
sub_8110AC8: @ 8110AC8
- ldr r0, _08110AE4 @ =gUnknown_3005008
+ ldr r0, _08110AE4 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _08110AE8 @ =gUnknown_203ADF8
ldrb r2, [r0]
@@ -368,7 +368,7 @@ sub_8110AC8: @ 8110AC8
ldrb r0, [r1]
bx lr
.align 2, 0
-_08110AE4: .4byte gUnknown_3005008
+_08110AE4: .4byte gSaveBlock1Ptr
_08110AE8: .4byte gUnknown_203ADF8
thumb_func_end sub_8110AC8
@@ -388,7 +388,7 @@ _08110AFE:
bl sub_81108F0
bl sub_8113B88
ldr r2, _08110B48 @ =gUnknown_203AE08
- ldr r1, _08110B4C @ =gUnknown_3005008
+ ldr r1, _08110B4C @ =gSaveBlock1Ptr
ldrb r0, [r4]
movs r3, 0xCD
lsls r3, 3
@@ -420,7 +420,7 @@ _08110B36:
.align 2, 0
_08110B44: .4byte gUnknown_203ADF8
_08110B48: .4byte gUnknown_203AE08
-_08110B4C: .4byte gUnknown_3005008
+_08110B4C: .4byte gSaveBlock1Ptr
_08110B50:
ldrb r0, [r4]
muls r0, r3
@@ -465,7 +465,7 @@ _08110BAC: .4byte gUnknown_203AE98
sub_8110BB0: @ 8110BB0
lsls r0, 24
lsrs r0, 24
- ldr r2, _08110BE4 @ =gUnknown_3005008
+ ldr r2, _08110BE4 @ =gSaveBlock1Ptr
movs r1, 0xCD
lsls r1, 3
muls r1, r0
@@ -489,7 +489,7 @@ sub_8110BB0: @ 8110BB0
strh r0, [r1, 0x6]
bx lr
.align 2, 0
-_08110BE4: .4byte gUnknown_3005008
+_08110BE4: .4byte gSaveBlock1Ptr
thumb_func_end sub_8110BB0
thumb_func_start sub_8110BE8
@@ -501,7 +501,7 @@ sub_8110BE8: @ 8110BE8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
- ldr r4, _08110C54 @ =gUnknown_3005008
+ ldr r4, _08110C54 @ =gSaveBlock1Ptr
movs r1, 0xCD
lsls r1, 3
muls r0, r1
@@ -548,7 +548,7 @@ _08110C1C:
strb r0, [r2]
b _08110C7C
.align 2, 0
-_08110C54: .4byte gUnknown_3005008
+_08110C54: .4byte gSaveBlock1Ptr
_08110C58: .4byte 0x0000046a
_08110C5C: .4byte 0x000008e4
_08110C60: .4byte 0x00000469
@@ -672,7 +672,7 @@ sub_8110D48: @ 8110D48
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
- ldr r4, _08110D90 @ =gUnknown_3005008
+ ldr r4, _08110D90 @ =gSaveBlock1Ptr
movs r1, 0xCD
lsls r1, 3
muls r1, r0
@@ -703,7 +703,7 @@ sub_8110D48: @ 8110D48
pop {r0}
bx r0
.align 2, 0
-_08110D90: .4byte gUnknown_3005008
+_08110D90: .4byte gSaveBlock1Ptr
thumb_func_end sub_8110D48
thumb_func_start sub_8110D94
@@ -715,7 +715,7 @@ sub_8110D94: @ 8110D94
push {r5-r7}
sub sp, 0xC
movs r4, 0
- ldr r0, _08110E14 @ =gUnknown_3005008
+ ldr r0, _08110E14 @ =gSaveBlock1Ptr
mov r10, r0
ldr r1, _08110E18 @ =0x0000063a
mov r9, r1
@@ -775,7 +775,7 @@ _08110DDE:
pop {r0}
bx r0
.align 2, 0
-_08110E14: .4byte gUnknown_3005008
+_08110E14: .4byte gSaveBlock1Ptr
_08110E18: .4byte 0x0000063a
_08110E1C: .4byte 0x000040aa
thumb_func_end sub_8110D94
@@ -784,7 +784,7 @@ _08110E1C: .4byte 0x000040aa
sub_8110E20: @ 8110E20
push {lr}
ldr r0, _08110E34 @ =0x000040ae
- ldr r1, _08110E38 @ =gUnknown_3005008
+ ldr r1, _08110E38 @ =gSaveBlock1Ptr
ldr r1, [r1]
ldrh r1, [r1, 0x32]
bl VarSet
@@ -792,7 +792,7 @@ sub_8110E20: @ 8110E20
bx r0
.align 2, 0
_08110E34: .4byte 0x000040ae
-_08110E38: .4byte gUnknown_3005008
+_08110E38: .4byte gSaveBlock1Ptr
thumb_func_end sub_8110E20
thumb_func_start sub_8110E3C
@@ -916,7 +916,7 @@ sub_8110F14: @ 8110F14
movs r0, 0
strb r0, [r1]
movs r2, 0
- ldr r0, _08110F70 @ =gUnknown_3005008
+ ldr r0, _08110F70 @ =gSaveBlock1Ptr
ldr r5, [r0]
movs r7, 0xCD
lsls r7, 3
@@ -953,7 +953,7 @@ _08110F48:
b _08110F84
.align 2, 0
_08110F6C: .4byte gUnknown_203ADF9
-_08110F70: .4byte gUnknown_3005008
+_08110F70: .4byte gSaveBlock1Ptr
_08110F74: .4byte gUnknown_3005ECC
_08110F78:
ldr r0, _08110F8C @ =sub_8056938
@@ -971,7 +971,7 @@ _08110F8C: .4byte sub_8056938
thumb_func_start sub_8110F90
sub_8110F90: @ 8110F90
push {lr}
- ldr r1, _08110FC0 @ =gUnknown_3005008
+ ldr r1, _08110FC0 @ =gSaveBlock1Ptr
ldr r2, [r1]
movs r3, 0
movs r0, 0x3
@@ -993,7 +993,7 @@ sub_8110F90: @ 8110F90
pop {r0}
bx r0
.align 2, 0
-_08110FC0: .4byte gUnknown_3005008
+_08110FC0: .4byte gSaveBlock1Ptr
_08110FC4: .4byte gUnknown_203ADF8
_08110FC8: .4byte gUnknown_2031DD8
thumb_func_end sub_8110F90
@@ -1189,7 +1189,7 @@ sub_8111150: @ 8111150
push {r5-r7}
lsls r0, 24
lsrs r0, 24
- ldr r2, _081111A8 @ =gUnknown_3005008
+ ldr r2, _081111A8 @ =gSaveBlock1Ptr
movs r1, 0xCD
lsls r1, 3
muls r0, r1
@@ -1227,7 +1227,7 @@ _08111180:
negs r0, r0
b _081111C4
.align 2, 0
-_081111A8: .4byte gUnknown_3005008
+_081111A8: .4byte gSaveBlock1Ptr
_081111AC: .4byte 0x000008e4
_081111B0: .4byte 0x00000469
_081111B4:
@@ -1335,7 +1335,7 @@ sub_8111274: @ 8111274
lsls r1, 24
cmp r1, 0
bne _081112D4
- ldr r3, _081112C8 @ =gUnknown_3005008
+ ldr r3, _081112C8 @ =gSaveBlock1Ptr
ldr r2, [r3]
movs r0, 0xCD
lsls r0, 3
@@ -1370,11 +1370,11 @@ sub_8111274: @ 8111274
strh r0, [r2, 0x2]
b _08111336
.align 2, 0
-_081112C8: .4byte gUnknown_3005008
+_081112C8: .4byte gSaveBlock1Ptr
_081112CC: .4byte 0x00001301
_081112D0: .4byte 0x00001304
_081112D4:
- ldr r0, _08111340 @ =gUnknown_3005008
+ ldr r0, _08111340 @ =gSaveBlock1Ptr
ldr r3, [r0]
movs r0, 0xCD
lsls r0, 3
@@ -1428,7 +1428,7 @@ _08111336:
pop {r0}
bx r0
.align 2, 0
-_08111340: .4byte gUnknown_3005008
+_08111340: .4byte gSaveBlock1Ptr
_08111344: .4byte 0x00001301
_08111348: .4byte 0xffffff00
_0811134C: .4byte 0x00001302
@@ -1494,7 +1494,7 @@ _081113E0: .4byte sub_805726C
thumb_func_start sub_81113E4
sub_81113E4: @ 81113E4
push {r4,r5,lr}
- ldr r4, _08111430 @ =gUnknown_3005008
+ ldr r4, _08111430 @ =gSaveBlock1Ptr
ldr r0, _08111434 @ =gUnknown_203ADF8
ldrb r1, [r0]
movs r0, 0xCD
@@ -1528,7 +1528,7 @@ sub_81113E4: @ 81113E4
pop {r0}
bx r0
.align 2, 0
-_08111430: .4byte gUnknown_3005008
+_08111430: .4byte gSaveBlock1Ptr
_08111434: .4byte gUnknown_203ADF8
thumb_func_end sub_81113E4
@@ -1845,7 +1845,7 @@ sub_8111688: @ 8111688
push {r7}
sub sp, 0x8
movs r5, 0
- ldr r0, _081116CC @ =gUnknown_3005008
+ ldr r0, _081116CC @ =gSaveBlock1Ptr
mov r8, r0
ldr r7, _081116D0 @ =0x0000063a
_08111698:
@@ -1876,7 +1876,7 @@ _081116B2:
strb r1, [r0]
b _081116E4
.align 2, 0
-_081116CC: .4byte gUnknown_3005008
+_081116CC: .4byte gSaveBlock1Ptr
_081116D0: .4byte 0x0000063a
_081116D4: .4byte 0x000040aa
_081116D8:
@@ -1913,7 +1913,7 @@ sub_8111708: @ 8111708
sub sp, 0x1C
ldr r0, _08111754 @ =0x000040ae
bl VarGet
- ldr r4, _08111758 @ =gUnknown_3005008
+ ldr r4, _08111758 @ =gSaveBlock1Ptr
ldr r1, [r4]
strh r0, [r1, 0x32]
lsls r0, 16
@@ -1947,7 +1947,7 @@ _0811174A:
bx r0
.align 2, 0
_08111754: .4byte 0x000040ae
-_08111758: .4byte gUnknown_3005008
+_08111758: .4byte gSaveBlock1Ptr
thumb_func_end sub_8111708
thumb_func_start sub_811175C
@@ -1978,7 +1978,7 @@ _08111780:
lsrs r7, r0, 16
cmp r7, 0x1F
bls _08111780
- ldr r1, _081117BC @ =gUnknown_3005008
+ ldr r1, _081117BC @ =gSaveBlock1Ptr
movs r0, 0xCD
lsls r0, 3
muls r0, r4
@@ -2002,7 +2002,7 @@ _081117AE:
mov pc, r0
.align 2, 0
_081117B8: .4byte gUnknown_203AE0C
-_081117BC: .4byte gUnknown_3005008
+_081117BC: .4byte gSaveBlock1Ptr
_081117C0: .4byte 0x00001868
_081117C4: .4byte 0x00000fff
_081117C8: .4byte _081117CC
@@ -2154,7 +2154,7 @@ sub_8111914: @ 8111914
lsrs r0, 24
cmp r0, 0x3
bhi _08111970
- ldr r0, _08111968 @ =gUnknown_3005008
+ ldr r0, _08111968 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r2, [r1]
movs r1, 0xCD
@@ -2176,7 +2176,7 @@ sub_8111914: @ 8111914
.align 2, 0
_08111960: .4byte gUnknown_2037AB8
_08111964: .4byte gUnknown_203ADF8
-_08111968: .4byte gUnknown_3005008
+_08111968: .4byte gSaveBlock1Ptr
_0811196C: .4byte gUnknown_203ADF9
_08111970:
ldr r1, _08111980 @ =gUnknown_3005E88
@@ -2584,7 +2584,7 @@ sub_8111C68: @ 8111C68
ands r4, r2
cmp r4, 0
bne _08111CC6
- ldr r0, _08111CA0 @ =gUnknown_30030F0
+ ldr r0, _08111CA0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r3, 0x1
ands r3, r1
@@ -2603,7 +2603,7 @@ sub_8111C68: @ 8111C68
b _08111CC6
.align 2, 0
_08111C9C: .4byte gUnknown_203AE94
-_08111CA0: .4byte gUnknown_30030F0
+_08111CA0: .4byte gMain
_08111CA4: .4byte gUnknown_3005E88
_08111CA8:
movs r0, 0x2
@@ -2872,7 +2872,7 @@ sub_8111E84: @ 8111E84
lsrs r0, 24
cmp r0, 0x3
bhi _08111EEE
- ldr r0, _08111F08 @ =gUnknown_3005008
+ ldr r0, _08111F08 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r2, [r3]
movs r1, 0xCD
@@ -2897,7 +2897,7 @@ _08111EBE:
lsrs r0, 24
cmp r0, 0x3
bhi _08111EEE
- ldr r0, _08111F08 @ =gUnknown_3005008
+ ldr r0, _08111F08 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r2, [r4]
movs r0, 0xCD
@@ -2922,7 +2922,7 @@ _08111EF8:
.align 2, 0
_08111F00: .4byte gUnknown_2037AB8
_08111F04: .4byte gUnknown_203ADF8
-_08111F08: .4byte gUnknown_3005008
+_08111F08: .4byte gSaveBlock1Ptr
_08111F0C: .4byte gUnknown_203AE98
_08111F10: .4byte gUnknown_3005E88
thumb_func_end sub_8111E84
@@ -3085,7 +3085,7 @@ sub_8112044: @ 8112044
lsls r1, 3
ldr r0, _0811208C @ =gUnknown_3005090
adds r4, r1, r0
- ldr r0, _08112090 @ =gUnknown_30030F0
+ ldr r0, _08112090 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -3114,7 +3114,7 @@ _08112076:
b _081120A4
.align 2, 0
_0811208C: .4byte gUnknown_3005090
-_08112090: .4byte gUnknown_30030F0
+_08112090: .4byte gMain
_08112094: .4byte gUnknown_203AE94
_08112098: .4byte sub_81120AC
_0811209C: .4byte gUnknown_203ADFA
@@ -3511,7 +3511,7 @@ _081123D6:
bls _081123DC
movs r4, 0
_081123DC:
- ldr r3, _0811244C @ =gUnknown_3005008
+ ldr r3, _0811244C @ =gSaveBlock1Ptr
ldr r0, [r3]
movs r2, 0xCD
lsls r2, 3
@@ -3564,7 +3564,7 @@ _0811240A:
bx r0
.align 2, 0
_08112448: .4byte gUnknown_203ADF8
-_0811244C: .4byte gUnknown_3005008
+_0811244C: .4byte gSaveBlock1Ptr
thumb_func_end sub_81123BC
thumb_func_start sub_8112450
@@ -5192,7 +5192,7 @@ sub_8113078: @ 8113078
adds r0, r4, 0
bl sub_81132E0
ldr r0, _081130A0 @ =0x00004039
- ldr r1, _081130A4 @ =gUnknown_300500C
+ ldr r1, _081130A4 @ =gSaveBlock2Ptr
ldr r1, [r1]
ldrh r1, [r1, 0xE]
bl VarSet
@@ -5202,7 +5202,7 @@ _08113098:
bx r0
.align 2, 0
_081130A0: .4byte 0x00004039
-_081130A4: .4byte gUnknown_300500C
+_081130A4: .4byte gSaveBlock2Ptr
thumb_func_end sub_8113078
thumb_func_start sub_81130A8
@@ -5231,7 +5231,7 @@ sub_81130BC: @ 81130BC
adds r0, r4, 0
bl sub_8113390
ldr r0, _08113108 @ =0x00004039
- ldr r1, _0811310C @ =gUnknown_300500C
+ ldr r1, _0811310C @ =gSaveBlock2Ptr
ldr r1, [r1]
ldrh r1, [r1, 0xE]
bl VarSet
@@ -5252,7 +5252,7 @@ _08113102:
bx r0
.align 2, 0
_08113108: .4byte 0x00004039
-_0811310C: .4byte gUnknown_300500C
+_0811310C: .4byte gSaveBlock2Ptr
_08113110: .4byte 0x00004073
thumb_func_end sub_81130BC
@@ -5517,7 +5517,7 @@ sub_81132E0: @ 81132E0
push {r4-r6,lr}
adds r4, r0, 0
movs r5, 0
- ldr r2, _081132F8 @ =gUnknown_300500C
+ ldr r2, _081132F8 @ =gSaveBlock2Ptr
ldr r0, [r2]
ldrh r1, [r0, 0xE]
ldr r0, _081132FC @ =0x000003e6
@@ -5526,7 +5526,7 @@ sub_81132E0: @ 81132E0
adds r6, r2, 0
b _08113338
.align 2, 0
-_081132F8: .4byte gUnknown_300500C
+_081132F8: .4byte gSaveBlock2Ptr
_081132FC: .4byte 0x000003e6
_08113300:
ldr r0, _08113354 @ =0x00004039
@@ -5659,7 +5659,7 @@ _081133F4:
_081133F6:
movs r3, 0x1
_081133F8:
- ldr r0, _0811340C @ =gUnknown_300500C
+ ldr r0, _0811340C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _08113410 @ =0x00000a98
adds r0, r1
@@ -5668,7 +5668,7 @@ _081133F8:
pop {r0}
bx r0
.align 2, 0
-_0811340C: .4byte gUnknown_300500C
+_0811340C: .4byte gSaveBlock2Ptr
_08113410: .4byte 0x00000a98
thumb_func_end sub_81133A4
@@ -5709,7 +5709,7 @@ _08113454: .4byte gUnknown_2021CD0
_08113458: .4byte gUnknown_84178DA
_0811345C:
ldr r0, _0811346C @ =gUnknown_2021CD0
- ldr r1, _08113470 @ =gUnknown_3005008
+ ldr r1, _08113470 @ =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, _08113474 @ =0x00003a4c
adds r1, r2
@@ -5717,7 +5717,7 @@ _0811345C:
b _081134B2
.align 2, 0
_0811346C: .4byte gUnknown_2021CD0
-_08113470: .4byte gUnknown_3005008
+_08113470: .4byte gSaveBlock1Ptr
_08113474: .4byte 0x00003a4c
_08113478:
ldr r4, _08113498 @ =gUnknown_2021CD0
@@ -6030,7 +6030,7 @@ _081136D0: .4byte gUnknown_203B048
thumb_func_start sub_81136D4
sub_81136D4: @ 81136D4
push {lr}
- ldr r0, _08113728 @ =gUnknown_3005008
+ ldr r0, _08113728 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r1, 0x4
ldrsb r1, [r2, r1]
@@ -6075,7 +6075,7 @@ _08113724:
movs r0, 0x1
b _08113742
.align 2, 0
-_08113728: .4byte gUnknown_3005008
+_08113728: .4byte gSaveBlock1Ptr
_0811372C: .4byte 0x0000090e
_08113730: .4byte 0x00002e01
_08113734: .4byte 0x00003a01
@@ -8112,7 +8112,7 @@ sub_811464C: @ 811464C
bl sub_8115834
adds r0, r5, 0
bl sub_8115834
- ldr r0, _08114700 @ =gUnknown_300500C
+ ldr r0, _08114700 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0
bl UnkTextUtil_SetPtrI
@@ -8146,7 +8146,7 @@ sub_811464C: @ 811464C
_081146F4: .4byte gUnknown_2021CD0
_081146F8: .4byte gUnknown_2021CF0
_081146FC: .4byte gUnknown_2021D04
-_08114700: .4byte gUnknown_300500C
+_08114700: .4byte gSaveBlock2Ptr
_08114704: .4byte gUnknown_8456AE4
_08114708: .4byte gUnknown_2021D18
_0811470C: .4byte gUnknown_841A4C6
@@ -9166,7 +9166,7 @@ _08114E84:
movs r0, 0x4
adds r1, r4, 0
bl UnkTextUtil_SetPtrI
- ldr r0, _08114F0C @ =gUnknown_300500C
+ ldr r0, _08114F0C @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0x5
bl UnkTextUtil_SetPtrI
@@ -9184,7 +9184,7 @@ _08114E84:
_08114F00: .4byte gUnknown_2021CD0
_08114F04: .4byte gUnknown_2021CF0
_08114F08: .4byte gUnknown_2021D04
-_08114F0C: .4byte gUnknown_300500C
+_08114F0C: .4byte gSaveBlock2Ptr
_08114F10: .4byte gUnknown_2021D18
_08114F14: .4byte gUnknown_841AA01
_08114F18:
@@ -9439,11 +9439,11 @@ _0811510C:
beq _08115194
b _081151AC
_08115112:
- ldr r0, _08115134 @ =gUnknown_300500C
+ ldr r0, _08115134 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0
bl UnkTextUtil_SetPtrI
- ldr r0, _08115138 @ =gUnknown_3005008
+ ldr r0, _08115138 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _0811513C @ =0x00003a4c
adds r1, r0
@@ -9454,13 +9454,13 @@ _08115112:
bl UnkTextUtil_StringExpandPlaceholders
b _081151AC
.align 2, 0
-_08115134: .4byte gUnknown_300500C
-_08115138: .4byte gUnknown_3005008
+_08115134: .4byte gSaveBlock2Ptr
+_08115138: .4byte gSaveBlock1Ptr
_0811513C: .4byte 0x00003a4c
_08115140: .4byte gUnknown_2021D18
_08115144: .4byte gUnknown_841A2E1
_08115148:
- ldr r0, _08115180 @ =gUnknown_3005008
+ ldr r0, _08115180 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _08115184 @ =0x00003a4c
adds r1, r0
@@ -9470,7 +9470,7 @@ _08115148:
movs r1, 0
movs r2, 0x1
bl sub_8113EAC
- ldr r0, _08115188 @ =gUnknown_300500C
+ ldr r0, _08115188 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0x2
bl UnkTextUtil_SetPtrI
@@ -9483,9 +9483,9 @@ _08115148:
bl UnkTextUtil_StringExpandPlaceholders
b _081151AC
.align 2, 0
-_08115180: .4byte gUnknown_3005008
+_08115180: .4byte gSaveBlock1Ptr
_08115184: .4byte 0x00003a4c
-_08115188: .4byte gUnknown_300500C
+_08115188: .4byte gSaveBlock2Ptr
_0811518C: .4byte gUnknown_2021D18
_08115190: .4byte gUnknown_841A312
_08115194:
@@ -10062,7 +10062,7 @@ sub_81155E0: @ 81155E0
ldrb r0, [r7, 0x1]
cmp r0, 0
bne _08115690
- ldr r0, _08115640 @ =gUnknown_300500C
+ ldr r0, _08115640 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0
bl UnkTextUtil_SetPtrI
@@ -10083,7 +10083,7 @@ sub_81155E0: @ 81155E0
b _08115670
.align 2, 0
_0811563C: .4byte gUnknown_2021CD0
-_08115640: .4byte gUnknown_300500C
+_08115640: .4byte gSaveBlock2Ptr
_08115644: .4byte gUnknown_841A8D4
_08115648:
ldr r4, _0811567C @ =gUnknown_2021CF0
diff --git a/asm/region_map.s b/asm/region_map.s
index d8962e7d5..4567e2bf7 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -1232,14 +1232,14 @@ _080C0838:
ldr r0, [r0]
cmp r0, 0
bne _080C0878
- ldr r0, _080C0874 @ =gUnknown_30030F0
+ ldr r0, _080C0874 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
b _080C087C
.align 2, 0
_080C086C: .4byte gUnknown_20399D4
_080C0870: .4byte 0x000047bc
-_080C0874: .4byte gUnknown_30030F0
+_080C0874: .4byte gMain
_080C0878:
bl SetMainCallback2
_080C087C:
@@ -2765,7 +2765,7 @@ sub_80C1478: @ 80C1478
ands r0, r2
orrs r0, r1
str r0, [sp, 0x4]
- ldr r0, _080C1598 @ =gUnknown_30030F0
+ ldr r0, _080C1598 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -2786,7 +2786,7 @@ sub_80C1478: @ 80C1478
strb r0, [r1]
movs r6, 0x1
_080C150E:
- ldr r0, _080C1598 @ =gUnknown_30030F0
+ ldr r0, _080C1598 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -2812,7 +2812,7 @@ _080C150E:
strb r0, [r1]
movs r6, 0x1
_080C1542:
- ldr r2, _080C1598 @ =gUnknown_30030F0
+ ldr r2, _080C1598 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2846,7 +2846,7 @@ _080C1588: .4byte 0x00001cd6
_080C158C: .4byte 0x0000ffff
_080C1590: .4byte 0x00001cd8
_080C1594: .4byte 0x00001cda
-_080C1598: .4byte gUnknown_30030F0
+_080C1598: .4byte gMain
_080C159C: .4byte 0x00001ccc
_080C15A0: .4byte 0x00001cdc
_080C15A4: .4byte 0x00001ccb
@@ -3824,7 +3824,7 @@ _080C1D94: .4byte 0x00003d4e
_080C1D98: .4byte gUnknown_20399DC
_080C1D9C: .4byte 0x00003d4c
_080C1DA0:
- ldr r0, _080C1DE0 @ =gUnknown_30030F0
+ ldr r0, _080C1DE0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -3859,7 +3859,7 @@ _080C1DD8:
strb r0, [r1]
b _080C1DFE
.align 2, 0
-_080C1DE0: .4byte gUnknown_30030F0
+_080C1DE0: .4byte gMain
_080C1DE4: .4byte gUnknown_20399DC
_080C1DE8: .4byte 0x00003d48
_080C1DEC: .4byte 0x00003d49
@@ -6296,7 +6296,7 @@ sub_80C31C0: @ 80C31C0
ldr r4, [r3]
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
- ldr r2, _080C327C @ =gUnknown_30030F0
+ ldr r2, _080C327C @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x40
ands r0, r1
@@ -6385,7 +6385,7 @@ _080C3254:
b _080C331A
.align 2, 0
_080C3278: .4byte gUnknown_20399E4
-_080C327C: .4byte gUnknown_30030F0
+_080C327C: .4byte gMain
_080C3280: .4byte 0x0000fffe
_080C3284: .4byte 0x000d0015
_080C3288: .4byte 0x000b0015
@@ -7384,7 +7384,7 @@ _080C3AFC: .4byte gUnknown_20399E4
thumb_func_start sub_80C3B00
sub_80C3B00: @ 80C3B00
push {lr}
- ldr r0, _080C3B24 @ =gUnknown_3005008
+ ldr r0, _080C3B24 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -7400,7 +7400,7 @@ sub_80C3B00: @ 80C3B00
pop {r1}
bx r1
.align 2, 0
-_080C3B24: .4byte gUnknown_3005008
+_080C3B24: .4byte gSaveBlock1Ptr
thumb_func_end sub_80C3B00
thumb_func_start sub_80C3B28
@@ -7410,7 +7410,7 @@ sub_80C3B28: @ 80C3B28
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _080C3B58 @ =gUnknown_3005008
+ ldr r0, _080C3B58 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -7429,7 +7429,7 @@ sub_80C3B28: @ 80C3B28
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C3B58: .4byte gUnknown_3005008
+_080C3B58: .4byte gSaveBlock1Ptr
_080C3B5C: .4byte _080C3B60
.align 2, 0
_080C3B60:
@@ -7452,7 +7452,7 @@ _080C3B84:
ldrh r1, [r0]
ldrh r0, [r0, 0x4]
mov r8, r0
- ldr r0, _080C3BA8 @ =gUnknown_3005008
+ ldr r0, _080C3BA8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r4, [r0]
ldrh r5, [r0, 0x2]
@@ -7460,9 +7460,9 @@ _080C3B84:
.align 2, 0
_080C3BA0: .4byte gUnknown_20399E4
_080C3BA4: .4byte gUnknown_2036DFC
-_080C3BA8: .4byte gUnknown_3005008
+_080C3BA8: .4byte gSaveBlock1Ptr
_080C3BAC:
- ldr r4, _080C3BE8 @ =gUnknown_3005008
+ ldr r4, _080C3BE8 @ =gSaveBlock1Ptr
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x24
@@ -7492,10 +7492,10 @@ _080C3BAC:
ldrh r5, [r0, 0x2A]
b _080C3C9A
.align 2, 0
-_080C3BE8: .4byte gUnknown_3005008
+_080C3BE8: .4byte gSaveBlock1Ptr
_080C3BEC: .4byte gUnknown_20399E4
_080C3BF0:
- ldr r4, _080C3C24 @ =gUnknown_3005008
+ ldr r4, _080C3C24 @ =gSaveBlock1Ptr
ldr r1, [r4]
movs r0, 0x14
ldrsb r0, [r1, r0]
@@ -7521,7 +7521,7 @@ _080C3BF0:
ldrh r5, [r0, 0x1A]
b _080C3C9A
.align 2, 0
-_080C3C24: .4byte gUnknown_3005008
+_080C3C24: .4byte gSaveBlock1Ptr
_080C3C28: .4byte gUnknown_20399E4
_080C3C2C:
ldr r4, _080C3C5C @ =gUnknown_20399E4
@@ -7531,7 +7531,7 @@ _080C3C2C:
strh r1, [r0, 0x14]
cmp r1, 0xC4
beq _080C3C68
- ldr r0, _080C3C64 @ =gUnknown_3005008
+ ldr r0, _080C3C64 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x24
@@ -7549,9 +7549,9 @@ _080C3C2C:
.align 2, 0
_080C3C5C: .4byte gUnknown_20399E4
_080C3C60: .4byte gUnknown_2036DFC
-_080C3C64: .4byte gUnknown_3005008
+_080C3C64: .4byte gSaveBlock1Ptr
_080C3C68:
- ldr r0, _080C3D30 @ =gUnknown_3005008
+ ldr r0, _080C3D30 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0x14
@@ -7652,7 +7652,7 @@ _080C3D06:
pop {r0}
bx r0
.align 2, 0
-_080C3D30: .4byte gUnknown_3005008
+_080C3D30: .4byte gSaveBlock1Ptr
_080C3D34: .4byte gUnknown_20399E4
_080C3D38: .4byte gUnknown_83F2178
_080C3D3C: .4byte gUnknown_83F1E60
@@ -7845,7 +7845,7 @@ _080C3F50:
strh r2, [r1]
movs r0, 0x7
strh r0, [r1, 0x2]
- ldr r0, _080C3F74 @ =gUnknown_3005008
+ ldr r0, _080C3F74 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
lsls r0, 24
@@ -7857,7 +7857,7 @@ _080C3F6C:
b _080C40B6
.align 2, 0
_080C3F70: .4byte gUnknown_20399E4
-_080C3F74: .4byte gUnknown_3005008
+_080C3F74: .4byte gSaveBlock1Ptr
_080C3F78:
ldr r0, _080C3F9C @ =gUnknown_20399E4
ldr r1, [r0]
@@ -7865,7 +7865,7 @@ _080C3F78:
strh r0, [r1]
movs r2, 0x6
strh r2, [r1, 0x2]
- ldr r0, _080C3FA0 @ =gUnknown_3005008
+ ldr r0, _080C3FA0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
lsls r0, 24
@@ -7879,7 +7879,7 @@ _080C3F94:
b _080C4136
.align 2, 0
_080C3F9C: .4byte gUnknown_20399E4
-_080C3FA0: .4byte gUnknown_3005008
+_080C3FA0: .4byte gSaveBlock1Ptr
_080C3FA4:
ldr r0, _080C3FAC @ =gUnknown_20399E4
ldr r1, [r0]
@@ -7962,7 +7962,7 @@ _080C4028:
.align 2, 0
_080C4030: .4byte gUnknown_20399E4
_080C4034:
- ldr r0, _080C404C @ =gUnknown_3005008
+ ldr r0, _080C404C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
lsls r0, 24
@@ -7974,7 +7974,7 @@ _080C4034:
movs r0, 0x4
b _080C40D8
.align 2, 0
-_080C404C: .4byte gUnknown_3005008
+_080C404C: .4byte gSaveBlock1Ptr
_080C4050: .4byte gUnknown_20399E4
_080C4054:
cmp r0, 0x3
@@ -7986,7 +7986,7 @@ _080C4054:
.align 2, 0
_080C4060: .4byte gUnknown_20399E4
_080C4064:
- ldr r0, _080C4080 @ =gUnknown_3005008
+ ldr r0, _080C4080 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
lsls r0, 24
@@ -8002,7 +8002,7 @@ _080C4078:
strh r0, [r1, 0x2]
b _080C4136
.align 2, 0
-_080C4080: .4byte gUnknown_3005008
+_080C4080: .4byte gSaveBlock1Ptr
_080C4084: .4byte gUnknown_20399E4
_080C4088:
cmp r0, 0x28
@@ -8018,7 +8018,7 @@ _080C4092:
.align 2, 0
_080C409C: .4byte gUnknown_20399E4
_080C40A0:
- ldr r0, _080C40BC @ =gUnknown_3005008
+ ldr r0, _080C40BC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
lsls r0, 24
@@ -8035,10 +8035,10 @@ _080C40B6:
strh r0, [r1, 0x2]
b _080C4136
.align 2, 0
-_080C40BC: .4byte gUnknown_3005008
+_080C40BC: .4byte gSaveBlock1Ptr
_080C40C0: .4byte gUnknown_20399E4
_080C40C4:
- ldr r0, _080C40E0 @ =gUnknown_3005008
+ ldr r0, _080C40E0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
lsls r0, 24
@@ -8054,10 +8054,10 @@ _080C40D8:
strh r0, [r1, 0x2]
b _080C4136
.align 2, 0
-_080C40E0: .4byte gUnknown_3005008
+_080C40E0: .4byte gSaveBlock1Ptr
_080C40E4: .4byte gUnknown_20399E4
_080C40E8:
- ldr r0, _080C4100 @ =gUnknown_3005008
+ ldr r0, _080C4100 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
lsls r0, 24
@@ -8069,10 +8069,10 @@ _080C40E8:
movs r0, 0xD
b _080C411C
.align 2, 0
-_080C4100: .4byte gUnknown_3005008
+_080C4100: .4byte gSaveBlock1Ptr
_080C4104: .4byte gUnknown_20399E4
_080C4108:
- ldr r0, _080C4124 @ =gUnknown_3005008
+ ldr r0, _080C4124 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
lsls r0, 24
@@ -8088,7 +8088,7 @@ _080C411C:
strh r0, [r1, 0x2]
b _080C4136
.align 2, 0
-_080C4124: .4byte gUnknown_3005008
+_080C4124: .4byte gSaveBlock1Ptr
_080C4128: .4byte gUnknown_20399E4
_080C412C:
bl sub_80C3B28
@@ -8199,7 +8199,7 @@ sub_80C41D8: @ 80C41D8
bl AllocZeroed
adds r1, r0, 0
str r1, [r4]
- ldr r0, _080C4208 @ =gUnknown_300500C
+ ldr r0, _080C4208 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0x1
@@ -8210,7 +8210,7 @@ sub_80C41D8: @ 80C41D8
b _080C4218
.align 2, 0
_080C4204: .4byte gUnknown_20399E8
-_080C4208: .4byte gUnknown_300500C
+_080C4208: .4byte gSaveBlock2Ptr
_080C420C: .4byte gUnknown_83EF59C
_080C4210:
ldr r0, _080C423C @ =gUnknown_83EF524
@@ -8281,7 +8281,7 @@ sub_80C4244: @ 80C4244
mov r0, sp
movs r2, 0x18
bl memcpy
- ldr r0, _080C4318 @ =gUnknown_300500C
+ ldr r0, _080C4318 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0x1
@@ -8334,7 +8334,7 @@ _080C4308: .4byte gUnknown_83F1C54
_080C430C: .4byte gUnknown_83F1C64
_080C4310: .4byte gUnknown_8231CFC
_080C4314: .4byte nullsub_8
-_080C4318: .4byte gUnknown_300500C
+_080C4318: .4byte gSaveBlock2Ptr
_080C431C: .4byte gUnknown_83EF29C
_080C4320: .4byte gUnknown_202063C
thumb_func_end sub_80C4244
@@ -9669,7 +9669,7 @@ sub_80C4D40: @ 80C4D40
bne _080C4D70
cmp r1, 0x5E
bne _080C4D70
- ldr r0, _080C4D6C @ =gUnknown_3005008
+ ldr r0, _080C4D6C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -9682,7 +9682,7 @@ sub_80C4D40: @ 80C4D40
b _080C4D72
.align 2, 0
_080C4D68: .4byte gUnknown_20399D4
-_080C4D6C: .4byte gUnknown_3005008
+_080C4D6C: .4byte gSaveBlock1Ptr
_080C4D70:
movs r0, 0
_080C4D72:
@@ -10134,7 +10134,7 @@ _080C5114:
lsrs r4, r0, 24
cmp r4, 0x1
bne _080C51DC
- ldr r0, _080C514C @ =gUnknown_3005008
+ ldr r0, _080C514C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -10156,7 +10156,7 @@ _080C5140:
ldr r1, [r2]
b _080C51AA
.align 2, 0
-_080C514C: .4byte gUnknown_3005008
+_080C514C: .4byte gSaveBlock1Ptr
_080C5150: .4byte gUnknown_20399FC
_080C5154:
movs r0, 0x1
diff --git a/asm/reset_save_heap.s b/asm/reset_save_heap.s
index 9d07f4897..ef96d8e6d 100644
--- a/asm/reset_save_heap.s
+++ b/asm/reset_save_heap.s
@@ -18,7 +18,7 @@ sub_8079B7C: @ 8079B7C
movs r1, 0x80
bl ClearGpuRegBits
strh r4, [r5]
- ldr r1, _08079BF0 @ =gUnknown_30030F0
+ ldr r1, _08079BF0 @ =gMain
ldr r0, _08079BF4 @ =0x00000439
adds r1, r0
ldrb r2, [r1]
@@ -40,7 +40,7 @@ sub_8079B7C: @ 8079B7C
_08079BC4:
bl Sav2_ClearSetDefault
_08079BC8:
- ldr r0, _08079BFC @ =gUnknown_300500C
+ ldr r0, _08079BFC @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x15]
lsls r0, 31
@@ -57,10 +57,10 @@ _08079BC8:
bx r0
.align 2, 0
_08079BEC: .4byte 0x04000208
-_08079BF0: .4byte gUnknown_30030F0
+_08079BF0: .4byte gMain
_08079BF4: .4byte 0x00000439
_08079BF8: .4byte gUnknown_30053A0
-_08079BFC: .4byte gUnknown_300500C
+_08079BFC: .4byte gSaveBlock2Ptr
_08079C00: .4byte gHeap
_08079C04: .4byte sub_8056938
thumb_func_end sub_8079B7C
diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s
index 9142cc142..5244f3cb0 100644
--- a/asm/reshow_battle_screen.s
+++ b/asm/reshow_battle_screen.s
@@ -502,13 +502,13 @@ _08077BA6:
beq _08077BC8
cmp r4, 0
bne _08077BC8
- ldr r0, _08077BC4 @ =gUnknown_300500C
+ ldr r0, _08077BC4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
b _08077BDA
.align 2, 0
_08077BC0: .4byte gUnknown_2022B4C
-_08077BC4: .4byte gUnknown_300500C
+_08077BC4: .4byte gSaveBlock2Ptr
_08077BC8:
ldr r0, [r0]
movs r1, 0x80
@@ -748,7 +748,7 @@ _08077DAC:
beq _08077E10
cmp r7, 0
bne _08077E10
- ldr r5, _08077E04 @ =gUnknown_300500C
+ ldr r5, _08077E04 @ =gSaveBlock2Ptr
ldr r0, [r5]
ldrb r4, [r0, 0x8]
movs r0, 0
@@ -781,7 +781,7 @@ _08077DAC:
b _08077E54
.align 2, 0
_08077E00: .4byte gUnknown_2022B4C
-_08077E04: .4byte gUnknown_300500C
+_08077E04: .4byte gSaveBlock2Ptr
_08077E08: .4byte gUnknown_20244DC
_08077E0C: .4byte gUnknown_8239F8C
_08077E10:
diff --git a/asm/roamer.s b/asm/roamer.s
index 8e7d2bc28..6e4d2f32e 100644
--- a/asm/roamer.s
+++ b/asm/roamer.s
@@ -8,7 +8,7 @@
thumb_func_start sub_8141C54
sub_8141C54: @ 8141C54
push {lr}
- ldr r0, _08141C84 @ =gUnknown_3005008
+ ldr r0, _08141C84 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08141C88 @ =0x000030d0
adds r0, r1
@@ -32,7 +32,7 @@ _08141C74:
pop {r0}
bx r0
.align 2, 0
-_08141C84: .4byte gUnknown_3005008
+_08141C84: .4byte gSaveBlock1Ptr
_08141C88: .4byte 0x000030d0
_08141C8C: .4byte gUnknown_203F3AE
_08141C90: .4byte gUnknown_203F3A8
@@ -70,7 +70,7 @@ _08141CBA:
movs r2, 0x32
movs r3, 0x20
bl CreateMon
- ldr r5, _08141D8C @ =gUnknown_3005008
+ ldr r5, _08141D8C @ =gSaveBlock1Ptr
ldr r1, [r5]
ldr r4, _08141D90 @ =0x000030d0
adds r1, r4
@@ -154,7 +154,7 @@ _08141CBA:
pop {r0}
bx r0
.align 2, 0
-_08141D8C: .4byte gUnknown_3005008
+_08141D8C: .4byte gSaveBlock1Ptr
_08141D90: .4byte 0x000030d0
_08141D94: .4byte gUnknown_203F3AE
_08141D98: .4byte gUnknown_8466C58
@@ -180,7 +180,7 @@ UpdateLocationHistoryForRoamer: @ 8141DAC
strb r1, [r0, 0x2]
ldrb r1, [r0, 0x1]
strb r1, [r0, 0x3]
- ldr r1, _08141DD0 @ =gUnknown_3005008
+ ldr r1, _08141DD0 @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x4]
strb r1, [r0]
@@ -189,13 +189,13 @@ UpdateLocationHistoryForRoamer: @ 8141DAC
bx lr
.align 2, 0
_08141DCC: .4byte gUnknown_203F3A8
-_08141DD0: .4byte gUnknown_3005008
+_08141DD0: .4byte gSaveBlock1Ptr
thumb_func_end UpdateLocationHistoryForRoamer
thumb_func_start RoamerMoveToOtherLocationSet
RoamerMoveToOtherLocationSet: @ 8141DD4
push {r4,r5,lr}
- ldr r0, _08141E18 @ =gUnknown_3005008
+ ldr r0, _08141E18 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08141E1C @ =0x000030d0
adds r0, r1
@@ -228,7 +228,7 @@ _08141E10:
pop {r0}
bx r0
.align 2, 0
-_08141E18: .4byte gUnknown_3005008
+_08141E18: .4byte gSaveBlock1Ptr
_08141E1C: .4byte 0x000030d0
_08141E20: .4byte gUnknown_203F3AE
_08141E24: .4byte gUnknown_8466C58
@@ -248,7 +248,7 @@ RoamerMove: @ 8141E28
bl RoamerMoveToOtherLocationSet
b _08141EB2
_08141E42:
- ldr r0, _08141E94 @ =gUnknown_3005008
+ ldr r0, _08141E94 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08141E98 @ =0x000030d0
adds r0, r1
@@ -291,7 +291,7 @@ _08141E8C:
strb r1, [r7, 0x1]
b _08141EB2
.align 2, 0
-_08141E94: .4byte gUnknown_3005008
+_08141E94: .4byte gSaveBlock1Ptr
_08141E98: .4byte 0x000030d0
_08141E9C: .4byte gUnknown_203F3AE
_08141EA0: .4byte gUnknown_8466C58
@@ -315,7 +315,7 @@ IsRoamerAt: @ 8141EB8
lsrs r2, r0, 24
lsls r1, 24
lsrs r1, 24
- ldr r0, _08141EE4 @ =gUnknown_3005008
+ ldr r0, _08141EE4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r3, _08141EE8 @ =0x000030d0
adds r0, r3
@@ -332,7 +332,7 @@ IsRoamerAt: @ 8141EB8
movs r0, 0x1
b _08141EF2
.align 2, 0
-_08141EE4: .4byte gUnknown_3005008
+_08141EE4: .4byte gSaveBlock1Ptr
_08141EE8: .4byte 0x000030d0
_08141EEC: .4byte gUnknown_203F3AE
_08141EF0:
@@ -348,7 +348,7 @@ CreateRoamerMonInstance: @ 8141EF8
sub sp, 0x4
ldr r5, _08141F84 @ =gUnknown_202402C
bl ZeroEnemyPartyMons
- ldr r4, _08141F88 @ =gUnknown_3005008
+ ldr r4, _08141F88 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r1, _08141F8C @ =0x000030d0
adds r0, r1
@@ -407,7 +407,7 @@ CreateRoamerMonInstance: @ 8141EF8
bx r0
.align 2, 0
_08141F84: .4byte gUnknown_202402C
-_08141F88: .4byte gUnknown_3005008
+_08141F88: .4byte gSaveBlock1Ptr
_08141F8C: .4byte 0x000030d0
_08141F90: .4byte 0x000030dd
_08141F94: .4byte 0x000030da
@@ -421,7 +421,7 @@ _08141FA8: .4byte 0x000030e2
thumb_func_start TryStartRoamerEncounter
TryStartRoamerEncounter: @ 8141FAC
push {lr}
- ldr r0, _08141FDC @ =gUnknown_3005008
+ ldr r0, _08141FDC @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x4]
ldrb r1, [r1, 0x5]
@@ -441,7 +441,7 @@ TryStartRoamerEncounter: @ 8141FAC
movs r0, 0x1
b _08141FE2
.align 2, 0
-_08141FDC: .4byte gUnknown_3005008
+_08141FDC: .4byte gSaveBlock1Ptr
_08141FE0:
movs r0, 0
_08141FE2:
@@ -455,7 +455,7 @@ UpdateRoamerHPStatus: @ 8141FE8
adds r6, r0, 0
movs r1, 0x39
bl GetMonData
- ldr r5, _08142014 @ =gUnknown_3005008
+ ldr r5, _08142014 @ =gSaveBlock1Ptr
ldr r1, [r5]
ldr r4, _08142018 @ =0x000030d0
adds r1, r4
@@ -471,13 +471,13 @@ UpdateRoamerHPStatus: @ 8141FE8
pop {r0}
bx r0
.align 2, 0
-_08142014: .4byte gUnknown_3005008
+_08142014: .4byte gSaveBlock1Ptr
_08142018: .4byte 0x000030d0
thumb_func_end UpdateRoamerHPStatus
thumb_func_start SetRoamerInactive
SetRoamerInactive: @ 814201C
- ldr r0, _0814202C @ =gUnknown_3005008
+ ldr r0, _0814202C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08142030 @ =0x000030d0
adds r0, r1
@@ -485,7 +485,7 @@ SetRoamerInactive: @ 814201C
strb r1, [r0, 0x13]
bx lr
.align 2, 0
-_0814202C: .4byte gUnknown_3005008
+_0814202C: .4byte gSaveBlock1Ptr
_08142030: .4byte 0x000030d0
thumb_func_end SetRoamerInactive
@@ -504,7 +504,7 @@ _08142040: .4byte gUnknown_203F3AE
thumb_func_start sub_8142044
sub_8142044: @ 8142044
push {lr}
- ldr r0, _08142064 @ =gUnknown_3005008
+ ldr r0, _08142064 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08142068 @ =0x000030d0
adds r0, r1
@@ -518,7 +518,7 @@ sub_8142044: @ 8142044
ldrb r0, [r0, 0x14]
b _08142072
.align 2, 0
-_08142064: .4byte gUnknown_3005008
+_08142064: .4byte gSaveBlock1Ptr
_08142068: .4byte 0x000030d0
_0814206C: .4byte gUnknown_203F3AE
_08142070:
diff --git a/asm/save.s b/asm/save.s
index 35466da0c..2d870bb99 100644
--- a/asm/save.s
+++ b/asm/save.s
@@ -1370,7 +1370,7 @@ _080DA1C6:
UpdateSaveAddresses: @ 80DA1D4
push {r4,r5,lr}
ldr r3, _080DA234 @ =gUnknown_30053B0
- ldr r0, _080DA238 @ =gUnknown_300500C
+ ldr r0, _080DA238 @ =gSaveBlock2Ptr
ldr r2, _080DA23C @ =gUnknown_83FEC94
ldrh r1, [r2]
ldr r0, [r0]
@@ -1378,7 +1378,7 @@ UpdateSaveAddresses: @ 80DA1D4
str r0, [r3]
ldrh r0, [r2, 0x2]
strh r0, [r3, 0x4]
- ldr r5, _080DA240 @ =gUnknown_3005008
+ ldr r5, _080DA240 @ =gSaveBlock1Ptr
adds r3, 0x8
adds r2, 0x4
movs r4, 0x3
@@ -1419,9 +1419,9 @@ _080DA216:
bx r0
.align 2, 0
_080DA234: .4byte gUnknown_30053B0
-_080DA238: .4byte gUnknown_300500C
+_080DA238: .4byte gSaveBlock2Ptr
_080DA23C: .4byte gUnknown_83FEC94
-_080DA240: .4byte gUnknown_3005008
+_080DA240: .4byte gSaveBlock1Ptr
_080DA244: .4byte gUnknown_3005010
thumb_func_end UpdateSaveAddresses
@@ -1430,7 +1430,7 @@ sub_80DA248: @ 80DA248
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r1, _080DA268 @ =gUnknown_30030F0
+ ldr r1, _080DA268 @ =gMain
ldr r6, [r1, 0x20]
movs r0, 0
str r0, [r1, 0x20]
@@ -1443,7 +1443,7 @@ sub_80DA248: @ 80DA248
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080DA268: .4byte gUnknown_30030F0
+_080DA268: .4byte gMain
_080DA26C: .4byte _080DA270
.align 2, 0
_080DA270:
@@ -1538,7 +1538,7 @@ _080DA328:
ldr r1, _080DA35C @ =gUnknown_30053B0
bl save_write_to_flash
_080DA346:
- ldr r0, _080DA360 @ =gUnknown_30030F0
+ ldr r0, _080DA360 @ =gMain
str r6, [r0, 0x20]
movs r0, 0
pop {r4-r6}
@@ -1548,7 +1548,7 @@ _080DA346:
_080DA354: .4byte EraseFlashSector
_080DA358: .4byte 0x0000ffff
_080DA35C: .4byte gUnknown_30053B0
-_080DA360: .4byte gUnknown_30030F0
+_080DA360: .4byte gMain
thumb_func_end sub_80DA248
thumb_func_start TrySavingData
@@ -1969,7 +1969,7 @@ _080DA664:
.4byte _080DA7B4
.4byte _080DA7D4
_080DA694:
- ldr r1, _080DA6A8 @ =gUnknown_3003530
+ ldr r1, _080DA6A8 @ =gSoftResetDisabled
movs r0, 0x1
strb r0, [r1]
lsls r0, r4, 2
@@ -1980,7 +1980,7 @@ _080DA694:
strh r1, [r0, 0x8]
b _080DA7F6
.align 2, 0
-_080DA6A8: .4byte gUnknown_3003530
+_080DA6A8: .4byte gSoftResetDisabled
_080DA6AC:
bl sub_800AB9C
ldr r0, _080DA6C0 @ =gUnknown_3005090
@@ -2140,7 +2140,7 @@ _080DA7D4:
asrs r0, 16
cmp r0, 0x5
ble _080DA7F6
- ldr r1, _080DA7FC @ =gUnknown_3003530
+ ldr r1, _080DA7FC @ =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
adds r0, r4, 0
@@ -2150,7 +2150,7 @@ _080DA7F6:
pop {r0}
bx r0
.align 2, 0
-_080DA7FC: .4byte gUnknown_3003530
+_080DA7FC: .4byte gSoftResetDisabled
thumb_func_end sub_80DA634
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s
index ab6fd65f4..e44191cbb 100644
--- a/asm/save_failed_screen.s
+++ b/asm/save_failed_screen.s
@@ -182,7 +182,7 @@ _080F5274: .4byte gUnknown_3005420
_080F5278: .4byte gUnknown_8418CD9
_080F527C: .4byte gUnknown_203AB50
_080F5280:
- ldr r0, _080F5294 @ =gUnknown_30030F0
+ ldr r0, _080F5294 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -192,7 +192,7 @@ _080F5280:
strb r0, [r2]
b _080F52D6
.align 2, 0
-_080F5294: .4byte gUnknown_30030F0
+_080F5294: .4byte gMain
_080F5298:
movs r0, 0
movs r1, 0
diff --git a/asm/save_location.s b/asm/save_location.s
index 2f8d6b64c..8a1031963 100644
--- a/asm/save_location.s
+++ b/asm/save_location.s
@@ -9,7 +9,7 @@
IsCurMapInLocationList: @ 810B6F4
push {r4,lr}
adds r2, r0, 0
- ldr r0, _0810B724 @ =gUnknown_3005008
+ ldr r0, _0810B724 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0x4
ldrsb r1, [r0, r1]
@@ -33,7 +33,7 @@ _0810B71A:
movs r0, 0x1
b _0810B736
.align 2, 0
-_0810B724: .4byte gUnknown_3005008
+_0810B724: .4byte gSaveBlock1Ptr
_0810B728: .4byte 0x0000ffff
_0810B72C:
adds r1, 0x2
@@ -87,16 +87,16 @@ TrySetPokeCenterWarpStatus: @ 810B76C
bl IsCurMapPokeCenter
cmp r0, 0
bne _0810B788
- ldr r0, _0810B784 @ =gUnknown_300500C
+ ldr r0, _0810B784 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xFD
ands r0, r1
b _0810B792
.align 2, 0
-_0810B784: .4byte gUnknown_300500C
+_0810B784: .4byte gSaveBlock2Ptr
_0810B788:
- ldr r0, _0810B798 @ =gUnknown_300500C
+ ldr r0, _0810B798 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x2
@@ -106,7 +106,7 @@ _0810B792:
pop {r0}
bx r0
.align 2, 0
-_0810B798: .4byte gUnknown_300500C
+_0810B798: .4byte gSaveBlock2Ptr
thumb_func_end TrySetPokeCenterWarpStatus
thumb_func_start TrySetReloadWarpStatus
@@ -115,16 +115,16 @@ TrySetReloadWarpStatus: @ 810B79C
bl IsCurMapReloadLocation
cmp r0, 0
bne _0810B7B8
- ldr r0, _0810B7B4 @ =gUnknown_300500C
+ ldr r0, _0810B7B4 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xFB
ands r0, r1
b _0810B7C2
.align 2, 0
-_0810B7B4: .4byte gUnknown_300500C
+_0810B7B4: .4byte gSaveBlock2Ptr
_0810B7B8:
- ldr r0, _0810B7C8 @ =gUnknown_300500C
+ ldr r0, _0810B7C8 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x4
@@ -134,7 +134,7 @@ _0810B7C2:
pop {r0}
bx r0
.align 2, 0
-_0810B7C8: .4byte gUnknown_300500C
+_0810B7C8: .4byte gSaveBlock2Ptr
thumb_func_end TrySetReloadWarpStatus
thumb_func_start sub_810B7CC
@@ -143,16 +143,16 @@ sub_810B7CC: @ 810B7CC
bl sub_810B75C
cmp r0, 0
bne _0810B7E8
- ldr r0, _0810B7E4 @ =gUnknown_300500C
+ ldr r0, _0810B7E4 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xF7
ands r0, r1
b _0810B7F2
.align 2, 0
-_0810B7E4: .4byte gUnknown_300500C
+_0810B7E4: .4byte gSaveBlock2Ptr
_0810B7E8:
- ldr r0, _0810B7F8 @ =gUnknown_300500C
+ ldr r0, _0810B7F8 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x8
@@ -162,7 +162,7 @@ _0810B7F2:
pop {r0}
bx r0
.align 2, 0
-_0810B7F8: .4byte gUnknown_300500C
+_0810B7F8: .4byte gSaveBlock2Ptr
thumb_func_end sub_810B7CC
thumb_func_start TrySetMapSaveWarpStatus
@@ -177,7 +177,7 @@ TrySetMapSaveWarpStatus: @ 810B7FC
thumb_func_start sub_810B810
sub_810B810: @ 810B810
- ldr r0, _0810B828 @ =gUnknown_300500C
+ ldr r0, _0810B828 @ =gSaveBlock2Ptr
ldr r2, [r0]
adds r2, 0xA8
ldr r0, [r2]
@@ -190,12 +190,12 @@ sub_810B810: @ 810B810
str r0, [r2]
bx lr
.align 2, 0
-_0810B828: .4byte gUnknown_300500C
+_0810B828: .4byte gSaveBlock2Ptr
thumb_func_end sub_810B810
thumb_func_start sub_810B82C
sub_810B82C: @ 810B82C
- ldr r3, _0810B854 @ =gUnknown_300500C
+ ldr r3, _0810B854 @ =gSaveBlock2Ptr
ldr r2, [r3]
ldrb r1, [r2, 0x9]
movs r0, 0x80
@@ -216,7 +216,7 @@ sub_810B82C: @ 810B82C
str r0, [r2]
bx lr
.align 2, 0
-_0810B854: .4byte gUnknown_300500C
+_0810B854: .4byte gSaveBlock2Ptr
thumb_func_end sub_810B82C
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/save_menu_util.s b/asm/save_menu_util.s
index db7f73b86..547a9bc05 100644
--- a/asm/save_menu_util.s
+++ b/asm/save_menu_util.s
@@ -47,13 +47,13 @@ _080F800C:
.4byte _080F80A8
.4byte _080F806C
_080F8024:
- ldr r0, _080F8030 @ =gUnknown_300500C
+ ldr r0, _080F8030 @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r0, r5, 0
bl StringCopy
b _080F80D8
.align 2, 0
-_080F8030: .4byte gUnknown_300500C
+_080F8030: .4byte gSaveBlock2Ptr
_080F8034:
bl sub_806E25C
cmp r0, 0
@@ -74,16 +74,16 @@ _080F804A:
bl ConvertIntToDecimalStringN
b _080F80D8
_080F805C:
- ldr r4, _080F8068 @ =gUnknown_300500C
+ ldr r4, _080F8068 @ =gSaveBlock2Ptr
ldr r0, [r4]
ldrh r1, [r0, 0xE]
adds r0, r5, 0
movs r2, 0
b _080F8076
.align 2, 0
-_080F8068: .4byte gUnknown_300500C
+_080F8068: .4byte gSaveBlock2Ptr
_080F806C:
- ldr r4, _080F8094 @ =gUnknown_300500C
+ ldr r4, _080F8094 @ =gSaveBlock2Ptr
ldr r0, [r4]
ldrh r1, [r0, 0xE]
adds r0, r5, 0
@@ -103,7 +103,7 @@ _080F8076:
bl ConvertIntToDecimalStringN
b _080F80D8
.align 2, 0
-_080F8094: .4byte gUnknown_300500C
+_080F8094: .4byte gSaveBlock2Ptr
_080F8098:
ldr r0, _080F80A4 @ =gUnknown_2036DFC
ldrb r1, [r0, 0x14]
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
index d59671450..36f6d4797 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -2326,7 +2326,7 @@ ScrCmd_getplayerxy: @ 806B010
lsls r0, 16
lsrs r0, 16
bl sub_806E454
- ldr r2, _0806B048 @ =gUnknown_3005008
+ ldr r2, _0806B048 @ =gSaveBlock1Ptr
ldr r1, [r2]
ldrh r1, [r1]
strh r1, [r5]
@@ -2338,7 +2338,7 @@ ScrCmd_getplayerxy: @ 806B010
pop {r1}
bx r1
.align 2, 0
-_0806B048: .4byte gUnknown_3005008
+_0806B048: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_getplayerxy
thumb_func_start ScrCmd_getpartysize
@@ -2609,7 +2609,7 @@ ScrCmd_applymovement: @ 806B200
adds r3, r0, 0
lsls r0, r4, 24
lsrs r0, 24
- ldr r1, _0806B23C @ =gUnknown_3005008
+ ldr r1, _0806B23C @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -2621,7 +2621,7 @@ ScrCmd_applymovement: @ 806B200
pop {r1}
bx r1
.align 2, 0
-_0806B23C: .4byte gUnknown_3005008
+_0806B23C: .4byte gSaveBlock1Ptr
_0806B240: .4byte gUnknown_20370B0
thumb_func_end ScrCmd_applymovement
@@ -2695,7 +2695,7 @@ ScrCmd_waitmovement: @ 806B2B0
strh r1, [r0]
_0806B2CC:
ldr r1, _0806B2F4 @ =gUnknown_20370B2
- ldr r0, _0806B2F8 @ =gUnknown_3005008
+ ldr r0, _0806B2F8 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r0, 0x4
ldrsb r0, [r2, r0]
@@ -2714,7 +2714,7 @@ _0806B2CC:
.align 2, 0
_0806B2F0: .4byte gUnknown_20370B0
_0806B2F4: .4byte gUnknown_20370B2
-_0806B2F8: .4byte gUnknown_3005008
+_0806B2F8: .4byte gSaveBlock1Ptr
_0806B2FC: .4byte gUnknown_20370B4
_0806B300: .4byte WaitForMovementFinish
thumb_func_end ScrCmd_waitmovement
@@ -2768,7 +2768,7 @@ ScrCmd_removeobject: @ 806B358
bl VarGet
lsls r0, 24
lsrs r0, 24
- ldr r1, _0806B37C @ =gUnknown_3005008
+ ldr r1, _0806B37C @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -2777,7 +2777,7 @@ ScrCmd_removeobject: @ 806B358
pop {r1}
bx r1
.align 2, 0
-_0806B37C: .4byte gUnknown_3005008
+_0806B37C: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_removeobject
thumb_func_start ScrCmd_removeobject_at
@@ -2813,7 +2813,7 @@ ScrCmd_addobject: @ 806B3B0
bl VarGet
lsls r0, 24
lsrs r0, 24
- ldr r1, _0806B3D4 @ =gUnknown_3005008
+ ldr r1, _0806B3D4 @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -2822,7 +2822,7 @@ ScrCmd_addobject: @ 806B3B0
pop {r1}
bx r1
.align 2, 0
-_0806B3D4: .4byte gUnknown_3005008
+_0806B3D4: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_addobject
thumb_func_start ScrCmd_addobject_at
@@ -2876,7 +2876,7 @@ ScrCmd_setobjectxy: @ 806B408
bl VarGet
lsls r5, 24
lsrs r5, 24
- ldr r1, _0806B46C @ =gUnknown_3005008
+ ldr r1, _0806B46C @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -2894,7 +2894,7 @@ ScrCmd_setobjectxy: @ 806B408
pop {r1}
bx r1
.align 2, 0
-_0806B46C: .4byte gUnknown_3005008
+_0806B46C: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_setobjectxy
thumb_func_start ScrCmd_setobjectxyperm
@@ -2946,7 +2946,7 @@ ScrCmd_moveobjectoffscreen: @ 806B4C8
bl VarGet
lsls r0, 24
lsrs r0, 24
- ldr r1, _0806B4EC @ =gUnknown_3005008
+ ldr r1, _0806B4EC @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -2955,7 +2955,7 @@ ScrCmd_moveobjectoffscreen: @ 806B4C8
pop {r1}
bx r1
.align 2, 0
-_0806B4EC: .4byte gUnknown_3005008
+_0806B4EC: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_moveobjectoffscreen
thumb_func_start ScrCmd_showobject_at
@@ -3106,7 +3106,7 @@ ScrCmd_turnobject: @ 806B5F4
str r1, [r4, 0x8]
lsls r0, 24
lsrs r0, 24
- ldr r1, _0806B624 @ =gUnknown_3005008
+ ldr r1, _0806B624 @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -3116,7 +3116,7 @@ ScrCmd_turnobject: @ 806B5F4
pop {r1}
bx r1
.align 2, 0
-_0806B624: .4byte gUnknown_3005008
+_0806B624: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_turnobject
thumb_func_start ScrCmd_setobjectmovementtype
@@ -3451,7 +3451,7 @@ sub_806B88C: @ 806B88C
thumb_func_start sub_806B898
sub_806B898: @ 806B898
push {r4,lr}
- ldr r0, _0806B8F0 @ =gUnknown_30030F0
+ ldr r0, _0806B8F0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3490,7 +3490,7 @@ sub_806B898: @ 806B898
bl sub_8069964
b _0806B922
.align 2, 0
-_0806B8F0: .4byte gUnknown_30030F0
+_0806B8F0: .4byte gMain
_0806B8F4: .4byte gUnknown_3005070
_0806B8F8: .4byte gUnknown_203ADFA
_0806B8FC:
@@ -3563,7 +3563,7 @@ _0806B968:
thumb_func_start sub_806B96C
sub_806B96C: @ 806B96C
push {lr}
- ldr r2, _0806B988 @ =gUnknown_30030F0
+ ldr r2, _0806B988 @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x40
ands r0, r1
@@ -3576,7 +3576,7 @@ sub_806B96C: @ 806B96C
movs r0, 0x1
b _0806BA36
.align 2, 0
-_0806B988: .4byte gUnknown_30030F0
+_0806B988: .4byte gMain
_0806B98C: .4byte gUnknown_20370D4
_0806B990:
ldrh r1, [r2, 0x2C]
@@ -4596,7 +4596,7 @@ ScrCmd_givemoney: @ 806C124
str r0, [r4, 0x8]
cmp r1, 0
bne _0806C14A
- ldr r0, _0806C154 @ =gUnknown_3005008
+ ldr r0, _0806C154 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -4609,7 +4609,7 @@ _0806C14A:
pop {r1}
bx r1
.align 2, 0
-_0806C154: .4byte gUnknown_3005008
+_0806C154: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_givemoney
thumb_func_start ScrCmd_takemoney
@@ -4624,7 +4624,7 @@ ScrCmd_takemoney: @ 806C158
str r0, [r4, 0x8]
cmp r1, 0
bne _0806C17E
- ldr r0, _0806C188 @ =gUnknown_3005008
+ ldr r0, _0806C188 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -4637,7 +4637,7 @@ _0806C17E:
pop {r1}
bx r1
.align 2, 0
-_0806C188: .4byte gUnknown_3005008
+_0806C188: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_takemoney
thumb_func_start ScrCmd_checkmoney
@@ -4653,7 +4653,7 @@ ScrCmd_checkmoney: @ 806C18C
cmp r1, 0
bne _0806C1BA
ldr r4, _0806C1C4 @ =gUnknown_20370D0
- ldr r0, _0806C1C8 @ =gUnknown_3005008
+ ldr r0, _0806C1C8 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -4670,7 +4670,7 @@ _0806C1BA:
bx r1
.align 2, 0
_0806C1C4: .4byte gUnknown_20370D0
-_0806C1C8: .4byte gUnknown_3005008
+_0806C1C8: .4byte gSaveBlock1Ptr
thumb_func_end ScrCmd_checkmoney
thumb_func_start sub_806C1CC
@@ -4694,7 +4694,7 @@ sub_806C1CC: @ 806C1CC
lsrs r0, 24
cmp r0, 0x1
beq _0806C20A
- ldr r0, _0806C218 @ =gUnknown_3005008
+ ldr r0, _0806C218 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -4710,7 +4710,7 @@ _0806C20A:
bx r1
.align 2, 0
_0806C214: .4byte sub_809D6D4
-_0806C218: .4byte gUnknown_3005008
+_0806C218: .4byte gSaveBlock1Ptr
thumb_func_end sub_806C1CC
thumb_func_start sub_806C21C
@@ -4734,7 +4734,7 @@ sub_806C228: @ 806C228
str r2, [r0, 0x8]
cmp r1, 0
bne _0806C24E
- ldr r0, _0806C254 @ =gUnknown_3005008
+ ldr r0, _0806C254 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -4746,7 +4746,7 @@ _0806C24E:
pop {r1}
bx r1
.align 2, 0
-_0806C254: .4byte gUnknown_3005008
+_0806C254: .4byte gSaveBlock1Ptr
thumb_func_end sub_806C228
thumb_func_start sub_806C258
@@ -5134,7 +5134,7 @@ ScrCmd_setrespawn: @ 806C4D4
thumb_func_start ScrCmd_checkplayergender
ScrCmd_checkplayergender: @ 806C4F0
ldr r1, _0806C500 @ =gUnknown_20370D0
- ldr r0, _0806C504 @ =gUnknown_300500C
+ ldr r0, _0806C504 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
strh r0, [r1]
@@ -5142,7 +5142,7 @@ ScrCmd_checkplayergender: @ 806C4F0
bx lr
.align 2, 0
_0806C500: .4byte gUnknown_20370D0
-_0806C504: .4byte gUnknown_300500C
+_0806C504: .4byte gSaveBlock2Ptr
thumb_func_end ScrCmd_checkplayergender
thumb_func_start ScrCmd_playmoncry
diff --git a/asm/script.s b/asm/script.s
index 556c95856..65ef2028e 100644
--- a/asm/script.s
+++ b/asm/script.s
@@ -816,7 +816,7 @@ _08069CAC:
thumb_func_start CalculateRamScriptChecksum
CalculateRamScriptChecksum: @ 8069CB0
push {lr}
- ldr r0, _08069CCC @ =gUnknown_3005008
+ ldr r0, _08069CCC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08069CD0 @ =0x00003620
adds r0, r1
@@ -828,7 +828,7 @@ CalculateRamScriptChecksum: @ 8069CB0
pop {r1}
bx r1
.align 2, 0
-_08069CCC: .4byte gUnknown_3005008
+_08069CCC: .4byte gSaveBlock1Ptr
_08069CD0: .4byte 0x00003620
thumb_func_end CalculateRamScriptChecksum
@@ -838,7 +838,7 @@ ClearRamScript: @ 8069CD4
sub sp, 0x4
movs r0, 0
str r0, [sp]
- ldr r0, _08069CF4 @ =gUnknown_3005008
+ ldr r0, _08069CF4 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, _08069CF8 @ =0x0000361c
adds r1, r0
@@ -849,7 +849,7 @@ ClearRamScript: @ 8069CD4
pop {r0}
bx r0
.align 2, 0
-_08069CF4: .4byte gUnknown_3005008
+_08069CF4: .4byte gSaveBlock1Ptr
_08069CF8: .4byte 0x0000361c
_08069CFC: .4byte 0x050000fb
thumb_func_end ClearRamScript
@@ -874,7 +874,7 @@ InitRamScript: @ 8069D00
lsrs r7, r3, 24
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, _08069D64 @ =gUnknown_3005008
+ ldr r0, _08069D64 @ =gSaveBlock1Ptr
mov r10, r0
ldr r5, [r0]
ldr r1, _08069D68 @ =0x00003620
@@ -903,7 +903,7 @@ InitRamScript: @ 8069D00
movs r0, 0x1
b _08069D7A
.align 2, 0
-_08069D64: .4byte gUnknown_3005008
+_08069D64: .4byte gSaveBlock1Ptr
_08069D68: .4byte 0x00003620
_08069D6C: .4byte 0x000003e3
_08069D70: .4byte 0x00003624
@@ -927,7 +927,7 @@ GetRamScript: @ 8069D8C
adds r4, r1, 0
lsls r0, 24
lsrs r3, r0, 24
- ldr r6, _08069DDC @ =gUnknown_3005008
+ ldr r6, _08069DDC @ =gSaveBlock1Ptr
ldr r5, [r6]
ldr r0, _08069DE0 @ =0x00003620
adds r2, r5, r0
@@ -962,7 +962,7 @@ GetRamScript: @ 8069D8C
adds r0, r5, r1
b _08069DF6
.align 2, 0
-_08069DDC: .4byte gUnknown_3005008
+_08069DDC: .4byte gSaveBlock1Ptr
_08069DE0: .4byte 0x00003620
_08069DE4: .4byte gUnknown_20370A4
_08069DE8: .4byte 0x0000361c
@@ -980,7 +980,7 @@ _08069DF6:
thumb_func_start sub_8069DFC
sub_8069DFC: @ 8069DFC
push {r4,lr}
- ldr r4, _08069E34 @ =gUnknown_3005008
+ ldr r4, _08069E34 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r2, _08069E38 @ =0x00003620
adds r1, r0, r2
@@ -1006,7 +1006,7 @@ sub_8069DFC: @ 8069DFC
movs r0, 0x1
b _08069E42
.align 2, 0
-_08069E34: .4byte gUnknown_3005008
+_08069E34: .4byte gSaveBlock1Ptr
_08069E38: .4byte 0x00003620
_08069E3C: .4byte 0x0000361c
_08069E40:
@@ -1020,7 +1020,7 @@ _08069E42:
thumb_func_start sub_8069E48
sub_8069E48: @ 8069E48
push {r4-r6,lr}
- ldr r6, _08069E88 @ =gUnknown_3005008
+ ldr r6, _08069E88 @ =gSaveBlock1Ptr
ldr r5, [r6]
ldr r0, _08069E8C @ =0x00003620
adds r4, r5, r0
@@ -1050,7 +1050,7 @@ sub_8069E48: @ 8069E48
adds r0, r5, r1
b _08069E9E
.align 2, 0
-_08069E88: .4byte gUnknown_3005008
+_08069E88: .4byte gSaveBlock1Ptr
_08069E8C: .4byte 0x00003620
_08069E90: .4byte 0x0000361c
_08069E94: .4byte 0x00003624
diff --git a/asm/script_menu.s b/asm/script_menu.s
index f1f1d260e..09ec135fb 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -482,7 +482,7 @@ _0809CCDE:
_0809CCE2:
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0809CD20 @ =gUnknown_30030F0
+ ldr r0, _0809CD20 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xC0
ands r0, r1
@@ -511,7 +511,7 @@ _0809CCF8:
strh r0, [r1]
b _0809CD2C
.align 2, 0
-_0809CD20: .4byte gUnknown_30030F0
+_0809CD20: .4byte gMain
_0809CD24: .4byte gUnknown_20370D0
_0809CD28:
ldr r0, _0809CD44 @ =gUnknown_20370D0
diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s
index 431e0cae7..ec76cd2b0 100644
--- a/asm/script_pokemon_util_80A0058.s
+++ b/asm/script_pokemon_util_80A0058.s
@@ -381,7 +381,7 @@ _080A0330: .4byte gUnknown_2024284
thumb_func_start sub_80A0334
sub_80A0334: @ 80A0334
push {lr}
- ldr r1, _080A0348 @ =gUnknown_30030F0
+ ldr r1, _080A0348 @ =gMain
ldr r0, _080A034C @ =sub_80A0350
str r0, [r1, 0x8]
movs r0, 0
@@ -389,7 +389,7 @@ sub_80A0334: @ 80A0334
pop {r0}
bx r0
.align 2, 0
-_080A0348: .4byte gUnknown_30030F0
+_080A0348: .4byte gMain
_080A034C: .4byte sub_80A0350
thumb_func_end sub_80A0334
@@ -423,7 +423,7 @@ _080A037C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_start sub_80A0380
sub_80A0380: @ 80A0380
push {lr}
- ldr r1, _080A0394 @ =gUnknown_30030F0
+ ldr r1, _080A0394 @ =gMain
ldr r0, _080A0398 @ =sub_80A039C
str r0, [r1, 0x8]
movs r0, 0x1
@@ -431,7 +431,7 @@ sub_80A0380: @ 80A0380
pop {r0}
bx r0
.align 2, 0
-_080A0394: .4byte gUnknown_30030F0
+_080A0394: .4byte gMain
_080A0398: .4byte sub_80A039C
thumb_func_end sub_80A0380
diff --git a/asm/seagallop.s b/asm/seagallop.s
index ac16351b0..9e189c02e 100644
--- a/asm/seagallop.s
+++ b/asm/seagallop.s
@@ -23,7 +23,7 @@ _08146E90: .4byte sub_8146E94
sub_8146E94: @ 8146E94
push {r4,lr}
sub sp, 0x8
- ldr r0, _08146EB4 @ =gUnknown_30030F0
+ ldr r0, _08146EB4 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -38,7 +38,7 @@ _08146EA8:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08146EB4: .4byte gUnknown_30030F0
+_08146EB4: .4byte gMain
_08146EB8: .4byte _08146EBC
.align 2, 0
_08146EBC:
@@ -155,7 +155,7 @@ _08146FBE:
movs r3, 0
bl BeginNormalPaletteFade
_08146FCE:
- ldr r1, _08146FE0 @ =gUnknown_30030F0
+ ldr r1, _08146FE0 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -164,7 +164,7 @@ _08146FCE:
strb r0, [r1]
b _0814703C
.align 2, 0
-_08146FE0: .4byte gUnknown_30030F0
+_08146FE0: .4byte gMain
_08146FE4:
bl sub_814731C
ldr r0, _08147044 @ =sub_8147058
@@ -193,7 +193,7 @@ _08146FE4:
bl CreateTask
ldr r0, _08147050 @ =sub_814706C
bl SetMainCallback2
- ldr r0, _08147054 @ =gUnknown_30030F0
+ ldr r0, _08147054 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -209,7 +209,7 @@ _08147044: .4byte sub_8147058
_08147048: .4byte 0x00001888
_0814704C: .4byte sub_8147084
_08147050: .4byte sub_814706C
-_08147054: .4byte gUnknown_30030F0
+_08147054: .4byte gMain
thumb_func_end sub_8146E94
thumb_func_start sub_8147058
diff --git a/asm/shop.s b/asm/shop.s
index 6c6fc2078..a99066578 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -454,7 +454,7 @@ sub_809AE00: @ 809AE00
sub_809AE14: @ 809AE14
push {r4,r5,lr}
sub sp, 0xC
- ldr r0, _0809AE90 @ =gUnknown_30030F0
+ ldr r0, _0809AE90 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r5, r0, r1
@@ -507,7 +507,7 @@ _0809AE2C:
bl SetMainCallback2
b _0809AF64
.align 2, 0
-_0809AE90: .4byte gUnknown_30030F0
+_0809AE90: .4byte gMain
_0809AE94: .4byte gUnknown_2039934
_0809AE98: .4byte sub_809BBC0
_0809AE9C: .4byte gUnknown_3005E70
@@ -2211,7 +2211,7 @@ _0809BC1A:
lsls r1, 16
lsrs r1, 16
str r1, [r0, 0x8]
- ldr r0, _0809BC70 @ =gUnknown_3005008
+ ldr r0, _0809BC70 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r2, 0xA4
lsls r2, 2
@@ -2226,7 +2226,7 @@ _0809BC1A:
bl sub_813F75C
b _0809BC8E
.align 2, 0
-_0809BC70: .4byte gUnknown_3005008
+_0809BC70: .4byte gSaveBlock1Ptr
_0809BC74: .4byte gUnknown_8416842
_0809BC78: .4byte sub_809BF98
_0809BC7C:
@@ -2296,7 +2296,7 @@ sub_809BCA0: @ 809BCA0
bl sub_809BB44
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
- ldr r0, _0809BD50 @ =gUnknown_3005008
+ ldr r0, _0809BD50 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -2322,7 +2322,7 @@ _0809BD40: .4byte gUnknown_3005098
_0809BD44: .4byte gUnknown_2021CD0
_0809BD48: .4byte gUnknown_2021D18
_0809BD4C: .4byte gUnknown_8416749
-_0809BD50: .4byte gUnknown_3005008
+_0809BD50: .4byte gSaveBlock1Ptr
_0809BD54: .4byte gUnknown_2039934
_0809BD58:
ldr r1, _0809BD80 @ =gUnknown_2039934
@@ -2385,7 +2385,7 @@ sub_809BD8C: @ 809BD8C
_0809BDCC: .4byte gUnknown_3005098
_0809BDD0: .4byte gUnknown_2039934
_0809BDD4:
- ldr r0, _0809BE3C @ =gUnknown_30030F0
+ ldr r0, _0809BE3C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2426,7 +2426,7 @@ _0809BDD4:
bl sub_813F75C
b _0809BE88
.align 2, 0
-_0809BE3C: .4byte gUnknown_30030F0
+_0809BE3C: .4byte gMain
_0809BE40: .4byte gUnknown_2021CD0
_0809BE44: .4byte gUnknown_2021CF0
_0809BE48: .4byte gUnknown_2021D04
@@ -2527,7 +2527,7 @@ sub_809BF0C: @ 809BF0C
lsrs r4, 24
movs r0, 0x26
bl IncrementGameStat
- ldr r6, _0809BF58 @ =gUnknown_3005008
+ ldr r6, _0809BF58 @ =gSaveBlock1Ptr
ldr r0, [r6]
movs r5, 0xA4
lsls r5, 2
@@ -2555,7 +2555,7 @@ sub_809BF0C: @ 809BF0C
pop {r0}
bx r0
.align 2, 0
-_0809BF58: .4byte gUnknown_3005008
+_0809BF58: .4byte gSaveBlock1Ptr
_0809BF5C: .4byte gUnknown_2039934
_0809BF60: .4byte gUnknown_3005090
_0809BF64: .4byte sub_809BF68
@@ -2566,7 +2566,7 @@ sub_809BF68: @ 809BF68
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0809BF94 @ =gUnknown_30030F0
+ ldr r0, _0809BF94 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2586,7 +2586,7 @@ _0809BF8E:
pop {r0}
bx r0
.align 2, 0
-_0809BF94: .4byte gUnknown_30030F0
+_0809BF94: .4byte gMain
thumb_func_end sub_809BF68
thumb_func_start sub_809BF98
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index f65bae8f8..105e2850f 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -89,7 +89,7 @@ sub_813F898: @ 813F898
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
- ldr r0, _0813F8BC @ =gUnknown_30030F0
+ ldr r0, _0813F8BC @ =gMain
movs r1, 0x87
lsls r1, 3
adds r4, r0, r1
@@ -100,7 +100,7 @@ sub_813F898: @ 813F898
beq _0813F8EC
b _0813F916
.align 2, 0
-_0813F8BC: .4byte gUnknown_30030F0
+_0813F8BC: .4byte gMain
_0813F8C0:
bl sub_814104C
cmp r0, 0
@@ -222,7 +222,7 @@ _0813F9A4:
.align 2, 0
_0813F9B8: .4byte sub_813FBC0
_0813F9BC:
- ldr r1, _0813F9F4 @ =gUnknown_30030F0
+ ldr r1, _0813F9F4 @ =gMain
ldrh r2, [r1, 0x2E]
movs r0, 0x80
ands r0, r2
@@ -246,7 +246,7 @@ _0813F9BC:
movs r0, 0x1
b _0813FBB6
.align 2, 0
-_0813F9F4: .4byte gUnknown_30030F0
+_0813F9F4: .4byte gMain
_0813F9F8: .4byte gUnknown_203F3A0
_0813F9FC:
movs r0, 0x80
@@ -378,7 +378,7 @@ _0813FB08:
bl sub_8141180
cmp r0, 0
bne _0813FBB8
- ldr r0, _0813FB40 @ =gUnknown_30030F0
+ ldr r0, _0813FB40 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -398,7 +398,7 @@ _0813FB08:
movs r0, 0x4
b _0813FBB6
.align 2, 0
-_0813FB40: .4byte gUnknown_30030F0
+_0813FB40: .4byte gMain
_0813FB44: .4byte gUnknown_203F3A0
_0813FB48:
ldr r5, _0813FB90 @ =gUnknown_203F3A0
@@ -498,7 +498,7 @@ _0813FC02:
strh r0, [r4]
b _0813FC1C
_0813FC0A:
- ldr r0, _0813FC24 @ =gUnknown_30030F0
+ ldr r0, _0813FC24 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xF3
ands r0, r1
@@ -511,7 +511,7 @@ _0813FC1C:
pop {r0}
bx r0
.align 2, 0
-_0813FC24: .4byte gUnknown_30030F0
+_0813FC24: .4byte gMain
_0813FC28: .4byte sub_813FFD8
thumb_func_end sub_813FBC0
@@ -552,7 +552,7 @@ _0813FC62:
bne _0813FCA0
b _0813FC82
_0813FC6E:
- ldr r0, _0813FC8C @ =gUnknown_30030F0
+ ldr r0, _0813FC8C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x20
ands r0, r1
@@ -568,7 +568,7 @@ _0813FC82:
strh r0, [r4]
b _0813FCA0
.align 2, 0
-_0813FC8C: .4byte gUnknown_30030F0
+_0813FC8C: .4byte gMain
_0813FC90:
movs r0, 0
bl sub_8141180
@@ -840,7 +840,7 @@ _0813FEA0:
_0813FEB0:
movs r0, 0x8
strh r0, [r5, 0x2]
- ldr r0, _0813FEC8 @ =gUnknown_30030F0
+ ldr r0, _0813FEC8 @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x1
ands r0, r1
@@ -850,7 +850,7 @@ _0813FEB0:
strh r0, [r5, 0x2]
b _0813FFAC
.align 2, 0
-_0813FEC8: .4byte gUnknown_30030F0
+_0813FEC8: .4byte gMain
_0813FECC:
movs r0, 0
bl sub_8141180
@@ -861,7 +861,7 @@ _0813FECC:
lsls r0, 24
cmp r0, 0
beq _0813FF0C
- ldr r0, _0813FF04 @ =gUnknown_30030F0
+ ldr r0, _0813FF04 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x8
ands r0, r1
@@ -877,7 +877,7 @@ _0813FECC:
strh r6, [r0]
b _0813FF58
.align 2, 0
-_0813FF04: .4byte gUnknown_30030F0
+_0813FF04: .4byte gMain
_0813FF08: .4byte gUnknown_203F3A0
_0813FF0C:
ldrh r0, [r5, 0x2]
@@ -909,7 +909,7 @@ _0813FF28:
_0813FF44:
movs r0, 0x8
strh r0, [r5, 0x2]
- ldr r0, _0813FF74 @ =gUnknown_30030F0
+ ldr r0, _0813FF74 @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x1
ands r0, r1
@@ -930,7 +930,7 @@ _0813FF58:
b _0813FFAC
.align 2, 0
_0813FF70: .4byte gUnknown_203F3A0
-_0813FF74: .4byte gUnknown_30030F0
+_0813FF74: .4byte gMain
_0813FF78:
bl IsFanfareTaskInactive
lsls r0, 24
diff --git a/asm/sound.s b/asm/sound.s
index 15d4a544c..7b826bf94 100644
--- a/asm/sound.s
+++ b/asm/sound.s
@@ -1117,7 +1117,7 @@ IsCryFinished: @ 80721A0
lsrs r0, 24
cmp r0, 0x1
beq _080721BC
- bl sub_8000944
+ bl ClearPokemonCrySongs
movs r0, 0x1
b _080721BE
.align 2, 0
@@ -1135,7 +1135,7 @@ StopCryAndClearCrySongs: @ 80721C4
ldr r0, _080721D8 @ =gUnknown_2037ECC
ldr r0, [r0]
bl m4aMPlayStop
- bl sub_8000944
+ bl ClearPokemonCrySongs
pop {r0}
bx r0
.align 2, 0
@@ -1162,7 +1162,7 @@ IsCryPlayingOrClearCrySongs: @ 80721F0
bl IsPokemonCryPlaying
cmp r0, 0
bne _0807220C
- bl sub_8000944
+ bl ClearPokemonCrySongs
movs r0, 0
b _0807220E
.align 2, 0
diff --git a/asm/sprite.s b/asm/sprite.s
index 36ac6539d..bfc58820c 100644
--- a/asm/sprite.s
+++ b/asm/sprite.s
@@ -84,7 +84,7 @@ BuildOamBuffer: @ 8006BA8
bl UpdateOamCoords
bl BuildSpritePriorities
bl SortSprites
- ldr r5, _08006BE8 @ =gUnknown_30030F0
+ ldr r5, _08006BE8 @ =gMain
ldr r0, _08006BEC @ =0x00000439
adds r5, r0
ldrb r0, [r5]
@@ -108,7 +108,7 @@ BuildOamBuffer: @ 8006BA8
pop {r0}
bx r0
.align 2, 0
-_08006BE8: .4byte gUnknown_30030F0
+_08006BE8: .4byte gMain
_08006BEC: .4byte 0x00000439
_08006BF0: .4byte gUnknown_2021840
thumb_func_end BuildOamBuffer
@@ -492,7 +492,7 @@ _08006EB4: .4byte gUnknown_2021780
CopyMatricesToOamBuffer: @ 8006EB8
push {r4-r6,lr}
movs r4, 0
- ldr r5, _08006EFC @ =gUnknown_30030F0
+ ldr r5, _08006EFC @ =gMain
ldr r6, _08006F00 @ =gUnknown_2021BCC
_08006EC0:
lsls r2, r4, 2
@@ -526,7 +526,7 @@ _08006EC0:
pop {r0}
bx r0
.align 2, 0
-_08006EFC: .4byte gUnknown_30030F0
+_08006EFC: .4byte gMain
_08006F00: .4byte gUnknown_2021BCC
thumb_func_end CopyMatricesToOamBuffer
@@ -570,7 +570,7 @@ _08006F3A:
cmp r0, r1
bcs _08006F70
mov r1, sp
- ldr r5, _08006F84 @ =gUnknown_3003128
+ ldr r5, _08006F84 @ =gMain + 0x38
ldr r0, _08006F88 @ =gUnknown_8231CE4
ldr r2, [r0]
ldr r3, [r0, 0x4]
@@ -597,7 +597,7 @@ _08006F70:
_08006F78: .4byte gUnknown_2021800
_08006F7C: .4byte gUnknown_202063C
_08006F80: .4byte gUnknown_2021B44
-_08006F84: .4byte gUnknown_3003128
+_08006F84: .4byte gMain + 0x38
_08006F88: .4byte gUnknown_8231CE4
thumb_func_end AddSpritesToOamBuffer
@@ -1061,7 +1061,7 @@ ResetOamRange: @ 80072E8
lsrs r3, r0, 24
cmp r3, r4
bcs _08007310
- ldr r6, _08007318 @ =gUnknown_3003128
+ ldr r6, _08007318 @ =gMain + 0x38
ldr r5, _0800731C @ =gUnknown_8231CE4
_080072FA:
lsls r0, r3, 3
@@ -1080,14 +1080,14 @@ _08007310:
pop {r0}
bx r0
.align 2, 0
-_08007318: .4byte gUnknown_3003128
+_08007318: .4byte gMain + 0x38
_0800731C: .4byte gUnknown_8231CE4
thumb_func_end ResetOamRange
thumb_func_start LoadOam
LoadOam: @ 8007320
push {lr}
- ldr r2, _08007344 @ =gUnknown_30030F0
+ ldr r2, _08007344 @ =gMain
ldr r1, _08007348 @ =0x00000439
adds r0, r2, r1
ldrb r1, [r0]
@@ -1105,7 +1105,7 @@ _08007340:
pop {r0}
bx r0
.align 2, 0
-_08007344: .4byte gUnknown_30030F0
+_08007344: .4byte gMain
_08007348: .4byte 0x00000439
_0800734C: .4byte 0x04000100
thumb_func_end LoadOam
@@ -4352,7 +4352,7 @@ _08008A7C:
cmp r0, 0
bne _08008AB0
_08008A90:
- ldr r0, _08008AAC @ =gUnknown_30030F0
+ ldr r0, _08008AAC @ =gMain
ldrb r2, [r3]
lsls r2, 3
adds r0, 0x38
@@ -4367,11 +4367,11 @@ _08008A90:
movs r0, 0
b _08008AC4
.align 2, 0
-_08008AAC: .4byte gUnknown_30030F0
+_08008AAC: .4byte gMain
_08008AB0:
ldrb r1, [r3]
lsls r1, 3
- ldr r0, _08008ACC @ =gUnknown_3003128
+ ldr r0, _08008ACC @ =gMain + 0x38
adds r1, r0
adds r0, r4, 0
adds r2, r3, 0
@@ -4383,7 +4383,7 @@ _08008AC4:
pop {r1}
bx r1
.align 2, 0
-_08008ACC: .4byte gUnknown_3003128
+_08008ACC: .4byte gMain + 0x38
thumb_func_end AddSpriteToOamBuffer
thumb_func_start AddSubspritesToOamBuffer
diff --git a/asm/ss_anne.s b/asm/ss_anne.s
index e8fb5a9fd..85b08dd7a 100644
--- a/asm/ss_anne.s
+++ b/asm/ss_anne.s
@@ -88,7 +88,7 @@ sub_815D3A8: @ 815D3A8
strh r0, [r5, 0x2]
bl sub_815D5A4
_0815D3D6:
- ldr r0, _0815D428 @ =gUnknown_3005008
+ ldr r0, _0815D428 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -127,7 +127,7 @@ _0815D3D6:
b _0815D44A
.align 2, 0
_0815D424: .4byte gUnknown_3005098
-_0815D428: .4byte gUnknown_3005008
+_0815D428: .4byte gSaveBlock1Ptr
_0815D42C: .4byte gUnknown_2036E38
_0815D430: .4byte gUnknown_202063C
_0815D434: .4byte sub_815D454
@@ -185,7 +185,7 @@ _0815D494: .4byte 0x00000fa1
sub_815D498: @ 815D498
push {r4,lr}
sub sp, 0x4
- ldr r0, _0815D508 @ =gUnknown_3005008
+ ldr r0, _0815D508 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -237,7 +237,7 @@ sub_815D498: @ 815D498
pop {r0}
bx r0
.align 2, 0
-_0815D508: .4byte gUnknown_3005008
+_0815D508: .4byte gSaveBlock1Ptr
_0815D50C: .4byte gUnknown_2036E38
_0815D510: .4byte gUnknown_202063C
_0815D514: .4byte gUnknown_8479C88
@@ -248,7 +248,7 @@ sub_815D518: @ 815D518
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
- ldr r0, _0815D598 @ =gUnknown_3005008
+ ldr r0, _0815D598 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -307,7 +307,7 @@ _0815D58E:
pop {r0}
bx r0
.align 2, 0
-_0815D598: .4byte gUnknown_3005008
+_0815D598: .4byte gSaveBlock1Ptr
_0815D59C: .4byte gUnknown_2036E38
_0815D5A0: .4byte gUnknown_202063C
thumb_func_end sub_815D518
@@ -316,7 +316,7 @@ _0815D5A0: .4byte gUnknown_202063C
sub_815D5A4: @ 815D5A4
push {r4,lr}
sub sp, 0x4
- ldr r0, _0815D614 @ =gUnknown_3005008
+ ldr r0, _0815D614 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -370,7 +370,7 @@ _0815D60C:
pop {r0}
bx r0
.align 2, 0
-_0815D614: .4byte gUnknown_3005008
+_0815D614: .4byte gSaveBlock1Ptr
_0815D618: .4byte gUnknown_2036E38
_0815D61C: .4byte gUnknown_202063C
_0815D620: .4byte gUnknown_8479CC0
diff --git a/asm/start_menu.s b/asm/start_menu.s
index 72482e9a3..081f0eebf 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -447,7 +447,7 @@ _0806F0C4:
bl InUnionRoom
cmp r0, 0x1
beq _0806F118
- ldr r0, _0806F134 @ =gUnknown_300500C
+ ldr r0, _0806F134 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0
@@ -472,7 +472,7 @@ _0806F118:
.align 2, 0
_0806F12C: .4byte gUnknown_20370F5
_0806F130: .4byte gUnknown_20370F4
-_0806F134: .4byte gUnknown_300500C
+_0806F134: .4byte gSaveBlock2Ptr
_0806F138: .4byte gUnknown_83A7394
_0806F13C: .4byte gUnknown_20370F6
_0806F140:
@@ -653,7 +653,7 @@ _0806F27C: .4byte sub_806F1F0
thumb_func_start sub_806F280
sub_806F280: @ 806F280
push {r4,lr}
- ldr r0, _0806F35C @ =gUnknown_30030F0
+ ldr r0, _0806F35C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -673,7 +673,7 @@ sub_806F280: @ 806F280
bl InUnionRoom
cmp r0, 0x1
beq _0806F2D2
- ldr r0, _0806F364 @ =gUnknown_300500C
+ ldr r0, _0806F364 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0
@@ -689,7 +689,7 @@ sub_806F280: @ 806F280
movs r1, 0x2
bl sub_8113018
_0806F2D2:
- ldr r0, _0806F35C @ =gUnknown_30030F0
+ ldr r0, _0806F35C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
@@ -708,7 +708,7 @@ _0806F2D2:
bl InUnionRoom
cmp r0, 0x1
beq _0806F320
- ldr r0, _0806F364 @ =gUnknown_300500C
+ ldr r0, _0806F364 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0
@@ -724,7 +724,7 @@ _0806F2D2:
movs r1, 0x2
bl sub_8113018
_0806F320:
- ldr r0, _0806F35C @ =gUnknown_30030F0
+ ldr r0, _0806F35C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -753,9 +753,9 @@ _0806F358:
movs r0, 0
b _0806F38E
.align 2, 0
-_0806F35C: .4byte gUnknown_30030F0
+_0806F35C: .4byte gMain
_0806F360: .4byte gUnknown_20370F4
-_0806F364: .4byte gUnknown_300500C
+_0806F364: .4byte gSaveBlock2Ptr
_0806F368: .4byte gUnknown_83A7394
_0806F36C: .4byte gUnknown_20370F6
_0806F370: .4byte gUnknown_20370F0
@@ -979,7 +979,7 @@ _0806F514:
bl sub_80563F0
ldr r0, _0806F534 @ =sub_8088388
bl SetMainCallback2
- ldr r1, _0806F538 @ =gUnknown_30030F0
+ ldr r1, _0806F538 @ =gMain
ldr r0, _0806F53C @ =sub_80568A8
str r0, [r1, 0x8]
movs r0, 0x1
@@ -988,7 +988,7 @@ _0806F52E:
bx r1
.align 2, 0
_0806F534: .4byte sub_8088388
-_0806F538: .4byte gUnknown_30030F0
+_0806F538: .4byte gMain
_0806F53C: .4byte sub_80568A8
thumb_func_end sub_806F4FC
@@ -1269,7 +1269,7 @@ sub_806F744: @ 806F744
ldrb r0, [r1]
subs r2, r0, 0x1
strb r2, [r1]
- ldr r0, _0806F768 @ =gUnknown_30030F0
+ ldr r0, _0806F768 @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x1
ands r0, r1
@@ -1282,7 +1282,7 @@ sub_806F744: @ 806F744
b _0806F774
.align 2, 0
_0806F764: .4byte gUnknown_3000FA8
-_0806F768: .4byte gUnknown_30030F0
+_0806F768: .4byte gMain
_0806F76C:
movs r0, 0x5
bl sub_80722CC
@@ -1300,7 +1300,7 @@ sub_806F778: @ 806F778
ldrb r0, [r1]
cmp r0, 0
bne _0806F79C
- ldr r0, _0806F798 @ =gUnknown_30030F0
+ ldr r0, _0806F798 @ =gMain
ldrh r1, [r0, 0x2C]
movs r0, 0x1
ands r0, r1
@@ -1310,7 +1310,7 @@ sub_806F778: @ 806F778
b _0806F7A2
.align 2, 0
_0806F794: .4byte gUnknown_3000FA8
-_0806F798: .4byte gUnknown_30030F0
+_0806F798: .4byte gMain
_0806F79C:
subs r0, 0x1
strb r0, [r1]
@@ -1822,7 +1822,7 @@ _0806FB6E:
thumb_func_start sub_806FB7C
sub_806FB7C: @ 806FB7C
push {lr}
- ldr r0, _0806FB9C @ =gUnknown_3003528
+ ldr r0, _0806FB9C @ =gMain + 0x438
bl sub_806FA54
cmp r0, 0
beq _0806FB96
@@ -1835,7 +1835,7 @@ _0806FB96:
pop {r0}
bx r0
.align 2, 0
-_0806FB9C: .4byte gUnknown_3003528
+_0806FB9C: .4byte gMain + 0x438
_0806FBA0: .4byte sub_806FBB8
_0806FBA4: .4byte sub_806FBA8
thumb_func_end sub_806FB7C
@@ -1964,14 +1964,14 @@ _0806FC9C:
b _0806FCE6
_0806FCB0:
bl FreeAllWindowBuffers
- ldr r0, _0806FCC4 @ =gUnknown_30030F0
+ ldr r0, _0806FCC4 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
b _0806FCE8
.align 2, 0
-_0806FCC4: .4byte gUnknown_30030F0
+_0806FCC4: .4byte gMain
_0806FCC8:
ldr r0, _0806FCD4 @ =sub_80DA634
movs r1, 0x5
diff --git a/asm/string_util.s b/asm/string_util.s
index 9575f3977..784f47490 100644
--- a/asm/string_util.s
+++ b/asm/string_util.s
@@ -620,11 +620,11 @@ _0800911C: .4byte gUnknown_2022100
thumb_func_start sub_8009120
sub_8009120: @ 8009120
- ldr r0, _08009128 @ =gUnknown_300500C
+ ldr r0, _08009128 @ =gSaveBlock2Ptr
ldr r0, [r0]
bx lr
.align 2, 0
-_08009128: .4byte gUnknown_300500C
+_08009128: .4byte gSaveBlock2Ptr
thumb_func_end sub_8009120
thumb_func_start sub_800912C
@@ -654,7 +654,7 @@ _08009140: .4byte gUnknown_2021D04
thumb_func_start sub_8009144
sub_8009144: @ 8009144
push {lr}
- ldr r0, _08009154 @ =gUnknown_300500C
+ ldr r0, _08009154 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -662,7 +662,7 @@ sub_8009144: @ 8009144
ldr r0, _08009158 @ =gUnknown_8415A22
b _0800915E
.align 2, 0
-_08009154: .4byte gUnknown_300500C
+_08009154: .4byte gSaveBlock2Ptr
_08009158: .4byte gUnknown_8415A22
_0800915C:
ldr r0, _08009164 @ =gUnknown_8415A21
@@ -676,14 +676,14 @@ _08009164: .4byte gUnknown_8415A21
thumb_func_start sub_8009168
sub_8009168: @ 8009168
push {lr}
- ldr r0, _08009188 @ =gUnknown_3005008
+ ldr r0, _08009188 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _0800918C @ =0x00003a4c
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0xFF
bne _080091A0
- ldr r0, _08009190 @ =gUnknown_300500C
+ ldr r0, _08009190 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -691,9 +691,9 @@ sub_8009168: @ 8009168
ldr r0, _08009194 @ =gUnknown_8415A5C
b _080091A2
.align 2, 0
-_08009188: .4byte gUnknown_3005008
+_08009188: .4byte gSaveBlock1Ptr
_0800918C: .4byte 0x00003a4c
-_08009190: .4byte gUnknown_300500C
+_08009190: .4byte gSaveBlock2Ptr
_08009194: .4byte gUnknown_8415A5C
_08009198:
ldr r0, _0800919C @ =gUnknown_8415A58
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s
index c5e0c564e..9f250560e 100644
--- a/asm/teachy_tv.s
+++ b/asm/teachy_tv.s
@@ -94,7 +94,7 @@ _0815AC28: .4byte gUnknown_203F444
sub_815AC2C: @ 815AC2C
push {r4-r6,lr}
sub sp, 0x4
- ldr r0, _0815AC44 @ =gUnknown_30030F0
+ ldr r0, _0815AC44 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r6, r0, r1
@@ -105,7 +105,7 @@ sub_815AC2C: @ 815AC2C
beq _0815AC9C
b _0815AD6E
.align 2, 0
-_0815AC44: .4byte gUnknown_30030F0
+_0815AC44: .4byte gMain
_0815AC48:
ldr r4, _0815AC90 @ =gUnknown_203F450
ldr r0, _0815AC94 @ =0x00004008
@@ -907,7 +907,7 @@ sub_815B2C0: @ 815B2C0
adds r2, r4, 0x2
adds r1, r4, 0
bl get_coro_args_x18_x1A
- ldr r0, _0815B328 @ =gUnknown_30030F0
+ ldr r0, _0815B328 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
@@ -931,7 +931,7 @@ _0815B30A:
_0815B31C: .4byte gUnknown_3005098
_0815B320: .4byte gUnknown_2037AB8
_0815B324: .4byte gUnknown_203F44A
-_0815B328: .4byte gUnknown_30030F0
+_0815B328: .4byte gMain
_0815B32C: .4byte sub_8107EB8
_0815B330:
movs r0, 0x5
@@ -1167,7 +1167,7 @@ sub_815B4EC: @ 815B4EC
lsls r6, r0, 3
ldr r7, _0815B548 @ =gUnknown_3005098
adds r5, r6, r7
- ldr r0, _0815B54C @ =gUnknown_30030F0
+ ldr r0, _0815B54C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -1202,7 +1202,7 @@ sub_815B4EC: @ 815B4EC
b _0815B578
.align 2, 0
_0815B548: .4byte gUnknown_3005098
-_0815B54C: .4byte gUnknown_30030F0
+_0815B54C: .4byte gMain
_0815B550: .4byte gUnknown_203F450
_0815B554: .4byte 0x00004006
_0815B558: .4byte sub_815B92C
@@ -1323,7 +1323,7 @@ sub_815B624: @ 815B624
lsls r1, 3
ldr r0, _0815B65C @ =gUnknown_3005098
adds r4, r1, r0
- ldr r0, _0815B660 @ =gUnknown_30030F0
+ ldr r0, _0815B660 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -1344,7 +1344,7 @@ _0815B656:
bx r0
.align 2, 0
_0815B65C: .4byte gUnknown_3005098
-_0815B660: .4byte gUnknown_30030F0
+_0815B660: .4byte gMain
thumb_func_end sub_815B624
thumb_func_start sub_815B664
@@ -2158,7 +2158,7 @@ sub_815BC90: @ 815BC90
ldr r4, _0815BCD4 @ =gUnknown_203F444
ldrb r0, [r4, 0x5]
strh r0, [r1]
- ldr r1, _0815BCD8 @ =gUnknown_30030F0
+ ldr r1, _0815BCD8 @ =gMain
ldr r0, _0815BCDC @ =sub_815BD58
str r0, [r1, 0x8]
bl copy_player_party_to_sav1
@@ -2174,7 +2174,7 @@ sub_815BC90: @ 815BC90
_0815BCCC: .4byte gUnknown_3005098
_0815BCD0: .4byte gUnknown_20370C0
_0815BCD4: .4byte gUnknown_203F444
-_0815BCD8: .4byte gUnknown_30030F0
+_0815BCD8: .4byte gMain
_0815BCDC: .4byte sub_815BD58
_0815BCE0:
movs r0, 0x8
diff --git a/asm/text.s b/asm/text.s
index 78b792d16..3928fbff2 100644
--- a/asm/text.s
+++ b/asm/text.s
@@ -408,7 +408,7 @@ _08005654: .4byte gUnknown_3003E50
_08005658:
adds r0, r2, 0
bl TextPrinterDrawDownArrow
- ldr r0, _0800567C @ =gUnknown_30030F0
+ ldr r0, _0800567C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -423,7 +423,7 @@ _08005672:
pop {r1}
bx r1
.align 2, 0
-_0800567C: .4byte gUnknown_30030F0
+_0800567C: .4byte gMain
thumb_func_end TextPrinterWaitWithDownArrow
thumb_func_start TextPrinterWait
@@ -445,7 +445,7 @@ TextPrinterWait: @ 8005680
.align 2, 0
_080056A0: .4byte gUnknown_3003E50
_080056A4:
- ldr r0, _080056C0 @ =gUnknown_30030F0
+ ldr r0, _080056C0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -460,7 +460,7 @@ _080056B8:
pop {r1}
bx r1
.align 2, 0
-_080056C0: .4byte gUnknown_30030F0
+_080056C0: .4byte gMain
thumb_func_end TextPrinterWait
thumb_func_start DrawDownArrow
@@ -596,7 +596,7 @@ _080057B0:
.4byte _08005D44
.4byte _08005D56
_080057CC:
- ldr r2, _08005820 @ =gUnknown_30030F0
+ ldr r2, _08005820 @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x3
ands r0, r1
@@ -641,7 +641,7 @@ _08005810:
strb r0, [r6, 0x1E]
b _08005B30
.align 2, 0
-_08005820: .4byte gUnknown_30030F0
+_08005820: .4byte gMain
_08005824: .4byte gUnknown_3003E50
_08005828:
ldr r2, _08005838 @ =gUnknown_3003E50
@@ -1252,7 +1252,7 @@ _08005CD0:
cmp r2, 0
beq _08005D40
ldr r4, _08005D04 @ =gUnknown_81EA650
- ldr r5, _08005D08 @ =gUnknown_300500C
+ ldr r5, _08005D08 @ =gSaveBlock2Ptr
ldr r0, [r5]
ldrb r0, [r0, 0x14]
lsls r1, r0, 29
@@ -1274,7 +1274,7 @@ _08005CD0:
b _08005D36
.align 2, 0
_08005D04: .4byte gUnknown_81EA650
-_08005D08: .4byte gUnknown_300500C
+_08005D08: .4byte gSaveBlock2Ptr
_08005D0C:
ldrb r0, [r6, 0x4]
lsrs r1, 29
diff --git a/asm/text_window.s b/asm/text_window.s
index ea5565a17..df5c80739 100644
--- a/asm/text_window.s
+++ b/asm/text_window.s
@@ -182,7 +182,7 @@ sub_814FE40: @ 814FE40
lsrs r4, 16
lsls r3, 24
lsrs r3, 24
- ldr r1, _0814FE68 @ =gUnknown_300500C
+ ldr r1, _0814FE68 @ =gSaveBlock2Ptr
ldr r1, [r1]
ldrb r1, [r1, 0x14]
lsrs r1, 3
@@ -192,7 +192,7 @@ sub_814FE40: @ 814FE40
pop {r0}
bx r0
.align 2, 0
-_0814FE68: .4byte gUnknown_300500C
+_0814FE68: .4byte gSaveBlock2Ptr
thumb_func_end sub_814FE40
thumb_func_start sub_814FE6C
@@ -427,7 +427,7 @@ sub_815001C: @ 815001C
lsrs r4, 16
lsls r3, 24
lsrs r3, 24
- ldr r1, _08150044 @ =gUnknown_300500C
+ ldr r1, _08150044 @ =gSaveBlock2Ptr
ldr r1, [r1]
ldrb r1, [r1, 0x14]
lsrs r1, 3
@@ -437,7 +437,7 @@ sub_815001C: @ 815001C
pop {r0}
bx r0
.align 2, 0
-_08150044: .4byte gUnknown_300500C
+_08150044: .4byte gSaveBlock2Ptr
thumb_func_end sub_815001C
thumb_func_start sub_8150048
diff --git a/asm/title_screen.s b/asm/title_screen.s
index 604452899..0151bcba6 100644
--- a/asm/title_screen.s
+++ b/asm/title_screen.s
@@ -9,7 +9,7 @@
sub_8078914: @ 8078914
push {r4-r6,lr}
sub sp, 0xC
- ldr r0, _08078930 @ =gUnknown_30030F0
+ ldr r0, _08078930 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -22,13 +22,13 @@ sub_8078914: @ 8078914
beq _08078946
b _0807893A
.align 2, 0
-_08078930: .4byte gUnknown_30030F0
+_08078930: .4byte gMain
_08078934:
cmp r6, 0x2
bne _0807893A
b _08078AC0
_0807893A:
- ldr r0, _080789D0 @ =gUnknown_30030F0
+ ldr r0, _080789D0 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -93,7 +93,7 @@ _08078946:
strb r0, [r1]
b _08078B18
.align 2, 0
-_080789D0: .4byte gUnknown_30030F0
+_080789D0: .4byte gMain
_080789D4: .4byte gHeap
_080789D8: .4byte 0x040000d4
_080789DC: .4byte 0x8100c000
@@ -216,7 +216,7 @@ _08078B0C: .4byte gUnknown_2037F30
_08078B10: .4byte sub_8078BB4
_08078B14: .4byte sub_8078B9C
_08078B18:
- ldr r1, _08078B30 @ =gUnknown_30030F0
+ ldr r1, _08078B30 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -229,7 +229,7 @@ _08078B26:
pop {r0}
bx r0
.align 2, 0
-_08078B30: .4byte gUnknown_30030F0
+_08078B30: .4byte gMain
thumb_func_end sub_8078914
thumb_func_start sub_8078B34
@@ -353,7 +353,7 @@ sub_8078C24: @ 8078C24
lsls r1, 3
ldr r0, _08078C6C @ =gUnknown_3005098
adds r4, r1, r0
- ldr r0, _08078C70 @ =gUnknown_30030F0
+ ldr r0, _08078C70 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0xB
ands r0, r1
@@ -378,7 +378,7 @@ sub_8078C24: @ 8078C24
b _08078C86
.align 2, 0
_08078C6C: .4byte gUnknown_3005098
-_08078C70: .4byte gUnknown_30030F0
+_08078C70: .4byte gMain
_08078C74:
ldr r0, _08078C8C @ =gUnknown_83BFB84
movs r2, 0
@@ -826,7 +826,7 @@ _08078FD6:
adds r0, 0x1
strh r0, [r4, 0x2]
_08079004:
- ldr r2, _08079034 @ =gUnknown_30030F0
+ ldr r2, _08079034 @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x46
ands r0, r1
@@ -845,7 +845,7 @@ _08079004:
.align 2, 0
_0807902C: .4byte sub_807941C
_08079030: .4byte sub_8079840
-_08079034: .4byte gUnknown_30030F0
+_08079034: .4byte gMain
_08079038: .4byte sub_8078C24
_0807903C: .4byte sub_80796CC
_08079040:
@@ -1119,7 +1119,7 @@ _08079248:
_08079276:
bl Sav2_ClearSetDefault
_0807927A:
- ldr r0, _080792B8 @ =gUnknown_300500C
+ ldr r0, _080792B8 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x15]
lsls r0, 31
@@ -1144,7 +1144,7 @@ _080792A6:
.align 2, 0
_080792B0: .4byte gUnknown_2037AB8
_080792B4: .4byte gUnknown_30053A0
-_080792B8: .4byte gUnknown_300500C
+_080792B8: .4byte gSaveBlock2Ptr
_080792BC: .4byte gHeap
_080792C0: .4byte sub_800C300
_080792C4: .4byte sub_8078C24
diff --git a/asm/tm_case.s b/asm/tm_case.s
index 99541907f..e727ee878 100644
--- a/asm/tm_case.s
+++ b/asm/tm_case.s
@@ -109,7 +109,7 @@ _081318BA:
sub_81318C0: @ 81318C0
push {r4,lr}
sub sp, 0x4
- ldr r0, _081318E0 @ =gUnknown_30030F0
+ ldr r0, _081318E0 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -124,7 +124,7 @@ _081318D4:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_081318E0: .4byte gUnknown_30030F0
+_081318E0: .4byte gMain
_081318E4: .4byte _081318E8
.align 2, 0
_081318E8:
@@ -281,7 +281,7 @@ _08131A42:
movs r3, 0
bl BeginNormalPaletteFade
_08131A52:
- ldr r1, _08131A64 @ =gUnknown_30030F0
+ ldr r1, _08131A64 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -290,7 +290,7 @@ _08131A52:
strb r0, [r1]
b _08131A80
.align 2, 0
-_08131A64: .4byte gUnknown_30030F0
+_08131A64: .4byte gMain
_08131A68:
ldr r0, _08131A78 @ =sub_8131880
bl SetVBlankCallback
@@ -437,7 +437,7 @@ _08131B94:
.align 2, 0
_08131BA8: .4byte gUnknown_8E84B70
_08131BAC:
- ldr r0, _08131BC4 @ =gUnknown_300500C
+ ldr r0, _08131BC4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0
@@ -448,7 +448,7 @@ _08131BAC:
bl LoadCompressedPalette
b _08131BE2
.align 2, 0
-_08131BC4: .4byte gUnknown_300500C
+_08131BC4: .4byte gSaveBlock2Ptr
_08131BC8: .4byte gUnknown_8E84CB0
_08131BCC:
ldr r0, _08131BD8 @ =gUnknown_8E84D20
@@ -1387,7 +1387,7 @@ sub_81322D4: @ 81322D4
subs r2, r4, 0x2
adds r1, r4, 0
bl get_coro_args_x18_x1A
- ldr r0, _0813234C @ =gUnknown_30030F0
+ ldr r0, _0813234C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
@@ -1408,7 +1408,7 @@ sub_81322D4: @ 81322D4
_08132340: .4byte gUnknown_3005098
_08132344: .4byte gUnknown_2037AB8
_08132348: .4byte gUnknown_203B116
-_0813234C: .4byte gUnknown_30030F0
+_0813234C: .4byte gMain
_08132350: .4byte gUnknown_203AD30
_08132354:
movs r0, 0x2
@@ -1881,7 +1881,7 @@ sub_8132758: @ 8132758
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0813277C @ =gUnknown_30030F0
+ ldr r0, _0813277C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1896,7 +1896,7 @@ _08132776:
pop {r0}
bx r0
.align 2, 0
-_0813277C: .4byte gUnknown_30030F0
+_0813277C: .4byte gMain
thumb_func_end sub_8132758
thumb_func_start sub_8132780
@@ -2429,7 +2429,7 @@ sub_8132BC8: @ 8132BC8
.align 2, 0
_08132C14: .4byte gUnknown_3005098
_08132C18:
- ldr r0, _08132C4C @ =gUnknown_30030F0
+ ldr r0, _08132C4C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2449,7 +2449,7 @@ _08132C18:
bl sub_81329C4
b _08132CA6
.align 2, 0
-_08132C4C: .4byte gUnknown_30030F0
+_08132C4C: .4byte gMain
_08132C50:
movs r0, 0x2
ands r0, r1
@@ -2569,7 +2569,7 @@ sub_8132D34: @ 8132D34
mov r2, r8
ldrh r1, [r2, 0x10]
bl sub_809A1D8
- ldr r7, _08132DFC @ =gUnknown_3005008
+ ldr r7, _08132DFC @ =gSaveBlock1Ptr
ldr r4, [r7]
movs r3, 0xA4
lsls r3, 2
@@ -2633,7 +2633,7 @@ sub_8132D34: @ 8132D34
.align 2, 0
_08132DF4: .4byte gUnknown_3005098
_08132DF8: .4byte gUnknown_203AD30
-_08132DFC: .4byte gUnknown_3005008
+_08132DFC: .4byte gSaveBlock1Ptr
_08132E00: .4byte gUnknown_203B116
_08132E04: .4byte gUnknown_3005E70
_08132E08: .4byte sub_8132E0C
@@ -2644,7 +2644,7 @@ sub_8132E0C: @ 8132E0C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08132E60 @ =gUnknown_30030F0
+ ldr r0, _08132E60 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2678,7 +2678,7 @@ _08132E5A:
pop {r0}
bx r0
.align 2, 0
-_08132E60: .4byte gUnknown_30030F0
+_08132E60: .4byte gMain
thumb_func_end sub_8132E0C
thumb_func_start sub_8132E64
@@ -2691,7 +2691,7 @@ sub_8132E64: @ 8132E64
lsls r0, 1
bl AllocZeroed
str r0, [r4]
- ldr r5, _08132F00 @ =gUnknown_3005008
+ ldr r5, _08132F00 @ =gSaveBlock1Ptr
ldr r1, [r5]
ldr r2, _08132F04 @ =0x00000464
mov r8, r2
@@ -2750,7 +2750,7 @@ sub_8132E64: @ 8132E64
bx r0
.align 2, 0
_08132EFC: .4byte gUnknown_203B11C
-_08132F00: .4byte gUnknown_3005008
+_08132F00: .4byte gSaveBlock1Ptr
_08132F04: .4byte 0x00000464
_08132F08: .4byte gUnknown_203B10C
_08132F0C: .4byte 0x00000121
@@ -2806,7 +2806,7 @@ sub_8132F60: @ 8132F60
lsls r0, 3
ldr r1, _08132FA4 @ =gUnknown_3005098
adds r6, r0, r1
- ldr r0, _08132FA8 @ =gUnknown_30030F0
+ ldr r0, _08132FA8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -2833,7 +2833,7 @@ _08132F98:
mov pc, r0
.align 2, 0
_08132FA4: .4byte gUnknown_3005098
-_08132FA8: .4byte gUnknown_30030F0
+_08132FA8: .4byte gMain
_08132FAC: .4byte _08132FB0
.align 2, 0
_08132FB0:
@@ -2901,7 +2901,7 @@ _08133050:
ldrsh r1, [r6, r0]
cmp r1, 0
bne _08133066
- ldr r0, _0813307C @ =gUnknown_30030F0
+ ldr r0, _0813307C @ =gMain
strh r1, [r0, 0x2E]
movs r1, 0x80
strh r1, [r0, 0x30]
@@ -2921,13 +2921,13 @@ _08133076:
strh r0, [r6, 0x12]
b _081331EA
.align 2, 0
-_0813307C: .4byte gUnknown_30030F0
+_0813307C: .4byte gMain
_08133080:
movs r3, 0x12
ldrsh r1, [r6, r3]
cmp r1, 0
bne _08133096
- ldr r0, _081330AC @ =gUnknown_30030F0
+ ldr r0, _081330AC @ =gMain
strh r1, [r0, 0x2E]
movs r1, 0x40
strh r1, [r0, 0x30]
@@ -2947,7 +2947,7 @@ _081330A6:
strh r0, [r6, 0x12]
b _081331EA
.align 2, 0
-_081330AC: .4byte gUnknown_30030F0
+_081330AC: .4byte gMain
_081330B0:
movs r0, 0x1
bl sub_8131F64
@@ -2979,7 +2979,7 @@ _081330E0:
_081330F2:
b _081331EA
_081330F4:
- ldr r0, _08133128 @ =gUnknown_30030F0
+ ldr r0, _08133128 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -3003,7 +3003,7 @@ _08133102:
bl schedule_bg_copy_tilemap_to_vram
b _081331EA
.align 2, 0
-_08133128: .4byte gUnknown_30030F0
+_08133128: .4byte gMain
_0813312C:
movs r0, 0x1
bl sub_8131F64
@@ -3025,7 +3025,7 @@ _08133150: .4byte gUnknown_841C693
_08133154: .4byte gUnknown_3005090
_08133158: .4byte sub_8132F60
_0813315C:
- ldr r0, _0813316C @ =gUnknown_30030F0
+ ldr r0, _0813316C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -3033,7 +3033,7 @@ _0813315C:
beq _08133232
b _081331EA
.align 2, 0
-_0813316C: .4byte gUnknown_30030F0
+_0813316C: .4byte gMain
_08133170:
ldr r0, _081331F4 @ =gUnknown_2037AB8
ldrb r1, [r0, 0x7]
@@ -3043,7 +3043,7 @@ _08133170:
lsrs r7, r0, 24
cmp r7, 0
bne _08133232
- ldr r5, _081331F8 @ =gUnknown_3005008
+ ldr r5, _081331F8 @ =gSaveBlock1Ptr
ldr r0, [r5]
ldr r1, _081331FC @ =0x00000464
adds r0, r1
@@ -3096,7 +3096,7 @@ _081331EA:
b _08133232
.align 2, 0
_081331F4: .4byte gUnknown_2037AB8
-_081331F8: .4byte gUnknown_3005008
+_081331F8: .4byte gSaveBlock1Ptr
_081331FC: .4byte 0x00000464
_08133200: .4byte gUnknown_203B11C
_08133204: .4byte gUnknown_203B10C
@@ -3582,7 +3582,7 @@ _081335DC: .4byte gUnknown_8E99118
thumb_func_start sub_81335E0
sub_81335E0: @ 81335E0
push {lr}
- ldr r0, _08133600 @ =gUnknown_3005008
+ ldr r0, _08133600 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
@@ -3596,7 +3596,7 @@ sub_81335E0: @ 81335E0
pop {r0}
bx r0
.align 2, 0
-_08133600: .4byte gUnknown_3005008
+_08133600: .4byte gSaveBlock1Ptr
thumb_func_end sub_81335E0
thumb_func_start sub_8133604
diff --git a/asm/trade.s b/asm/trade.s
index 393db5bc7..6ebaf9948 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -143,7 +143,7 @@ sub_804C728: @ 804C728
mov r7, r8
push {r7}
sub sp, 0x28
- ldr r1, _0804C74C @ =gUnknown_30030F0
+ ldr r1, _0804C74C @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
@@ -159,7 +159,7 @@ _0804C742:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0804C74C: .4byte gUnknown_30030F0
+_0804C74C: .4byte gMain
_0804C750: .4byte _0804C754
.align 2, 0
_0804C754:
@@ -207,7 +207,7 @@ _0804C7CE:
adds r6, 0x1
cmp r6, 0xD
ble _0804C7CE
- ldr r1, _0804C7F8 @ =gUnknown_30030F0
+ ldr r1, _0804C7F8 @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
@@ -217,7 +217,7 @@ _0804C7E8: .4byte gUnknown_2031DA8
_0804C7EC: .4byte 0x000010f0
_0804C7F0: .4byte gUnknown_2031C90
_0804C7F4: .4byte gUnknown_2031C94
-_0804C7F8: .4byte gUnknown_30030F0
+_0804C7F8: .4byte gMain
_0804C7FC:
ldr r2, _0804C864 @ =gUnknown_2037AB8
ldrb r1, [r2, 0x8]
@@ -276,7 +276,7 @@ _0804C878: .4byte gUnknown_2031DA8
_0804C87C: .4byte gUnknown_3003F3C
_0804C880:
bl sub_8009804
- ldr r1, _0804C8A8 @ =gUnknown_30030F0
+ ldr r1, _0804C8A8 @ =gMain
movs r7, 0x87
lsls r7, 3
adds r1, r7
@@ -295,11 +295,11 @@ _0804C89C:
bl CreateTask
b _0804CEE6
.align 2, 0
-_0804C8A8: .4byte gUnknown_30030F0
+_0804C8A8: .4byte gMain
_0804C8AC: .4byte gUnknown_3003F3C
_0804C8B0: .4byte sub_8081A90
_0804C8B4:
- ldr r0, _0804C8C4 @ =gUnknown_30030F0
+ ldr r0, _0804C8C4 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -307,7 +307,7 @@ _0804C8B4:
strb r1, [r0]
b _0804CEE6
.align 2, 0
-_0804C8C4: .4byte gUnknown_30030F0
+_0804C8C4: .4byte gMain
_0804C8C8:
ldr r2, _0804C8F0 @ =gUnknown_2031DA8
ldr r1, [r2]
@@ -358,22 +358,22 @@ _0804C908:
b _0804CEE6
_0804C928:
bl sub_800A5BC
- ldr r1, _0804C93C @ =gUnknown_30030F0
+ ldr r1, _0804C93C @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
b _0804CEC2
.align 2, 0
_0804C938: .4byte gUnknown_2031DA8
-_0804C93C: .4byte gUnknown_30030F0
+_0804C93C: .4byte gMain
_0804C940:
- ldr r1, _0804C94C @ =gUnknown_30030F0
+ ldr r1, _0804C94C @ =gMain
movs r5, 0x87
lsls r5, 3
adds r1, r5
b _0804CEC2
.align 2, 0
-_0804C94C: .4byte gUnknown_30030F0
+_0804C94C: .4byte gMain
_0804C950:
ldr r0, _0804C9A0 @ =gUnknown_3003F64
ldrb r0, [r0]
@@ -390,7 +390,7 @@ _0804C95A:
_0804C968:
bl sub_80FBB4C
bl CalculatePlayerPartyCount
- ldr r1, _0804C9A4 @ =gUnknown_30030F0
+ ldr r1, _0804C9A4 @ =gMain
movs r7, 0x87
lsls r7, 3
adds r1, r7
@@ -414,7 +414,7 @@ _0804C992:
b _0804CEE6
.align 2, 0
_0804C9A0: .4byte gUnknown_3003F64
-_0804C9A4: .4byte gUnknown_30030F0
+_0804C9A4: .4byte gMain
_0804C9A8: .4byte gUnknown_2031DA8
_0804C9AC: .4byte gUnknown_3003F3C
_0804C9B0:
@@ -428,7 +428,7 @@ _0804C9B0:
bne _0804C9C4
b _0804CEE6
_0804C9C4:
- ldr r1, _0804C9E4 @ =gUnknown_30030F0
+ ldr r1, _0804C9E4 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -442,7 +442,7 @@ _0804C9C4:
b _0804CEE6
.align 2, 0
_0804C9E0: .4byte gUnknown_3003F3C
-_0804C9E4: .4byte gUnknown_30030F0
+_0804C9E4: .4byte gMain
_0804C9E8:
movs r2, 0x87
lsls r2, 3
@@ -456,13 +456,13 @@ _0804C9F0:
b _0804CEE6
_0804C9FC:
bl sub_804F9D8
- ldr r1, _0804CA0C @ =gUnknown_30030F0
+ ldr r1, _0804CA0C @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
b _0804CEC2
.align 2, 0
-_0804CA0C: .4byte gUnknown_30030F0
+_0804CA0C: .4byte gMain
_0804CA10:
bl CalculateEnemyPartyCount
movs r0, 0
@@ -595,7 +595,7 @@ _0804CABE:
cmp r6, r0
blt _0804CABE
_0804CB20:
- ldr r1, _0804CB4C @ =gUnknown_30030F0
+ ldr r1, _0804CB4C @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
@@ -609,7 +609,7 @@ _0804CB3C: .4byte gUnknown_2024284
_0804CB40: .4byte 0xfff40000
_0804CB44: .4byte sub_809718C
_0804CB48: .4byte gUnknown_202402C
-_0804CB4C: .4byte gUnknown_30030F0
+_0804CB4C: .4byte gMain
_0804CB50:
bl sub_8122550
ldr r0, _0804CB70 @ =gUnknown_2031DA8
@@ -619,14 +619,14 @@ _0804CB50:
adds r1, 0x28
movs r2, 0
bl sub_812256C
- ldr r1, _0804CB74 @ =gUnknown_30030F0
+ ldr r1, _0804CB74 @ =gMain
movs r5, 0x87
lsls r5, 3
adds r1, r5
b _0804CEC2
.align 2, 0
_0804CB70: .4byte gUnknown_2031DA8
-_0804CB74: .4byte gUnknown_30030F0
+_0804CB74: .4byte gMain
_0804CB78:
ldr r0, _0804CB94 @ =gUnknown_2031DA8
ldr r1, [r0]
@@ -635,16 +635,16 @@ _0804CB78:
adds r1, 0x28
movs r2, 0x1
bl sub_812256C
- ldr r1, _0804CB98 @ =gUnknown_30030F0
+ ldr r1, _0804CB98 @ =gMain
movs r7, 0x87
lsls r7, 3
adds r1, r7
b _0804CEC2
.align 2, 0
_0804CB94: .4byte gUnknown_2031DA8
-_0804CB98: .4byte gUnknown_30030F0
+_0804CB98: .4byte gMain
_0804CB9C:
- ldr r0, _0804CC14 @ =gUnknown_300500C
+ ldr r0, _0804CC14 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r6, _0804CC18 @ =gUnknown_2031C94
ldr r1, [r6]
@@ -685,7 +685,7 @@ _0804CB9C:
ldr r1, [r6, 0x20]
movs r2, 0x18
bl sub_804F728
- ldr r1, _0804CC28 @ =gUnknown_30030F0
+ ldr r1, _0804CC28 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -699,12 +699,12 @@ _0804CB9C:
strb r2, [r0]
b _0804CEE6
.align 2, 0
-_0804CC14: .4byte gUnknown_300500C
+_0804CC14: .4byte gSaveBlock2Ptr
_0804CC18: .4byte gUnknown_2031C94
_0804CC1C: .4byte gUnknown_201C000
_0804CC20: .4byte gUnknown_2022744
_0804CC24: .4byte gUnknown_8261ECC
-_0804CC28: .4byte gUnknown_30030F0
+_0804CC28: .4byte gMain
_0804CC2C: .4byte gUnknown_2031DA8
_0804CC30:
bl sub_804F610
@@ -715,7 +715,7 @@ _0804CC30:
_0804CC3C:
b _0804CEBA
_0804CC3E:
- ldr r0, _0804CCFC @ =gUnknown_300500C
+ ldr r0, _0804CCFC @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0x1
movs r2, 0
@@ -802,17 +802,17 @@ _0804CCC6:
adds r6, 0x1
cmp r6, 0x2
ble _0804CCC6
- ldr r1, _0804CD0C @ =gUnknown_30030F0
+ ldr r1, _0804CD0C @ =gMain
movs r5, 0x87
lsls r5, 3
adds r1, r5
b _0804CEC2
.align 2, 0
-_0804CCFC: .4byte gUnknown_300500C
+_0804CCFC: .4byte gSaveBlock2Ptr
_0804CD00: .4byte gUnknown_8261E8A
_0804CD04: .4byte gUnknown_8261CC8
_0804CD08: .4byte gUnknown_2022744
-_0804CD0C: .4byte gUnknown_30030F0
+_0804CD0C: .4byte gMain
_0804CD10:
ldr r4, _0804CDCC @ =gUnknown_8261CC8
add r1, sp, 0x10
@@ -893,7 +893,7 @@ _0804CD5C:
ldr r0, [r2]
adds r0, 0x35
strb r3, [r0]
- ldr r1, _0804CDDC @ =gUnknown_30030F0
+ ldr r1, _0804CDDC @ =gMain
movs r5, 0x87
lsls r5, 3
adds r1, r5
@@ -908,7 +908,7 @@ _0804CDCC: .4byte gUnknown_8261CC8
_0804CDD0: .4byte gUnknown_8261CB0
_0804CDD4: .4byte gUnknown_8261E40
_0804CDD8: .4byte gUnknown_2031DA8
-_0804CDDC: .4byte gUnknown_30030F0
+_0804CDDC: .4byte gMain
_0804CDE0:
movs r0, 0
bl sub_804F748
@@ -921,7 +921,7 @@ _0804CDE0:
ldr r0, [r2]
strb r1, [r0, 0x1]
bl sub_804D764
- ldr r1, _0804CE18 @ =gUnknown_30030F0
+ ldr r1, _0804CE18 @ =gMain
movs r7, 0x87
lsls r7, 3
adds r1, r7
@@ -933,14 +933,14 @@ _0804CDE0:
b _0804CEE6
.align 2, 0
_0804CE14: .4byte gUnknown_2031DA8
-_0804CE18: .4byte gUnknown_30030F0
+_0804CE18: .4byte gMain
_0804CE1C: .4byte 0x00000111
_0804CE20:
movs r0, 0x1
bl sub_804F748
movs r0, 0x1
bl sub_804F020
- ldr r1, _0804CE44 @ =gUnknown_30030F0
+ ldr r1, _0804CE44 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -952,17 +952,17 @@ _0804CE3A:
bl sub_804D694
b _0804CEBA
.align 2, 0
-_0804CE44: .4byte gUnknown_30030F0
+_0804CE44: .4byte gMain
_0804CE48:
movs r0, 0x1
bl sub_804D694
- ldr r1, _0804CE58 @ =gUnknown_30030F0
+ ldr r1, _0804CE58 @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
b _0804CEC2
.align 2, 0
-_0804CE58: .4byte gUnknown_30030F0
+_0804CE58: .4byte gMain
_0804CE5C:
movs r0, 0x1
negs r0, r0
@@ -971,13 +971,13 @@ _0804CE5C:
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
- ldr r1, _0804CE78 @ =gUnknown_30030F0
+ ldr r1, _0804CE78 @ =gMain
movs r5, 0x87
lsls r5, 3
adds r1, r5
b _0804CEC2
.align 2, 0
-_0804CE78: .4byte gUnknown_30030F0
+_0804CE78: .4byte gMain
_0804CE7C:
movs r1, 0x82
lsls r1, 5
@@ -985,29 +985,29 @@ _0804CE7C:
bl SetGpuReg
movs r0, 0x2
bl sub_804D694
- ldr r1, _0804CE98 @ =gUnknown_30030F0
+ ldr r1, _0804CE98 @ =gMain
movs r7, 0x87
lsls r7, 3
adds r1, r7
b _0804CEC2
.align 2, 0
-_0804CE98: .4byte gUnknown_30030F0
+_0804CE98: .4byte gMain
_0804CE9C:
movs r0, 0
bl sub_804F890
- ldr r1, _0804CEAC @ =gUnknown_30030F0
+ ldr r1, _0804CEAC @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _0804CEC2
.align 2, 0
-_0804CEAC: .4byte gUnknown_30030F0
+_0804CEAC: .4byte gMain
_0804CEB0:
movs r0, 0x1
bl sub_804F890
bl sub_804F964
_0804CEBA:
- ldr r1, _0804CECC @ =gUnknown_30030F0
+ ldr r1, _0804CECC @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
@@ -1017,7 +1017,7 @@ _0804CEC2:
strb r0, [r1]
b _0804CEE6
.align 2, 0
-_0804CECC: .4byte gUnknown_30030F0
+_0804CECC: .4byte gMain
_0804CED0:
ldr r0, _0804CF08 @ =gUnknown_2037AB8
ldrb r1, [r0, 0x7]
@@ -1053,7 +1053,7 @@ sub_804CF14: @ 804CF14
mov r7, r8
push {r7}
sub sp, 0x24
- ldr r1, _0804CF38 @ =gUnknown_30030F0
+ ldr r1, _0804CF38 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
@@ -1069,7 +1069,7 @@ _0804CF2E:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0804CF38: .4byte gUnknown_30030F0
+_0804CF38: .4byte gMain
_0804CF3C: .4byte _0804CF40
.align 2, 0
_0804CF40:
@@ -1098,13 +1098,13 @@ _0804CF40:
.4byte _0804D4C0
_0804CF9C:
bl sub_804C600
- ldr r1, _0804CFAC @ =gUnknown_30030F0
+ ldr r1, _0804CFAC @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
b _0804D4B4
.align 2, 0
-_0804CFAC: .4byte gUnknown_30030F0
+_0804CFAC: .4byte gMain
_0804CFB0:
movs r5, 0x87
lsls r5, 3
@@ -1122,13 +1122,13 @@ _0804CFC0:
b _0804D4B4
_0804CFC8:
bl CalculatePlayerPartyCount
- ldr r1, _0804CFD8 @ =gUnknown_30030F0
+ ldr r1, _0804CFD8 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _0804D4B4
.align 2, 0
-_0804CFD8: .4byte gUnknown_30030F0
+_0804CFD8: .4byte gMain
_0804CFDC:
ldr r0, _0804CFFC @ =gUnknown_3003F3C
ldrb r0, [r0]
@@ -1139,14 +1139,14 @@ _0804CFDC:
movs r1, 0
bl sub_80FCD74
_0804CFF0:
- ldr r1, _0804D000 @ =gUnknown_30030F0
+ ldr r1, _0804D000 @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
b _0804D4B4
.align 2, 0
_0804CFFC: .4byte gUnknown_3003F3C
-_0804D000: .4byte gUnknown_30030F0
+_0804D000: .4byte gMain
_0804D004:
movs r5, 0x87
lsls r5, 3
@@ -1285,7 +1285,7 @@ _0804D0BE:
cmp r6, r0
blt _0804D0BE
_0804D120:
- ldr r1, _0804D14C @ =gUnknown_30030F0
+ ldr r1, _0804D14C @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
@@ -1299,7 +1299,7 @@ _0804D13C: .4byte gUnknown_2024284
_0804D140: .4byte 0xfff40000
_0804D144: .4byte sub_809718C
_0804D148: .4byte gUnknown_202402C
-_0804D14C: .4byte gUnknown_30030F0
+_0804D14C: .4byte gMain
_0804D150:
bl sub_8122550
ldr r0, _0804D170 @ =gUnknown_2031DA8
@@ -1309,14 +1309,14 @@ _0804D150:
adds r1, 0x28
movs r2, 0
bl sub_812256C
- ldr r1, _0804D174 @ =gUnknown_30030F0
+ ldr r1, _0804D174 @ =gMain
movs r5, 0x87
lsls r5, 3
adds r1, r5
b _0804D4B4
.align 2, 0
_0804D170: .4byte gUnknown_2031DA8
-_0804D174: .4byte gUnknown_30030F0
+_0804D174: .4byte gMain
_0804D178:
ldr r0, _0804D194 @ =gUnknown_2031DA8
ldr r1, [r0]
@@ -1325,16 +1325,16 @@ _0804D178:
adds r1, 0x28
movs r2, 0x1
bl sub_812256C
- ldr r1, _0804D198 @ =gUnknown_30030F0
+ ldr r1, _0804D198 @ =gMain
movs r7, 0x87
lsls r7, 3
adds r1, r7
b _0804D4B4
.align 2, 0
_0804D194: .4byte gUnknown_2031DA8
-_0804D198: .4byte gUnknown_30030F0
+_0804D198: .4byte gMain
_0804D19C:
- ldr r0, _0804D214 @ =gUnknown_300500C
+ ldr r0, _0804D214 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r6, _0804D218 @ =gUnknown_2031C94
ldr r1, [r6]
@@ -1375,7 +1375,7 @@ _0804D19C:
ldr r1, [r6, 0x20]
movs r2, 0x18
bl sub_804F728
- ldr r1, _0804D228 @ =gUnknown_30030F0
+ ldr r1, _0804D228 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -1390,12 +1390,12 @@ _0804D200:
strb r2, [r0]
b _0804D4D2
.align 2, 0
-_0804D214: .4byte gUnknown_300500C
+_0804D214: .4byte gSaveBlock2Ptr
_0804D218: .4byte gUnknown_2031C94
_0804D21C: .4byte gUnknown_201C000
_0804D220: .4byte gUnknown_2022744
_0804D224: .4byte gUnknown_8261ECC
-_0804D228: .4byte gUnknown_30030F0
+_0804D228: .4byte gMain
_0804D22C: .4byte gUnknown_2031DA8
_0804D230:
bl sub_804F610
@@ -1404,15 +1404,15 @@ _0804D230:
bne _0804D23C
b _0804D4D2
_0804D23C:
- ldr r1, _0804D248 @ =gUnknown_30030F0
+ ldr r1, _0804D248 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _0804D4B4
.align 2, 0
-_0804D248: .4byte gUnknown_30030F0
+_0804D248: .4byte gMain
_0804D24C:
- ldr r0, _0804D30C @ =gUnknown_300500C
+ ldr r0, _0804D30C @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0x1
movs r2, 0
@@ -1499,17 +1499,17 @@ _0804D2D4:
adds r6, 0x1
cmp r6, 0x2
ble _0804D2D4
- ldr r1, _0804D31C @ =gUnknown_30030F0
+ ldr r1, _0804D31C @ =gMain
movs r5, 0x87
lsls r5, 3
adds r1, r5
b _0804D4B4
.align 2, 0
-_0804D30C: .4byte gUnknown_300500C
+_0804D30C: .4byte gSaveBlock2Ptr
_0804D310: .4byte gUnknown_8261E8A
_0804D314: .4byte gUnknown_8261CC8
_0804D318: .4byte gUnknown_2022744
-_0804D31C: .4byte gUnknown_30030F0
+_0804D31C: .4byte gMain
_0804D320:
ldr r4, _0804D3B0 @ =gUnknown_8261CC8
add r1, sp, 0xC
@@ -1612,7 +1612,7 @@ _0804D3C0:
ldr r1, [r4]
adds r1, 0x34
strb r0, [r1]
- ldr r0, _0804D410 @ =gUnknown_30030F0
+ ldr r0, _0804D410 @ =gMain
movs r7, 0x87
lsls r7, 3
adds r0, r7
@@ -1623,7 +1623,7 @@ _0804D3C0:
_0804D404: .4byte gUnknown_8261CB0
_0804D408: .4byte gUnknown_8261E40
_0804D40C: .4byte gUnknown_2031DA8
-_0804D410: .4byte gUnknown_30030F0
+_0804D410: .4byte gMain
_0804D414:
movs r0, 0
bl sub_804D694
@@ -1638,14 +1638,14 @@ _0804D41C:
ldr r0, [r2]
strb r1, [r0, 0x1]
bl sub_804D764
- ldr r1, _0804D440 @ =gUnknown_30030F0
+ ldr r1, _0804D440 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _0804D4B4
.align 2, 0
_0804D43C: .4byte gUnknown_2031DA8
-_0804D440: .4byte gUnknown_30030F0
+_0804D440: .4byte gMain
_0804D444:
ldr r2, _0804D478 @ =gUnknown_2037AB8
ldrb r1, [r2, 0x8]
@@ -1665,14 +1665,14 @@ _0804D444:
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
- ldr r1, _0804D47C @ =gUnknown_30030F0
+ ldr r1, _0804D47C @ =gMain
movs r3, 0x87
lsls r3, 3
adds r1, r3
b _0804D4B4
.align 2, 0
_0804D478: .4byte gUnknown_2037AB8
-_0804D47C: .4byte gUnknown_30030F0
+_0804D47C: .4byte gMain
_0804D480:
movs r1, 0x82
lsls r1, 5
@@ -1680,13 +1680,13 @@ _0804D480:
bl SetGpuReg
movs r0, 0x2
bl sub_804D694
- ldr r1, _0804D49C @ =gUnknown_30030F0
+ ldr r1, _0804D49C @ =gMain
movs r5, 0x87
lsls r5, 3
adds r1, r5
b _0804D4B4
.align 2, 0
-_0804D49C: .4byte gUnknown_30030F0
+_0804D49C: .4byte gMain
_0804D4A0:
movs r7, 0x87
lsls r7, 3
@@ -1695,7 +1695,7 @@ _0804D4A0:
_0804D4A8:
bl sub_804F964
_0804D4AC:
- ldr r1, _0804D4BC @ =gUnknown_30030F0
+ ldr r1, _0804D4BC @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -1705,7 +1705,7 @@ _0804D4B4:
strb r0, [r1]
b _0804D4D2
.align 2, 0
-_0804D4BC: .4byte gUnknown_30030F0
+_0804D4BC: .4byte gMain
_0804D4C0:
ldr r0, _0804D4F0 @ =gUnknown_2037AB8
ldrb r1, [r0, 0x7]
@@ -1825,7 +1825,7 @@ _0804D59E:
thumb_func_start sub_804D5A4
sub_804D5A4: @ 804D5A4
push {r4,r5,lr}
- ldr r5, _0804D5E4 @ =gUnknown_30030F0
+ ldr r5, _0804D5E4 @ =gMain
ldr r0, _0804D5E8 @ =sub_804C718
str r0, [r5, 0x8]
ldr r0, _0804D5EC @ =gUnknown_3003F3C
@@ -1850,7 +1850,7 @@ sub_804D5A4: @ 804D5A4
bl SetMainCallback2
b _0804D620
.align 2, 0
-_0804D5E4: .4byte gUnknown_30030F0
+_0804D5E4: .4byte gMain
_0804D5E8: .4byte sub_804C718
_0804D5EC: .4byte gUnknown_3003F3C
_0804D5F0: .4byte gUnknown_2031C90
@@ -2357,7 +2357,7 @@ _0804DA28: .4byte gUnknown_2022118
_0804DA2C: .4byte gUnknown_2031DA8
_0804DA30:
ldr r0, _0804DA48 @ =gUnknown_2022618
- ldr r1, _0804DA4C @ =gUnknown_3005008
+ ldr r1, _0804DA4C @ =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, _0804DA50 @ =0x00002cd0
adds r1, r2
@@ -2368,7 +2368,7 @@ _0804DA30:
b _0804DB96
.align 2, 0
_0804DA48: .4byte gUnknown_2022618
-_0804DA4C: .4byte gUnknown_3005008
+_0804DA4C: .4byte gSaveBlock1Ptr
_0804DA50: .4byte 0x00002cd0
_0804DA54: .4byte gUnknown_2031DA8
_0804DA58:
@@ -2409,7 +2409,7 @@ _0804DA9C: .4byte gUnknown_2022118
_0804DAA0: .4byte gUnknown_2031DA8
_0804DAA4:
ldr r0, _0804DABC @ =gUnknown_2022618
- ldr r1, _0804DAC0 @ =gUnknown_3005008
+ ldr r1, _0804DAC0 @ =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, _0804DAC4 @ =0x0000309c
adds r1, r2
@@ -2420,7 +2420,7 @@ _0804DAA4:
b _0804DB96
.align 2, 0
_0804DABC: .4byte gUnknown_2022618
-_0804DAC0: .4byte gUnknown_3005008
+_0804DAC0: .4byte gSaveBlock1Ptr
_0804DAC4: .4byte 0x0000309c
_0804DAC8: .4byte gUnknown_2031DA8
_0804DACC:
@@ -3299,7 +3299,7 @@ _0804E18C:
sub_804E194: @ 804E194
push {r4,r5,lr}
sub sp, 0xC
- ldr r0, _0804E1B4 @ =gUnknown_30030F0
+ ldr r0, _0804E1B4 @ =gMain
ldrh r1, [r0, 0x30]
movs r0, 0x40
ands r0, r1
@@ -3312,7 +3312,7 @@ sub_804E194: @ 804E194
bl TradeMenuMoveCursor
b _0804E208
.align 2, 0
-_0804E1B4: .4byte gUnknown_30030F0
+_0804E1B4: .4byte gMain
_0804E1B8: .4byte gUnknown_2031DA8
_0804E1BC:
movs r0, 0x80
@@ -3351,7 +3351,7 @@ _0804E1F4:
movs r1, 0x3
bl TradeMenuMoveCursor
_0804E208:
- ldr r0, _0804E280 @ =gUnknown_30030F0
+ ldr r0, _0804E280 @ =gMain
ldrh r1, [r0, 0x2E]
movs r5, 0x1
adds r0, r5, 0
@@ -3403,7 +3403,7 @@ _0804E208:
b _0804E2DE
.align 2, 0
_0804E27C: .4byte gUnknown_2031DA8
-_0804E280: .4byte gUnknown_30030F0
+_0804E280: .4byte gMain
_0804E284: .4byte gUnknown_8261EE4
_0804E288:
cmp r0, 0xB
@@ -3448,7 +3448,7 @@ _0804E2A6:
movs r2, 0x18
bl sub_804F728
_0804E2DE:
- ldr r0, _0804E328 @ =gUnknown_30030F0
+ ldr r0, _0804E328 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
lsls r0, 1
@@ -3483,7 +3483,7 @@ _0804E314:
_0804E31C: .4byte gUnknown_8261FC4
_0804E320: .4byte gUnknown_8261ECC
_0804E324: .4byte 0x06010000
-_0804E328: .4byte gUnknown_30030F0
+_0804E328: .4byte gMain
_0804E32C: .4byte gUnknown_2031DA8
thumb_func_end sub_804E194
@@ -3644,7 +3644,7 @@ _0804E468: .4byte gUnknown_2031DA8
thumb_func_start sub_804E46C
sub_804E46C: @ 804E46C
push {lr}
- ldr r0, _0804E490 @ =gUnknown_30030F0
+ ldr r0, _0804E490 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -3662,7 +3662,7 @@ _0804E48C:
pop {r0}
bx r0
.align 2, 0
-_0804E490: .4byte gUnknown_30030F0
+_0804E490: .4byte gMain
thumb_func_end sub_804E46C
thumb_func_start sub_804E494
@@ -4183,7 +4183,7 @@ _0804E87C: .4byte gUnknown_8261FC4
thumb_func_start sub_804E880
sub_804E880: @ 804E880
push {r4-r6,lr}
- ldr r0, _0804E8FC @ =gUnknown_30030F0
+ ldr r0, _0804E8FC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -4239,7 +4239,7 @@ _0804E8F4:
pop {r0}
bx r0
.align 2, 0
-_0804E8FC: .4byte gUnknown_30030F0
+_0804E8FC: .4byte gMain
_0804E900: .4byte gUnknown_2031DA8
_0804E904: .4byte gUnknown_202063C
thumb_func_end sub_804E880
@@ -6382,7 +6382,7 @@ _0804F9D4: .4byte gUnknown_202063C
sub_804F9D8: @ 804F9D8
push {r4,r5,lr}
movs r2, 0
- ldr r5, _0804FA08 @ =gUnknown_3005008
+ ldr r5, _0804FA08 @ =gSaveBlock1Ptr
ldr r4, _0804FA0C @ =0x0000309c
ldr r3, _0804FA10 @ =gUnknown_2031DA8
_0804F9E2:
@@ -6407,7 +6407,7 @@ _0804F9FC:
pop {r0}
bx r0
.align 2, 0
-_0804FA08: .4byte gUnknown_3005008
+_0804FA08: .4byte gSaveBlock1Ptr
_0804FA0C: .4byte 0x0000309c
_0804FA10: .4byte gUnknown_2031DA8
thumb_func_end sub_804F9D8
@@ -7390,7 +7390,7 @@ _08050134: .4byte nullsub_8
sub_8050138: @ 8050138
push {r4-r6,lr}
sub sp, 0x4
- ldr r1, _08050158 @ =gUnknown_30030F0
+ ldr r1, _08050158 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
@@ -7406,7 +7406,7 @@ _0805014E:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08050158: .4byte gUnknown_30030F0
+_08050158: .4byte gMain
_0805015C: .4byte _08050160
.align 2, 0
_08050160:
@@ -7447,7 +7447,7 @@ _080501A8:
bl SetVBlankCallback
bl sub_80504CC
bl sub_804FF24
- ldr r1, _0805023C @ =gUnknown_30030F0
+ ldr r1, _0805023C @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -7495,7 +7495,7 @@ _0805022C: .4byte gUnknown_202271A
_08050230: .4byte 0x00001144
_08050234: .4byte gUnknown_2031DAC
_08050238: .4byte sub_804FF0C
-_0805023C: .4byte gUnknown_30030F0
+_0805023C: .4byte gMain
_08050240:
ldr r0, _08050270 @ =gUnknown_3003F64
ldrb r5, [r0]
@@ -7509,7 +7509,7 @@ _08050240:
movs r1, 0x1
strb r1, [r0]
bl sub_8009804
- ldr r1, _08050278 @ =gUnknown_30030F0
+ ldr r1, _08050278 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
@@ -7522,7 +7522,7 @@ _08050240:
.align 2, 0
_08050270: .4byte gUnknown_3003F64
_08050274: .4byte gUnknown_2031DAC
-_08050278: .4byte gUnknown_30030F0
+_08050278: .4byte gMain
_0805027C:
movs r0, 0x87
lsls r0, 3
@@ -7572,14 +7572,14 @@ _080502B4:
b _08050472
_080502D6:
bl sub_800A5BC
- ldr r1, _080502E8 @ =gUnknown_30030F0
+ ldr r1, _080502E8 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _08050440
.align 2, 0
_080502E4: .4byte gUnknown_2031DAC
-_080502E8: .4byte gUnknown_30030F0
+_080502E8: .4byte gMain
_080502EC:
bl sub_804FF4C
b _08050472
@@ -7598,14 +7598,14 @@ _08050300:
beq _0805030E
b _08050472
_0805030E:
- ldr r1, _0805031C @ =gUnknown_30030F0
+ ldr r1, _0805031C @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _08050440
.align 2, 0
_08050318: .4byte gUnknown_3003F64
-_0805031C: .4byte gUnknown_30030F0
+_0805031C: .4byte gMain
_08050320:
ldr r2, _08050340 @ =gUnknown_2031DAC
ldr r0, [r2]
@@ -7627,13 +7627,13 @@ _08050344:
movs r0, 0
movs r1, 0x1
bl sub_804FFE4
- ldr r1, _08050358 @ =gUnknown_30030F0
+ ldr r1, _08050358 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _08050440
.align 2, 0
-_08050358: .4byte gUnknown_30030F0
+_08050358: .4byte gMain
_0805035C:
movs r0, 0x1
movs r1, 0
@@ -7644,13 +7644,13 @@ _08050366:
movs r1, 0x1
bl sub_804FFE4
bl sub_80504B0
- ldr r1, _0805037C @ =gUnknown_30030F0
+ ldr r1, _0805037C @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _08050440
.align 2, 0
-_0805037C: .4byte gUnknown_30030F0
+_0805037C: .4byte gMain
_08050380:
bl sub_8050DE0
ldr r0, _08050394 @ =gUnknown_826CDD4
@@ -7711,7 +7711,7 @@ _0805039C:
adds r0, r4, 0
movs r2, 0x7
bl memcpy
- ldr r1, _0805042C @ =gUnknown_30030F0
+ ldr r1, _0805042C @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
@@ -7722,12 +7722,12 @@ _0805041C: .4byte gUnknown_2024284
_08050420: .4byte gUnknown_2031DAC
_08050424: .4byte gUnknown_202402C
_08050428: .4byte gUnknown_2022744
-_0805042C: .4byte gUnknown_30030F0
+_0805042C: .4byte gMain
_08050430:
bl sub_805049C
bl sub_8050E24
_08050438:
- ldr r1, _08050448 @ =gUnknown_30030F0
+ ldr r1, _08050448 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -7737,7 +7737,7 @@ _08050440:
strb r0, [r1]
b _08050472
.align 2, 0
-_08050448: .4byte gUnknown_30030F0
+_08050448: .4byte gMain
_0805044C:
ldr r0, _08050490 @ =gUnknown_2037AB8
ldrb r1, [r0, 0x7]
@@ -7907,7 +7907,7 @@ _080505C8: .4byte gUnknown_826D1BC
sub_80505CC: @ 80505CC
push {r4,r5,lr}
sub sp, 0xC
- ldr r0, _080505EC @ =gUnknown_30030F0
+ ldr r0, _080505EC @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -7922,7 +7922,7 @@ _080505E0:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080505EC: .4byte gUnknown_30030F0
+_080505EC: .4byte gMain
_080505F0: .4byte _080505F4
.align 2, 0
_080505F4:
@@ -7948,7 +7948,7 @@ _08050628:
movs r0, 0x6
strb r0, [r1, 0x1]
ldr r4, _080506D4 @ =gUnknown_2022744
- ldr r0, _080506D8 @ =gUnknown_300500C
+ ldr r0, _080506D8 @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r0, r4, 0
bl StringCopy
@@ -8004,7 +8004,7 @@ _08050628:
adds r0, 0xEC
strh r5, [r0]
str r5, [r2, 0x64]
- ldr r0, _080506E8 @ =gUnknown_30030F0
+ ldr r0, _080506E8 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -8015,11 +8015,11 @@ _08050628:
_080506CC: .4byte gUnknown_2031DA4
_080506D0: .4byte gUnknown_20370C2
_080506D4: .4byte gUnknown_2022744
-_080506D8: .4byte gUnknown_300500C
+_080506D8: .4byte gSaveBlock2Ptr
_080506DC: .4byte gUnknown_202402C
_080506E0: .4byte gUnknown_2031DAC
_080506E4: .4byte sub_804FF0C
-_080506E8: .4byte gUnknown_30030F0
+_080506E8: .4byte gMain
_080506EC:
movs r0, 0
movs r1, 0
@@ -8071,7 +8071,7 @@ _08050754:
bl sub_8050968
bl sub_8050E24
_08050764:
- ldr r1, _08050774 @ =gUnknown_30030F0
+ ldr r1, _08050774 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
@@ -8080,7 +8080,7 @@ _08050764:
strb r0, [r1]
b _0805077E
.align 2, 0
-_08050774: .4byte gUnknown_30030F0
+_08050774: .4byte gMain
_08050778:
ldr r0, _0805079C @ =sub_8050948
bl SetMainCallback2
@@ -8187,7 +8187,7 @@ sub_805080C: @ 805080C
mov r8, r0
cmp r6, 0xFF
beq _08050866
- ldr r0, _080508E0 @ =gUnknown_3005008
+ ldr r0, _080508E0 @ =gSaveBlock1Ptr
lsls r1, r6, 3
adds r1, r6
lsls r1, 2
@@ -8252,7 +8252,7 @@ _080508CA:
.align 2, 0
_080508D8: .4byte gUnknown_2024284
_080508DC: .4byte gUnknown_202402C
-_080508E0: .4byte gUnknown_3005008
+_080508E0: .4byte gSaveBlock1Ptr
_080508E4: .4byte 0x00002cd0
_080508E8: .4byte gUnknown_2031DAC
_080508EC: .4byte gUnknown_2031CCC
@@ -11037,7 +11037,7 @@ _08052216:
movs r0, 0x1
b _0805231A
_08052226:
- ldr r0, _08052238 @ =gUnknown_30030F0
+ ldr r0, _08052238 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -11046,7 +11046,7 @@ _08052226:
adds r1, r2, 0
b _080522AC
.align 2, 0
-_08052238: .4byte gUnknown_30030F0
+_08052238: .4byte gMain
_0805223C:
ldr r0, _08052280 @ =gUnknown_20370C2
ldrb r0, [r0]
@@ -13262,7 +13262,7 @@ _08053672:
movs r0, 0x1
b _08053776
_08053682:
- ldr r0, _08053694 @ =gUnknown_30030F0
+ ldr r0, _08053694 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -13271,7 +13271,7 @@ _08053682:
adds r1, r2, 0
b _08053708
.align 2, 0
-_08053694: .4byte gUnknown_30030F0
+_08053694: .4byte gMain
_08053698:
ldr r0, _080536DC @ =gUnknown_20370C2
ldrb r0, [r0]
@@ -13383,7 +13383,7 @@ sub_8053788: @ 8053788
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _080537A4 @ =gUnknown_30030F0
+ ldr r0, _080537A4 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r0, r2
@@ -13394,15 +13394,15 @@ sub_8053788: @ 8053788
beq _080537B8
b _08053814
.align 2, 0
-_080537A4: .4byte gUnknown_30030F0
+_080537A4: .4byte gMain
_080537A8:
movs r0, 0x4
strb r0, [r1]
- ldr r1, _080537B4 @ =gUnknown_3003530
+ ldr r1, _080537B4 @ =gSoftResetDisabled
movs r0, 0x1
b _08053812
.align 2, 0
-_080537B4: .4byte gUnknown_3003530
+_080537B4: .4byte gSoftResetDisabled
_080537B8:
ldr r0, _080537F4 @ =gUnknown_300537C
ldr r1, _080537F8 @ =sub_8053E8C
@@ -14243,7 +14243,7 @@ _08053E88: .4byte 0x0000dcba
sub_8053E8C: @ 8053E8C
push {r4,lr}
sub sp, 0x4
- ldr r1, _08053EAC @ =gUnknown_30030F0
+ ldr r1, _08053EAC @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
@@ -14259,7 +14259,7 @@ _08053EA2:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08053EAC: .4byte gUnknown_30030F0
+_08053EAC: .4byte gMain
_08053EB0: .4byte _08053EB4
.align 2, 0
_08053EB4:
@@ -14380,7 +14380,7 @@ _08054060: .4byte gUnknown_2021D18
_08054064: .4byte gUnknown_841E325
_08054068:
bl sub_800AB9C
- ldr r0, _0805407C @ =gUnknown_30030F0
+ ldr r0, _0805407C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -14388,7 +14388,7 @@ _08054068:
movs r1, 0x64
b _080541F0
.align 2, 0
-_0805407C: .4byte gUnknown_30030F0
+_0805407C: .4byte gMain
_08054080:
ldr r0, _080540B4 @ =gUnknown_2031DAC
ldr r3, [r0]
@@ -14411,14 +14411,14 @@ _0805409C:
bne _080540A8
b _08054396
_080540A8:
- ldr r0, _080540B8 @ =gUnknown_30030F0
+ ldr r0, _080540B8 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
b _080540D0
.align 2, 0
_080540B4: .4byte gUnknown_2031DAC
-_080540B8: .4byte gUnknown_30030F0
+_080540B8: .4byte gMain
_080540BC:
bl sub_800A4BC
lsls r0, 24
@@ -14426,7 +14426,7 @@ _080540BC:
bne _080540C8
b _08054396
_080540C8:
- ldr r0, _080540D8 @ =gUnknown_30030F0
+ ldr r0, _080540D8 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -14435,7 +14435,7 @@ _080540D0:
strb r1, [r0]
b _08054396
.align 2, 0
-_080540D8: .4byte gUnknown_30030F0
+_080540D8: .4byte gMain
_080540DC:
movs r0, 0x87
lsls r0, 3
@@ -14497,7 +14497,7 @@ _08054132:
_0805415A:
bl sub_804C1C0
bl sub_80DA3AC
- ldr r1, _08054180 @ =gUnknown_30030F0
+ ldr r1, _08054180 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
@@ -14510,7 +14510,7 @@ _0805415A:
_08054174: .4byte gUnknown_2031DAC
_08054178: .4byte gUnknown_3003F3C
_0805417C: .4byte gUnknown_202273C
-_08054180: .4byte gUnknown_30030F0
+_08054180: .4byte gMain
_08054184:
ldr r0, _0805419C @ =gUnknown_2031DAC
ldr r1, [r0]
@@ -14534,7 +14534,7 @@ _080541A0:
cmp r1, 0
beq _080541C4
bl sav2_gender2_inplace_and_xFE
- ldr r0, _080541C0 @ =gUnknown_30030F0
+ ldr r0, _080541C0 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -14542,12 +14542,12 @@ _080541A0:
strb r1, [r0]
b _08054396
.align 2, 0
-_080541C0: .4byte gUnknown_30030F0
+_080541C0: .4byte gMain
_080541C4:
ldr r0, _080541D8 @ =gUnknown_2031DAC
ldr r0, [r0]
str r1, [r0, 0x64]
- ldr r0, _080541DC @ =gUnknown_30030F0
+ ldr r0, _080541DC @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
@@ -14556,10 +14556,10 @@ _080541C4:
b _08054396
.align 2, 0
_080541D8: .4byte gUnknown_2031DAC
-_080541DC: .4byte gUnknown_30030F0
+_080541DC: .4byte gMain
_080541E0:
bl sub_80DA40C
- ldr r0, _080541FC @ =gUnknown_30030F0
+ ldr r0, _080541FC @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -14573,7 +14573,7 @@ _080541F2:
str r2, [r0, 0x64]
b _08054396
.align 2, 0
-_080541FC: .4byte gUnknown_30030F0
+_080541FC: .4byte gMain
_08054200: .4byte gUnknown_2031DAC
_08054204:
ldr r4, _08054238 @ =gUnknown_2031DAC
@@ -14606,7 +14606,7 @@ _0805423C:
movs r0, 0
str r0, [r1, 0x64]
_08054242:
- ldr r0, _08054250 @ =gUnknown_30030F0
+ ldr r0, _08054250 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
@@ -14614,7 +14614,7 @@ _08054242:
strb r1, [r0]
b _08054396
.align 2, 0
-_08054250: .4byte gUnknown_30030F0
+_08054250: .4byte gMain
_08054254:
ldr r0, _08054270 @ =gUnknown_2031DAC
ldr r1, [r0]
@@ -14622,7 +14622,7 @@ _08054254:
cmp r0, 0
bne _08054278
bl sub_800AB9C
- ldr r0, _08054274 @ =gUnknown_30030F0
+ ldr r0, _08054274 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
@@ -14631,7 +14631,7 @@ _08054254:
b _08054396
.align 2, 0
_08054270: .4byte gUnknown_2031DAC
-_08054274: .4byte gUnknown_30030F0
+_08054274: .4byte gMain
_08054278:
subs r0, 0x1
str r0, [r1, 0x64]
@@ -14644,7 +14644,7 @@ _0805427E:
b _08054396
_0805428A:
bl sub_80DA434
- ldr r0, _0805429C @ =gUnknown_30030F0
+ ldr r0, _0805429C @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
@@ -14652,7 +14652,7 @@ _0805428A:
strb r1, [r0]
b _08054396
.align 2, 0
-_0805429C: .4byte gUnknown_30030F0
+_0805429C: .4byte gMain
_080542A0:
ldr r0, _080542C0 @ =gUnknown_2031DAC
ldr r1, [r0]
@@ -14693,14 +14693,14 @@ _080542E0:
bne _08054396
movs r0, 0x3
bl FadeOutBGM
- ldr r1, _08054300 @ =gUnknown_30030F0
+ ldr r1, _08054300 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _08054340
.align 2, 0
_080542FC: .4byte gUnknown_2037AB8
-_08054300: .4byte gUnknown_30030F0
+_08054300: .4byte gMain
_08054304:
bl IsBGMStopped
lsls r0, 24
@@ -14711,7 +14711,7 @@ _08054304:
ldrb r0, [r0]
cmp r0, 0
beq _08054334
- ldr r0, _0805432C @ =gUnknown_30030F0
+ ldr r0, _0805432C @ =gMain
ldr r1, [r0, 0x8]
ldr r0, _08054330 @ =sub_804C718
cmp r1, r0
@@ -14720,12 +14720,12 @@ _08054304:
b _08054338
.align 2, 0
_08054328: .4byte gUnknown_3003F3C
-_0805432C: .4byte gUnknown_30030F0
+_0805432C: .4byte gMain
_08054330: .4byte sub_804C718
_08054334:
bl sub_800AAC0
_08054338:
- ldr r1, _08054348 @ =gUnknown_30030F0
+ ldr r1, _08054348 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
@@ -14735,7 +14735,7 @@ _08054340:
strb r0, [r1]
b _08054396
.align 2, 0
-_08054348: .4byte gUnknown_30030F0
+_08054348: .4byte gMain
_0805434C:
ldr r0, _08054374 @ =gUnknown_3003F3C
ldrb r0, [r0]
@@ -14749,7 +14749,7 @@ _0805434C:
lsls r0, 24
cmp r0, 0
beq _08054396
- ldr r0, _0805437C @ =gUnknown_3003530
+ ldr r0, _0805437C @ =gSoftResetDisabled
movs r1, 0
strb r1, [r0]
ldr r0, _08054380 @ =sub_80543C4
@@ -14758,14 +14758,14 @@ _0805434C:
.align 2, 0
_08054374: .4byte gUnknown_3003F3C
_08054378: .4byte sub_804C718
-_0805437C: .4byte gUnknown_3003530
+_0805437C: .4byte gSoftResetDisabled
_08054380: .4byte sub_80543C4
_08054384:
ldr r0, _080543B8 @ =gUnknown_3003F64
ldrb r1, [r0]
cmp r1, 0
bne _08054396
- ldr r0, _080543BC @ =gUnknown_3003530
+ ldr r0, _080543BC @ =gSoftResetDisabled
strb r1, [r0]
ldr r0, _080543C0 @ =sub_80543C4
bl SetMainCallback2
@@ -14785,7 +14785,7 @@ _080543A4:
bx r0
.align 2, 0
_080543B8: .4byte gUnknown_3003F64
-_080543BC: .4byte gUnknown_3003530
+_080543BC: .4byte gSoftResetDisabled
_080543C0: .4byte sub_80543C4
thumb_func_end sub_8053E8C
@@ -14821,7 +14821,7 @@ sub_80543C4: @ 80543C4
beq _08054412
bl sub_80FCE44
_08054412:
- ldr r0, _0805443C @ =gUnknown_30030F0
+ ldr r0, _0805443C @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_0805441A:
@@ -14836,7 +14836,7 @@ _0805441A:
_08054430: .4byte gUnknown_2037AB8
_08054434: .4byte gUnknown_2031DAC
_08054438: .4byte gUnknown_3003F3C
-_0805443C: .4byte gUnknown_30030F0
+_0805443C: .4byte gMain
thumb_func_end sub_80543C4
thumb_func_start sub_8054440
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 798d63163..2cc358510 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -284,7 +284,7 @@ _08089224:
adds r0, r1
strb r5, [r0]
_0808924A:
- ldr r0, _08089278 @ =gUnknown_30030F0
+ ldr r0, _08089278 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -303,7 +303,7 @@ _0808924A:
.align 2, 0
_08089270: .4byte gUnknown_3003F64
_08089274: .4byte 0x00007bce
-_08089278: .4byte gUnknown_30030F0
+_08089278: .4byte gMain
_0808927C: .4byte gUnknown_20397A4
_08089280:
movs r0, 0x2
@@ -355,7 +355,7 @@ _080892CE:
.align 2, 0
_080892E0: .4byte gUnknown_20397A4
_080892E4:
- ldr r0, _0808931C @ =gUnknown_30030F0
+ ldr r0, _0808931C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
@@ -383,7 +383,7 @@ _08089308:
str r1, [sp]
b _080893C8
.align 2, 0
-_0808931C: .4byte gUnknown_30030F0
+_0808931C: .4byte gMain
_08089320: .4byte gUnknown_3003F64
_08089324:
movs r0, 0xA
@@ -695,7 +695,7 @@ _080895B4: .4byte gUnknown_20397A4
thumb_func_start sub_80895B8
sub_80895B8: @ 80895B8
push {lr}
- ldr r1, _080895D8 @ =gUnknown_30030F0
+ ldr r1, _080895D8 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
@@ -711,7 +711,7 @@ _080895CC:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080895D8: .4byte gUnknown_30030F0
+_080895D8: .4byte gMain
_080895DC: .4byte _080895E0
.align 2, 0
_080895E0:
@@ -732,34 +732,34 @@ _080895E0:
_08089618:
bl sub_8089C3C
bl sub_8089DA4
- ldr r1, _0808962C @ =gUnknown_30030F0
+ ldr r1, _0808962C @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _08089732
.align 2, 0
-_0808962C: .4byte gUnknown_30030F0
+_0808962C: .4byte gMain
_08089630:
bl nullsub_51
- ldr r1, _08089640 @ =gUnknown_30030F0
+ ldr r1, _08089640 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _08089732
.align 2, 0
-_08089640: .4byte gUnknown_30030F0
+_08089640: .4byte gMain
_08089644:
bl sub_8089C5C
- ldr r1, _08089654 @ =gUnknown_30030F0
+ ldr r1, _08089654 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _08089732
.align 2, 0
-_08089654: .4byte gUnknown_30030F0
+_08089654: .4byte gMain
_08089658:
bl sub_8089C80
- ldr r1, _08089678 @ =gUnknown_30030F0
+ ldr r1, _08089678 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
@@ -768,93 +768,93 @@ _08089658:
strb r0, [r1]
_0808966A:
bl sub_8089CA4
- ldr r1, _08089678 @ =gUnknown_30030F0
+ ldr r1, _08089678 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _08089732
.align 2, 0
-_08089678: .4byte gUnknown_30030F0
+_08089678: .4byte gMain
_0808967C:
bl sub_8089D0C
- ldr r1, _0808968C @ =gUnknown_30030F0
+ ldr r1, _0808968C @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _08089732
.align 2, 0
-_0808968C: .4byte gUnknown_30030F0
+_0808968C: .4byte gMain
_08089690:
bl sub_80F6E9C
- ldr r1, _080896A0 @ =gUnknown_30030F0
+ ldr r1, _080896A0 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _08089732
.align 2, 0
-_080896A0: .4byte gUnknown_30030F0
+_080896A0: .4byte gMain
_080896A4:
bl sub_808AB10
- ldr r1, _080896B4 @ =gUnknown_30030F0
+ ldr r1, _080896B4 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _08089732
.align 2, 0
-_080896B4: .4byte gUnknown_30030F0
+_080896B4: .4byte gMain
_080896B8:
bl sub_8089424
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0808973E
- ldr r1, _080896D0 @ =gUnknown_30030F0
+ ldr r1, _080896D0 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _08089732
.align 2, 0
-_080896D0: .4byte gUnknown_30030F0
+_080896D0: .4byte gMain
_080896D4:
bl sub_808AC6C
- ldr r1, _080896E4 @ =gUnknown_30030F0
+ ldr r1, _080896E4 @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _08089732
.align 2, 0
-_080896E4: .4byte gUnknown_30030F0
+_080896E4: .4byte gMain
_080896E8:
bl sub_8089B64
- ldr r1, _080896F8 @ =gUnknown_30030F0
+ ldr r1, _080896F8 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _08089732
.align 2, 0
-_080896F8: .4byte gUnknown_30030F0
+_080896F8: .4byte gMain
_080896FC:
bl sub_8089ECC
- ldr r1, _0808970C @ =gUnknown_30030F0
+ ldr r1, _0808970C @ =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _08089732
.align 2, 0
-_0808970C: .4byte gUnknown_30030F0
+_0808970C: .4byte gMain
_08089710:
bl sub_808ACE4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0808973E
- ldr r1, _08089728 @ =gUnknown_30030F0
+ ldr r1, _08089728 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _08089732
.align 2, 0
-_08089728: .4byte gUnknown_30030F0
+_08089728: .4byte gMain
_0808972C:
movs r0, 0x87
lsls r0, 3
@@ -936,7 +936,7 @@ sub_808979C: @ 808979C
lsls r1, 24
lsrs r1, 24
mov r8, r1
- ldr r7, _08089888 @ =gUnknown_300500C
+ ldr r7, _08089888 @ =gSaveBlock2Ptr
ldr r1, [r7]
ldrb r0, [r1, 0x8]
movs r6, 0
@@ -1002,7 +1002,7 @@ _080897EE:
strh r6, [r5, 0x1E]
movs r0, 0
strb r0, [r5, 0x4]
- ldr r4, _0808989C @ =gUnknown_3005008
+ ldr r4, _0808989C @ =gSaveBlock1Ptr
ldr r0, [r4]
movs r1, 0xA4
lsls r1, 2
@@ -1028,7 +1028,7 @@ _0808985A:
lsrs r2, r0, 24
cmp r2, 0x3
bls _0808985A
- ldr r0, _08089888 @ =gUnknown_300500C
+ ldr r0, _08089888 @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r0, r7, 0
bl StringCopy
@@ -1039,12 +1039,12 @@ _0808985A:
bl sub_808975C
b _080898DC
.align 2, 0
-_08089888: .4byte gUnknown_300500C
+_08089888: .4byte gSaveBlock2Ptr
_0808988C: .4byte 0x000003e7
_08089890: .4byte 0x00000829
_08089894: .4byte 0x0000270f
_08089898: .4byte 0x0000ffff
-_0808989C: .4byte gUnknown_3005008
+_0808989C: .4byte gSaveBlock1Ptr
_080898A0: .4byte 0x00002ca0
_080898A4:
mov r1, r8
@@ -1121,7 +1121,7 @@ _0808991C:
adds r6, r5, 0
adds r6, 0x4D
strb r0, [r6]
- ldr r0, _0808999C @ =gUnknown_300500C
+ ldr r0, _0808999C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r2, _080899A0 @ =0x00000b14
adds r1, r0, r2
@@ -1179,7 +1179,7 @@ _0808998A:
adds r0, 0x8
b _080899AE
.align 2, 0
-_0808999C: .4byte gUnknown_300500C
+_0808999C: .4byte gSaveBlock2Ptr
_080899A0: .4byte 0x00000b14
_080899A4: .4byte 0x0000ffff
_080899A8: .4byte gUnknown_83CD8F8
@@ -2200,7 +2200,7 @@ sub_808A22C: @ 808A22C
mov r5, r8
push {r5-r7}
sub sp, 0x14
- ldr r0, _0808A2B0 @ =gUnknown_300500C
+ ldr r0, _0808A2B0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrh r5, [r0, 0xE]
ldrb r7, [r0, 0x10]
@@ -2261,7 +2261,7 @@ _0808A264:
bl box_print
b _0808A2F4
.align 2, 0
-_0808A2B0: .4byte gUnknown_300500C
+_0808A2B0: .4byte gSaveBlock2Ptr
_0808A2B4: .4byte gUnknown_20397A4
_0808A2B8: .4byte 0x0000046c
_0808A2BC: .4byte 0x000003e7
@@ -4832,7 +4832,7 @@ sub_808B774: @ 808B774
movs r5, 0
strb r5, [r0]
ldr r1, [r4]
- ldr r0, _0808B7B4 @ =gUnknown_300500C
+ ldr r0, _0808B7B4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x12]
strb r0, [r1, 0x6]
@@ -4856,7 +4856,7 @@ sub_808B774: @ 808B774
b _0808B7C8
.align 2, 0
_0808B7B0: .4byte gUnknown_20397A4
-_0808B7B4: .4byte gUnknown_300500C
+_0808B7B4: .4byte gSaveBlock2Ptr
_0808B7B8: .4byte 0x00000456
_0808B7BC: .4byte 0x00000457
_0808B7C0:
@@ -4900,11 +4900,11 @@ sub_808B800: @ 808B800
ldr r0, [r0]
cmp r0, 0
bne _0808B818
- ldr r0, _0808B814 @ =gUnknown_81E9F10
+ ldr r0, _0808B814 @ =gGameVersion
b _0808B81C
.align 2, 0
_0808B810: .4byte gUnknown_20397A4
-_0808B814: .4byte gUnknown_81E9F10
+_0808B814: .4byte gGameVersion
_0808B818:
ldr r1, _0808B82C @ =0x00000494
adds r0, r1
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index 8bd1c28a3..252600212 100644
--- a/asm/trainer_see.s
+++ b/asm/trainer_see.s
@@ -1008,7 +1008,7 @@ sub_808226C: @ 808226C
adds r4, r1, 0
movs r0, 0
strh r0, [r4, 0x12]
- ldr r0, _080822C4 @ =gUnknown_3005008
+ ldr r0, _080822C4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r3, [r0]
adds r3, 0x7
@@ -1045,7 +1045,7 @@ sub_808226C: @ 808226C
pop {r1}
bx r1
.align 2, 0
-_080822C4: .4byte gUnknown_3005008
+_080822C4: .4byte gSaveBlock1Ptr
_080822C8: .4byte gUnknown_2036E38
thumb_func_end sub_808226C
@@ -1055,7 +1055,7 @@ sub_80822CC: @ 80822CC
sub sp, 0x4
adds r5, r1, 0
adds r6, r2, 0
- ldr r0, _08082348 @ =gUnknown_3005008
+ ldr r0, _08082348 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -1110,7 +1110,7 @@ _08082312:
strh r0, [r5, 0x12]
b _0808236E
.align 2, 0
-_08082348: .4byte gUnknown_3005008
+_08082348: .4byte gSaveBlock1Ptr
_0808234C: .4byte gUnknown_2036E38
_08082350:
ldr r1, _08082378 @ =gUnknown_20386E0
@@ -1141,7 +1141,7 @@ sub_808237C: @ 808237C
push {r4,r5,lr}
sub sp, 0x4
adds r5, r1, 0
- ldr r0, _08082404 @ =gUnknown_3005008
+ ldr r0, _08082404 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -1201,14 +1201,14 @@ _080823CC:
strh r0, [r5, 0x12]
b _0808242E
.align 2, 0
-_08082404: .4byte gUnknown_3005008
+_08082404: .4byte gSaveBlock1Ptr
_08082408: .4byte gUnknown_2036E38
_0808240C:
bl GetPlayerAvatarObjectId
lsls r0, 24
lsrs r0, 24
bl CameraObjectSetFollowedObjectId
- ldr r0, _08082438 @ =gUnknown_3005008
+ ldr r0, _08082438 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -1225,7 +1225,7 @@ _0808242E:
pop {r1}
bx r1
.align 2, 0
-_08082438: .4byte gUnknown_3005008
+_08082438: .4byte gSaveBlock1Ptr
thumb_func_end sub_808237C
thumb_func_start sub_808243C
diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s
index 4a8812ad1..e43215794 100644
--- a/asm/trainer_tower.s
+++ b/asm/trainer_tower.s
@@ -178,7 +178,7 @@ sub_815D8F8: @ 815D8F8
movs r4, 0xFF
movs r2, 0
ldr r6, _0815D95C @ =gUnknown_8479D34
- ldr r0, _0815D960 @ =gUnknown_3005008
+ ldr r0, _0815D960 @ =gSaveBlock1Ptr
ldr r3, [r0]
movs r5, 0x4
ldrsb r5, [r3, r5]
@@ -225,7 +225,7 @@ _0815D956:
bx r0
.align 2, 0
_0815D95C: .4byte gUnknown_8479D34
-_0815D960: .4byte gUnknown_3005008
+_0815D960: .4byte gSaveBlock1Ptr
_0815D964: .4byte 0x00004023
_0815D968: .4byte 0x05db0000
thumb_func_end sub_815D8F8
@@ -520,7 +520,7 @@ _0815DB2E:
ldrb r0, [r3, 0x1C]
adds r4, 0x3E
strb r0, [r4]
- ldr r0, _0815DBD0 @ =gUnknown_3005008
+ ldr r0, _0815DBD0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _0815DBD4 @ =0x00003d34
adds r1, r0, r2
@@ -531,7 +531,7 @@ _0815DB2E:
ldr r2, _0815DBD8 @ =0x00003d38
adds r1, r2
adds r0, r1
- bl sub_80008C0
+ bl SetVBlankCounter1Ptr
bl sub_815DD2C
add sp, 0x4
pop {r3-r5}
@@ -545,7 +545,7 @@ _0815DB2E:
_0815DBC4: .4byte gUnknown_203F45C
_0815DBC8: .4byte 0x00004001
_0815DBCC: .4byte gUnknown_203F458
-_0815DBD0: .4byte gUnknown_3005008
+_0815DBD0: .4byte gSaveBlock1Ptr
_0815DBD4: .4byte 0x00003d34
_0815DBD8: .4byte 0x00003d38
thumb_func_end sub_815DA54
@@ -644,7 +644,7 @@ _0815DC86:
thumb_func_start sub_815DC8C
sub_815DC8C: @ 815DC8C
push {r4-r7,lr}
- ldr r0, _0815DCBC @ =gUnknown_3005008
+ ldr r0, _0815DCBC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _0815DCC0 @ =0x00003d34
adds r0, r1
@@ -665,7 +665,7 @@ sub_815DC8C: @ 815DC8C
bl sub_815D80C
b _0815DD18
.align 2, 0
-_0815DCBC: .4byte gUnknown_3005008
+_0815DCBC: .4byte gSaveBlock1Ptr
_0815DCC0: .4byte 0x00003d34
_0815DCC4: .4byte gUnknown_203F458
_0815DCC8: .4byte 0x00001f0c
@@ -1267,7 +1267,7 @@ sub_815E124: @ 815E124
lsrs r0, 24
cmp r0, 0x1
bne _0815E14C
- ldr r0, _0815E154 @ =gUnknown_30030F0
+ ldr r0, _0815E154 @ =gMain
ldr r1, _0815E158 @ =sub_815E114
str r1, [r0, 0x8]
bl sub_80563F0
@@ -1280,7 +1280,7 @@ _0815E14C:
pop {r0}
bx r0
.align 2, 0
-_0815E154: .4byte gUnknown_30030F0
+_0815E154: .4byte gMain
_0815E158: .4byte sub_815E114
_0815E15C: .4byte sub_800FD9C
thumb_func_end sub_815E124
@@ -1356,7 +1356,7 @@ _0815E1EC: .4byte gUnknown_203F458
thumb_func_start sub_815E1F0
sub_815E1F0: @ 815E1F0
- ldr r0, _0815E210 @ =gUnknown_3005008
+ ldr r0, _0815E210 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E214 @ =0x00003d34
adds r0, r1, r2
@@ -1373,7 +1373,7 @@ sub_815E1F0: @ 815E1F0
strb r0, [r1]
bx lr
.align 2, 0
-_0815E210: .4byte gUnknown_3005008
+_0815E210: .4byte gSaveBlock1Ptr
_0815E214: .4byte 0x00003d34
thumb_func_end sub_815E1F0
@@ -1385,7 +1385,7 @@ sub_815E218: @ 815E218
mov r12, r0
ldr r3, _0815E264 @ =0xfffffed6
add r3, r12
- ldr r0, _0815E268 @ =gUnknown_3005008
+ ldr r0, _0815E268 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E26C @ =0x00003d34
adds r0, r1, r2
@@ -1418,7 +1418,7 @@ sub_815E218: @ 815E218
.align 2, 0
_0815E260: .4byte gUnknown_2036DFC
_0815E264: .4byte 0xfffffed6
-_0815E268: .4byte gUnknown_3005008
+_0815E268: .4byte gSaveBlock1Ptr
_0815E26C: .4byte 0x00003d34
_0815E270: .4byte 0xfffffed7
_0815E274: .4byte gUnknown_203F458
@@ -1439,7 +1439,7 @@ sub_815E28C: @ 815E28C
push {r4-r6,lr}
mov r6, r8
push {r6}
- ldr r4, _0815E2D0 @ =gUnknown_3005008
+ ldr r4, _0815E2D0 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r5, _0815E2D4 @ =0x00003d34
adds r1, r0, r5
@@ -1469,7 +1469,7 @@ _0815E2A8:
orrs r0, r2
b _0815E2FA
.align 2, 0
-_0815E2D0: .4byte gUnknown_3005008
+_0815E2D0: .4byte gSaveBlock1Ptr
_0815E2D4: .4byte 0x00003d34
_0815E2D8: .4byte gUnknown_20370C2
_0815E2DC: .4byte 0x00003d42
@@ -1489,7 +1489,7 @@ _0815E2E0:
ands r0, r2
_0815E2FA:
strb r0, [r1]
- ldr r6, _0815E388 @ =gUnknown_3005008
+ ldr r6, _0815E388 @ =gSaveBlock1Ptr
ldr r2, [r6]
ldr r5, _0815E38C @ =0x00003d34
adds r0, r2, r5
@@ -1514,7 +1514,7 @@ _0815E2FA:
ldr r4, _0815E390 @ =0x00003d38
adds r1, r4
adds r0, r1
- bl sub_80008C0
+ bl SetVBlankCounter1Ptr
ldr r2, [r6]
adds r3, r2, r5
ldr r1, [r3]
@@ -1557,7 +1557,7 @@ _0815E2FA:
bx r0
.align 2, 0
_0815E384: .4byte 0x00003d42
-_0815E388: .4byte gUnknown_3005008
+_0815E388: .4byte gSaveBlock1Ptr
_0815E38C: .4byte 0x00003d34
_0815E390: .4byte 0x00003d38
thumb_func_end sub_815E28C
@@ -1565,11 +1565,11 @@ _0815E390: .4byte 0x00003d38
thumb_func_start sub_815E394
sub_815E394: @ 815E394
push {lr}
- bl sub_80008CC
+ bl DisableVBlankCounter1
ldr r3, _0815E3F8 @ =gUnknown_20370D0
movs r0, 0
strh r0, [r3]
- ldr r0, _0815E3FC @ =gUnknown_3005008
+ ldr r0, _0815E3FC @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _0815E400 @ =0x00003d34
adds r0, r2, r1
@@ -1598,7 +1598,7 @@ _0815E3C2:
adds r0, 0x1
strh r0, [r3]
_0815E3D6:
- ldr r0, _0815E3FC @ =gUnknown_3005008
+ ldr r0, _0815E3FC @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E400 @ =0x00003d34
adds r0, r1, r2
@@ -1617,7 +1617,7 @@ _0815E3D6:
bx r0
.align 2, 0
_0815E3F8: .4byte gUnknown_20370D0
-_0815E3FC: .4byte gUnknown_3005008
+_0815E3FC: .4byte gSaveBlock1Ptr
_0815E400: .4byte 0x00003d34
_0815E404: .4byte 0x00003d42
thumb_func_end sub_815E394
@@ -1634,7 +1634,7 @@ sub_815E408: @ 815E408
lsls r0, 1
adds r0, r1
ldrh r4, [r0]
- ldr r0, _0815E44C @ =gUnknown_3005008
+ ldr r0, _0815E44C @ =gSaveBlock1Ptr
mov r8, r0
ldr r2, [r0]
ldr r7, _0815E450 @ =0x00003d34
@@ -1657,7 +1657,7 @@ sub_815E408: @ 815E408
.align 2, 0
_0815E444: .4byte gUnknown_847A2B4
_0815E448: .4byte gUnknown_203F458
-_0815E44C: .4byte gUnknown_3005008
+_0815E44C: .4byte gSaveBlock1Ptr
_0815E450: .4byte 0x00003d34
_0815E454: .4byte 0x00003d42
_0815E458: .4byte gUnknown_20370D0
@@ -1709,7 +1709,7 @@ _0815E4AC: .4byte gUnknown_20370D0
thumb_func_start sub_815E4B0
sub_815E4B0: @ 815E4B0
push {r4-r6,lr}
- ldr r6, _0815E4D8 @ =gUnknown_3005008
+ ldr r6, _0815E4D8 @ =gSaveBlock1Ptr
ldr r2, [r6]
ldr r1, _0815E4DC @ =0x00003d34
adds r0, r2, r1
@@ -1729,7 +1729,7 @@ sub_815E4B0: @ 815E4B0
movs r0, 0x2
b _0815E534
.align 2, 0
-_0815E4D8: .4byte gUnknown_3005008
+_0815E4D8: .4byte gSaveBlock1Ptr
_0815E4DC: .4byte 0x00003d34
_0815E4E0: .4byte 0x00003d42
_0815E4E4: .4byte gUnknown_20370D0
@@ -1770,7 +1770,7 @@ _0815E530:
_0815E534:
strh r0, [r1]
_0815E536:
- ldr r0, _0815E560 @ =gUnknown_3005008
+ ldr r0, _0815E560 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E564 @ =0x00003d34
adds r0, r1, r2
@@ -1790,7 +1790,7 @@ _0815E536:
bx r0
.align 2, 0
_0815E55C: .4byte gUnknown_20370D0
-_0815E560: .4byte gUnknown_3005008
+_0815E560: .4byte gSaveBlock1Ptr
_0815E564: .4byte 0x00003d34
_0815E568: .4byte 0x00003d42
thumb_func_end sub_815E4B0
@@ -1798,7 +1798,7 @@ _0815E568: .4byte 0x00003d42
thumb_func_start sub_815E56C
sub_815E56C: @ 815E56C
push {r4,lr}
- ldr r0, _0815E5A0 @ =gUnknown_3005008
+ ldr r0, _0815E5A0 @ =gSaveBlock1Ptr
ldr r4, [r0]
ldr r1, _0815E5A4 @ =0x00003d34
adds r0, r4, r1
@@ -1824,7 +1824,7 @@ sub_815E56C: @ 815E56C
str r0, [r2]
b _0815E5BA
.align 2, 0
-_0815E5A0: .4byte gUnknown_3005008
+_0815E5A0: .4byte gSaveBlock1Ptr
_0815E5A4: .4byte 0x00003d34
_0815E5A8: .4byte 0x00003d42
_0815E5AC: .4byte 0x00034bbe
@@ -1832,7 +1832,7 @@ _0815E5B0:
ldr r1, _0815E5C0 @ =0x00003d38
adds r0, r3, r1
adds r0, r4, r0
- bl sub_80008C0
+ bl SetVBlankCounter1Ptr
_0815E5BA:
pop {r4}
pop {r0}
@@ -1843,7 +1843,7 @@ _0815E5C0: .4byte 0x00003d38
thumb_func_start sub_815E5C4
sub_815E5C4: @ 815E5C4
- ldr r0, _0815E5E4 @ =gUnknown_3005008
+ ldr r0, _0815E5E4 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E5E8 @ =0x00003d34
adds r0, r1, r2
@@ -1860,7 +1860,7 @@ sub_815E5C4: @ 815E5C4
strb r0, [r1]
bx lr
.align 2, 0
-_0815E5E4: .4byte gUnknown_3005008
+_0815E5E4: .4byte gSaveBlock1Ptr
_0815E5E8: .4byte 0x00003d34
_0815E5EC: .4byte 0x00003d42
thumb_func_end sub_815E5C4
@@ -1868,7 +1868,7 @@ _0815E5EC: .4byte 0x00003d42
thumb_func_start sub_815E5F0
sub_815E5F0: @ 815E5F0
push {lr}
- ldr r0, _0815E620 @ =gUnknown_3005008
+ ldr r0, _0815E620 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _0815E624 @ =0x00003d34
adds r0, r2, r1
@@ -1891,7 +1891,7 @@ sub_815E5F0: @ 815E5F0
movs r0, 0
b _0815E64C
.align 2, 0
-_0815E620: .4byte gUnknown_3005008
+_0815E620: .4byte gSaveBlock1Ptr
_0815E624: .4byte 0x00003d34
_0815E628: .4byte 0x00003d42
_0815E62C: .4byte gUnknown_20370D0
@@ -1922,7 +1922,7 @@ _0815E654: .4byte gUnknown_20370D0
thumb_func_start sub_815E658
sub_815E658: @ 815E658
push {r4-r6,lr}
- ldr r4, _0815E700 @ =gUnknown_3005008
+ ldr r4, _0815E700 @ =gSaveBlock1Ptr
ldr r2, [r4]
ldr r6, _0815E704 @ =0x00003d34
adds r0, r2, r6
@@ -1937,7 +1937,7 @@ sub_815E658: @ 815E658
ldr r0, _0815E70C @ =0x00034bbe
cmp r1, r0
bls _0815E690
- bl sub_80008CC
+ bl DisableVBlankCounter1
ldr r1, [r4]
adds r0, r1, r6
ldr r2, [r0]
@@ -1998,7 +1998,7 @@ _0815E690:
pop {r0}
bx r0
.align 2, 0
-_0815E700: .4byte gUnknown_3005008
+_0815E700: .4byte gSaveBlock1Ptr
_0815E704: .4byte 0x00003d34
_0815E708: .4byte 0x00003d38
_0815E70C: .4byte 0x00034bbe
@@ -2044,7 +2044,7 @@ sub_815E720: @ 815E720
lsls r0, 22
mov r9, r0
_0815E76C:
- ldr r0, _0815E864 @ =gUnknown_3005008
+ ldr r0, _0815E864 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _0815E868 @ =0x00003d34
adds r0, r2, r1
@@ -2152,7 +2152,7 @@ _0815E76C:
.align 2, 0
_0815E85C: .4byte gUnknown_847A218
_0815E860: .4byte gUnknown_83FE982
-_0815E864: .4byte gUnknown_3005008
+_0815E864: .4byte gSaveBlock1Ptr
_0815E868: .4byte 0x00003d34
_0815E86C: .4byte 0x00003d3c
_0815E870: .4byte gUnknown_2021CD0
@@ -2333,7 +2333,7 @@ _0815E9C4: .4byte gUnknown_847A2D2
thumb_func_start sub_815E9C8
sub_815E9C8: @ 815E9C8
ldr r3, _0815E9EC @ =gUnknown_20370D0
- ldr r0, _0815E9F0 @ =gUnknown_3005008
+ ldr r0, _0815E9F0 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E9F4 @ =0x00003d34
adds r0, r1, r2
@@ -2351,7 +2351,7 @@ sub_815E9C8: @ 815E9C8
bx lr
.align 2, 0
_0815E9EC: .4byte gUnknown_20370D0
-_0815E9F0: .4byte gUnknown_3005008
+_0815E9F0: .4byte gSaveBlock1Ptr
_0815E9F4: .4byte 0x00003d34
_0815E9F8: .4byte 0x00003d42
thumb_func_end sub_815E9C8
@@ -2370,7 +2370,7 @@ sub_815E9FC: @ 815E9FC
lsrs r4, r0, 16
bl sub_815EBB8
mov r9, r0
- ldr r0, _0815EAC0 @ =gUnknown_3005008
+ ldr r0, _0815EAC0 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815EAC4 @ =0x00003d34
adds r0, r1, r2
@@ -2453,7 +2453,7 @@ _0815EA6C:
b _0815EB9E
.align 2, 0
_0815EABC: .4byte 0x00004001
-_0815EAC0: .4byte gUnknown_3005008
+_0815EAC0: .4byte gSaveBlock1Ptr
_0815EAC4: .4byte 0x00003d34
_0815EAC8: .4byte gUnknown_203F458
_0815EACC: .4byte gUnknown_847A2EE
@@ -2618,7 +2618,7 @@ _0815EC08: .4byte gUnknown_2024284
thumb_func_start sub_815EC0C
sub_815EC0C: @ 815EC0C
push {r4,lr}
- ldr r4, _0815EC70 @ =gUnknown_3005008
+ ldr r4, _0815EC70 @ =gSaveBlock1Ptr
ldr r2, [r4]
ldr r1, _0815EC74 @ =0x00003d34
adds r0, r2, r1
@@ -2668,7 +2668,7 @@ _0815EC6A:
pop {r0}
bx r0
.align 2, 0
-_0815EC70: .4byte gUnknown_3005008
+_0815EC70: .4byte gSaveBlock1Ptr
_0815EC74: .4byte 0x00003d34
_0815EC78: .4byte 0x00003d41
_0815EC7C: .4byte gUnknown_203F458
@@ -2716,7 +2716,7 @@ sub_815EC8C: @ 815EC8C
ldr r0, _0815EDBC @ =0x00003d38
mov r9, r0
_0815ECDC:
- ldr r0, _0815EDC0 @ =gUnknown_3005008
+ ldr r0, _0815EDC0 @ =gSaveBlock1Ptr
ldr r0, [r0]
add r0, r9
adds r0, 0x4
@@ -2813,7 +2813,7 @@ _0815ECDC:
_0815EDB4: .4byte gUnknown_847A22C
_0815EDB8: .4byte gUnknown_83FE982
_0815EDBC: .4byte 0x00003d38
-_0815EDC0: .4byte gUnknown_3005008
+_0815EDC0: .4byte gSaveBlock1Ptr
_0815EDC4: .4byte gUnknown_2021CD0
_0815EDC8: .4byte gUnknown_2021CF0
_0815EDCC: .4byte gUnknown_2021D04
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index 07ae5b08c..a9b2bd82d 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -14,7 +14,7 @@ sub_8128420: @ 8128420
bl Alloc
str r0, [r4]
bl sub_812845C
- ldr r1, _08128454 @ =gUnknown_30030E0
+ ldr r1, _08128454 @ =gKeyRepeatStartDelay
movs r0, 0x14
strh r0, [r1]
bl sub_812B4AC
@@ -27,7 +27,7 @@ sub_8128420: @ 8128420
bx r0
.align 2, 0
_08128450: .4byte gUnknown_203B0E0
-_08128454: .4byte gUnknown_30030E0
+_08128454: .4byte gKeyRepeatStartDelay
_08128458: .4byte c2_081284E0
thumb_func_end sub_8128420
@@ -57,7 +57,7 @@ sub_812845C: @ 812845C
lsls r1, 1
adds r0, r4, r1
bl sub_8129560
- ldr r7, _081284B4 @ =gUnknown_3005008
+ ldr r7, _081284B4 @ =gSaveBlock1Ptr
ldr r6, _081284B8 @ =0x00003ad4
adds r4, 0xB9
movs r5, 0x9
@@ -75,7 +75,7 @@ _0812849A:
pop {r0}
bx r0
.align 2, 0
-_081284B4: .4byte gUnknown_3005008
+_081284B4: .4byte gSaveBlock1Ptr
_081284B8: .4byte 0x00003ad4
thumb_func_end sub_812845C
@@ -102,7 +102,7 @@ _081284DC: .4byte gUnknown_203B0E0
c2_081284E0: @ 81284E0
push {r4-r6,lr}
sub sp, 0x4
- ldr r0, _081284FC @ =gUnknown_30030F0
+ ldr r0, _081284FC @ =gMain
movs r1, 0x87
lsls r1, 3
adds r6, r0, r1
@@ -115,7 +115,7 @@ c2_081284E0: @ 81284E0
beq _08128506
b _08128598
.align 2, 0
-_081284FC: .4byte gUnknown_30030F0
+_081284FC: .4byte gMain
_08128500:
cmp r0, 0x2
beq _08128554
@@ -347,7 +347,7 @@ sub_81286C4: @ 81286C4
.align 2, 0
_081286D8: .4byte gUnknown_203B0E0
_081286DC:
- ldr r1, _081286F8 @ =gUnknown_30030F0
+ ldr r1, _081286F8 @ =gMain
ldrh r2, [r1, 0x2E]
movs r0, 0x8
ands r0, r2
@@ -360,7 +360,7 @@ _081286DC:
bl sub_8129218
b _081287AC
.align 2, 0
-_081286F8: .4byte gUnknown_30030F0
+_081286F8: .4byte gMain
_081286FC:
movs r0, 0x4
ands r0, r2
@@ -525,7 +525,7 @@ _08128810:
.align 2, 0
_08128844: .4byte gUnknown_203B0E0
_08128848:
- ldr r0, _08128864 @ =gUnknown_30030F0
+ ldr r0, _08128864 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
@@ -537,7 +537,7 @@ _08128848:
bl MoveMenuCursor
b _081288CE
.align 2, 0
-_08128864: .4byte gUnknown_30030F0
+_08128864: .4byte gMain
_08128868:
movs r0, 0x4
movs r1, 0
@@ -1340,7 +1340,7 @@ _08128ED0:
.align 2, 0
_08128EE0: .4byte gUnknown_203B0E0
_08128EE4:
- ldr r0, _08128F04 @ =gUnknown_30030F0
+ ldr r0, _08128F04 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -1355,7 +1355,7 @@ _08128EE4:
movs r0, 0x3
b _08128FA6
.align 2, 0
-_08128F04: .4byte gUnknown_30030F0
+_08128F04: .4byte gMain
_08128F08: .4byte gUnknown_203B0E0
_08128F0C:
movs r4, 0x2
@@ -1420,7 +1420,7 @@ _08128F74:
.align 2, 0
_08128F88: .4byte gUnknown_203B0E0
_08128F8C:
- ldr r0, _08128FB0 @ =gUnknown_30030F0
+ ldr r0, _08128FB0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -1440,7 +1440,7 @@ _08128FA8:
pop {r0}
bx r0
.align 2, 0
-_08128FB0: .4byte gUnknown_30030F0
+_08128FB0: .4byte gMain
_08128FB4: .4byte gUnknown_203B0E0
thumb_func_end sub_8128E78
@@ -1747,7 +1747,7 @@ _08129224: .4byte gUnknown_203B0E0
thumb_func_start sub_8129228
sub_8129228: @ 8129228
push {lr}
- ldr r0, _08129258 @ =gUnknown_30030F0
+ ldr r0, _08129258 @ =gMain
ldrh r2, [r0, 0x30]
movs r0, 0x40
ands r0, r2
@@ -1771,7 +1771,7 @@ sub_8129228: @ 8129228
adds r0, r1, 0x1
b _081292CC
.align 2, 0
-_08129258: .4byte gUnknown_30030F0
+_08129258: .4byte gMain
_0812925C: .4byte gUnknown_203B0E0
_08129260: .4byte gUnknown_845A8A8
_08129264:
@@ -2076,7 +2076,7 @@ sub_8129470: @ 8129470
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, _081294A4 @ =gUnknown_3005008
+ ldr r0, _081294A4 @ =gSaveBlock1Ptr
mov r8, r0
ldr r7, _081294A8 @ =gUnknown_203B0E0
movs r6, 0xB9
@@ -2100,7 +2100,7 @@ _08129482:
pop {r0}
bx r0
.align 2, 0
-_081294A4: .4byte gUnknown_3005008
+_081294A4: .4byte gSaveBlock1Ptr
_081294A8: .4byte gUnknown_203B0E0
_081294AC: .4byte 0x00003ad4
thumb_func_end sub_8129470
@@ -2226,7 +2226,7 @@ sub_8129568: @ 8129568
movs r0, 0x2
strb r0, [r4]
adds r0, r4, 0x1
- ldr r1, _08129588 @ =gUnknown_300500C
+ ldr r1, _08129588 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
ldr r0, _0812958C @ =gUnknown_203B0E0
@@ -2237,7 +2237,7 @@ sub_8129568: @ 8129568
pop {r0}
bx r0
.align 2, 0
-_08129588: .4byte gUnknown_300500C
+_08129588: .4byte gSaveBlock2Ptr
_0812958C: .4byte gUnknown_203B0E0
thumb_func_end sub_8129568
@@ -2248,7 +2248,7 @@ sub_8129590: @ 8129590
movs r0, 0x1
strb r0, [r4]
adds r0, r4, 0x1
- ldr r1, _081295B8 @ =gUnknown_300500C
+ ldr r1, _081295B8 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
adds r4, 0x9
@@ -2261,7 +2261,7 @@ sub_8129590: @ 8129590
pop {r0}
bx r0
.align 2, 0
-_081295B8: .4byte gUnknown_300500C
+_081295B8: .4byte gSaveBlock2Ptr
_081295BC: .4byte gUnknown_203B0E0
thumb_func_end sub_8129590
@@ -2272,7 +2272,7 @@ sub_81295C0: @ 81295C0
movs r0, 0x3
strb r0, [r4]
adds r0, r4, 0x1
- ldr r1, _081295E4 @ =gUnknown_300500C
+ ldr r1, _081295E4 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
ldr r0, _081295E8 @ =gUnknown_203B0E0
@@ -2284,7 +2284,7 @@ sub_81295C0: @ 81295C0
pop {r0}
bx r0
.align 2, 0
-_081295E4: .4byte gUnknown_300500C
+_081295E4: .4byte gSaveBlock2Ptr
_081295E8: .4byte gUnknown_203B0E0
thumb_func_end sub_81295C0
@@ -2295,7 +2295,7 @@ sub_81295EC: @ 81295EC
movs r0, 0x4
strb r0, [r4]
adds r0, r4, 0x1
- ldr r1, _0812960C @ =gUnknown_300500C
+ ldr r1, _0812960C @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
ldr r0, _08129610 @ =gUnknown_203B0E0
@@ -2306,7 +2306,7 @@ sub_81295EC: @ 81295EC
pop {r0}
bx r0
.align 2, 0
-_0812960C: .4byte gUnknown_300500C
+_0812960C: .4byte gSaveBlock2Ptr
_08129610: .4byte gUnknown_203B0E0
thumb_func_end sub_81295EC
@@ -2317,7 +2317,7 @@ sub_8129614: @ 8129614
movs r0, 0x5
strb r0, [r4]
adds r0, r4, 0x1
- ldr r1, _08129634 @ =gUnknown_300500C
+ ldr r1, _08129634 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
ldr r0, _08129638 @ =gUnknown_203B0E0
@@ -2328,7 +2328,7 @@ sub_8129614: @ 8129614
pop {r0}
bx r0
.align 2, 0
-_08129634: .4byte gUnknown_300500C
+_08129634: .4byte gSaveBlock2Ptr
_08129638: .4byte gUnknown_203B0E0
thumb_func_end sub_8129614
@@ -2627,7 +2627,7 @@ _0812981C: .4byte gUnknown_203B0E0
thumb_func_start copy_strings_to_sav1
copy_strings_to_sav1: @ 8129820
push {r4,lr}
- ldr r4, _081298A4 @ =gUnknown_3005008
+ ldr r4, _081298A4 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r1, _081298A8 @ =0x00003ad4
adds r0, r1
@@ -2682,7 +2682,7 @@ copy_strings_to_sav1: @ 8129820
pop {r0}
bx r0
.align 2, 0
-_081298A4: .4byte gUnknown_3005008
+_081298A4: .4byte gSaveBlock1Ptr
_081298A8: .4byte 0x00003ad4
_081298AC: .4byte gUnknown_841B510
_081298B0: .4byte 0x00003ae9
@@ -4123,7 +4123,7 @@ sub_812A378: @ 812A378
b _0812A3C6
_0812A388:
bl UnkTextUtil_Reset
- ldr r0, _0812A3B4 @ =gUnknown_300500C
+ ldr r0, _0812A3B4 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0
bl UnkTextUtil_SetPtrI
@@ -4140,7 +4140,7 @@ _0812A388:
strb r0, [r4]
b _0812A3C6
.align 2, 0
-_0812A3B4: .4byte gUnknown_300500C
+_0812A3B4: .4byte gSaveBlock2Ptr
_0812A3B8: .4byte gUnknown_203B0E4
_0812A3BC:
bl IsDma3ManagerBusyWithBgCopy
diff --git a/asm/unk_810C3A4.s b/asm/unk_810C3A4.s
index 78d3c9606..f8957ecb3 100644
--- a/asm/unk_810C3A4.s
+++ b/asm/unk_810C3A4.s
@@ -94,7 +94,7 @@ sub_810C444: @ 810C444
mov r7, r8
push {r7}
sub sp, 0x4
- ldr r0, _0810C4E0 @ =gUnknown_3005008
+ ldr r0, _0810C4E0 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0x8E
lsls r1, 4
@@ -129,7 +129,7 @@ _0810C47A:
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r5]
- ldr r1, _0810C4E0 @ =gUnknown_3005008
+ ldr r1, _0810C4E0 @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -169,7 +169,7 @@ _0810C4D2:
pop {r0}
bx r0
.align 2, 0
-_0810C4E0: .4byte gUnknown_3005008
+_0810C4E0: .4byte gSaveBlock1Ptr
_0810C4E4: .4byte gUnknown_2036DFC
_0810C4E8: .4byte gUnknown_2036E38
thumb_func_end sub_810C444
@@ -185,7 +185,7 @@ sub_810C4EC: @ 810C4EC
lsrs r0, 24
cmp r0, 0x1
bne _0810C516
- ldr r0, _0810C568 @ =gUnknown_3005008
+ ldr r0, _0810C568 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r2, 0xC7
lsls r2, 3
@@ -204,7 +204,7 @@ _0810C516:
lsrs r0, 24
cmp r0, 0x1
bne _0810C570
- ldr r6, _0810C568 @ =gUnknown_3005008
+ ldr r6, _0810C568 @ =gSaveBlock1Ptr
ldr r0, [r6]
movs r5, 0xC7
lsls r5, 3
@@ -236,7 +236,7 @@ _0810C548:
movs r0, 0x1
b _0810C572
.align 2, 0
-_0810C568: .4byte gUnknown_3005008
+_0810C568: .4byte gSaveBlock1Ptr
_0810C56C: .4byte 0x00000801
_0810C570:
movs r0, 0
@@ -320,7 +320,7 @@ _0810C600: .4byte gUnknown_202063C
thumb_func_start sub_810C604
sub_810C604: @ 810C604
- ldr r0, _0810C61C @ =gUnknown_3005008
+ ldr r0, _0810C61C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0xC7
lsls r0, 3
@@ -332,12 +332,12 @@ sub_810C604: @ 810C604
strh r0, [r1]
bx lr
.align 2, 0
-_0810C61C: .4byte gUnknown_3005008
+_0810C61C: .4byte gSaveBlock1Ptr
thumb_func_end sub_810C604
thumb_func_start sub_810C620
sub_810C620: @ 810C620
- ldr r0, _0810C63C @ =gUnknown_3005008
+ ldr r0, _0810C63C @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r0, 0xC7
lsls r0, 3
@@ -351,12 +351,12 @@ sub_810C620: @ 810C620
strh r0, [r2]
bx lr
.align 2, 0
-_0810C63C: .4byte gUnknown_3005008
+_0810C63C: .4byte gSaveBlock1Ptr
thumb_func_end sub_810C620
thumb_func_start sub_810C640
sub_810C640: @ 810C640
- ldr r0, _0810C650 @ =gUnknown_3005008
+ ldr r0, _0810C650 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xC7
lsls r1, 3
@@ -365,12 +365,12 @@ sub_810C640: @ 810C640
strh r1, [r0]
bx lr
.align 2, 0
-_0810C650: .4byte gUnknown_3005008
+_0810C650: .4byte gSaveBlock1Ptr
thumb_func_end sub_810C640
thumb_func_start sub_810C654
sub_810C654: @ 810C654
- ldr r0, _0810C66C @ =gUnknown_3005008
+ ldr r0, _0810C66C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0xC7
lsls r0, 3
@@ -383,7 +383,7 @@ sub_810C654: @ 810C654
strh r0, [r1]
bx lr
.align 2, 0
-_0810C66C: .4byte gUnknown_3005008
+_0810C66C: .4byte gSaveBlock1Ptr
thumb_func_end sub_810C654
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/unk_8147500.s b/asm/unk_8147500.s
index f17581320..7ee9c167e 100644
--- a/asm/unk_8147500.s
+++ b/asm/unk_8147500.s
@@ -95,7 +95,7 @@ _0814758E:
thumb_func_start sub_8147594
sub_8147594: @ 8147594
push {lr}
- ldr r0, _081475B0 @ =gUnknown_3005008
+ ldr r0, _081475B0 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldrh r1, [r2, 0x4]
ldr r0, _081475B4 @ =0x00000503
@@ -108,7 +108,7 @@ sub_8147594: @ 8147594
movs r0, 0x1
b _081475BA
.align 2, 0
-_081475B0: .4byte gUnknown_3005008
+_081475B0: .4byte gSaveBlock1Ptr
_081475B4: .4byte 0x00000503
_081475B8:
movs r0, 0
diff --git a/asm/unk_8147AA8.s b/asm/unk_8147AA8.s
index 314436170..d0d6d3791 100644
--- a/asm/unk_8147AA8.s
+++ b/asm/unk_8147AA8.s
@@ -2033,7 +2033,7 @@ _081489FE:
adds r0, 0x1
strh r0, [r1, 0xA]
_08148A10:
- ldr r0, _08148A2C @ =gUnknown_30030F0
+ ldr r0, _08148A2C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2046,7 +2046,7 @@ _08148A10:
ldr r1, [r0]
b _08148A40
.align 2, 0
-_08148A2C: .4byte gUnknown_30030F0
+_08148A2C: .4byte gMain
_08148A30: .4byte gUnknown_203F3D4
_08148A34:
movs r0, 0x1
@@ -2260,7 +2260,7 @@ _08148BCC:
ldrh r0, [r1, 0x3C]
adds r2, r0, 0x1
strh r2, [r1, 0x3C]
- ldr r0, _08148BF8 @ =gUnknown_30030F0
+ ldr r0, _08148BF8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -2280,7 +2280,7 @@ _08148BEE:
strh r0, [r1, 0xA]
b _08148C78
.align 2, 0
-_08148BF8: .4byte gUnknown_30030F0
+_08148BF8: .4byte gMain
_08148BFC:
bl sub_814A6FC
cmp r0, 0
@@ -7718,14 +7718,14 @@ sub_814B460: @ 814B460
thumb_func_start sub_814B46C
sub_814B46C: @ 814B46C
- ldr r0, _0814B478 @ =gUnknown_300500C
+ ldr r0, _0814B478 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r1, 0xB0
lsls r1, 4
adds r0, r1
bx lr
.align 2, 0
-_0814B478: .4byte gUnknown_300500C
+_0814B478: .4byte gSaveBlock2Ptr
thumb_func_end sub_814B46C
thumb_func_start ResetPokeJumpResults
@@ -7870,7 +7870,7 @@ _0814B570:
bne _0814B5BE
b _0814B596
_0814B57C:
- ldr r0, _0814B5A0 @ =gUnknown_30030F0
+ ldr r0, _0814B5A0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -7888,7 +7888,7 @@ _0814B596:
strh r0, [r4]
b _0814B5BE
.align 2, 0
-_0814B5A0: .4byte gUnknown_30030F0
+_0814B5A0: .4byte gMain
_0814B5A4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
diff --git a/asm/unk_814B6F0.s b/asm/unk_814B6F0.s
index 645cb3cc1..9d40e5aa2 100644
--- a/asm/unk_814B6F0.s
+++ b/asm/unk_814B6F0.s
@@ -336,7 +336,7 @@ _0814B97C:
beq _0814BA14
b _0814BA3C
_0814B986:
- ldr r5, _0814B9B0 @ =gUnknown_300500C
+ ldr r5, _0814B9B0 @ =gSaveBlock2Ptr
ldr r1, [r5]
movs r0, 0xAF
lsls r0, 4
@@ -358,9 +358,9 @@ _0814B986:
lsls r2, 4
b _0814BA38
.align 2, 0
-_0814B9B0: .4byte gUnknown_300500C
+_0814B9B0: .4byte gSaveBlock2Ptr
_0814B9B4:
- ldr r5, _0814B9DC @ =gUnknown_300500C
+ ldr r5, _0814B9DC @ =gSaveBlock2Ptr
ldr r1, [r5]
ldr r0, _0814B9E0 @ =0x00000af2
adds r1, r0
@@ -380,10 +380,10 @@ _0814B9B4:
ldr r2, _0814B9E0 @ =0x00000af2
b _0814BA38
.align 2, 0
-_0814B9DC: .4byte gUnknown_300500C
+_0814B9DC: .4byte gSaveBlock2Ptr
_0814B9E0: .4byte 0x00000af2
_0814B9E4:
- ldr r5, _0814BA0C @ =gUnknown_300500C
+ ldr r5, _0814BA0C @ =gSaveBlock2Ptr
ldr r1, [r5]
ldr r0, _0814BA10 @ =0x00000af4
adds r1, r0
@@ -403,10 +403,10 @@ _0814B9E4:
ldr r2, _0814BA10 @ =0x00000af4
b _0814BA38
.align 2, 0
-_0814BA0C: .4byte gUnknown_300500C
+_0814BA0C: .4byte gSaveBlock2Ptr
_0814BA10: .4byte 0x00000af4
_0814BA14:
- ldr r5, _0814BA60 @ =gUnknown_300500C
+ ldr r5, _0814BA60 @ =gSaveBlock2Ptr
ldr r1, [r5]
ldr r0, _0814BA64 @ =0x00000af6
adds r1, r0
@@ -447,7 +447,7 @@ _0814BA5A:
pop {r0}
bx r0
.align 2, 0
-_0814BA60: .4byte gUnknown_300500C
+_0814BA60: .4byte gSaveBlock2Ptr
_0814BA64: .4byte 0x00000af6
_0814BA68: .4byte gUnknown_203F3DC
thumb_func_end sub_814B930
@@ -542,7 +542,7 @@ _0814BAF2:
cmp r5, 0x4
bls _0814BAF2
_0814BB14:
- ldr r0, _0814BB30 @ =gUnknown_300500C
+ ldr r0, _0814BB30 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x14]
lsls r0, 29
@@ -556,7 +556,7 @@ _0814BB14:
b _0814BB46
.align 2, 0
_0814BB2C: .4byte gUnknown_2022744
-_0814BB30: .4byte gUnknown_300500C
+_0814BB30: .4byte gSaveBlock2Ptr
_0814BB34:
cmp r0, 0x2
beq _0814BB42
diff --git a/asm/unk_814BB4C.s b/asm/unk_814BB4C.s
index 4e92a3310..d1e10916b 100644
--- a/asm/unk_814BB4C.s
+++ b/asm/unk_814BB4C.s
@@ -271,14 +271,14 @@ _0814BD20:
strb r0, [r7, 0xC]
b _0814BD68
_0814BD38:
- ldr r0, _0814BD44 @ =gUnknown_30030F0
+ ldr r0, _0814BD44 @ =gMain
ldrh r0, [r0, 0x2E]
ands r4, r0
cmp r4, 0
bne _0814BD68
b _0814BD6E
.align 2, 0
-_0814BD44: .4byte gUnknown_30030F0
+_0814BD44: .4byte gMain
_0814BD48:
ldrb r1, [r5, 0x1]
movs r0, 0x1
@@ -1449,7 +1449,7 @@ sub_814C618: @ 814C618
mov r7, r8
push {r7}
adds r5, r0, 0
- ldr r3, _0814C6AC @ =gUnknown_30030F0
+ ldr r3, _0814C6AC @ =gMain
ldrh r1, [r3, 0x2E]
movs r4, 0x1
adds r0, r4, 0
@@ -1522,7 +1522,7 @@ _0814C670:
orrs r0, r1
b _0814C6BC
.align 2, 0
-_0814C6AC: .4byte gUnknown_30030F0
+_0814C6AC: .4byte gMain
_0814C6B0: .4byte gUnknown_846E3C4
_0814C6B4:
ldrb r1, [r6]
@@ -2729,7 +2729,7 @@ _0814CFFC:
strb r0, [r1]
b _0814D08A
_0814D00E:
- ldr r0, _0814D028 @ =gUnknown_30030F0
+ ldr r0, _0814D028 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -2741,7 +2741,7 @@ _0814D00E:
bl sub_814E80C
b _0814D084
.align 2, 0
-_0814D028: .4byte gUnknown_30030F0
+_0814D028: .4byte gMain
_0814D02C:
ldrh r0, [r5, 0x12]
cmp r0, 0xC
diff --git a/asm/unk_814D5C8.s b/asm/unk_814D5C8.s
index 3f7819eb3..bbde70074 100644
--- a/asm/unk_814D5C8.s
+++ b/asm/unk_814D5C8.s
@@ -2487,7 +2487,7 @@ _0814EA20: .4byte gUnknown_2021CF0
_0814EA24: .4byte gUnknown_841D090
_0814EA28: .4byte gUnknown_841D098
_0814EA2C:
- ldr r0, _0814EA3C @ =gUnknown_30030F0
+ ldr r0, _0814EA3C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -2495,7 +2495,7 @@ _0814EA2C:
bne _0814EA66
b _0814EA6C
.align 2, 0
-_0814EA3C: .4byte gUnknown_30030F0
+_0814EA3C: .4byte gMain
_0814EA40:
ldrb r0, [r7, 0x2]
movs r1, 0x1
@@ -2540,7 +2540,7 @@ sub_814EA7C: @ 814EA7C
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, _0814EACC @ =gUnknown_300500C
+ ldr r0, _0814EACC @ =gSaveBlock2Ptr
ldr r2, [r0]
movs r3, 0xAF
lsls r3, 4
@@ -2564,7 +2564,7 @@ sub_814EA7C: @ 814EA7C
.align 2, 0
_0814EAC4: .4byte sub_814E830
_0814EAC8: .4byte gUnknown_3005090
-_0814EACC: .4byte gUnknown_300500C
+_0814EACC: .4byte gSaveBlock2Ptr
_0814EAD0: .4byte 0x00000af6
thumb_func_end sub_814EA7C
diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s
index 384fe48eb..381c4a092 100644
--- a/asm/unk_81507FC.s
+++ b/asm/unk_81507FC.s
@@ -726,7 +726,7 @@ sub_8150DA4: @ 8150DA4
ldrb r0, [r0]
cmp r0, 0
bne _08150E5A
- ldr r0, _08150DE8 @ =gUnknown_30030F0
+ ldr r0, _08150DE8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -744,7 +744,7 @@ sub_8150DA4: @ 8150DA4
b _08150E2E
.align 2, 0
_08150DE4: .4byte gUnknown_203F3E0
-_08150DE8: .4byte gUnknown_30030F0
+_08150DE8: .4byte gMain
_08150DEC: .4byte 0x000031cc
_08150DF0: .4byte 0x000031d0
_08150DF4:
@@ -819,7 +819,7 @@ sub_8150E68: @ 8150E68
ldrb r0, [r0]
cmp r0, 0x9
bhi _08150F30
- ldr r0, _08150EAC @ =gUnknown_30030F0
+ ldr r0, _08150EAC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
@@ -844,7 +844,7 @@ sub_8150E68: @ 8150E68
b _08150F36
.align 2, 0
_08150EA8: .4byte gUnknown_203F3E0
-_08150EAC: .4byte gUnknown_30030F0
+_08150EAC: .4byte gMain
_08150EB0: .4byte 0x000031cc
_08150EB4: .4byte 0x000032f8
_08150EB8:
@@ -5512,7 +5512,7 @@ sub_81531FC: @ 81531FC
ldr r1, _0815326C @ =0x000f4236
bl sub_815379C
adds r2, r0, 0
- ldr r3, _08153270 @ =gUnknown_300500C
+ ldr r3, _08153270 @ =gSaveBlock2Ptr
ldr r0, [r3]
movs r6, 0xB1
lsls r6, 4
@@ -5550,7 +5550,7 @@ _0815325C:
_08153264: .4byte gUnknown_203F3E0
_08153268: .4byte 0x0000270f
_0815326C: .4byte 0x000f4236
-_08153270: .4byte gUnknown_300500C
+_08153270: .4byte gSaveBlock2Ptr
_08153274: .4byte 0x00000b14
_08153278: .4byte 0x00000b16
thumb_func_end sub_81531FC
@@ -5603,7 +5603,7 @@ sub_81532B8: @ 81532B8
ldrb r0, [r2]
cmp r0, 0
bne _08153360
- ldr r0, _081532F0 @ =gUnknown_30030F0
+ ldr r0, _081532F0 @ =gMain
ldrh r2, [r0, 0x2E]
movs r0, 0x40
ands r0, r2
@@ -5619,7 +5619,7 @@ sub_81532B8: @ 81532B8
b _0815332E
.align 2, 0
_081532EC: .4byte gUnknown_203F3E0
-_081532F0: .4byte gUnknown_30030F0
+_081532F0: .4byte gMain
_081532F4: .4byte 0x000031cc
_081532F8:
movs r0, 0x20
@@ -6411,7 +6411,7 @@ _0815387C:
bne _081538CA
b _081538A2
_08153888:
- ldr r0, _081538AC @ =gUnknown_30030F0
+ ldr r0, _081538AC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
@@ -6429,7 +6429,7 @@ _081538A2:
strh r0, [r4]
b _081538CA
.align 2, 0
-_081538AC: .4byte gUnknown_30030F0
+_081538AC: .4byte gMain
_081538B0:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
@@ -6456,7 +6456,7 @@ sub_81538D0: @ 81538D0
sub sp, 0x30
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, _081539CC @ =gUnknown_300500C
+ ldr r0, _081539CC @ =gSaveBlock2Ptr
ldr r1, [r0]
ldr r2, _081539D0 @ =0x00000b14
adds r0, r1, r2
@@ -6567,7 +6567,7 @@ _08153946:
pop {r0}
bx r0
.align 2, 0
-_081539CC: .4byte gUnknown_300500C
+_081539CC: .4byte gSaveBlock2Ptr
_081539D0: .4byte 0x00000b14
_081539D4: .4byte 0x00000b16
_081539D8: .4byte 0x0000021d
@@ -8821,7 +8821,7 @@ _08154ACC:
_08154AF0: .4byte gUnknown_203F440
_08154AF4: .4byte 0x00003014
_08154AF8:
- ldr r0, _08154B18 @ =gUnknown_300500C
+ ldr r0, _08154B18 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x14]
lsrs r0, 3
@@ -8838,7 +8838,7 @@ _08154B10:
strb r0, [r1]
b _08154B2E
.align 2, 0
-_08154B18: .4byte gUnknown_300500C
+_08154B18: .4byte gSaveBlock2Ptr
_08154B1C: .4byte gUnknown_203F440
_08154B20: .4byte 0x00003014
_08154B24:
@@ -9740,7 +9740,7 @@ _08155298:
bhi _081552B0
b _081556C8
_081552B0:
- ldr r0, _081552D8 @ =gUnknown_30030F0
+ ldr r0, _081552D8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -9758,7 +9758,7 @@ _081552BE:
.align 2, 0
_081552D0: .4byte gUnknown_203F440
_081552D4: .4byte 0x0000301c
-_081552D8: .4byte gUnknown_30030F0
+_081552D8: .4byte gMain
_081552DC:
ldr r4, _08155330 @ =gUnknown_203F440
ldr r0, [r4]
@@ -9870,7 +9870,7 @@ _081553C0:
bhi _081553D8
b _081556C8
_081553D8:
- ldr r0, _08155410 @ =gUnknown_30030F0
+ ldr r0, _08155410 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -9895,7 +9895,7 @@ _081553E6:
.align 2, 0
_08155408: .4byte gUnknown_203F440
_0815540C: .4byte 0x0000301c
-_08155410: .4byte gUnknown_30030F0
+_08155410: .4byte gMain
_08155414: .4byte 0x00000bb7
_08155418: .4byte 0x00003014
_0815541C:
@@ -10130,7 +10130,7 @@ _0815562C:
lsrs r0, 16
cmp r0, 0x1D
bls _081556C8
- ldr r0, _08155670 @ =gUnknown_30030F0
+ ldr r0, _08155670 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -10153,7 +10153,7 @@ _0815565E:
.align 2, 0
_08155668: .4byte gUnknown_203F440
_0815566C: .4byte 0x0000301c
-_08155670: .4byte gUnknown_30030F0
+_08155670: .4byte gMain
_08155674: .4byte 0x00003014
_08155678:
ldr r5, _081556D8 @ =0x00003008
@@ -10483,7 +10483,7 @@ _08155922:
ldrb r0, [r0]
movs r1, 0x3
bl CopyWindowToVram
- ldr r0, _08155978 @ =gUnknown_30030F0
+ ldr r0, _08155978 @ =gMain
ldrh r1, [r0, 0x2E]
movs r5, 0x1
movs r0, 0x1
@@ -10507,7 +10507,7 @@ _08155966:
.align 2, 0
_08155970: .4byte gUnknown_203F440
_08155974: .4byte 0x00003009
-_08155978: .4byte gUnknown_30030F0
+_08155978: .4byte gMain
_0815597C: .4byte 0x00003020
_08155980: .4byte 0x00003014
_08155984:
diff --git a/asm/unk_8159F40.s b/asm/unk_8159F40.s
index f2faaa338..64c60c0c7 100644
--- a/asm/unk_8159F40.s
+++ b/asm/unk_8159F40.s
@@ -759,7 +759,7 @@ _0815A508:
b _0815A224
_0815A512:
ldr r0, _0815A538 @ =gUnknown_2036E38
- ldr r1, _0815A53C @ =gUnknown_3005008
+ ldr r1, _0815A53C @ =gSaveBlock1Ptr
ldr r1, [r1]
movs r2, 0xD4
lsls r2, 3
@@ -777,7 +777,7 @@ _0815A512:
bx r0
.align 2, 0
_0815A538: .4byte gUnknown_2036E38
-_0815A53C: .4byte gUnknown_3005008
+_0815A53C: .4byte gSaveBlock1Ptr
thumb_func_end sub_815A1F8
thumb_func_start sub_815A540
diff --git a/asm/unk_815C980.s b/asm/unk_815C980.s
index eae2dd237..a348558f3 100644
--- a/asm/unk_815C980.s
+++ b/asm/unk_815C980.s
@@ -373,7 +373,7 @@ sub_815CC28: @ 815CC28
movs r0, 0
strh r0, [r1]
lsls r1, r5, 3
- ldr r2, _0815CD58 @ =gUnknown_3003128
+ ldr r2, _0815CD58 @ =gMain + 0x38
mov r9, r2
add r1, r9
mov r0, r8
@@ -394,7 +394,7 @@ sub_815CC28: @ 815CC28
mov r9, r2
_0815CC72:
lsls r0, r5, 3
- ldr r1, _0815CD5C @ =gUnknown_30030F0
+ ldr r1, _0815CD5C @ =gMain
adds r3, r0, r1
ldrh r1, [r4, 0xE]
adds r0, r3, 0
@@ -463,7 +463,7 @@ _0815CC72:
bcc _0815CC72
_0815CCFA:
subs r5, 0x1
- ldr r0, _0815CD5C @ =gUnknown_30030F0
+ ldr r0, _0815CD5C @ =gMain
lsls r3, r5, 3
adds r3, r0
movs r2, 0xC
@@ -510,8 +510,8 @@ _0815CCFA:
pop {r0}
bx r0
.align 2, 0
-_0815CD58: .4byte gUnknown_3003128
-_0815CD5C: .4byte gUnknown_30030F0
+_0815CD58: .4byte gMain + 0x38
+_0815CD5C: .4byte gMain
_0815CD60: .4byte 0x000001ff
_0815CD64: .4byte 0xfffffe00
_0815CD68: .4byte 0x000003ff
@@ -590,7 +590,7 @@ sub_815CDDC: @ 815CDDC
str r2, [sp]
ldr r5, [r0, 0x14]
ldrb r7, [r0, 0x1]
- ldr r0, _0815CE60 @ =gUnknown_30030F0
+ ldr r0, _0815CE60 @ =gMain
mov r10, r0
cmp r5, 0
beq _0815CE46
@@ -645,7 +645,7 @@ _0815CE46:
strb r1, [r0]
b _0815CE80
.align 2, 0
-_0815CE60: .4byte gUnknown_30030F0
+_0815CE60: .4byte gMain
_0815CE64: .4byte 0x000003ff
_0815CE68: .4byte 0xfffffc00
_0815CE6C:
@@ -693,7 +693,7 @@ sub_815CE90: @ 815CE90
str r0, [r1]
adds r7, r3, 0
mov r10, r1
- ldr r0, _0815CF44 @ =gUnknown_30030F0
+ ldr r0, _0815CF44 @ =gMain
mov r9, r0
cmp r5, 0
beq _0815CF78
@@ -759,7 +759,7 @@ _0815CEF4:
_0815CF38: .4byte gUnknown_3002078
_0815CF3C: .4byte gUnknown_300207C
_0815CF40: .4byte gUnknown_3002080
-_0815CF44: .4byte gUnknown_30030F0
+_0815CF44: .4byte gMain
_0815CF48: .4byte 0x000003ff
_0815CF4C: .4byte 0xfffffc00
_0815CF50:
@@ -866,7 +866,7 @@ _0815D00C:
lsls r0, r3, 3
adds r1, r0, 0
adds r1, 0x39
- ldr r2, _0815D0D0 @ =gUnknown_30030F0
+ ldr r2, _0815D0D0 @ =gMain
adds r7, r1, r2
adds r0, 0x3C
adds r6, r0, r2
@@ -929,7 +929,7 @@ _0815D086:
ldrb r0, [r0, 0x3]
cmp r9, r0
bge _0815D0B6
- ldr r1, _0815D0D0 @ =gUnknown_30030F0
+ ldr r1, _0815D0D0 @ =gMain
movs r5, 0x4
negs r5, r5
movs r4, 0x2
@@ -955,7 +955,7 @@ _0815D0B6:
cmp r1, 0
beq _0815D0DC
lsls r0, r3, 3
- ldr r2, _0815D0D0 @ =gUnknown_30030F0
+ ldr r2, _0815D0D0 @ =gMain
adds r0, r2
adds r0, 0x39
ldrb r2, [r0]
@@ -965,12 +965,12 @@ _0815D0B6:
strb r1, [r0]
b _0815D0F2
.align 2, 0
-_0815D0D0: .4byte gUnknown_30030F0
+_0815D0D0: .4byte gMain
_0815D0D4: .4byte 0x000003ff
_0815D0D8: .4byte 0xfffffc00
_0815D0DC:
lsls r2, r3, 3
- ldr r4, _0815D104 @ =gUnknown_30030F0
+ ldr r4, _0815D104 @ =gMain
adds r2, r4
adds r2, 0x39
ldrb r1, [r2]
@@ -990,7 +990,7 @@ _0815D0F2:
pop {r0}
bx r0
.align 2, 0
-_0815D104: .4byte gUnknown_30030F0
+_0815D104: .4byte gMain
thumb_func_end sub_815CFEC
thumb_func_start sub_815D108
@@ -1015,7 +1015,7 @@ sub_815D108: @ 815D108
ldrb r2, [r2, 0x1]
cmp r0, 0
beq _0815D152
- ldr r1, _0815D1A4 @ =gUnknown_30030F0
+ ldr r1, _0815D1A4 @ =gMain
movs r7, 0x4
negs r7, r7
movs r6, 0x2
@@ -1074,7 +1074,7 @@ _0815D19A:
bx r0
.align 2, 0
_0815D1A0: .4byte gUnknown_203F454
-_0815D1A4: .4byte gUnknown_30030F0
+_0815D1A4: .4byte gMain
thumb_func_end sub_815D108
thumb_func_start sub_815D1A8
@@ -1103,7 +1103,7 @@ sub_815D1A8: @ 815D1A8
beq _0815D204
cmp r1, 0
beq _0815D238
- ldr r1, _0815D200 @ =gUnknown_30030F0
+ ldr r1, _0815D200 @ =gMain
movs r5, 0x4
negs r5, r5
movs r4, 0x2
@@ -1124,11 +1124,11 @@ _0815D1E8:
b _0815D238
.align 2, 0
_0815D1FC: .4byte gUnknown_203F454
-_0815D200: .4byte gUnknown_30030F0
+_0815D200: .4byte gMain
_0815D204:
cmp r1, 0
beq _0815D226
- ldr r1, _0815D240 @ =gUnknown_30030F0
+ ldr r1, _0815D240 @ =gMain
movs r5, 0x4
negs r5, r5
adds r3, 0x1
@@ -1158,7 +1158,7 @@ _0815D238:
pop {r0}
bx r0
.align 2, 0
-_0815D240: .4byte gUnknown_30030F0
+_0815D240: .4byte gMain
thumb_func_end sub_815D1A8
thumb_func_start sub_815D244
diff --git a/asm/unk_815EDDC.s b/asm/unk_815EDDC.s
index b2e204215..f12d6cc9d 100644
--- a/asm/unk_815EDDC.s
+++ b/asm/unk_815EDDC.s
@@ -7,7 +7,7 @@
thumb_func_start sub_815EDDC
sub_815EDDC: @ 815EDDC
- ldr r1, _0815EDF0 @ =gUnknown_300500C
+ ldr r1, _0815EDF0 @ =gSaveBlock2Ptr
ldr r1, [r1]
movs r2, 0xF2
lsls r2, 4
@@ -17,12 +17,12 @@ sub_815EDDC: @ 815EDDC
eors r0, r1
bx lr
.align 2, 0
-_0815EDF0: .4byte gUnknown_300500C
+_0815EDF0: .4byte gSaveBlock2Ptr
thumb_func_end sub_815EDDC
thumb_func_start sub_815EDF4
sub_815EDF4: @ 815EDF4
- ldr r2, _0815EE08 @ =gUnknown_300500C
+ ldr r2, _0815EE08 @ =gSaveBlock2Ptr
ldr r2, [r2]
movs r3, 0xF2
lsls r3, 4
@@ -32,13 +32,13 @@ sub_815EDF4: @ 815EDF4
str r2, [r0]
bx lr
.align 2, 0
-_0815EE08: .4byte gUnknown_300500C
+_0815EE08: .4byte gSaveBlock2Ptr
thumb_func_end sub_815EDF4
thumb_func_start sub_815EE0C
sub_815EE0C: @ 815EE0C
push {r4-r6,lr}
- ldr r6, _0815EE30 @ =gUnknown_3005008
+ ldr r6, _0815EE30 @ =gSaveBlock1Ptr
ldr r5, _0815EE34 @ =0x00003d38
movs r4, 0x3
_0815EE14:
@@ -55,14 +55,14 @@ _0815EE14:
pop {r0}
bx r0
.align 2, 0
-_0815EE30: .4byte gUnknown_3005008
+_0815EE30: .4byte gSaveBlock1Ptr
_0815EE34: .4byte 0x00003d38
_0815EE38: .4byte 0x00034bbf
thumb_func_end sub_815EE0C
thumb_func_start sub_815EE3C
sub_815EE3C: @ 815EE3C
- ldr r1, _0815EE50 @ =gUnknown_300500C
+ ldr r1, _0815EE50 @ =gSaveBlock2Ptr
ldr r1, [r1]
movs r2, 0xF2
lsls r2, 4
@@ -72,12 +72,12 @@ sub_815EE3C: @ 815EE3C
eors r0, r1
bx lr
.align 2, 0
-_0815EE50: .4byte gUnknown_300500C
+_0815EE50: .4byte gSaveBlock2Ptr
thumb_func_end sub_815EE3C
thumb_func_start sub_815EE54
sub_815EE54: @ 815EE54
- ldr r2, _0815EE68 @ =gUnknown_300500C
+ ldr r2, _0815EE68 @ =gSaveBlock2Ptr
ldr r2, [r2]
movs r3, 0xF2
lsls r3, 4
@@ -87,14 +87,14 @@ sub_815EE54: @ 815EE54
str r2, [r0]
bx lr
.align 2, 0
-_0815EE68: .4byte gUnknown_300500C
+_0815EE68: .4byte gSaveBlock2Ptr
thumb_func_end sub_815EE54
thumb_func_start sub_815EE6C
sub_815EE6C: @ 815EE6C
push {lr}
adds r1, r0, 0
- ldr r0, _0815EE80 @ =gUnknown_300500C
+ ldr r0, _0815EE80 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r2, _0815EE84 @ =0x00000af8
adds r0, r2
@@ -102,7 +102,7 @@ sub_815EE6C: @ 815EE6C
pop {r0}
bx r0
.align 2, 0
-_0815EE80: .4byte gUnknown_300500C
+_0815EE80: .4byte gSaveBlock2Ptr
_0815EE84: .4byte 0x00000af8
thumb_func_end sub_815EE6C
@@ -110,7 +110,7 @@ _0815EE84: .4byte 0x00000af8
sub_815EE88: @ 815EE88
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0815EEA0 @ =gUnknown_300500C
+ ldr r0, _0815EEA0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _0815EEA4 @ =0x00000af8
adds r0, r1
@@ -120,7 +120,7 @@ sub_815EE88: @ 815EE88
movs r0, 0x1
b _0815EEAA
.align 2, 0
-_0815EEA0: .4byte gUnknown_300500C
+_0815EEA0: .4byte gSaveBlock2Ptr
_0815EEA4: .4byte 0x00000af8
_0815EEA8:
movs r0, 0
@@ -133,7 +133,7 @@ _0815EEAA:
thumb_func_start sub_815EEB0
sub_815EEB0: @ 815EEB0
push {lr}
- ldr r0, _0815EECC @ =gUnknown_300500C
+ ldr r0, _0815EECC @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _0815EED0 @ =0x00000af8
adds r0, r1
@@ -145,7 +145,7 @@ sub_815EEB0: @ 815EEB0
movs r0, 0x1
b _0815EEDA
.align 2, 0
-_0815EECC: .4byte gUnknown_300500C
+_0815EECC: .4byte gSaveBlock2Ptr
_0815EED0: .4byte 0x00000af8
_0815EED4: .4byte gUnknown_20370C0
_0815EED8:
@@ -159,7 +159,7 @@ _0815EEDA:
sub_815EEE0: @ 815EEE0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r0, _0815EF04 @ =gUnknown_300500C
+ ldr r0, _0815EF04 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _0815EF08 @ =0x00000af8
adds r5, r0, r1
@@ -174,7 +174,7 @@ sub_815EEE0: @ 815EEE0
movs r0, 0x1
b _0815EF1A
.align 2, 0
-_0815EF04: .4byte gUnknown_300500C
+_0815EF04: .4byte gSaveBlock2Ptr
_0815EF08: .4byte 0x00000af8
_0815EF0C: .4byte 0x0001869f
_0815EF10:
@@ -192,7 +192,7 @@ _0815EF1A:
sub_815EF20: @ 815EF20
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _0815EF4C @ =gUnknown_300500C
+ ldr r0, _0815EF4C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _0815EF50 @ =0x00000af8
adds r4, r0, r1
@@ -210,7 +210,7 @@ sub_815EF20: @ 815EF20
movs r0, 0x1
b _0815EF56
.align 2, 0
-_0815EF4C: .4byte gUnknown_300500C
+_0815EF4C: .4byte gSaveBlock2Ptr
_0815EF50: .4byte 0x00000af8
_0815EF54:
movs r0, 0
@@ -223,7 +223,7 @@ _0815EF56:
thumb_func_start sub_815EF5C
sub_815EF5C: @ 815EF5C
push {r4,r5,lr}
- ldr r0, _0815EF8C @ =gUnknown_300500C
+ ldr r0, _0815EF8C @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _0815EF90 @ =0x00000af8
adds r4, r0, r1
@@ -243,7 +243,7 @@ sub_815EF5C: @ 815EF5C
movs r0, 0x1
b _0815EF9A
.align 2, 0
-_0815EF8C: .4byte gUnknown_300500C
+_0815EF8C: .4byte gSaveBlock2Ptr
_0815EF90: .4byte 0x00000af8
_0815EF94: .4byte gUnknown_20370C0
_0815EF98:
@@ -257,7 +257,7 @@ _0815EF9A:
thumb_func_start sub_815EFA0
sub_815EFA0: @ 815EFA0
push {lr}
- ldr r0, _0815EFB4 @ =gUnknown_300500C
+ ldr r0, _0815EFB4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, _0815EFB8 @ =0x00000af8
adds r0, r1
@@ -265,7 +265,7 @@ sub_815EFA0: @ 815EFA0
pop {r1}
bx r1
.align 2, 0
-_0815EFB4: .4byte gUnknown_300500C
+_0815EFB4: .4byte gSaveBlock2Ptr
_0815EFB8: .4byte 0x00000af8
thumb_func_end sub_815EFA0
diff --git a/asm/vs_seeker.s b/asm/vs_seeker.s
index 1d490add2..19ca8031c 100644
--- a/asm/vs_seeker.s
+++ b/asm/vs_seeker.s
@@ -170,7 +170,7 @@ _0810C794:
ands r1, r3
orrs r1, r0
strb r1, [r2]
- ldr r0, _0810C7F8 @ =gUnknown_3005008
+ ldr r0, _0810C7F8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -193,7 +193,7 @@ _0810C7E8: .4byte gUnknown_3005098
_0810C7EC: .4byte gUnknown_845318C
_0810C7F0: .4byte gUnknown_203ADB8
_0810C7F4: .4byte 0x00000431
-_0810C7F8: .4byte gUnknown_3005008
+_0810C7F8: .4byte gSaveBlock1Ptr
_0810C7FC: .4byte gUnknown_8453F5C
_0810C800: .4byte gUnknown_3005090
_0810C804: .4byte sub_810C8EC
@@ -207,7 +207,7 @@ sub_810C808: @ 810C808
mov r5, r8
push {r5-r7}
sub sp, 0x4
- ldr r0, _0810C8DC @ =gUnknown_3005008
+ ldr r0, _0810C8DC @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0x8E
lsls r1, 4
@@ -248,7 +248,7 @@ _0810C846:
ldrb r0, [r5]
strb r0, [r1, 0x6]
ldrb r0, [r5]
- ldr r1, _0810C8DC @ =gUnknown_3005008
+ ldr r1, _0810C8DC @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -309,7 +309,7 @@ _0810C8BC:
pop {r0}
bx r0
.align 2, 0
-_0810C8DC: .4byte gUnknown_3005008
+_0810C8DC: .4byte gSaveBlock1Ptr
_0810C8E0: .4byte gUnknown_2036DFC
_0810C8E4: .4byte gUnknown_203ADB8
_0810C8E8: .4byte gUnknown_2036E38
@@ -321,7 +321,7 @@ sub_810C8EC: @ 810C8EC
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- ldr r0, _0810C928 @ =gUnknown_3005008
+ ldr r0, _0810C928 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
@@ -346,7 +346,7 @@ sub_810C8EC: @ 810C8EC
bl DisplayItemMessageOnField
b _0810C95A
.align 2, 0
-_0810C928: .4byte gUnknown_3005008
+_0810C928: .4byte gSaveBlock1Ptr
_0810C92C: .4byte gUnknown_203ADB8
_0810C930: .4byte 0x00000431
_0810C934: .4byte gUnknown_81C1429
@@ -378,7 +378,7 @@ _0810C968: .4byte gUnknown_203ADB8
thumb_func_start sub_810C96C
sub_810C96C: @ 810C96C
push {lr}
- ldr r0, _0810C990 @ =gUnknown_3005008
+ ldr r0, _0810C990 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xC7
lsls r1, 3
@@ -394,7 +394,7 @@ sub_810C96C: @ 810C96C
movs r0, 0x1
b _0810C9A4
.align 2, 0
-_0810C990: .4byte gUnknown_3005008
+_0810C990: .4byte gSaveBlock1Ptr
_0810C994:
movs r0, 0x2
b _0810C9A4
@@ -529,7 +529,7 @@ _0810CA7C:
_0810CA98: .4byte gUnknown_8453F62
_0810CA9C: .4byte 0x00000431
_0810CAA0:
- ldr r0, _0810CB54 @ =gUnknown_3005008
+ ldr r0, _0810CB54 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r0, [r6]
adds r0, r5
@@ -616,7 +616,7 @@ _0810CB2C:
movs r0, 0x2
b _0810CB7E
.align 2, 0
-_0810CB54: .4byte gUnknown_3005008
+_0810CB54: .4byte gSaveBlock1Ptr
_0810CB58: .4byte 0x0000063a
_0810CB5C: .4byte gUnknown_2036E38
_0810CB60: .4byte gUnknown_8453F64
@@ -654,7 +654,7 @@ sub_810CB90: @ 810CB90
movs r1, 0
mov r0, sp
strb r1, [r0]
- ldr r5, _0810CC54 @ =gUnknown_3005008
+ ldr r5, _0810CC54 @ =gSaveBlock1Ptr
ldr r0, [r5]
movs r1, 0x8E
lsls r1, 4
@@ -739,7 +739,7 @@ _0810CBDE:
ldrb r0, [r0]
b _0810CC76
.align 2, 0
-_0810CC54: .4byte gUnknown_3005008
+_0810CC54: .4byte gSaveBlock1Ptr
_0810CC58: .4byte gUnknown_845318C
_0810CC5C: .4byte gUnknown_20386AE
_0810CC60: .4byte gUnknown_2036DFC
@@ -960,7 +960,7 @@ _0810CDE0:
thumb_func_start sub_810CDE8
sub_810CDE8: @ 810CDE8
push {lr}
- ldr r0, _0810CE04 @ =gUnknown_3005008
+ ldr r0, _0810CE04 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _0810CE08 @ =gUnknown_20370D2
ldr r2, _0810CE0C @ =0x0000063a
@@ -973,7 +973,7 @@ sub_810CDE8: @ 810CDE8
pop {r0}
bx r0
.align 2, 0
-_0810CE04: .4byte gUnknown_3005008
+_0810CE04: .4byte gSaveBlock1Ptr
_0810CE08: .4byte gUnknown_20370D2
_0810CE0C: .4byte 0x0000063a
thumb_func_end sub_810CDE8
@@ -1312,7 +1312,7 @@ _0810D0A4:
thumb_func_start sub_810D0A8
sub_810D0A8: @ 810D0A8
push {lr}
- ldr r1, _0810D0C0 @ =gUnknown_3005008
+ ldr r1, _0810D0C0 @ =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, _0810D0C4 @ =0x0000063a
adds r1, r2
@@ -1323,7 +1323,7 @@ sub_810D0A8: @ 810D0A8
movs r0, 0x1
b _0810D0CA
.align 2, 0
-_0810D0C0: .4byte gUnknown_3005008
+_0810D0C0: .4byte gSaveBlock1Ptr
_0810D0C4: .4byte 0x0000063a
_0810D0C8:
movs r0, 0
@@ -1336,7 +1336,7 @@ _0810D0CA:
sub_810D0D0: @ 810D0D0
push {r4,lr}
movs r1, 0
- ldr r4, _0810D0F4 @ =gUnknown_3005008
+ ldr r4, _0810D0F4 @ =gSaveBlock1Ptr
ldr r3, _0810D0F8 @ =0x0000063a
movs r2, 0
_0810D0DA:
@@ -1353,7 +1353,7 @@ _0810D0DA:
pop {r0}
bx r0
.align 2, 0
-_0810D0F4: .4byte gUnknown_3005008
+_0810D0F4: .4byte gSaveBlock1Ptr
_0810D0F8: .4byte 0x0000063a
thumb_func_end sub_810D0D0
@@ -1554,7 +1554,7 @@ sub_810D24C: @ 810D24C
adds r0, r1
bl npc_sync_anim_pause_bits
ldrb r0, [r4, 0x6]
- ldr r1, _0810D27C @ =gUnknown_3005008
+ ldr r1, _0810D27C @ =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
@@ -1565,7 +1565,7 @@ sub_810D24C: @ 810D24C
bx r0
.align 2, 0
_0810D278: .4byte gUnknown_2036E38
-_0810D27C: .4byte gUnknown_3005008
+_0810D27C: .4byte gSaveBlock1Ptr
thumb_func_end sub_810D24C
thumb_func_start sub_810D280
@@ -1721,7 +1721,7 @@ _0810D380:
ldr r0, _0810D3E8 @ =gUnknown_845318C
mov r2, sp
bl sub_810D164
- ldr r1, _0810D3EC @ =gUnknown_3005008
+ ldr r1, _0810D3EC @ =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, [r5]
adds r2, r6
@@ -1760,7 +1760,7 @@ _0810D3CC:
.align 2, 0
_0810D3E4: .4byte gUnknown_2036E38
_0810D3E8: .4byte gUnknown_845318C
-_0810D3EC: .4byte gUnknown_3005008
+_0810D3EC: .4byte gSaveBlock1Ptr
_0810D3F0: .4byte 0x0000063a
thumb_func_end sub_810D304
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
index 23bb15d9e..08f86c10a 100644
--- a/asm/wild_encounter.s
+++ b/asm/wild_encounter.s
@@ -310,7 +310,7 @@ _08082944:
lsls r0, 2
adds r3, r0, r5
ldrb r1, [r3]
- ldr r0, _08082998 @ =gUnknown_3005008
+ ldr r0, _08082998 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r0, 0x4
ldrsb r0, [r2, r0]
@@ -345,7 +345,7 @@ _08082980:
.align 2, 0
_08082990: .4byte gUnknown_83C9CB8
_08082994: .4byte 0x00007a01
-_08082998: .4byte gUnknown_3005008
+_08082998: .4byte gSaveBlock1Ptr
_0808299C: .4byte 0x00004024
_080829A0:
adds r0, r4, 0x1
@@ -376,7 +376,7 @@ sub_80829C0: @ 80829C0
lsls r0, 24
cmp r0, 0
bne _080829F4
- ldr r0, _080829F0 @ =gUnknown_3005008
+ ldr r0, _080829F0 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
@@ -392,7 +392,7 @@ sub_80829C0: @ 80829C0
b _080829F6
.align 2, 0
_080829EC: .4byte 0x00000849
-_080829F0: .4byte gUnknown_3005008
+_080829F0: .4byte gSaveBlock1Ptr
_080829F4:
movs r0, 0x1
_080829F6:
@@ -431,7 +431,7 @@ sub_80829FC: @ 80829FC
.align 2, 0
_08082A38: .4byte gUnknown_202402C
_08082A3C:
- ldr r0, _08082A7C @ =gUnknown_3005008
+ ldr r0, _08082A7C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
subs r1, 0x1B
@@ -463,7 +463,7 @@ _08082A74:
pop {r0}
bx r0
.align 2, 0
-_08082A7C: .4byte gUnknown_3005008
+_08082A7C: .4byte gSaveBlock1Ptr
_08082A80: .4byte gUnknown_83CA71C
_08082A84: .4byte gUnknown_202402C
thumb_func_end sub_80829FC
@@ -923,7 +923,7 @@ _08082DD2:
cmp r0, 0x1
bne _08082E24
_08082DFA:
- ldr r0, _08082E1C @ =gUnknown_3005008
+ ldr r0, _08082E1C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08082E20 @ =0x000030d0
adds r0, r1
@@ -937,7 +937,7 @@ _08082DFA:
b _08082E48
.align 2, 0
_08082E18: .4byte gUnknown_83C9CB8
-_08082E1C: .4byte gUnknown_3005008
+_08082E1C: .4byte gSaveBlock1Ptr
_08082E20: .4byte 0x000030d0
_08082E24:
ldr r4, [r4]
diff --git a/asm/wireless_communication_status_screen.s b/asm/wireless_communication_status_screen.s
index 318f23f33..c6b667356 100644
--- a/asm/wireless_communication_status_screen.s
+++ b/asm/wireless_communication_status_screen.s
@@ -472,7 +472,7 @@ _0814F58A:
movs r1, 0x3
bl CopyWindowToVram
_0814F5A4:
- ldr r0, _0814F5F8 @ =gUnknown_30030F0
+ ldr r0, _0814F5F8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
@@ -515,7 +515,7 @@ _0814F5E2:
bl sub_814F364
b _0814F648
.align 2, 0
-_0814F5F8: .4byte gUnknown_30030F0
+_0814F5F8: .4byte gMain
_0814F5FC: .4byte gUnknown_3005090
_0814F600: .4byte gUnknown_3002040
_0814F604: .4byte gUnknown_3005098
diff --git a/common_syms/main.txt b/common_syms/main.txt
new file mode 100644
index 000000000..af834cad8
--- /dev/null
+++ b/common_syms/main.txt
@@ -0,0 +1,12 @@
+gKeyRepeatStartDelay
+gLinkTransferringData
+gMain
+gKeyRepeatContinueDelay
+gSoftResetDisabled
+gIntrTable
+gUnknown_3003578
+gLinkVSyncDisabled
+IntrMain_Buffer
+gUnknown_3003D80
+gUnknown_3003D84
+gPcmDmaCounter
diff --git a/data/data.s b/data/data.s
index 05ba21574..d98a49aca 100644
--- a/data/data.s
+++ b/data/data.s
@@ -1,17 +1,5 @@
.section .rodata
-gUnknown_81E9F10:: @ 81E9F10
- .incbin "baserom.gba", 0x1E9F10, 0x1
-
-gUnknown_81E9F11:: @ 81E9F11
- .incbin "baserom.gba", 0x1E9F11, 0x17
-
-gUnknown_81E9F28:: @ 81E9F28
- .incbin "baserom.gba", 0x1E9F28, 0x38
-
-gUnknown_81E9F60:: @ 81E9F60
- .incbin "baserom.gba", 0x1E9F60, 0x4
-
gUnknown_81E9F64:: @ 81E9F64
.incbin "baserom.gba", 0x1E9F64, 0x4
diff --git a/include/battle.h b/include/battle.h
new file mode 100644
index 000000000..7c8c81f52
--- /dev/null
+++ b/include/battle.h
@@ -0,0 +1,1008 @@
+#ifndef GUARD_BATTLE_H
+#define GUARD_BATTLE_H
+
+// should they be included here or included individually by every file?
+#include "battle_util.h"
+#include "battle_script_commands.h"
+#include "battle_2.h"
+#include "battle_ai_switch_items.h"
+#include "battle_gfx_sfx_util.h"
+#include "battle_util2.h"
+
+/*
+ Banks are a name given to what could be called a 'battlerId' or 'monControllerId'.
+ Each bank has a value consisting of two bits.
+ 0x1 bit is responsible for the side, 0 = player's side, 1 = opponent's side.
+ 0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.)
+*/
+
+#define BATTLE_BANKS_COUNT 4
+
+#define IDENTITY_PLAYER_MON1 0
+#define IDENTITY_OPPONENT_MON1 1
+#define IDENTITY_PLAYER_MON2 2
+#define IDENTITY_OPPONENT_MON2 3
+
+#define SIDE_PLAYER 0x0
+#define SIDE_OPPONENT 0x1
+
+#define BIT_SIDE 0x1
+#define BIT_MON 0x2
+
+#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank]))
+#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE))
+#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE))
+
+#define BATTLE_TYPE_DOUBLE 0x0001
+#define BATTLE_TYPE_LINK 0x0002
+#define BATTLE_TYPE_WILD 0x0004
+#define BATTLE_TYPE_TRAINER 0x0008
+#define BATTLE_TYPE_FIRST_BATTLE 0x0010
+#define BATTLE_TYPE_20 0x0020
+#define BATTLE_TYPE_MULTI 0x0040
+#define BATTLE_TYPE_SAFARI 0x0080
+#define BATTLE_TYPE_BATTLE_TOWER 0x0100
+#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
+#define BATTLE_TYPE_ROAMER 0x0400
+#define BATTLE_TYPE_EREADER_TRAINER 0x0800
+#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
+#define BATTLE_TYPE_LEGENDARY 0x2000
+#define BATTLE_TYPE_REGI 0x4000
+#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
+#define BATTLE_TYPE_DOME 0x10000
+#define BATTLE_TYPE_PALACE 0x20000
+#define BATTLE_TYPE_ARENA 0x40000
+#define BATTLE_TYPE_FACTORY 0x80000
+#define BATTLE_TYPE_x100000 0x100000
+#define BATTLE_TYPE_PYRAMID 0x200000
+#define BATTLE_TYPE_INGAME_PARTNER 0x400000
+#define BATTLE_TYPE_x800000 0x800000
+#define BATTLE_TYPE_RECORDED 0x1000000
+#define BATTLE_TYPE_x2000000 0x2000000
+#define BATTLE_TYPE_x4000000 0x4000000
+#define BATTLE_TYPE_SECRET_BASE 0x8000000
+#define BATTLE_TYPE_GROUDON 0x10000000
+#define BATTLE_TYPE_KYORGE 0x20000000
+#define BATTLE_TYPE_RAYQUAZA 0x40000000
+#define BATTLE_TYPE_x80000000 0x80000000
+
+#define TRAINER_OPPONENT_3FE 0x3FE
+#define TRAINER_OPPONENT_C00 0xC00
+#define TRAINER_OPPONENT_800 0x800
+#define STEVEN_PARTNER_ID 0xC03
+#define SECRET_BASE_OPPONENT 0x400
+
+#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID)
+#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000)
+
+#define BATTLE_WON 0x1
+#define BATTLE_LOST 0x2
+#define BATTLE_DREW 0x3
+#define BATTLE_RAN 0x4
+#define BATTLE_PLAYER_TELEPORTED 0x5
+#define BATTLE_POKE_FLED 0x6
+#define BATTLE_CAUGHT 0x7
+#define BATTLE_SAFARI_OUT_OF_BALLS 0x8
+#define BATTLE_FORFEITED 0x9
+#define BATTLE_OPPONENT_TELEPORTED 0xA
+
+#define OUTCOME_LINK_BATTLE_RUN 0x80
+
+#define STATUS_NONE 0x0
+#define STATUS_SLEEP 0x7
+#define STATUS_POISON 0x8
+#define STATUS_BURN 0x10
+#define STATUS_FREEZE 0x20
+#define STATUS_PARALYSIS 0x40
+#define STATUS_TOXIC_POISON 0x80
+#define STATUS_TOXIC_COUNTER 0xF00
+
+#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON))
+#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
+
+#define STATUS2_CONFUSION 0x00000007
+#define STATUS2_FLINCHED 0x00000008
+#define STATUS2_UPROAR 0x00000070
+#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
+#define STATUS2_LOCK_CONFUSE 0x00000C00
+#define STATUS2_MULTIPLETURNS 0x00001000
+#define STATUS2_WRAPPED 0x0000E000
+#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank
+#define STATUS2_INFATUATED_WITH(bank)((gBitTable[bank] << 16))
+#define STATUS2_FOCUS_ENERGY 0x00100000
+#define STATUS2_TRANSFORMED 0x00200000
+#define STATUS2_RECHARGE 0x00400000
+#define STATUS2_RAGE 0x00800000
+#define STATUS2_SUBSTITUTE 0x01000000
+#define STATUS2_DESTINY_BOND 0x02000000
+#define STATUS2_ESCAPE_PREVENTION 0x04000000
+#define STATUS2_NIGHTMARE 0x08000000
+#define STATUS2_CURSED 0x10000000
+#define STATUS2_FORESIGHT 0x20000000
+#define STATUS2_DEFENSE_CURL 0x40000000
+#define STATUS2_TORMENT 0x80000000
+
+#define STATUS3_LEECHSEED_BANK 0x3
+#define STATUS3_LEECHSEED 0x4
+#define STATUS3_ALWAYS_HITS 0x18 // two bits
+#define STATUS3_PERISH_SONG 0x20
+#define STATUS3_ON_AIR 0x40
+#define STATUS3_UNDERGROUND 0x80
+#define STATUS3_MINIMIZED 0x100
+#define STATUS3_ROOTED 0x400
+#define STATUS3_CHARGED_UP 0x200
+#define STATUS3_YAWN 0x1800 // two bits
+#define STATUS3_IMPRISONED_OTHERS 0x2000
+#define STATUS3_GRUDGE 0x4000
+#define STATUS3_CANT_SCORE_A_CRIT 0x8000
+#define STATUS3_MUDSPORT 0x10000
+#define STATUS3_WATERSPORT 0x20000
+#define STATUS3_UNDERWATER 0x40000
+#define STATUS3_INTIMIDATE_POKES 0x80000
+#define STATUS3_TRACE 0x100000
+
+#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER))
+
+#define HITMARKER_x10 0x00000010
+#define HITMARKER_x20 0x00000020
+#define HITMARKER_DESTINYBOND 0x00000040
+#define HITMARKER_NO_ANIMATIONS 0x00000080
+#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100
+#define HITMARKER_NO_ATTACKSTRING 0x00000200
+#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
+#define HITMARKER_NO_PPDEDUCT 0x00000800
+#define HITMARKER_PURSUIT_TRAP 0x00001000
+#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
+#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
+#define HITMARKER_RUN 0x00008000
+#define HITMARKER_IGNORE_ON_AIR 0x00010000
+#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
+#define HITMARKER_IGNORE_UNDERWATER 0x00040000
+#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000
+#define HITMARKER_x100000 0x00100000
+#define HITMARKER_x200000 0x00200000
+#define HITMARKER_x400000 0x00400000
+#define HITMARKER_x800000 0x00800000
+#define HITMARKER_GRUDGE 0x01000000
+#define HITMARKER_OBEYS 0x02000000
+#define HITMARKER_x4000000 0x04000000
+#define HITMARKER_x8000000 0x08000000
+#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
+#define HITMARKER_UNK(bank) ((0x10000000 << bank))
+
+#define SIDE_STATUS_REFLECT (1 << 0)
+#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
+#define SIDE_STATUS_X4 (1 << 2)
+#define SIDE_STATUS_SPIKES (1 << 4)
+#define SIDE_STATUS_SAFEGUARD (1 << 5)
+#define SIDE_STATUS_FUTUREATTACK (1 << 6)
+#define SIDE_STATUS_MIST (1 << 8)
+#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
+
+#define ACTION_USE_MOVE 0
+#define ACTION_USE_ITEM 1
+#define ACTION_SWITCH 2
+#define ACTION_RUN 3
+#define ACTION_WATCHES_CAREFULLY 4
+#define ACTION_SAFARI_ZONE_BALL 5
+#define ACTION_POKEBLOCK_CASE 6
+#define ACTION_GO_NEAR 7
+#define ACTION_SAFARI_ZONE_RUN 8
+#define ACTION_9 9
+#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action
+#define ACTION_CANCEL_PARTNER 12 // when choosing an action
+#define ACTION_FINISHED 12 // when executing an action
+#define ACTION_NOTHING_FAINTED 13 // when choosing an action
+#define ACTION_INIT_VALUE 0xFF
+
+#define MOVESTATUS_MISSED (1 << 0)
+#define MOVESTATUS_SUPEREFFECTIVE (1 << 1)
+#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2)
+#define MOVESTATUS_NOTAFFECTED (1 << 3)
+#define MOVESTATUS_ONEHITKO (1 << 4)
+#define MOVESTATUS_FAILED (1 << 5)
+#define MOVESTATUS_ENDURED (1 << 6)
+#define MOVESTATUS_HUNGON (1 << 7)
+
+#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))
+
+#define MAX_TRAINER_ITEMS 4
+#define MAX_MON_MOVES 4
+
+#define WEATHER_RAIN_TEMPORARY (1 << 0)
+#define WEATHER_RAIN_DOWNPOUR (1 << 1)
+#define WEATHER_RAIN_PERMANENT (1 << 2)
+#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT))
+#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
+#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
+#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT))
+#define WEATHER_SUN_TEMPORARY (1 << 5)
+#define WEATHER_SUN_PERMANENT (1 << 6)
+#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT))
+#define WEATHER_HAIL (1 << 7)
+#define WEATHER_HAIL_ANY ((WEATHER_HAIL))
+#define WEATHER_ANY ((WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY))
+
+#define BATTLE_TERRAIN_GRASS 0
+#define BATTLE_TERRAIN_LONG_GRASS 1
+#define BATTLE_TERRAIN_SAND 2
+#define BATTLE_TERRAIN_UNDERWATER 3
+#define BATTLE_TERRAIN_WATER 4
+#define BATTLE_TERRAIN_POND 5
+#define BATTLE_TERRAIN_ROCK 6
+#define BATTLE_TERRAIN_CAVE 7
+#define BATTLE_TERRAIN_INSIDE 8
+#define BATTLE_TERRAIN_PLAIN 9
+
+// array entries for battle communication
+#define MULTIUSE_STATE 0x0
+#define CURSOR_POSITION 0x1
+#define TASK_ID 0x1 // task Id and cursor position share the same field
+#define SPRITES_INIT_STATE1 0x1 // shares the Id as well
+#define SPRITES_INIT_STATE2 0x2
+#define MOVE_EFFECT_BYTE 0x3
+#define ACTIONS_CONFIRMED_COUNT 0x4
+#define MULTISTRING_CHOOSER 0x5
+#define MSG_DISPLAY 0x7
+#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8
+
+#define MOVE_TARGET_SELECTED 0x0
+#define MOVE_TARGET_DEPENDS 0x1
+#define MOVE_TARGET_USER 0x2
+#define MOVE_TARGET_RANDOM 0x4
+#define MOVE_TARGET_x10 0x10
+#define MOVE_TARGET_BOTH 0x8
+#define MOVE_TARGET_FOES_AND_ALLY 0x20
+#define MOVE_TARGET_OPPONENTS_FIELD 0x40
+
+// defines for the u8 array gTypeEffectiveness
+#define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0]))
+#define TYPE_EFFECT_DEF_TYPE(i)((gTypeEffectiveness[i + 1]))
+#define TYPE_EFFECT_MULTIPLIER(i)((gTypeEffectiveness[i + 2]))
+
+// defines for the gTypeEffectiveness multipliers
+#define TYPE_MUL_NO_EFFECT 0
+#define TYPE_MUL_NOT_EFFECTIVE 5
+#define TYPE_MUL_NORMAL 10
+#define TYPE_MUL_SUPER_EFFECTIVE 20
+
+// special type table Ids
+#define TYPE_FORESIGHT 0xFE
+#define TYPE_ENDTABLE 0xFF
+
+#define BS_GET_TARGET 0
+#define BS_GET_ATTACKER 1
+#define BS_GET_EFFECT_BANK 2
+#define BS_GET_gBank1 3
+#define BS_GET_BANK_0 7
+#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
+#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
+#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
+#define BS_GET_SCRIPTING_BANK 10
+#define BS_GET_OPPONENT1 12
+#define BS_GET_PLAYER2 13
+#define BS_GET_OPPONENT2 14
+
+// for battle script commands
+#define CMP_EQUAL 0x0
+#define CMP_NOT_EQUAL 0x1
+#define CMP_GREATER_THAN 0x2
+#define CMP_LESS_THAN 0x3
+#define CMP_COMMON_BITS 0x4
+#define CMP_NO_COMMON_BITS 0x5
+
+struct TrainerMonNoItemDefaultMoves
+{
+ u16 iv;
+ u8 lvl;
+ u16 species;
+};
+
+u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg);
+u8 GetBankSide(u8 bank);
+
+struct TrainerMonItemDefaultMoves
+{
+ u16 iv;
+ u8 lvl;
+ u16 species;
+ u16 heldItem;
+};
+
+struct TrainerMonNoItemCustomMoves
+{
+ u16 iv;
+ u8 lvl;
+ u16 species;
+ u16 moves[4];
+};
+
+struct TrainerMonItemCustomMoves
+{
+ u16 iv;
+ u8 lvl;
+ u16 species;
+ u16 heldItem;
+ u16 moves[4];
+};
+
+union TrainerMonPtr
+{
+ struct TrainerMonNoItemDefaultMoves* NoItemDefaultMoves;
+ struct TrainerMonNoItemCustomMoves* NoItemCustomMoves;
+ struct TrainerMonItemDefaultMoves* ItemDefaultMoves;
+ struct TrainerMonItemCustomMoves* ItemCustomMoves;
+};
+
+struct Trainer
+{
+ /*0x00*/ u8 partyFlags;
+ /*0x01*/ u8 trainerClass;
+ /*0x02*/ u8 encounterMusic_gender; // last bit is gender
+ /*0x03*/ u8 trainerPic;
+ /*0x04*/ u8 trainerName[12];
+ /*0x10*/ u16 items[4];
+ /*0x18*/ bool8 doubleBattle;
+ /*0x1C*/ u32 aiFlags;
+ /*0x20*/ u8 partySize;
+ /*0x24*/ union TrainerMonPtr party;
+};
+
+#define PARTY_FLAG_CUSTOM_MOVES 0x1
+#define PARTY_FLAG_HAS_ITEM 0x2
+
+extern const struct Trainer gTrainers[];
+
+#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F))
+
+struct UnknownFlags
+{
+ u32 flags[4];
+};
+
+#define UNKNOWN_FLAG_FLASH_FIRE 1
+
+struct DisableStruct
+{
+ /*0x00*/ u32 transformedMonPersonality;
+ /*0x04*/ u16 disabledMove;
+ /*0x06*/ u16 encoredMove;
+ /*0x08*/ u8 protectUses;
+ /*0x09*/ u8 stockpileCounter;
+ /*0x0A*/ u8 substituteHP;
+ /*0x0B*/ u8 disableTimer1 : 4;
+ /*0x0B*/ u8 disableTimer2 : 4;
+ /*0x0C*/ u8 encoredMovePos;
+ /*0x0D*/ u8 unkD;
+ /*0x0E*/ u8 encoreTimer1 : 4;
+ /*0x0E*/ u8 encoreTimer2 : 4;
+ /*0x0F*/ u8 perishSongTimer1 : 4;
+ /*0x0F*/ u8 perishSongTimer2 : 4;
+ /*0x10*/ u8 furyCutterCounter;
+ /*0x11*/ u8 rolloutCounter1 : 4;
+ /*0x11*/ u8 rolloutCounter2 : 4;
+ /*0x12*/ u8 chargeTimer1 : 4;
+ /*0x12*/ u8 chargeTimer2 : 4;
+ /*0x13*/ u8 tauntTimer1:4;
+ /*0x13*/ u8 tauntTimer2:4;
+ /*0x14*/ u8 bankPreventingEscape;
+ /*0x15*/ u8 bankWithSureHit;
+ /*0x16*/ u8 isFirstTurn;
+ /*0x17*/ u8 unk17;
+ /*0x18*/ u8 truantCounter : 1;
+ /*0x18*/ u8 truantUnknownBit : 1;
+ /*0x18*/ u8 unk18_a_2 : 2;
+ /*0x18*/ u8 unk18_b : 4;
+ /*0x19*/ u8 rechargeCounter;
+ /*0x1A*/ u8 unk1A[2];
+};
+
+extern struct DisableStruct gDisableStructs[BATTLE_BANKS_COUNT];
+
+struct ProtectStruct
+{
+ /* field_0 */
+ u32 protected:1;
+ u32 endured:1;
+ u32 onlyStruggle:1;
+ u32 helpingHand:1;
+ u32 bounceMove:1;
+ u32 stealMove:1;
+ u32 flag0Unknown:1;
+ u32 prlzImmobility:1;
+ /* field_1 */
+ u32 confusionSelfDmg:1;
+ u32 targetNotAffected:1;
+ u32 chargingTurn:1;
+ u32 fleeFlag:2; // for RunAway and Smoke Ball
+ u32 usedImprisionedMove:1;
+ u32 loveImmobility:1;
+ u32 usedDisabledMove:1;
+ /* field_2 */
+ u32 usedTauntedMove:1; // 0x1
+ u32 flag2Unknown:1; // 0x2
+ u32 flinchImmobility:1; // 0x4
+ u32 notFirstStrike:1; // 0x8
+ u32 flag_x10 : 1; // 0x10
+ u32 flag_x20 : 1; // 0x20
+ u32 flag_x40 : 1; // 0x40
+ u32 flag_x80 : 1; // 0x80
+ /* field_3 */
+ u32 field3 : 8;
+
+ /* field_4 */ u32 physicalDmg;
+ /* field_8 */ u32 specialDmg;
+ /* field_C */ u8 physicalBank;
+ /* field_D */ u8 specialBank;
+ /* field_E */ u16 fieldE;
+};
+
+extern struct ProtectStruct gProtectStructs[BATTLE_BANKS_COUNT];
+
+struct SpecialStatus
+{
+ u8 statLowered : 1; // 0x1
+ u8 lightningRodRedirected : 1; // 0x2
+ u8 restoredBankSprite: 1; // 0x4
+ u8 intimidatedPoke : 1; // 0x8
+ u8 traced : 1; // 0x10
+ u8 flag20 : 1;
+ u8 flag40 : 1;
+ u8 focusBanded : 1;
+ u8 field1[3];
+ s32 moveturnLostHP;
+ s32 moveturnLostHP_physical;
+ s32 moveturnLostHP_special;
+ u8 moveturnPhysicalBank;
+ u8 moveturnSpecialBank;
+ u8 field12;
+ u8 field13;
+};
+
+extern struct SpecialStatus gSpecialStatuses[BATTLE_BANKS_COUNT];
+
+struct SideTimer
+{
+ /*0x00*/ u8 reflectTimer;
+ /*0x01*/ u8 reflectBank;
+ /*0x02*/ u8 lightscreenTimer;
+ /*0x03*/ u8 lightscreenBank;
+ /*0x04*/ u8 mistTimer;
+ /*0x05*/ u8 mistBank;
+ /*0x06*/ u8 safeguardTimer;
+ /*0x07*/ u8 safeguardBank;
+ /*0x08*/ u8 followmeTimer;
+ /*0x09*/ u8 followmeTarget;
+ /*0x0A*/ u8 spikesAmount;
+ /*0x0B*/ u8 fieldB;
+};
+
+extern struct SideTimer gSideTimers[];
+
+struct WishFutureKnock
+{
+ u8 futureSightCounter[BATTLE_BANKS_COUNT];
+ u8 futureSightAttacker[BATTLE_BANKS_COUNT];
+ s32 futureSightDmg[BATTLE_BANKS_COUNT];
+ u16 futureSightMove[BATTLE_BANKS_COUNT];
+ u8 wishCounter[BATTLE_BANKS_COUNT];
+ u8 wishUserID[BATTLE_BANKS_COUNT];
+ u8 weatherDuration;
+ u8 knockedOffPokes[2];
+};
+
+extern struct WishFutureKnock gWishFutureKnock;
+
+struct AI_ThinkingStruct
+{
+ u8 aiState;
+ u8 movesetIndex;
+ u16 moveConsidered;
+ s8 score[4];
+ u32 funcResult;
+ u32 aiFlags;
+ u8 aiAction;
+ u8 aiLogicId;
+ u8 filler12[6];
+ u8 simulatedRNG[4];
+};
+
+struct UsedMoves
+{
+ u16 moves[BATTLE_BANKS_COUNT];
+ u16 unknown[BATTLE_BANKS_COUNT];
+};
+
+struct BattleHistory
+{
+ struct UsedMoves usedMoves[BATTLE_BANKS_COUNT];
+ u8 abilities[BATTLE_BANKS_COUNT];
+ u8 itemEffects[BATTLE_BANKS_COUNT];
+ u16 trainerItems[BATTLE_BANKS_COUNT];
+ u8 itemsNo;
+};
+
+struct BattleScriptsStack
+{
+ const u8 *ptr[8];
+ u8 size;
+};
+
+struct BattleCallbacksStack
+{
+ void (*function[8])(void);
+ u8 size;
+};
+
+struct StatsArray
+{
+ u16 hp;
+ u16 atk;
+ u16 def;
+ u16 spd;
+ u16 spAtk;
+ u16 spDef;
+};
+
+struct BattleResources
+{
+ struct SecretBaseRecord* secretBase;
+ struct UnknownFlags *flags;
+ struct BattleScriptsStack* battleScriptsStack;
+ struct BattleCallbacksStack* battleCallbackStack;
+ struct StatsArray* statsBeforeLvlUp;
+ struct AI_ThinkingStruct *ai;
+ struct BattleHistory *battleHistory;
+ struct BattleScriptsStack *AI_ScriptsStack;
+};
+
+extern struct BattleResources* gBattleResources;
+
+#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack)
+#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack)
+#define BATTLE_LVLUP_STATS (gBattleResources->statsBeforeLvlUp)
+
+struct BattleResults
+{
+ u8 playerFaintCounter; // 0x0
+ u8 opponentFaintCounter; // 0x1
+ u8 playerSwitchesCounter; // 0x2
+ u8 unk3; // 0x3
+ u8 unk4; // 0x4
+ u8 unk5_0:1; // 0x5
+ u8 usedMasterBall:1; // 0x5
+ u8 caughtMonBall:4; // 0x5
+ u8 unk5_6:1; // 0x5
+ u8 unk5_7:1; // 0x5
+ u16 playerMon1Species; // 0x6
+ u8 playerMon1Name[11]; // 0x8
+ u8 battleTurnCounter; // 0x13
+ u8 playerMon2Name[11]; // 0x14
+ u8 field_1F; // 0x1F
+ u16 lastOpponentSpecies; // 0x20
+ u16 lastUsedMovePlayer; // 0x22
+ u16 lastUsedMoveOpponent; // 0x24
+ u16 playerMon2Species; // 0x26
+ u16 caughtMonSpecies; // 0x28
+ u8 caughtMonNick[10]; // 0x2A
+ u8 filler34[2];
+ u8 catchAttempts[11]; // 0x36
+};
+
+extern struct BattleResults gBattleResults;
+
+struct BattleStruct
+{
+ u8 turnEffectsTracker;
+ u8 turnEffectsBank;
+ u8 filler2;
+ u8 turncountersTracker;
+ u8 wrappedMove[8]; // ask gamefreak why they declared it that way
+ u8 moveTarget[4];
+ u8 expGetterId;
+ u8 field_11;
+ u8 wildVictorySong;
+ u8 dynamicMoveType;
+ u8 wrappedBy[4];
+ u16 assistPossibleMoves[5 * 4]; // 5 mons, each of them knowing 4 moves
+ u8 field_40;
+ u8 field_41;
+ u8 field_42;
+ u8 field_43;
+ u8 field_44;
+ u8 field_45;
+ u8 field_46;
+ u8 field_47;
+ u8 focusPunchBank;
+ u8 field_49;
+ u8 moneyMultiplier;
+ u8 savedTurnActionNumber;
+ u8 switchInAbilitiesCounter;
+ u8 faintedActionsState;
+ u8 faintedActionsBank;
+ u8 field_4F;
+ u16 expValue;
+ u8 field_52;
+ u8 sentInPokes;
+ bool8 selectionScriptFinished[BATTLE_BANKS_COUNT];
+ u8 field_58[4];
+ u8 monToSwitchIntoId[BATTLE_BANKS_COUNT];
+ u8 field_60[4][3];
+ u8 runTries;
+ u8 caughtMonNick[11];
+ u8 field_78;
+ u8 field_79;
+ u8 field_7A;
+ u8 field_7B;
+ u8 field_7C;
+ u8 field_7D;
+ u8 field_7E;
+ u8 formToChangeInto;
+ u8 chosenMovePositions[BATTLE_BANKS_COUNT];
+ u8 stateIdAfterSelScript[BATTLE_BANKS_COUNT];
+ u8 field_88;
+ u8 field_89;
+ u8 field_8A;
+ u8 field_8B;
+ u8 field_8C;
+ u8 field_8D;
+ u8 stringMoveType;
+ u8 expGetterBank;
+ u8 field_90;
+ u8 field_91;
+ u8 field_92;
+ u8 field_93;
+ u8 wallyBattleState;
+ u8 wallyMovesState;
+ u8 wallyWaitFrames;
+ u8 wallyMoveFrames;
+ u8 mirrorMoves[8]; // ask gamefreak why they declared it that way
+ u8 field_A0;
+ u8 field_A1;
+ u8 field_A2;
+ u8 field_A3;
+ u8 field_A4;
+ u8 field_A5;
+ u8 field_A6;
+ u8 field_A7;
+ u16 hpOnSwitchout[2];
+ u32 savedBattleTypeFlags;
+ u8 field_B0;
+ u8 hpScale;
+ u8 synchronizeMoveEffect;
+ u8 field_B3;
+ void (*savedCallback)(void);
+ u16 usedHeldItems[BATTLE_BANKS_COUNT];
+ u8 chosenItem[4]; // why is this an u8?
+ u8 AI_itemType[2];
+ u8 AI_itemFlags[2];
+ u16 choicedMove[BATTLE_BANKS_COUNT];
+ u16 changedItems[BATTLE_BANKS_COUNT];
+ u8 intimidateBank;
+ u8 switchInItemsCounter;
+ u8 field_DA;
+ u8 turnSideTracker;
+ u8 fillerDC[0xDF-0xDC];
+ u8 field_DF;
+ u8 mirrorMoveArrays[32];
+ u16 castformPalette[BATTLE_BANKS_COUNT][16];
+ u8 field_180;
+ u8 field_181;
+ u8 field_182;
+ u8 field_183;
+ struct BattleEnigmaBerry battleEnigmaBerry;
+ u8 wishPerishSongState;
+ u8 wishPerishSongBank;
+ bool8 overworldWeatherDone;
+ u8 atkCancellerTracker;
+ u8 field_1A4[96];
+ u8 field_204[104];
+ u8 field_26C[40];
+ u8 AI_monToSwitchIntoId[BATTLE_BANKS_COUNT];
+ u8 field_298[8];
+ u8 field_2A0;
+ u8 field_2A1;
+ u8 field_2A2;
+};
+
+extern struct BattleStruct* gBattleStruct;
+
+#define GET_MOVE_TYPE(move, typeArg) \
+{ \
+ if (gBattleStruct->dynamicMoveType) \
+ typeArg = gBattleStruct->dynamicMoveType & 0x3F; \
+ else \
+ typeArg = gBattleMoves[move].type; \
+}
+
+#define MOVE_EFFECT_SLEEP 0x1
+#define MOVE_EFFECT_POISON 0x2
+#define MOVE_EFFECT_BURN 0x3
+#define MOVE_EFFECT_FREEZE 0x4
+#define MOVE_EFFECT_PARALYSIS 0x5
+#define MOVE_EFFECT_TOXIC 0x6
+#define MOVE_EFFECT_CONFUSION 0x7
+#define MOVE_EFFECT_FLINCH 0x8
+#define MOVE_EFFECT_TRI_ATTACK 0x9
+#define MOVE_EFFECT_UPROAR 0xA
+#define MOVE_EFFECT_PAYDAY 0xB
+#define MOVE_EFFECT_CHARGING 0xC
+#define MOVE_EFFECT_WRAP 0xD
+#define MOVE_EFFECT_RECOIL_25 0xE
+#define MOVE_EFFECT_ATK_PLUS_1 0xF
+#define MOVE_EFFECT_DEF_PLUS_1 0x10
+#define MOVE_EFFECT_SPD_PLUS_1 0x11
+#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12
+#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13
+#define MOVE_EFFECT_ACC_PLUS_1 0x14
+#define MOVE_EFFECT_EVS_PLUS_1 0x15
+#define MOVE_EFFECT_ATK_MINUS_1 0x16
+#define MOVE_EFFECT_DEF_MINUS_1 0x17
+#define MOVE_EFFECT_SPD_MINUS_1 0x18
+#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19
+#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A
+#define MOVE_EFFECT_ACC_MINUS_1 0x1B
+#define MOVE_EFFECT_EVS_MINUS_1 0x1C
+#define MOVE_EFFECT_RECHARGE 0x1D
+#define MOVE_EFFECT_RAGE 0x1E
+#define MOVE_EFFECT_STEAL_ITEM 0x1F
+#define MOVE_EFFECT_PREVENT_ESCAPE 0x20
+#define MOVE_EFFECT_NIGHTMARE 0x21
+#define MOVE_EFFECT_ALL_STATS_UP 0x22
+#define MOVE_EFFECT_RAPIDSPIN 0x23
+#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24
+#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
+#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26
+#define MOVE_EFFECT_ATK_PLUS_2 0x27
+#define MOVE_EFFECT_DEF_PLUS_2 0x28
+#define MOVE_EFFECT_SPD_PLUS_2 0x29
+#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A
+#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B
+#define MOVE_EFFECT_ACC_PLUS_2 0x2C
+#define MOVE_EFFECT_EVS_PLUS_2 0x2D
+#define MOVE_EFFECT_ATK_MINUS_2 0x2E
+#define MOVE_EFFECT_DEF_MINUS_2 0x2F
+#define MOVE_EFFECT_SPD_MINUS_2 0x30
+#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31
+#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32
+#define MOVE_EFFECT_ACC_MINUS_2 0x33
+#define MOVE_EFFECT_EVS_MINUS_2 0x34
+#define MOVE_EFFECT_THRASH 0x35
+#define MOVE_EFFECT_KNOCK_OFF 0x36
+#define MOVE_EFFECT_NOTHING_37 0x37
+#define MOVE_EFFECT_NOTHING_38 0x38
+#define MOVE_EFFECT_NOTHING_39 0x39
+#define MOVE_EFFECT_NOTHING_3A 0x3A
+#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
+#define MOVE_EFFECT_NOTHING_3C 0x3C
+#define MOVE_EFFECT_NOTHING_3D 0x3D
+#define MOVE_EFFECT_NOTHING_3E 0x3E
+#define MOVE_EFFECT_NOTHING_3F 0x3F
+#define MOVE_EFFECT_AFFECTS_USER 0x40
+#define MOVE_EFFECT_CERTAIN 0x80
+
+// table ids for general animations
+#define B_ANIM_CASTFORM_CHANGE 0x0
+#define B_ANIM_STATS_CHANGE 0x1
+#define B_ANIM_SUBSTITUTE_FADE 0x2
+#define B_ANIM_SUBSTITUTE_APPEAR 0x3
+#define B_ANIM_x4 0x4
+#define B_ANIM_ITEM_KNOCKOFF 0x5
+#define B_ANIM_TURN_TRAP 0x6
+#define B_ANIM_ITEM_EFFECT 0x7
+#define B_ANIM_SMOKEBALL_ESCAPE 0x8
+#define B_ANIM_HANGED_ON 0x9
+#define B_ANIM_RAIN_CONTINUES 0xA
+#define B_ANIM_SUN_CONTINUES 0xB
+#define B_ANIM_SANDSTORM_CONTINUES 0xC
+#define B_ANIM_HAIL_CONTINUES 0xD
+#define B_ANIM_LEECH_SEED_DRAIN 0xE
+#define B_ANIM_MON_HIT 0xF
+#define B_ANIM_ITEM_STEAL 0x10
+#define B_ANIM_SNATCH_MOVE 0x11
+#define B_ANIM_FUTURE_SIGHT_HIT 0x12
+#define B_ANIM_DOOM_DESIRE_HIT 0x13
+#define B_ANIM_x14 0x14
+#define B_ANIM_INGRAIN_HEAL 0x15
+#define B_ANIM_WISH_HEAL 0x16
+
+// special animations table
+#define B_ANIM_LVL_UP 0x0
+#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1
+#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2
+#define B_ANIM_BALL_THROW 0x3
+#define B_ANIM_SAFARI_BALL_THROW 0x4
+#define B_ANIM_SUBSTITUTE_TO_MON 0x5
+#define B_ANIM_MON_TO_SUBSTITUTE 0x6
+
+// status animation table
+#define B_ANIM_STATUS_PSN 0x0
+#define B_ANIM_STATUS_CONFUSION 0x1
+#define B_ANIM_STATUS_BRN 0x2
+#define B_ANIM_STATUS_INFATUATION 0x3
+#define B_ANIM_STATUS_SLP 0x4
+#define B_ANIM_STATUS_PRZ 0x5
+#define B_ANIM_STATUS_FRZ 0x6
+#define B_ANIM_STATUS_CURSED 0x7
+#define B_ANIM_STATUS_NIGHTMARE 0x8
+#define B_ANIM_STATUS_WRAPPED 0x9
+
+#define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8
+#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40
+#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit
+
+#define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0))
+
+#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7))
+
+struct BattleScripting
+{
+ s32 painSplitHp;
+ s32 bideDmg;
+ u8 multihitString[6];
+ u8 dmgMultiplier;
+ u8 twoTurnsMoveStringId;
+ u8 animArg1;
+ u8 animArg2;
+ u16 tripleKickPower;
+ u8 atk49_state;
+ u8 bankWithAbility;
+ u8 multihitMoveEffect;
+ u8 bank;
+ u8 animTurn;
+ u8 animTargetsHit;
+ u8 statChanger;
+ u8 field_1B;
+ u8 atk23_state;
+ u8 battleStyle;
+ u8 atk6C_state;
+ u8 learnMoveState;
+ u8 field_20;
+ u8 reshowMainState;
+ u8 reshowHelperState;
+ u8 field_23;
+ u8 field_24;
+ u8 multiplayerId;
+};
+
+extern struct BattleScripting gBattleScripting;
+
+// functions
+
+// battle_1
+void LoadBattleTextboxAndBackground(void);
+void LoadBattleEntryBackground(void);
+void ApplyPlayerChosenFrameToBattleMenu(void);
+bool8 LoadChosenBattleElement(u8 caseId);
+void DrawMainBattleBackground(void);
+void task00_0800F6FC(u8 taskId);
+
+enum
+{
+ BACK_PIC_BRENDAN,
+ BACK_PIC_MAY,
+ BACK_PIC_RED,
+ BACK_PIC_LEAF,
+ BACK_PIC_RS_BRENDAN,
+ BACK_PIC_RS_MAY,
+ BACK_PIC_WALLY,
+ BACK_PIC_STEVEN
+};
+
+// rom_80A5C6C
+u8 GetBankSide(u8 bank);
+u8 GetBankIdentity(u8 bank);
+u8 GetBankByIdentity(u8 bank);
+
+struct BattleSpriteInfo
+{
+ u16 invisible : 1; // 0x1
+ u16 lowHpSong : 1; // 0x2
+ u16 behindSubstitute : 1; // 0x4
+ u16 flag_x8 : 1; // 0x8
+ u16 hpNumbersNoBars : 1; // 0x10
+ u16 transformSpecies;
+};
+
+struct BattleAnimationInfo
+{
+ u16 animArg; // to fill up later
+ u8 field_2;
+ u8 field_3;
+ u8 field_4;
+ u8 field_5;
+ u8 field_6;
+ u8 field_7;
+ u8 ballThrowCaseId;
+ u8 field_9_x1 : 1;
+ u8 field_9_x2 : 1;
+ u8 field_9_x1C : 3;
+ u8 field_9_x20 : 1;
+ u8 field_9_x40 : 1;
+ u8 field_9_x80 : 1;
+ u8 field_A;
+ u8 field_B;
+ u8 field_C;
+ u8 field_D;
+ u8 field_E;
+ u8 field_F;
+};
+
+struct BattleHealthboxInfo
+{
+ u8 flag_x1 : 1;
+ u8 flag_x2 : 1;
+ u8 flag_x4 : 1;
+ u8 ballAnimActive : 1; // 0x8
+ u8 statusAnimActive : 1; // x10
+ u8 animFromTableActive : 1; // x20
+ u8 specialAnimActive : 1; //x40
+ u8 flag_x80 : 1;
+ u8 field_1_x1 : 1;
+ u8 field_1_x1E : 4;
+ u8 field_1_x20 : 1;
+ u8 field_1_x40 : 1;
+ u8 field_1_x80 : 1;
+ u8 field_2;
+ u8 field_3;
+ u8 animationState;
+ u8 field_5;
+ u8 field_6;
+ u8 shadowSpriteId;
+ u8 field_8;
+ u8 field_9;
+ u8 field_A;
+ u8 field_B;
+};
+
+struct BattleBarInfo
+{
+ u8 healthboxSpriteId;
+ s32 maxValue;
+ s32 currentValue;
+ s32 receivedValue;
+ s32 field_10;
+};
+
+struct BattleSpriteData
+{
+ struct BattleSpriteInfo *bankData;
+ struct BattleHealthboxInfo *healthBoxesData;
+ struct BattleAnimationInfo *animationData;
+ struct BattleBarInfo *battleBars;
+};
+
+extern struct BattleSpriteData *gBattleSpritesDataPtr;
+
+#define BATTLE_BUFFER_LINK_SIZE 0x1000
+
+extern u8 *gLinkBattleSendBuffer;
+extern u8 *gLinkBattleRecvBuffer;
+
+extern u8 *gUnknown_0202305C;
+extern u8 *gUnknown_02023060;
+
+// Move this somewhere else
+
+#include "sprite.h"
+
+struct MonSpritesGfx
+{
+ void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon
+ void* sprites[4];
+ struct SpriteTemplate templates[4];
+ struct SpriteFrameImage field_74[4][4];
+ u8 field_F4[0x80];
+ u8 *barFontGfx;
+ void *field_178;
+ void *field_17C;
+};
+
+extern struct BattleSpritesGfx* gMonSpritesGfx;
+extern u8 gBattleOutcome;
+extern u16 gLastUsedItem;
+extern u32 gBattleTypeFlags;
+extern struct MonSpritesGfx* gMonSpritesGfxPtr;
+extern u16 gTrainerBattleOpponent_A;
+
+#endif // GUARD_BATTLE_H
diff --git a/include/battle_2.h b/include/battle_2.h
new file mode 100644
index 000000000..ee61efd9b
--- /dev/null
+++ b/include/battle_2.h
@@ -0,0 +1,55 @@
+#ifndef GUARD_BATTLE_2_H
+#define GUARD_BATTLE_2_H
+
+void CB2_InitBattle(void);
+void BattleMainCB2(void);
+void CB2_QuitRecordedBattle(void);
+void sub_8038528(struct Sprite* sprite);
+void sub_8038A04(void); // unused
+void VBlankCB_Battle(void);
+void nullsub_17(void);
+void sub_8038B74(struct Sprite *sprite);
+void sub_8038D64(void);
+u32 sub_80391E0(u8 arrayId, u8 caseId);
+u32 sub_80397C4(u32 setId, u32 tableId);
+void oac_poke_opponent(struct Sprite *sprite);
+void SpriteCallbackDummy_2(struct Sprite *sprite);
+void sub_8039934(struct Sprite *sprite);
+void sub_8039AD8(struct Sprite *sprite);
+void sub_8039B2C(struct Sprite *sprite);
+void sub_8039B58(struct Sprite *sprite);
+void sub_8039BB4(struct Sprite *sprite);
+void sub_80105DC(struct Sprite *sprite);
+void sub_8039C00(struct Sprite *sprite);
+void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d);
+void dp11b_obj_free(u8 bank, bool8 b);
+void sub_8039E44(struct Sprite *sprite);
+void sub_8039E60(struct Sprite *sprite);
+void sub_8039E84(struct Sprite *sprite);
+void sub_8039E9C(struct Sprite *sprite);
+void nullsub_20(void);
+void BeginBattleIntro(void);
+void SwitchInClearSetData(void);
+void FaintClearSetData(void);
+void sub_803B3AC(void); // unused
+void sub_803B598(void); // unused
+void BattleTurnPassed(void);
+u8 IsRunningFromBattleImpossible(void);
+void sub_803BDA0(u8 bank);
+void SwapTurnOrder(u8 id1, u8 id2);
+u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves);
+void RunBattleScriptCommands_PopCallbacksStack(void);
+void RunBattleScriptCommands(void);
+bool8 TryRunFromBattle(u8 bank);
+
+extern const u8 gStatusConditionString_PoisonJpn[8];
+extern const u8 gStatusConditionString_SleepJpn[8];
+extern const u8 gStatusConditionString_ParalysisJpn[8];
+extern const u8 gStatusConditionString_BurnJpn[8];
+extern const u8 gStatusConditionString_IceJpn[8];
+extern const u8 gStatusConditionString_ConfusionJpn[8];
+extern const u8 gStatusConditionString_LoveJpn[8];
+
+extern const u8 * const gStatusConditionStringsTable[7][2];
+
+#endif // GUARD_BATTLE_2_H
diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h
new file mode 100644
index 000000000..5fb422b41
--- /dev/null
+++ b/include/battle_ai_script_commands.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
+#define GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
+
+void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves);
+void BattleAI_SetupAIData(u8 defaultScoreMoves);
+u8 BattleAI_ChooseMoveOrAction(void);
+void ClearBankMoveHistory(u8 bank);
+void RecordAbilityBattle(u8 bank, u8 abilityId);
+void ClearBankAbilityHistory(u8 bank);
+void RecordItemEffectBattle(u8 bank, u8 itemEffect);
+void ClearBankItemEffectHistory(u8 bank);
+
+#endif // GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h
new file mode 100644
index 000000000..0a230e7f6
--- /dev/null
+++ b/include/battle_ai_switch_items.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_BATTLE_AI_SWITCH_ITEMS_H
+#define GUARD_BATTLE_AI_SWITCH_ITEMS_H
+
+enum
+{
+ AI_ITEM_FULL_RESTORE = 1,
+ AI_ITEM_HEAL_HP,
+ AI_ITEM_CURE_CONDITION,
+ AI_ITEM_X_STAT,
+ AI_ITEM_GUARD_SPECS,
+ AI_ITEM_NOT_RECOGNIZABLE
+};
+
+void AI_TrySwitchOrUseItem(void);
+u8 GetMostSuitableMonToSwitchInto(void);
+
+#endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H
diff --git a/include/battle_anim.h b/include/battle_anim.h
new file mode 100644
index 000000000..9fb7ccd53
--- /dev/null
+++ b/include/battle_anim.h
@@ -0,0 +1,118 @@
+#ifndef GUARD_BATTLE_ANIM_H
+#define GUARD_BATTLE_ANIM_H
+
+enum
+{
+ ANIM_BANK_ATTACKER,
+ ANIM_BANK_TARGET,
+ ANIM_BANK_ATK_PARTNER,
+ ANIM_BANK_DEF_PARTNER,
+};
+
+enum
+{
+ BG_ANIM_SCREEN_SIZE,
+ BG_ANIM_AREA_OVERFLOW_MODE,
+ BG_ANIM2,
+ BG_ANIM3,
+ BG_ANIM_PRIORITY,
+ BG_ANIM_5,
+ BG_ANIM_6
+};
+
+struct UnknownAnimStruct2
+{
+ void *unk0;
+ u16 *unk4;
+ u8 unk8;
+ u8 unk9;
+ u16 unkA;
+ u16 unkC;
+};
+
+struct BattleAnimBackground
+{
+ void *image;
+ void *palette;
+ void *tilemap;
+};
+
+#define ANIM_ARGS_COUNT 8
+
+#define PAN_SIDE_PLAYER -64
+#define PAN_SIDE_OPPONENT 63
+
+extern void (*gAnimScriptCallback)(void);
+extern bool8 gAnimScriptActive;
+extern u8 gAnimVisualTaskCount;
+extern u8 gAnimSoundTaskCount;
+extern struct DisableStruct *gAnimDisableStructPtr;
+extern u32 gAnimMoveDmg;
+extern u16 gAnimMovePower;
+extern u8 gAnimFriendship;
+extern u16 gWeatherMoveAnim;
+extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT];
+extern u8 gAnimMoveTurn;
+extern u8 gAnimBankAttacker;
+extern u8 gAnimBankTarget;
+extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT];
+extern u8 gUnknown_02038440;
+
+void ClearBattleAnimationVars(void);
+void DoMoveAnim(u16 move);
+void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim);
+void DestroyAnimSprite(struct Sprite *sprite);
+void DestroyAnimVisualTask(u8 taskId);
+void DestroyAnimSoundTask(u8 taskId);
+bool8 IsAnimBankSpriteVisible(u8 bank);
+void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible);
+bool8 IsContest(void);
+s8 BattleAnimAdjustPanning(s8 pan);
+s8 BattleAnimAdjustPanning2(s8 pan);
+s16 sub_80A52EC(s16 a);
+s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
+
+// battle_anim_80FE840.s
+void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
+void sub_8118FBC(u8 arg0, u8 arg1, u8 arg2, u8 bankIdentity, u8 arg4, void *arg5, u16 *arg6, u16 arg7);
+void HandleIntroSlide(u8 terrainId);
+
+// battle_anim_80A5C6C.s
+void sub_80A6EEC(struct Sprite *sprite);
+void sub_80A68D4(struct Sprite *sprite);
+void sub_80A6F3C(struct Sprite *sprite);
+void sub_80A8278(void);
+void sub_80A6B30(struct UnknownAnimStruct2*);
+void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1);
+u8 sub_80A82E4(u8 bank);
+bool8 AnimateBallThrow(struct Sprite *sprite);
+
+enum
+{
+ BANK_X_POS,
+ BANK_Y_POS,
+};
+
+u8 GetBankPosition(u8 bank, u8 attributeId);
+
+bool8 IsBankSpritePresent(u8 bank);
+void sub_80A6C68(u8 arg0);
+u8 GetAnimBankSpriteId(u8 wantedBank);
+bool8 IsDoubleBattle(void);
+u8 sub_80A6D94(void);
+u8 sub_80A8364(u8);
+void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*));
+void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
+u8 GetBankSpriteDefault_Y(u8 bank);
+u8 sub_80A82E4(u8 bank);
+u8 GetSubstituteSpriteDefault_Y(u8 bank);
+
+// battle_anim_80A9C70.s
+void LaunchStatusAnimation(u8 bank, u8 statusAnimId);
+
+// battle_anim_8170478.s
+u8 ItemIdToBallId(u16 itemId);
+u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
+u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 bank, u32 arg2, u8 ballId);
+
+#endif // GUARD_BATTLE_ANIM_H
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
new file mode 100644
index 000000000..c69cb1017
--- /dev/null
+++ b/include/battle_controllers.h
@@ -0,0 +1,278 @@
+#ifndef GUARD_BATTLE_CONTROLLERS_H
+#define GUARD_BATTLE_CONTROLLERS_H
+
+enum
+{
+ REQUEST_ALL_BATTLE,
+ REQUEST_SPECIES_BATTLE,
+ REQUEST_HELDITEM_BATTLE,
+ REQUEST_MOVES_PP_BATTLE,
+ REQUEST_MOVE1_BATTLE,
+ REQUEST_MOVE2_BATTLE,
+ REQUEST_MOVE3_BATTLE,
+ REQUEST_MOVE4_BATTLE,
+ REQUEST_PP_DATA_BATTLE,
+ REQUEST_PPMOVE1_BATTLE,
+ REQUEST_PPMOVE2_BATTLE,
+ REQUEST_PPMOVE3_BATTLE,
+ REQUEST_PPMOVE4_BATTLE,
+ REQUEST_UNUSED_13_BATTLE,
+ REQUEST_UNUSED_14_BATTLE,
+ REQUEST_UNUSED_15_BATTLE,
+ REQUEST_UNUSED_16_BATTLE,
+ REQUEST_OTID_BATTLE,
+ REQUEST_EXP_BATTLE,
+ REQUEST_HP_EV_BATTLE,
+ REQUEST_ATK_EV_BATTLE,
+ REQUEST_DEF_EV_BATTLE,
+ REQUEST_SPEED_EV_BATTLE,
+ REQUEST_SPATK_EV_BATTLE,
+ REQUEST_SPDEF_EV_BATTLE,
+ REQUEST_FRIENDSHIP_BATTLE,
+ REQUEST_POKERUS_BATTLE,
+ REQUEST_MET_LOCATION_BATTLE,
+ REQUEST_MET_LEVEL_BATTLE,
+ REQUEST_MET_GAME_BATTLE,
+ REQUEST_POKEBALL_BATTLE,
+ REQUEST_ALL_IVS_BATTLE,
+ REQUEST_HP_IV_BATTLE,
+ REQUEST_ATK_IV_BATTLE,
+ REQUEST_DEF_IV_BATTLE,
+ REQUEST_SPEED_IV_BATTLE,
+ REQUEST_SPATK_IV_BATTLE,
+ REQUEST_SPDEF_IV_BATTLE,
+ REQUEST_PERSONALITY_BATTLE,
+ REQUEST_CHECKSUM_BATTLE,
+ REQUEST_STATUS_BATTLE,
+ REQUEST_LEVEL_BATTLE,
+ REQUEST_HP_BATTLE,
+ REQUEST_MAX_HP_BATTLE,
+ REQUEST_ATK_BATTLE,
+ REQUEST_DEF_BATTLE,
+ REQUEST_SPEED_BATTLE,
+ REQUEST_SPATK_BATTLE,
+ REQUEST_SPDEF_BATTLE,
+ REQUEST_COOL_BATTLE,
+ REQUEST_BEAUTY_BATTLE,
+ REQUEST_CUTE_BATTLE,
+ REQUEST_SMART_BATTLE,
+ REQUEST_TOUGH_BATTLE,
+ REQUEST_SHEEN_BATTLE,
+ REQUEST_COOL_RIBBON_BATTLE,
+ REQUEST_BEAUTY_RIBBON_BATTLE,
+ REQUEST_CUTE_RIBBON_BATTLE,
+ REQUEST_SMART_RIBBON_BATTLE,
+ REQUEST_TOUGH_RIBBON_BATTLE,
+};
+
+#define RESET_ACTION_MOVE_SELECTION 0
+#define RESET_ACTION_SELECTION 1
+#define RESET_MOVE_SELECTION 2
+
+#define BALL_NO_SHAKES 0
+#define BALL_1_SHAKE 1
+#define BALL_2_SHAKES 2
+#define BALL_3_SHAKES_FAIL 3
+#define BALL_3_SHAKES_SUCCESS 4
+#define BALL_TRAINER_BLOCK 5
+
+#define RET_VALUE_LEVELLED_UP 11
+
+#define INSTANT_HP_BAR_DROP 32767
+
+struct UnusedControllerStruct
+{
+ u8 field_0 : 7;
+ u8 flag_x80 : 1;
+};
+
+struct HpAndStatus
+{
+ u16 hp;
+ u32 status;
+};
+
+struct MovePpInfo
+{
+ u16 moves[4];
+ u8 pp[4];
+ u8 ppBonuses;
+};
+
+struct ChooseMoveStruct
+{
+ u16 moves[4];
+ u8 currentPp[4];
+ u8 maxPp[4];
+ u16 species;
+ u8 monType1;
+ u8 monType2;
+};
+
+enum
+{
+ CONTROLLER_GETMONDATA,
+ CONTROLLER_GETRAWMONDATA,
+ CONTROLLER_SETMONDATA,
+ CONTROLLER_SETRAWMONDATA,
+ CONTROLLER_LOADMONSPRITE,
+ CONTROLLER_SWITCHINANIM,
+ CONTROLLER_RETURNMONTOBALL,
+ CONTROLLER_DRAWTRAINERPIC,
+ CONTROLLER_TRAINERSLIDE,
+ CONTROLLER_TRAINERSLIDEBACK,
+ CONTROLLER_FAINTANIMATION,
+ CONTROLLER_PALETTEFADE,
+ CONTROLLER_SUCCESSBALLTHROWANIM,
+ CONTROLLER_BALLTHROWANIM,
+ CONTROLLER_PAUSE,
+ CONTROLLER_MOVEANIMATION,
+ CONTROLLER_PRINTSTRING,
+ CONTROLLER_PRINTSTRINGPLAYERONLY,
+ CONTROLLER_CHOOSEACTION,
+ CONTROLLER_UNKNOWNYESNOBOX,
+ CONTROLLER_CHOOSEMOVE,
+ CONTROLLER_OPENBAG,
+ CONTROLLER_CHOOSEPOKEMON,
+ CONTROLLER_23,
+ CONTROLLER_HEALTHBARUPDATE,
+ CONTROLLER_EXPUPDATE,
+ CONTROLLER_STATUSICONUPDATE,
+ CONTROLLER_STATUSANIMATION,
+ CONTROLLER_STATUSXOR,
+ CONTROLLER_DATATRANSFER,
+ CONTROLLER_DMA3TRANSFER,
+ CONTROLLER_31,
+ CONTROLLER_32,
+ CONTROLLER_TWORETURNVALUES,
+ CONTROLLER_CHOSENMONRETURNVALUE,
+ CONTROLLER_ONERETURNVALUE,
+ CONTROLLER_ONERETURNVALUE_DUPLICATE,
+ CONTROLLER_37,
+ CONTROLLER_38,
+ CONTROLLER_39,
+ CONTROLLER_40,
+ CONTROLLER_HITANIMATION,
+ CONTROLLER_42,
+ CONTROLLER_EFFECTIVENESSSOUND,
+ CONTROLLER_PLAYFANFAREORBGM,
+ CONTROLLER_FAINTINGCRY,
+ CONTROLLER_INTROSLIDE,
+ CONTROLLER_INTROTRAINERBALLTHROW,
+ CONTROLLER_DRAWPARTYSTATUSSUMMARY,
+ CONTROLLER_49,
+ CONTROLLER_50,
+ CONTROLLER_SPRITEINVISIBILITY,
+ CONTROLLER_BATTLEANIMATION,
+ CONTROLLER_LINKSTANDBYMSG,
+ CONTROLLER_RESETACTIONMOVESELECTION,
+ CONTROLLER_55,
+ /*new controllers should go here*/
+ CONTROLLER_TERMINATOR_NOP,
+ CONTROLLER_CMDS_COUNT
+};
+
+
+// general functions
+void HandleLinkBattleSetup(void);
+void SetUpBattleVarsAndBirchZigzagoon(void);
+void sub_8032768(void);
+void sub_8033648(void);
+void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
+
+// emitters
+void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
+void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
+void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
+void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
+void EmitLoadMonSprite(u8 bufferId);
+void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
+void EmitReturnMonToBall(u8 bufferId, u8 arg1);
+void EmitDrawTrainerPic(u8 bufferId);
+void EmitTrainerSlide(u8 bufferId);
+void EmitTrainerSlideBack(u8 bufferId);
+void EmitFaintAnimation(u8 bufferId);
+void EmitPaletteFade(u8 bufferId); // unused
+void EmitSuccessBallThrowAnim(u8 bufferId); // unused
+void EmitBallThrowAnim(u8 bufferId, u8 caseId);
+void EmitPause(u8 bufferId, u8 toWait, void *data); // unused
+void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
+void EmitPrintString(u8 bufferId, u16 stringId);
+void EmitPrintSelectionString(u8 bufferId, u16 stringId);
+void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
+void EmitUnknownYesNoBox(u8 bufferId);
+void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
+void EmitChooseItem(u8 bufferId, u8* arg1);
+void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
+void EmitCmd23(u8 bufferId); // unused
+void EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
+void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
+void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
+void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
+void EmitStatusXor(u8 bufferId, u8 b); // unused
+void EmitDataTransfer(u8 bufferId, u16 size, void *data);
+void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
+void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused
+void EmitCmd32(u8 bufferId, u16 size, void *c); // unused
+void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
+void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
+void EmitOneReturnValue(u8 bufferId, u16 arg1);
+void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
+void EmitCmd37(u8 bufferId); // unused
+void EmitCmd38(u8 bufferId, u8 b); // unused
+void EmitCmd39(u8 bufferId); // unused
+void EmitCmd40(u8 bufferId); // unused
+void EmitHitAnimation(u8 bufferId);
+void EmitCmd42(u8 bufferId);
+void EmitPlaySE(u8 bufferId, u16 songId);
+void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
+void EmitFaintingCry(u8 bufferId);
+void EmitIntroSlide(u8 bufferId, u8 terrainId);
+void EmitIntroTrainerBallThrow(u8 bufferId);
+void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
+void EmitCmd49(u8 bufferId);
+void EmitCmd50(u8 bufferId);
+void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
+void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
+void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
+void EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
+void EmitCmd55(u8 bufferId, u8 arg1);
+
+// player controller
+void SetControllerToPlayer(void);
+void nullsub_21(void);
+void PlayerHandleGetRawMonData(void);
+void sub_80587B0(void);
+void sub_805CC00(struct Sprite *sprite);
+void SetCB2ToReshowScreenAfterMenu(void);
+void SetCB2ToReshowScreenAfterMenu2(void);
+void c3_0802FDF4(u8 taskId);
+void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
+void ActionSelectionDestroyCursorAt(u8 cursorPos);
+void InitMoveSelectionsVarsAndStrings(void);
+
+// recorded player controller
+void SetControllerToRecordedPlayer(void);
+
+// opponent controller
+void SetControllerToOpponent(void);
+
+// player partner controller
+void SetControllerToPlayerPartner(void);
+
+// safari controller
+void SetControllerToSafari(void);
+
+// wally controller
+void SetControllerToWally(void);
+
+// recorded opponent controller
+void SetControllerToRecordedOpponent(void);
+
+// link opponent
+void SetControllerToLinkOpponent(void);
+
+// link partner
+void SetControllerToLinkPartner(void);
+
+#endif // GUARD_BATTLE_CONTROLLERS_H
diff --git a/include/battle_dome_cards.h b/include/battle_dome_cards.h
new file mode 100644
index 000000000..a0696d156
--- /dev/null
+++ b/include/battle_dome_cards.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_BATTLE_DOME_CARDS_H
+#define GUARD_BATTLE_DOME_CARDS_H
+
+bool16 dp13_810BB8C(void);
+u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
+u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
+u16 sub_818D820(u16 spriteId);
+u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
+u16 sub_818D8F0(u16 spriteId);
+u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
+u8 sub_818D97C(u8 a0, u8 a1);
+
+#endif //GUARD_BATTLE_DOME_CARDS_H
diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h
new file mode 100644
index 000000000..313a29811
--- /dev/null
+++ b/include/battle_gfx_sfx_util.h
@@ -0,0 +1,50 @@
+#ifndef GUARD_BATTLE_GFX_SFX_UTIL
+#define GUARD_BATTLE_GFX_SFX_UTIL
+
+void AllocateBattleSpritesData(void);
+void FreeBattleSpritesData(void);
+u16 ChooseMoveAndTargetInBattlePalace(void);
+void sub_805D714(struct Sprite *sprite);
+void sub_805D770(struct Sprite *sprite, bool8 arg1);
+void sub_805D7AC(struct Sprite *sprite);
+void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status);
+bool8 TryHandleLaunchBattleTableAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId, u16 argument);
+void InitAndLaunchSpecialAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId);
+bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn);
+bool8 mplay_80342A4(u8 bank);
+void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank);
+void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank);
+void nullsub_23(void);
+void nullsub_24(u16 species);
+void DecompressTrainerFrontPic(u16 frontPicId, u8 bank);
+void DecompressTrainerBackPic(u16 backPicId, u8 bank);
+void nullsub_25(u8 arg0);
+void FreeTrainerFrontPicPalette(u16 frontPicId);
+void sub_805DFFC(void);
+bool8 BattleLoadAllHealthBoxesGfx(u8 state);
+void LoadBattleBarGfx(u8 arg0);
+bool8 BattleInitAllSprites(u8 *state1, u8 *bank);
+void ClearSpritesHealthboxAnimData(void);
+void CopyAllBattleSpritesInvisibilities(void);
+void CopyBattleSpriteInvisibility(u8 bank);
+void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform);
+void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite);
+void LoadBattleMonGfxAndAnimate(u8 bank, bool8 loadMonSprite, u8 spriteId);
+void TrySetBehindSubstituteSpriteBit(u8 bank, u16 move);
+void ClearBehindSubstituteBit(u8 bank);
+void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank);
+void BattleStopLowHpSound(void);
+u8 GetMonHPBarLevel(struct Pokemon *mon);
+void sub_805EAE8(void);
+void sub_805EB9C(u8 affineMode);
+void LoadAndCreateEnemyShadowSprites(void);
+void SpriteCB_SetInvisible(struct Sprite *sprite);
+void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species);
+void EnemyShadowCallbackToSetInvisible(u8 bank);
+void sub_805EF14(void);
+void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute);
+void AllocateMonSpritesGfx(void);
+void FreeMonSpritesGfx(void);
+bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon);
+
+#endif // GUARD_BATTLE_GFX_SFX_UTIL
diff --git a/include/battle_interface.h b/include/battle_interface.h
new file mode 100644
index 000000000..b2d3b1b97
--- /dev/null
+++ b/include/battle_interface.h
@@ -0,0 +1,75 @@
+#ifndef GUARD_BATTLE_INTERFACE_H
+#define GUARD_BATTLE_INTERFACE_H
+
+#include "battle_controllers.h"
+
+enum
+{
+ HP_CURRENT,
+ HP_MAX
+};
+
+enum
+{
+ HEALTH_BAR,
+ EXP_BAR
+};
+
+enum
+{
+ HP_BAR_EMPTY,
+ HP_BAR_RED,
+ HP_BAR_YELLOW,
+ HP_BAR_GREEN,
+ HP_BAR_FULL,
+};
+
+#define TAG_HEALTHBOX_PLAYER1_TILE 0xD6FF
+#define TAG_HEALTHBOX_PLAYER2_TILE 0xD700
+#define TAG_HEALTHBOX_OPPONENT1_TILE 0xD701
+#define TAG_HEALTHBOX_OPPONENT2_TILE 0xD702
+
+#define TAG_HEALTHBOX_SAFARI_TILE 0xD70B
+
+#define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C
+#define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714
+
+#define TAG_HEALTHBOX_PAL 0xD6FF
+#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710
+#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712
+
+enum
+{
+ HEALTHBOX_ALL,
+ HEALTHBOX_CURRENT_HP,
+ HEALTHBOX_MAX_HP,
+ HEALTHBOX_LEVEL,
+ HEALTHBOX_NICK,
+ HEALTHBOX_HEALTH_BAR,
+ HEALTHBOX_EXP_BAR,
+ HEALTHBOX_UNUSED_7,
+ HEALTHBOX_UNUSED_8,
+ HEALTHBOX_STATUS_ICON,
+ HEALTHBOX_SAFARI_ALL_TEXT,
+ HEALTHBOX_SAFARI_BALLS_TEXT
+};
+
+u8 CreateBankHealthboxSprites(u8 bank);
+u8 CreateSafariPlayerHealthboxSprites(void);
+void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue);
+void SetHealthboxSpriteInvisible(u8 healthboxSpriteId);
+void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
+void DestoryHealthboxSprite(u8 healthboxSpriteId);
+void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
+void UpdateOamPriorityInAllHealthboxes(u8 priority);
+void SetBankHealthboxSpritePos(u8 bank);
+void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
+void SwapHpBarsWithHpText(void);
+u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart);
+void sub_8073C30(u8 taskId);
+void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId);
+s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3);
+u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale);
+u8 GetHPBarLevel(s16 hp, s16 maxhp);
+
+#endif // GUARD_BATTLE_INTERFACE_H
diff --git a/include/battle_message.h b/include/battle_message.h
new file mode 100644
index 000000000..30ddca469
--- /dev/null
+++ b/include/battle_message.h
@@ -0,0 +1,235 @@
+#ifndef GUARD_BATTLE_MESSAGE_H
+#define GUARD_BATTLE_MESSAGE_H
+
+// for 0xFD
+
+#define B_TXT_BUFF1 0x0
+#define B_TXT_BUFF2 0x1
+#define B_TXT_COPY_VAR_1 0x2
+#define B_TXT_COPY_VAR_2 0x3
+#define B_TXT_COPY_VAR_3 0x4
+#define B_TXT_PLAYER_MON1_NAME 0x5
+#define B_TXT_OPPONENT_MON1_NAME 0x6
+#define B_TXT_PLAYER_MON2_NAME 0x7
+#define B_TXT_OPPONENT_MON2_NAME 0x8
+#define B_TXT_LINK_PLAYER_MON1_NAME 0x9
+#define B_TXT_LINK_OPPONENT_MON1_NAME 0xA
+#define B_TXT_LINK_PLAYER_MON2_NAME 0xB
+#define B_TXT_LINK_OPPONENT_MON2_NAME 0xC
+#define B_TXT_ATK_NAME_WITH_PREFIX_MON1 0xD
+#define B_TXT_ATK_PARTNER_NAME 0xE
+#define B_TXT_ATK_NAME_WITH_PREFIX 0xF
+#define B_TXT_DEF_NAME_WITH_PREFIX 0x10
+#define B_TXT_EFF_NAME_WITH_PREFIX 0x11 // EFF = short for gEffectBank
+#define B_TXT_ACTIVE_NAME_WITH_PREFIX 0x12
+#define B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX 0x13
+#define B_TXT_CURRENT_MOVE 0x14
+#define B_TXT_LAST_MOVE 0x15
+#define B_TXT_LAST_ITEM 0x16
+#define B_TXT_LAST_ABILITY 0x17
+#define B_TXT_ATK_ABILITY 0x18
+#define B_TXT_DEF_ABILITY 0x19
+#define B_TXT_SCR_ACTIVE_ABILITY 0x1A
+#define B_TXT_EFF_ABILITY 0x1B
+#define B_TXT_TRAINER1_CLASS 0x1C
+#define B_TXT_TRAINER1_NAME 0x1D
+#define B_TXT_1E 0x1E // trainer name for a link player
+#define B_TXT_1F 0x1F // trainer name for a link player
+#define B_TXT_20 0x20 // trainer name for a link player
+#define B_TXT_21 0x21 // trainer name for a link player
+#define B_TXT_22 0x22 // trainer name for a link player
+#define B_TXT_PLAYER_NAME 0x23
+#define B_TXT_TRAINER1_LOSE_TEXT 0x24
+#define B_TXT_TRAINER1_WIN_TEXT 0x25
+#define B_TXT_26 0x26
+#define B_TXT_PC_CREATOR_NAME 0x27
+#define B_TXT_ATK_PREFIX1 0x28
+#define B_TXT_DEF_PREFIX1 0x29
+#define B_TXT_ATK_PREFIX2 0x2A
+#define B_TXT_DEF_PREFIX2 0x2B
+#define B_TXT_ATK_PREFIX3 0x2C
+#define B_TXT_DEF_PREFIX3 0x2D
+#define B_TXT_TRAINER2_CLASS 0x2E
+#define B_TXT_TRAINER2_NAME 0x2F
+#define B_TXT_TRAINER2_LOSE_TEXT 0x30
+#define B_TXT_TRAINER2_WIN_TEXT 0x31
+#define B_TXT_PARTNER_CLASS 0x32
+#define B_TXT_PARTNER_NAME 0x33
+#define B_TXT_BUFF3 0x34
+
+// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3
+
+#define B_BUFF_STRING 0
+#define B_BUFF_NUMBER 1
+#define B_BUFF_MOVE 2
+#define B_BUFF_TYPE 3
+#define B_BUFF_MON_NICK_WITH_PREFIX 4
+#define B_BUFF_STAT 5
+#define B_BUFF_SPECIES 6
+#define B_BUFF_MON_NICK 7
+#define B_BUFF_NEGATIVE_FLAVOR 8
+#define B_BUFF_ABILITY 9
+#define B_BUFF_ITEM 10
+
+#define B_BUFF_PLACEHOLDER_BEGIN 0xFD
+#define B_BUFF_EOS 0xFF
+
+#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \
+ textVar[2] = flavorId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_STAT_BUFFER(textVar, statId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_STAT; \
+ textVar[2] = statId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_ABILITY; \
+ textVar[2] = abilityId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_TYPE_BUFFER(textVar, typeId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_TYPE; \
+ textVar[2] = typeId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NUMBER; \
+ textVar[2] = 1; \
+ textVar[3] = maxDigits; \
+ textVar[4] = (number); \
+ textVar[5] = B_BUFF_EOS; \
+}
+
+#define PREPARE_HWORD_NUMBER_BUFFER(textVar, maxDigits, number) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NUMBER; \
+ textVar[2] = 2; \
+ textVar[3] = maxDigits; \
+ textVar[4] = (number); \
+ textVar[5] = (number & 0x0000FF00) >> 8; \
+ textVar[6] = B_BUFF_EOS; \
+}
+
+#define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NUMBER; \
+ textVar[2] = 4; \
+ textVar[3] = maxDigits; \
+ textVar[4] = (number); \
+ textVar[5] = (number & 0x0000FF00) >> 8; \
+ textVar[6] = (number & 0x00FF0000) >> 16; \
+ textVar[7] = (number & 0xFF000000) >> 24; \
+ textVar[8] = B_BUFF_EOS; \
+}
+
+#define PREPARE_STRING_BUFFER(textVar, stringId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_STRING; \
+ textVar[2] = stringId; \
+ textVar[3] = (stringId & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_MOVE_BUFFER(textVar, move) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_MOVE; \
+ textVar[2] = move; \
+ textVar[3] = (move & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_ITEM_BUFFER(textVar, item) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_ITEM; \
+ textVar[2] = item; \
+ textVar[3] = (item & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_SPECIES_BUFFER(textVar, species) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_SPECIES; \
+ textVar[2] = species; \
+ textVar[3] = (species & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \
+ textVar[2] = bank; \
+ textVar[3] = partyId; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_MON_NICK; \
+ textVar[2] = bank; \
+ textVar[3] = partyId; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+struct StringInfoBattle
+{
+ u16 currentMove;
+ u16 originallyUsedMove;
+ u16 lastItem;
+ u8 lastAbility;
+ u8 scrActive;
+ u8 unk1605E;
+ u8 hpScale;
+ u8 StringBank;
+ u8 moveType;
+ u8 abilities[4];
+ u8 textBuffs[3][0x10];
+};
+
+void BufferStringBattle(u16 stringID);
+u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src);
+u32 BattleStringExpandPlaceholders(const u8* src, u8* dst);
+void BattleHandleAddTextPrinter(const u8* text, u8 arg1);
+void SetPpNumbersPaletteInMoveSelection(void);
+u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp);
+
+#define TEXT_BUFF_ARRAY_COUNT 16
+
+extern u8 gDisplayedStringBattle[300];
+extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT];
+extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT];
+extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT];
+
+extern const u8* const gBattleStringsTable[];
+extern const u8* const gStatNamesTable[];
+extern const u8* const gPokeblockWasTooXStringTable[];
+extern const u8* const gRefereeStringsTable[];
+extern const u8* const gStatNamesTable2[];
+
+extern const u16 gMissStringIds[];
+extern const u16 gTrappingMoves[];
+
+#endif // GUARD_BATTLE_MESSAGE_H
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
new file mode 100644
index 000000000..80fabaa64
--- /dev/null
+++ b/include/battle_script_commands.h
@@ -0,0 +1,66 @@
+#ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H
+#define GUARD_BATTLE_SCRIPT_COMMANDS_H
+
+#define NO_ACC_CALC 0xFFFE
+#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
+#define ACC_CURR_MOVE 0
+
+#define CMP_EQUAL 0x0
+#define CMP_NOT_EQUAL 0x1
+#define CMP_GREATER_THAN 0x2
+#define CMP_LESS_THAN 0x3
+#define CMP_COMMON_BITS 0x4
+#define CMP_NO_COMMON_BITS 0x5
+
+#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
+#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
+#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
+
+#define ATK48_STAT_NEGATIVE 0x1
+#define ATK48_STAT_BY_TWO 0x2
+#define ATK48_BIT_x4 0x4
+#define ATK48_LOWER_FAIL_CHECK 0x8
+
+#define ATK4F_DONT_CHECK_STATUSES 0x80
+
+#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
+#define VARIOUS_SET_MAGIC_COAT_TARGET 1
+#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
+#define VARIOUS_GET_MOVE_TARGET 3
+#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
+#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
+#define VARIOUS_EMIT_YESNOBOX 13
+#define VARIOUS_WAIT_CRY 18
+#define VARIOUS_RETURN_OPPONENT_MON1 19
+#define VARIOUS_RETURN_OPPONENT_MON2 20
+#define VARIOUS_SET_TELEPORT_OUTCOME 25
+#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
+
+#define ATK80_DMG_CHANGE_SIGN 0
+#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1
+#define ATK80_DMG_DOUBLED 2
+
+#define STAT_CHANGE_BS_PTR 0x1
+#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20
+
+#define STAT_CHANGE_WORKED 0
+#define STAT_CHANGE_DIDNT_WORK 1
+
+#define WINDOW_CLEAR 0x1
+#define WINDOW_x80 0x80
+
+void AI_CalcDmg(u8 bankAtk, u8 bankDef);
+u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
+u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
+u8 BankGetTurnOrder(u8 bank);
+void SetMoveEffect(bool8 primary, u8 certain);
+void BattleDestroyYesNoCursorAt(u8 cursorPosition);
+void BattleCreateYesNoCursorAt(u8 cursorPosition);
+void BufferMoveToLearnIntoBattleTextBuff2(void);
+void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
+bool8 UproarWakeUpCheck(u8 bank);
+
+extern void (* const gBattleScriptingCommandsTable[])(void);
+extern const u8 gUnknown_0831C494[][4];
+
+#endif // GUARD_BATTLE_SCRIPT_COMMANDS_H
diff --git a/include/battle_scripts.h b/include/battle_scripts.h
new file mode 100644
index 000000000..2e31a37c5
--- /dev/null
+++ b/include/battle_scripts.h
@@ -0,0 +1,290 @@
+#ifndef GUARD_BATTLE_SCRIPTS_H
+#define GUARD_BATTLE_SCRIPTS_H
+
+extern const u8 BattleScript_HitFromCritCalc[];
+extern const u8 BattleScript_MoveEnd[];
+extern const u8 BattleScript_MakeMoveMissed[];
+extern const u8 BattleScript_PrintMoveMissed[];
+extern const u8 BattleScript_MoveMissedPause[];
+extern const u8 BattleScript_MoveMissed[];
+extern const u8 BattleScript_ButItFailed[];
+extern const u8 BattleScript_StatUp[];
+extern const u8 BattleScript_StatDown[];
+extern const u8 BattleScript_AlreadyAtFullHp[];
+extern const u8 BattleScript_PresentHealTarget[];
+extern const u8 BattleScript_MoveUsedMustRecharge[];
+extern const u8 BattleScript_FaintAttacker[];
+extern const u8 BattleScript_FaintTarget[];
+extern const u8 BattleScript_GiveExp[];
+extern const u8 BattleScript_HandleFaintedMon[];
+extern const u8 BattleScript_LocalTrainerBattleWon[];
+extern const u8 BattleScript_LocalTwoTrainersDefeated[];
+extern const u8 BattleScript_LocalBattleWonLoseTexts[];
+extern const u8 BattleScript_LocalBattleWonReward[];
+extern const u8 BattleScript_PayDayMoneyAndPickUpItems[];
+extern const u8 BattleScript_LocalBattleLost[];
+extern const u8 BattleScript_LocalBattleLostPrintWhiteOut[];
+extern const u8 BattleScript_LocalBattleLostEnd[];
+extern const u8 BattleScript_CheckDomeDrew[];
+extern const u8 BattleScript_82DAA0B[];
+extern const u8 BattleScript_82DAA31[];
+extern const u8 BattleScript_LinkBattleWonOrLost[];
+extern const u8 BattleScript_82DAA5C[];
+extern const u8 BattleScript_82DAA83[];
+extern const u8 BattleScript_FrontierTrainerBattleWon[];
+extern const u8 BattleScript_82DAAAB[];
+extern const u8 BattleScript_82DAAAE[];
+extern const u8 BattleScript_82DAACB[];
+extern const u8 BattleScript_82DAADA[];
+extern const u8 BattleScript_SmokeBallEscape[];
+extern const u8 BattleScript_RanAwayUsingMonAbility[];
+extern const u8 BattleScript_GotAwaySafely[];
+extern const u8 BattleScript_WildMonFled[];
+extern const u8 BattleScript_PrintCantRunFromTrainer[];
+extern const u8 BattleScript_PrintFailedToRunString[];
+extern const u8 BattleScript_PrintCantEscapeFromBattle[];
+extern const u8 BattleScript_PrintFullBox[];
+extern const u8 BattleScript_ActionSwitch[];
+extern const u8 BattleScript_82DAB35[];
+extern const u8 BattleScript_82DAB37[];
+extern const u8 BattleScript_82DAB44[];
+extern const u8 BattleScript_82DAB77[];
+extern const u8 BattleScript_82DABB8[];
+extern const u8 BattleScript_Pausex20[];
+extern const u8 BattleScript_LevelUp[];
+extern const u8 BattleScript_RainContinuesOrEnds[];
+extern const u8 BattleScript_DamagingWeatherContinues[];
+extern const u8 BattleScript_SandStormHailEnds[];
+extern const u8 BattleScript_SunlightContinues[];
+extern const u8 BattleScript_SunlightFaded[];
+extern const u8 BattleScript_OverworldWeatherStarts[];
+extern const u8 BattleScript_SideStatusWoreOff[];
+extern const u8 BattleScript_SafeguardProtected[];
+extern const u8 BattleScript_SafeguardEnds[];
+extern const u8 BattleScript_LeechSeedTurnDrain[];
+extern const u8 BattleScript_82DAD47[];
+extern const u8 BattleScript_82DAD4D[];
+extern const u8 BattleScript_BideStoringEnergy[];
+extern const u8 BattleScript_BideAttack[];
+extern const u8 BattleScript_BideNoEnergyToAttack[];
+extern const u8 BattleScript_SuccessForceOut[];
+extern const u8 BattleScript_82DADF1[];
+extern const u8 BattleScript_MistProtected[];
+extern const u8 BattleScript_RageIsBuilding[];
+extern const u8 BattleScript_MoveUsedIsDisabled[];
+extern const u8 BattleScript_SelectingDisabledMove[];
+extern const u8 BattleScript_DisabledNoMore[];
+extern const u8 BattleScript_SelectingDisabledMoveInPalace[];
+extern const u8 BattleScript_SelectingUnusableMoveInPalace[];
+extern const u8 BattleScript_EncoredNoMore[];
+extern const u8 BattleScript_DestinyBondTakesLife[];
+extern const u8 BattleScript_SpikesOnAttacker[];
+extern const u8 BattleScript_82DAE7A[];
+extern const u8 BattleScript_SpikesOnTarget[];
+extern const u8 BattleScript_82DAEB1[];
+extern const u8 BattleScript_SpikesOngBank1[];
+extern const u8 BattleScript_82DAEE8[];
+extern const u8 BattleScript_82DAEFE[];
+extern const u8 BattleScript_PerishSongTakesLife[];
+extern const u8 BattleScript_PerishSongCountGoesDown[];
+extern const u8 BattleScript_AllStatsUp[];
+extern const u8 BattleScript_82DAF54[];
+extern const u8 BattleScript_82DAF72[];
+extern const u8 BattleScript_82DAF86[];
+extern const u8 BattleScript_82DAF9A[];
+extern const u8 BattleScript_82DAFAE[];
+extern const u8 BattleScript_82DAFC2[];
+extern const u8 BattleScript_RapidSpinAway[];
+extern const u8 BattleScript_WrapFree[];
+extern const u8 BattleScript_LeechSeedFree[];
+extern const u8 BattleScript_SpikesFree[];
+extern const u8 BattleScript_MonTookFutureAttack[];
+extern const u8 BattleScript_82DB001[];
+extern const u8 BattleScript_82DB008[];
+extern const u8 BattleScript_82DB020[];
+extern const u8 BattleScript_82DB027[];
+extern const u8 BattleScript_82DB03F[];
+extern const u8 BattleScript_82DB058[];
+extern const u8 BattleScript_NoMovesLeft[];
+extern const u8 BattleScript_SelectingMoveWithNoPP[];
+extern const u8 BattleScript_NoPPForMove[];
+extern const u8 BattleScript_SelectingTormentedMove[];
+extern const u8 BattleScript_MoveUsedIsTormented[];
+extern const u8 BattleScript_SelectingTormentedMoveInPalace[];
+extern const u8 BattleScript_SelectingNotAllowedMoveTaunt[];
+extern const u8 BattleScript_MoveUsedIsTaunted[];
+extern const u8 BattleScript_SelectingNotAllowedMoveTauntInPalace[];
+extern const u8 BattleScript_WishComesTrue[];
+extern const u8 BattleScript_IngrainTurnHeal[];
+extern const u8 BattleScript_AtkDefDown[];
+extern const u8 BattleScript_82DB144[];
+extern const u8 BattleScript_82DB167[];
+extern const u8 BattleScript_KnockedOff[];
+extern const u8 BattleScript_MoveUsedIsImprisoned[];
+extern const u8 BattleScript_SelectingImprisionedMove[];
+extern const u8 BattleScript_SelectingImprisionedMoveInPalace[];
+extern const u8 BattleScript_GrudgeTakesPp[];
+extern const u8 BattleScript_MagicCoatBounce[];
+extern const u8 BattleScript_SnatchedMove[];
+extern const u8 BattleScript_EnduredMsg[];
+extern const u8 BattleScript_OneHitKOMsg[];
+extern const u8 BattleScript_SAtkDown2[];
+extern const u8 BattleScript_82DB1FE[];
+extern const u8 BattleScript_FocusPunchSetUp[];
+extern const u8 BattleScript_MoveUsedIsAsleep[];
+extern const u8 BattleScript_MoveUsedWokeUp[];
+extern const u8 BattleScript_MonWokeUpInUproar[];
+extern const u8 BattleScript_PoisonTurnDmg[];
+extern const u8 BattleScript_82DB243[];
+extern const u8 BattleScript_82DB245[];
+extern const u8 BattleScript_82DB25E[];
+extern const u8 BattleScript_BurnTurnDmg[];
+extern const u8 BattleScript_MoveUsedIsFrozen[];
+extern const u8 BattleScript_MoveUsedUnfroze[];
+extern const u8 BattleScript_DefrostedViaFireMove[];
+extern const u8 BattleScript_MoveUsedIsParalyzed[];
+extern const u8 BattleScript_MoveUsedFlinched[];
+extern const u8 BattleScript_PrintUproarOverTurns[];
+extern const u8 BattleScript_ThrashConfuses[];
+extern const u8 BattleScript_MoveUsedIsConfused[];
+extern const u8 BattleScript_82DB2D4[];
+extern const u8 BattleScript_82DB2FF[];
+extern const u8 BattleScript_MoveUsedIsConfusedNoMore[];
+extern const u8 BattleScript_PrintPayDayMoneyString[];
+extern const u8 BattleScript_WrapTurnDmg[];
+extern const u8 BattleScript_WrapEnds[];
+extern const u8 BattleScript_MoveUsedIsInLove[];
+extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[];
+extern const u8 BattleScript_NightmareTurnDmg[];
+extern const u8 BattleScript_CurseTurnDmg[];
+extern const u8 BattleScript_TargetPRLZHeal[];
+extern const u8 BattleScript_MoveEffectSleep[];
+extern const u8 BattleScript_82DB374[];
+extern const u8 BattleScript_YawnMakesAsleep[];
+extern const u8 BattleScript_MoveEffectPoison[];
+extern const u8 BattleScript_MoveEffectBurn[];
+extern const u8 BattleScript_MoveEffectFreeze[];
+extern const u8 BattleScript_MoveEffectParalysis[];
+extern const u8 BattleScript_MoveEffectUproar[];
+extern const u8 BattleScript_MoveEffectToxic[];
+extern const u8 BattleScript_MoveEffectPayDay[];
+extern const u8 BattleScript_MoveEffectWrap[];
+extern const u8 BattleScript_MoveEffectConfusion[];
+extern const u8 BattleScript_MoveEffectRecoil33[];
+extern const u8 BattleScript_DoRecoil33[];
+extern const u8 BattleScript_Recoil33End[];
+extern const u8 BattleScript_ItemSteal[];
+extern const u8 BattleScript_DrizzleActivates[];
+extern const u8 BattleScript_SpeedBoostActivates[];
+extern const u8 BattleScript_TraceActivates[];
+extern const u8 BattleScript_RainDishActivates[];
+extern const u8 BattleScript_SandstreamActivates[];
+extern const u8 BattleScript_ShedSkinActivates[];
+extern const u8 BattleScript_WeatherFormChanges[];
+extern const u8 BattleScript_WeatherFormChangesLoop[];
+extern const u8 BattleScript_CastformChange[];
+extern const u8 BattleScript_82DB4AF[];
+extern const u8 BattleScript_82DB4B8[];
+extern const u8 BattleScript_82DB4BE[];
+extern const u8 BattleScript_82DB4C1[];
+extern const u8 BattleScript_82DB4CD[];
+extern const u8 BattleScript_82DB510[];
+extern const u8 BattleScript_82DB51B[];
+extern const u8 BattleScript_82DB51C[];
+extern const u8 BattleScript_DroughtActivates[];
+extern const u8 BattleScript_TookAttack[];
+extern const u8 BattleScript_SturdyPreventsOHKO[];
+extern const u8 BattleScript_DampStopsExplosion[];
+extern const u8 BattleScript_MoveHPDrain_PPLoss[];
+extern const u8 BattleScript_MoveHPDrain[];
+extern const u8 BattleScript_MonMadeMoveUseless_PPLoss[];
+extern const u8 BattleScript_MonMadeMoveUseless[];
+extern const u8 BattleScript_FlashFireBoost_PPLoss[];
+extern const u8 BattleScript_FlashFireBoost[];
+extern const u8 BattleScript_AbilityNoStatLoss[];
+extern const u8 BattleScript_BRNPrevention[];
+extern const u8 BattleScript_PRLZPrevention[];
+extern const u8 BattleScript_PSNPrevention[];
+extern const u8 BattleScript_ObliviousPreventsAttraction[];
+extern const u8 BattleScript_FlinchPrevention[];
+extern const u8 BattleScript_OwnTempoPrevents[];
+extern const u8 BattleScript_SoundproofProtected[];
+extern const u8 BattleScript_AbilityNoSpecificStatLoss[];
+extern const u8 BattleScript_StickyHoldActivates[];
+extern const u8 BattleScript_ColorChangeActivates[];
+extern const u8 BattleScript_RoughSkinActivates[];
+extern const u8 BattleScript_CuteCharmActivates[];
+extern const u8 BattleScript_ApplySecondaryEffect[];
+extern const u8 BattleScript_SynchronizeActivates[];
+extern const u8 BattleScript_NoItemSteal[];
+extern const u8 BattleScript_AbilityCuredStatus[];
+extern const u8 BattleScript_82DB695[];
+extern const u8 BattleScript_IgnoresAndUsesRandomMove[];
+extern const u8 BattleScript_MoveUsedLoafingAround[];
+extern const u8 BattleScript_82DB6C7[];
+extern const u8 BattleScript_IgnoresAndFallsAsleep[];
+extern const u8 BattleScript_82DB6F0[];
+extern const u8 BattleScript_SubstituteFade[];
+extern const u8 BattleScript_BerryCurePrlzEnd2[];
+extern const u8 BattleScript_BerryCureParRet[];
+extern const u8 BattleScript_BerryCurePsnEnd2[];
+extern const u8 BattleScript_BerryCurePsnRet[];
+extern const u8 BattleScript_BerryCureBrnEnd2[];
+extern const u8 BattleScript_BerryCureBrnRet[];
+extern const u8 BattleScript_BerryCureFrzEnd2[];
+extern const u8 BattleScript_BerryCureFrzRet[];
+extern const u8 BattleScript_BerryCureSlpEnd2[];
+extern const u8 BattleScript_BerryCureSlpRet[];
+extern const u8 BattleScript_BerryCureConfusionEnd2[];
+extern const u8 BattleScript_BerryCureConfusionRet[];
+extern const u8 BattleScript_BerryCureChosenStatusEnd2[];
+extern const u8 BattleScript_BerryCureChosenStatusRet[];
+extern const u8 BattleScript_WhiteHerbEnd2[];
+extern const u8 BattleScript_WhiteHerbRet[];
+extern const u8 BattleScript_ItemHealHP_RemoveItem[];
+extern const u8 BattleScript_BerryPPHealEnd2[];
+extern const u8 BattleScript_ItemHealHP_End2[];
+extern const u8 BattleScript_ItemHealHP_Ret[];
+extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[];
+extern const u8 BattleScript_HangedOnMsg[];
+extern const u8 BattleScript_BerryConfuseHealEnd2[];
+extern const u8 BattleScript_BerryStatRaiseEnd2[];
+extern const u8 BattleScript_82DB85B[];
+extern const u8 BattleScript_BerryFocusEnergyEnd2[];
+extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
+extern const u8 BattleScript_82DB87D[];
+extern const u8 BattleScript_82DB881[];
+extern const u8 BattleScript_82DB887[];
+extern const u8 BattleScript_82DB89D[];
+extern const u8 BattleScript_82DB8BE[];
+extern const u8 BattleScript_82DB8E0[];
+extern const u8 BattleScript_82DB8F3[];
+extern const u8 BattleScript_82DB973[];
+extern const u8 BattleScript_82DB992[];
+extern const u8 BattleScript_AskIfWantsToForfeitMatch[];
+extern const u8 BattleScript_PrintPlayerForfeited[];
+extern const u8 BattleScript_PrintPlayerForfeitedLinkBattle[];
+extern const u8 BattleScript_BallThrow[];
+extern const u8 BattleScript_BallThrowByWally[];
+extern const u8 BattleScript_SafariBallThrow[];
+extern const u8 BattleScript_SuccessBallThrow[];
+extern const u8 BattleScript_82DBD92[];
+extern const u8 BattleScript_82DBDA5[];
+extern const u8 BattleScript_82DBDC2[];
+extern const u8 BattleScript_82DBDC3[];
+extern const u8 BattleScript_WallyBallThrow[];
+extern const u8 BattleScript_ShakeBallThrow[];
+extern const u8 BattleScript_82DBE01[];
+extern const u8 BattleScript_TrainerBallBlock[];
+extern const u8 BattleScript_82DBE12[];
+extern const u8 BattleScript_82DBE1C[];
+extern const u8 BattleScript_82DBE4B[];
+extern const u8 BattleScript_82DBE6F[];
+extern const u8 BattleScript_82DBE91[];
+extern const u8 BattleScript_RunByUsingItem[];
+extern const u8 BattleScript_ActionWatchesCarefully[];
+extern const u8 BattleScript_ActionGetNear[];
+extern const u8 BattleScript_ActionThrowPokeblock[];
+extern const u8 BattleScript_82DBEE3[];
+
+#endif // GUARD_BATTLE_SCRIPTS_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
new file mode 100644
index 000000000..0168022cc
--- /dev/null
+++ b/include/battle_setup.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_BATTLE_SETUP_H
+#define GUARD_BATTLE_SETUP_H
+
+void BattleSetup_StartScriptedWildBattle(void);
+u8 BattleSetup_GetTerrainId(void);
+u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
+void BattleSetup_StartBattlePikeWildBattle(void);
+void BattleSetup_StartWildBattle(void);
+void BattleSetup_StartRoamerBattle(void);
+
+u8 HasTrainerAlreadyBeenFought(u16);
+void trainer_flag_set(u16);
+void trainer_flag_clear(u16);
+void BattleSetup_StartTrainerBattle(void);
+u8 *BattleSetup_GetScriptAddrAfterBattle(void);
+u8 *BattleSetup_GetTrainerPostBattleScript(void);
+
+#endif // GUARD_BATTLE_SETUP_H
diff --git a/include/battle_string_ids.h b/include/battle_string_ids.h
new file mode 100644
index 000000000..f242284b0
--- /dev/null
+++ b/include/battle_string_ids.h
@@ -0,0 +1,387 @@
+#ifndef GUARD_BATTLE_STRING_IDS_H
+#define GUARD_BATTLE_STRING_IDS_H
+
+#define BATTLESTRINGS_COUNT 369
+
+#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved
+
+#define STRINGID_INTROMSG 0
+#define STRINGID_INTROSENDOUT 1
+#define STRINGID_RETURNMON 2
+#define STRINGID_SWITCHINMON 3
+#define STRINGID_USEDMOVE 4
+#define STRINGID_BATTLEEND 5
+
+
+// todo: make some of those names less vague: attacker/target vs pkmn, etc.
+#define STRINGID_TRAINER1LOSETEXT 12
+#define STRINGID_PKMNGAINEDEXP 13
+#define STRINGID_PKMNGREWTOLV 14
+#define STRINGID_PKMNLEARNEDMOVE 15
+#define STRINGID_TRYTOLEARNMOVE1 16
+#define STRINGID_TRYTOLEARNMOVE2 17
+#define STRINGID_TRYTOLEARNMOVE3 18
+#define STRINGID_PKMNFORGOTMOVE 19
+#define STRINGID_STOPLEARNINGMOVE 20
+#define STRINGID_DIDNOTLEARNMOVE 21
+#define STRINGID_PKMNLEARNEDMOVE2 22
+#define STRINGID_ATTACKMISSED 23
+#define STRINGID_PKMNPROTECTEDITSELF 24
+#define STRINGID_STATSWONTINCREASE2 25
+#define STRINGID_AVOIDEDDAMAGE 26
+#define STRINGID_ITDOESNTAFFECT 27
+#define STRINGID_ATTACKERFAINTED 28
+#define STRINGID_TARGETFAINTED 29
+#define STRINGID_PLAYERGOTMONEY 30
+#define STRINGID_PLAYERWHITEOUT 31
+#define STRINGID_PLAYERWHITEOUT2 32
+#define STRINGID_PREVENTSESCAPE 33
+#define STRINGID_HITXTIMES 34
+#define STRINGID_PKMNFELLASLEEP 35
+#define STRINGID_PKMNMADESLEEP 36
+#define STRINGID_PKMNALREADYASLEEP 37
+#define STRINGID_PKMNALREADYASLEEP2 38
+#define STRINGID_PKMNWASNTAFFECTED 39
+#define STRINGID_PKMNWASPOISONED 40
+#define STRINGID_PKMNPOISONEDBY 41
+#define STRINGID_PKMNHURTBYPOISON 42
+#define STRINGID_PKMNALREADYPOISONED 43
+#define STRINGID_PKMNBADLYPOISONED 44
+#define STRINGID_PKMNENERGYDRAINED 45
+#define STRINGID_PKMNWASBURNED 46
+#define STRINGID_PKMNBURNEDBY 47
+#define STRINGID_PKMNHURTBYBURN 48
+#define STRINGID_PKMNWASFROZEN 49
+#define STRINGID_PKMNFROZENBY 50
+#define STRINGID_PKMNISFROZEN 51
+#define STRINGID_PKMNWASDEFROSTED 52
+#define STRINGID_PKMNWASDEFROSTED2 53
+#define STRINGID_PKMNWASDEFROSTEDBY 54
+#define STRINGID_PKMNWASPARALYZED 55
+#define STRINGID_PKMNWASPARALYZEDBY 56
+#define STRINGID_PKMNISPARALYZED 57
+#define STRINGID_PKMNISALREADYPARALYZED 58
+#define STRINGID_PKMNHEALEDPARALYSIS 59
+#define STRINGID_PKMNDREAMEATEN 60
+#define STRINGID_STATSWONTINCREASE 61
+#define STRINGID_STATSWONTDECREASE 62
+#define STRINGID_TEAMSTOPPEDWORKING 63
+#define STRINGID_FOESTOPPEDWORKING 64
+#define STRINGID_PKMNISCONFUSED 65
+#define STRINGID_PKMNHEALEDCONFUSION 66
+#define STRINGID_PKMNWASCONFUSED 67
+#define STRINGID_PKMNALREADYCONFUSED 68
+#define STRINGID_PKMNFELLINLOVE 69
+#define STRINGID_PKMNINLOVE 70
+#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71
+#define STRINGID_PKMNBLOWNAWAY 72
+#define STRINGID_PKMNCHANGEDTYPE 73
+#define STRINGID_PKMNFLINCHED 74
+#define STRINGID_PKMNREGAINEDHEALTH 75
+#define STRINGID_PKMNHPFULL 76
+#define STRINGID_PKMNRAISEDSPDEF 77
+#define STRINGID_PKMNRAISEDDEF 78
+#define STRINGID_PKMNCOVEREDBYVEIL 79
+#define STRINGID_PKMNUSEDSAFEGUARD 80
+#define STRINGID_PKMNSAFEGUARDEXPIRED 81
+#define STRINGID_PKMNWENTTOSLEEP 82
+#define STRINGID_PKMNSLEPTHEALTHY 83
+#define STRINGID_PKMNWHIPPEDWHIRLWIND 84
+#define STRINGID_PKMNTOOKSUNLIGHT 85
+#define STRINGID_PKMNLOWEREDHEAD 86
+#define STRINGID_PKMNISGLOWING 87
+#define STRINGID_PKMNFLEWHIGH 88
+#define STRINGID_PKMNDUGHOLE 89
+#define STRINGID_PKMNSQUEEZEDBYBIND 90
+#define STRINGID_PKMNTRAPPEDINVORTEX 91
+#define STRINGID_PKMNWRAPPEDBY 92
+#define STRINGID_PKMNCLAMPED 93
+#define STRINGID_PKMNHURTBY 94
+#define STRINGID_PKMNFREEDFROM 95
+#define STRINGID_PKMNCRASHED 96
+#define STRINGID_PKMNSHROUDEDINMIST 97
+#define STRINGID_PKMNPROTECTEDBYMIST 98
+#define STRINGID_PKMNGETTINGPUMPED 99
+#define STRINGID_PKMNHITWITHRECOIL 100
+#define STRINGID_PKMNPROTECTEDITSELF2 101
+#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102
+#define STRINGID_PKMNPELTEDBYHAIL 103
+#define STRINGID_PKMNSEEDED 104
+#define STRINGID_PKMNEVADEDATTACK 105
+#define STRINGID_PKMNSAPPEDBYLEECHSEED 106
+#define STRINGID_PKMNFASTASLEEP 107
+#define STRINGID_PKMNWOKEUP 108
+#define STRINGID_PKMNUPROARKEPTAWAKE 109
+#define STRINGID_PKMNWOKEUPINUPROAR 110
+#define STRINGID_PKMNCAUSEDUPROAR 111
+#define STRINGID_PKMNMAKINGUPROAR 112
+#define STRINGID_PKMNCALMEDDOWN 113
+#define STRINGID_PKMNCANTSLEEPINUPROAR 114
+#define STRINGID_PKMNSTOCKPILED 115
+#define STRINGID_PKMNCANTSTOCKPILE 116
+#define STRINGID_PKMNCANTSLEEPINUPROAR2 117
+#define STRINGID_UPROARKEPTPKMNAWAKE 118
+#define STRINGID_PKMNSTAYEDAWAKEUSING 119
+#define STRINGID_PKMNSTORINGENERGY 120
+#define STRINGID_PKMNUNLEASHEDENERGY 121
+#define STRINGID_PKMNFATIGUECONFUSION 122
+#define STRINGID_PKMNPICKEDUPITEM 123
+#define STRINGID_PKMNUNAFFECTED 124
+#define STRINGID_PKMNTRANSFORMEDINTO 125
+#define STRINGID_PKMNMADESUBSTITUTE 126
+#define STRINGID_PKMNHASSUBSTITUTE 127
+#define STRINGID_SUBSTITUTEDAMAGED 128
+#define STRINGID_PKMNSUBSTITUTEFADED 129
+#define STRINGID_PKMNMUSTRECHARGE 130
+#define STRINGID_PKMNRAGEBUILDING 131
+#define STRINGID_PKMNMOVEWASDISABLED 132
+#define STRINGID_PKMNMOVEISDISABLED 133
+#define STRINGID_PKMNMOVEDISABLEDNOMORE 134
+#define STRINGID_PKMNGOTENCORE 135
+#define STRINGID_PKMNENCOREENDED 136
+#define STRINGID_PKMNTOOKAIM 137
+#define STRINGID_PKMNSKETCHEDMOVE 138
+#define STRINGID_PKMNTRYINGTOTAKEFOE 139
+#define STRINGID_PKMNTOOKFOE 140
+#define STRINGID_PKMNREDUCEDPP 141
+#define STRINGID_PKMNSTOLEITEM 142
+#define STRINGID_TARGETCANTESCAPENOW 143
+#define STRINGID_PKMNFELLINTONIGHTMARE 144
+#define STRINGID_PKMNLOCKEDINNIGHTMARE 145
+#define STRINGID_PKMNLAIDCURSE 146
+#define STRINGID_PKMNAFFLICTEDBYCURSE 147
+#define STRINGID_SPIKESSCATTERED 148
+#define STRINGID_PKMNHURTBYSPIKES 149
+#define STRINGID_PKMNIDENTIFIED 150
+#define STRINGID_PKMNPERISHCOUNTFELL 151
+#define STRINGID_PKMNBRACEDITSELF 152
+#define STRINGID_PKMNENDUREDHIT 153
+#define STRINGID_MAGNITUDESTRENGTH 154
+#define STRINGID_PKMNCUTHPMAXEDATTACK 155
+#define STRINGID_PKMNCOPIEDSTATCHANGES 156
+#define STRINGID_PKMNGOTFREE 157
+#define STRINGID_PKMNSHEDLEECHSEED 158
+#define STRINGID_PKMNBLEWAWAYSPIKES 159
+#define STRINGID_PKMNFLEDFROMBATTLE 160
+#define STRINGID_PKMNFORESAWATTACK 161
+#define STRINGID_PKMNTOOKATTACK 162
+#define STRINGID_PKMNATTACK 163
+#define STRINGID_PKMNCENTERATTENTION 164
+#define STRINGID_PKMNCHARGINGPOWER 165
+#define STRINGID_NATUREPOWERTURNEDINTO 166
+#define STRINGID_PKMNSTATUSNORMAL 167
+#define STRINGID_PKMNHASNOMOVESLEFT 168
+#define STRINGID_PKMNSUBJECTEDTOTORMENT 169
+#define STRINGID_PKMNCANTUSEMOVETORMENT 170
+#define STRINGID_PKMNTIGHTENINGFOCUS 171
+#define STRINGID_PKMNFELLFORTAUNT 172
+#define STRINGID_PKMNCANTUSEMOVETAUNT 173
+#define STRINGID_PKMNREADYTOHELP 174
+#define STRINGID_PKMNSWITCHEDITEMS 175
+#define STRINGID_PKMNCOPIEDFOE 176
+#define STRINGID_PKMNMADEWISH 177
+#define STRINGID_PKMNWISHCAMETRUE 178
+#define STRINGID_PKMNPLANTEDROOTS 179
+#define STRINGID_PKMNABSORBEDNUTRIENTS 180
+#define STRINGID_PKMNANCHOREDITSELF 181
+#define STRINGID_PKMNWASMADEDROWSY 182
+#define STRINGID_PKMNKNOCKEDOFF 183
+#define STRINGID_PKMNSWAPPEDABILITIES 184
+#define STRINGID_PKMNSEALEDOPPONENTMOVE 185
+#define STRINGID_PKMNCANTUSEMOVESEALED 186
+#define STRINGID_PKMNWANTSGRUDGE 187
+#define STRINGID_PKMNLOSTPPGRUDGE 188
+#define STRINGID_PKMNSHROUDEDITSELF 189
+#define STRINGID_PKMNMOVEBOUNCED 190
+#define STRINGID_PKMNWAITSFORTARGET 191
+#define STRINGID_PKMNSNATCHEDMOVE 192
+#define STRINGID_PKMNMADEITRAIN 193
+#define STRINGID_PKMNRAISEDSPEED 194
+#define STRINGID_PKMNPROTECTEDBY 195
+#define STRINGID_PKMNPREVENTSUSAGE 196
+#define STRINGID_PKMNRESTOREDHPUSING 197
+#define STRINGID_PKMNCHANGEDTYPEWITH 198
+#define STRINGID_PKMNPREVENTSPARALYSISWITH 199
+#define STRINGID_PKMNPREVENTSROMANCEWITH 200
+#define STRINGID_PKMNPREVENTSPOISONINGWITH 201
+#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202
+#define STRINGID_PKMNRAISEDFIREPOWERWITH 203
+#define STRINGID_PKMNANCHORSITSELFWITH 204
+#define STRINGID_PKMNCUTSATTACKWITH 205
+#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206
+#define STRINGID_PKMNHURTSWITH 207
+#define STRINGID_PKMNTRACED 208
+#define STRINGID_STATSHARPLY 209
+#define STRINGID_STATROSE 210
+#define STRINGID_STATHARSHLY 211
+#define STRINGID_STATFELL 212
+#define STRINGID_PKMNSSTATCHANGED 213
+#define STRINGID_PKMNSSTATCHANGED2 214
+#define STRINGID_PKMNSSTATCHANGED3 215
+#define STRINGID_PKMNSSTATCHANGED4 216
+#define STRINGID_CRITICALHIT 217
+#define STRINGID_ONEHITKO 218
+#define STRINGID_123POOF 219
+#define STRINGID_ANDELLIPSIS 220
+#define STRINGID_NOTVERYEFFECTIVE 221
+#define STRINGID_SUPEREFFECTIVE 222
+#define STRINGID_GOTAWAYSAFELY 223
+#define STRINGID_WILDPKMNFLED 224
+#define STRINGID_NORUNNINGFROMTRAINERS 225
+#define STRINGID_CANTESCAPE 226
+#define STRINGID_DONTLEAVEBIRCH 227
+#define STRINGID_BUTNOTHINGHAPPENED 228
+#define STRINGID_BUTITFAILED 229
+#define STRINGID_ITHURTCONFUSION 230
+#define STRINGID_MIRRORMOVEFAILED 231
+#define STRINGID_STARTEDTORAIN 232
+#define STRINGID_DOWNPOURSTARTED 233
+#define STRINGID_RAINCONTINUES 234
+#define STRINGID_DOWNPOURCONTINUES 235
+#define STRINGID_RAINSTOPPED 236
+#define STRINGID_SANDSTORMBREWED 237
+#define STRINGID_SANDSTORMRAGES 238
+#define STRINGID_SANDSTORMSUBSIDED 239
+#define STRINGID_SUNLIGHTGOTBRIGHT 240
+#define STRINGID_SUNLIGHTSTRONG 241
+#define STRINGID_SUNLIGHTFADED 242
+#define STRINGID_STARTEDHAIL 243
+#define STRINGID_HAILCONTINUES 244
+#define STRINGID_HAILSTOPPED 245
+#define STRINGID_FAILEDTOSPITUP 246
+#define STRINGID_FAILEDTOSWALLOW 247
+#define STRINGID_WINDBECAMEHEATWAVE 248
+#define STRINGID_STATCHANGESGONE 249
+#define STRINGID_COINSSCATTERED 250
+#define STRINGID_TOOWEAKFORSUBSTITUTE 251
+#define STRINGID_SHAREDPAIN 252
+#define STRINGID_BELLCHIMED 253
+#define STRINGID_FAINTINTHREE 254
+#define STRINGID_NOPPLEFT 255
+#define STRINGID_BUTNOPPLEFT 256
+#define STRINGID_PLAYERUSEDITEM 257
+#define STRINGID_WALLYUSEDITEM 258
+#define STRINGID_TRAINERBLOCKEDBALL 259
+#define STRINGID_DONTBEATHIEF 260
+#define STRINGID_ITDODGEDBALL 261
+#define STRINGID_YOUMISSEDPKMN 262
+#define STRINGID_PKMNBROKEFREE 263
+#define STRINGID_ITAPPEAREDCAUGHT 264
+#define STRINGID_AARGHALMOSTHADIT 265
+#define STRINGID_SHOOTSOCLOSE 266
+#define STRINGID_GOTCHAPKMNCAUGHT 267
+#define STRINGID_GOTCHAPKMNCAUGHT2 268
+#define STRINGID_GIVENICKNAMECAPTURED 269
+#define STRINGID_PKMNSENTTOPC 270
+#define STRINGID_PKMNDATAADDEDTODEX 271
+#define STRINGID_ITISRAINING 272
+#define STRINGID_SANDSTORMISRAGING 273
+#define STRINGID_CANTESCAPE2 274
+#define STRINGID_PKMNIGNORESASLEEP 275
+#define STRINGID_PKMNIGNOREDORDERS 276
+#define STRINGID_PKMNBEGANTONAP 277
+#define STRINGID_PKMNLOAFING 278
+#define STRINGID_PKMNWONTOBEY 279
+#define STRINGID_PKMNTURNEDAWAY 280
+#define STRINGID_PKMNPRETENDNOTNOTICE 281
+#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282
+#define STRINGID_CREPTCLOSER 283
+#define STRINGID_CANTGETCLOSER 284
+#define STRINGID_PKMNWATCHINGCAREFULLY 285
+#define STRINGID_PKMNCURIOUSABOUTX 286
+#define STRINGID_PKMNENTHRALLEDBYX 287
+#define STRINGID_PKMNIGNOREDX 288
+#define STRINGID_THREWPOKEBLOCKATPKMN 289
+#define STRINGID_OUTOFSAFARIBALLS 290
+#define STRINGID_PKMNSITEMCUREDPARALYSIS 291
+#define STRINGID_PKMNSITEMCUREDPOISON 292
+#define STRINGID_PKMNSITEMHEALEDBURN 293
+#define STRINGID_PKMNSITEMDEFROSTEDIT 294
+#define STRINGID_PKMNSITEMWOKEIT 295
+#define STRINGID_PKMNSITEMSNAPPEDOUT 296
+#define STRINGID_PKMNSITEMCUREDPROBLEM 297
+#define STRINGID_PKMNSITEMRESTOREDHEALTH 298
+#define STRINGID_PKMNSITEMRESTOREDPP 299
+#define STRINGID_PKMNSITEMRESTOREDSTATUS 300
+#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301
+#define STRINGID_ITEMALLOWSONLYYMOVE 302
+#define STRINGID_PKMNHUNGONWITHX 303
+#define STRINGID_EMPTYSTRING3 304
+#define STRINGID_PKMNSXPREVENTSBURNS 305
+#define STRINGID_PKMNSXBLOCKSY 306
+#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307
+#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308
+#define STRINGID_PKMNSXPREVENTSYLOSS 309
+#define STRINGID_PKMNSXINFATUATEDY 310
+#define STRINGID_PKMNSXMADEYINEFFECTIVE 311
+#define STRINGID_PKMNSXCUREDYPROBLEM 312
+#define STRINGID_ITSUCKEDLIQUIDOOZE 313
+#define STRINGID_PKMNTRANSFORMED 314
+#define STRINGID_ELECTRICITYWEAKENED 315
+#define STRINGID_FIREWEAKENED 316
+#define STRINGID_PKMNHIDUNDERWATER 317
+#define STRINGID_PKMNSPRANGUP 318
+#define STRINGID_HMMOVESCANTBEFORGOTTEN 319
+#define STRINGID_XFOUNDONEY 320
+#define STRINGID_PLAYERDEFEATEDTRAINER1 321
+#define STRINGID_SOOTHINGAROMA 322
+#define STRINGID_ITEMSCANTBEUSEDNOW 323
+#define STRINGID_FORXCOMMAYZ 324
+#define STRINGID_USINGXTHEYOFZN 325
+#define STRINGID_PKMNUSEDXTOGETPUMPED 326
+#define STRINGID_PKMNSXMADEYUSELESS 327
+#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
+#define STRINGID_EMPTYSTRING4 329
+#define STRINGID_ABOOSTED 330
+#define STRINGID_PKMNSXINTENSIFIEDSUN 331
+#define STRINGID_PKMNMAKESGROUNDMISS 332
+#define STRINGID_YOUTHROWABALLNOWRIGHT 333
+#define STRINGID_PKMNSXTOOKATTACK 334
+#define STRINGID_PKMNCHOSEXASDESTINY 335
+#define STRINGID_PKMNLOSTFOCUS 336
+#define STRINGID_USENEXTPKMN 337
+#define STRINGID_PKMNFLEDUSINGITS 338
+#define STRINGID_PKMNFLEDUSING 339
+#define STRINGID_PKMNWASDRAGGEDOUT 340
+#define STRINGID_PREVENTEDFROMWORKING 341
+#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342
+#define STRINGID_TRAINER1USEDITEM 343
+#define STRINGID_BOXISFULL 344
+#define STRINGID_PKMNAVOIDEDATTACK 345
+#define STRINGID_PKMNSXMADEITINEFFECTIVE 346
+#define STRINGID_PKMNSXPREVENTSFLINCHING 347
+#define STRINGID_PKMNALREADYHASBURN 348
+#define STRINGID_STATSWONTDECREASE2 349
+#define STRINGID_PKMNSXBLOCKSY2 350
+#define STRINGID_PKMNSXWOREOFF 351
+#define STRINGID_PKMNRAISEDDEFALITTLE 352
+#define STRINGID_PKMNRAISEDSPDEFALITTLE 353
+#define STRINGID_THEWALLSHATTERED 354
+#define STRINGID_PKMNSXPREVENTSYSZ 355
+#define STRINGID_PKMNSXCUREDITSYPROBLEM 356
+#define STRINGID_ATTACKERCANTESCAPE 357
+#define STRINGID_PKMNOBTAINEDX 358
+#define STRINGID_PKMNOBTAINEDX2 359
+#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360
+#define STRINGID_BUTNOEFFECT 361
+#define STRINGID_PKMNSXHADNOEFFECTONY 362
+#define STRINGID_TWOENEMIESDEFEATED 363
+#define STRINGID_TRAINER2LOSETEXT 364
+#define STRINGID_PKMNINCAPABLEOFPOWER 365
+#define STRINGID_GLINTAPPEARSINEYE 366
+#define STRINGID_PKMNGETTINGINTOPOSITION 367
+#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368
+#define STRINGID_PKMNEAGERFORMORE 369
+#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370
+#define STRINGID_LOSTTOOPPONENTBYREFEREE 371
+#define STRINGID_TIEDOPPONENTBYREFEREE 372
+#define STRINGID_QUESTIONFORFEITMATCH 373
+#define STRINGID_FORFEITEDMATCH 374
+#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375
+#define STRINGID_PKMNTRANSFERREDLANETTESPC 376
+#define STRINGID_PKMNBOXSOMEONESPCFULL 377
+#define STRINGID_PKMNBOXLANETTESPCFULL 378
+#define STRINGID_TRAINER1WINTEXT 379
+#define STRINGID_TRAINER2WINTEXT 380
+
+#endif // GUARD_BATTLE_STRING_IDS_H
diff --git a/include/battle_tower.h b/include/battle_tower.h
new file mode 100644
index 000000000..25b439c1b
--- /dev/null
+++ b/include/battle_tower.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BATTLE_TOWER_H
+#define GUARD_BATTLE_TOWER_H
+
+u16 sub_8164FCC(u8, u8);
+
+#endif //GUARD_BATTLE_TOWER_H
diff --git a/include/battle_transition.h b/include/battle_transition.h
new file mode 100644
index 000000000..1603f5c93
--- /dev/null
+++ b/include/battle_transition.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BATTLE_TRANSITION_H
+#define GUARD_BATTLE_TRANSITION_H
+
+void sub_8149DFC(u8 a1);
+
+#endif // GUARD_BATTLE_TRANSITION_H
diff --git a/include/battle_util.h b/include/battle_util.h
new file mode 100644
index 000000000..81eb85dc7
--- /dev/null
+++ b/include/battle_util.h
@@ -0,0 +1,84 @@
+#ifndef GUARD_BATTLE_UTIL_H
+#define GUARD_BATTLE_UTIL_H
+
+#define MOVE_LIMITATION_ZEROMOVE (1 << 0)
+#define MOVE_LIMITATION_PP (1 << 1)
+#define MOVE_LIMITATION_DISABLED (1 << 2)
+#define MOVE_LIMITATION_TORMENTED (1 << 3)
+#define MOVE_LIMITATION_TAUNT (1 << 4)
+#define MOVE_LIMITATION_IMPRISION (1 << 5)
+
+#define ABILITYEFFECT_ON_SWITCHIN 0x0
+#define ABILITYEFFECT_ENDTURN 0x1
+#define ABILITYEFFECT_MOVES_BLOCK 0x2
+#define ABILITYEFFECT_ABSORBING 0x3
+#define ABILITYEFFECT_CONTACT 0x4
+#define ABILITYEFFECT_IMMUNITY 0x5
+#define ABILITYEFFECT_FORECAST 0x6
+#define ABILITYEFFECT_SYNCHRONIZE 0x7
+#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8
+#define ABILITYEFFECT_INTIMIDATE1 0x9
+#define ABILITYEFFECT_INTIMIDATE2 0xA
+#define ABILITYEFFECT_TRACE 0xB
+#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC
+#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD
+#define ABILITYEFFECT_FIELD_SPORT 0xE
+#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF
+#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10
+#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11
+#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
+#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
+#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF
+
+#define ITEMEFFECT_ON_SWITCH_IN 0x0
+
+#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
+#define WEATHER_HAS_EFFECT2 ((!AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_AIR_LOCK, 0, 0)))
+
+#define BS_GET_TARGET 0
+#define BS_GET_ATTACKER 1
+#define BS_GET_EFFECT_BANK 2
+#define BS_GET_SCRIPTING_BANK 10
+#define BS_GET_PLAYER1 11
+#define BS_GET_OPPONENT1 12
+#define BS_GET_PLAYER2 13
+#define BS_GET_OPPONENT2 14
+
+u8 GetBattleBank(u8 caseId);
+void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move);
+void PressurePPLoseOnUsingPerishSong(u8 bankAtk);
+void PressurePPLoseOnUsingImprision(u8 bankAtk);
+void MarkAllBufferBanksForExecution(void); // unused
+void MarkBufferBankForExecution(u8 bank);
+void sub_803F850(u8 arg0);
+void CancelMultiTurnMoves(u8 bank);
+bool8 WasUnableToUseMove(u8 bank);
+void PrepareStringBattle(u16 stringId, u8 bank);
+void ResetSentPokesToOpponentValue(void);
+void sub_803F9EC(u8 bank);
+void sub_803FA70(u8 bank);
+void BattleScriptPush(const u8* bsPtr);
+void BattleScriptPushCursor(void);
+void BattleScriptPop(void);
+u8 TrySetCantSelectMoveBattleScript(void);
+u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check);
+bool8 AreAllMovesUnusable(void);
+u8 GetImprisonedMovesCount(u8 bank, u16 move);
+u8 UpdateTurnCounters(void);
+u8 TurnBasedEffects(void);
+bool8 HandleWishPerishSongOnTurnEnd(void);
+bool8 HandleFaintedMonActions(void);
+void TryClearRageStatuses(void);
+u8 AtkCanceller_UnableToUseMove(void);
+bool8 sub_80423F4(u8 bank, u8 r1, u8 r2);
+u8 CastformDataTypeChange(u8 bank);
+u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg);
+void BattleScriptExecute(const u8* BS_ptr);
+void BattleScriptPushCursorAndCallback(const u8* BS_ptr);
+u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn);
+void ClearFuryCutterDestinyBondGrudge(u8 bank);
+void HandleAction_RunBattleScript(void);
+u8 GetMoveTarget(u16 move, u8 useMoveTarget);
+u8 IsMonDisobedient(void);
+
+#endif // GUARD_BATTLE_UTIL_H
diff --git a/include/battle_util2.h b/include/battle_util2.h
new file mode 100644
index 000000000..3954e42dc
--- /dev/null
+++ b/include/battle_util2.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_BATTLE_UTIL2_H
+#define GUARD_BATTLE_UTIL2_H
+
+void AllocateBattleResources(void);
+void FreeBattleResources(void);
+void AdjustFriendshipOnBattleFaint(u8 bank);
+void sub_80571DC(u8 bank, u8 arg1);
+u32 sub_805725C(u8 bank);
+
+#endif // GUARD_BATTLE_UTIL_H
diff --git a/include/berry.h b/include/berry.h
new file mode 100644
index 000000000..425a664c9
--- /dev/null
+++ b/include/berry.h
@@ -0,0 +1,73 @@
+#ifndef GUARD_BERRY_H
+#define GUARD_BERRY_H
+
+enum
+{
+ BERRY_FIRMNESS_UNKNOWN,
+ BERRY_FIRMNESS_VERY_SOFT,
+ BERRY_FIRMNESS_SOFT,
+ BERRY_FIRMNESS_HARD,
+ BERRY_FIRMNESS_VERY_HARD,
+ BERRY_FIRMNESS_SUPER_HARD,
+};
+
+enum
+{
+ FLAVOR_SPICY,
+ FLAVOR_DRY,
+ FLAVOR_SWEET,
+ FLAVOR_BITTER,
+ FLAVOR_SOUR,
+ FLAVOR_COUNT
+};
+
+#define NUM_BERRIES 44
+
+extern const u8 *const gBerryTreeFieldObjectGraphicsIdTablePointers[NUM_BERRIES];
+extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[NUM_BERRIES];
+extern const u8 *const gBerryTreePaletteSlotTablePointers[NUM_BERRIES];
+
+void ClearEnigmaBerries(void);
+void SetEnigmaBerry(u8 *src);
+u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry);
+bool32 IsEnigmaBerryValid(void);
+const struct Berry *GetBerryInfo(u8 berry);
+struct BerryTree *GetBerryTreeInfo(u8 id);
+bool32 FieldObjectInteractionWaterBerryTree(void);
+bool8 IsPlayerFacingPlantedBerryTree(void);
+bool8 TryToWaterBerryTree(void);
+void ClearBerryTrees(void);
+bool32 BerryTreeGrow(struct BerryTree *tree);
+void BerryTreeTimeUpdate(s32 minutes);
+void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
+void RemoveBerryTree(u8 id);
+u8 GetBerryTypeByBerryTreeId(u8 id);
+u8 GetStageByBerryTreeId(u8);
+u8 ItemIdToBerryType(u16 item);
+u16 BerryTypeToItemId(u16 berry);
+void GetBerryNameByBerryType(u8 berry, u8 *string);
+void ResetBerryTreeSparkleFlag(u8 id);
+u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree);
+u8 GetNumStagesWateredByBerryTreeId(u8 id);
+u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water);
+u8 CalcBerryYield(struct BerryTree *tree);
+u8 GetBerryCountByBerryTreeId(u8 id);
+u16 GetStageDurationByBerryType(u8);
+void Bag_ChooseBerry(void);
+void FieldObjectInteractionGetBerryTreeData(void);
+void FieldObjectInteractionPlantBerryTree(void);
+void FieldObjectInteractionPickBerryTree(void);
+void FieldObjectInteractionRemoveBerryTree(void);
+u8 PlayerHasBerries(void);
+void ResetBerryTreeSparkleFlags(void);
+
+extern const struct Berry gBerries[];
+
+struct UnkStruct_0858AB24 {
+ u8 unk0;
+ u16 unk1;
+};
+
+extern const struct UnkStruct_0858AB24 gUnknown_0858AB24[];
+
+#endif // GUARD_BERRY_H
diff --git a/include/bg.h b/include/bg.h
new file mode 100644
index 000000000..0c6b4ac26
--- /dev/null
+++ b/include/bg.h
@@ -0,0 +1,85 @@
+#ifndef GUARD_BG_H
+#define GUARD_BG_H
+
+struct BGCntrlBitfield // for the I/O registers
+{
+ volatile u16 priority:2;
+ volatile u16 charBaseBlock:2;
+ volatile u16 field_0_2:4;
+ volatile u16 field_1_0:5;
+ volatile u16 areaOverflowMode:1;
+ volatile u16 screenSize:2;
+};
+
+enum
+{
+ BG_CTRL_ATTR_VISIBLE = 1,
+ BG_CTRL_ATTR_CHARBASEINDEX = 2,
+ BG_CTRL_ATTR_MAPBASEINDEX = 3,
+ BG_CTRL_ATTR_SCREENSIZE = 4,
+ BG_CTRL_ATTR_PALETTEMODE = 5,
+ BG_CTRL_ATTR_PRIORITY = 6,
+ BG_CTRL_ATTR_MOSAIC = 7,
+ BG_CTRL_ATTR_WRAPAROUND = 8,
+};
+
+struct BgTemplate
+{
+ u32 bg:2; // 0x1, 0x2 -> 0x3
+ u32 charBaseIndex:2; // 0x4, 0x8 -> 0xC
+ u32 mapBaseIndex:5; // 0x10, 0x20, 0x40, 0x80, 0x100 -> 0x1F0
+ u32 screenSize:2; // 0x200, 0x400 -> 0x600
+ u32 paletteMode:1; // 0x800
+ u32 priority:2; // 0x1000, 0x2000 > 0x3000
+ u32 baseTile:10;
+};
+
+void ResetBgs(void);
+u8 GetBgMode(void);
+void ResetBgControlStructs(void);
+void Unused_ResetBgControlStruct(u8 bg);
+void SetBgControlAttributes(u8 bg, u8 charBaseIndex, u8 mapBaseIndex, u8 screenSize, u8 paletteMode, u8 priority, u8 mosaic, u8 wraparound);
+u16 GetBgControlAttribute(u8 bg, u8 attributeId);
+u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode);
+void SetTextModeAndHideBgs(void);
+bool8 IsInvalidBg(u8 bg);
+int DummiedOutFireRedLeafGreenTileAllocFunc(int a1, int a2, int a3, int a4);
+void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable);
+void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates);
+void InitBgFromTemplate(const struct BgTemplate *template);
+void SetBgMode(u8 bgMode);
+u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset);
+u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset);
+u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset);
+bool8 IsDma3ManagerBusyWithBgCopy(void);
+void ShowBg(u8 bg);
+void HideBg(u8 bg);
+void SetBgAttribute(u8 bg, u8 attributeId, u8 value);
+u16 GetBgAttribute(u8 bg, u8 attributeId);
+u32 ChangeBgX(u8 bg, u32 value, u8 op);
+u32 GetBgX(u8 bg);
+u32 ChangeBgY(u8 bg, u32 value, u8 op);
+u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op);
+u32 GetBgY(u8 bg);
+void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
+u8 Unused_AdjustBgMosaic(u8 a1, u8 a2);
+void SetBgTilemapBuffer(u8 bg, void *tilemap);
+void UnsetBgTilemapBuffer(u8 bg);
+void* GetBgTilemapBuffer(u8 bg);
+void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
+void CopyBgTilemapBufferToVram(u8 bg);
+void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height);
+void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
+void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
+void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
+void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
+void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
+u16 GetBgMetricTextMode(u8 bg, u8 whichMetric);
+u32 GetBgMetricAffineMode(u8 bg, u8 whichMetric);
+u32 GetTileMapIndexFromCoords(s32 x, s32 y, s32 screenSize, u32 screenWidth, u32 screenHeight);
+void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2);
+u32 GetBgType(u8 bg);
+bool32 IsInvalidBg32(u8 bg);
+bool32 IsTileMapOutsideWram(u8 bg);
+
+#endif // GUARD_BG_H
diff --git a/include/blend_palette.h b/include/blend_palette.h
new file mode 100644
index 000000000..1db3f4eb0
--- /dev/null
+++ b/include/blend_palette.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_BLEND_PALETTE_H
+#define GUARD_BLEND_PALETTE_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void BlendPalette(u16, u16, u8, u16);
+
+#endif //GUARD_BLEND_PALETTE_H
diff --git a/include/calculate_base_damage.h b/include/calculate_base_damage.h
new file mode 100644
index 000000000..e9146c188
--- /dev/null
+++ b/include/calculate_base_damage.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_CALCULATE_BASE_DAMAGE_H
+#define GUARD_CALCULATE_BASE_DAMAGE_H
+
+s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef);
+
+#endif // GUARD_CALCULATE_BASE_DAMAGE_H
diff --git a/include/coins.h b/include/coins.h
new file mode 100644
index 000000000..996519605
--- /dev/null
+++ b/include/coins.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_COINS_H
+#define GUARD_COINS_H
+
+void PrintCoinsString(u32 coinAmount);
+void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y);
+void HideCoinsWindow(void);
+u16 GetCoins(void);
+void SetCoins(u16 coinAmount);
+bool8 GiveCoins(u16 toAdd);
+bool8 TakeCoins(u16 toSub);
+
+#endif // GUARD_COINS_H
diff --git a/include/config.h b/include/config.h
new file mode 100644
index 000000000..162af3143
--- /dev/null
+++ b/include/config.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_CONFIG_H
+#define GUARD_CONFIG_H
+
+#define ENGLISH
+
+#ifdef ENGLISH
+#define UNITS_IMPERIAL
+#else
+#define UNITS_METRIC
+#endif
+
+#endif // GUARD_CONFIG_H
diff --git a/include/constants/abilities.h b/include/constants/abilities.h
new file mode 100644
index 000000000..4e2c4056c
--- /dev/null
+++ b/include/constants/abilities.h
@@ -0,0 +1,83 @@
+#ifndef GUARD_CONSTANTS_ABILITIES_H
+#define GUARD_CONSTANTS_ABILITIES_H
+
+#define ABILITY_NONE 0
+#define ABILITY_STENCH 1
+#define ABILITY_DRIZZLE 2
+#define ABILITY_SPEED_BOOST 3
+#define ABILITY_BATTLE_ARMOR 4
+#define ABILITY_STURDY 5
+#define ABILITY_DAMP 6
+#define ABILITY_LIMBER 7
+#define ABILITY_SAND_VEIL 8
+#define ABILITY_STATIC 9
+#define ABILITY_VOLT_ABSORB 10
+#define ABILITY_WATER_ABSORB 11
+#define ABILITY_OBLIVIOUS 12
+#define ABILITY_CLOUD_NINE 13
+#define ABILITY_COMPOUND_EYES 14
+#define ABILITY_INSOMNIA 15
+#define ABILITY_COLOR_CHANGE 16
+#define ABILITY_IMMUNITY 17
+#define ABILITY_FLASH_FIRE 18
+#define ABILITY_SHIELD_DUST 19
+#define ABILITY_OWN_TEMPO 20
+#define ABILITY_SUCTION_CUPS 21
+#define ABILITY_INTIMIDATE 22
+#define ABILITY_SHADOW_TAG 23
+#define ABILITY_ROUGH_SKIN 24
+#define ABILITY_WONDER_GUARD 25
+#define ABILITY_LEVITATE 26
+#define ABILITY_EFFECT_SPORE 27
+#define ABILITY_SYNCHRONIZE 28
+#define ABILITY_CLEAR_BODY 29
+#define ABILITY_NATURAL_CURE 30
+#define ABILITY_LIGHTNING_ROD 31
+#define ABILITY_SERENE_GRACE 32
+#define ABILITY_SWIFT_SWIM 33
+#define ABILITY_CHLOROPHYLL 34
+#define ABILITY_ILLUMINATE 35
+#define ABILITY_TRACE 36
+#define ABILITY_HUGE_POWER 37
+#define ABILITY_POISON_POINT 38
+#define ABILITY_INNER_FOCUS 39
+#define ABILITY_MAGMA_ARMOR 40
+#define ABILITY_WATER_VEIL 41
+#define ABILITY_MAGNET_PULL 42
+#define ABILITY_SOUNDPROOF 43
+#define ABILITY_RAIN_DISH 44
+#define ABILITY_SAND_STREAM 45
+#define ABILITY_PRESSURE 46
+#define ABILITY_THICK_FAT 47
+#define ABILITY_EARLY_BIRD 48
+#define ABILITY_FLAME_BODY 49
+#define ABILITY_RUN_AWAY 50
+#define ABILITY_KEEN_EYE 51
+#define ABILITY_HYPER_CUTTER 52
+#define ABILITY_PICKUP 53
+#define ABILITY_TRUANT 54
+#define ABILITY_HUSTLE 55
+#define ABILITY_CUTE_CHARM 56
+#define ABILITY_PLUS 57
+#define ABILITY_MINUS 58
+#define ABILITY_FORECAST 59
+#define ABILITY_STICKY_HOLD 60
+#define ABILITY_SHED_SKIN 61
+#define ABILITY_GUTS 62
+#define ABILITY_MARVEL_SCALE 63
+#define ABILITY_LIQUID_OOZE 64
+#define ABILITY_OVERGROW 65
+#define ABILITY_BLAZE 66
+#define ABILITY_TORRENT 67
+#define ABILITY_SWARM 68
+#define ABILITY_ROCK_HEAD 69
+#define ABILITY_DROUGHT 70
+#define ABILITY_ARENA_TRAP 71
+#define ABILITY_VITAL_SPIRIT 72
+#define ABILITY_WHITE_SMOKE 73
+#define ABILITY_PURE_POWER 74
+#define ABILITY_SHELL_ARMOR 75
+#define ABILITY_CACOPHONY 76
+#define ABILITY_AIR_LOCK 77
+
+#endif // GUARD_CONSTANTS_ABILITIES_H
diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h
new file mode 100644
index 000000000..1b59f2f64
--- /dev/null
+++ b/include/constants/battle_move_effects.h
@@ -0,0 +1,219 @@
+#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
+#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
+
+#define EFFECT_HIT 0
+#define EFFECT_SLEEP 1
+#define EFFECT_POISON_HIT 2
+#define EFFECT_ABSORB 3
+#define EFFECT_BURN_HIT 4
+#define EFFECT_FREEZE_HIT 5
+#define EFFECT_PARALYZE_HIT 6
+#define EFFECT_EXPLOSION 7
+#define EFFECT_DREAM_EATER 8
+#define EFFECT_MIRROR_MOVE 9
+#define EFFECT_ATTACK_UP 10
+#define EFFECT_DEFENSE_UP 11
+#define EFFECT_SPEED_UP 12
+#define EFFECT_SPECIAL_ATTACK_UP 13
+#define EFFECT_SPECIAL_DEFENSE_UP 14
+#define EFFECT_ACCURACY_UP 15
+#define EFFECT_EVASION_UP 16
+#define EFFECT_ALWAYS_HIT 17
+#define EFFECT_ATTACK_DOWN 18
+#define EFFECT_DEFENSE_DOWN 19
+#define EFFECT_SPEED_DOWN 20
+#define EFFECT_SPECIAL_ATTACK_DOWN 21 // unused
+#define EFFECT_SPECIAL_DEFENSE_DOWN 22 // unused
+#define EFFECT_ACCURACY_DOWN 23
+#define EFFECT_EVASION_DOWN 24
+#define EFFECT_HAZE 25
+#define EFFECT_BIDE 26
+#define EFFECT_RAMPAGE 27
+#define EFFECT_ROAR 28
+#define EFFECT_MULTI_HIT 29
+#define EFFECT_CONVERSION 30
+#define EFFECT_FLINCH_HIT 31
+#define EFFECT_RESTORE_HP 32
+#define EFFECT_TOXIC 33
+#define EFFECT_PAY_DAY 34
+#define EFFECT_LIGHT_SCREEN 35
+#define EFFECT_TRI_ATTACK 36
+#define EFFECT_REST 37
+#define EFFECT_OHKO 38
+#define EFFECT_RAZOR_WIND 39
+#define EFFECT_SUPER_FANG 40
+#define EFFECT_DRAGON_RAGE 41
+#define EFFECT_TRAP 42
+#define EFFECT_HIGH_CRITICAL 43
+#define EFFECT_DOUBLE_HIT 44
+#define EFFECT_RECOIL_IF_MISS 45
+#define EFFECT_MIST 46
+#define EFFECT_FOCUS_ENERGY 47
+#define EFFECT_RECOIL 48
+#define EFFECT_CONFUSE 49
+#define EFFECT_ATTACK_UP_2 50
+#define EFFECT_DEFENSE_UP_2 51
+#define EFFECT_SPEED_UP_2 52
+#define EFFECT_SPECIAL_ATTACK_UP_2 53
+#define EFFECT_SPECIAL_DEFENSE_UP_2 54
+#define EFFECT_ACCURACY_UP_2 55
+#define EFFECT_EVASION_UP_2 56
+#define EFFECT_TRANSFORM 57
+#define EFFECT_ATTACK_DOWN_2 58
+#define EFFECT_DEFENSE_DOWN_2 59
+#define EFFECT_SPEED_DOWN_2 60
+#define EFFECT_SPECIAL_ATTACK_DOWN_2 61
+#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62
+#define EFFECT_ACCURACY_DOWN_2 63
+#define EFFECT_EVASION_DOWN_2 64
+#define EFFECT_REFLECT 65
+#define EFFECT_POISON 66
+#define EFFECT_PARALYZE 67
+#define EFFECT_ATTACK_DOWN_HIT 68
+#define EFFECT_DEFENSE_DOWN_HIT 69
+#define EFFECT_SPEED_DOWN_HIT 70
+#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71
+#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72
+#define EFFECT_ACCURACY_DOWN_HIT 73
+#define EFFECT_EVASION_DOWN_HIT 74
+#define EFFECT_SKY_ATTACK 75
+#define EFFECT_CONFUSE_HIT 76
+#define EFFECT_TWINEEDLE 77
+#define EFFECT_VITAL_THROW 78
+#define EFFECT_SUBSTITUTE 79
+#define EFFECT_RECHARGE 80
+#define EFFECT_RAGE 81
+#define EFFECT_MIMIC 82
+#define EFFECT_METRONOME 83
+#define EFFECT_LEECH_SEED 84
+#define EFFECT_SPLASH 85
+#define EFFECT_DISABLE 86
+#define EFFECT_LEVEL_DAMAGE 87
+#define EFFECT_PSYWAVE 88
+#define EFFECT_COUNTER 89
+#define EFFECT_ENCORE 90
+#define EFFECT_PAIN_SPLIT 91
+#define EFFECT_SNORE 92
+#define EFFECT_CONVERSION_2 93
+#define EFFECT_LOCK_ON 94
+#define EFFECT_SKETCH 95
+#define EFFECT_UNUSED_60 96 // thaw
+#define EFFECT_SLEEP_TALK 97
+#define EFFECT_DESTINY_BOND 98
+#define EFFECT_FLAIL 99
+#define EFFECT_SPITE 100
+#define EFFECT_FALSE_SWIPE 101
+#define EFFECT_HEAL_BELL 102
+#define EFFECT_QUICK_ATTACK 103
+#define EFFECT_TRIPLE_KICK 104
+#define EFFECT_THIEF 105
+#define EFFECT_MEAN_LOOK 106
+#define EFFECT_NIGHTMARE 107
+#define EFFECT_MINIMIZE 108
+#define EFFECT_CURSE 109
+#define EFFECT_UNUSED_6E 110
+#define EFFECT_PROTECT 111
+#define EFFECT_SPIKES 112
+#define EFFECT_FORESIGHT 113
+#define EFFECT_PERISH_SONG 114
+#define EFFECT_SANDSTORM 115
+#define EFFECT_ENDURE 116
+#define EFFECT_ROLLOUT 117
+#define EFFECT_SWAGGER 118
+#define EFFECT_FURY_CUTTER 119
+#define EFFECT_ATTRACT 120
+#define EFFECT_RETURN 121
+#define EFFECT_PRESENT 122
+#define EFFECT_FRUSTRATION 123
+#define EFFECT_SAFEGUARD 124
+#define EFFECT_THAW_HIT 125
+#define EFFECT_MAGNITUDE 126
+#define EFFECT_BATON_PASS 127
+#define EFFECT_PURSUIT 128
+#define EFFECT_RAPID_SPIN 129
+#define EFFECT_SONICBOOM 130
+#define EFFECT_UNUSED_83 131
+#define EFFECT_MORNING_SUN 132
+#define EFFECT_SYNTHESIS 133
+#define EFFECT_MOONLIGHT 134
+#define EFFECT_HIDDEN_POWER 135
+#define EFFECT_RAIN_DANCE 136
+#define EFFECT_SUNNY_DAY 137
+#define EFFECT_DEFENSE_UP_HIT 138
+#define EFFECT_ATTACK_UP_HIT 139
+#define EFFECT_ALL_STATS_UP_HIT 140
+#define EFFECT_UNUSED_8D 141 // incomplete fake out in gen 2
+#define EFFECT_BELLY_DRUM 142
+#define EFFECT_PSYCH_UP 143
+#define EFFECT_MIRROR_COAT 144
+#define EFFECT_SKULL_BASH 145
+#define EFFECT_TWISTER 146
+#define EFFECT_EARTHQUAKE 147
+#define EFFECT_FUTURE_SIGHT 148
+#define EFFECT_GUST 149
+#define EFFECT_FLINCH_HIT_2 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
+#define EFFECT_SOLARBEAM 151
+#define EFFECT_THUNDER 152
+#define EFFECT_TELEPORT 153
+#define EFFECT_BEAT_UP 154
+#define EFFECT_SEMI_INVULNERABLE 155
+#define EFFECT_DEFENSE_CURL 156
+#define EFFECT_SOFTBOILED 157
+#define EFFECT_FAKE_OUT 158
+#define EFFECT_UPROAR 159
+#define EFFECT_STOCKPILE 160
+#define EFFECT_SPIT_UP 161
+#define EFFECT_SWALLOW 162
+#define EFFECT_UNUSED_A3 163
+#define EFFECT_HAIL 164
+#define EFFECT_TORMENT 165
+#define EFFECT_FLATTER 166
+#define EFFECT_WILL_O_WISP 167
+#define EFFECT_MEMENTO 168
+#define EFFECT_FACADE 169
+#define EFFECT_FOCUS_PUNCH 170
+#define EFFECT_SMELLINGSALT 171
+#define EFFECT_FOLLOW_ME 172
+#define EFFECT_NATURE_POWER 173
+#define EFFECT_CHARGE 174
+#define EFFECT_TAUNT 175
+#define EFFECT_HELPING_HAND 176
+#define EFFECT_TRICK 177
+#define EFFECT_ROLE_PLAY 178
+#define EFFECT_WISH 179
+#define EFFECT_ASSIST 180
+#define EFFECT_INGRAIN 181
+#define EFFECT_SUPERPOWER 182
+#define EFFECT_MAGIC_COAT 183
+#define EFFECT_RECYCLE 184
+#define EFFECT_REVENGE 185
+#define EFFECT_BRICK_BREAK 186
+#define EFFECT_YAWN 187
+#define EFFECT_KNOCK_OFF 188
+#define EFFECT_ENDEAVOR 189
+#define EFFECT_ERUPTION 190
+#define EFFECT_SKILL_SWAP 191
+#define EFFECT_IMPRISON 192
+#define EFFECT_REFRESH 193
+#define EFFECT_GRUDGE 194
+#define EFFECT_SNATCH 195
+#define EFFECT_LOW_KICK 196
+#define EFFECT_SECRET_POWER 197
+#define EFFECT_DOUBLE_EDGE 198
+#define EFFECT_TEETER_DANCE 199
+#define EFFECT_BLAZE_KICK 200
+#define EFFECT_MUD_SPORT 201
+#define EFFECT_POISON_FANG 202
+#define EFFECT_WEATHER_BALL 203
+#define EFFECT_OVERHEAT 204
+#define EFFECT_TICKLE 205
+#define EFFECT_COSMIC_POWER 206
+#define EFFECT_SKY_UPPERCUT 207
+#define EFFECT_BULK_UP 208
+#define EFFECT_POISON_TAIL 209
+#define EFFECT_WATER_SPORT 210
+#define EFFECT_CALM_MIND 211
+#define EFFECT_DRAGON_DANCE 212
+#define EFFECT_CAMOUFLAGE 213
+
+#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
diff --git a/include/constants/decorations.h b/include/constants/decorations.h
new file mode 100644
index 000000000..2e3558721
--- /dev/null
+++ b/include/constants/decorations.h
@@ -0,0 +1,126 @@
+#ifndef GUARD_CONSTANTS_DECORATIONS_H
+#define GUARD_CONSTANTS_DECORATIONS_H
+
+#define DECOR_NONE 0
+#define DECOR_SMALL_DESK 1
+#define DECOR_POKEMON_DESK 2
+#define DECOR_HEAVY_DESK 3
+#define DECOR_RAGGED_DESK 4
+#define DECOR_COMFORT_DESK 5
+#define DECOR_PRETTY_DESK 6
+#define DECOR_BRICK_DESK 7
+#define DECOR_CAMP_DESK 8
+#define DECOR_HARD_DESK 9
+#define DECOR_SMALL_CHAIR 10
+#define DECOR_POKEMON_CHAIR 11
+#define DECOR_HEAVY_CHAIR 12
+#define DECOR_PRETTY_CHAIR 13
+#define DECOR_COMFORT_CHAIR 14
+#define DECOR_RAGGED_CHAIR 15
+#define DECOR_BRICK_CHAIR 16
+#define DECOR_CAMP_CHAIR 17
+#define DECOR_HARD_CHAIR 18
+#define DECOR_RED_PLANT 19
+#define DECOR_TROPICAL_PLANT 20
+#define DECOR_PRETTY_FLOWERS 21
+#define DECOR_COLORFUL_PLANT 22
+#define DECOR_BIG_PLANT 23
+#define DECOR_GORGEOUS_PLANT 24
+#define DECOR_RED_BRICK 25
+#define DECOR_YELLOW_BRICK 26
+#define DECOR_BLUE_BRICK 27
+#define DECOR_RED_BALLOON 28
+#define DECOR_BLUE_BALLOON 29
+#define DECOR_YELLOW_BALLOON 30
+#define DECOR_RED_TENT 31
+#define DECOR_BLUE_TENT 32
+#define DECOR_SOLID_BOARD 33
+#define DECOR_SLIDE 34
+#define DECOR_FENCE_LENGTH 35
+#define DECOR_FENCE_WIDTH 36
+#define DECOR_TIRE 37
+#define DECOR_STAND 38
+#define DECOR_MUD_BALL 39
+#define DECOR_BREAKABLE_DOOR 40
+#define DECOR_SAND_ORNAMENT 41
+#define DECOR_SILVER_SHIELD 42
+#define DECOR_GOLD_SHIELD 43
+#define DECOR_GLASS_ORNAMENT 44
+#define DECOR_TV 45
+#define DECOR_ROUND_TV 46
+#define DECOR_CUTE_TV 47
+#define DECOR_GLITTER_MAT 48
+#define DECOR_JUMP_MAT 49
+#define DECOR_SPIN_MAT 50
+#define DECOR_C_LOW_NOTE_MAT 51
+#define DECOR_D_NOTE_MAT 52
+#define DECOR_E_NOTE_MAT 53
+#define DECOR_F_NOTE_MAT 54
+#define DECOR_G_NOTE_MAT 55
+#define DECOR_A_NOTE_MAT 56
+#define DECOR_B_NOTE_MAT 57
+#define DECOR_C_HIGH_NOTE_MAT 58
+#define DECOR_SURF_MAT 59
+#define DECOR_THUNDER_MAT 60
+#define DECOR_FIRE_BLAST_MAT 61
+#define DECOR_POWDER_SNOW_MAT 62
+#define DECOR_ATTRACT_MAT 63
+#define DECOR_FISSURE_MAT 64
+#define DECOR_SPIKES_MAT 65
+#define DECOR_BALL_POSTER 66
+#define DECOR_GREEN_POSTER 67
+#define DECOR_RED_POSTER 68
+#define DECOR_BLUE_POSTER 69
+#define DECOR_CUTE_POSTER 70
+#define DECOR_PIKA_POSTER 71
+#define DECOR_LONG_POSTER 72
+#define DECOR_SEA_POSTER 73
+#define DECOR_SKY_POSTER 74
+#define DECOR_KISS_POSTER 75
+#define DECOR_PICHU_DOLL 76
+#define DECOR_PIKACHU_DOLL 77
+#define DECOR_MARILL_DOLL 78
+#define DECOR_TOGEPI_DOLL 79
+#define DECOR_CYNDAQUIL_DOLL 80
+#define DECOR_CHIKORITA_DOLL 81
+#define DECOR_TOTODILE_DOLL 82
+#define DECOR_JIGGLYPUFF_DOLL 83
+#define DECOR_MEOWTH_DOLL 84
+#define DECOR_CLEFAIRY_DOLL 85
+#define DECOR_DITTO_DOLL 86
+#define DECOR_SMOOCHUM_DOLL 87
+#define DECOR_TREECKO_DOLL 88
+#define DECOR_TORCHIC_DOLL 89
+#define DECOR_MUDKIP_DOLL 90
+#define DECOR_DUSKULL_DOLL 91
+#define DECOR_WYNAUT_DOLL 92
+#define DECOR_BALTOY_DOLL 93
+#define DECOR_KECLEON_DOLL 94
+#define DECOR_AZURILL_DOLL 95
+#define DECOR_SKITTY_DOLL 96
+#define DECOR_SWABLU_DOLL 97
+#define DECOR_GULPIN_DOLL 98
+#define DECOR_LOTAD_DOLL 99
+#define DECOR_SEEDOT_DOLL 100
+#define DECOR_PIKA_CUSHION 101
+#define DECOR_ROUND_CUSHION 102
+#define DECOR_KISS_CUSHION 103
+#define DECOR_ZIGZAG_CUSHION 104
+#define DECOR_SPIN_CUSHION 105
+#define DECOR_DIAMOND_CUSHION 106
+#define DECOR_BALL_CUSHION 107
+#define DECOR_GRASS_CUSHION 108
+#define DECOR_FIRE_CUSHION 109
+#define DECOR_WATER_CUSHION 110
+#define DECOR_SNORLAX_DOLL 111
+#define DECOR_RHYDON_DOLL 112
+#define DECOR_LAPRAS_DOLL 113
+#define DECOR_VENUSAUR_DOLL 114
+#define DECOR_CHARIZARD_DOLL 115
+#define DECOR_BLASTOISE_DOLL 116
+#define DECOR_WAILMER_DOLL 117
+#define DECOR_REGIROCK_DOLL 118
+#define DECOR_REGICE_DOLL 119
+#define DECOR_REGISTEEL_DOLL 120
+
+#endif // GUARD_CONSTANTS_DECORATIONS_H
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
new file mode 100644
index 000000000..2c437c88e
--- /dev/null
+++ b/include/constants/easy_chat.h
@@ -0,0 +1,1079 @@
+#ifndef GUARD_CONSTANTS_EASY_CHAT_H
+#define GUARD_CONSTANTS_EASY_CHAT_H
+
+#define EC_GROUP_POKEMON 0x0
+#define EC_GROUP_TRAINER 0x1
+#define EC_GROUP_STATUS 0x2
+#define EC_GROUP_BATTLE 0x3
+#define EC_GROUP_GREETINGS 0x4
+#define EC_GROUP_PEOPLE 0x5
+#define EC_GROUP_VOICES 0x6
+#define EC_GROUP_SPEECH 0x7
+#define EC_GROUP_ENDINGS 0x8
+#define EC_GROUP_FEELINGS 0x9
+#define EC_GROUP_CONDITIONS 0xa
+#define EC_GROUP_ACTIONS 0xb
+#define EC_GROUP_LIFESTYLE 0xc
+#define EC_GROUP_HOBBIES 0xd
+#define EC_GROUP_TIME 0xe
+#define EC_GROUP_MISC 0xf
+#define EC_GROUP_ADJECTIVES 0x10
+#define EC_GROUP_EVENTS 0x11
+#define EC_GROUP_MOVE_1 0x12
+#define EC_GROUP_MOVE_2 0x13
+#define EC_GROUP_TRENDY_SAYING 0x14
+#define EC_GROUP_POKEMON_2 0x15
+
+// TRAINER
+#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0
+#define EC_WORD_GOTCHA (EC_GROUP_TRAINER << 9) | 0x1
+#define EC_WORD_TRADE (EC_GROUP_TRAINER << 9) | 0x2
+#define EC_WORD_SAPPHIRE (EC_GROUP_TRAINER << 9) | 0x3
+#define EC_WORD_EVOLVE (EC_GROUP_TRAINER << 9) | 0x4
+#define EC_WORD_ENCYCLOPEDIA (EC_GROUP_TRAINER << 9) | 0x5
+#define EC_WORD_NATURE (EC_GROUP_TRAINER << 9) | 0x6
+#define EC_WORD_CENTER (EC_GROUP_TRAINER << 9) | 0x7
+#define EC_WORD_EGG (EC_GROUP_TRAINER << 9) | 0x8
+#define EC_WORD_LINK (EC_GROUP_TRAINER << 9) | 0x9
+#define EC_WORD_SP_ABILITY (EC_GROUP_TRAINER << 9) | 0xa
+#define EC_WORD_TRAINER (EC_GROUP_TRAINER << 9) | 0xb
+#define EC_WORD_VERSION (EC_GROUP_TRAINER << 9) | 0xc
+#define EC_WORD_POKENAV (EC_GROUP_TRAINER << 9) | 0xd
+#define EC_WORD_POKEMON (EC_GROUP_TRAINER << 9) | 0xe
+#define EC_WORD_GET (EC_GROUP_TRAINER << 9) | 0xf
+#define EC_WORD_POKEDEX (EC_GROUP_TRAINER << 9) | 0x10
+#define EC_WORD_RUBY (EC_GROUP_TRAINER << 9) | 0x11
+#define EC_WORD_LEVEL (EC_GROUP_TRAINER << 9) | 0x12
+#define EC_WORD_RED (EC_GROUP_TRAINER << 9) | 0x13
+#define EC_WORD_GREEN (EC_GROUP_TRAINER << 9) | 0x14
+#define EC_WORD_BAG (EC_GROUP_TRAINER << 9) | 0x15
+#define EC_WORD_FLAME (EC_GROUP_TRAINER << 9) | 0x16
+#define EC_WORD_GOLD (EC_GROUP_TRAINER << 9) | 0x17
+#define EC_WORD_LEAF (EC_GROUP_TRAINER << 9) | 0x18
+#define EC_WORD_SILVER (EC_GROUP_TRAINER << 9) | 0x19
+#define EC_WORD_EMERALD (EC_GROUP_TRAINER << 9) | 0x1a
+
+// STATUS
+#define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0
+#define EC_WORD_STENCH (EC_GROUP_STATUS << 9) | 0x1
+#define EC_WORD_THICK_FAT (EC_GROUP_STATUS << 9) | 0x2
+#define EC_WORD_RAIN_DISH (EC_GROUP_STATUS << 9) | 0x3
+#define EC_WORD_DRIZZLE (EC_GROUP_STATUS << 9) | 0x4
+#define EC_WORD_ARENA_TRAP (EC_GROUP_STATUS << 9) | 0x5
+#define EC_WORD_INTIMIDATE (EC_GROUP_STATUS << 9) | 0x6
+#define EC_WORD_ROCK_HEAD (EC_GROUP_STATUS << 9) | 0x7
+#define EC_WORD_COLOR (EC_GROUP_STATUS << 9) | 0x8
+#define EC_WORD_ALT_COLOR (EC_GROUP_STATUS << 9) | 0x9
+#define EC_WORD_ROCK (EC_GROUP_STATUS << 9) | 0xa
+#define EC_WORD_BEAUTIFUL (EC_GROUP_STATUS << 9) | 0xb
+#define EC_WORD_BEAUTY (EC_GROUP_STATUS << 9) | 0xc
+#define EC_WORD_AIR_LOCK (EC_GROUP_STATUS << 9) | 0xd
+#define EC_WORD_PSYCHIC (EC_GROUP_STATUS << 9) | 0xe
+#define EC_WORD_HYPER_CUTTER (EC_GROUP_STATUS << 9) | 0xf
+#define EC_WORD_FIGHTING (EC_GROUP_STATUS << 9) | 0x10
+#define EC_WORD_SHADOW_TAG (EC_GROUP_STATUS << 9) | 0x11
+#define EC_WORD_SMART (EC_GROUP_STATUS << 9) | 0x12
+#define EC_WORD_SMARTNESS (EC_GROUP_STATUS << 9) | 0x13
+#define EC_WORD_SPEED_BOOST (EC_GROUP_STATUS << 9) | 0x14
+#define EC_WORD_COOL (EC_GROUP_STATUS << 9) | 0x15
+#define EC_WORD_COOLNESS (EC_GROUP_STATUS << 9) | 0x16
+#define EC_WORD_BATTLE_ARMOR (EC_GROUP_STATUS << 9) | 0x17
+#define EC_WORD_CUTE (EC_GROUP_STATUS << 9) | 0x18
+#define EC_WORD_CUTENESS (EC_GROUP_STATUS << 9) | 0x19
+#define EC_WORD_STURDY (EC_GROUP_STATUS << 9) | 0x1a
+#define EC_WORD_SUCTION_CUPS (EC_GROUP_STATUS << 9) | 0x1b
+#define EC_WORD_GRASS (EC_GROUP_STATUS << 9) | 0x1c
+#define EC_WORD_CLEAR_BODY (EC_GROUP_STATUS << 9) | 0x1d
+#define EC_WORD_TORRENT (EC_GROUP_STATUS << 9) | 0x1e
+#define EC_WORD_GHOST (EC_GROUP_STATUS << 9) | 0x1f
+#define EC_WORD_ICE (EC_GROUP_STATUS << 9) | 0x20
+#define EC_WORD_GUTS (EC_GROUP_STATUS << 9) | 0x21
+#define EC_WORD_ROUGH_SKIN (EC_GROUP_STATUS << 9) | 0x22
+#define EC_WORD_SHELL_ARMOR (EC_GROUP_STATUS << 9) | 0x23
+#define EC_WORD_NATURAL_CURE (EC_GROUP_STATUS << 9) | 0x24
+#define EC_WORD_DAMP (EC_GROUP_STATUS << 9) | 0x25
+#define EC_WORD_GROUND (EC_GROUP_STATUS << 9) | 0x26
+#define EC_WORD_LIMBER (EC_GROUP_STATUS << 9) | 0x27
+#define EC_WORD_MAGNET_PULL (EC_GROUP_STATUS << 9) | 0x28
+#define EC_WORD_WHITE_SMOKE (EC_GROUP_STATUS << 9) | 0x29
+#define EC_WORD_SYNCHRONIZE (EC_GROUP_STATUS << 9) | 0x2a
+#define EC_WORD_OVERGROW (EC_GROUP_STATUS << 9) | 0x2b
+#define EC_WORD_SWIFT_SWIM (EC_GROUP_STATUS << 9) | 0x2c
+#define EC_WORD_SAND_STREAM (EC_GROUP_STATUS << 9) | 0x2d
+#define EC_WORD_SAND_VEIL (EC_GROUP_STATUS << 9) | 0x2e
+#define EC_WORD_KEEN_EYE (EC_GROUP_STATUS << 9) | 0x2f
+#define EC_WORD_INNER_FOCUS (EC_GROUP_STATUS << 9) | 0x30
+#define EC_WORD_STATIC (EC_GROUP_STATUS << 9) | 0x31
+#define EC_WORD_TYPE (EC_GROUP_STATUS << 9) | 0x32
+#define EC_WORD_TOUGH (EC_GROUP_STATUS << 9) | 0x33
+#define EC_WORD_TOUGHNESS (EC_GROUP_STATUS << 9) | 0x34
+#define EC_WORD_SHED_SKIN (EC_GROUP_STATUS << 9) | 0x35
+#define EC_WORD_HUGE_POWER (EC_GROUP_STATUS << 9) | 0x36
+#define EC_WORD_VOLT_ABSORB (EC_GROUP_STATUS << 9) | 0x37
+#define EC_WORD_WATER_ABSORB (EC_GROUP_STATUS << 9) | 0x38
+#define EC_WORD_ELECTRIC (EC_GROUP_STATUS << 9) | 0x39
+#define EC_WORD_FORECAST (EC_GROUP_STATUS << 9) | 0x3a
+#define EC_WORD_SERENE_GRACE (EC_GROUP_STATUS << 9) | 0x3b
+#define EC_WORD_POISON (EC_GROUP_STATUS << 9) | 0x3c
+#define EC_WORD_POISON_POINT (EC_GROUP_STATUS << 9) | 0x3d
+#define EC_WORD_DRAGON (EC_GROUP_STATUS << 9) | 0x3e
+#define EC_WORD_TRACE (EC_GROUP_STATUS << 9) | 0x3f
+#define EC_WORD_OBLIVIOUS (EC_GROUP_STATUS << 9) | 0x40
+#define EC_WORD_TRUANT (EC_GROUP_STATUS << 9) | 0x41
+#define EC_WORD_RUN_AWAY (EC_GROUP_STATUS << 9) | 0x42
+#define EC_WORD_STICKY_HOLD (EC_GROUP_STATUS << 9) | 0x43
+#define EC_WORD_CLOUD_NINE (EC_GROUP_STATUS << 9) | 0x44
+#define EC_WORD_NORMAL (EC_GROUP_STATUS << 9) | 0x45
+#define EC_WORD_STEEL (EC_GROUP_STATUS << 9) | 0x46
+#define EC_WORD_ILLUMINATE (EC_GROUP_STATUS << 9) | 0x47
+#define EC_WORD_EARLY_BIRD (EC_GROUP_STATUS << 9) | 0x48
+#define EC_WORD_HUSTLE (EC_GROUP_STATUS << 9) | 0x49
+#define EC_WORD_SHINE (EC_GROUP_STATUS << 9) | 0x4a
+#define EC_WORD_FLYING (EC_GROUP_STATUS << 9) | 0x4b
+#define EC_WORD_DROUGHT (EC_GROUP_STATUS << 9) | 0x4c
+#define EC_WORD_LIGHTNINGROD (EC_GROUP_STATUS << 9) | 0x4d
+#define EC_WORD_COMPOUNDEYES (EC_GROUP_STATUS << 9) | 0x4e
+#define EC_WORD_MARVEL_SCALE (EC_GROUP_STATUS << 9) | 0x4f
+#define EC_WORD_WONDER_GUARD (EC_GROUP_STATUS << 9) | 0x50
+#define EC_WORD_INSOMNIA (EC_GROUP_STATUS << 9) | 0x51
+#define EC_WORD_LEVITATE (EC_GROUP_STATUS << 9) | 0x52
+#define EC_WORD_PLUS (EC_GROUP_STATUS << 9) | 0x53
+#define EC_WORD_PRESSURE (EC_GROUP_STATUS << 9) | 0x54
+#define EC_WORD_LIQUID_OOZE (EC_GROUP_STATUS << 9) | 0x55
+#define EC_WORD_COLOR_CHANGE (EC_GROUP_STATUS << 9) | 0x56
+#define EC_WORD_SOUNDPROOF (EC_GROUP_STATUS << 9) | 0x57
+#define EC_WORD_EFFECT_SPORE (EC_GROUP_STATUS << 9) | 0x58
+#define EC_WORD_PKRS (EC_GROUP_STATUS << 9) | 0x59
+#define EC_WORD_FIRE (EC_GROUP_STATUS << 9) | 0x5a
+#define EC_WORD_FLAME_BODY (EC_GROUP_STATUS << 9) | 0x5b
+#define EC_WORD_MINUS (EC_GROUP_STATUS << 9) | 0x5c
+#define EC_WORD_OWN_TEMPO (EC_GROUP_STATUS << 9) | 0x5d
+#define EC_WORD_MAGMA_ARMOR (EC_GROUP_STATUS << 9) | 0x5e
+#define EC_WORD_WATER (EC_GROUP_STATUS << 9) | 0x5f
+#define EC_WORD_WATER_VEIL (EC_GROUP_STATUS << 9) | 0x60
+#define EC_WORD_BUG (EC_GROUP_STATUS << 9) | 0x61
+#define EC_WORD_SWARM (EC_GROUP_STATUS << 9) | 0x62
+#define EC_WORD_CUTE_CHARM (EC_GROUP_STATUS << 9) | 0x63
+#define EC_WORD_IMMUNITY (EC_GROUP_STATUS << 9) | 0x64
+#define EC_WORD_BLAZE (EC_GROUP_STATUS << 9) | 0x65
+#define EC_WORD_PICKUP (EC_GROUP_STATUS << 9) | 0x66
+#define EC_WORD_PATTERN (EC_GROUP_STATUS << 9) | 0x67
+#define EC_WORD_FLASH_FIRE (EC_GROUP_STATUS << 9) | 0x68
+#define EC_WORD_VITAL_SPIRIT (EC_GROUP_STATUS << 9) | 0x69
+#define EC_WORD_CHLOROPHYLL (EC_GROUP_STATUS << 9) | 0x6a
+#define EC_WORD_PURE_POWER (EC_GROUP_STATUS << 9) | 0x6b
+#define EC_WORD_SHIELD_DUST (EC_GROUP_STATUS << 9) | 0x6c
+
+// BATTLE
+#define EC_WORD_MATCH_UP (EC_GROUP_BATTLE << 9) | 0x0
+#define EC_WORD_GO (EC_GROUP_BATTLE << 9) | 0x1
+#define EC_WORD_NO_1 (EC_GROUP_BATTLE << 9) | 0x2
+#define EC_WORD_DECIDE (EC_GROUP_BATTLE << 9) | 0x3
+#define EC_WORD_LET_ME_WIN (EC_GROUP_BATTLE << 9) | 0x4
+#define EC_WORD_WINS (EC_GROUP_BATTLE << 9) | 0x5
+#define EC_WORD_WIN (EC_GROUP_BATTLE << 9) | 0x6
+#define EC_WORD_WON (EC_GROUP_BATTLE << 9) | 0x7
+#define EC_WORD_IF_I_WIN (EC_GROUP_BATTLE << 9) | 0x8
+#define EC_WORD_WHEN_I_WIN (EC_GROUP_BATTLE << 9) | 0x9
+#define EC_WORD_CAN_T_WIN (EC_GROUP_BATTLE << 9) | 0xa
+#define EC_WORD_CAN_WIN (EC_GROUP_BATTLE << 9) | 0xb
+#define EC_WORD_NO_MATCH (EC_GROUP_BATTLE << 9) | 0xc
+#define EC_WORD_SPIRIT (EC_GROUP_BATTLE << 9) | 0xd
+#define EC_WORD_DECIDED (EC_GROUP_BATTLE << 9) | 0xe
+#define EC_WORD_TRUMP_CARD (EC_GROUP_BATTLE << 9) | 0xf
+#define EC_WORD_TAKE_THAT (EC_GROUP_BATTLE << 9) | 0x10
+#define EC_WORD_COME_ON (EC_GROUP_BATTLE << 9) | 0x11
+#define EC_WORD_ATTACK (EC_GROUP_BATTLE << 9) | 0x12
+#define EC_WORD_SURRENDER (EC_GROUP_BATTLE << 9) | 0x13
+#define EC_WORD_GUTSY (EC_GROUP_BATTLE << 9) | 0x14
+#define EC_WORD_TALENT (EC_GROUP_BATTLE << 9) | 0x15
+#define EC_WORD_STRATEGY (EC_GROUP_BATTLE << 9) | 0x16
+#define EC_WORD_SMITE (EC_GROUP_BATTLE << 9) | 0x17
+#define EC_WORD_MATCH (EC_GROUP_BATTLE << 9) | 0x18
+#define EC_WORD_VICTORY (EC_GROUP_BATTLE << 9) | 0x19
+#define EC_WORD_OFFENSIVE (EC_GROUP_BATTLE << 9) | 0x1a
+#define EC_WORD_SENSE (EC_GROUP_BATTLE << 9) | 0x1b
+#define EC_WORD_VERSUS (EC_GROUP_BATTLE << 9) | 0x1c
+#define EC_WORD_FIGHTS (EC_GROUP_BATTLE << 9) | 0x1d
+#define EC_WORD_POWER (EC_GROUP_BATTLE << 9) | 0x1e
+#define EC_WORD_CHALLENGE (EC_GROUP_BATTLE << 9) | 0x1f
+#define EC_WORD_STRONG (EC_GROUP_BATTLE << 9) | 0x20
+#define EC_WORD_TOO_STRONG (EC_GROUP_BATTLE << 9) | 0x21
+#define EC_WORD_GO_EASY (EC_GROUP_BATTLE << 9) | 0x22
+#define EC_WORD_FOE (EC_GROUP_BATTLE << 9) | 0x23
+#define EC_WORD_GENIUS (EC_GROUP_BATTLE << 9) | 0x24
+#define EC_WORD_LEGEND (EC_GROUP_BATTLE << 9) | 0x25
+#define EC_WORD_ESCAPE (EC_GROUP_BATTLE << 9) | 0x26
+#define EC_WORD_AIM (EC_GROUP_BATTLE << 9) | 0x27
+#define EC_WORD_BATTLE (EC_GROUP_BATTLE << 9) | 0x28
+#define EC_WORD_FIGHT (EC_GROUP_BATTLE << 9) | 0x29
+#define EC_WORD_RESUSCITATE (EC_GROUP_BATTLE << 9) | 0x2a
+#define EC_WORD_POINTS (EC_GROUP_BATTLE << 9) | 0x2b
+#define EC_WORD_SERIOUS (EC_GROUP_BATTLE << 9) | 0x2c
+#define EC_WORD_GIVE_UP (EC_GROUP_BATTLE << 9) | 0x2d
+#define EC_WORD_LOSS (EC_GROUP_BATTLE << 9) | 0x2e
+#define EC_WORD_IF_I_LOSE (EC_GROUP_BATTLE << 9) | 0x2f
+#define EC_WORD_LOST (EC_GROUP_BATTLE << 9) | 0x30
+#define EC_WORD_LOSE (EC_GROUP_BATTLE << 9) | 0x31
+#define EC_WORD_GUARD (EC_GROUP_BATTLE << 9) | 0x32
+#define EC_WORD_PARTNER (EC_GROUP_BATTLE << 9) | 0x33
+#define EC_WORD_REJECT (EC_GROUP_BATTLE << 9) | 0x34
+#define EC_WORD_ACCEPT (EC_GROUP_BATTLE << 9) | 0x35
+#define EC_WORD_INVINCIBLE (EC_GROUP_BATTLE << 9) | 0x36
+#define EC_WORD_RECEIVED (EC_GROUP_BATTLE << 9) | 0x37
+#define EC_WORD_EASY (EC_GROUP_BATTLE << 9) | 0x38
+#define EC_WORD_WEAK (EC_GROUP_BATTLE << 9) | 0x39
+#define EC_WORD_TOO_WEAK (EC_GROUP_BATTLE << 9) | 0x3a
+#define EC_WORD_PUSHOVER (EC_GROUP_BATTLE << 9) | 0x3b
+#define EC_WORD_LEADER (EC_GROUP_BATTLE << 9) | 0x3c
+#define EC_WORD_RULE (EC_GROUP_BATTLE << 9) | 0x3d
+#define EC_WORD_MOVE (EC_GROUP_BATTLE << 9) | 0x3e
+
+// GREETINGS
+#define EC_WORD_THANKS (EC_GROUP_GREETINGS << 9) | 0x0
+#define EC_WORD_YES (EC_GROUP_GREETINGS << 9) | 0x1
+#define EC_WORD_HERE_GOES (EC_GROUP_GREETINGS << 9) | 0x2
+#define EC_WORD_HERE_I_COME (EC_GROUP_GREETINGS << 9) | 0x3
+#define EC_WORD_HERE_IT_IS (EC_GROUP_GREETINGS << 9) | 0x4
+#define EC_WORD_YEAH (EC_GROUP_GREETINGS << 9) | 0x5
+#define EC_WORD_WELCOME (EC_GROUP_GREETINGS << 9) | 0x6
+#define EC_WORD_OI (EC_GROUP_GREETINGS << 9) | 0x7
+#define EC_WORD_HOW_DO (EC_GROUP_GREETINGS << 9) | 0x8
+#define EC_WORD_CONGRATS (EC_GROUP_GREETINGS << 9) | 0x9
+#define EC_WORD_GIVE_ME (EC_GROUP_GREETINGS << 9) | 0xa
+#define EC_WORD_SORRY (EC_GROUP_GREETINGS << 9) | 0xb
+#define EC_WORD_APOLOGIZE (EC_GROUP_GREETINGS << 9) | 0xc
+#define EC_WORD_FORGIVE (EC_GROUP_GREETINGS << 9) | 0xd
+#define EC_WORD_HEY_THERE (EC_GROUP_GREETINGS << 9) | 0xe
+#define EC_WORD_HELLO (EC_GROUP_GREETINGS << 9) | 0xf
+#define EC_WORD_GOOD_BYE (EC_GROUP_GREETINGS << 9) | 0x10
+#define EC_WORD_THANK_YOU (EC_GROUP_GREETINGS << 9) | 0x11
+#define EC_WORD_I_VE_ARRIVED (EC_GROUP_GREETINGS << 9) | 0x12
+#define EC_WORD_PARDON (EC_GROUP_GREETINGS << 9) | 0x13
+#define EC_WORD_EXCUSE (EC_GROUP_GREETINGS << 9) | 0x14
+#define EC_WORD_SEE_YA (EC_GROUP_GREETINGS << 9) | 0x15
+#define EC_WORD_EXCUSE_ME (EC_GROUP_GREETINGS << 9) | 0x16
+#define EC_WORD_WELL_THEN (EC_GROUP_GREETINGS << 9) | 0x17
+#define EC_WORD_GO_AHEAD (EC_GROUP_GREETINGS << 9) | 0x18
+#define EC_WORD_APPRECIATE (EC_GROUP_GREETINGS << 9) | 0x19
+#define EC_WORD_HEY_QUES (EC_GROUP_GREETINGS << 9) | 0x1a
+#define EC_WORD_WHAT_S_UP_QUES (EC_GROUP_GREETINGS << 9) | 0x1b
+#define EC_WORD_HUH_QUES (EC_GROUP_GREETINGS << 9) | 0x1c
+#define EC_WORD_NO (EC_GROUP_GREETINGS << 9) | 0x1d
+#define EC_WORD_HI (EC_GROUP_GREETINGS << 9) | 0x1e
+#define EC_WORD_YEAH_YEAH (EC_GROUP_GREETINGS << 9) | 0x1f
+#define EC_WORD_BYE_BYE (EC_GROUP_GREETINGS << 9) | 0x20
+#define EC_WORD_MEET_YOU (EC_GROUP_GREETINGS << 9) | 0x21
+#define EC_WORD_HEY (EC_GROUP_GREETINGS << 9) | 0x22
+#define EC_WORD_SMELL (EC_GROUP_GREETINGS << 9) | 0x23
+#define EC_WORD_LISTENING (EC_GROUP_GREETINGS << 9) | 0x24
+#define EC_WORD_HOO_HAH (EC_GROUP_GREETINGS << 9) | 0x25
+#define EC_WORD_YAHOO (EC_GROUP_GREETINGS << 9) | 0x26
+#define EC_WORD_YO (EC_GROUP_GREETINGS << 9) | 0x27
+#define EC_WORD_COME_OVER (EC_GROUP_GREETINGS << 9) | 0x28
+#define EC_WORD_COUNT_ON (EC_GROUP_GREETINGS << 9) | 0x29
+
+// PEOPLE
+#define EC_WORD_OPPONENT (EC_GROUP_PEOPLE << 9) | 0x0
+#define EC_WORD_I (EC_GROUP_PEOPLE << 9) | 0x1
+#define EC_WORD_YOU (EC_GROUP_PEOPLE << 9) | 0x2
+#define EC_WORD_YOURS (EC_GROUP_PEOPLE << 9) | 0x3
+#define EC_WORD_SON (EC_GROUP_PEOPLE << 9) | 0x4
+#define EC_WORD_YOUR (EC_GROUP_PEOPLE << 9) | 0x5
+#define EC_WORD_YOU_RE (EC_GROUP_PEOPLE << 9) | 0x6
+#define EC_WORD_YOU_VE (EC_GROUP_PEOPLE << 9) | 0x7
+#define EC_WORD_MOTHER (EC_GROUP_PEOPLE << 9) | 0x8
+#define EC_WORD_GRANDFATHER (EC_GROUP_PEOPLE << 9) | 0x9
+#define EC_WORD_UNCLE (EC_GROUP_PEOPLE << 9) | 0xa
+#define EC_WORD_FATHER (EC_GROUP_PEOPLE << 9) | 0xb
+#define EC_WORD_BOY (EC_GROUP_PEOPLE << 9) | 0xc
+#define EC_WORD_ADULT (EC_GROUP_PEOPLE << 9) | 0xd
+#define EC_WORD_BROTHER (EC_GROUP_PEOPLE << 9) | 0xe
+#define EC_WORD_SISTER (EC_GROUP_PEOPLE << 9) | 0xf
+#define EC_WORD_GRANDMOTHER (EC_GROUP_PEOPLE << 9) | 0x10
+#define EC_WORD_AUNT (EC_GROUP_PEOPLE << 9) | 0x11
+#define EC_WORD_PARENT (EC_GROUP_PEOPLE << 9) | 0x12
+#define EC_WORD_MAN (EC_GROUP_PEOPLE << 9) | 0x13
+#define EC_WORD_ME (EC_GROUP_PEOPLE << 9) | 0x14
+#define EC_WORD_GIRL (EC_GROUP_PEOPLE << 9) | 0x15
+#define EC_WORD_BABE (EC_GROUP_PEOPLE << 9) | 0x16
+#define EC_WORD_FAMILY (EC_GROUP_PEOPLE << 9) | 0x17
+#define EC_WORD_HER (EC_GROUP_PEOPLE << 9) | 0x18
+#define EC_WORD_HIM (EC_GROUP_PEOPLE << 9) | 0x19
+#define EC_WORD_HE (EC_GROUP_PEOPLE << 9) | 0x1a
+#define EC_WORD_PLACE (EC_GROUP_PEOPLE << 9) | 0x1b
+#define EC_WORD_DAUGHTER (EC_GROUP_PEOPLE << 9) | 0x1c
+#define EC_WORD_HIS (EC_GROUP_PEOPLE << 9) | 0x1d
+#define EC_WORD_HE_S (EC_GROUP_PEOPLE << 9) | 0x1e
+#define EC_WORD_AREN_T (EC_GROUP_PEOPLE << 9) | 0x1f
+#define EC_WORD_SIBLINGS (EC_GROUP_PEOPLE << 9) | 0x20
+#define EC_WORD_KID (EC_GROUP_PEOPLE << 9) | 0x21
+#define EC_WORD_CHILDREN (EC_GROUP_PEOPLE << 9) | 0x22
+#define EC_WORD_MR (EC_GROUP_PEOPLE << 9) | 0x23
+#define EC_WORD_MRS (EC_GROUP_PEOPLE << 9) | 0x24
+#define EC_WORD_MYSELF (EC_GROUP_PEOPLE << 9) | 0x25
+#define EC_WORD_I_WAS (EC_GROUP_PEOPLE << 9) | 0x26
+#define EC_WORD_TO_ME (EC_GROUP_PEOPLE << 9) | 0x27
+#define EC_WORD_MY (EC_GROUP_PEOPLE << 9) | 0x28
+#define EC_WORD_I_AM (EC_GROUP_PEOPLE << 9) | 0x29
+#define EC_WORD_I_VE (EC_GROUP_PEOPLE << 9) | 0x2a
+#define EC_WORD_WHO (EC_GROUP_PEOPLE << 9) | 0x2b
+#define EC_WORD_SOMEONE (EC_GROUP_PEOPLE << 9) | 0x2c
+#define EC_WORD_WHO_WAS (EC_GROUP_PEOPLE << 9) | 0x2d
+#define EC_WORD_TO_WHOM (EC_GROUP_PEOPLE << 9) | 0x2e
+#define EC_WORD_WHOSE (EC_GROUP_PEOPLE << 9) | 0x2f
+#define EC_WORD_WHO_IS (EC_GROUP_PEOPLE << 9) | 0x30
+#define EC_WORD_IT_S (EC_GROUP_PEOPLE << 9) | 0x31
+#define EC_WORD_LADY (EC_GROUP_PEOPLE << 9) | 0x32
+#define EC_WORD_FRIEND (EC_GROUP_PEOPLE << 9) | 0x33
+#define EC_WORD_ALLY (EC_GROUP_PEOPLE << 9) | 0x34
+#define EC_WORD_PERSON (EC_GROUP_PEOPLE << 9) | 0x35
+#define EC_WORD_DUDE (EC_GROUP_PEOPLE << 9) | 0x36
+#define EC_WORD_THEY (EC_GROUP_PEOPLE << 9) | 0x37
+#define EC_WORD_THEY_WERE (EC_GROUP_PEOPLE << 9) | 0x38
+#define EC_WORD_TO_THEM (EC_GROUP_PEOPLE << 9) | 0x39
+#define EC_WORD_THEIR (EC_GROUP_PEOPLE << 9) | 0x3a
+#define EC_WORD_THEY_RE (EC_GROUP_PEOPLE << 9) | 0x3b
+#define EC_WORD_THEY_VE (EC_GROUP_PEOPLE << 9) | 0x3c
+#define EC_WORD_WE (EC_GROUP_PEOPLE << 9) | 0x3d
+#define EC_WORD_BEEN (EC_GROUP_PEOPLE << 9) | 0x3e
+#define EC_WORD_TO_US (EC_GROUP_PEOPLE << 9) | 0x3f
+#define EC_WORD_OUR (EC_GROUP_PEOPLE << 9) | 0x40
+#define EC_WORD_WE_RE (EC_GROUP_PEOPLE << 9) | 0x41
+#define EC_WORD_RIVAL (EC_GROUP_PEOPLE << 9) | 0x42
+#define EC_WORD_WE_VE (EC_GROUP_PEOPLE << 9) | 0x43
+#define EC_WORD_WOMAN (EC_GROUP_PEOPLE << 9) | 0x44
+#define EC_WORD_SHE (EC_GROUP_PEOPLE << 9) | 0x45
+#define EC_WORD_SHE_WAS (EC_GROUP_PEOPLE << 9) | 0x46
+#define EC_WORD_TO_HER (EC_GROUP_PEOPLE << 9) | 0x47
+#define EC_WORD_HERS (EC_GROUP_PEOPLE << 9) | 0x48
+#define EC_WORD_SHE_IS (EC_GROUP_PEOPLE << 9) | 0x49
+#define EC_WORD_SOME (EC_GROUP_PEOPLE << 9) | 0x4a
+
+// VOICES
+#define EC_WORD_EXCL (EC_GROUP_VOICES << 9) | 0x0
+#define EC_WORD_EXCL_EXCL (EC_GROUP_VOICES << 9) | 0x1
+#define EC_WORD_QUES_EXCL (EC_GROUP_VOICES << 9) | 0x2
+#define EC_WORD_QUES (EC_GROUP_VOICES << 9) | 0x3
+#define EC_WORD_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x4
+#define EC_WORD_ELLIPSIS_EXCL (EC_GROUP_VOICES << 9) | 0x5
+#define EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x6
+#define EC_WORD_DASH (EC_GROUP_VOICES << 9) | 0x7
+#define EC_WORD_DASH_DASH_DASH (EC_GROUP_VOICES << 9) | 0x8
+#define EC_WORD_UH_OH (EC_GROUP_VOICES << 9) | 0x9
+#define EC_WORD_WAAAH (EC_GROUP_VOICES << 9) | 0xa
+#define EC_WORD_AHAHA (EC_GROUP_VOICES << 9) | 0xb
+#define EC_WORD_OH_QUES (EC_GROUP_VOICES << 9) | 0xc
+#define EC_WORD_NOPE (EC_GROUP_VOICES << 9) | 0xd
+#define EC_WORD_URGH (EC_GROUP_VOICES << 9) | 0xe
+#define EC_WORD_HMM (EC_GROUP_VOICES << 9) | 0xf
+#define EC_WORD_WHOAH (EC_GROUP_VOICES << 9) | 0x10
+#define EC_WORD_WROOOAAR_EXCL (EC_GROUP_VOICES << 9) | 0x11
+#define EC_WORD_WOW (EC_GROUP_VOICES << 9) | 0x12
+#define EC_WORD_GIGGLE (EC_GROUP_VOICES << 9) | 0x13
+#define EC_WORD_SIGH (EC_GROUP_VOICES << 9) | 0x14
+#define EC_WORD_UNBELIEVABLE (EC_GROUP_VOICES << 9) | 0x15
+#define EC_WORD_CRIES (EC_GROUP_VOICES << 9) | 0x16
+#define EC_WORD_AGREE (EC_GROUP_VOICES << 9) | 0x17
+#define EC_WORD_EH_QUES (EC_GROUP_VOICES << 9) | 0x18
+#define EC_WORD_CRY (EC_GROUP_VOICES << 9) | 0x19
+#define EC_WORD_EHEHE (EC_GROUP_VOICES << 9) | 0x1a
+#define EC_WORD_OI_OI_OI (EC_GROUP_VOICES << 9) | 0x1b
+#define EC_WORD_OH_YEAH (EC_GROUP_VOICES << 9) | 0x1c
+#define EC_WORD_OH (EC_GROUP_VOICES << 9) | 0x1d
+#define EC_WORD_OOPS (EC_GROUP_VOICES << 9) | 0x1e
+#define EC_WORD_SHOCKED (EC_GROUP_VOICES << 9) | 0x1f
+#define EC_WORD_EEK (EC_GROUP_VOICES << 9) | 0x20
+#define EC_WORD_GRAAAH (EC_GROUP_VOICES << 9) | 0x21
+#define EC_WORD_GWAHAHAHA (EC_GROUP_VOICES << 9) | 0x22
+#define EC_WORD_WAY (EC_GROUP_VOICES << 9) | 0x23
+#define EC_WORD_TCH (EC_GROUP_VOICES << 9) | 0x24
+#define EC_WORD_HEHE (EC_GROUP_VOICES << 9) | 0x25
+#define EC_WORD_HAH (EC_GROUP_VOICES << 9) | 0x26
+#define EC_WORD_YUP (EC_GROUP_VOICES << 9) | 0x27
+#define EC_WORD_HAHAHA (EC_GROUP_VOICES << 9) | 0x28
+#define EC_WORD_AIYEEH (EC_GROUP_VOICES << 9) | 0x29
+#define EC_WORD_HIYAH (EC_GROUP_VOICES << 9) | 0x2a
+#define EC_WORD_FUFUFU (EC_GROUP_VOICES << 9) | 0x2b
+#define EC_WORD_LOL (EC_GROUP_VOICES << 9) | 0x2c
+#define EC_WORD_SNORT (EC_GROUP_VOICES << 9) | 0x2d
+#define EC_WORD_HUMPH (EC_GROUP_VOICES << 9) | 0x2e
+#define EC_WORD_HEHEHE (EC_GROUP_VOICES << 9) | 0x2f
+#define EC_WORD_HEH (EC_GROUP_VOICES << 9) | 0x30
+#define EC_WORD_HOHOHO (EC_GROUP_VOICES << 9) | 0x31
+#define EC_WORD_UH_HUH (EC_GROUP_VOICES << 9) | 0x32
+#define EC_WORD_OH_DEAR (EC_GROUP_VOICES << 9) | 0x33
+#define EC_WORD_ARRGH (EC_GROUP_VOICES << 9) | 0x34
+#define EC_WORD_MUFUFU (EC_GROUP_VOICES << 9) | 0x35
+#define EC_WORD_MMM (EC_GROUP_VOICES << 9) | 0x36
+#define EC_WORD_OH_KAY (EC_GROUP_VOICES << 9) | 0x37
+#define EC_WORD_OKAY (EC_GROUP_VOICES << 9) | 0x38
+#define EC_WORD_LALALA (EC_GROUP_VOICES << 9) | 0x39
+#define EC_WORD_YAY (EC_GROUP_VOICES << 9) | 0x3a
+#define EC_WORD_AWW (EC_GROUP_VOICES << 9) | 0x3b
+#define EC_WORD_WOWEE (EC_GROUP_VOICES << 9) | 0x3c
+#define EC_WORD_GWAH (EC_GROUP_VOICES << 9) | 0x3d
+#define EC_WORD_WAHAHAHA (EC_GROUP_VOICES << 9) | 0x3e
+
+// SPEECH
+#define EC_WORD_LISTEN (EC_GROUP_SPEECH << 9) | 0x0
+#define EC_WORD_NOT_VERY (EC_GROUP_SPEECH << 9) | 0x1
+#define EC_WORD_MEAN (EC_GROUP_SPEECH << 9) | 0x2
+#define EC_WORD_LIE (EC_GROUP_SPEECH << 9) | 0x3
+#define EC_WORD_LAY (EC_GROUP_SPEECH << 9) | 0x4
+#define EC_WORD_RECOMMEND (EC_GROUP_SPEECH << 9) | 0x5
+#define EC_WORD_NITWIT (EC_GROUP_SPEECH << 9) | 0x6
+#define EC_WORD_QUITE (EC_GROUP_SPEECH << 9) | 0x7
+#define EC_WORD_FROM (EC_GROUP_SPEECH << 9) | 0x8
+#define EC_WORD_FEELING (EC_GROUP_SPEECH << 9) | 0x9
+#define EC_WORD_BUT (EC_GROUP_SPEECH << 9) | 0xa
+#define EC_WORD_HOWEVER (EC_GROUP_SPEECH << 9) | 0xb
+#define EC_WORD_CASE (EC_GROUP_SPEECH << 9) | 0xc
+#define EC_WORD_THE (EC_GROUP_SPEECH << 9) | 0xd
+#define EC_WORD_MISS (EC_GROUP_SPEECH << 9) | 0xe
+#define EC_WORD_HOW (EC_GROUP_SPEECH << 9) | 0xf
+#define EC_WORD_HIT (EC_GROUP_SPEECH << 9) | 0x10
+#define EC_WORD_ENOUGH (EC_GROUP_SPEECH << 9) | 0x11
+#define EC_WORD_A_LOT (EC_GROUP_SPEECH << 9) | 0x12
+#define EC_WORD_A_LITTLE (EC_GROUP_SPEECH << 9) | 0x13
+#define EC_WORD_ABSOLUTELY (EC_GROUP_SPEECH << 9) | 0x14
+#define EC_WORD_AND (EC_GROUP_SPEECH << 9) | 0x15
+#define EC_WORD_ONLY (EC_GROUP_SPEECH << 9) | 0x16
+#define EC_WORD_AROUND (EC_GROUP_SPEECH << 9) | 0x17
+#define EC_WORD_PROBABLY (EC_GROUP_SPEECH << 9) | 0x18
+#define EC_WORD_IF (EC_GROUP_SPEECH << 9) | 0x19
+#define EC_WORD_VERY (EC_GROUP_SPEECH << 9) | 0x1a
+#define EC_WORD_A_TINY_BIT (EC_GROUP_SPEECH << 9) | 0x1b
+#define EC_WORD_WILD (EC_GROUP_SPEECH << 9) | 0x1c
+#define EC_WORD_THAT_S (EC_GROUP_SPEECH << 9) | 0x1d
+#define EC_WORD_JUST (EC_GROUP_SPEECH << 9) | 0x1e
+#define EC_WORD_EVEN_SO (EC_GROUP_SPEECH << 9) | 0x1f
+#define EC_WORD_MUST_BE (EC_GROUP_SPEECH << 9) | 0x20
+#define EC_WORD_NATURALLY (EC_GROUP_SPEECH << 9) | 0x21
+#define EC_WORD_FOR_NOW (EC_GROUP_SPEECH << 9) | 0x22
+#define EC_WORD_UNDERSTOOD (EC_GROUP_SPEECH << 9) | 0x23
+#define EC_WORD_JOKING (EC_GROUP_SPEECH << 9) | 0x24
+#define EC_WORD_READY (EC_GROUP_SPEECH << 9) | 0x25
+#define EC_WORD_SOMETHING (EC_GROUP_SPEECH << 9) | 0x26
+#define EC_WORD_SOMEHOW (EC_GROUP_SPEECH << 9) | 0x27
+#define EC_WORD_ALTHOUGH (EC_GROUP_SPEECH << 9) | 0x28
+#define EC_WORD_ALSO (EC_GROUP_SPEECH << 9) | 0x29
+#define EC_WORD_PERFECT (EC_GROUP_SPEECH << 9) | 0x2a
+#define EC_WORD_AS_MUCH_AS (EC_GROUP_SPEECH << 9) | 0x2b
+#define EC_WORD_REALLY (EC_GROUP_SPEECH << 9) | 0x2c
+#define EC_WORD_TRULY (EC_GROUP_SPEECH << 9) | 0x2d
+#define EC_WORD_SERIOUSLY (EC_GROUP_SPEECH << 9) | 0x2e
+#define EC_WORD_TOTALLY (EC_GROUP_SPEECH << 9) | 0x2f
+#define EC_WORD_UNTIL (EC_GROUP_SPEECH << 9) | 0x30
+#define EC_WORD_AS_IF (EC_GROUP_SPEECH << 9) | 0x31
+#define EC_WORD_MOOD (EC_GROUP_SPEECH << 9) | 0x32
+#define EC_WORD_RATHER (EC_GROUP_SPEECH << 9) | 0x33
+#define EC_WORD_AWFULLY (EC_GROUP_SPEECH << 9) | 0x34
+#define EC_WORD_MODE (EC_GROUP_SPEECH << 9) | 0x35
+#define EC_WORD_MORE (EC_GROUP_SPEECH << 9) | 0x36
+#define EC_WORD_TOO_LATE (EC_GROUP_SPEECH << 9) | 0x37
+#define EC_WORD_FINALLY (EC_GROUP_SPEECH << 9) | 0x38
+#define EC_WORD_ANY (EC_GROUP_SPEECH << 9) | 0x39
+#define EC_WORD_INSTEAD (EC_GROUP_SPEECH << 9) | 0x3a
+#define EC_WORD_FANTASTIC (EC_GROUP_SPEECH << 9) | 0x3b
+
+// ENDINGS
+#define EC_WORD_WILL (EC_GROUP_ENDINGS << 9) | 0x0
+#define EC_WORD_WILL_BE_HERE (EC_GROUP_ENDINGS << 9) | 0x1
+#define EC_WORD_OR (EC_GROUP_ENDINGS << 9) | 0x2
+#define EC_WORD_TIMES (EC_GROUP_ENDINGS << 9) | 0x3
+#define EC_WORD_WONDER (EC_GROUP_ENDINGS << 9) | 0x4
+#define EC_WORD_IS_IT_QUES (EC_GROUP_ENDINGS << 9) | 0x5
+#define EC_WORD_BE (EC_GROUP_ENDINGS << 9) | 0x6
+#define EC_WORD_GIMME (EC_GROUP_ENDINGS << 9) | 0x7
+#define EC_WORD_COULD (EC_GROUP_ENDINGS << 9) | 0x8
+#define EC_WORD_LIKELY_TO (EC_GROUP_ENDINGS << 9) | 0x9
+#define EC_WORD_WOULD (EC_GROUP_ENDINGS << 9) | 0xa
+#define EC_WORD_IS (EC_GROUP_ENDINGS << 9) | 0xb
+#define EC_WORD_ISN_T_IT_QUES (EC_GROUP_ENDINGS << 9) | 0xc
+#define EC_WORD_LET_S (EC_GROUP_ENDINGS << 9) | 0xd
+#define EC_WORD_OTHER (EC_GROUP_ENDINGS << 9) | 0xe
+#define EC_WORD_ARE (EC_GROUP_ENDINGS << 9) | 0xf
+#define EC_WORD_WAS (EC_GROUP_ENDINGS << 9) | 0x10
+#define EC_WORD_WERE (EC_GROUP_ENDINGS << 9) | 0x11
+#define EC_WORD_THOSE (EC_GROUP_ENDINGS << 9) | 0x12
+#define EC_WORD_ISN_T (EC_GROUP_ENDINGS << 9) | 0x13
+#define EC_WORD_WON_T (EC_GROUP_ENDINGS << 9) | 0x14
+#define EC_WORD_CAN_T (EC_GROUP_ENDINGS << 9) | 0x15
+#define EC_WORD_CAN (EC_GROUP_ENDINGS << 9) | 0x16
+#define EC_WORD_DON_T (EC_GROUP_ENDINGS << 9) | 0x17
+#define EC_WORD_DO (EC_GROUP_ENDINGS << 9) | 0x18
+#define EC_WORD_DOES (EC_GROUP_ENDINGS << 9) | 0x19
+#define EC_WORD_WHOM (EC_GROUP_ENDINGS << 9) | 0x1a
+#define EC_WORD_WHICH (EC_GROUP_ENDINGS << 9) | 0x1b
+#define EC_WORD_WASN_T (EC_GROUP_ENDINGS << 9) | 0x1c
+#define EC_WORD_WEREN_T (EC_GROUP_ENDINGS << 9) | 0x1d
+#define EC_WORD_HAVE (EC_GROUP_ENDINGS << 9) | 0x1e
+#define EC_WORD_HAVEN_T (EC_GROUP_ENDINGS << 9) | 0x1f
+#define EC_WORD_A (EC_GROUP_ENDINGS << 9) | 0x20
+#define EC_WORD_AN (EC_GROUP_ENDINGS << 9) | 0x21
+#define EC_WORD_NOT (EC_GROUP_ENDINGS << 9) | 0x22
+#define EC_WORD_THERE (EC_GROUP_ENDINGS << 9) | 0x23
+#define EC_WORD_OK_QUES (EC_GROUP_ENDINGS << 9) | 0x24
+#define EC_WORD_SO (EC_GROUP_ENDINGS << 9) | 0x25
+#define EC_WORD_MAYBE (EC_GROUP_ENDINGS << 9) | 0x26
+#define EC_WORD_ABOUT (EC_GROUP_ENDINGS << 9) | 0x27
+#define EC_WORD_OVER (EC_GROUP_ENDINGS << 9) | 0x28
+#define EC_WORD_IT (EC_GROUP_ENDINGS << 9) | 0x29
+#define EC_WORD_ALL (EC_GROUP_ENDINGS << 9) | 0x2a
+#define EC_WORD_FOR (EC_GROUP_ENDINGS << 9) | 0x2b
+#define EC_WORD_ON (EC_GROUP_ENDINGS << 9) | 0x2c
+#define EC_WORD_OFF (EC_GROUP_ENDINGS << 9) | 0x2d
+#define EC_WORD_AS (EC_GROUP_ENDINGS << 9) | 0x2e
+#define EC_WORD_TO (EC_GROUP_ENDINGS << 9) | 0x2f
+#define EC_WORD_WITH (EC_GROUP_ENDINGS << 9) | 0x30
+#define EC_WORD_BETTER (EC_GROUP_ENDINGS << 9) | 0x31
+#define EC_WORD_EVER (EC_GROUP_ENDINGS << 9) | 0x32
+#define EC_WORD_SINCE (EC_GROUP_ENDINGS << 9) | 0x33
+#define EC_WORD_OF (EC_GROUP_ENDINGS << 9) | 0x34
+#define EC_WORD_BELONGS_TO (EC_GROUP_ENDINGS << 9) | 0x35
+#define EC_WORD_AT (EC_GROUP_ENDINGS << 9) | 0x36
+#define EC_WORD_IN (EC_GROUP_ENDINGS << 9) | 0x37
+#define EC_WORD_OUT (EC_GROUP_ENDINGS << 9) | 0x38
+#define EC_WORD_TOO (EC_GROUP_ENDINGS << 9) | 0x39
+#define EC_WORD_LIKE (EC_GROUP_ENDINGS << 9) | 0x3a
+#define EC_WORD_DID (EC_GROUP_ENDINGS << 9) | 0x3b
+#define EC_WORD_DIDN_T (EC_GROUP_ENDINGS << 9) | 0x3c
+#define EC_WORD_DOESN_T (EC_GROUP_ENDINGS << 9) | 0x3d
+#define EC_WORD_WITHOUT (EC_GROUP_ENDINGS << 9) | 0x3e
+#define EC_WORD_AFTER (EC_GROUP_ENDINGS << 9) | 0x3f
+#define EC_WORD_BEFORE (EC_GROUP_ENDINGS << 9) | 0x40
+#define EC_WORD_WHILE (EC_GROUP_ENDINGS << 9) | 0x41
+#define EC_WORD_THAN (EC_GROUP_ENDINGS << 9) | 0x42
+#define EC_WORD_ONCE (EC_GROUP_ENDINGS << 9) | 0x43
+#define EC_WORD_ANYWHERE (EC_GROUP_ENDINGS << 9) | 0x44
+
+// FEELINGS
+#define EC_WORD_MEET (EC_GROUP_FEELINGS << 9) | 0x0
+#define EC_WORD_PLAY (EC_GROUP_FEELINGS << 9) | 0x1
+#define EC_WORD_HURRIED (EC_GROUP_FEELINGS << 9) | 0x2
+#define EC_WORD_GOES (EC_GROUP_FEELINGS << 9) | 0x3
+#define EC_WORD_GIDDY (EC_GROUP_FEELINGS << 9) | 0x4
+#define EC_WORD_HAPPY (EC_GROUP_FEELINGS << 9) | 0x5
+#define EC_WORD_HAPPINESS (EC_GROUP_FEELINGS << 9) | 0x6
+#define EC_WORD_EXCITE (EC_GROUP_FEELINGS << 9) | 0x7
+#define EC_WORD_IMPORTANT (EC_GROUP_FEELINGS << 9) | 0x8
+#define EC_WORD_FUNNY (EC_GROUP_FEELINGS << 9) | 0x9
+#define EC_WORD_GOT (EC_GROUP_FEELINGS << 9) | 0xa
+#define EC_WORD_GO_HOME (EC_GROUP_FEELINGS << 9) | 0xb
+#define EC_WORD_DISAPPOINTED (EC_GROUP_FEELINGS << 9) | 0xc
+#define EC_WORD_DISAPPOINTS (EC_GROUP_FEELINGS << 9) | 0xd
+#define EC_WORD_SAD (EC_GROUP_FEELINGS << 9) | 0xe
+#define EC_WORD_TRY (EC_GROUP_FEELINGS << 9) | 0xf
+#define EC_WORD_TRIES (EC_GROUP_FEELINGS << 9) | 0x10
+#define EC_WORD_HEARS (EC_GROUP_FEELINGS << 9) | 0x11
+#define EC_WORD_THINK (EC_GROUP_FEELINGS << 9) | 0x12
+#define EC_WORD_HEAR (EC_GROUP_FEELINGS << 9) | 0x13
+#define EC_WORD_WANTS (EC_GROUP_FEELINGS << 9) | 0x14
+#define EC_WORD_MISHEARD (EC_GROUP_FEELINGS << 9) | 0x15
+#define EC_WORD_DISLIKE (EC_GROUP_FEELINGS << 9) | 0x16
+#define EC_WORD_ANGRY (EC_GROUP_FEELINGS << 9) | 0x17
+#define EC_WORD_ANGER (EC_GROUP_FEELINGS << 9) | 0x18
+#define EC_WORD_SCARY (EC_GROUP_FEELINGS << 9) | 0x19
+#define EC_WORD_LONESOME (EC_GROUP_FEELINGS << 9) | 0x1a
+#define EC_WORD_DISAPPOINT (EC_GROUP_FEELINGS << 9) | 0x1b
+#define EC_WORD_JOY (EC_GROUP_FEELINGS << 9) | 0x1c
+#define EC_WORD_GETS (EC_GROUP_FEELINGS << 9) | 0x1d
+#define EC_WORD_NEVER (EC_GROUP_FEELINGS << 9) | 0x1e
+#define EC_WORD_DARN (EC_GROUP_FEELINGS << 9) | 0x1f
+#define EC_WORD_DOWNCAST (EC_GROUP_FEELINGS << 9) | 0x20
+#define EC_WORD_INCREDIBLE (EC_GROUP_FEELINGS << 9) | 0x21
+#define EC_WORD_LIKES (EC_GROUP_FEELINGS << 9) | 0x22
+#define EC_WORD_DISLIKES (EC_GROUP_FEELINGS << 9) | 0x23
+#define EC_WORD_BORING (EC_GROUP_FEELINGS << 9) | 0x24
+#define EC_WORD_CARE (EC_GROUP_FEELINGS << 9) | 0x25
+#define EC_WORD_CARES (EC_GROUP_FEELINGS << 9) | 0x26
+#define EC_WORD_ALL_RIGHT (EC_GROUP_FEELINGS << 9) | 0x27
+#define EC_WORD_ADORE (EC_GROUP_FEELINGS << 9) | 0x28
+#define EC_WORD_DISASTER (EC_GROUP_FEELINGS << 9) | 0x29
+#define EC_WORD_ENJOY (EC_GROUP_FEELINGS << 9) | 0x2a
+#define EC_WORD_ENJOYS (EC_GROUP_FEELINGS << 9) | 0x2b
+#define EC_WORD_EAT (EC_GROUP_FEELINGS << 9) | 0x2c
+#define EC_WORD_LACKING (EC_GROUP_FEELINGS << 9) | 0x2d
+#define EC_WORD_BAD (EC_GROUP_FEELINGS << 9) | 0x2e
+#define EC_WORD_HARD (EC_GROUP_FEELINGS << 9) | 0x2f
+#define EC_WORD_TERRIBLE (EC_GROUP_FEELINGS << 9) | 0x30
+#define EC_WORD_SHOULD (EC_GROUP_FEELINGS << 9) | 0x31
+#define EC_WORD_NICE (EC_GROUP_FEELINGS << 9) | 0x32
+#define EC_WORD_DRINK (EC_GROUP_FEELINGS << 9) | 0x33
+#define EC_WORD_SURPRISE (EC_GROUP_FEELINGS << 9) | 0x34
+#define EC_WORD_FEAR (EC_GROUP_FEELINGS << 9) | 0x35
+#define EC_WORD_WANT (EC_GROUP_FEELINGS << 9) | 0x36
+#define EC_WORD_WAIT (EC_GROUP_FEELINGS << 9) | 0x37
+#define EC_WORD_SATISFIED (EC_GROUP_FEELINGS << 9) | 0x38
+#define EC_WORD_SEE (EC_GROUP_FEELINGS << 9) | 0x39
+#define EC_WORD_RARE (EC_GROUP_FEELINGS << 9) | 0x3a
+#define EC_WORD_NEGATIVE (EC_GROUP_FEELINGS << 9) | 0x3b
+#define EC_WORD_DONE (EC_GROUP_FEELINGS << 9) | 0x3c
+#define EC_WORD_DANGER (EC_GROUP_FEELINGS << 9) | 0x3d
+#define EC_WORD_DEFEATED (EC_GROUP_FEELINGS << 9) | 0x3e
+#define EC_WORD_BEAT (EC_GROUP_FEELINGS << 9) | 0x3f
+#define EC_WORD_GREAT (EC_GROUP_FEELINGS << 9) | 0x40
+#define EC_WORD_ROMANTIC (EC_GROUP_FEELINGS << 9) | 0x41
+#define EC_WORD_QUESTION (EC_GROUP_FEELINGS << 9) | 0x42
+#define EC_WORD_UNDERSTAND (EC_GROUP_FEELINGS << 9) | 0x43
+#define EC_WORD_UNDERSTANDS (EC_GROUP_FEELINGS << 9) | 0x44
+
+// CONDITIONS
+#define EC_WORD_HOT (EC_GROUP_CONDITIONS << 9) | 0x0
+#define EC_WORD_EXISTS (EC_GROUP_CONDITIONS << 9) | 0x1
+#define EC_WORD_EXCESS (EC_GROUP_CONDITIONS << 9) | 0x2
+#define EC_WORD_APPROVED (EC_GROUP_CONDITIONS << 9) | 0x3
+#define EC_WORD_HAS (EC_GROUP_CONDITIONS << 9) | 0x4
+#define EC_WORD_GOOD (EC_GROUP_CONDITIONS << 9) | 0x5
+#define EC_WORD_LESS (EC_GROUP_CONDITIONS << 9) | 0x6
+#define EC_WORD_MOMENTUM (EC_GROUP_CONDITIONS << 9) | 0x7
+#define EC_WORD_GOING (EC_GROUP_CONDITIONS << 9) | 0x8
+#define EC_WORD_WEIRD (EC_GROUP_CONDITIONS << 9) | 0x9
+#define EC_WORD_BUSY (EC_GROUP_CONDITIONS << 9) | 0xa
+#define EC_WORD_TOGETHER (EC_GROUP_CONDITIONS << 9) | 0xb
+#define EC_WORD_FULL (EC_GROUP_CONDITIONS << 9) | 0xc
+#define EC_WORD_ABSENT (EC_GROUP_CONDITIONS << 9) | 0xd
+#define EC_WORD_BEING (EC_GROUP_CONDITIONS << 9) | 0xe
+#define EC_WORD_NEED (EC_GROUP_CONDITIONS << 9) | 0xf
+#define EC_WORD_TASTY (EC_GROUP_CONDITIONS << 9) | 0x10
+#define EC_WORD_SKILLED (EC_GROUP_CONDITIONS << 9) | 0x11
+#define EC_WORD_NOISY (EC_GROUP_CONDITIONS << 9) | 0x12
+#define EC_WORD_BIG (EC_GROUP_CONDITIONS << 9) | 0x13
+#define EC_WORD_LATE (EC_GROUP_CONDITIONS << 9) | 0x14
+#define EC_WORD_CLOSE (EC_GROUP_CONDITIONS << 9) | 0x15
+#define EC_WORD_DOCILE (EC_GROUP_CONDITIONS << 9) | 0x16
+#define EC_WORD_AMUSING (EC_GROUP_CONDITIONS << 9) | 0x17
+#define EC_WORD_ENTERTAINING (EC_GROUP_CONDITIONS << 9) | 0x18
+#define EC_WORD_PERFECTION (EC_GROUP_CONDITIONS << 9) | 0x19
+#define EC_WORD_PRETTY (EC_GROUP_CONDITIONS << 9) | 0x1a
+#define EC_WORD_HEALTHY (EC_GROUP_CONDITIONS << 9) | 0x1b
+#define EC_WORD_EXCELLENT (EC_GROUP_CONDITIONS << 9) | 0x1c
+#define EC_WORD_UPSIDE_DOWN (EC_GROUP_CONDITIONS << 9) | 0x1d
+#define EC_WORD_COLD (EC_GROUP_CONDITIONS << 9) | 0x1e
+#define EC_WORD_REFRESHING (EC_GROUP_CONDITIONS << 9) | 0x1f
+#define EC_WORD_UNAVOIDABLE (EC_GROUP_CONDITIONS << 9) | 0x20
+#define EC_WORD_MUCH (EC_GROUP_CONDITIONS << 9) | 0x21
+#define EC_WORD_OVERWHELMING (EC_GROUP_CONDITIONS << 9) | 0x22
+#define EC_WORD_FABULOUS (EC_GROUP_CONDITIONS << 9) | 0x23
+#define EC_WORD_ELSE (EC_GROUP_CONDITIONS << 9) | 0x24
+#define EC_WORD_EXPENSIVE (EC_GROUP_CONDITIONS << 9) | 0x25
+#define EC_WORD_CORRECT (EC_GROUP_CONDITIONS << 9) | 0x26
+#define EC_WORD_IMPOSSIBLE (EC_GROUP_CONDITIONS << 9) | 0x27
+#define EC_WORD_SMALL (EC_GROUP_CONDITIONS << 9) | 0x28
+#define EC_WORD_DIFFERENT (EC_GROUP_CONDITIONS << 9) | 0x29
+#define EC_WORD_TIRED (EC_GROUP_CONDITIONS << 9) | 0x2a
+#define EC_WORD_SKILL (EC_GROUP_CONDITIONS << 9) | 0x2b
+#define EC_WORD_TOP (EC_GROUP_CONDITIONS << 9) | 0x2c
+#define EC_WORD_NON_STOP (EC_GROUP_CONDITIONS << 9) | 0x2d
+#define EC_WORD_PREPOSTEROUS (EC_GROUP_CONDITIONS << 9) | 0x2e
+#define EC_WORD_NONE (EC_GROUP_CONDITIONS << 9) | 0x2f
+#define EC_WORD_NOTHING (EC_GROUP_CONDITIONS << 9) | 0x30
+#define EC_WORD_NATURAL (EC_GROUP_CONDITIONS << 9) | 0x31
+#define EC_WORD_BECOMES (EC_GROUP_CONDITIONS << 9) | 0x32
+#define EC_WORD_LUKEWARM (EC_GROUP_CONDITIONS << 9) | 0x33
+#define EC_WORD_FAST (EC_GROUP_CONDITIONS << 9) | 0x34
+#define EC_WORD_LOW (EC_GROUP_CONDITIONS << 9) | 0x35
+#define EC_WORD_AWFUL (EC_GROUP_CONDITIONS << 9) | 0x36
+#define EC_WORD_ALONE (EC_GROUP_CONDITIONS << 9) | 0x37
+#define EC_WORD_BORED (EC_GROUP_CONDITIONS << 9) | 0x38
+#define EC_WORD_SECRET (EC_GROUP_CONDITIONS << 9) | 0x39
+#define EC_WORD_MYSTERY (EC_GROUP_CONDITIONS << 9) | 0x3a
+#define EC_WORD_LACKS (EC_GROUP_CONDITIONS << 9) | 0x3b
+#define EC_WORD_BEST (EC_GROUP_CONDITIONS << 9) | 0x3c
+#define EC_WORD_LOUSY (EC_GROUP_CONDITIONS << 9) | 0x3d
+#define EC_WORD_MISTAKE (EC_GROUP_CONDITIONS << 9) | 0x3e
+#define EC_WORD_KIND (EC_GROUP_CONDITIONS << 9) | 0x3f
+#define EC_WORD_WELL (EC_GROUP_CONDITIONS << 9) | 0x40
+#define EC_WORD_WEAKENED (EC_GROUP_CONDITIONS << 9) | 0x41
+#define EC_WORD_SIMPLE (EC_GROUP_CONDITIONS << 9) | 0x42
+#define EC_WORD_SEEMS (EC_GROUP_CONDITIONS << 9) | 0x43
+#define EC_WORD_BADLY (EC_GROUP_CONDITIONS << 9) | 0x44
+
+// ACTIONS
+#define EC_WORD_MEETS (EC_GROUP_ACTIONS << 9) | 0x0
+#define EC_WORD_CONCEDE (EC_GROUP_ACTIONS << 9) | 0x1
+#define EC_WORD_GIVE (EC_GROUP_ACTIONS << 9) | 0x2
+#define EC_WORD_GIVES (EC_GROUP_ACTIONS << 9) | 0x3
+#define EC_WORD_PLAYED (EC_GROUP_ACTIONS << 9) | 0x4
+#define EC_WORD_PLAYS (EC_GROUP_ACTIONS << 9) | 0x5
+#define EC_WORD_COLLECT (EC_GROUP_ACTIONS << 9) | 0x6
+#define EC_WORD_WALKING (EC_GROUP_ACTIONS << 9) | 0x7
+#define EC_WORD_WALKS (EC_GROUP_ACTIONS << 9) | 0x8
+#define EC_WORD_SAYS (EC_GROUP_ACTIONS << 9) | 0x9
+#define EC_WORD_WENT (EC_GROUP_ACTIONS << 9) | 0xa
+#define EC_WORD_SAID (EC_GROUP_ACTIONS << 9) | 0xb
+#define EC_WORD_WAKE_UP (EC_GROUP_ACTIONS << 9) | 0xc
+#define EC_WORD_WAKES_UP (EC_GROUP_ACTIONS << 9) | 0xd
+#define EC_WORD_ANGERS (EC_GROUP_ACTIONS << 9) | 0xe
+#define EC_WORD_TEACH (EC_GROUP_ACTIONS << 9) | 0xf
+#define EC_WORD_TEACHES (EC_GROUP_ACTIONS << 9) | 0x10
+#define EC_WORD_PLEASE (EC_GROUP_ACTIONS << 9) | 0x11
+#define EC_WORD_LEARN (EC_GROUP_ACTIONS << 9) | 0x12
+#define EC_WORD_CHANGE (EC_GROUP_ACTIONS << 9) | 0x13
+#define EC_WORD_STORY (EC_GROUP_ACTIONS << 9) | 0x14
+#define EC_WORD_TRUST (EC_GROUP_ACTIONS << 9) | 0x15
+#define EC_WORD_LAVISH (EC_GROUP_ACTIONS << 9) | 0x16
+#define EC_WORD_LISTENS (EC_GROUP_ACTIONS << 9) | 0x17
+#define EC_WORD_HEARING (EC_GROUP_ACTIONS << 9) | 0x18
+#define EC_WORD_TRAINS (EC_GROUP_ACTIONS << 9) | 0x19
+#define EC_WORD_CHOOSE (EC_GROUP_ACTIONS << 9) | 0x1a
+#define EC_WORD_COME (EC_GROUP_ACTIONS << 9) | 0x1b
+#define EC_WORD_CAME (EC_GROUP_ACTIONS << 9) | 0x1c
+#define EC_WORD_SEARCH (EC_GROUP_ACTIONS << 9) | 0x1d
+#define EC_WORD_MAKE (EC_GROUP_ACTIONS << 9) | 0x1e
+#define EC_WORD_CAUSE (EC_GROUP_ACTIONS << 9) | 0x1f
+#define EC_WORD_KNOW (EC_GROUP_ACTIONS << 9) | 0x20
+#define EC_WORD_KNOWS (EC_GROUP_ACTIONS << 9) | 0x21
+#define EC_WORD_REFUSE (EC_GROUP_ACTIONS << 9) | 0x22
+#define EC_WORD_STORES (EC_GROUP_ACTIONS << 9) | 0x23
+#define EC_WORD_BRAG (EC_GROUP_ACTIONS << 9) | 0x24
+#define EC_WORD_IGNORANT (EC_GROUP_ACTIONS << 9) | 0x25
+#define EC_WORD_THINKS (EC_GROUP_ACTIONS << 9) | 0x26
+#define EC_WORD_BELIEVE (EC_GROUP_ACTIONS << 9) | 0x27
+#define EC_WORD_SLIDE (EC_GROUP_ACTIONS << 9) | 0x28
+#define EC_WORD_EATS (EC_GROUP_ACTIONS << 9) | 0x29
+#define EC_WORD_USE (EC_GROUP_ACTIONS << 9) | 0x2a
+#define EC_WORD_USES (EC_GROUP_ACTIONS << 9) | 0x2b
+#define EC_WORD_USING (EC_GROUP_ACTIONS << 9) | 0x2c
+#define EC_WORD_COULDN_T (EC_GROUP_ACTIONS << 9) | 0x2d
+#define EC_WORD_CAPABLE (EC_GROUP_ACTIONS << 9) | 0x2e
+#define EC_WORD_DISAPPEAR (EC_GROUP_ACTIONS << 9) | 0x2f
+#define EC_WORD_APPEAR (EC_GROUP_ACTIONS << 9) | 0x30
+#define EC_WORD_THROW (EC_GROUP_ACTIONS << 9) | 0x31
+#define EC_WORD_WORRY (EC_GROUP_ACTIONS << 9) | 0x32
+#define EC_WORD_SLEPT (EC_GROUP_ACTIONS << 9) | 0x33
+#define EC_WORD_SLEEP (EC_GROUP_ACTIONS << 9) | 0x34
+#define EC_WORD_RELEASE (EC_GROUP_ACTIONS << 9) | 0x35
+#define EC_WORD_DRINKS (EC_GROUP_ACTIONS << 9) | 0x36
+#define EC_WORD_RUNS (EC_GROUP_ACTIONS << 9) | 0x37
+#define EC_WORD_RUN (EC_GROUP_ACTIONS << 9) | 0x38
+#define EC_WORD_WORKS (EC_GROUP_ACTIONS << 9) | 0x39
+#define EC_WORD_WORKING (EC_GROUP_ACTIONS << 9) | 0x3a
+#define EC_WORD_TALKING (EC_GROUP_ACTIONS << 9) | 0x3b
+#define EC_WORD_TALK (EC_GROUP_ACTIONS << 9) | 0x3c
+#define EC_WORD_SINK (EC_GROUP_ACTIONS << 9) | 0x3d
+#define EC_WORD_SMACK (EC_GROUP_ACTIONS << 9) | 0x3e
+#define EC_WORD_PRETEND (EC_GROUP_ACTIONS << 9) | 0x3f
+#define EC_WORD_PRAISE (EC_GROUP_ACTIONS << 9) | 0x40
+#define EC_WORD_OVERDO (EC_GROUP_ACTIONS << 9) | 0x41
+#define EC_WORD_SHOW (EC_GROUP_ACTIONS << 9) | 0x42
+#define EC_WORD_LOOKS (EC_GROUP_ACTIONS << 9) | 0x43
+#define EC_WORD_SEES (EC_GROUP_ACTIONS << 9) | 0x44
+#define EC_WORD_SEEK (EC_GROUP_ACTIONS << 9) | 0x45
+#define EC_WORD_OWN (EC_GROUP_ACTIONS << 9) | 0x46
+#define EC_WORD_TAKE (EC_GROUP_ACTIONS << 9) | 0x47
+#define EC_WORD_ALLOW (EC_GROUP_ACTIONS << 9) | 0x48
+#define EC_WORD_FORGET (EC_GROUP_ACTIONS << 9) | 0x49
+#define EC_WORD_FORGETS (EC_GROUP_ACTIONS << 9) | 0x4a
+#define EC_WORD_APPEARS (EC_GROUP_ACTIONS << 9) | 0x4b
+#define EC_WORD_FAINT (EC_GROUP_ACTIONS << 9) | 0x4c
+#define EC_WORD_FAINTED (EC_GROUP_ACTIONS << 9) | 0x4d
+
+// LIFESTYLE
+#define EC_WORD_CHORES (EC_GROUP_LIFESTYLE << 9) | 0x0
+#define EC_WORD_HOME (EC_GROUP_LIFESTYLE << 9) | 0x1
+#define EC_WORD_MONEY (EC_GROUP_LIFESTYLE << 9) | 0x2
+#define EC_WORD_ALLOWANCE (EC_GROUP_LIFESTYLE << 9) | 0x3
+#define EC_WORD_BATH (EC_GROUP_LIFESTYLE << 9) | 0x4
+#define EC_WORD_CONVERSATION (EC_GROUP_LIFESTYLE << 9) | 0x5
+#define EC_WORD_SCHOOL (EC_GROUP_LIFESTYLE << 9) | 0x6
+#define EC_WORD_COMMEMORATE (EC_GROUP_LIFESTYLE << 9) | 0x7
+#define EC_WORD_HABIT (EC_GROUP_LIFESTYLE << 9) | 0x8
+#define EC_WORD_GROUP (EC_GROUP_LIFESTYLE << 9) | 0x9
+#define EC_WORD_WORD (EC_GROUP_LIFESTYLE << 9) | 0xa
+#define EC_WORD_STORE (EC_GROUP_LIFESTYLE << 9) | 0xb
+#define EC_WORD_SERVICE (EC_GROUP_LIFESTYLE << 9) | 0xc
+#define EC_WORD_WORK (EC_GROUP_LIFESTYLE << 9) | 0xd
+#define EC_WORD_SYSTEM (EC_GROUP_LIFESTYLE << 9) | 0xe
+#define EC_WORD_TRAIN (EC_GROUP_LIFESTYLE << 9) | 0xf
+#define EC_WORD_CLASS (EC_GROUP_LIFESTYLE << 9) | 0x10
+#define EC_WORD_LESSONS (EC_GROUP_LIFESTYLE << 9) | 0x11
+#define EC_WORD_INFORMATION (EC_GROUP_LIFESTYLE << 9) | 0x12
+#define EC_WORD_LIVING (EC_GROUP_LIFESTYLE << 9) | 0x13
+#define EC_WORD_TEACHER (EC_GROUP_LIFESTYLE << 9) | 0x14
+#define EC_WORD_TOURNAMENT (EC_GROUP_LIFESTYLE << 9) | 0x15
+#define EC_WORD_LETTER (EC_GROUP_LIFESTYLE << 9) | 0x16
+#define EC_WORD_EVENT (EC_GROUP_LIFESTYLE << 9) | 0x17
+#define EC_WORD_DIGITAL (EC_GROUP_LIFESTYLE << 9) | 0x18
+#define EC_WORD_TEST (EC_GROUP_LIFESTYLE << 9) | 0x19
+#define EC_WORD_DEPT_STORE (EC_GROUP_LIFESTYLE << 9) | 0x1a
+#define EC_WORD_TELEVISION (EC_GROUP_LIFESTYLE << 9) | 0x1b
+#define EC_WORD_PHONE (EC_GROUP_LIFESTYLE << 9) | 0x1c
+#define EC_WORD_ITEM (EC_GROUP_LIFESTYLE << 9) | 0x1d
+#define EC_WORD_NAME (EC_GROUP_LIFESTYLE << 9) | 0x1e
+#define EC_WORD_NEWS (EC_GROUP_LIFESTYLE << 9) | 0x1f
+#define EC_WORD_POPULAR (EC_GROUP_LIFESTYLE << 9) | 0x20
+#define EC_WORD_PARTY (EC_GROUP_LIFESTYLE << 9) | 0x21
+#define EC_WORD_STUDY (EC_GROUP_LIFESTYLE << 9) | 0x22
+#define EC_WORD_MACHINE (EC_GROUP_LIFESTYLE << 9) | 0x23
+#define EC_WORD_MAIL (EC_GROUP_LIFESTYLE << 9) | 0x24
+#define EC_WORD_MESSAGE (EC_GROUP_LIFESTYLE << 9) | 0x25
+#define EC_WORD_PROMISE (EC_GROUP_LIFESTYLE << 9) | 0x26
+#define EC_WORD_DREAM (EC_GROUP_LIFESTYLE << 9) | 0x27
+#define EC_WORD_KINDERGARTEN (EC_GROUP_LIFESTYLE << 9) | 0x28
+#define EC_WORD_LIFE (EC_GROUP_LIFESTYLE << 9) | 0x29
+#define EC_WORD_RADIO (EC_GROUP_LIFESTYLE << 9) | 0x2a
+#define EC_WORD_RENTAL (EC_GROUP_LIFESTYLE << 9) | 0x2b
+#define EC_WORD_WORLD (EC_GROUP_LIFESTYLE << 9) | 0x2c
+
+// HOBBIES
+#define EC_WORD_IDOL (EC_GROUP_HOBBIES << 9) | 0x0
+#define EC_WORD_ANIME (EC_GROUP_HOBBIES << 9) | 0x1
+#define EC_WORD_SONG (EC_GROUP_HOBBIES << 9) | 0x2
+#define EC_WORD_MOVIE (EC_GROUP_HOBBIES << 9) | 0x3
+#define EC_WORD_SWEETS (EC_GROUP_HOBBIES << 9) | 0x4
+#define EC_WORD_CHAT (EC_GROUP_HOBBIES << 9) | 0x5
+#define EC_WORD_CHILD_S_PLAY (EC_GROUP_HOBBIES << 9) | 0x6
+#define EC_WORD_TOYS (EC_GROUP_HOBBIES << 9) | 0x7
+#define EC_WORD_MUSIC (EC_GROUP_HOBBIES << 9) | 0x8
+#define EC_WORD_CARDS (EC_GROUP_HOBBIES << 9) | 0x9
+#define EC_WORD_SHOPPING (EC_GROUP_HOBBIES << 9) | 0xa
+#define EC_WORD_CAMERA (EC_GROUP_HOBBIES << 9) | 0xb
+#define EC_WORD_VIEWING (EC_GROUP_HOBBIES << 9) | 0xc
+#define EC_WORD_SPECTATOR (EC_GROUP_HOBBIES << 9) | 0xd
+#define EC_WORD_GOURMET (EC_GROUP_HOBBIES << 9) | 0xe
+#define EC_WORD_GAME (EC_GROUP_HOBBIES << 9) | 0xf
+#define EC_WORD_RPG (EC_GROUP_HOBBIES << 9) | 0x10
+#define EC_WORD_COLLECTION (EC_GROUP_HOBBIES << 9) | 0x11
+#define EC_WORD_COMPLETE (EC_GROUP_HOBBIES << 9) | 0x12
+#define EC_WORD_MAGAZINE (EC_GROUP_HOBBIES << 9) | 0x13
+#define EC_WORD_WALK (EC_GROUP_HOBBIES << 9) | 0x14
+#define EC_WORD_BIKE (EC_GROUP_HOBBIES << 9) | 0x15
+#define EC_WORD_HOBBY (EC_GROUP_HOBBIES << 9) | 0x16
+#define EC_WORD_SPORTS (EC_GROUP_HOBBIES << 9) | 0x17
+#define EC_WORD_SOFTWARE (EC_GROUP_HOBBIES << 9) | 0x18
+#define EC_WORD_SONGS (EC_GROUP_HOBBIES << 9) | 0x19
+#define EC_WORD_DIET (EC_GROUP_HOBBIES << 9) | 0x1a
+#define EC_WORD_TREASURE (EC_GROUP_HOBBIES << 9) | 0x1b
+#define EC_WORD_TRAVEL (EC_GROUP_HOBBIES << 9) | 0x1c
+#define EC_WORD_DANCE (EC_GROUP_HOBBIES << 9) | 0x1d
+#define EC_WORD_CHANNEL (EC_GROUP_HOBBIES << 9) | 0x1e
+#define EC_WORD_MAKING (EC_GROUP_HOBBIES << 9) | 0x1f
+#define EC_WORD_FISHING (EC_GROUP_HOBBIES << 9) | 0x20
+#define EC_WORD_DATE (EC_GROUP_HOBBIES << 9) | 0x21
+#define EC_WORD_DESIGN (EC_GROUP_HOBBIES << 9) | 0x22
+#define EC_WORD_LOCOMOTIVE (EC_GROUP_HOBBIES << 9) | 0x23
+#define EC_WORD_PLUSH_DOLL (EC_GROUP_HOBBIES << 9) | 0x24
+#define EC_WORD_PC (EC_GROUP_HOBBIES << 9) | 0x25
+#define EC_WORD_FLOWERS (EC_GROUP_HOBBIES << 9) | 0x26
+#define EC_WORD_HERO (EC_GROUP_HOBBIES << 9) | 0x27
+#define EC_WORD_NAP (EC_GROUP_HOBBIES << 9) | 0x28
+#define EC_WORD_HEROINE (EC_GROUP_HOBBIES << 9) | 0x29
+#define EC_WORD_FASHION (EC_GROUP_HOBBIES << 9) | 0x2a
+#define EC_WORD_ADVENTURE (EC_GROUP_HOBBIES << 9) | 0x2b
+#define EC_WORD_BOARD (EC_GROUP_HOBBIES << 9) | 0x2c
+#define EC_WORD_BALL (EC_GROUP_HOBBIES << 9) | 0x2d
+#define EC_WORD_BOOK (EC_GROUP_HOBBIES << 9) | 0x2e
+#define EC_WORD_FESTIVAL (EC_GROUP_HOBBIES << 9) | 0x2f
+#define EC_WORD_COMICS (EC_GROUP_HOBBIES << 9) | 0x30
+#define EC_WORD_HOLIDAY (EC_GROUP_HOBBIES << 9) | 0x31
+#define EC_WORD_PLANS (EC_GROUP_HOBBIES << 9) | 0x32
+#define EC_WORD_TRENDY (EC_GROUP_HOBBIES << 9) | 0x33
+#define EC_WORD_VACATION (EC_GROUP_HOBBIES << 9) | 0x34
+#define EC_WORD_LOOK (EC_GROUP_HOBBIES << 9) | 0x35
+
+// TIME
+#define EC_WORD_FALL (EC_GROUP_TIME << 9) | 0x0
+#define EC_WORD_MORNING (EC_GROUP_TIME << 9) | 0x1
+#define EC_WORD_TOMORROW (EC_GROUP_TIME << 9) | 0x2
+#define EC_WORD_LAST (EC_GROUP_TIME << 9) | 0x3
+#define EC_WORD_DAY (EC_GROUP_TIME << 9) | 0x4
+#define EC_WORD_SOMETIME (EC_GROUP_TIME << 9) | 0x5
+#define EC_WORD_ALWAYS (EC_GROUP_TIME << 9) | 0x6
+#define EC_WORD_CURRENT (EC_GROUP_TIME << 9) | 0x7
+#define EC_WORD_FOREVER (EC_GROUP_TIME << 9) | 0x8
+#define EC_WORD_DAYS (EC_GROUP_TIME << 9) | 0x9
+#define EC_WORD_END (EC_GROUP_TIME << 9) | 0xa
+#define EC_WORD_TUESDAY (EC_GROUP_TIME << 9) | 0xb
+#define EC_WORD_YESTERDAY (EC_GROUP_TIME << 9) | 0xc
+#define EC_WORD_TODAY (EC_GROUP_TIME << 9) | 0xd
+#define EC_WORD_FRIDAY (EC_GROUP_TIME << 9) | 0xe
+#define EC_WORD_MONDAY (EC_GROUP_TIME << 9) | 0xf
+#define EC_WORD_LATER (EC_GROUP_TIME << 9) | 0x10
+#define EC_WORD_EARLIER (EC_GROUP_TIME << 9) | 0x11
+#define EC_WORD_ANOTHER (EC_GROUP_TIME << 9) | 0x12
+#define EC_WORD_TIME (EC_GROUP_TIME << 9) | 0x13
+#define EC_WORD_FINISH (EC_GROUP_TIME << 9) | 0x14
+#define EC_WORD_WEDNESDAY (EC_GROUP_TIME << 9) | 0x15
+#define EC_WORD_SOON (EC_GROUP_TIME << 9) | 0x16
+#define EC_WORD_START (EC_GROUP_TIME << 9) | 0x17
+#define EC_WORD_MONTH (EC_GROUP_TIME << 9) | 0x18
+#define EC_WORD_STOP (EC_GROUP_TIME << 9) | 0x19
+#define EC_WORD_NOW (EC_GROUP_TIME << 9) | 0x1a
+#define EC_WORD_FINAL (EC_GROUP_TIME << 9) | 0x1b
+#define EC_WORD_NEXT (EC_GROUP_TIME << 9) | 0x1c
+#define EC_WORD_AGE (EC_GROUP_TIME << 9) | 0x1d
+#define EC_WORD_SATURDAY (EC_GROUP_TIME << 9) | 0x1e
+#define EC_WORD_SUMMER (EC_GROUP_TIME << 9) | 0x1f
+#define EC_WORD_SUNDAY (EC_GROUP_TIME << 9) | 0x20
+#define EC_WORD_BEGINNING (EC_GROUP_TIME << 9) | 0x21
+#define EC_WORD_SPRING (EC_GROUP_TIME << 9) | 0x22
+#define EC_WORD_DAYTIME (EC_GROUP_TIME << 9) | 0x23
+#define EC_WORD_WINTER (EC_GROUP_TIME << 9) | 0x24
+#define EC_WORD_DAILY (EC_GROUP_TIME << 9) | 0x25
+#define EC_WORD_OLDEN (EC_GROUP_TIME << 9) | 0x26
+#define EC_WORD_ALMOST (EC_GROUP_TIME << 9) | 0x27
+#define EC_WORD_NEARLY (EC_GROUP_TIME << 9) | 0x28
+#define EC_WORD_THURSDAY (EC_GROUP_TIME << 9) | 0x29
+#define EC_WORD_NIGHTTIME (EC_GROUP_TIME << 9) | 0x2a
+#define EC_WORD_NIGHT (EC_GROUP_TIME << 9) | 0x2b
+#define EC_WORD_WEEK (EC_GROUP_TIME << 9) | 0x2c
+
+// MISC
+#define EC_WORD_HIGHS (EC_GROUP_MISC << 9) | 0x0
+#define EC_WORD_LOWS (EC_GROUP_MISC << 9) | 0x1
+#define EC_WORD_UM (EC_GROUP_MISC << 9) | 0x2
+#define EC_WORD_REAR (EC_GROUP_MISC << 9) | 0x3
+#define EC_WORD_THINGS (EC_GROUP_MISC << 9) | 0x4
+#define EC_WORD_THING (EC_GROUP_MISC << 9) | 0x5
+#define EC_WORD_BELOW (EC_GROUP_MISC << 9) | 0x6
+#define EC_WORD_ABOVE (EC_GROUP_MISC << 9) | 0x7
+#define EC_WORD_BACK (EC_GROUP_MISC << 9) | 0x8
+#define EC_WORD_HIGH (EC_GROUP_MISC << 9) | 0x9
+#define EC_WORD_HERE (EC_GROUP_MISC << 9) | 0xa
+#define EC_WORD_INSIDE (EC_GROUP_MISC << 9) | 0xb
+#define EC_WORD_OUTSIDE (EC_GROUP_MISC << 9) | 0xc
+#define EC_WORD_BESIDE (EC_GROUP_MISC << 9) | 0xd
+#define EC_WORD_THIS_IS_IT_EXCL (EC_GROUP_MISC << 9) | 0xe
+#define EC_WORD_THIS (EC_GROUP_MISC << 9) | 0xf
+#define EC_WORD_EVERY (EC_GROUP_MISC << 9) | 0x10
+#define EC_WORD_THESE (EC_GROUP_MISC << 9) | 0x11
+#define EC_WORD_THESE_WERE (EC_GROUP_MISC << 9) | 0x12
+#define EC_WORD_DOWN (EC_GROUP_MISC << 9) | 0x13
+#define EC_WORD_THAT (EC_GROUP_MISC << 9) | 0x14
+#define EC_WORD_THOSE_ARE (EC_GROUP_MISC << 9) | 0x15
+#define EC_WORD_THOSE_WERE (EC_GROUP_MISC << 9) | 0x16
+#define EC_WORD_THAT_S_IT_EXCL (EC_GROUP_MISC << 9) | 0x17
+#define EC_WORD_AM (EC_GROUP_MISC << 9) | 0x18
+#define EC_WORD_THAT_WAS (EC_GROUP_MISC << 9) | 0x19
+#define EC_WORD_FRONT (EC_GROUP_MISC << 9) | 0x1a
+#define EC_WORD_UP (EC_GROUP_MISC << 9) | 0x1b
+#define EC_WORD_CHOICE (EC_GROUP_MISC << 9) | 0x1c
+#define EC_WORD_FAR (EC_GROUP_MISC << 9) | 0x1d
+#define EC_WORD_AWAY (EC_GROUP_MISC << 9) | 0x1e
+#define EC_WORD_NEAR (EC_GROUP_MISC << 9) | 0x1f
+#define EC_WORD_WHERE (EC_GROUP_MISC << 9) | 0x20
+#define EC_WORD_WHEN (EC_GROUP_MISC << 9) | 0x21
+#define EC_WORD_WHAT (EC_GROUP_MISC << 9) | 0x22
+#define EC_WORD_DEEP (EC_GROUP_MISC << 9) | 0x23
+#define EC_WORD_SHALLOW (EC_GROUP_MISC << 9) | 0x24
+#define EC_WORD_WHY (EC_GROUP_MISC << 9) | 0x25
+#define EC_WORD_CONFUSED (EC_GROUP_MISC << 9) | 0x26
+#define EC_WORD_OPPOSITE (EC_GROUP_MISC << 9) | 0x27
+#define EC_WORD_LEFT (EC_GROUP_MISC << 9) | 0x28
+#define EC_WORD_RIGHT (EC_GROUP_MISC << 9) | 0x29
+
+// ADJECTIVES
+#define EC_WORD_WANDERING (EC_GROUP_ADJECTIVES << 9) | 0x0
+#define EC_WORD_RICKETY (EC_GROUP_ADJECTIVES << 9) | 0x1
+#define EC_WORD_ROCK_SOLID (EC_GROUP_ADJECTIVES << 9) | 0x2
+#define EC_WORD_HUNGRY (EC_GROUP_ADJECTIVES << 9) | 0x3
+#define EC_WORD_TIGHT (EC_GROUP_ADJECTIVES << 9) | 0x4
+#define EC_WORD_TICKLISH (EC_GROUP_ADJECTIVES << 9) | 0x5
+#define EC_WORD_TWIRLING (EC_GROUP_ADJECTIVES << 9) | 0x6
+#define EC_WORD_SPIRALING (EC_GROUP_ADJECTIVES << 9) | 0x7
+#define EC_WORD_THIRSTY (EC_GROUP_ADJECTIVES << 9) | 0x8
+#define EC_WORD_LOLLING (EC_GROUP_ADJECTIVES << 9) | 0x9
+#define EC_WORD_SILKY (EC_GROUP_ADJECTIVES << 9) | 0xa
+#define EC_WORD_SADLY (EC_GROUP_ADJECTIVES << 9) | 0xb
+#define EC_WORD_HOPELESS (EC_GROUP_ADJECTIVES << 9) | 0xc
+#define EC_WORD_USELESS (EC_GROUP_ADJECTIVES << 9) | 0xd
+#define EC_WORD_DROOLING (EC_GROUP_ADJECTIVES << 9) | 0xe
+#define EC_WORD_EXCITING (EC_GROUP_ADJECTIVES << 9) | 0xf
+#define EC_WORD_THICK (EC_GROUP_ADJECTIVES << 9) | 0x10
+#define EC_WORD_SMOOTH (EC_GROUP_ADJECTIVES << 9) | 0x11
+#define EC_WORD_SLIMY (EC_GROUP_ADJECTIVES << 9) | 0x12
+#define EC_WORD_THIN (EC_GROUP_ADJECTIVES << 9) | 0x13
+#define EC_WORD_BREAK (EC_GROUP_ADJECTIVES << 9) | 0x14
+#define EC_WORD_VORACIOUS (EC_GROUP_ADJECTIVES << 9) | 0x15
+#define EC_WORD_SCATTER (EC_GROUP_ADJECTIVES << 9) | 0x16
+#define EC_WORD_AWESOME (EC_GROUP_ADJECTIVES << 9) | 0x17
+#define EC_WORD_WIMPY (EC_GROUP_ADJECTIVES << 9) | 0x18
+#define EC_WORD_WOBBLY (EC_GROUP_ADJECTIVES << 9) | 0x19
+#define EC_WORD_SHAKY (EC_GROUP_ADJECTIVES << 9) | 0x1a
+#define EC_WORD_RIPPED (EC_GROUP_ADJECTIVES << 9) | 0x1b
+#define EC_WORD_SHREDDED (EC_GROUP_ADJECTIVES << 9) | 0x1c
+#define EC_WORD_INCREASING (EC_GROUP_ADJECTIVES << 9) | 0x1d
+#define EC_WORD_YET (EC_GROUP_ADJECTIVES << 9) | 0x1e
+#define EC_WORD_DESTROYED (EC_GROUP_ADJECTIVES << 9) | 0x1f
+#define EC_WORD_FIERY (EC_GROUP_ADJECTIVES << 9) | 0x20
+#define EC_WORD_LOVEY_DOVEY (EC_GROUP_ADJECTIVES << 9) | 0x21
+#define EC_WORD_HAPPILY (EC_GROUP_ADJECTIVES << 9) | 0x22
+#define EC_WORD_ANTICIPATION (EC_GROUP_ADJECTIVES << 9) | 0x23
+
+// EVENTS
+#define EC_WORD_APPEAL (EC_GROUP_EVENTS << 9) | 0x0
+#define EC_WORD_EVENTS (EC_GROUP_EVENTS << 9) | 0x1
+#define EC_WORD_STAY_AT_HOME (EC_GROUP_EVENTS << 9) | 0x2
+#define EC_WORD_BERRY (EC_GROUP_EVENTS << 9) | 0x3
+#define EC_WORD_CONTEST (EC_GROUP_EVENTS << 9) | 0x4
+#define EC_WORD_MC (EC_GROUP_EVENTS << 9) | 0x5
+#define EC_WORD_JUDGE (EC_GROUP_EVENTS << 9) | 0x6
+#define EC_WORD_SUPER (EC_GROUP_EVENTS << 9) | 0x7
+#define EC_WORD_STAGE (EC_GROUP_EVENTS << 9) | 0x8
+#define EC_WORD_HALL_OF_FAME (EC_GROUP_EVENTS << 9) | 0x9
+#define EC_WORD_EVOLUTION (EC_GROUP_EVENTS << 9) | 0xa
+#define EC_WORD_HYPER (EC_GROUP_EVENTS << 9) | 0xb
+#define EC_WORD_BATTLE_TOWER (EC_GROUP_EVENTS << 9) | 0xc
+#define EC_WORD_LEADERS (EC_GROUP_EVENTS << 9) | 0xd
+#define EC_WORD_BATTLE_ROOM (EC_GROUP_EVENTS << 9) | 0xe
+#define EC_WORD_HIDDEN (EC_GROUP_EVENTS << 9) | 0xf
+#define EC_WORD_SECRET_BASE (EC_GROUP_EVENTS << 9) | 0x10
+#define EC_WORD_BLEND (EC_GROUP_EVENTS << 9) | 0x11
+#define EC_WORD_POKEBLOCK (EC_GROUP_EVENTS << 9) | 0x12
+#define EC_WORD_MASTER (EC_GROUP_EVENTS << 9) | 0x13
+#define EC_WORD_RANK (EC_GROUP_EVENTS << 9) | 0x14
+#define EC_WORD_RIBBON (EC_GROUP_EVENTS << 9) | 0x15
+#define EC_WORD_CRUSH (EC_GROUP_EVENTS << 9) | 0x16
+#define EC_WORD_DIRECT (EC_GROUP_EVENTS << 9) | 0x17
+#define EC_WORD_TOWER (EC_GROUP_EVENTS << 9) | 0x18
+#define EC_WORD_UNION (EC_GROUP_EVENTS << 9) | 0x19
+#define EC_WORD_ROOM (EC_GROUP_EVENTS << 9) | 0x1a
+#define EC_WORD_WIRELESS (EC_GROUP_EVENTS << 9) | 0x1b
+#define EC_WORD_FRONTIER (EC_GROUP_EVENTS << 9) | 0x1c
+
+// TRENDY_SAYING
+#define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0
+#define EC_WORD_YES_SIR_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x1
+#define EC_WORD_AVANT_GARDE (EC_GROUP_TRENDY_SAYING << 9) | 0x2
+#define EC_WORD_COUPLE (EC_GROUP_TRENDY_SAYING << 9) | 0x3
+#define EC_WORD_MUCH_OBLIGED (EC_GROUP_TRENDY_SAYING << 9) | 0x4
+#define EC_WORD_YEEHAW_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x5
+#define EC_WORD_MEGA (EC_GROUP_TRENDY_SAYING << 9) | 0x6
+#define EC_WORD_1_HIT_KO_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x7
+#define EC_WORD_DESTINY (EC_GROUP_TRENDY_SAYING << 9) | 0x8
+#define EC_WORD_CANCEL (EC_GROUP_TRENDY_SAYING << 9) | 0x9
+#define EC_WORD_NEW (EC_GROUP_TRENDY_SAYING << 9) | 0xa
+#define EC_WORD_FLATTEN (EC_GROUP_TRENDY_SAYING << 9) | 0xb
+#define EC_WORD_KIDDING (EC_GROUP_TRENDY_SAYING << 9) | 0xc
+#define EC_WORD_LOSER (EC_GROUP_TRENDY_SAYING << 9) | 0xd
+#define EC_WORD_LOSING (EC_GROUP_TRENDY_SAYING << 9) | 0xe
+#define EC_WORD_HAPPENING (EC_GROUP_TRENDY_SAYING << 9) | 0xf
+#define EC_WORD_HIP_AND (EC_GROUP_TRENDY_SAYING << 9) | 0x10
+#define EC_WORD_SHAKE (EC_GROUP_TRENDY_SAYING << 9) | 0x11
+#define EC_WORD_SHADY (EC_GROUP_TRENDY_SAYING << 9) | 0x12
+#define EC_WORD_UPBEAT (EC_GROUP_TRENDY_SAYING << 9) | 0x13
+#define EC_WORD_MODERN (EC_GROUP_TRENDY_SAYING << 9) | 0x14
+#define EC_WORD_SMELL_YA (EC_GROUP_TRENDY_SAYING << 9) | 0x15
+#define EC_WORD_BANG (EC_GROUP_TRENDY_SAYING << 9) | 0x16
+#define EC_WORD_KNOCKOUT (EC_GROUP_TRENDY_SAYING << 9) | 0x17
+#define EC_WORD_HASSLE (EC_GROUP_TRENDY_SAYING << 9) | 0x18
+#define EC_WORD_WINNER (EC_GROUP_TRENDY_SAYING << 9) | 0x19
+#define EC_WORD_FEVER (EC_GROUP_TRENDY_SAYING << 9) | 0x1a
+#define EC_WORD_WANNABE (EC_GROUP_TRENDY_SAYING << 9) | 0x1b
+#define EC_WORD_BABY (EC_GROUP_TRENDY_SAYING << 9) | 0x1c
+#define EC_WORD_HEART (EC_GROUP_TRENDY_SAYING << 9) | 0x1d
+#define EC_WORD_OLD (EC_GROUP_TRENDY_SAYING << 9) | 0x1e
+#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f
+#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20
+
+#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon)
+#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon)
+#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move)
+#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move)
+
+#define EC_GROUP(word) ((word) >> 9)
+#define EC_INDEX(word) ((word) & 0x1FF)
+
+#endif // GUARD_CONSTANTS_EASY_CHAT_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
new file mode 100644
index 000000000..e74ef1ef0
--- /dev/null
+++ b/include/constants/flags.h
@@ -0,0 +1,1578 @@
+#ifndef GUARD_CONSTANTS_FLAGS_H
+#define GUARD_CONSTANTS_FLAGS_H
+
+#define FLAG_0x001 0x1
+#define FLAG_0x002 0x2
+#define FLAG_0x003 0x3
+#define FLAG_0x004 0x4
+#define FLAG_0x005 0x5
+#define FLAG_0x006 0x6
+#define FLAG_0x007 0x7
+#define FLAG_0x008 0x8
+#define FLAG_0x009 0x9
+#define FLAG_0x00A 0xA
+#define FLAG_0x00B 0xB
+#define FLAG_0x00C 0xC
+#define FLAG_0x00D 0xD
+#define FLAG_0x00E 0xE
+#define FLAG_0x00F 0xF
+#define FLAG_0x010 0x10
+#define FLAG_0x011 0x11
+#define FLAG_0x012 0x12
+#define FLAG_0x013 0x13
+#define FLAG_0x014 0x14
+#define FLAG_0x015 0x15
+#define FLAG_0x016 0x16
+#define FLAG_0x017 0x17
+#define FLAG_0x018 0x18
+#define FLAG_0x019 0x19
+#define FLAG_0x01A 0x1A
+#define FLAG_0x01B 0x1B
+#define FLAG_0x01C 0x1C
+#define FLAG_0x01D 0x1D
+#define FLAG_0x01E 0x1E
+#define FLAG_0x01F 0x1F
+#define FLAG_0x020 0x20
+#define FLAG_0x021 0x21
+#define FLAG_0x022 0x22
+#define FLAG_0x023 0x23
+#define FLAG_0x024 0x24
+#define FLAG_0x025 0x25
+#define FLAG_0x026 0x26
+#define FLAG_0x027 0x27
+#define FLAG_0x028 0x28
+#define FLAG_0x029 0x29
+#define FLAG_0x02A 0x2A
+#define FLAG_0x02B 0x2B
+#define FLAG_0x02C 0x2C
+#define FLAG_0x02D 0x2D
+#define FLAG_0x02E 0x2E
+#define FLAG_0x02F 0x2F
+#define FLAG_0x030 0x30
+#define FLAG_0x031 0x31
+#define FLAG_0x032 0x32
+#define FLAG_0x033 0x33
+#define FLAG_0x034 0x34
+#define FLAG_0x035 0x35
+#define FLAG_0x036 0x36
+#define FLAG_0x037 0x37
+#define FLAG_0x038 0x38
+#define FLAG_0x039 0x39
+#define FLAG_0x03A 0x3A
+#define FLAG_0x03B 0x3B
+#define FLAG_0x03C 0x3C
+#define FLAG_0x03D 0x3D
+#define FLAG_0x03E 0x3E
+#define FLAG_0x03F 0x3F
+#define FLAG_0x040 0x40
+#define FLAG_0x041 0x41
+#define FLAG_0x042 0x42
+#define FLAG_0x043 0x43
+#define FLAG_0x044 0x44
+#define FLAG_0x045 0x45
+#define FLAG_0x046 0x46
+#define FLAG_0x047 0x47
+#define FLAG_0x048 0x48
+#define FLAG_0x049 0x49
+#define FLAG_0x04A 0x4A
+#define FLAG_0x04B 0x4B
+#define FLAG_0x04C 0x4C
+#define FLAG_0x04D 0x4D
+#define FLAG_0x04E 0x4E
+#define FLAG_0x04F 0x4F
+#define FLAG_0x050 0x50
+#define FLAG_0x051 0x51
+#define FLAG_0x052 0x52
+#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
+#define FLAG_0x054 0x54
+#define FLAG_0x055 0x55
+#define FLAG_0x056 0x56
+#define FLAG_0x057 0x57
+#define FLAG_0x058 0x58
+#define FLAG_0x059 0x59
+#define FLAG_0x05A 0x5A
+#define FLAG_0x05B 0x5B
+#define FLAG_0x05C 0x5C
+#define FLAG_0x05D 0x5D
+#define FLAG_0x05E 0x5E
+#define FLAG_0x05F 0x5F
+#define FLAG_0x060 0x60
+#define FLAG_0x061 0x61
+#define FLAG_0x062 0x62
+#define FLAG_0x063 0x63
+#define FLAG_0x064 0x64
+#define FLAG_0x065 0x65
+#define FLAG_0x066 0x66
+#define FLAG_0x067 0x67
+#define FLAG_0x068 0x68
+#define FLAG_0x069 0x69
+#define FLAG_0x06A 0x6A
+#define FLAG_0x06B 0x6B
+#define FLAG_0x06C 0x6C
+#define FLAG_0x06D 0x6D
+#define FLAG_0x06E 0x6E
+#define FLAG_0x06F 0x6F
+#define FLAG_0x070 0x70
+#define FLAG_0x071 0x71
+#define FLAG_0x072 0x72
+#define FLAG_0x073 0x73
+#define FLAG_0x074 0x74
+#define FLAG_0x075 0x75
+#define FLAG_0x076 0x76
+#define FLAG_0x077 0x77
+#define FLAG_0x078 0x78
+#define FLAG_0x079 0x79
+#define FLAG_0x07A 0x7A
+#define FLAG_0x07B 0x7B
+#define FLAG_0x07C 0x7C
+#define FLAG_0x07D 0x7D
+#define FLAG_0x07E 0x7E
+#define FLAG_0x07F 0x7F
+#define FLAG_0x080 0x80
+#define FLAG_0x081 0x81
+#define FLAG_0x082 0x82
+#define FLAG_0x083 0x83
+#define FLAG_0x084 0x84
+#define FLAG_0x085 0x85
+#define FLAG_PENDING_DAYCARE_EGG 0x86
+#define FLAG_0x087 0x87
+#define FLAG_0x088 0x88
+#define FLAG_0x089 0x89
+#define FLAG_0x08A 0x8A
+#define FLAG_0x08B 0x8B
+#define FLAG_0x08C 0x8C
+#define FLAG_0x08D 0x8D
+#define FLAG_0x08E 0x8E
+#define FLAG_0x08F 0x8F
+#define FLAG_0x090 0x90
+#define FLAG_0x091 0x91
+#define FLAG_0x092 0x92
+#define FLAG_0x093 0x93
+#define FLAG_0x094 0x94
+#define FLAG_0x095 0x95
+#define FLAG_0x096 0x96
+#define FLAG_0x097 0x97
+#define FLAG_0x098 0x98
+#define FLAG_0x099 0x99
+#define FLAG_0x09A 0x9A
+#define FLAG_0x09B 0x9B
+#define FLAG_0x09C 0x9C
+#define FLAG_0x09D 0x9D
+#define FLAG_0x09E 0x9E
+#define FLAG_0x09F 0x9F
+#define FLAG_0x0A0 0xA0
+#define FLAG_0x0A1 0xA1
+#define FLAG_0x0A2 0xA2
+#define FLAG_0x0A3 0xA3
+#define FLAG_0x0A4 0xA4
+#define FLAG_0x0A5 0xA5
+#define FLAG_0x0A6 0xA6
+#define FLAG_0x0A7 0xA7
+#define FLAG_0x0A8 0xA8
+#define FLAG_0x0A9 0xA9
+#define FLAG_0x0AA 0xAA
+#define FLAG_0x0AB 0xAB
+#define FLAG_0x0AC 0xAC
+#define FLAG_0x0AD 0xAD
+#define FLAG_0x0AE 0xAE
+#define FLAG_0x0AF 0xAF
+#define FLAG_0x0B0 0xB0
+#define FLAG_0x0B1 0xB1
+#define FLAG_0x0B2 0xB2
+#define FLAG_0x0B3 0xB3
+#define FLAG_0x0B4 0xB4
+#define FLAG_0x0B5 0xB5
+#define FLAG_0x0B6 0xB6
+#define FLAG_0x0B7 0xB7
+#define FLAG_0x0B8 0xB8
+#define FLAG_0x0B9 0xB9
+#define FLAG_0x0BA 0xBA
+#define FLAG_0x0BB 0xBB
+#define FLAG_0x0BC 0xBC
+#define FLAG_0x0BD 0xBD
+#define FLAG_0x0BE 0xBE
+#define FLAG_0x0BF 0xBF
+#define FLAG_0x0C0 0xC0
+#define FLAG_0x0C1 0xC1
+#define FLAG_0x0C2 0xC2
+#define FLAG_0x0C3 0xC3
+#define FLAG_0x0C4 0xC4
+#define FLAG_0x0C5 0xC5
+#define FLAG_0x0C6 0xC6
+#define FLAG_0x0C7 0xC7
+#define FLAG_0x0C8 0xC8
+#define FLAG_0x0C9 0xC9
+#define FLAG_0x0CA 0xCA
+#define FLAG_0x0CB 0xCB
+#define FLAG_0x0CC 0xCC
+#define FLAG_0x0CD 0xCD
+#define FLAG_0x0CE 0xCE
+#define FLAG_0x0CF 0xCF
+#define FLAG_0x0D0 0xD0
+#define FLAG_0x0D1 0xD1
+#define FLAG_0x0D2 0xD2
+#define FLAG_0x0D3 0xD3
+#define FLAG_0x0D4 0xD4
+#define FLAG_0x0D5 0xD5
+#define FLAG_0x0D6 0xD6
+#define FLAG_0x0D7 0xD7
+#define FLAG_0x0D8 0xD8
+#define FLAG_0x0D9 0xD9
+#define FLAG_0x0DA 0xDA
+#define FLAG_0x0DB 0xDB
+#define FLAG_0x0DC 0xDC
+#define FLAG_0x0DD 0xDD
+#define FLAG_0x0DE 0xDE
+#define FLAG_0x0DF 0xDF
+#define FLAG_0x0E0 0xE0
+#define FLAG_0x0E1 0xE1
+#define FLAG_0x0E2 0xE2
+#define FLAG_0x0E3 0xE3
+#define FLAG_0x0E4 0xE4
+#define FLAG_0x0E5 0xE5
+#define FLAG_0x0E6 0xE6
+#define FLAG_0x0E7 0xE7
+#define FLAG_0x0E8 0xE8
+#define FLAG_0x0E9 0xE9
+#define FLAG_0x0EA 0xEA
+#define FLAG_0x0EB 0xEB
+#define FLAG_0x0EC 0xEC
+#define FLAG_0x0ED 0xED
+#define FLAG_0x0EE 0xEE
+#define FLAG_0x0EF 0xEF
+#define FLAG_0x0F0 0xF0
+#define FLAG_0x0F1 0xF1
+#define FLAG_0x0F2 0xF2
+#define FLAG_0x0F3 0xF3
+#define FLAG_0x0F4 0xF4
+#define FLAG_0x0F5 0xF5
+#define FLAG_0x0F6 0xF6
+#define FLAG_0x0F7 0xF7
+#define FLAG_0x0F8 0xF8
+#define FLAG_0x0F9 0xF9
+#define FLAG_0x0FA 0xFA
+#define FLAG_0x0FB 0xFB
+#define FLAG_0x0FC 0xFC
+#define FLAG_0x0FD 0xFD
+#define FLAG_0x0FE 0xFE
+#define FLAG_0x0FF 0xFF
+#define FLAG_0x100 0x100
+#define FLAG_0x101 0x101
+#define FLAG_0x102 0x102
+#define FLAG_0x103 0x103
+#define FLAG_0x104 0x104
+#define FLAG_0x105 0x105
+#define FLAG_0x106 0x106
+#define FLAG_0x107 0x107
+#define FLAG_0x108 0x108
+#define FLAG_0x109 0x109
+#define FLAG_0x10A 0x10A
+#define FLAG_0x10B 0x10B
+#define FLAG_0x10C 0x10C
+#define FLAG_0x10D 0x10D
+#define FLAG_0x10E 0x10E
+#define FLAG_0x10F 0x10F
+#define FLAG_0x110 0x110
+#define FLAG_0x111 0x111
+#define FLAG_0x112 0x112
+#define FLAG_0x113 0x113
+#define FLAG_0x114 0x114
+#define FLAG_0x115 0x115
+#define FLAG_0x116 0x116
+#define FLAG_0x117 0x117
+#define FLAG_0x118 0x118
+#define FLAG_0x119 0x119
+#define FLAG_0x11A 0x11A
+#define FLAG_0x11B 0x11B
+#define FLAG_0x11C 0x11C
+#define FLAG_0x11D 0x11D
+#define FLAG_0x11E 0x11E
+#define FLAG_0x11F 0x11F
+#define FLAG_0x120 0x120
+#define FLAG_0x121 0x121
+#define FLAG_0x122 0x122
+#define FLAG_0x123 0x123
+#define FLAG_0x124 0x124
+#define FLAG_0x125 0x125
+#define FLAG_0x126 0x126
+#define FLAG_0x127 0x127
+#define FLAG_0x128 0x128
+#define FLAG_0x129 0x129
+#define FLAG_0x12A 0x12A
+#define FLAG_0x12B 0x12B
+#define FLAG_0x12C 0x12C
+#define FLAG_0x12D 0x12D
+#define FLAG_0x12E 0x12E
+#define FLAG_0x12F 0x12F
+#define FLAG_0x130 0x130
+#define FLAG_0x131 0x131
+#define FLAG_0x132 0x132
+#define FLAG_0x133 0x133
+#define FLAG_0x134 0x134
+#define FLAG_0x135 0x135
+#define FLAG_0x136 0x136
+#define FLAG_0x137 0x137
+#define FLAG_0x138 0x138
+#define FLAG_0x139 0x139
+#define FLAG_0x13A 0x13A
+#define FLAG_0x13B 0x13B
+#define FLAG_0x13C 0x13C
+#define FLAG_0x13D 0x13D
+#define FLAG_0x13E 0x13E
+#define FLAG_0x13F 0x13F
+#define FLAG_0x140 0x140
+#define FLAG_0x141 0x141
+#define FLAG_0x142 0x142
+#define FLAG_0x143 0x143
+#define FLAG_0x144 0x144
+#define FLAG_0x145 0x145
+#define FLAG_0x146 0x146
+#define FLAG_0x147 0x147
+#define FLAG_0x148 0x148
+#define FLAG_0x149 0x149
+#define FLAG_0x14A 0x14A
+#define FLAG_0x14B 0x14B
+#define FLAG_0x14C 0x14C
+#define FLAG_0x14D 0x14D
+#define FLAG_0x14E 0x14E
+#define FLAG_0x14F 0x14F
+#define FLAG_0x150 0x150
+#define FLAG_0x151 0x151
+#define FLAG_0x152 0x152
+#define FLAG_0x153 0x153
+#define FLAG_0x154 0x154
+#define FLAG_0x155 0x155
+#define FLAG_0x156 0x156
+#define FLAG_0x157 0x157
+#define FLAG_0x158 0x158
+#define FLAG_0x159 0x159
+#define FLAG_0x15A 0x15A
+#define FLAG_0x15B 0x15B
+#define FLAG_0x15C 0x15C
+#define FLAG_0x15D 0x15D
+#define FLAG_0x15E 0x15E
+#define FLAG_0x15F 0x15F
+#define FLAG_0x160 0x160
+#define FLAG_0x161 0x161
+#define FLAG_0x162 0x162
+#define FLAG_0x163 0x163
+#define FLAG_0x164 0x164
+#define FLAG_0x165 0x165
+#define FLAG_0x166 0x166
+#define FLAG_0x167 0x167
+#define FLAG_0x168 0x168
+#define FLAG_0x169 0x169
+#define FLAG_0x16A 0x16A
+#define FLAG_0x16B 0x16B
+#define FLAG_0x16C 0x16C
+#define FLAG_0x16D 0x16D
+#define FLAG_0x16E 0x16E
+#define FLAG_0x16F 0x16F
+#define FLAG_0x170 0x170
+#define FLAG_0x171 0x171
+#define FLAG_0x172 0x172
+#define FLAG_0x173 0x173
+#define FLAG_0x174 0x174
+#define FLAG_0x175 0x175
+#define FLAG_0x176 0x176
+#define FLAG_0x177 0x177
+#define FLAG_0x178 0x178
+#define FLAG_0x179 0x179
+#define FLAG_0x17A 0x17A
+#define FLAG_0x17B 0x17B
+#define FLAG_0x17C 0x17C
+#define FLAG_0x17D 0x17D
+#define FLAG_0x17E 0x17E
+#define FLAG_0x17F 0x17F
+#define FLAG_0x180 0x180
+#define FLAG_0x181 0x181
+#define FLAG_0x182 0x182
+#define FLAG_0x183 0x183
+#define FLAG_0x184 0x184
+#define FLAG_0x185 0x185
+#define FLAG_0x186 0x186
+#define FLAG_0x187 0x187
+#define FLAG_0x188 0x188
+#define FLAG_0x189 0x189
+#define FLAG_0x18A 0x18A
+#define FLAG_0x18B 0x18B
+#define FLAG_0x18C 0x18C
+#define FLAG_0x18D 0x18D
+#define FLAG_0x18E 0x18E
+#define FLAG_0x18F 0x18F
+#define FLAG_0x190 0x190
+#define FLAG_0x191 0x191
+#define FLAG_0x192 0x192
+#define FLAG_0x193 0x193
+#define FLAG_0x194 0x194
+#define FLAG_0x195 0x195
+#define FLAG_0x196 0x196
+#define FLAG_0x197 0x197
+#define FLAG_0x198 0x198
+#define FLAG_0x199 0x199
+#define FLAG_0x19A 0x19A
+#define FLAG_0x19B 0x19B
+#define FLAG_0x19C 0x19C
+#define FLAG_0x19D 0x19D
+#define FLAG_0x19E 0x19E
+#define FLAG_0x19F 0x19F
+#define FLAG_0x1A0 0x1A0
+#define FLAG_0x1A1 0x1A1
+#define FLAG_0x1A2 0x1A2
+#define FLAG_0x1A3 0x1A3
+#define FLAG_0x1A4 0x1A4
+#define FLAG_0x1A5 0x1A5
+#define FLAG_0x1A6 0x1A6
+#define FLAG_0x1A7 0x1A7
+#define FLAG_0x1A8 0x1A8
+#define FLAG_0x1A9 0x1A9
+#define FLAG_0x1AA 0x1AA
+#define FLAG_0x1AB 0x1AB
+#define FLAG_0x1AC 0x1AC
+#define FLAG_0x1AD 0x1AD
+#define FLAG_0x1AE 0x1AE
+#define FLAG_0x1AF 0x1AF
+#define FLAG_0x1B0 0x1B0
+#define FLAG_0x1B1 0x1B1
+#define FLAG_0x1B2 0x1B2
+#define FLAG_0x1B3 0x1B3
+#define FLAG_0x1B4 0x1B4
+#define FLAG_0x1B5 0x1B5
+#define FLAG_0x1B6 0x1B6
+#define FLAG_0x1B7 0x1B7
+#define FLAG_0x1B8 0x1B8
+#define FLAG_0x1B9 0x1B9
+#define FLAG_0x1BA 0x1BA
+#define FLAG_0x1BB 0x1BB
+#define FLAG_0x1BC 0x1BC
+#define FLAG_0x1BD 0x1BD
+#define FLAG_0x1BE 0x1BE
+#define FLAG_0x1BF 0x1BF
+#define FLAG_0x1C0 0x1C0
+#define FLAG_0x1C1 0x1C1
+#define FLAG_0x1C2 0x1C2
+#define FLAG_0x1C3 0x1C3
+#define FLAG_0x1C4 0x1C4
+#define FLAG_0x1C5 0x1C5
+#define FLAG_0x1C6 0x1C6
+#define FLAG_0x1C7 0x1C7
+#define FLAG_0x1C8 0x1C8
+#define FLAG_0x1C9 0x1C9
+#define FLAG_0x1CA 0x1CA
+#define FLAG_0x1CB 0x1CB
+#define FLAG_0x1CC 0x1CC
+#define FLAG_0x1CD 0x1CD
+#define FLAG_0x1CE 0x1CE
+#define FLAG_0x1CF 0x1CF
+#define FLAG_0x1D0 0x1D0
+#define FLAG_0x1D1 0x1D1
+#define FLAG_0x1D2 0x1D2
+#define FLAG_0x1D3 0x1D3
+#define FLAG_0x1D4 0x1D4
+#define FLAG_0x1D5 0x1D5
+#define FLAG_0x1D6 0x1D6
+#define FLAG_0x1D7 0x1D7
+#define FLAG_0x1D8 0x1D8
+#define FLAG_0x1D9 0x1D9
+#define FLAG_0x1DA 0x1DA
+#define FLAG_0x1DB 0x1DB
+#define FLAG_0x1DC 0x1DC
+#define FLAG_0x1DD 0x1DD
+#define FLAG_0x1DE 0x1DE
+#define FLAG_0x1DF 0x1DF
+#define FLAG_0x1E0 0x1E0
+#define FLAG_0x1E1 0x1E1
+#define FLAG_0x1E2 0x1E2
+#define FLAG_0x1E3 0x1E3
+#define FLAG_0x1E4 0x1E4
+#define FLAG_0x1E5 0x1E5
+#define FLAG_0x1E6 0x1E6
+#define FLAG_0x1E7 0x1E7
+#define FLAG_0x1E8 0x1E8
+#define FLAG_0x1E9 0x1E9
+#define FLAG_0x1EA 0x1EA
+#define FLAG_0x1EB 0x1EB
+#define FLAG_0x1EC 0x1EC
+#define FLAG_0x1ED 0x1ED
+#define FLAG_0x1EE 0x1EE
+#define FLAG_0x1EF 0x1EF
+#define FLAG_0x1F0 0x1F0
+#define FLAG_0x1F1 0x1F1
+#define FLAG_0x1F2 0x1F2
+#define FLAG_0x1F3 0x1F3
+#define FLAG_0x1F4 0x1F4
+#define FLAG_0x1F5 0x1F5
+#define FLAG_0x1F6 0x1F6
+#define FLAG_0x1F7 0x1F7
+#define FLAG_0x1F8 0x1F8
+#define FLAG_0x1F9 0x1F9
+#define FLAG_0x1FA 0x1FA
+#define FLAG_0x1FB 0x1FB
+#define FLAG_0x1FC 0x1FC
+#define FLAG_0x1FD 0x1FD
+#define FLAG_0x1FE 0x1FE
+#define FLAG_0x1FF 0x1FF
+#define FLAG_0x200 0x200
+#define FLAG_0x201 0x201
+#define FLAG_0x202 0x202
+#define FLAG_0x203 0x203
+#define FLAG_0x204 0x204
+#define FLAG_0x205 0x205
+#define FLAG_0x206 0x206
+#define FLAG_0x207 0x207
+#define FLAG_0x208 0x208
+#define FLAG_0x209 0x209
+#define FLAG_0x20A 0x20A
+#define FLAG_0x20B 0x20B
+#define FLAG_0x20C 0x20C
+#define FLAG_0x20D 0x20D
+#define FLAG_0x20E 0x20E
+#define FLAG_0x20F 0x20F
+#define FLAG_0x210 0x210
+#define FLAG_0x211 0x211
+#define FLAG_0x212 0x212
+#define FLAG_0x213 0x213
+#define FLAG_0x214 0x214
+#define FLAG_0x215 0x215
+#define FLAG_0x216 0x216
+#define FLAG_0x217 0x217
+#define FLAG_0x218 0x218
+#define FLAG_0x219 0x219
+#define FLAG_0x21A 0x21A
+#define FLAG_0x21B 0x21B
+#define FLAG_0x21C 0x21C
+#define FLAG_0x21D 0x21D
+#define FLAG_0x21E 0x21E
+#define FLAG_0x21F 0x21F
+#define FLAG_0x220 0x220
+#define FLAG_0x221 0x221
+#define FLAG_0x222 0x222
+#define FLAG_0x223 0x223
+#define FLAG_0x224 0x224
+#define FLAG_0x225 0x225
+#define FLAG_0x226 0x226
+#define FLAG_0x227 0x227
+#define FLAG_0x228 0x228
+#define FLAG_0x229 0x229
+#define FLAG_0x22A 0x22A
+#define FLAG_0x22B 0x22B
+#define FLAG_0x22C 0x22C
+#define FLAG_0x22D 0x22D
+#define FLAG_0x22E 0x22E
+#define FLAG_0x22F 0x22F
+#define FLAG_0x230 0x230
+#define FLAG_0x231 0x231
+#define FLAG_0x232 0x232
+#define FLAG_0x233 0x233
+#define FLAG_0x234 0x234
+#define FLAG_0x235 0x235
+#define FLAG_0x236 0x236
+#define FLAG_0x237 0x237
+#define FLAG_0x238 0x238
+#define FLAG_0x239 0x239
+#define FLAG_0x23A 0x23A
+#define FLAG_0x23B 0x23B
+#define FLAG_0x23C 0x23C
+#define FLAG_0x23D 0x23D
+#define FLAG_0x23E 0x23E
+#define FLAG_0x23F 0x23F
+#define FLAG_0x240 0x240
+#define FLAG_0x241 0x241
+#define FLAG_0x242 0x242
+#define FLAG_0x243 0x243
+#define FLAG_0x244 0x244
+#define FLAG_0x245 0x245
+#define FLAG_0x246 0x246
+#define FLAG_0x247 0x247
+#define FLAG_0x248 0x248
+#define FLAG_0x249 0x249
+#define FLAG_0x24A 0x24A
+#define FLAG_0x24B 0x24B
+#define FLAG_0x24C 0x24C
+#define FLAG_0x24D 0x24D
+#define FLAG_0x24E 0x24E
+#define FLAG_0x24F 0x24F
+#define FLAG_0x250 0x250
+#define FLAG_0x251 0x251
+#define FLAG_0x252 0x252
+#define FLAG_0x253 0x253
+#define FLAG_0x254 0x254
+#define FLAG_0x255 0x255
+#define FLAG_0x256 0x256
+#define FLAG_0x257 0x257
+#define FLAG_0x258 0x258
+#define FLAG_0x259 0x259
+#define FLAG_0x25A 0x25A
+#define FLAG_0x25B 0x25B
+#define FLAG_0x25C 0x25C
+#define FLAG_0x25D 0x25D
+#define FLAG_0x25E 0x25E
+#define FLAG_0x25F 0x25F
+#define FLAG_0x260 0x260
+#define FLAG_0x261 0x261
+#define FLAG_0x262 0x262
+#define FLAG_0x263 0x263
+#define FLAG_0x264 0x264
+#define FLAG_0x265 0x265
+#define FLAG_0x266 0x266
+#define FLAG_0x267 0x267
+#define FLAG_0x268 0x268
+#define FLAG_0x269 0x269
+#define FLAG_0x26A 0x26A
+#define FLAG_0x26B 0x26B
+#define FLAG_0x26C 0x26C
+#define FLAG_0x26D 0x26D
+#define FLAG_0x26E 0x26E
+#define FLAG_0x26F 0x26F
+#define FLAG_0x270 0x270
+#define FLAG_0x271 0x271
+#define FLAG_0x272 0x272
+#define FLAG_0x273 0x273
+#define FLAG_0x274 0x274
+#define FLAG_0x275 0x275
+#define FLAG_0x276 0x276
+#define FLAG_0x277 0x277
+#define FLAG_0x278 0x278
+#define FLAG_0x279 0x279
+#define FLAG_0x27A 0x27A
+#define FLAG_0x27B 0x27B
+#define FLAG_0x27C 0x27C
+#define FLAG_0x27D 0x27D
+#define FLAG_0x27E 0x27E
+#define FLAG_0x27F 0x27F
+#define FLAG_0x280 0x280
+#define FLAG_0x281 0x281
+#define FLAG_0x282 0x282
+#define FLAG_0x283 0x283
+#define FLAG_0x284 0x284
+#define FLAG_0x285 0x285
+#define FLAG_0x286 0x286
+#define FLAG_0x287 0x287
+#define FLAG_0x288 0x288
+#define FLAG_0x289 0x289
+#define FLAG_0x28A 0x28A
+#define FLAG_0x28B 0x28B
+#define FLAG_0x28C 0x28C
+#define FLAG_0x28D 0x28D
+#define FLAG_0x28E 0x28E
+#define FLAG_0x28F 0x28F
+#define FLAG_0x290 0x290
+#define FLAG_0x291 0x291
+#define FLAG_0x292 0x292
+#define FLAG_0x293 0x293
+#define FLAG_0x294 0x294
+#define FLAG_0x295 0x295
+#define FLAG_0x296 0x296
+#define FLAG_0x297 0x297
+#define FLAG_0x298 0x298
+#define FLAG_0x299 0x299
+#define FLAG_0x29A 0x29A
+#define FLAG_0x29B 0x29B
+#define FLAG_0x29C 0x29C
+#define FLAG_0x29D 0x29D
+#define FLAG_0x29E 0x29E
+#define FLAG_0x29F 0x29F
+#define FLAG_0x2A0 0x2A0
+#define FLAG_0x2A1 0x2A1
+#define FLAG_0x2A2 0x2A2
+#define FLAG_0x2A3 0x2A3
+#define FLAG_0x2A4 0x2A4
+#define FLAG_0x2A5 0x2A5
+#define FLAG_0x2A6 0x2A6
+#define FLAG_0x2A7 0x2A7
+#define FLAG_0x2A8 0x2A8
+#define FLAG_0x2A9 0x2A9
+#define FLAG_0x2AA 0x2AA
+#define FLAG_0x2AB 0x2AB
+#define FLAG_0x2AC 0x2AC
+#define FLAG_0x2AD 0x2AD
+#define FLAG_0x2AE 0x2AE
+#define FLAG_0x2AF 0x2AF
+#define FLAG_0x2B0 0x2B0
+#define FLAG_0x2B1 0x2B1
+#define FLAG_0x2B2 0x2B2
+#define FLAG_0x2B3 0x2B3
+#define FLAG_0x2B4 0x2B4
+#define FLAG_0x2B5 0x2B5
+#define FLAG_0x2B6 0x2B6
+#define FLAG_0x2B7 0x2B7
+#define FLAG_0x2B8 0x2B8
+#define FLAG_0x2B9 0x2B9
+#define FLAG_0x2BA 0x2BA
+#define FLAG_0x2BB 0x2BB
+#define FLAG_0x2BC 0x2BC
+#define FLAG_0x2BD 0x2BD
+#define FLAG_0x2BE 0x2BE
+#define FLAG_0x2BF 0x2BF
+#define FLAG_0x2C0 0x2C0
+#define FLAG_0x2C1 0x2C1
+#define FLAG_0x2C2 0x2C2
+#define FLAG_0x2C3 0x2C3
+#define FLAG_0x2C4 0x2C4
+#define FLAG_0x2C5 0x2C5
+#define FLAG_0x2C6 0x2C6
+#define FLAG_0x2C7 0x2C7
+#define FLAG_0x2C8 0x2C8
+#define FLAG_0x2C9 0x2C9
+#define FLAG_0x2CA 0x2CA
+#define FLAG_0x2CB 0x2CB
+#define FLAG_0x2CC 0x2CC
+#define FLAG_0x2CD 0x2CD
+#define FLAG_0x2CE 0x2CE
+#define FLAG_0x2CF 0x2CF
+#define FLAG_0x2D0 0x2D0
+#define FLAG_0x2D1 0x2D1
+#define FLAG_0x2D2 0x2D2
+#define FLAG_0x2D3 0x2D3
+#define FLAG_0x2D4 0x2D4
+#define FLAG_0x2D5 0x2D5
+#define FLAG_0x2D6 0x2D6
+#define FLAG_0x2D7 0x2D7
+#define FLAG_0x2D8 0x2D8
+#define FLAG_0x2D9 0x2D9
+#define FLAG_0x2DA 0x2DA
+#define FLAG_0x2DB 0x2DB
+#define FLAG_0x2DC 0x2DC
+#define FLAG_0x2DD 0x2DD
+#define FLAG_0x2DE 0x2DE
+#define FLAG_0x2DF 0x2DF
+#define FLAG_0x2E0 0x2E0
+#define FLAG_0x2E1 0x2E1
+#define FLAG_0x2E2 0x2E2
+#define FLAG_0x2E3 0x2E3
+#define FLAG_0x2E4 0x2E4
+#define FLAG_0x2E5 0x2E5
+#define FLAG_0x2E6 0x2E6
+#define FLAG_0x2E7 0x2E7
+#define FLAG_0x2E8 0x2E8
+#define FLAG_0x2E9 0x2E9
+#define FLAG_0x2EA 0x2EA
+#define FLAG_0x2EB 0x2EB
+#define FLAG_0x2EC 0x2EC
+#define FLAG_0x2ED 0x2ED
+#define FLAG_0x2EE 0x2EE
+#define FLAG_0x2EF 0x2EF
+#define FLAG_0x2F0 0x2F0
+#define FLAG_0x2F1 0x2F1
+#define FLAG_0x2F2 0x2F2
+#define FLAG_0x2F3 0x2F3
+#define FLAG_0x2F4 0x2F4
+#define FLAG_0x2F5 0x2F5
+#define FLAG_0x2F6 0x2F6
+#define FLAG_0x2F7 0x2F7
+#define FLAG_0x2F8 0x2F8
+#define FLAG_0x2F9 0x2F9
+#define FLAG_0x2FA 0x2FA
+#define FLAG_0x2FB 0x2FB
+#define FLAG_0x2FC 0x2FC
+#define FLAG_0x2FD 0x2FD
+#define FLAG_0x2FE 0x2FE
+#define FLAG_0x2FF 0x2FF
+#define FLAG_0x300 0x300
+#define FLAG_0x301 0x301
+#define FLAG_0x302 0x302
+#define FLAG_0x303 0x303
+#define FLAG_0x304 0x304
+#define FLAG_0x305 0x305
+#define FLAG_0x306 0x306
+#define FLAG_0x307 0x307
+#define FLAG_0x308 0x308
+#define FLAG_0x309 0x309
+#define FLAG_0x30A 0x30A
+#define FLAG_0x30B 0x30B
+#define FLAG_0x30C 0x30C
+#define FLAG_0x30D 0x30D
+#define FLAG_0x30E 0x30E
+#define FLAG_0x30F 0x30F
+#define FLAG_0x310 0x310
+#define FLAG_0x311 0x311
+#define FLAG_0x312 0x312
+#define FLAG_0x313 0x313
+#define FLAG_0x314 0x314
+#define FLAG_0x315 0x315
+#define FLAG_0x316 0x316
+#define FLAG_0x317 0x317
+#define FLAG_0x318 0x318
+#define FLAG_0x319 0x319
+#define FLAG_0x31A 0x31A
+#define FLAG_0x31B 0x31B
+#define FLAG_0x31C 0x31C
+#define FLAG_0x31D 0x31D
+#define FLAG_0x31E 0x31E
+#define FLAG_0x31F 0x31F
+#define FLAG_0x320 0x320
+#define FLAG_0x321 0x321
+#define FLAG_0x322 0x322
+#define FLAG_0x323 0x323
+#define FLAG_0x324 0x324
+#define FLAG_0x325 0x325
+#define FLAG_0x326 0x326
+#define FLAG_0x327 0x327
+#define FLAG_0x328 0x328
+#define FLAG_0x329 0x329
+#define FLAG_0x32A 0x32A
+#define FLAG_0x32B 0x32B
+#define FLAG_0x32C 0x32C
+#define FLAG_0x32D 0x32D
+#define FLAG_0x32E 0x32E
+#define FLAG_0x32F 0x32F
+#define FLAG_0x330 0x330
+#define FLAG_0x331 0x331
+#define FLAG_0x332 0x332
+#define FLAG_0x333 0x333
+#define FLAG_0x334 0x334
+#define FLAG_0x335 0x335
+#define FLAG_0x336 0x336
+#define FLAG_0x337 0x337
+#define FLAG_0x338 0x338
+#define FLAG_0x339 0x339
+#define FLAG_0x33A 0x33A
+#define FLAG_0x33B 0x33B
+#define FLAG_0x33C 0x33C
+#define FLAG_0x33D 0x33D
+#define FLAG_0x33E 0x33E
+#define FLAG_0x33F 0x33F
+#define FLAG_0x340 0x340
+#define FLAG_0x341 0x341
+#define FLAG_0x342 0x342
+#define FLAG_0x343 0x343
+#define FLAG_0x344 0x344
+#define FLAG_0x345 0x345
+#define FLAG_0x346 0x346
+#define FLAG_0x347 0x347
+#define FLAG_0x348 0x348
+#define FLAG_0x349 0x349
+#define FLAG_0x34A 0x34A
+#define FLAG_0x34B 0x34B
+#define FLAG_0x34C 0x34C
+#define FLAG_0x34D 0x34D
+#define FLAG_0x34E 0x34E
+#define FLAG_0x34F 0x34F
+#define FLAG_0x350 0x350
+#define FLAG_0x351 0x351
+#define FLAG_0x352 0x352
+#define FLAG_0x353 0x353
+#define FLAG_0x354 0x354
+#define FLAG_0x355 0x355
+#define FLAG_0x356 0x356
+#define FLAG_0x357 0x357
+#define FLAG_0x358 0x358
+#define FLAG_0x359 0x359
+#define FLAG_0x35A 0x35A
+#define FLAG_0x35B 0x35B
+#define FLAG_0x35C 0x35C
+#define FLAG_0x35D 0x35D
+#define FLAG_0x35E 0x35E
+#define FLAG_0x35F 0x35F
+#define FLAG_0x360 0x360
+#define FLAG_0x361 0x361
+#define FLAG_0x362 0x362
+#define FLAG_0x363 0x363
+#define FLAG_0x364 0x364
+#define FLAG_0x365 0x365
+#define FLAG_0x366 0x366
+#define FLAG_0x367 0x367
+#define FLAG_0x368 0x368
+#define FLAG_0x369 0x369
+#define FLAG_0x36A 0x36A
+#define FLAG_0x36B 0x36B
+#define FLAG_0x36C 0x36C
+#define FLAG_0x36D 0x36D
+#define FLAG_0x36E 0x36E
+#define FLAG_0x36F 0x36F
+#define FLAG_0x370 0x370
+#define FLAG_0x371 0x371
+#define FLAG_0x372 0x372
+#define FLAG_0x373 0x373
+#define FLAG_0x374 0x374
+#define FLAG_0x375 0x375
+#define FLAG_0x376 0x376
+#define FLAG_0x377 0x377
+#define FLAG_0x378 0x378
+#define FLAG_0x379 0x379
+#define FLAG_0x37A 0x37A
+#define FLAG_0x37B 0x37B
+#define FLAG_0x37C 0x37C
+#define FLAG_0x37D 0x37D
+#define FLAG_0x37E 0x37E
+#define FLAG_0x37F 0x37F
+#define FLAG_0x380 0x380
+#define FLAG_0x381 0x381
+#define FLAG_0x382 0x382
+#define FLAG_0x383 0x383
+#define FLAG_0x384 0x384
+#define FLAG_0x385 0x385
+#define FLAG_0x386 0x386
+#define FLAG_0x387 0x387
+#define FLAG_0x388 0x388
+#define FLAG_0x389 0x389
+#define FLAG_0x38A 0x38A
+#define FLAG_0x38B 0x38B
+#define FLAG_0x38C 0x38C
+#define FLAG_0x38D 0x38D
+#define FLAG_0x38E 0x38E
+#define FLAG_0x38F 0x38F
+#define FLAG_0x390 0x390
+#define FLAG_0x391 0x391
+#define FLAG_0x392 0x392
+#define FLAG_0x393 0x393
+#define FLAG_0x394 0x394
+#define FLAG_0x395 0x395
+#define FLAG_0x396 0x396
+#define FLAG_0x397 0x397
+#define FLAG_0x398 0x398
+#define FLAG_0x399 0x399
+#define FLAG_0x39A 0x39A
+#define FLAG_0x39B 0x39B
+#define FLAG_0x39C 0x39C
+#define FLAG_0x39D 0x39D
+#define FLAG_0x39E 0x39E
+#define FLAG_0x39F 0x39F
+#define FLAG_0x3A0 0x3A0
+#define FLAG_0x3A1 0x3A1
+#define FLAG_0x3A2 0x3A2
+#define FLAG_0x3A3 0x3A3
+#define FLAG_0x3A4 0x3A4
+#define FLAG_0x3A5 0x3A5
+#define FLAG_0x3A6 0x3A6
+#define FLAG_0x3A7 0x3A7
+#define FLAG_0x3A8 0x3A8
+#define FLAG_0x3A9 0x3A9
+#define FLAG_0x3AA 0x3AA
+#define FLAG_0x3AB 0x3AB
+#define FLAG_0x3AC 0x3AC
+#define FLAG_0x3AD 0x3AD
+#define FLAG_0x3AE 0x3AE
+#define FLAG_0x3AF 0x3AF
+#define FLAG_0x3B0 0x3B0
+#define FLAG_0x3B1 0x3B1
+#define FLAG_0x3B2 0x3B2
+#define FLAG_0x3B3 0x3B3
+#define FLAG_0x3B4 0x3B4
+#define FLAG_0x3B5 0x3B5
+#define FLAG_0x3B6 0x3B6
+#define FLAG_0x3B7 0x3B7
+#define FLAG_0x3B8 0x3B8
+#define FLAG_0x3B9 0x3B9
+#define FLAG_0x3BA 0x3BA
+#define FLAG_0x3BB 0x3BB
+#define FLAG_0x3BC 0x3BC
+#define FLAG_0x3BD 0x3BD
+#define FLAG_0x3BE 0x3BE
+#define FLAG_0x3BF 0x3BF
+#define FLAG_0x3C0 0x3C0
+#define FLAG_0x3C1 0x3C1
+#define FLAG_0x3C2 0x3C2
+#define FLAG_0x3C3 0x3C3
+#define FLAG_0x3C4 0x3C4
+#define FLAG_0x3C5 0x3C5
+#define FLAG_0x3C6 0x3C6
+#define FLAG_0x3C7 0x3C7
+#define FLAG_0x3C8 0x3C8
+#define FLAG_0x3C9 0x3C9
+#define FLAG_0x3CA 0x3CA
+#define FLAG_0x3CB 0x3CB
+#define FLAG_0x3CC 0x3CC
+#define FLAG_0x3CD 0x3CD
+#define FLAG_0x3CE 0x3CE
+#define FLAG_0x3CF 0x3CF
+#define FLAG_0x3D0 0x3D0
+#define FLAG_0x3D1 0x3D1
+#define FLAG_0x3D2 0x3D2
+#define FLAG_0x3D3 0x3D3
+#define FLAG_0x3D4 0x3D4
+#define FLAG_0x3D5 0x3D5
+#define FLAG_0x3D6 0x3D6
+#define FLAG_0x3D7 0x3D7
+#define FLAG_0x3D8 0x3D8
+#define FLAG_0x3D9 0x3D9
+#define FLAG_0x3DA 0x3DA
+#define FLAG_0x3DB 0x3DB
+#define FLAG_0x3DC 0x3DC
+#define FLAG_0x3DD 0x3DD
+#define FLAG_0x3DE 0x3DE
+#define FLAG_0x3DF 0x3DF
+#define FLAG_0x3E0 0x3E0
+#define FLAG_0x3E1 0x3E1
+#define FLAG_0x3E2 0x3E2
+#define FLAG_0x3E3 0x3E3
+#define FLAG_0x3E4 0x3E4
+#define FLAG_0x3E5 0x3E5
+#define FLAG_0x3E6 0x3E6
+#define FLAG_0x3E7 0x3E7
+#define FLAG_0x3E8 0x3E8
+#define FLAG_0x3E9 0x3E9
+#define FLAG_0x3EA 0x3EA
+#define FLAG_0x3EB 0x3EB
+#define FLAG_0x3EC 0x3EC
+#define FLAG_0x3ED 0x3ED
+#define FLAG_0x3EE 0x3EE
+#define FLAG_0x3EF 0x3EF
+#define FLAG_0x3F0 0x3F0
+#define FLAG_0x3F1 0x3F1
+#define FLAG_0x3F2 0x3F2
+#define FLAG_0x3F3 0x3F3
+#define FLAG_0x3F4 0x3F4
+#define FLAG_0x3F5 0x3F5
+#define FLAG_0x3F6 0x3F6
+#define FLAG_0x3F7 0x3F7
+#define FLAG_0x3F8 0x3F8
+#define FLAG_0x3F9 0x3F9
+#define FLAG_0x3FA 0x3FA
+#define FLAG_0x3FB 0x3FB
+#define FLAG_0x3FC 0x3FC
+#define FLAG_0x3FD 0x3FD
+#define FLAG_0x3FE 0x3FE
+#define FLAG_0x3FF 0x3FF
+#define FLAG_0x400 0x400
+#define FLAG_0x401 0x401
+#define FLAG_0x402 0x402
+#define FLAG_0x403 0x403
+#define FLAG_0x404 0x404
+#define FLAG_0x405 0x405
+#define FLAG_0x406 0x406
+#define FLAG_0x407 0x407
+#define FLAG_0x408 0x408
+#define FLAG_0x409 0x409
+#define FLAG_0x40A 0x40A
+#define FLAG_0x40B 0x40B
+#define FLAG_0x40C 0x40C
+#define FLAG_0x40D 0x40D
+#define FLAG_0x40E 0x40E
+#define FLAG_0x40F 0x40F
+#define FLAG_0x410 0x410
+#define FLAG_0x411 0x411
+#define FLAG_0x412 0x412
+#define FLAG_0x413 0x413
+#define FLAG_0x414 0x414
+#define FLAG_0x415 0x415
+#define FLAG_0x416 0x416
+#define FLAG_0x417 0x417
+#define FLAG_0x418 0x418
+#define FLAG_0x419 0x419
+#define FLAG_0x41A 0x41A
+#define FLAG_0x41B 0x41B
+#define FLAG_0x41C 0x41C
+#define FLAG_0x41D 0x41D
+#define FLAG_0x41E 0x41E
+#define FLAG_0x41F 0x41F
+#define FLAG_0x420 0x420
+#define FLAG_0x421 0x421
+#define FLAG_0x422 0x422
+#define FLAG_0x423 0x423
+#define FLAG_0x424 0x424
+#define FLAG_0x425 0x425
+#define FLAG_0x426 0x426
+#define FLAG_0x427 0x427
+#define FLAG_0x428 0x428
+#define FLAG_0x429 0x429
+#define FLAG_0x42A 0x42A
+#define FLAG_0x42B 0x42B
+#define FLAG_0x42C 0x42C
+#define FLAG_0x42D 0x42D
+#define FLAG_0x42E 0x42E
+#define FLAG_0x42F 0x42F
+#define FLAG_0x430 0x430
+#define FLAG_0x431 0x431
+#define FLAG_0x432 0x432
+#define FLAG_0x433 0x433
+#define FLAG_0x434 0x434
+#define FLAG_0x435 0x435
+#define FLAG_0x436 0x436
+#define FLAG_0x437 0x437
+#define FLAG_0x438 0x438
+#define FLAG_0x439 0x439
+#define FLAG_0x43A 0x43A
+#define FLAG_0x43B 0x43B
+#define FLAG_0x43C 0x43C
+#define FLAG_0x43D 0x43D
+#define FLAG_0x43E 0x43E
+#define FLAG_0x43F 0x43F
+#define FLAG_0x440 0x440
+#define FLAG_0x441 0x441
+#define FLAG_0x442 0x442
+#define FLAG_0x443 0x443
+#define FLAG_0x444 0x444
+#define FLAG_0x445 0x445
+#define FLAG_0x446 0x446
+#define FLAG_0x447 0x447
+#define FLAG_0x448 0x448
+#define FLAG_0x449 0x449
+#define FLAG_0x44A 0x44A
+#define FLAG_0x44B 0x44B
+#define FLAG_0x44C 0x44C
+#define FLAG_0x44D 0x44D
+#define FLAG_0x44E 0x44E
+#define FLAG_0x44F 0x44F
+#define FLAG_0x450 0x450
+#define FLAG_0x451 0x451
+#define FLAG_0x452 0x452
+#define FLAG_0x453 0x453
+#define FLAG_0x454 0x454
+#define FLAG_0x455 0x455
+#define FLAG_0x456 0x456
+#define FLAG_0x457 0x457
+#define FLAG_0x458 0x458
+#define FLAG_0x459 0x459
+#define FLAG_0x45A 0x45A
+#define FLAG_0x45B 0x45B
+#define FLAG_0x45C 0x45C
+#define FLAG_0x45D 0x45D
+#define FLAG_0x45E 0x45E
+#define FLAG_0x45F 0x45F
+#define FLAG_0x460 0x460
+#define FLAG_0x461 0x461
+#define FLAG_0x462 0x462
+#define FLAG_0x463 0x463
+#define FLAG_0x464 0x464
+#define FLAG_0x465 0x465
+#define FLAG_0x466 0x466
+#define FLAG_0x467 0x467
+#define FLAG_0x468 0x468
+#define FLAG_0x469 0x469
+#define FLAG_0x46A 0x46A
+#define FLAG_0x46B 0x46B
+#define FLAG_0x46C 0x46C
+#define FLAG_0x46D 0x46D
+#define FLAG_0x46E 0x46E
+#define FLAG_0x46F 0x46F
+#define FLAG_0x470 0x470
+#define FLAG_0x471 0x471
+#define FLAG_0x472 0x472
+#define FLAG_0x473 0x473
+#define FLAG_0x474 0x474
+#define FLAG_0x475 0x475
+#define FLAG_0x476 0x476
+#define FLAG_0x477 0x477
+#define FLAG_0x478 0x478
+#define FLAG_0x479 0x479
+#define FLAG_0x47A 0x47A
+#define FLAG_0x47B 0x47B
+#define FLAG_0x47C 0x47C
+#define FLAG_0x47D 0x47D
+#define FLAG_0x47E 0x47E
+#define FLAG_0x47F 0x47F
+#define FLAG_0x480 0x480
+#define FLAG_0x481 0x481
+#define FLAG_0x482 0x482
+#define FLAG_0x483 0x483
+#define FLAG_0x484 0x484
+#define FLAG_0x485 0x485
+#define FLAG_0x486 0x486
+#define FLAG_0x487 0x487
+#define FLAG_0x488 0x488
+#define FLAG_0x489 0x489
+#define FLAG_0x48A 0x48A
+#define FLAG_0x48B 0x48B
+#define FLAG_0x48C 0x48C
+#define FLAG_0x48D 0x48D
+#define FLAG_0x48E 0x48E
+#define FLAG_0x48F 0x48F
+#define FLAG_0x490 0x490
+#define FLAG_0x491 0x491
+#define FLAG_0x492 0x492
+#define FLAG_0x493 0x493
+#define FLAG_0x494 0x494
+#define FLAG_0x495 0x495
+#define FLAG_0x496 0x496
+#define FLAG_0x497 0x497
+#define FLAG_0x498 0x498
+#define FLAG_0x499 0x499
+#define FLAG_0x49A 0x49A
+#define FLAG_0x49B 0x49B
+#define FLAG_0x49C 0x49C
+#define FLAG_0x49D 0x49D
+#define FLAG_0x49E 0x49E
+#define FLAG_0x49F 0x49F
+#define FLAG_0x4A0 0x4A0
+#define FLAG_0x4A1 0x4A1
+#define FLAG_0x4A2 0x4A2
+#define FLAG_0x4A3 0x4A3
+#define FLAG_0x4A4 0x4A4
+#define FLAG_0x4A5 0x4A5
+#define FLAG_0x4A6 0x4A6
+#define FLAG_0x4A7 0x4A7
+#define FLAG_0x4A8 0x4A8
+#define FLAG_0x4A9 0x4A9
+#define FLAG_0x4AA 0x4AA
+#define FLAG_0x4AB 0x4AB
+#define FLAG_0x4AC 0x4AC
+#define FLAG_0x4AD 0x4AD
+#define FLAG_0x4AE 0x4AE
+#define FLAG_0x4AF 0x4AF
+#define FLAG_0x4B0 0x4B0
+#define FLAG_0x4B1 0x4B1
+#define FLAG_0x4B2 0x4B2
+#define FLAG_0x4B3 0x4B3
+#define FLAG_0x4B4 0x4B4
+#define FLAG_0x4B5 0x4B5
+#define FLAG_0x4B6 0x4B6
+#define FLAG_0x4B7 0x4B7
+#define FLAG_0x4B8 0x4B8
+#define FLAG_0x4B9 0x4B9
+#define FLAG_0x4BA 0x4BA
+#define FLAG_0x4BB 0x4BB
+#define FLAG_0x4BC 0x4BC
+#define FLAG_0x4BD 0x4BD
+#define FLAG_0x4BE 0x4BE
+#define FLAG_0x4BF 0x4BF
+#define FLAG_0x4C0 0x4C0
+#define FLAG_0x4C1 0x4C1
+#define FLAG_0x4C2 0x4C2
+#define FLAG_0x4C3 0x4C3
+#define FLAG_0x4C4 0x4C4
+#define FLAG_0x4C5 0x4C5
+#define FLAG_0x4C6 0x4C6
+#define FLAG_0x4C7 0x4C7
+#define FLAG_0x4C8 0x4C8
+#define FLAG_0x4C9 0x4C9
+#define FLAG_0x4CA 0x4CA
+#define FLAG_0x4CB 0x4CB
+#define FLAG_0x4CC 0x4CC
+#define FLAG_0x4CD 0x4CD
+#define FLAG_0x4CE 0x4CE
+#define FLAG_0x4CF 0x4CF
+#define FLAG_0x4D0 0x4D0
+#define FLAG_0x4D1 0x4D1
+#define FLAG_0x4D2 0x4D2
+#define FLAG_0x4D3 0x4D3
+#define FLAG_0x4D4 0x4D4
+#define FLAG_0x4D5 0x4D5
+#define FLAG_0x4D6 0x4D6
+#define FLAG_0x4D7 0x4D7
+#define FLAG_0x4D8 0x4D8
+#define FLAG_0x4D9 0x4D9
+#define FLAG_0x4DA 0x4DA
+#define FLAG_0x4DB 0x4DB
+#define FLAG_0x4DC 0x4DC
+#define FLAG_0x4DD 0x4DD
+#define FLAG_0x4DE 0x4DE
+#define FLAG_0x4DF 0x4DF
+#define FLAG_0x4E0 0x4E0
+#define FLAG_0x4E1 0x4E1
+#define FLAG_0x4E2 0x4E2
+#define FLAG_0x4E3 0x4E3
+#define FLAG_0x4E4 0x4E4
+#define FLAG_0x4E5 0x4E5
+#define FLAG_0x4E6 0x4E6
+#define FLAG_0x4E7 0x4E7
+#define FLAG_0x4E8 0x4E8
+#define FLAG_0x4E9 0x4E9
+#define FLAG_0x4EA 0x4EA
+#define FLAG_0x4EB 0x4EB
+#define FLAG_0x4EC 0x4EC
+#define FLAG_0x4ED 0x4ED
+#define FLAG_0x4EE 0x4EE
+#define FLAG_0x4EF 0x4EF
+#define FLAG_0x4F0 0x4F0
+#define FLAG_0x4F1 0x4F1
+#define FLAG_0x4F2 0x4F2
+#define FLAG_0x4F3 0x4F3
+#define FLAG_0x4F4 0x4F4
+#define FLAG_0x4F5 0x4F5
+#define FLAG_0x4F6 0x4F6
+#define FLAG_0x4F7 0x4F7
+#define FLAG_0x4F8 0x4F8
+#define FLAG_0x4F9 0x4F9
+#define FLAG_0x4FA 0x4FA
+#define FLAG_0x4FB 0x4FB
+#define FLAG_0x4FC 0x4FC
+#define FLAG_0x4FD 0x4FD
+#define FLAG_0x4FE 0x4FE
+#define FLAG_0x4FF 0x4FF
+
+#define FLAG_TRAINER_FLAG_START 0x500
+
+#define TRAINERS_FLAG_NO 0x356
+#define CODE_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860
+
+// SYSTEM FLAGS
+
+// 0x860
+#define FLAG_SYS_POKEMON_GET (CODE_FLAGS + 0)
+#define FLAG_SYS_POKEDEX_GET (CODE_FLAGS + 1)
+#define FLAG_SYS_POKENAV_GET (CODE_FLAGS + 2)
+// third one appears unused
+#define FLAG_SYS_GAME_CLEAR (CODE_FLAGS + 4)
+#define FLAG_SYS_CHAT_USED (CODE_FLAGS + 5)
+#define FLAG_SYS_HIPSTER_MEET (CODE_FLAGS + 6)
+
+// badges
+#define FLAG_BADGE01_GET (CODE_FLAGS + 7)
+#define FLAG_BADGE02_GET (CODE_FLAGS + 8)
+#define FLAG_BADGE03_GET (CODE_FLAGS + 9)
+#define FLAG_BADGE04_GET (CODE_FLAGS + 0xA)
+#define FLAG_BADGE05_GET (CODE_FLAGS + 0xB)
+#define FLAG_BADGE06_GET (CODE_FLAGS + 0xC)
+#define FLAG_BADGE07_GET (CODE_FLAGS + 0xD)
+#define FLAG_BADGE08_GET (CODE_FLAGS + 0xE)
+
+// cities and towns
+#define FLAG_VISITED_LITTLEROOT_TOWN (CODE_FLAGS + 0xF)
+#define FLAG_VISITED_OLDALE_TOWN (CODE_FLAGS + 0x10)
+#define FLAG_VISITED_DEWFORD_TOWN (CODE_FLAGS + 0x11)
+#define FLAG_VISITED_LAVARIDGE_TOWN (CODE_FLAGS + 0x12)
+#define FLAG_VISITED_FALLARBOR_TOWN (CODE_FLAGS + 0x13)
+#define FLAG_VISITED_VERDANTURF_TOWN (CODE_FLAGS + 0x14)
+#define FLAG_VISITED_PACIFIDLOG_TOWN (CODE_FLAGS + 0x15)
+#define FLAG_VISITED_PETALBURG_CITY (CODE_FLAGS + 0x16)
+#define FLAG_VISITED_SLATEPORT_CITY (CODE_FLAGS + 0x17)
+#define FLAG_VISITED_MAUVILLE_CITY (CODE_FLAGS + 0x18)
+#define FLAG_VISITED_RUSTBORO_CITY (CODE_FLAGS + 0x19)
+#define FLAG_VISITED_FORTREE_CITY (CODE_FLAGS + 0x1A)
+#define FLAG_VISITED_LILYCOVE_CITY (CODE_FLAGS + 0x1B)
+#define FLAG_VISITED_MOSSDEEP_CITY (CODE_FLAGS + 0x1C)
+#define FLAG_VISITED_SOOTOPOLIS_CITY (CODE_FLAGS + 0x1D)
+#define FLAG_VISITED_EVER_GRANDE_CITY (CODE_FLAGS + 0x1E)
+
+#define FLAG_0x87F (CODE_FLAGS + 0x1F)
+#define FLAG_0x880 (CODE_FLAGS + 0x20)
+#define FLAG_0x881 (CODE_FLAGS + 0x21)
+#define FLAG_0x882 (CODE_FLAGS + 0x22)
+#define FLAG_0x883 (CODE_FLAGS + 0x23)
+#define FLAG_0x884 (CODE_FLAGS + 0x24)
+#define FLAG_0x885 (CODE_FLAGS + 0x25)
+#define FLAG_0x886 (CODE_FLAGS + 0x26)
+#define FLAG_0x887 (CODE_FLAGS + 0x27)
+
+#define FLAG_SYS_USE_FLASH (CODE_FLAGS + 0x28)
+#define FLAG_SYS_USE_STRENGTH (CODE_FLAGS + 0x29)
+#define FLAG_SYS_WEATHER_CTRL (CODE_FLAGS + 0x2A)
+#define FLAG_SYS_CYCLING_ROAD (CODE_FLAGS + 0x2B)
+#define FLAG_SYS_SAFARI_MODE (CODE_FLAGS + 0x2C)
+#define FLAG_SYS_CRUISE_MODE (CODE_FLAGS + 0x2D)
+
+#define FLAG_0x88E (CODE_FLAGS + 0x2E)
+#define FLAG_0x88F (CODE_FLAGS + 0x2F)
+
+#define FLAG_SYS_TV_HOME (CODE_FLAGS + 0x30)
+#define FLAG_SYS_TV_WATCH (CODE_FLAGS + 0x31)
+#define FLAG_SYS_TV_START (CODE_FLAGS + 0x32)
+#define FLAG_SYS_POPWORD_INPUT (CODE_FLAGS + 0x33)
+#define FLAG_SYS_MIX_RECORD (CODE_FLAGS + 0x34)
+#define FLAG_SYS_CLOCK_SET (CODE_FLAGS + 0x35)
+#define FLAG_SYS_NATIONAL_DEX (CODE_FLAGS + 0x36)
+#define FLAG_SYS_CAVE_SHIP (CODE_FLAGS + 0x37)
+#define FLAG_SYS_CAVE_WONDER (CODE_FLAGS + 0x38)
+#define FLAG_SYS_CAVE_BATTLE (CODE_FLAGS + 0x39)
+#define FLAG_SYS_SHOAL_TIDE (CODE_FLAGS + 0x3A)
+#define FLAG_SYS_RIBBON_GET (CODE_FLAGS + 0x3B)
+
+#define FLAG_0x89C (CODE_FLAGS + 0x3C)
+#define FLAG_0x89D (CODE_FLAGS + 0x3D)
+#define FLAG_0x89E (CODE_FLAGS + 0x3E)
+#define FLAG_0x89F (CODE_FLAGS + 0x3F)
+#define FLAG_0x8A0 (CODE_FLAGS + 0x40)
+#define FLAG_0x8A1 (CODE_FLAGS + 0x41)
+#define FLAG_0x8A2 (CODE_FLAGS + 0x42)
+#define FLAG_0x8A3 (CODE_FLAGS + 0x43)
+#define FLAG_0x8A4 (CODE_FLAGS + 0x44)
+#define FLAG_0x8A5 (CODE_FLAGS + 0x45)
+#define FLAG_0x8A6 (CODE_FLAGS + 0x46)
+#define FLAG_0x8A7 (CODE_FLAGS + 0x47)
+#define FLAG_UNLOCK_BATTLE_FRONTIER (CODE_FLAGS + 0x48)
+#define FLAG_UNLOCK_SOUTHERN_ISLAND (CODE_FLAGS + 0x49)
+#define FLAG_0x8AA (CODE_FLAGS + 0x4A)
+
+#define FLAG_SYS_PC_LANETTE (CODE_FLAGS + 0x4B)
+#define FLAG_SYS_MYSTERY_EVENT_ENABLE (CODE_FLAGS + 0x4C)
+#define FLAG_SYS_ENC_UP_ITEM (CODE_FLAGS + 0x4D)
+#define FLAG_SYS_ENC_DOWN_ITEM (CODE_FLAGS + 0x4E)
+#define FLAG_SYS_BRAILLE_DIG (CODE_FLAGS + 0x4F)
+#define FLAG_SYS_BRAILLE_STRENGTH (CODE_FLAGS + 0x50)
+#define FLAG_SYS_BRAILLE_WAIT (CODE_FLAGS + 0x51)
+#define FLAG_SYS_BRAILLE_FLY (CODE_FLAGS + 0x52)
+#define FLAG_SYS_HAS_EON_TICKET (CODE_FLAGS + 0x53)
+
+#define FLAG_SYS_POKEMON_LEAGUE_FLY (CODE_FLAGS + 0x54)
+
+#define FLAG_0x8B5 (CODE_FLAGS + 0x55)
+#define FLAG_0x8B6 (CODE_FLAGS + 0x56)
+#define FLAG_0x8B7 (CODE_FLAGS + 0x57)
+#define FLAG_0x8B8 (CODE_FLAGS + 0x58)
+#define FLAG_0x8B9 (CODE_FLAGS + 0x59)
+#define FLAG_0x8BA (CODE_FLAGS + 0x5A)
+#define FLAG_0x8BB (CODE_FLAGS + 0x5B)
+#define FLAG_0x8BC (CODE_FLAGS + 0x5C)
+
+#define FLAG_SYS_TV_LATI (CODE_FLAGS + 0x5D)
+
+#define FLAG_0x8BE (CODE_FLAGS + 0x5E)
+
+#define FLAG_SYS_SHOAL_ITEM (CODE_FLAGS + 0x5F)
+#define FLAG_SYS_B_DASH (CODE_FLAGS + 0x60) // got Running Shoes
+#define FLAG_SYS_CTRL_OBJ_DELETE (CODE_FLAGS + 0x61)
+#define FLAG_SYS_RESET_RTC_ENABLE (CODE_FLAGS + 0x62)
+
+#define FLAG_0x8C3 (CODE_FLAGS + 0x63)
+
+#define FLAG_SYS_TOWER_SILVER (CODE_FLAGS + 0x64)
+#define FLAG_SYS_TOWER_GOLD (CODE_FLAGS + 0x65)
+#define FLAG_SYS_DOME_SILVER (CODE_FLAGS + 0x66)
+#define FLAG_SYS_DOME_GOLD (CODE_FLAGS + 0x67)
+#define FLAG_SYS_PALACE_SILVER (CODE_FLAGS + 0x68)
+#define FLAG_SYS_PALACE_GOLD (CODE_FLAGS + 0x69)
+#define FLAG_SYS_ARENA_SILVER (CODE_FLAGS + 0x6A)
+#define FLAG_SYS_ARENA_GOLD (CODE_FLAGS + 0x6B)
+#define FLAG_SYS_FACTORY_SILVER (CODE_FLAGS + 0x6C)
+#define FLAG_SYS_FACTORY_GOLD (CODE_FLAGS + 0x6D)
+#define FLAG_SYS_PIKE_SILVER (CODE_FLAGS + 0x6E)
+#define FLAG_SYS_PIKE_GOLD (CODE_FLAGS + 0x6F)
+#define FLAG_SYS_PYRAMID_SILVER (CODE_FLAGS + 0x70)
+#define FLAG_SYS_PYRAMID_GOLD (CODE_FLAGS + 0x71)
+#define FLAG_SYS_FRONTIER_PASS (CODE_FLAGS + 0x72)
+
+#define FLAG_0x8D3 (CODE_FLAGS + 0x73)
+#define FLAG_0x8D4 (CODE_FLAGS + 0x74)
+#define FLAG_0x8D5 (CODE_FLAGS + 0x75)
+#define FLAG_0x8D6 (CODE_FLAGS + 0x76)
+
+#define FLAG_SYS_STORAGE_UNKNOWN_FLAG (CODE_FLAGS + 0x77)
+
+#define FLAG_0x8D8 (CODE_FLAGS + 0x78)
+#define FLAG_0x8D9 (CODE_FLAGS + 0x79)
+#define FLAG_0x8DA (CODE_FLAGS + 0x7A)
+
+#define FLAG_SYS_MYSTERY_GIFT_ENABLE (CODE_FLAGS + 0x7B)
+
+#define FLAG_0x8DC (CODE_FLAGS + 0x7C)
+#define FLAG_0x8DD (CODE_FLAGS + 0x7D)
+#define FLAG_0x8DE (CODE_FLAGS + 0x7E)
+#define FLAG_0x8DF (CODE_FLAGS + 0x7F)
+#define FLAG_0x8E0 (CODE_FLAGS + 0x80)
+#define FLAG_0x8E1 (CODE_FLAGS + 0x81)
+#define FLAG_0x8E2 (CODE_FLAGS + 0x82)
+#define FLAG_0x8E3 (CODE_FLAGS + 0x83)
+#define FLAG_0x8E4 (CODE_FLAGS + 0x84)
+#define FLAG_0x8E5 (CODE_FLAGS + 0x85)
+#define FLAG_0x8E6 (CODE_FLAGS + 0x86)
+#define FLAG_0x8E7 (CODE_FLAGS + 0x87)
+#define FLAG_0x8E8 (CODE_FLAGS + 0x88)
+#define FLAG_0x8E9 (CODE_FLAGS + 0x89)
+#define FLAG_0x8EA (CODE_FLAGS + 0x8A)
+#define FLAG_0x8EB (CODE_FLAGS + 0x8B)
+#define FLAG_0x8EC (CODE_FLAGS + 0x8C)
+#define FLAG_0x8ED (CODE_FLAGS + 0x8D)
+#define FLAG_0x8EE (CODE_FLAGS + 0x8E)
+#define FLAG_0x8EF (CODE_FLAGS + 0x8F)
+#define FLAG_0x8F0 (CODE_FLAGS + 0x90)
+#define FLAG_0x8F1 (CODE_FLAGS + 0x91)
+#define FLAG_0x8F2 (CODE_FLAGS + 0x92)
+#define FLAG_0x8F3 (CODE_FLAGS + 0x93)
+#define FLAG_0x8F4 (CODE_FLAGS + 0x94)
+#define FLAG_0x8F5 (CODE_FLAGS + 0x95)
+#define FLAG_0x8F6 (CODE_FLAGS + 0x96)
+#define FLAG_0x8F7 (CODE_FLAGS + 0x97)
+#define FLAG_0x8F8 (CODE_FLAGS + 0x98)
+#define FLAG_0x8F9 (CODE_FLAGS + 0x99)
+#define FLAG_0x8FA (CODE_FLAGS + 0x9A)
+#define FLAG_0x8FB (CODE_FLAGS + 0x9B)
+#define FLAG_0x8FC (CODE_FLAGS + 0x9C)
+#define FLAG_0x8FD (CODE_FLAGS + 0x9D)
+#define FLAG_0x8FE (CODE_FLAGS + 0x9E)
+#define FLAG_0x8FF (CODE_FLAGS + 0x9F)
+#define FLAG_0x900 (CODE_FLAGS + 0xA0)
+#define FLAG_0x901 (CODE_FLAGS + 0xA1)
+#define FLAG_0x902 (CODE_FLAGS + 0xA2)
+#define FLAG_0x903 (CODE_FLAGS + 0xA3)
+#define FLAG_0x904 (CODE_FLAGS + 0xA4)
+#define FLAG_0x905 (CODE_FLAGS + 0xA5)
+#define FLAG_0x906 (CODE_FLAGS + 0xA6)
+#define FLAG_0x907 (CODE_FLAGS + 0xA7)
+#define FLAG_0x908 (CODE_FLAGS + 0xA8)
+#define FLAG_0x909 (CODE_FLAGS + 0xA9)
+#define FLAG_0x90A (CODE_FLAGS + 0xAA)
+#define FLAG_0x90B (CODE_FLAGS + 0xAB)
+#define FLAG_0x90C (CODE_FLAGS + 0xAC)
+#define FLAG_0x90D (CODE_FLAGS + 0xAD)
+#define FLAG_0x90E (CODE_FLAGS + 0xAE)
+#define FLAG_0x90F (CODE_FLAGS + 0xAF)
+#define FLAG_0x910 (CODE_FLAGS + 0xB0)
+#define FLAG_0x911 (CODE_FLAGS + 0xB1)
+#define FLAG_0x912 (CODE_FLAGS + 0xB2)
+#define FLAG_0x913 (CODE_FLAGS + 0xB3)
+#define FLAG_0x914 (CODE_FLAGS + 0xB4)
+#define FLAG_0x915 (CODE_FLAGS + 0xB5)
+#define FLAG_0x916 (CODE_FLAGS + 0xB6)
+#define FLAG_0x917 (CODE_FLAGS + 0xB7)
+#define FLAG_0x918 (CODE_FLAGS + 0xB8)
+#define FLAG_0x919 (CODE_FLAGS + 0xB9)
+#define FLAG_0x91A (CODE_FLAGS + 0xBA)
+#define FLAG_0x91B (CODE_FLAGS + 0xBB)
+#define FLAG_0x91C (CODE_FLAGS + 0xBC)
+#define FLAG_0x91D (CODE_FLAGS + 0xBD)
+#define FLAG_0x91E (CODE_FLAGS + 0xBE)
+#define FLAG_0x91F (CODE_FLAGS + 0xBF)
+#define FLAG_0x920 (CODE_FLAGS + 0xC0)
+#define FLAG_0x921 (CODE_FLAGS + 0xC1)
+#define FLAG_0x922 (CODE_FLAGS + 0xC2)
+#define FLAG_0x923 (CODE_FLAGS + 0xC3)
+#define FLAG_0x924 (CODE_FLAGS + 0xC4)
+#define FLAG_0x925 (CODE_FLAGS + 0xC5)
+#define FLAG_0x926 (CODE_FLAGS + 0xC6)
+#define FLAG_0x927 (CODE_FLAGS + 0xC7)
+#define FLAG_0x928 (CODE_FLAGS + 0xC8)
+#define FLAG_0x929 (CODE_FLAGS + 0xC9)
+#define FLAG_0x92A (CODE_FLAGS + 0xCA)
+#define FLAG_0x92B (CODE_FLAGS + 0xCB)
+#define FLAG_0x92C (CODE_FLAGS + 0xCC)
+#define FLAG_0x92D (CODE_FLAGS + 0xCD)
+#define FLAG_0x92E (CODE_FLAGS + 0xCE)
+#define FLAG_0x92F (CODE_FLAGS + 0xCF)
+#define FLAG_0x930 (CODE_FLAGS + 0xD0)
+#define FLAG_0x931 (CODE_FLAGS + 0xD1)
+#define FLAG_0x932 (CODE_FLAGS + 0xD2)
+#define FLAG_0x933 (CODE_FLAGS + 0xD3)
+#define FLAG_0x934 (CODE_FLAGS + 0xD4)
+#define FLAG_0x935 (CODE_FLAGS + 0xD5)
+#define FLAG_0x936 (CODE_FLAGS + 0xD6)
+#define FLAG_0x937 (CODE_FLAGS + 0xD7)
+#define FLAG_0x938 (CODE_FLAGS + 0xD8)
+#define FLAG_0x939 (CODE_FLAGS + 0xD9)
+#define FLAG_0x93A (CODE_FLAGS + 0xDA)
+#define FLAG_0x93B (CODE_FLAGS + 0xDB)
+#define FLAG_0x93C (CODE_FLAGS + 0xDC)
+#define FLAG_0x93D (CODE_FLAGS + 0xDD)
+#define FLAG_0x93E (CODE_FLAGS + 0xDE)
+#define FLAG_0x93F (CODE_FLAGS + 0xDF)
+#define FLAG_0x940 (CODE_FLAGS + 0xE0)
+#define FLAG_0x941 (CODE_FLAGS + 0xE1)
+#define FLAG_0x942 (CODE_FLAGS + 0xE2)
+#define FLAG_0x943 (CODE_FLAGS + 0xE3)
+#define FLAG_0x944 (CODE_FLAGS + 0xE4)
+#define FLAG_0x945 (CODE_FLAGS + 0xE5)
+#define FLAG_0x946 (CODE_FLAGS + 0xE6)
+#define FLAG_0x947 (CODE_FLAGS + 0xE7)
+#define FLAG_0x948 (CODE_FLAGS + 0xE8)
+#define FLAG_0x949 (CODE_FLAGS + 0xE9)
+#define FLAG_0x94A (CODE_FLAGS + 0xEA)
+#define FLAG_0x94B (CODE_FLAGS + 0xEB)
+#define FLAG_0x94C (CODE_FLAGS + 0xEC)
+#define FLAG_0x94D (CODE_FLAGS + 0xED)
+#define FLAG_0x94E (CODE_FLAGS + 0xEE)
+#define FLAG_0x94F (CODE_FLAGS + 0xEF)
+#define FLAG_0x950 (CODE_FLAGS + 0xF0)
+#define FLAG_0x951 (CODE_FLAGS + 0xF1)
+#define FLAG_0x952 (CODE_FLAGS + 0xF2)
+#define FLAG_0x953 (CODE_FLAGS + 0xF3)
+#define FLAG_0x954 (CODE_FLAGS + 0xF4)
+#define FLAG_0x955 (CODE_FLAGS + 0xF5)
+#define FLAG_0x956 (CODE_FLAGS + 0xF6)
+#define FLAG_0x957 (CODE_FLAGS + 0xF7)
+#define FLAG_0x958 (CODE_FLAGS + 0xF8)
+#define FLAG_0x959 (CODE_FLAGS + 0xF9)
+#define FLAG_0x95A (CODE_FLAGS + 0xFA)
+#define FLAG_0x95B (CODE_FLAGS + 0xFB)
+#define FLAG_0x95C (CODE_FLAGS + 0xFC)
+#define FLAG_0x95D (CODE_FLAGS + 0xFD)
+#define FLAG_0x95E (CODE_FLAGS + 0xFE)
+#define FLAG_0x95F (CODE_FLAGS + 0xFF)
+
+// SPECIAL FLAGS (unknown purpose)
+#define FLAG_SPECIAL_FLAG_0x4000 0x4000
+#define FLAG_SPECIAL_FLAG_0x4001 0x4001
+#define FLAG_SPECIAL_FLAG_0x4002 0x4002
+#define FLAG_SPECIAL_FLAG_0x4003 0x4003
+#define FLAG_SPECIAL_FLAG_0x4004 0x4004
+
+#endif // GUARD_CONSTANTS_FLAGS_H
diff --git a/include/constants/game_stat.h b/include/constants/game_stat.h
new file mode 100644
index 000000000..b1f3d4197
--- /dev/null
+++ b/include/constants/game_stat.h
@@ -0,0 +1,59 @@
+#ifndef GUARD_CONSTANTS_GAME_STAT_H
+#define GUARD_CONSTANTS_GAME_STAT_H
+
+#define GAME_STAT_SAVED_GAME 0
+#define GAME_STAT_FIRST_HOF_PLAY_TIME 1
+#define GAME_STAT_STARTED_TRENDS 2
+#define GAME_STAT_PLANTED_BERRIES 3
+#define GAME_STAT_TRADED_BIKES 4
+#define GAME_STAT_STEPS 5
+#define GAME_STAT_GOT_INTERVIEWED 6
+#define GAME_STAT_TOTAL_BATTLES 7
+#define GAME_STAT_WILD_BATTLES 8
+#define GAME_STAT_TRAINER_BATTLES 9
+#define GAME_STAT_ENTERED_HOF 10
+#define GAME_STAT_POKEMON_CAPTURES 11
+#define GAME_STAT_FISHING_CAPTURES 12
+#define GAME_STAT_HATCHED_EGGS 13
+#define GAME_STAT_EVOLVED_POKEMON 14
+#define GAME_STAT_USED_POKECENTER 15
+#define GAME_STAT_RESTED_AT_HOME 16
+#define GAME_STAT_ENTERED_SAFARI_ZONE 17
+#define GAME_STAT_USED_CUT 18
+#define GAME_STAT_USED_ROCK_SMASH 19
+#define GAME_STAT_MOVED_SECRET_BASE 20
+#define GAME_STAT_POKEMON_TRADES 21
+#define GAME_STAT_UNKNOWN_22 22
+#define GAME_STAT_LINK_BATTLE_WINS 23
+#define GAME_STAT_LINK_BATTLE_LOSSES 24
+#define GAME_STAT_LINK_BATTLE_DRAWS 25
+#define GAME_STAT_USED_SPLASH 26
+#define GAME_STAT_USED_STRUGGLE 27
+#define GAME_STAT_SLOT_JACKPOTS 28
+#define GAME_STAT_CONSECUTIVE_ROULETTE_WINS 29
+#define GAME_STAT_ENTERED_BATTLE_TOWER 30
+#define GAME_STAT_UNKNOWN_31 31
+#define GAME_STAT_BATTLE_TOWER_BEST_STREAK 32
+#define GAME_STAT_POKEBLOCKS 33
+#define GAME_STAT_POKEBLOCKS_WITH_FRIENDS 34
+#define GAME_STAT_WON_LINK_CONTEST 35
+#define GAME_STAT_ENTERED_CONTEST 36
+#define GAME_STAT_WON_CONTEST 37
+#define GAME_STAT_SHOPPED 38
+#define GAME_STAT_USED_ITEMFINDER 39
+#define GAME_STAT_GOT_RAINED_ON 40
+#define GAME_STAT_CHECKED_POKEDEX 41
+#define GAME_STAT_RECEIVED_RIBBONS 42
+#define GAME_STAT_JUMPED_DOWN_LEDGES 43
+#define GAME_STAT_WATCHED_TV 44
+#define GAME_STAT_CHECKED_CLOCK 45
+#define GAME_STAT_WON_POKEMON_LOTTERY 46
+#define GAME_STAT_USED_DAYCARE 47
+#define GAME_STAT_RODE_CABLE_CAR 48
+#define GAME_STAT_ENTERED_HOT_SPRINGS 49
+
+/*TODO: add new stats added in Emerald*/
+
+#define NUM_GAME_STATS 64
+
+#endif // GUARD_CONSTANTS_GAME_STAT_H
diff --git a/include/constants/hold_effects.h b/include/constants/hold_effects.h
new file mode 100644
index 000000000..b653f5a92
--- /dev/null
+++ b/include/constants/hold_effects.h
@@ -0,0 +1,72 @@
+#ifndef GUARD_HOLD_EFFECTS_H
+#define GUARD_HOLD_EFFECTS_H
+
+#define HOLD_EFFECT_NONE 0
+#define HOLD_EFFECT_RESTORE_HP 1
+#define HOLD_EFFECT_CURE_PAR 2
+#define HOLD_EFFECT_CURE_SLP 3
+#define HOLD_EFFECT_CURE_PSN 4
+#define HOLD_EFFECT_CURE_BRN 5
+#define HOLD_EFFECT_CURE_FRZ 6
+#define HOLD_EFFECT_RESTORE_PP 7
+#define HOLD_EFFECT_CURE_CONFUSION 8
+#define HOLD_EFFECT_CURE_STATUS 9
+#define HOLD_EFFECT_CONFUSE_SPICY 10
+#define HOLD_EFFECT_CONFUSE_DRY 11
+#define HOLD_EFFECT_CONFUSE_SWEET 12
+#define HOLD_EFFECT_CONFUSE_BITTER 13
+#define HOLD_EFFECT_CONFUSE_SOUR 14
+#define HOLD_EFFECT_ATTACK_UP 15
+#define HOLD_EFFECT_DEFENSE_UP 16
+#define HOLD_EFFECT_SPEED_UP 17
+#define HOLD_EFFECT_SP_ATTACK_UP 18
+#define HOLD_EFFECT_SP_DEFENSE_UP 19
+#define HOLD_EFFECT_CRITICAL_UP 20
+#define HOLD_EFFECT_RANDOM_STAT_UP 21
+#define HOLD_EFFECT_EVASION_UP 22
+#define HOLD_EFFECT_RESTORE_STATS 23
+#define HOLD_EFFECT_MACHO_BRACE 24
+#define HOLD_EFFECT_EXP_SHARE 25
+#define HOLD_EFFECT_QUICK_CLAW 26
+#define HOLD_EFFECT_HAPPINESS_UP 27
+#define HOLD_EFFECT_CURE_ATTRACT 28
+#define HOLD_EFFECT_CHOICE_BAND 29
+#define HOLD_EFFECT_FLINCH 30
+#define HOLD_EFFECT_BUG_POWER 31
+#define HOLD_EFFECT_DOUBLE_PRIZE 32
+#define HOLD_EFFECT_REPEL 33
+#define HOLD_EFFECT_SOUL_DEW 34
+#define HOLD_EFFECT_DEEP_SEA_TOOTH 35
+#define HOLD_EFFECT_DEEP_SEA_SCALE 36
+#define HOLD_EFFECT_CAN_ALWAYS_RUN 37
+#define HOLD_EFFECT_PREVENT_EVOLVE 38
+#define HOLD_EFFECT_FOCUS_BAND 39
+#define HOLD_EFFECT_LUCKY_EGG 40
+#define HOLD_EFFECT_SCOPE_LENS 41
+#define HOLD_EFFECT_STEEL_POWER 42
+#define HOLD_EFFECT_LEFTOVERS 43
+#define HOLD_EFFECT_DRAGON_SCALE 44
+#define HOLD_EFFECT_LIGHT_BALL 45
+#define HOLD_EFFECT_GROUND_POWER 46
+#define HOLD_EFFECT_ROCK_POWER 47
+#define HOLD_EFFECT_GRASS_POWER 48
+#define HOLD_EFFECT_DARK_POWER 49
+#define HOLD_EFFECT_FIGHTING_POWER 50
+#define HOLD_EFFECT_ELECTRIC_POWER 51
+#define HOLD_EFFECT_WATER_POWER 52
+#define HOLD_EFFECT_FLYING_POWER 53
+#define HOLD_EFFECT_POISON_POWER 54
+#define HOLD_EFFECT_ICE_POWER 55
+#define HOLD_EFFECT_GHOST_POWER 56
+#define HOLD_EFFECT_PSYCHIC_POWER 57
+#define HOLD_EFFECT_FIRE_POWER 58
+#define HOLD_EFFECT_DRAGON_POWER 59
+#define HOLD_EFFECT_NORMAL_POWER 60
+#define HOLD_EFFECT_UP_GRADE 61
+#define HOLD_EFFECT_SHELL_BELL 62
+#define HOLD_EFFECT_LUCKY_PUNCH 63
+#define HOLD_EFFECT_METAL_POWDER 64
+#define HOLD_EFFECT_THICK_CLUB 65
+#define HOLD_EFFECT_STICK 66
+
+#endif // GUARD_HOLD_EFFECTS_H
diff --git a/include/constants/items.h b/include/constants/items.h
new file mode 100644
index 000000000..6135b8d6f
--- /dev/null
+++ b/include/constants/items.h
@@ -0,0 +1,393 @@
+#ifndef GUARD_CONSTANTS_ITEMS_H
+#define GUARD_CONSTANTS_ITEMS_H
+
+#define ITEM_NONE 0
+#define ITEM_MASTER_BALL 1
+#define ITEM_ULTRA_BALL 2
+#define ITEM_GREAT_BALL 3
+#define ITEM_POKE_BALL 4
+#define ITEM_SAFARI_BALL 5
+#define ITEM_NET_BALL 6
+#define ITEM_DIVE_BALL 7
+#define ITEM_NEST_BALL 8
+#define ITEM_REPEAT_BALL 9
+#define ITEM_TIMER_BALL 10
+#define ITEM_LUXURY_BALL 11
+#define ITEM_PREMIER_BALL 12
+#define ITEM_POTION 13
+#define ITEM_ANTIDOTE 14
+#define ITEM_BURN_HEAL 15
+#define ITEM_ICE_HEAL 16
+#define ITEM_AWAKENING 17
+#define ITEM_PARALYZE_HEAL 18
+#define ITEM_FULL_RESTORE 19
+#define ITEM_MAX_POTION 20
+#define ITEM_HYPER_POTION 21
+#define ITEM_SUPER_POTION 22
+#define ITEM_FULL_HEAL 23
+#define ITEM_REVIVE 24
+#define ITEM_MAX_REVIVE 25
+#define ITEM_FRESH_WATER 26
+#define ITEM_SODA_POP 27
+#define ITEM_LEMONADE 28
+#define ITEM_MOOMOO_MILK 29
+#define ITEM_ENERGY_POWDER 30
+#define ITEM_ENERGY_ROOT 31
+#define ITEM_HEAL_POWDER 32
+#define ITEM_REVIVAL_HERB 33
+#define ITEM_ETHER 34
+#define ITEM_MAX_ETHER 35
+#define ITEM_ELIXIR 36
+#define ITEM_MAX_ELIXIR 37
+#define ITEM_LAVA_COOKIE 38
+#define ITEM_BLUE_FLUTE 39
+#define ITEM_YELLOW_FLUTE 40
+#define ITEM_RED_FLUTE 41
+#define ITEM_BLACK_FLUTE 42
+#define ITEM_WHITE_FLUTE 43
+#define ITEM_BERRY_JUICE 44
+#define ITEM_SACRED_ASH 45
+#define ITEM_SHOAL_SALT 46
+#define ITEM_SHOAL_SHELL 47
+#define ITEM_RED_SHARD 48
+#define ITEM_BLUE_SHARD 49
+#define ITEM_YELLOW_SHARD 50
+#define ITEM_GREEN_SHARD 51
+#define ITEM_034 52
+#define ITEM_035 53
+#define ITEM_036 54
+#define ITEM_037 55
+#define ITEM_038 56
+#define ITEM_039 57
+#define ITEM_03A 58
+#define ITEM_03B 59
+#define ITEM_03C 60
+#define ITEM_03D 61
+#define ITEM_03E 62
+#define ITEM_HP_UP 63
+#define ITEM_PROTEIN 64
+#define ITEM_IRON 65
+#define ITEM_CARBOS 66
+#define ITEM_CALCIUM 67
+#define ITEM_RARE_CANDY 68
+#define ITEM_PP_UP 69
+#define ITEM_ZINC 70
+#define ITEM_PP_MAX 71
+#define ITEM_048 72
+#define ITEM_GUARD_SPEC 73
+#define ITEM_DIRE_HIT 74
+#define ITEM_X_ATTACK 75
+#define ITEM_X_DEFEND 76
+#define ITEM_X_SPEED 77
+#define ITEM_X_ACCURACY 78
+#define ITEM_X_SPECIAL 79
+#define ITEM_POKE_DOLL 80
+#define ITEM_FLUFFY_TAIL 81
+#define ITEM_052 82
+#define ITEM_SUPER_REPEL 83
+#define ITEM_MAX_REPEL 84
+#define ITEM_ESCAPE_ROPE 85
+#define ITEM_REPEL 86
+#define ITEM_057 87
+#define ITEM_058 88
+#define ITEM_059 89
+#define ITEM_05A 90
+#define ITEM_05B 91
+#define ITEM_05C 92
+#define ITEM_SUN_STONE 93
+#define ITEM_MOON_STONE 94
+#define ITEM_FIRE_STONE 95
+#define ITEM_THUNDER_STONE 96
+#define ITEM_WATER_STONE 97
+#define ITEM_LEAF_STONE 98
+#define ITEM_063 99
+#define ITEM_064 100
+#define ITEM_065 101
+#define ITEM_066 102
+#define ITEM_TINY_MUSHROOM 103
+#define ITEM_BIG_MUSHROOM 104
+#define ITEM_069 105
+#define ITEM_PEARL 106
+#define ITEM_BIG_PEARL 107
+#define ITEM_STARDUST 108
+#define ITEM_STAR_PIECE 109
+#define ITEM_NUGGET 110
+#define ITEM_HEART_SCALE 111
+#define ITEM_070 112
+#define ITEM_071 113
+#define ITEM_072 114
+#define ITEM_073 115
+#define ITEM_074 116
+#define ITEM_075 117
+#define ITEM_076 118
+#define ITEM_077 119
+#define ITEM_078 120
+#define ITEM_ORANGE_MAIL 121
+#define ITEM_HARBOR_MAIL 122
+#define ITEM_GLITTER_MAIL 123
+#define ITEM_MECH_MAIL 124
+#define ITEM_WOOD_MAIL 125
+#define ITEM_WAVE_MAIL 126
+#define ITEM_BEAD_MAIL 127
+#define ITEM_SHADOW_MAIL 128
+#define ITEM_TROPIC_MAIL 129
+#define ITEM_DREAM_MAIL 130
+#define ITEM_FAB_MAIL 131
+#define ITEM_RETRO_MAIL 132
+#define ITEM_CHERI_BERRY 133
+#define ITEM_CHESTO_BERRY 134
+#define ITEM_PECHA_BERRY 135
+#define ITEM_RAWST_BERRY 136
+#define ITEM_ASPEAR_BERRY 137
+#define ITEM_LEPPA_BERRY 138
+#define ITEM_ORAN_BERRY 139
+#define ITEM_PERSIM_BERRY 140
+#define ITEM_LUM_BERRY 141
+#define ITEM_SITRUS_BERRY 142
+#define ITEM_FIGY_BERRY 143
+#define ITEM_WIKI_BERRY 144
+#define ITEM_MAGO_BERRY 145
+#define ITEM_AGUAV_BERRY 146
+#define ITEM_IAPAPA_BERRY 147
+#define ITEM_RAZZ_BERRY 148
+#define ITEM_BLUK_BERRY 149
+#define ITEM_NANAB_BERRY 150
+#define ITEM_WEPEAR_BERRY 151
+#define ITEM_PINAP_BERRY 152
+#define ITEM_POMEG_BERRY 153
+#define ITEM_KELPSY_BERRY 154
+#define ITEM_QUALOT_BERRY 155
+#define ITEM_HONDEW_BERRY 156
+#define ITEM_GREPA_BERRY 157
+#define ITEM_TAMATO_BERRY 158
+#define ITEM_CORNN_BERRY 159
+#define ITEM_MAGOST_BERRY 160
+#define ITEM_RABUTA_BERRY 161
+#define ITEM_NOMEL_BERRY 162
+#define ITEM_SPELON_BERRY 163
+#define ITEM_PAMTRE_BERRY 164
+#define ITEM_WATMEL_BERRY 165
+#define ITEM_DURIN_BERRY 166
+#define ITEM_BELUE_BERRY 167
+#define ITEM_LIECHI_BERRY 168
+#define ITEM_GANLON_BERRY 169
+#define ITEM_SALAC_BERRY 170
+#define ITEM_PETAYA_BERRY 171
+#define ITEM_APICOT_BERRY 172
+#define ITEM_LANSAT_BERRY 173
+#define ITEM_STARF_BERRY 174
+#define ITEM_ENIGMA_BERRY 175
+#define ITEM_0B0 176
+#define ITEM_0B1 177
+#define ITEM_0B2 178
+#define ITEM_BRIGHT_POWDER 179
+#define ITEM_WHITE_HERB 180
+#define ITEM_MACHO_BRACE 181
+#define ITEM_EXP_SHARE 182
+#define ITEM_QUICK_CLAW 183
+#define ITEM_SOOTHE_BELL 184
+#define ITEM_MENTAL_HERB 185
+#define ITEM_CHOICE_BAND 186
+#define ITEM_KINGS_ROCK 187
+#define ITEM_SILVER_POWDER 188
+#define ITEM_AMULET_COIN 189
+#define ITEM_CLEANSE_TAG 190
+#define ITEM_SOUL_DEW 191
+#define ITEM_DEEP_SEA_TOOTH 192
+#define ITEM_DEEP_SEA_SCALE 193
+#define ITEM_SMOKE_BALL 194
+#define ITEM_EVERSTONE 195
+#define ITEM_FOCUS_BAND 196
+#define ITEM_LUCKY_EGG 197
+#define ITEM_SCOPE_LENS 198
+#define ITEM_METAL_COAT 199
+#define ITEM_LEFTOVERS 200
+#define ITEM_DRAGON_SCALE 201
+#define ITEM_LIGHT_BALL 202
+#define ITEM_SOFT_SAND 203
+#define ITEM_HARD_STONE 204
+#define ITEM_MIRACLE_SEED 205
+#define ITEM_BLACK_GLASSES 206
+#define ITEM_BLACK_BELT 207
+#define ITEM_MAGNET 208
+#define ITEM_MYSTIC_WATER 209
+#define ITEM_SHARP_BEAK 210
+#define ITEM_POISON_BARB 211
+#define ITEM_NEVER_MELT_ICE 212
+#define ITEM_SPELL_TAG 213
+#define ITEM_TWISTED_SPOON 214
+#define ITEM_CHARCOAL 215
+#define ITEM_DRAGON_FANG 216
+#define ITEM_SILK_SCARF 217
+#define ITEM_UP_GRADE 218
+#define ITEM_SHELL_BELL 219
+#define ITEM_SEA_INCENSE 220
+#define ITEM_LAX_INCENSE 221
+#define ITEM_LUCKY_PUNCH 222
+#define ITEM_METAL_POWDER 223
+#define ITEM_THICK_CLUB 224
+#define ITEM_STICK 225
+#define ITEM_0E2 226
+#define ITEM_0E3 227
+#define ITEM_0E4 228
+#define ITEM_0E5 229
+#define ITEM_0E6 230
+#define ITEM_0E7 231
+#define ITEM_0E8 232
+#define ITEM_0E9 233
+#define ITEM_0EA 234
+#define ITEM_0EB 235
+#define ITEM_0EC 236
+#define ITEM_0ED 237
+#define ITEM_0EE 238
+#define ITEM_0EF 239
+#define ITEM_0F0 240
+#define ITEM_0F1 241
+#define ITEM_0F2 242
+#define ITEM_0F3 243
+#define ITEM_0F4 244
+#define ITEM_0F5 245
+#define ITEM_0F6 246
+#define ITEM_0F7 247
+#define ITEM_0F8 248
+#define ITEM_0F9 249
+#define ITEM_0FA 250
+#define ITEM_0FB 251
+#define ITEM_0FC 252
+#define ITEM_0FD 253
+#define ITEM_RED_SCARF 254
+#define ITEM_BLUE_SCARF 255
+#define ITEM_PINK_SCARF 256
+#define ITEM_GREEN_SCARF 257
+#define ITEM_YELLOW_SCARF 258
+#define ITEM_MACH_BIKE 259
+#define ITEM_COIN_CASE 260
+#define ITEM_ITEMFINDER 261
+#define ITEM_OLD_ROD 262
+#define ITEM_GOOD_ROD 263
+#define ITEM_SUPER_ROD 264
+#define ITEM_SS_TICKET 265
+#define ITEM_CONTEST_PASS 266
+#define ITEM_10B 267
+#define ITEM_WAILMER_PAIL 268
+#define ITEM_DEVON_GOODS 269
+#define ITEM_SOOT_SACK 270
+#define ITEM_BASEMENT_KEY 271
+#define ITEM_ACRO_BIKE 272
+#define ITEM_POKEBLOCK_CASE 273
+#define ITEM_LETTER 274
+#define ITEM_EON_TICKET 275
+#define ITEM_RED_ORB 276
+#define ITEM_BLUE_ORB 277
+#define ITEM_SCANNER 278
+#define ITEM_GO_GOGGLES 279
+#define ITEM_METEORITE 280
+#define ITEM_ROOM_1_KEY 281
+#define ITEM_ROOM_2_KEY 282
+#define ITEM_ROOM_4_KEY 283
+#define ITEM_ROOM_6_KEY 284
+#define ITEM_STORAGE_KEY 285
+#define ITEM_ROOT_FOSSIL 286
+#define ITEM_CLAW_FOSSIL 287
+#define ITEM_DEVON_SCOPE 288
+#define ITEM_TM01 289
+#define ITEM_TM02 290
+#define ITEM_TM03 291
+#define ITEM_TM04 292
+#define ITEM_TM05 293
+#define ITEM_TM06 294
+#define ITEM_TM07 295
+#define ITEM_TM08 296
+#define ITEM_TM09 297
+#define ITEM_TM10 298
+#define ITEM_TM11 299
+#define ITEM_TM12 300
+#define ITEM_TM13 301
+#define ITEM_TM14 302
+#define ITEM_TM15 303
+#define ITEM_TM16 304
+#define ITEM_TM17 305
+#define ITEM_TM18 306
+#define ITEM_TM19 307
+#define ITEM_TM20 308
+#define ITEM_TM21 309
+#define ITEM_TM22 310
+#define ITEM_TM23 311
+#define ITEM_TM24 312
+#define ITEM_TM25 313
+#define ITEM_TM26 314
+#define ITEM_TM27 315
+#define ITEM_TM28 316
+#define ITEM_TM29 317
+#define ITEM_TM30 318
+#define ITEM_TM31 319
+#define ITEM_TM32 320
+#define ITEM_TM33 321
+#define ITEM_TM34 322
+#define ITEM_TM35 323
+#define ITEM_TM36 324
+#define ITEM_TM37 325
+#define ITEM_TM38 326
+#define ITEM_TM39 327
+#define ITEM_TM40 328
+#define ITEM_TM41 329
+#define ITEM_TM42 330
+#define ITEM_TM43 331
+#define ITEM_TM44 332
+#define ITEM_TM45 333
+#define ITEM_TM46 334
+#define ITEM_TM47 335
+#define ITEM_TM48 336
+#define ITEM_TM49 337
+#define ITEM_TM50 338
+#define ITEM_HM01 339
+#define ITEM_HM02 340
+#define ITEM_HM03 341
+#define ITEM_HM04 342
+#define ITEM_HM05 343
+#define ITEM_HM06 344
+#define ITEM_HM07 345
+#define ITEM_HM08 346
+#define ITEM_15B 347
+#define ITEM_15C 348
+
+// FireRed/LeafGreen
+#define ITEM_OAKS_PARCEL 349
+#define ITEM_POKE_FLUTE 350
+#define ITEM_SECRET_KEY 351
+#define ITEM_BIKE_VOUCHER 352
+#define ITEM_GOLD_TEETH 353
+#define ITEM_OLD_AMBER 354
+#define ITEM_CARD_KEY 355
+#define ITEM_LIFT_KEY 356
+#define ITEM_HELIX_FOSSIL 357
+#define ITEM_DOME_FOSSIL 358
+#define ITEM_SILPH_SCOPE 359
+#define ITEM_BICYCLE 360
+#define ITEM_TOWN_MAP 361
+#define ITEM_VS_SEEKER 362
+#define ITEM_FAME_CHECKER 363
+#define ITEM_TM_CASE 364
+#define ITEM_BERRY_POUCH 365
+#define ITEM_TEACHY_TV 366
+#define ITEM_TRI_PASS 367
+#define ITEM_RAINBOW_PASS 368
+#define ITEM_TEA 369
+#define ITEM_MYSTIC_TICKET 370
+#define ITEM_AURORA_TICKET 371
+#define ITEM_POWDER_JAR 372
+#define ITEM_RUBY 373
+#define ITEM_SAPPHIRE 374
+
+// Emerald
+#define ITEM_MAGMA_EMBLEM 375
+#define ITEM_OLD_SEA_MAP 376
+
+#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
+#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
+#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
+
+#define NUM_TECHNICAL_MACHINES 50
+#define NUM_HIDDEN_MACHINES 8
+
+#endif // GUARD_CONSTANTS_ITEMS_H
diff --git a/include/constants/map_objects.h b/include/constants/map_objects.h
new file mode 100644
index 000000000..d5b983005
--- /dev/null
+++ b/include/constants/map_objects.h
@@ -0,0 +1,263 @@
+#ifndef GUARD_CONSTANTS_MAP_OBJECTS_H
+#define GUARD_CONSTANTS_MAP_OBJECTS_H
+
+#define MAP_OBJ_GFX_BRENDAN_NORMAL 0
+#define MAP_OBJ_GFX_BRENDAN_MACH_BIKE 1
+#define MAP_OBJ_GFX_BRENDAN_SURFING 2
+#define MAP_OBJ_GFX_BRENDAN_FIELD_MOVE 3
+#define MAP_OBJ_GFX_QUINTY_PLUMP 4
+#define MAP_OBJ_GFX_LITTLE_BOY_1 5
+#define MAP_OBJ_GFX_LITTLE_GIRL_1 6
+#define MAP_OBJ_GFX_BOY_1 7
+#define MAP_OBJ_GFX_GIRL_1 8
+#define MAP_OBJ_GFX_BOY_2 9
+#define MAP_OBJ_GFX_GIRL_2 10
+#define MAP_OBJ_GFX_LITTLE_BOY_2 11
+#define MAP_OBJ_GFX_LITTLE_GIRL_2 12
+#define MAP_OBJ_GFX_BOY_3 13
+#define MAP_OBJ_GFX_GIRL_3 14
+#define MAP_OBJ_GFX_BOY_4 15
+#define MAP_OBJ_GFX_WOMAN_1 16
+#define MAP_OBJ_GFX_FAT_MAN 17
+#define MAP_OBJ_GFX_WOMAN_2 18
+#define MAP_OBJ_GFX_MAN_1 19
+#define MAP_OBJ_GFX_WOMAN_3 20
+#define MAP_OBJ_GFX_OLD_MAN_1 21
+#define MAP_OBJ_GFX_OLD_WOMAN_1 22
+#define MAP_OBJ_GFX_MAN_2 23
+#define MAP_OBJ_GFX_WOMAN_4 24
+#define MAP_OBJ_GFX_MAN_3 25
+#define MAP_OBJ_GFX_WOMAN_5 26
+#define MAP_OBJ_GFX_COOK 27
+#define MAP_OBJ_GFX_WOMAN_6 28
+#define MAP_OBJ_GFX_OLD_MAN_2 29
+#define MAP_OBJ_GFX_OLD_WOMAN_2 30
+#define MAP_OBJ_GFX_CAMPER 31
+#define MAP_OBJ_GFX_PICNICKER 32
+#define MAP_OBJ_GFX_MAN_4 33
+#define MAP_OBJ_GFX_WOMAN_7 34
+#define MAP_OBJ_GFX_YOUNGSTER 35
+#define MAP_OBJ_GFX_BUG_CATCHER 36
+#define MAP_OBJ_GFX_PSYCHIC_M 37
+#define MAP_OBJ_GFX_SCHOOL_KID_M 38
+#define MAP_OBJ_GFX_MANIAC 39
+#define MAP_OBJ_GFX_HEX_MANIAC 40
+#define MAP_OBJ_GFX_RAYQUAZA_1 41
+#define MAP_OBJ_GFX_SWIMMER_M 42
+#define MAP_OBJ_GFX_SWIMMER_F 43
+#define MAP_OBJ_GFX_BLACK_BELT 44
+#define MAP_OBJ_GFX_BEAUTY 45
+#define MAP_OBJ_GFX_SCIENTIST_1 46
+#define MAP_OBJ_GFX_LASS 47
+#define MAP_OBJ_GFX_GENTLEMAN 48
+#define MAP_OBJ_GFX_SAILOR 49
+#define MAP_OBJ_GFX_FISHERMAN 50
+#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_M 51
+#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_F 52
+#define MAP_OBJ_GFX_TUBER_F 53
+#define MAP_OBJ_GFX_TUBER_M 54
+#define MAP_OBJ_GFX_HIKER 55
+#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_M 56
+#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_F 57
+#define MAP_OBJ_GFX_NURSE 58
+#define MAP_OBJ_GFX_ITEM_BALL 59
+#define MAP_OBJ_GFX_BERRY_TREE 60
+#define MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61
+#define MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES 62
+#define MAP_OBJ_GFX_BRENDAN_ACRO_BIKE 63
+#define MAP_OBJ_GFX_PROF_BIRCH 64
+#define MAP_OBJ_GFX_MAN_5 65
+#define MAP_OBJ_GFX_MAN_6 66
+#define MAP_OBJ_GFX_REPORTER_M 67
+#define MAP_OBJ_GFX_REPORTER_F 68
+#define MAP_OBJ_GFX_BARD 69
+#define MAP_OBJ_GFX_ANABEL 70
+#define MAP_OBJ_GFX_TUCKER 71
+#define MAP_OBJ_GFX_GRETA 72
+#define MAP_OBJ_GFX_SPENSER 73
+#define MAP_OBJ_GFX_NOLAND 74
+#define MAP_OBJ_GFX_LUCY 75
+#define MAP_OBJ_GFX_UNUSED_NATU_DOLL 76
+#define MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77
+#define MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78
+#define MAP_OBJ_GFX_UNUSED_WOOPER_DOLL 79
+#define MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL 80
+#define MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL 81
+#define MAP_OBJ_GFX_CUTTABLE_TREE 82
+#define MAP_OBJ_GFX_MART_EMPLOYEE 83
+#define MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN 84
+#define MAP_OBJ_GFX_TEALA 85
+#define MAP_OBJ_GFX_BREAKABLE_ROCK 86
+#define MAP_OBJ_GFX_PUSHABLE_BOULDER 87
+#define MAP_OBJ_GFX_MR_BRINEYS_BOAT 88
+#define MAP_OBJ_GFX_MAY_NORMAL 89
+#define MAP_OBJ_GFX_MAY_MACH_BIKE 90
+#define MAP_OBJ_GFX_MAY_ACRO_BIKE 91
+#define MAP_OBJ_GFX_MAY_SURFING 92
+#define MAP_OBJ_GFX_MAY_FIELD_MOVE 93
+#define MAP_OBJ_GFX_TRUCK 94
+#define MAP_OBJ_GFX_VIGAROTH_CARRYING_BOX 95
+#define MAP_OBJ_GFX_VIGAROTH_FACING_AWAY 96
+#define MAP_OBJ_GFX_BIRCHS_BAG 97
+#define MAP_OBJ_GFX_ZIGZAGOON_1 98
+#define MAP_OBJ_GFX_ARTIST 99
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING 103
+#define MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104
+#define MAP_OBJ_GFX_RIVAL_MAY_NORMAL 105
+#define MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106
+#define MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107
+#define MAP_OBJ_GFX_RIVAL_MAY_SURFING 108
+#define MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109
+#define MAP_OBJ_GFX_CAMERAMAN 110
+#define MAP_OBJ_GFX_BRENDAN_UNDERWATER 111
+#define MAP_OBJ_GFX_MAY_UNDERWATER 112
+#define MAP_OBJ_GFX_MOVING_BOX 113
+#define MAP_OBJ_GFX_CABLE_CAR 114
+#define MAP_OBJ_GFX_SCIENTIST_2 115
+#define MAP_OBJ_GFX_MAN_7 116
+#define MAP_OBJ_GFX_AQUA_MEMBER_M 117
+#define MAP_OBJ_GFX_AQUA_MEMBER_F 118
+#define MAP_OBJ_GFX_MAGMA_MEMBER_M 119
+#define MAP_OBJ_GFX_MAGMA_MEMBER_F 120
+#define MAP_OBJ_GFX_SIDNEY 121
+#define MAP_OBJ_GFX_PHOEBE 122
+#define MAP_OBJ_GFX_GLACIA 123
+#define MAP_OBJ_GFX_DRAKE 124
+#define MAP_OBJ_GFX_ROXANNE 125
+#define MAP_OBJ_GFX_BRAWLY 126
+#define MAP_OBJ_GFX_WATTSON 127
+#define MAP_OBJ_GFX_FLANNERY 128
+#define MAP_OBJ_GFX_NORMAN 129
+#define MAP_OBJ_GFX_WINONA 130
+#define MAP_OBJ_GFX_LIZA 131
+#define MAP_OBJ_GFX_TATE 132
+#define MAP_OBJ_GFX_WALLACE 133
+#define MAP_OBJ_GFX_STEVEN 134
+#define MAP_OBJ_GFX_WALLY 135
+#define MAP_OBJ_GFX_LITTLE_BOY_3 136
+#define MAP_OBJ_GFX_BRENDAN_FISHING 137
+#define MAP_OBJ_GFX_MAY_FISHING 138
+#define MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139
+#define MAP_OBJ_GFX_SS_TIDAL 140
+#define MAP_OBJ_GFX_SUBMARINE_SHADOW 141
+#define MAP_OBJ_GFX_PICHU_DOLL 142
+#define MAP_OBJ_GFX_PIKACHU_DOLL 143
+#define MAP_OBJ_GFX_MARILL_DOLL 144
+#define MAP_OBJ_GFX_TOGEPI_DOLL 145
+#define MAP_OBJ_GFX_CYNDAQUIL_DOLL 146
+#define MAP_OBJ_GFX_CHIKORITA_DOLL 147
+#define MAP_OBJ_GFX_TOTODILE_DOLL 148
+#define MAP_OBJ_GFX_JIGGLYPUFF_DOLL 149
+#define MAP_OBJ_GFX_MEOWTH_DOLL 150
+#define MAP_OBJ_GFX_CLEFAIRY_DOLL 151
+#define MAP_OBJ_GFX_DITTO_DOLL 152
+#define MAP_OBJ_GFX_SMOOCHUM_DOLL 153
+#define MAP_OBJ_GFX_TREECKO_DOLL 154
+#define MAP_OBJ_GFX_TORCHIC_DOLL 155
+#define MAP_OBJ_GFX_MUDKIP_DOLL 156
+#define MAP_OBJ_GFX_DUSKULL_DOLL 157
+#define MAP_OBJ_GFX_WYNAUT_DOLL 158
+#define MAP_OBJ_GFX_BALTOY_DOLL 159
+#define MAP_OBJ_GFX_KECLEON_DOLL 160
+#define MAP_OBJ_GFX_AZURILL_DOLL 161
+#define MAP_OBJ_GFX_SKITTY_DOLL 162
+#define MAP_OBJ_GFX_SWABLU_DOLL 163
+#define MAP_OBJ_GFX_GULPIN_DOLL 164
+#define MAP_OBJ_GFX_LOTAD_DOLL 165
+#define MAP_OBJ_GFX_SEEDOT_DOLL 166
+#define MAP_OBJ_GFX_PIKA_CUSHION 167
+#define MAP_OBJ_GFX_ROUND_CUSHION 168
+#define MAP_OBJ_GFX_KISS_CUSHION 169
+#define MAP_OBJ_GFX_ZIGZAG_CUSHION 170
+#define MAP_OBJ_GFX_SPIN_CUSHION 171
+#define MAP_OBJ_GFX_DIAMOND_CUSHION 172
+#define MAP_OBJ_GFX_BALL_CUSHION 173
+#define MAP_OBJ_GFX_GRASS_CUSHION 174
+#define MAP_OBJ_GFX_FIRE_CUSHION 175
+#define MAP_OBJ_GFX_WATER_CUSHION 176
+#define MAP_OBJ_GFX_BIG_SNORLAX_DOLL 177
+#define MAP_OBJ_GFX_BIG_RHYDON_DOLL 178
+#define MAP_OBJ_GFX_BIG_LAPRAS_DOLL 179
+#define MAP_OBJ_GFX_BIG_VENUSAUR_DOLL 180
+#define MAP_OBJ_GFX_BIG_CHARIZARD_DOLL 181
+#define MAP_OBJ_GFX_BIG_BLASTOISE_DOLL 182
+#define MAP_OBJ_GFX_BIG_WAILMER_DOLL 183
+#define MAP_OBJ_GFX_BIG_REGIROCK_DOLL 184
+#define MAP_OBJ_GFX_BIG_REGICE_DOLL 185
+#define MAP_OBJ_GFX_BIG_REGISTEEL_DOLL 186
+#define MAP_OBJ_GFX_LATIAS 187
+#define MAP_OBJ_GFX_LATIOS 188
+#define MAP_OBJ_GFX_BOY_5 189
+#define MAP_OBJ_GFX_CONTEST_JUDGE 190
+#define MAP_OBJ_GFX_BRENDAN_WATERING 191
+#define MAP_OBJ_GFX_MAY_WATERING 192
+#define MAP_OBJ_GFX_BRENDAN_DECORATING 193
+#define MAP_OBJ_GFX_MAY_DECORATING 194
+#define MAP_OBJ_GFX_ARCHIE 195
+#define MAP_OBJ_GFX_MAXIE 196
+#define MAP_OBJ_GFX_KYOGRE_1 197
+#define MAP_OBJ_GFX_GROUDON_1 198
+#define MAP_OBJ_GFX_FOSSIL 199
+#define MAP_OBJ_GFX_REGIROCK 200
+#define MAP_OBJ_GFX_REGICE 201
+#define MAP_OBJ_GFX_REGISTEEL 202
+#define MAP_OBJ_GFX_SKITTY 203
+#define MAP_OBJ_GFX_KECLEON_1 204
+#define MAP_OBJ_GFX_KYOGRE_2 205
+#define MAP_OBJ_GFX_GROUDON_2 206
+#define MAP_OBJ_GFX_RAYQUAZA_2 207
+#define MAP_OBJ_GFX_ZIGZAGOON_2 208
+#define MAP_OBJ_GFX_PIKACHU 209
+#define MAP_OBJ_GFX_AZUMARILL 210
+#define MAP_OBJ_GFX_WINGULL 211
+#define MAP_OBJ_GFX_KECLEON_2 212
+#define MAP_OBJ_GFX_TUBER_M_SWIMMING 213
+#define MAP_OBJ_GFX_AZURILL 214
+#define MAP_OBJ_GFX_MOM 215
+#define MAP_OBJ_GFX_LINK_BRENDAN 216
+#define MAP_OBJ_GFX_LINK_MAY 217
+#define MAP_OBJ_GFX_JUAN 218
+#define MAP_OBJ_GFX_SCOTT 219
+#define MAP_OBJ_GFX_POOCHYENA 220
+#define MAP_OBJ_GFX_KYOGRE_3 221
+#define MAP_OBJ_GFX_GROUDON_3 222
+#define MAP_OBJ_GFX_MYSTERY_GIFT_MAN 223
+#define MAP_OBJ_GFX_TRICK_HOUSE_STATUE 224
+#define MAP_OBJ_GFX_KIRLIA 225
+#define MAP_OBJ_GFX_DUSCLOPS 226
+#define MAP_OBJ_GFX_UNION_ROOM_NURSE 227
+#define MAP_OBJ_GFX_SUDOWOODO 228
+#define MAP_OBJ_GFX_MEW 229
+#define MAP_OBJ_GFX_RED 230
+#define MAP_OBJ_GFX_LEAF 231
+#define MAP_OBJ_GFX_DEOXYS 232
+#define MAP_OBJ_GFX_DEOXYS_TRIANGLE 233
+#define MAP_OBJ_GFX_BRANDON 234
+#define MAP_OBJ_GFX_LINK_RS_BRENDAN 235
+#define MAP_OBJ_GFX_LINK_RS_MAY 236
+#define MAP_OBJ_GFX_LUGIA 237
+#define MAP_OBJ_GFX_HOOH 238
+#define MAP_OBJ_GFX_BARD_2 239
+#define MAP_OBJ_GFX_HIPSTER 240
+#define MAP_OBJ_GFX_TRADER 241
+#define MAP_OBJ_GFX_STORYTELLER 242
+#define MAP_OBJ_GFX_GIDDY 243
+#define MAP_OBJ_GFX_PLACEHOLDER_1 244
+#define MAP_OBJ_GFX_PLACEHOLDER_2 245
+
+#define SHADOW_SIZE_S 0
+#define SHADOW_SIZE_M 1
+#define SHADOW_SIZE_L 2
+#define SHADOW_SIZE_XL 3
+
+#define F_INANIMATE (1 << 6)
+#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)
+
+#define TRACKS_NONE 0
+#define TRACKS_FOOT 1
+#define TRACKS_BIKE_TIRE 2
+
+#endif // GUARD_CONSTANTS_MAP_OBJECTS_H
diff --git a/include/constants/maps.h b/include/constants/maps.h
new file mode 100644
index 000000000..737edd7de
--- /dev/null
+++ b/include/constants/maps.h
@@ -0,0 +1,595 @@
+#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))
+
+
+#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)
+
+#endif // GUARD_CONSTANTS_MAPS_H
diff --git a/include/constants/moves.h b/include/constants/moves.h
new file mode 100644
index 000000000..f3a3acb90
--- /dev/null
+++ b/include/constants/moves.h
@@ -0,0 +1,362 @@
+#ifndef GUARD_CONSTANTS_MOVES_H
+#define GUARD_CONSTANTS_MOVES_H
+
+#define MOVE_NONE 0
+#define MOVE_POUND 1
+#define MOVE_KARATE_CHOP 2
+#define MOVE_DOUBLE_SLAP 3
+#define MOVE_COMET_PUNCH 4
+#define MOVE_MEGA_PUNCH 5
+#define MOVE_PAY_DAY 6
+#define MOVE_FIRE_PUNCH 7
+#define MOVE_ICE_PUNCH 8
+#define MOVE_THUNDER_PUNCH 9
+#define MOVE_SCRATCH 10
+#define MOVE_VICE_GRIP 11
+#define MOVE_GUILLOTINE 12
+#define MOVE_RAZOR_WIND 13
+#define MOVE_SWORDS_DANCE 14
+#define MOVE_CUT 15
+#define MOVE_GUST 16
+#define MOVE_WING_ATTACK 17
+#define MOVE_WHIRLWIND 18
+#define MOVE_FLY 19
+#define MOVE_BIND 20
+#define MOVE_SLAM 21
+#define MOVE_VINE_WHIP 22
+#define MOVE_STOMP 23
+#define MOVE_DOUBLE_KICK 24
+#define MOVE_MEGA_KICK 25
+#define MOVE_JUMP_KICK 26
+#define MOVE_ROLLING_KICK 27
+#define MOVE_SAND_ATTACK 28
+#define MOVE_HEADBUTT 29
+#define MOVE_HORN_ATTACK 30
+#define MOVE_FURY_ATTACK 31
+#define MOVE_HORN_DRILL 32
+#define MOVE_TACKLE 33
+#define MOVE_BODY_SLAM 34
+#define MOVE_WRAP 35
+#define MOVE_TAKE_DOWN 36
+#define MOVE_THRASH 37
+#define MOVE_DOUBLE_EDGE 38
+#define MOVE_TAIL_WHIP 39
+#define MOVE_POISON_STING 40
+#define MOVE_TWINEEDLE 41
+#define MOVE_PIN_MISSILE 42
+#define MOVE_LEER 43
+#define MOVE_BITE 44
+#define MOVE_GROWL 45
+#define MOVE_ROAR 46
+#define MOVE_SING 47
+#define MOVE_SUPERSONIC 48
+#define MOVE_SONIC_BOOM 49
+#define MOVE_DISABLE 50
+#define MOVE_ACID 51
+#define MOVE_EMBER 52
+#define MOVE_FLAMETHROWER 53
+#define MOVE_MIST 54
+#define MOVE_WATER_GUN 55
+#define MOVE_HYDRO_PUMP 56
+#define MOVE_SURF 57
+#define MOVE_ICE_BEAM 58
+#define MOVE_BLIZZARD 59
+#define MOVE_PSYBEAM 60
+#define MOVE_BUBBLE_BEAM 61
+#define MOVE_AURORA_BEAM 62
+#define MOVE_HYPER_BEAM 63
+#define MOVE_PECK 64
+#define MOVE_DRILL_PECK 65
+#define MOVE_SUBMISSION 66
+#define MOVE_LOW_KICK 67
+#define MOVE_COUNTER 68
+#define MOVE_SEISMIC_TOSS 69
+#define MOVE_STRENGTH 70
+#define MOVE_ABSORB 71
+#define MOVE_MEGA_DRAIN 72
+#define MOVE_LEECH_SEED 73
+#define MOVE_GROWTH 74
+#define MOVE_RAZOR_LEAF 75
+#define MOVE_SOLAR_BEAM 76
+#define MOVE_POISON_POWDER 77
+#define MOVE_STUN_SPORE 78
+#define MOVE_SLEEP_POWDER 79
+#define MOVE_PETAL_DANCE 80
+#define MOVE_STRING_SHOT 81
+#define MOVE_DRAGON_RAGE 82
+#define MOVE_FIRE_SPIN 83
+#define MOVE_THUNDER_SHOCK 84
+#define MOVE_THUNDERBOLT 85
+#define MOVE_THUNDER_WAVE 86
+#define MOVE_THUNDER 87
+#define MOVE_ROCK_THROW 88
+#define MOVE_EARTHQUAKE 89
+#define MOVE_FISSURE 90
+#define MOVE_DIG 91
+#define MOVE_TOXIC 92
+#define MOVE_CONFUSION 93
+#define MOVE_PSYCHIC 94
+#define MOVE_HYPNOSIS 95
+#define MOVE_MEDITATE 96
+#define MOVE_AGILITY 97
+#define MOVE_QUICK_ATTACK 98
+#define MOVE_RAGE 99
+#define MOVE_TELEPORT 100
+#define MOVE_NIGHT_SHADE 101
+#define MOVE_MIMIC 102
+#define MOVE_SCREECH 103
+#define MOVE_DOUBLE_TEAM 104
+#define MOVE_RECOVER 105
+#define MOVE_HARDEN 106
+#define MOVE_MINIMIZE 107
+#define MOVE_SMOKESCREEN 108
+#define MOVE_CONFUSE_RAY 109
+#define MOVE_WITHDRAW 110
+#define MOVE_DEFENSE_CURL 111
+#define MOVE_BARRIER 112
+#define MOVE_LIGHT_SCREEN 113
+#define MOVE_HAZE 114
+#define MOVE_REFLECT 115
+#define MOVE_FOCUS_ENERGY 116
+#define MOVE_BIDE 117
+#define MOVE_METRONOME 118
+#define MOVE_MIRROR_MOVE 119
+#define MOVE_SELF_DESTRUCT 120
+#define MOVE_EGG_BOMB 121
+#define MOVE_LICK 122
+#define MOVE_SMOG 123
+#define MOVE_SLUDGE 124
+#define MOVE_BONE_CLUB 125
+#define MOVE_FIRE_BLAST 126
+#define MOVE_WATERFALL 127
+#define MOVE_CLAMP 128
+#define MOVE_SWIFT 129
+#define MOVE_SKULL_BASH 130
+#define MOVE_SPIKE_CANNON 131
+#define MOVE_CONSTRICT 132
+#define MOVE_AMNESIA 133
+#define MOVE_KINESIS 134
+#define MOVE_SOFT_BOILED 135
+#define MOVE_HI_JUMP_KICK 136
+#define MOVE_GLARE 137
+#define MOVE_DREAM_EATER 138
+#define MOVE_POISON_GAS 139
+#define MOVE_BARRAGE 140
+#define MOVE_LEECH_LIFE 141
+#define MOVE_LOVELY_KISS 142
+#define MOVE_SKY_ATTACK 143
+#define MOVE_TRANSFORM 144
+#define MOVE_BUBBLE 145
+#define MOVE_DIZZY_PUNCH 146
+#define MOVE_SPORE 147
+#define MOVE_FLASH 148
+#define MOVE_PSYWAVE 149
+#define MOVE_SPLASH 150
+#define MOVE_ACID_ARMOR 151
+#define MOVE_CRABHAMMER 152
+#define MOVE_EXPLOSION 153
+#define MOVE_FURY_SWIPES 154
+#define MOVE_BONEMERANG 155
+#define MOVE_REST 156
+#define MOVE_ROCK_SLIDE 157
+#define MOVE_HYPER_FANG 158
+#define MOVE_SHARPEN 159
+#define MOVE_CONVERSION 160
+#define MOVE_TRI_ATTACK 161
+#define MOVE_SUPER_FANG 162
+#define MOVE_SLASH 163
+#define MOVE_SUBSTITUTE 164
+#define MOVE_STRUGGLE 165
+#define MOVE_SKETCH 166
+#define MOVE_TRIPLE_KICK 167
+#define MOVE_THIEF 168
+#define MOVE_SPIDER_WEB 169
+#define MOVE_MIND_READER 170
+#define MOVE_NIGHTMARE 171
+#define MOVE_FLAME_WHEEL 172
+#define MOVE_SNORE 173
+#define MOVE_CURSE 174
+#define MOVE_FLAIL 175
+#define MOVE_CONVERSION_2 176
+#define MOVE_AEROBLAST 177
+#define MOVE_COTTON_SPORE 178
+#define MOVE_REVERSAL 179
+#define MOVE_SPITE 180
+#define MOVE_POWDER_SNOW 181
+#define MOVE_PROTECT 182
+#define MOVE_MACH_PUNCH 183
+#define MOVE_SCARY_FACE 184
+#define MOVE_FAINT_ATTACK 185
+#define MOVE_SWEET_KISS 186
+#define MOVE_BELLY_DRUM 187
+#define MOVE_SLUDGE_BOMB 188
+#define MOVE_MUD_SLAP 189
+#define MOVE_OCTAZOOKA 190
+#define MOVE_SPIKES 191
+#define MOVE_ZAP_CANNON 192
+#define MOVE_FORESIGHT 193
+#define MOVE_DESTINY_BOND 194
+#define MOVE_PERISH_SONG 195
+#define MOVE_ICY_WIND 196
+#define MOVE_DETECT 197
+#define MOVE_BONE_RUSH 198
+#define MOVE_LOCK_ON 199
+#define MOVE_OUTRAGE 200
+#define MOVE_SANDSTORM 201
+#define MOVE_GIGA_DRAIN 202
+#define MOVE_ENDURE 203
+#define MOVE_CHARM 204
+#define MOVE_ROLLOUT 205
+#define MOVE_FALSE_SWIPE 206
+#define MOVE_SWAGGER 207
+#define MOVE_MILK_DRINK 208
+#define MOVE_SPARK 209
+#define MOVE_FURY_CUTTER 210
+#define MOVE_STEEL_WING 211
+#define MOVE_MEAN_LOOK 212
+#define MOVE_ATTRACT 213
+#define MOVE_SLEEP_TALK 214
+#define MOVE_HEAL_BELL 215
+#define MOVE_RETURN 216
+#define MOVE_PRESENT 217
+#define MOVE_FRUSTRATION 218
+#define MOVE_SAFEGUARD 219
+#define MOVE_PAIN_SPLIT 220
+#define MOVE_SACRED_FIRE 221
+#define MOVE_MAGNITUDE 222
+#define MOVE_DYNAMIC_PUNCH 223
+#define MOVE_MEGAHORN 224
+#define MOVE_DRAGON_BREATH 225
+#define MOVE_BATON_PASS 226
+#define MOVE_ENCORE 227
+#define MOVE_PURSUIT 228
+#define MOVE_RAPID_SPIN 229
+#define MOVE_SWEET_SCENT 230
+#define MOVE_IRON_TAIL 231
+#define MOVE_METAL_CLAW 232
+#define MOVE_VITAL_THROW 233
+#define MOVE_MORNING_SUN 234
+#define MOVE_SYNTHESIS 235
+#define MOVE_MOONLIGHT 236
+#define MOVE_HIDDEN_POWER 237
+#define MOVE_CROSS_CHOP 238
+#define MOVE_TWISTER 239
+#define MOVE_RAIN_DANCE 240
+#define MOVE_SUNNY_DAY 241
+#define MOVE_CRUNCH 242
+#define MOVE_MIRROR_COAT 243
+#define MOVE_PSYCH_UP 244
+#define MOVE_EXTREME_SPEED 245
+#define MOVE_ANCIENT_POWER 246
+#define MOVE_SHADOW_BALL 247
+#define MOVE_FUTURE_SIGHT 248
+#define MOVE_ROCK_SMASH 249
+#define MOVE_WHIRLPOOL 250
+#define MOVE_BEAT_UP 251
+#define MOVE_FAKE_OUT 252
+#define MOVE_UPROAR 253
+#define MOVE_STOCKPILE 254
+#define MOVE_SPIT_UP 255
+#define MOVE_SWALLOW 256
+#define MOVE_HEAT_WAVE 257
+#define MOVE_HAIL 258
+#define MOVE_TORMENT 259
+#define MOVE_FLATTER 260
+#define MOVE_WILL_O_WISP 261
+#define MOVE_MEMENTO 262
+#define MOVE_FACADE 263
+#define MOVE_FOCUS_PUNCH 264
+#define MOVE_SMELLING_SALT 265
+#define MOVE_FOLLOW_ME 266
+#define MOVE_NATURE_POWER 267
+#define MOVE_CHARGE 268
+#define MOVE_TAUNT 269
+#define MOVE_HELPING_HAND 270
+#define MOVE_TRICK 271
+#define MOVE_ROLE_PLAY 272
+#define MOVE_WISH 273
+#define MOVE_ASSIST 274
+#define MOVE_INGRAIN 275
+#define MOVE_SUPERPOWER 276
+#define MOVE_MAGIC_COAT 277
+#define MOVE_RECYCLE 278
+#define MOVE_REVENGE 279
+#define MOVE_BRICK_BREAK 280
+#define MOVE_YAWN 281
+#define MOVE_KNOCK_OFF 282
+#define MOVE_ENDEAVOR 283
+#define MOVE_ERUPTION 284
+#define MOVE_SKILL_SWAP 285
+#define MOVE_IMPRISON 286
+#define MOVE_REFRESH 287
+#define MOVE_GRUDGE 288
+#define MOVE_SNATCH 289
+#define MOVE_SECRET_POWER 290
+#define MOVE_DIVE 291
+#define MOVE_ARM_THRUST 292
+#define MOVE_CAMOUFLAGE 293
+#define MOVE_TAIL_GLOW 294
+#define MOVE_LUSTER_PURGE 295
+#define MOVE_MIST_BALL 296
+#define MOVE_FEATHER_DANCE 297
+#define MOVE_TEETER_DANCE 298
+#define MOVE_BLAZE_KICK 299
+#define MOVE_MUD_SPORT 300
+#define MOVE_ICE_BALL 301
+#define MOVE_NEEDLE_ARM 302
+#define MOVE_SLACK_OFF 303
+#define MOVE_HYPER_VOICE 304
+#define MOVE_POISON_FANG 305
+#define MOVE_CRUSH_CLAW 306
+#define MOVE_BLAST_BURN 307
+#define MOVE_HYDRO_CANNON 308
+#define MOVE_METEOR_MASH 309
+#define MOVE_ASTONISH 310
+#define MOVE_WEATHER_BALL 311
+#define MOVE_AROMATHERAPY 312
+#define MOVE_FAKE_TEARS 313
+#define MOVE_AIR_CUTTER 314
+#define MOVE_OVERHEAT 315
+#define MOVE_ODOR_SLEUTH 316
+#define MOVE_ROCK_TOMB 317
+#define MOVE_SILVER_WIND 318
+#define MOVE_METAL_SOUND 319
+#define MOVE_GRASS_WHISTLE 320
+#define MOVE_TICKLE 321
+#define MOVE_COSMIC_POWER 322
+#define MOVE_WATER_SPOUT 323
+#define MOVE_SIGNAL_BEAM 324
+#define MOVE_SHADOW_PUNCH 325
+#define MOVE_EXTRASENSORY 326
+#define MOVE_SKY_UPPERCUT 327
+#define MOVE_SAND_TOMB 328
+#define MOVE_SHEER_COLD 329
+#define MOVE_MUDDY_WATER 330
+#define MOVE_BULLET_SEED 331
+#define MOVE_AERIAL_ACE 332
+#define MOVE_ICICLE_SPEAR 333
+#define MOVE_IRON_DEFENSE 334
+#define MOVE_BLOCK 335
+#define MOVE_HOWL 336
+#define MOVE_DRAGON_CLAW 337
+#define MOVE_FRENZY_PLANT 338
+#define MOVE_BULK_UP 339
+#define MOVE_BOUNCE 340
+#define MOVE_MUD_SHOT 341
+#define MOVE_POISON_TAIL 342
+#define MOVE_COVET 343
+#define MOVE_VOLT_TACKLE 344
+#define MOVE_MAGICAL_LEAF 345
+#define MOVE_WATER_SPORT 346
+#define MOVE_CALM_MIND 347
+#define MOVE_LEAF_BLADE 348
+#define MOVE_DRAGON_DANCE 349
+#define MOVE_ROCK_BLAST 350
+#define MOVE_SHOCK_WAVE 351
+#define MOVE_WATER_PULSE 352
+#define MOVE_DOOM_DESIRE 353
+#define MOVE_PSYCHO_BOOST 354
+
+#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST
+
+#endif // GUARD_CONSTANTS_MOVES_H
diff --git a/include/constants/songs.h b/include/constants/songs.h
new file mode 100644
index 000000000..2e3adcbbf
--- /dev/null
+++ b/include/constants/songs.h
@@ -0,0 +1,465 @@
+#ifndef GUARD_CONSTANTS_SONGS_H
+#define GUARD_CONSTANTS_SONGS_H
+
+#define SE_STOP 0
+#define SE_KAIFUKU 1
+#define SE_PC_LOGON 2
+#define SE_PC_OFF 3
+#define SE_PC_ON 4
+#define SE_SELECT 5
+#define SE_WIN_OPEN 6
+#define SE_WALL_HIT 7
+#define SE_DOOR 8
+#define SE_KAIDAN 9
+#define SE_DANSA 10
+#define SE_JITENSYA 11
+#define SE_KOUKA_L 12
+#define SE_KOUKA_M 13
+#define SE_KOUKA_H 14
+#define SE_BOWA2 15
+#define SE_POKE_DEAD 16
+#define SE_NIGERU 17
+#define SE_JIDO_DOA 18
+#define SE_NAMINORI 19
+#define SE_BAN 20
+#define SE_PIN 21
+#define SE_BOO 22
+#define SE_BOWA 23
+#define SE_JYUNI 24
+#define SE_A 25
+#define SE_I 26
+#define SE_U 27
+#define SE_E 28
+#define SE_O 29
+#define SE_N 30
+#define SE_SEIKAI 31
+#define SE_HAZURE 32
+#define SE_EXP 33
+#define SE_JITE_PYOKO 34
+#define SE_MU_PACHI 35
+#define SE_TK_KASYA 36
+#define SE_FU_ZAKU 37
+#define SE_FU_ZAKU2 38
+#define SE_FU_ZUZUZU 39
+#define SE_RU_GASHIN 40
+#define SE_RU_GASYAN 41
+#define SE_RU_BARI 42
+#define SE_RU_HYUU 43
+#define SE_KI_GASYAN 44
+#define SE_TK_WARPIN 45
+#define SE_TK_WARPOUT 46
+#define SE_TU_SAA 47
+#define SE_HI_TURUN 48
+#define SE_TRACK_MOVE 49
+#define SE_TRACK_STOP 50
+#define SE_TRACK_HAIK 51
+#define SE_TRACK_DOOR 52
+#define SE_MOTER 53
+#define SE_CARD 54
+#define SE_SAVE 55
+#define SE_KON 56
+#define SE_KON2 57
+#define SE_KON3 58
+#define SE_KON4 59
+#define SE_SUIKOMU 60
+#define SE_NAGERU 61
+#define SE_TOY_C 62
+#define SE_TOY_D 63
+#define SE_TOY_E 64
+#define SE_TOY_F 65
+#define SE_TOY_G 66
+#define SE_TOY_A 67
+#define SE_TOY_B 68
+#define SE_TOY_C1 69
+#define SE_MIZU 70
+#define SE_HASHI 71
+#define SE_DAUGI 72
+#define SE_PINPON 73
+#define SE_FUUSEN1 74
+#define SE_FUUSEN2 75
+#define SE_FUUSEN3 76
+#define SE_TOY_KABE 77
+#define SE_TOY_DANGO 78
+#define SE_DOKU 79
+#define SE_ESUKA 80
+#define SE_T_AME 81
+#define SE_T_AME_E 82
+#define SE_T_OOAME 83
+#define SE_T_OOAME_E 84
+#define SE_T_KOAME 85
+#define SE_T_KOAME_E 86
+#define SE_T_KAMI 87
+#define SE_T_KAMI2 88
+#define SE_ELEBETA 89
+#define SE_HINSI 90
+#define SE_EXPMAX 91
+#define SE_TAMAKORO 92
+#define SE_TAMAKORO_E 93
+#define SE_BASABASA 94
+#define SE_REGI 95
+#define SE_C_GAJI 96
+#define SE_C_MAKU_U 97
+#define SE_C_MAKU_D 98
+#define SE_C_PASI 99
+#define SE_C_SYU 100
+#define SE_C_PIKON 101
+#define SE_REAPOKE 102
+#define SE_OP_BASYU 103
+#define SE_BT_START 104
+#define SE_DENDOU 105
+#define SE_JIHANKI 106
+#define SE_TAMA 107
+#define SE_Z_SCROLL 108
+#define SE_Z_PAGE 109
+#define SE_PN_ON 110
+#define SE_PN_OFF 111
+#define SE_Z_SEARCH 112
+#define SE_TAMAGO 113
+#define SE_TB_START 114
+#define SE_TB_KON 115
+#define SE_TB_KARA 116
+#define SE_BIDORO 117
+#define SE_W085 118
+#define SE_W085B 119
+#define SE_W231 120
+#define SE_W171 121
+#define SE_W233 122
+#define SE_W233B 123
+#define SE_W145 124
+#define SE_W145B 125
+#define SE_W145C 126
+#define SE_W240 127
+#define SE_W015 128
+#define SE_W081 129
+#define SE_W081B 130
+#define SE_W088 131
+#define SE_W016 132
+#define SE_W016B 133
+#define SE_W003 134
+#define SE_W104 135
+#define SE_W013 136
+#define SE_W196 137
+#define SE_W086 138
+#define SE_W004 139
+#define SE_W025 140
+#define SE_W025B 141
+#define SE_W152 142
+#define SE_W026 143
+#define SE_W172 144
+#define SE_W172B 145
+#define SE_W053 146
+#define SE_W007 147
+#define SE_W092 148
+#define SE_W221 149
+#define SE_W221B 150
+#define SE_W052 151
+#define SE_W036 152
+#define SE_W059 153
+#define SE_W059B 154
+#define SE_W010 155
+#define SE_W011 156
+#define SE_W017 157
+#define SE_W019 158
+#define SE_W028 159
+#define SE_W013B 160
+#define SE_W044 161
+#define SE_W029 162
+#define SE_W057 163
+#define SE_W056 164
+#define SE_W250 165
+#define SE_W030 166
+#define SE_W039 167
+#define SE_W054 168
+#define SE_W077 169
+#define SE_W020 170
+#define SE_W082 171
+#define SE_W047 172
+#define SE_W195 173
+#define SE_W006 174
+#define SE_W091 175
+#define SE_W146 176
+#define SE_W120 177
+#define SE_W153 178
+#define SE_W071B 179
+#define SE_W071 180
+#define SE_W103 181
+#define SE_W062 182
+#define SE_W062B 183
+#define SE_W048 184
+#define SE_W187 185
+#define SE_W118 186
+#define SE_W155 187
+#define SE_W122 188
+#define SE_W060 189
+#define SE_W185 190
+#define SE_W014 191
+#define SE_W043 192
+#define SE_W207 193
+#define SE_W207B 194
+#define SE_W215 195
+#define SE_W109 196
+#define SE_W173 197
+#define SE_W280 198
+#define SE_W202 199
+#define SE_W060B 200
+#define SE_W076 201
+#define SE_W080 202
+#define SE_W100 203
+#define SE_W107 204
+#define SE_W166 205
+#define SE_W129 206
+#define SE_W115 207
+#define SE_W112 208
+#define SE_W197 209
+#define SE_W199 210
+#define SE_W236 211
+#define SE_W204 212
+#define SE_W268 213
+#define SE_W070 214
+#define SE_W063 215
+#define SE_W127 216
+#define SE_W179 217
+#define SE_W151 218
+#define SE_W201 219
+#define SE_W161 220
+#define SE_W161B 221
+#define SE_W227 222
+#define SE_W227B 223
+#define SE_W226 224
+#define SE_W208 225
+#define SE_W213 226
+#define SE_W213B 227
+#define SE_W234 228
+#define SE_W260 229
+#define SE_W328 230
+#define SE_W320 231
+#define SE_W255 232
+#define SE_W291 233
+#define SE_W089 234
+#define SE_W239 235
+#define SE_W230 236
+#define SE_W281 237
+#define SE_W327 238
+#define SE_W287 239
+#define SE_W257 240
+#define SE_W253 241
+#define SE_W258 242
+#define SE_W322 243
+#define SE_W298 244
+#define SE_W287B 245
+#define SE_W114 246
+#define SE_W063B 247
+#define BGM_STOP 349
+#define BGM_TETSUJI 350
+#define BGM_FIELD13 351
+#define BGM_KACHI22 352
+#define BGM_KACHI2 353
+#define BGM_KACHI3 354
+#define BGM_KACHI5 355
+#define BGM_PCC 356
+#define BGM_NIBI 357
+#define BGM_SUIKUN 358
+#define BGM_DOORO1 359
+#define BGM_DOORO_X1 360
+#define BGM_DOORO_X3 361
+#define BGM_MACHI_S2 362
+#define BGM_MACHI_S4 363
+#define BGM_GIM 364
+#define BGM_NAMINORI 365
+#define BGM_DAN01 366
+#define BGM_FANFA1 367
+#define BGM_ME_ASA 368
+#define BGM_ME_BACHI 369
+#define BGM_FANFA4 370
+#define BGM_FANFA5 371
+#define BGM_ME_WAZA 372
+#define BGM_BIJYUTU 373
+#define BGM_DOORO_X4 374
+#define BGM_FUNE_KAN 375
+#define BGM_ME_SHINKA 376
+#define BGM_SHINKA 377
+#define BGM_ME_WASURE 378
+#define BGM_SYOUJOEYE 379
+#define BGM_BOYEYE 380
+#define BGM_DAN02 381
+#define BGM_MACHI_S3 382
+#define BGM_ODAMAKI 383
+#define BGM_B_TOWER 384
+#define BGM_SWIMEYE 385
+#define BGM_DAN03 386
+#define BGM_ME_KINOMI 387
+#define BGM_ME_TAMA 388
+#define BGM_ME_B_BIG 389
+#define BGM_ME_B_SMALL 390
+#define BGM_ME_ZANNEN 391
+#define BGM_BD_TIME 392
+#define BGM_TEST1 393
+#define BGM_TEST2 394
+#define BGM_TEST3 395
+#define BGM_TEST4 396
+#define BGM_TEST 397
+#define BGM_GOMACHI0 398
+#define BGM_GOTOWN 399
+#define BGM_POKECEN 400
+#define BGM_NEXTROAD 401
+#define BGM_GRANROAD 402
+#define BGM_CYCLING 403
+#define BGM_FRIENDLY 404
+#define BGM_MISHIRO 405
+#define BGM_TOZAN 406
+#define BGM_GIRLEYE 407
+#define BGM_MINAMO 408
+#define BGM_ASHROAD 409
+#define BGM_EVENT0 410
+#define BGM_DEEPDEEP 411
+#define BGM_KACHI1 412
+#define BGM_TITLE3 413
+#define BGM_DEMO1 414
+#define BGM_GIRL_SUP 415
+#define BGM_HAGESHII 416
+#define BGM_KAKKOII 417
+#define BGM_KAZANBAI 418
+#define BGM_AQA_0 419
+#define BGM_TSURETEK 420
+#define BGM_BOY_SUP 421
+#define BGM_RAINBOW 422
+#define BGM_AYASII 423
+#define BGM_KACHI4 424
+#define BGM_ROPEWAY 425
+#define BGM_CASINO 426
+#define BGM_HIGHTOWN 427
+#define BGM_SAFARI 428
+#define BGM_C_ROAD 429
+#define BGM_AJITO 430
+#define BGM_M_BOAT 431
+#define BGM_M_DUNGON 432
+#define BGM_FINECITY 433
+#define BGM_MACHUPI 434
+#define BGM_P_SCHOOL 435
+#define BGM_DENDOU 436
+#define BGM_TONEKUSA 437
+#define BGM_MABOROSI 438
+#define BGM_CON_FAN 439
+#define BGM_CONTEST0 440
+#define BGM_MGM0 441
+#define BGM_T_BATTLE 442
+#define BGM_OOAME 443
+#define BGM_HIDERI 444
+#define BGM_RUNECITY 445
+#define BGM_CON_K 446
+#define BGM_EIKOU_R 447
+#define BGM_KARAKURI 448
+#define BGM_HUTAGO 449
+#define BGM_SITENNOU 450
+#define BGM_YAMA_EYE 451
+#define BGM_CONLOBBY 452
+#define BGM_INTER_V 453
+#define BGM_DAIGO 454
+#define BGM_THANKFOR 455
+#define BGM_END 456
+#define BGM_BATTLE_FRONTIER 457
+#define BGM_BATTLE_ARENA 458
+#define BGM_ME_BATTLE_POINTS 459
+#define BGM_ME_MATCH_CALL 460
+#define BGM_BATTLE_PYRAMID 461
+#define BGM_BATTLE_PYRAMID_SUMMIT 462
+#define BGM_BATTLE_PALACE 463
+#define BGM_FANFA_RAYQUAZA 464
+#define BGM_BATTLE_TOWER 465
+#define BGM_ME_BATTLE_SYMBOL 466
+#define BGM_BATTLE_DOME_TOURNAMENT 467
+#define BGM_BATTLE_PIKE 468
+#define BGM_BATTLE_FACTORY 469
+#define BGM_BATTLE_LEGENDARY 470
+#define BGM_BATTLE_FRONTIER_BRAIN 471
+#define BGM_BATTLE_MEW 472
+#define BGM_BATTLE_DOME 473
+#define BGM_BATTLE27 474
+#define BGM_BATTLE31 475
+#define BGM_BATTLE20 476
+#define BGM_BATTLE32 477
+#define BGM_BATTLE33 478
+#define BGM_BATTLE36 479
+#define BGM_BATTLE34 480
+#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
new file mode 100644
index 000000000..f698ada14
--- /dev/null
+++ b/include/constants/species.h
@@ -0,0 +1,450 @@
+#ifndef GUARD_CONSTANTS_SPECIES_H
+#define GUARD_CONSTANTS_SPECIES_H
+
+#define SPECIES_NONE 0
+#define SPECIES_BULBASAUR 1
+#define SPECIES_IVYSAUR 2
+#define SPECIES_VENUSAUR 3
+#define SPECIES_CHARMANDER 4
+#define SPECIES_CHARMELEON 5
+#define SPECIES_CHARIZARD 6
+#define SPECIES_SQUIRTLE 7
+#define SPECIES_WARTORTLE 8
+#define SPECIES_BLASTOISE 9
+#define SPECIES_CATERPIE 10
+#define SPECIES_METAPOD 11
+#define SPECIES_BUTTERFREE 12
+#define SPECIES_WEEDLE 13
+#define SPECIES_KAKUNA 14
+#define SPECIES_BEEDRILL 15
+#define SPECIES_PIDGEY 16
+#define SPECIES_PIDGEOTTO 17
+#define SPECIES_PIDGEOT 18
+#define SPECIES_RATTATA 19
+#define SPECIES_RATICATE 20
+#define SPECIES_SPEAROW 21
+#define SPECIES_FEAROW 22
+#define SPECIES_EKANS 23
+#define SPECIES_ARBOK 24
+#define SPECIES_PIKACHU 25
+#define SPECIES_RAICHU 26
+#define SPECIES_SANDSHREW 27
+#define SPECIES_SANDSLASH 28
+#define SPECIES_NIDORAN_F 29
+#define SPECIES_NIDORINA 30
+#define SPECIES_NIDOQUEEN 31
+#define SPECIES_NIDORAN_M 32
+#define SPECIES_NIDORINO 33
+#define SPECIES_NIDOKING 34
+#define SPECIES_CLEFAIRY 35
+#define SPECIES_CLEFABLE 36
+#define SPECIES_VULPIX 37
+#define SPECIES_NINETALES 38
+#define SPECIES_JIGGLYPUFF 39
+#define SPECIES_WIGGLYTUFF 40
+#define SPECIES_ZUBAT 41
+#define SPECIES_GOLBAT 42
+#define SPECIES_ODDISH 43
+#define SPECIES_GLOOM 44
+#define SPECIES_VILEPLUME 45
+#define SPECIES_PARAS 46
+#define SPECIES_PARASECT 47
+#define SPECIES_VENONAT 48
+#define SPECIES_VENOMOTH 49
+#define SPECIES_DIGLETT 50
+#define SPECIES_DUGTRIO 51
+#define SPECIES_MEOWTH 52
+#define SPECIES_PERSIAN 53
+#define SPECIES_PSYDUCK 54
+#define SPECIES_GOLDUCK 55
+#define SPECIES_MANKEY 56
+#define SPECIES_PRIMEAPE 57
+#define SPECIES_GROWLITHE 58
+#define SPECIES_ARCANINE 59
+#define SPECIES_POLIWAG 60
+#define SPECIES_POLIWHIRL 61
+#define SPECIES_POLIWRATH 62
+#define SPECIES_ABRA 63
+#define SPECIES_KADABRA 64
+#define SPECIES_ALAKAZAM 65
+#define SPECIES_MACHOP 66
+#define SPECIES_MACHOKE 67
+#define SPECIES_MACHAMP 68
+#define SPECIES_BELLSPROUT 69
+#define SPECIES_WEEPINBELL 70
+#define SPECIES_VICTREEBEL 71
+#define SPECIES_TENTACOOL 72
+#define SPECIES_TENTACRUEL 73
+#define SPECIES_GEODUDE 74
+#define SPECIES_GRAVELER 75
+#define SPECIES_GOLEM 76
+#define SPECIES_PONYTA 77
+#define SPECIES_RAPIDASH 78
+#define SPECIES_SLOWPOKE 79
+#define SPECIES_SLOWBRO 80
+#define SPECIES_MAGNEMITE 81
+#define SPECIES_MAGNETON 82
+#define SPECIES_FARFETCHD 83
+#define SPECIES_DODUO 84
+#define SPECIES_DODRIO 85
+#define SPECIES_SEEL 86
+#define SPECIES_DEWGONG 87
+#define SPECIES_GRIMER 88
+#define SPECIES_MUK 89
+#define SPECIES_SHELLDER 90
+#define SPECIES_CLOYSTER 91
+#define SPECIES_GASTLY 92
+#define SPECIES_HAUNTER 93
+#define SPECIES_GENGAR 94
+#define SPECIES_ONIX 95
+#define SPECIES_DROWZEE 96
+#define SPECIES_HYPNO 97
+#define SPECIES_KRABBY 98
+#define SPECIES_KINGLER 99
+#define SPECIES_VOLTORB 100
+#define SPECIES_ELECTRODE 101
+#define SPECIES_EXEGGCUTE 102
+#define SPECIES_EXEGGUTOR 103
+#define SPECIES_CUBONE 104
+#define SPECIES_MAROWAK 105
+#define SPECIES_HITMONLEE 106
+#define SPECIES_HITMONCHAN 107
+#define SPECIES_LICKITUNG 108
+#define SPECIES_KOFFING 109
+#define SPECIES_WEEZING 110
+#define SPECIES_RHYHORN 111
+#define SPECIES_RHYDON 112
+#define SPECIES_CHANSEY 113
+#define SPECIES_TANGELA 114
+#define SPECIES_KANGASKHAN 115
+#define SPECIES_HORSEA 116
+#define SPECIES_SEADRA 117
+#define SPECIES_GOLDEEN 118
+#define SPECIES_SEAKING 119
+#define SPECIES_STARYU 120
+#define SPECIES_STARMIE 121
+#define SPECIES_MR_MIME 122
+#define SPECIES_SCYTHER 123
+#define SPECIES_JYNX 124
+#define SPECIES_ELECTABUZZ 125
+#define SPECIES_MAGMAR 126
+#define SPECIES_PINSIR 127
+#define SPECIES_TAUROS 128
+#define SPECIES_MAGIKARP 129
+#define SPECIES_GYARADOS 130
+#define SPECIES_LAPRAS 131
+#define SPECIES_DITTO 132
+#define SPECIES_EEVEE 133
+#define SPECIES_VAPOREON 134
+#define SPECIES_JOLTEON 135
+#define SPECIES_FLAREON 136
+#define SPECIES_PORYGON 137
+#define SPECIES_OMANYTE 138
+#define SPECIES_OMASTAR 139
+#define SPECIES_KABUTO 140
+#define SPECIES_KABUTOPS 141
+#define SPECIES_AERODACTYL 142
+#define SPECIES_SNORLAX 143
+#define SPECIES_ARTICUNO 144
+#define SPECIES_ZAPDOS 145
+#define SPECIES_MOLTRES 146
+#define SPECIES_DRATINI 147
+#define SPECIES_DRAGONAIR 148
+#define SPECIES_DRAGONITE 149
+#define SPECIES_MEWTWO 150
+#define SPECIES_MEW 151
+#define SPECIES_CHIKORITA 152
+#define SPECIES_BAYLEEF 153
+#define SPECIES_MEGANIUM 154
+#define SPECIES_CYNDAQUIL 155
+#define SPECIES_QUILAVA 156
+#define SPECIES_TYPHLOSION 157
+#define SPECIES_TOTODILE 158
+#define SPECIES_CROCONAW 159
+#define SPECIES_FERALIGATR 160
+#define SPECIES_SENTRET 161
+#define SPECIES_FURRET 162
+#define SPECIES_HOOTHOOT 163
+#define SPECIES_NOCTOWL 164
+#define SPECIES_LEDYBA 165
+#define SPECIES_LEDIAN 166
+#define SPECIES_SPINARAK 167
+#define SPECIES_ARIADOS 168
+#define SPECIES_CROBAT 169
+#define SPECIES_CHINCHOU 170
+#define SPECIES_LANTURN 171
+#define SPECIES_PICHU 172
+#define SPECIES_CLEFFA 173
+#define SPECIES_IGGLYBUFF 174
+#define SPECIES_TOGEPI 175
+#define SPECIES_TOGETIC 176
+#define SPECIES_NATU 177
+#define SPECIES_XATU 178
+#define SPECIES_MAREEP 179
+#define SPECIES_FLAAFFY 180
+#define SPECIES_AMPHAROS 181
+#define SPECIES_BELLOSSOM 182
+#define SPECIES_MARILL 183
+#define SPECIES_AZUMARILL 184
+#define SPECIES_SUDOWOODO 185
+#define SPECIES_POLITOED 186
+#define SPECIES_HOPPIP 187
+#define SPECIES_SKIPLOOM 188
+#define SPECIES_JUMPLUFF 189
+#define SPECIES_AIPOM 190
+#define SPECIES_SUNKERN 191
+#define SPECIES_SUNFLORA 192
+#define SPECIES_YANMA 193
+#define SPECIES_WOOPER 194
+#define SPECIES_QUAGSIRE 195
+#define SPECIES_ESPEON 196
+#define SPECIES_UMBREON 197
+#define SPECIES_MURKROW 198
+#define SPECIES_SLOWKING 199
+#define SPECIES_MISDREAVUS 200
+#define SPECIES_UNOWN 201
+#define SPECIES_WOBBUFFET 202
+#define SPECIES_GIRAFARIG 203
+#define SPECIES_PINECO 204
+#define SPECIES_FORRETRESS 205
+#define SPECIES_DUNSPARCE 206
+#define SPECIES_GLIGAR 207
+#define SPECIES_STEELIX 208
+#define SPECIES_SNUBBULL 209
+#define SPECIES_GRANBULL 210
+#define SPECIES_QWILFISH 211
+#define SPECIES_SCIZOR 212
+#define SPECIES_SHUCKLE 213
+#define SPECIES_HERACROSS 214
+#define SPECIES_SNEASEL 215
+#define SPECIES_TEDDIURSA 216
+#define SPECIES_URSARING 217
+#define SPECIES_SLUGMA 218
+#define SPECIES_MAGCARGO 219
+#define SPECIES_SWINUB 220
+#define SPECIES_PILOSWINE 221
+#define SPECIES_CORSOLA 222
+#define SPECIES_REMORAID 223
+#define SPECIES_OCTILLERY 224
+#define SPECIES_DELIBIRD 225
+#define SPECIES_MANTINE 226
+#define SPECIES_SKARMORY 227
+#define SPECIES_HOUNDOUR 228
+#define SPECIES_HOUNDOOM 229
+#define SPECIES_KINGDRA 230
+#define SPECIES_PHANPY 231
+#define SPECIES_DONPHAN 232
+#define SPECIES_PORYGON2 233
+#define SPECIES_STANTLER 234
+#define SPECIES_SMEARGLE 235
+#define SPECIES_TYROGUE 236
+#define SPECIES_HITMONTOP 237
+#define SPECIES_SMOOCHUM 238
+#define SPECIES_ELEKID 239
+#define SPECIES_MAGBY 240
+#define SPECIES_MILTANK 241
+#define SPECIES_BLISSEY 242
+#define SPECIES_RAIKOU 243
+#define SPECIES_ENTEI 244
+#define SPECIES_SUICUNE 245
+#define SPECIES_LARVITAR 246
+#define SPECIES_PUPITAR 247
+#define SPECIES_TYRANITAR 248
+#define SPECIES_LUGIA 249
+#define SPECIES_HO_OH 250
+#define SPECIES_CELEBI 251
+
+#define SPECIES_OLD_UNOWN_B 252
+#define SPECIES_OLD_UNOWN_C 253
+#define SPECIES_OLD_UNOWN_D 254
+#define SPECIES_OLD_UNOWN_E 255
+#define SPECIES_OLD_UNOWN_F 256
+#define SPECIES_OLD_UNOWN_G 257
+#define SPECIES_OLD_UNOWN_H 258
+#define SPECIES_OLD_UNOWN_I 259
+#define SPECIES_OLD_UNOWN_J 260
+#define SPECIES_OLD_UNOWN_K 261
+#define SPECIES_OLD_UNOWN_L 262
+#define SPECIES_OLD_UNOWN_M 263
+#define SPECIES_OLD_UNOWN_N 264
+#define SPECIES_OLD_UNOWN_O 265
+#define SPECIES_OLD_UNOWN_P 266
+#define SPECIES_OLD_UNOWN_Q 267
+#define SPECIES_OLD_UNOWN_R 268
+#define SPECIES_OLD_UNOWN_S 269
+#define SPECIES_OLD_UNOWN_T 270
+#define SPECIES_OLD_UNOWN_U 271
+#define SPECIES_OLD_UNOWN_V 272
+#define SPECIES_OLD_UNOWN_W 273
+#define SPECIES_OLD_UNOWN_X 274
+#define SPECIES_OLD_UNOWN_Y 275
+#define SPECIES_OLD_UNOWN_Z 276
+
+#define SPECIES_TREECKO 277
+#define SPECIES_GROVYLE 278
+#define SPECIES_SCEPTILE 279
+#define SPECIES_TORCHIC 280
+#define SPECIES_COMBUSKEN 281
+#define SPECIES_BLAZIKEN 282
+#define SPECIES_MUDKIP 283
+#define SPECIES_MARSHTOMP 284
+#define SPECIES_SWAMPERT 285
+#define SPECIES_POOCHYENA 286
+#define SPECIES_MIGHTYENA 287
+#define SPECIES_ZIGZAGOON 288
+#define SPECIES_LINOONE 289
+#define SPECIES_WURMPLE 290
+#define SPECIES_SILCOON 291
+#define SPECIES_BEAUTIFLY 292
+#define SPECIES_CASCOON 293
+#define SPECIES_DUSTOX 294
+#define SPECIES_LOTAD 295
+#define SPECIES_LOMBRE 296
+#define SPECIES_LUDICOLO 297
+#define SPECIES_SEEDOT 298
+#define SPECIES_NUZLEAF 299
+#define SPECIES_SHIFTRY 300
+#define SPECIES_NINCADA 301
+#define SPECIES_NINJASK 302
+#define SPECIES_SHEDINJA 303
+#define SPECIES_TAILLOW 304
+#define SPECIES_SWELLOW 305
+#define SPECIES_SHROOMISH 306
+#define SPECIES_BRELOOM 307
+#define SPECIES_SPINDA 308
+#define SPECIES_WINGULL 309
+#define SPECIES_PELIPPER 310
+#define SPECIES_SURSKIT 311
+#define SPECIES_MASQUERAIN 312
+#define SPECIES_WAILMER 313
+#define SPECIES_WAILORD 314
+#define SPECIES_SKITTY 315
+#define SPECIES_DELCATTY 316
+#define SPECIES_KECLEON 317
+#define SPECIES_BALTOY 318
+#define SPECIES_CLAYDOL 319
+#define SPECIES_NOSEPASS 320
+#define SPECIES_TORKOAL 321
+#define SPECIES_SABLEYE 322
+#define SPECIES_BARBOACH 323
+#define SPECIES_WHISCASH 324
+#define SPECIES_LUVDISC 325
+#define SPECIES_CORPHISH 326
+#define SPECIES_CRAWDAUNT 327
+#define SPECIES_FEEBAS 328
+#define SPECIES_MILOTIC 329
+#define SPECIES_CARVANHA 330
+#define SPECIES_SHARPEDO 331
+#define SPECIES_TRAPINCH 332
+#define SPECIES_VIBRAVA 333
+#define SPECIES_FLYGON 334
+#define SPECIES_MAKUHITA 335
+#define SPECIES_HARIYAMA 336
+#define SPECIES_ELECTRIKE 337
+#define SPECIES_MANECTRIC 338
+#define SPECIES_NUMEL 339
+#define SPECIES_CAMERUPT 340
+#define SPECIES_SPHEAL 341
+#define SPECIES_SEALEO 342
+#define SPECIES_WALREIN 343
+#define SPECIES_CACNEA 344
+#define SPECIES_CACTURNE 345
+#define SPECIES_SNORUNT 346
+#define SPECIES_GLALIE 347
+#define SPECIES_LUNATONE 348
+#define SPECIES_SOLROCK 349
+#define SPECIES_AZURILL 350
+#define SPECIES_SPOINK 351
+#define SPECIES_GRUMPIG 352
+#define SPECIES_PLUSLE 353
+#define SPECIES_MINUN 354
+#define SPECIES_MAWILE 355
+#define SPECIES_MEDITITE 356
+#define SPECIES_MEDICHAM 357
+#define SPECIES_SWABLU 358
+#define SPECIES_ALTARIA 359
+#define SPECIES_WYNAUT 360
+#define SPECIES_DUSKULL 361
+#define SPECIES_DUSCLOPS 362
+#define SPECIES_ROSELIA 363
+#define SPECIES_SLAKOTH 364
+#define SPECIES_VIGOROTH 365
+#define SPECIES_SLAKING 366
+#define SPECIES_GULPIN 367
+#define SPECIES_SWALOT 368
+#define SPECIES_TROPIUS 369
+#define SPECIES_WHISMUR 370
+#define SPECIES_LOUDRED 371
+#define SPECIES_EXPLOUD 372
+#define SPECIES_CLAMPERL 373
+#define SPECIES_HUNTAIL 374
+#define SPECIES_GOREBYSS 375
+#define SPECIES_ABSOL 376
+#define SPECIES_SHUPPET 377
+#define SPECIES_BANETTE 378
+#define SPECIES_SEVIPER 379
+#define SPECIES_ZANGOOSE 380
+#define SPECIES_RELICANTH 381
+#define SPECIES_ARON 382
+#define SPECIES_LAIRON 383
+#define SPECIES_AGGRON 384
+#define SPECIES_CASTFORM 385
+#define SPECIES_VOLBEAT 386
+#define SPECIES_ILLUMISE 387
+#define SPECIES_LILEEP 388
+#define SPECIES_CRADILY 389
+#define SPECIES_ANORITH 390
+#define SPECIES_ARMALDO 391
+#define SPECIES_RALTS 392
+#define SPECIES_KIRLIA 393
+#define SPECIES_GARDEVOIR 394
+#define SPECIES_BAGON 395
+#define SPECIES_SHELGON 396
+#define SPECIES_SALAMENCE 397
+#define SPECIES_BELDUM 398
+#define SPECIES_METANG 399
+#define SPECIES_METAGROSS 400
+#define SPECIES_REGIROCK 401
+#define SPECIES_REGICE 402
+#define SPECIES_REGISTEEL 403
+#define SPECIES_KYOGRE 404
+#define SPECIES_GROUDON 405
+#define SPECIES_RAYQUAZA 406
+#define SPECIES_LATIAS 407
+#define SPECIES_LATIOS 408
+#define SPECIES_JIRACHI 409
+#define SPECIES_DEOXYS 410
+#define SPECIES_CHIMECHO 411
+#define SPECIES_EGG 412
+
+#define SPECIES_UNOWN_B 413
+#define SPECIES_UNOWN_C 414
+#define SPECIES_UNOWN_D 415
+#define SPECIES_UNOWN_E 416
+#define SPECIES_UNOWN_F 417
+#define SPECIES_UNOWN_G 418
+#define SPECIES_UNOWN_H 419
+#define SPECIES_UNOWN_I 420
+#define SPECIES_UNOWN_J 421
+#define SPECIES_UNOWN_K 422
+#define SPECIES_UNOWN_L 423
+#define SPECIES_UNOWN_M 424
+#define SPECIES_UNOWN_N 425
+#define SPECIES_UNOWN_O 426
+#define SPECIES_UNOWN_P 427
+#define SPECIES_UNOWN_Q 428
+#define SPECIES_UNOWN_R 429
+#define SPECIES_UNOWN_S 430
+#define SPECIES_UNOWN_T 431
+#define SPECIES_UNOWN_U 432
+#define SPECIES_UNOWN_V 433
+#define SPECIES_UNOWN_W 434
+#define SPECIES_UNOWN_X 435
+#define SPECIES_UNOWN_Y 436
+#define SPECIES_UNOWN_Z 437
+#define SPECIES_UNOWN_EMARK 438
+#define SPECIES_UNOWN_QMARK 439
+
+#define NUM_SPECIES SPECIES_EGG
+
+#endif // GUARD_CONSTANTS_SPECIES_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
new file mode 100644
index 000000000..6dc8d0ccd
--- /dev/null
+++ b/include/constants/vars.h
@@ -0,0 +1,288 @@
+#ifndef GUARD_CONSTANTS_VARS_H
+#define GUARD_CONSTANTS_VARS_H
+
+#define VAR_0x3F20 0x3F20
+
+#define VAR_0x4000 0x4000
+#define VAR_0x4001 0x4001
+#define VAR_0x4002 0x4002
+#define VAR_0x4003 0x4003
+#define VAR_0x4004 0x4004
+#define VAR_0x4005 0x4005
+#define VAR_0x4006 0x4006
+#define VAR_0x4007 0x4007
+#define VAR_0x4008 0x4008
+#define VAR_0x4009 0x4009
+#define VAR_0x400A 0x400A
+#define VAR_0x400B 0x400B
+#define VAR_0x400C 0x400C
+#define VAR_0x400D 0x400D
+#define VAR_0x400E 0x400E
+#define VAR_0x400F 0x400F
+#define VAR_0x4010 0x4010
+#define VAR_0x4011 0x4011
+#define VAR_0x4012 0x4012
+#define VAR_0x4013 0x4013
+#define VAR_0x4014 0x4014
+#define VAR_0x4015 0x4015
+#define VAR_0x4016 0x4016
+#define VAR_0x4017 0x4017
+#define VAR_0x4018 0x4018
+#define VAR_0x4019 0x4019
+#define VAR_0x401A 0x401A
+#define VAR_0x401B 0x401B
+#define VAR_0x401C 0x401C
+#define VAR_0x401D 0x401D
+#define VAR_0x401E 0x401E
+#define VAR_0x401F 0x401F
+#define VAR_RECYCLE_GOODS 0x4020
+#define VAR_REPEL_STEP_COUNT 0x4021
+#define VAR_ICE_STEP_COUNT 0x4022
+#define VAR_FIRST_POKE 0x4023
+#define VAR_MIRAGE_RND_H 0x4024
+#define VAR_MIRAGE_RND_L 0x4025
+#define VAR_SECRET_BASE_MAP 0x4026
+#define VAR_0x4027 0x4027
+#define VAR_0x4028 0x4028
+#define VAR_0x4029 0x4029
+#define VAR_HAPPINESS_STEP_COUNTER 0x402A
+#define VAR_POISON_STEP_COUNTER 0x402B
+#define VAR_RESET_RTC_ENABLE 0x402C
+#define VAR_0x402D 0x402D
+#define VAR_0x402E 0x402E
+
+#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
+
+#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030
+#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031
+#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
+#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033
+
+#define VAR_0x4034 0x4034
+#define VAR_0x4035 0x4035
+#define VAR_STORAGE_UNKNOWN 0x4036
+#define VAR_0x4037 0x4037
+#define VAR_0x4038 0x4038
+#define VAR_0x4039 0x4039
+#define VAR_0x403A 0x403A
+#define VAR_0x403B 0x403B
+#define VAR_0x403C 0x403C
+#define VAR_0x403D 0x403D
+#define VAR_ALTERING_CAVE_WILD_SET 0x403E
+#define VAR_0x403F 0x403F
+#define VAR_DAYS 0x4040
+#define VAR_0x4041 0x4041
+#define VAR_0x4042 0x4042
+#define VAR_DEPT_STORE_FLOOR 0x4043
+#define VAR_0x4044 0x4044
+#define VAR_POKELOT_PRIZE 0x4045
+#define VAR_NATIONAL_DEX 0x4046
+#define VAR_SEEDOT_SIZE_RECORD 0x4047
+#define VAR_ASH_GATHER_COUNT 0x4048
+#define VAR_BIRCH_STATE 0x4049
+#define VAR_CRUISE_STEP_COUNT 0x404A
+#define VAR_POKELOT_RND1 0x404B
+#define VAR_POKELOT_RND2 0x404C
+#define VAR_0x404D 0x404D
+#define VAR_0x404E 0x404E
+#define VAR_LOTAD_SIZE_RECORD 0x404F
+#define VAR_0x4050 0x4050
+#define VAR_0x4051 0x4051
+#define VAR_0x4052 0x4052
+#define VAR_0x4053 0x4053
+#define VAR_0x4054 0x4054
+#define VAR_0x4055 0x4055
+#define VAR_0x4056 0x4056
+#define VAR_0x4057 0x4057
+#define VAR_0x4058 0x4058
+#define VAR_0x4059 0x4059
+#define VAR_0x405A 0x405A
+#define VAR_0x405B 0x405B
+#define VAR_0x405C 0x405C
+#define VAR_0x405D 0x405D
+#define VAR_0x405E 0x405E
+#define VAR_0x405F 0x405F
+#define VAR_0x4060 0x4060
+#define VAR_0x4061 0x4061
+#define VAR_0x4062 0x4062
+#define VAR_0x4063 0x4063
+#define VAR_0x4064 0x4064
+#define VAR_0x4065 0x4065
+#define VAR_0x4066 0x4066
+#define VAR_0x4067 0x4067
+#define VAR_0x4068 0x4068
+#define VAR_0x4069 0x4069
+#define VAR_0x406A 0x406A
+#define VAR_0x406B 0x406B
+#define VAR_0x406C 0x406C
+#define VAR_0x406D 0x406D
+#define VAR_0x406E 0x406E
+#define VAR_0x406F 0x406F
+#define VAR_0x4070 0x4070
+#define VAR_0x4071 0x4071
+#define VAR_0x4072 0x4072
+#define VAR_0x4073 0x4073
+#define VAR_0x4074 0x4074
+#define VAR_0x4075 0x4075
+#define VAR_0x4076 0x4076
+#define VAR_0x4077 0x4077
+#define VAR_0x4078 0x4078
+#define VAR_0x4079 0x4079
+#define VAR_0x407A 0x407A
+#define VAR_0x407B 0x407B
+#define VAR_0x407C 0x407C
+#define VAR_0x407D 0x407D
+#define VAR_0x407E 0x407E
+#define VAR_0x407F 0x407F
+#define VAR_0x4080 0x4080
+#define VAR_0x4081 0x4081
+#define VAR_0x4082 0x4082
+#define VAR_0x4083 0x4083
+#define VAR_0x4084 0x4084
+#define VAR_0x4085 0x4085
+#define VAR_0x4086 0x4086
+#define VAR_0x4087 0x4087
+#define VAR_0x4088 0x4088
+#define VAR_0x4089 0x4089
+#define VAR_0x408A 0x408A
+#define VAR_0x408B 0x408B
+#define VAR_0x408C 0x408C
+#define VAR_0x408D 0x408D
+#define VAR_0x408E 0x408E
+#define VAR_0x408F 0x408F
+#define VAR_0x4090 0x4090
+#define VAR_0x4091 0x4091
+#define VAR_0x4092 0x4092
+#define VAR_0x4093 0x4093
+#define VAR_0x4094 0x4094
+#define VAR_0x4095 0x4095
+#define VAR_0x4096 0x4096
+#define VAR_0x4097 0x4097
+#define VAR_0x4098 0x4098
+#define VAR_0x4099 0x4099
+#define VAR_0x409A 0x409A
+#define VAR_0x409B 0x409B
+#define VAR_0x409C 0x409C
+#define VAR_0x409D 0x409D
+#define VAR_0x409E 0x409E
+#define VAR_0x409F 0x409F
+#define VAR_0x40A0 0x40A0
+#define VAR_0x40A1 0x40A1
+#define VAR_0x40A2 0x40A2
+#define VAR_0x40A3 0x40A3
+#define VAR_0x40A4 0x40A4
+#define VAR_0x40A5 0x40A5
+#define VAR_0x40A6 0x40A6
+#define VAR_0x40A7 0x40A7
+#define VAR_0x40A8 0x40A8
+#define VAR_0x40A9 0x40A9
+#define VAR_0x40AA 0x40AA
+#define VAR_0x40AB 0x40AB
+#define VAR_0x40AC 0x40AC
+#define VAR_0x40AD 0x40AD
+#define VAR_0x40AE 0x40AE
+#define VAR_0x40AF 0x40AF
+#define VAR_0x40B0 0x40B0
+#define VAR_0x40B1 0x40B1
+#define VAR_0x40B2 0x40B2
+#define VAR_0x40B3 0x40B3
+#define VAR_PORTHOLE 0x40B4
+#define VAR_0x40B5 0x40B5
+#define VAR_0x40B6 0x40B6
+#define VAR_0x40B7 0x40B7
+#define VAR_0x40B8 0x40B8
+#define VAR_0x40B9 0x40B9
+#define VAR_0x40BA 0x40BA
+#define VAR_0x40BB 0x40BB
+#define VAR_0x40BC 0x40BC
+#define VAR_0x40BD 0x40BD
+#define VAR_0x40BE 0x40BE
+#define VAR_0x40BF 0x40BF
+#define VAR_0x40C0 0x40C0
+#define VAR_0x40C1 0x40C1
+#define VAR_0x40C2 0x40C2
+#define VAR_0x40C3 0x40C3
+#define VAR_0x40C4 0x40C4
+#define VAR_0x40C5 0x40C5
+#define VAR_0x40C6 0x40C6
+#define VAR_0x40C7 0x40C7
+#define VAR_0x40C8 0x40C8
+#define VAR_0x40C9 0x40C9
+#define VAR_0x40CA 0x40CA
+#define VAR_0x40CB 0x40CB
+#define VAR_0x40CC 0x40CC
+#define VAR_0x40CD 0x40CD
+#define VAR_0x40CE 0x40CE
+#define VAR_FRONTIER_FACILITY 0x40CF
+#define VAR_0x40D0 0x40D0
+#define VAR_0x40D1 0x40D1
+#define VAR_0x40D2 0x40D2
+#define VAR_0x40D3 0x40D3
+#define VAR_0x40D4 0x40D4
+#define VAR_0x40D5 0x40D5
+#define VAR_0x40D6 0x40D6
+#define VAR_0x40D7 0x40D7
+#define VAR_0x40D8 0x40D8
+#define VAR_0x40D9 0x40D9
+#define VAR_0x40DA 0x40DA
+#define VAR_0x40DB 0x40DB
+#define VAR_0x40DC 0x40DC
+#define VAR_0x40DD 0x40DD
+#define VAR_0x40DE 0x40DE
+#define VAR_0x40DF 0x40DF
+#define VAR_0x40E0 0x40E0
+#define VAR_0x40E1 0x40E1
+#define VAR_0x40E2 0x40E2
+#define VAR_0x40E3 0x40E3
+#define VAR_0x40E4 0x40E4
+#define VAR_0x40E5 0x40E5
+#define VAR_DAILY_SLOTS 0x40E6
+#define VAR_DAILY_WILDS 0x40E7
+#define VAR_DAILY_BLENDER 0x40E8
+#define VAR_DAILY_PLANTED_BERRIES 0x40E9
+#define VAR_DAILY_PICKED_BERRIES 0x40EA
+#define VAR_DAILY_ROULETTE 0x40EB
+#define VAR_0x40EC 0x40EC
+#define VAR_0x40ED 0x40ED
+#define VAR_0x40EE 0x40EE
+#define VAR_0x40EF 0x40EF
+#define VAR_0x40F0 0x40F0
+#define VAR_DAILY_BP 0x40F1
+#define VAR_0x40F2 0x40F2
+#define VAR_0x40F3 0x40F3
+#define VAR_0x40F4 0x40F4
+#define VAR_0x40F5 0x40F5
+#define VAR_0x40F6 0x40F6
+#define VAR_0x40F7 0x40F7
+#define VAR_0x40F8 0x40F8
+#define VAR_0x40F9 0x40F9
+#define VAR_0x40FA 0x40FA
+#define VAR_0x40FB 0x40FB
+#define VAR_0x40FC 0x40FC
+#define VAR_0x40FD 0x40FD
+#define VAR_0x40FE 0x40FE
+#define VAR_0x40FF 0x40FF
+
+#define VAR_0x8000 0x8000
+#define VAR_0x8001 0x8001
+#define VAR_0x8002 0x8002
+#define VAR_0x8003 0x8003
+#define VAR_0x8004 0x8004
+#define VAR_0x8005 0x8005
+#define VAR_0x8006 0x8006
+#define VAR_0x8007 0x8007
+#define VAR_0x8008 0x8008
+#define VAR_0x8009 0x8009
+#define VAR_0x800A 0x800A
+#define VAR_0x800B 0x800B
+#define VAR_FACING 0x800C
+#define VAR_RESULT 0x800D
+#define VAR_ITEM_ID 0x800E
+#define VAR_LAST_TALKED 0x800F
+#define VAR_CONTEST_RANK 0x8010
+#define VAR_CONTEST_CATEGORY 0x8011
+#define VAR_MON_BOX_ID 0x8012
+#define VAR_MON_BOX_POS 0x8013
+#define VAR_0x8014 0x8014
+
+#endif // GUARD_CONSTANTS_VARS_H
diff --git a/include/data2.h b/include/data2.h
new file mode 100644
index 000000000..be0f33ab8
--- /dev/null
+++ b/include/data2.h
@@ -0,0 +1,20 @@
+#ifndef GUARD_DATA2_H
+#define GUARD_DATA2_H
+
+struct MonCoords
+{
+ // This would use a bitfield, but some function
+ // uses it as a u8 and casting won't match.
+ u8 coords; // u8 x:4, y:4;
+ u8 y_offset;
+};
+
+extern struct MonCoords gTrainerBackPicCoords[];
+extern struct MonCoords gTrainerFrontPicCoords[];
+
+extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
+extern const u8 gMoveNames[][13];
+extern const u8 gAbilityNames[][13];
+extern const u8 gTypeNames[][7];
+
+#endif // GUARD_DATA2_H
diff --git a/include/daycare.h b/include/daycare.h
new file mode 100644
index 000000000..7db44e024
--- /dev/null
+++ b/include/daycare.h
@@ -0,0 +1,27 @@
+#ifndef GUARD_DAYCARE_H
+#define GUARD_DAYCARE_H
+
+#define EGG_HATCH_LEVEL 5
+
+u8 *GetMonNick(struct Pokemon *mon, u8 *dest);
+u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest);
+u8 CountPokemonInDaycare(struct DayCare *daycare);
+void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail);
+void StoreSelectedPokemonInDaycare(void);
+u16 TakePokemonFromDaycare(void);
+void GetDaycareCost(void);
+u8 GetNumLevelsGainedFromDaycare(void);
+void TriggerPendingDaycareEgg(void);
+void RejectEggFromDayCare(void);
+void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation);
+void GiveEggFromDaycare(void);
+bool8 DoEggActions_CheckHatch(void);
+u16 GetSelectedMonNickAndSpecies(void);
+void GetDaycareMonNicknames(void);
+u8 GetDaycareState(void);
+void SetDaycareCompatibilityString(void);
+bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio);
+void ShowDaycareLevelMenu(void);
+void ChooseSendDaycareMon(void);
+
+#endif // GUARD_DAYCARE_H
diff --git a/include/decompress.h b/include/decompress.h
new file mode 100644
index 000000000..34a678cda
--- /dev/null
+++ b/include/decompress.h
@@ -0,0 +1,33 @@
+#ifndef GUARD_DECOMPRESS_H
+#define GUARD_DECOMPRESS_H
+
+#include "sprite.h"
+
+extern u8 gDecompressionBuffer[0x4000];
+
+void LZDecompressWram(const void *src, void *dest);
+void LZDecompressVram(const void *src, void *dest);
+
+u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src);
+void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
+bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src);
+
+void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src);
+void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
+bool8 LoadCompressedObjectPaletteUsingHeap(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);
+
+void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
+void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
+void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
+
+void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
+void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
+void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
+
+u32 sub_8034974(const u8 *ptr);
+
+#endif // GUARD_DECOMPRESS_H
diff --git a/include/diploma.h b/include/diploma.h
new file mode 100644
index 000000000..8d730fa05
--- /dev/null
+++ b/include/diploma.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_DIPLOMA_H
+#define GUARD_DIPLOMA_H
+
+void CB2_ShowDiploma(void);
+
+#endif // GUARD_DIPLOMA_H
diff --git a/include/dma3.h b/include/dma3.h
new file mode 100644
index 000000000..265b47824
--- /dev/null
+++ b/include/dma3.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_DMA3_H
+#define GUARD_DMA3_H
+
+void ClearDma3Requests(void);
+void ProcessDma3Requests(void);
+int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
+int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
+int CheckForSpaceForDma3Request(s16 index);
+
+#endif // GUARD_DMA3_H
diff --git a/include/easy_chat.h b/include/easy_chat.h
new file mode 100644
index 000000000..f0ac51c22
--- /dev/null
+++ b/include/easy_chat.h
@@ -0,0 +1,39 @@
+#ifndef GUARD_EASYCHAT_H
+#define GUARD_EASYCHAT_H
+
+// Taken from Pokeruby, check if it's correct
+enum
+{
+ EC_GROUP_POKEMON,
+ EC_GROUP_TRAINER,
+ EC_GROUP_STATUS,
+ EC_GROUP_BATTLE,
+ EC_GROUP_GREETINGS,
+ EC_GROUP_PEOPLE,
+ EC_GROUP_VOICES,
+ EC_GROUP_SPEECH,
+ EC_GROUP_ENDINGS,
+ EC_GROUP_FEELINGS,
+ EC_GROUP_CONDITIONS,
+ EC_GROUP_ACTIONS,
+ EC_GROUP_LIFESTYLE,
+ EC_GROUP_HOBBIES,
+ EC_GROUP_TIME,
+ EC_GROUP_MISC,
+ EC_GROUP_ADJECTIVES,
+ EC_GROUP_EVENTS,
+ EC_GROUP_MOVE_1,
+ EC_GROUP_MOVE_2,
+ EC_GROUP_TRENDY_SAYING,
+ EC_GROUP_POKEMON_2,
+};
+
+void InitEasyChatPhrases(void);
+void easy_chat_input_maybe(void);
+void CopyEasyChatWord(u8 *dest, u16 word);
+bool32 sub_811F8D8(u16 word);
+void InitializeEasyChatWordArray(u16 *words, u16 length);
+void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2);
+bool8 ECWord_CheckIfOutsideOfValidRange(u16 word);
+
+#endif // GUARD_EASYCHAT_H
diff --git a/include/egg_hatch.h b/include/egg_hatch.h
new file mode 100644
index 000000000..862d33947
--- /dev/null
+++ b/include/egg_hatch.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_EGG_HATCH_H
+#define GUARD_EGG_HATCH_H
+
+void ScriptHatchMon(void);
+bool8 sub_8071614(void);
+void EggHatch(void);
+u8 GetEggStepsToSubtract(void);
+u16 sub_80722E0(void);
+
+#endif // GUARD_EGG_HATCH_H
diff --git a/include/event_data.h b/include/event_data.h
new file mode 100644
index 000000000..f829d3b87
--- /dev/null
+++ b/include/event_data.h
@@ -0,0 +1,52 @@
+#ifndef GUARD_EVENT_DATA_H
+#define GUARD_EVENT_DATA_H
+
+#include "constants/flags.h"
+#include "constants/vars.h"
+
+void InitEventData(void);
+void ClearTempFieldEventData(void);
+void ClearUpperFlags(void);
+void DisableNationalPokedex(void);
+void EnableNationalPokedex(void);
+bool32 IsNationalPokedexEnabled(void);
+void DisableMysteryEvent(void);
+void EnableMysteryEvent(void);
+bool32 IsMysteryEventEnabled(void);
+void DisableMysteryGift(void);
+void EnableMysteryGift(void);
+bool32 IsMysteryGiftEnabled(void);
+void sub_809D4D8(void);
+void sub_809D570(void);
+void DisableResetRTC(void);
+void EnableResetRTC(void);
+bool32 CanResetRTC(void);
+u16 *GetVarPointer(u16 id);
+u16 VarGet(u16 id);
+bool8 VarSet(u16 id, u16 value);
+u8 VarGetFieldObjectGraphicsId(u8 id);
+u8 *GetFlagPointer(u16 id);
+u8 FlagSet(u16 id);
+u8 FlagClear(u16 id);
+bool8 FlagGet(u16 id);
+
+extern u16 gSpecialVar_0x8000;
+extern u16 gSpecialVar_0x8001;
+extern u16 gSpecialVar_0x8002;
+extern u16 gSpecialVar_0x8003;
+extern u16 gSpecialVar_0x8004;
+extern u16 gSpecialVar_0x8005;
+extern u16 gSpecialVar_0x8006;
+extern u16 gSpecialVar_0x8007;
+extern u16 gSpecialVar_0x8008;
+extern u16 gSpecialVar_0x8009;
+extern u16 gSpecialVar_0x800A;
+extern u16 gSpecialVar_0x800B;
+extern u16 gSpecialVar_Result;
+extern u16 gSpecialVar_LastTalked;
+extern u16 gSpecialVar_Facing;
+extern u16 gSpecialVar_MonBoxId;
+extern u16 gSpecialVar_MonBoxPos;
+extern u16 gSpecialVar_0x8014;
+
+#endif // GUARD_EVENT_DATA_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
new file mode 100644
index 000000000..844f1052a
--- /dev/null
+++ b/include/event_scripts.h
@@ -0,0 +1,375 @@
+//
+// Created by scott on 9/12/2017.
+//
+
+#ifndef GUARD_EVENT_SCRIPTS_H
+#define GUARD_EVENT_SCRIPTS_H
+
+extern const u8 gUnknown_0823B4E8[];
+extern const u8 gUnknown_0823B5E9[];
+extern const u8 EventScript_275BB7[];
+extern const u8 EventScript_275D0C[];
+extern const u8 EventScript_275D1F[];
+extern const u8 EventScript_275D2E[];
+extern const u8 EventScript_2766A2[];
+extern const u8 EventScript_2766A6[];
+
+extern const u8 gTVBravoTrainerText00[];
+extern const u8 gTVBravoTrainerText01[];
+extern const u8 gTVBravoTrainerText02[];
+extern const u8 gTVBravoTrainerText03[];
+extern const u8 gTVBravoTrainerText04[];
+extern const u8 gTVBravoTrainerText05[];
+extern const u8 gTVBravoTrainerText06[];
+extern const u8 gTVBravoTrainerText07[];
+extern const u8 gTVBravoTrainerText08[];
+extern const u8 gTVBravoTrainerBattleTowerText00[];
+extern const u8 gTVBravoTrainerBattleTowerText01[];
+extern const u8 gTVBravoTrainerBattleTowerText02[];
+extern const u8 gTVBravoTrainerBattleTowerText03[];
+extern const u8 gTVBravoTrainerBattleTowerText04[];
+extern const u8 gTVBravoTrainerBattleTowerText05[];
+extern const u8 gTVBravoTrainerBattleTowerText06[];
+extern const u8 gTVBravoTrainerBattleTowerText07[];
+extern const u8 gTVBravoTrainerBattleTowerText08[];
+extern const u8 gTVBravoTrainerBattleTowerText09[];
+extern const u8 gTVBravoTrainerBattleTowerText10[];
+extern const u8 gTVBravoTrainerBattleTowerText11[];
+extern const u8 gTVBravoTrainerBattleTowerText12[];
+extern const u8 gTVBravoTrainerBattleTowerText13[];
+extern const u8 gTVBravoTrainerBattleTowerText14[];
+extern const u8 gTVFanClubOpinionsText00[];
+extern const u8 gTVFanClubOpinionsText01[];
+extern const u8 gTVFanClubOpinionsText02[];
+extern const u8 gTVFanClubOpinionsText03[];
+extern const u8 gTVFanClubOpinionsText04[];
+extern const u8 gTVFanClubText00[];
+extern const u8 gTVFanClubText01[];
+extern const u8 gTVFanClubText02[];
+extern const u8 gTVFanClubText03[];
+extern const u8 gTVFanClubText04[];
+extern const u8 gTVFanClubText05[];
+extern const u8 gTVFanClubText06[];
+extern const u8 gTVFanClubText07[];
+extern const u8 gTVRecentHappeningsText00[];
+extern const u8 gTVRecentHappeningsText01[];
+extern const u8 gTVRecentHappeningsText02[];
+extern const u8 gTVRecentHappeningsText03[];
+extern const u8 gTVRecentHappeningsText04[];
+extern const u8 gTVRecentHappeningsText05[];
+extern const u8 gTVMassOutbreakText00[];
+extern const u8 gTV3CheersForPokeblocksText00[];
+extern const u8 gTV3CheersForPokeblocksText01[];
+extern const u8 gTV3CheersForPokeblocksText02[];
+extern const u8 gTV3CheersForPokeblocksText03[];
+extern const u8 gTV3CheersForPokeblocksText04[];
+extern const u8 gTV3CheersForPokeblocksText05[];
+extern const u8 gTVTrainerFanClubSpecialText00[];
+extern const u8 gTVTrainerFanClubSpecialText01[];
+extern const u8 gTVTrainerFanClubSpecialText02[];
+extern const u8 gTVTrainerFanClubSpecialText03[];
+extern const u8 gTVTrainerFanClubSpecialText04[];
+extern const u8 gTVTrainerFanClubSpecialText05[];
+extern const u8 gTVNameRaterText00[];
+extern const u8 gTVNameRaterText01[];
+extern const u8 gTVNameRaterText02[];
+extern const u8 gTVNameRaterText03[];
+extern const u8 gTVNameRaterText04[];
+extern const u8 gTVNameRaterText05[];
+extern const u8 gTVNameRaterText06[];
+extern const u8 gTVNameRaterText07[];
+extern const u8 gTVNameRaterText08[];
+extern const u8 gTVNameRaterText09[];
+extern const u8 gTVNameRaterText10[];
+extern const u8 gTVNameRaterText11[];
+extern const u8 gTVNameRaterText12[];
+extern const u8 gTVNameRaterText13[];
+extern const u8 gTVNameRaterText14[];
+extern const u8 gTVNameRaterText15[];
+extern const u8 gTVNameRaterText16[];
+extern const u8 gTVNameRaterText17[];
+extern const u8 gTVNameRaterText18[];
+extern const u8 gTVPokemonAnglerText00[];
+extern const u8 gTVPokemonAnglerText01[];
+extern const u8 gTVPokemonTodayFailedText00[];
+extern const u8 gTVPokemonTodayFailedText01[];
+extern const u8 gTVPokemonTodayFailedText02[];
+extern const u8 gTVPokemonTodayFailedText03[];
+extern const u8 gTVPokemonTodayFailedText04[];
+extern const u8 gTVPokemonTodayFailedText05[];
+extern const u8 gTVPokemonTodayFailedText06[];
+extern const u8 gTVPokemonTodaySuccessfulText00[];
+extern const u8 gTVPokemonTodaySuccessfulText01[];
+extern const u8 gTVPokemonTodaySuccessfulText02[];
+extern const u8 gTVPokemonTodaySuccessfulText03[];
+extern const u8 gTVPokemonTodaySuccessfulText04[];
+extern const u8 gTVPokemonTodaySuccessfulText05[];
+extern const u8 gTVPokemonTodaySuccessfulText06[];
+extern const u8 gTVPokemonTodaySuccessfulText07[];
+extern const u8 gTVPokemonTodaySuccessfulText08[];
+extern const u8 gTVPokemonTodaySuccessfulText09[];
+extern const u8 gTVPokemonTodaySuccessfulText10[];
+extern const u8 gTVPokemonTodaySuccessfulText11[];
+extern const u8 gTVTodaysSmartShopperText00[];
+extern const u8 gTVTodaysSmartShopperText01[];
+extern const u8 gTVTodaysSmartShopperText02[];
+extern const u8 gTVTodaysSmartShopperText03[];
+extern const u8 gTVTodaysSmartShopperText04[];
+extern const u8 gTVTodaysSmartShopperText05[];
+extern const u8 gTVTodaysSmartShopperText06[];
+extern const u8 gTVTodaysSmartShopperText07[];
+extern const u8 gTVTodaysSmartShopperText08[];
+extern const u8 gTVTodaysSmartShopperText09[];
+extern const u8 gTVTodaysSmartShopperText10[];
+extern const u8 gTVTodaysSmartShopperText11[];
+extern const u8 gTVTodaysSmartShopperText12[];
+extern const u8 gTVWorldOfMastersText00[];
+extern const u8 gTVWorldOfMastersText01[];
+extern const u8 gTVWorldOfMastersText02[];
+extern const u8 gTVTodaysRivalTrainerText00[];
+extern const u8 gTVTodaysRivalTrainerText07[];
+extern const u8 gTVTodaysRivalTrainerText08[];
+extern const u8 gTVTodaysRivalTrainerText09[];
+extern const u8 gTVTodaysRivalTrainerText10[];
+extern const u8 gTVTodaysRivalTrainerText01[];
+extern const u8 gTVTodaysRivalTrainerText02[];
+extern const u8 gTVTodaysRivalTrainerText03[];
+extern const u8 gTVTodaysRivalTrainerText04[];
+extern const u8 gTVTodaysRivalTrainerText05[];
+extern const u8 gTVTodaysRivalTrainerText06[];
+extern const u8 gTVDewfordTrendWatcherNetworkText00[];
+extern const u8 gTVDewfordTrendWatcherNetworkText01[];
+extern const u8 gTVDewfordTrendWatcherNetworkText02[];
+extern const u8 gTVDewfordTrendWatcherNetworkText03[];
+extern const u8 gTVDewfordTrendWatcherNetworkText04[];
+extern const u8 gTVDewfordTrendWatcherNetworkText05[];
+extern const u8 gTVDewfordTrendWatcherNetworkText06[];
+extern const u8 gTVHoennTreasureInvestigatorsText00[];
+extern const u8 gTVHoennTreasureInvestigatorsText01[];
+extern const u8 gTVHoennTreasureInvestigatorsText02[];
+extern const u8 gTVFindThatGamerText00[];
+extern const u8 gTVFindThatGamerText01[];
+extern const u8 gTVFindThatGamerText02[];
+extern const u8 gTVFindThatGamerText03[];
+extern const u8 gTVBreakingNewsText00[];
+extern const u8 gTVBreakingNewsText01[];
+extern const u8 gTVBreakingNewsText02[];
+extern const u8 gTVBreakingNewsText03[];
+extern const u8 gTVBreakingNewsText04[];
+extern const u8 gTVBreakingNewsText05[];
+extern const u8 gTVBreakingNewsText06[];
+extern const u8 gTVBreakingNewsText07[];
+extern const u8 gTVBreakingNewsText12[];
+extern const u8 gTVBreakingNewsText08[];
+extern const u8 gTVBreakingNewsText09[];
+extern const u8 gTVBreakingNewsText10[];
+extern const u8 gTVBreakingNewsText11[];
+extern const u8 gTVSecretBaseVisitText00[];
+extern const u8 gTVSecretBaseVisitText01[];
+extern const u8 gTVSecretBaseVisitText02[];
+extern const u8 gTVSecretBaseVisitText03[];
+extern const u8 gTVSecretBaseVisitText04[];
+extern const u8 gTVSecretBaseVisitText05[];
+extern const u8 gTVSecretBaseVisitText06[];
+extern const u8 gTVSecretBaseVisitText07[];
+extern const u8 gTVSecretBaseVisitText08[];
+extern const u8 gTVSecretBaseVisitText09[];
+extern const u8 gTVSecretBaseVisitText10[];
+extern const u8 gTVSecretBaseVisitText11[];
+extern const u8 gTVSecretBaseVisitText12[];
+extern const u8 gTVSecretBaseVisitText13[];
+extern const u8 gTVPokemonLotteryWinnerFlashReportText00[];
+extern const u8 gTVThePokemonBattleSeminarText00[];
+extern const u8 gTVThePokemonBattleSeminarText01[];
+extern const u8 gTVThePokemonBattleSeminarText02[];
+extern const u8 gTVThePokemonBattleSeminarText03[];
+extern const u8 gTVThePokemonBattleSeminarText04[];
+extern const u8 gTVThePokemonBattleSeminarText05[];
+extern const u8 gTVThePokemonBattleSeminarText06[];
+extern const u8 gTVTrainerFanClubText00[];
+extern const u8 gTVTrainerFanClubText01[];
+extern const u8 gTVTrainerFanClubText02[];
+extern const u8 gTVTrainerFanClubText03[];
+extern const u8 gTVTrainerFanClubText04[];
+extern const u8 gTVTrainerFanClubText05[];
+extern const u8 gTVTrainerFanClubText06[];
+extern const u8 gTVTrainerFanClubText07[];
+extern const u8 gTVTrainerFanClubText08[];
+extern const u8 gTVTrainerFanClubText09[];
+extern const u8 gTVTrainerFanClubText10[];
+extern const u8 gTVTrainerFanClubText11[];
+extern const u8 gTVCutiesText00[];
+extern const u8 gTVCutiesText01[];
+extern const u8 gTVCutiesText02[];
+extern const u8 gTVCutiesText03[];
+extern const u8 gTVCutiesText04[];
+extern const u8 gTVCutiesText05[];
+extern const u8 gTVCutiesText06[];
+extern const u8 gTVCutiesText07[];
+extern const u8 gTVCutiesText08[];
+extern const u8 gTVCutiesText09[];
+extern const u8 gTVCutiesText10[];
+extern const u8 gTVCutiesText11[];
+extern const u8 gTVCutiesText12[];
+extern const u8 gTVCutiesText13[];
+extern const u8 gTVCutiesText14[];
+extern const u8 gTVCutiesText15[];
+extern const u8 gTVPokemonNewsBattleFrontierText00[];
+extern const u8 gTVPokemonNewsBattleFrontierText01[];
+extern const u8 gTVPokemonNewsBattleFrontierText02[];
+extern const u8 gTVPokemonNewsBattleFrontierText03[];
+extern const u8 gTVPokemonNewsBattleFrontierText04[];
+extern const u8 gTVPokemonNewsBattleFrontierText05[];
+extern const u8 gTVPokemonNewsBattleFrontierText06[];
+extern const u8 gTVPokemonNewsBattleFrontierText07[];
+extern const u8 gTVPokemonNewsBattleFrontierText08[];
+extern const u8 gTVPokemonNewsBattleFrontierText09[];
+extern const u8 gTVPokemonNewsBattleFrontierText10[];
+extern const u8 gTVPokemonNewsBattleFrontierText11[];
+extern const u8 gTVPokemonNewsBattleFrontierText12[];
+extern const u8 gTVPokemonNewsBattleFrontierText13[];
+extern const u8 gTVPokemonNewsBattleFrontierText14[];
+extern const u8 gTVPokemonNewsBattleFrontierText15[];
+extern const u8 gTVPokemonNewsBattleFrontierText16[];
+extern const u8 gTVPokemonNewsBattleFrontierText17[];
+extern const u8 gTVPokemonNewsBattleFrontierText18[];
+extern const u8 gTVWhatsNo1InHoennTodayText00[];
+extern const u8 gTVWhatsNo1InHoennTodayText01[];
+extern const u8 gTVWhatsNo1InHoennTodayText02[];
+extern const u8 gTVWhatsNo1InHoennTodayText03[];
+extern const u8 gTVWhatsNo1InHoennTodayText04[];
+extern const u8 gTVWhatsNo1InHoennTodayText05[];
+extern const u8 gTVWhatsNo1InHoennTodayText06[];
+extern const u8 gTVWhatsNo1InHoennTodayText07[];
+extern const u8 gTVWhatsNo1InHoennTodayText08[];
+extern const u8 gTVSecretBaseSecretsText00[];
+extern const u8 gTVSecretBaseSecretsText01[];
+extern const u8 gTVSecretBaseSecretsText02[];
+extern const u8 gTVSecretBaseSecretsText03[];
+extern const u8 gTVSecretBaseSecretsText04[];
+extern const u8 gTVSecretBaseSecretsText05[];
+extern const u8 gTVSecretBaseSecretsText06[];
+extern const u8 gTVSecretBaseSecretsText07[];
+extern const u8 gTVSecretBaseSecretsText08[];
+extern const u8 gTVSecretBaseSecretsText09[];
+extern const u8 gTVSecretBaseSecretsText10[];
+extern const u8 gTVSecretBaseSecretsText11[];
+extern const u8 gTVSecretBaseSecretsText12[];
+extern const u8 gTVSecretBaseSecretsText13[];
+extern const u8 gTVSecretBaseSecretsText14[];
+extern const u8 gTVSecretBaseSecretsText15[];
+extern const u8 gTVSecretBaseSecretsText16[];
+extern const u8 gTVSecretBaseSecretsText17[];
+extern const u8 gTVSecretBaseSecretsText18[];
+extern const u8 gTVSecretBaseSecretsText19[];
+extern const u8 gTVSecretBaseSecretsText20[];
+extern const u8 gTVSecretBaseSecretsText21[];
+extern const u8 gTVSecretBaseSecretsText22[];
+extern const u8 gTVSecretBaseSecretsText23[];
+extern const u8 gTVSecretBaseSecretsText24[];
+extern const u8 gTVSecretBaseSecretsText25[];
+extern const u8 gTVSecretBaseSecretsText26[];
+extern const u8 gTVSecretBaseSecretsText27[];
+extern const u8 gTVSecretBaseSecretsText28[];
+extern const u8 gTVSecretBaseSecretsText29[];
+extern const u8 gTVSecretBaseSecretsText30[];
+extern const u8 gTVSecretBaseSecretsText31[];
+extern const u8 gTVSecretBaseSecretsText32[];
+extern const u8 gTVSecretBaseSecretsText33[];
+extern const u8 gTVSecretBaseSecretsText34[];
+extern const u8 gTVSecretBaseSecretsText35[];
+extern const u8 gTVSecretBaseSecretsText36[];
+extern const u8 gTVSecretBaseSecretsText37[];
+extern const u8 gTVSecretBaseSecretsText38[];
+extern const u8 gTVSecretBaseSecretsText39[];
+extern const u8 gTVSecretBaseSecretsText40[];
+extern const u8 gTVSecretBaseSecretsText41[];
+extern const u8 gTVSecretBaseSecretsText42[];
+extern const u8 gTVSafariFanClubText00[];
+extern const u8 gTVSafariFanClubText01[];
+extern const u8 gTVSafariFanClubText02[];
+extern const u8 gTVSafariFanClubText03[];
+extern const u8 gTVSafariFanClubText04[];
+extern const u8 gTVSafariFanClubText05[];
+extern const u8 gTVSafariFanClubText06[];
+extern const u8 gTVSafariFanClubText07[];
+extern const u8 gTVSafariFanClubText08[];
+extern const u8 gTVSafariFanClubText09[];
+extern const u8 gTVSafariFanClubText10[];
+extern const u8 gTVContestLiveUpdatesText00[];
+extern const u8 gTVContestLiveUpdatesText01[];
+extern const u8 gTVContestLiveUpdatesText02[];
+extern const u8 gTVContestLiveUpdatesText03[];
+extern const u8 gTVContestLiveUpdatesText04[];
+extern const u8 gTVContestLiveUpdatesText05[];
+extern const u8 gTVContestLiveUpdatesText06[];
+extern const u8 gTVContestLiveUpdatesText07[];
+extern const u8 gTVContestLiveUpdatesText08[];
+extern const u8 gTVContestLiveUpdatesText09[];
+extern const u8 gTVContestLiveUpdatesText10[];
+extern const u8 gTVContestLiveUpdatesText11[];
+extern const u8 gTVContestLiveUpdatesText12[];
+extern const u8 gTVContestLiveUpdatesText13[];
+extern const u8 gTVContestLiveUpdatesText14[];
+extern const u8 gTVContestLiveUpdatesText15[];
+extern const u8 gTVContestLiveUpdatesText16[];
+extern const u8 gTVContestLiveUpdatesText17[];
+extern const u8 gTVContestLiveUpdatesText18[];
+extern const u8 gTVContestLiveUpdatesText19[];
+extern const u8 gTVContestLiveUpdatesText20[];
+extern const u8 gTVContestLiveUpdatesText21[];
+extern const u8 gTVContestLiveUpdatesText22[];
+extern const u8 gTVContestLiveUpdatesText23[];
+extern const u8 gTVContestLiveUpdatesText24[];
+extern const u8 gTVContestLiveUpdatesText25[];
+extern const u8 gTVContestLiveUpdatesText26[];
+extern const u8 gTVContestLiveUpdatesText27[];
+extern const u8 gTVContestLiveUpdatesText28[];
+extern const u8 gTVContestLiveUpdatesText29[];
+extern const u8 gTVContestLiveUpdatesText30[];
+extern const u8 gTVContestLiveUpdatesText31[];
+extern const u8 gTVContestLiveUpdatesText32[];
+extern const u8 gTVPokemonBattleUpdateText00[];
+extern const u8 gTVPokemonBattleUpdateText01[];
+extern const u8 gTVPokemonBattleUpdateText02[];
+extern const u8 gTVPokemonBattleUpdateText03[];
+extern const u8 gTVPokemonBattleUpdateText04[];
+extern const u8 gTVPokemonBattleUpdateText05[];
+extern const u8 gTVPokemonBattleUpdateText06[];
+extern const u8 gTVPokemonBattleUpdateText07[];
+extern const u8 gTVInSearchOfTrainersText00[];
+extern const u8 gTVInSearchOfTrainersText01[];
+extern const u8 gTVInSearchOfTrainersText02[];
+extern const u8 gTVInSearchOfTrainersText03[];
+extern const u8 gTVInSearchOfTrainersText04[];
+extern const u8 gTVInSearchOfTrainersText05[];
+extern const u8 gTVInSearchOfTrainersText06[];
+extern const u8 gTVInSearchOfTrainersText07[];
+extern const u8 gTVInSearchOfTrainersText08[];
+extern const u8 gTVPokemonContestLiveUpdates2Text00[];
+extern const u8 gTVPokemonContestLiveUpdates2Text01[];
+extern const u8 gTVPokemonContestLiveUpdates2Text02[];
+extern const u8 gTVPokemonContestLiveUpdates2Text03[];
+extern const u8 gPokeNewsTextSlateport_Upcoming[];
+extern const u8 gPokeNewsTextSlateport_Ongoing[];
+extern const u8 gPokeNewsTextSlateport_Ending[];
+extern const u8 gPokeNewsTextGameCorner_Upcoming[];
+extern const u8 gPokeNewsTextGameCorner_Ongoing[];
+extern const u8 gPokeNewsTextGameCorner_Ending[];
+extern const u8 gPokeNewsTextLilycove_Upcoming[];
+extern const u8 gPokeNewsTextLilycove_Ongoing[];
+extern const u8 gPokeNewsTextLilycove_Ending[];
+extern const u8 gPokeNewsTextBlendMaster_Upcoming[];
+extern const u8 gPokeNewsTextBlendMaster_Ongoing[];
+extern const u8 gPokeNewsTextBlendMaster_Ending[];
+extern const u8 SecretBase_RedCave1_Text_274966[];
+extern const u8 SecretBase_RedCave1_Text_274D13[];
+extern const u8 SecretBase_RedCave1_Text_274FFE[];
+extern const u8 SecretBase_RedCave1_Text_275367[];
+extern const u8 SecretBase_RedCave1_Text_2756C7[];
+extern const u8 SecretBase_RedCave1_Text_274B24[];
+extern const u8 SecretBase_RedCave1_Text_274E75[];
+extern const u8 SecretBase_RedCave1_Text_2751E1[];
+extern const u8 SecretBase_RedCave1_Text_2754F6[];
+extern const u8 SecretBase_RedCave1_Text_2758CC[];
+#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/evolution_graphics.h b/include/evolution_graphics.h
new file mode 100644
index 000000000..f52105815
--- /dev/null
+++ b/include/evolution_graphics.h
@@ -0,0 +1,15 @@
+#ifndef GUARD_EVOLUTION_GRAPHICS_H
+#define GUARD_EVOLUTION_GRAPHICS_H
+
+void LoadEvoSparkleSpriteAndPal(void);
+
+u8 LaunchTask_PreEvoSparklesSet1(u16 arg0);
+u8 LaunchTask_PreEvoSparklesSet2(void);
+u8 LaunchTask_PostEvoSparklesSet1(void);
+u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species);
+u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species);
+u8 sub_817C3A0(u8 preEvoSpriteID, u8 postEvoSpriteID);
+
+#define EvoGraphicsTaskEvoStop data[8]
+
+#endif // GUARD_EVOLUTION_GRAPHICS_H
diff --git a/include/evolution_scene.h b/include/evolution_scene.h
new file mode 100644
index 000000000..5f8c534b9
--- /dev/null
+++ b/include/evolution_scene.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_EVOLUTION_SCENE_H
+#define GUARD_EVOLUTION_SCENE_H
+
+void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
+void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
+void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID);
+
+extern void (*gCB2_AfterEvolution)(void);
+
+#endif // GUARD_EVOLUTION_SCENE_H
diff --git a/include/field_camera.h b/include/field_camera.h
new file mode 100644
index 000000000..a8559e1c2
--- /dev/null
+++ b/include/field_camera.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_FIELD_CAMERA_H
+#define GUARD_FIELD_CAMERA_H
+
+// Exported type declarations
+
+struct CameraObject
+{
+ void (*callback)(struct CameraObject *);
+ u32 unk4;
+ s32 unk8;
+ s32 unkC;
+ s32 x;
+ s32 y;
+};
+
+extern struct CameraObject gUnknown_03005DD0;
+
+// Exported RAM declarations
+
+extern u16 gUnknown_03005DEC;
+extern u16 gUnknown_03005DE8;
+
+// Exported ROM declarations
+
+void DrawWholeMapView(void);
+void CurrentMapDrawMetatileAt(int x, int y);
+
+#endif //GUARD_FIELD_CAMERA_H
diff --git a/include/field_door.h b/include/field_door.h
new file mode 100644
index 000000000..f1dfc551d
--- /dev/null
+++ b/include/field_door.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_FIELDDOOR_H
+#define GUARD_FIELDDOOR_H
+
+void FieldSetDoorOpened(u32, u32);
+void FieldSetDoorClosed(u32, u32);
+s8 FieldAnimateDoorClose(u32, u32);
+s8 FieldAnimateDoorOpen(u32, u32);
+bool8 FieldIsDoorAnimationRunning(void);
+u32 GetDoorSoundEffect(u32 x, u32 y);
+
+#endif
diff --git a/include/field_effect.h b/include/field_effect.h
new file mode 100644
index 000000000..629ae07c7
--- /dev/null
+++ b/include/field_effect.h
@@ -0,0 +1,78 @@
+#ifndef GUARD_FIELD_EFFECTS_H
+#define GUARD_FIELD_EFFECTS_H
+
+enum FieldEffectScriptIdx
+{
+ FLDEFF_EXCLAMATION_MARK_ICON_1,
+ FLDEFF_USE_CUT_ON_GRASS,
+ FLDEFF_USE_CUT_ON_TREE,
+ FLDEFF_SHADOW,
+ FLDEFF_TALL_GRASS,
+ FLDEFF_RIPPLE,
+ FLDEFF_FIELD_MOVE_SHOW_MON,
+ FLDEFF_ASH,
+ FLDEFF_SURF_BLOB,
+ FLDEFF_USE_SURF,
+ FLDEFF_DUST,
+ FLDEFF_USE_SECRET_POWER_CAVE,
+ FLDEFF_JUMP_TALL_GRASS,
+ FLDEFF_SAND_FOOTPRINTS,
+ FLDEFF_JUMP_BIG_SPLASH,
+ FLDEFF_SPLASH,
+ FLDEFF_JUMP_SMALL_SPLASH,
+ FLDEFF_LONG_GRASS,
+ FLDEFF_JUMP_LONG_GRASS,
+ FLDEFF_UNKNOWN_19,
+ FLDEFF_UNKNOWN_20,
+ FLDEFF_UNKNOWN_21,
+ FLDEFF_UNKNOWN_22,
+ FLDEFF_BERRY_TREE_GROWTH_SPARKLE,
+ FLDEFF_DEEP_SAND_FOOTPRINTS,
+ FLDEFF_POKECENTER_HEAL,
+ FLDEFF_USE_SECRET_POWER_TREE,
+ FLDEFF_USE_SECRET_POWER_SHRUB,
+ FLDEFF_TREE_DISGUISE,
+ FLDEFF_MOUNTAIN_DISGUISE,
+ FLDEFF_NPCFLY_OUT,
+ FLDEFF_USE_FLY,
+ FLDEFF_FLY_IN,
+ FLDEFF_EXCLAMATION_MARK_ICON_2,
+ FLDEFF_FEET_IN_FLOWING_WATER,
+ FLDEFF_BIKE_TIRE_TRACKS,
+ FLDEFF_SAND_DISGUISE,
+ FLDEFF_USE_ROCK_SMASH,
+ FLDEFF_USE_DIG,
+ FLDEFF_SAND_PILE,
+ FLDEFF_USE_STRENGTH,
+ FLDEFF_SHORT_GRASS,
+ FLDEFF_HOT_SPRINGS_WATER,
+ FLDEFF_USE_WATERFALL,
+ FLDEFF_USE_DIVE,
+ FLDEFF_POKEBALL,
+ FLDEFF_HEART_ICON,
+ FLDEFF_NOP_47,
+ FLDEFF_NOP_48,
+ FLDEFF_POP_OUT_OF_ASH,
+ FLDEFF_LAVARIDGE_GYM_WARP,
+ FLDEFF_SWEET_SCENT,
+ FLDEFF_SAND_PILLAR,
+ FLDEFF_BUBBLES,
+ FLDEFF_SPARKLE,
+ FLDEFF_SECRET_POWER_CAVE,
+ FLDEFF_SECRET_POWER_TREE,
+ FLDEFF_SECRET_POWER_SHRUB,
+ FLDEFF_CUT_GRASS,
+ FLDEFF_FIELD_MOVE_SHOW_MON_INIT,
+ FLDEFF_USE_FLY_ANCIENT_TOMB,
+ FLDEFF_PCTURN_ON,
+ FLDEFF_HALL_OF_FAME_RECORD,
+ FLDEFF_USE_TELEPORT
+};
+
+extern u32 gFieldEffectArguments[8];
+
+u8 FieldEffectStart(u8);
+bool8 FieldEffectActiveListContains(u8 id);
+void sub_80B69DC(void);
+
+#endif //GUARD_FIELD_EFFECTS_H
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
new file mode 100644
index 000000000..e80daf3bd
--- /dev/null
+++ b/include/field_effect_helpers.h
@@ -0,0 +1,16 @@
+//
+// Created by scott on 9/7/2017.
+//
+
+#ifndef GUARD_FIELD_EFFECT_HELPERS_H
+#define GUARD_FIELD_EFFECT_HELPERS_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+u8 sub_8154228(void);
+bool8 sub_8155DA0(struct MapObject *);
+
+#endif //GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
new file mode 100644
index 000000000..7c2d16a24
--- /dev/null
+++ b/include/field_fadetransition.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_FIELD_FADETRANSITION_H
+#define GUARD_FIELD_FADETRANSITION_H
+
+void sub_80AF734(void);
+void sp13E_warp_to_last_warp(void);
+void sub_80AF7D0(void);
+void sp13F_fall_to_last_warp(void);
+
+void sub_80AF848(void);
+void sub_80AF87C(void);
+
+#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h
new file mode 100644
index 000000000..63b67ceaf
--- /dev/null
+++ b/include/field_ground_effect.h
@@ -0,0 +1,22 @@
+//
+// Created by scott on 9/6/2017.
+//
+
+#ifndef GUARD_FIELD_GROUND_EFFECT_H
+#define GUARD_FIELD_GROUND_EFFECT_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
+void InitObjectPriorityByZCoord(struct Sprite *, u8);
+bool8 IsZCoordMismatchAt(u8, s16, s16);
+bool8 AreZCoordsCompatible(u8, u8);
+void FieldObjectUpdateSubpriority(struct MapObject *, struct Sprite *);
+void DoGroundEffects_OnSpawn(struct MapObject *, struct Sprite *);
+void DoGroundEffects_OnBeginStep(struct MapObject *, struct Sprite *);
+void DoGroundEffects_OnFinishStep(struct MapObject *, struct Sprite *);
+
+#endif //GUARD_FIELD_GROUND_EFFECT_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
new file mode 100644
index 000000000..0107fa10f
--- /dev/null
+++ b/include/field_map_obj.h
@@ -0,0 +1,84 @@
+#ifndef GUARD_FIELD_MAP_OBJ_H
+#define GUARD_FIELD_MAP_OBJ_H
+
+#define NUM_OBJECT_GRAPHICS_INFO 239
+#define SPRITE_VAR 240
+
+// Exported struct declarations
+
+enum SpinnerRunnerFollowPatterns {
+ RUNFOLLOW_ANY,
+ RUNFOLLOW_NORTH_SOUTH,
+ RUNFOLLOW_EAST_WEST,
+ RUNFOLLOW_NORTH_WEST,
+ RUNFOLLOW_NORTH_EAST,
+ RUNFOLLOW_SOUTH_WEST,
+ RUNFOLLOW_SOUTH_EAST,
+ RUNFOLLOW_NORTH_SOUTH_WEST,
+ RUNFOLLOW_NORTH_SOUTH_EAST,
+ RUNFOLLOW_NORTH_EAST_WEST,
+ RUNFOLLOW_SOUTH_EAST_WEST
+};
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void sub_808D438(void);
+u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
+bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
+u8 GetFieldObjectIdByXY(s16, s16);
+void FieldObjectSetDirection(struct MapObject *, u8);
+u8 sub_808D4F4(void);
+void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8);
+void npc_load_two_palettes__no_record(u16, u8);
+void npc_load_two_palettes__and_record(u16, u8);
+void sub_808EBA8(u8, u8, u8, s16, s16);
+void pal_patch_for_npc(u16, u8);
+void sub_808E16C(s16, s16);
+void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
+void sub_8092FF0(s16, s16, s16 *, s16 *);
+u8 FieldObjectDirectionToImageAnimId(u8);
+void sub_80930E0(s16 *, s16 *, s16, s16);
+void FieldObjectClearAnim(struct MapObject *);
+void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
+void SpawnFieldObjectsInView(s16, s16);
+u8 sprite_new(u8, u8, s16, s16, u8, u8);
+u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8);
+u8 show_sprite(u8, u8, u8);
+u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
+u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
+void sub_8093038(s16, s16, s16 *, s16 *);
+void CameraObjectReset1(void);
+void FieldObjectSetGraphicsId(struct MapObject *, u8);
+void FieldObjectTurn(struct MapObject *, u8);
+void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
+const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
+void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
+void gpu_pal_allocator_reset__manage_upper_four(void);
+void sub_808E82C(u8, u8, u8, s16, s16);
+void sub_808E7E4(u8, u8, u8);
+void sub_808E78C(u8, u8, u8, u8);
+void sub_808E75C(s16, s16);
+void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
+void npc_coords_shift(struct MapObject *, s16, s16);
+void sub_808EB08(struct MapObject *, s16, s16);
+void sub_808F254(u8, u8, u8);
+void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *));
+u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
+u8 GetOppositeDirection(u8);
+u8 GetStepInPlaceDelay4AnimId(u32);
+u8 GetStepInPlaceDelay8AnimId(u32);
+u8 GetStepInPlaceDelay16AnimId(u32);
+u8 GetStepInPlaceDelay32AnimId(u32);
+u8 npc_block_way(struct MapObject *, s16, s16, u32);
+void MoveCoords(u8, s16 *, s16 *);
+bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
+u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
+u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
+
+// Exported data declarations
+
+extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
+
+#endif //GUARD_FIELD_MAP_OBJ_H
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
new file mode 100644
index 000000000..ba797ec98
--- /dev/null
+++ b/include/field_map_obj_helpers.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FIELDMAPOBJHELP_H
+#define GUARD_FIELDMAPOBJHELP_H
+
+void UnfreezeMapObjects(void);
+void sub_8097B78(u8, u8);
+
+#endif
diff --git a/include/field_message_box.h b/include/field_message_box.h
new file mode 100644
index 000000000..432c9078b
--- /dev/null
+++ b/include/field_message_box.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_FIELD_MESSAGE_BOX_H
+#define GUARD_FIELD_MESSAGE_BOX_H
+
+bool8 ShowFieldMessage(const u8 *message);
+bool8 sub_8098238(const u8 *message);
+bool8 ShowFieldAutoScrollMessage(const u8 *message);
+void HideFieldMessageBox(void);
+bool8 IsFieldMessageBoxHidden(void);
+
+#endif // GUARD_FIELD_MESSAGE_BOX_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
new file mode 100644
index 000000000..25b7f2d71
--- /dev/null
+++ b/include/field_player_avatar.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_FIELD_PLAYER_AVATAR_H
+#define GUARD_FIELD_PLAYER_AVATAR_H
+
+void ClearPlayerAvatarInfo(void);
+void SetPlayerAvatarExtraStateTransition(u8, u8);
+u8 GetPlayerAvatarGenderByGraphicsId(u8);
+bool8 TestPlayerAvatarFlags(u8);
+void PlayerGetDestCoords(s16 *, s16 *);
+u8 player_get_direction_lower_nybble(void);
+u8 player_get_direction_upper_nybble(void);
+u8 player_get_x22(void);
+
+void sub_808D074(u8);
+void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
+
+#endif //GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_poison.h b/include/field_poison.h
new file mode 100644
index 000000000..d1a4c823b
--- /dev/null
+++ b/include/field_poison.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_FIELD_POISON_H
+#define GUARD_FIELD_POISON_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+enum {
+ FLDPSN_NONE,
+ FLDPSN_PSN,
+ FLDPSN_FNT
+};
+
+void sub_80F972C(void);
+unsigned int overworld_poison(void);
+
+#endif //GUARD_FIELD_POISON_H
diff --git a/include/field_screen.h b/include/field_screen.h
new file mode 100644
index 000000000..cfc0d081f
--- /dev/null
+++ b/include/field_screen.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_FIELD_SCREEN_H
+#define GUARD_FIELD_SCREEN_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void pal_fill_black(void);
+bool8 sub_80ABDFC(void);
+void sub_80AF168(void);
+void UpdateWeatherPerDay(u16 days);
+
+#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h
new file mode 100644
index 000000000..ef81c2f9e
--- /dev/null
+++ b/include/field_screen_effect.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_FIELD_SCREEN_EFFECT_H
+#define GUARD_FIELD_SCREEN_EFFECT_H
+
+void sub_80AF79C(void);
+void sub_80B009C(u8);
+void sub_80B0244(void);
+
+#endif // GUARD_FIELD_SCREEN_EFFECT_H
diff --git a/include/field_specials.h b/include/field_specials.h
new file mode 100644
index 000000000..1f8fbf147
--- /dev/null
+++ b/include/field_specials.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_FIELD_SPECIALS_H
+#define GUARD_FIELD_SPECIALS_H
+
+u8 GetLeadMonIndex(void);
+
+#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/field_tasks.h b/include/field_tasks.h
new file mode 100644
index 000000000..2a2a772d8
--- /dev/null
+++ b/include/field_tasks.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_FIELD_TASKS_H
+#define GUARD_FIELD_TASKS_H
+
+void ActivatePerStepCallback(u8);
+
+#endif // GUARD_FIELD_TASKS_H
diff --git a/include/field_weather.h b/include/field_weather.h
new file mode 100644
index 000000000..e12107e70
--- /dev/null
+++ b/include/field_weather.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_WEATHER_H
+#define GUARD_WEATHER_H
+
+void fade_screen(u8, s8);
+
+void SetSav1Weather(u32);
+u8 GetSav1Weather(void);
+void sub_80AEDBC(void);
+
+void DoCurrentWeather(void);
+
+#endif // GUARD_WEATHER_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
new file mode 100644
index 000000000..06cb7cc77
--- /dev/null
+++ b/include/fieldmap.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_FIELDMAP_H
+#define GUARD_FIELDMAP_H
+
+extern struct MapCoords {
+ int width;
+ int height;
+} gUnknown_03005DC0;
+
+u32 MapGridGetMetatileIdAt(int, int);
+u32 MapGridGetMetatileBehaviorAt(int, int);
+void MapGridSetMetatileIdAt(int, int, u16);
+void MapGridSetMetatileEntryAt(int, int, u16);
+void GetCameraCoords(u16*, u16*);
+bool8 MapGridIsImpassableAt(s16, s16);
+s32 GetMapBorderIdAt(s16, s16);
+bool32 CanCameraMoveInDirection(u8);
+u16 GetBehaviorByMetatileId(u16 metatileId);
+
+#endif //GUARD_FIELDMAP_H
diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h
new file mode 100644
index 000000000..d57665c68
--- /dev/null
+++ b/include/fldeff_80F9BCC.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_FLDEFF_80F9BCC_H
+#define GUARD_FLDEFF_80F9BCC_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void sub_80FA5E4(s16 id, s16 x, s16 y);
+void sub_80FA794(s16 x, s16 y);
+void overworld_poison_effect(void);
+
+#endif //GUARD_FLDEFF_80F9BCC_H
diff --git a/include/gba/gba.h b/include/gba/gba.h
index 42ae3cdde..7e58efb9f 100644
--- a/include/gba/gba.h
+++ b/include/gba/gba.h
@@ -1,11 +1,12 @@
#ifndef GUARD_GBA_GBA_H
#define GUARD_GBA_GBA_H
-#include "gba/defines.h"
-#include "gba/io_reg.h"
-#include "gba/types.h"
-#include "gba/multiboot.h"
-#include "gba/syscall.h"
-#include "gba/macro.h"
+#include "defines.h"
+#include "io_reg.h"
+#include "types.h"
+#include "multiboot.h"
+#include "syscall.h"
+#include "macro.h"
+#include "isagbprint.h"
#endif // GUARD_GBA_GBA_H
diff --git a/include/gba/isagbprint.h b/include/gba/isagbprint.h
new file mode 100644
index 000000000..ce547928c
--- /dev/null
+++ b/include/gba/isagbprint.h
@@ -0,0 +1,36 @@
+#ifndef GUARD_GBA_ISAGBPRINT_H
+#define GUARD_GBA_ISAGBPRINT_H
+
+#ifdef NDEBUG
+#define AGBPrintInit()
+#define AGBPutc(cChr)
+#define AGBPrint(pBuf)
+#define AGBPrintf(pBuf, ...)
+#define AGBPrintFlush1Block()
+#define AGBPrintFlush()
+#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
+#else
+void AGBPrintInit(void);
+void AGBPutc(const char cChr);
+void AGBPrint(const char *pBuf);
+void AGBPrintf(const char *pBuf, ...);
+void AGBPrintFlush1Block(void);
+void AGBPrintFlush(void);
+void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram);
+#endif
+
+#undef AGB_ASSERT
+#ifdef NDEBUG
+#define AGB_ASSERT(exp)
+#else
+#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
+#endif
+
+#undef AGB_WARNING
+#ifdef NDEBUG
+#define AGB_WARNING(exp)
+#else
+#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
+#endif
+
+#endif // GUARD_GBA_ISAGBPRINT_H
diff --git a/include/global.berry.h b/include/global.berry.h
new file mode 100644
index 000000000..5c8a43a02
--- /dev/null
+++ b/include/global.berry.h
@@ -0,0 +1,76 @@
+#ifndef GUARD_GLOBAL_BERRY_H
+#define GUARD_GLOBAL_BERRY_H
+
+#define BERRY_NAME_COUNT 7
+#define BERRY_ITEM_EFFECT_COUNT 18
+
+struct Berry
+{
+ const u8 name[BERRY_NAME_COUNT];
+ u8 firmness;
+ u16 size;
+ u8 maxYield;
+ u8 minYield;
+ const u8 *description1;
+ const u8 *description2;
+ u8 stageDuration;
+ u8 spicy;
+ u8 dry;
+ u8 sweet;
+ u8 bitter;
+ u8 sour;
+ u8 smoothness;
+};
+
+// with no const fields
+
+struct Berry2
+{
+ u8 name[BERRY_NAME_COUNT];
+ u8 firmness;
+ u16 size;
+ u8 maxYield;
+ u8 minYield;
+ u8 *description1;
+ u8 *description2;
+ u8 stageDuration;
+ u8 spicy;
+ u8 dry;
+ u8 sweet;
+ u8 bitter;
+ u8 sour;
+ u8 smoothness;
+};
+
+struct EnigmaBerry
+{
+ struct Berry2 berry;
+ u8 itemEffect[BERRY_ITEM_EFFECT_COUNT];
+ u8 holdEffect;
+ u8 holdEffectParam;
+ u32 checksum;
+};
+
+struct BattleEnigmaBerry
+{
+ /*0x00*/ u8 name[BERRY_NAME_COUNT];
+ /*0x07*/ u8 holdEffect;
+ /*0x08*/ u8 itemEffect[BERRY_ITEM_EFFECT_COUNT];
+ /*0x1A*/ u8 holdEffectParam;
+};
+
+struct BerryTree
+{
+ u8 berry;
+ u8 stage:7;
+ u8 growthSparkle:1;
+ u16 minutesUntilNextStage;
+ u8 berryYield;
+ u8 regrowthCount:4;
+ u8 watered1:1;
+ u8 watered2:1;
+ u8 watered3:1;
+ u8 watered4:1;
+};
+
+#endif // GUARD_GLOBAL_BERRY_H
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
new file mode 100644
index 000000000..ed5054b7d
--- /dev/null
+++ b/include/global.fieldmap.h
@@ -0,0 +1,336 @@
+#ifndef GUARD_GLOBAL_FIELDMAP_H
+#define GUARD_GLOBAL_FIELDMAP_H
+
+#define NUM_FIELD_OBJECTS 16
+
+enum
+{
+ CONNECTION_SOUTH = 1,
+ CONNECTION_NORTH,
+ CONNECTION_WEST,
+ CONNECTION_EAST,
+ CONNECTION_DIVE,
+ CONNECTION_EMERGE
+};
+
+// map types
+enum
+{
+ MAP_TYPE_0,
+ MAP_TYPE_TOWN,
+ MAP_TYPE_CITY,
+ MAP_TYPE_ROUTE,
+ MAP_TYPE_UNDERGROUND,
+ MAP_TYPE_UNDERWATER,
+ MAP_TYPE_6,
+ MAP_TYPE_7,
+ MAP_TYPE_INDOOR,
+ MAP_TYPE_SECRET_BASE
+};
+
+// map battle scenes
+enum
+{
+ MAP_BATTLE_SCENE_NORMAL, // 0
+ MAP_BATTLE_SCENE_GYM, // 1
+ MAP_BATTLE_SCENE_MAGMA, // 2
+ MAP_BATTLE_SCENE_AQUA, // 3
+ MAP_BATTLE_SCENE_SIDNEY, // 4
+ MAP_BATTLE_SCENE_PHOEBE, // 5
+ MAP_BATTLE_SCENE_GLACIA, // 6
+ MAP_BATTLE_SCENE_DRAKE, // 7
+ MAP_BATTLE_SCENE_BATTLE_TOWER, // 8
+};
+
+typedef void (*TilesetCB)(void);
+
+struct Tileset
+{
+ /*0x00*/ bool8 isCompressed;
+ /*0x01*/ bool8 isSecondary;
+ /*0x04*/ void *tiles;
+ /*0x08*/ void *palettes;
+ /*0x0c*/ void *metatiles;
+ /*0x10*/ void *metatileAttributes;
+ /*0x14*/ TilesetCB callback;
+};
+
+struct MapData
+{
+ /*0x00*/ s32 width;
+ /*0x04*/ s32 height;
+ /*0x08*/ u16 *border;
+ /*0x0c*/ u16 *map;
+ /*0x10*/ struct Tileset *primaryTileset;
+ /*0x14*/ struct Tileset *secondaryTileset;
+};
+
+struct BackupMapData
+{
+ s32 width;
+ s32 height;
+ u16 *map;
+};
+
+struct MapObjectTemplate
+{
+ /*0x00*/ u8 localId;
+ /*0x01*/ u8 graphicsId;
+ /*0x02*/ u8 unk2;
+ /*0x04*/ s16 x;
+ /*0x06*/ s16 y;
+ /*0x08*/ u8 elevation;
+ /*0x09*/ u8 movementType;
+ /*0x0A*/ u8 unkA_0:4;
+ u8 unkA_4:4;
+ ///*0x0B*/ u8 fillerB[1];
+ /*0x0C*/ u16 unkC;
+ /*0x0E*/ u16 unkE;
+ /*0x10*/ const u8 *script;
+ /*0x14*/ u16 flagId;
+ /*0x16*/ u8 filler_16[2];
+}; /*size = 0x18*/
+
+struct WarpEvent
+{
+ s16 x, y;
+ s8 warpId;
+ u8 mapGroup;
+ u8 mapNum;
+ u8 unk7;
+};
+
+struct CoordEvent
+{
+ s16 x, y;
+ u8 unk4;
+ u8 filler_5;
+ u16 trigger;
+ u16 index;
+ u8 filler_A[0x2];
+ u8 *script;
+};
+
+struct BgEvent
+{
+ u16 x, y;
+ u8 unk4;
+ u8 kind;
+ // 0x2 padding for the union beginning.
+ union { // carried over from diego's FR/LG work, seems to be the same struct
+ // in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union.
+ u8 *script;
+
+ // hidden item type probably
+ struct {
+ u8 filler6[0x2];
+ u16 hiddenItemId; // flag offset to determine flag lookup
+ } hiddenItem;
+
+ // secret base type
+ u32 secretBaseId;
+
+ } bgUnion;
+};
+
+struct MapEvents
+{
+ u8 mapObjectCount;
+ u8 warpCount;
+ u8 coordEventCount;
+ u8 bgEventCount;
+
+ struct MapObjectTemplate *mapObjects;
+ struct WarpEvent *warps;
+ struct CoordEvent *coordEvents;
+ struct BgEvent *bgEvents;
+};
+
+struct MapConnection
+{
+ /*0x00*/ u8 direction;
+ /*0x01*/ u32 offset;
+ /*0x05*/ u8 mapGroup;
+ /*0x06*/ u8 mapNum;
+};
+
+struct MapConnections
+{
+ s32 count;
+ struct MapConnection *connections;
+};
+
+struct MapHeader
+{
+ /* 0x00 */ struct MapData *mapData;
+ /* 0x04 */ struct MapEvents *events;
+ /* 0x08 */ u8 *mapScripts;
+ /* 0x0C */ struct MapConnections *connections;
+ /* 0x10 */ u16 music;
+ /* 0x12 */ u16 mapDataId;
+ /* 0x14 */ u8 regionMapSectionId;
+ /* 0x15 */ u8 cave;
+ /* 0x16 */ u8 weather;
+ /* 0x17 */ u8 mapType;
+ /* 0x18 */ u8 filler_18;
+ /* 0x19 */ u8 escapeRope;
+ /* 0x1A */ u8 flags;
+ /* 0x1B */ u8 battleType;
+};
+
+struct MapObject
+{
+ /*0x00*/ u32 active:1;
+ u32 mapobj_bit_1:1;
+ u32 mapobj_bit_2:1;
+ u32 mapobj_bit_3:1;
+ u32 mapobj_bit_4:1;
+ u32 mapobj_bit_5:1;
+ u32 mapobj_bit_6:1;
+ u32 mapobj_bit_7:1;
+ /*0x01*/ u32 mapobj_bit_8:1;
+ u32 mapobj_bit_9:1;
+ u32 mapobj_bit_10:1;
+ u32 mapobj_bit_11:1;
+ u32 mapobj_bit_12:1;
+ u32 mapobj_bit_13:1;
+ u32 mapobj_bit_14:1;
+ u32 mapobj_bit_15:1;
+ /*0x02*/ u32 mapobj_bit_16:1;
+ u32 mapobj_bit_17:1;
+ u32 mapobj_bit_18:1;
+ u32 mapobj_bit_19:1;
+ u32 mapobj_bit_20:1;
+ u32 mapobj_bit_21:1;
+ u32 mapobj_bit_22:1;
+ u32 mapobj_bit_23:1;
+ /*0x03*/ u32 mapobj_bit_24:1;
+ u32 mapobj_bit_25:1;
+ u32 mapobj_bit_26:1;
+ u32 mapobj_bit_27:1;
+ u32 mapobj_bit_28:1;
+ u32 mapobj_bit_29:1;
+ u32 mapobj_bit_30:1;
+ u32 mapobj_bit_31:1;
+ /*0x04*/ u8 spriteId;
+ /*0x05*/ u8 graphicsId;
+ /*0x06*/ u8 animPattern;
+ /*0x07*/ u8 trainerType;
+ /*0x08*/ u8 localId;
+ /*0x09*/ u8 mapNum;
+ /*0x0A*/ u8 mapGroup;
+ /*0x0B*/ u8 mapobj_unk_0B_0:4;
+ u8 elevation:4;
+ /*0x0C*/ struct Coords16 coords1;
+ /*0x10*/ struct Coords16 coords2;
+ /*0x14*/ struct Coords16 coords3;
+ /*0x18*/ u8 mapobj_unk_18:4; //current direction?
+ /*0x18*/ u8 placeholder18:4;
+ /*0x19*/ union __attribute__((packed)) {
+ u8 as_byte;
+ struct __attribute__((packed)) {
+ u8 x:4;
+ u8 y:4;
+ } __attribute__((aligned (1))) as_nybbles;
+ } __attribute__((aligned (1))) range;
+ /*0x1A*/ u8 mapobj_unk_1A;
+ /*0x1B*/ u8 mapobj_unk_1B;
+ /*0x1C*/ u8 mapobj_unk_1C;
+ /*0x1D*/ u8 trainerRange_berryTreeId;
+ /*0x1E*/ u8 mapobj_unk_1E;
+ /*0x1F*/ u8 mapobj_unk_1F;
+ /*0x20*/ u8 mapobj_unk_20;
+ /*0x21*/ u8 mapobj_unk_21;
+ /*0x22*/ u8 animId;
+ /*size = 0x24*/
+};
+
+struct MapObjectGraphicsInfo
+{
+ /*0x00*/ u16 tileTag;
+ /*0x02*/ u16 paletteTag1;
+ /*0x04*/ u16 paletteTag2;
+ /*0x06*/ u16 size;
+ /*0x08*/ s16 width;
+ /*0x0A*/ s16 height;
+ /*0x0C*/ u8 paletteSlot:4;
+ u8 shadowSize:2;
+ u8 inanimate:1;
+ u8 disableReflectionPaletteLoad:1;
+ /*0x0D*/ u8 tracks;
+ /*0x10*/ const struct OamData *oam;
+ /*0x14*/ const struct SubspriteTable *subspriteTables;
+ /*0x18*/ const union AnimCmd *const *anims;
+ /*0x1C*/ const struct SpriteFrameImage *images;
+ /*0x20*/ const union AffineAnimCmd *const *affineAnims;
+};
+
+#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
+#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
+#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
+#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
+#define PLAYER_AVATAR_FLAG_4 (1 << 4)
+#define PLAYER_AVATAR_FLAG_5 (1 << 5)
+#define PLAYER_AVATAR_FLAG_6 (1 << 6)
+#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
+
+enum
+{
+ ACRO_BIKE_NORMAL,
+ ACRO_BIKE_TURNING,
+ ACRO_BIKE_WHEELIE_STANDING,
+ ACRO_BIKE_BUNNY_HOP,
+ ACRO_BIKE_WHEELIE_MOVING,
+ ACRO_BIKE_STATE5,
+ ACRO_BIKE_STATE6,
+};
+
+enum
+{
+ DIR_NONE,
+ DIR_SOUTH,
+ DIR_NORTH,
+ DIR_WEST,
+ DIR_EAST,
+};
+
+enum
+{
+ COLLISION_LEDGE_JUMP = 6
+};
+
+struct PlayerAvatar /* 0x202E858 */
+{
+ /*0x00*/ u8 flags;
+ /*0x01*/ u8 bike;
+ /*0x02*/ u8 running2;
+ /*0x03*/ u8 running1;
+ /*0x04*/ u8 spriteId;
+ /*0x05*/ u8 mapObjectId;
+ /*0x06*/ u8 unk6;
+ /*0x07*/ u8 gender;
+ u8 acroBikeState;
+ u8 unk9;
+ u8 bikeFrameCounter;
+ u8 unkB;
+ u32 unkC;
+ u32 unk10;
+ u8 unk14[8];
+ u8 unk1C[8];
+ // TODO: rest of struct
+};
+
+struct Camera
+{
+ bool8 active:1;
+ s32 x;
+ s32 y;
+};
+
+extern struct MapObject gMapObjects[NUM_FIELD_OBJECTS];
+extern u8 gSelectedMapObject;
+extern struct MapHeader gMapHeader;
+extern struct PlayerAvatar gPlayerAvatar;
+extern struct Camera gCamera;
+
+#endif // GUARD_GLOBAL_FIELDMAP_H
diff --git a/include/global.h b/include/global.h
new file mode 100644
index 000000000..d864a6ab7
--- /dev/null
+++ b/include/global.h
@@ -0,0 +1,620 @@
+#ifndef GUARD_GLOBAL_H
+#define GUARD_GLOBAL_H
+
+#include "gba/gba.h"
+#include "config.h"
+
+// Prevent cross-jump optimization.
+#define BLOCK_CROSS_JUMP asm("");
+
+// to help in decompiling
+#define asm_comment(x) asm volatile("@ -- " x " -- ")
+#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
+
+#if defined (__APPLE__) || defined (__CYGWIN__)
+void *memset(void *, int, size_t);
+void *memcpy(void *, const void *, size_t);
+int strcmp(const char *s1, const char *s2);
+char* strcpy(char *dst0, const char *src0);
+#endif // __APPLE__
+
+#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
+
+// useful math macros
+
+// Converts a number to Q8.8 fixed-point format
+#define Q_8_8(n) ((s16)((n) * 256))
+
+// Converts a number to Q4.12 fixed-point format
+#define Q_4_12(n) ((s16)((n) * 4096))
+
+#define POKEMON_NAME_LENGTH 10
+#define OT_NAME_LENGTH 7
+
+extern u8 gStringVar1[];
+extern u8 gStringVar2[];
+extern u8 gStringVar3[];
+extern u8 gStringVar4[];
+
+enum
+{
+ VERSION_SAPPHIRE = 1,
+ VERSION_RUBY = 2,
+ VERSION_EMERALD = 3,
+ VERSION_FIRE_RED = 4,
+ VERSION_LEAF_GREEN = 5,
+};
+
+enum LanguageId {
+ LANGUAGE_JAPANESE = 1,
+ LANGUAGE_ENGLISH = 2,
+ LANGUAGE_FRENCH = 3,
+ LANGUAGE_ITALIAN = 4,
+ LANGUAGE_GERMAN = 5,
+ // 6 goes unused but the theory is it was meant to be Korean
+ LANGUAGE_SPANISH = 7,
+};
+
+#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
+
+enum
+{
+ MALE,
+ FEMALE
+};
+
+enum
+{
+ OPTIONS_BUTTON_MODE_NORMAL,
+ OPTIONS_BUTTON_MODE_LR,
+ OPTIONS_BUTTON_MODE_L_EQUALS_A
+};
+
+enum
+{
+ OPTIONS_TEXT_SPEED_SLOW,
+ OPTIONS_TEXT_SPEED_MID,
+ OPTIONS_TEXT_SPEED_FAST
+};
+
+enum
+{
+ OPTIONS_SOUND_MONO,
+ OPTIONS_SOUND_STEREO
+};
+
+enum
+{
+ OPTIONS_BATTLE_STYLE_SHIFT,
+ OPTIONS_BATTLE_STYLE_SET
+};
+
+enum
+{
+ BAG_ITEMS = 1,
+ BAG_POKEBALLS,
+ BAG_TMsHMs,
+ BAG_BERRIES,
+ BAG_KEYITEMS
+};
+
+struct Coords16
+{
+ s16 x;
+ s16 y;
+};
+
+struct UCoords16
+{
+ u16 x;
+ u16 y;
+};
+
+struct Time
+{
+ /*0x00*/ s16 days;
+ /*0x02*/ s8 hours;
+ /*0x03*/ s8 minutes;
+ /*0x04*/ s8 seconds;
+};
+
+struct Pokedex
+{
+ /*0x00*/ u8 order;
+ /*0x01*/ u8 unknown1;
+ /*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode
+ /*0x03*/ u8 unknown2;
+ /*0x04*/ u32 unownPersonality; // set when you first see Unown
+ /*0x08*/ u32 spindaPersonality; // set when you first see Spinda
+ /*0x0C*/ u32 unknown3;
+ /*0x10*/ u8 owned[52];
+ /*0x44*/ u8 seen[52];
+};
+
+struct PokemonJumpResults // possibly used in the game itself?
+{
+ u16 jumpsInRow;
+ u16 field2;
+ u16 excellentsInRow;
+ u16 field6;
+ u16 field8;
+ u16 fieldA;
+ u32 bestJumpScore;
+};
+
+struct BerryPickingResults // possibly used in the game itself? Size may be wrong as well
+{
+ u32 bestScore;
+ u16 berriesPicked;
+ u16 berriesPickedInRow;
+ u8 field_8;
+ u8 field_9;
+ u8 field_A;
+ u8 field_B;
+ u8 field_C;
+ u8 field_D;
+ u8 field_E;
+ u8 field_F;
+};
+
+struct PyramidBag
+{
+ u16 items_Lvl50[10];
+ u16 items_OpenLvl[10];
+ u8 quantity[10];
+};
+
+struct BerryCrush
+{
+ u16 berryCrushResults[4];
+ u32 berryPowderAmount;
+ u32 unk;
+};
+
+#define PLAYER_NAME_LENGTH 8
+
+struct UnknownSaveBlock2Struct
+{
+ u8 field_0;
+ u8 field_1;
+ u8 field_2[2];
+ u8 field_4[8];
+ u8 field_C[16];
+ u16 field_1C[6];
+ u16 field_28[6];
+ u8 field_34[176];
+ u8 field_E4;
+ u8 field_E5;
+ u8 field_E6;
+ u8 field_E7;
+ u8 field_E8;
+ u8 field_E9;
+ u8 field_EA;
+ u8 field_EB;
+}; // sizeof = 0xEC
+
+struct SaveBlock2
+{
+ /*0x000*/ u8 playerName[PLAYER_NAME_LENGTH];
+ /*0x008*/ u8 playerGender; // MALE, FEMALE
+ /*0x009*/ u8 specialSaveWarp;
+ /*0x00A*/ u8 playerTrainerId[4];
+ /*0x00E*/ u16 playTimeHours;
+ /*0x010*/ u8 playTimeMinutes;
+ /*0x011*/ u8 playTimeSeconds;
+ /*0x012*/ u8 playTimeVBlanks;
+ /*0x013*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]
+ /*0x014*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]
+ u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes
+ u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO]
+ u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET]
+ u16 optionsBattleSceneOff:1; // whether battle animations are disabled
+ u16 regionMapZoom:1; // whether the map is zoomed in
+ /*0x018*/ struct Pokedex pokedex;
+ /*0x090*/ u8 filler_90[0x8];
+ /*0x098*/ struct Time localTimeOffset;
+ /*0x0A0*/ struct Time lastBerryTreeUpdate;
+ /*0x0A8*/ u32 field_A8;
+ /*0x0AC*/ u8 filler_AC[0xE74];
+ /*0xF20*/ u32 encryptionKey;
+};
+
+extern struct SaveBlock2 *gSaveBlock2Ptr;
+
+struct SecretBaseRecord
+{
+ /*0x1A9C*/ u8 secretBaseId;
+ /*0x1A9D*/ u8 sbr_field_1_0:4;
+ /*0x1A9D*/ u8 gender:1;
+ /*0x1A9D*/ u8 sbr_field_1_5:1;
+ /*0x1A9D*/ u8 sbr_field_1_6:2;
+ /*0x1A9E*/ u8 trainerName[OT_NAME_LENGTH];
+ /*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
+ /*0x1AA9*/ u8 language;
+ /*0x1AAA*/ u16 sbr_field_e;
+ /*0x1AAC*/ u8 sbr_field_10;
+ /*0x1AAD*/ u8 sbr_field_11;
+ /*0x1AAE*/ u8 decorations[16];
+ /*0x1ABE*/ u8 decorationPos[16];
+ /*0x1AD0*/ u32 partyPersonality[6];
+ /*0x1AE8*/ u16 partyMoves[6 * 4];
+ /*0x1B18*/ u16 partySpecies[6];
+ /*0x1B24*/ u16 partyHeldItems[6];
+ /*0x1B2E*/ u8 partyLevels[6];
+ /*0x1B34*/ u8 partyEVs[6];
+};
+
+#include "constants/game_stat.h"
+#include "global.fieldmap.h"
+#include "global.berry.h"
+#include "pokemon.h"
+
+struct WarpData
+{
+ s8 mapGroup;
+ s8 mapNum;
+ s8 warpId;
+ s16 x, y;
+};
+
+struct ItemSlot
+{
+ u16 itemId;
+ u16 quantity;
+};
+
+struct Pokeblock
+{
+ u8 color;
+ u8 spicy;
+ u8 dry;
+ u8 sweet;
+ u8 bitter;
+ u8 sour;
+ u8 feel;
+};
+
+struct Roamer
+{
+ /*0x00*/ u32 ivs;
+ /*0x04*/ u32 personality;
+ /*0x08*/ u16 species;
+ /*0x0A*/ u16 hp;
+ /*0x0C*/ u8 level;
+ /*0x0D*/ u8 status;
+ /*0x0E*/ u8 cool;
+ /*0x0F*/ u8 beauty;
+ /*0x10*/ u8 cute;
+ /*0x11*/ u8 smart;
+ /*0x12*/ u8 tough;
+ /*0x13*/ bool8 active;
+ /*0x14*/ u8 filler[0x8];
+};
+
+struct RamScriptData
+{
+ u8 magic;
+ u8 mapGroup;
+ u8 mapNum;
+ u8 objectId;
+ u8 script[995];
+};
+
+struct RamScript
+{
+ u32 checksum;
+ struct RamScriptData data;
+};
+
+struct EasyChatPair
+{
+ u16 unk0_0:7;
+ u16 unk0_7:7;
+ u16 unk1_6:1;
+ u16 unk2;
+ u16 words[2];
+}; /*size = 0x8*/
+
+struct MailStruct
+{
+ /*0x00*/ u16 words[9];
+ /*0x12*/ u8 playerName[8];
+ /*0x1A*/ u8 trainerId[4];
+ /*0x1E*/ u16 species;
+ /*0x20*/ u16 itemId;
+};
+
+struct UnkMauvilleOldManStruct
+{
+ u8 unk_2D94;
+ u8 unk_2D95;
+ /*0x2D96*/ u16 mauvilleOldMan_ecArray[6];
+ /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6];
+ /*0x2DAE*/ u8 playerName[8];
+ /*0x2DB6*/ u8 filler_2DB6[0x3];
+ /*0x2DB9*/ u8 playerTrainerId[4];
+ u8 unk_2DBD;
+}; /*size = 0x2C*/
+
+struct UnkMauvilleOldManStruct2
+{
+ u8 filler0;
+ u8 unk1;
+ u8 unk2;
+ u16 mauvilleOldMan_ecArray[10];
+ u8 mauvilleOldMan_ecArray2[12];
+ u8 fillerF[0x2];
+}; /*size = 0x2C*/
+
+struct MauvilleOldManTrader
+{
+ u8 unk0;
+ u8 unk1[4];
+ u8 unk5[4][11];
+ u8 unk31;
+};
+
+typedef union OldMan
+{
+ struct UnkMauvilleOldManStruct oldMan1;
+ struct UnkMauvilleOldManStruct2 oldMan2;
+ struct MauvilleOldManTrader trader;
+ u8 filler[0x40];
+} OldMan;
+
+struct RecordMixing_UnknownStructSub
+{
+ u32 unk0;
+ u8 data[0x34];
+ //u8 data[0x38];
+};
+
+struct RecordMixing_UnknownStruct
+{
+ struct RecordMixing_UnknownStructSub data[2];
+ u32 unk70;
+ u16 unk74[0x2];
+};
+
+struct LinkBattleRecord
+{
+ u8 name[8];
+ u16 trainerId;
+ u16 wins;
+ u16 losses;
+ u16 draws;
+};
+
+struct RecordMixingGiftData
+{
+ u8 unk0;
+ u8 quantity;
+ u16 itemId;
+ u8 filler4[8];
+};
+
+struct RecordMixingGift
+{
+ int checksum;
+ struct RecordMixingGiftData data;
+};
+
+struct ContestWinner
+{
+ u32 personality;
+ u32 trainerId;
+ u16 species;
+ u8 contestCategory;
+ u8 monName[11];
+ u8 trainerName[8];
+ u8 contestRank;
+};
+
+struct DaycareMiscMon
+{
+ struct MailStruct mail;
+ u8 OT_name[OT_NAME_LENGTH + 1];
+ u8 monName[POKEMON_NAME_LENGTH + 1];
+ u8 gameLanguage:4;
+ u8 monLanguage:4;
+};
+
+struct DaycareMon
+{
+ struct BoxPokemon mon;
+ struct DaycareMiscMon misc;
+ u32 steps;
+};
+
+#define DAYCARE_MON_COUNT 2
+
+struct DayCare
+{
+ struct DaycareMon mons[DAYCARE_MON_COUNT];
+ u32 offspringPersonality;
+ u8 stepCounter;
+};
+
+struct DayCareMail
+{
+ /*0x00*/ struct MailStruct message;
+ /*0x24*/ u8 names[19];
+};
+
+struct RecordMixingDayCareMail
+{
+ struct DayCareMail mail[DAYCARE_MON_COUNT];
+ u32 numDaycareMons;
+ bool16 holdsItem[DAYCARE_MON_COUNT];
+};
+
+#define MAP_OBJECTS_COUNT 16
+#define BERRY_TREES_COUNT 128
+#define FLAGS_COUNT 300
+#define VARS_COUNT 256
+#define MAIL_COUNT 16
+
+enum
+{
+ LILYCOVE_LADY_QUIZ,
+ LILYCOVE_LADY_FAVOUR,
+ LILYCOVE_LADY_CONTEST
+};
+
+struct LilycoveLadyQuiz
+{
+ /*0x000*/ u8 id;
+ /*0x001*/ u8 phase;
+ /*0x002*/ u16 unk_002[9];
+ /*0x014*/ u16 unk_014;
+ /*0x016*/ u16 unk_016;
+ /*0x018*/ u8 playerName[8];
+ /*0x020*/ u16 playerTrainerId[4];
+ /*0x028*/ u16 itemId;
+ /*0x02a*/ u8 unk_02a;
+ /*0x02b*/ u8 unk_02b;
+ /*0x02c*/ u8 unk_02c;
+ /*0x02d*/ u8 language;
+};
+
+struct LilycoveLadyFavour
+{
+ /*0x000*/ u8 id;
+ /*0x001*/ u8 phase;
+ /*0x002*/ u8 unk_002;
+ /*0x003*/ u8 unk_003;
+ /*0x004*/ u8 playerName[8];
+ /*0x00c*/ u8 unk_00c;
+ /*0x00e*/ u16 itemId;
+ /*0x010*/ u16 unk_010;
+ /*0x012*/ u8 language;
+};
+
+struct LilycoveLadyContest
+{
+ /*0x000*/ u8 id;
+ /*0x001*/ u8 phase;
+ /*0x002*/ u8 fave_pkblk;
+ /*0x003*/ u8 other_pkblk;
+ /*0x004*/ u8 playerName[8];
+ /*0x00c*/ u8 max_sheen;
+ /*0x00d*/ u8 category;
+ /*0x00e*/ u8 language;
+};
+
+typedef union // TODO
+{
+ struct LilycoveLadyQuiz quiz;
+ struct LilycoveLadyFavour favour;
+ struct LilycoveLadyContest contest;
+ u8 id;
+} LilycoveLady;
+
+struct WaldaPhrase
+{
+ u16 field_0;
+ u16 field_2;
+ u8 text[16];
+ u8 iconId;
+ u8 patternId;
+ bool8 patternUnlocked;
+};
+
+struct SaveBlock1
+{
+ /*0x00*/ struct Coords16 pos;
+ /*0x04*/ struct WarpData location;
+ /*0x0C*/ struct WarpData warp1;
+ /*0x14*/ struct WarpData warp2;
+ /*0x1C*/ struct WarpData warp3;
+ /*0x24*/ struct WarpData warp4;
+ /*0x2C*/ u16 battleMusic;
+ /*0x2E*/ u8 weather;
+ /*0x2F*/ u8 filler_2F;
+ /*0x30*/ u8 flashUsed;
+ /*0x32*/ u16 mapDataId;
+ /*0x34*/ u16 mapView[0x100];
+ /*0x234*/ u8 playerPartyCount;
+ /*0x238*/ struct Pokemon playerParty[6];
+ /*0x490*/ u32 money;
+ /*0x494*/ u16 coins;
+ /*0x496*/ u16 registeredItem; // registered for use with SELECT button
+ /*0x498*/ struct ItemSlot pcItems[50];
+ /*0x560*/ struct ItemSlot bagPocket_Items[30];
+ /*0x5D8*/ struct ItemSlot bagPocket_KeyItems[30];
+ /*0x650*/ struct ItemSlot bagPocket_PokeBalls[16];
+ /*0x690*/ struct ItemSlot bagPocket_TMHM[64];
+ /*0x790*/ struct ItemSlot bagPocket_Berries[46];
+ /*0x848*/ struct Pokeblock pokeblocks[40];
+ /*0x988*/ u8 seen1[52];
+ /*0x9BC*/ u16 berryBlenderRecords[3];
+ /*0x9C2*/ u8 field_9C2[6];
+ /*0x9C8*/ u16 trainerRematchStepCounter;
+ /*0x9CA*/ u8 trainerRematches[100];
+ /*0xA30*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
+ /*0xC70*/ struct MapObjectTemplate mapObjectTemplates[64];
+ /*0x1270*/ u8 flags[FLAGS_COUNT];
+ /*0x139C*/ u16 vars[VARS_COUNT];
+ /*0x159C*/ u32 gameStats[NUM_GAME_STATS];
+ /*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT];
+ /*0x1A9C*/ struct SecretBaseRecord secretBases[20];
+ /*0x271C*/ u8 playerRoomDecor[12];
+ /*0x2728*/ u8 playerRoomDecorPos[12];
+ /*0x2734*/ u8 decorDesk[10];
+ /*0x????*/ u8 decorChair[10];
+ /*0x????*/ u8 decorPlant[10];
+ /*0x????*/ u8 decorOrnament[30];
+ /*0x????*/ u8 decorMat[30];
+ /*0x????*/ u8 decorPoster[10];
+ /*0x????*/ u8 decorDoll[40];
+ /*0x????*/ u8 decorCushion[10];
+ /*0x27CA*/ u8 padding_27CA[2];
+ /*0x2B90*/ u16 outbreakPokemonSpecies;
+ /*0x2B92*/ u8 outbreakLocationMapNum;
+ /*0x2B93*/ u8 outbreakLocationMapGroup;
+ /*0x2B94*/ u8 outbreakPokemonLevel;
+ /*0x2B95*/ u8 outbreakUnk1;
+ /*0x2B96*/ u16 outbreakUnk2;
+ /*0x2B98*/ u16 outbreakPokemonMoves[4];
+ /*0x2BA0*/ u8 outbreakUnk4;
+ /*0x2BA1*/ u8 outbreakPokemonProbability;
+ /*0x2BA2*/ u16 outbreakDaysLeft;
+ /*0x2BB0*/ u16 unk2BB0[6];
+ /*0x2BBC*/ u16 unk2BBC[6];
+ /*0x2BC8*/ u16 unk2BC8[6];
+ /*0x2BD4*/ u16 unk2BD4[6];
+ /*0x2BE0*/ struct MailStruct mail[MAIL_COUNT];
+ /*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system
+ /*0x2E25*/ u8 unk2E25[3]; // possibly padding?
+ /*0x2E28*/ OldMan oldMan;
+ /*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
+ /*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum
+ /*0x3030*/ struct DayCare daycare;
+ /*0x3150*/ struct LinkBattleRecord linkBattleRecords[5];
+ /*0x31A0*/ u8 unk_31A0;
+ /*0x31A1*/ u8 filler_31A1[7];
+ /*0x31A8*/ u8 giftRibbons[52];
+ /*0x31DC*/ struct Roamer roamer;
+ /*0x31F8*/ struct EnigmaBerry enigmaBerry;
+ /*0x322C*/ u8 field_322C[1276];
+ /*0x3728*/ struct RamScript ramScript;
+ /*0x3B14*/ struct RecordMixingGift recordMixingGift;
+ /*0x3B24*/ u8 seen2[52];
+ /*0x3B58*/ LilycoveLady lilycoveLady;
+ /*0x3B88*/ u8 filler_3B88[0x1E8];
+ /*0x3D70*/ struct WaldaPhrase waldaPhrase;
+ // sizeof: 0x3D88
+};
+
+extern struct SaveBlock1* gSaveBlock1Ptr;
+
+struct Bitmap // TODO: Find a better spot for this
+{
+ u8* pixels;
+ u32 width:16;
+ u32 height:16;
+};
+
+extern u8 gReservedSpritePaletteCount;
+
+#endif // GUARD_GLOBAL_H
diff --git a/include/gpu_regs.h b/include/gpu_regs.h
new file mode 100644
index 000000000..89e0cb64b
--- /dev/null
+++ b/include/gpu_regs.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_GPU_REGS_H
+#define GUARD_GPU_REGS_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void InitGpuRegManager(void);
+void CopyBufferedValuesToGpuRegs(void);
+void SetGpuReg(u8 regOffset, u16 value);
+void SetGpuReg_ForcedBlank(u8 regOffset, u16 value);
+u16 GetGpuReg(u8 regOffset);
+void SetGpuRegBits(u8 regOffset, u16 mask);
+void ClearGpuRegBits(u8 regOffset, u16 mask);
+void EnableInterrupts(u16 mask);
+void DisableInterrupts(u16 mask);
+
+#endif //GUARD_GPU_REGS_H
diff --git a/include/graphics.h b/include/graphics.h
new file mode 100644
index 000000000..aad5c0190
--- /dev/null
+++ b/include/graphics.h
@@ -0,0 +1,144 @@
+//
+// Created by scott on 10/21/2017.
+//
+
+#ifndef GUARD_GRAPHICS_H
+#define GUARD_GRAPHICS_H
+
+extern const u8 gInterfaceGfx_PokeBall[];
+extern const u8 gInterfacePal_PokeBall[];
+extern const u8 gInterfaceGfx_GreatBall[];
+extern const u8 gInterfacePal_GreatBall[];
+extern const u8 gInterfaceGfx_SafariBall[];
+extern const u8 gInterfacePal_SafariBall[];
+extern const u8 gInterfaceGfx_UltraBall[];
+extern const u8 gInterfacePal_UltraBall[];
+extern const u8 gInterfaceGfx_MasterBall[];
+extern const u8 gInterfacePal_MasterBall[];
+extern const u8 gInterfaceGfx_NetBall[];
+extern const u8 gInterfacePal_NetBall[];
+extern const u8 gInterfaceGfx_DiveBall[];
+extern const u8 gInterfacePal_DiveBall[];
+extern const u8 gInterfaceGfx_NestBall[];
+extern const u8 gInterfacePal_NestBall[];
+extern const u8 gInterfaceGfx_RepeatBall[];
+extern const u8 gInterfacePal_RepeatBall[];
+extern const u8 gInterfaceGfx_TimerBall[];
+extern const u8 gInterfacePal_TimerBall[];
+extern const u8 gInterfaceGfx_LuxuryBall[];
+extern const u8 gInterfacePal_LuxuryBall[];
+extern const u8 gInterfaceGfx_PremierBall[];
+extern const u8 gInterfacePal_PremierBall[];
+extern const u8 gOpenPokeballGfx[];
+
+extern const u8 gItemIcon_QuestionMark[];
+extern const u8 gItemIconPalette_QuestionMark[];
+extern const u8 gUnknown_08DB7AA0[];
+extern const u8 gUnknown_08DB7B34[];
+extern const u8 gUnknown_08DB7B5C[];
+extern const u8 gUnknown_08DB7BEC[];
+extern const u8 gUnknown_08DB7C08[];
+extern const u8 gUnknown_08DB7CE8[];
+extern const u8 gUnknown_08DB7D08[];
+extern const u8 gUnknown_08DB7DCC[];
+extern const u8 gUnknown_08DB7DF4[];
+extern const u8 gUnknown_08DB7EA0[];
+extern const u8 gUnknown_08DB7EC4[];
+extern const u8 gUnknown_08DB7F60[];
+extern const u8 gUnknown_08DB7F7C[];
+extern const u8 gUnknown_08DB8070[];
+extern const u8 gUnknown_08DB808C[];
+extern const u8 gUnknown_08DB8138[];
+extern const u8 gUnknown_08DB8160[];
+extern const u8 gUnknown_08DB8218[];
+extern const u8 gUnknown_08DB823C[];
+extern const u8 gUnknown_08DB8300[];
+extern const u8 gUnknown_08DB8328[];
+extern const u8 gUnknown_08DB8430[];
+extern const u8 gUnknown_08DB8458[];
+extern const u8 gUnknown_08DB8528[];
+extern const u8 gUnknown_08DB854C[];
+extern const u8 gUnknown_08DB862C[];
+extern const u8 gUnknown_08DB8654[];
+extern const u8 gUnknown_08DB86C4[];
+extern const u8 gUnknown_08DB86E0[];
+extern const u8 gUnknown_08DB8750[];
+extern const u8 gUnknown_08DB876C[];
+extern const u8 gUnknown_08DB87DC[];
+extern const u8 gUnknown_08DB87F8[];
+extern const u8 gUnknown_08DB88D8[];
+extern const u8 gUnknown_08DB8900[];
+extern const u8 gUnknown_08DB89E0[];
+extern const u8 gUnknown_08DB8A08[];
+extern const u8 gUnknown_08DB8A68[];
+extern const u8 gUnknown_08DB8A84[];
+extern const u8 gUnknown_08DB8B40[];
+extern const u8 gUnknown_08DB8B68[];
+extern const u8 gUnknown_08DB8C40[];
+extern const u8 gUnknown_08DB8C5C[];
+extern const u8 gUnknown_08DB8CF4[];
+extern const u8 gUnknown_08DB8D18[];
+extern const u8 gUnknown_08DB8DB0[];
+extern const u8 gUnknown_08DB8DD4[];
+extern const u8 gUnknown_08DB8E80[];
+extern const u8 gUnknown_08DB8EA0[];
+extern const u8 gUnknown_08DB8F58[];
+extern const u8 gUnknown_08DB8F7C[];
+extern const u8 gUnknown_08DB9038[];
+extern const u8 gUnknown_08DB9058[];
+extern const u8 gUnknown_08DB9130[];
+extern const u8 gUnknown_08DB9154[];
+extern const u8 gUnknown_08DB9218[];
+extern const u8 gUnknown_08DB9234[];
+extern const u8 gUnknown_08DB92FC[];
+extern const u8 gUnknown_08DB931C[];
+extern const u8 gUnknown_08DB93E8[];
+extern const u8 gUnknown_08DB940C[];
+extern const u8 gUnknown_08DB94CC[];
+extern const u8 gUnknown_08DB94E8[];
+extern const u8 gUnknown_08DB95AC[];
+extern const u8 gUnknown_08DB95D0[];
+extern const u8 gUnknown_08DB96C4[];
+extern const u8 gUnknown_08DB96EC[];
+extern const u8 gUnknown_08DB97F4[];
+extern const u8 gUnknown_08DB981C[];
+extern const u8 gUnknown_08DB9908[];
+extern const u8 gUnknown_08DB9930[];
+extern const u8 gUnknown_08DB9A54[];
+extern const u8 gUnknown_08DB9A7C[];
+extern const u8 gUnknown_08DB9B7C[];
+extern const u8 gUnknown_08DB9BA4[];
+extern const u8 gUnknown_08DB9CB0[];
+extern const u8 gUnknown_08DB9CD8[];
+extern const u8 gUnknown_08DB9DAC[];
+extern const u8 gUnknown_08DB9DD4[];
+extern const u8 gUnknown_08DB9EE4[];
+extern const u8 gUnknown_08DB9F08[];
+extern const u8 gUnknown_08DB9FFC[];
+extern const u8 gUnknown_08DBA020[];
+extern const u8 gUnknown_08DBA12C[];
+extern const u8 gUnknown_08DCC05C[];
+extern const u16 gUnknown_08DCC01C[];
+extern const u16 gUnknown_08DCC03C[];
+extern const u8 gUnknown_08DCC648[];
+extern const u8 gUnknown_08DCC908[];
+extern const u8 gUnknown_08DD87C0[];
+extern const u8 gUnknown_08DD8EE0[];
+extern const u16 gUnknown_08DD8780[];
+extern const u8 gUnknown_08DD90E0[];
+extern const u8 gUnknown_08DD9718[];
+extern const u16 gUnknown_08DD9080[];
+extern const u8 gUnknown_08DD98B4[];
+extern const u8 gUnknown_08DD9E58[];
+extern const u16 gUnknown_08DD9874[];
+extern const u8 gUnknown_08DDA02C[];
+extern const u8 gUnknown_08DDA63C[];
+extern const u16 gUnknown_08DD9FEC[];
+extern const u8 gUnknown_08DDA840[];
+extern const u8 gUnknown_08DDAE40[];
+extern const u16 gUnknown_08DDA800[];
+extern const u8 gUnknown_08DDB020[];
+extern const u8 gUnknown_08DDB2C4[];
+extern const u16 gUnknown_08DDAFE0[];
+
+#endif //GUARD_GRAPHICS_H
diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h
new file mode 100644
index 000000000..d35ecf268
--- /dev/null
+++ b/include/hall_of_fame.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_HALL_OF_FAME_H
+#define GUARD_HALL_OF_FAME_H
+
+void CB2_DoHallOfFameScreen(void);
+void CB2_DoHallOfFameScreenDontSaveData(void);
+void CB2_DoHallOfFamePC(void);
+void sub_8175280(void);
+
+#endif // GUARD_HALL_OF_FAME_H
diff --git a/include/heal_location.h b/include/heal_location.h
new file mode 100644
index 000000000..1f966f1ae
--- /dev/null
+++ b/include/heal_location.h
@@ -0,0 +1,25 @@
+#ifndef GUARD_HEAL_LOCATION_H
+#define GUARD_HEAL_LOCATION_H
+
+// Exported type declarations
+
+struct UnkStruct_0859F534 {
+ const union AffineAnimCmd *const *const affineAnims;
+ void (* callback)(struct Sprite *sprite);
+};
+
+struct HealLocation
+{
+ s8 group;
+ s8 map;
+ u16 x;
+ u16 y;
+};
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+const struct HealLocation *GetHealLocationPointer(u32 loc);
+
+#endif //GUARD_HEAL_LOCATION_H
diff --git a/include/international_string_util.h b/include/international_string_util.h
new file mode 100644
index 000000000..e7876162e
--- /dev/null
+++ b/include/international_string_util.h
@@ -0,0 +1,23 @@
+#ifndef GUARD_INTERNATIONAL_STRING_UTIL_H
+#define GUARD_INTERNATIONAL_STRING_UTIL_H
+
+#include "menu.h"
+
+void sub_81DB52C(const u8 *src);
+void TVShowConvertInternationalString(u8 *dest, const u8 *src, u8 language);
+s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
+s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
+s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
+s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
+s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1);
+s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2);
+// sub_81DB41C
+// CopyMonCategoryText
+// sub_81DB494
+// sub_81DB4DC
+// sub_81DB554
+// sub_81DB5AC
+u32 sub_81DB604(const u8 *);
+// sub_81DB620
+
+#endif // GUARD_INTERNATIONAL_STRING_UTIL_H
diff --git a/include/item.h b/include/item.h
new file mode 100644
index 000000000..a136f03ec
--- /dev/null
+++ b/include/item.h
@@ -0,0 +1,64 @@
+#ifndef ITEM_H
+#define ITEM_H
+
+typedef void (*ItemUseFunc)(u8);
+
+struct Item
+{
+ u8 name[14];
+ u16 itemId;
+ u16 price;
+ u8 holdEffect;
+ u8 holdEffectParam;
+ const u8 *description;
+ u8 importance;
+ u8 unk19;
+ u8 pocket;
+ u8 type;
+ ItemUseFunc fieldUseFunc;
+ u8 battleUsage;
+ ItemUseFunc battleUseFunc;
+ u8 secondaryId;
+};
+
+struct BagPocket
+{
+ struct ItemSlot *itemSlots;
+ u8 capacity;
+};
+
+extern struct BagPocket gBagPockets[];
+
+void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity);
+void CopyItemName(u16 itemId, u8 *string);
+void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity);
+bool8 IsBagPocketNonEmpty(u8 pocket);
+bool8 CheckBagHasItem(u16 itemId, u16 count);
+bool8 CheckBagHasSpace(u16 itemId, u16 count);
+bool8 AddBagItem(u16 itemId, u16 count);
+bool8 RemoveBagItem(u16 itemId, u16 count);
+u8 GetPocketByItemId(u16 itemId);
+void ClearItemSlots(struct ItemSlot *itemSlots, u8 b);
+u8 CountUsedPCItemSlots(void);
+bool8 CheckPCHasItem(u16 itemId, u16 count);
+bool8 AddPCItem(u16 itemId, u16 count);
+void RemovePCItem(u8 index, u16 count);
+void SwapRegisteredBike(void);
+const struct Item *ItemId_GetItem(u16 itemId);
+u16 ItemId_GetId(u16 itemId);
+u16 ItemId_GetPrice(u16 itemId);
+u8 ItemId_GetHoldEffect(u16 itemId);
+u8 ItemId_GetHoldEffectParam(u16 itemId);
+const u8 *ItemId_GetDescription(u16 itemId);
+bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
+u8 ItemId_GetImportance(u16 itemId);
+u8 ItemId_GetUnknownValue(u16 itemId);
+u8 ItemId_GetPocket(u16 itemId);
+u8 ItemId_GetType(u16 itemId);
+ItemUseFunc ItemId_GetFieldFunc(u16 itemId);
+u8 ItemId_GetBattleUsage(u16 itemId);
+ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
+u8 ItemId_GetSecondaryId(u16 itemId);
+u16 itemid_get_market_price(u16 itemId);
+
+#endif // ITEM_H
diff --git a/include/item_icon.h b/include/item_icon.h
new file mode 100644
index 000000000..a43b72f39
--- /dev/null
+++ b/include/item_icon.h
@@ -0,0 +1,17 @@
+//
+// Created by scott on 10/20/2017.
+//
+
+#ifndef GUARD_ITEM_ICON_H
+#define GUARD_ITEM_ICON_H
+
+extern EWRAM_DATA void *gUnknown_0203CEBC;
+extern EWRAM_DATA void *gUnknown_0203CEC0;
+
+extern const struct SpriteTemplate gUnknown_08614FF4;
+
+bool8 AllocItemIconTemporaryBuffers(void);
+void CopyItemIconPicTo4x4Buffer(void *src, void *dest);
+void FreeItemIconTemporaryBuffers(void);
+
+#endif //GUARD_ITEM_ICON_H
diff --git a/include/item_menu.h b/include/item_menu.h
new file mode 100644
index 000000000..85655e9d5
--- /dev/null
+++ b/include/item_menu.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_item_menu_H
+#define GUARD_item_menu_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void sub_81AAC50(void);
+void sub_81AAC70(void);
+
+#endif //GUARD_item_menu_H
diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h
new file mode 100644
index 000000000..553e7c262
--- /dev/null
+++ b/include/item_menu_icons.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_ITEM_MENU_ICONS
+#define GUARD_ITEM_MENU_ICONS
+
+u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
+
+#endif // GUARD_ITEM_MENU_ICONS
diff --git a/include/librfu.h b/include/librfu.h
new file mode 100644
index 000000000..dbc8a41a6
--- /dev/null
+++ b/include/librfu.h
@@ -0,0 +1,108 @@
+#include "main.h"
+
+enum
+{
+ RFU_RESET = 0x10,
+ RFU_LINK_STATUS,
+ RFU_VERSION_STATUS,
+ RFU_SYSTEM_STATUS,
+ RFU_SLOT_STATUS,
+ RFU_CONFIG_STATUS,
+ RFU_GAME_CONFIG,
+ RFU_SYSTEM_CONFIG,
+ RFU_UNK18,
+ RFU_SC_START,
+ RFU_SC_POLLING,
+ RFU_SC_END,
+ RFU_SP_START,
+ RFU_SP_POLLING,
+ RFU_SP_END,
+ RFU_CP_START,
+ RFU_CP_POLLING,
+ RFU_CP_END,
+ RFU_UNK22,
+ RFU_UNK23,
+ RFU_DATA_TX,
+ RFU_DATA_TX_AND_CHANGE,
+ RFU_DATA_RX,
+ RFU_MS_CHANGE,
+ RFU_DATA_READY_AND_CHANGE,
+ RFU_DISCONNECTED_AND_CHANGE,
+ RFU_UNK2A,
+ RFU_UNK2B,
+ RFU_UNK2C,
+ RFU_UNK2D,
+ RFU_UNK2E,
+ RFU_UNK2F,
+ RFU_DISCONNECT,
+ RFU_TEST_MODE,
+ RFU_CPR_START,
+ RFU_CPR_POLLING,
+ RFU_CPR_END,
+ RFU_UNK35,
+ RFU_UNK36,
+ RFU_RESUME_RETRANSMIT_AND_CHANGE,
+ RFU_UNK38,
+ RFU_UNK39,
+ RFU_UNK3A,
+ RFU_UNK3B,
+ RFU_UNK3C,
+ RFU_STOP_MODE, //3D
+};
+
+struct RfuPacket8
+{
+ u8 data[0x74];
+};
+
+struct RfuPacket32
+{
+ u32 command;
+ u32 data[0x1C];
+};
+
+union RfuPacket
+{
+ struct RfuPacket32 rfuPacket32;
+ struct RfuPacket8 rfuPacket8;
+};
+
+struct RfuStruct
+{
+ vs32 unk_0;
+ u8 txParams;
+ u8 unk_5;
+ u8 activeCommand;
+ u8 unk_7;
+ u8 unk_8;
+ u8 unk_9;
+ u8 timerSelect;
+ u8 unk_b;
+ int timerState;
+ vu8 timerActive;
+ u8 unk_11;
+ vu16 unk_12;
+ vu8 msMode;
+ u8 unk_15;
+ u8 unk_16;
+ u8 unk_17;
+ void (*callbackM)();
+ void (*callbackS)();
+ u32 callbackID;
+ union RfuPacket *txPacket;
+ union RfuPacket *rxPacket;
+ vu8 unk_2c;
+ u8 padding[3];
+};
+
+struct RfuIntrStruct
+{
+ u8 rxPacketAlloc[0x74];
+ u8 txPacketAlloc[0x74];
+ u8 block1[0x960];
+ u8 block2[0x30];
+};
+
+extern struct RfuStruct *gRfuState;
+
+void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam);
diff --git a/include/link.h b/include/link.h
new file mode 100644
index 000000000..1f91ebfeb
--- /dev/null
+++ b/include/link.h
@@ -0,0 +1,198 @@
+#ifndef GUARD_LINK_H
+#define GUARD_LINK_H
+
+#define MAX_LINK_PLAYERS 4
+#define MAX_RFU_PLAYERS 5
+#define CMD_LENGTH 8
+#define QUEUE_CAPACITY 50
+#define BLOCK_BUFFER_SIZE 0x100
+
+#define LINK_STAT_LOCAL_ID 0x00000003
+#define LINK_STAT_PLAYER_COUNT 0x0000001C
+#define LINK_STAT_PLAYER_COUNT_SHIFT 2
+#define LINK_STAT_MASTER 0x00000020
+#define LINK_STAT_MASTER_SHIFT 5
+#define LINK_STAT_CONN_ESTABLISHED 0x00000040
+#define LINK_STAT_CONN_ESTABLISHED_SHIFT 6
+#define LINK_STAT_RECEIVED_NOTHING 0x00000100
+#define LINK_STAT_RECEIVED_NOTHING_SHIFT 8
+#define LINK_STAT_ERRORS 0x0007F000
+
+#define EXTRACT_PLAYER_COUNT(status) \
+(((status) & LINK_STAT_PLAYER_COUNT) >> LINK_STAT_PLAYER_COUNT_SHIFT)
+#define EXTRACT_MASTER(status) \
+(((status) >> LINK_STAT_MASTER_SHIFT) & 1)
+#define EXTRACT_CONN_ESTABLISHED(status) \
+(((status) >> LINK_STAT_CONN_ESTABLISHED_SHIFT) & 1)
+#define EXTRACT_RECEIVED_NOTHING(status) \
+(((status) >> LINK_STAT_RECEIVED_NOTHING_SHIFT) & 1)
+
+#define MASTER_HANDSHAKE 0x8FFF
+#define SLAVE_HANDSHAKE 0xB9A0
+
+enum
+{
+ LINK_STATE_START0,
+ LINK_STATE_START1,
+ LINK_STATE_HANDSHAKE,
+ LINK_STATE_INIT_TIMER,
+ LINK_STATE_CONN_ESTABLISHED,
+};
+
+enum
+{
+ EXCHANGE_NOT_STARTED,
+ EXCHANGE_COMPLETE,
+ EXCHANGE_TIMED_OUT,
+ EXCHANGE_IN_PROGRESS,
+};
+
+enum
+{
+ QUEUE_FULL_NONE,
+ QUEUE_FULL_SEND,
+ QUEUE_FULL_RECV,
+};
+
+enum
+{
+ LAG_NONE,
+ LAG_MASTER,
+ LAG_SLAVE,
+};
+
+struct LinkPlayer
+{
+ /* 0x00 */ u16 version;
+ /* 0x02 */ u16 lp_field_2;
+ /* 0x04 */ u32 trainerId;
+ /* 0x08 */ u8 name[11];
+ /* 0x13 */ u8 gender;
+ /* 0x14 */ u32 linkType;
+ /* 0x18 */ u16 lp_field_18; // battle bank in battles
+ /* 0x1A */ u16 language;
+};
+
+struct LinkPlayerBlock
+{
+ u8 magic1[16];
+ struct LinkPlayer linkPlayer;
+ u8 magic2[16];
+};
+
+// circular queues
+
+struct SendQueue
+{
+ u16 data[CMD_LENGTH][QUEUE_CAPACITY];
+ u8 pos;
+ u8 count;
+};
+
+struct RecvQueue
+{
+ u16 data[MAX_LINK_PLAYERS][CMD_LENGTH][QUEUE_CAPACITY];
+ u8 pos;
+ u8 count;
+};
+
+struct Link
+{
+ u8 isMaster; // 0: slave, 8: master
+ u8 state;
+ u8 localId; // local multi-player ID
+ u8 playerCount;
+ u16 tempRecvBuffer[4];
+ bool8 receivedNothing;
+ s8 serialIntrCounter;
+ bool8 handshakeAsMaster;
+ u8 link_field_F;
+
+ // error conditions
+ bool8 hardwareError; // hardware reported an error
+ bool8 badChecksum; // checksum didn't match between devices
+ u8 queueFull; // send or recv queue out of space
+ u8 lag; // connection is lagging
+
+ u16 checksum;
+
+ u8 sendCmdIndex;
+ u8 recvCmdIndex;
+
+ struct SendQueue sendQueue;
+ struct RecvQueue recvQueue;
+};
+
+struct BlockRequest
+{
+ void * address;
+ u32 size;
+};
+
+extern const struct BlockRequest sBlockRequestLookupTable[5];
+
+extern struct Link gLink;
+extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH];
+extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
+extern u16 gLinkType;
+extern u32 gLinkStatus;
+extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
+extern u16 gSendCmd[CMD_LENGTH];
+extern u8 gShouldAdvanceLinkState;
+extern struct LinkPlayer gLinkPlayers[];
+extern u16 word_3002910[];
+extern bool8 gReceivedRemoteLinkPlayers;
+extern bool8 gLinkVSyncDisabled;
+
+void Task_DestroySelf(u8);
+void OpenLink(void);
+void CloseLink(void);
+u16 LinkMain2(u16 *);
+void sub_8007B14(void);
+bool32 sub_8007B24(void);
+void ClearLinkCallback(void);
+void ClearLinkCallback_2(void);
+u8 GetLinkPlayerCount(void);
+void OpenLinkTimed(void);
+u8 GetLinkPlayerDataExchangeStatusTimed(void);
+bool8 IsLinkPlayerDataExchangeComplete(void);
+u32 GetLinkPlayerTrainerId(u8);
+void ResetLinkPlayers(void);
+void sub_8007E24(void);
+void sub_8007E4C(void);
+u8 GetMultiplayerId(void);
+u8 bitmask_all_link_players_but_self(void);
+bool8 SendBlock(u8, void *, u16);
+u8 GetBlockReceivedStatus(void);
+void ResetBlockReceivedFlags(void);
+void ResetBlockReceivedFlag(u8);
+void SetLinkDebugValues(u32, u32);
+u8 GetLinkPlayerCount_2(void);
+bool8 IsLinkMaster(void);
+void CB2_LinkError(void);
+u8 GetSioMultiSI(void);
+bool8 IsLinkConnectionEstablished(void);
+void SetSuppressLinkErrorMessage(bool8);
+bool8 HasLinkErrorOccurred(void);
+void ResetSerial(void);
+u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]);
+void RFUVSync(void);
+void Timer3Intr(void);
+void SerialCB(void);
+u8 GetLinkPlayerCount(void);
+bool32 InUnionRoom(void);
+
+void sub_800E0E8(void);
+bool8 sub_800A520(void);
+bool8 sub_8010500(void);
+void sub_800DFB4(u8, u8);
+void sub_800ADF8(void);
+void sub_800B488(void);
+void sub_8009734(void);
+void sub_800A620(void);
+void sub_8011BD0(void);
+u8 sub_800ABAC(void);
+u8 sub_800ABBC(void);
+void sub_800AC34(void);
+
+#endif // GUARD_LINK_H
diff --git a/include/list_menu.h b/include/list_menu.h
new file mode 100644
index 000000000..0249b06af
--- /dev/null
+++ b/include/list_menu.h
@@ -0,0 +1,56 @@
+#ifndef GUARD_LIST_MENU_H
+#define GUARD_LIST_MENU_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+struct ListMenuItem
+{
+ const u8 *unk_00;
+ s32 unk_04;
+};
+
+struct ListMenu;
+
+struct ListMenuTemplate
+{
+ const struct ListMenuItem *items;
+ void (* unk_04)(u32, bool8, struct ListMenu *);
+ void (* unk_08)(u8, s32, u8);
+ u16 totalItems;
+ u16 maxShowed;
+ u8 unk_10;
+ u8 unk_11;
+ u8 unk_12;
+ u8 cursor_Y;
+ u32 upText_Y:4; // x1, x2, x4, x8 = xF
+ u32 cursorColor:4; // x10, x20, x40, x80 = xF0
+ u32 fillColor:4; // x100, x200, x400, x800 = xF00
+ u32 cursorShadowColor:4; // x1000, x2000, x4000, x8000 = xF000
+ u32 unk_16_0:1; // x10000
+ u32 spaceBetweenItems:6; // x20000, x40000, x80000, x100000, x200000, x400000 = x7E0000
+ u32 unk_16_7:1; // x800000
+ u32 unk_17_0:6; // x1000000, x2000000, x4000000, x8000000, x10000000, x20000000 = x3F000000
+};
+
+struct ListMenu {
+ struct ListMenuTemplate _template;
+ u16 scrollOffset;
+ u16 selectedRow;
+ u8 unk_1C;
+ u8 unk_1D;
+ u8 unk_1E;
+ u8 unk_1F;
+};
+
+extern struct ListMenuTemplate gUnknown_03006310;
+
+// Exported ROM declarations
+
+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);
+
+#endif //GUARD_LIST_MENU_H
diff --git a/include/load_save.h b/include/load_save.h
new file mode 100644
index 000000000..1f406bbad
--- /dev/null
+++ b/include/load_save.h
@@ -0,0 +1,24 @@
+#ifndef GUARD_LOAD_SAVE_H
+#define GUARD_LOAD_SAVE_H
+
+extern bool32 gFlashMemoryPresent;
+
+void ClearSav2(void);
+void ClearSav1(void);
+void CheckForFlashMemory(void);
+void MoveSaveBlocks_ResetHeap(void);
+bool32 GetSecretBase2Field_9(void);
+void ClearSecretBase2Field_9(void);
+void SetSecretBase2Field_9(void);
+void SetSecretBase2Field_9_AndHideBG(void);
+void ClearSecretBase2Field_9_2(void);
+void SavePlayerParty(void);
+void LoadPlayerParty(void);
+void SaveSerializedGame(void);
+void LoadSerializedGame(void);
+void LoadPlayerBag(void);
+void SavePlayerBag(void);
+void SetSaveBlocksPointers(u16);
+void MoveSaveBlocks_ResetHeap(void);
+
+#endif // GUARD_LOAD_SAVE_H
diff --git a/include/m4a.h b/include/m4a.h
new file mode 100644
index 000000000..8c3380dd8
--- /dev/null
+++ b/include/m4a.h
@@ -0,0 +1,20 @@
+#ifndef GUARD_M4A_H
+#define GUARD_M4A_H
+
+#include "gba/m4a_internal.h"
+
+void m4aSoundVSync(void);
+void m4aSoundVSyncOn(void);
+
+void m4aSoundInit(void);
+void m4aSoundMain(void);
+void m4aSongNumStart(u16);
+void m4aSongNumStop(u16 n);
+void m4aMPlayAllStop(void);
+void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
+void m4aMPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed);
+void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
+void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
+void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
+
+#endif //GUARD_M4A_H
diff --git a/include/mail.h b/include/mail.h
new file mode 100644
index 000000000..0a70237bf
--- /dev/null
+++ b/include/mail.h
@@ -0,0 +1,23 @@
+#ifndef GUARD_MAIL_H
+#define GUARD_MAIL_H
+
+#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \
+ || itemId == ITEM_HARBOR_MAIL \
+ || itemId == ITEM_GLITTER_MAIL \
+ || itemId == ITEM_MECH_MAIL \
+ || itemId == ITEM_WOOD_MAIL \
+ || itemId == ITEM_WAVE_MAIL \
+ || itemId == ITEM_BEAD_MAIL \
+ || itemId == ITEM_SHADOW_MAIL \
+ || itemId == ITEM_TROPIC_MAIL \
+ || itemId == ITEM_DREAM_MAIL \
+ || itemId == ITEM_FAB_MAIL \
+ || itemId == ITEM_RETRO_MAIL))
+
+
+bool8 MonHasMail(struct Pokemon *mon);
+void TakeMailFromMon(struct Pokemon *mon);
+u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail);
+void ClearMailStruct(struct MailStruct *mail);
+
+#endif // GUARD_MAIL_H
diff --git a/include/mail_data.h b/include/mail_data.h
new file mode 100644
index 000000000..bf6540bad
--- /dev/null
+++ b/include/mail_data.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_MAIL_DATA_H
+#define GUARD_MAIL_DATA_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+u16 sub_80D45E8(u16, u16 *);
+
+#endif //GUARD_MAIL_DATA_H
diff --git a/include/main.h b/include/main.h
new file mode 100644
index 000000000..82f85f881
--- /dev/null
+++ b/include/main.h
@@ -0,0 +1,64 @@
+#ifndef GUARD_MAIN_H
+#define GUARD_MAIN_H
+
+#include "global.h"
+
+typedef void (*MainCallback)(void);
+typedef void (*IntrCallback)(void);
+typedef void (*IntrFunc)(void);
+
+struct Main
+{
+ /*0x000*/ MainCallback callback1;
+ /*0x004*/ MainCallback callback2;
+
+ /*0x008*/ MainCallback savedCallback;
+
+ /*0x00C*/ IntrCallback vblankCallback;
+ /*0x010*/ IntrCallback hblankCallback;
+ /*0x014*/ IntrCallback vcountCallback;
+ /*0x018*/ IntrCallback serialCallback;
+
+ /*0x01C*/ vu16 intrCheck;
+
+ /*0x020*/ u32 *vblankCounter1;
+ /*0x024*/ u32 vblankCounter2;
+
+ /*0x028*/ u16 heldKeysRaw; // held keys without L=A remapping
+ /*0x02A*/ u16 newKeysRaw; // newly pressed keys without L=A remapping
+ /*0x02C*/ u16 heldKeys; // held keys with L=A remapping
+ /*0x02E*/ u16 newKeys; // newly pressed keys with L=A remapping
+ /*0x030*/ u16 newAndRepeatedKeys; // newly pressed keys plus key repeat
+ /*0x032*/ u16 keyRepeatCounter; // counts down to 0, triggering key repeat
+ /*0x034*/ bool16 watchedKeysPressed; // whether one of the watched keys was pressed
+ /*0x036*/ u16 watchedKeysMask; // bit mask for watched keys
+
+ /*0x038*/ struct OamData oamBuffer[128];
+
+ /*0x438*/ u8 state;
+
+ /*0x439*/ u8 oamLoadDisabled:1;
+ /*0x439*/ u8 inBattle:1;
+ /*0x439*/ u8 field_439_x4:1;
+};
+
+extern u8 gUnknown_3001764;
+extern struct Main gMain;
+extern bool8 gSoftResetDisabled;
+extern bool8 gLinkVSyncDisabled;
+
+extern const u8 gGameVersion;
+extern const u8 gGameLanguage;
+
+void AgbMain(void);
+void SetMainCallback2(MainCallback callback);
+void InitKeys(void);
+void SetVBlankCallback(IntrCallback callback);
+void SetHBlankCallback(IntrCallback callback);
+void SetVCountCallback(IntrCallback callback);
+void SetSerialCallback(IntrCallback callback);
+void InitFlashTimer(void);
+void DoSoftReset(void);
+void ClearPokemonCrySongs(void);
+
+#endif // GUARD_MAIN_H
diff --git a/include/malloc.h b/include/malloc.h
new file mode 100644
index 000000000..003ee1f03
--- /dev/null
+++ b/include/malloc.h
@@ -0,0 +1,20 @@
+#ifndef GUARD_MALLOC_H
+#define GUARD_MALLOC_H
+
+#define malloc Alloc
+#define calloc(ct, sz) AllocZeroed((ct) * (sz))
+#define free Free
+
+#define FREE_AND_SET_NULL(ptr) \
+{ \
+ free(ptr); \
+ ptr = NULL; \
+}
+
+extern u8 gHeap[];
+void *Alloc(u32 size);
+void *AllocZeroed(u32 size);
+void Free(void *pointer);
+void InitHeap(void *pointer, u32 size);
+
+#endif // GUARD_MALLOC_H
diff --git a/include/map_name_popup.h b/include/map_name_popup.h
new file mode 100644
index 000000000..8a9043a3f
--- /dev/null
+++ b/include/map_name_popup.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_MAP_NAME_POPUP_H
+#define GUARD_MAP_NAME_POPUP_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void HideMapNamePopUpWindow(void);
+
+#endif //GUARD_MAP_NAME_POPUP_H
diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h
new file mode 100644
index 000000000..27ffd18cb
--- /dev/null
+++ b/include/map_obj_8097404.h
@@ -0,0 +1,32 @@
+//
+// Created by scott on 9/7/2017.
+//
+
+#ifndef GUARD_MAP_OBJ_8097404_H
+#define GUARD_MAP_OBJ_8097404_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+extern void *gUnknown_020375B8;
+
+// Exported ROM declarations
+void sub_8097AC8(struct Sprite *);
+void npc_sync_anim_pause_bits(struct MapObject *);
+void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
+u8 sub_8097F78(struct MapObject *);
+bool8 obj_npc_ministep(struct Sprite *sprite);
+bool8 sub_80976EC(struct Sprite *sprite);
+void sub_80976DC(struct Sprite *, u8);
+void sub_809783C(struct Sprite *, u8, u8, u8);
+void DoShadowFieldEffect(struct MapObject *);
+u8 sub_809785C(struct Sprite *);
+u8 sub_80978E4(struct Sprite *);
+void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
+bool8 sub_80979BC(struct Sprite *);
+void sub_8097750(struct Sprite *);
+bool8 sub_8097758(struct Sprite *);
+void sub_8097FA4(struct MapObject *);
+void sub_8098044(u8);
+
+#endif //GUARD_MAP_OBJ_8097404_H
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
new file mode 100644
index 000000000..a10648f2f
--- /dev/null
+++ b/include/map_obj_lock.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_MAP_OBJ_LOCK_H
+#define GUARD_MAP_OBJ_LOCK_H
+
+bool8 sub_80983C4(void);
+void ScriptFreezeMapObjects(void);
+bool8 sub_809847C(void);
+void LockSelectedMapObject(void);
+void sub_8098630(void);
+bool8 sub_8098734(void);
+
+#endif // GUARD_MAP_OBJ_LOCK_H
diff --git a/include/menu.h b/include/menu.h
new file mode 100644
index 000000000..99ff35adb
--- /dev/null
+++ b/include/menu.h
@@ -0,0 +1,38 @@
+#ifndef GUARD_MENU_H
+#define GUARD_MENU_H
+
+#include "text.h"
+#include "window.h"
+
+struct MenuAction
+{
+ const u8 *text;
+ union {
+ void (*void_u8)(u8);
+ u8 (*u8_void)(void);
+ } func;
+};
+
+void box_print(u8, u8, u8, u8, const void *, s8, const u8 *);
+void sub_8198070(u8 windowId, bool8 copyToVram);
+void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
+void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
+void schedule_bg_copy_tilemap_to_vram(u8 bgNum);
+void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
+void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
+u8 GetMenuCursorPos(void);
+s8 ProcessMenuInput(void);
+s8 ProcessMenuInputNoWrapAround(void);
+void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
+void reset_temp_tile_data_buffers(void);
+int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);
+bool8 free_temp_tile_data_buffers_if_possible(void);
+u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
+void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
+s8 ProcessMenuInputNoWrap_(void);
+void do_scheduled_bg_tilemap_copies_to_vram(void);
+void clear_scheduled_bg_copies_to_vram(void);
+void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str);
+void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
+
+#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
new file mode 100644
index 000000000..f083a10e2
--- /dev/null
+++ b/include/menu_helpers.h
@@ -0,0 +1,20 @@
+#ifndef GUARD_MENU_HELPERS_H
+#define GUARD_MENU_HELPERS_H
+
+// Exported type declarations
+
+struct YesNoFuncTable {
+ TaskFunc yesFunc;
+ TaskFunc noFunc;
+};
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+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);
+
+#endif //GUARD_MENU_HELPERS_H
diff --git a/include/menu_indicators.h b/include/menu_indicators.h
new file mode 100644
index 000000000..d0baac810
--- /dev/null
+++ b/include/menu_indicators.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_MENU_INDICATORS_H
+#define GUARD_MENU_INDICATORS_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
+void RemoveScrollIndicatorArrowPair(u8);
+
+#endif //GUARD_MENU_INDICATORS_H
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
new file mode 100644
index 000000000..d6743b788
--- /dev/null
+++ b/include/metatile_behavior.h
@@ -0,0 +1,149 @@
+#ifndef GUARD_METATILE_BEHAVIOR
+#define GUARD_METATILE_BEHAVIOR
+
+bool8 ShouldDoJumpLandingDustEffect(u8);
+bool8 MetatileBehavior_IsEncounterTile(u8);
+bool8 MetatileBehavior_IsJumpEast(u8);
+bool8 MetatileBehavior_IsJumpWest(u8);
+bool8 MetatileBehavior_IsJumpNorth(u8);
+bool8 MetatileBehavior_IsJumpSouth(u8);
+bool8 MetatileBehavior_IsPokeGrass(u8);
+bool8 MetatileBehavior_IsSandOrDeepSand(u8);
+bool8 MetatileBehavior_IsDeepSand(u8);
+bool8 MetatileBehavior_IsReflective(u8);
+bool8 MetatileBehavior_IsIce(u8);
+bool8 MetatileBehavior_IsWarpDoor(u8);
+bool8 MetatileBehavior_IsDoor(u8);
+bool8 MetatileBehavior_IsEscalator(u8);
+bool8 MetatileBehavior_IsMB_04(u8);
+bool8 MetatileBehavior_IsLadder(u8);
+bool8 MetatileBehavior_IsNonAnimDoor(u8);
+bool8 MetatileBehavior_IsDeepSouthWarp(u8);
+bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8);
+bool8 MetatileBehavior_IsEastArrowWarp(u8);
+bool8 MetatileBehavior_IsWestArrowWarp(u8);
+bool8 MetatileBehavior_IsNorthArrowWarp(u8);
+bool8 MetatileBehavior_IsSouthArrowWarp(u8);
+bool8 MetatileBehavior_IsArrowWarp(u8);
+bool8 MetatileBehavior_IsMoveTile(u8);
+bool8 MetatileBehavior_IsIce_2(u8);
+bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8);
+bool8 MetatileBehavior_IsMB_05(u8);
+bool8 MetatileBehavior_IsWalkNorth(u8);
+bool8 MetatileBehavior_IsWalkSouth(u8);
+bool8 MetatileBehavior_IsWalkWest(u8);
+bool8 MetatileBehavior_IsWalkEast(u8);
+bool8 MetatileBehavior_IsNorthwardCurrent(u8);
+bool8 MetatileBehavior_IsSouthwardCurrent(u8);
+bool8 MetatileBehavior_IsWestwardCurrent(u8);
+bool8 MetatileBehavior_IsEastwardCurrent(u8);
+bool8 MetatileBehavior_IsSlideNorth(u8);
+bool8 MetatileBehavior_IsSlideSouth(u8);
+bool8 MetatileBehavior_IsSlideWest(u8);
+bool8 MetatileBehavior_IsSlideEast(u8);
+bool8 MetatileBehavior_IsCounter(u8);
+bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 tile, u8 playerDir);
+bool8 MetatileBehavior_IsPC(u8);
+bool8 MetatileBehavior_IsCableBoxResults1(u8);
+bool8 MetatileBehavior_IsSecretBaseOpen(u8);
+bool8 MetatileBehavior_IsSecretBaseCave(u8);
+bool8 MetatileBehavior_IsSecretBaseTree(u8);
+bool8 MetatileBehavior_IsSecretBaseShrub(u8);
+bool8 MetatileBehavior_IsSecretBasePC(u8);
+bool8 MetatileBehavior_IsSecretBaseRegisterPC(u8);
+bool8 MetatileBehavior_IsMB_B2(u8);
+bool8 MetatileBehavior_IsMB_B3(u8);
+bool8 MetatileBehavior_IsMB_B9(u8);
+bool8 MetatileBehavior_IsMB_C6(u8);
+bool8 MetatileBehavior_IsSecretBasePoster(u8);
+bool8 MetatileBehavior_IsNormal(u8);
+bool8 MetatileBehavior_IsMB_B7(u8);
+bool8 MetatileBehavior_IsMB_B2_Duplicate(u8);
+bool8 MetatileBehavior_IsMB_B5(u8);
+bool8 MetatileBehavior_IsMB_C3(u8);
+bool8 MetatileBehavior_IsMB_C2(u8);
+bool8 MetatileBehavior_IsSecretBaseBalloon(u8);
+bool8 MetatileBehavior_IsMB_BE(u8);
+bool8 MetatileBehavior_IsSecretBaseSoundMat(u8);
+bool8 MetatileBehavior_IsSecretBaseGlitterMat(u8);
+bool8 MetatileBehavior_IsMB_BF(u8);
+bool8 MetatileBehavior_IsSecretBaseTvOrShield(u8);
+bool8 MetatileBehavior_IsMB_C5(u8);
+bool8 MetatileBehavior_HasRipples(u8);
+bool8 MetatileBehavior_IsPuddle(u8);
+bool8 MetatileBehavior_IsTallGrass(u8);
+bool8 MetatileBehavior_IsLongGrass(u8);
+bool8 MetatileBehavior_IsBerryTreeSoil(u8);
+bool8 MetatileBehavior_IsAsh(u8);
+bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8);
+bool8 MetatileBehavior_IsBridge(u8);
+u8 MetatileBehavior_GetBridgeSth(u8);
+u8 MetatileBehavior_8089510(u8);
+bool8 MetatileBehavior_IsLandWildEncounter(u8);
+bool8 MetatileBehavior_IsWaterWildEncounter(u8);
+bool8 MetatileBehavior_IsMB_0B(u8);
+bool8 MetatileBehavior_IsMountain(u8);
+bool8 MetatileBehavior_IsDiveable(u8);
+bool8 MetatileBehavior_IsUnableToEmerge(u8);
+bool8 MetatileBehavior_IsShallowFlowingWater(u8);
+bool8 MetatileBehavior_IsThinIce(u8);
+bool8 MetatileBehavior_IsCrackedIce(u8);
+bool8 MetatileBehavior_IsDeepOrOceanWater(u8);
+bool8 MetatileBehavior_IsMB_18_OrMB_1A(u8);
+bool8 MetatileBehavior_IsSurfableAndNotWaterfall(u8);
+bool8 MetatileBehavior_IsEastBlocked(u8);
+bool8 MetatileBehavior_IsWestBlocked(u8);
+bool8 MetatileBehavior_IsNorthBlocked(u8);
+bool8 MetatileBehavior_IsSouthBlocked(u8);
+bool8 MetatileBehavior_IsShortGrass(u8);
+bool8 MetatileBehavior_IsHotSprings(u8);
+bool8 MetatileBehavior_IsWaterfall(u8);
+bool8 MetatileBehavior_IsFortreeBridge(u8);
+bool8 MetatileBehavior_IsPacifilogVerticalLog1(u8);
+bool8 MetatileBehavior_IsPacifilogVerticalLog2(u8);
+bool8 MetatileBehavior_IsPacifilogHorizontalLog1(u8);
+bool8 MetatileBehavior_IsPacifilogHorizontalLog2(u8);
+bool8 MetatileBehavior_IsPacifidlogLog(u8);
+bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8);
+bool8 MetatileBehavior_IsRegionMap(u8);
+bool8 MetatileBehavior_IsClosedSootopolisGymDoor(u8);
+bool8 MetatileBehavior_IsUnknownClosedDoor(u8);
+bool8 MetatileBehavior_IsRoulette(u8);
+bool8 MetatileBehavior_IsPokeblockFeeder(u8);
+bool8 MetatileBehavior_IsSecretBaseJumpMat(u8);
+bool8 MetatileBehavior_IsSecretBaseSpinMat(u8);
+bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8);
+bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8);
+bool8 MetatileBehavior_IsAquaHideoutWarp(u8);
+bool8 MetatileBehavior_IsWarpOrBridge(u8);
+bool8 MetatileBehavior_IsMossdeepGymWarp(u8);
+bool8 MetatileBehavior_IsSurfableFishableWater(u8);
+bool8 MetatileBehavior_IsMtPyreHole(u8);
+bool8 MetatileBehavior_IsCrackedFloorHole(u8);
+bool8 MetatileBehavior_IsCrackedFloor(u8);
+bool8 MetatileBehavior_IsMuddySlope(u8);
+bool8 MetatileBehavior_IsBumpySlope(u8);
+bool8 MetatileBehavior_IsIsolatedVerticalRail(u8);
+bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8);
+bool8 MetatileBehavior_IsVerticalRail(u8);
+bool8 MetatileBehavior_IsHorizontalRail(u8);
+bool8 MetatileBehavior_IsSeaweed(u8);
+bool8 MetatileBehavior_IsRunningDisallowed(u8);
+bool8 MetatileBehavior_IsCuttableGrass(u8);
+bool8 MetatileBehavior_IsRunningShoesInstruction(u8);
+bool8 MetatileBehavior_IsPictureBookShelf(u8);
+bool8 MetatileBehavior_IsBookShelf(u8);
+bool8 MetatileBehavior_IsPokeCenterBookShelf(u8);
+bool8 MetatileBehavior_IsVase(u8);
+bool8 MetatileBehavior_IsTrashCan(u8);
+bool8 MetatileBehavior_IsShopShelf(u8);
+bool8 MetatileBehavior_IsBlueprint(u8);
+bool8 MetatileBehavior_IsBattlePyramidWarp(u8);
+bool8 MetatileBehavior_IsPlayerFacingWirelessBoxResults(u8 tile, u8 playerDir);
+bool8 MetatileBehavior_IsCableBoxResults2(u8 tile, u8 playerDir);
+bool8 MetatileBehavior_IsQuestionnaire(u8);
+bool8 MetatileBehavior_IsLongGrass_Duplicate(u8);
+bool8 MetatileBehavior_IsLongGrassSouthEdge(u8);
+bool8 MetatileBehavior_IsTrainerHillTimer(u8);
+
+#endif // GUARD_METATILE_BEHAVIOR
diff --git a/include/metatile_behaviors.h b/include/metatile_behaviors.h
new file mode 100644
index 000000000..dd3a8b4f4
--- /dev/null
+++ b/include/metatile_behaviors.h
@@ -0,0 +1,179 @@
+#ifndef GUARD_METATILE_BEHAVIORS
+#define GUARD_METATILE_BEHAVIORS
+
+#define MB_NORMAL 0x00
+#define MB_TALL_GRASS 0x02
+#define MB_LONG_GRASS 0x03
+#define MB_04 0x04
+#define MB_05 0x05
+#define MB_DEEP_SAND 0x06
+#define MB_SHORT_GRASS 0x07
+#define MB_CAVE 0x08
+#define MB_LONG_GRASS_SOUTH_EDGE 0x09
+#define MB_NO_RUNNING 0x0A
+#define MB_0B 0x0B
+#define MB_MOUNTAIN_TOP 0x0C
+#define MB_BATTLE_PYRAMID_WARP 0x0D
+#define MB_MOSSDEEP_GYM_WARP 0x0E
+#define MB_MT_PYRE_HOLE 0x0F
+#define MB_POND_WATER 0x10
+#define MB_SEMI_DEEP_WATER 0x11
+#define MB_DEEP_WATER 0x12
+#define MB_WATERFALL 0x13
+#define MB_SOOTOPOLIS_DEEP_WATER 0x14
+#define MB_OCEAN_WATER 0x15
+#define MB_PUDDLE 0x16
+#define MB_SHALLOW_WATER 0x17
+#define MB_18 0x18
+#define MB_NO_SURFACING 0x19
+#define MB_1A 0x1A
+#define MB_STAIRS_OUTSIDE_ABANDONED_SHIP 0x1B
+#define MB_SHOAL_CAVE_ENTRANCE 0x1C
+#define MB_ICE 0x20
+#define MB_SAND 0x21
+#define MB_SEAWEED 0x22
+#define MB_ASHGRASS 0x24
+#define MB_25 0x25
+#define MB_THIN_ICE 0x26
+#define MB_CRACKED_ICE 0x27
+#define MB_HOT_SPRINGS 0x28
+#define MB_LAVARIDGE_GYM_B1F_WARP 0x29
+#define MB_SEAWEED_NO_SURFACING 0x2A
+#define MB_REFLECTION_UNDER_BRIDGE 0x2B
+#define MB_IMPASSABLE_EAST 0x30
+#define MB_IMPASSABLE_WEST 0x31
+#define MB_IMPASSABLE_NORTH 0x32
+#define MB_IMPASSABLE_SOUTH 0x33
+#define MB_IMPASSABLE_NORTHEAST 0x34
+#define MB_IMPASSABLE_NORTHWEST 0x35
+#define MB_IMPASSABLE_SOUTHEAST 0x36
+#define MB_IMPASSABLE_SOUTHWEST 0x37
+#define MB_JUMP_EAST 0x38
+#define MB_JUMP_WEST 0x39
+#define MB_JUMP_NORTH 0x3A
+#define MB_JUMP_SOUTH 0x3B
+#define MB_JUMP_SOUTHEAST 0x3E
+#define MB_JUMP_SOUTHWEST 0x3F
+#define MB_WALK_EAST 0x40
+#define MB_WALK_WEST 0x41
+#define MB_WALK_NORTH 0x42
+#define MB_WALK_SOUTH 0x43
+#define MB_SLIDE_EAST 0x44
+#define MB_SLIDE_WEST 0x45
+#define MB_SLIDE_NORTH 0x46
+#define MB_SLIDE_SOUTH 0x47
+#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48
+#define MB_EASTWARD_CURRENT 0x50
+#define MB_WESTWARD_CURRENT 0x51
+#define MB_NORTHWARD_CURRENT 0x52
+#define MB_SOUTHWARD_CURRENT 0x53
+#define MB_NON_ANIMATED_DOOR 0x60
+#define MB_LADDER 0x61
+#define MB_EAST_ARROW_WARP 0x62
+#define MB_WEST_ARROW_WARP 0x63
+#define MB_NORTH_ARROW_WARP 0x64
+#define MB_SOUTH_ARROW_WARP 0x65
+#define MB_CRACKED_FLOOR_HOLE 0x66
+#define MB_AQUA_HIDEOUT_WARP 0x67
+#define MB_LAVARIDGE_GYM_1F_WARP 0x68
+#define MB_ANIMATED_DOOR 0x69
+#define MB_UP_ESCALATOR 0x6A
+#define MB_DOWN_ESCALATOR 0x6B
+#define MB_WATER_DOOR 0x6C
+#define MB_WATER_SOUTH_ARROW_WARP 0x6D
+#define MB_DEEP_SOUTH_WARP 0x6E
+#define MB_WARP_OR_BRIDGE 0x70
+#define MB_71 0x71
+#define MB_ROUTE120_NORTH_BRIDGE_1 0x72
+#define MB_ROUTE120_NORTH_BRIDGE_2 0x73
+#define MB_PACIFIDLOG_VERTICAL_LOG_1 0x74
+#define MB_PACIFIDLOG_VERTICAL_LOG_2 0x75
+#define MB_PACIFIDLOG_HORIZONTAL_LOG_1 0x76
+#define MB_PACIFIDLOG_HORIZONTAL_LOG_2 0x77
+#define MB_FORTREE_BRIDGE 0x78
+#define MB_ROUTE120_SOUTH_BRIDGE_1 0x7A
+#define MB_ROUTE120_SOUTH_BRIDGE_2 0x7B
+#define MB_ROUTE120_NORTH_BRIDGE_3 0x7C
+#define MB_ROUTE120_NORTH_BRIDGE_4 0x7D
+#define MB_7E 0x7E
+#define MB_ROUTE110_BRIDGE 0x7F
+#define MB_COUNTER 0x80
+#define MB_PC 0x83
+#define MB_CABLE_BOX_RESULTS_1 0x84
+#define MB_REGION_MAP 0x85
+#define MB_TELEVISION 0x86
+#define MB_POKEBLOCK_FEEDER 0x87
+#define MB_SLOT_MACHINE 0x89
+#define MB_ROULETTE 0x8A
+#define MB_CLOSED_SOOTOPOLIS_GYM_DOOR 0x8B
+#define MB_TRICK_HOUSE_PUZZLE_DOOR 0x8C
+#define MB_8D 0x8D
+#define MB_RUNNING_SHOES_INSTRUCTION 0x8E
+#define MB_QUESTIONNAIRE 0x8F
+#define MB_SECRET_BASE_SPOT_RED_CAVE 0x90
+#define MB_SECRET_BASE_SPOT_RED_CAVE_OPEN 0x91
+#define MB_SECRET_BASE_SPOT_BROWN_CAVE 0x92
+#define MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN 0x93
+#define MB_SECRET_BASE_SPOT_YELLOW_CAVE 0x94
+#define MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN 0x95
+#define MB_SECRET_BASE_SPOT_TREE_LEFT 0x96
+#define MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN 0x97
+#define MB_SECRET_BASE_SPOT_SHRUB 0x98
+#define MB_SECRET_BASE_SPOT_SHRUB_OPEN 0x99
+#define MB_SECRET_BASE_SPOT_BLUE_CAVE 0x9A
+#define MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN 0x9B
+#define MB_SECRET_BASE_SPOT_TREE_RIGHT 0x9C
+#define MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN 0x9D
+#define MB_BERRY_TREE_SOIL 0xA0
+#define MB_SECRET_BASE_PC 0xB0
+#define MB_SECRET_BASE_REGISTER_PC 0xB1
+#define MB_B2 0xB2
+#define MB_B3 0xB3
+#define MB_B4 0xB4
+#define MB_B5 0xB5
+#define MB_B6 0xB6
+#define MB_B7 0xB7
+#define MB_SECRET_BASE_BALLOON 0xB8
+#define MB_B9 0xB9
+#define MB_SECRET_BASE_GLITTER_MAT 0xBA
+#define MB_SECRET_BASE_JUMP_MAT 0xBB
+#define MB_SECRET_BASE_SPIN_MAT 0xBC
+#define MB_SECRET_BASE_SOUND_MAT 0xBD
+#define MB_BE 0xBE
+#define MB_BF 0xBF
+#define MB_BED 0xC0
+#define MB_C1 0xC1
+#define MB_C2 0xC2
+#define MB_C3 0xC3
+#define MB_SECRET_BASE_TV_SHIELD 0xC4
+#define MB_C5 0xC5
+#define MB_C6 0xC6
+#define MB_SECRET_BASE_POSTER 0xC7
+#define MB_C8 0xC8
+#define MB_C9 0xC9
+#define MB_CA 0xCA
+#define MB_CB 0xCB
+#define MB_CC 0xCC
+#define MB_CD 0xCD
+#define MB_CE 0xCE
+#define MB_CF 0xCF
+#define MB_MUDDY_SLOPE 0xD0
+#define MB_BUMPY_SLOPE 0xD1
+#define MB_CRACKED_FLOOR 0xD2
+#define MB_ISOLATED_VERTICAL_RAIL 0xD3
+#define MB_ISOLATED_HORIZONTAL_RAIL 0xD4
+#define MB_VERTICAL_RAIL 0xD5
+#define MB_HORIZONTAL_RAIL 0xD6
+#define MB_PICTURE_BOOK_SHELF 0xE0
+#define MB_BOOKSHELF 0xE1
+#define MB_POKEMON_CENTER_BOOKSHELF 0xE2
+#define MB_VASE 0xE3
+#define MB_TRASH_CAN 0xE4
+#define MB_SHOP_SHELF 0xE5
+#define MB_BLUEPRINT 0xE6
+#define MB_CABLE_BOX_RESULTS_2 0xE7
+#define MB_WIRELESS_BOX_RESULTS 0xE8
+#define MB_TRAINER_HILL_TIMER 0xE9
+#define MB_UNKNOWN_CLOSED_DOOR 0xEA
+
+#endif // GUARD_METATILE_BEHAVIORS
diff --git a/include/money.h b/include/money.h
new file mode 100644
index 000000000..5c7c1c984
--- /dev/null
+++ b/include/money.h
@@ -0,0 +1,20 @@
+#ifndef GUARD_MONEY_H
+#define GUARD_MONEY_H
+
+u32 GetMoney(u32* moneyPtr);
+void SetMoney(u32* moneyPtr, u32 newValue);
+bool8 IsEnoughMoney(u32* moneyPtr, u32 cost);
+void AddMoney(u32* moneyPtr, u32 toAdd);
+void RemoveMoney(u32* moneyPtr, u32 toSub);
+bool8 IsEnoughForCostInVar0x8005(void);
+void SubtractMoneyFromVar0x8005(void);
+void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
+void PrintMoneyAmount(u8 windowId, u8 x, u8 y, 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);
+
+#endif // GUARD_MONEY_H
diff --git a/include/multiboot.h b/include/multiboot.h
new file mode 100644
index 000000000..d4700ff4e
--- /dev/null
+++ b/include/multiboot.h
@@ -0,0 +1,21 @@
+#ifndef GUARD_MULTIBOOT_H
+#define GUARD_MULTIBOOT_H
+
+#define MULTIBOOT_MASTER_INFO 0x62
+#define MULTIBOOT_CLIENT_INFO 0x72
+#define MULTIBOOT_MASTER_START_PROBE 0x61
+#define MULTIBOOT_MASTER_REQUEST_DLREADY 0x63
+#define MULTIBOOT_CLIENT_DLREADY 0x73
+#define MULTIBOOT_MASTER_START_DL 0x64
+#define MULTIBOOT_MASTER_REQUEST_CRC 0x65
+#define MULTIBOOT_CLIENT_CALC_CRC 0x74
+#define MULTIBOOT_CLIENT_CRCREADY 0x75
+#define MULTIBOOT_MASTER_VERIFY_CRC 0x66
+
+void MultiBootInit(struct MultiBootParam *mp);
+int MultiBootMain(struct MultiBootParam *mp);
+void MultiBootStartProbe(struct MultiBootParam *mp);
+void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed);
+int MultiBootCheckComplete(struct MultiBootParam *mp);
+
+#endif // GUARD_MULTIBOOT_H
diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h
new file mode 100644
index 000000000..ab23a8d00
--- /dev/null
+++ b/include/mystery_event_script.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H
+#define GUARD_MYSTERY_EVENT_SCRIPT_H
+
+u32 RunMysteryEventScript(u8 *);
+void SetMysteryEventScriptStatus(u32 val);
+u16 GetRecordMixingGift(void);
+
+#endif // GUARD_MYSTERY_EVENT_SCRIPT_H
diff --git a/include/naming_screen.h b/include/naming_screen.h
new file mode 100644
index 000000000..3d69b834f
--- /dev/null
+++ b/include/naming_screen.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_NAMING_SCREEN_H
+#define GUARD_NAMING_SCREEN_H
+
+#define NAMING_SCREEN_PLAYER 0
+#define NAMING_SCREEN_BOX 1
+#define NAMING_SCREEN_CAUGHT_MON 2
+#define NAMING_SCREEN_3 3
+#define NAMING_SCREEN_WALDA 4
+
+void DoNamingScreen(u8 caseId, u8* dst, u16 monSpecies, u8 monGender, u32 monPersonality, void (*callback)(void));
+
+#endif // GUARD_NAMING_SCREEN_H
diff --git a/include/new_game.h b/include/new_game.h
new file mode 100644
index 000000000..2088d1826
--- /dev/null
+++ b/include/new_game.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_NEW_GAME_H
+#define GUARD_NEW_GAME_H
+
+void WriteUnalignedWord(u32 var, u8 *dataPtr);
+u32 ReadUnalignedWord(u8* dataPtr);
+void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom);
+void InitPlayerTrainerId(void);
+void SetDefaultOptions(void);
+void ClearPokedexFlags(void);
+void WarpToTruck(void);
+void NewGameInitData(void);
+void ResetMiniGamesResults(void);
+void sub_808447C(void);
+void Sav2_ClearSetDefault(void);
+
+#endif // GUARD_NEW_GAME_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
new file mode 100644
index 000000000..c52184972
--- /dev/null
+++ b/include/new_menu_helpers.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_NEW_MENU_HELPERS_H
+#define GUARD_NEW_MENU_HELPERS_H
+
+#include "text.h"
+#include "task.h"
+
+void sub_81973A4(void);
+void sub_81973C4(u8, u8);
+void sub_819746C(u8 windowId, bool8 copyToVram);
+void sub_81973FC(u8, u8);
+u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor);
+void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
+void sub_8197434(u8 a0, u8 a1);
+void SetStandardWindowBorderStyle(u8 a0, u8 a1);
+void sub_8197930(void);
+u8 GetPlayerTextSpeed(void);
+
+#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/overworld.h b/include/overworld.h
new file mode 100644
index 000000000..a5fba0c10
--- /dev/null
+++ b/include/overworld.h
@@ -0,0 +1,74 @@
+#ifndef GUARD_ROM4_H
+#define GUARD_ROM4_H
+
+#include "main.h"
+
+struct UnkPlayerStruct
+{
+ u8 player_field_0;
+ u8 player_field_1;
+};
+
+struct LinkPlayerMapObject
+{
+ u8 active;
+ u8 linkPlayerId;
+ u8 mapObjId;
+ u8 mode;
+};
+
+struct UCoords32
+{
+ u32 x, y;
+};
+
+extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
+extern MainCallback gFieldCallback;
+
+void IncrementGameStat(u8 index);
+
+void Overworld_SetMapObjTemplateCoords(u8, s16, s16);
+void Overworld_SetMapObjTemplateMovementType(u8, u8);
+
+void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+
+void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId);
+void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+void Overworld_SetHealLocationWarp(u8);
+void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+void sub_8084E2C(s8, s8, s8, s8, s8);
+void sub_8084E80(s8, s8, s8, s8, s8);
+void sub_8084EBC(s16, s16);
+
+void player_avatar_init_params_reset(void);
+
+void Overworld_SetFlashLevel(s32 a1);
+//u8 Overworld_GetFlashLevel(void);
+void sub_8085524(u16);
+
+void Overworld_SetSavedMusic(u16);
+void Overworld_ChangeMusicToDefault(void);
+void Overworld_ChangeMusicTo(u16);
+
+bool32 is_c1_link_related_active(void);
+
+void strange_npc_table_clear(void);
+const struct MapHeader *get_mapheader_by_bank_and_number(u16, u16);
+void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *);
+void sub_8086230(void);
+void c2_exit_to_overworld_2_switch(void);
+bool32 sub_8087598(void);
+void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
+void warp_in(void);
+u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
+void sub_8086194(void);
+void sub_8084CCC(u8 spawn);
+void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpNum);
+void c2_load_new_map(void);
+void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
+void mapldr_default(void);
+
+void IncrementGameStat(u8);
+u32 GetGameStat(u8);
+
+#endif //GUARD_ROM4_H
diff --git a/include/palette.h b/include/palette.h
new file mode 100644
index 000000000..d3bcd2271
--- /dev/null
+++ b/include/palette.h
@@ -0,0 +1,71 @@
+#ifndef GUARD_PALETTE_H
+#define GUARD_PALETTE_H
+
+#include "global.h"
+
+#define gPaletteFade_selectedPalettes (gPaletteFade.multipurpose1) // normal and fast fade
+#define gPaletteFade_blendCnt (gPaletteFade.multipurpose1) // hardware fade
+#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade
+#define gPaletteFade_submode (gPaletteFade.multipurpose2) // fast fade
+
+#define PLTT_BUFFER_SIZE 0x200
+#define PLTT_DECOMP_BUFFER_SIZE (PLTT_BUFFER_SIZE * 2)
+
+enum
+{
+ FAST_FADE_IN_FROM_WHITE,
+ FAST_FADE_OUT_TO_WHTIE,
+ FAST_FADE_IN_FROM_BLACK,
+ FAST_FADE_OUT_TO_BLACK,
+};
+
+struct PaletteFadeControl
+{
+ u32 multipurpose1;
+ u8 delayCounter:6;
+ u16 y:5; // blend coefficient
+ u16 targetY:5; // target blend coefficient
+ u16 blendColor:15;
+ u16 active:1;
+ u16 multipurpose2:6;
+ u16 yDec:1; // whether blend coefficient is decreasing
+ u16 bufferTransferDisabled:1;
+ u16 mode:2;
+ u16 shouldResetBlendRegisters:1;
+ u16 hardwareFadeFinishing:1;
+ u16 softwareFadeFinishingCounter:5;
+ u16 softwareFadeFinishing:1;
+ u16 objPaletteToggle:1;
+ u8 deltaY:4; // rate of change of blend coefficient
+};
+
+extern struct PaletteFadeControl gPaletteFade;
+extern u32 gPlttBufferTransferPending;
+extern u8 gPaletteDecompressionBuffer[];
+extern u16 gPlttBufferUnfaded[];
+extern u16 gPlttBufferFaded[];
+
+void LoadCompressedPalette(const void *, u16, u16);
+void LoadPalette(const void *, u16, u16);
+void FillPalette(u16, u16, u16);
+void TransferPlttBuffer(void);
+u8 UpdatePaletteFade(void);
+void ResetPaletteFade(void);
+void ReadPlttIntoBuffers(void);
+bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
+bool8 unref_sub_8073D3C(u32, u8, u8, u8, u16);
+void unref_sub_8073D84(u8, u32 *);
+void ResetPaletteStructByUid(u16);
+void ResetPaletteStruct(u8);
+void ResetPaletteFadeControl();
+void unref_sub_8074168(u16);
+void unref_sub_8074194(u16);
+void InvertPlttBuffer(u32);
+void TintPlttBuffer(u32, s8, s8, s8);
+void UnfadePlttBuffer(u32);
+void BeginFastPaletteFade(u8);
+void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
+void BlendPalettes(u32, u8, u16);
+void BlendPalettesUnfaded(u32, u8, u16);
+
+#endif // GUARD_PALETTE_H
diff --git a/include/party_menu.h b/include/party_menu.h
new file mode 100644
index 000000000..c787bafb1
--- /dev/null
+++ b/include/party_menu.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_PARTY_MENU_H
+#define GUARD_PARTY_MENU_H
+
+enum {
+ AILMENT_NONE,
+ AILMENT_PSN,
+ AILMENT_PRZ,
+ AILMENT_SLP,
+ AILMENT_FRZ,
+ AILMENT_BRN
+};
+
+bool8 pokemon_has_move(struct Pokemon *, u16);
+void sub_81B58A8(void);
+void DoWallyTutorialBagMenu(void);
+u8 pokemon_ailments_get_primary(u32 status);
+
+#endif // GUARD_PARTY_MENU_H
diff --git a/include/play_time.h b/include/play_time.h
new file mode 100644
index 000000000..49091f4b1
--- /dev/null
+++ b/include/play_time.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_PLAY_TIME_H
+#define GUARD_PLAY_TIME_H
+
+void PlayTimeCounter_Reset(void);
+void PlayTimeCounter_Start(void);
+void PlayTimeCounter_Stop(void);
+void PlayTimeCounter_Update(void);
+void PlayTimeCounter_SetToMax(void);
+
+#endif // GUARD_PLAY_TIME_H
diff --git a/include/player_pc.h b/include/player_pc.h
new file mode 100644
index 000000000..b14d1ede3
--- /dev/null
+++ b/include/player_pc.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_PLAYER_PC_H
+#define GUARD_PLAYER_PC_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void sub_816B060(u8 taskId);
+
+#endif //GUARD_PLAYER_PC_H
diff --git a/include/pokeball.h b/include/pokeball.h
new file mode 100644
index 000000000..84178b5b2
--- /dev/null
+++ b/include/pokeball.h
@@ -0,0 +1,32 @@
+#ifndef GUARD_POKEBALL_H
+#define GUARD_POKEBALL_H
+
+enum
+{
+ BALL_POKE,
+ BALL_GREAT,
+ BALL_SAFARI,
+ BALL_ULTRA,
+ BALL_MASTER,
+ BALL_NET,
+ BALL_DIVE,
+ BALL_NEST,
+ BALL_REPEAT,
+ BALL_TIMER,
+ BALL_LUXURY,
+ BALL_PREMIER,
+ POKEBALL_COUNT
+};
+
+#define POKEBALL_PLAYER_SENDOUT 0xFF
+#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);
+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);
+void LoadBallGfx(u8 ballId);
+void FreeBallGfx(u8 ballId);
+
+#endif // GUARD_POKEBALL_H
diff --git a/include/pokedex.h b/include/pokedex.h
new file mode 100644
index 000000000..236feac45
--- /dev/null
+++ b/include/pokedex.h
@@ -0,0 +1,23 @@
+#ifndef GUARD_POKEDEX_H
+#define GUARD_POKEDEX_H
+
+void ResetPokedex(void);
+void CopyMonCategoryText(u16 species, u8 *dst);
+u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
+u16 GetNationalPokedexCount(u8);
+u16 GetHoennPokedexCount(u8);
+u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality);
+
+enum
+{
+ FLAG_GET_SEEN,
+ FLAG_GET_CAUGHT,
+ FLAG_SET_SEEN,
+ FLAG_SET_CAUGHT
+};
+
+s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
+u16 pokedex_count(u8);
+u16 sub_80C0844(u8);
+
+#endif // GUARD_POKEDEX_H
diff --git a/include/pokemon.h b/include/pokemon.h
new file mode 100644
index 000000000..480c8d9b9
--- /dev/null
+++ b/include/pokemon.h
@@ -0,0 +1,663 @@
+#ifndef GUARD_POKEMON_H
+#define GUARD_POKEMON_H
+
+#define MON_DATA_PERSONALITY 0
+#define MON_DATA_OT_ID 1
+#define MON_DATA_NICKNAME 2
+#define MON_DATA_LANGUAGE 3
+#define MON_DATA_SANITY_BIT1 4
+#define MON_DATA_SANITY_BIT2 5
+#define MON_DATA_SANITY_BIT3 6
+#define MON_DATA_OT_NAME 7
+#define MON_DATA_MARKINGS 8
+#define MON_DATA_CHECKSUM 9
+#define MON_DATA_10 10
+#define MON_DATA_SPECIES 11
+#define MON_DATA_HELD_ITEM 12
+#define MON_DATA_MOVE1 13
+#define MON_DATA_MOVE2 14
+#define MON_DATA_MOVE3 15
+#define MON_DATA_MOVE4 16
+#define MON_DATA_PP1 17
+#define MON_DATA_PP2 18
+#define MON_DATA_PP3 19
+#define MON_DATA_PP4 20
+#define MON_DATA_PP_BONUSES 21
+#define MON_DATA_COOL 22
+#define MON_DATA_BEAUTY 23
+#define MON_DATA_CUTE 24
+#define MON_DATA_EXP 25
+#define MON_DATA_HP_EV 26
+#define MON_DATA_ATK_EV 27
+#define MON_DATA_DEF_EV 28
+#define MON_DATA_SPEED_EV 29
+#define MON_DATA_SPATK_EV 30
+#define MON_DATA_SPDEF_EV 31
+#define MON_DATA_FRIENDSHIP 32
+#define MON_DATA_SMART 33
+#define MON_DATA_POKERUS 34
+#define MON_DATA_MET_LOCATION 35
+#define MON_DATA_MET_LEVEL 36
+#define MON_DATA_MET_GAME 37
+#define MON_DATA_POKEBALL 38
+#define MON_DATA_HP_IV 39
+#define MON_DATA_ATK_IV 40
+#define MON_DATA_DEF_IV 41
+#define MON_DATA_SPEED_IV 42
+#define MON_DATA_SPATK_IV 43
+#define MON_DATA_SPDEF_IV 44
+#define MON_DATA_IS_EGG 45
+#define MON_DATA_ALT_ABILITY 46
+#define MON_DATA_TOUGH 47
+#define MON_DATA_SHEEN 48
+#define MON_DATA_OT_GENDER 49
+#define MON_DATA_COOL_RIBBON 50
+#define MON_DATA_BEAUTY_RIBBON 51
+#define MON_DATA_CUTE_RIBBON 52
+#define MON_DATA_SMART_RIBBON 53
+#define MON_DATA_TOUGH_RIBBON 54
+#define MON_DATA_STATUS 55
+#define MON_DATA_LEVEL 56
+#define MON_DATA_HP 57
+#define MON_DATA_MAX_HP 58
+#define MON_DATA_ATK 59
+#define MON_DATA_DEF 60
+#define MON_DATA_SPEED 61
+#define MON_DATA_SPATK 62
+#define MON_DATA_SPDEF 63
+#define MON_DATA_MAIL 64
+#define MON_DATA_SPECIES2 65
+#define MON_DATA_IVS 66
+#define MON_DATA_CHAMPION_RIBBON 67
+#define MON_DATA_WINNING_RIBBON 68
+#define MON_DATA_VICTORY_RIBBON 69
+#define MON_DATA_ARTIST_RIBBON 70
+#define MON_DATA_EFFORT_RIBBON 71
+#define MON_DATA_GIFT_RIBBON_1 72
+#define MON_DATA_GIFT_RIBBON_2 73
+#define MON_DATA_GIFT_RIBBON_3 74
+#define MON_DATA_GIFT_RIBBON_4 75
+#define MON_DATA_GIFT_RIBBON_5 76
+#define MON_DATA_GIFT_RIBBON_6 77
+#define MON_DATA_GIFT_RIBBON_7 78
+#define MON_DATA_FATEFUL_ENCOUNTER 79
+#define MON_DATA_OBEDIENCE 80
+#define MON_DATA_KNOWN_MOVES 81
+#define MON_DATA_RIBBON_COUNT 82
+#define MON_DATA_RIBBONS 83
+#define MON_DATA_ATK2 84
+#define MON_DATA_DEF2 85
+#define MON_DATA_SPEED2 86
+#define MON_DATA_SPATK2 87
+#define MON_DATA_SPDEF2 88
+
+#define OT_ID_RANDOM_NO_SHINY 2
+#define OT_ID_PRESET 1
+#define OT_ID_PLAYER_ID 0
+
+#define MON_GIVEN_TO_PARTY 0x0
+#define MON_GIVEN_TO_PC 0x1
+#define MON_CANT_GIVE 0x2
+
+#define PLAYER_HAS_TWO_USABLE_MONS 0x0
+#define PLAYER_HAS_ONE_MON 0x1
+#define PLAYER_HAS_ONE_USABLE_MON 0x2
+
+#define MON_MALE 0x00
+#define MON_FEMALE 0xFE
+#define MON_GENDERLESS 0xFF
+
+#define TYPE_NORMAL 0x00
+#define TYPE_FIGHTING 0x01
+#define TYPE_FLYING 0x02
+#define TYPE_POISON 0x03
+#define TYPE_GROUND 0x04
+#define TYPE_ROCK 0x05
+#define TYPE_BUG 0x06
+#define TYPE_GHOST 0x07
+#define TYPE_STEEL 0x08
+#define TYPE_MYSTERY 0x09
+#define TYPE_FIRE 0x0a
+#define TYPE_WATER 0x0b
+#define TYPE_GRASS 0x0c
+#define TYPE_ELECTRIC 0x0d
+#define TYPE_PSYCHIC 0x0e
+#define TYPE_ICE 0x0f
+#define TYPE_DRAGON 0x10
+#define TYPE_DARK 0x11
+
+#define NUMBER_OF_MON_TYPES 0x12
+
+#define PARTY_SIZE 6
+#define MAX_TOTAL_EVS 510
+#define NUM_STATS 6
+#define UNOWN_FORM_COUNT 28
+#define MAX_MON_LEVEL 100
+
+enum
+{
+ EGG_GROUP_NONE,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_BUG,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_DITTO,
+ EGG_GROUP_DRAGON,
+ EGG_GROUP_UNDISCOVERED
+};
+
+enum
+{
+ NATURE_HARDY,
+ NATURE_LONELY,
+ NATURE_BRAVE,
+ NATURE_ADAMANT,
+ NATURE_NAUGHTY,
+ NATURE_BOLD,
+ NATURE_DOCILE,
+ NATURE_RELAXED,
+ NATURE_IMPISH,
+ NATURE_LAX,
+ NATURE_TIMID,
+ NATURE_HASTY,
+ NATURE_SERIOUS,
+ NATURE_JOLLY,
+ NATURE_NAIVE,
+ NATURE_MODEST,
+ NATURE_MILD,
+ NATURE_QUIET,
+ NATURE_BASHFUL,
+ NATURE_RASH,
+ NATURE_CALM,
+ NATURE_GENTLE,
+ NATURE_SASSY,
+ NATURE_CAREFUL,
+ NATURE_QUIRKY,
+};
+
+struct PokemonSubstruct0
+{
+ u16 species;
+ u16 heldItem;
+ u32 experience;
+ u8 ppBonuses;
+ u8 friendship;
+};
+
+struct PokemonSubstruct1
+{
+ u16 moves[4];
+ u8 pp[4];
+};
+
+struct PokemonSubstruct2
+{
+ u8 hpEV;
+ u8 attackEV;
+ u8 defenseEV;
+ u8 speedEV;
+ u8 spAttackEV;
+ u8 spDefenseEV;
+ u8 cool;
+ u8 beauty;
+ u8 cute;
+ u8 smart;
+ u8 tough;
+ u8 sheen;
+};
+
+struct PokemonSubstruct3
+{
+ /* 0x00 */ u8 pokerus;
+ /* 0x01 */ u8 metLocation;
+
+ /* 0x02 */ u16 metLevel:7;
+ /* 0x02 */ u16 metGame:4;
+ /* 0x03 */ u16 pokeball:4;
+ /* 0x03 */ u16 otGender:1;
+
+ /* 0x04 */ u32 hpIV:5;
+ /* 0x04 */ u32 attackIV:5;
+ /* 0x05 */ u32 defenseIV:5;
+ /* 0x05 */ u32 speedIV:5;
+ /* 0x05 */ u32 spAttackIV:5;
+ /* 0x06 */ u32 spDefenseIV:5;
+ /* 0x07 */ u32 isEgg:1;
+ /* 0x07 */ u32 altAbility:1;
+
+ /* 0x08 */ u32 coolRibbon:3;
+ /* 0x08 */ u32 beautyRibbon:3;
+ /* 0x08 */ u32 cuteRibbon:3;
+ /* 0x09 */ u32 smartRibbon:3;
+ /* 0x09 */ u32 toughRibbon:3;
+ /* 0x09 */ u32 championRibbon:1;
+ /* 0x0A */ u32 winningRibbon:1;
+ /* 0x0A */ u32 victoryRibbon:1;
+ /* 0x0A */ u32 artistRibbon:1;
+ /* 0x0A */ u32 effortRibbon:1;
+ /* 0x0A */ u32 giftRibbon1:1;
+ /* 0x0A */ u32 giftRibbon2:1;
+ /* 0x0A */ u32 giftRibbon3:1;
+ /* 0x0A */ u32 giftRibbon4:1;
+ /* 0x0B */ u32 giftRibbon5:1;
+ /* 0x0B */ u32 giftRibbon6:1;
+ /* 0x0B */ u32 giftRibbon7:1;
+ /* 0x0B */ u32 fatefulEncounter:4;
+ /* 0x0B */ u32 obedient:1;
+};
+
+union PokemonSubstruct
+{
+ struct PokemonSubstruct0 type0;
+ struct PokemonSubstruct1 type1;
+ struct PokemonSubstruct2 type2;
+ struct PokemonSubstruct3 type3;
+ u16 raw[6];
+};
+
+struct BoxPokemon
+{
+ u32 personality;
+ u32 otId;
+ u8 nickname[POKEMON_NAME_LENGTH];
+ u8 language;
+ u8 isBadEgg:1;
+ u8 hasSpecies:1;
+ u8 isEgg:1;
+ u8 unused:5;
+ u8 otName[OT_NAME_LENGTH];
+ u8 markings;
+ u16 checksum;
+ u16 unknown;
+
+ union
+ {
+ u32 raw[12];
+ union PokemonSubstruct substructs[4];
+ } secure;
+};
+
+struct Pokemon
+{
+ struct BoxPokemon box;
+ u32 status;
+ u8 level;
+ u8 mail;
+ u16 hp;
+ u16 maxHP;
+ u16 attack;
+ u16 defense;
+ u16 speed;
+ u16 spAttack;
+ u16 spDefense;
+};
+
+struct PokemonStorage
+{
+ /*0x0000*/ u8 currentBox;
+ /*0x0001*/ struct BoxPokemon boxes[14][30];
+ /*0x8344*/ u8 boxNames[14][9];
+ /*0x83C2*/ u8 boxWallpapers[14];
+};
+
+struct UnknownPokemonStruct
+{
+ u16 species;
+ u16 heldItem;
+ u16 moves[4];
+ u8 level;
+ u8 ppBonuses;
+ u8 hpEV;
+ u8 attackEV;
+ u8 defenseEV;
+ u8 speedEV;
+ u8 spAttackEV;
+ u8 spDefenseEV;
+ u32 otId;
+ u32 hpIV:5;
+ u32 attackIV:5;
+ u32 defenseIV:5;
+ u32 speedIV:5;
+ u32 spAttackIV:5;
+ u32 spDefenseIV:5;
+ u32 gap:1;
+ u32 altAbility:1;
+ u32 personality;
+ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ u8 friendship;
+};
+
+#define BATTLE_STATS_NO 8
+
+struct BattlePokemon
+{
+ /*0x00*/ u16 species;
+ /*0x02*/ u16 attack;
+ /*0x04*/ u16 defense;
+ /*0x06*/ u16 speed;
+ /*0x08*/ u16 spAttack;
+ /*0x0A*/ u16 spDefense;
+ /*0x0C*/ u16 moves[4];
+ /*0x14*/ u32 hpIV:5;
+ /*0x14*/ u32 attackIV:5;
+ /*0x15*/ u32 defenseIV:5;
+ /*0x15*/ u32 speedIV:5;
+ /*0x16*/ u32 spAttackIV:5;
+ /*0x17*/ u32 spDefenseIV:5;
+ /*0x17*/ u32 isEgg:1;
+ /*0x17*/ u32 altAbility:1;
+ /*0x18*/ s8 statStages[BATTLE_STATS_NO];
+ /*0x20*/ u8 ability;
+ /*0x21*/ u8 type1;
+ /*0x22*/ u8 type2;
+ /*0x23*/ u8 unknown;
+ /*0x24*/ u8 pp[4];
+ /*0x28*/ u16 hp;
+ /*0x2A*/ u8 level;
+ /*0x2B*/ u8 friendship;
+ /*0x2C*/ u16 maxHP;
+ /*0x2E*/ u16 item;
+ /*0x30*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ /*0x3B*/ u8 ppBonuses;
+ /*0x3C*/ u8 otName[8];
+ /*0x44*/ u32 experience;
+ /*0x48*/ u32 personality;
+ /*0x4C*/ u32 status1;
+ /*0x50*/ u32 status2;
+ /*0x54*/ u32 otId;
+};
+
+enum
+{
+ STAT_STAGE_HP, // 0
+ STAT_STAGE_ATK, // 1
+ STAT_STAGE_DEF, // 2
+ STAT_STAGE_SPEED, // 3
+ STAT_STAGE_SPATK, // 4
+ STAT_STAGE_SPDEF, // 5
+ STAT_STAGE_ACC, // 6
+ STAT_STAGE_EVASION, // 7
+};
+
+enum
+{
+ STAT_HP, // 0
+ STAT_ATK, // 1
+ STAT_DEF, // 2
+ STAT_SPD, // 3
+ STAT_SPATK, // 4
+ STAT_SPDEF, // 5
+};
+
+struct BaseStats
+{
+ /* 0x00 */ u8 baseHP;
+ /* 0x01 */ u8 baseAttack;
+ /* 0x02 */ u8 baseDefense;
+ /* 0x03 */ u8 baseSpeed;
+ /* 0x04 */ u8 baseSpAttack;
+ /* 0x05 */ u8 baseSpDefense;
+ /* 0x06 */ u8 type1;
+ /* 0x07 */ u8 type2;
+ /* 0x08 */ u8 catchRate;
+ /* 0x09 */ u8 expYield;
+ /* 0x0A */ u16 evYield_HP:2;
+ /* 0x0A */ u16 evYield_Attack:2;
+ /* 0x0A */ u16 evYield_Defense:2;
+ /* 0x0A */ u16 evYield_Speed:2;
+ /* 0x0B */ u16 evYield_SpAttack:2;
+ /* 0x0B */ u16 evYield_SpDefense:2;
+ /* 0x0C */ u16 item1;
+ /* 0x0E */ u16 item2;
+ /* 0x10 */ u8 genderRatio;
+ /* 0x11 */ u8 eggCycles;
+ /* 0x12 */ u8 friendship;
+ /* 0x13 */ u8 growthRate;
+ /* 0x14 */ u8 eggGroup1;
+ /* 0x15 */ u8 eggGroup2;
+ /* 0x16 */ u8 ability1;
+ /* 0x17 */ u8 ability2;
+ /* 0x18 */ u8 safariZoneFleeRate;
+ /* 0x19 */ u8 bodyColor : 7;
+ u8 noFlip : 1;
+};
+
+struct BattleMove
+{
+ u8 effect;
+ u8 power;
+ u8 type;
+ u8 accuracy;
+ u8 pp;
+ u8 secondaryEffectChance;
+ u8 target;
+ s8 priority;
+ u8 flags;
+};
+
+#define FLAG_MAKES_CONTACT 0x1
+#define FLAG_PROTECT_AFFECTED 0x2
+#define FLAG_MAGICCOAT_AFFECTED 0x4
+#define FLAG_SNATCH_AFFECTED 0x8
+#define FLAG_MIRROR_MOVE_AFFECTED 0x10
+#define FLAG_KINGSROCK_AFFECTED 0x20
+
+struct SpindaSpot
+{
+ u8 x, y;
+ u16 image[16];
+};
+
+struct __attribute__((packed)) LevelUpMove
+{
+ u16 move:9;
+ u16 level:7;
+};
+
+enum
+{
+ GROWTH_MEDIUM_FAST,
+ GROWTH_ERRATIC,
+ GROWTH_FLUCTUATING,
+ GROWTH_MEDIUM_SLOW,
+ GROWTH_FAST,
+ GROWTH_SLOW
+};
+
+enum
+{
+ BODY_COLOR_RED,
+ BODY_COLOR_BLUE,
+ BODY_COLOR_YELLOW,
+ BODY_COLOR_GREEN,
+ BODY_COLOR_BLACK,
+ BODY_COLOR_BROWN,
+ BODY_COLOR_PURPLE,
+ BODY_COLOR_GRAY,
+ BODY_COLOR_WHITE,
+ BODY_COLOR_PINK
+};
+
+#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220
+#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220
+#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220
+#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level
+#define EVO_TRADE 0x0005 // Pokémon is traded
+#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item
+#define EVO_ITEM 0x0007 // specified item is used on Pokémon
+#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense
+#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense
+#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense
+#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value
+#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value
+#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask)
+#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja)
+#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value
+
+struct Evolution
+{
+ u16 method;
+ u16 param;
+ u16 targetSpecies;
+};
+
+#define EVOS_PER_MON 5
+
+struct EvolutionData
+{
+ struct Evolution evolutions[EVOS_PER_MON];
+};
+
+extern u8 gPlayerPartyCount;
+extern struct Pokemon gPlayerParty[PARTY_SIZE];
+extern u8 gEnemyPartyCount;
+extern struct Pokemon gEnemyParty[PARTY_SIZE];
+extern const struct BaseStats gBaseStats[];
+extern const u8 *const gItemEffectTable[];
+extern const struct EvolutionData gEvolutionTable[];
+extern struct PokemonStorage* gPokemonStoragePtr;
+extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
+extern const u16 *const gLevelUpLearnsets[];
+
+u8 CountAliveMonsInBattle(u8 caseId);
+#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
+#define BATTLE_ALIVE_ATK_SIDE 1
+#define BATTLE_ALIVE_DEF_SIDE 2
+
+void ZeroBoxMonData(struct BoxPokemon *boxMon);
+void ZeroMonData(struct Pokemon *mon);
+void ZeroPlayerPartyMons(void);
+void ZeroEnemyPartyMons(void);
+void CreateMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
+void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
+void CreateMonWithNature(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 nature);
+void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 gender, u8 nature, u8 unownLetter);
+void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level);
+void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality);
+void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId);
+void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread);
+u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
+void CalculateMonStats(struct Pokemon *mon);
+u8 GetLevelFromMonExp(struct Pokemon *mon);
+u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
+u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
+u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
+u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
+void MonRestorePP(struct Pokemon *mon);
+void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
+void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
+void GiveMonInitialMoveset(struct Pokemon *mon);
+void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon);
+void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
+void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
+
+u8 GetMonGender(struct Pokemon *mon);
+u8 GetBoxMonGender(struct BoxPokemon *boxMon);
+u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
+void EncryptBoxMon(struct BoxPokemon *boxMon);
+void DecryptBoxMon(struct BoxPokemon *boxMon);
+
+// These are full type signatures for GetMonData() and GetBoxMonData(),
+// but they are not used since some code erroneously omits the third arg.
+// u32 GetMonData(struct Pokemon *mon, s32 field, u8 *data);
+// u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data);
+u32 GetMonData();
+u32 GetBoxMonData();
+
+void SetMonData(struct Pokemon *mon, s32 field, const void *data);
+void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *data);
+void CopyMon(void *dest, void *src, size_t size);
+u8 GiveMonToPlayer(struct Pokemon *mon);
+u8 SendMonToPC(struct Pokemon *mon);
+u8 CalculatePlayerPartyCount(void);
+u8 CalculateEnemyPartyCount(void);
+
+u8 GetAbilityBySpecies(u16 species, bool8 altAbility);
+u8 GetMonAbility(struct Pokemon *mon);
+void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord);
+u8 GetSecretBaseTrainerPicIndex(void);
+u8 GetSecretBaseTrainerNameIndex(void);
+bool8 IsPlayerPartyAndPokemonStorageFull(void);
+bool8 IsPokemonStorageFull(void);
+void GetSpeciesName(u8 *name, u16 species);
+u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex);
+void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
+void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
+void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex);
+
+u8 GetNature(struct Pokemon *mon);
+u8 GetNatureFromPersonality(u32 personality);
+
+u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex);
+
+void MonRestorePP(struct Pokemon *);
+void BoxMonRestorePP(struct BoxPokemon *);
+
+u16 NationalPokedexNumToSpecies(u16 nationalNum);
+u16 NationalToHoennOrder(u16);
+u16 SpeciesToNationalPokedexNum(u16);
+u16 HoennToNationalOrder(u16);
+u16 SpeciesToCryId(u16 species);
+void DrawSpindaSpots(u16, u32, u8 *, u8);
+void AdjustFriendship(struct Pokemon *, u8);
+u8 CheckPartyHasHadPokerus(struct Pokemon *, u8);
+void UpdatePartyPokerusTime(u16);
+u32 CanMonLearnTMHM(struct Pokemon *, u8);
+u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
+u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
+void ClearBattleMonForms(void);
+const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
+const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32);
+const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
+bool8 IsOtherTrainer(u32, u8 *);
+void SetWildMonHeldItem(void);
+u16 GetMonEVCount(struct Pokemon *);
+
+const struct CompressedSpritePalette *sub_806E794(struct Pokemon *mon);
+const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
+bool32 IsHMMove2(u16 move);
+bool8 IsPokeSpriteNotFlipped(u16 species);
+bool8 IsMonShiny(struct Pokemon *mon);
+bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
+
+void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
+bool8 IsTradedMon(struct Pokemon *mon);
+void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
+s32 GetBankMultiplayerId(u16 a1);
+bool16 sub_806D82C(u8 id);
+u16 MonTryLearningNewMove(struct Pokemon* mon, bool8);
+void sub_8068AA4(void); // sets stats for deoxys
+bool8 HasTwoFramesAnimation(u16 species);
+u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem);
+void RandomlyGivePartyPokerus(struct Pokemon *party);
+u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
+u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
+void UpdatePartyPokerusTime(u16 days);
+void PartySpreadPokerus(struct Pokemon *party);
+s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2);
+s8 GetFlavorRelationByPersonality(u32 personality, u8 a2);
+u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
+u8 GetDefaultMoveTarget(u8 atkBank);
+u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
+void sub_806A1C0(u16 arg0, u8 bankIdentity);
+void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity);
+u8 GetSecretBaseTrainerPicIndex(void);
+bool8 TryIncrementMonLevel(struct Pokemon *mon);
+void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon);
+u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
+
+#include "sprite.h"
+
+void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
+void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
+void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
+
+#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_3.h b/include/pokemon_3.h
new file mode 100644
index 000000000..5c9862d57
--- /dev/null
+++ b/include/pokemon_3.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_POKEMON_3_H
+#define GUARD_POKEMON_3_H
+
+const u8* GetTrainerClassNameFromId(u16 trainerId);
+const u8* GetTrainerNameFromId(u16 trainerId);
+
+#endif // GUARD_POKEMON_3_H
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
new file mode 100644
index 000000000..b6d21823e
--- /dev/null
+++ b/include/pokemon_icon.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_POKEMON_ICON_H
+#define GUARD_POKEMON_ICON_H
+
+const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo);
+const u16 *GetValidMonIconPalettePtr(u16 speciesId);
+u16 sub_80D2E84(u16 speciesId);
+void sub_80D2F68(u16 iconId);
+u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5);
+void sub_80D2FF0(u16 iconId);
+void sub_80D2EF8(struct Sprite *sprite);
+
+#endif // GUARD_POKEMON_ICON_H
diff --git a/include/pokemon_item_effects.h b/include/pokemon_item_effects.h
new file mode 100644
index 000000000..505cc0f25
--- /dev/null
+++ b/include/pokemon_item_effects.h
@@ -0,0 +1,62 @@
+#ifndef GUARD_POKEMON_ITEM_EFFECTS
+#define GUARD_POKEMON_ITEM_EFFECTS
+
+#include "pokemon.h"
+
+// TODO once pokemon item effects is decompiled
+/*
+struct PokemonItemEffect
+{
+ //field 0
+ u8 xAtk : 4; // x1, x2, x4, x8 = xF
+ u8 field_0_x10 : 1; // x10
+ u8 critRatioUp : 1; // x20
+ u8 field_0_x40 : 1; // x40
+ u8 cureInfatuation : 1; // x80
+
+ /*field 1
+ u8 xSpeed : 4; // x1, x2, x4, x8 = xF
+ u8 xDefense : 4; // x10, x20, x40, xF0
+
+ /*field 2
+ u8 xSpAtk : 4; // x1, x2, x4, x8 = xF
+ u8 xAccuracy : 4; // x10, x20, x40, xF0
+
+ /*field 3
+ u8 cureConfusion : 1; // x1
+ u8 cureParalysis : 1; // x2
+ u8 cureFreeze : 1; // x4
+ u8 cureBurn : 1; // x8
+ u8 curePoison : 1; // x10
+ u8 cureSleep : 1; // x20
+ u8 field_3_x40 : 1; // x40
+ u8 cantLowerStats : 1; // x80
+
+ /*field 4
+ u8 hpEv : 1; // x1
+ u8 attackEv : 1; // x2
+ u8 healHp : 1; // x4
+ u8 field_4_x8 : 1; // x8
+ u8 field_4_x10 : 1; // x10
+ u8 ppUp : 1; // x20
+ u8 levelUp : 1; // x40
+ u8 evolutionStone : 1; // x80
+
+ /*field 5
+ u8 defEv: 1; // x1
+ u8 speedEv : 1; // x2
+ u8 spDefEv : 1; // x4
+ u8 spAtkEv : 1; // x8
+ u8 ppMax : 1; // x10
+ u8 field_5_x20 : 1; // x20
+ u8 field_5_x40 : 1; // x40
+ u8 field_5_x80 : 1; // x80
+
+ /*field 6
+ u8 value;
+};
+*/
+
+bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5);
+
+#endif // GUARD_POKEMON_ITEM_EFFECTS
diff --git a/include/pokemon_size_record.h b/include/pokemon_size_record.h
new file mode 100644
index 000000000..f61286bd4
--- /dev/null
+++ b/include/pokemon_size_record.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_POKEMON_SIZE_RECORD_H
+#define GUARD_POKEMON_SIZE_RECORD_H
+
+void InitSeedotSizeRecord(void);
+void GetSeedotSizeRecordInfo(void);
+void CompareSeedotSize(void);
+
+void InitLotadSizeRecord(void);
+void GetLotadSizeRecordInfo(void);
+void CompareLotadSize(void);
+
+void GiveGiftRibbonToParty(u8 index, u8 ribbonId);
+
+#endif // GUARD_POKEMON_SIZE_RECORD_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
new file mode 100644
index 000000000..9fcfdba96
--- /dev/null
+++ b/include/pokemon_storage_system.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H
+#define GUARD_POKEMON_STORAGE_SYSTEM_H
+
+#define TOTAL_BOXES_COUNT 14
+#define IN_BOX_COUNT 30
+
+u8* GetBoxNamePtr(u8 boxNumber);
+struct BoxPokemon *GetBoxedMonPtr(u8, u8);
+void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
+void CompactPartySlots(void);
+u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
+
+#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/pokenav.h b/include/pokenav.h
new file mode 100644
index 000000000..06676610a
--- /dev/null
+++ b/include/pokenav.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_POKENAV_H
+#define GUARD_POKENAV_H
+
+bool8 sub_81D5C18(void);
+
+#endif //GUARD_POKENAV_H
diff --git a/include/random.h b/include/random.h
new file mode 100644
index 000000000..79a9d71dc
--- /dev/null
+++ b/include/random.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_RANDOM_H
+#define GUARD_RANDOM_H
+
+extern u32 gRngValue;
+extern u32 gRng2Value;
+
+//Returns a 16-bit pseudorandom number
+u16 Random(void);
+u16 Random2(void);
+
+//Returns a 32-bit pseudorandom number
+#define Random32() (Random() | (Random() << 16))
+
+//Sets the initial seed value of the pseudorandom number generator
+void SeedRng(u16 seed);
+void SeedRng2(u16 seed);
+
+#endif // GUARD_RANDOM_H
diff --git a/include/region_map.h b/include/region_map.h
new file mode 100644
index 000000000..91384d166
--- /dev/null
+++ b/include/region_map.h
@@ -0,0 +1,314 @@
+#ifndef GUARD_REGION_MAP_H
+#define GUARD_REGION_MAP_H
+
+#include "bg.h"
+
+// Exported type declarations
+
+enum {
+ MAPSEC_LITTLEROOT_TOWN,
+ MAPSEC_OLDALE_TOWN,
+ MAPSEC_DEWFORD_TOWN,
+ MAPSEC_LAVARIDGE_TOWN,
+ MAPSEC_FALLARBOR_TOWN,
+ MAPSEC_VERDANTURF_TOWN,
+ MAPSEC_PACIFIDLOG_TOWN,
+ MAPSEC_PETALBURG_CITY,
+ MAPSEC_SLATEPORT_CITY,
+ MAPSEC_MAUVILLE_CITY,
+ MAPSEC_RUSTBORO_CITY,
+ MAPSEC_FORTREE_CITY,
+ MAPSEC_LILYCOVE_CITY,
+ MAPSEC_MOSSDEEP_CITY,
+ MAPSEC_SOOTOPOLIS_CITY,
+ MAPSEC_EVER_GRANDE_CITY,
+ MAPSEC_ROUTE_101,
+ MAPSEC_ROUTE_102,
+ MAPSEC_ROUTE_103,
+ MAPSEC_ROUTE_104,
+ MAPSEC_ROUTE_105,
+ MAPSEC_ROUTE_106,
+ MAPSEC_ROUTE_107,
+ MAPSEC_ROUTE_108,
+ MAPSEC_ROUTE_109,
+ MAPSEC_ROUTE_110,
+ MAPSEC_ROUTE_111,
+ MAPSEC_ROUTE_112,
+ MAPSEC_ROUTE_113,
+ MAPSEC_ROUTE_114,
+ MAPSEC_ROUTE_115,
+ MAPSEC_ROUTE_116,
+ MAPSEC_ROUTE_117,
+ MAPSEC_ROUTE_118,
+ MAPSEC_ROUTE_119,
+ MAPSEC_ROUTE_120,
+ MAPSEC_ROUTE_121,
+ MAPSEC_ROUTE_122,
+ MAPSEC_ROUTE_123,
+ MAPSEC_ROUTE_124,
+ MAPSEC_ROUTE_125,
+ MAPSEC_ROUTE_126,
+ MAPSEC_ROUTE_127,
+ MAPSEC_ROUTE_128,
+ MAPSEC_ROUTE_129,
+ MAPSEC_ROUTE_130,
+ MAPSEC_ROUTE_131,
+ MAPSEC_ROUTE_132,
+ MAPSEC_ROUTE_133,
+ MAPSEC_ROUTE_134,
+ MAPSEC_UNDERWATER_124,
+ MAPSEC_UNDERWATER_125,
+ MAPSEC_UNDERWATER_126,
+ MAPSEC_UNDERWATER_127,
+ MAPSEC_UNDERWATER_SOOTOPOLIS,
+ MAPSEC_GRANITE_CAVE,
+ MAPSEC_MT_CHIMNEY,
+ MAPSEC_SAFARI_ZONE,
+ MAPSEC_BATTLE_FRONTIER,
+ MAPSEC_PETALBURG_WOODS,
+ MAPSEC_RUSTURF_TUNNEL,
+ MAPSEC_ABANDONED_SHIP,
+ MAPSEC_NEW_MAUVILLE,
+ MAPSEC_METEOR_FALLS,
+ MAPSEC_METEOR_FALLS2,
+ MAPSEC_MT_PYRE,
+ MAPSEC_AQUA_HIDEOUT_OLD,
+ MAPSEC_SHOAL_CAVE,
+ MAPSEC_SEAFLOOR_CAVERN,
+ MAPSEC_UNDERWATER_128,
+ MAPSEC_VICTORY_ROAD,
+ MAPSEC_MIRAGE_ISLAND,
+ MAPSEC_CAVE_OF_ORIGIN,
+ MAPSEC_SOUTHERN_ISLAND,
+ MAPSEC_FIERY_PATH,
+ MAPSEC_FIERY_PATH2,
+ MAPSEC_JAGGED_PASS,
+ MAPSEC_JAGGED_PASS2,
+ MAPSEC_SEALED_CHAMBER,
+ MAPSEC_UNDERWATER_SEALED_CHAMBER,
+ MAPSEC_SCORCHED_SLAB,
+ MAPSEC_ISLAND_CAVE,
+ MAPSEC_DESERT_RUINS,
+ MAPSEC_ANCIENT_TOMB,
+ MAPSEC_INSIDE_OF_TRUCK,
+ MAPSEC_SKY_PILLAR,
+ MAPSEC_SECRET_BASE,
+ MAPSEC_DYNAMIC,
+ MAPSEC_PALLET_TOWN,
+ MAPSEC_VIRIDIAN_CITY,
+ MAPSEC_PEWTER_CITY,
+ MAPSEC_CERULEAN_CITY,
+ MAPSEC_LAVENDER_TOWN,
+ MAPSEC_VERMILION_CITY,
+ MAPSEC_CELADON_CITY,
+ MAPSEC_FUCHSIA_CITY,
+ MAPSEC_CINNABAR_ISLAND,
+ MAPSEC_INDIGO_PLATEAU,
+ MAPSEC_SAFFRON_CITY,
+ MAPSEC_ROUTE_4,
+ MAPSEC_ROUTE_10,
+ MAPSEC_ROUTE_1,
+ MAPSEC_ROUTE_2,
+ MAPSEC_ROUTE_3,
+ MAPSEC_ROUTE_4_2,
+ MAPSEC_ROUTE_5,
+ MAPSEC_ROUTE_6,
+ MAPSEC_ROUTE_7,
+ MAPSEC_ROUTE_8,
+ MAPSEC_ROUTE_9,
+ MAPSEC_ROUTE_10_2,
+ MAPSEC_ROUTE_11,
+ MAPSEC_ROUTE_12,
+ MAPSEC_ROUTE_13,
+ MAPSEC_ROUTE_14,
+ MAPSEC_ROUTE_15,
+ MAPSEC_ROUTE_16,
+ MAPSEC_ROUTE_17,
+ MAPSEC_ROUTE_18,
+ MAPSEC_ROUTE_19,
+ MAPSEC_ROUTE_20,
+ MAPSEC_ROUTE_21,
+ MAPSEC_ROUTE_22,
+ MAPSEC_ROUTE_23,
+ MAPSEC_ROUTE_24,
+ MAPSEC_ROUTE_25,
+ MAPSEC_VIRIDIAN_FOREST,
+ MAPSEC_MT_MOON,
+ MAPSEC_S_S_ANNE,
+ MAPSEC_UNDERGROUND_PATH,
+ MAPSEC_UNDERGROUND_PATH_2,
+ MAPSEC_DIGLETTS_CAVE,
+ MAPSEC_KANTO_VICTORY_ROAD,
+ MAPSEC_ROCKET_HIDEOUT,
+ MAPSEC_SILPH_CO,
+ MAPSEC_POKEMON_MANSION,
+ MAPSEC_KANTO_SAFARI_ZONE,
+ MAPSEC_POKEMON_LEAGUE,
+ MAPSEC_ROCK_TUNNEL,
+ MAPSEC_SEAFOAM_ISLANDS,
+ MAPSEC_POKEMON_TOWER,
+ MAPSEC_CERULEAN_CAVE,
+ MAPSEC_POWER_PLANT,
+ MAPSEC_ONE_ISLAND,
+ MAPSEC_TWO_ISLAND,
+ MAPSEC_THREE_ISLAND,
+ MAPSEC_FOUR_ISLAND,
+ MAPSEC_FIVE_ISLAND,
+ MAPSEC_SEVEN_ISLAND,
+ MAPSEC_SIX_ISLAND,
+ MAPSEC_KINDLE_ROAD,
+ MAPSEC_TREASURE_BEACH,
+ MAPSEC_CAPE_BRINK,
+ MAPSEC_BOND_BRIDGE,
+ MAPSEC_THREE_ISLE_PORT,
+ MAPSEC_SEVII_ISLE_6,
+ MAPSEC_SEVII_ISLE_7,
+ MAPSEC_SEVII_ISLE_8,
+ MAPSEC_SEVII_ISLE_9,
+ MAPSEC_RESORT_GORGEOUS,
+ MAPSEC_WATER_LABYRINTH,
+ MAPSEC_FIVE_ISLE_MEADOW,
+ MAPSEC_MEMORIAL_PILLAR,
+ MAPSEC_OUTCAST_ISLAND,
+ MAPSEC_GREEN_PATH,
+ MAPSEC_WATER_PATH,
+ MAPSEC_RUIN_VALLEY,
+ MAPSEC_TRAINER_TOWER,
+ MAPSEC_CANYON_ENTRANCE,
+ MAPSEC_SEVAULT_CANYON,
+ MAPSEC_TANOBY_RUINS,
+ MAPSEC_SEVII_ISLE_22,
+ MAPSEC_SEVII_ISLE_23,
+ MAPSEC_SEVII_ISLE_24,
+ MAPSEC_NAVEL_ROCK,
+ MAPSEC_MT_EMBER,
+ MAPSEC_BERRY_FOREST,
+ MAPSEC_ICEFALL_CAVE,
+ MAPSEC_ROCKET_WAREHOUSE,
+ MAPSEC_TRAINER_TOWER_2,
+ MAPSEC_DOTTED_HOLE,
+ MAPSEC_LOST_CAVE,
+ MAPSEC_PATTERN_BUSH,
+ MAPSEC_ALTERING_CAVE,
+ MAPSEC_TANOBY_CHAMBERS,
+ MAPSEC_THREE_ISLE_PATH,
+ MAPSEC_TANOBY_KEY,
+ MAPSEC_BIRTH_ISLAND,
+ MAPSEC_MONEAN_CHAMBER,
+ MAPSEC_LIPTOO_CHAMBER,
+ MAPSEC_WEEPTH_CHAMBER,
+ MAPSEC_DILFORD_CHAMBER,
+ MAPSEC_SCUFIB_CHAMBER,
+ MAPSEC_RIXY_CHAMBER,
+ MAPSEC_VIAPOIS_CHAMBER,
+ MAPSEC_EMBER_SPA,
+ MAPSEC_SPECIAL_AREA,
+ MAPSEC_AQUA_HIDEOUT,
+ MAPSEC_MAGMA_HIDEOUT,
+ MAPSEC_MIRAGE_TOWER,
+ MAPSEC_BIRTH_ISLAND_2,
+ MAPSEC_FARAWAY_ISLAND,
+ MAPSEC_ARTISAN_CAVE,
+ MAPSEC_MARINE_CAVE,
+ MAPSEC_UNDERWATER_MARINE_CAVE,
+ MAPSEC_TERRA_CAVE,
+ MAPSEC_UNDERWATER_TERRA_CAVE,
+ MAPSEC_UNDERWATER_UNK1,
+ MAPSEC_UNDERWATER_129,
+ MAPSEC_DESERT_UNDERPASS,
+ MAPSEC_ALTERING_CAVE_2,
+ MAPSEC_NAVEL_ROCK2,
+ MAPSEC_TRAINER_HILL,
+ MAPSEC_NONE
+};
+
+enum
+{
+ INPUT_EVENT_NONE,
+ INPUT_EVENT_MOVE_START,
+ INPUT_EVENT_MOVE_CONT,
+ INPUT_EVENT_MOVE_END,
+ INPUT_EVENT_A_BUTTON,
+ INPUT_EVENT_B_BUTTON,
+};
+
+enum {
+ MAPSECTYPE_NONE,
+ MAPSECTYPE_PLAIN,
+ MAPSECTYPE_CITY_CANFLY,
+ MAPSECTYPE_CITY_CANTFLY,
+ MAPSECTYPE_BATTLE_FRONTIER
+};
+
+struct RegionMap {
+ /*0x000*/ u16 mapSecId;
+ /*0x002*/ u8 iconDrawType;
+ /*0x003*/ u8 posWithinMapSec;
+ /*0x004*/ u8 mapSecName[0x14];
+ /*0x018*/ u8 (*inputCallback)(void);
+ /*0x01c*/ struct Sprite *cursorSprite;
+ /*0x020*/ struct Sprite *playerIconSprite;
+ /*0x024*/ s32 bg2x;
+ /*0x028*/ s32 bg2y;
+ /*0x02c*/ u32 bg2pa;
+ /*0x034*/ u32 bg2pc;
+ /*0x030*/ u32 bg2pb;
+ /*0x038*/ u32 bg2pd;
+ /*0x03c*/ s32 unk_03c;
+ /*0x040*/ s32 unk_040;
+ /*0x044*/ s32 unk_044;
+ /*0x048*/ s32 unk_048;
+ /*0x04c*/ s32 unk_04c;
+ /*0x050*/ s32 unk_050;
+ /*0x054*/ u16 cursorPosX;
+ /*0x056*/ u16 cursorPosY;
+ /*0x058*/ u16 cursorTileTag;
+ /*0x05a*/ u16 cursorPaletteTag;
+ /*0x05c*/ s16 scrollX;
+ /*0x05e*/ s16 scrollY;
+ /*0x060*/ s16 unk_060;
+ /*0x062*/ s16 unk_062;
+ /*0x064*/ u16 zoomedCursorPosX;
+ /*0x066*/ u16 zoomedCursorPosY;
+ /*0x068*/ s16 zoomedCursorDeltaY;
+ /*0x06a*/ s16 zoomedCursorDeltaX;
+ /*0x06c*/ u16 zoomedCursorMovementFrameCounter;
+ /*0x06e*/ u16 unk_06e;
+ /*0x070*/ u16 playerIconTileTag;
+ /*0x072*/ u16 playerIconPaletteTag;
+ /*0x074*/ u16 playerIconSpritePosX;
+ /*0x076*/ u16 playerIconSpritePosY;
+ /*0x078*/ bool8 zoomed;
+ /*0x079*/ u8 initStep;
+ /*0x07a*/ s8 cursorMovementFrameCounter;
+ /*0x07b*/ s8 cursorDeltaX;
+ /*0x07c*/ s8 cursorDeltaY;
+ /*0x07d*/ bool8 needUpdateVideoRegs;
+ /*0x07e*/ bool8 blinkPlayerIcon;
+ /*0x07f*/ bool8 playerIsInCave;
+ /*0x080*/ u8 bgNum;
+ /*0x081*/ u8 charBaseIdx;
+ /*0x082*/ u8 mapBaseIdx;
+ /*0x083*/ bool8 bgManaged;
+ /*0x084*/ u8 filler_084[0x100];
+ /*0x184*/ u8 cursorSmallImage[0x100];
+ /*0x284*/ u8 cursorLargeImage[0x600];
+}; // size = 0x884
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void sub_8122CF8(struct RegionMap *regionMap, struct BgTemplate *template, bool8 zoomed);
+bool8 sub_8122DB0(void);
+void UpdateRegionMapVideoRegs(void);
+void InitRegionMap(struct RegionMap *regionMap, u8 argument);
+u8 sub_81230AC(void);
+bool8 sub_8123514(void);
+void FreeRegionMapIconResources(void);
+u16 GetRegionMapSectionIdAt(u16 x, u16 y);
+void CreateRegionMapPlayerIcon(u16 x, u16 y);
+void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
+u8 *GetMapName(u8 *, u16, u16);
+bool32 sub_8124668(u8 mapSecId);
+
+#endif //GUARD_REGION_MAP_H
diff --git a/include/reshow_battle_screen.h b/include/reshow_battle_screen.h
new file mode 100644
index 000000000..c22135280
--- /dev/null
+++ b/include/reshow_battle_screen.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_RESHOW_BATTLE_SCREEN_H
+#define GUARD_RESHOW_BATTLE_SCREEN_H
+
+void nullsub_35(void);
+void ReshowBattleScreenAfterMenu(void);
+
+#endif // GUARD_RESHOW_BATTLE_SCREEN_H
diff --git a/include/roamer.h b/include/roamer.h
new file mode 100644
index 000000000..ba1b09b54
--- /dev/null
+++ b/include/roamer.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_ROAMER_H
+#define GUARD_ROAMER_H
+
+void ClearRoamerData(void);
+void ClearRoamerLocationData(void);
+void InitRoamer(void);
+void UpdateLocationHistoryForRoamer(void);
+void RoamerMoveToOtherLocationSet(void);
+void RoamerMove(void);
+bool8 IsRoamerAt(u8 mapGroup, u8 mapNum);
+void CreateRoamerMonInstance(void);
+u8 TryStartRoamerEncounter(void);
+void UpdateRoamerHPStatus(struct Pokemon *mon);
+void SetRoamerInactive(void);
+void GetRoamerLocation(u8 *mapGroup, u8 *mapNum);
+
+#endif // GUARD_ROAMER_H
diff --git a/include/rom6.h b/include/rom6.h
new file mode 100644
index 000000000..6d20752e2
--- /dev/null
+++ b/include/rom6.h
@@ -0,0 +1,15 @@
+#ifndef GUARD_ROM6_H
+#define GUARD_ROM6_H
+
+void sub_81357FC(u8, void(void));
+u8 GetLeadMonIndex(void);
+u8 GetSSTidalLocation(u8 *grp, u8 *num, s16 *x, s16 *y);
+void sub_813BADC(bool8);
+bool8 sub_813B9C0(void);
+void UpdateMirageRnd(u16 days);
+void UpdateBirchState(u16 days);
+void UpdateFrontierManiac(u16 days);
+void UpdateFrontierGambler(u16 days);
+void SetShoalItemFlag(u16 days);
+
+#endif //GUARD_ROM6_H
diff --git a/include/rom_818CFC8.h b/include/rom_818CFC8.h
new file mode 100644
index 000000000..1d0626b2b
--- /dev/null
+++ b/include/rom_818CFC8.h
@@ -0,0 +1,11 @@
+//
+// Created by Scott Norton on 9/6/17.
+//
+
+#ifndef GUARD_ROM_818CFC8_H
+#define GUARD_ROM_818CFC8_H
+
+bool8 InBattlePyramid(void);
+u8 sub_81AAA40(void);
+
+#endif //GUARD_ROM_818CFC8_H
diff --git a/include/rom_81BE66C.h b/include/rom_81BE66C.h
new file mode 100644
index 000000000..5b4f80249
--- /dev/null
+++ b/include/rom_81BE66C.h
@@ -0,0 +1,12 @@
+//
+// Created by Scott Norton on 9/6/17.
+//
+
+#ifndef GUARD_ROM_81BE66C_H
+#define GUARD_ROM_81BE66C_H
+
+bool32 InTrainerHill(void);
+bool8 FieldObjectIsFarawayIslandMew(struct MapObject *);
+u32 sub_81D427C(void);
+
+#endif //GUARD_ROM_81BE66C_H
diff --git a/include/safari_zone.h b/include/safari_zone.h
new file mode 100644
index 000000000..9a81894b8
--- /dev/null
+++ b/include/safari_zone.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_SAFARI_ZONE_H
+#define GUARD_SAFARI_ZONE_H
+
+extern u8 gNumSafariBalls;
+
+bool32 GetSafariZoneFlag(void);
+void SetSafariZoneFlag(void);
+void ResetSafariZoneFlag(void);
+
+void EnterSafariMode(void);
+void ExitSafariMode(void);
+
+bool8 SafariZoneTakeStep(void);
+void SafariZoneRetirePrompt(void);
+
+struct Pokeblock *SafariZoneGetActivePokeblock(void);
+void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index);
+
+#endif // GUARD_SAFARI_ZONE_H
diff --git a/include/save.h b/include/save.h
new file mode 100644
index 000000000..3bd1ff8cf
--- /dev/null
+++ b/include/save.h
@@ -0,0 +1,97 @@
+#ifndef GUARD_SAVE_H
+#define GUARD_SAVE_H
+
+extern u16 gSaveFileStatus;
+
+struct SaveSectionLocation
+{
+ void *data;
+ u16 size;
+};
+
+struct SaveSection
+{
+ u8 data[0xFF4];
+ u16 id;
+ u16 checksum;
+ u32 security;
+ u32 counter;
+}; // size is 0x1000
+
+// headless save section?
+struct UnkSaveSection
+{
+ u8 data[0xFF4];
+ u32 security;
+}; // size is 0xFF8
+
+struct SaveSectionOffsets
+{
+ u16 toAdd;
+ u16 size;
+};
+
+// Emerald changes this definition to be the sectors per slot.
+#define NUM_SECTORS_PER_SLOT 16 // move to save.h
+
+#define UNKNOWN_CHECK_VALUE 0x8012025
+
+// SetDamagedSectorBits states
+enum
+{
+ ENABLE,
+ DISABLE,
+ CHECK // unused
+};
+
+// Do save types
+enum
+{
+ NORMAL_SAVE,
+ LINK_SAVE,
+ //EREADER_SAVE, // depreciated in Emerald
+ LINK2_SAVE, // unknown 2nd link save
+ HOF_SAVE,
+ DIFFERENT_FILE_SAVE,
+ HOF_DELETE_SAVE // unused
+};
+
+#define SECTION_ID_RECORDED_BATTLE 31
+
+void ClearSaveData(void);
+void ResetSaveCounters(void);
+bool32 SetDamagedSectorBits(u8 op, u8 bit);
+u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location);
+u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location);
+u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
+u8 TryWriteSector(u8 sector, u8 *data);
+u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location);
+u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location);
+u8 sub_81529D4(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_8152A34(u16 a1, const struct SaveSectionLocation *location);
+u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location);
+u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_8152DD0(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location);
+u8 GetSaveValidStatus(const struct SaveSectionLocation *location);
+u8 sub_81530DC(u8 a1, u8 *data, u16 size);
+u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section);
+u16 CalculateChecksum(void *data, u16 size);
+void UpdateSaveAddresses(void);
+u8 HandleSavingData(u8 saveType);
+u8 TrySavingData(u8 saveType);
+u8 sub_8153380(void);
+bool8 sub_81533AC(void);
+u8 sub_81533E0(void);
+u8 sub_8153408(void);
+u8 sub_8153430(void);
+bool8 sub_8153474(void);
+u8 sub_81534D0(u8 a1);
+u16 sub_815355C(void);
+u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
+u32 sub_8153634(u8 sector, u8* src);
+void sub_8153688(u8 taskId);
+
+#endif // GUARD_SAVE_H
diff --git a/include/save_location.h b/include/save_location.h
new file mode 100644
index 000000000..95b3a7d7d
--- /dev/null
+++ b/include/save_location.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_SAVE_LOCATION_H
+#define GUARD_SAVE_LOCATION_H
+
+bool32 sub_81AFCEC(void);
+void TrySetMapSaveWarpStatus(void);
+void sub_81AFDA0(void);
+void sub_81AFDD0(void);
+
+#endif // GUARD_SAVE_LOCATION_H
diff --git a/include/script.h b/include/script.h
new file mode 100644
index 000000000..2b5f8c2ce
--- /dev/null
+++ b/include/script.h
@@ -0,0 +1,64 @@
+#ifndef GUARD_SCRIPT_H
+#define GUARD_SCRIPT_H
+
+struct ScriptContext;
+
+typedef bool8 (*ScrCmdFunc)(struct ScriptContext *);
+typedef u8 Script[];
+
+struct ScriptContext
+{
+ u8 stackDepth;
+ u8 mode;
+ u8 comparisonResult;
+ u8 (*nativePtr)(void);
+ const u8 *scriptPtr;
+ const u8 *stack[20];
+ ScrCmdFunc *cmdTable;
+ ScrCmdFunc *cmdTableEnd;
+ u32 data[4];
+};
+
+#define ScriptReadByte(ctx) (*(ctx->scriptPtr++))
+
+void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd);
+u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr);
+void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void));
+void StopScript(struct ScriptContext *ctx);
+bool8 RunScriptCommand(struct ScriptContext *ctx);
+u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr);
+const u8 *ScriptPop(struct ScriptContext *ctx);
+void ScriptJump(struct ScriptContext *ctx, const u8 *ptr);
+void ScriptCall(struct ScriptContext *ctx, const u8 *ptr);
+void ScriptReturn(struct ScriptContext *ctx);
+u16 ScriptReadHalfword(struct ScriptContext *ctx);
+u32 ScriptReadWord(struct ScriptContext *ctx);
+void ScriptContext2_Enable(void);
+void ScriptContext2_Disable(void);
+bool8 ScriptContext2_IsEnabled(void);
+void ScriptContext1_Init(void);
+bool8 ScriptContext1_IsScriptSetUp(void);
+bool8 ScriptContext2_RunScript(void);
+void ScriptContext1_SetupScript(const u8 *ptr);
+void ScriptContext1_Stop(void);
+void EnableBothScriptContexts(void);
+void ScriptContext2_RunNewScript(const u8 *ptr);
+u8 *mapheader_get_tagged_pointer(u8 tag);
+void mapheader_run_script_by_tag(u8 tag);
+u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag);
+void mapheader_run_script_with_tag_x1(void);
+void mapheader_run_script_with_tag_x3(void);
+void mapheader_run_script_with_tag_x5(void);
+void mapheader_run_script_with_tag_x7(void);
+void mapheader_run_script_with_tag_x6(void);
+bool8 mapheader_run_first_tag2_script_list_match(void);
+void mapheader_run_first_tag4_script_list_match(void);
+u32 CalculateRamScriptChecksum(void);
+void ClearRamScript(void);
+bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
+u8 *GetRamScript(u8 objectId, u8 *script);
+bool32 sub_80991F8(void);
+u8 *sub_8099244(void);
+void sub_80992A0(u8 *script, u16 scriptSize);
+
+#endif // GUARD_SCRIPT_H
diff --git a/include/script_menu.h b/include/script_menu.h
new file mode 100644
index 000000000..717eda041
--- /dev/null
+++ b/include/script_menu.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_SCRIPT_MENU_H
+#define GUARD_SCRIPT_MENU_H
+
+extern const u8 *const gUnknown_0858BAF0[9];
+
+bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
+bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
+bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
+bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
+bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
+bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
+
+#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/script_movement.h b/include/script_movement.h
new file mode 100644
index 000000000..4c3fa6002
--- /dev/null
+++ b/include/script_movement.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_SCRIPT_MOVEMENT_H
+#define GUARD_SCRIPT_MOVEMENT_H
+
+bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *);
+bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
+void sub_80D338C(void);
+
+#endif // GUARD_SCRIPT_MOVEMENT_H
diff --git a/include/script_pokemon_80F8.h b/include/script_pokemon_80F8.h
new file mode 100644
index 000000000..8dd7ed0c0
--- /dev/null
+++ b/include/script_pokemon_80F8.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_SCRIPTPOKE80F8_H
+#define GUARD_SCRIPTPOKE80F8_H
+
+void ShowContestWinner(void);
+u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
+u8 ScriptGiveEgg(u16);
+void CreateScriptedWildMon(u16, u8, u16);
+void ScriptSetMonMoveSlot(u8, u16, u8);
+
+#endif
diff --git a/include/script_pokemon_81B9.h b/include/script_pokemon_81B9.h
new file mode 100644
index 000000000..1b8563ee6
--- /dev/null
+++ b/include/script_pokemon_81B9.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_SCRIPTPOKE81B9_H
+#define GUARD_SCRIPTPOKE81B9_H
+
+void sub_81B9404(void);
+
+#endif
diff --git a/include/shop.h b/include/shop.h
new file mode 100644
index 000000000..d3e86408c
--- /dev/null
+++ b/include/shop.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_SHOP_H
+#define GUARD_SHOP_H
+
+extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
+
+void CreatePokemartMenu(const u16 *);
+void CreateDecorationShop1Menu(const u16 *);
+void CreateDecorationShop2Menu(const u16 *);
+
+#endif // GUARD_SHOP_H
diff --git a/include/slot_machine.h b/include/slot_machine.h
new file mode 100644
index 000000000..8334e56fc
--- /dev/null
+++ b/include/slot_machine.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_SLOT_MACHINE_H
+#define GUARD_SLOT_MACHINE_H
+
+void PlaySlotMachine(u8, void *);
+
+#endif // GUARD_SLOT_MACHINE_H
diff --git a/include/songs.h b/include/songs.h
new file mode 100644
index 000000000..5a1fff00c
--- /dev/null
+++ b/include/songs.h
@@ -0,0 +1,466 @@
+#ifndef GUARD_SONGS_H
+#define GUARD_SONGS_H
+
+enum
+{
+ /*0x00*/ SE_STOP,
+ /*0x01*/ SE_KAIFUKU,
+ /*0x02*/ SE_PC_LOGON,
+ /*0x03*/ SE_PC_OFF,
+ /*0x04*/ SE_PC_ON,
+ /*0x05*/ SE_SELECT,
+ /*0x06*/ SE_WIN_OPEN,
+ /*0x07*/ SE_WALL_HIT,
+ /*0x08*/ SE_DOOR,
+ /*0x09*/ SE_KAIDAN,
+ /*0x0A*/ SE_DANSA,
+ /*0x0B*/ SE_JITENSYA,
+ /*0x0C*/ SE_KOUKA_L, // Goggle told me Kouka means 'effectiveness' which makes sense, because
+ /*0x0D*/ SE_KOUKA_M, // those three sounds play whenever you use a move
+ /*0x0E*/ SE_KOUKA_H,
+ /*0x0F*/ SE_BOWA2,
+ /*0x10*/ SE_POKE_DEAD,
+ /*0x11*/ SE_NIGERU,
+ /*0x12*/ SE_JIDO_DOA,
+ /*0x13*/ SE_NAMINORI,
+ /*0x14*/ SE_BAN,
+ /*0x15*/ SE_PIN,
+ /*0x16*/ SE_BOO,
+ /*0x17*/ SE_BOWA,
+ /*0x18*/ SE_JYUNI,
+ /*0x19*/ SE_A,
+ /*0x1A*/ SE_I,
+ /*0x1B*/ SE_U,
+ /*0x1C*/ SE_E,
+ /*0x1D*/ SE_O,
+ /*0x1E*/ SE_N,
+ /*0x1F*/ SE_SEIKAI,
+ /*0x20*/ SE_HAZURE,
+ /*0x21*/ SE_EXP,
+ /*0x22*/ SE_JITE_PYOKO,
+ /*0x23*/ SE_MU_PACHI,
+ /*0x24*/ SE_TK_KASYA,
+ /*0x25*/ SE_FU_ZAKU,
+ /*0x26*/ SE_FU_ZAKU2,
+ /*0x27*/ SE_FU_ZUZUZU,
+ /*0x28*/ SE_RU_GASHIN,
+ /*0x29*/ SE_RU_GASYAN,
+ /*0x2A*/ SE_RU_BARI,
+ /*0x2B*/ SE_RU_HYUU,
+ /*0x2C*/ SE_KI_GASYAN,
+ /*0x2D*/ SE_TK_WARPIN,
+ /*0x2E*/ SE_TK_WARPOUT,
+ /*0x2F*/ SE_TU_SAA,
+ /*0x30*/ SE_HI_TURUN,
+ /*0x31*/ SE_TRACK_MOVE,
+ /*0x32*/ SE_TRACK_STOP,
+ /*0x33*/ SE_TRACK_HAIK,
+ /*0x34*/ SE_TRACK_DOOR,
+ /*0x35*/ SE_MOTER,
+ /*0x36*/ SE_CARD,
+ /*0x37*/ SE_SAVE,
+ /*0x38*/ SE_KON,
+ /*0x39*/ SE_KON2,
+ /*0x3A*/ SE_KON3,
+ /*0x3B*/ SE_KON4,
+ /*0x3C*/ SE_SUIKOMU,
+ /*0x3D*/ SE_NAGERU,
+ SE_TOY_C,
+ SE_TOY_D,
+ SE_TOY_E,
+ SE_TOY_F,
+ SE_TOY_G,
+ SE_TOY_A,
+ SE_TOY_B,
+ SE_TOY_C1,
+ SE_MIZU,
+ SE_HASHI,
+ SE_DAUGI,
+ SE_PINPON,
+ SE_FUUSEN1,
+ SE_FUUSEN2,
+ SE_FUUSEN3,
+ SE_TOY_KABE,
+ SE_TOY_DANGO,
+ SE_DOKU,
+ SE_ESUKA,
+ SE_T_AME,
+ SE_T_AME_E,
+ SE_T_OOAME,
+ SE_T_OOAME_E,
+ SE_T_KOAME,
+ SE_T_KOAME_E,
+ SE_T_KAMI,
+ SE_T_KAMI2,
+ SE_ELEBETA,
+ /*0x5A*/ SE_HINSI,
+ /*0x5B*/ SE_EXPMAX,
+ /*0x5C*/ SE_TAMAKORO,
+ /*0x5D*/ SE_TAMAKORO_E,
+ /*0x5E*/ SE_BASABASA,
+ /*0x5F*/ SE_REGI,
+ SE_C_GAJI,
+ SE_C_MAKU_U,
+ SE_C_MAKU_D,
+ SE_C_PASI,
+ SE_C_SYU,
+ SE_C_PIKON,
+ /*0x66*/ SE_REAPOKE,
+ /*0x67*/ SE_OP_BASYU,
+ /*0x68*/ SE_BT_START,
+ SE_DENDOU,
+ SE_JIHANKI,
+ SE_TAMA,
+ SE_Z_SCROLL,
+ /*0x6D*/ SE_Z_PAGE,
+ /*0x6E*/ SE_PN_ON,
+ /*0x6F*/ SE_PN_OFF,
+ /*0x70*/ SE_Z_SEARCH,
+ /*0x71*/ SE_TAMAGO,
+ /*0x72*/ SE_TB_START,
+ /*0x73*/ SE_TB_KON,
+ /*0x74*/ SE_TB_KARA,
+ /*0x75*/ SE_BIDORO,
+ /*0x76*/ SE_W085,
+ /*0x77*/ SE_W085B,
+ /*0x78*/ SE_W231,
+ /*0x79*/ SE_W171,
+ /*0x7A*/ SE_W233,
+ /*0x7B*/ SE_W233B,
+ /*0x7C*/ SE_W145,
+ /*0x7D*/ SE_W145B,
+ /*0x7E*/ SE_W145C,
+ /*0x7F*/ SE_W240,
+ /*0x80*/ SE_W015,
+ /*0x81*/ SE_W081,
+ /*0x82*/ SE_W081B,
+ /*0x83*/ SE_W088,
+ /*0x84*/ SE_W016,
+ /*0x85*/ SE_W016B,
+ /*0x86*/ SE_W003,
+ /*0x87*/ SE_W104,
+ /*0x88*/ SE_W013,
+ /*0x89*/ SE_W196,
+ /*0x8A*/ SE_W086,
+ /*0x8B*/ SE_W004,
+ /*0x8C*/ SE_W025,
+ /*0x8D*/ SE_W025B,
+ SE_W152,
+ SE_W026,
+ SE_W172,
+ SE_W172B,
+ SE_W053,
+ SE_W007,
+ SE_W092,
+ SE_W221,
+ SE_W221B,
+ SE_W052,
+ SE_W036,
+ SE_W059,
+ SE_W059B,
+ SE_W010,
+ SE_W011,
+ SE_W017,
+ SE_W019,
+ SE_W028,
+ SE_W013B,
+ SE_W044,
+ SE_W029,
+ SE_W057,
+ SE_W056,
+ SE_W250,
+ SE_W030,
+ SE_W039,
+ SE_W054,
+ SE_W077,
+ SE_W020,
+ SE_W082,
+ SE_W047,
+ SE_W195,
+ SE_W006,
+ SE_W091,
+ SE_W146,
+ SE_W120,
+ SE_W153,
+ SE_W071B,
+ SE_W071,
+ SE_W103,
+ /*0xB6*/ SE_W062,
+ /*0xB7*/ SE_W062B,
+ /*0xB8*/ SE_W048,
+ /*0xB9*/ SE_W187,
+ /*0xBA*/ SE_W118,
+ /*0xBB*/ SE_W155,
+ /*0xBC*/ SE_W122,
+ /*0xBD*/ SE_W060,
+ /*0xBE*/ SE_W185,
+ /*0xBF*/ SE_W014,
+ /*0xC0*/ SE_W043,
+ /*0xC1*/ SE_W207,
+ /*0xC2*/ SE_W207B,
+ /*0xC3*/ SE_W215,
+ /*0xC4*/ SE_W109,
+ /*0xC5*/ SE_W173,
+ /*0xC6*/ SE_W280,
+ /*0xC7*/ SE_W202,
+ /*0xC8*/ SE_W060B,
+ /*0xC9*/ SE_W076,
+ /*0xCA*/ SE_W080,
+ /*0xCB*/ SE_W100,
+ /*0xCC*/ SE_W107,
+ SE_W166,
+ SE_W129,
+ SE_W115,
+ SE_W112,
+ SE_W197,
+ SE_W199,
+ SE_W236,
+ SE_W204,
+ SE_W268,
+ SE_W070,
+ SE_W063,
+ SE_W127,
+ SE_W179,
+ SE_W151,
+ SE_W201,
+ SE_W161,
+ SE_W161B,
+ SE_W227,
+ SE_W227B,
+ SE_W226,
+ SE_W208,
+ SE_W213,
+ SE_W213B,
+ SE_W234,
+ SE_W260,
+ SE_W328,
+ SE_W320,
+ SE_W255,
+ SE_W291,
+ SE_W089,
+ SE_W239,
+ SE_W230,
+ SE_W281,
+ SE_W327,
+ SE_W287,
+ SE_W257,
+ SE_W253,
+ SE_W258,
+ SE_W322,
+ SE_W298,
+ SE_W287B,
+ SE_W114,
+ SE_W063B,
+ BGM_STOP = 349,
+ /*0x15E*/ BGM_TETSUJI,
+ /*0x15F*/ BGM_FIELD13,
+ /*0x160*/ BGM_KACHI22,
+ /*0x161*/ BGM_KACHI2,
+ /*0x162*/ BGM_KACHI3,
+ /*0x163*/ BGM_KACHI5,
+ /*0x164*/ BGM_PCC,
+ /*0x165*/ BGM_NIBI,
+ /*0x166*/ BGM_SUIKUN,
+ /*0x167*/ BGM_DOORO1,
+ /*0x168*/ BGM_DOORO_X1,
+ /*0x169*/ BGM_DOORO_X3,
+ /*0x16A*/ BGM_MACHI_S2,
+ /*0x16B*/ BGM_MACHI_S4,
+ /*0x16C*/ BGM_GIM,
+ /*0x16D*/ BGM_NAMINORI,
+ /*0x16E*/ BGM_DAN01,
+ /*0x16F*/ BGM_FANFA1,
+ /*0x170*/ BGM_ME_ASA,
+ /*0x171*/ BGM_ME_BACHI,
+ /*0x172*/ BGM_FANFA4,
+ /*0x173*/ BGM_FANFA5,
+ /*0x174*/ BGM_ME_WAZA,
+ /*0x175*/ BGM_BIJYUTU,
+ /*0x176*/ BGM_DOORO_X4,
+ /*0x177*/ BGM_FUNE_KAN,
+ /*0x178*/ BGM_ME_SHINKA,
+ /*0x179*/ BGM_SHINKA,
+ /*0x17A*/ BGM_ME_WASURE,
+ /*0x17B*/ BGM_SYOUJOEYE,
+ /*0x17C*/ BGM_BOYEYE,
+ /*0x17D*/ BGM_DAN02,
+ /*0x17E*/ BGM_MACHI_S3,
+ /*0x17F*/ BGM_ODAMAKI,
+ /*0x180*/ BGM_B_TOWER,
+ /*0x181*/ BGM_SWIMEYE,
+ /*0x182*/ BGM_DAN03,
+ /*0x183*/ BGM_ME_KINOMI,
+ /*0x184*/ BGM_ME_TAMA,
+ /*0x185*/ BGM_ME_B_BIG,
+ /*0x186*/ BGM_ME_B_SMALL,
+ /*0x187*/ BGM_ME_ZANNEN,
+ /*0x188*/ BGM_BD_TIME,
+ /*0x189*/ BGM_TEST1,
+ /*0x18A*/ BGM_TEST2,
+ /*0x18B*/ BGM_TEST3,
+ /*0x18C*/ BGM_TEST4,
+ /*0x18D*/ BGM_TEST,
+ /*0x18E*/ BGM_GOMACHI0,
+ /*0x18F*/ BGM_GOTOWN,
+ /*0x190*/ BGM_POKECEN,
+ /*0x191*/ BGM_NEXTROAD,
+ /*0x192*/ BGM_GRANROAD,
+ /*0x193*/ BGM_CYCLING,
+ /*0x194*/ BGM_FRIENDLY,
+ /*0x195*/ BGM_MISHIRO,
+ /*0x196*/ BGM_TOZAN,
+ /*0x197*/ BGM_GIRLEYE,
+ /*0x198*/ BGM_MINAMO,
+ /*0x199*/ BGM_ASHROAD,
+ /*0x19A*/ BGM_EVENT0,
+ /*0x19B*/ BGM_DEEPDEEP,
+ /*0x19C*/ BGM_KACHI1,
+ /*0x19D*/ BGM_TITLE3,
+ /*0x19E*/ BGM_DEMO1,
+ /*0x19F*/ BGM_GIRL_SUP,
+ /*0x1A0*/ BGM_HAGESHII,
+ /*0x1A1*/ BGM_KAKKOII,
+ /*0x1A2*/ BGM_KAZANBAI,
+ /*0x1A3*/ BGM_AQA_0,
+ /*0x1A4*/ BGM_TSURETEK,
+ /*0x1A5*/ BGM_BOY_SUP,
+ /*0x1A6*/ BGM_RAINBOW,
+ /*0x1A7*/ BGM_AYASII,
+ /*0x1A8*/ BGM_KACHI4,
+ /*0x1A9*/ BGM_ROPEWAY,
+ /*0x1AA*/ BGM_CASINO,
+ /*0x1AB*/ BGM_HIGHTOWN,
+ /*0x1AC*/ BGM_SAFARI,
+ BGM_C_ROAD,
+ BGM_AJITO,
+ BGM_M_BOAT,
+ BGM_M_DUNGON,
+ BGM_FINECITY,
+ BGM_MACHUPI,
+ BGM_P_SCHOOL,
+ BGM_DENDOU,
+ BGM_TONEKUSA,
+ BGM_MABOROSI,
+ BGM_CON_FAN,
+ BGM_CONTEST0,
+ BGM_MGM0,
+ BGM_T_BATTLE,
+ BGM_OOAME,
+ BGM_HIDERI,
+ BGM_RUNECITY,
+ BGM_CON_K,
+ BGM_EIKOU_R,
+ BGM_KARAKURI,
+ BGM_HUTAGO,
+ BGM_SITENNOU,
+ BGM_YAMA_EYE,
+ BGM_CONLOBBY,
+ BGM_INTER_V,
+ BGM_DAIGO,
+ BGM_THANKFOR,
+ BGM_END,
+ /*0x1C9*/ BGM_BATTLE_FRONTIER, // human-readable names start here because we don't know the actual filenames
+ BGM_BATTLE_ARENA,
+ BGM_ME_BATTLE_POINTS, // ME_ as in messagebox? Used for KINOMI (berries) and stuff above
+ BGM_ME_MATCH_CALL,
+ BGM_BATTLE_PYRAMID,
+ BGM_BATTLE_PYRAMID_SUMMIT,
+ BGM_BATTLE_PALACE,
+ BGM_FANFA_RAYQUAZA,
+ BGM_BATTLE_TOWER,
+ BGM_ME_BATTLE_SYMBOL,
+ BGM_BATTLE_DOME_TOURNAMENT,
+ BGM_BATTLE_PIKE,
+ BGM_BATTLE_FACTORY,
+ BGM_BATTLE_LEGENDARY,
+ BGM_BATTLE_FRONTIER_BRAIN,
+ BGM_BATTLE_MEW,
+ BGM_BATTLE_DOME, // end of the human-readable names
+ /*0x1DA*/ BGM_BATTLE27, // wild
+ BGM_BATTLE31, // aqua/magma grunt
+ BGM_BATTLE20, // trainer
+ BGM_BATTLE32, // gym leader
+ BGM_BATTLE33, // champion
+ BGM_BATTLE36, // regi
+ BGM_BATTLE34, // weather trio
+ BGM_BATTLE35, // rival
+ BGM_BATTLE38, // elite four
+ BGM_BATTLE30, // aqua/magma leader
+ /*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again!
+ BGM_FRLG_GAMECORNER,
+ BGM_FRLG_ROCKET_HIDEOUT,
+ BGM_FRLG_GYM,
+ BGM_FRLG_JIGGLYPUFF,
+ BGM_FRLG_OPENING,
+ BGM_FRLG_TITLE,
+ BGM_FRLG_CINNABAR_ISLAND,
+ BGM_FRLG_LAVENDER_TOWN,
+ BGM_FRLG_HEALING_TEST,
+ BGM_FRLG_BICYCLE,
+ BGM_FRLG_SUSPICIOUS_EYE,
+ BGM_FRLG_GIRL_EYE,
+ BGM_FRLG_BOY_EYE,
+ BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME,
+ BGM_FRLG_VIRIDIAN_FOREST,
+ BGM_FRLG_MT_MOON,
+ BGM_FRLG_POKEMON_MANSION,
+ BGM_FRLG_CREDITS,
+ BGM_FRLG_ROUTE_1,
+ BGM_FRLG_ROUTE_24,
+ BGM_FRLG_ROUTE_3,
+ BGM_FRLG_ROUTE_11,
+ BGM_FRLG_INDIGO_PLATEAU,
+ BGM_FRLG_BATTLE_LEADER,
+ BGM_FRLG_BATTLE_TRAINER,
+ BGM_FRLG_BATTLE_WILD_POKEMON,
+ BGM_FRLG_BATTLE_CHAMPION,
+ BGM_FRLG_PALLET_TOWN,
+ BGM_FRLG_OAK_LAB,
+ BGM_FRLG_PROF_OAK,
+ BGM_FRLG_POKEMON_CENTER,
+ BGM_FRLG_SS_ANNE,
+ BGM_FRLG_SURF,
+ BGM_FRLG_POKEMON_TOWER,
+ BGM_FRLG_SILPH,
+ BGM_FRLG_CERULEAN_CITY,
+ BGM_FRLG_CELADON_CITY,
+ BGM_FRLG_KACHI_TRAINER, // KACHI used in RS test - victory
+ BGM_FRLG_KACHI_WILD_POKEMON,
+ BGM_FRLG_KACHI_LEADER,
+ BGM_FRLG_VERMILION_CITY,
+ BGM_FRLG_VIRIDIAN_CITY,
+ BGM_FRLG_RIVAL,
+ BGM_FRLG_RIVAL_POSTBATTLE,
+ BGM_FRLG_ME_POKEDEX_EVAL,
+ BGM_FRLG_ME_KEYITEM,
+ BGM_FRLG_FANFA_POKEMON_CAUGHT,
+ BGM_FRLG_FANFA_TRAINERCARD_PHOTO,
+ BGM_FRLG_GAMEFREAK_LOGO,
+ BGM_FRLG_CAUGHT_POKEMON,
+ BGM_FRLG_GAME_EXPLANATION_START,
+ BGM_FRLG_GAME_EXPLANATION_MIDDLE,
+ BGM_FRLG_GAME_EXPLANATION_END,
+ BGM_FRLG_POKEMON_JUMP,
+ BGM_FRLG_UNION_ROOM,
+ BGM_FRLG_POKEMON_NETWORK_CENTER,
+ BGM_FRLG_MYSTERY_GIFT,
+ BGM_FRLG_DODRIO_BERRY_PICK,
+ BGM_FRLG_MT_EMBER,
+ BGM_FRLG_TEACHY_TV_EPISODE,
+ BGM_FRLG_SEVII_ISLANDS,
+ BGM_FRLG_TANOBY_RUINS,
+ BGM_FRLG_ISLAND_ONE,
+ BGM_FRLG_ISLAND_FOUR,
+ BGM_FRLG_ISLAND_SIX,
+ BGM_FRLG_FLUTE,
+ BGM_FRLG_BATTLE_DEOXYS,
+ BGM_FRLG_BATTLE_MEWTWO,
+ BGM_FRLG_BATTLE_LEGENDARY,
+ BGM_FRLG_LEADER_EYE,
+ BGM_FRLG_DEOXYS_EYE,
+ BGM_FRLG_TRAINER_TOWER,
+ BGM_FRLG_HALL_OF_FAME_PALLET_TOWN,
+ /*0x22E*/BGM_FRLG_TEACHY_TV,
+};
+
+#endif // GUARD_SONGS_H
diff --git a/include/sound.h b/include/sound.h
new file mode 100644
index 000000000..7d47b7456
--- /dev/null
+++ b/include/sound.h
@@ -0,0 +1,48 @@
+#ifndef GUARD_SOUND_H
+#define GUARD_SOUND_H
+
+void InitMapMusic(void);
+void MapMusicMain(void);
+void ResetMapMusic(void);
+u16 GetCurrentMapMusic(void);
+void PlayNewMapMusic(u16 songNum);
+void StopMapMusic(void);
+void FadeOutMapMusic(u8 speed);
+void FadeOutAndPlayNewMapMusic(u16 songNum, u8 speed);
+void FadeOutAndFadeInNewMapMusic(u16 songNum, u8 fadeOutSpeed, u8 fadeInSpeed);
+void FadeInNewMapMusic(u16 songNum, u8 speed);
+bool8 IsNotWaitingForBGMStop(void);
+void PlayFanfareByFanfareNum(u8 fanfareNum);
+bool8 WaitFanfare(bool8 stop);
+void StopFanfareByFanfareNum(u8 fanfareNum);
+void PlayFanfare(u16 songNum);
+bool8 IsFanfareTaskInactive(void);
+void FadeInNewBGM(u16 songNum, u8 speed);
+void FadeOutBGMTemporarily(u8 speed);
+bool8 IsBGMPausedOrStopped(void);
+void FadeInBGM(u8 speed);
+void FadeOutBGM(u8 speed);
+bool8 IsBGMStopped(void);
+void PlayCry1(u16 species, s8 pan);
+void PlayCry2(u16 species, s8 pan, s8 volume, u8 priority);
+void PlayCry3(u16 species, s8 pan, u8 mode);
+void PlayCry4(u16 species, s8 pan, u8 mode);
+void PlayCry5(u16 species, u8 mode);
+void PlayCry6(u16 species, s8 pan, u8 mode);
+void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode);
+bool8 IsCryFinished(void);
+void StopCryAndClearCrySongs(void);
+void StopCry(void);
+bool8 IsCryPlayingOrClearCrySongs(void);
+bool8 IsCryPlaying(void);
+void PlayBGM(u16 songNum);
+void PlaySE(u16 songNum);
+void PlaySE12WithPanning(u16 songNum, s8 pan);
+void PlaySE1WithPanning(u16 songNum, s8 pan);
+void PlaySE2WithPanning(u16 songNum, s8 pan);
+void SE12PanpotControl(s8 pan);
+bool8 IsSEPlaying(void);
+bool8 IsBGMPlaying(void);
+bool8 IsSpecialSEPlaying(void);
+
+#endif // GUARD_SOUND_H
diff --git a/include/sprite.h b/include/sprite.h
new file mode 100644
index 000000000..170d77c3f
--- /dev/null
+++ b/include/sprite.h
@@ -0,0 +1,302 @@
+#ifndef GUARD_SPRITE_H
+#define GUARD_SPRITE_H
+
+#define MAX_SPRITES 64
+
+struct SpriteSheet
+{
+ const u8 *data; // Raw uncompressed pixel data
+ u16 size;
+ u16 tag;
+};
+
+struct CompressedSpriteSheet
+{
+ const u8 *data; // LZ77 compressed pixel data
+ u16 size; // Uncompressed size of pixel data
+ u16 tag;
+};
+
+struct SpriteFrameImage
+{
+ const u8 *data;
+ u16 size;
+};
+
+#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr}
+
+struct SpritePalette
+{
+ const u16 *data; // Raw uncompressed palette data
+ u16 tag;
+};
+
+struct CompressedSpritePalette
+{
+ const u8 *data; // LZ77 compressed palette data
+ u16 tag;
+};
+
+struct AnimFrameCmd
+{
+ // If the sprite has an array of images, this is the array index.
+ // If the sprite has a sheet, this is the tile offset.
+ u32 imageValue:16;
+
+ u32 duration:6;
+ u32 hFlip:1;
+ u32 vFlip:1;
+};
+
+struct AnimLoopCmd
+{
+ u32 type:16;
+ u32 count:6;
+};
+
+struct AnimJumpCmd
+{
+ u32 type:16;
+ u32 target:6;
+};
+
+// The first halfword of this union specifies the type of command.
+// If it -2, then it is a jump command. If it is -1, then it is the end of the script.
+// Otherwise, it is the imageValue for a frame command.
+union AnimCmd
+{
+ s16 type;
+ struct AnimFrameCmd frame;
+ struct AnimLoopCmd loop;
+ struct AnimJumpCmd jump;
+};
+
+#define ANIMCMD_FRAME(...) \
+ {.frame = {__VA_ARGS__}}
+#define ANIMCMD_LOOP(_count) \
+ {.loop = {.type = -3, .count = _count}}
+#define ANIMCMD_JUMP(_target) \
+ {.jump = {.type = -2, .target = _target}}
+#define ANIMCMD_END \
+ {.type = -1}
+
+struct AffineAnimFrameCmd
+{
+ s16 xScale;
+ s16 yScale;
+ u8 rotation;
+ u8 duration;
+};
+
+struct AffineAnimLoopCmd
+{
+ s16 type;
+ s16 count;
+};
+
+struct AffineAnimJumpCmd
+{
+ s16 type;
+ u16 target;
+};
+
+union AffineAnimCmd
+{
+ s16 type;
+ struct AffineAnimFrameCmd frame;
+ struct AffineAnimLoopCmd loop;
+ struct AffineAnimJumpCmd jump;
+};
+
+#define AFFINEANIMCMDTYPE_LOOP 0x7FFD
+#define AFFINEANIMCMDTYPE_JUMP 0x7FFE
+#define AFFINEANIMCMDTYPE_END 0x7FFF
+
+#define AFFINEANIMCMD_FRAME(_xScale, _yScale, _rotation, _duration) \
+ {.frame = {.xScale = _xScale, .yScale = _yScale, .rotation = _rotation, .duration = _duration}}
+#define AFFINEANIMCMD_LOOP(_count) \
+ {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}}
+#define AFFINEANIMCMD_JUMP(_target) \
+ {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
+#define AFFINEANIMCMD_END \
+ {.type = AFFINEANIMCMDTYPE_END}
+#define AFFINEANIMCMD_LOOP(_count) \
+ {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}}
+#define AFFINEANIMCMD_JUMP(_target) \
+ {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
+
+struct AffineAnimState
+{
+ u8 animNum;
+ u8 animCmdIndex;
+ u8 delayCounter;
+ u8 loopCounter;
+ s16 xScale;
+ s16 yScale;
+ u16 rotation;
+};
+
+enum
+{
+ SUBSPRITES_OFF,
+ SUBSPRITES_ON,
+ SUBSPRITES_IGNORE_PRIORITY, // on but priority is ignored
+};
+
+struct Subsprite
+{
+ s8 x; // was u16 in R/S
+ s8 y; // was u16 in R/S
+ u16 shape:2;
+ u16 size:2;
+ u16 tileOffset:10;
+ u16 priority:2;
+};
+
+struct SubspriteTable
+{
+ u8 subspriteCount;
+ const struct Subsprite *subsprites;
+};
+
+struct Sprite;
+
+struct SpriteTemplate
+{
+ u16 tileTag;
+ u16 paletteTag;
+ const struct OamData *oam;
+ const union AnimCmd *const *anims;
+ const struct SpriteFrameImage *images;
+ const union AffineAnimCmd *const *affineAnims;
+ void (*callback)(struct Sprite *);
+};
+
+struct Sprite
+{
+ /*0x00*/ struct OamData oam;
+ /*0x08*/ const union AnimCmd *const *anims;
+ /*0x0C*/ const struct SpriteFrameImage *images;
+ /*0x10*/ const union AffineAnimCmd *const *affineAnims;
+ /*0x14*/ const struct SpriteTemplate *template;
+ /*0x18*/ const struct SubspriteTable *subspriteTables;
+ /*0x1C*/ void (*callback)(struct Sprite *);
+
+ /*0x20*/ struct Coords16 pos1;
+ /*0x24*/ struct Coords16 pos2;
+ /*0x28*/ s8 centerToCornerVecX;
+ /*0x29*/ s8 centerToCornerVecY;
+
+ /*0x2A*/ u8 animNum;
+ /*0x2B*/ u8 animCmdIndex;
+ /*0x2C*/ u8 animDelayCounter:6;
+ u8 animPaused:1;
+ u8 affineAnimPaused:1;
+ /*0x2D*/ u8 animLoopCounter;
+
+ // general purpose data fields
+ /*0x2E*/ s16 data[8];
+
+ /*0x3E*/ u16 inUse:1; //1
+ u16 coordOffsetEnabled:1; //2
+ u16 invisible:1; //4
+ u16 flags_3:1; //8
+ u16 flags_4:1; //0x10
+ u16 flags_5:1; //0x20
+ u16 flags_6:1; //0x40
+ u16 flags_7:1; //0x80
+ /*0x3F*/ u16 hFlip:1; //1
+ u16 vFlip:1; //2
+ u16 animBeginning:1; //4
+ u16 affineAnimBeginning:1; //8
+ u16 animEnded:1; //0x10
+ u16 affineAnimEnded:1; //0x20
+ u16 usingSheet:1; //0x40
+ u16 flags_f:1; //0x80
+
+ /*0x40*/ u16 sheetTileStart;
+
+ /*0x42*/ u8 subspriteTableNum:6;
+ u8 subspriteMode:2;
+
+ /*0x43*/ u8 subpriority;
+};
+
+struct OamMatrix
+{
+ s16 a;
+ s16 b;
+ s16 c;
+ s16 d;
+};
+
+extern const struct OamData gDummyOamData;
+extern const union AnimCmd *const gDummySpriteAnimTable[];
+extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
+extern s16 gSpriteCoordOffsetX;
+extern s16 gSpriteCoordOffsetY;
+
+extern struct Sprite gSprites[];
+
+void ResetSpriteData(void);
+void AnimateSprites(void);
+void BuildOamBuffer(void);
+u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
+u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
+u8 CreateInvisibleSprite(void (*callback)(struct Sprite *));
+u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
+void DestroySprite(struct Sprite *sprite);
+void ResetOamRange(u8 a, u8 b);
+void LoadOam(void);
+void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d);
+void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode);
+void SpriteCallbackDummy(struct Sprite *sprite);
+void ProcessSpriteCopyRequests(void);
+void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size);
+void FreeSpriteTiles(struct Sprite *sprite);
+void FreeSpritePalette(struct Sprite *sprite);
+void FreeSpriteOamMatrix(struct Sprite *sprite);
+void DestroySpriteAndFreeResources(struct Sprite *sprite);
+void sub_800142C(u32 a1, u32 a2, u16 *a3, u16 a4, u32 a5);
+void AnimateSprite(struct Sprite *sprite);
+void StartSpriteAnim(struct Sprite *sprite, u8 animNum);
+void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum);
+void SeekSpriteAnim(struct Sprite *sprite, u8 animCmdIndex);
+void StartSpriteAffineAnim(struct Sprite *sprite, u8 animNum);
+void StartSpriteAffineAnimIfDifferent(struct Sprite *sprite, u8 animNum);
+void ChangeSpriteAffineAnim(struct Sprite *sprite, u8 animNum);
+void ChangeSpriteAffineAnimIfDifferent(struct Sprite *sprite, u8 animNum);
+void SetSpriteSheetFrameTileNum(struct Sprite *sprite);
+u8 AllocOamMatrix(void);
+void FreeOamMatrix(u8 matrixNum);
+void InitSpriteAffineAnim(struct Sprite *sprite);
+void SetOamMatrixRotationScaling(u8 matrixNum, s16 xScale, s16 yScale, u16 rotation);
+u16 LoadSpriteSheet(const struct SpriteSheet *sheet);
+void LoadSpriteSheets(const struct SpriteSheet *sheets);
+u16 AllocTilesForSpriteSheet(struct SpriteSheet *sheet);
+void AllocTilesForSpriteSheets(struct SpriteSheet *sheets);
+void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet);
+void LoadTilesForSpriteSheets(struct SpriteSheet *sheets);
+void FreeSpriteTilesByTag(u16 tag);
+void FreeSpriteTileRanges(void);
+u16 GetSpriteTileStartByTag(u16 tag);
+u16 GetSpriteTileTagByTileStart(u16 start);
+void RequestSpriteSheetCopy(const struct SpriteSheet *sheet);
+u16 LoadSpriteSheetDeferred(const struct SpriteSheet *sheet);
+void FreeAllSpritePalettes(void);
+u8 LoadSpritePalette(const struct SpritePalette *palette);
+void LoadSpritePalettes(const struct SpritePalette *palettes);
+u8 AllocSpritePalette(u16 tag);
+u8 IndexOfSpritePaletteTag(u16 tag);
+u16 GetSpritePaletteTagByPaletteNum(u8 paletteNum);
+void FreeSpritePaletteByTag(u16 tag);
+void SetSubspriteTables(struct Sprite *sprite, const struct SubspriteTable *subspriteTables);
+bool8 AddSpriteToOamBuffer(struct Sprite *object, u8 *oamIndex);
+bool8 AddSubspritesToOamBuffer(struct Sprite *sprite, struct OamData *destOam, u8 *oamIndex);
+void CopyToSprites(u8 *src);
+void CopyFromSprites(u8 *dest);
+u8 SpriteTileAllocBitmapOp(u16 bit, u8 op);
+void ClearSpriteCopyRequests(void);
+void ResetAffineAnimData(void);
+
+#endif //GUARD_SPRITE_H
diff --git a/include/start_menu.h b/include/start_menu.h
new file mode 100644
index 000000000..6c7cb3237
--- /dev/null
+++ b/include/start_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_START_MENU_H
+#define GUARD_START_MENU_H
+
+void AppendToList(u8* list, u8* pos, u8 newEntry);
+
+#endif // GUARD_START_MENU_H
diff --git a/include/string_util.h b/include/string_util.h
new file mode 100644
index 000000000..f26646082
--- /dev/null
+++ b/include/string_util.h
@@ -0,0 +1,42 @@
+#ifndef GUARD_STRING_UTIL_H
+#define GUARD_STRING_UTIL_H
+
+enum StringConvertMode
+{
+ STR_CONV_MODE_LEFT_ALIGN,
+ STR_CONV_MODE_RIGHT_ALIGN,
+ STR_CONV_MODE_LEADING_ZEROS
+};
+
+u8 *StringCopy10(u8 *dest, const u8 *src);
+u8 *StringGetEnd10(u8 *str);
+u8 *StringCopy7(u8 *dest, const u8 *src);
+u8 *StringCopy(u8 *dest, const u8 *src);
+u8 *StringAppend(u8 *dest, const u8 *src);
+u8 *StringCopyN(u8 *dest, const u8 *src, u8 n);
+u8 *StringAppendN(u8 *dest, const u8 *src, u8 n);
+u16 StringLength(const u8 *str);
+s32 StringCompare(const u8 *str1, const u8 *str2);
+s32 StringCompareN(const u8 *str1, const u8 *str2, u32 n);
+bool8 IsStringLengthAtLeast(const u8 *str, s32 n);
+u8 *ConvertIntToDecimalStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n);
+u8 *ConvertUIntToDecimalStringN(u8 *dest, u32 value, enum StringConvertMode mode, u8 n);
+u8 *ConvertIntToHexStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n);
+u8 *StringExpandPlaceholders(u8 *dest, const u8 *src);
+u8 *StringBraille(u8 *dest, const u8 *src);
+u8 *GetExpandedPlaceholder(u32 id);
+u8 *StringFill(u8 *dest, u8 c, u16 n);
+u8 *StringCopyPadded(u8 *dest, const u8 *src, u8 c, u16 n);
+u8 *StringFillWithTerminator(u8 *dest, u16 n);
+u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n);
+u32 StringLength_Multibyte(u8 *str);
+u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color);
+bool32 IsStringJapanese(u8 *str);
+bool32 sub_800924C(u8 *str, s32 n);
+u8 GetExtCtrlCodeLength(u8 code);
+static const u8 *SkipExtCtrlCode(const u8 *s);
+s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2);
+void ConvertInternationalString(u8 *s, u8 language);
+void StripExtCtrlCodes(u8 *str);
+
+#endif // GUARD_STRING_UTIL_H
diff --git a/include/strings.h b/include/strings.h
new file mode 100644
index 000000000..8b218e1e9
--- /dev/null
+++ b/include/strings.h
@@ -0,0 +1,91 @@
+#ifndef GUARD_STRINGS_H
+#define GUARD_STRINGS_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+extern const u8 gText_FromSpace[];
+extern const u8 gText_Lv50[];
+extern const u8 gText_OpenLevel[];
+extern const u8 gText_Mom[];
+extern const u8 gText_Dad[];
+extern const u8 gText_Cool[];
+extern const u8 gText_Beauty[];
+extern const u8 gText_Cute[];
+extern const u8 gText_Smart[];
+extern const u8 gText_Tough[];
+extern const u8 gText_Single[];
+extern const u8 gText_Double[];
+extern const u8 gText_Spicy2[];
+extern const u8 gText_Dry2[];
+extern const u8 gText_Sweet2[];
+extern const u8 gText_Bitter2[];
+extern const u8 gText_Sour2[];
+extern const u8 gText_Excellent[];
+extern const u8 gText_VeryGood[];
+extern const u8 gText_Good[];
+extern const u8 gText_SoSo[];
+extern const u8 gText_Bad[];
+extern const u8 gText_TheWorst[];
+extern const u8 gText_Slots[];
+extern const u8 gText_Roulette[];
+extern const u8 gText_Jackpot[];
+extern const u8 gText_First[];
+extern const u8 gText_Second[];
+extern const u8 gText_Third[];
+extern const u8 gText_NoDecorations[];
+extern const u8 gText_NoDecorationsInUse[];
+extern const u8 gText_Exit[];
+extern const u8 gText_Cancel[];
+extern const u8 gText_Color161Shadow161[];
+extern const u8 gText_GoBackPrevMenu[];
+extern const u8 gText_CantPlaceInRoom[];
+extern const u8 gText_NoMoreDecorations[];
+extern const u8 gText_NoMoreDecorations2[];
+extern const u8 gText_InUseAlready[];
+extern const u8 gText_CancelDecorating[];
+extern const u8 gText_PlaceItHere[];
+extern const u8 gText_CantBePlacedHere[];
+extern const u8 gText_DecorationReturnedToPC[];
+extern const u8 gText_StopPuttingAwayDecorations[];
+extern const u8 gText_ReturnDecorationToPC[];
+extern const u8 gText_NoDecorationHere[];
+extern const u8 gText_DecorationWillBeDiscarded[];
+extern const u8 gText_CantThrowAwayInUse[];
+extern const u8 gText_DecorationThrownAway[];
+extern const u8 gText_Desk[];
+extern const u8 gText_Chair[];
+extern const u8 gText_Plant[];
+extern const u8 gText_Ornament[];
+extern const u8 gText_Mat[];
+extern const u8 gText_Poster[];
+extern const u8 gText_PutOutSelectedDecorItem[];
+extern const u8 gText_StoreChosenDecorInPC[];
+extern const u8 gText_ThrowAwayUnwantedDecors[];
+extern const u8 gText_Doll[];
+extern const u8 gText_Cushion[];
+extern const u8 gText_Decorate[];
+extern const u8 gText_PutAway[];
+extern const u8 gText_Toss2[];
+extern const u8 gText_Hoenn[];
+extern const u8 gText_Ferry[];
+extern const u8 gText_SecretBase[];
+extern const u8 gText_Hideout[];
+extern const u8 gText_FlyToWhere[];
+extern const u8 gText_PokemonLeague[];
+extern const u8 gText_PokemonCenter[];
+extern const u8 gText_ApostropheSBase[];
+extern const u8 gText_NoRegistry[];
+extern const u8 gText_OkayToDeleteFromRegistry[];
+extern const u8 gText_RegisteredDataDeleted[];
+extern const u8 gUnknown_085EA79D[];
+extern const u8 gText_Confirm3[];
+extern const u8 gText_Cancel4[];
+extern const u8 gText_IsThisTheCorrectTime[];
+extern const u8 gText_PkmnFainted3[];
+extern const u8 gText_Coins[];
+
+#endif //GUARD_STRINGS_H
diff --git a/include/task.h b/include/task.h
new file mode 100644
index 000000000..a199ba128
--- /dev/null
+++ b/include/task.h
@@ -0,0 +1,33 @@
+#ifndef GUARD_TASK_H
+#define GUARD_TASK_H
+
+#define NUM_TASKS 16
+
+typedef void (*TaskFunc)(u8 taskId);
+
+struct Task
+{
+ TaskFunc func;
+ bool8 isActive;
+ u8 prev;
+ u8 next;
+ u8 priority;
+ s16 data[16];
+};
+
+extern struct Task gTasks[];
+
+void ResetTasks(void);
+u8 CreateTask(TaskFunc func, u8 priority);
+void DestroyTask(u8 taskId);
+void RunTasks(void);
+void TaskDummy(u8 taskId);
+void SetTaskFuncWithFollowupFunc(u8 taskId, TaskFunc func, TaskFunc followupFunc);
+void SwitchTaskToFollowupFunc(u8 taskId);
+bool8 FuncIsActiveTask(TaskFunc func);
+u8 FindTaskIdByFunc(TaskFunc func);
+u8 GetTaskCount(void);
+void SetWordTaskArg(u8 taskId, u8 dataElem, u32 value);
+u32 GetWordTaskArg(u8 taskId, u8 dataElem);
+
+#endif // GUARD_TASK_H
diff --git a/include/text.h b/include/text.h
new file mode 100644
index 000000000..289c7d2b5
--- /dev/null
+++ b/include/text.h
@@ -0,0 +1,255 @@
+#ifndef GUARD_TEXT_H
+#define GUARD_TEXT_H
+
+#define CHAR_SPACE 0x00
+#define CHAR_0 0xA1
+#define CHAR_QUESTION_MARK 0xAC
+#define CHAR_PERIOD 0xAD
+#define CHAR_HYPHEN 0xAE
+#define CHAR_ELLIPSIS 0xB0
+#define CHAR_MALE 0xB5
+#define CHAR_FEMALE 0xB6
+#define CHAR_CURRENCY 0xB7
+#define CHAR_COMMA 0xB8
+#define CHAR_MULT_SIGN 0xB9
+#define CHAR_SLASH 0xBA
+#define CHAR_A 0xBB
+#define CHAR_B 0xBC
+#define CHAR_C 0xBD
+#define CHAR_D 0xBE
+#define CHAR_E 0xBF
+#define CHAR_F 0xC0
+#define CHAR_G 0xC1
+#define CHAR_H 0xC2
+#define CHAR_I 0xC3
+#define CHAR_J 0xC4
+#define CHAR_K 0xC5
+#define CHAR_L 0xC6
+#define CHAR_M 0xC7
+#define CHAR_N 0xC8
+#define CHAR_O 0xC9
+#define CHAR_P 0xCA
+#define CHAR_Q 0xCB
+#define CHAR_R 0xCC
+#define CHAR_S 0xCD
+#define CHAR_T 0xCE
+#define CHAR_U 0xCF
+#define CHAR_V 0xD0
+#define CHAR_W 0xD1
+#define CHAR_X 0xD2
+#define CHAR_Y 0xD3
+#define CHAR_Z 0xD4
+#define CHAR_a 0xD5
+#define CHAR_b 0xD6
+#define CHAR_c 0xD7
+#define CHAR_d 0xD8
+#define CHAR_e 0xD9
+#define CHAR_f 0xDA
+#define CHAR_g 0xDB
+#define CHAR_h 0xDC
+#define CHAR_i 0xDD
+#define CHAR_j 0xDE
+#define CHAR_k 0xDF
+#define CHAR_l 0xE0
+#define CHAR_m 0xE1
+#define CHAR_n 0xE2
+#define CHAR_o 0xE3
+#define CHAR_p 0xE4
+#define CHAR_q 0xE5
+#define CHAR_r 0xE6
+#define CHAR_s 0xE7
+#define CHAR_t 0xE8
+#define CHAR_u 0xE9
+#define CHAR_v 0xEA
+#define CHAR_w 0xEB
+#define CHAR_x 0xEC
+#define CHAR_y 0xED
+#define CHAR_z 0xEE
+#define CHAR_SPECIAL_F7 0xF7
+#define CHAR_SPECIAL_F9 0xF9
+#define CHAR_COLON 0xF0
+#define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog
+#define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog
+#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
+#define PLACEHOLDER_BEGIN 0xFD // string placeholder
+#define CHAR_NEWLINE 0xFE
+#define EOS 0xFF // end of string
+
+#define TEXT_COLOR_TRANSPARENT 0x0
+#define TEXT_COLOR_WHITE 0x1
+#define TEXT_COLOR_DARK_GREY 0x2
+
+// battle placeholders are located in battle_message.h
+
+#define EXT_CTRL_CODE_JPN 0x15
+#define EXT_CTRL_CODE_ENG 0x16
+
+#define NUM_TEXT_PRINTERS 32
+
+#define TEXT_SPEED_FF 0xFF
+
+struct TextPrinterSubStruct
+{
+ u8 font_type:4; // 0x14
+ u8 font_type_upper:1;
+ u8 font_type_5:3;
+ u8 field_1:5;
+ u8 field_1_upmid:2;
+ u8 field_1_top:1;
+ u8 frames_visible_counter;
+ u8 field_3;
+ u8 field_4; // 0x18
+ u8 field_5;
+ u8 field_6;
+ u8 active;
+};
+
+struct TextSubPrinter // TODO: Better name
+{
+ const u8* current_text_offset;
+ u8 windowId;
+ u8 fontId;
+ u8 x;
+ u8 y;
+ u8 currentX; // 0x8
+ u8 currentY;
+ u8 letterSpacing;
+ u8 lineSpacing;
+ u8 fontColor_l:4; // 0xC
+ u8 fontColor_h:4;
+ u8 bgColor:4;
+ u8 shadowColor:4;
+};
+
+struct TextPrinter
+{
+ struct TextSubPrinter subPrinter;
+
+ void (*callback)(struct TextSubPrinter *, u16); // 0x10
+
+ union {
+ struct TextPrinterSubStruct sub;
+
+ u8 sub_fields[8];
+ } sub_union;
+
+ u8 state; // 0x1C
+ u8 text_speed;
+ u8 delayCounter;
+ u8 scrollDistance;
+ u8 minLetterSpacing; // 0x20
+ u8 japanese;
+};
+
+struct FontInfo
+{
+ u16 (*fontFunction)(struct TextPrinter *x);
+ u8 maxLetterWidth;
+ u8 maxLetterHeight;
+ u8 letterSpacing;
+ u8 lineSpacing;
+ u8 fontColor_l:4;
+ u8 fontColor_h:4;
+ u8 bgColor:4;
+ u8 shadowColor:4;
+};
+
+extern const struct FontInfo *gFonts;
+
+struct GlyphWidthFunc
+{
+ u32 font_id;
+ u32 (*func)(u16 glyphId, bool32 isJapanese);
+};
+
+struct KeypadIcon
+{
+ u16 tile_offset;
+ u8 width;
+ u8 height;
+};
+
+typedef struct {
+ u8 flag_0:1;
+ u8 flag_1:1;
+ u8 flag_2:1;
+ u8 flag_3:1;
+} TextFlags;
+
+extern TextFlags gTextFlags;
+
+struct __attribute__((packed)) TextColor
+{
+ u8 fgColor;
+ u8 bgColor;
+ u8 shadowColor;
+};
+
+extern u8 gStringVar1[];
+extern u8 gStringVar2[];
+extern u8 gStringVar3[];
+extern u8 gStringVar4[];
+
+u8 gUnknown_03002F84;
+u8 gUnknown_03002F90[0x20];
+u8 gUnknown_03002FB0[0x20];
+u8 gUnknown_03002FD0[0x20];
+u8 gUnknown_03002FF0[0x20];
+u8 gGlyphDimensions[0x2];
+
+void SetFontsPointer(const struct FontInfo *fonts);
+void DeactivateAllTextPrinters(void);
+u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16));
+bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16));
+void RunTextPrinters(void);
+bool16 IsTextPrinterActive(u8 id);
+u32 RenderFont(struct TextPrinter *textPrinter);
+void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor);
+void SaveTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
+void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
+void DecompressGlyphTile(const u16 *src, u16 *dest);
+u8 GetLastTextColor(u8 colorType);
+void CopyGlyphToWindow(struct TextPrinter *x);
+void ClearTextSpan(struct TextPrinter *textPrinter, u32 width);
+
+u16 Font0Func(struct TextPrinter *textPrinter);
+u16 Font1Func(struct TextPrinter *textPrinter);
+u16 Font2Func(struct TextPrinter *textPrinter);
+u16 Font3Func(struct TextPrinter *textPrinter);
+u16 Font4Func(struct TextPrinter *textPrinter);
+u16 Font5Func(struct TextPrinter *textPrinter);
+u16 Font7Func(struct TextPrinter *textPrinter);
+u16 Font8Func(struct TextPrinter *textPrinter);
+
+void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter);
+void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter);
+void TextPrinterClearDownArrow(struct TextPrinter *textPrinter);
+bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter);
+bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter);
+bool16 TextPrinterWait(struct TextPrinter *textPrinter);
+void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex);
+u16 RenderText(struct TextPrinter *textPrinter);
+u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing);
+u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32);
+u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing);
+u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str);
+u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y);
+u8 GetKeypadIconTileOffset(u8 keypadIconId);
+u8 GetKeypadIconWidth(u8 keypadIconId);
+u8 GetKeypadIconHeight(u8 keypadIconId);
+void SetDefaultFontsPointer(void);
+u8 GetFontAttribute(u8 fontId, u8 attributeId);
+u8 GetMenuCursorDimensionByFont(u8 fontId, u8 whichDimension);
+void DecompressGlyphFont0(u16 glyphId, bool32 isJapanese);
+u32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese);
+void DecompressGlyphFont7(u16 glyphId, bool32 isJapanese);
+u32 GetGlyphWidthFont7(u16 glyphId, bool32 isJapanese);
+void DecompressGlyphFont8(u16 glyphId, bool32 isJapanese);
+u32 GetGlyphWidthFont8(u16 glyphId, bool32 isJapanese);
+void DecompressGlyphFont2(u16 glyphId, bool32 isJapanese);
+u32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese);
+void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese);
+u32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese);
+void DecompressGlyphFont9(u16 glyphId);
+
+#endif // GUARD_TEXT_H
diff --git a/include/text_window.h b/include/text_window.h
new file mode 100644
index 000000000..da3fb301e
--- /dev/null
+++ b/include/text_window.h
@@ -0,0 +1,22 @@
+#ifndef GUARD_TEXT_WINDOW_H
+#define GUARD_TEXT_WINDOW_H
+
+struct TilesPal
+{
+ u32* tiles;
+ u16* pal;
+};
+
+const struct TilesPal* sub_8098758(u8 id);
+void copy_textbox_border_tile_patterns_to_vram(u8 windowId, u16 destOffset, u8 palOffset);
+void sub_809882C(u8 windowId, u16 destOffset, u8 palOffset);
+void sub_80987D4(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset);
+void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset);
+void sub_8098858(u8 windowId, u16 tileNum, u8 palNum);
+void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum);
+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);
+
+#endif // GUARD_TEXT_WINDOW_H
diff --git a/include/tilesets.h b/include/tilesets.h
new file mode 100644
index 000000000..70609c046
--- /dev/null
+++ b/include/tilesets.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_tilesets_H
+#define GUARD_tilesets_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+extern struct Tileset *gTilesetPointer_SecretBase;
+extern struct Tileset *gTilesetPointer_SecretBaseRedCave;
+
+#endif //GUARD_tilesets_H
diff --git a/include/trainer_classes.h b/include/trainer_classes.h
new file mode 100644
index 000000000..e5e26b359
--- /dev/null
+++ b/include/trainer_classes.h
@@ -0,0 +1,74 @@
+#ifndef GUARD_TRAINER_CLASSES_H
+#define GUARD_TRAINER_CLASSES_H
+
+enum
+{
+ CLASS_PKMN_TRAINER0, // 0
+ CLASS_PKMN_TRAINER1, // 1
+ CLASS_HIKER, // 2
+ CLASS_TEAM_AQUA, // 3
+ CLASS_PKMN_BREEDER, // 4
+ CLASS_COOLTRAINER, // 5
+ CLASS_BIRDKEEPER, // 6
+ CLASS_COLLECTOR, // 7
+ CLASS_SWIMMER_MALE, // 8
+ CLASS_TEAM_MAGMA, // 9
+ CLASS_EXPERT, // 0xA
+ CLASS_AQUA_ADMIN, // 0xB
+ CLASS_BLACK_BELT, // 0xC
+ CLASS_AQUA_LEADER, // 0xD
+ CLASS_HEX_MANIAC, // 0xE
+ CLASS_AROMA_LADY, // 0xF
+ CLASS_RUIN_MANIAC, // 0x10
+ CLASS_INTERVIEWER, // 0x11
+ CLASS_TUBER_FEMALE, // 0x12
+ CLASS_TUBER_MALE, // 0x13
+ CLASS_LADY, // 0x14
+ CLASS_BEAUTY, // 0x15
+ CLASS_RICH_BOY, // 0x16
+ CLASS_POKEMANIAC, // 0x17
+ CLASS_GUITARIST, // 0x18
+ CLASS_KINDLER, // 0x19
+ CLASS_CAMPER, // 0x1A
+ CLASS_PICKNICKER, // 0x1B
+ CLASS_BUG_MANIAC, // 0x1C
+ CLASS_PSYCHIC, // 0x1D
+ CLASS_GENTLEMAN, // 0x1E
+ CLASS_ELITE_FOUR, // 0x1F
+ CLASS_LEADER, // 0x20
+ CLASS_SCHOOL_KID, // 0x21
+ CLASS_SCHOOL_SR_JR, // 0x22
+ CLASS_WINSTRATE, // 0x23
+ CLASS_POKE_FAN, // 0x24
+ CLASS_YOUNGSTER, // 0x25
+ CLASS_CHAMPION, // 0x26
+ CLASS_FISHERMAN, // 0x27
+ CLASS_TRIATHLETE, // 0x28
+ CLASS_DRAGON_TAMER, // 0x29
+ CLASS_NINJA_BOY, // 0x2A
+ CLASS_BATTLE_GIRL, // 0x2B
+ CLASS_PARASOL_LADY, // 0x2C
+ CLASS_SWIMMER_FEMALE, // 0x2D
+ CLASS_TWINS, // 0x2E
+ CLASS_SAILOR, // 0x2F
+ CLASS_COOLTRAINER_2, // 0x30
+ CLASS_MAGMA_ADMIN, // 0x31
+ CLASS_PKMN_TRAINER_RIVAL, // 0x32
+ CLASS_BUG_CATCHER, // 0x33
+ CLASS_PKMN_RANGER, // 0x34
+ CLASS_MAGMA_LEADER, // 0x35
+ CLASS_LASS, // 0x36
+ CLASS_YOUNG_COUPLE, // 0x37
+ CLASS_OLD_COUPLE, // 0x38
+ CLASS_SIS_AND_BRO, // 0x39
+ CLASS_SALON_MAIDEN, // 0x3A
+ CLASS_DOME_ACE, // 0x3B
+ CLASS_PALACE_MAVEN, // 0x3C
+ CLASS_ARENA_TYCOON, // 0x3D
+ CLASS_FACTORY_HEAD, // 0x3E
+ CLASS_PIKE_QUEEN, // 0x3F
+ CLASS_PYRAMID_KING, // 0x40
+ CLASS_PKMN_TRAINER2, // 0x41
+};
+
+#endif // GUARD_TRAINER_CLASSES_H
diff --git a/include/trainer_front_sprites.h b/include/trainer_front_sprites.h
new file mode 100644
index 000000000..3259bec88
--- /dev/null
+++ b/include/trainer_front_sprites.h
@@ -0,0 +1,101 @@
+#ifndef GUARD_TRAINER_FRONT_SPRITES_H
+#define GUARD_TRAINER_FRONT_SPRITES_H
+
+enum
+{
+ TRAINER_FRONT_PIC_HIKER,
+ TRAINER_FRONT_PIC_AQUA_GRUNT_M,
+ TRAINER_FRONT_PIC_PKMN_BREEDER_F,
+ TRAINER_FRONT_PIC_COOLTRAINER_M,
+ TRAINER_FRONT_PIC_BIRD_KEEPER,
+ TRAINER_FRONT_PIC_COLLECTOR,
+ TRAINER_FRONT_PIC_AQUA_GRUNT_F,
+ TRAINER_FRONT_PIC_SWIMMER_M,
+ TRAINER_FRONT_PIC_MAGMA_GRUNT_M,
+ TRAINER_FRONT_PIC_EXPERT_M,
+ TRAINER_FRONT_PIC_AQUA_ADMIN_M,
+ TRAINER_FRONT_PIC_BLACK_BELT,
+ TRAINER_FRONT_PIC_AQUA_ADMIN_F,
+ TRAINER_FRONT_PIC_AQUA_LEADER,
+ TRAINER_FRONT_PIC_HEX_MANIAC,
+ TRAINER_FRONT_PIC_AROMA_LADY,
+ TRAINER_FRONT_PIC_RUIN_MANIAC,
+ TRAINER_FRONT_PIC_INTERVIEWER,
+ TRAINER_FRONT_PIC_TUBER_F,
+ TRAINER_FRONT_PIC_TUBER_M,
+ TRAINER_FRONT_PIC_COOLTRAINER_F,
+ TRAINER_FRONT_PIC_LADY,
+ TRAINER_FRONT_PIC_BEAUTY,
+ TRAINER_FRONT_PIC_RICH_BOY,
+ TRAINER_FRONT_PIC_EXPERT_F,
+ TRAINER_FRONT_PIC_POKE_MANIAC,
+ TRAINER_FRONT_PIC_MAGMA_GRUNT_F,
+ TRAINER_FRONT_PIC_GUITARIST,
+ TRAINER_FRONT_PIC_KINDLER,
+ TRAINER_FRONT_PIC_CAMPER,
+ TRAINER_FRONT_PIC_PICNICKER,
+ TRAINER_FRONT_PIC_BUG_MANIAC,
+ TRAINER_FRONT_PIC_PKMN_BREEDER_M,
+ TRAINER_FRONT_PIC_PSYCHIC_M,
+ TRAINER_FRONT_PIC_PSYCHIC_F,
+ TRAINER_FRONT_PIC_GENTLEMAN,
+ TRAINER_FRONT_PIC_SIDNEY,
+ TRAINER_FRONT_PIC_PHOEBE,
+ TRAINER_FRONT_PIC_GLACIA,
+ TRAINER_FRONT_PIC_DRAKE,
+ TRAINER_FRONT_PIC_ROXANNE,
+ TRAINER_FRONT_PIC_BRAWLY,
+ TRAINER_FRONT_PIC_WATTSON,
+ TRAINER_FRONT_PIC_FLANNERY,
+ TRAINER_FRONT_PIC_NORMAN,
+ TRAINER_FRONT_PIC_WINONA,
+ TRAINER_FRONT_PIC_TATE_LIZA,
+ TRAINER_FRONT_PIC_JUAN,
+ TRAINER_FRONT_PIC_SCHOOL_KID_M,
+ TRAINER_FRONT_PIC_SCHOOL_KID_F,
+ TRAINER_FRONT_PIC_SR_JR,
+ TRAINER_FRONT_PIC_POKÉFAN_M,
+ TRAINER_FRONT_PIC_POKÉFAN_F,
+ TRAINER_FRONT_PIC_YOUNGSTER,
+ TRAINER_FRONT_PIC_WALLACE,
+ TRAINER_FRONT_PIC_FISHERMAN,
+ TRAINER_FRONT_PIC_TRIATHLETE_BIKER_M,
+ TRAINER_FRONT_PIC_TRIATHLETE_BIKER_F,
+ TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_M,
+ TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_F,
+ TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_M,
+ TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_F,
+ TRAINER_FRONT_PIC_DRAGON_TAMER,
+ TRAINER_FRONT_PIC_NINJA_BOY,
+ TRAINER_FRONT_PIC_BATTLE_GIRL,
+ TRAINER_FRONT_PIC_PARASOL_LADY,
+ TRAINER_FRONT_PIC_SWIMMER_F,
+ TRAINER_FRONT_PIC_TWINS,
+ TRAINER_FRONT_PIC_SAILOR,
+ TRAINER_FRONT_PIC_MAGMA_ADMIN_M,
+ TRAINER_FRONT_PIC_WALLY,
+ TRAINER_FRONT_PIC_BRENDAN_E,
+ TRAINER_FRONT_PIC_MAY_E,
+ TRAINER_FRONT_PIC_BUG_CATCHER,
+ TRAINER_FRONT_PIC_PKMN_RANGER_M,
+ TRAINER_FRONT_PIC_PKMN_RANGER_F,
+ TRAINER_FRONT_PIC_MAGMA_LEADER,
+ TRAINER_FRONT_PIC_LASS,
+ TRAINER_FRONT_PIC_YOUNG_COUPLE,
+ TRAINER_FRONT_PIC_OLD_COUPLE,
+ TRAINER_FRONT_PIC_SIS_AND_BRO,
+ TRAINER_FRONT_PIC_STEVEN,
+ TRAINER_FRONT_PIC_ANABEL,
+ TRAINER_FRONT_PIC_TUCKER,
+ TRAINER_FRONT_PIC_SPENSER,
+ TRAINER_FRONT_PIC_GRETA,
+ TRAINER_FRONT_PIC_NOLAND,
+ TRAINER_FRONT_PIC_LUCY,
+ TRAINER_FRONT_PIC_BRANDON,
+ TRAINER_FRONT_PIC_RED,
+ TRAINER_FRONT_PIC_LEAF,
+ TRAINER_FRONT_PIC_BRENDAN_RS,
+ TRAINER_FRONT_PIC_MAY_RS
+};
+
+#endif // GUARD_TRAINER_FRONT_SPRITES_H
diff --git a/include/trainer_ids.h b/include/trainer_ids.h
new file mode 100644
index 000000000..65c80187f
--- /dev/null
+++ b/include/trainer_ids.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_TRAINER_IDS_H
+#define GUARD_TRAINER_IDS_H
+
+#define NO_OF_TRAINERS 854
+#define TRAINER_ID_STEVEN 804
+
+#endif // GUARD_TRAINER_IDS_H
diff --git a/include/trainer_see.h b/include/trainer_see.h
new file mode 100644
index 000000000..ab035d9f8
--- /dev/null
+++ b/include/trainer_see.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_TRAINER_SEE_H
+#define GUARD_TRAINER_SEE_H
+
+void sub_80B4578(struct MapObject *);
+u8 sub_80B47BC(void);
+void sub_8155D78(struct MapObject *);
+
+#endif //GUARD_TRAINER_SEE_H
diff --git a/include/trig.h b/include/trig.h
new file mode 100644
index 000000000..a2f98a3e6
--- /dev/null
+++ b/include/trig.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_TRIG_H
+#define GUARD_TRIG_H
+
+extern const s16 gSineTable[];
+
+s16 Sin(s16 index, s16 amplitude);
+s16 Cos(s16 index, s16 amplitude);
+s16 Sin2(u16 angle);
+s16 Cos2(u16 angle);
+
+#endif // GUARD_TRIG_H
diff --git a/include/unk_text_util.h b/include/unk_text_util.h
new file mode 100644
index 000000000..72243a90e
--- /dev/null
+++ b/include/unk_text_util.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_UNK_TEXT_UTIL_H
+#define GUARD_UNK_TEXT_UTIL_H
+
+void UnkTextUtil_Reset(void);
+void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr);
+u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src);
+const u8 *UnkTextUtil_GetPtrI(u8 idx);
+
+#endif //GUARD_UNK_TEXT_UTIL_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
new file mode 100644
index 000000000..9c6968c30
--- /dev/null
+++ b/include/unknown_task.h
@@ -0,0 +1,22 @@
+#ifndef GUARD_unknown_task_H
+#define GUARD_unknown_task_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/util.h b/include/util.h
new file mode 100644
index 000000000..63887b13f
--- /dev/null
+++ b/include/util.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_UTIL_H
+#define GUARD_UTIL_H
+
+#include "sprite.h"
+
+extern const u8 gMiscBlank_Gfx[]; // unused in Emerald
+extern const u32 gBitTable[];
+
+u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *));
+void StoreWordInTwoHalfwords(u16 *, u32);
+void LoadWordFromTwoHalfwords(u16 *, u32 *);
+int CountTrailingZeroBits(u32 value);
+u16 CalcCRC16(u8 *data, s32 length);
+u16 CalcCRC16WithTable(u8 *data, u32 length);
+u32 CalcByteArraySum(const u8* data, u32 length);
+
+#endif // GUARD_UTIL_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
new file mode 100644
index 000000000..55bbaa7dd
--- /dev/null
+++ b/include/wild_encounter.h
@@ -0,0 +1,44 @@
+#ifndef GUARD_WILD_ENCOUNTER_H
+#define GUARD_WILD_ENCOUNTER_H
+
+#define LAND_WILD_COUNT 12
+#define WATER_WILD_COUNT 5
+#define ROCK_WILD_COUNT 5
+#define FISH_WILD_COUNT 10
+
+struct WildPokemon
+{
+ u8 minLevel;
+ u8 maxLevel;
+ u16 species;
+};
+
+struct WildPokemonInfo
+{
+ u8 encounterRate;
+ const struct WildPokemon *wildPokemon;
+};
+
+struct WildPokemonHeader
+{
+ u8 mapGroup;
+ u8 mapNum;
+ const struct WildPokemonInfo *landMonsInfo;
+ const struct WildPokemonInfo *waterMonsInfo;
+ const struct WildPokemonInfo *rockSmashMonsInfo;
+ const struct WildPokemonInfo *fishingMonsInfo;
+};
+
+extern const struct WildPokemonHeader gWildMonHeaders[];
+
+void DisableWildEncounters(bool8 disabled);
+bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavior);
+void ScrSpecial_RockSmashWildEncounter(void);
+bool8 SweetScentWildEncounter(void);
+bool8 DoesCurrentMapHaveFishingMons(void);
+void FishingWildEncounter(u8 rod);
+u16 GetLocalWildMon(bool8 *isWaterMon);
+u16 GetLocalWaterMon(void);
+bool8 UpdateRepelCounter(void);
+
+#endif // GUARD_WILD_ENCOUNTER_H
diff --git a/include/window.h b/include/window.h
new file mode 100644
index 000000000..b630cd316
--- /dev/null
+++ b/include/window.h
@@ -0,0 +1,72 @@
+#ifndef GUARD_WINDOW_H
+#define GUARD_WINDOW_H
+
+enum
+{
+ WINDOW_PRIORITY,
+ WINDOW_TILEMAP_LEFT,
+ WINDOW_TILEMAP_TOP,
+ WINDOW_WIDTH,
+ WINDOW_HEIGHT,
+ WINDOW_PALETTE_NUM,
+ WINDOW_BASE_BLOCK,
+ WINDOW_TILE_DATA
+};
+
+struct WindowTemplate
+{
+ u8 priority;
+ u8 tilemapLeft;
+ u8 tilemapTop;
+ u8 width;
+ u8 height;
+ u8 paletteNum;
+ u16 baseBlock;
+};
+
+#define DUMMY_WIN_TEMPLATE \
+{ \
+ 0xFF, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+}
+
+struct Window
+{
+ struct WindowTemplate window;
+ u8 *tileData;
+};
+
+bool16 InitWindows(const struct WindowTemplate *templates);
+u16 AddWindow(const struct WindowTemplate *template);
+int AddWindowWithoutTileMap(const struct WindowTemplate *template);
+void RemoveWindow(u8 windowId);
+void FreeAllWindowBuffers(void);
+void CopyWindowToVram(u8 windowId, u8 mode);
+void CopyWindowRectToVram(u32 windowId, u32 mode, u32 x, u32 y, u32 w, u32 h);
+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 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);
+void FillWindowPixelBuffer(u8 windowId, u8 fillValue);
+void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue);
+void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8));
+bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value);
+u32 GetWindowAttribute(u8 windowId, u8 attributeId);
+u16 AddWindow8Bit(struct WindowTemplate *template);
+u16 AddWindow8Bit(struct WindowTemplate *template);
+void FillWindowPixelRect8Bit(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
+void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight, u8 paletteNum);
+void CopyWindowToVram8Bit(u8 windowId, u8 mode);
+
+extern struct Window gWindows[];
+
+#endif // GUARD_WINDOW_H
diff --git a/ld_script.txt b/ld_script.txt
index e78e1120f..7968c5b4a 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -82,7 +82,7 @@ SECTIONS {
SUBALIGN(4)
{
asm/crt0.o(.text);
- asm/main.o(.text);
+ src/main.o(.text);
asm/gpu_regs.o(.text);
asm/dma3_manager.o(.text);
asm/bg.o(.text);
@@ -391,6 +391,7 @@ SECTIONS {
.rodata :
SUBALIGN(4)
{
+ src/main.o(.rodata);
data/data.o(.rodata);
src/m4a_tables.o(.rodata);
data/sound_data.o(.rodata);
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 000000000..72cb976a1
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,454 @@
+#include "global.h"
+#include "main.h"
+#include "m4a.h"
+#include "random.h"
+#include "dma3.h"
+#include "gba/flash_internal.h"
+#include "battle.h"
+
+extern u16 GetGpuReg(u8);
+extern void SetGpuReg(u8, u16);
+extern void RFUVSync(void);
+extern void LinkVSync(void);
+extern void sub_80FCF34(void);
+extern void LinkVSync(void);
+extern void InitGpuRegManager(void);
+extern void InitRFU(void);
+extern void CheckForFlashMemory(void);
+extern void InitMapMusic(void);
+extern void ResetBgs(void);
+extern void SetDefaultFontsPointer(void);
+extern void InitHeap(void *heapStart, u32 heapSize); // malloc.h
+extern void rfu_REQ_stopMode(void);
+extern void rfu_waitREQComplete(void);
+extern bool32 sub_80582E0(void);
+extern bool32 sub_8058274(void);
+extern void ClearSpriteCopyRequests(void);
+extern void PlayTimeCounter_Update(void);
+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 sub_80F50F4(void);
+extern bool32 sub_80F5118(void);
+extern bool8 sub_813B870(void);
+
+extern struct SoundInfo gSoundInfo;
+extern u32 gFlashMemoryPresent;
+extern u32 IntrMain[];
+extern u8 gHeap[];
+extern struct SaveBlock1 gSaveBlock1;
+extern struct SaveBlock2 gSaveBlock2;
+extern struct PokemonStorage gPokemonStorage;
+extern u32 gBattleTypeFlags;
+extern u8 gUnknown_03002748;
+extern u32 *gUnknown_0203CF5C;
+
+void Timer3Intr(void);
+bool8 HandleLinkConnection(void);
+void c2_copyright_1(void);
+
+static void VBlankIntr(void);
+static void HBlankIntr(void);
+static void VCountIntr(void);
+static void SerialIntr(void);
+static void IntrDummy(void);
+
+const u8 gGameVersion = VERSION_FIRE_RED;
+
+const u8 gGameLanguage = GAME_LANGUAGE;
+
+const char BuildDateTime[] = "2004 04 26 11:20";
+
+const IntrFunc gIntrTableTemplate[] =
+{
+ VCountIntr, // V-count interrupt
+ SerialIntr, // Serial interrupt
+ Timer3Intr, // Timer 3 interrupt
+ HBlankIntr, // H-blank interrupt
+ VBlankIntr, // V-blank interrupt
+ IntrDummy, // Timer 0 interrupt
+ IntrDummy, // Timer 1 interrupt
+ IntrDummy, // Timer 2 interrupt
+ IntrDummy, // DMA 0 interrupt
+ IntrDummy, // DMA 1 interrupt
+ IntrDummy, // DMA 2 interrupt
+ IntrDummy, // DMA 3 interrupt
+ IntrDummy, // Key interrupt
+ IntrDummy, // Game Pak interrupt
+};
+
+#define INTR_COUNT ((int)(sizeof(gIntrTableTemplate)/sizeof(IntrFunc)))
+
+extern u16 gKeyRepeatStartDelay;
+extern u8 gLinkTransferringData;
+extern struct Main gMain;
+extern u16 gKeyRepeatContinueDelay;
+extern u8 gSoftResetDisabled;
+extern IntrFunc gIntrTable[INTR_COUNT];
+extern bool8 gLinkVSyncDisabled;
+extern u32 IntrMain_Buffer[0x200];
+extern u8 gPcmDmaCounter;
+extern u8 gUnknown_3003578;
+extern u8 gUnknown_3003D80;
+extern u8 gUnknown_3003D84;
+
+static IntrFunc * const sTimerIntrFunc = gIntrTable + 0x7;
+
+extern u16 gTrainerId;
+extern bool8 gUnknown_3005ECC;
+extern bool8 gUnknown_3003F3C;
+extern bool8 gUnknown_3005E88;
+
+EWRAM_DATA void (**gFlashTimerIntrFunc)(void) = NULL;
+
+static void UpdateLinkAndCallCallbacks(void);
+static void InitMainCallbacks(void);
+static void CallCallbacks(void);
+static void ReadKeys(void);
+void InitIntrHandlers(void);
+static void WaitForVBlank(void);
+void EnableVCountIntrAtLine150(void);
+
+#define B_START_SELECT (B_BUTTON | START_BUTTON | SELECT_BUTTON)
+
+void AgbMain()
+{
+ RegisterRamReset(RESET_ALL);
+ *(vu16 *)BG_PLTT = 0x7FFF;
+ InitGpuRegManager();
+ REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3;
+ InitKeys();
+ InitIntrHandlers();
+ m4aSoundInit();
+ EnableVCountIntrAtLine150();
+ InitRFU();
+ CheckForFlashMemory();
+ InitMainCallbacks();
+ InitMapMusic();
+ ClearDma3Requests();
+ ResetBgs();
+ InitHeap(gHeap, 0x1C000);
+ SetDefaultFontsPointer();
+
+ gSoftResetDisabled = FALSE;
+ gUnknown_3005ECC = FALSE;
+
+ sub_80F50F4();
+
+ AGBPrintInit();
+
+#if REVISION == 1
+ if (gFlashMemoryPresent != TRUE)
+ SetMainCallback2(NULL);
+#endif
+
+ gLinkTransferringData = FALSE;
+
+ for (;;)
+ {
+ ReadKeys();
+
+ if (gSoftResetDisabled == FALSE
+ && (gMain.heldKeysRaw & A_BUTTON)
+ && (gMain.heldKeysRaw & B_START_SELECT) == B_START_SELECT)
+ {
+ rfu_REQ_stopMode();
+ rfu_waitREQComplete();
+ DoSoftReset();
+ }
+
+ if (sub_80582E0() == 1)
+ {
+ gLinkTransferringData = TRUE;
+ UpdateLinkAndCallCallbacks();
+ gLinkTransferringData = FALSE;
+ }
+ else
+ {
+ gLinkTransferringData = FALSE;
+ UpdateLinkAndCallCallbacks();
+
+ if (sub_8058274() == 1)
+ {
+ gMain.newKeys = 0;
+ ClearSpriteCopyRequests();
+ gLinkTransferringData = TRUE;
+ UpdateLinkAndCallCallbacks();
+ gLinkTransferringData = FALSE;
+ }
+ }
+
+ PlayTimeCounter_Update();
+ MapMusicMain();
+ WaitForVBlank();
+ }
+}
+
+static void UpdateLinkAndCallCallbacks(void)
+{
+ if (!HandleLinkConnection())
+ CallCallbacks();
+}
+
+static void InitMainCallbacks(void)
+{
+ gMain.vblankCounter1 = 0;
+ gMain.vblankCounter2 = 0;
+ gMain.callback1 = NULL;
+ SetMainCallback2(c2_copyright_1);
+ gSaveBlock2Ptr = &gSaveBlock2;
+ gSaveBlock1Ptr = &gSaveBlock1;
+ gSaveBlock2.encryptionKey = 0;
+ gUnknown_3005E88 = FALSE;
+}
+
+static void CallCallbacks(void)
+{
+ if (!sub_80F5118() && !sub_813B870())
+ {
+ if (gMain.callback1)
+ gMain.callback1();
+
+ if (gMain.callback2)
+ gMain.callback2();
+ }
+}
+
+void SetMainCallback2(MainCallback callback)
+{
+ gMain.callback2 = callback;
+ gMain.state = 0;
+}
+
+void StartTimer1(void)
+{
+ REG_TM1CNT_H = 0x80;
+}
+
+void SeedRngAndSetTrainerId(void)
+{
+ u16 val = REG_TM1CNT_L;
+ SeedRng(val);
+ REG_TM1CNT_H = 0;
+ gTrainerId = val;
+}
+
+u16 GetGeneratedTrainerIdLower(void)
+{
+ return gTrainerId;
+}
+
+void EnableVCountIntrAtLine150(void)
+{
+ u16 gpuReg = (GetGpuReg(REG_OFFSET_DISPSTAT) & 0xFF) | (150 << 8);
+ SetGpuReg(REG_OFFSET_DISPSTAT, gpuReg | DISPSTAT_VCOUNT_INTR);
+ EnableInterrupts(INTR_FLAG_VCOUNT);
+}
+
+void InitKeys(void)
+{
+ gKeyRepeatContinueDelay = 5;
+ gKeyRepeatStartDelay = 40;
+
+ gMain.heldKeys = 0;
+ gMain.newKeys = 0;
+ gMain.newAndRepeatedKeys = 0;
+ gMain.heldKeysRaw = 0;
+ gMain.newKeysRaw = 0;
+}
+
+static void ReadKeys(void)
+{
+ u16 keyInput = REG_KEYINPUT ^ KEYS_MASK;
+ gMain.newKeysRaw = keyInput & ~gMain.heldKeysRaw;
+ gMain.newKeys = gMain.newKeysRaw;
+ gMain.newAndRepeatedKeys = gMain.newKeysRaw;
+
+ // BUG: Key repeat won't work when pressing L using L=A button mode
+ // because it compares the raw key input with the remapped held keys.
+ // Note that newAndRepeatedKeys is never remapped either.
+
+ if (keyInput != 0 && gMain.heldKeys == keyInput)
+ {
+ gMain.keyRepeatCounter--;
+
+ if (gMain.keyRepeatCounter == 0)
+ {
+ gMain.newAndRepeatedKeys = keyInput;
+ gMain.keyRepeatCounter = gKeyRepeatContinueDelay;
+ }
+ }
+ else
+ {
+ // If there is no input or the input has changed, reset the counter.
+ gMain.keyRepeatCounter = gKeyRepeatStartDelay;
+ }
+
+ gMain.heldKeysRaw = keyInput;
+ gMain.heldKeys = gMain.heldKeysRaw;
+
+ // Remap L to A if the L=A option is enabled.
+ if (gSaveBlock2Ptr->optionsButtonMode == 2)
+ {
+ if (gMain.newKeys & L_BUTTON)
+ gMain.newKeys |= A_BUTTON;
+
+ if (gMain.heldKeys & L_BUTTON)
+ gMain.heldKeys |= A_BUTTON;
+ }
+
+ if (gMain.newKeys & gMain.watchedKeysMask)
+ gMain.watchedKeysPressed = TRUE;
+}
+
+void InitIntrHandlers(void)
+{
+ int i;
+
+ for (i = 0; i < INTR_COUNT; i++)
+ gIntrTable[i] = gIntrTableTemplate[i];
+
+ DmaCopy32(3, IntrMain, IntrMain_Buffer, sizeof(IntrMain_Buffer));
+
+ INTR_VECTOR = IntrMain_Buffer;
+
+ SetVBlankCallback(NULL);
+ SetHBlankCallback(NULL);
+ SetSerialCallback(NULL);
+
+ REG_IME = 1;
+
+ EnableInterrupts(0x1);
+}
+
+void SetVBlankCallback(IntrCallback callback)
+{
+ gMain.vblankCallback = callback;
+}
+
+void SetHBlankCallback(IntrCallback callback)
+{
+ gMain.hblankCallback = callback;
+}
+
+void SetVCountCallback(IntrCallback callback)
+{
+ gMain.vcountCallback = callback;
+}
+
+void SetSerialCallback(IntrCallback callback)
+{
+ gMain.serialCallback = callback;
+}
+
+extern void CopyBufferedValuesToGpuRegs(void);
+extern void ProcessDma3Requests(void);
+
+static void VBlankIntr(void)
+{
+ if (gUnknown_3003F3C)
+ RFUVSync();
+ else if (!gLinkVSyncDisabled)
+ LinkVSync();
+
+ if (gMain.vblankCounter1)
+ (*gMain.vblankCounter1)++;
+
+ if (gMain.vblankCallback)
+ gMain.vblankCallback();
+
+ gMain.vblankCounter2++;
+
+ CopyBufferedValuesToGpuRegs();
+ ProcessDma3Requests();
+
+ gPcmDmaCounter = gSoundInfo.pcmDmaCounter;
+
+ gUnknown_3003D84 = REG_VCOUNT;
+ m4aSoundMain();
+ gUnknown_3003578 = REG_VCOUNT;
+
+ sub_800DD28();
+ Random();
+ sub_80FCF34();
+
+ INTR_CHECK |= INTR_FLAG_VBLANK;
+ gMain.intrCheck |= INTR_FLAG_VBLANK;
+}
+
+void InitFlashTimer(void)
+{
+ IntrFunc **func = (IntrFunc **)&sTimerIntrFunc;
+ SetFlashTimerIntr(2, *func);
+}
+
+static void HBlankIntr(void)
+{
+ if (gMain.hblankCallback)
+ gMain.hblankCallback();
+
+ INTR_CHECK |= INTR_FLAG_HBLANK;
+ gMain.intrCheck |= INTR_FLAG_HBLANK;
+}
+
+static void VCountIntr(void)
+{
+ gUnknown_3003D80 = REG_VCOUNT;
+ m4aSoundVSync();
+ INTR_CHECK |= INTR_FLAG_VCOUNT;
+ gMain.intrCheck |= INTR_FLAG_VCOUNT;
+}
+
+static void SerialIntr(void)
+{
+ if (gMain.serialCallback)
+ gMain.serialCallback();
+
+ INTR_CHECK |= INTR_FLAG_SERIAL;
+ gMain.intrCheck |= INTR_FLAG_SERIAL;
+}
+
+void RestoreSerialTimer3IntrHandlers(void)
+{
+ gIntrTable[1] = SerialIntr;
+ gIntrTable[2] = Timer3Intr;
+}
+
+static void IntrDummy(void)
+{}
+
+static void WaitForVBlank(void)
+{
+ gMain.intrCheck &= ~INTR_FLAG_VBLANK;
+
+ while (!(gMain.intrCheck & INTR_FLAG_VBLANK))
+ ;
+}
+
+void SetVBlankCounter1Ptr(u32 *ptr)
+{
+ gMain.vblankCounter1 = ptr;
+}
+
+void DisableVBlankCounter1(void)
+{
+ gMain.vblankCounter1 = NULL;
+}
+
+void DoSoftReset(void)
+{
+ REG_IME = 0;
+ m4aSoundVSyncOff();
+ remove_some_task();
+ DmaStop(1);
+ DmaStop(2);
+ DmaStop(3);
+ SoftReset(RESET_ALL & ~RESET_SIO_REGS);
+}
+
+void ClearPokemonCrySongs(void)
+{
+ CpuFill16(0, gPokemonCrySongs, MAX_POKEMON_CRIES * sizeof(struct PokemonCrySong));
+}
diff --git a/sym_common.txt b/sym_common.txt
index 2235b30fb..817312e2a 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -1,40 +1,28 @@
-gUnknown_30030E0: @ 30030E0
+gKeyRepeatStartDelay: @ 30030E0
.space 0x4
-gUnknown_30030E4: @ 30030E4
+gLinkTransferringData: @ 30030E4
.space 0xC
-gUnknown_30030F0: @ 30030F0
- .space 0x2C
+gMain: @ 30030F0
+ .space 0x43C
-gUnknown_300311C: @ 300311C
- .space 0xC
-
-gUnknown_3003128: @ 3003128
- .space 0x400
-
-gUnknown_3003528: @ 3003528
+gKeyRepeatContinueDelay: @ 300352C
.space 0x4
-gUnknown_300352C: @ 300352C
- .space 0x4
-
-gUnknown_3003530: @ 3003530
+gSoftResetDisabled: @ 3003530
.space 0x10
gIntrTable: @ 3003540
- .space 0x4
-
-gUnknown_3003544: @ 3003544
- .space 0x34
+ .space 0x38
gUnknown_3003578: @ 3003578
.space 0x4
-gUnknown_300357C: @ 300357C
+gLinkVSyncDisabled: @ 300357C
.space 0x4
-gUnknown_3003580: @ 3003580
+IntrMain_Buffer: @ 3003580
.space 0x800
gUnknown_3003D80: @ 3003D80
@@ -43,7 +31,7 @@ gUnknown_3003D80: @ 3003D80
gUnknown_3003D84: @ 3003D84
.space 0x4
-gUnknown_3003D88: @ 3003D88
+gPcmDmaCounter: @ 3003D88
.space 0x4
gUnknown_3003D8C: @ 3003D8C
@@ -214,10 +202,10 @@ gUnknown_3005000: @ 3005000
gUnknown_3005004: @ 3005004
.space 0x4
-gUnknown_3005008: @ 3005008
+gSaveBlock1Ptr: @ 3005008
.space 0x4
-gUnknown_300500C: @ 300500C
+gSaveBlock2Ptr: @ 300500C
.space 0x4
gUnknown_3005010: @ 3005010
diff --git a/sym_ewram.txt b/sym_ewram.txt
index f31a93d50..3f109f231 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -25,7 +25,7 @@ gUnknown_201FEE0: @ 201FEE0
gUnknown_201FF00: @ 201FF00
.space 0x100
-gUnknown_2020000: @ 2020000
+gTrainerId: @ 2020000
.space 0x4
gUnknown_2020004: @ 2020004
@@ -592,13 +592,13 @@ gUnknown_202456C: @ 202456C
gUnknown_2024580: @ 2024580
.space 0x8
-gUnknown_2024588: @ 2024588
+gSaveBlock2: @ 2024588
.space 0xFA4
-gUnknown_202552C: @ 202552C
+gSaveBlock1: @ 202552C
.space 0x3DE8
-gUnknown_2029314: @ 2029314
+gPokemonStorage: @ 2029314
.space 0x8450
gUnknown_2031764: @ 2031764