diff --git a/pcsx2/Config.h b/pcsx2/Config.h index 41263af153..7053d60c98 100644 --- a/pcsx2/Config.h +++ b/pcsx2/Config.h @@ -551,8 +551,10 @@ enum class GSUserHackOverride : u8 AutoFlush, TextureInsideRt, // Appended rather than slotted in next to X, so a mask already written to an INI keeps - // meaning what it meant. + // meaning what it meant. Everything below follows the same rule: append only. TextureOffsetY, + PreloadFrameData, + DisablePartialInvalidation, MaxCount }; diff --git a/pcsx2/GameDatabase.cpp b/pcsx2/GameDatabase.cpp index 03ffd21f1f..f386d24e50 100644 --- a/pcsx2/GameDatabase.cpp +++ b/pcsx2/GameDatabase.cpp @@ -510,6 +510,10 @@ static std::optional UserHackOverrideForHWFix(GameDatabaseSc return GSUserHackOverride::AutoFlush; case GameDatabaseSchema::GSHWFixId::TextureInsideRT: return GSUserHackOverride::TextureInsideRt; + case GameDatabaseSchema::GSHWFixId::PreloadFrameData: + return GSUserHackOverride::PreloadFrameData; + case GameDatabaseSchema::GSHWFixId::DisablePartialInvalidation: + return GSUserHackOverride::DisablePartialInvalidation; default: return std::nullopt; } diff --git a/pcsx2/Pcsx2Config.cpp b/pcsx2/Pcsx2Config.cpp index 3f3ff3394e..c9713ff8b2 100644 --- a/pcsx2/Pcsx2Config.cpp +++ b/pcsx2/Pcsx2Config.cpp @@ -1257,12 +1257,14 @@ void Pcsx2Config::GSOptions::MaskUserHacks(bool respect_claims) UserHacks_TCOffsetX = 0; if (!keep(GSUserHackOverride::TextureOffsetY)) UserHacks_TCOffsetY = 0; + if (!keep(GSUserHackOverride::PreloadFrameData)) + PreloadFrameWithGSData = false; + if (!keep(GSUserHackOverride::DisablePartialInvalidation)) + UserHacks_DisablePartialInvalidation = false; UserHacks_DisableSafeFeatures = false; UserHacks_DisableRenderFixes = false; GPUPaletteConversion = false; - PreloadFrameWithGSData = false; - UserHacks_DisablePartialInvalidation = false; UserHacks_DisableDepthSupport = false; UserHacks_CPUFBConversion = false; UserHacks_ReadTCOnClose = false;