Files
itgmania212121/stepmania/Docs/BMA-fmt.txt
T

80 lines
1.9 KiB
Plaintext

*** EXPLANATION ***
BMA is merely a container. It is very expandable, though the
file table could definately use a facelift. Have fun.
Anything not specified in the file is considered null, and can
be used for any purpose (considering those area are not read,
so custom tags could be added after the main header but before
the file table.)
*** SOURCE HEADERS AND DEFINITIONS ***
Make sure you use these typedefs:
TypeDef Unsigned Char Int8;
TypeDef Signed Short Int16;
TypeDef Signed Int Int32;
And constants:
Const BlockSize = 4096;
And these libraries:
ZLib
*** HEADER ***
(hex)
Location Type Desc
---------------------------------------------------------------
00 String(6) "BAMarc"
06 Int16 0xFFFF, identifier
08 Int16 Version #, always 1 for now
0A Int16 Entry count
0C Int8 Entry Table Block
0D Int8 First File Block
0E Int16 Reserved
10 Int8 Creator's name length
11 String(31) Creator's name
30 Int8 Description length
31 String(63) Description
*** FILE TABLE ***
(at file offset: EntryTableBlock*BlockSize)
(hex)
Location Type Desc
---------------------------------------------------------------
00 Int32 File length, in bytes
04 Int16 File offset, in blocks
06 Int8 Filename length
07 Int8 File flags:
& 0x01 = unused
& 0x02 = unused
& 0x04 = unused
& 0x08 = unused
& 0x10 = unused
& 0x20 = ZLib compressed
& 0x40 = unused
& 0x80 = unused
08 String(24) Filename
*** FILE ***
The file's true offset is at (FileOffsetBlock*BlockSize) in the
file. If a file is ZLIB compressed, there will be an extra
string at the end of the chunk, in ASCII, that contains the
uncompressed file size in bytes.
OGG audio is not compressed in these files because they can be
loaded directly into memory and played by a sound library.
-=- Created by SaxxonPike, 2004-2005 -=-