Doom работает везде, даже на Neo Geo: новый рекорд портирования культового шутера

Doom работает везде, даже на Neo Geo: новый рекорд портирования культового шутера

Doom работает на всём, что имеет процессор. Эту фразу слышал каждый, кто хоть немного интересуется ретрокомпьютингом и разработкой. Культовый шутер id Software, вышедший в 1993 году, действительно портировали на калькуляторы, умные колонки, банкоматы и даже на тест на беременность. Но есть одна платформа, которая долгое время оставалась «непокорённой» — легендарная игровая консоль SNK Neo Geo. Теперь и этот рубеж взят.

Автор статьи на Habr, на которую мы ссылаемся в этом материале, подробно описывает процесс портирования Doom на Neo Geo. Это не просто очередная шутка энтузиаста, а полноценный технический подвиг, который заставляет по-новому взглянуть на возможности 16-битной архитектуры.

Почему Neo Geo — это особый вызов?

Neo Geo (выпущенная в 1990 году) была не просто консолью — это была аркадная система, которую ставили дома. Её сердце — процессор Motorola 68000 на 12 МГц, который для своего времени был монстром. Но проблема в том, что архитектура Neo Geo была заточена строго под 2D-спрайты и палитры. У консоли не было текстурного блока, 3D-ускорителя или даже простого буфера кадра, который можно было бы использовать для рендеринга трёхмерной сцены.

Doom же, как известно, использует псевдотрёхмерный движок, который рендерит карту методом raycasting. На ПК это работало благодаря тому, что процессор Intel 486 мог быстро обращаться к памяти и выполнять целочисленные операции. Neo Geo же — это не ПК. У неё нет гибкой видеопамяти, а доступ к спрайтам и тайлам жёстко регламентирован.

Как это сделали: технический разбор

Автор статьи на Habr рассказывает, что команда разработчиков столкнулась с несколькими ключевыми проблемами:

  1. Ограниченная палитра. Neo Geo использует 16-цветные палитры на спрайт. Doom требует 256 цветов для текстур. Решение: преобразование текстур в формат с индексированными цветами, где каждый фрейм использует собственную палитру.

  2. Отсутствие буфера кадра. Консоль не умеет рендерить изображение в память и выводить его на экран. Разработчики использовали трюк с переключением банков видеопамяти, создавая видимость сглаженного изображения.

  3. Производительность. Даже при разгоне процессора (в домашних версиях MVS) 12 МГц — это очень мало. Для сравнения, оригинальный Doom на 386-м процессоре шёл с частотой кадров около 10 FPS. На Neo Geo удалось добиться примерно 5-7 FPS при разрешении 320x200.

В материале подробно описывается, как команда применила техники ассемблерной оптимизации, переписывая критически важные функции движка на языке ассемблера M68000. Это позволило ускорить рендеринг стен и объектов на 40% по сравнению с наивным C-кодом.

Практические результаты и демонстрация

Что же мы видим в итоге? Это не полноценный Doom с уровнем «E1M1» в его классическом виде. На данный момент порт включает:

  • Один уровень (первый уровень первого эпизода).
  • Базовый рендеринг стен и пола.
  • Поддержка спрайтов врагов (импы и солдаты).
  • Управление с джойстика (движение, стрельба, открытие дверей).
  • Звук — только базовые эффекты, так как звуковой чип Yamaha YM2610 сложно использовать для воспроизведения цифрового звука Doom.

Авторы статьи отмечают, что порт работает на реальном оборудовании SNK Neo Geo AES (домашняя версия) и MVS (аркадная версия). Это не эмуляция и не симуляция — код выполняется на оригинальных чипах. Видеоролики, прикреплённые к статье, показывают, что игра действительно запускается и в неё можно играть, хотя и с заметными тормозами.

Почему это важно для индустрии?

Портирование Doom на Neo Geo — это не просто хобби. Это наглядная демонстрация того, как глубокое понимание архитектуры железа позволяет преодолевать, казалось бы, непреодолимые ограничения. Для современных разработчиков, которые привыкли к абстракциям высокоуровневых языков и фреймворков, такие проекты — напоминание о том, что производительность часто упирается не в «сырую» мощность, а в умение эффективно использовать ресурсы.

Кроме того, это отличный пример реверс-инжиниринга. Команда разработчиков потратила многие часы на изучение документации Neo Geo, дампов BIOS и даташитов чипов. Такой опыт бесценен для тех, кто занимается эмуляцией или разработкой под старые платформы.

Как это связано с современными технологиями?

На первый взгляд, порт на 30-летнюю консоль не имеет отношения к современной веб-разработке или AI. Но это не так. Принципы, использованные в этом проекте:

  • Профилирование и оптимизация. Те же техники применяются при разработке высоконагруженных веб-сервисов и игр на Unity/Unreal.
  • Работа с ограниченной памятью. Это актуально для встраиваемых систем, IoT-устройств и мобильных платформ.
  • Кросс-платформенность. Умение портировать код на разные архитектуры — ключевой навык.

Если вы интересуетесь автоматизацией или интеграцией различных систем, то понимание того, как работает низкоуровневая оптимизация, может пригодиться при настройке API или работе с большими данными.

Заключение

Doom на Neo Geo — это не просто курьёз. Это техническое достижение, которое показывает, что даже самые старые и, казалось бы, бесполезные устройства можно заставить делать то, для чего они не предназначены. Проект вдохновляет на изучение старого железа и напоминает, что ограничения — это не приговор, а вызов.

Для тех, кто хочет глубже погрузиться в технические детали, рекомендую прочитать оригинальную статью на Habr. Там есть схемы, код и подробные объяснения каждого шага. А если вы сами увлекаетесь ретрокомпьютингом — попробуйте повторить этот эксперимент. Кто знает, может быть, следующим будет порт Doom на Game Boy?

Источник

← Все статьи

Комментарии

Читайте также

9 разрывов между прототипом, созданным через Vibe Coding, и продакшеном: данные утечек 2026 года

17 июля 2026

10 промтов для RAG-систем: индексация, поиск, генерация

17 июля 2026

Как я освоил моушн-дизайн и анимацию логотипа с AI: обзор курса Animation & Motion Design на Asibiont

17 июля 2026

Как подключить Magento к AI-агенту ASI Biont: бескодовая интеграция API для автоматизации электронной коммерции

17 июля 2026

Треть запросов ChatGPT к поиску — повторы: почему одних экспертов цитируют всегда, а других — через раз

17 июля 2026

Треть запросов ChatGPT к поиску — повторы: анализ 591 ответа и мифы о цитировании

17 июля 2026

Почему платформы Low-Code / No-Code — это будущее автоматизации бизнеса (гид 2026 года)

17 июля 2026

Как управлять несколькими проектами с Vibe Coding без хаоса: пошаговый гайд

17 июля 2026

Full-Stack AI Engineer в 2026: Как стать востребованным специалистом и построить карьеру в AI-разработке

17 июля 2026