Skip to content

v0.2.8 - reliable replay, readable notices and Windows launcher fixes (source only)

Pre-release
Pre-release

Choose a tag to compare

@0bAndyWirus 0bAndyWirus released this 20 Oct 03:45
· 89 commits to main since this release
e83a0fe

Source and scripts only. No game image, generated game code or game executable is included. Supply your own legally obtained ROM and build locally (docs/GETTING_STARTED.md).

v0.2.8 (prerelease)

  • Replay preserves the save chip. Native captures retain explicit choices in shell and PowerShell replay commands, including explicit Auto over an ABI setting. Godot issue replay applies its captured chip before loading the copied launch save, without changing normal-game settings. Old captures with missing metadata retain Auto behavior.
  • A stronger real replay regression: early frame hashes had hidden a real bug—a fresh EEPROM64K capture wrote 65,536 bytes, while replay wrote 524,288. The regression now compares saved bytes/capacity as well as screenshots, hashes, RTC/ticks and capture immutability. Explicit EEPROM, explicit Auto over ABI EEPROM and inherited ABI EEPROM all pass.
  • Godot standalone replay uses the standard local native build, handles the Windows executable suffix and changes to its own directory. Running it from an unrelated directory reproduced both screenshots with 0/49,152 differing pixels each and preserved save bytes.
  • Interrupted input files are errors: an incomplete final entry exits 2 instead of silently disappearing at EOF. Empty files and trailing whitespace remain valid.
  • Small-window notices fit: save warnings, pause feedback and the fast-forward badge shrink/wrap to the renderer width. Long device/path messages are bounded and visibly elided; the per-frame layout does not allocate heap storage.
  • Windows launcher failures are preserved: the no-argument batch path captures the program's real failure status after it returns. First-run instructions open the launcher and select EEPROM 64 KB instead of sending fresh EU saves through the generic flash fallback. Core backup defaults are unchanged.

Verified on one Linux machine: three 3,000-frame native fresh-save capture/replay cases; a 1,500-frame real Godot capture/replay/recapture/reload; actual 256x384 and 512x768 SDL notification captures; bounded long-word, multiline and tiny-renderer probes. Full details and commands are recorded in the merged pull requests and CHANGELOG.md.

Release gates also pass: 20 runtime tests, 588 Python tests, five-language 3,000-frame default hashes and English WAV unchanged, and the 28,500-frame EEPROM64K scripted run matching the private baseline. Windows CI ran the actual batch launcher against a ROM-free native fixture and preserved distinct failure codes through paths containing spaces and !; this is not a Windows game run.

An extended scripted-then-idle native smoke also completed 90,000 frames with periodic save flushing. Its first 28,500 frame hashes match the private reference; the final 1,000 frames contain 533 distinct screen pairs, and the persisted save is 65,536 bytes. This is a stability observation, not a full playthrough.

The downloaded v0.2.8 source-kit ZIP was also unpacked into a clean workspace, built locally with the owned image and EEPROM64K selected at build time, then run without explicit ABI/chip flags: all 28,500 frame hashes match the private reference and the saved file is 65,536 bytes. The log confirms ABI auto-discovery from that fresh workspace.

Choose EEPROM 64 KB in the launcher or pass --backup-type eeprom64k for the European release. Automatic protocol guessing was deliberately removed in v0.2.7: cancelled flash reads are ambiguous.

No playability, hardware parity or Windows game-run claim. No save states. The observed Godot 4.7.2 headless cold-editor-import crash remains consistent with upstream #111645 [INFERENCE]; runtime cold loading and application checks are separate.

Not affiliated with or endorsed by Square Enix or Nintendo. MIT covers original project code, not the game or other third-party material.