| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -906,10 +906,14 @@ static constexpr const std::array s_log_level_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "None", "Error", "Warning", "Info", "Verbose", "Dev", "Debug", "Trace",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_log_level_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("LogLevel", "None"),    TRANSLATE_NOOP("LogLevel", "Error"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("LogLevel", "Warning"), TRANSLATE_NOOP("LogLevel", "Information"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("LogLevel", "Verbose"), TRANSLATE_NOOP("LogLevel", "Developer"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("LogLevel", "Debug"),   TRANSLATE_NOOP("LogLevel", "Trace"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "None", "LogLevel"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Error", "LogLevel"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Warning", "LogLevel"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Information", "LogLevel"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Verbose", "LogLevel"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Developer", "LogLevel"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Debug", "LogLevel"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Trace", "LogLevel"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<LOGLEVEL> Settings::ParseLogLevelName(const char* str)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -933,13 +937,21 @@ const char* Settings::GetLogLevelName(LOGLEVEL level)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetLogLevelDisplayName(LOGLEVEL level)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("LogLevel", s_log_level_display_names[static_cast<size_t>(level)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_log_level_display_names[static_cast<size_t>(level)], "LogLevel");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_console_region_names = {"Auto", "NTSC-J", "NTSC-U", "PAL"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_console_region_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Auto",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "NTSC-J",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "NTSC-U",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "PAL",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_console_region_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("ConsoleRegion", "Auto-Detect"), TRANSLATE_NOOP("ConsoleRegion", "NTSC-J (Japan)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("ConsoleRegion", "NTSC-U/C (US, Canada)"), TRANSLATE_NOOP("ConsoleRegion", "PAL (Europe, Australia)")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Auto-Detect", "ConsoleRegion"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "NTSC-J (Japan)", "ConsoleRegion"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "NTSC-U/C (US, Canada)", "ConsoleRegion"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "PAL (Europe, Australia)", "ConsoleRegion"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<ConsoleRegion> Settings::ParseConsoleRegionName(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -962,14 +974,20 @@ const char* Settings::GetConsoleRegionName(ConsoleRegion region)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetConsoleRegionDisplayName(ConsoleRegion region)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("ConsoleRegion", s_console_region_display_names[static_cast<size_t>(region)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_console_region_display_names[static_cast<size_t>(region)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "ConsoleRegion");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_disc_region_names = {"NTSC-J", "NTSC-U", "PAL", "Other", "Non-PS1"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_disc_region_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "NTSC-J", "NTSC-U", "PAL", "Other", "Non-PS1",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_disc_region_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DiscRegion", "NTSC-J (Japan)"), TRANSLATE_NOOP("DiscRegion", "NTSC-U/C (US, Canada)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DiscRegion", "PAL (Europe, Australia)"), TRANSLATE_NOOP("DiscRegion", "Other"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DiscRegion", "Non-PS1")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "NTSC-J (Japan)", "DiscRegion"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "NTSC-U/C (US, Canada)", "DiscRegion"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "PAL (Europe, Australia)", "DiscRegion"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Other", "DiscRegion"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Non-PS1", "DiscRegion"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<DiscRegion> Settings::ParseDiscRegionName(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -992,16 +1010,21 @@ const char* Settings::GetDiscRegionName(DiscRegion region)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDiscRegionDisplayName(DiscRegion region)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("DiscRegion", s_disc_region_display_names[static_cast<size_t>(region)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_disc_region_display_names[static_cast<size_t>(region)], "DiscRegion");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_cpu_execution_mode_names = {"Interpreter", "CachedInterpreter", "Recompiler",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                                                "NewRec"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_cpu_execution_mode_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Interpreter",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "CachedInterpreter",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Recompiler",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "NewRec",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_cpu_execution_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("CPUExecutionMode", "Interpreter (Slowest)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("CPUExecutionMode", "Cached Interpreter (Faster)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("CPUExecutionMode", "Recompiler (Fastest)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("CPUExecutionMode", "New Recompiler (Experimental)")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Interpreter (Slowest)", "CPUExecutionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Cached Interpreter (Faster)", "CPUExecutionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Recompiler (Fastest)", "CPUExecutionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "New Recompiler (Experimental)", "CPUExecutionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<CPUExecutionMode> Settings::ParseCPUExecutionMode(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1024,14 +1047,20 @@ const char* Settings::GetCPUExecutionModeName(CPUExecutionMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetCPUExecutionModeDisplayName(CPUExecutionMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("CPUExecutionMode", s_cpu_execution_mode_display_names[static_cast<u8>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_cpu_execution_mode_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "CPUExecutionMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_cpu_fastmem_mode_names = {"Disabled", "MMap", "LUT"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_cpu_fastmem_mode_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Disabled",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "MMap",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "LUT",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_cpu_fastmem_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("CPUFastmemMode", "Disabled (Slowest)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("CPUFastmemMode", "MMap (Hardware, Fastest, 64-Bit Only)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("CPUFastmemMode", "LUT (Faster)")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Disabled (Slowest)", "CPUFastmemMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "MMap (Hardware, Fastest, 64-Bit Only)", "CPUFastmemMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "LUT (Faster)", "CPUFastmemMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<CPUFastmemMode> Settings::ParseCPUFastmemMode(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1054,7 +1083,8 @@ const char* Settings::GetCPUFastmemModeName(CPUFastmemMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetCPUFastmemModeDisplayName(CPUFastmemMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("CPUFastmemMode", s_cpu_fastmem_mode_display_names[static_cast<u8>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_cpu_fastmem_mode_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "CPUFastmemMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_gpu_renderer_names = {
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1074,20 +1104,21 @@ static constexpr const std::array s_gpu_renderer_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Software",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_gpu_renderer_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPURenderer", "Automatic"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Automatic", "GPURenderer"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#ifdef _WIN32
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPURenderer", "Direct3D 11"), TRANSLATE_NOOP("GPURenderer", "Direct3D 12"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Direct3D 11", "GPURenderer"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Direct3D 12", "GPURenderer"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#ifdef __APPLE__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPURenderer", "Metal"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Metal", "GPURenderer"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#ifdef ENABLE_VULKAN
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPURenderer", "Vulkan"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Vulkan", "GPURenderer"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#ifdef ENABLE_OPENGL
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPURenderer", "OpenGL"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "OpenGL", "GPURenderer"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPURenderer", "Software"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Software", "GPURenderer"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<GPURenderer> Settings::ParseRendererName(const char* str)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1111,7 +1142,8 @@ const char* Settings::GetRendererName(GPURenderer renderer)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetRendererDisplayName(GPURenderer renderer)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("GPURenderer", s_gpu_renderer_display_names[static_cast<size_t>(renderer)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_gpu_renderer_display_names[static_cast<size_t>(renderer)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "GPURenderer");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				RenderAPI Settings::GetRenderAPIForRenderer(GPURenderer renderer)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1184,13 +1216,13 @@ static constexpr const std::array s_texture_filter_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Nearest", "Bilinear", "BilinearBinAlpha", "JINC2", "JINC2BinAlpha", "xBR", "xBRBinAlpha",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_texture_filter_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUTextureFilter", "Nearest-Neighbor"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUTextureFilter", "Bilinear"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUTextureFilter", "Bilinear (No Edge Blending)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUTextureFilter", "JINC2 (Slow)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUTextureFilter", "JINC2 (Slow, No Edge Blending)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUTextureFilter", "xBR (Very Slow)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUTextureFilter", "xBR (Very Slow, No Edge Blending)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Nearest-Neighbor", "GPUTextureFilter"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Bilinear", "GPUTextureFilter"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Bilinear (No Edge Blending)", "GPUTextureFilter"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "JINC2 (Slow)", "GPUTextureFilter"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "JINC2 (Slow, No Edge Blending)", "GPUTextureFilter"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "xBR (Very Slow)", "GPUTextureFilter"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "xBR (Very Slow, No Edge Blending)", "GPUTextureFilter"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<GPUTextureFilter> Settings::ParseTextureFilterName(const char* str)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1214,7 +1246,8 @@ const char* Settings::GetTextureFilterName(GPUTextureFilter filter)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetTextureFilterDisplayName(GPUTextureFilter filter)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("GPUTextureFilter", s_texture_filter_display_names[static_cast<size_t>(filter)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_texture_filter_display_names[static_cast<size_t>(filter)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "GPUTextureFilter");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_line_detect_mode_names = {
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1224,10 +1257,10 @@ static constexpr const std::array s_line_detect_mode_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "AggressiveTriangles",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_line_detect_mode_detect_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPULineDetectMode", "Disabled"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPULineDetectMode", "Quads"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPULineDetectMode", "Triangles (Basic)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPULineDetectMode", "Triangles (Aggressive)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Disabled", "GPULineDetectMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Quads", "GPULineDetectMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Triangles (Basic)", "GPULineDetectMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Triangles (Aggressive)", "GPULineDetectMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<GPULineDetectMode> Settings::ParseLineDetectModeName(const char* str)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1251,14 +1284,15 @@ const char* Settings::GetLineDetectModeName(GPULineDetectMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetLineDetectModeDisplayName(GPULineDetectMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("GPULineDetectMode", s_line_detect_mode_detect_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_line_detect_mode_detect_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "GPULineDetectMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_downsample_mode_names = {"Disabled", "Box", "Adaptive"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_downsample_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUDownsampleMode", "Disabled"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUDownsampleMode", "Box (Downsample 3D/Smooth All)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUDownsampleMode", "Adaptive (Preserve 3D/Smooth 2D)")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Disabled", "GPUDownsampleMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Box (Downsample 3D/Smooth All)", "GPUDownsampleMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Adaptive (Preserve 3D/Smooth 2D)", "GPUDownsampleMode")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<GPUDownsampleMode> Settings::ParseDownsampleModeName(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1281,13 +1315,15 @@ const char* Settings::GetDownsampleModeName(GPUDownsampleMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDownsampleModeDisplayName(GPUDownsampleMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("GPUDownsampleMode", s_downsample_mode_display_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_downsample_mode_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "GPUDownsampleMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_wireframe_mode_names = {"Disabled", "OverlayWireframe", "OnlyWireframe"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_wireframe_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUWireframeMode", "Disabled"), TRANSLATE_NOOP("GPUWireframeMode", "Overlay Wireframe"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("GPUWireframeMode", "Only Wireframe")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Disabled", "GPUWireframeMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Overlay Wireframe", "GPUWireframeMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Only Wireframe", "GPUWireframeMode")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<GPUWireframeMode> Settings::ParseGPUWireframeMode(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1310,22 +1346,19 @@ const char* Settings::GetGPUWireframeModeName(GPUWireframeMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetGPUWireframeModeDisplayName(GPUWireframeMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("GPUWireframeMode", s_wireframe_mode_display_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_wireframe_mode_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "GPUWireframeMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_deinterlacing_mode_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Disabled",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Weave",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Blend",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Adaptive",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Progressive",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Disabled", "Weave", "Blend", "Adaptive", "Progressive",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_deinterlacing_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayDeinterlacingMode", "Disabled (Flickering)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayDeinterlacingMode", "Weave (Combing)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayDeinterlacingMode", "Blend (Blur)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayDeinterlacingMode", "Adaptive (FastMAD)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayDeinterlacingMode", "Progressive (Optimal)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Disabled (Flickering)", "DisplayDeinterlacingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Weave (Combing)", "DisplayDeinterlacingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Blend (Blur)", "DisplayDeinterlacingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Adaptive (FastMAD)", "DisplayDeinterlacingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Progressive (Optimal)", "DisplayDeinterlacingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<DisplayDeinterlacingMode> Settings::ParseDisplayDeinterlacingMode(const char* str)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1349,14 +1382,16 @@ const char* Settings::GetDisplayDeinterlacingModeName(DisplayDeinterlacingMode m
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayDeinterlacingModeDisplayName(DisplayDeinterlacingMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("DisplayDeinterlacingMode",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  s_display_deinterlacing_mode_display_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_deinterlacing_mode_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "DisplayDeinterlacingMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_crop_mode_names = {"None", "Overscan", "Borders"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_crop_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayCropMode", "None"), TRANSLATE_NOOP("DisplayCropMode", "Only Overscan Area"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayCropMode", "All Borders")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "None", "DisplayCropMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Only Overscan Area", "DisplayCropMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "All Borders", "DisplayCropMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<DisplayCropMode> Settings::ParseDisplayCropMode(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1379,14 +1414,15 @@ const char* Settings::GetDisplayCropModeName(DisplayCropMode crop_mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayCropModeDisplayName(DisplayCropMode crop_mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("DisplayCropMode", s_display_crop_mode_display_names[static_cast<size_t>(crop_mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_crop_mode_display_names[static_cast<size_t>(crop_mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "DisplayCropMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_aspect_ratio_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#ifndef __ANDROID__
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayAspectRatio", "Auto (Game Native)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayAspectRatio", "Stretch To Fill"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayAspectRatio", "Custom"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Auto (Game Native)", "DisplayAspectRatio"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Stretch To Fill", "DisplayAspectRatio"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Custom", "DisplayAspectRatio"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Auto (Game Native)",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Auto (Match Window)",
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1421,7 +1457,8 @@ const char* Settings::GetDisplayAspectRatioName(DisplayAspectRatio ar)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayAspectRatioDisplayName(DisplayAspectRatio ar)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("DisplayAspectRatio", s_display_aspect_ratio_names[static_cast<size_t>(ar)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_aspect_ratio_names[static_cast<size_t>(ar)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "DisplayAspectRatio");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				float Settings::GetDisplayAspectRatioValue() const
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1451,8 +1488,10 @@ float Settings::GetDisplayAspectRatioValue() const
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_alignment_names = {"LeftOrTop", "Center", "RightOrBottom"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_alignment_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayAlignment", "Left / Top"), TRANSLATE_NOOP("DisplayAlignment", "Center"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayAlignment", "Right / Bottom")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Left / Top", "DisplayAlignment"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Center", "DisplayAlignment"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Right / Bottom", "DisplayAlignment"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<DisplayAlignment> Settings::ParseDisplayAlignment(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1475,16 +1514,16 @@ const char* Settings::GetDisplayAlignmentName(DisplayAlignment alignment)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayAlignmentDisplayName(DisplayAlignment alignment)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("DisplayAlignment",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  s_display_alignment_display_names[static_cast<size_t>(alignment)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_alignment_display_names[static_cast<size_t>(alignment)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "DisplayAlignment");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_rotation_names = {"Normal", "Rotate90", "Rotate180", "Rotate270"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_rotation_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "No Rotation"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Rotate 90° (Clockwise)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Rotate 180° (Vertical Flip)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Rotate 270° (Clockwise)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "No Rotation", "DisplayRotation"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Rotate 90° (Clockwise)", "DisplayRotation"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Rotate 180° (Vertical Flip)", "DisplayRotation"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Rotate 270° (Clockwise)", "DisplayRotation"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<DisplayRotation> Settings::ParseDisplayRotation(const char* str)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1508,19 +1547,26 @@ const char* Settings::GetDisplayRotationName(DisplayRotation rotation)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayRotationDisplayName(DisplayRotation rotation)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_rotation_display_names[static_cast<size_t>(rotation)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_rotation_display_names[static_cast<size_t>(rotation)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "DisplayRotation");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_force_video_timings_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Disabled"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_force_video_timing_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Disabled",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "NTSC",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "PAL",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_force_video_timing_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Disabled", "ForceVideoTiming"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "NTSC (60hz)", "ForceVideoTiming"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "PAL (50hz)", "ForceVideoTiming"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<ForceVideoTimingMode> Settings::ParseForceVideoTimingName(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  int index = 0;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  for (const char* name : s_display_force_video_timings_names)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  for (const char* name : s_display_force_video_timing_names)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if (StringUtil::Strcasecmp(name, str) == 0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      return static_cast<ForceVideoTimingMode>(index);
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1533,23 +1579,24 @@ std::optional<ForceVideoTimingMode> Settings::ParseForceVideoTimingName(const ch
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetForceVideoTimingName(ForceVideoTimingMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return s_display_force_video_timings_names[static_cast<size_t>(mode)];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return s_display_force_video_timing_names[static_cast<size_t>(mode)];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetForceVideoTimingDisplayName(ForceVideoTimingMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_force_video_timings_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_force_video_timing_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "ForceVideoTiming");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_scaling_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Nearest", "NearestInteger", "BilinearSmooth", "BilinearSharp", "BilinearInteger",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_scaling_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayScalingMode", "Nearest-Neighbor"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayScalingMode", "Nearest-Neighbor (Integer)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayScalingMode", "Bilinear (Smooth)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayScalingMode", "Bilinear (Sharp)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("DisplayScalingMode", "Bilinear (Integer)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Nearest-Neighbor", "DisplayScalingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Nearest-Neighbor (Integer)", "DisplayScalingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Bilinear (Smooth)", "DisplayScalingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Bilinear (Sharp)", "DisplayScalingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Bilinear (Integer)", "DisplayScalingMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<DisplayScalingMode> Settings::ParseDisplayScaling(const char* str)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1573,7 +1620,8 @@ const char* Settings::GetDisplayScalingName(DisplayScalingMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayScalingDisplayName(DisplayScalingMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("DisplayScalingMode", s_display_scaling_display_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_scaling_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "DisplayScalingMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_exclusive_fullscreen_mode_names = {
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1582,9 +1630,9 @@ static constexpr const std::array s_display_exclusive_fullscreen_mode_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Allowed",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_exclusive_fullscreen_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Automatic"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Disallowed"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Allowed"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Automatic", "DisplayExclusiveFullscreenControl"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Disallowed", "DisplayExclusiveFullscreenControl"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Allowed", "DisplayExclusiveFullscreenControl"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<DisplayExclusiveFullscreenControl> Settings::ParseDisplayExclusiveFullscreenControl(const char* str)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1609,7 +1657,8 @@ const char* Settings::GetDisplayExclusiveFullscreenControlName(DisplayExclusiveF
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayExclusiveFullscreenControlDisplayName(DisplayExclusiveFullscreenControl mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  s_display_exclusive_fullscreen_mode_display_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  s_display_exclusive_fullscreen_mode_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "DisplayExclusiveFullscreenControl");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_screenshot_mode_names = {
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1618,9 +1667,9 @@ static constexpr const std::array s_display_screenshot_mode_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "UncorrectedInternalResolution",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_screenshot_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Screen Resolution"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Internal Resolution"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Internal Resolution (Aspect Uncorrected)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Screen Resolution", "DisplayScreenshotMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Internal Resolution", "DisplayScreenshotMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Internal Resolution (Aspect Uncorrected)", "DisplayScreenshotMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<DisplayScreenshotMode> Settings::ParseDisplayScreenshotMode(const char* str)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1644,7 +1693,8 @@ const char* Settings::GetDisplayScreenshotModeName(DisplayScreenshotMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayScreenshotModeDisplayName(DisplayScreenshotMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_screenshot_mode_display_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_screenshot_mode_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "DisplayScreenshotMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_screenshot_format_names = {
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1653,9 +1703,9 @@ static constexpr const std::array s_display_screenshot_format_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "WebP",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_screenshot_format_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "PNG"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "JPEG"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "WebP"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "PNG", "DisplayScreenshotFormat"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "JPEG", "DisplayScreenshotFormat"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "WebP", "DisplayScreenshotFormat"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_display_screenshot_format_extensions = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "png",
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1684,7 +1734,8 @@ const char* Settings::GetDisplayScreenshotFormatName(DisplayScreenshotFormat for
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayScreenshotFormatDisplayName(DisplayScreenshotFormat mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_screenshot_format_display_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_display_screenshot_format_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "DisplayScreenshotFormat");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetDisplayScreenshotFormatExtension(DisplayScreenshotFormat format)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1692,15 +1743,17 @@ const char* Settings::GetDisplayScreenshotFormatExtension(DisplayScreenshotForma
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return s_display_screenshot_format_extensions[static_cast<size_t>(format)];
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_memory_card_type_names = {"None",         "Shared",           "PerGame",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                                              "PerGameTitle", "PerGameFileTitle", "NonPersistent"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_memory_card_type_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "None", "Shared", "PerGame", "PerGameTitle", "PerGameFileTitle", "NonPersistent",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_memory_card_type_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("MemoryCardType", "No Memory Card"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("MemoryCardType", "Shared Between All Games"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("MemoryCardType", "Separate Card Per Game (Serial)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("MemoryCardType", "Separate Card Per Game (Title)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("MemoryCardType", "Separate Card Per Game (File Title)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("MemoryCardType", "Non-Persistent Card (Do Not Save)")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "No Memory Card", "MemoryCardType"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Shared Between All Games", "MemoryCardType"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Separate Card Per Game (Serial)", "MemoryCardType"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Separate Card Per Game (Title)", "MemoryCardType"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Separate Card Per Game (File Title)", "MemoryCardType"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Non-Persistent Card (Do Not Save)", "MemoryCardType"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<MemoryCardType> Settings::ParseMemoryCardTypeName(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1723,7 +1776,8 @@ const char* Settings::GetMemoryCardTypeName(MemoryCardType type)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetMemoryCardTypeDisplayName(MemoryCardType type)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("MemoryCardType", s_memory_card_type_display_names[static_cast<size_t>(type)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_memory_card_type_display_names[static_cast<size_t>(type)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "MemoryCardType");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::string Settings::GetDefaultSharedMemoryCardName(u32 slot)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1750,10 +1804,18 @@ std::string Settings::GetGameMemoryCardPath(std::string_view serial, u32 slot)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Path::Combine(EmuFolders::MemoryCards, fmt::format("{}_{}.mcd", serial, slot + 1));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_multitap_enable_mode_names = {"Disabled", "Port1Only", "Port2Only", "BothPorts"};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_multitap_enable_mode_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Disabled",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Port1Only",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Port2Only",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "BothPorts",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_multitap_enable_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("MultitapMode", "Disabled"), TRANSLATE_NOOP("MultitapMode", "Enable on Port 1 Only"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("MultitapMode", "Enable on Port 2 Only"), TRANSLATE_NOOP("MultitapMode", "Enable on Ports 1 and 2")};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Disabled", "MultitapMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Enable on Port 1 Only", "MultitapMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Enable on Port 2 Only", "MultitapMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Enable on Ports 1 and 2", "MultitapMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::optional<MultitapMode> Settings::ParseMultitapModeName(const char* str)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1776,7 +1838,8 @@ const char* Settings::GetMultitapModeName(MultitapMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetMultitapModeDisplayName(MultitapMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("MultitapMode", s_multitap_enable_mode_display_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_multitap_enable_mode_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "MultitapMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_mechacon_version_names = {"VC0A", "VC0B", "VC1A", "VC1B", "VD1",  "VC2", "VC1",
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1814,10 +1877,13 @@ static constexpr const std::array s_save_state_compression_mode_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  "Uncompressed", "DeflateLow", "DeflateDefault", "DeflateHigh", "ZstLow", "ZstDefault", "ZstHigh",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static constexpr const std::array s_save_state_compression_mode_display_names = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Uncompressed"),      TRANSLATE_NOOP("Settings", "Deflate (Low)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Deflate (Default)"), TRANSLATE_NOOP("Settings", "Deflate (High)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Zstandard (Low)"),   TRANSLATE_NOOP("Settings", "Zstandard (Default)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_NOOP("Settings", "Zstandard (High)"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Uncompressed", "SaveStateCompressionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Deflate (Low)", "SaveStateCompressionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Deflate (Default)", "SaveStateCompressionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Deflate (High)", "SaveStateCompressionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Zstandard (Low)", "SaveStateCompressionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Zstandard (Default)", "SaveStateCompressionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  TRANSLATE_DISAMBIG_NOOP("Settings", "Zstandard (High)", "SaveStateCompressionMode"),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static_assert(s_save_state_compression_mode_names.size() == static_cast<size_t>(SaveStateCompressionMode::Count));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				static_assert(s_save_state_compression_mode_display_names.size() ==
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1844,7 +1910,8 @@ const char* Settings::GetSaveStateCompressionModeName(SaveStateCompressionMode m
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const char* Settings::GetSaveStateCompressionModeDisplayName(SaveStateCompressionMode mode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_save_state_compression_mode_display_names[static_cast<size_t>(mode)]);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return Host::TranslateToCString("Settings", s_save_state_compression_mode_display_names[static_cast<size_t>(mode)],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "SaveStateCompressionMode");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				std::string EmuFolders::AppRoot;
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |