From 9bdf23cba756455c1081b7a6afac6aaa52a3ad87 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sat, 18 May 2024 14:07:05 +1000 Subject: [PATCH] System: Load game settings from first disc of multi-disc games --- src/core/system.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/system.cpp b/src/core/system.cpp index 5c2665df9..6959b8091 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -952,8 +952,11 @@ std::optional System::GetRegionForPath(const char* image_path) std::string System::GetGameSettingsPath(std::string_view game_serial) { - const std::string sanitized_serial(Path::SanitizeFileName(game_serial)); - return Path::Combine(EmuFolders::GameSettings, fmt::format("{}.ini", sanitized_serial)); + // multi-disc games => always use the first disc + const GameDatabase::Entry* entry = GameDatabase::GetEntryForSerial(game_serial); + const std::string_view serial_for_path = + (entry && !entry->disc_set_serials.empty()) ? entry->disc_set_serials.front() : game_serial; + return Path::Combine(EmuFolders::GameSettings, fmt::format("{}.ini", Path::SanitizeFileName(serial_for_path))); } std::string System::GetInputProfilePath(std::string_view name)