diff --git a/es-app/src/guis/GuiGamelistFilter.cpp b/es-app/src/guis/GuiGamelistFilter.cpp index 67fed267b..941b6f131 100644 --- a/es-app/src/guis/GuiGamelistFilter.cpp +++ b/es-app/src/guis/GuiGamelistFilter.cpp @@ -151,6 +151,11 @@ void GuiGamelistFilter::addFiltersToMenu() it != decls.cend(); it++) { FilterIndexType type = (*it).type; // Type of filter. + // Don't include the alternative emulators if the corresponding setting has been disabled. + if (type == ALTEMULATOR_FILTER && + !Settings::getInstance()->getBool("AlternativeEmulatorPerGame")) + continue; + std::map* allKeys = (*it).allIndexKeys; bool exclusiveSelect = false; diff --git a/es-app/src/guis/GuiMenu.cpp b/es-app/src/guis/GuiMenu.cpp index acb13f325..06d482d66 100644 --- a/es-app/src/guis/GuiMenu.cpp +++ b/es-app/src/guis/GuiMenu.cpp @@ -1069,6 +1069,8 @@ void GuiMenu::openOtherOptions() Settings::getInstance()->setBool("AlternativeEmulatorPerGame", alternativeEmulatorPerGame->getState()); s->setNeedsSaving(); + s->setNeedsReloading(); + s->setInvalidateCachedBackground(); } }); diff --git a/es-core/src/components/BadgeComponent.cpp b/es-core/src/components/BadgeComponent.cpp index 82045ce8b..f4b21c7a4 100644 --- a/es-core/src/components/BadgeComponent.cpp +++ b/es-core/src/components/BadgeComponent.cpp @@ -104,6 +104,13 @@ void BadgeComponent::setBadges(const std::vector& badges) [badge](FlexboxComponent::FlexboxItem item) { return item.label == badge.badgeType; }); if (it != mFlexboxItems.end()) { + + // Don't show the alternative emulator badge if the corresponding setting has been + // disabled. + if (badge.badgeType == "altemulator" && + !Settings::getInstance()->getBool("AlternativeEmulatorPerGame")) + continue; + it->visible = true; if (badge.gameController != "" && badge.gameController != it->overlayImage.getTexture()->getTextureFilePath()) {