Skip to content

Instantly share code, notes, and snippets.

@jsdf
Created December 3, 2023 02:36
Show Gist options
  • Save jsdf/21bf1d2c0fd95693c592e998da9e2be9 to your computer and use it in GitHub Desktop.
Save jsdf/21bf1d2c0fd95693c592e998da9e2be9 to your computer and use it in GitHub Desktop.
N64 SDK + Compiler toolchain
# to get started: colima start
# to build: docker build -t n64sdkmod .
# to run with workspace dir: docker run -v $(pwd):/workspace -it n64sdkmod
FROM ubuntu:22.04
ENV PATH=/etc/n64/usr/sbin:${PATH}
ENV PATH=/opt/crashsdk/bin:${PATH}
ENV ROOT=/etc/n64
ENV N64_LIBGCCDIR=/opt/crashsdk/lib/gcc/mips64-elf/12.2.0
WORKDIR /opt/crashsdk
RUN apt-get update && \
apt-get -y install build-essential git wget bash gdb-multiarch && \
apt-get clean && \
echo "deb [trusted=yes] https://crashoveride95.github.io/apt ./" > /etc/apt/sources.list.d/crashoveride95.list && \
apt update && \
apt-get -y install binutils-mips-n64 gcc-mips-n64 newlib-mips-n64 && \
apt-get -y install n64sdk && \
apt-get -y install libnustd && \
apt-get -y install libnusys && \
apt-get -y install libnaudio && \
apt-get -y install vadpcm-tools
# install go from source because spicy needs at least 1.19, and ubuntu 22.04 only has 1.18
RUN wget https://dl.google.com/go/go1.20.linux-amd64.tar.gz && \
tar -xvf go1.20.linux-amd64.tar.gz && \
mv go /usr/local && \
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc && \
echo 'export GOPATH=$HOME/go' >> ~/.bashrc && \
echo 'export PATH=$GOPATH/bin:$GOROOT/bin:$PATH' >> ~/.bashrc
@jsdf
Copy link
Author

jsdf commented Dec 3, 2023

you may also want to use my fork of spicy which fixes an incorrect argument that spicy tries to pass to ld, which breaks in newer gcc versions: https://github.com/jsdf/spicy/tree/ld-args-fix

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment