based on dottdemo and scummvm... layout RNAM - ? MAXS - Maximum values DROO - Directory of Rooms DSCR - Directory of Scripts DSOU - Directory of Sounds DCOS - Directory of Costumes DCHR - Directory of Charsets DOBJ - Directory of Objects AARY - list of arrays RNAM --------------------------------- block name (4 bytes BE) size block (4 bytes BE) ? (1 byte) (00 in dottdemo) MAXS --------------------------------- block name (4 bytes BE) size block (4 bytes BE) number of variables (2 bytes LE) ? (2 bytes LE) (0010 BE in dottdemo) number of bit variables (2 bytes LE) number of local objects (2 bytes LE) number of arrays (2 bytes LE) ? (2 bytes LE) (0000 in dottdemo) number of verbs (2 bytes LE) number of flobjects (2 bytes LE) number of inventory (2 bytes LE) number of rooms (2 bytes LE) number of scripts (2 bytes LE) number of sounds (2 bytes LE) number of charsets (2 bytes LE) number of costumes (2 bytes LE) number of global object (2 bytes LE) DROO --------------------------------- block name (4 bytes BE) block size (4 bytes BE) number of elements (2 bytes LE) room number (1 byte) * number of elements offset of resource (4 bytes LE) * number of elements DSCR --------------------------------- block name (4 bytes BE) block size (4 bytes BE) number of elements (2 bytes LE) room number (1 byte) * number of elements offset of resource (4 bytes LE) * number of elements DSOU --------------------------------- block name (4 bytes BE) block size (4 bytes BE) number of elements (2 bytes LE) room number (1 byte) * number of elements offset of resource (4 bytes LE) * number of elements DCOS --------------------------------- block name (4 bytes BE) block size (4 bytes BE) number of elements (2 bytes LE) room number (1 byte) * number of elements offset of resource (4 bytes LE) * number of elements DCHR --------------------------------- block name (4 bytes BE) block size (4 bytes BE) number of elements (2 bytes LE) room number (1 byte) * number of elements offset of resource (4 bytes LE) * number of elements DOBJ --------------------------------- block name (4 bytes BE) block size (4 bytes BE) number of elements (2 bytes LE) == number of global objects owner of object (1 byte) * number of elements AARY --------------------------------- block name (4 bytes BE) block size (4 bytes BE) stop (2 bytes LE) stops if 0x0000 a (2 bytes LE) b (2 bytes LE) c (2 bytes LE) if (c == 1) defineArray(num, 1, a, b) else defineArray(num, 5, a, b)