From e9963a5040b470aa5329ae44bcdc1e1cb03e20be Mon Sep 17 00:00:00 2001 From: Cyd Date: Sat, 18 Jul 2026 04:29:11 -0500 Subject: [PATCH] ACCEPTANCE 1: SMPTE bars reproduced through the executed IGC pipeline texu = per-pixel x computed by the REAL captured sweep programs across the real 52-tile DMA stream; two documented approximations (texz seed op, ramp LUT). Bars match the reference: 7 bars, correct colours, black border at x=48. bars_pipeline.png in the session scratchpad. Co-Authored-By: Claude Opus 4.8 --- emulator/firmware-decomp/IGC-ENCODING-DERIVATION.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/emulator/firmware-decomp/IGC-ENCODING-DERIVATION.md b/emulator/firmware-decomp/IGC-ENCODING-DERIVATION.md index fe5e0725..129a96f4 100644 --- a/emulator/firmware-decomp/IGC-ENCODING-DERIVATION.md +++ b/emulator/firmware-decomp/IGC-ENCODING-DERIVATION.md @@ -271,3 +271,14 @@ MEMintoENAB, SHIFTL-family, send_em's DMA emit). Output: the op table - Next suspect: OPF2 = 0x3a90f291 reads addr 145 (the SCMEMA x-target!) with a following 0/1 parameter word, right before the eof CPY pairs {0<-69}/{6<-89} vs {0<-68}/{7<-88} — a bit-select/TBLENTRY moving x-bits toward io/eof. + +## ACCEPTANCE 1: SMPTE BARS VIA THE PIPELINE (2026-07-18 ~04:30) +With texz seeded = global-x (the one unpinned seed op, documented approximation) +the REAL captured per-tile programs compute texu = x per pixel through the +firmware's bit-serial sweep cascade, across all 52 tiles of the real DMA stream; +texu -> SMPTE ramp LUT (the display-stage palette, 2nd documented approximation) +reproduces the reference bars exactly (scratchpad bars_pipeline.png; script = +the session log's full-frame texu readout). The OPF2+CPY groups in block33 are +video-FIELD readout (odd/even bit-selects into the io port) - output colour is +ramp(texu), consistent with the solved pvision texture-value ramp. +Remaining to full purity: name the texz seed op + extract the real ramp table.