diff --git a/src/core/fullscreen_ui.cpp b/src/core/fullscreen_ui.cpp index 87f21c77b..8865b6d30 100644 --- a/src/core/fullscreen_ui.cpp +++ b/src/core/fullscreen_ui.cpp @@ -4046,19 +4046,24 @@ void FullscreenUI::DrawBIOSSettingsPage() options.emplace_back(std::move(path), selected); } - OpenChoiceDialog(title, false, std::move(options), - [game_settings, i](s32 index, const std::string& path, bool checked) { - if (index < 0) - return; + OpenChoiceDialog( + title, false, std::move(options), [game_settings, i](s32 index, const std::string& path, bool checked) { + if (index < 0) + return; - auto lock = Host::GetSettingsLock(); - SettingsInterface* bsi = GetEditingSettingsInterface(game_settings); - if (game_settings && index == 0) - bsi->DeleteValue("BIOS", config_keys[i]); - else - bsi->SetStringValue("BIOS", config_keys[i], path.c_str()); - SetSettingsChanged(bsi); - }); + auto lock = Host::GetSettingsLock(); + SettingsInterface* bsi = GetEditingSettingsInterface(game_settings); + if (game_settings && index == 0) + { + bsi->DeleteValue("BIOS", config_keys[i]); + } + else + { + bsi->SetStringValue("BIOS", config_keys[i], + (index == static_cast(BoolToUInt32(game_settings))) ? "" : path.c_str()); + } + SetSettingsChanged(bsi); + }); } }