VOGONS


First post, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I'd like to get Carmageddon working with hardware acceleration on a Matrox G200 in DOS. The Max-Pack version of Carmageddon comes with a 3dfx.exe file which works great with my Voodoo3. What will it take to get hardware acceleration working with the G200 in DOS? I have Win95c installed with DirectX6. Is there a version of psVoodoo which will work?

Plan your life wisely, you'll be dead before you know it.

Reply 1 of 17, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

As far as I know, with all my digging with wrappers... can't be done natively in DOS. It just doesn't have the generic hardware acceleration support for 3D cards. The only common 3D gaming hardware-accelerated rendering APIs that the Matrox G200 supported was Direct3D and OpenGL. You can't run Direct3D games in DOS and OpenGL support in DOS is generally only for software renderers, or rarely, 3dfx Glide renderers.

3D Rendering APIs supported in MS-DOS (General):
- 3Dfx Glide (3dfx Voodoo series)
- Creative CGL (Creative 3D Blaster VLB or PCI)
- NVidia NVLib (NVidia NV1)
- S3 S3D (S3 Virge series)
- Matrox MSI (Matrox Mystique)
- Rendition Speedy3D (Rendition Verite series)
- PowerVR PowerSGL (PowerVR Series 1)
Furthermore some games have hardware acceleration through RenderWare, BRender or RenderMorphics engines built into the game.
Notable exception: ATI 3D C Interface / ATI 3D CIF (ATI 3D Rage series) - Windows only, as far as I know.

Looking at the above APIs, you'd say "well, the fastest most-powerful card there supported in DOS would then be something 3dfx-based!" ... yes.

psVoodoo, for instance, wraps Glide to Direct3D in Windows only. Wrappers like GliDOS and dgVoodoo, however, can wrap from a Windows XP (or even Windows 2000?) NTVDM window ("Command Prompt") and create a Direct3D or OpenGL window.

I'm sorry but you're going to need to raise your specs. Either replace the G200 with a Voodoo card, or run it all in Windows 2000+, or run the software rendering in DOS. Matrox G200 does not support any DOS-compatible 3D API. For what it's worth, I have no idea what 3D APIs Carmageddon supports in true DOS but I assume the choices are software rendering or 3dfx Glide. 😉

Hope this post makes sense, I'm a bit sleep-deprived right now...

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

Stiletto

Reply 2 of 17, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Thank you for the detailed reply. I can raise the specs slightly. What if we increase the requirement from DOS to Win95c? The Max-Pack version of Carmageddon has a Win95 version for 3dfx cards. Is there a D3D wrapper which will work with Win95c and DX6?

Plan your life wisely, you'll be dead before you know it.

Reply 3 of 17, by Sammy

User metadata
Rank Oldbie
Rank
Oldbie

I use DgVoodoo in Win98Se with my GeForce Fx5200 for Carmageddon..

Reply 4 of 17, by idspispopd

User metadata
Rank Oldbie
Rank
Oldbie

So you need a Glide wrapper that works with a Matrox G200 in Win95. You should look at one of the old Glide wrappers, modern Glide wrappers are meant for modern video cards.
I don't know if there is a list of those wrappers here (maybe you could read through the "The Wrapper Collection Project" thread), but http://www.voodoofiles.com/type.asp?cat_id=14 offer some pointers. Don't know if those wrappers are the best of the old bunch.

Reply 5 of 17, by filipetolhuizen

User metadata
Rank Oldbie
Rank
Oldbie
feipoa wrote:

Thank you for the detailed reply. I can raise the specs slightly. What if we increase the requirement from DOS to Win95c? The Max-Pack version of Carmageddon has a Win95 version for 3dfx cards. Is there a D3D wrapper which will work with Win95c and DX6?

It's not a Win95 version for 3dfx, just the DOS version running inside DOSBox with a glide wrapper. There are only DOS .EXEs inside their folders and none is for Windows, except DOSBox itself.

Reply 6 of 17, by Zup

User metadata
Rank Oldbie
Rank
Oldbie

There was a windows version of Carmageddon, but I don't remember if it had 3D acceleration.

I have traveled across the universe and through the years to find Her.
Sometimes going all the way is just a start...

I'm selling some stuff!

Reply 7 of 17, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie

Well, the main difference between Win95 and 3dfx versions of Carmageddon - smokes and shadows aren't transparent in the Win95 version.

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).

Reply 8 of 17, by filipetolhuizen

User metadata
Rank Oldbie
Rank
Oldbie
Zup wrote:

There was a windows version of Carmageddon, but I don't remember if it had 3D acceleration.

