October 12, 2026 at 12:00:00 AM UTC
smbc: deterministic input recording and replay
src/core/replay.c records frame-indexed joypad bitmaps plus a post-frame state hash (FNV-1a over RAM, PPU registers/VRAM/OAM/scroll state, APU registers, joypads). The versioned format rejects bad magic, unsupported versions and truncated files with clear messages; replay_run replays from a fresh reset and reports the first divergent frame with both hashes. Frontend gains --record/--play. Verified: a 1200-frame recording (title → Start → running through 1-1) replays hash-identically.
This is the input layer for #36's reference comparison harness — fixed input sequences are now expressible as files.
Bonus: the first CI run earned its keep. gcc-14 rejects a missing-parens expression in gamemode.c that clang silently accepted, and ubuntu-24.04's default cc is too old for -std=c23.
all entries