Routes leave game-made SRAM saves; route narshe_to_figaro starts from them (fixes #26) #36
Loading…
Reference in a new issue
No description provided.
Delete branch "save-points"
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?
Routes now leave real SRAM saves made by the game, and the next route starts from them (decision on #22, option 1).
What changed
tests/routes/behaviours.py):save_game(slot)(main menu on the world map or at a save point,menu_flagsbit 7 checked, Save, slot, Yes on overwrite; read back from SRAM: slot checksum asCalcSaveSlotChecksumcomputes it, SRAM validity marks,sram_last_slot),continue_game(slot)(title, load menu, Yes),world_dismount(chocobo, B),WorldWalker(world map paths overworld_map_tiles, tile-index passability learned from refused steps, random battle starts not mistaken for walls),FieldGrid/field_gowith opt-in NPC avoidance (field_obj_map) and avoid tiles,use_entrance,talk_to_object(NPCs found on the object map),ListBattlePolicy(Tools, vertical command cursor).START = "sram:<route>"powers on with that SRAM (seeded WRAM, D2), presses Continue and loads the producer'sSAVE_SLOT. A route withSAVE_SLOTwrites its 8 KiB SRAM with--recordto<startpoints>/<version>/<route>.srm(outside the repository:--startpoints, else$FF6_STARTPOINTS, elseothers/startpointsnext to the repository) and records# startpoint_sram <crc32> slot <n>in the movie;--checkcompares it. A missing or stale start point is regenerated by replaying the producer's committed movie (must end with the recorded CRC);--make-startpointdoes only that;--replaypasses--save.startpoint.narshe_to_world_map.<version>required by the route/movie/route_ports_on tests ofnarshe_to_figaro.menu_flags($0201),world_vehicle($20),world_tile_props($C2),world_tile($C4),world_map_tiles($7F0000, 256 rows); ram_map_check 0 errors, 166 JP checks.Routes
narshe_to_world_map(re-recorded: ends with a save in slot 1)title_to_first_battle_winnarshe_to_figaro(new)sram:narshe_to_world_mapnarshe_to_figaro: Continue (958 / 658 frames), walk to Figaro Castle, Edgar (intro and name), the Matron (twins' flashback), Edgar again (Kefka at the gate: two soldiers, Kefka), Locke in the courtyard and in Terra's room (night, fire), the guard by the keep (chocobo escape; battle against two M-TekArmors won at the first attempt with Tools/Magic/Fight), world map at (65, 77), chocobo dismounted, saved in slot 1 (party Terra, Locke, Edgar). Checked with screenshots at each stage and RAM-map checkpoints (mode, world position, party, event bits, save slot).Validation
--fastpasses on the three (13/13).-j2, run once (machine shared with another agent, so times are inflated): 29/29 passed, with an empty start point directory so the fixtures regenerated the start points (CRC checked).Time gain (#24)
narshe_to_figarostarts after ~1000 frames of Continue instead of replaying the 80 000-framenarshe_to_world_mapmovie first: as anafter:chain each of its 6 tests would add about onemovie.narshe_to_world_mapreplay (1188 s US, 946 s JP here), i.e. about 6400 s of test time saved per suite run; the start point is regenerated once (about 1550 s here) only when it is missing. The narshe tests themselves still replay from power-on (no save point before the first world map), so the 20-minute target of #24 needs more (e.g. thenightlylabel fornarshe_to_world_map).Start point files are ROM-derived game data and are never committed.
Fixes #26
Refs #22 #24
🤖 Generated with Claude Code