DirectDraw only.

Reply 9 of 17, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

I'd like to say that I'm less sleep-deprived now, but I'm not.

To begin:
Widening your supported specifications to Windows 9x gives you the ability to use wrappers that support DOS command-prompt windows in Windows. As of this writing, that includes:
- dgVoodoo 1.x
- Glidos (which uses OpenGlide) **$10.00 trialware / shareware

These substitute GLIDE.OVL (Glide 2.1x) / GLIDE2X.OVL (Glide 2.4x) (DOS Glide "overlay" files) with their own to call out to their Windows Glide wrapper GLIDE.DLL / GLIDE2X.DLL.

- Carmageddon is surely a Glide 2.4x game.

This is a requirement of yours because, as mentioned in the above posts, the Windows version of Carmageddon renders to DirectDraw only. While this is technically "hardware accelerated", it's not using a 3D API such as 3dfx Glide found in the DOS version of Carmageddon.

To be pedantic:
- Only dgVoodoo 1.31 and newer, all versions of dgVoodoo 2.x, Glidos/OpenGlide at some version if I recall correctly, and nGlide 0.98 and newer support Glide 2.1x as far as I know.
- Glide 3.x wrappers include nGlide 0.92 and newer, all versions of dgVoodoo 2.x, all versions of hacktarux/Glitch64, all versions of SvensWrapper, eVoodoo 3.0 and newer, Zeckensack's GlideWrapper 0.78 and newer and the ancient Let's GliD3D 0.24. (SvensWrapper and Zeckensack's mainly only support Diablo 2, Glitch64 mainly only supports Glide64, not sure eVoodoo 3.x was mainly tested on Glide64, FIFA, NBA Live, Test Drive 5, and Lewpy's plugin for PSEmu Pro, and GliD3D is suspected to only have alpha support only capable of logging calls.)
Also, if I recall correctly Glide 3.x was intended to be Windows-only, though libraries for other operating systems including DOS were later released due to its being made open-source. Accordingly there's never been a GLIDE3X.OVL (although there is a Glide 3.x library for DOS).

First question: Direct3D vs. OpenGL support.
I do not remember which is faster/better supported by the Matrox G200. (Some cards drivers are more optimized for certain APIs.) Assuming that you are correct and Direct X 6 is ideally supported, this "technically" rules out Glidos because Glidos only came bundled with OpenGlide as its Glide wrapper. dgVoodoo supported Direct3D.

However: Experimentally you can replace the GLIDE2X.DLL file in Glidos with an alternative wrapper file. It is designed so that the wrapper can be replaced (either psVoodoo or OpenGlide) so it may well work with others. How settings files for Glide wrapper DLLs interfere with this process is not 100% clear and dependent on the wrapper. You'd probably have to ignore some of the Glidos configuration tool and rely on the replacement wrapper's tool/settings, if it has some. Swapping out the DLL file for an alternative wrapper would be quite unsupported by Glidos, however..

Next question: Windows 95 or Windows 98 support
- dgVoodoo 1.x supports Windows operating systems as low as Windows 95. (Dege is not specific about which revision Windows 95.) Yes, this means any version from 1.0 to 1.50Beta2. (1.50Beta3, a work-in-progress version for which we have source, was never compiled.)
- Glidos supports Windows operating systems as low as Windows 95, although documentation is terrible. Its archived website from 2001:
http://web.archive.org/web/20011204040021/htt … www.glidos.net/
advertises version 1.7's newest feature as being "Windows 95-friendly". Prior versions (Glidos 1.2, Glidos 1.5, and perhaps others) are then presumed to be not. The only person who would recall which versions were more or less 9x compatibile would be the author, Paul Gardiner. At some point in its development, I believe Windows 9x would not be supported as Glidos's user interface/frontend, included DOSBox build, psVoodoo and many other features took it away from that direction. There is probably a "first" and "last" version of Glidos for Windows 95, Windows 98, Windows Me, etc. which may all be slightly different. It is not documented and will be left to us hobbyists to determine, most likely.
Problems with installer documented: glidos on windows 95: a no?
Tweaks for Glidos v1.31 documented: Windows 95/98/ME support is back and some Descent fixes
Final statement from author regarding Win 9x seems actually positive (as far as I know): GliDOS and windows 95

Next question: DirectX 6 support.
Here we can start widening to other Glide 2.4x wrappers, because while Glidos or dgVoodoo 1.x can handle the GLIDE.OVL / GLIDE2X.OVL passthrough, they do not support DirectX 6. Whether they will support other wrappers needs to be determined.

