An important concept to consider is VSync speed. So often, the electron gun in the TV (or, equivalently in modern TVs) finishes drawing the screen and slowly moves up to the top of the screen.
Since this happens at a constant speed (60 times per second in NTSC, 50 in PAL), most games use this as their timer with a code that is roughly equivalent to this:
void main() { while(true) { updateGame(); updateSprites(); waitForVSync(); } }
Obviously, this is greatly simplified, but what happens. Some games were so complex that they took up too much time and missed the VSync period. In this case, they will wait for the second VSync and, thus, will work with 30 (/ 25) FPS.
Sometimes you will notice a slowdown in NES games (for example). This is when the workload is so heavy that it lacks several VSync periods in a single action frame.
But yes, the bottom line is how time worked on older consoles (in fact, even many new consoles and computer games use the same system, not just old consoles!)
Mike caron
source share