summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-12-28 18:35:55 -0500
committerGravatar Zach Hilman2019-01-07 19:18:45 -0500
commitc6016856d878c8f68bc5518f3ef0270ea018bc3d (patch)
treecd1dafa296f01781617e895bc6ce7538e51b2cd9 /src
parentMerge pull request #1999 from ReinUsesLisp/dirty-shader (diff)
downloadyuzu-c6016856d878c8f68bc5518f3ef0270ea018bc3d.tar.gz
yuzu-c6016856d878c8f68bc5518f3ef0270ea018bc3d.tar.xz
yuzu-c6016856d878c8f68bc5518f3ef0270ea018bc3d.zip
settings: Add custom RTC settings
Stored as signed seconds since epoch.
Diffstat (limited to 'src')
-rw-r--r--src/core/settings.h3
-rw-r--r--src/yuzu/configuration/config.cpp14
-rw-r--r--src/yuzu_cmd/config.cpp11
-rw-r--r--src/yuzu_cmd/default_ini.h6
4 files changed, 30 insertions, 4 deletions
diff --git a/src/core/settings.h b/src/core/settings.h
index de01b05c0..5b211a716 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -350,6 +350,9 @@ struct Values {
350 bool use_docked_mode; 350 bool use_docked_mode;
351 bool enable_nfc; 351 bool enable_nfc;
352 std::optional<u32> rng_seed; 352 std::optional<u32> rng_seed;
353 std::optional<s64> custom_rtc; // Measured in seconds since epoch
354 s64 custom_rtc_differential; // Set on game boot, reset on stop. Seconds difference between
355 // current time and `custom_rtc`
353 s32 current_user; 356 s32 current_user;
354 s32 language_index; 357 s32 language_index;
355 358
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 165d70e9c..6e034ef19 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -419,13 +419,20 @@ void Config::ReadValues() {
419 419
420 Settings::values.language_index = qt_config->value("language_index", 1).toInt(); 420 Settings::values.language_index = qt_config->value("language_index", 1).toInt();
421 421
422 const auto enabled = qt_config->value("rng_seed_enabled", false).toBool(); 422 const auto rng_seed_enabled = qt_config->value("rng_seed_enabled", false).toBool();
423 if (enabled) { 423 if (rng_seed_enabled) {
424 Settings::values.rng_seed = qt_config->value("rng_seed", 0).toULongLong(); 424 Settings::values.rng_seed = qt_config->value("rng_seed", 0).toULongLong();
425 } else { 425 } else {
426 Settings::values.rng_seed = std::nullopt; 426 Settings::values.rng_seed = std::nullopt;
427 } 427 }
428 428
429 const auto custom_rtc_enabled = qt_config->value("custom_rtc_enabled", false).toBool();
430 if (custom_rtc_enabled) {
431 Settings::values.custom_rtc = qt_config->value("custom_rtc", 0).toULongLong();
432 } else {
433 Settings::values.custom_rtc = std::nullopt;
434 }
435
429 qt_config->endGroup(); 436 qt_config->endGroup();
430 437
431 qt_config->beginGroup("Miscellaneous"); 438 qt_config->beginGroup("Miscellaneous");
@@ -653,6 +660,9 @@ void Config::SaveValues() {
653 qt_config->setValue("rng_seed_enabled", Settings::values.rng_seed.has_value()); 660 qt_config->setValue("rng_seed_enabled", Settings::values.rng_seed.has_value());
654 qt_config->setValue("rng_seed", Settings::values.rng_seed.value_or(0)); 661 qt_config->setValue("rng_seed", Settings::values.rng_seed.value_or(0));
655 662
663 qt_config->setValue("custom_rtc_enabled", Settings::values.custom_rtc.has_value());
664 qt_config->setValue("custom_rtc", Settings::values.custom_rtc.value_or(0));
665
656 qt_config->endGroup(); 666 qt_config->endGroup();
657 667
658 qt_config->beginGroup("Miscellaneous"); 668 qt_config->beginGroup("Miscellaneous");
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index fe0d1eebf..8f3b74cdf 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -325,13 +325,20 @@ void Config::ReadValues() {
325 Settings::values.current_user = std::clamp<int>( 325 Settings::values.current_user = std::clamp<int>(
326 sdl2_config->GetInteger("System", "current_user", 0), 0, Service::Account::MAX_USERS - 1); 326 sdl2_config->GetInteger("System", "current_user", 0), 0, Service::Account::MAX_USERS - 1);
327 327
328 const auto enabled = sdl2_config->GetBoolean("System", "rng_seed_enabled", false); 328 const auto rng_seed_enabled = sdl2_config->GetBoolean("System", "rng_seed_enabled", false);
329 if (enabled) { 329 if (rng_seed_enabled) {
330 Settings::values.rng_seed = sdl2_config->GetInteger("System", "rng_seed", 0); 330 Settings::values.rng_seed = sdl2_config->GetInteger("System", "rng_seed", 0);
331 } else { 331 } else {
332 Settings::values.rng_seed = std::nullopt; 332 Settings::values.rng_seed = std::nullopt;
333 } 333 }
334 334
335 const auto custom_rtc_enabled = sdl2_config->GetBoolean("System", "custom_rtc_enabled", false);
336 if (custom_rtc_enabled) {
337 Settings::values.custom_rtc = sdl2_config->GetInteger("System", "custom_rtc", 0);
338 } else {
339 Settings::values.custom_rtc = std::nullopt;
340 }
341
335 // Core 342 // Core
336 Settings::values.use_cpu_jit = sdl2_config->GetBoolean("Core", "use_cpu_jit", true); 343 Settings::values.use_cpu_jit = sdl2_config->GetBoolean("Core", "use_cpu_jit", true);
337 Settings::values.use_multi_core = sdl2_config->GetBoolean("Core", "use_multi_core", false); 344 Settings::values.use_multi_core = sdl2_config->GetBoolean("Core", "use_multi_core", false);
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h
index 0f3f8da50..0a3ea2619 100644
--- a/src/yuzu_cmd/default_ini.h
+++ b/src/yuzu_cmd/default_ini.h
@@ -183,6 +183,12 @@ enable_nfc =
183rng_seed_enabled = 183rng_seed_enabled =
184rng_seed = 184rng_seed =
185 185
186# Sets the current time (in seconds since 12:00 AM Jan 1, 1970) that will be used by the time service
187# This will auto-increment, with the time set being the time the game is started
188# This override will only occur if custom_rtc_enabled is true, otherwise the current time is used
189custom_rtc_enabled =
190custom_rtc =
191
186# Sets the account username, max length is 32 characters 192# Sets the account username, max length is 32 characters
187# yuzu (default) 193# yuzu (default)
188username = yuzu 194username = yuzu