Dxwrapper
Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.
Install / Use
/learn @elishacloud/DxwrapperREADME
🚀 Support the Project! 🌟
Your support fuels development of the dd7to9 functionality to enable older games to run smoothly on current platforms. Whether it's a one-time boost via PayPal or ongoing monthly support on Patreon, your contribution ensures continued improvements and commitment to the growth of the project. Please note, your support is invaluable, but it won't influence specific game prioritization. Join us on this journey!
DxWrapper
Introduction
DxWrapper is a .dll file designed to wrap DirectX files to fix compatibility issues in older games. This project is primarily targeted at fixing issues with running games on Windows 10/11, by simply dropping .dll and .ini files into the game folder. Its secondary purpose is to offer a single tool combining several projects into one.
Features
DxWrapper includes a wide range of features:
🎮 Major Graphics Conversion and Enhancement
- DirectDraw/Direct3D 1–7 to Direct3D 9 conversion via Dd7to9
- Direct3D 8 to Direct3D 9 conversion via d3d8to9
- Direct3D 9 hooking to intercept and enhance graphics calls
- DirectInput 1–7 to DirectInput 8 conversion via dinputto8
- DirectSound hooking (
dsound.dll), similar to DSoundCtrl, to enhance or fix audio - DDrawCompat integration (v2.0, 2.1, 3.2) for improved compatibility with configurable options
🖥️ Resolution and Renderer Enhancements
- Resolution unlock for Direct3D 1–7 using LegacyD3DResolutionHack — enables 4K and beyond
- Direct3D 9 to Direct3D9Ex conversion for enhanced rendering performance
- Direct3D 9 to Direct3D 12 conversion via D3D9On12
🛠️ Rendering and Compatibility Fixes
- Clip plane caching to fix issues in D3D9 games (Far Cry example)
- Environment cube map fixes for broken textures (issue example)
- Vertex processing mode override to fix performance issues
- Scanline removal from games that display them
- Interlacing removal to improve visual quality
🧩 Rendering Enhancements (Forced Features)
- Force anti-aliasing support in games that don't support it natively
- Force anisotropic filtering in unsupported games
- Force vertical sync (VSync) on or off
- Force windowed mode in fullscreen-only games
- Force use of discrete GPU (dGPU) via
GraphicsHybridAdaptercall - Force single Begin/EndScene pair per Present call (per Microsoft documentation)
🎛️ Frame and Timing Control
- FPS limiter to prevent games from running too fast
- Performance counter patching to fake uptime < 1 day (fixes long-uptime issues)
- Single CPU affinity setting for multi-core compatibility issues
- Application Compatibility Toolkit settings override for
DXPrimaryEmulation:- Includes:
LockEmulation,BltEmulation,ForceLockNoWindow,ForceBltNoWindow,LockColorkey,FullscreenWithDWM,DisableLockEmulation,EnableOverlays,DisableSurfaceLocks,RedirectPrimarySurfBlts,StripBorderStyle,DisableMaxWindowedMode
- Includes:
📐 Compatibility and GDI Fixes
- GDI and DirectDraw mixing support to improve 2D compatibility
- Pitch lock fix for games with misaligned surfaces
- Disable Fullscreen Optimizations (MaximizedWindowedMode) to resolve performance/stability issues
- Disable High DPI scaling to fix UI scaling issues
- Disable Microsoft Game Explorer (GameUX) to stop
rundll32.exeCPU spikes - Disable audio clipping to eliminate pops and clicks during playback
🔧 Advanced Customization and Modding
- Hot-patch memory in real time (e.g., remove CD checks or fix bugs)
- Set Windows version seen by game (helps with OS compatibility)
- Handle in-game crashes by patching problematic instructions (nop'ing offending code)
- Launch custom processes when the game starts
- Load custom
.dllfiles into game processes - ASI loader to inject
.asiplug-ins (Ultimate ASI Loader compatible) - DxWrapper as an ASI plug-in (can be loaded by other ASI loaders)
🧩 Miscellaneous Fixes and Tweaks
- Set game window to fullscreen (if native fullscreen fails)
- Show FPS counter in-game
- Filter input when the game window loses focus (prevents input when other windows are active)
- Various compatibility flags and tweaks, including:
DdrawEmulateSurface,DdrawEmulateLock,DdrawKeepAllInterfaceCache,DdrawLimitTextureFormats,DdrawLimitDisplayModeCount,LimitStateBlocks,SetPOW2Caps
Compatibility List for Games on Windows 10/11
So far I have tested this with hundreds of games (many of which don't otherwise work correctly) to get them running on Windows 10/11. Most games will work, but some still have issues. Check out the Compatible Games wiki and the Dd7to9 Supported Games wiki for a list.
Installation
- Download the latest binary release from the repository's Release page and unzip it to a folder.
- Determine which stub .dll file is needed for the game. This depends on many factors which will be explained on page created later. Common stub dll's to use are
ddraw.dll,d3d8.dll,d3d9.dll,dsound.dllorwinmm.dll. You only need to choose one stub file to load dxwrapper into the game. - Copy this .dll file from the 'Stub' folder plus the
dxwrapper.dllanddxwrapper.inifiles into the game's installation directory, next to the main executable file. For some games the main executable is in a subdirectory (like 'Bin', 'Exe' or 'App') so the files will need to be copied it into that directory. Overwriting of any existing game files is not recommended. - Open up the
dxwrapper.inifile in a text editor and enable the settings needed for the game.
Do not attempt to overwrite any .dll in a Windows system directory as it is currently not supported and will not work.
Uninstallation
Delete the DxWrapper .dll and .ini files from the game's directory. You can also delete the log file, if there is one.
Configuration
To configure DxWrapper, edit the .ini file and enable the settings wanted. See the Configuration wiki for more details.
Sample configuration file: dxwrapper.ini.
List of all configuration options: allsettings.ini
Logging
The log file will be created in the same folder where the game executable is located. It will be named 'dxwrapper' with the name of the game executable appended to it. So if you are running the file game.exe then the log file will be called dxwrapper-game.log.
Supported DLLs
DxWrapper can wrap the following dlls:
- bcrypt.dll
- cryptbase.dll
- cryptsp.dll
- d2d1.dll
- d3d8.dll
- d3d9.dll
- dciman32.dll
- ddraw.dll
- dinput.dll
- dinput8.dll
- dplayx.dll
- dsound.dll
- dwmapi.dll
- msacm32.dll
- msvfw32.dll
- version.dll
- wininet.dll
- winmm.dll
- winmmbase.dll
- winspool.drv
- wsock32.dll
License
Copyright (C) 2025 Elisha Riedlinger
This software is provided 'as-is', without any express or implied warranty. In no event will the author(s) be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
- This notice may not be removed or altered from any source distribution.
Third-Party Licenses
d3d8to9 by Patrick Mours
Portions of this project make use of code from the d3d8to9 project by Patrick Mours, which is licensed as follows:
Copyright (C) 2015 Patrick Mours.
All rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
