Prepares session 4 for handoff. No new measurements; this reconciles the docs
with what session 4 changed and makes the next session's entry point cheaper.
- tools/bench/check.sh re-runs both display regression tests from the Blu-ray in
~40 s and prints ALL GREEN. Verified green cold, after wiping tmp/ and
re-extracting. STATUS and README both open with it, because everything
downstream assumes the display path is pixel-exact and nothing previously
checked that in one command.
- Reconciled the figures session 4 invalidated. Session 3's 38.88 dB ceiling is
struck through in STATUS with a pointer to 40.81; the "three facts the player
must honour" table no longer quotes R20 = 0x0116, which was the 768-wide IPL
timing and would have been copied into the player as if it were the shipping
value. crtc_mode.lua is now named as the single source of truth for CRTC
registers, in both STATUS and README.
The 38.88 dB in the session-3 reproduce section is left alone and annotated
instead: it is correct for that test, which still packs I = 1. The two numbers
disagree for a reason and a reader should be able to see which is which.
- Next-step 2 now leads with something smaller than "write the decoder": a dumb
full-frame RAM->GVRAM blit in 68000 code, timed. That number alone confirms or
kills the 38% estimate, and needs no bitstream, codebooks, or DLX1 parsing.
The reference image and its checker already exist.
- Parked the user's Cliff Hanger / Lupin III follow-on in STATUS so it is not
lost and not mistaken for scheduled work. Cheaper than this project on every
axis except media prep, which is where it would actually stall.
Claude-Session: https://claude.ai/code/session_01194oWYW8DQXK1SZ2DnChW6