From 834b4c05c54967bbde06aee82ffa8857ee739a2a Mon Sep 17 00:00:00 2001 From: gho tik Date: Tue, 13 Sep 2016 12:47:11 -0400 Subject: [PATCH] v2_03_85_src Former-commit-id: 5001fb63eca15079b7fa69f705a940369e9e6bb7 --- build/dxwnd.dll | 2 +- build/dxwnd.exe | 2 +- build/exports/AeroStyle.dxw | 32 +++++++++++ build/exports/Alien Ambush.dxw | 32 +++++++++++ build/exports/Bugriders the Race of Kings.dxw | 32 +++++++++++ build/exports/Bust A Move 3DX.dxw | 32 +++++++++++ build/exports/Circus Fighters.dxw | 32 +++++++++++ build/exports/Codename Tenka.dxw | 32 +++++++++++ .../exports/D.O.G. - Fight for Your Life.dxw | 32 +++++++++++ build/exports/Dark Angael.dxw | 32 +++++++++++ build/exports/Dark Reign.dxw | 32 +++++++++++ build/exports/Deer Hunter.dxw | 32 +++++++++++ build/exports/Eat my Dust.dxw | 32 +++++++++++ build/exports/Excalibur.dxw | 32 +++++++++++ build/exports/Imperialism.dxw | 24 ++++----- build/exports/In the Hunt.dxw | 32 +++++++++++ build/exports/Trials2 - Second Edition.dxw | 32 +++++++++++ build/exports/Zero Divide.dxw | 32 +++++++++++ build/readme-relnotes.txt | 7 +++ dll/dxhook.cpp | 2 + dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.suo | Bin 17408 -> 34816 bytes dll/gdi32.cpp | 5 +- dll/glhook.h | 3 ++ dll/opengl.cpp | 12 +++++ dll/user32.cpp | 51 +++++++++++------- dll/winmm.cpp | 16 ++++-- host/dxwndhost.vs2008.suo | Bin 0 -> 9728 bytes 28 files changed, 565 insertions(+), 41 deletions(-) create mode 100644 build/exports/AeroStyle.dxw create mode 100644 build/exports/Alien Ambush.dxw create mode 100644 build/exports/Bugriders the Race of Kings.dxw create mode 100644 build/exports/Bust A Move 3DX.dxw create mode 100644 build/exports/Circus Fighters.dxw create mode 100644 build/exports/Codename Tenka.dxw create mode 100644 build/exports/D.O.G. - Fight for Your Life.dxw create mode 100644 build/exports/Dark Angael.dxw create mode 100644 build/exports/Dark Reign.dxw create mode 100644 build/exports/Deer Hunter.dxw create mode 100644 build/exports/Eat my Dust.dxw create mode 100644 build/exports/Excalibur.dxw create mode 100644 build/exports/In the Hunt.dxw create mode 100644 build/exports/Trials2 - Second Edition.dxw create mode 100644 build/exports/Zero Divide.dxw create mode 100644 host/dxwndhost.vs2008.suo diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 5f5272e..a700886 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c9903cd38ba533b4ed2c7e2d0d9023411b0a32e056d35845630c5e9abc61705 +oid sha256:6c67b9b98fb1b82b094c7d22f2ff848158084e8b1196864089e38fd9f3b55cdd size 680448 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index cc74004..06bdab1 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:61b16a6740d6ee40062f21cfafc50b64e7340636e9148c7a861b48f8ed86d697 +oid sha256:d051968f9b2711a85f2b19a760bdad7e67de7e305f81ac2dc649a485d8975f7a size 655872 diff --git a/build/exports/AeroStyle.dxw b/build/exports/AeroStyle.dxw new file mode 100644 index 0000000..211933a --- /dev/null +++ b/build/exports/AeroStyle.dxw @@ -0,0 +1,32 @@ +[target] +title0=AeroStyle +path0=F:\Games\AeroStyle\AeroStyle.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Alien Ambush.dxw b/build/exports/Alien Ambush.dxw new file mode 100644 index 0000000..09886af --- /dev/null +++ b/build/exports/Alien Ambush.dxw @@ -0,0 +1,32 @@ +[target] +title0=Alien Ambush +path0=D:\Games\Alien Ambush\Alien Ambush.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +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 diff --git a/build/exports/Bugriders the Race of Kings.dxw b/build/exports/Bugriders the Race of Kings.dxw new file mode 100644 index 0000000..8cf3ddf --- /dev/null +++ b/build/exports/Bugriders the Race of Kings.dxw @@ -0,0 +1,32 @@ +[target] +title0=Bugriders the Race of Kings +path0=D:\Games\RIDERS\BIN\RIDERS.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Bust A Move 3DX.dxw b/build/exports/Bust A Move 3DX.dxw new file mode 100644 index 0000000..a551d77 --- /dev/null +++ b/build/exports/Bust A Move 3DX.dxw @@ -0,0 +1,32 @@ +[target] +title0=Bust A Move 3DX +path0=D:\Games\Bust A Move 3DX\PB3.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=681574434 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Circus Fighters.dxw b/build/exports/Circus Fighters.dxw new file mode 100644 index 0000000..d63ddb7 --- /dev/null +++ b/build/exports/Circus Fighters.dxw @@ -0,0 +1,32 @@ +[target] +title0=Circus Fighters +path0=D:\Games\Circus Fighters\CIRCUS.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=681574434 +flagg0=1209008128 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=32768 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Codename Tenka.dxw b/build/exports/Codename Tenka.dxw new file mode 100644 index 0000000..b08ad2f --- /dev/null +++ b/build/exports/Codename Tenka.dxw @@ -0,0 +1,32 @@ +[target] +title0=Codename Tenka +path0=D:\Games\codetenka\tenka.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/D.O.G. - Fight for Your Life.dxw b/build/exports/D.O.G. - Fight for Your Life.dxw new file mode 100644 index 0000000..969f76e --- /dev/null +++ b/build/exports/D.O.G. - Fight for Your Life.dxw @@ -0,0 +1,32 @@ +[target] +title0=D.O.G. - Fight for Your Life +path0=D:\Games\D.O.G. - Fight for Your Life\DOG.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Dark Angael.dxw b/build/exports/Dark Angael.dxw new file mode 100644 index 0000000..553401b --- /dev/null +++ b/build/exports/Dark Angael.dxw @@ -0,0 +1,32 @@ +[target] +title0=Dark Angael +path0=D:\Games\Dark Angael\GAME.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Dark Reign.dxw b/build/exports/Dark Reign.dxw new file mode 100644 index 0000000..2aa2cba --- /dev/null +++ b/build/exports/Dark Reign.dxw @@ -0,0 +1,32 @@ +[target] +title0=Dark Reign +path0=D:\Games\Dark Reign\dkreign.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Deer Hunter.dxw b/build/exports/Deer Hunter.dxw new file mode 100644 index 0000000..b4a008a --- /dev/null +++ b/build/exports/Deer Hunter.dxw @@ -0,0 +1,32 @@ +[target] +title0=Deer Hunter +path0=F:\Games\Deer Hunter\DEERHUNT.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959568 +flagh0=16404 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Eat my Dust.dxw b/build/exports/Eat my Dust.dxw new file mode 100644 index 0000000..baaf74a --- /dev/null +++ b/build/exports/Eat my Dust.dxw @@ -0,0 +1,32 @@ +[target] +title0=Eat my Dust +path0=D:\Games\eat_my_dust\EATMYDUS.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=681574434 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=32768 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Excalibur.dxw b/build/exports/Excalibur.dxw new file mode 100644 index 0000000..cb9eada --- /dev/null +++ b/build/exports/Excalibur.dxw @@ -0,0 +1,32 @@ +[target] +title0=Excalibur +path0=D:\Games\Excalibur\_FISH.EXE +startfolder0= +launchpath0=D:\Games\Excalibur\EXCAL.EXE +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Imperialism.dxw b/build/exports/Imperialism.dxw index 7c57902..a7df7af 100644 --- a/build/exports/Imperialism.dxw +++ b/build/exports/Imperialism.dxw @@ -1,21 +1,24 @@ [target] title0=Imperialism -path0=D:\Games\Imperialism\Imperialism.exe +path0=G:\Games\Imperialism\Imperialism.exe +startfolder0= +launchpath0= module0= opengllib0= +notes0= +registry0= ver0=0 coord0=0 flag0=1746935843 flagg0=1209008128 flagh0=20 flagi0=4194308 +flagj0=128 +flagk0=0 +flagl0=0 +flagm0=0 tflag0=0 -initx0=0 -inity0=0 -minx0=0 -miny0=0 -maxx0=0 -maxy0=0 +dflag0=0 posx0=50 posy0=50 sizx0=800 @@ -24,9 +27,6 @@ maxfps0=0 initts0=0 winver0=0 maxres0=-1 -launchpath0= -notes0=Note:\nMap zooming is currently not workind. Do not click on the magnifying glass, \nor the game will crash. -registry0= -flagj0=128 -flagk0=0 swapeffect0=0 +maxddinterface0=7 +slowratio0=1 diff --git a/build/exports/In the Hunt.dxw b/build/exports/In the Hunt.dxw new file mode 100644 index 0000000..569b70b --- /dev/null +++ b/build/exports/In the Hunt.dxw @@ -0,0 +1,32 @@ +[target] +title0=In the Hunt +path0=D:\Games\HUNT\E8.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/exports/Trials2 - Second Edition.dxw b/build/exports/Trials2 - Second Edition.dxw new file mode 100644 index 0000000..8614e5f --- /dev/null +++ b/build/exports/Trials2 - Second Edition.dxw @@ -0,0 +1,32 @@ +[target] +title0=Trials2 - Second Edition +path0=F:\Games\Trials2 - Second Edition\trials2.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +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 diff --git a/build/exports/Zero Divide.dxw b/build/exports/Zero Divide.dxw new file mode 100644 index 0000000..0bec3b6 --- /dev/null +++ b/build/exports/Zero Divide.dxw @@ -0,0 +1,32 @@ +[target] +title0=Zero Divide +path0=D:\Games\Zerodiv\ZD.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=681582626 +flagg0=1212153864 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=327680 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 1ef698d..c6a8db9 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -1235,3 +1235,10 @@ add: GUI flag "Name by Folder" to default the program name field with the progra add: new flag "Set keyboard shared coop. level" (SHAREDKEYBOARD) to change directinput keyboard cooperative level mode add: new flag Direct3D / "Enumerate 16bit modes" (ENUM16BITMODES) to force enumeration of 16 bit video modes on Win10 desktop when not listed fix: GUI randomic value for Injection mode selector when adding new entry + +v2.03.85 +add: added control to avoid hide of tray window. Useful for "Planet of the Apes" +fix: fixed BIG window coordinates. Fixes "Deer Hunter" window positioning problems. +fix: mciSendCommand wrapper for BYPASSMCI flag + + diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp index d3b3001..9d359c3 100644 --- a/dll/dxhook.cpp +++ b/dll/dxhook.cpp @@ -33,6 +33,7 @@ dxwCapsDB dxwcdb; dxwSDC sdc; GetWindowLong_Type pGetWindowLong; SetWindowLong_Type pSetWindowLong; +HWND hTrayWnd; extern LRESULT CALLBACK MessageHook(int, WPARAM, LPARAM); extern DWORD WINAPI CpuLimit(LPVOID); @@ -1478,6 +1479,7 @@ void HookInit(TARGETMAP *target, HWND hwnd) CheckCompatibilityFlags(); // v2.02.83: Check for change of OS release // CheckSafeDiscVersion(); // v2.03.78: Detects SafeDisk references and version - moved to DxWnd.exe } + hTrayWnd = FindWindow("Shell_TrayWnd", NULL); } if(hwnd){ // v2.02.32: skip this when in code injection mode. diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index 638d396..5773347 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -27,7 +27,7 @@ along with this program. If not, see . #include "TlHelp32.h" -#define VERSION "2.03.84.fx1" +#define VERSION "2.03.85" #define DDTHREADLOCK 1 //#define LOCKTHREADS diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 623085b4f6d49db1ebe093f48f9e31c6bade1207..7abd9a065f5cd2089df4438dcce70cbb2f9a2b05 100644 GIT binary patch literal 34816 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 A)&Kwi delta 692 zcma)4L2DC16rMMkOm<`3ZsMlaCMHxpEInvyb0|n;#bRTPCiK!v!3ZKEf+E36uo{EX zT!gyMgJ(rA>Y*;`HBdwlq*}zI_zNmX4j#1Yo87eb=)&y2_q}=F`}Uh@E%8g|qkP*S{y6 z#b@^XyIXTd@s3tNN9({8I>|g5la}{eD}x*$szfl;Ys6P0xFW`|Vbrwv_PIUdE`P$Y zIdC!-h|zc_^qukbZ8@F%UrHawh2Z?BY+JO&ztJ3@~eR!u4z zBTRc%H3lZ-seUEw1=`WC1;Lpn!1UXu^>!{;GaXM@oW9C zyQf9Rtp0kz9bVC4keap*wKrT ySkkYuYwQZU#BL%Krj)1nMeM~_yDhw(l(_F)j^t==VS-eryy^V){oaAL1AhUO^vM$d diff --git a/dll/gdi32.cpp b/dll/gdi32.cpp index e8d258f..dd6f458 100644 --- a/dll/gdi32.cpp +++ b/dll/gdi32.cpp @@ -2704,9 +2704,10 @@ int WINAPI extDescribePixelFormat(HDC hdc, int iPixelFormat, UINT nBytes, LPPIXE return res; } if (ppfd && nBytes==sizeof(PIXELFORMATDESCRIPTOR)){ - OutTraceDW("DescribePixelFormat: res=%d Flags=%x PixelType=%x(%s) ColorBits=%d RGBdepth=(%d,%d,%d) RGBshift=(%d,%d,%d)\n", + OutTraceDW("DescribePixelFormat: res=%d Flags=%x(%s) PixelType=%x(%s) ColorBits=%d RGBdepth=(%d,%d,%d) RGBshift=(%d,%d,%d)\n", res, - ppfd->dwFlags, ppfd->iPixelType, ppfd->iPixelType?"PFD_TYPE_COLORINDEX":"PFD_TYPE_RGBA", ppfd->cColorBits, + ppfd->dwFlags, ExplainPFFlags(ppfd->dwFlags), ppfd->iPixelType, + ppfd->iPixelType?"PFD_TYPE_COLORINDEX":"PFD_TYPE_RGBA", ppfd->cColorBits, ppfd->cRedBits, ppfd->cGreenBits, ppfd->cBlueBits, ppfd->cRedShift, ppfd->cGreenShift, ppfd->cBlueShift); if((hdc==0) && dxw.IsFullScreen() && (ppfd->iPixelType==PFD_TYPE_RGBA)){ diff --git a/dll/glhook.h b/dll/glhook.h index a4e4852..3e6bdf0 100644 --- a/dll/glhook.h +++ b/dll/glhook.h @@ -19,6 +19,7 @@ typedef void (WINAPI *glTexImage2D_Type)(GLenum, GLint, GLint, GLsizei, GLsizei, typedef void (WINAPI *glPixelZoom_Type)(GLfloat, GLfloat); typedef void (WINAPI *glBegin_Type)(GLenum); typedef void (WINAPI *glBindTexture_Type)(GLenum, GLuint); +typedef void (WINAPI *glPixelStorei_Type)(GLenum, GLint); extern GLenum WINAPI extglGetError(); extern void WINAPI extglViewport(GLint, GLint, GLsizei, GLsizei); @@ -37,6 +38,7 @@ extern void WINAPI extglTexImage2D(GLenum, GLint, GLint, GLsizei, GLsizei, GLint extern void WINAPI extglPixelZoom(GLfloat, GLfloat); extern void WINAPI extglBegin(GLenum); extern void WINAPI extglBindTexture(GLenum, GLuint); +extern void WINAPI extglPixelStorei(GLenum, GLint); #ifdef DXWDECLARATIONS #undef DXWEXTERN @@ -68,3 +70,4 @@ DXWEXTERN glTexImage2D_Type pglTexImage2D; DXWEXTERN glPixelZoom_Type pglPixelZoom; DXWEXTERN glBegin_Type pglBegin; DXWEXTERN glBindTexture_Type pglBindTexture; +DXWEXTERN glPixelStorei_Type pglPixelStorei; \ No newline at end of file diff --git a/dll/opengl.cpp b/dll/opengl.cpp index 102b37a..a7f7524 100644 --- a/dll/opengl.cpp +++ b/dll/opengl.cpp @@ -41,6 +41,7 @@ static HookEntryEx_Type Hooks[]={ {HOOK_IAT_CANDIDATE, 0, "glPixelZoom", NULL, (FARPROC *)&pglPixelZoom, (FARPROC)extglPixelZoom}, //{HOOK_IAT_CANDIDATE, 0, "glBegin", NULL, (FARPROC *)&pglBegin, (FARPROC)extglBegin}, {HOOK_IAT_CANDIDATE, 0, "glBindTexture", NULL, (FARPROC *)&pglBindTexture, (FARPROC)extglBindTexture}, + //{HOOK_IAT_CANDIDATE, 0, "glPixelStorei", NULL, (FARPROC *)&pglPixelStorei, (FARPROC)extglPixelStorei}, {HOOK_IAT_CANDIDATE, 0, 0, NULL, 0, 0} // terminator }; @@ -533,6 +534,7 @@ void WINAPI extglPixelZoom(GLfloat xfactor, GLfloat yfactor) if ((glerr=extglGetError())!= GL_NO_ERROR) OutTrace("GLERR %d ad %d\n", glerr, __LINE__); return; } + void WINAPI extglBegin(GLenum mode) { GLenum glerr; @@ -559,3 +561,13 @@ void WINAPI extglBindTexture(GLenum target, GLuint texture) if ((glerr=extglGetError())!= GL_NO_ERROR) OutTrace("GLERR %d ad %d\n", glerr, __LINE__); return; } + +void WINAPI extglPixelStorei(GLenum pname, GLint param) +{ + GLenum glerr; + OutTraceDW("glPixelStorei: pname=%x param=%x\n", pname, param); + + (*pglPixelStorei)(pname, param); + if ((glerr=extglGetError())!= GL_NO_ERROR) OutTrace("GLERR %d ad %d\n", glerr, __LINE__); + return; +} \ No newline at end of file diff --git a/dll/user32.cpp b/dll/user32.cpp index 430d808..8252d82 100644 --- a/dll/user32.cpp +++ b/dll/user32.cpp @@ -698,8 +698,16 @@ BOOL WINAPI extInvalidateRect(HWND hwnd, RECT *lpRect, BOOL bErase) BOOL WINAPI extShowWindow(HWND hwnd, int nCmdShow) { BOOL res; + extern HWND hTrayWnd; OutTraceDW("ShowWindow: hwnd=%x, CmdShow=%x(%s)\n", hwnd, nCmdShow, ExplainShowCmd(nCmdShow)); + + if(dxw.Windowize && (hwnd == hTrayWnd) && (nCmdShow == SW_HIDE)){ + // v2.03.85: suppress attempts to hide the tray window + OutTraceDW("ShowWindow: suppress tray window hide\n"); + return TRUE; + } + if (dxw.dwFlags1 & PREVENTMAXIMIZE){ if(nCmdShow==SW_MAXIMIZE){ OutTraceDW("ShowWindow: suppress SW_MAXIMIZE maximize\n"); @@ -1359,7 +1367,7 @@ int WINAPI extGetSystemMetrics(int nindex) ATOM WINAPI extRegisterClassExA(WNDCLASSEXA *lpwcx) { ATOM ret; - OutTraceDW("RegisterClassExA: PROXED ClassName=%s style=%x(%s) WndProc=%x cbClsExtra=%d cbWndExtra=%d hInstance=%x\n", + OutTraceDW("RegisterClassExA: PROXED ClassName=\"%s\" style=%x(%s) WndProc=%x cbClsExtra=%d cbWndExtra=%d hInstance=%x\n", lpwcx->lpszClassName, lpwcx->style, ExplainStyle(lpwcx->style), lpwcx->lpfnWndProc, lpwcx->cbClsExtra, lpwcx->cbWndExtra, lpwcx->hInstance); ret = (*pRegisterClassExA)(lpwcx); OutTraceDW("RegisterClassExA: atom=%x\n", ret); @@ -1370,7 +1378,7 @@ ATOM WINAPI extRegisterClassA(WNDCLASSA *lpwcx) { ATOM ret; // referenced by Syberia, together with RegisterClassExA - OutTraceDW("RegisterClassA: PROXED ClassName=%s style=%x(%s) WndProc=%x cbClsExtra=%d cbWndExtra=%d hInstance=%x\n", + OutTraceDW("RegisterClassA: PROXED ClassName=\"%s\" style=%x(%s) WndProc=%x cbClsExtra=%d cbWndExtra=%d hInstance=%x\n", lpwcx->lpszClassName, lpwcx->style, ExplainStyle(lpwcx->style), lpwcx->lpfnWndProc, lpwcx->cbClsExtra, lpwcx->cbWndExtra, lpwcx->hInstance); ret = (*pRegisterClassA)(lpwcx); OutTraceDW("RegisterClassA: atom=%x\n", ret); @@ -1380,7 +1388,7 @@ ATOM WINAPI extRegisterClassA(WNDCLASSA *lpwcx) ATOM WINAPI extRegisterClassExW(WNDCLASSEXW *lpwcx) { ATOM ret; - OutTraceDW("RegisterClassExW: PROXED ClassName=%ls style=%x(%s) WndProc=%x cbClsExtra=%d cbWndExtra=%d hInstance=%x\n", + OutTraceDW("RegisterClassExW: PROXED ClassName=\"%ls\" style=%x(%s) WndProc=%x cbClsExtra=%d cbWndExtra=%d hInstance=%x\n", lpwcx->lpszClassName, lpwcx->style, ExplainStyle(lpwcx->style), lpwcx->lpfnWndProc, lpwcx->cbClsExtra, lpwcx->cbWndExtra, lpwcx->hInstance); ret = (*pRegisterClassExW)(lpwcx); OutTraceDW("RegisterClassExW: atom=%x\n", ret); @@ -1390,7 +1398,7 @@ ATOM WINAPI extRegisterClassExW(WNDCLASSEXW *lpwcx) ATOM WINAPI extRegisterClassW(WNDCLASSW *lpwcx) { ATOM ret; - OutTraceDW("RegisterClassW: PROXED ClassName=%ls style=%x(%s) WndProc=%x cbClsExtra=%d cbWndExtra=%d hInstance=%x\n", + OutTraceDW("RegisterClassW: PROXED ClassName=\"%ls\" style=%x(%s) WndProc=%x cbClsExtra=%d cbWndExtra=%d hInstance=%x\n", lpwcx->lpszClassName, lpwcx->style, ExplainStyle(lpwcx->style), lpwcx->lpfnWndProc, lpwcx->cbClsExtra, lpwcx->cbWndExtra, lpwcx->hInstance); ret = (*pRegisterClassW)(lpwcx); OutTraceDW("RegisterClassW: atom=%x\n", ret); @@ -1490,6 +1498,7 @@ static HWND WINAPI extCreateWindowCommon( { HWND hwnd; BOOL isValidHandle=TRUE; + BOOL isNewDesktop; int iOrigW, iOrigH; iOrigW=nWidth; @@ -1523,7 +1532,7 @@ static HWND WINAPI extCreateWindowCommon( // v2.02.30: fix (Fable - lost chapters) Fable creates a bigger win with negative x,y coordinates. // v2.03.53: revised code, logic moved to IsFullscreenWindow - if(IsFullscreenWindow(lpClassName, dwStyle, dwExStyle, hWndParent, x, y, nWidth, nHeight)){ + if(isNewDesktop=IsFullscreenWindow(lpClassName, dwStyle, dwExStyle, hWndParent, x, y, nWidth, nHeight)){ RECT screen; POINT upleft = {0,0}; @@ -1597,23 +1606,25 @@ static HWND WINAPI extCreateWindowCommon( // from here on, fullscreen is garanteed - if (dwStyle & WS_CHILD){ - // tested on Gangsters: coordinates must be window-relative!!! - // Age of Empires.... - dxw.MapClient(&x, &y, &nWidth, &nHeight); - OutTraceDW("%s: fixed WS_CHILD pos=(%d,%d) size=(%d,%d)\n", - ApiName, x, y, nWidth, nHeight); - } - else { - if ((dwExStyle & WS_EX_CONTROLPARENT) || (dwStyle & WS_POPUP)){ - // needed for "Diablo", that creates a new WS_EX_CONTROLPARENT window that must be - // overlapped to the directdraw surface. - // needed for "Riven", that creates a new WS_POPUP window with the menu bar that must be - // overlapped to the directdraw surface. - dxw.MapWindow(&x, &y, &nWidth, &nHeight); - OutTraceDW("%s: fixed pos=(%d,%d) size=(%d,%d)\n", + if(!isNewDesktop){ + if (dwStyle & WS_CHILD){ + // tested on Gangsters: coordinates must be window-relative!!! + // Age of Empires.... + dxw.MapClient(&x, &y, &nWidth, &nHeight); + OutTraceDW("%s: fixed WS_CHILD pos=(%d,%d) size=(%d,%d)\n", ApiName, x, y, nWidth, nHeight); } + else { + if ((dwExStyle & WS_EX_CONTROLPARENT) || (dwStyle & WS_POPUP)){ + // needed for "Diablo", that creates a new WS_EX_CONTROLPARENT window that must be + // overlapped to the directdraw surface. + // needed for "Riven", that creates a new WS_POPUP window with the menu bar that must be + // overlapped to the directdraw surface. + dxw.MapWindow(&x, &y, &nWidth, &nHeight); + OutTraceDW("%s: fixed pos=(%d,%d) size=(%d,%d)\n", + ApiName, x, y, nWidth, nHeight); + } + } } OutTraceB("%s: fixed pos=(%d,%d) size=(%d,%d) Style=%x(%s) ExStyle=%x(%s)\n", diff --git a/dll/winmm.cpp b/dll/winmm.cpp index a81aeae..d302388 100644 --- a/dll/winmm.cpp +++ b/dll/winmm.cpp @@ -142,14 +142,22 @@ MCIERROR WINAPI extmciSendCommand(mciSendCommand_Type pmciSendCommand, MCIDEVICE IDDevice, uMsg, ExplainMCICommands(uMsg), fdwCommand, ExplainMCIFlags(uMsg, fdwCommand)); if(dxw.dwFlags6 & BYPASSMCI){ - if((uMsg == MCI_STATUS) && (fdwCommand == MCI_STATUS_ITEM)){ + if((uMsg == MCI_STATUS) && (fdwCommand & MCI_STATUS_ITEM)){ // fix for Tie Fighter 95: when bypassing, let the caller know you have no CD tracks // otherwise you risk an almost endless loop going through the unassigned returned // number of ghost tracks + // fix for "Emperor of the Fading Suns": the MCI_STATUS_ITEM is set in .or. with + // MCI_TRACK MCI_STATUS_PARMS *p = (MCI_STATUS_PARMS *)dwParam; - p->dwItem = 0; - p->dwTrack = 0; - p->dwReturn = 0; + OutTraceDW("mciSendCommand: MCI_STATUS item=%d track=%d ret=%d\n", p->dwItem, p->dwReturn, p->dwTrack); + if(fdwCommand & MCI_TRACK){ + p->dwReturn = 1; + } + else{ + p->dwItem = 0; + p->dwTrack = 0; + p->dwReturn = 0; + } OutTraceDW("mciSendCommand: BYPASS fixing MCI_STATUS\n"); } else{ diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo new file mode 100644 index 0000000000000000000000000000000000000000..0b56166789815a323772a3cecbb5d9a84034a180 GIT binary patch literal 9728 zcmeI1OKg-?6vxjLQ4j=?hl+@WmN%4AKnn=kc3Lng7TfZWG{Lsh7o9%RPN8T~;)abR z?p(Pb!Ho-*m>Aud*o6skQDo^xND$rWPE3UQ`+tvl(V6)=ElMM2a=!b0_q+F=bI-l! zf6o2p>e!;|7cVcrVQI9_X4&2Gx%OyMeTaLpLrJ7+t@mT__FDgkG&3zwZ+-k?R%q4MOF3X?Sk>UP z%x1@ZUV9@OUA=k!!m$O{LbGUeP8$e1gv35OX|Ex@ox5rqc3%X%E(3*-C=0#&)m~XlxyHNq$E4|$X}34#%anWJeef$@T?J(&Tm^@{I?4XO z(DmzQM@ zy=WWI{~-0Pw9NyVB^x0>r16B8LFcbnQ6r;4>GMy>Kf}tmpheVenBkhw{Dp7+aPk7*FU&rm`rq7v zigi)u*^ZqPdic)|iaxHELW}>_KH8bB*h~K0hP|eP()Zs%M($zPDGxmA`9hza&gg}k z^YA~N8yY?3p|8(>a4P&WixwGF|$8@ zHc{5-=x2NAXqKla#BM{yFbaf;#APUUmUtY&yHe%WIngg!s+hrGLO86w@}J{Zm{BccPchr`0l{vpFSO1{K?UUwYK2O^61}li|Rfc zKYx2{^is7t)!MI1)?E9%sA&IJzuY*xuBAsC5o)mV_9dftM_1Nf`Z)60M=O8dHM#x_ zQOd?FVJfX`JNGa?!h~|C(=ALs_C}#G|NOG=2-trbJdeaPa;Y)Mekh$lsibd@6*MWs zc_8`avEb^m-pTp@y&5QcZbPdQbaEv&<~_P%mh!j54z@&@S&3uhenxijwbY8)?P}Fc z1QPOe(@HtKEU=CCx{83R3Gw6DnD(Qk;MQdDLwT+;3O~lVakd>RbWp4FhyTVAbI*nN zA5t!@?*l>OkG?(hdI6@69QPy$tg}vfj6cGRbJ1$#3&WLD1eL#%w(olbS225Gz@T$( z(#of6;Wf-q==+bpb10?lOKv-hZz$ z;$~02pFd_5lI3Mn-q~@s+*?NxWyxDRzZ{kD%$B`>x&O_x>zvOGo}uD4P^Id$>iX(3 zA688F+i71b=r~1l{>U$1WJFUsvu;@G-+@4OC z8FV>9jBO<1>J+Gd8-|I0ioBf)wQFS|QIM(YgNCd=UF1r3uhTW=WX74v G^8W$-JOfz( literal 0 HcmV?d00001