# Ch429 — native PSMT4 character recovery ## Objective Recover visible captured geometry that was still absent from the accepted Ch428 frame, while preserving authentic draw order and refusing additions that merely increase epoch count or worsen the presentation. ## Deferred PSMT4 postprocess `zsrt139f34` appended the existing 18-epoch tiled PSMT4 overlay after the Ch428 frame, in its authentic late-frame position. Its 295-epoch production RTL replay passed every structural gate and produced framebuffer SHA-256 `7b167db3927c6e765c464d0e8ddbfb37f23d5b980d87ebdfc9af97b20128e044`. The replay also established that the captured overlay is a real contrast operation, not an opaque texture: its alpha equation is `(Cd-Cs)*0xdc/128 + Cs` with COLCLAMP enabled and source RGB values of 0 or 24. Applied to the still-underlit reconstructed base, it crushes most of the scene to black and worsens the mapped PCSX2 score to MAE 24.0034 / RMSE 32.9396. The overlay is therefore deferred until the missing illumination and base-color population is present; f34 was not deployed. ## Native 512x1024 PSMT4 support A separate captured family of 19 opaque PSMT4 triangle strips covers the foreground character body at draw indices 165536 through 172233. The draws share TBP 9216, TBW 8, a logical 512x1024 texture, and several authentic CLUT banks. The coverage planner now accepts explicit PSMT4 selection. The fixture generator reconstructs the canonical GS-swizzled 512x1024 PSMT4 local-memory image, packs its nibbles into the fixed 262,144-byte texture cache, preserves PSM/TBW/TW/TH in TEX0, and samples packed nibbles in the independent software reference. Fast-fit scaling now uses the logical texture dimensions. Generation is fail-closed. An independent host check confirmed that all 262,144 emitted texture bytes exactly match the local-memory reconstruction; the emitted TEX0 decodes to TBP 1024, TBW 8, PSM `0x14`, TW 9, TH 10. The texture CRC is `0x9ecc08f5`. ## Accepted f36 result `zsrt139f35` groups the 19 strips into 13 exact-state/asset epochs. `zsrt139f36` inserts those epochs at their authentic position before the final opaque draws, CT32 darken, and complete alpha family. The resulting frame has 290 epochs. Production RTL replay passed with: - 1,331,626 fragments fed and 1,311,991 passed; - 290 markers and drains; - zero fragment drops, color overflows, and AXI errors; - Z mismatch 0/307,200 and color mismatch 0/245,437; - framebuffer SHA-256 `102bf7925b859bcacc91172ecdcd1755b4f01210f327ac918a1c8d7954905d2b`. Relative to Ch428, the recovered family changes 3,099 source pixels within `(319,242)..(361,479)` and restores the visible foreground character-body silhouette. On the mapped changed-pixel support its RMSE improves from 15.10 to 12.82. Whole-frame mapped RMSE improves from 27.6458 to 27.6303, while MAE moves narrowly from 18.9378 to 18.9407. This is accepted as authentic structural fidelity with a mixed scalar-score result, not described as a broad color-fidelity win. ## Silicon acceptance No new compile or RBF was required; the timing-clean Ch423 image remained loaded. The DE25 completed all 290 epochs with every texture CRC, palette checksum, staged-record count, ordered drain, and zero-drop gate passing. The scheduler returned `rc=0`, selected the HDMI line-buffer source, and reported 212,673 nonzero pixels, bounds `(0,0)..(511,479)`, sum32 `0x00e0b761`, and xor32 `0x9622a8a3`. The board and production RTL framebuffer files are byte-identical at the SHA-256 above. The mapped board score is MAE 18.9407 / RMSE 27.6303, and the accepted board image is preserved as `captures/gs/silenthill3/extracted/sh3_zsrt139f36_ch429_board.png`. Ch429 is accepted on silicon and f36 is the current live HDMI baseline.