Homebrew Release: Introducing NUSGet!

NinjaCheetah

Member
OP
Newcomer
Joined
Aug 20, 2020
Messages
18
Trophies
0
Age
17
Location
Space
Website
ninjacheetah.dev
XP
317
Country
United States
NUSGet logo, black arrow with a blue border and the text NUSG overlapping it at the bottom

NUSGet
"It's like NUS Downloader but new!"
By NinjaCheetah
GitHub
Latest Release

Hello fine GBATempers! It's time I finally stop sleeping on my account and actually use it for something. Today I'd like to announce the release of a project I've been working on for quite some time now: NUSGet!

What is NUSGet?
NUSGet is an application for downloading titles from the Nintendo Update Servers, like NUS Downloader. This project initially started as an attempt at making a modern clone of NUS Downloader in Python with a Qt interface, but then expanded to instead be an entirely new application with more features than its predecessor. On top of this, NUSGet is also fully cross platform, and has binaries available for macOS, Windows, and Linux.

Features
NUSGet has a large variety of features, and is designed to expand upon the offerings that NUS Downloader had.
These features include:
  • Downloading titles from the Wii, vWii, and DSi update servers​
  • A title database to allow for easily selecting what title you'd like to download (currently only offers system titles for all platforms, preinstalled titles for all platforms, and all Wii Channels for Wii/vWii; no WiiWare, DSiWare, or Virtual Console titles are listed because those are massive lists that I have not had the time or patience to input into a database yet)​
  • The ability to save encrypted contents for a title, as well as decrypted contents if a common ticket is available (titles are denoted with a checkmark if they have one, and an X if they do not)​
  • The ability to pack WADs for Wii and vWii titles, and TADs for DSi titles, as long as a common ticket is available​
  • The ability to re-encrypt vWii titles with the standard Wii common key, which allows for editing these WADs with conventional tools, installing them directly from vWii mode, and installing them directly into Dolphin without needing a Wii U NAND dump, since the vWIi keys are no longer required​
  • A toggle for switching between the standard Wii CDN and the Wii U CDN (which is faster) for Wii titles​
  • Supports Windows, macOS, and Linux​
A General Warning:
You should not modify or install crucial system titles unless you know what you're doing, you have backups, and you have brick recovery such as BootMii or Preloader in place. I am not responsible for any bricked consoles. Use this program at your own risk.

Going hand-in-hand with this release, this is also the soft-launch of my library libWiiPy!
libWiiPy is a modern Python 3 library for handling the various files and formats found on the Wii. It's what powers NUSGet's download operations, and was key to making a Python-based NUS downloader. It's going to have a proper announcement of its own, but I figured since it's the real magic that makes this all work, it would get a little sneak peek here. In the meantime, you can read more about it on the libWiiPy GitHub page.

By design, NUSGet is meant to replace the three major variants of NUSD that are available, those being the original, the version that was modded to use the Wii U CDN (which in NUSGet is just a toggle), and the version modded to download vWii titles. Unlike the NUSD vWii mod, testing has been done on my real Wii U to ensure that titles downloaded for the vWii using this tool (when re-encrypted) are safe to install.

I do want to provide a warning that there are likely to still be some bugs here and there! I can't test everything, and I'm still getting to know Qt. Feedback both here and on the GitHub issues page is very much appreciated.

I'm not the greatest at this type of release announcements, so I know things may not be clear and will happily answer any questions about the features described and how they work. No files are attached here by design so that you go and download the latest release from GitHub.


Please pardon the mediocre Fusion theme. PySide6 gets a little temperamental when it comes to loading external themes, so Breeze isn't quite working yet for those on KDE. Oh and Plasma just refuses to use the window icon for some reason? It works on other DEs and is fine on macOS/Windows though.
Screenshot_20240626_220615.png
Screenshot_20240626_220757.png

Special Thanks
Special thanks to my girlfriend (who is not on GBATemp) for making the super cool icon for me and for keeping me sane during the development of both this and libWiiPy as a whole, and also to @rvtr, whose DSi knowledge was crucial to adding proper DSi support into NUSGet.
 
Last edited by NinjaCheetah,

NinjaCheetah

Member
OP
Newcomer
Joined
Aug 20, 2020
Messages
18
Trophies
0
Age
17
Location
Space
Website
ninjacheetah.dev
XP
317
Country
United States
I tried it out and it works great.
Does this use the original servers for wii or the rc24 backup servers?
hope you keep up with it .
Thanks! I definitely plan to keep working on it.

By default, it uses the Wii U servers, but by disabling the checkbox for that you can instead use the original Wii servers. I would possibly consider adding backup servers in the future, but I’ve found the Wii U servers to be very fast and reliable, so that’s what I’d recommend (and why that’s the default).

The checkbox to disable the Wii U servers is really just there in case someone really wants to use the Wii servers, but it probably isn’t necessary for most people.
 

NinjaCheetah

Member
OP
Newcomer
Joined
Aug 20, 2020
Messages
18
Trophies
0
Age
17
Location
Space
Website
ninjacheetah.dev
XP
317
Country
United States
This looks neat I will check it out later! Any hope for cmd line support (without having to install dependencies like Python)
Yes! You’ll probably want to check out my other libWiiPy-based project, WiiPy.

It’s also a Python program, but like NUSGet it has binaries for macOS, Windows, and Linux so you don’t need to install anything.
 

NinjaCheetah

Member
OP
Newcomer
Joined
Aug 20, 2020
Messages
18
Trophies
0
Age
17
Location
Space
Website
ninjacheetah.dev
XP
317
Country
United States
New Bugfix Release!
NUSGet v1.1.0 has just been released, and includes some minor updates and fixes. The changelog can be found alongside the release over on GitHub, as well as right here.

Changelog:
  • Minor database corrections (Demae Channel TID was fixed, Set Personal Data Channel was added, some warning strings were made more clear).
  • Wording of the re-encryption option was made a little more clear, now says "Re-encrypt title using the Wii Common Key" instead of "Pack for vWii mode instead of Wii U mode".
  • Added Norwegian translations, thanks to @rolfiee (@Rolfie on GBATemp). This is mostly a test of utilizing Qt Linguist, and there are still some issues with how it's implemented. Once these are addressed, directions on how to contribute translations will be added and more languages will hopefully become available.
  • libWiiPy change: All WADs packed use adjusted calculations for the content region size in the WAD header, creating consistency with legacy tools. This especially means that IOS WADs from NUSGet will now match the expected outputs from legacy tools.

These updates should bring NUSGet in line with WiiPy when it comes to WADs, as WiiPy was my initial testing ground for some libWiiPy fixes. WADs from NUSGet and NUSD should now match in most cases, except for some strange exceptions where NUSD actually changes data it isn't supposed to.

Translations:
As stated in the changelog, translations are still a work in progress, and I'm not quite ready to implement them yet, but when I get things fixed up, I would very much appreciate the help with that! I only speak English, so if there are people who speak other languages who'd like to help translate NUSGet's interface, keep an eye out for future updates here.

The Norwegian translations will be used if your system language is set to Norwegian, but there are still some spots that for right now are only going to display in English.



As always, if anyone has any questions/comments/bugs to report, I'm here! Enjoy!
 

eviltrainer

Well-Known Member
Newcomer
Joined
Sep 13, 2009
Messages
72
Trophies
1
XP
251
Country
Brazil
New Bugfix Release!
NUSGet v1.1.0 has just been released, and includes some minor updates and fixes. The changelog can be found alongside the release over on GitHub, as well as right here.

Changelog:
  • Minor database corrections (Demae Channel TID was fixed, Set Personal Data Channel was added, some warning strings were made more clear).
  • Wording of the re-encryption option was made a little more clear, now says "Re-encrypt title using the Wii Common Key" instead of "Pack for vWii mode instead of Wii U mode".
  • Added Norwegian translations, thanks to @rolfiee (@Rolfie on GBATemp). This is mostly a test of utilizing Qt Linguist, and there are still some issues with how it's implemented. Once these are addressed, directions on how to contribute translations will be added and more languages will hopefully become available.
  • libWiiPy change: All WADs packed use adjusted calculations for the content region size in the WAD header, creating consistency with legacy tools. This especially means that IOS WADs from NUSGet will now match the expected outputs from legacy tools.

These updates should bring NUSGet in line with WiiPy when it comes to WADs, as WiiPy was my initial testing ground for some libWiiPy fixes. WADs from NUSGet and NUSD should now match in most cases, except for some strange exceptions where NUSD actually changes data it isn't supposed to.

Translations:
As stated in the changelog, translations are still a work in progress, and I'm not quite ready to implement them yet, but when I get things fixed up, I would very much appreciate the help with that! I only speak English, so if there are people who speak other languages who'd like to help translate NUSGet's interface, keep an eye out for future updates here.

The Norwegian translations will be used if your system language is set to Norwegian, but there are still some spots that for right now are only going to display in English.



As always, if anyone has any questions/comments/bugs to report, I'm here! Enjoy!
Awesome work! I'll follow this thread so when the translation feature is ready, I can help with one! 😁👍🏻
 
  • Like
Reactions: XFlak

NinjaCheetah

Member
OP
Newcomer
Joined
Aug 20, 2020
Messages
18
Trophies
0
Age
17
Location
Space
Website
ninjacheetah.dev
XP
317
Country
United States
New release!
NUSGet v1.2.0 has been released, and includes some improvements and new features. The changelog can be found over on GitHub, as well as right here.

Changelog:
  • Script support from NUSD returns! NUSGet now accepts NUSD-format scripts, which can be loaded using the "Run Script" button. This script format is a bit old, and will likely be phased out for something newer in the future, but using it for now allows for batch downloads.
  • "Hidden Channels" is now its own category in the database.
  • Several misplaced titles have been relocated to the proper categories, and missing titles have been added.
  • NUSGet now automatically checks for updates on startup, and notifies you if a new version is available.
  • The database and database loading code have been changed to hopefully speed up app loading. Titles are loaded from the database in a much more efficient way.
  • Patches can now automatically be applied to IOSes during download by enabling "Apply patches to IOS" (this works the same way that it did in NUSD).

Translations:
New translations are available! NUSGet is now available in both German and Romanian, in addition to the existing translations for Norwegian and Italian. I'm still looking for some people to help with translations, especially if you speak Spanish or French. If you speak one of those languages and have a little free time to lend, you can follow the translation instructions on on GitHub, and if you have any questions then feel free to shoot me a PM!


As always, if anyone has any questions/comments/bugs to report, I'm here! Enjoy!
 
  • Like
Reactions: zfreeman

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: Mike is winning so far. :D