Skip to content

Releases: buu342/N64-UNFLoader

Prerelease

10 Oct 01:04
Compare
Choose a tag to compare
Prerelease Pre-release
Pre-release

This prerelease contains the latest build of UNFLoader, generated by GitHub Actions. It might be unstable, hence why it is marked as prerelease!

Version 2.2

10 Jul 02:15
Compare
Choose a tag to compare

This version of UNFLoader replaces the D2XX driver on Linux and MacOS with libftdi + libusb. Windows users will still be using the D2XX driver. This change has the following benefits:

  • The install process is simplified for Linux and MacOS users as the manual D2XX driver installation step is no longer required.
  • This fixes compatibility issues with D2XX driver breaking other flashcart tools, such as sc64deployer and g64drive.
  • On MacOS, UNFLoader no longer requires sudo to run.

The update also features a new install script for Linux users, which will purge the old udev rules and make some new, better ones.

UNFLoader currently fully supports USB I/O for:

64Drive HW1
64Drive HW2
EverDrive 3.0
EverDrive X7
SummerCart64

Compiled executables generated by continuous integration, as well as compiled example ROMs, are available below:

Version 2.11

06 Dec 21:29
Compare
Choose a tag to compare

Edit 05/03/24 -> READ THIS IF YOU BOUGHT A SUMMER CART FROM PHENOM MOD AND USE LINUX

Due to not knowing any better, the SummerCarts being sold on Phenom Mod had their manufacturer string changed to Polprzewodnikowy/Mena, resulting in the breaking of the UDEV rules for UNFLoader + sc64deployer.

If you are an SC64 user who got their SC64 from Phenom Mod, I would recommend opening the install script in a text editor and modifying lines 137 and 138:

echo "ATTRS{product}==\"SC64\", ATTRS{manufacturer}==\"Polprzewodnikowy\", OWNER=\"${USERNAME}\"" >> ${TARGET}
echo "ATTRS{product}==\"SC64\", ATTRS{manufacturer}==\"Polprzewodnikowy\", RUN{program}+=\"/bin/bash -c 'echo \$kernel > /sys/bus/usb/drivers/ftdi_sio/unbind'\"" >> ${TARGET}

to:

echo "ATTRS{product}==\"SC64\", OWNER=\"${USERNAME}\"" >> ${TARGET}
echo "ATTRS{product}==\"SC64\", RUN{program}+=\"/bin/bash -c 'echo \$kernel > /sys/bus/usb/drivers/ftdi_sio/unbind'\"" >> ${TARGET}

Until a proper fix is shipped.


This version of UNFLoader includes some minor fixes for UNFLoader, as well as improvement to the CIC checking algorithm in order to add support for Libdragon's new open source IPL3.

Fully supports USB I/O for:

64Drive HW1
64Drive HW2
EverDrive 3.0
EverDrive X7
SummerCart64
The full changelog below:

UNFLoader:

  • * Improved CIC algorithm (Thanks rasky!) #121
  • * Fixed uploading of ROMs using the -r command.

Other:

  • * Added a link in the documentation for a GDB tutorial video.

Compiled executables generated by continuous integration, as well as compiled example ROMs, are available below:

Version 2.1

12 Oct 03:18
Compare
Choose a tag to compare

This version of UNFLoader implements GDB support to the debug library and to UNFLoader itself. GDB support is implemented for both Libultra and Libdragon, and includes all the required protocol packets (qSupported, ?, g, G, m, M, Z0, z0, c, and CTRL+C).

Fully supports USB I/O for:

64Drive HW1
64Drive HW2
EverDrive 3.0
EverDrive X7
SummerCart64
The full changelog below:

UNFLoader:

  • + Added GDB Support.

USB Library:

  • + Added the DATATYPE_RDBPACKET data type.

Debug Library:

  • + Added GDB support.

Other:

  • * Updated the Libultra samples to allow for GDB support with minimal changes.
  • * Documentation updates.

