Compatibility

### Tweaks

Block process priority class | BLOCKPRIORITYCLASS | Blocks a process's attempts to change its own priority class. Old fullscreen games may use this trick to get 100% CPU power dedicated to them, but on modern OSes and windowed environments, this could be a bad idea, interfering with other operations and overheating the processor for no reason.
Set single core process affinity | SINGLEPROCAFFINITY | Some games are not properly synchronized to run on physically separate multi-core CPUs, or simply don't properly handle powerful CPUs. This option sets the program's core affinity so that the program is run by a single core (the first one).
Set last core affinity | USELASTCORE | Same as SINGLEPROCAFFINITY, but picks the last CPU core.

Limit available resources

LIMITRESOURCES

Causes the query for available resources (RAM, hard disk space, and so on) 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. Note: The Hook tab option "Inject suspended process" may be required to be enabled first for this option to work.

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 during the game play if this flag is not enabled.

Disable performance counter | NOPERFCOUNTER | Since the performance metrics hardware is not mandatory on a PC, this flag disables the GetPerfCounter() performance metrics API, simulating an unsupported condition. Usually, in this condition, the software should rely on other performance measurement metrics that are more conveniently manipulated by the DxWnd timing hooks. It should be set when, despite the time acceleration feature, the program doesn't seem to behave according to the imposed speed ratio.
Bypass font unsupported api | FONTBYPASS | Some games may attempt to manage old font styles that were present by default on legacy platforms and are no longer supported. This flag simulates a success operation to let the program continue and run. Of course, the font will be wrong, but Windows will approximate the choice with the most similar available font.
Replace privileged opcodes | REPLACEPRIVOPS | Real multitasking OSes (from Windows NT onward) 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".
Handle exceptions | HANDLEEXCEPTIONS | Setting this flag causes DxWnd 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 which tries to calculate the CPU speed. This is a good flag to try to fix random crashes.
Diablo tweak | DIABLOTWEAK | A flag that seems to improve Blizzard's "Diablo" compatibility. It should not be used for other games and will cease to be supported as soon as a more general tweak is discovered.
Intercept Imagehlp.dll | NOIMAGEHLP | Intercepts imagehlp.dll's unsupported calls, returning a clean error condition so that the program doesn't crash. One notable game that needs this flag is "The Fifth Element".
EA Sports hack | EASPORTSHACK | Intercepts and neutralizes some of the internal hooks usually set by "EA Sports" games, and possibly other titles as well.
Reserve legacy memory segments | LEGACYALLOC | Old 16-bit programs for Windows 95 and 98 relied on the availability of memory from address 0x4000000 to 0x8FFFFFF, even though they never explicitly allocated it. Recent OSes don't guarantee this memory availability. This flag, combined with "Inject suspended process", reserves memory in this range when the program starts up, before that memory can be used for other purposes.
Disable Max Windowed Mode | DISABLEMAXWINMODE | Invokes DirectDraw SetAppCompatData(12,0) to set the DisableMaxWindowedMode.
Win7 color fix | COLORFIX | As described in a DirectDraw hack, this flag fixes a color problem that Windows 7 has with 8BPP palettized modes. It only has an effect when the screen is actually set to an 8BPP color depth, which is now very rare.
Pretend Win visible on top | PRETENDVISIBLE | When set, it forces the detection of the main window as always visible (IsWindowVisible will always return TRUE) and on top of the z-order (GetTopWindow always returning the main window handle) as one would expect from a fullscreen program window.
Win insulation | WININSULATION | Avoids enumerating windows so that the program can't interfere with them. Fixes Tribal Rage's damages to desktop.
Disable CPU MMX support | DISABLEMMX | Fixes "The New Adventures of the Time Machine".
Safe MSVCRT allocs | SAFEALLOCS | The "msvcrt.dll" library contains the implementation of C/C++ allocation routines: malloc, free, realloc. Many bugs may come from errors in using the addresses returned by and fed to these calls. The flag tries to prevent some problems by wrapping the allocated areas with a small preamble that identify the correct usage of these functions. In particular, it avoids free operations on bad addresses (either because they are already freed or just wrong), skipping a potential cause of game crash.

### Tweaks(2)

Fix GlobalUnlock | FIXGLOBALUNLOCK | Fixes a reported problem of the 16-bit GlobalUnock() API's 32-bit port. In some cases, it never returns the expected value, causing game crashes or endless loops.
Fix FreeLibrary | FIXFREELIBRARY | Fixes FreeLibrary, simulating a return code of 0 (error) when attempting to free an unallocated module as Windows 95 and 98 would. Use this flag to fix the endless loop problem in "Heavy Gear" version 1.2.
Skip FreeLibrary recursion | SKIPFREELIBRARY | Corrects an issue with the FreeLibrary invocation that ends up in a recursive call causing a stack overflow. Fixes the Disciples Sacred Lands' crash at startup.
Fix LoadLibrary error | LOADLIBRARYERR | Returns ERROR_DLL_NOT_FOUND instead of ERROR_MOD_NOT_FOUND error code. Fixes "Nightmare Creatures".
Fix LoadLibrary altered search path | FIXALTEREDPATH | Corrects an issue with the standard and alternate search strategy in LoadLibraryEx by adding the current working directory to the search path, so that the files can be linked while staying in the original place. (Needed for the game "Anachronox".)
Fix AdjustWindowRect | FIXADJUSTWINDOWRECT | Selectively turns the AdjustWindowRect coordinate patching. This flag must be checked for "Man TT Super Bike" and unckecked for "Imperialism II".
Virtual Heap (Win95/98 compat.) | VIRTUALHEAP | Remaps memory requests from heap to malloc requests for any additional heap but the default process heap. Needed for some "Wing Commander" games to work.
Virtual Process Heap | VIRTUALPROCHEAP | Also forces the malloc replacement for the process heap despite the fact that it is not possible to intercept its creation. Requires the VIRTUALHEAP flag to be set.
NO BAADFOOD | NOBAADFOOD | Avoids (virtual) heap initialization to 0xBAADFOOD value, setting to 0x0 instead. Needed to run "Independence Day".

### Fake Version

Fake Version | FAKEVERSION | Causes the program to detect the chosen Windows release. Notice: This is not the same thing as the compatibility setting of Windows' "Properties" panel, which also adjusts the system's behavior to emulate the chosen platform.

### GOG

Hook GOG libs | HOOKGOGLIBS | Games distributed by GOG (gog.com) sometimes apply compatibility patches by changing the name and compatibility behavior of some system DLLs and routing system calls here. This flag causes DxWnd to hook these custom libraries instead of the system equivalent. Only use this flag on certain GOG games.
Bypass GOG libs | BYPASSGOGLIBS | The purpose of this flag is similar to that of HOOKGOGLIBS. It is sometimes a better solution to avoid rerouting the system calls to custom DLLs and instead map them to system DLLs. This flag breaks GOG's system call rerouting. Only use this flag on certain GOG games.