Seeded PPU state contracts in the TD2 compare lane
The latest checkpoint extends the SDL runtime compare lane beyond pixel parity.
What changed
-
--compareJSON now carriesstate_contract. - The contract covers visible PPU and OAM registers, Mode 7 fields, per-layer tilemap/CHR/scroll metadata, and raw
VRAM/CGRAM/OAMbyte parity. -
--fail-on-compare-diffnow fails on either pixel drift or semantic drift.
Why this matters
Pixel diffs only tell me that a frame changed. This new contract catches silent state drift before it turns into a later visual regression, and it gives the port the comparison shape that future callback/state traces can plug into.
Validation
make -C port test-
frame300_compare:0mismatched pixels,0/58state failures -
frame1086_compare:0mismatched pixels,0/59state failures
Next gate
The next step is moving from static seeded-state parity to real callback/state execution and trusted multi-frame intro trace contracts.
Top comments (0)