Ocarina of Time: Randomizer Development

Ocarina of Time Randomizer is a rom hack of regular Ocarina of Time, which involves utilizing a combination of C and Python to place items randomly throughout the world. The main repository being used for development is managed by TestRunner.


The project is split into two unique parts: the C code and the Python code.

Compiling Assembly and C on macOS

Getting the N64 development tools is required, see Building N64 Development Tools for macOS for more details on obtaining the tools.

An assembly program for MIPS is also required for the assembly code. The build instructions work completely fine on macOS, just make sure CMake is installed (brew).

A base uncompressed rom is required to compile the assembly and C code. A decompressor program is included in the repository at bin/Decompress. After decompressing the rom, put it at ASM/roms/base.z64.

Once all of this is configured, run python3 ASM/build.py --compile-c.

Running Python on macOS

Everything works as described in the README, minus the GUI. As of writing, the GUI requires electron version 7.3.3. This version does not have a proper release for Apple Silicon, meaing during the setup process it cannot find an electron version for 7.3.3 built for darwin-arm64. It is still possible to get the GUI working in macOS on Apple Silicon under Rosetta 2 by specifying --arch=x64. For version 7.3.3, the command would be npm i --arch=x64 electron@7.3.3. Outside of this, everything else installs correctly by simply using npm install.

This does mean the standard GUI application will run under Rosetta 2, but running the server by running server.js in GUI/webTest will still work. Note that the GUI will need to be launched at least once before running the server.