makerom

makerom.TWL

Description

makerom is a tool for creating NITRO application ROM images. It creates the ROM image, based on the entries in the ROM Specification file.

makerom.TWL is a tool that adds the ability to create ROM images for TWL to the features of the makerom tool. There are more parameters that can be specified.

ROM images for TWL that are created with this tool will only run on TWL development hardware. The TWL-SDK environment cannot be used to create ROM images that run on retail TWL hardware. (ROM images created for NITRO will not run on retail TWL hardware, either.)

Using the Tool

Start Command

(1) Normal Start

% makerom [-d] [-DNAME=VALUE...] [-MDEFINES_FILE] [-F] [-A]
            [-VFMT_VER] [-WWARNING_TYPE] SPECFILE [ROMFILE] [LISTFILE]
% makerom.TWL [-DTARGET_PLATFORM=target] [-d] [-DNAME=VALUE...] [-MDEFINES_FILE] [-F] [-A]
            [-VFMT_VER] [-WWARNING_TYPE] SPECFILE [ROMFILE] [LISTFILE]

This links files and creates a ROM image file named ROMFILE in accordance with the description in the ROM Specification file (described below) specified by SPECFILE. The ROM structure information is output to the file specified by LISTFILE.

ROMFILE and LISTFILE can be omitted. If you omit them, the two files use the same name as that specified by SPECFILE but with the extension changed to .rom and .nlf, respectively. The -D option can also be used to define a variable and its values. The value of this variable can be referenced when writing the ROM Specification file.

When using the -D option with makerom.TWL.exe, specify the target parameter in TARGET_PLATFORM. Specify TWL-HYB for the target parameter to build a TWL-compatible application and TWL-LTD to build a TWL-exclusive application. Normally, the build system specifies the appropriate value. If this specification is not made, 'TWL-LTD' is set by default.

You can define a variable and its value with the -M option, as you would with the -D option. A text file that consists of the [NAME=VALUE] line is received as an argument. This option causes the variables and their values that exceed the command line length restriction to be described in the definition. Due to the way command line arguments are interpreted, when defining values that include white space (such as when object file names are enumerated), when defining values that include white space (such as when enumerating object file names), it is necessary to delimit values given with the -D option using either " or '. However, values coded inside definition files do not need to be delimited with quote marks when the -M option is used. If quote marks are applied in this case they will be taken as part of the value itself.

When the -F option is specified, a ROM image file is created, even if the ROM file exceeds the size limitation value (see RomSize in the Property section).

Specifying the -A option determines whether the ROM size restriction value (see RomSize in the Property section) is exceeded when adding a digital signature with the attachsign command. When the value has been exceeded, an error occurs. However when the above-mentioned -F option has been set, processing continues.

Designate the output ROM image format number FMT_VER with the -V option. This option ensures compatibility with previous versions. The default value is 2. For details, see the description of the ROM format version.

The -W option outputs the warnings that are normally suppressed. -Wrom_speedtype_undefined appears when RomSpeedType in the Property section is not explicitly defined and left in the default setting. If the -Wall option is used, all warnings are output.

The -d option is for outputting messages when debugging makerom. This is usually not necessary.

(2) The -l Option

% makerom [-d] [-DNAME=VALUE...] [-MDEFINES_FILE] [-VFMT_VER] -l SPECFILE [LISTFILE]

% makerom.TWL [-d] [-DNAME=VALUE...] [-MDEFINES_FILE] [-VFMT_VER] -l SPECFILE [LISTFILE]

This operates in the same was as the Normal Start method (1), except that a ROM image is not output. The file specified by SPECFILE is read, and the ROM structure information is output to LISTFILE.

LISTFILE can be omitted. If you omit it, the filename is set to the name specified by SPECFILE, with the extension replaced by the default extension for each platform. The default extension when creating NITRO ROM images is .nlf, and the default extension when creating TWL ROM images is .tlf. The -D option can be used to define a variable and its values. The value of this variable can be referenced when writing the ROM Specification file.

The -V option behaves the same as described above in (1) Normal Start.

(3) The -r Option

% makerom [-d] [-F] [-A] [-VFMT_VER] -r LISTFILE [ROMFILE]

