11.1 Referencing the User Profile
User information (the user's profile data) is stored on each system, and it is acceptable for each application to freely choose whether to apply that user profile within the application. There are no system-side restrictions on using the accessed data.
However, if your application uses the user name, be careful to avoid screen corruption and any problems impeding game progress when the user name includes characters that are not supported by the application.
It is acceptable to display alternate characters for characters that are not supported by the application. For example, if the application has no ability to display accented European letters, it is acceptable to replace them with similar ASCII letters or with "?" (question marks).
By using all of the system fonts, you can ensure that your application will be able to support all characters used in user profiles.
The country and area information can be retrieved from the user profile using the nn::cfg::GetSimpleAddress or nn::cfg::GetSimpleAddressId functions. (As referred to in this document, the system's area setting is its location within the country, such as its state, province, or prefecture.) There are no particular restrictions established regarding the use of this information, but be aware that the list of possible values could be updated, as well as the fact that some systems may not have these values set. Specifically, ensure that no problems occur if the functions return an area code (RegionID) of 0 (no area set) or 1 (countries without area codes), or a code with no corresponding supported area (in Japan this is a value of 49 or greater).
To test application behavior when an area code that is not supported by the firmware is set, launch the Config tool, go to UserInfoSetting, and change the Simple Address settings. However, if your application uses SpotPass downloads, take extra care when implementing the SpotPass download features, since in that case server-side specifications prevent you from testing application behavior by changing the country code (CountryID).
In some cases, the area code could be 1 even in countries where the system can configure area codes.
Setting the country code or area code to an invalid value may render some network features unavailable.
For all scenes except those using SpotPass, you can use the following procedure to check whether problems will occur if the area information is unknown.
Launch the Config tool, go to UserInfoSetting, configure the Simple Address settings as shown below, and play through all modes of the application from beginning to end.
Status | CountryID | RegionID |
---|---|---|
Unknown country code | 255 | Optional |
No area code selected | Any valid value | 0 |
No area codes configurable in this country | Any valid value | 1 |
Unsupported area code | Any valid value | 255 |
System Settings
User information (Profile)
User name
System fonts
Country code
CountryID
Area code
RegionID
Config tool
UserInfoSetting
Simple Address
nn::cfg::GetSimpleAddress function
nn::cfg::GetSimpleAddressId function
SpotPass
11.2 Referencing the Language Setting
It is acceptable for each application to freely choose whether to apply the system's language setting within the application. There are no system-side restrictions on using the accessed data.
Although it is possible to automatically reflect the system's language setting to the application's own language setting, it is also acceptable for you to allow the user to set a different language in the application-side language settings than is set in System Settings. If you do, it is not a problem if the user is able to select a language that the system doesn't support for the country currently set in System Settings.
Because Nintendo 3DS may support more languages in the future, attempts to get the system's language setting may return a value that is not currently defined. As a past example, Chinese and Korean were added to the language settings of the Nintendo DS after its launch.
If your application gets the system's language setting, take steps to avoid fatal problems such as garbled characters and lock-ups even if your application gets a language value that is not currently defined. One way to do this is to handle undefined language values as languages unsupported by the application.
Beginning with the CTR-SDK 10.x series, languages that are not defined in the currently in-development SDK, and languages that are not available in the current system region are no longer returned to the application. As a result, there is no need to handle unknown language settings in applications that use the CTR-SDK 10.x series or later.
Setting the language to an invalid value may render some network features unavailable.
A bug has been found in Taiwanese-region consoles where the application locks up if the software keyboard is launched while the system's language setting is set to invalid. This behavior is waived at Lotcheck because the bug is not in the application.
System Settings
Language Setting
Software keyboard