Skip to content

Releases: elishacloud/dxwrapper

DxWrapper v1.1.6900.22

03 Oct 17:58
Compare
Choose a tag to compare

Instructions:

  1. Download the dxwrapper.zip and unzip it to a folder.
  2. 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 or winmm.dll. You only need to choose one stub file to load dxwrapper into the game.
  3. Copy this .dll file from the 'Stub' folder plus the dxwrapper.dll and dxwrapper.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.
  4. 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 using D3d8to9 and Direct3D9, rather than just Dd7to9
  • 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

30 May 01:22
6be8057
Compare
Choose a tag to compare

Instructions:

  1. Download the dxwrapper.zip and unzip it to a folder.
  2. 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 or winmm.dll.
  3. Copy this .dll file from the 'Stub' folder plus the dxwrapper.dll and dxwrapper.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.
  4. 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

09 Aug 19:40
Compare
Choose a tag to compare

Instructions:

  1. Download the DxWrapper.zip and unzip it to a folder.
  2. 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 or winmm.dll.
  3. Copy this .dll file from the 'Stub' folder plus the dxwrapper.dll and dxwrapper.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.
  4. 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

01 Oct 02:32
Compare
Choose a tag to compare

Instructions:

  1. Download the DxWrapper.zip and unzip it to a folder.
  2. 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 or winmm.dll.
  3. Copy this .dll file from the 'Stub' folder plus the dxwrapper.dll and dxwrapper.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.
  4. 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

28 Jul 03:41
Compare
Choose a tag to compare

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

06 Jul 01:05
3aacf45
Compare
Choose a tag to compare

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

20 Feb 06:23
Compare
Choose a tag to compare
  • 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

DxWrapper v1.0.990.18

16 Jul 02:38
Compare
Choose a tag to compare
  • Auto Generate Build Number
  • Update Readme file
  • Update license files
  • Simplify wraper modules to use macros
  • Cleanup code for readability
  • Reorganized files into respective folders
  • Rename 'Compat::Log()' to 'LOG'
  • Rename dgame.ini to Settings.cpp
  • Added wrapper for dinput.dll, bcrypt.dll and cryptsp.dll
  • Updated wrapper to load compatibility functions first
  • Update to use jmpaddr rather than nullptr for all wrapper APIs
  • Added PostMessage for SW_SHOWNORMAL in fullscreen.cpp
  • Added short sleep when starting FullscreenThread
  • Updated varable types in cfg, fullscreen and DSoundCtrl
  • Remove unneeded 'try ... except' clauses in fullscreen
  • Added InterlockedExchange for some shared varables to reduce the chances of threading issues
  • Fixed issue where LeaveCriticalSection was not getting called
  • Fixed issue with for loop to make sure it does not exceed the dtypeArraySize
  • Created d3dx9.h dynamic library
  • Made it so that system d3d8.dll is no longer loaded when d3d8to9 is enabled
  • Updated d3d8to9 return value for CopyRects, CreateVertexShader, GetVertexShaderDeclaration and CreatePixelShader. Removed E_FAIL and E_NOTIMPL and replaced them with D3DERR_INVALIDCALL.
  • Fixed d3d8to9 SetRenderState to call the correct D3DRENDERSTATETYPE when D3DRS_ZBIAS is used.
  • Fixed d3d8to9 reference count and palette flag for Need For Speed III
  • Updated d3d8to9 CreateVertexShader to fix missing textures in some games such as Hitman 2 Silent Assassin and Indiana Jones and the Emperor's Tomb.
  • Fixed d3d8to9 CreatePixelShader to fix lighting issues with Star Wars Republic Commando and Silent Hill 2
  • Added caching in d3d8to9 for EnumAdapterModes to fix an issue with WineD3D taking a very long time to start
  • Added caching in d3d8to9 for the following classes: Direct3DSurface, Direct3DTexture, Direct3DVolumeTexture, Direct3DCubeTexture, Direct3DVolume, Direct3DVertexBuffer, Direct3DIndexBuffer and Direct3DSwapChain
  • Updated d3d8to9 so that it dosen't delete the classes until Direct3D8Device is deleted
  • Udated d3d8to9 reference counting by removing RefCount
  • Update d3d8to9 the Lock() functions for Vertex and Index Buffers so that they ignore the D3DLOCK_DISCARD flag if the D3DUSAGE_WRITEONLY flag is not set. Fixes the missing texture issue with Raymond 3.
  • Update d3d8to9 logging to match d3d8to9/master
  • Updated d3d8to9 SetCurrentTexturePalette to use PC_NOCOLLAPSE to fix a crash in Need for Speed III
  • Added d3d8to9 error checking for palette API calls to prevent crashes when the device does not support palettes

DxWrapper v0.1.0.17

29 May 05:17
Compare
Choose a tag to compare
  • Added DirectSoundControl (DSoundCtrl) project for improved sound control
  • Added hooking for DDrawCompat, DSoundCtrl and d3d8to9 APIs to allow these functions to work with all dll types
  • Added option for DDrawCompatDisableGDIHook to fix games where GDI hooking causes an issue
  • Auto failover to 32bit mode for DDrawCompat when there is a failure to get the requested display mode
  • Made d3d9.dll, dwmapi.dll, uxtheme.dll, version.dll and winmm.dll load dynamically
  • Set ResetScreenRes to disabled by default
  • Renamed EnableStoppedDriverWorkaround to StoppedDriverWorkaround
  • Added logging for dxwrapper version information
  • Added logging for operating system type and version
  • Added logging for process name and PID
  • Fixed debug build to get it working in Visual Studio
  • Fixed debug logging in hotpatch and iatpatch
  • Added debug logging for each Config setting
  • Moved exception handling logs to the debug log
  • Ensure that only one copy of a dll is loaded by LoadDll()
  • Update how SingleProcessAffinity is handled
  • Added GetFunctionAddress() to get function addresses from binary file since GetProcAddress() does not return the correct address
  • Updated API hooking code and enabled HotPatch hooking
  • Removed MinHook from the code
  • Fixed threading issue with config ParseCallback
  • Fixed the unloading of dll libraries to allow all libraries to be freed on exit
  • Removed critical section from fullscreen.cpp to fix possible deadlock
  • Refreshed d3d8to9 from corsire branch

DxWrapper v0.1.0.16

06 May 22:15
Compare
Choose a tag to compare
  • Made d3dx9_xx.dll dynamically linked
  • Added all 12 AppCompatData options for DXPrimaryEmulation
  • Added option to override the DisableMaxWindowedMode option in DDrawCompat, to fix compatibility issues with Windows 10 Creators Update
  • Added option to override the SetProcessAffinityoption in DDrawCompat, to fix issues with some games that have perf issues when setting single processer affinity
  • Minor restructuring of the project and exploding out the header files
  • Remove standalone DirectX SDK dependency
  • D3d8to9 alternate-ref counting
  • Renamed D3d8to9 and DDrawCompat in ini file