Играем в ретро на современном железе
С появлением в коллекции King's Quest VI и Mask of Eternity, встал вопрос: как же это добро запустить.
И если с шестой частью, как и со многими квестами, ответ очевиден - использовать ScummVM, то с Mask of Eternity ничего не ясно, в интернете не так много информации, да и сайты запрещают доступ к своим ресурсам из России.
Я располагаю следующей техникой - ноутбук Honor Magicbook Pro 16.1 с Ryzen 5 4600h и ASUS ROG Zephyrus G15 на Ryzen 7 3750H + GTX 1660 Ti. Обе машины работают на Windows 11 23H2. По итогу, играю я Хонора, так как процессор там посильнее, но обо всем по порядку.
Варианты
Сейчас существует множество решений для запуска старых игрушек на новом железе. Разберем основные и наиболее приятные.
ScummVM
Для квестов можно с комфортом использовать упомянутый выше ScummVM, который поддерживает огромное кол-во игр, в том числе 3D адвенчуры на движке GrimE (Grim Fandango, Escape from Monkey Island), полный список совместимости доступен здесь.
Огромным плюсом является наличие красивого интерфейса и простота добавления игр - нужно просто указать папку с установленной игрой, и ScummVM автоматически определит игру, даст ей название, категорию, язык (можно выбрать, если локализаций несколько). Можно настроить шейдеры, улучшалки рендера, эмуляцию звука - все опять же через приятный интерфейс. Присутствуют автосохранения, интегрированные на уровне движков игр. Так же программа портирована на все платформы от мобильных устройств на Android, до телевизоров на WebOS.
Проблемы начинаются, если попытаться использовать модифицированные версии игр с переписанными экзешниками. Дело в том, что ScummVM не эмулирует железо, а на низком уровне адаптирует логику работы движков игр, чтобы те работали на любом железе, добавляет различные исправления и фишки по типу автосохранений. Так, переписанный код может повлиять на утилиту, и она попросту не определит игру. Переписанные экзешники могли быть не только у пиратских версий, но так же у переведенных на языки, которых не было в оригинальном наборе - и их ScummVM не распознает и запустить их будет невозможно. А если и получится запустить, то посыпятся ошибки во время игры.
Актуальную последнюю версию всегда можно достать на офф. сайте здесь
DosBox/DosBox Pure и другие форки
Полноценный эмулятор MS-DOS с соответствующими минусами - отсутствием какого-либо графического интерфейса, необходимостью знать команды MS-DOS.
Оригинальную актуальную версию можно скачать на офф. сайте.
Для более кайфового опыта и какого-никакого графического интерфейса, советую использовать эмулятор в качестве ядра для RetroArch, там оно с недавнего времени представлено форком DosBox Pure, который поддерживает подгрузку игрушек из zip архивов, установку OS (можно поставить Windows 95-98), автоматический маппинг контроллеров, эмуляцию 3dfx Voodoo.
Если установить Windows, можно поиграть в ранние 3dfx игрушки. Таким образом, поиграть получится в то, что имеет требования Pentium I 166/Voodoo 1. Voodoo 2/3/Banshee завести на нем не получится. Зато на том, что предлагается, скорость эмуляции куда стабильнее и выше, чем на описанном ниже варианте.
PCem/86box (то, на чем я и остановился), и почему не VirtualBox
VirtualBox не предназначен для полноценной эмуляции 3d ускорителей, проще и обобщенно - он не для игр. Тем более что будет сложно установить Win98 на современные архитектуры процессоров и через дичайшие костыли.
Как же быть, если хочется все иметь в одном месте, с нормальным интерфейсом и без особых танцев с бубном? Эмулировать реальное железо и играть из-под Windows 98.
На данный момент, существует единственный эмулятор PCem, а также его форк 86box для этих целей. Я остановился на 86box, так как он предоставляет более удобный процесс настройки и взаимодействия с эмулятором, поэтому в статье продолжится настройка именно 86box.
Сразу стоит отметить, что эмуляция - это достаточно требовательный к железу процесс, и для ее реализации требуется мощный процессор. Потому, из доступного мне железа я остановился на, казалось бы, более слабом ноуте Honor. Хоть он без dGPU, зато процессор помощнее. На Ryzen 4600H со 100% скоростью получилось эмулировать билд на Pentium I/II 166 + 3dfx Voodoo 3 3000. Протестированы Аллоды 2, трилогия Кирандии, King's Quest VI, Mask of Eternity, несколько частей Leisure Suit Larry, несколько частей Space Quest, Curse of Monkey Island. Во всех играх эмуляция происходит со 100% скоростью и редкими падениями скоростей на время загрузок.
- Сам эмулятор 86box - здесь. Забираем последнюю стабильную версию, распаковываем в удобное место;
- Набор romов, необходимых для эмулятора. Берем здесь, распаковываем содержимое в каталог roms внутри распакованного 86box. Должно получиться так, что в 86box лежит папка roms, а в ней папки floppy, hdd, icons, machines и т.д.
- 86box manager - нужен, чтобы можно было создать несколько машин, и комфортно ими управлять. Берем здесь, распаковываем рядом с 86box.exe;
- Windows 98 и драйверы. Я залил образ Windows 98 SE2 и необходимые драйверы для чипсета, видео, а также DirectX на Яндекс.Диск.
Запускаем и настраиваем чудовище Франкенштейна
Запускаем 86Manager.exe. Справа сверху сразу нажимаем Settings, в поле 86box path указываем путь до 86box.exe и жмем Apply справа снизу. Вы увидите зеленый текст снизу от поля path, сообщающий о версии 86бокса и и том, что она поддерживается
Далее в интерфейсе 86box нажимаем Add, вводим произвольные называние и описание машине, ставим галочку на Configure this virtual machine now и жмем Add. Откроется интерфейс настройки машины.
Блок Machine
- Machine type: [1997] Slot 1;
- Machine: [i440BX] AOpen AX6BC;
- CPU Type: Intel Pentium Pro, Frequency: 166 (здесь можно выбрать процессор и частоты, исходя из мощностей своего реального процессора. Я с комфортом играю на Pentium II Klamath 166, слышал что ребята эмулируют Pentium II 450 со 100% скоростью на 13900k)
- Memory: 64MB
Блок Display
Video: [PCI] 3dfx Voodoo3 3000. Нажимаем справа Configure, выставляем Render Threads 4;
Блок Input Devices
Блок Sound
- Sound cart #1: [ISA16] Sound Blaster AWE64 Gold;
- MIDI Out Device: Roland MT-32 Emulation;
- Снимаем галочку Use FLOAT32 Sound, FM Synth driver: YMFM(faster);
Блок Storage Controllers
HD Controller и FD Controller: Internal controller;
Блок Hard Disks
Нажимаем New и создаем новый. Указываем в первом пункте где будет располагаться файл диска, Size рекомендую 20000 (20ГБ), Image Format: Dynamic-Size VHD (.vhd). Тут обозначусь, что файл не будет сразу весить 20ГБ - это будет его максимальный вес, а реальный вес будет меняться с наполнением.
Блок Floppy & CD-ROM Drives
Ставим в первый пункт тип 3.5" 1.44MB, остальные убираем (ставим тип none)
Ставим Bus ATAPI, Channel 1:0 (важно!), Speed 72x, Type NEC CD-ROM DRIVE:260 1.01
Нажимаем OK и сохраняем таким образом настройки. Теперь из интерфейса 86box мы можем напрямую запустить нашу машину, только не торопитесь устанавливать винду, сначала настроим BIOS (нажимайте del во время включения).
Налаживаем BIOS
- Выбираем Load Turbo Defaults;
- Идем в Standart CMOS Setup. Стрелочками переходим к Primary Slave и с помощью PageUp/PageDown меняем на None. Повторяем для Second Slave и нажимаем Esc;
- Переходим в пункт Integrated Peripherals, выставляем Disabled на Onboard Serial Port 1 и 2, нажимаем Esc;
- Все готово. Перед тем, как выберите Save and Exit Setup, обратите внимание на интерфейс программы 86box. Чтобы выйти из режима захвата курсора, нужно нажать среднюю кнопку мыши и появится курсор нашей хост-системы. Сверху открываем Media и видим наш флопик и CD-ROM. Монтируем в флопик загрузочную IMA дискету из архива с Windows, а в CD-ROM - ISO образ системы. После чего нажимаем Save and Exit, и перезагружаемся.
Установка Windows 98
После перезагрузки, выберите загрузку с CD диска, и начнется типичная даже для современных Windows установка. Я не буду подробно расписывать процесс, из нюансов - на первом экране вас встретит вопрос о том, нужна ли поддержка больших дисков - согласитесь.
В ходе установки, компьютер будет несколько раз перезагружен и в какой-то момент спросит ключи для установки, вот некоторые, которые вы можете использовать:
После успешной установки, в бут меню больше не загружайтесь с CD-ROM, извлеките флоппик и диск из 86box и выберите загрузку с жесткого диска из бут меню.
Windows доустановит необходимые компоненты, после чего мы сможем приступить к установке драйверов. Удобно, что в 86box (в отличие от PCem), мы можем в качестве образа эмулировать папку, поэтому эмулируем папку с драйверами, и начинаем с CPU драйверов. Компьютер может перегрузиться несколько раз - это нормально. После установки драйверов на CPU нажимаем ПКМ по "Мой компьютер" - > Свойства. В открывшемся окне выбираем вкладку "Устройства" -> Дисковые накопители -> Дважды кликаем на GENERIC IDE DISK TYPE 47, переходим в Настройки, ставим галочку на DMA и применяем, перезагружаемся. Это снизит нагрузку на процессор при работе диска.
Далее устанавливаем драйверы Voodoo из папки video/am29win9x/setup.exe. Компьютер перезагрузится, и вы увидите, что цветовое пространство изменилось и цвета стали другими, система работает шустрее. Опционально, можно поставить Overclock из папки video, это позволит повышать частоты, и быстро получать доступ к панели 3dfx из трея.
Последним устанавливаем DirectX 7 из папки с драйверами, перегружаемся, можно монтировать свои образы с игрушками, устанавливать и играть.
Заключение
Чаще всего, в комплекте с игрой идут ReadMe файлы на диске, либо после установки - советую читать их, некоторые игры могут требовать ограниченную палитру или другие фишки от системы. Такой вариант с удобством позволяет мне играть во все ретро игры коллекции, со стабильным FPS и минимумом графических артефактов. Всем удачи!