summaryrefslogtreecommitdiff
path: root/src/core/core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/core.cpp')
-rw-r--r--src/core/core.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 613a98b4c..8c5dd3761 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -133,7 +133,7 @@ void System::Reschedule() {
133 } 133 }
134 134
135 reschedule_pending = false; 135 reschedule_pending = false;
136 Kernel::Reschedule(); 136 Core::System::GetInstance().Scheduler().Reschedule();
137} 137}
138 138
139System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) { 139System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) {
@@ -141,19 +141,20 @@ System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) {
141 141
142 switch (Settings::values.cpu_core) { 142 switch (Settings::values.cpu_core) {
143 case Settings::CpuCore::Unicorn: 143 case Settings::CpuCore::Unicorn:
144 cpu_core = std::make_unique<ARM_Unicorn>(); 144 cpu_core = std::make_shared<ARM_Unicorn>();
145 break; 145 break;
146 case Settings::CpuCore::Dynarmic: 146 case Settings::CpuCore::Dynarmic:
147 default: 147 default:
148#ifdef ARCHITECTURE_x86_64 148#ifdef ARCHITECTURE_x86_64
149 cpu_core = std::make_unique<ARM_Dynarmic>(); 149 cpu_core = std::make_shared<ARM_Dynarmic>();
150#else 150#else
151 cpu_core = std::make_unique<ARM_Unicorn>(); 151 cpu_core = std::make_shared<ARM_Unicorn>();
152 LOG_WARNING(Core, "CPU JIT requested, but Dynarmic not available"); 152 LOG_WARNING(Core, "CPU JIT requested, but Dynarmic not available");
153#endif 153#endif
154 break; 154 break;
155 } 155 }
156 156
157 scheduler = std::make_unique<Kernel::Scheduler>(cpu_core.get());
157 gpu_core = std::make_unique<Tegra::GPU>(); 158 gpu_core = std::make_unique<Tegra::GPU>();
158 159
159 telemetry_session = std::make_unique<Core::TelemetrySession>(); 160 telemetry_session = std::make_unique<Core::TelemetrySession>();