如何在 Linux 上原生构建 Super Mario 64
超级马里奥不需要任何介绍:它是最受欢迎的视频游戏角色之一。 《超级马里奥 64》最初于 1996 年在 Nintendo64 游戏机上发布,代表了《马里奥》系列的第一部 3D 剧集。感谢 github 项目实现了游戏的完全反编译,现在可以构建本机 Linux 端口并无需 Nintendo64 模拟器即可玩它。为了编译移植,需要一个原始的、合法获得的游戏“.z64”rom。
在本教程中,我们将了解如何在一些最常用的发行版上编译和启动 Super Mario 64 Linux 端口。
在本教程中您将学习:
如何在最常用的 Linux 发行版上安装编译 Super Mario 64 所需的软件
如何构建和启动端口
安装构建依赖项
为了构建 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
现在我们需要将合法获得的《超级马里奥 64》的“.z64”rom移到repo目录中,重命名为baserom.{version}.z64
,其中“{version}”是地区版本游戏:“us”、“eu”或“jp”。这里我们假设“us”版本的 rom 位于我们的 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
如果一切按预期进行,我们应该会看到这款游戏的全部辉煌:
结论
在本教程中,我们了解了如何在 Linux 上构建 Super Mario 64 的本机端口:我们了解了如何安装所需的依赖项、如何克隆托管代码的存储库以及如何实际执行构建。本文中描述的构建过程需要现有的“.z64”超级马里奥 64 ROM 来检索游戏资源:只有在能够合法获取的情况下才应使用它。