Generic

Parent Previous Next

Hook enabled

HOOKENABLED

If this flag is not set, DxWnd ignores the task - see gray icon

Do not notify on task switch

UNNOTIFY

Inhibits the task switch notification message that may hurt some games not designed to handle it properly

No banner

NOBANNER

Well, DxWnd celebrates itself a little by showing a very short splash screen at the beginning. If you're not happy with this, checking this flag will disable the show.

Run in window

WINDOWIZE

Checked by default, tells DxWnd to try to run the program in windowized mode, that is the essential reason why DxWnd exists. But if not checked DxWnd still performs all other functions not related to the screen size, such as time stretching, compatibility options and so forth.

Hook all DLLs

HOOKDLLS

The original DxWnd behaviour was limited to search & hook calls made by the main program directly. Checking this flag cause DxWnd to recurse in all  non-system DLLs address space to hook calls there. It's necessary in all cases where the graphic engine is not directly coded in the program, but it's implemented in a separated engine DLL.

Hook OpenGL

HOOKOPENGL

Enables OpenGL API hooking

Remap Client Rect

CLIENTREMAPPING

Enabled by default, makes DxWnd remap the window client coordinates so that the program receives the same values as if the program was running in fullscreen mode.

Hot patch (obfuscated IAT)

HOTPATCH

The original DxWnd used IAT patching to redirect API calls to the altered routines. This method has its advantages, but fails when not all API are reached because they are located in unconnected dlls, referenced by ordinal number or referenced by programs with obfuscated IAT. IAT obfuscation is a sophisticated but common enough technique to make hacker's life harder: for instance, the game executable of Doom III has an obfuscated IAT.


Checking this flag cause DxWnd to use an alternate patching technique, that is the "hot patching" that creates a detour assembly code right at the beginning of the API implementation.  Once done EVERY SINGLE CALL gets intercepted no matter from where the call is made, but it isn't always possible to apply this technique. Luckily, in the vast majority of cases, they both work.

Use DLL injection

STARTDEBUG

The basic hook thecnique intercepts the first window creation event. At that time, the program may have done unwanted actions already, such as changing video mode or detecting bad conditions or crashing. Checking this flag cause the DxWnd logic to be "injected" right at the beginning of the task execution, making DxWnd able to intercepts all events. The drawback is that this only works when the task is activated from the DxWnd interface – see red icon. Another drawback is that the injection process resembles pretty much of an activation from a debugger, increasing the chances for game protections to intercept this situation and stop the program.

Hook child WindowProc

HOOKCHILDWIN

By default, DxWnd intercepts the WindowProc routine of the main window, and this is enough for its purposes. In some cases, though, this is not enough and this flag tells DxWnd to intercept and redirect the WindowProc routines of all child windows as well.

Optimize CPU (DirectX 1-7)

SAVELOAD

Optimizes the CPU load, but only for ddraw operations (DirectX1 to DirectX7)