summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/berry_crush_2.s4
-rw-r--r--asm/cable_club.s8
-rw-r--r--asm/dodrio_berry_picking.s4
-rw-r--r--asm/field_message_box.s2
-rw-r--r--asm/hall_of_fame.s4
-rw-r--r--asm/item_menu.s10
-rw-r--r--asm/link_rfu_3.s14
-rw-r--r--asm/naming_screen.s24
-rw-r--r--asm/option_menu.s10
-rw-r--r--asm/overworld.s10
-rw-r--r--asm/party_menu.s12
-rw-r--r--asm/pokedex_screen.s10
-rw-r--r--asm/pokemon_storage_system.s2
-rw-r--r--asm/save_failed_screen.s8
-rw-r--r--asm/save_menu_util.s6
-rw-r--r--asm/script_menu.s2
-rw-r--r--asm/start_menu.s2219
-rw-r--r--asm/trade.s4
-rw-r--r--asm/trainer_card.s20
-rw-r--r--common_syms/help_system_812B1E0.txt2
-rw-r--r--common_syms/save.txt2
-rw-r--r--data/map_event_scripts.inc34
-rw-r--r--data/maps/PalletTown_PlayersHouse_2F/scripts.inc2
-rw-r--r--data/specials.inc8
-rw-r--r--data/start_menu.s28
-rw-r--r--data/strings.s1081
-rw-r--r--data/tileset_anims.s3
-rw-r--r--include/event_scripts.h7
-rw-r--r--include/field_fadetransition.h1
-rw-r--r--include/fieldmap.h2
-rw-r--r--include/gba/macro.h31
-rw-r--r--include/help_system.h6
-rw-r--r--include/item_menu.h2
-rw-r--r--include/link_rfu.h1
-rw-r--r--include/load_save.h2
-rw-r--r--include/menu.h2
-rw-r--r--include/new_game.h2
-rw-r--r--include/new_menu_helpers.h8
-rw-r--r--include/option_menu.h6
-rw-r--r--include/overworld.h3
-rw-r--r--include/party_menu.h1
-rw-r--r--include/pokedex_screen.h6
-rw-r--r--include/quest_log.h10
-rw-r--r--include/save.h2
-rw-r--r--include/save_menu_util.h15
-rw-r--r--include/start_menu.h7
-rw-r--r--include/strings.h32
-rw-r--r--include/trainer_card.h3
-rw-r--r--ld_script.txt4
-rw-r--r--src/fame_checker.c4
-rw-r--r--src/field_fadetransition.c12
-rw-r--r--src/help_system_812B1E0.c62
-rw-r--r--src/item_use.c12
-rw-r--r--src/menu2.c2
-rw-r--r--src/mystery_event_script.c2
-rw-r--r--src/new_menu_helpers.c18
-rw-r--r--src/player_pc.c14
-rw-r--r--src/quest_log.c743
-rw-r--r--src/save.c6
-rw-r--r--src/scrcmd.c6
-rw-r--r--src/start_menu.c1008
-rw-r--r--src/teachy_tv.c4
-rw-r--r--src/trainer_tower.c2
-rw-r--r--sym_bss.txt18
-rw-r--r--sym_ewram.txt42
65 files changed, 2526 insertions, 3115 deletions
diff --git a/asm/berry_crush_2.s b/asm/berry_crush_2.s
index fedf89c50..7495c8519 100644
--- a/asm/berry_crush_2.s
+++ b/asm/berry_crush_2.s
@@ -2856,7 +2856,7 @@ _0814D106:
movs r0, 0
movs r1, 0
bl DrawDialogueFrame
- ldr r2, _0814D148 @ =gUnknown_8419F54
+ ldr r2, _0814D148 @ =gText_SavingDontTurnOffThePower2
movs r0, 0
str r0, [sp]
movs r0, 0x2
@@ -2877,7 +2877,7 @@ _0814D106:
bl CreateTask
b _0814D178
.align 2, 0
-_0814D148: .4byte gUnknown_8419F54
+_0814D148: .4byte gText_SavingDontTurnOffThePower2
_0814D14C: .4byte sub_80DA634
_0814D150:
ldr r0, _0814D160 @ =sub_80DA634
diff --git a/asm/cable_club.s b/asm/cable_club.s
index d7432e2c2..76346a28c 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -1496,7 +1496,7 @@ _08081308: .4byte gReceivedRemoteLinkPlayers
thumb_func_start sub_808130C
sub_808130C: @ 808130C
push {lr}
- bl sub_806F67C
+ bl Field_AskSaveTheGame
pop {r0}
bx r0
thumb_func_end sub_808130C
@@ -2001,7 +2001,7 @@ _08081724:
ldr r0, _0808173C @ =c2_8056854
_08081728:
str r0, [r1, 0x8]
- ldr r0, _08081740 @ =sub_806FB7C
+ ldr r0, _08081740 @ =CB2_SetUpSaveAfterLinkBattle
bl SetMainCallback2
pop {r4,r5}
pop {r0}
@@ -2009,7 +2009,7 @@ _08081728:
.align 2, 0
_08081738: .4byte gMain
_0808173C: .4byte c2_8056854
-_08081740: .4byte sub_806FB7C
+_08081740: .4byte CB2_SetUpSaveAfterLinkBattle
thumb_func_end sub_8081668
thumb_func_start sub_8081744
@@ -2388,7 +2388,7 @@ sp02A_crash_sound: @ 8081A1C
ldr r0, _08081A2C @ =gSpecialVar_0x8006
ldrb r0, [r0]
ldr r1, _08081A30 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl sub_808B700
+ bl InitLinkPartnerTrainerCard
pop {r0}
bx r0
.align 2, 0
diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s
index c9dd68e4b..8b2797dc8 100644
--- a/asm/dodrio_berry_picking.s
+++ b/asm/dodrio_berry_picking.s
@@ -10658,7 +10658,7 @@ _08155AA6:
movs r0, 0
movs r1, 0
bl DrawDialogueFrame
- ldr r2, _08155ACC @ =gUnknown_8419F54
+ ldr r2, _08155ACC @ =gText_SavingDontTurnOffThePower2
str r4, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
@@ -10672,7 +10672,7 @@ _08155AA6:
bl AddTextPrinterParameterized2
b _08155B08
.align 2, 0
-_08155ACC: .4byte gUnknown_8419F54
+_08155ACC: .4byte gText_SavingDontTurnOffThePower2
_08155AD0:
movs r0, 0
movs r1, 0x3
diff --git a/asm/field_message_box.s b/asm/field_message_box.s
index a326e0f59..183b5a3fb 100644
--- a/asm/field_message_box.s
+++ b/asm/field_message_box.s
@@ -75,7 +75,7 @@ _080693C4:
lsls r0, 24
cmp r0, 0
bne _080693D4
- bl sub_80F6E9C
+ bl LoadStdWindowFrameGfx
b _080693E2
_080693D4:
bl sub_80F79A4
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index fbb7cdc9c..36eacbf17 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -509,7 +509,7 @@ _080F21B2:
movs r0, 0
movs r1, 0
bl DrawDialogueFrame
- ldr r2, _080F2214 @ =gUnknown_8419F54
+ ldr r2, _080F2214 @ =gText_SavingDontTurnOffThePower2
movs r0, 0
str r0, [sp]
movs r0, 0x2
@@ -543,7 +543,7 @@ _080F21B2:
_080F2208: .4byte 0x000001ff
_080F220C: .4byte gDecompressionBuffer
_080F2210: .4byte gUnknown_203AB38
-_080F2214: .4byte gUnknown_8419F54
+_080F2214: .4byte gText_SavingDontTurnOffThePower2
_080F2218: .4byte gTasks
_080F221C: .4byte sub_80F2220
thumb_func_end Task_Hof_InitTeamSaveData
diff --git a/asm/item_menu.s b/asm/item_menu.s
index e58abf87f..9b1ab2492 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -138,18 +138,18 @@ _08107EB0: .4byte gUnknown_203AD10
_08107EB4: .4byte gUnknown_203ACFC
thumb_func_end sub_8107DB4
- thumb_func_start ReturnToBagFromKeyItem
-ReturnToBagFromKeyItem: @ 8107EB8
+ thumb_func_start CB2_BagMenuFromStartMenu
+CB2_BagMenuFromStartMenu: @ 8107EB8
push {lr}
- ldr r2, _08107EC8 @ =sub_80568A8
+ ldr r2, _08107EC8 @ =CB2_ReturnToStartMenu
movs r0, 0
movs r1, 0x3
bl sub_8107DB4
pop {r0}
bx r0
.align 2, 0
-_08107EC8: .4byte sub_80568A8
- thumb_func_end ReturnToBagFromKeyItem
+_08107EC8: .4byte CB2_ReturnToStartMenu
+ thumb_func_end CB2_BagMenuFromStartMenu
thumb_func_start sub_8107ECC
sub_8107ECC: @ 8107ECC
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 4ddbed23a..94a07fdaf 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -3252,7 +3252,7 @@ _08117384:
lsls r0, 24
lsrs r0, 24
ldr r1, _081173BC @ =CB2_ReturnToField
- bl sub_808B700
+ bl InitLinkPartnerTrainerCard
_081173A2:
bl RunTasks
bl RunTextPrinters
@@ -5840,7 +5840,7 @@ _08118AD4:
bl sub_811BEDC
bl _081198DC
_08118ADE:
- ldr r0, _08118B00 @ =sub_806F1F0
+ ldr r0, _08118B00 @ =Task_StartMenuHandleInput
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
@@ -5854,7 +5854,7 @@ _08118AEE:
movs r0, 0x4
bl _081198DA
.align 2, 0
-_08118B00: .4byte sub_806F1F0
+_08118B00: .4byte Task_StartMenuHandleInput
_08118B04:
bl sub_811A0E0
movs r3, 0x2
@@ -6975,7 +6975,7 @@ _081194DC:
movs r0, 0x2F
bl sub_8118664
_081194E4:
- bl sub_80F7998
+ bl DestroyHelpMessageWindow_
b _081198DC
.align 2, 0
_081194EC: .4byte gUnknown_8458B44
@@ -7171,7 +7171,7 @@ _08119670:
_0811967A:
movs r0, 0x1
bl sub_811B258
- bl sub_80F7998
+ bl DestroyHelpMessageWindow_
movs r0, 0x4
b _081198DA
.align 2, 0
@@ -8482,7 +8482,7 @@ _0811A0B0: .4byte gTasks+0x8
sub_811A0B4: @ 811A0B4
push {r4,lr}
adds r4, r0, 0
- bl sub_80F6E9C
+ bl LoadStdWindowFrameGfx
movs r0, 0
movs r1, 0x1
bl DrawDialogueFrame
@@ -8528,7 +8528,7 @@ sub_811A0F8: @ 811A0F8
beq _0811A130
b _0811A142
_0811A10A:
- bl sub_80F6E9C
+ bl LoadStdWindowFrameGfx
movs r0, 0
movs r1, 0x1
bl DrawDialogueFrame
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index ef692b052..09f4ca070 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -491,7 +491,7 @@ sub_809DD60: @ 809DD60
bl CreateTask
ldr r0, _0809DD84 @ =sub_809FB70
bl SetMainCallback2
- bl sub_812B234
+ bl HelpSystem_BackupSomeVariable
movs r0, 0x3
bl HelpSystem_SetSomeVariable2
pop {r0}
@@ -868,7 +868,7 @@ _0809E06C:
ldr r0, [r4]
bl Free
str r5, [r4]
- bl sub_812B248
+ bl HelpSystem_RestoreSomeVariable
_0809E096:
movs r0, 0
pop {r4,r5}
@@ -4490,7 +4490,7 @@ sub_809FC90: @ 809FC90
ldrb r2, [r1, 0x8]
movs r0, 0
str r0, [sp]
- ldr r0, _0809FCB4 @ =sub_80568A8
+ ldr r0, _0809FCB4 @ =CB2_ReturnToStartMenu
str r0, [sp, 0x4]
movs r0, 0
movs r3, 0
@@ -4500,7 +4500,7 @@ sub_809FC90: @ 809FC90
bx r0
.align 2, 0
_0809FCB0: .4byte gSaveBlock2Ptr
-_0809FCB4: .4byte sub_80568A8
+_0809FCB4: .4byte CB2_ReturnToStartMenu
thumb_func_end sub_809FC90
thumb_func_start sub_809FCB8
@@ -4512,7 +4512,7 @@ sub_809FCB8: @ 809FCB8
ldrb r2, [r1, 0x8]
movs r0, 0
str r0, [sp]
- ldr r0, _0809FCDC @ =sub_80568A8
+ ldr r0, _0809FCDC @ =CB2_ReturnToStartMenu
str r0, [sp, 0x4]
movs r0, 0x1
movs r3, 0
@@ -4522,7 +4522,7 @@ sub_809FCB8: @ 809FCB8
bx r0
.align 2, 0
_0809FCD8: .4byte gSaveBlock2Ptr
-_0809FCDC: .4byte sub_80568A8
+_0809FCDC: .4byte CB2_ReturnToStartMenu
thumb_func_end sub_809FCB8
thumb_func_start sub_809FCE0
@@ -4534,7 +4534,7 @@ sub_809FCE0: @ 809FCE0
ldrb r2, [r1, 0x8]
movs r0, 0
str r0, [sp]
- ldr r0, _0809FD04 @ =sub_80568A8
+ ldr r0, _0809FD04 @ =CB2_ReturnToStartMenu
str r0, [sp, 0x4]
movs r0, 0x2
movs r3, 0
@@ -4544,7 +4544,7 @@ sub_809FCE0: @ 809FCE0
bx r0
.align 2, 0
_0809FD00: .4byte gSaveBlock2Ptr
-_0809FD04: .4byte sub_80568A8
+_0809FD04: .4byte CB2_ReturnToStartMenu
thumb_func_end sub_809FCE0
thumb_func_start sub_809FD08
@@ -4556,7 +4556,7 @@ sub_809FD08: @ 809FD08
ldrb r2, [r1, 0x8]
movs r0, 0
str r0, [sp]
- ldr r0, _0809FD2C @ =sub_80568A8
+ ldr r0, _0809FD2C @ =CB2_ReturnToStartMenu
str r0, [sp, 0x4]
movs r0, 0x3
movs r3, 0
@@ -4566,7 +4566,7 @@ sub_809FD08: @ 809FD08
bx r0
.align 2, 0
_0809FD28: .4byte gSaveBlock2Ptr
-_0809FD2C: .4byte sub_80568A8
+_0809FD2C: .4byte CB2_ReturnToStartMenu
thumb_func_end sub_809FD08
thumb_func_start sub_809FD30
@@ -4578,7 +4578,7 @@ sub_809FD30: @ 809FD30
ldrb r2, [r1, 0x8]
movs r0, 0
str r0, [sp]
- ldr r0, _0809FD54 @ =sub_80568A8
+ ldr r0, _0809FD54 @ =CB2_ReturnToStartMenu
str r0, [sp, 0x4]
movs r0, 0x4
movs r3, 0
@@ -4588,7 +4588,7 @@ sub_809FD30: @ 809FD30
bx r0
.align 2, 0
_0809FD50: .4byte gSaveBlock2Ptr
-_0809FD54: .4byte sub_80568A8
+_0809FD54: .4byte CB2_ReturnToStartMenu
thumb_func_end sub_809FD30
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/option_menu.s b/asm/option_menu.s
index bb370f0ba..3b08810c5 100644
--- a/asm/option_menu.s
+++ b/asm/option_menu.s
@@ -26,14 +26,14 @@ sub_8088374: @ 8088374
bx r0
thumb_func_end sub_8088374
- thumb_func_start sub_8088388
-sub_8088388: @ 8088388
+ thumb_func_start CB2_OptionsMenuFromStartMenu
+CB2_OptionsMenuFromStartMenu: @ 8088388
push {r4-r6,lr}
ldr r1, _08088418 @ =gMain
ldr r0, [r1, 0x8]
cmp r0, 0
bne _08088396
- ldr r0, _0808841C @ =sub_80568A8
+ ldr r0, _0808841C @ =CB2_ReturnToStartMenu
str r0, [r1, 0x8]
_08088396:
ldr r4, _08088420 @ =gUnknown_2039620
@@ -101,12 +101,12 @@ _080883FA:
bx r0
.align 2, 0
_08088418: .4byte gMain
-_0808841C: .4byte sub_80568A8
+_0808841C: .4byte CB2_ReturnToStartMenu
_08088420: .4byte gUnknown_2039620
_08088424: .4byte gSaveBlock2Ptr
_08088428: .4byte gUnknown_83CC304
_0808842C: .4byte sub_8088454
- thumb_func_end sub_8088388
+ thumb_func_end CB2_OptionsMenuFromStartMenu
thumb_func_start sub_8088430
sub_8088430: @ 8088430
diff --git a/asm/overworld.s b/asm/overworld.s
index c3ff5e3c8..9bcd95eab 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -3754,20 +3754,20 @@ _080568A0: .4byte gFieldCallback
_080568A4: .4byte sub_807DDD0
thumb_func_end c2_8056854
- thumb_func_start sub_80568A8
-sub_80568A8: @ 80568A8
+ thumb_func_start CB2_ReturnToStartMenu
+CB2_ReturnToStartMenu: @ 80568A8
push {lr}
bl sub_80569BC
ldr r1, _080568BC @ =gFieldCallback2
- ldr r0, _080568C0 @ =sub_807E3BC
+ ldr r0, _080568C0 @ =FieldCB2_ReturnToStartMenuInit
str r0, [r1]
bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
_080568BC: .4byte gFieldCallback2
-_080568C0: .4byte sub_807E3BC
- thumb_func_end sub_80568A8
+_080568C0: .4byte FieldCB2_ReturnToStartMenuInit
+ thumb_func_end CB2_ReturnToStartMenu
thumb_func_start sub_80568C4
sub_80568C4: @ 80568C4
diff --git a/asm/party_menu.s b/asm/party_menu.s
index b49a09347..58c6e3732 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -3616,10 +3616,10 @@ sub_8120658: @ 8120658
beq _08120678
cmp r0, 0x5
beq _0812067E
- ldr r1, _08120674 @ =gUnknown_8416285
+ ldr r1, _08120674 @ =gStartMenuText_Bag
b _08120686
.align 2, 0
-_08120674: .4byte gUnknown_8416285
+_08120674: .4byte gStartMenuText_Bag
_08120678:
movs r0, 0xB6
lsls r0, 1
@@ -12231,7 +12231,7 @@ sub_8124AB0: @ 8124AB0
str r0, [sp]
ldr r0, _08124AD4 @ =sub_811FB28
str r0, [sp, 0x4]
- ldr r0, _08124AD8 @ =sub_80568A8
+ ldr r0, _08124AD8 @ =CB2_ReturnToStartMenu
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
@@ -12243,7 +12243,7 @@ sub_8124AB0: @ 8124AB0
bx r0
.align 2, 0
_08124AD4: .4byte sub_811FB28
-_08124AD8: .4byte sub_80568A8
+_08124AD8: .4byte CB2_ReturnToStartMenu
thumb_func_end sub_8124AB0
thumb_func_start hm2_waterfall
@@ -16634,7 +16634,7 @@ CB2_PartyMenuFromStartMenu: @ 8126EB0
str r0, [sp]
ldr r0, _08126ED4 @ =sub_811FB28
str r0, [sp, 0x4]
- ldr r0, _08126ED8 @ =sub_80568A8
+ ldr r0, _08126ED8 @ =CB2_ReturnToStartMenu
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
@@ -16646,7 +16646,7 @@ CB2_PartyMenuFromStartMenu: @ 8126EB0
bx r0
.align 2, 0
_08126ED4: .4byte sub_811FB28
-_08126ED8: .4byte sub_80568A8
+_08126ED8: .4byte CB2_ReturnToStartMenu
thumb_func_end CB2_PartyMenuFromStartMenu
thumb_func_start sub_8126EDC
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index b0b53da55..8320c5809 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -289,8 +289,8 @@ _081026D0:
_08102758: .4byte gUnknown_84404C8
thumb_func_end sub_810250C
- thumb_func_start sub_810275C
-sub_810275C: @ 810275C
+ thumb_func_start CB2_OpenPokedexFromStartMenu
+CB2_OpenPokedexFromStartMenu: @ 810275C
push {lr}
bl sub_810250C
movs r1, 0xC0
@@ -314,7 +314,7 @@ sub_810275C: @ 810275C
bx r0
.align 2, 0
_08102794: .4byte sub_81024D4
- thumb_func_end sub_810275C
+ thumb_func_end CB2_OpenPokedexFromStartMenu
thumb_func_start sub_8102798
sub_8102798: @ 8102798
@@ -428,13 +428,13 @@ sub_8102858: @ 8102858
lsls r1, 7
movs r0, 0
bl SetGpuRegBits
- ldr r0, _08102878 @ =sub_80568A8
+ ldr r0, _08102878 @ =CB2_ReturnToStartMenu
bl SetMainCallback2
_08102874:
pop {r0}
bx r0
.align 2, 0
-_08102878: .4byte sub_80568A8
+_08102878: .4byte CB2_ReturnToStartMenu
thumb_func_end sub_8102858
thumb_func_start sub_810287C
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index c6daa62ea..f1188910d 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1417,7 +1417,7 @@ _0808C3E0:
adds r1, r5, 0
adds r1, 0x26
bl sub_808C72C
- bl sub_80F6E9C
+ bl LoadStdWindowFrameGfx
movs r0, 0
movs r1, 0
bl DrawDialogueFrame
diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s
index 09503af6a..aa9d375a3 100644
--- a/asm/save_failed_screen.s
+++ b/asm/save_failed_screen.s
@@ -158,16 +158,16 @@ _080F5240:
adds r1, r0, 0
cmp r1, 0x1
bne _080F5260
- ldr r0, _080F5258 @ =gUnknown_3005420
+ ldr r0, _080F5258 @ =gSaveSucceeded
strh r1, [r0]
ldr r0, _080F525C @ =gUnknown_8418E09
bl sub_80F5404
b _080F526C
.align 2, 0
-_080F5258: .4byte gUnknown_3005420
+_080F5258: .4byte gSaveSucceeded
_080F525C: .4byte gUnknown_8418E09
_080F5260:
- ldr r0, _080F5274 @ =gUnknown_3005420
+ ldr r0, _080F5274 @ =gSaveSucceeded
movs r1, 0xFF
strh r1, [r0]
ldr r0, _080F5278 @ =gUnknown_8418CD9
@@ -178,7 +178,7 @@ _080F526C:
strb r0, [r1]
b _080F52D6
.align 2, 0
-_080F5274: .4byte gUnknown_3005420
+_080F5274: .4byte gSaveSucceeded
_080F5278: .4byte gUnknown_8418CD9
_080F527C: .4byte gUnknown_203AB50
_080F5280:
diff --git a/asm/save_menu_util.s b/asm/save_menu_util.s
index 1cb9d85a3..8ebfc3731 100644
--- a/asm/save_menu_util.s
+++ b/asm/save_menu_util.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_80F7FCC
-sub_80F7FCC: @ 80F7FCC
+ thumb_func_start SaveStatToString
+SaveStatToString: @ 80F7FCC
push {r4-r7,lr}
lsls r0, 24
lsrs r3, r0, 24
@@ -144,6 +144,6 @@ _080F80D8:
bx r0
.align 2, 0
_080F80E0: .4byte 0x00000827
- thumb_func_end sub_80F7FCC
+ thumb_func_end SaveStatToString
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 59af843f1..56781a953 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -1127,7 +1127,7 @@ _0809D1FA:
adds r1, r4, 0
adds r2, r7, 0
movs r3, 0x12
- bl sub_812E6DC
+ bl Menu_PrintFormatIntlPlayerName
movs r0, 0x10
str r0, [sp]
mov r0, r9
diff --git a/asm/start_menu.s b/asm/start_menu.s
deleted file mode 100644
index 7ab76140f..000000000
--- a/asm/start_menu.s
+++ /dev/null
@@ -1,2219 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_806ED54
-sub_806ED54: @ 806ED54
- push {lr}
- ldr r0, _0806ED6C @ =gUnknown_20370F5
- movs r1, 0
- strb r1, [r0]
- bl IsUpdateLinkStateCBActive
- cmp r0, 0x1
- bne _0806ED70
- bl sub_806EE34
- b _0806ED90
- .align 2, 0
-_0806ED6C: .4byte gUnknown_20370F5
-_0806ED70:
- bl InUnionRoom
- cmp r0, 0x1
- bne _0806ED7E
- bl sub_806EE58
- b _0806ED90
-_0806ED7E:
- bl GetSafariZoneFlag
- cmp r0, 0x1
- bne _0806ED8C
- bl sub_806EE04
- b _0806ED90
-_0806ED8C:
- bl sub_806EDB0
-_0806ED90:
- pop {r0}
- bx r0
- thumb_func_end sub_806ED54
-
- thumb_func_start sub_806ED94
-sub_806ED94: @ 806ED94
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0806EDA8 @ =gUnknown_20370F6
- ldr r1, _0806EDAC @ =gUnknown_20370F5
- bl AppendToList
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDA8: .4byte gUnknown_20370F6
-_0806EDAC: .4byte gUnknown_20370F5
- thumb_func_end sub_806ED94
-
- thumb_func_start sub_806EDB0
-sub_806EDB0: @ 806EDB0
- push {lr}
- ldr r0, _0806EDFC @ =0x00000829
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EDC6
- movs r0, 0
- bl sub_806ED94
-_0806EDC6:
- ldr r0, _0806EE00 @ =0x00000828
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EDDA
- movs r0, 0x1
- bl sub_806ED94
-_0806EDDA:
- movs r0, 0x2
- bl sub_806ED94
- movs r0, 0x3
- bl sub_806ED94
- movs r0, 0x4
- bl sub_806ED94
- movs r0, 0x5
- bl sub_806ED94
- movs r0, 0x6
- bl sub_806ED94
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDFC: .4byte 0x00000829
-_0806EE00: .4byte 0x00000828
- thumb_func_end sub_806EDB0
-
- thumb_func_start sub_806EE04
-sub_806EE04: @ 806EE04
- push {lr}
- movs r0, 0x7
- bl sub_806ED94
- movs r0, 0
- bl sub_806ED94
- movs r0, 0x1
- bl sub_806ED94
- movs r0, 0x2
- bl sub_806ED94
- movs r0, 0x3
- bl sub_806ED94
- movs r0, 0x5
- bl sub_806ED94
- movs r0, 0x6
- bl sub_806ED94
- pop {r0}
- bx r0
- thumb_func_end sub_806EE04
-
- thumb_func_start sub_806EE34
-sub_806EE34: @ 806EE34
- push {lr}
- movs r0, 0x1
- bl sub_806ED94
- movs r0, 0x2
- bl sub_806ED94
- movs r0, 0x8
- bl sub_806ED94
- movs r0, 0x5
- bl sub_806ED94
- movs r0, 0x6
- bl sub_806ED94
- pop {r0}
- bx r0
- thumb_func_end sub_806EE34
-
- thumb_func_start sub_806EE58
-sub_806EE58: @ 806EE58
- push {lr}
- movs r0, 0x1
- bl sub_806ED94
- movs r0, 0x2
- bl sub_806ED94
- movs r0, 0x3
- bl sub_806ED94
- movs r0, 0x5
- bl sub_806ED94
- movs r0, 0x6
- bl sub_806ED94
- pop {r0}
- bx r0
- thumb_func_end sub_806EE58
-
- thumb_func_start sub_806EE7C
-sub_806EE7C: @ 806EE7C
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r4, _0806EEF4 @ =gUnknown_2037101
- ldr r0, _0806EEF8 @ =gUnknown_83A738C
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0
- bl DrawStdWindowFrame
- ldr r0, _0806EEFC @ =gStringVar1
- ldr r1, _0806EF00 @ =gSafariZoneStepCounter
- ldrh r1, [r1]
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _0806EF04 @ =gStringVar2
- movs r1, 0x96
- lsls r1, 2
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _0806EF08 @ =gStringVar3
- ldr r1, _0806EF0C @ =gNumSafariBalls
- ldrb r1, [r1]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _0806EF10 @ =gStringVar4
- ldr r1, _0806EF14 @ =gUnknown_84162A9
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldrb r0, [r4]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x2
- adds r2, r5, 0
- movs r3, 0x4
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EEF4: .4byte gUnknown_2037101
-_0806EEF8: .4byte gUnknown_83A738C
-_0806EEFC: .4byte gStringVar1
-_0806EF00: .4byte gSafariZoneStepCounter
-_0806EF04: .4byte gStringVar2
-_0806EF08: .4byte gStringVar3
-_0806EF0C: .4byte gNumSafariBalls
-_0806EF10: .4byte gStringVar4
-_0806EF14: .4byte gUnknown_84162A9
- thumb_func_end sub_806EE7C
-
- thumb_func_start sub_806EF18
-sub_806EF18: @ 806EF18
- push {r4,lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _0806EF3A
- ldr r4, _0806EF40 @ =gUnknown_2037101
- ldrb r0, [r4]
- movs r1, 0
- bl ClearStdWindowAndFrameToTransparent
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- ldrb r0, [r4]
- bl RemoveWindow
-_0806EF3A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EF40: .4byte gUnknown_2037101
- thumb_func_end sub_806EF18
-
- thumb_func_start sub_806EF44
-sub_806EF44: @ 806EF44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r8, r0
- lsls r1, 24
- lsrs r6, r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _0806EF9C @ =gUnknown_83A7344
- mov r10, r0
- ldr r1, _0806EFA0 @ =gStringVar4
- mov r9, r1
-_0806EF68:
- ldr r1, _0806EFA4 @ =gUnknown_20370F6
- lsls r0, r2, 16
- asrs r5, r0, 16
- adds r4, r5, r1
- ldrb r1, [r4]
- adds r7, r0, 0
- cmp r1, 0x3
- beq _0806EF7C
- cmp r1, 0x8
- bne _0806EFA8
-_0806EF7C:
- bl GetStartMenuWindowId
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- lsls r1, 3
- add r1, r10
- ldr r1, [r1]
- lsls r3, r5, 4
- subs r3, r5
- lsls r3, 16
- lsrs r3, 16
- movs r2, 0x8
- bl sub_812E6DC
- b _0806EFDA
- .align 2, 0
-_0806EF9C: .4byte gUnknown_83A7344
-_0806EFA0: .4byte gStringVar4
-_0806EFA4: .4byte gUnknown_20370F6
-_0806EFA8:
- ldrb r0, [r4]
- lsls r0, 3
- add r0, r10
- ldr r1, [r0]
- mov r0, r9
- bl StringExpandPlaceholders
- bl GetStartMenuWindowId
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r5, 4
- subs r1, r5
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x2
- mov r2, r9
- movs r3, 0x8
- bl AddTextPrinterParameterized
-_0806EFDA:
- movs r0, 0x80
- lsls r0, 9
- adds r1, r7, r0
- lsrs r2, r1, 16
- asrs r1, 16
- ldr r0, _0806F000 @ =gUnknown_20370F5
- ldrb r0, [r0]
- cmp r1, r0
- bge _0806F004
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0806EF68
- mov r1, r8
- strb r2, [r1]
- movs r0, 0
- b _0806F00A
- .align 2, 0
-_0806F000: .4byte gUnknown_20370F5
-_0806F004:
- mov r0, r8
- strb r2, [r0]
- movs r0, 0x1
-_0806F00A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806EF44
-
- thumb_func_start sub_806F01C
-sub_806F01C: @ 806F01C
- push {r4,lr}
- sub sp, 0xC
- ldr r0, _0806F038 @ =gUnknown_20370FF
- movs r1, 0
- ldrsb r1, [r0, r1]
- adds r2, r0, 0
- cmp r1, 0x5
- bls _0806F02E
- b _0806F140
-_0806F02E:
- lsls r0, r1, 2
- ldr r1, _0806F03C @ =_0806F040
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806F038: .4byte gUnknown_20370FF
-_0806F03C: .4byte _0806F040
- .align 2, 0
-_0806F040:
- .4byte _0806F058
- .4byte _0806F060
- .4byte _0806F06C
- .4byte _0806F090
- .4byte _0806F0A4
- .4byte _0806F0C4
-_0806F058:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _0806F140
-_0806F060:
- bl sub_806ED54
- ldr r1, _0806F068 @ =gUnknown_20370FF
- b _0806F0B8
- .align 2, 0
-_0806F068: .4byte gUnknown_20370FF
-_0806F06C:
- bl sub_80F6E9C
- ldr r0, _0806F088 @ =gUnknown_20370F5
- ldrb r0, [r0]
- bl sub_80F78E0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl DrawStdWindowFrame
- ldr r1, _0806F08C @ =gUnknown_20370FF
- b _0806F0B8
- .align 2, 0
-_0806F088: .4byte gUnknown_20370F5
-_0806F08C: .4byte gUnknown_20370FF
-_0806F090:
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _0806F09C
- bl sub_806EE7C
-_0806F09C:
- ldr r1, _0806F0A0 @ =gUnknown_20370FF
- b _0806F0B8
- .align 2, 0
-_0806F0A0: .4byte gUnknown_20370FF
-_0806F0A4:
- ldr r4, _0806F0C0 @ =gUnknown_2037100
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_806EF44
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0806F140
- subs r1, r4, 0x1
-_0806F0B8:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0806F140
- .align 2, 0
-_0806F0C0: .4byte gUnknown_2037100
-_0806F0C4:
- bl GetStartMenuWindowId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xF
- str r1, [sp]
- ldr r1, _0806F12C @ =gUnknown_20370F5
- ldrb r1, [r1]
- str r1, [sp, 0x4]
- ldr r4, _0806F130 @ =gUnknown_20370F4
- ldrb r1, [r4]
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0
- bl Menu_InitCursor
- strb r0, [r4]
- bl MenuHelpers_LinkSomething
- lsls r0, 24
- cmp r0, 0
- bne _0806F118
- bl InUnionRoom
- cmp r0, 0x1
- beq _0806F118
- ldr r0, _0806F134 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- bne _0806F118
- ldr r2, _0806F138 @ =gUnknown_83A7394
- ldr r1, _0806F13C @ =gUnknown_20370F6
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- bl sub_80F7974
-_0806F118:
- bl GetStartMenuWindowId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl CopyWindowToVram
- movs r0, 0x1
- b _0806F142
- .align 2, 0
-_0806F12C: .4byte gUnknown_20370F5
-_0806F130: .4byte gUnknown_20370F4
-_0806F134: .4byte gSaveBlock2Ptr
-_0806F138: .4byte gUnknown_83A7394
-_0806F13C: .4byte gUnknown_20370F6
-_0806F140:
- movs r0, 0
-_0806F142:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806F01C
-
- thumb_func_start sub_806F14C
-sub_806F14C: @ 806F14C
- push {lr}
- ldr r1, _0806F164 @ =gUnknown_20370FF
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
-_0806F156:
- bl sub_806F01C
- lsls r0, 24
- cmp r0, 0
- beq _0806F156
- pop {r0}
- bx r0
- .align 2, 0
-_0806F164: .4byte gUnknown_20370FF
- thumb_func_end sub_806F14C
-
- thumb_func_start task50_startmenu
-task50_startmenu: @ 806F168
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806F01C
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0806F180
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_0806F180:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task50_startmenu
-
- thumb_func_start sub_806F188
-sub_806F188: @ 806F188
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _0806F1B0 @ =gUnknown_20370FF
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- ldr r4, _0806F1B4 @ =task50_startmenu
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F1B0: .4byte gUnknown_20370FF
-_0806F1B4: .4byte task50_startmenu
- thumb_func_end sub_806F188
-
- thumb_func_start sub_806F1B8
-sub_806F1B8: @ 806F1B8
- push {lr}
- bl sub_806F01C
- lsls r0, 24
- cmp r0, 0
- beq _0806F1CC
- bl sub_807E3A0
- movs r0, 0x1
- b _0806F1CE
-_0806F1CC:
- movs r0, 0
-_0806F1CE:
- pop {r1}
- bx r1
- thumb_func_end sub_806F1B8
-
- thumb_func_start sub_806F1D4
-sub_806F1D4: @ 806F1D4
- ldr r1, _0806F1E4 @ =gUnknown_20370FF
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- ldr r1, _0806F1E8 @ =gFieldCallback2
- ldr r0, _0806F1EC @ =sub_806F1B8
- str r0, [r1]
- bx lr
- .align 2, 0
-_0806F1E4: .4byte gUnknown_20370FF
-_0806F1E8: .4byte gFieldCallback2
-_0806F1EC: .4byte sub_806F1B8
- thumb_func_end sub_806F1D4
-
- thumb_func_start sub_806F1F0
-sub_806F1F0: @ 806F1F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0806F210 @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0806F214
- cmp r0, 0x1
- beq _0806F238
- b _0806F24E
- .align 2, 0
-_0806F210: .4byte gTasks+0x8
-_0806F214:
- bl InUnionRoom
- cmp r0, 0x1
- bne _0806F220
- bl var_800D_set_xB
-_0806F220:
- ldr r1, _0806F230 @ =gUnknown_20370F0
- ldr r0, _0806F234 @ =sub_806F280
- str r0, [r1]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0806F24E
- .align 2, 0
-_0806F230: .4byte gUnknown_20370F0
-_0806F234: .4byte sub_806F280
-_0806F238:
- ldr r0, _0806F254 @ =gUnknown_20370F0
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806F24E
- adds r0, r5, 0
- bl DestroyTask
-_0806F24E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F254: .4byte gUnknown_20370F0
- thumb_func_end sub_806F1F0
-
- thumb_func_start ShowStartMenu
-ShowStartMenu: @ 806F258
- push {lr}
- bl IsUpdateLinkStateCBActive
- cmp r0, 0
- bne _0806F26E
- bl player_bitmagic
- bl sub_805C270
- bl sub_805C780
-_0806F26E:
- ldr r0, _0806F27C @ =sub_806F1F0
- bl sub_806F188
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0806F27C: .4byte sub_806F1F0
- thumb_func_end ShowStartMenu
-
- thumb_func_start sub_806F280
-sub_806F280: @ 806F280
- push {r4,lr}
- ldr r0, _0806F35C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0806F2D2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl Menu_MoveCursor
- ldr r4, _0806F360 @ =gUnknown_20370F4
- strb r0, [r4]
- bl MenuHelpers_LinkSomething
- lsls r0, 24
- cmp r0, 0
- bne _0806F2D2
- bl InUnionRoom
- cmp r0, 0x1
- beq _0806F2D2
- ldr r0, _0806F364 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- bne _0806F2D2
- ldr r2, _0806F368 @ =gUnknown_83A7394
- ldr r1, _0806F36C @ =gUnknown_20370F6
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x2
- bl sub_8113018
-_0806F2D2:
- ldr r0, _0806F35C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806F320
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl Menu_MoveCursor
- ldr r4, _0806F360 @ =gUnknown_20370F4
- strb r0, [r4]
- bl MenuHelpers_LinkSomething
- lsls r0, 24
- cmp r0, 0
- bne _0806F320
- bl InUnionRoom
- cmp r0, 0x1
- beq _0806F320
- ldr r0, _0806F364 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- bne _0806F320
- ldr r2, _0806F368 @ =gUnknown_83A7394
- ldr r1, _0806F36C @ =gUnknown_20370F6
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x2
- bl sub_8113018
-_0806F320:
- ldr r0, _0806F35C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806F378
- movs r0, 0x5
- bl PlaySE
- bl sub_806F3CC
- lsls r0, 24
- cmp r0, 0
- beq _0806F358
- ldr r3, _0806F370 @ =gUnknown_20370F0
- ldr r1, _0806F374 @ =gUnknown_83A7344
- ldr r2, _0806F36C @ =gUnknown_20370F6
- ldr r0, _0806F360 @ =gUnknown_20370F4
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- str r0, [r3]
- bl sub_806F394
-_0806F358:
- movs r0, 0
- b _0806F38E
- .align 2, 0
-_0806F35C: .4byte gMain
-_0806F360: .4byte gUnknown_20370F4
-_0806F364: .4byte gSaveBlock2Ptr
-_0806F368: .4byte gUnknown_83A7394
-_0806F36C: .4byte gUnknown_20370F6
-_0806F370: .4byte gUnknown_20370F0
-_0806F374: .4byte gUnknown_83A7344
-_0806F378:
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0
- beq _0806F358
- bl sub_806EF18
- bl sub_80F7998
- bl sub_806FEA0
- movs r0, 0x1
-_0806F38E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806F280
-
- thumb_func_start sub_806F394
-sub_806F394: @ 806F394
- push {lr}
- ldr r0, _0806F3BC @ =gUnknown_20370F0
- ldr r1, [r0]
- ldr r0, _0806F3C0 @ =sub_806F4E8
- cmp r1, r0
- beq _0806F3B8
- ldr r0, _0806F3C4 @ =sub_806F540
- cmp r1, r0
- beq _0806F3B8
- ldr r0, _0806F3C8 @ =sub_806F554
- cmp r1, r0
- beq _0806F3B8
- bl sub_80CCB68
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
-_0806F3B8:
- pop {r0}
- bx r0
- .align 2, 0
-_0806F3BC: .4byte gUnknown_20370F0
-_0806F3C0: .4byte sub_806F4E8
-_0806F3C4: .4byte sub_806F540
-_0806F3C8: .4byte sub_806F554
- thumb_func_end sub_806F394
-
- thumb_func_start sub_806F3CC
-sub_806F3CC: @ 806F3CC
- push {lr}
- ldr r1, _0806F3F8 @ =gUnknown_83A7344
- ldr r2, _0806F3FC @ =gUnknown_20370F6
- ldr r0, _0806F400 @ =gUnknown_20370F4
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0806F404 @ =sub_806F410
- cmp r1, r0
- bne _0806F408
- movs r0, 0
- bl GetNationalPokedexCount
- lsls r0, 16
- cmp r0, 0
- bne _0806F408
- movs r0, 0
- b _0806F40A
- .align 2, 0
-_0806F3F8: .4byte gUnknown_83A7344
-_0806F3FC: .4byte gUnknown_20370F6
-_0806F400: .4byte gUnknown_20370F4
-_0806F404: .4byte sub_806F410
-_0806F408:
- movs r0, 0x1
-_0806F40A:
- pop {r1}
- bx r1
- thumb_func_end sub_806F3CC
-
- thumb_func_start sub_806F410
-sub_806F410: @ 806F410
- push {lr}
- ldr r0, _0806F424 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806F428
- movs r0, 0
- b _0806F442
- .align 2, 0
-_0806F424: .4byte gPaletteFade
-_0806F428:
- movs r0, 0x29
- bl IncrementGameStat
- bl PlayRainStoppingSoundEffect
- bl sub_806EF18
- bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _0806F448 @ =sub_810275C
- bl SetMainCallback2
- movs r0, 0x1
-_0806F442:
- pop {r1}
- bx r1
- .align 2, 0
-_0806F448: .4byte sub_810275C
- thumb_func_end sub_806F410
-
- thumb_func_start sub_806F44C
-sub_806F44C: @ 806F44C
- push {lr}
- ldr r0, _0806F460 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806F464
- movs r0, 0
- b _0806F478
- .align 2, 0
-_0806F460: .4byte gPaletteFade
-_0806F464:
- bl PlayRainStoppingSoundEffect
- bl sub_806EF18
- bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _0806F47C @ =CB2_PartyMenuFromStartMenu
- bl SetMainCallback2
- movs r0, 0x1
-_0806F478:
- pop {r1}
- bx r1
- .align 2, 0
-_0806F47C: .4byte CB2_PartyMenuFromStartMenu
- thumb_func_end sub_806F44C
-
- thumb_func_start sub_806F480
-sub_806F480: @ 806F480
- push {lr}
- ldr r0, _0806F494 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806F498
- movs r0, 0
- b _0806F4AC
- .align 2, 0
-_0806F494: .4byte gPaletteFade
-_0806F498:
- bl PlayRainStoppingSoundEffect
- bl sub_806EF18
- bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _0806F4B0 @ =ReturnToBagFromKeyItem
- bl SetMainCallback2
- movs r0, 0x1
-_0806F4AC:
- pop {r1}
- bx r1
- .align 2, 0
-_0806F4B0: .4byte ReturnToBagFromKeyItem
- thumb_func_end sub_806F480
-
- thumb_func_start sub_806F4B4
-sub_806F4B4: @ 806F4B4
- push {lr}
- ldr r0, _0806F4C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806F4CC
- movs r0, 0
- b _0806F4E0
- .align 2, 0
-_0806F4C8: .4byte gPaletteFade
-_0806F4CC:
- bl PlayRainStoppingSoundEffect
- bl sub_806EF18
- bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _0806F4E4 @ =sub_80568A8
- bl sub_808B698
- movs r0, 0x1
-_0806F4E0:
- pop {r1}
- bx r1
- .align 2, 0
-_0806F4E4: .4byte sub_80568A8
- thumb_func_end sub_806F4B4
-
- thumb_func_start sub_806F4E8
-sub_806F4E8: @ 806F4E8
- ldr r1, _0806F4F4 @ =gUnknown_20370F0
- ldr r0, _0806F4F8 @ =sub_806F5A4
- str r0, [r1]
- movs r0, 0
- bx lr
- .align 2, 0
-_0806F4F4: .4byte gUnknown_20370F0
-_0806F4F8: .4byte sub_806F5A4
- thumb_func_end sub_806F4E8
-
- thumb_func_start sub_806F4FC
-sub_806F4FC: @ 806F4FC
- push {lr}
- ldr r0, _0806F510 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806F514
- movs r0, 0
- b _0806F52E
- .align 2, 0
-_0806F510: .4byte gPaletteFade
-_0806F514:
- bl PlayRainStoppingSoundEffect
- bl sub_806EF18
- bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _0806F534 @ =sub_8088388
- bl SetMainCallback2
- ldr r1, _0806F538 @ =gMain
- ldr r0, _0806F53C @ =sub_80568A8
- str r0, [r1, 0x8]
- movs r0, 0x1
-_0806F52E:
- pop {r1}
- bx r1
- .align 2, 0
-_0806F534: .4byte sub_8088388
-_0806F538: .4byte gMain
-_0806F53C: .4byte sub_80568A8
- thumb_func_end sub_806F4FC
-
- thumb_func_start sub_806F540
-sub_806F540: @ 806F540
- push {lr}
- bl sub_806EF18
- bl sub_80F7998
- bl sub_806FEA0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806F540
-
- thumb_func_start sub_806F554
-sub_806F554: @ 806F554
- push {lr}
- bl sub_806EF18
- bl sub_80F7998
- bl sub_806FEA0
- bl SafariZoneRetirePrompt
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806F554
-
- thumb_func_start sub_806F56C
-sub_806F56C: @ 806F56C
- push {lr}
- ldr r0, _0806F580 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806F584
- movs r0, 0
- b _0806F598
- .align 2, 0
-_0806F580: .4byte gPaletteFade
-_0806F584:
- bl PlayRainStoppingSoundEffect
- bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _0806F59C @ =gUnknown_300502C
- ldrb r0, [r0]
- ldr r1, _0806F5A0 @ =sub_80568A8
- bl sub_808B700
- movs r0, 0x1
-_0806F598:
- pop {r1}
- bx r1
- .align 2, 0
-_0806F59C: .4byte gUnknown_300502C
-_0806F5A0: .4byte sub_80568A8
- thumb_func_end sub_806F56C
-
- thumb_func_start sub_806F5A4
-sub_806F5A4: @ 806F5A4
- push {lr}
- bl sub_812B234
- movs r0, 0xC
- bl HelpSystem_SetSomeVariable2
- bl sub_806F624
- ldr r1, _0806F5C0 @ =gUnknown_20370F0
- ldr r0, _0806F5C4 @ =sub_806F5C8
- str r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806F5C0: .4byte gUnknown_20370F0
-_0806F5C4: .4byte sub_806F5C8
- thumb_func_end sub_806F5A4
-
- thumb_func_start sub_806F5C8
-sub_806F5C8: @ 806F5C8
- push {lr}
- bl sub_806F648
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806F604
- cmp r0, 0x1
- ble _0806F61C
- cmp r0, 0x2
- beq _0806F5E4
- cmp r0, 0x3
- beq _0806F604
- b _0806F61C
-_0806F5E4:
- movs r0, 0
- movs r1, 0
- bl ClearDialogWindowAndFrameToTransparent
- bl sub_806F14C
- bl sub_812B248
- ldr r1, _0806F5FC @ =gUnknown_20370F0
- ldr r0, _0806F600 @ =sub_806F280
- str r0, [r1]
- b _0806F61C
- .align 2, 0
-_0806F5FC: .4byte gUnknown_20370F0
-_0806F600: .4byte sub_806F280
-_0806F604:
- movs r0, 0
- movs r1, 0x1
- bl ClearDialogWindowAndFrameToTransparent
- bl sub_80696C0
- bl ScriptContext2_Disable
- bl sub_812B248
- movs r0, 0x1
- b _0806F61E
-_0806F61C:
- movs r0, 0
-_0806F61E:
- pop {r1}
- bx r1
- thumb_func_end sub_806F5C8
-
- thumb_func_start sub_806F624
-sub_806F624: @ 806F624
- push {lr}
- bl save_serialize_map
- ldr r1, _0806F63C @ =gUnknown_3000FA4
- ldr r0, _0806F640 @ =sub_806F7A8
- str r0, [r1]
- ldr r1, _0806F644 @ =gUnknown_3000FA9
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0806F63C: .4byte gUnknown_3000FA4
-_0806F640: .4byte sub_806F7A8
-_0806F644: .4byte gUnknown_3000FA9
- thumb_func_end sub_806F624
-
- thumb_func_start sub_806F648
-sub_806F648: @ 806F648
- push {lr}
- bl RunTextPrinters_CheckPrinter0Active
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _0806F674
- ldr r1, _0806F66C @ =gUnknown_3000FA9
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0806F670 @ =gUnknown_3000FA4
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- b _0806F676
- .align 2, 0
-_0806F66C: .4byte gUnknown_3000FA9
-_0806F670: .4byte gUnknown_3000FA4
-_0806F674:
- movs r0, 0
-_0806F676:
- pop {r1}
- bx r1
- thumb_func_end sub_806F648
-
- thumb_func_start sub_806F67C
-sub_806F67C: @ 806F67C
- push {lr}
- bl sub_812B234
- movs r0, 0xC
- bl HelpSystem_SetSomeVariable2
- bl sub_806F624
- ldr r0, _0806F698 @ =task50_save_game
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0806F698: .4byte task50_save_game
- thumb_func_end sub_806F67C
-
- thumb_func_start sub_806F69C
-sub_806F69C: @ 806F69C
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- ldr r0, _0806F6C8 @ =gStringVar4
- adds r1, r2, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0x1
- bl sub_80F7768
- movs r0, 0x1
- bl AddTextPrinterForMessage
- ldr r1, _0806F6CC @ =gUnknown_3000FA9
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _0806F6D0 @ =gUnknown_3000FA4
- str r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F6C8: .4byte gStringVar4
-_0806F6CC: .4byte gUnknown_3000FA9
-_0806F6D0: .4byte gUnknown_3000FA4
- thumb_func_end sub_806F69C
-
- thumb_func_start task50_save_game
-task50_save_game: @ 806F6D4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806F648
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- beq _0806F700
- cmp r1, 0x1
- bgt _0806F6F0
- cmp r1, 0
- beq _0806F712
- b _0806F704
-_0806F6F0:
- cmp r1, 0x3
- bgt _0806F704
- ldr r1, _0806F6FC @ =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- b _0806F704
- .align 2, 0
-_0806F6FC: .4byte gSpecialVar_Result
-_0806F700:
- ldr r0, _0806F718 @ =gSpecialVar_Result
- strh r1, [r0]
-_0806F704:
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- bl sub_812B248
-_0806F712:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F718: .4byte gSpecialVar_Result
- thumb_func_end task50_save_game
-
- thumb_func_start sub_806F71C
-sub_806F71C: @ 806F71C
- push {lr}
- movs r0, 0
- movs r1, 0x1
- bl ClearDialogWindowAndFrame
- pop {r0}
- bx r0
- thumb_func_end sub_806F71C
-
- thumb_func_start sub_806F72C
-sub_806F72C: @ 806F72C
- push {lr}
- bl sub_806FE84
- pop {r0}
- bx r0
- thumb_func_end sub_806F72C
-
- thumb_func_start sub_806F738
-sub_806F738: @ 806F738
- ldr r1, _0806F740 @ =gUnknown_3000FA8
- movs r0, 0x3C
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0806F740: .4byte gUnknown_3000FA8
- thumb_func_end sub_806F738
-
- thumb_func_start sub_806F744
-sub_806F744: @ 806F744
- push {lr}
- ldr r1, _0806F764 @ =gUnknown_3000FA8
- ldrb r0, [r1]
- subs r2, r0, 0x1
- strb r2, [r1]
- ldr r0, _0806F768 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0806F76C
- lsls r0, r2, 24
- cmp r0, 0
- beq _0806F772
- movs r0, 0
- b _0806F774
- .align 2, 0
-_0806F764: .4byte gUnknown_3000FA8
-_0806F768: .4byte gMain
-_0806F76C:
- movs r0, 0x5
- bl PlaySE
-_0806F772:
- movs r0, 0x1
-_0806F774:
- pop {r1}
- bx r1
- thumb_func_end sub_806F744
-
- thumb_func_start sub_806F778
-sub_806F778: @ 806F778
- push {lr}
- ldr r1, _0806F794 @ =gUnknown_3000FA8
- ldrb r0, [r1]
- cmp r0, 0
- bne _0806F79C
- ldr r0, _0806F798 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806F7A0
- movs r0, 0x1
- b _0806F7A2
- .align 2, 0
-_0806F794: .4byte gUnknown_3000FA8
-_0806F798: .4byte gMain
-_0806F79C:
- subs r0, 0x1
- strb r0, [r1]
-_0806F7A0:
- movs r0, 0
-_0806F7A2:
- pop {r1}
- bx r1
- thumb_func_end sub_806F778
-
- thumb_func_start sub_806F7A8
-sub_806F7A8: @ 806F7A8
- push {lr}
- bl GetStartMenuWindowId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl ClearStdWindowAndFrame
- bl RemoveStartMenuWindow
- movs r0, 0
- bl sub_8112EDC
- bl sub_806FCF4
- ldr r0, _0806F7D4 @ =gUnknown_81C55C9
- ldr r1, _0806F7D8 @ =sub_806F7DC
- bl sub_806F69C
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806F7D4: .4byte gUnknown_81C55C9
-_0806F7D8: .4byte sub_806F7DC
- thumb_func_end sub_806F7A8
-
- thumb_func_start sub_806F7DC
-sub_806F7DC: @ 806F7DC
- push {lr}
- bl DisplayYesNoMenuDefaultYes
- ldr r1, _0806F7F0 @ =gUnknown_3000FA4
- ldr r0, _0806F7F4 @ =sub_806F7F8
- str r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806F7F0: .4byte gUnknown_3000FA4
-_0806F7F4: .4byte sub_806F7F8
- thumb_func_end sub_806F7DC
-
- thumb_func_start sub_806F7F8
-sub_806F7F8: @ 806F7F8
- push {lr}
- bl Menu_ProcessInputNoWrapClearOnChoose
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0806F81A
- cmp r1, 0
- bgt _0806F814
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0806F858
- b _0806F864
-_0806F814:
- cmp r1, 0x1
- beq _0806F858
- b _0806F864
-_0806F81A:
- ldr r0, _0806F838 @ =gSaveFileStatus
- ldrh r0, [r0]
- cmp r0, 0
- beq _0806F826
- cmp r0, 0x2
- bne _0806F82E
-_0806F826:
- ldr r0, _0806F83C @ =gDifferentSaveFile
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F848
-_0806F82E:
- ldr r1, _0806F840 @ =gUnknown_3000FA4
- ldr r0, _0806F844 @ =sub_806F86C
- str r0, [r1]
- b _0806F864
- .align 2, 0
-_0806F838: .4byte gSaveFileStatus
-_0806F83C: .4byte gDifferentSaveFile
-_0806F840: .4byte gUnknown_3000FA4
-_0806F844: .4byte sub_806F86C
-_0806F848:
- ldr r1, _0806F850 @ =gUnknown_3000FA4
- ldr r0, _0806F854 @ =sub_806F924
- str r0, [r1]
- b _0806F864
- .align 2, 0
-_0806F850: .4byte gUnknown_3000FA4
-_0806F854: .4byte sub_806F924
-_0806F858:
- bl sub_806F72C
- bl sub_806F71C
- movs r0, 0x2
- b _0806F866
-_0806F864:
- movs r0, 0
-_0806F866:
- pop {r1}
- bx r1
- thumb_func_end sub_806F7F8
-
- thumb_func_start sub_806F86C
-sub_806F86C: @ 806F86C
- push {lr}
- ldr r0, _0806F880 @ =gDifferentSaveFile
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806F88C
- ldr r0, _0806F884 @ =gUnknown_81C566A
- ldr r1, _0806F888 @ =sub_806F8C0
- bl sub_806F69C
- b _0806F894
- .align 2, 0
-_0806F880: .4byte gDifferentSaveFile
-_0806F884: .4byte gUnknown_81C566A
-_0806F888: .4byte sub_806F8C0
-_0806F88C:
- ldr r0, _0806F89C @ =gUnknown_81C55EA
- ldr r1, _0806F8A0 @ =sub_806F8A4
- bl sub_806F69C
-_0806F894:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806F89C: .4byte gUnknown_81C55EA
-_0806F8A0: .4byte sub_806F8A4
- thumb_func_end sub_806F86C
-
- thumb_func_start sub_806F8A4
-sub_806F8A4: @ 806F8A4
- push {lr}
- bl DisplayYesNoMenuDefaultYes
- ldr r1, _0806F8B8 @ =gUnknown_3000FA4
- ldr r0, _0806F8BC @ =sub_806F8DC
- str r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806F8B8: .4byte gUnknown_3000FA4
-_0806F8BC: .4byte sub_806F8DC
- thumb_func_end sub_806F8A4
-
- thumb_func_start sub_806F8C0
-sub_806F8C0: @ 806F8C0
- push {lr}
- bl DisplayYesNoMenuDefaultNo
- ldr r1, _0806F8D4 @ =gUnknown_3000FA4
- ldr r0, _0806F8D8 @ =sub_806F8DC
- str r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806F8D4: .4byte gUnknown_3000FA4
-_0806F8D8: .4byte sub_806F8DC
- thumb_func_end sub_806F8C0
-
- thumb_func_start sub_806F8DC
-sub_806F8DC: @ 806F8DC
- push {lr}
- bl Menu_ProcessInputNoWrapClearOnChoose
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0806F8FE
- cmp r1, 0
- bgt _0806F8F8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0806F910
- b _0806F91C
-_0806F8F8:
- cmp r1, 0x1
- beq _0806F910
- b _0806F91C
-_0806F8FE:
- ldr r1, _0806F908 @ =gUnknown_3000FA4
- ldr r0, _0806F90C @ =sub_806F924
- str r0, [r1]
- b _0806F91C
- .align 2, 0
-_0806F908: .4byte gUnknown_3000FA4
-_0806F90C: .4byte sub_806F924
-_0806F910:
- bl sub_806F72C
- bl sub_806F71C
- movs r0, 0x2
- b _0806F91E
-_0806F91C:
- movs r0, 0
-_0806F91E:
- pop {r1}
- bx r1
- thumb_func_end sub_806F8DC
-
- thumb_func_start sub_806F924
-sub_806F924: @ 806F924
- push {lr}
- bl sub_8112450
- ldr r0, _0806F938 @ =gUnknown_81C5625
- ldr r1, _0806F93C @ =sub_806F940
- bl sub_806F69C
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806F938: .4byte gUnknown_81C5625
-_0806F93C: .4byte sub_806F940
- thumb_func_end sub_806F924
-
- thumb_func_start sub_806F940
-sub_806F940: @ 806F940
- push {r4,lr}
- movs r0, 0
- bl IncrementGameStat
- ldr r4, _0806F95C @ =gDifferentSaveFile
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0806F960
- movs r0, 0x4
- bl TrySavingData
- movs r0, 0
- strb r0, [r4]
- b _0806F966
- .align 2, 0
-_0806F95C: .4byte gDifferentSaveFile
-_0806F960:
- movs r0, 0
- bl TrySavingData
-_0806F966:
- ldr r1, _0806F974 @ =gUnknown_3000FA4
- ldr r0, _0806F978 @ =sub_806F97C
- str r0, [r1]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806F974: .4byte gUnknown_3000FA4
-_0806F978: .4byte sub_806F97C
- thumb_func_end sub_806F940
-
- thumb_func_start sub_806F97C
-sub_806F97C: @ 806F97C
- push {lr}
- ldr r0, _0806F990 @ =gUnknown_3005420
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0806F99C
- ldr r0, _0806F994 @ =gUnknown_81C5647
- ldr r1, _0806F998 @ =sub_806F9B8
- bl sub_806F69C
- b _0806F9A4
- .align 2, 0
-_0806F990: .4byte gUnknown_3005420
-_0806F994: .4byte gUnknown_81C5647
-_0806F998: .4byte sub_806F9B8
-_0806F99C:
- ldr r0, _0806F9B0 @ =gUnknown_841614B
- ldr r1, _0806F9B4 @ =sub_806FA04
- bl sub_806F69C
-_0806F9A4:
- bl sub_806F738
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806F9B0: .4byte gUnknown_841614B
-_0806F9B4: .4byte sub_806FA04
- thumb_func_end sub_806F97C
-
- thumb_func_start sub_806F9B8
-sub_806F9B8: @ 806F9B8
- push {lr}
- bl RunTextPrinters_CheckPrinter0Active
- lsls r0, 16
- cmp r0, 0
- bne _0806F9D0
- movs r0, 0x30
- bl PlaySE
- ldr r1, _0806F9D8 @ =gUnknown_3000FA4
- ldr r0, _0806F9DC @ =SaveDialogCB_ReturnSuccess
- str r0, [r1]
-_0806F9D0:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806F9D8: .4byte gUnknown_3000FA4
-_0806F9DC: .4byte SaveDialogCB_ReturnSuccess
- thumb_func_end sub_806F9B8
-
- thumb_func_start SaveDialogCB_ReturnSuccess
-SaveDialogCB_ReturnSuccess: @ 806F9E0
- push {lr}
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _0806F9FE
- bl sub_806F744
- lsls r0, 24
- cmp r0, 0
- beq _0806F9FE
- bl sub_806F72C
- movs r0, 0x1
- b _0806FA00
-_0806F9FE:
- movs r0, 0
-_0806FA00:
- pop {r1}
- bx r1
- thumb_func_end SaveDialogCB_ReturnSuccess
-
- thumb_func_start sub_806FA04
-sub_806FA04: @ 806FA04
- push {lr}
- bl RunTextPrinters_CheckPrinter0Active
- lsls r0, 16
- cmp r0, 0
- bne _0806FA1C
- movs r0, 0x16
- bl PlaySE
- ldr r1, _0806FA24 @ =gUnknown_3000FA4
- ldr r0, _0806FA28 @ =SaveDialogCB_ReturnError
- str r0, [r1]
-_0806FA1C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806FA24: .4byte gUnknown_3000FA4
-_0806FA28: .4byte SaveDialogCB_ReturnError
- thumb_func_end sub_806FA04
-
- thumb_func_start SaveDialogCB_ReturnError
-SaveDialogCB_ReturnError: @ 806FA2C
- push {lr}
- bl sub_806F778
- lsls r0, 24
- cmp r0, 0
- beq _0806FA40
- bl sub_806F72C
- movs r0, 0x3
- b _0806FA42
-_0806FA40:
- movs r0, 0
-_0806FA42:
- pop {r1}
- bx r1
- thumb_func_end SaveDialogCB_ReturnError
-
- thumb_func_start sub_806FA48
-sub_806FA48: @ 806FA48
- push {lr}
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_806FA48
-
- thumb_func_start sub_806FA54
-sub_806FA54: @ 806FA54
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _0806FA66
- b _0806FB64
-_0806FA66:
- lsls r0, 2
- ldr r1, _0806FA70 @ =_0806FA74
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806FA70: .4byte _0806FA74
- .align 2, 0
-_0806FA74:
- .4byte _0806FA88
- .4byte _0806FB00
- .4byte _0806FB12
- .4byte _0806FB3C
- .4byte _0806FB60
-_0806FA88:
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl SetVBlankCallback
- bl ScanlineEffect_Stop
- movs r2, 0xA0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0806FAF4 @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0806FAF8 @ =0x81000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0806FAFC @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0806FACA:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _0806FACA
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- b _0806FB64
- .align 2, 0
-_0806FAF4: .4byte 0x040000d4
-_0806FAF8: .4byte 0x81000200
-_0806FAFC: .4byte 0x81000800
-_0806FB00:
- bl ResetSpriteData
- bl ResetTasks
- bl ResetPaletteFade
- bl ScanlineEffect_Clear
- b _0806FB64
-_0806FB12:
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0806FB34 @ =gUnknown_83A73B8
- movs r0, 0
- movs r2, 0x1
- bl InitBgsFromTemplates
- ldr r0, _0806FB38 @ =gUnknown_83A73BC
- bl InitWindows
- movs r0, 0
- movs r1, 0x8
- movs r2, 0xF0
- bl TextWindow_SetStdFrame0_WithPal
- b _0806FB64
- .align 2, 0
-_0806FB34: .4byte gUnknown_83A73B8
-_0806FB38: .4byte gUnknown_83A73BC
-_0806FB3C:
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, _0806FB5C @ =sub_806FA48
- bl SetVBlankCallback
- movs r0, 0x1
- bl EnableInterrupts
- b _0806FB64
- .align 2, 0
-_0806FB5C: .4byte sub_806FA48
-_0806FB60:
- movs r0, 0x1
- b _0806FB6E
-_0806FB64:
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_0806FB6E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806FA54
-
- thumb_func_start sub_806FB7C
-sub_806FB7C: @ 806FB7C
- push {lr}
- ldr r0, _0806FB9C @ =gMain + 0x438
- bl sub_806FA54
- cmp r0, 0
- beq _0806FB96
- ldr r0, _0806FBA0 @ =sub_806FBB8
- movs r1, 0x50
- bl CreateTask
- ldr r0, _0806FBA4 @ =sub_806FBA8
- bl SetMainCallback2
-_0806FB96:
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB9C: .4byte gMain + 0x438
-_0806FBA0: .4byte sub_806FBB8
-_0806FBA4: .4byte sub_806FBA8
- thumb_func_end sub_806FB7C
-
- thumb_func_start sub_806FBA8
-sub_806FBA8: @ 806FBA8
- push {lr}
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_806FBA8
-
- thumb_func_start sub_806FBB8
-sub_806FBB8: @ 806FBB8
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0806FBEC @ =gTasks+0x8
- adds r5, r0, r1
- ldr r0, _0806FBF0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806FBD8
- b _0806FCE8
-_0806FBD8:
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x6
- bls _0806FBE2
- b _0806FCE8
-_0806FBE2:
- lsls r0, 2
- ldr r1, _0806FBF4 @ =_0806FBF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806FBEC: .4byte gTasks+0x8
-_0806FBF0: .4byte gPaletteFade
-_0806FBF4: .4byte _0806FBF8
- .align 2, 0
-_0806FBF8:
- .4byte _0806FC14
- .4byte _0806FC80
- .4byte _0806FC8C
- .4byte _0806FC9C
- .4byte _0806FCB0
- .4byte _0806FCC8
- .4byte _0806FCD8
-_0806FC14:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, _0806FC74 @ =gUnknown_8419F54
- movs r4, 0
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- movs r3, 0xFF
- bl AddTextPrinterParameterized2
- movs r0, 0
- movs r1, 0x8
- movs r2, 0xF
- bl DrawTextBorderOuter
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0806FC78 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806FC7C
- bl InUnionRoom
- cmp r0, 0
- beq _0806FC7C
- movs r0, 0x5
- b _0806FCE6
- .align 2, 0
-_0806FC74: .4byte gUnknown_8419F54
-_0806FC78: .4byte gWirelessCommType
-_0806FC7C:
- movs r0, 0x1
- b _0806FCE6
-_0806FC80:
- bl sub_804C1C0
- bl sub_80DA45C
- movs r0, 0x2
- b _0806FCE6
-_0806FC8C:
- bl sub_80DA4A0
- lsls r0, 24
- cmp r0, 0
- beq _0806FCE8
- bl sav2_gender2_inplace_and_xFE
- b _0806FCE4
-_0806FC9C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x4
- b _0806FCE6
-_0806FCB0:
- bl FreeAllWindowBuffers
- ldr r0, _0806FCC4 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
- b _0806FCE8
- .align 2, 0
-_0806FCC4: .4byte gMain
-_0806FCC8:
- ldr r0, _0806FCD4 @ =sub_80DA634
- movs r1, 0x5
- bl CreateTask
- movs r0, 0x6
- b _0806FCE6
- .align 2, 0
-_0806FCD4: .4byte sub_80DA634
-_0806FCD8:
- ldr r0, _0806FCF0 @ =sub_80DA634
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0806FCE8
-_0806FCE4:
- movs r0, 0x3
-_0806FCE6:
- strh r0, [r5]
-_0806FCE8:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FCF0: .4byte sub_80DA634
- thumb_func_end sub_806FBB8
-
- thumb_func_start sub_806FCF4
-sub_806FCF4: @ 806FCF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r5, _0806FE54 @ =gUnknown_2037104
- ldr r0, _0806FE58 @ =gUnknown_83A73CC
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- ldr r4, _0806FE5C @ =0x0000021d
- adds r1, r4, 0
- movs r2, 0xD0
- bl TextWindow_SetStdFrame0_WithPal
- ldrb r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0xD
- bl DrawStdFrameWithCustomTileAndPalette
- ldr r4, _0806FE60 @ =gStringVar4
- movs r0, 0x3
- adds r1, r4, 0
- movs r2, 0x8
- bl sub_80F7FCC
- movs r6, 0x1
- negs r6, r6
- movs r0, 0x2
- adds r1, r4, 0
- adds r2, r6, 0
- bl GetStringWidth
- movs r2, 0x70
- subs r2, r0
- lsrs r2, 1
- lsls r2, 24
- lsrs r2, 24
- ldrb r0, [r5]
- ldr r1, _0806FE64 @ =gUnknown_83A73DC
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized3
- movs r0, 0x2
- adds r1, r4, 0
- adds r2, r6, 0
- bl GetStringWidth
- ldrb r0, [r5]
- ldr r1, _0806FE68 @ =gUnknown_83A73D4
- mov r9, r1
- str r1, [sp]
- str r6, [sp, 0x4]
- ldr r1, _0806FE6C @ =gUnknown_841617A
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0xE
- bl AddTextPrinterParameterized3
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_80F7FCC
- ldrb r0, [r5]
- adds r1, r4, 0
- movs r2, 0x3C
- movs r3, 0xE
- bl sub_812E6DC
- ldrb r0, [r5]
- mov r1, r9
- str r1, [sp]
- str r6, [sp, 0x4]
- ldr r1, _0806FE70 @ =gUnknown_8416181
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1C
- bl AddTextPrinterParameterized3
- movs r0, 0x4
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_80F7FCC
- ldrb r0, [r5]
- ldr r1, _0806FE74 @ =gUnknown_83A73D8
- mov r8, r1
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0
- movs r2, 0x3C
- movs r3, 0x1C
- bl AddTextPrinterParameterized3
- movs r7, 0x2A
- ldr r0, _0806FE78 @ =0x00000829
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806FE0A
- ldrb r0, [r5]
- mov r1, r9
- str r1, [sp]
- str r6, [sp, 0x4]
- ldr r1, _0806FE7C @ =gUnknown_8416188
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2A
- bl AddTextPrinterParameterized3
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_80F7FCC
- ldrb r0, [r5]
- mov r1, r8
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0
- movs r2, 0x3C
- movs r3, 0x2A
- bl AddTextPrinterParameterized3
- movs r7, 0x38
-_0806FE0A:
- ldrb r0, [r5]
- mov r1, r9
- str r1, [sp]
- str r6, [sp, 0x4]
- ldr r1, _0806FE80 @ =gUnknown_8416190
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized3
- movs r0, 0x2
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_80F7FCC
- ldrb r0, [r5]
- mov r1, r8
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0
- movs r2, 0x3C
- adds r3, r7, 0
- bl AddTextPrinterParameterized3
- ldrb r0, [r5]
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FE54: .4byte gUnknown_2037104
-_0806FE58: .4byte gUnknown_83A73CC
-_0806FE5C: .4byte 0x0000021d
-_0806FE60: .4byte gStringVar4
-_0806FE64: .4byte gUnknown_83A73DC
-_0806FE68: .4byte gUnknown_83A73D4
-_0806FE6C: .4byte gUnknown_841617A
-_0806FE70: .4byte gUnknown_8416181
-_0806FE74: .4byte gUnknown_83A73D8
-_0806FE78: .4byte 0x00000829
-_0806FE7C: .4byte gUnknown_8416188
-_0806FE80: .4byte gUnknown_8416190
- thumb_func_end sub_806FCF4
-
- thumb_func_start sub_806FE84
-sub_806FE84: @ 806FE84
- push {r4,lr}
- ldr r4, _0806FE9C @ =gUnknown_2037104
- ldrb r0, [r4]
- movs r1, 0
- bl ClearStdWindowAndFrame
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FE9C: .4byte gUnknown_2037104
- thumb_func_end sub_806FE84
-
- thumb_func_start sub_806FEA0
-sub_806FEA0: @ 806FEA0
- push {lr}
- movs r0, 0x5
- bl PlaySE
- bl GetStartMenuWindowId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl ClearStdWindowAndFrame
- bl RemoveStartMenuWindow
- bl sub_80696C0
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- thumb_func_end sub_806FEA0
-
- thumb_func_start AppendToList
-AppendToList: @ 806FEC8
- ldrb r3, [r1]
- adds r0, r3
- strb r2, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bx lr
- thumb_func_end AppendToList
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index bd98dd698..3573dcfaf 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -14443,7 +14443,7 @@ _080540DC:
movs r0, 0x32
strb r0, [r1]
ldr r4, _080540FC @ =gStringVar4
- ldr r1, _08054100 @ =gUnknown_8419F54
+ ldr r1, _08054100 @ =gText_SavingDontTurnOffThePower2
_080540EA:
adds r0, r4, 0
bl StringExpandPlaceholders
@@ -14454,7 +14454,7 @@ _080540EA:
b _08054396
.align 2, 0
_080540FC: .4byte gStringVar4
-_08054100: .4byte gUnknown_8419F54
+_08054100: .4byte gText_SavingDontTurnOffThePower2
_08054104:
bl InUnionRoom
cmp r0, 0
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 9a28cbc5e..1ebda42ab 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -785,7 +785,7 @@ _0808967C:
.align 2, 0
_0808968C: .4byte gMain
_08089690:
- bl sub_80F6E9C
+ bl LoadStdWindowFrameGfx
ldr r1, _080896A0 @ =gMain
movs r0, 0x87
lsls r0, 3
@@ -4723,8 +4723,8 @@ sub_808B66C: @ 808B66C
_0808B694: .4byte sub_808B21C
thumb_func_end sub_808B66C
- thumb_func_start sub_808B698
-sub_808B698: @ 808B698
+ thumb_func_start InitTrainerCard
+InitTrainerCard: @ 808B698
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, _0808B6C0 @ =gUnknown_20397A4
@@ -4770,10 +4770,10 @@ _0808B6F0: .4byte gUnknown_20397A4
_0808B6F4: .4byte 0x00007bcf
_0808B6F8: .4byte 0x0000045c
_0808B6FC: .4byte sub_80895B8
- thumb_func_end sub_808B698
+ thumb_func_end InitTrainerCard
- thumb_func_start sub_808B700
-sub_808B700: @ 808B700
+ thumb_func_start InitLinkPartnerTrainerCard
+InitLinkPartnerTrainerCard: @ 808B700
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
@@ -4822,7 +4822,7 @@ _0808B764: .4byte gTrainerCards
_0808B768: .4byte gLinkPlayers
_0808B76C: .4byte 0x00007bcf
_0808B770: .4byte sub_80895B8
- thumb_func_end sub_808B700
+ thumb_func_end InitLinkPartnerTrainerCard
thumb_func_start sub_808B774
sub_808B774: @ 808B774
@@ -5057,7 +5057,7 @@ _0808B948: .4byte 0x00000457
thumb_func_start sub_808B94C
sub_808B94C: @ 808B94C
push {lr}
- bl sub_808B698
+ bl InitTrainerCard
ldr r0, _0808B95C @ =sub_80895B8
bl SetMainCallback2
pop {r0}
@@ -5076,7 +5076,7 @@ sub_808B960: @ 808B960
bl memcpy
movs r0, 0
adds r1, r4, 0
- bl sub_808B700
+ bl InitLinkPartnerTrainerCard
ldr r0, _0808B98C @ =sub_80895B8
bl SetMainCallback2
pop {r4}
@@ -5098,7 +5098,7 @@ sub_808B990: @ 808B990
bl memcpy
movs r0, 0
adds r1, r4, 0
- bl sub_808B700
+ bl InitLinkPartnerTrainerCard
ldr r0, _0808B9BC @ =sub_80895B8
bl SetMainCallback2
pop {r4}
diff --git a/common_syms/help_system_812B1E0.txt b/common_syms/help_system_812B1E0.txt
index 7986bedb5..5e56cc230 100644
--- a/common_syms/help_system_812B1E0.txt
+++ b/common_syms/help_system_812B1E0.txt
@@ -1,2 +1,2 @@
gUnknown_3005E9C
-gUnknown_3005EA0
+gSomeVariableBackup
diff --git a/common_syms/save.txt b/common_syms/save.txt
index 9b77840e0..a0106f6fa 100644
--- a/common_syms/save.txt
+++ b/common_syms/save.txt
@@ -9,4 +9,4 @@ gSaveUnusedVar
gSaveFileStatus
gGameContinueCallback
gRamSaveSectionLocations
-gUnknown_3005420
+gSaveSucceeded
diff --git a/data/map_event_scripts.inc b/data/map_event_scripts.inc
index abfd0d550..62a34d33c 100644
--- a/data/map_event_scripts.inc
+++ b/data/map_event_scripts.inc
@@ -774,7 +774,7 @@ EventScript_1A4EAE:: @ 81A4EAE
return
EventScript_1A4EAF:: @ 81A4EAF
- special sub_806F67C
+ special Field_AskSaveTheGame
waitstate
return
@@ -4447,21 +4447,33 @@ SevenIsland_TrainerTower_1F_EventScript_1C54EA:: @ 81C54EA
gUnknown_81C555B:: @ 81C555B
.incbin "baserom.gba", 0x1C555B, 0x6E
-gUnknown_81C55C9:: @ 81C55C9
- .incbin "baserom.gba", 0x1C55C9, 0x21
+gText_WouldYouLikeToSaveTheGame:: @ 81C55C9
+ .string "Would you like to save the game?$"
-gUnknown_81C55EA:: @ 81C55EA
- .incbin "baserom.gba", 0x1C55EA, 0x3B
+gText_AlreadySaveFile_WouldLikeToOverwrite:: @ 81C55EA
+ .string "There is already a saved file.\n"
+ .string "Is it okay to overwrite it?$"
-gUnknown_81C5625:: @ 81C5625
- .incbin "baserom.gba", 0x1C5625, 0x22
+gText_SavingDontTurnOffThePower:: @ 81C5625
+ .string "SAVING…\n"
+ .string "DON'T TURN OFF THE POWER.$"
-gUnknown_81C5647:: @ 81C5647
- .incbin "baserom.gba", 0x1C5647, 0x23
+gText_PlayerSavedTheGame:: @ 81C5647
+ .string "{PLAYER} saved the game.$"
+
+gUnknown_81C565A::
+ .string "セーブに しっぱい しました‥$"
@ 0xE5
-gUnknown_81C566A:: @ 81C566A
- .incbin "baserom.gba", 0x1C566A, 0xE5
+gText_DifferentGameFile:: @ 81C566A
+ .string "WARNING!\p"
+ .string "There is a different game file that\n"
+ .string "is already saved.\p"
+ .string "If you save now, the other file's\n"
+ .string "adventure, including items and\l"
+ .string "POKéMON, will be entirely lost.\p"
+ .string "Are you sure you want to save now\n"
+ .string "and overwrite the other save file?$"
gOtherText_NewName:: @ 81C574F
.string "NEW NAME$"
diff --git a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc
index 77ff855e4..51865301c 100644
--- a/data/maps/PalletTown_PlayersHouse_2F/scripts.inc
+++ b/data/maps/PalletTown_PlayersHouse_2F/scripts.inc
@@ -36,7 +36,7 @@ PalletTown_PlayersHouse_2F_EventScript_168CE4:: @ 8168CE4
goto_if_eq EventScript_1A7AE0
lockall
setvar VAR_0x8004, 32
- special sub_812B220
+ special Special_SetSomeVariable
setvar VAR_0x8004, 1
special sub_80CA86C
playse SE_PC_ON
diff --git a/data/specials.inc b/data/specials.inc
index 6111e4836..d8d208d43 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -102,7 +102,7 @@ gSpecials:: @ 815FD60
def_special nullsub_75
def_special nullsub_75
def_special sub_8081128
- def_special sub_806F67C
+ def_special Field_AskSaveTheGame
def_special nullsub_56
def_special sub_80FEE44
def_special sub_80BDA7C
@@ -390,9 +390,9 @@ gSpecials:: @ 815FD60
def_special TakePokemonFromRoute5Daycare
def_special ScrSpecial_SeaGallopFerry
def_special sub_80CC48C
- def_special sub_812B220
- def_special sub_812B234
- def_special sub_812B248
+ def_special Special_SetSomeVariable
+ def_special HelpSystem_BackupSomeVariable
+ def_special HelpSystem_RestoreSomeVariable
def_special ValidateReceivedWonderCard
def_special sub_810B810
def_special sub_811999C
diff --git a/data/start_menu.s b/data/start_menu.s
deleted file mode 100644
index e004a6628..000000000
--- a/data/start_menu.s
+++ /dev/null
@@ -1,28 +0,0 @@
- .section .rodata
- .align 2
-gUnknown_83A7344:: @ 83A7344
- .incbin "baserom.gba", 0x3A7344, 0x48
-
-gUnknown_83A738C:: @ 83A738C
- .incbin "baserom.gba", 0x3A738C, 0x8
-
-gUnknown_83A7394:: @ 83A7394
- .incbin "baserom.gba", 0x3A7394, 0x24
-
-gUnknown_83A73B8:: @ 83A73B8
- .incbin "baserom.gba", 0x3A73B8, 0x4
-
-gUnknown_83A73BC:: @ 83A73BC
- .incbin "baserom.gba", 0x3A73BC, 0x10
-
-gUnknown_83A73CC:: @ 83A73CC
- .incbin "baserom.gba", 0x3A73CC, 0x8
-
-gUnknown_83A73D4:: @ 83A73D4
- .incbin "baserom.gba", 0x3A73D4, 0x4
-
-gUnknown_83A73D8:: @ 83A73D8
- .incbin "baserom.gba", 0x3A73D8, 0x4
-
-gUnknown_83A73DC:: @ 83A73DC
- .incbin "baserom.gba", 0x3A73DC, 0x284
diff --git a/data/strings.s b/data/strings.s
index 4f0fefb19..52abc36de 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -45,7 +45,7 @@ gExpandedPlaceholder_Green:: @ 8415A5C
gText_EggNickname:: @ 8415A62
.string "EGG$"
-gText_Pokemon:: @ 8415A66
+gStartMenuText_Pokemon:: @ 8415A66
.string "POKéMON$"
gText_NewGame:: @ 8415A6E
@@ -64,34 +64,57 @@ gText_MysteryGift:: @ 8415A97
.string "MYSTERY GIFT$"
gText_WirelessAdapterIsNotConnected:: @ 8415AA4
- .string "The Wireless Adapter is not\nconnected.$"
+ .string "The Wireless Adapter is not\n"
+ .string "connected.$"
gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached:: @ 8415ACB
- .string "MYSTERY GIFT can't be used while\nthe Wireless Adapter is attached.$"
+ .string "MYSTERY GIFT can't be used while\n"
+ .string "the Wireless Adapter is attached.$"
gUnknown_8415B0E:: @ 0x8415B0E
- .string "がいぶデ-タにより レポ-トを こうしんします\nしばらく おまちください$"
+ .string "がいぶデ-タにより レポ-トを こうしんします\n"
+ .string "しばらく おまちください$"
gUnknown_8415B33:: @ 0x8415B33
.string "レポ-トが こうしんされました!$"
gUnknown_8415B44:: @ 0x8415B44
- .string "レポ-トが こうしんされました!\pこれいじょう\nレポ-トが かききれないので\lバックアップカ-トリッジを\lこうかんしてください!\pくわしくは\nにんてんどう サ-ビスセンタ- まで\lおといあわせ ください$"
+ .string "レポ-トが こうしんされました!\p"
+ .string "これいじょう\n"
+ .string "レポ-トが かききれないので\l"
+ .string "バックアップカ-トリッジを\l"
+ .string "こうかんしてください!\p"
+ .string "くわしくは\n"
+ .string "にんてんどう サ-ビスセンタ- まで\l"
+ .string "おといあわせ ください$"
gUnknown_8415BAA:: @ 0x8415BAA
- .string "レポ-トの こうしんは\nしっぱいしました!\pバックアップカ-トリッジを\nこうかんしてください!\pくわしくは\nにんてんどう サ-ビスセンタ- まで\lおといあわせ ください$"
+ .string "レポ-トの こうしんは\n"
+ .string "しっぱいしました!\p"
+ .string "バックアップカ-トリッジを\n"
+ .string "こうかんしてください!\p"
+ .string "くわしくは\n"
+ .string "にんてんどう サ-ビスセンタ- まで\l"
+ .string "おといあわせ ください$"
gText_SaveFileCorruptedPrevWillBeLoaded:: @ 8415BFF
- .string "The save file is corrupted.\pThe previous save file will be\nloaded.$"
+ .string "The save file is corrupted.\p"
+ .string "The previous save file will be\n"
+ .string "loaded.$"
gText_SaveFileHasBeenDeleted:: @ 8415C42
- .string "The save file has been\ndeleted...$"
+ .string "The save file has been\n"
+ .string "deleted...$"
gText_1MSubCircuitBoardNotInstalled:: @ 8415C64
- .string "The 1M sub-circuit board is\nnot installed.$"
+ .string "The 1M sub-circuit board is\n"
+ .string "not installed.$"
gTextJP_InternalBatteryHasRunDry:: @ 0x8415C8F
- .string "でんちぎれの ために\nとけいが うごかなくなりました\pとけいに かんけいする できごとは おきませんが\nゲ-ムを つづけて あそぶことは できます$"
+ .string "でんちぎれの ために\n"
+ .string "とけいが うごかなくなりました\p"
+ .string "とけいに かんけいする できごとは おきませんが\n"
+ .string "ゲ-ムを つづけて あそぶことは できます$"
gUnknown_8415CD9:: @ 0x8415CD9
.string "しゅじんこう$"
@@ -311,20 +334,28 @@ gUnknown_8416008:: @ 8416008
.string "Welcome to the HALL OF FAME!$"
gUnknown_8416025:: @ 0x8416025
- .string " みつけた ポケモン {STR_VAR_1}!\nつかまえた ポケモン {STR_VAR_2}!\pオダマキはかせの\nポケモンずかん ひょうか!\pオダマキ“どれどれ\p$"
+ .string " みつけた ポケモン {STR_VAR_1}!\n"
+ .string "つかまえた ポケモン {STR_VAR_2}!\p"
+ .string "オダマキはかせの\n"
+ .string "ポケモンずかん ひょうか!\p"
+ .string "オダマキ“どれどれ\p"
+ .string "$"
gUnknown_8416067:: @ 0x8416067
- .string " ここまでの レポ-トを かきしるしています!\nでんげんを きらないでください$"
+ .string " ここまでの レポ-トを かきしるしています!\n"
+ .string "でんげんを きらないでください$"
.align 2
gUnknown_8416090:: @ 8416090
- .string "The HALL OF FAME data is\ncorrupted.$"
+ .string "The HALL OF FAME data is\n"
+ .string "corrupted.$"
gUnknown_84160B4:: @ 84160B4
.string "HALL OF FAME No. {STR_VAR_1}$"
gUnknown_84160C8:: @ 84160C8
- .string "LEAGUE CHAMPION!\nCONGRATULATIONS!$"
+ .string "LEAGUE CHAMPION!\n"
+ .string "CONGRATULATIONS!$"
.align 2
gUnknown_84160EC:: @ 84160EC
@@ -343,7 +374,8 @@ gUnknown_8416104:: @ 8416104
.string "IDNo.$"
gUnknown_841610A:: @ 0x841610A
- .string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}オダマキはかせが ピンチだ!\nポケモンを だして たすけてあげよう!$"
+ .string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}オダマキはかせが ピンチだ!\n"
+ .string "ポケモンを だして たすけてあげよう!$"
gUnknown_8416133:: @ 0x8416133
.string "{HIGHLIGHT WHITE2}{COLOR DARK_GREY}このポケモンにしますか?$"
@@ -351,19 +383,21 @@ gUnknown_8416133:: @ 0x8416133
gUnknown_8416146:: @ 0x8416146
.string "ポケモン$"
-gUnknown_841614B:: @ 841614B
- .string "Save error.\pPlease exchange the\nbackup memory.$"
+gText_SaveError_PleaseExchangeBackupMemory:: @ 841614B
+ .string "Save error.\p"
+ .string "Please exchange the\n"
+ .string "backup memory.$"
-gUnknown_841617A:: @ 841617A
+gSaveStatName_Player:: @ 841617A
.string "PLAYER$"
-gUnknown_8416181:: @ 8416181
+gSaveStatName_Badges:: @ 8416181
.string "BADGES$"
-gUnknown_8416188:: @ 8416188
+gSaveStatName_Pokedex:: @ 8416188
.string "POKéDEX$"
-gUnknown_8416190:: @ 8416190
+gSaveStatName_Time:: @ 8416190
.string "TIME$"
gUnknown_8416195::
@@ -482,28 +516,28 @@ gText_GoBackToThePreviousMenu::
gText_WhatWouldYouLikeToDo:: @ 8416262
.string "What would you like to do?$"
-gUnknown_841627D::
+gStartMenuText_Pokedex::
.string "POKéDEX$"
-gUnknown_8416285:: @ 8416285
+gStartMenuText_Bag:: @ 8416285
.string "BAG$"
gUnknown_8416289::
.string "ポケナビ$"
-gUnknown_841628E::
+gStartMenuText_Player::
.string "{PLAYER}$"
-gUnknown_8416291::
+gStartMenuText_Save::
.string "SAVE$"
-gUnknown_8416296::
+gStartMenuText_Option::
.string "OPTION$"
-gUnknown_841629D::
+gStartMenuText_Exit::
.string "EXIT$"
-gUnknown_84162A2::
+gStartMenuText_Retire::
.string "RETIRE$"
gUnknown_84162A9:: @ 84162A9
@@ -542,7 +576,8 @@ gText_IsSelected:: @ 8416301
.string "selected.$"
gUnknown_841630F:: @ 841630F
- .string "You can't write\nMAIL here.$"
+ .string "You can't write\n"
+ .string "MAIL here.$"
gText_ThereIsNoPokemon:: @ 841632A
.string "There is no\n"
@@ -556,43 +591,58 @@ gText_ItemCantBeHeld:: @ 841635E
.string "The {STR_VAR_1} can't be held.$"
gText_TheStrVar1CantBeHeldHere:: @ 8416374
- .string "The {STR_VAR_1} can't be held\nhere.$"
+ .string "The {STR_VAR_1} can't be held\n"
+ .string "here.$"
gUnknown_841638F:: @ 841638F
- .string "Deposit how many\n{STR_VAR_1}(s)?$"
+ .string "Deposit how many\n"
+ .string "{STR_VAR_1}(s)?$"
gUnknown_84163A7:: @ 84163A7
- .string "Deposited {STR_VAR_2}\n{STR_VAR_1}(s).$"
+ .string "Deposited {STR_VAR_2}\n"
+ .string "{STR_VAR_1}(s).$"
gUnknown_84163BB:: @ 84163BB
- .string "There's no room to\nstore items.$"
+ .string "There's no room to\n"
+ .string "store items.$"
gText_TossOutHowManyStrVar1s:: @ 84163DB
- .string "Toss out how many\n{STR_VAR_1}(s)?$"
+ .string "Toss out how many\n"
+ .string "{STR_VAR_1}(s)?$"
gText_ThrewAwayStrVar2StrVar1s:: @ 84163F4
- .string "Threw away {STR_VAR_2}\n{STR_VAR_1}(s).$"
+ .string "Threw away {STR_VAR_2}\n"
+ .string "{STR_VAR_1}(s).$"
gText_ThrowAwayStrVar2OfThisItemQM:: @ 8416409
- .string "Throw away {STR_VAR_2} of\nthis item?$"
+ .string "Throw away {STR_VAR_2} of\n"
+ .string "this item?$"
gUnknown_8416425:: @ 8416425
- .string "OAK: {PLAYER}!\nThis isn't the time to use that!{PAUSE_UNTIL_PRESS}$"
+ .string "OAK: {PLAYER}!\n"
+ .string "This isn't the time to use that!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416451:: @ 8416451
.string "You can't dismount your BIKE here.{PAUSE_UNTIL_PRESS}$"
gText_ItemfinderResponding:: @ 8416476
- .string "Huh?\nThe ITEMFINDER's responding!\pThere's an item buried around here!{PAUSE_UNTIL_PRESS}$"
+ .string "Huh?\n"
+ .string "The ITEMFINDER's responding!\p"
+ .string "There's an item buried around here!{PAUSE_UNTIL_PRESS}$"
gText_ItemfinderShakingWildly:: @ 84164BE
- .string "Oh!\nThe ITEMFINDER's shaking wildly!\pThere's an item buried underfoot!\p‥ ‥ ‥ ‥ ‥ ‥{PAUSE_UNTIL_PRESS}$"
+ .string "Oh!\n"
+ .string "The ITEMFINDER's shaking wildly!\p"
+ .string "There's an item buried underfoot!\p"
+ .string "‥ ‥ ‥ ‥ ‥ ‥{PAUSE_UNTIL_PRESS}$"
gText_NopeTheresNoResponse:: @ 8416513
- .string "‥ ‥ ‥ ‥Nope!\nThere's no response.{PAUSE_UNTIL_PRESS}$"
+ .string "‥ ‥ ‥ ‥Nope!\n"
+ .string "There's no response.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416537:: @ 8416537
- .string "Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}$"
+ .string "Your COINS:\n"
+ .string "{STR_VAR_1}{PAUSE_UNTIL_PRESS}$"
gUnknown_8416548:: @ 0x8416548
.string "わざマシンを きどうした!$"
@@ -601,19 +651,28 @@ gUnknown_8416556:: @ 0x8416556
.string "ひでんマシンを きどうした!$"
gUnknown_8416565:: @ 0x8416565
- .string "なかには {STR_VAR_1}が\nきろくされていた!\p{STR_VAR_1}を\nポケモンに おぼえさせますか?$"
+ .string "なかには {STR_VAR_1}が\n"
+ .string "きろくされていた!\p"
+ .string "{STR_VAR_1}を\n"
+ .string "ポケモンに おぼえさせますか?$"
gUnknown_841658C:: @ 841658C
- .string "{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
+ .string "{PLAYER} used the\n"
+ .string "{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
gUnknown_841659E:: @ 841659E
- .string "But the effects of a REPEL\nlingered from earlier.{PAUSE_UNTIL_PRESS}$"
+ .string "But the effects of a REPEL\n"
+ .string "lingered from earlier.{PAUSE_UNTIL_PRESS}$"
gUnknown_84165D2:: @ 84165D2
- .string "{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}$"
+ .string "{PLAYER} used the\n"
+ .string "{STR_VAR_2}.\p"
+ .string "Wild POKéMON will be lured.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416600:: @ 8416600
- .string "{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}$"
+ .string "{PLAYER} used the\n"
+ .string "{STR_VAR_2}.\p"
+ .string "Wild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416631:: @ 8416631
.string "The BOX is full.{PAUSE_UNTIL_PRESS}$"
@@ -658,7 +717,8 @@ gText_BerryPouch:: @ 841670A
.string "BERRY POUCH$"
gText_TheBerryPouchWillBePutAway:: @ 8416716
- .string "The BERRY POUCH will be\nput away.$"
+ .string "The BERRY POUCH will be\n"
+ .string "put away.$"
gUnknown_8416738:: @ 0x8416738
.string "BUY$"
@@ -676,43 +736,54 @@ gUnknown_8416757:: @ 8416757
.string "Quit shopping.$"
gUnknown_8416766:: @ 8416766
- .string "{STR_VAR_1}? Certainly.\nHow many would you like?$"
+ .string "{STR_VAR_1}? Certainly.\n"
+ .string "How many would you like?$"
gUnknown_841678E:: @ 841678E
- .string "{STR_VAR_1}, and you want {STR_VAR_2}.\nThat will be ¥{STR_VAR_3}. Okay?$"
+ .string "{STR_VAR_1}, and you want {STR_VAR_2}.\n"
+ .string "That will be ¥{STR_VAR_3}. Okay?$"
gUnknown_84167BB:: @ 0x84167BB
- .string "{STR_VAR_1} だね!\n{STR_VAR_2}¥ だけど かうかい?$"
+ .string "{STR_VAR_1} だね!\n"
+ .string "{STR_VAR_2}¥ だけど かうかい?$"
gUnknown_84167D0:: @ 0x84167D0
- .string "{STR_VAR_1} ですね!\n{STR_VAR_2}¥ だけど かいますか?$"
+ .string "{STR_VAR_1} ですね!\n"
+ .string "{STR_VAR_2}¥ だけど かいますか?$"
gUnknown_84167E7:: @ 84167E7
- .string "Here you are!\nThank you!$"
+ .string "Here you are!\n"
+ .string "Thank you!$"
gUnknown_8416800:: @ 0x8416800
- .string "どうも ありがとう!\nじたくの パソコンに おくって おきますね!$"
+ .string "どうも ありがとう!\n"
+ .string "じたくの パソコンに おくって おきますね!$"
gUnknown_8416822:: @ 0x8416822
- .string "どうも ありがとう!\nじたくの パソコンに おくって おくね!$"
+ .string "どうも ありがとう!\n"
+ .string "じたくの パソコンに おくって おくね!$"
gUnknown_8416842:: @ 8416842
.string "You don't have enough money.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416861:: @ 8416861
- .string "You have no more room for this\nitem.{PAUSE_UNTIL_PRESS}$"
+ .string "You have no more room for this\n"
+ .string "item.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416888:: @ 0x8416888
- .string "{STR_VAR_1}を\nいれる ばしょが いっぱいです{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1}を\n"
+ .string "いれる ばしょが いっぱいです{PAUSE_UNTIL_PRESS}$"
gUnknown_841689E:: @ 841689E
.string "Is there anything else I can do?$"
gUnknown_84168BF:: @ 0x84168BF
- .string "その ほかに\nなにか ちからに なれることは?$"
+ .string "その ほかに\n"
+ .string "なにか ちからに なれることは?$"
gUnknown_84168D7:: @ 0x84168D7
- .string "プレミアボ-ル 1コ\nおまけ しておきますね!{PAUSE_UNTIL_PRESS}$"
+ .string "プレミアボ-ル 1コ\n"
+ .string "おまけ しておきますね!{PAUSE_UNTIL_PRESS}$"
gText_OhNoICantBuyThat:: @ 84168F1
.string "{STR_VAR_1}? Oh, no.\n"
@@ -727,7 +798,8 @@ gText_ICanPayThisMuch_WouldThatBeOkay:: @ 8416936
.string "Would that be okay?$"
gText_TurnedOverItemsWorthYen:: @ 8416959
- .string "Turned over the {STR_VAR_1}シSス\nworth ¥{STR_VAR_3}.$"
+ .string "Turned over the {STR_VAR_1}シSス\n"
+ .string "worth ¥{STR_VAR_3}.$"
gText_PokedollarVar1:: @ 841697A
.string "¥{STR_VAR_1}$"
@@ -788,34 +860,43 @@ gUnknown_84169F8:: @ 84169F8
.string "that POKéMON.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A1E:: @ 8416A1E
- .string "{STR_VAR_1} can't be switched\nout!{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} can't be switched\n"
+ .string "out!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A3A:: @ 8416A3A
- .string "{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} is already\n"
+ .string "in battle!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A55:: @ 8416A55
- .string "{STR_VAR_1} has already been\nselected.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} has already been\n"
+ .string "selected.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A75:: @ 8416A75
- .string "{STR_VAR_1} has no energy\nleft to battle!{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} has no energy\n"
+ .string "left to battle!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A98:: @ 8416A98
- .string "You can't switch {STR_VAR_1}'s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}$"
+ .string "You can't switch {STR_VAR_1}'s\n"
+ .string "POKéMON with one of yours!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416ACB:: @ 8416ACB
.string "An EGG can't battle!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416AE2:: @ 8416AE2
- .string "This can't be used until a new\nBADGE is obtained.{PAUSE_UNTIL_PRESS}$"
+ .string "This can't be used until a new\n"
+ .string "BADGE is obtained.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416B16:: @ 8416B16
- .string "No more than three POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}$"
+ .string "No more than three POKéMON\n"
+ .string "may enter.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416B3E:: @ 8416B3E
- .string "No more than two POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}$"
+ .string "No more than two POKéMON\n"
+ .string "may enter.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416B64:: @ 8416B64
- .string "Send the removed MAIL to\nyour PC?$"
+ .string "Send the removed MAIL to\n"
+ .string "your PC?$"
gUnknown_8416B86:: @ 8416B86
.string "The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}$"
@@ -824,71 +905,101 @@ gUnknown_8416BA6:: @ 8416BA6
.string "Your PC's MAILBOX is full.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416BC3:: @ 8416BC3
- .string "If the MAIL is removed, the\nmessage will be lost. Okay?$"
+ .string "If the MAIL is removed, the\n"
+ .string "message will be lost. Okay?$"
gUnknown_8416BFB:: @ 8416BFB
- .string "MAIL must be removed before\nholding an item.{PAUSE_UNTIL_PRESS}$"
+ .string "MAIL must be removed before\n"
+ .string "holding an item.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416C2A:: @ 8416C2A
- .string "{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} was given the\n"
+ .string "{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416C49:: @ 8416C49
- .string "{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?$"
+ .string "{STR_VAR_1} is already holding\n"
+ .string "one {STR_VAR_2}.\p"
+ .string "Would you like to switch the\n"
+ .string "two items?$"
gUnknown_8416C8F:: @ 8416C8F
- .string "{STR_VAR_1} isn't holding\nanything.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} isn't holding\n"
+ .string "anything.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416CAC:: @ 8416CAC
- .string "Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$"
+ .string "Received the {STR_VAR_2}\n"
+ .string "from {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416CC7:: @ 8416CC7
- .string "MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}$"
+ .string "MAIL was taken from the\n"
+ .string "POKéMON.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416CEA:: @ 8416CEA
- .string "The {STR_VAR_2} was taken and\nreplaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$"
+ .string "The {STR_VAR_2} was taken and\n"
+ .string "replaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416D17:: @ 8416D17
- .string "This POKéMON is holding an\nitem. It cannot hold MAIL.{PAUSE_UNTIL_PRESS}$"
+ .string "This POKéMON is holding an\n"
+ .string "item. It cannot hold MAIL.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416D4F:: @ 8416D4F
- .string "MAIL was transferred from\nthe MAILBOX.{PAUSE_UNTIL_PRESS}$"
+ .string "MAIL was transferred from\n"
+ .string "the MAILBOX.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416D78:: @ 8416D78
- .string "The {STR_VAR_1} is full. The POKéMON's\nitem could not be removed.{PAUSE_UNTIL_PRESS}$"
+ .string "The {STR_VAR_1} is full. The POKéMON's\n"
+ .string "item could not be removed.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416DB3:: @ 8416DB3
- .string "{STR_VAR_1} learned\n{STR_VAR_2}!$"
+ .string "{STR_VAR_1} learned\n"
+ .string "{STR_VAR_2}!$"
gUnknown_8416DC2:: @ 8416DC2
- .string "{STR_VAR_1} and {STR_VAR_2}\nare not compatible.\p{STR_VAR_2} can't be\nlearned.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} and {STR_VAR_2}\n"
+ .string "are not compatible.\p"
+ .string "{STR_VAR_2} can't be\n"
+ .string "learned.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416DF7:: @ 8416DF7
- .string "{STR_VAR_1} wants to learn the\nmove {STR_VAR_2}.\pHowever, {STR_VAR_1} already\nknows four moves.\pShould a move be deleted and\nreplaced with {STR_VAR_2}?$"
+ .string "{STR_VAR_1} wants to learn the\n"
+ .string "move {STR_VAR_2}.\p"
+ .string "However, {STR_VAR_1} already\n"
+ .string "knows four moves.\p"
+ .string "Should a move be deleted and\n"
+ .string "replaced with {STR_VAR_2}?$"
gUnknown_8416E6B:: @ 8416E6B
- .string "Stop trying to teach\n{STR_VAR_2}?$"
+ .string "Stop trying to teach\n"
+ .string "{STR_VAR_2}?$"
gUnknown_8416E84:: @ 8416E84
- .string "{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} did not learn the\n"
+ .string "move {STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416EA4:: @ 8416EA4
.string "Which move should be forgotten?{PAUSE_UNTIL_PRESS}$"
gUnknown_8416EC6:: @ 8416EC6
- .string "1, {PAUSE 0x0F}2, and{PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}{PLAY_SE SE_KON}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd...{PAUSE_UNTIL_PRESS}$"
+ .string "1, {PAUSE 0x0F}2, and{PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}{PLAY_SE SE_KON}Poof!\p"
+ .string "{STR_VAR_1} forgot how to\n"
+ .string "use {STR_VAR_2}.\p"
+ .string "And...{PAUSE_UNTIL_PRESS}$"
gUnknown_8416F10:: @ 8416F10
- .string "{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} already knows\n"
+ .string "{STR_VAR_2}.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416F27:: @ 8416F27
.string "{STR_VAR_1}'s HP was restored\n"
.string "by {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}$"
gUnknown_8416F4E:: @ 8416F4E
- .string "{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} was cured of its\n"
+ .string "poisoning.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416F6F:: @ 8416F6F
- .string "{STR_VAR_1} was cured of\nparalysis.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} was cured of\n"
+ .string "paralysis.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416F8C:: @ 8416F8C
.string "{STR_VAR_1} woke up.{PAUSE_UNTIL_PRESS}$"
@@ -903,7 +1014,8 @@ gUnknown_8416FC7:: @ 8416FC7
.string "PP was restored.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416FDA:: @ 0x8416FDA
- .string "{STR_VAR_1}は\nげんきを とりもどした!{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1}は\n"
+ .string "げんきを とりもどした!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416FED:: @ 8416FED
.string "{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}$"
@@ -912,39 +1024,49 @@ gUnknown_8417002:: @ 8417002
.string "{STR_VAR_1}'s PP increased.{PAUSE_UNTIL_PRESS}$"
gUnknown_8417017:: @ 8417017
- .string "{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}.$"
+ .string "{STR_VAR_1} was elevated to\n"
+ .string "Lv. {STR_VAR_2}.$"
gUnknown_8417032:: @ 8417032
- .string "{STR_VAR_1}'s base {STR_VAR_2}\nstat was raised.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1}'s base {STR_VAR_2}\n"
+ .string "stat was raised.{PAUSE_UNTIL_PRESS}$"
gUnknown_8417052:: @ 8417052
- .string "{STR_VAR_1} snapped out of its\nconfusion.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} snapped out of its\n"
+ .string "confusion.{PAUSE_UNTIL_PRESS}$"
gUnknown_8417075:: @ 8417075
- .string "{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}$"
+ .string "{STR_VAR_1} got over its\n"
+ .string "infatuation.{PAUSE_UNTIL_PRESS}$"
gUnknown_8417094:: @ 0x8417094
- .string "That's your only\nPOKéMON for battle.$"
+ .string "That's your only\n"
+ .string "POKéMON for battle.$"
.align 2
gUnknown_84170BC:: @ 84170BC
- .string "That POKéMON can't be traded\nnow.$"
+ .string "That POKéMON can't be traded\n"
+ .string "now.$"
.align 2
gUnknown_84170E0:: @ 84170E0
.string "An EGG can't be traded now.$"
gUnknown_84170FC:: @ 0x84170FC
- .string "The other TRAINER's POKéMON\ncan't be traded now.$"
+ .string "The other TRAINER's POKéMON\n"
+ .string "can't be traded now.$"
gUnknown_841712D:: @ 0x841712D
- .string " The other TRAINER can't accept\nthat POKéMON now.$"
+ .string " The other TRAINER can't accept\n"
+ .string "that POKéMON now.$"
gUnknown_8417161:: @ 0x8417161
- .string " You can't trade with that\nTRAINER now.$"
+ .string " You can't trade with that\n"
+ .string "TRAINER now.$"
gUnknown_841718B:: @ 0x841718B
- .string " That isn't the type of POKéMON\nthat the other TRAINER wants.$"
+ .string " That isn't the type of POKéMON\n"
+ .string "that the other TRAINER wants.$"
gUnknown_84171C9:: @ 0x84171C9
.string " That isn't an EGG.$"
@@ -1058,10 +1180,17 @@ gUnknown_841744F:: @ 0x841744F
.string "LEARNED$"
gUnknown_8417457:: @ 8417457
- .string "OAK: It's important to get to know\nyour POKéMON thoroughly.\p$"
+ .string "OAK: It's important to get to know\n"
+ .string "your POKéMON thoroughly.\p"
+ .string "$"
gUnknown_8417494:: @ 8417494
- .string "This is a list of your POKéMON,\n{PLAYER}.\pOpen this to check the skills\nand moves of your POKéMON.\pYou also choose POKéMON here if\nyou want to use an item on one.{PAUSE_UNTIL_PRESS}$"
+ .string "This is a list of your POKéMON,\n"
+ .string "{PLAYER}.\p"
+ .string "Open this to check the skills\n"
+ .string "and moves of your POKéMON.\p"
+ .string "You also choose POKéMON here if\n"
+ .string "you want to use an item on one.{PAUSE_UNTIL_PRESS}$"
gUnknown_8417533:: @ 0x8417533
.string "Cut a tree or grass.$"
@@ -1100,10 +1229,12 @@ gUnknown_84175FB:: @ 0x84175FB
.string "Return to a healing spot.$"
gUnknown_8417615:: @ 8417615
- .string "Want to escape from here and return\nto {STR_VAR_1}?$"
+ .string "Want to escape from here and return\n"
+ .string "to {STR_VAR_1}?$"
gUnknown_8417640:: @ 8417640
- .string "Want to return to the healing spot\nused last in {STR_VAR_1}?$"
+ .string "Want to return to the healing spot\n"
+ .string "used last in {STR_VAR_1}?$"
gUnknown_8417674:: @ 8417674
.string "ATTACK$"
@@ -1163,7 +1294,8 @@ gText_TakeOutItemsFromThePC:: @ 0x8417741
.string "Take out items from the PC.$"
gUnknown_841775D:: @ 0x841775D
- .string "パソコンに あずけている\nどうぐを すてます$"
+ .string "パソコンに あずけている\n"
+ .string "どうぐを すてます$"
gText_ThereAreNoItems:: @ 8417774
.string "There are no items.{PAUSE_UNTIL_PRESS}$"
@@ -1193,16 +1325,19 @@ gText_TheresNoMailHere:: @ 84177EE
.string "There's no MAIL here.{PAUSE_UNTIL_PRESS}$"
gText_WhatWouldYouLikeToDoWithPlayersMail:: @ 8417806
- .string "What would you like to do with\n{STR_VAR_1}'s MAIL?$"
+ .string "What would you like to do with\n"
+ .string "{STR_VAR_1}'s MAIL?$"
gText_MessageWillBeLost:: @ 8417830
- .string "The message will be lost.\nIs that okay?$"
+ .string "The message will be lost.\n"
+ .string "Is that okay?$"
gText_BagIsFull:: @ 8417858
.string "The BAG is full.{PAUSE_UNTIL_PRESS}$"
gText_MailReturnedToBagMessageErased:: @ 841786B
- .string "The MAIL was returned to the BAG\nwith its message erased.{PAUSE_UNTIL_PRESS}$"
+ .string "The MAIL was returned to the BAG\n"
+ .string "with its message erased.{PAUSE_UNTIL_PRESS}$"
gText_WithdrawItem:: @ 84178A7
.string "WITHDRAW\n"
@@ -2059,16 +2194,20 @@ gUnknown_84185A5:: @ 0x84185A5
.string "SEE YA!$"
gUnknown_84185AD:: @ 0x84185AD
- .string "You can withdraw a POKéMON if you\nhave any in a BOX.$"
+ .string "You can withdraw a POKéMON if you\n"
+ .string "have any in a BOX.$"
gUnknown_84185E2:: @ 0x84185E2
- .string "You can deposit your party\nPOKéMON in any BOX.$"
+ .string "You can deposit your party\n"
+ .string "POKéMON in any BOX.$"
gUnknown_8418611:: @ 0x8418611
- .string "You can move POKéMON that are\nstored in any BOX.$"
+ .string "You can move POKéMON that are\n"
+ .string "stored in any BOX.$"
gUnknown_8418642:: @ 0x8418642
- .string "You can move items held by any\nPOKéMON in a BOX or your party.$"
+ .string "You can move items held by any\n"
+ .string "POKéMON in a BOX or your party.$"
gUnknown_8418681:: @ 0x8418681
.string "See you later!$"
@@ -2251,31 +2390,40 @@ gUnknown_8418B17:: @ 0x8418B17
.string "って$"
gUnknown_8418B1A:: @ 0x8418B1A
- .string "\nそう おもわない?$"
+ .string "\n"
+ .string "そう おもわない?$"
gUnknown_8418B25:: @ 0x8418B25
- .string "たびに でたいな-\nどこか いい ところ しらない?$"
+ .string "たびに でたいな-\n"
+ .string "どこか いい ところ しらない?$"
gUnknown_8418B40:: @ 0x8418B40
- .string "120しょくの クレヨン かったんだ-\nいいでしょう?$"
+ .string "120しょくの クレヨン かったんだ-\n"
+ .string "いいでしょう?$"
gUnknown_8418B5C:: @ 0x8418B5C
- .string "しゃぼんだまに のって とべるように\nならないかな-$"
+ .string "しゃぼんだまに のって とべるように\n"
+ .string "ならないかな-$"
gUnknown_8418B77:: @ 0x8418B77
- .string "すなはまに かいた もじは\nすぐに きえちゃうのが かなしいよね-$"
+ .string "すなはまに かいた もじは\n"
+ .string "すぐに きえちゃうのが かなしいよね-$"
gUnknown_8418B99:: @ 0x8418B99
- .string "うみの そこって どうなってるのかな-\nいちどで いいから みて みたいな-$"
+ .string "うみの そこって どうなってるのかな-\n"
+ .string "いちどで いいから みて みたいな-$"
gUnknown_8418BC0:: @ 0x8418BC0
- .string "ゆうやけを みると\nウチに かえりたく ならない?$"
+ .string "ゆうやけを みると\n"
+ .string "ウチに かえりたく ならない?$"
gUnknown_8418BDA:: @ 0x8418BDA
- .string "みどりの しばで ねころがると\nきもちいいよね-$"
+ .string "みどりの しばで ねころがると\n"
+ .string "きもちいいよね-$"
gUnknown_8418BF3:: @ 0x8418BF3
- .string "ひみつきち って いいよね!\nなんか わくわく してこない?$"
+ .string "ひみつきち って いいよね!\n"
+ .string "なんか わくわく してこない?$"
gUnknown_8418C12:: @ 0x8418C12
.string "ポケモン リ-グ$"
@@ -2311,7 +2459,11 @@ gUnknown_8418C6F:: @ 0x8418C6F
.string "もう これいじょう たべない みたい‥$"
gUnknown_8418C83:: @ 8418C83
- .string "Save failed.\nChecking the backup memory‥\nPlease wait.\n“Time required:\nabout 1 minute”$"
+ .string "Save failed.\n"
+ .string "Checking the backup memory‥\n"
+ .string "Please wait.\n"
+ .string "“Time required:\n"
+ .string "about 1 minute”$"
gUnknown_8418CD9:: @ 8418CD9
.string "The backup memory is damaged or\n"
@@ -2321,16 +2473,22 @@ gUnknown_8418CD9:: @ 8418CD9
.string "“Please press the A Button.”$"
gUnknown_8418D70:: @ 8418D70
- .string "{COLOR RED}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”$"
+ .string "{COLOR RED}“このまま ぼうけんをつづけることは できません\n"
+ .string "タイトルに もどります”$"
gUnknown_8418D99:: @ 0x8418D99
- .string "けんさが しゅうりょうしました!\nもういちど レポ-トを かきこみます\nしばらくおまちください$"
+ .string "けんさが しゅうりょうしました!\n"
+ .string "もういちど レポ-トを かきこみます\n"
+ .string "しばらくおまちください$"
gUnknown_8418DC9:: @ 0x8418DC9
- .string "レポ-トの かきこみは しゅうりょうしました\n{COLOR RED}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”$"
+ .string "レポ-トの かきこみは しゅうりょうしました\n"
+ .string "{COLOR RED}“このまま ぼうけんをつづけることは できません\n"
+ .string "タイトルに もどります”$"
gUnknown_8418E09:: @ 8418E09
- .string "Save completed.\n“Please press the A Button.”$"
+ .string "Save completed.\n"
+ .string "“Please press the A Button.”$"
gUnknown_8418E36:: @ 0x8418E36
.string "れんらくせん$"
@@ -2590,34 +2748,49 @@ gUnknown_84199AB:: @ 84199AB
.string "{UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}).$"
gUnknown_84199F4:: @ 84199F4
- .string "{UNKNOWN_F7 0x00} nature. Apparently met in\na fateful encounter シhatched:\n{UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}ス.$"
+ .string "{UNKNOWN_F7 0x00} nature. Apparently met in\n"
+ .string "a fateful encounter シhatched:\n"
+ .string "{UNKNOWN_F7 0x02} at {EXTRA_LV} {UNKNOWN_F7 0x01}ス.$"
gUnknown_8419A3D:: @ 0x8419A3D
- .string "An odd POKéMON EGG found by the\nDAY-CARE couple.$"
+ .string "An odd POKéMON EGG found by the\n"
+ .string "DAY-CARE couple.$"
gUnknown_8419A6E:: @ 0x8419A6E
- .string "An odd POKéMON EGG obtained from\nthe traveling man.$"
+ .string "An odd POKéMON EGG obtained from\n"
+ .string "the traveling man.$"
gUnknown_8419AA2:: @ 0x8419AA2
- .string "A wondrously peculiar POKéMON EGG\nobtained at a nice place.$"
+ .string "A wondrously peculiar POKéMON EGG\n"
+ .string "obtained at a nice place.$"
gUnknown_8419ADE:: @ 0x8419ADE
- .string "An odd POKéMON EGG obtained from\nan old woman at the SPA.$"
+ .string "An odd POKéMON EGG obtained from\n"
+ .string "an old woman at the SPA.$"
gUnknown_8419B18:: @ 0x8419B18
- .string "A peculiar POKéMON EGG obtained\nin a trade.$"
+ .string "A peculiar POKéMON EGG obtained\n"
+ .string "in a trade.$"
gUnknown_8419B44:: @ 0x8419B44
- .string "It looks like this\nEGG will take a\nlong time to hatch.$"
+ .string "It looks like this\n"
+ .string "EGG will take a\n"
+ .string "long time to hatch.$"
gUnknown_8419B7B:: @ 0x8419B7B
- .string "What will hatch\nfrom this? It will\ntake some time.$"
+ .string "What will hatch\n"
+ .string "from this? It will\n"
+ .string "take some time.$"
gUnknown_8419BAE:: @ 0x8419BAE
- .string "It occasionally\nmoves. It should\nhatch soon.$"
+ .string "It occasionally\n"
+ .string "moves. It should\n"
+ .string "hatch soon.$"
gUnknown_8419BDB:: @ 0x8419BDB
- .string "It's making sounds.\nIt's almost ready\nto hatch!$"
+ .string "It's making sounds.\n"
+ .string "It's almost ready\n"
+ .string "to hatch!$"
gUnknown_8419C0B:: @ 8419C0B
.string "a trade$"
@@ -2665,7 +2838,8 @@ gUnknown_8419CA9:: @ 8419CA9
.string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}DELETE$"
gUnknown_8419CB9:: @ 8419CB9
- .string "HM moves can't be\nforgotten now.$"
+ .string "HM moves can't be\n"
+ .string "forgotten now.$"
gUnknown_8419CDA:: @ 8419CDA
.string "NAME: $"
@@ -2722,7 +2896,8 @@ gUnknown_8419D7D:: @ 8419D7D
.string "BERRY CRUSH$"
gUnknown_8419D89:: @ 8419D89
- .string "Waiting for the other TRAINER to\nfinish reading your TRAINER CARD.$"
+ .string "Waiting for the other TRAINER to\n"
+ .string "finish reading your TRAINER CARD.$"
gUnknown_8419DCC:: @ 8419DCC
.string "OPTION$"
@@ -2794,7 +2969,8 @@ gUnknown_8419E57:: @ 8419E57
.string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_DPAD_LEFT_RIGHT}SWITCH {KEYGFX_A_BUTTON}{KEYGFX_B_BUTTON}CANCEL$"
gUnknown_8419E72:: @ 0x8419E72
- .string "RTCを リセットします\nAで けってい Bで キャンセル$"
+ .string "RTCを リセットします\n"
+ .string "Aで けってい Bで キャンセル$"
gUnknown_8419E90:: @ 0x8419E90
.string "げんざいの ゲ-ムない じかん$"
@@ -2806,65 +2982,71 @@ gUnknown_8419EB0:: @ 0x8419EB0
.string "じかんを さいせってい してください$"
gUnknown_8419EC3:: @ 0x8419EC3
- .string "じかんを さいせってい しました!\nレポ-トを かいています おまちください$"
+ .string "じかんを さいせってい しました!\n"
+ .string "レポ-トを かいています おまちください$"
gUnknown_8419EEA:: @ 0x8419EEA
.string "レポ-トを かきこみました!$"
gUnknown_8419EF9:: @ 0x8419EF9
- .string "レポ-トの かきこみに\nしっぱい しました‥$"
+ .string "レポ-トの かきこみに\n"
+ .string "しっぱい しました‥$"
gUnknown_8419F10:: @ 0x8419F10
- .string "レポ-トが ないので\nじかんの せっていは できません!$"
+ .string "レポ-トが ないので\n"
+ .string "じかんの せっていは できません!$"
gUnknown_8419F2D:: @ 0x8419F2D
- .string "ゲ-ムない じかんの しゅうせい システムが\nつかえる ように なりました!$"
+ .string "ゲ-ムない じかんの しゅうせい システムが\n"
+ .string "つかえる ように なりました!$"
-gUnknown_8419F54:: @ 8419F54
+gText_SavingDontTurnOffThePower2:: @ 8419F54
.string "SAVING…\n"
.string "DON'T TURN OFF THE POWER.$"
// Start menu option descriptions
-gUnknown_8419F76:: @ 8419F76 // Pokedex
+gStartMenuDesc_Pokedex:: @ 8419F76 // Pokedex
.string "A device that records POKéMON secrets\n"
.string "upon meeting or catching them.$"
-gUnknown_8419FBB:: @ 8419FBB // Pokemon
+gStartMenuDesc_Pokemon:: @ 8419FBB // Pokemon
.string "Check and organize POKéMON that are\n"
.string "traveling with you in your party.$"
-gUnknown_841A001:: @ 841A001 // Bag
+gStartMenuDesc_Bag:: @ 841A001 // Bag
.string "Equipped with pockets for storing items\n"
.string "you bought, received, or found.$"
-gUnknown_841A049:: @ 841A049 // {PLAYER}
+gStartMenuDesc_Player:: @ 841A049 // {PLAYER}
.string "Check your money and other game data.$"
-gUnknown_841A06F:: @ 841A06F // Save
+gStartMenuDesc_Save:: @ 841A06F // Save
.string "Save your game with a complete record\n"
.string "of your progress to take a break.$"
-gUnknown_841A0B7:: @ 841A0B7 // Options
+gStartMenuDesc_Option:: @ 841A0B7 // Options
.string "Adjust various game settings such as text\n"
.string "speed, game rules, etc.$"
-gUnknown_841A0F9:: @ 841A0F9 // Quit
+gStartMenuDesc_Exit:: @ 841A0F9 // Quit
.string "Close this MENU window.$"
-gUnknown_841A111:: @ 841A111 // Retire
+gStartMenuDesc_Retire:: @ 841A111 // Retire
.string "Retire from the SAFARI GAME and return to\n"
.string "the registration counter.$"
.include "data/text/quest_log.inc"
gUnknown_841B285:: @ 841B285
- .string " was used on\n$"
+ .string " was used on\n"
+ .string "$"
gUnknown_841B293:: @ 841B293
.string ".$"
gUnknown_841B295:: @ 841B295
- .string "'s level rose to\n$"
+ .string "'s level rose to\n"
+ .string "$"
gUnknown_841B2A7:: @ 841B2A7
.string ".$"
@@ -2900,22 +3082,28 @@ gUnknown_841B2F1:: @ 841B2F1
.string "2, and ‥ ‥ ‥ $"
gUnknown_841B2FF:: @ 0x841B2FF
- .string "Poof!\p$"
+ .string "Poof!\p"
+ .string "$"
gUnknown_841B306:: @ 841B306
- .string "{UNKNOWN_F7 0x00} forgot\n{UNKNOWN_F7 0x01}.\p$"
+ .string "{UNKNOWN_F7 0x00} forgot\n"
+ .string "{UNKNOWN_F7 0x01}.\p"
+ .string "$"
gUnknown_841B315:: @ 841B315
- .string "And‥\p$"
+ .string "And‥\p"
+ .string "$"
gUnknown_841B31B:: @ 841B31B
- .string "Machine set!\p$"
+ .string "Machine set!\p"
+ .string "$"
gUnknown_841B329:: @ 841B329
.string "Huh?$"
gUnknown_841B32E:: @ 841B32E
- .string "{UNKNOWN_F7 0x00} learned\n{UNKNOWN_F7 0x01}!$"
+ .string "{UNKNOWN_F7 0x00} learned\n"
+ .string "{UNKNOWN_F7 0x01}!$"
gUnknown_841B33D:: @ 0x841B33D
.string "UPPER$"
@@ -2963,22 +3151,27 @@ gUnknown_841B3E9:: @ 0x841B3E9
.string "Exiting the chat‥$"
gUnknown_841B3FB:: @ 0x841B3FB
- .string "The LEADER, {UNKNOWN_F7 0x00}, has\nleft, ending the chat.$"
+ .string "The LEADER, {UNKNOWN_F7 0x00}, has\n"
+ .string "left, ending the chat.$"
gUnknown_841B426:: @ 0x841B426
- .string "The registered text has been changed.\nIs it okay to save the game?$"
+ .string "The registered text has been changed.\n"
+ .string "Is it okay to save the game?$"
gUnknown_841B469:: @ 0x841B469
- .string "There is already a saved file.\nIs it okay to overwrite it?$"
+ .string "There is already a saved file.\n"
+ .string "Is it okay to overwrite it?$"
gUnknown_841B4A4:: @ 0x841B4A4
- .string "SAVING‥\nDON'T TURN OFF THE POWER.$"
+ .string "SAVING‥\n"
+ .string "DON'T TURN OFF THE POWER.$"
gUnknown_841B4C6:: @ 0x841B4C6
.string "{UNKNOWN_F7 0x00} saved the game.$"
gUnknown_841B4D9:: @ 0x841B4D9
- .string "If the LEADER leaves, the chat\nwill end. Is that okay?$"
+ .string "If the LEADER leaves, the chat\n"
+ .string "will end. Is that okay?$"
gUnknown_841B510:: @ 841B510
.string "HELLO$"
@@ -3011,16 +3204,25 @@ gUnknown_841B54B:: @ 841B54B
.string "BYE-BYE!$"
gUnknown_841B554:: @ 841B554
- .string "{PLAYER} scurried to a POKéMON CENTER,\nprotecting the exhausted and fainted\nPOKéMON from further harm‥\p$"
+ .string "{PLAYER} scurried to a POKéMON CENTER,\n"
+ .string "protecting the exhausted and fainted\n"
+ .string "POKéMON from further harm‥\p"
+ .string "$"
gUnknown_841B5B6:: @ 841B5B6
- .string "{PLAYER} scurried back home, protecting\nthe exhausted and fainted POKéMON from\nfurther harm‥\p$"
+ .string "{PLAYER} scurried back home, protecting\n"
+ .string "the exhausted and fainted POKéMON from\n"
+ .string "further harm‥\p"
+ .string "$"
gUnknown_841B60E:: @ 841B60E
.string "PLAYER: {UNKNOWN_F7 0x00}$"
gUnknown_841B619:: @ 841B619
- .string "This document is issued in\nrecognition of your magnificent\nachievement - the completion of\nthe {UNKNOWN_F7 0x01} POKéDEX.$"
+ .string "This document is issued in\n"
+ .string "recognition of your magnificent\n"
+ .string "achievement - the completion of\n"
+ .string "the {UNKNOWN_F7 0x01} POKéDEX.$"
gUnknown_841B684:: @ 841B684
.string "GAME FREAK$"
@@ -3035,7 +3237,8 @@ gUnknown_841B69E:: @ 841B69E
.string "Clear all save data areas?$"
gUnknown_841B6B9:: @ 841B6B9
- .string "Clearing data‥\nPlease wait.$"
+ .string "Clearing data‥\n"
+ .string "Please wait.$"
gText_Player:: @ 841B6D5
.string "PLAYER$"
@@ -3065,10 +3268,12 @@ gText_HatchedFromEgg:: @ 841B6FD
.string "{STR_VAR_1} hatched from the EGG!$"
gText_NickHatchPrompt:: @ 841B716
- .string "Would you like to nickname the newly\nhatched {STR_VAR_1}?$"
+ .string "Would you like to nickname the newly\n"
+ .string "hatched {STR_VAR_1}?$"
gString_OutOfCoins:: @ 841B747
- .string "You've run out of COINS.\nGame over!$"
+ .string "You've run out of COINS.\n"
+ .string "Game over!$"
gString_QuitPlaying:: @ 841B76B
.string "Quit playing?$"
@@ -3321,347 +3526,677 @@ gUnknown_841D18D:: @ 841D18D
.align 2
gString_PokemonFireRed_Staff:: @ 841D198
- .string "Pokémon FireRed Version\nStaff$"
+ .string "Pokémon FireRed Version\n"
+ .string "Staff$"
.align 2
gString_PokemonLeafGreen_Staff:: @ 0x841D1B8
- .string "Pokémon LeafGreen Version\nStaff$"
+ .string "Pokémon LeafGreen Version\n"
+ .string "Staff$"
.align 2
gCreditsString_Director:: @ 0x841D1D8
- .string "\n\nDirector\n\n\n\n$"
+ .string "\n"
+ .string "\nDirector\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Junichi_Masuda:: @ 0x841D1E8
- .string "\n\n\nJunichi Masuda\n\n\n$"
+ .string "\n"
+ .string "\n\n"
+ .string "Junichi Masuda\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Art_Director_Battle_Director:: @ 0x841D200
- .string "\nArt Director\n\nBattle Director\n\n\n$"
+ .string "\n"
+ .string "Art Director\n"
+ .string "\nBattle Director\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Ken_Sugimori_Shigeki_Morimoto:: @ 0x841D224
- .string "\n\nKen Sugimori\n\nShigeki Morimoto\n\n$"
+ .string "\n"
+ .string "\nKen Sugimori\n"
+ .string "\nShigeki Morimoto\n"
+ .string "\n$"
.align 2
gCreditsString_Program_Leader_Planning_Leader_Graphic_Design_Leader:: @ 0x841D248
- .string "Program Leader\n\nPlanning Leader\n\nGraphic Design Leader\n\n$"
+ .string "Program Leader\n"
+ .string "\nPlanning Leader\n"
+ .string "\nGraphic Design Leader\n"
+ .string "\n$"
.align 2
gCreditsString_Tetsuya_Watanabe_Koji_Nishino_Takao_Unno:: @ 0x841D284
- .string "\nTetsuya Watanabe\n\nKoji Nishino\n\nTakao Unno\n$"
+ .string "\n"
+ .string "Tetsuya Watanabe\n"
+ .string "\nKoji Nishino\n"
+ .string "\nTakao Unno\n"
+ .string "$"
.align 2
gCreditsString_Programmers:: @ 0x841D2B4
- .string "Programmers\n\n\n\n\n$"
+ .string "Programmers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Hiroyuki_Nakamura_Masao_Taya_Satoshi_Nohara_Miyuki_Iwasawa_Daisuke_Goto:: @ 0x841D2C8
- .string "\nHiroyuki Nakamura\nMasao Taya\nSatoshi Nohara\nMiyuki Iwasawa\nDaisuke Goto\n$"
+ .string "\n"
+ .string "Hiroyuki Nakamura\n"
+ .string "Masao Taya\n"
+ .string "Satoshi Nohara\n"
+ .string "Miyuki Iwasawa\n"
+ .string "Daisuke Goto\n"
+ .string "$"
.align 2
gCreditsString_System_Programmers:: @ 0x841D314
- .string "System Programmers\n\n\n\n\n\n$"
+ .string "System Programmers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Tetsuya_Watanabe_Akito_Mori_Hisashi_Sogabe_Sousuke_Tamada:: @ 0x841D330
- .string "\nTetsuya Watanabe\nAkito Mori\nHisashi Sogabe\nSousuke Tamada\n\n$"
+ .string "\n"
+ .string "Tetsuya Watanabe\n"
+ .string "Akito Mori\n"
+ .string "Hisashi Sogabe\n"
+ .string "Sousuke Tamada\n"
+ .string "\n$"
.align 2
gCreditsString_Graphic_Designers:: @ 0x841D370
- .string "Graphic Designers\n\n\n\n\n\n$"
+ .string "Graphic Designers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Takao_Unno_Asuka_Iwashita_Kanako_Eo_Hiroki_Fuchino:: @ 0x841D388
- .string "\nTakao Unno\nAsuka Iwashita\nKanako Eo\nHiroki Fuchino\n\n$"
+ .string "\n"
+ .string "Takao Unno\n"
+ .string "Asuka Iwashita\n"
+ .string "Kanako Eo\n"
+ .string "Hiroki Fuchino\n"
+ .string "\n$"
.align 2
gCreditsString_Graphic_Designers_2:: @ 0x841D3C0
- .string "\nGraphic Designers\n\n\n\n\n$"
+ .string "\n"
+ .string "Graphic Designers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Ken_Sugimori_Hironobu_Yoshida:: @ 0x841D3D8
- .string "\n\nKen Sugimori\nHironobu Yoshida\n\n\n$"
+ .string "\n"
+ .string "\nKen Sugimori\n"
+ .string "Hironobu Yoshida\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Music_Composition:: @ 0x841D3FC
- .string "\nMusic Composition\n\n\n\n\n$"
+ .string "\n"
+ .string "Music Composition\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Go_Ichinose_Junichi_Masuda:: @ 0x841D414
- .string "\n\nGo Ichinose\nJunichi Masuda\n\n\n$"
+ .string "\n"
+ .string "\nGo Ichinose\n"
+ .string "Junichi Masuda\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Sound_Effects:: @ 0x841D434
- .string "\n\nSound Effects\n\n\n\n$"
+ .string "\n"
+ .string "\nSound Effects\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Go_Ichinose:: @ 0x841D448
- .string "\n\n\nGo Ichinose\n\n\n$"
+ .string "\n"
+ .string "\n\n"
+ .string "Go Ichinose\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Game_Designers:: @ 0x841D45C
- .string "\nGame Designers\n\n\n\n\n$"
+ .string "\n"
+ .string "Game Designers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Junichi_Masuda_Koji_Nishino_Tetsuji_Ohta:: @ 0x841D474
- .string "\n\nJunichi Masuda\nKoji Nishino\nTetsuji Ohta\n\n$"
+ .string "\n"
+ .string "\nJunichi Masuda\n"
+ .string "Koji Nishino\n"
+ .string "Tetsuji Ohta\n"
+ .string "\n$"
.align 2
gCreditsString_Game_Designers_2:: @ 0x841D4A4
- .string "\nGame Designers\n\n\n\n\n$"
+ .string "\n"
+ .string "Game Designers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Hitomi_Sato_Shigeru_Ohmori_Tadashi_Takahashi:: @ 0x841D4BC
- .string "\n\nHitomi Sato\nShigeru Ohmori\nTadashi Takahashi\n\n$"
+ .string "\n"
+ .string "\nHitomi Sato\n"
+ .string "Shigeru Ohmori\n"
+ .string "Tadashi Takahashi\n"
+ .string "\n$"
.align 2
gCreditsString_Game_Scenario:: @ 0x841D4F0
- .string "\nGame Scenario\n\n\n\n\n$"
+ .string "\n"
+ .string "Game Scenario\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Hitomi_Sato_Satoshi_Tajiri:: @ 0x841D504
- .string "\n\nHitomi Sato\nSatoshi Tajiri\n\n\n$"
+ .string "\n"
+ .string "\nHitomi Sato\n"
+ .string "Satoshi Tajiri\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Script_Designer_Map_Designer:: @ 0x841D524
- .string "\nScript Designer\n\nMap Designer\n\n\n$"
+ .string "\n"
+ .string "Script Designer\n"
+ .string "\nMap Designer\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Satoshi_Nohara_Shigeru_Ohmori:: @ 0x841D548
- .string "\n\nSatoshi Nohara\n\nShigeru Ohmori\n\n$"
+ .string "\n"
+ .string "\nSatoshi Nohara\n"
+ .string "\nShigeru Ohmori\n"
+ .string "\n$"
.align 2
gCreditsString_Parametric_Designers:: @ 0x841D56C
- .string "\nParametric Designers\n\n\n\n\n$"
+ .string "\n"
+ .string "Parametric Designers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Koji_Nishino_Tetsuji_Ohta_Shigeki_Morimoto:: @ 0x841D588
- .string "\n\nKoji Nishino\nTetsuji Ohta\nShigeki Morimoto\n\n$"
+ .string "\n"
+ .string "\nKoji Nishino\n"
+ .string "Tetsuji Ohta\n"
+ .string "Shigeki Morimoto\n"
+ .string "\n$"
.align 2
gCreditsString_POKeDEX_Text:: @ 0x841D5B8
- .string "\n\nPOKéDEX Text\n\n\n\n$"
+ .string "\n"
+ .string "\nPOKéDEX Text\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Kenji_Matsushima:: @ 0x841D5CC
- .string "\n\n\nKenji Matsushima\n\n\n$"
+ .string "\n"
+ .string "\n\n"
+ .string "Kenji Matsushima\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_POKeMON_Designers:: @ 0x841D5E4
- .string "POKéMON Designers\n\n\n\n\n\n$"
+ .string "POKéMON Designers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Ken_Sugimori_Motofumi_Fujiwara_Shigeki_Morimoto_Hironobu_Yoshida:: @ 0x841D5FC
- .string "\nKen Sugimori\nMotofumi Fujiwara\nShigeki Morimoto\nHironobu Yoshida\n\n$"
+ .string "\n"
+ .string "Ken Sugimori\n"
+ .string "Motofumi Fujiwara\n"
+ .string "Shigeki Morimoto\n"
+ .string "Hironobu Yoshida\n"
+ .string "\n$"
.align 2
gCreditsString_POKeMON_Designers_2:: @ 0x841D640
- .string "POKéMON Designers\n\n\n\n\n\n$"
+ .string "POKéMON Designers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Satoshi_Ohta_Asuka_Iwashita_Takao_Unno_Kanako_Eo_Aimi_Tomita:: @ 0x841D658
- .string "\nSatoshi Ohta\nAsuka Iwashita\nTakao Unno\nKanako Eo\nAimi Tomita\n$"
+ .string "\n"
+ .string "Satoshi Ohta\n"
+ .string "Asuka Iwashita\n"
+ .string "Takao Unno\n"
+ .string "Kanako Eo\n"
+ .string "Aimi Tomita\n"
+ .string "$"
.align 2
gCreditsString_POKeMON_Designers_3:: @ 0x841D698
- .string "POKéMON Designers\n\n\n\n\n\n$"
+ .string "POKéMON Designers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Atsuko_Nishida_Muneo_Saito_Rena_Yoshikawa_Jun_Okutani:: @ 0x841D6B0
- .string "\nAtsuko Nishida\nMuneo Saito\nRena Yoshikawa\nJun Okutani\n\n$"
+ .string "\n"
+ .string "Atsuko Nishida\n"
+ .string "Muneo Saito\n"
+ .string "Rena Yoshikawa\n"
+ .string "Jun Okutani\n"
+ .string "\n$"
.align 2
gCreditsString_Supporting_Programmers:: @ 0x841D6EC
- .string "Supporting Programmers\n\n\n\n$"
+ .string "Supporting Programmers\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Teruyuki_Yoshioka_Takao_Nakano_Satoshi_Mitsuhara_Daisuke_Hoshino:: @ 0x841D708
- .string "\nTeruyuki Yoshioka\nTakao Nakano\n\nSatoshi Mitsuhara\nDaisuke Hoshino\n$"
+ .string "\n"
+ .string "Teruyuki Yoshioka\n"
+ .string "Takao Nakano\n"
+ .string "\nSatoshi Mitsuhara\n"
+ .string "Daisuke Hoshino\n"
+ .string "$"
.align 2
gCreditsString_NCL_Product_Testing:: @ 0x841D74C
- .string "\n\nNCL Product Testing\n\n\n\n$"
+ .string "\n"
+ .string "\nNCL Product Testing\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_NCL_Super_Mario_Club:: @ 0x841D768
- .string "\n\n\nNCL Super Mario Club\n\n\n$"
+ .string "\n"
+ .string "\n\n"
+ .string "NCL Super Mario Club\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Special_Thanks:: @ 0x841D784
- .string "Special Thanks\n\n\n\n\n\n$"
+ .string "Special Thanks\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Hiro_Nakamura_Hiroyuki_Uesugi_Teruki_Murakawa_Kazuya_Suyama:: @ 0x841D79C
- .string "\nHiro Nakamura\nHiroyuki Uesugi\nTeruki Murakawa\n\nKazuya Suyama\n$"
+ .string "\n"
+ .string "Hiro Nakamura\n"
+ .string "Hiroyuki Uesugi\n"
+ .string "Teruki Murakawa\n"
+ .string "\nKazuya Suyama\n"
+ .string "$"
.align 2
gCreditsString_Special_Thanks_2:: @ 0x841D7DC
- .string "Special Thanks\n\n\n\n\n\n$"
+ .string "Special Thanks\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Kenji_Tominaga_Kenjiro_Ito_Tomotaka_Komura_Michiko_Takizawa:: @ 0x841D7F4
- .string "\nKenji Tominaga\n\nKenjiro Ito\nTomotaka Komura\nMichiko Takizawa\n$"
+ .string "\n"
+ .string "Kenji Tominaga\n"
+ .string "\nKenjiro Ito\n"
+ .string "Tomotaka Komura\n"
+ .string "Michiko Takizawa\n"
+ .string "$"
.align 2
gCreditsString_Special_Thanks_3:: @ 0x841D834
- .string "Special Thanks\n\n\n\n\n\n$"
+ .string "Special Thanks\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Makiko_Takada_Mikiko_Ohashi_Shusaku_Egami_Takanao_Kondo_Rui_Kawaguchi:: @ 0x841D84C
- .string "\nMakiko Takada\nMikiko Ohashi\nShusaku Egami\nTakanao Kondo\nRui Kawaguchi\n$"
+ .string "\n"
+ .string "Makiko Takada\n"
+ .string "Mikiko Ohashi\n"
+ .string "Shusaku Egami\n"
+ .string "Takanao Kondo\n"
+ .string "Rui Kawaguchi\n"
+ .string "$"
.align 2
gCreditsString_Braille_Code_Check:: @ 0x841D894
- .string "\n\nBraille Code Check\n\n\n\n$"
+ .string "\n"
+ .string "\nBraille Code Check\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Japan_Braille_Library:: @ 0x841D8B0
- .string "\n\n\nJapan Braille Library\n\n\n$"
+ .string "\n"
+ .string "\n\n"
+ .string "Japan Braille Library\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Information_Supervisors:: @ 0x841D8CC
- .string "Information Supervisors\n\n\n\n\n\n$"
+ .string "Information Supervisors\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Hiroki_Enomoto_Kazuyuki_Terada_Yuri_Sakurai_Yumi_Funasaka_Naoko_Yanase:: @ 0x841D8EC
- .string "\nHiroki Enomoto\nKazuyuki Terada\nYuri Sakurai\nYumi Funasaka\nNaoko Yanase\n$"
+ .string "\n"
+ .string "Hiroki Enomoto\n"
+ .string "Kazuyuki Terada\n"
+ .string "Yuri Sakurai\n"
+ .string "Yumi Funasaka\n"
+ .string "Naoko Yanase\n"
+ .string "$"
.align 2
gCreditsString_Coordinators:: @ 0x841D938
- .string "Coordinators\n\n\n\n\n\n$"
+ .string "Coordinators\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Azusa_Tajima_Akira_Kinashi_Kazuki_Yoshihara_Retsuji_Nomoto:: @ 0x841D94C
- .string "\nAzusa Tajima\nAkira Kinashi\nKazuki Yoshihara\n\nRetsuji Nomoto\n$"
+ .string "\n"
+ .string "Azusa Tajima\n"
+ .string "Akira Kinashi\n"
+ .string "Kazuki Yoshihara\n"
+ .string "\nRetsuji Nomoto\n"
+ .string "$"
.align 2
gCreditsString_Task_Managers:: @ 0x841D98C
- .string "\nTask Managers\n\n\n\n\n$"
+ .string "\n"
+ .string "Task Managers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Hitoshi_Yamagami_Gakuji_Nomoto:: @ 0x841D9A0
- .string "\n\nHitoshi Yamagami\nGakuji Nomoto\n\n\n$"
+ .string "\n"
+ .string "\nHitoshi Yamagami\n"
+ .string "Gakuji Nomoto\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Producers:: @ 0x841D9C4
- .string "\nProducers\n\n\n\n\n$"
+ .string "\n"
+ .string "Producers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Hiroyuki_Jinnai_Takehiro_Izushi_Hiroaki_Tsuru:: @ 0x841D9D4
- .string "\n\nHiroyuki Jinnai\nTakehiro Izushi\nHiroaki Tsuru\n\n$"
+ .string "\n"
+ .string "\nHiroyuki Jinnai\n"
+ .string "Takehiro Izushi\n"
+ .string "Hiroaki Tsuru\n"
+ .string "\n$"
.align 2
gCreditsString_Executive_Director:: @ 0x841DA08
- .string "\n\nExecutive Director\n\n\n\n$"
+ .string "\n"
+ .string "\nExecutive Director\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Satoshi_Tajiri:: @ 0x841DA24
- .string "\n\n\nSatoshi Tajiri\n\n\n$"
+ .string "\n"
+ .string "\n\n"
+ .string "Satoshi Tajiri\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Executive_Producer:: @ 0x841DA3C
- .string "\n\nExecutive Producer\n\n\n\n$"
+ .string "\n"
+ .string "\nExecutive Producer\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Satoru_Iwata:: @ 0x841DA58
- .string "\n\n\nSatoru Iwata\n\n\n$"
+ .string "\n"
+ .string "\n\n"
+ .string "Satoru Iwata\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Executive_Producer_2:: @ 0x841DA6C
- .string "\n\nExecutive Producer\n\n\n\n$"
+ .string "\n"
+ .string "\nExecutive Producer\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Tsunekaz_Ishihara:: @ 0x841DA88
- .string "\n\n\nTsunekaz Ishihara\n\n\n$"
+ .string "\n"
+ .string "\n\n"
+ .string "Tsunekaz Ishihara\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_English_Version_Coordinators:: @ 0x841DAA0
- .string "\nEnglish Version Coordinators\n\n\n\n\n$"
+ .string "\n"
+ .string "English Version Coordinators\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Hiro_Nakamura_Seth_McMahill:: @ 0x841DAC4
- .string "\n\nHiro Nakamura\nSeth McMahill\n\n\n$"
+ .string "\n"
+ .string "\nHiro Nakamura\n"
+ .string "Seth McMahill\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Translator_Text_Editor:: @ 0x841DAE8
- .string "\nTranslator\n\nText Editor\n\n\n$"
+ .string "\n"
+ .string "Translator\n"
+ .string "\nText Editor\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Nob_Ogasawara_Teresa_Lillygren:: @ 0x841DB04
- .string "\n\nNob Ogasawara\n\nTeresa Lillygren\n\n$"
+ .string "\n"
+ .string "\nNob Ogasawara\n"
+ .string "\nTeresa Lillygren\n"
+ .string "\n$"
.align 2
gCreditsString_Programmers_2:: @ 0x841DB28
- .string "Programmers\n\n\n\n\n\n$"
+ .string "Programmers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Yuichiro_Ito_Akira_Kinashi:: @ 0x841DB3C
- .string "\nTeruki Murakawa\nSouichi Yamamoto\nYuichiro Ito\nAkira Kinashi\n\n$"
+ .string "\n"
+ .string "Teruki Murakawa\n"
+ .string "Souichi Yamamoto\n"
+ .string "Yuichiro Ito\n"
+ .string "Akira Kinashi\n"
+ .string "\n$"
.align 2
gCreditsString_Environment_Tool_Programmers:: @ 0x841DB7C
- .string "\nEnvironment を Tool Programmers\n\n\n\n\n$"
+ .string "\n"
+ .string "Environment を Tool Programmers\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Teruki_Murakawa_Souichi_Yamamoto_Kimiko_Nakamichi:: @ 0x841DBA4
- .string "\n\nTeruki Murakawa\nSouichi Yamamoto\nKimiko Nakamichi\n\n$"
+ .string "\n"
+ .string "\nTeruki Murakawa\n"
+ .string "Souichi Yamamoto\n"
+ .string "Kimiko Nakamichi\n"
+ .string "\n$"
.align 2
gCreditsString_NOA_Product_Testing:: @ 0x841DBDC
- .string "NOA Product Testing\n\n\n\n\n\n$"
+ .string "NOA Product Testing\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Thomas_Hertzog_Kathy_Huguenard_Mika_Kurosawa:: @ 0x841DBF8
- .string "\nThomas Hertzog\nKathy Huguenard\nMika Kurosawa\n\n\n$"
+ .string "\n"
+ .string "Thomas Hertzog\n"
+ .string "Kathy Huguenard\n"
+ .string "Mika Kurosawa\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_Braille_Code_Check_2:: @ 0x841DC2C
- .string "Braille Code Check\n\n\n\n\n\n$"
+ .string "Braille Code Check\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_National_Federation_of_the_Blind_Patricia_A_Maurer_Japan_Braille_Library_European_Blind_Union:: @ 0x841DC48
- .string "\nNational Federation\n{CLEAR_TO 0x13}of the Blind\nPatricia A. Maurer\nJapan Braille Library\nEuropean Blind Union\n$"
+ .string "\n"
+ .string "National Federation\n"
+ .string "{CLEAR_TO 0x13}of the Blind\n"
+ .string "Patricia A. Maurer\n"
+ .string "Japan Braille Library\n"
+ .string "European Blind Union\n"
+ .string "$"
.align 2
gCreditsString_Braille_Code_Check_3:: @ 0x841DCAC
- .string "\nBraille Code Check\n\n\n\n\n$"
+ .string "\n"
+ .string "Braille Code Check\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_National_Information_Library_Service_Margaret_Campion:: @ 0x841DCC8
- .string "\n\nNational Information Library\n{CLEAR_TO 0x2D}Service\nMargaret Campion\n\n$"
+ .string "\n"
+ .string "\nNational Information Library\n"
+ .string "{CLEAR_TO 0x2D}Service\n"
+ .string "Margaret Campion\n"
+ .string "\n$"
.align 2
gCreditsString_Special_Thanks_4:: @ 0x841DD08
- .string "Special Thanks\n\n\n\n\n\n$"
+ .string "Special Thanks\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Takehiro_Izushi_Motoyasu_Tojima_Hitoshi_Yamagami_Hiroyuki_Uesugi:: @ 0x841DD20
- .string "\nTakehiro Izushi\nMotoyasu Tojima\nHitoshi Yamagami\nHiroyuki Uesugi\n\n$"
+ .string "\n"
+ .string "Takehiro Izushi\n"
+ .string "Motoyasu Tojima\n"
+ .string "Hitoshi Yamagami\n"
+ .string "Hiroyuki Uesugi\n"
+ .string "\n$"
.align 2
gCreditsString_Special_Thanks_5:: @ 0x841DD64
- .string "Special Thanks\n\n\n\n\n\n$"
+ .string "Special Thanks\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Nicola_Pratt_Barlow_Shellie_Dow_Anthony_Howitt_Naoko_Saeki_Kyoko_Onishi:: @ 0x841DD7C
- .string "\nNicola Pratt-Barlow\nShellie Dow\nAnthony Howitt\nNaoko Saeki\nKyoko Onishi\n$"
+ .string "\n"
+ .string "Nicola Pratt-Barlow\n"
+ .string "Shellie Dow\n"
+ .string "Anthony Howitt\n"
+ .string "Naoko Saeki\n"
+ .string "Kyoko Onishi\n"
+ .string "$"
.align 2
gCreditsString_Braille_Code_Check_4:: @ 0x841DDC8
- .string "\nBraille Code Check\n\n\n\n\n$"
+ .string "\n"
+ .string "Braille Code Check\n"
+ .string "\n\n"
+ .string "\n\n"
+ .string "$"
.align 2
gCreditsString_The_Royal_New_Zealand_Foundation_of_the_Blind_Greg_Moran:: @ 0x841DDE4
- .string "\n\nThe Royal New Zealand\nFoundation of the Blind\nGreg Moran\n\n$"
+ .string "\n"
+ .string "\nThe Royal New Zealand\n"
+ .string "Foundation of the Blind\n"
+ .string "Greg Moran\n"
+ .string "\n$"
.align 2
gCreditsString_Graphic_Designer:: @ 0x841DE24
- .string "\n\nGraphic Designer\n\n\n\n$"
+ .string "\n"
+ .string "\nGraphic Designer\n"
+ .string "\n\n"
+ .string "\n$"
.align 2
gCreditsString_Akira_Kinashi:: @ 0x841DE3C
- .string "\n\n\nAkira Kinashi\n\n\n$"
+ .string "\n"
+ .string "\n\n"
+ .string "Akira Kinashi\n"
+ .string "\n\n"
+ .string "$"
gJPText_MysteryGift:: @ 841DE50
.string "$"
@@ -3679,7 +4214,8 @@ gUnknown_841DE54:: @ 841DE54
.string "$"
gUnknown_841DE55:: @ 841DE55
- .string "カ-ドeリ-ダ-{EXTRA_PLUS}の ‘つうしん'を\nえらんで Aボタンを おしてください$"
+ .string "カ-ドeリ-ダ-{EXTRA_PLUS}の ‘つうしん'を\n"
+ .string "えらんで Aボタンを おしてください$"
gUnknown_841DE7C:: @ 841DE7C
.string "$"
@@ -3688,7 +4224,8 @@ gUnknown_841DE7D:: @ 841DE7D
.string "$"
gUnknown_841DE7E:: @ 841DE7E
- .string "カ-ドeリ-ダ-{EXTRA_PLUS}と\nつうしん できません$"
+ .string "カ-ドeリ-ダ-{EXTRA_PLUS}と\n"
+ .string "つうしん できません$"
gUnknown_841DE95:: @ 841DE95
.string "$"
@@ -3935,7 +4472,8 @@ gUnknown_841E2EC:: @ 841E2EC
.string "{KEYGFX_B_BUTTON}CANCEL$"
gUnknown_841E2F5:: @ 841E2F5
- .string "{COLOR BLUE}{SHADOW YELLOW} たいせんの くみあわせ\n{COLOR RED}{SHADOW GREEN}じぶんの ばしょをきめて ください$"
+ .string "{COLOR BLUE}{SHADOW YELLOW} たいせんの くみあわせ\n"
+ .string "{COLOR RED}{SHADOW GREEN}じぶんの ばしょをきめて ください$"
gUnknown_841E322:: @ 841E322
.string "{EXTRA_ID}$"
@@ -3965,31 +4503,44 @@ gUnknown_841E3FB:: @ 841E3FB
.string "Teach {STR_VAR_2}?$"
gUnknown_841E405:: @ 841E405
- .string "{STR_VAR_1} learned\n{STR_VAR_2}.$"
+ .string "{STR_VAR_1} learned\n"
+ .string "{STR_VAR_2}.$"
gUnknown_841E414:: @ 841E414
- .string "{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?$"
+ .string "{STR_VAR_1} is trying to learn\n"
+ .string "{STR_VAR_2}.\p"
+ .string "But {STR_VAR_1} can't learn more\n"
+ .string "than four moves.\p"
+ .string "Delete an older move to make\n"
+ .string "room for {STR_VAR_2}?$"
gUnknown_841E481:: @ 841E481
.string "Stop learning {STR_VAR_2}?$"
gUnknown_841E493:: @ 841E493
- .string "{PAUSE 0x20}1, {PAUSE 0x0F}2, and {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}{PLAY_SE SE_KON}Poof!\p$"
+ .string "{PAUSE 0x20}1, {PAUSE 0x0F}2, and {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}‥ {PAUSE 0x0F}{PLAY_SE SE_KON}Poof!\p"
+ .string "$"
gUnknown_841E4C0:: @ 841E4C0
- .string "{STR_VAR_1} forgot {STR_VAR_3}.\pAnd‥\p{STR_VAR_1}\nlearned {STR_VAR_2}.$"
+ .string "{STR_VAR_1} forgot {STR_VAR_3}.\p"
+ .string "And‥\p"
+ .string "{STR_VAR_1}\n"
+ .string "learned {STR_VAR_2}.$"
gUnknown_841E4E2:: @ 841E4E2
- .string "Give up trying to teach a new\nmove to {STR_VAR_1}?$"
+ .string "Give up trying to teach a new\n"
+ .string "move to {STR_VAR_1}?$"
gUnknown_841E50C:: @ 841E50C
- .string "Which move should be forgotten?\p$"
+ .string "Which move should be forgotten?\p"
+ .string "$"
gUnknown_841E52D:: @ 0x841E52D
.string "----------$"
gUnknown_841E538:: @ 841E538
- .string "Communication standby‥\nAwaiting another player to choose.$"
+ .string "Communication standby‥\n"
+ .string "Awaiting another player to choose.$"
gUnknown_841E572:: @ 841E572
.string "The battle was refused.{PAUSE 0x3C}$"
diff --git a/data/tileset_anims.s b/data/tileset_anims.s
index 9881cdd3f..5f2320fd3 100644
--- a/data/tileset_anims.s
+++ b/data/tileset_anims.s
@@ -1,5 +1,8 @@
.section .rodata
.align 2
+gUnknown_83A73E0:: @ 83A73E0
+ .incbin "baserom.gba", 0x3A73E0, 0x280
+
gUnknown_83A7660:: @ 83A7660
.incbin "baserom.gba", 0x3A7660, 0x2FF4
diff --git a/include/event_scripts.h b/include/event_scripts.h
index ce9d0bbf5..99b453c85 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1161,4 +1161,11 @@ extern const u8 EventScript_ResetAllMapFlags[];
// player_pc
extern const u8 EventScript_PalletTown_PlayersHouse_2F_ShutDownPC[];
+// start_menu
+extern const u8 gText_WouldYouLikeToSaveTheGame[];
+extern const u8 gText_AlreadySaveFile_WouldLikeToOverwrite[];
+extern const u8 gText_SavingDontTurnOffThePower[];
+extern const u8 gText_PlayerSavedTheGame[];
+extern const u8 gText_DifferentGameFile[];
+
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index fe67fec30..22849a37d 100644
--- a/include/field_fadetransition.h
+++ b/include/field_fadetransition.h
@@ -15,6 +15,7 @@ void sub_807DF64(void);
void sub_807DC18(void);
void FieldCallback_ReturnToEventScript2(void);
void sub_807DC00(void);
+void FadeTransition_FadeInOnReturnToStartMenu(void);
bool32 sub_807E418(void);
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 7bedb1d94..dde05b7ed 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -26,4 +26,6 @@ u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8
const struct MapHeader * mapconnection_get_mapheader(struct MapConnection * connection);
struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
+void save_serialize_map(void);
+
#endif //GUARD_FIELDMAP_H
diff --git a/include/gba/macro.h b/include/gba/macro.h
index c0a4e481b..01bb85b7a 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -121,10 +121,31 @@
} \
}
+#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \
+{ \
+ void *_dest = (void *)dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, value, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16)
#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32)
+#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16)
+
+#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32)
+
#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16)
#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32)
@@ -139,4 +160,14 @@
#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16)
#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32)
+#define DmaFillDefvars(dmaNum, value, dest, size, bit) \
+{ \
+ void *_dest = (void *)dest; \
+ u32 _size = size; \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+}
+
+#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16)
+#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32)
+
#endif // GUARD_GBA_MACRO_H
diff --git a/include/help_system.h b/include/help_system.h
index ff77d01d6..53dc45014 100644
--- a/include/help_system.h
+++ b/include/help_system.h
@@ -29,7 +29,7 @@ extern bool8 gHelpSystemEnabled;
extern u8 gUnknown_203F175;
// help_system_812B1E0
-void sub_812B1E0(u8);
+void HelpSystem_SetSomeVariable(u8);
void HelpSystem_SetSomeVariable2(u8);
bool8 sub_812B40C(void);
bool8 sub_812B45C(void);
@@ -89,7 +89,7 @@ void HelpSystem_FillPanel3(void);
void PrintListMenuItems(void);
void PlaceListMenuCursor(void);
bool8 MoveCursor(u8 by, u8 dirn);
-void sub_812B234(void);
-void sub_812B248(void);
+void HelpSystem_BackupSomeVariable(void);
+void HelpSystem_RestoreSomeVariable(void);
#endif //GUARD_HELP_SYSTEM_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 83b8d6d15..166906ebe 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -28,7 +28,7 @@ void sub_81AAC70(void);
void sub_8108CF0(void);
void sub_81089BC(void);
void sub_810B108(u8);
-void ReturnToBagFromKeyItem(void);
+void CB2_BagMenuFromStartMenu(void);
void ItemMenu_MoveItemSlotToNewPositionInArray(struct ItemSlot * slots, int pos1, int pos2);
void ItemMenu_StartFadeToExitCallback(u8 taskId);
void sub_8108CB4(void);
diff --git a/include/link_rfu.h b/include/link_rfu.h
index 2757e5296..2be9dd3c9 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -39,5 +39,6 @@ bool32 sub_80FAEF0(void);
bool32 IsRfuRecvQueueEmpty(void);
u32 GetRfuRecvQueueLength(void);
void sub_80F8DC0(void);
+void var_800D_set_xB(void);
#endif //GUARD_LINK_RFU_H
diff --git a/include/load_save.h b/include/load_save.h
index bd33f89c8..2406b5f03 100644
--- a/include/load_save.h
+++ b/include/load_save.h
@@ -26,5 +26,7 @@ void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey);
void ApplyNewEncryptionKeyToBagItems(u32 encryptionKey);
void ApplyNewEncryptionKeyToWord(u32 * word, u32 encryptionKey);
void ApplyNewEncryptionKeyToHword(u16 * hword, u32 encryptionKey);
+void sav2_gender2_inplace_and_xFE(void);
+void sub_804C1C0(void);
#endif // GUARD_LOAD_SAVE_H
diff --git a/include/menu.h b/include/menu.h
index 6f358d34e..b6d757f85 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -21,7 +21,7 @@ struct MenuAction
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 x, u8 y, const u8 * color, s8 speed, const u8 * str);
void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str);
void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing);
-void sub_812E6DC(u8 windowId, const u8 * src, u16 x, u16 y);
+void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y);
void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority);
bool8 IsBlendTaskActive(void);
u8 sub_812EA78(u16 species, u32 personality, u8 a2);
diff --git a/include/new_game.h b/include/new_game.h
index ed40546ba..bf048718a 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -3,6 +3,8 @@
#include "global.h"
+extern bool8 gDifferentSaveFile;
+
void SetTrainerId(u32 trainerId, u8 *dst);
void CopyTrainerId(u8 *dst, u8 *src);
void NewGameInitData(void);
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index a7555c505..644e65289 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -26,7 +26,7 @@ u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed
void AddTextPrinterDiffStyle(bool8 allowSkippingDelayWithButtonPress);
void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed);
-void sub_80F6E9C(void);
+void LoadStdWindowFrameGfx(void);
void DrawDialogueFrame(u8 windowId, bool8 transfer);
void DrawStdWindowFrame(u8 windowId, bool8 copyNow);
void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram);
@@ -41,12 +41,12 @@ void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *src, TaskFunc callb
void DisplayYesNoMenuDefaultYes(void);
void DisplayYesNoMenuDefaultNo(void);
u8 GetTextSpeedSetting(void);
-u8 sub_80F78E0(u8 height);
+u8 CreateStartMenuWindow(u8 height);
u8 GetStartMenuWindowId(void);
void RemoveStartMenuWindow(void);
u16 GetStdWindowBaseTileNum(void);
-void sub_80F7974(const u8 * text);
-void sub_80F7998(void);
+void DrawHelpMessageWindowWithText(const u8 * text);
+void DestroyHelpMessageWindow_(void);
void sub_80F79A4(void);
void SetDefaultFontsPointer(void);
diff --git a/include/option_menu.h b/include/option_menu.h
new file mode 100644
index 000000000..21a508973
--- /dev/null
+++ b/include/option_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_OPTION_MENU_H
+#define GUARD_OPTION_MENU_H
+
+void CB2_OptionsMenuFromStartMenu(void);
+
+#endif //GUARD_OPTION_MENU_H
diff --git a/include/overworld.h b/include/overworld.h
index d221e88d1..38c213707 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -38,6 +38,7 @@ extern MainCallback gFieldCallback;
extern struct WarpData gUnknown_2031DBC;
extern u8 gUnknown_2031DE0;
+extern u8 gUnknown_300502C;
void IncrementGameStat(u8 index);
@@ -138,4 +139,6 @@ bool32 Overworld_DoScrollSceneForCredits(u8 *, const struct CreditsOverworldCmd
bool32 sub_8058318(void);
+void CB2_ReturnToStartMenu(void);
+
#endif //GUARD_OVERWORLD_H
diff --git a/include/party_menu.h b/include/party_menu.h
index 16dccb6d8..5b9b6e1c4 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -83,5 +83,6 @@ void sub_8127EC4(u8 battlerId, u8 unk, u8 arrayIndex);
bool8 IsMultiBattle(void);
void sub_8126EDC(void);
void PartyMenuInit_FromPlayerPc(void);
+void CB2_PartyMenuFromStartMenu(void);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/pokedex_screen.h b/include/pokedex_screen.h
new file mode 100644
index 000000000..8855a47fc
--- /dev/null
+++ b/include/pokedex_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_POKEDEX_SCREEN_H
+#define GUARD_POKEDEX_SCREEN_H
+
+void CB2_OpenPokedexFromStartMenu(void);
+
+#endif //GUARD_POKEDEX_SCREEN_H
diff --git a/include/quest_log.h b/include/quest_log.h
index 8a2816c74..d3ccbe3da 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -28,14 +28,18 @@ u8 sub_8112CAC(void);
bool8 sub_81119D4(void (*func)(void));
void sub_8111F38(u16, u16);
void sub_8111134(void);
-void sub_8112EDC(u8 a0);
-u8 sub_8112EB4(void);
-void sub_8113018(const u8 * text, u8 mode);
+void DestroyHelpMessageWindow(u8 a0);
+u8 CreateHelpMessageWindow(void);
+void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode);
void MapNamePopupWindowIdSetDummy(void);
void sub_8111CF0(void);
void sub_811089C(void);
void sub_8113044(void);
void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId);
+void sub_8112450(void);
+void sub_8112364(void);
+u8 sub_8112CAC(void);
+void sub_81138F8(void);
extern u8 gUnknown_203ADFA;
diff --git a/include/save.h b/include/save.h
index 7a74373c8..41d2ec666 100644
--- a/include/save.h
+++ b/include/save.h
@@ -84,7 +84,7 @@ extern u16 gSaveUnusedVar;
extern u16 gSaveFileStatus;
extern void (*gGameContinueCallback)(void);
extern struct SaveBlockChunk gRamSaveSectionLocations[0xE];
-extern u16 gUnknown_3005420;
+extern u16 gSaveSucceeded;
extern struct SaveSection gSaveDataBuffer;
diff --git a/include/save_menu_util.h b/include/save_menu_util.h
new file mode 100644
index 000000000..f2a18a777
--- /dev/null
+++ b/include/save_menu_util.h
@@ -0,0 +1,15 @@
+#ifndef GUARD_SAVE_MENU_UTIL_H
+#define GUARD_SAVE_MENU_UTIL_H
+
+enum SaveStat
+{
+ SAVE_STAT_NAME = 0,
+ SAVE_STAT_POKEDEX,
+ SAVE_STAT_TIME,
+ SAVE_STAT_LOCATION,
+ SAVE_STAT_BADGES
+};
+
+void SaveStatToString(u8 a0, u8 *a1, u8 a2);
+
+#endif //GUARD_SAVE_MENU_UTIL_H
diff --git a/include/start_menu.h b/include/start_menu.h
index c4a3ce19d..90fe7109a 100644
--- a/include/start_menu.h
+++ b/include/start_menu.h
@@ -4,7 +4,10 @@
#include "global.h"
void AppendToList(u8* list, u8* pos, u8 newEntry);
-void sub_806F1F0(u8 taskId);
-void sub_806F1D4(void);
+void Task_StartMenuHandleInput(u8 taskId);
+void SetUpReturnToStartMenu(void);
+void ShowStartMenu(void);
+void Field_AskSaveTheGame(void);
+void CB2_SetUpSaveAfterLinkBattle(void);
#endif // GUARD_START_MENU_H
diff --git a/include/strings.h b/include/strings.h
index d6608812f..2c2756eb5 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -77,8 +77,8 @@ 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 gStartMenuText_PokemonLeague[];
+extern const u8 gStartMenuText_PokemonCenter[];
extern const u8 gText_ApostropheSBase[];
extern const u8 gText_NoRegistry[];
extern const u8 gText_OkayToDeleteFromRegistry[];
@@ -90,7 +90,7 @@ extern const u8 gText_IsThisTheCorrectTime[];
extern const u8 gText_PkmnFainted3[];
extern const u8 gText_Coins[];
extern const u8 gText_EggNickname[];
-extern const u8 gText_Pokemon[];
+extern const u8 gStartMenuText_Pokemon[];
extern const u8 gText_PkmnFainted3[];
extern const u8 gOtherText_Use[];
@@ -446,4 +446,30 @@ extern const u8 gText_MessageWillBeLost[];
extern const u8 gText_BagIsFull[];
extern const u8 gText_MailReturnedToBagMessageErased[];
+// start_menu
+extern const u8 gStartMenuText_Pokedex[];
+extern const u8 gStartMenuText_Pokemon[];
+extern const u8 gStartMenuText_Bag[];
+extern const u8 gStartMenuText_Player[];
+extern const u8 gStartMenuText_Save[];
+extern const u8 gStartMenuText_Option[];
+extern const u8 gStartMenuText_Exit[];
+extern const u8 gStartMenuText_Retire[];
+extern const u8 gUnknown_84162A9[];
+extern const u8 gStartMenuDesc_Pokedex[];
+extern const u8 gStartMenuDesc_Pokemon[];
+extern const u8 gStartMenuDesc_Bag[];
+extern const u8 gStartMenuDesc_Player[];
+extern const u8 gStartMenuDesc_Save[];
+extern const u8 gStartMenuDesc_Option[];
+extern const u8 gStartMenuDesc_Exit[];
+extern const u8 gStartMenuDesc_Retire[];
+extern const u8 gStartMenuDesc_Player[];
+extern const u8 gText_SaveError_PleaseExchangeBackupMemory[];
+extern const u8 gText_SavingDontTurnOffThePower2[];
+extern const u8 gSaveStatName_Player[];
+extern const u8 gSaveStatName_Badges[];
+extern const u8 gSaveStatName_Pokedex[];
+extern const u8 gSaveStatName_Time[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/trainer_card.h b/include/trainer_card.h
index e8531cef5..b38754988 100644
--- a/include/trainer_card.h
+++ b/include/trainer_card.h
@@ -40,4 +40,7 @@ struct TrainerCard
extern struct TrainerCard gTrainerCards[4];
+void InitTrainerCard(MainCallback callback);
+void InitLinkPartnerTrainerCard(u8 whoseCard, MainCallback callback);
+
#endif //GUARD_TRAINER_CARD_H
diff --git a/ld_script.txt b/ld_script.txt
index 2369e255f..9a8731e17 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -106,7 +106,7 @@ SECTIONS {
asm/event_data.o(.text);
src/coord_event_weather.o(.text);
asm/field_tasks.o(.text);
- asm/start_menu.o(.text);
+ src/start_menu.o(.text);
src/tileset_anims.o(.text);
src/palette.o(.text);
src/sound.o(.text);
@@ -408,7 +408,7 @@ SECTIONS {
src/scrcmd.o(.rodata);
src/coord_event_weather.o(.rodata);
data/field_tasks.o(.rodata);
- data/start_menu.o(.rodata);
+ src/start_menu.o(.rodata);
data/tileset_anims.o(.rodata);
src/palette.o(.rodata);
src/sound.o(.rodata);
diff --git a/src/fame_checker.c b/src/fame_checker.c
index 0278fda18..e803a9700 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -552,7 +552,7 @@ static void Task_TopMenuHandleInput(u8 taskId)
if (FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox) == 0xFF)
{
RunTextPrinters();
- if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != ReturnToBagFromKeyItem)
+ if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != CB2_BagMenuFromStartMenu)
task->func = Task_StartToCloseFameChecker;
else if (JOY_NEW(START_BUTTON))
{
@@ -802,7 +802,7 @@ static void WipeMsgBoxAndTransfer(void)
static void Setup_DrawMsgAndListBoxes(void)
{
- sub_80F6E9C();
+ LoadStdWindowFrameGfx();
DrawDialogueFrame(FCWINDOWID_MSGBOX, TRUE);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_LIST);
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index 6447ae1b2..6a539b60e 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -475,25 +475,25 @@ static void sub_807E31C(u8 taskId)
}
}
-static void sub_807E378(u8 taskId)
+static void Task_WaitFadeAndCreateStartMenuTask(u8 taskId)
{
if (sub_807E418() == TRUE)
{
DestroyTask(taskId);
- CreateTask(sub_806F1F0, 80);
+ CreateTask(Task_StartMenuHandleInput, 80);
}
}
-void sub_807E3A0(void)
+void FadeTransition_FadeInOnReturnToStartMenu(void)
{
sub_807DC00();
- CreateTask(sub_807E378, 80);
+ CreateTask(Task_WaitFadeAndCreateStartMenuTask, 80);
ScriptContext2_Enable();
}
-bool32 sub_807E3BC(void)
+bool8 FieldCB2_ReturnToStartMenuInit(void)
{
- sub_806F1D4();
+ SetUpReturnToStartMenu();
return FALSE;
}
diff --git a/src/help_system_812B1E0.c b/src/help_system_812B1E0.c
index a527525f8..afb792072 100644
--- a/src/help_system_812B1E0.c
+++ b/src/help_system_812B1E0.c
@@ -16,13 +16,13 @@
#include "constants/maps.h"
#include "constants/songs.h"
-static EWRAM_DATA u16 gUnknown_203B0EC = 0;
+static EWRAM_DATA u16 sSomeVariable = 0;
static EWRAM_DATA u8 gUnknown_203B0EE = 0;
u8 gUnknown_3005E9C[4];
-u16 gUnknown_3005EA0;
+u16 gSomeVariableBackup;
-static bool32 sub_812B27C(const u16 * mapIdxs);
+static bool32 IsCurrentMapInArray(const u16 * mapIdxs);
static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1);
static bool8 sub_812B754(void);
@@ -824,7 +824,7 @@ static const u8 gUnknown_845C4B6[][6] = {
{0, 0, 0, 0, 0, 0}
};
-static const u16 gUnknown_845C594[] = {
+static const u16 sMartMaps[] = {
MAP_VIRIDIAN_CITY_MART,
MAP_PEWTER_CITY_MART,
MAP_CERULEAN_CITY_MART,
@@ -847,7 +847,7 @@ static const u16 gUnknown_845C594[] = {
MAP_UNDEFINED
};
-static const u16 gUnknown_845C5BC[] = {
+static const u16 sGymMaps[] = {
MAP_PEWTER_CITY_GYM,
MAP_CERULEAN_CITY_GYM,
MAP_VERMILION_CITY_GYM,
@@ -859,7 +859,7 @@ static const u16 gUnknown_845C5BC[] = {
MAP_UNDEFINED
};
-static const u8 gUnknown_845C5CE[][3] = {
+static const u8 sDungeonMaps[][3] = {
{ MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), 1 },
{ MAP_GROUP(MT_MOON_1F), MAP_NUM(MT_MOON_1F), 3 },
{ MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), 2 },
@@ -878,14 +878,14 @@ static const u8 gUnknown_845C5CE[][3] = {
{ MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER), 7 }
};
-void sub_812B1E0(u8 a0)
+void HelpSystem_SetSomeVariable(u8 a0)
{
- gUnknown_203B0EC = a0;
+ sSomeVariable = a0;
}
void HelpSystem_SetSomeVariable2(u8 a0)
{
- switch (gUnknown_203B0EC)
+ switch (sSomeVariable)
{
case 23:
case 24:
@@ -895,37 +895,37 @@ void HelpSystem_SetSomeVariable2(u8 a0)
break;
// fallthrough
default:
- gUnknown_203B0EC = a0;
+ sSomeVariable = a0;
break;
}
}
-void sub_812B220(void)
+void Special_SetSomeVariable(void)
{
- gUnknown_203B0EC = gSpecialVar_0x8004;
+ sSomeVariable = gSpecialVar_0x8004;
}
-void sub_812B234(void)
+void HelpSystem_BackupSomeVariable(void)
{
- gUnknown_3005EA0 = gUnknown_203B0EC;
+ gSomeVariableBackup = sSomeVariable;
}
-void sub_812B248(void)
+void HelpSystem_RestoreSomeVariable(void)
{
- gUnknown_203B0EC = gUnknown_3005EA0;
+ sSomeVariable = gSomeVariableBackup;
}
-static bool32 sub_812B25C(void)
+static bool32 IsInMartMap(void)
{
- return sub_812B27C(gUnknown_845C594);
+ return IsCurrentMapInArray(sMartMaps);
}
-static bool32 sub_812B26C(void)
+static bool32 IsInGymMap(void)
{
- return sub_812B27C(gUnknown_845C5BC);
+ return IsCurrentMapInArray(sGymMaps);
}
-static bool32 sub_812B27C(const u16 * mapIdxs)
+static bool32 IsCurrentMapInArray(const u16 * mapIdxs)
{
u16 mapIdx = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum;
s32 i;
@@ -939,18 +939,18 @@ static bool32 sub_812B27C(const u16 * mapIdxs)
return FALSE;
}
-static bool8 sub_812B2C4(void)
+static bool8 IsInDungeonMap(void)
{
u8 i, j;
for (i = 0; i < 16; i++)
{
- for (j = 0; j < gUnknown_845C5CE[i][2]; j++)
+ for (j = 0; j < sDungeonMaps[i][2]; j++)
{
if (
- gUnknown_845C5CE[i][0] == gSaveBlock1Ptr->location.mapGroup
- && gUnknown_845C5CE[i][1] + j == gSaveBlock1Ptr->location.mapNum
- && (i != 15 || FlagGet(FLAG_0x849) == TRUE)
+ sDungeonMaps[i][0] == gSaveBlock1Ptr->location.mapGroup
+ && sDungeonMaps[i][1] + j == gSaveBlock1Ptr->location.mapNum
+ && (i != 15 /* TANOBY */ || FlagGet(FLAG_0x849) == TRUE)
)
return TRUE;
}
@@ -964,7 +964,7 @@ void sub_812B35C(void)
sub_812B4B8();
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
HelpSystem_SetSomeVariable2(0x16);
- else if (sub_812B2C4())
+ else if (IsInDungeonMap())
HelpSystem_SetSomeVariable2(0x15);
else if (is_light_level_8_or_9(gMapHeader.mapType))
{
@@ -974,9 +974,9 @@ void sub_812B35C(void)
HelpSystem_SetSomeVariable2(0x0F);
else if (IsCurMapPokeCenter() == TRUE)
HelpSystem_SetSomeVariable2(0x10);
- else if (sub_812B25C() == TRUE)
+ else if (IsInMartMap() == TRUE)
HelpSystem_SetSomeVariable2(0x11);
- else if (sub_812B26C() == TRUE)
+ else if (IsInGymMap() == TRUE)
HelpSystem_SetSomeVariable2(0x12);
else
HelpSystem_SetSomeVariable2(0x13);
@@ -1055,7 +1055,7 @@ static void sub_812B520(struct HelpSystemListMenu * a0, struct ListMenuItem * a1
u8 r4 = 0;
for (i = 0; i < 6; i++)
{
- if (gUnknown_845C4B6[gUnknown_203B0EC][gUnknown_845C4B0[i]] == 1)
+ if (gUnknown_845C4B6[sSomeVariable][gUnknown_845C4B0[i]] == 1)
{
a1[r4].label = gUnknown_845B080[gUnknown_845C4B0[i]];
a1[r4].index = gUnknown_845C4B0[i];
@@ -1085,7 +1085,7 @@ static void sub_812B5A8(struct HelpSystemListMenu * a0, struct ListMenuItem * a1
static void sub_812B614(struct HelpSystemListMenu * a0, struct ListMenuItem * a1)
{
u8 r6 = 0;
- const u8 * r3 = gUnknown_845B9E0[gUnknown_203B0EC * 5 + gUnknown_3005E9C[1]];
+ const u8 * r3 = gUnknown_845B9E0[sSomeVariable * 5 + gUnknown_3005E9C[1]];
u8 i;
for (i = 0; r3[i] != 0xFF; i++)
{
diff --git a/src/item_use.c b/src/item_use.c
index 9657488f3..3a189d84a 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -191,7 +191,7 @@ void sub_80A1208(void)
struct MailStruct mail;
mail.itemId = gSpecialVar_ItemId;
- sub_80BEBEC(&mail, ReturnToBagFromKeyItem, 0);
+ sub_80BEBEC(&mail, CB2_BagMenuFromStartMenu, 0);
}
void FieldUseFunc_MachBike(u8 taskId)
@@ -404,7 +404,7 @@ void FieldUseFunc_TmCase(u8 taskId)
void InitTMCaseFromBag(void)
{
- InitTMCase(0, ReturnToBagFromKeyItem, 0);
+ InitTMCase(0, CB2_BagMenuFromStartMenu, 0);
}
void Task_InitTMCaseFromField(u8 taskId)
@@ -435,7 +435,7 @@ void FieldUseFunc_BerryPouch(u8 taskId)
void InitBerryPouchFromBag(void)
{
- InitBerryPouch(BERRYPOUCH_FROMFIELD, ReturnToBagFromKeyItem, 0);
+ InitBerryPouch(BERRYPOUCH_FROMFIELD, CB2_BagMenuFromStartMenu, 0);
}
void Task_InitBerryPouchFromField(u8 taskId)
@@ -478,7 +478,7 @@ void FieldUseFunc_TeachyTv(u8 taskId)
void InitTeachyTvFromBag(void)
{
- InitTeachyTvController(0, ReturnToBagFromKeyItem);
+ InitTeachyTvController(0, CB2_BagMenuFromStartMenu);
}
void Task_InitTeachyTvFromField(u8 taskId)
@@ -608,7 +608,7 @@ void FieldUseFunc_TownMap(u8 taskId)
void sub_80A1CAC(void)
{
- sub_80BFF50(0, ReturnToBagFromKeyItem);
+ sub_80BFF50(0, CB2_BagMenuFromStartMenu);
}
void sub_80A1CC0(u8 taskId)
@@ -640,7 +640,7 @@ void FieldUseFunc_FameChecker(u8 taskId)
void sub_80A1D58(void)
{
- UseFameChecker(ReturnToBagFromKeyItem);
+ UseFameChecker(CB2_BagMenuFromStartMenu);
}
void sub_80A1D68(u8 taskId)
diff --git a/src/menu2.c b/src/menu2.c
index c6d5ab094..221f84318 100644
--- a/src/menu2.c
+++ b/src/menu2.c
@@ -485,7 +485,7 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 x, u
AddTextPrinter(&printer, speed, callback);
}
-void sub_812E6DC(u8 windowId, const u8 * src, u16 x, u16 y)
+void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y)
{
s32 i;
diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c
index 89df1ee34..26cbdb145 100644
--- a/src/mystery_event_script.c
+++ b/src/mystery_event_script.c
@@ -247,7 +247,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
if (species == SPECIES_EGG)
StringCopyN(gStringVar1, gText_EggNickname, POKEMON_NAME_LENGTH + 1);
else
- StringCopyN(gStringVar1, gText_Pokemon, POKEMON_NAME_LENGTH + 1);
+ StringCopyN(gStringVar1, gStartMenuText_Pokemon, POKEMON_NAME_LENGTH + 1);
if (gPlayerPartyCount == PARTY_SIZE)
{
diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c
index 9d2a5c883..f82dbe9c6 100644
--- a/src/new_menu_helpers.c
+++ b/src/new_menu_helpers.c
@@ -395,7 +395,7 @@ void ResetBg0(void)
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
DeactivateAllTextPrinters();
- sub_80F6E9C();
+ LoadStdWindowFrameGfx();
}
u16 RunTextPrinters_CheckPrinter0Active(void)
@@ -452,7 +452,7 @@ void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonP
AddTextPrinterParameterized2(0, 2, gStringVar4, speed, NULL, 2, 1, 3);
}
-void sub_80F6E9C(void)
+void LoadStdWindowFrameGfx(void)
{
if (gUnknown_203ADFA == 2)
{
@@ -644,7 +644,7 @@ static u16 GetStdPalColor(u8 colorNum)
void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *string, TaskFunc callback)
{
- sub_80F6E9C();
+ LoadStdWindowFrameGfx();
DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, bgId, GetTextSpeedSetting(), string, callback);
CopyWindowToVram(0, 3);
}
@@ -667,7 +667,7 @@ u8 GetTextSpeedSetting(void)
return gUnknown_841F428[gSaveBlock2Ptr->optionsTextSpeed];
}
-u8 sub_80F78E0(u8 height)
+u8 CreateStartMenuWindow(u8 height)
{
if (sStartMenuWindowId == 0xFF)
{
@@ -702,15 +702,15 @@ u16 GetStdWindowBaseTileNum(void)
return STD_WINDOW_BASE_TILE_NUM;
}
-void sub_80F7974(const u8 * text)
+void DrawHelpMessageWindowWithText(const u8 * text)
{
- sub_814FE6C(sub_8112EB4(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM);
- sub_8113018(text, 2);
+ sub_814FE6C(CreateHelpMessageWindow(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM);
+ PrintTextOnHelpMessageWindow(text, 2);
}
-void sub_80F7998(void)
+void DestroyHelpMessageWindow_(void)
{
- sub_8112EDC(2);
+ DestroyHelpMessageWindow(2);
}
void sub_80F79A4(void)
diff --git a/src/player_pc.c b/src/player_pc.c
index 7197f65f1..b1929b9ed 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -154,7 +154,7 @@ void sub_80EB6AC(void)
u8 taskId;
gPlayerPcMenuManager.unk_9 = 0;
- sub_812B234();
+ HelpSystem_BackupSomeVariable();
sItemOrder = gUnknown_8402200;
sTopMenuItemCount = 3;
taskId = CreateTask(TaskDummy, 0);
@@ -166,7 +166,7 @@ void sub_80EB6FC(void)
u8 taskId;
gPlayerPcMenuManager.unk_9 = 1;
- sub_812B234();
+ HelpSystem_BackupSomeVariable();
sItemOrder = gUnknown_8402203;
sTopMenuItemCount = 3;
taskId = CreateTask(TaskDummy, 0);
@@ -215,7 +215,7 @@ static void Task_TopMenuHandleInput(u8 taskId)
static void Task_ReturnToTopMenu(u8 taskId)
{
- sub_812B248();
+ HelpSystem_RestoreSomeVariable();
DisplayItemMessageOnField(taskId, 2, gText_WhatWouldYouLikeToDo, Task_DrawPlayerPcTopMenu);
}
@@ -343,7 +343,7 @@ static void Task_ReturnToItemStorageSubmenu(u8 taskId)
static void CB2_ReturnFromDepositMenu(void)
{
u8 taskId;
- sub_80F6E9C();
+ LoadStdWindowFrameGfx();
DrawDialogueFrame(0, TRUE);
taskId = CreateTask(Task_ReturnToItemStorageSubmenu, 0);
Task_CreateItemStorageSubmenu(taskId, 1);
@@ -372,7 +372,7 @@ static void Task_PlayerPcWithdrawItem(u8 taskId)
static void CB2_ReturnFromWithdrawMenu(void)
{
u8 taskId;
- sub_80F6E9C();
+ LoadStdWindowFrameGfx();
DrawDialogueFrame(0, TRUE);
taskId = CreateTask(Task_ReturnToItemStorageSubmenu, 0);
Task_CreateItemStorageSubmenu(taskId, 0);
@@ -584,7 +584,7 @@ static void CB2_ReturnToMailbox(void)
HelpSystem_SetSomeVariable2(34);
else
HelpSystem_SetSomeVariable2(30);
- sub_80F6E9C();
+ LoadStdWindowFrameGfx();
taskId = CreateTask(Task_WaitFadeAndReturnToMailboxPcInputHandler, 0);
if (MailboxPC_InitBuffers(gPlayerPcMenuManager.count) == TRUE)
Task_DrawMailboxPcMenu(taskId);
@@ -700,7 +700,7 @@ static void CB2_ReturnToMailboxPc_UpdateScrollVariables(void)
}
}
Task_SetPageItemVars(taskId);
- sub_80F6E9C();
+ LoadStdWindowFrameGfx();
if (MailboxPC_InitBuffers(gPlayerPcMenuManager.count) == TRUE)
Task_DrawMailboxPcMenu(taskId);
else
diff --git a/src/quest_log.c b/src/quest_log.c
index c8bd19174..ef8f56249 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -92,188 +92,185 @@ struct UnkStruct_203AE98 * gUnknown_3005E94;
static struct UnkStruct_300201C * gUnknown_300201C;
static u16 gUnknown_3002020;
-EWRAM_DATA u8 gUnknown_203ADF8 = 0;
+static EWRAM_DATA u8 gUnknown_203ADF8 = 0;
static EWRAM_DATA u8 sNumScenes = 0;
EWRAM_DATA u8 gUnknown_203ADFA = 0;
-EWRAM_DATA u16 gUnknown_203ADFC = 0;
-EWRAM_DATA u8 gUnknown_203ADFE[3] = {0};
-EWRAM_DATA u16 * gUnknown_203AE04 = NULL;
-EWRAM_DATA u16 * gUnknown_203AE08 = NULL;
-EWRAM_DATA u16 * gUnknown_203AE0C[32] = {NULL};
-EWRAM_DATA void (* gUnknown_203AE8C)(void) = NULL;
-EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
-EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
-EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
-EWRAM_DATA u16 gUnknown_203AF98 = 0;
-EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}};
-EWRAM_DATA u16 gUnknown_203B01A = 0;
-EWRAM_DATA u16 gUnknown_203B01C = 0;
-EWRAM_DATA u16 gUnknown_203B01E = 0;
-EWRAM_DATA u8 gUnknown_203B020 = 0;
-EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0};
-EWRAM_DATA struct UnkStruct_203B044 gUnknown_203B044 = {0};
-EWRAM_DATA u8 gUnknown_203B048 = 0;
-EWRAM_DATA u8 gUnknown_203B049 = 0;
-EWRAM_DATA u8 gUnknown_203B04A = 0;
-EWRAM_DATA u8 gUnknown_203B04B = 0;
-
-void sub_8110A00(void);
-void sub_8110A3C(void);
-void sub_8110BB0(u8);
-void sub_8110BE8(u8);
-void sub_8110E3C(void);
-void sub_8110D94(void);
-void sub_8110E20(void);
-void sub_8110D48(u8);
-u8 sub_8110E68(struct UnkStruct_203AE98 *);
-void sub_8110F90(u8);
-void sub_8111150(u8);
-void sub_8111368(void);
-void sub_81115E8(void);
-u16 sub_8111618(void);
-u16 sub_811164C(void);
-void sub_8111688(void);
-void sub_811175C(u8, struct UnkStruct_203AE98 *);
-void sub_81118F4(s8);
-void sub_8111914(void);
-void sub_8111984(void);
-void sub_8111A34(u8);
-void sub_8111AD8(void);
-void sub_8111B80(void);
-u8 sub_8111BD4(void);
-void sub_8111D10(void);
-void sub_8111D90(u8);
-void sub_8111E20(void);
-void sub_8111E64(s8);
-void sub_8111E84(void);
-bool8 sub_8111F60(void);
-void sub_8111F8C(u8);
-void sub_8111FCC(u8);
-void sub_8112044(u8);
-void sub_81120AC(u8);
-bool8 sub_81121D8(u8);
-void sub_811229C(void);
-void sub_8112364(void);
-void sub_8112888(u8);
-void sub_8112940(u8, struct UnkStruct_203AE98 *, u16);
-u8 sub_8112CAC(void);
-bool8 sub_8112CEC(void);
-bool8 sub_8112D1C(void);
-void sub_8113078(struct Var4038Struct *);
-void sub_81130BC(struct Var4038Struct *);
-u8 sub_8113194(struct Var4038Struct *);
-u16 sub_81132A0(struct Var4038Struct *);
-void sub_81132E0(struct Var4038Struct *);
-bool16 sub_811337C(struct Var4038Struct *);
-void sub_8113390(struct Var4038Struct *);
-void sub_8113414(struct LinkBattleRecords *, u8, u8);
-void sub_81134CC(struct Var4038Struct *);
-bool8 sub_8113508(struct Var4038Struct * );
-void sub_8113524(struct Var4038Struct *);
-bool8 sub_81136D4(void);
-bool8 sub_8113778(u16, u16 *);
-bool8 sub_81137E4(u16, u16 *);
-u16 * sub_8113828(u16, u16 *);
-bool8 sub_81138A0(u16, u16 *);
-bool8 sub_8113954(u16, u16 *);
-void sub_8113A1C(u16);
-void sub_811381C(void);
-void sub_81138F8(void);
-bool8 sub_8113A44(u16, u16 *);
-u16 * sub_8113A78(u16 *, u16 **);
-void sub_8113ABC(u16 *);
-bool8 sub_8113AE8(u16 *);
-bool8 sub_8113B44(u16 *);
-void sub_8113B88(void);
-void sub_8113B94(u16);
-void sub_8113BD8(void);
-u16 * sub_8113BF4(u16 *);
-u16 * sub_8113C20(u16 *, struct UnkStruct_203AE98 *);
-u16 * sub_8113C5C(u16 *, u16);
-u16 * sub_8113C8C(u16 *, struct UnkStruct_203AE98 *);
-u16 * sub_8113CC8(u16 *, struct UnkStruct_203AE98 *);
-u16 * sub_8113D08(u16 *, struct UnkStruct_203AE98 *);
-u16 * sub_8113D48(u16 *, struct UnkStruct_203AE98 *);
-u16 * sub_8113D94(u16 *, struct UnkStruct_203AE98 *);
-u16 * sub_8113F14(u16 *, const u16 *);
-const u16 * sub_8113F3C(const u16 *);
-u16 * sub_8113F80(u16 *, const u16 *);
-const u16 * sub_8113FBC(const u16 *);
-u16 * sub_8114174(u16 *, const u16 *);
-const u16 * sub_8114188(const u16 *);
-u16 * sub_81141D0(u16 *, const u16 *);
-const u16 * sub_81141E4(const u16 *);
-u16 * sub_811422C(u16 *, const u16 *);
-const u16 * sub_8114240(const u16 *);
-u16 * sub_8114288(u16 *, const u16 *);
-const u16 * sub_811429C(const u16 *);
-u16 * sub_8114310(u16 *, const u16 *);
-const u16 * sub_8114324(const u16 *);
-u16 * sub_8114380(u16 *, const u16 *);
-const u16 * sub_8114394(const u16 *);
-u16 * sub_81143F0(u16 *, const u16 *);
-const u16 * sub_811443C(const u16 *);
-u16 * sub_811445C(u16 *, const u16 *);
-const u16 * sub_811448C(const u16 *);
-u16 * sub_81144EC(u16 *, const u16 *);
-const u16 * sub_8114518(const u16 *);
-u16 * sub_8114578(u16 *, const u16 *);
-const u16 * sub_81145A4(const u16 *);
-u16 * sub_8114604(u16 *, const u16 *);
-const u16 * sub_811464C(const u16 *);
-u16 * sub_8114710(u16 *, const u16 *);
-const u16 * sub_8114724(const u16 *);
-u16 * sub_8114744(u16 *, const u16 *);
-const u16 * sub_8114758(const u16 *);
-u16 * sub_8114778(u16 *, const u16 *);
-const u16 * sub_81147A8(const u16 *);
-u16 * sub_8114808(u16 *, const u16 *);
-const u16 * sub_8114834(const u16 *);
-u16 * sub_811488C(u16 *, const u16 *);
-const u16 * sub_81148BC(const u16 *);
-u16 * sub_8114918(u16 *, const u16 *);
-const u16 * sub_8114944(const u16 *);
-u16 * sub_8114990(u16 *, const u16 *);
-const u16 * sub_81149D0(const u16 *);
-u16 * sub_8114A1C(u16 *, const u16 *);
-const u16 * sub_8114A4C(const u16 *);
-u16 * sub_8114AA0(u16 *, const u16 *);
-const u16 * sub_8114AC8(const u16 *);
-u16 * sub_8114B0C(u16 *, const u16 *);
-const u16 * sub_8114B34(const u16 *);
-u16 * sub_8114B78(u16 *, const u16 *);
-const u16 * sub_8114BA0(const u16 *);
-u16 * sub_8114BE4(u16 *, const u16 *);
-const u16 * sub_8114C0C(const u16 *);
-u16 * sub_8114C68(u16 *, const u16 *);
-const u16 * sub_8114C8C(const u16 *);
-u16 * sub_8114CC0(u16 *, const u16 *);
-const u16 * sub_8114CE4(const u16 *);
-u16 * sub_8114D4C(u16 *, const u16 *);
-const u16 * sub_8114D68(const u16 *);
-u16 * sub_8114DE8(u16 *, const u16 *);
-const u16 * sub_8114E68(const u16 *);
-bool8 sub_8114FBC(u16);
-u16 * sub_8114FF0(u16 *, const u16 *);
-const u16 * sub_811500C(const u16 *);
-u16 * sub_8115078(u16 *, const u16 *);
-const u16 * sub_81150CC(const u16 *);
-u16 * sub_81151C0(u16 *, const u16 *);
-const u16 * sub_81151DC(const u16 *);
-u16 * sub_8115280(u16 *, const u16 *);
-const u16 * sub_81152BC(const u16 *);
-bool8 sub_81153A8(u16, u16 *);
-bool8 sub_81153E4(u16, u16 *);
-u16 * sub_8115410(u16 *, const u16 *);
-const u16 * sub_8115460(const u16 *);
-u16 * sub_81154DC(u16 *, const u16 *);
-const u16 * sub_8115518(const u16 *);
-u16 * sub_81155A4(u16 *, const u16 *);
-const u16 * sub_81155E0(const u16 *);
-u16 * sub_81156D8(u16 *, const u16 *);
-const u16 * sub_8115700(const u16 *);
-u16 * sub_81157DC(u16 *, const u16 *);
-const u16 * sub_8115800(const u16 *);
+static EWRAM_DATA u16 gUnknown_203ADFC = 0;
+static EWRAM_DATA u8 gUnknown_203ADFE[3] = {0};
+static EWRAM_DATA u16 * gUnknown_203AE04 = NULL;
+static EWRAM_DATA u16 * gUnknown_203AE08 = NULL;
+static EWRAM_DATA u16 * gUnknown_203AE0C[32] = {NULL};
+static EWRAM_DATA void (* gUnknown_203AE8C)(void) = NULL;
+static EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
+static EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
+static EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
+static EWRAM_DATA u16 gUnknown_203AF98 = 0;
+static EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}};
+static EWRAM_DATA u16 gUnknown_203B01A = 0;
+static EWRAM_DATA u16 gUnknown_203B01C = 0;
+static EWRAM_DATA u16 gUnknown_203B01E = 0;
+static EWRAM_DATA u8 sHelpMessageWindowId = 0;
+static EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0};
+static EWRAM_DATA struct UnkStruct_203B044 gUnknown_203B044 = {0};
+static EWRAM_DATA u8 gUnknown_203B048 = 0;
+static EWRAM_DATA u8 gUnknown_203B049 = 0;
+static EWRAM_DATA u8 gUnknown_203B04A = 0;
+static EWRAM_DATA u8 gUnknown_203B04B = 0;
+
+static void sub_8110A00(void);
+static void sub_8110A3C(void);
+static void sub_8110BB0(u8);
+static void sub_8110BE8(u8);
+static void sub_8110E3C(void);
+static void sub_8110D94(void);
+static void sub_8110E20(void);
+static void sub_8110D48(u8);
+static u8 sub_8110E68(struct UnkStruct_203AE98 *);
+static void sub_8110F90(u8);
+static void sub_8111150(u8);
+static void sub_8111368(void);
+static void sub_81115E8(void);
+static u16 sub_8111618(void);
+static u16 sub_811164C(void);
+static void sub_8111688(void);
+static void sub_811175C(u8, struct UnkStruct_203AE98 *);
+static void sub_81118F4(s8);
+static void sub_8111914(void);
+static void sub_8111984(void);
+static void sub_8111A34(u8);
+static void sub_8111AD8(void);
+static void sub_8111B80(void);
+static u8 sub_8111BD4(void);
+static void sub_8111D10(void);
+static void sub_8111D90(u8);
+static void sub_8111E20(void);
+static void sub_8111E64(s8);
+static void sub_8111E84(void);
+static bool8 sub_8111F60(void);
+static void sub_8111F8C(u8);
+static void sub_8111FCC(u8);
+static void sub_8112044(u8);
+static void sub_81120AC(u8);
+static bool8 sub_81121D8(u8);
+static void sub_811229C(void);
+static void sub_8112888(u8);
+static void sub_8112940(u8, struct UnkStruct_203AE98 *, u16);
+static bool8 sub_8112CEC(void);
+static bool8 sub_8112D1C(void);
+static void sub_8113078(struct Var4038Struct *);
+static void sub_81130BC(struct Var4038Struct *);
+static u8 sub_8113194(struct Var4038Struct *);
+static u16 sub_81132A0(struct Var4038Struct *);
+static void sub_81132E0(struct Var4038Struct *);
+static bool16 sub_811337C(struct Var4038Struct *);
+static void sub_8113390(struct Var4038Struct *);
+static void sub_8113414(struct LinkBattleRecords *, u8, u8);
+static void sub_81134CC(struct Var4038Struct *);
+static bool8 sub_8113508(struct Var4038Struct * );
+static void sub_8113524(struct Var4038Struct *);
+static bool8 sub_81136D4(void);
+static bool8 sub_8113778(u16, u16 *);
+static bool8 sub_81137E4(u16, u16 *);
+static u16 * sub_8113828(u16, u16 *);
+static bool8 sub_81138A0(u16, u16 *);
+static bool8 sub_8113954(u16, u16 *);
+static void sub_8113A1C(u16);
+static void sub_811381C(void);
+static bool8 sub_8113A44(u16, u16 *);
+static u16 * sub_8113A78(u16 *, u16 **);
+static void sub_8113ABC(u16 *);
+static bool8 sub_8113AE8(u16 *);
+static bool8 sub_8113B44(u16 *);
+static void sub_8113B88(void);
+static void sub_8113B94(u16);
+static void sub_8113BD8(void);
+static u16 * sub_8113BF4(u16 *);
+static u16 * sub_8113C20(u16 *, struct UnkStruct_203AE98 *);
+static u16 * sub_8113C5C(u16 *, u16);
+static u16 * sub_8113C8C(u16 *, struct UnkStruct_203AE98 *);
+static u16 * sub_8113CC8(u16 *, struct UnkStruct_203AE98 *);
+static u16 * sub_8113D08(u16 *, struct UnkStruct_203AE98 *);
+static u16 * sub_8113D48(u16 *, struct UnkStruct_203AE98 *);
+static u16 * sub_8113D94(u16 *, struct UnkStruct_203AE98 *);
+static u16 * sub_8113F14(u16 *, const u16 *);
+static const u16 * sub_8113F3C(const u16 *);
+static u16 * sub_8113F80(u16 *, const u16 *);
+static const u16 * sub_8113FBC(const u16 *);
+static u16 * sub_8114174(u16 *, const u16 *);
+static const u16 * sub_8114188(const u16 *);
+static u16 * sub_81141D0(u16 *, const u16 *);
+static const u16 * sub_81141E4(const u16 *);
+static u16 * sub_811422C(u16 *, const u16 *);
+static const u16 * sub_8114240(const u16 *);
+static u16 * sub_8114288(u16 *, const u16 *);
+static const u16 * sub_811429C(const u16 *);
+static u16 * sub_8114310(u16 *, const u16 *);
+static const u16 * sub_8114324(const u16 *);
+static u16 * sub_8114380(u16 *, const u16 *);
+static const u16 * sub_8114394(const u16 *);
+static u16 * sub_81143F0(u16 *, const u16 *);
+static const u16 * sub_811443C(const u16 *);
+static u16 * sub_811445C(u16 *, const u16 *);
+static const u16 * sub_811448C(const u16 *);
+static u16 * sub_81144EC(u16 *, const u16 *);
+static const u16 * sub_8114518(const u16 *);
+static u16 * sub_8114578(u16 *, const u16 *);
+static const u16 * sub_81145A4(const u16 *);
+static u16 * sub_8114604(u16 *, const u16 *);
+static const u16 * sub_811464C(const u16 *);
+static u16 * sub_8114710(u16 *, const u16 *);
+static const u16 * sub_8114724(const u16 *);
+static u16 * sub_8114744(u16 *, const u16 *);
+static const u16 * sub_8114758(const u16 *);
+static u16 * sub_8114778(u16 *, const u16 *);
+static const u16 * sub_81147A8(const u16 *);
+static u16 * sub_8114808(u16 *, const u16 *);
+static const u16 * sub_8114834(const u16 *);
+static u16 * sub_811488C(u16 *, const u16 *);
+static const u16 * sub_81148BC(const u16 *);
+static u16 * sub_8114918(u16 *, const u16 *);
+static const u16 * sub_8114944(const u16 *);
+static u16 * sub_8114990(u16 *, const u16 *);
+static const u16 * sub_81149D0(const u16 *);
+static u16 * sub_8114A1C(u16 *, const u16 *);
+static const u16 * sub_8114A4C(const u16 *);
+static u16 * sub_8114AA0(u16 *, const u16 *);
+static const u16 * sub_8114AC8(const u16 *);
+static u16 * sub_8114B0C(u16 *, const u16 *);
+static const u16 * sub_8114B34(const u16 *);
+static u16 * sub_8114B78(u16 *, const u16 *);
+static const u16 * sub_8114BA0(const u16 *);
+static u16 * sub_8114BE4(u16 *, const u16 *);
+static const u16 * sub_8114C0C(const u16 *);
+static u16 * sub_8114C68(u16 *, const u16 *);
+static const u16 * sub_8114C8C(const u16 *);
+static u16 * sub_8114CC0(u16 *, const u16 *);
+static const u16 * sub_8114CE4(const u16 *);
+static u16 * sub_8114D4C(u16 *, const u16 *);
+static const u16 * sub_8114D68(const u16 *);
+static u16 * sub_8114DE8(u16 *, const u16 *);
+static const u16 * sub_8114E68(const u16 *);
+static bool8 sub_8114FBC(u16);
+static u16 * sub_8114FF0(u16 *, const u16 *);
+static const u16 * sub_811500C(const u16 *);
+static u16 * sub_8115078(u16 *, const u16 *);
+static const u16 * sub_81150CC(const u16 *);
+static u16 * sub_81151C0(u16 *, const u16 *);
+static const u16 * sub_81151DC(const u16 *);
+static u16 * sub_8115280(u16 *, const u16 *);
+static const u16 * sub_81152BC(const u16 *);
+static bool8 sub_81153A8(u16, u16 *);
+static bool8 sub_81153E4(u16, u16 *);
+static u16 * sub_8115410(u16 *, const u16 *);
+static const u16 * sub_8115460(const u16 *);
+static u16 * sub_81154DC(u16 *, const u16 *);
+static const u16 * sub_8115518(const u16 *);
+static u16 * sub_81155A4(u16 *, const u16 *);
+static const u16 * sub_81155E0(const u16 *);
+static u16 * sub_81156D8(u16 *, const u16 *);
+static const u16 * sub_8115700(const u16 *);
+static u16 * sub_81157DC(u16 *, const u16 *);
+static const u16 * sub_8115800(const u16 *);
void sub_8115834(u8 *);
extern const u8 gUnknown_841A155[];
@@ -404,17 +401,17 @@ extern const u8 gUnknown_841B277[];
extern const u8 gUnknown_8418C1B[];
-const struct WindowTemplate gUnknown_845661C[3] = {
+static const struct WindowTemplate gUnknown_845661C[3] = {
{ 0, 0, 0, 30, 2, 15, 0x0e9 },
{ 0, 0, 18, 30, 2, 15, 0x0ad },
{ 0, 0, 14, 30, 6, 15, 0x14c }
};
-const u8 gUnknown_8456634[3] = {15, 1, 12};
+static const u8 gUnknown_8456634[3] = {15, 1, 12};
-const u16 gUnknown_8456638[] = INCBIN_U16("data/graphics/unknown_8456638.bin");
+static const u16 gUnknown_8456638[] = INCBIN_U16("data/graphics/unknown_8456638.bin");
-const u8 gUnknown_8456698[] = {17, 10, 3};
+static const u8 gUnknown_8456698[] = {17, 10, 3};
void sub_8110840(void * oldPointer)
{
@@ -493,7 +490,7 @@ void sub_81109CC(u8 a0)
gUnknown_203AE8C = sub_8110A3C;
}
-void sub_8110A00(void)
+static void sub_8110A00(void)
{
if (sub_8110E68(gUnknown_203AE98) != 1)
{
@@ -504,7 +501,7 @@ void sub_8110A00(void)
}
}
-void sub_8110A3C(void)
+static void sub_8110A3C(void)
{
if (gUnknown_203AE94.unk_0_0 == 2)
gUnknown_203AE94.unk_0_0 = 0;
@@ -556,7 +553,7 @@ void sub_8110AEC(u16 a0)
sub_81109CC(1);
}
-void sub_8110BB0(u8 a0)
+static void sub_8110BB0(u8 a0)
{
struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0];
questLog->unk_001 = gSaveBlock1Ptr->location.mapGroup;
@@ -567,7 +564,7 @@ void sub_8110BB0(u8 a0)
}
#ifdef NONMATCHING
-void sub_8110BE8(u8 a0)
+static void sub_8110BE8(u8 a0)
{
struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0];
u16 i; // r6
@@ -602,7 +599,7 @@ void sub_8110BE8(u8 a0)
}
#else
NAKED
-void sub_8110BE8(u8 a0)
+static void sub_8110BE8(u8 a0)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
@@ -767,7 +764,7 @@ void sub_8110BE8(u8 a0)
}
#endif // NONMATCHING
-void sub_8110D48(u8 a0)
+static void sub_8110D48(u8 a0)
{
struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0];
@@ -775,7 +772,7 @@ void sub_8110D48(u8 a0)
CpuCopy16(gSaveBlock1Ptr->vars, questLog->vars, VARS_COUNT * sizeof(u16));
}
-void sub_8110D94(void)
+static void sub_8110D94(void)
{
u16 i, j;
u16 sp0[4];
@@ -794,19 +791,19 @@ void sub_8110D94(void)
}
}
-void sub_8110E20(void)
+static void sub_8110E20(void)
{
VarSet(VAR_0x40AE, gSaveBlock1Ptr->mapDataId);
}
-void sub_8110E3C(void)
+static void sub_8110E3C(void)
{
sub_8113BF4(gUnknown_203AE08);
if (++gUnknown_203ADF8 > 3)
gUnknown_203ADF8 = 0;
}
-bool8 sub_8110E68(struct UnkStruct_203AE98 * a0)
+static bool8 sub_8110E68(struct UnkStruct_203AE98 * a0)
{
u16 i;
@@ -865,7 +862,7 @@ void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId)
}
}
-void sub_8110F90(u8 unused)
+static void sub_8110F90(u8 unused)
{
gSaveBlock1Ptr->location.mapGroup = 3;
gSaveBlock1Ptr->location.mapNum = 19;
@@ -937,7 +934,7 @@ void sub_8111134(void)
CopyWindowToVram(gUnknown_203ADFE[1], 1);
}
-void sub_8111150(u8 a0)
+static void sub_8111150(u8 a0)
{
struct QuestLog *questLog = &gSaveBlock1Ptr->questLog[a0];
u16 i;
@@ -982,7 +979,7 @@ void sub_8111274(u8 a0, u8 a1)
}
}
-void sub_8111368(void)
+static void sub_8111368(void)
{
gUnknown_203ADFA = 2;
sub_806E6FC();
@@ -1091,14 +1088,14 @@ void sub_8111438(void)
Free(r9);
}
-void sub_81115E8(void)
+static void sub_81115E8(void)
{
u16 r4 = sub_8111618();
u16 r1 = sub_811164C();
VarSet(VAR_0x4027, (r4 << 12) + r1);
}
-u16 sub_8111618(void)
+static u16 sub_8111618(void)
{
u16 count = 0;
u16 i;
@@ -1112,7 +1109,7 @@ u16 sub_8111618(void)
return count;
}
-u16 sub_811164C(void)
+static u16 sub_811164C(void)
{
u16 count = 0;
u16 i, j;
@@ -1129,7 +1126,7 @@ u16 sub_811164C(void)
return count;
}
-void sub_8111688(void)
+static void sub_8111688(void)
{
u16 i, j;
u16 sp0[4];
@@ -1161,7 +1158,7 @@ void sub_8111708(void)
}
}
-void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1)
+static void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1)
{
u16 i;
u16 *r4;
@@ -1208,13 +1205,13 @@ void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1)
}
}
-void sub_81118F4(s8 a0)
+static void sub_81118F4(s8 a0)
{
fade_screen(1, a0);
gUnknown_203AE8C = sub_8111914;
}
-void sub_8111914(void)
+static void sub_8111914(void)
{
if (!gPaletteFade.active)
{
@@ -1232,7 +1229,7 @@ void sub_8111914(void)
}
}
-void sub_8111984(void)
+static void sub_8111984(void)
{
sub_806E6FC();
Save_ResetSaveCounters();
@@ -1269,7 +1266,7 @@ bool8 sub_81119D4(void (*a0)(void))
return FALSE;
}
-void sub_8111A34(u8 taskId)
+static void sub_8111A34(u8 taskId)
{
void (*routine)(void);
s16 * data = gTasks[taskId].data;
@@ -1298,7 +1295,7 @@ void sub_8111A34(u8 taskId)
}
}
-void sub_8111AD8(void)
+static void sub_8111AD8(void)
{
if (gUnknown_203AE94.unk_0_0 == 1)
{
@@ -1327,7 +1324,7 @@ void sub_8111AD8(void)
}
}
-void sub_8111B80(void)
+static void sub_8111B80(void)
{
if (gUnknown_203AE94.unk_0_0 == 0)
{
@@ -1344,7 +1341,7 @@ void sub_8111B80(void)
sub_8112888(1);
}
-u8 sub_8111BD4(void)
+static u8 sub_8111BD4(void)
{
u16 i;
u16 count = 0;
@@ -1405,7 +1402,7 @@ void sub_8111CF0(void)
sub_8111070(sNumScenes);
}
-void sub_8111D10(void)
+static void sub_8111D10(void)
{
u16 i;
u8 count = 0;
@@ -1422,7 +1419,7 @@ void sub_8111D10(void)
ScheduleBgCopyTilemapToVram(0);
}
-void sub_8111D90(u8 a0)
+static void sub_8111D90(u8 a0)
{
const u16 * src = gUnknown_8456638;
u16 * buffer = Alloc(0x1680);
@@ -1459,7 +1456,7 @@ void sub_8111D90(u8 a0)
}
}
-void sub_8111E20(void)
+static void sub_8111E20(void)
{
ClearWindowTilemap(gUnknown_203ADFE[2]);
FillWindowPixelRect(gUnknown_203ADFE[2], 15, 0, 0, 0xf0, 0x30);
@@ -1468,13 +1465,13 @@ void sub_8111E20(void)
CopyWindowToVram(gUnknown_203ADFE[1], 1);
}
-void sub_8111E64(s8 a0)
+static void sub_8111E64(s8 a0)
{
fade_screen(1, a0);
gUnknown_203AE8C = sub_8111E84;
}
-void sub_8111E84(void)
+static void sub_8111E84(void)
{
if (!gPaletteFade.active)
{
@@ -1501,7 +1498,7 @@ void sub_8111F38(u16 a0, u16 a1)
CpuSet(gPlttBufferUnfaded + a0, gUnknown_203AE90 + a0, a1);
}
-bool8 sub_8111F60(void)
+static bool8 sub_8111F60(void)
{
LoadPalette(stdpal_get(4), 0xF0, 0x20);
sub_8111070(0);
@@ -1510,7 +1507,7 @@ bool8 sub_8111F60(void)
return TRUE;
}
-void sub_8111F8C(u8 taskId)
+static void sub_8111F8C(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -1524,7 +1521,7 @@ void sub_8111F8C(u8 taskId)
}
}
-void sub_8111FCC(u8 taskId)
+static void sub_8111FCC(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -1544,7 +1541,7 @@ void sub_8111FCC(u8 taskId)
}
}
-void sub_8112044(u8 taskId)
+static void sub_8112044(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -1559,7 +1556,7 @@ void sub_8112044(u8 taskId)
task->data[0]++;
}
-void sub_81120AC(u8 taskId)
+static void sub_81120AC(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u8 i;
@@ -1609,7 +1606,7 @@ void sub_81120AC(u8 taskId)
}
}
-bool8 sub_81121D8(u8 taskId)
+static bool8 sub_81121D8(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1626,7 +1623,7 @@ bool8 sub_81121D8(u8 taskId)
return FALSE;
}
-void sub_811229C(void)
+static void sub_811229C(void)
{
u16 * buffer = Alloc(0x400);
CpuCopy16(gUnknown_203AE90, buffer, 0x400);
@@ -1833,7 +1830,7 @@ void sub_81127F8(struct UnkStruct_3005E90 * a0)
}
}
-void sub_8112888(u8 a0)
+static void sub_8112888(u8 a0)
{
switch (a0)
{
@@ -1875,7 +1872,7 @@ void sub_81128BC(u8 a0)
}
}
-void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2)
+static void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2)
{
s32 i;
@@ -2218,21 +2215,21 @@ u8 sub_8112CAC(void)
}
}
-bool8 sub_8112CEC(void)
+static bool8 sub_8112CEC(void)
{
if (gUnknown_203AF98 >= gUnknown_3005E8C || ScriptContext2_IsEnabled() == TRUE)
return TRUE;
return FALSE;
}
-bool8 sub_8112D1C(void)
+static bool8 sub_8112D1C(void)
{
if (gUnknown_203AF98 >= gUnknown_3005E8C)
return TRUE;
return FALSE;
}
-const struct UnkStruct_300201C gUnknown_84566A4 = {
+static const struct UnkStruct_300201C gUnknown_84566A4 = {
0,
FALSE,
0x7FFF
@@ -2294,37 +2291,37 @@ void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2)
const u16 gUnknown_84566A8[] = INCBIN_U16("data/graphics/unknown_84566a8.bin");
-const struct WindowTemplate gUnknown_8456928 = {
+static const struct WindowTemplate sHelpMessageWindowTemplate = {
0x00, 0, 15, 30, 5, 15, 0x008F
};
void MapNamePopupWindowIdSetDummy(void)
{
- gUnknown_203B020 = 0xFF;
+ sHelpMessageWindowId = 0xFF;
}
-u8 sub_8112EB4(void)
+u8 CreateHelpMessageWindow(void)
{
- if (gUnknown_203B020 == 0xFF)
+ if (sHelpMessageWindowId == 0xFF)
{
- gUnknown_203B020 = AddWindow(&gUnknown_8456928);
- PutWindowTilemap(gUnknown_203B020);
+ sHelpMessageWindowId = AddWindow(&sHelpMessageWindowTemplate);
+ PutWindowTilemap(sHelpMessageWindowId);
}
- return gUnknown_203B020;
+ return sHelpMessageWindowId;
}
-void sub_8112EDC(u8 a0)
+void DestroyHelpMessageWindow(u8 a0)
{
- if (gUnknown_203B020 != 0xFF)
+ if (sHelpMessageWindowId != 0xFF)
{
- FillWindowPixelBuffer(gUnknown_203B020, 0x00);
- ClearWindowTilemap(gUnknown_203B020);
+ FillWindowPixelBuffer(sHelpMessageWindowId, PIXEL_FILL(0));
+ ClearWindowTilemap(sHelpMessageWindowId);
if (a0)
- CopyWindowToVram(gUnknown_203B020, a0);
+ CopyWindowToVram(sHelpMessageWindowId, a0);
- RemoveWindow(gUnknown_203B020);
- gUnknown_203B020 = 0xFF;
+ RemoveWindow(sHelpMessageWindowId);
+ sHelpMessageWindowId = 0xFF;
}
}
@@ -2460,24 +2457,24 @@ void sub_8112F18(u8 a0)
void sub_8112FD0(void)
{
- sub_8112F18(gUnknown_203B020);
+ sub_8112F18(sHelpMessageWindowId);
}
-const u8 gUnknown_8456930[3] = {
+static const u8 gUnknown_8456930[3] = {
0, 10, 2
};
void sub_8112FE4(const u8 * a0)
{
- AddTextPrinterParameterized4(gUnknown_203B020, 0x02, 2, 5, 1, 1, gUnknown_8456930, -1, a0);
+ AddTextPrinterParameterized4(sHelpMessageWindowId, 0x02, 2, 5, 1, 1, gUnknown_8456930, -1, a0);
}
-void sub_8113018(const u8 * text, u8 mode)
+void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode)
{
sub_8112FD0();
sub_8112FE4(text);
if (mode)
- CopyWindowToVram(gUnknown_203B020, mode);
+ CopyWindowToVram(sHelpMessageWindowId, mode);
}
void sub_8113044(void)
@@ -2491,7 +2488,7 @@ void sub_8113064(void)
sub_8113078(VAR_0x4038_STRUCT);
}
-void sub_8113078(struct Var4038Struct * varPtr)
+static void sub_8113078(struct Var4038Struct * varPtr)
{
if (sub_8113508(varPtr))
{
@@ -2505,7 +2502,7 @@ void sub_81130A8(void)
sub_81130BC(VAR_0x4038_STRUCT);
}
-void sub_81130BC(struct Var4038Struct * varPtr)
+static void sub_81130BC(struct Var4038Struct * varPtr)
{
if (!varPtr->unk_0_7)
{
@@ -2543,11 +2540,11 @@ u8 sub_8113114(struct Var4038Struct * a0, u8 a1)
return a0->unk_0_0;
}
-const u8 gUnknown_8456938[] = {
+static const u8 gUnknown_8456938[] = {
1, 3, 5, 0, 7, 6, 4, 2
};
-u8 sub_8113194(struct Var4038Struct * a0)
+static u8 sub_8113194(struct Var4038Struct * a0)
{
u8 i;
u8 retval = 0;
@@ -2568,7 +2565,7 @@ u8 sub_8113194(struct Var4038Struct * a0)
return gUnknown_8456938[retval];
}
-const u8 gUnknown_8456940[] = {
+static const u8 gUnknown_8456940[] = {
5, 6, 3, 7, 4, 1, 0, 2
};
@@ -2602,7 +2599,7 @@ u16 sub_8113288(void)
return sub_81132A0(VAR_0x4038_STRUCT);
}
-u16 sub_81132A0(struct Var4038Struct * a0)
+static u16 sub_81132A0(struct Var4038Struct * a0)
{
u8 count = 0;
u8 i;
@@ -2621,7 +2618,7 @@ void sub_81132CC(void)
sub_81132E0(VAR_0x4038_STRUCT);
}
-void sub_81132E0(struct Var4038Struct * a0)
+static void sub_81132E0(struct Var4038Struct * a0)
{
u8 i = 0;
u16 var_4039;
@@ -2653,12 +2650,12 @@ bool16 sub_8113364(void)
return sub_811337C(VAR_0x4038_STRUCT);
}
-bool16 sub_811337C(struct Var4038Struct * a0)
+static bool16 sub_811337C(struct Var4038Struct * a0)
{
return (a0->unk_1 >> gSpecialVar_0x8004) & 1;
}
-void sub_8113390(struct Var4038Struct * a0)
+static void sub_8113390(struct Var4038Struct * a0)
{
a0->unk_1 |= 1;
a0->unk_1 |= 2;
@@ -2697,7 +2694,7 @@ void sub_81133A4(void)
sub_8113414(&gSaveBlock2Ptr->linkBattleRecords, r3, r2);
}
-void sub_8113414(struct LinkBattleRecords * a0, u8 a1, u8 a2)
+static void sub_8113414(struct LinkBattleRecords * a0, u8 a1, u8 a2)
{
u8 * str;
const u8 * src = a0->entries[a1].name;
@@ -2742,7 +2739,7 @@ void sub_81134B8(void)
sub_81134CC(VAR_0x4038_STRUCT);
}
-void sub_81134CC(struct Var4038Struct * a0)
+static void sub_81134CC(struct Var4038Struct * a0)
{
if (VarGet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) == 2)
{
@@ -2754,7 +2751,7 @@ void sub_81134CC(struct Var4038Struct * a0)
}
}
-bool8 sub_8113508(struct Var4038Struct * a0)
+static bool8 sub_8113508(struct Var4038Struct * a0)
{
return a0->unk_0_7;
}
@@ -2764,7 +2761,7 @@ void sub_8113510(void)
sub_8113524(VAR_0x4038_STRUCT);
}
-void sub_8113524(struct Var4038Struct * a0)
+static void sub_8113524(struct Var4038Struct * a0)
{
a0->unk_0_7 = TRUE;
}
@@ -3092,7 +3089,7 @@ void sub_8113550(u16 a0, const u16 * a1)
}
#endif // NONMATCHING
-bool8 sub_81136D4(void)
+static bool8 sub_81136D4(void)
{
if (gSaveBlock1Ptr->location.mapGroup == 2 && (gSaveBlock1Ptr->location.mapNum == 1 || gSaveBlock1Ptr->location.mapNum == 2 || gSaveBlock1Ptr->location.mapNum == 3 || gSaveBlock1Ptr->location.mapNum == 4 || gSaveBlock1Ptr->location.mapNum == 5 || gSaveBlock1Ptr->location.mapNum == 6 || gSaveBlock1Ptr->location.mapNum == 7 || gSaveBlock1Ptr->location.mapNum == 8 || gSaveBlock1Ptr->location.mapNum == 9 || gSaveBlock1Ptr->location.mapNum == 10 || gSaveBlock1Ptr->location.mapNum == 11))
return TRUE;
@@ -3123,7 +3120,7 @@ bool8 sub_8113748(void)
return FALSE;
}
-bool8 sub_8113778(u16 a0, u16 * a1)
+static bool8 sub_8113778(u16 a0, u16 * a1)
{
if (a0 == 36 || a0 == 11)
return TRUE;
@@ -3143,7 +3140,7 @@ bool8 sub_8113778(u16 a0, u16 * a1)
return FALSE;
}
-bool8 sub_81137E4(u16 a0, u16 * a1)
+static bool8 sub_81137E4(u16 a0, u16 * a1)
{
if (a0 == 34)
{
@@ -3158,12 +3155,12 @@ bool8 sub_81137E4(u16 a0, u16 * a1)
return FALSE;
}
-void sub_811381C(void)
+static void sub_811381C(void)
{
gUnknown_203B048 = 0;
}
-u16 * sub_8113828(u16 a0, u16 * a1)
+static u16 * sub_8113828(u16 a0, u16 * a1)
{
if (sub_8113778(a0, a1) == TRUE)
return NULL;
@@ -3182,7 +3179,7 @@ u16 * sub_8113828(u16 a0, u16 * a1)
return sQuestLogStorageCBs[a0](gUnknown_203AE08, a1);
}
-bool8 sub_81138A0(u16 a0, u16 * a1)
+static bool8 sub_81138A0(u16 a0, u16 * a1)
{
if (a0 < 12 || a0 > 19)
return FALSE;
@@ -3218,7 +3215,7 @@ void sub_811390C(void)
}
}
-bool8 sub_8113954(u16 a0, u16 * a1)
+static bool8 sub_8113954(u16 a0, u16 * a1)
{
if (a0 != 34 && a0 != 30 && a0 != 32 && a0 != 33)
return FALSE;
@@ -3250,13 +3247,13 @@ void sub_81139BC(void)
}
}
-void sub_8113A1C(u16 a0)
+static void sub_8113A1C(u16 a0)
{
gUnknown_203AE08 = sub_8113C5C(gUnknown_203AE08, a0);
gUnknown_203AF98++;
}
-bool8 sub_8113A44(u16 a0, u16 *a1)
+static bool8 sub_8113A44(u16 a0, u16 *a1)
{
if (a0 != 31)
return FALSE;
@@ -3316,7 +3313,7 @@ static const u16 * (*const sQuestLogScriptParsingCBs[])(const u16 *) = {
sub_8115800
};
-const u8 gUnknown_8456AA0[] = {
+static const u8 gUnknown_8456AA0[] = {
0x08,
0x08,
0x08,
@@ -3362,7 +3359,7 @@ const u8 gUnknown_8456AA0[] = {
0x06
};
-u16 * sub_8113A78(u16 * a0, u16 **a1)
+static u16 * sub_8113A78(u16 * a0, u16 **a1)
{
u16 r2 = a0[0] & 0xfff;
u16 r4 = a0[0] >> 12;
@@ -3374,7 +3371,7 @@ u16 * sub_8113A78(u16 * a0, u16 **a1)
return gUnknown_8456AA0[r2] + (gUnknown_8456AA0[r2] - 4) * r4 + (void *)a0;
}
-void sub_8113ABC(u16 * a0)
+static void sub_8113ABC(u16 * a0)
{
u8 * r2 = (u8 *)(a0 + 2);
if ((a0[0] & 0xFFF) != 35)
@@ -3384,7 +3381,7 @@ void sub_8113ABC(u16 * a0)
}
#ifdef NONMATCHING
-bool8 sub_8113AE8(u16 * a0)
+static bool8 sub_8113AE8(u16 * a0)
{
if (a0 == NULL || a0[1] > gUnknown_203AF98)
return FALSE;
@@ -3398,7 +3395,7 @@ bool8 sub_8113AE8(u16 * a0)
}
#else
NAKED
-bool8 sub_8113AE8(u16 * a0)
+static bool8 sub_8113AE8(u16 * a0)
{
asm_unified("\tpush {r4,lr}\n"
"\tadds r4, r0, 0\n"
@@ -3449,7 +3446,7 @@ bool8 sub_8113AE8(u16 * a0)
}
#endif
-bool8 sub_8113B44(u16 * a0)
+static bool8 sub_8113B44(u16 * a0)
{
if (gUnknown_203B044.unk_2 == 0)
return FALSE;
@@ -3461,12 +3458,12 @@ bool8 sub_8113B44(u16 * a0)
return TRUE;
}
-void sub_8113B88(void)
+static void sub_8113B88(void)
{
gUnknown_203B044 = (struct UnkStruct_203B044){};
}
-void sub_8113B94(u16 a0)
+static void sub_8113B94(u16 a0)
{
if (gUnknown_203B044.unk_0 != (u8)a0 || gUnknown_203B044.unk_2 != gUnknown_203AF98)
{
@@ -3478,14 +3475,14 @@ void sub_8113B94(u16 a0)
gUnknown_203B044.unk_1++;
}
-void sub_8113BD8(void)
+static void sub_8113BD8(void)
{
gUnknown_203B049 = 0;
gUnknown_203B04A = 0;
gUnknown_203B04B = 0;
}
-u16 * sub_8113BF4(u16 * a0)
+static u16 * sub_8113BF4(u16 * a0)
{
if (!sub_8110988(a0, gUnknown_8456AA0[39]))
return NULL;
@@ -3493,7 +3490,7 @@ u16 * sub_8113BF4(u16 * a0)
return a0 + 1;
}
-u16 * sub_8113C20(u16 * a0, struct UnkStruct_203AE98 * a1)
+static u16 * sub_8113C20(u16 * a0, struct UnkStruct_203AE98 * a1)
{
if (!sub_8110988(a0, gUnknown_8456AA0[39]))
return NULL;
@@ -3506,7 +3503,7 @@ u16 * sub_8113C20(u16 * a0, struct UnkStruct_203AE98 * a1)
return a0 + 1;
}
-u16 * sub_8113C5C(u16 * a0, u16 a1)
+static u16 * sub_8113C5C(u16 * a0, u16 a1)
{
if (!sub_8110988(a0, gUnknown_8456AA0[41]))
return NULL;
@@ -3515,7 +3512,7 @@ u16 * sub_8113C5C(u16 * a0, u16 a1)
return a0 + 2;
}
-u16 * sub_8113C8C(u16 * a0, struct UnkStruct_203AE98 * a1)
+static u16 * sub_8113C8C(u16 * a0, struct UnkStruct_203AE98 * a1)
{
if (!sub_8110988(a0, gUnknown_8456AA0[41]))
return NULL;
@@ -3528,7 +3525,7 @@ u16 * sub_8113C8C(u16 * a0, struct UnkStruct_203AE98 * a1)
return a0 + 2;
}
-u16 * sub_8113CC8(u16 * a0, struct UnkStruct_203AE98 * a1)
+static u16 * sub_8113CC8(u16 * a0, struct UnkStruct_203AE98 * a1)
{
u8 * r6 = (u8 *)a0 + 4;
@@ -3543,7 +3540,7 @@ u16 * sub_8113CC8(u16 * a0, struct UnkStruct_203AE98 * a1)
return (u16 *)(r6 + 4);
}
-u16 * sub_8113D08(u16 * a0, struct UnkStruct_203AE98 * a1)
+static u16 * sub_8113D08(u16 * a0, struct UnkStruct_203AE98 * a1)
{
u8 * r6 = (u8 *)a0 + 4;
@@ -3558,7 +3555,7 @@ u16 * sub_8113D08(u16 * a0, struct UnkStruct_203AE98 * a1)
return (u16 *)(r6 + 4);
}
-u16 * sub_8113D48(u16 * a0, struct UnkStruct_203AE98 * a1)
+static u16 * sub_8113D48(u16 * a0, struct UnkStruct_203AE98 * a1)
{
u16 * r4 = a0;
u8 * r6 = (u8 *)a0 + 4;
@@ -3577,7 +3574,7 @@ u16 * sub_8113D48(u16 * a0, struct UnkStruct_203AE98 * a1)
return (u16 *)(r6 + 4);
}
-u16 * sub_8113D94(u16 * a0, struct UnkStruct_203AE98 * a1)
+static u16 * sub_8113D94(u16 * a0, struct UnkStruct_203AE98 * a1)
{
u16 * r5 = a0;
u8 * r6 = (u8 *)a0 + 4;
@@ -3636,7 +3633,7 @@ u16 * sub_8113DE0(u16 a0, u16 * a1)
return r5;
}
-const u16 * sub_8113E88(u16 a0, const u16 * a1)
+static const u16 * sub_8113E88(u16 a0, const u16 * a1)
{
a1 = (const void *)a1 + (gUnknown_203B044.unk_2 * (gUnknown_8456AA0[a0] - 4) + 4);
return a1;
@@ -3663,7 +3660,7 @@ void QuestLog_AutoGetSpeciesName(u16 a0, u8 * a1, u8 a2)
}
}
-u16 * sub_8113F14(u16 * a0, const u16 * a1)
+static u16 * sub_8113F14(u16 * a0, const u16 * a1)
{
u16 * r2 = sub_8113DE0(3, a0);
if (r2 == NULL)
@@ -3674,7 +3671,7 @@ u16 * sub_8113F14(u16 * a0, const u16 * a1)
return r2 + 2;
}
-const u16 * sub_8113F3C(const u16 * a0)
+static const u16 * sub_8113F3C(const u16 * a0)
{
const u16 * r4 = sub_8113E88(3, a0);
QuestLog_AutoGetSpeciesName(r4[0], gStringVar1, 0);
@@ -3684,7 +3681,7 @@ const u16 * sub_8113F3C(const u16 * a0)
return r4;
}
-u16 * sub_8113F80(u16 * a0, const u16 * a1)
+static u16 * sub_8113F80(u16 * a0, const u16 * a1)
{
u16 * r2 = sub_8113DE0(4, a0);
if (r2 == NULL)
@@ -3700,7 +3697,7 @@ u16 * sub_8113F80(u16 * a0, const u16 * a1)
return r2 + 3;
}
-const u16 * sub_8113FBC(const u16 * a0)
+static const u16 * sub_8113FBC(const u16 * a0)
{
const u16 * r5 = sub_8113E88(4, a0);
@@ -3763,12 +3760,12 @@ u16 * sub_811414C(u16 a0, u16 * a1, const u16 * a2)
return r1 + 2;
}
-u16 * sub_8114174(u16 * a0, const u16 * a1)
+static u16 * sub_8114174(u16 * a0, const u16 * a1)
{
return sub_811414C(5, a0, a1);
}
-const u16 * sub_8114188(const u16 * a0)
+static const u16 * sub_8114188(const u16 * a0)
{
const u16 * r4 = sub_8113E88(5, a0);
QuestLog_AutoGetSpeciesName(r4[1], gStringVar1, 0);
@@ -3778,12 +3775,12 @@ const u16 * sub_8114188(const u16 * a0)
return r4;
}
-u16 * sub_81141D0(u16 * a0, const u16 * a1)
+static u16 * sub_81141D0(u16 * a0, const u16 * a1)
{
return sub_811414C(6, a0, a1);
}
-const u16 * sub_81141E4(const u16 * a0)
+static const u16 * sub_81141E4(const u16 * a0)
{
const u16 * r4 = sub_8113E88(6, a0);
@@ -3794,12 +3791,12 @@ const u16 * sub_81141E4(const u16 * a0)
return r4;
}
-u16 * sub_811422C(u16 * a0, const u16 * a1)
+static u16 * sub_811422C(u16 * a0, const u16 * a1)
{
return sub_811414C(7, a0, a1);
}
-const u16 * sub_8114240(const u16 * a0)
+static const u16 * sub_8114240(const u16 * a0)
{
const u16 * r4 = sub_8113E88(7, a0);
@@ -3810,12 +3807,12 @@ const u16 * sub_8114240(const u16 * a0)
return r4;
}
-u16 * sub_8114288(u16 * a0, const u16 * a1)
+static u16 * sub_8114288(u16 * a0, const u16 * a1)
{
return sub_811414C(8, a0, a1);
}
-const u16 * sub_811429C(const u16 * a0)
+static const u16 * sub_811429C(const u16 * a0)
{
const u16 * r4 = sub_8113E88(8, a0);
@@ -3838,12 +3835,12 @@ u16 * sub_81142E4(u16 a0, u16 * a1, const u16 * a2)
return r1 + 3;
}
-u16 * sub_8114310(u16 * a0, const u16 * a1)
+static u16 * sub_8114310(u16 * a0, const u16 * a1)
{
return sub_81142E4(9, a0, a1);
}
-const u16 * sub_8114324(const u16 * a0)
+static const u16 * sub_8114324(const u16 * a0)
{
const u16 * r4 = sub_8113E88(9, a0);
QuestLog_AutoGetSpeciesName(r4[2], gStringVar1, 0);
@@ -3854,12 +3851,12 @@ const u16 * sub_8114324(const u16 * a0)
return r4;
}
-u16 * sub_8114380(u16 * a0, const u16 * a1)
+static u16 * sub_8114380(u16 * a0, const u16 * a1)
{
return sub_81142E4(10, a0, a1);
}
-const u16 * sub_8114394(const u16 * a0)
+static const u16 * sub_8114394(const u16 * a0)
{
const u16 * r4 = sub_8113E88(10, a0);
QuestLog_AutoGetSpeciesName(r4[2], gStringVar2, 0);
@@ -3870,7 +3867,7 @@ const u16 * sub_8114394(const u16 * a0)
return r4;
}
-u16 * sub_81143F0(u16 * a0, const u16 * a1)
+static u16 * sub_81143F0(u16 * a0, const u16 * a1)
{
u16 * r4 = a0;
if (gUnknown_203B044.unk_0 == 11 && gUnknown_203B044.unk_1 != 0)
@@ -3884,14 +3881,14 @@ u16 * sub_81143F0(u16 * a0, const u16 * a1)
return r4 + 2;
}
-const u16 * sub_811443C(const u16 * a0)
+static const u16 * sub_811443C(const u16 * a0)
{
StringExpandPlaceholders(gStringVar4, gUnknown_841A2B0);
a0 += 2;
return a0;
}
-u16 * sub_811445C(u16 * a0, const u16 * a1)
+static u16 * sub_811445C(u16 * a0, const u16 * a1)
{
u16 * r4 = a0 + 4;
@@ -3905,7 +3902,7 @@ u16 * sub_811445C(u16 * a0, const u16 * a1)
return r4;
}
-const u16 * sub_811448C(const u16 * a0)
+static const u16 * sub_811448C(const u16 * a0)
{
const u16 * r6 = a0 + 4;
@@ -3920,25 +3917,25 @@ const u16 * sub_811448C(const u16 * a0)
return r6;
}
-const u8 *const gUnknown_8456ACC[] = {
+static const u8 *const gUnknown_8456ACC[] = {
gUnknown_841A74E,
gUnknown_841A756,
gUnknown_841A762
};
-const u8 *const gUnknown_8456AD8[] = {
+static const u8 *const gUnknown_8456AD8[] = {
gUnknown_841AF98,
gUnknown_841A762,
gUnknown_841AF9F
};
-const u8 *const gUnknown_8456AE4[] = {
+static const u8 *const gUnknown_8456AE4[] = {
gUnknown_841A502,
gUnknown_841A506,
gUnknown_841AFD1
};
-u16 * sub_81144EC(u16 * a0, const u16 * a1)
+static u16 * sub_81144EC(u16 * a0, const u16 * a1)
{
a0[0] = 13;
a0[1] = gUnknown_203AF98;
@@ -3948,7 +3945,7 @@ u16 * sub_81144EC(u16 * a0, const u16 * a1)
return a0;
}
-const u16 * sub_8114518(const u16 * a0)
+static const u16 * sub_8114518(const u16 * a0)
{
DynamicPlaceholderTextUtil_Reset();
@@ -3962,7 +3959,7 @@ const u16 * sub_8114518(const u16 * a0)
return a0;
}
-u16 * sub_8114578(u16 * a0, const u16 * a1)
+static u16 * sub_8114578(u16 * a0, const u16 * a1)
{
a0[0] = 14;
a0[1] = gUnknown_203AF98;
@@ -3972,7 +3969,7 @@ u16 * sub_8114578(u16 * a0, const u16 * a1)
return a0;
}
-const u16 * sub_81145A4(const u16 * a0)
+static const u16 * sub_81145A4(const u16 * a0)
{
DynamicPlaceholderTextUtil_Reset();
@@ -3986,7 +3983,7 @@ const u16 * sub_81145A4(const u16 * a0)
return a0;
}
-u16 * sub_8114604(u16 * a0, const u16 * a1)
+static u16 * sub_8114604(u16 * a0, const u16 * a1)
{
a0[0] = 15;
a0[1] = gUnknown_203AF98;
@@ -3998,7 +3995,7 @@ u16 * sub_8114604(u16 * a0, const u16 * a1)
return a0;
}
-const u16 * sub_811464C(const u16 * a0)
+static const u16 * sub_811464C(const u16 * a0)
{
DynamicPlaceholderTextUtil_Reset();
@@ -4021,35 +4018,35 @@ const u16 * sub_811464C(const u16 * a0)
return a0;
}
-u16 * sub_8114710(u16 * a0, const u16 * a1)
+static u16 * sub_8114710(u16 * a0, const u16 * a1)
{
a0[0] = 16;
a0[1] = gUnknown_203AF98;
return a0 + 2;
}
-const u16 * sub_8114724(const u16 * a0)
+static const u16 * sub_8114724(const u16 * a0)
{
StringExpandPlaceholders(gStringVar4, gUnknown_841A50B);
a0 += 2;
return a0;
}
-u16 * sub_8114744(u16 * a0, const u16 * a1)
+static u16 * sub_8114744(u16 * a0, const u16 * a1)
{
a0[0] = 17;
a0[1] = gUnknown_203AF98;
return a0 + 2;
}
-const u16 * sub_8114758(const u16 * a0)
+static const u16 * sub_8114758(const u16 * a0)
{
StringExpandPlaceholders(gStringVar4, gUnknown_841A732);
a0 += 2;
return a0;
}
-u16 * sub_8114778(u16 * a0, const u16 * a1)
+static u16 * sub_8114778(u16 * a0, const u16 * a1)
{
u8 * r4 = (u8 *)(a0 + 4);
a0[0] = 18;
@@ -4061,7 +4058,7 @@ u16 * sub_8114778(u16 * a0, const u16 * a1)
return (u16 *)r4;
}
-const u16 * sub_81147A8(const u16 * a0)
+static const u16 * sub_81147A8(const u16 * a0)
{
const u8 * r6 = (const u8 *)(a0 + 4);
memset(gStringVar1, EOS, 8);
@@ -4074,7 +4071,7 @@ const u16 * sub_81147A8(const u16 * a0)
return (const u16 *)r6;
}
-u16 * sub_8114808(u16 * a0, const u16 * a1)
+static u16 * sub_8114808(u16 * a0, const u16 * a1)
{
a0[0] = 19;
a0[1] = gUnknown_203AF98;
@@ -4084,7 +4081,7 @@ u16 * sub_8114808(u16 * a0, const u16 * a1)
return a0;
}
-const u16 * sub_8114834(const u16 * a0)
+static const u16 * sub_8114834(const u16 * a0)
{
memset(gStringVar1, EOS, 8);
memcpy(gStringVar1, (const u8 *)a0 + 5, 7);
@@ -4095,7 +4092,7 @@ const u16 * sub_8114834(const u16 * a0)
return a0;
}
-u16 * sub_811488C(u16 * a0, const u16 * a1)
+static u16 * sub_811488C(u16 * a0, const u16 * a1)
{
a0 = sub_8113DE0(20, a0);
if (a0 == NULL)
@@ -4107,7 +4104,7 @@ u16 * sub_811488C(u16 * a0, const u16 * a1)
return a0 + 3;
}
-const u16 * sub_81148BC(const u16 * a0)
+static const u16 * sub_81148BC(const u16 * a0)
{
const u8 * boxIdxs;
a0 = sub_8113E88(20, a0);
@@ -4121,7 +4118,7 @@ const u16 * sub_81148BC(const u16 * a0)
return a0 + 3;
}
-u16 * sub_8114918(u16 * a0, const u16 * a1)
+static u16 * sub_8114918(u16 * a0, const u16 * a1)
{
a0 = sub_8113DE0(21, a0);
if (a0 == NULL)
@@ -4132,7 +4129,7 @@ u16 * sub_8114918(u16 * a0, const u16 * a1)
return a0 + 3;
}
-const u16 * sub_8114944(const u16 * a0)
+static const u16 * sub_8114944(const u16 * a0)
{
const u8 * boxIdxs;
a0 = sub_8113E88(21, a0);
@@ -4145,7 +4142,7 @@ const u16 * sub_8114944(const u16 * a0)
return a0 + 3;
}
-u16 * sub_8114990(u16 * a0, const u16 * a1)
+static u16 * sub_8114990(u16 * a0, const u16 * a1)
{
u16 * r2;
u16 * ret;
@@ -4168,7 +4165,7 @@ u16 * sub_8114990(u16 * a0, const u16 * a1)
return ret + 1;
}
-const u16 * sub_81149D0(const u16 * a0)
+static const u16 * sub_81149D0(const u16 * a0)
{
const u8 * boxIdxs;
a0 = sub_8113E88(22, a0);
@@ -4181,7 +4178,7 @@ const u16 * sub_81149D0(const u16 * a0)
return a0 + 3;
}
-u16 * sub_8114A1C(u16 * a0, const u16 * a1)
+static u16 * sub_8114A1C(u16 * a0, const u16 * a1)
{
u16 * r2;
u16 * ret;
@@ -4195,7 +4192,7 @@ u16 * sub_8114A1C(u16 * a0, const u16 * a1)
return ret + 1;
}
-const u16 * sub_8114A4C(const u16 * a0)
+static const u16 * sub_8114A4C(const u16 * a0)
{
const u8 * boxIdxs;
a0 = sub_8113E88(23, a0);
@@ -4208,7 +4205,7 @@ const u16 * sub_8114A4C(const u16 * a0)
return (const u16 *)boxIdxs + 1;
}
-u16 * sub_8114AA0(u16 * a0, const u16 * a1)
+static u16 * sub_8114AA0(u16 * a0, const u16 * a1)
{
u16 * r2;
r2 = sub_8113DE0(24, a0);
@@ -4219,7 +4216,7 @@ u16 * sub_8114AA0(u16 * a0, const u16 * a1)
return r2 + 2;
}
-const u16 * sub_8114AC8(const u16 * a0)
+static const u16 * sub_8114AC8(const u16 * a0)
{
const u8 * boxIdxs;
a0 = sub_8113E88(24, a0);
@@ -4231,7 +4228,7 @@ const u16 * sub_8114AC8(const u16 * a0)
return (const u16 *)boxIdxs + 1;
}
-u16 * sub_8114B0C(u16 * a0, const u16 * a1)
+static u16 * sub_8114B0C(u16 * a0, const u16 * a1)
{
u16 * r2;
r2 = sub_8113DE0(25, a0);
@@ -4242,7 +4239,7 @@ u16 * sub_8114B0C(u16 * a0, const u16 * a1)
return r2 + 2;
}
-const u16 * sub_8114B34(const u16 * a0)
+static const u16 * sub_8114B34(const u16 * a0)
{
const u8 * boxIdxs;
a0 = sub_8113E88(25, a0);
@@ -4254,7 +4251,7 @@ const u16 * sub_8114B34(const u16 * a0)
return (const u16 *)boxIdxs + 1;
}
-u16 * sub_8114B78(u16 * a0, const u16 * a1)
+static u16 * sub_8114B78(u16 * a0, const u16 * a1)
{
u16 * r2;
r2 = sub_8113DE0(26, a0);
@@ -4265,7 +4262,7 @@ u16 * sub_8114B78(u16 * a0, const u16 * a1)
return r2 + 2;
}
-const u16 * sub_8114BA0(const u16 * a0)
+static const u16 * sub_8114BA0(const u16 * a0)
{
const u8 * boxIdxs;
a0 = sub_8113E88(26, a0);
@@ -4277,7 +4274,7 @@ const u16 * sub_8114BA0(const u16 * a0)
return (const u16 *)boxIdxs + 1;
}
-u16 * sub_8114BE4(u16 * a0, const u16 * a1)
+static u16 * sub_8114BE4(u16 * a0, const u16 * a1)
{
u16 * r2;
r2 = sub_8113DE0(27, a0);
@@ -4288,7 +4285,7 @@ u16 * sub_8114BE4(u16 * a0, const u16 * a1)
return r2 + 1;
}
-const u16 * sub_8114C0C(const u16 * a0)
+static const u16 * sub_8114C0C(const u16 * a0)
{
const u16 *r4 = sub_8113E88(27, a0);
DynamicPlaceholderTextUtil_Reset();
@@ -4301,7 +4298,7 @@ const u16 * sub_8114C0C(const u16 * a0)
return r4 + 1;
}
-u16 * sub_8114C68(u16 * a0, const u16 * a1)
+static u16 * sub_8114C68(u16 * a0, const u16 * a1)
{
a0 = sub_8113DE0(28, a0);
if (a0 == NULL)
@@ -4310,7 +4307,7 @@ u16 * sub_8114C68(u16 * a0, const u16 * a1)
return a0 + 1;
}
-const u16 * sub_8114C8C(const u16 * a0)
+static const u16 * sub_8114C8C(const u16 * a0)
{
const u16 *r4 = sub_8113E88(28, a0);
CopyItemName(r4[0], gStringVar1);
@@ -4318,7 +4315,7 @@ const u16 * sub_8114C8C(const u16 * a0)
return r4 + 1;
}
-u16 * sub_8114CC0(u16 * a0, const u16 * a1)
+static u16 * sub_8114CC0(u16 * a0, const u16 * a1)
{
a0 = sub_8113DE0(29, a0);
if (a0 == NULL)
@@ -4327,7 +4324,7 @@ u16 * sub_8114CC0(u16 * a0, const u16 * a1)
return a0 + 1;
}
-const u16 * sub_8114CE4(const u16 * a0)
+static const u16 * sub_8114CE4(const u16 * a0)
{
const u16 *r4 = sub_8113E88(29, a0);
CopyItemName(r4[0], gStringVar1);
@@ -4348,13 +4345,13 @@ u16 * sub_8114D18(u16 a0, u16 * a1, const u16 * a2)
return a1 + 4;
}
-u16 * sub_8114D4C(u16 * a0, const u16 * a1)
+static u16 * sub_8114D4C(u16 * a0, const u16 * a1)
{
gUnknown_203B048 = TRUE;
return sub_8114D18(30, a0, a1);
}
-const u16 * sub_8114D68(const u16 * a0)
+static const u16 * sub_8114D68(const u16 * a0)
{
const u8 * r6;
a0 = sub_8113E88(30, a0);
@@ -4370,7 +4367,7 @@ const u16 * sub_8114D68(const u16 * a0)
return a0 + 4;
}
-u16 * sub_8114DE8(u16 * a0, const u16 * a1)
+static u16 * sub_8114DE8(u16 * a0, const u16 * a1)
{
u16 * r4 = a0;
u8 * r5 = (u8 *)a0 + 8;
@@ -4393,7 +4390,7 @@ u16 * sub_8114DE8(u16 * a0, const u16 * a1)
return (u16 *)(r5 + 4);
}
-const u16 * sub_8114E68(const u16 * a0)
+static const u16 * sub_8114E68(const u16 * a0)
{
const u8 * r6;
if (!sub_8110944(a0, gUnknown_8456AA0[31]))
@@ -4441,7 +4438,7 @@ const u16 * sub_8114E68(const u16 * a0)
return (const u16 *)(r6 + 4);
}
-bool8 sub_8114FBC(u16 a0)
+static bool8 sub_8114FBC(u16 a0)
{
switch (a0)
{
@@ -4454,13 +4451,13 @@ bool8 sub_8114FBC(u16 a0)
return FALSE;
}
-u16 * sub_8114FF0(u16 * a0, const u16 * a1)
+static u16 * sub_8114FF0(u16 * a0, const u16 * a1)
{
gUnknown_203B048 = TRUE;
return sub_8114D18(32, a0, a1);
}
-const u16 * sub_811500C(const u16 * a0)
+static const u16 * sub_811500C(const u16 * a0)
{
const u8 * r5;
a0 = sub_8113E88(32, a0);
@@ -4474,7 +4471,7 @@ const u16 * sub_811500C(const u16 * a0)
return a0 + 4;
}
-u16 * sub_8115078(u16 * a0, const u16 * a1)
+static u16 * sub_8115078(u16 * a0, const u16 * a1)
{
if (!sub_8110944(a0, gUnknown_8456AA0[33]))
return NULL;
@@ -4487,7 +4484,7 @@ u16 * sub_8115078(u16 * a0, const u16 * a1)
return a0 + 5;
}
-const u16 * sub_81150CC(const u16 * a0)
+static const u16 * sub_81150CC(const u16 * a0)
{
const u8 * r5;
if (!sub_8110944(a0, gUnknown_8456AA0[33]))
@@ -4518,13 +4515,13 @@ const u16 * sub_81150CC(const u16 * a0)
return (const u16 *)(r5 + 2);
}
-u16 * sub_81151C0(u16 * a0, const u16 * a1)
+static u16 * sub_81151C0(u16 * a0, const u16 * a1)
{
gUnknown_203B048 = TRUE;
return sub_8114D18(34, a0, a1);
}
-const u16 * sub_81151DC(const u16 * a0)
+static const u16 * sub_81151DC(const u16 * a0)
{
const u16 * r5 = sub_8113E88(34, a0);
const u8 * r6 = (const u8 *)r5 + 6;
@@ -4546,7 +4543,7 @@ const u16 * sub_81151DC(const u16 * a0)
return (const u16 *)(r6 + 2);
}
-const u8 *const gUnknown_8456AF0[] = {
+static const u8 *const gUnknown_8456AF0[] = {
gUnknown_841B09F,
gUnknown_841B0A4,
gUnknown_841B0B5,
@@ -4600,7 +4597,7 @@ const u8 *const gUnknown_8456AF0[] = {
gUnknown_841B277
};
-const u8 *const gUnknown_8456BBC[] = {
+static const u8 *const gUnknown_8456BBC[] = {
gUnknown_841A53A,
gUnknown_841AD9E,
gUnknown_841ADC8,
@@ -4613,7 +4610,7 @@ const u8 *const gUnknown_8456BBC[] = {
gUnknown_841B005
};
-const u8 gUnknown_8456BE4[] = {
+static const u8 gUnknown_8456BE4[] = {
0x03,
0x04,
0x05,
@@ -4667,7 +4664,7 @@ const u8 gUnknown_8456BE4[] = {
0x07
};
-const u8 gUnknown_8456C17[] = {
+static const u8 gUnknown_8456C17[] = {
0x5a,
0x5b,
0x5d,
@@ -4678,7 +4675,7 @@ const u8 gUnknown_8456C17[] = {
0x59
};
-const u8 *const gUnknown_8456C20[] = {
+static const u8 *const gUnknown_8456C20[] = {
gUnknown_841AC51,
gUnknown_841ABAB,
gUnknown_841ABCD,
@@ -4693,7 +4690,7 @@ const u8 *const gUnknown_8456C20[] = {
gUnknown_841AD3C
};
-u16 * sub_8115280(u16 * a0, const u16 * a1)
+static u16 * sub_8115280(u16 * a0, const u16 * a1)
{
u16 * r2 = sub_8113DE0(35, a0);
if (r2 == NULL)
@@ -4704,7 +4701,7 @@ u16 * sub_8115280(u16 * a0, const u16 * a1)
return r2 + 1;
}
-const u16 * sub_81152BC(const u16 * a0)
+static const u16 * sub_81152BC(const u16 * a0)
{
u8 r4, r6;
const u16 * r5 = sub_8113E88(35, a0);
@@ -4738,7 +4735,7 @@ void sub_811539C(void)
gUnknown_203B04B = TRUE;
}
-bool8 sub_81153A8(u16 a0, u16 * a1)
+static bool8 sub_81153A8(u16 a0, u16 * a1)
{
if (a0 != 35)
{
@@ -4751,7 +4748,7 @@ bool8 sub_81153A8(u16 a0, u16 * a1)
return TRUE;
}
-bool8 sub_81153E4(u16 a0, u16 * a1)
+static bool8 sub_81153E4(u16 a0, u16 * a1)
{
if (a0 != 35)
return TRUE;
@@ -4761,7 +4758,7 @@ bool8 sub_81153E4(u16 a0, u16 * a1)
return TRUE;
}
-u16 * sub_8115410(u16 * a0, const u16 * a1)
+static u16 * sub_8115410(u16 * a0, const u16 * a1)
{
u8 * r3;
a0 = sub_8113DE0(36, a0);
@@ -4778,7 +4775,7 @@ u16 * sub_8115410(u16 * a0, const u16 * a1)
return (u16 *)(r3 + 2);
}
-const u16 * sub_8115460(const u16 * a0)
+static const u16 * sub_8115460(const u16 * a0)
{
const u16 * r4 = sub_8113E88(36, a0);
const u8 * r5 = (const u8 *)r4 + 2;
@@ -4796,7 +4793,7 @@ const u16 * sub_8115460(const u16 * a0)
return (const u16 *)(r5 + 2);
}
-u16 * sub_81154DC(u16 * a0, const u16 * a1)
+static u16 * sub_81154DC(u16 * a0, const u16 * a1)
{
a0 = sub_8113DE0(37, a0);
if (a0 == NULL)
@@ -4810,7 +4807,7 @@ u16 * sub_81154DC(u16 * a0, const u16 * a1)
return a0 + 5;
}
-const u16 * sub_8115518(const u16 * a0)
+static const u16 * sub_8115518(const u16 * a0)
{
const u16 * r4 = sub_8113E88(37, a0);
const u8 * r7 = (const u8 *)r4 + 8;
@@ -4830,7 +4827,7 @@ const u16 * sub_8115518(const u16 * a0)
return (const u16 *)(r7 + 2);
}
-u16 * sub_81155A4(u16 * a0, const u16 * a1)
+static u16 * sub_81155A4(u16 * a0, const u16 * a1)
{
a0 = sub_8113DE0(38, a0);
if (a0 == NULL)
@@ -4844,7 +4841,7 @@ u16 * sub_81155A4(u16 * a0, const u16 * a1)
return a0 + 5;
}
-const u16 * sub_81155E0(const u16 * a0) {
+static const u16 * sub_81155E0(const u16 * a0) {
const u16 *r5 = sub_8113E88(38, a0);
const u8 *r7 = (const u8 *) r5 + 8;
u32 r6 = (r5[2] << 16) + r5[3];
@@ -4876,7 +4873,7 @@ const u16 * sub_81155E0(const u16 * a0) {
return (const u16 *)(r7 + 2);
}
-u16 * sub_81156D8(u16 * a0, const u16 * a1)
+static u16 * sub_81156D8(u16 * a0, const u16 * a1)
{
a0 = sub_8113DE0(40, a0);
if (a0 == NULL)
@@ -4886,7 +4883,7 @@ u16 * sub_81156D8(u16 * a0, const u16 * a1)
return a0 + 2;
}
-const u16 * sub_8115700(const u16 * a0)
+static const u16 * sub_8115700(const u16 * a0)
{
const u16 * r4 = sub_8113E88(40, a0);
const u8 * r5 = (const u8 *)r4 + 2;
@@ -4896,7 +4893,7 @@ const u16 * sub_8115700(const u16 * a0)
return (const u16 *)(r5 + 2);
}
-const u16 gUnknown_8456C50[] = {
+static const u16 gUnknown_8456C50[] = {
0x0891,
0x0892,
0x0893,
@@ -4993,7 +4990,7 @@ void sub_8115798(void)
}
}
-u16 * sub_81157DC(u16 * a0, const u16 * a1)
+static u16 * sub_81157DC(u16 * a0, const u16 * a1)
{
a0 = sub_8113DE0(42, a0);
if (a0 == NULL)
@@ -5002,7 +4999,7 @@ u16 * sub_81157DC(u16 * a0, const u16 * a1)
return a0 + 1;
}
-const u16 * sub_8115800(const u16 * a0)
+static const u16 * sub_8115800(const u16 * a0)
{
const u16 * r4 = sub_8113E88(42, a0);
sub_80C4DF8(gStringVar1, r4[0]);
diff --git a/src/save.c b/src/save.c
index 9f580477b..45f5fc6f0 100644
--- a/src/save.c
+++ b/src/save.c
@@ -85,7 +85,7 @@ u16 gSaveUnusedVar;
u16 gSaveFileStatus;
void (*gGameContinueCallback)(void);
struct SaveBlockChunk gRamSaveSectionLocations[0xE];
-u16 gUnknown_3005420;
+u16 gSaveSucceeded;
EWRAM_DATA struct SaveSection gSaveDataBuffer = {0};
EWRAM_DATA u32 gSaveUnusedVar2 = 0;
@@ -702,11 +702,11 @@ u8 TrySavingData(u8 saveType)
else
goto OK; // really?
}
- gUnknown_3005420 = 0xFF;
+ gSaveSucceeded = 0xFF;
return 0xFF;
OK:
- gUnknown_3005420 = 1;
+ gSaveSucceeded = 1;
return 1;
}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 85059691f..ae994fceb 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1284,14 +1284,14 @@ bool8 ScrCmd_loadhelp(struct ScriptContext *ctx)
if (msg == NULL)
msg = (const u8 *)ctx->data[0];
- sub_80F7974(msg);
+ DrawHelpMessageWindowWithText(msg);
CopyWindowToVram(GetStartMenuWindowId(), 1);
return FALSE;
}
bool8 ScrCmd_unloadhelp(struct ScriptContext *ctx)
{
- sub_80F7998();
+ DestroyHelpMessageWindow_();
return FALSE;
}
@@ -1566,7 +1566,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
if (ptr == NULL)
ptr = (u8 *)ctx->data[0];
- sub_80F6E9C();
+ LoadStdWindowFrameGfx();
DrawDialogueFrame(0, 1);
AddTextPrinterParameterized(0, 6, ptr, 0, 1, 0, NULL);
return FALSE;
diff --git a/src/start_menu.c b/src/start_menu.c
new file mode 100644
index 000000000..e3854b803
--- /dev/null
+++ b/src/start_menu.c
@@ -0,0 +1,1008 @@
+#include "global.h"
+#include "palette.h"
+#include "bg.h"
+#include "gpu_regs.h"
+#include "scanline_effect.h"
+#include "overworld.h"
+#include "link.h"
+#include "pokedex.h"
+#include "item_menu.h"
+#include "party_menu.h"
+#include "save.h"
+#include "link_rfu.h"
+#include "event_data.h"
+#include "fieldmap.h"
+#include "safari_zone.h"
+#include "start_menu.h"
+#include "menu.h"
+#include "load_save.h"
+#include "strings.h"
+#include "string_util.h"
+#include "menu_helpers.h"
+#include "text_window.h"
+#include "field_fadetransition.h"
+#include "field_player_avatar.h"
+#include "new_menu_helpers.h"
+#include "map_obj_80688E4.h"
+#include "map_obj_lock.h"
+#include "script.h"
+#include "sound.h"
+#include "quest_log.h"
+#include "new_game.h"
+#include "event_scripts.h"
+#include "field_weather.h"
+#include "field_specials.h"
+#include "pokedex_screen.h"
+#include "trainer_card.h"
+#include "option_menu.h"
+#include "save_menu_util.h"
+#include "help_system.h"
+#include "constants/songs.h"
+#include "constants/flags.h"
+
+enum StartMenuOption
+{
+ STARTMENU_POKEDEX = 0,
+ STARTMENU_POKEMON,
+ STARTMENU_BAG,
+ STARTMENU_PLAYER,
+ STARTMENU_SAVE,
+ STARTMENU_OPTION,
+ STARTMENU_EXIT,
+ STARTMENU_RETIRE,
+ STARTMENU_PLAYER2,
+ MAX_STARTMENU_ITEMS
+};
+
+enum SaveCBReturn
+{
+ SAVECB_RETURN_CONTINUE = 0,
+ SAVECB_RETURN_OKAY,
+ SAVECB_RETURN_CANCEL,
+ SAVECB_RETURN_ERROR
+};
+
+static EWRAM_DATA bool8 (*sStartMenuCallback)(void) = NULL;
+static EWRAM_DATA u8 sStartMenuCursorPos = 0;
+static EWRAM_DATA u8 sNumStartMenuItems = 0;
+static EWRAM_DATA u8 sStartMenuOrder[MAX_STARTMENU_ITEMS] = {};
+static EWRAM_DATA s8 sDrawStartMenuState[2] = {};
+static EWRAM_DATA u8 sSafariZoneStatsWindowId = 0;
+static ALIGNED(4) EWRAM_DATA u8 sSaveStatsWindowId = 0;
+
+static u8 (*sSaveDialogCB)(void);
+static u8 sSaveDialogDelay;
+static bool8 sSaveDialogIsPrinting;
+
+static void SetUpStartMenu_Link(void);
+static void SetUpStartMenu_UnionRoom(void);
+static void SetUpStartMenu_SafariZone(void);
+static void SetUpStartMenu_NormalField(void);
+static bool8 StartCB_HandleInput(void);
+static void StartMenu_FadeScreenIfLeavingOverworld(void);
+static bool8 StartMenuPokedexSanityCheck(void);
+static bool8 StartMenuPokedexCallback(void);
+static bool8 StartMenuPokemonCallback(void);
+static bool8 StartMenuBagCallback(void);
+static bool8 StartMenuPlayerCallback(void);
+static bool8 StartMenuSaveCallback(void);
+static bool8 StartMenuOptionCallback(void);
+static bool8 StartMenuExitCallback(void);
+static bool8 StartMenuSafariZoneRetireCallback(void);
+static bool8 StartMenuLinkPlayerCallback(void);
+static bool8 StartCB_Save1(void);
+static bool8 StartCB_Save2(void);
+static void StartMenu_PrepareForSave(void);
+static u8 RunSaveDialogCB(void);
+static void task50_save_game(u8 taskId);
+static u8 SaveDialogCB_PrintAskSaveText(void);
+static u8 SaveDialogCB_AskSavePrintYesNoMenu(void);
+static u8 SaveDialogCB_AskSaveHandleInput(void);
+static u8 SaveDialogCB_PrintAskOverwriteText(void);
+static u8 SaveDialogCB_AskOverwritePrintYesNoMenu(void);
+static u8 SaveDialogCB_AskReplacePreviousFilePrintYesNoMenu(void);
+static u8 SaveDialogCB_AskOverwriteOrReplacePreviousFileHandleInput(void);
+static u8 SaveDialogCB_PrintSavingDontTurnOffPower(void);
+static u8 SaveDialogCB_DoSave(void);
+static u8 SaveDialogCB_PrintSaveResult(void);
+static u8 SaveDialogCB_WaitPrintSuccessAndPlaySE(void);
+static u8 SaveDialogCB_ReturnSuccess(void);
+static u8 SaveDialogCB_WaitPrintErrorAndPlaySE(void);
+static u8 SaveDialogCB_ReturnError(void);
+static void CB2_WhileSavingAfterLinkBattle(void);
+static void task50_after_link_battle_save(u8 taskId);
+static void PrintSaveStats(void);
+static void CloseSaveStatsWindow(void);
+static void CloseStartMenu(void);
+
+static const struct MenuAction sStartMenuActionTable[] = {
+ { gStartMenuText_Pokedex, {.u8_void = StartMenuPokedexCallback} },
+ { gStartMenuText_Pokemon, {.u8_void = StartMenuPokemonCallback} },
+ { gStartMenuText_Bag, {.u8_void = StartMenuBagCallback} },
+ { gStartMenuText_Player, {.u8_void = StartMenuPlayerCallback} },
+ { gStartMenuText_Save, {.u8_void = StartMenuSaveCallback} },
+ { gStartMenuText_Option, {.u8_void = StartMenuOptionCallback} },
+ { gStartMenuText_Exit, {.u8_void = StartMenuExitCallback} },
+ { gStartMenuText_Retire, {.u8_void = StartMenuSafariZoneRetireCallback} },
+ { gStartMenuText_Player, {.u8_void = StartMenuLinkPlayerCallback} }
+};
+
+static const struct WindowTemplate sSafariZoneStatsWindowTemplate = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 10,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x008
+};
+
+static const u8 *const sStartMenuDescPointers[] = {
+ gStartMenuDesc_Pokedex,
+ gStartMenuDesc_Pokemon,
+ gStartMenuDesc_Bag,
+ gStartMenuDesc_Player,
+ gStartMenuDesc_Save,
+ gStartMenuDesc_Option,
+ gStartMenuDesc_Exit,
+ gStartMenuDesc_Retire,
+ gStartMenuDesc_Player
+};
+
+static const struct BgTemplate sBGTemplates_AfterLinkSaveMessage[] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000
+ }
+};
+
+static const struct WindowTemplate sWindowTemplates_AfterLinkSaveMessage[] = {
+ {
+ .bg = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 15,
+ .width = 26,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x198
+ }, DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sSaveStatsWindowTemplate = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 14,
+ .height = 9,
+ .paletteNum = 13,
+ .baseBlock = 0x008
+};
+
+static ALIGNED(2) const u8 sTextColor_StatName[] = { 1, 2, 3 };
+static ALIGNED(2) const u8 sTextColor_StatValue[] = { 1, 4, 5 };
+static ALIGNED(2) const u8 sTextColor_LocationHeader[] = { 1, 6, 7 };
+
+static void SetUpStartMenu(void)
+{
+ sNumStartMenuItems = 0;
+ if (IsUpdateLinkStateCBActive() == TRUE)
+ SetUpStartMenu_Link();
+ else if (InUnionRoom() == TRUE)
+ SetUpStartMenu_UnionRoom();
+ else if (GetSafariZoneFlag() == TRUE)
+ SetUpStartMenu_SafariZone();
+ else
+ SetUpStartMenu_NormalField();
+}
+
+static void AppendToStartMenuItems(u8 newEntry)
+{
+ AppendToList(sStartMenuOrder, &sNumStartMenuItems, newEntry);
+}
+
+static void SetUpStartMenu_NormalField(void)
+{
+ if (FlagGet(FLAG_0x829) == TRUE)
+ AppendToStartMenuItems(STARTMENU_POKEDEX);
+ if (FlagGet(FLAG_0x828) == TRUE)
+ AppendToStartMenuItems(STARTMENU_POKEMON);
+ AppendToStartMenuItems(STARTMENU_BAG);
+ AppendToStartMenuItems(STARTMENU_PLAYER);
+ AppendToStartMenuItems(STARTMENU_SAVE);
+ AppendToStartMenuItems(STARTMENU_OPTION);
+ AppendToStartMenuItems(STARTMENU_EXIT);
+}
+
+static void SetUpStartMenu_SafariZone(void)
+{
+ AppendToStartMenuItems(STARTMENU_RETIRE);
+ AppendToStartMenuItems(STARTMENU_POKEDEX);
+ AppendToStartMenuItems(STARTMENU_POKEMON);
+ AppendToStartMenuItems(STARTMENU_BAG);
+ AppendToStartMenuItems(STARTMENU_PLAYER);
+ AppendToStartMenuItems(STARTMENU_OPTION);
+ AppendToStartMenuItems(STARTMENU_EXIT);
+}
+
+static void SetUpStartMenu_Link(void)
+{
+ AppendToStartMenuItems(STARTMENU_POKEMON);
+ AppendToStartMenuItems(STARTMENU_BAG);
+ AppendToStartMenuItems(STARTMENU_PLAYER2);
+ AppendToStartMenuItems(STARTMENU_OPTION);
+ AppendToStartMenuItems(STARTMENU_EXIT);
+}
+
+static void SetUpStartMenu_UnionRoom(void)
+{
+ AppendToStartMenuItems(STARTMENU_POKEMON);
+ AppendToStartMenuItems(STARTMENU_BAG);
+ AppendToStartMenuItems(STARTMENU_PLAYER);
+ AppendToStartMenuItems(STARTMENU_OPTION);
+ AppendToStartMenuItems(STARTMENU_EXIT);
+}
+
+static void DrawSafariZoneStatsWindow(void)
+{
+ sSafariZoneStatsWindowId = AddWindow(&sSafariZoneStatsWindowTemplate);
+ PutWindowTilemap(sSafariZoneStatsWindowId);
+ DrawStdWindowFrame(sSafariZoneStatsWindowId, FALSE);
+ ConvertIntToDecimalStringN(gStringVar1, gSafariZoneStepCounter, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ ConvertIntToDecimalStringN(gStringVar2, 600, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ ConvertIntToDecimalStringN(gStringVar3, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ StringExpandPlaceholders(gStringVar4, gUnknown_84162A9);
+ AddTextPrinterParameterized(sSafariZoneStatsWindowId,2, gStringVar4, 4, 3, 0xFF, NULL);
+ CopyWindowToVram(sSafariZoneStatsWindowId, 2);
+}
+
+static void DestroySafariZoneStatsWindow(void)
+{
+ if (GetSafariZoneFlag())
+ {
+ ClearStdWindowAndFrameToTransparent(sSafariZoneStatsWindowId, FALSE);
+ CopyWindowToVram(sSafariZoneStatsWindowId, 2);
+ RemoveWindow(sSafariZoneStatsWindowId);
+ }
+}
+
+static s8 PrintStartMenuItems(s8 *cursor_p, u8 nitems)
+{
+ s16 i = *cursor_p;
+ do
+ {
+ if (sStartMenuOrder[i] == STARTMENU_PLAYER || sStartMenuOrder[i] == STARTMENU_PLAYER2)
+ {
+ Menu_PrintFormatIntlPlayerName(GetStartMenuWindowId(), sStartMenuActionTable[sStartMenuOrder[i]].text, 8, i * 15);
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, sStartMenuActionTable[sStartMenuOrder[i]].text);
+ AddTextPrinterParameterized(GetStartMenuWindowId(), 2, gStringVar4, 8, i * 15, 0xFF, NULL);
+ }
+ i++;
+ if (i >= sNumStartMenuItems)
+ {
+ *cursor_p = i;
+ return TRUE;
+ }
+ } while (--nitems);
+ *cursor_p = i;
+ return FALSE;
+}
+
+static s8 DoDrawStartMenu(void)
+{
+ switch (sDrawStartMenuState[0])
+ {
+ case 0:
+ sDrawStartMenuState[0]++;
+ break;
+ case 1:
+ SetUpStartMenu();
+ sDrawStartMenuState[0]++;
+ break;
+ case 2:
+ LoadStdWindowFrameGfx();
+ DrawStdWindowFrame(CreateStartMenuWindow(sNumStartMenuItems), FALSE);
+ sDrawStartMenuState[0]++;
+ break;
+ case 3:
+ if (GetSafariZoneFlag())
+ DrawSafariZoneStatsWindow();
+ sDrawStartMenuState[0]++;
+ break;
+ case 4:
+ if (PrintStartMenuItems(&sDrawStartMenuState[1], 2) == TRUE)
+ sDrawStartMenuState[0]++;
+ break;
+ case 5:
+ sStartMenuCursorPos = Menu_InitCursor(GetStartMenuWindowId(), 2, 0, 0, 15, sNumStartMenuItems, sStartMenuCursorPos);
+ if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP)
+ {
+ DrawHelpMessageWindowWithText(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]]);
+ }
+ CopyWindowToVram(GetStartMenuWindowId(), 1);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void DrawStartMenuInOneGo(void)
+{
+ sDrawStartMenuState[0] = 0;
+ sDrawStartMenuState[1] = 0;
+ while (!DoDrawStartMenu())
+ ;
+}
+
+static void task50_startmenu(u8 taskId)
+{
+ if (DoDrawStartMenu() == TRUE)
+ SwitchTaskToFollowupFunc(taskId);
+}
+
+static void OpenStartMenuWithFollowupFunc(TaskFunc func)
+{
+ u8 taskId;
+ sDrawStartMenuState[0] = 0;
+ sDrawStartMenuState[1] = 0;
+ taskId = CreateTask(task50_startmenu, 80);
+ SetTaskFuncWithFollowupFunc(taskId, task50_startmenu, func);
+}
+
+static bool8 FieldCB2_DrawStartMenu(void)
+{
+ if (!DoDrawStartMenu())
+ return FALSE;
+ FadeTransition_FadeInOnReturnToStartMenu();
+ return TRUE;
+}
+
+void SetUpReturnToStartMenu(void)
+{
+ sDrawStartMenuState[0] = 0;
+ sDrawStartMenuState[1] = 0;
+ gFieldCallback2 = FieldCB2_DrawStartMenu;
+}
+
+void Task_StartMenuHandleInput(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ switch (data[0])
+ {
+ case 0:
+ if (InUnionRoom() == TRUE)
+ var_800D_set_xB();
+ sStartMenuCallback = StartCB_HandleInput;
+ data[0]++;
+ break;
+ case 1:
+ if (sStartMenuCallback() == TRUE)
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void ShowStartMenu(void)
+{
+ if (!IsUpdateLinkStateCBActive())
+ {
+ player_bitmagic();
+ sub_805C270();
+ sub_805C780();
+ }
+ OpenStartMenuWithFollowupFunc(Task_StartMenuHandleInput);
+ ScriptContext2_Enable();
+}
+
+static bool8 StartCB_HandleInput(void)
+{
+ if (JOY_NEW(DPAD_UP))
+ {
+ PlaySE(SE_SELECT);
+ sStartMenuCursorPos = Menu_MoveCursor(-1);
+ if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP)
+ {
+ PrintTextOnHelpMessageWindow(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]], 2);
+ }
+ }
+ if (JOY_NEW(DPAD_DOWN))
+ {
+ PlaySE(SE_SELECT);
+ sStartMenuCursorPos = Menu_MoveCursor(+1);
+ if (!MenuHelpers_LinkSomething() && InUnionRoom() != TRUE && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_HELP)
+ {
+ PrintTextOnHelpMessageWindow(sStartMenuDescPointers[sStartMenuOrder[sStartMenuCursorPos]], 2);
+ }
+ }
+ if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ if (!StartMenuPokedexSanityCheck())
+ return FALSE;
+ sStartMenuCallback = sStartMenuActionTable[sStartMenuOrder[sStartMenuCursorPos]].func.u8_void;
+ StartMenu_FadeScreenIfLeavingOverworld();
+ return FALSE;
+ }
+ if (JOY_NEW(B_BUTTON | START_BUTTON))
+ {
+ DestroySafariZoneStatsWindow();
+ DestroyHelpMessageWindow_();
+ CloseStartMenu();
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void StartMenu_FadeScreenIfLeavingOverworld(void)
+{
+ if (sStartMenuCallback != StartMenuSaveCallback
+ && sStartMenuCallback != StartMenuExitCallback
+ && sStartMenuCallback != StartMenuSafariZoneRetireCallback)
+ {
+ sub_80CCB68();
+ fade_screen(1, 0);
+ }
+}
+
+static bool8 StartMenuPokedexSanityCheck(void)
+{
+ if (sStartMenuActionTable[sStartMenuOrder[sStartMenuCursorPos]].func.u8_void == StartMenuPokedexCallback && GetNationalPokedexCount(0) == 0)
+ return FALSE;
+ return TRUE;
+}
+
+static bool8 StartMenuPokedexCallback(void)
+{
+ if (!gPaletteFade.active)
+ {
+ IncrementGameStat(GAME_STAT_CHECKED_POKEDEX);
+ PlayRainStoppingSoundEffect();
+ DestroySafariZoneStatsWindow();
+ CleanupOverworldWindowsAndTilemaps();
+ SetMainCallback2(CB2_OpenPokedexFromStartMenu);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 StartMenuPokemonCallback(void)
+{
+ if (!gPaletteFade.active)
+ {
+ PlayRainStoppingSoundEffect();
+ DestroySafariZoneStatsWindow();
+ CleanupOverworldWindowsAndTilemaps();
+ SetMainCallback2(CB2_PartyMenuFromStartMenu);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 StartMenuBagCallback(void)
+{
+ if (!gPaletteFade.active)
+ {
+ PlayRainStoppingSoundEffect();
+ DestroySafariZoneStatsWindow();
+ CleanupOverworldWindowsAndTilemaps();
+ SetMainCallback2(CB2_BagMenuFromStartMenu);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 StartMenuPlayerCallback(void)
+{
+ if (!gPaletteFade.active)
+ {
+ PlayRainStoppingSoundEffect();
+ DestroySafariZoneStatsWindow();
+ CleanupOverworldWindowsAndTilemaps();
+ InitTrainerCard(CB2_ReturnToStartMenu);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 StartMenuSaveCallback(void)
+{
+ sStartMenuCallback = StartCB_Save1;
+ return FALSE;
+}
+
+static bool8 StartMenuOptionCallback(void)
+{
+ if (!gPaletteFade.active)
+ {
+ PlayRainStoppingSoundEffect();
+ DestroySafariZoneStatsWindow();
+ CleanupOverworldWindowsAndTilemaps();
+ SetMainCallback2(CB2_OptionsMenuFromStartMenu);
+ gMain.savedCallback = CB2_ReturnToStartMenu;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 StartMenuExitCallback(void)
+{
+ DestroySafariZoneStatsWindow();
+ DestroyHelpMessageWindow_();
+ CloseStartMenu();
+ return TRUE;
+}
+
+static bool8 StartMenuSafariZoneRetireCallback(void)
+{
+ DestroySafariZoneStatsWindow();
+ DestroyHelpMessageWindow_();
+ CloseStartMenu();
+ SafariZoneRetirePrompt();
+ return TRUE;
+}
+
+
+static bool8 StartMenuLinkPlayerCallback(void)
+{
+ if (!gPaletteFade.active)
+ {
+ PlayRainStoppingSoundEffect();
+ CleanupOverworldWindowsAndTilemaps();
+ InitLinkPartnerTrainerCard(gUnknown_300502C, CB2_ReturnToStartMenu);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 StartCB_Save1(void)
+{
+ HelpSystem_BackupSomeVariable();
+ HelpSystem_SetSomeVariable2(12);
+ StartMenu_PrepareForSave();
+ sStartMenuCallback = StartCB_Save2;
+ return FALSE;
+}
+
+static bool8 StartCB_Save2(void)
+{
+ switch (RunSaveDialogCB())
+ {
+ case SAVECB_RETURN_CONTINUE:
+ break;
+ case SAVECB_RETURN_OKAY:
+ ClearDialogWindowAndFrameToTransparent(0, TRUE);
+ sub_80696C0();
+ ScriptContext2_Disable();
+ HelpSystem_RestoreSomeVariable();
+ return TRUE;
+ case SAVECB_RETURN_CANCEL:
+ ClearDialogWindowAndFrameToTransparent(0, FALSE);
+ DrawStartMenuInOneGo();
+ HelpSystem_RestoreSomeVariable();
+ sStartMenuCallback = StartCB_HandleInput;
+ break;
+ case SAVECB_RETURN_ERROR:
+ ClearDialogWindowAndFrameToTransparent(0, TRUE);
+ sub_80696C0();
+ ScriptContext2_Disable();
+ HelpSystem_RestoreSomeVariable();
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void StartMenu_PrepareForSave(void)
+{
+ save_serialize_map();
+ sSaveDialogCB = SaveDialogCB_PrintAskSaveText;
+ sSaveDialogIsPrinting = FALSE;
+}
+
+static u8 RunSaveDialogCB(void)
+{
+ if (RunTextPrinters_CheckPrinter0Active() == TRUE)
+ return 0;
+ sSaveDialogIsPrinting = FALSE;
+ return sSaveDialogCB();
+}
+
+void Field_AskSaveTheGame(void)
+{
+ HelpSystem_BackupSomeVariable();
+ HelpSystem_SetSomeVariable2(12);
+ StartMenu_PrepareForSave();
+ CreateTask(task50_save_game, 80);
+}
+
+static void PrintSaveTextWithFollowupFunc(const u8 *str, bool8 (*saveDialogCB)(void))
+{
+ StringExpandPlaceholders(gStringVar4, str);
+ sub_80F7768(0, TRUE);
+ AddTextPrinterForMessage(TRUE);
+ sSaveDialogIsPrinting = TRUE;
+ sSaveDialogCB = saveDialogCB;
+}
+
+static void task50_save_game(u8 taskId)
+{
+ switch (RunSaveDialogCB())
+ {
+ case 0:
+ return;
+ case 2:
+ case 3:
+ gSpecialVar_Result = FALSE;
+ break;
+ case 1:
+ gSpecialVar_Result = TRUE;
+ break;
+ }
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ HelpSystem_RestoreSomeVariable();
+}
+
+static void CloseSaveMessageWindow(void)
+{
+ ClearDialogWindowAndFrame(0, TRUE);
+}
+
+static void CloseSaveStatsWindow_(void)
+{
+ CloseSaveStatsWindow();
+}
+
+static void SetSaveDialogDelayTo60Frames(void)
+{
+ sSaveDialogDelay = 60;
+}
+
+static bool8 SaveDialog_Wait60FramesOrAButtonHeld(void)
+{
+ sSaveDialogDelay--;
+ if (JOY_HELD(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ return TRUE;
+ }
+ else if (sSaveDialogDelay == 0)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static bool8 SaveDialog_Wait60FramesThenCheckAButtonHeld(void)
+{
+ if (sSaveDialogDelay == 0)
+ {
+ if (JOY_HELD(A_BUTTON))
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+ else
+ {
+ sSaveDialogDelay--;
+ return FALSE;
+ }
+}
+
+static u8 SaveDialogCB_PrintAskSaveText(void)
+{
+ ClearStdWindowAndFrame(GetStartMenuWindowId(), FALSE);
+ RemoveStartMenuWindow();
+ DestroyHelpMessageWindow(0);
+ PrintSaveStats();
+ PrintSaveTextWithFollowupFunc(gText_WouldYouLikeToSaveTheGame, SaveDialogCB_AskSavePrintYesNoMenu);
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_AskSavePrintYesNoMenu(void)
+{
+ DisplayYesNoMenuDefaultYes();
+ sSaveDialogCB = SaveDialogCB_AskSaveHandleInput;
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_AskSaveHandleInput(void)
+{
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
+ {
+ case 0:
+ if ((gSaveFileStatus != SAVE_STATUS_EMPTY && gSaveFileStatus != SAVE_STATUS_INVALID) || !gDifferentSaveFile)
+ sSaveDialogCB = SaveDialogCB_PrintAskOverwriteText;
+ else
+ sSaveDialogCB = SaveDialogCB_PrintSavingDontTurnOffPower;
+ break;
+ case 1:
+ case -1:
+ CloseSaveStatsWindow_();
+ CloseSaveMessageWindow();
+ return SAVECB_RETURN_CANCEL;
+ }
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_PrintAskOverwriteText(void)
+{
+ if (gDifferentSaveFile == TRUE)
+ PrintSaveTextWithFollowupFunc(gText_DifferentGameFile, SaveDialogCB_AskReplacePreviousFilePrintYesNoMenu);
+ else
+ PrintSaveTextWithFollowupFunc(gText_AlreadySaveFile_WouldLikeToOverwrite, SaveDialogCB_AskOverwritePrintYesNoMenu);
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_AskOverwritePrintYesNoMenu(void)
+{
+ DisplayYesNoMenuDefaultYes();
+ sSaveDialogCB = SaveDialogCB_AskOverwriteOrReplacePreviousFileHandleInput;
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_AskReplacePreviousFilePrintYesNoMenu(void)
+{
+ DisplayYesNoMenuDefaultNo();
+ sSaveDialogCB = SaveDialogCB_AskOverwriteOrReplacePreviousFileHandleInput;
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_AskOverwriteOrReplacePreviousFileHandleInput(void)
+{
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
+ {
+ case 0:
+ sSaveDialogCB = SaveDialogCB_PrintSavingDontTurnOffPower;
+ break;
+ case 1:
+ case -1:
+ CloseSaveStatsWindow_();
+ CloseSaveMessageWindow();
+ return SAVECB_RETURN_CANCEL;
+ }
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_PrintSavingDontTurnOffPower(void)
+{
+ sub_8112450();
+ PrintSaveTextWithFollowupFunc(gText_SavingDontTurnOffThePower, SaveDialogCB_DoSave);
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_DoSave(void)
+{
+ IncrementGameStat(GAME_STAT_SAVED_GAME);
+ if (gDifferentSaveFile == TRUE)
+ {
+ TrySavingData(SAVE_OVERWRITE_DIFFERENT_FILE);
+ gDifferentSaveFile = FALSE;
+ }
+ else
+ {
+ TrySavingData(SAVE_NORMAL);
+ }
+ sSaveDialogCB = SaveDialogCB_PrintSaveResult;
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_PrintSaveResult(void)
+{
+ if (gSaveSucceeded == TRUE)
+ PrintSaveTextWithFollowupFunc(gText_PlayerSavedTheGame, SaveDialogCB_WaitPrintSuccessAndPlaySE);
+ else
+ PrintSaveTextWithFollowupFunc(gText_SaveError_PleaseExchangeBackupMemory, SaveDialogCB_WaitPrintErrorAndPlaySE);
+ SetSaveDialogDelayTo60Frames();
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_WaitPrintSuccessAndPlaySE(void)
+{
+ if (!RunTextPrinters_CheckPrinter0Active())
+ {
+ PlaySE(SE_SAVE);
+ sSaveDialogCB = SaveDialogCB_ReturnSuccess;
+ }
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_ReturnSuccess(void)
+{
+ if (!IsSEPlaying() && SaveDialog_Wait60FramesOrAButtonHeld())
+ {
+ CloseSaveStatsWindow_();
+ return SAVECB_RETURN_OKAY;
+ }
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_WaitPrintErrorAndPlaySE(void)
+{
+ if (!RunTextPrinters_CheckPrinter0Active())
+ {
+ PlaySE(SE_BOO);
+ sSaveDialogCB = SaveDialogCB_ReturnError;
+ }
+ return SAVECB_RETURN_CONTINUE;
+}
+
+static u8 SaveDialogCB_ReturnError(void)
+{
+ if (!SaveDialog_Wait60FramesThenCheckAButtonHeld())
+ return SAVECB_RETURN_CONTINUE;
+ CloseSaveStatsWindow_();
+ return SAVECB_RETURN_ERROR;
+}
+
+static void VBlankCB_WhileSavingAfterLinkBattle(void)
+{
+ TransferPlttBuffer();
+}
+
+bool32 DoSetUpSaveAfterLinkBattle(u8 *state)
+{
+ switch (*state)
+ {
+ case 0:
+ SetGpuReg(REG_OFFSET_DISPCNT, 0);
+ SetVBlankCallback(NULL);
+ ScanlineEffect_Stop();
+ DmaFill16Defvars(3, 0, (void *)PLTT, PLTT_SIZE);
+ DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000);
+ break;
+ case 1:
+ ResetSpriteData();
+ ResetTasks();
+ ResetPaletteFade();
+ ScanlineEffect_Clear();
+ break;
+ case 2:
+ ResetBgsAndClearDma3BusyFlags(FALSE);
+ InitBgsFromTemplates(0, sBGTemplates_AfterLinkSaveMessage, NELEMS(sBGTemplates_AfterLinkSaveMessage));
+ InitWindows(sWindowTemplates_AfterLinkSaveMessage);
+ TextWindow_SetStdFrame0_WithPal(0, 0x008, 0xF0);
+ break;
+ case 3:
+ ShowBg(0);
+ BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
+ SetVBlankCallback(VBlankCB_WhileSavingAfterLinkBattle);
+ EnableInterrupts(INTR_FLAG_VBLANK);
+ break;
+ case 4:
+ return TRUE;
+ }
+ (*state)++;
+ return FALSE;
+}
+
+void CB2_SetUpSaveAfterLinkBattle(void)
+{
+ if (DoSetUpSaveAfterLinkBattle(&gMain.state))
+ {
+ CreateTask(task50_after_link_battle_save, 80);
+ SetMainCallback2(CB2_WhileSavingAfterLinkBattle);
+ }
+}
+
+static void CB2_WhileSavingAfterLinkBattle(void)
+{
+ RunTasks();
+ UpdatePaletteFade();
+}
+
+static void task50_after_link_battle_save(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!gPaletteFade.active)
+ {
+ switch (data[0])
+ {
+ case 0:
+ FillWindowPixelBuffer(0, PIXEL_FILL(1));
+ AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0xFF, NULL, 2, 1, 3);
+ DrawTextBorderOuter(0, 0x008, 0x0F);
+ PutWindowTilemap(0);
+ CopyWindowToVram(0, 3);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
+ if (gWirelessCommType != 0 && InUnionRoom())
+ data[0] = 5;
+ else
+ data[0] = 1;
+ break;
+ case 1:
+ sub_804C1C0();
+ sub_80DA45C();
+ data[0] = 2;
+ break;
+ case 2:
+ if (sub_80DA4A0())
+ {
+ sav2_gender2_inplace_and_xFE();
+ data[0] = 3;
+ }
+ break;
+ case 3:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ data[0] = 4;
+ break;
+ case 4:
+ FreeAllWindowBuffers();
+ SetMainCallback2(gMain.savedCallback);
+ DestroyTask(taskId);
+ break;
+ case 5:
+ CreateTask(sub_80DA634, 5);
+ data[0] = 6;
+ break;
+ case 6:
+ if (!FuncIsActiveTask(sub_80DA634))
+ data[0] = 3;
+ break;
+ }
+ }
+}
+
+static void PrintSaveStats(void)
+{
+ u8 y;
+ u8 x;
+ sSaveStatsWindowId = AddWindow(&sSaveStatsWindowTemplate);
+ TextWindow_SetStdFrame0_WithPal(sSaveStatsWindowId, 0x21D, 0xD0);
+ DrawStdFrameWithCustomTileAndPalette(sSaveStatsWindowId, FALSE, 0x21D, 0x0D);
+ SaveStatToString(SAVE_STAT_LOCATION, gStringVar4, 8);
+ x = (u32)(112 - GetStringWidth(2, gStringVar4, -1)) / 2;
+ AddTextPrinterParameterized3(sSaveStatsWindowId, 2, x, 0, sTextColor_LocationHeader, -1, gStringVar4);
+ x = (u32)(112 - GetStringWidth(2, gStringVar4, -1)) / 2;
+ AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 2, 14, sTextColor_StatName, -1, gSaveStatName_Player);
+ SaveStatToString(SAVE_STAT_NAME, gStringVar4, 2);
+ Menu_PrintFormatIntlPlayerName(sSaveStatsWindowId, gStringVar4, 60, 14);
+ AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 2, 28, sTextColor_StatName, -1, gSaveStatName_Badges);
+ SaveStatToString(SAVE_STAT_BADGES, gStringVar4, 2);
+ AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 60, 28, sTextColor_StatValue, -1, gStringVar4);
+ y = 42;
+ if (FlagGet(FLAG_0x829) == TRUE)
+ {
+ AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 2, 42, sTextColor_StatName, -1, gSaveStatName_Pokedex);
+ SaveStatToString(SAVE_STAT_POKEDEX, gStringVar4, 2);
+ AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 60, 42, sTextColor_StatValue, -1, gStringVar4);
+ y = 56;
+ }
+ AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 2, y, sTextColor_StatName, -1, gSaveStatName_Time);
+ SaveStatToString(SAVE_STAT_TIME, gStringVar4, 2);
+ AddTextPrinterParameterized3(sSaveStatsWindowId, 0, 60, y, sTextColor_StatValue, -1, gStringVar4);
+ CopyWindowToVram(sSaveStatsWindowId, 2);
+}
+
+static void CloseSaveStatsWindow(void)
+{
+ ClearStdWindowAndFrame(sSaveStatsWindowId, FALSE);
+ RemoveWindow(sSaveStatsWindowId);
+}
+
+static void CloseStartMenu(void)
+{
+ PlaySE(SE_SELECT);
+ ClearStdWindowAndFrame(GetStartMenuWindowId(), TRUE);
+ RemoveStartMenuWindow();
+ sub_80696C0();
+ ScriptContext2_Disable();
+}
+
+void AppendToList(u8 *list, u8 *cursor, u8 newEntry)
+{
+ list[*cursor] = newEntry;
+ (*cursor)++;
+}
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index 18da0997c..aa273073b 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -510,7 +510,7 @@ static void TeachyTvMainCallback(void)
ScheduleBgCopyTilemapToVram(1);
ScheduleBgCopyTilemapToVram(2);
ScheduleBgCopyTilemapToVram(3);
- sub_812B1E0(9); // help system something
+ HelpSystem_SetSomeVariable(9); // help system something
BlendPalettes(0xFFFFFFFF, 0x10, 0);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
SetVBlankCallback(TeachyTvVblankHandler);
@@ -736,7 +736,7 @@ static void TeachyTvOptionListController(u8 taskId)
{
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
- if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != ReturnToBagFromKeyItem))
+ if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != CB2_BagMenuFromStartMenu))
{
PlaySE(SE_SELECT);
TeachyTvQuitBeginFade(taskId);
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index 17f6b9e09..9512e73d1 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -1278,7 +1278,7 @@ void sub_815E720(void)
sub_815EC0C();
windowId = AddWindow(gUnknown_847A218);
- sub_80F6E9C();
+ LoadStdWindowFrameGfx();
DrawStdWindowFrame(windowId, FALSE);
AddTextPrinterParameterized(windowId, 2, gUnknown_83FE982, 0x4A, 0, 0xFF, NULL);
diff --git a/sym_bss.txt b/sym_bss.txt
index a2cf9ccd8..a8c5ba44c 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -53,19 +53,13 @@ gUnknown_3000E9C: @ 3000E9C
gUnknown_3000EA0: @ 3000EA0
.space 0x8
+ .align 2
.include "src/script.o"
-
.align 2
-gUnknown_3000FA4: @ 3000FA4
- .space 0x4
-
-gUnknown_3000FA8: @ 3000FA8
- .space 0x1
-
-gUnknown_3000FA9: @ 3000FA9
- .space 0x3
-
+ .include "src/start_menu.o"
+ .align 2
.include "src/tileset_anims.o"
+ .align 2
.include "src/sound.o"
.align 2
@@ -111,9 +105,9 @@ gUnknown_3002008: @ 3002008
gUnknown_3002018: @ 3002018
.space 0x4
- .include "src/quest_log.o"
+ .include "src/quest_log.o"
- .align 2
+ .align 2
gUnknown_3002024: @ 3002024
.space 0x4
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 2abc3b9b5..0633da5bf 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -12,7 +12,7 @@
.align 2
.include "src/sprite.o"
.align 2
- .include "src/string_util.o"
+ .include "src/string_util.o"
.align 2
.include "src/link.o"
.space 8
@@ -510,9 +510,9 @@ gUnknown_203709C: @ 203709C
.space 0x4
.include "src/script.o"
- .include "src/scrcmd.o"
+ .include "src/scrcmd.o"
- .align 2
+ .align 2
gSpecialVar_0x8000: @ 20370B8
.space 0x2
@@ -576,33 +576,13 @@ gUnknown_20370DE: @ 20370DE
gUnknown_20370E0: @ 20370E0
.space 0x10
-gUnknown_20370F0: @ 20370F0
- .space 0x4
-
-gUnknown_20370F4: @ 20370F4
- .space 0x1
-
-gUnknown_20370F5: @ 20370F5
- .space 0x1
-
-gUnknown_20370F6: @ 20370F6
- .space 0x9
-
-gUnknown_20370FF: @ 20370FF
- .space 0x1
-
-gUnknown_2037100: @ 2037100
- .space 0x1
-
-gUnknown_2037101: @ 2037101
- .space 0x3
-
-gUnknown_2037104: @ 2037104
- .space 0x4
-
+ .align 2
+ .include "src/start_menu.o"
+ .align 2
.include "src/tileset_anims.o"
+ .align 2
.include "src/palette.o"
-
+ .align 2
.include "src/sound.o"
.align 2
@@ -978,9 +958,9 @@ gUnknown_203AAB4: @ 203AAB4
gUnknown_203AAB8: @ 203AAB8
.space 0x4
- .align 2
- .include "src/player_pc.o"
- .align 2
+ .align 2
+ .include "src/player_pc.o"
+ .align 2
.include "src/intro.o"
.align 2