summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar MerryMage2018-01-12 16:06:30 +0000
committerGravatar bunnei2018-01-12 17:48:52 -0500
commitb628192bf27c871af3ecbf8982b4a13a78fd70c4 (patch)
treea5d66996675378584d2324c48c8e3ef4c8f33a74 /src/core
parentarm_dynarmic: Implement core (diff)
downloadyuzu-b628192bf27c871af3ecbf8982b4a13a78fd70c4.tar.gz
yuzu-b628192bf27c871af3ecbf8982b4a13a78fd70c4.tar.xz
yuzu-b628192bf27c871af3ecbf8982b4a13a78fd70c4.zip
configuration: Add cpu_core configuration option
Diffstat (limited to 'src/core')
-rw-r--r--src/core/core.cpp12
-rw-r--r--src/core/settings.h7
-rw-r--r--src/core/telemetry_session.cpp3
3 files changed, 18 insertions, 4 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 0240f946b..e5f299f26 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -140,8 +140,16 @@ void System::Reschedule() {
140System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) { 140System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) {
141 LOG_DEBUG(HW_Memory, "initialized OK"); 141 LOG_DEBUG(HW_Memory, "initialized OK");
142 142
143 // TODO: Configuration option 143 switch (Settings::values.cpu_core) {
144 cpu_core = std::make_unique<ARM_Dynarmic>(); 144 case Settings::CpuCore::Unicorn:
145 cpu_core = std::make_unique<ARM_Unicorn>();
146 break;
147 case Settings::CpuCore::Dynarmic:
148 default:
149 cpu_core = std::make_unique<ARM_Dynarmic>();
150 break;
151 }
152
145 telemetry_session = std::make_unique<Core::TelemetrySession>(); 153 telemetry_session = std::make_unique<Core::TelemetrySession>();
146 154
147 CoreTiming::Init(); 155 CoreTiming::Init();
diff --git a/src/core/settings.h b/src/core/settings.h
index 912b2c885..ebf072cff 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -72,6 +72,11 @@ static const std::array<const char*, NumAnalogs> mapping = {{
72}}; 72}};
73} // namespace NativeAnalog 73} // namespace NativeAnalog
74 74
75enum class CpuCore {
76 Unicorn,
77 Dynarmic,
78};
79
75struct Values { 80struct Values {
76 // CheckNew3DS 81 // CheckNew3DS
77 bool is_new_3ds; 82 bool is_new_3ds;
@@ -83,7 +88,7 @@ struct Values {
83 std::string touch_device; 88 std::string touch_device;
84 89
85 // Core 90 // Core
86 bool use_cpu_jit; 91 CpuCore cpu_core;
87 92
88 // Data Storage 93 // Data Storage
89 bool use_virtual_sd; 94 bool use_virtual_sd;
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
index ca517ff44..f9725b590 100644
--- a/src/core/telemetry_session.cpp
+++ b/src/core/telemetry_session.cpp
@@ -156,7 +156,8 @@ TelemetrySession::TelemetrySession() {
156 // Log user configuration information 156 // Log user configuration information
157 AddField(Telemetry::FieldType::UserConfig, "Audio_EnableAudioStretching", 157 AddField(Telemetry::FieldType::UserConfig, "Audio_EnableAudioStretching",
158 Settings::values.enable_audio_stretching); 158 Settings::values.enable_audio_stretching);
159 AddField(Telemetry::FieldType::UserConfig, "Core_UseCpuJit", Settings::values.use_cpu_jit); 159 AddField(Telemetry::FieldType::UserConfig, "Core_CpuCore",
160 static_cast<int>(Settings::values.cpu_core));
160 AddField(Telemetry::FieldType::UserConfig, "Renderer_ResolutionFactor", 161 AddField(Telemetry::FieldType::UserConfig, "Renderer_ResolutionFactor",
161 Settings::values.resolution_factor); 162 Settings::values.resolution_factor);
162 AddField(Telemetry::FieldType::UserConfig, "Renderer_ToggleFramelimit", 163 AddField(Telemetry::FieldType::UserConfig, "Renderer_ToggleFramelimit",