VOGONS


dgVoodoo 2 for DirectX 11

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 80 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

It's strange. I haven't got any crash with KQ Mask Of Eternity and 2.15.

I examined the crash point 0x522ed1. It's in the game's executable, not in the wrapper. The only pointer pushed from the wrapper to the game is the lfb lock pointer, I think. So, if the crash is caused by the wrapper then only this is what can be bad. But I put a breakpoint to that address to try to figure out what the game is accessing there. It seems it's not the lfb because there were strings nearby at that address, and, accessing logic does not suggest accessing of graphical data (there were no 'for' cycle like code around).
But of course, cause of the crash can be indirect and complicated, and can be caused by the wrapper somehow.

If you just replace glide2x.dll with 2.14, it works ok? Just to make sure.

Reply 84 of 3949, by robertmo

User metadata
Rank l33t++
Rank
l33t++

When you start JetFighter FullBurn and go Training you can cycle views with * and backwards with shift-*
Some views have graphical glitches at the bottom of the screen on real voodoo card, but they are not visible with your wrapper. As you say dgvoodoo tries to be very accurate, so i wonder why those glitches are not visible and also if the fix is not badly affecting other games.

Other thing is I wonder why the screen is blinking so much with xcar and burnout when you hit esc to show exit menu.

Reply 85 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

this one is still broken
POD_P4AMD_Patcher

Thanks, I will fix that if I still have that file. Maybe it's not too important, I wonder if anybody needs it. 😊

Some views have graphical glitches at the bottom of the screen on real voodoo card, but they are not visible with your wrapper. As you say dgvoodoo tries to be very accurate, so i wonder why those glitches are not visible and also if the fix is not badly affecting other games.

Hmm.. could you post a screenshot about that glitches?
Anyway, I didn't write dgVoodoo according to the original driver source (except for Napalm features), so it's not accurate in that respect, I must admit. 😦

This can be because of a bug in the original driver of a given version, or a hw limitation, I think. It could be something like the Tomb Raider shadow problem: it works on an original hw afaik, but it needs a little adjusting 😀 in a wrapper and this one must be because of an erroneous hw register updating in the orig driver.
Another case is clearing/locking the lfb: depending on a given card architecture (like tiled/nontiled video memory, SLI mode, etc) it runs on different code paths. Seeing that in the driver source, imho it's a complete horror. 😖 (I'm curious how 3Dfx would have maintained the code if they had survived.)

Other thing is I wonder why the screen is blinking so much with xcar and burnout when you hit esc to show exit menu.

Damn, it must be a bug. I will check it.

Reply 86 of 3949, by robertmo

User metadata
Rank l33t++
Rank
l33t++
Dege wrote:

Other thing is I wonder why the screen is blinking so much with xcar and burnout when you hit esc to show exit menu.

Damn, it must be a bug. I will check it.

not sure as it doesn't happen on real voodoo1 but something similar happens on real voodoo2.

as for jetfighter you may see it when using latest ykhwong's dosbox build with following settings:
voodoo=opengl
glide=emu

Reply 87 of 3949, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
Dege wrote:

this one is still broken
POD_P4AMD_Patcher

Thanks, I will fix that if I still have that file. Maybe it's not too important, I wonder if anybody needs it. 😊

Yes, I think people still need it.

Attached ver. 2.0, can't remember if there's newer.

Attachments

  • Filename
    POD_P4AMD_Patcher.zip
    File size
    14.57 KiB
    Downloads
    145 downloads
    File comment
    Planet Of Death (POD) Patcher for Pentium 4 & AMD Athlon processors (v2.0)
    File license
    Fair use/fair dealing exception

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 88 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

Thanks for the file, Stiletto! I didn't have it... 😦
Now I've fixed the broken link.

Yes, I think people still need it.

When I last tried the last version I had, it didn't work. So, I had to switch to 16bit color mode to test POD. That's why I thought it was useless.

Last edited by Dege on 2013-07-10, 20:56. Edited 1 time in total.

Reply 89 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

as for jetfighter you may see it when using latest ykhwong's dosbox build with following settings:
voodoo=opengl
glide=emu

To be honest, I don't really understand what "Glide" and "Voodoo" config sections control exactly in Ykhwong's DosBox build.
Voodoo only affects the emulated Voodoo1 hardware? If it does, it implies that internal emulation has OpenGL support?

BTW: I experienced worse Glide performance in some cases with dgVodoo with Ykhwong's. For example, Extreme Assault is unequivocally slower than with Gulikoza's build. I don't know what's the reason, maybe exception handling is slower in general in Ykhwong's build.

