LLE APU and GPU switches added
This commit is contained in:
parent
e47315662a
commit
ad04ffbfe4
|
@ -39,8 +39,16 @@
|
|||
|
||||
extern "C" const char *szHLELastCompileTime = __TIMESTAMP__;
|
||||
|
||||
// Uncomment this line for experimental DSOUND LLE
|
||||
// #define DSOUND_LLE
|
||||
const char *Lib_D3D8 = "D3D8";
|
||||
const char *Lib_D3D8LTCG = "D3D8LTCG";
|
||||
const char *Lib_D3DX8 = "D3DX8";
|
||||
const char *Lib_DSOUND = "DSOUND";
|
||||
const char *Lib_XACTENG = "XACTENG";
|
||||
const char *Lib_XAPILIB = "XAPILIB";
|
||||
const char *Lib_XGRAPHC = "XGRAPHC";
|
||||
const char *Lib_XNETS = "XNETS";
|
||||
const char *Lib_XONLINE = "XONLINE"; // TODO : Typo for XONLINES?
|
||||
const char *Lib_XONLINES = "XONLINES";
|
||||
|
||||
#include "Emu.h"
|
||||
#include "EmuXTL.h"
|
||||
|
@ -95,261 +103,259 @@ HLEData HLEDataBase[] =
|
|||
{
|
||||
// Xapilib Version 1.0.3911
|
||||
{
|
||||
"XAPILIB",
|
||||
Lib_XAPILIB,
|
||||
1, 0, 3911,
|
||||
XAPI_1_0_3911,
|
||||
XAPI_1_0_3911_SIZE
|
||||
},
|
||||
// Xapilib Version 1.0.4034
|
||||
{
|
||||
"XAPILIB",
|
||||
Lib_XAPILIB,
|
||||
1, 0, 4034,
|
||||
XAPI_1_0_4034,
|
||||
XAPI_1_0_4034_SIZE
|
||||
},
|
||||
// Xapilib Version 1.0.4134
|
||||
{
|
||||
"XAPILIB",
|
||||
Lib_XAPILIB,
|
||||
1, 0, 4134,
|
||||
XAPI_1_0_4134,
|
||||
XAPI_1_0_4134_SIZE
|
||||
},
|
||||
// Xapilib Version 1.0.4361
|
||||
{
|
||||
"XAPILIB",
|
||||
Lib_XAPILIB,
|
||||
1, 0, 4361,
|
||||
XAPI_1_0_4361,
|
||||
XAPI_1_0_4361_SIZE
|
||||
},
|
||||
// Xapilib Version 1.0.4432
|
||||
{
|
||||
"XAPILIB",
|
||||
Lib_XAPILIB,
|
||||
1, 0, 4432,
|
||||
XAPI_1_0_4432,
|
||||
XAPI_1_0_4432_SIZE
|
||||
},
|
||||
// Xapilib Version 1.0.4627
|
||||
{
|
||||
"XAPILIB",
|
||||
Lib_XAPILIB,
|
||||
1, 0, 4627,
|
||||
XAPI_1_0_4627,
|
||||
XAPI_1_0_4627_SIZE
|
||||
},
|
||||
// Xapilib Version 1.0.5233
|
||||
{
|
||||
"XAPILIB",
|
||||
Lib_XAPILIB,
|
||||
1, 0, 5233,
|
||||
XAPI_1_0_5233,
|
||||
XAPI_1_0_5233_SIZE
|
||||
},
|
||||
// Xapilib Version 1.0.5558
|
||||
{
|
||||
"XAPILIB",
|
||||
Lib_XAPILIB,
|
||||
1, 0, 5558,
|
||||
XAPI_1_0_5558,
|
||||
XAPI_1_0_5558_SIZE
|
||||
},
|
||||
// Xapilib Version 1.0.5849
|
||||
{
|
||||
"XAPILIB",
|
||||
Lib_XAPILIB,
|
||||
1, 0, 5849,
|
||||
XAPI_1_0_5849,
|
||||
XAPI_1_0_5849_SIZE
|
||||
},
|
||||
// D3D8 Version 1.0.3925
|
||||
{
|
||||
"D3D8",
|
||||
Lib_D3D8,
|
||||
1, 0, 3925,
|
||||
D3D8_1_0_3925,
|
||||
D3D8_1_0_3925_SIZE
|
||||
},
|
||||
// D3D8 Version 1.0.4034
|
||||
{
|
||||
"D3D8",
|
||||
Lib_D3D8,
|
||||
1, 0, 4034,
|
||||
D3D8_1_0_4034,
|
||||
D3D8_1_0_4034_SIZE
|
||||
},
|
||||
// D3D8 Version 1.0.4134
|
||||
{
|
||||
"D3D8",
|
||||
Lib_D3D8,
|
||||
1, 0, 4134,
|
||||
D3D8_1_0_4134,
|
||||
D3D8_1_0_4134_SIZE
|
||||
},
|
||||
// D3D8 Version 1.0.4361
|
||||
{
|
||||
"D3D8",
|
||||
Lib_D3D8,
|
||||
1, 0, 4361,
|
||||
D3D8_1_0_4361,
|
||||
D3D8_1_0_4361_SIZE
|
||||
},
|
||||
// D3D8 Version 1.0.4432
|
||||
{
|
||||
"D3D8",
|
||||
Lib_D3D8,
|
||||
1, 0, 4432,
|
||||
D3D8_1_0_4432,
|
||||
D3D8_1_0_4432_SIZE
|
||||
},
|
||||
// D3D8 Version 1.0.4627
|
||||
{
|
||||
"D3D8",
|
||||
Lib_D3D8,
|
||||
1, 0, 4627,
|
||||
D3D8_1_0_4627,
|
||||
D3D8_1_0_4627_SIZE
|
||||
},
|
||||
// D3D8 Version 1.0.5233
|
||||
{
|
||||
"D3D8",
|
||||
Lib_D3D8,
|
||||
1, 0, 5233,
|
||||
D3D8_1_0_5233,
|
||||
D3D8_1_0_5233_SIZE
|
||||
},
|
||||
// D3D8 Version 1.0.5558
|
||||
{
|
||||
"D3D8",
|
||||
Lib_D3D8,
|
||||
1, 0, 5558,
|
||||
D3D8_1_0_5558,
|
||||
D3D8_1_0_5558_SIZE
|
||||
},
|
||||
// D3D8 Version 1.0.5849
|
||||
{
|
||||
"D3D8",
|
||||
Lib_D3D8,
|
||||
1, 0, 5849,
|
||||
D3D8_1_0_5849,
|
||||
D3D8_1_0_5849_SIZE
|
||||
},
|
||||
// D3D8LTCG Version 1.0.5849
|
||||
{
|
||||
"D3D8LTCG",
|
||||
Lib_D3D8LTCG,
|
||||
1, 0, 5849,
|
||||
D3D8LTCG_1_0_5849,
|
||||
D3D8LTCG_1_0_5849_SIZE
|
||||
},
|
||||
#ifndef DSOUND_LLE
|
||||
// DSound Version 1.0.3936
|
||||
{
|
||||
"DSOUND",
|
||||
Lib_DSOUND,
|
||||
1, 0, 3936,
|
||||
DSound_1_0_3936,
|
||||
DSound_1_0_3936_SIZE
|
||||
},
|
||||
// DSound Version 1.0.4134
|
||||
{
|
||||
"DSOUND",
|
||||
Lib_DSOUND,
|
||||
1, 0, 4134,
|
||||
DSound_1_0_4134,
|
||||
DSound_1_0_4134_SIZE
|
||||
},
|
||||
// DSound Version 1.0.4361
|
||||
{
|
||||
"DSOUND",
|
||||
Lib_DSOUND,
|
||||
1, 0, 4361,
|
||||
DSound_1_0_4361,
|
||||
DSound_1_0_4361_SIZE
|
||||
},
|
||||
// DSound Version 1.0.4432
|
||||
{
|
||||
"DSOUND",
|
||||
Lib_DSOUND,
|
||||
1, 0, 4432,
|
||||
DSound_1_0_4432,
|
||||
DSound_1_0_4432_SIZE
|
||||
},
|
||||
// DSound Version 1.0.4627
|
||||
{
|
||||
"DSOUND",
|
||||
Lib_DSOUND,
|
||||
1, 0, 4627,
|
||||
DSound_1_0_4627,
|
||||
DSound_1_0_4627_SIZE
|
||||
},
|
||||
// DSound Version 1.0.5233
|
||||
{
|
||||
"DSOUND",
|
||||
Lib_DSOUND,
|
||||
1, 0, 5233,
|
||||
DSound_1_0_5233,
|
||||
DSound_1_0_5233_SIZE
|
||||
},
|
||||
// DSound Version 1.0.5558
|
||||
{
|
||||
"DSOUND",
|
||||
Lib_DSOUND,
|
||||
1, 0, 5558,
|
||||
DSound_1_0_5558,
|
||||
DSound_1_0_5558_SIZE
|
||||
},
|
||||
// DSound Version 1.0.5849
|
||||
{
|
||||
"DSOUND",
|
||||
Lib_DSOUND,
|
||||
1, 0, 5849,
|
||||
DSound_1_0_5849,
|
||||
DSound_1_0_5849_SIZE
|
||||
},
|
||||
#endif
|
||||
// XG Version 1.0.3911
|
||||
{
|
||||
"XGRAPHC",
|
||||
Lib_XGRAPHC,
|
||||
1, 0, 3911,
|
||||
XG_1_0_3911,
|
||||
XG_1_0_3911_SIZE
|
||||
},
|
||||
// XG Version 1.0.4034
|
||||
{
|
||||
"XGRAPHC",
|
||||
Lib_XGRAPHC,
|
||||
1, 0, 4034,
|
||||
XG_1_0_4034,
|
||||
XG_1_0_4034_SIZE
|
||||
},
|
||||
// XG Version 1.0.4361
|
||||
{
|
||||
"XGRAPHC",
|
||||
Lib_XGRAPHC,
|
||||
1, 0, 4361,
|
||||
XG_1_0_4361,
|
||||
XG_1_0_4361_SIZE
|
||||
},
|
||||
// XG Version 1.0.4432
|
||||
{
|
||||
"XGRAPHC",
|
||||
Lib_XGRAPHC,
|
||||
1, 0, 4432,
|
||||
XG_1_0_4432,
|
||||
XG_1_0_4432_SIZE
|
||||
},
|
||||
// XG Version 1.0.4627
|
||||
{
|
||||
"XGRAPHC",
|
||||
Lib_XGRAPHC,
|
||||
1, 0, 4627,
|
||||
XG_1_0_4627,
|
||||
XG_1_0_4627_SIZE
|
||||
},
|
||||
// XG Version 1.0.5233
|
||||
{
|
||||
"XGRAPHC",
|
||||
Lib_XGRAPHC,
|
||||
1, 0, 5233,
|
||||
XG_1_0_5233,
|
||||
XG_1_0_5233_SIZE
|
||||
},
|
||||
// XG Version 1.0.5558
|
||||
{
|
||||
"XGRAPHC",
|
||||
Lib_XGRAPHC,
|
||||
1, 0, 5558,
|
||||
XG_1_0_5558,
|
||||
XG_1_0_5558_SIZE
|
||||
},
|
||||
// XG Version 1.0.5849
|
||||
{
|
||||
"XGRAPHC",
|
||||
Lib_XGRAPHC,
|
||||
1, 0, 5849,
|
||||
XG_1_0_5849,
|
||||
XG_1_0_5849_SIZE
|
||||
},
|
||||
// XNet Version 1.0.3911
|
||||
{
|
||||
"XNETS",
|
||||
Lib_XNETS,
|
||||
1, 0, 3911,
|
||||
XNet_1_0_3911,
|
||||
XNet_1_0_3911_SIZE
|
||||
},
|
||||
// XOnline Version 1.0.4361
|
||||
{
|
||||
"XONLINE",
|
||||
Lib_XONLINE, // TODO : Typo for XONLINES?
|
||||
1, 0, 4361,
|
||||
XOnline_1_0_4361,
|
||||
XOnline_1_0_4361_SIZE
|
||||
|
@ -357,35 +363,35 @@ HLEData HLEDataBase[] =
|
|||
// XOnline(s) Version 1.0.4627
|
||||
// TODO: Verify differences between XONLINE and XONLINES (if any)
|
||||
{
|
||||
"XONLINES",
|
||||
Lib_XONLINES,
|
||||
1, 0, 4627,
|
||||
XOnline_1_0_4627,
|
||||
XOnline_1_0_4627_SIZE
|
||||
},
|
||||
// XOnline(s) Version 1.0.5233
|
||||
{
|
||||
"XONLINES",
|
||||
Lib_XONLINES,
|
||||
1, 0, 5233,
|
||||
XOnline_1_0_5233,
|
||||
XOnline_1_0_5233_SIZE
|
||||
},
|
||||
// XOnline(s) Version 1.0.5558
|
||||
{
|
||||
"XONLINES",
|
||||
Lib_XONLINES,
|
||||
1, 0, 5558,
|
||||
XOnline_1_0_5558,
|
||||
XOnline_1_0_5558_SIZE
|
||||
},
|
||||
// XOnline(s) Version 1.0.5849
|
||||
{
|
||||
"XONLINES",
|
||||
Lib_XONLINES,
|
||||
1, 0, 5849,
|
||||
XOnline_1_0_5849,
|
||||
XOnline_1_0_5849_SIZE
|
||||
},
|
||||
// XactEng Version 1.0.4627
|
||||
{
|
||||
"XACTENG",
|
||||
Lib_XACTENG,
|
||||
1, 0, 4627,
|
||||
XactEng_1_0_4627,
|
||||
XactEng_1_0_4627_SIZE
|
||||
|
|
|
@ -82,12 +82,23 @@
|
|||
// ******************************************************************
|
||||
extern "C" const char *szHLELastCompileTime;
|
||||
|
||||
extern const char *Lib_D3D8;
|
||||
extern const char *Lib_D3D8LTCG;
|
||||
extern const char *Lib_D3DX8;
|
||||
extern const char *Lib_DSOUND;
|
||||
extern const char *Lib_XACTENG;
|
||||
extern const char *Lib_XAPILIB;
|
||||
extern const char *Lib_XGRAPHC;
|
||||
extern const char *Lib_XNETS;
|
||||
extern const char *Lib_XONLINE; // TODO : Typo for XONLINES?
|
||||
extern const char *Lib_XONLINES;
|
||||
|
||||
// ******************************************************************
|
||||
// * HLEDataBase
|
||||
// ******************************************************************
|
||||
extern struct HLEData
|
||||
{
|
||||
char *Library;
|
||||
const char *Library;
|
||||
|
||||
uint16 MajorVersion;
|
||||
uint16 MinorVersion;
|
||||
|
|
|
@ -162,6 +162,10 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
uint32 LastUnResolvedXRefs = UnResolvedXRefs+1;
|
||||
uint32 OrigUnResolvedXRefs = UnResolvedXRefs;
|
||||
|
||||
// Set these for experimental APU(sound) / GPU (graphics) LLE
|
||||
bool bLLE_APU = false;
|
||||
bool bLLE_GPU = false;
|
||||
|
||||
for(int p=0;UnResolvedXRefs < LastUnResolvedXRefs;p++)
|
||||
{
|
||||
DbgPrintf("HLE: Starting pass #%d...\n", p+1);
|
||||
|
@ -216,9 +220,79 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
szOrigLibraryName[c] = pLibraryVersion[v].szName[c];
|
||||
}
|
||||
|
||||
// Test
|
||||
if(strcmp(szLibraryName, "XGRAPHC") == 0)
|
||||
// TODO: HACK: D3DX8 is packed into D3D8 database
|
||||
if (strcmp(szLibraryName, Lib_D3DX8) == 0)
|
||||
{
|
||||
strcpy(szLibraryName, Lib_D3D8);
|
||||
}
|
||||
|
||||
if(strcmp(szLibraryName, Lib_D3D8LTCG) == 0)
|
||||
{
|
||||
// Skip scanning for D3D8LTCG symbols when LLE GPU is selected
|
||||
if (bLLE_GPU)
|
||||
continue;
|
||||
|
||||
// Test (do not release uncommented!)
|
||||
/*strcpy(szLibraryName, Lib_D3D8);*/
|
||||
}
|
||||
|
||||
if (strcmp(szLibraryName, Lib_D3D8) == 0)
|
||||
{
|
||||
// Skip scanning for D3D8 symbols when LLE GPU is selected
|
||||
if (bLLE_GPU)
|
||||
continue;
|
||||
|
||||
// Prevent scanning D3D8 again (since D3D8X is packed into it above)
|
||||
if (bFoundD3D)
|
||||
{
|
||||
//DbgPrintf("Redundant\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
bFoundD3D = true;
|
||||
|
||||
// Some 3911 titles have different D3D8 builds
|
||||
if (BuildVersion <= 3948)
|
||||
BuildVersion = 3925;
|
||||
|
||||
// Testing... don't release with this code in it!
|
||||
// TODO: 5233 and 5558
|
||||
// if(BuildVersion == 4134)
|
||||
// BuildVersion = 4627;
|
||||
}
|
||||
else if(strcmp(szLibraryName, Lib_DSOUND) == 0)
|
||||
{
|
||||
// Skip scanning for DSOUND symbols when LLE APU is selected
|
||||
if (bLLE_APU)
|
||||
continue;
|
||||
|
||||
// Several 3911 titles has different DSound builds.
|
||||
if(BuildVersion < 4034)
|
||||
{
|
||||
BuildVersion = 3936;
|
||||
}
|
||||
|
||||
// Redirect other highly similar DSOUND library versions
|
||||
if(BuildVersion == 4361 || BuildVersion == 4400 || BuildVersion == 4432 ||
|
||||
BuildVersion == 4531 )
|
||||
BuildVersion = 4627;
|
||||
}
|
||||
else if(strcmp(szLibraryName, Lib_XAPILIB) == 0)
|
||||
{
|
||||
// Change a few XAPILIB versions to similar counterparts
|
||||
if(BuildVersion == 3944)
|
||||
BuildVersion = 3911;
|
||||
if(BuildVersion == 3950)
|
||||
BuildVersion = 3911;
|
||||
if(OrigBuildVersion == 4531)
|
||||
BuildVersion = 4627;
|
||||
}
|
||||
else if (strcmp(szLibraryName, Lib_XGRAPHC) == 0)
|
||||
{
|
||||
// Skip scanning for XGRAPHC (XG) symbols when LLE GPU is selected
|
||||
if (bLLE_GPU)
|
||||
continue;
|
||||
|
||||
// if(BuildVersion == 4432)
|
||||
// BuildVersion = 4361;
|
||||
if (BuildVersion == 3944)
|
||||
|
@ -233,69 +307,9 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
// BuildVersion = 3911;
|
||||
}
|
||||
|
||||
// Several 3911 titles has different DSound builds.
|
||||
if(strcmp(szLibraryName, "DSOUND") == 0)
|
||||
{
|
||||
if(BuildVersion < 4034)
|
||||
{
|
||||
BuildVersion = 3936;
|
||||
}
|
||||
|
||||
// Redirect other highly similar DSOUND library versions
|
||||
if(BuildVersion == 4361 || BuildVersion == 4400 || BuildVersion == 4432 ||
|
||||
BuildVersion == 4531 )
|
||||
BuildVersion = 4627;
|
||||
}
|
||||
|
||||
// Some 3911 titles have different D3D8 builds
|
||||
if(strcmp(szLibraryName, "D3D8") == 0)
|
||||
{
|
||||
if(BuildVersion <= 3948)
|
||||
BuildVersion = 3925;
|
||||
|
||||
// Testing... don't release with this code in it!
|
||||
// TODO: 5233 and 5558
|
||||
// if(BuildVersion == 4134)
|
||||
// BuildVersion = 4627;
|
||||
}
|
||||
|
||||
// Change a few XAPILIB versions to similar counterparts
|
||||
if(strcmp(szLibraryName, "XAPILIB") == 0)
|
||||
{
|
||||
if(BuildVersion == 3944)
|
||||
BuildVersion = 3911;
|
||||
if(BuildVersion == 3950)
|
||||
BuildVersion = 3911;
|
||||
if(OrigBuildVersion == 4531)
|
||||
BuildVersion = 4627;
|
||||
}
|
||||
|
||||
// Test (do not release uncommented!)
|
||||
/*if(strcmp(szLibraryName, "D3D8LTCG") == 0)
|
||||
{
|
||||
strcpy(szLibraryName, "D3D8");
|
||||
}*/
|
||||
|
||||
// TODO: HACK: These libraries are packed into one database
|
||||
if(strcmp(szLibraryName, "D3DX8") == 0)
|
||||
{
|
||||
strcpy(szLibraryName, "D3D8");
|
||||
}
|
||||
|
||||
if(strcmp(szLibraryName, "D3D8") == 0)
|
||||
{
|
||||
if(bFoundD3D)
|
||||
{
|
||||
//DbgPrintf("Redundant\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
bFoundD3D = true;
|
||||
}
|
||||
|
||||
if(bXRefFirstPass)
|
||||
{
|
||||
if(strcmp("XAPILIB", szLibraryName) == 0 && MajorVersion == 1 && MinorVersion == 0 &&
|
||||
if(strcmp(Lib_XAPILIB, szLibraryName) == 0 && MajorVersion == 1 && MinorVersion == 0 &&
|
||||
(BuildVersion == 3911 || BuildVersion == 4034 || BuildVersion == 4134 || BuildVersion == 4361
|
||||
|| BuildVersion == 4432 || BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5558
|
||||
|| BuildVersion == 5849))
|
||||
|
@ -303,7 +317,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
uint32 lower = pXbeHeader->dwBaseAddr;
|
||||
uint32 upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
|
||||
}
|
||||
else if(strcmp("D3D8", szLibraryName) == 0 /*&& strcmp("D3D8LTCG", szOrigLibraryName)*/ &&
|
||||
else if(strcmp(Lib_D3D8, szLibraryName) == 0 /*&& strcmp(Lib_D3D8LTCG, szOrigLibraryName)*/ &&
|
||||
MajorVersion == 1 && MinorVersion == 0 &&
|
||||
(BuildVersion == 3925 || BuildVersion == 4134 || BuildVersion == 4361 || BuildVersion == 4432
|
||||
|| BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5558 || BuildVersion == 5849))
|
||||
|
@ -315,7 +329,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
uint32 lower = pXbeHeader->dwBaseAddr;
|
||||
uint32 upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
|
||||
|
||||
void *pFunc = 0;
|
||||
void *pFunc = nullptr;
|
||||
|
||||
if(BuildVersion == 3925)
|
||||
pFunc = EmuLocateFunction((OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_3925, lower, upper);
|
||||
|
@ -325,7 +339,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
pFunc = EmuLocateFunction((OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_5233, lower, upper);
|
||||
|
||||
// locate D3DDeferredRenderState
|
||||
if(pFunc != 0)
|
||||
if(pFunc != nullptr)
|
||||
{
|
||||
// offset for stencil cull enable render state in the deferred render state buffer
|
||||
int patchOffset = 0;
|
||||
|
@ -378,13 +392,13 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
}
|
||||
else
|
||||
{
|
||||
XTL::EmuD3DDeferredRenderState = 0;
|
||||
XTL::EmuD3DDeferredRenderState = nullptr;
|
||||
CxbxKrnlCleanup("EmuD3DDeferredRenderState was not found!");
|
||||
}
|
||||
|
||||
// locate D3DDeferredTextureState
|
||||
{
|
||||
pFunc = 0;
|
||||
pFunc = nullptr;
|
||||
|
||||
if(BuildVersion == 3925)
|
||||
pFunc = EmuLocateFunction((OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_3925, lower, upper);
|
||||
|
@ -395,7 +409,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
else if(BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5558 || BuildVersion == 5849)
|
||||
pFunc = EmuLocateFunction((OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627, lower, upper);
|
||||
|
||||
if(pFunc != 0)
|
||||
if(pFunc != nullptr)
|
||||
{
|
||||
if(BuildVersion == 3925) // 0x18F180
|
||||
XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x11) - 0x70); // TODO: Verify
|
||||
|
@ -414,12 +428,12 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
}
|
||||
else
|
||||
{
|
||||
XTL::EmuD3DDeferredTextureState = 0;
|
||||
XTL::EmuD3DDeferredTextureState = nullptr;
|
||||
CxbxKrnlCleanup("EmuD3DDeferredTextureState was not found!");
|
||||
}
|
||||
}
|
||||
}
|
||||
//else if(strcmp("D3D8LTCG", szLibraryName) == 0 && MajorVersion == 1 && MinorVersion == 0 &&
|
||||
//else if(strcmp(Lib_D3D8LTCG, szLibraryName) == 0 && MajorVersion == 1 && MinorVersion == 0 &&
|
||||
// (BuildVersion == 5849)) // 5849 only so far...
|
||||
// {
|
||||
// // Save D3D8 build version
|
||||
|
@ -429,13 +443,13 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
// uint32 lower = pXbeHeader->dwBaseAddr;
|
||||
// uint32 upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
|
||||
|
||||
// void *pFunc = 0;
|
||||
// void *pFunc = nullptr;
|
||||
|
||||
// if(BuildVersion == 5849)
|
||||
// pFunc = EmuLocateFunction((OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_5849_LTCG, lower, upper);
|
||||
|
||||
// // locate D3DDeferredRenderState
|
||||
// if(pFunc != 0)
|
||||
// if(pFunc != nullptr)
|
||||
// {
|
||||
// // offset for stencil cull enable render state in the deferred render state buffer
|
||||
// int patchOffset = 0;
|
||||
|
@ -464,18 +478,18 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
// }
|
||||
// else
|
||||
// {
|
||||
// XTL::EmuD3DDeferredRenderState = 0;
|
||||
// XTL::EmuD3DDeferredRenderState = nullptr;
|
||||
// CxbxKrnlCleanup("EmuD3DDeferredRenderState was not found!");
|
||||
// }
|
||||
|
||||
// // locate D3DDeferredTextureState
|
||||
// {
|
||||
// pFunc = 0;
|
||||
// pFunc = nullptr;
|
||||
|
||||
// if(BuildVersion == 3925)
|
||||
// pFunc = EmuLocateFunction((OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_5849_LTCG, lower, upper);
|
||||
|
||||
// if(pFunc != 0)
|
||||
// if(pFunc != nullptr)
|
||||
// {
|
||||
// if(BuildVersion == 3925) // 0x18F180
|
||||
// XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x11) - 0x70); // TODO: Verify
|
||||
|
@ -494,7 +508,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|
|||
// }
|
||||
// else
|
||||
// {
|
||||
// XTL::EmuD3DDeferredTextureState = 0;
|
||||
// XTL::EmuD3DDeferredTextureState = nullptr;
|
||||
// CxbxKrnlCleanup("EmuD3DDeferredTextureState was not found!");
|
||||
// }
|
||||
// }
|
||||
|
@ -745,7 +759,7 @@ static void EmuInstallWrappers(OOVPATable *OovpaTable, uint32 OovpaTableSize, Xb
|
|||
{
|
||||
OOVPA *Oovpa = OovpaTable[a].Oovpa;
|
||||
|
||||
void *pFunc = NULL;
|
||||
void *pFunc = nullptr;
|
||||
|
||||
if(bCacheInp && (vCacheInpIter != vCacheInp.end()))
|
||||
{
|
||||
|
@ -759,13 +773,13 @@ static void EmuInstallWrappers(OOVPATable *OovpaTable, uint32 OovpaTableSize, Xb
|
|||
vCacheOut.push_back(pFunc);
|
||||
}
|
||||
|
||||
if(pFunc != 0)
|
||||
if(pFunc != nullptr)
|
||||
{
|
||||
#ifdef _DEBUG_TRACE
|
||||
DbgPrintf("HLE: 0x%.08X -> %s\n", pFunc, OovpaTable[a].szFuncName);
|
||||
#endif
|
||||
|
||||
if(OovpaTable[a].lpRedirect == 0)
|
||||
if(OovpaTable[a].lpRedirect == nullptr)
|
||||
{
|
||||
// Insert breakpoint
|
||||
*(uint8_t*)pFunc = 0xCC;
|
||||
|
|
Loading…
Reference in New Issue