Post subject: Console frame rates
Joined: 4/17/2017
Posts: 25
Sorry if this isn't a Bizhawk question but I really don't know where to put it. My friend recently got a Micomsoft SC-512N1-L capture card. It's quite a high quality capture card, PCIe and has a passthrough built in so you don't need an amplifier. When recording retro consoles, it's always good to be able to record at the actual framerate (the ones found on this page) so the video plays at the correct speed. While testing out different programs to record with, we noticed something interesting occur in two different programs, VirtualDub and AmarecTV. We used VirtualDub first, for a while, so I'll describe its behavior. When VirtualDub was told to record at an FPS that was not the same as the one the console ran at, it had a resample rate on the right-hand column where the recording information goes that was quite a bit more or less than x1.00000 depending on if the framerate was to high or to low. When 30.0494 was put in for NES/SNES, for example, the resample rate was almost exactly x1.00000 the entire time (it's never exactly, but almost). However, when we recorded at 29.9700 for N64, VirtualDub consistently reported a resample rate of x0.99816 on the video speed. That means it needed to go that much slower. I pulled out Windows calculator and did some quick math, and 29.97*0.99816=29.9148552. Here's where it gets interesting: when using AmarecTV, framerates are displayed a little differently, and the framerate you have chosen to record at is not what the program displays; rather, it displays the rate it is (presumably) actually running at. It displays this even when you're not recording, unlike VirtualDub. Here's what AmarecTV displays despite having the framerate set to 29.97 in the program: Pretty much what I manually calculated from another program. I only wish I could see more decimal places out (it unfortunately doesn't show more than 2). What I'm getting at is that the framerate page does not list an exact value for the N64's framerate, and I've always personally wondered what it is, and for this very specific purpose. It's nice to be able to capture games at their real framerate, so the speed of the video is correct, especially for speedrunning. Is it possible that this capture card is at least within some accuracy of the N64's real framerate? Or is that just wishful thinking? :P
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11478
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
N64 framerate is 60000/1001.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 4/17/2017
Posts: 25
Then why hasn't that page been updated? And why the strange and matching behavior from both of these programs?
endrift
Any
Emulator Coder
Joined: 12/14/2014
Posts: 161
It would also be a good idea to post the exact ratios instead of high precision values, e.g. GB/GBA isn't 59.727500569606, it's exactly 262144/4389, and DS is 16756991/280095. Notably, 60000/1001 is NTSC framerate (often shortened to 59.94 fps)
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11478
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
That page simply shows whatever the site database has, and it has it because old emulators had those rates, so for their movies it's still valid. Dunno how exactly newer, more accurate emulators are handled.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 4/17/2017
Posts: 25
Wait, what does it have to do with emulators? Aren't these frame rates the frame rates of the actual consoles? I'm really lost now. https://forum.speeddemosarchive.com/post/important_analog_capture_frame_rates_and_mysterious_gained_seconds.html I don't think that thread is talking about emulators, since SDA is against using them. I'm pretty sure they're talking about the real NES/SNES hardware having a frame rate of 60.0988. That thread is giving information about what will happen if you record a real NES/SNES console at 59.94 FPS. So what does it have to do with different emulators? I'm interested in knowing the frame rate of an actual N64 (among other consoles).
Joined: 4/17/2017
Posts: 25
Something interesting I found recently. https://archive.org/details/610-6861_The_House_of_the_Dead_Taikenban_JPN The specs of the video on that page list 29.91fps. It's the same frame rate I came up with for N64 according to my friend's capture card, and also the same frame rate for the Saturn as a test a few days ago revealed. I think it's a little coincidental that I'm getting the same frame rate as somebody else if there's nothing to it. You can also do a Google search for sega saturn 29.91 and find several of those videos. Is it a positive fact that the N64 itself runs at 60000/1001? I'm not talking about emulators, I'm talking about actual hardware. And isn't the actual hardware what the numbers on the frame rates page are supposed to reflect? Why would we put in any other numbers? They would be arbitrary. Sorry if I'm being a pest, but I'm still not totally satisfied with the responses I got, as they gave me virtually no information as to how those numbers are known and why they aren't reflected on the frame rates page and in the emulators themselves if they are known. Just to point this out: if we connect an NES or an SNES to the capture card, AmarecTV has 30.04 in the Cap[] box without us setting the program's frame rate to record at 30.04. That's because it's reporting the signal it's actually receiving. So, it really seems like N64, and now Saturn too, are 29.91. EDIT: Looks like I'm not the first one to find this out (and it doesn't surprise me). https://www.videogameperfection.com/forums/topic/nintendo-64-de-blur/page/2/#post-12488 Read that post and the following few posts. If you double my value of 29.91 (because we're dealing with interlaced signal), you get 59.82, which is exactly what they're getting. Well, there are more decimal places, but yeah. Actually, on the subject of the decimal places, the number I got was 29.9148552, which multiplied by 2 is 59.8297104. The number given in that thread is 59.8261054. It's a difference of 0.003605. It's extremely close. I'm actually pretty proud of that calculation now, given I did it manually. Here's another post with 59.82: https://shmups.system11.org/viewtopic.php?f=6&t=51622 blizzz's post, who happens to be a regular at SDA. The more I search, the more I find the numbers my friend's capture card is giving us. I know it can be a bunch of people all mislead with the same false information, but the more times I find this number, the more I believe it's not. EDIT2: The thread at videogameperfection.com goes on to question the exactitude of the numbers used to calculate the frame rate, but the frame rate can, at the very least, be used as a ballpark figure. Any device you put an N64 signal into will not give you 29.97, it will give you 29.91. I don't think 29.97, or 59.94, is accurate.