# Ch432 — perspective palette-bilinear handshake repair

## Result

Ch432 removes the alternate-sample loss in the serialized perspective
palette-bilinear raster path.  It restores a broad missing surface population
in the unchanged 292-epoch f42 composition and is accepted on silicon.

The mapped PCSX2 score improves from Ch431's MAE 18.9405 / RMSE 27.6301 to
MAE 15.0765 / RMSE 21.9717.  This is a fidelity improvement from corrected
RTL coverage, not an increase in draw count or a fixture substitution.

## Root and repair

Dense perspective epochs emitted almost exactly half of the independently
rasterized coverage.  Isolated f19 epoch 74 produced 7,301 fragments against
14,371 reference pixels.  The sampler advanced once when launching the held
S1 pixel and again on `PB_RELEASE`, skipping the next S1 sample.

Launch is now the single normal advance, `PB_WAIT` holds while the four-tap
sample returns, and `PB_RELEASE` contributes a final hold cycle.  Perspective
valid is qualified by the existing Z and texture-alpha advance enables so a
frozen beat cannot resubmit the same pixel.  The expensive triangle-inside
result remains off the global pipeline-enable path.

An ALWAYS-Z diagnostic had previously added only 571 lit pixels and worsened
the reference score, independently ruling out Z as the large coverage root.

## Simulation acceptance

The focused perspective PSMT8 regression emits all 31/31 independently
covered samples, with no missing pixels, valid colors, correct alpha metadata,
and correct MODULATE behavior.  The isolated production epoch-74 regression
passes its explicit 14,341-fragment count, up from 7,301, with zero drops and
exact scoreboards.  The affine palette-bilinear regression remains clean.

The complete unchanged f42 replay passes:

- 2,339,405 fragments fed and 2,285,783 passed;
- 292 markers and drains;
- zero fragment drops, color overflows, and AXI errors;
- Z mismatch 0/307,200 and color mismatch 0/245,760;
- framebuffer SHA-256
  `31d21fb5c38816ef99ace1d7b55186dc749720e874ecb055a68b21584ec27037`.

The repaired f19 scene improves against its independent software reference
from MAE 11.7491 / RMSE 24.6649 to MAE 8.7494 / RMSE 18.7008.  Its mapped
PCSX2 score improves from 20.9469 / 29.7626 to 18.3393 / 25.8374.

## Fit and silicon acceptance

The owner GUI fit is timing-clean.  Runtime-fabric audit reports 38,367 ALMs,
336 RAM blocks, required feeder/texture/Z hierarchy present, and 310 MHz setup
met at +0.069 ns.  Hold is nonnegative.  The deployed RBF SHA-256 is
`69b1f91b26d0d78ba654b3d0ccc48f747fa3249f08e2a23535007ff3df40d63e`.

After explicit loader confirmation, the DE25 completed all 292 epochs with
every texture checksum, palette checksum, staged-record count, ordered drain,
and zero-drop gate passing.  The host returned `rc=0`, selected the HDMI
line-buffer source, and dumped 307,200 words with sum32 `0x8304eb9b`, xor32
`0x89a68e4f`, 240,414 nonzero 32-bit words, and bounds `(0,0)..(511,479)`.

The board dump is byte-identical to the production-gradient simulation at the
framebuffer SHA above.  The accepted board image is
`captures/gs/silenthill3/extracted/sh3_zsrt139f42_ch432_board.png`; its PNG
SHA-256 is
`45d7f3eed485ab4650bcf61e849598423c46302c42465dbd2a2579ae4518fab3`.

Ch432 is accepted and is the current live HDMI baseline.
