BRP: Difference between revisions
(rewrite most of stuff) |
m (→File Format: typo) |
||
Line 17: | Line 17: | ||
File header followed by stream headers: | File header followed by stream headers: | ||
dword signature - stream [[ | dword signature - stream [[FOURCC]] | ||
dword index - logical index of the stream | dword index - logical index of the stream | ||
dword unknown1 - | dword unknown1 - |
Revision as of 09:02, 23 July 2006
- Extensions: brp
- Company: Argonaut Games
- Samples:
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 FOURCC 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.