6 Internet Communication

6.1 Implementation for Starting Connections

The Nintendo 3DS system may connect to the network independently from the application, via SpotPass or other communication features. Although it is possible to download data without going through the process of connecting to the network if the system is already connected, using Nintendo 3DS communication features in this way—without notifying system processes—will result in sudden disconnections and other unexpected behavior, because the system processes are responsible for managing Nintendo 3DS communication.

For this reason, the application must always start an Internet connection by calling either the nn::ac::CTR::Connect or nn::ac::CTR::ConnectAsync function.

You can use the following steps to check whether the application starts Internet connections by calling the functions listed above.

  1. In System Settings, go to Internet Settings, then Connection Settings, and enter an incorrect SSID or security key for the access point you want to connect to. This puts the system in a state where communication features are usable, but the system cannot connect to the access point.
  2. In the application, start an Internet connection.
  3. An 003-10xx or 003-11xx error is displayed, indicating failure to connect to the access point.

 

Internet Communication

Internet Connections

System Settings

nn::ac::CTR::Connect function

nn::ac::CTR::ConnectAsync function

 

6.2 Applications That Use Join-in Features

For applications that use join-in features, Nintendo recommends explicitly logging in to a friend server by calling the nn::friends::Login function beforehand.

It is also possible to use join-in features after the system has logged into the friend server in the background, but we cannot guarantee that you will remain logged in unless the application performs the login itself.

 

Internet Communication

Join-In Feature

Friend Server

Logins

nn::friends::Login Function

 

6.3 Applications That Use CTR-NEX

If your application uses CTR-NEX, use the unique codes (Game ID and Access Key) assigned separately to each application.

You can get unique codes from the Online title MAnagement System (OMAS), which is the website used to apply for network access.

 

Internet Communication

CTR-NEX

Unique Codes

Game ID

Access Key

OMAS

 

6.4 Timing of Display of Communication Errors

If the application detects an error in communication, display the error as soon as possible, at a time that does not inconvenience the user.

However, there is no problem with notifying the user later if it does not disadvantage the user. Below are some examples.

  • If the application detects an error in communication that the user did not actively perform (for example, retrieving data in the background),
    → display this error when the user attempts to use the data that otherwise would have been retrieved.
  • If the application detects a non-fatal, data-manipulation error (for example, corruption in data that is not required for progress in the game),
    → display this error when the data is used.
  • If an error is detected during a cutscene or movie playback,
    → display the error after the end of the cutscene or movie playback.

Consult with Nintendo support if you cannot or do not wish to display errors immediately in cases other than the above. Nintendo will continue to add other examples to the above where the user is not inconvenienced.

If you have other methods by which you can tell ahead of time that an error will occur, it is acceptable to display the error beforehand.

 

Internet Communication

Communication Errors

Displaying Errors

 

6.5 Using Dedicated Immediate-Execution Tasks in SpotPass

Be aware of the following points if using a dedicated immediate-execution task with an application that uses SpotPass.

  • Set Immediate Execution to “True” when filling out the form on OMAS.
  • Use the nn::boss::RegisterImmediateTask function to register a task, and pass an instance of the nn::boss::FgOnlyTask class to the pTask argument.
  • For the download URLs, set URLs that are displayed by the BOSS data server.
    Specifically, they must have the following format.
    https:://npdl.cdn.nintendowifi.net/p01/nsa/BossCode/FGONLYT/(Language)/ArchiveName
  • Use the nn::boss::FgOnlyTask::StartImmediate function to run the task.

 

SpotPass

Immediate execution

Dedicated Immediate-Execution Tasks

OMAS

nn::boss::RegisterImmediateTask function

nn::boss::FgOnlyTask class

nn::boss::FgOnlyTask::StartImmediate function

 

6.6 Using One-Time Immediate-Execution Tasks in SpotPass

When your application has a task that immediately executes a one-time download, and this task does not run again periodically, consider using a dedicated immediate-execution task.

If you do not use a dedicated immediate-execution task, delete the task once immediate execution has completed. Alternatively, set the task's execution count to "1" so that the task will run once and then be invalidated. For all task settings other than the execution count, set values that match the settings of a standard NADL task.

You can use the BossLotcheckTool to check to see if the task is deleted, or if the execution count for the registered task is now "0" and the task is invalid.

 

SpotPass

Immediate execution

Dedicated Immediate-Execution Tasks

 

6.7 Initial Upload of Data to a CTR-NEX Data Store

Any data your application uploads to a data store will not be available to it when launched on other systems or initialized systems, because the PrincipalID of those systems will be different.

As a result, your application must always display a message when first uploading data with the data store features of CTR-NEX, informing the user that they cannot use the data on a different system, and that uploaded data will become unusable if they format the system memory. You must also always include such a description in the manual.

However, if your application falls under the categories listed below, you do not need to display this message or include the description in the manual.

  • Applications where the uploaded data cannot be viewed by the user later.
  • Applications where deleting uploaded data does not adversely affect the game progress.
  • Download-only applications. (Downloaded applications can only run on the system to which they were downloaded, and if the system is initialized the save data for these applications—saved on the SD Card—also becomes unusable.)

 

Internet Communication

CTR-NEX

Data Store Features

Uploads

PrincipalID

 

6.8 Connecting Only to Independent Servers Applied For on OMAS

If your application supports network features, and it connects to servers other than those provided by Nintendo, only access (or link to) servers that you can control directly or indirectly. Use OMAS to apply for permission to access a server.

It is prohibited to access servers that have not been registered. Note that if Nintendo confirms that the application accesses an unregistered sever, Nintendo may suspend the network service.

 

Internet Communication

Independent Servers

OMAS

Prohibition Against Connecting

Network-supported software

 

 


CONFIDENTIAL