-
Notifications
You must be signed in to change notification settings - Fork 109
Configuration (advanced)
The default Settings.ini file has limited configuration options to make it easy to use DxWrapper. In most cases all of the things that are needed can be configured from here. However in rare cases you may need to enable an advanced option. Too see the advanced options you can open the AllSettings.ini file and add setting from there. This page covers those advanced settings that are not commonly needed.
When DxWrapper loads it tries to read the ini file. It looks for an ini file with the same name as the dll file. For example if you are using the winmm.dll file then it will look for a file called winmm.ini. Make sure to rename the ini file to match the dll name.
Also see: Configuration
Also see: Configuration (stub)
Table of Contents:
- General
- Plugins
- Compatibility
- DDrawCompat
- ddraw
- Dd7to9
- d3d9
- FullScreen
- dinput8
- dsound
- AppCompatData
- WriteMemory
- Sample
Below are advanced settings for DxWrapper:
RealDllPath
See the Configuration page for details.
WrapperMode
See the Configuration page for details.
LoadCustomDllPath
See the Configuration page for details.
ExcludeProcess
See the Configuration page for details.
IncludeProcess
See the Configuration page for details.
RunProcess
See the Configuration page for details.
WaitForProcess
See the Configuration page for details.
DisableLogging
See the Configuration page for details.
LoadPlugins
See the Configuration page for details.
LoadFromScriptsOnly
See the Configuration page for details.
Dd7to9
See the Configuration page for details.
D3d8to9
See the Configuration page for details.
DDrawCompat
See the Configuration page for details.
Dinputto8
See the Configuration page for details.
DisableHighDPIScaling
High DPI scaling can cause Text Clipping, Blurring, Inconsistent font sizes or rendering full-screen DirectX applications partially off screen. Drawing (or writing) to someplace that doesn't exist may also cause crashes.
By default this option does not exist in the ini configuration file and dxwrapper will automatically disable high DPI scaling. You only need to add this option to the ini file if you want to prevent dxwrapper from disabling high DPI. This option can be set to 0 or 1.
DisableGameUX
See the Configuration page for details.
DxWnd
See the Configuration page for details.
EnableDdrawWrapper
See the Configuration page for details.
EnableDinput8Wrapper
See the Configuration page for details.
EnableDsoundWrapper
See the Configuration page for details.
ForceTermination
This enables DxWrapper to try and detect when the application has hung and close the application automatically. Some games like Might and Magic IX and Outpost 2 will hang on exit and requires this. DxWrapper uses two different means to detect when then application has hung. The first is detecting when the main windows has either closed or is very small. The second is by monitoring the threads and detecting when the DxWrapper thread has closed. This can be set to '0' for off or '1' for on.
HandleExceptions
See the Configuration page for details.
ResetScreenRes
Sometimes, certain games will make changes to the screen settings, such as brightness or font smoothing, that will remain after the game exits. This option will reset font smoothing, screen gamma (brightness) and resolution when the game exits.
By default this option does not exist in the ini configuration file and dxwrapper will automatically reset the screen settings when the game exits. You only need to add this option to the ini file if you want to prevent dxwrapper from resetting the screen settings. This option can be set to 0 or 1.
SingleProcAffinity
See the Configuration page for details.
DDrawCompat20
See the Configuration page for details.
DDrawCompat21
See the Configuration page for details.
DDrawCompatExperimental
See the Configuration page for details.
DDrawCompatDisableGDIHook
See the Configuration page for details.
DDrawCompatNoProcAffinity
See the Configuration page for details.
ConvertToDirectDraw7
See the Configuration page for details.
ConvertToDirect3D7
See the Configuration page for details.
DdrawOverrideBitMode
See the Configuration page for details.
DdrawResolutionHack
By default DirectDraw application that use the 3D functions are limited to 2k resolution. DdrawResolutionHack eliminates that restriction, allowing these older games to use higher resolutions (4K or even 8k), if the game can support these resolutions. Some games use hard coded resolutions and thus are unaffected by this option.
By default this option does not exist in the ini configuration file and dxwrapper will automatically removes the DirectDraw resolution limiter. You only need to add this option to the ini file if you want to prevent dxwrapper from removing this limitation. This option requires EnableDdrawWrapper to be enabled and can be set to '0' for off or '1' for on.
AutoFrameSkip
See the Configuration page for details.
DdrawEmulateSurface
See the Configuration page for details.
DdrawReadFromGDI
See the Configuration page for details.
DdrawWriteToGDI
See the Configuration page for details.
DdrawLimitDisplayModeCount
See the Configuration page for details.
DdrawUseNativeResolution
See the Configuration page for details.
DdrawClippedWidth
See the Configuration page for details.
DdrawClippedHeight
See the Configuration page for details.
DdrawOverrideWidth
See the Configuration page for details.
DdrawOverrideHeight
See the Configuration page for details.
DdrawOverrideRefreshRate
See the Configuration page for details.
DdrawIntegerScalingClamp
See the Configuration page for details.
DdrawMaintainAspectRatio
See the Configuration page for details.
AnisotropicFiltering
See the Configuration page for details.
AntiAliasing
See the Configuration page for details.
CacheClipPlane
This will cache the clip plane settings in DirectX9 and resets it before drawing a frame to fix a bug in the DirectX9 implementation in newer versions of Windows.
By default this option does not exist in the ini configuration file and dxwrapper will automatically cache clip plane settings. You only need to add this option to the ini file if you want to prevent dxwrapper from caching clip plane settings. This requires either the game to use Direct3D9 or for the Dd7to9 or D3d8to9 options to be enabled. This option can be set to 0 or 1.
EnableVSync
See the Configuration page for details.
EnableWindowMode
See the Configuration page for details.
ForceVsyncMode
See the Configuration page for details.
FullscreenWindowMode
See the Configuration page for details.
WindowModeBorder
See the Configuration page for details.
FullScreen
See the Configuration page for details.
ForceWindowResize
See the Configuration page for details.
SendAltEnter
Will send Alt+Enter to the screen window when dxwrapper detects that the game window does not fill the screen. This is useful for games that can enter fullscreen by pressing Alt+Enter. This requires the FullScreen option to be enabled. This option can be set to 0 or 1.
WaitForWindowChanges
See the Configuration page for details.
LoopSleepTime
The amount of time to sleep between each window handle check loop. This requires the FullScreen option to be enabled. This option defaults to 120.
WindowSleepTime
The amount of time to wait (sleep) for window handle and screen updates to finish. This requires the FullScreen option to be enabled. This option defaults to 500.
SetFullScreenLayer
The window layer to be selected for fullscreen. This requires the FullScreen option to be enabled. This option defaults to 0.
SetNamedLayer
List of named layers to select for fullscreen. This is useful if you want dxwrapper to select a specific window to make fullscreen. This requires the FullScreen option to be enabled. For this option you specify the name of the layer.
IgnoreWindowName
List of window classes to ignore for fullscreen. This is useful if you want dxwrapper to ignore a specific window and not make it fullscreen. This requires the FullScreen option to be enabled. For this option you specify the name of the layer.
FilterNonActiveInput
See the Configuration page for details.
See the Configuration page for details.
Num2DBuffers
See the Configuration page for details.
Num3DBuffers
See the Configuration page for details.
ForceCertification
See the Configuration page for details.
ForceExclusiveMode
See the Configuration page for details.
ForceSoftwareMixing
See the Configuration page for details.
ForceHardwareMixing
See the Configuration page for details.
ForceHQ3DSoftMixing
See the Configuration page for details.
ForceNonStaticBuffers
See the Configuration page for details.
ForceVoiceManagement
See the Configuration page for details.
ForcePrimaryBufferFormat
See the Configuration page for details.
PrimaryBufferBits
See the Configuration page for details.
PrimaryBufferSamples
See the Configuration page for details.
PrimaryBufferChannels
See the Configuration page for details.
AudioClipDetection
See the Configuration page for details.
AudioFadeOutDelayMS
The amount of time in milliseconds to wait after fading out an audio channel before stopping the playback. This requires both AudioClipDetection and EnableDsoundWrapper options to be enabled. This option defaults to 20.
FixSpeakerConfigType
Modern versions of Windows use some speaker config modes that are not recognized by older games. This option will convert these modes into the equivilant mode that older games understand. For instance, it will convert DSSPEAKER_7POINT1_SURROUND to DSSPEAKER_7POINT1 and DSSPEAKER_5POINT1_SURROUND to DSSPEAKER_5POINT1.
By default this option does not exist in the ini configuration file and dxwrapper will automatically fix the speaker config. You only need to add this option to the ini file if you want to prevent dxwrapper from fixing the speaker config. This option requires EnableDsoundWrapper to be enabled and can be set to '0' for off or '1' for on.
StoppedDriverWorkaround
Enables/Disables the workaround for the stopping sound problem with Doom3 and e.g. Creative Audigy soundcard. If you play Doom3 and the sound stops after a while, set this value to 1 to work around the problem.
LockEmulation
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
BltEmulation
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
ForceLockNoWindow
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
ForceBltNoWindow
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
LockColorkey
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
FullscreenWithDWM
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
DisableLockEmulation
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
EnableOverlays
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
DisableSurfaceLocks
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
RedirectPrimarySurfBlts
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
StripBorderStyle
This enables a DirectDraw application compatibility option. This option can be set to 0 or 1.
DisableMaxWindowedMode
This disables Maximum Windowed Mode in DirctDraw, Direct3D8 and Direct3D9. This option can be set to 0 or 1.
VerificationAddress
This is the address that is used to check the VerificationBytes.
VerificationBytes
Bytes that are validated before hot patching. This is used to verify the game bytes before patching to ensure that the correct code is modified. These bytes must match exactly before the hotpatch will be used.
ResetMemoryAfter
The amount of time to wiat before restoring the memory back after the hot patch. This is usefull if you want to set the hotpatch only for a limited amount of time. 0 means don't restore the memory.
AddressPointer
This is the address where the BytesToWrite will be written to. This option requires VerificationAddress and VerificationBytes to be enabled. You can include multiple AddressPointer lines if you want to update multiple memory addresses.
BytesToWrite
The actual bytes to write to the game's memory for the hotpatch. You can include multiple AddressPointer lines if you want to update multiple memory addresses. You need to pair each BytesToWrite with each AddressPointer.
For example:
AddressPointer = 0x0051BCF1
BytesToWrite = 0x00
AddressPointer = 0x0051BDF6
BytesToWrite = 0x4A9080Below is a sample configuration for DxWrapper:
;; Config file for DirectX DLL Wrapper
[General]
RealDllPath = AUTO
WrapperMode = AUTO
LoadCustomDllPath = sample.dll
ExcludeProcess =
IncludeProcess =
RunProcess = powershell.exe "Mount-DiskImage 'sample.iso'"
WaitForProcess = 1
DisableLogging = 0
[Plugins]
LoadPlugins = 0
LoadFromScriptsOnly = 0
[Compatibility]
Dd7to9 = 0
D3d8to9 = 0
DDrawCompat = 1
Dinputto8 = 0
DisableGameUX = 0
DxWnd = 0
EnableDdrawWrapper = 0
EnableDinput8Wrapper = 0
EnableDsoundWrapper = 0
HandleExceptions = 0
SingleProcAffinity = 0
[DDrawCompat]
DDrawCompat20 = 0
DDrawCompat21 = 0
DDrawCompatExperimental = 0
DDrawCompatDisableGDIHook = 0
DDrawCompatNoProcAffinity = 0
[ddraw]
ConvertToDirectDraw7 = 0
ConvertToDirect3D7 = 0
DdrawOverrideBitMode = 0
[Dd7to9]
AutoFrameSkip = 0
DdrawEmulateSurface = 0
DdrawReadFromGDI = 0
DdrawWriteToGDI = 0
DdrawLimitDisplayModeCount = 0
DdrawUseNativeResolution = 0
DdrawClippedWidth = 0
DdrawClippedHeight = 0
DdrawOverrideWidth = 0
DdrawOverrideHeight = 0
DdrawOverrideRefreshRate = 0
DdrawIntegerScalingClamp = 0
DdrawMaintainAspectRatio = 0
[d3d9]
AnisotropicFiltering = 0
AntiAliasing = 0
EnableVSync = 0
EnableWindowMode = 0
ForceVsyncMode = 0
FullscreenWindowMode = 0
WindowModeBorder = 0
[FullScreen]
FullScreen = 1
ForceWindowResize = 0
WaitForWindowChanges = 0
[dinput8]
FilterNonActiveInput = 0
[dsound]
Num2DBuffers = 0
Num3DBuffers = 0
ForceCertification = 0
ForceExclusiveMode = 0
ForceSoftwareMixing = 0
ForceHardwareMixing = 0
ForceHQ3DSoftMixing = 0
ForceNonStaticBuffers = 0
ForceVoiceManagement = 0
ForcePrimaryBufferFormat = 0
PrimaryBufferBits = 16
PrimaryBufferSamples = 44100
PrimaryBufferChannels = 2
AudioClipDetection = 0
[HotPatch]
VerificationAddress = 0x0041ACF0
VerificationBytes = 0x6A0168E803000068B4E74800
ResetMemoryAfter = 5000
AddressPointer = 0x0041ACF1
BytesToWrite = 0x00
AddressPointer = 0x0041ACF8
BytesToWrite = 0x40