15. Differences Between TWL Mode and Actual TWL Systems

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.)

Note:

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.

Table 15-1. TWL Application Regions and Corresponding Operable 3DS System Regions

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.


CONFIDENTIAL