This commit is contained in:
Ani 2026-03-10 22:50:34 +11:00 committed by GitHub
commit 66f588729d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 159 additions and 189 deletions

View file

@ -152,7 +152,7 @@ namespace gl
void rcas_pass::configure()
{
// 0 is actually the sharpest with 2 being the chosen limit. Each progressive unit 'halves' the sharpening intensity.
auto cas_attenuation = 2.f - (g_cfg.video.vk.rcas_sharpening_intensity / 50.f);
auto cas_attenuation = 2.f - (g_cfg.video.rcas_sharpening_intensity / 50.f);
FsrRcasCon(&m_constants_buf[0], cas_attenuation);
}
}

View file

@ -44,7 +44,7 @@ namespace rsx
add_dropdown(&g_cfg.video.output_scaling, localized_string_id::HOME_MENU_SETTINGS_VIDEO_OUTPUT_SCALING);
if (g_cfg.video.renderer == video_renderer::vulkan && g_cfg.video.output_scaling == output_scaling_mode::fsr)
{
add_unsigned_slider(&g_cfg.video.vk.rcas_sharpening_intensity, localized_string_id::HOME_MENU_SETTINGS_VIDEO_RCAS_SHARPENING, " %", 1);
add_unsigned_slider(&g_cfg.video.rcas_sharpening_intensity, localized_string_id::HOME_MENU_SETTINGS_VIDEO_RCAS_SHARPENING, " %", 1);
}
add_checkbox(&g_cfg.video.stretch_to_display_area, localized_string_id::HOME_MENU_SETTINGS_VIDEO_STRETCH_TO_DISPLAY);

View file

@ -176,7 +176,7 @@ namespace vk
void rcas_pass::configure(const vk::command_buffer& cmd)
{
// 0 is actually the sharpest with 2 being the chosen limit. Each progressive unit 'halves' the sharpening intensity.
auto cas_attenuation = 2.f - (g_cfg.video.vk.rcas_sharpening_intensity / 50.f);
auto cas_attenuation = 2.f - (g_cfg.video.rcas_sharpening_intensity / 50.f);
FsrRcasCon(&m_constants_buf[0], cas_attenuation);
vkCmdPushConstants(cmd, m_program->layout(), VK_SHADER_STAGE_COMPUTE_BIT, 0, push_constants_size, m_constants_buf);

View file

@ -61,7 +61,7 @@ struct cfg_root : cfg::node
cfg::uint<0, 16> mfc_transfers_shuffling{ this, "MFC Commands Shuffling Limit", 0 };
cfg::uint<0, 10000> mfc_transfers_timeout{ this, "MFC Commands Timeout", 0, true };
cfg::_bool mfc_shuffling_in_steps{ this, "MFC Commands Shuffling In Steps", false, true };
cfg::_enum<xfloat_accuracy> spu_xfloat_accuracy{ this, "XFloat Accuracy", xfloat_accuracy::approximate, false };
cfg::_enum<xfloat_accuracy> spu_xfloat_accuracy{ this, "SPU XFloat Accuracy", xfloat_accuracy::approximate, false };
cfg::_int<-1, 14> ppu_128_reservations_loop_max_length{ this, "Accurate PPU 128-byte Reservation Op Max Length", 0, true }; // -1: Always accurate, 0: Never accurate, 1-14: max accurate loop length
cfg::_int<-64, 64> stub_ppu_traps{ this, "Stub PPU Traps", 0, true }; // Hack, skip PPU traps for rare cases where the trap is continueable (specify relative instructions to skip)
cfg::_bool precise_spu_verification{ this, "Precise SPU Verification", false }; // Disables use of xorsum based spu verification if enabled.
@ -177,6 +177,7 @@ struct cfg_root : cfg::node
cfg::_enum<output_scaling_mode> output_scaling{ this, "Output Scaling Mode", output_scaling_mode::bilinear, true };
cfg::_bool record_with_overlays{ this, "Record With Overlays", true, true };
cfg::_bool disable_hardware_texel_remapping{ this, "Disable Hardware ColorSpace Remapping", false, true };
cfg::uint<0, 100> rcas_sharpening_intensity{ this, "FidelityFX CAS Sharpening Intensity", 50, true };
struct node_vk : cfg::node
{
@ -186,8 +187,7 @@ struct cfg_root : cfg::node
cfg::_bool force_fifo{ this, "Force FIFO present mode" };
cfg::_bool force_primitive_restart{ this, "Force primitive restart flag" };
cfg::_enum<vk_exclusive_fs_mode> exclusive_fullscreen_mode{ this, "Exclusive Fullscreen Mode", vk_exclusive_fs_mode::unspecified};
cfg::_bool asynchronous_texture_streaming{ this, "Asynchronous Texture Streaming 2", false };
cfg::uint<0, 100> rcas_sharpening_intensity{ this, "FidelityFX CAS Sharpening Intensity", 50, true };
cfg::_bool asynchronous_texture_streaming{ this, "Asynchronous Texture Streaming", false };
cfg::_enum<vk_gpu_scheduler_mode> asynchronous_scheduler{ this, "Asynchronous Queue Scheduler", vk_gpu_scheduler_mode::safe };
cfg::uint<256, 65536> vram_allocation_limit{ this, "VRAM allocation limit (MB)", 65536, false };
cfg::_bool use_rebar_upload_heap{ this, "Use Re-BAR for GPU uploads", true, false };

View file

@ -241,7 +241,7 @@ inline static const std::map<emu_settings_type, cfg_location> settings_location
{ emu_settings_type::AccurateClineStores, { "Core", "Accurate Cache Line Stores"}},
{ emu_settings_type::AccurateRSXAccess, { "Core", "Accurate RSX reservation access"}},
{ emu_settings_type::FIFOAccuracy, { "Core", "RSX FIFO Fetch Accuracy"}},
{ emu_settings_type::XFloatAccuracy, { "Core", "XFloat Accuracy"}},
{ emu_settings_type::XFloatAccuracy, { "Core", "SPU XFloat Accuracy"}},
{ emu_settings_type::MFCCommandsShuffling, { "Core", "MFC Commands Shuffling Limit"}},
{ emu_settings_type::SetDAZandFTZ, { "Core", "Set DAZ and FTZ"}},
{ emu_settings_type::SPUBlockSize, { "Core", "SPU Block Size"}},
@ -317,11 +317,11 @@ inline static const std::map<emu_settings_type, cfg_location> settings_location
{ emu_settings_type::DisableAsyncHostMM, { "Video", "Disable Asynchronous Memory Manager"}},
{ emu_settings_type::RecordWithOverlays, { "Video", "Record With Overlays"}},
{ emu_settings_type::DisableHWTexelRemapping, { "Video", "Disable Hardware ColorSpace Remapping"}},
{ emu_settings_type::FsrSharpeningStrength, { "Video", "FidelityFX CAS Sharpening Intensity"}},
// Vulkan
{ emu_settings_type::VulkanAsyncTextureUploads, { "Video", "Vulkan", "Asynchronous Texture Streaming 2"}},
{ emu_settings_type::VulkanAsyncTextureUploads, { "Video", "Vulkan", "Asynchronous Texture Streaming"}},
{ emu_settings_type::VulkanAsyncSchedulerDriver, { "Video", "Vulkan", "Asynchronous Queue Scheduler"}},
{ emu_settings_type::FsrSharpeningStrength, { "Video", "Vulkan", "FidelityFX CAS Sharpening Intensity"}},
{ emu_settings_type::ExclusiveFullscreenMode, { "Video", "Vulkan", "Exclusive Fullscreen Mode"}},
{ emu_settings_type::UseReBAR, { "Video", "Vulkan", "Use Re-BAR for GPU uploads"}},

View file

@ -315,7 +315,7 @@ namespace gui
const gui_save sc_shortcuts = gui_save(sc, "shortcuts", QVariantMap());
const gui_save nav_enabled = gui_save(navigation, "pad_input_enabled", false);
const gui_save nav_enabled = gui_save(navigation, "pad_input_enabled", true);
const gui_save nav_global = gui_save(navigation, "allow_global_pad_input", false);
}

View file

@ -2165,9 +2165,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
SubscribeTooltip(ui->cb_custom_colors, tooltips.settings.custom_colors);
SubscribeTooltip(ui->cb_show_welcome, tooltips.settings.show_welcome);
SubscribeTooltip(ui->cb_show_exit_game, tooltips.settings.show_exit_game);
SubscribeTooltip(ui->cb_show_boot_game, tooltips.settings.show_boot_game);
SubscribeTooltip(ui->cb_show_pkg_install, tooltips.settings.show_pkg_install);
SubscribeTooltip(ui->cb_show_pup_install, tooltips.settings.show_pup_install);
SubscribeTooltip(ui->cb_show_obsolete_cfg_dialog, tooltips.settings.show_obsolete_cfg);
SubscribeTooltip(ui->cb_show_same_buttons_dialog, tooltips.settings.show_same_buttons);
SubscribeTooltip(ui->cb_show_restart_hint, tooltips.settings.show_restart_hint);
@ -2179,7 +2177,6 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
SubscribeTooltip(ui->cb_global_pad_navigation, tooltips.settings.global_navigation);
ui->cb_pad_navigation->setChecked(m_gui_settings->GetValue(gui::nav_enabled).toBool());
ui->cb_global_pad_navigation->setChecked(m_gui_settings->GetValue(gui::nav_global).toBool());
#if defined(_WIN32) || defined(__linux__) || defined(__APPLE__)
connect(ui->cb_pad_navigation, &QCheckBox::toggled, [this](bool checked)
{
m_gui_settings->SetValue(gui::nav_enabled, checked);
@ -2188,9 +2185,6 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
{
m_gui_settings->SetValue(gui::nav_global, checked);
});
#else
ui->gb_gui_pad_input->setEnabled(false);
#endif
// Discord:
SubscribeTooltip(ui->useRichPresence, tooltips.settings.use_rich_presence);
@ -2273,9 +2267,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
ui->cb_show_welcome->setChecked(m_gui_settings->GetValue(gui::ib_show_welcome).toBool());
ui->cb_show_exit_game->setChecked(m_gui_settings->GetValue(gui::ib_confirm_exit).toBool());
ui->cb_show_boot_game->setChecked(m_gui_settings->GetValue(gui::ib_confirm_boot).toBool());
ui->cb_show_pkg_install->setChecked(m_gui_settings->GetValue(gui::ib_pkg_success).toBool());
ui->cb_show_pup_install->setChecked(m_gui_settings->GetValue(gui::ib_pup_success).toBool());
ui->cb_show_obsolete_cfg_dialog->setChecked(m_gui_settings->GetValue(gui::ib_obsolete_cfg).toBool());
ui->cb_show_same_buttons_dialog->setChecked(m_gui_settings->GetValue(gui::ib_same_buttons).toBool());
ui->cb_show_restart_hint->setChecked(m_gui_settings->GetValue(gui::ib_restart_hint).toBool());
@ -2305,17 +2297,11 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
connect(ui->cb_show_exit_game, &QCheckBox::toggled, [this](bool checked)
{
m_gui_settings->SetValue(gui::ib_confirm_exit, checked);
});
connect(ui->cb_show_boot_game, &QCheckBox::toggled, [this](bool checked)
{
m_gui_settings->SetValue(gui::ib_confirm_boot, checked);
});
connect(ui->cb_show_pkg_install, &QCheckBox::toggled, [this](bool checked)
{
m_gui_settings->SetValue(gui::ib_pkg_success, checked);
});
connect(ui->cb_show_pup_install, &QCheckBox::toggled, [this](bool checked)
{
m_gui_settings->SetValue(gui::ib_pup_success, checked);
});
connect(ui->cb_show_obsolete_cfg_dialog, &QCheckBox::toggled, [this](bool checked)

View file

@ -181,22 +181,6 @@
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="checkboxes">
<property name="title">
<string>Additional Settings</string>
</property>
<layout class="QVBoxLayout" name="checkboxes_layout">
<item>
<widget class="QCheckBox" name="spuLoopDetection">
<property name="text">
<string>Enable SPU loop detection</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="gb_max_preempt_count">
<property name="sizePolicy">
@ -473,7 +457,7 @@
<item>
<widget class="QGroupBox" name="gb_antiAliasing">
<property name="title">
<string>Anti-Aliasing</string>
<string>Anti-Aliasing (MSAA)</string>
</property>
<layout class="QVBoxLayout" name="gb_antiAliasing_layout">
<item>
@ -2414,24 +2398,10 @@
<string>Core</string>
</property>
<layout class="QVBoxLayout" name="gb_advanced_core_layout">
<item>
<widget class="QCheckBox" name="debugConsoleMode">
<property name="text">
<string>Debug Console Mode</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="accurateDFMA">
<property name="text">
<string>Accurate DFMA</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="accurateRSXAccess">
<property name="text">
<string>Accurate RSX reservation access</string>
<string>Accurate RSX Reservation Access</string>
</property>
</widget>
</item>
@ -2442,6 +2412,27 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="antiCheatSavestates">
<property name="text">
<string>Anti-Cheat Savestates Mode</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="debugConsoleMode">
<property name="text">
<string>Debug Console Mode</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mfcDelayCommand">
<property name="text">
<string>Delay each odd MFC Command</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="disableSpinOptimization">
<property name="text">
@ -2457,9 +2448,9 @@
</widget>
</item>
<item>
<widget class="QCheckBox" name="ppuNJFixup">
<widget class="QCheckBox" name="spuLoopDetection">
<property name="text">
<string>PPU Non-Java Mode Fixup</string>
<string>Enable SPU loop detection</string>
</property>
</widget>
</item>
@ -2471,30 +2462,16 @@
</widget>
</item>
<item>
<widget class="QCheckBox" name="mfcDelayCommand">
<widget class="QCheckBox" name="silenceAllLogs">
<property name="text">
<string>Delay each odd MFC Command</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="antiCheatSavestates">
<property name="text">
<string>Anti-Cheat Savestates Mode</string>
<string>Silence All Logs</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="compatibleSavestates">
<property name="text">
<string>SPU-Compatible Savestates Mode</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="silenceAllLogs">
<property name="text">
<string>Silence All Logs</string>
<string>SPU Compatible Savestates Mode</string>
</property>
</widget>
</item>
@ -2672,30 +2649,16 @@
</property>
<layout class="QVBoxLayout" name="gb_advanced_gpu_layout">
<item>
<widget class="QCheckBox" name="readDepth">
<widget class="QCheckBox" name="allowHostGPULabels">
<property name="text">
<string>Read Depth Buffers</string>
<string>Allow Host GPU Labels (Experimental)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="dumpDepth">
<widget class="QCheckBox" name="disableMslFastMath">
<property name="text">
<string>Write Depth Buffers</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="readColor">
<property name="text">
<string>Read Color Buffers</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="handleTiledMemory">
<property name="text">
<string>Handle RSX memory tiling</string>
<string>Disable MSL Fast Math</string>
</property>
</widget>
</item>
@ -2707,16 +2670,30 @@
</widget>
</item>
<item>
<widget class="QCheckBox" name="allowHostGPULabels">
<widget class="QCheckBox" name="forceHwMSAAResolve">
<property name="text">
<string>Allow Host GPU Labels (Experimental)</string>
<string>Force Hardware MSAA Resolve</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="forceHwMSAAResolve">
<widget class="QCheckBox" name="handleTiledMemory">
<property name="text">
<string>Force Hardware MSAA Resolve</string>
<string>Handle RSX Memory Tiling</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="readDepth">
<property name="text">
<string>Read Depth Buffer</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="readColor">
<property name="text">
<string>Read Color Buffers</string>
</property>
</widget>
</item>
@ -2728,9 +2705,9 @@
</widget>
</item>
<item>
<widget class="QCheckBox" name="disableMslFastMath">
<widget class="QCheckBox" name="dumpDepth">
<property name="text">
<string>Disable MSL Fast Math</string>
<string>Write Depth Buffer</string>
</property>
</widget>
</item>
@ -2945,16 +2922,16 @@
</property>
<layout class="QVBoxLayout" name="gb_emu_settings_layout">
<item>
<widget class="QCheckBox" name="exitOnStop">
<widget class="QCheckBox" name="enableGamemode">
<property name="text">
<string>Exit RPCS3 when process finishes</string>
<string>Enable GameMode</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="pauseOnFocusLoss">
<widget class="QCheckBox" name="exitOnStop">
<property name="text">
<string>Pause emulation on RPCS3 focus loss</string>
<string>Exit RPCS3 when process finishes</string>
</property>
</widget>
</item>
@ -2972,6 +2949,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="pauseOnFocusLoss">
<property name="text">
<string>Pause emulation on RPCS3 focus loss</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="preventDisplaySleep">
<property name="text">
@ -2979,69 +2963,6 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showTrophyPopups">
<property name="text">
<string>Show trophy popups</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showRpcnPopups">
<property name="text">
<string>Show RPCN popups</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showShaderCompilationHint">
<property name="text">
<string>Show shader compilation hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showPPUCompilationHint">
<property name="text">
<string>Show PPU compilation hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showAutosaveAutoloadHint">
<property name="text">
<string>Show autosave/autoload hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showAnalogLimiterToggleHint">
<property name="text">
<string>Show analog limiter toggle hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showPressureIntensityToggleHint">
<property name="text">
<string>Show pressure intensity toggle hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showMouseAndKeyboardToggleHint">
<property name="text">
<string>Show mouse and keyboard toggle hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showCaptureHints">
<property name="text">
<string>Show capture hints</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="startGameFullscreen">
<property name="text">
@ -3056,17 +2977,82 @@
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="gb_overlay_settings">
<property name="title">
<string>Overlay Settings</string>
</property>
<layout class="QVBoxLayout" name="gb_overlay_settings_layout">
<item>
<widget class="QCheckBox" name="recordWithOverlays">
<property name="text">
<string>Record with overlays</string>
<string>Record and screenshot with overlays</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="enableGamemode">
<widget class="QCheckBox" name="showAnalogLimiterToggleHint">
<property name="text">
<string>Enable GameMode</string>
<string>Show analog limiter toggle hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showAutosaveAutoloadHint">
<property name="text">
<string>Show autosave/autoload hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showCaptureHints">
<property name="text">
<string>Show capture hints</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showMouseAndKeyboardToggleHint">
<property name="text">
<string>Show mouse and keyboard toggle hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showRpcnPopups">
<property name="text">
<string>Show netplay popups</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showPressureIntensityToggleHint">
<property name="text">
<string>Show pressure intensity toggle hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showPPUCompilationHint">
<property name="text">
<string>Show PPU compilation hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showShaderCompilationHint">
<property name="text">
<string>Show shader compilation hint</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showTrophyPopups">
<property name="text">
<string>Show trophy popups</string>
</property>
</widget>
</item>
@ -4007,28 +3993,14 @@
<item>
<widget class="QCheckBox" name="cb_show_exit_game">
<property name="text">
<string>Show Exit Game Dialog</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cb_show_boot_game">
<property name="text">
<string>Show Boot Game Dialog</string>
<string>Show Exit Game Confirmation</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cb_show_pkg_install">
<property name="text">
<string>Show PKG Installation Dialog</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cb_show_pup_install">
<property name="text">
<string>Show PUP Installation Dialog</string>
<string>Show PKG/PUP Installation Result</string>
</property>
</widget>
</item>
@ -4348,6 +4320,13 @@
<string>Core</string>
</property>
<layout class="QVBoxLayout" name="gb_debug_core_layout">
<item>
<widget class="QCheckBox" name="accurateDFMA">
<property name="text">
<string>Accurate DFMA</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="alwaysStart">
<property name="text">
@ -4411,6 +4390,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="ppuNJFixup">
<property name="text">
<string>PPU Non-Java Mode Fixup</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="accuratePPUVNAN">
<property name="text">

View file

@ -216,10 +216,8 @@ public:
const QString tty_limit = tr("Sets the maximum amount of blocks that the TTY can display.\nThis usually equals the number of lines.\nSet 0 in order to remove the limit.");
const QString stylesheets = tr("Changes the overall look of RPCS3.\nChoose a stylesheet and click Apply to change between styles.");
const QString show_welcome = tr("Shows the initial welcome screen upon starting RPCS3.");
const QString show_exit_game = tr("Shows a confirmation dialog when the game window is being closed.");
const QString show_boot_game = tr("Shows a confirmation dialog when a game was booted while another game is running.");
const QString show_pkg_install = tr("Shows a dialog when packages were installed successfully.");
const QString show_pup_install = tr("Shows a dialog when firmware was installed successfully.");
const QString show_exit_game = tr("Shows a confirmation dialog when the game window is being closed and when a game was booted while another game is running.");
const QString show_pkg_install = tr("Shows a dialog when packages and firmware were installed successfully.");
const QString show_obsolete_cfg = tr("Shows a dialog when obsolete settings were found.");
const QString show_same_buttons = tr("Shows a dialog in the game pad configuration when the same button was assigned twice.");
const QString show_restart_hint = tr("Shows a dialog when RPCS3 is ready to restart after an update.");