Как собрать Super Mario 64 на Linux
Super Mario не нуждается в презентациях: это один из самых любимых персонажей видеоигр. Super Mario 64 была первоначально выпущена для консоли Nintendo64 в 1996 году и представляла собой первый 3D-эпизод франшизы Mario. Благодаря проекту github, который добился полной декомпиляции игры, теперь стало возможным собрать родной порт Linux и играть в него без необходимости использования эмулятора Nintendo64. Для того, чтобы скомпилировать порт, необходим оригинальный, и легально полученный ".z64" ром игры.
В этом руководстве мы увидим, как скомпилировать и запустить порт Super Mario 64 Linux на некоторых из наиболее часто используемых дистрибутивов.
В этом уроке вы узнаете:
- Как установить программное обеспечение, необходимое для компиляции Super Mario 64 на наиболее часто используемые дистрибутивы Linux
- Как собрать и запустить порт
Установка зависимостей сборки
Первое, что нам нужно сделать для сборки порта Super Mario 64 для Linux, это установить сборочные зависимости. Пакеты, которые нам нужно установить, различаются в зависимости от используемого дистрибутива. В Fedora мы можем установить зависимости, выполнив следующую команду:
sudo dnf install git \
libXrandr-devel \
alsa-lib-devel \
pulseaudio-libs-devel \
python3 \
make \
gcc \
g++ \
libusb-devel \
SDL2-devel \
util-linux
В Ubuntu вместо этого мы можем использовать apt-get
для получения необходимого программного обеспечения:
sudo apt-get update && sudo apt-get install git \
build-essential \
libusb-1.0-0-dev \
libsdl2-dev \
libc6-dev \
bsdmainutils \
python3
Чтобы собрать игру на Archlinux, мы должны установить следующие пакеты с pacman
:
sudo pacman -Sy git \
base-devel \
python3 \
sdl2 \
xorg-xrandr \
alsa-lib \
pulseaudio
Клонирование репозитория
После установки необходимых зависимостей мы можем клонировать репозиторий github, в котором размещен код. Приведенная ниже команда клонирует удаленный репозиторий внутри каталога sm64-port
:
git clone https://github.com/sm64-port/sm64-port
Теперь нам нужно переместить легально полученный ром ".z64" Super Mario 64 в каталог репозитория, переименовав его в baserom.{ version}.z64
, где "{version}" - это региональная версия игры: "us", "eu" или "jp". Здесь мы предполагаем, что версия rom "us" находится в нашем каталоге HOME:
mv ~/SuperMario64.z64 sm64-port/baserom.us.z64
Сборка игры
В качестве следующего шага мы перемещаемся внутрь каталога репозитория и начинаем сборку игры с помощью make
, опционально предоставив опцию -j
, которую можно использовать для указания количества заданий, которые должны выполняться одновременно:
cd sm64-port && make -j4
Как только мы запустим команду, процесс сборки должен начаться, просто дождитесь его окончания:
==== Build Options ====
Version: us
Microcode: f3dex2e
Target: sm64.us
Compare ROM: no
Build Matching: no
=======================
Building tools...
Building ROM...
Preprocessing level make rules: levels/level_rules.mk -> build/us_pc/level_rules.mk
==== Build Options ====
Version: us
Microcode: f3dex2e
Target: sm64.us
Compare ROM: no
Build Matching: no
=======================
Building tools...
Building ROM...
Если процесс завершается без ошибок, мы должны найти исполняемый файл игры, созданный в директории build/{version}_pc
внутри репозитория. В этом случае для его запуска мы можем просто выполнить:
./build/us_pc/sm64.us
Если все пойдет так, как ожидалось, мы должны увидеть игру во всей ее красе:
Выводы
В этом руководстве мы рассмотрели, как создать нативный порт Super Mario 64 на Linux: мы увидели, как установить необходимые зависимости, как клонировать репозиторий, в котором размещен код, и как на самом деле выполнить сборку. Процесс сборки, описанный в этой статье, требует наличия существующего рома Super Mario 64 ".z64" для получения игровых активов: вы должны использовать его только в том случае, если вы можете получить его легально.