Skip to content

Compiling OOT

RyzenDew edited this page Nov 22, 2023 · 15 revisions

How to Acquire the ROM needed

You must get that on your own and please do not ask for that in the discord due to discord's TOS.

You can compare the MD5 at the site below.

https://www.romhacking.net/hash/

PAL 1.0 MD5

9526b263b60577d8ed22fb7a33c2facd

EUR MQD MD5

f0b7f35375f9cc8ca1b2d59d78e35405

MattsCreative has a great videos and tutorial on how to compile this project Below:

Compiling The dev branch for 30FPS - 60FPS and 120FPS

How to use OOT Builder

The Easy Way OOT Builder

Go here https://github.com/nitrostemp/OOOT-HELPER-GUI/releases/

Grab the newest release and unzip it.

Place Your rom next to the OOOT GUI.exe

next run OOOT GUI.exe as Admin

click Install tools , clone and compile

image

And enjoy the ride.

Windows and Required Programs

Step one install all required Programs below

Python 3.10 Add to path during the install

68747470733a2f2f692e696d6775722e636f6d2f4544326c5139512e706e67

Git Deskktop Install with your github account and clone using URL

image

Next we switch to Dev branch

image

Next click Fetch

image

Visual Studio Community 2022 During setup click C++ development vcc

Visual Studio 2019+ is the only currently supported build environment, and only the 32-bit X86/WIN32 build

You must use the ZAPD that is included with this repository, and not the main branch as it is modified.

Step 2 Follow what is below!

PAL 1.0 RETAIL ROM

If you are using the EUR PAL 1.0 retail rom,

make sure baserom_original.z64 or baserom_original.n64 is inside the correct folder as shown below: \ooot\roms\PAL_1.0\

rom pal

iF the roms hash is not correct it won't extract the assets and continue. "hash_md5": ["c02c1d79679f7ceb9a3bde55fff8aa13"]

Open command prompt and type:

cd .\source\repo\ooot 

image

after it's done type:

image

python setup.py -b PAL_1.0

EUR Masterquest Debug ROM

if you are using the EUR Master Quest Debug rom.

make sure baserom_original.z64 or baserom_original.n64 is inside the correct folder as shown below: \ooot\roms\EUR_MQD\

rom mq

if the roms hash is not correct it won't extract the assets and continue. "hash_md5": ["f0b7f35375f9cc8ca1b2d59d78e35405", "8ca71e87de4ce5e9f6ec916202a623e9"

Open command prompt and type:

cd .\source\repo\ooot 

image

run this command next to extract the assets from the rom. (baserom_original.z64 must exist in the directory \ooot\roms\EUR_MQD\)

image

python setup.py -b EUR_MQD

Open OOT.sln, you will find this in \ooot\vs sln

make sure Debug - Win32** or **Release - Win32 is selected, then hit build.

Next Right click AziAudio and Build

image

make sure Debug - Win32** or **Release - Win32 is selected, then hit build.

Once the build completes, press F5 to start it if you are testing code but if you are compiling to play right click oot on the side and click build.

How to Enable 60FPS

git checkout dev

git pull origin dev

git submodule update --init --recursive

python setup.py -b PAL_1.0

And compile as normal! when in game press F7 to go back to 20FPS and F8 to go up to 30FPs 60FPs and 120FPS!

How to update local repo

open git bash type:

cd ooot

git pull

python setup.py -b PAL_1.0

python setup.py -b EUR_MQD

and Open OOT.sln, you will find this in \ooot\vs make sure Debug - Win32** or **Release - Win32 is selected, then hit build.

release debug

macOS

Not currently supported, however a makefile and porting of GLideN64 would allow this and a PR is welcome.

Linux (Native or under WSL / VM)

Linux does not currently work. The below steps are for development purposes.

Debian/Ubuntu

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install gcc-multilib g++-multilib
sudo apt install libsdl2-dev
sudo apt install libsdl2-dev:i386
sudo apt install libpng-dev
sudo apt install libfreetype6-dev
sudo apt install libfreetype6-dev:i386
sudo apt install python3
sudo apt install python3-pip
sudo apt install meson

Arch Linux

edit /etc/pacman.conf annd go to the bottom uncomment multilib so remove the # do not touch testing.

sudo pacman -S gcc lib32-gcc-libs
sudo pacman -S sdl2 lib32-sdl2
sudo pacman -S meson
sudo pacman -S python-pip
sudo pacman -S libpng

Fedora Linux

sudo dnf in gcc
sudo dnf in SDL2-devel
sudo dnf in meson
sudo dnf in python3-pip
sudo dnf in libpng
sudo dnf in g++

setup.py -b EUR_MQD
meson setup linux --cross-file x86-linux-gnu
cd linux
ninja