[SWITCH] Released NSC_Builder V0.88

New update for NSC_Builder aka Nintendo Switch Cleaner and Builder with the new version 0.88 from the developer julesontheroad .NSC_Builder is based on the fantastic “REMOVE_TITLE_RIGHTS” feature of the blawar developer’s nut, this function allows you to delete the titlrights encryption from the nsp files. The Tinfoil and SX installer will install the ticket in both modes so that it does not remain in the system where it is necessary to delete the ticket and the certificate from the nsp. This batch file will take care of it.

The current version of the program allows you to create multi-content xci or nsp files.

The batch file has 2 modes:

  • automatic mode : individually drag nsp files or folders with multiple files onto the batch to enter automatic mode.
  • manual mode : double click on the batch and you can create a list of files to process.

The behavior of these modes can be controlled by modifying ztools NSCB_options.cmd

2. Important

The program incorporates a custom build of nut.py and hacbuild with several added features. You will not be able to use them if you replace these files for official builds.

3. Requirements

  • A computer with a Windows operating system is required
  • You will need to have Python 3 installed for the program to work properly
  • You will need to install these libraries: “urllib3 unidecode tqdm bs4 tqdm requires the image” to help you in this you can run the file “install_dependencies.bat”.
  • You have to fill the keys_template.txt file inside the ztools folder and rename it to keys.txt
  • You will need to have at least .net framework 4.5.2 installed so that hacbuild can work properly.

Descriptions of the various options

OPTION 1: setting up work and output folders

OPTION 2: path for the necessary programs

OPTION 3: nut options

  • pycommand -> your command to invoke python 3 (default py -3)
  • buffer -> buffer in number of bytes for copy functions
  • Copy -> function with or without delta

--C_clean -> Copy and remove titlerights. Don't skips deltas

--C_clean_ND-> Copy and remove titlerights skipping deltas

OPTION 4: Install a game_info.ini and keys.txt

OPTION 5: REPACK OPTIONS. Check the repack in automatic mode.

Repacking option for automatic mode
  • xci -> repack as xci
  • nsp -> repack as nsp
  • both -> both repacks
Repack type for folders
  • indiv -> repackages the contents individually as multiples xci / nsp
  • multi -> reset the content as a single multicontent xci / nsp


  • indiv-> Enter directly into individual packing mode
  • multi-> Enter directly into multi-pack mode
  • choose-> Ask to choose the mode you want to enter


Select if you want to collapse items to restore the nsp files in their original state.

5. Limitations

  • It is not possible to create multi-content xci files with more than 8 games. It will give error when loading. I suspect it could be a limitation of qlauncher, so it might work with theme mods but INTRO has not been tested.
  • If you pack an update that requires a higher firmware where you are, you will not be able to skip the update request.

