2024-07-22 03:01:35 -04:00
2024-04-06 21:57:53 -04:00
2024-11-16 22:02:52 -05:00

NUSGet After Dark

A modern and supercharged NUS downloader built with Python and Qt6. Powered by libWiiPy and libTWLPy. Fork with features not acceptable for prod.

The icon for NUSGet

NUSGet

A modern and supercharged NUS downloader built with Python and Qt6.

Powered by libWiiPy and libTWLPy.

Linux Screenshot

Features

NUSGet allows you to download any content from the Nintendo Update Servers. Free content (content with a Ticket freely available on the servers) can be decrypted or packed directly into an installable archive (WAD/TAD).

NUSGet also offers the ability to create vWii WADs that can be installed from within vWii mode, since the content directly from the update servers is only designed to be installed from Wii U mode.

The following features are available for all supported consoles:

  • Downloading encrypted contents (files like 00000000, 00000001, etc.) directly from the update servers for any title.
  • Creating decrypted contents (*.app files) from the encrypted contents on the servers.
  • Scripting support, allowing you to perform batch downloads of any titles for the Wii, vWii, or DSi in one script. (See example-script.json for an example of the scripting format.)

For Wii and vWii titles only:

  • "Pack installable archive (WAD/TAD)": Pack the encrypted contents, TMD, and Ticket into a WAD file that can be installed on a Wii or in Dolphin Emulator.
  • Forging Tickets for titles without a common Ticket available on the NUS by using the Title Key algorithm to derive the key needed to decrypt the title.

For vWii titles only:

  • "Re-encrypt title using the Wii Common Key": Re-encrypt the Title Key in a vWii title's Ticket before packing the WAD, so that the WAD can be installed via a normal WAD manager on the vWii, and can be extracted with legacy tools. This also creates WADs that can be installed directly in Dolphin, allowing for running the vWii System Menu in Dolphin without a vWii NAND dump!

For DSi titles only:

  • "Pack installable archive (WAD/TAD)": Pack the encrypted contents, TMD, and Ticket into a TAD file that can be installed on a TAD or in a DSi-capable emulator. Only supported for free titles. For real hardware, these titles can be installed using @rvtr's handy TAD Delivery Tool.

Using NUSGet

For basic usage on all platforms, you can download the latest release for your operating system from here, and then run the executable.

Platform-Specific Notes:

  • macOS: To use NUSGet on macOS, you'll need to either open NUSGet.app using right-click -> Open, or by using the terminal command xattr -d com.apple.quarantine NUSGet.app. After doing either of those things once, you'll be able to double-click NUSGet to open it like you normally would for an app. Note that changes in macOS Sequoia require using the latter method.
  • Windows: On Windows, you'll likely need to allow NUSGet.exe in your antivirus program. This includes Windows Defender, which is almost guaranteed to prevent the app from being run. This is not because NUSGet is malicious in any way, it's just that NUSGet isn't popular enough to be "known" to Windows, and I don't have the expensive signing certificate necessary to work around this. If you're in doubt, you can look at all of NUSGet's code in this repository.
  • Linux: No special information applies on Linux, however you can build NUSGet yourself if you'd like to have it as an installed application with an icon that will appear in your favorite application launcher. See here for more information.

Building

System Requirements

  • Windows: Python 3.12 (Requires Windows 8.1 or later)
  • Linux: Python 3.12
  • macOS: Python 3.12 (Requires macOS 10.9 or later, however macOS 11.0 or later may be required for library support)

First, make sure you're inside a venv, and then install the required dependencies:

pip install --upgrade -r requirements.txt

After that, follow the directions for your platform.

Linux and macOS

A Makefile is available to build NUSGet on Linux and macOS. On Linux, this will give you an executable named NUSGet in the root of the project directory. On macOS, you'll instead get an application bundle named NUSGet.app.

make all

Optionally, on Linux, you can install NUSGet so that it's available system-wide. This will install it into /opt/NUSGet/.

sudo make install

On macOS, you can instead put the application bundle in /Applications/ just like any other program.

Windows

On Windows, you can use the PowerShell script Build.ps1 in place of the Makefile. This will give you an executable named NUSGet.exe in the root of the project directory.

.\Build.ps1

Translations

A huge thanks to all the wonderful translators who've helped make NUSGet available to more people!

If your language isn't present or is out of date, and you'd like to contribute, you can check out TRANSLATING.md for directions on how to translate NUSGet.

Additional Thanks

The name is a play on NuGet, the .NET package manager. Thank you @Janni9009 for the name idea!

Thanks to all those who contributed to libWiiSharp and NUSD, without which this project would not exist.

Description
A modern and supercharged NUS downloader built with Python and Qt6. Powered by libWiiPy and libTWLPy. Fork with features not acceptable for prod.
Readme MIT 1.1 MiB
Languages
Python 98.8%
PowerShell 0.7%
Makefile 0.5%