Decompilation of The Legend of Zelda: Majora's Mask
Go to file
2020-02-17 00:54:37 -06:00
include Decompile irqmgr 2020-01-22 21:47:05 -06:00
linker_scripts Splits out z_scene for decompilation. 2020-01-23 22:24:02 -05:00
src Fix nonmatching location in z_scene stub 2020-01-25 00:23:32 -06:00
tables Splits out z_scene for decompilation. 2020-01-23 22:24:02 -05:00
tools Update asm-preprocessor 2020-02-17 00:52:18 -06:00
.gitattributes Maybe fix line ending issue when cloning on Windows 2020-02-17 00:54:37 -06:00
.gitignore Add README.md. Minor makefile cleanup. 2019-12-15 23:06:39 -06:00
.gitmodules Add asm-processor submodule 2018-11-11 16:44:24 -06:00
asmdiff.sh Fix various errors in README 2020-01-25 00:22:56 -06:00
checksum.md5 Add dmadata vrom symbols. Link rom in two passes: first to generate dmadata, second to apply dmadata symbols. Clean up symbols at low addresses. 2019-11-16 03:28:05 -06:00
Makefile Fix various errors in README 2020-01-25 00:22:56 -06:00
README.md Fix various errors in README 2020-01-25 00:22:56 -06:00
requirements.txt Add missing python requirement 2020-01-23 18:24:11 -06:00
textures.csv Dump current status 2018-10-25 22:09:52 -05:00
undef.txt Port a bunch of libultra files from sm64 2020-01-20 23:27:02 -06:00

Legend of Zelda: Majora's Mask (U) 1.0

This is a decompilation of Legend of Zelda: Majora's Mask (U) 1.0

It builds the following ROM:

  • rom.z64 md5: 2a0a8acb61538235bc1094d297fb6556

Installation

Step 1:

If you're running Windows 10, install WSL. If you're running an older version of Windows, install a Linux VM. If you're already running a Linux OS, you're good to go.

Step 2:

Install the following packages:

make
git
binutils-mips-linux-gnu
python3
pip3

For your convience, you can copy the following:

sudo apt-get update
sudo apt-get install make
sudo apt-get install git
sudo apt-get install binutils-mips-linux-gnu
sudo apt-get install python3
sudo apt-get install python3-pip

Step 3:

Download build_tools.zip from the Releases section and extract it to the tools folder. This contains the compilers the decompilation uses, as well as a modified version of Qemu to emulate them on a modern Linux system. The compilers must go into the tools folder. Qemu may be placed wherever you like.

Step 4:

Open up your .bashrc file (~/.bashrc), scroll to the bottom, and add the following, replacing /path/to/qemu-mips with the location the qemu-mips you extracted from the build tools:

export QEMU_IRIX="/path/to/qemu-mips"
export MIPS_BINUTILS_PREFIX=mips-linux-gnu-

Save and close/reopen your terminal window.

Step 5:

Make a fork of the main repository https://github.com/n64decomp/majora.git and clone your fork.

Step 6:

Navigate to the folder you just cloned. Type the following commands:

git submodule update --init --recursive
pip3 install -r requirements.txt

Step 7:

You will need to acquire a copy of the ROM. The md5 of this ROM should be 2a0a8acb61538235bc1094d297fb6556.

Once this has been done, type, replacing <ROM> with the name of your ROM:

./tools/extract_rom.py <ROM>

This will extract all the individual files in the ROM into a newly created baserom folder, as well as decompress the compressed files in a newly created decomp folder.

Next, type:

make disasm

This will create the build folders as well as a newly created asm folder containing the disassemblies of nearly all the files containing code.

Step 8:

Type the following:

make

If all goes well, a ROM rom.z64 should be built and the following text should be printed:

rom.z64: OK

If you instead see the following:

rom.z64: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

This means that something is wrong with the ROM's contents. Either the baserom files are incorrect due to a bad ROM, or some piece of code is not matching.