summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/settings.h4
-rw-r--r--src/yuzu/configuration/configuration_shared.cpp6
-rw-r--r--src/yuzu/configuration/configure_graphics.cpp25
-rw-r--r--src/yuzu/configuration/configure_graphics_advanced.cpp2
-rw-r--r--src/yuzu/configuration/shared_translation.cpp236
-rw-r--r--src/yuzu/configuration/shared_translation.h2
6 files changed, 117 insertions, 158 deletions
diff --git a/src/common/settings.h b/src/common/settings.h
index 69777421e..a90fc87a7 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -191,7 +191,7 @@ public:
191 virtual bool IsEnum() const = 0; 191 virtual bool IsEnum() const = 0;
192 virtual bool RuntimeModfiable() const = 0; 192 virtual bool RuntimeModfiable() const = 0;
193 virtual void SetGlobal(bool global) {} 193 virtual void SetGlobal(bool global) {}
194 virtual u32 Id() const = 0; 194 virtual constexpr u32 Id() const = 0;
195 virtual bool UsingGlobal() const { 195 virtual bool UsingGlobal() const {
196 return false; 196 return false;
197 } 197 }
@@ -423,7 +423,7 @@ public:
423 return std::type_index(typeid(Type)); 423 return std::type_index(typeid(Type));
424 } 424 }
425 425
426 virtual u32 Id() const override { 426 virtual constexpr u32 Id() const override {
427 return id; 427 return id;
428 } 428 }
429 429
diff --git a/src/yuzu/configuration/configuration_shared.cpp b/src/yuzu/configuration/configuration_shared.cpp
index 575d239eb..54fbce53a 100644
--- a/src/yuzu/configuration/configuration_shared.cpp
+++ b/src/yuzu/configuration/configuration_shared.cpp
@@ -136,6 +136,7 @@ std::pair<QWidget*, void*> CreateWidget(Settings::BasicSetting* setting,
136 std::forward_list<std::function<void(bool)>>& apply_funcs, 136 std::forward_list<std::function<void(bool)>>& apply_funcs,
137 std::list<CheckState>& trackers, RequestType request) { 137 std::list<CheckState>& trackers, RequestType request) {
138 const auto type = setting->TypeId(); 138 const auto type = setting->TypeId();
139 const int id = setting->Id();
139 QWidget* widget{nullptr}; 140 QWidget* widget{nullptr};
140 void* extra{nullptr}; 141 void* extra{nullptr};
141 142
@@ -143,9 +144,8 @@ std::pair<QWidget*, void*> CreateWidget(Settings::BasicSetting* setting,
143 144
144 const auto [label, tooltip] = [&]() { 145 const auto [label, tooltip] = [&]() {
145 const auto& setting_label = setting->GetLabel(); 146 const auto& setting_label = setting->GetLabel();
146 if (translations.contains(setting_label)) { 147 if (translations.contains(id)) {
147 return std::pair{translations.at(setting_label).first, 148 return std::pair{translations.at(id).first, translations.at(id).second};
148 translations.at(setting_label).second};
149 } 149 }
150 LOG_ERROR(Frontend, "Translation table lacks entry for \"{}\"", setting_label); 150 LOG_ERROR(Frontend, "Translation table lacks entry for \"{}\"", setting_label);
151 return std::pair{QString::fromStdString(setting_label), QStringLiteral("")}; 151 return std::pair{QString::fromStdString(setting_label), QStringLiteral("")};
diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp
index 8128a4047..d8e95b9b1 100644
--- a/src/yuzu/configuration/configure_graphics.cpp
+++ b/src/yuzu/configuration/configure_graphics.cpp
@@ -214,13 +214,13 @@ void ConfigureGraphics::SetConfiguration() {
214 QLayout& api_layout = *ui->api_widget->layout(); 214 QLayout& api_layout = *ui->api_widget->layout();
215 QLayout& graphics_layout = *ui->graphics_widget->layout(); 215 QLayout& graphics_layout = *ui->graphics_widget->layout();
216 216
217 std::map<std::string, QWidget*> hold_graphics; 217 std::map<bool, std::map<std::string, QWidget*>> hold_graphics;
218 218
219 for (const auto setting : Settings::values.linkage.by_category[Settings::Category::Renderer]) { 219 for (const auto setting : Settings::values.linkage.by_category[Settings::Category::Renderer]) {
220 const auto& setting_label = setting->GetLabel(); 220 const auto& setting_label = setting->GetLabel();
221 221
222 auto [widget, extra] = [&]() { 222 auto [widget, extra] = [&]() {
223 if (setting_label == "vulkan_device") { 223 if (setting->Id() == Settings::values.vulkan_device.Id()) {
224 return ConfigurationShared::CreateWidget( 224 return ConfigurationShared::CreateWidget(
225 setting, translations, this, runtime_lock, apply_funcs, trackers, 225 setting, translations, this, runtime_lock, apply_funcs, trackers,
226 ConfigurationShared::RequestType::ComboBox); 226 ConfigurationShared::RequestType::ComboBox);
@@ -233,28 +233,29 @@ void ConfigureGraphics::SetConfiguration() {
233 continue; 233 continue;
234 } 234 }
235 235
236 if (setting_label == "backend") { 236 if (setting->Id() == Settings::values.vulkan_device.Id()) {
237 api_layout.addWidget(widget); 237 api_layout.addWidget(widget);
238 api_combobox = reinterpret_cast<QComboBox*>(extra); 238 api_combobox = reinterpret_cast<QComboBox*>(extra);
239 } else if (setting_label == "vulkan_device") { 239 } else if (setting->Id() == Settings::values.vulkan_device.Id()) {
240 api_layout.addWidget(widget); 240 api_layout.addWidget(widget);
241 vulkan_device_combobox = reinterpret_cast<QComboBox*>(extra); 241 vulkan_device_combobox = reinterpret_cast<QComboBox*>(extra);
242 vulkan_device_widget = widget; 242 vulkan_device_widget = widget;
243 } else if (setting_label == "shader_backend") { 243 } else if (setting->Id() == Settings::values.shader_backend.Id()) {
244 api_layout.addWidget(widget); 244 api_layout.addWidget(widget);
245 shader_backend_combobox = reinterpret_cast<QComboBox*>(extra); 245 shader_backend_combobox = reinterpret_cast<QComboBox*>(extra);
246 shader_backend_widget = widget; 246 shader_backend_widget = widget;
247 } else { 247 } else if (setting->Id() == Settings::values.vsync_mode.Id()) {
248 hold_graphics.insert(std::pair(setting_label, widget));
249 }
250
251 if (setting_label == "use_vsync") {
252 vsync_mode_combobox = reinterpret_cast<QComboBox*>(extra); 248 vsync_mode_combobox = reinterpret_cast<QComboBox*>(extra);
249 hold_graphics[setting->IsEnum()][setting_label] = widget;
250 } else {
251 hold_graphics[setting->IsEnum()][setting_label] = widget;
253 } 252 }
254 } 253 }
255 254
256 for (const auto& [label, widget] : hold_graphics) { 255 for (const auto& [_, settings] : hold_graphics) {
257 graphics_layout.addWidget(widget); 256 for (const auto& [label, widget] : settings) {
257 graphics_layout.addWidget(widget);
258 }
258 } 259 }
259 260
260 // ui->api_widget->setEnabled(runtime_lock); 261 // ui->api_widget->setEnabled(runtime_lock);
diff --git a/src/yuzu/configuration/configure_graphics_advanced.cpp b/src/yuzu/configuration/configure_graphics_advanced.cpp
index 8a9495109..3a207e2cd 100644
--- a/src/yuzu/configuration/configure_graphics_advanced.cpp
+++ b/src/yuzu/configuration/configure_graphics_advanced.cpp
@@ -45,7 +45,7 @@ void ConfigureGraphicsAdvanced::SetConfiguration() {
45 layout.addWidget(widget); 45 layout.addWidget(widget);
46 } 46 }
47 47
48 if (setting->GetLabel() == "enable_compute_pipelines") { 48 if (setting->Id() == Settings::values.enable_compute_pipelines.Id()) {
49 checkbox_enable_compute_pipelines = widget; 49 checkbox_enable_compute_pipelines = widget;
50 } 50 }
51 } 51 }
diff --git a/src/yuzu/configuration/shared_translation.cpp b/src/yuzu/configuration/shared_translation.cpp
index 73c3086ae..181dd7cf0 100644
--- a/src/yuzu/configuration/shared_translation.cpp
+++ b/src/yuzu/configuration/shared_translation.cpp
@@ -18,196 +18,111 @@ std::unique_ptr<TranslationMap> InitializeTranslations(QWidget* parent) {
18 std::unique_ptr<TranslationMap> translations = std::make_unique<TranslationMap>(); 18 std::unique_ptr<TranslationMap> translations = std::make_unique<TranslationMap>();
19 const auto& tr = [parent](const char* text) -> QString { return parent->tr(text); }; 19 const auto& tr = [parent](const char* text) -> QString { return parent->tr(text); };
20 20
21#define INSERT(LABEL, NAME, TOOLTIP) \ 21#define INSERT(ID, NAME, TOOLTIP) \
22 translations->insert(std::pair{(LABEL), std::pair{tr((NAME)), tr((TOOLTIP))}}) 22 translations->insert(std::pair{Settings::values.ID.Id(), std::pair{tr((NAME)), tr((TOOLTIP))}})
23 23
24 // A setting can be ignored by giving it a blank name 24 // A setting can be ignored by giving it a blank name
25 25
26 // Audio 26 // Audio
27 INSERT("output_engine", "Output Engine:", ""); 27 INSERT(sink_id, "Output Engine:", "");
28 INSERT("output_device", "Output Device:", ""); 28 INSERT(audio_output_device_id, "Output Device:", "");
29 INSERT("input_device", "Input Device:", ""); 29 INSERT(audio_input_device_id, "Input Device:", "");
30 INSERT("audio_muted", "Mute audio when in background", ""); 30 INSERT(audio_muted, "Mute audio when in background", "");
31 INSERT("volume", "Volume:", ""); 31 INSERT(volume, "Volume:", "");
32 32
33 // Core 33 // Core
34 INSERT("use_multi_core", "Multicore CPU Emulation", ""); 34 INSERT(use_multi_core, "Multicore CPU Emulation", "");
35 INSERT("use_unsafe_extended_memory_layout", "Unsafe extended memory layout (8GB DRAM)", ""); 35 INSERT(use_unsafe_extended_memory_layout, "Unsafe extended memory layout (8GB DRAM)", "");
36 36
37 // Cpu 37 // Cpu
38 INSERT("cpu_accuracy", "Accuracy:", ""); 38 INSERT(cpu_accuracy, "Accuracy:", "");
39 INSERT("cpu_accuracy_first_time", "", ""); 39 INSERT(cpu_accuracy_first_time, "", "");
40 40
41 // Cpu Debug 41 // Cpu Debug
42 INSERT("cpu_debug_mode", "Enable CPU Debugging", "");
43 INSERT("cpuopt_page_tables", "Enable inline page tables", "");
44 INSERT("cpuopt_block_linking", "Enable block linking", "");
45 INSERT("cpuopt_return_stack_buffer", "Enable return stack buffer", "");
46 INSERT("cpuopt_fast_dispatcher", "Enable fast dispatcher", "");
47 INSERT("cpuopt_context_elimination", "Enable context elimination", "");
48 INSERT("cpuopt_const_prop", "Enable constant propagation", "");
49 INSERT("cpuopt_misc_ir", "Enable miscellaneous optimizations", "");
50 INSERT("cpuopt_reduce_misalign_checks", "Enable misalignment check reduction", "");
51 INSERT("cpuopt_fastmem", "Enable Host MMU Emulation (general memory instructions)", "");
52 INSERT("cpuopt_fastmem_exclusives", "Enable Host MMU Emulation (exclusive memory instructions)",
53 "");
54 INSERT("cpuopt_recompile_exclusives", "Enable recompilation of exlucsive memory instructions",
55 "");
56 INSERT("cpuopt_ignore_memory_aborts", "Enable fallbacks for invalid memory accesses", "");
57 42
58 // Cpu Unsafe 43 // Cpu Unsafe
59 INSERT("cpuopt_unsafe_unfuse_fma", "Unfuse FMA (improve performance on CPUs without FMA)", ""); 44 INSERT(cpuopt_unsafe_unfuse_fma, "Unfuse FMA (improve performance on CPUs without FMA)", "");
60 INSERT("cpuopt_unsafe_reduce_fp_error", "Faster FRSQRTE and FRECPE", ""); 45 INSERT(cpuopt_unsafe_reduce_fp_error, "Faster FRSQRTE and FRECPE", "");
61 INSERT("cpuopt_unsafe_ignore_standard_fpcr", "Faster ASIMD instructions (32 bits only)", ""); 46 INSERT(cpuopt_unsafe_ignore_standard_fpcr, "Faster ASIMD instructions (32 bits only)", "");
62 INSERT("cpuopt_unsafe_inaccurate_nan", "Inaccurate NaN handling", ""); 47 INSERT(cpuopt_unsafe_inaccurate_nan, "Inaccurate NaN handling", "");
63 INSERT("cpuopt_unsafe_fastmem_check", "Disable address space checks", ""); 48 INSERT(cpuopt_unsafe_fastmem_check, "Disable address space checks", "");
64 INSERT("cpuopt_unsafe_ignore_global_monitor", "Ignore global monitor", ""); 49 INSERT(cpuopt_unsafe_ignore_global_monitor, "Ignore global monitor", "");
65 50
66 // Renderer 51 // Renderer
67 INSERT("backend", "API:", ""); 52 INSERT(renderer_backend, "API:", "");
68 INSERT("vulkan_device", "Device:", ""); 53 INSERT(vulkan_device, "Device:", "");
69 INSERT("shader_backend", "Shader Backend:", ""); 54 INSERT(shader_backend, "Shader Backend:", "");
70 INSERT("resolution_setup", "Resolution:", ""); 55 INSERT(resolution_setup, "Resolution:", "");
71 INSERT("scaling_filter", "Window Adapting Filter:", ""); 56 INSERT(scaling_filter, "Window Adapting Filter:", "");
72 INSERT("fsr_sharpening_slider", "AMD FidelityFX™ Super Resolution Sharpness:", ""); 57 INSERT(fsr_sharpening_slider, "AMD FidelityFX™ Super Resolution Sharpness:", "");
73 INSERT("anti_aliasing", "Anti-Aliasing Method:", ""); 58 INSERT(anti_aliasing, "Anti-Aliasing Method:", "");
74 INSERT("fullscreen_mode", "Fullscreen Mode:", ""); 59 INSERT(fullscreen_mode, "Fullscreen Mode:", "");
75 INSERT("aspect_ratio", "Aspect Ratio:", ""); 60 INSERT(aspect_ratio, "Aspect Ratio:", "");
76 INSERT("use_disk_shader_cache", "Use disk pipeline cache", ""); 61 INSERT(use_disk_shader_cache, "Use disk pipeline cache", "");
77 INSERT("use_asynchronous_gpu_emulation", "Use asynchronous GPU emulation", ""); 62 INSERT(use_asynchronous_gpu_emulation, "Use asynchronous GPU emulation", "");
78 INSERT("nvdec_emulation", "NVDEC emulation:", ""); 63 INSERT(nvdec_emulation, "NVDEC emulation:", "");
79 INSERT("accelerate_astc", "ASTC Decoding Method:", ""); 64 INSERT(accelerate_astc, "ASTC Decoding Method:", "");
80 INSERT( 65 INSERT(
81 "use_vsync", "VSync Mode:", 66 vsync_mode, "VSync Mode:",
82 "FIFO (VSync) does not drop frames or exhibit tearing but is limited by the screen refresh " 67 "FIFO (VSync) does not drop frames or exhibit tearing but is limited by the screen refresh "
83 "rate. FIFO Relaxed is similar to FIFO but allows tearing as it recovers from a slow down. " 68 "rate. FIFO Relaxed is similar to FIFO but allows tearing as it recovers from a slow down. "
84 "Mailbox can have lower latency than FIFO and does not tear but may drop frames. Immediate " 69 "Mailbox can have lower latency than FIFO and does not tear but may drop frames. Immediate "
85 "(no synchronization) just presents whatever is available and can exhibit tearing."); 70 "(no synchronization) just presents whatever is available and can exhibit tearing.");
86 INSERT("bg_red", "", ""); 71 INSERT(bg_red, "", "");
87 INSERT("bg_green", "", ""); 72 INSERT(bg_green, "", "");
88 INSERT("bg_blue", "", ""); 73 INSERT(bg_blue, "", "");
89 74
90 // Renderer (Advanced Graphics) 75 // Renderer (Advanced Graphics)
91 INSERT("async_presentation", "Enable asynchronous presentation (Vulkan only)", ""); 76 INSERT(async_presentation, "Enable asynchronous presentation (Vulkan only)", "");
92 INSERT("force_max_clock", "Force maximum clocks (Vulkan only)", 77 INSERT(renderer_force_max_clock, "Force maximum clocks (Vulkan only)",
93 "Runs work in the background while waiting for graphics commands to keep the GPU from " 78 "Runs work in the background while waiting for graphics commands to keep the GPU from "
94 "lowering its clock speed."); 79 "lowering its clock speed.");
95 INSERT("max_anisotropy", "Anisotropic Filtering:", ""); 80 INSERT(max_anisotropy, "Anisotropic Filtering:", "");
96 INSERT("gpu_accuracy", "Accuracy Level:", ""); 81 INSERT(gpu_accuracy, "Accuracy Level:", "");
97 INSERT("use_asynchronous_shaders", "Use asynchronous shader building (Hack)", 82 INSERT(use_asynchronous_shaders, "Use asynchronous shader building (Hack)",
98 "Enables asynchronous shader compilation, which may reduce shader stutter. This feature " 83 "Enables asynchronous shader compilation, which may reduce shader stutter. This feature "
99 "is experimental."); 84 "is experimental.");
100 INSERT("use_fast_gpu_time", "Use Fast GPU Time (Hack)", 85 INSERT(use_fast_gpu_time, "Use Fast GPU Time (Hack)",
101 "Enables Fast GPU Time. This option will force most games to run at their highest " 86 "Enables Fast GPU Time. This option will force most games to run at their highest "
102 "native resolution."); 87 "native resolution.");
103 INSERT("use_vulkan_driver_pipeline_cache", "Use Vulkan pipeline cache", 88 INSERT(use_vulkan_driver_pipeline_cache, "Use Vulkan pipeline cache",
104 "Enables GPU vendor-specific pipeline cache. This option can improve shader loading " 89 "Enables GPU vendor-specific pipeline cache. This option can improve shader loading "
105 "time significantly in cases where the Vulkan driver does not store pipeline cache " 90 "time significantly in cases where the Vulkan driver does not store pipeline cache "
106 "files internally."); 91 "files internally.");
107 INSERT("enable_compute_pipelines", "Enable Compute Pipelines (Intel Vulkan Only)", 92 INSERT(enable_compute_pipelines, "Enable Compute Pipelines (Intel Vulkan Only)",
108 "Enable compute pipelines, required by some games.\nThis setting only exists for Intel " 93 "Enable compute pipelines, required by some games.\nThis setting only exists for Intel "
109 "proprietary drivers, and may crash if enabled.\nCompute pipelines are always enabled " 94 "proprietary drivers, and may crash if enabled.\nCompute pipelines are always enabled "
110 "on all other drivers."); 95 "on all other drivers.");
111 96
112 // Renderer (Debug) 97 // Renderer (Debug)
113 INSERT("debug", "Enable Graphics Debugging",
114 "When checked, the graphics API enters a slower debugging mode");
115 INSERT("shader_feedback", "Enable Shader Feedback",
116 "When checked, yuzu will log statistics about the compiled pipeline cache");
117 INSERT("nsight_aftermath", "Enable Nsight Aftermath",
118 "When checked, it enables Nsight Aftermath crash dumps");
119 INSERT("disable_shader_loop_safety_checks", "Disable Loop safety checks",
120 "When checked, it executes shaders without loop logic changes");
121 98
122 // Renderer (General) 99 // Renderer (General)
123 INSERT("use_speed_limit", "Limit Speed Percent", ""); 100 INSERT(use_speed_limit, "Limit Speed Percent", "");
124 INSERT("speed_limit", "Limit Speed Percent", ""); 101 INSERT(speed_limit, "Limit Speed Percent", "");
125 102
126 // System 103 // System
127 INSERT("rng_seed_enabled", "RNG Seed", ""); 104 INSERT(rng_seed_enabled, "RNG Seed", "");
128 INSERT("rng_seed", "RNG Seed", ""); 105 INSERT(rng_seed, "RNG Seed", "");
129 INSERT("device_name", "Device Name", ""); 106 INSERT(device_name, "Device Name", "");
130 INSERT("custom_rtc_enabled", "Custom RTC", ""); 107 INSERT(custom_rtc_enabled, "Custom RTC", "");
131 INSERT("custom_rtc", "Custom RTC", ""); 108 INSERT(custom_rtc, "Custom RTC", "");
132 INSERT("language_index", "Language:", ""); 109 INSERT(language_index, "Language:", "");
133 INSERT("region_index", "Region:", ""); 110 INSERT(region_index, "Region:", "");
134 INSERT("time_zone_index", "Time Zone:", ""); 111 INSERT(time_zone_index, "Time Zone:", "");
135 INSERT("sound_index", "Sound Output Mode:", ""); 112 INSERT(sound_index, "Sound Output Mode:", "");
136 INSERT("use_docked_mode", "", ""); 113 INSERT(use_docked_mode, "", "");
137 114
138 // Controls 115 // Controls
139 INSERT("enable_raw_input", "", "");
140 INSERT("controller_navigation", "", "");
141 INSERT("enable_joycon_driver", "", "");
142 INSERT("enable_procon_driver", "", "");
143 INSERT("vibration_enabled", "", "");
144 INSERT("enable_accurate_vibrations", "", "");
145 INSERT("motion_enabled", "", "");
146 INSERT("udp_input_servers", "", "");
147 INSERT("enable_udp_controller", "", "");
148 INSERT("pause_tas_on_load", "", "");
149 INSERT("tas_enable", "", "");
150 INSERT("tas_loop", "", "");
151 INSERT("mouse_panning", "", "");
152 INSERT("mouse_panning_sensitivity", "", "");
153 INSERT("mouse_enabled", "", "");
154 INSERT("emulate_analog_keyboard", "", "");
155 INSERT("keyboard_enabled", "", "");
156 INSERT("debug_pad_enabled", "", "");
157 INSERT("touch_device", "", "");
158 INSERT("touch_from_button_map", "", "");
159 INSERT("enable_ring_controller", "", "");
160 INSERT("enable_ir_sensor", "", "");
161 INSERT("ir_sensor_device", "", "");
162 116
163 // Data Storage 117 // Data Storage
164 INSERT("use_virtual_sd", "", "");
165 INSERT("gamecard_inserted", "Inserted", "");
166 INSERT("gamecard_current_game", "Current Game", "");
167 INSERT("gamecard_path", "Path", "");
168 118
169 // Debugging 119 // Debugging
170 INSERT("use_gdbstub", "Enable GDB Stub", "");
171 INSERT("gdbstub_port", "Port:", "");
172 INSERT("program_args", "Arguments String", "");
173 INSERT("dump_exefs", "Dump ExeFS", "");
174 INSERT("dump_nso", "Dump Decompressed NSOs", "");
175 INSERT("enable_fs_access_log", "Enable FS Access Log", "");
176 INSERT("reporting_services", "Enable Verbose Repoting Services**", "");
177 INSERT("quest_flag", "Kiosk (Quest) Mode", "");
178 INSERT("extended_logging", "Enable Extended Logging**",
179 "When checked, the max size of the log increases from 100 MB to 1 GB");
180 INSERT("use_debug_asserts", "Enable Debug Asserts", "");
181 INSERT("use_auto_stub", "Enable Auto-Stub**", "");
182 INSERT("enable_all_controllers", "Enable All Controller Types", "");
183 INSERT("create_crash_dumps", "Create Minidump After Crash", "");
184 INSERT("perform_vulkan_check", "Perform Startup Vulkan Check",
185 "Enables yuzu to check for a working Vulkan environment when the program starts up. "
186 "Disable this if this is causing issues with external programs seeing yuzu.");
187 INSERT("log_filter", "Global Log Filter", "");
188 INSERT("use_dev_keys", "", "");
189 120
190 // Debugging Graphics 121 // Debugging Graphics
191 INSERT("dump_shaders", "Dump Game Shaders",
192 "When checked, it will dump all the original assembler shaders from the disk shader "
193 "cache or game as found");
194 INSERT("disable_macro_jit", "Disable Macro JIT",
195 "When checked, it disables the macro Just In Time compiler. Enabling this makes games "
196 "run slower");
197 INSERT(
198 "disable_macro_hle", "Disable Macro HLE",
199 "When checked, it disables the macro HLE functions. Enabling this makes games run slower");
200 INSERT("dump_macros", "Dump Maxwell Macros",
201 "When checked, it will dump all the macro programs of the GPU");
202 122
203 // Network 123 // Network
204 INSERT("network_interface", "Network Interface", "");
205 124
206 // Web Service 125 // Web Service
207 INSERT("enable_telemetry", "Share anonymous usage data with the yuzu team", "");
208 INSERT("web_api_url", "", "");
209 INSERT("yuzu_username", "", "");
210 INSERT("yuzu_token", "Token:", "");
211 126
212#undef INSERT 127#undef INSERT
213 128
@@ -241,6 +156,49 @@ std::forward_list<QString> ComboboxEnumeration(std::type_index type, QWidget* pa
241 tr("High"), 156 tr("High"),
242 tr("Extreme"), 157 tr("Extreme"),
243 }; 158 };
159 } else if (type == typeid(Settings::CPUAccuracy)) {
160 return {
161 tr("Auto"),
162 tr("Accurate"),
163 tr("Unsafe"),
164 tr("Paranoid (disables most optimizations)"),
165 };
166 } else if (type == typeid(Settings::FullscreenMode)) {
167 return {
168 tr("Borderless Windowed"),
169 tr("Exclusive Fullscreen"),
170 };
171 } else if (type == typeid(Settings::NvdecEmulation)) {
172 return {
173 tr("No Video Output"),
174 tr("CPU Video Decoding"),
175 tr("GPU Video Decoding (Default)"),
176 };
177 } else if (type == typeid(Settings::ResolutionSetup)) {
178 return {
179 tr("0.5X (360p/540p) [EXPERIMENTAL]"),
180 tr("0.75X (540p/810p) [EXPERIMENTAL]"),
181 tr("1X (720p/1080p)"),
182 tr("1.5X (1080p/1620p) [EXPERIMENTAL]"),
183 tr("2X (1440p/2160p)"),
184 tr("3X (2160p/3240p)"),
185 tr("4X (2880p/4320p)"),
186 tr("5X (3600p/5400p)"),
187 tr("6X (4320p/6480p)"),
188 tr("7X (5040p/7560p)"),
189 tr("8X (5760p/8640p)"),
190 };
191 } else if (type == typeid(Settings::ScalingFilter)) {
192 return {
193 tr("Nearest Neighbor"), tr("Bilinear"), tr("Bicubic"),
194 tr("Gaussian"), tr("ScaleForce"), tr("AMD FidelityFX™️ Super Resolution"),
195 };
196 } else if (type == typeid(Settings::AntiAliasing)) {
197 return {
198 tr("None"),
199 tr("FXAA"),
200 tr("SMAA"),
201 };
244 } else if (type == typeid(Settings::AnisotropyMode)) { 202 } else if (type == typeid(Settings::AnisotropyMode)) {
245 return { 203 return {
246 tr("Automatic"), tr("Default"), tr("2x"), tr("4x"), tr("8x"), tr("16x"), 204 tr("Automatic"), tr("Default"), tr("2x"), tr("4x"), tr("8x"), tr("16x"),
diff --git a/src/yuzu/configuration/shared_translation.h b/src/yuzu/configuration/shared_translation.h
index 79cd08a6a..fcf638ea5 100644
--- a/src/yuzu/configuration/shared_translation.h
+++ b/src/yuzu/configuration/shared_translation.h
@@ -12,7 +12,7 @@
12class QWidget; 12class QWidget;
13 13
14namespace ConfigurationShared { 14namespace ConfigurationShared {
15using TranslationMap = std::map<std::string, std::pair<QString, QString>>; 15using TranslationMap = std::map<u32, std::pair<QString, QString>>;
16 16
17std::unique_ptr<TranslationMap> InitializeTranslations(QWidget* parent); 17std::unique_ptr<TranslationMap> InitializeTranslations(QWidget* parent);
18 18