SarahW
6df66c59fb
Add Voodoo 3 emulation.
2020-11-14 19:33:53 +00:00
SarahW
52a79fbb57
Add option for Voodoo to use 4 render threads.
2020-11-14 19:33:52 +00:00
SarahW
133f19fe39
Implement Banshee tiled surfaces
2020-11-14 19:33:29 +00:00
SarahW
19a5dfa579
Added Voodoo Banshee emulation.
...
Known issues :
- Tiled framebuffer layout is not yet implemented. This causes horizontal
offsets in some 2D 16bpp stuff (eg FMV in Tomb Raider 2, UI in Expendable)
- Fog is broken and currently disabled for Banshee
- Possibly at least 1 race in 2D blitter emulation
- A few things not yet emulated - overlay filters, some (rarely used) 2D
blitter functions
2020-11-14 19:33:28 +00:00
SarahW
41238b3c85
Split vid_voodoo.c into multiple source & header files.
2020-11-14 19:33:04 +00:00
SarahW
3cbcf5f575
Optimise Voodoo FIFO processing of framebuffer / texture / register
...
writes. Speeds up games that write large amounts of data to the FIFO,
eg menus in Expendable.
2020-11-14 19:33:04 +00:00
SarahW
bbbbefcd91
Remove broken additional SVGA status print from Voodoo status.
...
Add a newline after the SB status to make SB + Voodoo read better.
2020-04-16 20:06:17 +01:00
SarahW
5ef5fc1f98
Tweak Voodoo swap pending code. Fixes hang in Carmageddon 3DFX version.
2019-05-05 17:08:17 +01:00
SarahW
0a5198828a
Latch Voodoo vertices at the start of triangle_setup() before sorting to prevent any races.
2019-04-17 18:04:05 +01:00
SarahW
b105445a52
Correct Voodoo hvRetrace register. Fixes intermittent hangs on Voodoo mode setting.
2019-02-04 21:32:25 +00:00
SarahW
42d62925c3
Fix compiler warnings on ARM builds.
2018-08-02 22:09:18 +01:00
SarahW
a7d006b637
Rewrote timer code.
...
The new code is based on timestamps, rather than delays. This eliminates the
need to update every timer in timer_process(), which cost a non-trivial amount
of CPU time on low-end machines.
This involved changes to every user of the timer code, so this change almost
certainly introduces bugs.
2018-08-02 22:06:10 +01:00
SarahW
7644c771de
Voodoo 2D blitter now marks destination areas as dirty when writing to the front buffer. Fixes FMV in Urban Chaos.
2018-04-17 17:17:39 +01:00
SarahW
4cea5cc59f
Implemented Trio64 polygon fill commands. Fixes issues with Paintbrush on Windows 3.1.
2018-04-12 21:26:45 +01:00
SarahW
ae52810cc8
Separate Voodoo command written count from main thread and FIFO thread. Fixes hangs in some games.
2017-11-26 17:01:35 +00:00
SarahW
e80921f29d
Fix Voodoo caching of textures ending at the exact end of texture memory. Fixes FMV in Return to Castle Wolfenstein.
2017-11-22 21:00:42 +00:00
SarahW
a1fc8da064
Fixed clipping rectangle on Voodoo, Return Fire II now works.
2017-11-20 20:48:27 +00:00
SarahW
a8ce4ebc86
Voodoo now clamps texture caching to valid LOD levels.
2017-11-11 20:50:51 +00:00
SarahW
d497fb04fc
Increase size of Voodoo texture cache to account for split LODs. Fixes crashes on emulator exit with some games (eg Powerslide).
2017-11-03 21:17:24 +00:00
SarahW
c14bacd783
Added support for multiple texture base addresses on Voodoo. Fixes bad textures in Powerslide.
2017-11-03 21:16:49 +00:00
SarahW
b0215f309a
Voodoo output now works when only the secondary card has output enabled.
2017-08-16 20:09:00 +01:00
SarahW
bb64507b7b
Fix strncat() use in voodoo_add_status_info().
2017-08-16 19:38:24 +01:00
SarahW
6589952e9a
Fixed Voodoo 2 non-SLI TMU config.
2017-08-15 20:53:15 +01:00
SarahW
9a63308ffd
Added Voodoo SLI emulation.
2017-08-15 20:26:06 +01:00
SarahW
ae04fd4ba1
Unknown Voodoo registers writes with CMDFIFO enabled now log warnings rather than fatal()ing. Jane's WWII Fighters now runs.
2017-08-10 21:49:44 +01:00
SarahW
182d22cb95
Fix unused variable in vid_voodoo.c.
2017-06-13 21:33:18 +01:00
pcem_emulator
7fe91626d6
Added new GUI based on wxWidgets. Patch from bit.
2017-05-29 15:38:48 +01:00
pcem_emulator
d2245f2d45
Ported configuration manager to Allegro GUI
2017-05-15 22:03:38 +01:00
SarahW
d366da23ec
Windows config dialogue now only allows PCI graphics cards on PCI systems.
2017-05-02 15:15:45 +01:00
SarahW
3a12ca8882
Implement Voodoo vRetrace register.
2017-04-28 20:50:36 +01:00
SarahW
2b892d2a7a
Fixed compiler warnings for Windows builds.
...
Added -Werror to Windows makefiles.
2017-04-11 19:34:41 +01:00
SarahW
f2a42ccf7e
Voodoo screen filter improvements. Patch from leilei.
2017-02-22 20:49:54 +00:00
SarahW
d20868f930
Add read of more Voodoo registers. Tomb Raider demo not works.
2017-02-22 19:49:34 +00:00
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