List of Switch homebrew titleID
Switch Homebrew | |
---|---|
Introduction • Homebrew Development • Homebrew Bounty • Glossary | |
Release Lists | All Homebrew • Applications • Games • Emulators • Demos • Exploits • Payloads • CFWs • Development libraries & tools • PC Utilities |
Information | • Homebrew TitleID • Game patches and mods • Savegames • Websites |
This page will maintain a list of TitleID used by Homebrew using the NSP format to prevent conflict with other packed homebrew, or even retail games.
Please, help maintaining it and add your own homebrew or any nsp you create to help other developers and users.
You can find retail TitleID for system file and games on switchbrew.
Channel type
When you create and release an nsp file, you need to choosing between a Full homebrew or a Forwarder (nro loader).
The full nsp will contain the homebrew executable and will be stored on the console. If an updated version of the homebrew is released, the user will have to delete it before installing the new one.
The forwarder contains a small program which loads another nro file located on sdmc. The forwarder (or nro loader) will have the advantage of not needing any update or reinstall when you release a new homebrew revision, it will always load the .nro file located on the SD card. Forwarder are easier to use with Switchbru Appstore as users can update the nro on SD card and don't need to replace the installed channel.
NSP creation for your homebrew
HacBrewPack
You can use HacBrewPack(Thread), or NSPBuild to create an installable nsp file for your homebrew.
When you create your nsp, you have to edit a setting file (npdm.json) and specify the homebrew's title, its TitleID, etc.
You need a specific makefile for your homebrew in order to build a nsp, or you can generate a forwarder (nro loader) to install on your console.
A Homebrew Forwarder template is provided with HacBrewPack. Replace the path to the nro (sdmc:/hbmenu.nro) and the name and TitleID to use for your nsp, and the other parameters if needed.
HacBrewPack TitleID pattern
- Always use lower-case titleid
- Valid titleid range is: 0x0100000000000000 - 0x01ffffffffffffff
- It's not suggested to use a titleid higher than 0x01ffffffffffffff
nro2nsp Builder
This tool can convert nro to full nsp or generate a forwarder nsp pointing to the specified nro path.
When building a forwarder, the target path can be located on sdmc or ROMfs.
nro2nsp TitleID pattern
- Valid titleID pattern is: 05xxxxxxxxxx0000
Choosing the titleID
The Switch is using a TitleID protocol, and homebrew are encouraged to follow it too:
- ALL current Titles for Switch begins with 0100
- System Titles are all in "010000000000XXXX".
- Games end with "Y000". With Y being an even digit. Pattern: TitleID & 0xFFFFFFFFFFFFE000 (AND operand).
- DLCs ends with "YXXX". With Y being an odd digit, and XXX a DLC ID from 0x000 to 0xFFF. DLC is 0x1000 greater than base Title ID. Pattern: Base TitleID | 1XXX (OR operand).
- Updates ends with "0800"
TitleID generators
You can get an unique TitleID based on your app name by using this Python3 script. It converts 5 ASCII characters to HEX values, and encapsulate in with 01 and 000.
You can generate a random TitleID using this MSDos batch script. It generates random TitleID and encapsulate it with 01 and 000.
Note: These generators are not taking care of the DLC flag on bit 13.
Community recommendations
In an attempt to set a convention at the start of the homebrew development life on Nintendo Switch, you are encouraged to use a TitleID to clearly differentiate homebrew from retail titles. Some homebrew Title installers already use this pattern as white list to allow installation of homebrew nsp.
Current decision (up to debate as it's still new):
Homebrew Title ID mask : 05XXXXXXXXXXY000 where Y is an even digit.
Homebrew NSP TitleID List
TitleID | Homebrew name | Description | Link |
---|---|---|---|
010000000000100D | nx-HBLoader | The Homebrew Loader module used to replace the photo channel in cfw, loads sdmc:/hbmenu.nro | github |
010000000000C235 | Freebird | A Switch Clock Speed Control Sysmodule | |
0104444444444001 | HBMenu Loader | A forwarder to load sdmc:/hbmenu.nro | Thread |
0104561737950000 | EasyPower | A quick reboot utility | thread |
0107534616C6C000 | uae4all2 | A forwarder to load the Amiga emulator from sdmc:/switch/uae4all2/uae4all2.nro | Post |
05000A0000120000 | SXDumper | A forwarder to load the Team Xecuter SXDumper for SXOS from sdmc:/switch/SXDUMPER/SXDUMPER.nro. This is not an official release from Team Xecuter or WAIN but a custom forwarder channel. | thread |
05052434d5230000 | RCMReboot | Reboots your Switch to RCM (from Atmosphere 0.8.1+). Gives you 5 seconds to cancel. | Thread |
05052434d5240000 | RCMRebootInstant | Reboots your Switch to RCM (from Atmosphere 0.8.1+), no waiting. | Thread |
Other available nsp files, full homebrew and forwarders:
Homebrew KIP Sysmodules TitleID List
TitleID | Homebrew name | Description | Link |
---|---|---|---|
0100000000000036 | creport | A sysmodule part of atmosphere cfw to redirect the errors report sent to Nintendo to the SD card. | github |
31200000000000AB | Sys-play | A sysmodule to play a music in HOS background. | Thread |
4200000000000000 | nx-dreport | A sysmodule to delete the errors report sent to nintendo. Deprecated. | github |
420000000000000E | Sys-ftpd | An FTP client. | github |
420000000000000F | SlideNX | A sysmodule to play a mp3 file at joycon attach/detach triggered event. | Thread |
420000000000001E | SwitchPresence | A discord client. | github |
430000000000000A | sys-netcheat | A real time memory editor using a remote debugger. | Thread |