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

v2_02_47_src

Former-commit-id: 38a199acb7537854a60dfd48bf3af78943eb775d
This commit is contained in:
gho tik 2013-07-12 12:38:33 -04:00 committed by Refael ACkermann
parent 904be61ef6
commit b090498d29
34 changed files with 530 additions and 206 deletions

View File

@ -117,6 +117,9 @@
#define SUPPRESSCHILD 0x00000002 // suppress child process generation (CreateProcessA, ...?)
#define FIXREFCOUNTER 0x00000004 // fixes the reference counter for the main directdraw session (the one connected to primary surfaces)
#define SHOWTIMESTRETCH 0x00000008 // Shows time stretching multiplier on screen overlay
#define ZBUFFERCLEAN 0x00000010 // Clean ZBUFFER upon (fix for "Star Wars Ep. I - Racer")
#define ZBUFFER0CLEAN 0x00000020 // Clean ZBUFFER upon (fix for "Star Wars Ep. I - Racer")
#define ZBUFFERALWAYS 0x00000040 // Forces ZBUFFER D3DCMP_ALWAYS condition to show all planes....
// logging Tflags DWORD:
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c96cb2622942095b2b952937cc60ce9ba524aaf8921ddfc68088c370d79d2ff1
size 426496
oid sha256:404c01ee20ad1832dc37c27ab836098886b2f3363181e6976a52457ecd82d59e
size 430592

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:97bc60a26fa1ffe141ac022b2baadea04bef5c3b2d9072c19d606d61261266bc
size 532992
oid sha256:a5c2c347ab9be31f30206cc590f69d6d24bbd4e63aca63bea0f46931ef7afcb1
size 531968

View File

@ -75,10 +75,10 @@ opengllib3=
ver3=0
coord3=0
flag3=671088674
flagg3=1207959552
flagg3=-939524096
flagh3=20
flagi3=4
tflag3=0
tflag3=3
initx3=0
inity3=0
minx3=0
@ -284,7 +284,7 @@ coord12=0
flag12=134234148
flagg12=1207959552
flagh12=20
flagi12=4
flagi12=36
tflag12=258
initx12=0
inity12=0
@ -489,7 +489,7 @@ opengllib21=
ver21=0
coord21=0
flag21=679485472
flagg21=1207959552
flagg21=-939524096
flagh21=20
flagi21=4
tflag21=0
@ -765,9 +765,9 @@ opengllib33=
ver33=0
coord33=0
flag33=134234148
flagg33=1207959808
flagg33=-939523840
flagh33=20
flagi33=0
flagi33=16
tflag33=2
initx33=0
inity33=0
@ -857,7 +857,7 @@ opengllib37=
ver37=0
coord37=0
flag37=134217762
flagg37=1207963648
flagg37=-939520000
flagh37=20
flagi37=4
tflag37=0
@ -1293,11 +1293,11 @@ module56=
opengllib56=
ver56=0
coord56=2
flag56=687865888
flagg56=1207959568
flag56=671088672
flagg56=1207959696
flagh56=65556
flagi56=0
tflag56=2
tflag56=3
initx56=0
inity56=0
minx56=0
@ -1471,8 +1471,54 @@ sizx63=800
sizy63=600
maxfps63=0
initts63=0
title64=Star Wars Episode I Racer
path64=D:\Games\Star Wars Episode 1 racer\SWEP1RCR.EXE
module64=
opengllib64=
ver64=0
coord64=0
flag64=679493669
flagg64=1210056720
flagh64=8212
flagi64=20
tflag64=67
initx64=0
inity64=0
minx64=0
miny64=0
maxx64=0
maxy64=0
posx64=50
posy64=50
sizx64=800
sizy64=600
maxfps64=0
initts64=0
title65=Mageslayer
path65=D:\Games\MAGE\MAGESLAY.EXE
module65=
opengllib65=
ver65=0
coord65=0
flag65=134217762
flagg65=1207959552
flagh65=20
flagi65=0
tflag65=67
initx65=0
inity65=0
minx65=0
miny65=0
maxx65=0
maxy65=0
posx65=50
posy65=50
sizx65=800
sizy65=600
maxfps65=0
initts65=0
[window]
posx=1360
posy=603
sizx=497
sizy=410
posx=1056
posy=200
sizx=638
sizy=670

View File

@ -8,8 +8,8 @@ coord0=0
flag0=134234148
flagg0=1207959552
flagh0=20
flagi0=4
tflag0=259
flagi0=36
tflag0=258
initx0=0
inity0=0
minx0=0

View File

@ -0,0 +1,24 @@
[target]
title0=Star Wars Episode I Racer
path0=D:\Games\Star Wars Episode 1 racer\SWEP1RCR.EXE
module0=
opengllib0=
ver0=0
coord0=0
flag0=679493669
flagg0=1210056720
flagh0=8212
flagi0=20
tflag0=67
initx0=0
inity0=0
minx0=0
miny0=0
maxx0=0
maxy0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0

View File

@ -1,3 +1,4 @@
Ancient Evil: working both in emulated / direct mode, but in emulated mode the cursor is not visible.
window handling for ddraw8 games - see WildFire with keep aspect ratio & client area
"devastation" intro movie - bad cooordinates
"devastation" intro movie - bad cooordinates
Praetorians: bad splash screen & crash

View File

@ -312,3 +312,11 @@ A small fix for ddraw 7 games that makes Praetorians playable, though with some
v2.02.46
Fixed handling of user32 CreateDialogIndirectParam call to avoid processing in non fullscreen mode - fix necessary to start "Crimson Skies".
v2.02.47
GUI:
Configuration tabs reorganization: now some tabs have merged making it easier to reach all options
core:
improved d3d wrapping and sdded ZBUFFER cleanup flags to fix some d3d games. In particular:
Clean ZBUFFER @1.0 fix: to fix "Star Wars Episode I Racer"
Clean ZBUFFER @0.0 fix: to fix "Crimson Skies" black blocks bug on ATI cards

View File

@ -2,6 +2,7 @@
#include <windows.h>
#include <stdio.h>
#include <ddraw.h>
#include <d3d.h>
#include "dxwnd.h"
@ -1572,4 +1573,92 @@ char *ExplainRasterCaps(DWORD c)
return(eb);
}
char *ExplainD3DRenderState(DWORD c)
{
char *p;
if((c>=D3DRENDERSTATE_STIPPLEPATTERN00) && (c<=D3DRENDERSTATE_STIPPLEPATTERN31)) p="STIPPLEPATTERNnn";
else
if((c>=D3DRENDERSTATE_WRAP0) && (c<=D3DRENDERSTATE_WRAP7)) p="WRAPn";
else
switch(c){
case D3DRENDERSTATE_ANTIALIAS: p="ANTIALIAS"; break;
case D3DRENDERSTATE_TEXTUREPERSPECTIVE: p="TEXTUREPERSPECTIVE"; break;
case D3DRENDERSTATE_ZENABLE: p="ZENABLE"; break;
case D3DRENDERSTATE_FILLMODE: p="FILLMODE"; break;
case D3DRENDERSTATE_SHADEMODE: p="SHADEMODE"; break;
case D3DRENDERSTATE_LINEPATTERN: p="LINEPATTERN"; break;
case D3DRENDERSTATE_ZWRITEENABLE: p="ZWRITEENABLE"; break;
case D3DRENDERSTATE_ALPHATESTENABLE: p="ALPHATESTENABLE"; break;
case D3DRENDERSTATE_LASTPIXEL: p="LASTPIXEL"; break;
case D3DRENDERSTATE_SRCBLEND: p="SRCBLEND"; break;
case D3DRENDERSTATE_DESTBLEND: p="DESTBLEND"; break;
case D3DRENDERSTATE_CULLMODE: p="CULLMODE"; break;
case D3DRENDERSTATE_ZFUNC: p="ZFUNC"; break;
case D3DRENDERSTATE_ALPHAREF: p="ALPHAREF"; break;
case D3DRENDERSTATE_ALPHAFUNC: p="ALPHAFUNC"; break;
case D3DRENDERSTATE_DITHERENABLE: p="DITHERENABLE"; break;
case D3DRENDERSTATE_ALPHABLENDENABLE: p="ALPHABLENDENABLE"; break;
case D3DRENDERSTATE_FOGENABLE: p="FOGENABLE"; break;
case D3DRENDERSTATE_SPECULARENABLE: p="SPECULARENABLE"; break;
case D3DRENDERSTATE_ZVISIBLE: p="ZVISIBLE"; break;
case D3DRENDERSTATE_STIPPLEDALPHA: p="STIPPLEDALPHA"; break;
case D3DRENDERSTATE_FOGCOLOR: p="FOGCOLOR"; break;
case D3DRENDERSTATE_FOGTABLEMODE: p="FOGTABLEMODE"; break;
case D3DRENDERSTATE_FOGSTART: p="FOGSTART"; break;
case D3DRENDERSTATE_FOGEND: p="FOGEND"; break;
case D3DRENDERSTATE_FOGDENSITY: p="FOGDENSITY"; break;
case D3DRENDERSTATE_EDGEANTIALIAS: p="EDGEANTIALIAS"; break;
case D3DRENDERSTATE_COLORKEYENABLE: p="COLORKEYENABLE"; break;
case D3DRENDERSTATE_STENCILENABLE: p="STENCILENABLE"; break;
case D3DRENDERSTATE_ZBIAS: p="ZBIAS"; break;
case D3DRENDERSTATE_RANGEFOGENABLE: p="RANGEFOGENABLE"; break;
case D3DRENDERSTATE_STENCILFAIL: p="STENCILFAIL"; break;
case D3DRENDERSTATE_STENCILZFAIL: p="STENCILZFAIL"; break;
case D3DRENDERSTATE_STENCILPASS: p="STENCILPASS"; break;
case D3DRENDERSTATE_STENCILFUNC: p="STENCILFUNC"; break;
case D3DRENDERSTATE_STENCILREF: p="STENCILREF"; break;
case D3DRENDERSTATE_STENCILMASK: p="STENCILMASK"; break;
case D3DRENDERSTATE_STENCILWRITEMASK: p="STENCILWRITEMASK"; break;
case D3DRENDERSTATE_TEXTUREFACTOR: p="TEXTUREFACTOR"; break;
case D3DRENDERSTATE_CLIPPING: p="CLIPPING"; break;
case D3DRENDERSTATE_LIGHTING: p="LIGHTING"; break;
case D3DRENDERSTATE_EXTENTS: p="EXTENTS"; break;
case D3DRENDERSTATE_AMBIENT: p="AMBIENT"; break;
case D3DRENDERSTATE_FOGVERTEXMODE: p="FOGVERTEXMODE"; break;
case D3DRENDERSTATE_COLORVERTEX: p="COLORVERTEX"; break;
case D3DRENDERSTATE_LOCALVIEWER: p="LOCALVIEWER"; break;
case D3DRENDERSTATE_NORMALIZENORMALS: p="NORMALIZENORMALS"; break;
case D3DRENDERSTATE_COLORKEYBLENDENABLE: p="COLORKEYBLENDENABLE"; break;
case D3DRENDERSTATE_DIFFUSEMATERIALSOURCE: p="DIFFUSEMATERIALSOURCE"; break;
case D3DRENDERSTATE_SPECULARMATERIALSOURCE: p="SPECULARMATERIALSOURCE"; break;
case D3DRENDERSTATE_AMBIENTMATERIALSOURCE: p="AMBIENTMATERIALSOURCE"; break;
case D3DRENDERSTATE_EMISSIVEMATERIALSOURCE: p="EMISSIVEMATERIALSOURCE"; break;
case D3DRENDERSTATE_VERTEXBLEND: p="VERTEXBLEND"; break;
case D3DRENDERSTATE_CLIPPLANEENABLE: p="CLIPPLANEENABLE"; break;
// unsupported legacy
case D3DRENDERSTATE_TEXTUREHANDLE: p="TEXTUREHANDLE"; break;
case D3DRENDERSTATE_TEXTUREADDRESS: p="TEXTUREADDRESS"; break;
case D3DRENDERSTATE_WRAPU: p="WRAPU"; break;
case D3DRENDERSTATE_WRAPV: p="WRAPV"; break;
case D3DRENDERSTATE_MONOENABLE: p="MONOENABLE"; break;
case D3DRENDERSTATE_ROP2: p="ROP2"; break;
case D3DRENDERSTATE_PLANEMASK: p="PLANEMASK"; break;
case D3DRENDERSTATE_TEXTUREMAG: p="TEXTUREMAG"; break;
case D3DRENDERSTATE_TEXTUREMIN: p="TEXTUREMIN"; break;
case D3DRENDERSTATE_TEXTUREMAPBLEND: p="TEXTUREMAPBLEND"; break;
case D3DRENDERSTATE_SUBPIXEL: p="SUBPIXEL"; break;
case D3DRENDERSTATE_SUBPIXELX: p="SUBPIXELX"; break;
case D3DRENDERSTATE_STIPPLEENABLE: p="STIPPLEENABLE"; break;
case D3DRENDERSTATE_BORDERCOLOR: p="BORDERCOLOR"; break;
case D3DRENDERSTATE_TEXTUREADDRESSU: p="TEXTUREADDRESSU"; break;
case D3DRENDERSTATE_TEXTUREADDRESSV: p="TEXTUREADDRESSV"; break;
case D3DRENDERSTATE_MIPMAPLODBIAS: p="MIPMAPLODBIAS"; break;
case D3DRENDERSTATE_ANISOTROPY: p="ANISOTROPY"; break;
case D3DRENDERSTATE_FLUSHBATCH: p="FLUSHBATCH"; break;
case D3DRENDERSTATE_FORCE_DWORD: p="FORCE_DWORD"; break;
default: p="???"; break;
}
return p;
}

View File

@ -46,3 +46,4 @@ extern char *ExplainPeekRemoveMsg(DWORD);
extern char *ExplainGetDCExFlags(DWORD);
extern char *ExplainPaletteUse(UINT);
extern char *ExplainRasterCaps(DWORD);
extern char *ExplainD3DRenderState(DWORD);

View File

@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "dxwnd.h"
#include "dxwcore.hpp"
#define VERSION "2.02.46"
#define VERSION "2.02.47"
#define DDTHREADLOCK 1

Binary file not shown.

View File

@ -10,7 +10,7 @@
static void Stopper(char *s, int line)
{
char sMsg[81];
sprintf(sMsg,"break: \"%s\"", s);
sprintf_s(sMsg, 80, "break: \"%s\"", s);
MessageBox(0, sMsg, "break", MB_OK | MB_ICONEXCLAMATION);
}

View File

