Skip to content

FRLG AutoStory stage 5: Route 25, Bill's S.S. Ticket and an Oddish - #219

Draft
dayfine wants to merge 36 commits into
frlg/stage4-ceruleanfrom
frlg/stage5-bill
Draft

dayfine wants to merge 36 commits into
frlg/stage4-ceruleanfrom
frlg/stage5-bill

Conversation

@dayfine

@dayfine dayfine commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

Depends on #216 (base frlg/stage4-cerulean, merged in at 831a22c; the diff shows only this change).

Adds FRLG AutoStory checkpoints 00.17-00.20: Route 25 to Bill, the S.S. Ticket, back to Cerulean's Pokemon Center, and an Oddish for Cut.

  • 00.17, Route 24 (11, 15) east to inside the Sea Cottage (7, 8): fights the four Route 25 trainers the path can't avoid (Hiker Franklin, Picnicker Kelsey, Hiker Nob, Lass Haley), each on a step into their line. It only crosses the sight of the look-around Youngster Dan and the walking Youngster Chad on legs to walls or one-tile legs, and never where they could block the path after walking up.
  • 00.18, Sea Cottage (7, 8) to Route 25 (51, 5): talk to the Clefairy from below, answer YES, use the PC from (4, 6), then talk to Bill from (6, 6) for the S.S. Ticket and leave.
  • 00.19, Route 25 (51, 5) to Cerulean Center (7, 4): goes back by Route 25's south path and Route 24 east of the bridge, hops Cerulean's north ledge at (27, 1), then heals at the Center.
  • 00.20, Cerulean Center (7, 4) back to it: buys 7 Poke Balls, crosses Nugget Bridge, west to the cliff and down to Route 24's grass at (3, 19) (out of Camper Shane's sight even when the leg west ends a tile short, console B m63), catches one Oddish with the CAPTURE step (30 battles, 7 balls at most), heals. Battles keep Wartortle in; the Oddish goes in only if the lead faints. A stopgap for console B's save: a new playthrough should catch a Rattata on Route 1 or 22 early instead and drop this row.
  • TEACH steps can use a move tutor (item = "tutor"): talk, YES twice, then the same party-menu prompts as a TM.
  • 00.14 (new playthroughs only; console B's save is past it) now visits Route 4's Mega Kick tutor: from Mt. Moon's exit up through (48, 5) into the tutors' pen to (50, 4), facing the tutor (50, 3), Mega Kick over Withdraw, then east to Cerulean as before. Cerulean can't walk back there without Surf. The Simulation test "00.14 from Mt. Moon to the Mega Kick tutor" walks it (red before the row change).
  • Image tests: TeachScreenReader's frames drop their NN_ prefix, and the battle-loop tests take True/False and Hp<Color>_<hp>of<max> from the file name. The images are in PokemonFRLG: Mt. Moon onward AutoStory images CommandLineTests#9 (stage-1 readers' in BBQ Farmer: check which quest a reroll pays for, and that it was replaced #8; PokemonSV: test the Blueberry quest detector on reference frames #7 is closed).
  • Adds the four trainers to STORY_TRAINERS (default risk LOW). The save card now knows Route 24 and Route 25.
  • 00.18 walks around Bill to (7, 8) before leaving by the mat: after his scene he stands on (7, 6), and the old walk out bumped him and ended beside the mat (console B, 2026-11-03); the Simulation test "00.18 out of Bill's Sea Cottage" reproduces it.
  • A hold over a step onto a connected map is a tile longer (RouteStep::connection_steps, LegSpec::stalled_steps): on console B such holds ended a tile short (00.14, 00.16, 00.20 onto Nugget Bridge). The overworld sim now stalls a tile on that step; the 00.20 Simulation test was red without the walker change (ended on Route24 (10, 20)) and passes with it.
  • A GRIND or capture that paces now reports both of its tiles, and the next ROUTE first holds to walls that bring them to one (the walker's re-anchor search), then plans from there: console B's 00.20 (run m61) caught the Oddish on the far step, (3, 19), and the walk back planned from (4, 19) ran into a beaten Lass on the bridge. The Simulation test "00.20 back to the Center, the Oddish's battle on the pace's far step" was red (no fade onto the Center's warp) and passes; "the routes after pacing, from either of its tiles" walks the routes after 00.14b's, 00.15's and 00.20's pacing from both tiles.
  • Pacing (CAPTURE and GRIND) now fights a trainer who sees the player, logs "trainer battle during pacing", walks back onto the patch from either pacing tile and goes on; before, Camper Shane's message stopped 00.20's capture with "no-battle-not-overworld" (console B m63). The Pace Sim test "a capture paced in a trainer's sight" was red (no wild battle in 200 steps) and passes.
  • Test changes: a one-tile leg may cross a look-around trainer's sight. The row and trainer counts and the run plans are updated.

Testing

🤖 Generated with Claude Code

https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

dayfine and others added 4 commits November 3, 2026 11:07
00.17 walks from Nugget Bridge to Bill's Sea Cottage, fighting Route 25's
four trainers the way can't avoid (Franklin, Kelsey, Nob, Haley) and
crossing Dan's and Chad's sight only on legs to walls or one-tile legs.
00.18 runs Bill's scene: the Clefairy's YES, the PC's Cell Separator, the
S.S. Ticket. 00.19 takes Route 25's south path and Cerulean's north ledge
back to the Pokemon Center. The save card knows Route 24 and Route 25.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
A TEACH step's item may be "tutor": the player faces a move tutor, the
step talks to it, says YES to its offer and to "can only be learned
once", and goes on in the same party menu as a TM's
(pokefirered move_tutors.inc). After it the party menu closes onto the
tutor's last line in the overworld, which leave() pages through. The
fake screens test it over Withdraw, with a free slot, with the texts
unread and not compatible. No level-up rule replaces Mega Kick, so a
Wartortle keeps it over Rapid Spin and Protect (tested).

No table row uses it yet: the Mega Kick tutor (Route 4 (50, 3)) can't
be reached from Cerulean without Surf; the walkable way is from Mt.
Moon's exit (Route 4 (32, 6)).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
From Cerulean's Center: 7 Poke Balls at the Mart, then over Nugget
Bridge onto Route 24's grass at (4, 19), out of Camper Shane's column 5,
a capture of one Oddish (25% of Route 24's battles in FireRed; 30
battles, 7 balls at most), and back to the nurse. The Oddish stays in
the party behind the lead, which battles keep in. The chain test lets a
capture's patch, like a GRIND's, end on grass; a sim test walks the
row's routes past Shane.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
@dayfine dayfine changed the title FRLG AutoStory stage 5: Route 25 and Bill's S.S. Ticket FRLG AutoStory stage 5: Route 25, Bill's S.S. Ticket and an Oddish Nov 3, 2026
dayfine and others added 3 commits November 3, 2026 12:15
After his scene Bill stands on (7, 6), east of the player, not on the
maps' (7, 5). The walk out planned east onto his tile, bumped him, and
the hold south ended on (6, 9) beside the mat with no warp (console B,
2026-11-03). Go south 2 and east 1 to (7, 8) first, then out by the mat.
The new sim test puts Bill on (7, 6) and fails on the old table with the
console's message and tile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
TeachScreenReader's frames drop their order prefix (the list keeps the
order). The battle-loop tests read True/False and Hp<Color>_<hp>of<max>
from the image name, as upstream's image tests do; Wild Encounter's
eng_chansey.jpg keeps its answer in the registration.

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

From Mt. Moon's exit the row walks up through (48, 5) into the tutors'
pen to (50, 4), below the Mega Kick tutor (50, 3), and teaches Mega Kick
over Withdraw before going on east as before. The Simulation test walks
the row from the exit to the tutor and on to above the ledge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine and others added 5 commits November 3, 2026 13:10
On console B a hold that crossed a map connection ended a tile short
(rows 00.14, 00.16, 00.20): the game holds the player up while it loads
the connected map. The overworld sim now models that stall, the planner
records each leg's steps onto a connected map (RouteStep::connection_steps),
and leg_hold() adds a tile for each stalled step the hold covers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
A new playthrough should catch a Rattata on Route 1 or 22 early as the
Cut user and spare member, and drop this row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
A GRIND or capture paces between its patch and the tile its pace leads to,
and the last battle can come on either. Console B (00.20, run m61) caught
the Oddish on the far step, (3, 19); the walk back planned from the table's
(4, 19) went down Nugget Bridge's column 10 into a beaten Lass and never
reached the Center.

The pacing step now reports both tiles (paced_pose()), and a ROUTE from a
set of tiles first holds to walls that bring them to one, as the walker's
re-anchor finds them (holds_to_one_tile()), then plans from there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
On console B (m63) the open leg west from Nugget Bridge's head ended a
tile short, and the walk down onto the grass came into Camper Shane's
sight. The patch is now (3, 19): west to the cliff, down column 3, and
the capture paces east. Sim test: the leg west a tile short keeps out
of his sight.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
On console B (m63) Camper Shane walked up to the player pacing for the
Oddish on Route 24; his message stayed up and pacing ended
"no-battle-not-overworld". Pacing now fights a trainer whose message
shows, logs it, walks back onto the patch from either pacing tile and
goes on. SimPatch moves to its own file with a pace-sim test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine and others added 13 commits November 5, 2026 12:19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
# Conflicts:
#	SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStorySimulation_Tests.cpp
… start pose

# Conflicts:
#	SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStoryEvents.h
#	SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStorySimulation_Tests.cpp
The merge of the start pose check turned 22 untouched LF lines to CRLF.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
dayfine and others added 11 commits November 9, 2026 03:34
…t frame

# Conflicts:
#	SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStoryEvents.h
#	SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStorySimulation_Tests.cpp
…t frame

# Conflicts:
#	SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStoryEvents.h
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss

# Conflicts:
#	SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStoryEvents.h
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss

# Conflicts:
#	SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStoryEvents.h
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
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