Reply 90 of 3949, by robertmo

User metadata
Rank l33t++
Rank
l33t++
[pci]
# voodoo: Enable VOODOO support.
# Possible values: false, software, opengl, auto.

voodoo=auto

Above is kekko/wd's patch. It is dosbox's internal voodoo card emulation. Hence it allows Direct 3D and OpenGL support and everything real card has inside dosbox. The settings are:
false - emulation turned off
software - dosbox emulates voodoo using computer's CPU
opengl - dosbox emulates voodoo using computer's gfx card for only some effects . Other effects are still done by CPU. (hence it is slower than gulikoza's patch described later)
auto - uses opengl when it is available. When opengl is not available on your computer it uses software

[glide]
# glide: Enable glide emulation: true,false,emu.
# lfb: LFB access: full,full_noaux,read,read_noaux,write,write_noaux,none.
# OpenGlide does not support locking aux buffer, please use _noaux modes.
# splash: Show 3dfx splash screen (requires 3dfxSpl2.dll).

glide=emu
lfb=full
splash=false

This is gulikoza's passthrough patch enchanced by ykhwong to allow both: gulikoza's patch and kekko/wd patch working together. Gulikoza's patch uses external wrapper.

emu - uses kekko/wd's patch
true - uses gulikoza's passthrough to external voodoo wrappers
false - don't know (didn't bothered to check). But I guess it turns off guli's or both patches
lfb setting is for gulikoza's patch only i guess.

Reply 91 of 3949, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
Dege wrote:
:happy: Yes, something like that...! Or, I pushed myself back. […]
Show full quote

😀 Yes, something like that...! Or, I pushed myself back.

Further investigating the 3Dfx driver, I got to the following:
Original OpenGL driver is not a pure OpenGL->Glide3 Napalm wrapper, unfortunately (as for Windows). OpenGL uses the SURFACE extension. The problem is that surface implementation is only partial in Glide3, creating and releasing surfaces is implemented via DirectDraw. So that, surface extension functions operate on ddraw surfaces in (Win) Glide3. It's something like that 3Dfx display driver has different components (GDI, DDraw, Glide, OpenGL) but the boundaries between run on bad places. 😀 (Well, actually it's not true. Obviously they wanted to avoid duplicating surface management codes. It's is the same in nowadays display drivers, OpenGL renders on DDraw surfaces on Windows.)

So that, since 3Dfx OpenGL driver depends on its own ddraw and glide3 components, it makes it impossible to use it via a Glide wrapper. Unless a mini-ddraw -> D3D11 wrapper is also provided... 😁

But it doesn't worth the effort. Writing another component just to have an OpenGL 1.1 -> Glide3 (and mini ddraw) -> D3D11 wrapping? It makes no sense but programmatically would be nice... 😁

Sorry for the lot of technical blabla. I just wanted to say that OpenGL->Glide3 wrapper won't work.

Hah, this would be awesome.

What about MesaFX (Mesa with 3dfx driver)?
http://www.falconfly.de/mesafx.htm
http://www.3dfxzone.it/dir/3dfx/mesafx/
Mesa can often be used to replace opengl32.dll

The same programmer also made a Glide3x for DOS, although all that seems to be around are libraries, no test binaries 😀

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 92 of 3949, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

Other testing possibilities:
Some other 3dfx tech demos
http://www.falconfly.de/artwork.htm
60Hz/30Hz/15Hz [Windows-Glide]
ATB TV [Windows-Glide]
BorgCube [Windows-Glide]
DemoRoom [Windows-Glide]
Donut [Windows-Glide]
Race [Windows-Glide]
Surf [Windows-Glide]
Grand Bleu [Windows-Glide]
Valley of Ra [Windows-Glide]
Wizard Tower [Windows-Glide]
ATB Minigl demos [Windows-Glide]
T-Buffer/KittyHawk/Museum/RocketBurger [Windows-Glide] [requires supporting some VSA-100 Glide3 extensions]

Back when I did Glide wrapper testing, I always used to test "Wizard of Tower" and "Grand Bleu" versus my actual Voodoo3 3000 PCI.

