diff --git a/build/dxwnd.dll b/build/dxwnd.dll index b1103fa..5e2b8cb 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b68ac891dc35be7d517bfa66d0fc29b94c29c7c38273d82c8ae56fd2f926de67 +oid sha256:2cb685fd9bcac89865a83e26fbdc14663d7d2f9bba0014f1e4c44606f6bb7702 size 680960 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index 85c11b7..2632b2e 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:013cb94598addc50851bd8ef0dc46a726aabc48cfd154c93b41fd0d7e5bb2e73 -size 660480 +oid sha256:b7b7d8268a048d4d8600bca6824ef8226e2dab5bb347d07b9bb2afff7d2a73d1 +size 660992 diff --git a/build/exports/Crazy Hospital 3.dxw b/build/exports/Crazy Hospital 3.dxw new file mode 100644 index 0000000..af26bef --- /dev/null +++ b/build/exports/Crazy Hospital 3.dxw @@ -0,0 +1,33 @@ +[target] +title0=Crazy Hospital 3 +path0=D:\Games\Crazy Hospital 3\Dtrmain.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Janes FA18.dxw b/build/exports/Janes FA18.dxw new file mode 100644 index 0000000..f9a62c2 --- /dev/null +++ b/build/exports/Janes FA18.dxw @@ -0,0 +1,33 @@ +[target] +title0=Janes FA18 +path0=D:\Games\Janes FA18\F18.exe +startfolder0= +launchpath0= +module0=MFC42.DLL +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Street Fighter Zero II.dxw b/build/exports/Street Fighter Zero II.dxw new file mode 100644 index 0000000..c9f6633 --- /dev/null +++ b/build/exports/Street Fighter Zero II.dxw @@ -0,0 +1,33 @@ +[target] +title0=Street Fighter Zero II +path0=D:\Games\sfzero2\ZERO2.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Super Puzzle Fighter 2 Turbo.dxw b/build/exports/Super Puzzle Fighter 2 Turbo.dxw new file mode 100644 index 0000000..f03e1ea --- /dev/null +++ b/build/exports/Super Puzzle Fighter 2 Turbo.dxw @@ -0,0 +1,33 @@ +[target] +title0=Super Puzzle Fighter 2 Turbo +path0=D:\Games\Super Puzzle Fighter 2 Turbo (1997)\W_Spf2x.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0=[HKEY_LOCAL_MACHINE\SOFTWARE\Capcom]\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Capcom\w_spf2x]\n"SAVEDIR"=".\\"\n"SC_MODE"="SCREEN_MODE_640*480_8BIT_DIRECTX"\n"CD_ROM"=".\\"\n"SETUPCEHCK"="SETUP_ALL_OK"\n"NET_USER"=""\n\n +ver0=0 +monitorid0=-1 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=1044 +flagi0=1212153860 +flagj0=5248 +flagk0=67584 +flagl0=32768 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/help/3Deffects1.html b/build/help/3Deffects1.html index 95c7837..786d593 100644 --- a/build/help/3Deffects1.html +++ b/build/help/3Deffects1.html @@ -49,7 +49,7 @@
Disable Textures
NOTEXTURES
+NOTEXTURES
Remap all textures with a white texture (Direct3D only).
3D wireframe
WIREFRAME
+WIREFRAME
Show graphics in wireframe mode. This option works with Direct3D and OpenGL programs, but not with DirectDraw programs.
Disable Fogging
DISABLEFOGGING
+DISABLEFOGGING
Disables the fogging effect (Direct3D only).
Clear target viewport
CLEARTARGET
+CLEARTARGET
Forcefully invokes the Direct3D "Clean" method on the target surface every time the "BeginScene" method is invoked. Most games already do this, but some omit it because there were no undesired effects on the computers that were in use at the time. Running these games in windowed mode on modern platforms may show trails of previous frames. This flag cleans up graphical artifacts from old frames, resolving this issue.
Set AERO compatible mode
SETCOMPATIBILITY
+SETCOMPATIBILITY
Forces the program to declare its compatibility with AERO desktop mode by invoking the DirectDraw SetAppCompatData call, suppressing the switch from AERO to standard desktop mode. Useful for Windows Vista to Windows 8.
Optimize for AERO mode
AEROBOOST
+AEROBOOST
Optimizes operations for the AERO environment. All stretching and color conversion operations are made on system memory surfaces, and then the final blit to screen doesn't break the AERO mode.
Hook DirectSound
HOOKDIRECTSOUND
+HOOKDIRECTSOUND
Hooks DirectSound to avoid hardware exclusive access, allowing debugging, tracing, and future expansions.
Hook Smackw32
HOOKSMACKW32
+HOOKSMACKW32
Hooks Smackw32 to avoid tight looping, allowing debugging, tracing, and future expansions. When this flag is active, the SmackOpen call activates a thread that ensures that all frames are refreshed to the screen (similar to the "Auto Primary Surface Blit" option in DirectDraw Surface Handling).
+Hooks Smackw32 to avoid tight looping, allowing debugging, tracing, and future expansions. When this flag is active, the SmackOpen call activates a thread that ensures that all frames are refreshed to the screen (similar to the "Auto Primary Surface Blit" option in DirectDraw Surface Handling).
Simulate BW monitor
BLACKWHITE
+BLACKWHITE
Activate a tweak in the palette handling that causes all colors to be replaced with the corresponding grayscale color. It works only on 8BPP palettized games or while emulating 16BPP on a 32BPP desktop.
Set 16BPP RGB565 encoding
USERGB565
+USERGB565
By default, DxWnd emulates 16BPP color with RGB555 encoding. The option forces RGB565. This option only impacts the video in emulation mode and with 16BPP color depth.
Lock Sys Colors
LOCKSYSCOLORS
+LOCKSYSCOLORS
Suppresses the SetSysColors API that changes the colors of system elements, such as window borders and panel backgrounds. Some fullscreen games change these colors when they start and revert them when they exit, which is unnoticeable when these games run in fullscreen mode but very noticeable when they are run in a window. The only known game that needs this option is Western Front.
Lock reserved palette entries
LOCKRESERVEDPALETTE
+LOCKRESERVEDPALETTE
This option simulates a lock on the system palette entries (usually 20 colors, corresponding to 0-9 and 246-255 in the 8-bit, 256-color palette entries), preventing DirectDraw calls from updating these values.
Disable setting gamma ramp
DISABLEGAMMARAMP
+DISABLEGAMMARAMP
Prevents the API from altering the default gamma ramp, making the screen lighter or darker. Since the API affects the whole screen, this flag is mainly useful to prevent a game's gamma settings from affecting your entire desktop.
/T + | /T |
-Starts DxWnd iconized in the System Tray (see DxWnd in the System Tray). + | Starts DxWnd iconized in the System Tray (see DxWnd in the System Tray). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/I + | /I |
-Starts DxWnd initially in the IDLE state, so that it doesn't affect the programs until you manually issue a Hook > Start command. + | Starts DxWnd initially in the IDLE state, so that it doesn't affect the programs until you manually issue a Hook > Start command. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/C:<filename> + | /C:<filename> |
-Uses the <filename> configuration file instead of the default config.ini file. In any case, the configuration file must be located in DxWnd's working directory. + | Uses the <filename> configuration file instead of the default config.ini file. In any case, the configuration file must be located in DxWnd's working directory. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/lang=<xx> + | /lang=<xx> |
-If you need a localized version of DxWnd, this argument causes DxWnd to load all resource text from the external DLLs, given in Resources_<xx>.dll. + | If you need a localized version of DxWnd, this argument causes DxWnd to load all resource text from the external DLLs, given in Resources_<xx>.dll. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/debug + | /debug |
Enables debug features. Not recommended! |
diff --git a/build/help/Compatibility.html b/build/help/Compatibility.html
index 3818336..8b2fd33 100644
--- a/build/help/Compatibility.html
+++ b/build/help/Compatibility.html
@@ -49,7 +49,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Correct mouse position |
-MODIFYMOUSE + | MODIFYMOUSE |
Compensate for X,Y mouse coordinates when the window is moved or resized. It should be typically set for most games. |
@@ -71,7 +71,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Position message processing |
-MESSAGEPROC + | MESSAGEPROC |
Some programs get the current mouse position via the dedicated GetCursorPos API, but others analyze the POINT coordinates that are includes in every window message the program receives. This flag enables a Windows hook that receives messages and compensates for windowed mode's displacement of mouse coordinates by adjusting them to the equivalent fullscreen coordinates. |
@@ -79,7 +79,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Force cursor clipping |
-CLIPCURSOR + | CLIPCURSOR |
Set hardware cursor clipping within the window's region. This greatly improves the game's playability in some cases (namely, the Dungeon Keeper series). |
@@ -87,7 +87,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Keep cursor within window |
-KEEPCURSORWITHIN + | KEEPCURSORWITHIN |
Avoid moving the cursor outside the window area. This was used as a “Cursor OFF” directive in some games. |
@@ -95,7 +95,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Keep cursor fixed |
-KEEPCURSORFIXED + | KEEPCURSORFIXED |
Inhibits the SetCursorPos() API. In some cases, it affects the program's behavior (e.g. the game Necrodrome). |
@@ -103,7 +103,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Intercept GDI cursor clipping |
-ENABLECLIPPING + | ENABLECLIPPING |
Disables GDI clipping, avoiding unpleasant effects such as preventing the mouse from moving within the whole window. |
@@ -111,15 +111,15 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fix WM_NCHITTEST |
-FIXNCHITTEST + | FIXNCHITTEST |
-Fixes the WM_NCHITTEST message X,Y coordinates. When the window's border behaves strangely, set this flag to correct the position of the mouse cursor. + | Fixes the WM_NCHITTEST message X,Y coordinates. When the window's border behaves strangely, set this flag to correct the position of the mouse cursor. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Slow down mouse polling |
-SLOW + | SLOW |
Some old programs have this bad habit of continuously looping through the mouse status polling with no delay, hogging 100% of CPU resources. This flag introduces a minimal and unnoticeable delay between mouse polls, saving CPU resources. |
@@ -127,7 +127,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Release mouse outside window |
-RELEASEMOUSE + | RELEASEMOUSE |
Normally, when the mouse is placed outside the window and the window keeps receiving mouse messages, the mouse cursor is placed on the corresponding window border and the program performs video scrolling or so forth. There are some cases in which you don't want this to happen: for instance, when you want to alternate between two programs, such as a game and a keyboard simulator. Checking this flag causes DxWnd to detect the "mouse outside window" condition, and in this case it places the cursor right in the middle of the screen, where it is supposed to cause no harm. |
@@ -135,7 +135,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enable virtual joystick |
-VIRTUALJOYSTICK + | VIRTUALJOYSTICK |
Some games require a joystick. If a joystick is not connected, this flag emulates a rudimentary joystick, controlled by mouse movement. The X and Y axes are controlled by mouse movement, the two primary joystick buttons are controlled by left and right click, and the joystick centering function is controlled by the middle mouse button (if available). The joystick's position and its button states are shown in a cross-shaped viewfinder that overlaps the game window. |
diff --git a/build/help/Cursorvisibility.html b/build/help/Cursorvisibility.html
index 7631ce1..b3ef86a 100644
--- a/build/help/Cursorvisibility.html
+++ b/build/help/Cursorvisibility.html
@@ -51,7 +51,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hide |
-HIDEHWCURSOR + | HIDEHWCURSOR |
Forces hiding the hardware cursor. |
@@ -79,7 +79,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Show |
-SHOWHWCURSOR + | SHOWHWCURSOR |
Forces showing the hardware cursor. |
diff --git a/build/help/Ddrawtweaks.html b/build/help/Ddrawtweaks.html
index 71f6336..e9a0ef6 100644
--- a/build/help/Ddrawtweaks.html
+++ b/build/help/Ddrawtweaks.html
@@ -63,7 +63,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No primary SYSTEMMEMORY |
-NOSYSMEMPRIMARY + | NOSYSMEMPRIMARY |
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. |
@@ -71,7 +71,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No backbuffer SYSTEMMEMORY |
-NOSYSMEMBACKBUF + | NOSYSMEMBACKBUF |
Similar to the NOSYSMEMPRIMARY flag, but applied to the backbuffer surface. It's rare to need both of these flags, and which one to use depends on where the application performs the accelerated functions. |
@@ -79,7 +79,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lock/Unlock Pitch Fix |
-FIXPITCH + | FIXPITCH |
Some programs ignore the pitch value returned by the DirectDrawSurface::Lock method and fill the graphics buffer according to an incorrect predetermined pitch value. This discrepancy is caused when DxWnd creates virtual surfaces with varying pitch values that may not correspond to the original values when creating the surface on a different memory type (system memory and video memory). When this is happening to a hooked program, some elements may appear diagonally skewed. Note how the left border of the text widget in the figure below goes down and to the right rather than straight down, distorting the contained text as well. This flag resolves the issue by copying the graphic scan lines to the proper memory offset. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Width not power of 2 fix |
-POWER2WIDTH + | POWER2WIDTH |
Some programs produce texture surfaces of odd sizes, which are generally not supported but can be detected when the textures have an incorrect aspect ratio. This flag resolves the issue by copying the graphic scan lines to the proper memory offset. The most notable example of this issue is in Midtown Madness. |
@@ -97,7 +97,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fix ddraw refcount |
-FIXREFCOUNTER + | FIXREFCOUNTER |
Decrement the reference counter of some objects to properly track all of DxWnd's service objects. |
@@ -105,7 +105,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Return 0 refcount |
-RETURNNULLREF + | RETURNNULLREF |
Always return a 0 reference counter when a surface or DirectDraw session is released. |
@@ -113,7 +113,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Suppress overlay capability |
-SUPPRESSOVERLAY + | SUPPRESSOVERLAY |
Prevents the game from detecting any hardware overlay capability. Hardware overlay is very efficient, but not very flexible. If you run a program with hardware overlay in a window, you may be able to reposition and resize the window, but the blitted surface (the content of the window) doesn't move or change. This flag makes programs ignore hardware overlay capability so that you can move or stretch the window with expected results. The most notable example of this issue is in Moto Racer 2. |
@@ -121,7 +121,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set minimal caps |
-MINIMALCAPS + | MINIMALCAPS |
Simulates minimal hardware capabilities similar to what's available by the VirtualPC or VMWare emulators. Some older games may not support advanced features, in which case this flag can improve the rendering process and eliminate some artifacts. |
@@ -129,7 +129,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deinterlace movies |
-DEINTERLACE + | DEINTERLACE |
Interlaced movies on old games would improve their frame rate by only showing the odd horizontal lines of the video, leaving even lines black. The black lines weren't very noticeable on old monitors, but the effect becomes more pronounced on modern computers. This flag detects interlaced movies and interpolates the lines above and below each black line to approximate a full video, improving the video quality at the cost of some extra CPU usage. |
@@ -137,7 +137,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set ZBufferBitDepths capability |
-SETZBUFFERBITDEPTHS + | SETZBUFFERBITDEPTHS |
The dwZBufferBitDepths is an obsolete field in the DirectDraw surface descriptor. It is no longer set and should be ignored, but some old programs rely on the value of this field and may crash if the field is empty (contains the null value). This flag copies the value returned by the GetCaps method and places it into the dwZBufferBitDepths field. The most notable example of this issue is in Mech Commander 2. |
@@ -145,7 +145,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Limit ddraw interface |
-LIMITDDRAW + | LIMITDDRAW |
Instead of using a specific version of DirectDraw, some programs simply request the most recent version available on the machine. Using a version of DirectDraw that is significantly newer than what was available when the game was developed may have poor results. This option hides newer versions of DirectDraw from the hooked program, basically allowing you to manually specify which version of DirectDraw the program should use. Choose a maximum DirectDraw version from the drop-down menu located near this option. |
@@ -153,7 +153,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Forces HEL |
-FORCESHEL + | FORCESHEL |
Forces Hardware Emulation Layer. |
diff --git a/build/help/Desktopcolordepth.html b/build/help/Desktopcolordepth.html
index 3efc1ef..bd89cd1 100644
--- a/build/help/Desktopcolordepth.html
+++ b/build/help/Desktopcolordepth.html
@@ -51,7 +51,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Textures not power of 2 fix |
-NOPOWER2FIX + | NOPOWER2FIX |
Some games don't properly check whether the hardware can properly manage textures whose sizes are not a power of 2 (e.g. 16, 32, 64, 128 bits). If textures of a different size are processed by hardware without this capability, you get diagonal effects on the rendered image. The option fixes this problem. |
@@ -71,7 +71,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Clean ZBUFFER @0.0 fix |
-ZBUFFER0CLEAN + | ZBUFFER0CLEAN |
Some games don't properly clear the zeta buffer between frames, producing incorrect surface z-ordering and other issues. This flag fixes this problem. |
@@ -79,15 +79,15 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Clean ZBUFFER @1.0 fix |
-ZBUFFERCLEAN + | ZBUFFERCLEAN |
-Some games don't properly clear the zeta buffer between frames, producing incorrect surface z-ordering and other issues. This flag fixes this problem. It is similar to ZBUFFER0CLEAN, but it works in different contexts. + | Some games don't properly clear the zeta buffer between frames, producing incorrect surface z-ordering and other issues. This flag fixes this problem. It is similar to ZBUFFER0CLEAN, but it works in different contexts. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Suppress D3D8/9 Reset |
-NOD3DRESET + | NOD3DRESET |
Do not perform the D3D reset operation. |
@@ -95,11 +95,19 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Suppress d3d9 extensions |
-SUPPRESSD3DEXT + | SUPPRESSD3DEXT |
D3d9.dll comes in different versions depending on the platform: on older windows releases it exports the Direct3DCreate API, while in more recent versions there are many further exported calls. This flag suppresses the additional entries. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enumerate 16bit modes + |
+ENUM16BITMODES + |
+On Windows 10, the list of available video modes (see DirectDraw8/9::EnumAdapterModes) may not include those with color depths lower than 32bpp while no fullscreen programs are running (known as "desktop composition mode"). This may impact games that need 8- or 16-bit color depth. This flag forces the inclusion of modes with 16-bit color depth. + |
+
Auto primary surface refresh
AUTOREFRESH
+AUTOREFRESH
Some badly programmed games (namely the "Cossaks" series) don't follow the specification to blit changes on screen, they just get the primary surface memory address and keep writing there. The option forces a periodic blitting of the primary surface on screen even if the game doesn't request it. You want a second example? It has not been easy to find, but "Crush! Deluxe" suffers the same problem.
switch VIDEO to SYSTEM on fail
VIDEOTOSYSTEMMEM
+VIDEOTOSYSTEMMEM
When this option is set and a CreateSurface fails because of video memory shortage, DxWnd backs this up by creating the surface on memory. Oddly enough, some games expect to notice this by themselves and work correctly only when the option is NOT set.
Suppress DX common errors
SUPPRESSDXERRORS
+SUPPRESSDXERRORS
Some games running in windowed mode generate sporadic errors that wouldn't prevent the game to work, but terminate the application. This option makes directx methods return OK condition in such common cases.
Make Backbuf attachable
BACKBUFATTACH
+BACKBUFATTACH
Alters the size specification of the created backbuffer so that it copes with the actual primary surface, so that it may be attachable to a ZBUFFER surface. It makes “Dave Mirra Freestyle BMX” playable.
Blit from Backbuffer
BLITFROMBACKBUFFER
+BLITFROMBACKBUFFER
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!
Suppress clipper
SUPPRESSCLIPPING
+SUPPRESSCLIPPING
DxWnd sets clipping on the primary surface. If the game does it as way, there might be interferences. As a matter of fact, setting this flag is the only way to make "Pax Imperia Eminent Domain" working correctly.
Force clipper
FORCECLIPPER
+FORCECLIPPER
Forces mouse clipping inside the main window client area. This is very useful if a fullscreen game doesn't provide for cursor clipping and there is horizontal or vertical scrolling.
Palette update don't blit
NOPALETTEUPDATE
+NOPALETTEUPDATE
Avoid executing a plit operation in case of palette update. This could be used to fix conflicts between GDI and ddraw palette updates.
Don't fix the Pixel Format
NOPIXELFORMAT
+NOPIXELFORMAT
Do not try to fix the surface pixel format.
By default set no ALPHACHANNEL
NOALPHACHANNEL
+NOALPHACHANNEL
By default, DirectDraw surfaces are created with alpha channel capability. This flag changes the default to create surfaces without alpha channel capability.
Auto Primary Surface Blit
AUTOREFRESH
+AUTOREFRESH
Some games ignore DirectDraw specifications, updating the memory address returned by the first DirectDrawSurface::Lock operation, avoiding the need to Unlock and Lock on every frame (the original version of Cossacks does this). On modern systems, these games display a black screen even though the image is refreshed on the virtual surfaces. This flag periodically refreshes the display while processing the Windows message queue, forcing the game to blit each updated frame to the screen.
Forced mode
Same as Auto Primary Surface Blit, but uses a dedicated thread to manage situations where the game doesn't process the message queue (e.g., during intro movies).
Set texture pixel format
TEXTUREFORMAT
+TEXTUREFORMAT
Applies the virtual pixel format to texture surfaces that don't have an explicit DDSD_PIXELFORMAT attribute.
Suppress Release on backbuffer
SUPPRESSRELEASE
+SUPPRESSRELEASE
This flag ensures that the DirectDraw backbuffer surface - a critical resource - will not be released in emulated modes, even if explicitly requested.
Flip emulation
FLIPEMULATION
+FLIPEMULATION
Enabled by default, this flag remaps the DirectDraw Flip method which isn't supported on windowed primary surfaces to a corresponding Blt (blit) operation.
Compensate Flip emulation
NOFLIPEMULATION
+NOFLIPEMULATION
By default, the Flip operation doesn't take into account the existing background. In several cases (mostly involving mouse cursor movement), this simplified method leaves trails on the screen. This option switches to a slower but more accurate method of Flip emulation that resolves this issue.
Hook dinput
HOOKDI
+HOOKDI
Hooks DirectInput libraries, making sure that the DirectInput modes are appropriate for a non fullscreen program and enabling all other flags in the same group.
Hook dinput8
HOOKDI8
+HOOKDI8
Hooks DirectInput8 libraries, making sure that the DirectInput8 modes are appropriate for a non fullscreen program and enabling all other flags in the same group.
Unacquire devices on focus lost
UNACQUIRE
+UNACQUIRE
Unacquire DirectInput/DirectInput8 devices when they lose focus and acquire them back when they regain focus. This option should be set if the program using DirectInput libraries keeps listening to mouse input even when the program's window is inactive, or when it keeps ignoring mouse input even when the program's window becomes active once again.
Emulate mouse relative movement
EMULATERELMOUSE
+EMULATERELMOUSE
Emulates the DirectInput detection of relative mouse position by keeping the mouse at the center of the window and looking for movements. It should be used whenever the native DirectInput mechanism doesn't work properly.
Skip HID device type
+???
+???
+Suppress DI common errors
+???
+???
+Set keyboard shared coop. level
+SHAREDKEYBOARD
+Forces DirectInput cooperative level to NONEXCLUSIVE mode for the keyboard.
+DirectX Version Hook: Sets the basic intervention strategy. DxWnd should use a different hooking technique depending on the game technology. Automatic mode tries to find the correct technique by itself, but it doesn't always succeed. OpenGL handling requires a dedicated setting (see Libs).
+DirectX Version Hook: Sets the basic intervention strategy. DxWnd should use a different hooking technique depending on the game technology. Automatic mode tries to find the correct technique by itself, but it doesn't always succeed. OpenGL handling requires a dedicated setting (see Libs).
Available options:
Once you move DxWnd in the system tray with File > Move to tray and until the program is terminated, an icon will be visible in the system tray. Right-clicking on the icon, you get a subset of the DxWnd commands, plus the Show command that shows the DxWnd window again. The Show command is the menu default, so you can also activate it by double-clicking on the DxWnd tray icon.
+Once you move DxWnd in the system tray with File > Move to tray and until the program is terminated, an icon will be visible in the system tray. Right-clicking on the icon, you get a subset of the DxWnd commands, plus the Show command that shows the DxWnd window again. The Show command is the menu default, so you can also activate it by double-clicking on the DxWnd tray icon.
Move |
-See Move. + | See Move. |
Log |
-See Log. + | See Log. |
Global settings |
-See Global settings. + | See Global settings. |
None
(default)
+(default)
The primary surface and backbuffers are simply scaled to the desired size, but no other characteristic is altered. In particular, the pixel color depth and mode are not altered.
Primary Buffer
EMULATEBUFFER
+EMULATEBUFFER
Same as "None," but blit operations are made against a memory surface and then transferred to the real primary surface – this handles the so-called "pitch-bug" problem.
Locked Surface
LOCKEDSURFACE
+LOCKEDSURFACE
Same as "Primary Buffer" (EMULATEBUFFER) but the buffer is the surface of an OFFSCREENPLAIN DirectDraw surface, so it is handled similarly to a DirectX surfacebuffer.
+Same as "Primary Buffer" (EMULATEBUFFER) but the buffer is the surface of an OFFSCREENPLAIN DirectDraw surface, so it is handled similarly to a DirectX surfacebuffer.
Primary Surface
EMULATESURFACE
+EMULATESURFACE
The virtual primary surface has a different color depth from the real primary surface, and DxWnd takes care of the color transformation internally: it might be a little slower but it involves no screen mode changes. Furthermore, this option allows you to set the "Set AERO compatible mode" that avoids making a temporary color conversion and stretching it to the primary surface (which would break the AERO desktop composition mode).
Hybrid mode
HYBRIDMODE
+HYBRIDMODE
Similar to "Primary Surface" mode (EMULATESURFACE), but DxWnd forwards the palette and color conversion to GDI calls instead of managing them internally. It is usually less compatible than primary surface, but in some rare cases it may better at managing unusual color conversions. Try this option if the game works but the colors are wrong or the screen is black.
+Similar to "Primary Surface" mode (EMULATESURFACE), but DxWnd forwards the palette and color conversion to GDI calls instead of managing them internally. It is usually less compatible than primary surface, but in some rare cases it may better at managing unusual color conversions. Try this option if the game works but the colors are wrong or the screen is black.
GDI mode
GDIMODE
+GDIMODE
Similar to "Primary Surface" mode (EMULATESURFACE), but DxWnd forwards all the conversion between the virtual primary interface and the window surface instead of managing it internally. Because of recent optimizations to GDI that can now take advantage of hardware-accelerated functions, this mode is becoming particularly interesting, and the lack of extra service surfaces brings it closer to the original game schema. It is also quite respectful of AERO desktop modes.
+Similar to "Primary Surface" mode (EMULATESURFACE), but DxWnd forwards all the conversion between the virtual primary interface and the window surface instead of managing it internally. Because of recent optimizations to GDI that can now take advantage of hardware-accelerated functions, this mode is becoming particularly interesting, and the lack of extra service surfaces brings it closer to the original game schema. It is also quite respectful of AERO desktop modes.
Fake Version
FAKEVERSION
+FAKEVERSION
Causes the program to detect the chosen Windows release. Notice: this is not the same thing as the compatibility setting of the Windows properties panel, which also adjusts the system's behavior to emulate the chosen platform.
Hook |
-See Hook. + | See Hook. |
|
ddraw default |
-The normal mode, where the primary surface is stretch-blitted to the window surface. |
@@ -71,7 +71,7 @@
||
Fast 2X Bilinear |
-BILINEAR2XFILTER + | BILINEAR2XFILTER |
Activates a simplified filter that scales each pixel twice, interpolating the colors of adjacent pixels. The default window size is double the resolution of the virtual screen. If you choose a different size, the surface is scaled to fit into the client area, but this noticeably slows down the blit operation. |
@@ -79,7 +79,7 @@
Full Bilinear |
-BILINEARFILTER + | BILINEARFILTER |
Activates a bilinear filter to scale the DirectDraw primary surface to the window client area. When this is used with GDI games, it activates GDI internal filtering for better scaling. |
diff --git a/build/help/Flags.html b/build/help/Flags.html
index 57b270e..dc2b230 100644
--- a/build/help/Flags.html
+++ b/build/help/Flags.html
@@ -63,7 +63,7 @@
Enable Debug mode |
-Enables debug mode. This option can also be modified with a configuration file (see Configuration file). + | Enables debug mode. This option can also be modified with a configuration file (see Configuration file). |
|
Check for Admin rights |
-Tells DxWnd to autodetect its own administrator permissions at startup and propose a self-elevation if missing. This option can also be modified with a configuration file (see Configuration file). + | Tells DxWnd to autodetect its own administrator permissions at startup and propose a self-elevation if missing. This option can also be modified with a configuration file (see Configuration file). |
Limit
LIMITFPS
+LIMITFPS
Introduces a configurable delay between screen refresh operations, so that the FPS is limited accordingly.
Skip
SKIPFPS
+SKIPFPS
Introduces no delay in the screen operations, but skips several screen updates so that the actual FPS value is limited without the program noticing it.
delay (msec)
Sets the delay time, expressed in milliseconds, for both the "Limit" (LIMITFPS) and "Skip" (SKIPFPS) options. To be noted that the FPS is related to the delay by the formula FPS = 1000/Delay or, the other way around, Delay = 1000/FPS. So if, for example, you desire an FPS not greater than 50, the corresponding value to get this effect is Delay = 20msec. Note that a greater delay means a slower frame rate.
+Sets the delay time, expressed in milliseconds, for both the "Limit" (LIMITFPS) and "Skip" (SKIPFPS) options. To be noted that the FPS is related to the delay by the formula FPS = 1000/Delay or, the other way around, Delay = 1000/FPS. So if, for example, you desire an FPS not greater than 50, the corresponding value to get this effect is Delay = 20msec. Note that a greater delay means a slower frame rate.
Updates bigger than 1/4 screen size
QUARTERBLT
+QUARTERBLT
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.
Show FPS on title
SHOWFPS
+SHOWFPS
When checked, the FPS counter is appended to the window title.
Show FPS overlay
SHOWFPSOVERLAY
+SHOWFPSOVERLAY
When checked, the FPS counter is drawn as an overlay of the program client area, in a corner of the screen and periodically and randomly moved to other cornes to avoid accidentally overlap an important screen region.
Time slow
Slows down the hooked program. See Time Slider and Special Keys.
+Slows down the hooked program. See Time Slider and Special Keys.
Clip toggle
Toggles the clipping region ON and OFF so that you can exit the game area and control other tasks or move/resize your game window. See Special Keys.
+Toggles the clipping region ON and OFF so that you can exit the game area and control other tasks or move/resize your game window. See Special Keys.
Log toggle
Toggles logging ON/OFF. Since painting operations can be quite verbose, toggling the log can be a useful trick to get information about a specific program's activity without having to browse tons of log lines. See Special Keys.
+Toggles logging ON/OFF. Since painting operations can be quite verbose, toggling the log can be a useful trick to get information about a specific program's activity without having to browse tons of log lines. See Special Keys.
FPS toggle
Toggle the FPS display ON and OFF. See Special Keys.
+Toggle the FPS display ON and OFF. See Special Keys.
Time fast
Speeds up the hooked program. See Time Slider and Special Keys.
+Speeds up the hooked program. See Time Slider and Special Keys.
Alt-F4
This key is the well known quit command for any task. If the application doesn't react quickly enough to your command, you can set the “Intercept Alt-F4 key” option to cause DxWnd to immediately quit the program. See Special Keys.
+This key is the well known quit command for any task. If the application doesn't react quickly enough to your command, you can set the “Intercept Alt-F4 key” option to cause DxWnd to immediately quit the program. See Special Keys.
Refresh
Forces a surface repaint. Some old games didn't even consider the possibility of a task overriding the game area, so they don't repaint when they should. This is a technical detail, but if your game screen gets dirty, try this key to fix it. See Special Keys.
+Forces a surface repaint. Some old games didn't even consider the possibility of a task overriding the game area, so they don't repaint when they should. This is a technical detail, but if your game screen gets dirty, try this key to fix it. See Special Keys.
No GDI handling
GDINONE
+GDINONE
Disables video-related GDI/user32 API hooking.
Scaled GDI calls
HOOKGDI
+HOOKGDI
Scales GDI API coordinates to fit the window stretching.
Emulated Device Context
GDIEMULATEDC
+GDIEMULATEDC
Handle an emulated GDI device context.
Share ddraw and GDI DC
SHAREDDC
+SHAREDDC
Shares the window DC (device context) with the DirectDraw primary surface DC. These contexts can have very different interactions in fullscreen and windowed modes. In windowed mode, what usually happens is that one DC layer overlaps the other and produces flickering. This option merges the graphic content of GDI on top of the primary surface of DirectDraw.
Remap Client Rect
CLIENTREMAPPING
+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.
Scale font parameters
FIXTEXTOUT
+FIXTEXTOUT
Tries to scale font parameters to fit the window stretching.
Suppress FillRect
NOFILLRECT
+NOFILLRECT
It is quite common for a fullscreen program to start its activities by clearing the desktop through a FillRect of the whole desktop area. Though this operation is usually intercepted and redirected to the windowed area, if it fails this flag bypasses that FillRect call.
Reuse emulated DC
-REUSEEMULATEDDC
-In GDIEMULATEDC mode, the emulated surface is created and destroyed at each frame blit. This flag recycles that DC for subsequent frames, improving performance but sometimes producing side effects.
-Fix clipper area in shared DC
FIXCLIPPERAREA
+FIXCLIPPERAREA
In SHAREDDC mode, this flag tries to compensate for clipping problems between the program window and other windows on the desktop. It is not currently fully implemented, so it is discouraged for now.
Syncronize GDI to ddraw palette
SYNCPALETTE
+SYNCPALETTE
Makes DirectDraw palette emulation aware of palette changes made through GDI calls.
Suppress Win common errors
NOWINERRORS
+NOWINERRORS
Makes system libraries return success in all cases where the error could depend on the windowed environment, but can be safely ignored. Currently, it only suppresses errors in the DestroyWindow user32 call.
Hook GOG libs
HOOKGOGLIBS
+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
+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.
Do not notify on task switch
UNNOTIFY
+UNNOTIFY
Inhibits the task switch notification message that may hurt some games not designed to handle it properly
No banner
NOBANNER
+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
+WINDOWIZE
Checked by default, tells DxWnd to try to run the program in windowed mode, as that is the essential reason why DxWnd exists. If not checked, DxWnd still performs all other functions not related to the screen size, such as time stretching, compatibility options, and so forth.
Optimize CPU
SAVELOAD
+SAVELOAD
Optimizes the CPU load, but only for DirectDraw operations (DirectX1 to DirectX7).
Ask confirmation on window close
CONFIRMONCLOSE
+CONFIRMONCLOSE
Asks you for confirmation when you close the window.
Terminate on window close
TERMINATEONCLOSE
+TERMINATEONCLOSE
Immediately terminates the application when you close the window.
Acquire admin caps
NEEDADMINCAPS
+NEEDADMINCAPS
Hooking the game requires running DxWnd as an administrator. If you set this flag and run DxWnd without administrator privileges, running a game from the DxWnd interface will show a dialog box prompting you to elevate the permissions level. When you confirm this, DxWnd will automatically terminate and restart itself. If you don't see its window anymore, look beneath other windows, as it may lose its Z-order when it restarts.
Fullscreen only
FULLSCREENONLY
+FULLSCREENONLY
Forces applications to run in fullscreen mode only.
Show hints
SHOWHINTS
+SHOWHINTS
This option activates message boxes that contain information about what DxWnd finds in a program's executable. It can't tell you exactly how to configure that program's hook, but can be helpful in determining which settings you may need to adjust.
To install DxWnd, just unpack the compressed winrar archive.
+DxWnd is portable, meaning that it does not write to the registry and can be placed in any folder you like. Since DxWnd sometimes writes to its folder, use a location that you can write to, like the hard drive or a USB flash drive, rather than a CD.
+You can have as many copies of DxWnd as you like, but only one instance of DxWnd can run at a time.
+Just double-click on DxWnd.exe to run the graphical interface (a tiny white empty window), then locate the executable for the program you'd like to hook and drag & drop this file into the DxWnd window. A complex dialog will appear, but in many cases the built-in defaults are sufficient.
+Alternatively, you can add a program via the menu by choosing File > Add menu command and filling in the program definition form. The only required parameter is the program path (the Path field).
+For every configured program, the DxWnd interface will show a new entry in the list. You can run a configured program by starting it from its normal shortcut or by double-clicking the program entry.
+Many games require additional configuration before they run correctly. For this reason, the program comes with an export folder that contains predefined, tested configurations for all tested games. If you're having trouble running a game, check this set of files to see if you can import a built-in configuration file (with File > Import). Remember to update the Path field to match the hooked program's location on your computer.
+If you still can't get it to work, there are a few more options to try:
+Hook Glide libs + |
+HOOKGLIDE + |
+Enables Glide API hooking. Not currently implemented. + |
+
Hook enabled |
-HOOKENABLED + | HOOKENABLED |
If this flag is not set, DxWnd ignores the task - see gray icon |
@@ -73,51 +73,17 @@
|
Additional modules: |
-DxWnd's hooking logic may not notice some DLLs. In these fortunately rare cases, you can fix the issue by entering one or more module names to be added to DxWnd's search algorithm. |
|||
Hot patch (obfuscated IAT) + | Start folder path |
-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. - |
-||
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. - |
-||
Widechar program vs. ANSI - |
-ANSIWIDE - |
-DxWnd uses ANSI versions of several system calls by default. This flag tells DxWnd to use the corresponding WIDECHAR version instead. + | When you run a program through the DxWnd interface, the program execution path is not set by default. The program location folder is used as the execution folder. This works for most programs, but some need to start from a different path. Enter a path in this text box to specify a different execution path parameter. |
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. + |
+
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. + |
+
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. + |
+
Widechar program vs. ANSI + |
+ANSIWIDE + |
+DxWnd uses ANSI versions of several system calls by default. This flag tells DxWnd to use the corresponding WIDECHAR version instead. + |
+
No Run + |
+HOOKNORUN + |
+Some applications run several executables. The only game found to run like this so far is Die Hard Trilogy. It has a frontend program that runs one choice of three different executables, each one implementing one single, unique game. In this situation, each individual game needs an individual DxWnd configuration entry, and also needs to be run by the frontend. They cannot be run directly. The "No Run" flag and the corresponding blocking icon prevent the user from trying to run the game from the DxWnd interface. + |
+
No hook update + |
+HOOKNOUPDATE + |
+Under certain conditions, the same API or method call may have different memory addresses while the program is running. Unfortunately, there is no universal policy to handle this situation: in some cases, the program only works correctly if the function's original address is updated; in other cases, it is better to stick to the original value. By default, the original address is updated. Check this flag to keep the initial original address instead. + |
+
Fix buffered I/O after Win98
BUFFEREDIOFIX
+BUFFEREDIOFIX
Windows 98 was the last platform to support asynchronous disk I/O from devices such as CD-ROMs. This flag suppresses requests for asynchronous mode, avoiding errors from this operation.
Set CDROM Drive Type
CDROMDRIVETYPE
+CDROMDRIVETYPE
Simulates each disk device to appear as a CDROM type. This allows you to copy the content of some CDs onto a hard disk and override the disk type controls that form some very basic copy protection schemes.
Hide empty CDROM drives
HIDECDROMEMPTY
+HIDECDROMEMPTY
Some old games didn't handle the possibility of having multiple CDROM devices and simply look for the game in the first available CDROM. If you have physical and virtual CDROM devices in your system, it may become complicated to insert a physical CD on a virtual device (or vice versa). This flag removes any CDROM devices that don't mount a CD from the list of available devices, so that you can simply unmount all disks except for the desired one.
Current
Does not change the video color mode.
8 BPP
Some games act as if you had switched the video mode to 8BPP before starting the game, making 8BPP emulation useless. This option tells the game that the desktop setting is in 8BPP mode already.
16 BPP
Same as above, but declaring a 16BPP setting.
24 BPP
Same as above, but declaring a 24BPP setting.
32 BPP
Same as above, but declaring a 32BPP setting.
SetWindowsHook + |
+A SetWindowsHook callback handles the injection by intercepting the creation of the first program window. It is the default DxWnd hooking schema, allowing the program to run independently from the DxWnd interface. The drawback is that the window may only be created after some operation that needed to be fixed and DxWnd will be unable to completely intercept the program's execution, resulting in some odd behaviors from the program. + |
+|
Debugger mode + |
+STARTDEBUG + |
+This basic hook technique intercepts the first window creation event. By this point, the program may have taken unwanted actions already, such as changing the video mode, detecting bad conditions, or crashing. Checking this flag injects DxWnd's logic right at the beginning of task execution, allowing DxWnd to intercept all events. The drawback is that this only works when the task is activated from the DxWnd interface (see the yellow icon). Another drawback is that the injection process closely resembles the activation of a debugger, which some games will detect and intercept, shutting down the program. + |
+
Inject suspended process + |
+INJECTSUSPENDED + |
+This hook technique is similar to the "Debugger mode" above, but does not involve debugging, allowing greater compatibility with some programs that might block that more complex method. This settings works well on Windows XP. + |
+
Enable hot keys
ENABLEHOTKEYS
+ENABLEHOTKEYS
DxWnd can set some special keys (e.g. Alt, Fn) to trigger special actions, storing the key association in the DxWnd.ini file. This flag enables hot key definitions. If unchecked, all hot keys are disabled for this program.
Intercept Alt-F4 key
HANDLEALTF4
+HANDLEALTF4
Intercepts the Alt-F4 key in the message processing loop to immediately terminate the program, avoiding any programmed exit procedure (cinematics, save state warnings, ads...). Only has an effect if the game is doing the message processing loop.
Sets the DxWnd hot keys mapping (see Special keys). The format is as follows:
+Sets the DxWnd hot keys mapping (see Special keys). The format is as follows:
<function>=0x<keycode>
+<function>=0x<keycode>
The available values represent the hex key code and range from 0x70 (Alt-F1) to 0x7C (Alt-F12).
+The available values represent the hex key code and range from 0x70 (Alt-F1) to 0x7C (Alt-F12).
These are the available hot keys:
timetoggle + | timetoggle |
Toggle time stretching. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
altf4 + | altf4 |
Terminate the program, such as by typing Alt-F4. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
timeslow + | timeslow |
Decrease time speed. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
timefast + | timefast |
Increase time speed. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cliptoggle + | cliptoggle |
Toggle cursor clipping. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
refresh + | refresh |
Refresh the screen. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
logtoggle + | logtoggle |
Toggle logging. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fpstoggle + | fpstoggle |
Show or hide the FPS. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plocktoggle + | plocktoggle |
Lock or unlock the window position. |
diff --git a/build/help/Language.html b/build/help/Language.html
index 72b9d33..63219df 100644
--- a/build/help/Language.html
+++ b/build/help/Language.html
@@ -61,7 +61,7 @@
lang=<specification> + | lang=<specification> |
Sets the DxWnd GUI language with a selector for the localization DLL. "default" will load the embedded English text. "automatic" will load the language pack corresponding to the system locale. Any "XYZ" string will load the corresponding "Resources_XYZ.dll" language port. Currently unsupported (available translation packages are no longer up to date). When you set a lang=<specification> specification, DxWnd looks for and loads the resources in the Resources_<specification>.dll file, so anyone can build and use a custom language pack. +When you set a lang=<specification> specification, DxWnd looks for and loads the resources in the Resources_<specification>.dll file, so anyone can build and use a custom language pack. lang=default disables resource loading, and the program will use the default and built-in English pack. +lang=default disables resource loading, and the program will use the default and built-in English pack. lang=automatic makes DxWnd search for the current UI language and try to map it to the available language packs. If no corresponding pack is available, it switches to the default (English) behavior. +lang=automatic makes DxWnd search for the current UI language and try to map it to the available language packs. If no corresponding pack is available, it switches to the default (English) behavior. This setting is always overridden by a /lang=<specification> command line argument. +This setting is always overridden by a /lang=<specification> command line argument. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
debug=<mode> + | debug=<mode> |
Boolean, defaulting to false. debug=1 activates the configuration debug tab. Warning: debug options, when set, are kept even if debug is cleared and the debug is no longer visible. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
multiprocesshook=<mode> + | multiprocesshook=<mode> |
Boolean, defaulting to false. multiprocesshook=1 allows multiple programs to run simultaneously on different windows. Beware that not all programs can work this way and it's likely to cause problems with resources that can't be shared, such as the mouse. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
checkadmin=<mode> + | checkadmin=<mode> |
Boolean, defaulting to false. checkadmin=1 causes DxWnd to autodetect its own administrator permissions at startup and propose a self-elevation if missing. |
diff --git a/build/help/Libs.html b/build/help/Libs.html
index 5623e2a..6e03e44 100644
--- a/build/help/Libs.html
+++ b/build/help/Libs.html
@@ -59,7 +59,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Remap MCI coordinates |
-REMAPMCI + | REMAPMCI |
Finds and scales the movie coordinates that may be embedded in the MciSendString command string. It may fix movie sizes when they are played using the MciSendString winmm call. |
@@ -71,7 +71,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No movies |
-NOMOVIES + | NOMOVIES |
Skips movies whenever possible - that is, when performed through explicit movie handling calls. |
@@ -79,7 +79,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Stretch ActiveMovie window |
-STRETCHMOVIES + | STRETCHMOVIES |
Several window classes are devoted to playing multimedia. This flag detects the known multimedia windows and stretches their size to cover the full main window area. |
@@ -87,7 +87,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fix movies color depth |
-FIXMOVIECOLOR + | FIXMOVIECOLOR |
Fixes the color depth of VFW (Video For Windows) movies by forcing their value to the color depth of the virtual desktop. |
@@ -95,7 +95,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bypass MCI calls |
-BYPASSMCI + | BYPASSMCI |
Several games perform MCI operations (e.g. to check for a CD-ROM) that are not essential and may cause errors. This flag bypasses MCI calls when possible and returns a positive result. |
diff --git a/build/help/Main.html b/build/help/Main.html
index 387d51e..09e4c4b 100644
--- a/build/help/Main.html
+++ b/build/help/Main.html
@@ -59,7 +59,7 @@
Message processing |
-MESSAGEPROC + | MESSAGEPROC |
Most programs get X,Y mouse coordinates from the mouse messages or from the specific API. One tricky way to get the same info, though, is to listen to the Windows message queue using PeekMessage/GetMessage, and retrieve the X,Y coordinates from ANY received message in the pt field. Checking this box makes DxWnd fix the X,Y coordinates in this uncommon situation as well (see the game Uprising). |
@@ -71,7 +71,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Filter offending messages |
-FILTERMESSAGES + | FILTERMESSAGES |
In theory, a fullscreen message should not expect several messages that are impossible to receive, such as border sizing, taskbar events and so forth. Some programs are not properly coded to react to such "impossible" messages and may show falfuncions. This flag causes potentially harmful and meaningless messages to be suppressed. |
@@ -79,7 +79,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defaulting offending messages |
-DEFAULTMESSAGES + | DEFAULTMESSAGES |
While a well-designed windowed program should react to all window system messages, it is possible that a fullscreen program was designed without an appropriate reaction to such unexpected messages, like window stretching. This option makes DxWnd automatically process all these messages that an application might not correctly handle. It should be turned on if operations like window resizing or movement cause crashes or other problems. |
@@ -87,7 +87,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Peek all messages in queue |
-PEEKALLMESSAGES + | PEEKALLMESSAGES |
In Windows 7 and newer, any windowed application MUST empty its message queue. The operating system considers any application that does not do this within a defined timeout period (about 5 seconds) to be malfunctioning, and kills the process (although it keeps displaying the window's contents). Programs developed before Windows 7 didn't take this constraint into account and may easily fail to get messages during processes such as unskippable cutscenes or long calculations. This option periodically empties the system queue, ensuring that the program won't be killed. However, there is a small chance that some events (like mouse clicks) could get lost occasionally and will need to be repeated. |
@@ -95,7 +95,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Filter winposchange messages |
-NOWINPOSCHANGES + | NOWINPOSCHANGES |
Suppresses the WM_WINDOWPOSCHANGING or WM_WINDOWPOSCHANGED messages that some programs send to themselves to automatically move their window. This option is used for Rollercoaster Tycoon. |
@@ -103,7 +103,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Add message pump (Win7 comp.) |
-PEEKALLMESSAGES + | PEEKALLMESSAGES |
Windows 7 and onward monitor each foreground process's input message queue and kill any processes that wait too long to flush their queue (generally five seconds). Some older games skip this task during long intro movies or AI processing, making them vulnerable to being killed by the OS. This flag activates a thread that periodically flushes pending messages from the queue, preventing these games from being automatically terminated. |
diff --git a/build/help/OpenGL.html b/build/help/OpenGL.html
index ab66908..96718c5 100644
--- a/build/help/OpenGL.html
+++ b/build/help/OpenGL.html
@@ -51,7 +51,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hook OpenGL |
-HOOKOPENGL + | HOOKOPENGL |
Enables OpenGL API hooking. |
@@ -71,7 +71,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Force Hook |
-FORCEHOOKOPENGL + | FORCEHOOKOPENGL |
Experimental – probably unnecessary. |
@@ -79,15 +79,23 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fix glPixelZoom args |
-FIXPIXELZOOM + | FIXPIXELZOOM |
-Scales the xfactor and yfactor parameters of the glPixelZoom OpenGL call. Use this flag if the OpenGL screen is not properly scaled to fit the main window. + | Scales the xfactor and yfactor parameters of the glPixelZoom OpenGL call. Use this flag if the OpenGL screen is not properly scaled to fit the main window. + |
+||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fix glBindTexture texture + |
+FIXBINDTEXTURE + |
+Recent OpenGL releases for Windows omit the glActiveTexture function, preventing the application from correctly switching textures. The visible effect is a replication of a single texture instead of the coordinated use of multiple textures to compose a screen. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Custom OpenGL library |
-By default, DxWnd detects OpenGL APIs within the standard OpenGL32.dll library. This field allows you to set a different filename for any custom OpenGL implementation that may refer to a different library name. |
diff --git a/build/help/Position.html b/build/help/Position.html
index f3e330a..d0a9eff 100644
--- a/build/help/Position.html
+++ b/build/help/Position.html
@@ -59,13 +59,21 @@
Hide desktop background + |
+HIDEDESKTOP + |
+Starts the windowized program together with four black borderless windows that surround it entirely, eliminating distracting background windows and providing a more focused gaming experience. The whole idea was borrowed from "Mr. Hide." + |
+||
Keep aspect ratio |
-KEEPASPECTRATIO + | KEEPASPECTRATIO |
When the window is resized, the aspect ratio set by the window initial size is preserved (by default the 4:3 aspect ratio such as 800x600). | |
Window initial position & size |
-+ | Four values for the initial X, Y coordinates of the upperleft window corner and the window width and height. All values are referred to the window client area rather than the outside border. The values are used depending on the Position selection: for "X, Y" coordinates they are all used, for "Desktop center" DxWnd automatically centers the position and uses only the height and width, and in the remaining fake-fullscreen modes the height and width are used only as a reference for the desired aspect ratio when "Keep aspect ratio" (the KEEPASPECTRATIO flag) is set (if it has not been set, the height and width are ignored). + | Four values for the initial X, Y coordinates of the upperleft window corner and the window width and height. All values are referred to the window client area rather than the outside border. The values are used depending on the Position selection: for "X, Y" coordinates they are all used, for "Desktop center" DxWnd automatically centers the position and uses only the height and width, and in the remaining fake-fullscreen modes the height and width are used only as a reference for the desired aspect ratio when "Keep aspect ratio" (the KEEPASPECTRATIO flag) is set (if it has not been set, the height and width are ignored). + |
+|
Monitor + |
+??? + |
+??? Allows you to choose the default monitor or a specific one from the drop-down menu. + |
+||
Coordinate picker + |
+This icon activates a mechanism to pick the new program placement coordinates (see "Window initial position & size" above) using an existing window on the desktop. Click and drag from the icon to the desired window to automatically fill in the "Window initial position & size" fields with these window coordinates. Release the mouse button while over the title bar or an empty area in the desired window, as releasing the mouse button over a widget (like a text field, button, or other object) will select coordinates for that widget rather than the entire window. |
|||
Position |
-+ | A selection of 4 possible cases:
Note that the first two modes are windowed modes, while the last two modes can be considered fake fullscreen modes. This is because the behavior of the KEEPASPECTRATIO flag changes along with this classification. +Note that the first two modes are windowed modes, while the last two modes can be considered fake fullscreen modes. This is because the behavior of the KEEPASPECTRATIO flag changes along with this classification. |
posx=<x0> + | posx=<x0> |
Initial x (horizontal) position of the DxWnd GUI. When DxWnd is terminated and is not in fullscreen mode, this flag is updated to store the most recent x position, to be used next time you start the program. |
posy=<y0> + | posy=<y0> |
Same as posx, for the y (vertical) coordinate |
sizx=<width> + | sizx=<width> |
Same as posx, but recording the window's width. The initial width is forced to a minimum of 320 pixels. |
sizy=<height> + | sizy=<height> |
Same as posx, but recording the window's height. The initial height is forced to a minimum of 200 pixels. |
When right-clicking on the program's list, instead, the following menu will be shown:
Move |
-See Move. + | See Move. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Log |
-This menu is equivalent to Edit > Log. See Log. + | This menu is equivalent to Edit > Log. See Log. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Emulate registry |
-EMULATEREGISTRY + | EMULATEREGISTRY |
Intercepts registry read operations so that missing entries are filled in by the values in the DxWnd.reg file. |
@@ -71,7 +71,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Override registry |
-OVERRIDEREGISTRY + | OVERRIDEREGISTRY |
Intercepts registry read operations so that missing and existing entries are filled in by the values in the DxWnd.reg file. |
@@ -79,7 +79,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set KEY_WOW64_64KEY flag |
-WOW64REGISTRY + | WOW64REGISTRY |
Set the KEY_WOW64_64KEY value in registry system calls so that they are forced to search in the native 64-bit section of the registry in 64-bit platforms. |
@@ -87,7 +87,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set KEY_WOW64_32KEY flag |
-WOW32REGISTRY + | WOW32REGISTRY |
Set the KEY_WOW64_32KEY value in registry system calls so that they are forced to search in the 32-bit section of the registry in 64-bit platforms. |
diff --git a/build/help/Shims.html b/build/help/Shims.html
index d67c813..220d7b6 100644
--- a/build/help/Shims.html
+++ b/build/help/Shims.html
@@ -51,7 +51,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Default |
-By default, DxWnd does not intercept the CreateProcess call and therefore does not automatically hook the program's children. To hook the program's children, use Edit > Add (see Edit) to create a new entry in the main program list for each child process. + | By default, DxWnd does not intercept the CreateProcess call and therefore does not automatically hook the program's children. To hook the program's children, use Edit > Add (see Edit) to create a new entry in the main program list for each child process. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Suppress |
-SUPPRESSCHILD + | SUPPRESSCHILD |
This option bypasses calls to CreateProcess. Some games play intro movies in a child process (like binplayer.exe). You can skip these movies and avoid desktop configuration changes by activating this flag. |
@@ -79,7 +79,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Extend Hook |
-ENABLESONHOOK + | ENABLESONHOOK |
This option automatically hooks any created child processes with the same configuration as its parent. If the child process has a random name each time it is created (generally for the express purpose of making it harder to hook), use this option. |
@@ -87,7 +87,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Extend Injection |
-INJECTSON + | INJECTSON |
This option automatically hooks any created child processes with the same configuration as its parent, including DLL injection. This means that the hook is applied as soon as the process starts. |
diff --git a/build/help/Specialkeys.html b/build/help/Specialkeys.html
index 2ab4df7..894af33 100644
--- a/build/help/Specialkeys.html
+++ b/build/help/Specialkeys.html
@@ -59,49 +59,49 @@
cliptoggle + | cliptoggle |
When the “Force cursor clipping” option is ON, this key toggles the clipping region ON and OFF so that you can exit the game area and control other tasks or move/resize your game window. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
refresh + | refresh |
Forces a surface repaint. Some old games didn't even consider the possibility of a task overriding the game area, so they don't repaint when they should. This is a technical detail, but if your game screen gets dirty, try this key to fix it. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
logtoggle + | logtoggle |
Toggles logging ON/OFF. Since painting operations can be quite verbose, toggling the log can be a useful trick to get information about a specific program's activity without having to browse tons of log lines. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
plocktoggle + | plocktoggle |
-Toggle position locking. When the Lock win Coordinates flag is set (see Windows handling), the window can't be moved or resized. Toggle this behavior OFF, move or resize the window, and then lock the window again. + | Toggle position locking. When the Lock win Coordinates flag is set (see Windows handling), the window can't be moved or resized. Toggle this behavior OFF, move or resize the window, and then lock the window again. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fpstoggle + | fpstoggle |
Toggle the FPS display ON and OFF. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
timefast/timeslow + | timefast/timeslow |
Increase or decrease the time shift multiplication factor when time stretching is on. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
altf4 + | altf4 |
This key is the well known quit command for any task. If the application doesn't react quickly enough to your command, you can set the “Intercept Alt-F4 key” option to cause DxWnd to immediately quit the program. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
timetoggle + | timetoggle |
When time stretching is enabled, this key toggles the time stretching feature entirely OFF and ON. It's useful to play part of the program at a normal speed. |
diff --git a/build/help/SwapEffect.html b/build/help/SwapEffect.html
index a6e511d..386e91e 100644
--- a/build/help/SwapEffect.html
+++ b/build/help/SwapEffect.html
@@ -49,9 +49,9 @@
@@ -60,7 +60,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CPU slow down |
-CPUSLOWDOWN + | CPUSLOWDOWN |
Reduces a program's CPU usage by suspending and resuming all of its threads according to the specified ratio. Since the minimum timing resolution that the system can use for this operation is 1ms, (1/1000th of a second), high ratios may make the game appear choppy. This flag doesn't suspend high-priority threads. |
@@ -71,15 +71,15 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CPU max usage |
-CPUMAXUSAGE + | CPUMAXUSAGE |
-Same as CPUSLOWDOWN, but operates more selectively. This flag only suspends process threads that are consuming more CPU than the selected ratio. This option can't be set at the same time as CPUSLOWDOWN. + | Same as CPUSLOWDOWN, but operates more selectively. This flag only suspends process threads that are consuming more CPU than the selected ratio. This option can't be set at the same time as CPUSLOWDOWN. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ratio |
-Allows you to set a ratio for the slowdown used by the above flags. For example, a value of 2 will produce a ratio of 1:2, suspending the program for 1ms and then running it for 2ms, reducing that program's CPU usage by 33%. |
diff --git a/build/help/Texture.html b/build/help/Texture.html
index a0cb718..f499708 100644
--- a/build/help/Texture.html
+++ b/build/help/Texture.html
@@ -61,25 +61,25 @@
MinTexX=<value> + | MinTexX=<value> |
Minimum texture width for texture processing (dump, hack). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaxTexX=<value> + | MaxTexX=<value> |
Maximum texture width for texture processing (dump, hack). Zero value means infinite. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MinTexY=<value> + | MinTexY=<value> |
Minimum texture height for texture processing (dump, hack). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaxTexY=<value> + | MaxTexY=<value> |
Maximum texture height for texture processing (dump, hack). Zero value means infinite. |
diff --git a/build/help/Texturehandling.html b/build/help/Texturehandling.html
index 9579a2a..133406f 100644
--- a/build/help/Texturehandling.html
+++ b/build/help/Texturehandling.html
@@ -51,7 +51,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
None |
-The default behavior. Does not apply special handling to textures. |
@@ -73,7 +73,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Highlight |
-TEXTUREHIGHLIGHT + | TEXTUREHIGHLIGHT |
All hooked textures are replaced with a randomly-generated solid color. This makes it easier to see texel boundaries and texture usage. |
@@ -81,7 +81,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dump |
-TEXTUREDUMP + | TEXTUREDUMP |
All hooked textures that match the criteria in the Texture section of your dxwnd.ini configuration file are extracted as bitmap files and dumped into DxWnd's "texture.out" subfolder. The automatic filenames include a hash of the file's graphical content to make it easier to uniquely identify each texture. |
@@ -89,7 +89,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hack |
-TEXTUREHACK + | TEXTUREHACK |
This option replaces all hooked textures by calculating hashed filenames, looking for those names in DxWnd's "texture.in" subfolder, and using any matching textures that it finds there. |
diff --git a/build/help/Texturelimits.html b/build/help/Texturelimits.html
index e79d3ee..fb2e66e 100644
--- a/build/help/Texturelimits.html
+++ b/build/help/Texturelimits.html
@@ -61,10 +61,10 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Time Stretching – initial |
-TIMESTRETCH + | TIMESTRETCH |
-If this option is checked, DxWnd tries to emulate an accelerated (xn) or decelerated (:n) time flow. The value set in the listbox is the initial value, that can be altered by means of the time control slider in the time panel (see Time Slider). When checked, DxWnd stretches time in the timing API (such as with GetSystemTime()), the query performance APIs, and the Sleep APIs, which are the most common ways to control a program's timing. + | If this option is checked, DxWnd tries to emulate an accelerated (xn) or decelerated (:n) time flow. The value set in the listbox is the initial value, that can be altered by means of the time control slider in the time panel (see Time Slider). When checked, DxWnd stretches time in the timing API (such as with GetSystemTime()), the query performance APIs, and the Sleep APIs, which are the most common ways to control a program's timing. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Show time stretch |
-SHOWTIMESTRETCH + | SHOWTIMESTRETCH |
When checked, the time stretch ratio is drawn as an overlay in a corner of the screen, sometimes moving to other corners when it is updated. |
@@ -79,7 +79,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fine time adjust |
-FINETIMING + | FINETIMING |
When checked, the time stretch ratio shows ticks in finer increments, switching from a 50% change with each tick to a 10% change with each tick. This limits the range to 0.5x-2.0x but allows for finer timing control. |
@@ -87,7 +87,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Intercept RDTSC opcode |
-INTERCEPTRDTSC + | INTERCEPTRDTSC |
Program timing is usually determined by system calls that can be easily and safely hooked to stretch the flow of time. There is one possible exception, however: when the program embeds in its assembly the RDTSC assembly instruction opcodes that directly access the hardware clock. This timing value can still be intercepted and manipulated, but using a more delicate technique that searches for the assembly code and replaces it with specific calls. This is why I preferred to make this option available with a dedicated flag to be activated when necessary. The flag should be set whenever adjusting the time stretching option does not alter the time flow. |
@@ -95,7 +95,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Stretch timers |
-STRETCHTIMERS + | STRETCHTIMERS |
When checked, the window timers are stretched, namely the user32.dll timers set by SetTimer and the multimedia timers in winmm.dll set by timeSetEvent(). |
@@ -103,7 +103,7 @@
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Normalize Performance Counter |
-NORMALIZEPERFCOUNT + | NORMALIZEPERFCOUNT |
Normalizes the system performance counter, simulating a clock speed of 1MHz. Some old games assume that this is the correct clock speed, and produce speed problems without this flag. This flag gives these old games the clock speed they depend on to run properly. Don't use this flag unless you are experiencing speed issues. |
diff --git a/build/help/Tools.html b/build/help/Tools.html
index e98516e..860ea8e 100644
--- a/build/help/Tools.html
+++ b/build/help/Tools.html
@@ -59,31 +59,31 @@
Window |
-See Window. + | See Window. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Process |
-See Process. + | See Process. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Desktop taskbar |
-See Desktop taskbar. + | See Desktop taskbar. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Desktop color depth |
-See Desktop color depth. + | See Desktop color depth. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Block process priority class |
-BLOCKPRIORITYCLASS + | 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. |
@@ -71,7 +71,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set single core process affinity |
-SINGLEPROCAFFINITY + | SINGLEPROCAFFINITY |
Some games are not properly synchronized to run on physically separate multiple 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). |
@@ -79,15 +79,15 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set last core affinity |
-USELASTCORE + | USELASTCORE |
-Same as SINGLEPROCAFFINITY, but picks the last CPU core. + | Same as SINGLEPROCAFFINITY, but picks the last CPU core. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Limit available resources |
-LIMITRESOURCES + | 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. |
@@ -95,7 +95,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Disable performance counter |
-NOPERFCOUNTER + | NOPERFCOUNTER |
Since 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 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. |
@@ -103,7 +103,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bypass font unsupported api |
-FONTBYPASS + | 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. Of course, the font will be wrong, but Windows will approximate the choice with the most similar available font. |
@@ -111,7 +111,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Replace privileged opcodes |
-REPLACEPRIVOPS + | 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 would result in a program exception on modern systems. This option scans the program code segment at startup and replaces all detected privileged operations with NOP (no operation) instructions. Since these opcodes are often dedicated to interactions with sound hardware, the program will likely work with the possible side effect of some audio issues. Use this flag for games like Ubik. |
@@ -119,7 +119,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Suppress IME |
-SUPPRESSIME + | SUPPRESSIME |
The flag tries to suppress IME windows. This feature is not yet fully functional. |
@@ -127,7 +127,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Handle exceptions |
-HANDLEEXCEPTIONS + | 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 that were trying to calculate the CPU speed. |
@@ -135,7 +135,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diablo tweak |
-DIABLOTWEAK + | 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. |
@@ -143,7 +143,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Intercept Imagehlp.dll |
-NOIMAGEHLP + | NOIMAGEHLP |
Intercept imagehlp.dll 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. |
@@ -151,7 +151,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EA Sports hack |
-EASPORTSHACK + | EASPORTSHACK |
Intercept and neutralize some of the internal hooks usually set by "EA Sports" games, and possibly other titles as well. |
@@ -159,7 +159,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reserve legacy memory segments |
-LEGACYALLOC + | 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 DLL injection, reserves memory in this range when the program starts up, before that memory can be used for other purposes. |
@@ -167,7 +167,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Disable Max Windowed Mode |
-DISABLEMAXWINMODE + | DISABLEMAXWINMODE |
Invoke DirectDraw SetAppCompatData(12,0) to set the DisableMaxWindowedMode. |
@@ -175,7 +175,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Disable "disable Alt-Tab" |
-DISABLEDISABLEALTTAB + | DISABLEDISABLEALTTAB |
Disable the compatibility patches that disable the Alt-Tab key combination to avoid window switching, along with other similar key combinations. Usually, programs hooked by DxWnd can afford window switching with no impact, either by default or by setting the UNNOTIFY flag. |
@@ -183,7 +183,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Win7 color fix |
-COLORFIX + | 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. |
@@ -191,7 +191,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fix GlobalUnlock |
-FIXGLOBALUNLOCK + | 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. |
diff --git a/build/help/Video.html b/build/help/Video.html
index c0098d5..9a48595 100644
--- a/build/help/Video.html
+++ b/build/help/Video.html
@@ -59,7 +59,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fix Window Frame Style |
-FIXWINFRAME + | FIXWINFRAME |
Initializes the game window with a title bar and resizeable borders. |
@@ -71,7 +71,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Prevent Win Maximize |
-PREVENTMAXIMIZE + | PREVENTMAXIMIZE |
Some modern games don't actually go into fullscreen mode, but just make the window occupy the whole screen. This option intercepts Windows messages and user32 calls to avoid changing the window position and size to make it a fullscreen window. |
@@ -79,7 +79,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lock win coordinates |
-LOCKWINPOS + | LOCKWINPOS |
Intercepts messages and calls that the program makes to itself to change its own window coordinates. This prevents you from changing the game window's position and size. |
@@ -87,7 +87,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lock win style |
-LOCKWINSTYLE + | LOCKWINSTYLE |
Intercepts messages and calls that the program makes to itself to change its own windowstyle. |
@@ -95,7 +95,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Recover screen mode |
-RECOVERSCREENMODE + | RECOVERSCREENMODE |
Sets the screen mode to registry default settings. In general, DxWnd intercepts any attempt to change display settings and prevents unwanted operations, but some programs still send display settings instructions before DxWnd can possibly intercept them (e.g. before the window is created and the windows hook is invoked). In this case, changing the display settings right afterward is the only possible solution. Try this when other options don't work. |
@@ -103,7 +103,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Refresh on win resize |
-REFRESHONRESIZE + | REFRESHONRESIZE |
Any decently written Windows application should take care of refreshing the screen primary surface when resized, and most fullscreen games do it. Some don't, because they were not supposed to ever be resized. This flag is forces a refresh (useful for the game Uprising). |
@@ -111,7 +111,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fix Parent Window |
-FIXPARENTWIN + | FIXPARENTWIN |
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, 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 Sim Golf, and the Worms series. |
@@ -119,7 +119,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Modal Style |
-MODALSTYLE + | MODALSTYLE |
When "Fix Window Frame Style" is set, a borderless and titleless modal style is chosen instead of the default one. |
@@ -127,7 +127,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Force win resize |
-FORCEWINRESIZE + | FORCEWINRESIZE |
Experimental (and not working very well so far): should force window resizing messages to be processed so that the window can be resized by dragging its borders. |
@@ -135,7 +135,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hide multi-monitor config |
-HIDEMULTIMONITOR + | HIDEMULTIMONITOR |
Makes the program ignore multiple monitors in your system configuration, giving information about the primary monitor only. |
@@ -143,7 +143,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wallpaper mode |
-WALLPAPERMODE + | WALLPAPERMODE |
Experimental – forces the program's Z-order to the lowest level so that it runs below any other task, behaving like an active wallpaper. |
@@ -151,7 +151,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fix window frame in D3D |
-FIXD3DFRAME + | FIXD3DFRAME |
Tries to prevent D3D from rendering on the whole window surface including the window border. It activates a small trick that cause the program to render to a child modal surface within the main window borders. |
@@ -159,23 +159,15 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Don't move D3D rendering window |
-NOWINDOWMOVE + | NOWINDOWMOVE |
Do not try 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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hide desktop background - |
-HIDEDESKTOP - |
-Starts the windowized program together with four black borderless windows that surround it entirely, eliminating distracting background windows and providing a more focused gaming experience. The whole idea was borrowed from "Mr. Hide": https://sourceforge.net/projects/mrhyde/ - |
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hide Taskbar |
-HIDETASKBAR + | HIDETASKBAR |
Forces the Windows Taskbar to hide while a game is running. |
@@ -183,7 +175,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Unlock Z-order |
-UNLOCKZORDER + | UNLOCKZORDER |
Some games repeatedly bring their window to the top of the Z-order, meaning that they insist on remaining on top of all other windows. This flag prevents the hooked game from updating its own Z-order. |
@@ -191,7 +183,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Suppress main window destruction |
-SUPPRESSRELEASE + | SUPPRESSRELEASE |
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. |
@@ -199,7 +191,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Send WM_ACTIVATEAPP message |
-ACTIVATEAPP + | ACTIVATEAPP |
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. |
diff --git a/build/help/css/hnd.css b/build/help/css/hnd.css
index 2e0ae20..62f2182 100644
--- a/build/help/css/hnd.css
+++ b/build/help/css/hnd.css
@@ -75,27 +75,37 @@ a.rvts13, span.rvts13 /* Font Style */
color: #6666ff;
text-decoration: underline;
}
-a.rvts14, span.rvts14
+span.rvts14
+{
+ font-size: 14pt;
+ font-style: italic;
+ font-weight: bold;
+}
+span.rvts15
+{
+ font-weight: bold;
+}
+a.rvts16, span.rvts16
{
color: #0000ff;
text-decoration: underline;
}
-span.rvts15
+span.rvts17
{
font-family: 'Courier New', 'Courier', monospace;
}
-span.rvts16
+span.rvts18
{
font-weight: bold;
}
-span.rvts17
-{
-}
-span.rvts18
+span.rvts19
{
font-style: italic;
}
-span.rvts19
+span.rvts20
+{
+}
+span.rvts21
{
font-family: 'Courier New', 'Courier', monospace;
font-style: italic;
@@ -139,6 +149,14 @@ p,ul,ol /* Paragraph Style */
margin: 7px 0px 7px 0px;
}
.rvps6
+{
+ text-align: left;
+ text-indent: 0px;
+ page-break-after: avoid;
+ padding: 0px 0px 0px 0px;
+ margin: 16px 0px 4px 0px;
+}
+.rvps7
{
margin: 0px 0px 0px 24px;
}
diff --git a/build/help/dxwndlogs.html b/build/help/dxwndlogs.html
index 591c75c..64ea1aa 100644
--- a/build/help/dxwndlogs.html
+++ b/build/help/dxwndlogs.html
@@ -81,7 +81,7 @@
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. + | 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. |
DxWnd hacks
OUTDXWINTRACE
+OUTDXWINTRACE
Logs all significant events that DxWnd performs to run the fullscreen program in windowed mode.
DirectDraw trace
OUTDDRAWTRACE
+OUTDDRAWTRACE
Logs DirectDraw operations.
Direct3D trace
OUTD3DTRACE
+OUTD3DTRACE
Logs Direct3D operations.
Win Events
OUTWINMESSAGES
+OUTWINMESSAGES
Logs all 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
+OUTCURSORTRACE
Logs all 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 log can quickly grow quite large. In this case, consider slowing down the program with the “Slow Down” flag.
Import Table
OUTIMPORTTABLE
+OUTIMPORTTABLE
Logs the Import Table as seen by DxWnd. This can be quite useful to analyze and troubleshoot uncommon executables (e.g. when copy protections are applied).
Debug
OUTDEBUG
+OUTDEBUG
Writes some more detailed information for diagnostic purposes.
Registry op.
OUTREGISTRY
+OUTREGISTRY
Logs registry operations.
Hook op.
TRACEHOOKS
+TRACEHOOKS
Logs hooking operations.
Output debug string
OUTDEBUGSTRING
+OUTDEBUGSTRING
Each log message will be also 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
+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
+ADDRELATIVETIME
If the "Add timestamp to log" option is on, 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.
-- - diff --git a/dll/dxwnd.sln b/dll/dxwnd.sln deleted file mode 100644 index 7be8845..0000000 --- a/dll/dxwnd.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dxwnd", "dxwnd.vcproj", "{579E7FE7-2745-4100-A802-23511711FCDE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {579E7FE7-2745-4100-A802-23511711FCDE}.Debug|Win32.ActiveCfg = Debug|Win32 - {579E7FE7-2745-4100-A802-23511711FCDE}.Debug|Win32.Build.0 = Debug|Win32 - {579E7FE7-2745-4100-A802-23511711FCDE}.Release|Win32.ActiveCfg = Release|Win32 - {579E7FE7-2745-4100-A802-23511711FCDE}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/dll/dxwnd.suo b/dll/dxwnd.suo index 145cc63..788d6ac 100644 Binary files a/dll/dxwnd.suo and b/dll/dxwnd.suo differ diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index fa9a5a3..4841ea0 100644 Binary files a/dll/dxwnd.vs2008.suo and b/dll/dxwnd.vs2008.suo differ diff --git a/dll/dxwnd.vs2008.vcproj b/dll/dxwnd.vs2008.vcproj index 640b41a..aded5d8 100644 --- a/dll/dxwnd.vs2008.vcproj +++ b/dll/dxwnd.vs2008.vcproj @@ -501,10 +501,6 @@ RelativePath=".\shareddc.cpp" > -ނ۸
----------------------\: dxwnd - Win32 Release-------------------- -
-ײ
-ꎞ̧ "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2D3.tmp" 쐬A̓eL^܂ -[ -/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DXWND_EXPORTS" /Fp"Release/dxwnd.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c -"D:\PROG\dxwnd\dxwnd.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2D3.tmp" -ꎞ̧ "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2D4.tmp" 쐬A̓eL^܂ -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:no /pdb:"Release/dxwnd.pdb" /machine:I386 /def:".\dxwnd.def" /out:"host/Release/dxwnd.dll" /implib:"Release/dxwnd.lib" -.\Release\dxhook.obj -.\Release\dxwnd.obj -.\Release\hd3d.obj -.\Release\hddraw.obj -.\Release\hdinput.obj -] - ײ "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP2D4.tmp" ̍쐬 -߯
-ْ߲... -dxwnd.cpp -ݸ... - ײ Release/dxwnd.lib Ƶު Release/dxwnd.exp 쐬 - - - - -dxwnd.dll - װ 0Ax 0 -