Commit Graph

924 Commits

Author SHA1 Message Date
hunterk
cc3b2db364 fix up lineRender core option 2018-08-27 22:19:57 -05:00
hunterk
7ed2a2d7cd initial line-to-quad option 2018-08-26 21:36:01 -05:00
twinaphex
da85ca2406 Use experimental PGXP for software - should at least provide
subpixel correction
2018-08-06 18:14:14 +02:00
iCatButler
2f3316ddf7 - New more aggressive variant of the MakeQuad/FindLine Hack
- 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.
2018-08-06 16:58:03 +02:00
iCatButler
474e5709fe Complete rewrite of line Hack_MakeQuad
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.
2018-08-03 01:22:09 +02:00
iCatButler
22a36febb6 Add hack to fix line rendering trick (Doom, Soul Blade etc.)
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.
2018-08-03 01:22:09 +02:00
twinaphex
4a75947e0f Update tremor 2018-04-24 06:47:48 +02:00
Dwedit
32fc5d370b Fixes for Savestates
* 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.
2018-04-23 20:16:53 -05:00
Dwedit
e10019acb8 Add missing __fastcall 2018-04-18 19:55:26 -05:00
Dwedit
9086bf32c0 MSVC code fixes for the GL/VULKAN build 2018-04-18 17:54:32 -05:00
Dwedit
58c57d35e7 Fixes to code to compile for MSVC 2018-04-18 14:34:16 -05:00
Lionel Flandrin
99a808fc3d Fix broken "Dithering pattern" option for the SW renderer 2018-04-08 23:13:57 +02:00
Lionel Flandrin
ce9d7d8aeb Fix PGXP regression in GTE NCLIP
Fixes #323
2018-04-07 21:45:48 +02:00
iCatButler
6475c19172 Fix PGXP bugs
- 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)
2018-03-02 21:46:44 +00:00
Lionel Flandrin
7a7ae882ff GTE: fix regression in RTPT 2018-02-23 23:53:09 +01:00
Lionel Flandrin
0b67670b71 GTE: fix regression in RTPS 2018-02-23 23:50:01 +01:00
Lionel Flandrin
390b07cc6b GTE: fix regression in SQR 2018-02-23 23:34:13 +01:00
twinaphex
80a21f2ba8 Put some debug conditionals around some printfs 2018-02-22 22:23:10 +01:00
twinaphex
15386cb9b0 Only trigger ILH mode and Debug Mode with DEBUG builds 2018-02-22 20:58:02 +01:00
twinaphex
9d2cc61b2d Only use decltype if HAS_CXX11 is defined 2018-02-22 20:20:04 +01:00
Twinaphex
4d482d8e66 Some ios buildfixes 2018-02-22 00:08:45 +01:00
Lionel Flandrin
76341b5672 Attempt to fix OSX build 2018-02-21 23:53:30 +01:00
Lionel Flandrin
b537b04866 Remove C++11 dependency 2018-02-21 23:45:25 +01:00
twinaphex
6800cd5c96 Buildfix 2018-02-21 23:24:38 +01:00
Lionel Flandrin
b505f54aec Update CPU code to match upstream 2018-02-21 23:17:22 +01:00
Lionel Flandrin
895767268b Re-enable PGXP option without accuracy regression 2018-02-21 22:02:25 +01:00
twinaphex
83a9841715 Use true/false 2018-02-21 17:34:14 +01:00
twinaphex
0d38a5de1e All GTE basic tests pass now - simias - try backporting the PGXP
patches to the non-GTE_SPEEDHACKS paths - you can decide for yourself
whether or not to kill the GTE_SPEEDHACKS code after this
2018-02-21 17:16:29 +01:00
Lionel Flandrin
bddafd31ea Disable threaded CD code when HAVE_THREADS is unset 2018-02-17 17:58:02 +01:00
Lionel Flandrin
4826c06e4d
Added GPU rasterizer overclock option 2018-02-09 11:09:28 +01:00
Lionel Flandrin
8e7ae9c61f Implement true CPU frequency scaling/overclocking 2018-02-08 22:06:35 +01:00
Lionel Flandrin
ac3fec5c36 Rename "CPU Overclock" option into "GTE Overclock"
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.
2018-02-08 19:22:53 +01:00
twinaphex
8a0e087851 Update 2018-01-07 15:49:28 +01:00
twinaphex
3b4bbdde80 Use _WIN32 define 2018-01-07 15:38:42 +01:00
Tommy Nguyen
af262e12d1
Use correct conversion specifier 2018-01-07 06:09:56 -05:00
twinaphex
48fd8c568d Update 2017-12-20 03:51:00 +01:00
twinaphex
30f9e1bcc8 Cleanups 2017-12-20 03:36:17 +01:00
twinaphex
1332311781 Simplify state.cpp 2017-12-20 03:30:26 +01:00
twinaphex
f0781a41d1 Cleanups 2017-12-20 03:22:54 +01:00
twinaphex
f18c48e7b2 Get rid of file.c - use plain filestream 2017-12-19 03:19:58 +01:00
twinaphex
78836b5d1c Start using filestream directly where possible 2017-12-19 01:42:59 +01:00
twinaphex
456862089a Get rid of OpenedMode 2017-12-18 22:49:42 +01:00
twinaphex
6aae474026 Get rid of original_path 2017-12-18 22:47:08 +01:00
twinaphex
650b454e7b Buildfix 2017-12-18 16:07:52 +01:00
Alberto Fustinoni
8a226e3d51 Removed dependency on file_path 2017-12-18 22:35:54 +09:00
twinaphex
b144f717e2 Add file header include 2017-12-17 16:15:28 +01:00
Alberto Fustinoni
c6ad4b9c92 Bugfix 2017-12-17 17:40:44 +09:00
twinaphex
c11a85405c Cleanups 2017-12-17 02:29:51 +01:00
twinaphex
36d33b2334 Update 2017-12-16 14:45:56 +01:00
twinaphex
f9fd587119 Update API 2017-12-16 14:21:47 +01:00