Skip to content

BDSP AutoStory MVP: new game to Floaroma on #1717 and the shared core - #68

Closed
dayfine wants to merge 20 commits into
base/bdsp-1717-navfrom
bdsp/floaroma-mvp
Closed

dayfine wants to merge 20 commits into
base/bdsp-1717-navfrom
bdsp/floaroma-mvp

Conversation

@dayfine

@dayfine dayfine commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Depends on #66. Based on PokemonAutomation#1717 at 45a206f0d (branch base/bdsp-1717), with #66 merged in.

Our BDSP AutoStory work on top of the current PokemonAutomation#1717: the tile grids and map sets on the shared planner, the story maps from Route 201 to Route 204, walking by the screen and planned route walks, the new-game intro on the screen machine, and our rewrite of segments 00 and 01 through the Coal Badge to Floaroma. The checkpoint list holds 00 and 01 only; PokemonAutomation#1717's segments 02 to 09 are kept untouched and still build, but they start where PokemonAutomation#1717's own 01 ends. The old Lab Console, its BDSP commands and the BBQ files are left out, and walk_route is not on the shared leg walker yet. The segment plan tests pass on the shared planner; the branch needs 00.04 and 01 run on a console before anyone relies on it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

dayfine and others added 19 commits October 29, 2026 18:53
BDSP's hand-traced tile grids, now on the shared Direction and TilePos.
plan_tile_route() runs Pokemon::plan_legs() on the grid's step rules (a
ledge hop is one press of two tiles); plan_robust_route() keeps its own
search over sets of possible tiles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
Tile grids traced from the DP maps, joined into map sets, with named tiles
and trainer sight lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
walk_until() stops on what the screen shows; walk_route() walks a plan on
the story maps, tracking every tile the player may be on and planning again
after a trainer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
Names typed on the Switch keyboard or picked from the preset list, each
screen read before the next input.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
Our rewrite of segments 00 and 01 on PokemonAutomation#1717:
the closed-loop intro, the planned walks and the battles to the Coal Badge
and on to Floaroma. The checkpoint list holds 00 and 01 only; segments 02 to
09 from PokemonAutomation#1717 are kept and still build, but start where PokemonAutomation#1717's own 01 ends.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
Two d-pad taps north from the house door were meant to put the player
level with Mom; on r108b one tap did not move and the A press talked to
nobody. The door fixes the column, so face east and press A one row at
a time going north until Mom answers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
r109 failed entering Sandgem Town because the banner OCR read
"andgemltown". Accept a read within a quarter of the name's letters
(edit distance), with the digits matching exactly so one route is never
taken for another. Unit test covers the r109 read and negative cases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
r113a stopped two tiles west of the counted tile (44, 3), facing away
from her, and talked to nobody. Add talk_to_adjacent_npc(), which turns
each given way, presses A and keeps the direction a dialogue opens from.
Probe east, west, north and south for her, and tell apart "nobody
answered" from "she talked but no Potion arrived" (she gives them once).
Mom's row search uses the same helper, with only east.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
She does not stay on (43, 3): r113a and r114a walked west along row 3 to
its west end through her tile, and found her two tiles east in the row or
one tile east and one row up. Take her off the grid, walk to the corner
that pins the row (42, 3), then walk east pressing A until she blocks the
walk and answers, as done by hand. If nobody answers along the row, try
the other sides of where the walk stopped. The walk back plans from the
whole row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
r115a: 8 A presses left the Poke Mart lady's Potions talk open and the
menu open failed. finish_dialogue() now takes a button instead of an A
count: it presses it only while a dialogue box shows and returns once
the overworld has shown with no box for 1.5 s (the box blinks off
between lines and during "obtained" jingles), failing after 40 s.
A where a talk asks Yes/No or gives an item, B elsewhere. The Poke Mart
lady uses it instead of her fixed 8 A presses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
r116a: the walk back planned east along her row from where she answered.
She stood next to us, east; the tall grass kept the screen changing, so
"blocked after 4000ms" read as a walk to the far wall, and the next legs
(one ending on its time limit) went from a pose that was never there. The
player ended at the bottom of the route, not at Sandgem. The map was not
at fault: the leg screenshots fit the Route 201 grid.

