8.1.1 Mii Resources
When displaying a Mii character in an application, it is prohibited to alter the Mii resources or use any other graphics source other than the Mii resources. For example, it is prohibited to alter the actual image data for the eyes in the Mii resource to add sunglasses or otherwise change the display of the eyes of the Mii character. It is also prohibited to change the structure of the Mii data to link it to your own graphics resources and display your own original Mii character.
Just as it is prohibited to actually alter the Mii resources, it is prohibited to apply other processing that changes the appearance of the Mii character in a way similar to altering the Mii resources, such as overlaying another image or object on top of the Mii character image. However, it is acceptable to use CFL features to add a hat or other accessory to the Mii character.
8.1.1.1 Prohibition Against Altering Mii Resources or Overlaying Images
Guideline Item |
When displaying a Mii character, the application must not use altered resources or an independent graphics resource. |
---|---|
Software to Be Tested |
Applications that use Mii characters. |
Exceptions |
Applications that use CFL features to add accessories to the Mii character. |
Test Method |
Check the source code. |
Pass/Fail Determination |
Passes if all of the following conditions are met.
|
8.1.2 Mii Faces
When a Mii face is displayed for purposes of identification, we recommend using a mechanism that prevents the Mii face from being distorted, such as adjusting the image size. Also, if the CFL face icon creation function is used to create the image, we recommend creating an image greater than 64x64 pixels.
However, if the size of the Mii character is variable, or if the Mii is not used for identification purposes, it is permissible for the Mii face to be somewhat distorted. An example of when there is no need to be able to identify a Mii character's face would be when a Mii character appears in a large group, such as in an audience.
No required guideline items.
8.1.3 Displaying Nicknames and Creator Names
Mii characters can cross market regions into other Nintendo 3DS systems, meaning that Mii characters created on Mii Maker from various regions can enter into Nintendo 3DS systems and applications regardless of the market regions of those systems and applications. This means that the Mii character's nickname or the creator's name might include characters that are not supported by all regions.
If the Mii nickname or creator name are displayed in the application, Nintendo recommends that the application be able to display the range of characters listed in Table 8-1 Recommended Displayable Characters for Applications in Each Region. If your application is compatible with the characters listed in Table 8-1 Recommended Displayable Characters for Applications in Each Region, then it will be able to display all characters that can be input in the regional variations of Mii Maker.
Application Region | Recommended Displayable Characters for Application |
---|---|
Japan version, Americas version, Europe version |
Characters included in CTR_MiiName_USA_EUR_JPN.xllt (This comprises all characters that can be entered in the Japan, Americas, and Europe versions of Mii Maker.) |
China version | Characters included in CTR_MiiName_CHN.xllt. |
Korea version | Characters included in CTR_MiiName_KOR.xllt. |
Taiwan version | Characters included in CTR_MiiName_TWN.xllt. |
If possible, it is desirable for your application to be able to display all the characters capable of being displayed in Mii Maker for each region, as shown in Table 8-2 Displayable Characters for Mii Maker in Each Region. Since Table 8-1 Recommended Displayable Characters for Applications in Each Region is a subset of Table 8-2 Displayable Characters for Mii Maker in Each Region, compatibility with the characters in Table 8-2 ensures that even if in the future the number of characters available for input in Mii Maker is increased (thus increasing the number of recommended characters in Table 8-1), your application will be compatible with them.
Application and Nintendo 3DS System Region | Displayable Characters for Mii Maker |
---|---|
Japan, Americas, Europe | All Japanese, American, and European characters included in the system font (excepting the backslash and %) |
China | All Simplified Chinese characters included in the system font (excepting the backslash and %) |
Korea | All Hangul characters included in the system font (excepting the backslash and %) |
Taiwan | All Traditional Chinese characters included in the system font (excepting the backslash and %) |
If the Mii nickname or creator name contains characters not supported by the application, replace any unsupported characters with question marks (?) or with character U+E06B from the system font. The range of characters available for input in Mii Maker for each region may be extended in future. Handle all unrecognized characters in the same way. You are welcome to use a different font face and either single- or double-byte characters for the question marks. Make sure that the presence of unsupported characters does not corrupt the display or impede progress in the application. Using question marks (?) to replace unsupported characters matches the behavior of built-in applications, so this reduces the chance that the user will misinterpret this behavior.
When using the CFL_GetAdditionalInfo function to get Mii nicknames and creator names, if you specify GL_TRUE for the replaceOtherRegionName argument, then the "?" symbol will be substituted for all non-ASCII characters in the nicknames and creator names when the Nintendo 3DS system region differs from the Mii font region. For example, if the Mii font region is 0 (Japan, Americas, Europe) and the nickname for the Mii is “たけしの Mii” (i.e.,“Takeshi's Mii" written in Japanese characters), then the nickname for that Mii gets converted and passed as "???? Mii" on the Chinese version of the Nintendo 3DS. For details, see Table 8-3 Conversion of Nicknames and Creator Names Based on Nintendo 3DS System Region and Font Region.
There are some cases where the fonts for different regions make use of the same character codes. If the CFL_GetAdditionalInfo function is not set to convert characters, be careful that nicknames and creator names are not displayed in the wrong fonts.
Nintendo 3DS System Region | Mii Font Region | Details About Character Conversion |
---|---|---|
Japan version, Americas version, Europe version | 0 (Japan, Americas, Europe) | No conversion |
Non-zero | All non-ASCII characters converted to “?” | |
China version | 1 (China) | No conversion |
Non-one | All non-ASCII characters converted to “?” | |
Korea version | 2 (Korea) | No conversion |
Non-two | All non-ASCII characters converted to “?” | |
Taiwan version | 3 (Taiwan) | No conversion |
Non-three | All non-ASCII characters converted to “?” |
If your application does not support display of the Latin script characters "ĈĉĔĕĜĝ," you can test this guideline by using the Mii character included in CFL_DB_nofont.dat in the Nintendo 3DS Face Library.
8.1.3.1 Display of Unsupported Characters
Guideline Item |
The application must replace any unsupported characters contained in nicknames or creator names with question marks (?) or with character U+E06B from the system fonts, and the presence of unsupported characters must not cause any bugs. |
---|---|
Software to Be Tested |
Applications that use Mii character nicknames and creator names. |
Test Method |
Create a Mii character using characters in the nickname and creator name that are unsupported by the application, and use that Mii character in the application. |
Pass/Fail Determination |
Passes if all unsupported characters are replaced with question marks (?) or with character U+E06B from the system fonts. |
8.1.4 Saving Mii Characters
If your application saves Mii characters to its save data or extra data, then do it by saving the CFLStoreData structures of the Mii characters. We recommend continually overwriting the saved CFLStoreData with the latest values—for example, doing so when the application is launched.
Do not record any data other than that present in the CFLStoreData to save data or extra data. In other words, do not save the following kinds of data to save data or extra data:
- The Mii face model work buffer
- Work buffer for the intermediate database
- Packet Buffer
- CFLNetInformation Buffer
- CFLAdditionalInfo
- Other CFL Structures
- The index of the front-end database
- Mii Unique IDs
For example, if data such as the Mii face model's work buffer or Mii additional information are saved to save data or extra data, then when the Mii character is updated in Mii Maker, the application will no longer be using the latest version of that Mii character. Moreover, if data such as the front-end database index or the Mii unique ID are saved to the save data, then when the Mii is deleted in Mii Maker or the application is started on a different system, the Mii character may become unusable. This is because the Mii that is being used does not exist in the database.
When using CFLStoreData saved to save data or extra data, applications must specify CFL_DATASOURCE_STOREDATA to the source argument of the following functions.
- CFL_InitCharModel function
- CFL_MakeIcon function
- CFL_SetToNetPacket function
- CFL_GetAdditionalInfo function
If you specify CFL_DATASOURCE_STOREDATA for the argument, then when the front-end database contains a Mii with the same unique ID as the Mii of the CFLStoreData that is passed to the function, the Mii in the front-end database takes priority and its data is used. The result is that the application always uses the latest version of that Mii.
However, for replay data and other instances where it is necessary to use the appearance and other information for a Mii as it is at a specific time, it is acceptable to specify CFL_DATASOURCE_STOREDATA_ALWAYS for the source argument of the above-listed functions. When CFL_DATASOURCE_STOREDATA_ALWAYS has been specified for the argument, the facial model is created using the CFLStoreData that was passed to the function, even if a Mii with the same unique ID exists in the front-end database. Note that if your application uses the CFLStoreData from an amiibo owner's Mii, you must specify CFL_DATASOURCE_STOREDATA_ALWAYS. See section 14.1.8 Displaying the Owner's Mii for details.
8.1.4.1 Handling When Saving a Mii Character to Save Data or Extra Data
Guideline Item |
When saving a Mii character to save data or extra data, applications must save the CFLStoreData structure of the Mii character, and must not save any other data associated with the Mii. |
---|---|
Software to Be Tested |
Applications that save Mii characters to save data or extra data. |
Test Method |
Check the source code. |
Pass/Fail Determination |
Passes if the application uses CFLStoreData to save the Mii. |
8.1.4.2 How to Use the CFLStoreData of Saved Mii Characters
Guideline Item |
When using Mii CFLStoreData structures saved to save data or extra data, applications must specify CFL_DATASOURCE_STOREDATA to the source argument of the following functions.
|
---|---|
Software to Be Tested |
Applications that save Mii characters to save data or extra data. |
Exceptions |
When saving a Mii character from a particular point in time, such as replay data. |
Test Method |
Within the application, save a Mii character to save data or extra data. Then, after making changes to that Mii character in Mii Maker, check the relevant Mii character within the application. |
Pass/Fail Determination |
Passes if the changes made within Mii Maker are reflected in the Mii character in the application. |
8.1.5 Exchange of Mii Data via Communication Features
Using communication features to exchange Mii data with another Nintendo 3DS
You must use one of the following data formats so that the exchanged Mii characters are displayed on the blocked-user settings screen.
- Packet buffer to which Mii data was set with the CFL_SetToNetPacket function
- CFLStoreData
Also, you must call the CFL_Exit function at some point before ending the application.
When an application is closed on Nintendo 3DS, there are several possible patterns that may be followed. See "Initializing the APPLET Library" in the Nintendo 3DS Programming Manual: System for further details.
The way to ensure that Mii characters are displayed on the blocked-user settings screen is for the application to create the Mii model, icon texture, and other data from CFLStoreData, and to later call the CFL_Exit function. Therefore the application must not send the texture for the Mii icon by itself as a standalone texture file. However, it is acceptable to send screenshots which contain Mii characters.
When sending Mii data, Nintendo recommends using packet buffers as opposed to using CFLStoreData. The reason we recommend this is because packet buffers are encrypted for the purpose of sending Mii characters, and because the application can generate encounters for the Mii characters contained in the packet buffers by setting received packet buffers in CFLNetInformation and performing a flush.
You must not send the CFLAdditionalInfo structure or its members in order to provide the Mii character's additional information. This is because the recipient Nintendo 3DS can get the additional information from CFLStoreData using the CFL_GetAdditionalInfo function, and that method is better because it ensures that the blocked-user list is applied. However, if you use Mii nicknames up until the point of sending the packet buffer or CFLStoreData, or if your application has a specification that uses only Mii nicknames without sending the packet buffer or CFLStoreData, it is acceptable to send and use the nicknames by themselves. For example, if you populate a list of rankings or list of peer candidates only with their Mii nicknames, or if you use their Mii nickname as the name of another player up until the point where you display their entire Mii model, it is acceptable to send and use only the Mii nickname by itself.
Note that in these cases, the nickname displayed in the application may change after the application receives a packet buffer or CFLStoreData structure, extracts the nickname from that data, and applies the blocked-user settings. For example, consider the case where a creator has received the nickname of a Mii registered on the blocked-user list, and has seen that name displayed on a list screen of some sort. If the Mii nickname is then displayed alongside the Mii model after communication starts, the nickname that the user saw before will be replaced by "Mii". In order to enable the blocked-user list and ensure that names are displayed consistently, Nintendo recommends always obtaining Mii nicknames from a packet buffer or CFLStoreData.
This section applies only to cases where the application sends Mii data. It does not apply to cases where a Mii nickname is received via the friends or OLV libraries.
Exchanging Mii data with other platforms
Contact Nintendo at support@noa.com if your application exchanges Mii characters with another platform such as Wii U.
8.1.5.1 Support for Exchanging Mii Data via Communication Features
Guideline Item |
Applications that use communication features to exchange Mii data must use one of the following data formats and must call the CFL_EXIT function before ending the application.
|
---|---|
Software to Be Tested |
Applications that use communication features to exchange Mii data. |
Exceptions |
If any of the following cases apply:
|
Test Method |
When displaying a Mii model or icon:
|
For all other application specifications:
Check the source code. |
|
Pass/Fail Determination |
When displaying a Mii model or icon: Passes if in step 3, the Mii received in step 2 is displayed on the blocked-user list. |
For all other application specifications: Passes if all of the following conditions are met.
|
8.1.6 Embedding CFLStoreData
In order for the application to introduce its own Mii characters, CFLStoreData created by application developers cannot be embedded in an application without the permission of Nintendo.
It is possible to use the CFL library or Mii Maker to embed the CFLStoreData of independently-created Mii characters in the application. However, such Mii characters will be added to the blocked-user list. If these Mii characters are added to the blocked-user list, all other Mii characters created on the same system and appearing in the application will be unfortunately converted to default Mii characters. The only way to revert them is to erase the blocked-user list.
If for some reason you must embed CFLStoreData in your application, contact Nintendo at support@noa.com. If you receive permission to embed CFLStoreData, then you will be given a special tool to do so in order to prevent the Mii characters from being added to the blocked-user list.
8.1.6.1 Implementing Embedding of CFLStoreData
Guideline Item |
Applications must not embed the CFLStoreData of their own Mii characters in the application without permission from Nintendo. |
---|---|
Software to Be Tested |
Applications that use Mii characters. |
Test Method |
|
Pass/Fail Determination |
Passes if in step 5, the Mii is not displayed on the blocked-user list screen. Alternatively, passes if only Mii characters received during communication with another system are displayed. |