Быстро оправдаюсь. Я понимаю, что информация, возможно, более поверхностная, чем требует того Хабр, но во многом мне не хватает квалификации описать все нюансы работы с PCeM, а на Хабре о нем вообще нет никакой информации, поэтому я надеюсь, что может кто-то возьмется в дальнейшем разобрать тему и показать насколь глубока кроличья нора…

Как правильно играть в старые игры? Ну конечно, самый лучший способ — приобрести старую железку. На неё накатить старую игру и получать удовольствие! Но старые железки потихоньку выходят из строя и становится всё тяжелей найти рабочую, да и не каждому захочется под рукой держать Pentium 2 400 просто для того чтобы играть во что-то из детства/юношества/молодости.

Очевидными кажутся следующие выходы:

  1. GoG.

  2. Врапперы.

  3. Эмуляция.

При всей любви к Good Old Games, его можно отмести сразу по причине того, что не все эмулируется корректно. Последний пример, Аллоды 1 и 2, с мерцающим курсором под 10-кой.

Да и попытка поиграть в любимых 4-х героев обернулась ужасом. А чего уж говорить про более старые игры.

VMware Workstation Pro

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

Но проблема VmWare Worksation в том, что это эмулятор своего собственного железа, которое не является полным аналогом компьютеров тех лет, из-за чего далеко не все работает корректно. Я не буду вдаваться в подробности, но вот некоторые из неудобств, которые не удалось ни победить, ни жить с ними.

  • Deus Ex — что-то непонятное с гаммой.

  • Freelancer — постоянные вылеты.

  • Starlancer — отказывается запускаться.

  • Unreal — запускается без Glide.

  • Diablo ½ — только в окне.

  • Петька 3 (только в окне, в режиме дебага). Постоянные вылеты.

  • Warcraft 2 — на скоростях равных скорости света.

  • Аллоды 1 — только со скипом роликов.

  • Аллоды 2 — с иногда непонятными ускорениями до сверхсветовых.

Более того, чтобы заводить некоторые из игр, как бы смешно это ни казалось, на виртуальную машину приходилось ставить не «оригинальные образы», а уже «новоделы» из GoG. Которые не заводились на хост машине.

Что по итогу? VmWare Workstation Pro — Хорошая виртуальная машина, и в большинстве случаев её хватает за глаза. Особенно, если вы не хотите сильно заморачиваться с донастройкой игр, а хотите накатить образ и играть.

DDraw Wrapper

Ddraw.dll - это библиотека, связанная с "DirectDraw", частью DirectX от Microsoft, используемой для рендеринга 2D-графики в ранних версиях Windows. Многие старые игры и приложения, разработанные для Windows 95, 98 или даже XP, зависели от DirectDraw для отображения графики.

Конечно, если у вас руки (а не лапки как у меня), можно взять различного рода wrapper'ы (тот же DDraw) и решить проблемы с частью двухмерных игр. На деле, это практически то, чем занимается сам GoG. Комплектует игры парой библиотек и позволяет запускаться им.

Но Ddraw Wrapper, как и подобные ему решает проблему только с частью игр. Конечно, не каждый захочет играть в столь древние игры и возиться с подключением библиотек, и проще будет просто отказаться от их воспроизведения. Но если вы маньяк или просто хотите поиграть во что-то из глубокого детства, то это ваш путь.

3хмерные игры на современном железе

С 3-мерной графикой есть определенные проблемы и нюансы.

Вот так, к примеру, выглядит Need For Speed 3.

Вот так она выглядит на PS.

А вот так она должна выглядеть.

И каждый раз, когда вы пытаетесь сэмулировать что-то на VMware Workstation Pro, вы с большой вероятностью эмулируете софтверный рендеринг, который хоть и позволяет запустить старую игру, но совсем не так, как она выглядела в те времена на самом деле.

Порой, глядя на старые игры через призму современности, кажется, что и графика там была неказистая, и вообще все было похоже на мыльные пиксели, и просто на TFT мониторах они замыливались, как и наше восприятие…

Но все дело в том, что до того как Direct3d стал единственным стандартом, каждый разрабатывал 3d во что горазд. И одним из направлений были 3д ускорители 3dfx. 

И если вам в те годы посчастливилось стать обладателем Voodoo 2, то безусловно, вы жили в совершенно другом мире, с большим FPS, улучшенной фильтрацией текстур, и графикой, опережающей всё минимум на 3 года!

Glide Wrapper

Глядя на скрины старых игр и сопоставляя их с собственным восприятием, захотелось воспользоваться Glide Wrapper, который позволяет сегодня насладиться играми так, как они должны были выглядеть.

Да, признаюсь честно… использовать Glide для какого-нить Redguard — извращение. Но вот Unreal — совсем другое дело. Да и старый добрый NFS хоть и начинает бросаться мылом в экран, все же превращается из набора пикселей во что-то более удобоваримое.

