aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2019-04-23 08:35:12 -0400
committerZach Hilman <zachhilman@gmail.com>2019-09-21 16:43:10 -0400
commit2590b5a9ea51f6868cac4322b2e4984d65656541 (patch)
treec7d2be3ecac40031e3b34950710b0d234e7e0385
parent918119ae1b67ac96d91945660d71b530475204bc (diff)
settings: Add options for managing gamecard emulation
-rw-r--r--src/core/settings.h5
-rw-r--r--src/yuzu/configuration/config.cpp36
-rw-r--r--src/yuzu_cmd/config.cpp14
-rw-r--r--src/yuzu_cmd/default_ini.h14
4 files changed, 67 insertions, 2 deletions
diff --git a/src/core/settings.h b/src/core/settings.h
index 51363fc516..47bddfb30d 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -407,8 +407,9 @@ struct Values {
// Data Storage
bool use_virtual_sd;
- std::string nand_dir;
- std::string sdmc_dir;
+ bool gamecard_inserted;
+ bool gamecard_current_game;
+ std::string gamecard_path;
NANDTotalSize nand_total_size;
NANDSystemSize nand_system_size;
NANDUserSize nand_user_size;
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index bcd0c0b1bb..8113060d05 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -459,6 +459,30 @@ void Config::ReadDataStorageValues() {
QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)))
.toString()
.toStdString());
+ FileUtil::GetUserPath(
+ FileUtil::UserPath::LoadDir,
+ qt_config
+ ->value("load_directory",
+ QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir)))
+ .toString()
+ .toStdString());
+ FileUtil::GetUserPath(
+ FileUtil::UserPath::DumpDir,
+ qt_config
+ ->value("dump_directory",
+ QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::DumpDir)))
+ .toString()
+ .toStdString());
+ FileUtil::GetUserPath(
+ FileUtil::UserPath::CacheDir,
+ qt_config
+ ->value("cache_directory",
+ QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir)))
+ .toString()
+ .toStdString());
+ Settings::values.gamecard_inserted = ReadSetting("gamecard_inserted", false).toBool();
+ Settings::values.gamecard_current_game = ReadSetting("gamecard_current_game", false).toBool();
+ Settings::values.gamecard_path = ReadSetting("gamecard_path", "").toString().toStdString();
Settings::values.nand_total_size = static_cast<Settings::NANDTotalSize>(
ReadSetting(QStringLiteral("nand_total_size"), static_cast<u64>(Settings::NANDTotalSize::S29_1GB))
.toULongLong());
@@ -886,6 +910,18 @@ void Config::SaveDataStorageValues() {
WriteSetting(QStringLiteral("sdmc_directory"),
QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)),
QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)));
+ WriteSetting(QStringLiteral("load_directory"),
+ QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir)),
+ QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir)));
+ WriteSetting(QStringLiteral("dump_directory"),
+ QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::DumpDir)),
+ QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::DumpDir)));
+ WriteSetting(QStringLiteral("cache_directory"),
+ QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir)),
+ QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir)));
+ WriteSetting(QStringLiteral("gamecard_inserted"), Settings::values.gamecard_inserted, false);
+ WriteSetting(QStringLiteral("gamecard_current_game"), Settings::values.gamecard_current_game, false);
+ WriteSetting(QStringLiteral("gamecard_path"), QString::fromStdString(Settings::values.gamecard_path), "");
WriteSetting(QStringLiteral("nand_total_size"), static_cast<u64>(Settings::values.nand_total_size),
static_cast<u64>(Settings::NANDTotalSize::S29_1GB));
WriteSetting(QStringLiteral("nand_user_size"), static_cast<u64>(Settings::values.nand_user_size),
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index 60e2b2d1b1..d82438502d 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -316,6 +316,20 @@ void Config::ReadValues() {
FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir,
sdl2_config->Get("Data Storage", "sdmc_directory",
FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)));
+ FileUtil::GetUserPath(FileUtil::UserPath::LoadDir,
+ sdl2_config->Get("Data Storage", "load_directory",
+ FileUtil::GetUserPath(FileUtil::UserPath::LoadDir)));
+ FileUtil::GetUserPath(FileUtil::UserPath::DumpDir,
+ sdl2_config->Get("Data Storage", "dump_directory",
+ FileUtil::GetUserPath(FileUtil::UserPath::DumpDir)));
+ FileUtil::GetUserPath(FileUtil::UserPath::CacheDir,
+ sdl2_config->Get("Data Storage", "cache_directory",
+ FileUtil::GetUserPath(FileUtil::UserPath::CacheDir)));
+ Settings::values.gamecard_inserted =
+ sdl2_config->GetBoolean("Data Storage", "gamecard_inserted", false);
+ Settings::values.gamecard_current_game =
+ sdl2_config->GetBoolean("Data Storage", "gamecard_current_game", false);
+ Settings::values.gamecard_path = sdl2_config->Get("Data Storage", "gamecard_path", "");
Settings::values.nand_total_size = static_cast<Settings::NANDTotalSize>(sdl2_config->GetInteger(
"Data Storage", "nand_total_size", static_cast<long>(Settings::NANDTotalSize::S29_1GB)));
Settings::values.nand_user_size = static_cast<Settings::NANDUserSize>(sdl2_config->GetInteger(
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h
index f9f2445226..e66d2f89b4 100644
--- a/src/yuzu_cmd/default_ini.h
+++ b/src/yuzu_cmd/default_ini.h
@@ -173,6 +173,20 @@ volume =
# 1 (default): Yes, 0: No
use_virtual_sd =
+# Whether or not to enable gamecard emulation
+# 1: Yes, 0 (default): No
+gamecard_inserted =
+
+# Whether or not the gamecard should be emulated as the current game
+# If 'gamecard_inserted' is 0 this setting is irrelevant
+# 1: Yes, 0 (default): No
+gamecard_current_game =
+
+# Path to an XCI file to use as the gamecard
+# If 'gamecard_inserted' is 0 this setting is irrelevant
+# If 'gamecard_current_game' is 1 this setting is irrelevant
+gamecard_path =
+
[System]
# Whether the system is docked
# 1: Yes, 0 (default): No