VOGONS


First post, by Titus03

User metadata
Rank Newbie
Rank
Newbie

I found some good information on the topic of this thread from both readme.txt-files, both readme.fx-files and these (1, 2, 3) older threads. They were more into covering of how to get QDOS or Q2DOS running on real Voodoo-hardware. Maybe it's time for a DOSBox-thread as well.

I've been trying to get QDOS and Q2DOS working with Windows-version of DOSBox with 3Dfx OpenGL.

So far, I have tried:

DOSBox SVN Daum 20150125
DOSBox-X 20180418-235049
DOSBox ECE r4095

I've been using SVN Daum -build for many years with NASCAR Racing 2 50th Anniversary Special Edition and Tomb Raider without problems.

I have included these in *.conf-files:

[pci]
voodoo=auto

[glide]
glide=true
splash=false

I've been using nGlide as my wrapper with SVN Daum -build.

I'm aware that all DOSBox-builds do not support 3Dfx OpenGL, so I need confirmation here: is there an build or builds that support it?

You guessed right: none of my tests gave positive results. Here are some problems I have encountered so far:

DOSBox SVN Daum 20150125

I have done all the settings as guided in the sources above. glide3x.dxe (CVG) was detected by SVN Daum -build. I have tested both Mesa and Sage OpenGL-renderers.

Q2DOS error.jpg
Filename
Q2DOS error.jpg
File size
315.98 KiB
Views
5665 views
File license
Fair use/fair dealing exception

refgl::R_SetMode() - invalid mode (This happened on every resolution I've tried. I took a screenshot with larger resolution only to show longer list from the console output.)

DOSBox-X 20180418-235049 & DOSBox ECE r4095

With these two builds, things were a lot worse.

Both builds:

After running QDOSFX.EXE, an error message appeared: "Error: Couldn't lock text and data"

After running Q2.EXE, an error message appeared: "NO PACKET DRIVER FOUND.", before I put GLIDE2X.OVL into game main directory.

After putting GLIDE2X.OVL into main directories of the three games, including "NASCAR 50th":

(SVN Daum uses GLIDE2X.OVL from it's main directory.)

DOSBox ECE:

After running GNS3DFX.BAT, an error message appeared: "Microsoft Visual C++ Runtime Library: Runtime error!"

DOSBox-X:

After running GNS3DFX.BAT, an error message appeared: "glidedll:Warning, using default LFB address 0x60000000!"

For QDOSFX.EXE and Q2DOS.EXE, GLIDE2X.OVL made no difference.

I remembered to change this line in *.conf-files:

[code][pci]
voodoo=opengl[/code]

Conclusion:

Does any DOSBox-build actually support 3Dfx OpenGL? Or, have I missed something, some unnoticeable option perhaps? Is it the same on Windows / Linux / MacOS X?

Thanks.

EDIT(S): Marked with italic text style.

Last edited by Titus03 on 2018-04-30, 16:18. Edited 3 times in total.

- Titus03 -

Reply 1 of 22, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

It's important to note that Daum has been abandoned by it's maintainer and is unlikely to see any further improvement whereas both DOSBox-X and ECE are maintained by people who are active on this forum. If you want to, you can probably PM them about how you can help squash this issue.

All hail the Great Capacitor Brand Finder

Reply 2 of 22, by zirkoni

User metadata
Rank Member
Rank
Member

Works fine here:
YDGhAGkm.png

This is my own DOSBox build with various patches. I think the 3Dfx chip emulation patch is needed, the glide wrapper patch won't work.
Latest Q2DOS version, using the voodoo\sst1\glide3x.dxe glide driver (copy it in the same directory as q2.exe).
My batch file to start the game:

SET PATH=%PATH%;C:\PATH\DOSLFN
doslfn.com

imgmount d "G:\CDImages\Quake 2\cd.cue" -t cdrom
q2.exe

Easy peasy lemon squeezy.

https://youtube.com/@zirkoni42

Reply 3 of 22, by Marty2dos

User metadata
Rank Newbie
Rank
Newbie

I tried in my build and using voodoo\sst1\glide3x.dxe too and works.

Attachments

  • Aufnhame1227.jpg
    Filename
    Aufnhame1227.jpg
    File size
    87.88 KiB
    Views
    5577 views
    File license
    Fair use/fair dealing exception

Reply 4 of 22, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

How fast its running with yours builds?

Its running in old Gulikoza and Yng.. build but its slow at Core i7 4770S.. i would say 15 FPS at 640x480.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 5 of 22, by zirkoni

User metadata
Rank Member
Rank
Member
timedemo 1
demomap demo1.dm2

Gives me an average fps of 24.5 on an Intel i5 4th gen mobile CPU with integrated graphics.
Most of the time the fps seems to be much higher but falls way down (<10 fps) on scenes with lots of action (like at the end of the demo with the explosions).

https://youtube.com/@zirkoni42

Reply 6 of 22, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
zirkoni wrote:

Most of the time the fps seems to be much higher but falls way down (<10 fps) on scenes with lots of action (like at the end of the demo with the explosions).

That's a real issue with kekko 3Dfx voodoo1 chip emulation on DOSBox. According to him, not all 3Dfx pixel blending operations are accelerated by OpenGL, but no one has any clues how to avoid that so that perhaps games can be tweaked to avoid such performance pitfalls. There are 2 explosion scenes in Quake2 demo1 that one can observe such hiccups. Unfortunately, kekko doesn't seem to be around to improve his implementation further to achieve close to full OpenGL acceleration with advanced shaders.

It's kinda short-sighted that QDOS/Q2DOS developed the 3Dfx Glide driver with static linking to Glide libs. Should they opt for linking with GLIDE2X.OVL, then the game will be able to take advantage of Glide pass-through under DOS which modern Glide wrappers such as dgVoodoo2 would be able to completely accelerate Glide rendering with Direct3D10 pixel shaders.

Reply 7 of 22, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie
kjliew wrote:

It's kinda short-sighted that QDOS/Q2DOS developed the 3Dfx Glide driver with static linking to Glide libs. Should they opt for linking with GLIDE2X.OVL, then the game will be able to take advantage of Glide pass-through under DOS which modern Glide wrappers such as dgVoodoo2 would be able to completely accelerate Glide rendering with Direct3D10 pixel shaders.

Yeah but it would mean Windows 9x pseudo Dosbox or Dosbox on Xp+.. i just wanted to try it to check Dosbox performance, but primary target of this port was/should be pure Dos and maybe, maybe some super hero will write glide wrapper for it, we discussed it just yesterday..
Glide for non 3Dfx cards for pure Dos exists or not?

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 8 of 22, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
ruthan wrote:

Yeah but it would mean Windows 9x pseudo Dosbox or Dosbox on Xp+..

No, no, linking with GLIDE2X.OVL is the right way to go. It will still work for pure DOS with real 3Dfx hardware. Nothing will be missed by switching static linking to dynamic linking with GLIDE2X.OVL. The latter simply gives another option of running Glide APIs without the needs of real 3Dfx hardware or emulation of 3Dfx hardware. Emulating Glide APIs is more efficient than emulating 3Dfx hardware.

Reply 9 of 22, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Ok thanks for explanation.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 10 of 22, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
kjliew wrote:

It's kinda short-sighted that QDOS/Q2DOS developed the 3Dfx Glide driver with static linking to Glide libs. Should they opt for linking with GLIDE2X.OVL, then the game will be able to take advantage of Glide pass-through under DOS which modern Glide wrappers such as dgVoodoo2 would be able to completely accelerate Glide rendering with Direct3D10 pixel shaders.

Well, it's not like the developers of Q2DOS are dead. Maybe you can message them and work with them to change it over to dynamic linking. I think the only reason why it was static linked was that they didn't know how to set up their build system to create a dynamically linked build (my memory from past discussions states that you *have* to use Watcom/OpenWatcom compilers to do so, but I could be mistaken.)

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

Stiletto

Reply 11 of 22, by Maraakate

User metadata
Rank Oldbie
Rank
Oldbie

Glide2x.ovl is not a DJGPP compatible binary. This needs to stop. Every now and again someone who is clearly misinformed things this is some glide-related project. The glide3x (notice 3!) is compiled from the source. Those DXEs are the DJGPP compatible binaries that Mesa for DOS needs to talk to a 3dfx card. Glide wrappers are not going to work. That it works at all on DOSBox is a side-effect. We will not ever, ever support Q2DOS on DOSBox or other emulators. It is meant for real hardware. If you really want the features there is Q2DOS for Windows and now it has 64-bit Windows bianries as well. The new Windows builds now even have borderless windows and MSAA support. Stop wasting time trying to emulate it as it's going to run slow and we are not interested in supporting it.

Reply 12 of 22, by neozeed

User metadata
Rank Newbie
Rank
Newbie

Keep in mind that we chose GCC as it is a well rounded compiler that supports dynamic libraries which is a an integral part of quake 2. The real target was always physical machines the amount of time we wasted booting DOS on P2 and higher machines to make sure it runs is .. too damned high.

I for one wouldn't want to try to rebuild it all statically in watcom to support OVL or what ever 16bit nonsense just isn't going to happen.

Honestly backporting all the changes to Windows (which is already done) gives for an overall better experience much like crispy chocolate doom.

I haven't been even to work on any of this 3d stuff as I don't even have the right hardware myself.

I guess if someone has source to the overlays is really good with 80386 & Assembly. But really for that much effort it's better spent getting the hardware, or just running the Win64 build which soars.

Reply 13 of 22, by neozeed

User metadata
Rank Newbie
Rank
Newbie

If you really want to mess with it grab Pharlap TNT. You should be able to use that with watcom and Visual C++ and try to link whatever weird overlays or whatever.

Reply 14 of 22, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
Maraakate wrote:

Glide2x.ovl is not a DJGPP compatible binary. This needs to stop. Every now and again someone who is clearly misinformed things this is some glide-related project. The glide3x (notice 3!) is compiled from the source. Those DXEs are the DJGPP compatible binaries that Mesa for DOS needs to talk to a 3dfx card.

Ah... I see, thanks for the clarification, so the glide3x.dxe is actually "sort of" DLL in DJGPP flavor for MESA 3D to talk to the 3Dfx cards. Then I think it is quite easy to produce a version of glide3x.dxe guest wrapper for the Glide pass-through interface in DOSBox and QEMU. I am curious about the Glide APIs level used in the DXE. Does it really use Glide3 APIs or just Glide 2.4x APIs?

I absolutely agree that Watcom C is a piece of crap compared to GCC, that I wish I will never ever have to deal with it again. I had no choice to look at it for supporting DOS Glide pass-through in QEMU. Other than GLIDE2X.OVL, all the rest of QEMU Glide pass-through including the guest wrapper DLLs for Windows work with MinGW/GCC. The later should be an easy port for DJGPP DXE.

Reply 15 of 22, by Maraakate

User metadata
Rank Oldbie
Rank
Oldbie
kjliew wrote:
Maraakate wrote:

Glide2x.ovl is not a DJGPP compatible binary. This needs to stop. Every now and again someone who is clearly misinformed things this is some glide-related project. The glide3x (notice 3!) is compiled from the source. Those DXEs are the DJGPP compatible binaries that Mesa for DOS needs to talk to a 3dfx card.

Ah... I see, thanks for the clarification, so the glide3x.dxe is actually "sort of" DLL in DJGPP flavor for MESA 3D to talk to the 3Dfx cards. Then I think it is quite easy to produce a version of glide3x.dxe guest wrapper for the Glide pass-through interface in DOSBox and QEMU. I am curious about the Glide APIs level used in the DXE. Does it really use Glide3 APIs or just Glide 2.4x APIs?

I absolutely agree that Watcom C is a piece of crap compared to GCC, that I wish I will never ever have to deal with it again. I had no choice to look at it for supporting DOS Glide pass-through in QEMU. Other than GLIDE2X.OVL, all the rest of QEMU Glide pass-through including the guest wrapper DLLs for Windows work with MinGW/GCC. The later should be an easy port for DJGPP DXE.

Not sort of. DXE is DLLs for DOS with DJGPP. It is really glide3x and addresses the card directly via initialization. The source code to glide3x has been available for years and dborca ported the driver to DJGPP as well as MesaFX.

Reply 16 of 22, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

Maraakate, sorry, that came out wrong. I did not mean to imply that you'd be required to support any such derivative of your project, only that it might be worth asking if the people involved with Q2DOS were interested in helping. I think you've made your answer clear. If anyone ever attempts to make a dynamic-linked version of Q2DOS and a Glide2x.DXE/Glide3X.DXE wrapper (or converts it over to Watcom/OpenWatcom .OVL files), it'd clearly not be supported by you.

Let's face it, there's no new Glide-using software these days, so the question of "can we get it to work within emulation? can we get it to work with a Glide wrapper?" was bound to be asked eventually. I wasn't aware that it was being asked all that frequently yet, at least, not here, but maybe I missed some discussion on the matter. I apologize.

... and Neozeed, thank you for your comments. 😀

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

Stiletto

Reply 17 of 22, by Maraakate

User metadata
Rank Oldbie
Rank
Oldbie

Q2DOS is mostly me and Sezero. Neozeed worked on initial porting efforts with me and once we got it into a playable state Sezero joined in. But, none of us are interested in supporting or developing a glide3x.dxe wrapper. You will have to contact a glide wrapper author. Since DJGPP and glide3x are open source they should be able to make something work.

Also Q2DOS is already dynamically linked so I'm not sure what you are referring to here. The glide3x.dxe is a DLL. The ref_gl drivers are DLLs. The game modules are DLLs. Just think DXE == DLL.

Reply 18 of 22, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

FYI, I recompiled QEMU 3Dfx Glide3x guest wrapper with DJGPP/DXEGEN. This should work for all DJGPP DOS ports that use MesaFX/OpenGL for 3D acceleration in DOS. For those interested, check out Topic 67127 and download GLIDE3X.DXE from there to try it out on QEMU 3Dfx.

Reply 19 of 22, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Some benchmarks numbers would be nice.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.