From 0197772dfd21ac8bf7d3b97fa9746ebab6e521e3 Mon Sep 17 00:00:00 2001 From: gho tik Date: Mon, 3 Feb 2014 11:38:53 -0500 Subject: [PATCH] v2_02_61_src Former-commit-id: 8fb58ea5b1dd2df69ba59d210a80089f1e727def --- Include/dxwnd.h | 1 + build/dxwnd.dll | 4 ++-- build/dxwnd.exe | 2 +- build/dxwnd.ini | 12 +++++------ build/exports/Gruntz.dxw | 26 +++++++++++++++++++++++ build/readme-relnotes.txt | 2 ++ dll/ddraw.cpp | 42 +++++++++++++++++++++++++++++++++++++- dll/dxhook.cpp | 2 +- dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.suo | Bin 152992 -> 154112 bytes host/Resource.h | 2 +- host/TabDirectX.cpp | 1 + host/TargetDlg.cpp | 1 + host/TargetDlg.h | 1 + host/dxwndhost.aps | Bin 170700 -> 170940 bytes host/dxwndhost.rc | 19 +++++++++-------- host/dxwndhost.vs2008.suo | Bin 102912 -> 107008 bytes host/dxwndhostView.cpp | 2 ++ 18 files changed, 97 insertions(+), 22 deletions(-) create mode 100644 build/exports/Gruntz.dxw diff --git a/Include/dxwnd.h b/Include/dxwnd.h index 8bf3e55..e825a0e 100644 --- a/Include/dxwnd.h +++ b/Include/dxwnd.h @@ -130,6 +130,7 @@ #define HOOKGLIDE 0x00004000 // Hook glide calls #define HIDEDESKTOP 0x00008000 // Hide desktop background #define STRETCHTIMERS 0x00010000 // Enables timers stretching when TIMESTRETCH is on +#define NOFLIPEMULATION 0x00020000 // Compensate the effect of Flip-ping through Blt operations // logging Tflags DWORD: #define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general diff --git a/build/dxwnd.dll b/build/dxwnd.dll index e037b01..1356ba6 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f6f6dffdd6c64dfb4fca9318b394132c66ec7a1070122c384b78e0a8a52c45e2 -size 461824 +oid sha256:c6bba6804bdeb0de0f1ff7e02150e77f737c1f1bcbab40e6b192d48a7ab00451 +size 462848 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index 9b2e702..455ed96 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:84004748b9ed3c04e7d2d8101220a505a229bc299211e587a74ffd89cc85e154 +oid sha256:9eab6b03785ebc8bf84e56c3a16897517ad0b7b5f77bdba87630c6157b63dba6 size 535552 diff --git a/build/dxwnd.ini b/build/dxwnd.ini index 0ee1d17..6b38169 100644 --- a/build/dxwnd.ini +++ b/build/dxwnd.ini @@ -3680,19 +3680,19 @@ module147= opengllib147= ver147=0 coord147=0 -flag147=134235680 -flagg147=1207959560 +flag147=134234656 +flagg147=1207959552 flagh147=67108884 -flagi147=4 -tflag147=6419 +flagi147=131076 +tflag147=0 initx147=0 inity147=0 minx147=0 miny147=0 maxx147=0 maxy147=0 -posx147=0 -posy147=0 +posx147=50 +posy147=50 sizx147=800 sizy147=600 maxfps147=0 diff --git a/build/exports/Gruntz.dxw b/build/exports/Gruntz.dxw new file mode 100644 index 0000000..2148a0f --- /dev/null +++ b/build/exports/Gruntz.dxw @@ -0,0 +1,26 @@ +[target] +title0=Gruntz +path0=D:\Games\gruntz\GRUNTZ.EXE +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134234656 +flagg0=1207959552 +flagh0=67108884 +flagi0=131076 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 4c8e459..3511506 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -405,3 +405,5 @@ fixed time stretching to handle Total Soccer 2000 fixed ZBUFFER surface creation to handle GOG Incoming troubles on some cards fixed handling of special effects (wireframe, no fogging, zbuffer always) to be valid on all d3d versions +v2.02.61 +added directx "Compensate Flip emulation" flag: used primarily to get rid of mouse artifacts due to emulated Flip rpocedure in windowed mode. Fixes Gruntz issues and some other games... \ No newline at end of file diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index 18fdd56..6109910 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -741,6 +741,22 @@ CreateSurface2_Type pCreateSurfaceMethod(LPDIRECTDRAWSURFACE lpdds) return (CreateSurface2_Type)pCreateSurface1; } +GetSurfaceDesc2_Type pGetSurfaceDescMethod(LPDIRECTDRAWSURFACE lpdds) +{ + char sMsg[81]; + void * extUnlock; + extUnlock=(void *)*(DWORD *)(*(DWORD *)lpdds + 128); + if(extUnlock==(void *)extUnlock1) return (GetSurfaceDesc2_Type)pGetSurfaceDesc1; + if(extUnlock==(void *)extUnlock4) return pGetSurfaceDesc7 ? pGetSurfaceDesc7 : pGetSurfaceDesc4; + if(extUnlock==(void *)extUnlockDir1) return (GetSurfaceDesc2_Type)pGetSurfaceDesc1; + if(extUnlock==(void *)extUnlockDir4) return pGetSurfaceDesc7 ? pGetSurfaceDesc7 : pGetSurfaceDesc4; + sprintf_s(sMsg, 80, "pGetSurfaceDescMethod: pUnlock(%x) can't match %x\n", lpdds, extUnlock); + OutTraceDW(sMsg); + if (IsAssertEnabled) MessageBox(0, sMsg, "pGetSurfaceDescMethod", MB_OK | MB_ICONEXCLAMATION); + if (pGetSurfaceDesc4) return pGetSurfaceDesc4; + return (GetSurfaceDesc2_Type)pGetSurfaceDesc1; +} + int SurfaceDescrSize(LPDIRECTDRAWSURFACE lpdds) { char sMsg[81]; @@ -3191,6 +3207,8 @@ HRESULT WINAPI extFlip(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWSURFACE lpddssrc, { BOOL IsPrim; HRESULT res; + DDSURFACEDESC2 ddsd; + LPDIRECTDRAWSURFACE lpddsTmp; IsPrim=dxw.IsAPrimarySurface(lpdds); OutTraceDDRAW("Flip: lpdds=%x%s, src=%x, flags=%x(%s)\n", @@ -3198,7 +3216,6 @@ HRESULT WINAPI extFlip(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWSURFACE lpddssrc, if (!IsPrim){ if(lpddssrc){ - //return 0; res=(*pFlip)(lpdds, lpddssrc, dwflags); } else{ @@ -3234,6 +3251,20 @@ HRESULT WINAPI extFlip(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWSURFACE lpddssrc, if((dwflags & DDFLIP_WAIT) || (dxw.dwFlags1 & SAVELOAD)) lpPrimaryDD->WaitForVerticalBlank(DDWAITVB_BLOCKEND , 0); + if(dxw.dwFlags4 & NOFLIPEMULATION){ + memset(&ddsd, 0, sizeof(ddsd)); + ddsd.dwSize = SurfaceDescrSize(lpdds); + //if(pGetSurfaceDesc1) (*pGetSurfaceDesc1)(lpDDSBack, (LPDDSURFACEDESC)&ddsd); + (*pGetSurfaceDescMethod(lpdds))((LPDIRECTDRAWSURFACE2)lpDDSBack, &ddsd); + ddsd.dwFlags &= ~DDSD_PITCH; + //DumpSurfaceAttributes((LPDDSURFACEDESC)&ddsd, "[temp]" , __LINE__); + res=(*pCreateSurfaceMethod(lpdds))(lpPrimaryDD, &ddsd, &lpddsTmp, NULL); + if(res) OutTraceE("CreateSurface: ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__); + // copy front buffer + res= (*pBlt)(lpddsTmp, NULL, lpdds, NULL, DDBLT_WAIT, NULL); + if(res) OutTraceE("Blt: ERROR %x(%s) at %d", res, ExplainDDError(res), __LINE__); + } + if(lpddssrc){ //res=lpdds->Blt(0, lpddssrc, 0, DDBLT_WAIT, 0); res=sBlt("Flip", lpdds, NULL, lpddssrc, NULL, DDBLT_WAIT, 0, TRUE); @@ -3254,6 +3285,15 @@ HRESULT WINAPI extFlip(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWSURFACE lpddssrc, } else res=sBlt("Flip", lpdds, NULL, lpDDSBack, NULL, DDBLT_WAIT, 0, TRUE); + + lpddssrc = lpDDSBack; + } + + if(dxw.dwFlags4 & NOFLIPEMULATION){ + // restore flipped backbuffer + res= (*pBlt)(lpddssrc, NULL, lpddsTmp, NULL, DDBLT_WAIT, NULL); + if(res) OutTraceE("Blt: ERROR %x(%s) at %d", res, ExplainDDError(res), __LINE__); + (*pReleaseS)(lpddsTmp); } if(res) OutTraceE("Flip: Blt ERROR %x(%s)\n", res, ExplainDDError(res)); diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp index 6d670e0..ff1788d 100644 --- a/dll/dxhook.cpp +++ b/dll/dxhook.cpp @@ -72,7 +72,7 @@ static char *Flag4Names[32]={ "ZBUFFERCLEAN", "ZBUFFER0CLEAN", "ZBUFFERALWAYS", "DISABLEFOGGING", "NOPOWER2FIX", "NOPERFCOUNTER", "ADDPROXYLIBS", "INTERCEPTRDTSC", "LIMITSCREENRES", "NOFILLRECT", "HOOKGLIDE", "HIDEDESKTOP", - "STRETCHTIMERS", "", "", "", + "STRETCHTIMERS", "NOFLIPEMULATION", "", "", "", "", "", "", "", "", "", "", "", "", "", "", diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index 8f2c2ca..880edbd 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.60" +#define VERSION "2.02.61" #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 7cf425819a1a5f913c731daf51d2c81c75c2a579..78dec3310ac46f8fec06ddcc52504c27494152a2 100644 GIT binary patch delta 9014 zcmcJVeRver*~aIY?1m&jSVDvlVzPm30thh)A$*Aq5d|^$QnY9xd|5yXqA>)pMA$^J zpaldr=J@grML?}U+`d_@wgsVpA0<>!plD4ILHnT;BN$N9``&#L_UiRsDSyawU3bns zzjybT8Xd_4)K>cW;!I>q*h1=|F=<(Mn=AG zTUJC{-@JAUq~4e6>f_6I#ryMJkISGKOT@Blet5_qCtg!MLg=Avyz#S=hN{ zHm;J9{t;;n4&NR}cI1AbQjdRLkGHTKo9!>nOmaG&N6r0}edb)>cepjxnruzM-xAd4 zHtVO>gYdJk5hEG(=hDO0Y^?tYd@#qi+jWn>>W34$$Lzz7G9k-0#ml9@pFeNm80Qi! zw{EVPzy45KCK{-7<1c%Dg*D$oF{tPTluMznq05bpjnp^r4bUaaf4VU-DS&-07gKyr zqD)k!JW!J?`4QPJB!oBTY%EtojBviKjb;4?N-;xbNr&rWu=)r8k&@cpvOG{+FvZC| zSb^74WteR?Et9UMc$37NEtRst3|%emh&(IXtf&)@%r+Gs@t9o|l4vqlON?=?Kou*W zl?Tn)TuG}+k>o&fx}1#On)aO7TXMwqtt^Z4J+!1_pm3EOlbSr)+scU(Zge%blamc# z1sVoRrzq)SHr^&3l48+Lt)VthTPOi)2e}|${=M-@+@>iy113T}q4PMA6_fi%-2i_M zzIyT~sTnT$4s+jFahpknlJ2WZcKBjuxO}dJc(b`d;sU!0CBJPTZH;^==1>LBs`=Cc zNgE`}u9+aqV;wxCseDitI{t(UZ<1z8clUd6hoK`7*METWD0B=u4h5#nl+Dg)Hg7P3 z&7In`6n@cGqrx>%uowE|hrI%i%#wDt$zLe>X4h<4=zJKP^=)o7Q#wcPmf6kAf%-WT z8)4oolbZwi^JJ(P$K%q`tSXaqlj9M0psq~Z_F!?K%R&*519C!oFg^R)FJri)pLH`09qqw^@`X|!ZE~KG z9CIjJ9Hw}UxB}DbqzYFlOK`Yz5-D>6k|bU1K+;M%B_=Kj7ulUA`=roUF)bz7adAWG zeC3KtsTr~wU3lj*R6n>|w?~$3sS?|a&XSHR3u4WC9?3MWT!{_DX304*Sz{%sYK1rg z?p&!8v&(}n6E{{|65M_J@p6NdgvP}~MbgG(jgwwg>tu>|6>gxbp*7H2XdSd3+5l~Y zHbK9HHbc)tTcEAbHs}TDMd&5ySJ2DQc4!B*6RL(@f&9>~q5p$wpaAqL^jd`FwSEKh zI&>2HE%ZC+_s}kAH}od72ign$0on)chYmn*L2pCvK<`3-gbqTr&>`qg(0kBf=m_*a z#1U{*%i|H=5a1~N5bz`DFVM$O9rRa-8+?ND6!a-{8ae}g27M0w4f;F8ynkx>CCanV zzo2u_S5Q6lHFO@j0DS{BB;(IT=o0iT^c{2=YJ@C@WvVMB!z>?*4&2ZF`a-%6vvb%IU<9yA=jlZ$6g#kCGlU-oiC)nvG zt3l!eFP6&~F|V$Y?i?*~X5cc(t2!xrBIPk0ro8zurv9Xqo6?IorFEakm^R1Io>P#) zsJh;s5qe}_8FGJ)pFDSi$k>(#a5G97a4 zF=o$c8C*47x`yr-9aaC;VE?JEn}Ui^r9nSH`Bgpez+HLp%{yuxseW$m*eN z09a3W9^dMtkjeevZ$mji84r>R&nQ&J%8XQ2q$~w&ys|0E++b6c{Zv^w*mPyHoj5)Z zIu@Fv(5s0auySQSWxS@9%C;)wwcn=fpfYx*T4iUH-2(QRvIdmAnX`S&cMUREs?F?+ zQtK>3(o4C}Y1^s%%9VTdAx{8PY7H zY_+l>VBR$ff3J`S-lgoIGS>VEJjd!$WqsjmHSf=1c^|`1z`8nRBj8VH-dSZp*1tl` zYn@a0W5BO8k>iX99R}GPbBG9K5s`oZ%SJU|)y+D-6xqMRFK zXn(>-vA{Xyd`)}>J_nw$NZC{Hii37S1M1%iWACc3)slVdkPFwJwLcsNkH9mIDdTzzv)Nlw zM4;sI4bXATi&9nq76Z@dsH{JHCuMGB*MZ#&&(?jwtB^MuPMaAIE2A$~R-)`~uvy9$ zDH{W}SlOyDwp!WC$_62CyRz4n1<%r>ukgCZ`4#3XJ%TS$ct~AmUBz3O`CU?QLmb${H?oN>9Yk|6=kl0KeeKca z%g%P&7B&dvbhLX)3kl}V6nnl|lx)BJUy{;gL{k&-)!R{)U6Y3ytDuOBuJx=3I=?S0P{d z@-*?Tu*AES{U|JNjIwcIc}2=5D&yPTBxN&|@fZ&&E8$#>XGihfu@g#84!PV9nx%<+ zm2b-9{45>oI6osB0`a|)!Fd)LTZz-F6qI}uY|7&tjKMDlWWk5%Y%K8gaIQi=clcR> zQK^gr8WglMS;d%XQP$xk zuwh|rEIgm!BeIq8(yfK( z-EWh!?(lsy@1U|0FmJ8G!(s4#~- z$-tD)gR(nHCj9_9ryKWEb`My8c*bqY=!YpAuB;c>2xSwL{RnKLvgsk_4bEL=C|s*_$D#JWHWTElnIGf$Z2qU9?|p*YF0}6!=f^z%Yc)Z>n)$KU zjS5_&3G&s} zhyz-gC*a>w_5sS^_~%37sKV2lct6+~W#1^{1ExWljYlNUZXy)H$0eeTvi0z7mGx6r z0@h#speroH8jJ+_g9Qe}Ov>?Su}sfS!X``vmBJ)%#icyu(r@*KE9qAGj7Z zf2DPPfM;;%V{A_FW2}?y_;mC7NdBJiocQJqOP4;OjTc{88I2?Das^lR3$2W6Ug`V? zwwxYl7+`PhVz#{|38CLiCOP9x>010|R#hmjd-w>xthJ29&RBCkBIy~elrb-=$!p0x z{<8ps|1c2N62YI~ntl_?aBSJIB_sIL|H&=*_lAN=QsqmWjDKXP#=o6pC*!xJc75!j T{2u{+B$?XMM~9U;_I>{b7Ge+} delta 11641 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 Q;TN7XCxyKM-l44j0r1<27ytkO diff --git a/host/Resource.h b/host/Resource.h index c0b4241..c28ba0a 100644 --- a/host/Resource.h +++ b/host/Resource.h @@ -56,7 +56,6 @@ #define IDC_EMULATESURFACE 1011 #define IDC_AUTOMATIC 1012 #define IDC_MODIFYMOUSE 1013 -//#define IDC_HANDLEDC 1014 #define IDC_SAVELOAD 1015 #define IDC_INITX 1016 #define IDC_INITY 1017 @@ -205,6 +204,7 @@ #define IDC_NOFILLRECT 1162 #define IDC_HIDEDESKTOP 1163 #define IDC_STRETCHTIMERS 1164 +#define IDC_NOFLIPEMULATION 1165 #define ID_MODIFY 32771 #define ID_DELETE 32772 #define ID_ADD 32773 diff --git a/host/TabDirectX.cpp b/host/TabDirectX.cpp index 0efd812..66b9ad4 100644 --- a/host/TabDirectX.cpp +++ b/host/TabDirectX.cpp @@ -44,6 +44,7 @@ void CTabDirectX::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX, IDC_NOALPHACHANNEL, cTarget->m_NoAlphaChannel); DDX_Check(pDX, IDC_FIXREFCOUNTER, cTarget->m_FixRefCounter); DDX_Check(pDX, IDC_ADDPROXYLIBS, cTarget->m_AddProxyLibs); + DDX_Check(pDX, IDC_NOFLIPEMULATION, cTarget->m_NoFlipEmulation); //DDX_Check(pDX, IDC_SAVECAPS, cTarget->m_SaveCaps); } diff --git a/host/TargetDlg.cpp b/host/TargetDlg.cpp index 50043fc..03e2bb6 100644 --- a/host/TargetDlg.cpp +++ b/host/TargetDlg.cpp @@ -79,6 +79,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/) m_SaveLoad = FALSE; m_SlowDown = FALSE; m_BlitFromBackBuffer = FALSE; + m_NoFlipEmulation = FALSE; m_SuppressClipping = FALSE; m_DisableGammaRamp = FALSE; m_AutoRefresh = FALSE; diff --git a/host/TargetDlg.h b/host/TargetDlg.h index 18ba2c4..72a320a 100644 --- a/host/TargetDlg.h +++ b/host/TargetDlg.h @@ -60,6 +60,7 @@ public: BOOL m_SaveLoad; BOOL m_SlowDown; BOOL m_BlitFromBackBuffer; + BOOL m_NoFlipEmulation; BOOL m_SuppressClipping; BOOL m_DisableGammaRamp; BOOL m_AutoRefresh; diff --git a/host/dxwndhost.aps b/host/dxwndhost.aps index 0e149a6dfafa465db4d887ea86fe64af1d624b71..1079619259363f3a8f376a3172565c66daef3187 100644 GIT binary patch delta 5520 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 diff --git a/host/dxwndhost.rc b/host/dxwndhost.rc index 9884c9d..bf1887c 100644 --- a/host/dxwndhost.rc +++ b/host/dxwndhost.rc @@ -337,17 +337,18 @@ BEGIN CONTROL "Suppress DX common errors",IDC_SUPPRESSDXERRORS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,40,127,10 CONTROL "Make Backbuf attachable",IDC_BACKBUFATTACH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,52,119,10 CONTROL "Blit from BackBuffer",IDC_BLITFROMBACKBUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,64,119,10 - CONTROL "Suppress clipping",IDC_SUPPRESSCLIPPING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,76,119,10 - CONTROL "Palette update don't Blit",IDC_NOPALETTEUPDATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,88,119,10 - CONTROL "Set AERO compatible mode",IDC_SETCOMPATIBILITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,100,109,12 + CONTROL "Suppress clipping",IDC_SUPPRESSCLIPPING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,88,119,10 + CONTROL "Palette update don't Blit",IDC_NOPALETTEUPDATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,100,119,10 + CONTROL "Set AERO compatible mode",IDC_SETCOMPATIBILITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,112,109,12 CONTROL "Disable HAL support",IDC_DISABLEHAL,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | WS_TABSTOP,118,216,109,12 - CONTROL "Forces HEL ",IDC_FORCESHEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,112,109,12 - CONTROL "Win7 color fix",IDC_COLORFIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,124,109,12 - CONTROL "Don't fix the Pixel Format",IDC_NOPIXELFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,136,109,12 + CONTROL "Forces HEL ",IDC_FORCESHEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,124,109,12 + CONTROL "Win7 color fix",IDC_COLORFIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,136,109,12 + CONTROL "Don't fix the Pixel Format",IDC_NOPIXELFORMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,148,109,12 CONTROL "by default set no ALPHACHANNEL",IDC_NOALPHACHANNEL, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,148,123,12 - CONTROL "Fix ddraw ref counter",IDC_FIXREFCOUNTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,160,123,12 - CONTROL "Add proxy libs",IDC_ADDPROXYLIBS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,172,123,12 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,160,123,12 + CONTROL "Fix ddraw ref counter",IDC_FIXREFCOUNTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,172,123,12 + CONTROL "Add proxy libs",IDC_ADDPROXYLIBS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,184,123,12 + CONTROL "Compensate Flip emulation",IDC_NOFLIPEMULATION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,76,119,10 END IDD_TAB_INPUT DIALOGEX 0, 0, 300, 240 diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index f21bee9e2bba6d735a7ef4fa1c51595f60ef3f28..90f85548206229c3763bc94dc128d311b9f74afc 100644 GIT binary patch delta 11613 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 diff --git a/host/dxwndhostView.cpp b/host/dxwndhostView.cpp index 351a9b0..c0d3d68 100644 --- a/host/dxwndhostView.cpp +++ b/host/dxwndhostView.cpp @@ -188,6 +188,7 @@ static void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg) if(dlg->m_SaveLoad) t->flags |= SAVELOAD; if(dlg->m_SlowDown) t->flags |= SLOWDOWN; if(dlg->m_BlitFromBackBuffer) t->flags |= BLITFROMBACKBUFFER; + if(dlg->m_NoFlipEmulation) t->flags4 |= NOFLIPEMULATION; if(dlg->m_SuppressClipping) t->flags |= SUPPRESSCLIPPING; if(dlg->m_DisableGammaRamp) t->flags2 |= DISABLEGAMMARAMP; if(dlg->m_AutoRefresh) t->flags |= AUTOREFRESH; @@ -344,6 +345,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg) dlg->m_SaveLoad = t->flags & SAVELOAD ? 1 : 0; dlg->m_SlowDown = t->flags & SLOWDOWN ? 1 : 0; dlg->m_BlitFromBackBuffer = t->flags & BLITFROMBACKBUFFER ? 1 : 0; + dlg->m_NoFlipEmulation = t->flags4 & NOFLIPEMULATION ? 1 : 0; dlg->m_SuppressClipping = t->flags & SUPPRESSCLIPPING ? 1 : 0; dlg->m_DisableGammaRamp = t->flags2 & DISABLEGAMMARAMP ? 1 : 0; dlg->m_AutoRefresh = t->flags & AUTOREFRESH ? 1 : 0;