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.dllorwinmm.dll. - 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 existing game files is not usually recommended. - Open up the
dxwrapper.inifile 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
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.dllorwinmm.dll. - 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 existing game files is not usually recommended. - Open up the
dxwrapper.inifile 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
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.dllorwinmm.dll. - 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 existing game files is not usually recommended. - Open up the
dxwrapper.inifile 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
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
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
- 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
- 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
- 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
- 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
Initial release