diff options
| -rw-r--r-- | SL0P.md | 12 | ||||
| -rw-r--r-- | engine/overworld/movement.asm | 3 |
2 files changed, 6 insertions, 9 deletions
@@ -37,7 +37,7 @@ A table-driven cheat menu. Cursor + A to pick, B to back out / close. | **ITEMS** | submenu: give ×99 of balls, Rare Candy, Full Restore, Max Revive, Max Elixer, PP Up, and all five evolution stones | | **NOWILD** | toggle wild encounters off (shows `ON`) | | **REPEL** | refill repel steps | -| **EXPLORE** | toggle noclip free-roam camera: hides the player + disables collision, so you glide through walls/NPCs/ledges and cross map connection seams seamlessly across the whole overworld. Pick it again to turn off. | +| **EXPLORE** | toggle noclip free-roam: disables collision so you (and Pikachu) walk through walls/NPCs/ledges and cross map connection seams seamlessly across the whole overworld. Pick it again to turn off. | Everything is in `engine/slop_menu.asm`. Adding a new entry = add a name to `SlopMenuText`, a `dw Handler` to `SlopMenuHandlers`, and bump `SLOP_MENU_COUNT`. @@ -49,11 +49,11 @@ repurposed unused `wUnusedObtainedBadges` at D356). **EXPLORE / noclip** hooks the home `CollisionCheckOnLand` (5-byte early-out when `wSlopNoclip` is set; ROM0 room was reclaimed by deleting the unreferenced -`Func_0db5` dead farcall in `LoadMapHeader`) and `UpdatePlayerSprite` in -`engine/overworld/movement.asm` (jump to its `.disableSprite` path to hide the -player). The engine's own player-walk + connection-crossing code then carries you -seamlessly across the world -- see `tools/render_overworld.py` for the ground- -truth map that proved connections join maps along shared edges with an offset. +`Func_0db5` dead farcall in `LoadMapHeader`). The engine's own player-walk + +connection-crossing code then carries you seamlessly across the world -- see +`tools/render_overworld.py` for the ground-truth map that proved connections join +maps along shared edges with an offset. (The player is left visible on purpose: +hiding it orphaned the Pikachu follower into a lone wandering sprite.) ## Build diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index e4ff3e05..165208eb 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -1,9 +1,6 @@ DEF MAP_TILESET_SIZE EQU $60 UpdatePlayerSprite: - ld a, [wSlopNoclip] ; SL0P camera: hide the player sprite while noclipping - and a - jr nz, .disableSprite ld a, [wSpritePlayerStateData2WalkAnimationCounter] and a jr z, .checkIfTextBoxInFrontOfSprite |
