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

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

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

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

По сути, автор не просто оптимизировал игру, а переделал отдельные подсистемы специально под ограничения PS2. Сообщество уже тестирует сборку и присылает отчеты о вылетах, а разработчик продолжает улучшать производительность. По сравнению с официальными версиями для PS3 и Xbox 360 пришлось заметно пожертвовать графикой, но сам факт того, что Plants vs. Zombies удалось запустить на PlayStation 2, уже дорогого стоит.
И это не всё

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

Параллельно развивается декомпиляция оригинальной версии для PlayStation, которая в перспективе должна открыть еще больше возможностей для создания нативных портов.
Все эти проекты объединяет одна идея: вместо того чтобы запускать винтажные игры через эмулятор, разработчики стараются заставить их работать напрямую на новом или, наоборот, неожиданно устаревшем железе. Все это гораздо сложнее, но результат стоит того. Это полноценные порты, которые можно дальше оптимизировать, переносить на другие платформы и развивать силами сообщества.
Lev3250
А разве в оригинальном кс было динамическое освещение, а не запечёные текстуры?
Wosk1947
Не было, мне тоже этот абзац глаз резанул. В gold-source играх освещение всегда было запеченным, тут автор какую-то ахинею несет.