Поиск по сайту:

Как собрать 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" для получения игровых активов: вы должны использовать его только в том случае, если вы можете получить его легально.

Статьи по данной тематике: