diff --git a/src/citra/config.cpp b/src/citra/config.cpp index 47270ab36..7725666d7 100644 --- a/src/citra/config.cpp +++ b/src/citra/config.cpp @@ -201,7 +201,7 @@ void Config::ReadValues() { sdl2_config->GetBoolean("Data Storage", "use_virtual_sd", true); // System - Settings::values.is_new_3ds = sdl2_config->GetBoolean("System", "is_new_3ds", false); + Settings::values.is_new_3ds = sdl2_config->GetBoolean("System", "is_new_3ds", true); Settings::values.region_value = sdl2_config->GetInteger("System", "region_value", Settings::REGION_VALUE_AUTO_SELECT); Settings::values.init_clock = diff --git a/src/citra/default_ini.h b/src/citra/default_ini.h index 881700913..6b4ba4172 100644 --- a/src/citra/default_ini.h +++ b/src/citra/default_ini.h @@ -244,7 +244,7 @@ use_virtual_sd = [System] # The system model that Citra will try to emulate -# 0: Old 3DS (default), 1: New 3DS +# 0: Old 3DS, 1: New 3DS (default) is_new_3ds = # The system region that Citra will use during emulation diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp index d139a89e9..99142098c 100644 --- a/src/citra_qt/configuration/config.cpp +++ b/src/citra_qt/configuration/config.cpp @@ -482,7 +482,7 @@ void Config::ReadShortcutValues() { void Config::ReadSystemValues() { qt_config->beginGroup(QStringLiteral("System")); - Settings::values.is_new_3ds = ReadSetting(QStringLiteral("is_new_3ds"), false).toBool(); + Settings::values.is_new_3ds = ReadSetting(QStringLiteral("is_new_3ds"), true).toBool(); Settings::values.region_value = ReadSetting(QStringLiteral("region_value"), Settings::REGION_VALUE_AUTO_SELECT).toInt(); Settings::values.init_clock = static_cast( @@ -921,7 +921,7 @@ void Config::SaveShortcutValues() { void Config::SaveSystemValues() { qt_config->beginGroup(QStringLiteral("System")); - WriteSetting(QStringLiteral("is_new_3ds"), Settings::values.is_new_3ds, false); + WriteSetting(QStringLiteral("is_new_3ds"), Settings::values.is_new_3ds, true); WriteSetting(QStringLiteral("region_value"), Settings::values.region_value, Settings::REGION_VALUE_AUTO_SELECT); WriteSetting(QStringLiteral("init_clock"), static_cast(Settings::values.init_clock), diff --git a/src/citra_qt/configuration/configure_system.cpp b/src/citra_qt/configuration/configure_system.cpp index 139d92f7b..32ea7b3f3 100644 --- a/src/citra_qt/configuration/configure_system.cpp +++ b/src/citra_qt/configuration/configure_system.cpp @@ -277,6 +277,8 @@ void ConfigureSystem::SetConfiguration() { ui->slider_clock_speed->setValue(SettingsToSlider(Settings::values.cpu_clock_percentage)); ui->clock_display_label->setText( QStringLiteral("%1%").arg(Settings::values.cpu_clock_percentage)); + + ui->toggle_new_3ds->setChecked(Settings::values.is_new_3ds); } void ConfigureSystem::ReadSystemSettings() { @@ -374,6 +376,8 @@ void ConfigureSystem::ApplyConfiguration() { Settings::values.init_clock = static_cast(ui->combo_init_clock->currentIndex()); Settings::values.init_time = ui->edit_init_time->dateTime().toTime_t(); + + Settings::values.is_new_3ds = ui->toggle_new_3ds->isChecked(); } Settings::values.cpu_clock_percentage = SliderToSettings(ui->slider_clock_speed->value()); diff --git a/src/citra_qt/configuration/configure_system.ui b/src/citra_qt/configuration/configure_system.ui index 554993990..c6f12060c 100644 --- a/src/citra_qt/configuration/configure_system.ui +++ b/src/citra_qt/configuration/configure_system.ui @@ -22,14 +22,74 @@ System Settings - - - - Username + + + + Note: this can be overridden when region setting is auto-select + + + Japanese (日本語) + + + + + English + + + + + French (français) + + + + + German (Deutsch) + + + + + Italian (italiano) + + + + + Spanish (español) + + + + + Simplified Chinese (简体中文) + + + + + Korean (한국어) + + + + + Dutch (Nederlands) + + + + + Portuguese (português) + + + + + Russian (Русский) + + + + + Traditional Chinese (正體中文) + + - + @@ -42,14 +102,33 @@ - - + + - Birthday + Username - + + + + + Mono + + + + + Stereo + + + + + Surround + + + + + @@ -120,124 +199,38 @@ - + Language - - - - Note: this can be overridden when region setting is auto-select + + + + Birthday - - - Japanese (日本語) - - - - - English - - - - - French (français) - - - - - German (Deutsch) - - - - - Italian (italiano) - - - - - Spanish (español) - - - - - Simplified Chinese (简体中文) - - - - - Korean (한국어) - - - - - Dutch (Nederlands) - - - - - Portuguese (português) - - - - - Russian (Русский) - - - - - Traditional Chinese (正體中文) - - - + Sound output mode - - - - - Mono - - - - - Stereo - - - - - Surround - - - + + - + Country - - - - - - - Clock - - - - + @@ -251,42 +244,35 @@ - + + + + Clock + + + + Startup time - - - - yyyy-MM-ddTHH:mm:ss - - - - - - - Play Coins: - - - - + 300 - - + + - Console ID: + Play Coins: - + @@ -302,6 +288,27 @@ + + + + Console ID: + + + + + + + yyyy-MM-ddTHH:mm:ss + + + + + + + Enable New 3DS mode + + + diff --git a/src/core/hle/service/ptm/ptm.cpp b/src/core/hle/service/ptm/ptm.cpp index 7d30fcc5b..4af8291bf 100644 --- a/src/core/hle/service/ptm/ptm.cpp +++ b/src/core/hle/service/ptm/ptm.cpp @@ -117,15 +117,10 @@ void Module::Interface::GetSoftwareClosedFlag(Kernel::HLERequestContext& ctx) { void CheckNew3DS(IPC::RequestBuilder& rb) { const bool is_new_3ds = Settings::values.is_new_3ds; - if (is_new_3ds) { - LOG_CRITICAL(Service_PTM, "The option 'is_new_3ds' is enabled as part of the 'System' " - "settings. Citra does not fully support New 3DS emulation yet!"); - } - rb.Push(RESULT_SUCCESS); rb.Push(is_new_3ds); - LOG_WARNING(Service_PTM, "(STUBBED) called isNew3DS = 0x{:08x}", static_cast(is_new_3ds)); + LOG_DEBUG(Service_PTM, "called isNew3DS = 0x{:08x}", static_cast(is_new_3ds)); } void Module::Interface::CheckNew3DS(Kernel::HLERequestContext& ctx) {