Simple tool for converting images to gameboy tile data
Latest commit 17f4eab Nov 21, 2016 @brisk0 Add indexed color mode support
-If the image already has an indexed palette the program will now use
the first four colors of that instead of establishing its own ideas of
the palette definition / order

-Palette indices are now set as nearest rgb instead of throwing a
tantrum if the color is unknown


Simple tool for converting images to gameboy tile data.


Ensure the golang toolchain is installed on your machine, then run from the repository root:

$ go build pictotile.go

This produces a self-contained binary and should be able to be placed and run anywhere.

Note that there are binaries in the Snapshots directory. These are outdated due to problems with the cross compiler. The binary in the root directory is current and built for linux, amd_64. Building for yourself is always preferable, and should always work.


pictotile [options] [infile [outfile]]


Pictotile accepts png, jpeg and gif (not animated) file formats.

Input and output default to stdin/stdout, which can be set explicitly using "-" for either argument, otherwise the program can both read from and write to files.


Note: Values shown below are defaults, description is for modifying the value.

-d, --dim=1: Square dimension in number tiles of each sprite

-w, --width=1: Width of each sprite in number of tiles

-h, --height=1: Height of each tile in number of tiles

-o, --offset=0: Offset of the first tile from both the top and left edge

-x, --xoffset=0: Horizontal offset of first tile from left

-y, --yoffset=0: Vertical offset of first tile from top

-s, --spacing=0: Distance between sprites

-X, --xspacing=0: Horizontal distance between sprites

-Y, --yspacing=0: Vertical distance between sprites

-f, --format="0x%X, ": C Style format for output data (printed in a loop for each byte)

-t, --spritemode=false: Sets first color in tile as transparency (color 0)


Pictotile converts image files into gameboy compatible format. Default format prints each byte in the format "0xFF, ", but format can be specified using -f.

Tile data is output in a left-right, top-bottom order, however, tiles within a sprite are all output one after another.

For example, the command

pictotile -d2 img.png img.tile

will put the following set of tiles:


in the following order:

0145 2367