summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/settings.cpp5
-rw-r--r--src/common/settings.h10
-rw-r--r--src/common/settings_enums.h2
3 files changed, 17 insertions, 0 deletions
diff --git a/src/common/settings.cpp b/src/common/settings.cpp
index a10131eb2..19dfe08da 100644
--- a/src/common/settings.cpp
+++ b/src/common/settings.cpp
@@ -41,6 +41,7 @@ SWITCHABLE(AspectRatio, true);
41SWITCHABLE(AstcDecodeMode, true); 41SWITCHABLE(AstcDecodeMode, true);
42SWITCHABLE(AstcRecompression, true); 42SWITCHABLE(AstcRecompression, true);
43SWITCHABLE(AudioMode, true); 43SWITCHABLE(AudioMode, true);
44SWITCHABLE(CpuBackend, true);
44SWITCHABLE(CpuAccuracy, true); 45SWITCHABLE(CpuAccuracy, true);
45SWITCHABLE(FullscreenMode, true); 46SWITCHABLE(FullscreenMode, true);
46SWITCHABLE(GpuAccuracy, true); 47SWITCHABLE(GpuAccuracy, true);
@@ -155,6 +156,10 @@ bool IsFastmemEnabled() {
155 return true; 156 return true;
156} 157}
157 158
159bool IsNceEnabled(bool is_64bit) {
160 return values.cpu_backend.GetValue() == CpuBackend::Nce && is_64bit;
161}
162
158bool IsDockedMode() { 163bool IsDockedMode() {
159 return values.use_docked_mode.GetValue() == Settings::ConsoleMode::Docked; 164 return values.use_docked_mode.GetValue() == Settings::ConsoleMode::Docked;
160} 165}
diff --git a/src/common/settings.h b/src/common/settings.h
index e75099b89..389c747cb 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -63,6 +63,7 @@ SWITCHABLE(AspectRatio, true);
63SWITCHABLE(AstcDecodeMode, true); 63SWITCHABLE(AstcDecodeMode, true);
64SWITCHABLE(AstcRecompression, true); 64SWITCHABLE(AstcRecompression, true);
65SWITCHABLE(AudioMode, true); 65SWITCHABLE(AudioMode, true);
66SWITCHABLE(CpuBackend, true);
66SWITCHABLE(CpuAccuracy, true); 67SWITCHABLE(CpuAccuracy, true);
67SWITCHABLE(FullscreenMode, true); 68SWITCHABLE(FullscreenMode, true);
68SWITCHABLE(GpuAccuracy, true); 69SWITCHABLE(GpuAccuracy, true);
@@ -179,6 +180,14 @@ struct Values {
179 &use_speed_limit}; 180 &use_speed_limit};
180 181
181 // Cpu 182 // Cpu
183 SwitchableSetting<CpuBackend, true> cpu_backend{
184 linkage, CpuBackend::Dynarmic, CpuBackend::Dynarmic,
185#ifdef ARCHITECTURE_arm64
186 CpuBackend::Nce,
187#else
188 CpuBackend::Dynarmic,
189#endif
190 "cpu_backend", Category::Cpu};
182 SwitchableSetting<CpuAccuracy, true> cpu_accuracy{linkage, CpuAccuracy::Auto, 191 SwitchableSetting<CpuAccuracy, true> cpu_accuracy{linkage, CpuAccuracy::Auto,
183 CpuAccuracy::Auto, CpuAccuracy::Paranoid, 192 CpuAccuracy::Auto, CpuAccuracy::Paranoid,
184 "cpu_accuracy", Category::Cpu}; 193 "cpu_accuracy", Category::Cpu};
@@ -564,6 +573,7 @@ bool IsGPULevelExtreme();
564bool IsGPULevelHigh(); 573bool IsGPULevelHigh();
565 574
566bool IsFastmemEnabled(); 575bool IsFastmemEnabled();
576bool IsNceEnabled(bool is_64bit = true);
567 577
568bool IsDockedMode(); 578bool IsDockedMode();
569 579
diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h
index 11429d7a8..d6351e57e 100644
--- a/src/common/settings_enums.h
+++ b/src/common/settings_enums.h
@@ -129,6 +129,8 @@ ENUM(ShaderBackend, Glsl, Glasm, SpirV);
129 129
130ENUM(GpuAccuracy, Normal, High, Extreme); 130ENUM(GpuAccuracy, Normal, High, Extreme);
131 131
132ENUM(CpuBackend, Dynarmic, Nce);
133
132ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid); 134ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid);
133 135
134ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb); 136ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb);