diff options
| -rw-r--r-- | engine/movie/intro.asm | 3 | ||||
| -rw-r--r-- | engine/warp_menu.asm | 17 | ||||
| -rw-r--r-- | home/init.asm | 4 | ||||
| -rw-r--r-- | home/overworld.asm | 5 | ||||
| -rw-r--r-- | main.asm | 1 |
5 files changed, 26 insertions, 4 deletions
diff --git a/engine/movie/intro.asm b/engine/movie/intro.asm index 1381d396..7580063c 100644 --- a/engine/movie/intro.asm +++ b/engine/movie/intro.asm @@ -6,6 +6,9 @@ DEF ANIMATION_END EQU 80 PlayIntro: +; FASTBOOT: skip the intro entirely if a save file exists + farcall CheckForPlayerNameInSRAM + ret c xor a ldh [hJoyHeld], a inc a diff --git a/engine/warp_menu.asm b/engine/warp_menu.asm new file mode 100644 index 00000000..17cc3904 --- /dev/null +++ b/engine/warp_menu.asm @@ -0,0 +1,17 @@ +; Quick-warp menu, opened with SELECT in the overworld (hooked in +; home/overworld.asm). Reuses the game's fly-warp machinery: set the +; destination map and the fly-warp flags, then return to the overworld loop, +; which fades out and warps us in at the destination's fly coordinates. + +SECTION "Warp Menu", ROMX + +WarpMenu:: +; B1 (pipeline validation): unconditionally warp to Pallet Town. + ld a, PALLET_TOWN + ld [wDestinationMap], a + ld hl, wStatusFlags6 + set BIT_FLY_WARP, [hl] + ASSERT wStatusFlags6 + 1 == wStatusFlags7 + inc hl + set BIT_USED_FLY, [hl] + ret diff --git a/home/init.asm b/home/init.asm index fc426e29..bef73b7e 100644 --- a/home/init.asm +++ b/home/init.asm @@ -98,11 +98,7 @@ 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 diff --git a/home/overworld.asm b/home/overworld.asm index 4586e5c0..a2626089 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -73,6 +73,11 @@ OverworldLoopLessDelay:: .notSimulating ldh a, [hJoyPressed] .checkIfStartIsPressed + bit B_PAD_SELECT, a ; WARP MENU hotkey + jr z, .notWarpHotkey + farcall WarpMenu + jp OverworldLoop +.notWarpHotkey bit B_PAD_START, a jr z, .startButtonNotPressed ; if START is pressed @@ -424,3 +424,4 @@ INCLUDE "engine/pikachu/pikachu_emotions.asm" INCLUDE "engine/pikachu/pikachu_movement.asm" INCLUDE "engine/pikachu/pikachu_pic_animation.asm" INCLUDE "engine/debug/debug_menu.asm" +INCLUDE "engine/warp_menu.asm" |
