Необычные порты: как культовые игры запускают на нестандартных платформах

Хотя ретро-консоли и старые мобильные телефоны давно стали частью истории, энтузиасты находят всё новые способы подарить им вторую жизнь. Вооружившись открытыми исходными кодами, методами реверс-инжиниринга и собственными наработками, умельцы запускают на девайсах двадцатилетней давности тайтлы, о которых те в своё время даже не мечтали.
В этом материале мы рассмотрим яркие примеры того, как программисты-одиночки и фанатские сообщества возрождают архаичные платформы. В центре внимания окажутся перенос шутера в стиле Counter-Stride на легендарную PSP, адаптация Half-Life для кнопочной Nokia N95 и портирование Plants vs. Zombies на PlayStation 2. Кроме того, мы затронем триумфальное возвращение классики вроде Silent Hill и Castlevania: Symphony of the Night, изучим технические хитрости разработчиков и попытаемся понять, почему подобные инициативы вызывают столь бурный интерес.
Как Counter-Strike покорил PSP
Портативная консоль от Sony появилась на рынке более двух десятилетий назад. Ее «начинка» по современным меркам выглядит скромно: 333-мегагерцовый процессор, 32 МБ оперативной памяти, скромное разрешение 480х272 и полное отсутствие поддержки пиксельных шейдеров. Казалось бы, о запуске полноценного командного шутера с искусственным интеллектом не может быть и речи. Тем не менее разработчик под ником doodlestrike, создатель проекта OpenStrike, решил бросить вызов железу. Вместо того чтобы пытаться запустить игру через тяжелые эмуляторы или адаптировать готовые громоздкие движки, он написал с нуля собственный — Pocket3D на языке Rust, дополнив его средой PocketJS для обработки логики и интерфейса. В результате на реальном «железе» игра выдает стабильные 60 кадров в секунду.

Оригинальные карты из CS нельзя было просто так перенести на PSP — потребовалась глубокая оптимизация для снижения нагрузки на систему. В частности, все расчеты освещения производились заранее и «вшивались» прямо в цвета вершин геометрии. Это избавило процессор от необходимости вычислять динамические тени в реальном времени. Избыточные полигоны и детали, с обработкой которых портативная консоль попросту не справилась, были безжалостно удалены или упрощены.
Благодаря столь тонкой настройке боты уверенно ориентируются в пространстве по навигационной сетке, находят укрытия и ведут перестрелки, а весь проект потребляет около 12 МБ ОЗУ — менее половины лимита оригинальной PSP. На текущий момент в игре пока нет полноценного магазина снаряжения и сетевого режима, но динамичные раунды на выбывание функционируют безупречно. Важно отметить, что движок распространяется отдельно от игровых ассетов, поэтому для запуска пользователю нужно самостоятельно подгрузить оригинальные ресурсы из Counter-Strike.
Примечательно, что получившийся движок кроссплатформенный: код практически без изменений функционирует на PS Vita, персональных компьютерах и в эмуляторе PPSSPP. Добиться этого удалось за счет строгой изоляции графического ядра, системы ввода и работы с файлами. Тем не менее базовым ориентиром неизменно остается классическая PSP — все ключевые структуры данных и алгоритмы распределения памяти изначально затачивались под ее скромные возможности.

На данный момент библиотека проекта насчитывает восемь карт, а открытый JavaScript API позволяет энтузиастам создавать кастомные модификации, правила и режимы. В итоге OpenStrike превратился не просто в технический эксперимент, а в полноценную экосистему для творчества.
Half-Life на Nokia N95
Выпущенная в 2007 году Nokia N95 заслуженно считалась вершиной мобильной инженерии своего времени. Инновационный двусторонний слайдер открывал доступ либо к цифровой клавиатуре, либо к мультимедийным клавишам. Флагман мог похвастаться оптикой Carl Zeiss в камере на 5 мегапикселей, модулями Wi-Fi, GPS и поддержкой 3G-сетей. В основе устройства лежал чипсет Texas Instruments OMAP 2420 (около 332 МГц), а топовые модификации обладали 128 МБ оперативной памяти.
Спустя почти два десятка лет энтузиасты сумели запустить на этом смартфоне культовый Half-Life. Системные требования ПК-оригинала 1998 года выглядели скромно: процессор Pentium 133 МГц и 24 МБ памяти. Однако на практике портирование оказалось колоссальной задачей: игра писалась под x86-архитектуру персональных компьютеров, тогда как финский смартфон работает на процессоре ARM под управлением Symbian OS. Тем не менее аргентинский разработчик Данте Леонсини, известный своими экспериментами по переносу ресурсоемких приложений на классические смартфоны Nokia, продемонстрировал стабильные 30 кадров в секунду в игре на N95.

Фундаментом для проекта послужил проверенный временем открытый движок Xash3D. Правда, для адаптации под Symbian код пришлось переписать: оптимизировать пайплайн загрузки ассетов и переработать рендеринг графики. В несложных локациях кадровая частота уверенно держится на отметке 30 FPS, проседая до 18–20 кадров лишь в самых масштабных батальных сценах. Автор продолжает устранять узкие места в коде. Управлять можно как со встроенного навигационного блока телефона, так и с помощью подключенной по Bluetooth периферии.
Для Леонсини это далеко не первый триумф: ранее он уже портировал на Nokia N95 Quake 3, эмуляторы игровых консолей NES и Sega, а также создал облегченный аналог пакета Blender. Выход Half-Life стал логичным продолжением его увлечения. Важнейшая особенность этого релиза — это нативный ARM-порт, а не результат работы эмулятора. Отсутствие прослойки виртуализации позволяет процессору расходовать ресурсы максимально эффективно.
Plants vs. Zombies на PlayStation 2
Обладая всего 32 мегабайтами оперативной памяти, PlayStation 2 изначально не рассматривалась как подходящая платформа для аркадной стратегии Plants vs. Zombies. Релиз 2009 года создавался с расчетом на более производительные системы, поэтому вписать проект в жесткие рамки Emotion Engine казалось безумием. Тем не менее разработчик под псевдонимом OptiProjects воплотил эту задумку в жизнь, радикально переработав исходники и ужав графические текстуры.
Главным препятствием закономерно стал дефицит памяти. Автор внедрил систему динамической подгрузки ассетов: ресурсы выгружаются и загружаются по мере необходимости, не забивая оперативную память целиком. Графический контент был адаптирован под специфику видеочипа консоли для ускорения рендеринга. Хотя звуковое сопровождение и система сохранений пока функционируют с перебоями, базовый геймплей с высаживанием растений и отражением волн мертвяков работает исправно. Управлять процессом с геймпада удобно как на эмуляторе, так и на оригинальной «соньке».

По сути, энтузиаст переписал ключевые подсистемы игры под аппаратные ограничения PS2. Комьюнити уже активно тестирует сборку, отправляя автору баг-репорты. Безусловно, ради производительности пришлось пожертвовать качеством графики по сравнению с портами для Xbox 360 или PS3, но сам факт успешного запуска игры на консоли шестого поколения заслуживает уважения.
И это далеко не предел

Подобные инициативы набирают популярность в сообществе ретрогеймеров. Одним из самых громких событий последнего времени стал выпуск первого нативного порта оригинальной Silent Hill для ПК. Хоррор 1999 года долгие годы был заперт в рамках первой PlayStation и запускался на компьютерах исключительно через эмуляторы. Ключевым достижением стала полная декомпиляция исходного кода. Теперь пользователи могут пройти проект от титров до титров в высоком разрешении, с поддержкой широкоформатных мониторов и разблокированным фреймрейтом. Работа над полировкой движка и устранением багов продолжается по сей день.
Параллельно ведутся не менее впечатляющие работы над Castlevania: Symphony of the Night. Благодаря проекту NocturneRecomp версию культовой метроидвании для Xbox 360 удалось превратить в самостоятельное приложение для операционных систем Windows и Linux.
Вместо эмуляции PowerPC-инструкций инструмент на этапе сборки транслирует бинарный код в машинные инструкции x86-64. Это позволяет игре выполняться непосредственно на центральном процессоре компьютера без прослойки эмулятора, что не только гарантирует высокую производительность, но и открывает простор для моддинга и портирования на сторонние устройства.

Кроме того, энтузиасты занимаются декомпиляцией оригинального релиза для PlayStation, что в обозримом будущем позволит создавать новые качественные нативные сборки.
Все эти проекты объединяет общая философия: вместо запуска старых игр через эмуляторы разработчики стремятся заставить их работать «напрямую» — будь то современное железо или, напротив, давно забытые архаичные платформы. И хотя этот путь требует титанических усилий, результат оправдывает себя, ведь на выходе получаются долговечные порты, готовые к дальнейшему развитию силами энтузиастов.
Цены на видеокарты GeForce RTX 5060 в Китае подскочили на 16% за несколько дней
В США одобрили испытания реактора Texatron, приближающего создание искусственного Солнца
Роскосмос сохранит Байконур: в планах запуска девять ракет «Протон-М»
Meta* выходит из RE100 спустя 10 лет: газовая энергетика для ИИ победила возобновляемую
Китай заявил о прорыве в нейроинтерфейсах: ученые впервые синхронно собрали ЭЭГ у тысяч людей
Мощный мини-ПК Acemagic F9A: 16-ядерный Ryzen AI Max+ 395, до 128 ГБ ОЗУ, RGB и кнопка Copilot
Домашнее облако на старом Jetson Nano: Nextcloud, Immich, CGNAT и три сбоя USB
Илон Маск готовится поймать огромный корабль Starship прямо в воздухе уже в августе