For those of you who want to play at the system’s actual frame rate, and not just something similar, there is a way to do this.
Example, the SNES runs at about 60.098478FPS*, which is not quite the same as 60FPS. If you want to have smooth Vsync, you need to slow down by 0.163%, and if you want correct speed, you need to drop a frame around every 10 seconds. Slowing down by 0.163% means you will be 5.9 seconds slower over the course of an hour.
* Exact SNES framerate value is 945000000 / 15724192 FPS
By using the program Custom Resolution Utility, you can redefine what the 60Hz refresh rate video mode actually runs at. (Requires Vista or newer)
I just got this working on my laptop. Custom resolutions may not work on all computers though.
To use Custom Resolution Utility:
- Run the program
- Select the refresh rate closest to 60Hz, click Edit
- Type in the desired Frequency (example, 60.098Hz)
- Slowly change the value for Back Porch until the number shown for Actual refresh rate gets closer to the number you want. I got 60.098Hz when I set Back Porch to 145 pixels, but this will vary depending on your original video mode.
- Click OK to exit the settings window, then OK again to exit the program.
- Run restart64.exe to make it redirect your monitor. After running this, you may need to change your DPI settings again, so run “dpiscaling.exe” to get back to that setting.
- Reboot your computer. You need to do this.
After doing this, RetroArch detected that the Display Reported refresh rate was 60.098, and estimated the refresh rate as 60.1Hz. Over the course of an hour, 60.1Hz will be about 0.1s faster than 60.098Hz, which is a much smaller difference than 5.9 seconds.
Note: Do not define two different refresh rates that are very close to 60Hz, only one of them will end up taking effect.
Edit: See this page http://tasvideos.org/PlatformFramerates.html for information on the exact frame rates of various consoles.