Verified EmuD3DDeferredRenderState and EmuD3DDeferredTextureState
Source: Azurik - Rise of Perathia (3925) Shikigami no Shiro (3948) NightCaster (4039)
This commit is contained in:
parent
c3c007d97f
commit
3e8efec225
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern LOOVPA<1+10> D3DDevice_SetTextureState_TexCoordIndex_4034;
|
||||
extern LOOVPA<2+14> D3DDevice_SetRenderState_CullMode_4034;
|
||||
|
||||
extern OOVPATable D3D8_4034[];
|
||||
|
|
|
@ -978,7 +978,7 @@ OOVPA_XREF(D3DDevice_SetTextureState_TexCoordIndex, 4034, 1+10,
|
|||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY(0x11, XREF_D3DTSS_TEXCOORDINDEX), // Derived - TODO : Verify 0x11 (could be 0x18 or 0x19)
|
||||
XREF_ENTRY(0x18, XREF_D3DTSS_TEXCOORDINDEX), // Derived
|
||||
|
||||
// D3DDevice_SetTextureState_TexCoordIndex+0x13 : shl eax, 0x07
|
||||
{ 0x13, 0xC1 },
|
||||
|
|
|
@ -36,7 +36,9 @@
|
|||
|
||||
#include "OOVPA.h"
|
||||
|
||||
#if 0 // Moved to 4034
|
||||
extern LOOVPA<1+10> D3DDevice_SetTextureState_TexCoordIndex_4134;
|
||||
#endif
|
||||
|
||||
extern OOVPATable D3D8_4134[];
|
||||
extern uint32 D3D8_4134_SIZE;
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
// *
|
||||
// ******************************************************************
|
||||
|
||||
#if 0 // Moved to 403‚S
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetTextureState_TexCoordIndex
|
||||
// ******************************************************************
|
||||
|
@ -60,6 +61,7 @@ OOVPA_XREF(D3DDevice_SetTextureState_TexCoordIndex, 4134, 1+10,
|
|||
{ 0xB5, 0xE2 },
|
||||
{ 0xB6, 0x04 },
|
||||
OOVPA_END;
|
||||
#endif
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetTransform
|
||||
|
@ -2584,7 +2586,7 @@ OOVPATable D3D8_4134[] = {
|
|||
REGISTER_OOVPA(Direct3D_CreateDevice, 3911, PATCH),
|
||||
REGISTER_OOVPA(D3D_CheckDeviceFormat, 4134, DISABLED),
|
||||
REGISTER_OOVPA(MakeRequestedSpace, 4134, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4134, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4034, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetTransform, 4134, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH),
|
||||
|
|
|
@ -411,9 +411,9 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
xbaddr upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
|
||||
}
|
||||
else if (strcmp(LibraryName.c_str(), Lib_D3D8) == 0 &&
|
||||
(BuildVersion == 3925 || BuildVersion == 4134 || BuildVersion == 4361 || BuildVersion == 4432
|
||||
|| BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233 || BuildVersion == 5344
|
||||
|| BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849))
|
||||
(BuildVersion == 3925 || BuildVersion == 4034 || BuildVersion == 4134 || BuildVersion == 4361
|
||||
|| BuildVersion == 4432 || BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233
|
||||
|| BuildVersion == 5344 || BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849))
|
||||
{
|
||||
// Save D3D8 build version
|
||||
g_BuildVersion = BuildVersion;
|
||||
|
@ -446,12 +446,13 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
DerivedAddr_D3DRS_CULLMODE = *(xbaddr*)(pFunc + 0x25);
|
||||
Decrement = 0x1FC; // TODO: Clean up (?)
|
||||
Increment = 82 * 4;
|
||||
patchOffset = 105 * 4; // TODO: Verify
|
||||
patchOffset = 140 * 4; // Verified 3925 and 3948
|
||||
|
||||
//Decrement = 0x19F; // TODO: Clean up (?)
|
||||
//Increment = 72 * 4;
|
||||
//patchOffset = 142*4; // TODO: Verify
|
||||
}
|
||||
#if 0 // Same as 4134
|
||||
else if (BuildVersion == 4034)
|
||||
{
|
||||
DerivedAddr_D3DRS_CULLMODE = *(xbaddr*)(pFunc + 0x2B);
|
||||
|
@ -459,7 +460,8 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
Increment = 82 * 4;
|
||||
patchOffset = 142 * 4;
|
||||
}
|
||||
else if (BuildVersion == 4134 || BuildVersion == 4361)
|
||||
#endif
|
||||
else if (BuildVersion == 4034 || BuildVersion == 4134 || BuildVersion == 4361)
|
||||
{
|
||||
DerivedAddr_D3DRS_CULLMODE = *(xbaddr*)(pFunc + 0x2B);
|
||||
Decrement = 0x200;
|
||||
|
@ -539,8 +541,8 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
if(BuildVersion == 3925)
|
||||
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_3925, lower, upper);
|
||||
// TODO : What about 4034? Use it once it's offset to XREF_D3DTSS_TEXCOORDINDEX is verified
|
||||
else if(BuildVersion == 4134)
|
||||
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4134, lower, upper);
|
||||
else if(BuildVersion == 4034 || BuildVersion == 4134)
|
||||
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4034, lower, upper);
|
||||
else if(BuildVersion == 4361 || BuildVersion == 4432)
|
||||
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4361, lower, upper);
|
||||
else if(BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233 || BuildVersion == 5344
|
||||
|
@ -556,7 +558,7 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
{
|
||||
if (BuildVersion == 3925) // 0x18F180
|
||||
DerivedAddr_D3DTSS_TEXCOORDINDEX = *(xbaddr*)(pFunc + 0x11);
|
||||
else if (BuildVersion == 4134)
|
||||
else if (BuildVersion == 4034 || BuildVersion == 4134)
|
||||
DerivedAddr_D3DTSS_TEXCOORDINDEX = *(xbaddr*)(pFunc + 0x18);
|
||||
else
|
||||
DerivedAddr_D3DTSS_TEXCOORDINDEX = *(xbaddr*)(pFunc + 0x19);
|
||||
|
|
Loading…
Reference in New Issue