# Ch363 Audit Log - Five-Texture Persistent-Z Scheduler

## Scope

- Native 640x480 persistent-Z scene with five ordered authentic SH3 draws:
  `5328,11671,77112,89164,119471`.
- Five distinct texture/CLUT bindings, relocated at CBP `480,484,488,492,496`.
- The cache is intentionally refilled for every epoch; this chapter proves rebinds rather than shared-texture residency.

## Root Cause And Fix

- The generated five-CLUT bootlet is 350 qwords. The shared simulation harness had inherited the 256-qword EE RAM default, so `$readmemh` truncated the payload. Epoch 3 consequently read partial CLUT data and produced 195 palette-invalid pixels.
- The production `GS_SH3_LPDDR_FB` board profile already allocates 32 KiB of EE RAM. Both shared 640 harnesses now explicitly use that same `RAM_SIZE_BYTES(32 * 1024)` capacity.
- The earlier CLAMP investigation was rejected by trace evidence: all sampled epoch-2/3/4 coordinates were within the 512x512 texture bounds. No feeder or sampler RTL change is retained.

## Simulation Gates

- `tb_top_psmct32_sh3_zs640mt5_cap`: PASS.
  - Five texture CRC fills: `55070afa`, `26a88b77`, `a727234d`, `fbdeaa32`, `cf4cae27`.
  - Five fresh drains, records `54,68,68,68,68`, no writer overflow or scanout underflow.
  - Scanout: exactly 38,400 beats/frame.
  - Oracle: ALL `61595/63749` (96.6%), MULTI `7701/7877` (97.8%), `clut_bad=0`.
- `tb_top_psmct32_sh3_zint640mt5`: PASS.
  - Z preclear: 19,200 beats.
  - 129,752 fragments fed, 118,355 Z passes, zero fragment drops.
  - Exact final scoreboards: Z `0/307200` mismatch; COLOR `0/63617` mismatch.
  - Request FIFO depth 1024 high-water by epoch: `415,401,64,222,47`.

## GUI Fit And Board Closure

- The authoritative QSF points to `bios_sh3_zs640mt5.mem` and `payload_sh3_zs640mt5.mem`; the Quartus 26.1 flow report and synthesis report both resolve those exact images.
- The July 11 GUI compile is signoff-clean: setup `+0.095 ns`, hold `0.000 ns`, recovery `+1.042 ns`, removal `+0.185 ns`, and minimum pulse width `+0.200 ns`. The generated `retroDE_ps2.core.rbf` was written after the QSF update.
- The RBF loaded successfully on the DE25 (`fpga0: operating`). The five-epoch host run passed all transfer, CRC, preclear, drain, and zero-drop gates. Its final framebuffer summary was `nonzero=63617`, bounds `(36,10)..(562,360)`.
- The board framebuffer and a fresh `tb_top_psmct32_sh3_zint640mt5` dump have identical SHA-256: `9e87678c0c88e3e2e90a187e69991069d58e88187d360d560df59f25219b99c5`.
- Independent replay-color verification is exact: `307200/307200` pixels, zero mismatches. Ch363 is closed: five authentic SH3 draws, five texture/CLUT rebinds, native 640x480 scanout, and persistent-Z are proven on silicon for this fixture.
