/N64-UNFLoader

A cross-platform and universal Nintendo64 flashcart ROM uploader, featuring a USB+debug library for libultra and libdragon.

Primary LanguageC++Do What The F*ck You Want To Public LicenseWTFPL

UNFLoader

Build Status

The code in this repo might be unstable! For stable versions, head to the releases page

UNFLoader is a USB ROM uploader (and debugging) tool designed to unify developer flashcarts for the Nintendo 64. The goal of this project is to provide developers with USB I/O functions that work without needing to worry about the target flashcart, provided by a single C file (usb.c) targeting both libultra and libdragon. A very basic debug library (debug.c) that makes use of said USB library is also provided.

Currently supported devices:

  • 64Drive Hardware 1.0 (No longer comercially sold), using firmware 2.05+
  • 64Drive Hardware 2.0, using firmware 2.05+
  • EverDrive 3.0 (No longer comercially sold), using OS version 3.04+
  • EverDrive X7, using OS version 3.04+
  • SummerCart64

Table of contents


Extending UNFLoader

This repository has a wiki where the tool, it's libraries, and the supported flashcarts are all documented. It is recommended that you read through that to familiarize yourself with everything. If you want to submit changes, feel free to fork the repository and make pull requests!

Known issues and suggestions

All known issues are mentioned in the issues page. Suggestions also belong there for the sake of keeping everything in one place.

Credits

Marshallh for providing the 64Drive USB application code which this program was based off of.

KRIKzz, saturnu, networkfusion, lambertjamesd, and jsdf for providing sample code for the EverDrive 3.0 and/or X7.

fraser and networkfusion for all the help provided during the development of this project as well as their support.

networkfusion for lending me his remote test rig for the ED3 and X7, as well as setting up the azure pipeline system and helping organize this repo.

danbolt for helping test this on Debian, as well as providing changes to get the tool compiling under macOS.

Polprzewodnikowy for implementing support for his SummerCart64, as well as setting up GitHub actions.

CrashOveride for ensuring the samples compile on his Linux libultra port.

This project uses lodePNG by Lode Vandevenne, ncurses by the GNU Project, pdcurses by William McBrine, and the D2XX drivers by FTDI.

The folk at N64Brew for being patient with me and helping test the program! Especially command_tab, networkfusion, CrashOveride, gravatos, PerKimba, manfried and kivan117. You guys are the reason this project was possible!