[FixD3DWindowFrame]
help="Tries to prevent D3D from rendering on the whole window surface including the window border. It activates a small trick that causes the program to render to a child modal surface within the main window borders."
[NoD3DWindowMove]
help="Tries not to update the window position and size on D3D rendering. In some cases, the window may be movable but the rendering area does not move with it. In this case, avoid moving the window at all. It is an experimental feature and doesn't always work."
[MakeBackbufferAttachable]
help="Alters the size specification of the created backbuffer so that it copes with the actual primary surface and that it may be attached to a ZBUFFER surface. It makes "Dave Mirra Freestyle BMX" playable."
[BlitFromBackbuffer]
help="Some games ("The Sims", the only one so far...) read graphic data from the primary surface. When the game runs windowed, the approximation introduced in a scaled window brings cumulative error that appear as a progressive smearing effect. In this case, it might be better to read the data from the backbuffer surface that is not scaled, even if in such a way you get other troubles when scrolling (see it by yourself...). The only reasonable alternative: Write game code in a better way, in my opinion!"
[NoSystemMemoryOnPrimary]
help="DirectDraw applications have much better performance if they can operate on system memory rather than video memory, particularly when reading surface memory. Since the virtual primary surface has to be read before it can be transferred to the actual primary surface, it's best to use system memory offscreen surfaces whenever possible. Unfortunately, some programs request hardware acceleration functions that are only available for video surfaces. This flag forces the virtual primary surface to be created in system memory, sacrificing performance for compatibility."
[NoSystemMemoryOnBackbuffer]
help="Similar to the NoSystemMemoryOnPrimary tweak, but applied to the backbuffer surface. It's rare to need both of these flags, and the one to be used depends on where the application performs the accelerated functions."
[AllowSysMemoryOn3DDevices]
help="Forces the usage of system memory on ZBUFFER surface."
[ReturnNULLReference]
help="Always return a 0 reference counter when a surface or DirectDraw session is released."
[ForcesHEL]
help="Forces Hardware Emulation Layer."
[ForcesHAL]
help="Forces Hardware Abstraction Layer."
[ForcesNULL]
help="Forces the default NULL mode."
[LockColorDepth]
help="Prevents DirectDraw emulation to change the virtual color depth. Useful so far only with "Ahlgrens Bisplet"."
[FixParentWindow]
help="Typically, a game is started with an invisible program window, and then it creates a separate child window for handling the graphics. Some games use the parent window instead of the child window. In this case, the parent window becomes visible and then needs to be properly resized. This feature is currently experimental, but it seems to successfully manage several tough games, such as "Solaris", "Sleepwalker", "Sid Meier's SimGolf", and the Worms series."
[MouseMoveByEvent]
help="Replaces the SetCursorPos system call with a mouse_event call that is better tolerated by certain games, e.g. "Wind Fantasy II"."
[NoMainWindowDestruction]
help="Some games kill the main window before starting a new one, and DxWnd may not properly handle this behavior. This flag prevents the main window from being destroyed, resolving that issue."
[SendWM_ACTIVATEAPPMessage]
help="Windows sends an ACTIVATEAPP message to fullscreen programs, but may not send this message to windowed programs. This flag forces Windows to send that message, resolving cases where the hooked program expects to receive such a message."
[LegacyD3DResolutionHack]
help="Eliminates some maximum resolution check within the D3D implementation."
[FixAILSoundLocks]
help="Experimental - not working yet."
[SuppressIME]
help="Attempts to destroy the IME window created by the Desktop Window Manager."
[FPSCountUpdatesBigger1/4Screen]
help="DxWnd can display an FPS counter based on the number of screen updates per second. This counter is accurate for applications that update the entire screen, but produces wildly exaggerated figures when a program makes frequent updates to small sections of the screen, such as counters, icons, or other tiny elements. This flag tells DxWnd to ignore screen updates that affect less than one quarter of the screen, producing a more realistic FPS figure."
[MakeQueriedWindowVisible]
help="Makes any window visible that is queried for its visibility status."
[FixEmpireOfTheFadingSuns]
help="Runtime patch for "Emperor of the Fading Suns" that clears a memory area responsible to inhibit DirectDraw blits to the primary surface. It's a quick & dirty way to make the game run properly."
[KillBlackWindows]
help="Prevents the creation of annoying windows such as black background windows used to cover the desktop, but undesireable in windowed mode. Such windows are identified by a window name or class, so they have to be included in a DxWnd internal list."
[ZeroDisplayCounter]
help="Forces a 0 return code in ShowCursor (FALSE) call. Fixes a bad loop in "Cottage of Leopold the Cat"."
[ReplaceDialogs]
help="Replaces troublesome dialog windows where the program blits some graphics with more manageable plain windows."
[ManageFourCCSurfaces]
help="Allows handling of FourCC YUY2 surfaces by forcing Flip operation to bypass the emulation layer and blit directly on the video surface. This makes some movies visible."
[Forces16BitZBufferBitDepth]
help="Forces the 16-bit ZBuffer bit depth on DirectDraw devices. Fixes a bug in "3-D Slot Car Racing" that requires either 16-bit or 24-bit depth only."
[Forces24BitZBufferBitDepth]
help="Forces the 24-bit ZBuffer bit depth on DirectDraw devices. Fixes a bug in "3-D Slot Car Racing" that requires either 16-bit or 24-bit depth only."
[FullPaintRect]
help="Forces GDI32 BeginPaint to use the whole window client area as paint rectangle. Fixes the partial screen updates in "RollerCoaster Tycoon 2"."
[PushActiveMovieWindows]
help="Forces ActiveMovie windows used by DirectShow movie rendering to be pushed back in z-order position. It is useful when the actual movie rendering is transferred to other windows and ActiveMovie windows interfere. Useful for the movie rendering in "Psychotoxic"." 
[ForceClipChildren]
help="Forces WS_CLIPCHILDREN main window style to suppress the screen flickering when there's a concurrent screen update between father and child windows. Useful for the movie rendering in "Psychotoxic"."
[PreventMinimizeWindow]
help="Suppresses the command to minimize the main window."
[NoAccessibilityKeys]
help="Disables the automatic prompt to set accessibility keys on repeated keypress during gameplay."
[IgnoreDebugOutput]
help="Emulates the Microsoft shim: "IgnoreDebugOutput"."
[NoOleInitialize]
help="Suppresses harmful OLE initializations (OLEInitialize and CoInitialize) that can lead to COM error: RPC_E_CHANGED_MODE (0x800010106) in DirectX systems (e.g., DirectSound in "Rubik's Games")."
[CacheD3DSession]
help="When activated, the GetDirect3D method will return the original session ID (Experimental)."
[Lock24BitDepth]
help="To suppress emulation of 24-bit color depth. It helps in improving "Tlon" that has many AVI movies with unsupported 24-bit color depth, better rendered at 32-bit."
[LockFPSCorner]
help="Locks the FPS counter at the top left corner when used together with the Video > FPS counter > overlay flag. In addition, this flag displays a hexdump, just after the DxWnd splash logo for 2 seconds, of all the timing related flags to be used to make sure that no cheating is used in a speedrun session. Also, a message: "Speedrun OK" or "Speedrun KO" is displayed."
[NoComplexMipmaps]
help="Suppresses the request for COMPLEX+TEXURE+MIPMAP surfaces that are no longer supported by current DirectDraw drivers. It improves the graphics rendering and compatibility for "Extreme-G 2"."
[InvalidateClient]
help="Forces a window client refresh through InvalidateRect call upon each DirectDraw screen refresh. This updates the GDI rendering that may be covered by DirectDraw surfaces otherwise. Fixes the text on menus in "Gangsters: Organized Crime"."
[D3D8MaximizeWinModeHack]
help="On Windows 10, all Direct3D8 fullscreen applications always run in fake fullscreen mode by default, which is also known as maximized windowed mode. This was done for compatibility with Game Bar, whose interface doesn't show otherwise. This tweak alters a setting in Direct3D8 runtime DLL (d3d8.dll) to restore real exclusive fullscreen mode. Additionally, it disables compatibility shim for turning on maximized windowed mode. This shim also exists in Windows 8.x and is responsible for making certain games run in maximized windowed mode by default on that OS as well. This mode is not implemented on Windows 7 and earlier, so the tweak doesn't apply to those systems. Starting with Windows 10 October 2018 Update, exclusive fullscreen functionality has been removed from Direct3D8 runtime, rendering this tweak ineffective."
[RemapNumericKeypad]
help="For games that want input control from the numeric keypad (namely, "Ecstatica"), it is impossible to be controlled by keyboards without it. This tweak remaps the key codes of the arrow keys and some function keys to the numeric keypad equivalents."
[SetUSKeyDescr]
help="Makes DirectInput EnumObjects return the description of the US keyboard keys. This fixes a bug in "Heavy Gear II" that would recognize input key events only when the key description matches the US language key description."
[ForceRelativeAxis]
help="Forces DirectInput to set relative axis mode for mouse device. Fixes a problem with an obscure game named "Sacked - Your last day"."
[ForceAbsoluteAxis]
help="Forces DirectInput to set absolute axis mode for mouse device. It has been useless so far."
[ReplaceDirectXDLLs]
help="Forces a replacement of DirectX Graphics DLLs with alternative DLLs (such as dgVoodoo2, WineD3D, cnc-ddraw, etc.) that are located in the "alt.dll" subfolder."
[ReplaceDSoundDLL]
help="Forces a replacement of DirectSound DLLs with alternative DLLs (such as IndirectSound, DSOAL, etc.) that are located in the "alt.dll" subfolder. It is also required to set the flag "Sound/Hook DirectSound"."
[Win98OpaqueFont]
help="Strips the alpha channel in font color specification. This emulates a Win95/98 limitation that have no capability for transparent fonts. The tweak is equivalent to a Win95/98 MS shim and makes the text visible in "Langrisser III"."
[FixDCAlreadyCreated]
help="Tries to fix situations where GetDC may return a DDERR_DCALREADYCREATED error."
[SafePrimaryLock]
help="Doubles the size of memory allocated for primary surface. Some games show a bug where the Lock on the primary surface is followed by access to more memory than what should be correct; in video memory, this error cannot produce any effect. On the contrary, in emulated modes, the access outside the bounds of the virtualized primary surface memory leads to a crash. This happened in particular with "Signus: The Artifact Wars"."
[SmackBufferNoDepth]
help="Clears the color depth specification for the movie playing using SMACK, so that the movie can be more easily adapted to the native desktop color depth."
[CreateDCHook]
help="Enables hooking to the CreateDCA/W system calls. It has been unused so far."
[ChaosOverlordsFix]
help="A tweak to improve the handling of transparency colors in "Chaos Overlords"."
[KillDeadlocks]
help="Suppress some deadlock by setting a finite timeout to Wait operations."
[LockSystemSettings]
help="Bypasses all SystemParametersInfo (SPI_SET*) operations, so that the hooked program doesn't alter the system settings."
[RevertDIBPalette]
help="Tries to convert a DIB data from 32bpp to 8bpp palettized format."
[DelayCriticalSection]
help="Inserts a small delay before entering critical regions."
[FakeGlobalAtom]
help="Some programs use global atoms to lock their operations, but this way, when a program crashes, it leaves the global atom locked and makes it impossible to run the program again until the system is rebooted. This tweak pretends that a global atom is created but it is always unlocked, so that the control is passed."
[FixFolderPaths]
help="Fixes an incompatibility in SetCurrentDirectory when the pathname ends with a dot '.' character."
[MutexForCriticalSection]
help="Reimplements the critical sections through the usage of more reliable mutexes."
[SuppressMenus]
help="Suppresses the creation of menus in the main window."
[DirectXVersionLie]
help="Same as Microsoft shim: "DirectXVersionLie". It makes DXDIAGN/OLE DirectX query return the fixed value 9.0c for version major, minor and letter values."
[CenterDialogs]
help="Makes new dialog windows to be centered on the main window. Useful for "Saga: Rage of the Vikings"."
[LegacyBaseUnits]
help="Makes the GetBaseUnits system call return a system font size trimming the maximum value to (hxw) 16x8 pixels. It is useful to run "Aaron vs. Ruth" on modern computers with high resolutions when the game makes a check for the maximum font width of 8 pixels."
[WIN16FINDFILEFIX]
help="Sets a tentative short pathname in FindFirstFileA and FindNextFileA calls replacing the null string. The tweak is not handling all pathname cases, but it should fix the mech customization bug in "MechWarrior 2"."
[WIN16CREATEFILE]
help="Fixes a weird behavior on old Win9x platforms (Win95/98/ME) where a READ+WRITE file access to a read-only CD file is not treated as an error, but is allowed to be in READ mode only. The shim fixes CD checks in some old games."
[MW2WAVEOUTFIX]
help="Patches a "MechWarrior 2" bug where a waveOutOpen call using a callback causes a game crash. The fix disables the callback, but this way, the audio speech samples don't play completely. The tweak isn't required for this game anymore."
[HEAPLEAK]
help="Bypasses all HeapFree calls. It helps eliminating exceptions while freeing heap block when the heap is corrupted, but at the cost of a systematic memory leakage since memory blocks will never be freed until the process is terminated."
[CUSTOMPERFCOUNT]
help="Enables a fine regulation of the emulated hardware clock frequency. The frequency must be set in the Global settings panel (defaulted to 1MHz)."
[XRAYTWEAK]
help="A tweak to allow visibility behind walls (or something like that...) but doesn't work currently."
[MIDIOUTBYPASS]
help="Bypasses all winmm midiOut operations, pretending a success. It fixes possible crashes when the program has exceptions inside midiOut calls."
[FIXEDBITBLT]
help="Fixes a "MechWarrior 2" problem. The GDI32 BitBlt call is supposed to return TRUE (0x1) upon successful oprations, but the game was expecting a return code equal to the number of blitted scan lines as returned by a legacy DirectDraw implementation. The tweak simulates this behavior that lets the game pass its checks."
[D3DXDONOTMUTE]
help="Pretends that the registry holds the "D3DXDoNotMute=1" value."
[DISABLED3DXPSGP]
help="Pretends that the registry holds the "DisableD3DXPSGP=1" value."
[DISABLEPSGP]
help="Pretends that the registry holds the "DisablePSGP=1" value."
[DISABLEMMX]
help="Pretends that the registry holds the "DisableMMX=1" value."
[FORCECOLORKEYOFF]
help="Disables the Direct3D SetRenderState COLORKEYENABLE calls."
[DISABLECOLORKEY]
help="Disables the DirectDraw SetColorKey calls."
[DISABLEDEP]
help="Disables DEP (Data Execution Prevention) that was introduced by Microsoft from Windows XP SP2 as “…a set of hardware and software technologies that perform additional checks on memory to help prevent malicious code from running on a system”. This increments security but it can interfere with the execution of legacy programs that intentionally placed assembly code into data memory segments, so disabling DEP can increase compatibility at the cost of some security risk."
[NOSHELLEXECUTE]
help="Disables ShellExecute operations, returning a success return code."
[DEFUSEFLASHBOMB]
help="Bypasses the Flash time bomb that disables Flash after the year 2021."
[FIGHTINGFORCEFIX]
help="Fixes the CD audio mixer control identification in "Fighting Force"."
[FIXDCCOLORDEPTH]
help="When using color emulation, this tweak fixes the virtual desktop DC (device context) color depth according to the emulated color setting currently active."
[IGNOREFILESYSERRORS]
help="Returns success on some minor system errors that could be caused by DxWnd operations but should not prevent the program from running."
[PATCHMSVBVM]
help="A tentative patch to fix some VB6 initial values. It is unfinished and works only partially and on certain VB6 versions."
[SAFEHEAP]
help="A tentative fix for heap operations. Each heap allocation is wrapped with begin/end markers and a length field so that it becomes possible to check for heap integrity and skip operations that may lead to exceptions. Unfortunately, it is not possible to wrap all memory segments (some are pre-allocated before DxWnd hook) so in some cases, the integrity checks inevitably fail. In any case, it seems to give some benefit. It must be used with early hooking only."
[SPONGEBOBHACK]
help="Eliminates the 16-bit pure white color (0xFFFF) from SpongeBob textures. The 0xFFFF value in textures is mapped as a transparent color, so it is replaced by a color close enough: 0xF7FF. So far, it used in "SpongeBob SquarePants: Employee of the Month" only."
[HEAPPADALLOCATION]
help="Similar to the Microsoft shim with the same name. Every heap allocation is increased by a fixed size so that bugged programs have less chances to corrupt the heap at the cost of some extra memory usage."
[LOCKALLWINDOWS]
help="Lock the position of every non-child window. Works for "Amber: Journeys Beyond"."
[PROJECTBUFFER]
help="Projects the window DC to the selected desktop area. It could be useful for custom video modes that require special video handling."
[FixMacromediaRegistry]
help="Shortens the full pathnames stored in a registry key read by Macromedia with a very small buffer, to avoid a buffer overflow."
[LockSystemMenu]
help="Prevents the program from altering the main window menu, for instance, to disable the window size or move commands."
[StickyWindows]
help="When the program renders video through two different but overlapped windows, the tweak tells DxWnd to move both windows together so that they keep being overlapped when one window is moved."
[WaveOutUsePreferredDevice] 
help="Forces the usage of the default MCI device WAVE_MAPPER. The tweak is equivalent to the Microsoft shim: "WaveOutUsePreferredDevice"."
[SlowDownExceptions]
help="Despite the best efforts of the "Handle Exceptions" flag, some exceptions gets repeated very quickly. This tweak forces a small delay (a few mSec) after the exception detection so that the event doesn't get too frequent. In the game "MechWarrior 2" the tweak may help to set a more correct time handling."
[SlowCDStatus]
help="Some games poll the CD status in a tight loop that executes the MCI commands very frequently, probably supposing that the operation would require some time and delay. Using CD audio emulation, the operation can become very fast as the status request is done too frequently, consuming CPU resources and possibly interfering with the CD play activity. The tweak forces a delay within the CD status request to make the operation less frequent.
[EmulateGetCommandLine]
help="Emulates the behavior of the Microsoft shim: "EmulateGetCommandLine"."
[FixCreateFileMapping]
help="Emulates the behavior of the Microsoft shims: "EmulateCreateFileMapping" and "EmulateOpenFileMapping"."
[ForceD3DRefDevice]
help="Forces the usage of the reference device drivers, depending on the DirecX technology version."
[EmulateWin9XHeap]
help="Emulates the behavior of the Microsoft shim: "EmulateHeap"."
[NoDirectDrawSurfaceNew]
help="Suppresses the requests for IID_IDirectDrawSurfaceNew objects redirecting to (maybe) equivalent IID_IDirectDrawSurface objects."  
[CullModeNone]
help="Forces the CULLMODENONE cull mode that suppresses the optimization of rendering textures on one side only. It may fix situations where some textures appear semi-transparent."
[RampToMMXDevice]
help="Redirects requests for an IDirect3DRampDevice to an IDirect3DMMXDevice."
[RampToRGBDevice]
help="Redirects requests for an IDirect3DRampDevice to an IDirect3DRGBDevice."
[GDIAsyncDC]
help="A tweak to optimize "Mario XP" (only?)"
[HideDisplayModes]
help="Emulates the behavior of the Microsoft shim: "HideDisplayModes"."
[FixFullscreenWinStyle]
help="A tweak to set the window style properly in case of fullscreen modes."
[ForceHalftoneOnTiny]
help="A tweak to force halftone filtering that is suppressed when blitting small DC areas."
[EmulateWin95]
help="Enables a series of tweaks/shims, all suitable to emulate the Windows9x environment."
[DuplicateHandleFix]
help="Emulates the behavior of the Microsoft shim: "DuplicateHandleFix"."
[ForceSimpleWindow]
help="Emulates the behavior of the Microsoft shim: "ForceSimpleWindow". In particular, it takes effect only in non-windowed mode and forces the parent window to accept the fullscreen borderless regardless of the actual style specification."
[LimitResources]
help="Causes the query for available resources (RAM, hard disk space, etc.) to return a limited value: some old games can't handle a very big integer number and see it as a negative value, refusing to start. It should be used with early hooking only. Usually games that need this flag crash immediately at the start complaining about the lack of memory. However, there are exceptions to this rule. For example, "Dungeon Keeper" crashes randomly while playing the game if this flag is not enabled."	
[ReplacePrivOpcodes]
help="Real multitasking OSes (starting from Windows NT) forbid applications from using privileged instructions that directly manipulate the hardware, like the IN opcode. Running a program with such opcodes will result in a program exception on modern systems. This option scans the program code segment at startup and replaces all the detected privileged operations with NOP (no operation) instructions. Since these opcodes are often dedicated to interactions with the sound hardware, the program will likely work with the possible side effect of some audio issues. Use this flag for games like "Ubik"."
[EASportsHack]
help="Intercepts and neutralizes some of the internal hooks usually set by "EA Sports" games, and possibly other titles as well."
[DiabloTweak]
help="A flag that seems to improve Blizzard's "Diablo" compatibility. It should not be used for other games and will cease to be required as soon as a more general tweak is discovered."
[FixFileDialog]
help="A tweak to suppress the OFN_EXPLORER and OFN_ENABLEHOOK flags in file opening dialogs to provide better compatibility with legacy applications in Windows Vista+ environments."
[DumpText]
help="An experimental debug tweak to dump all the text written by USER32/GDI32 system calls to a log file named "dxwnd.txt"."
[EmulateFloppyDrive]
help="Certain programs test the presence of the floppy drive letters A: and B: even when they don't really use them. The tweak lists these disk drive letters as available to let the program pass any checks."
[FilterColorKey]
help="An experimental tweak to enable a cutom filter on color key filtering operations. When the flag is enabled, the color keys are replaced with the colors specified in the "dxwnd.keys.txt" file."
[FastPrimaryUpdate]
help="The flag bypasses the synchronization delay when the program blits directly on the DirectDraw primary surface. The synchronization delay remains valid for all full screen updates performed by blit operations from the backbuffers or flip operations. This allows speedy operations when the program performs multiple small updates of the primary surface."
[DeferredWindowPos]
help="Some D3D8/9 initializations fail when the window size or position is updated. This tweak defers the D3D window sizing & positioning to a later time (currently deferred to the time when the program calls the GetDisplayMode method)."
[MIDISetInstrument]
help="The tweak forces all MIDI channels to play the same instrument. The tweak can only work in those cases where the MIDI protocol is accessible by the hooked program, so it doesn't affect the playback of the MIDI files."
[MCINotifyTopmost]
help="The tweak forces the CD audio emulation to send notification messages to the topmost window by specifying 0xFFFF into the destination window handle field."
[IgnoreScheduler]
help="Emulates the behavior of the Microsoft shim: "IgnoreScheduler"."
[DispelTweak]
help="A tweak to cheat in the game "Dispel" by making it believe that it owns a window with the correct size."
[TrimChildWindows]
help="A child window created outside the parent area and with trim options could easily become invisible and unreached by mouse events, as if it didn't exist. The tweak checks the child window coordinates and, when necessary, moves them so that the child window is always inside the parent area. This tweak can fix the disappeared in-game menus of "Amy's Fantasies"."
[TrimMainWindow]
help="The tweak trims the position and size of a window so that its position is always inside the desktop area. Some games uses the possibility to set huge coordinates to create a fulscreen window, but on recent OS this can impact on other operations. The tweak fixes the "Need for Speed SE" crash because it creates a window whose declared size is 10000x10000!"
[NativeDialogs]
help="Suppresses the scaling of elements inside a dialog window. Fixes the Mosquito SDK sample when bouncing on scaled screen."

