mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Merge remote-tracking branch 'upstream/master' into feature/savestates-2
This commit is contained in:
		
						commit
						03379b2072
					
				
					 17 changed files with 224 additions and 93 deletions
				
			
		|  | @ -253,6 +253,8 @@ void Config::ReadCoreValues() { | |||
|     qt_config->beginGroup(QStringLiteral("Core")); | ||||
| 
 | ||||
|     Settings::values.use_cpu_jit = ReadSetting(QStringLiteral("use_cpu_jit"), true).toBool(); | ||||
|     Settings::values.cpu_clock_percentage = | ||||
|         ReadSetting(QStringLiteral("cpu_clock_percentage"), 100).toInt(); | ||||
| 
 | ||||
|     qt_config->endGroup(); | ||||
| } | ||||
|  | @ -737,6 +739,8 @@ void Config::SaveCoreValues() { | |||
|     qt_config->beginGroup(QStringLiteral("Core")); | ||||
| 
 | ||||
|     WriteSetting(QStringLiteral("use_cpu_jit"), Settings::values.use_cpu_jit, true); | ||||
|     WriteSetting(QStringLiteral("cpu_clock_percentage"), Settings::values.cpu_clock_percentage, | ||||
|                  100); | ||||
| 
 | ||||
|     qt_config->endGroup(); | ||||
| } | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
|     <x>0</x> | ||||
|     <y>0</y> | ||||
|     <width>345</width> | ||||
|     <height>357</height> | ||||
|     <height>358</height> | ||||
|    </rect> | ||||
|   </property> | ||||
|   <property name="windowTitle"> | ||||
|  | @ -68,6 +68,13 @@ | |||
|         <string>Emulation</string> | ||||
|        </property> | ||||
|        <layout class="QGridLayout" name="gridLayout"> | ||||
|         <item row="1" column="0"> | ||||
|          <widget class="QCheckBox" name="toggle_frame_limit"> | ||||
|           <property name="text"> | ||||
|            <string>Limit Speed Percent</string> | ||||
|           </property> | ||||
|          </widget> | ||||
|         </item> | ||||
|         <item row="0" column="0"> | ||||
|          <widget class="QLabel" name="label"> | ||||
|           <property name="text"> | ||||
|  | @ -119,13 +126,6 @@ | |||
|           </item> | ||||
|          </widget> | ||||
|         </item> | ||||
|         <item row="1" column="0"> | ||||
|          <widget class="QCheckBox" name="toggle_frame_limit"> | ||||
|           <property name="text"> | ||||
|            <string>Limit Speed Percent</string> | ||||
|           </property> | ||||
|          </widget> | ||||
|         </item> | ||||
|         <item row="1" column="1"> | ||||
|          <widget class="QSpinBox" name="frame_limit"> | ||||
|           <property name="suffix"> | ||||
|  |  | |||
|  | @ -217,6 +217,17 @@ static const std::array<const char*, 187> country_names = { | |||
|     QT_TRANSLATE_NOOP("ConfigureSystem", "Bermuda"), // 180-186
 | ||||
| }; | ||||
| 
 | ||||
| // The QSlider doesn't have an easy way to set a custom step amount,
 | ||||
| // so we can just convert from the sliders range (0 - 79) to the expected
 | ||||
| // settings range (5 - 400) with simple math.
 | ||||
| static constexpr int SliderToSettings(int value) { | ||||
|     return 5 * value + 5; | ||||
| } | ||||
| 
 | ||||
| static constexpr int SettingsToSlider(int value) { | ||||
|     return (value - 5) / 5; | ||||
| } | ||||
| 
 | ||||
| ConfigureSystem::ConfigureSystem(QWidget* parent) : QWidget(parent), ui(new Ui::ConfigureSystem) { | ||||
|     ui->setupUi(this); | ||||
|     connect(ui->combo_birthmonth, | ||||
|  | @ -233,6 +244,10 @@ ConfigureSystem::ConfigureSystem(QWidget* parent) : QWidget(parent), ui(new Ui:: | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     connect(ui->slider_clock_speed, &QSlider::valueChanged, [&](int value) { | ||||
|         ui->clock_display_label->setText(QStringLiteral("%1%").arg(SliderToSettings(value))); | ||||
|     }); | ||||
| 
 | ||||
|     ConfigureTime(); | ||||
| } | ||||
| 
 | ||||
|  | @ -258,6 +273,10 @@ void ConfigureSystem::SetConfiguration() { | |||
| 
 | ||||
|         ui->label_disable_info->hide(); | ||||
|     } | ||||
| 
 | ||||
|     ui->slider_clock_speed->setValue(SettingsToSlider(Settings::values.cpu_clock_percentage)); | ||||
|     ui->clock_display_label->setText( | ||||
|         QStringLiteral("%1%").arg(Settings::values.cpu_clock_percentage)); | ||||
| } | ||||
| 
 | ||||
| void ConfigureSystem::ReadSystemSettings() { | ||||
|  | @ -299,65 +318,65 @@ void ConfigureSystem::ReadSystemSettings() { | |||
| } | ||||
| 
 | ||||
| void ConfigureSystem::ApplyConfiguration() { | ||||
|     if (!enabled) { | ||||
|         return; | ||||
|     if (enabled) { | ||||
|         bool modified = false; | ||||
| 
 | ||||
|         // apply username
 | ||||
|         // TODO(wwylele): Use this when we move to Qt 5.5
 | ||||
|         // std::u16string new_username = ui->edit_username->text().toStdU16String();
 | ||||
|         std::u16string new_username( | ||||
|             reinterpret_cast<const char16_t*>(ui->edit_username->text().utf16())); | ||||
|         if (new_username != username) { | ||||
|             cfg->SetUsername(new_username); | ||||
|             modified = true; | ||||
|         } | ||||
| 
 | ||||
|         // apply birthday
 | ||||
|         int new_birthmonth = ui->combo_birthmonth->currentIndex() + 1; | ||||
|         int new_birthday = ui->combo_birthday->currentIndex() + 1; | ||||
|         if (birthmonth != new_birthmonth || birthday != new_birthday) { | ||||
|             cfg->SetBirthday(new_birthmonth, new_birthday); | ||||
|             modified = true; | ||||
|         } | ||||
| 
 | ||||
|         // apply language
 | ||||
|         int new_language = ui->combo_language->currentIndex(); | ||||
|         if (language_index != new_language) { | ||||
|             cfg->SetSystemLanguage(static_cast<Service::CFG::SystemLanguage>(new_language)); | ||||
|             modified = true; | ||||
|         } | ||||
| 
 | ||||
|         // apply sound
 | ||||
|         int new_sound = ui->combo_sound->currentIndex(); | ||||
|         if (sound_index != new_sound) { | ||||
|             cfg->SetSoundOutputMode(static_cast<Service::CFG::SoundOutputMode>(new_sound)); | ||||
|             modified = true; | ||||
|         } | ||||
| 
 | ||||
|         // apply country
 | ||||
|         u8 new_country = static_cast<u8>(ui->combo_country->currentData().toInt()); | ||||
|         if (country_code != new_country) { | ||||
|             cfg->SetCountryCode(new_country); | ||||
|             modified = true; | ||||
|         } | ||||
| 
 | ||||
|         // apply play coin
 | ||||
|         u16 new_play_coin = static_cast<u16>(ui->spinBox_play_coins->value()); | ||||
|         if (play_coin != new_play_coin) { | ||||
|             Service::PTM::Module::SetPlayCoins(new_play_coin); | ||||
|         } | ||||
| 
 | ||||
|         // update the config savegame if any item is modified.
 | ||||
|         if (modified) { | ||||
|             cfg->UpdateConfigNANDSavegame(); | ||||
|         } | ||||
| 
 | ||||
|         Settings::values.init_clock = | ||||
|             static_cast<Settings::InitClock>(ui->combo_init_clock->currentIndex()); | ||||
|         Settings::values.init_time = ui->edit_init_time->dateTime().toTime_t(); | ||||
|     } | ||||
| 
 | ||||
|     bool modified = false; | ||||
| 
 | ||||
|     // apply username
 | ||||
|     // TODO(wwylele): Use this when we move to Qt 5.5
 | ||||
|     // std::u16string new_username = ui->edit_username->text().toStdU16String();
 | ||||
|     std::u16string new_username( | ||||
|         reinterpret_cast<const char16_t*>(ui->edit_username->text().utf16())); | ||||
|     if (new_username != username) { | ||||
|         cfg->SetUsername(new_username); | ||||
|         modified = true; | ||||
|     } | ||||
| 
 | ||||
|     // apply birthday
 | ||||
|     int new_birthmonth = ui->combo_birthmonth->currentIndex() + 1; | ||||
|     int new_birthday = ui->combo_birthday->currentIndex() + 1; | ||||
|     if (birthmonth != new_birthmonth || birthday != new_birthday) { | ||||
|         cfg->SetBirthday(new_birthmonth, new_birthday); | ||||
|         modified = true; | ||||
|     } | ||||
| 
 | ||||
|     // apply language
 | ||||
|     int new_language = ui->combo_language->currentIndex(); | ||||
|     if (language_index != new_language) { | ||||
|         cfg->SetSystemLanguage(static_cast<Service::CFG::SystemLanguage>(new_language)); | ||||
|         modified = true; | ||||
|     } | ||||
| 
 | ||||
|     // apply sound
 | ||||
|     int new_sound = ui->combo_sound->currentIndex(); | ||||
|     if (sound_index != new_sound) { | ||||
|         cfg->SetSoundOutputMode(static_cast<Service::CFG::SoundOutputMode>(new_sound)); | ||||
|         modified = true; | ||||
|     } | ||||
| 
 | ||||
|     // apply country
 | ||||
|     u8 new_country = static_cast<u8>(ui->combo_country->currentData().toInt()); | ||||
|     if (country_code != new_country) { | ||||
|         cfg->SetCountryCode(new_country); | ||||
|         modified = true; | ||||
|     } | ||||
| 
 | ||||
|     // apply play coin
 | ||||
|     u16 new_play_coin = static_cast<u16>(ui->spinBox_play_coins->value()); | ||||
|     if (play_coin != new_play_coin) { | ||||
|         Service::PTM::Module::SetPlayCoins(new_play_coin); | ||||
|     } | ||||
| 
 | ||||
|     // update the config savegame if any item is modified.
 | ||||
|     if (modified) { | ||||
|         cfg->UpdateConfigNANDSavegame(); | ||||
|     } | ||||
| 
 | ||||
|     Settings::values.init_clock = | ||||
|         static_cast<Settings::InitClock>(ui->combo_init_clock->currentIndex()); | ||||
|     Settings::values.init_time = ui->edit_init_time->dateTime().toTime_t(); | ||||
|     Settings::values.cpu_clock_percentage = SliderToSettings(ui->slider_clock_speed->value()); | ||||
|     Settings::Apply(); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,8 +6,8 @@ | |||
|    <rect> | ||||
|     <x>0</x> | ||||
|     <y>0</y> | ||||
|     <width>360</width> | ||||
|     <height>377</height> | ||||
|     <width>471</width> | ||||
|     <height>555</height> | ||||
|    </rect> | ||||
|   </property> | ||||
|   <property name="windowTitle"> | ||||
|  | @ -228,8 +228,7 @@ | |||
|          </widget> | ||||
|         </item> | ||||
|         <item row="4" column="1"> | ||||
|          <widget class="QComboBox" name="combo_country"> | ||||
|          </widget> | ||||
|          <widget class="QComboBox" name="combo_country"/> | ||||
|         </item> | ||||
|         <item row="5" column="0"> | ||||
|          <widget class="QLabel" name="label_init_clock"> | ||||
|  | @ -306,6 +305,63 @@ | |||
|        </layout> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
|       <widget class="QGroupBox" name="groupBox"> | ||||
|        <property name="title"> | ||||
|         <string>Advanced</string> | ||||
|        </property> | ||||
|        <layout class="QGridLayout" name="gridLayout_2"> | ||||
|         <item row="0" column="0"> | ||||
|          <widget class="QLabel" name="label_3"> | ||||
|           <property name="text"> | ||||
|            <string>CPU Clock Speed</string> | ||||
|           </property> | ||||
|          </widget> | ||||
|         </item> | ||||
|         <item row="0" column="2"> | ||||
|          <widget class="QSlider" name="slider_clock_speed"> | ||||
|           <property name="toolTip"> | ||||
|            <string><html><body>Changes the emulated CPU clock frequency.<br>Underclocking can increase performance but may cause the game to freeze.<br>Overclocking may reduce in game lag but also might cause freezes</body></html></string> | ||||
|           </property> | ||||
|           <property name="minimum"> | ||||
|            <number>0</number> | ||||
|           </property> | ||||
|           <property name="maximum"> | ||||
|            <number>79</number> | ||||
|           </property> | ||||
|           <property name="singleStep"> | ||||
|            <number>5</number> | ||||
|           </property> | ||||
|           <property name="pageStep"> | ||||
|            <number>15</number> | ||||
|           </property> | ||||
|           <property name="value"> | ||||
|            <number>25</number> | ||||
|           </property> | ||||
|           <property name="orientation"> | ||||
|            <enum>Qt::Horizontal</enum> | ||||
|           </property> | ||||
|           <property name="tickPosition"> | ||||
|            <enum>QSlider::TicksBelow</enum> | ||||
|           </property> | ||||
|          </widget> | ||||
|         </item> | ||||
|         <item row="0" column="1"> | ||||
|          <widget class="QLabel" name="clock_display_label"> | ||||
|           <property name="text"> | ||||
|            <string/> | ||||
|           </property> | ||||
|           <property name="alignment"> | ||||
|            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> | ||||
|           </property> | ||||
|          </widget> | ||||
|         </item> | ||||
|        </layout> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
|       <layout class="QHBoxLayout" name="horizontalLayout_2"/> | ||||
|      </item> | ||||
|      <item> | ||||
|       <widget class="QLabel" name="label_disable_info"> | ||||
|        <property name="text"> | ||||
|  | @ -316,6 +372,16 @@ | |||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
|       <widget class="QLabel" name="label_cpu_clock_info"> | ||||
|        <property name="text"> | ||||
|         <string><html><head/><body><p>CPU Clock Speed Information<br/>Underclocking can increase performance but may cause the game to freeze.<br/>Overclocking may reduce in game lag but also might cause freezes</p></body></html></string> | ||||
|        </property> | ||||
|        <property name="textFormat"> | ||||
|         <enum>Qt::RichText</enum> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
|      <item> | ||||
|       <spacer name="verticalSpacer"> | ||||
|        <property name="orientation"> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue