Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Project516/sm64dx/llms.txt

Use this file to discover all available pages before exploring further.

sm64dx is a personal fork of the community-driven Super Mario 64 decompilation project. It provides byte-for-byte matching C source code for all five major ROM versions — Japan (JP), North America (US), Europe (EU), Shindou (SH), and iQue Player (CN) — along with build tooling, documented data structures, enhancement patches, and developer utilities for assembly diffing.

Quickstart

Set up your build environment and compile your first ROM in minutes.

Build Options

Explore every Makefile variable: VERSION, COMPILER, GRUCODE, and more.

Codebase Guide

Understand the directory layout, subsystems, and key data structures.

Enhancements

Apply optional patches for crash screens, FPS counters, and debug tools.

What makes sm64dx different

This fork tracks the upstream n64decomp/sm64 decompilation and applies additional labeling, documentation, and quality-of-life tooling improvements. All five regional ROM versions build to their exact original SHA-1 checksums when compiled with the IDO compiler.

Building on Linux

Full dependency and build instructions for Debian, Ubuntu, and Arch.

Building on macOS

Homebrew and Docker-based setup for macOS developers.

Building on Windows

WSL setup guide for building under Windows 10 and 11.

Docker Build

Containerized build environment — no local toolchain required.

ROM versions supported

VersionRegionNotes
jpJapan (1996)First release; compiled with -g optimization
usNorth America (1996)Most common version for modding
euEurope (1997)PAL; compiled with -O2
shShindou (1997)Japanese re-release with Rumble Pak support
cniQue Player (2003)Chinese market; includes iQue-specific platform detection
You must own a legal copy of Super Mario 64. Place your ROM as baserom.<VERSION>.z64 in the project root before running make.

Key subsystems

Mario's action system

How Mario’s state machine drives movement, airborne, and submerged actions.

Object behaviors

The behavior scripting system powering every enemy and interactive object.

Game engine

Surface collision, geometry layout, level scripting, and rendering graph.

Audio system

RSP microcode, sequence player, synthesis pipeline, and bank loading.

Build docs developers (and LLMs) love