Repository navigation
Super Mario RPG v0.0.2 - coverage QA patch
Patch release for a full production playthrough and coverage/QA pass. This is
still preview quality: automated qualification is strong, but the game has
not yet been verified end to end by a human playthrough.
What's new
- Loss-resistant dispatch-miss capture. Production builds now record the
complete recompiler-actionable miss key(site, target, M/X, kind): direct
dispatch/bank misses and call/jump gaps discovered while interpreting. - Append-only crash recovery. Each distinct miss is appended to a JSONL
journal and flushed before its missing target executes. A crash or forced
termination can therefore leave useful coverage even when the final report
was never written. - No cross-run overwrite. With the default settings, every launch creates
a unique timestamp-and-PID.jsonmanifest and matching.jsonljournal.
The in-memory set grows as needed instead of silently stopping at the former
4,096-tuple ceiling. - Merge tooling and guardrails.
tools/merge_tier2_coverage.pyaccepts
clean-exit manifests and recovery journals, preserves pending outcomes, and
rejects torn journal lines. The new behavior has dedicated automated tests. - Current shared dependencies. The game pins the validated capture runtime
(snesrecomp4fa1b57), current launcher (recomp-uica27c83), and its
current networking dependency (recomp-net6d848d6).
Playthrough artifact checklist
- Use this unmodified Production release and leave
SNESRECOMP_TIER2_MANIFESTandSNESRECOMP_TIER2_JOURNALunset. - Keep every
tier2_super_mario_rpg_<UTC>_p<PID>.jsonand matching.jsonl
file produced beside the executable/AppImage. Do not rename files into one
another or discard earlier sessions. - For a normally ended session, submit its final
.json. If the session
crashed or was killed before that file appeared, submit its same-stem
.jsonlinstead. Do not submit both files from the same session for merging
because the final manifest already contains the journal's evidence. - Keep crash reports and
last_run_report.jsonseparately as ordinary QA
evidence;g_dispatch_logis diagnostic-only and is not a coverage input.
A complete collection should report overflowed_tuples: 0 and
journal_write_failures: 0. If either counter is nonzero, retain all files and
report it with the run diagnostics.
Validation
- Framework C harness: all tests passed, including 4,354 distinct synthetic
tuples (beyond the old fixed cap), pre-execution journaling, unique output
paths, and abnormal-exit recovery behavior. - SMRPG merger tests: all passed, including union/deduplication and rejection
of a torn JSONL record. - Native Windows Production desktop and headless builds succeeded. Three
normal runs produced exact manifest/journal sets with zero capture failures;
a forced termination preserved all 104 flushed records without a final
manifest. - A deterministic one-count audio underrun in the 3,600-frame headless gate is
unchanged from v0.0.1's framework pin and is tracked separately; the
599-frame smoke gate passes.
Known limitations
- The video output and full game flow still need the human playthrough this
release is intended to support. - Static recompilation coverage remains small (2 qualified exact AOT variants);
other code continues through the correctness-floor interpreter. - Gamepad bindings remain fixed in code. The launcher and
keybinds.iniedit
keyboard bindings only. - The game has no repo-owned
config.ini; launcher settings androm.cfglive
beside the executable.
Install
Extract the Windows zip or make the Linux AppImage executable, place your own
verified Super Mario RPG (USA) ROM beside it, and run it. The ROM is not
included; expected hashes are documented in the README.