dgVoodoo 2 is a graphics wrapper that converts old graphics APIs to Direct3D 11 or Direct3D 12 (as of version 2.7) for use on Windows 7 or newer. The wrapper fixes many compatibility and rendering issues when running old games on modern systems as well as enables the use of various overrides and enhancements, and third-party tools such as ReShade to enhance or improve the gaming experience.
As of version 2.7 the wrapper supports Glide 2.11, 2.54, 3.10, and 3.10 Napalm APIs, as well as all Direct3D APIs up to and including D3D9.
- Note that Direct3D (shortened to D3D) is the 3D rendering API of the corresponding DirectX suite of the same number. While dgVoodoo and this page refers to "DirectX" in various places, it is specifically talking about the Direct3D rendering API.
- DirectX 9 support has been added in version 2.6 and is still very early in development compared to DirectX 2-8.
Glide 3.10 Napalm
- Napalm should only be used for Glide 3 games where the regular Glide 3 library is too slow.
Glide QEmu (x64)
- The QEmu versions of the Glide libraries are intended for usage only with the 64-bit QEmu multiplatform virtualization tool.
Linux (Wine) configuration
- Linux requires declaring DLL overrides for every dgVoodoo 2 DLL you copy to the game directory - unlike nGlide, which works out of the box, dgVoodoo 2 needs configuring the DLL overrides in order to work.
Configuration file(s) location
- Since version 2.6,
dgVoodoo.confis a plain text file and can be edited directly using a text editor.
- A few advanced features are not available through the configuration tool but can be set manually in these config files.
Game specific configuration files
- If there is no dgVoodoo configuration file in the same folder as the game executable, dgVoodoo will use global settings.
- The resolution and anti-aliasing options are relevant to both Glide and DirectX.
- See Widescreen resolution for relevant information.
- See Scaling for information on scaling resolutions.
- Forcing a specific resolution can break UI menus, graphical effects and much more.
|Unforced||The application will control the resolution. This is the safest and the default option.|
|2x, 3x, 4x||Dynamically scales the current resolution set in-game, which is calculated by the wrapper.|
|Max||The maximum available resolution will be used.|
|Max ISF||The maximum available integer multiple of the app's resolution will be used.|
|Max FHD||Full HD (1920x1080); 1080p will be the maximum available resolution to the application.|
|Max FHD ISF||The max available integer multiple of the app's resolution will be used; FHD (1920x1080); 1080p.|
|Max QHD||QHD (2560x1440); 1440p will be the maximum available resolution to the application.|
|Max QHD ISF||The max available integer multiple of the app's resolution will be used; QHD (2560x1440); 1440p.|
|Resolution||Resolutions from 640x480 up to the current display's native resolution can be forced.|
- dgVoodoo 2 can force both MSAA as well as SSAA though this might cause graphical artifacts in some games.
|Force vertical sync for a game:|
- dgVoodoo 2 can enable the use of Windows 11's Auto HDR feature for older games that otherwise does not support HDR.
|Enable Windows 11's Auto HDR feature, then install dgVoodoo 2 for the game.|
HUD and interface scaling on high resolutions
- Many games don't scale their interface and HUD which end up being very small or even unusable on high resolutions. By instead forcing high resolution using dgVoodoo, this problem can be fixed in many games.
- Some games will have mouse and/or rendering issues when resolution is being forced.
This option allows for the selection of 3D accelerated cards that use the Glide rendering API.
Some applications and games may need an older card model or older Glide versions, due to the advancements of Voodoo 3Dfx technology made over time.
The different video cards also presents bias to games which may lock particular rendering capabilities and properties to certain 3Dfx cards and versions of Glide.
|VRAM (Video Random Access Memory)||The amount of emulated video memory of the selected video card can be changed with this option.|
No texture memory is stored on the onboard RAM, but instead it is processed and managed by the Texture Management Unit(s) (TMU).
|Texture Management||Texture Management Units (TMU) allow for multi-texturing management. The amount of TMU texture memory is adjustable.
|Force bi-linear filter||Forcing bi-linear texture filtering can cause artifacts.|
|Disable mipmapping||Disables mipmapping. Self-explanatory.|
|Enable Glide Gamma Ramp||A gamma correction curve can be set through the Glide interface when enabled.|
Since Glide uses a linear curve by default, the gamma level might not match the default or one's taste and can look visually detracting.
|Force emulating true PCI access||When enabled, the virtual 3Dfx card will have PCI bus speeds emulated as closely as possible.|
Emulation of true PCI access should theoretically never be disabled but there can be possible degradation of performance when left enabled.
|3Dfx Watermark||Shows the 3Dfx watermark in-game when enabled.|
|Pointcast Palette driver build||This option only affects Voodoo 2 cards, this should always be left disabled.|
|Force V-Sync||If V-Sync is enabled, games that run too fast stabilize at the maximum frame-rate of the monitor used, however some games may need certain synchronizations of frame-rates to work properly.|
|16 bit depth buffer||Use only when Z-fighting occurs. Z-fighting can be better avoided with a 16-bit depth buffer, however artifacting can occur.|
|3Dfx Splash screen||The 3Dfx splash screen is seen when an application starts, disabling this option prevents this animation from playing.|
|Enable inactive app state||When an application loses focus, it may be desired to make the application go into an inactive state.|
Disable and passthru to real DirectX
If dgVoodoo is not needed anymore or just temporarily, without removing dgVoodoo's DLLs this option will disable dgVoodoo's DirectX wrapper.
This option allows for the selection of internal virtual 2D (SVGA) and 3D accelerated cards.
The other four non-dgVoodoo card types give specific emulated ATI/nVidia/Matrox driver versions and capabilities.
The different video cards also presents bias to games which lock particular rendering capabilities and properties to owners of a real ATI, nVidia or Matrox card.
The virtual SVGA card exposes only software capable rendering (2D rendering) to the application. All other virtual video cards have full hardware acceleration and capabilities, including 'Transform & Light'.
However, the only full D3D9 compatible card is the Internal 3D Accelerated card.
VRAM (Video Random Access Memory)
The amount of emulated video memory of the selected video card can be changed with this option.
Be careful though, DirectX 7 and older applications can fail to launch if the emulated VRAM is set higher than 256 MB.
Some games may require more VRAM to render textures at higher resolutions. There are also other advantages to increasing the VRAM.
|Video card||VRAM Min||VRAM Limit|
|dgVoodoo Virtual SVGA Card||16 MB||128 MB|
|dgVoodoo Virtual 3D Accelerated Card||16 MB||4096 MB|
|GeForce 4 Ti 4800||64 MB||256 MB|
|ATI Radeon 8500||64 MB||256 MB|
|Matrox Parhelia-512||128 MB||256 MB|
|GeForce FX 5700 Ultra||64 MB||256 MB|
|GeForce 9800 GT||512 MB||1024 MB|
- See Anisotropic filtering (AF) for relevant information.
- Forcing texture filtering on an application can create glitches or break rendering effects.
- Anisotropic filtering forced trough display drivers will override the dgVoodoo2 setting.
|App driven||The application will control the texture filtering quality. This is safest and the default option.|
|Point sampled||Point sampled texture filtering will be forced.|
|Bilinear||Bilinear filtering will be forced. The four nearest texels to the pixel center are sampled.|
|Linear mipmap||Nearest-neighbor sampling from individual mipmaps whilst linearly interpolating the two nearest mipmaps.|
|Trilinear||Trilinear filtering will be forced. Bilinear filtering on the two closest mipmap levels are applied and are interpolated.|
|Anisotropic||Ansiotropic filtering of up to 16x can be forced.|
- Mipmapping can be disabled with the "No mipmapping" option below the filtering settings.
|Application controller fullscreen/windowed state||Unticking this option will force the specified screen mode in the General tab.|
|Disable Alt-Enter to toggle screen state||Disabling this option is recommended if the application already handles its window state via Alt+Enter
If this is not disabled and Alt+Enter is used for an application that utilizies it, then dgVoodoo will conflict with the application.
|Bi-linear blit stretch||When enabled, linear filtering is applied for stretched copying between 2D surfaces (DirectDraw only). |
Linear filtering is much nicer generally but can cause artifacts, especially with color-keyed blitting.
Early hardware did not support or apply point sampled blitting, which can end up with very pixelated results.
|Force V-Sync||Vertical syncing is forced in all cases whenever the application window draws. However there is a performance penality when enabling V-Sync.|
|Fast video memory access||Fast video memory access is applied for locked surfaces.|
Only recommended to use if an application is performing slowly, despite system specifications.
|Apply Phong shading when possible||Phong shading is applied in place of Gouraud when it is possible.
This option only has effect when the application uses the fixed function vertex/pixel pipeline and pushes all the work of the vertex transform & lighting (T & L) to Direct3D when rendering primitives. Do note though, using Phong shading requires much more GPU power than default shading.
|dgVoodoo Watermark||Shows the dgVoodoo watermark in-game when enabled.|
Hidden options and settings
- GeneralExt, GlideExt, DirectXExt and Debug are all hidden. Right-click on the dgVoodoo banner and tick "Show all sections of the configuration".
- Not recommended for usage by inexperienced users. A lot of the options are experimental or unstable for normal usage.
|Desktop resolution||The native resolution can be forced for dgVoodoo's internal calculations.|
This is useful for rare cases where applications may pre-set the desktop to something other than the native resolution before dgVoodoo initializes fully. Applies to all display outputs.
|Desktop bit depth||The screen bit-depth that should be reported through dgVoodoo can be defined to a 8, 16, or 32 bit-depth level.|
|Integer scale factor||The integer factor for scaling the out image coming from a wrapped API can be dictated from 1-5, or the maximum available.|
Integer scaling is always done with nearest point filtering, independent of the scale. Custom integer scaling factors can be defined manually for horizontal and vertical scaling.
|Deframer size||When the resolution is forced to something other than the application default, then a black frame will be drawn around the output image coming from the wrapped API. This is to remove scaling artifacts (maximum 16 pixels).|
|Display ROI||Display Region Of Interest - If the scaling is handled by dgVoodoo, then a sub-rectangle of the output image to be displayed can be defined, which is coming from a wrapped API. The defined sub-rectangle is mapped to the display output according to the current scaling mode.|
It can be useful for applications rendering a widescreen sub-image into a 4:3 resolution; in this case you can scale up that sub-image to (nearly) fill the whole screen on a widescreen monitor.
Manually entering values:
|If the scaling is handled by dgVoodoo, then a resampling method can be selected. The more complex the filter is, the more computationally expensive it becomes.|
Resampling methods listed in order of complexity:
Windowed mode attributes
|Borderless||Forces the application window to be borderless.|
|Always on top||Forces the application window to remain always visible, despite other windows being in focus.|
|Fullscreen size||Any content in the application window will be the same in fullscreen mode, preserving potential black bars.|
This is useful for achieving fake fullscreen mode (in conjunction with other relevant settings).
|Environment||The software environment that dgVoodoo runs in can be changed from unspecified, DosBox and QEmu.|
|FPS limit||You can enter an arbitrary integer or rational (fractional) value here.|
|Free mouse||When enabled, the physical mouse is free to move around inside the game's window when using emulated scaling and/or application and forced resolutions differs.|
Can be useful for when a game relies on the physical window size.
|Enable GDI hooking||If enabled, dgVoodoo hooks GDI to be able to render graphical contents (like movie playback through the ancient Windows Multimedia AVI player library) rendered through GDI.|
Experimental feature, for the time being it's implemented only for DirectX emulation.
|Dithering||Defines when Glide dithering should take place.|
If dithering is app driven, then the dithering effect is also controlled by the application.
|Effect||The type of dithering effect that should be used when dithering is forced.|
Pure 32-bit is a fake effect that provides the best quality.
|Ordered matrix size scale||The integer scale value for the dither matrix size:|
1 = normal size, 2 = double size, etc.
0 = automatic (the aim is to have some retro feel and look).
|ID Type||The driver version and Vendor ID type that the wrapper should report to the application can be changed. Some games rely on this information.|
Can be defined only for SVGA and Internal 3D card types, the others have their own predefined vendor information.
You can refine various ID's (vendor device, subsys, revision) in the appropriate fields. Note that defining unmatching vendor ID's makes no sense.
|Vendor ID||The Vendor ID can be defined only for SVGA and Internal 3D card types.|
You can overwrite these properties even if a non-default adapter ID type is defined: say, you defined an NVIDIA ID type but would like to refine the device ID.
|Defaults||Resolutions that should be reported to the application by default can be defined.
|Extras||Custom resolutions are defined in this field.|
|Enumerated bit depths||The 8, 16, and 32-bit bit-depths options define what resolutions should be enumerated (allowed) with.|
|Dithering||When the dithering effect should be applied:
|Effect||Select the dithering effect
|Dither matrix scale||Integer scale value for dither matrix size:
|Depth buffers||Internal bit depth of depth/stencil buffers for 3D rendering. Forcing 32-bit is not recommended.
|Max VS const registers||Maximum number of vertex shader constant registers (DirectX 8/9 only). The higher this value is, the lower the performance will be.|
Can only be defined for dgVoodoo SVGA and Internal 3D card types.
|MS D3D device names||When enabled, the original Microsoft D3D device names are exposed for the GPU. Some applications check for original device names, which can fail when dgVoodoo device names are exposed.|
|Smoothed depth sampling||Extra smoothing is added to depth textures when they are sampled.|
|Batched update for primary surface||If enabled, direct changes of the primary surface are batched together for presenting the surfaces.
If disabled, then each change is instantly presented (debug-like mode).
|Force scale & MSSA on RT textures||Forced resolution scaling and MSAA are also applied to render target textures.|
Disable this option if a game requires pixel-precise rendering.
|Deferred screen mode switch||Fullscreen switching is deferred after the application initialized the DirectX device.|
This can be useful for games that don't expect rendering window changes during initialization, causing the game to crash.
- These options only affect debug and spec-release builds of dgVoodoo
- There exists a "Log to file" option, but it is currently unimplemented.
|Message Severity||The severity of INFO, WARNING, and ERROR type messages can be:
|Maximum trace level||Maximum trace level can be: