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

[Question] How Are Timings for the Platforms Obtained and or Determined? #3926

Closed
DeadSkullzJr opened this issue May 23, 2024 · 3 comments
Closed

Comments

@DeadSkullzJr
Copy link

Hello, I come with a simple question. How does one get exact frame rate timings from certain platforms? I was looking online and reading up on all the strange timings that certain platforms, game consoles and computers to be more specific, seem to have, initially a lot of folks say that things are either 60 frames (NTSC) or 50 frames (PAL), but clearly it isn't that simple. I encountered the page below and was wondering how these were calculated or obtained, and if there was a way I could find out myself for some of the systems that I own, especially those not listed in the web page below. I also have to ask, why do some of the platforms have so many duplicate timing entries, seems rather inconsistent that a console would have multiple timings rather than a set timing like others tend to have.

Web page in question:
https://tasvideos.org/PlatformFramerates

@YoshiRulz
Copy link
Member

The TASVideos.org list contains every value ever used in a publication.
For our list, check the blame. For the most part, they're sourced from people who've reverse-engineered the console.

@CasualPokePlayer
Copy link
Member

CasualPokePlayer commented May 23, 2024

TASVideos' PlatformFramerates just includes any ""framerate"" included for any submitted movie. Some might be from ancient emulators (not accurate at all), or possibly just mucked values to handle variable framerate consoles (due to timing on TASVideos internally strictly being derived from framerate and framecount, so framerate may be mucked in order to make it have the right time with a given framecount of a movie, in this case the correct final movie time derived from some cycle count in the movie).

Actual timings for cores (for purposes of A/V recording and throttling) anyways don't neccessarily strictly follow those values too, they have their own values defined in the IVideoProvider's Vsync Numerator/Denomator properties. Movie timing (according to BizHawk's play movie dialog) have something similar to TASVideos' platform framerates:

// these are political numbers, designed to be in accord with tasvideos.org tradition. they're not necessarily mathematical factualities (although they may be in some cases)

Although movie timing might not follow these values if it is a cycle based movie timing core (ICycleTiming) or if it's just MAME (which just gives its own movie timing definition depending on the game because Arcade)

@Randomno
Copy link
Contributor

Randomno commented May 23, 2024

How Are Timings for the Platforms Obtained and or Determined?

Generally, [CPU clock speed] divided by [cycles per frame]. So the SNES runs at 21477272 Hz and outputs a frame every 357368 cycles. But then there are other quirks to account for, like how every other frame, one scanline takes 4 cycles fewer, which averages out to 2 cycles per frame. So the "official" framerate is 21477272 / 357366.

Though, as far as I understand 21477272 Hz is technically still an approximation.

https://wiki.superfamicom.org/timing

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

No branches or pull requests

4 participants