re(savegame): GHAD +52 is the stage number — a hand-edited save plays Stage 05
Static analysis of the header builder (0x822870b4..0x82287128) shows the GDHA container header carries a SUMMARY of the progress block, and the screens read that: hdr+0x14 <- GHAD+52, hdr+0x18 <- GHAD+48, hdr+0x1c <- +24 (Points), hdr+0x20 <- +4 (flight), hdr+0x24 <- the computed clear ratio, hdr+0x28 <- +12. savegame_edit.py copies the donor header verbatim, so payload-only probes left a stale summary — which is why +52 looked refuted. Patching both (hdr[0x14] = 5, ghad[+52] = 5) makes the title read "STAGE 05 - Star System Escape", load it, brief the Gallia Asteroid Group, and fly an asteroid-field mission with a different objective and roster. So +52 is the stage number, 1-based, and one u32 chooses the mission. Also corrected in the GHAD table: +48 is the Game Status enum (0 = At Standby, matching the screen's STATE_STAND_BY/STAGE_CLEAR/GAME_CLEAR list) and +12 is Times Cleared, both via their header mirrors. This unlocks runtime capture in containers other than Stage_S02 (the 85 XBG7 misses, box identity, ship-placement generalisation) and per-stage unit definitions. Slot 01 was backed up and restored byte-identically. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
This commit is contained in:
BIN
docs/re/captures/savegame-stage05-probe-details.png
Normal file
BIN
docs/re/captures/savegame-stage05-probe-details.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 906 KiB |
BIN
docs/re/captures/savegame-stage05-probe-inflight.png
Normal file
BIN
docs/re/captures/savegame-stage05-probe-inflight.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Reference in New Issue
Block a user