Route checks with ports on: timing-invariant checkpoints, SRAM start points only (fixes #34) #44
Loading…
Reference in a new issue
No description provided.
Delete branch "ports-on-checks"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #34 (decision of 2026-11-02,
workdocs/decisions.md).Check definitions: before / after
--semantic,route_ports_on.*)battles: {...: "won"}), save slot. Keys in a route'sEXACT_ONLY(party HP) are compared by exact checks onlySTART = "after:<route>": frame-exact replay of the previous movie, even with ports onafter:removed (run_route refuses anything butpower_on/sram:<route>); chained routes start from SRAM start points made by the interpreterbehaviours.win_battle, 8 attempts (BATTLE_ATTEMPTS), retries jittered; attempt 1 unchanged, so interpreter movies keep their inputsrom.portsdivergenceFINDING. Still not a failuredocs/validation.mdNo new gate:
route_ports_on.*keeps its place; only its definition changed.New SRAM start point
title_to_mines_save(power-on, the title route, cliffs, mines save point(33, 22)of map $29, save in slot 1; US 23 834 frames, JP 23 368) is the start point offield_menu_tour(now steps off the save point first; 1 602 / 1 304 frames instead of 10 897 / 10 202) andnarshe_to_world_map(62 504 / 56 648 frames instead of 80 001 / 80 910).narshe_to_world_mapnow saves on a fixed world tile (84, 36): the position after "prove control" depended on input timing (JP ports-on ended on (84, 36) vs (84, 35)). Movies re-recorded;title_to_first_battle_winpads and end hashes unchanged (only the checkpoint comment lines changed).Evidence
ctest(all labels, -j2): 61/61 passed, 6 582 s wall (includes regenerating the 4 SRAM start points, 1 988 s of fixtures; cached afterwards).route_ports_on.*(all ports on =battle/Randon main), US / JP: title_to_first_battle_win ok/ok, title_to_mines_save ok/ok, field_menu_tour ok/ok, narshe_to_world_map ok/ok, narshe_to_figaro ok/ok.rom.ports: US first divergence frame 8792, WRAM$131E, PC$C5:06AF-> E8 (sound driver state/code); JP frame 8678,$131E, PC$C5:06B2-> E8. No finding.ctest -LE slow: 24/24; debugrom.ports.*: see comment below. Clangctest -LE slow: 24/24, no warnings.🤖 Generated with Claude Code