VOOZH about

URL: https://dev.to/nivandosoares/seeded-ppu-state-contracts-for-the-td2-compare-lane-496d

⇱ Seeded PPU state contracts for the TD2 compare lane - DEV Community


Seeded PPU state contracts in the TD2 compare lane

The latest checkpoint extends the SDL runtime compare lane beyond pixel parity.

What changed

  • --compare JSON now carries state_contract.
  • The contract covers visible PPU and OAM registers, Mode 7 fields, per-layer tilemap/CHR/scroll metadata, and raw VRAM/CGRAM/OAM byte parity.
  • --fail-on-compare-diff now 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: 0 mismatched pixels, 0/58 state failures
  • frame1086_compare: 0 mismatched pixels, 0/59 state 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.