mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-11-04 12:34:39 +08:00 
			
		
		
		
	config: Use simplified checkbox (from Citra) for CPU JIT.
This commit is contained in:
		
							parent
							
								
									5ecf152c8e
								
							
						
					
					
						commit
						94f4009c3b
					
				@ -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,31 +44,24 @@
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
       <widget class="QGroupBox" name="CpuCoreGroupBox">
 | 
			
		||||
         <property name="title">
 | 
			
		||||
           <string>CPU Core</string>
 | 
			
		||||
         </property>
 | 
			
		||||
         <layout class="QHBoxLayout" name="CpuCoreHorizontalLayout">
 | 
			
		||||
           <item>
 | 
			
		||||
             <layout class="QVBoxLayout" name="CpuCoreVerticalLayout">
 | 
			
		||||
               <item>
 | 
			
		||||
                 <widget class="QComboBox" name="cpu_core_combobox">
 | 
			
		||||
                  <item>
 | 
			
		||||
                   <property name="text">
 | 
			
		||||
                    <string>Unicorn</string>
 | 
			
		||||
                   </property>
 | 
			
		||||
                  </item>
 | 
			
		||||
                  <item>
 | 
			
		||||
                   <property name="text">
 | 
			
		||||
                    <string>Dynarmic</string>
 | 
			
		||||
                   </property>
 | 
			
		||||
                  </item>
 | 
			
		||||
                 </widget>
 | 
			
		||||
               </item>
 | 
			
		||||
             </layout>
 | 
			
		||||
           </item>
 | 
			
		||||
      <widget class="QGroupBox" name="PerformanceGroupBox">
 | 
			
		||||
       <property name="title">
 | 
			
		||||
        <string>Performance</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <layout class="QHBoxLayout" name="PerformanceHorizontalLayout">
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QVBoxLayout" name="PerformanceVerticalLayout">
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QCheckBox" name="use_cpu_jit">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Enable CPU JIT</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
         </layout>
 | 
			
		||||
       </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QGroupBox" name="EmulationGroupBox">
 | 
			
		||||
 | 
			
		||||
@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user