What you might be familiar with:
- dgVoodoo 1.x: Windows 9x-XP with some Vista support, but requires DirectX 7 and/or DirectX 9. The final versions added the DirectX 9 renderer (published 12/15/2002 - 06/03/2007)
- dgVoodoo 2.x: Windows Vista+-Windows 8.1+, targets DirectX 10.1/11 or higher. (published 01/09/2013 - 04/14/2014+) (No longer comes with GLIDE.OVL / GLIDE2X.OVL substitute)
- Glidos: Windows 9x+-Windows 8.1+, unknown OpenGL (due to its using OpenGlide) and I am not sure which version is minimally required by OpenGlide. OpenGL 1.x to be sure. (published 07/22/2001 or earlier - 04/12/2013+)
- nGlide: Windows 9x+-Windows 8.1+, DirectX9+ (published 11/07/2009 - 04/16/2014+)
- psVoodoo: Windows XP+-Windows 8.1+, primarily DirectX 9 based (published 03/29/2006 or earlier - 02/08/2013+) - in theory could also be Windows 9x compatibile

and of course SvensWrapper and hacktarux/Glitch64 are Glide 3.x only, SvensWrapper mainly for Diablo 2:
- SvensWrapper: Windows XP+, unknown OpenGL (published 04/18/2004 - 12/14/2010+)
- hacktarux/Glitch64: Windows XP+, unknown OpenGL (published 04/29/2004 or earlier - 12/29/2011)

so... what now?

To go lower in DirectX support: You'll have to use wrappers from the UltraHLE era and may only support the Glide features that UltraHLE used. If they fully support Carmageddon's use of Glide, it will be a miracle.

There is one oddball wrapper which wraps to Rendition Verite's RRedline for Windows, named BigRRed. First published 06/06/1998 or earlier, and arguably the first.

So, the remaining Windows Direct3D Glide 2.4x wrappers:
- Dolphin: Windows 9x, unknown DirectX (published 07/05/1998), predecessor to DirectGlide, single-app wrapper
- glid3d: Windows 9x, DirectX 6.0+ (published 02/01/1999 or earlier)
- xglide: Windows 9x, DirectX 6.0+ (published 02/05/1999 - 03/19/1999)
- Clide: Windows 9x, DirectX 6.0+ (published 02/13/1999 - 04/05/1999)
- muglide: Windows 9x, DirectX 6.0+ (published 02/14/1999)
- DirectGlide: Windows 9x, DirectX 6.0+ (published 02/17/1999-02/27/1999)
- xgl200: Windows 9x, DirectX 6.0+ (published 02/17/1999 - 07/05/1999)
- MGlide: Windows 9x, DirectX 6.0+ (published 03/06/1999 or earlier - 08/18/2000, versions up to 1.246G uses DirectX 6.0, final version 1.246H from 8/18/2000 requires DirectX 7+)
- Unified: Windows 9x, DirectX 6.1+ (published 05/12/1999 - 09/08/1999) *installer has lock to certain Creative graphics cards - currently being hacked
- evoodoo: Windows 9x-Windows XP, DirectX 6.0+ (published 01/30/2001 or earlier - 11/12/2003) *Glide2X support 01/30/2001 - 05/23/2003

I remember hearing good things about: evoodoo, MGlide, xgl200, Unified
Besides these, it is unknown which is best at supporting things beyond UltraHLE.

Windows OpenGL Glide 2.4x wrappers, for sake of argument:
- GL-Glide: Windows 9x, unknown OpenGL 1.x (published 02/05/1999)
- gl2ide: Windows 9x, unknown OpenGL 1.x (published 02/16/1999 - 03/10/1999)
- glidegl64: Windows 9x, unknown OpenGL 1.x (published 02/23/1999 - 02/26/1999)
- OpenGlide: Windows 9x and up, unknown OpenGL (published 03/04/1999 or earlier - 04/01/2004) *and up to 05/02/2011 through Glidos
- BoostWrapper: Windows 9x, unknown OpenGL 1.x (published 01/13/2000)
- gl2ideal: Windows 9x+, unknown OpenGL 1.x (published 02/14/2000 - 06/30/2001)
- Zeckensack GlideWrapper: Windows 98-Windows XP, unknown OpenGL (published 05/06/2002 - 06/19/2005) *versions from 0.78 posted 03/05/2004 and newer with Glide3x support

I remember hearing good things about: OpenGlide, Zeckensack GlideWrapper
Besides these, it is unknown which is best at supporting things beyond UltraHLE.

