An application works differently on a 3DS system in TWL mode (DSi-compatible mode) than it does on an actual Nintendo DSi system. This chapter describes those differences. Consider these differences when you are developing applications for systems in the Nintendo DS family that will also run on 3DS systems. (In particular, refer to this information when developing a Nintendo DSiWare service or game that is available on Nintendo eShop.)
For information about how to import a Nintendo DSiWare service or game, see the API Reference page for ctr_makecia
.
15.1. Display-Related Differences
15.1.1. LCD Screens
Because the LCD screen layouts differ (see 5.5 Initializing the GX Library), the direction of scanning on the 3DS screens is different from that on the TWL screens. Also note that because emulation is used, the images are rendered with a delay of approximately 1.3 frames.
15.2. Input-Related Differences
15.2.1. Touch Panel
Normally, on TWL or NITRO systems, it is difficult for applications to detect touches at the very edge of the screen. But when the application has been started in 1:1 pixel display mode on the 3DS, the SDK (TWL or NITRO) functions might be able to detect touches at the very edges of the application’s screen (a display area that is a subset of the physical screen) because the user has touched the screen outside of the application’s display area.
15.2.2. Key Input
When the +Control Pad is being emulated by the Circle Pad (see 6.2.1. Digital Buttons and Circle Pad), although the state of the +Control Pad is updated in real time when the Circle Pad is not being moved (when no input is detected), it updates roughly once per frame when the Circle Pad is being moved. For this reason, input from the +Control Pad may not always be reflected accurately when the user is operating the Circle Pad.
When the Circle Pad and the +Control Pad are both being used and the user simultaneously presses Up and Down (or Left and Right) on the +Control Pad, the application is notified of a prohibited operation. The input is treated as Up when Up and Down are pressed simultaneously, and Left when Left and Right are pressed simultaneously. If your application uses such prohibited input to trigger entry to debug mode or some other mode, your application will not operate correctly, because it will never receive the prohibited input.
15.2.3. Closing the System
For the application, the system state while displaying the HOME Menu is no different from when the system is closed. The PAD_DetectFold
function returns TRUE
just like it normally does when the system is closed, but the application is not notified of key input or touch panel input.
15.2.4. Sound Volume
The system has a slider for sound volume. This allows users to change the volume faster than is physically possible on the Nintendo DSi.
15.3. OS-Related Differences
15.3.1. Reset and Shutdown
On CTR, processing of the OS_RebootSystem
function takes much longer than it does on a TWL system.
15.3.2. Application Jumps
On CTR, the filename and content of the system menu version are different from TW. If your application incorporates routines that check this information, it might operate incorrectly when running in TWL mode on a CTR system.
15.4. System Settings-Related Differences
15.4.1. Region Codes
On 3DS, the Australia region is included in the Europe region. Applications intended for the TWL Australia region can also operate in the 3DS Europe region.
TWL Application Region |
Operable 3DS System Regions |
---|---|
JP (Japan) |
JP (Japan) |
US (United States) |
US (United States) |
EU (Europe) |
EU (Europe) |
AU (Australia) |
EU (Europe) |
EU (Europe) and US (United States) |
EU (Europe) or US (United States) |
EU (Europe) and AU (Australia) |
EU (Europe) |
EU (Europe), AU (Australia), and US (United States) |
EU (Europe) or US (United States) |
CN (China) |
CN (China) |
KR (Korea) |
KR (Korea) |
15.4.2. Country Setting
If the country setting of the 3DS system is set to a value that would not be available in the region of the TWL application, the value of the country
member of the OSOwnerInfoEx
structure is set to 254 (OTHER)
.
15.4.3. Language Setting
If the language setting of the 3DS system is set to a value that would not be available in the region of the TWL application, the language
member of the OSOwnerInfoEx
structure is set to either OS_LANGUAGE_JAPANESE
for the Japan region or to OS_LANGUAGE_ENGLISH
for all other regions.