1
0
mirror of https://github.com/DxWnd/DxWnd.reloaded synced 2024-12-30 09:25:35 +01:00

v2_03_88_src

Former-commit-id: ea3f7967f99640133673ef363b73faa61e6ee861
This commit is contained in:
gho tik 2016-09-27 12:47:23 -04:00 committed by Refael ACkermann
parent 24b2212671
commit c7934bf142
118 changed files with 1346 additions and 909 deletions
build
dxwnd.dlldxwnd.exe
exports
help
readme-relnotes.txt
dll

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b68ac891dc35be7d517bfa66d0fc29b94c29c7c38273d82c8ae56fd2f926de67
oid sha256:2cb685fd9bcac89865a83e26fbdc14663d7d2f9bba0014f1e4c44606f6bb7702
size 680960

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:013cb94598addc50851bd8ef0dc46a726aabc48cfd154c93b41fd0d7e5bb2e73
size 660480
oid sha256:b7b7d8268a048d4d8600bca6824ef8226e2dab5bb347d07b9bb2afff7d2a73d1
size 660992

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

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

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

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

@ -49,7 +49,7 @@
<div id="topic_header_nav">
<a href="Direct3D.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Texturehandling.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="SwapEffect.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Timing.html"><img src="img/arrow_right.png" alt="Next"/></a>
@ -63,7 +63,7 @@
<tr valign="top">
<td width="126" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disable Textures</span></p>
</td>
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOTEXTURES</span></p>
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOTEXTURES</span></p>
</td>
<td width="1295" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Remap all textures with a white texture (Direct3D only).</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="126" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">3D wireframe</span></p>
</td>
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">WIREFRAME</span></p>
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">WIREFRAME</span></p>
</td>
<td width="1295" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Show graphics in wireframe mode. This option works with Direct3D and OpenGL programs, but not with DirectDraw programs.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="126" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disable Fogging</span></p>
</td>
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">DISABLEFOGGING</span></p>
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">DISABLEFOGGING</span></p>
</td>
<td width="1295" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disables the fogging effect (Direct3D only).</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="126" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Clear target viewport</span></p>
</td>
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">CLEARTARGET</span></p>
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">CLEARTARGET</span></p>
</td>
<td width="1295" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set AERO compatible mode</span></p>
</td>
<td width="138" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SETCOMPATIBILITY</span></p>
<td width="138" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SETCOMPATIBILITY</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Optimize for AERO mode</span></p>
</td>
<td width="138" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">AEROBOOST</span></p>
<td width="138" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">AEROBOOST</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="118" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook DirectSound</span></p>
</td>
<td width="214" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKDIRECTSOUND</span></p>
<td width="214" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKDIRECTSOUND</span></p>
</td>
<td width="1205" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hooks DirectSound to avoid hardware exclusive access, allowing debugging, tracing, and future expansions.</span></p>
</td>
@ -71,9 +71,9 @@
<tr valign="top">
<td width="118" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook Smackw32</span></p>
</td>
<td width="214" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKSMACKW32</span></p>
<td width="214" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKSMACKW32</span></p>
</td>
<td width="1205" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts14" href="DirectDrawSurfacehandling.html">DirectDraw Surface Handling</a><span class="rvts6">).</span></p>
<td width="1205" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts16" href="DirectDrawSurfacehandling.html">DirectDraw Surface Handling</a><span class="rvts6">).</span></p>
</td>
</tr>
</table>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Simulate BW monitor</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">BLACKWHITE</span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BLACKWHITE</span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set 16BPP RGB565 encoding</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">USERGB565</span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">USERGB565</span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Lock Sys Colors</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">LOCKSYSCOLORS</span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LOCKSYSCOLORS</span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Lock reserved palette entries</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">LOCKRESERVEDPALETTE</span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LOCKRESERVEDPALETTE</span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disable setting gamma ramp</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">DISABLEGAMMARAMP</span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">DISABLEGAMMARAMP</span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -57,31 +57,31 @@
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">/T</span></p>
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">/T</span></p>
</td>
<td width="1380" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Starts DxWnd iconized in the System Tray (see </span><a class="rvts14" href="DxWndintheSystemTray.html">DxWnd in the System Tray</a><span class="rvts6">).</span></p>
<td width="1380" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Starts DxWnd iconized in the System Tray (see </span><a class="rvts16" href="DxWndintheSystemTray.html">DxWnd in the System Tray</a><span class="rvts6">).</span></p>
</td>
</tr>
<tr valign="top">
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">/I</span></p>
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">/I</span></p>
</td>
<td width="1380" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Starts DxWnd initially in the IDLE state, so that it doesn't affect the programs until you manually issue a </span><span class="rvts16">Hook &gt; Start</span><span class="rvts6"> command.</span></p>
<td width="1380" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Starts DxWnd initially in the IDLE state, so that it doesn't affect the programs until you manually issue a </span><span class="rvts18">Hook &gt; Start</span><span class="rvts6"> command.</span></p>
</td>
</tr>
<tr valign="top">
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">/C:</span><span class="rvts19">&lt;filename&gt;</span></p>
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">/C:</span><span class="rvts21">&lt;filename&gt;</span></p>
</td>
<td width="1380" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Uses the </span><span class="rvts19">&lt;filename&gt;</span><span class="rvts6"> configuration file instead of the default config.ini file. In any case, the configuration file must be located in DxWnd's working directory.</span></p>
<td width="1380" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Uses the </span><span class="rvts21">&lt;filename&gt;</span><span class="rvts6"> configuration file instead of the default config.ini file. In any case, the configuration file must be located in DxWnd's working directory.</span></p>
</td>
</tr>
<tr valign="top">
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">/lang=</span><span class="rvts19">&lt;xx&gt;</span></p>
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">/lang=</span><span class="rvts21">&lt;xx&gt;</span></p>
</td>
<td width="1380" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">If you need a localized version of DxWnd, this argument causes DxWnd to load all resource text from the external DLLs, given in </span><span class="rvts15">Resources_&lt;xx&gt;.dll</span><span class="rvts6">.</span></p>
<td width="1380" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">If you need a localized version of DxWnd, this argument causes DxWnd to load all resource text from the external DLLs, given in </span><span class="rvts17">Resources_&lt;xx&gt;.dll</span><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">/debug</span></p>
<td width="163" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">/debug</span></p>
</td>
<td width="1380" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enables debug features. Not recommended!</span></p>
</td>

@ -49,7 +49,7 @@
<div id="topic_header_nav">
<a href="Theconfigurationpanel.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Glide.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="MMmultimedia.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Tweaks.html"><img src="img/arrow_right.png" alt="Next"/></a>

@ -49,9 +49,9 @@
<div id="topic_header_nav">
<a href="Input.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Cursorvisibility.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="DirectInput.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="DirectInput.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="Messagehandling.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -63,7 +63,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Correct mouse position</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">MODIFYMOUSE</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MODIFYMOUSE</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Compensate for X,Y mouse coordinates when the window is moved or resized. It should be typically set for most games.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Position message processing</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">MESSAGEPROC</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MESSAGEPROC</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Force cursor clipping</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">CLIPCURSOR</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">CLIPCURSOR</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set hardware cursor clipping within the window's region. This greatly improves the game's playability in some cases (namely, the Dungeon Keeper series).</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Keep cursor within window</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">KEEPCURSORWITHIN</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">KEEPCURSORWITHIN</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Avoid moving the cursor outside the window area. This was used as a “Cursor OFF” directive in some games.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Keep cursor fixed</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">KEEPCURSORFIXED</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">KEEPCURSORFIXED</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Inhibits the SetCursorPos() API. In some cases, it affects the program's behavior (e.g. the game Necrodrome).</span></p>
</td>
@ -103,7 +103,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Intercept GDI cursor clipping</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">ENABLECLIPPING</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ENABLECLIPPING</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disables GDI clipping, avoiding unpleasant effects such as preventing the mouse from moving within the whole window.</span></p>
</td>
@ -111,15 +111,15 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix WM_NCHITTEST</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXNCHITTEST</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXNCHITTEST</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fixes the </span><span class="rvts15">WM_NCHITTEST</span><span class="rvts6"> message X,Y coordinates. When the window's border behaves strangely, set this flag to correct the position of the mouse cursor.</span></p>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fixes the </span><span class="rvts17">WM_NCHITTEST</span><span class="rvts6"> message X,Y coordinates. When the window's border behaves strangely, set this flag to correct the position of the mouse cursor.</span></p>
</td>
</tr>
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Slow down mouse polling</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SLOW</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SLOW</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -127,7 +127,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Release mouse outside window</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">RELEASEMOUSE</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">RELEASEMOUSE</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -135,7 +135,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enable virtual joystick</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">VIRTUALJOYSTICK</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">VIRTUALJOYSTICK</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -51,7 +51,7 @@
<a href="Input.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Cursorhandling.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="DirectInput.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="99" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hide</span></p>
</td>
<td width="199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HIDEHWCURSOR</span></p>
<td width="199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HIDEHWCURSOR</span></p>
</td>
<td width="1239" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Forces hiding the hardware cursor.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="99" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Show</span></p>
</td>
<td width="199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SHOWHWCURSOR</span></p>
<td width="199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SHOWHWCURSOR</span></p>
</td>
<td width="1239" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Forces showing the hardware cursor.</span></p>
</td>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">No primary SYSTEMMEMORY</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOSYSMEMPRIMARY</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOSYSMEMPRIMARY</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">No backbuffer SYSTEMMEMORY</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOSYSMEMBACKBUF</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOSYSMEMBACKBUF</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Lock/Unlock Pitch Fix</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXPITCH</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXPITCH</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
@ -89,7 +89,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Width not power of 2 fix</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">POWER2WIDTH</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">POWER2WIDTH</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -97,7 +97,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix ddraw refcount</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXREFCOUNTER</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXREFCOUNTER</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Decrement the reference counter of some objects to properly track all of DxWnd's service objects.</span></p>
</td>
@ -105,7 +105,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Return 0 refcount</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">RETURNNULLREF</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">RETURNNULLREF</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Always return a 0 reference counter when a surface or DirectDraw session is released.</span></p>
</td>
@ -113,7 +113,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress overlay capability</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SUPPRESSOVERLAY</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPRESSOVERLAY</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -121,7 +121,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set minimal caps</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">MINIMALCAPS</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MINIMALCAPS</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -129,7 +129,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Deinterlace movies</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">DEINTERLACE</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">DEINTERLACE</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -137,7 +137,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set ZBufferBitDepths capability</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SETZBUFFERBITDEPTHS</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SETZBUFFERBITDEPTHS</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -145,7 +145,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Limit ddraw interface</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">LIMITDDRAW</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LIMITDDRAW</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -153,7 +153,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Forces HEL</span></p>
</td>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FORCESHEL</span></p>
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FORCESHEL</span></p>
</td>
<td width="1129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Forces Hardware Emulation Layer.</span></p>
</td>

@ -51,7 +51,7 @@
<a href="Desktoptaskbar.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Help.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="View.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>

@ -51,7 +51,7 @@
<a href="Ddrawtweaks.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="SwapEffect.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="Direct3Dtweaks.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -59,7 +59,7 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_direct3d1.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_direct3d2.png"></p>
<p></p>
</div>

@ -49,7 +49,7 @@
<div id="topic_header_nav">
<a href="Direct3D.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="SwapEffect.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Direct3D.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Texturehandling.html"><img src="img/arrow_right.png" alt="Next"/></a>
@ -63,7 +63,7 @@
<tr valign="top">
<td width="186" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Textures not power of 2 fix</span></p>
</td>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOPOWER2FIX</span></p>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOPOWER2FIX</span></p>
</td>
<td width="1224" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="186" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Clean ZBUFFER @0.0 fix</span></p>
</td>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">ZBUFFER0CLEAN</span></p>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ZBUFFER0CLEAN</span></p>
</td>
<td width="1224" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Some games don't properly clear the zeta buffer between frames, producing incorrect surface z-ordering and other issues. This flag fixes this problem.</span></p>
</td>
@ -79,15 +79,15 @@
<tr valign="top">
<td width="186" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Clean ZBUFFER @1.0 fix</span></p>
</td>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">ZBUFFERCLEAN</span></p>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ZBUFFERCLEAN</span></p>
</td>
<td width="1224" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><span class="rvts15">ZBUFFER0CLEAN</span><span class="rvts6">, but it works in different contexts.</span></p>
<td width="1224" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><span class="rvts17">ZBUFFER0CLEAN</span><span class="rvts6">, but it works in different contexts.</span></p>
</td>
</tr>
<tr valign="top">
<td width="186" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress D3D8/9 Reset</span></p>
</td>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOD3DRESET</span></p>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOD3DRESET</span></p>
</td>
<td width="1224" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Do not perform the D3D reset operation.</span></p>
</td>
@ -95,11 +95,19 @@
<tr valign="top">
<td width="186" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress d3d9 extensions</span></p>
</td>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SUPPRESSD3DEXT</span></p>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPRESSD3DEXT</span></p>
</td>
<td width="1224" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="186" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enumerate 16bit modes</span></p>
</td>
<td width="127" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ENUM16BITMODES</span></p>
</td>
<td width="1224" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
</table>
</div>
<p></p>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Auto primary surface refresh</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">AUTOREFRESH</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">AUTOREFRESH</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">switch VIDEO to SYSTEM on fail</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">VIDEOTOSYSTEMMEM</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">VIDEOTOSYSTEMMEM</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">When this option is set and a CreateSurface fails because of video memory shortage, DxWnd backs this up by creating the surface on memory. &nbsp;Oddly enough, some games expect to notice this by themselves and work correctly only when the option is NOT set.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress DX common errors</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SUPPRESSDXERRORS</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPRESSDXERRORS</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Make Backbuf attachable</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">BACKBUFATTACH</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BACKBUFATTACH</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Blit from Backbuffer</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">BLITFROMBACKBUFFER</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BLITFROMBACKBUFFER</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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!</span></p>
</td>
@ -103,7 +103,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress clipper</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SUPPRESSCLIPPING</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPRESSCLIPPING</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -111,7 +111,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Force clipper</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FORCECLIPPER</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FORCECLIPPER</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -119,7 +119,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Palette update don't blit</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOPALETTEUPDATE</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOPALETTEUPDATE</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Avoid executing a plit operation in case of palette update. This could be used to fix conflicts between GDI and ddraw palette updates.</span></p>
</td>
@ -127,7 +127,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Don't fix the Pixel Format</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOPIXELFORMAT</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOPIXELFORMAT</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Do not try to fix the surface pixel format.</span></p>
</td>
@ -135,7 +135,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">By default set no ALPHACHANNEL</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOALPHACHANNEL</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOALPHACHANNEL</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">By default, DirectDraw surfaces are created with alpha channel capability. This flag changes the default to create surfaces without alpha channel capability.</span></p>
</td>
@ -143,7 +143,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Auto Primary Surface Blit</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">AUTOREFRESH</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">AUTOREFRESH</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -151,7 +151,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Forced mode</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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).</span></p>
</td>
@ -159,7 +159,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set texture pixel format</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">TEXTUREFORMAT</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">TEXTUREFORMAT</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Applies the virtual pixel format to texture surfaces that don't have an explicit DDSD_PIXELFORMAT attribute.</span></p>
</td>
@ -167,7 +167,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress Release on backbuffer</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SUPPRESSRELEASE</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPRESSRELEASE</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">This flag ensures that the DirectDraw backbuffer surface - a critical resource - will not be released in emulated modes, even if explicitly requested.</span></p>
</td>
@ -175,7 +175,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Flip emulation</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FLIPEMULATION</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FLIPEMULATION</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enabled by default, this flag remaps the DirectDraw Flip method which isn't supported on windowed primary surfaces to a corresponding Blt (blit) operation.</span></p>
</td>
@ -183,7 +183,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Compensate Flip emulation</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOFLIPEMULATION</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOFLIPEMULATION</span></p>
</td>
<td width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -49,9 +49,9 @@
<div id="topic_header_nav">
<a href="Input.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Cursorhandling.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Cursorvisibility.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Messagehandling.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="Cursorhandling.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -63,7 +63,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook dinput</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKDI</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKDI</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook dinput8</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKDI8</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKDI8</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Unacquire devices on focus lost</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">UNACQUIRE</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">UNACQUIRE</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,11 +87,35 @@
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Emulate mouse relative movement</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">EMULATERELMOUSE</span></p>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">EMULATERELMOUSE</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Skip HID device type</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">???</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">???</span></p>
</td>
</tr>
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress DI common errors</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">???</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">???</span></p>
</td>
</tr>
<tr valign="top">
<td width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set keyboard shared coop. level</span></p>
</td>
<td width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SHAREDKEYBOARD</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Forces DirectInput cooperative level to </span><span class="rvts17">NONEXCLUSIVE</span><span class="rvts6"> mode for the keyboard.</span></p>
</td>
</tr>
</table>
</div>
<p></p>

