From 91c136b6d0db5de188bfcac5f8ae1962aa4c73de Mon Sep 17 00:00:00 2001 From: kd-11 Date: Sat, 28 Mar 2026 03:54:23 +0300 Subject: [PATCH] rsx/overlay: Add resolution scale slider to home menu --- .../RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp | 7 +++---- rpcs3/Emu/localized_string_id.h | 1 + rpcs3/Emu/system_config.h | 2 +- rpcs3/rpcs3qt/localized_emu.h | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) 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 1a2f99dca3..3d9439c112 100644 --- a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp +++ b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp @@ -152,16 +152,15 @@ namespace rsx home_menu_settings_video::home_menu_settings_video(s16 x, s16 y, u16 width, u16 height, bool use_separators, home_menu_page* parent) : home_menu_settings_page(x, y, width, height, use_separators, parent, get_localized_string(localized_string_id::HOME_MENU_SETTINGS_VIDEO)) { + add_unsigned_slider(&g_cfg.video.resolution_scale_percent, localized_string_id::HOME_MENU_SETTINGS_VIDEO_RESOLUTION_SCALE_PERCENT, "%", 25); + add_dropdown(&g_cfg.video.vsync, localized_string_id::HOME_MENU_SETTINGS_VIDEO_VSYNC); add_dropdown(&g_cfg.video.frame_limit, localized_string_id::HOME_MENU_SETTINGS_VIDEO_FRAME_LIMIT); add_unsigned_slider(&g_cfg.video.anisotropic_level_override, localized_string_id::HOME_MENU_SETTINGS_VIDEO_ANISOTROPIC_OVERRIDE, "x", 2, {{0, "Auto"}}, {14}); 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.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/localized_string_id.h b/rpcs3/Emu/localized_string_id.h index 9387b7f6e7..08fb639bcf 100644 --- a/rpcs3/Emu/localized_string_id.h +++ b/rpcs3/Emu/localized_string_id.h @@ -222,6 +222,7 @@ enum class localized_string_id HOME_MENU_SETTINGS_VIDEO_ANISOTROPIC_OVERRIDE, HOME_MENU_SETTINGS_VIDEO_OUTPUT_SCALING, HOME_MENU_SETTINGS_VIDEO_RCAS_SHARPENING, + HOME_MENU_SETTINGS_VIDEO_RESOLUTION_SCALE_PERCENT, HOME_MENU_SETTINGS_VIDEO_STRETCH_TO_DISPLAY, HOME_MENU_SETTINGS_VIDEO_STEREO_MODE, HOME_MENU_SETTINGS_INPUT, diff --git a/rpcs3/Emu/system_config.h b/rpcs3/Emu/system_config.h index 6403754dd8..38dbea98f8 100644 --- a/rpcs3/Emu/system_config.h +++ b/rpcs3/Emu/system_config.h @@ -161,7 +161,7 @@ struct cfg_root : cfg::node cfg::_bool precise_zpass_count{ this, "Accurate ZCULL stats", true }; cfg::_int<1, 8> consecutive_frames_to_draw{ this, "Consecutive Frames To Draw", 1, true}; cfg::_int<1, 8> consecutive_frames_to_skip{ this, "Consecutive Frames To Skip", 1, true}; - cfg::_int<25, 800> resolution_scale_percent{ this, "Resolution Scale", 100, true }; + cfg::uint<25, 800> resolution_scale_percent{ this, "Resolution Scale", 100, true }; cfg::uint<0, 16> anisotropic_level_override{ this, "Anisotropic Filter Override", 0, true }; cfg::_float<-32, 32> texture_lod_bias{ this, "Texture LOD Bias Addend", 0, true }; cfg::_int<1, 1024> min_scalable_dimension{ this, "Minimum Scalable Dimension", 16 }; diff --git a/rpcs3/rpcs3qt/localized_emu.h b/rpcs3/rpcs3qt/localized_emu.h index 6f2acb31c7..c0a0780860 100644 --- a/rpcs3/rpcs3qt/localized_emu.h +++ b/rpcs3/rpcs3qt/localized_emu.h @@ -242,6 +242,7 @@ private: case localized_string_id::HOME_MENU_SETTINGS_VIDEO_ANISOTROPIC_OVERRIDE: return tr("Anisotropic Filter Override", "Video"); case localized_string_id::HOME_MENU_SETTINGS_VIDEO_OUTPUT_SCALING: return tr("Output Scaling", "Video"); case localized_string_id::HOME_MENU_SETTINGS_VIDEO_RCAS_SHARPENING: return tr("FidelityFX CAS Sharpening Intensity", "Video"); + case localized_string_id::HOME_MENU_SETTINGS_VIDEO_RESOLUTION_SCALE_PERCENT: return tr("Resolution Scale", "Video"); case localized_string_id::HOME_MENU_SETTINGS_VIDEO_STRETCH_TO_DISPLAY: return tr("Stretch To Display Area", "Video"); case localized_string_id::HOME_MENU_SETTINGS_VIDEO_STEREO_MODE: return tr("Stereo Mode", "Video"); case localized_string_id::HOME_MENU_SETTINGS_INPUT: return tr("Input");