Мои игровые странствия

Прокомментировать Просмотры: 10

Разумеется, речь идет о той самой классике из детства. В какой-то момент мне отчаянно захотелось освежить воспоминания. Безусловно, можно воспользоваться готовыми решениями вроде DOS Zone, однако ничто не сравнится с запуском любимого проекта прямо на собственном ПК, пусть даже внутри веб-браузера. К тому же, возможность самостоятельно, пускай и на базовом уровне, разобраться с инструментами JS-DOS представляет огромную ценность.

Лучший способ погрузиться в это увлекательное занятие — использовать утилиту create-dosbox. Здесь даже не придется ничего инсталлировать: достаточно обратиться к Node.js и выполнить пару шагов…

C:\Users\User>npx create-dosbox aladdin
? Enter title of the game to search (e.g. Digger) aladdin
? Please select the game from list Disney's Aladdin
Downloading bundle
Downloading bundle %: 0.87  remaining bytes: 1774598
...
Downloading bundle %: 100.00  remaining bytes: 0
Creating web-site
Well done...
Добро пожаловать в Аграбу!
Добро пожаловать в Аграбу!

Несмотря на то что create-dosbox уже считается устаревшим инструментом, он «из коробки» поддерживает такие легендарные игры, как Lost Vikings, Airborne Ranger, Battle Chess, и все они прекрасно функционируют! Главное достоинство в том, что в папке _site формируется полный набор файлов для запуска. Заменив файл bundle.jsdos на другой (об этом мы поговорим чуть позже), можно запускать совершенно другую игру. Конечно, можно было бы открывать index.html напрямую с накопителя, но тут в дело вступают ограничения CORS, из-за чего приходится поднимать локальный HTTP-сервер.

Основной недостаток create-dosbox — крайне скудный выбор встроенных тайтлов. Сами образы можно отыскать на портале вроде этого, но как упаковать их в бандл? На помощь приходит DOS Zone Game Studio седьмой версии с ее предельно лаконичным интерфейсом:

Загружаем ZIP-архив (файлы в формате RAR предварительно придется перепаковать). В выпадающем списке указываем исполняемый файл…

Пока ничего не меняем в настройках и просто кликаем по кнопке “Create Archive”:

Убедившись, что игра успешно стартует, скачиваем готовый бандл.

С заменой архивов связан один любопытный нюанс. Не вникая глубоко во внутренние механизмы js-dos 7, стоит отметить: при первом запуске игра кэшируется браузером, из-за чего в дальнейшем будет открываться именно она, а не новый подброшенный файл. Проще всего взять за правило менять номер сетевого порта при каждой подмене бандла. В ОС Windows это делается следующей командой:

set PORT=8081 && npm start

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

Проект Chess Housers ярко демонстрирует, насколько эстетичной может быть CGA-палитра (впрочем, вариант с EGA тоже существует).

Еще один блестящий пример использования CGA-графики — La Abadía del Crimen, адаптация знаменитого романа Умберто Эко «Имя розы». Опробовать её можно здесь, однако есть нюанс: игра полностью на испанском языке.

Huang-di — еще один вызов для полиглотов. Симулятор правления Желтого императора доступен по клику правой кнопкой после прохождения несложной проверки. Иероглифы серьезно осложняют игровой процесс, но нейросеть DeepSeek охотно помогает разобраться в деталях.

Некоторые старые игры поражают воображение своей необычностью. Например, Astroid предлагает добывать полезные ископаемые в открытом космосе. К сожалению, проект задумывался как многопользовательский и требовал подключения к французской сети Minitel. Поскольку ее инфраструктура была отключена летом 2012 года, современным игрокам остается довольроваться лишь демонстрационной версией.

Нельзя не признать, что раньше разработчики гораздо чаще выпускали бескомпромиссные хардкорные проекты. Отличным примером служит America’s Cup Yacht Racing Simulator — симулятор парусных регат, в котором нарочито спартанская графика соседствует с невероятно скрупулезным физическим моделированием поведения яхты на воде. Знатокам парусного спорта определенно стоит взять его на заметку:

Разумеется, в каталоге Old-Games собрано бесчисленное множество настольных забав: шахматы, шашки, нарды, сянцы, сёги и масса менее известных вариаций. Любителям интеллектуальных вызовов я настоятельно рекомендую оценить TrianGo и Chester.

Как правило, седьмая версия js-dos справляется со своими обязанностями блестяще, но иногда возникают сбои. Кроме того, она бессильна перед играми, изначально созданными под Windows. В качестве иллюстрации возьму еще одну памятную для меня игрушку детства.

Формально в DOS 7 она запустилась, но курсор мыши намертво застрял в левом верхнем углу экрана. Восьмая итерация движка справилась с задачей, но процесс сборки бандла под неё превращается в настоящее приключение. Сначала открываем js-dos 8.xx: Game Studio и выбираем нужную операционную систему для эмуляции (в нашем случае — MS-DOS).

Скачиваем образ диска, импортируем его в студию и активируем. Затем интегрируем внутрь файлы с игрой, последовательно нажимая на подсвеченные элементы интерфейса:

Приостанавливаем работу виртуальной машины, тем самым инициируя пересборку бандла:

дописываем в блок [autoexec] пару критически важных инструкций…

mount d: .
boot c:

Далее снова запускаем виртуалку, правим конфигурационный файл autoexec.bat внутри неё и выгружаем готовый архив:

и закономерно сталкиваемся с ошибкой:

Конечно же, предварительно следовало настроить параметры аудиокарты через утилиту (SNDSETUP.BAT):

После перезагрузки бандла всё наконец-то заработает как надо…

Игры для Windows запускаются по схожему сценарию, за исключением того, что требуется монтировать иной образ ОС, а автозагрузку прописывать не в autoexec.bat, а в соответствующей системной папке. Для подключения образов дисков удобно применять команду imgmount. Иногда критически важно сохранить исходную иерархию директорий, чего мне не удалось добиться штатными средствами Game Studio. К счастью, выручает простой факт: любой файл jsdos — это обычный ZIP-архив с измененным расширением. Переименовываем, распаковываем, раскладываем файлы по нужным местам, запаковываем обратно и возвращаем расширение — бандл готов!

Инфраструктура, создаваемая утилитой create-dosbox, для работы с восьмой версией бандлов, разумеется, не подойдет. Придется склонировать репозиторий и собрать собственный билд js-dos. На этом пути тоже могут поджидать мелкие препятствия, но все они преодолимы…

Чтобы успокоить дотошный компилятор, потребовалось добавить декораторы @ ts-ignore, после чего процесс сборки успешно завершился:

Для успешного старта бандл необходимо прописать в файле index.html (абсолютные пути при этом лучше заменить на относительные):

По большому счету, на этом все. Разумеется, гладко идет далеко не всё. Мне так и не покорилась Nox (несмотря на честное обновление видеодрайверов) и Gangsters 2, потребовавшая инструкций MMX, а для запуска древней программы Trains понадобился вшитый в ПЗУ BASIC. Учитывая, что на платформе DOS Zone эти проекты функционируют, решения существуют, пусть я до них пока и не добрался.

Впрочем, преодолевать подобные технические препятствия — это как раз самое интересное. Зачастую сам процесс поиска решения увлекает гораздо сильнее финального результата…

 

Источник

Поделиться:

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов