aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--engine/menus/main_menu.asm7
-rw-r--r--engine/movie/title.asm12
-rw-r--r--home/init.asm4
3 files changed, 22 insertions, 1 deletions
diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm
index d0e1cc1b..c41a7d10 100644
--- a/engine/menus/main_menu.asm
+++ b/engine/menus/main_menu.asm
@@ -10,6 +10,11 @@ MainMenu:
predef TryLoadSaveFile
+; FASTBOOT: if the save loaded cleanly (status 2), skip the menu and continue
+ ld a, [wSaveFileStatus]
+ cp 2
+ jp z, SpecialEnterMap
+
.mainMenuLoop
ld c, 20
call DelayFrames
@@ -273,7 +278,7 @@ DisplayOptionMenu:
callfar DisplayOptionMenu_
ret
-CheckForPlayerNameInSRAM:
+CheckForPlayerNameInSRAM::
ld a, RAMG_SRAM_ENABLE
ld [rRAMG], a
ld a, BMODE_ADVANCED
diff --git a/engine/movie/title.asm b/engine/movie/title.asm
index 4ff22800..3cd2cea2 100644
--- a/engine/movie/title.asm
+++ b/engine/movie/title.asm
@@ -1,4 +1,16 @@
PrepareTitleScreen::
+; FASTBOOT: if a save file exists, skip the title screen straight to the menu
+; (which auto-continues). Only the boot path reaches PrepareTitleScreen; the
+; "return to title" paths jp DisplayTitleScreen directly, so they're unaffected.
+ call CheckForPlayerNameInSRAM
+ jr nc, .fastbootNormalTitle
+ xor a
+ ld hl, wStatusFlags6
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ jp MainMenu
+.fastbootNormalTitle
; These debug names are already copied later in PrepareOakSpeech.
; Removing the unused copies below has no apparent impact.
; CopyDebugName can also be safely deleted afterwards.
diff --git a/home/init.asm b/home/init.asm
index bef73b7e..fc426e29 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -98,7 +98,11 @@ Init::
dec a
ld [wUpdateSpritesEnabled], a
+; FASTBOOT: skip the GameFreak/Pikachu intro if a save file exists
+ farcall CheckForPlayerNameInSRAM
+ jr c, .fastbootSkipIntro
predef PlayIntro
+.fastbootSkipIntro
call DisableLCD
call ClearVram