|
Mario Kart 64
|
The build system has the following package requirements:
binutils-mips >= 2.27 python3 >= 3.6 libaudiofile
To add submodules run git submodule update --init --recursive after cloning.
Run make assets to extract assets.
and install gcc toolchain of libdragon and add export PATH="/opt/libdragon/bin:$PATH" to ~/.bashrc
Install the following AUR package:
Review the n64decomp/sm64 readme for instructions to compile in other distributions.
mingw64 folder from the toolchain into the tools folder like so: mk64/tools/mingw64."tools\mingw64\w64devkit.exe" and after make assets && make -jInstall Homebrew, then install the following dependencies:
Build using gmake ensuring homebrew make is used instead of the old macOS system make.
Build the Docker image:
When building and using other tools, append the following in front of every command you run:
For example:
Place a US version of Mario Kart 64 called baserom.us.z64 into the project folder for asset extraction.
Run the following commands after pulling:
Building EU requires US to be built first. See above.
mk64 decomp supports two EU versions
eu.v10eu.v11Build using
or
First-diff/diff commands for EU
Certain changes may result in unexpected behaviour (frequently related to physics) due to the games obnoxious linker setup. This is resolved by compiling with the AVOID_UB flag.
This will require a rebuild, run
Then compile like so make -j AVOID_UB=1 or make -j DEBUG=1 // Enables debug mode and avoid_ub
Recompiling .inc.c files requires saving the root .c file for makefile to recognize that the file requires a rebuild. This is because at compile time a inc.c file is essentially copy/pasted into its associated .c file. Therefore makefile does not recognize changes to .inc.c files, only .c files. This may be resolved in the following ways: 1) Search for #include "my_file.inc.c to find the root file and then save it with ctrl+s. 2) make clean and rebuild 3) make my_file.c 4) Find help in the Discord