2025-06-21 13:35:04 +00:00
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2024 Torzu Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
2023-05-07 09:49:47 -04:00
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
2023-06-12 17:42:21 -04:00
# include "yuzu/configuration/shared_translation.h"
2023-11-08 11:25:30 -05:00
# include <QCoreApplication>
2023-05-07 09:48:26 -04:00
# include <QWidget>
# include "common/settings.h"
2023-06-12 17:42:21 -04:00
# include "common/settings_enums.h"
# include "common/settings_setting.h"
2023-11-08 11:25:30 -05:00
# include "common/time_zone.h"
2023-05-09 01:36:17 -04:00
# include "yuzu/uisettings.h"
2025-05-29 08:19:51 +00:00
# include <map>
# include <memory>
# include <tuple>
# include <utility>
2023-05-07 09:48:26 -04:00
namespace ConfigurationShared {
2025-05-29 08:19:51 +00:00
std : : unique_ptr < TranslationMap > InitializeTranslations ( QWidget * parent )
{
2023-05-07 09:48:26 -04:00
std : : unique_ptr < TranslationMap > translations = std : : make_unique < TranslationMap > ( ) ;
const auto & tr = [ parent ] ( const char * text ) - > QString { return parent - > tr ( text ) ; } ;
2025-05-29 08:19:51 +00:00
# define INSERT(SETTINGS, ID, NAME, TOOLTIP) \
2023-11-08 11:25:30 -05:00
translations - > insert ( std : : pair { SETTINGS : : values . ID . Id ( ) , std : : pair { ( NAME ) , ( TOOLTIP ) } } )
2023-05-07 09:48:26 -04:00
2023-05-07 10:34:39 -04:00
// A setting can be ignored by giving it a blank name
2024-01-26 23:28:24 -05:00
// Applets
2025-05-17 20:22:25 +00:00
INSERT ( Settings , cabinet_applet_mode , tr ( " Amiibo editor " ) , QString ( ) ) ;
INSERT ( Settings , controller_applet_mode , tr ( " Controller configuration " ) , QString ( ) ) ;
INSERT ( Settings , data_erase_applet_mode , tr ( " Data erase " ) , QString ( ) ) ;
INSERT ( Settings , error_applet_mode , tr ( " Error " ) , QString ( ) ) ;
INSERT ( Settings , net_connect_applet_mode , tr ( " Net connect " ) , QString ( ) ) ;
INSERT ( Settings , player_select_applet_mode , tr ( " Player select " ) , QString ( ) ) ;
INSERT ( Settings , swkbd_applet_mode , tr ( " Software keyboard " ) , QString ( ) ) ;
INSERT ( Settings , mii_edit_applet_mode , tr ( " Mii Edit " ) , QString ( ) ) ;
INSERT ( Settings , web_applet_mode , tr ( " Online web " ) , QString ( ) ) ;
INSERT ( Settings , shop_applet_mode , tr ( " Shop " ) , QString ( ) ) ;
INSERT ( Settings , photo_viewer_applet_mode , tr ( " Photo viewer " ) , QString ( ) ) ;
INSERT ( Settings , offline_web_applet_mode , tr ( " Offline web " ) , QString ( ) ) ;
INSERT ( Settings , login_share_applet_mode , tr ( " Login share " ) , QString ( ) ) ;
INSERT ( Settings , wifi_web_auth_applet_mode , tr ( " Wifi web auth " ) , QString ( ) ) ;
INSERT ( Settings , my_page_applet_mode , tr ( " My page " ) , QString ( ) ) ;
2024-01-26 23:28:24 -05:00
2023-05-07 09:48:26 -04:00
// Audio
2025-05-17 20:22:25 +00:00
INSERT ( Settings , sink_id , tr ( " Output Engine: " ) , QString ( ) ) ;
INSERT ( Settings , audio_output_device_id , tr ( " Output Device: " ) , QString ( ) ) ;
INSERT ( Settings , audio_input_device_id , tr ( " Input Device: " ) , QString ( ) ) ;
INSERT ( Settings , audio_muted , tr ( " Mute audio " ) , QString ( ) ) ;
INSERT ( Settings , volume , tr ( " Volume: " ) , QString ( ) ) ;
INSERT ( Settings , dump_audio_commands , QString ( ) , QString ( ) ) ;
INSERT ( UISettings , mute_when_in_background , tr ( " Mute audio when in background " ) , QString ( ) ) ;
2023-05-07 09:48:26 -04:00
// Core
2024-02-06 16:29:13 +01:00
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
use_multi_core ,
tr ( " Multicore CPU Emulation " ) ,
2024-02-06 16:29:13 +01:00
tr ( " This option increases CPU emulation thread use from 1 to the Switch’ s maximum of 4. \n "
" This is mainly a debug option and shouldn’ t be disabled. " ) ) ;
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
memory_layout_mode ,
tr ( " Memory Layout " ) ,
2024-02-06 16:29:13 +01:00
tr ( " Increases the amount of emulated RAM from the stock 4GB of the retail Switch to the "
" developer kit's 8/6GB. \n It’ s doesn’ t improve stability or performance and is intended "
2024-02-06 22:11:34 +01:00
" to let big texture mods fit in emulated RAM. \n Enabling it will increase memory "
2024-02-06 16:29:13 +01:00
" use. It is not recommended to enable unless a specific game with a texture mod needs "
2024-02-06 22:11:34 +01:00
" it. " ) ) ;
2025-05-17 20:22:25 +00:00
INSERT ( Settings , use_speed_limit , QString ( ) , QString ( ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
speed_limit ,
tr ( " Limit Speed Percent " ) ,
2024-02-06 22:11:34 +01:00
tr ( " Controls the game's maximum rendering speed, but it’ s up to each game if it runs "
" faster or not. \n 200% for a 30 FPS game is 60 FPS, and for a "
" 60 FPS game it will be 120 FPS. \n Disabling it means unlocking the framerate to the "
" maximum your PC can reach. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
sync_core_speed ,
tr ( " Synchronize Core Speed " ) ,
tr ( " Synchronizes CPU core speed with the game's maximum rendering speed to boost FPS "
" without affecting game speed (animations, physics, etc.). \n "
" Compatibility varies by game; many (especially older ones) may not respond well. \n "
" Can help reduce stuttering at lower framerates. " ) ) ;
2023-05-07 09:48:26 -04:00
// Cpu
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
cpu_accuracy ,
tr ( " Accuracy: " ) ,
2024-02-06 22:11:34 +01:00
tr ( " This setting controls the accuracy of the emulated CPU. \n Don't change this unless "
2024-02-06 16:29:13 +01:00
" you know what you are doing. " ) ) ;
2025-05-17 20:22:25 +00:00
INSERT ( Settings , cpu_backend , tr ( " Backend: " ) , QString ( ) ) ;
2023-05-07 10:34:39 -04:00
2025-05-29 08:19:51 +00:00
INSERT ( Settings , use_fast_cpu_time , QString ( ) , QString ( ) ) ;
INSERT ( Settings ,
fast_cpu_time ,
tr ( " Fast CPU Time " ) ,
tr ( " Overclocks the emulated CPU to remove some FPS limiters. Weaker CPUs may see reduced performance, "
" and certain games may behave improperly. \n Use Boost (1700MHz) to run at the Switch's highest native "
" clock, or Fast (2000MHz) to run at 2x clock. " ) ) ;
2025-06-27 13:45:54 +00:00
INSERT ( Settings , use_custom_cpu_ticks , QString ( ) , QString ( ) ) ;
INSERT ( Settings ,
cpu_ticks ,
tr ( " Custom CPU Ticks " ) ,
tr ( " Set a custom value of CPU ticks. Higher values can increase performance, but may "
" also cause the game to freeze. A range of 77– 21000 is recommended. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings , cpu_backend , tr ( " Backend: " ) , QString ( ) ) ;
2023-05-07 10:34:39 -04:00
// Cpu Debug
2023-05-07 09:48:26 -04:00
2023-05-07 10:34:39 -04:00
// Cpu Unsafe
2023-05-19 00:51:57 -04:00
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
cpuopt_unsafe_unfuse_fma ,
2023-11-08 11:25:30 -05:00
tr ( " Unfuse FMA (improve performance on CPUs without FMA) " ) ,
tr ( " This option improves speed by reducing accuracy of fused-multiply-add instructions on "
" CPUs without native FMA support. " ) ) ;
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
cpuopt_unsafe_reduce_fp_error ,
tr ( " Faster FRSQRTE and FRECPE " ) ,
2023-11-08 11:25:30 -05:00
tr ( " This option improves the speed of some approximate floating-point functions by using "
" less accurate native approximations. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
cpuopt_unsafe_ignore_standard_fpcr ,
2023-11-08 11:25:30 -05:00
tr ( " Faster ASIMD instructions (32 bits only) " ) ,
tr ( " This option improves the speed of 32 bits ASIMD floating-point functions by running "
" with incorrect rounding modes. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
cpuopt_unsafe_inaccurate_nan ,
tr ( " Inaccurate NaN handling " ) ,
2024-02-06 16:29:13 +01:00
tr ( " This option improves speed by removing NaN checking. \n Please note this also reduces "
2023-11-08 11:25:30 -05:00
" accuracy of certain floating-point instructions. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
cpuopt_unsafe_fastmem_check ,
tr ( " Disable address space checks " ) ,
2023-11-08 11:25:30 -05:00
tr ( " This option improves speed by eliminating a safety check before every memory "
2024-02-06 16:29:13 +01:00
" read/write in guest. \n Disabling it may allow a game to read/write the emulator's "
" memory. " ) ) ;
2023-11-08 11:25:30 -05:00
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
cpuopt_unsafe_ignore_global_monitor ,
tr ( " Ignore global monitor " ) ,
2023-11-08 11:25:30 -05:00
tr ( " This option improves speed by relying only on the semantics of cmpxchg to ensure "
2024-02-06 16:29:13 +01:00
" safety of exclusive access instructions. \n Please note this may result in deadlocks and "
2023-11-08 11:25:30 -05:00
" other race conditions. " ) ) ;
2023-05-07 09:48:26 -04:00
// Renderer
2024-02-06 16:29:13 +01:00
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
renderer_backend ,
tr ( " API: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " Switches between the available graphics APIs. \n Vulkan is recommended in most cases. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
vulkan_device ,
tr ( " Device: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " This setting selects the GPU to use with the Vulkan backend. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
shader_backend ,
tr ( " Shader Backend: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " The shader backend to use for the OpenGL renderer. \n GLSL is the fastest in "
" performance and the best in rendering accuracy. \n "
" GLASM is a deprecated NVIDIA-only backend that offers much better shader building "
" performance at the cost of FPS and rendering accuracy. \n "
2024-02-06 22:11:34 +01:00
" SPIR-V compiles the fastest, but yields poor results on most GPU drivers. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
resolution_setup ,
tr ( " Resolution: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " Forces the game to render at a different resolution. \n Higher resolutions require "
" much more VRAM and bandwidth. \n "
" Options lower than 1X can cause rendering issues. " ) ) ;
2025-05-17 20:22:25 +00:00
INSERT ( Settings , scaling_filter , tr ( " Window Adapting Filter: " ) , QString ( ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
fsr_sharpening_slider ,
tr ( " FSR Sharpness: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " Determines how sharpened the image will look while using FSR’ s dynamic contrast. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
anti_aliasing ,
tr ( " Anti-Aliasing Method: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " The anti-aliasing method to use. \n SMAA offers the best quality. \n FXAA has a "
" lower performance impact and can produce a better and more stable picture under "
" very low resolutions. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
fullscreen_mode ,
tr ( " Fullscreen Mode: " ) ,
2024-02-06 16:42:57 +01:00
tr ( " The method used to render the window in fullscreen. \n Borderless offers the best "
" compatibility with the on-screen keyboard that some games request for "
" input. \n Exclusive "
" fullscreen may offer better performance and better Freesync/Gsync support. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
aspect_ratio ,
tr ( " Aspect Ratio: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " Stretches the game to fit the specified aspect ratio. \n Switch games only support "
" 16:9, so custom game mods are required to get other ratios. \n Also controls the "
" aspect ratio of captured screenshots. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
use_disk_shader_cache ,
tr ( " Use disk pipeline cache " ) ,
2024-02-06 16:42:57 +01:00
tr ( " Allows saving shaders to storage for faster loading on following game "
" boots. \n Disabling "
" it is only intended for debugging. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
optimize_spirv_output ,
tr ( " Optimize SPIRV output shader " ) ,
tr ( " Runs an additional optimization pass over generated SPIRV shaders. \n "
" Will increase time required for shader compilation. \n May slightly improve "
" performance. \n This feature is experimental. " ) ) ;
2024-02-06 16:29:13 +01:00
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
use_asynchronous_gpu_emulation ,
tr ( " Use asynchronous GPU emulation " ) ,
2024-02-06 16:42:57 +01:00
tr ( " Uses an extra CPU thread for rendering. \n This option should always remain enabled. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
nvdec_emulation ,
tr ( " NVDEC emulation: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " Specifies how videos should be decoded. \n It can either use the CPU or the GPU for "
" decoding, or perform no decoding at all (black screen on videos). \n "
" In most cases, GPU decoding provides the best performance. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
accelerate_astc ,
tr ( " ASTC Decoding Method: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " This option controls how ASTC textures should be decoded. \n "
" CPU: Use the CPU for decoding, slowest but safest method. \n "
" GPU: Use the GPU's compute shaders to decode ASTC textures, recommended for most "
" games and users. \n "
" CPU Asynchronously: Use the CPU to decode ASTC textures as they arrive. Completely "
2024-02-06 22:11:34 +01:00
" eliminates ASTC decoding \n stuttering at the cost of rendering issues while the "
2024-02-06 16:29:13 +01:00
" texture is being decoded. " ) ) ;
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
astc_recompression ,
tr ( " ASTC Recompression Method: " ) ,
2024-02-06 16:29:13 +01:00
tr ( " Almost all desktop and laptop dedicated GPUs lack support for ASTC textures, forcing "
2024-02-06 22:11:34 +01:00
" the emulator to decompress to an intermediate format any card supports, RGBA8. \n "
2024-02-06 16:29:13 +01:00
" This option recompresses RGBA8 to either the BC1 or BC3 format, saving VRAM but "
" negatively affecting image quality. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
vram_usage_mode ,
tr ( " VRAM Usage Mode: " ) ,
2024-02-12 20:13:07 -05:00
tr ( " Selects whether the emulator should prefer to conserve memory or make maximum usage "
2025-08-18 20:10:34 +02:00
" of available video memory for performance. \n Has no effect on integrated graphics. "
2024-02-12 20:13:07 -05:00
" Aggressive mode may severely impact the performance of other applications such as "
" recording software. " ) ) ;
2025-07-09 04:23:07 +02:00
INSERT ( Settings ,
skip_cpu_inner_invalidation ,
tr ( " Skip CPU Inner Invalidation " ) ,
tr ( " Skips certain CPU-side cache invalidations during memory updates, reducing CPU usage and "
" improving it's performance. This may cause glitches or crashes on some games. " ) ) ;
2023-11-08 11:25:30 -05:00
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
vsync_mode ,
tr ( " VSync Mode: " ) ,
2023-11-08 11:25:30 -05:00
tr ( " FIFO (VSync) does not drop frames or exhibit tearing but is limited by the screen "
2023-05-08 10:05:37 -04:00
" refresh rate. \n FIFO Relaxed is similar to FIFO but allows tearing as it recovers from "
" a slow down. \n Mailbox can have lower latency than FIFO and does not tear but may drop "
" frames. \n Immediate (no synchronization) just presents whatever is available and can "
2023-11-08 11:25:30 -05:00
" exhibit tearing. " ) ) ;
2025-05-17 20:22:25 +00:00
INSERT ( Settings , bg_red , QString ( ) , QString ( ) ) ;
INSERT ( Settings , bg_green , QString ( ) , QString ( ) ) ;
INSERT ( Settings , bg_blue , QString ( ) , QString ( ) ) ;
2023-05-07 09:48:26 -04:00
// Renderer (Advanced Graphics)
2025-08-20 00:21:25 +02:00
INSERT ( Settings , sync_memory_operations , tr ( " Sync Memory Operations " ) ,
tr ( " Ensures data consistency between compute and memory operations. \n This option should fix issues in some games, but may also reduce performance in some cases. \n Unreal Engine 4 games often see the most significant changes thereof. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
async_presentation ,
tr ( " Enable asynchronous presentation (Vulkan only) " ) ,
2024-02-06 16:42:57 +01:00
tr ( " Slightly improves performance by moving presentation to a separate CPU thread. " ) ) ;
2023-11-08 11:25:30 -05:00
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
renderer_force_max_clock ,
tr ( " Force maximum clocks (Vulkan only) " ) ,
2023-11-08 11:25:30 -05:00
tr ( " Runs work in the background while waiting for graphics commands to keep the GPU from "
" lowering its clock speed. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
max_anisotropy ,
tr ( " Anisotropic Filtering: " ) ,
2024-02-06 16:42:57 +01:00
tr ( " Controls the quality of texture rendering at oblique angles. \n It’ s a light setting "
" and safe to set at 16x on most GPUs. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
gpu_accuracy ,
tr ( " Accuracy Level: " ) ,
2024-02-06 16:42:57 +01:00
tr ( " GPU emulation accuracy. \n Most games render fine with Normal, but High is still "
" required for some. \n Particles tend to only render correctly with High "
" accuracy. \n Extreme should only be used for debugging. \n This option can "
" be changed while playing. \n Some games may require booting on high to render "
" properly. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
use_asynchronous_shaders ,
tr ( " Use asynchronous shader building (Hack) " ) ,
2024-02-06 16:42:57 +01:00
tr ( " Enables asynchronous shader compilation, which may reduce shader stutter. \n This "
" feature "
" is experimental. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings , use_fast_gpu_time , QString ( ) , QString ( ) ) ;
INSERT ( Settings ,
fast_gpu_time ,
tr ( " Fast GPU Time (Hack) " ) ,
tr ( " Overclocks the emulated GPU to increase dynamic resolution and render "
" distance. \n Use 128 for maximal performance and 512 for maximal graphics fidelity. " ) ) ;
INSERT ( Settings ,
use_vulkan_driver_pipeline_cache ,
tr ( " Use Vulkan pipeline cache " ) ,
2024-02-06 16:42:57 +01:00
tr ( " Enables GPU vendor-specific pipeline cache. \n This option can improve shader loading "
2023-11-08 11:25:30 -05:00
" time significantly in cases where the Vulkan driver does not store pipeline cache "
" files internally. " ) ) ;
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
enable_compute_pipelines ,
tr ( " Enable Compute Pipelines (Intel Vulkan Only) " ) ,
2023-11-08 11:25:30 -05:00
tr ( " Enable compute pipelines, required by some games. \n This setting only exists for Intel "
2023-05-07 09:48:26 -04:00
" proprietary drivers, and may crash if enabled. \n Compute pipelines are always enabled "
2023-11-08 11:25:30 -05:00
" on all other drivers. " ) ) ;
INSERT (
2025-05-29 08:19:51 +00:00
Settings ,
use_reactive_flushing ,
tr ( " Enable Reactive Flushing " ) ,
2023-11-08 11:25:30 -05:00
tr ( " Uses reactive flushing instead of predictive flushing, allowing more accurate memory "
" syncing. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
use_video_framerate ,
tr ( " Sync to framerate of video playback " ) ,
2023-11-08 11:25:30 -05:00
tr ( " Run the game at normal speed during video playback, even when the framerate is "
" unlocked. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
barrier_feedback_loops ,
tr ( " Barrier feedback loops " ) ,
2023-11-08 11:25:30 -05:00
tr ( " Improves rendering of transparency effects in specific games. " ) ) ;
2023-05-07 09:48:26 -04:00
2025-04-23 21:58:06 -04:00
// Renderer (Extensions)
2025-07-03 16:35:02 +00:00
INSERT ( Settings ,
enable_raii ,
tr ( " RAII " ) ,
tr ( " A method of automatic resource management in Vulkan "
" that ensures proper release of resources "
" when they are no longer needed, but may cause crashes in bundled games. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
dyna_state ,
tr ( " Extended Dynamic State " ) ,
tr ( " Enables the VkExtendedDynamicState* extensions. \n Higher dynamic states will "
" generally improve "
2025-04-24 12:08:01 -04:00
" performance, but may cause issues on certain games or devices. " ) ) ;
2025-04-23 20:57:53 -04:00
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
provoking_vertex ,
tr ( " Provoking Vertex " ) ,
2025-05-09 14:19:51 +00:00
tr ( " Improves lighting and vertex handling in certain games. \n "
" Only Vulkan 1.0+ devices support this extension. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
descriptor_indexing ,
tr ( " Descriptor Indexing " ) ,
2025-05-09 14:19:51 +00:00
tr ( " Improves texture & buffer handling and the Maxwell translation layer. \n "
2025-05-19 21:28:16 +00:00
" Some Vulkan 1.1+ and all 1.2+ devices support this extension. " ) ) ;
2025-05-09 14:19:51 +00:00
2025-08-15 01:17:38 +02:00
INSERT ( Settings , sample_shading , QString ( ) , QString ( ) ) ;
2025-06-29 17:07:14 +00:00
INSERT ( Settings ,
2025-08-15 01:17:38 +02:00
sample_shading_fraction ,
2025-06-29 17:07:14 +00:00
tr ( " Sample Shading " ) ,
tr ( " Allows the fragment shader to execute per sample in a multi-sampled fragment "
" instead once per fragment. Improves graphics quality at the cost of some performance. \n "
2025-08-16 00:42:54 +02:00
" Higher values improve quality more but also reduce performance to a greater extent. " ) ) ;
2025-06-29 17:07:14 +00:00
2023-05-07 09:48:26 -04:00
// Renderer (Debug)
// System
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
rng_seed ,
tr ( " RNG Seed " ) ,
2024-02-06 16:42:57 +01:00
tr ( " Controls the seed of the random number generator. \n Mainly used for speedrunning "
" purposes. " ) ) ;
2025-05-17 20:22:25 +00:00
INSERT ( Settings , rng_seed_enabled , QString ( ) , QString ( ) ) ;
2024-02-06 16:42:57 +01:00
INSERT ( Settings , device_name , tr ( " Device Name " ) , tr ( " The name of the emulated Switch. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
custom_rtc ,
tr ( " Custom RTC Date: " ) ,
2024-02-06 16:42:57 +01:00
tr ( " This option allows to change the emulated clock of the Switch. \n "
" Can be used to manipulate time in games. " ) ) ;
2025-05-17 20:22:25 +00:00
INSERT ( Settings , custom_rtc_enabled , QString ( ) , QString ( ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
custom_rtc_offset ,
QStringLiteral ( " " ) ,
2023-10-29 13:50:55 +00:00
QStringLiteral ( " The number of seconds from the current unix time " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
language_index ,
tr ( " Language: " ) ,
2023-11-08 11:25:30 -05:00
tr ( " Note: this can be overridden when region setting is auto-select " ) ) ;
2024-02-06 16:42:57 +01:00
INSERT ( Settings , region_index , tr ( " Region: " ) , tr ( " The region of the emulated Switch. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings , time_zone_index , tr ( " Time Zone: " ) , tr ( " The time zone of the emulated Switch. " ) ) ;
2025-05-17 20:22:25 +00:00
INSERT ( Settings , sound_index , tr ( " Sound Output Mode: " ) , QString ( ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( Settings ,
use_docked_mode ,
tr ( " Console Mode: " ) ,
2024-02-06 16:42:57 +01:00
tr ( " Selects if the console is emulated in Docked or Handheld mode. \n Games will change "
" their resolution, details and supported controllers and depending on this setting. \n "
" Setting to Handheld can help improve performance for low end systems. " ) ) ;
2025-05-17 20:22:25 +00:00
INSERT ( Settings , current_user , QString ( ) , QString ( ) ) ;
2023-05-07 10:34:39 -04:00
// Controls
// Data Storage
// Debugging
// Debugging Graphics
// Network
// Web Service
2023-05-07 09:48:26 -04:00
2023-05-09 01:36:17 -04:00
// Ui
// Ui General
2025-05-29 08:19:51 +00:00
INSERT ( UISettings ,
select_user_on_boot ,
tr ( " Prompt for user on game boot " ) ,
2025-07-19 00:12:21 -04:00
tr ( " Ask to select a user profile on each boot, useful if multiple people use Eden on "
2024-02-06 22:11:34 +01:00
" the same PC. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( UISettings ,
pause_when_in_background ,
tr ( " Pause emulation when in background " ) ,
2025-07-19 00:12:21 -04:00
tr ( " This setting pauses Eden when focusing other windows. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( UISettings ,
confirm_before_stopping ,
tr ( " Confirm before stopping emulation " ) ,
2024-02-06 22:11:34 +01:00
tr ( " This setting overrides game prompts asking to confirm stopping the game. \n Enabling "
" it bypasses such prompts and directly exits the emulation. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( UISettings ,
hide_mouse ,
tr ( " Hide mouse on inactivity " ) ,
2024-02-06 22:11:34 +01:00
tr ( " This setting hides the mouse after 2.5s of inactivity. " ) ) ;
2025-05-29 08:19:51 +00:00
INSERT ( UISettings ,
controller_applet_disabled ,
tr ( " Disable controller applet " ) ,
2024-02-06 22:11:34 +01:00
tr ( " Forcibly disables the use of the controller applet by guests. \n When a guest "
" attempts to open the controller applet, it is immediately closed. " ) ) ;
2025-05-28 02:23:51 +00:00
INSERT ( UISettings ,
check_for_updates ,
tr ( " Check for updates " ) ,
tr ( " Whether or not to check for updates upon startup. " ) ) ;
2023-11-03 15:41:16 +01:00
// Linux
2025-05-17 20:22:25 +00:00
INSERT ( Settings , enable_gamemode , tr ( " Enable Gamemode " ) , QString ( ) ) ;
2023-05-09 01:36:17 -04:00
// Ui Debugging
// Ui Multiplayer
// Ui Games list
2023-05-07 09:48:26 -04:00
# undef INSERT
return translations ;
}
2025-05-29 08:19:51 +00:00
std : : unique_ptr < ComboboxTranslationMap > ComboboxEnumeration ( QWidget * parent )
{
std : : unique_ptr < ComboboxTranslationMap > translations = std : : make_unique < ComboboxTranslationMap > ( ) ;
2023-06-21 00:13:06 -04:00
const auto & tr = [ & ] ( const char * text , const char * context = " " ) {
return parent - > tr ( text , context ) ;
} ;
2023-05-07 09:48:26 -04:00
2023-11-08 11:25:30 -05:00
# define PAIR(ENUM, VALUE, TRANSLATION) {static_cast<u32>(Settings::ENUM::VALUE), (TRANSLATION)}
2023-06-09 19:52:59 -04:00
2023-05-07 17:41:30 -04:00
// Intentionally skipping VSyncMode to let the UI fill that one out
2024-01-26 23:28:24 -05:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : AppletMode > : : Index ( ) ,
{
PAIR ( AppletMode , HLE , tr ( " Custom frontend " ) ) ,
PAIR ( AppletMode , LLE , tr ( " Real applet " ) ) ,
} } ) ;
2025-07-03 01:13:33 +00:00
2025-04-12 00:26:47 +03:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : SpirvOptimizeMode > : : Index ( ) ,
2025-05-29 08:19:51 +00:00
{
PAIR ( SpirvOptimizeMode , Never , tr ( " Never " ) ) ,
PAIR ( SpirvOptimizeMode , OnLoad , tr ( " On Load " ) ) ,
PAIR ( SpirvOptimizeMode , Always , tr ( " Always " ) ) ,
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : AstcDecodeMode > : : Index ( ) ,
2023-06-09 19:52:59 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( AstcDecodeMode , Cpu , tr ( " CPU " ) ) ,
PAIR ( AstcDecodeMode , Gpu , tr ( " GPU " ) ) ,
PAIR ( AstcDecodeMode , CpuAsynchronous , tr ( " CPU Asynchronous " ) ) ,
2023-06-09 19:52:59 -04:00
} } ) ;
2023-11-08 11:25:30 -05:00
translations - > insert (
{ Settings : : EnumMetadata < Settings : : AstcRecompression > : : Index ( ) ,
{
PAIR ( AstcRecompression , Uncompressed , tr ( " Uncompressed (Best quality) " ) ) ,
PAIR ( AstcRecompression , Bc1 , tr ( " BC1 (Low quality) " ) ) ,
PAIR ( AstcRecompression , Bc3 , tr ( " BC3 (Medium quality) " ) ) ,
} } ) ;
2024-02-12 20:13:07 -05:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : VramUsageMode > : : Index ( ) ,
{
PAIR ( VramUsageMode , Conservative , tr ( " Conservative " ) ) ,
PAIR ( VramUsageMode , Aggressive , tr ( " Aggressive " ) ) ,
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : RendererBackend > : : Index ( ) ,
2023-05-18 22:17:36 -04:00
{
# ifdef HAS_OPENGL
2023-11-08 11:25:30 -05:00
PAIR ( RendererBackend , OpenGL , tr ( " OpenGL " ) ) ,
2023-05-18 22:17:36 -04:00
# endif
2023-11-08 11:25:30 -05:00
PAIR ( RendererBackend , Vulkan , tr ( " Vulkan " ) ) ,
PAIR ( RendererBackend , Null , tr ( " Null " ) ) ,
2023-05-18 22:17:36 -04:00
} } ) ;
2023-11-08 11:25:30 -05:00
translations - > insert (
{ Settings : : EnumMetadata < Settings : : ShaderBackend > : : Index ( ) ,
{
PAIR ( ShaderBackend , Glsl , tr ( " GLSL " ) ) ,
PAIR ( ShaderBackend , Glasm , tr ( " GLASM (Assembly Shaders, NVIDIA Only) " ) ) ,
2023-12-21 22:00:49 -05:00
PAIR ( ShaderBackend , SpirV , tr ( " SPIR-V (Experimental, AMD/Mesa Only) " ) ) ,
2023-11-08 11:25:30 -05:00
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : GpuAccuracy > : : Index ( ) ,
2023-05-18 22:17:36 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( GpuAccuracy , Normal , tr ( " Normal " ) ) ,
PAIR ( GpuAccuracy , High , tr ( " High " ) ) ,
PAIR ( GpuAccuracy , Extreme , tr ( " Extreme " ) ) ,
2023-06-09 19:52:59 -04:00
} } ) ;
2023-11-08 11:25:30 -05:00
translations - > insert (
{ Settings : : EnumMetadata < Settings : : CpuAccuracy > : : Index ( ) ,
{
PAIR ( CpuAccuracy , Auto , tr ( " Auto " ) ) ,
PAIR ( CpuAccuracy , Accurate , tr ( " Accurate " ) ) ,
PAIR ( CpuAccuracy , Unsafe , tr ( " Unsafe " ) ) ,
PAIR ( CpuAccuracy , Paranoid , tr ( " Paranoid (disables most optimizations) " ) ) ,
} } ) ;
2023-11-26 20:25:18 -05:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : CpuBackend > : : Index ( ) ,
{
PAIR ( CpuBackend , Dynarmic , tr ( " Dynarmic " ) ) ,
PAIR ( CpuBackend , Nce , tr ( " NCE " ) ) ,
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : FullscreenMode > : : Index ( ) ,
2023-06-09 19:52:59 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( FullscreenMode , Borderless , tr ( " Borderless Windowed " ) ) ,
PAIR ( FullscreenMode , Exclusive , tr ( " Exclusive Fullscreen " ) ) ,
2023-06-09 19:52:59 -04:00
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : NvdecEmulation > : : Index ( ) ,
2023-06-09 19:52:59 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( NvdecEmulation , Off , tr ( " No Video Output " ) ) ,
PAIR ( NvdecEmulation , Cpu , tr ( " CPU Video Decoding " ) ) ,
PAIR ( NvdecEmulation , Gpu , tr ( " GPU Video Decoding (Default) " ) ) ,
2023-06-09 19:52:59 -04:00
} } ) ;
2023-11-08 11:25:30 -05:00
translations - > insert (
{ Settings : : EnumMetadata < Settings : : ResolutionSetup > : : Index ( ) ,
{
2025-05-31 02:16:36 +00:00
PAIR ( ResolutionSetup , Res1_4X , tr ( " 0.25X (180p/270p) [EXPERIMENTAL] " ) ) ,
2023-11-08 11:25:30 -05:00
PAIR ( ResolutionSetup , Res1_2X , tr ( " 0.5X (360p/540p) [EXPERIMENTAL] " ) ) ,
PAIR ( ResolutionSetup , Res3_4X , tr ( " 0.75X (540p/810p) [EXPERIMENTAL] " ) ) ,
PAIR ( ResolutionSetup , Res1X , tr ( " 1X (720p/1080p) " ) ) ,
PAIR ( ResolutionSetup , Res3_2X , tr ( " 1.5X (1080p/1620p) [EXPERIMENTAL] " ) ) ,
PAIR ( ResolutionSetup , Res2X , tr ( " 2X (1440p/2160p) " ) ) ,
PAIR ( ResolutionSetup , Res3X , tr ( " 3X (2160p/3240p) " ) ) ,
PAIR ( ResolutionSetup , Res4X , tr ( " 4X (2880p/4320p) " ) ) ,
PAIR ( ResolutionSetup , Res5X , tr ( " 5X (3600p/5400p) " ) ) ,
PAIR ( ResolutionSetup , Res6X , tr ( " 6X (4320p/6480p) " ) ) ,
PAIR ( ResolutionSetup , Res7X , tr ( " 7X (5040p/7560p) " ) ) ,
PAIR ( ResolutionSetup , Res8X , tr ( " 8X (5760p/8640p) " ) ) ,
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : ScalingFilter > : : Index ( ) ,
2023-06-09 19:52:59 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( ScalingFilter , NearestNeighbor , tr ( " Nearest Neighbor " ) ) ,
PAIR ( ScalingFilter , Bilinear , tr ( " Bilinear " ) ) ,
PAIR ( ScalingFilter , Bicubic , tr ( " Bicubic " ) ) ,
PAIR ( ScalingFilter , Gaussian , tr ( " Gaussian " ) ) ,
PAIR ( ScalingFilter , ScaleForce , tr ( " ScaleForce " ) ) ,
PAIR ( ScalingFilter , Fsr , tr ( " AMD FidelityFX™️ Super Resolution " ) ) ,
2025-06-21 13:35:04 +00:00
PAIR ( ScalingFilter , Area , tr ( " Area " ) ) ,
2023-05-18 22:17:36 -04:00
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : AntiAliasing > : : Index ( ) ,
2023-05-18 22:17:36 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( AntiAliasing , None , tr ( " None " ) ) ,
PAIR ( AntiAliasing , Fxaa , tr ( " FXAA " ) ) ,
PAIR ( AntiAliasing , Smaa , tr ( " SMAA " ) ) ,
2023-06-09 19:52:59 -04:00
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : AspectRatio > : : Index ( ) ,
2023-06-09 19:52:59 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( AspectRatio , R16_9 , tr ( " Default (16:9) " ) ) ,
PAIR ( AspectRatio , R4_3 , tr ( " Force 4:3 " ) ) ,
PAIR ( AspectRatio , R21_9 , tr ( " Force 21:9 " ) ) ,
PAIR ( AspectRatio , R16_10 , tr ( " Force 16:10 " ) ) ,
PAIR ( AspectRatio , Stretch , tr ( " Stretch to Window " ) ) ,
2023-06-09 19:52:59 -04:00
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : AnisotropyMode > : : Index ( ) ,
2023-06-09 19:52:59 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( AnisotropyMode , Automatic , tr ( " Automatic " ) ) ,
PAIR ( AnisotropyMode , Default , tr ( " Default " ) ) ,
PAIR ( AnisotropyMode , X2 , tr ( " 2x " ) ) ,
PAIR ( AnisotropyMode , X4 , tr ( " 4x " ) ) ,
PAIR ( AnisotropyMode , X8 , tr ( " 8x " ) ) ,
PAIR ( AnisotropyMode , X16 , tr ( " 16x " ) ) ,
2023-05-18 22:17:36 -04:00
} } ) ;
translations - > insert (
2023-06-21 21:41:15 -04:00
{ Settings : : EnumMetadata < Settings : : Language > : : Index ( ) ,
2023-05-18 22:17:36 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( Language , Japanese , tr ( " Japanese (日本語) " ) ) ,
PAIR ( Language , EnglishAmerican , tr ( " American English " ) ) ,
PAIR ( Language , French , tr ( " French (français) " ) ) ,
PAIR ( Language , German , tr ( " German (Deutsch) " ) ) ,
PAIR ( Language , Italian , tr ( " Italian (italiano) " ) ) ,
PAIR ( Language , Spanish , tr ( " Spanish (español) " ) ) ,
PAIR ( Language , Chinese , tr ( " Chinese " ) ) ,
PAIR ( Language , Korean , tr ( " Korean (한국어) " ) ) ,
PAIR ( Language , Dutch , tr ( " Dutch (Nederlands) " ) ) ,
PAIR ( Language , Portuguese , tr ( " Portuguese (português) " ) ) ,
PAIR ( Language , Russian , tr ( " Russian (Русский) " ) ) ,
PAIR ( Language , Taiwanese , tr ( " Taiwanese " ) ) ,
PAIR ( Language , EnglishBritish , tr ( " British English " ) ) ,
PAIR ( Language , FrenchCanadian , tr ( " Canadian French " ) ) ,
PAIR ( Language , SpanishLatin , tr ( " Latin American Spanish " ) ) ,
PAIR ( Language , ChineseSimplified , tr ( " Simplified Chinese " ) ) ,
PAIR ( Language , ChineseTraditional , tr ( " Traditional Chinese (正體中文) " ) ) ,
PAIR ( Language , PortugueseBrazilian , tr ( " Brazilian Portuguese (português do Brasil) " ) ) ,
2025-07-01 01:44:12 +00:00
PAIR ( Language , Serbian , tr ( " Serbian (српски) " ) ) ,
2023-05-18 22:17:36 -04:00
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : Region > : : Index ( ) ,
2023-05-18 22:17:36 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( Region , Japan , tr ( " Japan " ) ) ,
PAIR ( Region , Usa , tr ( " USA " ) ) ,
PAIR ( Region , Europe , tr ( " Europe " ) ) ,
PAIR ( Region , Australia , tr ( " Australia " ) ) ,
PAIR ( Region , China , tr ( " China " ) ) ,
PAIR ( Region , Korea , tr ( " Korea " ) ) ,
PAIR ( Region , Taiwan , tr ( " Taiwan " ) ) ,
2023-05-18 22:17:36 -04:00
} } ) ;
2023-06-21 17:02:42 -04:00
translations - > insert (
2023-06-21 21:41:15 -04:00
{ Settings : : EnumMetadata < Settings : : TimeZone > : : Index ( ) ,
2023-06-21 17:02:42 -04:00
{
{ static_cast < u32 > ( Settings : : TimeZone : : Auto ) ,
tr ( " Auto (%1) " , " Auto select time zone " )
2023-07-04 16:48:48 -04:00
. arg ( QString : : fromStdString (
Settings : : GetTimeZoneString ( Settings : : TimeZone : : Auto ) ) ) } ,
2023-06-21 17:02:42 -04:00
{ static_cast < u32 > ( Settings : : TimeZone : : Default ) ,
tr ( " Default (%1) " , " Default time zone " )
. arg ( QString : : fromStdString ( Common : : TimeZone : : GetDefaultTimeZone ( ) ) ) } ,
2023-11-08 11:25:30 -05:00
PAIR ( TimeZone , Cet , tr ( " CET " ) ) ,
PAIR ( TimeZone , Cst6Cdt , tr ( " CST6CDT " ) ) ,
PAIR ( TimeZone , Cuba , tr ( " Cuba " ) ) ,
PAIR ( TimeZone , Eet , tr ( " EET " ) ) ,
PAIR ( TimeZone , Egypt , tr ( " Egypt " ) ) ,
PAIR ( TimeZone , Eire , tr ( " Eire " ) ) ,
PAIR ( TimeZone , Est , tr ( " EST " ) ) ,
PAIR ( TimeZone , Est5Edt , tr ( " EST5EDT " ) ) ,
PAIR ( TimeZone , Gb , tr ( " GB " ) ) ,
PAIR ( TimeZone , GbEire , tr ( " GB-Eire " ) ) ,
PAIR ( TimeZone , Gmt , tr ( " GMT " ) ) ,
PAIR ( TimeZone , GmtPlusZero , tr ( " GMT+0 " ) ) ,
PAIR ( TimeZone , GmtMinusZero , tr ( " GMT-0 " ) ) ,
PAIR ( TimeZone , GmtZero , tr ( " GMT0 " ) ) ,
PAIR ( TimeZone , Greenwich , tr ( " Greenwich " ) ) ,
PAIR ( TimeZone , Hongkong , tr ( " Hongkong " ) ) ,
PAIR ( TimeZone , Hst , tr ( " HST " ) ) ,
PAIR ( TimeZone , Iceland , tr ( " Iceland " ) ) ,
PAIR ( TimeZone , Iran , tr ( " Iran " ) ) ,
PAIR ( TimeZone , Israel , tr ( " Israel " ) ) ,
PAIR ( TimeZone , Jamaica , tr ( " Jamaica " ) ) ,
PAIR ( TimeZone , Japan , tr ( " Japan " ) ) ,
PAIR ( TimeZone , Kwajalein , tr ( " Kwajalein " ) ) ,
PAIR ( TimeZone , Libya , tr ( " Libya " ) ) ,
PAIR ( TimeZone , Met , tr ( " MET " ) ) ,
PAIR ( TimeZone , Mst , tr ( " MST " ) ) ,
PAIR ( TimeZone , Mst7Mdt , tr ( " MST7MDT " ) ) ,
PAIR ( TimeZone , Navajo , tr ( " Navajo " ) ) ,
PAIR ( TimeZone , Nz , tr ( " NZ " ) ) ,
PAIR ( TimeZone , NzChat , tr ( " NZ-CHAT " ) ) ,
PAIR ( TimeZone , Poland , tr ( " Poland " ) ) ,
PAIR ( TimeZone , Portugal , tr ( " Portugal " ) ) ,
PAIR ( TimeZone , Prc , tr ( " PRC " ) ) ,
PAIR ( TimeZone , Pst8Pdt , tr ( " PST8PDT " ) ) ,
PAIR ( TimeZone , Roc , tr ( " ROC " ) ) ,
PAIR ( TimeZone , Rok , tr ( " ROK " ) ) ,
PAIR ( TimeZone , Singapore , tr ( " Singapore " ) ) ,
PAIR ( TimeZone , Turkey , tr ( " Turkey " ) ) ,
PAIR ( TimeZone , Uct , tr ( " UCT " ) ) ,
PAIR ( TimeZone , Universal , tr ( " Universal " ) ) ,
PAIR ( TimeZone , Utc , tr ( " UTC " ) ) ,
PAIR ( TimeZone , WSu , tr ( " W-SU " ) ) ,
PAIR ( TimeZone , Wet , tr ( " WET " ) ) ,
PAIR ( TimeZone , Zulu , tr ( " Zulu " ) ) ,
2023-06-21 17:02:42 -04:00
} } ) ;
2023-06-21 21:41:15 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : AudioMode > : : Index ( ) ,
2023-05-18 22:17:36 -04:00
{
2023-11-08 11:25:30 -05:00
PAIR ( AudioMode , Mono , tr ( " Mono " ) ) ,
PAIR ( AudioMode , Stereo , tr ( " Stereo " ) ) ,
PAIR ( AudioMode , Surround , tr ( " Surround " ) ) ,
2023-05-18 22:17:36 -04:00
} } ) ;
2023-07-17 19:59:47 -04:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : MemoryLayout > : : Index ( ) ,
{
2023-11-08 11:25:30 -05:00
PAIR ( MemoryLayout , Memory_4Gb , tr ( " 4GB DRAM (Default) " ) ) ,
PAIR ( MemoryLayout , Memory_6Gb , tr ( " 6GB DRAM (Unsafe) " ) ) ,
2025-05-11 23:58:25 +00:00
PAIR ( MemoryLayout , Memory_8Gb , tr ( " 8GB DRAM " ) ) ,
PAIR ( MemoryLayout , Memory_10Gb , tr ( " 10GB DRAM (Unsafe) " ) ) ,
PAIR ( MemoryLayout , Memory_12Gb , tr ( " 12GB DRAM (Unsafe) " ) ) ,
2023-11-08 11:25:30 -05:00
} } ) ;
translations - > insert ( { Settings : : EnumMetadata < Settings : : ConsoleMode > : : Index ( ) ,
{
PAIR ( ConsoleMode , Docked , tr ( " Docked " ) ) ,
PAIR ( ConsoleMode , Handheld , tr ( " Handheld " ) ) ,
2023-07-17 19:59:47 -04:00
} } ) ;
2025-05-29 08:19:51 +00:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : CpuClock > : : Index ( ) ,
{
2025-06-09 04:20:09 -04:00
PAIR ( CpuClock , Boost , tr ( " Boost (1700MHz) " ) ) ,
2025-05-29 08:19:51 +00:00
PAIR ( CpuClock , Fast , tr ( " Fast (2000MHz) " ) ) ,
} } ) ;
2023-08-26 21:23:02 +02:00
translations - > insert (
{ Settings : : EnumMetadata < Settings : : ConfirmStop > : : Index ( ) ,
{
2023-11-08 11:25:30 -05:00
PAIR ( ConfirmStop , Ask_Always , tr ( " Always ask (Default) " ) ) ,
PAIR ( ConfirmStop , Ask_Based_On_Game , tr ( " Only if game specifies not to stop " ) ) ,
PAIR ( ConfirmStop , Ask_Never , tr ( " Never ask " ) ) ,
2023-08-26 21:23:02 +02:00
} } ) ;
2025-05-29 08:19:51 +00:00
translations - > insert ( { Settings : : EnumMetadata < Settings : : GpuOverclock > : : Index ( ) ,
{
PAIR ( GpuOverclock , Low , tr ( " Low (128) " ) ) ,
PAIR ( GpuOverclock , Medium , tr ( " Medium (256) " ) ) ,
PAIR ( GpuOverclock , High , tr ( " High (512) " ) ) ,
} } ) ;
2023-05-07 09:48:26 -04:00
2023-06-09 19:52:59 -04:00
# undef PAIR
# undef CTX_PAIR
2023-05-18 22:17:36 -04:00
return translations ;
}
2023-05-07 09:48:26 -04:00
} // namespace ConfigurationShared