Session 3 summary in STATUS.md, plus the things a cold start needs.
- Reproduce section for the display result, verified cold from the Blu-ray at
end of session: extract -> prep -> MAME -> verify, exact match, 38.88 dB.
The frames are not in the repo and the old ones lived in /tmp, so the chain
starts from extract.py rather than assuming a scratch directory survives.
- tools/bench/verify_frame.py turns FINDINGS 22 into a regression check. It is
deliberately an exact test rather than a PSNR threshold, since the whole
point of that section is that the render is bit-for-bit predictable. It
prints the three registers to check when it fails.
- Recorded where the MAME source now lives, and why to read it first: six
register-poking attempts failed against a gate that one grep found.
- Split the CRTC mode table out as its own next step. It is the prerequisite
for the decoder skeleton and the smallest well-defined task available, with
an explicit warning not to write the timing values from memory.
Claude-Session: https://claude.ai/code/session_01194oWYW8DQXK1SZ2DnChW6