Skip to content

@elishacloud elishacloud released this May 30, 2021

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
Assets 4

@elishacloud elishacloud released this Aug 9, 2020

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
Assets 4

@elishacloud elishacloud released this Oct 1, 2019

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.
Assets 4

@elishacloud elishacloud released this Jul 28, 2019

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.

Assets 4

@elishacloud elishacloud released this Jul 6, 2019

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
Assets 4

@elishacloud elishacloud released this Feb 20, 2018

  • 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
Assets 3

@elishacloud elishacloud released this Jul 16, 2017

  • 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
Assets 3

@elishacloud elishacloud released this May 29, 2017

  • 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
Assets 3

@elishacloud elishacloud released this May 6, 2017

  • 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
Assets 3

@elishacloud elishacloud released this Feb 17, 2017

Initial release

Assets 3