ba74bbd5aa
Per-vertex GS fog end-to-end (gs_stub emit incl. persp_emit5, gs_prim_list_feeder XYZ2->XYZF2 on PRIM.FGE, gs_make_sh3_scheduler_fixture.py F/FGE packing), new fog TBs, fidelity attribution tooling. Functional baseline before removing the dead bilinear lerp8 clamps (Codex: 161-node comb loop -> -0.042ns setup fail). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rtl/platform
retroDE-specific platform integration. Matches docs/contracts/platform.md.
Wave 1 contents
platform_video_stub.sv— free-running raster generator. Default VGA 640x480 timing (overridable per-testbench to tiny values for fast sim). Takesbg_{r,g,b}fromgs_stuband flood-fills the active region. Emits oneEV_MODEper completed frame so testbenches can count frames without sampling raw video.
Scope boundary
This directory owns:
- clock/reset sequencing entry points,
- retroDE-facing video and audio adaptation,
- HPS bridge plumbing (future),
- top-level wrappers not belonging inside PS2 subsystems.
It does not own GS/PCRTC semantics (that's rtl/gif_gs/), SPU2 audio
synthesis (rtl/spu2/), or any PS2 register behavior.
Replacement path
platform_video_stub stays as the platform adaptation layer. What changes
is the upstream pixel source: Wave 1 → flat BGCOLOR from gs_stub,
later waves → fuller GS/PCRTC output including framebuffer scan-out.