ctr_makebanner

Table of Contents

  1. Introduction
  2. How to Use
  3. BSF
  4. List of Characters Allowed in Title Names and Publisher Names
  5. Data Restrictions
  6. Variables Defined In OMakefile
  7. Revision History

Introduction

ctr_makebanner is a tool for creating BNR (ctr BaNneR model data) and ICN (ctr ICoN data).
BNR and ICN files are generated based on the content in banner spec files (BSF).

BNR files contain banner model data and sound data. ICN files contain banner headers and 2D icon data.

How to Use

What's Required

You will need the following to create BNR and ICN files:

BSF files contain the information required to create BNR and ICN files. They must be created individually for each application.

Commands

% ctr_makebanner32 [-d] BANNERSPECFILE [BANNERFILE] [ICONFILE]
% ctr_makebanner32 [-d] -noicn BANNERSPECFILE [BANNERFILE]
% ctr_makebanner32 [-d] -nobnr BANNERSPECFILE [ICONFILE]

You must specify BANNERSPECFILE (the BSF file). All other options are optional.

Options

Options Description
-noicn Does not output ICN files.
-nobnr Does not output BNR files.
-d Provides detailed output for debugging.
BANNERFILE Specifies a BNR file. If omitted, the output file will have the same basename as the BSF file used as input, but will have a file extension of .bnr instead of .bsf.
ICONFILE Specifies an ICN file. If omitted, the output file will have the same basename as the BSF file used as input, but will have a file extension of .icn instead of .bsf.

BSF

This file contains the settings for the BNR and ICN files to be generated.
It must be coded and saved in Unicode (UTF-16LE with BOM).
Notepad in Microsoft Windows 2000, Windows XP, Windows Vista, and Windows 7 supports Unicode.
Select Unicode from the Encoding drop-down list when saving the file.

Parameters

The delimiter between parameter specifications and values is a colon (:). If the same parameter occurs more than once, the instance written last in the file is used.

Format

