open source tool to decode/encode the sample catalogue for OpenTTD
catcodec decodes and encodes sample catalogues for OpenTTD. These sample
catalogues are not much more than some meta-data (description and file name)
and raw PCM data.
Decoding a sample catalogue, e.g. sample.cat, results in a sample.sfo that
contains the file names and descriptions of the samples and all samples with
the file name as specified in the catalogue.
Encoding a sample catalogue, e.g. sample.cat, reads sample.sfo for the file
names and descriptions. It will then load the samples described in sample.sfo
and encodes these into sample.cat.
Generally speaking encoding a file and then decoding it results in the same
file. Decoding of the original, Transport Tycoon Deluxe, sample format will
force the output to be 11025 Hz, 8 bits mono because the meta-data of some of
the samples is incorrect or even missing.
Only PCM WAVE files with only the format and data chunks are supported. Any
other formats need to be converted into this. Furthermore only 11025 Hz, 22050
Hz and 44100 Hz with 8 or 16 bits per sample single channel PCM WAVE files are
- Decode the given sample catalogue into its components. The
sample_file must have the extension
'.cat'. For the output meta-data file the '.cat' is replaced with '.sfo'.
The actual samples, in PCM WAVE format, are extracted into files using the
file names, including extension, as described in the catalogue or
If any of the files already exists a backup is made, by adding '.bak',
overwriting the existing backup.
- Encode the components for the given sample file into a
sample catalogue. The sample_file must
have the extension '.cat'. For the input meta-data file the '.cat' is
replaced with '.sfo'. The actual samples, in PCM WAVE format, are read
from files using the file names, including extension, as described in the
If the sample_file already exists a backup
is made, by adding '.bak', overwriting the existing backup.
(1) the game that uses these sample