From 47e0557212642472486585809eaf363d6213c223 Mon Sep 17 00:00:00 2001 From: Ani Date: Sun, 22 Feb 2026 15:37:20 +0100 Subject: [PATCH 01/15] config: Move FSR CAS out of Vulkan subcategory FSR1 was already implemented for OpenGL as well, so this setting is no longer exclusive to the Vulkan render --- rpcs3/Emu/RSX/GL/upscalers/fsr1/fsr_pass.cpp | 2 +- rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp | 2 +- rpcs3/Emu/RSX/VK/upscalers/fsr1/fsr_pass.cpp | 2 +- rpcs3/Emu/system_config.h | 2 +- rpcs3/rpcs3qt/emu_settings_type.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rpcs3/Emu/RSX/GL/upscalers/fsr1/fsr_pass.cpp b/rpcs3/Emu/RSX/GL/upscalers/fsr1/fsr_pass.cpp index cfd7b1cc08d3..75e2d3f3db9e 100644 --- a/rpcs3/Emu/RSX/GL/upscalers/fsr1/fsr_pass.cpp +++ b/rpcs3/Emu/RSX/GL/upscalers/fsr1/fsr_pass.cpp @@ -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); } } diff --git a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp index c0e3a72b6fdd..34999eb77525 100644 --- a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp +++ b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp @@ -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); diff --git a/rpcs3/Emu/RSX/VK/upscalers/fsr1/fsr_pass.cpp b/rpcs3/Emu/RSX/VK/upscalers/fsr1/fsr_pass.cpp index 869dba6fa958..fbd4e868f942 100644 --- a/rpcs3/Emu/RSX/VK/upscalers/fsr1/fsr_pass.cpp +++ b/rpcs3/Emu/RSX/VK/upscalers/fsr1/fsr_pass.cpp @@ -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); diff --git a/rpcs3/Emu/system_config.h b/rpcs3/Emu/system_config.h index 8ccf91db0edd..1f13629878d0 100644 --- a/rpcs3/Emu/system_config.h +++ b/rpcs3/Emu/system_config.h @@ -177,6 +177,7 @@ struct cfg_root : cfg::node cfg::_enum 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 { @@ -187,7 +188,6 @@ struct cfg_root : cfg::node cfg::_bool force_primitive_restart{ this, "Force primitive restart flag" }; cfg::_enum 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::_enum 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 }; diff --git a/rpcs3/rpcs3qt/emu_settings_type.h b/rpcs3/rpcs3qt/emu_settings_type.h index 67238571d33a..73ed86e26741 100644 --- a/rpcs3/rpcs3qt/emu_settings_type.h +++ b/rpcs3/rpcs3qt/emu_settings_type.h @@ -317,11 +317,11 @@ inline static const std::map 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::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"}}, From 04687a2c09f5b1558a1c01f18f1df7d093e0e6e4 Mon Sep 17 00:00:00 2001 From: Ani Date: Sun, 22 Feb 2026 15:38:42 +0100 Subject: [PATCH 02/15] config: Fix naming of Asynchronous Texture Streaming Rename from 'Asynchronous Texture Streaming 2' to 'Asynchronous Texture Streaming' --- rpcs3/Emu/system_config.h | 2 +- rpcs3/rpcs3qt/emu_settings_type.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/system_config.h b/rpcs3/Emu/system_config.h index 1f13629878d0..89da08e8842d 100644 --- a/rpcs3/Emu/system_config.h +++ b/rpcs3/Emu/system_config.h @@ -187,7 +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 exclusive_fullscreen_mode{ this, "Exclusive Fullscreen Mode", vk_exclusive_fs_mode::unspecified}; - cfg::_bool asynchronous_texture_streaming{ this, "Asynchronous Texture Streaming 2", false }; + cfg::_bool asynchronous_texture_streaming{ this, "Asynchronous Texture Streaming", false }; cfg::_enum 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 }; diff --git a/rpcs3/rpcs3qt/emu_settings_type.h b/rpcs3/rpcs3qt/emu_settings_type.h index 73ed86e26741..b2014dd7bc0f 100644 --- a/rpcs3/rpcs3qt/emu_settings_type.h +++ b/rpcs3/rpcs3qt/emu_settings_type.h @@ -320,7 +320,7 @@ inline static const std::map settings_location { 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::ExclusiveFullscreenMode, { "Video", "Vulkan", "Exclusive Fullscreen Mode"}}, { emu_settings_type::UseReBAR, { "Video", "Vulkan", "Use Re-BAR for GPU uploads"}}, From 1d9ed1eb159297e6ef4f5817076394c803053e32 Mon Sep 17 00:00:00 2001 From: Ani Date: Sun, 22 Feb 2026 15:40:12 +0100 Subject: [PATCH 03/15] config: Fix naming of SPU XFloat Accuracy Rename from 'XFloat Accuracy' to 'SPU XFloat Accuracy' --- rpcs3/Emu/system_config.h | 2 +- rpcs3/rpcs3qt/emu_settings_type.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/system_config.h b/rpcs3/Emu/system_config.h index 89da08e8842d..3d7dba879806 100644 --- a/rpcs3/Emu/system_config.h +++ b/rpcs3/Emu/system_config.h @@ -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 spu_xfloat_accuracy{ this, "XFloat Accuracy", xfloat_accuracy::approximate, false }; + cfg::_enum 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. diff --git a/rpcs3/rpcs3qt/emu_settings_type.h b/rpcs3/rpcs3qt/emu_settings_type.h index b2014dd7bc0f..a3e47fe7336f 100644 --- a/rpcs3/rpcs3qt/emu_settings_type.h +++ b/rpcs3/rpcs3qt/emu_settings_type.h @@ -241,7 +241,7 @@ inline static const std::map 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"}}, From b700fceb0d0ea05b9261b582da9207b19f1a1a3d Mon Sep 17 00:00:00 2001 From: Ani Date: Sun, 22 Feb 2026 15:41:55 +0100 Subject: [PATCH 04/15] ui: Specify Anti-Aliasing as MSAA --- rpcs3/rpcs3qt/settings_dialog.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 76a418298dcd..7a5e8b68652f 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -473,7 +473,7 @@ - Anti-Aliasing + Anti-Aliasing (MSAA) From 8fdcbc0e2b34a75658ead66eacb5351732826365 Mon Sep 17 00:00:00 2001 From: Ani Date: Sun, 22 Feb 2026 15:52:48 +0100 Subject: [PATCH 05/15] ui: Rename depth buffers to depth buffer Removes ambiguity between config and ui --- rpcs3/rpcs3qt/settings_dialog.ui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 7a5e8b68652f..4ced97388365 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -2674,14 +2674,14 @@ - Read Depth Buffers + Read Depth Buffer - Write Depth Buffers + Write Depth Buffer From 6f4972e3a51bdca1a5fdff5579cb2f808cc0152a Mon Sep 17 00:00:00 2001 From: AniLeo Date: Sun, 8 Mar 2026 10:46:51 +0100 Subject: [PATCH 06/15] ui: Merge exit/boot game dialog options --- rpcs3/rpcs3qt/settings_dialog.cpp | 5 ----- rpcs3/rpcs3qt/settings_dialog.ui | 9 +-------- rpcs3/rpcs3qt/tooltips.h | 3 +-- 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 66f0ae3476a3..d206a40de856 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -2165,7 +2165,6 @@ settings_dialog::settings_dialog(std::shared_ptr 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); @@ -2273,7 +2272,6 @@ settings_dialog::settings_dialog(std::shared_ptr 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()); @@ -2305,9 +2303,6 @@ settings_dialog::settings_dialog(std::shared_ptr 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) diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 4ced97388365..3b6a5b577640 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -4007,14 +4007,7 @@ - Show Exit Game Dialog - - - - - - - Show Boot Game Dialog + Show Exit Game Confirmation diff --git a/rpcs3/rpcs3qt/tooltips.h b/rpcs3/rpcs3qt/tooltips.h index b56e093dff58..def114e4dd95 100644 --- a/rpcs3/rpcs3qt/tooltips.h +++ b/rpcs3/rpcs3qt/tooltips.h @@ -216,8 +216,7 @@ class Tooltips : public QObject 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_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 were installed successfully."); const QString show_pup_install = tr("Shows a dialog when firmware was installed successfully."); const QString show_obsolete_cfg = tr("Shows a dialog when obsolete settings were found."); From a9b758c291f6ff2c4c2071b60a18b33a6da9ddc6 Mon Sep 17 00:00:00 2001 From: AniLeo Date: Sun, 8 Mar 2026 11:02:20 +0100 Subject: [PATCH 07/15] ui: Merge pkg/pup install dialog options --- rpcs3/rpcs3qt/settings_dialog.cpp | 5 ----- rpcs3/rpcs3qt/settings_dialog.ui | 9 +-------- rpcs3/rpcs3qt/tooltips.h | 3 +-- 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index d206a40de856..add8f3e798b1 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -2166,7 +2166,6 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std SubscribeTooltip(ui->cb_show_welcome, tooltips.settings.show_welcome); SubscribeTooltip(ui->cb_show_exit_game, tooltips.settings.show_exit_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); @@ -2273,7 +2272,6 @@ settings_dialog::settings_dialog(std::shared_ptr 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_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()); @@ -2308,9 +2306,6 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std 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) diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 3b6a5b577640..eefc4e499cfd 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -4014,14 +4014,7 @@ - Show PKG Installation Dialog - - - - - - - Show PUP Installation Dialog + Show PKG/PUP Installation Result diff --git a/rpcs3/rpcs3qt/tooltips.h b/rpcs3/rpcs3qt/tooltips.h index def114e4dd95..6152506c1d34 100644 --- a/rpcs3/rpcs3qt/tooltips.h +++ b/rpcs3/rpcs3qt/tooltips.h @@ -217,8 +217,7 @@ class Tooltips : public QObject 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 and 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_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."); From 115c0ab0695e1dfebe62e1618c0af0847a909a41 Mon Sep 17 00:00:00 2001 From: AniLeo Date: Sun, 8 Mar 2026 12:11:54 +0100 Subject: [PATCH 08/15] ui: Allow toggling pad navigation on BSD --- rpcs3/rpcs3qt/settings_dialog.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index add8f3e798b1..d25d3ad9fbd0 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -2177,7 +2177,6 @@ settings_dialog::settings_dialog(std::shared_ptr 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); @@ -2186,9 +2185,6 @@ settings_dialog::settings_dialog(std::shared_ptr 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); From c37984ab0efa6c7348d3729abb197422e86fd6fe Mon Sep 17 00:00:00 2001 From: AniLeo Date: Sun, 8 Mar 2026 12:12:56 +0100 Subject: [PATCH 09/15] config: Enable pad navigation by default --- rpcs3/rpcs3qt/gui_settings.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpcs3/rpcs3qt/gui_settings.h b/rpcs3/rpcs3qt/gui_settings.h index 21a46259c21b..bdc6401031a0 100644 --- a/rpcs3/rpcs3qt/gui_settings.h +++ b/rpcs3/rpcs3qt/gui_settings.h @@ -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); } From ff6fb0eece530a4604e781cfdcee282fe640ee25 Mon Sep 17 00:00:00 2001 From: AniLeo Date: Sun, 8 Mar 2026 12:42:28 +0100 Subject: [PATCH 10/15] ui: A-Z order advanced tab settings --- rpcs3/rpcs3qt/settings_dialog.ui | 76 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index eefc4e499cfd..8e6c64e1d3ac 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -2414,13 +2414,6 @@ Core - - - - Debug Console Mode - - - @@ -2431,7 +2424,7 @@ - Accurate RSX reservation access + Accurate RSX Reservation Access @@ -2443,51 +2436,51 @@ - + - Disable SPU GETLLAR Spin Optimization + Anti-Cheat Savestates Mode - + - Enable SPU Events Busy Loop + Debug Console Mode - + - PPU Non-Java Mode Fixup + Delay each odd MFC Command - + - PPU/SPU LLVM Precompilation + Disable SPU GETLLAR Spin Optimization - + - Delay each odd MFC Command + Enable SPU Events Busy Loop - + - Anti-Cheat Savestates Mode + PPU Non-Java Mode Fixup - + - SPU-Compatible Savestates Mode + PPU/SPU LLVM Precompilation @@ -2498,6 +2491,13 @@ + + + + SPU Compatible Savestates Mode + + + @@ -2672,51 +2672,51 @@ - + - Read Depth Buffer + Allow Host GPU Labels (Experimental) - + - Write Depth Buffer + Disable MSL Fast Math - + - Read Color Buffers + Disable Vertex Cache - + - Handle RSX memory tiling + Force Hardware MSAA Resolve - + - Disable Vertex Cache + Handle RSX Memory Tiling - + - Allow Host GPU Labels (Experimental) + Read Depth Buffer - + - Force Hardware MSAA Resolve + Read Color Buffers @@ -2728,9 +2728,9 @@ - + - Disable MSL Fast Math + Write Depth Buffer From 5fd8b416bb27fd833a17c6d0fb8dd6c5bb30af15 Mon Sep 17 00:00:00 2001 From: AniLeo Date: Sun, 8 Mar 2026 13:07:11 +0100 Subject: [PATCH 11/15] ui: Move Accurate DFMA to debug --- rpcs3/rpcs3qt/settings_dialog.ui | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 8e6c64e1d3ac..601ea5ec92df 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -2414,13 +2414,6 @@ Core - - - - Accurate DFMA - - - @@ -4334,6 +4327,13 @@ Core + + + + Accurate DFMA + + + From 4c23e96b6bfbdf823ed372e9b6f41f7865a5c261 Mon Sep 17 00:00:00 2001 From: AniLeo Date: Sun, 8 Mar 2026 13:09:33 +0100 Subject: [PATCH 12/15] ui: Move PPU Non-Java Fixup to debug --- rpcs3/rpcs3qt/settings_dialog.ui | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 601ea5ec92df..5e38fd787df3 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -2463,13 +2463,6 @@ - - - - PPU Non-Java Mode Fixup - - - @@ -4397,6 +4390,13 @@ + + + + PPU Non-Java Mode Fixup + + + From 9524eca4a387db52f90849e1e9b43ede1968cbf4 Mon Sep 17 00:00:00 2001 From: AniLeo Date: Sun, 8 Mar 2026 13:36:27 +0100 Subject: [PATCH 13/15] ui: Move SPU Loop Detection to advanced --- rpcs3/rpcs3qt/settings_dialog.ui | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index 5e38fd787df3..f66326620638 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -181,22 +181,6 @@ - - - - Additional Settings - - - - - - Enable SPU loop detection - - - - - - @@ -2463,6 +2447,13 @@ + + + + Enable SPU loop detection + + + From a2b0fec3365fff5ee2436f94a393ff1324e3dd23 Mon Sep 17 00:00:00 2001 From: Ani Date: Mon, 9 Mar 2026 16:50:45 +0100 Subject: [PATCH 14/15] ui: Split overlay settings, A-Z order emulator tab settings --- rpcs3/rpcs3qt/settings_dialog.ui | 69 ++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index f66326620638..30100b793576 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -2922,16 +2922,16 @@ - + - Exit RPCS3 when process finishes + Enable GameMode - + - Pause emulation on RPCS3 focus loss + Exit RPCS3 when process finishes @@ -2950,58 +2950,67 @@ - + - Prevent display sleep while running games + Pause emulation on RPCS3 focus loss - + - Show trophy popups + Prevent display sleep while running games - + - Show RPCN popups + Start games in fullscreen mode - + - Show shader compilation hint + Use native user interface + + + + + + + Overlay Settings + + - + - Show PPU compilation hint + Record and screenshot with overlays - + - Show autosave/autoload hint + Show analog limiter toggle hint - + - Show analog limiter toggle hint + Show autosave/autoload hint - + - Show pressure intensity toggle hint + Show capture hints @@ -3013,37 +3022,37 @@ - + - Show capture hints + Show netplay popups - + - Start games in fullscreen mode + Show pressure intensity toggle hint - + - Use native user interface + Show PPU compilation hint - + - Record with overlays + Show shader compilation hint - + - Enable GameMode + Show trophy popups From ffc4dac2e6167d5afe66af4acf29d6d9ed01476b Mon Sep 17 00:00:00 2001 From: Ani Date: Sat, 14 Mar 2026 17:44:50 +0100 Subject: [PATCH 15/15] config/ui: Unify Shader Mode values Have the same values between UI and Config for easing automatic configuration --- rpcs3/Emu/system_config_types.cpp | 6 +++--- rpcs3/rpcs3qt/emu_settings.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/rpcs3/Emu/system_config_types.cpp b/rpcs3/Emu/system_config_types.cpp index 7c9c5ef592dd..beb13db4d57a 100644 --- a/rpcs3/Emu/system_config_types.cpp +++ b/rpcs3/Emu/system_config_types.cpp @@ -522,9 +522,9 @@ void fmt_class_string::format(std::string& out, u64 arg) { switch (value) { - case shader_mode::recompiler: return "Shader Recompiler"; - case shader_mode::async_recompiler: return "Async Shader Recompiler"; - case shader_mode::async_with_interpreter: return "Async with Shader Interpreter"; + case shader_mode::recompiler: return "Legacy Recompiler (single-threaded)"; + case shader_mode::async_recompiler: return "Async Recompiler (multi-threaded)"; + case shader_mode::async_with_interpreter: return "Async Recompiler with Shader Interpreter"; case shader_mode::interpreter_only: return "Shader Interpreter only"; } diff --git a/rpcs3/rpcs3qt/emu_settings.cpp b/rpcs3/rpcs3qt/emu_settings.cpp index c686394c1032..22cf9b4032d3 100644 --- a/rpcs3/rpcs3qt/emu_settings.cpp +++ b/rpcs3/rpcs3qt/emu_settings.cpp @@ -1054,9 +1054,9 @@ QString emu_settings::GetLocalizedSetting(const QString& original, emu_settings_ case emu_settings_type::ShaderMode: switch (static_cast(index)) { - case shader_mode::recompiler: return tr("Legacy (single threaded)", "Shader Mode"); - case shader_mode::async_recompiler: return tr("Async (multi threaded)", "Shader Mode"); - case shader_mode::async_with_interpreter: return tr("Async with Shader Interpreter", "Shader Mode"); + case shader_mode::recompiler: return tr("Legacy Recompiler (single-threaded)", "Shader Mode"); + case shader_mode::async_recompiler: return tr("Async Recompiler (multi-threaded)", "Shader Mode"); + case shader_mode::async_with_interpreter: return tr("Async Recompiler with Shader Interpreter", "Shader Mode"); case shader_mode::interpreter_only: return tr("Shader Interpreter only", "Shader Mode"); } break;