Commit graph

1,650 commits

Author SHA1 Message Date
SarahW
ec9ca6c97b Fix missing immediate markers in opcode_deps[] tables. 2020-11-14 19:33:54 +00:00
SarahW
6ead42d868 Fix off-by-one issue with Voodoo clipping. 2020-11-14 19:33:54 +00:00
SarahW
44433fd020 Reset Banshee/V3 2D blitter coordinates on new command start. Fixes
corruption in Winamp.
2020-11-14 19:33:54 +00:00
SarahW
a19829cf11 Add DDC / plug and play monitor support for Mach64VT2. 2020-11-14 19:33:54 +00:00
SarahW
7e2c6a5344 Add DDC/plug and play monitor support to S3 ViRGE. 2020-11-14 19:33:54 +00:00
SarahW
5eb6f4d168 Implement plug and play monitor support on Voodoo Banshee & 3. 2020-11-14 19:33:54 +00:00
SarahW
c9891895da Implement Voodoo CMDFIFO enable bit. 2020-11-14 19:33:54 +00:00
SarahW
d254f41817 Banshee/Voodoo 3 status returns busy when FIFO thread is busy, regardless
of command/cmdfifo/render thread status. Fixes some 2D races where drivers
start to write to framebuffer while (final) 2D blit command is still
running.
2020-11-14 19:33:53 +00:00
SarahW
086287809b Mark Banshee/Voodoo 3 cards as PCI. 2020-11-14 19:33:53 +00:00
SarahW
114cdd7a15 Add VIA Cyrix III CPUs. Note that this is currently limited to 500 MHz,
as Windows 98 won't boot on anything any faster than this. This is most
likely a limitation of the current timer subsystem.
2020-11-14 19:33:53 +00:00
SarahW
2b43125f79 Rename Banshee reference card to match Voodoo 3s. 2020-11-14 19:33:53 +00:00
SarahW
6df66c59fb Add Voodoo 3 emulation. 2020-11-14 19:33:53 +00:00
SarahW
2415d8ad50 Mask Banshee desktop start address correctly. 2020-11-14 19:33:52 +00:00
SarahW
52a79fbb57 Add option for Voodoo to use 4 render threads. 2020-11-14 19:33:52 +00:00
SarahW
dbb10c0894 Don't sample & filter EMU8000 voice if current volume is zero. 2020-11-14 19:33:52 +00:00
SarahW
92e0b78548 Add missing svga_render_null() function. 2020-11-14 19:33:52 +00:00
SarahW
679322882b Add missing svga_render_null() function. 2020-11-14 19:33:51 +00:00
SarahW
f6406c77e5 Add fast path in Banshee overlay render; if overlay is unfiltered and
unscaled then just write straight to destination buffer.
2020-11-14 19:33:51 +00:00
SarahW
2cf57ab8b2 If Banshee video overlay is full screen (as would be the case for
full screen 3D), don't bother rendering the desktop behind it.
2020-11-14 19:33:51 +00:00
SarahW
3e5e519d10 Implement dirty updating on Banshee 16bpp tiled modes 2020-11-14 19:33:51 +00:00
SarahW
e761045e40 Remove unused variables in Banshee. 2020-11-14 19:33:51 +00:00
SarahW
1900499ace Fix "effective clockspeed" display when using Banshee. 2020-11-14 19:33:51 +00:00
SarahW
6a09e9636c Disable a lot of dynarec sanity checks in release builds. 2020-11-14 19:33:51 +00:00
SarahW
25fe224ea9 Add dynarec optimisation for UOP_MOV_IMM, to avoid register allocation
if the destination register won't be immediately used again.
2020-11-14 19:33:50 +00:00
SarahW
0d7103368a Add register rename optimisation to dynarec to eliminate some redundant
UOP_MOVs.
2020-11-14 19:33:50 +00:00
SarahW
cccaf86fd3 Mark some exceptions (mainly v86 related) as 'expected', meaning they
won't cause a code block deletion. This speeds up some v86 code due
to a reduction in code block churning.
2020-11-14 19:33:50 +00:00
SarahW
5a94c78cbb Split up exec386_dynarec() a bit. 2020-11-14 19:33:50 +00:00
SarahW
eb524e6f12 Move trap handling out of main dynarec loop. 2020-11-14 19:33:50 +00:00
SarahW
24d8176594 Reset P6 current ifetch_length on start of code block and on decoder
flush.
2020-11-14 19:33:49 +00:00
SarahW
fb391d2484 Rewrite Voodoo triangle setup vertex selection code. Fixes missing triangles
on Banshee with some D3D games (eg Black & White, Viper Racing)
2020-11-14 19:33:49 +00:00
SarahW
1915149391 Increase Banshee revision to 3, matching my real CL Banshee card. Removes
the need for any fogTable hack, which is in any case inconsistently applied
by drivers and I think may only be needed on pre-production devices.
2020-11-14 19:33:49 +00:00
SarahW
95ccdcae5c Implement bilinear filtering on Banshee video overlay. 2020-11-14 19:33:49 +00:00
SarahW
1ebaa7c640 Banshee 2D blitter should wait for 3D to go idle before starting a
blit. Fixes text in Forsaken.
2020-11-14 19:33:49 +00:00
SarahW
9adb36ece3 Banshee status now returns busy when either of the render threads is
busy. Fixed HUD in Jedi Knight.
2020-11-14 19:33:49 +00:00
SarahW
c9bf81f599 Fix Banshee CMDFIFO base address mask. 2020-11-14 19:33:49 +00:00
SarahW
fccd59ba92 Add Banshee RGB565 undithered overlay format. Currently dithered and
undithered are handled the same.
2020-11-14 19:33:49 +00:00
SarahW
870a19f537 Don't fatal() on unknown Banshee port read/write. Fixes Windows 95
hardware detection.
2020-11-14 19:33:48 +00:00
SarahW
801e560b53 Remove duplicates from Slot 1 CPU list. 2020-11-14 19:33:48 +00:00
SarahW
93c0bc85c7 Mark Banshee mappings as external. Banshee cards now work on GA-686BX. 2020-11-14 19:33:48 +00:00
SarahW
a85f315daf The existing A-Trend Banshee card is AGP, which is not currently emulated.
Replaced with a reference SGRAM PCI card, and added a Creative SDRAM card.
2020-11-14 19:33:48 +00:00
SarahW
2212b9a470 Implement out-of-order CMDFIFO handling on Banshee. 2020-11-14 19:33:31 +00:00
SarahW
8ee4396b4c Fix race condition in Voodoo FIFO code that could cause an 'Unknown fifo
entry' error
2020-11-14 19:33:30 +00:00
SarahW
bb70f4ff0f Re-enable fog on Banshee. 2020-11-14 19:33:30 +00:00
SarahW
21a3a9acec Update Voodoo framebuffer read/write for Banshee. 2020-11-14 19:33:30 +00:00
SarahW
06a07cfcbc Fix off-by-one size error with Banshee overlay. 2020-11-14 19:33:30 +00:00
SarahW
6318624661 Banshee fog table seems to be inverted compared to other Voodoo cards
(hardware bug?). Re-enabled fog.
2020-11-14 19:33:30 +00:00
SarahW
771c5c6ba3 More Banshee host data size tweaking. 2020-11-14 19:33:30 +00:00
SarahW
3040c4e994 Additional Banshee host data size fix. 2020-11-14 19:33:30 +00:00
SarahW
d1f17cd8ae Don't flush Banshee pipeline when reading clipping registers. Fixes
severe slowdown in 3dMark2000 fill rate test.
2020-11-14 19:33:29 +00:00
SarahW
0298d0ffaf Fix uninitialised variable in Banshee texture writes. 2020-11-14 19:33:29 +00:00