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.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.
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
| Version | Region | Notes |
|---|---|---|
jp | Japan (1996) | First release; compiled with -g optimization |
us | North America (1996) | Most common version for modding |
eu | Europe (1997) | PAL; compiled with -O2 |
sh | Shindou (1997) | Japanese re-release with Rumble Pak support |
cn | iQue 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.