@ -40,6 +40,10 @@ typedef HRESULT (WINAPI *QueryInterfaceD3_Type)(void *, REFIID, LPVOID *);
typedef HRESULT (WINAPI *D3DInitialize_Type)(void *, LPDIRECT3D , LPGUID, LPD3DDEVICEDESC);
typedef HRESULT (WINAPI *D3DGetCaps_Type)(void *, LPD3DDEVICEDESC ,LPD3DDEVICEDESC);
typedef HRESULT (WINAPI *SetRenderState3_Type)(void *, D3DRENDERSTATETYPE, DWORD);
typedef HRESULT (WINAPI *Scene3_Type)(void *);
Initialize_Type pInitialize = NULL;
EnumDevices_Type pEnumDevices = NULL;
CreateLight_Type pCreateLight = NULL;
@ -54,6 +58,15 @@ SetViewport_Type pSetViewport = NULL;
GetViewport_Type pGetViewport = NULL;
QueryInterfaceD3_Type pQueryInterfaceD3 = NULL;
SetRenderState3_Type pSetRenderState2 = NULL;
SetRenderState3_Type pSetRenderState3 = NULL;
Scene3_Type pBeginScene1 = NULL;
Scene3_Type pBeginScene2 = NULL;
Scene3_Type pBeginScene3 = NULL;
Scene3_Type pEndScene1 = NULL;
Scene3_Type pEndScene2 = NULL;
Scene3_Type pEndScene3 = NULL;
D3DInitialize_Type pD3DInitialize = NULL;
D3DGetCaps_Type pD3DGetCaps = NULL;
@ -74,6 +87,15 @@ HRESULT WINAPI extQueryInterfaceD3(void *, REFIID, LPVOID *);
HRESULT WINAPI extD3DInitialize(void *, LPDIRECT3D , LPGUID, LPD3DDEVICEDESC);
HRESULT WINAPI extD3DGetCaps(void *, LPD3DDEVICEDESC ,LPD3DDEVICEDESC);
HRESULT WINAPI extSetRenderState2(void *, D3DRENDERSTATETYPE, DWORD);
HRESULT WINAPI extBeginScene1(void *);
HRESULT WINAPI extEndScene1(void *);
HRESULT WINAPI extBeginScene2(void *);
HRESULT WINAPI extEndScene2(void *);
HRESULT WINAPI extSetRenderState3(void *, D3DRENDERSTATETYPE, DWORD);
HRESULT WINAPI extBeginScene3(void *);
HRESULT WINAPI extEndScene3(void *);
extern char *ExplainDDError(DWORD);
int HookDirect3D7(HMODULE module, int version){
@ -184,28 +206,33 @@ void HookDirect3DSession(LPDIRECTDRAW *lplpdd, int dxversion)
}
}
void HookDirect3DDevice(LPDIRECTDRAW *lpd3d, int dxversion)
void HookDirect3DDevice(void **lpd3ddev, int dxversion)
{
OutTraceD("HookDirect3DDevice: d3d=%x d3dversion=%d\n", *lpd3d, dxversion);
OutTraceD("HookDirect3DDevice: d3ddev=%x d3dversion=%d\n", lpd3ddev, dxversion);
gD3DVersion = dxversion;
switch(dxversion){
case 1:
//SetHook((void *)(**(DWORD **)lpd3d + 12), extInitialize, (void **)&pInitialize, "Initialize");
//SetHook((void *)(**(DWORD **)lpd3d + 16), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
//SetHook((void *)(**(DWORD **)lpd3d + 20), extCreateLight, (void **)&pCreateLight, "CreateLight");
//SetHook((void *)(**(DWORD **)lpd3d + 24), extCreateMaterial, (void **)&pCreateMaterial, "CreateMaterial");
//SetHook((void *)(**(DWORD **)lpd3d + 28), extCreateViewport, (void **)&pCreateViewport, "CreateViewport");
//SetHook((void *)(**(DWORD **)lpd3d + 32), extFindDevice, (void **)&pFindDevice, "FindDevice");
SetHook((void *)(**(DWORD **)lpd3ddev + 76), extBeginScene1, (void **)&pBeginScene1, "BeginScene(1)");
SetHook((void *)(**(DWORD **)lpd3ddev + 80), extEndScene1, (void **)&pEndScene1, "EndScene(1)");
break;
case 5:
case 6:
//SetHook((void *)(**(DWORD **)lpd3d + 12), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
//SetHook((void *)(**(DWORD **)lpd3d + 16), extCreateLight, (void **)&pCreateLight, "CreateLight");
//SetHook((void *)(**(DWORD **)lpd3d + 20), extCreateMaterial, (void **)&pCreateMaterial, "CreateMaterial");
//SetHook((void *)(**(DWORD **)lpd3d + 24), extCreateViewport, (void **)&pCreateViewport, "CreateViewport");
//SetHook((void *)(**(DWORD **)lpd3d + 28), extFindDevice, (void **)&pFindDevice, "FindDevice");
case 2:
SetHook((void *)(**(DWORD **)lpd3ddev + 40), extBeginScene2, (void **)&pBeginScene2, "BeginScene(2)");
SetHook((void *)(**(DWORD **)lpd3ddev + 44), extEndScene2, (void **)&pEndScene2, "EndScene(2)");
SetHook((void *)(**(DWORD **)lpd3ddev + 92), extSetRenderState2, (void **)&pSetRenderState2, "SetRenderState(2)");
if(dxw.dwFlags2 & WIREFRAME){
(*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
}
break;
case 3:
SetHook((void *)(**(DWORD **)lpd3ddev + 36), extBeginScene3, (void **)&pBeginScene3, "BeginScene(3)");
SetHook((void *)(**(DWORD **)lpd3ddev + 40), extEndScene3, (void **)&pEndScene3, "EndScene(3)");
SetHook((void *)(**(DWORD **)lpd3ddev + 88), extSetRenderState3, (void **)&pSetRenderState3, "SetRenderState(3)");
if(dxw.dwFlags2 & WIREFRAME){
(*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
}
break;
}
}
@ -439,10 +466,7 @@ HRESULT WINAPI extCreateDevice2(void *lpd3d, REFCLSID Guid, LPDIRECTDRAWSURFACE
else
OutTraceD("CreateDevice(D3D2): lpd3dd=%x\n", lpd3d, *lplpd3dd);
// Hook device here ...!
SetHook((void *)(**(DWORD **)lplpd3dd + 12), extD3DInitialize, (void **)&pD3DInitialize, "Initialize(D3D)");
SetHook((void *)(**(DWORD **)lplpd3dd + 16), extD3DGetCaps, (void **)&pD3DGetCaps, "GetCaps(D3D)");
HookDirect3DDevice((void **)lplpd3dd, 2);
return res;
}
@ -475,7 +499,7 @@ HRESULT WINAPI extCreateDevice3(void *lpd3d, REFCLSID Guid, LPDIRECTDRAWSURFACE4
return res;
}
// Hook device here ...!
HookDirect3DDevice((void **)lplpd3dd, 3);
return res;
}
@ -521,3 +545,143 @@ HRESULT WINAPI extEndScene(void *d3dd)
HRESULT WINAPI extGetDirect3D(void *d3dd, LPDIRECT3D*)
#endif
char *ExplainRenderstateValue(DWORD Value)
{
char *p;
switch(Value){
case D3DCMP_NEVER : p="D3DCMP_NEVER"; break;
case D3DCMP_LESS : p="D3DCMP_LESS"; break;
case D3DCMP_EQUAL : p="D3DCMP_EQUAL"; break;
case D3DCMP_LESSEQUAL : p="D3DCMP_LESSEQUAL"; break;
case D3DCMP_GREATER : p="D3DCMP_GREATER"; break;
case D3DCMP_NOTEQUAL : p="D3DCMP_NOTEQUAL"; break;
case D3DCMP_GREATEREQUAL : p="D3DCMP_GREATEREQUAL"; break;
case D3DCMP_ALWAYS : p="D3DCMP_ALWAYS"; break;
default : p="???"; break;
}
return p;
}
HRESULT WINAPI extSetRenderState2(void *d3dd, D3DRENDERSTATETYPE State, DWORD Value)
{
HRESULT res;
OutTraceD("SetRenderState(2): d3dd=%x State=%x(%s) Value=%x\n", d3dd, State, ExplainD3DRenderState(State), Value);
if((dxw.dwFlags4 & ZBUFFERALWAYS) && (State == D3DRENDERSTATE_ZFUNC)) {
DWORD OldValue;
OldValue = Value;
Value = D3DCMP_ALWAYS;
OutTraceD("SetRenderState: FIXED State=ZFUNC Value=%s->D3DCMP_ALWAYS\n", ExplainRenderstateValue(OldValue));
}
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRENDERSTATE_FILLMODE)){
Value = D3DFILL_WIREFRAME;
OutTraceD("SetRenderState: FIXED State=FILLMODE Value=D3DFILL_WIREFRAME\n");
}
res=(*pSetRenderState2)(d3dd, State, Value);
if(res) OutTraceE("SetRenderState(2): res=%x(%s)\n", res, ExplainDDError(res));
return res;
}
HRESULT WINAPI extSetRenderState3(void *d3dd, D3DRENDERSTATETYPE State, DWORD Value)
{
HRESULT res;
OutTraceD("SetRenderState(3): d3dd=%x State=%x(%s) Value=%x\n", d3dd, State, ExplainD3DRenderState(State), Value);
if((dxw.dwFlags4 & ZBUFFERALWAYS) && (State == D3DRENDERSTATE_ZFUNC)) {
DWORD OldValue;
OldValue = Value;
Value = D3DCMP_ALWAYS;
OutTraceD("SetRenderState: FIXED State=ZFUNC Value=%s->D3DCMP_ALWAYS\n", ExplainRenderstateValue(OldValue));
}
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRENDERSTATE_FILLMODE)){
Value = D3DFILL_WIREFRAME;
OutTraceD("SetRenderState: FIXED State=FILLMODE Value=D3DFILL_WIREFRAME\n");
}
res=(*pSetRenderState3)(d3dd, State, Value);
if(res) OutTraceE("SetRenderState(3): res=%x(%s)\n", res, ExplainDDError(res));
return res;
}
HRESULT WINAPI extBeginScene1(void *d3dd)
{
HRESULT res;
OutTraceD("BeginScene(1): d3dd=%x\n", d3dd);
res=(*pBeginScene1)(d3dd);
if(res) OutTraceE("BeginScene(1): res=%x(%s)\n", res, ExplainDDError(res));
return res;
}
HRESULT WINAPI extBeginScene2(void *d3dd)
{
HRESULT res;
OutTraceD("BeginScene(2): d3dd=%x\n", d3dd);
if(dxw.dwFlags4 & ZBUFFERCLEAN){
LPDIRECT3DVIEWPORT2 vp;
D3DVIEWPORT vpd;
((LPDIRECT3DDEVICE2)d3dd)->GetCurrentViewport(&vp);
D3DRECT d3dRect;
vpd.dwSize=sizeof(D3DVIEWPORT);
vp->GetViewport(&vpd);
d3dRect.x1 = vpd.dwX;
d3dRect.y1 = vpd.dwY;
d3dRect.x2 = vpd.dwX + vpd.dwWidth;
d3dRect.y2 = vpd.dwY + vpd.dwHeight;
OutTraceD("d3dRect=(%d,%d)-(%d,%d)\n", d3dRect.x1, d3dRect.y1, d3dRect.x2, d3dRect.y2);
vp->Clear(1, &d3dRect, D3DCLEAR_ZBUFFER);
}
res=(*pBeginScene2)(d3dd);
if(res) OutTraceE("BeginScene(2): res=%x(%s)\n", res, ExplainDDError(res));
return res;
}
HRESULT WINAPI extBeginScene3(void *d3dd)
{
HRESULT res;
OutTraceD("BeginScene(3): d3dd=%x\n", d3dd);
if(dxw.dwFlags4 & (ZBUFFERCLEAN|ZBUFFER0CLEAN)){
LPDIRECT3DVIEWPORT3 vp;
D3DVIEWPORT vpd;
((LPDIRECT3DDEVICE3)d3dd)->GetCurrentViewport(&vp);
D3DRECT d3dRect;
vpd.dwSize=sizeof(D3DVIEWPORT);
vp->GetViewport(&vpd);
d3dRect.x1 = vpd.dwX;
d3dRect.y1 = vpd.dwY;
d3dRect.x2 = vpd.dwX + vpd.dwWidth;
d3dRect.y2 = vpd.dwY + vpd.dwHeight;
OutTraceD("d3dRect=(%d,%d)-(%d,%d)\n", d3dRect.x1, d3dRect.y1, d3dRect.x2, d3dRect.y2);
if(dxw.dwFlags4 & ZBUFFERCLEAN )vp->Clear2(1, &d3dRect, D3DCLEAR_ZBUFFER, 0, 1.0, 0);
if(dxw.dwFlags4 & ZBUFFER0CLEAN)vp->Clear2(1, &d3dRect, D3DCLEAR_ZBUFFER, 0, 0.0, 0);
}
res=(*pBeginScene3)(d3dd);
if(res) OutTraceE("BeginScene(3): res=%x(%s)\n", res, ExplainDDError(res));
return res;
}
HRESULT WINAPI extEndScene1(void *d3dd)
{
HRESULT res;
OutTraceD("EndScene(1): d3dd=%x\n", d3dd);
res=(*pEndScene1)(d3dd);
//dxw.ShowOverlay();
if(res) OutTraceE("EndScene(1): res=%x(%s)\n", res, ExplainDDError(res));
return res;
}
HRESULT WINAPI extEndScene2(void *d3dd)
{
HRESULT res;
OutTraceD("EndScene(2): d3dd=%x\n", d3dd);
res=(*pEndScene2)(d3dd);
//dxw.ShowOverlay();
if(res) OutTraceE("EndScene(2): res=%x(%s)\n", res, ExplainDDError(res));
return res;
}
HRESULT WINAPI extEndScene3(void *d3dd)
{
HRESULT res;
OutTraceD("EndScene(3): d3dd=%x\n", d3dd);
res=(*pEndScene3)(d3dd);
//dxw.ShowOverlay();
if(res) OutTraceE("EndScene(3): res=%x(%s)\n", res, ExplainDDError(res));
return res;
}

View File

@ -22,21 +22,18 @@
#define IDI_RUN6 148
#define IDD_STATUS 149
#define IDD_TIMESLIDER 150
#define IDD_TAB_PROGRAM 152
#define IDD_TAB_LOG 153
#define IDD_TAB_PROGRAM 151
#define IDD_TAB_LOG 152
#define IDB_BIGICONS 153
#define IDD_TAB_DIRECTX 154
#define IDD_TAB_MOUSE 155
#define IDB_BITMAP1 155
#define IDB_SMALLICONS 155
#define IDD_TAB_TIMING 156
#define IDD_TAB_WINDOW 157
#define IDD_TAB_EMPTY 158
#define IDB_PALETTE 158
#define IDD_TAB_OPENGL 159
#define IDD_TAB_COMPAT 160
#define IDD_TAB_GDI 161
#define IDD_TAB_COLOR 162
#define IDD_TAB_INPUT 155
#define IDB_SMALLICONS 156
#define IDD_TAB_TIMING 157
#define IDD_TAB_OUTPUT 158
#define IDD_TAB_EMPTY 159
#define IDB_PALETTE 160
#define IDD_TAB_COMPAT 161
#define IDD_TAB_SYSLIBS 162
#define IDD_TAB_DEBUG 163
#define IDD_PALETTE 164
#define IDC_AUTO 300
@ -173,9 +170,9 @@
#define IDC_FIXD3DFRAME 1127
#define IDC_BUFFEREDIOFIX 1128
#define IDC_FILTERMESSAGES 1129
#define IDC_PEEKALLMESSAGES 1130
#define IDC_TRACEHOOKS 1131
#define IDC_FULLRECTBLT2 1132
#define IDC_ZBUFFERCLEAN 1130
#define IDC_PEEKALLMESSAGES 1131
#define IDC_TRACEHOOKS 1132
#define IDC_SURFACEWARN 1133
#define IDC_ANALITICALMODE 1134
#define IDC_ANALYTICMODE 1135
@ -190,6 +187,8 @@
#define IDC_SUPPRESSCHILD 1144
#define IDC_FIXREFCOUNTER 1145
#define IDC_SHOWTIMESTRETCH 1146
#define IDC_ZBUFFERALWAYS 1147
#define IDC_ZBUFFER0CLEAN 1148
#define ID_MODIFY 32771
#define ID_DELETE 32772
#define ID_ADD 32773

View File

@ -37,6 +37,8 @@ void CTabCompat::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_CDROMDRIVETYPE, cTarget->m_CDROMDriveType);
DDX_Check(pDX, IDC_FONTBYPASS, cTarget->m_FontBypass);
DDX_Check(pDX, IDC_BUFFEREDIOFIX, cTarget->m_BufferedIOFix);
DDX_Check(pDX, IDC_ZBUFFERCLEAN, cTarget->m_ZBufferClean);
DDX_Check(pDX, IDC_ZBUFFER0CLEAN, cTarget->m_ZBuffer0Clean);
}
BEGIN_MESSAGE_MAP(CTabCompat, CDialog)

View File

@ -39,6 +39,8 @@ void CTabDebug::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_NODDRAWBLT, cTarget->m_NoDDRAWBlt);
DDX_Check(pDX, IDC_NODDRAWFLIP, cTarget->m_NoDDRAWFlip);
DDX_Check(pDX, IDC_NOGDIBLT, cTarget->m_NoGDIBlt);
DDX_Check(pDX, IDC_EMULATEREGISTRY, cTarget->m_EmulateRegistry);
DDX_Check(pDX, IDC_ZBUFFERALWAYS, cTarget->m_ZBufferAlways);
}
BEGIN_MESSAGE_MAP(CTabDebug, CDialog)

View File

@ -44,14 +44,6 @@ 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_SAVECAPS, cTarget->m_SaveCaps);
// DirectInput
DDX_Check(pDX, IDC_HOOKDI, cTarget->m_HookDI);
DDX_Text(pDX, IDC_INITX, cTarget->m_InitX);
DDX_Text(pDX, IDC_INITY, cTarget->m_InitY);
DDX_Text(pDX, IDC_MAXX, cTarget->m_MaxX);
DDX_Text(pDX, IDC_MAXY, cTarget->m_MaxY);
DDX_Text(pDX, IDC_MINX, cTarget->m_MinX);
DDX_Text(pDX, IDC_MINY, cTarget->m_MinY);
}
BEGIN_MESSAGE_MAP(CTabDirectX, CDialog)

View File

@ -12,18 +12,18 @@ static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTabMouse dialog
// CTabInput dialog
CTabMouse::CTabMouse(CWnd* pParent /*=NULL*/)
CTabInput::CTabInput(CWnd* pParent /*=NULL*/)
// : CTargetDlg(pParent)
: CDialog(CTabMouse::IDD, pParent)
: CDialog(CTabInput::IDD, pParent)
{
//{{AFX_DATA_INIT(CTabMouse)
//{{AFX_DATA_INIT(CTabInput)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTabMouse::DoDataExchange(CDataExchange* pDX)
void CTabInput::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
CTargetDlg *cTarget = ((CTargetDlg *)(this->GetParent()->GetParent()));
@ -37,13 +37,21 @@ void CTabMouse::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_MESSAGEPROC, cTarget->m_MessageProc);
DDX_Check(pDX, IDC_FIXNCHITTEST, cTarget->m_FixNCHITTEST);
DDX_Check(pDX, IDC_SLOW, cTarget->m_SlowDown);
// DirectInput
DDX_Check(pDX, IDC_HOOKDI, cTarget->m_HookDI);
DDX_Text(pDX, IDC_INITX, cTarget->m_InitX);
DDX_Text(pDX, IDC_INITY, cTarget->m_InitY);
DDX_Text(pDX, IDC_MAXX, cTarget->m_MaxX);
DDX_Text(pDX, IDC_MAXY, cTarget->m_MaxY);
DDX_Text(pDX, IDC_MINX, cTarget->m_MinX);
DDX_Text(pDX, IDC_MINY, cTarget->m_MinY);
}
BEGIN_MESSAGE_MAP(CTabMouse, CDialog)
//{{AFX_MSG_MAP(CTabMouse)
BEGIN_MESSAGE_MAP(CTabInput, CDialog)
//{{AFX_MSG_MAP(CTabInput)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTabMouse message handlers
// CTabInput message handlers

View File

@ -12,16 +12,16 @@
/////////////////////////////////////////////////////////////////////////////
// CTabDirectX dialog
//class CTabMouse : public CTargetDlg
class CTabMouse : public CDialog
//class CTabInput : public CTargetDlg
class CTabInput : public CDialog
{
// Construction
public:
CTabMouse(CWnd* pParent = NULL); // standard constructor
CTabInput(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CTabDirectX)
enum { IDD = IDD_TAB_MOUSE };
enum { IDD = IDD_TAB_INPUT };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA

View File

@ -20,7 +20,7 @@ public:
// Dialog Data
//{{AFX_DATA(CTabOpenGL)
enum { IDD = IDD_TAB_OPENGL };
enum { IDD = IDD_TAB_SYSLIBS };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA

View File

@ -33,7 +33,6 @@ void CTabProgram::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_UNNOTIFY, cTarget->m_UnNotify);
DDX_Check(pDX, IDC_WINDOWIZE, cTarget->m_Windowize);
DDX_Check(pDX, IDC_HOOKDLLS, cTarget->m_HookDLLs);
DDX_Check(pDX, IDC_EMULATEREGISTRY, cTarget->m_EmulateRegistry);
DDX_Check(pDX, IDC_FULLSCREENONLY, cTarget->m_FullScreenOnly);
DDX_Check(pDX, IDC_FILTERMESSAGES, cTarget->m_FilterMessages);
DDX_Check(pDX, IDC_PEEKALLMESSAGES, cTarget->m_PeekAllMessages);
@ -45,6 +44,7 @@ void CTabProgram::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_SAVELOAD, cTarget->m_SaveLoad);
DDX_Check(pDX, IDC_HANDLEALTF4, cTarget->m_HandleAltF4);
DDX_Check(pDX, IDC_KEEPASPECTRATIO, cTarget->m_KeepAspectRatio);
DDX_Check(pDX, IDC_HOOKOPENGL, cTarget->m_HookOpenGL); // duplicated
DDX_Text(pDX, IDC_POSX, cTarget->m_PosX);
DDX_Text(pDX, IDC_POSY, cTarget->m_PosY);
DDX_Text(pDX, IDC_SIZX, cTarget->m_SizX);

View File

@ -3,7 +3,7 @@
#include "stdafx.h"
#include "TargetDlg.h"
#include "TabGDI.h"
#include "TabSysLibs.h"
#ifdef _DEBUG
#define new DEBUG_NEW
@ -14,23 +14,29 @@ static char THIS_FILE[] = __FILE__;
/////////////////////////////////////////////////////////////////////////////
// CTabLogs dialog
CTabGDI::CTabGDI(CWnd* pParent /*=NULL*/)
: CDialog(CTabGDI::IDD, pParent)
CTabSysLibs::CTabSysLibs(CWnd* pParent /*=NULL*/)
: CDialog(CTabSysLibs::IDD, pParent)
{
//{{AFX_DATA_INIT(CTabGDI)
//{{AFX_DATA_INIT(CTabSysLibs)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTabGDI::DoDataExchange(CDataExchange* pDX)
void CTabSysLibs::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
CTargetDlg *cTarget = ((CTargetDlg *)(this->GetParent()->GetParent()));
// GDI
DDX_Radio(pDX, IDC_GDINONE, cTarget->m_DCEmulationMode);
DDX_Check(pDX, IDC_FIXTEXTOUT, cTarget->m_FixTextOut);
// OpenGL
DDX_Check(pDX, IDC_FORCEHOOKOPENGL, cTarget->m_ForceHookOpenGL);
DDX_Text(pDX, IDC_OPENGLLIB, cTarget->m_OpenGLLib);
}
BEGIN_MESSAGE_MAP(CTabGDI, CDialog)
BEGIN_MESSAGE_MAP(CTabSysLibs, CDialog)
//{{AFX_MSG_MAP(CTabLogs)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP

View File

@ -11,15 +11,15 @@
/////////////////////////////////////////////////////////////////////////////
// CTabLogs dialog
class CTabGDI : public CDialog
class CTabSysLibs : public CDialog
{
// Construction
public:
CTabGDI(CWnd* pParent = NULL); // standard constructor
CTabSysLibs(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CTabLogs)
enum { IDD = IDD_TAB_GDI };
enum { IDD = IDD_TAB_SYSLIBS };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA

View File

@ -28,6 +28,8 @@ void CTabWindow::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
CTargetDlg *cTarget = ((CTargetDlg *)(this->GetParent()->GetParent()));
// window management
DDX_Check(pDX, IDC_FIXWINFRAME, cTarget->m_FixWinFrame);
DDX_Check(pDX, IDC_PREVENTMAXIMIZE, cTarget->m_PreventMaximize);
DDX_Check(pDX, IDC_LOCKWINPOS, cTarget->m_LockWinPos);
@ -42,6 +44,16 @@ void CTabWindow::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_FIXD3DFRAME, cTarget->m_FixD3DFrame);
DDX_Check(pDX, IDC_NOWINDOWMOVE, cTarget->m_NoWindowMove);
DDX_Check(pDX, IDC_SUPPRESSCHILD, cTarget->m_SuppressChild);
// color management
DDX_Check(pDX, IDC_INIT8BPP, cTarget->m_Init8BPP);
DDX_Check(pDX, IDC_INIT16BPP, cTarget->m_Init16BPP);
DDX_Check(pDX, IDC_DISABLEGAMMARAMP, cTarget->m_DisableGammaRamp);
DDX_Check(pDX, IDC_FORCE16BPP, cTarget->m_Force16BPP);
DDX_Check(pDX, IDC_WIREFRAME, cTarget->m_WireFrame);
DDX_Check(pDX, IDC_BLACKWHITE, cTarget->m_BlackWhite);
DDX_Check(pDX, IDC_USERGB565, cTarget->m_UseRGB565);
DDX_Check(pDX, IDC_LOCKSYSCOLORS, cTarget->m_LockSysColors);
}
BOOL CTabWindow::OnInitDialog()

View File

@ -20,7 +20,7 @@ public:
// Dialog Data
//{{AFX_DATA(CTabWindow)
enum { IDD = IDD_TAB_WINDOW };
enum { IDD = IDD_TAB_OUTPUT };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA

View File

@ -53,6 +53,9 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
m_CDROMDriveType = FALSE;
m_FontBypass = FALSE;
m_BufferedIOFix = FALSE;
m_ZBufferClean = FALSE;
m_ZBuffer0Clean = FALSE;
m_ZBufferAlways = FALSE;
m_UnNotify = FALSE;
m_Windowize = TRUE; // default true !!
m_HookDLLs = TRUE; // default true !!
@ -146,14 +149,12 @@ BOOL CTargetDlg::OnInitDialog()
AfxEnableControlContainer();
CDialog::OnInitDialog();
m_tabdxTabCtrl.InsertItem(i++, _T("Main"));
m_tabdxTabCtrl.InsertItem(i++, _T("Window"));
m_tabdxTabCtrl.InsertItem(i++, _T("Color"));
m_tabdxTabCtrl.InsertItem(i++, _T("Mouse"));
m_tabdxTabCtrl.InsertItem(i++, _T("Video"));
m_tabdxTabCtrl.InsertItem(i++, _T("Input"));
m_tabdxTabCtrl.InsertItem(i++, _T("DirectX"));
m_tabdxTabCtrl.InsertItem(i++, _T("Timing"));
m_tabdxTabCtrl.InsertItem(i++, _T("Log"));
m_tabdxTabCtrl.InsertItem(i++, _T("DirectX"));
m_tabdxTabCtrl.InsertItem(i++, _T("OpenGL"));
m_tabdxTabCtrl.InsertItem(i++, _T("GDI"));
m_tabdxTabCtrl.InsertItem(i++, _T("Libs"));
m_tabdxTabCtrl.InsertItem(i++, _T("Compat"));
if (gbDebug) m_tabdxTabCtrl.InsertItem(i++, _T("Debug"));
m_tabdxTabCtrl.Init();

View File

@ -116,6 +116,9 @@ public:
BOOL m_CDROMDriveType;
BOOL m_FontBypass;
BOOL m_BufferedIOFix;
BOOL m_ZBufferClean;
BOOL m_ZBuffer0Clean;
BOOL m_ZBufferAlways;
BOOL m_SuppressIME;
BOOL m_SetCompatibility;
BOOL m_DisableHAL;

View File

@ -30,7 +30,7 @@
#include "TabOpenGL.h"
#include "TabCompat.h"
#include "TabColor.h"
#include "TabGDI.h"
#include "TabSysLibs.h"
#include "TabDebug.h"
#ifdef _DEBUG
@ -49,13 +49,11 @@ CDXTabCtrl::CDXTabCtrl()
int i=0;
m_tabPages[i++]=new CTabProgram;
m_tabPages[i++]=new CTabWindow;
m_tabPages[i++]=new CTabColor;
m_tabPages[i++]=new CTabMouse;
m_tabPages[i++]=new CTabInput;
m_tabPages[i++]=new CTabDirectX;
m_tabPages[i++]=new CTabTiming;
m_tabPages[i++]=new CTabLogs;
m_tabPages[i++]=new CTabDirectX;
m_tabPages[i++]=new CTabOpenGL;
m_tabPages[i++]=new CTabGDI;
m_tabPages[i++]=new CTabSysLibs;
m_tabPages[i++]=new CTabCompat;
if (gbDebug) m_tabPages[i++]=new CTabDebug;
@ -75,14 +73,12 @@ void CDXTabCtrl::Init()
m_tabCurrent=0;
m_tabPages[i++]->Create(IDD_TAB_PROGRAM, this);
m_tabPages[i++]->Create(IDD_TAB_WINDOW, this);
m_tabPages[i++]->Create(IDD_TAB_COLOR, this);
m_tabPages[i++]->Create(IDD_TAB_MOUSE, this);
m_tabPages[i++]->Create(IDD_TAB_OUTPUT, this);
m_tabPages[i++]->Create(IDD_TAB_INPUT, this);
m_tabPages[i++]->Create(IDD_TAB_DIRECTX, this);
m_tabPages[i++]->Create(IDD_TAB_TIMING, this);
m_tabPages[i++]->Create(IDD_TAB_LOG, this);
m_tabPages[i++]->Create(IDD_TAB_DIRECTX, this);
m_tabPages[i++]->Create(IDD_TAB_OPENGL, this);
m_tabPages[i++]->Create(IDD_TAB_GDI, this);
m_tabPages[i++]->Create(IDD_TAB_SYSLIBS, this);
m_tabPages[i++]->Create(IDD_TAB_COMPAT, this);
if (gbDebug) m_tabPages[i++]->Create(IDD_TAB_DEBUG, this);

Binary file not shown.

View File

@ -273,12 +273,12 @@ BEGIN
CONTROL "Desktop work area",IDC_DESKTOPWORKAREA,"Button",BS_AUTORADIOBUTTON,170,210,95,10
CONTROL "Desktop",IDC_DESKTOPFULL,"Button",BS_AUTORADIOBUTTON,170,220,95,10
CONTROL "Hook child WindowProc",IDC_HOOKCHILDWIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,170,105,104,10
CONTROL "Emulate Registry",IDC_EMULATEREGISTRY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,129,124,10
CONTROL "Fullscreen only",IDC_FULLSCREENONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,170,129,114,10
CONTROL "Filter offending messages",IDC_FILTERMESSAGES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,141,114,10
CONTROL "Peek all messages in queue",IDC_PEEKALLMESSAGES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,170,141,114,10
GROUPBOX "Position",IDC_STATIC,7,168,286,66
CONTROL "Keep aspect ratio",IDC_KEEPASPECTRATIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,179,115,10
CONTROL "Hook OpenGL",IDC_HOOKOPENGL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,129,115,10
END
IDD_TAB_LOG DIALOGEX 0, 0, 300, 240
@ -324,22 +324,6 @@ BEGIN
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
LTEXT "DirectInput initial coord. and X,Y range",IDC_STATIC,19,201,146,9
LTEXT "X",IDC_STATIC,13,216,9,9
LTEXT "Y",IDC_STATIC,40,216,9,9
LTEXT "(",IDC_STATIC,69,216,9,9
LTEXT ",",IDC_STATIC,92,216,9,9
LTEXT ")-(",IDC_STATIC,114,216,11,9
LTEXT ",",IDC_STATIC,144,216,9,9
LTEXT ")",IDC_STATIC,166,216,9,9
EDITTEXT IDC_INITX,20,213,17,14,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
EDITTEXT IDC_INITY,46,213,17,14,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
EDITTEXT IDC_MINX,72,213,17,14,ES_AUTOHSCROLL,WS_EX_RIGHT
EDITTEXT IDC_MINY,97,213,17,14,ES_AUTOHSCROLL,WS_EX_RIGHT
EDITTEXT IDC_MAXX,124,213,17,14,ES_AUTOHSCROLL,WS_EX_RIGHT
EDITTEXT IDC_MAXY,148,213,17,14,ES_AUTOHSCROLL,WS_EX_RIGHT
CONTROL "DirectInput Hooking",IDC_HOOKDI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,183,214,97,12
GROUPBOX "DirectInput",IDC_STATIC,7,189,286,44
CONTROL "Set AERO compatible mode",IDC_SETCOMPATIBILITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,100,109,12
CONTROL "Disable HAL support",IDC_DISABLEHAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,112,109,12
CONTROL "Forces HEL ",IDC_FORCESHEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,124,109,12
@ -350,22 +334,39 @@ BEGIN
CONTROL "Fix ddraw ref counter",IDC_FIXREFCOUNTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,172,123,12
END
IDD_TAB_MOUSE DIALOGEX 0, 0, 300, 240
IDD_TAB_INPUT DIALOGEX 0, 0, 300, 240
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "Correct mouse position",IDC_MODIFYMOUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,38,113,12
CONTROL "Hide Cursor",IDC_HIDEHWCURSOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,15,117,10
CONTROL "Correct mouse position",IDC_MODIFYMOUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,38,107,12
CONTROL "Hide Cursor",IDC_HIDEHWCURSOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,15,100,10
CONTROL "Intercept GDI Cursor Clipping",IDC_ENABLECLIPPING,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,85,124,10
GROUPBOX "Cursor handling",IDC_STATIC,7,3,140,144
CONTROL "Keep cursor within window",IDC_KEEPCURSORWITHIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,61,123,10
CONTROL "Force cursor clipping",IDC_CLIPCURSOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,50,125,10
CONTROL "Message processing",IDC_MESSAGEPROC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,96,115,10
CONTROL "Keep cursor fixed",IDC_KEEPCURSORFIXED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,73,123,10
CONTROL "fix WM_NCHITTEST",IDC_FIXNCHITTEST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,107,115,10
CONTROL "Show Cursor",IDC_SHOWHWCURSOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,27,117,10
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,85,109,10
GROUPBOX "Cursor handling",IDC_STATIC,7,3,129,134
CONTROL "Keep cursor within window",IDC_KEEPCURSORWITHIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,61,108,10
CONTROL "Force cursor clipping",IDC_CLIPCURSOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,50,108,10
CONTROL "Message processing",IDC_MESSAGEPROC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,96,103,10
CONTROL "Keep cursor fixed",IDC_KEEPCURSORFIXED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,73,107,10
CONTROL "fix WM_NCHITTEST",IDC_FIXNCHITTEST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,107,103,10
CONTROL "Show Cursor",IDC_SHOWHWCURSOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,27,104,10
CONTROL "Slow down mouse polling",IDC_SLOW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,118,103,12
LTEXT "Initial coord.",IDC_STATIC,148,33,46,9
LTEXT "X",IDC_STATIC,234,34,9,9
LTEXT "Y",IDC_STATIC,261,34,9,9
LTEXT "(",IDC_STATIC,187,53,9,9
LTEXT ",",IDC_STATIC,210,53,9,9
LTEXT ")-(",IDC_STATIC,232,53,11,9
LTEXT ",",IDC_STATIC,262,53,9,9
LTEXT ")",IDC_STATIC,284,53,9,9
EDITTEXT IDC_INITX,241,31,17,14,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
EDITTEXT IDC_INITY,267,31,17,14,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT
EDITTEXT IDC_MINX,190,50,17,14,ES_AUTOHSCROLL,WS_EX_RIGHT
EDITTEXT IDC_MINY,215,50,17,14,ES_AUTOHSCROLL,WS_EX_RIGHT
EDITTEXT IDC_MAXX,242,50,17,14,ES_AUTOHSCROLL,WS_EX_RIGHT
EDITTEXT IDC_MAXY,266,50,17,14,ES_AUTOHSCROLL,WS_EX_RIGHT
CONTROL "DirectInput Hooking",IDC_HOOKDI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,150,15,97,12
GROUPBOX "DirectInput",IDC_STATIC,141,3,152,71
LTEXT " X,Y range",IDC_STATIC,147,54,42,9
END
IDD_TAB_TIMING DIALOGEX 0, 0, 300, 240
@ -385,7 +386,7 @@ BEGIN
CONTROL "Show time stretch",IDC_SHOWTIMESTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,134,84,10
END
IDD_TAB_WINDOW DIALOGEX 0, 0, 300, 240
IDD_TAB_OUTPUT DIALOGEX 0, 0, 300, 240
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
@ -406,6 +407,16 @@ BEGIN
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,160,125,10
CONTROL "Suppress child process creation",IDC_SUPPRESSCHILD,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,172,125,10
GROUPBOX "Color management",IDC_STATIC,149,4,144,117
CONTROL "Simulate 8BPP desktop",IDC_INIT8BPP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,16,115,10
CONTROL "Simulate 16BPP desktop",IDC_INIT16BPP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,28,115,10
CONTROL "Disable setting gamma ramp",IDC_DISABLEGAMMARAMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,88,119,10
CONTROL "Forces 16BPP desktop",IDC_FORCE16BPP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,40,119,10
CONTROL "3D Wireframe",IDC_WIREFRAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,136,96,10
CONTROL "Simulate BW monitor",IDC_BLACKWHITE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,52,96,10
CONTROL "Set 16BPP RGB565 encoding",IDC_USERGB565,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,64,126,9
CONTROL "Lock Sys Colors",IDC_LOCKSYSCOLORS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,76,126,9
GROUPBOX "3D effects",IDC_STATIC,149,122,144,111
END
IDD_TAB_EMPTY DIALOGEX 0, 0, 300, 240
@ -414,17 +425,6 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
END
IDD_TAB_OPENGL DIALOGEX 0, 0, 300, 240
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
GROUPBOX "OpenGL",IDC_STATIC,7,3,140,72
LTEXT "Custom OpenGL library",IDC_STATIC,15,39,110,9
CONTROL "Hook OpenGL",IDC_HOOKOPENGL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,15,115,10
EDITTEXT IDC_OPENGLLIB,13,51,126,14,ES_AUTOHSCROLL
CONTROL "Force Hook",IDC_FORCEHOOKOPENGL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,25,115,10
END
IDD_TAB_COMPAT DIALOGEX 0, 0, 300, 240
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
@ -441,33 +441,24 @@ BEGIN
CONTROL "Set CDROM Drive Type",IDC_CDROMDRIVETYPE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,152,109,12
CONTROL "Bypass font unsupported api",IDC_FONTBYPASS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,140,109,12
CONTROL "Fix buffered IO after Win98",IDC_BUFFEREDIOFIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,128,109,12
CONTROL "Clean ZBUFFER @1.0 fix",IDC_ZBUFFERCLEAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,116,109,12
CONTROL "Clean ZBUFFER @0.0 fix",IDC_ZBUFFER0CLEAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,104,109,12
END
IDD_TAB_GDI DIALOGEX 0, 0, 300, 240
IDD_TAB_SYSLIBS DIALOGEX 0, 0, 300, 240
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
GROUPBOX "GDI Handling",IDC_STATIC,6,7,140,131
GROUPBOX "GDI",IDC_STATIC,7,7,140,89
CONTROL "No GDI handling",IDC_GDINONE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,17,26,67,10
CONTROL "Scaled GDI calls",IDC_HOOKGDI,"Button",BS_AUTORADIOBUTTON,17,38,66,10
CONTROL "Emulated Device Context",IDC_EMULATEDC,"Button",BS_AUTORADIOBUTTON,17,50,97,10
CONTROL "Map DC to Primary Surface",IDC_MAPGDITOPRIMARY,"Button",BS_AUTORADIOBUTTON,17,62,102,10
CONTROL "Scale font parameters",IDC_FIXTEXTOUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,110,125,10
END
IDD_TAB_COLOR DIALOGEX 0, 0, 300, 240
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
GROUPBOX "Color management",IDC_STATIC,7,3,144,230
CONTROL "Simulate 8BPP desktop",IDC_INIT8BPP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,16,115,10
CONTROL "Simulate 16BPP desktop",IDC_INIT16BPP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,28,115,10
CONTROL "Disable setting gamma ramp",IDC_DISABLEGAMMARAMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,40,119,10
CONTROL "Forces 16BPP desktop",IDC_FORCE16BPP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,52,119,10
CONTROL "3D Wireframe",IDC_WIREFRAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,64,96,10
CONTROL "Simulate BW monitor",IDC_BLACKWHITE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,76,96,10
CONTROL "Set 16BPP RGB565 encoding",IDC_USERGB565,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,88,126,9
CONTROL "Lock Sys Colors",IDC_LOCKSYSCOLORS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,100,126,9
CONTROL "Scale font parameters",IDC_FIXTEXTOUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,76,125,10
GROUPBOX "OpenGL",IDC_STATIC,153,7,140,72
LTEXT "Custom OpenGL library",IDC_STATIC,161,43,110,9
EDITTEXT IDC_OPENGLLIB,159,55,126,14,ES_AUTOHSCROLL
CONTROL "Force Hook",IDC_FORCEHOOKOPENGL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,162,29,115,10
END
IDD_TAB_DEBUG DIALOGEX 0, 0, 300, 240
@ -490,6 +481,8 @@ BEGIN
CONTROL "Suppress ddraw Flip",IDC_NODDRAWFLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,36,127,10
CONTROL "Suppress GDI Blt",IDC_NOGDIBLT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,48,127,10
GROUPBOX "Visual flags",IDC_STATIC,153,7,140,139
CONTROL "Emulate Registry",IDC_EMULATEREGISTRY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,84,124,10
CONTROL "Force D3DCMP_ALWAYS setting ",IDC_ZBUFFERALWAYS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,164,127,10
END
IDD_PALETTE DIALOGEX 0, 0, 169, 167
@ -604,7 +597,7 @@ BEGIN
BOTTOMMARGIN, 233
END
IDD_TAB_MOUSE, DIALOG
IDD_TAB_INPUT, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 293
@ -620,7 +613,7 @@ BEGIN
BOTTOMMARGIN, 233
END
IDD_TAB_WINDOW, DIALOG
IDD_TAB_OUTPUT, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 293
@ -636,14 +629,6 @@ BEGIN
BOTTOMMARGIN, 233
END
IDD_TAB_OPENGL, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 293
TOPMARGIN, 7
BOTTOMMARGIN, 233
END
IDD_TAB_COMPAT, DIALOG
BEGIN
LEFTMARGIN, 7
@ -652,7 +637,7 @@ BEGIN
BOTTOMMARGIN, 233
END
IDD_TAB_GDI, DIALOG
IDD_TAB_SYSLIBS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 293
@ -660,14 +645,6 @@ BEGIN
BOTTOMMARGIN, 233
END
IDD_TAB_COLOR, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 293
TOPMARGIN, 3
BOTTOMMARGIN, 233
END
IDD_TAB_DEBUG, DIALOG
BEGIN
LEFTMARGIN, 7

Binary file not shown.

View File

@ -377,10 +377,6 @@
RelativePath=".\SystemTray.cpp"
>
</File>
<File
RelativePath=".\TabColor.cpp"
>
</File>
<File
RelativePath=".\TabCompat.cpp"
>
@ -393,10 +389,6 @@
RelativePath=".\TabDirectX.cpp"
>
</File>
<File
RelativePath=".\TabGDI.cpp"
>
</File>
<File
RelativePath=".\TabLogs.cpp"
>
@ -406,11 +398,11 @@
>
</File>
<File
RelativePath=".\TabOpenGL.cpp"
RelativePath=".\TabProgram.cpp"
>
</File>
<File
RelativePath=".\TabProgram.cpp"
RelativePath=".\TabSysLibs.cpp"
>
</File>
<File
@ -494,10 +486,6 @@
RelativePath=".\SystemTray.h"
>
</File>
<File
RelativePath=".\TabColor.h"
>
</File>
<File
RelativePath=".\TabCompat.h"
>
@ -510,10 +498,6 @@
RelativePath=".\TabDirectX.h"
>
</File>
<File
RelativePath=".\TabGDI.h"
>
</File>
<File
RelativePath=".\TabLogs.h"
>
@ -523,11 +507,11 @@
>
</File>
<File
RelativePath=".\TabOpenGL.h"
RelativePath=".\TabProgram.h"
>
</File>
<File
RelativePath=".\TabProgram.h"
RelativePath=".\TabSysLibs.h"
>
</File>
<File

View File

@ -154,6 +154,9 @@ static void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
if(dlg->m_CDROMDriveType) t->flags3 |= CDROMDRIVETYPE;
if(dlg->m_FontBypass) t->flags3 |= FONTBYPASS;
if(dlg->m_BufferedIOFix) t->flags3 |= BUFFEREDIOFIX;
if(dlg->m_ZBufferClean) t->flags4 |= ZBUFFERCLEAN;
if(dlg->m_ZBuffer0Clean) t->flags4 |= ZBUFFER0CLEAN;
if(dlg->m_ZBufferAlways) t->flags4 |= ZBUFFERALWAYS;
if(dlg->m_SuppressIME) t->flags2 |= SUPPRESSIME;
if(dlg->m_SuppressD3DExt) t->flags3 |= SUPPRESSD3DEXT;
if(dlg->m_SetCompatibility) t->flags2 |= SETCOMPATIBILITY;
@ -308,6 +311,9 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
dlg->m_CDROMDriveType = t->flags3 & CDROMDRIVETYPE ? 1 : 0;
dlg->m_FontBypass = t->flags3 & FONTBYPASS ? 1 : 0;
dlg->m_BufferedIOFix = t->flags3 & BUFFEREDIOFIX ? 1 : 0;
dlg->m_ZBufferClean = t->flags4 & ZBUFFERCLEAN ? 1 : 0;
dlg->m_ZBuffer0Clean = t->flags4 & ZBUFFER0CLEAN ? 1 : 0;
dlg->m_ZBufferAlways = t->flags4 & ZBUFFERALWAYS ? 1 : 0;
dlg->m_SaveLoad = t->flags & SAVELOAD ? 1 : 0;
dlg->m_SlowDown = t->flags & SLOWDOWN ? 1 : 0;
dlg->m_BlitFromBackBuffer = t->flags & BLITFROMBACKBUFFER ? 1 : 0;