Releases: elishacloud/dxwrapper
Release v1.2.7400.25
Instructions:
- Download the dxwrapper.zip 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.dll
orwinmm.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.dll
anddxwrapper.ini
files 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 into that directory. Overwriting existing game files is not usually recommended. Always backup any files before overwriting them. - Open up the
dxwrapper.ini
file in a text editor and enable the settings needed for the game.
Note: Try the options under the [Compatibility]
section first. For many games these are all that are needed. See the Configuration for details on the options.
What's New?
- Add support for Viewport lighting functions: AddLight(), DeleteLight() and NextLight()
- Add partial support for surface UpdateOverlay() function
- Add Hooking Patterns to settings for memory updates and game patching
- Add partial support for paletted render targets
- Add hook for HeapSize() to validate the handle to prevent crashes in some games
- Add failover to default refresh rate if specified rate fails
- Add experimental pause for resolution switching to help prevent crashes in case monitor takes time to switch to new resolution
- Add FPS to the debug ImgGui display
- Remove unneeded DdrawFlipFillColor from settings ini
- Update order enum display modes for better compatibility in some games
- Improve speed of system memory surface copies in some cases
- Force emulation for certain system memory surfaces to prevent game crashing when accessing the surface outside of Lock/Unlock pair
- Make interfaces reusable to handle game misuse
- Filter some messages while forcing windowed mode for better game compatibility
- Use dummy surface memory for lock failure to prevent crash in some games
- Update how gamma support works to prevent solid back screen in some games
- Move frame count limiter to happen before before the Present() rather than after
- Fix Texture Load() function which caused textures to be blank in some games
- Fix SetRenderState MIN texture filter which caused transparencies to be opaque
- Fix MipMap count issue which caused MipMaps to fail in some case
- Fix WinVersionLie to work independently
- Fix hooks for supporting drawex
- Fix hang with DdrawAutoFrameSkip
- Fix potential crash in FindDevice()
- Fix shadow surface when locking texture render targets
- Other misc fixes and updates
Release v1.2.7300.25
Instructions:
- Download the dxwrapper.zip 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.dll
orwinmm.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.dll
anddxwrapper.ini
files 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 into that directory. Overwriting existing game files is not usually recommended. Always backup any files before overwriting them. - Open up the
dxwrapper.ini
file in a text editor and enable the settings needed for the game.
Note: Try the options under the [Compatibility]
section first. For many games these are all that are needed. See the Configuration for details on the options.
What's New?
- Added new WinVersionLie option
- Added more generic API hooking to help prevent issues on some OS's
- Added support to DDrawCompat for loading ddraw.dll via COM controls (IClassFactory)
- Added support for having a render target as a texture with dd7to9
- Added support for GetInfo() Direct3D function
- Added support for games that use ddrawex.dll
- Added better simulation for window and display sizes with dd7to9's SetDisplayMode and SetCooperativeMode functions to improve game compatibility
- Updated d3d8to9 submodule
- Updated dinputto8 for better game support
- Disabled Direct3D v1 interface to allow games to failover to DirectDraw
- Fixed some device lost issues
- Fixed Direct3D Viewport Clear() zbuffer parameters
- Fixed texture map blending render states in dd7to9
- Fixed black screen in some cases when gamma is used in dd7to9
- Fixed potential crash with DeviceLookupCacheTime
- Fixed crash in EnableWindowMode from error in StretchRect()
- Fixed error with DDrawCompat integration into dxwrapper that caused man games to have a black screen
- Fixed an issue with Blt (surface copy function) that could cause extra pixels outside the RECT
Release v1.2.7200.25
Instructions:
- Download the dxwrapper.zip 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.dll
orwinmm.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.dll
anddxwrapper.ini
files 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 into that directory. Overwriting existing game files is not usually recommended. Always backup any files before overwriting them. - Open up the
dxwrapper.ini
file in a text editor and enable the settings needed for the game.
Note: Try the options under the [Compatibility]
section first. For many games these are all that are needed. See the Configuration for details on the options.
What's New?
- Added full support for many Direct3D games with Dd7to9 to convert them to Direct3D9
- Added support for Render Target for Direct3D game
- Added support for many new surface formats, such as D3DFMT_NV12, D3DFMT_UYVY and D3DFMT_YUY2 (among others)
- Added ImGui support for debugging
- Added support for Windows XP (recommend having DirectX9c installed)
- Added compatibility hooks for older games to make them run smoother
- Added full support for MipMaps (including option for AutoMipMap generation)
- Added full support for color keying with Direct3D games
- Added support for lighting for Direct3D games
- Added support for ProcessVertices(), SetBackground(), GetBackground() functions for Direct3D games
- Added partial support for Alt+Tab in games
- Added WinProc hooks to see and filter window messages
- Added an option to fix issues that some games have with high frequency mice
- Improved Blt (surface copy) support
- Improved support for windowed DirectDraw and Direct3D games
- Improved performance of wrapper (both memory and speed)
- Switched legacy games to use legacy flip mode (allows drawing GDI on top of DirectX)
- Limits disk space seen by games to prevent crashes in some games
- Clear FPU error flags before present to avoid a bug with some games that happen on Nvidia video cards
- Fixed Windows 11 issue with crashes and hangs
- Fixed pitch errors in some games (including disabling byte alignment by default)
- Fixed some potential memory leaks
- Fixed a reference counter issue that could cause some games to crash
- Fixed issues that would sometime cause the game window to open in the background
- Many other fixes and updates...
DxWrapper v1.1.6900.22
Instructions:
- Download the dxwrapper.zip 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.dll
orwinmm.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.dll
anddxwrapper.ini
files 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 existing game files is not usually recommended. - Open up the
dxwrapper.ini
file in a text editor and enable the settings needed for the game.
Note: Try the options under the [Compatibility]
section first. For many games these are all that are needed. See the Configuration for details on the options.
What's New?
- Added Dd7to9 support for Direct3D games to convert them to Direct3D9 (support is still limited)
- Added support for DirectDraw/Direct3D games for in-game window mode (for games that support window mode)
- Added support for D3DFMT_DXT1-5 for games using
Dd7to9
- Added partial support for FOURCC for games using
Dd7to9
- Added high performance FPS limiter for games using
Dd7to9
,D3d8to9
or Direct3D9 - Added an option to use Direct3D9On12 for games using
Dd7to9
,D3d8to9
or Direct3D9 - Added an option to use GraphicsHybridAdapter for games using
Dd7to9
,D3d8to9
or Direct3D9 - Added option to disabled MaximizedWindowedMode (fullscreen optimizations) for Direct3D 8 and 9 games
- Added code for a universal hook for WndProc (disabled for this release)
- Added stubs for: cryptbase.dll and winspool.drv
- Updated
OverrideRefreshRate
to support games usingD3d8to9
and Direct3D9, rather than justDd7to9
- Integrated D3DX9 into module
- Using D3DX9 and BitBlt for DirectDraw Blt functions
- Use Reset for
Dd7to9
to modify device settings rather than releasing and recreating the Direct3D9 - Use separate thread for
DdrawAutoFrameSkip
for DirectDraw games to improve performance - Renamed and moved a number of settings
- Disabled MouseHook by default
- Disabled screen reset on exit by default
- Fixed a crash in Direct3D9 wrapper
- Fixed a DDrawCompat v0.3.1 issue with Windows 11
- Fixed issues with color keying in some games, causing missing textures
- Fixed an issue with Flip surfaces in some games, causing the game to crash
- Fixed an issue where new DirectDraw v1 surfaces would not get the same address as recently released surfaces which some games expect, causing the game to crash
- Fixed an issue where the game would release a surface while it was still locked, causing the game to crash
- Fixed an issue where games would use IID_IUnknown in IClassFactory, causing some games to bypass dxwrapper or crash
- Many, many other fixes and updates
DxWrapper v1.0.6542.21
Instructions:
- Download the dxwrapper.zip and unzip it to a folder.
- Determine which .dll file is needed for the game. This depends on many factors which will be explained on page created later. Most commonly it is
ddraw.dll
,dsound.dll
orwinmm.dll
. - Copy this .dll file from the 'Stub' folder plus the
dxwrapper.dll
anddxwrapper.ini
files 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 existing game files is not usually recommended. - Open up the
dxwrapper.ini
file in a text editor and enable the settings needed for the game.
Note: Try the options under the [Compatibility]
section first. For many games these are all that are needed. See the Configuration for details on the options.
What's New?
- Added DDrawCompat v0.3.1
- Added Dd7to9 compatibility with many additional games
- Added Dd7to9 support for display modes: 640x400, 320x240 and 320x200
- Added option to remove scanlines in DirectDraw games
- Added feature to fix byte alignment (pitch) issues in DirectDraw games
- Added support for converting a few Direct3D 1-7 functions to Direct3D 9
- Added option to ForceMixedVertexProcessing and ForceSystemMemVertexCache to fix some perf issues in Direct3D 9
- Fixed issue in Direct3D 9 wrapper that could cause games to bypass the wrapper
- Fixed AnisotropicFiltering in Direct3D9 to set texture filter to anisotropic mode
- Many other fixes and updates
DxWrapper v1.0.6387.21
Instructions:
- Download the DxWrapper.zip and unzip it to a folder.
- Determine which .dll file is needed for the game. This depends on many factors which will be explained on page created later. Most commonly it is
ddraw.dll
,dsound.dll
orwinmm.dll
. - Copy this .dll file from the 'Stub' folder plus the
dxwrapper.dll
anddxwrapper.ini
files 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 existing game files is not usually recommended. - Open up the
dxwrapper.ini
file in a text editor and enable the settings needed for the game.
Note: Try the options under the [Compatibility]
section first. For many games these are all that are needed. See the Configuration for details on the options.
What's New?
- Added Dd7to9 compatibility with many games
- Added option for AudioClipDetection
- Added Anisotropic Filtering support in DirectX 9
- Added option to Blt to GDI for Dd7to9
- Added filter in DirectX 9 wrapper for windows event messages to prevent some games from hanging
- Updated dinputto8 module to fix joystick and keyboard issues with some dinput games
- Added wrapper for dwmapi.dll
- Better handing of ddraw structures for Dd7to9
- Allow present even with locked surfaces when using Dd7to9
- Call present after setting color control or gamma control when using Dd7to9
- Fixed surface pitch when using Dd7to9
- Fixed SpeakerConfig options
- Fixed stability issues with many DirectDraw games
DxWrapper v1.0.6334.21
Instructions:
- Download the DxWrapper.zip and unzip it to a folder.
- Determine which .dll file is needed for the game. This depends on many factors which will be explained on page created later. Most commonly it is
ddraw.dll
,dsound.dll
orwinmm.dll
. - Copy this .dll file from the 'Stub' folder plus the
dxwrapper.dll
anddxwrapper.ini
files 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 existing game files is not usually recommended. - Open up the
dxwrapper.ini
file in a text editor and enable the settings needed for the game.
Note: Try the options under the [Compatibility]
section first. For many games these are all that are needed. See the Configuration for details on the options.
What's New?
- Added option to emulate the surface when using Dd7to9.
- Added scaling and integer clapping when using Dd7to9.
- Added option to preserve the aspect ratio when using Dd7to9.
- Added option to clip primary surface when using Dd7to9.
- Added full support for 24bit surfaces when using Dd7to9.
- Added implementation for SetClipList(), GetClipList() and FlipToGDISurface() when using Dd7to9.
- Improved performance of Dd7to9.
- Fixed TestCooperativeLevel(), IsLost(), Restore() and Reset() function conversion when using Dd7to9.
- Fixed an issue with SetDisplayMode() using Dd7to9.
- Fixed AntiAliasing issues when using d3d9.
- Fixed QueryInterface issues with d3d9.
- Fixed hooking to work on Linux/Wine.
DxWrapper v1.0.6298.21
This update mainly includes fixes for Dd7to9 which can convert DirectDraw 1-7 (ddraw.dll) to Direct3D 9 (d3d9.dll) for better compatibility with modern systems. This update supports most DirectDraw games that only use the 2D features.
DxWrapper v1.0.6284.21
This is a major update. There are too many changes to list.
Some of the key features are:
- Conversion of DirectDraw 1-7 (ddraw.dll) to Direct3D 9 (d3d9.dll). See this wiki for more details: Dd7to9
- Includes LegacyD3DResolutionHack to remove the artificial resolution limit from Direct3D 1-7, which allows DirectDraw games to play at 4K resolution
- Options to run Direct3D 8 and Direct3D 9 games in windowed mode
- Options to disable Microsoft Game Explorer (GameUX) to prevent rundll32.exe high CPU
DxWrapper v1.0.2383.20
- Added support for d2d1.dll, d3d10.dll, d3d10core.dll, d3d11.dll, d3d12.dll, d3dim.dll, d3dim700.dll, dciman32.dll, dinput8.dll, msacm32.dll, msvfw32.dll, vorbisfile.dll, winmmbase.dll, xlive.dll
- Added Stub dll to load DxWrapper
- Added an ASI loader
- Added full ddraw wrapper to create a fix for Star Trek Armada 1
- Added AntiAliasing support (Windows 10 only)
- Added full d3d9 wrapper
- Added hook for GetProcAddress to handle wrapped functions that are missing or not available in the OS
- Added hook for GetModuleFileName to fix module name in modules loaded from memory
- Added mutex to ensure that DxWrapper is not loaded twice
- Added multiple config file support
- Added log for video card type and description
- Updated Fullscreen to check for the child handle to fix display issues with Gangsters Organized Crime and sound issues with Alien Nations
- Updated DDrawCompat to install hooks with DllGetClassObject to fix display issues with Gangsters Organized Crime
- Updated DSoundCtrl default settings
- Updated d3d8to9 code to v1.7.0
- Updated d3d8to9 to load d3d9 sooner
- Fixed d3d8to9 when device is not ready
- Fixed d3d8to9 PixelShader issue in Silent Hill 2
- Fixed crash when wrapped functions return void and those functions are not available in the OS
- Fixed some possible multi-threading issues
- Fixed heap corruption issue with debug build
- Fixed minor memory leak in WriteMemory
- Fixed ResetScreenRes option to fix screen brightness for Silent Hill 2 when using WineD3D
- Fixed issue with wrapper mode detection
- Fixed winmm library function names
- Fixed Disasm unloading
- Unhook wrapper APIs when unloading
- Unhook UnhandledExceptionFilter APIs when unloading
- Disabled extra d3d8to9 logging in Release build