Skip to content

Configuration

Elisha Riedlinger edited this page Nov 6, 2024 · 27 revisions

Basic Configuration for the DxWrapper

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. To see the advanced options you can open the AllSettings.ini file and add setting from there. More details on that later.

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 (stub)

Also see: Configuration (advanced)

Table of Contents:

Below are basic settings for DxWrapper:

General

RealDllPath

By default when DxWrapper is wrapping a dll it will load the Windows System dll. However, if you need DxWrapper to load a different dll you can list that dll here. A use case for this would be if you want to use DxWrapper alongside some other wrapper like dgVoodoo or an existing game dll with the same name.

Note: this option only works if you either rename DxWrapper to match the name of the file you are wrapping (such as d3d8.dll or ddraw.dll) or if you are using this setting on the stub dll. To use this setting on the stub dll you will need to create a new ini file that matches the name of the stub dll and add this setting into that ini file.

WrapperMode

This tells DxWrapper which dll it is wrapping. By default DxWrapper will detect the name of the wrapper and use the mode associated with the name. So, if you are wrapping d3d8.dll then it will automatically choose the d3d8 wrapper mode. However, in some circumstances games will rename the dll file. For example, if you are playing the GOG version of American Conquest, then it has a dll named mdraw.dll that is just ddraw.dll renamed. In this case you would rename DxWrapper to mdraw.dll and you would need to set the WrapperMode to ddraw to tell DxWrapper that this is a ddraw dll.

Supported wrapper modes are: bcrypt, cryptsp, d2d1, d3d8, d3d9, d3d10, d3d11, d3d12, dciman32, ddraw, dinput, dinput8, dplayx, dsound, dwmapi, msacm32, msvfw32, version, wininet, winmm, wsock32, winmmbase.

LoadCustomDllPath

This will load additional dlls into the program. This is useful if there are specific dlls that need to be loaded, for example the program keeps loading a system dll and you want the program to load a custom dll. This technique comes in handy in a few games like Warhammer 40,000 Chaos Gate and Star Wars Battlefront. To use this you can specify just the dll name or the full path and name.

ExcludeProcess

By default DxWrapper will load into all games in a specified folder that load the wrapped dll. However, in some circumstances you may not want to DxWrapper to load into a specific process. You can use this option to exclude that process name.

IncludeProcess

By default DxWrapper will load into all games in a specified folder that load the wrapped dll. However, in some circumstances you may want to DxWrapper to load only into one specific process. You can use this option to tell DxWrapper to only load into that one specific process name.

Note: Another way to do this is to rename the ini file. If you add the process name to the ini file name only that process will load this ini file. This can be useful if you have multiple processes in a single folder and you want different settings for each process. If for example you have a process named game.exe then you can rename dxwrapper.ini to dxwrapper-game.ini. This will tell dxwrapper that these settings should only work on the process game.exe.

RunProcess

This will run a process when the application starts up. This is useful if you want something to happen when the program starts up, for example if you want to mount an ISO or change a registry key. To use this you just need to type the command that you want to run.

WaitForProcess

This will pause the loading of the game until the process finishes. You can use this if the process needs to complete before the program will function. For instance if you need to mount an ISO for the game to run. This can be set to 0 for off or 1 for on.

DisableLogging

This will disable all logging for DxWrapper. It is recommended to keep logging enabled while you are first installing and testing DxWrapper with a game. Then, once the game is running correctly you can disable logging, if you like. However, if you keep logging enabled it can help you find issues later if they arise. This can be set to '0' for off or '1' for on.

Plugins

LoadPlugins

Built from ThirteenAG's Ultimate-ASI-Loader. If this option will load custom libraries with the file extension .asi into the game process. It loads ASI files in game root directory, scripts and plugins folders.

LoadFromScriptsOnly

If this option is enabled then DxWrapper will only load ASI files in the scripts and plugins folders. This can be set to '0' for off or '1' for on.

Compatibility

Dd7to9

This option improves compatibility in games using DirectX 1-7 by converting them into Direct3D 9. This is useful for games that use ddraw for their rendering engine. It supports all 7 versions of ddraw 2D APIs and a number of the 3D APIs. This can be set to '0' for off or '1' for on.

