top of page
loading_reduced.jpg

2.83.2 / 07-10-2024

dgVoodoo

Accuracy

Performance

Features

average rating is null out of 5
average rating is null out of 5
average rating is null out of 5
competition

dgVoodoo is a wrapper for old graphics APIs to run on modern Windows operating systems. Its applied using Direct3D11 with different types of wrapping outputs:

  • Hardware rendering at GPU feature level 10.1 (recommended)

  • Hardware rendering at GPU feature level 10.0 (there are some restrictions)

  • Software rendering through Microsoft WARP renderer


The API's it currently can wrap are:

  • Glide 2.11, Glide 2.45, Glide 3.1 and Glide 3.1 Napalm

  • DirectX 1-7 (all versions of DirectDraw and Direct3D up to version 7)

  • Direct3D 8.1


You also need the 3Dfx splash dlls for Glide if you want 3Dfx splash screen or watermark (shameless plug) through dgVoodoo. 


You may also need D3DRM.dll (Direct3D Retained mode) for some games and demos. It's not part of the OS since Windows Vista.

...

Most Recent Changes

--2.83.2--

  • Fixing a bug in the D3D12 backend (Radeon's Ark)

  • Fixing a swapchain creation crash (Lands of Lore 2)

  • Fixing a lighting bug with D3D execute buffers (Lego Island)

  • Fixing D3D mono rendering (Croc 2, ...)



--2.83.1--

  • Improving the D3D9 fixed function vertex pipeline to have full vertex-type input capability (CPU/GPU) (The Incredibles)

  • DDraw fixes related to YUV supportCrash in the D3D12 backend (Populous The Beginning intro movie)
    Star Trek - Starfleet Academy movie playback

  • Fixing a DDraw clipper problem (O2 Jam)

  • Improving the DD/D3D debug layer leakage report to include orphan objects of released main objects



--2.83--

A half baked version but I release it

Frontend

  • DD/D3D/8/9 objects consumes less memory and system resources

  • Adding bounds checking into generated VS cpu code

  • Improving API locking mechanism to avoid 'window message deadlock'

  • dgVoodoo won't get into deadlock anymore with its own code in multithreaded window-message situations.

  • However there are games (like TR4) that wait for DD/D3D without pumping the message queue, still causing
    deadlock/livelock. It cannot be resolved at wrapper side.

  • Minor refactorings here and there

  • Shared surface memory (Lock/GetDC) in DDraw and D3D9 where possible (better performance)

  • Workarounding an invalid shader in D3D9 (Wall-E)

  • Some changes in the capability of the GF9800 virtual card

DDraw changes

  • Refactoring a lot of code to implement resource sharing to be compatible with MS DDraw (e.g. flashing screen in Colin McRae Rally 2)

  • Implementing a shortcoming in DD compression Blt (Europe 1400)

  • Implementing DD surface duplicating

  • Adding some new dbg layer error messages into DD Blt'ing

  • More compatibility with MS DDraw

  • YUV format support

D3D

  • Implementing some missing validation in D3D Draw methods

  • Fixing minor debug layer bugs

  • Fixing a D3D7 vertex clipping incompatibility (Torte Le Magic)

  • Fixing a D3D8/9 resource binding bug

  • Fixing a thing in D3D execute buffers (shadow in Final Racing)

  • D3D11/12 backend

  • Adding a new option DirectXExt\D3D12BoundsChecking (try it if you run into a GPU crash with D3D8/9)

  • Fixing a surface readback bug (Virtua Fighter with forced resolution)

  • Fixing some problems related to PS2/3 input registers declared as centroid (Insane 2 with ingame MSAA)

  • Fixing a PS3 code generation problem (Borderlands with depth of field enabled)

  • Fixing a regression bug in the blitter (Ephinea PSOBB, my own tests)

  • Fixing a potential D3D12 deadlock problem (604)
    Adding a new addon callback to the API for creating custom

  • D3D12 swapchains

  • Fixing a 3D rendering bug in the D3D11/12 backends (SC Chaos Theory Versus Mode)

  • Enabling flag DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING for

  • FLIP presentation type swapchains if supported (windowed mode, fake fullscreen)

  • Improving the synchronization of GPU/CPU access of poorly used D3D8/9 static buffers



--2.82.5--

  • Fixing a bug in the ps.3.0 shader code translator (FFXIII crash)

  • Fixing a bug in the D3D12 backend related to compressed textures (FFXIII Lightning Returns crash)

  • Fixing a DX frontend bug causing missing cutscenes (Ascension to the Throne)



--2.82.4--

  • Fixing DDraw bugs (Konami Collector's Series: Castlevania & Contra, Blackstone Chronicles)

  • Workarounding a DDraw internal resource sharing problem

  • Fixing DDraw clipped cursor problem (like with the config app of game Driver)

  • Fixing D3D5 vertex clipping (regression) (Jet Moto)

  • Removing paletted texture format support of the GF9800 virtual card

  • Fixing a potential D3D8/9 swapchain leaking bug

  • Fixing a D3D9 frontend bug (The Mark)

  • Fixing stenciling without a stencil plane in the D3D12 DX backend (Test Drive Unlimited 2)

  • Fixing potential descriptor corruption with sRGB textures in the D3D12 DX backend (Test Drive Unlimited 2)

  • Some minor refactoring in the DX frontent/backends

  • Fixing a clip coordinate space bug with sst origin lower left in Glide3+



--2.82.3--

D3D12 changes

  • Fixing a caching bug in the 2D D3D12 backend causing black screen (La Mulana)

  • Fixing an optimization bug in the 2D D3D12 backend causing crash (scene demo Platipus)

  • Minimum stack size for the D3D12 background threads (Call of Duty 2) (but increase the stack reserve size of the exe instead)

  • Some internal D3D12 improvements

  • Workaroundig a resource state transition bug in D3D12 NV drivers (GF 10xx series?) (Glide/DX)

Common backend

  • Various changes and minor optimizations in the code generators

  • Fixing a bug in the FF ps code generator (Terrorist Takedown)

  • Fixing a DDraw backend bug (Wing Commander 3)

General D3D

  • Fixing the lighting incompatibility with MS D3D8/9 (my own tests)

  • Fixing a regression bug in lighting (Splinter Cell: Chaos Theory Versus Mode)

D3D8

  • Workarounding a ChromeEngine specific hack in D3D8 (Chrome, Chrome Specforce fog)

  • Fixing a thing in D3D8 (Lord Of The Ring - Fellowship of The Ring)

D3D9

  • Improving the implementation of D3D9 queries in the D3D12 backend to get far better response time (performance)

  • Fixing a D3D9 bug (Arcania - Gothic 4)

  • Fixing a bug and a leak in the D3D9 frontend

  • Minor fixes in the D3D9 debug layer

Glide

  • Changing the version number of Glide2 to 2.60 (Heretic II 3Dfx renderer)

  • Some new error messages in the Glide debug layer for DllMain operations

  • Optimizing Glide Draw calls with small amount of vertex/index data in the D3D12 backend for performance

  • Fixing an lfb-writeback thing in Glide (Mech Warrior 2)

Control Panel 

  • AppIncreasing the vertical size a bit

  • A fix for a resizing bug during DPI changes



--2.82.2--

  • Refactoring the FF ps code generator to produce a bit more optimal code

  • Fixing a lighting D3D incompatibility with MS D3D (Project I.G.I.)

  • Fixing a broken shader for D3D11 FL11.0 (Blood 2)

  • Adding Green Sardine/Cezanne AMD architectures to the D3D11 blacklist (device ID: 0x1638)



--2.82.1--

  • Remapped D3D/8/9 lights to reduce the number of FF shader variants (UT2004, RavenShield, games using FF vertex pipeline)

  • Fixing the 2D blitter and 3D texturer to handle colorkeyed ARGB2101010 and ARGB16161616 format textures properly

  • Compiler toolset upgrade



--2.82--

D3D/8/9 improvements and fixes

  • Hardware vertex buffers in D3D6/7

  • Improving the PS shader code generator to handle D3D colorkeyed textures (also fixing the D3D12 LOD-problem)

  • Overhauling the general pipeline code and the capabilities of the FF pipeline

  • Adding support for the reference device in D3D8/9 (Operation Blockade)

  • Improved DD/D3D API tracing, some bugfixes/changes and additions in the DX debug layer

  • Clipping / vertex layout / fog bugfixes (Extreme Paintbrawl 4, Max Payne, Off Road Arena)

  • D3D9 fixes (fr-054 Polar, Crush, Nitro Stunt Racing, Trackmania Sunrise Extreme)

  • Fixing the "clipped cursor" issue when exiting D3D8/9

  • Improving DDraw compatibility (Legion Gold)

  • Improving DirectShow compatibility (Project Eden)

  • Forcing texture filtering did not work properly in D3D, fixed

  • Fixing a regression bug in DDraw compression Blt (Eurofighter Typhoon)

  • Fixing a windowed Blt bug in DDraw (my own test app)

  • Fixing a regression crash in D3D12 UP Draw (Tomb Raider 5)

  • A bugfix in the cpu code generator

  • A bugfix in the blitter shader code generator

  • Auto mipmap-generation (changing option

  • DirectX\DisableMipmapping to DirectX\Mipmapping)

Glide fixes

  • Fixing a rendering incompatibility (Outlaws)

  • Fixing a freeze/crash bug in Glide D3D12 dynamic resolution changing

General improvements

  • Changing/fixing a lot of things in the source using a code analyzer

  • Doubling the tooltip appearance time in the Cpl
    Implementing loader lock detection for all (missing) platforms (x64, arm64/ec)

  • Internal changes and code refactoring under the hood



--2.81.3--

  • Some D3D12 fixes

  • Some bugfixes in the CPL

  • Fixing a common cache bug affecting both D3D11 and D3D12 (Earth Defense Force Insect Armageddon)

  • Improving the performance of user ptr Draw-calls in the D3D12 backend for small amount of vertex/index data (D3D/D3D8/9)



--2.81.2--

  • Fixing a D3D12 cache bug (banded shadows in some games)

  • Some D3D12 bugfixes (in both Glide and DX)

  • Adding new AMD GPU architectures to the D3D11 blacklist (Renoir/RX4xx/RX5xx series)

  • Fixing a deadlock when QuickTime player is active (regressive bug) (Septerra Core)

  • Modifying some code handling vertex data to get better performance on new CPU architectures (Sacrifice stress test)

  • Fixing a minor bug in the CPU code generator



--2.81.1--

  • Fixing a regression bug that can break DirectShow movie playback

  • Fixing another regression bug causing crash



--2.81--

  • A refactored 2D blitter architecture with a shader code generator for lower GPU-usageComes in handy with integrated GPU's

  • A bugfix in the x86/64 VS CPU code generator

  • Fixing the AMD D3D11 solid-color-texture bug on certain GPU architectures (Vega as of now)D3D11 runs on an unoptimal but working path with those GPU's
    You can suppress it by enabling option DirectXExt\SuppressAMDBlacklist to check out
    if a new driver release fixes it

  • Experimental output color spaces are added for HDR/SDR WCG renderingOption GeneralExt\ColorSpace to choose between SDR/HDR outputs
    (Precision of the internal DX rendering is adjusted to the colorspace by default)
    Option DirectXExt\Default3DRenderFormat is modified to only control the internal
    rendering quality - you can override the default associated with the current colorspace

  • DDraw/D3D fixes:Implementing a flip-chain incompatibility with MS DDraw (Seven Kingdoms II HD)
    Implementing a missing optimization for 8 bit surfaces (Colin McRae Rally)
    Wrong rendering with forced resolution in certain cases
    Fixing palette update on integrated GPU's in the D3D12 backend (Colin McRae Rally)

  • D3D9 changes:Generating more optimal vs/ps shaders for D3D9 along with some performance improvement,
    in certain cases

  • Fixing broken clipping planes with D3D11 FL11.0 output (Tomb Raider Underworld)

  • Fixing D3D12 leaks

  • A lot of internal changes in the backends



--2.8.2--

  • Fixing D3D8/9 update-texture again (regressive bug) (Ys Seven, Valley Benchmark, ...)

  • Support for D3D12 triangle fans if the OS runtime and your driver supports it (Win11)This removes some software overhead in D3D8/9 Draw calls in certain cases
    There is a new dbg layer message for what D3D12 optional features are available and used

  • A bug is fixed in the D3D9 FVF validator (Lord of the Rings - War in the North, missing foliage)

  • Fractional viewports instead of shader code for D3D11 FL11.0+ (Test Drive Unlimited 2 through D3D11)

  • Refactoring DDI blitting code (optimization, dev-only feature)



--2.81--

  • Fixing fogging for DX8.0 (Soul Reaver 2)

  • Fixing a bug in window handling (Silent Hill 3)

  • Fixing a bug in the CPU code generator

  • Changing compiler options for DX modules

  • A minor DX optimization



--2.80--

  • Glide fixesGlide lfb-access bug (Mech Warrior 2: 31st Century Combat)
    A Glide vertex shader (Nascar Racing 1999 Edition)
    A D3D12 Glide backend bug (Nascar Racing 1999 Edition)
    A D3D12 pixel shader crash

  • DDraw fixesImproving handling child windows (Twisted Insurrection)
    Surface factoring/handling incompatibilities (Tropico 1, Steel Beasts)

  • D3D fixesA caching bug (regression) (Lego Island)
    D3D fog state bug (Shadow Company)

  • D3D8/9 fixesChanging D3D9 sm2/3 ps behavior for mismatching sampler/texture type (FEAR)
    D3D8 fog incompatibilities (Enclave, Final Fantasy XI)
    sm3 fog problem in D3D9 (Lost - Via Domus)
    Windowed mode presentation (UnrealEd)
    Memory leak (The Legend of Heroes - Trails in the Sky 3rd)
    Texture update incompatibility + some improvement for the debug layer (Gray Matter)
    Memory allocation incompatibility for cube textures (Lost Planet 2)
    Frontend stateblock bug (Tiger Woods PGA Tour 2002)
    Device cursor functionality (Deus Ex - Invisible War)
    A D3D9Ex incompatibility (VPinballX)
    Workaround for a kind of memory overwrite from the application side (Lord of the Rings - War in the North)
    Adding a missing resource type/format combination as supported (Lord of the Rings - War in the North)

  • Software vertex processingFixing an x64 D3D9 bug + some other common ones
    CPU code generator for D3D8/9 sw vertex processing (x86/x64 for the time being)

  • Backend fixesA D3D11 bug (Dawn of War 2 Retribution)
    A D3D12 bug causing deadlock (Test Drive Ferrari Racing Legend)
    A common bug (Test Drive Ferrari Racing Legend)
    Implementing a workaround for a D3D11 limitation (Test Drive Ferrari Racing Legend - car reflection)

  • Minor shader code generator bugs fixed (Rhino Discharge)

  • Fixing a mouse handling bug (regression) (Outlast windowed mode)

  • Fixing other internal bugs I encountered

  • Changes/refactorings related to the updated compiler tools

  • Changing option DirectX\BilinearBlitStretch to DirectX\Bilinear2DOperationsSo the filter is not only applied to 2D DD blit operations but CPU-written data as well

  • Changing option GeneralExt\EnableGDIHandling to GeneralExt\SystemHookFlags (x86-DX only)Flag 'GDI' to hook GDI-rendering (cutscene videos)
    Flag 'Cursor' to hook mouse-cursor to suppress double cursor symptoms for emulated cursor

  • ARM64X version of D3D9 instead of plain ARM64 native only

  • Implementing the first version of loading and driving dgVoodoo addonsYou can hook the image presentation of the D3D12 backend
    Docs and sample addon is added into the dgVoodoo API



--2.79.3--

  • Fixing D3D8/9 problemsVertex fog incompatibility (Ephinea PSOBB)
    Device reset bug (Harry Potter and the Order of the Phoenix)
    Fixing the return values of Check* methods (3DMark 05)

  • Changes in the D3D8/9 Debug Layer, some more detailed messages and cosmetics

  • Minor changes in the D3D12 D3D backend

  • Fixing a DDraw blitter bug (I hope at least) (driver crash with Lego Rock Raiders)

  • Fixing a bug in system (GDI) hooking (DX modules cooperating)

  • Fixing a certain D3D bug (Midtown Madness 1)

  • Fixing a DD/D3D colorkeying bug (Xarlor)

  • Other minor internal fixes and changes



--2.79.2--

  • Fixing a DDraw surface GetDC/ReleaseDC bug (Recoil, missing text)

  • Fixing D3D clipping again (Grand Prix 3)

  • Fixing a DDraw blitting colorkeying bug (Wizards and Warriors)

  • Changing scaling of cpu-written surface data from bilinear to point sampled

  • Fixing a D3D6 incompatibility with MS D3D (Lego Rock Raiders)

  • Fixing a bug in D3DImm (could crash at exit) (Crimson Skies)

  • Fixing a regression bug of swapchains (MS Flight Simulator 2002)

  • Fixing a bug of D3D8/9 fog state (MS Flight Simulator 2004)

  • Fixing a bug in sw vertexprocessing (wrong speculars in 3D Scooter Racing)



--2.79.1--

  • Broken D3D8/9 clipping, refactored and fixed (BloodRayne 2 HUD)

  • Fixing a D3D8/9 vertex layout bug (Sonic and All Stars Racing Transformed)

  • Minor other internal D3D5/6/7/8/9 fixes (like fr-063)

  • Minor D3D performance optimization

  • Improving Phong shading to support D3D8/9 level ops (LotR War of the Ring), but it's still not recommended

  • Shader code generator changes:fixing a bug (Star Wars Republic Commando)
    implementing missing mono rendering

  • A new Debug Layer message



--2.79--

  • Support for multihead (multimonitor) D3D9 devices (Supreme Commander)

  • Fixing/implementing DDraw/D3D9 cooperation for DirectShow movie playback (Robots)

  • D3D9 frontend fixes (Painkiller Black with D3D12)

  • D3D9 refresh rate validation improvement (Robots)

  • Adding option DirectXExt\DisplayOutputEnableMask for enabling individual display outputs

  • Adding option GeneralExt\PresentationModel (for "flip" presentation modes for D3D11)

  • Removing option DirectXExt\EnableSpecializedShaders

  • Fixing a regressive crash (Morbus Gravis)

  • Minor general improvements/optimizations and internal bugfixes (Outlast x64 and others)

  • Fixing Glide 1.x LFB-lock handling (Mech Warrior 2), but it seems to work only for me (feedbacks are welcome)

  • Removing DF16/DF24 depthstencil format support from GeForce virtual cards + fixing DF16/24/INTZ component mapping

  • Changing the behavior of clipping transformed/untransformed vertices

  • Fixing an incompatibility of updating the clip status in D3D



--2.78.2--

  • D3D12 threading fix for potential stuttering (Juiced)

  • A D3D12 fix for potential D3D9-query freeze (Prince of Persia: The Forgotten Sands)

  • A fix in the TruForm shader code generator (crash in Rainbow Six 3 Ravenshield)

  • A minor improvement for hw cursor emulation (Interstate '76)

  • Compiler toolset upgrade



--2.78.1--

  • A D3D8/9 incompatibility is fixed (RE - Operation Raccoon City)

  • A minor frame presentation optimization again (D3D11/12)

  • Fixing a Glide Debug Layer message (unnecessary d3dcompiler)

  • Slight changes in the FF vs DXBC generator for the sake of old FL10.0 drivers

  • Minor fixes in the D3D11 backend for FL10.0

  • A minor change in DXGI swapchain handling to reduce possibility of deadlocks (Blade Of Darkness)

  • Minor internal + CPL fixes

  • DDraw fixesClip handling (Ed Hunter)
    Flip to GDI surface (HyperBlade)
    Changes to be compatible with the Windows compat layer (Biko)
    Other minor fixes (multi monitor tests)
    Improving the DirectShow (Quartz) hook layer (Max Payne)

  • Implementing more system/GDI hooks (option GeneralExt\EnableGDIHooking) (x86 only)HyperBlade menu
    Fixing double mouse cursors (experimental)



--2.78--

  • D3D8/9 fixesImplementing D3D9 API extensions for alpha-to-coverage and supersampling (nvidia/ATI)
    Supersampling needs at least FL10.1
    A bug in software buffer usage is fixed for software vertex processing (Everquest 1999)

  • D3D fixesRemoving support for colorkey blending with GF virtual cards (Interact Play)
    Fixing a D3D alpha transparency bug (Interact Play)

  • Glide fixes:Fixing minor bugs in handling Glide LFB access (without PCI emulation) (XA demo)
    Fixing background threaded D3D12 Glide LFB access with PCI emulation (XA demo)

  • Image presentation changesDX frame presentation optimization for performance
    Other general optimization of presentation shaders
    Emulated cursor appeared at wrong place with integer scaling, fixed

  • Fixes for AMDA workaround-fix for clearing integer format RTV's through AMD D3D11 drivers (ClearRenderTargetView) (issue introduced with v2.74)
    Adapting the DX shader code generator to handle AMD's DXBC parser limitation (no-sat on indexed temporary) (crash with TruForm, HD7850)

  • Backend fixesA DX Draw bug fixed in the D3D12 backend
    Fixing a D3D11 sampler cache and sampler update bug (BF 1942, scene demo 604)
    Fixing a D3D12 sampler table update bug
    Fixing a bug in the DX code generator (crash with adaptive TruForm, HD7850)
    Changes for generating a bit more optimized code in FF vs code generator

  • Fixing a DDraw blitter bug (Des Blood 4)

  • Now all dynamic resolutions can have an integer scaling parameter, it can be useful for achieving manual supersampled rendering

  • Improving GDI hooking (MCI video player) (Age Of Empires 2)

  • Some new Debug Layer messages



--2.77--

D3D8/9 fixings

  • Fixing an incompatibility of creating additional swapchains (Overlord 2)

  • Implementing missing MSAA subpixel masking

  • Implementing missing centroid modifier for ps2/3 input registers

  • Fixing a bug in user ptr Draw-calls (Halo 2)

  • Some new debug layer messages


Other Changes

  • Adding virtual card Geforce 9800 GT to have one that is still - D3D9.0c compatible but more practical because does not support all features like the default internal one (Overlord 2, Raiden 3, ...)

  • Fixing Glide3+ bugs (SurRender3D engine with Glide3)

  • Fixing a DDraw blitter bug (Esk Emotion)



--2.76.1--

  • Fixing bugs causing crash in the FF vs / TruForm shader code generator

  • Fixing D3D8/9 texture create-parameter validation (X-Blades)

  • Fixing a D3D12 swapchain bug (Balls of Steel through D3D12)

  • Fixing an inconsistency bug of the virtual cards other than the default (The Phantom Menace init error)

  • Improving the D3D/D3D8 z-biasing implementation (The Phantom Menace)



--2.76--

  • Adaptive N-Patch tesselation (ATI TruForm) support for D3D8/9 (needs feature level 11.0 through the output API as a minimum)

  • A new shader code generator for the D3D FF vertex pipeline in favor of better performance with specialized shaders

  • Enabling mixed MSAA types of D3D9 render- and depthstencil targets (some scene demos)

  • BugfixesFixing a DDraw surface create parameter validation incompatibility (Rogue Spear Urban Operations)
    Fixing x64 D3D9 stateblock handling crash
    Fixing a particular D3D8 lighting effect compatibility (Blitzkrieg map editor)
    Fixing a bug in the ps.3.0 DXBC generator
    Fixing a minor bug in DDraw with fast videomemory access
    Fixing freezing video playback in Mega Man X series

  • New optionsAdding scaling mode 'Stretched, keep aspect ratio (CRT like)'
    Adding DirectX\KeepFilterIfPointSampled
    Adding DirectXExt\NPatchTesselationLevel (only for experimenting purposes)
    Adding DirectXExt\EnableSpecializedShaders - this is intented to be a transitioning option, to be removed in a later version

  • Minor peformance optimization for handling ps FF specialized shaders

  • A lot of changes under the hood in general



--2.75.1--

  • Improving the implementation of user clip planes in the DX backends

  • Minor performance optimization in the D3D11 DX backend

  • Fixing potential D3D12 cache overflow

  • Fixing an incompatibility of GetDC/ReleaseDC on DDraw surfaces (The Secrects of Atlantis)

  • Fixing a regression bug with GetDC/ReleaseDC on DDraw surfaces (Star Wars Galactic Battlegrounds)

  • Fixing scaling of point sprites for upscaled resolutions (Falling Down)

  • Changing the precision of certain visibility calcs to be more compatible with MS D3D (Alien Paranoia)

  • Other minor code changes



--2.75--

  • Minor D3D incompatibility fixed (Corn N64 emulator)

  • Adding dynamic type resolution 'Desktop' (see the appropriate section for details)

  • Changing the implementation of D3D8/9 software cursor to be compatible with MS implementation

  • A bug in the general hw cursor emulation is fixed (No One Lives Forever)

  • Adding ARM64 builds of the 64 bit libraries and the CPL

  • Fixing a bug in the shader code generator (Virtua Tennis 4)

  • Minor DDraw compatibility fix (Alien vs Predator 2 corrupted health texture)

  • DDraw optimizations for LithTech engine lightmap textures handling (Alien vs Predator 2, but it should affect other games as well)

  • Improved GDI hooking to support the old MCI AVI player (Nocturne)

  • DDraw/D3D compatibility fixes to support the old ramp device (Banzai Bug)
    (As for the rendering, this game now runs fine with dgVoodoo in hw mode. However, still there is a problem, see this bug entry )

  • Some performance optimizations in the D3D11/12 DX backends

  • Fixing (refactoring) an old optimization for managed textures (Spirit of Speed 1937, missing textures)

  • Fractional (rational) values for option GeneralExt\FPSLimit

Show Previous Changes

--2.74.1--

  • Reworking of the FPS limiter to avoid a possible input lag with D3D12

  • Fixing a D3D bug causing unreleased resources (SWAT 3, first run without a config file)

  • Change in the impl of the emulated hw cursor (SWAT 3 bad preformance, but affects other games too)

  • Fixing a bug in the new Glide DXBC generator (Scorched Planet demo)

  • Some optimization on DDrawSurface GetDC/ReleaseDC

  • Fixing vsync flag validation/interpretation in DDrawSurface::Flip

  • Minor change in certain DDraw Debug Layer messages

  • Minor fixes in the CPL



--2.74--

  • Enabling 16K sized surfaces in DDraw (Demon World 2)

  • Optimizing filling-type GPU-work all along the code for lower GPU usage (DDraw/D3D/presentation)This also involves some improvements in filling capabilities of DDraw

  • Removing an old general limitation related to swapchains + code refactoring

  • Implementing an FPS-limiter configurable through the new option GeneralExt\FPSLimit

  • Fixing bicubic + Lanczos filters combined with CRT-like appearance and integer scaling

  • Adding a new option GeneralExt\CursorScaleFactor to control the integer scaled appearance of the emulated hw cursor

  • Adding option DirectXExt\Default3DRenderFormat for possible higher dynamic range

  • Fixing a vs.1.x shader translator bug (The History Channel - Civil War)

  • Fixing a regressive D3D12 DX backend bug

  • Fixing a D3D12 common backend cache bug (nVidia Chameleon demo)

  • Fixing a bug with forced MSAA in D3D11/12 DX backends

  • Implementing missing point-type fillmode (nVidia tech demos)

  • Implementing some missing things in DDraw (Near Fantasy Space)

  • Minor change in handling the FPU state (Tantra Online)

  • A Glide3 incompatibility is fixed (Test Drive 5)

  • Glide x64 bugfixings: bad thick-line drawing and crash in guDrawPolygonVertexListWithClip

  • Slight modification in Glide window handling when enviroment is configured to Dosbox



--2.73--

  • Replacing the HLSL compiler in Glide ps shaders with an own code generator
    So now dgVoodoo does not need the external D3DCompiler at all

  • Optimizations in D3D sw vertex processing calcs

  • Optimizations in D3D state blocks + some minor D3D9 optimizations

  • Fixing a D3D9 shader incompatibility (Mass Effect)

  • Fixing a shader validator bug (Garfield - Lasagna World Tour)

  • Fixing a regression bug in D3D frontend (Crush)

  • Fixing another bug in D3D frontend

  • Fixing a D3D12 API driving bug

  • Fixing a bump mapping bug in FF shaders (Matrox G400 demo)

  • Fixing a cube texture resolution scaling bug (Colin McRae Rally 3)

  • Fixing a vs.1.x code generator bug (Splinter Cell 2)

  • Fixing D3D9 vs.3.x pointsize output (Fable 3)

  • Minor comparison sampling fix for D3D8/9 (Test Drive Unlimited 2) (D3D12 is recommended)

  • Fixing a D3D colorkeying bug (Restricted Area)

  • Changing the criterions for accepting incoming refresh rate values in DX (see the DirectX readme for details)

  • Fixing a bug in Glide D3D12 backend (Ultimate Race Pro)

  • Fixing an encountered Glide bug (texture chroma range)

  • Minor modification for Glide SstWinOpen to accept (and convert) more invalid buffercount combinations

  • Some debug layer fixings for Glide3 Napalm

  • Gamma ramps now automatically work with D3D12 (with underlying optimizations)
    Color profile is always inherited because of calibration standards on modern systems
    Option General\InheritColorProfileInFullScreenMode is only taken into account when a D3D11 output API is explicitly selected (compatibility mode for old hw)

  • Introducing option GeneralExt\FullscreenAttributes with attribute 'Fake' to enable fake fullscreen rendering

  • Enabling control tabbing + fixing tab-order for the CPL



--2.72--

  • Fixing a state management bug in the D3D11/12 backend (XIII)

  • Fixing a DDraw incompatibility bug (Tetris Worlds)

  • Fixing a Glide LFB locking bug + shutdown incompatibility (Speedboats, but this game has other problems too, causing crash)

  • Fixing a DDraw palette bug (Jedi Knight 2, ... and other old Star Wars games)

  • Fixing a bug in D3D9 frontend (Gothic 3)

  • Fixing an incompatibility in D3D8/9 frontend (Gothic 3)

  • Fixing some bugs in the D3D11 backend when revising code

  • Minor CPL improvements: adding 4GB to DX predefined videomemory values and observing textboxes to detect config changes

  • Internal changes/minor optimizations for future features



--2.71.3--

  • Fixing a bug in the DXBC generator (Metal Gear 2 Solid Substance, the original version)

  • Making DDraw device window creation compatible with MS DDraw (Everquest)

  • Minor improvement in the DDraw hook layer (Submarine Titans)

  • Fixing a bug in the shader code validator (Anarchy Online)

  • Implementing a minor missing thing in the D3D12 backend (Anarchy Online, but affects other appications as well)

  • Fixing a Glide texture upload bug (Montezuma's Return)

  • Fixing a thing incompatible with MS D3D (Christmas Magic)

  • Fixing a minor D3D12 leak



--2.71.2--

  • Fixing blurry output of upscaled DDraw rendering

  • Restoring old window handling mode for D3D11

  • Minor Glide debug layer improvement for nonstandard resolution/refresh rate



--2.71.1--

  • Uhmmm....



--2.71--

  • Support for true multimonitor DDraw applications (my test app)

  • Minor performance improvements in D3D frontend and D3D12 backend (most noticable with Dreamfall The Longest Journey with D3D12)

  • Fixing a memory leak (my own tests)

  • Some minor refactoring in the code

  • Fixing a DDraw bug causing crash (Will Rock)



--2.70-- 

  • Support for Direct3D12 as output API, the minimum required feature level is 11.0
    Improved/fixed fast video memory access for the DirectX modules.
    Refactored backend code along with some Direct3D11-related bugs fixed.

  • See the readme for the details.

  • dgVoodoo API 2.70 is also included here (for developers).



--2.64--

  • Ummm...



--2.63--

  • New type of filters for resampling the output image are added (Bicubic, Lanczos-2, Lanczos-3).

  • Also, mipmapping support for downscaling the output image is added.

  • A few bugfixings, see the readme for the details.



--2.63.x-- 

  • Ummm...



--2.62--

  • Now all section of the configuration file is editable through the CPL.

  • A new config element is added.

  • Many bugfixings, see the readme for the details.



--2.62.x--

  • Ummm...



--2.61--

  • Support for the external compiler is completely removed for the DirectX modules.

  • A lot of DirectX-related bugfixings.

  • See the readme for the details.



--2.60-- 

  • First version of Direct3D9 implementation is added.

  • Also, support for external HLSL compiler is made optional and replaced with an internal shader code translator.

  • See the readme for the details.



--2.55--

  • Debug Layer is added into the special release of dgVoodoo modules.

  • Migrating to INI format config file to replace old binary ones.

  • Control Panel app is now PerMonitorAwareV2-aware for DPI scaling.

  • Tremendous bugfixings, see the readme for the details.



--2.55.x--

  • These releases includes minor and incremental bugfixes for v2.55.

  • Also, x64 version of Glide libraries are added for QEmu for Kjliew's Glide patch.

  • Some new config elements are also introduced.



--2.54--

  • Lot of DirectX-related bugfixings.

  • Some minor Glide-related bugfixings.

  • Some Windows input and Glide-DirectDraw transition issues are also fixed.

  • For the details, see the readme.



--2.53--

  • Support for dynamic resolutions in resolution overriding.

  • Also, GF4 shadow buffering is implemented, works nicely with Splinter Cell 1.

  • A lot of bugfixings.

  • See the readme for the details.



--2.52--

  • 2 new output API's are added: D3D11 with FL 10.1 and the MS WARP renderer.

  • Movie playing through DirectShow is also supported.

  • Resolution forcing in DirectX modules is also implemented.

  • See the readme for the details.

bottom of page