====== Type 0: Container ====== ==== File Format Description ==== === File Structure === * Format Type: Container * Endian Order: Little Endian * File Extension: .m4b == FILE == ^ Header ^^^^ | INT+32 | 0x1 | Identifier length | 0xb | | CHAR8 | 0xb | Identifier | "UBI_BF_SIG" + 0x0 | | INT+32 | 0x1 | Number of directories | = ab | | INT+32 | 0x1 | //reserved// | 0x0 | | [[en:fileformats:myst4:type0#DIR*]] | [ab] | Directory structure | | ^ Files ^^^^ | DATA | EOF | Files | | === User Defined Structures === == DIR* == ^ Dir ^^^^ | INT+8 | 0x1 | Number of subdirectories | = ba | | **if (ba == 0) {** |||| | INT+32 | 0x1 | Number of files | = bb | | [[en:fileformats:myst4:type0#FILEINFO*]] | [bb] | File Information | | | **} else {** |||| | [[en:fileformats:myst4:type0#DIRINFO*]] | [ba] | Directory information | | | **}** |||| == DIRINFO* == ^ DirInfo ^^^^ | INT+32 | 0x1 | Directory name length | = ca | | CHAR8 | [bc] | Directory name | //null terminated// | | [[en:fileformats:myst4:type0#DIR*]] | 0x1 | Directory information | | == FILEINFO* == ^ FileInfo ^^^^ | INT+32 | 0x1 | File name length | = da | | CHAR8 | [da] | File name | //null terminated// | | INT+32 | 0x1 | File length | | | INT+32 | 0x1 | File offset | //absolute//| === Reference === http://wiki.xentax.com/index.php/Myst_4_Revelation