summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/settings.cpp16
-rw-r--r--src/core/settings.h4
-rw-r--r--src/yuzu/configuration/config.cpp3
-rw-r--r--src/yuzu/configuration/configure_system.cpp2
-rw-r--r--src/yuzu/configuration/configure_system.h1
-rw-r--r--src/yuzu/configuration/configure_system.ui257
-rw-r--r--src/yuzu_cmd/config.cpp5
-rw-r--r--src/yuzu_cmd/default_ini.h4
8 files changed, 282 insertions, 10 deletions
diff --git a/src/core/settings.cpp b/src/core/settings.cpp
index 2b0bdc4d3..da53cde05 100644
--- a/src/core/settings.cpp
+++ b/src/core/settings.cpp
@@ -63,6 +63,21 @@ const std::array<const char*, NumMouseButtons> mapping = {{
63 63
64Values values = {}; 64Values values = {};
65 65
66std::string GetTimeZoneString() {
67 static constexpr std::array<const char*, 46> timezones{{
68 "auto", "default", "CET", "CST6CDT", "Cuba", "EET", "Egypt", "Eire",
69 "EST", "EST5EDT", "GB", "GB-Eire", "GMT", "GMT+0", "GMT-0", "GMT0",
70 "Greenwich", "Hongkong", "HST", "Iceland", "Iran", "Israel", "Jamaica", "Japan",
71 "Kwajalein", "Libya", "MET", "MST", "MST7MDT", "Navajo", "NZ", "NZ-CHAT",
72 "Poland", "Portugal", "PRC", "PST8PDT", "ROC", "ROK", "Singapore", "Turkey",
73 "UCT", "Universal", "UTC", "W-SU", "WET", "Zulu",
74 }};
75
76 ASSERT(Settings::values.time_zone_index < timezones.size());
77
78 return timezones[Settings::values.time_zone_index];
79}
80
66void Apply() { 81void Apply() {
67 GDBStub::SetServerPort(values.gdbstub_port); 82 GDBStub::SetServerPort(values.gdbstub_port);
68 GDBStub::ToggleServer(values.use_gdbstub); 83 GDBStub::ToggleServer(values.use_gdbstub);
@@ -87,6 +102,7 @@ void LogSettings() {
87 LogSetting("System_CurrentUser", Settings::values.current_user); 102 LogSetting("System_CurrentUser", Settings::values.current_user);
88 LogSetting("System_LanguageIndex", Settings::values.language_index); 103 LogSetting("System_LanguageIndex", Settings::values.language_index);
89 LogSetting("System_RegionIndex", Settings::values.region_index); 104 LogSetting("System_RegionIndex", Settings::values.region_index);
105 LogSetting("System_TimeZoneIndex", Settings::values.time_zone_index);
90 LogSetting("Core_UseMultiCore", Settings::values.use_multi_core); 106 LogSetting("Core_UseMultiCore", Settings::values.use_multi_core);
91 LogSetting("Renderer_UseResolutionFactor", Settings::values.resolution_factor); 107 LogSetting("Renderer_UseResolutionFactor", Settings::values.resolution_factor);
92 LogSetting("Renderer_UseFrameLimit", Settings::values.use_frame_limit); 108 LogSetting("Renderer_UseFrameLimit", Settings::values.use_frame_limit);
diff --git a/src/core/settings.h b/src/core/settings.h
index 163900f0b..c1266b341 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -394,6 +394,7 @@ struct Values {
394 s32 current_user; 394 s32 current_user;
395 s32 language_index; 395 s32 language_index;
396 s32 region_index; 396 s32 region_index;
397 s32 time_zone_index;
397 s32 sound_index; 398 s32 sound_index;
398 399
399 // Controls 400 // Controls
@@ -490,6 +491,9 @@ struct Values {
490bool IsGPULevelExtreme(); 491bool IsGPULevelExtreme();
491bool IsGPULevelHigh(); 492bool IsGPULevelHigh();
492 493
494std::string GetTimeZoneString();
495
493void Apply(); 496void Apply();
494void LogSettings(); 497void LogSettings();
498
495} // namespace Settings 499} // namespace Settings
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 75c6cf20b..27775701d 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -687,6 +687,8 @@ void Config::ReadSystemValues() {
687 687
688 Settings::values.region_index = ReadSetting(QStringLiteral("region_index"), 1).toInt(); 688 Settings::values.region_index = ReadSetting(QStringLiteral("region_index"), 1).toInt();
689 689
690 Settings::values.time_zone_index = ReadSetting(QStringLiteral("time_zone_index"), 0).toInt();
691
690 const auto rng_seed_enabled = ReadSetting(QStringLiteral("rng_seed_enabled"), false).toBool(); 692 const auto rng_seed_enabled = ReadSetting(QStringLiteral("rng_seed_enabled"), false).toBool();
691 if (rng_seed_enabled) { 693 if (rng_seed_enabled) {
692 Settings::values.rng_seed = ReadSetting(QStringLiteral("rng_seed"), 0).toULongLong(); 694 Settings::values.rng_seed = ReadSetting(QStringLiteral("rng_seed"), 0).toULongLong();
@@ -1126,6 +1128,7 @@ void Config::SaveSystemValues() {
1126 WriteSetting(QStringLiteral("current_user"), Settings::values.current_user, 0); 1128 WriteSetting(QStringLiteral("current_user"), Settings::values.current_user, 0);
1127 WriteSetting(QStringLiteral("language_index"), Settings::values.language_index, 1); 1129 WriteSetting(QStringLiteral("language_index"), Settings::values.language_index, 1);
1128 WriteSetting(QStringLiteral("region_index"), Settings::values.region_index, 1); 1130 WriteSetting(QStringLiteral("region_index"), Settings::values.region_index, 1);
1131 WriteSetting(QStringLiteral("time_zone_index"), Settings::values.time_zone_index, 0);
1129 1132
1130 WriteSetting(QStringLiteral("rng_seed_enabled"), Settings::values.rng_seed.has_value(), false); 1133 WriteSetting(QStringLiteral("rng_seed_enabled"), Settings::values.rng_seed.has_value(), false);
1131 WriteSetting(QStringLiteral("rng_seed"), Settings::values.rng_seed.value_or(0), 0); 1134 WriteSetting(QStringLiteral("rng_seed"), Settings::values.rng_seed.value_or(0), 0);
diff --git a/src/yuzu/configuration/configure_system.cpp b/src/yuzu/configuration/configure_system.cpp
index f49cd4c8f..10315e7a6 100644
--- a/src/yuzu/configuration/configure_system.cpp
+++ b/src/yuzu/configuration/configure_system.cpp
@@ -57,6 +57,7 @@ void ConfigureSystem::SetConfiguration() {
57 57
58 ui->combo_language->setCurrentIndex(Settings::values.language_index); 58 ui->combo_language->setCurrentIndex(Settings::values.language_index);
59 ui->combo_region->setCurrentIndex(Settings::values.region_index); 59 ui->combo_region->setCurrentIndex(Settings::values.region_index);
60 ui->combo_time_zone->setCurrentIndex(Settings::values.time_zone_index);
60 ui->combo_sound->setCurrentIndex(Settings::values.sound_index); 61 ui->combo_sound->setCurrentIndex(Settings::values.sound_index);
61 62
62 ui->rng_seed_checkbox->setChecked(Settings::values.rng_seed.has_value()); 63 ui->rng_seed_checkbox->setChecked(Settings::values.rng_seed.has_value());
@@ -84,6 +85,7 @@ void ConfigureSystem::ApplyConfiguration() {
84 85
85 Settings::values.language_index = ui->combo_language->currentIndex(); 86 Settings::values.language_index = ui->combo_language->currentIndex();
86 Settings::values.region_index = ui->combo_region->currentIndex(); 87 Settings::values.region_index = ui->combo_region->currentIndex();
88 Settings::values.time_zone_index = ui->combo_time_zone->currentIndex();
87 Settings::values.sound_index = ui->combo_sound->currentIndex(); 89 Settings::values.sound_index = ui->combo_sound->currentIndex();
88 90
89 if (ui->rng_seed_checkbox->isChecked()) { 91 if (ui->rng_seed_checkbox->isChecked()) {
diff --git a/src/yuzu/configuration/configure_system.h b/src/yuzu/configuration/configure_system.h
index d8fa2d2cc..26d42d5c5 100644
--- a/src/yuzu/configuration/configure_system.h
+++ b/src/yuzu/configuration/configure_system.h
@@ -37,5 +37,6 @@ private:
37 37
38 int language_index = 0; 38 int language_index = 0;
39 int region_index = 0; 39 int region_index = 0;
40 int time_zone_index = 0;
40 int sound_index = 0; 41 int sound_index = 0;
41}; 42};
diff --git a/src/yuzu/configuration/configure_system.ui b/src/yuzu/configuration/configure_system.ui
index 4e2c7e76e..9c8cca6dc 100644
--- a/src/yuzu/configuration/configure_system.ui
+++ b/src/yuzu/configuration/configure_system.ui
@@ -22,14 +22,14 @@
22 <string>System Settings</string> 22 <string>System Settings</string>
23 </property> 23 </property>
24 <layout class="QGridLayout" name="gridLayout"> 24 <layout class="QGridLayout" name="gridLayout">
25 <item row="2" column="0"> 25 <item row="3" column="0">
26 <widget class="QLabel" name="label_sound"> 26 <widget class="QLabel" name="label_sound">
27 <property name="text"> 27 <property name="text">
28 <string>Sound output mode</string> 28 <string>Sound output mode</string>
29 </property> 29 </property>
30 </widget> 30 </widget>
31 </item> 31 </item>
32 <item row="3" column="0"> 32 <item row="4" column="0">
33 <widget class="QLabel" name="label_console_id"> 33 <widget class="QLabel" name="label_console_id">
34 <property name="text"> 34 <property name="text">
35 <string>Console ID:</string> 35 <string>Console ID:</string>
@@ -174,14 +174,255 @@
174 </item> 174 </item>
175 </widget> 175 </widget>
176 </item> 176 </item>
177 <item row="5" column="0"> 177 <item row="2" column="0">
178 <widget class="QLabel" name="label_timezone">
179 <property name="text">
180 <string>Time Zone:</string>
181 </property>
182 </widget>
183 </item>
184 <item row="2" column="1">
185 <widget class="QComboBox" name="combo_time_zone">
186 <item>
187 <property name="text">
188 <string>Auto</string>
189 </property>
190 </item>
191 <item>
192 <property name="text">
193 <string>Default</string>
194 </property>
195 </item>
196 <item>
197 <property name="text">
198 <string>CET</string>
199 </property>
200 </item>
201 <item>
202 <property name="text">
203 <string>CST6CDT</string>
204 </property>
205 </item>
206 <item>
207 <property name="text">
208 <string>Cuba</string>
209 </property>
210 </item>
211 <item>
212 <property name="text">
213 <string>EET</string>
214 </property>
215 </item>
216 <item>
217 <property name="text">
218 <string>Egypt</string>
219 </property>
220 </item>
221 <item>
222 <property name="text">
223 <string>Eire</string>
224 </property>
225 </item>
226 <item>
227 <property name="text">
228 <string>EST</string>
229 </property>
230 </item>
231 <item>
232 <property name="text">
233 <string>EST5EDT</string>
234 </property>
235 </item>
236 <item>
237 <property name="text">
238 <string>GB</string>
239 </property>
240 </item>
241 <item>
242 <property name="text">
243 <string>GB-Eire</string>
244 </property>
245 </item>
246 <item>
247 <property name="text">
248 <string>GMT</string>
249 </property>
250 </item>
251 <item>
252 <property name="text">
253 <string>GMT+0</string>
254 </property>
255 </item>
256 <item>
257 <property name="text">
258 <string>GMT-0</string>
259 </property>
260 </item>
261 <item>
262 <property name="text">
263 <string>GMT0</string>
264 </property>
265 </item>
266 <item>
267 <property name="text">
268 <string>Greenwich</string>
269 </property>
270 </item>
271 <item>
272 <property name="text">
273 <string>Hongkong</string>
274 </property>
275 </item>
276 <item>
277 <property name="text">
278 <string>HST</string>
279 </property>
280 </item>
281 <item>
282 <property name="text">
283 <string>Iceland</string>
284 </property>
285 </item>
286 <item>
287 <property name="text">
288 <string>Iran</string>
289 </property>
290 </item>
291 <item>
292 <property name="text">
293 <string>Israel</string>
294 </property>
295 </item>
296 <item>
297 <property name="text">
298 <string>Jamaica</string>
299 </property>
300 </item>
301 <item>
302 <property name="text">
303 <string>Japan</string>
304 </property>
305 </item>
306 <item>
307 <property name="text">
308 <string>Kwajalein</string>
309 </property>
310 </item>
311 <item>
312 <property name="text">
313 <string>Libya</string>
314 </property>
315 </item>
316 <item>
317 <property name="text">
318 <string>MET</string>
319 </property>
320 </item>
321 <item>
322 <property name="text">
323 <string>MST</string>
324 </property>
325 </item>
326 <item>
327 <property name="text">
328 <string>MST7MDT</string>
329 </property>
330 </item>
331 <item>
332 <property name="text">
333 <string>Navajo</string>
334 </property>
335 </item>
336 <item>
337 <property name="text">
338 <string>NZ</string>
339 </property>
340 </item>
341 <item>
342 <property name="text">
343 <string>NZ-CHAT</string>
344 </property>
345 </item>
346 <item>
347 <property name="text">
348 <string>Poland</string>
349 </property>
350 </item>
351 <item>
352 <property name="text">
353 <string>Portugal</string>
354 </property>
355 </item>
356 <item>
357 <property name="text">
358 <string>PRC</string>
359 </property>
360 </item>
361 <item>
362 <property name="text">
363 <string>PST8PDT</string>
364 </property>
365 </item>
366 <item>
367 <property name="text">
368 <string>ROC</string>
369 </property>
370 </item>
371 <item>
372 <property name="text">
373 <string>ROK</string>
374 </property>
375 </item>
376 <item>
377 <property name="text">
378 <string>Singapore</string>
379 </property>
380 </item>
381 <item>
382 <property name="text">
383 <string>Turkey</string>
384 </property>
385 </item>
386 <item>
387 <property name="text">
388 <string>UCT</string>
389 </property>
390 </item>
391 <item>
392 <property name="text">
393 <string>Universal</string>
394 </property>
395 </item>
396 <item>
397 <property name="text">
398 <string>UTC</string>
399 </property>
400 </item>
401 <item>
402 <property name="text">
403 <string>W-SU</string>
404 </property>
405 </item>
406 <item>
407 <property name="text">
408 <string>WET</string>
409 </property>
410 </item>
411 <item>
412 <property name="text">
413 <string>Zulu</string>
414 </property>
415 </item>
416 </widget>
417 </item>
418 <item row="6" column="0">
178 <widget class="QCheckBox" name="rng_seed_checkbox"> 419 <widget class="QCheckBox" name="rng_seed_checkbox">
179 <property name="text"> 420 <property name="text">
180 <string>RNG Seed</string> 421 <string>RNG Seed</string>
181 </property> 422 </property>
182 </widget> 423 </widget>
183 </item> 424 </item>
184 <item row="2" column="1"> 425 <item row="3" column="1">
185 <widget class="QComboBox" name="combo_sound"> 426 <widget class="QComboBox" name="combo_sound">
186 <item> 427 <item>
187 <property name="text"> 428 <property name="text">
@@ -207,7 +448,7 @@
207 </property> 448 </property>
208 </widget> 449 </widget>
209 </item> 450 </item>
210 <item row="3" column="1"> 451 <item row="4" column="1">
211 <widget class="QPushButton" name="button_regenerate_console_id"> 452 <widget class="QPushButton" name="button_regenerate_console_id">
212 <property name="sizePolicy"> 453 <property name="sizePolicy">
213 <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 454 <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
@@ -223,14 +464,14 @@
223 </property> 464 </property>
224 </widget> 465 </widget>
225 </item> 466 </item>
226 <item row="4" column="0"> 467 <item row="5" column="0">
227 <widget class="QCheckBox" name="custom_rtc_checkbox"> 468 <widget class="QCheckBox" name="custom_rtc_checkbox">
228 <property name="text"> 469 <property name="text">
229 <string>Custom RTC</string> 470 <string>Custom RTC</string>
230 </property> 471 </property>
231 </widget> 472 </widget>
232 </item> 473 </item>
233 <item row="4" column="1"> 474 <item row="5" column="1">
234 <widget class="QDateTimeEdit" name="custom_rtc_edit"> 475 <widget class="QDateTimeEdit" name="custom_rtc_edit">
235 <property name="minimumDate"> 476 <property name="minimumDate">
236 <date> 477 <date>
@@ -244,7 +485,7 @@
244 </property> 485 </property>
245 </widget> 486 </widget>
246 </item> 487 </item>
247 <item row="5" column="1"> 488 <item row="6" column="1">
248 <widget class="QLineEdit" name="rng_seed_edit"> 489 <widget class="QLineEdit" name="rng_seed_edit">
249 <property name="sizePolicy"> 490 <property name="sizePolicy">
250 <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> 491 <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index 8476a5a16..2348e6e0d 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -367,6 +367,9 @@ void Config::ReadValues() {
367 Settings::values.custom_rtc = std::nullopt; 367 Settings::values.custom_rtc = std::nullopt;
368 } 368 }
369 369
370 Settings::values.language_index = sdl2_config->GetInteger("System", "language_index", 1);
371 Settings::values.time_zone_index = sdl2_config->GetInteger("System", "time_zone_index", 0);
372
370 // Core 373 // Core
371 Settings::values.use_multi_core = sdl2_config->GetBoolean("Core", "use_multi_core", false); 374 Settings::values.use_multi_core = sdl2_config->GetBoolean("Core", "use_multi_core", false);
372 375
@@ -409,8 +412,6 @@ void Config::ReadValues() {
409 Settings::values.audio_device_id = sdl2_config->Get("Audio", "output_device", "auto"); 412 Settings::values.audio_device_id = sdl2_config->Get("Audio", "output_device", "auto");
410 Settings::values.volume = static_cast<float>(sdl2_config->GetReal("Audio", "volume", 1)); 413 Settings::values.volume = static_cast<float>(sdl2_config->GetReal("Audio", "volume", 1));
411 414
412 Settings::values.language_index = sdl2_config->GetInteger("System", "language_index", 1);
413
414 // Miscellaneous 415 // Miscellaneous
415 Settings::values.log_filter = sdl2_config->Get("Miscellaneous", "log_filter", "*:Trace"); 416 Settings::values.log_filter = sdl2_config->Get("Miscellaneous", "log_filter", "*:Trace");
416 Settings::values.use_dev_keys = sdl2_config->GetBoolean("Miscellaneous", "use_dev_keys", false); 417 Settings::values.use_dev_keys = sdl2_config->GetBoolean("Miscellaneous", "use_dev_keys", false);
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h
index 60b1a62fa..ae94b51c4 100644
--- a/src/yuzu_cmd/default_ini.h
+++ b/src/yuzu_cmd/default_ini.h
@@ -262,6 +262,10 @@ language_index =
262# -1: Auto-select (default), 0: Japan, 1: USA, 2: Europe, 3: Australia, 4: China, 5: Korea, 6: Taiwan 262# -1: Auto-select (default), 0: Japan, 1: USA, 2: Europe, 3: Australia, 4: China, 5: Korea, 6: Taiwan
263region_value = 263region_value =
264 264
265# The system time zone that yuzu will use during emulation
266# 0: Auto-select (default), 1: Default (system archive value), Others: Index for specified time zone
267time_zone_index =
268
265[Miscellaneous] 269[Miscellaneous]
266# A filter which removes logs below a certain logging level. 270# A filter which removes logs below a certain logging level.
267# Examples: *:Debug Kernel.SVC:Trace Service.*:Critical 271# Examples: *:Debug Kernel.SVC:Trace Service.*:Critical