Applies to: New Nintendo 3DS, New Nintendo 3DS XL, New Nintendo 2DS XL, Nintendo 3DS, Nintendo 3DS XL, Nintendo 2DS In this article, you'll learn how to use the Save Data Transfer Tool. Click that link for a better, easier-to-read tutorial. Convert 3D Models online for free - OBJ, STL, 3DS, Collada, FBX, DXF, LWO, MDL, MD2, MD3 (Quake) and 30 more formats supported. Batch conversion of up to 10 files a time. Cia To 3ds File Converter. 3D Object Converter 3D Object Convert is a 3D polygon model translation software. The program is available as shareware, with the.
makerom | |
General | |
---|---|
Author(s) | 3dsguy |
Type | PC utility |
Version | 0.15 |
Links | |
Download | |
Source |
makerom is a tool which can be used to create NCCH, CCI, and CIA files.
- 1Format Overviews
- 1.2CCI
- 1.3CIA
- 2Using Makerom
- 2.1Command line
Format Overviews[edit]
NCCH[edit]
The native format storing code binaries and data archives for the 3DS is NCCH. NCCH files are comprised of:
- code/exheader/plainregion (used for code execution) (plainregion just lists included SDK library add-ons)
- icon (app title text, icon, homemenu settings, see here
- banner (cbmd + cwav, i.e. the upper screen banner/sound shown on the homemenu)
- logo (the splash screen displayed after an application is launched from the homemenu)
- romfs (read-only filesystem used to store resources)
Typical uses for NCCH files include:
- Executable image (code+exheader+icon+banner+logo+romfs)
- e-Manual archive (accessed from homemenu) (romfs)
- DLP child CIA archive (accessed from application) (romfs)
- Update Data archive (romfs)
- Standalone data archive (romfs)
- DLC index archive (icon+romfs)
- DLC archive (romfs)
CCI[edit]
The native format for gamecard images is CCI and is a NCCH container format. CCI files are limited to containing 8 NCCH files, and can contain NCCH files for applications titles only.
NCCH configuration for CCI[edit]
NCCH | Required | Index |
---|---|---|
Executable image | YES | 0 |
e-Manual archive | NO | 1 |
DLP child CIA archive | NO | 2 |
Update Data archive | NO | 7 |
CIA[edit]
The native format for packaging NCCH files for install is CIA, which is also a NCCH container format. CIA files are limited to containing 65535 NCCH files and can be used to contain NCCH files for any title type. CIA files also contain signed data used by the 3DS for general title management and DRM. Installing custom CIA files on a 3DS which also uses eShop/SysUpdates is unwise as conflicts will likely occur.
NCCH configurations for CIA[edit]
Applications (Application/DlpChild/Demo/Patch/SystemApplication):
NCCH | Required | Index |
---|---|---|
Executable image | YES | 0 |
e-Manual archive | NO | 1 |
DLP child CIA archive | NO | 2 |
System Applet/Module:
NCCH | Required | Index |
---|---|---|
Executable image | YES | 0 |
System Data Archives:
NCCH | Required | Index |
---|---|---|
Data archive | YES | 0 |
DLC:
The number of DLC data archives in DLC varies for each DLC.
NCCH | Required | Index |
---|---|---|
DLC index archive | YES | 0 |
DLC data archive | YES | Varies |
Using Makerom[edit]
Command line[edit]
General Arguments
Argument | Acceptable values | Notes |
---|---|---|
-f <format> | 'ncch'/'cxi'/'cfa'/'cci'/'cia' | Specify the output file format. 'ncch'/'cxi'/'cfa' has no affect, probably parsed without error for legacy support. |
-o <path> | Valid file path. | Specify name/path for output file. Makerom will decided a name if this is not specified. |
-v | not required | Enables verbose output. |
RSF Arguments
Argument | Acceptable values | Notes |
---|---|---|
-rsf <path> | Valid file path | Specify the path to Rom Specification File(RSF). See below for creating RSF. |
-D<NAME>=<VALUE> | This is used to substitute where '$(<NAME>)' exists in the RSF files with '<VALUE>'. (Uppercase isn't a requirement) |
Crypto Arguments
Argument | Acceptable values | Notes |
---|---|---|
-target <target> | 't'/'d'/'p' | Specify key-chain. This affects encryption, signing and '-desc' template availability. t=test, suitable for homebrew. d=devkit(incomplete), suitable for devkits. p=retail(unusable), suitable for signing retail software? |
-ckeyid <index> | Any value between 0-255 (inclusive). | Overrides the default common key used to encrypt CIA title keys. |
-showkeys | none | Dumps loaded key-chain to stdout. |
NCCH Build Arguments
Argument | Acceptable values | Notes |
---|---|---|
-elf <file> | Valid file path | Specify ELF. See below for creating ELF. |
-icon <file> | Valid file path | Specify icon. |
-banner <file> | Valid file path | Specify banner. |
-desc <apptype>:<fw> | <apptype>='app'/'ecapp'/'demo'/'dlpchild'. <fw>='kernel version minor'. | Use a template for exheader/accessdesc. These are hard-coded, so not all firmwares have a template. A value from 1-7 can be used in place of 'kernel version minor'. A template shouldn't be used if the title needs 'special' permissions, the RSF must be configured fully. |
-exefslogo | none | Include logo in ExeFS. Required for usage on <5.0 systems. |
Arguments useful for rebuilding a NCCH file:
Argument | Acceptable values | Notes |
---|---|---|
-code <file> | Valid file path | Specify decompressed/plaintext exefs code binary. |
-exheader <file> | Valid file path | Specify plaintext exheader binary. |
-logo <file> | Valid file path | Specify logo. |
-plainrgn <file> | Valid file path | Specify NCCH plain-region. |
-romfs <file> | Valid file path | Specify an unencrypted RomFS binary. |
CCI Arguments
Argument | Acceptable values | Notes |
---|---|---|
-content <path>:<index> | <path>=Valid file path. <index>=Any value between 0-7 (inclusive) | Include a built NCCH file in the CCI container. '-i' can be used instead of '-content'. |
-devcci | none | Build a debug CCI? |
-nomodtid | none | Don't modify the TitleIds of NCCH files included to match NCCH0 |
-alignwr | none | Align the offset for the Card2 writable region to the end of the last NCCH in the CCI. |
CIA Arguments
Argument | Acceptable values | Notes |
---|---|---|
-content <path>:<index>:<id> | <path>=Valid file path. <index>=Any value between 0x0-0xFFFF (inclusive). <id>=Any value between 0x0-0xFFFFFFFF (inclusive) | Include a built NCCH file in the CIA container. If <id> isn't specified, it will be generated randomly. '-i' can be used instead of '-content'. |
-major <version> | Any value between 0-63 (inclusive) | Specify the version major for the title. This cannot be used with '-dver'. |
-minor <version> | Any value between 0-63 (inclusive) | Specify the version minor for the title. This cannot be used with '-dver'. |
-micro <version> | Any value between 0-15 (inclusive) | Specify the version micro for the title. |
-dver <version> | Any value between 0-4095 (inclusive) | Specify the or '-minor'. |
-dlc | none | Specify this flag when building a DLC CIA. |
-rand | none | Use a random title key to encrypt CIA content. |
Examples[edit]
General examples:
Create CXI
Create CFA
Create CCI
Create CIA
Makerom supports building a NCCH file and including it automatically (as index 0) into a NCCH container:
Create CCI and CXI at the same time and include a CFA
Create CIA and CXI at the same time and include a CFA
Rebuilding CXI:
Creating RSF files[edit]
Inspired by Nintendo's format for their makerom, a yaml configuration file is required for creating NCCH files. CIA/CCI can be created without using a RSF file, but default settings will be used.
Convert Cia Back To 3ds
For CXI, RSF files can be used to specify permissions, and access control settings. Makerom can use default settings by use of the '-desc' option, which removes the requirement for specifying them in the RSF file.
Sample RSF to be used with '-desc': download (link broken)
Sample RSF to be used without '-desc': download
Creating ELF files[edit]
The latest devkitARM used in conjunction with ctrulib can create ELF files compatible with makerom.
ELF files that are created using the official SDK are also supported by makerom.
Compiling Source[edit]
For Windows a MinGW-W64/MSYS build setup is required.
For Linux, gcc/g++/make must be installed.
All additional libraries used by makerom (polarssl/libyaml) are included in the source, and are linked statically.
Required Reading
This page is for existing arm9loaderhax users to update their devices to boot9strap.
Convert Cia To 3ds Rom
All future releases of Luma3DS will only be made in the .firm
format, which will only be compatible with boot9strap and sighax. This means that to continue receiving the latest updates of Luma3DS, you should use this page to update your installation.
To use the magnet links on this page, you will need a torrent client like Deluge.
To extract the .7z
files linked on this page, you will need a file archiver like 7-Zip or The Unarchiver.
While we believe that custom firmware is safe for online use, there have been online network bans in the past, primarily for cheating and suspicious eShop behavior.
What You Need
Note that the following required file named secret_sector.bin
is the same one that was found in the various data_input.zip
file versions. If you already have that file on your disk somewhere, you can use that one instead of downloading the one below.
Note that, only on New 3DS, secret_sector.bin
is needed to revert the arm9loaderhax exploit, which is why it is not needed for the installation of boot9strap on a stock console. If you do not have a New 3DS, you do not need secret_sector.bin
.
- - New 3DS Users Only:secret_sector.bin
- The latest release of Luma3DS
- The v7.0.5 release of Luma3DS(the
.7z
file) - The latest release of SafeB9SInstaller
- The latest release of boot9strap(standard boot9strap; not the
devkit
file, not thentr
file)
Instructions
Section I - Prep Work
For all steps in this section, overwrite any existing files on your SD card.
- Power off your device
- Insert your SD card into your computer
- Copy
boot.firm
andboot.3dsx
from the latest version Luma3DS.zip
to the root of your SD card - Copy
arm9loaderhax.bin
from the v7.0.5 Luma3DS.7z
to the root of your SD card - Delete any existing
.bin
payloads in the/luma/payloads/
folder on your SD card as they will not be compatible with boot9strap compatible Luma3DS versions - Copy
SafeB9SInstaller.bin
from the SafeB9SInstaller.zip
to the/luma/payloads/
folder on your SD card - Create a folder named
boot9strap
on the root of your SD card - Copy
boot9strap.firm
andboot9strap.firm.sha
from the boot9strap.zip
to the/boot9strap/
folder on your SD card New 3DS Users Only: Copy
secret_sector.bin
to the/boot9strap/
folder on your SD card- Reinsert your SD card into your device
Section II - Installing boot9strap
- Boot your device while holding (Start) to launch SafeB9SInstaller
- If you see the luma configuration screen instead of SafeB9SInstaller, simply press (Start), then shutdown your 3DS and try again
- If this gives you an error, try either using a new SD card, or formatting your current SD card (backup existing files first)
- Wait for all safety checks to complete
- If you get an “OTP Crypto Fail” error, download - aeskeydb.bin, then put it in the
/boot9strap/
folder on your SD card and try again
- If you get an “OTP Crypto Fail” error, download - aeskeydb.bin, then put it in the
- When prompted, input the key combo given to install boot9strap
- Once it has completed, press (A) to reboot your device.
- If your device shuts down on boot, ensure that you have copied
boot.firm
from the Luma3DS.zip
to the root of your SD card
- If your device shuts down on boot, ensure that you have copied
Convert 3ds To Cia File
Section III - Configuring Luma3DS
- In the Luma3DS configuration menu, use the (A) button and the D-Pad to turn on the following:
- “Show NAND or user string in System Settings”
- Press (Start) to save and reboot