Scale widescreen cull margin to the display width; keep ratio sites on the 320 basis

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Matthew Stanley
2026-10-24 16:54:04 -07:00
parent effb75e63d
commit a3f36c8c02
5 changed files with 139 additions and 15 deletions
+12
View File
@@ -583,3 +583,15 @@ To enable 21:9 later: widen the backdrop generation, then promote the launcher's
2-state toggle to a 3-way Off / 16:9 / 21:9 (the `cycle_aspect` callback already
cycles `aspect_index` 0/1/2 and is the scaffold). Full feasibility analysis in
the session memory `native_wide_fov_autocull.md`.
## Cull margin follows the display width (2026-10-24)
`psx_ws_x_margin()` on the squash path was `160 * (1/s - 1)`, correct only for
320-pixel modes. The reveal is a fraction of the game's own half-width, so it
is now `(W/2) * (1/s - 1)` with `W` the live horizontal display width (512 in
Army Men's gameplay, 368 in Ape Escape): pixel-domain screen-X culls
(`[widescreen.cull]`) get that margin. Ratio-style consumers (terrain angle,
aspect cone, `cull_scale`, the gameplay-field scaler) read
`psx_ws_x_margin_320()`, the same reveal on the 320 basis, and keep their
behaviour in every mode. 320-wide titles are unchanged bit for bit.
Test: `ws_cull_margin_width_test`.