Home

Awesome

Nintendo Switch Cleaner and Builder (NSC_Builder)

DeviceTag LanguageTag

Temporarly archived: Currently i don't have the time to work on this repository, i will reopen it and reactivate issues if i have something to commit or time to work regularly on the project. The titledb fork will still continue to update and i will probably compile a new version including the latest master, don't think it had much changes since the last release i did but i'd probably compile it to include the latest keygeneration changes.

Update: Leaving it open for commits.

1. Description

Nintendo Switch Cleaner and Builder: A multi-purpose tool for interacting with Switch game files - a "Switch-Army Knife". Written in Python, Batch, and HTML. Originally developed to remove titlerights and create multicontent NSP/XCI files, though over time has expanded to have significantly more features, specializing in batch processing and file information.

NSC_Builder is based on the work of blawar’s nut.py and LucaFraga’s hacbuild. The core library, which is known as squirrel, was originally a nut fork, though over time it has added significant functionality and can be considered its own program. NSCB versions > 0.8 no longer rely on hacbuild for XCI generation, rather using its own code.

2. What does it mean to REMOVE TITLERIGHTS?

This is also known as converting to use standard crypto - it means that you have repacked the contents to be installable without a ticket being added to the Switch's database. Theoretically, standard crypto files leave a smaller traceable footprint on your console, provided you're not sending other telemetry to Nintendo. Important: This does NOT mean you can run preloads or dumped content that doesn't have a ticket (sometimes seen as NSX files).

3. What can I do with this program?

Current version of the program allows you to:

1.- Make multi-content xci or nsp files.

2.- Erase titlerights encryption from nsp files.

3.- Build xci files without the “update partition” which means they take less space on your storage.

4.- Take off deltas from updates

5.- Split multi content back into xci or nsp files

6.- Change the packing of the content between xci and nsp

7.- Lower the Required System Version to the actual encryption of the game.

8.- Lower the masterkey needed to decrypt a game.

9.- Check out information from a xci and nsp, including the Firmware needed to be able to execute it, the game info, the size of the nca content…

10.- Check data from nacp and cnmt files without extracting them from nsp\xci

10.- Repack xci and nsp content in formats compatible with fat32

11.- Mass build xci files and nsp files in single and multi content format

12.- Rename nsp,xci files to match it's content

13.- Verify nsp, nsx, nsz, xci and nca files

14.- Output information in text format

15.- Extract content of nsp files and secure partition of xci files

16.- Set jobs for later in multi mode

17.- Separate jobs by based-titleid in multi mode

18.- Remove bad characters from filenames (sanitize) or convert asian names to romaji

19.- Extract nca file contents for base games and dlcs or extract ncas as plaintext

20.- Joiner for xc*,ns* and 0* fat32 files

21.- Compression of nsp files into .nsz files

22.- Graphical interface for file information trough a gui running on chromium\chrome for local files and files on google drive

23.- Restoration of nsp\xci modified with NSC_Builder to their original game nca files.

3.1 With the help of DBI installer it can:

24.- Install or transfer files to mtp via switch locally, from google drive (auth and links) or from 1fichier

25.- Generate and transfer xcis and multicontent xcis from pc to switch

26.- Autoupdate your Nintendo Switch locally or from google drive

27- Search new updates and dlcs for your installed games via nutdb for your installed games and xci in the gamecard

28- Dump your saves or games from your Nintendo Switch

29- Uninstall your games and delete archived games/placeholders

30- Generate and transfer SX autoloader files for automounting your xcis for SD and HDD locations for scannable locations and non scannable by SX OS

31- Cleanup duplicated SX OS autoloader files to avoid collision between SD and HDD files

4. Batch modes:

The batch has 2 modes:

The behavior of the auto-mode is configured trough the “Configuration menu in manual mode”.

5. Manual mode options:

6. Configuration mode:

Auto Mode options. (Affects only Auto-Mode)

I. REPACK configuration
II. FOLDER'S TREATMENT
III. RSV patching configuration
IV. KEYGENERATION configuration
V. Global options. (Affects how the program works globally)
VI. Text and background COLOR
VII. WORK FOLDER's name
VIII. OUTPUT FOLDER's name
IX. DELTA files treatment
X. AUTO-EXIT configuration
XI. KEY-GENERATION PROMPT
XII. File stream BUFFER
XIII. File FAT32\EXFAT options

Pack xci or nsp in fat32 compatible formats or exfat format.

XIV. How to ORGANIZE output files (currently unused for new modes)
XV. Set New Mode or Legacy Mode
XVI. ROMANIZE names when using direct-multi
XVII. TRANSLATE descriptions from game-info using google translator
XVIII. WORKERS use multi threading for renames and database building

7. Gui for file information:

8. File_Info Gui examples:

Picture Picture2 Picture3

9. Important

This program attempts to modify the minimum data possible in nsp and xci files, due to that reason it requires signature patches to ignore both signatures at NCA headers. Firmwares that already include them are:

To install multi-nsp you need a installer compatible with them. Reported compatible installers are:

To install ncz files you need:

10. Requirements

11. Limitations

12. Thanks and credits to

NSC_Builder is based on

a.) Nut: Without the work of "blawar" one of the most talented Switch sceners nothing of this would be possible at this point. https://github.com/blawar/nut

b.) Hacbuild: The xci repacking functions are based on hacbuild's code, made by LucaFraga

c.) The mtp mode relies heavily on DBI installer by DUCKBILL. Specifically it was tested with DBI 1.25

d.) nsz,xcz and ncz specification by blawar: https://github.com/blawar/nsz

e.) Big thx to 0Liam for his constant help.

f.) pyNCA3,pyNPDM,pyPFS0,pyRomFS libraries adapted from pythac (made by Rikikooo)

g.) an adaptation of Pysos from dagnelies is used for some operations: https://github.com/dagnelies/pysos

Also thanks to:

Nicoboss for the original nsp and xci compression idea: https://github.com/nicoboss/nsZip/

AnalogMan. He made splitNSP.py, figured the needed block size for Horizon format splitted nsps (wich differs from the splitted xci block size) and the need to archive the folders) https://github.com/AnalogMan151/splitNSP/releases

Thx to MadScript77 his great suggestions,specially the idea of profiles for the batch.

Thx to 0mn0 and the old SH crew for always being helpful.

Thx to evOLved, Cinnabar and a certain dragon for their help and good suggestions.

Also thanks to all members from gbatemp, elotrolado.net and my friends at discord ;)

2020 - JulesOnTheRoad - https://github.com/julesontheroad/NSC_BUILDER