% makerom.TWL [-d] [-F] [-A] [-VFMT_VER] -r LISTFILE [ROMFILE]

A ROM image is constructed from the ROM structure information specified by LISTFILE and output as a file with the name specified by ROMFILE.

ROMFILE can be omitted. If you omit it, the filename is set to the same name as that specified by SPECFILE, but with the extension .rom.

The -F, -A, and -V options behave in the same way as described above in (1) Normal Start.

ROM Specification File Format

The contents of NITRO and TWL ROM images are managed using a simple file system. The ROM specification file is a text file that describes the structure of this file system. The file is divided into four sections for NITRO and six sections for TWL. The ROM image section must be included after all other sections.The format for the section definitions have a declaration for the start of the section definition that is followed by section-related parameters enclosed in curly brackets ({}).

Section Definition Section Definition Format
ARM9 Executable Binary
Arm9
{
  [ARM9 parameter description part]
  ....
}
ARM7 Executable Binary
Arm7
{
  [ARM7 parameter description part]
  ....
}
ARM9 TWL-Exclusive Executable Binary
Arm9.Ltd
{
  [ARM9 TWL-exclusive parameter description part]
  ....
}
ARM7 TWL-Exclusive Executable Binary
Arm7.Ltd
{
  [ARM7 TWL-exclusive parameter description part]
  ....
}
Incidental
information
(Property)
Property
{
  [Incidental information parameter description part]
  ....
}
Incidental
information
(AppendProperty)
AppendProperty
{
  [Additional incidental information parameter description part]
  ....
}
Rating information
(Rating)
Rating
{
  [Rating Information Parameter Coding Block]
  ....
}
ROM image
RomSpec
{
  [ROM image parameter description part]
  ....
}

Section Parameters

ARM9 Section (ARM9 Executable Binary Definition Section)

This configures settings related to the ARM9 executable binaries.

