This document summarizes information related to creating 3DS applications. It is written for application developers.
1.1. How to Read This Document
This document is intended to introduce information related to the creation of applications. For more information, see the related documentation as appropriate.
This document is structured as follows.
2. Types of Applications lists the types of 3DS applications that can be created and describes the characteristics of each.
3. Implementation Tips, 4. Preparing to Build, and 5. Building describe the basic procedures for creating an application.
6. Debugging explains how to debug developer applications.
7. Using DLLs (Dynamic Modules) describes the steps that must be followed when using dynamic modules in developer applications.
8. Developing Card Applications That Can Be Sold via Download describes the steps that must be followed when distributing the same application both as a card version and downloadable version.
1.2. Glossary
This section describes the terms used in this document. These terms may be used in ways that differ from their common meanings.
Term | Description |
---|---|
Card-based application | A 3DS application stored on and run from a Game Card. Data is read from the Game Card when the application is executed. |
Downloadable application | A 3DS application stored on and run from a Game Card. Data is read from the SD card when the application is executed. |
CXI (CTR executable image) |
CTR application executable image format. Also any file stored in this format, and the filename extension. |
E-manual | An application instruction manual that is displayed on the 3DS system's screens. E-manuals are created by CTR-ManualTools. |
CFA (CTR file archive) |
A binary format handled as a data container on CTR systems. Also any file stored in this format, and the filename extension. |
CCI (CTR card image) |
The format of the final ROM image for card-based applications. Also any file stored in this format, and the filename extension. This includes a CXI within it. |
CIA (CTR importable archive) |
The format of the final ROM image for downloadable applications, the file that stores this image, and the extension of this file. Also any file stored in this format, and the filename extension. This includes a CXI within it. The client programs distributed through Download Play are also created with this format. |
RSF (ROM specification file) | Specification file describing the parameters used when creating a CXI file. |
Remaster version | Application version number described in the RSF file and then embedded in the CXI file. |
Import | Storing a download application on an SD card and making it ready to run. |
HOME Menu | Screen that displays when the 3DS is turned on. This screen is used to select applications to start. |
Test menu | The development screen that appears when the PARTNER-CTR Debugger or CTR test unit is turned on. This screen has a minimal feature set and is used in place of the HOME Menu. |
DevMenu | An application that can import CIA files to an SD card, display extended save data, and perform other operations used during development. |
Archive | Individual file system operated on by the CTR-SDK's FS library. Corresponds to a drive on a Windows PC. |
Save data region | Memory region allocated for storing save data. This region is allocated on an SD card for a downloadable application and can only be used on the system that created it. |
Extended save data region | Data region on an SD card that is created and managed separately from save data. This can only be used on the system that created it. The extended save data created in this region is also called "extra data." |
Module | A logical collection of executable code. |
Dynamic module | A module that can be dynamically loaded into memory and executed. |
Static module | The module that represents the core application and is executed first. Any application that does not use dynamic modules can be said to comprise only static modules. |
DLL | The mechanism for implementing a dynamic module. It can also refer to a dynamic module itself. |
CRS | Static module. Also any file stored in this format, and the filename extension. |
CRO | Links dynamic modules. Also any file stored in this format, and the filename extension. |
CRR | Loads dynamic modules. Also any file stored in this format, and the filename extension. This file can store one or more instances of CRO registration information. |
Package version | The version of a dual-distribution application that is stored on a Nintendo 3DS Game Card and sold in retail stores. |
Download version | The version of a dual-distribution application that is sold via download. |
Standard application | An application that runs in standard mode when run on SNAKE. Such applications are Nintendo 3DS-specific software, including already released titles. |
Enhanced application | An application that runs in enhanced mode when run on SNAKE. You can also run these applications on CTR. Running enhanced applications on CTR is equivalent to running on SNAKE in standard mode. |