mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-28 02:56:36 -04:00
249057f93f
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>