@ -59,7 +59,7 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><span class="rvts6">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 </span><a class="rvts14" href="Libs.html">Libs</a><span class="rvts6">).</span></p>
<p class="rvps2"><span class="rvts6">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 </span><a class="rvts16" href="Libs.html">Libs</a><span class="rvts6">).</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">Available options:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>

@ -55,9 +55,9 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><span class="rvts6">Once you move DxWnd in the system tray with </span><span class="rvts16">File &gt; Move to tray</span><span class="rvts6"> 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.</span></p>
<p class="rvps2"><span class="rvts6">Once you move DxWnd in the system tray with </span><span class="rvts18">File &gt; Move to tray</span><span class="rvts6"> 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.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_tray_rclick1.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_tray_rclick2.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">

@ -59,13 +59,13 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_edit_menu1.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_edit_menu2.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="109" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Move</span></p>
</td>
<td width="1434" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Move.html">Move</a><span class="rvts6">.</span></p>
<td width="1434" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Move.html">Move</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
@ -95,7 +95,7 @@
<tr valign="top">
<td width="109" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Log</span></p>
</td>
<td width="1434" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Log1.html">Log</a><span class="rvts6">.</span></p>
<td width="1434" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Log1.html">Log</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
@ -107,7 +107,7 @@
<tr valign="top">
<td width="109" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Global settings</span></p>
</td>
<td width="1434" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Globalsettings.html">Global settings</a><span class="rvts6">.</span></p>
<td width="1434" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Globalsettings.html">Global settings</a><span class="rvts6">.</span></p>
</td>
</tr>
</table>

@ -65,7 +65,7 @@
<tr valign="top">
<td width="142" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">None</span></p>
</td>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">(default)</span></p>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts20">(default)</span></p>
</td>
<td width="1259" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -73,7 +73,7 @@
<tr valign="top">
<td width="142" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Primary Buffer</span></p>
</td>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">EMULATEBUFFER</span></p>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">EMULATEBUFFER</span></p>
</td>
<td width="1259" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -81,15 +81,15 @@
<tr valign="top">
<td width="142" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Locked Surface</span></p>
</td>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">LOCKEDSURFACE</span></p>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LOCKEDSURFACE</span></p>
</td>
<td width="1259" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as "Primary Buffer" (</span><span class="rvts15">EMULATEBUFFER</span><span class="rvts6">) but the buffer is the surface of an </span><span class="rvts15">OFFSCREENPLAIN</span><span class="rvts6"> DirectDraw surface, so it is handled similarly to a DirectX surfacebuffer.</span></p>
<td width="1259" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as "Primary Buffer" (</span><span class="rvts17">EMULATEBUFFER</span><span class="rvts6">) but the buffer is the surface of an </span><span class="rvts17">OFFSCREENPLAIN</span><span class="rvts6"> DirectDraw surface, so it is handled similarly to a DirectX surfacebuffer.</span></p>
</td>
</tr>
<tr valign="top">
<td width="142" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Primary Surface</span></p>
</td>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">EMULATESURFACE</span></p>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">EMULATESURFACE</span></p>
</td>
<td width="1259" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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).</span></p>
</td>
@ -97,17 +97,17 @@
<tr valign="top">
<td width="142" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hybrid mode</span></p>
</td>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HYBRIDMODE</span></p>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HYBRIDMODE</span></p>
</td>
<td width="1259" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Similar to "Primary Surface" mode (</span><span class="rvts15">EMULATESURFACE</span><span class="rvts6">), 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.</span></p>
<td width="1259" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Similar to "Primary Surface" mode (</span><span class="rvts17">EMULATESURFACE</span><span class="rvts6">), 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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="142" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">GDI mode</span></p>
</td>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">GDIMODE</span></p>
<td width="136" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">GDIMODE</span></p>
</td>
<td width="1259" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Similar to "Primary Surface" mode (</span><span class="rvts15">EMULATESURFACE</span><span class="rvts6">), 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.</span></p>
<td width="1259" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Similar to "Primary Surface" mode (</span><span class="rvts17">EMULATESURFACE</span><span class="rvts6">), 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.</span></p>
</td>
</tr>
</table>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="91" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fake Version</span></p>
</td>
<td width="112" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FAKEVERSION</span></p>
<td width="112" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FAKEVERSION</span></p>
</td>
<td width="1334" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -59,7 +59,7 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_file_menu.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_file_menu1.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
@ -89,7 +89,7 @@
<tr valign="top">
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook</span></p>
</td>
<td width="1412" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Hook.html">Hook</a><span class="rvts6">.</span></p>
<td width="1412" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Hook.html">Hook</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">

@ -63,7 +63,7 @@
<tr valign="top">
<td width="104" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">ddraw default</span></p>
</td>
<td width="140" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="140" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1293" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">The normal mode, where the primary surface is stretch-blitted to the window surface.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="104" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fast 2X Bilinear</span></p>
</td>
<td width="140" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">BILINEAR2XFILTER</span></p>
<td width="140" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BILINEAR2XFILTER</span></p>
</td>
<td width="1293" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="104" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Full Bilinear</span></p>
</td>
<td width="140" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">BILINEARFILTER</span></p>
<td width="140" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BILINEARFILTER</span></p>
</td>
<td width="1293" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="155" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enable Debug mode</span></p>
</td>
<td width="1388" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enables debug mode. This option can also be modified with a configuration file (see </span><a class="rvts14" href="Configurationfile.html">Configuration file</a><span class="rvts6">).</span></p>
<td width="1388" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enables debug mode. This option can also be modified with a configuration file (see </span><a class="rvts16" href="Configurationfile.html">Configuration file</a><span class="rvts6">).</span></p>
</td>
</tr>
<tr valign="top">
@ -81,7 +81,7 @@
<tr valign="top">
<td width="155" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Check for Admin rights</span></p>
</td>
<td width="1388" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts14" href="Configurationfile.html">Configuration file</a><span class="rvts6">).</span></p>
<td width="1388" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts16" href="Configurationfile.html">Configuration file</a><span class="rvts6">).</span></p>
</td>
</tr>
</table>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Limit</span></p>
</td>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">LIMITFPS</span></p>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LIMITFPS</span></p>
</td>
<td width="1294" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Introduces a configurable delay between &nbsp;screen refresh operations, so that the FPS is limited accordingly.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Skip</span></p>
</td>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SKIPFPS</span></p>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SKIPFPS</span></p>
</td>
<td width="1294" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Introduces no delay in the screen operations, but skips several screen updates so that the actual FPS value is &nbsp;limited without the program noticing it.</span></p>
</td>
@ -79,15 +79,15 @@
<tr valign="top">
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">delay (msec)</span></p>
</td>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1294" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Sets the delay time, expressed in milliseconds, for both the "Limit" (</span><span class="rvts15">LIMITFPS</span><span class="rvts6">) and "Skip" (</span><span class="rvts15">SKIPFPS</span><span class="rvts6">) options. To be noted that the FPS is related to the delay by the formula </span><span class="rvts15">FPS = 1000/Delay</span><span class="rvts6"> or, the other way around, </span><span class="rvts15">Delay = 1000/FPS</span><span class="rvts6">. So if, for example, you desire an FPS not greater than 50, the corresponding value to get this effect is </span><span class="rvts15">Delay = 20msec</span><span class="rvts6">. Note that a greater delay means a slower frame rate.</span></p>
<td width="1294" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Sets the delay time, expressed in milliseconds, for both the "Limit" (</span><span class="rvts17">LIMITFPS</span><span class="rvts6">) and "Skip" (</span><span class="rvts17">SKIPFPS</span><span class="rvts6">) options. To be noted that the FPS is related to the delay by the formula </span><span class="rvts17">FPS = 1000/Delay</span><span class="rvts6"> or, the other way around, </span><span class="rvts17">Delay = 1000/FPS</span><span class="rvts6">. So if, for example, you desire an FPS not greater than 50, the corresponding value to get this effect is </span><span class="rvts17">Delay = 20msec</span><span class="rvts6">. Note that a greater delay means a slower frame rate.</span></p>
</td>
</tr>
<tr valign="top">
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Updates bigger than 1/4 screen size</span></p>
</td>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">QUARTERBLT</span></p>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">QUARTERBLT</span></p>
</td>
<td width="1294" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Show FPS on title</span></p>
</td>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SHOWFPS</span></p>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SHOWFPS</span></p>
</td>
<td width="1294" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">When checked, the FPS counter is appended to the window title.</span></p>
</td>
@ -103,7 +103,7 @@
<tr valign="top">
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Show FPS overlay</span></p>
</td>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SHOWFPSOVERLAY</span></p>
<td width="119" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SHOWFPSOVERLAY</span></p>
</td>
<td width="1294" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -71,25 +71,25 @@
<tr valign="top">
<td width="101" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Time slow</span></p>
</td>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Slows down the hooked program. See </span><a class="rvts14" href="TimeSlider.html">Time Slider</a><span class="rvts6"> and </span><a class="rvts14" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Slows down the hooked program. See </span><a class="rvts16" href="TimeSlider.html">Time Slider</a><span class="rvts6"> and </span><a class="rvts16" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="101" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Clip toggle</span></p>
</td>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts14" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts16" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="101" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Log toggle</span></p>
</td>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts14" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts16" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="101" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">FPS toggle</span></p>
</td>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Toggle the FPS display ON and OFF. See </span><a class="rvts14" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Toggle the FPS display ON and OFF. See </span><a class="rvts16" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
@ -113,19 +113,19 @@
<tr valign="top">
<td width="101" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Time fast</span></p>
</td>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Speeds up the hooked program. See </span><a class="rvts14" href="TimeSlider.html">Time Slider</a><span class="rvts6"> and </span><a class="rvts14" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Speeds up the hooked program. See </span><a class="rvts16" href="TimeSlider.html">Time Slider</a><span class="rvts6"> and </span><a class="rvts16" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="101" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Alt-F4</span></p>
</td>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts14" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts16" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="101" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Refresh</span></p>
</td>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts14" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
<td width="1442" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><a class="rvts16" href="Specialkeys.html">Special Keys</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">

@ -65,7 +65,7 @@
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">No GDI handling</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">GDINONE</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">GDINONE</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disables video-related GDI/user32 API hooking.</span></p>
</td>
@ -73,7 +73,7 @@
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Scaled GDI calls</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKGDI</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKGDI</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Scales GDI API coordinates to fit the window stretching.</span></p>
</td>
@ -81,7 +81,7 @@
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Emulated Device Context</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">GDIEMULATEDC</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">GDIEMULATEDC</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Handle an emulated GDI device context.</span></p>
</td>
@ -89,7 +89,7 @@
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Share ddraw and GDI DC</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SHAREDDC</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SHAREDDC</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -97,7 +97,7 @@
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Remap Client Rect</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">CLIENTREMAPPING</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">CLIENTREMAPPING</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -105,7 +105,7 @@
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Scale font parameters</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXTEXTOUT</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXTEXTOUT</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Tries to scale font parameters to fit the window stretching.</span></p>
</td>
@ -113,23 +113,15 @@
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress FillRect</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOFILLRECT</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOFILLRECT</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Reuse emulated DC</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">REUSEEMULATEDDC</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix clipper area in shared DC</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXCLIPPERAREA</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXCLIPPERAREA</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -137,7 +129,7 @@
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Syncronize GDI to ddraw palette</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SYNCPALETTE</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SYNCPALETTE</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Makes DirectDraw palette emulation aware of palette changes made through GDI calls.</span></p>
</td>
@ -145,7 +137,7 @@
<tr valign="top">
<td width="182" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress Win common errors</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOWINERRORS</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOWINERRORS</span></p>
</td>
<td width="1227" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook GOG libs</span></p>
</td>
<td width="126" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKGOGLIBS</span></p>
<td width="126" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKGOGLIBS</span></p>
</td>
<td width="1295" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="116" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Bypass GOG libs</span></p>
</td>
<td width="126" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">BYPASSGOGLIBS</span></p>
<td width="126" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BYPASSGOGLIBS</span></p>
</td>
<td width="1295" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="204" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Do not notify on task switch</span></p>
</td>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">UNNOTIFY</span></p>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">UNNOTIFY</span></p>
</td>
<td width="1160" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Inhibits the task switch notification message that may hurt some games not designed to handle it properly</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="204" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">No banner</span></p>
</td>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOBANNER</span></p>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOBANNER</span></p>
</td>
<td width="1160" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="204" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Run in window</span></p>
</td>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">WINDOWIZE</span></p>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">WINDOWIZE</span></p>
</td>
<td width="1160" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="204" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Optimize CPU</span></p>
</td>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SAVELOAD</span></p>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SAVELOAD</span></p>
</td>
<td width="1160" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Optimizes the CPU load, but only for DirectDraw operations (DirectX1 to DirectX7).</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="204" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Ask confirmation on window close</span></p>
</td>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">CONFIRMONCLOSE</span></p>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">CONFIRMONCLOSE</span></p>
</td>
<td width="1160" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Asks you for confirmation when you close the window.</span></p>
</td>
@ -103,7 +103,7 @@
<tr valign="top">
<td width="204" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Terminate on window close</span></p>
</td>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">TERMINATEONCLOSE</span></p>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">TERMINATEONCLOSE</span></p>
</td>
<td width="1160" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Immediately terminates the application when you close the window.</span></p>
</td>
@ -111,7 +111,7 @@
<tr valign="top">
<td width="204" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Acquire admin caps</span></p>
</td>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NEEDADMINCAPS</span></p>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NEEDADMINCAPS</span></p>
</td>
<td width="1160" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -119,7 +119,7 @@
<tr valign="top">
<td width="204" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fullscreen only</span></p>
</td>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FULLSCREENONLY</span></p>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FULLSCREENONLY</span></p>
</td>
<td width="1160" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Forces applications to run in fullscreen mode only.</span></p>
</td>
@ -127,7 +127,7 @@
<tr valign="top">
<td width="204" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Show hints</span></p>
</td>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SHOWHINTS</span></p>
<td width="133" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SHOWHINTS</span></p>
</td>
<td width="1160" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -0,0 +1,90 @@
<html>
<head>
<title>Getting started</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="HelpNDoc Personal Edition 4.6.2.573">
<meta name="keywords" content="">
<link type="text/css" rel="stylesheet" media="all" href="css/reset.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/base.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/hnd.css" />
<!--[if lte IE 8]>
<link type="text/css" rel="stylesheet" media="all" href="css/ielte8.css" />
<![endif]-->
<style type="text/css">
#topic_header
{
background-color: #EFEFEF;
}
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/hnd.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
if (top.frames.length == 0)
{
var sTopicUrl = top.location.href.substring(top.location.href.lastIndexOf("/") + 1, top.location.href.length);
top.location.href = "DxWnd.html?" + sTopicUrl;
}
else if (top && top.FrameTOC && top.FrameTOC.SelectTocItem)
{
top.FrameTOC.SelectTocItem("Gettingstarted");
}
});
</script>
</head>
<body>
<div id="topic_header">
<div id="topic_header_content">
<h1 id="topic_header_text">Getting started</h1>
</div>
<div id="topic_header_nav">
<a href="Introduction.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="TheInterface.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
</div>
<div id="topic_content">
<p></p>
<h2 class="rvps6"><span class="rvts0"><span class="rvts14">Installing DxWnd</span></span></h2>
<p class="rvps2"><span class="rvts6">To install DxWnd, just unpack the compressed winrar archive.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">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.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">You can have as many copies of DxWnd as you like, but only one instance of DxWnd can run at a time.</span></p>
<h2 class="rvps6"><span class="rvts0"><span class="rvts14">Using DxWnd</span></span></h2>
<p class="rvps2"><span class="rvts6">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 &amp; drop this file into the DxWnd window. A complex dialog will appear, but in many cases the built-in defaults are sufficient.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">Alternatively, you can add a program via the menu by choosing </span><span class="rvts15">File &gt; Add</span><span class="rvts6"> menu command and filling in the program definition form. The only required parameter is the program path (the </span><span class="rvts15">Path</span><span class="rvts6"> field).</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">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.</span></p>
<h2 class="rvps6"><span class="rvts0"><span class="rvts14">Troubleshooting</span></span></h2>
<p class="rvps2"><span class="rvts6">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 </span><span class="rvts15">File &gt; Import</span><span class="rvts6">). Remember to update the </span><span class="rvts15">Path</span><span class="rvts6"> field to match the hooked program's location on your computer.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">If you still can't get it to work, there are a few more options to try:</span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside; list-style-type: disc;">
<li class="rvps2"><span class="rvts6">Run the game with the "show hints" flag. DxWnd will try to analyze the program at runtime and provide some hints about possible configuration improvements by showing messages in dialog boxes. Remember to turn this flag off once everything is working, or you will continue to receive these messages.</span></li>
<li class="rvps2"><span class="rvts6">Check the common problems list (coming soon) for solutions to known issues.</span></li>
<li class="rvps2"><span class="rvts6">Collect some logs by setting the log flags (see </span><a class="rvts16" href="Logs.html">Logs</a><span class="rvts6">) and sending the logs to the developer via a new thread on the </span><a class="rvts16" href="https://sourceforge.net/p/dxwnd/discussion/general/" target="_blank">SourceForge discussion board</a><span class="rvts6">. Remember to specify your platform and the version of the game, and include a description of the problem.</span></li>
</ul>
<p></p>
</div>
<div id="topic_footer">
<div id="topic_footer_content">
Copyright &copy; 2016 by GHO. All Rights Reserved.</div>
</div>
</body>
</html>

84
build/help/Glide3DFX.html Normal file

@ -0,0 +1,84 @@
<html>
<head>
<title>Glide (3DFX)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="HelpNDoc Personal Edition 4.6.2.573">
<meta name="keywords" content="">
<link type="text/css" rel="stylesheet" media="all" href="css/reset.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/base.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/hnd.css" />
<!--[if lte IE 8]>
<link type="text/css" rel="stylesheet" media="all" href="css/ielte8.css" />
<![endif]-->
<style type="text/css">
#topic_header
{
background-color: #EFEFEF;
}
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/hnd.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
if (top.frames.length == 0)
{
var sTopicUrl = top.location.href.substring(top.location.href.lastIndexOf("/") + 1, top.location.href.length);
top.location.href = "DxWnd.html?" + sTopicUrl;
}
else if (top && top.FrameTOC && top.FrameTOC.SelectTocItem)
{
top.FrameTOC.SelectTocItem("Glide3DFX");
}
});
</script>
</head>
<body>
<div id="topic_header">
<div id="topic_header_content">
<h1 id="topic_header_text">Glide (3DFX)</h1>
<div id="topic_breadcrumb">
<a href="Theconfigurationpanel.html">The configuration panel</a> &rsaquo;&rsaquo; <a href="Libs.html">Libs</a> &rsaquo;&rsaquo; </div>
</div>
<div id="topic_header_nav">
<a href="Libs.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="OpenGL.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="MMmultimedia.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
</div>
<div id="topic_content">
<p></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="110" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook Glide libs</span></p>
</td>
<td width="156" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKGLIDE</span></p>
</td>
<td width="1271" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enables Glide API hooking. Not currently implemented.</span></p>
</td>
</tr>
</table>
</div>
<p></p>
</div>
<div id="topic_footer">
<div id="topic_footer_content">
Copyright &copy; 2016 by GHO. All Rights Reserved.</div>
</div>
</body>
</html>

@ -49,9 +49,9 @@
<div id="topic_header_nav">
<a href="TheInterface.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Desktopcolordepth.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Shims.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="View.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="ProgramList.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -59,7 +59,7 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_help_menu.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_help_menu1.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">

@ -51,7 +51,7 @@
<a href="Position.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Sonprocesshook.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="Injectionmode.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -59,13 +59,13 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_hook1.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_hook2.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="189" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook enabled</span></p>
</td>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKENABLED</span></p>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKENABLED</span></p>
</td>
<td width="1171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">If this flag is not set, DxWnd ignores the task - see gray icon</span></p>
</td>
@ -73,51 +73,17 @@
<tr valign="top">
<td width="189" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Additional modules:</span></p>
</td>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="189" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hot patch (obfuscated IAT)</span></p>
<td width="189" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Start folder path</span></p>
</td>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOTPATCH</span></p>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">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. &nbsp;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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="189" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Use DLL injection</span></p>
</td>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">STARTDEBUG</span></p>
</td>
<td width="1171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="189" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook child WindowProc</span></p>
</td>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKCHILDWIN</span></p>
</td>
<td width="1171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="189" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook all DLLs</span></p>
</td>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKDLLS</span></p>
</td>
<td width="1171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">The original DxWnd behaviour was limited to search &amp; hook calls made by the main program directly. Checking this flag cause DxWnd to recurse in all &nbsp;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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="189" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Widechar program vs. ANSI</span></p>
</td>
<td width="137" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">ANSIWIDE</span></p>
</td>
<td width="1171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">DxWnd uses ANSI versions of several system calls by default. This flag tells DxWnd to use the corresponding WIDECHAR version instead.</span></p>
<td width="1171" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
</table>

126
build/help/Hookflags.html Normal file

@ -0,0 +1,126 @@
<html>
<head>
<title>Hook flags</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="HelpNDoc Personal Edition 4.6.2.573">
<meta name="keywords" content="">
<link type="text/css" rel="stylesheet" media="all" href="css/reset.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/base.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/hnd.css" />
<!--[if lte IE 8]>
<link type="text/css" rel="stylesheet" media="all" href="css/ielte8.css" />
<![endif]-->
<style type="text/css">
#topic_header
{
background-color: #EFEFEF;
}
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/hnd.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
if (top.frames.length == 0)
{
var sTopicUrl = top.location.href.substring(top.location.href.lastIndexOf("/") + 1, top.location.href.length);
top.location.href = "DxWnd.html?" + sTopicUrl;
}
else if (top && top.FrameTOC && top.FrameTOC.SelectTocItem)
{
top.FrameTOC.SelectTocItem("Hookflags");
}
});
</script>
</head>
<body>
<div id="topic_header">
<div id="topic_header_content">
<h1 id="topic_header_text">Hook flags</h1>
<div id="topic_breadcrumb">
<a href="Theconfigurationpanel.html">The configuration panel</a> &rsaquo;&rsaquo; <a href="Hook1.html">Hook</a> &rsaquo;&rsaquo; </div>
</div>
<div id="topic_header_nav">
<a href="Hook1.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Injectionmode.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Sonprocesshook.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
</div>
<div id="topic_content">
<p></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hot patch (obfuscated IAT)</span></p>
</td>
<td width="170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOTPATCH</span></p>
</td>
<td width="1199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">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. &nbsp;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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook child WindowProc</span></p>
</td>
<td width="170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKCHILDWIN</span></p>
</td>
<td width="1199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook all DLLs</span></p>
</td>
<td width="170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKDLLS</span></p>
</td>
<td width="1199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">The original DxWnd behaviour was limited to search &amp; hook calls made by the main program directly. Checking this flag cause DxWnd to recurse in all &nbsp;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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Widechar program vs. ANSI</span></p>
</td>
<td width="170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ANSIWIDE</span></p>
</td>
<td width="1199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">DxWnd uses ANSI versions of several system calls by default. This flag tells DxWnd to use the corresponding WIDECHAR version instead.</span></p>
</td>
</tr>
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">No Run</span></p>
</td>
<td width="170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKNORUN</span></p>
</td>
<td width="1199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Some applications run several executables. The only game found to run like this so far is </span><span class="rvts19">Die Hard Trilogy</span><span class="rvts6">. 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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">No hook update</span></p>
</td>
<td width="170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKNOUPDATE</span></p>
</td>
<td width="1199" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
</table>
</div>
<p></p>
</div>
<div id="topic_footer">
<div id="topic_footer_content">
Copyright &copy; 2016 by GHO. All Rights Reserved.</div>
</div>
</body>
</html>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="174" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix buffered I/O after Win98</span></p>
</td>
<td width="135" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">BUFFEREDIOFIX</span></p>
<td width="135" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BUFFEREDIOFIX</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="174" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set CDROM Drive Type</span></p>
</td>
<td width="135" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">CDROMDRIVETYPE</span></p>
<td width="135" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">CDROMDRIVETYPE</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="174" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hide empty CDROM drives</span></p>
</td>
<td width="135" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HIDECDROMEMPTY</span></p>
<td width="135" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HIDECDROMEMPTY</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Current</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Does not change the video color mode.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">8 BPP</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">16 BPP</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as above, but declaring a 16BPP setting.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">24 BPP</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as above, but declaring a 24BPP setting.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="197" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">32 BPP</span></p>
</td>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="161" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1179" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as above, but declaring a 32BPP setting.</span></p>
</td>

@ -0,0 +1,100 @@
<html>
<head>
<title>Injection mode</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="HelpNDoc Personal Edition 4.6.2.573">
<meta name="keywords" content="">
<link type="text/css" rel="stylesheet" media="all" href="css/reset.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/base.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/hnd.css" />
<!--[if lte IE 8]>
<link type="text/css" rel="stylesheet" media="all" href="css/ielte8.css" />
<![endif]-->
<style type="text/css">
#topic_header
{
background-color: #EFEFEF;
}
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/hnd.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
if (top.frames.length == 0)
{
var sTopicUrl = top.location.href.substring(top.location.href.lastIndexOf("/") + 1, top.location.href.length);
top.location.href = "DxWnd.html?" + sTopicUrl;
}
else if (top && top.FrameTOC && top.FrameTOC.SelectTocItem)
{
top.FrameTOC.SelectTocItem("Injectionmode");
}
});
</script>
</head>
<body>
<div id="topic_header">
<div id="topic_header_content">
<h1 id="topic_header_text">Injection mode</h1>
<div id="topic_breadcrumb">
<a href="Theconfigurationpanel.html">The configuration panel</a> &rsaquo;&rsaquo; <a href="Hook1.html">Hook</a> &rsaquo;&rsaquo; </div>
</div>
<div id="topic_header_nav">
<a href="Hook1.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Hook1.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Hookflags.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
</div>
<div id="topic_content">
<p></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">SetWindowsHook</span></p>
</td>
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1251" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Debugger mode</span></p>
</td>
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">STARTDEBUG</span></p>
</td>
<td width="1251" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Inject suspended process</span></p>
</td>
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">INJECTSUSPENDED</span></p>
</td>
<td width="1251" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
</table>
</div>
<p></p>
</div>
<div id="topic_footer">
<div id="topic_footer_content">
Copyright &copy; 2016 by GHO. All Rights Reserved.</div>
</div>
</body>
</html>

@ -59,7 +59,7 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_input1.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_input2.png"></p>
<p></p>
</div>

@ -45,7 +45,7 @@
</div>
<div id="topic_header_nav">
<a href="TheInterface.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="Gettingstarted.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="125" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enable hot keys</span></p>
</td>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">ENABLEHOTKEYS</span></p>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ENABLEHOTKEYS</span></p>
</td>
<td width="1282" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="125" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Intercept Alt-F4 key</span></p>
</td>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HANDLEALTF4</span></p>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HANDLEALTF4</span></p>
</td>
<td width="1282" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -59,65 +59,65 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><span class="rvts6">Sets the DxWnd hot keys mapping (see </span><a class="rvts14" href="Specialkeys.html">Special keys</a><span class="rvts6">). The format is as follows:</span></p>
<p class="rvps2"><span class="rvts6">Sets the DxWnd hot keys mapping (see </span><a class="rvts16" href="Specialkeys.html">Special keys</a><span class="rvts6">). The format is as follows:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">&lt;</span><span class="rvts19">function</span><span class="rvts15">&gt;=0x&lt;</span><span class="rvts19">keycode</span><span class="rvts15">&gt;</span></p>
<p class="rvps2"><span class="rvts17">&lt;</span><span class="rvts21">function</span><span class="rvts17">&gt;=0x&lt;</span><span class="rvts21">keycode</span><span class="rvts17">&gt;</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">The available values represent the hex key code and range from </span><span class="rvts15">0x70</span><span class="rvts6"> (Alt-F1) to </span><span class="rvts15">0x7C</span><span class="rvts6"> (Alt-F12).</span></p>
<p class="rvps2"><span class="rvts6">The available values represent the hex key code and range from </span><span class="rvts17">0x70</span><span class="rvts6"> (Alt-F1) to </span><span class="rvts17">0x7C</span><span class="rvts6"> (Alt-F12).</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">These are the available hot keys:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">timetoggle</span></p>
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">timetoggle</span></p>
</td>
<td width="1372" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Toggle time stretching.</span></p>
</td>
</tr>
<tr valign="top">
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">altf4</span></p>
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">altf4</span></p>
</td>
<td width="1372" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Terminate the program, such as by typing Alt-F4.</span></p>
</td>
</tr>
<tr valign="top">
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">timeslow</span></p>
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">timeslow</span></p>
</td>
<td width="1372" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Decrease time speed.</span></p>
</td>
</tr>
<tr valign="top">
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">timefast</span></p>
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">timefast</span></p>
</td>
<td width="1372" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Increase time speed.</span></p>
</td>
</tr>
<tr valign="top">
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">cliptoggle</span></p>
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">cliptoggle</span></p>
</td>
<td width="1372" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Toggle cursor clipping.</span></p>
</td>
</tr>
<tr valign="top">
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">refresh</span></p>
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">refresh</span></p>
</td>
<td width="1372" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Refresh the screen.</span></p>
</td>
</tr>
<tr valign="top">
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">logtoggle</span></p>
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">logtoggle</span></p>
</td>
<td width="1372" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Toggle logging.</span></p>
</td>
</tr>
<tr valign="top">
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">fpstoggle</span></p>
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">fpstoggle</span></p>
</td>
<td width="1372" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Show or hide the FPS.</span></p>
</td>
</tr>
<tr valign="top">
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">plocktoggle</span></p>
<td width="164" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">plocktoggle</span></p>
</td>
<td width="1372" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Lock or unlock the window position.</span></p>
</td>

@ -61,7 +61,7 @@
<p></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="187" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">lang=&lt;specification&gt;</span></p>
<td width="187" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">lang=&lt;specification&gt;</span></p>
</td>
<td width="1356" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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).</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
@ -73,29 +73,29 @@
<li class="rvps2"><span class="rvts6">IT Italian</span></li>
</ul>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">When you set a </span><span class="rvts15">lang=&lt;</span><span class="rvts19">specification</span><span class="rvts15">&gt;</span><span class="rvts6"> specification, DxWnd looks for and loads the resources in the </span><span class="rvts15">Resources_&lt;</span><span class="rvts19">specification</span><span class="rvts15">&gt;.dll</span><span class="rvts6"> file, so anyone can build and use a custom language pack.</span></p>
<p class="rvps2"><span class="rvts6">When you set a </span><span class="rvts17">lang=&lt;</span><span class="rvts21">specification</span><span class="rvts17">&gt;</span><span class="rvts6"> specification, DxWnd looks for and loads the resources in the </span><span class="rvts17">Resources_&lt;</span><span class="rvts21">specification</span><span class="rvts17">&gt;.dll</span><span class="rvts6"> file, so anyone can build and use a custom language pack.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">lang=default</span><span class="rvts6"> disables resource loading, and the program will use the default and built-in English pack.</span></p>
<p class="rvps2"><span class="rvts17">lang=default</span><span class="rvts6"> disables resource loading, and the program will use the default and built-in English pack.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">lang=automatic</span><span class="rvts6"> 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.</span></p>
<p class="rvps2"><span class="rvts17">lang=automatic</span><span class="rvts6"> 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.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">This setting is always overridden by a </span><span class="rvts15">/lang=&lt;</span><span class="rvts19">specification</span><span class="rvts15">&gt;</span><span class="rvts6"> command line argument.</span></p>
<p class="rvps2"><span class="rvts6">This setting is always overridden by a </span><span class="rvts17">/lang=&lt;</span><span class="rvts21">specification</span><span class="rvts17">&gt;</span><span class="rvts6"> command line argument.</span></p>
</td>
</tr>
<tr valign="top">
<td width="187" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">debug=&lt;mode&gt;</span></p>
<td width="187" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">debug=&lt;mode&gt;</span></p>
</td>
<td width="1356" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="187" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">multiprocesshook=&lt;mode&gt;</span></p>
<td width="187" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">multiprocesshook=&lt;mode&gt;</span></p>
</td>
<td width="1356" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="187" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">checkadmin=&lt;mode&gt;</span></p>
<td width="187" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">checkadmin=&lt;mode&gt;</span></p>
</td>
<td width="1356" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Boolean, defaulting to false. checkadmin=1 causes DxWnd to autodetect its own administrator permissions at startup and propose a self-elevation if missing.</span></p>
</td>

@ -59,7 +59,7 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_libs1.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_libs2.png"></p>
<p></p>
</div>

@ -49,9 +49,9 @@
<div id="topic_header_nav">
<a href="Libs.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="OpenGL.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Glide3DFX.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Glide.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="Compatibility.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -63,7 +63,7 @@
<tr valign="top">
<td width="172" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Remap MCI coordinates</span></p>
</td>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">REMAPMCI</span></p>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">REMAPMCI</span></p>
</td>
<td width="1254" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="172" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">No movies</span></p>
</td>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOMOVIES</span></p>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOMOVIES</span></p>
</td>
<td width="1254" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Skips movies whenever possible - that is, when performed through explicit movie handling calls.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="172" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Stretch ActiveMovie window</span></p>
</td>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">STRETCHMOVIES</span></p>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">STRETCHMOVIES</span></p>
</td>
<td width="1254" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="172" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix movies color depth</span></p>
</td>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXMOVIECOLOR</span></p>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXMOVIECOLOR</span></p>
</td>
<td width="1254" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fixes the color depth of VFW (Video For Windows) movies by forcing their value to the color depth of the virtual desktop.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="172" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Bypass MCI calls</span></p>
</td>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">BYPASSMCI</span></p>
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BYPASSMCI</span></p>
</td>
<td width="1254" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -59,7 +59,7 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_main2.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_main4.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">

