NSC_Builder is based in the awesome function "REMOVE_TITLE_RIGHTS" from nut by blawar this function let's you erase the titlerights encryption from nsp files.
Current version of the program allow you to make multi-content xci or nsp files.
The batch has 2 modes:
- auto mode: you drag nsp files individually or folders with several files over the batch to enter in auto mode.
- manual mode: you double click the batch and you can build a list of files to process.
The behavior of these modes can be controlled by editing ztools\NSCB_options.cmd
The program incorporates a custom build of nut.py and hacbuild with several added functions. You won't be able to use it if you replace these files for the official builds.
- A computer with a Window's OS is needed
- You'll need to have Python 3 installed for the program to work correctly
- You'll need to install these libraries: "urllib3 unidecode tqdm bs4 tqdm requests image" to assist you in this you can run "install_dependencies.bat" file.
- You need to fill the keys_template.txt file inside the ztools folder and rename to keys.txt
- You'll need to have at least .net frameworks 4.5.2 installed so hacbuild can work correctly.
4. Option description
OPTION 1: Work and Output folders setup
OPTION 2: Route to needed programs
OPTION 3: Nut options
- pycommand -> your command to invoke python 3 (by deffault py -3)
- buffer -> buffer in number of bytes for the copy functions
OPTION 4: Route to game_info.ini and keys.txt
OPTION 5: REPACK OPTIONS. Controls repack in auto mode.
Repack option for auto-mode
- xci -> repack as xci
- nsp -> repacck as nsp
- both -> repacck as both
Type of repack for folders
- indiv -> repack content individually as multiple xci/nsp
- multi -> repack content as single multicontent xci/nsp
OPTION 6: MANUAL MODE INTRO.
- indiv-> Enter in individual packing mode directly
- multi-> Enter in multi-pack mode directly
- choose-> Prompt to choose the mode in which you want to enter
OPTION 7: ZIP FILES
Select if you want to zip things that will allow to restore nsp files to original state.
- You can't make multi-content xci files with more than 8 games. It'll give error when loading in horizon. I suspect it may be a qlauncher limitation so it could work with theme mods but INTRO didn't test it.
- If you pack an update that requires a superior firmware that you're in you won't be able to skip the update prompt.
6. Planned features
- List manager.
- Batch tools to put in application some of my changes to nut libraries.
- Support for meta patching and control nca building for custom logos.
- Skips for individual mode.
- Content splitter.
- Titlerights restoration mode.
7. 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.
b.) Hacbuild: The xci repacking functions are based in hacbuild made by LucaFraga
Original hacbuild by LucaFraga
c.) hactool: Program which function is give information, decrypt and extract a lot of different kind of files us by the NX System. Hactool was made by SciresM.
d.) 7zip: Program meant to compress and extract files in several formats, made by Igor Pavlov.
Thx to MadScript77 his great suggestions,specially the idea of profiles for the batch. Thx to Liam from old SH discord for always being helpfull. Thx to XCI-Explorer's creator StudentBlake since his program made easier for me to came up with the fix for hacbuild.
Also thanks to all members from gbatemp, elotrolado.net and my friends at discord ?
Que novedades incluye la versión 0.99
1. New Mode "M" - mtp a MTP manager for DBI
a) Local files installer
- Installation via queue for nsp, nsz (directly) and xci (preconversion)
- Select installation medium (SD\EMMC)
- Pre-verification of files (disabled,level2,hash verification)
- Check space on device before installing each file and optionally change installation medium (SD\EMMC) if the other has space left and the targetted one runs off space.
- Check keygeneration required by files vs fw reported from console, skip installation if the keygeneration required is bigger than the available. Optionally patch the file pre-installation.
- Optionally check if game is already installed and skip installation if that's the case.
- Optionally check if the same update id is installed, check version installed and if the installed version is bigger skip installation while if it's smaller predelete the old update to reclaim space and procede to the installation.
- Optionally install prepatched nsps when attempting to install a nsp that requires a higher keygeneration.
- Preconvert xci\xcz to install on the system.
b) Remote location installer
- Install nsp and nsz directly from google drive and 1fichier
II.- File transfer
Transfer any file from local or remote locations.
DBI allows transfers of more than 4GB via mtp autoarchiving in Nintendo format, that means the transfer mode can transfer with ease xcis or movies to the setup locations on the SD.
- Take a local library or google drive library and check if it has new updates or dlcs for the installed games, if it does autoupdate the console.
- You can let the program applied updates automatically or select between the ones detected.
- Note: If you installed games previously on this mtp sesion disconnect the mtp responder first and reconnect again to get accurate information since installed games data is parsed once per session.
- Identifies installed games,updates and dlcs and allows them to be removed via a selector.
VI.- Content dumper.
- Allows to dump games, updates and dlcs to the setup libraries.
VI.- Archived games cleaner.
- Identifies archived games and allows to clean them up.
- Device information
- Check installed and archived games
- Search new updates and dlcs for the installed games and xcis on the SD versus nutdb
- Search new updates and dlcs for the archived games versus nutdb
- Detect empty registries and clean them up
- Dump savegames in JKSV zip format
- Adds the date of the dump to the name of the file so several dumps don't collide.
- Optionally add [titleid] and [version] to the name of the Files
- Optionally store the files in folders per game or inline
X.- Generate SX autoloader files
- Can generate sx autoloader cache files for any path on the SD if titleid is listed. That includes non scanned paths.
- Can generate sx autoloader cache files for any path on a HDD if connected and send them to the appropiate folder on the SD.
- Can ensure autoloader files won't collide between the SD and the HDD.
- Note: While the autoloader works on archived files and installed placeholders the placeholder takes priority so the xcis are loaded after an error, that's the reason the placeholder won't be created automatically.
- Note 2: As an alternative NSCB can create xci placeholders, which will load a gamecard placeholder which is appropiate for the autoloader. This xcis will be loaded to a path scanned by rommenu and can be deleted after.
- Note 3: Alternatively you can make the first xci mounting from sx installer file browser.
3. New things added to the File Info Web Interface
- Support to read xc0 and ns0 files (missning nmpdm reader and verification)
- Support to read files from google driver
- Direct link reader support for interface meant to use with public google drive links
- Ability to avoid quota in public drive links by setting a remote cache library, which will clone to that folder on google drive the link before reading it's information.
- Ability to setup libraries to search and load information from them.
- Ability to open the selected picture in the gallery in a new window to zoom it
- Ability to detach the gui from the console with the "noconsole" parameter which will load the console information in a new side tab on the Interface.
- Ability to open several interface windows at the same time by opening different ports per Interface.
- Ability to setup host and fixed port for the interface.
4. Test server concept
- The new Server.bat can load a new server concept with the functions from the gui. This server will not open a windows but it'll generate the webpage every time you open the specified port and host.
- The server allows to setup ssl connections by adding a valid key.pem and certificate.pem in zconfig and changing it's ssl parameter. That will connect to it using https: instead of http and secure sockets.
- The server can load files using the library functions or if open locally the normal window selector. The selector will be hidden if you open NSCB.html but will be visible with main.html
- The server can be ran with a hidden console too.
- It being a proof of concept the interface isn't fully adapted to widescreen yet since and it doesn't have any kind of account validation so secure it if you plan access trough the internet.
- Added data for new firmware.
- Fixed ticket class issue
- Fixed issue where the nacp reader wasn't showing the proper information on certain parameters on gui and cmnd. Only the reader, patching functions or other nacp based functions were setup correctly.
- Added support to new sig1 key thanks to 0Liam.
- Several other stuff I don't remember since a lot of fixes and modifications were done to the beta branch since 0.98
6. How to setup each library type
To get full support for every function on NSCB mtp mode you'll need to setup several library files, examples for this files can be found in zconfig. You'll have to edit the example and delete the example tag in the file name. Specifically mtp mode makes use of the files depicted in this section. Bellow you can find the meaning of each file and how to set it up.
mtp_download_libraries_example.txt > mtp_download_libraries.txt
Libraries to setup the dumps and savegames and in general files the pc receives from the Switch.
mtp_SD_libraries_example.txt > mtp_SD_libraries.txt
Libraries to setup the folders in which the switch will receive files pushed with the transfer function.
Example: SD_XCI|1: External SD Card\sxos\xci
As you can see the SD locations starts with *1: External SD Card* this is the name of the SD mount DBI makes on your pc, start your locations on the sd with that string.
mtp_source_libraries_example.txt > mtp_source_libraries.txt
Libraries to setup the local folders from your pc that will be used by the autoupdate function to search for new files, as well as with the install and transfer functions.
Example: BASE|C:\NSP\BASE|FALSE or UPDATES|C:\NSP\UPDATES|TRUE
As you can see a Update parameter is added, this sets up what folders are scanned in the autoupdate function. If TRUE the folder is scanned if FALSE it won't get scanned. The non scanned libraries will get used by the installer and transfer mode in the future.
remote_libraries_example.txt > remote_libraries.txt
Libraries to setup the google drive folders that will be used by the remote installer, remote autoupdater and remote transfer functions.
It will also be used in the NSCB Drive Mode and in the library function from NSCB Web Interface.
Example: BASE|drive:/base|TD_Name|FALSE or UPD|drive:/updates|None|TRUE
The Update parameter sets up what folders are scanned in the autoupdate function. If TRUE the folder is scanned if FALSE it won't get scanned. The non scanned libraries are used by the remote installer and remote transfer functions.
The TD parameter is used when your files or folders are in a TeamDrive or Shared Drives as are called currently. If your files aren't in a TD input None there or ||. With double bar it'll look as UPD|drive:/updates||TRUE
Remember that drive is your token name.
remote_cache_location_example.txt > remote_cache_location.txt
Folder in your google drive account where public files are stored to avoid quota and get a better support on the google drive API. Is recommended for the Interface and required for the mtp mode when using public links.
Example: cache|token:/cache| or cache|drive:/cache|TDName
As you can see if you don't have a TD just add a | at the end, you can also add None if you have a TD add your TeamDrive name.
local_libraries_example.txt > local_libraries.txt
Folder where your local library is stored. This is used currently by the HTML interface local libraries
download_libraries_example.txt > download_libraries.txt
This is used on the Drive mode to setup folder where the program will download or generate files
7. How to setup auth for google drive
To enable the google drive api you need to go here https://developers.google.com/drive/api/v3/quickstart/python and press on Enable the drive api, select Desktop App, press Create and the press Download Client Configuration, you'll get a credentials json.
You can use that file to generate tokens for any account, but you'll get a message of not verified app if you use it with a different account. This is unrelated to NSCB since you're using your own app, setup with that credentials file
Once a token is generated you can delete the credentials file though you can also have several files renamed as token_name.jsonToken name is the name of the token you plan to setup on the next step.
To setup the token, open NSCB go to configuration and google drive configuration, then press 1 to register an account, it'll ask you the name of the token, once you input that a browser will be open and you'll log into the account you mean to setup.
The token name is important NSCB uses your token as if it was a path letter, so a token called mydrive will be able to setup locations such as mydrive:/Switch/nsp
8. How to setup auth for 1fichier
For 1fichier auth you need to store the 1fichier token in zconfig/credentials with the name _1fichier_token.tk
To get the token you need a 1fichier account, then in this page https://1fichier.com/console/params.pl you'll find a section called API Key, press in Enable API usage, get the key and paste it in an empty txt file, then rename the file to _1fichier_token.tk