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

v2_03_97_src

Former-commit-id: 289f71bcdc4182d3ca341a02a9ed0990ea9429a5
This commit is contained in:
gho tik 2016-11-15 11:48:12 -05:00 committed by Refael ACkermann
parent d5e3bf8bc5
commit fd5d550b51
46 changed files with 558 additions and 67 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eca050e2e867b9ccd61ce1e78b991f48504d208b1454e486e76ace04e7763b5f
oid sha256:e35a6dc22468717d75b50c1374ba43157b43668ba28417be5e8201d0d8c0d010
size 700928

View File

@ -0,0 +1,35 @@
[target]
title0=Tony Hawk's Pro Skater 3
path0=F:\Games\Tony Hawk's Pro Skater 3\Skate3.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=136314914
flagg0=1207959552
flagh0=20
flagi0=134217732
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
initresw0=800
initresh0=600

View File

@ -1,20 +1,20 @@
[target]
title0=Warhammer 40K Rites of War
path0=D:\Games\Warhammer 40K Rites Of War\game\RoW.exe
path0=F:\Games\Warhammer 40K Rites Of War\RoW.exe
launchpath0=
module0=
opengllib0=
notes0=After installing the game copy the "Map" -folder from the CD to the \nRites of War\ directory on your hard drive.\n\nThis will fix the issue where the game crashes when starting a campaign.
notes0=Courtesy of Riitaoja:\n\nAfter installing the game copy the "Map" -folder from the CD to the \nRites of War\ directory on your hard drive.\n\nThis will fix the issue where the game crashes when starting a campaign.\n\nSetting Time limit to 1mSec together with "Updates bigger than 1/4 screen size" \nslows down the battle scrolling without affecting the mouse or animations speed,\nnor reducing the FPS rate.\nVery adviseable.
registry0=
ver0=0
coord0=0
flag0=685772838
flagg0=1207959680
flag0=136335394
flagg0=1207963776
flagh0=20
flagi0=138412036
flagj0=4224
flagj0=4480
flagk0=65536
flagl0=0
flagl0=1073741824
flagm0=0
tflag0=0
dflag0=0
@ -22,10 +22,14 @@ posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
maxfps0=1
initts0=0
winver0=0
maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=2
startfolder0=
monitorid0=-1
initresw0=800
initresh0=600

5
build/exports/dxwnd.ini Normal file
View File

@ -0,0 +1,5 @@
[window]
posx=1235
posy=551
sizx=320
sizy=200

View File

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

View File

@ -81,7 +81,7 @@
</td>
<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>
<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. For additional examples, see </span><a class="rvts16" href="SnowBoardRacer.html">Examples &gt; SnowBoard: Racer</a><span class="rvts6">.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/dxwnd_pitch.png"></p>
</td>

View File

@ -73,7 +73,7 @@
</td>
<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 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. For an example, see </span><a class="rvts16" href="SnowBoardRacer.html">Examples &gt; SnowBoard: Racer</a><span class="rvts6">.</span></p>
</td>
</tr>
<tr valign="top">
@ -105,7 +105,7 @@
</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 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. This option may help when a Direct3D8/9 program running on Windows 10 lacks the proper video mode and terminates.</span></p>
</td>
</tr>
</table>

View File

@ -85,11 +85,11 @@
</td>
</tr>
<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 width="247" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Lock color depth</span></p>
</td>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">BACKBUFATTACH</span></p>
<td width="152" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LOCKCOLORDEPTH</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 width="1134" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Locks the DirectDraw color depth to the current desktop value (used in SetDisplayMode). If a game's color depth can't be corrected in any other way, use this flag. This option is used for the game "Ahlgrens Bilspelet."</span></p>
</td>
</tr>
<tr valign="top">
@ -185,7 +185,7 @@
</td>
<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 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. For an example, see </span><a class="rvts16" href="RobinHoodTheLegendofSherwood.html">Examples &gt; Robin Hood - The Legend of Sherwood</a><span class="rvts6">.</span></p>
</td>
</tr>
</table>

