graphics: submonitor refresh rate option (#507)

## Description of change
Add an option that forces requested refresh rate value for the second
monitor; i.e., instead of 60Hz allow the user to override the adapter to
be 70Hz.

Useful for people who have a touch screen that can't do 60Hz.

I don't know if this would cause any timing issues in IIDX or SDVX, but
it seems to boot and monitor check is unaffected.

## Testing
Tested TDJ And UFC mode with a submonitor that can only do 61Hz.
This commit is contained in:
bicarus
2026-01-09 19:50:07 -08:00
committed by GitHub
parent e3d63c65c1
commit 6bf7ae9074
6 changed files with 41 additions and 2 deletions
+15 -2
View File
@@ -221,9 +221,11 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
.category = "Graphics (Full Screen)",
},
{
.title = "Force Refresh Rate",
.title = "Force Monitor Refresh Rate",
.name = "graphics-force-refresh",
.desc = "Force the refresh rate for the primary display adapter; works in both full screen and windowed modes",
.desc =
"Attempt to change the refresh rate for the primary monitor before the game boots; "
"works in both full screen and windowed modes, but known to fail for some games",
.type = OptionType::Integer,
.category = "Graphics (Common)",
},
@@ -254,6 +256,17 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
.hidden = true,
.category = "Graphics (Full Screen)"
},
{
// FullscreenSubRefreshRate
.title = "Force Submonitor Refresh Rate (EXPERIMENTAL)",
.name = "graphics-force-refresh-sub",
.desc =
"Override fullscreen refresh rate requested by the game for second monitor, "
"useful if you have a sub monitor that is not quite exactly 60Hz.\n\n"
"WARNING: experimental as we have not done extensive testing to see if this causes desyncs",
.type = OptionType::Integer,
.category = "Graphics (Full Screen)"
},
{
// Graphics9On12
.title = "DirectX 9 on 12 (DEPRECATED - use -dx9on12 instead)",