Docker provides a self-contained build environment based on Ubuntu 18.04 with all required dependencies pre-installed. This is useful when you want to avoid installing a MIPS toolchain natively, or when your Linux distribution does not package a compatible version ofDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/n64decomp/sm64/llms.txt
Use this file to discover all available pages before exploring further.
binutils-mips.
The Dockerfile at the root of the repository defines this image. No dependencies beyond Docker itself are required on the host machine.
Prerequisites
Install and start Docker for your platform before proceeding.Build the Docker image
From the root of the clonedsm64 repository, build the image. This step only needs to be performed once (or again if the Dockerfile changes):
sm64 based on Ubuntu 18.04 with binutils-mips-linux-gnu, build-essential, git, pkgconf, and python3 pre-installed.
Place the baserom
Before running the container, copy your original SM64 ROM into the repository directory with the correct version suffix:Run the build
The container requires the repository to be mounted into/sm64 inside the container. Use the --mount flag to bind the current directory:
The --user flag on Linux
On Linux hosts, the Docker daemon runs as root. Without --user, all files written by the container — including the output ROM — will be owned by root, making them difficult to work with as a normal user.
Passing --user $UID:$GID instructs the container to run as your current user and group, so the output files are owned by you.
macOS handles file ownership differently through Docker Desktop’s filesystem virtualization, so
--user is not required there.Build flags
You can pass anymake variable directly to the container. For example:
Output
All build artifacts are written to thebuild/ directory inside your local repository checkout. The final ROM is located at: