Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

57/59 fps games running the wrong speed on lcd monitors #8555

Open
grant2258 opened this issue Apr 7, 2019 · 18 comments
Open

57/59 fps games running the wrong speed on lcd monitors #8555

grant2258 opened this issue Apr 7, 2019 · 18 comments

Comments

@grant2258
Copy link
Contributor

@grant2258 grant2258 commented Apr 7, 2019

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)

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.

@fr500
Copy link
Contributor

@fr500 fr500 commented Apr 7, 2019

@grant2258

This comment has been minimized.

@grant2258

This comment has been minimized.

@fr500
Copy link
Contributor

@fr500 fr500 commented Apr 7, 2019

@grant2258

This comment has been minimized.

@grant2258

This comment has been minimized.

@fr500
Copy link
Contributor

@fr500 fr500 commented Apr 7, 2019

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.

@grant2258

This comment has been minimized.

@rsn8887
Copy link
Contributor

@rsn8887 rsn8887 commented Apr 7, 2019

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.

@grant2258

This comment has been minimized.

@fr500
Copy link
Contributor

@fr500 fr500 commented Apr 7, 2019

@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.

@fr500
Copy link
Contributor

@fr500 fr500 commented Apr 7, 2019

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.

@grant2258

This comment has been minimized.

@hizzlekizzle
Copy link
Contributor

@hizzlekizzle hizzlekizzle commented Apr 9, 2019

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

@rsn8887
Copy link
Contributor

@rsn8887 rsn8887 commented Apr 9, 2019

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

@grant2258

This comment has been minimized.

@fzacchi
Copy link

@fzacchi fzacchi commented Apr 9, 2019

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%".

@hizzlekizzle
Copy link
Contributor

@hizzlekizzle hizzlekizzle commented Apr 9, 2019

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..?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants
You can’t perform that action at this time.