Parameter specifications must come at the beginning of each line.
All characters after a "#" are treated as a comment.
Space and tab characters at the beginning and ending of the value are ignored. All other spaces are included in the string. If you want to include leading spaces or if you want to include quotation marks ("), "#" symbols, or colons (:) in the string, surround the string with quotation marks ("").

Format

The BSF file format is shown below.

BigIconFile:       # 48x48-pixel icon filename
LittleIconFile:    # 24x24-pixel icon filename
ModelFile:         # Banner model filename
SoundFile:         # Sound filename

JoinGameId:    # Join-in game ID
JoinGameModeMask: # Join-in game mode mask
CecUniqueId:          # StreetPass unique ID

Region:         # Card region

Ulcd:           # Stereoscopic vision flag
AgreeEula:      # EULA agreement required flag
AutoSave:       # Auto save flag
ExBanner:       # Extended banner use flag
SaveData:       # Save data use flag

ThumbnailFrame: # Banner animation best frame

JPLongName:  # Title name displayed on two lines (Japanese)
ENLongName:  # Title name displayed on two lines (English)
FRLongName:  # Title name displayed on two lines (French)
GELongName:  # Title name displayed on two lines (German)
ITLongName:  # Title name displayed on two lines (Italian)
SPLongName:  # Title name displayed on two lines (Spanish)
DULongName:  # Title name displayed on two lines (Dutch)
POLongName:  # Title name displayed on two lines (Portuguese)
RULongName:  # Title name displayed on two lines (Russian)
CNLongName:  # Title name displayed on two lines (Simplified Chinese) Note: For this item only, characters are restricted to a maximum of 108 characters.
See the detailed description below.
KRLongName:  # Title name displayed on two lines (Korean)
TWLongName:  # Title name displayed on two lines (Traditional Chinese)

JPShortName: # Title name displayed on one line (Japanese)
ENShortName: # Title name displayed on one line (English)
FRShortName: # Title name displayed on one line (French)
GEShortName: # Title name displayed on one line (German)
ITShortName: # Title name displayed on one line (Italian)
SPShortName: # Title name displayed on one line (Spanish)
DUShortName: # Title name displayed on one line (Dutch)
POShortName: # Title name displayed on one line (Portuguese)
RUShortName: # Title name displayed on one line (Russian)
CNShortName: # Title name displayed on one line (Simplified Chinese)
KRShortName: # Title name displayed on one line (Korean)
TWShortName: # Title name displayed on one line (Traditional Chinese)

JPPublisher: # Publisher name (Japanese)
ENPublisher: # Publisher name (English)
FRPublisher: # Publisher name (French)
GEPublisher: # Publisher name (German)
ITPublisher: # Publisher name (Italian)
SPPublisher: # Publisher name (Spanish)
DUPublisher: # Publisher name (Dutch)
POPublisher: # Publisher name (Portuguese)
RUPublisher: # Publisher name (Russian)
CNPublisher: # Publisher name (Simplified Chinese)
KRPublisher: # Publisher name (Korean)
TWPublisher: # Publisher name (Traditional Chinese)

RatingRequired: # Rating flag

CERO:      # CERO rating (Japan)
ESRB:      # ESRB rating (Americas)
USK:       # USK rating (Europe)
PEGI_GEN:  # PEGI rating (Required for titles sold in Europe outside of Portugal and the United Kingdom)
PEGI_PRT:  # PEGI rating (Required for titles sold in Portugal)
PEGI_BBFC: # PEGI and BBFC ratings ((Required for titles sold in United Kingdom)
COB:       # COB rating (Australia)
GRB:       # GRB rating (Korea)
CGSRR:     # CGSRR rating (Taiwan)

ISBN:      # ISBN number (Required only in Chinese region. Note: There are exceptions. See the ISBN item below)
HTDJH:     # Contract Registration Number  (Required only in Chinese region. Note: There are exceptions. See the ISBN section later in this document.)
XCSZ_L:    # GAPP Number  (Required only in Chinese region. Note: There are exceptions. See the ISBN section later in this document.)
XCSZ_R:    # Gapp Number  (Required only in Chinese region. Note: There are exceptions. See the ISBN item below)

Set the values using the following format:

Specifying Single Values

Specify single values as follows:

Key Name: Value

Use the following notation for two-line text, such as long title names.
Although Unicode includes several characters that indicate a newline, use CR LF (0x00d 0x000a) for line breaks.
The newline code entered when using Notepad included in Microsoft Windows 2000, XP, Vista, and 7 is okay as is.

Key Name Value Line 1
Value Line 2

BSF files contain the information required to create BNR and ICN files. They must be created individually for each application.

Notes

Descriptions of the settings for each of these items are shown below.
Item Description Comments
BigIconFile A 48x48-pixel icon filename. Specifies an icon filename as a file path.
Either a relative or absolute path to the .bsf file may be used.
Specify a TGA file created by the NW4C plug-in (48*48 RGB 565, no mipmap) or a 48*48 CTPK file (CTR icon package) created by the CTR-SDK TexturePackager with the -dsl option.
You must select the For Layout check box in the plug-in dialog box to save a 48*48 TGA file.

There is a bug where a few pixels of the top centers of large icons do not appear correctly in some built-in applications. See Known Issues (posted on WarioWorld) for details about workarounds.
LittleIconFile A 24x24-pixel icon filename. Specifies an icon filename as a file path.
Either a relative or absolute path to the .bsf file may be used.
Specify a TGA file created by the NW4C plug-in (24*24 RGB 565, no mipmap) or a 24*24 CTPK file (CTR icon package) created by the CTR-SDK TexturePackager with the -dsl option.
You must select the For Layout check box in the plug-in dialog box when saving a 24*24 TGA file.
ModelFile Specifies a banner model filename.
Specify a .cbmd file that was created using BannerModelConverter, included in the CTR-SDK.
Either a relative or absolute path to the .bsf file may be used.
SoundFile Specifies a sound filename.
Specify a .bcwav file that was created using WaveConverter, included in the CTR-SDK.
Either a relative or absolute path to the .bsf file may be used.
JoinGameId The matchmaking game ID.
This information is to identify game titles that support online features.
Specify as an 8-digit hexadecimal value. A prefix indicating hexadecimal notation (such as 0x or h) is not required.
JoinGameModeMask The matchmaking game mode mask.
Specify as a 16-digit hexadecimal value. A prefix indicating hexadecimal notation (such as 0x or h) is not required.
CecUniqueId The StreetPass unique ID.
Specify as a 6-digit hexadecimal value. A prefix indicating hexadecimal notation (such as 0x or &h) is not required. When there is newly arrived data for the StreetPass box for the unique ID specified here, an update indicator is displayed on the application icon displayed in the HOME Menu.
You must generally specify the application's unique ID, but you can instead specify a different unique ID for StreetPass between multiple applications, such as between different versions of the same application or between applications in a series.
Region Indicates the card region. Software runs only when this matches the console's region. The following strings can be specified.
Japan   Japan
America  The Americas
Europe    Europe and Australia
China      China
Korea      Korea
Taiwan    Taiwan and Hong Kong
All      Unrestricted. (For debug use only. Not available for submitted ROMs.)
Ulcd Be sure to specify true for applications that can use stereoscopic vision. Specify either true or false.
This flag is used as a determinant when 3D screen display is restricted in Parental Controls.
Default: true
AgreeEula Specify true for applications that require Internet communication features or StreetPass to advance. Specify either TRUE or FALSE.
When the application is launched before the EULA has been agreed to, the HOME Menu first seeks user agreement to the EULA.
Default: false
AutoSave Specify true for applications that always auto-save when exiting the application.
The warning message that appears when exiting an application from the HOME Menu changes depending on this flag. True --- Exits without displaying message. (But if another application has been launched, this message displays: Would you like to close this software? (Data will be saved.))
False --- This message displays: Would you like to close this software? (Anything not saved will be lost.)
Specify either true or false. An auto-save is performed when the application exits, but if not all data will be saved at such times, decide whether to specify true or false based on what you think users expect to be saved at such times.
Default: false
ExBanner Be sure to specify true for applications that use extended banners. Specify either true or false. Default: false
SaveData Be sure to specify true for applications that use save data, extended save data, etc.
With this flag, when terminating the application from the HOME Menu
let the user know that auto save occurs and that the save data will be deleted.
Specify either true or false.
Default: true
ThumbnailFrame Represents a representative frame of the banner animation. Specify a value greater than 0 and less than 600.
Be sure to specify the most representative frame in the banner. Specify as a floating point number.
Note: Used for displaying a stopped (static) banner. (Details to be decided.)
 
JPLongName This is the Japanese title, displayed on two lines.
Specify using a newline between the two lines. Leading spaces are ignored in this case.
There are restrictions on character widths. For this region, each line can hold up to 16 double-byte characters plus the width equivalent to 3 sinlge-byte (ASCII) "i" characters.
The restriction on the number of characters is a maximum of 128 characters (including the newline and the terminator) on these two lines.
Only use one line if text can fit on one line.
Required for Japanese region.
ENLongName This is the English title, displayed on two lines.
This item is required for every application in every region. If your application has no English title, configure this item with its title in one of the languages it does support.
Everything else is the same as above.
Required for all regions.
FRLongName This is the French title, displayed on two lines. Everything else is the same as above.
GELongName This is the German title, displayed on two lines. Everything else is the same as above.
ITLongName This is the Italian title, displayed on two lines. Everything else is the same as above.
SPLongName This is the Spanish title, displayed on two lines. Everything else is the same as above.
DULongName This is the Dutch title, displayed on two lines. Everything else is the same as above.
POLongName This is the Portuguese title, displayed on two lines. Everything else is the same as above.
RULongName This is the Russian title, displayed on two lines. Everything else is the same as above.
KRLongName This is the Korean title, displayed on two lines. Everything else is the same as above. Required for Korean region.
TWLongName This is the Chinese title in traditional Chinese, displayed on two lines. Everything else is the same as above. Required for Taiwan/Hong Kong region
CNLongName This is the Chinese title in simplified Chinese, displayed on two lines.
Note: ISBN and other information are embedded at the end of the title name in a region 20 characters in size. So for this item only, characters are restricted to a maximum 108 characters.
Required for Chinese region.
 
JPShortName Indicates a one-line display title name in Japanese.
There is a restriction on character width. It should fit within the width of 17 double-byte characters.
The restriction on the number of characters allows for up to 64 characters (including newlines and a null terminator) to be used.
Either enter enough on one of the two lines to distinguish the title or omit some of the two lines of text.
If you just can't make the short title fit one line, add an ellipsis (...) at the end to indicate the title has been cut off in the middle.
Required for Japanese region.
ENShortName This is the English title, displayed on one line.
This item is required for every application in every region. If your application has no English title, configure this item with its title in one of the languages it does support.
Everything else is the same as above.
Required for all regions.
FRShortName This is the French title, displayed on one line. Everything else is the same as above.
GEShortName This is the German title, displayed on one line. Everything else is the same as above.
ITShortName This is the Italian title, displayed on one line. Everything else is the same as above.
SPShortName This is the Spanish title, displayed on one line. Everything else is the same as above.
DUShortName This is the Dutch title, displayed on one line. Everything else is the same as above.
POShortName This is the Portuguese title, displayed on one line. Everything else is the same as above.
RUShortName This is the Russian title, displayed on one line. Everything else is the same as above.
KRShortName This is the Korean title, displayed on one line. Everything else is the same as above. Required for Korean region.
TWShortName This is the Chinese title in traditional Chinese, displayed on one line. Everything else is the same as above. Required for Taiwan/Hong Kong region
CNShortName This is the Chinese title in simplified Chinese, displayed on one line. Everything else is the same as above. Required for Chinese region.
 
JPPublisher Indicates the Japanese publisher name.
There is a restriction on character width. It should fit within the width of 17 double-byte characters.
The restriction on the number of characters allows for up to 64 characters (including newlines and a null terminator) to be used.
Required for Japanese region.
ENPublisher Indicates the English publisher name. Everything else is the same as above. Required for all regions.
FRPublisher Indicates the French publisher name. Everything else is the same as above.
GEPublisher Indicates the German publisher name. Everything else is the same as above.
ITPublisher Indicates the Italian publisher name. Everything else is the same as above.
SPPublisher Indicates the Spanish publisher name. Everything else is the same as above.
DUPublisher Indicates the Dutch publisher name. Everything else is the same as above.
POPublisher Indicates the Portuguese publisher name. Everything else is the same as above.
RUPublisher Indicates the Russian publisher name. Everything else is the same as above.
KRPublisher Indicates the Korean publisher name. Everything else is the same as above. Required for Korean region.
TWPublisher Indicates the Chinese publisher name in traditional Chinese. Everything else is the same as above. Required for Taiwan/Hong Kong region
CNPublisher Indicates the Chinese publisher name in simplified Chinese. Everything else is the same as above. Required for Chinese region.
 
RatingRequired Specifies whether a rating must be obtained for the application.
Specify true for almost all applications. If false is specified, no ratings can be set from any rating organization.
Specify either true or false.
Default: true
CERO Sets the CERO rating (Japan). Specify as a numeric value.
  0            A (all ages)
12            B (age 12 and up)
15            C (age 15 and up)
17            D (age 17 and up)
18            Z (age 18 and up)
Pending    Under review
For Japanese region.
ESRB Sets the ESRB rating (Americas). Specify as a numeric value.
 3            EARLY CHILDHOOD (EC, all ages)
 6            EVERYONE (E, age 6 and up)
10            EVERYONE10+ (E10+, age 10 and up)
13            TEEN (T, age 13 and up)
17            MATURE (M, age 17 and up)
Pending    Under review
For Americas region
USK Sets the USK rating (Europe). Specify as a numeric value.
  0            No age restriction
  6            age 6 and up
12            age 12 and up
16            age 16 and up
18            Inappropriate for minors
Pending    Under review
For European region.
PEGI_GEN Sets the PEGI_GEN rating (Europe). Specify as a numeric value.
  3            age 3 and up
  7            age 7 and up
12            age 12 and up
16            age 16 and up
18            age 18 and up
Pending    Under review
For European region
(Required for titles sold in Europe outside of Portugal and the United Kingdom)
PEGI_PRT Sets the PEGI_PRT rating (Europe). Specify as a numeric value.
  4            age 4 and up
  6            age 6 and up
12            age 12 and up
16            age 16 and up
18            age 18 and up
Pending    Under review
For European region
(Required for titles sold in Portugal)
PEGI_BBFC Sets the PEGI_BBFC rating (Europe). Specify as a numeric value.
  3            age 3 and up
  4            U, Uc (recommended for age 4 and up)
  7            age 7 and up
  8            PG (recommended for age 8 and up)
12            age 12 and up
15            age 15 and up
16            age 16 and up
18            age 18 and up
Pending    Under review
For European region
(Required for titles sold in United Kingdom)
COB Sets the COB rating (Australia). Specify as a numeric value.
  0            G (General, no age specified)
  7            PG (Parental guidance recommended, no age specified)
14            M (Recommended for adults, no age specified)
15            MA15+ (Unsuitable for 15 years and younger, consent or a parent or guardian required for 15 years or younger)
Pending    Under review
For European region.
GRB Sets the GRB rating (Korea). Specify as a numeric value.
  0            All ages
12            12 years or older
15            15 years or older
18            Not for minors
Pending    Under review
For Korean region.
CGSRR Sets the CGSRR rating (Taiwan). Specify as a numeric value.
0            General (all ages)
  6            Protect (ages 6 and up)
12            Counsel 12 (ages 12 and up)
15            Counsel 15 (ages 15 and up)
18           Restrict (ages 18 and up)
Pending    Under review
For Taiwan/Hong Kong region.
ISBN The ISBN number. Maximum 17 characters of ASCII code, hyphens included. (Example: AAA-B-CCCCC-DDD-X).
Use hyphens when entering ISBN numbers. The positions of the hyphens may vary depending on the application.
Note: If you specify Pending for the ISBN item, then ISBN, HTDJH, XCSZ_L, XCSZ_R are no longer required. Specify Pending for applications that are still under development, and for special applications that do not require ISBN display.
Item required for the Chinese region.
Cannot be set for other regions.
HTDJH The Contract Registration Number. Maximum of 12 characters of ASCII code. Item required for the Chinese region.
Cannot be set for other regions.
XCSZ_L GAPP Number (China-specific information displayed on left side). Maximum of 4 characters of ASCII code. Item required for the Chinese region.
Cannot be set for other regions.
XCSZ_R GAPP Number (China-specific information displayed on right side). Maximum of 4 characters of ASCII code. Item required for the Chinese region.
Cannot be set for other regions.

Recommendations for each region

The following table summarizes the languages for each region.
◎: Required. Must be set to this value.
○: Standard. If set to this, systems for that region may use it.
Blank: Optional. If set to this, it may be used for StreetPass and friend registration with systems from other regions.
Note: Revised specifications in the American and European regions so that the English title name is automatically used for languages whose title name is blank.
  Japanese English French German Italian Spanish Simplified Chinese Korean Dutch Portuguese Russian Traditional Chinese
Japanese market
American market
European and Australian markets
Chinese market
Korean market
Taiwan/Hong Kong region

Samples


sample.bsf

#BSF --- Banner Spec File
LittleIconFile: little.ctpk
BigIconFile: big.ctpk
ModelFile: model.cbmd
SoundFile: sound.bcwav

Region:Japan # Comment
Ulcd:True
AutoSave:False
SaveData:True
ThumbnailFrame:0

CERO:0

JPLongName: Long title name
            "subtitle:symbol#"
JPShortName: Short title name
JPPublisher: Publisher

A simple example of a .bsf file with a CERO rating of all ages and 3D display with save data.

List of Characters Allowed in Title Names and Publisher Names

The usable characters will vary for different regions.
For details, see the lists of charters allowed in different regions.

Data Restrictions

The following restrictions apply to banner data.

Restriction on Data Size

The compressed volume of data after conversion must be no larger than 1MB.
For details, see ctr_BannerModelConverter.
Note: Data in violation of these restrictions causes an error during conversion by BannerModelConverter.

Sound File Restrictions

The following restrictions apply to sound files.
Note: Data in violation of these restrictions causes an error during conversion by BannerModelConverter. (Not implemented.)

Variables Defined in OMakefile

See Build Rules for more information about the variables defined in OMakefile.

Revision History

2012/06/19
Fixed the program because it would sometimes not work correctly when .tga files with a format other than ETC were specified in BigIconFile or LittleIconFile.
2012/06/15
Added support for the new ratings in Taiwan.
2012/02/15
Corrected errors in criteria for maximum number of characters in title names.
2012/01/20
Revised the partial error in string horizontal width determination for the Chinese, Korean, and Taiwanese markets.
Deleted description of StreetPass ID, which had been scheduled to be eliminated.
2011/12/14
Added support for the Chinese, Korean, and Taiwan/Hong Kong regions.
2011/9/27
Support for NW4C TGA files.
Changed the EULA version for the United States market from 1.0 to 1.1.
2011/9/8
Revised description of extremely rare bug where conversion does not happen properly and an error occurs.
Join-in IDs and join-in game mode masks can now be used.
2011/8/4
Deleted CecId item and added CecUniqueId item.
2011/6/22
Added note to descriptions of BigIconFile and other items that this is the relative path to the BSF file.
2011/6/17
Changed the restriction on the number of characters in LongName to 16 full-width characters plus 3 half-width "i" characters per line.
Changed makebanner to output files to a relative path from the current directory instead of a
relative path calculated from the directory with the BSF file.
2011/6/9
In the Americas and European regions, the English-language titles are
now used automatically for languages with blank titles.
2011/4/12
Fixed a bug in the revision from 2011/02/04 that was supposed to show an error message
when the join-in game ID and join-in game mode bit are set.
2011/2/4
When the matchmaking game ID and matchmaking game mode bit have been configured, revisions have been made so that an error occurs.
Added a description of the AgreeEULA flag.
2011/1/18
When there is no banner model data (CBMD) or no sound file (BCWAV),
an error message now is output.
2010/12/30
Fixed a bug related to the BNR file capacity restrictions check.
2010/12/25
An error now occurs when the created BNR file violates the restriction on data capacity.
2010/12/21
Revised the check of required languages for each market. (Previously this check did not work correctly.)
Fixed the notation for Korean from KR to the correct KO.
Changed the status of Korean and Chinese to "not yet supported."
2010/11/24
Added required language checks for each market.
Fixed bug where BSF two-line titles would not be properly configured if the second line consisted of only a newline.
2010/11/19
Added data restrictions.
2010/10/20
Removed the Australia market and integrated it with the Europe market.
2010/10/15
Changed the "Matchmake Game code" to the "join-in game ID".
Changed the Matchmake Game code bit to the matchmaking game mode bit flag.
2010/10/13
Added the StreetPass ID item.
Revised the specifiable market items.
2010/10/09
Removed explanation about non-support of banner confirmation.
2010/09/28
Initial version.

CONFIDENTIAL