Merge pull request #319 from jarupxx/getlight

Implemented D3DDevice_GetLight function
This commit is contained in:
PatrickvL 2017-04-03 14:49:57 +02:00 committed by GitHub
commit 9204b71167
14 changed files with 69 additions and 1 deletions

View File

@ -8089,6 +8089,31 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_DrawIndexedVerticesUP)
return;
}
// ******************************************************************
// * patch: D3DDevice_GetLight
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(D3DDevice_GetLight)
(
DWORD Index,
D3DLIGHT8 *pLight
)
{
DbgPrintf("EmuD3D8: EmuD3DDevice_GetLight\n"
"(\n"
" Index : 0x%.08X\n"
" pLight : 0x%.08X\n"
");\n",
Index, pLight);
HRESULT hRet = g_pD3DDevice8->GetLight(Index, pLight);
return hRet;
}
// ******************************************************************
// * patch: D3DDevice_SetLight
// ******************************************************************

View File

@ -1278,6 +1278,15 @@ VOID WINAPI EMUPATCH(D3DDevice_DrawIndexedVerticesUP)
UINT VertexStreamZeroStride
);
// ******************************************************************
// * patch: D3DDevice_GetLight
// ******************************************************************
HRESULT WINAPI EMUPATCH(D3DDevice_GetLight)
(
DWORD Index,
D3DLIGHT8 *pLight
);
// ******************************************************************
// * patch: D3DDevice_SetLight
// ******************************************************************

View File

@ -2651,6 +2651,29 @@ OOVPA_NO_XREF(D3DDevice_SetRenderState_Deferred, 3925, 9)
{ 0x14, 0xC3 },
OOVPA_END;
// ******************************************************************
// * D3DDevice_GetLight
// ******************************************************************
OOVPA_NO_XREF(D3DDevice_GetLight, 3925, 10)
// Based on Dxbx patterns for 3911, 4361, 4627, 5344, 5558, 5659, 5788, 5849, 5933
// D3DDevice_GetLight+0x0B : mov esi, [ecx+XXXh]
{ 0x0B, 0x8B }, // (Offset,Value)-Pair #1
{ 0x0C, 0xB1 }, // (Offset,Value)-Pair #2
{ 0x0F, 0x00 }, // (Offset,Value)-Pair #3
{ 0x10, 0x00 }, // (Offset,Value)-Pair #4
// D3DDevice_GetLight+0x12 : mov edi, [esp+8+arg_4]
{ 0x12, 0x8B }, // (Offset,Value)-Pair #5
{ 0x13, 0x7C }, // (Offset,Value)-Pair #6
{ 0x14, 0x24 }, // (Offset,Value)-Pair #7
{ 0x15, 0x10 }, // (Offset,Value)-Pair #8
// D3DDevice_GetLight+0x1F : mov ecx, 1Ah
{ 0x1E, 0xB9 }, // (Offset,Value)-Pair #9
{ 0x1F, 0x1A }, // (Offset,Value)-Pair #10
OOVPA_END;
// ******************************************************************
// * D3DDevice_SetLight
// ******************************************************************
@ -3751,6 +3774,7 @@ OOVPATable D3D8_3925[] = {
REGISTER_OOVPA(D3DResource_GetType, 3925, DISABLED), // Probably not even necessary...
REGISTER_OOVPA(D3D_AllocContiguousMemory, 3925, DISABLED), // Just calls MmAllocateContiguousMemory. Was PATCH
// REGISTER_OOVPA(D3DDevice_SetRenderState_Deferred, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, PATCH),

View File

@ -1240,6 +1240,7 @@ OOVPATable D3D8_4034[] = {
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 4034, PATCH),
REGISTER_OOVPA(D3D_GetAdapterIdentifier, 3925, DISABLED),
REGISTER_OOVPA(D3DSurface_GetDesc, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 4034, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 4034, PATCH),

View File

@ -2084,6 +2084,7 @@ OOVPATable D3D8_4134[] = {
REGISTER_OOVPA(D3DDevice_DrawVertices, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 4134, PATCH),

View File

@ -1865,6 +1865,7 @@ OOVPATable D3D8_4361[] = {
REGISTER_OOVPA(D3DDevice_DrawVertices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 4361, PATCH),

View File

@ -750,6 +750,7 @@ OOVPATable D3D8_4432[] {
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 4361, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),

View File

@ -3205,6 +3205,7 @@ REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4627, ALIAS, D3DDevice_DrawVerticesUPB),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4627, PATCH),

View File

@ -889,6 +889,7 @@ OOVPATable D3D8_5028[] = {
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 5028, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 5028, PATCH),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5028, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 5028, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4627, PATCH),

View File

@ -1057,6 +1057,7 @@ OOVPATable D3D8_5233[] = {
REGISTER_OOVPA(D3DDevice_SetTransform, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3D_GetDeviceCaps, 5233, DISABLED),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 5233, PATCH),

View File

@ -904,7 +904,7 @@ OOVPATable D3D8_5344[] = {
REGISTER_OOVPA(D3DDevice_SetTransform, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3D_GetDeviceCaps, 5233, DISABLED),
REGISTER_OOVPA(D3DDevice_SetLight, 5233, DISABLED),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5233, DISABLED),
REGISTER_OOVPA(D3DDevice_LightEnable, 5344, PATCH),

View File

@ -1541,6 +1541,7 @@ OOVPATable D3D8_5558[] = {
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5558, PATCH),

View File

@ -1339,6 +1339,7 @@ OOVPATable D3D8_5788[] = {
REGISTER_OOVPA(D3DTexture_LockRect, 5558, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5558, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel2, 4627, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 5788, PATCH),

View File

@ -1397,6 +1397,7 @@ OOVPATable D3D8_5849[] = {
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 5849, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 5849, PATCH),