A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
Go to file
2019-08-24 22:47:13 -04:00
actors init 2019-08-24 22:26:05 -04:00
asm init 2019-08-24 22:26:05 -04:00
assets init 2019-08-24 22:26:05 -04:00
bin init 2019-08-24 22:26:05 -04:00
data init 2019-08-24 22:26:05 -04:00
doxygen init 2019-08-24 22:26:05 -04:00
enhancements init 2019-08-24 22:26:05 -04:00
include init 2019-08-24 22:26:05 -04:00
levels init 2019-08-24 22:26:05 -04:00
lib init 2019-08-24 22:26:05 -04:00
sound init 2019-08-24 22:26:05 -04:00
src init 2019-08-24 22:26:05 -04:00
text init 2019-08-24 22:26:05 -04:00
tools init 2019-08-24 22:26:05 -04:00
.clang-format init 2019-08-24 22:26:05 -04:00
.gitignore init 2019-08-24 22:26:05 -04:00
asmdiff.jp.sh init 2019-08-24 22:26:05 -04:00
asmdiff.us.sh init 2019-08-24 22:26:05 -04:00
assets.json init 2019-08-24 22:26:05 -04:00
charmap.txt init 2019-08-24 22:26:05 -04:00
diff-settings.sh init 2019-08-24 22:26:05 -04:00
diff.sh init 2019-08-24 22:26:05 -04:00
Doxyfile init 2019-08-24 22:26:05 -04:00
extract_assets.py init 2019-08-24 22:26:05 -04:00
first-diff.py init 2019-08-24 22:26:05 -04:00
format.sh init 2019-08-24 22:26:05 -04:00
Jenkinsfile init 2019-08-24 22:26:05 -04:00
Makefile init 2019-08-24 22:26:05 -04:00
Makefile.split init 2019-08-24 22:26:05 -04:00
README.md Update README.md 2019-08-24 22:47:13 -04:00
rename_sym.sh init 2019-08-24 22:26:05 -04:00
sm64.eu.sha1 init 2019-08-24 22:26:05 -04:00
sm64.jp.sha1 init 2019-08-24 22:26:05 -04:00
sm64.ld init 2019-08-24 22:26:05 -04:00
sm64.us.sha1 init 2019-08-24 22:26:05 -04:00
undefined_syms.txt init 2019-08-24 22:26:05 -04:00

Super Mario 64

This is a decompilation of Super Mario 64.

It builds the following ROMs:

  • sm64.jp.z64 sha1: 8a20a5c83d6ceb0f0506cfc9fa20d8f438cafe51
  • sm64.us.z64 sha1: 9bef1128717f958171a4afac3ed78ee2bb4e86ce

This repo does not include all assets necessary for compiling the ROMs. A prior copy of the game is required.

Official discord: https://discord.gg/27JtCWs

Installation

Linux

  1. For each version (jp/us/eu) that you want to build a ROM for, put an existing ROM at baserom.<version>.z64. This will be used for asset extraction.

  2. Install the following packages:

  • make
  • git
  • binutils-mips-linux-gnu / mips64-elf (>= 2.27)
  • python3 (>= 3.7)
  • build-essential
  • pkg-config
  • zlib1g-dev
  • libaudiofile-dev
  1. Clone https://github.com/camthesaxman/qemu-irix to somewhere and follow its install instructions in the README.

    3b. Optionally, grab the prebuilt qemu-irix from the Releases section.

  2. Take the executable qemu-irix in irix-linux-user and put it somewhere where you will define an environment variable to it.

  3. Define QEMU_IRIX in your bashrc to point to this qemu-irix executable.

  4. After setting this repository up, run make to build the ROM. Make sure your path is not too long or else this process will error, as the emulated IDO compiler cannot handle paths longer than 255 characters.

Windows

For Windows, install WSL and a distro of your choice (preferably a modern version of Ubuntu) and follow the Linux guide.