Важно помнить о скорости VSync.Вот как часто электронная пушка в телевизоре (или аналог в современных телевизорах) заканчивает рисовать экран и медленно продвигается к верхней части экрана.
Поскольку это происходит с постоянной скоростью (60раз в секунду в NTSC, 50 в PAL), большинство игр используют это в качестве таймера, с кодом, который примерно эквивалентен этому:
void main() {
while(true) {
updateGame();
updateSprites();
waitForVSync();
}
}
Очевидно, что это существенно упрощено, но это то, что происходит.Некоторые игры были настолько сложными, что заняли слишком много времени и пропустили период VSync.В этом случае они будут ждать второй VSync и, следовательно, будут работать со скоростью 30 (/ 25) FPS.
Иногда вы заметите замедление в играх NES (например).Это когда рабочая нагрузка настолько велика, что в одном кадре пропускается несколько периодов VSync.
Но да, в этом суть того, как работает синхронизация на старых консолях (На самом деле, даже на многих новых консолях и ПКигры используют ту же систему, а не только старые консоли!)