3DFX emulation

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

Re: 3DFX emulation

Postby omarsis81 » Sat 01 Oct, 2016 9:26 pm

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

Postby RetroGIG94 » Sat 01 Oct, 2016 10:15 pm

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: 542
Joined: Thu 17 Dec, 2015 6:20 pm

Re: 3DFX emulation

Postby omarsis81 » Sat 01 Oct, 2016 11:21 pm

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

Postby RetroGIG94 » Sat 01 Oct, 2016 11:25 pm

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

Re: 3DFX emulation

Postby leilei » Sun 02 Oct, 2016 12:52 am

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: 432
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Postby leilei » Wed 05 Oct, 2016 12:20 am

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 48 times
SarahWalker
Site Admin
Posts: 1325
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Postby SarahWalker » Wed 05 Oct, 2016 8:04 pm

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 4932 times
RetroGIG94
Posts: 92
Joined: Wed 30 Mar, 2016 4:09 am

Re: 3DFX emulation

Postby RetroGIG94 » Fri 07 Oct, 2016 1:01 am

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

Re: 3DFX emulation

Postby leilei » Fri 07 Oct, 2016 4:08 am

"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

Postby RetroGIG94 » Fri 07 Oct, 2016 4:55 am

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

Re: 3DFX emulation

Postby SarahWalker » Sat 08 Oct, 2016 8:20 pm

Voodoo 2 is good enough for Glide/OpenGL games now :
pcem_alice_voodoo2.png
pcem_alice_voodoo2.png (539.83 KiB) Viewed 4808 times

Curiously, the Direct3D games I've tried seem to render without any textures.
User avatar
leilei
Posts: 432
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Postby leilei » Sat 08 Oct, 2016 11:38 pm

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 4797 times
SarahWalker
Site Admin
Posts: 1325
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Postby SarahWalker » Sun 09 Oct, 2016 7:28 am

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

Re: 3DFX emulation

Postby RetroGIG94 » Tue 11 Oct, 2016 5:37 pm

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

Re: 3DFX emulation

Postby SarahWalker » Tue 11 Oct, 2016 5:43 pm

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

Re: 3DFX emulation

Postby RetroGIG94 » Tue 11 Oct, 2016 8:04 pm

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

Postby RetroGIG94 » Thu 13 Oct, 2016 3:58 am

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: 432
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Postby leilei » Thu 13 Oct, 2016 4:47 am

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

Postby ender » Mon 17 Oct, 2016 10:42 pm

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: 432
Joined: Fri 25 Apr, 2014 4:47 pm

Re: 3DFX emulation

Postby leilei » Tue 18 Oct, 2016 12:57 am

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

Postby RetroGIG94 » Tue 18 Oct, 2016 2:40 pm

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
SarahWalker
Site Admin
Posts: 1325
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Postby SarahWalker » Sat 22 Oct, 2016 1:43 pm

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: 542
Joined: Thu 17 Dec, 2015 6:20 pm

Re: 3DFX emulation

Postby omarsis81 » Sat 22 Oct, 2016 2:30 pm

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
SarahWalker
Site Admin
Posts: 1325
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Postby SarahWalker » Sat 22 Oct, 2016 2:39 pm

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

Re: 3DFX emulation

Postby RetroGIG94 » Sat 22 Oct, 2016 2:43 pm

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

Re: 3DFX emulation

Postby leilei » Sat 22 Oct, 2016 2:56 pm

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 4436 times
Last edited by leilei on Sun 23 Oct, 2016 2:50 am, edited 2 times in total.
SarahWalker
Site Admin
Posts: 1325
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Postby SarahWalker » Sat 22 Oct, 2016 3:13 pm

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.
SarahWalker
Site Admin
Posts: 1325
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Postby SarahWalker » Sat 22 Oct, 2016 3:29 pm

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

Re: 3DFX emulation

Postby leilei » Sat 22 Oct, 2016 3:31 pm

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 4423 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 4134 times
SarahWalker
Site Admin
Posts: 1325
Joined: Thu 24 Apr, 2014 4:18 pm

Re: 3DFX emulation

Postby SarahWalker » Sun 20 Nov, 2016 5:32 pm

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

Return to “Development”

Who is online

Users browsing this forum: No registered users and 1 guest