Logs

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.
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.