mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +00:00
161 lines
5.7 KiB
Groff
161 lines
5.7 KiB
Groff
.\"
|
|
.\" This file is part of RGBDS.
|
|
.\"
|
|
.\" Copyright (c) 2013-2021, stag019 and RGBDS contributors.
|
|
.\"
|
|
.\" SPDX-License-Identifier: MIT
|
|
.\"
|
|
.Dd March 28, 2021
|
|
.Dt RGBGFX 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm rgbgfx
|
|
.Nd Game Boy graphics converter
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl CDhmuVv
|
|
.Op Fl f | Fl F
|
|
.Op Fl a Ar attrmap | Fl A
|
|
.Op Fl d Ar depth
|
|
.Op Fl o Ar out_file
|
|
.Op Fl p Ar pal_file | Fl P
|
|
.Op Fl t Ar tilemap | Fl T
|
|
.Op Fl x Ar tiles
|
|
.Ar file
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
program converts PNG images into the Nintendo Game Boy's planar tile format.
|
|
.Pp
|
|
The resulting colors and their palette indices are determined differently depending on the input PNG file:
|
|
.Bl -dash -width Ds
|
|
.It
|
|
If the file has an embedded palette, that palette's color and order are used.
|
|
.It
|
|
If not, and the image only contains shades of gray, rgbgfx maps them to the indices appropriate for each shade.
|
|
Any undetermined indices are set to respective default shades of gray.
|
|
For example: if the bit depth is 2 and the image contains light gray and black, they become the second and fourth colors, and the first and third colors get set to default white and dark gray.
|
|
If the image has multiple shades that map to the same index, the palette is instead determined as if the image had color.
|
|
.It
|
|
If the image has color (or the grayscale method failed), the colors are sorted from lightest to darkest.
|
|
.El
|
|
.Pp
|
|
The input image may not contain more colors than the selected bit depth allows.
|
|
Transparent pixels are set to palette index 0.
|
|
.Sh ARGUMENTS
|
|
Note that options can be abbreviated as long as the abbreviation is unambiguous:
|
|
.Fl Fl verb
|
|
is
|
|
.Fl Fl verbose ,
|
|
but
|
|
.Fl Fl ver
|
|
is invalid because it could also be
|
|
.Fl Fl version .
|
|
The arguments are as follows:
|
|
.Bl -tag -width Ds
|
|
.It Fl a Ar attrmap , Fl Fl attr-map Ar attrmap
|
|
Generate a file of tile mirroring attributes for OAM or (CGB-only) background tiles.
|
|
For each tile in the input file, a byte is written representing the dimensions that the associated tile in the output file should be mirrored.
|
|
Useful in combination with
|
|
.Fl m
|
|
to keep track the mirror direction of mirrored duplicate tiles.
|
|
.It Fl A , Fl Fl output-attr-map
|
|
Same as
|
|
.Fl a ,
|
|
but the attrmap file output name is made by taking the input filename, removing the file extension, and appending
|
|
.Pa .attrmap .
|
|
.It Fl C , Fl Fl color-curve
|
|
Use the color curve of the Game Boy Color when generating palettes.
|
|
.It Fl D , Fl Fl debug
|
|
Debug features are enabled.
|
|
.It Fl d Ar depth , Fl Fl depth Ar depth
|
|
The bit depth of the output image (either 1 or 2).
|
|
By default, the bit depth is 2 (two bits per pixel).
|
|
.It Fl f , Fl Fl fix
|
|
Fix the input PNG file to be a correctly indexed image.
|
|
.It Fl F , Fl Fl fix-and-save
|
|
Same as
|
|
.Fl f ,
|
|
but additionally, the supplied command line parameters are saved within the PNG and will be loaded and automatically used next time.
|
|
.It Fl h , Fl Fl horizontal
|
|
Lay out tiles in column-major order (column by column), instead of the default row-major order (line by line).
|
|
Especially useful for "8x16" OBJ mode, if the input image is 16 pixels tall.
|
|
.It Fl m , Fl Fl mirror-tiles
|
|
Truncate tiles by checking for tiles that are mirrored versions of others and omitting these from the output file.
|
|
Useful with tilemaps and attrmaps together to keep track of the duplicated tiles and the dimension mirrored.
|
|
Tiles are checked for horizontal, vertical, and horizontal-vertical mirroring.
|
|
Implies
|
|
.Fl u .
|
|
.It Fl o Ar out_file , Fl Fl output Ar out_file
|
|
The name of the output file.
|
|
.It Fl p Ar pal_file , Fl Fl palette Ar pal_file
|
|
Output the image's palette in standard GBC palette format: bytes (8 bytes for two bits per pixel, 4 bytes for one bit per pixel) containing the RGB15 values in little-endian byte order.
|
|
If the palette contains too few colors, the remaining entries are set to black.
|
|
.It Fl P , Fl Fl output-palette
|
|
Same as
|
|
.Fl p ,
|
|
but the palette file output name is made by taking the input PNG file's filename, removing the file extension, and appending
|
|
.Pa .pal .
|
|
.It Fl t Ar tilemap , Fl Fl tilemap Ar tilemap
|
|
Generate a file of tile indices.
|
|
For each tile in the input file, a byte is written representing the index of the associated tile in the output file.
|
|
Useful in combination with
|
|
.Fl u
|
|
or
|
|
.Fl m
|
|
to keep track of duplicate tiles.
|
|
.It Fl T , Fl Fl output-tilemap
|
|
Same as
|
|
.Fl t ,
|
|
but the tilemap file output name is made by taking the input filename, removing the file extension, and appending
|
|
.Pa .tilemap .
|
|
.It Fl u , Fl Fl unique-tiles
|
|
Truncate tiles by checking for tiles that are exact duplicates of others and omitting these from the output file.
|
|
Useful with tilemaps to keep track of the duplicated tiles.
|
|
.It Fl V , Fl Fl version
|
|
Print the version of the program and exit.
|
|
.It Fl v , Fl Fl verbose
|
|
Verbose.
|
|
Print errors when the command line parameters and the parameters in the PNG file don't match.
|
|
.It Fl x Ar tiles , Fl Fl trim-end Ar tiles
|
|
Trim the end of the output file by this many tiles.
|
|
.El
|
|
.Sh EXAMPLES
|
|
The following will take a PNG file with a bit depth of 1, 2, or 8, and output planar 2bpp data:
|
|
.Pp
|
|
.D1 $ rgbgfx -o out.2bpp in.png
|
|
.Pp
|
|
The following creates a planar 2bpp file with only unique tiles, and its tilemap
|
|
.Pa out.tilemap :
|
|
.Pp
|
|
.D1 $ rgbgfx -T -u -o out.2bpp in.png
|
|
.Pp
|
|
The following creates a planar 2bpp file with only unique tiles
|
|
.Pa accounting for tile mirroring
|
|
and its associated tilemap
|
|
.Pa out.tilemap
|
|
and attrmap
|
|
.Pa out.attrmap :
|
|
.Pp
|
|
.D1 $ rgbgfx -A -T -m -o out.2bpp in.png
|
|
.Pp
|
|
The following will do nothing:
|
|
.Pp
|
|
.D1 $ rgbgfx in.png
|
|
.Sh BUGS
|
|
Please report bugs on
|
|
.Lk https://github.com/gbdev/rgbds/issues GitHub .
|
|
.Sh SEE ALSO
|
|
.Xr rgbds 7 ,
|
|
.Xr rgbasm 1 ,
|
|
.Xr rgblink 1 ,
|
|
.Xr rgbfix 1 ,
|
|
.Xr gbz80 7
|
|
.Sh HISTORY
|
|
.Nm
|
|
was created by
|
|
.An stag019
|
|
to be included in RGBDS.
|
|
It is now maintained by a number of contributors at
|
|
.Lk https://github.com/gbdev/rgbds .
|