Detect duplicate registration vs usage

Removed all duplicate OOVPA + Patch registrations (duplicate patch usage
is left untouched).
This commit is contained in:
PatrickvL 2017-01-16 18:03:21 +01:00
parent f012f2a9d8
commit 61a3cd60ec
10 changed files with 7 additions and 35 deletions

View File

@ -1096,8 +1096,6 @@ OOVPATable D3D8_1_0_4034[] = {
OOVPA_TABLE_PATCH(IDirect3DDevice8_Clear_1_0_4034, XTL::EmuIDirect3DDevice8_Clear),
// IDirect3DResource8::Register
OOVPA_TABLE_PATCH(IDirect3DResource8_Register_1_0_3925, XTL::EmuIDirect3DResource8_Register),
// IDirect3DDevice8::CreatePalette
OOVPA_TABLE_PATCH(IDirect3DDevice8_CreatePalette_1_0_3925, XTL::EmuIDirect3DDevice8_CreatePalette),
// ********************** BEG WARNING UNTESTED!!! *******************
#if 0
@ -1316,8 +1314,6 @@ OOVPATable D3D8_1_0_4034[] = {
OOVPA_TABLE_PATCH(Direct3D_SetPushBufferSize_1_0_4034, XTL::EmuIDirect3D8_SetPushBufferSize),
// Get2DSurfacDesc
OOVPA_TABLE_PATCH(Get2DSurfaceDesc_1_0_4034, XTL::EmuGet2DSurfaceDesc),
// IDirect3DTexture8::GetSurfaceLevel (* unchanged since 3925 *)
OOVPA_TABLE_PATCH(IDirect3DTexture8_GetSurfaceLevel_1_0_3925, XTL::EmuIDirect3DTexture8_GetSurfaceLevel),
// D3DDevice_SetRenderState_ZEnable
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_ZEnable_1_0_4034, XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable),
// D3DDevice_LightEnable
@ -1328,8 +1324,6 @@ OOVPATable D3D8_1_0_4034[] = {
OOVPA_TABLE_PATCH(Direct3D_GetAdapterIdentifier_1_0_3925, XTL::EmuIDirect3D8_GetAdapterIdentifier),
// IDirect3DSurface8::GetDesc (* unchanged since 3925 *)
OOVPA_TABLE_PATCH(D3DSurface_GetDesc_1_0_3925, XTL::EmuIDirect3DSurface8_GetDesc),
// Get2DSurfacDesc
OOVPA_TABLE_PATCH(Get2DSurfaceDesc_1_0_4034, XTL::EmuGet2DSurfaceDesc),
// IDirect3DDevice8::SetLight
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetLight_1_0_4034, XTL::EmuIDirect3DDevice8_SetLight),
// IDirect3DVertexBuffer8::Lock

View File

@ -2035,8 +2035,6 @@ OOVPATable D3D8_1_0_4134[] = {
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_FrontFace_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace),
// IDirect3DDevice8::SetRenderState_LogicOp
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_LogicOp_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp),
// IDirect3DDevice8::SetRenderState_StencilFail
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_StencilFail_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail),
// IDirect3DDevice8::SetRenderState_OcclusionCullEnable
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable),
// IDirect3DDevice8::SetRenderState_StencilCullEnable

View File

@ -748,8 +748,6 @@ OOVPATable D3D8_1_0_4432[] {
OOVPA_TABLE_PATCH(IDirect3DDevice8_GetCreationParameters_1_0_4034, XTL::EmuIDirect3DDevice8_GetCreationParameters),
// IDirect3DDevice8::GetVisibilityTestResult (* unchanged since 3925 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_GetVisibilityTestResult_1_0_3925, XTL::EmuIDirect3DDevice8_GetVisibilityTestResult),
// IDirect3DDevice8::SetTextureState_BumpEnv (* unchanged since 4361 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4361, XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv),
// IDirect3DDevice8::SetRenderState_EdgeAntiAlias (* unchanged since 4361 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361, XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias),
// IDirect3DDevice8::SetRenderState_FillMode (* unchanged since 4361 *)

View File

@ -3479,8 +3479,6 @@ OOVPATable D3D8_1_0_4627[] = {
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead),
// IDirect3DDevice8::SetRenderState_DoNotCullUncompressed (* unchanged since 4134 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed),
// IDirect3DDevice8::DeletePixelShader (* unchanged since 4134 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_DeletePixelShader_1_0_4134, XTL::EmuIDirect3DDevice8_DeletePixelShader),
// D3DDevice_PersistDisplay
OOVPA_TABLE_PATCH(D3DDevice_PersistDisplay_1_0_4627, XTL::EmuIDirect3DDevice8_PersistDisplay),
// D3DDevice_PersistDisplay

View File

@ -1478,8 +1478,6 @@ OOVPATable D3D8_1_0_5849[] = {
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_StencilFail_1_0_5849, XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail),
// D3DDevice_SetRenderState_VertexBlend
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_VertexBlend_1_0_5849, XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend),
// D3DDevice_SetRenderState_VertexBlend
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_VertexBlend_1_0_5849, XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend),
// IDirect3DDevice8::Reset (* unchanged since 4134 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_Reset_1_0_4134, XTL::EmuIDirect3DDevice8_Reset),
// IDirect3DDevice::Release
@ -1580,14 +1578,8 @@ OOVPATable D3D8_1_0_5849[] = {
OOVPA_TABLE_PATCH(D3DDevice_DeleteStateBlock_1_0_5849, XTL::EmuIDirect3DDevice8_DeleteStateBlock),
// IDirect3DDevice8::SetRenderState_StencilCullEnable (* unchanged since 4134 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_StencilCullEnable),
// IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4134 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable),
// IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_RopZCmpAlwaysRead_1_0_5849, XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead),
// IDirect3DDevice8::SetRenderState_RopZRead (* unchanged since 4134 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead),
// IDirect3DDevice8::SetRenderState_DoNotCullUncompressed (* unchanged since 4134 *)
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed),
// D3DDevice_GetTexture2
OOVPA_TABLE_PATCH(D3DDevice_GetTexture2_1_0_5849, XTL::EmuIDirect3DDevice8_GetTexture2),
// IDirect3DDevice8::SetRenderTargetFast (* unchanged since 5344 *)

