diff --git a/Core/Compatibility.cpp b/Core/Compatibility.cpp index e3b866fc21..f21b2ce173 100644 --- a/Core/Compatibility.cpp +++ b/Core/Compatibility.cpp @@ -64,6 +64,7 @@ void Compatibility::CheckSettings(IniFile &iniFile, const std::string &gameID) { CheckSetting(iniFile, gameID, "GuardBand", &flags_.GuardBand); CheckSetting(iniFile, gameID, "RequireBufferedRendering", &flags_.RequireBufferedRendering); CheckSetting(iniFile, gameID, "RequireBlockTransfer", &flags_.RequireBlockTransfer); + CheckSetting(iniFile, gameID, "RequireDefaultCPUClock", &flags_.RequireDefaultCPUClock); CheckSetting(iniFile, gameID, "DisableReadbacks", &flags_.DisableReadbacks); CheckSetting(iniFile, gameID, "DisableAccurateDepth", &flags_.DisableAccurateDepth); } diff --git a/Core/Compatibility.h b/Core/Compatibility.h index a84635c789..a7b8654edc 100644 --- a/Core/Compatibility.h +++ b/Core/Compatibility.h @@ -18,7 +18,7 @@ #pragma once #include -#include +#include // Compatibility flags are controlled by assets/compat.ini. // Alternatively, if PSP/SYSTEM/compat.ini exists, it is merged on top, to enable editing @@ -55,6 +55,7 @@ struct CompatFlags { bool FakeMipmapChange; bool RequireBufferedRendering; bool RequireBlockTransfer; + bool RequireDefaultCPUClock; bool DisableReadbacks; bool HackFixVideo; bool HackFixHangs; diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index dcb2da690a..6f5126b526 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -226,6 +226,11 @@ void EmuScreen::bootGame(const std::string &filename) { host->NotifyUserMessage(gr->T("BlockTransferRequired", "Warning: This game requires Simulate Block Transfer Mode to be set to On."), 15.0f); } + if (PSP_CoreParameter().compat.flags().RequireDefaultCPUClock && g_Config.iLockedCPUSpeed != 0) { + I18NCategory *gr = GetI18NCategory("Graphics"); + host->NotifyUserMessage(gr->T("DefaultCPUClockRequired", "Warning: This game requires the CPU clock to be set to default."), 15.0f); + } + loadingViewColor_->Divert(0xFFFFFFFF, 0.15f); loadingViewVisible_->Divert(UI::V_VISIBLE, 0.15f); } diff --git a/assets/compat.ini b/assets/compat.ini index 93c0f5abf5..e9421e51d7 100644 --- a/assets/compat.ini +++ b/assets/compat.ini @@ -435,3 +435,13 @@ ULJM05242 = true ULJM05371 = true NPJH50304 = true ULES00703 = true + +[RequireDefaultCPUClock] +# GOW : Ghost of Sparta +UCUS98737 = true +UCAS40323 = true +NPHG00092 = true +NPEG00044 = true +NPJG00120 = true +UCJS10114 = true +UCES01401 = true \ No newline at end of file