Add LTCG specific D3DDevice_SetVertexData4f_16

This commit is contained in:
Luke Usher 2018-10-28 22:48:21 +00:00
parent 2e056347e9
commit 0ac8b589a5
3 changed files with 32 additions and 0 deletions

View File

@ -3960,6 +3960,26 @@ extern uint32_t HLE_read_NV2A_pgraph_register(const int reg); // Declared in Pus
extern void HLE_write_NV2A_vertex_attribute_slot(unsigned slot, uint32_t parameter); // Declared in PushBuffer.cpp
extern uint32_t HLE_read_NV2A_vertex_attribute_slot(unsigned VertexSlot); // Declared in PushBuffer.cpp
// ******************************************************************
// * patch: D3DDevice_SetVertexData4f_16
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(D3DDevice_SetVertexData4f_16)
(
FLOAT a,
FLOAT b,
FLOAT c,
FLOAT d
)
{
// This is an LTCG specific version of SetVertexData4f where the first param is passed in edi
int Register = 0;
__asm{
mov Register, edi
}
EMUPATCH(D3DDevice_SetVertexData4f)(Register, a, b, c, d);
}
// ******************************************************************
// * patch: D3DDevice_SetVertexData4f
// ******************************************************************

View File

@ -671,6 +671,17 @@ VOID WINAPI EMUPATCH(D3DDevice_SetVertexData4f)
FLOAT d
);
// ******************************************************************
// * patch: D3DDevice_SetVertexData4f_16
// ******************************************************************
VOID WINAPI EMUPATCH(D3DDevice_SetVertexData4f_16)
(
FLOAT a,
FLOAT b,
FLOAT c,
FLOAT d
);
// ******************************************************************
// * patch: D3DDevice_SetVertexData4ub
// ******************************************************************

View File

@ -200,6 +200,7 @@ std::map<const std::string, const xbox_patch_t> g_PatchTable = {
PATCH_ENTRY("D3DDevice_SetVertexData2f", XTL::EMUPATCH(D3DDevice_SetVertexData2f), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData2s", XTL::EMUPATCH(D3DDevice_SetVertexData2s), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4f", XTL::EMUPATCH(D3DDevice_SetVertexData4f), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4f_16", XTL::EMUPATCH(D3DDevice_SetVertexData4f_16), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4s", XTL::EMUPATCH(D3DDevice_SetVertexData4s), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4ub", XTL::EMUPATCH(D3DDevice_SetVertexData4ub), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexDataColor", XTL::EMUPATCH(D3DDevice_SetVertexDataColor), PATCH_HLE_D3D),