GameDatabase: Add traits for disabling disc speedup

This commit is contained in:
Stenzek 2025-05-17 18:12:22 +10:00
parent c729515118
commit a6b59f9efe
No known key found for this signature in database
2 changed files with 22 additions and 0 deletions

View File

@ -85,6 +85,8 @@ static constexpr const std::array s_trait_names = {
"ForceFullBoot",
"DisableAutoAnalogMode",
"DisableMultitap",
"DisableCDROMReadSpeedup",
"DisableCDROMSeekSpeedup",
"DisableTrueColor",
"DisableFullTrueColor",
"DisableUpscaling",
@ -118,6 +120,8 @@ static constexpr const std::array s_trait_display_names = {
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Force Full Boot", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable Automatic Analog Mode", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable Multitap", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable CD-ROM Read Speedup", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable CD-ROM Seek Speedup", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable True Color", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable Full True Color", "GameDatabase::Trait"),
TRANSLATE_DISAMBIG_NOOP("GameDatabase", "Disable Upscaling", "GameDatabase::Trait"),
@ -476,6 +480,22 @@ void GameDatabase::Entry::ApplySettings(Settings& settings, bool display_osd_mes
settings.multitap_mode = MultitapMode::Disabled;
}
if (HasTrait(Trait::DisableCDROMReadSpeedup))
{
if (settings.cdrom_read_speedup != 1)
APPEND_MESSAGE(TRANSLATE_SV("GameDatabase", "CD-ROM read speedup disabled."));
settings.cdrom_read_speedup = 1;
}
if (HasTrait(Trait::DisableCDROMSeekSpeedup))
{
if (settings.cdrom_seek_speedup != 1)
APPEND_MESSAGE(TRANSLATE_SV("GameDatabase", "CD-ROM seek speedup disabled."));
settings.cdrom_seek_speedup = 1;
}
if (display_crop_mode.has_value())
{
if (display_osd_messages && settings.display_crop_mode != display_crop_mode.value())

View File

@ -43,6 +43,8 @@ enum class Trait : u32
ForceFullBoot,
DisableAutoAnalogMode,
DisableMultitap,
DisableCDROMReadSpeedup,
DisableCDROMSeekSpeedup,
DisableTrueColor,
DisableFullTrueColor,
DisableUpscaling,