С момента первого запуска игры в начале 90-х годов портирование Doom на другие устройства стало массовым явлением. Одним из самых неожиданных стал вариант от Williams Entertainment и Рэндала Линдена на Super Nintendo в 1995 году, всего через пару лет после первоначального релиза игры на DOS.

Линден — канадский разработчик, известный по работе над Dragon’s Lair на Amiga, а также эмуляторами Bleem и Bleemcast.

К концу своего жизненного цикла SNES накопила впечатляющую библиотеку игр, но была значительно слабее по сравнению с ПК, на которых запускался Doom. Сам факт появления Doom на консоли Nintendo — это новшество, но и также демонстрация технологий, которые казались неосуществимыми.

В Kotaku решили взять интервью у Линдена спустя 30 лет после выхода порта.

В 1994 году он начал работать в большом складском помещении в Сан-Диего в компании Sculptured Software из Солт-Лейк-Сити. Линден присоединился к своим коллегам на закрытом мероприятии Nintendo, где демонстрировалась игра Star Fox, работающая на чипе SuperFX. «Игра была встречена бурными аплодисментами, — вспоминает Линден, — прямо тогда и там Sculptured решили, что хотят создать игру на SuperFX».

Его друг и коллега по Sculptured Software, Джон Морган, пользовался уважением за свои навыки в 3D-графике и математике, и его привлекли к проекту, который впоследствии стал 3D-гонкой на мотоциклах под названием Dirt Trax FX. Однако проблема заключалась в том, что у Sculptured Software не было системы разработки, и они едва ли знали технические характеристики нового чипа Nintendo.

«У меня возникла идея, — сказал Линден. — Давайте пойдем в магазин и купим картриджи Star Fox, три или четыре штуки. Откроем картридж и заменим ПЗУ на ОЗУ и небольшой загрузочный ПЗУ». Он написал программное обеспечение для загрузочного ПЗУ, что позволило напрямую подключить картридж к Amiga, а затем записывать программы непосредственно на только что припаянный чип ОЗУ.

Имея этот самодельный комплект для разработки, работающий так, как задумал Линден, он понял, что ему нужен способ протестировать чип Super FX: «Я подумал: „Что может быть лучше, чем начать писать свою версию Doom?“». Именно это он и сделал. Код Doom для ПК никак не мог работать в аппаратной среде консоли, поэтому Линден самостоятельно провел реверс-инжиниринг игры. 

«Нам нужно было знать, как работает карта памяти и некоторые базовые вещи, поэтому Nintendo прислала минимальную информацию, которая представляла собой, по сути, только спецификацию процессора», — отметил разработчик. На основе данных Линден смог написать собственный ассемблер, компоновщик и отладчик исходного кода, используя систему разработки на базе Amiga, которую он применял для создания других игр для Super NES, таких как «Один дома» и «Хоккей Уэйна Гретцки».

Имея на руках ассемблер и получив доступ к Super FX, Линден взял «Неофициальные спецификации Doom» Мэтью Фелла и приступил к работе над созданием собственного игрового движка. В итоге от движка Id Software не осталось и следа.

Несмотря на то, что это был учебный проект, работа Линдена над Doom произвела на его боссов такое впечатление, что они прилетели в Id Software в Техас на презентацию, а потом разрешили Sculptured Software продолжить работу над портом.

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

Спустя 30 лет Линден решил применить Raspberry Pi, чтобы усовершенствовать Doom на SNES. 

«Первоначальная идея принадлежала мне», — рассказал Ауди Сорли, который был поклонником творчества Линдена с детства, а сейчас работает в Limited Run Games. 

Сорли впервые связался с Линденом в 2020 году, когда разработчик опубликовал полный исходный код версии для SNES, и провёл интервью на Digital Foundry. В ходе него автор порта на вопрос об улучшениях ответил, что думал об этом.

Прошло несколько лет, и Сорли присоединился к Limited Run Games в качестве ведущего продюсера отдела разработки. Когда LRG попросили его рассказать о своих самых безумных идеях, тот предложил новую версию Doom Линдена. 

Когда они начинали проект, Сорли был уверен, что Линден сможет разобраться, как внедрить различные улучшения программного обеспечения, но оставались вопросы о том, как улучшить аппаратную часть, чтобы реализовать новые функции, которые они хотели добавить в игру — такие как круговое движение, более высокая частота кадров и даже вибрация с помощью нового контроллера, придуманного разработчиком.

Линден применил Raspberry Pi 2350, чтобы загрузить программное обеспечение, которое обманывает SNES, заставляя её думать, что в игре используется оригинальный чип Super FX. Разработчик написал код, почти идентичный тому, что он создал бы для настоящего чипа.

«Мне пришлось вернуться назад и провести реверс-инжиниринг собственного кода 30-летней давности», — отмечает Линден.

В результате Doom работает на Super Nintendo, но более плавно, с новым контентом и даже вибрацией. 

А в этой статье можно прочитать, как разработчик Майкл Абраш удвоил скорость другой старой игры Quake.