mirror of https://github.com/PCSX2/pcsx2.git
Qt: Show disabled hw fixes in OSD
This commit is contained in:
parent
e718a4f843
commit
9f8f0262c7
|
@ -439,8 +439,85 @@ u32 GameDatabaseSchema::GameEntry::applyGameFixes(Pcsx2Config& config, bool appl
|
||||||
return num_applied_fixes;
|
return num_applied_fixes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GameDatabaseSchema::GameEntry::configMatchesHWFix(const Pcsx2Config::GSOptions& config, GSHWFixId id, int value) const
|
||||||
|
{
|
||||||
|
switch (id)
|
||||||
|
{
|
||||||
|
case GSHWFixId::AutoFlush:
|
||||||
|
return (static_cast<int>(config.UserHacks_AutoFlush) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::ConservativeFramebuffer:
|
||||||
|
return (static_cast<int>(config.ConservativeFramebuffer) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::CPUFramebufferConversion:
|
||||||
|
return (static_cast<int>(config.UserHacks_CPUFBConversion) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::DisableDepthSupport:
|
||||||
|
return (static_cast<int>(config.UserHacks_DisableDepthSupport) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::WrapGSMem:
|
||||||
|
return (static_cast<int>(config.WrapGSMem) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::PreloadFrameData:
|
||||||
|
return (static_cast<int>(config.PreloadFrameWithGSData) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::DisablePartialInvalidation:
|
||||||
|
return (static_cast<int>(config.UserHacks_DisablePartialInvalidation) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::TextureInsideRT:
|
||||||
|
return (static_cast<int>(config.UserHacks_TextureInsideRt) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::AlignSprite:
|
||||||
|
return (config.UpscaleMultiplier == 1 || static_cast<int>(config.UserHacks_AlignSpriteX) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::MergeSprite:
|
||||||
|
return (config.UpscaleMultiplier == 1 || static_cast<int>(config.UserHacks_MergePPSprite) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::WildArmsHack:
|
||||||
|
return (config.UpscaleMultiplier == 1 || static_cast<int>(config.UserHacks_WildHack) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::PointListPalette:
|
||||||
|
return (static_cast<int>(config.PointListPalette) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::Mipmap:
|
||||||
|
return (config.HWMipmap == HWMipmapLevel::Automatic || static_cast<int>(config.HWMipmap) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::TrilinearFiltering:
|
||||||
|
return (config.UserHacks_TriFilter == TriFiltering::Automatic || static_cast<int>(config.UserHacks_TriFilter) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::SkipDrawStart:
|
||||||
|
return (config.SkipDrawStart == value);
|
||||||
|
|
||||||
|
case GSHWFixId::SkipDrawEnd:
|
||||||
|
return (config.SkipDrawEnd == value);
|
||||||
|
|
||||||
|
case GSHWFixId::HalfBottomOverride:
|
||||||
|
return (config.UserHacks_HalfBottomOverride == value);
|
||||||
|
|
||||||
|
case GSHWFixId::HalfPixelOffset:
|
||||||
|
return (config.UpscaleMultiplier == 1 || config.UserHacks_HalfPixelOffset == value);
|
||||||
|
|
||||||
|
case GSHWFixId::RoundSprite:
|
||||||
|
return (config.UpscaleMultiplier == 1 || config.UserHacks_RoundSprite == value);
|
||||||
|
|
||||||
|
case GSHWFixId::TexturePreloading:
|
||||||
|
return (static_cast<int>(config.TexturePreloading) <= value);
|
||||||
|
|
||||||
|
case GSHWFixId::Deinterlace:
|
||||||
|
return (config.InterlaceMode == GSInterlaceMode::Automatic || static_cast<int>(config.InterlaceMode) == value);
|
||||||
|
|
||||||
|
case GSHWFixId::CPUSpriteRenderBW:
|
||||||
|
return (config.UserHacks_CPUSpriteRenderBW == value);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
u32 GameDatabaseSchema::GameEntry::applyGSHardwareFixes(Pcsx2Config::GSOptions& config) const
|
u32 GameDatabaseSchema::GameEntry::applyGSHardwareFixes(Pcsx2Config::GSOptions& config) const
|
||||||
{
|
{
|
||||||
|
std::string disabled_fixes;
|
||||||
|
|
||||||
// Only apply GS HW fixes if the user hasn't manually enabled HW fixes.
|
// Only apply GS HW fixes if the user hasn't manually enabled HW fixes.
|
||||||
const bool apply_auto_fixes = !config.ManualUserHacks;
|
const bool apply_auto_fixes = !config.ManualUserHacks;
|
||||||
if (!apply_auto_fixes)
|
if (!apply_auto_fixes)
|
||||||
|
@ -451,7 +528,11 @@ u32 GameDatabaseSchema::GameEntry::applyGSHardwareFixes(Pcsx2Config::GSOptions&
|
||||||
{
|
{
|
||||||
if (isUserHackHWFix(id) && !apply_auto_fixes)
|
if (isUserHackHWFix(id) && !apply_auto_fixes)
|
||||||
{
|
{
|
||||||
|
if (configMatchesHWFix(config, id, value))
|
||||||
|
continue;
|
||||||
|
|
||||||
PatchesCon->Warning("[GameDB] Skipping GS Hardware Fix: %s to [mode=%d]", getHWFixName(id), value);
|
PatchesCon->Warning("[GameDB] Skipping GS Hardware Fix: %s to [mode=%d]", getHWFixName(id), value);
|
||||||
|
fmt::format_to(std::back_inserter(disabled_fixes), "{} {} = {}", disabled_fixes.empty() ? " " : "\n ", getHWFixName(id), value);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,6 +664,20 @@ u32 GameDatabaseSchema::GameEntry::applyGSHardwareFixes(Pcsx2Config::GSOptions&
|
||||||
// fixup skipdraw range just in case the db has a bad range (but the linter should catch this)
|
// fixup skipdraw range just in case the db has a bad range (but the linter should catch this)
|
||||||
config.SkipDrawEnd = std::max(config.SkipDrawStart, config.SkipDrawEnd);
|
config.SkipDrawEnd = std::max(config.SkipDrawStart, config.SkipDrawEnd);
|
||||||
|
|
||||||
|
#ifdef PCSX2_CORE
|
||||||
|
if (!disabled_fixes.empty())
|
||||||
|
{
|
||||||
|
Host::AddKeyedOSDMessage("HWFixesWarning",
|
||||||
|
fmt::format("Manual GS hardware renderer fixes are enabled, automatic fixes were not applied:\n{}",
|
||||||
|
disabled_fixes),
|
||||||
|
10.0f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Host::RemoveKeyedOSDMessage("HWFixesWarning");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return num_applied_fixes;
|
return num_applied_fixes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -112,6 +112,9 @@ namespace GameDatabaseSchema
|
||||||
|
|
||||||
/// Applies GS hardware fixes to an existing config. Returns the number of applied fixes.
|
/// Applies GS hardware fixes to an existing config. Returns the number of applied fixes.
|
||||||
u32 applyGSHardwareFixes(Pcsx2Config::GSOptions& config) const;
|
u32 applyGSHardwareFixes(Pcsx2Config::GSOptions& config) const;
|
||||||
|
|
||||||
|
/// Returns true if the current config value for the specified hw fix id matches the value.
|
||||||
|
bool configMatchesHWFix(const Pcsx2Config::GSOptions& config, GSHWFixId id, int value) const;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue