Un concepto importante a tener en cuenta es la velocidad VSync. Esta es la frecuencia con la que el cañón de electrones del televisor (o el equivalente en los televisores modernos) termina de dibujar la pantalla, y viaja lentamente hacia la parte superior de la pantalla.
Debido a que esto sucede a una velocidad constante (60 veces/segundo en NTSC, 50 en PAL), la mayoría de los juegos utilizan como su temporizador, con código que es más o menos equivalente a esto:
void main() {
while(true) {
updateGame();
updateSprites();
waitForVSync();
}
}
Obviamente, esto está extremadamente simplificado, pero eso es lo que está pasando. Algunos juegos eran tan complejos que demoraron demasiado y pasaron por alto el período VSync. En ese caso, esperarían el segundo VSync, y por lo tanto funcionarían a 30 (/ 25) FPS.
A veces, notará que los juegos de NES se vuelven más lentos (por ejemplo). Esto es cuando la carga de trabajo es tan pesada que le faltan varios períodos VSync en un solo cuadro de acción.
Pero sí, eso es básicamente la forma en tiempo trabajó en las consolas mayores (En realidad, incluso muchas consolas más nuevas y juegos de PC utilizan el mismo sistema, no sólo viejas consolas!)
No estoy seguro de lo que quiere decir con "reloj de tiempo real", pero las consolas que dependían del Z80 como procesador de propósito general también tenían hardware dedicado para animar sprites y reproducir sonidos. El Z80 solo estaba dando órdenes a estos. –
¡Me encantaría saber esto también! Siempre pensé que era más un "cuando X está aquí, Y hace esto" algo así. – James
Los juegos antiguos a menudo se sincronizan alrededor de la velocidad de cuadro de la pantalla en la que se ejecutan, por lo que actualizan sus sprites una vez por fotograma (es decir, 50hz o 60hz dependiendo de si es un sistema PAL o NTSC) – Laserallan