MZM

MZM is a character-based graphics format used originally in MegaZeux. There are two kinds, "layer-mode" and "board-mode".

Format details
Only layer-mode is described here. It is similar to BIN (Binary Text), but with a header. The character set and palette do not necessarily match the ROM character set of PC, though; they are often different (these are not specified in the MZM itself).

All numbers are small-endian. There are two modes, board mode and layer mode. Only layer mode is described in this document. This document is release into public domain.

Version 2:

Offset (hex)    Length (dec)    Description -- 00                   4         Identification "MZM2" 04                  2         Width 06                  2         Height 08                  5         Robot info (always zero) 0D                  1         Storage mode (1 for layer mode) 0E                  1         Save game mode (always zero) 0F                  1         Padding (ignored) 10               w*h*2        Data

Version 3:

Offset (hex)    Length (dec)    Description -- 00                   4         Identification "MZM3" 04                  2         Width 06                  2         Height 08                  5         Robot info (always zero) 0D                  1         Storage mode (1 for layer mode) 0E                  1         Save game mode (always zero) 0F                  2         World version (should be ignored) 11                  3         Padding (ignored) 14               w*h*2        Data

The data is stored in the same format as PC text mode.

When writing out such a file, version 2 is recommended. When reading, only the identification, width, height, and storage mode are relevant.

Software

 * MegaZeux
 * Farbfeld Utilities

Sample files

 * http://zzo38computer.org/backup/example.mzm (use PC character set and palette)