@ -49,7 +49,7 @@
<div id="topic_header_nav">
<a href="Input.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="DirectInput.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Cursorhandling.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Keyboardhandling.html"><img src="img/arrow_right.png" alt="Next"/></a>
@ -63,7 +63,7 @@
<tr valign="top">
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Message processing</span></p>
</td>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">MESSAGEPROC</span></p>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MESSAGEPROC</span></p>
</td>
<td width="1150" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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).</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Filter offending messages</span></p>
</td>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FILTERMESSAGES</span></p>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FILTERMESSAGES</span></p>
</td>
<td width="1150" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Defaulting offending messages</span></p>
</td>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">DEFAULTMESSAGES</span></p>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">DEFAULTMESSAGES</span></p>
</td>
<td width="1150" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Peek all messages in queue</span></p>
</td>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">PEEKALLMESSAGES</span></p>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">PEEKALLMESSAGES</span></p>
</td>
<td width="1150" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Filter winposchange messages</span></p>
</td>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOWINPOSCHANGES</span></p>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOWINPOSCHANGES</span></p>
</td>
<td width="1150" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -103,7 +103,7 @@
<tr valign="top">
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Add message pump (Win7 comp.)</span></p>
</td>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">PEEKALLMESSAGES</span></p>
<td width="176" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">PEEKALLMESSAGES</span></p>
</td>
<td width="1150" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -51,7 +51,7 @@
<a href="GDI.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="MMmultimedia.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="Glide3DFX.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -63,7 +63,7 @@
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook OpenGL</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HOOKOPENGL</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKOPENGL</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enables OpenGL API hooking.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Force Hook</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FORCEHOOKOPENGL</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FORCEHOOKOPENGL</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Experimental probably unnecessary.</span></p>
</td>
@ -79,15 +79,23 @@
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix glPixelZoom args</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXPIXELZOOM</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXPIXELZOOM</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Scales the </span><span class="rvts17">xfactor</span><span class="rvts6"> and </span><span class="rvts17">yfactor</span><span class="rvts6"> parameters of the </span><span class="rvts17">glPixelZoom</span><span class="rvts6"> OpenGL call. Use this flag if the OpenGL screen is not properly scaled to fit the main window.</span></p>
</td>
</tr>
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix glBindTexture texture</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXBINDTEXTURE</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Recent OpenGL releases for Windows omit the </span><span class="rvts17">glActiveTexture</span><span class="rvts6"> 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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Custom OpenGL library</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -59,13 +59,21 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><span class="rvts6">The following flags have an effect only when the "run in window" option is selected (with the </span><span class="rvts15">WINDOWIZE</span><span class="rvts6"> flag).</span></p>
<p class="rvps2"><span class="rvts6">The following flags have an effect only when the "run in window" option is selected (with the </span><span class="rvts17">WINDOWIZE</span><span class="rvts6"> flag).</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="194" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hide desktop background</span></p>
</td>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HIDEDESKTOP</span></p>
</td>
<td width="1213" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 "</span><a class="rvts16" href="https://sourceforge.net/projects/mrhyde/" target="_blank">Mr. Hide</a><span class="rvts6">."</span></p>
</td>
</tr>
<tr valign="top">
<td width="194" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Keep aspect ratio</span></p>
</td>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">KEEPASPECTRATIO</span></p>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">KEEPASPECTRATIO</span></p>
</td>
<td width="1213" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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).</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
@ -75,25 +83,41 @@
<tr valign="top">
<td width="194" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Window initial position &amp; size</span></p>
</td>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><br/>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1213" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><span class="rvts15">KEEPASPECTRATIO</span><span class="rvts6"> flag) is set (if it has not been set, the height and width are ignored).</span></p>
<td width="1213" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><span class="rvts17">KEEPASPECTRATIO</span><span class="rvts6"> flag) is set (if it has not been set, the height and width are ignored).</span></p>
</td>
</tr>
<tr valign="top">
<td width="194" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Monitor</span></p>
</td>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">???</span></p>
</td>
<td width="1213" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">??? Allows you to choose the default monitor or a specific one from the drop-down menu.</span></p>
</td>
</tr>
<tr valign="top">
<td width="194" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Coordinate picker</span></p>
</td>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1213" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">This icon activates a mechanism to pick the new program placement coordinates (see "Window initial position &amp; 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 &amp; 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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="194" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Position</span></p>
</td>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><br/>
<td width="130" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1213" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">A selection of 4 possible cases:</span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside; list-style-type: disc;"><ul style="text-indent: 0px; margin-left: 48px; list-style-position: outside; list-style-type: circle;">
<li style="margin-left: 0px" class="rvps6"><span class="rvts6">X, Y coordinates: the window is placed at the chosen coordinates </span></li>
<li style="margin-left: 0px" class="rvps6"><span class="rvts6">Desktop center: the window is centered on the screen, and only the width and height fields are used.</span></li>
<li style="margin-left: 0px" class="rvps6"><span class="rvts6">Desktop work area: the window occupies the whole screen but the bottom taskbar. </span></li>
<li style="margin-left: 0px" class="rvps6"><span class="rvts6">Desktop: the window occupies the whole screen, as if it was fullscreen (a.k.a. Fake-fullscreen mode)</span></li>
<li style="margin-left: 0px" class="rvps7"><span class="rvts6">X, Y coordinates: the window is placed at the chosen coordinates </span></li>
<li style="margin-left: 0px" class="rvps7"><span class="rvts6">Desktop center: the window is centered on the screen, and only the width and height fields are used.</span></li>
<li style="margin-left: 0px" class="rvps7"><span class="rvts6">Desktop work area: the window occupies the whole screen but the bottom taskbar. </span></li>
<li style="margin-left: 0px" class="rvps7"><span class="rvts6">Desktop: the window occupies the whole screen, as if it was fullscreen (a.k.a. Fake-fullscreen mode)</span></li>
</ul></ul>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">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 </span><span class="rvts15">KEEPASPECTRATIO</span><span class="rvts6"> flag changes along with this classification.</span></p>
<p class="rvps2"><span class="rvts6">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 </span><span class="rvts17">KEEPASPECTRATIO</span><span class="rvts6"> flag changes along with this classification.</span></p>
</td>
</tr>
</table>

@ -63,35 +63,35 @@
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="159" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">posx=&lt;</span><span class="rvts19">x0</span><span class="rvts15">&gt;</span></p>
<td width="159" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">posx=&lt;</span><span class="rvts21">x0</span><span class="rvts17">&gt;</span></p>
</td>
<td width="1384" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="159" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">posy=&lt;</span><span class="rvts19">y0</span><span class="rvts15">&gt;</span></p>
<td width="159" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">posy=&lt;</span><span class="rvts21">y0</span><span class="rvts17">&gt;</span></p>
</td>
<td width="1384" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as posx, for the y (vertical) coordinate</span></p>
</td>
</tr>
<tr valign="top">
<td width="159" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">sizx=&lt;</span><span class="rvts19">width</span><span class="rvts15">&gt;</span></p>
<td width="159" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">sizx=&lt;</span><span class="rvts21">width</span><span class="rvts17">&gt;</span></p>
</td>
<td width="1384" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as posx, but recording the window's width. The initial width is forced to a minimum of 320 pixels.</span></p>
</td>
</tr>
<tr valign="top">
<td width="159" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">sizy=&lt;</span><span class="rvts19">height</span><span class="rvts15">&gt;</span></p>
<td width="159" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">sizy=&lt;</span><span class="rvts21">height</span><span class="rvts17">&gt;</span></p>
</td>
<td width="1384" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as posx, but recording the window's height. The initial height is forced to a minimum of 200 pixels.</span></p>
</td>
</tr>
</table>
</div>
<p class="rvps2"><span class="rvts15"><br/></span></p>
<p class="rvps2"><span class="rvts15"><br/></span></p>
<p class="rvps2"><span class="rvts15"><br/></span></p>
<p class="rvps2"><span class="rvts15"><br/></span></p>
<p class="rvps2"><span class="rvts17"><br/></span></p>
<p class="rvps2"><span class="rvts17"><br/></span></p>
<p class="rvps2"><span class="rvts17"><br/></span></p>
<p class="rvps2"><span class="rvts17"><br/></span></p>
<p></p>
</div>

@ -45,7 +45,7 @@
</div>
<div id="topic_header_nav">
<a href="Shims.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Help.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="DxWndintheSystemTray.html"><img src="img/arrow_right.png" alt="Next"/></a>
@ -57,7 +57,7 @@
<p></p>
<p class="rvps2"><span class="rvts6">When right-clicking on the program's list, instead, the following menu will be shown:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_programlist_rclick.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_programlist_rclick1.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
@ -93,7 +93,7 @@
<tr valign="top">
<td width="78" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Move</span></p>
</td>
<td width="1465" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Move.html">Move</a><span class="rvts6">.</span></p>
<td width="1465" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Move.html">Move</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
@ -105,7 +105,7 @@
<tr valign="top">
<td width="78" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Log</span></p>
</td>
<td width="1465" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">This menu is equivalent to Edit &gt; Log. See </span><a class="rvts14" href="Log1.html">Log</a><span class="rvts6">.</span></p>
<td width="1465" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">This menu is equivalent to Edit &gt; Log. See </span><a class="rvts16" href="Log1.html">Log</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">

@ -63,7 +63,7 @@
<tr valign="top">
<td width="198" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Emulate registry</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">EMULATEREGISTRY</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">EMULATEREGISTRY</span></p>
</td>
<td width="1191" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Intercepts registry read operations so that missing entries are filled in by the values in the DxWnd.reg file.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="198" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Override registry</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OVERRIDEREGISTRY</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OVERRIDEREGISTRY</span></p>
</td>
<td width="1191" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Intercepts registry read operations so that missing and existing entries are filled in by the values in the DxWnd.reg file.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="198" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set KEY_WOW64_64KEY flag</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">WOW64REGISTRY</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">WOW64REGISTRY</span></p>
</td>
<td width="1191" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="198" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set KEY_WOW64_32KEY flag</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">WOW32REGISTRY</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">WOW32REGISTRY</span></p>
</td>
<td width="1191" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -51,7 +51,7 @@
<a href="Desktop.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="ProgramList.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="Help.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -59,7 +59,7 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><span class="rvts6">Shows a window that displays the list of Windows shims applied to the selected executable path. For more information on shims, see </span><a class="rvts14" href="https://en.wikipedia.org/wiki/Shim_(computing)" target="_blank">the related Wikipedia article</a><span class="rvts6">.</span></p>
<p class="rvps2"><span class="rvts6">Shows a window that displays the list of Windows shims applied to the selected executable path. For more information on shims, see </span><a class="rvts16" href="https://en.wikipedia.org/wiki/Shim_(computing)" target="_blank">the related Wikipedia article</a><span class="rvts6">.</span></p>
<p></p>
</div>

@ -49,7 +49,7 @@
<div id="topic_header_nav">
<a href="Hook1.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Hook1.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Hookflags.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Additionallibrarieshook.html"><img src="img/arrow_right.png" alt="Next"/></a>
@ -63,15 +63,15 @@
<tr valign="top">
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Default</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1298" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 &gt; Add (see </span><a class="rvts14" href="Edit.html">Edit</a><span class="rvts6">) to create a new entry in the main program list for each child process.</span></p>
<td width="1298" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 &gt; Add (see </span><a class="rvts16" href="Edit.html">Edit</a><span class="rvts6">) to create a new entry in the main program list for each child process.</span></p>
</td>
</tr>
<tr valign="top">
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SUPPRESSCHILD</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPRESSCHILD</span></p>
</td>
<td width="1298" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Extend Hook</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">ENABLESONHOOK</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ENABLESONHOOK</span></p>
</td>
<td width="1298" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="111" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Extend Injection</span></p>
</td>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">INJECTSON</span></p>
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">INJECTSON</span></p>
</td>
<td width="1298" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -59,49 +59,49 @@
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">cliptoggle</span></p>
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">cliptoggle</span></p>
</td>
<td width="1399" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">refresh</span></p>
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">refresh</span></p>
</td>
<td width="1399" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">logtoggle</span></p>
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">logtoggle</span></p>
</td>
<td width="1399" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">plocktoggle</span></p>
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">plocktoggle</span></p>
</td>
<td width="1399" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Toggle position locking. When the Lock win Coordinates flag is set (see </span><a class="rvts14" href="Windowshandling.html">Windows handling</a><span class="rvts6">), the window can't be moved or resized. Toggle this behavior OFF, move or resize the window, and then lock the window again.</span></p>
<td width="1399" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Toggle position locking. When the Lock win Coordinates flag is set (see </span><a class="rvts16" href="Windowshandling.html">Windows handling</a><span class="rvts6">), the window can't be moved or resized. Toggle this behavior OFF, move or resize the window, and then lock the window again.</span></p>
</td>
</tr>
<tr valign="top">
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">fpstoggle</span></p>
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">fpstoggle</span></p>
</td>
<td width="1399" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Toggle the FPS display ON and OFF.</span></p>
</td>
</tr>
<tr valign="top">
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">timefast/timeslow</span></p>
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">timefast/timeslow</span></p>
</td>
<td width="1399" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Increase or decrease the time shift multiplication factor when time stretching is on.</span></p>
</td>
</tr>
<tr valign="top">
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">altf4</span></p>
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">altf4</span></p>
</td>
<td width="1399" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">timetoggle</span></p>
<td width="144" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">timetoggle</span></p>
</td>
<td width="1399" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -49,9 +49,9 @@
<div id="topic_header_nav">
<a href="Direct3D.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Direct3D.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Texturehandling.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Direct3Dtweaks.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="3Deffects1.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -60,7 +60,7 @@
<p></p>
<p class="rvps2"><span class="rvts6">Forces Swap Effect</span></p>
<p class="rvps2"><span class="rvts15">FORCESWAPEFFECT</span></p>
<p class="rvps2"><span class="rvts17">FORCESWAPEFFECT</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">This experimental flag forces the selected SwapEffect mode during the CreateDevice/Reset methods. In some cases, it may improve compatibility or performance. You can choose from the following modes:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="112" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">CPU slow down</span></p>
</td>
<td width="99" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">CPUSLOWDOWN</span></p>
<td width="99" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">CPUSLOWDOWN</span></p>
</td>
<td width="1326" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,15 +71,15 @@
<tr valign="top">
<td width="112" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">CPU max usage</span></p>
</td>
<td width="99" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">CPUMAXUSAGE</span></p>
<td width="99" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">CPUMAXUSAGE</span></p>
</td>
<td width="1326" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as </span><span class="rvts15">CPUSLOWDOWN</span><span class="rvts6">, 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 </span><span class="rvts15">CPUSLOWDOWN</span><span class="rvts6">.</span></p>
<td width="1326" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as </span><span class="rvts17">CPUSLOWDOWN</span><span class="rvts6">, 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 </span><span class="rvts17">CPUSLOWDOWN</span><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="112" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Ratio</span></p>
</td>
<td width="99" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="99" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1326" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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%.</span></p>
</td>

@ -61,25 +61,25 @@
<p></p>
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">MinTexX=&lt;value&gt;</span></p>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MinTexX=&lt;value&gt;</span></p>
</td>
<td width="1412" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Minimum texture width for texture processing (dump, hack).</span></p>
</td>
</tr>
<tr valign="top">
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">MaxTexX=&lt;value&gt;</span></p>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MaxTexX=&lt;value&gt;</span></p>
</td>
<td width="1412" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Maximum texture width for texture processing (dump, hack). Zero value means infinite.</span></p>
</td>
</tr>
<tr valign="top">
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">MinTexY=&lt;value&gt;</span></p>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MinTexY=&lt;value&gt;</span></p>
</td>
<td width="1412" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Minimum texture height for texture processing (dump, hack).</span></p>
</td>
</tr>
<tr valign="top">
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">MaxTexY=&lt;value&gt;</span></p>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MaxTexY=&lt;value&gt;</span></p>
</td>
<td width="1412" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Maximum texture height for texture processing (dump, hack). Zero value means infinite.</span></p>
</td>

@ -51,7 +51,7 @@
<a href="Direct3Dtweaks.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="3Deffects1.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="SwapEffect.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -65,7 +65,7 @@
<tr valign="top">
<td width="56" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">None</span></p>
</td>
<td width="134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15"><br/></span></p>
<td width="134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
</td>
<td width="1347" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">The default behavior. Does not apply special handling to textures.</span></p>
</td>
@ -73,7 +73,7 @@
<tr valign="top">
<td width="56" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Highlight</span></p>
</td>
<td width="134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">TEXTUREHIGHLIGHT</span></p>
<td width="134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">TEXTUREHIGHLIGHT</span></p>
</td>
<td width="1347" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">All hooked textures are replaced with a randomly-generated solid color. This makes it easier to see texel boundaries and texture usage.</span></p>
</td>
@ -81,7 +81,7 @@
<tr valign="top">
<td width="56" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Dump</span></p>
</td>
<td width="134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">TEXTUREDUMP</span></p>
<td width="134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">TEXTUREDUMP</span></p>
</td>
<td width="1347" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -89,7 +89,7 @@
<tr valign="top">
<td width="56" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hack</span></p>
</td>
<td width="134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">TEXTUREHACK</span></p>
<td width="134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">TEXTUREHACK</span></p>
</td>
<td width="1347" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -61,10 +61,10 @@
<p></p>
<p class="rvps2"><span class="rvts6">This area allows you to set minimum and maximum widths and heights for texture processing. The format is as follows:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts15">Min &lt;minimum width&gt; x &lt;minimum height&gt;</span></p>
<p class="rvps2"><span class="rvts15">Max &lt;maximum width&gt; x &lt;maximum height&gt;</span></p>
<p class="rvps2"><span class="rvts15"><br/></span></p>
<p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Texture.html">Configuration file &gt; Texture</a><span class="rvts6">.</span></p>
<p class="rvps2"><span class="rvts17">Min &lt;minimum width&gt; x &lt;minimum height&gt;</span></p>
<p class="rvps2"><span class="rvts17">Max &lt;maximum width&gt; x &lt;maximum height&gt;</span></p>
<p class="rvps2"><span class="rvts17"><br/></span></p>
<p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Texture.html">Configuration file &gt; Texture</a><span class="rvts6">.</span></p>
<p></p>
</div>

@ -45,7 +45,7 @@
</div>
<div id="topic_header_nav">
<a href="Introduction.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Gettingstarted.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="File.html"><img src="img/arrow_right.png" alt="Next"/></a>
@ -57,7 +57,7 @@
<p></p>
<p class="rvps2"><span class="rvts6">DxWnd comes with a simple graphical interface. The initial view is shown below:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_main_screen.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_main_screen2.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">The main window shows the list of hooked programs. DxWnd can currently handle up to 256. Trying to add more than that will produce an error message. Keep in mind that DxWnd bundles contain an export subfolder where all supported games have their own default configuration ready to be imported, but, because of the program's absolute path value, these entries will actually work only after updating the path with the proper local value.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>

@ -63,7 +63,7 @@
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/NewItem25.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">The time stretching factors shown below the slider are related to the coarse (default) time resolution. If the fine time adjustment flag is set (see </span><a class="rvts14" href="TimeStretching.html">Time Stretching</a><span class="rvts6">), the leftmost slider position corresponds to approximately x2 and the rightmost to approximately :2.</span></p>
<p class="rvps2"><span class="rvts6">The time stretching factors shown below the slider are related to the coarse (default) time resolution. If the fine time adjustment flag is set (see </span><a class="rvts16" href="TimeStretching.html">Time Stretching</a><span class="rvts6">), the leftmost slider position corresponds to approximately x2 and the rightmost to approximately :2.</span></p>
<p></p>
</div>

@ -63,15 +63,15 @@
<tr valign="top">
<td width="188" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Time Stretching initial</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">TIMESTRETCH</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">TIMESTRETCH</span></p>
</td>
<td width="1201" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><span class="rvts14">Time Slider</span><span class="rvts6">). 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. </span></p>
<td width="1201" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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 </span><span class="rvts16">Time Slider</span><span class="rvts6">). 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. </span></p>
</td>
</tr>
<tr valign="top">
<td width="188" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Show time stretch</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SHOWTIMESTRETCH</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SHOWTIMESTRETCH</span></p>
</td>
<td width="1201" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="188" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fine time adjust</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FINETIMING</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FINETIMING</span></p>
</td>
<td width="1201" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="188" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Intercept RDTSC opcode</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">INTERCEPTRDTSC</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">INTERCEPTRDTSC</span></p>
</td>
<td width="1201" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="188" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Stretch timers</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">STRETCHTIMERS</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">STRETCHTIMERS</span></p>
</td>
<td width="1201" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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().</span></p>
</td>
@ -103,7 +103,7 @@
<tr valign="top">
<td width="188" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Normalize Performance Counter</span></p>
</td>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NORMALIZEPERFCOUNT</span></p>
<td width="148" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NORMALIZEPERFCOUNT</span></p>
</td>
<td width="1201" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -59,31 +59,31 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_tools_menu.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_tools_menu1.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<div class="rvps2"><table border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
<tr valign="top">
<td width="149" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Window</span></p>
</td>
<td width="1387" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Window1.html">Window</a><span class="rvts6">.</span></p>
<td width="1387" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Window1.html">Window</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="149" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Process</span></p>
</td>
<td width="1387" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Process.html">Process</a><span class="rvts6">.</span></p>
<td width="1387" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Process.html">Process</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="149" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Desktop taskbar</span></p>
</td>
<td width="1387" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Desktoptaskbar.html">Desktop taskbar</a><span class="rvts6">.</span></p>
<td width="1387" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Desktoptaskbar.html">Desktop taskbar</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
<td width="149" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Desktop color depth</span></p>
</td>
<td width="1387" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts14" href="Desktopcolordepth.html">Desktop color depth</a><span class="rvts6">.</span></p>
<td width="1387" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">See </span><a class="rvts16" href="Desktopcolordepth.html">Desktop color depth</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">

@ -63,7 +63,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Block process priority class</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">BLOCKPRIORITYCLASS</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BLOCKPRIORITYCLASS</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set single core process affinity</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SINGLEPROCAFFINITY</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SINGLEPROCAFFINITY</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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).</span></p>
</td>
@ -79,15 +79,15 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set last core affinity</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">USELASTCORE</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">USELASTCORE</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as </span><span class="rvts15">SINGLEPROCAFFINITY</span><span class="rvts6">, but picks the last CPU core.</span></p>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Same as </span><span class="rvts17">SINGLEPROCAFFINITY</span><span class="rvts6">, but picks the last CPU core.</span></p>
</td>
</tr>
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Limit available resources</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">LIMITRESOURCES</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LIMITRESOURCES</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disable performance counter</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOPERFCOUNTER</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOPERFCOUNTER</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -103,7 +103,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Bypass font unsupported api</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FONTBYPASS</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FONTBYPASS</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -111,7 +111,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Replace privileged opcodes</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">REPLACEPRIVOPS</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">REPLACEPRIVOPS</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -119,7 +119,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress IME</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SUPPRESSIME</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPRESSIME</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">The flag tries to suppress IME windows. This feature is not yet fully functional.</span></p>
</td>
@ -127,7 +127,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Handle exceptions</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HANDLEEXCEPTIONS</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HANDLEEXCEPTIONS</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -135,7 +135,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Diablo tweak</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">DIABLOTWEAK</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">DIABLOTWEAK</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -143,7 +143,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Intercept Imagehlp.dll</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOIMAGEHLP</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOIMAGEHLP</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -151,7 +151,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">EA Sports hack</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">EASPORTSHACK</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">EASPORTSHACK</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Intercept and neutralize some of the internal hooks usually set by "EA Sports" games, and possibly other titles as well.</span></p>
</td>
@ -159,7 +159,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Reserve legacy memory segments</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">LEGACYALLOC</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LEGACYALLOC</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -167,7 +167,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disable Max Windowed Mode</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">DISABLEMAXWINMODE</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">DISABLEMAXWINMODE</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Invoke DirectDraw SetAppCompatData(12,0) to set the DisableMaxWindowedMode.</span></p>
</td>
@ -175,7 +175,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disable "disable Alt-Tab"</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">DISABLEDISABLEALTTAB</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">DISABLEDISABLEALTTAB</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -183,7 +183,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Win7 color fix</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">COLORFIX</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">COLORFIX</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -191,7 +191,7 @@
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix GlobalUnlock</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXGLOBALUNLOCK</span></p>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXGLOBALUNLOCK</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -59,7 +59,7 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_video1.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_configuration_video2.png"></p>
<p></p>
</div>

@ -49,7 +49,7 @@
<div id="topic_header_nav">
<a href="TheInterface.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Help.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Desktopcolordepth.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Status.html"><img src="img/arrow_right.png" alt="Next"/></a>
@ -59,16 +59,16 @@
<div id="topic_content">
<p></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_view_menu.png"></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_view_menu1.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">The View menu provides access to various informational windows:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<ul style="text-indent: 0px; margin-left: 24px; list-style-position: outside; list-style-type: disc;">
<li class="rvps2"><span class="rvts14">Status</span></li>
<li class="rvps2"><span class="rvts14">Time Slider</span></li>
<li class="rvps2"><span class="rvts14">Palette</span></li>
<li class="rvps2"><a class="rvts14" href="Desktop.html">Desktop</a></li>
<li class="rvps2"><a class="rvts14" href="Shims.html">Shims</a></li>
<li class="rvps2"><span class="rvts16">Status</span></li>
<li class="rvps2"><span class="rvts16">Time Slider</span></li>
<li class="rvps2"><span class="rvts16">Palette</span></li>
<li class="rvps2"><a class="rvts16" href="Desktop.html">Desktop</a></li>
<li class="rvps2"><a class="rvts16" href="Shims.html">Shims</a></li>
</ul>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">See each subtopic for detailed information.</span></p>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix Window Frame Style</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXWINFRAME</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXWINFRAME</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Initializes the game window with a title bar and resizeable borders.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Prevent Win Maximize</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">PREVENTMAXIMIZE</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">PREVENTMAXIMIZE</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Lock win coordinates</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">LOCKWINPOS</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LOCKWINPOS</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Lock win style</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">LOCKWINSTYLE</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LOCKWINSTYLE</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Intercepts messages and calls that the program makes to itself to change its own windowstyle.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Recover screen mode</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">RECOVERSCREENMODE</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">RECOVERSCREENMODE</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -103,7 +103,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Refresh on win resize</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">REFRESHONRESIZE</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">REFRESHONRESIZE</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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).</span></p>
</td>
@ -111,7 +111,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix Parent Window</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXPARENTWIN</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXPARENTWIN</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -119,7 +119,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Modal Style</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">MODALSTYLE</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MODALSTYLE</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">When "Fix Window Frame Style" is set, a borderless and titleless modal style is chosen instead of the default one.</span></p>
</td>
@ -127,7 +127,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Force win resize</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FORCEWINRESIZE</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FORCEWINRESIZE</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -135,7 +135,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hide multi-monitor config</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HIDEMULTIMONITOR</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HIDEMULTIMONITOR</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Makes the program ignore multiple monitors in your system configuration, giving information about the primary monitor only.</span></p>
</td>
@ -143,7 +143,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Wallpaper mode</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">WALLPAPERMODE</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">WALLPAPERMODE</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Experimental forces the program's Z-order to the lowest level so that it runs below any other task, behaving like an active wallpaper.</span></p>
</td>
@ -151,7 +151,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix window frame in D3D</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">FIXD3DFRAME</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXD3DFRAME</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -159,23 +159,15 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Don't move D3D rendering window</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">NOWINDOWMOVE</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NOWINDOWMOVE</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
</tr>
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hide desktop background</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HIDEDESKTOP</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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/</span></p>
</td>
</tr>
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hide Taskbar</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">HIDETASKBAR</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HIDETASKBAR</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Forces the Windows Taskbar to hide while a game is running.</span></p>
</td>
@ -183,7 +175,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Unlock Z-order</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">UNLOCKZORDER</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">UNLOCKZORDER</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -191,7 +183,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Suppress main window destruction</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">SUPPRESSRELEASE</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPRESSRELEASE</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -199,7 +191,7 @@
<tr valign="top">
<td width="212" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Send WM_ACTIVATEAPP message</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">ACTIVATEAPP</span></p>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ACTIVATEAPP</span></p>
</td>
<td width="1183" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -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;
}

@ -81,7 +81,7 @@
<tr valign="top">
<td width="68" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Separated</span></p>
</td>
<td width="1475" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Each session will write to a new, separate log file named dxwnd</span><span class="rvts18">&lt;n&gt;</span><span class="rvts6">.log where </span><span class="rvts18">n</span><span class="rvts6"> is the smallest usable number to avoid filename conflicts.</span></p>
<td width="1475" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Each session will write to a new, separate log file named dxwnd</span><span class="rvts19">&lt;n&gt;</span><span class="rvts6">.log where </span><span class="rvts19">n</span><span class="rvts6"> is the smallest usable number to avoid filename conflicts.</span></p>
</td>
</tr>
</table>

File diff suppressed because one or more lines are too long

Binary file not shown.

After

(image error) Size: 19 KiB

Binary file not shown.

After

(image error) Size: 19 KiB

Binary file not shown.

After

(image error) Size: 22 KiB

Binary file not shown.

After

(image error) Size: 21 KiB

Binary file not shown.

After

(image error) Size: 16 KiB

Binary file not shown.

After

(image error) Size: 25 KiB

Binary file not shown.

After

(image error) Size: 6.5 KiB

Binary file not shown.

After

(image error) Size: 5.5 KiB

Binary file not shown.

After

(image error) Size: 3.8 KiB

Binary file not shown.

After

(image error) Size: 3.7 KiB

Binary file not shown.

After

(image error) Size: 7.9 KiB

Binary file not shown.

After

(image error) Size: 6.4 KiB

Binary file not shown.

After

(image error) Size: 14 KiB

Binary file not shown.

After

(image error) Size: 5.5 KiB

@ -63,7 +63,7 @@
<tr valign="top">
<td width="232" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">DxWnd hacks</span></p>
</td>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OUTDXWINTRACE</span></p>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OUTDXWINTRACE</span></p>
</td>
<td width="1177" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Logs all significant events that DxWnd performs to run the fullscreen program in windowed mode.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="232" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">DirectDraw trace</span></p>
</td>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OUTDDRAWTRACE</span></p>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OUTDDRAWTRACE</span></p>
</td>
<td width="1177" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Logs DirectDraw operations.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="232" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Direct3D trace</span></p>
</td>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OUTD3DTRACE</span></p>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OUTD3DTRACE</span></p>
</td>
<td width="1177" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Logs Direct3D operations.</span></p>
</td>
@ -87,7 +87,7 @@
<tr valign="top">
<td width="232" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Win Events</span></p>
</td>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OUTWINMESSAGES</span></p>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OUTWINMESSAGES</span></p>
</td>
<td width="1177" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Logs all Window messages intercepted in the application's queues, along with events that are generated or processed internally by the Peek/GetMessage APIs.</span></p>
</td>
@ -95,7 +95,7 @@
<tr valign="top">
<td width="232" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Cursor / Mouse</span></p>
</td>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OUTCURSORTRACE</span></p>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OUTCURSORTRACE</span></p>
</td>
<td width="1177" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -103,7 +103,7 @@
<tr valign="top">
<td width="232" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Import Table</span></p>
</td>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OUTIMPORTTABLE</span></p>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OUTIMPORTTABLE</span></p>
</td>
<td width="1177" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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).</span></p>
</td>
@ -111,7 +111,7 @@
<tr valign="top">
<td width="232" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Debug</span></p>
</td>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OUTDEBUG</span></p>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OUTDEBUG</span></p>
</td>
<td width="1177" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Writes some more detailed information for diagnostic purposes.</span></p>
</td>
@ -119,7 +119,7 @@
<tr valign="top">
<td width="232" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Registry op.</span></p>
</td>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OUTREGISTRY</span></p>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OUTREGISTRY</span></p>
</td>
<td width="1177" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Logs registry operations.</span></p>
</td>
@ -127,7 +127,7 @@
<tr valign="top">
<td width="232" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook op.</span></p>
</td>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">TRACEHOOKS</span></p>
<td width="124" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">TRACEHOOKS</span></p>
</td>
<td width="1177" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Logs hooking operations.</span></p>
</td>

@ -63,7 +63,7 @@
<tr valign="top">
<td width="138" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Output debug string</span></p>
</td>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">OUTDEBUGSTRING</span></p>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">OUTDEBUGSTRING</span></p>
</td>
<td width="1268" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>
@ -71,7 +71,7 @@
<tr valign="top">
<td width="138" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Add timestamp to log</span></p>
</td>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">ADDTIMESTAMP</span></p>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ADDTIMESTAMP</span></p>
</td>
<td width="1268" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Adds a timestamp with the system tick count (from GetTickCount() calls) to the beginning of each line in a log file.</span></p>
</td>
@ -79,7 +79,7 @@
<tr valign="top">
<td width="138" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Relative timestamp</span></p>
</td>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts15">ADDRELATIVETIME</span></p>
<td width="131" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">ADDRELATIVETIME</span></p>
</td>
<td width="1268" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">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.</span></p>
</td>

@ -222,6 +222,12 @@
target="FrameMain">
Introduction</a>
</li><li class="" id="Gettingstarted" data="">
<a
href="Gettingstarted.html"
target="FrameMain">
Getting started</a>
</li><li class="folder" id="TheInterface" data="">
<a
href="TheInterface.html"
@ -318,13 +324,7 @@
target="FrameMain">
Desktop color depth</a>
</li></ul></li><li class="" id="Help" data="">
<a
href="Help.html"
target="FrameMain">
Help</a>
</li><li class="folder" id="View" data="">
</li></ul></li><li class="folder" id="View" data="">
<a
href="View.html"
target="FrameMain">
@ -360,7 +360,13 @@
target="FrameMain">
Shims</a>
</li></ul></li></ul></li><li class="" id="ProgramList" data="">
</li></ul></li><li class="" id="Help" data="">
<a
href="Help.html"
target="FrameMain">
Help</a>
</li></ul></li><li class="" id="ProgramList" data="">
<a
href="ProgramList.html"
target="FrameMain">
@ -402,7 +408,19 @@
target="FrameMain">
Hook</a>
<ul><li class="" id="Sonprocesshook" data="">
<ul><li class="" id="Injectionmode" data="">
<a
href="Injectionmode.html"
target="FrameMain">
Injection mode</a>
</li><li class="" id="Hookflags" data="">
<a
href="Hookflags.html"
target="FrameMain">
Hook flags</a>
</li><li class="" id="Sonprocesshook" data="">
<a
href="Sonprocesshook.html"
target="FrameMain">
@ -456,18 +474,18 @@
target="FrameMain">
Cursor visibility</a>
</li><li class="" id="Cursorhandling" data="">
<a
href="Cursorhandling.html"
target="FrameMain">
Cursor handling</a>
</li><li class="" id="DirectInput" data="">
<a
href="DirectInput.html"
target="FrameMain">
DirectInput</a>
</li><li class="" id="Cursorhandling" data="">
<a
href="Cursorhandling.html"
target="FrameMain">
Cursor handling</a>
</li><li class="" id="Messagehandling" data="">
<a
href="Messagehandling.html"
@ -534,13 +552,7 @@
target="FrameMain">
Direct3D</a>
<ul><li class="" id="SwapEffect" data="">
<a
href="SwapEffect.html"
target="FrameMain">
Swap Effect</a>
</li><li class="" id="Direct3Dtweaks" data="">
<ul><li class="" id="Direct3Dtweaks" data="">
<a
href="Direct3Dtweaks.html"
target="FrameMain">
@ -552,6 +564,12 @@
target="FrameMain">
Texture handling</a>
</li><li class="" id="SwapEffect" data="">
<a
href="SwapEffect.html"
target="FrameMain">
Swap Effect</a>
</li><li class="" id="3Deffects1" data="">
<a
href="3Deffects1.html"
@ -624,18 +642,18 @@
target="FrameMain">
OpenGL</a>
</li><li class="" id="Glide3DFX" data="">
<a
href="Glide3DFX.html"
target="FrameMain">
Glide (3DFX)</a>
</li><li class="" id="MMmultimedia" data="">
<a
href="MMmultimedia.html"
target="FrameMain">
MM (multimedia)</a>
</li><li class="" id="Glide" data="">
<a
href="Glide.html"
target="FrameMain">
Glide</a>
</li></ul></li><li class="folder" id="Compatibility" data="">
<a
href="Compatibility.html"

@ -1259,6 +1259,13 @@ fix: fixed wrong hook for GetGDISurface in DirectDraw3 interface
fix: eliminated dialog box when hooking ddrawex
fix: eliminated experimental hook to auxGetNumDevs returning 1 available device always. Fixes problems with "Imperialism II"
v2.03.88
fix: revised (simpler) window handling, hopefully more reliable (Diablo no longer crashes on fake-fullscreen modes?)
fix: eliminated hook of smackw32.dll to reach GDI32/user32 calls beneath
fix: added ddraw hooking in ddrawex/CreateDirectDraw() call: now "Theocracy" works with default "Automatic" ddraw hooking
fix: added hook for EnumDisplayDevicesW used by "Battleground Europe"
fix: added "Hide multi monitors" logic to EnumDisplayDevicesA/W

@ -2200,6 +2200,8 @@ HRESULT WINAPI extSetDisplayMode(int dxversion, LPDIRECTDRAW lpdd,
if(dxw.VirtualPixelFormat.dwRGBBitCount == 8)
mySetPalette(0, 256, DefaultSystemPalette);
if(dxw.bAutoScale) dxw.AutoScale();
return DD_OK;
}

@ -156,7 +156,7 @@ DllRegisterServer_Type pDllRegisterServer;
DllUnregisterServer_Type pDllUnregisterServer;
// DirectDrawEx class objects
HRESULT WINAPI extCreateDirectDrawEX(void *, GUID *, HWND, DWORD, DWORD, IUnknown *, IDirectDraw **);
HRESULT WINAPI extCreateDirectDraw(void *, GUID *, HWND, DWORD, DWORD, IUnknown *, IDirectDraw **);
HRESULT WINAPI extDirectDrawEnumerateEX(void *, LPDDENUMCALLBACK, LPVOID);
typedef HRESULT (WINAPI *CreateDirectDrawEX_Type)(void *, GUID *, HWND, DWORD, DWORD, IUnknown *, IDirectDraw **);
@ -201,7 +201,7 @@ void HookDirectDrawFactory(void *obj)
OutTrace("Hooking IID_DirectDrawFactory object\n");
//SetHook((void *)(**(DWORD **)obj ), extQueryInterfaceD1, (void **)&pQueryInterfaceD1, "QueryInterface(D1)");
//SetHook((void *)(**(DWORD **)obj + 8), extReleaseD1, (void **)&pReleaseD1, "Release(D1)");
SetHook((void *)(**(DWORD **)obj + 12), extCreateDirectDrawEX, (void **)&pCreateDirectDrawEX, "CreateDirectDraw(ex)");
SetHook((void *)(**(DWORD **)obj + 12), extCreateDirectDraw, (void **)&pCreateDirectDrawEX, "CreateDirectDraw(ex)");
SetHook((void *)(**(DWORD **)obj + 16), extDirectDrawEnumerateEX, (void **)&pDirectDrawEnumerateEX, "DirectDrawEnumerate(ex)");
}
@ -245,7 +245,7 @@ HRESULT WINAPI extDllUnregisterServer(void)
// COM bject wrappers
HRESULT WINAPI extCreateDirectDrawEX(void *ddf, GUID *pGUID, HWND hWnd, DWORD dwCoopLevelFlags, DWORD dwReserved, IUnknown *pUnkOuter, IDirectDraw **ppDirectDraw)
HRESULT WINAPI extCreateDirectDraw(void *ddf, GUID *pGUID, HWND hWnd, DWORD dwCoopLevelFlags, DWORD dwReserved, IUnknown *pUnkOuter, IDirectDraw **ppDirectDraw)
{
HRESULT res;
if(IsTraceDW){
@ -258,6 +258,14 @@ HRESULT WINAPI extCreateDirectDrawEX(void *ddf, GUID *pGUID, HWND hWnd, DWORD dw
OutTraceE("CreateDirectDraw(EX) ERROR: res=%x\n");
}
else {
// CreateDirectDraw can load an unreferences ddraw.dll module, so it's time now to hook it.
extern DirectDrawCreate_Type pDirectDrawCreate;
if(pDirectDrawCreate == NULL){
HINSTANCE hinst;
hinst=(*pLoadLibraryA)("ddraw.dll");
HookDirectDraw(hinst, 1);
FreeLibrary(hinst);
}
OutTraceDW("CreateDirectDraw(EX): guid=%s pDirectDraw=%x\n", sGUID(pGUID), *ppDirectDraw);
}

@ -269,7 +269,7 @@ void dxwCore::HideDesktop(HWND hwnd)
}
if(!(*pGetWindowRect)(hwnd, &wRect)) {
OutTrace("GetWindowRect ERROR hwnd=%x err=%d\n", hWnd, GetLastError());
OutTrace("GetWindowRect ERROR hwnd=%x err=%d\n", hwnd, GetLastError());
return;
}
@ -287,6 +287,10 @@ void dxwCore::HideDesktop(HWND hwnd)
HWND hParent = (*pGetDesktopWindow)();
if(!wHider) {
wHider=(*pCreateWindowExA)(0, "dxwnd:hider", "hider", 0, 0, 0, 0, 0, hParent, NULL, hinst, NULL);
if(!wHider) {
OutTrace("HideDesktop: CreateWindowEx ERROR hwnd=%x err=%d\n", hwnd, GetLastError());
return;
}
(*pSetWindowLongA)(wHider, GWL_STYLE, 0);
}

@ -130,7 +130,7 @@ static char *Flag6Names[32]={
static char *Flag7Names[32]={
"LIMITDDRAW", "DISABLEDISABLEALTTAB", "FIXCLIPPERAREA", "HOOKDIRECTSOUND",
"HOOKSMACKW32", "BLOCKPRIORITYCLASS", "CPUSLOWDOWN", "CPUMAXUSAGE",
"--------", "BLOCKPRIORITYCLASS", "CPUSLOWDOWN", "CPUMAXUSAGE",
"NOWINERRORS", "SUPPRESSOVERLAY", "INIT24BPP", "INIT32BPP",
"FIXGLOBALUNLOCK", "SHOWHINTS", "SKIPDEVTYPEHID", "INJECTSUSPENDED",
"SSUPPRESSDIERRORS", "HOOKNORUN", "FIXBINDTEXTURE", "ENUM16BITMODES",
@ -634,6 +634,7 @@ void AdjustWindowPos(HWND hwnd, DWORD width, DWORD height)
OutTraceE("AdjustWindowPos: ERROR err=%d at %d\n", GetLastError(), __LINE__);
}
dxw.UpdateDesktopCoordinates();
if(dxw.dwFlags2 & SUPPRESSIME) SuppressIMEWindow();
if(dxw.dwFlags4 & HIDEDESKTOP) dxw.HideDesktop(hwnd);
dxw.ShowBanner(hwnd);
@ -924,7 +925,6 @@ void SetModuleHooks()
case SYSLIBIDX_DINPUT: ShowHint(HINT_DINPUT); break;
case SYSLIBIDX_DINPUT8: ShowHint(HINT_DINPUT8); break;
case SYSLIBIDX_MSVFW:
case SYSLIBIDX_SMACK:
case SYSLIBIDX_WINMM:
case SYSLIBIDX_AVIFIL32: ShowHint(HINT_MOVIES); break;
case SYSLIBIDX_DIRECT3D:
@ -949,7 +949,6 @@ void HookModule(HMODULE base, int dxversion)
HookDirectDraw(base, dxversion); // SYSLIBIDX_DIRECTDRAW, SYSLIBIDX_DIRECT3D8, SYSLIBIDX_DIRECT3D9, SYSLIBIDX_DIRECT3D10, SYSLIBIDX_DIRECT3D10_1, SYSLIBIDX_DIRECT3D11,
HookOpenGL(base, dxw.CustomOpenGLLib); // SYSLIBIDX_OPENGL,
HookMSV4WLibs(base); // SYSLIBIDX_MSVFW -- used by Aliens & Amazons demo: what for?
HookSmackW32(base); // SYSLIBIDX_SMACK
HookDirectSound(base); // SYSLIBIDX_DSOUND
HookWinMM(base, "winmm.dll"); // SYSLIBIDX_WINMM
if(dxw.dwFlags6 & HOOKGOGLIBS) HookWinMM(base, "win32.dll"); // SYSLIBIDX_WINMM
@ -1522,11 +1521,11 @@ void HookInit(TARGETMAP *target, HWND hwnd)
// 4) configuration ask for a overlapped bordered window (dxw.dwFlags1 & FIXWINFRAME) then
// update window styles: just this window or, when FIXPARENTWIN is set, the father one as well.
if (hwnd && dxw.Windowize && dxw.IsFullScreen() && (dxw.dwFlags1 & FIXWINFRAME)) {
dxw.FixWindowFrame(dxw.hChildWnd);
if (hwnd && dxw.Windowize && dxw.IsFullScreen()) {
if(dxw.dwFlags1 & FIXWINFRAME) dxw.FixWindowFrame(dxw.hChildWnd);
AdjustWindowPos(dxw.hChildWnd, target->sizx, target->sizy);
if(dxw.dwFlags1 & FIXPARENTWIN) {
dxw.FixWindowFrame(dxw.hParentWnd);
if(dxw.dwFlags1 & FIXWINFRAME) dxw.FixWindowFrame(dxw.hParentWnd);
AdjustWindowPos(dxw.hParentWnd, target->sizx, target->sizy);
}
}

@ -6,6 +6,37 @@
#include "syslibs.h"
#include "dxhelper.h"
#if 0
BOOL dxwCore::IsValidMainWindow()
{
RECT Client;
POINT UpLeft = {0, 0};
if(!(*pGetClientRect)(hWnd, &Client)) return FALSE;
if((Client.right == 0) || (Client.bottom == 0)) return FALSE;
if(!(*pClientToScreen)(hWnd, &UpLeft)) return FALSE;
return TRUE;
}
#endif
void dxwCore::UpdateDesktopCoordinates()
{
RECT Client;
POINT UpLeft = {0, 0};
OutTraceB("dxwCore::UpdateDesktopCoordinates: OLD pos=(%d,%d) size=(%dx%d)\n", iPosX, iPosY, iSizX, iSizY);
if(!(*pGetClientRect)(hWnd, &Client)) return;
if((Client.right == 0) || (Client.bottom == 0)) return;
if(!(*pClientToScreen)(hWnd, &UpLeft)) return;
// update coordinates ....
iPosX = UpLeft.x;
iPosY = UpLeft.y;
iSizX = Client.right - Client.left;
iSizY = Client.bottom - Client.top;
OutTraceB("dxwCore::UpdateDesktopCoordinates: NEW pos=(%d,%d) size=(%dx%d)\n", iPosX, iPosY, iSizX, iSizY);
}
// GetScreenRect: returns a RECT sized as the virtual desktop
RECT dxwCore::GetScreenRect()
@ -24,18 +55,15 @@ RECT dxwCore::GetScreenRect()
RECT dxwCore::GetUnmappedScreenRect()
{
RECT Screen;
POINT upleft = {0, 0};
memset(&Screen, 0, sizeof(RECT));
(*pGetClientRect)(hWnd, &Screen);
(*pClientToScreen)(hWnd, &upleft);
Screen.top += upleft.x;
Screen.bottom += upleft.x;
Screen.left += upleft.y;
Screen.right += upleft.y;
Screen.top = iPosY;
Screen.bottom = iPosY + iSizX;
Screen.left = iPosX;
Screen.right = iPosX + iSizX;
return Screen;
}
// GetFrameOffset: return the POINT coordinates of the upper-left corner of the main window frame
// taking in account of the window frame and title bar, then it needs to query hWnd
POINT dxwCore::GetFrameOffset()
{
@ -53,21 +81,12 @@ POINT dxwCore::GetFrameOffset()
POINT dxwCore::ClientOffset(HWND hwnd)
{
RECT desktop;
POINT upleft, win0, desk0, ret;
ret.x = ret.y = 0;
(*pGetClientRect)(hWnd,&desktop);
if(!desktop.right || !desktop.bottom) return ret;
POINT upleft, ret;
upleft.x = upleft.y = 0;
(*pClientToScreen)(hwnd, &upleft);
win0 = upleft;
upleft.x = upleft.y = 0;
(*pClientToScreen)(hWnd, &upleft);
desk0 = upleft;
if (desktop.right) ret.x = (((win0.x - desk0.x) * dwScreenWidth) + (desktop.right >> 1)) / desktop.right;
if (desktop.bottom) ret.y = (((win0.y - desk0.y) * dwScreenHeight) + (desktop.bottom >> 1)) / desktop.bottom;
ret.x = (((upleft.x - iPosX) * dwScreenWidth) + (iSizX >> 1)) / iSizX;
ret.y = (((upleft.y - iPosY) * dwScreenHeight) + (iSizY >> 1)) / iSizY;
if(ret.x < 0) ret.x = 0;
if(ret.y < 0) ret.y = 0;
OutTraceB("ClientOffset: hwnd=%x offset=(%d,%d)\n", hwnd, ret.x, ret.y);
@ -78,19 +97,10 @@ POINT dxwCore::ClientOffset(HWND hwnd)
RECT dxwCore::GetWindowRect(RECT win)
{
RECT desktop;
POINT desk0;
desk0.x = desk0.y = 0;
(*pGetClientRect)(hWnd, &desktop);
(*pClientToScreen)(hWnd,&desk0);
if(!desktop.right || !desktop.bottom) return win;
win.left = (((win.left - desk0.x) * (LONG)dwScreenWidth) + (desktop.right >> 1)) / desktop.right;
win.top = (((win.top - desk0.y) * (LONG)dwScreenHeight) + (desktop.bottom >> 1)) / desktop.bottom;
win.right = (((win.right - desk0.x) * (LONG)dwScreenWidth) + (desktop.right >> 1)) / desktop.right;
win.bottom = (((win.bottom - desk0.y) * (LONG)dwScreenHeight) + (desktop.bottom >> 1)) / desktop.bottom;
win.left = (((win.left - iPosX) * (LONG)dwScreenWidth) + (iSizX >> 1)) / iSizX;
win.top = (((win.top - iPosY) * (LONG)dwScreenHeight) + (iSizY >> 1)) / iSizY;
win.right = (((win.right - iPosX) * (LONG)dwScreenWidth) + (iSizX >> 1)) / iSizX;
win.bottom = (((win.bottom - iPosY) * (LONG)dwScreenHeight) + (iSizY >> 1)) / iSizY;
return win;
}
@ -99,15 +109,10 @@ RECT dxwCore::GetWindowRect(RECT win)
RECT dxwCore::GetClientRect(RECT win)
{
RECT desktop;
(*pGetClientRect)(hWnd, &desktop);
if(!desktop.right || !desktop.bottom) return win;
win.left = ((win.left * dwScreenWidth) + (desktop.right >> 1)) / desktop.right;
win.top = ((win.top * dwScreenHeight) + (desktop.bottom >> 1)) / desktop.bottom;
win.right = ((win.right * dwScreenWidth) + (desktop.right >> 1)) / desktop.right;
win.bottom = ((win.bottom * dwScreenHeight) + (desktop.bottom >> 1)) / desktop.bottom;
win.left = ((win.left * dwScreenWidth) + (iSizX >> 1)) / iSizX;
win.top = ((win.top * dwScreenHeight) + (iSizY >> 1)) / iSizY;
win.right = ((win.right * dwScreenWidth) + (iSizX >> 1)) / iSizX;
win.bottom = ((win.bottom * dwScreenHeight) + (iSizY >> 1)) / iSizY;
return win;
}
@ -144,16 +149,7 @@ POINT dxwCore::SubCoordinates(POINT p1, POINT p2)
RECT dxwCore::MapWindowRect(LPRECT lpRect)
{
POINT UpLeft={0,0};
RECT RetRect;
RECT ClientRect;
if (!(*pGetClientRect)(hWnd, &ClientRect)){
OutTraceE("GetClientRect ERROR: err=%d hwnd=%x at %d\n", GetLastError(), hWnd, __LINE__);
// v2.02.71: return a void area to prevent blitting to wrong area
ClientRect.top=ClientRect.left=ClientRect.right=ClientRect.bottom=0;
return ClientRect;
}
if(!Windowize){
if(lpRect)
@ -166,264 +162,135 @@ RECT dxwCore::MapWindowRect(LPRECT lpRect)
return RetRect;
}
RetRect=ClientRect;
if(lpRect){
LONG Width, Height;
Width = ClientRect.right;
Height = ClientRect.bottom;
RetRect.left = (lpRect->left * Width / dwScreenWidth);
RetRect.right = (lpRect->right * Width / dwScreenWidth);
RetRect.top = (lpRect->top * Height / dwScreenHeight);
RetRect.bottom = (lpRect->bottom * Height / dwScreenHeight);
RetRect.left = iPosX + (lpRect->left * iSizX / dwScreenWidth);
RetRect.right = iPosX + (lpRect->right * iSizX / dwScreenWidth);
RetRect.top = iPosY + (lpRect->top * iSizY / dwScreenHeight);
RetRect.bottom = iPosY + (lpRect->bottom * iSizY / dwScreenHeight);
}
else{
RetRect.left = ClientRect.left;
RetRect.right = ClientRect.right;
RetRect.top = ClientRect.top;
RetRect.bottom = ClientRect.bottom;
}
if(!(*pClientToScreen)(hWnd, &UpLeft)){
OutTraceE("ClientToScreen ERROR: err=%d hwnd=%x at %d\n", GetLastError(), hWnd, __LINE__);
}
if(!OffsetRect(&RetRect ,UpLeft.x, UpLeft.y)){
OutTraceE("OffsetRect ERROR: err=%d hwnd=%x at %d\n", GetLastError(), hWnd, __LINE__);
RetRect.left = iPosX;
RetRect.right = iPosX + iSizX;
RetRect.top = iPosY;
RetRect.bottom = iPosY + iSizY;
}
return RetRect;
}
void dxwCore::MapWindow(LPRECT rect)
{
RECT client;
POINT upleft = {0,0};
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
(*pClientToScreen)(hWnd, &upleft);
rect->left= upleft.x + (((rect->left * client.right) + (dwScreenWidth >> 1)) / (int)dwScreenWidth);
rect->top= upleft.y + (((rect->top * client.bottom) + (dwScreenHeight >> 1)) / (int)dwScreenHeight);
rect->right= upleft.x + (((rect->right * client.right) + (dwScreenWidth >> 1)) / (int)dwScreenWidth);
rect->bottom= upleft.y + (((rect->bottom * client.bottom) + (dwScreenHeight >> 1)) / (int)dwScreenHeight);
rect->left= iPosX + (((rect->left * iSizX) + (dwScreenWidth >> 1)) / (int)dwScreenWidth);
rect->top= iPosY + (((rect->top * iSizY) + (dwScreenHeight >> 1)) / (int)dwScreenHeight);
rect->right= iPosX + (((rect->right * iSizX) + (dwScreenWidth >> 1)) / (int)dwScreenWidth);
rect->bottom= iPosY + (((rect->bottom * iSizY) + (dwScreenHeight >> 1)) / (int)dwScreenHeight);
}
void dxwCore::MapWindow(int *nXDest, int *nYDest, int *nWDest, int *nHDest)
{
RECT client;
POINT upleft = {0,0};
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
if(!(*pClientToScreen)(hWnd, &upleft)) {
OutTraceE("dxwCore::MapClient ERROR: ClientToScreen hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
*nXDest= upleft.x + (((*nXDest * client.right) + (dwScreenWidth >> 1)) / (int)dwScreenWidth);
*nYDest= upleft.y + (((*nYDest * client.bottom) + (dwScreenHeight >> 1)) / (int)dwScreenHeight);
*nWDest= ((*nWDest * client.right) + (dwScreenWidth >> 1)) / (int)dwScreenWidth;
*nHDest= ((*nHDest * client.bottom) + (dwScreenHeight >> 1)) / (int)dwScreenHeight;
*nXDest= iPosX + (((*nXDest * iSizX) + (dwScreenWidth >> 1)) / (int)dwScreenWidth);
*nYDest= iPosY + (((*nYDest * iSizY) + (dwScreenHeight >> 1)) / (int)dwScreenHeight);
*nWDest= ((*nWDest * iSizX) + (dwScreenWidth >> 1)) / (int)dwScreenWidth;
*nHDest= ((*nHDest * iSizY) + (dwScreenHeight >> 1)) / (int)dwScreenHeight;
}
void dxwCore::MapWindow(LPPOINT lppoint)
{
RECT client;
POINT upleft = {0,0};
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
(*pClientToScreen)(hWnd, &upleft);
lppoint->x = upleft.x + (((lppoint->x * client.right) + (dwScreenWidth >> 1)) / dwScreenWidth);
lppoint->y = upleft.y + (((lppoint->y * client.bottom) + (dwScreenHeight >> 1)) / dwScreenHeight);
lppoint->x = iPosX + (((lppoint->x * iSizX) + (dwScreenWidth >> 1)) / dwScreenWidth);
lppoint->y = iPosY + (((lppoint->y * iSizY) + (dwScreenHeight >> 1)) / dwScreenHeight);
}
// MapClient, MapClientRect: transforms the client virtual coordinates of the virtual desktop into real ones
RECT dxwCore::MapClientRect(LPRECT lpRect)
{
// same as MapClient, but taking in proper account aspect ratio & virtual desktop position
RECT RetRect;
RECT ClientRect;
RECT NullRect={0, 0, 0, 0};
if (!(*pGetClientRect)(hWnd, &ClientRect)) return NullRect;
RetRect=ClientRect;
if(lpRect){
LONG Width, Height;
Width = ClientRect.right;
Height = ClientRect.bottom;
RetRect.left = (lpRect->left * Width / dwScreenWidth);
RetRect.right = (lpRect->right * Width / dwScreenWidth);
RetRect.top = (lpRect->top * Height / dwScreenHeight);
RetRect.bottom = (lpRect->bottom * Height / dwScreenHeight);
RetRect.left = (lpRect->left * iSizX / dwScreenWidth);
RetRect.right = (lpRect->right * iSizX / dwScreenWidth);
RetRect.top = (lpRect->top * iSizY / dwScreenHeight);
RetRect.bottom = (lpRect->bottom * iSizY / dwScreenHeight);
}
else{
RetRect.left = ClientRect.left;
RetRect.right = ClientRect.right;
RetRect.top = ClientRect.top;
RetRect.bottom = ClientRect.bottom;
RetRect.left = 0;
RetRect.right = iSizX;
RetRect.top = 0;
RetRect.bottom = iSizY;
}
return RetRect;
}
void dxwCore::MapClient(LPRECT rect)
{
RECT client;
int w, h;
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
w = client.right ? client.right : iSizX;
h = client.bottom ? client.bottom : iSizY;
rect->left= ((rect->left * w)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
rect->top= ((rect->top * h)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
rect->right= ((rect->right * w)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
rect->bottom= ((rect->bottom * h)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
rect->left= ((rect->left * iSizX)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
rect->top= ((rect->top * iSizY)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
rect->right= ((rect->right * iSizX)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
rect->bottom= ((rect->bottom * iSizY)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
}
void dxwCore::MapClient(int *nXDest, int *nYDest, int *nWDest, int *nHDest)
{
RECT client;
int w, h;
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
w = client.right ? client.right : iSizX;
h = client.bottom ? client.bottom : iSizY;
*nXDest= ((*nXDest * w)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
*nYDest= ((*nYDest * h)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
*nWDest= ((*nWDest * w)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
*nHDest= ((*nHDest * h)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
*nXDest= ((*nXDest * iSizX)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
*nYDest= ((*nYDest * iSizY)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
*nWDest= ((*nWDest * iSizX)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
*nHDest= ((*nHDest * iSizY)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
}
void dxwCore::MapClient(LPPOINT lppoint)
{
RECT client;
int w, h;
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
w = client.right ? client.right : iSizX;
h = client.bottom ? client.bottom : iSizY;
lppoint->x= ((lppoint->x * w)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
lppoint->y= ((lppoint->y * h)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
lppoint->x= ((lppoint->x * iSizX)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
lppoint->y= ((lppoint->y * iSizY)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
}
void dxwCore::MapClient(int *nXDest, int *nYDest)
{
RECT client;
int w, h;
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
w = client.right ? client.right : iSizX;
h = client.bottom ? client.bottom : iSizY;
*nXDest= ((*nXDest * w)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
*nYDest= ((*nYDest * h)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
*nXDest= ((*nXDest * iSizX)+(dwScreenWidth >> 1)) / (int)dwScreenWidth;
*nYDest= ((*nYDest * iSizY)+(dwScreenHeight >> 1)) / (int)dwScreenHeight;
}
// UnmapWindow: transforms the window real coordinates of the real desktop into virtual ones
void dxwCore::UnmapWindow(LPRECT rect)
{
RECT client;
POINT upleft = {0,0};
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
(*pClientToScreen)(hWnd, &upleft);
if((client.right == 0) || (client.bottom == 0)) return;
rect->left= ((rect->left - upleft.x) * (int)dwScreenWidth) / client.right;
rect->top= ((rect->top - upleft.y) * (int)dwScreenHeight) / client.bottom;
rect->right= ((rect->right - upleft.x) * (int)dwScreenWidth) / client.right;
rect->bottom= ((rect->bottom - upleft.y) * (int)dwScreenHeight) / client.bottom;
rect->left= ((rect->left - iPosX) * (int)dwScreenWidth) / iSizX;
rect->top= ((rect->top - iPosY) * (int)dwScreenHeight) / iSizY;
rect->right= ((rect->right - iPosX) * (int)dwScreenWidth) / iSizX;
rect->bottom= ((rect->bottom - iPosY) * (int)dwScreenHeight) / iSizY;
}
void dxwCore::UnmapWindow(LPPOINT point)
{
RECT client;
POINT upleft = {0,0};
if(!(*pGetClientRect)(hWnd, &client)) return;
(*pClientToScreen)(hWnd, &upleft);
if((client.right == 0) || (client.bottom == 0)) return;
point->x= ((point->x - upleft.x) * (int)dwScreenWidth) / client.right;
point->y= ((point->y - upleft.y) * (int)dwScreenHeight) / client.bottom;
point->x= ((point->x - iPosX) * (int)dwScreenWidth) / iSizX;
point->y= ((point->y - iPosY) * (int)dwScreenHeight) / iSizY;
}
// UnmapClient: transforms the client real coordinates of the real desktop into virtual ones
void dxwCore::UnmapClient(LPPOINT lppoint)
{
RECT client;
int w, h;
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
w = client.right ? client.right : iSizX;
h = client.bottom ? client.bottom : iSizY;
if(w) lppoint->x = ((lppoint->x * (int)dwScreenWidth) + (w >> 1)) / w;
if(h) lppoint->y = ((lppoint->y * (int)dwScreenHeight) + (h >> 1)) / h;
lppoint->x = ((lppoint->x * (int)dwScreenWidth) + (iSizX >> 1)) / iSizX;
lppoint->y = ((lppoint->y * (int)dwScreenHeight) + (iSizY >> 1)) / iSizY;
}
void dxwCore::UnmapClient(int *nXDest, int *nYDest)
{
RECT client;
int w, h;
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
w = client.right ? client.right : iSizX;
h = client.bottom ? client.bottom : iSizY;
if(w) *nXDest = ((*nXDest * (int)dwScreenWidth) + (w >> 1)) / w;
if(h) *nYDest = ((*nYDest * (int)dwScreenHeight) + (h >> 1)) / h;
*nXDest = ((*nXDest * (int)dwScreenWidth) + (iSizX >> 1)) / iSizX;
*nYDest = ((*nYDest * (int)dwScreenHeight) + (iSizY >> 1)) / iSizY;
}
void dxwCore::UnmapClient(int *nXDest, int *nYDest, int *nWidth, int *nHeight)
{
RECT client;
int w, h;
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
w = client.right ? client.right : iSizX;
h = client.bottom ? client.bottom : iSizY;
if(w) *nXDest = ((*nXDest * (int)dwScreenWidth) + (w >> 1)) / w;
if(h) *nYDest = ((*nYDest * (int)dwScreenHeight) + (h >> 1)) / h;
if(w) *nWidth = ((*nWidth * (int)dwScreenWidth) + (w >> 1)) / w;
if(h) *nHeight = ((*nHeight * (int)dwScreenHeight) + (h >> 1)) / h;
*nXDest = ((*nXDest * (int)dwScreenWidth) + (iSizX >> 1)) / iSizX;
*nYDest = ((*nYDest * (int)dwScreenHeight) + (iSizY >> 1)) / iSizY;
*nWidth = ((*nWidth * (int)dwScreenWidth) + (iSizX >> 1)) / iSizX;
*nHeight = ((*nHeight * (int)dwScreenHeight) + (iSizY >> 1)) / iSizY;
}
void dxwCore::UnmapClient(LPRECT lpRect)
{
RECT client;
int w, h;
if(!(*pGetClientRect)(hWnd, &client)) {
OutTraceE("dxwCore::MapClient ERROR: GetClientRect hwnd=%x err=%d\n", hWnd, GetLastError());
return;
}
w = client.right ? client.right : iSizX;
h = client.bottom ? client.bottom : iSizY;
if(w) {
lpRect->left = ((lpRect->left * (int)dwScreenWidth) + (w >> 1)) / w;
lpRect->right = ((lpRect->right * (int)dwScreenWidth) + (w >> 1)) / w;
}
if(h) {
lpRect->top = ((lpRect->top * (int)dwScreenHeight) + (h >> 1)) / h;
lpRect->bottom = ((lpRect->bottom * (int)dwScreenHeight) + (h >> 1)) / h;
}
lpRect->left = ((lpRect->left * (int)dwScreenWidth) + (iSizX >> 1)) / iSizX;
lpRect->right = ((lpRect->right * (int)dwScreenWidth) + (iSizX >> 1)) / iSizX;
lpRect->top = ((lpRect->top * (int)dwScreenHeight) + (iSizY >> 1)) / iSizY;
lpRect->bottom = ((lpRect->bottom * (int)dwScreenHeight) + (iSizY >> 1)) / iSizY;
}
// GetMonitorWorkarea: retrieves the desktop coordinates of the whole desktop (id == -1) or of a given monitor (id >= 0)
@ -484,6 +351,7 @@ void dxwCore::GetMonitorWorkarea(LPRECT lpRect, BOOL WorkArea)
// v.2.1.80: unified positioning logic into CalculateWindowPos routine
// now taking in account for window menus (see "Alien Cabal")
// sets the correct values in wp LPWINDOWPOS structure, but doesn't do any window update
void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWPOS wp)
{
@ -494,8 +362,16 @@ void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWP
switch(dxw.Coordinates){
case DXW_DESKTOP_CENTER:
MaxX = dxw.iSizX;
MaxY = dxw.iSizY;
if(bAutoScale){
MaxX = GetScreenWidth();
MaxY = GetScreenHeight();
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxX <<= 1; // double
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxY <<= 1; // double
}
else{
MaxX = iSizX;
MaxY = iSizY;
}
if (!MaxX) {
MaxX = width;
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxX <<= 1; // double
@ -525,14 +401,28 @@ void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWP
break;
case DXW_SET_COORDINATES:
default:
rect.left = dxw.iPosX;
rect.top = dxw.iPosY; //v2.02.09
MaxX = dxw.iSizX;
MaxY = dxw.iSizY;
if (!MaxX) MaxX = width;
if (!MaxY) MaxY = height;
rect.right = dxw.iPosX + MaxX;
rect.bottom = dxw.iPosY + MaxY; //v2.02.09
if(bAutoScale){
MaxX = GetScreenWidth();
MaxY = GetScreenHeight();
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxX <<= 1; // double
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxY <<= 1; // double
}
else{
MaxX = iSizX;
MaxY = iSizY;
}
if (!MaxX) {
MaxX = width;
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxX <<= 1; // double
}
if (!MaxY) {
MaxY = height;
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxY <<= 1; // double
}
rect.left = iPosX;
rect.top = iPosY; //v2.02.09
rect.right = iPosX + MaxX;
rect.bottom = iPosY + MaxY; //v2.02.09
break;
}
@ -584,3 +474,16 @@ void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWP
wp->cx=rect.right-rect.left;
wp->cy=rect.bottom-rect.top;
}
void dxwCore::AutoScale()
{
WINDOWPOS wp;
CalculateWindowPos(hWnd, dwScreenWidth, dwScreenHeight, &wp);
OutTrace("AutoScale: new pos=(%d,%d) size=(%dx%d)\n", wp.x, wp.y, wp.cx, wp.cy);
if(!(*pSetWindowPos)(hWnd, 0, wp.x, wp.y, wp.cx, wp.cy, 0)){
OutTraceE("AutoScale: SetWindowPos ERROR err=%d at %d\n", GetLastError(), __LINE__);
}
// need to ShowWindow(SW_SHOW) to make new coordinates active
(*pShowWindow)(hWnd, SW_SHOW);
UpdateDesktopCoordinates();
}

@ -133,6 +133,11 @@ void dxwCore::InitTarget(TARGETMAP *target)
// Aspect Ratio from window size, or traditional 4:3 by default
iRatioX = iSizX ? iSizX : 800;
iRatioY = iSizY ? iSizY : 600;
// AutoScale: when iSizX == iSizY == 0, size is set to current screen resolution
bAutoScale = !(iSizX && iSizY);
// guessed initial screen resolution
dwScreenWidth = 800;
dwScreenHeight = 600;
SlowRatio = target->SlowRatio;

@ -86,6 +86,7 @@ public: // methods
void UnmapWindow(LPRECT);
void UnmapWindow(LPPOINT);
void FixWorkarea(LPRECT);
void UpdateDesktopCoordinates();
RECT GetScreenRect(void);
RECT GetUnmappedScreenRect();
RECT GetWindowRect(RECT);
@ -95,6 +96,7 @@ public: // methods
RECT AddCoordinates(RECT, POINT);
POINT SubCoordinates(POINT, POINT);
POINT ClientOffset(HWND);
void AutoScale();
void ScreenRefresh(void);
BOOL HandleFPS(void);
BOOL ishWndFPS(HWND);
@ -169,10 +171,10 @@ public: // simple data variables
DWORD SwapEffect;
char *gsModules;
int TimeShift;
short iPosX;
short iPosY;
short iSizX;
short iSizY;
long iPosX;
long iPosY;
long iSizX;
long iSizY;
int iRatioX;
int iRatioY;
char *CustomOpenGLLib;
@ -189,6 +191,7 @@ public: // simple data variables
BOOL TimeFreeze;
RECT VirtualDesktop;
BOOL bHintActive;
BOOL bAutoScale;
// Implementation
protected:

@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "TlHelp32.h"
#define VERSION "2.03.87"
#define VERSION "2.03.88.fix1"
#define DDTHREADLOCK 1
//#define LOCKTHREADS

Some files were not shown because too many files have changed in this diff Show More