Home Page
F-Zero Central Home Page Championships General Forum Players Photo Album
F-Zero Climax
F-Zero GP Legend
F-Zero MV
F-Zero X
F-Zero GX
F-Zero SNES
F-Zero Climax F-Zero GP Legend F-Zero MV F-Zero X F-Zero GX F-Zero SNES
Twitter Facebook YouTube Twitch
SNES Rules Resources Videos Ladder Your Times Latest Times Records Forum
   « View previous topic | View next topic »  
    Index » F-Zero SNES » F-Zero SNES NTSC Timer Inaccuracy

Should frame counting be used for FZSNES NTSC WRs/FZCBs?
Yes
80%
 80%  [ 4 ]
No
20%
 20%  [ 1 ]
Total Votes : 5

edward406
Staff Ghost
Posts: 238
View user's profile
Send private message
F-Zero SNES NTSC Timer Inaccuracy
Reply to this Post

Hi All,

I had an interesting discussion with Michael (FunStyle) over my stream the other night about how the timer works in F-Zero SNES, NTSC specifically. As many know, F-Zero SNES NTSC operates at 60 Hz or frames per second. Every frame the time advances, it alternates by advancing "01 then "02. No matter what though, every two frames, the timer will always advance "03 (side note: this means "90 game time seconds is one real time second) . When a race is started though, whether the timer advances to "02, or "01 first is essentially random (you can control it in a TAS, but there is a no way a human can control this effect). The realization we got from this is that if you finish a race with an odd amount of frames, there is a 50% chance of an extra "01 being added to your time, solely based on the fact of whether or not the timer advanced "02 rather than "01 from the beginning. If a players time ends on an even frame though, there is no chance of having extra time added. Most importantly, I should also note that after testing with TAS, every frame the game advances, the vehicle travels the same distance, regardless of whether the timer advances "02 or "01 (i.e. the vehicle does not go twice the distance in a "02 frame than in a "01 frame). This essentially means the timer is off by "005 every other frame. If implemented, a timer that would advance "015 every frame would correct for this error.

So this brings me to my next point on how times should be measured and I would like other peoples feedback on this too. I am personally voting for measurement by frames, at least for WR times. The luck of a timer should not determine if one time is better than another, especially when so many records are currently off by "01. I do not know if people on the ladder much care for this or if it would ever be possible to code this odd frame rule into how times are calculated, but I believe implementation of the rule on the ladder would be good when time allows for it to be done. If this rule is to go into effect, for now it would be enforced with all current and future WRs.

As mentioned, any times that differ by "01 are potentially tied in frame count. Luckily enough, all WR times that currently differ by "01 from the next best time also differ by one frame. This means all current WR titles stand as they are. Detailed info is provided below on how these calculations were made.

How to calculate frame count for F-Zero SNES NTSC:

To understand the concept more, let us study an example time of 1:30"56.
First let us convert it to hundredths of a second.

1 minute plus 30 seconds is 90 seconds.

90 seconds = 9000 hundredths of a second.

56 + 9000 = our total time = 9056 hundredths of a second

Before continuing lets establish a constant called DF. DF or double frame, is how many hundredths of a second are in any two consecutive frames, which as we know is always "03.

9056/3 = 3018.6666666 Double Frames

What is the frame total?

Well we know there are 3018 double frames, so to start we have 6036 single frames.

What about the extra .666 double frames?


Knowing that the two frames which make up a double frame are "01 and "02, we know that a value of .333 DFs (.666 frames) is "01  and a value .666  DFs (1.333 frames) is "02. Even though one frame measures "02 and the other "01, the vehicle travels the same distance every frame regardless of whether or not the timer advances "02 or "01. Since we know the game treats a time difference of "01 and "02 as being the same distance traveled in one frame, a value of .666 frames or 1.333 frames will always be one whole frame.

Thus the total number of frames for this race is 6037 frames.*

*In the case of a time of 1:30"56, it shares the same number of frames as a 1:30"55. This means in the case of this time, the player got unlucky with the timer advancing "02 in the beginning of the race instead of "01.

Legend and I currently have seven times which differ by only "01.

Here are calculations for each (TBKs WR history chart was used for reference):

DWI 5-Lap
Ed: 1:43"63
10363/3 = 3454.333 DF
1:43"63 and 1:43"64 = 6909 frames
Legend: 1:43"62
10362/3 = 3454 DF
1:43"62 = 6908 frames

DWI FLAP
Ed: 19"86
1986/3 = 662 DF
19"86 = 1324 frames
Legend: 19"87
1987/3 = 662.333 DF
19"87 and 19"88 = 1325 frames

MCII 5-Lap
Ed: 2:00"83
12083/3 = 4027.666 DF
2:00"83 and 2:00"82 =  8055 frames
Legend: 2:00"84
12084/3 = 4028 DF
2:00"84 = 8056 frames

MCII FLAP
Ed: 22"73
2273/3 = 757.666 DF
22"73 and 22"72 = 1515 frames
Legend 22"74
2274/3 = 758 DF
22"74 = 1516 frames

PTI 5-Lap
Ed: 1:35"55
9555/3 = 3185 DF
1:35"55 = 6370 frames
Legend: 1:35"56
9556/3 = 3185.333 DF
1:35"56 and 1:35"57 = 6371 frames

PTII 5-Lap
Ed: 2:11"66
13166/3 = 4388.666 DF
2:11"66 and 2:11"65 = 8777 frames
Legend: 2:11"67
13167/3 = 4389 DF
2:11"67 = 8778 frames

RCII 5-Lap
Ed: 2:14"46
13446/3 = 4482 DF
2:14"46 = 8964 frames
Legend: 2:14"47
13447/3 = 4482.333 DF
2:14"47 and 2:14"48 = 8965 frames

If I have missed something or miscalculated, please let me know.

Before concluding this post, I would also like to note another mecahnic in this game that adds some slight error to the truth of a players time when two races tie each other frame for frame. When a player crosses the finish line in the game, the game is checking to see if the vehicle is past a certain point of the finish line. It is possible to barely pass this point or pass it by a lot and still have the timer stop on the same frame. Since the game does not calculate how far the machine is past the finish line, any difference between races that finished on the same frame are not calculated.

I made an example of this from my DWI TAS to help elaborate.
A video of the two finishes


A photo of the frame when the race finished w/o turning


A photo of the frame when the race finished w/ turning
 


You can clearly tell that the race without turning technically crossed the finish line first, but the game only checks to see if it passed the finish line on that frame, not in between frames.

F-Zero TAS Trivia: This above video explains why Inichi crashes into the wall at the end of his 1:57"30 MCI TAS. He is merely showing how much he could stretch out this mechanic of the game.

The current alternative to the games lack of programming to discern temporal difference on such a small scale, would be to have a photo finish like above to see which vehicle was further past the finish line. Unfortunately this level of discrepancy cannot be achieved with tied FZSNES races because most capture devices only record at 30fps, and thus there is potential for the final frame of the race to be left out.

In conclusion, though the game has a timer that is accurate 50% of the time, frame counting is a way to correct this and make sure as little luck is involved when comparing times.

"It's the F-Zero spirit!" -Yazzo
Mandalore
Jet Vermilion
Posts: 641
View user's profile
Send private message
Re: F-Zero SNES NTSC Timer Inaccuracy
Reply to this Post

 All this TAS stuff just spoils the games.

Measure by the timer like we always have in the past.

edward406
Staff Ghost
Posts: 238
View user's profile
Send private message
Re: F-Zero SNES NTSC Timer Inaccuracy
Reply to this Post
Mandalore wrote:

 All this TAS stuff just spoils the games.

Measure by the timer like we always have in the past.

The TAS does indeed reveal some unsavory truth about the game, and that is my point. This does not mean it should be ignored. I only brought this up because so many times are so close to each other now, that this kinda of thing would be relavent. If we have the ability to compare close times and rule out any luck, why would we not do it?

"It's the F-Zero spirit!" -Yazzo
Naegleria
Janitor
Posts: 140
View user's profile
Send private message
Re: F-Zero SNES NTSC Timer Inaccuracy
Reply to this Post

Frame counting is definitely the way to distinguish between runs at the top level, but  the ladder itself should only have in game times even if they are randomly off by a hundreth.

edward406
Staff Ghost
Posts: 238
View user's profile
Send private message
Re: F-Zero SNES NTSC Timer Inaccuracy
Reply to this Post
Naegleria wrote:

Frame counting is definitely the way to distinguish between runs at the top level, but  the ladder itself should only have in game times even if they are randomly off by a hundreth.

This sounds fair to me. If no one else is concerned about it, the frame count for the ladder is not something I will push.

As for enforcing it for WRs/FZCBs, I will wait a little while to see if there is anymore feedback from people. I will also make a poll for this thread and let it run for the week.

"It's the F-Zero spirit!" -Yazzo
FunStyle
Black Bull
Posts: 242
View user's profile
Send private message
Re: F-Zero SNES NTSC Timer Inaccuracy
Reply to this Post

Thanks Edward for this post, it s very interesting. I was talking to edward about this in his last stream and as i got to know, the game does not completly work as i thought. I first recognized the timer being not accurate in one of my experiences in TASing this game, as well shown in inichi s Mute City 1 Tas, crashing the wall at the end of the run for no reason, without losing any time. So why is this important?


