====== .CER file format ====== The .CER file stores assets used by ZZT Enhancer worlds. A simple extraction tool is available [[https://github.com/asiekierka/zzt-toolbox/|here]]. ===== Header ===== ^ Offset ^ Type ^ Description ^ | 0 | uint16 | Asset entry count | | 2... | asset_entry[] | Asset entries | ==== Asset entry ==== ^ Offset ^ Type ^ Description ^ | 0 | uint16 | Asset index (used in OOP) | | 2 | uint32 | Offset, from beginning of file | | 6 | uint32 | Length, in bytes | ===== Known asset formats ===== Asset type information is not stored in the .CER file - rather, any asset can be used as any format by using its index with a given OOP command. ==== Configuration ==== This format is always present at asset index 1. It seems to automatically be loaded by ZZT Enhancer on startup. It's stored as a text file with DOS line endings (CR-LF). ^ Line ^ Description ^ | 1 | World filename, without the .ZZT extension. | | 2 | Unknown; always ''123456789abcdef0123456789abcdef0'' in preserved worlds. | | 3 | Long world name, used for the ZZT Enhancer startup screen. | | 4 | Unknown; Caverns uses ''2'', while Evil3 uses ''0''. | | 5 | [[release:zzt_enhancer:dlm|.DLM]] filename, if used by the game in question. | ==== Font ==== 256 characters, 32 bytes each - the first 14 bytes are used for each character in 8x14 mode. ==== Palette ==== Sixteen consecutive triplets of Red, Green, and Blue values in the range 0 - 63. Matches MegaZeux's palette format. ==== Screen ==== The width and height are followed by (width x height) character/color pairs. ^ Offset ^ Type ^ Description ^ | 0 | uint8 | Width | | 1 | uint8 | Height | | ... | uint8 | Character | | ... | uint8 | Color | ==== Wave ==== Unsigned 8-bit mono RIFF wave files of arbitrary? frequency (known: 8000 Hz, 22050 Hz). ==== Module ==== Tracked module file. ZZT Enhancer was compiled with an unknown version of MikMod (close to but newer than 2.09b), implying support for .MOD, .MTM, .S3M, .STM and limited support for .XM files.