The ctr_BannerModelConverter tool is used to create CBMD (CTR binary banner model) files.
CBMD files are created based on the specified folder structure.
The resulting CBMD file can be used with the makebanner BSF files.
This tool uses the data converter from Creative Studio for CTR.
NW4C version 1.2, which supports the HOME Menu, must be installed in the environment where conversion takes place.
You need the following files to create a CBMD file:
% ctr_BannerModelConverter DIRECTORYNAME [Output]
The DIRECTORYNAME specification is required. All other options are optional.
| Options | Description |
|---|---|
| DIRECTORYNAME | Specifies the input directory name. Be sure to use the specified directory structure (described later). |
| Output | Specifies the file to output. If omitted, a file with the cbmd extension added to the originally input filename is output. |
A banner is model data displayed in the upper screen when an application is selected.
Banners are used to show a line-up of miniature target applications on the menu.

Banner model data can be divided into one of two main categories: Model data common to all languages, and data especially intended for each separate region and language combination.
Make sure to use a directory structure as given below. Specify the Banner folder at the top in DIRECTORYNAME on the command line.
Banner ━┳━ COMMON ━┳━ COMMON.cmdl
┃ ┣━ COMMON.cskla
┃ ┣━ COMMON.cmata
┃ ┣━ COMMON.cenv
┃ ┣━ COMMON.clts
┃ ┗━ Textures ━┓
┃ ┣━ COMMON1.ctex
┃ ┣━ COMMON2.ctex
┃ ┣━ COMMON3.ctex
┃
┣━ JPN_JP ━┳━ JPN_JP.cmdl
┃ ┣━ JPN_JP.cskla
┃ ┣━ JPN_JP.cmata
┃ ┣━ JPN_JP.cenv
┃ ┣━ JPN_JP.clts
┃ ┗━ Textures ━┓
┃ ┣━ COMMON1.ctex (Data for swapping)
┃ ┣━ …
┃ ┣━ TEX1.ctex (arbitrary name)
┃ ┣━ TEX2.ctex (arbitrary name)
┃ ┣━ TEX3.ctex (arbitrary name)
┃ ┣━ …
┣━ …
┣━ …
・The COMMON folder is a required item. The content of the other folders is arbitrary, but these folders must exist. If there is no content, you must create empty folders.
Be sure that the file names inside the COMMON folder are of the format COMMON.cmdl.
・If you place textures with names like COMMON1.ctex inside the Textures folders for the various language-specific data, the textures with the same names stored inside COMMON can be swapped with the various language textures for display.
・For the various other language-specific data besides texture data, use that language when naming the data (such as JPN_JP.cmdl).
The naming can be arbitrary for textures to which data swapping does not apply.
| Name | Region | Language |
|---|---|---|
| COMMON | All regions | All Languages |
| EUR_EN | Europe | British English |
| EUR_FR | Europe | French |
| EUR_GE | Europe | German |
| EUR_IT | Europe | Italian |
| EUR_DU | Europe | Dutch |
| EUR_PO | Europe | Portuguese |
| EUR_RU | Europe | Russian |
| EUR_SP | Europe | Spanish |
| JPN_JP | Japan | Japanese |
| USA_EN | The Americas | North American English |
| USA_FR | The Americas | French (Canada) |
| USA_SP | The Americas | Spanish (Latin America) |
| USA_PO | The Americas | Portuguese (Brazil) |
The following restrictions apply to banner model data.
Note: The numeric values in the explanations below are the numbers from Creative Studio.
Note: These restrictions are provisional. These specifications are subject to change in the future.
The camera is fixed. Cannot be adjusted for each individual application.
Note: Cameras placed inside banner data can only be used for projection mapping.
| Camera position x, y, z | Look-at point x, y, z | Angles of view (fovy) | near/far | Depth Level※ | Factor※ |
|---|---|---|---|---|---|
| 0.0 / 1.0 / 44.786 | 0.0 / 1.0 / 0.0 | 30 | 26.5 / 1000 |
34.786 (Note: The screen level is +10 from the origin.) |
1.0 |
Note: These are the depthLevel and factor values used by the ulcd::CalculateMatrices function.
Any parts that extend past the range shown in the figure are hidden by the system.
Note: The blender's stencil test is used to apply a mask based on a hidden ellipsoid model.
(For this reason, stencil tests cannot be used on the model side. The setting is overwritten on the system side.)