You may also want to test demoscene demos:
Nature - by Vertigo (for DOS and Windows): http://www.pouet.net/prod.php?which=2181
To Be Continued... - by Saw Tooth Distortion (Windows): http://www.pouet.net/prod.php?which=18874
Virhe - by maturefurk (Windows): http://www.pouet.net/prod.php?which=1084
Trip - by KFMF (DOS): http://www.pouet.net/prod.php?which=2844
Dimension by - gods (DOS): http://www.pouet.net/prod.php?which=2182
Žertva - by C.P.U. & Musica Vitae (Windows): http://www.pouet.net/prod.php?which=24753
Scorpion - by Niels & MalcolmZ (Windows): http://pouet.net/prod.php?which=30133
shortcut - by buckshag (DOS): http://www.pouet.net/prod.php?which=17221
codename chinadoll - by katastro.fi (Windows): http://pouet.net/prod.php?which=119

And screensavers like:
Blob Cosmos (Windows) - http://www.3dfxzone.it/files?object=3dfx&objid=635
VoodooLights/Cosmos (Windows) - http://www.3dfxzone.it/files?object=3dfx&objid=663

And indie apps like:
3dxmrph (Windows?) - https://sourceforge.net/p/openglide/bugs/10/
SceneTest (Windows) - http://www.mcmanis.com/chuck/3d/

Another odd thing I have is suprgrab, a 3dfx screenshot utility and snap3dfx, a frontend for it. However, it requires sst1init.dll and Glide 2.1.1.
http://www.vogonsdrivers.com/getfile.php?fileid=493

There is a lot to test:
http://www.zeus-software.com/downloads/nglide/compatibility
But the above are reasonably obscure...

Last edited by Stiletto on 2020-09-11, 04:25. Edited 1 time in total.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 93 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

But it doesn't worth the effort. Writing another component just to have an OpenGL 1.1 -> Glide3 (and mini ddraw) -> D3D11 wrapping? It makes no sense but programmatically would be nice... 😁

Hah, this would be awesome.

Well, yes, it would. At least Glide3 Napalm would have a great tool to test, in form of OpenGL. I think writing a DDraw wrapper is not a work of 5 minutes, but since I realized that a DDraw component would have another use than just enabling OGL wrapping, I'm getting thinking about developing it. (But the problem is that it's being a hot summer now, just can't sit in front of my computer too long now, +I should do some development on the tracker decoder as well. 😊 )
It's common for Windows games using Glide to use DDraw first for menus, or starting screens, etc, and just switching to Glide after that.
It's not just that low-res DDraw screws up my desktop, I hate it so much, but also prevents getting Glide to work properly in some games.
For example, NFS3 HP can't be run in true Glide full screen because of DDraw, Esoteria does not work as well, because of DDraw, and so on.
(Altough I was managed to make Esoteria run but only in windowed mode. But, I'm going to post a list of apps/games (and results) I've ever tested with dgVoodoo 2.2, soon.)

If I treat dgVoodoo as a graphic driver, it could be augmented with a DDraw component. But I'm unsure how to handle that, because it shouldn't be copied as freely as Glide components, not to mention copying it to the system folder... 🤣 Installer could also not be done because of that, so, how to explain it to a user what to do with that?...

What about MesaFX (Mesa with 3dfx driver)?

Mesa is a software implementation of OGL, if I know it right?
Only 3Dfx OGL can be used to wrap it through dgVoodoo.

Reply 94 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

Ah, Robertmo, thanks for the detailed explanation! 😎
I didn't know that kekko/wd's internal emulation has OpenGL support! That's why I misunderstood something in voodoo support...
By the way, kekko/wd emu is a great stuff, tried it. It's a real deep chip emu... I was a little envy when saw the results. 😊

Reply 95 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

