mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-10 05:28:56 +02:00
[Configuration] Add Applets Tab to Per-Game Configurations (#3623)
Some games need specific applets to work. For example for local multiplayer to function the Controller Applet must be set as: - MK8D -> Custom Applet - Absolum -> Real Applet Web/Offline Applet: Assasin Creed and some bundled games might need real applet. Overlay Toggle added for Horizon's ingame menu. Thanks PavelBARABANOV for the help with the PR. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3623 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: John <john@eden-emu.dev> Co-committed-by: John <john@eden-emu.dev>
This commit is contained in:
parent
270232e8d6
commit
5279e76534
5 changed files with 22 additions and 14 deletions
|
|
@ -138,29 +138,29 @@ struct Values {
|
||||||
Linkage linkage{};
|
Linkage linkage{};
|
||||||
|
|
||||||
// Applet
|
// Applet
|
||||||
Setting<AppletMode> cabinet_applet_mode{linkage, AppletMode::LLE, "cabinet_applet_mode",
|
SwitchableSetting<AppletMode> cabinet_applet_mode{linkage, AppletMode::LLE, "cabinet_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> controller_applet_mode{linkage, AppletMode::HLE, "controller_applet_mode",
|
SwitchableSetting<AppletMode> controller_applet_mode{linkage, AppletMode::HLE, "controller_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> data_erase_applet_mode{linkage, AppletMode::HLE, "data_erase_applet_mode",
|
Setting<AppletMode> data_erase_applet_mode{linkage, AppletMode::HLE, "data_erase_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> error_applet_mode{linkage, AppletMode::LLE, "error_applet_mode",
|
SwitchableSetting<AppletMode> error_applet_mode{linkage, AppletMode::LLE, "error_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> net_connect_applet_mode{linkage, AppletMode::LLE, "net_connect_applet_mode",
|
Setting<AppletMode> net_connect_applet_mode{linkage, AppletMode::LLE, "net_connect_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> player_select_applet_mode{
|
SwitchableSetting<AppletMode> player_select_applet_mode{
|
||||||
linkage, AppletMode::LLE, "player_select_applet_mode", Category::LibraryApplet};
|
linkage, AppletMode::LLE, "player_select_applet_mode", Category::LibraryApplet};
|
||||||
Setting<AppletMode> swkbd_applet_mode{linkage, AppletMode::HLE, "swkbd_applet_mode",
|
SwitchableSetting<AppletMode> swkbd_applet_mode{linkage, AppletMode::HLE, "swkbd_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> mii_edit_applet_mode{linkage, AppletMode::LLE, "mii_edit_applet_mode",
|
SwitchableSetting<AppletMode> mii_edit_applet_mode{linkage, AppletMode::LLE, "mii_edit_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> web_applet_mode{linkage, AppletMode::HLE, "web_applet_mode",
|
SwitchableSetting<AppletMode> web_applet_mode{linkage, AppletMode::HLE, "web_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> shop_applet_mode{linkage, AppletMode::HLE, "shop_applet_mode",
|
Setting<AppletMode> shop_applet_mode{linkage, AppletMode::HLE, "shop_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> photo_viewer_applet_mode{
|
SwitchableSetting<AppletMode> photo_viewer_applet_mode{
|
||||||
linkage, AppletMode::LLE, "photo_viewer_applet_mode", Category::LibraryApplet};
|
linkage, AppletMode::LLE, "photo_viewer_applet_mode", Category::LibraryApplet};
|
||||||
Setting<AppletMode> offline_web_applet_mode{linkage, AppletMode::LLE, "offline_web_applet_mode",
|
SwitchableSetting<AppletMode> offline_web_applet_mode{linkage, AppletMode::LLE, "offline_web_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> login_share_applet_mode{linkage, AppletMode::HLE, "login_share_applet_mode",
|
Setting<AppletMode> login_share_applet_mode{linkage, AppletMode::HLE, "login_share_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
|
|
@ -168,6 +168,7 @@ struct Values {
|
||||||
linkage, AppletMode::HLE, "wifi_web_auth_applet_mode", Category::LibraryApplet};
|
linkage, AppletMode::HLE, "wifi_web_auth_applet_mode", Category::LibraryApplet};
|
||||||
Setting<AppletMode> my_page_applet_mode{linkage, AppletMode::LLE, "my_page_applet_mode",
|
Setting<AppletMode> my_page_applet_mode{linkage, AppletMode::LLE, "my_page_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
|
SwitchableSetting<bool> enable_overlay{linkage, false, "enable_overlay", Category::LibraryApplet};
|
||||||
|
|
||||||
// Audio
|
// Audio
|
||||||
SwitchableSetting<AudioEngine> sink_id{linkage, AudioEngine::Auto, "output_engine",
|
SwitchableSetting<AudioEngine> sink_id{linkage, AudioEngine::Auto, "output_engine",
|
||||||
|
|
@ -830,8 +831,6 @@ struct Values {
|
||||||
|
|
||||||
// Per-game overrides
|
// Per-game overrides
|
||||||
bool use_squashed_iterated_blend;
|
bool use_squashed_iterated_blend;
|
||||||
|
|
||||||
Setting<bool> enable_overlay{linkage, false, "enable_overlay", Category::Core};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern Values values;
|
extern Values values;
|
||||||
|
|
|
||||||
|
|
@ -426,8 +426,8 @@ void Config::ReadValues() {
|
||||||
ReadServiceValues();
|
ReadServiceValues();
|
||||||
ReadWebServiceValues();
|
ReadWebServiceValues();
|
||||||
ReadMiscellaneousValues();
|
ReadMiscellaneousValues();
|
||||||
ReadLibraryAppletValues();
|
|
||||||
}
|
}
|
||||||
|
ReadLibraryAppletValues();
|
||||||
ReadNetworkValues();
|
ReadNetworkValues();
|
||||||
ReadControlValues();
|
ReadControlValues();
|
||||||
ReadCoreValues();
|
ReadCoreValues();
|
||||||
|
|
@ -524,10 +524,10 @@ void Config::SaveValues() {
|
||||||
SaveDisabledAddOnValues();
|
SaveDisabledAddOnValues();
|
||||||
SaveWebServiceValues();
|
SaveWebServiceValues();
|
||||||
SaveMiscellaneousValues();
|
SaveMiscellaneousValues();
|
||||||
SaveLibraryAppletValues();
|
|
||||||
} else {
|
} else {
|
||||||
LOG_DEBUG(Config, "Saving only generic configuration values");
|
LOG_DEBUG(Config, "Saving only generic configuration values");
|
||||||
}
|
}
|
||||||
|
SaveLibraryAppletValues();
|
||||||
SaveNetworkValues();
|
SaveNetworkValues();
|
||||||
SaveControlValues();
|
SaveControlValues();
|
||||||
SaveCoreValues();
|
SaveCoreValues();
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,10 @@ std::unique_ptr<TranslationMap> InitializeTranslations(QObject* parent)
|
||||||
INSERT(Settings, login_share_applet_mode, tr("Login share"), QString());
|
INSERT(Settings, login_share_applet_mode, tr("Login share"), QString());
|
||||||
INSERT(Settings, wifi_web_auth_applet_mode, tr("Wifi web auth"), QString());
|
INSERT(Settings, wifi_web_auth_applet_mode, tr("Wifi web auth"), QString());
|
||||||
INSERT(Settings, my_page_applet_mode, tr("My page"), QString());
|
INSERT(Settings, my_page_applet_mode, tr("My page"), QString());
|
||||||
INSERT(Settings, enable_overlay, tr("Enable Overlay Applet"), QString());
|
INSERT(Settings,
|
||||||
|
enable_overlay,
|
||||||
|
tr("Enable Overlay Applet"),
|
||||||
|
tr("Enables Horizon\'s built-in overlay applet. Press and hold the home button for 1 second to show it."));
|
||||||
|
|
||||||
// Audio
|
// Audio
|
||||||
INSERT(Settings, sink_id, tr("Output Engine:"), QString());
|
INSERT(Settings, sink_id, tr("Output Engine:"), QString());
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@
|
||||||
#include "yuzu/configuration/configure_per_game_addons.h"
|
#include "yuzu/configuration/configure_per_game_addons.h"
|
||||||
#include "yuzu/configuration/configure_system.h"
|
#include "yuzu/configuration/configure_system.h"
|
||||||
#include "yuzu/configuration/configure_network.h"
|
#include "yuzu/configuration/configure_network.h"
|
||||||
|
#include "yuzu/configuration/configure_applets.h"
|
||||||
#include "qt_common/config/uisettings.h"
|
#include "qt_common/config/uisettings.h"
|
||||||
#include "yuzu/util/util.h"
|
#include "yuzu/util/util.h"
|
||||||
#include "yuzu/vk_device_info.h"
|
#include "yuzu/vk_device_info.h"
|
||||||
|
|
@ -69,6 +70,7 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id_, const std::st
|
||||||
input_tab = std::make_unique<ConfigureInputPerGame>(system_, game_config.get(), this);
|
input_tab = std::make_unique<ConfigureInputPerGame>(system_, game_config.get(), this);
|
||||||
system_tab = std::make_unique<ConfigureSystem>(system_, tab_group, *builder, this);
|
system_tab = std::make_unique<ConfigureSystem>(system_, tab_group, *builder, this);
|
||||||
network_tab = std::make_unique<ConfigureNetwork>(system_, this);
|
network_tab = std::make_unique<ConfigureNetwork>(system_, this);
|
||||||
|
applets_tab = std::make_unique<ConfigureApplets>(system_, tab_group, *builder, this);
|
||||||
|
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
|
@ -81,6 +83,7 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id_, const std::st
|
||||||
ui->tabWidget->addTab(audio_tab.get(), tr("Audio"));
|
ui->tabWidget->addTab(audio_tab.get(), tr("Audio"));
|
||||||
ui->tabWidget->addTab(input_tab.get(), tr("Input Profiles"));
|
ui->tabWidget->addTab(input_tab.get(), tr("Input Profiles"));
|
||||||
ui->tabWidget->addTab(network_tab.get(), tr("Network"));
|
ui->tabWidget->addTab(network_tab.get(), tr("Network"));
|
||||||
|
ui->tabWidget->addTab(applets_tab.get(), tr("Applets"));
|
||||||
|
|
||||||
setFocusPolicy(Qt::ClickFocus);
|
setFocusPolicy(Qt::ClickFocus);
|
||||||
setWindowTitle(tr("Properties"));
|
setWindowTitle(tr("Properties"));
|
||||||
|
|
@ -108,6 +111,7 @@ void ConfigurePerGame::ApplyConfiguration() {
|
||||||
addons_tab->ApplyConfiguration();
|
addons_tab->ApplyConfiguration();
|
||||||
input_tab->ApplyConfiguration();
|
input_tab->ApplyConfiguration();
|
||||||
network_tab->ApplyConfiguration();
|
network_tab->ApplyConfiguration();
|
||||||
|
applets_tab->ApplyConfiguration();
|
||||||
|
|
||||||
if (Settings::IsDockedMode() && Settings::values.players.GetValue()[0].controller_type ==
|
if (Settings::IsDockedMode() && Settings::values.players.GetValue()[0].controller_type ==
|
||||||
Settings::ControllerType::Handheld) {
|
Settings::ControllerType::Handheld) {
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ class ConfigureGraphicsExtensions;
|
||||||
class ConfigureInputPerGame;
|
class ConfigureInputPerGame;
|
||||||
class ConfigureSystem;
|
class ConfigureSystem;
|
||||||
class ConfigureNetwork;
|
class ConfigureNetwork;
|
||||||
|
class ConfigureApplets;
|
||||||
|
|
||||||
class QGraphicsScene;
|
class QGraphicsScene;
|
||||||
class QStandardItem;
|
class QStandardItem;
|
||||||
|
|
@ -93,4 +94,5 @@ private:
|
||||||
std::unique_ptr<ConfigureInputPerGame> input_tab;
|
std::unique_ptr<ConfigureInputPerGame> input_tab;
|
||||||
std::unique_ptr<ConfigureSystem> system_tab;
|
std::unique_ptr<ConfigureSystem> system_tab;
|
||||||
std::unique_ptr<ConfigureNetwork> network_tab;
|
std::unique_ptr<ConfigureNetwork> network_tab;
|
||||||
|
std::unique_ptr<ConfigureApplets> applets_tab;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue