3DFX emulation

Discussion of development and patch submission.
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: 3DFX emulation

Post by omarsis81 »

SarahWalker wrote:Rev 557 adds support for the fancy Quantum 3D V1 boards with twin TMUs.
OMG! Excellent job! Thank you
RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Post by RetroGIG94 »

omarsis81 wrote:
SarahWalker wrote:Rev 557 adds support for the fancy Quantum 3D V1 boards with twin TMUs.
OMG! Excellent job! Thank you
I have a question, what is a TMU?
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: 3DFX emulation

Post by omarsis81 »

RetroGIG94 wrote: I have a question, what is a TMU?
https://en.wikipedia.org/wiki/Texture_mapping_unit
RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Post by RetroGIG94 »

So who's tweaking the TMU?
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Post by leilei »

2 TMUs is exciting development. Don't clutter this thread with small questions a little research effort can answer (as well as an eventual lego creator ad nauseum derail)
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Post by leilei »

Since the paletted tmu multitexture combine artifact with UnrealEngine was mentioned as a driver issue I've curiously tried to add Voodoo2 support to see if it was any better there. What follows is a patch that adds a non-working Voodoo2 card (it can install, but it cannot detect nor initialize in either Windows nor DOS). Needs way more effort (the required new FIFO stuff is what's probably killing it)

Reading the cvg/gpci.c in the glide source was a little help but still didn't get far with it so this patch here's just a curiosity. Gross, naive guesswork inside

And before it's spammed no even with finished Voodoo2 emulation, this will not get Lego Creator to work either as that game is literally an implemented D3DRM-using ActiveX object in a VisualBasic 5 applet depending on Windows GDI to draw itself
Attachments
voodoonumber2.patch
(20.46 KiB) Downloaded 616 times
User avatar
SarahWalker
Site Admin
Posts: 2053
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Post by SarahWalker »

I am working on actual Voodoo 2 emulation at the moment. Got this far, only partly implemented CMDFIFO so no games running yet.
pcem_voodoo2.png
pcem_voodoo2.png (42.33 KiB) Viewed 29431 times
RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Post by RetroGIG94 »

I have a question, what is that option that says "Both" ? And what does the Advance and Utility have?
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Post by leilei »

"Both" is a combobox for picking which API you want to control refresh rate / gamma overrides for (Glide/Direct3D)

"Advanced" is a dialog with a bunch of checkboxes mostly dealing with mipmaps, SLI or memory per TMU (limiting to 2mb for some V1 game compatibility), as well as a checkbox to slap a big VOODOO2 logo on your desktop

"Utility" is a basic 3dfx driver cleansweep program.
RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Post by RetroGIG94 »

Also I have another question, does sci-tech display docter work on PCem?
User avatar
SarahWalker
Site Admin
Posts: 2053
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Post by SarahWalker »

Voodoo 2 is good enough for Glide/OpenGL games now :
pcem_alice_voodoo2.png
pcem_alice_voodoo2.png (539.83 KiB) Viewed 29307 times
Curiously, the Direct3D games I've tried seem to render without any textures.
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Post by leilei »

Does the texture coordinates still bug out when you set r_primitives to 2 in Q3 engine games? It does that on the V1's GL ICD and leads to artifacts like this, and I don't have a V1 IRL and my V2's fried so I can't doublecheck this. Doesn't happen on V3 though, and r_primitives 0 (default) should use 2's method if it detects compiled vertex array extensions, leading the renderer to draw with a single glDrawElements for best performance, and the bugging out seems to depend on how many different surfaces are on screen
Attachments
pcemalice.jpg
pcemalice.jpg (123.09 KiB) Viewed 29296 times
User avatar
SarahWalker
Site Admin
Posts: 2053
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Post by SarahWalker »

Yes, this seems to work okay on V2.
RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Post by RetroGIG94 »

Is voodoo 2 a direct3d compatible card?
User avatar
SarahWalker
Site Admin
Posts: 2053
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Post by SarahWalker »

RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Post by RetroGIG94 »

SarahWalker wrote:http://www.google.com
I did some research on it's specs and it's a "Full-screen, 3D-Only accelerator, works with another 2D or 2D/3D VGA card through a VGA pass-through cable. Picture softened slightly by analogue VGA pass-through cable." so it is a Direct 3D compatible graphics card.
RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Post by RetroGIG94 »

leilei wrote:Since the paletted tmu multitexture combine artifact with UnrealEngine was mentioned as a driver issue I've curiously tried to add Voodoo2 support to see if it was any better there. What follows is a patch that adds a non-working Voodoo2 card (it can install, but it cannot detect nor initialize in either Windows nor DOS). Needs way more effort (the required new FIFO stuff is what's probably killing it)

Reading the cvg/gpci.c in the glide source was a little help but still didn't get far with it so this patch here's just a curiosity. Gross, naive guesswork inside

And before it's spammed no even with finished Voodoo2 emulation, this will not get Lego Creator to work either as that game is literally an implemented D3DRM-using ActiveX object in a VisualBasic 5 applet depending on Windows GDI to draw itself
Well I was looking at system requirements on the back of my cd case of Lego Creator and it's GPU requirement says that it requires a Direct3D compatible graphics card with 800x600 16-bit color and I researched one of the Voodoo 2 specs that it has 135 MHz RAMDAC, dithered 16-bit (65536 color) display and it has support for game development tools including Gemini OpenGVS, Multigen, GameGen, SGI Open GL, Glide, Direct 3D, Mini GL and Autodesk 3D Studio under DOD, Win 32 and IRIX.

