NS-USBloader Switch

From GameBrew
NS-USBloader
Nsusbloadernx.png
General
Authordevelopersu
TypeGame Installer Companion
Version7.1
LicenseGPL-3.0
Last Updated2023/12/26
Links
7.1 - Nightly build
Website
Source
Support Author

NS-USBloader is a PC-side installer for Huntereb/Awoo-Installer / other compatible installers (USB and Network supported) and XorTroll/Goldleaf (USB) NSP installer. Alternative to default usb_install_pc.py, remote_install_pc.py, GoldTree/Quark.

This application also could be used as RCM payload on Windows, MacOS and Linux.

Features

  • PC-side installer for Adubbz/TinFoil (v0.2.1), Huntereb/Awoo-Installer (USB and Network supported) and XorTroll/GoldLeaf (USB) NSP installer.
  • RCM payload tool that works on Windows, macOS (Intel and Apple Silicon) and Linux (x86, amd64 and Raspberry Pi ARM).
  • Multiple file selection.
  • Can create split files.
  • Can merge split-files into one.
  • With GUI and cookies. Works on Windows, macOS and Linux.
  • Click here for Android version.

Installation

Requirements

  • Java JRE/JDK 11+ or higher for mac and linux.
  • libusb, if you have a Mac with Apple Silicon (install via brew install libusb)

How to setup

Linux:

  • Install JRE/JDK 8u60 or higher (openJDK is good. Oracle's one is also good). JavaFX not needed (it's embedded).
  • root # java -jar /path/to/NS-USBloader.jar
  • Optional: add user to 'udev' rules to use NS not-from-root-account
    • root # vim /etc/udev/rules.d/99-NS.rules
    • SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", MODE="0666"
    • root # udevadm control --reload-rules && udevadm trigger
  • For RCM part
    • root # vim /etc/udev/rules.d/99-NS-RCM.rules
    • SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7321", MODE="0666"
    • root # udevadm control --reload-rules && udevadm trigger
  • For HiDPI use scaling like java -Dglass.gtk.uiScale=150% -jar application.jar

Raspberry Pi:

  • Install JDK: sudo apt install default-jdk
  • For UI install JavaFX: sudo apt install openjfx
  • See "Linux" section to update "udev" and the RCM part.

macOS:

  • Double-click on downloaded .jar file. Follow instructions. Or see "Linux" section.
  • Set "Security & Privacy" settings if needed.
  • Please note: JDK 19 is recommended for using on macOS. There are issues already reported from users on Mac with JDK 14.

macOS on Apple Silicon (ARM):

  • Download application with -m1.jar postfix.

Windows:

  • Once application opens click on "Gear" icon.
  • Click "Download and install drivers". Install drivers.

User guide

Supported installers

  • Awoo installer.
  • GoldLeaf v0.10 (NS-USBloader v6.0+).
  • GoldLeaf v0.8 - 0.9 (since NS-USBloader v1.0+).
  • GoldLeaf v0.7 - v0.7.3 (since NS-USBloader v0.7+).
  • GoldLeaf v0.6.1 (NS-USBloader v0.6).
  • GoldLeaf v0.5 (NS-USBloader v0.4 - v0.5.2, v0.8+).
  • TinFoil - both USB and Net methods (developed by Adubbz, 0.2.1).

How to use

The first thing you should do it install Awoo (Huntereb) or Goldleaf (XorTroll) on your NS.

Take a look on app, find where is the option to install from USB and/or Network. Maybe (very old) this article (about TinFoil) will be helpful.

Gamepad Tab:

At the top, you can select the application and protocol from the drop-down menu that you want to use. For Goldleaf, only USB is available. The lamp icon allows you to switch between light and dark themes.

You can drag and drop files or use the 'Select NSP files' button to add files to the table. Multiple selections are possible. The table allows you to select files for transmission to the application (AW/GL). Goldleaf v0.5 allows only one file transmission at a time.

In the table, you can use checkboxes to select files, the spacebar to toggle selection, and the 'delete' button to remove files. Right-clicking provides a context menu for deleting one or all items from the table.

For Goldleaf v0.6.1 and NS-USBloader v0.6 (and higher), use 'Explore content' -> 'Remote PC (via USB)'. Two drives, HOME:/ and VIRT:/, are displayed. The first points to your home directory, and the second reflects what you've added to the table. VIRT:/ has limited functionality compared to HOME:/. You can't write files to this drive, but it won't impact Goldleaf or your Nintendo Switch if you try.

For writing files from NS to PC in Goldleaf, you have to 'Stop execution' properly before accessing files transferred from GL. Usually, you have to wait 5 seconds or less to ensure that your files are properly written to PC.

RCM Tab:

On this tab, you can select a payload like Hekate or LockPick_RCM and send it to the Nintendo Switch.

Drag and drop is supported, and there are in-app validations for payloads.

Folder with Arrows and Zeroes Tab:

On this tab, you can split and merge files. Select 'Split' or 'Merge', and drag and drop is supported.

Gears Tab:

Here you can configure settings for network file transmission. Usually, you shouldn't change anything. However, if you're advanced, you can explore options. The 'Don't serve requests' option allows you to define a path to a remote location of files, making this feature interesting for advanced users.

Also here you can:

  • Set "Auto-check for updates" for checking for updates when application starts, or click button to verify if new version released immediately.
  • Set "Show only *.nsp in Goldleaf" to filter all files displayed at HOME:/ drive. So only NSP files will appear.

Dialog with Three Dots Tab:

This is where all logs are stored. Verbose information about transmissions is logged here.

CLI (command line interface)

To get help run $ java -jar ns-usbloader-4.0.jar --help

 -c,--clean                      Remove/reset settings and exit
 -g,--Goldleaf <...>             Install via Goldleaf mode. Check '-g help' for information.
 -h,--help                       Show this help
 -m,--merge <...>                Merge files. Check '-m help' for information.
 -n,--tfn <...>                  Install via Awoo Network mode. Check '-n help' for information.
 -r,--rcm <[PATH/]payload.bin>   Send payload
 -s,--split <...>                Split files. Check '-s help' for information.
 -t,--tinfoil <FILE...>          Install via Awoo USB mode.
 -v,--version                    Show application version

For more complex commands help use help argument after the fists key. For example:

$ java -jar ns-usbloader-4.0.jar -n help

Usage:
        ns-usbloader -n nsip=<arg1> [hostip=<arg2>] FILE1 ...
        ns-usbloader --tfn nsip=<arg1> [hostip=<arg2>] FILE1 ...

Options:
        nsip=<ip>               Define NS IP address (mandatory)
        hostip=<ip[:port]>      Define this host IP address. Will be obtained automatically if not set.

Usage examples:

