From 654b8fa6445ac03080cb61049990e2c6d063f802 Mon Sep 17 00:00:00 2001 From: gho tik Date: Sun, 21 Sep 2014 12:39:48 -0400 Subject: [PATCH] v2_02_93_src Former-commit-id: 34653f7f041378ba8ceb1e842ff4e8cd9760634b --- build/dxwnd.dll | 2 +- build/dxwnd.ini | 7 +++---- build/readme-relnotes.txt | 3 +++ dll/ddraw.cpp | 22 ++++++++++++++++------ dll/dxhook.cpp | 2 +- dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.suo | Bin 259584 -> 280576 bytes host/dxwndhost.vs2008.suo | Bin 99328 -> 99328 bytes 8 files changed, 25 insertions(+), 13 deletions(-) diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 50375db..c612fee 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c41e3a123c1b71a51f0f3eebd344a4c96b760b10fa30c715d323825501aad96f +oid sha256:0f5388e87978467245275dcb12d802fcb1ce55d4f4a0ee2217711fcef520bd3a size 506368 diff --git a/build/dxwnd.ini b/build/dxwnd.ini index 88543b8..cbf8478 100644 --- a/build/dxwnd.ini +++ b/build/dxwnd.ini @@ -1,7 +1,6 @@ [window] -posx=492 -posy=330 +posx=1207 +posy=326 sizx=320 -sizy=274 +sizy=200 lang=automatic - diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index c98db8c..fab13f9 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -600,3 +600,6 @@ v2.02.92 fix: "Keep aspect ratio" fixed for AERO environment fix: improved "Oprtimized for AERO mode" compatibility, both when set / unset. fix: Skip / Limit FPS now acting on full scren blits only. For instance, they no longer slow cursor sprite. + +v2.02.93 +fix: handling of primary / backbuffer surfaces when DDSCAPS_3DDEVICE is set (es. Fifa 99 in Direct3D mode) diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index e17b0e7..020f419 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -3,7 +3,7 @@ #define _CRT_SECURE_NO_WARNINGS #define INITGUID -#define FULLHEXDUMP +//#define FULLHEXDUMP #include #include @@ -19,6 +19,7 @@ extern BOOL IsChangeDisplaySettingsHotPatched; BOOL bDontReleaseBackBuffer = FALSE; +BOOL bIs3DPrimarySurfaceDevice = FALSE; // DirectDraw API HRESULT WINAPI extDirectDrawCreate(GUID FAR *, LPDIRECTDRAW FAR *, IUnknown FAR *); @@ -2557,13 +2558,17 @@ static HRESULT BuildPrimaryDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf DDSURFACEDESC2 ddsd; HRESULT res; - // v2.02.92: don't move primary / backbuf surfaces on systemmemory when 3DDEVICE is requested - // if(lpddsd->ddsCaps.dwCaps & DDSCAPS_3DDEVICE) dxw.dwFlags5 &= ~SYSTEMMEMORY; - // genuine primary surface memcpy((void *)&ddsd, lpddsd, lpddsd->dwSize); ddsd.dwFlags &= ~(DDSD_WIDTH|DDSD_HEIGHT|DDSD_BACKBUFFERCOUNT|DDSD_REFRESHRATE|DDSD_PIXELFORMAT); ddsd.ddsCaps.dwCaps &= ~(DDSCAPS_FLIP|DDSCAPS_COMPLEX); + // v2.02.93: don't move primary / backbuf surfaces on systemmemory when 3DDEVICE is requested + // this impact also on capabilities for temporary surfaces for AERO optimized handling + bIs3DPrimarySurfaceDevice = FALSE; + if(lpddsd->ddsCaps.dwCaps & DDSCAPS_3DDEVICE) { + ddsd.ddsCaps.dwCaps &= ~DDSCAPS_SYSTEMMEMORY; + bIs3DPrimarySurfaceDevice = TRUE; + } // create Primary surface DumpSurfaceAttributes((LPDDSURFACEDESC)&ddsd, "[Primary]" , __LINE__); @@ -2657,7 +2662,11 @@ static HRESULT BuildBackBufferDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateS ddsd.dwFlags &= ~(DDSD_WIDTH|DDSD_HEIGHT|DDSD_BACKBUFFERCOUNT|DDSD_REFRESHRATE|DDSD_PIXELFORMAT); ddsd.dwFlags |= (DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH); ddsd.ddsCaps.dwCaps &= ~(DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_COMPLEX); - ddsd.ddsCaps.dwCaps |= DDSCAPS_SYSTEMMEMORY; + // v2.02.93: don't move primary / backbuf surfaces on systemmemory when 3DDEVICE is requested + if(lpddsd->ddsCaps.dwCaps & DDSCAPS_3DDEVICE) + ddsd.ddsCaps.dwCaps &= ~DDSCAPS_SYSTEMMEMORY; + else + ddsd.ddsCaps.dwCaps |= DDSCAPS_SYSTEMMEMORY; if (dxversion >= 4) ddsd.ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; ddsd.dwWidth = dxw.GetScreenWidth(); ddsd.dwHeight = dxw.GetScreenHeight(); @@ -3117,7 +3126,8 @@ HRESULT WINAPI PrimaryStretchBlt(LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect, L TmpRect.bottom = ddsd.dwHeight = lpdestrect->bottom - lpdestrect->top; TmpRect.right = ddsd.dwWidth = lpdestrect->right - lpdestrect->left; ddsd.dwFlags = (DDSD_HEIGHT | DDSD_WIDTH | DDSD_CAPS); - ddsd.ddsCaps.dwCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY); + // capabilities must cope with primary / backbuffer surface capabilities to get speedy operations + ddsd.ddsCaps.dwCaps = bIs3DPrimarySurfaceDevice ? DDSCAPS_OFFSCREENPLAIN : (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY); res=(*pCreateSurface1)(lpPrimaryDD, &ddsd, &lpddsTmp, NULL); if(res) OutTraceE("CreateSurface: ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__); // stretch-blit to target size on OFFSCREENPLAIN temp surface diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp index 48f95b6..a2aee83 100644 --- a/dll/dxhook.cpp +++ b/dll/dxhook.cpp @@ -94,7 +94,7 @@ static char *Flag4Names[32]={ static char *Flag5Names[32]={ "DIABLOTWEAK", "CLEARTARGET", "NOWINPOSCHANGES", "SYSTEMMEMORY", - "NOBLT", "-----", "DOFASTBLT", "AEROBOOST", + "NOBLT", "--DOSTRETCHBLT---", "DOFASTBLT", "AEROBOOST", "", "", "", "", "", "", "", "", "", "", "", "", diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index c9acb62..8701f59 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -24,7 +24,7 @@ along with this program. If not, see . #include "dxwnd.h" #include "dxwcore.hpp" -#define VERSION "2.02.92" +#define VERSION "2.02.93.f1" #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 0fd5be24f1e3ec0f95e7958a4369119575f5ed0c..440c27a2dffd91cebc2e4c2e2d870e58c23fc08e 100644 GIT binary patch delta 17641 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 F{|0?e8t4E3 delta 8323 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 diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index f76224a15e8f0323fab278f16596850bb4549b71..db99b625eb4d32ee27af1f83f51e3ce4cca61f76 100644 GIT binary patch delta 1714 zcmZ8iZETZO6n;AJ!O@}Wg1f({&GpnMFv zO>yC4h8?$~WTHbQXdD5GF7Xf5p(2LpNKxVsoyPdnOfnN7YCU&rL!il%d*6HRJ@>ii zdG2kzT^n!Lo)6_fS7KGpRM0jQ+D_a}B^u>gElkAT6^~-9*o@vT8Smt-)JpRtNg9_O zPBcwem!oXqp~;Cs!)?F;c@~c3Mes_#7n|}Uio&7X>}(v#=ZMS^W0e-hb4Z^Jy*FYU z2Q`Vm3s+Bo3E9C!lhd)@Qm&DJr;49{`*nG&CrN7k^~A+Pzv7F^hqCsry;na~le)-S_& zsWo9eeN&mZO?h9FD@p0JC_FYa7vrB^D`(x*`vfMhMREA7OqYBR;_dL*XC|14E}U7zZ7!7StDAJg2i5 z9un7dbspFsAd`{)VHY%hGY@j_PsC5I9ep@g_*=bM z9y>4I3cB)7@bXRuGTvaUqG}B+hRgk38hBv}MO`ollY4`hoMeCsY`#%LKe=F|;Nce> z9MpLLJQQ<-o0BdoKaSy(CMd(pea`L~Y=Xc#GnE_!b9X6Jj4g7{hRHPKW?g2|>!q+6 zzvv54*a>DR;8pYQ>qf(6ENG+*LNrnaw{VD0txgA%JVVe8)_Ty>pn{pL;iQ)FT?Vv$$~3#_AmLr~K_2ci(cK~I+~ zo|Vp@!#N8iiPAOD25b4ei!j(@;A^6XkYIJj!&`_$vH>on`Y`_Fay*}sF?h5R=2Fqv zC0-~BsnWYMncG)CI8c4d3yVd?xkR<7)_KwL;~$^S0gbU=qk;-zdTdnk<};O`fksT1 zI!U$hR=;~HH(#&rJfR#;2}tuRX|5ziXk4YMy! gwenNQe+>qaRB%U!#cQcBZ7fo@bR4rPU|>&nK64&0O&gGL7yC7Q8r zkVya+wgWrCtfL?X=J zdd_p+De&!U^I9?Ld=~=5tG3In(qBMrkE%1B_rJ7+c6l#(dt1s}xm?%8wl z?Q=#I-tZn%GmbRT4Ev!4Cx#rDYjmpx;ZfdK(RC-cK>FSU71VD72j0o%OA{}AptBer z>VWCXYOwz&wWJ&4KPz+}G0Yu<F~_1g@gORBoB`5RADG>0-!l7ppmXDhX{uJ zBa~SV8s#{>RqGcQcjos>|Z+JgIem2fP-=?U^_}Xd}LV(zg_qtJ4pwHFKb)Ol#FnUo-pjgj<*b$JSS3lgvpYRn(p_{eopA% zpCEXYKz5W~4Z=M7B?6r&jRh&k)?DWd!^$z8(v;0-gSfCms1aI)^}=4EMR*2xW$oyD zzlQOQLmhrNT8n){7TCZ9c^WmNd5rUQ>0t9@s9aqTU+6Ip+F&oU&w`n&ad?8=Y#aDC zjvZMIJddAMtj3SpeR$_^2^vxy`;b>Y_?-yMd>fO-ikW!^sG+Vfbm8A8T;Rvf8_o2i z1g*+kY@Mk)@{XB~+CVe#QXDLk;nVwr+O=Fq9d^f8v;_KQ(#@qTBO5_A-P!>6;4wU!Dp9D*{A+i^Nk&k@wyR!dA~%ktr3_