Note: once Dd7to9 is enabled for a ddraw game the settings for this game can be controlled via all three of the ddraw, Dd7to9 and d3d9 section options. For example you can use the FullscreenWindowMode option on a ddraw game even though this option is a d3d9 option because the game has been converted to Direct3D9 (which is d3d9).

D3d8to9

This enables ReShade's d3d8to9 module that is intended to improve compatibility and stability in games using Direct3D 8 by converting all API calls to equivalent Direct3D 9 ones. It also opens those games up to the new possibilities from proven tools and wrappers written for Direct3D 9. This can be set to 0 for off or 1 for on.

Note: once D3d8to9 is enabled for a Direct3d 8 game the settings for this game can be controlled via d3d9 section options. For example you can use the AntiAliasing option on a Direct3d 8 game even though this option is a d3d9 option because the game has been converted to Direct3D 9 (which is d3d9).

DDrawCompat

This enables the DDrawCompat library. This can be enabled when wrapping any dll, however most of its functions will only work if the game uses ddraw.dll. This can be set to 0 for off or 1 for on.

Dinputto8

This enables the Dinputto8 library, which improves compatibility in games using DirectInput 1-7 (dinput.dll) by converting all API calls to their equivalent DirectInput 8 (dinput8.dll) ones. This allows older games to be able to use newer tools and wrappers written for DirectInput 8. This can be set to '0' for off or '1' for on.

DisableGameUX

This option disables the Microsoft Game Explorer (GameUX) to prevent rundll32.exe from using high CPU or causing the game to freeze. This can be set to '0' for off or '1' for on.

EnableDdrawWrapper

This option enables the built-in ddraw wrapper which has some built-in fixes for specific ddraw bugs. It also allows the options in the ddraw section to be available for use. Either EnableDdrawWrapper or Dd7to9 must be enabled before the options in the ddraw section are available for use. This can be set to '0' for off or '1' for on.

EnableD3d9Wrapper

This option enables the built-in Direct3D 9 wrapper which has some built-in fixes for specific Direct3D 9 bugs. It also allows the options in the d3d9 section to be available for use. This can be set to '0' for off or '1' for on.

EnableDinput8Wrapper

This enables DirectInput8 wrapper. It also allows the options in the dinput8 section. This can be set to '0' for off or '1' for on.

EnableDsoundWrapper

This enables a wrapper that has same options to tweak some function calls of games using Microsoft DirectSound (part of DirectX). It also allows the options in the dsound section to be available for use and can "work around" some driver and application limitations and bugs. It can also enhance the sound quality in many ways, for example by enabling 3D sound with games that disables this functionality by default. This can be set to '0' for off or '1' for on.

WinVersionLie

Allows overriding the Windows version information reported to the application. Some applications may work differently or refuse to run at all if they detect specific Windows versions. This can be set to '95', 'nt4', '98', '2000' or 'xp' for overwriting the windows version; any other value will turn this option off.

WinVersionLieSP

Allows overriding the Windows Service Pack version information reported to the application. This requires the WinVersionLie option to be enabled. This can be set to '1', '2', '3', '4' or '5' for overwriting the windows version; any other value will turn this option off.

HandleExceptions

This option will allow DxWrapper to set its own exception handler that tries (often successfully) to fix several common exceptions, such as the divide by zero exception in old games that were trying to calculate the CPU speed. This can be set to '0' for off or '1' for on.

SingleProcAffinity

This option limits the game to one CPU core. Some games are not properly synchronized to run on multiple CPU cores, or simply don't properly handle powerful CPUs. Set SingleCoreAffinity to a value of 1 or higher to change core used. (1 = CPU 0, 2 = CPU 1, etc.) If the value is set to a number that is greater than the available cores on your computer, it will default to using CPU 0.

DDrawCompat

DDrawCompat20

This enables version 2.0 of the DDrawCompat library. Some games may work better with older versions of the library. This can be set to 0 for off or 1 for on.

DDrawCompat21

This enables version 2.1 of the DDrawCompat library. Some games may work better with older versions of the library. This can be set to 0 for off or 1 for on.

DDrawCompat32

This enables version 3.2 of the DDrawCompat library. This can be set to 0 for off or 1 for on.

DDrawCompatDisableGDIHook

This disables GDI hooking of the DDrawCompat library. Some games have issues if the GDI is hooked. This requires one of the DDrawCompat options to be enabled. This can be set to 0 for off or 1 for on.

DDrawCompatNoProcAffinity

This disables the single process affinity feature of the DDrawCompat library. Some games don't need to be set to single process affinity or have issues on modern computers when enabling single process affinity. This requires one of the DDrawCompat options to be enabled. This can be set to 0 for off or 1 for on.

ddraw

ConvertToDirectDraw7

This converts all IDirectDraw functions to their equivalent IDirectDraw 7 functions. This requires the EnableDdrawWrapper option to be enabled. This can be set to 0 for off or 1 for on.

ConvertToDirect3D7

This converts all IDirect3D 1-6 functions to their equivalent IDirect3D 7 functions. This requires the EnableDdrawWrapper option to be enabled. This can be set to 0 for off or 1 for on.

DdrawOverrideBitMode

This overrides the default bit mode. This requires either Dd7to9 or EnableDdrawWrapper option to be enabled.

The following values are defined:

Bit Mode Value
8-bit 1 or 8
16-bit 2 or 16
24-bit 3 or 24
32-bit 4 or 32

Dd7to9

DdrawAutoFrameSkip

This function will skip the drawing of frames if to try and make games run smoother when v-sync is enabled. Sometimes v-sync will slow down the game because the game's primary surface is being updated more than once per frame. This option will try and detect multiple updates with-in the same frame and only display the last one. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawEmulateSurface

By default Dd7to9 will only emulate surfaces that aren't supported by Direct3D9, such as 24-bit surfaces or the Device Context to a surface with an alpha channel. However, if you enable this option than all supported surfaces will be emulated. This helps in a few cases where games use Device Context and the text is messed up or if the game tries to use surface memory after the surface is released. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawEmulateLock

By default Dd7to9 will only normally just call the Direct3D9 lock/unlock functions. However, if you enable this option than system memory will be created to use to emulate the surface lock. This helps fix cases where games crash when attempting to access the memory of an unlocked surface. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawForceMipMapAutoGen

Older Direct3D version don't have the ability to auto generate the MipMap surfaces. However, enabling this option will force Direct3D9 auto generate MipMaps for all MipMap surfaces. This helps fix cases where games show black for MipMap textures and it may help improve performance in some cases. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawFixByteAlignment

Fixes display issues in some ddraw games (like Tropico) that ignore the pitch sent by ddraw. This requires either the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawEnableByteAlignment

Dxwrapper used to force 32-bit or 64-bit byte alignment for all surfaces. However, this byte alignment is now only enabled when this option is enabled. This option may improve performance in some cases and may help fix crashes or other issues caused when non-aligned surfaces cannot be created. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawRemoveScanlines

Removes the blank lines (scanlines) seen in some older games during the in game videos. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

Sample games that use scanlines:

  • Command & Conquer Gold
  • Command & Conquer Red Alert
  • Deathtrap Dungeon
  • Diablo Hellfire
  • Diablo Spawn
  • Pacific General
  • Sanitarium
  • Total Annihilation
  • War Wind II
  • WarGames
  • Warlords 3

DdrawRemoveInterlacing

Attempts to removes interlacing in some older games during the in game videos. This works by detecting single lines being drawn to the screen and drawing all of them before presenting to the screen. Enabling this will cause one frame of delay to the game. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

Sample games that use interlacing:

  • Abes Oddysee

DdrawReadFromGDI

This option will cause dxwrapper to read from GDI before each Blt(), Lock() or GetDC() call. In most cases DdrawWriteToGDI will need to be used with this option. This is a hack specifically for certain windowed games that use a mixture of GDI and DirectDraw on the same screen, such as Deadlock 2. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawWriteToGDI

This option will Blt directly from the DirectX surface to GDI rather than using the normal Present() function. This is a hack specifically for certain windowed games that use a mixture of GDI and DirectDraw on the same screen. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawDisableDirect3DCaps

This option prevents the game from detecting the Direct3D functions in dxwrapper and can cause the game to fail over to software rendering. This can be useful as some games, like Moto Racer 2, are not yet supported in 3D mode by dxwrapper. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawLimitDisplayModeCount

This will limit the number of display mode options returned to the game. Some older games cannot handle a large number of display mode options. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawCustomWidth

This option will present a custom resolution to game when limit display mode is set, allowing you to choose this resolution in the game menu when applicable. This requires Dd7to9, DdrawLimitDisplayModeCount and DdrawCustomHeight options to be enabled. Set to the desired width for the game.

