| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
After rendering each map in EXPLORE, overlay N/S/E/W letters at the screen edges
for the directions that have a real connection (from wCurMapConnections), so you
can see which moves are valid before pressing. P1 done: browse the overworld
connection graph, see exits, no warping yet.
|
| |
|
|
|
|
|
|
|
| |
New EXPLORE entry in the SL0P menu renders any overworld map (LoadMapData, no
NPCs, OBJ layer disabled so even the player sprite is hidden), centered on the
map. U/D/L/R jump to the connected map in that direction when wCurMapConnections
has that flag, following the connection graph (verified Pallet<->Route 1). B
restores the origin map + coords and returns to the menu (movement intact).
Arrows/indicators next.
|
| |
|
|
|
|
|
|
| |
wc5d8 looked unused but the game writes it via computed addresses (observed it
change 56->44->35 while walking/warping), so the NOWILD flag got clobbered and
encounters still happened. wUnusedFlag is a genuine unused WRAM0 byte (verified
stable at 0 through walking + warping, not in the save block so it defaults off
each boot). NOWILD flag now persists reliably.
|
| |
|
|
|
|
|
|
|
|
| |
The SL0P menu jumped straight to CloseTextDisplay on close, but that routine
ends with 'pop af' + bankswitch expecting the caller's bank to have been pushed
(DisplayTextID does this at open, which we bypass). The unbalanced pop ate a
stack word -> wrong bank -> corrupted overworld/collision state, leaving the
player unable to move after closing the menu. Now we push hLoadedROMBank first,
and dropped the bogus LoadScreenTilesFromBuffer2 (CloseTextDisplay's
LoadCurrentMapView rebuilds wTileMap/collision itself).
|
| |
|
|
|
| |
SL0P MENU now 12 entries. HMs let you use field moves anywhere to complement
the warp/noclip goals.
|
| |
|
|
|
| |
Sets every party member's 4 moves to Hyper Beam / Earthquake / Ice Beam /
Thunderbolt with 31 PP each. SL0P MENU now 11 entries.
|
| |
|
|
|
|
| |
COINS sets game-corner coins to 9999. ITEMS submenu grows to 12: balls, Rare
Candy, Full Restore, Max Revive, Max Elixer, PP Up, and all five evolution
stones (Moon/Fire/Thunder/Water/Leaf). Top menu is now 10 entries.
|
| |
|
|
|
|
|
|
|
| |
NOWILD toggles wild encounters off (hooked in TryDoWildEncounter, a banked
file) with an ON indicator drawn on its menu row; the flag lives in the unused
wc5d8 WRAM0 byte (renamed wSlopNoWild, always-accessible, defaults 0). REPEL
refills repel steps to 255. (A NOCLIP toggle was prototyped but its hook lands
in the full home bank - deferred until I free ROM0 budget.) SL0P MENU now: WARP
HEAL MONEY BADGES DEX MAXTEAM ITEMS NOWILD REPEL.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
SL0P MENU grows to 7 entries:
WARP - town warp submenu
HEAL - full party HP + status
MONEY - set cash to 999999
BADGES - all 8 gym badges
DEX - mark every Pokemon owned+seen
MAXTEAM - whole party to Lv100, perfect DVs, maxed EVs, 999 stats/HP
ITEMS - submenu: give x99 of Master/Ultra Ball, Rare Candy, Full Restore,
Max Revive, Max Elixer, PP Up, Nugget (stacks via GiveItem)
All verified live: money 999999, badges FF, dex filled, party Lv100/999/FFFF DVs,
Master Ball x99 in the bag.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
|
|
|
|
|
| |
Replace the plain-text splash with an actual rendered graphic: gfx/slop/intro.png
(bordered banner, big drop-shadowed SL0P logo) -> deduped tiles + tilemap via a
custom rgbgfx Makefile rule (164 tiles). SlopSplash loads it into VRAM (BG map,
0x8000 tiles), holds ~2s, fades out, and restores LCDC_DEFAULT so the overworld
BG addressing + OBJ sprites are intact. Reproducible from the PNG.
|
| |
|
|
|
|
| |
New SlopSplash (engine/slop_intro.asm) clears the screen, draws the two centered
lines, pushes to VRAM and holds ~2s, then MainMenu's autoload continues into the
game. Replaces the vanilla intro/title for the fast-boot-into-save flow.
|
| |
|
|
|
| |
Two centered title lines above a horizontally-centered box (moved to col 3,
row 2; cursor/items shifted to match). Cursor alignment verified.
|
| |
|
|
|
|
|
|
|
|
|
| |
- Hide the overworld behind the menu: wUpdateSpritesEnabled=$ff + ClearSprites
+ ClearScreen so no map tiles or NPCs bleed through.
- Single-space the list via BIT_SINGLE_SPACED_LINES + BIT_DOUBLE_SPACED_MENU
(restored on exit) so all 13 fly destinations fit: the 11 towns + Route 4 +
Route 10 (every map with FlyWarpData coords).
- No more bird: don't set BIT_USED_FLY (teleport-in instead of fly-in), and
redirect _LeaveMapAnim's .flyAnimation to the plain warp-pad fade. Verified 0
sprites active through the warp transition.
|
| |
|
|
|
|
|
|
|
|
|
| |
SELECT in the overworld now opens a drawn town list (Pallet..Indigo) with a
moving cursor; A warps to the highlighted town via the fly-warp machinery, B
cancels. WarpMenu draws its box into wTileMap then replicates the tail of
DisplayTextIDInit (CopyScreenTileBufferToVRAM + hWY=0 + LoadFontTilePatterns +
hAutoBGTransferEnabled) so the menu is actually pushed to the screen - without
it the box drew into the shadow buffer but the overworld's direct-to-VRAM
scrolled map left it invisible. HandleMenuInput drives selection; the chosen
index maps through WarpMapTable to a map id.
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
|
| |
`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
|
| | |
|
| |
|
| |
This variable serves as an override for Pikachu's emotion following specific events like refusing a Thunder Stone. It is automatically cleared when its mood normalizes.
|
| | |
|
| | |
|
| |\ |
|
| | | |
|
| | |
| |
| |
| | |
(#576)
|
| |\| |
|
| | | |
|
| | |
| |
| | |
Add comments explaining the redundant move grammar categories inherited from the Japanese version.
|
| | |
| |
| |
| | |
"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`.
|
| | | |
|
| |\| |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
* Name some printer/diploma routines
* Name `wd434`
* Name `NAME_LENGTH_JP`
* Rename `callabd`/`calladb` to `farcall`/`callfar`
|
| |\| |
|
| | |
| |
| | |
Actually copies from battle struct to party struct to make HP and status changes to a pokemon permanent
|
| | |
| |
| |
| |
| | |
* Label cleanup, add some constants instead of raw numbers
* Rename load/save game functions to be more explicit
|
| | | |
|