I hope you guys now see the point to The Wrapper Project. Now we just need to get it to release at this point... 😀 (If we ever think we just can't handle it, we'll probably hand it off to the pcgamingwiki guys...)

FYI: Glidos had trouble supporting Carmageddon in Glidos's earlier versions...

Off-topic: There's also a Glide2x "translator" to Glide3x which comes with a Glide driver package called GlideXP. In theory, it could be tested with Glide 3.x-only wrappers like SvensWrapper or hacktarux/Glitch64. In practice, I do not think this has ever been tried, and may not work. GlideXP's Glide2x support is also known to be incomplete.
You can also, of course, chain wrappers: Glide 2x-> OpenGL -> Direct3D using wrappers that wrap OpenGL to Direct3D like GLDirect, and so on, however the deeper you go the more likely you are to run into problems.

Summary:
- use dgVoodoo 1.x or Glidos to use the command-prompt "DOS Box" from within Windows 9x and be able to wrap DOS Glide games.
- try substituting Glidos's Glide2x.dll wrapper with Direct3D 6 wrappers: evoodoo, MGlide, Unified, xgl200, or OpenGL wrappers: OpenGlide, Zeckensack GlideWrapper
- if you can't get that to work, use the wrappers that come with dgVoodoo or Glidos and replace the Matrox G200 with a more powerful card or something that supports Glide natively such as a 3dfx Voodoo card.
- either that, or use the DirectDraw Windows version, which should run on the Matrox G200 card without issue.

These generic instructions for wrapping DOS Glide games to Windows will work with everything except statically compiled DOS Glide games.

Note to self: Apparently I hit on a few old talking points without realizing it: Weird wrapper tricks

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

Stiletto

Reply 10 of 17, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
feipoa wrote:

What will it take to get hardware acceleration working with the G200 in DOS?

To REALLY answer your question:

This would require:
- Creating DOS OpenGL hardware accelerated drivers for Matrox G200 (there is some Matrox G200 documentation released that could help with this, and some you can get from Linux, but the rest would have to be reverse-engineered from Windows drivers)
- Create a new game engine for Carmageddon that renders to OpenGL in DOS and can use hardware accelerated drivers, ideally with software rendering fallback. Essentially recreating everything in the game aside from its art assets. See: http://carmageddon.wikia.com/wiki/OpenC1 , http://www.1amstudios.com/projects/openc1/ for a modern take on this.

Or a more direct route:
- Creating a DOS GLIDE2X.OVL substitute that rendered directly using Matrox G200 hardware-accelerated features in DOS. Much less intrusive, but the skills required are extremely high. You'd basically need to create hardware-accelerated drivers anyways. Dege and/or Paul Gardiner would be the most likely candidates, but you would probably need to hire and pay them.

Another way of thinking about this: for pure Windows games (which 3dfx Glide Carmageddon is not, though the Windows DirectDraw version of Carmageddon is), you'd need "Wine for DOS" with hardware accelerated graphics support, which doesn't exist. The closest thing is HX-DOS Extender. HX-DOS Extender can run "simple" Windows programs in DOS. The DirectDraw Windows version of Carmageddon is not simple, nor hardware accelerated, nor does HX really handle hardware acceleration of anything.
http://www.xaver.me/drdoswiki/index.php?n=Main.HX-DOS
HX DOS Extender Updated! 3/15/07

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

Stiletto

Reply 11 of 17, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie

NGlide works with Win9x if you have DX9 videocard (GF FX/6xxx, Radeon 9xxx/Xxxx). Tested by myself. 😀 Unfortunately my Radeon X850 PE Agp died from the bad soldering and I not test latest nGlide versions in Win9x.

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).

Reply 12 of 17, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
Gamecollector wrote:

NGlide works with Win9x if you have DX9 videocard (GF FX/6xxx, Radeon 9xxx/Xxxx). Tested by myself. 😀 Unfortunately my Radeon X850 PE Agp died from the bad soldering and I not test latest nGlide versions in Win9x.

Thanks Gamecollector, fixed. However, you would still need to use Glidos to wrap from the DOS command prompt to Windows using its GLIDE2X.OVL files, as far as I know. (If Zeus ever gets bored, he should make his own to join the party, 🤣. To date it's only Dege and Paul who have ever done this, not counting gulikoza's DOSBox Glide wrapper patch.)

NGlide would work as normal on Windows apps though. 😉

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

Stiletto

Reply 13 of 17, by feipoa

User metadata
Rank l33t++
Rank
l33t++

That is a lot of information. Much appreciated.

The version of the Matrox G200 driver I need does not have functioning OpenGL drivers, so any OpenGL-to-Glide wrapper is out. For my hardware, I can only use up to driver version 4.33.

