From WikiTemp, the GBAtemp wiki
(updated titleID for DLC again)
(updated titleID for DLC again)
Line 34: Line 34:
 
* ALL current Titles for Switch begins with 0100
 
* ALL current Titles for Switch begins with 0100
 
* System Titles are all in "010000000000xxxx".
 
* System Titles are all in "010000000000xxxx".
* Games end with "x000". Pattern: TitleID & 0xFFFFFFFFFFFFE000.
+
* Games end with "x000". Pattern: TitleID & 0xFFFFFFFFFFFFE000 (AND operand).
 
* DLCs ends with "1xxx" (001 - FFF). DLC is 0x1000 greater than base Title ID. Pattern: Base TitleID | 1xxx (OR operand).
 
* DLCs ends with "1xxx" (001 - FFF). DLC is 0x1000 greater than base Title ID. Pattern: Base TitleID | 1xxx (OR operand).
 
* Updates ends with "0800"
 
* Updates ends with "0800"
Line 45: Line 45:
  
 
You can generate a random TitleID using this [https://gbatemp.net/posts/8309473 MSDos batch script]. It generates random TitleID and encapsulate it with 01 and 000.
 
You can generate a random TitleID using this [https://gbatemp.net/posts/8309473 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.
 +
  
  

Revision as of 10:52, 9 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.


NSP creation for your homebrew

You can use HacBrewPack(Thread), or NSPBuild to create an installable nsp file for your homebrew.


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 and the name and TitleID to use for your nsp, and the other parameters if needed.

The nro loader will have the advantage of not needing any update and reinstall when you release a new homebrew revision, it will always load the .nro file on your SD card.


HacBrewPack recommendations

  • Always use lower-case titleid
  • Valid titleid range is: 0x0100000000000000 - 0x01FFFFFFFFFFFFFF


Choosing the titleID

When you create your nsp, you have to edit a setting file (npdm.json) and specify the homebrew's title, its TitleID, etc.


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 "x000". Pattern: TitleID & 0xFFFFFFFFFFFFE000 (AND operand).
  • DLCs ends with "1xxx" (001 - FFF). 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.


Homebrew NSP TitleID List

TitleID Homebrew name Description Link
0104444444444001 HBMenu Loader A forwarder to load sdmc:/hbmenu.nro Thread
0104561737950000 EasyPower A quick reboot utility thread

Homebrew Sysmodules TitleID List

TitleID Homebrew name Description Link
31200000000000AB Sys-play A sysmodule to play a music in HOS background. Thread
4200000000000000 d-report A sysmodule to delete the report sent to nintendo.
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