forked from suyu/suyu
config: Use simplified checkbox (from Citra) for CPU JIT.
This commit is contained in:
parent
5ecf152c8e
commit
94f4009c3b
8 changed files with 33 additions and 46 deletions
|
@ -148,19 +148,15 @@ System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) {
|
|||
|
||||
current_process = Kernel::Process::Create("main");
|
||||
|
||||
switch (Settings::values.cpu_core) {
|
||||
case Settings::CpuCore::Unicorn:
|
||||
cpu_core = std::make_shared<ARM_Unicorn>();
|
||||
break;
|
||||
case Settings::CpuCore::Dynarmic:
|
||||
default:
|
||||
if (Settings::values.use_cpu_jit) {
|
||||
#ifdef ARCHITECTURE_x86_64
|
||||
cpu_core = std::make_shared<ARM_Dynarmic>();
|
||||
#else
|
||||
cpu_core = std::make_shared<ARM_Unicorn>();
|
||||
LOG_WARNING(Core, "CPU JIT requested, but Dynarmic not available");
|
||||
#endif
|
||||
break;
|
||||
} else {
|
||||
cpu_core = std::make_shared<ARM_Unicorn>();
|
||||
}
|
||||
|
||||
gpu_core = std::make_unique<Tegra::GPU>();
|
||||
|
|
|
@ -121,7 +121,7 @@ struct Values {
|
|||
std::string touch_device;
|
||||
|
||||
// Core
|
||||
CpuCore cpu_core;
|
||||
bool use_cpu_jit;
|
||||
|
||||
// Data Storage
|
||||
bool use_virtual_sd;
|
||||
|
|
|
@ -154,12 +154,13 @@ TelemetrySession::TelemetrySession() {
|
|||
#endif
|
||||
|
||||
// Log user configuration information
|
||||
AddField(Telemetry::FieldType::UserConfig, "Core_CpuCore",
|
||||
static_cast<int>(Settings::values.cpu_core));
|
||||
AddField(Telemetry::FieldType::UserConfig, "Core_UseCpuJit", Settings::values.use_cpu_jit);
|
||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_ResolutionFactor",
|
||||
Settings::values.resolution_factor);
|
||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_ToggleFramelimit",
|
||||
Settings::values.toggle_framelimit);
|
||||
AddField(Telemetry::FieldType::UserConfig, "System_UseDockedMode",
|
||||
Settings::values.use_docked_mode);
|
||||
}
|
||||
|
||||
TelemetrySession::~TelemetrySession() {
|
||||
|
|
|
@ -77,8 +77,7 @@ void Config::ReadValues() {
|
|||
qt_config->endGroup();
|
||||
|
||||
qt_config->beginGroup("Core");
|
||||
Settings::values.cpu_core =
|
||||
static_cast<Settings::CpuCore>(qt_config->value("cpu_core", 1).toInt());
|
||||
Settings::values.use_cpu_jit = qt_config->value("use_cpu_jit", true).toBool();
|
||||
qt_config->endGroup();
|
||||
|
||||
qt_config->beginGroup("Renderer");
|
||||
|
@ -175,7 +174,7 @@ void Config::SaveValues() {
|
|||
qt_config->endGroup();
|
||||
|
||||
qt_config->beginGroup("Core");
|
||||
qt_config->setValue("cpu_core", static_cast<int>(Settings::values.cpu_core));
|
||||
qt_config->setValue("use_cpu_jit", Settings::values.use_cpu_jit);
|
||||
qt_config->endGroup();
|
||||
|
||||
qt_config->beginGroup("Renderer");
|
||||
|
|
|
@ -15,7 +15,7 @@ ConfigureGeneral::ConfigureGeneral(QWidget* parent)
|
|||
|
||||
this->setConfiguration();
|
||||
|
||||
ui->cpu_core_combobox->setEnabled(!Core::System::GetInstance().IsPoweredOn());
|
||||
ui->use_cpu_jit->setEnabled(!Core::System::GetInstance().IsPoweredOn());
|
||||
ui->use_docked_mode->setEnabled(!Core::System::GetInstance().IsPoweredOn());
|
||||
}
|
||||
|
||||
|
@ -24,15 +24,14 @@ ConfigureGeneral::~ConfigureGeneral() {}
|
|||
void ConfigureGeneral::setConfiguration() {
|
||||
ui->toggle_deepscan->setChecked(UISettings::values.gamedir_deepscan);
|
||||
ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing);
|
||||
ui->cpu_core_combobox->setCurrentIndex(static_cast<int>(Settings::values.cpu_core));
|
||||
ui->use_cpu_jit->setChecked(Settings::values.use_cpu_jit);
|
||||
ui->use_docked_mode->setChecked(Settings::values.use_docked_mode);
|
||||
}
|
||||
|
||||
void ConfigureGeneral::applyConfiguration() {
|
||||
UISettings::values.gamedir_deepscan = ui->toggle_deepscan->isChecked();
|
||||
UISettings::values.confirm_before_closing = ui->toggle_check_exit->isChecked();
|
||||
Settings::values.cpu_core =
|
||||
static_cast<Settings::CpuCore>(ui->cpu_core_combobox->currentIndex());
|
||||
Settings::values.use_cpu_jit = ui->use_cpu_jit->isChecked();
|
||||
Settings::values.use_docked_mode = ui->use_docked_mode->isChecked();
|
||||
Settings::Apply();
|
||||
}
|
||||
|
|
|
@ -44,25 +44,18 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="CpuCoreGroupBox">
|
||||
<widget class="QGroupBox" name="PerformanceGroupBox">
|
||||
<property name="title">
|
||||
<string>CPU Core</string>
|
||||
<string>Performance</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="CpuCoreHorizontalLayout">
|
||||
<layout class="QHBoxLayout" name="PerformanceHorizontalLayout">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="CpuCoreVerticalLayout">
|
||||
<item>
|
||||
<widget class="QComboBox" name="cpu_core_combobox">
|
||||
<layout class="QVBoxLayout" name="PerformanceVerticalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="use_cpu_jit">
|
||||
<property name="text">
|
||||
<string>Unicorn</string>
|
||||
<string>Enable CPU JIT</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Dynarmic</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
|
@ -90,8 +90,7 @@ void Config::ReadValues() {
|
|||
sdl2_config->Get("Controls", "touch_device", "engine:emu_window");
|
||||
|
||||
// Core
|
||||
Settings::values.cpu_core =
|
||||
static_cast<Settings::CpuCore>(sdl2_config->GetInteger("Core", "cpu_core", 1));
|
||||
Settings::values.use_cpu_jit = sdl2_config->GetBoolean("Core", "use_cpu_jit", true);
|
||||
|
||||
// Renderer
|
||||
Settings::values.resolution_factor =
|
||||
|
|
|
@ -76,9 +76,9 @@ motion_device=
|
|||
touch_device=
|
||||
|
||||
[Core]
|
||||
# Which CPU core to use for CPU emulation
|
||||
# 0: Unicorn (slow), 1 (default): Dynarmic (faster)
|
||||
cpu_core =
|
||||
# Whether to use the Just-In-Time (JIT) compiler for CPU emulation
|
||||
# 0: Interpreter (slow), 1 (default): JIT (fast)
|
||||
use_cpu_jit =
|
||||
|
||||
[Renderer]
|
||||
# Whether to use software or hardware rendering.
|
||||
|
|
Loading…
Reference in a new issue