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.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 into that directory. Overwriting existing game files is not usually recommended. Always backup any files before overwriting them. - 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 Direct3D9
ForceMipMapAutoGenoption (#501) - Added
HideWindowFocusChangesoption (#515) - Added implementations for
Begin(),BeginIndex(),Vertex(),Index(), andEnd() - Added implementation for
DDSCAPS2_NOTUSERLOCKABLE - Added improved handling for restoring DirectDraw/Direct3D windows after Alt+Tab
- Added improved CriticalSection handling
- Added emulation for
SetPrivateData() - Added sticky behavior for multithreaded and FPU preserve flags (#66)
- Added support for anti-aliasing on render target textures (#494, #497)
- Added failover to non-Ex functions when using D3d9to9Ex
- Added support for
MouseMovementFactorinGetDeviceState()(#490) - Added support for forwarding dplay.dll to dplayx.dll
- Added automatic calls to
GenerateMipSubLevels()when auto-generated mipmaps are enabled - Added improved enable/disable handling for
ForcedKeyboardLayout(#464) - Added unloading of keyboard layouts on exit (#464)
- Added HIWORD language ID support (#464)
- Updated and reorganized end-of-write preset code for
Dd7to9 - Updated
MouseMovementPaddingto accumulate movement before applying padding (#511) - Updated
FixHighFrequencyMouseto support multiple device data formats (#481) - Updated
FixHighFrequencyMouseto reduce recursive processing overhead (#481) - Updated Direct3D9 interface address lookup and
ProxyInterfacehandling - Updated
QueryInterfacefor Direct3D9 and DirectInput8 - Updated handling of surface description flags during device changes
- Updated shadow surface usage to automatically assist
Blt()andGetDC()when needed - Updated shadow surface syncing to copy only when modified
- Updated rendering logic to prefer up-to-date render targets over shadow surfaces
- Updated and simplified
ProcessVerticesUPandTransformVertexUP - Updated
FixPerfCounterUptimeto reduce threshold from one day to one hour - Updated mipmap change detection to use USN instead of UniquenessValue
- Updated device RasterCaps/ShadeCaps to remove unsupported caps (CubeMap, Volume, Stipple, Mono, Phong)
- Updated Z-buffer depth fill to always scale to 16-bit
- Updated ClipSiblings style removal to apply only when SwapEffect is disabled
- Updated WndProc WINDOWPOS handling to prevent negative top coordinates and other invalid changes
- Updated handling and filtering of
WM_ACTIVATEAPPmessages - Updated filtering of window size messages during device creation (#450)
- Updated handling of multiple DirectDraw devices across different monitors/device indices
- Updated present logic to skip when no palette changes occur
- Updated and optimized
ComputeLightingfor improved performance and accuracy - Updated system memory vertex processing to use mixed-mode vertex processing
- Updated device window handling to ensure it is treated as a top-level window (#520)
- Updated
BltBatch()to useProxyInterface - Updated device state restoration after device changes
- Updated support for querying
IID_IDirectDraw3from v3 interfaces - Updated exported functions to use high ordinals (>100) to avoid conflicts (#514)
- Updated stubs to use a separate build configuration for wsock32
- Updated and simplified D3DX9 integration to remove stub function requirements
- Updated Vulkan detection handling
- Updated logging to ignore errors when querying non-mipmap textures (#516)
- Updated debug logging to reduce WndProc verbosity (#283)
- Fixed incorrect mipmap max level detection
- Fixed device state capture during StateBlock recording (#509)
- Fixed
GetAvailableVidMemwhen called with empty caps - Fixed invalid viewport MinZ/MaxZ values from older games
- Fixed Execute buffer vertex processing by assuming
D3DFVF_VERTEX - Fixed compatibility with older games missing
DDSCAPS_3DDEVICE - Fixed mipmap handling by ignoring memory type when retrieving attached surfaces
- Fixed
ResetD9Device()failure handling - Fixed implicit creation of IDirect3DVertexDeclaration9 (#506)
- Fixed priority and LOD handling for surfaces and textures
- Fixed validation of FVF codes
- Fixed reference counting issue with shadow/emulated surfaces