Как запускать старые игры в 2023 — VmWare/Wrapper/GoG… Или PCeMv17
Быстро оправдаюсь. Я понимаю, что информация, возможно, более поверхностная, чем требует того Хабр, но во многом мне не хватает квалификации описать все нюансы работы с PCeM, а на Хабре о нем вообще нет никакой информации, поэтому я надеюсь, что может кто-то возьмется в дальнейшем разобрать тему и показать насколь глубока кроличья нора…
Как правильно играть в старые игры? Ну конечно, самый лучший способ — приобрести старую железку. На неё накатить старую игру и получать удовольствие! Но старые железки потихоньку выходят из строя и становится всё тяжелей найти рабочую, да и не каждому захочется под рукой держать Pentium 2 400 просто для того чтобы играть во что-то из детства/юношества/молодости.
Очевидными кажутся следующие выходы:
GoG.
Врапперы.
Эмуляция.
При всей любви к 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).
В отличие от костылей, вроде врапперов и виртуальных машин, здесь эмулируется поведение самого железа, что позволяет:
Установить на него соответствующую ОС.
Установить соответствующие драйвера.
Запускать игры, не эмулируя их, а так, как они должны были работать.
Насколько я помню, эмуляция 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 в оригинальном режиме.