Windows

Почему старые игры работают слишком быстро на современных компьютерах?

Если вы когда-нибудь пытались запустить винтажную компьютерную игру на современной системе, вы, вероятно, были шокированы тем, как быстро игра запускалась. Почему старые игры выходят из-под контроля на современном оборудовании?

Ранее сегодня мы показали вам, как запустить старое программное обеспечение на современных компьютерах ; Сегодняшняя сессия вопросов и ответов — хороший комплимент, который объясняет, почему некоторые старые программы (особенно игры), кажется, никогда не работают правильно, когда вы пытаетесь запустить их на современном оборудовании.

Сегодняшняя сессия Вопросов и Ответов приходит к нам благодаря SuperUser — подразделению Stack Exchange, объединенной группой веб-сайтов вопросов и ответов.

Вопрос

Читатель SuperUser TreyK хочет знать, почему старые компьютерные игры работают на новом оборудовании так быстро:

У меня есть несколько старых программ, которые я снял с Windows-компьютера начала 90-х и попробовал запустить их на относительно современном компьютере. Интересно, что они бегали с невероятной скоростью — нет, не с частотой 60 кадров в секунду, а с типом «о, боже мой, персонаж ходит на скорости звука». быстро. Я нажимал клавишу со стрелкой, и спрайт персонажа проносился по экрану намного быстрее, чем обычно. Временная прогрессия в игре происходила намного быстрее, чем следовало. Есть даже программы, разработанные для замедления вашего процессора, так что в эти игры можно играть.

Я слышал, что это связано с игрой в зависимости от циклов процессора или что-то в этом роде. Мои вопросы:

  • Почему старые игры делают это, и как им это сходит с рук?
  • Как новые игры не делают этого и работают независимо от частоты процессора?

Так что за история? Почему именно спрайты в старых играх вспыхивают по экрану так быстро, что игра становится недоступной для игры?

Ответ

Участник SuperUser JourneymanGeek разбивает его на части:

Я полагаю, они предполагали, что системные часы будут работать с определенной частотой, и привязали свои внутренние таймеры к этой частоте. Большинство этих игр, вероятно, работали в DOS и работали в реальном режиме (с полным, прямым доступом к оборудованию) и предполагали, что у вас установлена ​​система iirc 4,77 МГц для ПК и любой другой стандартный процессор этой модели для других систем, таких как Amiga.

Они также использовали умные комбинации клавиш, основанные на этих предположениях, в том числе экономили крошечные ресурсы, не записывая внутренние циклы синхронизации внутри программы. Они также потребляли столько процессорной мощности, сколько могли — что было достойной идеей в дни медленных, часто пассивно охлажденных чипов!

Изначально одним из способов обойти разную частоту процессора была старая добрая кнопка Turbo (которая замедляла работу вашей системы). Современные приложения находятся в защищенном режиме, а ОС стремится управлять ресурсами — они не позволяют приложению DOS (которое в любом случае работает в NTVDM на 32-разрядной системе) использовать весь процессор во многих случаях. Короче говоря, операционные системы стали умнее, как и API.

Основано на этом руководстве на ПК Oldskool, где логика и память подвели меня — это отличное чтение и, вероятно, более подробно объясняет «почему».

Такие вещи, как CPUkiller, используют как можно больше ресурсов, чтобы «замедлить» работу вашей системы, что неэффективно. Вам лучше использовать DOSBox для управления тактовой частотой, которую видит ваше приложение.

Если вам интересно узнать, как настоящий код был реализован в ранних компьютерных играх (и почему они так плохо адаптируются к современным системам, не будучи помещенными в «песочницу» в какой-либо программе эмуляции), мы также рекомендуем проверить этот длинный, но интересный анализ процесс в другом ответе суперпользователя.


Есть что добавить к объяснению? Звук выключен в комментариях. Хотите узнать больше ответов от других опытных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь .

Похожие посты
Windows

Драйверы для Windows 10

Windows

Лучшие приложения для фотографии на вашем Windows Phone

Windows

Команды командной строки для панели управления апплетами

Windows

Официальное приложение SmugMug теперь доступно для Windows Phone