This is a guide about the most common Glide wrappers, asks and answers questions, 'Can they coexist together?', 'How do you use one instead of the other?' and then covers use cases with games and DOSBox-X.
What is Glide?
Glide was the API used by old games to send requests to 3dfx graphics cards to make the graphics look pretty and run smoothly as opposed to pixelated and slower, if the game was doing the graphics itself.
What is a Glide wrapper?
Your modern Nvidia/AMD/Intel graphics card is a barely believable pinnacle of engineering magic, able to take DirectX, OpenGL and Vulkan API requests and render graphics at a speed and fidelity that would make Leonardo Da Vinci weep. However when it comes to Glide API requests, it's as dumb as a pile as bricks.
What's needed to make Glide games run on modern hardware is some kind of tool to take Glide requests and convert them into modern DirectX/OpenGL/Vulkan requests, and that's exactly what a Glide wrapper does.
It can be thought of as a wrapping around a Glide game, intercepting Glide API calls and converting them into the modern day equivalent, hence the term wrapper.
The two most popular Glide wrappers are dgVoodoo2 by Dege and nGlide by Zeus. It's worth noting that dgVoodoo2 is not just a Glide wrapper but also converts DirectDraw, D3D3/5/6/7, D3D8 and D3D9 into their modern equivalents, but this article will only be discussing the Glide side of things.
How does nGlide work with old games?
If you download and install nGlide it adds files to Windows folder, effective becoming the 'system' Glide wrapper. It will intercept Glide calls from games no matter where they are installed on your system.
nGlide uses a utility, nGlide configurator to put nGlide config settings in the Windows registry. This means the configuration is global for all games according to this forum message from Zeus. This has important implications going forward.
How does dgVoodoo2 work with old games?
dgVoodoo2 takes a different approach, you download a release as a zip file, unzip it into a folder and then copy the Glide files, config file and config utility into a specific game installation folder.
dgVoodoo2 can be thought of as a game specific or 'local' Glide wrapper that will only be used when the specific game with dgVoodoo2 files, makes a Glide call. Other Glide games will be ignored.
Will nGlide and dgVoodoo2 coexist together?
Yes and quite happily without issue. Assuming nGlide has been installed and dgVoodoo2 was downloaded, a game will use the system Glide wrapper, nGlide by default.
To switch to dgVoodoo2 simply copy the required dgVoodoo2 files to the game folder, configure it and dgVoodoo2 will handle the Glide requests instead. To switch back to nGlide, simply remove the dgVoodoo2 files from the game folder and nGlide will be used by default again.
Can different versions of dgVoodoo2 coexist together?
Yes, and you might want to do this if you had Glide games, FlightSim1 and FlightSim2 which run well under the latest version X. However, the Glide game, SpaceSim doesn't run smoothly or crashes with version X, but ran perfectly well under an earlier version Y.
It should be clear this is possible by:
Downloading version X and Y of dgVoodoo2.
Copy version X files into the FlightSim1 and FlightSim2 folders.
Configure dgVoodoo2 separately for FlightSim1 and FlightSim2.
Copy version Y files into the SpaceSim folder and configure dgVoodoo2 for SpaceSim.
Each game uses its own local Glide wrapper with it's own config. FlightSim1 uses a local version X wrapper, FlightSim2 uses its own local version X wrapper while SpaceSim uses its local version Y wrapper.
Can different versions of nGlide coexist together?
Yes, but it's going to take a bit of management. Most Glide games work perfectly well under the latest version of the Glide wrapper. However there may be a specific game, let's call it FlightSim3 that used to crash less often or perform better with an earlier version of nGlide.
We can download the earlier version of nGlide and instead of running the installer, we can extract the files from the installer, with a utility like 7zip and extract those files into the game folder, creating a local, game specific FlightSim3 nGlide wrapper.
So far, so good, however the nGlide config is global! There aren't a lot of config options so if the local nGlide wrapper works, without changing the config, all good. However, the configurator options changed in later nGlide versions, so if you need to apply some different config options then you'll need to:
Keep a note of the system nGlide config options.
Keep a note of the local, game specific config options.
Apply the local nGlide settings with the local configurator, as and when needed.
Apply the system nGlide settings with the system configurator, as and when needed.
If we want to replace a local nGlide wrapper with a local dgVoodoo2 wrapper, then we have to:
Remove the local nGlide wrapper files from the game folder. (I recommend moving to a different folder, rather than deleting in case you want to go back to the local nGlide wrapper).
Copy the required dgVoodoo2 files into the game folder.
Configure dgVoodoo2.
If we want to replace a local dgVoodoo2 wrapper with a local nGlide wrapper, then we have to:
Remove the local dgVoodoo2 wrapper files from the game folder (or move them to another folder if you might want to re-apply them later).
Extract the nGlide files from the installer into the game folder (or if you took my advice above, move them back into the game folder).
Take a note of the system nGlide config BEFORE you set the local nGlide config, if required.
I'd suggest keeping a 'Glide settings.txt' document on your desktop.
DOSBox-X
When it comes to DOS Glide games and Glide wrappers, we need to talk about DOSBox-X and why it's still my preferred DOSBox app for DOS Glide games.
There have been a few DOSBox apps that have included Glide support, DOSBox 0.74 with Glide/3dfx patches, DOSBox Staging and DOSBox-X. Each of these support a virtual 3dfx card which can play Glide games, but the support is in software, with the CPU having to do all the heavy lifting, with a corresponding hit on performance.
However DOSBox-X has an additional option, Glide passthrough and this is a game-changer. With Glide passthrough enabled, DOSBox-X does the equivalent of throwing the Glide requests over the garden fence for someone else to deal with.
That someone else will be the Glide wrappers. They will convert the request into a modern equivalent and fire it over to the GPU to do all the heavy lifting, a far better situation (after all that's what it's there for!)
As far as Glide wrappers are concerned, DOSBox-X is just another Glide game sending out Glide requests to intercept and convert.
How would DOSBox-X use nGlide?
This is probably the most common use case. DOSBox-X would be installed as usual and Glide passthrough would be enabled within the DOSBox-X configuration file for a DOS Glide game, One of the latest (if not the latest) nGlide versions would be installed as the system Glide wrapper.
A glide call from within the DOS game wouldn't be handled by DOSBox-X, but passed through to the nGlide wrapper, to be converted and passed over to the GPU (via the Windows OS).
As long as DOSBox-X and nGlide is installed, Glide passthrough enabled in the DOSBox-X game config file (.conf) and the nGlide config options are suitable for that DOS game, it should all 'just work'! And in fact it does, I have my copy of JetFighter III (a DOS glide game) configured in DOSBox-X to use Glide passthrough and it just works!
If you want to stop using Glide passthrough, simply disable it in the DOSBox-X game config file (.conf) and DOSBox-X will start dealing with Glide requests.
Can DOSBox-X use different versions of nGlide?
Yes, but it's a bit of an extreme use case and this is my subjective recommendation. A potential scenario is that all of your DOS Glide games work well with your installed version of nGlide, except one that's tricky to get working and needs an earlier nGlide version.
Assuming the latest version of nGlide is the system Glide wrapper and you want to use the earlier nGlide v0.97 in DOSBox-X, I'd suggest taking a copy of your DOSBox-X folder (I'll assume C:\DOSBox-X) and renaming the copy to:
DOSBox-X with nGlide<version>
e.g. C:\DOSBox-X with nGlide0.97
Then nGlide v0.97 would need to be downloaded and the files extracted into this DOSBox folder as a local, game specific (or in this case, DOSBox-X specific) Glide wrapper.
You would need to change the desktop game shortcut or whatever game library manager you use, to run the copy of DOSBox-X in the 'C:\DOSBox-X with nGlide0.97' folder, rather than the standard 'C:\DOSBox-X' folder.
Again, you'd have to manage and set the global nGlide config using the appropriate nGlide configurator, as and when needed.
In fact there's nothing to stop you using as many different nGlide versions as you want with DOSBox-X, as long as you're careful in managing the global config! This is an extreme example and you may want to try dgVoodoo2 as the Glide wrapper (as described below), so you don't have to manage the global nGlide config.
How would DOSBox-X use dgVoodoo2?
Again, the potential scenario is that all of your DOS Glide games work well with your installed version of nGlide, except one (or nGlide isn't installed as the system Glide wrapper), but this time we want to try dgVoodoo2.
Again my subjective recommendation would be to copy your DOSBox-X folder and rename the copy with Glide wrapper info, such as:
DOSBox-X with dgVoodoo<version>
e.g. C:\DOSBox-X with dgVoodoo2.82.4
Then dgVoodoo2 v2.82.4 would need to be downloaded and the files extracted into this DOSBox folder as a local, DOSBox-X specific Glide wrapper.
You would need to change the desktop game shortcut or whatever game library manager you use, to run the copy of DOSBox-X in the 'C:\DOSBox-X with dgVoodoo2.82.4' folder, rather than the standard 'C:\DOSBox-X' folder.
Can DOSBox-X use different versions of dgVoodoo2?
Yes, there's nothing to stop you using as many different dgVoodoo2 versions as you want with DOSBox-X, just use the advice above. Be sure to use a sensible naming strategy, so you know what you've got and where!
Issues
In addition to the global nGlide config that's already been covered, the only other issue would be a new release of DOSBox-X. In order to install a new DOSBox-X release:
Download and install the release to your existing DOSBox-X folder (I'll assume C:\DOSBox-X), effectively replacing the old version.
Copy the files and folders in 'C:\DOSBox-X' and paste into each of the folders named: C:\DOSBox-X with <wrapper>
As long as you followed the advice above there should be no Glide wrapper files in 'C:\DOSBox-X', so pasting should only replace the DOSBox-X files and folders, leaving the Glide wrapper files untouched.
In conclusion
It's turns out that Glide wrappers are a pretty peaceful & harmonious bunch and can coexist quite happily. In fact you could have every single version of them, all on the same machine (not recommended!) and as long as you can manage the nGlide global config, it should just be smooth graphics and blistering performance!
Commentaires