From 266a6a33bed45cb41f662c97c7759f5ebf0a66d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sat, 7 Jun 2025 15:05:33 +0200 Subject: [PATCH] Add workaround for scePsmf LLE not working with Dragon's Lair --- Core/Compatibility.cpp | 1 + Core/Compatibility.h | 1 + Core/HLE/HLE.cpp | 3 +++ assets/compat.ini | 5 +++++ 4 files changed, 10 insertions(+) diff --git a/Core/Compatibility.cpp b/Core/Compatibility.cpp index 62eb3c1158..7904cc6eec 100644 --- a/Core/Compatibility.cpp +++ b/Core/Compatibility.cpp @@ -150,6 +150,7 @@ void Compatibility::CheckSettings(IniFile &iniFile, const std::string &gameID) { CheckSetting(iniFile, gameID, "UseFFMPEGFindStreamInfo", &flags_.UseFFMPEGFindStreamInfo); CheckSetting(iniFile, gameID, "SoftwareRasterDepth", &flags_.SoftwareRasterDepth); CheckSetting(iniFile, gameID, "DisableHLESceFont", &flags_.DisableHLESceFont); + CheckSetting(iniFile, gameID, "ForceHLEPsmf", &flags_.ForceHLEPsmf); } void Compatibility::CheckVRSettings(IniFile &iniFile, const std::string &gameID) { diff --git a/Core/Compatibility.h b/Core/Compatibility.h index 520c4ef6c5..8d63c147d7 100644 --- a/Core/Compatibility.h +++ b/Core/Compatibility.h @@ -113,6 +113,7 @@ struct CompatFlags { bool UseFFMPEGFindStreamInfo; bool SoftwareRasterDepth; bool DisableHLESceFont; + bool ForceHLEPsmf; }; struct VRCompat { diff --git a/Core/HLE/HLE.cpp b/Core/HLE/HLE.cpp index c9ffdcd655..3d588fee3b 100644 --- a/Core/HLE/HLE.cpp +++ b/Core/HLE/HLE.cpp @@ -202,6 +202,9 @@ static DisableHLEFlags GetDisableHLEFlags() { if (PSP_CoreParameter().compat.flags().DisableHLESceFont) { flags |= DisableHLEFlags::sceFont; } + if (PSP_CoreParameter().compat.flags().ForceHLEPsmf) { + flags &= ~(DisableHLEFlags::scePsmf | DisableHLEFlags::scePsmfPlayer); + } flags &= ~(DisableHLEFlags)g_Config.iForceEnableHLE; return flags; diff --git a/assets/compat.ini b/assets/compat.ini index c6fdeb0adb..5d931b685d 100644 --- a/assets/compat.ini +++ b/assets/compat.ini @@ -1923,3 +1923,8 @@ UCKS45164 = true UCES01184 = true UCUS98668 = true UCJP00174 = true + +[ForceHLEPsmf] +# See issue #20467 +NPUH10105 = true +NPEH00122 = true