Compiled executables generated by continuous integration, as well as compiled example ROMs, are available below:

Version 2.05

09 Oct 02:02
Compare
Choose a tag to compare

This version of UNFLoader contains minor fixes for the USB+debug library, samples, and for UNFLoader itself.

Fully supports USB I/O for:

64Drive HW1
64Drive HW2
EverDrive 3.0
EverDrive X7
SummerCart64
The full changelog below:

UNFLoader:

  • + Added 64-Bit Windows compilation settings (#117)
  • * Documentation fixes
  • * Updated the install script URLs.
  • * Fixed UNFLoader erroneously trying to set the CIC on 64Drive HW1

USB Library:

  • * Fixed casts, types, and a bunch of other stuff that conflicted with other compilers, mainly IDO. (#113 #116).
  • * Fixed EverDrive timeout not working properly (#114)

Debug Library:

  • + Added automatic polling of USB contents via the AUTOPOLL_ENABLED macro.

Other:

  • * Updated the samples to match latest Libdragon unstable.
  • * Fixed some warnings in the samples with ModernSDK.

Compiled executables generated by continuous integration, as well as compiled example ROMs, are available below:

Version 2.02

13 May 14:23
Compare
Choose a tag to compare

This version of UNFLoader contains minor fixes for the USB+debug library, as well as UNFLoader.

Fully supports USB I/O for:

64Drive HW1
64Drive HW2
EverDrive 3.0
EverDrive X7
SummerCart64
The full changelog below:

UNFLoader:

  • * Fixes for argument parsing ROMs without -r.

USB Library:

  • * 0 padded 64Drive buffer when it isn't 4 byte aligned.

Debug Library:

  • + Added (void) to the non-debug version of printf to prevent warnings with -Wall (won't catch everything, but will catch most of them)
  • * Wrapped the DEBUG_MODE macro in #ifndef to allow overriding the value at compile time.

Compiled executables generated by continuous integration, as well as compiled example ROMs, are available below:

Version 2.01

12 Apr 12:53
Compare
Choose a tag to compare

This version of UNFLoader contains a minor bug fix for UNFLoader. The USB+debug library are unchanged.

Fully supports USB I/O for:

  • 64Drive HW1
  • 64Drive HW2
  • EverDrive 3.0
  • EverDrive X7
  • SummerCart64

The full changelog below:

UNFLoader:

  • * Fixed ROM padding on the 64Drive and EverDrive (#108)

Compiled executables generated by continuous integration, as well as compiled example ROMs, are available below:

Version 2.0

11 Apr 00:15
Compare
Choose a tag to compare

This version of UNFLoader contains the merged rewrite branch. No changes to the USB or debug library exist since the V1.5 release, this release only contains changes to UNFLoader itself.

Fully supports USB I/O for:

  • 64Drive HW1
  • 64Drive HW2
  • EverDrive 3.0
  • EverDrive X7
  • SummerCart64

The full changelog below:

UNFLoader:

  • + UNFLoader was rewritten completely from scratch
  • + Proper async support. You can run debug mode without uploading a ROM first
  • + Added an option to stop UNFLoader from terminating on bad USB packets (-p)
  • + Added non-curses mode (-b)
  • + Added support for appending multiple files in debug mode
  • + Added debug mode input sanitisation before sending
  • + Unicode support (#58)
  • * Improved window resize handling
  • * Decoupled flashcart communication from ncurses (#96)
  • * Fixed files sometimes not opening in debug mode (#92)
  • * Fixed rom argument handling without -r
  • * Debug mode lets you reupload ROMs manually
  • * Forced C++11
  • * More error checking and other misc fixes (#94) (#68)

Compiled executables generated by continuous integration, as well as compiled example ROMs, are available below:

Version 1.5

10 Apr 20:45
Compare
Choose a tag to compare

This is the last version of UNFLoader before the rewrite branch was merged into the master branch. This release was also made for historical reasons, and should pretty much not be used outside of the rewrite. Of significance, this update brought about big changes to the USB library, notably some changes to alignment on the EverDrive, and asynchronous communication.

Fully supports USB I/O for:

  • 64Drive HW1
  • 64Drive HW2
  • EverDrive 3.0
  • EverDrive X7
  • SummerCart64

The full changelog below:

UNFLoader:

  • + Added an install script to make the Linux user experience better.
  • * Fixed a padding bug with 64Drive (#76)
  • * 64Drive CMP signals are now properly handled.
  • * Miscellaneous code cleanups and fixes

Debug Library:

  • + Debug library sends a heartbeat when a timeout recently occurred.
  • * Miscellaneous code cleanups and fixes

USB Library:

  • + Added emulation detection. It is off by default, users will need to explicitly enable the macro and recompile libdragon to enable it. (#60)
  • + Added a heartbeat function and timeout check function to help with asynchronous communication. This adds a new datatype DATATYPE_HEARTBEAT.
  • * GCC's aligned macro has been replaced with a different approach to add support for people using IDO. (#86)
  • * The code regarding PI read/writes and DMA transfers has been simplified to make it more legible than tons of #ifdef's everywhere.
  • * All flashcart code has been fixed to be asynchronous. USB can be unplugged and the game will continue as normal, being able to perform USB IO once the USB is plugged back in (#89) (#85)
  • * 64Drive polling has been fixed so that it no longer misses data, eliminating the need for the POLLTIME macro (#51)
  • * EverDrive code was changed to remove all unnecessary leftovers and oddities from KRIKzz's original USB code.
  • * EverDrive code has been changed to read/write aligned to 2 bytes. It was originally believed (due to the USB source + lack of documentation) that it had 16 byte requirements.
  • * Fixed another cock-up regarding EverDrive alignment (#98)

Other:

  • + Removed the need for nuboot when compiling ModernSDK samples (Thanks Crash!)
  • + Added some more information to the READMEs

Compiled executables generated by continuous integration, as well as compiled example ROMs, are available below:

Version 1.2

10 Apr 20:25
Compare
Choose a tag to compare

This version of UNFLoader is the culmination of commits before the rewrite started in March of 2023. This release was made for historical reasons (IE before there were significant protocol changes), and should not be used for ROMs built with the newer versions.

Fully supports USB I/O for:

  • 64Drive HW1
  • 64Drive HW2
  • EverDrive 3.0
  • EverDrive X7
  • SummerCart64

The full changelog below:

UNFLoader:

  • + Added the ability to load a ROM by just drag and dropping
  • + Added a check to the 64Drive to ensure it supports debug mode when loading via USB
  • + Added ED ROM header autodetection for 64Drive
  • + Added the ability to cancel flashcart uploads with ESC
  • + Added scrolling in debug mode via PAGEUP, PAGEDOWN, HOME, and END. The amount of history to keep can be changed with the -h argument (default value of 1000)
  • + Added duplicate printf stacking in debug mode. This can be disabled with the -m argument.
  • * Fixed Windows XP compatibility with listen mode
  • * Changed the old -w program argument to -b.
  • * Changed the old -h program argument to -w, allowing for full window resizing instead of just height
  • * Changed SummerCart implementation to match current design (Thanks korgeaux!)
  • * Miscellaneous community fixes

Debug Library:

  • + Added the ability to hook the 64Drive's button to a function
  • * Fixed the fake printf define in debug.h not working when more than one argument is used

USB Library:

  • * Changed SummerCart implementation to match current design (Thanks korgeaux!)
  • * Added IDO support.
  • * Miscellaneous community fixes

Other:

  • + Added ModernSDK compatibility for libultra samples (Thanks Crash!)
  • + Added some more information to the READMEs

Compiled executables generated by Azure Pipelines, as well as compiled example ROMs, are available below: