mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-23 19:42:08 +00:00
130 lines
3.1 KiB
Groff
130 lines
3.1 KiB
Groff
.Dd $Mdocdate$
|
|
.Dt RGBFIX 1
|
|
.Os RGBDS Manual
|
|
.Sh NAME
|
|
.Nm rgbfix
|
|
.Nd Game Boy checksum fixer
|
|
.Sh SYNOPSIS
|
|
.Nm rgbfix
|
|
.Op Fl Ccjsv
|
|
.Op Fl k Ar licensee_str
|
|
.Op Fl l Ar licensee_id
|
|
.Op Fl m Ar mbc_type
|
|
.Op Fl n Ar rom_version
|
|
.Op Fl p Ar pad_value
|
|
.Op Fl r Ar ram_size
|
|
.Op Fl t Ar title_str
|
|
.Ar file
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
program changes headers of Game Boy ROM images.
|
|
It also performs other filetype operations, such as truncation.
|
|
The arguments are as follows:
|
|
.Bl -tag -width Ds
|
|
.It Fl C
|
|
Set the Game Boy Color\(enonly flag:
|
|
.Ad 0x143
|
|
= 0xC0.
|
|
If both this and the
|
|
.Fl c
|
|
flag are set, this takes precedence.
|
|
.It Fl c
|
|
Set the Game Boy Color\(encompatible flag:
|
|
.Ad 0x143
|
|
= 0x80.
|
|
If both this and the
|
|
.Fl C
|
|
flag are set,
|
|
.Fl C
|
|
takes precedence.
|
|
.It Fl j
|
|
Set the non-Japanese region flag:
|
|
.Ad 0x14A
|
|
= 1.
|
|
.It Fl k Ar licensee_str
|
|
Set the new licensee string
|
|
.Pq Ad 0x144 \(en Ad 0x145]
|
|
to a given string, truncated to at most two characters.
|
|
.It Fl l Ar licensee_id
|
|
Set the old licensee code,
|
|
.Ad 0x14B ,
|
|
to a given value from 0 to 0xFF.
|
|
This value is deprecated and should be set to 0x33 in all new software.
|
|
.It Fl m Ar mbc_type
|
|
Set the MBC type,
|
|
.Ad 0x147 ,
|
|
to a given value from 0 to 0xFF.
|
|
.It Fl n Ar rom_version
|
|
Set the ROM version,
|
|
.Ad 0x14C ,
|
|
to a given value from 0 to 0xFF.
|
|
.It Fl p Ar pad_value
|
|
Pad the image to a valid size with a given pad value from 0 to 0xFF.
|
|
.Nm
|
|
will automatically pick a size from 32KiB, 64KiB, 128KiB, ..., 8192KiB and
|
|
give a warning thereafter.
|
|
The cartridge size byte
|
|
.Pq Ad 0x148
|
|
will be changed to reflect this new size.
|
|
.It Fl r Ar ram_size
|
|
Set the RAM size,
|
|
.Ad 0x149 ,
|
|
to a given value from 0 to 0xFF.
|
|
.It Fl s
|
|
Set the SGB flag:
|
|
.Ad 0x146
|
|
= 3.
|
|
.It Fl t Ar title
|
|
Set the title string
|
|
.Pq Ad 0x134 \(en Ad 0x143
|
|
to a given string, truncated to at most 16 characters.
|
|
It is recommended to use 15 characters instead, to avoid clashing with the CGB
|
|
flag (
|
|
.Fl c
|
|
or
|
|
.Fl C
|
|
.Ns ).
|
|
.It Fl v
|
|
Validate the header and fix checksums: the Nintendo character area
|
|
.Pq Ad 0x104 \(en Ad 0x133 ,
|
|
the header checksum
|
|
.Pq Ad 0x14D ,
|
|
and the global checksum
|
|
.Pq Ad 0x14E \(en Ad 0x14F .
|
|
.El
|
|
.Sh EXAMPLES
|
|
Most values in the ROM header are only cosmetic.
|
|
The bare minimum requirements for a workable image are checksums, the Nintendo
|
|
logo, and (if needed) the CGB/SGB flags.
|
|
It is a good idea to pad the image to a valid size as well ("valid" meaning a
|
|
multiple of 32KiB).
|
|
.Pp
|
|
The following will make a plain, no-color Game Boy game without checking for
|
|
a valid size:
|
|
.Pp
|
|
.D1 $ rgbfix \-v foo.gb
|
|
.Pp
|
|
The following will make a SGB-enabled, color-enabled game with a title of
|
|
"foobar", and pad it to a multiple of 32KiB.
|
|
(The Game Boy itself does not use the title, but some emulators or ROM managers
|
|
might.)
|
|
.Pp
|
|
.D1 $ rgbfix \-vcs \-p 0 \-t foobar baz.gb
|
|
.Pp
|
|
The following will duplicate the header (sans global checksum) of the game
|
|
"Survival Kids":
|
|
.Pp
|
|
.D1 $ rgbfix \-cjsv \-k A4 \-m 0x1B \-p 0xFF \-r 3 \-t SURVIVALKIDAVKE SurvivalKids.gbc
|
|
.Sh SEE ALSO
|
|
.Xr rgbds 7 ,
|
|
.Xr rgbasm 1 ,
|
|
.Xr rgblib 1 ,
|
|
.Xr rgblink 1 ,
|
|
.Xr gbz80 7
|
|
.Sh HISTORY
|
|
.Nm
|
|
was originally released by Carsten S\(/orensen as a standalone program called
|
|
gbfix.
|
|
It was later integrated with the ASMotor package, which became RGBDS.
|