Talk:BRP
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.