From 06afb3514dc1a9a2d8f240c228e57eb4dee6c4da Mon Sep 17 00:00:00 2001 From: gho tik Date: Sat, 9 Apr 2016 12:47:04 -0400 Subject: [PATCH] v2_03_83_src Former-commit-id: 7bf783475fa253dc8c03784753d23c56ce62f7e5 --- build/dxwnd.dll | 2 +- build/dxwnd.exe | 2 +- build/exports/GTA 3.dxw | 20 +++++++++++++++++--- build/readme-relnotes.txt | 8 +++++++- dll/ddraw.cpp | 13 +++++++------ dll/dxhook.cpp | 15 ++++++++++----- dll/dxwnd.aps | Bin 58160 -> 58160 bytes dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.sln | 20 -------------------- dll/dxwnd.vs2008.suo | Bin 814592 -> 814592 bytes dll/hd3d.cpp | 4 ++-- dll/kernel32.cpp | 14 +++++++++++++- host/dxwndhost.vs2008.sln | 20 -------------------- host/dxwndhost.vs2008.suo | Bin 236544 -> 236544 bytes 14 files changed, 59 insertions(+), 61 deletions(-) delete mode 100644 dll/dxwnd.vs2008.sln delete mode 100644 host/dxwndhost.vs2008.sln diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 9cdb012..9812e83 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f94dedc2e7e5d4adf8a804d3f747f544a38b661c38967d375fa7efbd8d76bdab +oid sha256:ffb381fe04bba437bffb3771d0aef016931d9c10f751d7dea21a711537ccbd87 size 678400 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index c85a819..08e7b1d 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d58180de7cdd9e659b552b5da719e24163cc7db663fceb7c2fd1d8e71086df7c +oid sha256:ad75238bb04366e33af8a86a0cfb4c8fc760794f5029c2a194fe3af1615f901d size 655360 diff --git a/build/exports/GTA 3.dxw b/build/exports/GTA 3.dxw index c7e4c44..cea1e98 100644 --- a/build/exports/GTA 3.dxw +++ b/build/exports/GTA 3.dxw @@ -7,9 +7,9 @@ ver0=0 coord0=0 flag0=134234150 flagg0=1207975952 -flagh0=176 -flagi0=0 -tflag0=2 +flagh0=144 +flagi0=4194304 +tflag0=0 initx0=0 inity0=0 minx0=0 @@ -22,3 +22,17 @@ sizx0=800 sizy0=600 maxfps0=0 initts0=0 +startfolder0= +launchpath0= +notes0= +registry0= +flagj0=0 +flagk0=1048576 +flagl0=0 +flagm0=0 +dflag0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=1 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 1a1e395..334e53d 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -1219,4 +1219,10 @@ fix: suppressed more capabilities when setting "Suppress overlay capability" fla fix: fixed logic for ZBUFFER capabilities: "The Creed" seems to have two, one in SYSTEMMEMORY and one in VIDEOMEMORY... fix: avoid setting cursor clipping when client area is returned with zero size. fix: fixed CreateProcessA hooker for "suspended process" injection type to forward all parameters to the system call -add: added "Fix glBindTexture texture" flag to compensate for the missing glActiveTexture call. Fixes "bugdom" 2D panels. \ No newline at end of file +add: added "Fix glBindTexture texture" flag to compensate for the missing glActiveTexture call. Fixes "bugdom" 2D panels. + +v2.03.83 +fix: cleared surface list on primary surface creation: "Daytona USA" keeps creating new primary surfaces, so it saturated the surface list. +fix: calling the proper GetGDISurface pointer in Lock wrapper +fix: HookProc routine causing crash with GTA3, fixed for Win7 and Win10 +fix: LoadLibrayA/W after a SetWorkingDir invocation didn't load the local modules. Fixes "The Rage". \ No newline at end of file diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index 15554ab..0be7057 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -3152,6 +3152,7 @@ static HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreate // creation of the primary surface.... if(ddsd.dwFlags & DDSD_CAPS && ddsd.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE){ + dxwss.ClearSurfaceList(); // v2.03.83: "Daytona USA" would saturate the list otherwise SetVSyncDelays(dxversion, lpdd); GetHookInfo()->Height=(short)dxw.GetScreenHeight(); GetHookInfo()->Width=(short)dxw.GetScreenWidth(); @@ -4322,6 +4323,7 @@ static HRESULT WINAPI extLockDir(int dxversion, Lock_Type pLock, LPDIRECTDRAWSUR POINT upleft={0,0}; LPDIRECTDRAWSURFACE lpDDSPrim; Blt_Type pBlt; + GetGDISurface_Type pGetGDISurface; // this hooker operates on // Beware!!! for strange reason, the function gets hooked to ANY surface, also non primary ones!!! @@ -4337,17 +4339,16 @@ static HRESULT WINAPI extLockDir(int dxversion, Lock_Type pLock, LPDIRECTDRAWSUR } switch(dxversion){ - case 1: pBlt=pBlt1; break; - case 2: pBlt=pBlt2; break; - case 3: pBlt=pBlt3; break; - case 4: pBlt=pBlt4; break; - case 7: pBlt=pBlt7; break; + case 1: pBlt=pBlt1; pGetGDISurface=pGetGDISurface1; break; + case 2: pBlt=pBlt2; pGetGDISurface=pGetGDISurface2; break; + case 4: pBlt=pBlt4; pGetGDISurface=pGetGDISurface4; break; + case 7: pBlt=pBlt7; pGetGDISurface=pGetGDISurface7; break; } // V2.02.43: Empire Earth does some test Lock operations apparently before the primary surface is created if(lpPrimaryDD){ lpDDSPrim=0; - res2=(*pGetGDISurface1)(lpPrimaryDD, &lpDDSPrim); + res2=(*pGetGDISurface)(lpPrimaryDD, &lpDDSPrim); if(res2) OutTraceE("Lock: GetGDISurface ERROR res=%x(%s) at %d\n", res2, ExplainDDError(res2), __LINE__); else diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp index f2cc093..8deaa15 100644 --- a/dll/dxhook.cpp +++ b/dll/dxhook.cpp @@ -567,12 +567,17 @@ void SetHook(void *target, void *hookproc, void **hookedproc, char *hookname) } tmp=(void *)dwTmp; - if (*hookedproc && *hookedproc!=tmp) { - sprintf(msg,"SetHook: proc=%s oldhook=%x->%x newhook=%x\n", hookname, hookedproc, *(DWORD *)hookedproc, tmp); - OutTraceDW(msg); - if (IsAssertEnabled) MessageBox(0, msg, "SetHook", MB_OK | MB_ICONEXCLAMATION); - tmp = *hookedproc; + __try { + if (*hookedproc && (*hookedproc)!=tmp) { + sprintf(msg,"SetHook: proc=%s oldhook=%x->%x newhook=%x\n", hookname, hookedproc, *(DWORD *)hookedproc, tmp); + OutTraceDW(msg); + if (IsAssertEnabled) MessageBox(0, msg, "SetHook", MB_OK | MB_ICONEXCLAMATION); + // tmp = *hookedproc; -- commented out in v2.03.83, causing crash in GTA3 + } } + __except(EXCEPTION_EXECUTE_HANDLER){ + OutTrace("SetHook: %s exception\n", hookname); + }; *hookedproc = tmp; OutTraceH("SetHook: DEBUG2 *hookedproc=%x, name=%s\n", tmp, hookname); } diff --git a/dll/dxwnd.aps b/dll/dxwnd.aps index 55e0ccb3abb4c2074cf05c9b6c39c30d3a07d982..df04110a30e723dc94ccd4bd46207c67d440bf1c 100644 GIT binary patch delta 67 zcmdmRjCsQ`<_Y0U7RDPR58q+7U@+b+e|I+%kU#m(eG3pJ_5e%;K&UPVb>x8!P;N8R HLp>${bSoJM delta 67 zcmdmRjCsQ`<_Y0U<|Z2>58q)nXE50;e|I+%kU#m(eG3pJ_5e%;K&UPVb>x8!P;N8R HLp>${bRroD diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index e8eab1e..e6dfef9 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.82" +#define VERSION "2.03.83" #define DDTHREADLOCK 1 //#define LOCKTHREADS diff --git a/dll/dxwnd.vs2008.sln b/dll/dxwnd.vs2008.sln deleted file mode 100644 index 0d2e531..0000000 --- a/dll/dxwnd.vs2008.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dxwnd", "dxwnd.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 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 2ffd22b5b5756f1bb89fb72fe5cbd99a0ccb550a..baaeab639d9916dd948e652ddcd7b900208628a1 100644 GIT binary patch delta 21200 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 delta 36265 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 delta 1103 zcmYLIZ){Ul6u;-a+xk{!E&EeSH@nBWj1J2QOfk)`S6VO7#gr*>0r@lP8?mR@7J;7DBWOp9u3j zDBcu@g=Fy_oG$vy3}$u~QP+K_H%T^!j5W)Q3SfL^9afjmxg4n!;_i11ZIbH$NA8gwS zw2|9<3qbkrN+VZM{1Kl}>1K&=iPuDrcwZb5$Hag*z_u=Si+*vazzV~E9-i{#h4}#t zopJsNo_Ku2Yo4oOe2YhpS5T%30%YreI$HS(N>r7rx;_RD`uYm!sMj}Q!Oci7c^EKKR*8@giF=4^bnNGAUwNmO? zko55~oWsSXc;SWclfdrfh$)|!pwTf1j^9&uC;%i~&_>Q};7<>`zz=x0tQ_B6XduvG zk}`JKO4=Ow=(B^Mr-NHyvYY}gu13JiQ)U3XMHV5}*FA~=v<(F)*avP3^@5hJ-w8_| zxrvKOj{VTSy@IXH3@0NWdL^$-oc zHqg}zEJ%8+l$hg8ejQa@bhr=7FxjI~cm`^zsh3;1*uhljo<=KSRZ{CXQ;8YaRj@E} zrVVQF?!%Ypeh)a)iJS1U3YLGKc