aboutsummaryrefslogtreecommitdiffstats
path: root/engine/warp_menu.asm
diff options
context:
space:
mode:
authorAsh Ketchum <no-reply@sl0p.foo>2026-07-15 00:37:04 +0200
committerAsh Ketchum <no-reply@sl0p.foo>2026-07-15 00:37:04 +0200
commitcbd75bcf8a14a647469e6e89c9c8a816fff9bc10 (patch)
tree75c8cc68dae81773b0fc2c283c4b809746cde5b1 /engine/warp_menu.asm
parentfastboot: skip intro/title/menu and autoload save if one exists (diff)
downloadpokeyellow-cbd75bcf8a14a647469e6e89c9c8a816fff9bc10.tar.gz
pokeyellow-cbd75bcf8a14a647469e6e89c9c8a816fff9bc10.tar.xz
pokeyellow-cbd75bcf8a14a647469e6e89c9c8a816fff9bc10.zip
warp: SELECT opens quick-warp (B1) + relocate intro-skip to PlayIntro
- home/overworld.asm: SELECT in the overworld farcalls WarpMenu, then restarts the overworld loop so the fly-warp flags get processed. - engine/warp_menu.asm (new): WarpMenu reuses the fly-warp machinery (wDestinationMap + BIT_FLY_WARP/BIT_USED_FLY). B1 warps to Pallet unconditionally to validate the hook; the real destination menu is next. - Moved the fastboot intro-skip out of home/init.asm into PlayIntro (bank 10) to reclaim ~10 bytes of home ROM0 for the overworld hook. Net boot behavior is unchanged; new-game path still shows the intro.
Diffstat (limited to 'engine/warp_menu.asm')
-rw-r--r--engine/warp_menu.asm17
1 files changed, 17 insertions, 0 deletions
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