Да-да, я знаю, примеров не так много. Я не упомянул System Shock. Не упомянул Tomb Raider, которые визуально практически не отличаются от софтверного рендера (шутка).

Но проблема в том, что даже имея Nglide или другие врапперы, позволяющие запускать игры на современном железе, у нас все равно будет целая тонна проблем с совместимостью.

Здесь и разность скоростей. И то, что порой его недостаточно. И что не везде Api работает. А где-то картинка все равно идет с артефактами, и не так, как это было тогда.

UPD: С другой стороны, тот же Nglide для карточек Nvidia умеет творить чудеса, и запускать игры с неплохим таким апскейлингом… Но все ещё не все.

Интерлюдия

А вот теперь давайте просто представим. Что нам для того, чтобы поиграть во что-то старое, нужно:

  • Виртуальная машина со старой осью.

  • Врапперы.

  • Фиксы.

И под каждую игру придётся возиться индивидуально. Где-то будет достаточно виртуалки. Где-то дистрибутива с ГОГа, а где-то и всё это вместе не поможет.

А ещё лучше — собрать машину тех лет, и работать исключительно с ней.

Вот теперь точно будем эмулировать все игры! PCeM 17!

Но есть альтернатива… Эмулятор ПК тех лет PCeM V17. На деле, я узнал об этом софте, ещё во времена его 10-ой версии, году в 15-ом. Но то, что хорошо эмулируется на Ryzen 7 5700x, отвратно себя чувствовало на i3 2120. 

В общем PCeM — это эмулятор персонального компьютера на базе X86 (с недавних пор ещё и Сommodore), который умеет полностью воспроизводить поведение компьютера тех лет (вплоть до P4). 

В отличие от костылей, вроде врапперов и виртуальных машин, здесь эмулируется поведение самого железа, что позволяет:

  1. Установить на него соответствующую ОС.

  2. Установить соответствующие драйвера.

  3. Запускать игры, не эмулируя их, а так, как они должны были работать.

Насколько я помню, эмуляция voodoo и даже voodoo в SLI там появилась далеко не сразу.

Как пользоваться PCeM

Я беру фенилуксусную кислоты из бочки с синей пчелой. Суть инструкции

Ну что… надеюсь единственное полезное, что будет в Этой статье. 

Берем Эмулятор по этой ссылке. 

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

Драйвера берем здесь

ОС берем… ну с этим проблем возникнуть не должно.

Дальше все просто… открываем портал в 90-е, и как будто бы мы собрали новый комп, берем и все устанавливаем.

  • Выбираем характеристики машины в PCeM.

  • Накатываем соответствующие ROM.

  • Размечаем виртуальный хард. 

  • На него накатываем вполне настоящую ОС.

  • Ставим драйвера… И теперь устанавливаем все игры.

Здесь есть единственный важный нюанс, который может создать определенные проблемы, когда вы впервые столкнетесь с PCeM. 

Т. к. он эмулирует железо, на которое установлено реальное оборудование и ОС, то в случае, если вас не устроит собранная железка и вы захотите её поменять, то сделать это на лету не получится… Вы же не можете поменять процессор в рамках одной материнской платы, не переустанавливая Windows?

Ну а дальше, все ограничивается только вашей фантазией и потребностями. 

Что могу сказать сразу? 

И Starlancer, и Diablo, и Unreal на глайде, и даже… о ужас… Return to Krondor завелись с полоборота. 

 

Конечно, специалисты заметят, что PCeM умеет делать и доисторическое и более свежее железо, и при желании можно собрать что угодно, вплоть до Pentium 2. А можно и первый 8088, с монохромным дисплеем.

Pentium 2 — золотая середина, т.к. уже с появлением Pentium 3 многие вещи стандартизировались и куда легче переносятся на современные ПК без лишних танцев с бубном.

А что DosBox?

DosBox, это, безусловно, хорошая альтернатива PCeM. Более того, распространенная и работающая даже под ОС Android. Но у неё, как и у VmWare Workstation, схожий порядок проблем, и узнать, что и в каком режиме запустится, можно только методом «тыка».

В случае с PCeM вы ограничены только своей фантазией и мощностью железа. Ну и ещё наличием драйверов.

Итог

Со 100% вероятностью я уверен, что найдутся люди, и которые знают где лежат библиотеки под каждую старую игру, и как настроить враппер и/или виртуальную ОС так, чтобы на ней все летало. И что вообще PCeM это глупо и избыточно.

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

Но что самое главное, PCeM — это относительно простой способ заиметь у себя пускай виртуальную, но ретро-машину, позволяющую запускать игры 25-летней давности такими, какими они задумывались, и что самое главное… настроив подобную машину единожды, не придётся возиться с совместимостями и настройками под каждую отдельную игру.

В самом крайнем случае, конечно, можно собрать несколько виртуальных компьютеров, или вообще заняться каким-то ультра-ретро-геймингом, запуская первый Space Quest в оригинальном режиме.