ctr_makebanner

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) files.
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 Is Required

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

BSF files contain the information that is 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 has the same basename as the BSF file used as input, but has a file extension of .bnr instead of .bsf.
ICONFILE Specifies an ICN file. If omitted, the output file has the same basename as the BSF file used as input, but has a file extension of .icn instead of .bsf.

BSF

This file contains the settings for the BNR and ICN files to generate. 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 later in this document.
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 the United Kingdom.)
COB:       # COB rating (Australia).
GRB:       # GRB rating (Korea).
CGSRR:     # CGSRR rating (Taiwan).

ISBN:      # ISBN number. (Required only in the Chinese region. Note: There are exceptions. See the ISBN section later in this document.)
HTDJH:     # Contract Registration Number. (Required only in the 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 the Chinese region. Note: There are exceptions. See the ISBN section later in this document.)

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 that is required to create BNR and ICN files. They must be created individually for each application.

Notes

The following table describes the settings for each of these items.
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 (48x48 RGB 565, no mipmap) or a 48x48 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 48x48 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. For more information about workarounds, see Known Issues (posted on WarioWorld).
LittleIconFile A 24x24-pixel icon filename. Specifies an icon file name 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 (48x48 RGB 565, no mipmap) or a 48x48 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 24x24 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 identifies game titles that support online features.
Specify as a 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 a message. (If another application has been started, 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, and so on.
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 or equal to 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 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 on these two lines (including the newline and the terminator).
If text can fit on one line, use only one line.
Required for the Japanese region.
ENLongName 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 for Japanese.
Required for all regions.
FRLongName The French title, displayed on two lines. Everything else is the same as for Japanese.
GELongName The German title, displayed on two lines. Everything else is the same as for Japanese.
ITLongName The Italian title, displayed on two lines. Everything else is the same as for Japanese.
SPLongName The Spanish title, displayed on two lines. Everything else is the same as for Japanese.
DULongName The Dutch title, displayed on two lines. Everything else is the same as for Japanese.
POLongName The Portuguese title, displayed on two lines. Everything else is the same as for Japanese.
RULongName The Russian title, displayed on two lines. Everything else is the same as for Japanese.
KRLongName The Korean title, displayed on two lines. Everything else is the same as for Japanese. Required for the Korean region.
TWLongName The Chinese title in traditional Chinese, displayed on two lines. Everything else is the same as for Japanese. Required for the Taiwan/Hong Kong region.
CNLongName 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. For this item only, characters are restricted to a maximum of 108 characters.
Required for the 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).
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 the Japanese region.
ENShortName 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 for Japanese.
Required for all regions.
FRShortName The French title, displayed on one line. Everything else is the same as for Japanese.
GEShortName The German title, displayed on one line. Everything else is the same as for Japanese.
ITShortName The Italian title, displayed on one line. Everything else is the same as for Japanese.
SPShortName The Spanish title, displayed on one line. Everything else is the same as for Japanese.
DUShortName The Dutch title, displayed on one line. Everything else is the same as for Japanese.
POShortName The Portuguese title, displayed on one line. Everything else is the same as for Japanese.
RUShortName The Russian title, displayed on one line. Everything else is the same as for Japanese.
KRShortName The Korean title, displayed on one line. Everything else is the same as for Japanese. Required for the Korean region.
TWShortName The Chinese title in traditional Chinese, displayed on one line. Everything else is the same as for Japanese. Required for the Taiwan/Hong Kong region.
CNShortName The Chinese title in simplified Chinese, displayed on one line. Everything else is the same as for Japanese. Required for the 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).
Required for the Japanese region.
ENPublisher Indicates the English publisher name. Everything else is the same as for Japanese. Required for all regions.
FRPublisher Indicates the French publisher name. Everything else is the same as for Japanese.
GEPublisher Indicates the German publisher name. Everything else is the same as for Japanese.
ITPublisher Indicates the Italian publisher name. Everything else is the same as for Japanese.
SPPublisher Indicates the Spanish publisher name. Everything else is the same as for Japanese.
DUPublisher Indicates the Dutch publisher name. Everything else is the same as for Japanese.
POPublisher Indicates the Portuguese publisher name. Everything else is the same as for Japanese.
RUPublisher Indicates the Russian publisher name. Everything else is the same as for Japanese.
KRPublisher Indicates the Korean publisher name. Everything else is the same as for Japanese. Required for the Korean region.
TWPublisher Indicates the Chinese publisher name in traditional Chinese. Everything else is the same as for Japanese. Required for the Taiwan/Hong Kong region.
CNPublisher Indicates the Chinese publisher name in simplified Chinese. Everything else is the same as for Japanese. Required for the 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 the 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 the 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 the 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 the 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 the 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 the European region.
(Required for titles sold in the 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 the 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 the 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 the 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; ISBN, HTDJH, XCSZ_L, and 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.
Required for the Chinese region.
Cannot be set for other regions.
HTDJH The contract registration number. Maximum of 12 characters of ASCII code. Required for the Chinese region.
Cannot be set for other regions.
XCSZ_L GAPP Number (China-specific information displayed on the left side). Maximum of 4 characters of ASCII code. Required for the Chinese region.
Cannot be set for other regions.
XCSZ_R GAPP Number (China-specific information displayed on the right side). Maximum of 4 characters of ASCII code. 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. With this setting, systems for that region may use it.
Blank: Optional. With this setting, it may be used for StreetPass and friend registration with systems from other regions.
Note: Revised the specifications in the American and European regions so that the English title name is automatically used for languages with a blank title name.
  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 vary for different regions.
For more information, see the lists of characters 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 1 MB.
For more information, 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

For more information about the variables defined in OMakefile, see Build Rules.

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 the criteria for the 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 the 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
Added support for NW4C TGA files.
Changed the EULA version for the United States market from 1.0 to 1.1.
2011/9/8
Revised the description of an 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 the CecId item and added the CecUniqueId item.
2011/6/22
Added a note to descriptions of BigIconFile and other items that it 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 a bug where BSF two-line titles were not 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 the explanation about non-support of banner confirmation.
2010/09/28
Initial version.

CONFIDENTIAL