BUILDING.md
This guide will help you build the project on your local machine. The process will require you to provide a decompressed ROM of the US version of the game.
These steps cover: decompressing the ROM, running the recompiler and finally building the project.
This project makes use of submodules so you will need to clone the repository with the --recurse-submodules flag.
git clone --recurse-submodules
# if you forgot to clone with --recurse-submodules
# cd /path/to/cloned/repo && git submodule update --init --recursive
For Linux the instructions for Ubuntu are provided, but you can find the equivalent packages for your preferred distro.
# For Ubuntu, simply run:
sudo apt-get install cmake ninja-build libsdl2-dev libgtk-3-dev lld llvm clang
You will need to install Visual Studio 2022. In the setup process you'll need to select the following options and tools for installation:
The other tool necessary will be make which can be installe via Chocolatey:
choco install make
You will need to decompress the NTSC-U N64 Majora's Mask ROM (sha1: d6133ace5afaa0882cf214cf88daba39e266c078) before running the recompiler.
There are a few tools that can do it:
Regardless of which method you use, copy the decompressed ROM to the root of the Zelda64Recomp repository with this filename:
mm.us.rev1.rom_uncompressed.z64Now that you have the required files, you must build N64Recomp and run it to generate the C code to be compiled. The building instructions can be found here. That will build the executables: N64Recomp and RSPRecomp which you should copy to the root of the Zelda64Recomp repository.
After that, go back to the repository root, and run the following commands:
./N64Recomp us.rev1.toml
./RSPRecomp aspMain.us.rev1.toml
./RSPRecomp njpgdspMain.us.rev1.toml
Finally, you can build the project! :rocket:
On Windows, you can open the repository folder with Visual Studio, and you'll be able to [build / run / debug] the project from there.
If you prefer the command line or you're on a Unix platform you can build the project using CMake:
cmake -S . -B build-cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -G Ninja -DCMAKE_BUILD_TYPE=Release # or Debug if you want to debug
cmake --build build-cmake --target Zelda64Recompiled -j$(nproc) --config Release # or Debug
Voilà! You should now have a Zelda64Recompiled executable in the build directory! If you used Visual Studio this will be out/build/x64-[Configuration] and if you used the provided CMake commands then this will be build-cmake. You will need to run the executable out of the root folder of this project or copy the assets folder to the build folder to run it.
[!IMPORTANT] In the game itself, you should be using a standard ROM, not the decompressed one.