Description of the file format:

All values starting with BMFTYPE_* are enums and are saved as 4 bytes

If magic or version don't match with the compiled-in version, 
file is not loaded.

General layout:
BMFTYPE_MAGIC
BMFTYPE_VERSION
bmf version (4 bytes)
[payload]
BMFTYPE_END_OF_FILE

As a general rule, the file is parsed sequentially, so the prefered order of the payload
should be METAFILE, FPS, WIDTH, HEIGHT, SND, [FRAMECOUNT,] FRAMEs

Where possible, every SND, FRAME or METAFILE should be prepended with a FILENAME segment, where
the filename is without a prepending path (this is only for the decompress utility)

Description of data types:
BMFTYPE_FPS
4 Byte payload dedicates frames per second of the animation

BMFTYPE_FRAMECOUNT
4 Byte payload show the number of frames to expect (for optimizing memory
usage only)

BMFTYPE_WIDTH and BMFTYPE_HEIGHT
4 Byte payload sets the width/height of the frames

BMFTYPE_FILENAME
4 Byte dedicate length of filename string
filenamestring
(This is used for information purposes only and can be used by the decompressor; the filename
should be saved in that cases for the nect SND, FRAME or METAFILE segment)

BMFTYPE_FRAME_COMPRESSED and BMFTYPE_FRAME_UNCOMPRESSED
4 Byte dedicate length of compressed/uncompressed frame (picture) segment
data

BMFTYPE_SND_COMPRESSED and BMFTYPE_SND_UNCOMPRESSED
4 Byte dedicate length of compressed/uncompressed sound segment
data (holds the whole sound for the animation)

BMFTYPE_METAFILE_COMPRESSED and BMFTYPE_METAFILE_UNCOMPRESSED
[Metafiles are reserved for future use ind currently not implemented]
4 Byte dedicate length of compressed/uncompressed metafile
data (could be anything like a readme.txt, blender project or any other file)

BMFTYPE_DIR
4 Byte dedicate length of filename string
filenamestring
(This is used to create a directory relative to the RESPATH when installing extra resources)
