* Update menus.c (#634) * Update common_data.yml (#635) * Renames for screenId and other changes (#636) * screenId renames * Rename surface map to collision mesh (#637) * Rename some stack vars (#638) * Fix syntax error (#639) * Rename some stack vars * Update collision.c * Collision Documentation (#640) * Collision related renames * update doxygen (#649) * change bool (#644) * Update (#642) * Delete trig_tables_bss.c (#650) * fix typo audio (#656) * fix typo src actor (#657) * fix typo include (#658) * fix course (#659) * fix typo debug (#660) * fix typo data (#661) * Update common_structs.h * replace number with const (#665) * fix typo buffers (#655) * fix typo buffers * tweak ld file * rename to sMemoryPool * add a warning --------- * fix typo src (#654) * fix typo src * fix non matcing * Update code_80091750.c --------- * fix typo racing (#653) * fix typo racing * get it match * replace G_LINE3D to G_QUAD --------- * fix typo src (#652) * fix ending typo (#651) * Action more info when it doesn't match and fix first diff (#662) * Update linux-compile.yml * fix first-diff * Update first-diff.py --------- * document texture of kart (#663) * document texture of kart * change screenPlayerId to screenId * some documentation around object * Revert "some documentation around object" This reverts commit cbb39078e036bf2a417bed67359e910213acab28. * more rename --------- * Make evaluate_collision_players_palm_tree better (#667) This matches just the same as before, but using those two casts instead of shifts seems more likely to be accurate to the original source code Signed-off-by: Gabriel Ravier <gabravier@gmail.com> * add fedora instruciton (#666) * start documenting animation (#668) * start documenting animation * Update course_data.c * change comment * fix error of compilation * fix error of compilation * Update animation.c
2.6 KiB
@page compiling Installing mk64 Decomp
Build Instructions
The build system has the following package requirements:
binutils-mips >= 2.27
python3 >= 3.6
libaudiofile
[TOC]
To add submodules run git submodule update --init --recursive after cloning.
Run make assets to extract assets.
Linux
Ubuntu
sudo apt install cmake build-essential pkg-config git binutils-mips-linux-gnu python3 zlib1g-dev libaudiofile-dev libcapstone-dev
Fedora
sudo dnf install make automake gcc gcc-c++ kernel-devel cmake pkg-config git python3 zlib-devel audiofile-devel capstone
and install gcc toolchain of libdragon and add export PATH="/opt/libdragon/bin:$PATH" to ~/.bashrc
Arch
sudo pacman -S base-devel capstone python
Install the following AUR package:
- mips64-elf-binutils (AUR)
Review the n64decomp/sm64 readme for instructions to compile in other distributions.
Windows
- Clone the repo or download the zip.
- Download and extract the toolchain from here
Setup
- Place the
mingw64folder from the toolchain into the tools folder like so:mk64/tools/mingw64. - Open a terminal (cmd or powershell) in the repo folder and run
"tools\mingw64\w64devkit.exe"and aftermake assets && make -j - Wait for the build to finish and Enjoy!
macOS
Install Homebrew, then install the following dependencies:
brew update
brew install python3 capstone coreutils make pkg-config tehzz/n64-dev/mips64-elf-binutils
Build using gmake ensuring homebrew make is used instead of the old macOS system make.
Docker
Build the Docker image:
docker build -t mk64 .
When building and using other tools, append the following in front of every command you run:
docker run --rm -v .:/mk64 mk64
For example:
docker run --rm -v .:/mk64 mk64 make
Building US
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:
make -j
Building EU
Building EU requires US to be built first. See above.
mk64 decomp supports two EU versions
- EU 1.0
eu-1.0 - EU 1.1
eu-final
Build using
make -j VERSION=eu-1.0
or
make -j VERSION=eu-final
First-diff/diff commands for EU
python3 first-diff.py --eu
./diff <function> -eu