Skip to content
A curated list of Nintendo 64 development resources including toolchains, documentation, emulators, and more
Python CSS
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets/css
.gitignore
CNAME
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md Jul 6, 2019
CONTRIBUTING.md
README.md
_config.yml
checklinks.py

README.md

Awesome N64 Development

A curated list of Nintendo 64 development resources including toolchains, documentation, emulators, and more

Contents

Community

Documentation

  • Ultra64 - An absolute wealth of documentation including official Nintendo 64 development manuals, as well as SDK downloads and reference material
  • Nintendo 64 Architecture - An overview of the Nintendo 64 console architecture
  • N64dev - Useful N64 hacking links
  • NEC VR4300i CPU Manual @ N64dev - The manual for the NEC VR4300i CPU used by the Nintendo 64
  • N64TEK - Nintendo 64 technical information, registers, memory map, and instruction set
  • dragonminded N64DEV - libdragon usage, Windows and Linux toolchains, and RCP documentation
  • N64 ROM Formats - A short N64 ROM format quick reference sheet
  • N64 ROM Formats Explained - Details the three commonly encountered Nintendo 64 ROM formats (use Big Endian/.z64)
  • Accessory Reference - Guide on how to communicate with the Transfer Pak and Rumble Pak
  • Hack64 - A variety of documentation on RCP data structures, compression, assembly, and more
  • Encryption 64 - A collection of documentation on MIPS assembly, GameShark code structure, and layout of individual titles
  • 64dd wiki - Documentation on 64DD hardware, disks, and related catridges
  • cen64#58 - A cen64 issue comment summarizing the Nintendo 64 boot process
  • ultra64demos - Original SGI Nintendo 64 technical demos for reference
  • Microcode from Source - How to compile Nintendo 64 microcode from source
  • N64 Catridge Info - A NESDev forum thead with some details about the Nintendo 64 catridge bus

Toolchains

  • Official Nintendo 64 SDKs - Official Nintendo 64 Software Development Kits for Windows and SGI IRIX
  • N64 SDK Easy Install CD - A ISO image made by AlphaTango and CrashOveride to allow for a easier way to install the Nintendo SDK. Confirmed working on Windows 98-XP
  • n64chain - A Nintendo 64 development toolchain based on GCC that does not depend on any proprietary Nintendo library
  • modern-n64sdk - Describes how to get a modern build of GCC cross-compiling on a modern OS (Linux, Windows, macOS)
  • portable-n64-toolchain - A Dockerized N64 toolchain based on modern-n64sdk
  • libdragon-docker - Dockerized toolchain based on libdragon.

Assemblers

  • ARM9/bass - A fork of bass which has been updated with N64 MIPS/RSP/RDP output
  • ARMIPS - An assembler for various ARM and MIPS platforms. macOS builds also available.
  • Screwaround64 - An interactive assembler for Nintendo 64
  • lips - A MIPS R4300i assembler written in Lua

Emulators

  • cen64 - A cycle-accurate Nintendo 64 emulator for Windows, Linux, and Mac. While currently not fast enough to play games at full speed, it aims for perfect emulation by emulating the hardware inside of the console down to the register-transfer level.
  • cor64 - An in-progress Nintendo 64 emulator written in C#
  • Project64 (GitHub) (with Debugger) - An open source Nintendo 64 emulator for Windows and Android
  • 1964 - An open-source Nintendo 64 emulator for Windows. No longer maintained.
  • mupen64 - An open-source, multi-platform Nintendo 64 emulator. No longer maintained.
  • mupen64plus (GitHub) - A more recently updated fork of mupen64 for Linux, Mac OSX, FreeBSD, and Windows
  • Mupen64+ Reverser Edition - A fork of the Mupen64+ Nintendo 64 emulator tailored for reverse engineering
  • Wii64 - A port of mupen64 for Nintendo Wii and Gamecube. No longer maintained.
  • Mupen64-360 - A port of Wii64 (and thus mupen64) to the Xbox 360. No longer maintained.
  • Project Unreality - An early Nintendo 64 emulator for Windows. No longer maintained.
  • Nemu64 - A closed-source Nintendo 64 emulator for Windows. No longer maintained.
  • UltraHLE - An early Nintendo 64 emulator for Windows. Though closed-source, the source leaked in 2002. No longer maintained.
  • Not64 - A fork of Wii64
  • Surreal64 and Surreal64 CE - A Nintendo 64 emulator for the original Xbox which includes ports of 1964, Project64, and UHLE. No longer maintained.
  • Sixtyforce - A closed-source Nintendo 64 emulator for Mac
  • TrueReality - An open-source Nintendo 64 emulator. No longer maintained.

Development Hardware

  • 64drive - A Nintendo 64 flash cartridge with USB support targeted at developers
  • EverDrive-64 x7 - A Nintendo 64 flash cartridge
  • UltraHDMI (periodically in stock at Game-Tech) - A board that can be installed into the Nintendo 64 to capture the digital output of the RCP and send it out a Mini HDMI connector to a modern TV. Convenient for connecting a real console to a nearby monitor while viewing the best possible output signal.
  • UltraSave - A device that works with the 64drive to transfer saves from real cartridges
  • GameShark 3.0+ - A method of running homebrew on the Nintendo 64 via a GameShark
  • UltraPIF - A replacement for the Nintendo 64 PIF chip that enables a region-free console

Tools and Libraries

Development Cartridge Loaders

  • 64drive-usb-linux - A Linux tool to upload to/download from a 64drive development cartridge over USB
  • g64drive - Linux/Mac tool for operating a 64drive development cartridge
  • ed64 - Tools to develop on an EverDrive-64 cartridge
  • loader64 - A USB uploader for Everdrive-64