6. Scheduled functions

  • List manager.
  • Batch tools to implement some of my changes to nut libraries.
  • Support for meta patching and control for creating custom logos.
  • Jump to the individual mode.
  • Content separator.
  • Titration restoration mode.



  • Adds verification of the correct original titlekey for xci conversions from nsx files without a titlekey.
  • Fixes the bug when the RSV control progress bar multiplies when you check the dlc unlockers
  • Corrects the message “needs RSV check” for non-meta files in nca files created by the community (They will not be verified in level 2 yet since they will not have an appropriate signature1)
  • It adds the name of sanitization after the conversion of romaji
  • Improves removal of empty space after romaji conversion
  • Add all Roman numerals to the list of incorrect characters, they will be replaced by its multi-character equivalent.


  • Solves the build exe 
    – v0.87 exe builds would have raised an exception when converting to romaji, this has been resolved with the inclusion of the missing files needed.


  • Added support for key generation 9 masterkey8 in info, key verification, nsp xci verifier and key generation function
  • Fixes the problem when squirrel tries to find the ticket when the user checks a standard crypto nsp
  • Added Dinghoya’s Korean language via NSCB_KR. This file is linked to the NSCB_KR_options.cmd profile


  • Adds the file verification system accessible in the information and in the individual modes 
    – The verification has 3 modes: 
    * Level 1: decryption test 
    > Check that all files are readable nec 
    > Files not listed are missing 
    > Check all files nec needed in the file 
    > Test titlekey is correct for the nec titling files 
    > Compatible with files with multiple tickets 
    * Level 2: test of signature 
    > Test of files against the fixed signature of Nintendo 
    > Restores virtually the header for files removed from ownership 
    > Virtually restores the header for files modified by isgamecard
    > Virtually restores the header for modified key generation files 
    > Match restore headers or not restored with Nintendo’s signature 
    > You can accurately state that a file has been signed by Nintendo if modified by NSCB, which will obviously serve to test the security of the converts 
    · If the title key has been removed, print the key of the original title 
    · It will not work when the files have not been signed by Nintendo or by other conversion methods 
    · For meta files with modified RSV, header recovery is awaiting implementation, which will arrive in the next iteration 
    * Level 3: hash test 
    > Test files with their hash listed
    > It will use the restored header to create a hash for modified files, if necessary 
    > It can declare with precision that a file is not corrupt 
    · For information on files, the program will ask if you want to perform a hash test after passing the checks level 1 and level 2 
    · This helps to read files from the cloud with the filestream methods since level1 and level2 are practically instantaneous while a hash check is equivalent to a complete download. 
    > Methods supported by Filestream: 
    · Raidrive 
    · Google filestream 
    · Rclone support
    > For file information, the printouts have been captured so that the text output is instantaneous in the verification mode. It will be added to other information methods in the future 
    > Individual verification allows mass verification. 
    > The NSCB will ask for the verification level before starting the process 
    · If an invalid file is detected, it will be written to badfiles.txt in the root directory 
    · The verification output for each file is added to INFO VIFY 
    · Also compatible with filestream methods 
    – Add advanced mode to add extra features regularly 
    * Only extraction of files for nsp has been added for now
    * The result of the extraction is added to the “extract” folder 
    – Add the SDK numbers in info mode with the correct format 
    – Add the SDK numbers to the extended database 
    – Several other bugfixes


  • Restores the implementation of the direct multi handler for Asian names
  • Fixes the issue with the rebuilder where a wrong argument was used
  • Fixes the problem with dlc payroll keys in the database for encrypted dlcs encryption data


  • Introduced the possibility to create more multixci or multinsp both in automatic and manual mode based on the base-titleid of the games
  • Introduced the possibility to set up jobs for multimodal mode so that they can be built in a single subsequent step. This is especially useful if you want to add several games to xci nsp
  • Introduced ability to ignore configuration jobs in favor of the current one.
  • Set up folders for multi-build jobs. The root folder is “lists”: 
    * Sub-directory for the configuration works: lists \ m_multi 
    * Sub-directory for current jobs: lists \ a_multi 
    Note: The lists are created during the normal operation of the program.
  • Implemented ability to handle exceptions for the few Asian games that had their title not decoded correctly.
  • Fixed problem with the multi-content splitter where dlcs updates were not split as nsp when the output was set to xci
  • Added the ability to generate xci data on databases
  • Added simplified database option
  • Added super-xci-trimmer to the individual modes. Paddings will take off, the partition and game updates will be updated. It aims to minimize the xcis scenes that can be verified with Tinfoil, which has already ignored updates during the installation of these xci since they are normally obsolete. 
    NOTES: The card-ncas are not modified so the signature verifies on tinfoil
  • Added file rebuilder in individual modes. This is rebuilt by cnmt order nsps, does not ignore files without delta, adds cnmt.xml file and delta delta if selected in the config like the other modes
  • Delta removal mode is now rebuilt according to the cnmt order and creates cnmt.xml files
  • The Delta removal mode now respects the original names.
  • The Fat32 mode in the NSCB-new new multimode now follows the same style of renaming of the exfat mode
  • Added additional tag removal options
  • Added the possibility to set delta-removal, xci-supertrimmer or nsp-rebuilder in automatic mode.


Fixed bug in the stable batch that would require in individual mode to patch a file to a lower key generation. 
NOTE: the beta version is recommended for users who do not need the fat32 division. Stable can be considered as a legacy version.

v0.82 BETA

  • – Added direct generation without NCA extraction for multi pack processing (Mode 2)
  • – Added name calculation for multi pack processing (mode 2)
  • – Added content calculation for multi-pack processing (this replaces the update mode in a better and more effective way)
  • – Option temporarily removed to fix the logo in multi-xci files
  • – Added option to generate multi-nsp including tickets without modification nec. This file will pass the blawar tinfoil signature control. 
    The notes: 
    * The mode only includes content from nca files 
    * If you include unlockers or converts the final file you will not pass blawar’s tinfoil verification. I’ll add an option to prevent inclusion of modified ncas in this mode in future updates.
  • – Fixed detection of Japanese language in info functions and db functions for some games. (Note: it is still necessary to correct the 11 Japanese games that give a decoding error when you get the name)
  • – Several minor errors
  • – Set the update mode as LEGACY. Associated to be removed in future versions or to be re-proposed as a way of modifying the content.
  • – The new name follows the following scheme: name [titleid] [game version] (number of games + number of updates + DLC number)
  • – Known problems in the fat32 splitter with the new direct construction modes therefore disabled in the beta version.
  • – Since the splitter has been deactivated, a modified version of 0.80-c has been included as stable if it is necessary to perform the subdivision into fat32 using this version. 
    NOTE: in future versions the fat32 splitter will obtain its own mode along the new cutting functions to avoid interference with the current direct construction methods.

v0.80 BETA

  • Deleted all external dependencies of the program. The current program is completely powered by squirrel.exe or squirrel.py. (The beta version will be based on squirrel.exe
  • Added direct xci generation from file nca with new code. This increases the generation speed and makes it equal to the nsp generation.
  • Added progress bars

Added direct generation to fat32 formats for nsp and xci

  • File xci FAT32 (xc0, xc1, …)
  • FAT32 compatible with SX rommenu (ns0, ns1, ..)
  • FAT32 compatible with all installers (00, 01, ..) in an archived folder. The folder is set as automatically archived

Set the zip generation in the zip folder and disable it by default.

Added option to organize files on subfolders or individually in the output folder. By default it will be individually.

Added option to configure the buffer through the bat. Increased the default 64kB buffer that works best for me. Try different buffers to find the best one;)

Switch to false exit in automatic mode and connect it to the batch option previously used only in manual mode.

“Cls” calls reduced in automatic mode “

Added the minimun key model. NOTE: xci_header_key is optional, if not included, the game information will use the default data already encrypted with a default IV.


  • Correct detection for keygeneration 2 that solves the problem with Xenoblade Chronicles 2 DLCs
  • Added xml generation during repacking as NSP which provides xci-explorer support.
  • Fixed the issue with NSCB clossing in information mode if you try to swap the file without going back.
  • File exchange is now enabled.
  • Improve the functions in mode 5 “file information mode”: 
    1.- Get xci CONTENTS sp will show the game data, file types and dimensions for all contents within xci or nsp. 
    2.- The requirements GAME-INFO and FW are expanded with further information for dlc, information on 
    the editor , information on the language … 3.- Reading the CNMT has been extended to include extended meta information.
  • Improved spitter naming.


  • Fixed error with RSV patch when the DLC got the PatchRequiredNumber update


  • Added a new option to global config to skip the RSV patch request dialog and key generation patch.
  • Added fallback for names in information function number 3 in case there is no english / american name. If the name is Japanese, for now it will be shown strangely


  • Added configuration from block, option to change key generation, correct RSV fixes and more.

1.- Added options to change the key generation to allow the execution of games with lower firmware.

Note that it will not always work as the game may have other dependencies than the firmware. From 6.2 to 6.0 it seems to work and from 6.2 to 5.0 it works if the basegame is 5.0

2.- Added “Mode 0” – Configuration of the bat profile.

3.- Added auto-profile link. A Bat profile will link to its configuration file if they follow the following pattern of names:

a) Bat -> batname.bat
b) Profile in zconfig -> batname_options.cmd

Where “batname” is a name of your choice. You can add all the bats in the same folder as you want with different profiles in this way.

4.- Correct reading of RequiredSystemVersion. It appears that our XML update reads the wrong value and RSV is 4 bytes instead of 8 bytes. Thanks to Liam for the information.

5.- Added better navigation from the pip and auto-exit dissociation in manual mode so people can see the log. (Auto-Exit can be activated in the configuration)

6.- Added “mode 5: file information mode”. Drag a file and choose if you want:

a) See the content
b) See “nut information” (as the NUT from blawar shows it)
c) See the firmware requirements and what is patchable without changing the key generation) file nec encryption)
d) Get a reading of the cnmt

You only have to upload the file once to get all the readings and the functions will allow you to print each reading in a text file in the “INFO” folder on the pip route.


  • Added RequiredSystemVersion patch option in meta nca (set by default)
  • Reading modified Read permissions for input files to read
  • Renamed “nut_RTR.py” in “squirrel” because it deviates a lot from the main line of Nut.


1.- Added nut options. Copy function with or without delta. It will allow you to skip deltas that are not needed for xci files.

For nsp files they are used to transform old updates into new ones so that they are installed faster and old updates do not remain in your system. 
They are disabled by default if you use nsp consider activating them.

2.- Added direct extraction from xci files instead of using the hacktool, so now the extraction speed is linked to the buffer.

3.- Added a couple of fallbacks to detect the masterkeyrev in non-standard ticket formats and old ticket formats.

4.- Minor code cleaning and minor corrections.

Note: There is no pause in the individual manual mode. This is solved.