BRP

From MultimediaWiki
Revision as of 06:37, 23 July 2006 by VAG (talk | contribs) (rewrite most of stuff)
Jump to navigation Jump to search

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.

File Format

BRP files consist of multi-stream chunks, where video and audio located in separate, but interleaved streams.

File begins with following 12-byte header:

 dword signature - "BRPP"
 dword streams   - number of streams in file
 dword unknown   - unknown, but equal to 640*480

File header followed by stream headers:

 dword signature       - stream FORUCC
 dword index           - logical index of the stream
 dword unknown1        -
 dword unknown2        -
 dword plsize          - size of the following payload data
 byte  payload[plsize] - stream-specific payload

Finally, actual data chunks follows, each one starts with chunk header:

 dword index      - logical index of the stream chunk belongs to
 dword unknown
 dword size       - size of the chunk data
 byte  data[size] - stream-specific chunk data

Streams

BVID Stream

The video stream. Stream header payload:

  dword unknown1
  dword width    - width of the frame
  dword height   - height of the frame
  dword unknown2

Each BVID's chunk data started with another FOURCC, indicates chunk format:

PAL8 Chunk

 word start          - first color to update
 word count          - number of colors to update
 byte rgb[count * 3] - RGB triplets

AVCF Chunk

Intraframe 2x2 VQ, similar to one used in AVS.

ALCD Chunk

Interframe 2x2 VQ, similar to one used in AVS.

RLED, RLEF Chunks

Rle-compressed frame.

 while not all output processed
   count = next byte of the input
   pixel = next byte of the input
   if count is zero
     skip (pixel) bytes of ouput
   else
     fill count of bytes of output with pixel

MAD1 Chunk

TODO

BASF Stream

Audio Stream. Stream header payload:

TODO

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