Validate the lighting-stripe palette model and decode the cls4 selector #259
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "refs/pull/259/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #214.
Validation (primary goal)
The lighting-stripe hypothesis is confirmed on both axes; the live
ADDR_PALSELtrace fallback is unnecessary.map_graphics_style(three banks observed; the starting cave gives a certain map-0/style-2 → bank-2 correlation) and stripe = light level (stripe 1↔4 series in a single room, line 1 byte-identical across its two bright states). Details indocs/formats/palette-lut.md§ "VALIDATED".Secondary target: cls4 selector + jump-table rule
jsr disp(a5)maps asentry = (disp − 0x22)/8— the 32-byte above-A5 params block precedes the runtime table. Live-proven with two breakpoints; the same rule holds on Sega CD and Amiga with matching entry numbers (no merged-table anomaly). Earlier(disp−2)/8labels were systematically +4 off; the GDAT resolver is0x2abc0, not0x1e78e.cls4 = table[record->byte4 >> 4](entry 492), plus the simplified-sensor Text pathcls4 = (word2 >> 3) & 0xFF. The supposed ABI mismatch was the numbering artifact.Tooling
palette_oracle_matchnow labels candidates with their cls tuples (banks read directly ascls2), with a regression test pinning the six bank ENT1 indices.tooling/palette-oracle/run_capture.shis a real capture launcher: interactive mode plus a--fifomode that bridges the BlastEm debugger through a PTY via socat (its REPL hangs on a non-TTY stdin).Remaining work is tracked in the decoder-wiring follow-up issue.