If I upgrade to DirectX7, will I be able to use dgVoodoo with the G200 for wrapping glide to D3D? Will some 1996-1998 era games no longer function after upgrading to DX7 from DX6?

If I am wanting to stick with DX6, it sounds like I will need to experiment with the wrappers in that list you provided.

Plan your life wisely, you'll be dead before you know it.

Reply 14 of 17, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
feipoa wrote:

That is a lot of information. Much appreciated.

You're welcome! I started it, and then I thought that I could maybe use it as a general-purpose article about wrappers, so I put a lot of work into it. 😉
[EDIT] Just made a few more tweaks to clarify some things and add another wrapper to your "to be tested" list.

feipoa wrote:

The version of the Matrox G200 driver I need does not have functioning OpenGL drivers, so any OpenGL-to-Glide wrapper is out. For my hardware, I can only use up to driver version 4.33.

I hope that, if worse comes to worse, you can try newer and better video cards. But I understand the fun of the challenge of working within your limitations. 😉

feipoa wrote:

If I upgrade to DirectX7, will I be able to use dgVoodoo with the G200 for wrapping glide to D3D? Will some 1996-1998 era games no longer function after upgrading to DX7 from DX6?

I have literally no idea. Modern DirectX does software fallback on features the video card doesn't support, but no memories of the DirectX 6 to DirectX 7 era. I know it was a big change for DirectX.... Also no idea how your games might change.

I can tell you articles from the G200 era using Glide wrappers used what was out at the time. Don't know of anyone doing retro video card testing on newer wrappers, in general it is the other way around (old wrappers on newer video cards). You may well be the first.

feipoa wrote:

If I am wanting to stick with DX6, it sounds like I will need to experiment with the wrappers in that list you provided.

Yes. And as our discussion threads go for wrappers (dgVoodoo, RadeonGlide/GlideWrapper, Glidos) Carmageddon is VERY picky and abuses Glide in ways of which those authors weren't aware. Read these for more info:
3dfx/Glide
Zeckensack's Glide Wrapper
dgVoodoo 1 announcement thread
DgVoodoo 1 Discussion Thread
GliDOS
OpenGLide
search.php?st=0&sk=t&sd=d&sr=posts&keywords=c … ageddon+wrapper
Glide Wrapper for Nvidia Cards!

To me, it's really interesting and doing testing of retro wrappers on retro graphics cards should yield interesting (though probably not satisfactory) results. I wish I had the time any more. 😉

Let me know your course of action and I'll try to find the time to make more of The Wrapper Project available.

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

Stiletto

Reply 15 of 17, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Like you, I do not have much time to delve into testing at the moment. I am dealing with contractors at home, which is an absolute nightmare. I will pick this up again when things calm down.

Plan your life wisely, you'll be dead before you know it.

Reply 16 of 17, by Dege

User metadata
Rank l33t
Rank
l33t

However: Experimentally you can replace the GLIDE2X.DLL file in Glidos or in dgVoodoo with an alternative wrapper file. This could break Glidos or dgVoodoo in non-obvious ways: the way the OVL communicates with the DLL had been a closed-source secret until DOSBox released its Glide wrapper patch, and years later when dgVoodoo 1.x went open-source last year. How settings files for Glide wrapper DLLs interfere with this process is not 100% clear and dependent on the wrapper.

It won't work with dgVoodoo. Windows side of the communication is implemented in Glide2x.dll itself so if it's replaced to anything else then Glide2x.ovl speaks into the void. 😀
Glidos worth a try because the server (the part responsible for the communication) is separated from the Glide library that it drives, so it may work with any Glide2x impl.

Reply 17 of 17, by Stiletto

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

However: Experimentally you can replace the GLIDE2X.DLL file in Glidos or in dgVoodoo with an alternative wrapper file. This could break Glidos or dgVoodoo in non-obvious ways: the way the OVL communicates with the DLL had been a closed-source secret until DOSBox released its Glide wrapper patch, and years later when dgVoodoo 1.x went open-source last year. How settings files for Glide wrapper DLLs interfere with this process is not 100% clear and dependent on the wrapper.

It won't work with dgVoodoo. Windows side of the communication is implemented in Glide2x.dll itself so if it's replaced to anything else then Glide2x.ovl speaks into the void. 😀
Glidos worth a try because the server (the part responsible for the communication) is separated from the Glide library that it drives, so it may work with any Glide2x impl.

Thanks for the clarification, Dege! I've updated my post, plus another one I made previously in another thread. 😀

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

Stiletto