Routes leave game-made SRAM saves; next routes start from them #26

Closed
opened 2026-10-29 17:08:46 +00:00 by Gatchan · 1 comment
Owner

Decision on #22 (option 1 first). Also the main lever for #24.

  1. Behaviour save_game(slot): open the menu on the world map (or at a save point), choose Save, pick the slot, confirm; read the result from SRAM (checksum valid, slot used).
  2. narshe_to_world_map ends by saving in slot 1; the route writes the 8 KiB SRAM file next to its movie but outside the repository (ROM-derived game data: e.g. others/startpoints/<version>/<route>.srm), and records its CRC in the movie header (start point format already supports SRAM).
  3. Routes can declare START = "sram:<route>": power-on with that SRAM, Continue on the title, load the slot, continue playing. run_route.py regenerates missing SRAM start points by running the producing route first.
  4. Tests: chain tests start from the SRAM file instead of replaying from power-on; measure the slow-suite time (#24).
  5. Next route on the story path from the first world map (e.g. to Figaro Castle), saving at its end.
Decision on #22 (option 1 first). Also the main lever for #24. 1. Behaviour `save_game(slot)`: open the menu on the world map (or at a save point), choose Save, pick the slot, confirm; read the result from SRAM (checksum valid, slot used). 2. `narshe_to_world_map` ends by saving in slot 1; the route writes the 8 KiB SRAM file **next to its movie but outside the repository** (ROM-derived game data: e.g. `others/startpoints/<version>/<route>.srm`), and records its CRC in the movie header (start point format already supports SRAM). 3. Routes can declare `START = "sram:<route>"`: power-on with that SRAM, Continue on the title, load the slot, continue playing. `run_route.py` regenerates missing SRAM start points by running the producing route first. 4. Tests: chain tests start from the SRAM file instead of replaying from power-on; measure the slow-suite time (#24). 5. Next route on the story path from the first world map (e.g. to Figaro Castle), saving at its end.
Author
Owner

Merged (PR #36). narshe_to_world_map now ends with a save in slot 1 (SRAM CRC US 1F8AAA17 / JP 535A9F1E, kept in others/startpoints/, outside the repo); new route narshe_to_figaro starts from it (Continue on the title) and plays the whole Figaro castle story through the chocobo escape battle, saving again on the world map. Slow suite 29/29 (agent). #24 partly addressed: starting from SRAM saves ~6400 s per suite run; the first route still plays from power-on.

Merged (PR #36). narshe_to_world_map now ends with a save in slot 1 (SRAM CRC US 1F8AAA17 / JP 535A9F1E, kept in others/startpoints/, outside the repo); new route narshe_to_figaro starts from it (Continue on the title) and plays the whole Figaro castle story through the chocobo escape battle, saving again on the world map. Slow suite 29/29 (agent). #24 partly addressed: starting from SRAM saves ~6400 s per suite run; the first route still plays from power-on.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Gatchan/FF6Portage#26
No description provided.