The3dfx Voodoo is a 3D accelerator chipset released in late 1996, and sold by various graphic card manufacturers.The original Voodoo 1 adapters are not full video adapters, and in fact need to be used in conjunction with a separate VGA adapter in a pass-through manner.The video-output from the VGA video card must be connected to a video-in on the Voodoo adapter, which then overlays the 3D renderings, and the monitor is then connected to the video-output of the Voodoo adapter.
This section will list the available 3dfx Voodoo configuration options that DOSBox-X provides.Unless otherwise noted the options effecting the 3dfx Voodoo emulation are in the [voodoo] section of the DOSBox-X config file.
Enables high-level Glide API pass-through to the host OS.This requires that the host OS has a Glide API library (or Glide wrapper) installed, and in addition it requires the special GLIDE2X.OVL file provided by DOSBox-X, or for Windows 9x games a specially patched GLIDE2X.DLL.
This option only applies when using the high-level Glide API emulation, where the 3dfx splash screen is normally not shown.This has no effect when using the low-level Voodoo adapter emulation, where the 3dfx splash screen will always be shown when the Voodoo adapter is initialized by the game.
This option is off by default, enable if using software or drivers that assumes the presence of certain 686 MSR registers without checking.If you are using certain versions of the original 3dfx Glide drivers for MS-DOS you will need to set this to TRUE as 3dfx appears to have coded GLIDE2X.OVL to assume the presence of Pentium Pro/Pentium II MTRR registers.
Another (probably better) way to circumvent this issue with the 3dfx drivers, is to emulate a Pentium Pro or Pentium II CPU in DOSBox-X by setting either cputype=ppro_slow or cputype=pentium_ii in the [cpu] section of your DOSBox-X config file.
This emulation mode has been supported by DOSBox-X for a long time.It emulates the original 3dfx Voodoo 1 chipset, and therefore works with the official 3dfx DOS and Windows 9x drivers.It is the easiest mode to get working, and is in fact enabled by default.Depending on the game, you may not have to do anything, or you just need to select 3dfx Voodoo in the setup program.Some other games may require that you install a patch, or that you run a different executable to start in 3dfx mode.
Instead of emulating the 3dfx hardware, this method converts the Glide API calls to a modern 3D Graphics API, and is therefore much more efficient.However, it also requires a few more steps to get working.
The biggest issue is that the Host OS needs to have a Glide API pass-through library installed (glide2x.dll for Windows, libglide2x.so for Linux, and libglide2x.dylib for macOS),and that you use the special GLIDE2X.OVL provided in DOSBox-X (or for Windows 9x games the special GLIDE2X.DLL), instead of one that may be provided with the game or provided by 3dfx.
When DOSBox-X is started with glide=true, and you have a compatible glide wrapper installed on the host, the special modified GLIDE2X.OVL file for DOS games will automatically appear on the emulated Z: drive as Z:\SYSTEM\GLIDE2X.OVL.
They do not necessarily work exactly the same.Before trying to find an implementation of this library file, please keep in mind that the architecture of the DOSBox-X executable you are using matters, e.g., whether the DOSBox-X executable is a 32-bit x86 or 64-bit x64 build.Due to the way how Windows works, a 32-bit x86 glide2x.dll can only be used by a 32-bit x86 DOSBox-X executable, and likewise a 64-bit x64 glide2x.dll can only be used by a 64-bit x64 DOSBox-X executable.As a result, in order to make Glide work, please make sure that you do not mix up the CPU architecture of the DOSBox-X application and any DLL files.
Note however that only 32-bit x86 DLL files are included in nGlide, as of its latest version.This means that if you choose to use nGlide as your Glide wrapper, then you must use the 32-bit (x86 architecture) DOSBox-X binaries (either SDL1 or SDL2 builds) for the Glide feature.
OpenGlide is an open-source Glide API wrapper to OpenGL implementation that is not actively maintained.You will need to compile it yourself using Visual Studio or MinGW, and should therefore only be considered by advanced users.
The original OpenGlide repository on Sourceforge has been unmaintained for a long time and does not work for our purposes.Some forks exist, such as: which works for DOSBox-X SDL1, or the fork available here: -xtra which seems to work for DOSBox-X SDL2.
Unfortunately this library is not included with any Linux distributions, as such you need to compile it yourself.The following steps assume that you have the necessary compiler, developer tools and header files already installed.
Install Home Brew:Home Brew is the package manager for macOS that makes it easy to install the required packages needed for OpenGlide to compile successfully.You can get it from or run the following command from a Terminal shell:
Alternatively, you can place them inside your DOSBox-X application package (/Contents/Resources), and they should be recognized in there first, before falling back to the system level files if required.
If the OpenGlide library is successfully detected, when you run DOSBox-X it will generate two output files called OpenGLid.ini and OpenGLid.log (the former providing options to adjust the OpenGlide settings).These should be located in the same place as your DOSBox-X application or executable binary.
The glide library installed on the host needs to be the same CPU architecture as the DOSBox-X executable. So for instance, if you are using a 32bit x86 Glide library, such as nGlide, you must also use a 32bit x86 DOSBox-X executable.
One tell-tale way of knowing if the game is running in glide pass-through mode, is the 3dfx splash screen when starting the game.If you see the splash screen, you are probably not running in pass-through mode, but rather in low-level Voodoo emulation mode.
To run in Glide pass-through mode, the GLIDE2X.OVL file must appear at Z:\SYSTEM when you start DOSBox-X, and you must be sure no other GLIDE2X.OVL file is being found by the game.For instance, if there is a GLIDE2X.OVL file in the game directory, rename it, and try again.
- voodoo: use 'opengl' mode for higher speed, 'software' mode for a more accurate emulation
- voodoomem: a standard voodoo1 card usually came with 4mb, but you can max out memory in order to get higher screen/textures resolution
Just a few recommendations:
- please post all your questions in this thread, don't PM me or anyone else on this and don't open new threads
- if you do anything with this, like adding features or fixing bugs, please share it with everyone by posting your changes on this thread
- if you like this patch, let us know by posting some nice screenshots or videos (please use external image upload service to save
vogons.org bandwidth)
I was struggling yesterday on a Windows 8 box trying to get Resident Evil 2 to run without using the ugly software mode. I got the cutscenes to work by installing ffdshow tryouts and enabling it's VFW Intel Indeo 5 decoder, but software mode was in 320x200, really slow, and really ugly. I remember playing it with a 3DFX back in the time in 640x480 fullscreen (16 bpp). The only real solution I found was to use a real Win98 PIII-based PC with a 3DFX, which means I've got to rebulid the damn thing. Again ( ? ).
With this patch and DOSBox-X (which, as I understand, is more Win9X friendly than vanilla DOSBox) I might get RE 2 - and other games that even nglide can't get to run because they use DirectX and not Glide - to run properly on a modern computer. At least, there is definitely hope it will be possible someday.
I tried it in one game. I put the Dosbox3dfx into the DOSBox folder, changed the game shortcut to launch Dosbox3dfx instead of Dosbox, edited the existing config file and added the copy paste section from the first post but when running it the DOSBox crashes to the desktop right away.
Well. Is any way to force DOSBOX 3dfx to scale Voodoo image? When i set up a scaler for example "hardware3x", the display is scaled but only on 8-bit screens. When i set 16 or 32-bit depth, or when I try to display Voodoo image (for example from X-Wing for Windows 95), I see only a small window. Can someone tell me, what I'm doing wrong?
Here my config:
Attach the clean patch to enable kekko's voodoo1 emulation and gulikoza's glide pass-through at the same time in single DOSBox build. Kekko voodoo1 emulation has been updated based on the latest build as in VIDEO - 3dfx voodoo emulation (SDL1).
Just a reminder so that you don't get confused with the placement of GLIDE2X.DLL and GLIDE2X.OVL. Kekko's voodoo1 emulation must use the real version from Diamond Monster3D drivers. Gulikoza's glide pass-through includes special GLIDE2X.DLL and GLIDE2X.OVL to thunk glide APIs from guest to host.
A quick question about OpenGlide: What exactly is it required for? Is it used as default wrapper for gulikozas patch? Is any external DLL still required or can other wrappers like nGlide or dgVooDoo2 be used as well?
OpenGlide is a Glide wrapper that emulates Glide2x 2.4 APIs similar to dgVoodoos and nGlide. Yes, you can replace it with dgVoodoos or nGlide. There is no so-called default wrapper for Glide pass-through, it just loads the 1st instance of Glide2x DLL in the search path. OpenGlide plays a significant role for development because it is open-sourced, based on OpenGL technology which makes it portable to any systems with OpenGL. Its Glide emulation is not stellar by today's standard, which has been greatly surpassed by dgVoodoos and nGlide, and has not been maintained for years. I believe it is the only Glide emulation solution for Linux and MacOS (from MacGlide a fork of OpenGlide) today. We shall see if nGlide with Vulkan backend will make a break-through for non-Windows system, especially Linux.
3a8082e126