DWI 5-Lap

Ed: 1:43"63

10363/3 = 3454.333 DF

1:43"63 and 1:43"64 = 6909 frames

 


MCII 5-Lap

Ed: 2:00"83

12083/3 = 4027.666 DF

2:00"83 and 2:00"82 = 8055 frames
Thats why. Calculating like this, you can come up with the following: Edwards Death Wind time had luck involved, the Timer got him that lucky extra of 0"01 for the overall time. It isn t like that for his Mute City 2 run, he was not lucky on this run, and the counter gave him a worse time he actually had. What does this mean? Let s assume the following:
Death Wind 1 Lap TAS (NTSC) is 19"83 which would be 1322 frames, what you also get in a TAS counting the frames, or calculating 1983/3 = 661,0 --> 611*2= 1322. This means, that if this was the absolut maximum time i can get out of the track, i also got the perfect timer at THE END of the race. 19"83 would be the absolut maximum time i can get on the timer and this is also 1322 frames.
 

Frames Starting w/ "01 Starting with "02
1 0,01 0,02
2 0,03 0,03
3 0,04 0,05
4 0,06 0,06
5 0,07 0,08
6 0,09 0,09
... ... ...
1319 19,78 19,79
1320 19,80 19,80
1321 19,81 19,82
1322 19,83 19,83
     

 


Assume, that the TAS i did is not the perfect time and i am able to get a 19"82.The Table says, my racetime is 1321 frames then, when my timer starts with a 0"02. But how about it starting with a 0"01 jump? 1982/3 = 660,666 which is 1321,333 frames as well. Or better: For me as TASer it s not good to say, i got a time of 19"82, because the timer also could get me a time of 19"81 and so i should try to enter the lap when the timer starts advancing 0"01.


This is actually no weird "TAS-Stuff", this is how a lot of competitive games work, which are quite maxed out. This is actually very important vor saying how beatable a run is. A console run or lap that has luck involved is more unbeatable than one without luck. A good example for this is Death Wind 1. The World Record of Legend is done without any timer luck, which means that this run is either unbeatable by "timer-time" (it isnt, showing in TASes or best splits), or edward is getting a better time of 1 43"61 which could be good for Legend trying to beat it once more. He actually can get a better time, without having a better run (in frames). What also means that edward will have to beat this time without any luck Very Happy Just showing up that this means one of the players can always have an advantage beating the others times.


I want to come up with one more thing that affects Fastlaps.As earlier told there can be a difference how far you get into the lap, when the counter starts running for the new run, which can save up to 0"02 secs, depending wheater the timer advances 0"02 or 0"01 at that frame you save, being exactly on the finish line, when the timer is still in the old lap.


That s how the optimal entrance looks like. The timer did not start for me, but i go much further into the lap with the next frame:


This is actually very important for laps. i actually got the perfect entrance in my tas, which means, if i tased the rest of the lap perfectly, 19"83 is the maximum you can get in this game. No luck involved at the timer started with advancing 0"01 in the FLAP. So this is the maximum right? Not neccesarily. Let s check out the finish.


Here you can see that i already passed the finish line ( Overall time is 2 32"70, so the timer does not advance anymore, which means, i finished the lap in this frame). The timer advanced 0"01 as we got to know from calculations before, which is good. But it also is important that there are several ways of getting a lap or 5lap run finished. This is actually the best you can do.But you can lose another 0"02 here, needing one frame more for the run than actually is needed. This actually depends on the track, which means if you do a perfect lap, there are still some tracks where this does not work. For example taking the last turn perfectly requires me, being on a bad driving line after the turn, no matter how, so that i had to do adjustments in the last straight of DW1 for getting that perfect finish. That also means, that i could lose some frames, by doing those adjustments. You see, this means, there are tracks, where this theoretically would not work. Let s asumme DW1 is not such a track. This means, i got the perfect run here. I got the perfect entrance and the perfect finish. If my driving line was also perfect this means, that DW1 is a track where you can save 0"03 on the timer, just dependig on timer,entrance and finish, even though the rest of the lap is the same driving.


This all sounds very interesting for tasing, but when we give a closer look to the non-tased times, this will give a huge luck factor to the game. I doubt anyone here is able to control the entrance and the timer when he enters the lap (actually in DW1 at least the entrance would be possible, since you start always at the same spot due that preparing to entrance the lap, which also means you should get far into the lap each time), but let s think about this in general. The player get get lucky with the timer at the start and at the end, which can save him up to 0"02 with a chance of 25%. There is another chance of saving 0"01 more with getting far into the lap and having a perfect finish, with a chance of 25% percent. (The player cant really handle the advancing into the lap as well, so this is considered as luck imo). Which means that there is a chance of 50%^4 = 6,25% that you get all this things right. Let s assume that the time of 19"83 is the best lap you can get, and edward get s his lap down to 19"84 and wants to improve one more time to have the perfect time on console. This means, that he has to drive up 16 perfect runs in average (being unbevileably unlucky then =D ) to get this last advance. (I don t know how much it is exatly, for a time of 19"84 he actually had to have some of that luck already, otherwise this would mean 19"83 is not the perfect lap. Which is quite useful. I coud do another TAS driving a time of 19"84, checking all the luck spots and find out then if my previous Tas of 19"83 is the perfect time or not)


You see, this is very important to know, and i guess if you get to know, that you actually could have done the same "inlap-lap", so just the driving without entrance or finish, and still being unlucky and getting a much worse time, i think this is very interesting to know. Of course saying, that entrance and finish is not counting in the ladders anymore is stupid, indeed, but i would say, that at least the timer advance should be considered, finding out who did the best run.
That s all from my side for now, i hope you at least understood, what i mean, this is not easy to explain, especially not, if the english is not that good anymore Very Happy Edward (or someone else), we surely can talk about this once more, you also can tell me if you think this is shit, what i wrote there now, or whatever. I formyself agree with Edward. This should be considered in the ladders...

The Legend never dies-
edward406
Staff Ghost
Posts: 238
View user's profile
Send private message
Re: F-Zero SNES NTSC Timer Inaccuracy
Reply to this Post

I had a conversation again today with Funstyle about his post above.

My take on it is that you can only save up to one frame with how far you can enter into a lap and then exit the lap.

I will use a simple example below. Each dash below represents a pixel of distance travelled. Each space between dashes represents a given distance that a vehicle travels at top speed/ frame. The amount of dashes between the two lines represents the exact distance between the start and finish.

---- --|-- ---- ---- -|--- ----

Based on the above diagram, we know our vehicle travels at 4 pixels/ frame and that there are 11 pixels between the start and finish.

Based on the way the a game like FZSNES works. A lap like above would be measured as 4 frames time wise.

If the frame count was started at a different point however, the number of frames it could take to complete this lap could very. Here is an example

---- | ---- ---- ---|- ---- ----

In the above example, the same distance travelled was measured as 3 frames.
Let us look at all variations:

---- | ---- ---- ---|- ---- ---- 3 Frames
---- -|--- ---- ----| ---- ---- 3 Frames
---- --|-- ---- ---- -|--- ---- 4 Frames
---- ---|- ---- ---- --|-- ---- 4 Frames

As long as the distance and speed remain the same, this means that the most frames that the entry of a lap could change would be 1 frame. If you try this experiment on bigger distances or different speeds, you should always find that the greatest variation between laps is 1 frame based on when you enter and exit.

Funstyle is planning on testing this out with a straightaway test using the Fuzee track editor. If what I said is true, all laps should be within one frame of each other when raced at the same speed in a perfectly straight line.

"It's the F-Zero spirit!" -Yazzo
edward406
Staff Ghost
Posts: 238
View user's profile
Send private message
Re: F-Zero SNES NTSC Timer Inaccuracy
Reply to this Post

Just as a quick refresher for those who may be confused as to why Zewing's 22"25 is a tie with my 22"24 on MCI for the fast lap:
In the NTSC version of F-ZERO SNES, the timer advances "01 on one frame and "02 on the following and then repeats this process. Whether or not the timer advances "01 on the first frame of the race or "02, essentially comes down to luck. This means a time with an odd number of frames has two possible values that are always "01 apart. Below is an example to demonstrate what I mean with a time equal to 3 frames:
"01 + "02 + "01 = "04
"02 + "01 + "02 = "05

A time with an even number of frames has only one time associated with it.
Here is an example of what I mean with a time that is equal to 4 frames:
"01 + "02 + "01 + "02 = "06
"02 + "01 + "02 + "01 = "06

Most times are natually much larger than what is listed above. Below is a formula to calculate how many frames an F-ZERO NTSC time is equivalent to.

1) First, if necessary, convert the time to seconds (i.e. a 1'54"37 = 114.37 seconds) 
2) Multiply by 100
3) Multiply by (2/3)
4) If there is a decimal, round to the nearest whole number
The resulting number is the frame count for the time entered into the formula.

"It's the F-Zero spirit!" -Yazzo
   Index » F-Zero SNES » F-Zero SNES NTSC Timer Inaccuracy
 
Display posts from previous: