| Nro2Nsp | |
|---|---|
| Author | Root-MtX |
| Type | Emulation and Forwarders |
| Version | 3.3.6-beta4 |
| License | Mixed |
| Last Updated | 2020/02/21 |
| Download | |
| Website | |
| Source | |
An easy to use NSP builder for Redirection or internally built NSPs using NROs and now Retroarch Rom forwarders.
Requirements - PC
Switch Keys File:
A key file (keys.dat, prod.keys, keys.txt) is required to build the nsp. This file is to added to either:
./Nro2Nsp/Resoures/folder, or to"DriveLetter":/Users/"username"/AppData/Roaming/Nro2Nsp/", or- defined in the
Custom Key Pathwithin the settings menu.
The order of priority for loading keys file is: 1.Resources folder 2. Declared Custom Key path from settings 3. Appdata folder.
The required keys are:
- master_key_0X - X is dependent on what Key Generation is set in Settings Menu (see key generation chart below)
- header_key
- key_area_key_application_source
- aes_kek_generation_source
- aes_key_generation_source
Key Generation List: * Keygen 1 (1.0.0 - 2.3.0) - master_key_00 * Keygen 2 (3.0.0) - master_key_01 * Keygen 3 (3.0.1 - 3.0.2) - master_key_02 * Keygen 4 (4.0.0 - 4.1.0) - master_key_03 * Keygen 5 (5.0.0 - 5.1.0) - master_key_04 * Keygen 6 (6.0.0 - 6.1.0) - master_key_05 * Keygen 7 (6.2.0) - master_key_06 * Keygen 8 (7.0.0 - 8.0.0) - master_key_07
Windows Users:
Mac/Linux Users:
Requirements - Switch
Custom Firmware:
You'll will need to be running a cfw in order to install these nsps, there is currently 3 cfw to choose from:
- Atmosphere - Requires es and fs patches (can be found here).
- ReiNX - Does not currently support 7.x.x and newer.
- Sxos - Requires paid license and does not currently support 7.x.x and newer.
Title Installers:
You will need a title installer to install the Nsp, there is a couple of different options to choose from and results may differ between users:
- Original Tinfoil - Fast and easy to use, no longer being developed and does not work on 7.x.x or higher
- Dz/Tinfoil - More advanced title installer, requires you to use the install unsigned code option and input the Konami code.
- Goldleaf - Multitool installer, current releases do not support 7.x.x or newer but nightlies will work.
- Lithium - Simpler and faster version of Dz/Tinfoil, easier for the end user. Requires you to use the insall unsigned code option and input the Konami code.
- SxInstaller - Sxos cfw verison of the installer, will require sxos cfw to use.
How to use
Windows:
- Double click the Nro2Nsp.exe executable.
Mac/Linux:
- Open terminal.
- cd to folder location (e.g.
cd Desktop/Nro2Nsp) - Then type
sudo mono --arch=32 ./Nro2Nsp.exe - Linux users report that --arch=32 is not supported and not needed.
- Mono will take some time to build the first time, just be patient.
You should now have the app launched and should be greeted with a window that looks like the screenshot above. Check out the settings button on the lower right to configure the settings to your needs. See Settings for a breakdown on the available options.
Main App Window
| Field/Option | Purpose |
|---|---|
| App Name | The Name that youd like displayed for the app. |
| Title Id | This is the application id and needs to be different per each application with the format of 05XXXXXXXXXX0000 |
| Author | Fill this in with the name of the author |
| Version | Fill this with what you want the version to show |
| Icon Box | This will be what you see on the switch, see below for format options |
ex:
AppName: TestApp
Title Id: 05000F2300000000
Made by: MtX
Version: 1.0.0
Icons
- Above the icon you will see "Icon Database" this will link you to a github folder of icons from the community.
- To import your own click the icon box and select the icon.
- Supports 256x256
.jpg. - Other popular formats and resolutions will be converted automatically, but can cause image degradation.
- You can even load an existing
.nroto to use that apps icon.
- Supports 256x256
Forwarding Section
There are 2 different types of forwarders:
- Standard Nro Forwarder - for use with homebrew applications.
- Title Id - for use with retroarch game roms for using through the retroarch emulator core.
Standard Nro Forwarder:
- There are two different options here that require typing out the full path to the /nro file location on the SD card. For example:
/switch/my_homebrew.nro - Note: Paths must be exact (case sensitive) and will throw a system error if theres no mathing .nro/rom.
sdmc - For loading an nro from an sd path, Nsp does not contain the nro, it only points to it. ex:
sdmc: /switch/tinfoil/tinfoil.nro
romfs - For building nro internally of thr nsp, pick your nro and it should do the rest. This option does not need tinfoil on the sd card but this option has limited compatibility at this time. ex:
romfs: /tinfoil.nro
Retroarch Rom Forwarder:
- For this you'll need to fill out both boxes, Core Path and Rom Path.
- There is a predefined list for retroarch cores and rom paths. You can edit these to add cores or change your rom paths, see XML Editing.
Set core path - Path to the core to load for the rom, ex:
sdmc: /retroarch/cores/snes9x_libretro_libnx.nro
Rom Path - Path to the Rom to load, ex:
sdmc: /roms/Snes/Super Mario World.smc
Final step
- Click the compile Button.
- Wait for compiling to finish.
If successful then the NSP should be built in the ./Nro2Nsp folder as Appname_[TitleId].nsp, if the build failed please see Troubleshooting for help.
Settings
Preset Author - If this is in enabled the program will automatically populate the Author Textbox when the application is launched, this is useful if the same Author will used for multiple builds
Rolling Title Id - If this is in enabled you'll need to first set the base title id you'd like the use. (ex: 05021F10000000). After each successful build the application will automatically increase the title id by one for you next build (ex: 05021F10010000).
Preserve Data - If this is in enabled then the Nca, Exefs, Romfs, and control data will be saved after building. This data will be saved to the Nro2Nsp Folder.
Set Key Generation - This allows you to change the key generation used to build the nsp, this will also dictate which master keys are required in you keys file. Lower key generations will work on higher firmwares but higher key generations will not work on lower firmwares
- Keygen 1 (1.0.0 - 2.3.0) - Masterkey 0
- Keygen 2 (3.0.0) - Masterkey 1
- Keygen 3 (3.0.1 - 3.0.2) - Masterkey 2
- Keygen 4 (4.0.0 - 4.1.0) - Masterkey 3
- Keygen 5 (5.0.0 - 5.1.0) - Masterkey 4
- Keygen 6 (6.0.0 - 6.1.0) - Masterkey 5
- Keygen 7 (6.2.0) - Masterkey 6
- Keygen 8 (7.0.0 - 7.0.1) - Masterkey 7
Enable Beta Build - If this is in enabled then the program will check for new version of the application on startup and include beta builds, these contain the newest features but may contain some minor bugs. This is enabled by default.
Skip Current Update - This gets enabled if you click "Skip this update" on an update notification. You'll no longer be notified of this update version.
Custom Keys Path - Use this option to load your keys file from the location you define.
Export Settings File - Clicking this will save all your defined settings to a Settings.xml, this can be loaded by placing it in the ./Resources/ folder and will overwrite other settings.
Theme Menu - This is just a basic theming tool for the app to change as you'd like. Use the reset all button to revert to default.
Logo Menu - This menu lets you change the startup animation logo and gif on the switch when the application is launched. Check out the "logo" folder in the "resources" folder for some amazing community logos. There's a couple of basic options in here:
- No logo - Just shows a black screen with no startup animations
- Set as default - If not checked the logos will only be used for this application cycle, if true these will be saved for all builds
- Reset all - This just reverts everything back to the deaults
The recommended sizes for these icons are:
- Logo - 160x40 PNG
- Animation - 256x80 PNG
XML Editing
Cores.xml - Preset core list for retorarch with paths
- layout ex:
<details> <core> <name>Nintendo - Quicknes</name> <path>/retroarch/cores/quicknes_libretro_libnx.nro</path> <show>true</show> </core> <core> <name>Super Nintendo - Snex9x</name> <path>/retroarch/cores/snes9x_libretro_libnx.nro</path> <show>true</show> </core> </details>
- name: Name of core
- path: Path to the core
- show: If set to anything but true it will be hidden
paths.xml - Preset rom path for where system roms are located
- layout ex:
<details> <system> <name>Super Nintendo</name> <path>/roms/Snes/</path> <show>true</show> </system> <system> <name>Nintendo 64</name> <path>/roms/N64/</path> <show>true</show> </system> </details>
- name: Name of the System
- path: Path to the rom directory per system
- show: If set to anything but true it will be hidden
Troubleshooting
For some reason things go side ways take a look through here for common errors! The most useful tool here is the "log.txt" i the "Resources" folder.
- If you're getting an error "234C02" when installing, then your cfw patches are wrong/missing.
- If Dz/Tinfoil says its installing but nothing happens then update Dz/tinfoil as there was a fix for this.
- If Building fails then its usually due to a keys file error, verify keys and check the log
- If using romfs and you get a system crash when launching then try the sdmc option, some nros arent compatible with romfs at this time
- If you get a popup saying either nro missing from path, rom missing from path, or core missing from path, then your item cannot be found at your defined path. Double check your paths.
Special notes
- If you're getting an error "234C02" when installing, then your cfw patches are wrong/missing.
- To load Meta information from .nro automatically, load the .nro by clicking "romfs" and choose yes. This will automatically load all the information from the .nro. If you want to use sdmc then select "sdmc" after and use as normal.
- You can load meta information by loading an .nro from the icon box.
- Some nros are not working with romfs (old tinfoil, dOPUS) use sdmc for those for now.
- Title ids now follow (05xxxxxxxxxx0000) format.
- Mac and linux may experiance bugs or weird issues due to mono.
- First launch may take a while to load if using mono, be paitent / ui looks less pleasing as well.
Thanks And Credits to these fine folks:
- "Natinusala" for differnt approach of hbl to work with Retroarch/forwarders.
- "Switchbrew" for the hblauncher source.
- "The-4n" for Hacbrewpack, and the Atmosphere patches listed here.
- "alexzzz9" for the hblauncher source and providing useful help.
- "jakcron" for Nstool for extracting nro info.
- The OG WarezNx Discord crew R.I.P.
- JAS, jnackmclain, Jafece for being logo masters and providing logos to use.
- "chronoss", "kevinbrew", "jnackmclain", "Jafece", and "Broduskii" for the icons in order to make an icon database.