rsx: Move PS3-compliant behavior to a new option

This commit is contained in:
kd-11 2022-05-21 15:58:50 +03:00 committed by kd-11
parent b637429e44
commit 7c8fbc35bc
6 changed files with 9 additions and 3 deletions

View File

@ -3195,7 +3195,8 @@ namespace rsx
case frame_limit_type::_50: limit = 50.; break;
case frame_limit_type::_60: limit = 60.; break;
case frame_limit_type::_30: limit = 30.; break;
case frame_limit_type::_auto: limit = 0.; break;
case frame_limit_type::_auto: limit = static_cast<double>(g_cfg.video.vblank_rate); break;
case frame_limit_type::_ps3: limit = 0.; break;
default:
break;
}

View File

@ -106,11 +106,13 @@ namespace rsx
if (addr == rsx->device_addr + 0x30)
{
if (g_cfg.video.frame_limit == frame_limit_type::_auto)
if (g_cfg.video.frame_limit == frame_limit_type::_ps3 && rsx->requested_vsync)
{
// Enables PS3-compliant vblank behavior
rsx->flip_sema_wait_val = arg;
rsx->wait_for_flip_sema = (sema != arg);
}
return;
}

View File

@ -295,6 +295,7 @@ void fmt_class_string<frame_limit_type>::format(std::string& out, u64 arg)
case frame_limit_type::_60: return "60";
case frame_limit_type::_30: return "30";
case frame_limit_type::_auto: return "Auto";
case frame_limit_type::_ps3: return "PS3 Native";
}
return unknown;

View File

@ -182,6 +182,7 @@ enum class frame_limit_type
_60,
_30,
_auto,
_ps3,
};
enum class msaa_level

View File

@ -955,6 +955,7 @@ QString emu_settings::GetLocalizedSetting(const QString& original, emu_settings_
case frame_limit_type::_60: return tr("60", "Frame limit");
case frame_limit_type::_30: return tr("30", "Frame limit");
case frame_limit_type::_auto: return tr("Auto", "Frame limit");
case frame_limit_type::_ps3: return tr("PS3 Native", "Frame limit");
}
break;
case emu_settings_type::MSAA:

View File

@ -155,7 +155,7 @@ public:
const QString resolution = tr("This setting will be ignored if the Resolution Scale is set to anything other than 100%!\nLeave this on 1280x720. Every PS3 game is compatible with this resolution.\nOnly use 1920x1080 if the game supports it.\nRarely due to emulation bugs some games will only render at low resolutions like 480p.");
const QString graphics_adapter = tr("On multi GPU systems select which GPU to use in RPCS3 when using Vulkan.\nThis is not needed when using OpenGL.");
const QString aspect_ratio = tr("Leave this on 16:9 unless you have a 4:3 monitor.");
const QString frame_limit = tr("Off is the best option as it performs faster.\nUsing the frame limiter will add extra overhead and slow down the game.\nHowever, some games will crash if the frame rate is too high.\nIf that happens, set value to anything other than Off.");
const QString frame_limit = tr("Off is the best option as it performs faster.\nUsing the frame limiter will add extra overhead and slow down the game.\nHowever, some games will crash if the frame rate is too high.\nPS3 native should only be used if Auto is not working correctly as it can introduce frame-pacing issues.");
const QString anti_aliasing = tr("Emulate PS3 multisampling layout.\nCan fix some otherwise difficult to solve graphics glitches.\nLow to moderate performance hit depending on your GPU hardware.");
const QString anisotropic_filter = tr("Higher values increase sharpness of textures on sloped surfaces at the cost of GPU resources.\nModern GPUs can handle this setting just fine, even at 16x.\nKeep this on Automatic if you want to use the original setting used by a real PS3.");
const QString resolution_scale = tr("Scales the game's resolution by the given percentage.\nThe base resolution is always 1280x720.\nSet this value to 100% if you want to use the normal Resolution options.");