View File

@ -95,17 +95,17 @@
<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 width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SKIPDEVTYPEHID</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">???</span></p>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Newer versions of Windows may have access to new types of HID (human interface device) that can interfere with old games that can only recognize the three traditional devices (mouse, keyboard, and joystick). This flag masks the presence of such devices. It fixes a crash in the game "Jetboat Superchamps 2," the only known game that requires this setting.</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 width="244" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPRESSDIERRORS</span></p>
</td>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">???</span></p>
<td width="1042" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">This flag forces some DirectInput operations to return a successful completion rather than an error even in the event of a failure. Some programs work more reliably with this flag turned on.</span></p>
</td>
</tr>
<tr valign="top">
@ -113,7 +113,7 @@
</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 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. Use this flag when the program shows DirectInput errors related to keyboard access. The game "Planet of the Apes" can't process the PrintScreen key without this flag.</span></p>
</td>
</tr>
</table>

70
build/help/Examples.html Normal file
View File

@ -0,0 +1,70 @@
<html>
<head>
<title>Examples</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("Examples");
}
});
</script>
</head>
<body>
<div id="topic_header">
<div id="topic_header_content">
<h1 id="topic_header_text">Examples</h1>
</div>
<div id="topic_header_nav">
<a href="Keymapping.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="SnowBoardRacer.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
</div>
<div id="topic_content">
<p></p>
<p class="rvps2"><span class="rvts6">Here you will find examples of common problems and DxWnd options that resolve them.</span></p>
<p></p>
</div>
<div id="topic_footer">
<div id="topic_footer_content">
Copyright &copy; 2016 by GHO. All Rights Reserved.</div>
</div>
</body>
</html>

View File

@ -73,7 +73,7 @@
</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 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 (indicated by a yellow icon; see </span><a class="rvts16" href="TheInterface.html">The Interface</a><span class="rvts6">). 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">

View File

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

View File

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

View File

@ -49,7 +49,7 @@
<div id="topic_header_nav">
<a href="Libs.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Glide3DFX.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Smack.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Compatibility.html"><img src="img/arrow_right.png" alt="Next"/></a>

View File

@ -51,7 +51,7 @@
<a href="GDI.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Glide3DFX.html"><img src="img/arrow_right.png" alt="Next"/></a>
<a href="Smack.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
@ -93,6 +93,14 @@
</td>
</tr>
<tr valign="top">
<td width="168" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Hook glut32</span></p>
</td>
<td width="141" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKGLUT32</span></p>
</td>
<td width="1228" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">This flag hooks the glut32.dll OpenGL extension library to fix issues with some OpenGL games.</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="rvts17"><br/></span></p>

View File

@ -91,9 +91,9 @@
<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 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">??? Allows you to choose the default monitor or a specific one from the drop-down menu.</span></p>
<td width="1213" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">For almost all window position modes (except the "X,Y coordinates" mode), multi-screen configurations require you to specify which monitor the configuration refers to. For instance, if you select "centered," you probably want it centered on a specific monitor rather than in the entire extended desktop. The drop-down selector has a "def." ("default") option, referring to the primary monitor, and a number for each specific monitor.</span></p>
</td>
</tr>
<tr valign="top">

View File

@ -0,0 +1,80 @@
<html>
<head>
<title>Robin Hood - The Legend of Sherwood</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("RobinHoodTheLegendofSherwood");
}
});
</script>
</head>
<body>
<div id="topic_header">
<div id="topic_header_content">
<h1 id="topic_header_text">Robin Hood - The Legend of Sherwood</h1>
<div id="topic_breadcrumb">
<a href="Examples.html">Examples</a> &rsaquo;&rsaquo; </div>
</div>
<div id="topic_header_nav">
<a href="Examples.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="SnowBoardRacer.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Specialkeys.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
</div>
<div id="topic_content">
<p></p>
<p class="rvps2"><span class="rvts6">The image below shows the menu for the game "Robin Hood - The Legend of Sherwood."</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/default.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">The cursor leaves a trail. The Compensate Flip emulation option (see </span><a class="rvts16" href="DirectDrawSurfacehandling.html">DirectX &gt; DirectDraw Surface Handling</a><span class="rvts6">) fixes this issue:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/flip.png"></p>
<p></p>
</div>
<div id="topic_footer">
<div id="topic_footer_content">
Copyright &copy; 2016 by GHO. All Rights Reserved.</div>
</div>
</body>
</html>

View File

@ -65,33 +65,49 @@
<tr valign="top">
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">SVGA modes</span></p>
</td>
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">SUPPORTSVGA</span></p>
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPORTSVGA</span></p>
</td>
<td width="1198" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">The classic 4:3 screen resolutions starting from 320x200 up to 1280x800.</span></p>
<td width="1280" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">The classic 4:3 screen resolutions starting from 320x200 up to 1280x800.</span></p>
</td>
</tr>
<tr valign="top">
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">HDMI modes</span></p>
</td>
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">SUPPORTHDMI</span></p>
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">SUPPORTHDMI</span></p>
</td>
<td width="1198" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">The typical 16:9 resolutions from 640x360 up to 1980x1080.</span></p>
<td width="1280" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">The typical 16:9 resolutions from 640x360 up to 1980x1080.</span></p>
</td>
</tr>
<tr valign="top">
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Monitor native modes</span></p>
</td>
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">NATIVERES</span></p>
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">NATIVERES</span></p>
</td>
<td width="1198" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Whatever resolution is returned from the video card.</span></p>
<td width="1280" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Whatever resolution is returned from the video card.</span></p>
</td>
</tr>
<tr valign="top">
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Initial resolution</span></p>
</td>
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">INITIALRES</span></p>
</td>
<td width="1280" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set the initial screen resolution to the width and height given in the adjacent text fields.</span></p>
</td>
</tr>
<tr valign="top">
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Max resolution</span></p>
</td>
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">MAXIMUMRES</span></p>
</td>
<td width="1280" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Set the maximum screen resolution to the width and height given in the adjacent text fields.</span></p>
</td>
</tr>
<tr valign="top">
<td width="128" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Limit resolution</span></p>
</td>
<td width="211" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">LIMITSCREENRES</span></p>
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">LIMITSCREENRES</span></p>
</td>
<td width="1198" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disables any resolution higher than the selected value. By default, the choice is "unlimited", that means no resolution is disabled.</span></p>
<td width="1280" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Disables any resolution higher than the selected value. By default, the choice is "unlimited", that means no resolution is disabled.</span></p>
</td>
</tr>
</table>

92
build/help/Smack.html Normal file
View File

@ -0,0 +1,92 @@
<html>
<head>
<title>Smack</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("Smack");
}
});
</script>
</head>
<body>
<div id="topic_header">
<div id="topic_header_content">
<h1 id="topic_header_text">Smack</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 Smackw32</span></p>
</td>
<td width="156" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">HOOKSMACKW32</span></p>
</td>
<td width="1271" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Enables Smack API hooking.</span></p>
</td>
</tr>
<tr valign="top">
<td width="110" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix Smack loop</span></p>
</td>
<td width="156" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXSMACKLOOP</span></p>
</td>
<td width="1271" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fixes a Smack loop by inserting processmessage and blit operations between frames. During the playback of Smack movies (which typically have a .smk extension), the screen may not get updated, which is detected by the OS and killed as a nonresponsive program. The intro movies in the game "Galapagos" benefit from this flag.</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>

View File

@ -0,0 +1,84 @@
<html>
<head>
<title>SnowBoard: Racer</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("SnowBoardRacer");
}
});
</script>
</head>
<body>
<div id="topic_header">
<div id="topic_header_content">
<h1 id="topic_header_text">SnowBoard: Racer</h1>
<div id="topic_breadcrumb">
<a href="Examples.html">Examples</a> &rsaquo;&rsaquo; </div>
</div>
<div id="topic_header_nav">
<a href="Examples.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="Examples.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="RobinHoodTheLegendofSherwood.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
</div>
<div id="topic_content">
<p></p>
<p class="rvps2"><span class="rvts6">The image below shows the menu for the game "SnowBoard: Racer."</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/lockfix1.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">The menu options appear heavily slanted. The Lock/Unlock Pitch Fix option (</span><a class="rvts16" href="Ddrawtweaks.html">see DirectX(2) &gt; Ddraw tweaks</a><span class="rvts6">) fixes this issue:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/lockfix2.png"></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6">The snowboard above the menu options is partially invisible. The Clean ZBUFFER @0.0 option (see </span><a class="rvts16" href="Direct3Dtweaks.html">Direct3D &gt; Direct3D tweaks</a><span class="rvts6">) fixes this issue:</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><img alt="" style="padding : 1px;" src="lib/clear0fix.png"></p>
<p></p>
</div>
<div id="topic_footer">
<div id="topic_footer_content">
Copyright &copy; 2016 by GHO. All Rights Reserved.</div>
</div>
</body>
</html>

View File

@ -45,7 +45,7 @@
</div>
<div id="topic_header_nav">
<a href="Keymapping.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="RobinHoodTheLegendofSherwood.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="Commandlinearguments.html"><img src="img/arrow_right.png" alt="Next"/></a>

View File

@ -65,25 +65,25 @@
<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="146" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><img alt="" style="padding : 1px;" src="lib/NewItem.png"></p>
<td width="146" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><img alt="" style="padding : 1px;" src="lib/NewItem0.png"></p>
</td>
<td width="1397" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">blank icon: the program's given path cannot be found and the entry won't work until the path is corrected.</span></p>
</td>
</tr>
<tr valign="top">
<td width="146" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><img alt="" style="padding : 1px;" src="lib/NewItem1.png"></p>
<td width="146" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><img alt="" style="padding : 1px;" src="lib/NewItem110.png"></p>
</td>
<td width="1397" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">gray icon: the hook is not enabled: this program can be activated by the DxWnd menu, but won't be windowed.</span></p>
</td>
</tr>
<tr valign="top">
<td width="146" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><img alt="" style="padding : 1px;" src="lib/NewItem2.png"></p>
<td width="146" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><img alt="" style="padding : 1px;" src="lib/NewItem27.png"></p>
</td>
<td width="1397" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">green icon: the hook is enabled and the program will be windowed when run from the DxWnd interface or from its normal executable or shortcut.</span></p>
</td>
</tr>
<tr valign="top">
<td width="146" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><img alt="" style="padding : 1px;" src="lib/NewItem3.png"></p>
<td width="146" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><img alt="" style="padding : 1px;" src="lib/NewItem34.png"></p>
</td>
<td width="1397" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">red icon: the program requires code injection, so it will need to be activated from the DxWnd interface only.</span></p>
</td>

View File

@ -196,6 +196,14 @@
<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>
</tr>
<tr valign="top">
<td width="190" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix FreeLibrary</span></p>
</td>
<td width="173" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">FIXFREELIBRARY</span></p>
</td>
<td width="1170" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Fix FreeLibrary, simulating a return code of 0 (error) when attempting to free an unallocated module as Windows 95 and 98 would. Use this flag to fix the endless loop problem in "Heavy Gear" version 1.2.</span></p>
</td>
</tr>
</table>
</div>
<p></p>

View File

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

File diff suppressed because one or more lines are too long

BIN
build/help/lib/NewItem0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

BIN
build/help/lib/default.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
build/help/lib/flip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

BIN
build/help/lib/lockfix1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

BIN
build/help/lib/lockfix2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

View File

@ -642,11 +642,11 @@
target="FrameMain">
OpenGL</a>
</li><li class="" id="Glide3DFX" data="">
</li><li class="" id="Smack" data="">
<a
href="Glide3DFX.html"
href="Smack.html"
target="FrameMain">
Glide (3DFX)</a>
Smack</a>
</li><li class="" id="MMmultimedia" data="">
<a
@ -738,6 +738,24 @@
target="FrameMain">
Keymapping</a>
</li></ul></li><li class="folder" id="Examples" data="">
<a
href="Examples.html"
target="FrameMain">
Examples</a>
<ul><li class="" id="SnowBoardRacer" data="">
<a
href="SnowBoardRacer.html"
target="FrameMain">
SnowBoard: Racer</a>
</li><li class="" id="RobinHoodTheLegendofSherwood" data="">
<a
href="RobinHoodTheLegendofSherwood.html"
target="FrameMain">
Robin Hood - The Legend of Sherwood</a>
</li></ul></li><li class="" id="Specialkeys" data="">
<a
href="Specialkeys.html"

View File

@ -1349,3 +1349,6 @@ fix: CreateDIBSection wrapper log messages
fix: PREVENTMAXIMIZE window size checks: should avoid size bigger than initial size, bugged coding inhibited any growth.
fix: GUI setting of execution folder when running "Launcher" task.
v2.03.97.rc1:
fix: emulation of proper ddraw surface capabilities in GetSurfaceDesc() and GetCaps() methods. Seems to cope with needs of most (all?) games.
fix: recovered handling of WM_ERASEBKGND message. Fixes missing backgrounds in "Adrenix" and "Adrenix 3D" games.

View File

@ -3352,7 +3352,7 @@ static HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreate
// v2.3.59: same extra reference is needed by "Wahammer Chaos Gate" that uses ddraw interface release 2
// v2.3.72: fixed previous fix: condition is <=2, not >=2 !
// Be aware that it may perhaps become <=3, if we get the same problem elsewhere
// if((dxw.dwDDVersion<=2) && dxw.Windowize) lpdd->AddRef();
// v2.3.96: deleted the if(Windowized) condition: AddRef is needed also in fullscreen mode.
if(dxw.dwDDVersion<=2) lpdd->AddRef();
return DD_OK;
@ -3671,7 +3671,6 @@ HRESULT WINAPI PrimaryStretchBlt(int dxversion, Blt_Type pBlt, LPDIRECTDRAWSURFA
res= (*pBlt)(lpdds, lpdestrect, lpddsTmp, &TmpRect, DDBLT_WAIT, 0);
}
if(res) OutTraceE("PrimaryStretchBlt: BltFast ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
//if(res && !dxw.Windowize) RestoreDDrawSurfaces();
if(res == DDERR_SURFACELOST){
if(lpdds->IsLost()) {
res = lpdds->Restore();
@ -5542,25 +5541,38 @@ HRESULT WINAPI cbDump(LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext)
return 1;
}
// BEWARE!!!
// in order to meet Direct3D expectations, it seems that we require this policy:
// when a ZBUFFER surface is created, its dwCaps value must be saved and restored identically on GetSurfaceDesc and GetCaps
// A surface is known to be virtually a primary or backbuffer only by looking at the surfaces stack dxwss
// On the contrary, a surface is known to be a ZBUFFER only after retrieving its capabilities with pGetCaps or pGetSurfaceDesc
// hence the IsZBuf flag is set after the query and can't be reflected in the first log line!
// The same comment / logic is valid also for extGetSurfaceDesc wrapper
static HRESULT WINAPI extGetCapsS(int dxInterface, GetCapsS_Type pGetCapsS, LPDIRECTDRAWSURFACE lpdds, LPDDSCAPS caps)
{
HRESULT res;
BOOL IsPrim, IsBack, IsFixed;
BOOL IsPrim, IsBack, IsZBuf, IsFixed;
IsPrim=dxwss.IsAPrimarySurface(lpdds);
IsBack=dxwss.IsABackBufferSurface(lpdds);
IsFixed=FALSE;
char *sLabel;
sLabel = IsPrim?"(PRIM)":(IsBack ? "(BACK)" : "");
sLabel = "";
if(IsPrim) sLabel="(PRIM)";
if(IsBack) sLabel="(BACK)";
res=(*pGetCapsS)(lpdds, caps);
if(res)
OutTraceE("GetCaps(S%d): ERROR lpdds=%x%s err=%x(%s)\n", dxInterface, lpdds, sLabel, res, ExplainDDError(res));
else
OutTraceDDRAW("GetCaps(S%d): lpdds=%x%s caps=%x(%s)\n", dxInterface, lpdds, sLabel, caps->dwCaps, ExplainDDSCaps(caps->dwCaps));
IsZBuf=(caps->dwCaps & DDSCAPS_ZBUFFER);
if(IsZBuf) sLabel="(ZBUFFER)";
if (IsPrim) {
IsFixed=TRUE;
sLabel="PRIMARYSURFACE";
caps->dwCaps |= DDSD_Prim.ddsCaps.dwCaps;
caps->dwCaps |= DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_FRONTBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_VISIBLE; // primary surfaces must be this way
caps->dwCaps &= ~(DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN); // primary surfaces can't be this way
@ -5569,7 +5581,6 @@ static HRESULT WINAPI extGetCapsS(int dxInterface, GetCapsS_Type pGetCapsS, LPDI
if (IsBack) {
IsFixed=TRUE;
sLabel="BACKBUFFER";
// v2.03.11: added DDSCAPS_FLIP capability to backbuffer surface: "Ignition" checks for it before Flip-ping to primary
caps->dwCaps |= (DDSCAPS_BACKBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_FLIP|DDSCAPS_LOCALVIDMEM); // you never know....
caps->dwCaps &= ~(DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN); // backbuffer surfaces can't be this way
@ -5578,22 +5589,23 @@ static HRESULT WINAPI extGetCapsS(int dxInterface, GetCapsS_Type pGetCapsS, LPDI
// v2.03.82: fixed logic for ZBUFFER capabilities: "The Creed" may have two, in SYSTEMMEMORY or in VIDEOMEMORY ...
// v2.03.90: "Galapagos" fix - if there's a DDSCAPS_SYSTEMMEMORY or DDSCAPS_VIDEOMEMORY spec, let it be.
if ((caps->dwCaps & DDSCAPS_ZBUFFER) && !(caps->dwCaps & (DDSCAPS_SYSTEMMEMORY|DDSCAPS_VIDEOMEMORY))) {
// v2.03.97: "Galapagos" fix erased.
if (IsZBuf) {
DWORD dwCaps;
IsFixed=TRUE;
dwCaps = dxwcdb.GetCaps(lpdds);
// beware! the ZBUFFER surface could have never been registered!
// in this case better keep the original capabilities (or adapt to the primary/backbuffer ones?)
if(dwCaps) {
sLabel="(REG.ZBUFFER)";
caps->dwCaps = dwCaps;
OutTraceDW("GetCaps: FIXED ZBUFFER caps=%x(%s)\n", caps->dwCaps, ExplainDDSCaps(caps->dwCaps));
}
else {
OutTraceDW("GetCaps: UNREGISTERED ZBUFFER caps=%x(%s)\n", caps->dwCaps, ExplainDDSCaps(caps->dwCaps));
}
}
// v2.03.78: fix for "Gothik 2": pretend that 3DDEVICE surface are ALWAYS in video memory
if (caps->dwCaps & DDSCAPS_3DDEVICE){
IsFixed=TRUE;
sLabel="(3DDEVICE)";
caps->dwCaps |= (DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM);
caps->dwCaps &= ~DDSCAPS_SYSTEMMEMORY;
}
@ -5773,10 +5785,11 @@ HRESULT WINAPI extSetHWnd(LPDIRECTDRAWCLIPPER lpddClip, DWORD w, HWND hwnd)
static HRESULT WINAPI extGetSurfaceDesc(int dxversion, GetSurfaceDesc_Type pGetSurfaceDesc, LPDIRECTDRAWSURFACE lpdds, LPDDSURFACEDESC lpddsd)
{
HRESULT res;
BOOL IsPrim, IsBack, IsFixed;
BOOL IsPrim, IsBack, IsZBuf, IsFixed;
IsPrim=dxwss.IsAPrimarySurface(lpdds);
IsBack=dxwss.IsABackBufferSurface(lpdds);
IsFixed=FALSE;
char *sLabel;
if (!pGetSurfaceDesc) {
OutTraceE("GetSurfaceDesc: ERROR no hooked function\n");
@ -5805,10 +5818,16 @@ static HRESULT WINAPI extGetSurfaceDesc(int dxversion, GetSurfaceDesc_Type pGetS
OutTraceE("GetSurfaceDesc(%d): ERROR err=%x(%s)\n", dxversion, res, ExplainDDError(res));
return res;
}
IsZBuf=(lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER);
sLabel="";
if(IsPrim) sLabel="(PRIM)";
if(IsBack) sLabel="(BACK)";
if(IsZBuf) sLabel="(ZBUFFER)";
OutTraceDDRAW("GetSurfaceDesc(%d): lpdds=%x%s %s\n", dxversion, lpdds, IsPrim?"(PRIM)":(IsBack?"(BACK)":""), LogSurfaceAttributes(lpddsd, "GetSurfaceDesc", __LINE__));
OutTraceDDRAW("GetSurfaceDesc(%d): lpdds=%x%s %s\n", dxversion, lpdds, sLabel, LogSurfaceAttributes(lpddsd, "GetSurfaceDesc", __LINE__));
if (IsPrim) {
IsFixed=TRUE;
if (dxw.dwFlags1 & EMULATESURFACE) lpddsd->ddpfPixelFormat = dxw.VirtualPixelFormat;
lpddsd->ddsCaps.dwCaps |= DDSD_Prim.ddsCaps.dwCaps;
lpddsd->ddsCaps.dwCaps |= (DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_FRONTBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_VISIBLE); // primary surfaces must be this way
@ -5817,21 +5836,29 @@ static HRESULT WINAPI extGetSurfaceDesc(int dxversion, GetSurfaceDesc_Type pGetS
lpddsd->dwBackBufferCount=DDSD_Prim.dwBackBufferCount;
lpddsd->dwHeight=dxw.GetScreenHeight();
lpddsd->dwWidth=dxw.GetScreenWidth();
OutTraceDW("GetSurfaceDesc: FIXED lpdds=%x %s\n", lpdds, LogSurfaceAttributes(lpddsd, "PRIMARY", __LINE__));
}
if (IsBack) {
IsFixed=TRUE;
// flags that backbuffer surfaces must have set
lpddsd->ddsCaps.dwCaps |= (DDSCAPS_3DDEVICE|DDSCAPS_BACKBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM);
// flags that backbuffer surfaces can't have set
lpddsd->ddsCaps.dwCaps &= ~(DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN|DDSCAPS_COMPLEX|DDSCAPS_FLIP);
OutTraceDW("GetSurfaceDesc: FIXED lpdds=%x %s\n", lpdds, LogSurfaceAttributes(lpddsd, "BACKBUFFER", __LINE__));
}
// v2.03.82: fixed logic for ZBUFFER capabilities: "The Creed" may have two, in SYSTEMMEMORY or in VIDEOMEMORY ...
if(lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER) {
lpddsd->ddsCaps.dwCaps = dxwcdb.GetCaps(lpdds);
OutTraceDW("GetSurfaceDesc: FIXED lpdds=%x %s\n", lpdds, LogSurfaceAttributes(lpddsd, "ZBUFFER", __LINE__));
if(IsZBuf) {
DWORD dwCaps;
IsFixed=TRUE;
dwCaps = dxwcdb.GetCaps(lpdds);
if(dwCaps) {
sLabel="(REG.ZBUFFER)";
lpddsd->ddsCaps.dwCaps = dwCaps;
}
}
if(IsFixed){
OutTraceDW("GetSurfaceDesc: FIXED lpdds=%x %s\n", lpdds, LogSurfaceAttributes(lpddsd, sLabel, __LINE__));
}
return DD_OK;
@ -5872,7 +5899,7 @@ HRESULT WINAPI extReleaseP(LPDIRECTDRAWPALETTE lpddPalette)
if (ref <= 0) {
ref = 0;
OutTraceDW("Release(P): clearing lpDDP=%x->NULL\n", lpDDP);
lpDDP=NULL;
lpDDP=NULL;
}
if(dxw.dwFlags4 & RETURNNULLREF) ref = 0;
}

View File

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

20
dll/dxwnd.vs2008.sln Normal file
View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dxwnd", "dxwnd.vs2008.vcproj", "{579E7FE7-2745-4100-A802-23511711FCDE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{579E7FE7-2745-4100-A802-23511711FCDE}.Debug|Win32.ActiveCfg = Debug|Win32
{579E7FE7-2745-4100-A802-23511711FCDE}.Debug|Win32.Build.0 = Debug|Win32
{579E7FE7-2745-4100-A802-23511711FCDE}.Release|Win32.ActiveCfg = Release|Win32
{579E7FE7-2745-4100-A802-23511711FCDE}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Binary file not shown.

View File

@ -59,3 +59,4 @@ BOOL WINAPI extUnmapDebugInformation(PIMAGE_DEBUG_INFORMATION DebugInfo)
OutTrace("UnmapDebugInformation: DebugInfo=%x\n", DebugInfo);
return TRUE;
}

View File

@ -136,6 +136,9 @@ BOOL WINAPI extIsWindow(HWND);
typedef HWND (WINAPI *SetFocus_Type)(HWND);
SetFocus_Type pSetFocus;
HWND WINAPI extSetFocus(HWND);
typedef HBITMAP (WINAPI *LoadBitmapA_Type)(HINSTANCE, LPCSTR);
LoadBitmapA_Type pLoadBitmapA;
HBITMAP WINAPI extLoadBitmapA(HINSTANCE, LPCSTR);
@ -245,6 +248,8 @@ static HookEntryEx_Type Hooks[]={
{HOOK_HOT_CANDIDATE, 0, "EnumDisplayDevicesA", (FARPROC)EnumDisplayDevicesA, (FARPROC *)&pEnumDisplayDevicesA, (FARPROC)extEnumDisplayDevicesA},
{HOOK_HOT_CANDIDATE, 0, "EnumDisplayDevicesW", (FARPROC)EnumDisplayDevicesW, (FARPROC *)&pEnumDisplayDevicesW, (FARPROC)extEnumDisplayDevicesW},
//{HOOK_IAT_CANDIDATE, 0, "LoadBitmapA", (FARPROC)NULL, (FARPROC *)&pLoadBitmapA, (FARPROC)extLoadBitmapA},
{HOOK_IAT_CANDIDATE, 0, 0, NULL, 0, 0} // terminator
};
@ -4017,6 +4022,20 @@ INT_PTR WINAPI extDialogBoxIndirectParamA(HINSTANCE hInstance, LPCDLGTEMPLATE hD
return (*pDialogBoxIndirectParamA)(hInstance, hDialogTemplate, hWndParent, lpDialogFunc, dwInitParam);
}
HBITMAP WINAPI extLoadBitmapA(HINSTANCE hInstance, LPCSTR lpBitmapName)
{
HBITMAP ret;
OutTrace("LoadBitmapA: hinst=%x name=%s\n", hInstance, lpBitmapName);
ret = (*pLoadBitmapA)(hInstance, lpBitmapName);
if(ret){
OutTrace("LoadBitmapA: hbitmap=%x\n", ret);
}
else{
OutTrace("LoadBitmapA: ERROR err=%d\n", GetLastError());
}
return ret;
}
// To do:
// GrayStringA
// GrayStringW

View File

@ -325,7 +325,8 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
}
break;
case WM_ERASEBKGND:
if(dxw.Windowize && dxw.IsDesktop(hwnd)){
// v2.03.97: fix for Adrenix lost backgrounds, thanks to Riitaoja hunt!
if(dxw.Windowize && dxw.IsRealDesktop(hwnd)){
OutTraceDW("WindowProc: WM_ERASEBKGND(%x,%x) - suppressed\n", wparam, lparam);
return 1; // 1 == OK, erased
}