This program permits to convert or create various formats used on the Nintendo Switch.
For now, it only supports the creation of PFS0/NSP and 64 bits NRO/NSO. It can also
be used with cargo through cargo nro
to simplify the build process of Megaton-Hammer
homebrew.
Assuming you have cargo
installed, cargo install --features=binaries --git https://github.com/MegatonHammer/linkle
will install this program, by the command name linkle
and the cargo nro
subcommand.
Creating a NRO file:
linkle nro input.elf output.nro
Creating a NSO file:
linkle nso input.elf output.nso
Creating a PFS0/NSP file:
linkle pfs0 input_directory output.pfs0
Creating a NACP file:
linkle ncap input.json output.nacp
Creating a RomFs file:
linkle romfs input_directory output.romfs
Compiling and creating an NRO file (requires xargo, use cargo install xargo
to install):
cargo nro
When compiling a project with cargo nro
, a special [package.metadata.linkle.BINARY_NAME]
key is
used to allow customizing the build. This is an example Cargo.toml:
``` [package] name = "link" version = "0.1.0" authors = ["linkle"]
[package.metadata.linkle.megaton-example] romfs = "res/" icon = "icon.jpeg" titleid = "0100000000819"
[package.metadata.linkle.megaton-example.nacp] name = "Link"
[package.metadata.linkle.megaton-example.nacp.lang.ja] "name": "リンク", "author": "リンクル" ```
All paths are relative to the project root (where the Cargo.toml file is located).
Every field has a sane default:
| Field | Description | Default value | | ----------------- |:------------------------------------------------:| -------------------:| | romfs | The application romfs directory. | res/ | | icon | The application icon. | icon.jpg | | title_id | The application title id. | 0000000000000000 |
The [package.metadata.linkle.BINARY_NAME.nacp]
key follows the NACP input format
This is an example of a compatible JSON:
json
{
"name": "Link",
"author": "Linkle",
"version": "1.0.0",
"title_id": "0400000000020000",
"lang": {
"ja": {
"name": "リンク",
"author": "リンクル"
}
}
}
NOTE: Every fields are optional
| Field | Description | Default value | | ----------------- |:------------------------------------------------:| -------------------:| | name | The application name. | Unknown Application | | author | The application author. | Unknown Author | | version | The application version. | 1.0.0 | | titleid | The application title id. | 0000000000000000 | | dlcbasetitleid | The base id of all the title DLC. | title_id + 0x1000 | | lang (object) | Different name/author depending of the language | use name and author |
| Supported Languages| |:------------------:| | en-US | | en-UK | | ja | | fr | | de | | es-419 | | es | | it | | nl | | fr-CA | | pt | | ru | | ko | | zh-TW | | zh-CN |