d3d8ltcg: add D3DDevice_RunPushBuffer_4__LTCG_eax2 patch
This commit is contained in:
parent
5241cd58ce
commit
d02afcd668
|
@ -4822,6 +4822,45 @@ xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_RunPushBuffer)
|
|||
EmuExecutePushBuffer(pPushBuffer, pFixup);
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * patch: D3DDevice_RunPushBuffer_4__LTCG_eax2
|
||||
// ******************************************************************
|
||||
// Overload for logging
|
||||
static void D3DDevice_RunPushBuffer_4__LTCG_eax2
|
||||
(
|
||||
xbox::X_D3DPushBuffer *pPushBuffer,
|
||||
xbox::X_D3DFixup *pFixup
|
||||
)
|
||||
{
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(pPushBuffer)
|
||||
LOG_FUNC_ARG(pFixup)
|
||||
LOG_FUNC_END;
|
||||
}
|
||||
|
||||
// This uses a custom calling convention where parameter is passed in EAX
|
||||
__declspec(naked) xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_RunPushBuffer_4__LTCG_eax2)
|
||||
(
|
||||
X_D3DPushBuffer *pPushBuffer
|
||||
)
|
||||
{
|
||||
X_D3DFixup* pFixup;
|
||||
__asm {
|
||||
LTCG_PROLOGUE
|
||||
mov pFixup, eax
|
||||
}
|
||||
|
||||
// Log
|
||||
D3DDevice_RunPushBuffer_4__LTCG_eax2(pPushBuffer, pFixup);
|
||||
|
||||
EmuExecutePushBuffer(pPushBuffer, pFixup);
|
||||
|
||||
__asm {
|
||||
LTCG_EPILOGUE
|
||||
ret 4
|
||||
}
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * patch: D3DDevice_Clear
|
||||
// ******************************************************************
|
||||
|
|
|
@ -736,6 +736,14 @@ xbox::void_xt WINAPI EMUPATCH(D3DDevice_RunPushBuffer)
|
|||
X_D3DFixup *pFixup
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * patch: D3DDevice_RunPushBuffer_4__LTCG_eax2
|
||||
// ******************************************************************
|
||||
xbox::void_xt WINAPI EMUPATCH(D3DDevice_RunPushBuffer_4__LTCG_eax2)
|
||||
(
|
||||
X_D3DPushBuffer *pPushBuffer
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * patch: D3DDevice_Clear
|
||||
// ******************************************************************
|
||||
|
|
|
@ -128,6 +128,7 @@ std::map<const std::string, const xbox_patch_t> g_PatchTable = {
|
|||
PATCH_ENTRY("D3DDevice_Reset_0__LTCG_edi1", xbox::EMUPATCH(D3DDevice_Reset_0__LTCG_edi1), PATCH_HLE_D3D),
|
||||
PATCH_ENTRY("D3DDevice_Reset_0__LTCG_ebx1", xbox::EMUPATCH(D3DDevice_Reset_0__LTCG_ebx1), PATCH_HLE_D3D),
|
||||
PATCH_ENTRY("D3DDevice_RunPushBuffer", xbox::EMUPATCH(D3DDevice_RunPushBuffer), PATCH_HLE_D3D),
|
||||
PATCH_ENTRY("D3DDevice_RunPushBuffer_4__LTCG_eax2", xbox::EMUPATCH(D3DDevice_RunPushBuffer_4__LTCG_eax2), PATCH_HLE_D3D),
|
||||
PATCH_ENTRY("D3DDevice_RunVertexStateShader", xbox::EMUPATCH(D3DDevice_RunVertexStateShader), PATCH_HLE_D3D),
|
||||
PATCH_ENTRY("D3DDevice_RunVertexStateShader_4__LTCG_esi2", xbox::EMUPATCH(D3DDevice_RunVertexStateShader_4__LTCG_esi2), PATCH_HLE_D3D),
|
||||
PATCH_ENTRY("D3DDevice_SelectVertexShader", xbox::EMUPATCH(D3DDevice_SelectVertexShader), PATCH_HLE_D3D),
|
||||
|
|
Loading…
Reference in New Issue