DdrawCustomHeight

This option will present a custom resolution to game when limit display mode is set, allowing you to choose this resolution in the game menu when applicable. This requires Dd7to9, DdrawLimitDisplayModeCount and DdrawCustomWidth options to be enabled. Set to the desired width for the game.

DdrawUseNativeResolution

This will stretch the game to fill the current resolution of the monitor. This requires the Dd7to9 option to be enabled. This can be set to 0 for off or 1 for on.

DdrawOverrideWidth

This will stretch the game to fill the resolution specified. This requires Dd7to9 and DdrawOverrideHeight options to be enabled. Set to the desired width for the game.

DdrawOverrideHeight

This will stretch the game to fill the resolution specified. This requires Dd7to9 and DdrawOverrideWidth options to be enabled. Set to the desired height for the game.

DdrawIntegerScalingClamp

This will force the resolution scaling to use an integer as a multiplier. For instance if the game's resolution is 800x600 and you scale the game to use 1920x1080 it will scale the games resolution to use 1600x600 and then show black borders around the edges. This requires Dd7to9 and scaling options (such as DdrawUseNativeResolution) to be enabled. This can be set to 0 for off or 1 for on.

DdrawMaintainAspectRatio

This will preserve the game's aspect ratio when using resolution scaling. For instance if the game's resolution is 800x600 and you scale the game to use 1920x1080 it will scale the games resolution to use 1440x1080 and then show black borders on the edges. This requires Dd7to9 and scaling options (such as DdrawUseNativeResolution) to be enabled. This can be set to 0 for off or 1 for on.

d3d9

AnisotropicFiltering

This will force the built-in Direct3D9 Anisotropic Filtering to be enabled. Currently it does not modify the actual texture filtering so it will have little effect on the actual game visuals. This requires either the game to use Direct3D9 or for the Dd7to9 or D3d8to9 options to be enabled. 1 = highest your video card can support. 2, 4, 8, or 16 = specific AF settings you want to configure.

AntiAliasing

This will force the built-in Direct3D9 AntiAliasing to be enabled. This requires either the game to use Direct3D9 or for the Dd7to9 or D3d8to9 options to be enabled. 1 = highest your video card can support. 2, 4, 8, or 16 = specific AA settings you want to configure.

Note: this can cause unwanted artifacts or missing surfaces on some games that don't support AntiAliasing.

EnableVSync

This will force v-sync to be enabled. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

Note: v-sync can cause some games to run sluggishly or have a slow response time. To resolve this try using EnableWindowMode or FullscreenWindowMode instead. Windowed mode and fullscreen windowed mode can also remove screen tearing.

ForceVsyncMode

This will force whatever the EnableVSync setting is set to. If EnableVSync is disabled and ForceVsyncMode is enabled then it will force v-sync to be disabled. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

OverrideRefreshRate

This will set the game refresh rate to the one specified. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. Set OverrideRefreshRate to the desired refresh rate for the game.

LimitPerFrameFPS

This will measure the total time each frame takes and add a delay to the frame if it is too quick so that it attempts to achieve the specified frame rate. If the frame takes to long than no delay is added. This value can support decimal points, so, for example, if you want the frame rate to be 29.963 FPS then you can set this option to that value. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

EnableWindowMode

This will force the game into windowed. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

Note: this option does not work on all games, specifically some games made using DirectDraw have issues with this mode.

WindowModeBorder

This will enable the windows border when forcing windowed mode. This requires the EnableWindowMode option to be enabled. This can be set to 0 for off or 1 for on.

SetInitialWindowPosition

This option enables the InitialWindowPositionLeft and InitialWindowPositionTop options. When this is enabled dxwrapper will move the game window to the InitialWindowPositionLeft and InitialWindowPositionTop once at the start of the game. If both InitialWindowPositionLeft and InitialWindowPositionTop are set to 0 then it will move the game to the upper right hand corner of the desktop. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

InitialWindowPositionLeft

The initial left location on the screen where the game should start. This requires the SetInitialWindowPosition option to be enabled. This can be set to any valid screen location.

InitialWindowPositionTop

The initial top location on the screen where the game should start. This requires the SetInitialWindowPosition option to be enabled. This can be set to any valid screen location.

