Skip to content

Commit 1b15541

Browse files
committed
d3d8: unpatch D3DDevice_SetFlickerFilter and D3DDevice_SetSoftDisplayFilter
1 parent 1e624e8 commit 1b15541

4 files changed

Lines changed: 52 additions & 50 deletions

File tree

src/core/hle/D3D8/Direct3D9/Direct3D9.cpp

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -8520,53 +8520,6 @@ xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_SetPalette)
85208520
CxbxImpl_SetPalette(Stage, pPalette);
85218521
}
85228522

8523-
// LTCG specific D3DDevice_SetFlickerFilter function...
8524-
// This uses a custom calling convention where parameter is passed in ESI
8525-
// Test-case: Metal Wolf Chaos
8526-
__declspec(naked) xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_SetFlickerFilter_0__LTCG_esi1)
8527-
(
8528-
)
8529-
{
8530-
dword_xt Filter;
8531-
__asm {
8532-
LTCG_PROLOGUE
8533-
mov Filter, esi
8534-
}
8535-
8536-
EMUPATCH(D3DDevice_SetFlickerFilter)(Filter);
8537-
8538-
__asm {
8539-
LTCG_EPILOGUE
8540-
ret
8541-
}
8542-
}
8543-
8544-
// ******************************************************************
8545-
// * patch: D3DDevice_SetFlickerFilter
8546-
// ******************************************************************
8547-
void WINAPI xbox::EMUPATCH(D3DDevice_SetFlickerFilter)
8548-
(
8549-
dword_xt Filter
8550-
)
8551-
{
8552-
LOG_FUNC_ONE_ARG(Filter);
8553-
8554-
LOG_IGNORED();
8555-
}
8556-
8557-
// ******************************************************************
8558-
// * patch: D3DDevice_SetSoftDisplayFilter
8559-
// ******************************************************************
8560-
void WINAPI xbox::EMUPATCH(D3DDevice_SetSoftDisplayFilter)
8561-
(
8562-
bool_xt Enable
8563-
)
8564-
{
8565-
LOG_FUNC_ONE_ARG(Enable);
8566-
8567-
LOG_IGNORED();
8568-
}
8569-
85708523
// Overload for logging
85718524
static void D3DDevice_DeleteVertexShader_0__LTCG_eax1
85728525
(

src/core/hle/D3D8/Direct3D9/Direct3D9.cpp.unused-patches

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4280,3 +4280,50 @@ xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_SetVerticalBlankCallback)
42804280

42814281
g_pXbox_VerticalBlankCallback = pCallback;
42824282
}
4283+
4284+
// LTCG specific D3DDevice_SetFlickerFilter function...
4285+
// This uses a custom calling convention where parameter is passed in ESI
4286+
// Test-case: Metal Wolf Chaos
4287+
__declspec(naked) xbox::void_xt WINAPI xbox::EMUPATCH(D3DDevice_SetFlickerFilter_0__LTCG_esi1)
4288+
(
4289+
)
4290+
{
4291+
dword_xt Filter;
4292+
__asm {
4293+
LTCG_PROLOGUE
4294+
mov Filter, esi
4295+
}
4296+
4297+
EMUPATCH(D3DDevice_SetFlickerFilter)(Filter);
4298+
4299+
__asm {
4300+
LTCG_EPILOGUE
4301+
ret
4302+
}
4303+
}
4304+
4305+
// ******************************************************************
4306+
// * patch: D3DDevice_SetFlickerFilter
4307+
// ******************************************************************
4308+
void WINAPI xbox::EMUPATCH(D3DDevice_SetFlickerFilter)
4309+
(
4310+
dword_xt Filter
4311+
)
4312+
{
4313+
LOG_FUNC_ONE_ARG(Filter);
4314+
4315+
LOG_IGNORED();
4316+
}
4317+
4318+
// ******************************************************************
4319+
// * patch: D3DDevice_SetSoftDisplayFilter
4320+
// ******************************************************************
4321+
void WINAPI xbox::EMUPATCH(D3DDevice_SetSoftDisplayFilter)
4322+
(
4323+
bool_xt Enable
4324+
)
4325+
{
4326+
LOG_FUNC_ONE_ARG(Enable);
4327+
4328+
LOG_IGNORED();
4329+
}

src/core/hle/Patches.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ std::map<const std::string, const xbox_patch_t> g_PatchTable = {
135135
PATCH_ENTRY("D3DDevice_SelectVertexShader_4__LTCG_eax1", xbox::EMUPATCH(D3DDevice_SelectVertexShader_4__LTCG_eax1), PATCH_HLE_D3D),
136136
PATCH_ENTRY("D3DDevice_SetBackBufferScale", xbox::EMUPATCH(D3DDevice_SetBackBufferScale), PATCH_HLE_D3D),
137137
PATCH_ENTRY("D3DDevice_SetDepthClipPlanes", xbox::EMUPATCH(D3DDevice_SetDepthClipPlanes), PATCH_HLE_D3D),
138-
PATCH_ENTRY("D3DDevice_SetFlickerFilter", xbox::EMUPATCH(D3DDevice_SetFlickerFilter), PATCH_HLE_D3D),
139-
PATCH_ENTRY("D3DDevice_SetFlickerFilter_0__LTCG_esi1", xbox::EMUPATCH(D3DDevice_SetFlickerFilter_0__LTCG_esi1), PATCH_HLE_D3D),
138+
//PATCH_ENTRY("D3DDevice_SetFlickerFilter", xbox::EMUPATCH(D3DDevice_SetFlickerFilter), PATCH_HLE_D3D),
139+
//PATCH_ENTRY("D3DDevice_SetFlickerFilter_0__LTCG_esi1", xbox::EMUPATCH(D3DDevice_SetFlickerFilter_0__LTCG_esi1), PATCH_HLE_D3D),
140140
PATCH_ENTRY("D3DDevice_SetGammaRamp", xbox::EMUPATCH(D3DDevice_SetGammaRamp), PATCH_HLE_D3D),
141141
PATCH_ENTRY("D3DDevice_SetIndices", xbox::EMUPATCH(D3DDevice_SetIndices), PATCH_HLE_D3D),
142142
PATCH_ENTRY("D3DDevice_SetIndices_4__LTCG_ebx1", xbox::EMUPATCH(D3DDevice_SetIndices_4__LTCG_ebx1), PATCH_HLE_D3D),
@@ -156,7 +156,7 @@ std::map<const std::string, const xbox_patch_t> g_PatchTable = {
156156
PATCH_ENTRY("D3DDevice_SetScreenSpaceOffset", xbox::EMUPATCH(D3DDevice_SetScreenSpaceOffset), PATCH_HLE_D3D),
157157
PATCH_ENTRY("D3DDevice_SetShaderConstantMode", xbox::EMUPATCH(D3DDevice_SetShaderConstantMode), PATCH_HLE_D3D),
158158
PATCH_ENTRY("D3DDevice_SetShaderConstantMode_0__LTCG_eax1", xbox::EMUPATCH(D3DDevice_SetShaderConstantMode_0__LTCG_eax1), PATCH_HLE_D3D),
159-
PATCH_ENTRY("D3DDevice_SetSoftDisplayFilter", xbox::EMUPATCH(D3DDevice_SetSoftDisplayFilter), PATCH_HLE_D3D),
159+
//PATCH_ENTRY("D3DDevice_SetSoftDisplayFilter", xbox::EMUPATCH(D3DDevice_SetSoftDisplayFilter), PATCH_HLE_D3D),
160160
PATCH_ENTRY("D3DDevice_SetStipple", xbox::EMUPATCH(D3DDevice_SetStipple), PATCH_HLE_D3D),
161161
PATCH_ENTRY("D3DDevice_SetStreamSource", xbox::EMUPATCH(D3DDevice_SetStreamSource), PATCH_HLE_D3D),
162162
PATCH_ENTRY("D3DDevice_SetStreamSource_0__LTCG_eax1_edi2_ebx3", xbox::EMUPATCH(D3DDevice_SetStreamSource_0__LTCG_eax1_edi2_ebx3), PATCH_HLE_D3D),

src/core/kernel/exports/EmuKrnlAv.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ XBSYSAPI EXPORTNUM(2) xbox::void_xt NTAPI xbox::AvSendTVEncoderOption
211211
LOG_UNIMPLEMENTED();
212212
break;
213213
case AV_OPTION_FLICKER_FILTER:
214+
// Test case: Is called from AvSetDisplayMode (kernel) and D3DDevice_SetFlickerFilter (D3D8) functions.
214215
LOG_UNIMPLEMENTED();
215216
break;
216217
case AV_OPTION_ZERO_MODE:
@@ -220,6 +221,7 @@ XBSYSAPI EXPORTNUM(2) xbox::void_xt NTAPI xbox::AvSendTVEncoderOption
220221
LOG_UNIMPLEMENTED();
221222
break;
222223
case AV_OPTION_ENABLE_LUMA_FILTER:
224+
// Test case: Is called from AvSetDisplayMode (kernel) and D3DDevice_SetSoftDisplayFilter (D3D8) functions.
223225
LOG_UNIMPLEMENTED();
224226
break;
225227
case AV_OPTION_GUESS_FIELD:

0 commit comments

Comments
 (0)