this is a demake of untitled goose game for the nintendo 64
download the most recent N64 ROM build here
run it with your favorite emulator or flashcart
e.g. https://crashoveride95.github.io/modernsdk/index.html
for example i install the sdk in a docker container on macOS via colima + docker, using this dockerfile
define machine-specific paths:
cp src/localdefs.makefile.example src/localdefs.makefile
then edit src/localdefs.makefile to define paths to the N64 SDK:
ROOT
(the 'ultra' directory)N64KITDIR
(the 'n64kit' directory)
then run make
this produces the rom file goose64.n64
which you can then run with your favorite emulator or flashcart.
environment variables which affect the build:
OPTIMIZE=1
: enable gcc optimization and use non-debug versions of sdk librariesED64=1
: build with everdrive64 logging support (see ed64log). don't use unless running on an everdrive64
you can also define these in localdefs.makefile
this repo also includes an opengl based version of the game, which runs on macOS (haven't tested other OSes)
install dependencies:
# eg. using homebrew on macOS
brew install glm glew
define machine-specific paths
cp src/gldefs.makefile.example src/gldefs.makefile
# edit src/gldefs.makefile
configure cmake & build
cmake -S src/ -B build
cd build
make
./goose64
more information about n64 programming can be found in N64SDK and ART.
with everdrive64 v3 inserted and usb cable connected, reset console and run:
./deploy.sh
if you get a 'device not found' error, check that 'FT245R USB FIFO' is visible in your system's list of connected usb devices
if you update .obj model files:
first make sure you have lua installed
# eg. using homebrew on macOS
brew install lua
then, to rebuild model header files
./rebuild_models.sh
if you update any texture files:
make sure you have python and pillow installed
pip install pillow
then, to rebuild sprites
./sprites.sh
- open blender (or use
./blender.sh
to see console output) - in the blender text editor editor, open and run export_positions.py then open and run export_collision_mesh.py
- see header files are created