N64 Homebrew Development Kit Setup
The following instructions will help you to setup a Docker container based N64 DevKit allowing you to deploy to actual N64 hardware using the open-source Libdragon library. These instructions are for Windows 10 but could be easily ported to Linux or Mac OS. There is an open-source .NET Core variant of the Everdrive ROM deployment on the official Krikkz Github repo.
Requirements
You’ll require the following to be installed before continuing:
- Docker-Desktop (and basic Docker knowledge)
- VSCode + ms-vscode-remote.remote-containers plugin
- Git / Github Desktop
- Flash cart (I’m using the Everdrive 64 X7)
If you don’t have these installed you can use the script below to install these dependencies using Chocolatey.
|
|
- From a Powershell admin terminal run the following:
|
|
- After the script completes you can close the shell.
Development within Container
We can now develop homebrew apps for the N64 using the Docker container we just setup. The easiest way to do this is to use the VSCode Remote Containers plugin.
To connect to your container (after installing ms-vscode-remote.remote-containers
plugin to VSCode) perform the following:
- From the VSCode sidebar click
Remote Explorer
, expandDev Containers
. - Right click
N64DevKit->Attach to Container
. - A new window will launch, after the server has set itself up press
Ctrl+Shift+E
to open the Explorer, clickOpen Folder
enter/libdragon/homebrew
in the dialogue that pops up. - You should know see the folder
0_hello_world
listed, open the directory and edithello_world.c
.
You should now be connected into the running container, you can now perform edits on hello_world.c
.
Compiling and Deploying a ROM
Begin by connecting your Everdrive 64 X7 to your N64 and be sure to connect the Micro-USB cable to the USB port found on the flash cart.
Next, to make a ROM, from within the VSCode remote container instance, perform the following:
- Open a new shell and navigate into
/libdragon/homebrew/0_hello_world
. - Run
make clean & make all
. - After doing this a new ROM will be deployed to
./homebrew/deploy.z64
. - From the host system (not in the container shell) launch Powershell and run
ed64
. This will automatically deploy the created ROM over USB to the Everdrive and will run on your system.
Congratulations if you made it this far, you can now look into the library we are using for homebrew, Libdragon, docs can be found at that link or internal to our container at path /libdragon
. Check back here periodically here as I may add a few tutorials dealing with sprites, audio, and controller input.