Retroarch: 57/59 fps games running the wrong speed on lcd monitors

Created on 7 Apr 2019  Â·  18Comments  Â·  Source: libretro/RetroArch

First and foremost consider this:

  • Only RetroArch bugs should be filed here. Not core bugs or game bugs
  • This is not a forum or a help section, this is strictly developer oriented

Description

[Description of the bug]
machine timing scew makes these games run too fast this results in high pitched music. The game can run up to 10% too fast depending on the fps set on lcd monitor.

Expected behavior

game to run the correct fgps
[What you expected to happen]
game to run the correct fgps

Actual behavior

all games in the 57.x/59.x run the 60fps
[What is actually happening]
machine timing scew setting 0.05 is setting these games to play the wrong speed

Steps to reproduce the bug

start and game with mame or fba any version this fps range ie double dragon 1, double dranon 2, robocop many others as well.

  1. start fba or mame
  2. load robocop or double drangon
  3. display fps notifications

Bisect Results

all versions of RA

Version/Commit

[INFO] RetroArch 1.7.6 (Git ffad99d886)

Environment information

  • OS:WIndows 10 64 bit
  • Compiler: MSYS64

Just started a new topic for this as the other topic is about scripting. The only way to play these games properly at the moment seems to be freesync/gsync. or crt. I think it would be nice to find a solution for normal lcd users with no freesync/ gsync.

Most helpful comment

Yeah, "max timing skew" could easily be changed to something like "video speed correction threshold" or "video speed sync window" or whatever. However, perhaps it would be better to leave the option named the same and just clarify in the subtitle and help texts..?

All 18 comments

This is not a bug, this is by design.

On Sat, Apr 6, 2019 at 10:48 PM grant2258 notifications@github.com wrote:

First and foremost consider this:

  • Only RetroArch bugs should be filed here. Not core bugs or game bugs
  • This is not a forum or a help section, this is strictly developer
    oriented

Description

[Description of the bug]
machine timing scew makes these games run too fast this results in high
pitched music. The game can run up to 10% too fast depending on the fps set
on lcd monitor.
Expected behavior

game to run the correct fgps
[What you expected to happen]
game to run the correct fgps
Actual behavior

all games in the 57.x/59.x run the 60fps
[What is actually happening]
machine timing scew setting 0.05 is setting these games to play the wrong
speed
Steps to reproduce the bug

start and game with mame or fba any version this fps range ie double
dragon 1, double dranon 2, robocop many others as well.

  1. start fba or mame
  2. load robocop or double drangon
  3. display fps notifications

Bisect Results

all versions of RA
Version/Commit

[INFO] RetroArch 1.7.6 (Git ffad99d
https://github.com/libretro/RetroArch/commit/ffad99d8866eb51b45f010b6caefa131f5f75544
)
Environment information

  • OS:WIndows 10 64 bit
  • Compiler: MSYS64

Just started a new topic for this as the other topic is about scripting.
The only way to play these games properly at the moment seems to be
freesync/gsync. or crt. I think it would be nice to find a solution for
normal lcd users with no freesync/ gsync.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/libretro/RetroArch/issues/8555, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABpC0OROwX-vfpzF6sQ7W3TDlpj8-qdjks5veWp9gaJpZM4cgi1V
.

I guess it a live with it situation nice to get some closure on it

i take the sample applies to pal as well I just started snes9x and refresh rate is set to 60 for pal. Is there any reason that the design isint changing the fps to 60 for this as well since its by design?

The default timing skew will make it run at 60 till 57ish fps.

Below that it's too far and obviously noticeable, so it disables vsync and
runs at 50.

On Sun, Apr 7, 2019, 00:21 grant2258 notifications@github.com wrote:

i take the sample applies to pal as well I just started snes9x and refresh
rate is set to 60 for pal. Is there any reason that the design isint
changing the fps to 60 for this as well since its by design?

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/libretro/RetroArch/issues/8555#issuecomment-480560432,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABpC0DHYHpK6KOC9AqSRffBh3bQQk6Cvks5veYBWgaJpZM4cgi1V
.

Well there is an option in the core that sets the samplerate to bypass this by setting the samplerate fps * 1000 that fix bypasses 60 fps issue .

I dont think this isint the ideal way to do it for none lcd or when using modelines with ra. Ill remove this option from the core and recommend people set the sync to exact content framerate for these particular games instead if they want the correct framerate. Either as a core option or game over ride. No point in messing other displays that work properly when there is one setting we can change in RA instead.

I guess the proper fix to sort pal would be to set the modelines to 50 in Linux anyway not sure how that would work on windows 10.

I cant find a way to make robocop with ra settings smooth as samplerate fps * 1000 and setting the framerate to 60 in the core. The cores job isint to do this at the end of the day so ill leave them to run too fast by design

Sync exact framerate only works with g-sync/freesync displays.
And right, the core only has to set av_info and not hack around DRC, that's not needed nor desirable.

yea I know i only works for g-sync/freesync displays there is no way to get games to run at the right framerate smoothy on RA with an lcd monitor in RA other than setting a modeline in linux. it lets users play the game at the right speed at least jerky or not

How is this forcing to 60 fps considered as a design choice? Running 57 fps games at 60 fps by default is pretty bad imo. It is a 5 percent speed up! That’s large. Yes it is smooth but also wrong. People who know these original games will easily notice.

Maybe include a “force 60 fps” front end option that the user can enable or disable? When the option is disabled, smoothness is less on lcd Monitor but game timing is accurate like in the arcades. In my opinion timing skew should be much much less than 3 fps for an accurate emulator. Maybe allow 1fps. Or make it an option to set max timing skew in fractional fps.

I wouldn’t accept a 5 percent inaccurate speed up personally if I had the choice, regardless if it is smooth on lcd or not. I disable force 60 hz in pfba
because it ruins these games for me. It is too inaccurate to run the games with this speed up.

I think many popular games fall in this category. I think Street Fighter and R-Type are two examples of I remember right.

i do have it as an option atm that can be disabled or not ill need to rename it though i have it named as bypass audio skew at the moment

@rsn8887 the solution is disable audio sync or make audio timing skew a lot smaller.
While I agree with the speedup being bad I don't think most players will notice up to a certain threshold.

There are 59.7fps games IIRC in arcades. Is it word disabling vsync and getting tearlines or judder for that? certainly not in my opinion.

The default is supposed to give you smooth scrolling, and synced audio and video.
Of course there is the constant change in audio pitch. Maybe a smaller default is desirable that I don't know, but I do think it's a better solution than judder, after all most people play at no VRR ~60hz screens.

Bottom line, if you want 57 at 57..
Change audio timing skew to 0.033333333333333, then it would only have effect till 58fps.

If you want 58 at 58.. you can do it just do the math.

It's not about set numbers, that's just a tweakable default that someone considered reasonable.
If there is a better default it can be changed.

Also the option could be clearer, it's not about forcing behaviors, it's all about reaching agreements.
If everyone thinks correct speed up to 58fps is a priority then that can be done, maybe even 59fps (I mostly care for SNES / GEN / PSX / GB(c)(a) anyway).

Here is the scenario:

At the current defaults, a person who has never played robocop will get incorrect speed, incorrect music pitch, but he will get smooth scrolling, no judder.

If we change it to 0.033333334 the same user will get correct speed, correct pitch, judder, will bitch and complain about how RA sucks, maybe will quit.

So I think it's easier to keep the current default and try to improve the explanation of how this work so purists can get what they want.

disable audio sync wont do anything for robocop to run the right speed the video timing with push the timing up and the audio speed in mame. wosrt case scenario the sound will crackle in some cases. It was also said in the other thread it was bad advice changing the timing scew. Ill just wait from more opinions before changing anything. I think in the big picture an official guide on the recommended way to implement this (you say purists) for games to run on spec for lcd monitors would be ideal so users know what to do and cores will know how to handle it

It is indeed max timing skew that you need to adjust.

I didn't realize this was already an option that could be adjusted to fix this problem. That's good news.

well bparker and fr500 say this is bad advice its why im looking for alternatives before taking and action on this. Even if you could set mode lines in windows would be tedious per game setting it manually just isint an option. you would have to use something like retropie that has scripts for linux anyway.

https://github.com/libretro/RetroArch/issues/8546#issuecomment-480416171

Eh, it's complicated. Some games suffer more by running at the wrong speed, others by having choppy scrolling. My personal taste is that I loathe juddery scrolling much more than wrong speed, so the current 57 Hz default is fine by me. In any event I think at least 59 to 61 Hz games should run at 60, so all those Neo Geo games (they're 59.1) and ~60 Hz NTSC and arcade systems scroll right and have proper shadows and transparency.

We'll eventually have ubiquitous Freesync or modeline generation, in the meantime the best option would be to have an option that's clearer in meaning than tweaking audio timing skew. Something like "Sync to nonstandard refresh rate range - X%".

Yeah, "max timing skew" could easily be changed to something like "video speed correction threshold" or "video speed sync window" or whatever. However, perhaps it would be better to leave the option named the same and just clarify in the subtitle and help texts..?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

alki-apps picture alki-apps  Â·  3Comments

wrldwzrd89 picture wrldwzrd89  Â·  3Comments

bslenul picture bslenul  Â·  3Comments

GoronMegaZord picture GoronMegaZord  Â·  3Comments

parkerlreed picture parkerlreed  Â·  3Comments