Starship — как энтузиасты перенесли Star Fox 64 на современные ПК
Помните те времена, когда для запуска классики с Nintendo 64 приходилось возиться с капризными эмуляторами, настраивать плагины графики и мириться с инпут-лагом? Кажется, эта эпоха постепенно уходит. Сообщество HarbourMasters, которое уже прославилось качественным портом Zelda: Ocarina of Time, добралось до еще одной легенды — Star Fox 64. Проект получил кодовое название Starship.
Это не эмуляция. Перед нами полноценный нативный порт, созданный на основе обратной разработки (декомпиляции) оригинального кода. Для рядового разработчика это означает, что игра теперь работает как обычное приложение для Windows, Linux или macOS, используя все преимущества современного железа.
Зачем это нужно, если есть эмуляторы
Эмуляторы имитируют железо консоли, что всегда создает накладные расходы и специфические баги. Нативный порт Starship идет другим путем: он берет логику оригинальной игры и заставляет ее общаться напрямую с современными API вроде DirectX 11, OpenGL или Metal.
В итоге мы получаем:
- Поддержку широкоформатных мониторов без растягивания картинки.
- Стабильную частоту кадров и возможность интерполяции (игра выглядит плавнее, чем оригинал на 20 FPS).
- Нативную поддержку современных геймпадов и клавиатуры.
- Возможность легко модифицировать ресурсы игры.
Как это работает внутри
Проект базируется на библиотеке libultraship. Это своего рода прослойка, которая переводит вызовы функций Nintendo 64 на язык современных систем. Интересно, что авторы Starship не распространяют саму игру — это было бы прямым нарушением авторских прав. Вместо этого они предоставляют инструменты для извлечения ассетов из вашего собственного дампа ROM-файла.
Процесс выглядит так: вы берете легальную копию игры (поддерживаются версии US 1.0 и 1.1), скармливаете ее приложению, и оно генерирует файлы формата .o2r или .otr. Это архивы с ресурсами, которые Starship понимает и умеет отрисовывать.
Кстати, разработчики предусмотрели даже замену озвучки. Можно взять английскую версию игры как базу, но подтянуть голоса из европейского или японского релизов.
Технические особенности и графика
Starship поддерживает несколько графических бэкендов. По умолчанию в Windows используется DirectX 11, на macOS — Metal, а для Linux и старых систем доступен OpenGL. Если что-то идет не так, настройки можно поправить вручную в конфиге starship.cfg.json.
Интересная деталь для тех, кто любит копаться в коде: в проекте реализована улучшенная система отрисовки звездного неба. Оригинальное «звездное поле» N64 было довольно примитивным, а здесь его адаптировали под любое разрешение и частоту кадров. За это отвечают отдельные контрибьюторы, чьи имена бережно перечислены в репозитории.
Как запустить и пощупать
Если у вас есть файл игры в формате .z64, запуск не займет больше пяти минут.
- Скачиваете релиз под свою ОС.
- Распаковываете архив.
- Запускаете исполняемый файл и указываете путь к ROM.
- Программа сама соберет нужные архивы и запустит игру.
Для любителей портативного гейминга есть версия под Nintendo Switch (Homebrew). Правда, для сборки ресурсов все равно понадобится ПК, чтобы создать файл sf64.o2r, который потом нужно закинуть на карту памяти консоли.
Управление по умолчанию
Клавиатурная раскладка вполне стандартная для таких портов:
- WASD — аналоговый стик.
- X / C — кнопки A и B.
- Space — Start.
- Стрелки — кнопки C.
Если захочется скрыть меню или сбросить игру, есть горячие клавиши: F1 для меню и F4 для ресета.
Стоит ли в это лезть
Starship — отличный пример того, как декомпиляция старого софта дает ему вторую жизнь. Проект открыт для контрибьюторов: если вы знакомы с C и интересуетесь тем, как работала графика на стыке веков, в репозитории есть на что посмотреть.
Конечно, README пока выглядит немного аскетично (там даже висят тудушки по созданию скриншотов для светлой и темной тем), но сам код живой и активно обновляется. Это не просто способ поиграть в классику, а полноценная платформа для моддинга и изучения архитектуры игр конца девяностых.
Если вы разработчик и скучаете по «чистому» коду без лишних абстракций, или просто хотите посмотреть, как современные API переваривают логику 27-летней давности — загляните в Starship. Это как минимум любопытно.