FullscreenWindowMode

This will force the game into fullscreen windowed mode. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

ForceExclusiveFullscreen

This will force the game into exclusive fullscreen mode. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

Note: if the game is using a resolution that is not supported by your video card or your monitor then it may cause the game to crash or exit.

ForceMixedVertexProcessing

This will force the game to use mixed mode vertex processing rather than software vertex processing to improve performance. This requires the EnableD3d9Wrapper option to be enabled. This can be set to 0 for off or 1 for on.

ForceSystemMemVertexCache

This will force vertex buffers to use system memory. This requires the EnableD3d9Wrapper option to be enabled. This can be set to 0 for off or 1 for on.

ForceDirect3D9On12

This will enable the D3D9on12 functionality of Windows 10/11. It will cause Windows to up-convert the game from Direct3D9 to Direct3D12. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

GraphicsHybridAdapter

This option will attempt to the secondary GPU on a computer with hybrid graphics adapters (two or more GPUs). This can be useful if you have a laptop with multiple video cards and you want the game to use a faster, or more powerful, video card. This requires either the EnableD3d9Wrapper, Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or the graphics adapter ID (usually 1) for on.

FullScreen

FullScreen

This will monitor the main window of the program and set that window to full screen. It does this by updating the screen resolution to match the window resolution and then placing the window coordinates at the upper left and lower right to ensure that the window fills the screen. This can be set to '0' for off or '1' for on.

ForceWindowResize

This is intended to be use alongside the FullScreen setting. It will allow DxWrapper to change the resolution of Windows or stretch the game window to match the resolution size. This can be set to '0' for off or '1' for on.

WaitForWindowChanges

This is intended to be use alongside the FullScreen setting. In most cases DxWrapper will set the window to full screen immediately after detecting a window that needs to be set to full screen. However in some cases the application has not yet finished setting the window. In this case you can have DxWrapper wait until it detects that the window has finished before setting the window to FullScreen. This can be set to '0' for off or '1' for on.

dinput8

DeviceLookupCacheTime

Some games will attempt to enumerate all devices for each display frame causing stuttering or other performance issues in the game. This option will allow you to cache the enumeration results and give it back to the game, preventing extra calls to DirectInput. This requires either the game to use DirectInput8 or for the Dinputto8 option to be enabled. This value is in seconds and can be set to any positive integer value to turn in on. Set it to '0' for off.

FilterNonActiveInput

This attempts to prevent the game from receiving input when the game window is not in focus. This requires either the game to use DirectInput8 or for the Dinputto8 option to be enabled. This can be set to '0' for off or '1' for on.

FixHighFrequencyMouse

High frequency mice, may return many results for each request from a game. However, some games only look at the last result and drop the other results causing the mouse movement to be stuttered or to only move for drastic mouse movements. This options merges all the results and presents only a single result to the game allowing the game to see all movements in a combined view. This requires either the game to use DirectInput8 or for the Dinputto8 option to be enabled. This can be set to '0' for off or '1' for on.

MouseMovementFactor

This allows you to slow down or speed up the mouse movement for a game. This requires either the game to use DirectInput8 or for the Dinputto8 option to be enabled. This value is in seconds and can be set to any positive decimal value to turn in on. Values larger than 1 speed up the mouse movement and values lower than 1 slowdown the mouse movement. For example if you want to reduce the mouse speed by one third you can set this value to '0.66'. Set it to '0' for off.

MouseMovementPadding

Some games will ignore mouse movements unless it hits some threshold (sometimes called dead zone). This option will artificially add some movement to each mouse move to bypass or remove this threshold, removing the dead zone. This requires either the game to use DirectInput8 or for the Dinputto8 option to be enabled. This value can be set to any positive integer value to turn in on. Recommended to set this to either '1' or '2'. Set it to '0' for off.

dsound

Most of the settings in this section are taken from DirectSound Control. I am no longer using the code from DirectSound Control, as I have completely re-written all the code, however, I kept the options the same.

Num2DBuffers

Maximum number of hardware mixed 2d buffers reported to the application. MUST be lower or equal than the hardware default.

Num3DBuffers

Maximum number of hardware mixed 3d buffers. MUST be lower or equal than the hardware default.

ForceCertification

Enables/Disables WHQL certification report

ForceExclusiveMode

Enables/Disables forcing of exclusive cooperation level.

ForceSoftwareMixing

Enables/Disables forcing creation of software mixed buffers

ForceHardwareMixing

Enables/Disables forcing creation of hardware mixed buffers (caution!!). Set this to 1 if you have problems with games like DEUS EX: Invisible War! Before you set this to 1 try to enable ForceVoiceManagement to see if this works. Enabling ForceVoiceManagement is much safer than this option.

ForceHQ3DSoftMixing

Enables/Disables forcing of usage of the high quality HRTF algorithm (software mixing only). Set this to 1 to get better 3D sound quality for applications that uses software mixing.

ForceNonStaticBuffers

Enables/Disables forcing of using non-static buffers. Static buffers are obsolete with PCI-cards. This should always be enabled when ForceVoiceManagement is set to 1.

ForceVoiceManagement

Enables/Disables forcing of voice management. This can't be used together with ForceSoftwareMixing and ForceHardwareMixing. This is the first option you should change to 1 if you have problems with a game. This options enables the DirectX build-in voice managements and overrides the developers placement of the sound buffers. This options will enable 3D positional audio for many games that have this feature disabled for whatever reason. You should always set ForceNonStaticBuffers to 1.

ForcePrimaryBufferFormat

Enables/Disables forcing of a specified primary buffer format. Set this to 1 to get better sound quality for applications that don't set this parameters and sound cards that defaults to 8 Bit primary buffer. Note: If this option is set to 1 you can specify the output format with the following settings.

PrimaryBufferBits

Number of bits per sample. 16 is default, some sound cards are capable of using 24 or 32 bits per sample.

PrimaryBufferSamples

Number of samples per second. 44100 is default, some sound cards are capable of using 48000, 96000 or 192000 samples per second.

PrimaryBufferChannels

Number of channels. 2 (=Stereo) is default.

AudioClipDetection

Detects when the audio is stopped prematurely and fades out to avoid pops in the sound. This can be set to '0' for off or '1' for on.

Sample

Below is a sample configuration for DxWrapper:

;; Config file for DirectX DLL Wrapper
;;
;; For details, see: https://github.com/elishacloud/dxwrapper/wiki/Configuration
;;
[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                     = 1
D3d8to9                    = 0
DDrawCompat                = 0
Dinputto8                  = 0
DisableGameUX              = 0
EnableDdrawWrapper         = 0
EnableD3d9Wrapper          = 0
EnableDinput8Wrapper       = 0
EnableDsoundWrapper        = 0
HandleExceptions           = 0
SingleProcAffinity         = 0

[DDrawCompat]
DDrawCompat20              = 0
DDrawCompat21              = 0
DDrawCompat31              = 0
DDrawCompatDisableGDIHook  = 0
DDrawCompatNoProcAffinity  = 0

[ddraw]
ConvertToDirectDraw7       = 0
ConvertToDirect3D7         = 0
DdrawOverrideBitMode       = 0

[Dd7to9]
DdrawAutoFrameSkip         = 0
DdrawEmulateSurface        = 0
DdrawFixByteAlignment      = 0
DdrawRemoveScanlines       = 0
DdrawRemoveInterlacing     = 0
DdrawReadFromGDI           = 0
DdrawWriteToGDI            = 0
DdrawCreateDeviceEarly     = 0
DdrawDisableDirect3DCaps   = 0
DdrawLimitDisplayModeCount = 0
DdrawUseNativeResolution   = 0
DdrawOverrideWidth         = 0
DdrawOverrideHeight        = 0
DdrawIntegerScalingClamp   = 0
DdrawMaintainAspectRatio   = 0

[d3d9]
AnisotropicFiltering       = 0
AntiAliasing               = 0
EnableVSync                = 0
ForceVsyncMode             = 0
OverrideRefreshRate        = 0
LimitPerFrameFPS           = 0
EnableWindowMode           = 0
WindowModeBorder           = 0
SetInitialWindowPosition   = 0
InitialWindowPositionLeft  = 0
InitialWindowPositionTop   = 0
FullscreenWindowMode       = 0
ForceExclusiveFullscreen   = 0
ForceMixedVertexProcessing = 0
ForceSystemMemVertexCache  = 0
ForceDirect3D9On12         = 0
GraphicsHybridAdapter      = 0

[FullScreen]
FullScreen                 = 0
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