Now walk west along her row to its corner, away from her, then plan with
her row and the row below as walls (walk_route()'s new `avoid`): south
out of the grass and round by column 57, so every Route 201 leg ends on a
wall out of the grass, where a stop can be read. The location banner
check accepts any banner seen during the leg, as a wild battle or a
second walk to the wall may come after it. The offline plans test checks
the walk back.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…al at Sandgem's Center

Three runs (r113a..r117a) failed after the Poke Mart lady's talk: the walk
back went round her rows through the tall grass, where a walk cannot read
that it has stopped, and once she stood in the way every later leg was off.

Her row is the top row of the north-east grass (the DP map and the r117a
screenshots show her and the player in the tufts right under the tree
trunks); east of the grass it is open as far as Sandgem's fence. So the
walk now comes to (56,3) on that open strip, which the trees and the
sign's row pin, walks west along the row until she answers, and leaves
east along the same row to its end at (63,3), requiring the stop to be
read there (out of the grass) and waiting for her to move when a walk
only runs out of time. From there the open east edge leads south into
Sandgem. The planner is left the rest, with a test that no leg on Route
201 ends where a stop cannot be read.

After training, the party heals at Sandgem Town's Pokemon Center instead
of with the Bag's Potions, keeping them for the Route 202 trainers; the
walk to the tile below the Center's sign is the one r75 made. The
post-catch half is split into free functions, one per step; the save
spot loses its "Potion" name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…er grass

r118a: the approach tile (56,3) has no wall to stop on, so the plan went
east to Sandgem's fence and back in, and failed on the Sandgem banner.
Approach from (53,3) instead: west along row 5 or 6 to the trees, then
north onto her row under the trees, and walk west from there. The plan
test now checks the route stays on Route 201 once there and ends with
the step north.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
She stands on the open ground between the tree trunks above her grass,
diagonal to the row, so walking west along row 3 never meets her (r114a,
r119a). From the approach tile, face north and west and press A at each
tile, stepping one tile west at a time, and fail after the row's west end.
Drop walk_along_row_to_talk(), which nothing else uses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…eeting the lady

The Poke Mart lady on Route 201 wanders between the top grass row and the
open ground under the trees above it, and moves while we probe: eight runs
(r113a..r120a) never got her talk or the walk back. Drop her and buy the
Potions next door to Sandgem's Center instead.

New order after the catch: train x3 in the catch grass (from either save),
heal at the Center, walk to the Mart's door, buy 5 Potions with buy_items()
and check the Bag has them, walk back to Route 202's save spot and save,
then the Route 202 trainers and Dawn as before. Potions in the Bag at the
start mean step 4's save, so a retry from it goes straight to the trainers.

The walk to the save spot first anchors at the trees east of the Mart
(SandgemTown::FRONT_ROW_EAST_END): planned from the door's three tiles no
leg north is robust and the plan loops round the south of town. The
Center's exit walk becomes leave_door_south() so the Mart shares it.

Remove the lady's Route 201 anchors, story_potion_giver_row() and her
tests; the plan tests now cover the Center-to-Mart, Mart-to-trees and
trees-to-save-spot walks, and check those never stop in tall grass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
r121a reached the Mart but enter_door_north()'s whole-tile side steps
never lined up with the door: movement is not locked to tiles. Pull the
Pokemon Center's sight-based door entry out as enter_lit_door() and use
it for the Mart too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…gain when short of it

r122a's walk to Sandgem's Poke Mart counted itself to the door's row but
stood three rows south of it (someone wandering the dirt stops an open
leg short), and enter_lit_door() then failed with "no lit doorway on
screen": it only looked at the band just above the player (y 324..628 of
1080, tuned for the Center's door straight ahead), and its colours were
the Center's yellower door (255, 255, 185), not the Mart's (235, 243, 205).

Look for the doorway over the upper two thirds of the screen, as the
pale yellow-white columns at least 32 px tall (the roof bands are 12 to
20) and the biggest such run near the middle, and give its position as
tiles across and rows up from the player, whom the camera keeps at the
centre. enter_lit_door() steps across by the tiles and walks north for
the rows, looking again after every move, and says so after 12 moves.
The Mart step reads the doorway after its walk: shown further than
straight ahead, the walk ended short, and it is made once more from the
tiles the offset puts us on (give or take one) before lining up.

Tests: the two failure screenshots (in CommandLineTests under
PokemonBDSP/AutoStory) give the door 0.4 tiles east and straight ahead
(r121a) and 0.8 tiles west, three to four rows up (r122a); every block
of tiles south of the Mart has a robust plan to its front row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
… to Route 202 through the gap between the signs

r123a walked from the trees east of the Poke Mart into a house. The
Sandgem grid, read from Bulbapedia's map image, squeezed rows 7..18 into
7..15: the houses' doors sat on row 15 instead of 18, and the east
house's wall sat on rows 10..14, where the game has open ground. The plan
went south, then west "to" that wall, ran on past it, and walked north
into the west house's door (7, 18).

Rows 7 on now come from Platinum's land data for Sandgem
(pret/pokeplatinum map_data_007.bin collision bits) with signs and doors
from its event file. Step 4 now walks six tiles west from the trees and
north through the gap between the Center's and the Mart's signs, nudging
a tile west if a sign or the Mart stops it, instead of the planner's
detour round the south of town where townspeople wander. Tests: the 00.04
walks are checked for legs that could walk into a door, even with open
legs running long, and north from every column the west leg may reach.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
…or walk at its fade

r124a's 00.04 saved beside Sandgem's Poke Mart with a log that said
"arrived at Route 202 (30, 19)". leave_door_south() held the stick until
a wall: the Mart's fade did not read as black, so the walk went on about
ten rows south of the door, and every plan after started from the door's
front row. Both "to wall" legs then ended on walls, as walls always do,
and the save had no check of its own. The Center's exit overshot the same
way (its doorway correction hid it).

- leave_door_south() stops as soon as a look differs from the last by more
  than walking can (the fade reads 121 to 192, a Center's scroll 102 at most),
  then waits for the fade-in.
- save_game() takes an expected location: the save card's name (OCR on its
  salmon text, made black on white) must match it, or the save is backed
  out of and the step fails, "About to save in sandgemtown, expected Route
  202". Step 4 uses it. The location reading lives in a Location module,
  with the banner reading and matching moved from RouteWalk.
- walk_route() requires the banner of the map it ends on when the walk
  changes map, over the whole walk, not just legs whose ends sit on one map.
  north_through_sign_gap() watches for Route 202's banner and keeps only
  the ends on the map it saw.
- With Potions in the Bag, 00.04 reads the save screen's location before
  planning: Route 202 goes on as before; Sandgem Town walks east to the
  trees and north to the Mart's row, places itself by Route 202's banner or
  the Mart's lit doorway, and walks back to the save spot without saving.

Tests: the r124a save prompt (CommandLineTests PokemonBDSP/AutoStory) reads
"sandgemtown"; the other AutoStory tests pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
@dayfine

dayfine commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner Author

Runs

The MVP has to pass from a new game to Floaroma more than once, on different builds and settings. This comment is the record; it is updated as runs finish.

Run Game settings Code Status
1 English, boy (Lucas), Piplup, console B bdsp/event-sandgem-center (pushed, now 676a6b6c3), ahead of this PR's branch reached Floaroma 2026-10-31: 01.10 and 01.11 passed once each; the 3x sweep of 01.07 to 01.11 is open (see below)
2 different language, girl (Dawn) the final code version of this PR not started

Run 1, by checkpoint (passes in a row from the checkpoint's start save on console B, on the lab build named):

Checkpoint Build Passes Passing code
00.04a, 00.04b (Route 202 to Sandgem, Mart lady) r139 3 2026-10-30
00.05a (Jubilife steps to Center) r147 3 2026-10-30
00.05b, 00.05c (School, Barry) r147, r153 3 2026-10-30
00.05d (president) r154 3 2026-10-30
00.05e (Mart clown) r156 3 2026-10-30
00.05f (Poketch Company clown) r163 3 8839837fd
00.05g (Poketch, street to Route 203) r173 3 358627a02
01.01 (Jubilife to Barry on Route 203) r173 3 358627a02
01.02 (Route 203 to Oreburgh) r173 3 358627a02
01.03 (Oreburgh Center to Roark in the mine) r194 3 4c3e4da27
01.04 (Oreburgh Gym, ends after Roark) r219 3 2026-10-31
01.05 (Gym to the Oreburgh Gate onto Route 203) r223 1 2026-10-31
01.06 (Route 203 into Jubilife) r230 1 2026-10-31
01.07 (Jubilife to Rowan's scene) 0 walked by hand 2026-10-31; no program pass yet (its save was passed)
01.08 (Jubilife's street to the Ravaged Path) r235 1 361fcef2a
01.09 (through the Ravaged Path, Rock Smash) 0 exit reached by hand; no program pass yet
01.10 (Route 204 North into Floaroma, saves on the banner) r248 1 b530caa52; changed since (column 11, moved-tap counting) and not rerun
01.11 (Floaroma's old couple: Mew, Jirachi) r251 1 4a0c7b4-era, tip 676a6b6c3

Notes on run 1:

  • Hand steps in run 1: the TV station clown (00.05e2) was done by hand. After a lab script mistake saved over 01.03's start, the 01.03 start save was remade by hand outside the Center after Barry's talk.
  • 01.03 ends healed at the Oreburgh Center counter, and 01.04 starts there; 01.04 ends just after Roark.
  • 01.10 ends on Floaroma Town's location banner and saves there; the Center visit was dropped (not required). 01.11 ends in the flower field below the old couple, saved: run 1's last checkpoint.
  • Maps from 01.08 on come from the Platinum decomp; the earlier ones are image-traced with 3/4-height rows (see Data/MAPS.md). The route walker changed a lot on 2026-10-31 (D-pad tap legs, waypoint lines, moved-tap counting), so the open items before run 1 is called complete are: 3 passes of 01.07 to 01.11 from their saves, and the route records test tracing 01.04, 01.05 and 01.11 once their grids exist.
  • Run 2 uses a different language and the girl, to check that the text, menus and sprites the detectors read don't assume English or Lucas.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

@dayfine
dayfine changed the base branch from base/bdsp-1717 to base/bdsp-1717-nav October 31, 2026 18:11
@dayfine

dayfine commented Oct 31, 2026

Copy link
Copy Markdown
Owner Author

Plan for the compact MVP (the full version is staged in docs/design/AutoStory-MVP-Plan.md on design/autostory):

This PR stays as the record of run 1. After run 1 reaches Floaroma, the compact series is stacked on #66, one small PR each:

  1. Shared navigation core (Pokemon navigation core: tile positions and the leg planner #66). Pokemon/Navigation TileGrid and MapSet are moving there from this PR now.
  2. Movement primitives. Clip to a wall, then D-pad offsets with each tap checked, a door probe by fade, and leaving buildings.
  3. Maps as data. Story maps in the PokemonNavigation JSON schema.
  4. The event spec runner.
  5. Segment 00 on events.
  6. Segment 01 on events.

Run 2 (another language, the girl) runs on that series.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine added a commit that referenced this pull request Oct 31, 2026
…fset) and the MVP plan

Section 14 of the lessons: measured movement (D-pad taps are whole tiles,
stick holds drift), the clip-to-wall then D-pad offset route model, what
the screen tells, and the process mistakes. AutoStory-MVP-Plan.md: run 1
stays on fork #68; the compact series stacked on #66 follows it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
@dayfine

dayfine commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Superseded by the BDSP v4 stack (#134, #127, #129, #148, #128), which no longer builds on PokemonAutomation#1717. Run 1's record stays readable here.

@dayfine dayfine closed this Nov 1, 2026
dayfine added a commit that referenced this pull request Nov 2, 2026
* Design doc: shared AutoStory run flow, 2D movement, and an FRLG AutoStory

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: lead with problem, situation and proposal; FireRed, solo from a new game

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: full upstream reference for the SwSh draft

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: prior art (junari's FRLG script) and ComputerControl#259

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: PR plan with sizes for reviewers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: FRLG pilot to Brock first, shared code later

Reorder the plan so the first PRs touch only FRLG files and end in a runnable
pilot (new game -> Boulder Badge in about 10 PRs, first runnable at PR 5),
with an F3 go/no-go gate on checkpoints and Switch hours. The SV/BDSP shared
run flow moves to a later phase. Add a one-page upstream-facing proposal,
standalone review comment drafts for PokemonAutomation#1717
(not posted), and the FRLG authors on main. Drop the agent process section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: reusable pieces in their final homes, no copy-then-move

The plan wrote FRLG's run flow and tile path inside the FRLG module and moved
them out in phase D (R0, T4): move-only PRs of our own code. Adding new files
to a shared module changes no one else's code, so they now start in
Pokemon/AutoStory and Pokemon/Navigation. New section 0.1 lists the
game-neutral pieces from SV, BDSP PokemonAutomation#1717, SwSh PokemonAutomation#1207, BBQ and the BDSP lab
work (screen machine, step trace, failure policy, list selection, system
keyboard, Lab Console, run flow, tile path, decision tests) with their
homes; D4 builds the FRLG intro on the screen machine. The proposal says
the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: what broke on the console and the rule each break taught

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc lessons: drop the Max Lair entry, it is not AutoStory

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory design notes: screen machine, walking, map, planner, executor

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory design: plan on routes, trust town grids only once verified

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory docs: what broke in Butters' 00.04 and 00.05, and what replaced it

Lessons: a table of his recorded route against what console B showed
(timed legs, slot-3 Ember, no healing, pixel-matched Potion, the Poke
Mart lady and Barry missed by a tile), our own mistakes in this round
(an optional step kept for hours, claims not checked on screen, map
errors, untiled movement, a fixed OCR cut), and stepping through new
ground before automating it. Design: the executor, move choice,
training and Potion healing as built, and the Lab Console stepping.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: link our commit for each fix; the Pokétch president's talk

Each row of the Butters comparison and each of our own mistakes now
links the fork commit that fixed it, on bdsp/new-game-intro-v2. Adds
what stepping through Phase 23 showed: A re-opens the president's talk,
B advances it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: 00.05 stepped through to the PC; read positions from the ground; towns need grids too

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory: segment 01 plan (story, trainers, maps, work order); segment 00 leftovers scheduled

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: segment 01 runs r81 to r90, one rule per failure

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons §10: Oreburgh Mine, Roark's gym, Route 204 to Floaroma; Butters' segment 01

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory: shared navigation core and the FRLG Brock / BDSP Floaroma MVP branches

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory: end the FRLG run with Mew, through the Sevii Ruby and Sapphire

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory navigation stack: fork PR numbers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory: queue the BDSP MVP follow-ups (clock pin, shared walker, resources)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons §11: Floaroma MVP runs r107 to r109 and the lab around them

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: split into Part 1 for Butters (PokemonAutomation#1717) and Part 2 for us

Sections are renumbered; cross-references updated. Butters' segment 01
table and the two PokemonAutomation#1717 failures from r108 get their own sections in Part 1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory docs: mark the segment plans done or superseded, the PokemonAutomation#1717 drafts stale; pose status

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: AutoStory lessons from 01.03/01.04 (D-pad tiles, clip then offset) and the MVP plan

Section 14 of the lessons: measured movement (D-pad taps are whole tiles,
stick holds drift), the clip-to-wall then D-pad offset route model, what
the screen tells, and the process mistakes. AutoStory-MVP-Plan.md: run 1
stays on fork #68; the compact series stacked on #66 follows it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: AutoStory lessons 15 (Route 204, maps from the decomp) and the plan's next version

Lessons from 01.06 to 01.10 (r216 to r246): Bulbapedia DP images have 12 px
rows and cliffs painted taller than their tiles; the Platinum decomp gives
the real tiles and NPCs; a wandering NPC is not a wall; the planner's
cheapest legs are not a human's line; time-counted legs break when blocked;
a tap's screen change separates steps (21 to 50) from bumps (4 to 13); a
stale build ran twice. The MVP plan gets a "Maps from the game's data" track
(decoder, re-derivation, annotation, probes, PokemonNavigation) and the
planner/walker goals for the next version.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: take in the decomp review and the route-impact check

The review's points on events, scripts, interaction identities and warps
go into the plan; the critique: terrain first, pokediamond before
pokeplatinum (DP's own map and event data exist), the walker's observation
is a separate problem, and the start is the maps 01.06 to 01.10 walk on.
The offline route-impact check: wall legs absorb the row differences, two
open legs and all of Jubilife's walks change, and the short grids pass
because vertical timing compensates by the same 4/3.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: PR chain review, what moves to the core, what stays per game, FRLG and PokemonNavigation

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: a 160 ms D-pad tap turns and steps (r248a)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: Route 204 after r246 (turn taps, bumps, until-stopped, banner end, routes as data, Diamond decomp)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: AutoStory architecture after the FRLG proof of concept

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: the game simulator (encounters, Repel, battles, EXP, whiteout), parallel to the MVP

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: SwSh/LA, story engine under Pokemon/AutoStory, reuse of RNG and Elite Four programs, milestones after the MVPs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: room for error - bounded safe inputs, then confirm the end state

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: fold in the event model (#78) and the FRLG demo plan (#56)

Section 8 keeps the step rules from the event model (anchors, talks,
dialogs that end on a screen, named recoveries, resume as a re-check)
and the RNG hand-off rules from the demo plan. Section 5 gets the
movement table and the SwSh target; section 7 the planner's missing
search limits; section 6c links the FRLG events after Brock (#130).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: generated maps ship in Resources (Packages), test maps stay compiled in

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@dayfine
dayfine deleted the bdsp/floaroma-mvp branch November 3, 2026 05:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant