Commit graph pcem/src/vid_voodoo.c
Author SHA1 Message Date
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
TomW
90aa13aa29 Voodoo PCI mapping disabled if base address is zero - fixes Voodoo + Sis496/497. 2015-05-31 12:30:52 +01:00
TomW
62b2bf03aa Implemented Voodoo pixel pipeline-processed framebuffer writes - fixes at least Jedi Knight and Populous The Beginning 2015-05-20 20:30:02 +01:00
TomW
226b63d682 Fixed typo in Voodoo alpha combine. 2015-05-14 20:30:15 +01:00
TomW
2c818c4b1b Increased resolution of Voodoo S/T iterators. 2015-05-12 21:28:32 +01:00
TomW
9e9cf8060a Added configurable Voodoo framebuffer and texture memory. 2015-05-11 21:31:04 +01:00
TomW
9954a29348 Improved Voodoo subpixel correction. 2015-05-11 19:48:34 +01:00
TomW
2624745c67 Implemented Voodoo mipmapping. Probably buggy. 2015-05-09 20:03:41 +01:00
TomW
1e5b46c077 Added Voodoo 2x2 dither pattern. 2015-04-29 21:09:17 +01:00
TomW
fe38137074 Fixed Voodoo unfiltered 16-bit alpha-palette textures. 2015-04-28 20:05:19 +01:00
TomW
66d4ac6d9a Voodoo now allows invalid LFB write buffer select - BreakNeck now works. 2015-04-27 20:36:49 +01:00
TomW
b279cb75e8 Voodoo optimisations. 2015-04-27 17:58:44 +01:00
TomW
42155b4c6a Added correct Voodoo dithering. 2015-03-23 21:03:42 +00:00
TomW
d6908a5450 Slight bugfix to Voodoo subpixel correction. 2015-03-22 13:56:03 +00:00
TomW
95dd53e4d7 Implement more faithful Voodoo PCI FIFO emulation - slight slowdown, but fixes issues with Unreal and probably other games. 2015-03-21 20:41:12 +00:00
TomW
883ad5da23 Fixed Voodoo swap count when vsync disabled. Quake III now works. 2015-03-21 11:31:53 +00:00
TomW
708cf896d1 Added usable 3DFX emulation. 2015-03-08 15:55:03 +00:00