Speed up or slow down emulation to a specific monitor refresh rate?

Hi all,

if I have e.g. an arcade game that runs internally at 55Hz, is there a convenient way to speed it up to (exactly) 60Hz or slow it down to 50Hz to get smooth scrolling etc.? Or a setting that allows playing an EU game at 60Hz instead of 50Hz or visa verse? Even though there are more and more VRR devices, CFR displays are still wide-spread like living room TVs, smartphone displays etc. I read that there are sometimes core specific settings, but I ask for more general settings so that it could be used on every core.

Thanks a lot in advance!

FBNeo has a core option to force 60Hz

1 Like

I’m not sure there is a RetroArch general option that will make the game match the speed of your monitor.

However if, like me, you don’t have a G-Sync/FreeSync monitor/GFXcard-capable setup you can just add custom refresh rates/resolutions to your system and run the game at its native refresh rate.

So instead of speeding up the game to 60hz to avoid jerky video, it runs at its native (or near) speed while avoiding video jerkiness.

For example, Mortal Kombat II (and other games of the same board) runs at ~54.70. So I created a custom 1282x722 resolution/refresh rate with Nvidia control panel of 55hz (not exact but pretty close).

Then added these lines to MAME’s mk2.cfg

video_autoswitch_refresh_rate = "2"
video_windowed_fullscreen = "false"
video_fullscreen_x = "1282"
video_fullscreen_y = "722"
video_refresh_rate = "55.000000"

so whenever the game starts the monitor will automatically switch to that resolution and refresh rate. No stuttering at all. Now since it’s at 55hz and not 54.70hz you might expect video stuttering or frame skip/drop every ~1-2 sec or so. But it doesn’t happen. If however I try to run the game at a say, 58hz then you can clearly see a consistent frame drop every second or so. So it seems MAME or even RA itself will speed up (or down) the game/content if it’s within a certain threshold. Not sure exactly how it all works tbh, video/audio sync is probably one of the most complex aspect of RA. It also seem to be heavily core-dependent.

If you don’t have an nvidia card, I think there are other programs that can do the same job for your system. I’m on Windows for reference.

1 Like

Switchres does the same thing in case you have a VGA monitor and Linux as it switches to 240p and 109 hz, guaranteeing smooth image, like VRR monitors.

Thanks for your hints. I have already setup a custom refresh for DOS games at 70Hz, but this fixed refresh rates won´t work on games that change the refresh rate. They are not really common, but e.g. DOS games switch from 70Hz to 60Hz when 3dfx is involved (e.g. Tomb Raider 1), and there is the Amiga game “BCKid” at www.factor5.com that switches from 50Hz to ~60Hz. In the C64/Amiga emulator “Denise”, there is an option to either conform to the original rates or set a fixed rate that slows down or speeds up the emulation speed - which might be an interesting option as long as VRR devices are non-standard.

I am aware of CRT Switchres and tested it a lot with my Pi and finally with a PC 2-3 years ago, but it finally did not work out for me. The Radeon R9 280 was not able to handle all SDTV consoles (e.g. Gamecube did not work anymore), so I had a performance limitation, there were e.g. cores that did not support switchres, and exiting RetroArch changed the resolution back to 720x480 instead of 720x576 or something similar, so I was not satisfied and finally brought my CRT to the recycling center after having seen convincing CRT shaders in action.

With VRR OLED screens, I can see a literally bright future coming, but until then, a easy common solution for non-VRR screens would be great.

You need to enable Settings > Video > Synchronization > Sync to Exact Content Framerate, otherwise RA will round up all refresh rates above 57Hz to 60Hz.

Interestingly, it’s actually possible at the programming level to change the way frames are sliced (i.e. instead of dividing your 1 second of “animation” into 55 frames, you divide it into 60 frames), so that the game will run at a different refresh rate without affecting gameplay speed. Many games are actually pretty tolerant about this, some games could even run at 120Hz with new frames that didn’t exist on original hardware and no impact on gameplay speed.

1 Like

If you set Audio sync off, Vsync on and manually put there 60hz (should be the default anyway), the game should sync to 60 hz.

If not, you can try this:

Disable video sync Enable audio sync Set Dynamic Audio Rate Control to 0.050 Audio Latency to 256 ms

See if you managed to speed up the game by some 5%. You should get ~ 58 hz instead of 55. If it works, mess with the Dynamic rate a little and see if it goes up or down.

This trick works very well for having even/smooth frames in 60 hz games, on a high speed display (ex.160 hz).