This chapter explains how to create the files that you need to prepare before you build your application (separate from programming-related concerns).
The following files must be prepared before the application is built.
- RSF file
- BSF file
- E-Manual
4.1. RSF Files
An RSF file is a settings file required to create CCI files and CXI files with ctr_makerom
.
For more information, see the reference for the ctr_makerom
tool in the CTR-SDK documentation.
4.1.1. Required Settings
The following settings are required in order to create an application.
Section | Subsection | Setting |
---|---|---|
TitleInfo | Category |
Specify the value that corresponds to your application's type below.
|
UniqueId |
Specify the unique ID that was issued to you by Nintendo. Although you can specify a testing code ( You must specify the same unique ID for hosts and clients to support Download Play. |
|
ChildIndex | When you create a client program to be distributed through Download Play, specify its index here. | |
DemoIndex | When you create a downloadable application demo version, specify its index (in the range from 1 to 255). For more information, see Nintendo 3DS Demo Version Creation Instructions – Download Format. | |
Variation | When you create add-on content, specify its index (in the range from 0 to 255). | |
Rom | HostRoot |
Specify the directory that stores the files to include in your ROM. The specified directory is stored in the ROM archive as its root directory, along with all of the files and directories under it. Specify |
Reject |
Specify the files and directories to exclude from your ROM. You can specify files with wildcard characters or regular expressions. |
|
SaveDataSize |
Specify the size of the save data area in Specify |
|
CardInfo | MediaType |
When you create a card application, specify the game card type ( Specify When omitted, the default is |
TitleInfo: Category: Application UniqueId: 0xFF3FF Rom: HostRoot: $(ROMFS_ROOT)
4.1.2. Using Save Data
When your application uses save data, different items must be specified depending on the application type.
Applications cannot actually use the full size specified for the save data region, because a part of it is used as an internal buffer for the file system. For more information about how much of each save data region can actually be used, see the Worksheet for Calculating the Save Data File System Capacity in the CTR-SDK API Reference.
You can also call the nn::fs::GetArchiveFreeBytes
function to get the amount of free archive space while your application is running.
4.1.2.1. Card Applications Using Card1 as the Game Card Type
Use the following settings when using this game card type.
Section | Subsection | Setting |
---|---|---|
Rom | SaveDataSize | Specify 0KB , 128KB , or 512KB . |
Rom: SaveDataSize: 512 KB
4.1.2.2. Downloadable Applications
Use the following settings when using this game card type.
Section | Subsection | Setting |
---|---|---|
Rom | SaveDataSize |
It differs depending on the Card1: Specify Card2: Specify in the format of |
Rom: SaveDataSize: 512 KB
4.1.2.3. Card Applications Using Card2 as the Game Card Type
Use the following settings when using this game card type.
Section | Subsection | Setting |
---|---|---|
Rom | SaveDataSize |
Specify in the This value must be entered only in units of 1 MB. In addition, the physical limit is half the value specified by |
Rom: SaveDataSize: 32 MB
4.1.2.4. Accessing the Save Data of Demo Versions
Use the following settings for applications that need to access save data created with a demo version.
Section | Subsection | Setting |
---|---|---|
AccessControlInfo | UseOtherVariationSaveData |
Specify Specify If omitted, the default is |
When specifying the AccessibleSaveDataIds
value of AccessControlInfo
, specifying true
for UseOtherVariationSaveData
is interpreted more broadly to allow access to application save data and extended save data, even if the application's unique ID is not included.
4.1.2.5. Accessing the Save Data of Other Applications
Use the following settings for applications that need to access the save data of other applications.
Section | Subsection | Setting |
---|---|---|
AccessControlInfo | AccessibleSaveDataIds |
Specify the save data unique ID and the extended save data ID that you want to access in the list of unique IDs. You can specify a maximum of six. You can access save data (including demo versions) with a unique ID that matches the specified ID and extended save data with an extended save data ID that matches the specified ID. Using these settings results in a broader interpretation of |
OtherUserSaveDataId1 OtherUserSaveDataId2 OtherUserSaveDataId3 |
You can specify up to three unique IDs for save data to access. For save data with the same unique ID as the application, specify These settings cannot be used when specifying |
4.1.3. Using Extended Save Data
Configure the following settings when your application uses extended save data.
Section | Subsection | Setting |
---|---|---|
AccessControlInfo | AccessibleSaveDataIds |
Specify the save data unique ID and the extended save data ID that you want to access in the list of unique IDs. You can specify a maximum of six. You can access save data (including demo versions) with a unique ID that matches the specified ID and extended save data with an extended save data ID that matches the specified ID. |
AccessControlInfo | UseExtSaveData |
Specify These settings cannot be used when specifying |
ExtSaveDataNumber |
You normally specify your application's unique ID. If your application shares extended save data, specify the shared ID (the unique ID of the title with which data is shared). For example, if your title is a sequel to another title with which it shares extended save data, specify the original title's unique ID. These settings cannot be used when specifying |
AccessControlInfo: AccessibleSaveDataIds: - 0xFF3FF
In the following cases, a new extended save data number is required that does not duplicate the unique ID of any application.
- Multiple applications have their own extended save data, and you want to use separate extended save data for sharing.
- A patch has been applied, and you want to add a new file to the extended save data, but the maximum number of files and directories that can be saved in the existing extended save data has been reached.
- You want to use multiple extended save data items with a single application independent of other applications for some other reason.
Contact Nintendo support at support@noa.com if you want to acquire a new extended save data number for one of these cases.
If you specify AccessibleSaveDataIds
of AccessControlInfo
, the UseExtSaveData
and ExtSaveDataNumber
specifications cannot be used. In this case, include the extended save data to access in the AccessibleSaveDataIds
member.
The SD card can be accessed directly when the file system access attribute (FileSystemAccess
in AccessControlInfo
) is set to Debug
. As a side effect, you can access data that cannot be accessed by a retail version, including save data and extended save data of other applications not specified in AccessibleSaveDataIds
, save data from other applications not specified in OtherUserSaveDataID
*, and extended save data not specified in ExtSaveDataNumber
. Consequently, do not specify Debug
while testing operations.
4.1.4. Settings for Creating a Master ROM to Submit
When creating a master ROM for submission, you must add the following settings or change the values that were specified when developing the application.
Section | Subsection | Setting |
---|---|---|
BasicInfo | Title |
Specify the title of your application. Specify |
ProductCode | Specify the product code and downloadable content code issued to you by Nintendo. | |
MediaSize |
Specify the media size. If If For downloadable applications, specify the value that would be required if it were a card-based application. |
|
Logo |
Specify the logo data type.
|
|
TitleInfo | UniqueId |
Specify the unique ID that was issued to you by Nintendo. If you were using a prototype code, check the value specified for |
BasicInfo: Title: $(TITLE) ProductCode: "CTR-A-00001" MediaSize: 512MB Logo: Licensed TitleInfo: UniqueId: 0x41001
4.1.5. Remaster Version Settings
You must update the remaster version when you modify an application that has already been released.
You cannot update the remaster version in card-based software that has already been released, but you can update the version in downloadable applications that are being played by users.
Section | Subsection | Content |
---|---|---|
SystemControlInfo | RemasterVersion | Specify the remaster version of the CXI file. |
SystemControlInfo: RemasterVersion: 1
This CXI remaster version is used unchanged as a downloadable application's version. A downloadable application's version will be 1 if its CXI remaster version is 1. A downloadable application's version is incremented by one every time its CXI version is updated after the application has been released.
Save data is preserved when the version is updated. You must implement new versions of your downloadable application to appropriately handle save data from all previously released versions of the application. Handle this either by never changing the save data format, or by embedding the version number in the save data and automatically making any necessary data format changes when you upgrade.
Do not change the following RSF settings before and after you update your downloadable application's version.
Section | Subsection | Content |
---|---|---|
BasicInfo | Title | Application title |
ProductCode | Product code | |
TitleInfo | UniqueId | Unique ID |
Rom | SaveDataSize | Size of the save data region |
4.2. BSF Files
A BSF file is the settings file required to create ICN (icon data) and BNR (banner data) files with ctr_makebanner
.
Use the BSF file to specify the icon file, model file, and sound file used to create both icon and banner data. You must create these files in advance.
Use CTPK files created by ctr_TexturePackager
as the icon files to specify for LittleIconFile
and BigIconFile
.
Use a CBMD file created by ctr_BannerModelConverter
as the model file to specify for ModelFile
.
Use a BCWAV file created by ctr_WaveConverter
as the sound file to specify for SoundFile
.
A BSF file also has other application settings, such as the card region and title, which is displayed on the HOME Menu and elsewhere.
For more information, see the reference for the ctr_makebanner
tool in the CTR-SDK documentation.
You do not need to prepare a model file and sound file for a client program, which does not require a BNR file.
LittleIconFile: resources/little.ctpk BigIconFile: resources/big.ctpk ModelFile: resources/model.cbmd SoundFile: resources/sound.bcwav Region: Japan Ulcd: True AutoSave: False SaveData: True ThumbnailFrame: 0 RatingRequired: True CERO: 12 JPLongName: Test application JPShortName: Test application JPPublisher: Test ENLongName: TestApplication ENShortName: TestApplication ENPublisher: Test
4.3. E-Manuals
Use CTR-ManualTools to create e-manual files. Note that an e-manual included in an application must have the filename Manual.bcma
.
The size of the e-manual’s binary file (BCMA file) is a maximum of 6656 KB per language.
For more information, see the CTR-ManualTools documentation.