summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Zach Hilman2019-04-23 08:34:19 -0400
committerGravatar Zach Hilman2019-09-21 16:43:10 -0400
commit918119ae1b67ac96d91945660d71b530475204bc (patch)
treeeeeee5ab040bcb1dd6464fc12929efc341c467b6 /src
parentyuzu: Port old usages of Filesystem namespace to FilesystemController (diff)
downloadyuzu-918119ae1b67ac96d91945660d71b530475204bc.tar.gz
yuzu-918119ae1b67ac96d91945660d71b530475204bc.tar.xz
yuzu-918119ae1b67ac96d91945660d71b530475204bc.zip
settings: Add options for setting storage sizes
Diffstat (limited to 'src')
-rw-r--r--src/core/settings.h29
-rw-r--r--src/yuzu/configuration/config.cpp20
-rw-r--r--src/yuzu_cmd/config.cpp9
3 files changed, 57 insertions, 1 deletions
diff --git a/src/core/settings.h b/src/core/settings.h
index d4b70ec4c..51363fc51 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -346,6 +346,31 @@ struct TouchscreenInput {
346 u32 rotation_angle; 346 u32 rotation_angle;
347}; 347};
348 348
349enum class NANDTotalSize : u64 {
350 S29_1GB = 0x747C00000ULL,
351};
352
353enum class NANDUserSize : u64 {
354 S26GB = 0x680000000ULL,
355};
356
357enum class NANDSystemSize : u64 {
358 S2_5GB = 0xA0000000,
359};
360
361enum class SDMCSize : u64 {
362 S1GB = 0x40000000,
363 S2GB = 0x80000000,
364 S4GB = 0x100000000ULL,
365 S8GB = 0x200000000ULL,
366 S16GB = 0x400000000ULL,
367 S32GB = 0x800000000ULL,
368 S64GB = 0x1000000000ULL,
369 S128GB = 0x2000000000ULL,
370 S256GB = 0x4000000000ULL,
371 S1TB = 0x10000000000ULL,
372};
373
349struct Values { 374struct Values {
350 // System 375 // System
351 bool use_docked_mode; 376 bool use_docked_mode;
@@ -384,6 +409,10 @@ struct Values {
384 bool use_virtual_sd; 409 bool use_virtual_sd;
385 std::string nand_dir; 410 std::string nand_dir;
386 std::string sdmc_dir; 411 std::string sdmc_dir;
412 NANDTotalSize nand_total_size;
413 NANDSystemSize nand_system_size;
414 NANDUserSize nand_user_size;
415 SDMCSize sdmc_size;
387 416
388 // Renderer 417 // Renderer
389 float resolution_factor; 418 float resolution_factor;
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 3f54f54fb..bcd0c0b1b 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -459,6 +459,17 @@ void Config::ReadDataStorageValues() {
459 QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))) 459 QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)))
460 .toString() 460 .toString()
461 .toStdString()); 461 .toStdString());
462 Settings::values.nand_total_size = static_cast<Settings::NANDTotalSize>(
463 ReadSetting(QStringLiteral("nand_total_size"), static_cast<u64>(Settings::NANDTotalSize::S29_1GB))
464 .toULongLong());
465 Settings::values.nand_user_size = static_cast<Settings::NANDUserSize>(
466 ReadSetting(QStringLiteral("nand_user_size"), static_cast<u64>(Settings::NANDUserSize::S26GB))
467 .toULongLong());
468 Settings::values.nand_system_size = static_cast<Settings::NANDSystemSize>(
469 ReadSetting(QStringLiteral("nand_system_size"), static_cast<u64>(Settings::NANDSystemSize::S2_5GB))
470 .toULongLong());
471 Settings::values.sdmc_size = static_cast<Settings::SDMCSize>(
472 ReadSetting(QStringLiteral("sdmc_size"), static_cast<u64>(Settings::SDMCSize::S16GB)).toULongLong());
462 473
463 qt_config->endGroup(); 474 qt_config->endGroup();
464} 475}
@@ -875,7 +886,14 @@ void Config::SaveDataStorageValues() {
875 WriteSetting(QStringLiteral("sdmc_directory"), 886 WriteSetting(QStringLiteral("sdmc_directory"),
876 QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)), 887 QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)),
877 QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))); 888 QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)));
878 889 WriteSetting(QStringLiteral("nand_total_size"), static_cast<u64>(Settings::values.nand_total_size),
890 static_cast<u64>(Settings::NANDTotalSize::S29_1GB));
891 WriteSetting(QStringLiteral("nand_user_size"), static_cast<u64>(Settings::values.nand_user_size),
892 static_cast<u64>(Settings::NANDUserSize::S26GB));
893 WriteSetting(QStringLiteral("nand_system_size"), static_cast<u64>(Settings::values.nand_system_size),
894 static_cast<u64>(Settings::NANDSystemSize::S2_5GB));
895 WriteSetting(QStringLiteral("sdmc_size"), static_cast<u64>(Settings::values.sdmc_size),
896 static_cast<u64>(Settings::SDMCSize::S16GB));
879 qt_config->endGroup(); 897 qt_config->endGroup();
880} 898}
881 899
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index 5cadfd191..60e2b2d1b 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -316,6 +316,15 @@ void Config::ReadValues() {
316 FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir, 316 FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir,
317 sdl2_config->Get("Data Storage", "sdmc_directory", 317 sdl2_config->Get("Data Storage", "sdmc_directory",
318 FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))); 318 FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)));
319 Settings::values.nand_total_size = static_cast<Settings::NANDTotalSize>(sdl2_config->GetInteger(
320 "Data Storage", "nand_total_size", static_cast<long>(Settings::NANDTotalSize::S29_1GB)));
321 Settings::values.nand_user_size = static_cast<Settings::NANDUserSize>(sdl2_config->GetInteger(
322 "Data Storage", "nand_user_size", static_cast<long>(Settings::NANDUserSize::S26GB)));
323 Settings::values.nand_system_size = static_cast<Settings::NANDSystemSize>(
324 sdl2_config->GetInteger("Data Storage", "nand_system_size",
325 static_cast<long>(Settings::NANDSystemSize::S2_5GB)));
326 Settings::values.sdmc_size = static_cast<Settings::SDMCSize>(sdl2_config->GetInteger(
327 "Data Storage", "sdmc_size", static_cast<long>(Settings::SDMCSize::S16GB)));
319 328
320 // System 329 // System
321 Settings::values.use_docked_mode = sdl2_config->GetBoolean("System", "use_docked_mode", false); 330 Settings::values.use_docked_mode = sdl2_config->GetBoolean("System", "use_docked_mode", false);