GameDatabase: Add three missing settings to compatibility report

This commit is contained in:
Davide Pesavento 2025-06-15 21:51:43 -04:00 committed by Connor McLaughlin
parent 69399f3449
commit 2edcb20930
3 changed files with 24 additions and 3 deletions

View File

@ -97,7 +97,12 @@ static inline std::optional<T> GetOptionalTFromObject(const ryml::ConstNodeRef&
ret = StringUtil::FromChars<T>(to_stringview(val));
if (!ret.has_value())
{
if constexpr (std::is_floating_point_v<T>)
if constexpr (std::is_same_v<T, bool>)
{
Log::FastWrite(Log::Channel::Log, Log::Level::Error, Log::Color::StrongOrange,
"Unexpected non-bool value in {}", key);
}
else if constexpr (std::is_floating_point_v<T>)
{
Log::FastWrite(Log::Channel::Log, Log::Level::Error, Log::Color::StrongOrange,
"Unexpected non-float value in {}", key);

View File

@ -850,6 +850,16 @@ static inline void AppendSettingsHeading(SmallStringBase& str, bool& heading)
}
}
static inline void AppendBoolSetting(SmallStringBase& str, bool& heading, std::string_view title,
const std::optional<bool>& value)
{
if (!value.has_value())
return;
AppendSettingsHeading(str, heading);
str.append_format(" - {}: {}\n", title, value.value() ? "Enabled" : "Disabled");
}
template<typename T>
static inline void AppendIntegerSetting(SmallStringBase& str, bool& heading, std::string_view title,
const std::optional<T>& value)
@ -944,11 +954,17 @@ std::string GameDatabase::Entry::GenerateCompatibilityReport() const
&Settings::GetDisplayDeinterlacingModeDisplayName, display_deinterlacing_mode);
AppendIntegerSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "DMA Max Slice Ticks"), dma_max_slice_ticks);
AppendIntegerSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "DMA Halt Ticks"), dma_halt_ticks);
AppendIntegerSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "CD-ROM Max Seek Speedup Cycles"),
cdrom_max_seek_speedup_cycles);
AppendIntegerSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "CD-ROM Max Read Speedup Cycles"),
cdrom_max_read_speedup_cycles);
AppendIntegerSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "GPU FIFO Size"), gpu_fifo_size);
AppendIntegerSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "GPU Max Runahead"), gpu_max_run_ahead);
AppendFloatSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "GPU PGXP Tolerance"), gpu_pgxp_tolerance);
AppendFloatSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "GPU PGXP Depth Threshold"),
gpu_pgxp_depth_threshold);
AppendBoolSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "GPU PGXP Preserve Projection Precision"),
gpu_pgxp_preserve_proj_fp);
AppendEnumSetting(ret, settings_heading, TRANSLATE_SV("GameDatabase", "GPU Line Detect Mode"),
&Settings::GetLineDetectModeDisplayName, gpu_line_detect_mode);

View File

@ -263,7 +263,7 @@ void AdvancedSettingsWidget::addTweakOptions()
Settings::DEFAULT_DMA_HALT_TICKS, tr(" cycles"));
addIntRangeTweakOption(m_dialog, m_ui.tweakOptionTable, tr("GPU FIFO Size"), "Hacks", "GPUFIFOSize", 16, 4096,
Settings::DEFAULT_GPU_FIFO_SIZE, tr(" words"));
addIntRangeTweakOption(m_dialog, m_ui.tweakOptionTable, tr("GPU Max Run-Ahead"), "Hacks", "GPUMaxRunAhead", 0, 1000,
addIntRangeTweakOption(m_dialog, m_ui.tweakOptionTable, tr("GPU Max Runahead"), "Hacks", "GPUMaxRunAhead", 0, 1000,
Settings::DEFAULT_GPU_MAX_RUN_AHEAD, tr(" cycles"));
addBooleanTweakOption(m_dialog, m_ui.tweakOptionTable, tr("Enable Recompiler Memory Exceptions"), "CPU",
@ -322,7 +322,7 @@ void AdvancedSettingsWidget::onResetToDefaultClicked()
setIntRangeTweakOption(m_ui.tweakOptionTable, i++,
static_cast<int>(Settings::DEFAULT_GPU_FIFO_SIZE)); // GPU FIFO size
setIntRangeTweakOption(m_ui.tweakOptionTable, i++,
static_cast<int>(Settings::DEFAULT_GPU_MAX_RUN_AHEAD)); // GPU max run-ahead
static_cast<int>(Settings::DEFAULT_GPU_MAX_RUN_AHEAD)); // GPU max runahead
setBooleanTweakOption(m_ui.tweakOptionTable, i++, false); // Recompiler memory exceptions
setBooleanTweakOption(m_ui.tweakOptionTable, i++, true); // Recompiler block linking
setChoiceTweakOption(m_ui.tweakOptionTable, i++,