diff --git a/src/core/fullscreenui_settings.cpp b/src/core/fullscreenui_settings.cpp index d05638f18..55bce4049 100644 --- a/src/core/fullscreenui_settings.cpp +++ b/src/core/fullscreenui_settings.cpp @@ -1647,7 +1647,9 @@ bool FullscreenUI::SwitchToGameSettingsForPath(const std::string& path, Settings { auto lock = GameList::GetLock(); const GameList::Entry* entry = !path.empty() ? GameList::GetEntryForPath(path) : nullptr; - if (!entry || entry->serial.empty()) + + // playlists will always contain the first disc's serial, so use the current game instead + if (!entry || entry->serial.empty() || entry->type == GameList::EntryType::Playlist) { Host::RunOnCoreThread([page]() { Error error; diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp index aac6d51f9..628277ffc 100644 --- a/src/duckstation-qt/mainwindow.cpp +++ b/src/duckstation-qt/mainwindow.cpp @@ -2782,7 +2782,9 @@ void MainWindow::openGamePropertiesForCurrentGame(const char* category /* = null // show for first disc instead entry = GameList::GetFirstDiscSetMember(entry->dbentry->disc_set); } - if (entry) + + // playlists will always contain the first disc's serial, so use the current game instead + if (entry && entry->type != GameList::EntryType::Playlist) SettingsWindow::openGamePropertiesDialog(entry, category); else g_core_thread->openGamePropertiesForCurrentGame(category ? QString::fromUtf8(category) : QString());