Post subject: Timing Gameboy TASes
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3828)
Joined: 11/30/2014
Posts: 2834
Location: US
I noticed that when I convert runs from VBA they tend to sync much easier on GBHawk then Gambatte. This is because VBA apparently also ends frames always on VBlank boundaries. On GB and GBC, the distance between VBlanks can be arbitrarily large since the console can disable the screen, and many games do so during loading. So on games with significant loading times, the difference between the time in reported frames x frame rate and actual real time can be pretty large. For example in my new Kwirk movie, using frame count and 60 fps gives: 15:51.59 But, a more accurate time would be to divide cycle count by cpu clock speed (4021503155/4194304) = 958.80 seconds = 15:58.80 It's probably not worth doing anything about, I don't even know if you can get a cycle count from VBA, but the difference seemed significant enough to at least mention, since there are many VBA GB runs.
TiKevin83
He/Him
Ambassador, Moderator, Site Developer, Player (155)
Joined: 3/17/2018
Posts: 358
Location: Holland, MI
There are VBA GB runs? Yikes! I definitely agree that timing should be done by cycle count where possible. From what I understand the definition of what a "frame" is breaks down during LCD disables, this is why console verification requires cycle count precision for inputs and incidentally could cause confusion about run length between emulators that implement LCD disable differently.
GJTASer2018
He/Him
Joined: 1/24/2018
Posts: 309
Location: Stafford, NY
The Platform Framerates page mentions a "blanket" framerate value of 59.727500569606 for GB and GBC. Are those entries going to have to be updated to account for the timing issue?
c-square wrote:
Yes, standard runs are needed and very appreciated here too
Dylon Stejakoski wrote:
Me and the boys starting over our games of choice for the infinityieth time in a row because of just-found optimizations
^ Why I don't have any submissions despite being on the forums for years now...
Fog
Emulator Coder, Experienced player (642)
Joined: 4/5/2014
Posts: 459
For what it's worth, Dolphin stores the cycle count (or "tick count") into the header of the movie format, then the site parser takes this cycle count and calculates the duration by dividing the cycle count with the CPU clock rate (486Mhz for GC, 729Mhz for Wii). This ensures that we're always getting the most accurate time possible, and not relying on frame count or input frames.