- Stores modified vertices for second triangle before rendering the first (software renderer modifies vertex order)
- Added code to toggle between disabled/default/aggressive (no UI support though)
Required for games which draw lines but use UVs that form a triangle in texture space (Dark Forces and Duke Nukem).
These rely on PS1 sampling rules to follow the upper or left side UVs when drawing the line of pixels.
New version of the hack forces these UVs into a line, both for the original triangle and the secondary one needed to make a quad.
Retains the older more conservative method as it works fine for most games and produces fewer artifacts.
Uses assumption that each end of the line has identical UVs to find and orient candidates much more easily.
Even with PGXP disabled this produces minimal artifacts.
These games render single pixel width axis aligned triangles which at native resolution become pixel wide lines. At higher resolutions they no longer resolve as lines and so gaps appear in the image.
This hack attempts to detect these triangles and then construct and render a second complimentary triangle that makes them a quad. Thus filling the whole space that would be taken if the intended line were scaled up.
* Savestate Performance Fix - no longer does giant memory allocations and copies
* Loadstate Performance Fix - no longer does N^2 string comparisons
* Fast Savestates (excludes text labels from the savestates, 20% speedup)
* Minor Savestate Performance Fix, no longer uses snprintf when strncpy will do. Only applies to the text labels, no effect on fast savestates.
- Pass clamped precise Z value to prevent divide by 0 on GPU (causes errors on Nvidia GPUs)
- Offset texture coordinates by 1/2 texel to avoid error on 1D look ups using Nvidia GPUs (issues #85)
- Prevent Vulkan renderer offsetting texcoord lookups by 1 during 1D lookups (caused error with above fix)
It's still not very accurate (it's not really an overclock and it also
removes instruction cache/memory access latencies) but it's probably
easier to understand that way and it won't clash with true CPU
overclock.