I promised you reporting the results, so (it's not a full test-list yet but only a short reply):

Again, thanks for the extensive list!!

Some other 3dfx tech demos
http://www.falconfly.de/artwork.htm [(All seem to work fine)
60Hz/30Hz/15Hz [Windows-Glide] (Works fine)
ATB TV [Windows-Glide] (? Uh, couldn't identify this one at the moment)
BorgCube [Windows-Glide] (Works fine)
DemoRoom [Windows-Glide] (Works fine)
Donut [Windows-Glide] (Works fine, glide2/3)
Race [Windows-Glide] (Works fine)
Surf [Windows-Glide] (Works fine (glide 2/3), altough no specular highlight with glide3 napalm, will be investigated)
Grand Bleu [Windows-Glide] (Works fine)
Valley of Ra [Windows-Glide] (Works fine)
Wizard Tower [Windows-Glide] (Works fine)
ATB Minigl demos [Windows-Glide] (Should try it, don't know yet)
T-Buffer/KittyHawk/Museum/RocketBurger [Windows-Glide] [requires supporting some VSA-100 Glide3 extensions] (Works fine, but with some problem with Napalm: it can crash sometimes for some reasons; AA is ok, but I don't see any difference between spatial AA/no spatial AA)

To Be Continued... - by Saw Tooth Distortion (Windows): http://www.pouet.net/prod.php?which=18874 (need to grow the stack of TBC.exe to avoid crash, apart from that works fine)
Virhe - by maturefurk (Windows): http://www.pouet.net/prod.php?which=1084 (Works fine)
Trip - by KFMF (DOS): http://www.pouet.net/prod.php?which=2844 (Works fine apart from some DosBox performance glitch at a point. Also needs unforced vSync to play smoothly.)
Dimension by - gods (DOS): http://www.pouet.net/prod.php?which=2182 (Works fine but seem to quit to early. Missing files?)
Žertva - by C.P.U. & Musica Vitae (Windows): http://www.pouet.net/prod.php?which=24753 (Inner church rendering has some misrendered polygons. Must be a bug in Glide3, will be investigated, otherwise ok)
Scorpion - by Niels & MalcolmZ (Windows): http://pouet.net/prod.php?which=30133 (Works fine)
codename chinadoll - by katastro.fi (Windows): http://pouet.net/prod.php?which=119 (works fine, but this demo is very GPU-intensive for some mythical reasons)
shortcut - by buckshag (DOS): http://www.pouet.net/prod.php?which=17221 (Works, but there is a problem *)
Nature - by Vertigo (for DOS and Windows) - http://www.pouet.net/prod.php?which=2181 (Works, but there is a problem *)

* These demos stall at a point. This means rendering gets very very slow, almost down to zero speed, for example Nature's loader strip and fading screen at the beginning. This is because these demos drives the 3Dfx card at max speed in a crazy way and the emulation can't keep step. Back a few month ago I was pondering how to workaround these cases (since the vast majority of operations made on the 3Dfx card could be simply wasted) but found no way since then. Probably it would also be a problem on a real 3dfx card with a modern 3.2GHz CPU.
Either you sweat that 10 minutes (that needed to get over those renderings) out or try some tricking with pausing/unpausing DosBox if you want to see the demos. Apart from that, other parts works ok, but unforced vSync is need o play them smoothly.

And screensavers like:
Blob Cosmos (Windows) - http://www.3dfxzone.it/files?object=3dfx&objid=635 (Works fine)
VoodooLights/Cosmos (Windows) - http://www.3dfxzone.it/files?object=3dfx&objid=663 (Works fine)

And indie apps like:
3dxmrph (Windows?) - https://sourceforge.net/p/openglide/bugs/10/ (Works fine)
SceneTest (Windows) - http://www.mcmanis.com/chuck/3d/ (Can't remember if I was managed to get it to run)

Another odd thing I have is suprgrab, a 3dfx screenshot utility and snap3dfx, a frontend for it. However, it requires sst1init.dll and Glide 2.1.1.
http://www.vogonsdrivers.com/getfile.php?fileid=493 (Can't remember if I was managed to get it to run)

There is a lot to test:
http://www.zeus-software.com/downloads/nglide/compatibility (Partly tested, but games works fine)

Reply 96 of 3949, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
Dege wrote:

I think writing a DDraw wrapper is not a work of 5 minutes, but since I realized that a DDraw component would have another use than just enabling OGL wrapping, I'm getting thinking about developing it.
...
If I treat dgVoodoo as a graphic driver, it could be augmented with a DDraw component. But I'm unsure how to handle that, because it shouldn't be copied as freely as Glide components, not to mention copying it to the system folder... 🤣 Installer could also not be done because of that, so, how to explain it to a user what to do with that?...

Previous work in this area includes Wine (of course) and DXGL, but both wrap to OpenGL. 😀
https://www.williamfeely.info/wiki/DXGL

You may also want to look at Sol's DXWrapper, though he's working on Direct3D-to-Direct3D, he knows a lot about DirectDraw wrapping from making ddhack. He's a forum member here too.

Full list:
DirectX to DirectX:
ddwrapper - http://bitpatch.com/ddwrapper.html
DiabloPatch - http://strangebytes.com
dxwrapper - https://github.com/jarikomppa/dxwrapper

DirectX to OpenGL:
cnc-ddraw: http://hifi.iki.fi/cnc-ddraw/
ddhack: https://code.google.com/p/ddhack/ and http://sol.gfxile.net/ddhack/
DXGL: https://www.williamfeely.info/wiki/DXGL
WineD3D: http://www.nongnu.org/wined3d/ and http://wiki.winehq.org/WineD3DOnWindows

One solution I've seen with WineD3D to the DLL name issue:
https://forums.virtualbox.org/viewtopic.php?f=6&t=25939

Other apps "hook" the game(s) in question instead. Examples:
bosloader - ronwarez.com/bosloader/‎
D3DWindower - http://forum.xentax.com/viewtopic.php?f=33&t=10242
ddfix - http://www.ttlg.com/forums/showthread.php?t=121449
dxtweaker - http://downloads.guru3d.com/DirectX-Tweaker-d … nload-1052.html
DxWnd - http://sourceforge.net/projects/dxwnd/
ie-ddrawfix - http://bitpatch.com/ie_ddrawfix.html

(Mind you, not all apply to your idea...)

Anyhow, this is travelled ground, so feel free to look at the competition 😁
--------

Mesa is a software implementation of OGL, if I know it right?
Only 3Dfx OGL can be used to wrap it through dgVoodoo.

MesaFX is a version of Mesa with integrated 3dfx hardware acceleration (using Glide, if I recall correctly.) - effectively an open-source 3dfx OpenGL ICD (not counting the leaked 3dfx sourcecode). By chaining MesaFX and dgVoodoo you'd have (yet another) OpenGL-to-Direct3D wrapper, passing through Glide along the way: OpenGL-to-Glide-to-Direct3D. 😀

From the author:

MesaFX improves 3dfx hardware performance with both old and current OpenGL based games allowing to get more speed playing by higher frame rates and more visual quality by 32 bit color depth (this last on VSA-100 cards only).

http://www.falconfly.de/mesafx.htm

Anyhow, just a weird idea I had.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 98 of 3949, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
Dege wrote:

I promised you reporting the results, so (it's not a full test-list yet but only a short reply):

Again, thanks for the extensive list!!

Thank you!!

ATB TV [Windows-Glide] (? Uh, couldn't identify this one at the moment)

Hmm?

16 Apr 1997 3dfx Demo "ATBTV" 8470k ZIP - http://www.falconfly.de/downloads/3dfxdemo-atbtv.zip 3dfx Demo, shows off animated tex […]
Show full quote

16 Apr 1997
3dfx Demo "ATBTV"
8470k ZIP - http://www.falconfly.de/downloads/3dfxdemo-atbtv.zip
3dfx Demo, shows off animated textures and simple lighting styles
16 Apr 1997
Arcade Toolbox Runtime Drivers
(essential Files)
567k ZIP - http://www.falconfly.de/downloads/3dfxdemo-files.zip
All of above Voodoo1 Demos require these Files
Copy into respective Directory if needed...
Arcade Toolbox Runtime Drivers
(Full Installer)
1290k ZIP - http://www.falconfly.de/downloads/atbrd.zip
All of above Voodoo1 Demos require these Files
Copy into respective Directory if needed...

Surf [Windows-Glide] (Works fine (glide 2/3), altough no specular highlight with glide3 napalm, will be investigated)

Great! One of my favorites!

T-Buffer/KittyHawk/Museum/RocketBurger [Windows-Glide] [requires supporting some VSA-100 Glide3 extensions] (Works fine, but […]
Show full quote

T-Buffer/KittyHawk/Museum/RocketBurger [Windows-Glide] [requires supporting some VSA-100 Glide3 extensions] (Works fine, but with some problem with Napalm: it can crash sometimes for some reasons; AA is ok, but I don't see any difference between spatial AA/no spatial AA)
...
To Be Continued... - by Saw Tooth Distortion (Windows): http://www.pouet.net/prod.php?which=18874 (need to grow the stack of TBC.exe to avoid crash, apart from that works fine)
...
Dimension by - gods (DOS): http://www.pouet.net/prod.php?which=2182 (Works fine but seem to quit to early. Missing files?)
shortcut - by buckshag (DOS): http://www.pouet.net/prod.php?which=17221 (Works, but there is a problem *)
Nature - by Vertigo (for DOS and Windows) - http://www.pouet.net/prod.php?which=2181 (Works, but there is a problem *)

Interesting! I will have to ask nGlide author Zeus if he saw the crashes/AA issues. I sent this list to him before. 😉

I think demos (of all kinds) tend to be really good and interesting tests of Glide wrappers 😉

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto