Talk:Interplay ACM

From MultimediaWiki
Revision as of 11:33, 20 April 2007 by Avenger teambg (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Since i'm not used to wikis, i thought i just start a talk about this topic before adding it to the normal pages. Anyone feel free to format this info into a regular page.

Here is what i know about the ACM format (not to confuse with Microsoft's ACM): Company: Interplay Usage: Sound format Examples: all Infinity Engine games (baldur's gate, icewind dale, planescape: torment) FourCC: 0x97 0x28 0x03 0x01 tools: acmlab from teamx.ru

This is a lossy compressed audio format with a rather weak compression ratio. (converted to WAV then recompressed to OGG makes it roughly half size). ACM files can be in varying sample rates, but the common one is 22050 Hz, 16 bits and stereo.

The ACM header: 0x00 FOURCC 0x04 sample count 0x08 channel count (some ACM files lie about the channel count) 0x0a sample rate 0x0c levels (4 bits) and subblocks (12 bits) 0x0e

struct ACM_Header {

       long fourcc;
       long samples;
       unsigned short channels;
       unsigned short rate;
       unsigned short levels : 4;
       unsigned short subblocks : 12;

};

The infinity games also contain a WAVC header which contains mostly redundant information. These files are used for all sound except music (ambients, voice over, sound effects).

The WAVC header:

struct WAVC_HEADER {

       char wavc_sig[4];  //WAVC
       char wavc_ver[4];  //V1.0
 long uncompressed;       //the uncompressed length (i guess it is raw pcm)
 long compressed;         //the compressed length
 long headersize;         //28 (the size of this header, also the offset to the ACM header)
 short channels;          //1 or 2
 short bits;              //8 or 16
 short samplespersec;     //usually 22050
 short unknown;

};


--Avenger teambg 14:33, 20 April 2007 (EDT)