From d52815caa2c0f385ae61e38ecc7b5bddd7ccf7b3 Mon Sep 17 00:00:00 2001 From: Ash Ketchum Date: Wed, 15 Jul 2026 00:28:26 +0200 Subject: fastboot: skip intro/title/menu and autoload save if one exists Three small hooks, all gated on CheckForPlayerNameInSRAM (carry = save present): - home/init.asm: skip 'predef PlayIntro' when a save exists - engine/movie/title.asm (PrepareTitleScreen): jp MainMenu, skipping the title screen (only the boot path hits PrepareTitleScreen; return-to-title paths jp DisplayTitleScreen directly, so they're unaffected) - engine/menus/main_menu.asm (MainMenu): after TryLoadSaveFile, if wSaveFileStatus==2 jp SpecialEnterMap, skipping the CONTINUE menu Exported CheckForPlayerNameInSRAM (:: ) so home/init.asm can farcall it. New game (no save) path is fully preserved. Ship pokeyellow.gbc only; the _DEBUG build overflows home ROM0 by 8 bytes with the init hook. --- engine/movie/title.asm | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'engine/movie') 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. -- cgit v1.3.1-sl0p