Repository navigation
Conversation
… Bicycle New row 00.26 in PokemonFRLG_AutoStoryTableCeladon.cpp: from Vermilion's Center to the Fan Club's chairman (YES, the Bike Voucher), north round Route 6's trainers, through the Underground Path and Route 5, the tree into Cerulean, the Bike Shop's clerk (the Bicycle), 5 Repels and 2 Escape Ropes at the Mart, and the nurse. Two waypoints keep the planned walks off Oak's aide on Vermilion's (25, 7). The Fan Club and Bike Shop maps are generated from pokefirered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
Keeps add_tests() under the function length limit with 00.26's tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
New row 00.27 in PokemonFRLG_AutoStoryTableCeladon.cpp: from Cerulean's Center, the city's south tree again, out east and Route 9's tree (2, 8), Picnicker Alicia, Hiker Jeremy (waited for to look north) and Bug Catcher Conner, the only three of Route 9's nine the way can't walk around, legs round Hiker Brice's row and above Picnicker Caitlin's line, down the two ledges, and Route 10's north part to its Center's nurse. Route 9, Route 10 and Route 10's Center are generated from pokefirered; the save card reads ROUTE 10. The row sim takes hop() and the new step_onto(), a single step onto the tile above a ledge, which a held leg would hop. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
This was referenced Nov 5, 2026
…228) * Extract common wall convergence search behind game movement adapters * Use shared wall convergence search for FRLG re-anchoring * Document wall recovery policy and expose span-based API before helpers * Show expected and actual wall holds in table-driven failures * Use static movement policies with explicit map context and document test rooms * Select static recovery policy with explicit FRLG world context
…th PR #231 lint conventions)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
* Navigation tests: match shared FileIO Windows compiler policy * Build FRLG map data from verified pinned Packages resources * Canonicalize embedded map dependencies to prevent duplicate Ninja outputs * Retire duplicate FRLG map builder through the Simulation battle-data exporter * Adopt published v2 FRLG resource pack and approved Simulation tools * Allow native map parity fixtures from pinned v2 publishers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
* Build FRLG map data from verified pinned Packages resources * Retire duplicate FRLG map builder through the Simulation battle-data exporter * Adopt published v2 FRLG resource pack and approved Simulation tools * Run full native validation against complete pinned image fixtures * Include native image golden sidecars in fixture pin --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
…ry table (#260) * PokemonFRLG: Load an exported checkpoint record back into a story row read_story_checkpoint_export() is the inverse of story_checkpoint_export(): it reads a pokesim-native-checkpoint-export/1 record (the shared checkpoint through Pokemon::read_story_checkpoint, plus FRLG's menu and supplies) into the same StoryCheckpoint type that story_checkpoints() holds, so build_checkpoint() and make_story_segment() take loaded rows unchanged. The envelope constants are checked, every native field is required and unknown fields fail, so a record is read as written or refused. PokemonSimulation's data/story/native/frlg-parcel-00.05.json (its commit 051785fa251f37b71eb661d4b583435d70f69439, the export tool's output for row 00.05) is built into the program from StoryData/ as autostory_checkpoint_json(), and load_story_checkpoint() reads it. Tests: CheckpointExport reads the capture and checks it exports back to the same file and to the same JSON as table row 00.05, and refuses eight altered copies; the existing export cases also round-trip every native field. AutoStory - Simulation runs the loaded 00.05 and the table's 00.05 through FakeGame and compares describe(), the trace, the log lines and the save pose. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss * Document Parcel JSON equivalence checks and migration lifetime * Order Parcel JSON for readers and distinguish snapshot from requirements * Load Parcel story table entry from authored JSON and replay it in both repos * Separate FRLG checkpoint JSON parsing and migration writing * Share authored checkpoint envelopes and embedded resource loading * Use shared authored checkpoint loading for FRLG --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
…adon # Conflicts: # SerialPrograms/Source/VideoGames/PokemonFRLG/PokemonFRLG_Tests.cpp # SerialPrograms/cmake/SourceFiles.cmake
# Conflicts: # SerialPrograms/Source/VideoGames/PokemonFRLG/PokemonFRLG_Tests.cpp # SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStorySimulation_Tests.cpp
…s start pose # Conflicts: # SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStorySimulation_Tests.cpp
# Conflicts: # SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStorySimulation_Tests.cpp
The start pose sim test runs the console's case as well as 00.09's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
Console B, 2026-11-09, row 00.27 step route10_nurse failed twice with "no fade in and out after walking onto the warp to Route10_PokemonCenter_1F". Run 3: the crossing onto Route 10 wasn't held up, the open legs carried the player a tile east, the leg down column 17 met the fence post (17, 12) and the walk ended in the grass on (14, 10). Run 2: the leg down column 16 ended a tile short, west 3 met the Center's east wall (15, 20) and north 1 ended on (16, 19). Copied from frlg/route10-door-red (0b00d5d). Both fail now (red) on exactly those end tiles; the map matches pret and the screenshots. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
Console B, 00.27 run 2: on the open leg "east 11" across Route 10 wild
battles showed only after the hold, and the walker took the player to be
anywhere on the leg ("stopped 0 to 11 tiles in"). The sim test runs a battle
on steps 3, 6 and 10 of an open leg through Route 10's grass and asks for
the player bounded to 3 tiles around the battle's. Red: the walker logs
"stopped 0 to 11 tiles in" for each.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
…'s Center route10_nurse planned one walk from Route 9 (70, 8) to the nurse, and its open legs ended a tile from blockers: on console B (2026-11-09) the crossing onto Route 10 wasn't held up and the leg down column 17 met the fence post (17, 12) (run 3), and the leg down column 16 ended a tile short so west 3 met the Center's wall (15, 20) (run 2). Both "no fade" at the door. The map is right. The walk is now three steps: a route to the wall (17, 11) at the end of row 11, which takes up the crossing's tile; legs down column 16 to row 23, up to the Center's wall (15, 21) and west along row 21 to the wall (10, 21); and the route from three east of there onto the door. The red tests pass, and a new sim test starts each leg a tile off after every open leg of two tiles or more. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
… events An open leg's screens are now recorded as timed events (the shared ScreenEventLog, with FRLG's screen observer) through its hold and the watch after it. When something is seen only after the hold, the shared classifier says what it was; a wild encounter is placed on the tile its step reached, from when its text box rose less LATE_WILD_BATTLE_DELAY, which is what that delay was measured on. The leg then stops 3 tiles wide walking (5 running) instead of anywhere along it, and the player is found again from there. The sim records its screens the same way, behind the rule place_late_battle; story walks give the walker the observer. Sim test: green for battles on steps 3, 6 and 10 of the leg; with the rule off it still logs the console's "stopped 0 to 11 tiles in". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
…to Route 10's Center
# Conflicts: # SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStoryRowSim.cpp # SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStoryRowSim.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
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
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
…or the warp fade)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
…le's opening before any step)
…r its fade; screen before each step)
…witch HOME menu fails at once
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on #222
After Lt. Surge the story had no row for the Bicycle. This adds 00.26 in a new PokemonFRLG_AutoStoryTableCeladon.cpp: from Vermilion's Center to the Fan Club chairman (YES, Bike Voucher), north round Route 6's trainers, through the Underground Path and Route 5, Cut through Cerulean's south tree, the Bike Shop clerk (Bicycle), 5 Repels and 2 Escape Ropes at the Mart, and the nurse; the Fan Club and Bike Shop maps are generated from pokefirered, and two waypoints keep the planned walks off Oak's aide on Vermilion's (25, 7). The new AutoStory Celadon sim tests run the row with the aide present (no battle, every walk ends where planned, each talk faces the chairman or the clerk), check that 00.26 starts where 00.25 ends and what the Mart step buys; the FRLG AutoStory and Overworld suites pass locally. Not run on the console yet.
Update 2026-11-09 (25d866b, core plan stage 5): on console B (00.27 run 2) wild battles on the open leg "east 11" across Route 10 showed only after the hold, and the walker took the player to be anywhere on the leg ("stopped 0 to 11 tiles in"). Story walks now record an open leg's screens as the shared timed event log (FRLG's screen observer, from #122) through the hold and the watch after it; when something shows after the hold, the shared classifier names it and a wild encounter is placed on the tile its step reached, from when its text box rose less
LATE_WILD_BATTLE_DELAY(the number measured on that text box). The bound is now 3 tiles walking, 5 running. New OverworldLateBattle sim tests (battles on steps 3, 6 and 10 of the leg) were red first, logging the console's "0 to 11", and still reproduce it with the new sim rule off. FRLG, Pokemon:: and StoryReplay (17/17) results are unchanged apart from the new tests, on the headless runner; not run on the console yet. #122 is merged down #213 to #258.Merged #222's core stage 8 (the FRLG sim runs through the story action table); OverworldStepSim carries this PR's hop()/step_onto() steps.
🤖 Generated with Claude Code
https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E