| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per feedback, EXPLORE should page whole screens on button presses (instant
redraw), not move/walk the character. Ripped out the walk-engine approach
entirely -- reverted the CollisionCheckOnLand noclip hook and the OverworldLoop
simulated-joypad paging hook, and removed both helpers.
EXPLORE is now a self-contained camera loop that renders straight from the map
block buffer:
- view pointer = wOverworldMap + (by+1)*stride + bx (LoadCurrentMapView)
- a d-pad press shifts the camera coords by ~one screen and re-renders
- at a map edge it crosses to the connected map using that connection's
alignment offset (or clamps if none), LoadMapData + re-render
- B restores the origin view + returns to the SL0P menu
No character walking, sprites hidden for a clean camera. Verified: within-map
paging steps a screen at a time, seams cross with correct offsets (Pallet ->
Route1 -> Viridian), 25-page random stress with no corruption, and normal
gameplay resumes after exit.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ground-truth from render_overworld.py showed Kanto is ONE seamless world joined
along shared edges with per-connection offsets -- so a map-by-map browser is the
wrong model. Replaced it with noclip free-roam that leans on the engine's own
player-walk + connection-crossing machinery (which already handles seams/offsets
correctly):
- wSlopNoclip flag (reused the dead wUnusedObtainedBadges byte at D356, 0 r/w,
not unioned, in the saved region -> safe).
- CollisionCheckOnLand: 5-byte hook at the top -> when noclip is set, return
no-collision. Freed the room in ROM0 by deleting the unreferenced Func_0db5
(dead farcall LoadToggleableObjectData) in LoadMapHeader.
- EXPLORE menu entry now just toggles wSlopNoclip and closes the menu, dropping
you into the overworld to glide through walls/NPCs/ledges and walk across map
connections exactly as the world data defines them.
Verified: Pallet -> (walk north through the fences) -> seam-cross into Route 1 at
y=35 -> continue north; toggle off restores collision (player blocked).
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Refactor the flat warp menu into a table-driven top-level SL0P MENU opened by
SELECT. Each entry = a name in SlopMenuText + a routine in SlopMenuHandlers;
handlers return carry set (a warp was started, exit) or clear (back to the
menu). Ships two entries:
WARP -> WarpSubmenu (the 13-destination town list)
HEAL -> SlopHealParty (restore party HP + clear status), demoing an action
Shared open/close display handling (hide sprites, single-space flags, wTileMap
push, restore). Add an entry by appending a name+handler and bumping
SLOP_MENU_COUNT. (renamed engine/warp_menu.asm -> engine/slop_menu.asm)
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
|
| |
`PIKAMOVEMENT_*` constants (#158)
- Rename `wd471` to` wPikachuSpawnStateFlags`, with `BIT_PIKACHU_SPAWN_*` bits
- Rename `wd492` to `wPikachuMapScriptFlags`, with `BIT_PIKACHU_MAP_*` bits
- Introduce `PIKAMOVEMENT_*` constants for `ApplyPikachuMovementData`
- Refactor `BillsHouse` scripts and Pikachu/Bill movement data
|
| |\ |
|
| | |
| |
| |
| | |
"hidden events" (#559)
|
| | |
| |
| |
| | |
them to "toggleable objects" (#557)
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Use `OBJ_SIZE` and `TILE_SIZE` from hardware.inc.
- `SPRITESTATEDATA1_LENGTH`, `NUM_SPRITESTATEDATA_STRUCTS`
and `TILE_1BPP_SIZE` are used in some places.
- Highlight an oversight in `OakSpeech` where several
direct MBC bank switches are requested.
- Remove redundant comments in home/overworld.asm.
- Add unreferenced `FillBgMap` function to avoid a byte
of dead code.
- Some constants added in wram.asm.
- Correctly separate the commented code in `SaveMainData`.
|
| | |
| |
| |
| |
| | |
* Label cleanup, add some constants instead of raw numbers
* Rename load/save game functions to be more explicit
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
* Name some printer/diploma routines
* Name `wd434`
* Name `NAME_LENGTH_JP`
* Rename `callabd`/`calladb` to `farcall`/`callfar`
|
| |\| |
|
| | | |
|
| | | |
|
| | | |
|
| |\| |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
* Identify more bit flags
* Bit serves dual use in debug mode
|
| |\| |
|
| | | |
|
| | |
| |
| |
| |
| | |
* Identify more bit flags
* Space
|
| | | |
|
| | |
| |
| | |
Also identify `wPPUpCountAndMaxPP`
|
| | | |
|
| | | |
|
| | | |
|
| |\| |
|
| | | |
|
| |\| |
|
| | |
| |
| | |
`TilePairCollisionsWater` contains the entry `db CAVERN, $14, $05`, which prevents surfing from raised cave ground tiles. If `wTilePlayerStandingOn` is not updated when the start menu is opened, it will be left at the previous tile, which will be the raised ground tile if you have just walked onto the stairs from one.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
* Add constants for wMapConnections bits
* Apply Vulcandth and Rangi42 feedback
---------
Co-authored-by: vulcandth <vulcandth@gmail.com>
|
| | | |
|
| | |
| |
| | |
This introduces `def_script_pointers`, `def_text_pointers`, and `object_const_def` macros, and applies them to all maps. Most other map labels have also been identified.
|
| |\| |
|
| | | |
|
| |\| |
|
| | | |
|
| |\| |
|
| | | |
|
| |\| |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |\
| | |
| | | |
Deobfuscate exit warps on indoor maps
|
| | | | |
|
| | |/ |
|
| | |
| |
| |
| | |
This results in 64 home/*.asm files, comparable to pokecrystal's 57.
|