EA Command And Conquer 3 Audio Codec

From MultimediaWiki
Jump to navigation Jump to search

This format is found on certain .cdata files used for sound effects/voice inside the *.BIG resource files of the new Command & Conquer 3 Demo. Using a program such as OS Big Editor 0.4 you can open the DemoStreams.big file from the C&C3 Demo and extract any .cdata file from the "data\global_demo_common\cdata" folder.

File Layout

The file begins with a 16-byte header, which is then followed by codec specific data. All numbers are encoded in big endian. If bytes 0 and 1 are 0x0000, it means that the audio file is a streamed audio file and the actual header data is stored elsewhere in the game data. (all known streamed audio from the game uses EA Layer 3 codec)

byte  0      codec type
             2 = no compression
             4 = XAS ADPCM
             5 = EALayer3 MPEG Layer 3 audio variant
byte  1      related to channel count. Seems to be set to (channel count - 1) * 4 so 0 = mono, 4 = stereo, 0xC = 4 channels and 0x14 = 5.1 (i.e. 6 channels)
bytes 2-3    sample rate
bytes 4-7    total samples
bytes 8-11   total file size (bytes)
bytes 12-16  total samples


XAS is a variation on the Electronic Arts XA codec that uses four independant PCM deltas.

Compressed audio data is arranged in 76-byte blocks that follow sequentially after the header. Each block corresponds to 128 audio samples. In files with stereo audio, the blocks alternate between left and right channels. For example, the first block is for the first channel, the next is for the second channel and so on.

Each block beings with a 16-byte header, and is followed by 15 x 4-byte compressed audio blobs.


Thanks to KMX at Derelict Studios for finding out the initial information on this format as it applies to C&C3.