Applications that use local communication must comply with the guideline items in this chapter.
5.2.1 Local Communication IDs
Use the following functions to create local communication IDs that are required for UDS communication and PiaLocal. The uniqueId argument to these functions must be the unique ID assigned to the application by Nintendo.
- nn::uds::CTR::CreateLocalCommunicationId function
- nn::pia::local::UdsNodeBase::CreateLocalCommunicationId function
However, applications that communicate with each other must have a local communication ID in common. In these cases you may create and use a local communication ID from the unique ID assigned to another application. For example, if applications A and B communicate via UDS, they must both use a local communication ID created from either the unique ID for A or the unique ID for B.
5.2.1.1 Setting the Local Communication ID
Guideline Item |
Applications must set a string of numbers that is created by passing the unique ID assigned by Nintendo to specified functions as a local communication ID. |
---|---|
Software to Be Tested |
Applications that support UDS or RDT communication, or are PiaLocal-compatible. |
Test Method |
|
Pass/Fail Determination |
Passes if in step 3, the system detects a UDS network that has the unique ID entered as a parameter. |
5.2.2 Distribution of System Update Files
The host (Server) might distribute system update files to clients before it distributes a client program via Download Play. Although the clients run a system update after the system update files have been distributed, the clients will not necessarily reconnect to the server afterwards. In addition, the process may be canceled on the client side or there may be a number of other factors that prevent clients from reconnecting, such as a degradation of the communication environment or a power interruption. We therefore recommend that you make it possible for the user to cancel distribution at any time while the host is distributing a client program. Also, do not use timeouts because it is impossible to know how much time is required for a system update; this length of time depends on the state of the client system.
No required guideline items.
5.2.3 Download Play in Downloadable Applications
CTR-SDK 3.x and later allows Download Play in downloadable applications, but when a downloadable application acts as a Download Play host (Server) it is unable to distribute a system update to its Clients. As a result, Download Play is impossible when the Client system version is older than the Server system and needs a system update.
If a system update is needed on the Client, the user will be asked whether to update the system when the Client attempts to connect to the Server for Nintendo 3DS Download Play. If the user selects “OK” and the Server is a card-based application, the system can be updated right away. However, if the Server is a downloadable application a system update cannot be distributed even if the user selects “OK”, so the system update will fail. At that point the Client screen will display “Communication interrupted” and subsequent attempts to update will fail. The user must use System Settings to update the Client system.
To avoid confusing users in the above circumstances, Nintendo recommends displaying a notification message in advance on the Server system. When displaying a message, first confirm whether true is passed for the pNotice parameter to the nn::dlp::CTR::Server(WithName)::Initialize function. If the pNotice value is true, display a message such as the following to the user before or while accepting clients:
- The following or an equivalent message is recommended: “If a message on your partner's system says that a system update is required, Download Play is not possible. Your partner must select Cancel and perform a system update from System Settings. Selecting OK will not perform a system update.”
(If possible, Nintendo recommends displaying the message above.) - A message that states Download Play cannot be used using a system with an old system version is recommended. For example: "Download Play is not possible using a Nintendo 3DS client that has an old system version."
Do not display the aforementioned message if false is set for the pNotice parameter. If at some point in the future, downloadable applications gain the ability to distribute system updates, false will be set for the pNotice parameter. If a card-based software is acting as a Server, the pNotice parameter to the nn::dlp::CTR::Server(WithName)::Initialize function is always false because system update distribution is available.
No required guideline items.