And I am here to address if the Voodoo2 has met the GPU requirements, well I have tested the game before on PCem with the voodoo1 on hardware mode and it gave me like choppy framerate it might be one of the voodoo1's limitations. I am just curious is the voodoo 2 a display driver as it seen as one in the windows 95/98 device manager?
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Post by leilei »

leilei wrote: And before it's spammed no even with finished Voodoo2 emulation, this will not get Lego Creator to work either as that game is literally an implemented D3DRM-using ActiveX object in a VisualBasic 5 applet depending on Windows GDI to draw itself
which implies reliance on a primary video device (also driving the windows desktop), of which Voodoo Graphics nor Voodoo 2 isn't capable of doing in any form. I added this small bit in hopes of some courtesy to keep the thread clean from being derailed into yet another impossible Lego Creator support thread (when I know for a fact that it won't work with the real card due to how the program was designed as it strictly uses Direct3D in a window)

Unread persistent question PMs trashed.
User avatar
ender
Posts: 51
Joined: Tue 14 Oct, 2014 12:51 pm

Re: 3DFX emulation

Post by ender »

There actually was a beta Voodoo2 driver for Windows 2000 which let you use a Voodoo2 to run a secondary monitor, but I have no idea if that supported windowed 3D acceleration (the driver only supported DX - it had no glide/OpenGL support).
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Post by leilei »

That's more from the doubt of the then Windows 2000 RC builds not having support for passthrough secondary video. That's all been since sorted out since the official Win2k release though; the only real video card screwed by this in the end is Fury Maxx (a double-stuf(tm)'d Rage 128 Fury)

also besides, the 2nd monitor scenario wouldn't work for lego and pcem anyway, due to the whole can't primary a v2 caveat
RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Post by RetroGIG94 »

Well with a Voodoo Banshee would run that game properly because of it's graphics chip capably accelerated DirectDraw and supported all of the Windows Graphics Device Interface (GDI) in hardware, with all 256 raster operations and tertiary functions, and hardware polygon acceleration.

I found this information here.
https://en.wikipedia.org/wiki/3dfx_Interactive
User avatar
SarahWalker
Site Admin
Posts: 2053
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Post by SarahWalker »

Voodoo 2 emulation added at rev 562. Probably a few bugs, and some unimplemented bits, but it seems to work okay with most games that I've tried.
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: 3DFX emulation

Post by omarsis81 »

A million thanks Sarah! I believe this is the best add-on for the the next release of PCem!
May I ask on what are you going to work now? Just curious
User avatar
SarahWalker
Site Admin
Posts: 2053
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Post by SarahWalker »

Trying to make everything faster, probably...
RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Post by RetroGIG94 »

So Sarah not to sound like I am rushing you or anything but, how is development on "Voodoo banshee"?
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Post by leilei »

First bug/unimplemented feature: Q3's overbrights/brightness/gamma doesn't work on V2. 3dfxvgl. Using that official "Voodoo2 DX7 Beta" driver with GL ICD 1.1.0.

Second bug: In 3dmark2001 there's low mips shown for the onscreen display and the sponsor banners which I don't recall happening on the actual hardware. Happens only in Car Chase though
Attachments
pcem3dmark2001.png
pcem3dmark2001.png (170.76 KiB) Viewed 28935 times
Last edited by leilei on Sun 23 Oct, 2016 2:50 am, edited 2 times in total.
User avatar
SarahWalker
Site Admin
Posts: 2053
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Post by SarahWalker »

RetroGIG94 wrote:So Sarah not to sound like I am rushing you or anything but, how is development on "Voodoo banshee"?
It isn't. Don't ask me that question again.
User avatar
SarahWalker
Site Admin
Posts: 2053
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Post by SarahWalker »

Rev 564 should fix Q3A's gamma/brightness.
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Post by leilei »

The Voodoo2 might have a FIFO command to disable the 4x1 screen filter. I remember 3dfx's GL ICD doing that (particularly the V2 - it didn't do this on V3)

Bordered edge texels on repeating textures aren't interpolated.

Tribes has a bug that draws only half of the triangles including all 2d triangles, and will eventually freeze. A similar bug also occurs if you use a MesaFX ICD with Q3. (3dfx icd is fine)

Evolva's pips for the other genos flciker.

Serious Sam will screw up all texture coords and head into poor performance as soon as a 3d viewport in the menu system or NETRISCA happens.

UnrealEngine1 has combine bugs with alphatest textures in maps. The hanging cables in DM-Phobos in Unreal Tournament and the ladders in Deus Ex are fine examples. They appear invisible, or appear barely visible and looking like the bug below

There's a funky Half-Life alpha combine bug with the decals. posting a screenshot for posterity since it looks cool and can be considered a work of art
hlv2combinebug.jpg
hlv2combinebug.jpg (113.04 KiB) Viewed 28922 times
reminds me of the artifacts i've had when making 8-bit software colored lighting years ago. Iirc I fixed it with some bitshift
ImageImage

and finally, there's strange slowness (on the v2's side) going on when a paletted+index texture is rendered. The q3ctf2 scene rendered in Q3V gets 1fps where it should be 22fps (at least)
pcemv2q3v.jpg
pcemv2q3v.jpg (86.85 KiB) Viewed 28633 times
User avatar
SarahWalker
Site Admin
Posts: 2053
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Post by SarahWalker »

Revs 570-573 should fix (some of) the alpha combine bugs. Hopefully.
Post Reply