The MCH Format is used to store sprite animations, e.g. the image frames of a creature walking.
The file starts with an image count.
|UINT16LE||frameCount||Number of frames in the animation|
After the image count are frame details, repeated frameCount times.
|UINT16LE||width||Width in pixels|
|UINT16LE||height||Height in pixels|
|UINT32LE||offset||Offset from start of file where data begins|
Each frame's image data starts at offset bytes from the start of the file.
Frame image data
Frame pixel data is stored in chunks representing horizontal runs of pixels. Each chunk has this format:
|BYTE||x||Position to start drawing|
|BYTE||numPixels||Number of pixels in the chunk|
|BYTE[numPixels]||pixels||Pixels using current level palette|
One row's pixels may be defined by multiple chunks. The data ends when x == 0xFF.
The following tools are able to work with files in this format.
|Name||Platform||View images in this format?||Convert/export to another file/format?||Import from another file/format?||Access hidden data?||Edit metadata?||Notes|
This file format was reverse engineered by Malvineous and Ceidwad. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)