Complete the overworld foundation
Checks / web (push) Canceled after 0s

Port forced movement (turn delays, bumps, ice, currents, pits), dynamic
return warps, elevators, Surf, Cut, Strength and cycling rules, working
map blocks with changeblock/changemapblocks, and the remaining NPC
movement types and movement commands.

Add tileset animation from the ROM's command tables, grass sprite
priority and special map palettes; room decorations with ownership, the
bedroom PC and save migration; and Key Items access to the Bicycle.

Fourteen original-engine traces compare positions, facing, actors, event
flags and scripted poses. Tile animation matches original VRAM for four
tilesets, and LoadMapPals matches 192 palette cases. skyfall_top now
keeps the $60 sprite offset its step function leaves behind.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Sébastien QUEROLandClaude Opus 5.5 committed 2026-09-25 16:47:29 +02:00
1 parent 9ac111f262
commit 451464f7c6
38 files changed
+5600 -490

No files matched your search

+43 -12
View File
@@ -16,7 +16,7 @@ The emulator-backed prototype is now at `/reference.html`. The default applicati
| Opening story: New Bark Town to Mr. Pokémon, the rival and the return to Elm | Done |
| Route 29, Cherrygrove City, Route 30 and their buildings | Done |
| Wild and trainer battles, capture and the catching tutorial | Done for the areas that are open |
| 1. Complete the overworld foundation | In progress |
| 1. Complete the overworld foundation | Done |
| 2. Opening story and first battle slice | Mostly done |
| 3. Complete Crystal | Early |
| 4. Modern mobile presentation and delivery | First increment done |
@@ -124,7 +124,7 @@ The numbered sections below keep their full scope. Each one opens with a checkli
The battle core, ROM tables, encounter hooks, battle UI and whiteout hooks are present. Unit tests cover wins, escape, loss, experience, move learning and capture; reference tests compare damage and type effectiveness. Browser tests drive a test-only wild encounter through the real UI: victory with level-up and move learning, escape, whiteout, catching with a nickname, keyboard and on-screen D-pad menu navigation, mid-battle backup restore, and rollback of unsupported effects. Real Route 29 encounters now use the ROM's encounter tables. Player switching, items other than balls in battle and the PC remain unfinished.
This is still not a complete new game. Party/bag/Pokégear menus, the PC, story progression beyond Route 30 and Mr. Pokémon's house, decorations, animated terrain, surfing and audio remain unfinished. Save slots, a Johto/Kanto atlas, Pokédex records, online Link, friends and real-world steps come later.
This is still not a complete new game. Full party/bag/Pokégear menus, PC storage, story progression beyond Route 30 and Mr. Pokémon's house, and audio remain unfinished. The Key Items menu supports the Bicycle; the bedroom PC supports decorations. Surfing and terrain animation now have native implementations; later maps remain gated. Save slots, a Johto/Kanto atlas, Pokédex records, online Link, friends and real-world steps come later.
## 1. Complete the overworld foundation
@@ -134,19 +134,50 @@ This is still not a complete new game. Party/bag/Pokégear menus, the PC, story
- [x] NPC random walks and spins, trainer sight lines
- [x] Item balls, hidden items and fruit trees with the daily reset
- [x] Connected transitions for every enabled map (New Bark Town to Route 30)
- [ ] Dynamic warps, elevators, ice, currents and the remaining forced movement
- [ ] Surfing, cycling, Cut trees and Strength boulders
- [ ] Decorations and tile changes (`changeblock`)
- [ ] Remaining NPC movement types (followers, bouncing) and movement commands
- [ ] Terrain animation, layering and special palettes
- [ ] Reference comparison of player turn timing
- [ ] Acceptance: outdoor, interior, cave and connected-map traces match the reference engine
- [x] Dynamic warps, elevators, ice, currents and forced movement
- [x] Native Surf, Cut and Strength interactions, cycling rules and boulder holes
- [x] Bicycle access from the Key Items menu with keyboard and touch controls
- [x] Tile changes (`changeblock`, `changemapblocks`) with rollback and minimap refresh
- [x] Room decorations, ownership, selection, removal, save validation and migration
- [x] Additional NPC movement types, variable sprites, Pokémon icons and movement-command decoding
- [x] Expanded original-engine coverage for scripted NPC poses and movement
- [x] Tileset animation, grass sprite priority and special map palettes
- [x] Restless forest animation and broader palette/animation reference comparisons
- [x] Reference comparison of player turn timing
- [x] Acceptance: outdoor, interior, cave and connected-map traces match the reference engine
Map headers, location names, connection offsets, connected-border drawing, coordinate events, scene scripts, map callbacks and scripted movement are in place (see above). Next: enable connected transitions as their maps are ported; add dynamic warps, elevators, ice, currents, remaining forced movement, surfing, cycling, cut trees and boulders. Player turn timing still needs a reference comparison.
Movement now covers turn-in-place delays, bumps, ice, currents, forced tiles,
dynamic return warps, elevator menus, pits, Surf, Cut, Strength and cycling
rules. Map block changes use a working copy and roll back with a refused script.
Local-ROM tests exercise elevator travel, Burned Tower pits, Ice Path boulders,
field moves and cave/water encounters without enabling those later areas.
Port decorations, tile changes (`changeblock`), the remaining NPC movement types (followers, bouncing, Strength boulders) and the remaining movement commands. Complete terrain animation, layering and special palettes. Record deviations from the original until a comparison test closes them.
Fourteen original-engine traces cover outdoor turns and bumps, connections in
both directions, ledges, house stairs and doors, the teacher's follow scene,
Ice Path, and eight controlled movement sequences: spin, teleport out/in,
skyfall, skyfall departure, tree shake, fishing, flicker and spin-flicker. They compare positions, facing,
selected actors and event flags. Map-entry ticks compare the destination
against the original's completed transition; other ticks compare directly.
Pose checks compare direction, visibility and vertical offset during scripted
movement, excluding blocking-text boundaries and subsequent random NPC behavior.
Acceptance: representative outdoor/interior/cave/connected-map traces produce matching positions, collisions, transitions and event changes in native and reference engines. Do not enable an area merely because its image can be decoded.
Tileset animation runs from ROM command tables on a private graphics copy.
Johto, Ice Path, restless Ilex Forest and Tin Tower animation each match 96
original VRAM frames. All 36 tilesets run for 2,048 frames without modifying
cached graphics. An executed original palette routine matches 192 native
cases. These checks establish sampled engine behavior, not exhaustive
pixel-perfect screenshots or full Celebi story support.
The bedroom PC selects and puts away owned decorations, including left/right
doll placement. Room blocks, sprites and descriptions reflect saved choices.
The Town Map poster opens the native ROM-backed map. Start/Select opens Key
Items; using the Bicycle follows the native outdoor/indoor rules. Browser
checks cover both controls and decoration flows in Chromium and WebKit.
Full item/Pokémon PC storage and the other bag pockets belong to later work.
The foundation milestone is complete within these acceptance boundaries.
Next: finish the opening-story milestone below. Later maps remain gated until
their scripts and story progression are supported.
## 2. Opening story and first battle slice