Files
psxrecomp/runtime/src
tetrisgm 249057f93f Widescreen precision: exact-sign NCLIP + GTE clamp rescue; backend-invariant entry hooks
Three changes that ride the existing PGXP dataflow engine:

- Arm the PGXP engine whenever a precision consumer needs it, not only when
  a correction feature is on. gpu_pgxp_rederive_enable() derives the arm from
  texture correction OR geometry correction OR the widescreen precise-NCLIP
  opt-in, and every setter re-derives. Previously disabling both corrections
  silently disabled the shadows precise_nclip depends on.

- gte_nclip: when the sub-pixel shadow of all three SXY FIFO entries is live,
  take the winding SIGN from the exact double cross product and keep the
  hardware integer magnitude. The X-squash scales areas by a positive factor,
  so only integer rounding ever flips a sign; this removes both the vanished
  trackside signs and the per-frame tile flicker at wide aspects without any
  epsilon tolerance. The producer clamps shadow coords to +/-4096 px so a
  projection blowup cannot wrap the 16.16 int32.

- Clamp rescue (prepare_precise_triangle): a vertex parked exactly on a GTE
  saturation rail (+/-1024) is hardware-mangled; when the validated dataflow
  shadow knows its true position, rasterize with that instead. Kills the
  "polygon spike" streak class that 4:3 framing plus CRT overscan hid. Every
  in-range vertex stays native, so normal geometry is bit-identical.

- dirty_ram_interp: fire psx_mod_function_entry on interp dispatch so
  function-entry mod hooks do not depend on which backend executes a
  mod-patched page.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 23:30:17 -07:00
..
2026-08-03 05:26:37 -04:00
2026-08-08 12:28:05 -04:00
2026-07-29 03:18:10 -04:00
2026-08-09 00:39:32 -04:00
2026-08-16 17:59:20 -04:00
…
2026-08-01 14:13:58 -04:00
2026-07-29 03:18:10 -04:00
2026-08-07 16:42:43 -04:00
2026-08-15 14:46:26 -07:00
…
2026-08-07 16:42:43 -04:00
2026-08-03 05:26:37 -04:00
2026-08-06 20:34:50 -04:00
2026-08-03 05:26:37 -04:00
2026-08-16 21:55:51 -04:00
2026-08-13 17:38:22 -04:00
2026-07-29 03:18:10 -04:00
2026-08-01 14:13:58 -04:00
2026-07-29 03:18:10 -04:00
2026-07-29 03:18:10 -04:00
2026-08-13 10:37:18 -04:00
2026-08-16 17:59:20 -04:00
2026-08-07 21:16:50 -04:00
2026-08-16 17:59:20 -04:00
2026-07-29 03:18:10 -04:00