Skip to content

MenuEntries

XorTroll edited this page Jul 4, 2024 · 1 revision

Menu entries

uLaunch's menu is quite flexible, allowing users to add custom entries to the main menu. This is how homebrew entriess and folders are supported internally.

Format

Entries consist on individual JSON files inside sd:/ulaunch/menu or in subfolders there. The naming scheme is <id>.m.json, where the ID is the location index of the entry inside the folder (IDs not present indicate empty locations in that (sub)folder).

Folder entries are a bit more special, since the actual folder name is stored inside a JSON entry (like with other entries) due to filesystem limitations with the SD card and non-ASCII characters. The actual filesystem folder name is also stored in the entry.

Note: it is not recommended to manually edit and/or create entries (deleting is fine, just remove the corresponding JSON file) unless you really know what you're doing!

Menu entry JSON format:

Note: all fields are required unless otherwise specified

  • type: Entry type (1 is for an application, 2 is for homebrew, 3 is for a folder, 4 and higher for special entries)

  • custom_name (optional): If present, this will be the name used for that entry (except for folders). Same thing with custom_author and custom_version respectively, overriding NACP strings

  • custom_icon_path (optional): Allows for specifying a custom icon for the entry (any kind). Format can be JPG or PNG, but size must be 256x256 like usual application/homebrew icons (note that it will be resized when rendered by uLaunch)

Application specific (type 1)

  • application_id: The application's application ID (in decimal form!)

Homebrew specific (type 2)

  • nro_path: Path (must start by sdmc:/) to the NRO in the SD (example: sdmc:/switch/Goldleaf.nro)

  • nro_argv (optional): Arguments to be sent to the NRO when being launched (example: if argv is set to be sample, uLaunch will launch the NRO like <nro-file> sample). Note: if the argument has spaces (a spaced path), remember to add extra quotes ("nro_argv": "\"sdmc:/spaced file.txt\"")

Folder specific (type 3)

  • name: The actual folder name

  • fs_name: The name of the corresponding filesystem folder in the SD card (must be present in the same directory as the entry since it's a name, not a path)

Special entries (type 4, 5...)

Entries corresponding to special options (mii editor, themes, settings, album, user page...) only contain the corresponding type field, and must not really be edited manually since uLaunch takes care of them.

Examples

  • Simple homebrew entry (Goldleaf)
{
    "type": 2,
    "nro_path": "sdmc:/switch/Goldleaf.nro"
}
  • RetroArch ROM forwarder (Super Mario Land 2 GB ROM and Gambattle core)
{
    "type": 2,

    "nro_path": "sdmc:/retroarch/cores/gambattle_libretro_libnx.nro",
    "nro_argv": "\"sdmc:/roms/gb/SUPER MARIO LAND 2.gb\"",

    "custom_name": "SUPER MARIO LAND 2",
    "custom_author": "Nintendo",
    "custom_version": "Game Boy",
    "custom_icon_path": "sdmc:/icons/gb/SUPER MARIO LAND 2.png"
}
  • Simple application entry (Super Mario Odyssey)
{
    "type": 1,
    "application_id": "72057594037993472"
}

Available pages

Clone this wiki locally