diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 221 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.h | 6 |
2 files changed, 100 insertions, 127 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 62bafc453..2ad0ac32e 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -491,8 +491,8 @@ void Config::ReadAudioValues() { | |||
| 491 | .toStdString(); | 491 | .toStdString(); |
| 492 | } | 492 | } |
| 493 | ReadSettingGlobal(Settings::values.enable_audio_stretching, | 493 | ReadSettingGlobal(Settings::values.enable_audio_stretching, |
| 494 | QStringLiteral("enable_audio_stretching"), true); | 494 | QStringLiteral("enable_audio_stretching")); |
| 495 | ReadSettingGlobal(Settings::values.volume, QStringLiteral("volume"), 1); | 495 | ReadSettingGlobal(Settings::values.volume, QStringLiteral("volume")); |
| 496 | 496 | ||
| 497 | qt_config->endGroup(); | 497 | qt_config->endGroup(); |
| 498 | } | 498 | } |
| @@ -515,7 +515,7 @@ void Config::ReadControlValues() { | |||
| 515 | Settings::values.mouse_panning_sensitivity = | 515 | Settings::values.mouse_panning_sensitivity = |
| 516 | ReadSetting(QStringLiteral("mouse_panning_sensitivity"), 1).toFloat(); | 516 | ReadSetting(QStringLiteral("mouse_panning_sensitivity"), 1).toFloat(); |
| 517 | 517 | ||
| 518 | ReadSettingGlobal(Settings::values.use_docked_mode, QStringLiteral("use_docked_mode"), true); | 518 | ReadSettingGlobal(Settings::values.use_docked_mode, QStringLiteral("use_docked_mode")); |
| 519 | 519 | ||
| 520 | // Disable docked mode if handheld is selected | 520 | // Disable docked mode if handheld is selected |
| 521 | const auto controller_type = Settings::values.players.GetValue()[0].controller_type; | 521 | const auto controller_type = Settings::values.players.GetValue()[0].controller_type; |
| @@ -523,11 +523,10 @@ void Config::ReadControlValues() { | |||
| 523 | Settings::values.use_docked_mode.SetValue(false); | 523 | Settings::values.use_docked_mode.SetValue(false); |
| 524 | } | 524 | } |
| 525 | 525 | ||
| 526 | ReadSettingGlobal(Settings::values.vibration_enabled, QStringLiteral("vibration_enabled"), | 526 | ReadSettingGlobal(Settings::values.vibration_enabled, QStringLiteral("vibration_enabled")); |
| 527 | true); | ||
| 528 | ReadSettingGlobal(Settings::values.enable_accurate_vibrations, | 527 | ReadSettingGlobal(Settings::values.enable_accurate_vibrations, |
| 529 | QStringLiteral("enable_accurate_vibrations"), false); | 528 | QStringLiteral("enable_accurate_vibrations")); |
| 530 | ReadSettingGlobal(Settings::values.motion_enabled, QStringLiteral("motion_enabled"), true); | 529 | ReadSettingGlobal(Settings::values.motion_enabled, QStringLiteral("motion_enabled")); |
| 531 | 530 | ||
| 532 | qt_config->endGroup(); | 531 | qt_config->endGroup(); |
| 533 | } | 532 | } |
| @@ -591,7 +590,7 @@ void Config::ReadMotionTouchValues() { | |||
| 591 | void Config::ReadCoreValues() { | 590 | void Config::ReadCoreValues() { |
| 592 | qt_config->beginGroup(QStringLiteral("Core")); | 591 | qt_config->beginGroup(QStringLiteral("Core")); |
| 593 | 592 | ||
| 594 | ReadSettingGlobal(Settings::values.use_multi_core, QStringLiteral("use_multi_core"), true); | 593 | ReadSettingGlobal(Settings::values.use_multi_core, QStringLiteral("use_multi_core")); |
| 595 | 594 | ||
| 596 | qt_config->endGroup(); | 595 | qt_config->endGroup(); |
| 597 | } | 596 | } |
| @@ -751,18 +750,18 @@ void Config::ReadPathValues() { | |||
| 751 | void Config::ReadCpuValues() { | 750 | void Config::ReadCpuValues() { |
| 752 | qt_config->beginGroup(QStringLiteral("Cpu")); | 751 | qt_config->beginGroup(QStringLiteral("Cpu")); |
| 753 | 752 | ||
| 754 | ReadSettingGlobal(Settings::values.cpu_accuracy, QStringLiteral("cpu_accuracy"), 0); | 753 | ReadSettingGlobal(Settings::values.cpu_accuracy, QStringLiteral("cpu_accuracy")); |
| 755 | 754 | ||
| 756 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_unfuse_fma, | 755 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_unfuse_fma, |
| 757 | QStringLiteral("cpuopt_unsafe_unfuse_fma"), true); | 756 | QStringLiteral("cpuopt_unsafe_unfuse_fma")); |
| 758 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_reduce_fp_error, | 757 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_reduce_fp_error, |
| 759 | QStringLiteral("cpuopt_unsafe_reduce_fp_error"), true); | 758 | QStringLiteral("cpuopt_unsafe_reduce_fp_error")); |
| 760 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_ignore_standard_fpcr, | 759 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_ignore_standard_fpcr, |
| 761 | QStringLiteral("cpuopt_unsafe_ignore_standard_fpcr"), true); | 760 | QStringLiteral("cpuopt_unsafe_ignore_standard_fpcr")); |
| 762 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_inaccurate_nan, | 761 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_inaccurate_nan, |
| 763 | QStringLiteral("cpuopt_unsafe_inaccurate_nan"), true); | 762 | QStringLiteral("cpuopt_unsafe_inaccurate_nan")); |
| 764 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_fastmem_check, | 763 | ReadSettingGlobal(Settings::values.cpuopt_unsafe_fastmem_check, |
| 765 | QStringLiteral("cpuopt_unsafe_fastmem_check"), true); | 764 | QStringLiteral("cpuopt_unsafe_fastmem_check")); |
| 766 | 765 | ||
| 767 | if (global) { | 766 | if (global) { |
| 768 | Settings::values.cpuopt_page_tables = | 767 | Settings::values.cpuopt_page_tables = |
| @@ -791,41 +790,32 @@ void Config::ReadCpuValues() { | |||
| 791 | void Config::ReadRendererValues() { | 790 | void Config::ReadRendererValues() { |
| 792 | qt_config->beginGroup(QStringLiteral("Renderer")); | 791 | qt_config->beginGroup(QStringLiteral("Renderer")); |
| 793 | 792 | ||
| 794 | ReadSettingGlobal(Settings::values.renderer_backend, QStringLiteral("backend"), 0); | 793 | ReadSettingGlobal(Settings::values.renderer_backend, QStringLiteral("backend")); |
| 795 | ReadSettingGlobal(Settings::values.renderer_debug, QStringLiteral("debug"), false); | 794 | ReadSettingGlobal(Settings::values.renderer_debug, QStringLiteral("debug"), false); |
| 796 | ReadSettingGlobal(Settings::values.vulkan_device, QStringLiteral("vulkan_device"), 0); | 795 | ReadSettingGlobal(Settings::values.vulkan_device, QStringLiteral("vulkan_device")); |
| 797 | #ifdef _WIN32 | 796 | ReadSettingGlobal(Settings::values.fullscreen_mode, QStringLiteral("fullscreen_mode")); |
| 798 | ReadSettingGlobal(Settings::values.fullscreen_mode, QStringLiteral("fullscreen_mode"), 0); | 797 | ReadSettingGlobal(Settings::values.aspect_ratio, QStringLiteral("aspect_ratio")); |
| 799 | #else | 798 | ReadSettingGlobal(Settings::values.max_anisotropy, QStringLiteral("max_anisotropy")); |
| 800 | // *nix platforms may have issues with the borderless windowed fullscreen mode. | 799 | ReadSettingGlobal(Settings::values.use_frame_limit, QStringLiteral("use_frame_limit")); |
| 801 | // Default to exclusive fullscreen on these platforms for now. | 800 | ReadSettingGlobal(Settings::values.frame_limit, QStringLiteral("frame_limit")); |
| 802 | ReadSettingGlobal(Settings::values.fullscreen_mode, QStringLiteral("fullscreen_mode"), 1); | ||
| 803 | #endif | ||
| 804 | ReadSettingGlobal(Settings::values.aspect_ratio, QStringLiteral("aspect_ratio"), 0); | ||
| 805 | ReadSettingGlobal(Settings::values.max_anisotropy, QStringLiteral("max_anisotropy"), 0); | ||
| 806 | ReadSettingGlobal(Settings::values.use_frame_limit, QStringLiteral("use_frame_limit"), true); | ||
| 807 | ReadSettingGlobal(Settings::values.frame_limit, QStringLiteral("frame_limit"), 100); | ||
| 808 | ReadSettingGlobal(Settings::values.use_disk_shader_cache, | 801 | ReadSettingGlobal(Settings::values.use_disk_shader_cache, |
| 809 | QStringLiteral("use_disk_shader_cache"), true); | 802 | QStringLiteral("use_disk_shader_cache")); |
| 810 | ReadSettingGlobal(Settings::values.gpu_accuracy, QStringLiteral("gpu_accuracy"), 1); | 803 | ReadSettingGlobal(Settings::values.gpu_accuracy, QStringLiteral("gpu_accuracy")); |
| 811 | ReadSettingGlobal(Settings::values.use_asynchronous_gpu_emulation, | 804 | ReadSettingGlobal(Settings::values.use_asynchronous_gpu_emulation, |
| 812 | QStringLiteral("use_asynchronous_gpu_emulation"), true); | 805 | QStringLiteral("use_asynchronous_gpu_emulation")); |
| 813 | ReadSettingGlobal(Settings::values.use_nvdec_emulation, QStringLiteral("use_nvdec_emulation"), | 806 | ReadSettingGlobal(Settings::values.use_nvdec_emulation, QStringLiteral("use_nvdec_emulation")); |
| 814 | true); | 807 | ReadSettingGlobal(Settings::values.accelerate_astc, QStringLiteral("accelerate_astc")); |
| 815 | ReadSettingGlobal(Settings::values.accelerate_astc, QStringLiteral("accelerate_astc"), true); | 808 | ReadSettingGlobal(Settings::values.use_vsync, QStringLiteral("use_vsync")); |
| 816 | ReadSettingGlobal(Settings::values.use_vsync, QStringLiteral("use_vsync"), true); | 809 | ReadSettingGlobal(Settings::values.disable_fps_limit, QStringLiteral("disable_fps_limit")); |
| 817 | ReadSettingGlobal(Settings::values.disable_fps_limit, QStringLiteral("disable_fps_limit"), | 810 | ReadSettingGlobal(Settings::values.use_assembly_shaders, |
| 818 | false); | 811 | QStringLiteral("use_assembly_shaders")); |
| 819 | ReadSettingGlobal(Settings::values.use_assembly_shaders, QStringLiteral("use_assembly_shaders"), | ||
| 820 | false); | ||
| 821 | ReadSettingGlobal(Settings::values.use_asynchronous_shaders, | 812 | ReadSettingGlobal(Settings::values.use_asynchronous_shaders, |
| 822 | QStringLiteral("use_asynchronous_shaders"), false); | 813 | QStringLiteral("use_asynchronous_shaders")); |
| 823 | ReadSettingGlobal(Settings::values.use_fast_gpu_time, QStringLiteral("use_fast_gpu_time"), | 814 | ReadSettingGlobal(Settings::values.use_fast_gpu_time, QStringLiteral("use_fast_gpu_time")); |
| 824 | true); | 815 | ReadSettingGlobal(Settings::values.use_caches_gc, QStringLiteral("use_caches_gc")); |
| 825 | ReadSettingGlobal(Settings::values.use_caches_gc, QStringLiteral("use_caches_gc"), false); | 816 | ReadSettingGlobal(Settings::values.bg_red, QStringLiteral("bg_red")); |
| 826 | ReadSettingGlobal(Settings::values.bg_red, QStringLiteral("bg_red"), 0.0); | 817 | ReadSettingGlobal(Settings::values.bg_green, QStringLiteral("bg_green")); |
| 827 | ReadSettingGlobal(Settings::values.bg_green, QStringLiteral("bg_green"), 0.0); | 818 | ReadSettingGlobal(Settings::values.bg_blue, QStringLiteral("bg_blue")); |
| 828 | ReadSettingGlobal(Settings::values.bg_blue, QStringLiteral("bg_blue"), 0.0); | ||
| 829 | 819 | ||
| 830 | qt_config->endGroup(); | 820 | qt_config->endGroup(); |
| 831 | } | 821 | } |
| @@ -874,11 +864,11 @@ void Config::ReadSystemValues() { | |||
| 874 | Settings::values.current_user = | 864 | Settings::values.current_user = |
| 875 | std::clamp<int>(Settings::values.current_user, 0, Service::Account::MAX_USERS - 1); | 865 | std::clamp<int>(Settings::values.current_user, 0, Service::Account::MAX_USERS - 1); |
| 876 | 866 | ||
| 877 | ReadSettingGlobal(Settings::values.language_index, QStringLiteral("language_index"), 1); | 867 | ReadSettingGlobal(Settings::values.language_index, QStringLiteral("language_index")); |
| 878 | 868 | ||
| 879 | ReadSettingGlobal(Settings::values.region_index, QStringLiteral("region_index"), 1); | 869 | ReadSettingGlobal(Settings::values.region_index, QStringLiteral("region_index")); |
| 880 | 870 | ||
| 881 | ReadSettingGlobal(Settings::values.time_zone_index, QStringLiteral("time_zone_index"), 0); | 871 | ReadSettingGlobal(Settings::values.time_zone_index, QStringLiteral("time_zone_index")); |
| 882 | 872 | ||
| 883 | bool rng_seed_enabled; | 873 | bool rng_seed_enabled; |
| 884 | ReadSettingGlobal(rng_seed_enabled, QStringLiteral("rng_seed_enabled"), false); | 874 | ReadSettingGlobal(rng_seed_enabled, QStringLiteral("rng_seed_enabled"), false); |
| @@ -904,7 +894,7 @@ void Config::ReadSystemValues() { | |||
| 904 | } | 894 | } |
| 905 | } | 895 | } |
| 906 | 896 | ||
| 907 | ReadSettingGlobal(Settings::values.sound_index, QStringLiteral("sound_index"), 1); | 897 | ReadSettingGlobal(Settings::values.sound_index, QStringLiteral("sound_index")); |
| 908 | 898 | ||
| 909 | qt_config->endGroup(); | 899 | qt_config->endGroup(); |
| 910 | } | 900 | } |
| @@ -1188,8 +1178,8 @@ void Config::SaveAudioValues() { | |||
| 1188 | QStringLiteral("auto")); | 1178 | QStringLiteral("auto")); |
| 1189 | } | 1179 | } |
| 1190 | WriteSettingGlobal(QStringLiteral("enable_audio_stretching"), | 1180 | WriteSettingGlobal(QStringLiteral("enable_audio_stretching"), |
| 1191 | Settings::values.enable_audio_stretching, true); | 1181 | Settings::values.enable_audio_stretching); |
| 1192 | WriteSettingGlobal(QStringLiteral("volume"), Settings::values.volume, 1.0f); | 1182 | WriteSettingGlobal(QStringLiteral("volume"), Settings::values.volume); |
| 1193 | 1183 | ||
| 1194 | qt_config->endGroup(); | 1184 | qt_config->endGroup(); |
| 1195 | } | 1185 | } |
| @@ -1205,12 +1195,11 @@ void Config::SaveControlValues() { | |||
| 1205 | SaveTouchscreenValues(); | 1195 | SaveTouchscreenValues(); |
| 1206 | SaveMotionTouchValues(); | 1196 | SaveMotionTouchValues(); |
| 1207 | 1197 | ||
| 1208 | WriteSettingGlobal(QStringLiteral("use_docked_mode"), Settings::values.use_docked_mode, true); | 1198 | WriteSettingGlobal(QStringLiteral("use_docked_mode"), Settings::values.use_docked_mode); |
| 1209 | WriteSettingGlobal(QStringLiteral("vibration_enabled"), Settings::values.vibration_enabled, | 1199 | WriteSettingGlobal(QStringLiteral("vibration_enabled"), Settings::values.vibration_enabled); |
| 1210 | true); | ||
| 1211 | WriteSettingGlobal(QStringLiteral("enable_accurate_vibrations"), | 1200 | WriteSettingGlobal(QStringLiteral("enable_accurate_vibrations"), |
| 1212 | Settings::values.enable_accurate_vibrations, false); | 1201 | Settings::values.enable_accurate_vibrations); |
| 1213 | WriteSettingGlobal(QStringLiteral("motion_enabled"), Settings::values.motion_enabled, true); | 1202 | WriteSettingGlobal(QStringLiteral("motion_enabled"), Settings::values.motion_enabled); |
| 1214 | WriteSetting(QStringLiteral("motion_device"), | 1203 | WriteSetting(QStringLiteral("motion_device"), |
| 1215 | QString::fromStdString(Settings::values.motion_device), | 1204 | QString::fromStdString(Settings::values.motion_device), |
| 1216 | QStringLiteral("engine:motion_emu,update_period:100,sensitivity:0.01")); | 1205 | QStringLiteral("engine:motion_emu,update_period:100,sensitivity:0.01")); |
| @@ -1228,7 +1217,7 @@ void Config::SaveControlValues() { | |||
| 1228 | void Config::SaveCoreValues() { | 1217 | void Config::SaveCoreValues() { |
| 1229 | qt_config->beginGroup(QStringLiteral("Core")); | 1218 | qt_config->beginGroup(QStringLiteral("Core")); |
| 1230 | 1219 | ||
| 1231 | WriteSettingGlobal(QStringLiteral("use_multi_core"), Settings::values.use_multi_core, true); | 1220 | WriteSettingGlobal(QStringLiteral("use_multi_core"), Settings::values.use_multi_core); |
| 1232 | 1221 | ||
| 1233 | qt_config->endGroup(); | 1222 | qt_config->endGroup(); |
| 1234 | } | 1223 | } |
| @@ -1339,18 +1328,18 @@ void Config::SaveCpuValues() { | |||
| 1339 | WriteSettingGlobal(QStringLiteral("cpu_accuracy"), | 1328 | WriteSettingGlobal(QStringLiteral("cpu_accuracy"), |
| 1340 | static_cast<u32>(Settings::values.cpu_accuracy.GetValue(global)), | 1329 | static_cast<u32>(Settings::values.cpu_accuracy.GetValue(global)), |
| 1341 | Settings::values.cpu_accuracy.UsingGlobal(), | 1330 | Settings::values.cpu_accuracy.UsingGlobal(), |
| 1342 | static_cast<u32>(Settings::CPUAccuracy::Accurate)); | 1331 | static_cast<u32>(Settings::values.cpu_accuracy.GetDefault())); |
| 1343 | 1332 | ||
| 1344 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_unfuse_fma"), | 1333 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_unfuse_fma"), |
| 1345 | Settings::values.cpuopt_unsafe_unfuse_fma, true); | 1334 | Settings::values.cpuopt_unsafe_unfuse_fma); |
| 1346 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_reduce_fp_error"), | 1335 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_reduce_fp_error"), |
| 1347 | Settings::values.cpuopt_unsafe_reduce_fp_error, true); | 1336 | Settings::values.cpuopt_unsafe_reduce_fp_error); |
| 1348 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_ignore_standard_fpcr"), | 1337 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_ignore_standard_fpcr"), |
| 1349 | Settings::values.cpuopt_unsafe_ignore_standard_fpcr, true); | 1338 | Settings::values.cpuopt_unsafe_ignore_standard_fpcr); |
| 1350 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_inaccurate_nan"), | 1339 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_inaccurate_nan"), |
| 1351 | Settings::values.cpuopt_unsafe_inaccurate_nan, true); | 1340 | Settings::values.cpuopt_unsafe_inaccurate_nan); |
| 1352 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_fastmem_check"), | 1341 | WriteSettingGlobal(QStringLiteral("cpuopt_unsafe_fastmem_check"), |
| 1353 | Settings::values.cpuopt_unsafe_fastmem_check, true); | 1342 | Settings::values.cpuopt_unsafe_fastmem_check); |
| 1354 | 1343 | ||
| 1355 | if (global) { | 1344 | if (global) { |
| 1356 | WriteSetting(QStringLiteral("cpuopt_page_tables"), Settings::values.cpuopt_page_tables, | 1345 | WriteSetting(QStringLiteral("cpuopt_page_tables"), Settings::values.cpuopt_page_tables, |
| @@ -1377,45 +1366,37 @@ void Config::SaveRendererValues() { | |||
| 1377 | qt_config->beginGroup(QStringLiteral("Renderer")); | 1366 | qt_config->beginGroup(QStringLiteral("Renderer")); |
| 1378 | 1367 | ||
| 1379 | WriteSettingGlobal(QStringLiteral("backend"), | 1368 | WriteSettingGlobal(QStringLiteral("backend"), |
| 1380 | static_cast<int>(Settings::values.renderer_backend.GetValue(global)), | 1369 | static_cast<u32>(Settings::values.renderer_backend.GetValue(global)), |
| 1381 | Settings::values.renderer_backend.UsingGlobal(), 0); | 1370 | Settings::values.renderer_backend.UsingGlobal(), |
| 1382 | WriteSetting(QStringLiteral("debug"), Settings::values.renderer_debug, false); | 1371 | static_cast<u32>(Settings::values.renderer_backend.GetDefault())); |
| 1383 | WriteSettingGlobal(QStringLiteral("vulkan_device"), Settings::values.vulkan_device, 0); | 1372 | WriteSetting(QStringLiteral("debug"), Settings::values.renderer_debug); |
| 1384 | #ifdef _WIN32 | 1373 | WriteSettingGlobal(QStringLiteral("vulkan_device"), Settings::values.vulkan_device); |
| 1385 | WriteSettingGlobal(QStringLiteral("fullscreen_mode"), Settings::values.fullscreen_mode, 0); | 1374 | WriteSettingGlobal(QStringLiteral("fullscreen_mode"), Settings::values.fullscreen_mode); |
| 1386 | #else | 1375 | WriteSettingGlobal(QStringLiteral("aspect_ratio"), Settings::values.aspect_ratio); |
| 1387 | // *nix platforms may have issues with the borderless windowed fullscreen mode. | 1376 | WriteSettingGlobal(QStringLiteral("max_anisotropy"), Settings::values.max_anisotropy); |
| 1388 | // Default to exclusive fullscreen on these platforms for now. | 1377 | WriteSettingGlobal(QStringLiteral("use_frame_limit"), Settings::values.use_frame_limit); |
| 1389 | WriteSettingGlobal(QStringLiteral("fullscreen_mode"), Settings::values.fullscreen_mode, 1); | 1378 | WriteSettingGlobal(QStringLiteral("frame_limit"), Settings::values.frame_limit); |
| 1390 | #endif | ||
| 1391 | WriteSettingGlobal(QStringLiteral("aspect_ratio"), Settings::values.aspect_ratio, 0); | ||
| 1392 | WriteSettingGlobal(QStringLiteral("max_anisotropy"), Settings::values.max_anisotropy, 0); | ||
| 1393 | WriteSettingGlobal(QStringLiteral("use_frame_limit"), Settings::values.use_frame_limit, true); | ||
| 1394 | WriteSettingGlobal(QStringLiteral("frame_limit"), Settings::values.frame_limit, 100); | ||
| 1395 | WriteSettingGlobal(QStringLiteral("use_disk_shader_cache"), | 1379 | WriteSettingGlobal(QStringLiteral("use_disk_shader_cache"), |
| 1396 | Settings::values.use_disk_shader_cache, true); | 1380 | Settings::values.use_disk_shader_cache); |
| 1397 | WriteSettingGlobal(QStringLiteral("gpu_accuracy"), | 1381 | WriteSettingGlobal(QStringLiteral("gpu_accuracy"), |
| 1398 | static_cast<int>(Settings::values.gpu_accuracy.GetValue(global)), | 1382 | static_cast<u32>(Settings::values.gpu_accuracy.GetValue(global)), |
| 1399 | Settings::values.gpu_accuracy.UsingGlobal(), 1); | 1383 | Settings::values.gpu_accuracy.UsingGlobal(), |
| 1384 | static_cast<u32>(Settings::values.gpu_accuracy.GetDefault())); | ||
| 1400 | WriteSettingGlobal(QStringLiteral("use_asynchronous_gpu_emulation"), | 1385 | WriteSettingGlobal(QStringLiteral("use_asynchronous_gpu_emulation"), |
| 1401 | Settings::values.use_asynchronous_gpu_emulation, true); | 1386 | Settings::values.use_asynchronous_gpu_emulation); |
| 1402 | WriteSettingGlobal(QStringLiteral("use_nvdec_emulation"), Settings::values.use_nvdec_emulation, | 1387 | WriteSettingGlobal(QStringLiteral("use_nvdec_emulation"), Settings::values.use_nvdec_emulation); |
| 1403 | true); | 1388 | WriteSettingGlobal(QStringLiteral("accelerate_astc"), Settings::values.accelerate_astc); |
| 1404 | WriteSettingGlobal(QStringLiteral("accelerate_astc"), Settings::values.accelerate_astc, true); | 1389 | WriteSettingGlobal(QStringLiteral("use_vsync"), Settings::values.use_vsync); |
| 1405 | WriteSettingGlobal(QStringLiteral("use_vsync"), Settings::values.use_vsync, true); | 1390 | WriteSettingGlobal(QStringLiteral("disable_fps_limit"), Settings::values.disable_fps_limit); |
| 1406 | WriteSettingGlobal(QStringLiteral("disable_fps_limit"), Settings::values.disable_fps_limit, | ||
| 1407 | false); | ||
| 1408 | WriteSettingGlobal(QStringLiteral("use_assembly_shaders"), | 1391 | WriteSettingGlobal(QStringLiteral("use_assembly_shaders"), |
| 1409 | Settings::values.use_assembly_shaders, false); | 1392 | Settings::values.use_assembly_shaders); |
| 1410 | WriteSettingGlobal(QStringLiteral("use_asynchronous_shaders"), | 1393 | WriteSettingGlobal(QStringLiteral("use_asynchronous_shaders"), |
| 1411 | Settings::values.use_asynchronous_shaders, false); | 1394 | Settings::values.use_asynchronous_shaders); |
| 1412 | WriteSettingGlobal(QStringLiteral("use_fast_gpu_time"), Settings::values.use_fast_gpu_time, | 1395 | WriteSettingGlobal(QStringLiteral("use_fast_gpu_time"), Settings::values.use_fast_gpu_time); |
| 1413 | true); | 1396 | WriteSettingGlobal(QStringLiteral("use_caches_gc"), Settings::values.use_caches_gc); |
| 1414 | WriteSettingGlobal(QStringLiteral("use_caches_gc"), Settings::values.use_caches_gc, false); | 1397 | WriteSettingGlobal(QStringLiteral("bg_red"), Settings::values.bg_red); |
| 1415 | // Cast to double because Qt's written float values are not human-readable | 1398 | WriteSettingGlobal(QStringLiteral("bg_green"), Settings::values.bg_green); |
| 1416 | WriteSettingGlobal(QStringLiteral("bg_red"), Settings::values.bg_red, 0.0); | 1399 | WriteSettingGlobal(QStringLiteral("bg_blue"), Settings::values.bg_blue); |
| 1417 | WriteSettingGlobal(QStringLiteral("bg_green"), Settings::values.bg_green, 0.0); | ||
| 1418 | WriteSettingGlobal(QStringLiteral("bg_blue"), Settings::values.bg_blue, 0.0); | ||
| 1419 | 1400 | ||
| 1420 | qt_config->endGroup(); | 1401 | qt_config->endGroup(); |
| 1421 | } | 1402 | } |
| @@ -1454,10 +1435,10 @@ void Config::SaveShortcutValues() { | |||
| 1454 | void Config::SaveSystemValues() { | 1435 | void Config::SaveSystemValues() { |
| 1455 | qt_config->beginGroup(QStringLiteral("System")); | 1436 | qt_config->beginGroup(QStringLiteral("System")); |
| 1456 | 1437 | ||
| 1457 | WriteSetting(QStringLiteral("current_user"), Settings::values.current_user, 0); | 1438 | WriteSetting(QStringLiteral("current_user"), Settings::values.current_user); |
| 1458 | WriteSettingGlobal(QStringLiteral("language_index"), Settings::values.language_index, 1); | 1439 | WriteSettingGlobal(QStringLiteral("language_index"), Settings::values.language_index); |
| 1459 | WriteSettingGlobal(QStringLiteral("region_index"), Settings::values.region_index, 1); | 1440 | WriteSettingGlobal(QStringLiteral("region_index"), Settings::values.region_index); |
| 1460 | WriteSettingGlobal(QStringLiteral("time_zone_index"), Settings::values.time_zone_index, 0); | 1441 | WriteSettingGlobal(QStringLiteral("time_zone_index"), Settings::values.time_zone_index); |
| 1461 | 1442 | ||
| 1462 | WriteSettingGlobal(QStringLiteral("rng_seed_enabled"), | 1443 | WriteSettingGlobal(QStringLiteral("rng_seed_enabled"), |
| 1463 | Settings::values.rng_seed.GetValue(global).has_value(), | 1444 | Settings::values.rng_seed.GetValue(global).has_value(), |
| @@ -1475,7 +1456,7 @@ void Config::SaveSystemValues() { | |||
| 1475 | 0); | 1456 | 0); |
| 1476 | } | 1457 | } |
| 1477 | 1458 | ||
| 1478 | WriteSettingGlobal(QStringLiteral("sound_index"), Settings::values.sound_index, 1); | 1459 | WriteSettingGlobal(QStringLiteral("sound_index"), Settings::values.sound_index); |
| 1479 | 1460 | ||
| 1480 | qt_config->endGroup(); | 1461 | qt_config->endGroup(); |
| 1481 | } | 1462 | } |
| @@ -1574,22 +1555,25 @@ QVariant Config::ReadSetting(const QString& name, const QVariant& default_value) | |||
| 1574 | return result; | 1555 | return result; |
| 1575 | } | 1556 | } |
| 1576 | 1557 | ||
| 1577 | template <typename Type> | 1558 | QVariant Config::ReadSetting(const QString& name, Settings::CPUAccuracy default_value) const { |
| 1578 | void Config::ReadSettingGlobal(Settings::Setting<Type>& setting, const QString& name) { | 1559 | return ReadSetting(name, static_cast<u32>(default_value)); |
| 1579 | const bool use_global = qt_config->value(name + QStringLiteral("/use_global"), true).toBool(); | 1560 | } |
| 1580 | setting.SetGlobal(use_global); | 1561 | |
| 1581 | if (global || !use_global) { | 1562 | QVariant Config::ReadSetting(const QString& name, Settings::GPUAccuracy default_value) const { |
| 1582 | setting.SetValue(ReadSetting(name).value<Type>()); | 1563 | return ReadSetting(name, static_cast<u32>(default_value)); |
| 1583 | } | 1564 | } |
| 1565 | |||
| 1566 | QVariant Config::ReadSetting(const QString& name, Settings::RendererBackend default_value) const { | ||
| 1567 | return ReadSetting(name, static_cast<u32>(default_value)); | ||
| 1584 | } | 1568 | } |
| 1585 | 1569 | ||
| 1586 | template <typename Type> | 1570 | template <typename Type> |
| 1587 | void Config::ReadSettingGlobal(Settings::Setting<Type>& setting, const QString& name, | 1571 | void Config::ReadSettingGlobal(Settings::Setting<Type>& setting, const QString& name) { |
| 1588 | const QVariant& default_value) { | ||
| 1589 | const bool use_global = qt_config->value(name + QStringLiteral("/use_global"), true).toBool(); | 1572 | const bool use_global = qt_config->value(name + QStringLiteral("/use_global"), true).toBool(); |
| 1590 | setting.SetGlobal(use_global); | 1573 | setting.SetGlobal(use_global); |
| 1574 | const Type& default_value = setting.GetDefault(); | ||
| 1591 | if (global || !use_global) { | 1575 | if (global || !use_global) { |
| 1592 | setting.SetValue(ReadSetting(name, default_value).value<Type>()); | 1576 | setting.SetValue(static_cast<QVariant>(ReadSetting(name, default_value)).value<Type>()); |
| 1593 | } | 1577 | } |
| 1594 | } | 1578 | } |
| 1595 | 1579 | ||
| @@ -1618,19 +1602,8 @@ void Config::WriteSettingGlobal(const QString& name, const Settings::Setting<Typ | |||
| 1618 | qt_config->setValue(name + QStringLiteral("/use_global"), setting.UsingGlobal()); | 1602 | qt_config->setValue(name + QStringLiteral("/use_global"), setting.UsingGlobal()); |
| 1619 | } | 1603 | } |
| 1620 | if (global || !setting.UsingGlobal()) { | 1604 | if (global || !setting.UsingGlobal()) { |
| 1621 | qt_config->setValue(name, setting.GetValue(global)); | ||
| 1622 | } | ||
| 1623 | } | ||
| 1624 | |||
| 1625 | template <typename Type> | ||
| 1626 | void Config::WriteSettingGlobal(const QString& name, const Settings::Setting<Type>& setting, | ||
| 1627 | const QVariant& default_value) { | ||
| 1628 | if (!global) { | ||
| 1629 | qt_config->setValue(name + QStringLiteral("/use_global"), setting.UsingGlobal()); | ||
| 1630 | } | ||
| 1631 | if (global || !setting.UsingGlobal()) { | ||
| 1632 | qt_config->setValue(name + QStringLiteral("/default"), | 1605 | qt_config->setValue(name + QStringLiteral("/default"), |
| 1633 | setting.GetValue(global) == default_value.value<Type>()); | 1606 | setting.GetValue(global) == setting.GetDefault()); |
| 1634 | qt_config->setValue(name, setting.GetValue(global)); | 1607 | qt_config->setValue(name, setting.GetValue(global)); |
| 1635 | } | 1608 | } |
| 1636 | } | 1609 | } |
diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h index 3c1de0ac9..62501997c 100644 --- a/src/yuzu/configuration/config.h +++ b/src/yuzu/configuration/config.h | |||
| @@ -104,14 +104,14 @@ private: | |||
| 104 | 104 | ||
| 105 | QVariant ReadSetting(const QString& name) const; | 105 | QVariant ReadSetting(const QString& name) const; |
| 106 | QVariant ReadSetting(const QString& name, const QVariant& default_value) const; | 106 | QVariant ReadSetting(const QString& name, const QVariant& default_value) const; |
| 107 | QVariant ReadSetting(const QString& name, Settings::CPUAccuracy default_value) const; | ||
| 108 | QVariant ReadSetting(const QString& name, Settings::GPUAccuracy default_value) const; | ||
| 109 | QVariant ReadSetting(const QString& name, Settings::RendererBackend default_value) const; | ||
| 107 | // Templated ReadSettingGlobal functions will also look for the use_global setting and set | 110 | // Templated ReadSettingGlobal functions will also look for the use_global setting and set |
| 108 | // both the value and the global state properly | 111 | // both the value and the global state properly |
| 109 | template <typename Type> | 112 | template <typename Type> |
| 110 | void ReadSettingGlobal(Settings::Setting<Type>& setting, const QString& name); | 113 | void ReadSettingGlobal(Settings::Setting<Type>& setting, const QString& name); |
| 111 | template <typename Type> | 114 | template <typename Type> |
| 112 | void ReadSettingGlobal(Settings::Setting<Type>& setting, const QString& name, | ||
| 113 | const QVariant& default_value); | ||
| 114 | template <typename Type> | ||
| 115 | void ReadSettingGlobal(Type& setting, const QString& name, const QVariant& default_value) const; | 115 | void ReadSettingGlobal(Type& setting, const QString& name, const QVariant& default_value) const; |
| 116 | // Templated WriteSettingGlobal functions will also write the global state if needed and will | 116 | // Templated WriteSettingGlobal functions will also write the global state if needed and will |
| 117 | // skip writing the actual setting if it defers to the global value | 117 | // skip writing the actual setting if it defers to the global value |