Static [ARM9's Resident Module filename]
Name of the Resident Module of the ARM9 executable file.
OverlayDefs [Name of the ARM9's Overlay Name file]
Name of the ARM9 OverlayDefs file.
OverlayTable [ARM9's OverlayTable filename]
Name of the ARM9 OverlayTable file. This file is not needed if overlays are not used. If so, the OverlayTable definition can be omitted.
Nef [Name of the ARM9's NEF or TEF file (debug information file)]
NEF file in which ARM9 debug information is saved.
If debugging is run, this Nef definition is not needed, and the description can be omitted.  Instead of Nef, you can use the alternative keyword Elf.

ARM7 Section (ARM7 Executable File Definitions Section) 

This configures settings related to the ARM7 executable binaries.

Static [ARM7 Resident Module filename]
OverlayDefs [Name of the ARM7 Overlay Name file]
OverlayTable [ARM7 OverlayTable filename]
NEF [Name of the ARM7 NEF or TEF file (debugging information file)]
Same as the ARM9 parameters.

Arm9.Ltd Section (ARM9 TWL-Exclusive Executable Binary Definition Section)

This configures settings related to the ARM9 executable binaries that are only used when an application is run on a TWL.

Static [ARM9 TWL exclusive resident module filename]
OverlayDefs [ARM9 TWL-exclusive Overlay name filename]
OverlayTable [ARM9 TWL-exclusive OverlayTable filename]
Same as the ARM9 parameters.

Arm7.Ltd Section (ARM7 TWL-Exclusive Executable File Definition Section)

This configures settings related to the ARM7 executable files that are only used when an application is run on a TWL.

Static [ARM7 TWL exclusive resident module filename]
OverlayDefs [ARM7 TWL-exclusive Overlay name filename]
OverlayTable [ARM7 TWL-exclusive OverlayTable filename]
Same as the ARM9 parameters.

Property Section (Incidental Information Definitions Section)

Items with the symbol "◎" after the name are items that must be configured when creating the master ROM.

Property section (common items for NITRO/TWL)

RomHeaderTemplate [Template file name of ROM header]
Template file in the header section of the ROM image. When not specified, the default is rom_header.template.sbin, which is in the same directory as makerom[.TWL].exe. For the filename, specify the name of the master ROM template file that Nintendo distributes for each game application when the master ROM is created. We recommend that you not perform binary correction on the contents of the ROM header template file.Set the incidental information in each master ROM by describing parameters such as TitleName in a ROM Specification file.
TitleName [Title name]
Title name. Up to 12 characters of ASCII code. When it is shorter than 12 characters, the unused area is padded with zeros. When this is not specified, the value in RomHeaderTemplate is used.
MakerCode [Manufacturer code]
Manufacturer code that was assigned when the licensing agreement was signed with Nintendo. Two ASCII characters are used.
When not specified, the value in RomHeaderTemplate is used.
RemasterVersion [Remaster version]
Remaster version number of the ROM being manufactured for retail products. Hexadecimal notation, decimal notation, or octal notation can be used. When not specified, the value in RomHeaderTemplate is used. This is equivalent of the ROM versions used in earlier versions. In previous versions of makerom, the definition for the term "ROM version" differed from Nintendo's standard definition, so a change was made so that the names now match. For compatibility with previous ROM Spec files, the keyword RomVersion can be used as an alternate name.
RomSpeedType [1TROM|MROM|UNDEFINED]
Defines the ROM type and selects the proper access speed. 1TROM specifies one-time PROM, and MROM specifies mask ROM. Because the one-time PROM setting is slower, if one-time PROM is selected, it can also work with mask ROM. However, it is not possible to work with PROM if mask ROM is selected.
If this parameter is not specified, it is treated as if UNDEFINED had been specified. UNDEFINED takes the same setting for access speed as 1TROM. However, when set to UNDEFINED, a warning flag is set in the ROM registration data when the ROM binary is created, so it cannot be submitted as the final master ROM. This prevents the mistake of shipping the master ROM with the limited access speed unintentionally set. When creating the final master ROM, be sure to check that you are using either 1TROM or MROM, and expressly specify this in the ROM Spec file.
RomSize [64M|128M|256M|512M|1G|2G|4G]
ROM size in bits. At present, you can select from 64M, 128M, 256M, 512M, 1G, 2G, or 4G strings.
An error or warning is output (when the -F option is specified) if the ROM image exceeds the specified value.
However, if more than 1 gigabit has been specified, note that the specified value and the usable size differ. (For details, see About the ROM Format Version.)
When no specification is made, the value (currently "2G") embedded in RomHeaderTemplate is used.
In NAND applications, this specification is ignored, and the most appropriate value is chosen automatically.
RomFootPadding [TRUE|FALSE]
Specify TRUE if you want the unused region above the program storage area in ROM to be filled with data, and create the binary that matches the ROM size specified by RomSize. The data stored in the unused region is the value specified with the Padding parameter in the RomSpec section. To enable this feature, you must specify RomSize. If it is not specified, the value is FALSE. For NAND applications, always specify FALSE.
RomHeader [filename of ROM header]
Name of the image file in the header section of the ROM image. This file is generated by embedding the information from ROM Spec files in the copy of the template that is explained above.
Normally there is no need to specify this. When it is not specified, the filename is made by taking out the file extension from the filename of ARM9 resident module and then adding header.sbin.
FileName [FileNameTable filename]
Name of the image file in the filename table section of the ROM file system. This file is generated from the RomSpec item in the ROM Spec file. Normally there is no need to specify this. When not specified, the filename is created by replacing the file extension of the filename of the ARM9 resident module with _files.sbin.
BannerFile [banner filename]
Banner file, which consists of the application identification image information that is displayed at the startup of NITRO.
ForChina [TRUE|FALSE]
Whether this application is designed to run on the Chinese version of the Nintendo DS system. It runs on the Chinese version of the system only when this property is set to TRUE. To determine whether the Chinese language was selected on a Chinese version of the Nintendo DS system settings menu, this property must also be set to TRUE. If nothing is specified, this is set to FALSE, and the English-language code is obtained. Note: The value in RomHeaderTemplate is not used.
RomFootPadding [TRUE|FALSE]
Whether the application supports the Korean version of the Nintendo DS system. Setting this property to TRUE does not apply any limits on the systems on which the applications can run. Also, to determine if the Korean language was selected on a Korean version of the Nintendo DS system's settings menu, this property must be set to TRUE.
If no specification is made, FALSE results, and the language code for English is obtained instead. Note: The value in RomHeaderTemplate is not used.
PermitLandingTmpJump [TRUE|FALSE]
Specify TRUE only if instructed to do so. The default is FALSE.

Property section (TWL-exclusive items)

RomHeaderLtd [Template file name of ROM header]
Template file in the header section in the TWL-exclusive region of the ROM image.
Normally, you should specify $(TWLSDK_ROOT)/tools/bin/rom_header.LTD.sbin.
DigestParam 1024 32
Do not change the arguments from 1024 32.
WramMapping [MAP2_TS_HYB|MAP2_TS_LTD]
WRAM memory mapping. Specify MAP2_TS_HYB for a hybrid ROM or MAP2_TS_LTD for a limited ROM.
Normally, the build system sets this appropriately by specifying $(MAKEROM_WRAM_MAPPING).
CardRegion [Japan|America|Europe|Australia|EuropeAndAustralia]
The software's region.
Note that the launcher will not recognize software with a different region than the console's.
CodecMode [NTR|TWL]
Operating mode for CODEC when the application is run on a TWL. For details on the CODEC operating mode, see TWL Extended Sound Features: Overview. Specify NTR to run in CODEC-DS mode or TWL to run in CODEC-TWL mode.
Normally, the build system sets this appropriately by specifying $(MAKEROM_CODEC_MODE).
WiFiConnectionIcon [TRUE|FALSE]
Whether to display the Nintendo Wi-Fi Connection icon when displaying the software's banner in the launcher. By displaying the icon on the launcher, you can start Nintendo Wi-Fi Connection when your application starts up, without having to obtain the user's consent again. In addition, AgreeEULA must be specified at the same time if Wi-Fi connection is started at boot time.
However, if this specification is made and the wireless feature is turned off under system settings, it is not possible to start the application from the launcher. Make this specification only in the case of applications that require wireless communication.
TRUE cannot be specified at the same time as DSWirelessIcon. If both specifications are required, prioritize the WiFiConnectionIcon specification.
The default is FALSE.
DSWirelessIcon [TRUE|FALSE]
Whether to display the DS Wireless icon when displaying the software's banner in the launcher. By displaying the icon on the launcher, you can start DS Multi-Card Play when your application starts up, without having to get the user's consent again. However, if this specification is made and the wireless feature is turned off under system settings, it is not possible to start the application from the launcher. Make this specification only in the case of applications that require wireless communication.
TRUE cannot be specified at the same time as WiFiConnectionIcon. If both specifications are required, prioritize the WiFiConnectionIcon specification.
The default is FALSE.
AgreeEULA [TRUE|FALSE]
Whether to prevent software from being started from the launcher if the terms of use have not been accepted. Specify TRUE only if an Internet connection is required while using the software.
If this specification is made, the WiFiConnectionIcon specification must be made at the same time.
Specify FALSE if an Internet connection is not required, but a service that uses the Internet, such as Nintendo Wi-Fi connection, is being supported as a partial feature. Alternatively, you can implement a mechanism in game software that confirms the user has agreed to the terms of use before attempting connection to the Internet. (Agreement with the terms of use is checked by the TWL-DWC library. For details, see the TWL-DWC function reference manual.)
The default is FALSE.

AppendProperty Section (Additional Incidental Information Definition Section)

This section only has to be specified when creating a NAND application.

Items with the symbol ◎ after the name are items that must be configured when creating the master ROM for a NAND application.

Media [GameCard|NAND]
Whether the software is a card application or a NAND application. For card applications, the entire AppendProperty section can be omitted.
InitialCode [Game Code]
Game code as a 4-character ASCII string. If this is not specified, it will be set based on the ROM header.
PublicSaveDataSize [Size of public save data]
Size of the public save data. Use K (which indicates "kilobytes") for the units (for example, 2048K). If this is not specified, it is interpreted as 0K. For details about the values that can be specified, see the Save Data Size List.
PrivateSaveDataSize [Size of private save data]
Size of the private save data. Use K (which indicates "kilobytes") for the units. (For example, 2048K). If this is not specified, it is interpreted as 0K. For details about the values that can be specified, see the Save Data Size List.
SubBannerFile [TRUE|FALSE]
Whether to use sub-banners.

Rating Section (Rating Information Definition Section)

This section is use to set the rating value obtained from the rating organization.

Rating values from the following rating organizations can be set separately. However, only rating organizations included in the software region (specified using the CardRegion item in the Property section) can be set.

Item NameName of the Corresponding Rating OrganizationApplicable RegionsCorrespondence Between Settable Values and Ratings
CEROCEROJapan (Japan)
0: A (all ages)
12: B (12 years or older)
15: C (15 years or older)
17: D (17 years or older)
18: Z (18 years or older)
PENDING: Under review
ESRBESRBNorth America (America)
3: EARLY CHILDHOOD (EC, all ages)
6: EVERYONE (E, 6 years or older)
10: EVERYONE10+ (E10+, 10 years or older)
13: TEEN (T, 13 years or older)
17: MATURE (M, 17 years or older)
PENDING: Under review
USKUSK Europe (Europe)
Europe and Australia (EuropeAndAustralia)
0: No age limit
6: 6 years or older
12: 12 years or older
16: 16 years or older
18: Unsuitable for minors
PENDING: Under review
PEGI_GENPEGI (general) Europe (Europe)
Europe and Australia (EuropeAndAustralia)
3: 3 years or older
7: 7 years or older
12: 12 years or older
16: 16 years or older
18: 18 years or older
PENDING: Under review
PEGI_PRTPEGI (Portugal) Europe (Europe)
Europe and Australia (EuropeAndAustralia)
4: 4 years or older
6: 6 years or older
12: 12 years or older
16: 16 years or older
18: 18 years or older
PENDING: Under review
PEGI_BBFCPEGI (General) and BBFC Europe (Europe)
Europe and Australia (EuropeAndAustralia)
3: 3 years or older
4 :U, Uc (recommended for 4 years or older)
7: 7 years or older
8: PG (recommended for 8 years or older)
12: 12 years or older
15: 16 years or older
16: 16 years or older
18: 18 years or older
PENDING: Under review
OFLCOFLC Australia (Australia)
Europe and Australia (EuropeAndAustralia)
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

Specify the following items only when it has been determined that an exceptional rating is not required.

Unnecessary [TRUE|FALSE]
Specifies whether the application needs to be rated. If TRUE, rating values from each organization cannot be set.
The default is FALSE.

RomSpec Section (ROM Image Definitions Section)

This section must be defined after other sections.

RomSpec section (common items for NITRO/TWL)

Offset [offset value]
Specifies the offset value for the location of the ROM image file (or data). To prevent the overlap of ROM image regions, the offset value must be larger than the final position of all files (or data) at that time. If it is not, then an error will occur.
OffsetMin [offset value]
The same as Offset except that an error is raised even if the offset value is not larger than the final position of files. (Instead, the setting is ignored.)
Segment All
Sets all data for file system management. This management data must precede other files and be placed at the start of ROM.
Padding [Character codes 0 - 255]
Specifies the value to assign for padding when aligning ROM images. A value from 0 through 255 can be specified. When the ROM format number is set to 1, the initial value is 0. When the format number is set to 2 or greater, the value is 255.
Align [alignment value]
Matches the ROM image starting position of the next file or data-set to store to the specified memory boundary. Empty space is padded with the value specified by Padding. The alignment value must be an exponent of 2. Because the Align statement is only used to temporarily manipulate the memory boundary of the file, it affects the file placed immediately after this description. To specify a permanent memory boundary, use the AlignAll statement.
AlignAll [alignment value]
Matches the ROM image starting position of all subsequent files and data sets stored to the specified memory boundary. Empty space is padded with the value specified by Padding. If Align and AlignAll are both enabled, the value specified by Align is used. The initial value of AlignAll is 512.Note: Access to the NITRO Software NITRO CARD is limited to 512-byte blocks when the boundary for the file allocation is set to less than 512.
HostRoot [Root directory name of PC]
This is the standard directory on the PC for the files stored in the ROM image. HostRoot can be omitted, in which case the current directory (.) is used as the default value.
Root [Root directory name of NITRO]
This is the standard directory on NITRO for the files stored in the ROM image. The directory indicated by HostRoot on the computer is mapped to the NITRO directory indicated by Root. Root can be omitted, in which case the root directory (/) is used as the default value.
File [filename ...]
Specifies files to store in the ROM image. If the specified filename is a directory, all files in all subdirectories are stored in the ROM image. However, any files or subdirectories that match the pattern specified by Reject are excluded. You can use the asterisk (*) and question mark (?) as wildcards when specifying files.*Use an asterisk (*) to represent any number of characters, and a question mark (?) to represent one (single byte) character.
Reject [filename pattern ...]
Do not store the following files in the ROM image. The makerom tool internally requests a list of the files to expand and store in ROM. This list is built from the description of directories and files in File. Use the Reject definition to specify the files that you do not want included on this list.

Multiple filename patterns can be written in the Reject statement by separating them with spaces. Wild cards (* and ?) are available. Specifications with the Reject statement are valid for the subsequent File statement up to the next Reject statement or the point where the RomSpec section ends. In addition, "CVS", "vssver.scc", and ".?*" (filenames that begin with periods) are set as the initial values for filename patterns to be Rejected.
Fixed [Default | True | False]
This is for fixing NLF file parameters. It controls the flag that determines whether subsequently placed data can be moved. There is normally no need for this. The initial value is Default (auto-configuration according to the type of data installed).
TagType [Default | Name | Id | None]
For fixing NLF file parameters. It specifies how to access subsequently placed data (auto-configuration, filename, file ID, no access method). There is normally no need for this. The initial value is Default (auto-configuration according to the type of data installed).

RomSpec section (TWL-exclusive items)

DllFile [Name of dynamic module used by the application] [Name of dynamic module that contains debug information] [ARM9/ARM7]
Specifies a dynamic module file with debug information that is used as a basis for the dynamic module file stored within the ROM image. You must designate whether the specified dynamic module is for the ARM9 or the ARM7.
Put [TwlRom|NitroRom]
Switches whether the file specified on the following line will be placed into a TWL-exclusive or a NITRO-compatible region within the ROM. The default is NitroRom.
Files located in the TWL exclusive region are TWL-exclusive files and cannot be read from ROM when running in a NITRO mode environment.

Variable References and Modifier Options

You can reference the value of a variable that is defined outside of the ROM Specification file by describing the variable in the following format: $([variable name]). The value of variables can be set using command line options like this: -D[variable name]=[value] or -M[variable list filename]. Alternately, values can be set using environment variables. If the same variable is defined with a command-line option and an environment variable, the command-line option takes priority. If variables with the same name are defined using a command-line option, the first-defined value has priority.

The following is an example of a description for a variable reference:

RomSpec
{
    Offset     0x00000000
    Segment    All
    File       $(FILENAME)
}

If the variable value is in the form of a file path, you can reference the value by attaching a modifier option immediately after the variable name. The following values can be referenced with the modifier options: :h, :t, :r, and :e.

For $(FILE)=C:/home/Twl/readme.txt:
:h The portion of the path before the final path delimiter. $(FILE:h)=C:/home/Twl/
:t The portion of the path after the final path delimiter. $(FILE:t)=readme.txt
:r The path, excluding the file extension. $(FILE:r)=C:/home/Twl/readme
:e The file extension. $(FILE:e)=txt


Other Formats

Keywords such as RomSpec used in section definitions can be written either in uppercase (ROMSPEC) or in lowercase (romspec). Anything than follows the pound sign (#) is treated as a comment.

To specify multiple items in File and Reject, separate them with blank spaces. Use double quotes (" ") to specify filenames that include blank spaces.

#
# Lines that begin with # are comments
# Arm9 { Static "c:/Program Files/myApps/lib/main.sbin" OverlayDefs "c:/Program Files/myApps/lib/overlaydefs.sbin" } Property { RomSpeedType 1TROM BannerFile ./etc/default.bnr } ROMSPEC # Uppercase is also OK { Segment ALL File boo.dat foo.dat woo.dat }

About the ROM Format Version

Some ROM formats have been changed to support new ROM specifications of greater than 1 gigabit. For ROM images of this size, a fixed-size region at the top is now reserved by the system. In the makerom of SDK version 3.2 and later, this new ROM format is the default configuration. If you want to output a ROM image in the older format of SDK version 3.1 and earlier, you must specify the -V1 option.

The changes between the new and old formats are shown below.

New ROM Format Old ROM Format
Version number 2 1
Initial Padding value 255 0
Usable 1-gigabit ROM size 125.5 MB = 1004 megabits 128.0 MB = 1024 megabits
Usable 2-gigabit ROM size 251.0MBytes = 2008Mbit 256.0 MB = 2048 megabits
Usable 4-gigabit ROM size 501.625MB = 4013 megabits 512.0MB = 4096 megabits

The system reserved region in the new ROM format is padded with 255. The initial Padding value has also been changed from 0 to 255, regardless of the size of the ROM image.

Creating ROMs That Run on Production Hardware

ROM images that are created using makerom.TWL run only on TWL development hardware. To create ROMs that run on TWL production hardware, Nintendo needs to handle the mastering. Developers do not need to confirm that the ROMs run on production hardware. ROM images created using makerom.TWL should be submitted for master ROM submission as is. For more details, see the Master ROM Submission Procedures.

Only NITRO ROMs that have been mastered run on TWL production hardware. NITRO ROM images created using makerom do not run.

Other Notes:

Data in the Unused Region at the End of Master ROMs

The unused region at the end of master ROMs is automatically filled with 0xFF by the makerom tool in TWL-SDK.

Data in Use-Forbidden Regions of Master ROMs

For ROMs whose capacity is 1 gigabit or greater, there is a "use-forbidden" region at the end of the ROM memory map where ROM code cannot be stored. This use-forbidden region is automatically filled with 0xFF by the makerom tool in TWL-SDK. For ROMs whose capacity is 1 gigabit or greater, reading from the use-forbidden region always outputs 0xFF. For more about the sizes of use-forbidden regions, see the Game Card Manual.

Use of Data Read from Access-Forbidden Regions

Output data that is read from access-forbidden regions of Game Cards is undefined. (As long as the FS functions of TWL-SDK are used to access files located on a Game Card, the access-forbidden region is never read from.) For more about access-prohibited regions of memory, see the Game Card Manual.

Location

$TwlSDK/tools/bin/makerom.exe
$TwlSDK/tools/bin/makerom.TWL.exe
$TwlSDK/tools/bin/rom_header.template.sbin $TwlSDK/tools/bin/rom_header.LTD.sbin

See Also

makelcf
makebanner

Revision History

2009/03/24 Revised a description of the priority order for Align and AlignAll.
2009/02/06 Added a description of CardRegion and a new explanation of the rating.
2009/02/03 Added explanations to WiFiConnectionIcon and AgreeEULA.
2009/01/08 Added an explanation related to TWL-exclusive files.
2008/12/16 Revised a description of the default value for TARGET_PLATFORM.
2008/12/08 Removed an explanation for JpegSign.
2008/10/31 Added an explanation related to RomSize.
2008/10/29 Revised descriptions of WramMapping and CodecMode.
2008/10/22 Added an explanation for JpegSign.
2008/10/22 Added a description of Property.
2008/09/16 Added text related to ROM operations on the development unit and production system.
2008/09/12 Added makerom.TWL.exe as a heading and made major section revisions.
2008/06/04 Changed the default value of FixSound and FixSoundDMA to TRUE.
2008/03/28 Changed an explanation related to the ARM7 SCFG.
2007/11/30 Added settings related to the ARM7 SCFG.
2007/09/27 Added DllFile.
2007/06/06 Added a description of the -M option.
2007/03/29 Revised text in response to the fact that provisional specifications for the new 2-Gbit ROM format have been adopted as the final specifications.
2006/10/06 Added description about the valid scope of Reject statements.
2006/08/18 Added a description of ForKorea.
2005/05/09 Added support for ROM format versions.
2005/04/26 Changed the term "1-time ROM" to "One-time PROM."
2005/04/11 Added a description of ForChina.
2005/04/05 Added an explanation related to "UNDEFINED" for RomSpeedType.
2005/03/28 Added explanations for RomSpeedType and the -W option.
2004/09/22 Added an explanation for the order in which sections appear.
2004/07/23 Added explanations regarding Align/AlignAll.
2004/06/08 Initial version.


CONFIDENTIAL