Commit graph pcem/src/vid_voodoo.c
Author SHA1 Message Date
SarahW
df5a85d5c2 Force Voodoo buffer recalculation on graphics reset. Fixes menus in System Shock 2. 2017-02-18 13:07:01 +00:00
SarahW
d0c8053b5c Fixed out-of-bounds Voodoo texture address lookup that caused stale texture cache data. 2017-02-09 21:50:47 +00:00
SarahW
f51f0f0d60 Fixed Voodoo 2 setup of W1. Fixes issues with Serious Sam. 2017-02-08 21:48:18 +00:00
SarahW
04c454401f Corrected Voodoo 2 blitter source/dest tiled bits
Chroma test now applied during screen-to-screen blits
Fixes 2D flickering in Star Trek Starfleet Academy
2017-02-06 21:24:16 +00:00
SarahW
577d37b2af Mask Voodoo depth buffer accesses and SGRAM fills correctly.
Bad CMDFIFO packets are now ignored instead of killing the emulator.
NFS III now works on V2 in 1024x768.
2017-02-05 17:25:25 +00:00
SarahW
e6b4f88065 Voodoo only writes to depth buffer when depth buffering enabled, regardless of whether depth writes are enabled or not
V2 clipping coordinates are 12 bits, instead of 10 as on Voodoo Graphics.
V2 block width is 6 bits long.
Battlezone now works at 1024x768 on Voodoo 2.
2017-02-05 16:34:59 +00:00
SarahW
4072dbd26d Fix ordering of components in Voodoo 2 2D blitter chroma range registers. Fixes mouse pointer in Populous : The Beginning. 2017-01-27 20:39:49 +00:00
SarahW
e05f20a372 Mark Voodoo as busy when CMDFIFO is not empty - fixes flickering HUD / other 2D bits in some games 2017-01-26 21:59:14 +00:00
SarahW
6d9624505d Voodoo fast fill command now affected by Y origin bit 2017-01-23 21:04:55 +00:00
SarahW
acb4307954 Voodoo texture cache now handles updates to non-square textures correctly 2017-01-14 20:57:46 +00:00
TomW
939ca35d4b Voodoo filter improvements. Patch from leilei 2016-12-21 12:15:35 +00:00
SarahW
9c1ac5cc37 Implemented Voodoo triple buffering properly 2016-12-17 21:54:44 +00:00
SarahW
bffc0745c9 Fixed off-by-one window size when using Voodoo 2016-12-17 15:40:50 +00:00
SarahW
86ad7c7e0a Marked Voodoo CMDFIFO read/write pointers as volatile - fixes random CMDFIFO and vertex ordering crashes. 2016-12-13 15:37:09 +00:00
SarahW
70d758f0a2 Voodoo LFB word write now supports depth-only data, fixes Episode 1 Racer. 2016-12-13 14:03:54 +00:00
SarahW
6ddc017987 Don't wake up Voodoo FIFO thread on every write, instead add a delay. This prevents the situation where it is woken up for every single access. Major speedup on many 3DFX games. 2016-12-12 21:12:35 +00:00
SarahW
c5889e311f Implemented Voodoo 2 triangle setup cull ping-ponging. Fixes missing triangles in Starsiege Tribes. 2016-11-22 19:42:08 +00:00
SarahW
e162b6166e Voodoo now implements texture RGB as a multiplier input in the colour combiner. 2016-11-20 17:16:00 +00:00
SarahW
7084337906 Voodoo non-recompiler now implements texture alpha reverse blending correctly. 2016-11-20 17:15:18 +00:00
SarahW
de1d72b92b Voodoo non-recompiler now uses correct W coordinate for TMU #1 2016-11-20 17:14:48 +00:00
SarahW
52fd357f3d Voodoo CLUT data can be written via CMDFIFO. 2016-10-22 16:13:42 +01:00
SarahW
396992f102 More accurate PCI timing, mainly for Voodoo. 2016-10-22 16:01:49 +01:00
SarahW
31c311924c Added Voodoo 2 emulation. 2016-10-22 14:18:06 +01:00
SarahW
0b5c3d24ea Added support for Voodoo with 2 TMUs (Obsidian SB50 with Amethyst daughterboard).
As part of this change, Voodoo now converts textures to ARGB8888 and caches ahead of rendering. Minor speedup.
Also fixed Z clamping when depth bias in use.
2016-10-01 16:42:04 +01:00
SarahW
b92634dea6 Added missing Alpha+YIQ texture format to Voodoo.
Added depth source select to Voodoo.
Fixes graphics issues with Requiem : Avenging Angel
2016-08-29 17:29:55 +01:00
SarahW
9f4b159121 Move video blit to seperate thread. 2016-07-18 21:15:32 +01:00
SarahW
17865d84bc If Voodoo FIFO is full and FIFO thread is waiting for swap to complete, process swap immediately. Fixes hangs in Carmageddon and TOCA 2. 2016-05-26 21:38:21 +01:00
SarahW
9970f030c5 Fixed off-by-one error in Voodoo when Y coordinates are reversed. 2016-04-09 20:53:21 +01:00
SarahW
74786231c5 Added Voodoo depth biasing. 2016-04-08 21:40:15 +01:00
TomW
92e45c33e7 Added x86-64 Voodoo recompiler. 2016-03-23 21:16:41 +00:00
TomW
88256eff59 Removed global temporary variables from Voodoo recompiler - fixed noise when using 2 render threads, also speedup. 2016-02-12 21:40:34 +00:00
TomW
231be4ce0e Fixed Voodoo rendering when integer and floating point coordinates are mixed - fixes HUD in Starsiege Tribes, map in NFS II SE and NFS III. 2016-01-14 21:49:36 +00:00
TomW
f6d6f0de9b Added 3DFX recompiler for x86-32. 2-4x speedup over previous code. 2016-01-12 19:37:01 +00:00
TomW
79bf197d34 Don't create Voodoo memory dump in release build. 2015-11-02 18:06:34 +00:00
TomW
ea2898d045 Voodoo now always allocates 4MB for framebuffer memory, though only 2MB may be accessible. Fixes crash in Need For Speed III when using 800x600 (no Z-buffer) with 2MB of framebuffer memory configured. 2015-10-06 21:19:04 +01:00
TomW
9ed4cf8582 Voodoo floating point parameters are converted to fixed point on register write instead of on triangle command. Fixes health bar in Tomb Raider. 2015-10-06 21:07:24 +01:00
TomW
5e08d53c73 Voodoo texture processing now dependent on texturing being enabled in fbzColorPath. Fixes transparency issues in Tomb Raider, might cause speedup in games that use non-textured triangles. 2015-10-04 11:33:13 +01:00
TomW
46ca59f2a6 Fixed race condition in Voodoo FIFO thread. 2015-09-15 20:15:24 +01:00
TomW
77cc248147 Implemented Voodoo performance counters. 2015-09-13 12:10:44 +01:00
TomW
1e4c58fee8 Implemented Voodoo vertical retrace status bit. 2015-09-13 11:42:12 +01:00
TomW
5b1e7aece0 Added simulation of PCI access timing to Voodoo. 2015-08-22 17:03:37 +01:00
TomW
726e3bfcd9 Split Voodoo render thread into FIFO thread and one or two render threads. 2015-08-19 19:21:51 +01:00
TomW
44f80b879e Implemented correct Voodoo pixel clock calculation. 2015-08-08 20:57:17 +01:00
TomW
81d13e37f6 Implemented dirty blitting for Voodoo. 2015-08-06 20:14:08 +01:00
TomW
5be9127d64 Added 3DFX screen filter and gamma correction. Patch from leilei. 2015-07-14 20:42:14 +01:00
TomW
f5a920e2e5 Voodoo buffer swaps now processed when VGA passthrough enabled - fixes Re-Volt. 2015-06-06 14:26:38 +01:00
TomW
a44be6194c Further fixes to framebuffer read hangs in Voodoo - fixes International Rally Championship. 2015-06-05 20:48:29 +01:00
TomW
685e2460d4 Added RGB555 and ARGB1555 LFB formats for Voodoo. 2015-06-04 21:49:09 +01:00
TomW
75fa159caf Reworked Voodoo thread synchronisation, helps performance. 2015-06-01 19:17:26 +01:00
TomW
ca7bd3740b Fixed hang in Voodoo emulation when a framebuffer read occurs while a swap request is pending - fixes Tomb Raider. 2015-05-31 16:43:55 +01:00