github elishacloud/dxwrapper v1.8.8600.25
Release v1.8.8600.25

3 hours ago

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 into that directory. Overwriting existing game files is not usually recommended. Always backup any files before overwriting them.
  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.

Added

DirectDraw / Direct3D

  • Added support for IDirectDrawFactory (#578)
  • Added basic implementations for Pick() and GetPickRecords()
  • Added support for the DDGDI_GETHOSTIDENTIFIER flag in GetDeviceIdentifier()
  • Added a LimitRefreshRates option to reduce the number of display modes returned during enumeration, preventing crashes in some games with small display mode buffers
  • Added ForceMipMapUsage option to force the use of mipmaps for all textures (#525)

Display / Graphics

  • Added Brightness and Contrast options (#579)
  • Added DPI scaling configuration options (#562)

Performance

  • Added GPU handling for all ProcessVertices calls for improved performance and more accurate behavior
  • Added a ProcAffinityMask option to limit CPU usage to a specific processor (#583)

Input

  • Added options to configure Padding and Factor independently for each axis (#576)
  • Added an option to invert input feedback direction (elishacloud/dinputto8#15)
  • Added an EnableCursorClip option using ClipCursor() (#551) thanks to @rebb

Fixed

Direct3D / Rendering

  • Fixed lost-device handling throughout the wrapper to better handle Alt+Tab and other device-lost scenarios
  • Fixed display mode enumeration order (#584)
  • Fixed the display mode bit count returned by EnumDisplayModes() (#584)
  • Fixed memory size calculations (#581, #584)
  • Fixed POW2 capability reporting to better replicate native Direct3D behavior (#294, #387)
  • Fixed TransformVertices() handling to better replicate native Direct3D behavior
  • Fixed Viewport::Clear() to use the material correctly and better replicate native Direct3D behavior
  • Fixed Viewport::Clear() and Clear2() to use the correct viewport when clearing the device
  • Fixed capability reporting in EnumDevices(), FindDevice(), and GetCaps() to better replicate native Direct3D behavior
  • Fixed handling of READONLY and NOOVERWRITE lock flags to better replicate native Direct3D behavior
  • Fixed texture blending to use D3DTOP_SELECTARG2 where appropriate
  • Fixed ValidateDevice() to work correctly even when some device states have not been initialized, better replicating native Direct3D behavior
  • Fixed edge cases in StridedVertex handling
  • Fixed Level of Detail (LOD) handling
  • Fixed Optimize() and GetClipStatus() to better replicate native Direct3D behavior
  • Fixed lighting behavior when no material is assigned
  • Fixed anti-aliasing handling by limiting it to supported formats

DirectDraw / Surfaces

  • Fixed ColorFill() to prevent a crash when a variable is null (#353)
  • Fixed color-key copies when the surface format contains unused bits (#536)
  • Fixed surface release handling by retaining the interface addresses of the Primary and Backbuffer surfaces

Device / COM Handling

  • Fixed the Direct3D 9 reference counter, which could cause a crash when exiting (#553)
  • Fixed handling of DllGetClassObject() for IDirectDraw, IDirectInput, IDirectInput8, and IDirectSound8
  • Fixed CoCreateInstance() and IClassFactory handling to prevent crashes in some games
  • Fixed cases where the device could malfunction if its window was destroyed before the game released the device
  • Fixed COM identity handling for IDirectInput (elishacloud/dinputto8#40) thanks to @CookiePLMonster

Vertex Buffers

  • Fixed vertex discard lock handling when using write-only vertex buffers (#536)

System / Compatibility

  • Fixed GetDiskFreeSpaceA() / GetDiskFreeSpaceExA() disk space calculations (#548)

DirectInput

  • Fixed handling of joysticks with more than 32 buttons in games using older DirectInput interfaces, preventing buffer overflows and crashes (elishacloud/dinputto8#45) thanks to @d-b-c-e

Updated

Performance

  • Updated vertex processing to use mixed mode for improved performance
  • Updated vertex buffers to use the managed memory pool for improved performance

Removed

  • Removed the DdrawEnableMouseHook option, which has been replaced by EnableCursorClip

Don't miss a new dxwrapper release

NewReleases is sending notifications on new releases.