Add support for compat flags that control DisableHLE

This commit is contained in:
Henrik Rydgård
2025-04-03 20:04:04 +02:00
parent 62cd4bbefc
commit e961c1ed96
3 changed files with 12 additions and 2 deletions
+1
View File
@@ -149,6 +149,7 @@ void Compatibility::CheckSettings(IniFile &iniFile, const std::string &gameID) {
CheckSetting(iniFile, gameID, "ForceEnableGPUReadback", &flags_.ForceEnableGPUReadback);
CheckSetting(iniFile, gameID, "UseFFMPEGFindStreamInfo", &flags_.UseFFMPEGFindStreamInfo);
CheckSetting(iniFile, gameID, "SoftwareRasterDepth", &flags_.SoftwareRasterDepth);
CheckSetting(iniFile, gameID, "DisableHLESceFont", &flags_.DisableHLESceFont);
}
void Compatibility::CheckVRSettings(IniFile &iniFile, const std::string &gameID) {
+1
View File
@@ -112,6 +112,7 @@ struct CompatFlags {
bool ForceEnableGPUReadback;
bool UseFFMPEGFindStreamInfo;
bool SoftwareRasterDepth;
bool DisableHLESceFont;
};
struct VRCompat {
+10 -2
View File
@@ -187,6 +187,14 @@ const HLEModuleMeta *GetHLEModuleMetaByImport(std::string_view importModuleName)
return nullptr;
}
// Process compat flags.
static DisableHLEFlags GetDisableHLEFlags() {
DisableHLEFlags flags = (DisableHLEFlags)g_Config.iDisableHLE;
if (PSP_CoreParameter().compat.flags().DisableHLESceFont) {
flags |= DisableHLEFlags::sceFont;
}
}
// Note: name is the modname from prx, not the export module name!
bool ShouldHLEModule(std::string_view modname, bool *wasDisabled) {
if (wasDisabled) {
@@ -197,7 +205,7 @@ bool ShouldHLEModule(std::string_view modname, bool *wasDisabled) {
return false;
}
bool disabled = meta->disableFlag & (DisableHLEFlags)g_Config.iDisableHLE;
bool disabled = meta->disableFlag & GetDisableHLEFlags();
if (disabled) {
if (wasDisabled) {
*wasDisabled = true;
@@ -211,7 +219,7 @@ bool ShouldHLEModuleByImportName(std::string_view name) {
// Check our special metadata lookup. Should probably be merged with the main one.
const HLEModuleMeta *meta = GetHLEModuleMetaByImport(name);
if (meta) {
bool disabled = meta->disableFlag & (DisableHLEFlags)g_Config.iDisableHLE;
bool disabled = meta->disableFlag & GetDisableHLEFlags();
return !disabled;
}