From WikiTemp, the GBAtemp wiki
(Homebrew NSP TitleID List: added link to some nsp)
(HacBrewPack: added information for titleID range)
Line 31: Line 31:
 
'''HacBrewPack TitleID pattern'''
 
'''HacBrewPack TitleID pattern'''
 
* Always use lower-case titleid
 
* Always use lower-case titleid
* Valid titleid range is: 0x0100000000000000 - 0x01FFFFFFFFFFFFFF
+
* Valid titleid range is: 0x0100000000000000 - 0x01ffffffffffffff
 
+
* It's not suggested to use a titleid higher than 0x01ffffffffffffff
  
 
===nro2nsp Builder===
 
===nro2nsp Builder===

Revision as of 12:23, 27 November 2018


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
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

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