configuration: Add cpu_core configuration option

This commit is contained in:
MerryMage 2018-01-12 16:06:30 +00:00 committed by bunnei
parent d2fbc78320
commit b628192bf2
8 changed files with 40 additions and 16 deletions

View file

@ -140,8 +140,16 @@ void System::Reschedule() {
System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) {
LOG_DEBUG(HW_Memory, "initialized OK");
// TODO: Configuration option
cpu_core = std::make_unique<ARM_Dynarmic>();
switch (Settings::values.cpu_core) {
case Settings::CpuCore::Unicorn:
cpu_core = std::make_unique<ARM_Unicorn>();
break;
case Settings::CpuCore::Dynarmic:
default:
cpu_core = std::make_unique<ARM_Dynarmic>();
break;
}
telemetry_session = std::make_unique<Core::TelemetrySession>();
CoreTiming::Init();

View file

@ -72,6 +72,11 @@ static const std::array<const char*, NumAnalogs> mapping = {{
}};
} // namespace NativeAnalog
enum class CpuCore {
Unicorn,
Dynarmic,
};
struct Values {
// CheckNew3DS
bool is_new_3ds;
@ -83,7 +88,7 @@ struct Values {
std::string touch_device;
// Core
bool use_cpu_jit;
CpuCore cpu_core;
// Data Storage
bool use_virtual_sd;

View file

@ -156,7 +156,8 @@ TelemetrySession::TelemetrySession() {
// Log user configuration information
AddField(Telemetry::FieldType::UserConfig, "Audio_EnableAudioStretching",
Settings::values.enable_audio_stretching);
AddField(Telemetry::FieldType::UserConfig, "Core_UseCpuJit", Settings::values.use_cpu_jit);
AddField(Telemetry::FieldType::UserConfig, "Core_CpuCore",
static_cast<int>(Settings::values.cpu_core));
AddField(Telemetry::FieldType::UserConfig, "Renderer_ResolutionFactor",
Settings::values.resolution_factor);
AddField(Telemetry::FieldType::UserConfig, "Renderer_ToggleFramelimit",