Handles "dxwnd.log" logs. For collecting the basic log information, select: "Overwrite", enable: "DxWnd hacks", "DirectDraw Trace", "Direct3D trace" and "Debug". Then run your game until the problem occurs and close the game. This will then save a log file called "dxwnd.log" in your game folder.

WARNING: Do not run your game for long with logs enabled. This may create a HUGE file.

See: Taking Logs Tutorial


log mode

None

No logs.

Overwrite

Logs will erase and overwrite an existing "dxwnd.log" file.

Append

If a log exists, logging messages will be added to the existing file. Otherwise, a new file will be created.

Separated

Each session will write to a new, separate log file named "dxwnd<n>.log", where n is the smallest usable number to avoid filename conflicts.

Circular

In circular logs mode, "dxwnd.log" is filled with up to 50000 messages and then swapped to "dxwnd.0.log".



log severity

Essential

The log messages in this category are always printed also when the topic is disabled. They are essential messages always necessary to understand the context. For instance, the first 3 log lines are essential and always present.

Error

Highest severity, these messages are always printed if the category to which they belong to is enabled.

Trace

Normal severity, the messages with trace severity level are printed when their category is enaled and the severity is set to "Trace" or "Debug".

Debug

Debug severity, the messages with debug severity level contain verbose (and often useless) information that is printed only when their topic is enabled and the severity level is "Debug".

Print all errors

When this flag is enabled, all messages with error severity are printed no matter if their topic is enabled or not. This can be useful when making preliminary tests where it's not still clear where the problems could be located and you don't want to miss any possible clue.



log options

Output debug string

OUTDEBUGSTRING

Each log message will also be generated as a debug message. This can be useful to show the logs while they occur by using a runtime scrollable view such as that offered by the "DebugView.exe" tool.

Add timestamp to log

ADDTIMESTAMP

Adds a timestamp with the system tick count (from GetTickCount() calls) to the beginning of each line in a log file.

Relative timestamp

ADDRELATIVETIME

If the "Add timestamp to log" option is enabled, the "Relative timestamp" option adds a timestamp to the beginning of each line in a log file that measures the duration between that line and the previous one. This makes it easier to spot long operations.

Thread ID

ADDTHREADID

Adds a thread ID to log messages.

Debug

OUTDEBUG

Writes some more detailed information for diagnostic purposes.

HexDump trace

OUTHEXTRACE

When set, some complex information is also logged in full hexadecimal format.

Write on temp folder

OUTONTEMPFOLDER

By default, DxWnd writes its log files in the same folder where the target hooked program is located. This can bring some problems when the target is on a read-only folder, or has no write permissions on that folder, or when (because of the shared hook mode) the target program could be in some unknown folder or automatically deleted at the end of the operations. This flag makes DxWnd write the log files on the user temporary folder, also referred by the %TEMP% environment variable.



logged info

DxWnd hacks

OUTDXWINTRACE

Logs all the significant events that DxWnd perform to run the fullscreen program in windowed mode.

DirectDraw trace

OUTDDRAWTRACE

Logs DirectDraw operations

Direct3D trace

OUTD3DTRACE

Logs Direct3D operations.

GDI/user32 libs

OUTGDITRACE

Logs the operations made by "gdi32.dll" or "user32.dll" system libraries.

System libs

OUTSYSLIBS

Logs the system library calls.

Win Events

OUTWINMESSAGES

Logs all the window messages intercepted in the application's queues, along with events that are generated or processed internally by the Peek/GetMessage APIs.

Cursor/Mouse

OUTCURSORTRACE

Logs all the cursor or mouse related operations. Note that some old games don't mind the possibility of concurrent use and perform many mouse/cursor operations in a short period of time. This type of logs can quickly grow quite large. In this case, consider slowing down the program with the “Slow down mouse polling” flag in the "Timing" tab.

Registry op.

OUTREGISTRY

Logs the registry operations.

Sound

OUTSOUNDTRACE

Logs operations related to sound, that is some calls of WinMM (mci calls in particular) and all DirectSound methods.
Note: Since some WinMM operations are not necessarily handling sounds, those calls are usually included in the "System libs" category.

COM Trace

OUTCOMTRACE

Logs the operations performed through OLE/COM libraries.

WinG32 trace

OUTWGTRACE

Logs WinG32 operations.

OpenGL trace

OUTOGLTRACE

Logs OpenGL operations.

SDL trace

OUTSDLTRACE

Logs SDL operations.

Time stretching

OUTTIMETRACE

Logs the time stretching transformations. Please note that it can produce very big files.

File I/O op.

OUTFILEIO

Logs all the file input/output operations that are not logged yet by the OUTSYSLIBS flag.

Inputs

OUTINPUTS

Logs DirectInput operations.

Locale

OUTLOCALE

Logs the locale transformation operations.

FPS counters

OUTFPS

Logs the FPS counters once per second. This option allows you to measure the FPS without impacting the video rendering or making critical accesses to the window title bar.

DirectShow

OUTDSHOW

Logs the the methods of the DirectShow components.

D3Dumddi

OUTDRV

Logs the operations performed by the hooked callbacks of the d3dumddi interface at the video driver level.

VGA direct access

OUTVGA

Some early Windows32 games still had code for accessing the video hardware directly through assembly instructions for reading from or writing to some registers. These instructions are not allowed on WindowsXP+ systems and throw exceptions. DxWnd can intercept these exceptions and remap the I/0 operations to the allowed operating system calls, but these operations can happen very frequently (for instance a palette update could generate more than 3 * 256 exceptions) so the operations have a dedicated topic for their logging.

Import Table

OUTIMPORTTABLE

Logs the import table as seen by DxWnd. This can be quite useful in analyzing and troubleshooting uncommon executables (e.g., when copy protections are applied).

Hook op.

TRACEHOOKS

Logs the hooking operations. Since this log is usually very verbose, the use of this flag is strongly discouraged to avoid the production of huge and unreadable log files.