awesome-n64-development
A curated list of Nintendo 64 development resources including toolchains, documentation, emulators, example code, and more
https://github.com/command-tab/awesome-n64-development
Last synced: 6 days ago
JSON representation
-
Reverse Engineering
-
Projects
- Chameleon Twist - An in-progress decompilation of _Chameleon Twist_
- Chameleon Twist 2 - An in-progress decompilation of _Chameleon Twist 2_
- Conker's Bad Fur Day - An in-progress decompilation of _Conker's Bad Fur Day_
- Dark Rift - An in-progress decompilation of _Dark Rift_
- Diddy Kong Racing - An in-progress decompilation of _Diddy Kong Racing_
- Dinosaur Planet - An in-progress decompilation of _Dinosaur Planet_
- Donkey Kong 64 - An in-progress decompilation of _Donkey Kong 64_
- Doom 64 - A **complete** decompilation of _Doom 64_
- Doraemon: Nobita to Mittsu no Seireiseki - An in-progress decompilation of _Doraemon: Nobita to Mittsu no Seireiseki_
- Dōbutsu no Mori - An in-progress decompilation of _Dōbutsu no Mori_
- Dr. Mario 64 - An in-progress decompilation of _Dr. Mario 64_
- Duke Nukem 64 - An in-progress decompilation of _Duke Nukem 64_
- Duke Nukem: Zero Hour - A **complete** decompilation of _Duke Nukem: Zero Hour_
- F-Zero X - An in-progress decompilation of _F-Zero X_
- F-Zero X Expansion Kit - An in-progress decompilation of the _F-Zero X Expansion Kit_
- Gauntlet Legends - An in-progress decompilation of _Gauntlet Legends_
- Gex 64: Enter the Gecko - An in-progress decompilation of _Gex 64: Enter the Gecko_
- Glover - An in-progress decompilation of _Glover_
- GoldenEye 007 - An in-progress decompilation of _GoldenEye 007_
- Harvest Moon 64 - An in-progress decompilation of _Harvest Moon 64_
- Jet Force Gemini - An in-progress decompilation of _Jet Force Gemini_
- Kirby 64: The Crystal Shards - An in-progress decompilation of _Kirby 64: The Crystal Shards_
- Knife Edge: Nose Gunner - Configures a reverse engineering environment (Mupen64+ RE, Ghidra, etc.) for _Knife Edge: Nose Gunner_
- Lego Racers - An in-progress decompilation of _Lego Racers_
- Mario Golf - An in-progress decompilation of _Mario Golf_
- Mario Kart 64 - A **complete** decompilation of _Mario Kart 64_
- Mario Party - An in-progress decompilation of _Mario Party_
- Mario Party 3 - An in-progress decompilation of _Mario Party 3_
- Mario Tennis - An in-progress decompilation of _Mario Tennis_
- Mischief Makers - An in-progress decompilation of _Mischief Makers_
- Mystical Ninja Starring Goemon - An in-progress decompilation of _Mystical Ninja Starring Goemon_
- Neon Genesis Evangelion 64 - An in-progress decompilation of _Neon Genesis Evangelion 64_
- Onegai Monsters - An in-progress decompilation of _Onegai Monsters_
- Paper Mario - A **complete** decompilation of _Paper Mario_
- Perfect Dark - A **complete** decompilation of _Perfect Dark_ (see also [pdtools](https://gitlab.com/ryandwyer/pdtools))
- Pokémon Puzzle League - An in-progress decompilation of _Pokémon Puzzle League_
- Pokémon Snap - An in-progress decompilation of _Pokémon Snap_
- Pokémon Stadium - An in-progress decompilation of _Pokémon Stadium_
- Pokémon Stadium 2 - An in-progress decompilation of _Pokémon Stadium 2_
- Quest 64 - An in-progress decompilation of _Quest 64_
- Rocket: Robot on Wheels - An in-progress decompilation of _Rocket: Robot on Wheels_
- Sharkwire 64 - An in-progress decompilation of the SharkWire Online cartridge firmware
- Shadowgate 64 - An in-progress decompilation of _Shadowgate 64_
- Snowboard Kids 2 - An in-progress decompilation of _Snowboard Kids 2_
- Space Station Silicon Valley - An in-progress decompilation of _Space Station Silicon Valley_
- Star Fox 64 - An in-progress decompilation of _Star Fox 64_
- Star Wars: Shadows of the Empire - An in-progress decompilation of _Star Wars: Shadows of the Empire_
- Super Mario 64 - A **complete** decompilation of _Super Mario 64_
- Super Smash Bros. - An in-progress decompilation of _Super Smash Bros._
- Superman 64 - An in-progress decompilation of _Superman 64_
- The Legend of Zelda: Majora's Mask - A **complete** decompilation of _The Legend of Zelda: Majora's Mask_
- The Legend of Zelda: Ocarina of Time - A **complete** decompilation of _The Legend of Zelda: Ocarina of Time_
- The New Tetris - An in-progress decompilation of _The New Tetris_
- Turok 3: Shadow of Oblivion - An in-progress decompilation of _Turok 3: Shadow of Oblivion_
- Virtual Pool 64 - An in-progress decompilation of _Virtual Pool 64_
- Wave Race 64 - An in-progress decompilation of _Wave Race 64_
- Yoshi's Story - An in-progress decompilation of _Yoshi's Story_
- f3dex2 - Matching and mostly documented disassemblies of the F3DEX2/F3DZEX2 N64 RSP microcode family
- nus-cpu - A condensed, modular re-creation of the Nintendo 64 motherboard
- Ultra FP64 - A work in progress FPGA Nintendo 64
- UltraCIC - A clone of the CIC copy protection chip
- UltraCIC_C - Another CIC implementation (same name, but a separate implementation)
- UltraCIC-II - Code to recreate CIC chips on an ATTiny25/45
- UltraCIC-III - Code for a replacement CIC chip on an ATTiny25/45/85
- UltraPIF - A replacement for the PIF chip that enables a region-free console
- Doraemon: Nobita to Mittsu no Seireiseki - An in-progress decompilation of _Doraemon: Nobita to Mittsu no Seireiseki_
- Doraemon: Nobita to Mittsu no Seireiseki - An in-progress decompilation of _Doraemon: Nobita to Mittsu no Seireiseki_
- n64-kicad - A set of KiCad files detailing the Nintendo 64 hardware
- N64 Uncompiled Source Code - Various source code and related material discovered in various ROM images
-
Tools and Disassemblers
- RI Probe - A ROM that dumps RDRAM values onscreen for debugging and exploring
- Online Disassembler - A lightweight, online service for when you don't have the time, resources, or requirements to use a heavier-weight alternative
- GEDecompressor - Decompressor for a wide variety of compression formats used across various titles
- asm-differ - A `diff` script for MIPS assembly
- bdiff - A local binary diffing tool
- decomp-permuter - A tool to randomly permute C files to better match a target binary
- m2c - An open-source MIPS decompiler, useful for understanding and reimplementing N64 games' behavior in C
- m3c - A tool to assist with N64 decompilation that runs [m2c](https://github.com/matt-kempster/m2c) and [decomp-permuter](https://github.com/simonlindholm/decomp-permuter) to try to automatically decompile functions
- N64LoaderWV - Nintendo 64 ROM loader for the [Ghidra](https://github.com/NationalSecurityAgency/ghidra) reverse engineering tool
- n64sym - Scans a RAM dump for symbols from a given library or object file
- openocd_n64 - An [OpenOCD](http://openocd.org/doc/html/About.html) configuration for the Nintendo 64 CPU
- rabbitizer - An API for decoding MIPS instructions
- spimdisasm - Matching MIPS disassembler API and front-ends with built-in instruction analysis
- RI Probe - A ROM that dumps RDRAM values onscreen for debugging and exploring
-
-
Toolchains
- Official Nintendo 64 SDKs - Official Nintendo 64 Software Development Kits for Windows and SGI IRIX
- N64 SDK Easy Install CD - An ISO image made by AlphaTango and CrashOveride to simplify installation of the official SDK. Works on Windows 98-XP.
- n64sdkmod - A `libultra` SDK for the modern era, supported on Debian-based Linux distros
- n64chain - A 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 toolchain based on modern-n64sdk
- libdragon-docker - Dockerized toolchain based on [libdragon](https://github.com/DragonMinded/libdragon)
- homebrew-n64-dev - macOS `gcc` and `binutils` [Homebrew](https://brew.sh) formulae for Nintendo 64 development
- mips64-gcc-toolchain - Windows and Linux scripts to automate building of a modern MIPS64 GCC toolchain for Nintendo 64 cross compilation
- glankk/n64 - A collection of files and tools used to compile and test code for the Nintendo 64
- n64sdkmod - A `libultra` SDK for the modern era, supported on Debian-based Linux distros
- mips64-gcc-toolchain - Windows and Linux scripts to automate building of a modern MIPS64 GCC toolchain for Nintendo 64 cross compilation
-
Tools and Libraries
-
Asset Conversion and Viewing
- 64Drive Viewer - Preview textures, images, sounds, and 3D models on hardware with a 64drive over USB
- Blen64 - Blender scripts to export meshes to draw lists as header files
- Blender64 - A Python tool to export Blender 3D models to F3DEX2 microcode display lists
- blend2niff - A Blender add-on to export to [NIFF2](http://n64devkit.square7.ch/niff/index.htm) (Nintendo Intermediate File Format 2)
- Sausage64 - A Blender plugin to export "sausage link" style character models with animations
- Fast64 - A Blender plugin to preview and export meshes as F3D display lists for decomp and homebrew projects.
- objn64 - Wavefront `.obj` model converter that generates optimized displaylists for compilation with `libultra`
- Obj2N64DL - Another Wavefront `.obj` to displaylist converter
- Max_To_N64 - Scripts to export models from 3DS Max to C
- N64_3DRenderingTest - A basic model viewer using NuSystem
- n64texconv - A Python tool to convert PNG to RGBA(16/32), CI(4/8), and I(A)(4/8)
- png2n64 - A Python 3 script to convert PNG images to 16 bit RBGA
- png2c - A C++ command line tool to convert PNG images to `libultra`-compatible texture header files
- GML-N64TextureConverter - Converts standard image formats to Nintendo 64 compatible C header files
- n64CIconverter - Converts standard image formats to Nintendo 64's [Color Index (CI) format](https://n64squid.com/homebrew/n64-sdk/textures/image-formats/#CI)
- N64GFXCookie - Nintendo 64 CI8 format graphics viewer/editor
- n64rawgfx - A tool to export and import uncompressed/raw graphics from ROMs
- Texture64 - A texture ripper and editor with support for multiple formats
- ImageMerge - Converts two 8-bit images into 2-bit images and packs them into 1 image to save space in a ROM
- Spritemapper - Arranges a directory of equally-sized images into a sprite map and compresses it
- xo-tt64 - Converts input images to .c files of the same name
- mkspriten64 - Windows equivalent to the SGI program `mksprite`. Converts .png to a .h header and .c source file.
- mksprite2 - A Python 3 script to create sprite and background objects for use with S2DEX microcode
- n64texconv - A Python tool to convert PNG to RGBA(16/32), CI(4/8), and I(A)(4/8)
- Sausage64 - A Blender plugin to export "sausage link" style character models with animations
-
Audio Playback and Editing
- N64-Tools - A tool to extract and import audio from many games that make use of the MIDI format
- N64-Tools - A tool to extract and import audio from many games that make use of the MIDI format
- libmad-n64 - [libmad](https://www.underbit.com/products/mad/) with MIPS patches, for MPEG audio playback
- seq64 - A full-featured editor for sequenced music in first-party games
- 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
- ultra_mpeg - An MPEG-1/2 decoder library
- ANMP - A multi-channel loopable video game music player, with support for various Nintendo 64 audio formats
- midicvt - An open source replacement for `midicvt` to create MIDI files compatible with `libultra`
- sfz2n64 - Converts SFZ files to a format the Nintendo 64 can use as part of instrument banks
-
Debugging
- Project64 EmuScripts - Scripts for debugging under Project64 emulation
- n64rd - Remote debugger for GameShark 3.2 hardware over a parallel interface
- ed64log - A tool and [example code](https://github.com/jsdf/ed64log/tree/master/example#exception-logging-and-disassembly) to implement development logging from a homebrew ROM running on an EverDrive 64
- webserial-ed64log - An ed64log client using Web Serial API
- ed64-gdb - A GDB stub for debugging with an EverDrive 64 V3
- gdbstub-ed64 - Another EverDrive 64 GDB stub
- N64-GDB-stub - A GDB stub that works with a modified version of the cen64 emulator
-
Development Cartridge Loaders
- sc64deployer - SummerCart64 loader and control software (Windows, macOS and Linux)
- 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
- UNFLoader - A universal flash cart ROM uploader (64drive, EverDrive 64 V3, EverDrive 64 X7 and SummerCart64) and debug library
- UNFLoader - A universal flash cart ROM uploader (64drive, EverDrive 64 V3, EverDrive 64 X7 and SummerCart64) and debug library
-
Development Libraries
- libn64 - An open-source library for Nintendo 64 development, part of `n64chain`
- n64ut - An in-progress set of modern Nintendo 64 libraries
- libdragon - An open-source library for Nintendo 64 development
- 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`
- ultralib - A reverse engineering of `libultra`
- framework64 - An asset pipeline and C library to simplify game creation (uses n64sdkmod)
- libhfx - An in-progress open source library for 3D graphics
- S2DEX Text Engine - A text engine powered by the S2DEX microcode
- tiny3d - A tiny 3D RSP microcode and C API wrapper which work with `libdragon`
-
Flashcart Menu Software
- N64FlashcartMenu - Universal flashcart menu with aim to support most of the N64 flashcarts on the market
-
ROM Manipulation
- Tool N64 - A tool to display ROM information and perform byte reordering
- Real N64 CRC Tool v2 - A tool to check, calculate, and set ROM checksums and extract the bootcode of ROM files
- seq64/n64checksum - Source for a tool to calculate and set ROM checksums
- Info64 - A tool to display and set ROM header information and checksums
- spicy - An open-source replacement of the official 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 official 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](https://n64squid.com/homebrew/n64-sdk/software/mipse-ultra-gcc/makemask/).
- Real N64 CRC Tool v2 - A tool to check, calculate, and set ROM checksums and extract the bootcode of ROM files
- rom64 - A tool to identify and parse ROM header information
- romjudge - A utility to judge an N64 ROM for correctness
- leotools - Work with 64DD disk images and the files contained therein
- splat - A ROM splitting tool to assist with decompilation and modding projects
- Info64 - A tool to display and set ROM header information and checksums
- N64ShellPreview - A Windows Shell Extension to display ROM information in Explorer's preview pane
- ipl3hasher - GPU-accelerated hash collision finder for the IPL3 boot code
- boot_stub - A replacement for the CIC-6102 IPL3 boot code
-
-
Videos
- Installing the Nintendo 64 Development Kit - How to install the Nintendo 64 Software Development Kit under Windows 2000 and 98SE and build sample code. Also generally works under Windows XP.
- Behind The Code - Gerry O'Brien's YouTube channel, with a number of videos discussing Nintendo 64 development with NuSystem and the official SDK, development hardware, audio processing, and more
- Building cen64 for Speed and Preservation - Tyler Stachecki and Mike Ryan discuss making the cen64 emulator fast without compromising on accuracy
- REcon 2015 - Reversing the Nintendo 64 CIC - Mike Ryan, MarshallH, and John McMaster talk about reverse engineering and cloning a 20 year old copy protection chip (the N64 CIC)
- Portland Retro Gaming Expo 2019 - N64 Homebrew Development - Part 1 - Victor Vieux talks about the Nintendo 64 technical specifications and begins building a game using `libdragon`
- Portland Retro Gaming Expo 2019 - N64 Homebrew Development - Part 2 - Victor Vieux adds sound and graphic assets and talks about the future of Nintendo 64 homebrew development
- Programming for Nintendo 64 - Damjan Nesic goes through the basics of programming for Nintendo 64 using C and a Windows XP virtual machine
- Reflective Regret: Adventures in N64 Development - Buu342's seminar on Nintendo 64 homebrew game development at Inércia Demoparty 2021 (with [code available](https://github.com/buu342/N64-ReflectiveRegretPresentation))
- Debugging N64 homebrew using GDB with a flashcart - Buu342 demonstrates how to use UNFLoader with GDB to debug Libultra, ModernSDK, and Libdragon homebrew running on a flashcart
Programming Languages
Categories
Sub Categories
Projects
86
C
61
Unmaintained
42
Asset Conversion and Viewing
25
Rust
16
ROM Manipulation
16
Tools and Disassemblers
14
Assembly
11
Development Libraries
10
Actively Maintained
9
Audio Playback and Editing
9
Debugging
7
Development Cartridge Loaders
6
Go
3
Works In Progress
3
Guides and Reference
2
Flashcart Menu Software
1
Keywords
n64
20
nintendo-64
7
nintendo64
5
decompilation
5
n64-development
4
homebrew
4
reverse-engineering
4
c
3
mips-assembly
3
decomp
3
emulator
3
nintendo
2
pokemon
2
everdrive64
2
hardware
2
disassembly
2
rust
2
uart
1
usb
1
goosegame
1
rp2040
1
raspberry-pi-pico
1
firmware
1
cartridge
1
paper-mario
1
rnc
1
game
1
emulation
1
nes-emulator
1
n64-dev
1
libultra
1
linker
1
golang
1
rsp
1
rdp
1
nintendo-hacking
1
mips
1
libdragon
1
docker
1
wii
1
gamecube
1
emulators
1
cargo-subcommand
1
homebrew-game
1
rareware
1
conker
1
cbfd
1
python3
1
gameoflife
1
game-of-life
1