mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_02_38_src
Former-commit-id: 6c8bf8b2fbaa063c52aa1cdf7dcc135ac12f4795
This commit is contained in:
parent
15a98a4dff
commit
547623861d
@ -103,6 +103,7 @@
|
||||
#define FILTERMESSAGES 0x00200000 // ignore offending messages that are typical of a window and are hot handled by a fullscreeen app
|
||||
#define PEEKALLMESSAGES 0x00400000 // force Peek-ing all sort of messages to avoid Win7 message queue saturation that leads to program halt
|
||||
#define SURFACEWARN 0x00800000 // warn when a unclassified surface capability is met (debug only!)
|
||||
#define ANALYTICMODE 0x01000000 // activate analytic mode (debug only!)
|
||||
|
||||
// logging Tflags DWORD:
|
||||
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general
|
||||
|
5848
build/dxwnd.1.ini
5848
build/dxwnd.1.ini
File diff suppressed because it is too large
Load Diff
1133
build/dxwnd.2.ini
1133
build/dxwnd.2.ini
File diff suppressed because it is too large
Load Diff
@ -1,167 +0,0 @@
|
||||
[window]
|
||||
posx=1452
|
||||
posy=365
|
||||
sizx=320
|
||||
sizy=514
|
||||
[target]
|
||||
title0=Rayman 2 Demo
|
||||
path0=D:\Games\Rayman2Demo\Rayman2Demo.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=1
|
||||
coord0=0
|
||||
flag0=402653217
|
||||
flagg0=1210056704
|
||||
flagh0=2097172
|
||||
flagi0=0
|
||||
tflag0=64
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
||||
title1=Mirror's Edge
|
||||
path1=D:\Games\Mirror's Edge\Binaries\MirrorsEdge.exe
|
||||
module1=
|
||||
opengllib1=
|
||||
ver1=0
|
||||
coord1=0
|
||||
flag1=-2013265882
|
||||
flagg1=1207959552
|
||||
flagh1=2097172
|
||||
flagi1=0
|
||||
tflag1=5
|
||||
initx1=0
|
||||
inity1=0
|
||||
minx1=0
|
||||
miny1=0
|
||||
maxx1=0
|
||||
maxy1=0
|
||||
posx1=50
|
||||
posy1=50
|
||||
sizx1=800
|
||||
sizy1=600
|
||||
maxfps1=0
|
||||
initts1=6
|
||||
title2=LastHalfWin.exe
|
||||
path2=D:\Games\Last Half Of Darkness\LastHalfWin.exe
|
||||
module2=
|
||||
opengllib2=
|
||||
ver2=1
|
||||
coord2=0
|
||||
flag2=134217760
|
||||
flagg2=1207959552
|
||||
flagh2=4
|
||||
flagi2=0
|
||||
tflag2=512
|
||||
initx2=0
|
||||
inity2=0
|
||||
minx2=0
|
||||
miny2=0
|
||||
maxx2=0
|
||||
maxy2=0
|
||||
posx2=50
|
||||
posy2=50
|
||||
sizx2=800
|
||||
sizy2=600
|
||||
maxfps2=0
|
||||
initts2=0
|
||||
title3=DOOM95.EXE
|
||||
path3=D:\Games\Doom95i\DOOM95.EXE
|
||||
module3=
|
||||
opengllib3=
|
||||
ver3=0
|
||||
coord3=0
|
||||
flag3=134217762
|
||||
flagg3=1207959552
|
||||
flagh3=20
|
||||
flagi3=0
|
||||
tflag3=512
|
||||
initx3=0
|
||||
inity3=0
|
||||
minx3=0
|
||||
miny3=0
|
||||
maxx3=0
|
||||
maxy3=0
|
||||
posx3=50
|
||||
posy3=50
|
||||
sizx3=800
|
||||
sizy3=600
|
||||
maxfps3=0
|
||||
initts3=0
|
||||
title4=CNC3.exe
|
||||
path4=D:\Games\Command & Conquer 3\CNC3.exe
|
||||
module4=
|
||||
opengllib4=
|
||||
ver4=9
|
||||
coord4=0
|
||||
flag4=134217762
|
||||
flagg4=1207959552
|
||||
flagh4=20
|
||||
flagi4=0
|
||||
tflag4=512
|
||||
initx4=0
|
||||
inity4=0
|
||||
minx4=0
|
||||
miny4=0
|
||||
maxx4=0
|
||||
maxy4=0
|
||||
posx4=50
|
||||
posy4=50
|
||||
sizx4=800
|
||||
sizy4=600
|
||||
maxfps4=0
|
||||
initts4=0
|
||||
title5=Div.exe
|
||||
path5=D:\Games\Beyond Divinity\Div.exe
|
||||
module5=
|
||||
opengllib5=
|
||||
ver5=0
|
||||
coord5=0
|
||||
flag5=134217762
|
||||
flagg5=1207959552
|
||||
flagh5=20
|
||||
flagi5=0
|
||||
tflag5=512
|
||||
initx5=0
|
||||
inity5=0
|
||||
minx5=0
|
||||
miny5=0
|
||||
maxx5=0
|
||||
maxy5=0
|
||||
posx5=50
|
||||
posy5=50
|
||||
sizx5=800
|
||||
sizy5=600
|
||||
maxfps5=0
|
||||
initts5=0
|
||||
title6=martian gothic.exe
|
||||
path6=D:\Games\Martian Gothic\martian gothic.exe
|
||||
module6=
|
||||
opengllib6=
|
||||
ver6=7
|
||||
coord6=0
|
||||
flag6=201326626
|
||||
flagg6=1208090624
|
||||
flagh6=276
|
||||
flagi6=0
|
||||
tflag6=263
|
||||
initx6=0
|
||||
inity6=0
|
||||
minx6=0
|
||||
miny6=0
|
||||
maxx6=0
|
||||
maxy6=0
|
||||
posx6=50
|
||||
posy6=50
|
||||
sizx6=800
|
||||
sizy6=600
|
||||
maxfps6=0
|
||||
initts6=0
|
2214
build/dxwnd.4.ini
2214
build/dxwnd.4.ini
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0c14a21ce803c1f48696c754cbdb5368e40439fab6b64b9af7188331c159cba9
|
||||
size 414720
|
||||
oid sha256:d388e96ad41d9c1eafc912aecd8968fbd61f7f293a1f1a1cd69df02309c64344
|
||||
size 419328
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:12cba4b1f36d3b9f0ed76b365035ee75fb22df7f464e0f05f05339a829c9586c
|
||||
oid sha256:376135e3ce4f0be506edbfb44720a7c762f120258e1b24c11ccd6fe11cc6d375
|
||||
size 526336
|
||||
|
5
build/dxwnd.ini
Normal file
5
build/dxwnd.ini
Normal file
@ -0,0 +1,5 @@
|
||||
[window]
|
||||
posx=1127
|
||||
posy=417
|
||||
sizx=320
|
||||
sizy=200
|
@ -272,3 +272,13 @@ code reorganization
|
||||
GUI:
|
||||
removed useless flags and moved debug options in a hidden tab
|
||||
|
||||
v2.02.37
|
||||
CORE:
|
||||
fix: now saves ZBUFFER capabilities to restore them on queries. This eliminates one possible d3d error when attempting use surface emulated mode.
|
||||
fixed surface caps for "Ancient Evil", "Star Wars Shadows of the Empire", "Star Force Deluxe".
|
||||
fixed surface handling in "Star Force Deluxe" that rely on a implicit PRIMARY surface created with 0 flags & 0 capabilities.
|
||||
fixed handling of Flip operations when BACKBUFFER surface no longer exists, but there's a QueryInterface clone.
|
||||
attempt to fix GetSystemPaletteEntries in windowed mode by using CreateHalftonePalette
|
||||
d3d8/9 GetDisplayMode method duplicated to take in account the different prototype!!
|
||||
added tentative wrapper for GetDCEx() call
|
||||
initial coding for timers wrapping for time stretching
|
2
dll/analytic.cpp
Normal file
2
dll/analytic.cpp
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
|
209
dll/ddraw.cpp
209
dll/ddraw.cpp
@ -244,6 +244,7 @@ DDSURFACEDESC2 DDSD_Prim;
|
||||
DDSURFACEDESC2 DDSD_Back;
|
||||
DDSURFACEDESC2 DDSD_ZBuffer;
|
||||
|
||||
DWORD DDZBufferCaps;
|
||||
DWORD PaletteEntries[256];
|
||||
DWORD *Palette16BPP = NULL;
|
||||
void *EmuScreenBuffer = NULL; // to implement pitch bug fix
|
||||
@ -1658,6 +1659,15 @@ HRESULT WINAPI extQueryInterfaceS(void *lpdds, REFIID riid, LPVOID *obp)
|
||||
return DDERR_GENERIC;
|
||||
}
|
||||
break;
|
||||
case 0xA4665C60: // IID_IDirect3DRGBDevice
|
||||
OutTraceD("QueryInterface: IID_IDirect3DRGBDevice\n");
|
||||
break;
|
||||
case 0xF2086B20: // IID_IDirect3DRampDevice
|
||||
OutTraceD("QueryInterface: IID_IDirect3DRampDevice\n");
|
||||
break;
|
||||
case 0x881949a1: // IID_IDirect3DMMXDevice
|
||||
OutTraceD("QueryInterface: IID_IDirect3DMMXDevice\n");
|
||||
break;
|
||||
case 0x4B9F0EE0:
|
||||
OutTraceD("QueryInterface: IID_IDirectDrawColorControl\n");
|
||||
break;
|
||||
@ -1909,34 +1919,42 @@ HRESULT WINAPI extSetCooperativeLevel(void *lpdd, HWND hwnd, DWORD dwflags)
|
||||
return res;
|
||||
}
|
||||
|
||||
#define FIX_FLAGSMASK (DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH|DDSD_PITCH|DDSD_PIXELFORMAT|DDSD_ZBUFFERBITDEPTH)
|
||||
//#define FIXCAPS_ANALITICAL
|
||||
#define FIX_FLAGSMASK (DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH|DDSD_PITCH|DDSD_PIXELFORMAT|DDSD_ZBUFFERBITDEPTH|DDSD_TEXTURESTAGE)
|
||||
|
||||
static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
{
|
||||
// To do: fix Dungeon Keeper II
|
||||
|
||||
// rules of thumb:
|
||||
// 1) always get rid of DDSCAPS_VIDEOMEMORY caps
|
||||
// 2) always add DDSCAPS_SYSTEMMEMORY caps
|
||||
// 3) DDSCAPS_SYSTEMMEMORY is supported from dxversion 4
|
||||
// 4) if DDSD_CAPS is not set, ignore caps
|
||||
// 5) ignore DDSD_CKSRCBLT, ....
|
||||
// 6) setting a different pixel format in memory requires DDSCAPS_OFFSCREENPLAIN capability
|
||||
|
||||
if(!(lpddsd->dwFlags & DDSD_CAPS)) lpddsd->ddsCaps.dwCaps = 0;
|
||||
|
||||
OutTraceD("FixSurfaceCaps: Flags=%x(%s) Caps=%x(%s)\n",
|
||||
lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps));
|
||||
|
||||
#ifdef FIXCAPS_ANALITICAL
|
||||
void FixSurfaceCapsAnalytic(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
{
|
||||
switch (lpddsd->dwFlags & FIX_FLAGSMASK){
|
||||
//case 0:
|
||||
// switch (lpddsd->ddsCaps.dwCaps){
|
||||
// case 0:
|
||||
// // Star Force Deluxe
|
||||
// lpddsd->dwFlags = DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_PIXELFORMAT;
|
||||
// lpddsd->ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY;
|
||||
// lpddsd->dwHeight = dxw.GetScreenHeight();
|
||||
// lpddsd->dwWidth = dxw.GetScreenWidth();
|
||||
// SetPixFmt(lpddsd);
|
||||
// return;
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
case DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH|DDSD_PIXELFORMAT|DDSD_TEXTURESTAGE:
|
||||
// Ancient Evil:
|
||||
// dwFlags: DDSD_CAPS+HEIGHT+WIDTH+PIXELFORMAT+TEXTURESTAGE
|
||||
// dwCaps1: DDSCAPS_OFFSCREENPLAIN+SYSTEMMEMORY+TEXTURE
|
||||
// dwCaps2: DDSCAPS2_TEXTUREMANAGE
|
||||
SetPixFmt(lpddsd);
|
||||
return;
|
||||
break;
|
||||
case DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_ZBUFFERBITDEPTH:
|
||||
switch (lpddsd->ddsCaps.dwCaps){
|
||||
case DDSCAPS_VIDEOMEMORY|DDSCAPS_ZBUFFER:
|
||||
// Dungeon Keeper II
|
||||
return;
|
||||
break;
|
||||
case DDSCAPS_SYSTEMMEMORY|DDSCAPS_ZBUFFER:
|
||||
// "Star Wars Shadows of the Empire" through d3d
|
||||
return;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case DDSD_CAPS|DDSD_WIDTH:
|
||||
@ -1955,6 +1973,10 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
// Martian Gothic
|
||||
return;
|
||||
break;
|
||||
case DDSCAPS_VIDEOMEMORY|DDSCAPS_WRITEONLY|DDSCAPS_RESERVED2:
|
||||
// Empire Earth
|
||||
return;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH:
|
||||
@ -2036,7 +2058,14 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
break;
|
||||
case DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_PIXELFORMAT:
|
||||
switch (lpddsd->ddsCaps.dwCaps){
|
||||
case DDSCAPS_OFFSCREENPLAIN:
|
||||
case DDSCAPS_OFFSCREENPLAIN|DDSCAPS_3DDEVICE|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM:
|
||||
// Empire Earth
|
||||
// tbd
|
||||
// try
|
||||
lpddsd->ddsCaps.dwCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_3DDEVICE|DDSCAPS_SYSTEMMEMORY);
|
||||
// eotry
|
||||
return;
|
||||
break; case DDSCAPS_OFFSCREENPLAIN:
|
||||
// Submarine titans (8BPP)
|
||||
lpddsd->ddsCaps.dwCaps = (DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN);
|
||||
SetPixFmt(lpddsd);
|
||||
@ -2054,6 +2083,10 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
// Wargames Direct3D hw acceleration
|
||||
return;
|
||||
break;
|
||||
case DDSCAPS_TEXTURE:
|
||||
// Empire Earth
|
||||
return;
|
||||
break;
|
||||
case DDSCAPS_VIDEOMEMORY|DDSCAPS_ZBUFFER:
|
||||
// Martian Gothic
|
||||
lpddsd->ddsCaps.dwCaps = (DDSCAPS_SYSTEMMEMORY|DDSCAPS_ZBUFFER); // working ????
|
||||
@ -2074,6 +2107,20 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
lpddsd->ddsCaps.dwCaps = DDSCAPS_OVERLAY|DDSCAPS_SYSTEMMEMORY;
|
||||
return;
|
||||
break;
|
||||
case DDSCAPS_SYSTEMMEMORY:
|
||||
// Star Force Deluxe
|
||||
lpddsd->ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY;
|
||||
// SetPixFmt(lpddsd);
|
||||
return;
|
||||
break;
|
||||
case DDSCAPS_TEXTURE|DDSCAPS_VIDEOMEMORY|DDSCAPS_ALLOCONLOAD:
|
||||
// Star Wars Shadows of the Empire
|
||||
// seems to work both with/without SetPixFmt, but doesn't like DDSCAPS_SYSTEMMEMORY textures.
|
||||
// Setting SetPixFmt makes bad alpha transparencies!
|
||||
//lpddsd->ddsCaps.dwCaps = (DDSCAPS_TEXTURE|DDSCAPS_SYSTEMMEMORY|DDSCAPS_ALLOCONLOAD);
|
||||
//SetPixFmt(lpddsd);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_PITCH|DDSD_PIXELFORMAT:
|
||||
@ -2100,9 +2147,35 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
sprintf(sMsg, "Flags=%x(%s) Caps=%x(%s)", lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps));
|
||||
MessageBox(0, sMsg, "FixSurfaceCaps unmanaged setting", MB_OK | MB_ICONEXCLAMATION);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if((lpddsd->dwFlags & (DDSD_WIDTH|DDSD_HEIGHT)) == DDSD_WIDTH) { // buffer surface - no changes
|
||||
static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
{
|
||||
// To do: fix Dungeon Keeper II
|
||||
|
||||
// rules of thumb:
|
||||
// 1) always get rid of DDSCAPS_VIDEOMEMORY caps
|
||||
// 2) always add DDSCAPS_SYSTEMMEMORY caps
|
||||
// 3) DDSCAPS_SYSTEMMEMORY is supported from dxversion 4
|
||||
// 4) if DDSD_CAPS is not set, ignore caps
|
||||
// 5) ignore DDSD_CKSRCBLT, ....
|
||||
// 6) setting a different pixel format in memory requires DDSCAPS_OFFSCREENPLAIN capability
|
||||
// 7) DDSD_TEXTURESTAGE surfaces may need to adjust fixel format (....???)
|
||||
|
||||
if(!(lpddsd->dwFlags & DDSD_CAPS)) lpddsd->ddsCaps.dwCaps = 0;
|
||||
|
||||
OutTraceD("FixSurfaceCaps: Flags=%x(%s) Caps=%x(%s)\n",
|
||||
lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps));
|
||||
|
||||
if(dxw.dwFlags3 & ANALYTICMODE) return FixSurfaceCapsAnalytic(lpddsd, dxversion);
|
||||
|
||||
if((lpddsd->dwFlags & (DDSD_WIDTH|DDSD_HEIGHT)) == DDSD_WIDTH) {
|
||||
// buffer surface - no changes
|
||||
return;
|
||||
}
|
||||
if((lpddsd->dwFlags & (DDSD_PIXELFORMAT|DDSD_TEXTURESTAGE)) == (DDSD_PIXELFORMAT|DDSD_TEXTURESTAGE)){
|
||||
// textures, set proper color depth and make no further changes
|
||||
SetPixFmt(lpddsd);
|
||||
return;
|
||||
}
|
||||
if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER)) { // z-buffer surface - set to memory
|
||||
@ -2394,8 +2467,6 @@ static HRESULT BuildGenericEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
|
||||
return res;
|
||||
}
|
||||
|
||||
if(ddsd.ddsCaps.dwCaps & DDSCAPS_ZBUFFER) lpDDZBuffer=*lplpdds;
|
||||
|
||||
OutTraceD("CreateSurface: created Emu_Generic dds=%x\n", *lplpdds);
|
||||
if(IsDebug) DescribeSurface(*lplpdds, dxversion, "DDSEmu_Generic", __LINE__);
|
||||
// diagnostic hooks ....
|
||||
@ -2409,6 +2480,7 @@ static HRESULT BuildGenericDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
|
||||
HRESULT res;
|
||||
|
||||
DumpSurfaceAttributes((LPDDSURFACEDESC)lpddsd, "[Dir Generic]" , __LINE__);
|
||||
|
||||
res = (*pCreateSurface)(lpdd, lpddsd, lplpdds, 0);
|
||||
if(res){
|
||||
if ((dxw.dwFlags1 & SWITCHVIDEOMEMORY) && (res==DDERR_OUTOFVIDEOMEMORY)){
|
||||
@ -2483,6 +2555,14 @@ static HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreate
|
||||
|
||||
memcpy(&ddsd, lpddsd, lpddsd->dwSize); // Copy
|
||||
|
||||
// v2.02.38: this is odd: in "Star Force Deluxe" there is no PRIMARY surface, but a surface with
|
||||
// 0 flags and 0 capabilities serves for this purpose. Is it a side-effect of old ddraw releases?
|
||||
if((dxversion == 1) && (ddsd.dwFlags == 0)){ // Star Force Deluxe
|
||||
ddsd.dwFlags = DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH;
|
||||
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
|
||||
if(dxw.VirtualPixelFormat.dwRGBBitCount == 8) ddsd.ddsCaps.dwCaps |= DDSCAPS_PALETTE;
|
||||
}
|
||||
|
||||
// creation of the primary surface....
|
||||
if(ddsd.dwFlags & DDSD_CAPS && ddsd.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE){
|
||||
GetHookInfo()->Height=(short)dxw.GetScreenHeight();
|
||||
@ -2497,7 +2577,7 @@ static HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreate
|
||||
if (lpDDC) while(lpDDC->Release());
|
||||
if (lpDDSEmu_Back) while(lpDDSEmu_Back->Release());
|
||||
if (lpDDSEmu_Prim) while(lpDDSEmu_Prim->Release());
|
||||
if (ddsd.dwFlags & DDSD_BACKBUFFERCOUNT) {
|
||||
if (ddsd.dwFlags & DDSD_BACKBUFFERCOUNT) { // Praetorians !!!!
|
||||
if (lpDDSBack) while(lpDDSBack->Release());
|
||||
lpBackBufferDD = NULL;
|
||||
}
|
||||
@ -2574,7 +2654,14 @@ static HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreate
|
||||
return res;
|
||||
}
|
||||
|
||||
// if nothing else, it's a generic surface
|
||||
// if nothing else, it's a generic/zbuffer surface
|
||||
|
||||
if(lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER) {
|
||||
lpDDZBuffer=*lplpdds;
|
||||
DDZBufferCaps = lpddsd->ddsCaps.dwCaps;
|
||||
OutTraceD("CreateSurface: lpDDZBuffer=%x save ZBUFFER caps=%x(%s)\n", lpDDZBuffer, DDZBufferCaps, ExplainDDSCaps(DDZBufferCaps));
|
||||
}
|
||||
|
||||
res=BuildGeneric(lpdd, pCreateSurface, lpddsd, dxversion, lplpdds, pu);
|
||||
if(!res) dxw.MarkRegularSurface(*lplpdds);
|
||||
|
||||
@ -2617,7 +2704,7 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet
|
||||
dxversion, lpdds, (IsPrim?"(PRIM)":(IsBack ? "(BACK)":"")), lpddsc->dwCaps, ExplainDDSCaps(lpddsc->dwCaps));
|
||||
|
||||
#if 0
|
||||
if(0 && (lpddsc->dwCaps & DDSCAPS_MIPMAP)){
|
||||
if(lpddsc->dwCaps & DDSCAPS_MIPMAP){
|
||||
OutTraceD("GetAttachedSurface: emulate MIPMAP capability\n");
|
||||
lpddsc->dwCaps &= ~DDSCAPS_MIPMAP;
|
||||
}
|
||||
@ -2785,6 +2872,10 @@ HRESULT WINAPI sBlt(char *api, LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect,
|
||||
sprintf(sInfo, " ddbltfx.ROP=%x", lpddbltfx->dwROP);
|
||||
strcat(sLog, sInfo);
|
||||
}
|
||||
if (dwflags & DDBLT_DEPTHFILL){
|
||||
sprintf(sInfo, " ddbltfx.FillDepth=%x", lpddbltfx->dwFillDepth);
|
||||
strcat(sLog, sInfo);
|
||||
}
|
||||
}
|
||||
strcat(sLog,"\n");
|
||||
OutTrace(sLog);
|
||||
@ -3041,6 +3132,12 @@ HRESULT WINAPI extFlip(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWSURFACE lpddssrc,
|
||||
res=sBlt("Flip", lpdds, NULL, lpddssrc, NULL, DDBLT_WAIT, 0, TRUE);
|
||||
}
|
||||
else{
|
||||
//v2.02.38: look for a valid BackBuffer surface
|
||||
if(!lpDDSBack) lpDDSBack=dxw.GetBackBufferSurface();
|
||||
if(!lpDDSBack){
|
||||
OutTraceE("Flip: no backbuffer\n");
|
||||
return DDERR_INVALIDPARAMS;
|
||||
}
|
||||
if (dxw.dwFlags2 & BACKBUFATTACH){
|
||||
RECT NullArea;
|
||||
NullArea.left=NullArea.top=0;
|
||||
@ -3139,6 +3236,8 @@ HRESULT WINAPI extBltFast(LPDIRECTDRAWSURFACE lpdds, DWORD dwx, DWORD dwy,
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define DDPCAPS_INITIALIZE_LEGACY 0x00000008l
|
||||
|
||||
HRESULT WINAPI extCreatePalette(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTEENTRY lpddpa,
|
||||
LPDIRECTDRAWPALETTE *lplpddp, IUnknown *pu)
|
||||
{
|
||||
@ -3157,6 +3256,8 @@ HRESULT WINAPI extCreatePalette(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTEENTRY
|
||||
return res;
|
||||
}
|
||||
|
||||
if (dwflags & ~(DDPCAPS_PRIMARYSURFACE|DDPCAPS_8BIT|DDPCAPS_ALLOW256|DDPCAPS_INITIALIZE_LEGACY)) STOPPER("Palette flags");
|
||||
|
||||
res = (*pCreatePalette)(lpdd, dwflags & ~DDPCAPS_PRIMARYSURFACE, lpddpa, lplpddp, pu);
|
||||
if(res) {
|
||||
if (res) OutTraceD("CreatePalette: res=%x(%s)\n", res, ExplainDDError(res));
|
||||
@ -3165,7 +3266,8 @@ HRESULT WINAPI extCreatePalette(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTEENTRY
|
||||
|
||||
HookDDPalette(lplpddp);
|
||||
|
||||
if(dwflags & DDPCAPS_PRIMARYSURFACE){
|
||||
//if(dwflags & DDPCAPS_PRIMARYSURFACE){
|
||||
if(dwflags & DDPCAPS_8BIT){ // v2.02.38
|
||||
mySetPalette(0, 256, lpddpa);
|
||||
lpDDP = *lplpddp;
|
||||
}
|
||||
@ -3251,8 +3353,8 @@ HRESULT WINAPI extSetEntries(LPDIRECTDRAWPALETTE lpddp, DWORD dwflags, DWORD dws
|
||||
HRESULT res;
|
||||
|
||||
dxw.IsGDIPalette=FALSE;
|
||||
OutTraceD("SetEntries: dwFlags=%x, start=%d, count=%d\n", //GHO: added trace infos
|
||||
dwflags, dwstart, dwcount);
|
||||
OutTraceD("SetEntries: lpddp=%x dwFlags=%x, start=%d, count=%d entries=%x\n", //GHO: added trace infos
|
||||
lpddp, dwflags, dwstart, dwcount, lpentries);
|
||||
|
||||
res = (*pSetEntries)(lpddp, dwflags, dwstart, dwcount, lpentries);
|
||||
if(res) OutTraceE("SetEntries: ERROR res=%x(%s)\n", res, ExplainDDError(res));
|
||||
@ -3831,6 +3933,10 @@ HRESULT WINAPI extReleaseS(LPDIRECTDRAWSURFACE lpdds)
|
||||
dxw.ResetPrimarySurface();
|
||||
}
|
||||
}
|
||||
if(lpdds==lpDDSBack) { // v2.02.38
|
||||
OutTraceD("Release(S): Clearing lpDDSBack pointer\n");
|
||||
lpDDSBack = NULL;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@ -4016,8 +4122,14 @@ HRESULT WINAPI extGetCapsS(int dxInterface, GetCapsS_Type pGetCapsS, LPDIRECTDRA
|
||||
if ((caps->dwCaps & DDSCAPS_ZBUFFER) || (lpdds == lpDDZBuffer)){
|
||||
OutTraceD("GetCaps(S%d): fixing ZBUFFER surface\n", dxInterface);
|
||||
IsFixed=TRUE;
|
||||
caps->dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM);
|
||||
caps->dwCaps &= ~DDSCAPS_SYSTEMMEMORY; // zbuffer surfaces can't be this way (beware: it can be OFFSCREENPLAIN!)
|
||||
if (DDZBufferCaps & DDSCAPS_SYSTEMMEMORY){
|
||||
caps->dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_SYSTEMMEMORY);
|
||||
caps->dwCaps &= ~(DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM);
|
||||
}
|
||||
else {
|
||||
caps->dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM);
|
||||
caps->dwCaps &= ~DDSCAPS_SYSTEMMEMORY;
|
||||
}
|
||||
}
|
||||
|
||||
if(IsFixed) OutTraceD("GetCaps(S%d): lpdds=%x FIXED caps=%x(%s)\n", dxInterface, lpdds, caps->dwCaps, ExplainDDSCaps(caps->dwCaps));
|
||||
@ -4149,12 +4261,37 @@ HRESULT WINAPI extGetSurfaceDesc(GetSurfaceDesc_Type pGetSurfaceDesc, LPDIRECTDR
|
||||
if (lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER) {
|
||||
OutTraceD("GetSurfaceDesc: fixing ZBUFFER surface\n");
|
||||
IsFixed=TRUE;
|
||||
lpddsd->ddsCaps.dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM);
|
||||
//lpddsd->ddsCaps.dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY);
|
||||
lpddsd->ddsCaps.dwCaps &= ~DDSCAPS_SYSTEMMEMORY; // zbuffer surfaces can't be this way
|
||||
if (DDZBufferCaps & DDSCAPS_SYSTEMMEMORY){
|
||||
lpddsd->ddsCaps.dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_SYSTEMMEMORY);
|
||||
lpddsd->ddsCaps.dwCaps &= ~(DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM);
|
||||
}
|
||||
else {
|
||||
lpddsd->ddsCaps.dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM);
|
||||
lpddsd->ddsCaps.dwCaps &= ~DDSCAPS_SYSTEMMEMORY;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef EXPERIMENTAL_1
|
||||
if(1) {
|
||||
IsFixed=TRUE;
|
||||
if(lpddsd->ddsCaps.dwCaps & DDSCAPS_BACKBUFFER){
|
||||
lpddsd->dwSize = sizeof(DDSURFACEDESC2);
|
||||
lpddsd->ddsCaps.dwCaps |= DDSCAPS_RESERVED2;
|
||||
((LPDDSURFACEDESC2)lpddsd)->ddsCaps.dwCaps2 = DDSCAPS2_RESERVED2;
|
||||
((LPDDSURFACEDESC2)lpddsd)->ddsCaps.dwCaps3 = 0;
|
||||
}
|
||||
else
|
||||
if(lpddsd->ddsCaps.dwCaps & DDSCAPS_BACKBUFFER){
|
||||
}
|
||||
else {
|
||||
lpddsd->ddsCaps.dwCaps |= DDSCAPS_RESERVED2;
|
||||
((LPDDSURFACEDESC2)lpddsd)->ddsCaps.dwCaps2 |= DDSCAPS2_RESERVED2;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if(IsFixed) LogSurfaceAttributes(lpddsd, "GetSurfaceDesc [FIXED]", __LINE__);
|
||||
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
|
@ -401,17 +401,6 @@ char *ExplainFlipFlags(DWORD c)
|
||||
return(eb);
|
||||
}
|
||||
|
||||
char *ExplainFlipStatusFlags(DWORD c)
|
||||
{
|
||||
char *ep;
|
||||
switch(c){
|
||||
case DDGFS_CANFLIP: ep="DDGFS_CANFLIP"; break;
|
||||
case DDGFS_ISFLIPDONE: ep="DDGFS_ISFLIPDONE"; break;
|
||||
default: ep="unknown"; break;
|
||||
}
|
||||
return ep;
|
||||
}
|
||||
|
||||
char *ExplainBltFlags(DWORD c)
|
||||
{
|
||||
static char eb[512];
|
||||
@ -467,6 +456,8 @@ char *ExplainBltFastFlags(DWORD c)
|
||||
return(eb);
|
||||
}
|
||||
|
||||
#define DDPCAPS_INITIALIZE_LEGACY 0x00000008l
|
||||
|
||||
char *ExplainCreatePaletteFlags(DWORD c)
|
||||
{
|
||||
static char eb[256];
|
||||
@ -475,7 +466,9 @@ char *ExplainCreatePaletteFlags(DWORD c)
|
||||
if (c & DDPCAPS_4BIT) strcat(eb, "4BIT+");
|
||||
if (c & DDPCAPS_8BITENTRIES) strcat(eb, "8BITENTRIES+");
|
||||
if (c & DDPCAPS_8BIT) strcat(eb, "8BIT+");
|
||||
if (c & DDPCAPS_INITIALIZE) strcat(eb, "INITIALIZE+");
|
||||
//if (c & DDPCAPS_INITIALIZE) strcat(eb, "INITIALIZE+");
|
||||
// DDPCAPS_INITIALIZE is obsolete and redefined to 0x0, but that is not the legacy value embedded in assembly!
|
||||
if (c & DDPCAPS_INITIALIZE_LEGACY) strcat(eb, "INITIALIZE+");
|
||||
if (c & DDPCAPS_PRIMARYSURFACE) strcat(eb, "PRIMARYSURFACE+");
|
||||
if (c & DDPCAPS_PRIMARYSURFACELEFT) strcat(eb, "PRIMARYSURFACELEFT+");
|
||||
if (c & DDPCAPS_ALLOW256) strcat(eb, "ALLOW256+");
|
||||
@ -637,6 +630,18 @@ char *ExplainBltStatus(DWORD c)
|
||||
return(eb);
|
||||
}
|
||||
|
||||
char *ExplainFlipStatus(DWORD c)
|
||||
{
|
||||
static char *eb;
|
||||
switch(c)
|
||||
{
|
||||
case DDGFS_CANFLIP: eb="DDGFS_CANFLIP"; break;
|
||||
case DDGFS_ISFLIPDONE: eb="DDGFS_ISFLIPDONE"; break;
|
||||
default: eb="invalid"; break;
|
||||
}
|
||||
return(eb);
|
||||
}
|
||||
|
||||
char *ExplainDDError(DWORD c)
|
||||
{
|
||||
static char *eb;
|
||||
@ -1492,4 +1497,32 @@ char *ExplainPeekRemoveMsg(DWORD c)
|
||||
if(c & QS_SENDMESSAGE) strcat(eb, "+SENDMESSAGE");
|
||||
if(c & QS_ALLPOSTMESSAGE) strcat(eb, "+ALLPOSTMESSAGE");
|
||||
return(eb);
|
||||
}
|
||||
}
|
||||
|
||||
char *ExplainGetDCExFlags(DWORD c)
|
||||
{
|
||||
static char eb[128];
|
||||
unsigned int l;
|
||||
strcpy(eb,"DCX_");
|
||||
if(c & DCX_WINDOW) strcat(eb, "WINDOW+");
|
||||
if(c & DCX_CACHE) strcat(eb, "CACHE+");
|
||||
if(c & DCX_PARENTCLIP) strcat(eb, "PARENTCLIP+");
|
||||
if(c & DCX_CLIPSIBLINGS) strcat(eb, "CLIPSIBLINGS+");
|
||||
if(c & DCX_CLIPCHILDREN) strcat(eb, "CLIPCHILDREN+");
|
||||
if(c & DCX_NORESETATTRS) strcat(eb, "NORESETATTRS+");
|
||||
if(c & DCX_EXCLUDERGN) strcat(eb, "EXCLUDERGN+");
|
||||
if(c & DCX_EXCLUDEUPDATE) strcat(eb, "EXCLUDEUPDATE+");
|
||||
if(c & DCX_INTERSECTRGN) strcat(eb, "INTERSECTRGN+");
|
||||
if(c & DCX_INTERSECTUPDATE) strcat(eb, "INTERSECTUPDATE+");
|
||||
if(c & DCX_VALIDATE) strcat(eb, "VALIDATE+");
|
||||
l=strlen(eb);
|
||||
if (l>strlen("DCX_")) eb[l-1]=0; // delete last '+' if any
|
||||
else strcpy(eb,"NULL");
|
||||
return(eb);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -13,7 +13,6 @@ extern char *ExplainDDCKeyCaps(DWORD);
|
||||
extern char *ExplainCoopFlags(DWORD);
|
||||
extern char *ExplainPixelFormatFlags(DWORD);
|
||||
extern char *ExplainFlipFlags(DWORD);
|
||||
extern char *ExplainFlipStatusFlags(DWORD);
|
||||
extern char *ExplainBltFlags(DWORD);
|
||||
extern char *ExplainBltFastFlags(DWORD);
|
||||
extern char *ExplainCreatePaletteFlags(DWORD);
|
||||
@ -22,6 +21,7 @@ extern char *ExplainStyle(DWORD);
|
||||
extern char *ExplainExStyle(DWORD);
|
||||
extern char *ExplainShowCmd(int);
|
||||
extern char *ExplainBltStatus(DWORD);
|
||||
extern char *ExplainFlipStatus(DWORD);
|
||||
extern char *ExplainDDError(DWORD);
|
||||
extern char *ExplainWinMessage(DWORD);
|
||||
extern char *ExplainResizing(DWORD);
|
||||
@ -42,3 +42,4 @@ extern char *ExplainMCIFlags(DWORD, DWORD);
|
||||
extern char *ExplainRegType(DWORD);
|
||||
extern char *ExplainDCType(DWORD);
|
||||
extern char *ExplainPeekRemoveMsg(DWORD);
|
||||
extern char *ExplainGetDCExFlags(DWORD);
|
||||
|
@ -15,7 +15,6 @@ dxwCore::dxwCore()
|
||||
{
|
||||
// initialization stuff ....
|
||||
FullScreen=FALSE;
|
||||
if(dxw.dwFlags3 & FULLSCREENONLY) FullScreen=TRUE;
|
||||
SethWnd(NULL);
|
||||
SetScreenSize();
|
||||
dwMaxDDVersion=7;
|
||||
@ -60,6 +59,7 @@ void dxwCore::InitTarget(TARGETMAP *target)
|
||||
dwFlags3 = target->flags3;
|
||||
dwFlags4 = target->flags4;
|
||||
dwTFlags = target->tflags;
|
||||
if(dxw.dwFlags3 & FULLSCREENONLY) FullScreen=TRUE;
|
||||
gsModules = target->module;
|
||||
MaxFPS = target->MaxFPS;
|
||||
CustomOpenGLLib = target->OpenGLLib;
|
||||
@ -156,8 +156,8 @@ BOOL dxwCore::IsAPrimarySurface(LPDIRECTDRAWSURFACE ps)
|
||||
// treat NULL surface ptr as a non primary
|
||||
if(!ps) return FALSE;
|
||||
for (i=0;i<DDSQLEN;i++) {
|
||||
if (PrimSurfaces[i]==(DWORD)ps) return TRUE;
|
||||
if (PrimSurfaces[i]==0) return FALSE;
|
||||
if (PrimSurfaces[i]==(DWORD)ps) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
@ -168,8 +168,8 @@ BOOL dxwCore::IsABackBufferSurface(LPDIRECTDRAWSURFACE ps)
|
||||
// treat NULL surface ptr as a non primary
|
||||
if(!ps) return FALSE;
|
||||
for (i=0;i<DDSQLEN;i++) {
|
||||
if (BackSurfaces[i]==(DWORD)ps) return TRUE;
|
||||
if (BackSurfaces[i]==0) return FALSE;
|
||||
if (BackSurfaces[i]==(DWORD)ps) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -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.37"
|
||||
#define VERSION "2.02.38"
|
||||
|
||||
#define DDTHREADLOCK 1
|
||||
|
||||
@ -160,7 +160,7 @@ LRESULT CALLBACK HookProc(int ncode, WPARAM wparam, LPARAM lparam)
|
||||
GetModuleFileName(0, name, MAX_PATH);
|
||||
for(i = 0; name[i]; i ++) name[i] = tolower(name[i]);
|
||||
WaitForSingleObject(hMutex, INFINITE);
|
||||
for(i = 0; pMapping[i].path[0]; i ++){
|
||||
for(i = 0; pMapping[i].path[0] && (i<MAXTARGETS); i++){
|
||||
if (!(pMapping[i].flags3 & HOOKENABLED)) continue;
|
||||
if(!strncmp(name, pMapping[i].path, strlen(name)))
|
||||
{
|
||||
|
Binary file not shown.
@ -220,6 +220,10 @@
|
||||
RelativePath=".\advapi.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\analytic.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ddraw.cpp"
|
||||
>
|
||||
|
@ -530,8 +530,20 @@ UINT WINAPI extGetSystemPaletteEntries(HDC hdc, UINT iStartIndex, UINT nEntries,
|
||||
ret=(*pGDIGetSystemPaletteEntries)(hdc, iStartIndex, nEntries, lppe);
|
||||
OutTraceD("GetSystemPaletteEntries: ret=%d\n", ret);
|
||||
if((ret == 0) && (dxw.dwFlags1 & EMULATESURFACE)) {
|
||||
OutTraceD("GetSystemPaletteEntries: fixing ret=%d\n", nEntries);
|
||||
//OutTraceD("GetSystemPaletteEntries: fixing ret=%d\n", nEntries);
|
||||
//ret = nEntries;
|
||||
// this seems to build a more reasonable system palette ....
|
||||
HPALETTE hpal;
|
||||
hpal=CreateHalftonePalette(NULL);
|
||||
GetPaletteEntries(hpal, iStartIndex, nEntries, lppe);
|
||||
ret = nEntries;
|
||||
OutTraceD("GetSystemPaletteEntries: fixing ret=%d\n", ret);
|
||||
if(IsDebug){
|
||||
UINT idx;
|
||||
OutTraceD("PaletteEntries[%x]= ", nEntries);
|
||||
for(idx=0; idx<nEntries; idx++) OutTraceD("(%02x.%02x.%02x)", lppe[idx].peRed, lppe[idx].peGreen, lppe[idx].peBlue);
|
||||
OutTraceD("\n");
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
39
dll/hd3d.cpp
39
dll/hd3d.cpp
@ -25,7 +25,8 @@ typedef HRESULT (WINAPI *CreateDeviceEx_Type)(void *, UINT, D3DDEVTYPE, HWND, DW
|
||||
typedef HRESULT (WINAPI *EnumAdapterModes8_Type)(void *, UINT, UINT, D3DDISPLAYMODE *);
|
||||
typedef HRESULT (WINAPI *EnumAdapterModes9_Type)(void *, UINT, D3DFORMAT ,UINT, D3DDISPLAYMODE *);
|
||||
typedef HRESULT (WINAPI *GetAdapterDisplayMode_Type)(void *, UINT, D3DDISPLAYMODE *);
|
||||
typedef HRESULT (WINAPI *GetDisplayMode_Type)(void *, D3DDISPLAYMODE *);
|
||||
typedef HRESULT (WINAPI *GetDisplayMode8_Type)(void *, D3DDISPLAYMODE *);
|
||||
typedef HRESULT (WINAPI *GetDisplayMode9_Type)(void *, UINT, D3DDISPLAYMODE *);
|
||||
typedef HRESULT (WINAPI *Present_Type)(void *, CONST RECT *, CONST RECT *, HWND, CONST RGNDATA *);
|
||||
typedef HRESULT (WINAPI *SetRenderState_Type)(void *, D3DRENDERSTATETYPE, DWORD);
|
||||
typedef HRESULT (WINAPI *GetRenderState_Type)(void *, D3DRENDERSTATETYPE, DWORD );
|
||||
@ -65,7 +66,8 @@ HRESULT WINAPI extEnumAdapterModes8(void *, UINT, UINT , D3DDISPLAYMODE *);
|
||||
HRESULT WINAPI extEnumAdapterModes9(void *, UINT, D3DFORMAT, UINT , D3DDISPLAYMODE *);
|
||||
HRESULT WINAPI extGetAdapterDisplayMode8(void *, UINT, D3DDISPLAYMODE *);
|
||||
HRESULT WINAPI extGetAdapterDisplayMode9(void *, UINT, D3DDISPLAYMODE *);
|
||||
HRESULT WINAPI extGetDisplayMode(void *, D3DDISPLAYMODE *);
|
||||
HRESULT WINAPI extGetDisplayMode8(void *, D3DDISPLAYMODE *);
|
||||
HRESULT WINAPI extGetDisplayMode9(void *, UINT, D3DDISPLAYMODE *);
|
||||
HRESULT WINAPI extPresent(void *, CONST RECT *, CONST RECT *, HWND, CONST RGNDATA *);
|
||||
HRESULT WINAPI extSetRenderState(void *, D3DRENDERSTATETYPE, DWORD);
|
||||
HRESULT WINAPI extGetRenderState(void *, D3DRENDERSTATETYPE, DWORD);
|
||||
@ -107,7 +109,8 @@ EnumAdapterModes8_Type pEnumAdapterModes8 = 0;
|
||||
EnumAdapterModes9_Type pEnumAdapterModes9 = 0;
|
||||
GetAdapterDisplayMode_Type pGetAdapterDisplayMode8 = 0;
|
||||
GetAdapterDisplayMode_Type pGetAdapterDisplayMode9 = 0;
|
||||
GetDisplayMode_Type pGetDisplayMode = 0;
|
||||
GetDisplayMode8_Type pGetDisplayMode8 = 0;
|
||||
GetDisplayMode9_Type pGetDisplayMode9 = 0;
|
||||
Present_Type pPresent = 0;
|
||||
SetRenderState_Type pSetRenderState = 0;
|
||||
GetRenderState_Type pGetRenderState = 0;
|
||||
@ -524,16 +527,30 @@ HRESULT WINAPI extPresent(void *pd3dd, CONST RECT *pSourceRect, CONST RECT *pDes
|
||||
return res;
|
||||
}
|
||||
|
||||
HRESULT WINAPI extGetDisplayMode(void *lpd3d, D3DDISPLAYMODE *pMode)
|
||||
HRESULT WINAPI extGetDisplayMode8(void *lpd3d, D3DDISPLAYMODE *pMode)
|
||||
{
|
||||
HRESULT res;
|
||||
res=(*pGetDisplayMode)(lpd3d, pMode);
|
||||
OutTraceD("DEBUG: GetDisplayMode: size=(%dx%d) RefreshRate=%d Format=%d\n",
|
||||
res=(*pGetDisplayMode8)(lpd3d, pMode);
|
||||
OutTraceD("DEBUG: GetDisplayMode(8): size=(%dx%d) RefreshRate=%d Format=%d\n",
|
||||
pMode->Width, pMode->Height, pMode->RefreshRate, pMode->Format);
|
||||
if(dxw.dwFlags2 & KEEPASPECTRATIO){
|
||||
pMode->Width=dxw.iSizX;
|
||||
pMode->Height=dxw.iSizY;
|
||||
OutTraceD("DEBUG: GetDisplayMode: fixed size=(%dx%d)\n", pMode->Width, pMode->Height);
|
||||
OutTraceD("DEBUG: GetDisplayMode(8): fixed size=(%dx%d)\n", pMode->Width, pMode->Height);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
HRESULT WINAPI extGetDisplayMode9(void *lpd3d, UINT iSwapChain, D3DDISPLAYMODE *pMode)
|
||||
{
|
||||
HRESULT res;
|
||||
res=(*pGetDisplayMode9)(lpd3d, iSwapChain, pMode);
|
||||
OutTraceD("DEBUG: GetDisplayMode(9): SwapChain=%d size=(%dx%d) RefreshRate=%d Format=%d\n",
|
||||
iSwapChain, pMode->Width, pMode->Height, pMode->RefreshRate, pMode->Format);
|
||||
if(dxw.dwFlags2 & KEEPASPECTRATIO){
|
||||
pMode->Width=dxw.iSizX;
|
||||
pMode->Height=dxw.iSizY;
|
||||
OutTraceD("DEBUG: GetDisplayMode(9): fixed size=(%dx%d)\n", pMode->Width, pMode->Height);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@ -703,7 +720,7 @@ HRESULT WINAPI extCreateDevice(void *lpd3d, UINT adapter, D3DDEVTYPE devicetype,
|
||||
pReset=NULL; // to avoid assert condition
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 0), extQueryInterfaceDev8, (void **)&pQueryInterfaceDev8, "QueryInterface(D8)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 24), extGetDirect3D, (void **)&pGetDirect3D, "GetDirect3D(D8)");
|
||||
//SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode, (void **)&pGetDisplayMode, "GetDisplayMode(D8)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode8, (void **)&pGetDisplayMode8, "GetDisplayMode(D8)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 52), extCreateAdditionalSwapChain, (void **)&pCreateAdditionalSwapChain, "CreateAdditionalSwapChain(D8)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 56), extReset, (void **)&pReset, "Reset(D8)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 60), extPresent, (void **)&pPresent, "Present(D8)");
|
||||
@ -722,7 +739,7 @@ HRESULT WINAPI extCreateDevice(void *lpd3d, UINT adapter, D3DDEVTYPE devicetype,
|
||||
pReset=NULL; // to avoid assert condition
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 0), extQueryInterfaceDev9, (void **)&pQueryInterfaceDev9, "QueryInterface(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 24), extGetDirect3D, (void **)&pGetDirect3D, "GetDirect3D(D9)");
|
||||
//SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode, (void **)&pGetDisplayMode, "GetDisplayMode(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode9, (void **)&pGetDisplayMode9, "GetDisplayMode(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 52), extCreateAdditionalSwapChain, (void **)&pCreateAdditionalSwapChain, "CreateAdditionalSwapChain(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 64), extReset, (void **)&pReset, "Reset(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 68), extPresent, (void **)&pPresent, "Present(D9)");
|
||||
@ -810,7 +827,7 @@ HRESULT WINAPI extCreateDeviceEx(void *lpd3d, UINT adapter, D3DDEVTYPE devicetyp
|
||||
void *pReset;
|
||||
pReset=NULL; // to avoid assert condition
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 0), extQueryInterfaceDev9, (void **)&pQueryInterfaceDev9, "QueryInterface(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode, (void **)&pGetDisplayMode, "GetDisplayMode(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode9, (void **)&pGetDisplayMode9, "GetDisplayMode(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 52), extCreateAdditionalSwapChain, (void **)&pCreateAdditionalSwapChain, "CreateAdditionalSwapChain(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 64), extReset, (void **)&pReset, "Reset(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppd3dd + 68), extPresent, (void **)&pPresent, "Present(D9)");
|
||||
@ -1117,7 +1134,7 @@ HRESULT WINAPI extQueryInterfaceDev9(void *obj, REFIID riid, void** ppvObj)
|
||||
OutTraceD("Device hook for IID_IDirect3DDevice9 interface\n");
|
||||
pReset=NULL; // to avoid assert condition
|
||||
SetHook((void *)(**(DWORD **)ppvObj + 0), extQueryInterfaceDev9, (void **)&pQueryInterfaceDev9, "QueryInterface(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppvObj + 32), extGetDisplayMode, (void **)&pGetDisplayMode, "GetDisplayMode(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppvObj + 32), extGetDisplayMode9, (void **)&pGetDisplayMode9, "GetDisplayMode(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppvObj + 52), extCreateAdditionalSwapChain, (void **)&pCreateAdditionalSwapChain, "CreateAdditionalSwapChain(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppvObj + 64), extReset, (void **)&pReset, "Reset(D9)");
|
||||
SetHook((void *)(**(DWORD **)ppvObj + 68), extPresent, (void **)&pPresent, "Present(D9)");
|
||||
|
@ -37,6 +37,9 @@ typedef HRESULT (WINAPI *SetViewport_Type)(void *, LPD3DVIEWPORT);
|
||||
typedef HRESULT (WINAPI *GetViewport_Type)(void *, LPD3DVIEWPORT);
|
||||
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);
|
||||
|
||||
Initialize_Type pInitialize = NULL;
|
||||
EnumDevices_Type pEnumDevices = NULL;
|
||||
CreateLight_Type pCreateLight = NULL;
|
||||
@ -51,6 +54,9 @@ SetViewport_Type pSetViewport = NULL;
|
||||
GetViewport_Type pGetViewport = NULL;
|
||||
QueryInterfaceD3_Type pQueryInterfaceD3 = NULL;
|
||||
|
||||
D3DInitialize_Type pD3DInitialize = NULL;
|
||||
D3DGetCaps_Type pD3DGetCaps = NULL;
|
||||
|
||||
HRESULT WINAPI extInitialize(void *);
|
||||
HRESULT WINAPI extEnumDevices(void *, LPD3DENUMDEVICESCALLBACK, LPVOID);
|
||||
HRESULT WINAPI extCreateLight(void *, LPDIRECT3DLIGHT *, IUnknown *);
|
||||
@ -65,6 +71,9 @@ HRESULT WINAPI extSetViewport(void *, LPD3DVIEWPORT);
|
||||
HRESULT WINAPI extGetViewport(void *, LPD3DVIEWPORT);
|
||||
HRESULT WINAPI extQueryInterfaceD3(void *, REFIID, LPVOID *);
|
||||
|
||||
HRESULT WINAPI extD3DInitialize(void *, LPDIRECT3D , LPGUID, LPD3DDEVICEDESC);
|
||||
HRESULT WINAPI extD3DGetCaps(void *, LPD3DDEVICEDESC ,LPD3DDEVICEDESC);
|
||||
|
||||
extern char *ExplainDDError(DWORD);
|
||||
|
||||
int HookDirect3D7(HMODULE module, int version){
|
||||
@ -309,7 +318,6 @@ HRESULT WINAPI extDeviceProxy(GUID FAR *lpGuid, LPSTR lpDeviceDescription, LPSTR
|
||||
OutTraceD("EnumDevices: CALLBACK GUID=%x(%s) DeviceDescription=\"%s\", DeviceName=\"%s\", arg=%x\n", lpGuid->Data1, ExplainGUID(lpGuid), lpDeviceDescription, lpDeviceName, ((CallbackArg *)arg)->arg);
|
||||
DumpD3DDevideDesc(lpd3ddd1, "HWDEV");
|
||||
DumpD3DDevideDesc(lpd3ddd2, "SWDEV");
|
||||
HookDirect3DDevice((LPDIRECTDRAW *)lpGuid, 0);
|
||||
res = (*(((CallbackArg *)arg)->cb))(lpGuid, lpDeviceDescription, lpDeviceName, lpd3ddd1, lpd3ddd2, ((CallbackArg *)arg)->arg);
|
||||
OutTraceD("EnumDevices: CALLBACK ret=%x\n", res);
|
||||
return res;
|
||||
@ -426,8 +434,12 @@ HRESULT WINAPI extCreateDevice2(void *lpd3d, REFCLSID Guid, LPDIRECTDRAWSURFACE
|
||||
OutTraceE("CreateDevice(D3D2) ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||
return res;
|
||||
}
|
||||
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)");
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -466,16 +478,28 @@ HRESULT WINAPI extCreateDevice3(void *lpd3d, REFCLSID Guid, LPDIRECTDRAWSURFACE4
|
||||
return res;
|
||||
}
|
||||
|
||||
#if 0
|
||||
HRESULT WINAPI extInitialize(void *d3dd, LPDIRECT3D lpd3d, LPGUID lpGuid, LPD3DDEVICEDESC lpd3ddd)
|
||||
HRESULT WINAPI extD3DInitialize(void *d3dd, LPDIRECT3D lpd3d, LPGUID lpGuid, LPD3DDEVICEDESC lpd3dd)
|
||||
{
|
||||
HRESULT res;
|
||||
OutTrace("Initialize: d3dd=%x lpd3d=%x GUID=%x lpd3ddd=%x\n", d3dd, lpd3d, lpGuid->Data1, lpd3ddd);
|
||||
res=(*pInitialize)(d3dd, lpd3d, lpGuid, lpd3ddd);
|
||||
OutTrace("Initialize: d3dd=%x lpd3d=%x GUID=%x lpd3ddd=%x\n", d3dd, lpd3d, lpGuid->Data1, lpd3dd);
|
||||
res=(*pD3DInitialize)(d3dd, lpd3d, lpGuid, lpd3dd);
|
||||
if(res) OutTraceE("Initialize ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||
DumpD3DDevideDesc(lpd3dd, "INIT");
|
||||
return res;
|
||||
}
|
||||
HRESULT WINAPI extGetCaps(void *d3dd, LPD3DDEVICEDESC,LPD3DDEVICEDESC)
|
||||
|
||||
HRESULT WINAPI extD3DGetCaps(void *d3dd, LPD3DDEVICEDESC lpd3dd ,LPD3DDEVICEDESC lpd3dd2)
|
||||
{
|
||||
HRESULT res;
|
||||
OutTrace("GetCaps(D3D): d3dd=%x lpd3dd=%x lpd3dd2=%x \n", d3dd, lpd3dd, lpd3dd2);
|
||||
res=(*pD3DGetCaps)(d3dd, lpd3dd, lpd3dd2);
|
||||
if(res) OutTraceE("GetCaps(D3D) ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||
DumpD3DDevideDesc(lpd3dd, "HWDEV");
|
||||
DumpD3DDevideDesc(lpd3dd2, "SWDEV");
|
||||
return res;
|
||||
}
|
||||
|
||||
#if 0
|
||||
//HRESULT WINAPI extSwapTextureHandles(void *d3dd, LPDIRECT3DTEXTURE,LPDIRECT3DTEXTURE)
|
||||
//HRESULT WINAPI extCreateExecuteBuffer(void *d3dd, LPD3DEXECUTEBUFFERDESC,LPDIRECT3DEXECUTEBUFFER*,IUnknown*)
|
||||
//HRESULT WINAPI extGetStats(void *d3dd, LPD3DSTATS)
|
||||
|
@ -694,22 +694,22 @@ HRESULT WINAPI extCreatePaletteProxy(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTE
|
||||
|
||||
|
||||
|
||||
HRESULT WINAPI extGetCapsDProxy(LPDIRECTDRAW lpdd, LPDDCAPS c1, LPDDCAPS c2)
|
||||
{
|
||||
HRESULT res;
|
||||
OutTraceP("GetCaps(D): PROXED lpdd=%x c1=%x c2=%x\n", lpdd, c1, c2);
|
||||
res=(*pGetCapsD)(lpdd, c1, c2);
|
||||
if(res)
|
||||
OutTraceP("GetCaps(D): ERROR res=%x(%s)\n", res, ExplainDDError(res));
|
||||
else {
|
||||
// to do: a full Caps dump!
|
||||
OutTraceP("GetCaps(D): ");
|
||||
if (c1) OutTraceP("hwcaps size=%x ", c1->dwSize);
|
||||
if (c2) OutTraceP("swcaps size=%x ", c2->dwSize);
|
||||
OutTraceP("\n");
|
||||
}
|
||||
return res;
|
||||
}
|
||||
//HRESULT WINAPI extGetCapsDProxy(LPDIRECTDRAW lpdd, LPDDCAPS c1, LPDDCAPS c2)
|
||||
//{
|
||||
// HRESULT res;
|
||||
// OutTraceP("GetCaps(D): PROXED lpdd=%x c1=%x c2=%x\n", lpdd, c1, c2);
|
||||
// res=(*pGetCapsD)(lpdd, c1, c2);
|
||||
// if(res)
|
||||
// OutTraceP("GetCaps(D): ERROR res=%x(%s)\n", res, ExplainDDError(res));
|
||||
// else {
|
||||
// // to do: a full Caps dump!
|
||||
// OutTraceP("GetCaps(D): ");
|
||||
// if (c1) OutTraceP("hwcaps size=%x ", c1->dwSize);
|
||||
// if (c2) OutTraceP("swcaps size=%x ", c2->dwSize);
|
||||
// OutTraceP("\n");
|
||||
// }
|
||||
// return res;
|
||||
//}
|
||||
|
||||
HRESULT WINAPI extGetSurfaceFromDCProxy(LPDIRECTDRAW lpdd, HDC hdc, LPDIRECTDRAWSURFACE* lpDDS)
|
||||
{
|
||||
@ -1186,26 +1186,13 @@ HRESULT WINAPI extGetClipperProxy(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWCLIPPER
|
||||
|
||||
HRESULT WINAPI extGetFlipStatusProxy(LPDIRECTDRAWSURFACE lpdds, DWORD flags)
|
||||
{
|
||||
#if 0
|
||||
HRESULT res;
|
||||
OutTraceP("GetFlipStatus(S): PROXED lpdds=%x flags=%x(%s)\n", lpdds, flags, ExplainFlipStatusFlags(flags));
|
||||
OutTraceP("GetFlipStatus(S): PROXED lpdds=%x flags=%x(%s)\n", lpdds, flags, ExplainFlipStatus(flags));
|
||||
res=(*pGetFlipStatus)(lpdds, flags);
|
||||
if(res==DDERR_WASSTILLDRAWING) OutTraceP("GetFlipStatus(S): res=%x(%s)\n", res, ExplainDDError(res));
|
||||
else
|
||||
if(res) OutTraceP("GetFlipStatus(S): ERROR err=%x(%s)\n", res, ExplainDDError(res));
|
||||
return res;
|
||||
#else
|
||||
HRESULT res;
|
||||
static int DeMux=0;
|
||||
OutTraceP("GetFlipStatus(S): DELAYED lpdds=%x flags=%x(%s)\n", lpdds, flags, ExplainFlipStatusFlags(flags));
|
||||
DeMux = (DeMux + 1) % 10;
|
||||
res=(*pGetFlipStatus)(lpdds, flags);
|
||||
if(res==DDERR_WASSTILLDRAWING) OutTraceP("GetFlipStatus(S): res=%x(%s)\n", res, ExplainDDError(res));
|
||||
else
|
||||
if(res) OutTraceP("GetFlipStatus(S): ERROR err=%x(%s)\n", res, ExplainDDError(res));
|
||||
if(DeMux) res=DDERR_WASSTILLDRAWING;
|
||||
return res;
|
||||
#endif
|
||||
}
|
||||
|
||||
HRESULT WINAPI extGetOverlayPositionProxy(LPDIRECTDRAWSURFACE lpdds, LPLONG lpl1, LPLONG lpl2)
|
||||
@ -1710,7 +1697,7 @@ static void HookDDSessionProxy(LPDIRECTDRAW *lplpdd, int dxVersion)
|
||||
// IDIrectDraw::FlipToGDISurface
|
||||
SetHook((void *)(**(DWORD **)lplpdd + 40), extFlipToGDISurfaceProxy, (void **)&pFlipToGDISurface, "FlipToGDISurface(D)");
|
||||
// IDIrectDraw::GetCaps
|
||||
SetHook((void *)(**(DWORD **)lplpdd + 44), extGetCapsDProxy, (void **)&pGetCapsD, "GetCaps(D)");
|
||||
SetHook((void *)(**(DWORD **)lplpdd + 44), extGetCapsD, (void **)&pGetCapsD, "GetCaps(D)");
|
||||
// IDIrectDraw::GetDisplayMode
|
||||
SetHook((void *)(**(DWORD **)lplpdd + 48), extGetDisplayModeProxy, (void **)&pGetDisplayMode, "GetDisplayMode(D)");
|
||||
// IDIrectDraw::GetFourCCCodes
|
||||
|
@ -60,7 +60,7 @@ extern HRESULT WINAPI extGetSurfaceDesc4Proxy(LPDIRECTDRAWSURFACE2, LPDDSURFACED
|
||||
extern ULONG WINAPI extAddRefDProxy(LPDIRECTDRAW);
|
||||
extern ULONG WINAPI extCompactProxy(LPDIRECTDRAW);
|
||||
extern HRESULT WINAPI extEnumDisplayModesProxy(LPDIRECTDRAW, DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK);
|
||||
extern HRESULT WINAPI extGetCapsDProxy(LPDIRECTDRAW, LPDDCAPS, LPDDCAPS);
|
||||
extern HRESULT WINAPI extGetCapsD(LPDIRECTDRAW, LPDDCAPS, LPDDCAPS);
|
||||
extern HRESULT WINAPI extGetFourCCCodesProxy(LPDIRECTDRAW, LPDWORD, LPDWORD);
|
||||
extern HRESULT WINAPI extGetMonitorFrequencyProxy(LPDIRECTDRAW, LPDWORD);
|
||||
extern HRESULT WINAPI extGetScanLineProxy(LPDIRECTDRAW, LPDWORD);
|
||||
|
@ -175,6 +175,8 @@ typedef HWND (WINAPI *SetCapture_Type)(HWND);
|
||||
// Winmm.dll:
|
||||
typedef MCIERROR(WINAPI *mciSendCommand_Type)(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR);
|
||||
typedef DWORD (WINAPI *timeGetTime_Type)(void);
|
||||
typedef MMRESULT(WINAPI *timeKillEvent_Type)(UINT);
|
||||
typedef MMRESULT(WINAPI *timeSetEvent_Type)(UINT, UINT, LPTIMECALLBACK, DWORD_PTR, UINT);
|
||||
|
||||
/* ===================================================================
|
||||
hooked APIs real pointers
|
||||
@ -352,6 +354,8 @@ DXWEXTERN SetCapture_Type pSetCapture DXWINITIALIZED;
|
||||
// Winmm.dll:
|
||||
DXWEXTERN mciSendCommand_Type pmciSendCommand DXWINITIALIZED;
|
||||
DXWEXTERN timeGetTime_Type ptimeGetTime DXWINITIALIZED;
|
||||
DXWEXTERN timeKillEvent_Type ptimeKillEvent DXWINITIALIZED;
|
||||
DXWEXTERN timeSetEvent_Type ptimeSetEvent DXWINITIALIZED;
|
||||
|
||||
/* ===================================================================
|
||||
hook procedures (possibly more tnan one per each API...)
|
||||
@ -526,6 +530,8 @@ extern HWND WINAPI extSetCapture(HWND);
|
||||
// Winmm.dll:
|
||||
extern MCIERROR WINAPI extmciSendCommand(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR);
|
||||
extern DWORD WINAPI exttimeGetTime(void);
|
||||
extern MMRESULT WINAPI exttimeSetEvent(UINT, UINT, LPTIMECALLBACK, DWORD_PTR, UINT);
|
||||
extern MMRESULT WINAPI exttimeKillEvent(UINT);
|
||||
|
||||
// extern function declaration
|
||||
|
||||
|
1888
dll/user32 - Copia.cpp
Normal file
1888
dll/user32 - Copia.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,7 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "dxwnd.h"
|
||||
#include "dxwcore.hpp"
|
||||
#include "syslibs.h"
|
||||
@ -12,7 +13,8 @@
|
||||
|
||||
static HookEntry_Type Hooks[]={
|
||||
{"UpdateWindow", (FARPROC)NULL, (FARPROC *)&pUpdateWindow, (FARPROC)extUpdateWindow},
|
||||
{"GetWindowPlacement", (FARPROC)NULL, (FARPROC *)&pGetWindowPlacement, (FARPROC)extGetWindowPlacement},
|
||||
//{"GetWindowPlacement", (FARPROC)NULL, (FARPROC *)&pGetWindowPlacement, (FARPROC)extGetWindowPlacement},
|
||||
//{"SetWindowPlacement", (FARPROC)NULL, (FARPROC *)&pSetWindowPlacement, (FARPROC)extSetWindowPlacement},
|
||||
{"ChangeDisplaySettingsA", (FARPROC)ChangeDisplaySettingsA, (FARPROC *)&pChangeDisplaySettings, (FARPROC)extChangeDisplaySettings},
|
||||
{"ChangeDisplaySettingsExA", (FARPROC)ChangeDisplaySettingsA, (FARPROC *)&pChangeDisplaySettingsEx, (FARPROC)extChangeDisplaySettingsEx},
|
||||
{"BeginPaint", (FARPROC)BeginPaint, (FARPROC *)&pBeginPaint, (FARPROC)extBeginPaint},
|
||||
@ -971,9 +973,10 @@ ATOM WINAPI extRegisterClassExA(WNDCLASSEX *lpwcx)
|
||||
|
||||
static HWND WINAPI extCreateWindowCommon(
|
||||
LPCTSTR ApiName,
|
||||
BOOL WideChar,
|
||||
DWORD dwExStyle,
|
||||
LPCTSTR lpClassName,
|
||||
LPCTSTR lpWindowName,
|
||||
void *lpClassName,
|
||||
void *lpWindowName,
|
||||
DWORD dwStyle,
|
||||
int x,
|
||||
int y,
|
||||
@ -1078,8 +1081,10 @@ static HWND WINAPI extCreateWindowCommon(
|
||||
}
|
||||
|
||||
if(!dxw.IsFullScreen()){ // v2.1.63: needed for "Monster Truck Madness"
|
||||
wndh= (*pCreateWindowExA)(dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight,
|
||||
hWndParent, hMenu, hInstance, lpParam);
|
||||
if(WideChar)
|
||||
wndh= (*pCreateWindowExW)(dwExStyle, (LPCWSTR)lpClassName, (LPCWSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
else
|
||||
wndh= (*pCreateWindowExA)(dwExStyle, (LPCSTR)lpClassName, (LPCSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
OutTraceD("%s: windowed mode ret=%x\n", ApiName, wndh);
|
||||
return wndh;
|
||||
}
|
||||
@ -1102,8 +1107,10 @@ static HWND WINAPI extCreateWindowCommon(
|
||||
OutTraceB("%s: fixed pos=(%d,%d) size=(%d,%d) Style=%x(%s) ExStyle=%x(%s)\n",
|
||||
ApiName, x, y, nWidth, nHeight, dwStyle, ExplainStyle(dwStyle), dwExStyle, ExplainExStyle(dwExStyle));
|
||||
|
||||
wndh= (*pCreateWindowExA)(dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight,
|
||||
hWndParent, hMenu, hInstance, lpParam);
|
||||
if(WideChar)
|
||||
wndh= (*pCreateWindowExW)(dwExStyle, (LPCWSTR)lpClassName, (LPCWSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
else
|
||||
wndh= (*pCreateWindowExA)(dwExStyle, (LPCSTR)lpClassName, (LPCSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
if (wndh==(HWND)NULL){
|
||||
OutTraceE("%s: ERROR err=%d Style=%x(%s) ExStyle=%x\n",
|
||||
ApiName, GetLastError(), dwStyle, ExplainStyle(dwStyle), dwExStyle);
|
||||
@ -1163,17 +1170,12 @@ HWND WINAPI extCreateWindowExW(
|
||||
HINSTANCE hInstance,
|
||||
LPVOID lpParam)
|
||||
{
|
||||
char sClassName[256+1];
|
||||
char sWindowName[256+1];
|
||||
wcstombs_s(NULL, sClassName, lpClassName, 80);
|
||||
wcstombs_s(NULL, sWindowName, lpWindowName, 80);
|
||||
|
||||
OutTraceD("CreateWindowExW: class=\"%ls\" wname=\"%ls\" pos=(%d,%d) size=(%d,%d) Style=%x(%s) ExStyle=%x(%s)\n",
|
||||
lpClassName, lpWindowName, x, y, nWidth, nHeight,
|
||||
dwStyle, ExplainStyle(dwStyle), dwExStyle, ExplainExStyle(dwExStyle));
|
||||
if(IsDebug) OutTrace("CreateWindowExW: DEBUG screen=(%d,%d)\n", dxw.GetScreenWidth(), dxw.GetScreenHeight());
|
||||
|
||||
return extCreateWindowCommon("CreateWindowExW", dwExStyle, sClassName, sWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
return extCreateWindowCommon("CreateWindowExW", TRUE, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
}
|
||||
|
||||
// GHO: pro Diablo
|
||||
@ -1196,7 +1198,7 @@ HWND WINAPI extCreateWindowExA(
|
||||
dwStyle, ExplainStyle(dwStyle), dwExStyle, ExplainExStyle(dwExStyle));
|
||||
if(IsDebug) OutTrace("CreateWindowExA: DEBUG screen=(%d,%d)\n", dxw.GetScreenWidth(), dxw.GetScreenHeight());
|
||||
|
||||
return extCreateWindowCommon("CreateWindowExA", dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
return extCreateWindowCommon("CreateWindowExA", false, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
}
|
||||
|
||||
LRESULT WINAPI extCallWindowProc(WNDPROC lpPrevWndFunc, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||
@ -1427,8 +1429,39 @@ HDC WINAPI extGDIGetDC(HWND hwnd)
|
||||
|
||||
HDC WINAPI extGDIGetDCEx(HWND hwnd, HRGN hrgnClip, DWORD flags)
|
||||
{
|
||||
MessageBox(0, "GetDCEx", "to fix", MB_OK | MB_ICONEXCLAMATION);
|
||||
return (HDC)NULL;
|
||||
// used by Star Wars Shadow of the Empire
|
||||
HDC ret;
|
||||
HWND lochwnd;
|
||||
|
||||
OutTraceD("GDI.GetDCEx: hwnd=%x hrgnClip=%x flags=%x(%s)\n", hwnd, hrgnClip, flags, ExplainGetDCExFlags(flags));
|
||||
lochwnd=hwnd;
|
||||
if (dxw.IsRealDesktop(hwnd)) {
|
||||
OutTraceD("GDI.GetDCEx: desktop remapping hwnd=%x->%x\n", hwnd, dxw.GethWnd());
|
||||
lochwnd=dxw.GethWnd();
|
||||
}
|
||||
|
||||
if(dxw.dwFlags3 & EMULATEDC)
|
||||
ret=dxw.AcquireEmulatedDC(lochwnd);
|
||||
else
|
||||
ret=(*pGDIGetDC)(lochwnd);
|
||||
|
||||
if(ret){
|
||||
OutTraceD("GDI.GetDCEx: hwnd=%x ret=%x\n", lochwnd, ret);
|
||||
}
|
||||
else{
|
||||
int err;
|
||||
err=GetLastError();
|
||||
OutTraceE("GDI.GetDCEx ERROR: hwnd=%x err=%d at %d\n", lochwnd, err, __LINE__);
|
||||
if((err==ERROR_INVALID_WINDOW_HANDLE) && (lochwnd!=hwnd)){
|
||||
ret=(*pGDIGetDCEx)(hwnd, hrgnClip, flags);
|
||||
if(ret)
|
||||
OutTraceD("GDI.GetDCEx: hwnd=%x ret=%x\n", hwnd, ret);
|
||||
else
|
||||
OutTraceE("GDI.GetDCEx ERROR: hwnd=%x err=%d at %d\n", hwnd, GetLastError(), __LINE__);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
HDC WINAPI extGDIGetWindowDC(HWND hwnd)
|
||||
@ -1598,14 +1631,14 @@ BOOL WINAPI extMoveWindow(HWND hwnd, int X, int Y, int nWidth, int nHeight, BOOL
|
||||
if(dxw.IsDesktop(hwnd)){
|
||||
// v2.1.93: happens in "Emergency Fighters for Life" ...
|
||||
// what is the meaning of this? is it related to video stretching?
|
||||
OutTraceD("MoveWindow: prevent moving desktop win\n");
|
||||
return TRUE;
|
||||
}
|
||||
OutTraceD("MoveWindow: prevent moving desktop win\n");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if((hwnd==dxw.GethWnd()) || (hwnd==dxw.hParentWnd)){
|
||||
OutTraceD("MoveWindow: prevent moving main win\n");
|
||||
return TRUE;
|
||||
}
|
||||
OutTraceD("MoveWindow: prevent moving main win\n");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (dxw.IsFullScreen()){
|
||||
POINT upleft={0,0};
|
||||
|
@ -6,6 +6,9 @@
|
||||
|
||||
#include "MMSystem.h"
|
||||
|
||||
#undef OutTraceD
|
||||
#define OutTraceD OutTrace
|
||||
|
||||
static HookEntry_Type Hooks[]={
|
||||
{"mciSendCommandA", NULL, (FARPROC *)&pmciSendCommand, (FARPROC)extmciSendCommand},
|
||||
{0, NULL, 0, 0} // terminator
|
||||
@ -13,6 +16,8 @@ static HookEntry_Type Hooks[]={
|
||||
|
||||
static HookEntry_Type TimeHooks[]={
|
||||
{"timeGetTime", NULL, (FARPROC *)&ptimeGetTime, (FARPROC)exttimeGetTime},
|
||||
{"timeKillEvent", NULL, (FARPROC *)&ptimeKillEvent, (FARPROC)exttimeKillEvent},
|
||||
{"timeSetEvent", NULL, (FARPROC *)&ptimeSetEvent, (FARPROC)exttimeSetEvent},
|
||||
{0, NULL, 0, 0} // terminator
|
||||
};
|
||||
|
||||
@ -41,6 +46,25 @@ DWORD WINAPI exttimeGetTime(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
MMRESULT WINAPI exttimeSetEvent(UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD_PTR dwUser, UINT fuEvent)
|
||||
{
|
||||
MMRESULT res;
|
||||
uDelay = uDelay * 8;
|
||||
OutTraceD("timeSetEvent: Delay=%d Resolution=%d Event=%x\n", uDelay, uResolution, fuEvent);
|
||||
res=(*ptimeSetEvent)(uDelay, uResolution, lpTimeProc, dwUser, fuEvent);
|
||||
OutTraceD("timeSetEvent: ret=%x\n", res);
|
||||
return res;
|
||||
}
|
||||
|
||||
MMRESULT WINAPI exttimeKillEvent(UINT uTimerID)
|
||||
{
|
||||
MMRESULT res;
|
||||
OutTraceD("timeKillEvent: TimerID=%x\n", uTimerID);
|
||||
res=(*ptimeKillEvent)(uTimerID);
|
||||
OutTraceD("timeKillEvent: ret=%x\n", res);
|
||||
return res;
|
||||
}
|
||||
|
||||
/* MCI_DGV_PUT_FRAME
|
||||
|
||||
The rectangle defined for MCI_DGV_RECT applies to the frame rectangle.
|
||||
|
24
exports/007 NightFire.dxw
Normal file
24
exports/007 NightFire.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=007 NightFire
|
||||
path0=D:\Games\007_NightFire\Bond.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134234146
|
||||
flagg0=134217728
|
||||
flagh0=65556
|
||||
flagi0=0
|
||||
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
|
24
exports/101 The Airborne Invasion of Normandy.dxw
Normal file
24
exports/101 The Airborne Invasion of Normandy.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=101 The Airborne Invasion of Normandy
|
||||
path0=D:\Games\101air\101.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134234146
|
||||
flagg0=134217728
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=192
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Age of Empires III.dxw
Normal file
24
exports/Age of Empires III.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Age of Empires III
|
||||
path0=D:\Games\Age of Empires III\age3.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=-394125278
|
||||
flagg0=134217728
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=3
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Akuma Demon Spawn - Lamentation Sword.dxw
Normal file
24
exports/Akuma Demon Spawn - Lamentation Sword.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Akuma Demon Spawn - Lamentation Sword
|
||||
path0=D:\Games\Akuma Demon Spawn - Lamentation Sword (1999)\Akuma\Akuma.EXE
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134234146
|
||||
flagg0=134217728
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=64
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Ancient Evil demo.dxw
Normal file
24
exports/Ancient Evil demo.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Ancient Evil demo
|
||||
path0=D:\Games\AECSC\aecsc-demo.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=150994976
|
||||
flagg0=1207959552
|
||||
flagh0=25165844
|
||||
flagi0=0
|
||||
tflag0=259
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Army Men RTS.dxw
Normal file
24
exports/Army Men RTS.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Army Men RTS
|
||||
path0=D:\Games\Army Men RTS\amrts.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=671088676
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
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
|
24
exports/Attack of the Saucerman.dxw
Normal file
24
exports/Attack of the Saucerman.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Attack of the Saucerman
|
||||
path0=D:\Games\Attack of the Saucerman\attack of the saucerman.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217730
|
||||
flagg0=134217728
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=192
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Beyond Divinity.dxw
Normal file
24
exports/Beyond Divinity.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Beyond Divinity
|
||||
path0=D:\Games\Beyond Divinity\Div.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134234144
|
||||
flagg0=134217728
|
||||
flagh0=61
|
||||
flagi0=0
|
||||
tflag0=3
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Daikatana.dxw
Normal file
24
exports/Daikatana.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Daikatana
|
||||
path0=D:\Games\Daikatana\daikatana.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=12
|
||||
coord0=0
|
||||
flag0=269492738
|
||||
flagg0=537002497
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=2
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Devastation.dxw
Normal file
24
exports/Devastation.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Devastation
|
||||
path0=D:\Games\Devastation\System\Devastation.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=1207959552
|
||||
flagh0=16
|
||||
flagi0=0
|
||||
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
|
24
exports/Diablo.dxw
Normal file
24
exports/Diablo.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Diablo
|
||||
path0=D:\Games\Diablo\Diablo.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=1
|
||||
coord0=0
|
||||
flag0=138428450
|
||||
flagg0=1108344848
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=0
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=640
|
||||
sizy0=480
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Doom Shareware for Windows 95.dxw
Normal file
24
exports/Doom Shareware for Windows 95.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Doom Shareware for Windows 95
|
||||
path0=D:\Games\Doom Shareware for Windows 95\Doom95.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=134217728
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
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
|
24
exports/Dungeon Keeper II.dxw
Normal file
24
exports/Dungeon Keeper II.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Dungeon Keeper II
|
||||
path0=D:\Games\Dungeon Keeper 2\DKII.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=16418
|
||||
flagg0=574619648
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=263
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=150
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Dungeon Lords MMXII.dxw
Normal file
24
exports/Dungeon Lords MMXII.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Dungeon Lords MMXII
|
||||
path0=D:\Games\Dungeon Lords MMXII\dlords2012.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=2
|
||||
flag0=-2013265886
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
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
|
24
exports/GTA 3.dxw
Normal file
24
exports/GTA 3.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=GTA 3
|
||||
path0=D:\Games\GTA3\gta3.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134234150
|
||||
flagg0=1207975952
|
||||
flagh0=176
|
||||
flagi0=0
|
||||
tflag0=2
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
BIN
exports/Grand Prix Legends.dxw
Normal file
BIN
exports/Grand Prix Legends.dxw
Normal file
Binary file not shown.
24
exports/Grand Prix World.dxw
Normal file
24
exports/Grand Prix World.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Grand Prix World
|
||||
path0=D:\Games\Grand Prix World\gpwxp2.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134283428
|
||||
flagg0=134217728
|
||||
flagh0=29
|
||||
flagi0=0
|
||||
tflag0=3
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Hamsterball.dxw
Normal file
24
exports/Hamsterball.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Hamsterball
|
||||
path0=D:\Games\Hamsterball\Hamsterball.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=8
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=323
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Heroes of Might and Magic IV.dxw
Normal file
24
exports/Heroes of Might and Magic IV.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Heroes of Might and Magic IV
|
||||
path0=D:\Games\Heroes of Might and Magic IV\heroes4i.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134283298
|
||||
flagg0=1211121728
|
||||
flagh0=65556
|
||||
flagi0=0
|
||||
tflag0=3
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Homeworld 2.dxw
Normal file
24
exports/Homeworld 2.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Homeworld 2
|
||||
path0=D:\Games\Homeworld2\Bin\Release\Homeworld2.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=671088642
|
||||
flagg0=134217728
|
||||
flagh0=477
|
||||
flagi0=0
|
||||
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
|
24
exports/JetMoto.dxw
Normal file
24
exports/JetMoto.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=JetMoto
|
||||
path0=D:\Games\Jet_Moto\JETMOTO.EXE
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=671088674
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=64
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Kiss Psycho Circus.dxw
Normal file
24
exports/Kiss Psycho Circus.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Kiss Psycho Circus
|
||||
path0=D:\Games\Kiss\client.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217760
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
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
|
24
exports/L'Elefante a Strisce.dxw
Normal file
24
exports/L'Elefante a Strisce.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=L'Elefante a Strisce
|
||||
path0=D:\Games\L'Elefante a Strisce\Pilots1I.EXE
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=134217728
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=64
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Land of the Dead.dxw
Normal file
24
exports/Land of the Dead.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Land of the Dead
|
||||
path0=D:\Games\Land of the Dead\System\LOTD.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217766
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=64
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Last Bronx.dxw
Normal file
24
exports/Last Bronx.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Last Bronx
|
||||
path0=D:\Games\Last_Bronx\LB.EXE
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
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
|
24
exports/Mageslayer.dxw
Normal file
24
exports/Mageslayer.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Mageslayer
|
||||
path0=D:\Games\MAGE\MAGESLAY.EXE
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134234146
|
||||
flagg0=134217760
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=64
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Magic & Mayhem.dxw
Normal file
24
exports/Magic & Mayhem.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Magic & Mayhem
|
||||
path0=D:\Games\Magic_&_Mayhem\Chaos.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=138428450
|
||||
flagg0=1275068416
|
||||
flagh0=8388628
|
||||
flagi0=0
|
||||
tflag0=259
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Mirror's Edge.dxw
Normal file
24
exports/Mirror's Edge.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Mirror's Edge
|
||||
path0=D:\Games\Mirror's Edge\Binaries\MirrorsEdge.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=-2013265882
|
||||
flagg0=1207959552
|
||||
flagh0=2097172
|
||||
flagi0=0
|
||||
tflag0=15
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=6
|
24
exports/Praetorians.dxw
Normal file
24
exports/Praetorians.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Praetorians
|
||||
path0=D:\Games\Praetorians\Praetorians.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217760
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=259
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Premier Manager 98.dxw
Normal file
24
exports/Premier Manager 98.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Premier Manager 98
|
||||
path0=D:\Games\Premier Manager 98\MANAGER.EXE
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=671088674
|
||||
flagg0=1207959552
|
||||
flagh0=16
|
||||
flagi0=0
|
||||
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
|
24
exports/Primitive Wars.dxw
Normal file
24
exports/Primitive Wars.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Primitive Wars
|
||||
path0=D:\Games\Primitive Wars\Pw.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=402653218
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=64
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Railroad Tycoon II.dxw
Normal file
24
exports/Railroad Tycoon II.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Railroad Tycoon II
|
||||
path0=D:\Games\Railroad.Tycoon.II\RT2.EXE
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=2082
|
||||
flagg0=143654912
|
||||
flagh0=16
|
||||
flagi0=0
|
||||
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
|
24
exports/Rayman 2 Demo.dxw
Normal file
24
exports/Rayman 2 Demo.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Rayman2Demo.exe
|
||||
path0=D:\Games\Rayman2Demo\Rayman2Demo.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=1
|
||||
coord0=0
|
||||
flag0=939524129
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=323
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Space Rangers.dxw
Normal file
24
exports/Space Rangers.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Space Rangers
|
||||
path0=D:\Games\Space Rangers\Rangers.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=1
|
||||
coord0=0
|
||||
flag0=134234146
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
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
|
24
exports/Star Wars Shadow of the Empire (DEMO).dxw
Normal file
24
exports/Star Wars Shadow of the Empire (DEMO).dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Star Wars Shadow of the Empire (DEMO)
|
||||
path0=D:\Games\shadowsdemo\shadows.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=1208483844
|
||||
flagh0=25165844
|
||||
flagi0=0
|
||||
tflag0=275
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Star Wars Shadow of the Empire.dxw
Normal file
24
exports/Star Wars Shadow of the Empire.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Star Wars Shadow of the Empire
|
||||
path0=D:\Games\Star Wars Shadow of the Empire\game\SDATA\SHADOWS.EXE
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=1476919296
|
||||
flagh0=25166364
|
||||
flagi0=0
|
||||
tflag0=274
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/StarCraft.dxw
Normal file
24
exports/StarCraft.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=StarCraft
|
||||
path0=D:\Games\Starcraft\StarCraft.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=136314880
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=64
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Talis Gear.dxw
Normal file
24
exports/Talis Gear.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Talis Gear
|
||||
path0=D:\Games\TailsGear078\DT_MAIN.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217760
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
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
|
24
exports/Theseus.dxw
Normal file
24
exports/Theseus.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Theseus
|
||||
path0=D:\Games\theseus\Theseus.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=8
|
||||
coord0=0
|
||||
flag0=134217730
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
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
|
24
exports/Total Annihilation Kingdoms.dxw
Normal file
24
exports/Total Annihilation Kingdoms.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Total Annihilation Kingdoms
|
||||
path0=D:\Games\Total Annihilation Kingdoms\Kingdoms.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134234146
|
||||
flagg0=1073741840
|
||||
flagh0=16
|
||||
flagi0=0
|
||||
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
|
24
exports/Vangers.dxw
Normal file
24
exports/Vangers.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Vangers
|
||||
path0=D:\Games\Vangers\road.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=402653219
|
||||
flagg0=671088640
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
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
|
24
exports/Wargames.dxw
Normal file
24
exports/Wargames.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Wargames (demo)
|
||||
path0=D:\Games\Wargames\wargames.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=268435618
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=0
|
||||
tflag0=3
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/Warlords 3.dxw
Normal file
24
exports/Warlords 3.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=Warlords 3
|
||||
path0=D:\Games\WARLORDS3\Darklord.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=-2147483102
|
||||
flagg0=269484064
|
||||
flagh0=532
|
||||
flagi0=0
|
||||
tflag0=0
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=0
|
||||
sizy0=0
|
||||
maxfps0=0
|
||||
initts0=0
|
24
exports/deadrising2otr1.dxw
Normal file
24
exports/deadrising2otr1.dxw
Normal file
@ -0,0 +1,24 @@
|
||||
[target]
|
||||
title0=deadrising2otr.exe
|
||||
path0=C:\Program Files (x86)\Capcom\Dead Rising 2 Off The Record\deadrising2otr.exe
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=0
|
||||
flagg0=134217728
|
||||
flagh0=16
|
||||
flagi0=0
|
||||
tflag0=3
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,10 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
|
||||
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
</assembly>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
||||
Manifest resource last updated at 9:28:09,93 on 12/10/2013
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user