grfcodec - Man Page

A tool to convert a GRF file into graphics files and meta data, and vice versa.


grfcodec[-sv] [-d | -e] [options] GRF‐file [Directory]

<GRF‐File> denotes the .GRF file you want to work on, e.g. TRG1.GRF

<Directory> is where the individual sprites should be saved. If omitted, they will default to a subdirectory called sprites/.



Display the help message.


Encode a GRF file. The GRF‐file to pass is the file where to encode to. The source of the GRF‐file, i.e. the .nfo, will be looked for in sprites/GRF‐file.nfo. All graphics files will be searched for relative from the location of the GRF‐file.


Decode a GRF file. The GRF‐file to pass is the file to decode. The result will be in sprites/GRF‐file.nfo and sprites/GRF‐file.png.


Silences the progress output in interactive mode


Display the version.

Options for decoding:

-w num

Write spritesheets files with the given width (default 800, minimum 16)

-h num

Split spritesheets when they reach this height (default no limit, minimum 16)

-b num

Organize sprites in boxes of this size (default 16)

-o ssf

Sets the format of generated spritesheets. See -o ? for a list.

-p pal

Use this palette instead of the default. See -p ? for a list.


Disable decoding of plain text characters as strings.


Disable production of unquoted escape sequences.


Disable production of both quoted and unquoted escape sequences.

This has the side effect of producing a version 6 .nfo, instead of a version 7 .nfo.


List sprite numbers in the image file in hex.

Options for encoding:


Crop extraneous transparent blue from real sprites


Save uncompressed data (probably not a good idea)


Suppress warning messages

-g num

Create a GRF file with the given container version. Valid versions are 1 and 2, where the latter allows bigger sprites, larger sounds, and multiple zoom levels and bit depths for the sprites.


Try both compression algorithms and use the most efficient. This might cause trouble when loading the NewGRF in TTDPatch.

Options for both encoding and decoding:

-m num

Apply colour translation to all sprites except character‐glyphs.

-M num

Apply colour translation to all sprites.

If both of these are specified, only the last is obeyed. -m ? or -M ? for a list of colour translations.

See Also

The documentation in /usr/share/doc/grfcodec/


GRFCodec was written by Josef Drexler.

This manual page was written by Remko Bijker.


February 24, 2012