View File

@ -1033,10 +1033,6 @@ OOVPATable D3D8LTCG_1_0_5849[] = {
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_5849_LTCG, XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor),
// IDirect3DDevice8::Clear
OOVPA_TABLE_PATCH(IDirect3DDevice8_Clear_1_0_5849_LTCG, XTL::EmuIDirect3DDevice8_Clear),
// IDirect3DVertexBuffer8::Lock2
OOVPA_TABLE_PATCH(IDirect3DVertexBuffer8_Lock2_1_0_5849_LTCG, XTL::EmuIDirect3DVertexBuffer8_Lock2),
// IDirect3DDevice8::SetVertexShader
OOVPA_TABLE_PATCH(IDirect3DDevice8_SetVertexShader_1_0_5849_LTCG, XTL::EmuIDirect3DDevice8_SetVertexShader),
};
uint32 D3D8LTCG_1_0_5849_SIZE = sizeof(D3D8LTCG_1_0_5849);

View File

@ -937,8 +937,6 @@ OOVPATable DSound_1_0_5233[] = {
OOVPA_TABLE_XREF(CDirectSoundStream_FlushEx_1_0_5233),
// IDirectSoundBuffer8::StopEx
OOVPA_TABLE_PATCH(IDirectSoundBuffer8_StopEx_1_0_5233, XTL::EmuIDirectSoundBuffer8_StopEx),
// IDirectSound8::Release (* unchanged since 3936 *)
OOVPA_TABLE_PATCH(IDirectSound8_Release_1_0_3936, XTL::EmuIDirectSound8_Release),
// DirectSound::CDirectSound::EnableHeadphones (XRef)
OOVPA_TABLE_XREF(CDirectSound_EnableHeadphones_1_0_5233),
// IDirectSound8::EnableHeadphones

View File

@ -1017,8 +1017,6 @@ OOVPATable XAPI_1_0_3911[] = {
OOVPA_TABLE_PATCH(SetThreadPriorityBoost_1_0_3911, XTL::EmuSetThreadPriorityBoost),
// GetThreadPriority
OOVPA_TABLE_PATCH(GetThreadPriority_1_0_3911, XTL::EmuGetThreadPriority),
// XGetDevices
OOVPA_TABLE_PATCH(XGetDevices_1_0_3911, XTL::EmuXGetDevices),
// CreateFiber
OOVPA_TABLE_PATCH(CreateFiber_1_0_3911, XTL::EmuCreateFiber),
// DeleteFiber
@ -1027,8 +1025,6 @@ OOVPATable XAPI_1_0_3911[] = {
OOVPA_TABLE_PATCH(SwitchToFiber_1_0_3911, XTL::EmuSwitchToFiber),
// ConvertThreadToFiber
OOVPA_TABLE_PATCH(ConvertThreadToFiber_1_0_3911, XTL::EmuConvertThreadToFiber),
// XInputGetCapabilities
OOVPA_TABLE_PATCH(XInputGetCapabilities_1_0_3911, XTL::EmuXInputGetCapabilities),
// SignalObjectAndWait
OOVPA_TABLE_PATCH(SignalObjectAndWait_1_0_3911, XTL::EmuSignalObjectAndWait),
// QueueUserAPC

View File

@ -282,8 +282,6 @@ OOVPATable XAPI_1_0_5558[] = {
OOVPA_TABLE_PATCH(GetThreadPriority_1_0_4627, XTL::EmuGetThreadPriority),
// GetTimeZoneInformation (* unchanged since 3911 *)
OOVPA_TABLE_PATCH(GetTimeZoneInformation_1_0_3911, XTL::EmuGetTimeZoneInformation),
// SetThreadPriority (* unchanged since 3911 *)
OOVPA_TABLE_PATCH(SetThreadPriority_1_0_3911, XTL::EmuSetThreadPriority),
// XMountMUA
OOVPA_TABLE_PATCH(XMountMUA_1_0_5558, XTL::EmuXMountMUA),
// CreateFiber

View File

@ -915,9 +915,13 @@ void VerifyHLEDataEntry(HLEVerifyContext *context, const OOVPATable *table, uint
// check no patch occurs twice in this table
for (uint32 t = index + 1; t < count; t++) {
if (entry_redirect == table[t].lpRedirect) {
HLEError(context, "Patch (0x%x) also occurs at index %d",
table[index].lpRedirect,
t);
if (table[index].Oovpa == table[t].Oovpa) {
HLEError(context, "Patch registered again (with same OOVPA) at index %d",
t);
} else {
HLEError(context, "Patch also used for another OOVPA at index %d",
t);
}
}
}
}