| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |\ |
|
| | |
| |
| |
| | |
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`.
|
| |\| |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
* Name some printer/diploma routines
* Name `wd434`
* Name `NAME_LENGTH_JP`
* Rename `callabd`/`calladb` to `farcall`/`callfar`
|
| |\| |
|
| | |
| |
| |
| |
| | |
* Label cleanup, add some constants instead of raw numbers
* Rename load/save game functions to be more explicit
|
| | | |
|
| | | |
|
| |\| |
|
| | | |
|
| | | |
|
| | | |
|
| |\| |
|
| | | |
|
| |\| |
|
| | | |
|
| | |
| |
| | |
Co-authored-by: SatoMew <SatoMew@users.noreply.github.com>
|
| |\| |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
it's written to in init_player_data.asm
```
ld hl, wObtainedBadges
ld [hli], a
ld [hl], a
```
|
| |\| |
|
| | | |
|
| | |
| |
| |
| |
| | |
* Identify more bit flags
* Space
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |\| |
|
| | | |
|
| | | |
|
| |\| |
|
| | | |
|
| |\| |
|
| | | |
|
| |\| |
|
| | | |
|
| |\| |
|
| | |
| |
| | |
Co-authored-by: Rangi <remy.oukaour+rangi42@gmail.com>
|