Implement D3DDevice_MultiplyTransform, without this, titles calling this function would set a transform based on unitialized data....
This commit is contained in:
parent
dd5aa368bf
commit
b8ae74ca79
|
@ -6115,6 +6115,29 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SetTransform)
|
|||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice8->SetTransform");
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * patch: D3DDevice_MultiplyTransform
|
||||
// ******************************************************************
|
||||
VOID WINAPI XTL::EMUPATCH(D3DDevice_MultiplyTransform)
|
||||
(
|
||||
D3DTRANSFORMSTATETYPE State,
|
||||
CONST D3DMATRIX *pMatrix
|
||||
)
|
||||
{
|
||||
FUNC_EXPORTS
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(State)
|
||||
LOG_FUNC_ARG(pMatrix)
|
||||
LOG_FUNC_END;
|
||||
|
||||
State = EmuXB2PC_D3DTS(State);
|
||||
|
||||
HRESULT hRet = g_pD3DDevice8->MultiplyTransform(State, pMatrix);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice8->MultiplyTransform");
|
||||
}
|
||||
|
||||
|
||||
// ******************************************************************
|
||||
// * patch: D3DDevice_GetTransform
|
||||
// ******************************************************************
|
||||
|
|
|
@ -1211,6 +1211,15 @@ VOID WINAPI EMUPATCH(D3DDevice_SetTransform)
|
|||
CONST D3DMATRIX *pMatrix
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * patch: D3DDevice_MultiplyTransform
|
||||
// ******************************************************************
|
||||
VOID WINAPI EMUPATCH(D3DDevice_MultiplyTransform)
|
||||
(
|
||||
D3DTRANSFORMSTATETYPE State,
|
||||
CONST D3DMATRIX *pMatrix
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * patch: D3DDevice_GetTransform
|
||||
// ******************************************************************
|
||||
|
|
|
@ -2190,6 +2190,22 @@ OOVPA_NO_XREF(D3DDevice_SetTransform, 3911, 10)
|
|||
{ 0x7B, 0xF9 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_MultiplyTransform
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_MultiplyTransform, 3911, 10)
|
||||
{ 0x00, 0x55 },
|
||||
{ 0x01, 0x8B },
|
||||
{ 0x02, 0xEC },
|
||||
{ 0x03, 0x83 },
|
||||
{ 0x04, 0xE4 },
|
||||
{ 0x12, 0x56 },
|
||||
{ 0x13, 0x8B },
|
||||
{ 0x14, 0x7F },
|
||||
{ 0x15, 0x0C },
|
||||
{ 0x16, 0x57 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetRenderState_FogColor
|
||||
// ******************************************************************
|
||||
|
|
|
@ -155,6 +155,44 @@ OOVPA_NO_XREF(D3DDevice_SetTransform, 4034, 11)
|
|||
{ 0x85, 0xF9 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_MultiplyTransform
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_MultiplyTransform, 4034, 0x20)
|
||||
{ 0x00, 0x55 },
|
||||
{ 0x01, 0x8B },
|
||||
{ 0x02, 0xEC },
|
||||
{ 0x03, 0x83 },
|
||||
{ 0x04, 0xE4 },
|
||||
{ 0x05, 0xF0 },
|
||||
{ 0x06, 0x81 },
|
||||
{ 0x07, 0xEC },
|
||||
{ 0x08, 0x88 },
|
||||
{ 0x09, 0x00 },
|
||||
{ 0x0A, 0x00 },
|
||||
{ 0x0B, 0x00 },
|
||||
{ 0x0C, 0x56 },
|
||||
{ 0x0D, 0x8B },
|
||||
{ 0x0E, 0x75 },
|
||||
{ 0x0F, 0x0C },
|
||||
{ 0x10, 0x57 },
|
||||
{ 0x11, 0xB9 },
|
||||
{ 0x12, 0x10 },
|
||||
{ 0x13, 0x00 },
|
||||
{ 0x14, 0x00 },
|
||||
{ 0x15, 0x00 },
|
||||
{ 0x16, 0x8D },
|
||||
{ 0x17, 0x7C },
|
||||
{ 0x18, 0x24 },
|
||||
{ 0x19, 0x10 },
|
||||
{ 0x1A, 0xF3 },
|
||||
{ 0x1B, 0xA5 },
|
||||
{ 0x1C, 0x8B },
|
||||
{ 0x1D, 0x75 },
|
||||
{ 0x1E, 0x08 },
|
||||
{ 0x1F, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetRenderState_CullMode
|
||||
// ******************************************************************
|
||||
|
|
|
@ -364,6 +364,7 @@ OOVPATable D3D8_OOVPAV2[] = {
|
|||
REGISTER_OOVPAS(D3DDevice_SetTextureState_TexCoordIndex, PATCH, 3911, 4034, 4242, 4627),
|
||||
REGISTER_OOVPAS(D3DDevice_SetTile, PATCH, 3911, 4034, 4627), // Then it has changed calls ?SetTileNoWait@D3D@@YGXKPBU_D3DTILE@@@Z in XDK 4627 and higher.
|
||||
REGISTER_OOVPAS(D3DDevice_SetTransform, PATCH, 3911, 4034, 5344, 5558), // Was 4134 (from 5344's comment)
|
||||
REGISTER_OOVPAS(D3DDevice_MultiplyTransform, PATCH, 3911, 4034), // TODO: Verify 4034 is correct
|
||||
REGISTER_OOVPAS(D3DDevice_SetVertexData2f, PATCH, 3911, 4039), // Was 4627 (from 5344's comment)
|
||||
REGISTER_OOVPAS(D3DDevice_SetVertexData2s, PATCH, 3911, 4134),
|
||||
REGISTER_OOVPAS(D3DDevice_SetVertexData4f, PATCH, 3911, 4039),
|
||||
|
|
Loading…
Reference in New Issue