Why does frame rate matter for speedruns in games with in-game timers

doomframerategoldeneye-007speedrun

Watching this video from Karl Jobst, he mentions that the speedruns of several Doom ports must take into account the game's poor frame rate. I know the 007 Goldeneye speedrun on the N64 also involves keeping the frame rate as high as possible. I assume many other games have similar problems.

But I don't understand why frame rate matters in these two games, because they use in-game timers for their timing. I would think if the frame rate dipped, it would slow the timer down just as much. What's going on here?

Best Answer

I would think if the frame rate dipped, it would slow the timer down just as much.

That's where you're mistaken. The in-game timer isn't a frame counter, it's a timer. Either it's driven by a timer interrupt triggered by some clock in the system (probably divided down from the same clock that runs the CPU), or it's driven by a vblank interrupt that triggers at the display framerate (which is generally a fixed commodity on consoles). Either way, it's mostly independent of what the rest of the code is doing. If the game engine fails to deliver a frame on time, it results in a gameplay slowdown, but it doesn't result in less time being counted.

Of course not all games operate this way, but the ones in question do, and it's a common enough approach.