Talk:BRP

From MultimediaWiki
Jump to navigation Jump to search

Temporarily moved previous page contents here. --VAG 09:29, 23 July 2006 (EDT)

At least 2 games use an animation format with the extension .brp: FX Fighter and Alien Odyssey, both by Argonaut. The general container formats used in both games are similar, but differing fourccs inside may indicate that the games used different video coding algorithms (which are presently unknown).

All multi-byte numbers are little endian. The fourcc chunk format is as follows:

 bytes 0-3    chunk size, not including 12-byte preamble
 bytes 4-7    chunk type
 bytes 8-11   unknown
 bytes 12..   chunk payload

A BRP file begins with the following header:

 bytes 0-3    file signature: 'BRPP'
 bytes 4-7    version number
 bytes 8-11   unknown, but always seems to be 307200 in decimal which,
              for trivia, is the product of 640 * 480
 bytes 12-15  fourcc: 'BVID', possibly a file sub-type
 bytes 16-31  unknown
 bytes 32-35  total number of video frames in file
 bytes 36-39  video width
 bytes 40-43  video height
 bytes 44-47  possibly video depth (8-bit, palettized video)

There are 2 known versions: 1 and 2. The version 1 file proceeds as follows:

 bytes 48-55  unknown

A version 2 file header proceeds with a BASF chunk which appears to have an unknown 8-byte payload. This is followed by a 'ASF\0' chunk which has an 0x18-byte payload. Bytes 8-15 of this payload appear to be the 8 bytes of the DOS base filename (e.g., file 'foo.brp' would contain 'foo' with 5 0s after). The rest of the payload is unknown. The next 4 bytes of a v2 header contains the length of the remainder of the header, minus 12 bytes. An audio sample rate sits occupies 2 bytes in the space 16 bytes after these four bytes. The rest of the header is unknown. However, the presence of what looks like an audio sampling rate strongly indicates that these files carry audio data.

Following the header is a 'PAL8' chunk (presumably, this would only occur in a 8-bit file if other bit depth files exist). This chunk contains full 8-bit RGB palette triplets.

The video frames follow the header and palette chunk. In F/X Fighter, there are 2 frame types: AVCF and ALCD. Based on their relative occurrence frequencies, AVCF frames may be intracoded while ALCD frames are intercoded.

The following chunk types are currently known:

 PAL8            8-bit palette, range 0-255
 MAD1            contains sub-chunks using different codecs like RLE-compression
 AVCF            vector quantized keyframe (similar to the algorithm used in Creature Shock)
 ALCD            vector quantized deltaframe
 

In the examined files only either the MAD1 or the AVCF/ALCD types are used throughout one file.

Details of the audio compression scheme are currently unknown. The audio chunks are apparently not preceeded by an ASCII chunk type name.