| Mask ellipsoid size X/Y/Z |
|---|
| Diameter 18 / Diameter 9.5 / Diameter 18 Note: Use the center of the ellipsoid as the origin and create the model in this range. |
Models rotate once in 600 frames (10 seconds at 60 fps) at constant velocity to the left for a viewer facing the screen. - Rotation accelerates if the user blows into the microphone.
Note: Use billboard settings for nodes you do not want to be rotated.
Note: Although these nodes do not normally turn if rotated to the right at constant speed for 600f, they will rotate if the user blows into the microphone.
There are restrictions on data by design and to prevent skipped frames.
Note: Data that violates these restrictions generates an error during conversion. (Not implemented)
Even if the data is within the restrictions, the data size must be reduced if skipped frames occur. (Described later.)
| Extension |
◎: Required ○: Optional ×: Not supported |
Data restrictions on [Data common to all languages] + [Data for a single language] |
|---|---|---|
| cmdl | ◎ | Number of polygons: 3000 or less Number of bones: 5 or less Number of materials: 5 or less Layer configurations: 0, 1, 2, or 3 (Note: Limited to those with one cycle.) Stencil test unavailable: Used for masking with an ellipse. |
| ctex | ○ | There is no limit on the number of textures as long as the size does not exceed the limit. |
| cskla | ○ | Create a looped animation of 600 frames or less. |
| cmata | ○ | Create a looped animation of 600 frames or less. |
| cenv | ○ | Number of lights (3 or less) Number of cameras (3 or less) Number of fogs (1 or less) |
| clts | ○ | Number of tables (3 or less) |
| cptl | × | Particles are not supported. |
| csdr | × | User shaders are not supported. (The default shader is used.) |
| clgt | × | Store lights in cenv. Animation is not supported. |
| ccam | × | Store projection map cameras in cenv. Animation is not supported. |
| cmdla | × | Does not support visibility animations of models. |
| cres | × | Merged files are not supported to support localization needs to switch resources. |
| Other | × | There are no plans to support other intermediate file extensions that may be added in the future.(2010.12.09) |
The following restrictions have been placed on data size after conversion.
Note: Data that violates these restrictions generates an error during conversion.
| Data capacity restrictions on [Data common to all languages] + [Data for a single language] | Data capacity restrictions on [Data common to all languages] + [All language-specific data] (Data capacity restrictions for banner files ( *.bnr), including sound data) |
|---|---|
| 256KB for Banner size Note: You can check this using Save as binary from the 3D intermediate file editing tools. |
1MB for Size after compression Note: There are no absolute rules for how much the size decreases with compression, but if you meet the above restrictions it is unlikely that you will violate this restriction. |
Pressing "X+Y" on the HOME Menu for developers displays debug commands.
- Check processing in the display state shown below.
| Number of drawings | Description |
|---|---|
| 【1】 | Turn off the wireless switch on the right side of the system. |
| 【2】 | From the top, the region name and language name, HOME Menu build timestamp, and HOME Menu version are displayed. |
| 【3】 | These processing bars used to check processing. From the top, the maximum processing load per 1f indicator (fixed), CPU processing load indicator, and GPU processing load indicator are displayed. Note: The details are described later. |
| 【4】 | The lower screen displays items that can be checked in the order: "Health and Safety Information," "Applications to check processing," "3DS Cameras," "3DS Sounds." Note: Put the system into a state that does not display the new arrival icon. |
- The Processing Bars
Neither the CPU nor GPU may exceed the processing limit of 80%. In addition, processing must not exceed the processing limit of 80% even by 1f for 600f while the banner is rotating.
| Bar Colors | Description |
|---|---|
| ■ Green | The processing load is in the okay zone. There is no need to reduce processing. |
| ■ Yellow | The bar turns yellow (caution) if the processing load goes over 75%. There is no need to reduce processing. |
| ■ Red | The bar turns red (warning) if the processing load goes over 80%. Reduce processing. |
Processing bars must be kept in the states indicated as okay below.
Effective measures of reducing CPU processing are:
・Reducing the number of bones
・Reducing the number of vertices, etc.
Effective measures of reducing GPU processing are:
・Reducing texture capacity
・Reducing the number of textures
・Applying mipmaps to textures
・Reducing the area to be rendered for translucent polygons, etc.
ctr_makebanner).CONFIDENTIAL