summaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/configure_per_game.cpp
diff options
context:
space:
mode:
authorlat9nq <22451773+lat9nq@users.noreply.github.com>2021-05-25 20:06:06 -0400
committerlat9nq <22451773+lat9nq@users.noreply.github.com>2021-05-25 20:10:41 -0400
commitcfb9bcbe422e02a5274b5edbefdbfc6c026f185a (patch)
treed16b8f9414ebe503cd757b3fe2f1f37683ca6bab /src/yuzu/configuration/configure_per_game.cpp
parent065867e2c24e9856c360fc2d6b9a86c92aedc43e (diff)
yuzu qt: Handle per-game configs for title id 0
Currently with programs that have a 0 title id, yuzu loads the custom configuration 0000000000000000.ini for per-game configs. This is not ideal since many homebrews share this id. Instead for these programs, we load a config that is simply the file name and `.ini` appended to it.
Diffstat (limited to 'src/yuzu/configuration/configure_per_game.cpp')
-rw-r--r--src/yuzu/configuration/configure_per_game.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/yuzu/configuration/configure_per_game.cpp b/src/yuzu/configuration/configure_per_game.cpp
index 3e13bd438..a7b7698f2 100644
--- a/src/yuzu/configuration/configure_per_game.cpp
+++ b/src/yuzu/configuration/configure_per_game.cpp
@@ -4,6 +4,7 @@
#include <algorithm>
#include <memory>
+#include <string>
#include <utility>
#include <QCheckBox>
@@ -14,6 +15,7 @@
#include <QTimer>
#include <QTreeView>
+#include "common/fs/path_util.h"
#include "core/core.h"
#include "core/file_sys/control_metadata.h"
#include "core/file_sys/patch_manager.h"
@@ -26,10 +28,15 @@
#include "yuzu/uisettings.h"
#include "yuzu/util/util.h"
-ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id)
+ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id, std::string_view file_name)
: QDialog(parent), ui(std::make_unique<Ui::ConfigurePerGame>()), title_id(title_id) {
- game_config = std::make_unique<Config>(fmt::format("{:016X}", title_id),
- Config::ConfigType::PerGameConfig);
+ if (title_id == 0) {
+ game_config = std::make_unique<Config>(Common::FS::GetFilename(file_name),
+ Config::ConfigType::PerGameConfig);
+ } else {
+ game_config = std::make_unique<Config>(fmt::format("{:016X}", title_id),
+ Config::ConfigType::PerGameConfig);
+ }
Settings::SetConfiguringGlobal(false);