settings: Add custom RTC settings
Stored as signed seconds since epoch.
This commit is contained in:
parent
23ebd4920e
commit
c6016856d8
4 changed files with 30 additions and 4 deletions
|
@ -350,6 +350,9 @@ struct Values {
|
||||||
bool use_docked_mode;
|
bool use_docked_mode;
|
||||||
bool enable_nfc;
|
bool enable_nfc;
|
||||||
std::optional<u32> rng_seed;
|
std::optional<u32> rng_seed;
|
||||||
|
std::optional<s64> custom_rtc; // Measured in seconds since epoch
|
||||||
|
s64 custom_rtc_differential; // Set on game boot, reset on stop. Seconds difference between
|
||||||
|
// current time and `custom_rtc`
|
||||||
s32 current_user;
|
s32 current_user;
|
||||||
s32 language_index;
|
s32 language_index;
|
||||||
|
|
||||||
|
|
|
@ -419,13 +419,20 @@ void Config::ReadValues() {
|
||||||
|
|
||||||
Settings::values.language_index = qt_config->value("language_index", 1).toInt();
|
Settings::values.language_index = qt_config->value("language_index", 1).toInt();
|
||||||
|
|
||||||
const auto enabled = qt_config->value("rng_seed_enabled", false).toBool();
|
const auto rng_seed_enabled = qt_config->value("rng_seed_enabled", false).toBool();
|
||||||
if (enabled) {
|
if (rng_seed_enabled) {
|
||||||
Settings::values.rng_seed = qt_config->value("rng_seed", 0).toULongLong();
|
Settings::values.rng_seed = qt_config->value("rng_seed", 0).toULongLong();
|
||||||
} else {
|
} else {
|
||||||
Settings::values.rng_seed = std::nullopt;
|
Settings::values.rng_seed = std::nullopt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto custom_rtc_enabled = qt_config->value("custom_rtc_enabled", false).toBool();
|
||||||
|
if (custom_rtc_enabled) {
|
||||||
|
Settings::values.custom_rtc = qt_config->value("custom_rtc", 0).toULongLong();
|
||||||
|
} else {
|
||||||
|
Settings::values.custom_rtc = std::nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
qt_config->endGroup();
|
qt_config->endGroup();
|
||||||
|
|
||||||
qt_config->beginGroup("Miscellaneous");
|
qt_config->beginGroup("Miscellaneous");
|
||||||
|
@ -653,6 +660,9 @@ void Config::SaveValues() {
|
||||||
qt_config->setValue("rng_seed_enabled", Settings::values.rng_seed.has_value());
|
qt_config->setValue("rng_seed_enabled", Settings::values.rng_seed.has_value());
|
||||||
qt_config->setValue("rng_seed", Settings::values.rng_seed.value_or(0));
|
qt_config->setValue("rng_seed", Settings::values.rng_seed.value_or(0));
|
||||||
|
|
||||||
|
qt_config->setValue("custom_rtc_enabled", Settings::values.custom_rtc.has_value());
|
||||||
|
qt_config->setValue("custom_rtc", Settings::values.custom_rtc.value_or(0));
|
||||||
|
|
||||||
qt_config->endGroup();
|
qt_config->endGroup();
|
||||||
|
|
||||||
qt_config->beginGroup("Miscellaneous");
|
qt_config->beginGroup("Miscellaneous");
|
||||||
|
|
|
@ -325,13 +325,20 @@ void Config::ReadValues() {
|
||||||
Settings::values.current_user = std::clamp<int>(
|
Settings::values.current_user = std::clamp<int>(
|
||||||
sdl2_config->GetInteger("System", "current_user", 0), 0, Service::Account::MAX_USERS - 1);
|
sdl2_config->GetInteger("System", "current_user", 0), 0, Service::Account::MAX_USERS - 1);
|
||||||
|
|
||||||
const auto enabled = sdl2_config->GetBoolean("System", "rng_seed_enabled", false);
|
const auto rng_seed_enabled = sdl2_config->GetBoolean("System", "rng_seed_enabled", false);
|
||||||
if (enabled) {
|
if (rng_seed_enabled) {
|
||||||
Settings::values.rng_seed = sdl2_config->GetInteger("System", "rng_seed", 0);
|
Settings::values.rng_seed = sdl2_config->GetInteger("System", "rng_seed", 0);
|
||||||
} else {
|
} else {
|
||||||
Settings::values.rng_seed = std::nullopt;
|
Settings::values.rng_seed = std::nullopt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto custom_rtc_enabled = sdl2_config->GetBoolean("System", "custom_rtc_enabled", false);
|
||||||
|
if (custom_rtc_enabled) {
|
||||||
|
Settings::values.custom_rtc = sdl2_config->GetInteger("System", "custom_rtc", 0);
|
||||||
|
} else {
|
||||||
|
Settings::values.custom_rtc = std::nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
// Core
|
// Core
|
||||||
Settings::values.use_cpu_jit = sdl2_config->GetBoolean("Core", "use_cpu_jit", true);
|
Settings::values.use_cpu_jit = sdl2_config->GetBoolean("Core", "use_cpu_jit", true);
|
||||||
Settings::values.use_multi_core = sdl2_config->GetBoolean("Core", "use_multi_core", false);
|
Settings::values.use_multi_core = sdl2_config->GetBoolean("Core", "use_multi_core", false);
|
||||||
|
|
|
@ -183,6 +183,12 @@ enable_nfc =
|
||||||
rng_seed_enabled =
|
rng_seed_enabled =
|
||||||
rng_seed =
|
rng_seed =
|
||||||
|
|
||||||
|
# Sets the current time (in seconds since 12:00 AM Jan 1, 1970) that will be used by the time service
|
||||||
|
# This will auto-increment, with the time set being the time the game is started
|
||||||
|
# This override will only occur if custom_rtc_enabled is true, otherwise the current time is used
|
||||||
|
custom_rtc_enabled =
|
||||||
|
custom_rtc =
|
||||||
|
|
||||||
# Sets the account username, max length is 32 characters
|
# Sets the account username, max length is 32 characters
|
||||||
# yuzu (default)
|
# yuzu (default)
|
||||||
username = yuzu
|
username = yuzu
|
||||||
|
|
Loading…
Reference in a new issue