This is a collection of files and tools used to compile and test code for the n64.
install-toolchain
provides binutils
, gcc
, newlib
, and gdb
targeting
mips64, with -march=vr4300
and -mabi=32
as defaults for gcc
.
ed64rdb
: ED64v3 USB packet translator, for remote debugging of gz with gdb.gfxdis
: F3DEX2 display list disassembler / decompiler.grc
: Resource compiler for creating linkable n64 texture objects.gru
: Lua environment for manipulating raw binaries, n64 roms, zelda64 file systems, ups patches, and gameshark codes.gs
: Gameshark upload tool for use with a Moschip USB Parallel Cable.luapatch
: Tool to generate lua sources from binaries, to inject into emulated RAM in BizHawk.
list/list.c/h
: Doubly linked list implementation.memory/memory.c/h
: Minimal malloc implementation.set/set.c/h
: Ordered set implementation.vector/vector.c/h
: Vector implementation.grc.c/h
: API for resources created bygrc
.mips.h
: VR4300 mips3 header, with convenience definitions and assembler macros.n64.h
: Mostly-compatible definitions for a subset of the ultra library.startup.c/h
: Basic program initialization routines.vr4300.c/h
: Disassembler library.
gl-n64.ld
: Linker script for n64 binaries.
You'll need to have these packages installed: wget tar make diffutils texinfo gcc g++ lua5.3 jansson libusb-1.0 libgmp
. See Installation, step 4. If you
want to use the included luapatch
program with BizHawk, you should set the
EMUDIR
environment variable to the path to your BizHawk installation.
-
From the command line run the following to fetch the package:
sudo sh -c '(curl https://practicerom.com/public/packages/debian/pgp.pub || wget -O - https://practicerom.com/public/packages/debian/pgp.pub) | apt-key add - && echo deb http://practicerom.com/public/packages/debian staging main >/etc/apt/sources.list.d/practicerom.list && apt update'
-
Install the package by running
sudo apt install n64-ultra
, or install all practicerom development packages by runningsudo apt install practicerom-dev
. The prebuilt packages are built from then64-ultra
branch and targetmips64-ultra-elf
.
- If you're on Windows, download and install MSYS2 from
here. Open a
MSYS2 MinGW 32-bit
shell. - Clone the repository and navigate into it by running
git clone https://github.com/glankk/n64 && cd n64
. - Optionally, have the included script try to install the prerequisite
packages automatically by running
./install_deps
. You'll need root privileges for this. - Configure the package with
./configure --prefix=/opt/n64
. You may use another installation prefix if you wish. To enable Wii VC compatibility, append--enable-vc
to the configure command. To produce portable Windows executables (that don't need additional dynamic libraries) under MSYS2, append--enable-static-executables
to the configure command. - Install the GNU Toolchain for MIPS by running
make install-toolchain
. You may want to use make's-j
option speed up this process. - Compile and install the included programs by running
make && make install
. - Install the included headers and libraries by running
make install-sys
. Optionally, install prefixless binaries toyour-prefix/mips64/bin
by runningmake install-local-exec
. - The n64 tools and MIPS toolchain will have been installed to
/opt/n64
(or the prefix you chose). Add/opt/n64/bin
to yourPATH
variable (oryour-prefix/bin
,C:\msys64\opt\n64\bin
on Windows). If you're using MSYS2, also add the path to the directory containing themake
program (typicallyC:\msys64\usr\bin
).