Send RCM payload:
$ java -jar ns-usbloader-4.0.jar -r C:\Users\Superhero\hekate.bin
Send files to Awoo Installer via Net-install: 
$ java -jar ns-usbloader-4.0.jar -n nsip=192.168.0.1 ./file.nsz ./file.nsp ~/*.xci
Send files to Goldleaf v0.8:
$ java -jar ns-usbloader-4.0.jar -g ver=v0.8 ./*
Split files:
$ java -jar ns-usbloader-4.0.jar -s /tmp/ ~/*.nsp
Merge files:
$ java -jar ns-usbloader-4.0.jar -m /tmp/ ~/*.nsp

Notes

"Status" = "Uploaded" that appears in the table does not mean that file has been installed. It means that it has been sent to NS without any issues. That's what this app about. Handling successful/failed installation is a purpose of the other side application: Awoo/Awoo-like or Goldleaf. And they don't provide any feedback interfaces so I can't detect success/failure.

What is this "-legacy" jar:

  • JAR with NO postfixes recommended for Windows users, Linux users and macOS users who're using Mojave or later versions.
  • JAR with "-legacy" postfix is for macOS users who're still using OS X releases before (!) Mojave. (It also works for Linux and for Windows, but sometimes it doesn't work for Windows).
  • We have this situation because of weird behaviour inside usb4java library used in this application for USB interactions. In "-legacy" it's v1.2.0 and in 'normal' it's v1.3.0.

Screenshots

nsusbloadernx2.pngnsusbloadernx3.pngnsusbloadernx4.pngnsusbloadernx5.pngnsusbloadernx6.png

Known issues

In some moments you can't interrupt file(s) transmission from application side if using Tinfoil/Net-install.

Changelog

v7.1 2023/12/26

  • Drivers added into Windows installer. App checks if there are drivers in application folder and would try to download them only if absent. Important for some folks.
  • HiDPI support! Well, sort of :) You can change application font and size in settings. Makes sense for Rectify11 users.
  • Fix locale processing. Important for some Linux users. #139
  • Simplified Chinese translation updated by @exiori. Thanks!
  • French translation updated by @requinDr. Thanks!
  • Korean translation updated by @DDinghoya. Thanks!
  • @justindhillon corrected broken links in 'readme' and 'pom'. Thanks!

v7.0 2023/02/11

  • First things first. @kuragehimekurara1 translated this application to Japanese and Ryukyuan languages! Thank you!
  • Build setup updated to generate sources for Java 11. This means, that now in linux and mac you have to install JDK11 or higher.
  • macOS M1 users, there is a ns-usbloader-7.0-m1.jar built for you! Works with any JDK, so no need to search and install something special. I've tested it with Oracle JDK 19. It was Java SE Development Kit 19.0.2 'Arm 64 DMG Installer'.
    • EDIT (17.02.23): On apple silicone you still have to manually install libusb via brew install libusb.
  • Windows users now receives Installer-7.0.exe which installs all necessary dependenies at once! In other words you don't have to download and install JRE from java.com. Application (jar) wrapped into exe file and bundled with java runtime. It was 'taken' from OpenJDK 19.0.2.
  • Since this release you are also will be able to install 'Split NSP/XCI/NSZ/XCZ', not only 'NSP'. This silly limitation removed. To be honest, I didn't test it. Guess it's should be fine.

v6.1 2022/09/25

  • Swedish translation added by @yeager. Thank you.
  • Korean translation updated by @DDinghoya. Thank you.

v6.0 2022/08/03

  • GoldLeaf v0.10 support added.
  • Chinese translation (Traditional) updated by @qazrfv1234. Thank you.
  • Chinese translation (Simplified) updated by @exiori. Thank you.
  • Korean translation updated by @DDinghoya. Thank you.
  • Spanish translation updated by @Uzi-Oni. Thank you.

v5.2 2021/09/16

  • Apple Silicon support. To run it on M1 you will need Zulu-JDK with FX. Please check discussion thread for details.
    • I don't have apple hardware and I highly appreciate community assistance in implementing this feature! Thank you for library, **@agungrbudiman! Thank you for testing, @cythb! And thank you for ideas, nastye.
  • Chinese translations (Simplified and Traditional) updated by FFT9 (XXgame Group). Thank you.

v5.1 2021/08/26

  • Batch Split/Merge in GUI (fix #87).
  • On start always open tab which has been opened before application closed (Game/RCM/Split-Merge).
  • Update to OpenJFX 16. Should be fixing issues on some macOS (#44 and #92).
  • Replaced 'Tinfoil' name to 'Awoo' everywhere because I think we need a new name to specify 'original Tinfoil'. Since it's 99% the same, *let's just use this. Reference to Awoo Installer but as always you are more than welcome to use what you want.
  • Tested compatibility with GoldLeaf 0.9 and added small updates to UI.
  • Korean translation updated by DDinghoya. Thank you.
  • Romanian translation added by Călin Ilie. Thank you.
  • Italian translation updated by unbranched. Thank you.

v5.0 2020/12/10

  • @wolfposd added 'files-scanner functionality': You can select folder instead of file/files to run recursive scan: all supported formats would be added. Same functionality set for drag-n-drop. See #51 for details (BTW it's not yet implemented for CLI). Thank you, wolfposd!
  • @eslamabdel translated application to Arabic. Thank you.
  • @DDinghoya updated Korean translation. Thank you.
  • Other not important minor color adjustments for 'light' theme, aligning pixels etc.

v4.5 2020/11/07

  • Real fix for #79, #80 and #81.
  • Long story short: In situation when application configuration (for whatever reason) contained incorrect/non-existing path to the recently used directory, application crashed or buttons stopped working. So now it's finally fixed. Really. I tested (Thanks for details, @tefanga).

v4.4 2020/11/06

  • Fix broken "Don't serve requests" option.
  • Update Brazilian Portuguese Translation by @andercard0. Thank you.
  • Fix/improve split-files validations.
  • Fix #79 (Merge: Save to folder not working), #80 (Select NSP files not working). Thanks @xXxQuiquexXx, @tefanga.

v4.3 2020/09/24

  • Simplified Chinese translation updated by @exiori. Thank you.
  • Brazilian Portuguese translation updated by @almircanella. Thank you.

v4.2 2020/07/28

  • Add Czech Translation by @spenaat. Thank you.
  • Add Traditional Chinese translation by @qazrfv1234. Thank you.
  • Minor corrections: language drop-down selector in settings now showing language names (and locale) instead of three-letter abbreviations; preferences option name changed (back end).

Release notes.

Credits

List of awesome code contributors, translators and other great people:

External links

Advertising: