summaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/configuration/config.cpp')
-rw-r--r--src/yuzu/configuration/config.cpp57
1 files changed, 41 insertions, 16 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 85d292bcc..faea5dda1 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -16,7 +16,8 @@
namespace FS = Common::FS;
-Config::Config(const std::string& config_name, ConfigType config_type) : type(config_type) {
+Config::Config(Core::System& system_, const std::string& config_name, ConfigType config_type)
+ : type(config_type), system{system_} {
global = config_type == ConfigType::GlobalConfig;
Initialize(config_name);
@@ -221,7 +222,7 @@ const std::array<int, Settings::NativeKeyboard::NumKeyboardMods> Config::default
// This must be in alphabetical order according to action name as it must have the same order as
// UISetting::values.shortcuts, which is alphabetically ordered.
// clang-format off
-const std::array<UISettings::Shortcut, 18> Config::default_hotkeys{{
+const std::array<UISettings::Shortcut, 21> Config::default_hotkeys{{
{QStringLiteral("Capture Screenshot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"), Qt::WidgetWithChildrenShortcut}},
{QStringLiteral("Change Docked Mode"), QStringLiteral("Main Window"), {QStringLiteral("F10"), Qt::ApplicationShortcut}},
{QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"), Qt::WindowShortcut}},
@@ -235,6 +236,9 @@ const std::array<UISettings::Shortcut, 18> Config::default_hotkeys{{
{QStringLiteral("Mute Audio"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+M"), Qt::WindowShortcut}},
{QStringLiteral("Restart Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F6"), Qt::WindowShortcut}},
{QStringLiteral("Stop Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F5"), Qt::WindowShortcut}},
+ {QStringLiteral("TAS Start/Stop"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F5"), Qt::ApplicationShortcut}},
+ {QStringLiteral("TAS Reset"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F6"), Qt::ApplicationShortcut}},
+ {QStringLiteral("TAS Record"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F7"), Qt::ApplicationShortcut}},
{QStringLiteral("Toggle Filter Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F"), Qt::WindowShortcut}},
{QStringLiteral("Toggle Framerate Limit"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+U"), Qt::ApplicationShortcut}},
{QStringLiteral("Toggle Mouse Panning"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F9"), Qt::ApplicationShortcut}},
@@ -542,7 +546,6 @@ void Config::ReadAudioValues() {
ReadBasicSetting(Settings::values.audio_device_id);
ReadBasicSetting(Settings::values.sink_id);
}
- ReadGlobalSetting(Settings::values.enable_audio_stretching);
ReadGlobalSetting(Settings::values.volume);
qt_config->endGroup();
@@ -560,10 +563,20 @@ void Config::ReadControlValues() {
ReadTouchscreenValues();
ReadMotionTouchValues();
+#ifdef _WIN32
+ ReadBasicSetting(Settings::values.enable_raw_input);
+#else
+ Settings::values.enable_raw_input = false;
+#endif
ReadBasicSetting(Settings::values.emulate_analog_keyboard);
Settings::values.mouse_panning = false;
ReadBasicSetting(Settings::values.mouse_panning_sensitivity);
+ ReadBasicSetting(Settings::values.tas_enable);
+ ReadBasicSetting(Settings::values.tas_loop);
+ ReadBasicSetting(Settings::values.tas_swap_controllers);
+ ReadBasicSetting(Settings::values.pause_tas_on_load);
+
ReadGlobalSetting(Settings::values.use_docked_mode);
// Disable docked mode if handheld is selected
@@ -661,6 +674,13 @@ void Config::ReadDataStorageValues() {
QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::DumpDir)))
.toString()
.toStdString());
+ FS::SetYuzuPath(FS::YuzuPath::TASDir,
+ qt_config
+ ->value(QStringLiteral("tas_directory"),
+ QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::TASDir)))
+ .toString()
+ .toStdString());
+
ReadBasicSetting(Settings::values.gamecard_inserted);
ReadBasicSetting(Settings::values.gamecard_current_game);
ReadBasicSetting(Settings::values.gamecard_path);
@@ -690,8 +710,6 @@ void Config::ReadDebuggingValues() {
void Config::ReadServiceValues() {
qt_config->beginGroup(QStringLiteral("Services"));
- ReadBasicSetting(Settings::values.bcat_backend);
- ReadBasicSetting(Settings::values.bcat_boxcat_local);
ReadBasicSetting(Settings::values.network_interface);
qt_config->endGroup();
}
@@ -812,7 +830,7 @@ void Config::ReadRendererValues() {
ReadGlobalSetting(Settings::values.use_disk_shader_cache);
ReadGlobalSetting(Settings::values.gpu_accuracy);
ReadGlobalSetting(Settings::values.use_asynchronous_gpu_emulation);
- ReadGlobalSetting(Settings::values.use_nvdec_emulation);
+ ReadGlobalSetting(Settings::values.nvdec_emulation);
ReadGlobalSetting(Settings::values.accelerate_astc);
ReadGlobalSetting(Settings::values.use_vsync);
ReadGlobalSetting(Settings::values.shader_backend);
@@ -900,8 +918,7 @@ void Config::ReadSystemValues() {
const auto custom_rtc_enabled =
ReadSetting(QStringLiteral("custom_rtc_enabled"), false).toBool();
if (custom_rtc_enabled) {
- Settings::values.custom_rtc =
- std::chrono::seconds(ReadSetting(QStringLiteral("custom_rtc"), 0).toULongLong());
+ Settings::values.custom_rtc = ReadSetting(QStringLiteral("custom_rtc"), 0).toLongLong();
} else {
Settings::values.custom_rtc = std::nullopt;
}
@@ -1163,7 +1180,6 @@ void Config::SaveAudioValues() {
WriteBasicSetting(Settings::values.sink_id);
WriteBasicSetting(Settings::values.audio_device_id);
}
- WriteGlobalSetting(Settings::values.enable_audio_stretching);
WriteGlobalSetting(Settings::values.volume);
qt_config->endGroup();
@@ -1184,10 +1200,16 @@ void Config::SaveControlValues() {
WriteGlobalSetting(Settings::values.vibration_enabled);
WriteGlobalSetting(Settings::values.enable_accurate_vibrations);
WriteGlobalSetting(Settings::values.motion_enabled);
+ WriteBasicSetting(Settings::values.enable_raw_input);
WriteBasicSetting(Settings::values.keyboard_enabled);
WriteBasicSetting(Settings::values.emulate_analog_keyboard);
WriteBasicSetting(Settings::values.mouse_panning_sensitivity);
+ WriteBasicSetting(Settings::values.tas_enable);
+ WriteBasicSetting(Settings::values.tas_loop);
+ WriteBasicSetting(Settings::values.tas_swap_controllers);
+ WriteBasicSetting(Settings::values.pause_tas_on_load);
+
qt_config->endGroup();
}
@@ -1215,6 +1237,10 @@ void Config::SaveDataStorageValues() {
WriteSetting(QStringLiteral("dump_directory"),
QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::DumpDir)),
QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::DumpDir)));
+ WriteSetting(QStringLiteral("tas_directory"),
+ QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::TASDir)),
+ QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::TASDir)));
+
WriteBasicSetting(Settings::values.gamecard_inserted);
WriteBasicSetting(Settings::values.gamecard_current_game);
WriteBasicSetting(Settings::values.gamecard_path);
@@ -1241,8 +1267,6 @@ void Config::SaveDebuggingValues() {
void Config::SaveNetworkValues() {
qt_config->beginGroup(QStringLiteral("Services"));
- WriteBasicSetting(Settings::values.bcat_backend);
- WriteBasicSetting(Settings::values.bcat_boxcat_local);
WriteBasicSetting(Settings::values.network_interface);
qt_config->endGroup();
@@ -1349,7 +1373,10 @@ void Config::SaveRendererValues() {
static_cast<u32>(Settings::values.gpu_accuracy.GetDefault()),
Settings::values.gpu_accuracy.UsingGlobal());
WriteGlobalSetting(Settings::values.use_asynchronous_gpu_emulation);
- WriteGlobalSetting(Settings::values.use_nvdec_emulation);
+ WriteSetting(QString::fromStdString(Settings::values.nvdec_emulation.GetLabel()),
+ static_cast<u32>(Settings::values.nvdec_emulation.GetValue(global)),
+ static_cast<u32>(Settings::values.nvdec_emulation.GetDefault()),
+ Settings::values.nvdec_emulation.UsingGlobal());
WriteGlobalSetting(Settings::values.accelerate_astc);
WriteGlobalSetting(Settings::values.use_vsync);
WriteSetting(QString::fromStdString(Settings::values.shader_backend.GetLabel()),
@@ -1422,9 +1449,7 @@ void Config::SaveSystemValues() {
WriteSetting(QStringLiteral("custom_rtc_enabled"), Settings::values.custom_rtc.has_value(),
false);
WriteSetting(QStringLiteral("custom_rtc"),
- QVariant::fromValue<long long>(
- Settings::values.custom_rtc.value_or(std::chrono::seconds{}).count()),
- 0);
+ QVariant::fromValue<long long>(Settings::values.custom_rtc.value_or(0)), 0);
}
WriteGlobalSetting(Settings::values.sound_index);
@@ -1566,7 +1591,7 @@ void Config::Reload() {
ReadValues();
// To apply default value changes
SaveValues();
- Core::System::GetInstance().ApplySettings();
+ system.ApplySettings();
}
void Config::Save() {