Asset Conversion and Viewing

  • 64Drive Viewer - Preview textures, images, sounds, and 3D models on the Nintendo 64 with a 64drive over USB
  • Blen64 - Blender scripts to export meshes to draw lists as header files
  • objn64 - Wavefront .obj model converter that generates optimized Nintendo 64 displaylists for compilation with libultra
  • Obj2N64DL - Another Wavefront .obj to displaylist converter
  • N64_3DRenderingTest - A basic model viewer using NuSystem
  • n64CIconverter - Converts standard image formats to Nintendo 64's CI format
  • N64GFXCookie - Nintendo 64 CI8 format graphics viewer/editor
  • Texture64 - Nintendo 64 texture ripper and editor with support for multiple formats
  • N64-SoundTester - A ROM that allows you to test out N64 Sound Tools sample banks and tune them directly on your console or emulator, avoiding lengthy turnaround times
  • leotools - Tools for working with 64DD images and related files

Audio Playback and Editing

  • N64-Tools - A tool to extract and import audio from many games that make use of the MIDI format
  • libmad-n64 - libmad with MIPS patches, for MPEG audio playback
  • seq64 - A full-featured editor for sequenced music in first-party Nintendo 64 games

Debugging

  • Project64 EmuScripts - Scripts for debugging under Project64 emulation
  • n64rd - Nintendo 64 remote debugger for GameShark 3.2 hardware over a parallel interface
  • ed64log - A tool and example cartridge code to implement development logging from a homebrew ROM running on an EverDrive-64
  • ed64-gdb - A GDB stub for debugging with an EverDrive-64 V3
  • gdbstub-ed64 - Another EverDrive-64 GDB stub

ROM Manipulation

  • spicy - An open-source replacement of the Nintendo 64 SDK's mild.exe (referenced by $(MAKEROM) in many Makefiles). Packs object files into an N64-compatible ROM.
  • makeromOpen - Another open-source makerom replacement (work in progress)
  • makemask - An open-source replacement of the Nintendo 64 SDK's makemask.exe. Adds a mask to a compiled ROM which pads the file to fill the entire cartridge space, adds a CIC version, and adds informational headers to the file. Typically run immediately after mild.exe. More on this tool at N64Squid.
  • Tool N64 - A tool to display ROM information and perform byte reordering

Development Libraries

  • libdragon - An open-source library for Nintendo 64 development
  • libn64 - An open-source library for Nintendo 64 development, part of n64chain
  • pseultra - A collection of tools used to develop software for the Nintendo 64 that are distinct from the official SDK
  • libreultra - A decompilation of the Nintendo 64 standard SDK library, libultra

Reverse Engineering

  • n64-decompiling - An overview of decompiling Nintendo 64 ROMs with Ghidra
  • N64LoaderWV - Nintendo 64 ROM loader for the Ghidra reverse engineering tool
  • n64decomp - Nintendo 64 decompilation projects, including Super Mario 64 and The Legend of Zelda: Ocarina of Time (Master Quest)
  • N64 Uncompiled Source Code - Uncompiled source code and related material discovered in various Nintendo 64 ROM images
  • RI Probe - A ROM that dumps RDRAM values onscreen for debugging and exploring
  • n64sym - Scans a RAM dump for symbols from a given library or object file
  • Online Disassembler - A lightweight, online service for when you don't have the time, resources, or requirements to use a heavier-weight alternative
  • Compiler Explorer - Explore how your C, C++, Rust, or other compiled language code ends up looking after compilation
  • mips_to_c - An open-source MIPS decompiler, useful for understanding and reimplementing N64 games' behavior in C
  • GEDecompressor - Decompressor for a wide variety of compression formats used across Nintendo 64 titles
  • asm-differ - A diff script for MIPS assembly
  • decomp-permuter - A tool to randomly permute C files to better match a target binary
  • awesome-decompilation - A curated list of awesome decompilation resources and projects

Videos

Programming

Assembly

  • PeterLemon/N64 - Nintendo 64 bare metal MIPS assembly programming reference
  • Fraser N64 - YouTube channel featuring Nintendo 64 assembly programming
  • N64 Assembly Language Tutorial - Fraser's detailed Nintendo 64 assembly programming guide
  • N64-ASM-Tutorial - The support files for N64 Assembly Language Tutorial
  • N64 ASM Tutorials - Nintendo 64 assembly language programming tutorials by Mike Huber (mirrored by Jaeden Amero)
  • UltraCIC - Not particularly homebrew development related, but is a useful reference as a clone of the Nintendo 64 CIC copy protection chip

C

Rust

  • cargo-n64 - A cargo subcommand to build Nintendo 64 ROMs in Rust
  • n64toolchain - Rust Implementation of Nintendo 64 ROM toolchain
  • rs64-rt - Minimal Rust startup / runtime for Nintendo 64
  • rs64-periph - Fairly raw N64 MMIO definitions
  • rs64-rom - Rust library from manipulating Nintendo 64 ROM images
  • rs64romtool - Tool for manipulating Nintendo 64 ROM images (depends on rs64-rom)
  • rrt0 - A simple cross-platform runtime / startup for Rust on embedded devices
  • n64rom-rs - A library and toolkit for working with Nintendo 64 ROM files
  • loka-n64 - Nintendo 64 tools (including extract_boot_code, useful for cargo-n64) and a work in progress game
  • n64-slides-apr - Source code for April 2019 Rust Meetup slides as a Nintendo 64 ROM
You can’t perform that action at this time.