The NEW Build Your Own Arcade Controls

Main => Software Forum => Topic started by: jkl on October 09, 2017, 04:44:48 am

Title: [Technical] About Fps, Refresh Rates, Smoothness And Mame
Post by: jkl on October 09, 2017, 04:44:48 am
Hi all,

after almost 20 year of interest in emulation I have to admit some lacks in my technical knowledge.

I'm writing because I recently used my MAME install to (re)play an old platform game: an emulation task that maybe every actual system can handle without hassles.

But scrolling wasn't so silk smooth I expected.

 

This is what I (thought I) know about scrolling smoothness:

 

1) when something is scrolling under 30 fps we (our eyes) detect it as "not smooth", between 30 and 60 fps we detect it as smooth but we are still able to perceive different levels of smoothness, above 60 fps we no longer detect any more smoothness (i.e. play a game @ 60 fps or 300fps is for our eyes the same experience). A direct consequence is that 60fps appear to be the holy grail of serious game playing (in particular for driving games);

 

2) if fps generated by software (emulator, game...) are not in sync with screen's refresh rate tearing will occur; this is why the v-sync option helps to have "solid" moving objects by syncing (waiting) the image refresh coming from GPU buffer with refresh scan of monitor;

 

3) what described above (#2) is prone to another bad side effect: stuttering, when the refresh rate / generated frames ratio is less than 1:1 (i.e. more frames than refresh rate), and this is why technologies as AMD's freesync nor Nvidia G-sync are useful.

 

 

This is what I understood about this topic.

 

*But I can't explain the behaviour of MAME.*

 

Disabling throttle and enabling "sync to monitor refresh", it should generate the "right" number of frames to ensure 1:1 ratio. Since I use a common mainstream LCD monitor, this means that MAME forces the game to render 60 fps (to sync to my monitor's 60Hz refresh rate). In case of a game running @ 59.12 Hz on original hardware, this leads to a tiny 1% of more speed. And pressing F11 while ingame I can effectively verifiy that I have 0 skip and 101 to 102% of original speed.

Everything as expected, BUT scrolling is not smooth at all. It scrolls more or less like crappy 30fps capped driving games, with lightly defocused objects when moving and general non-smooth feeling (I suppose that light defocusing is due to my screen not exaclty top-of-hill features).

 

To have a perfectly smooth scrolling I have to overclock monitor's refresh rate up to 75Hz, but doing so MAME forces the game to run 135% and it's just ridicolous.

 

On the same screen, playing a modern 60fps game appears to be silk-smooth with v-sync on.

 

So why a game emulated by mame seems to scroll this bad even if theorically speaking everything is set to run perfectly smooth?

I know there is a MAME flavour, named GroovyMAME, focused on this but if I correctly understood an AMD card (I have Nvidia) and a CRT monitor are required for it to give the best results.

 

If someone can help me to fill out my lack of knowledge this will be appreciated.

 

 

PS: side question why movies running @ 23,976 fps (cinema) seem smooth to me if they're under 30 fps (#1)?