Name: CIRCUS Description: cui plug-in for extracting Circus archive Archive: .CRX .PCK(no magic) .pcm .DAT(no magic) Author: 痴漢公賊 (glanser@163.com) Version: 0.3.2 Status: Alpha 【TODO】 1. Support extraction of type 1-3 .pcm files. 2. True tears ~トゥルーティアーズ~'s AdvData\GRP\EVG\e1_07_a.crx caused an extraction error. Waiting for test results. 【.CRX Resource Info】 meta-data is bmp(24-bit and 32-bit). the file is used widely in Circus' game, mainly is used for storing various types of image datas. header: s8 magic[4]; // "CRXG" u32 zero; // all 0 u16 width; // width u16 height; // height u16 mode; // 1 - no compression; 2 - zlib compression u16 unknown1; // unknown(if bigger than 1, file is invalid crx) u32 color_type; // 0 - 24-bit; 1 - 32bit; etc(usually be 0) - 8-bit data: on the basis of mode field. meta-data after decompressing is with encoding transformed bmp, first byte of every line means filtering transformation mode or RLE(0-3 means 4 filtering transformations, 4 means RLE) 【.PCK Archive Info】 the .PCK is type of CRX archive with directory. meta-data is CRX file. internal CRX is continuous frame image, is used for producing anime effect. header: u32 entries; // resource number fast index segment: u32 offset; // resource data offset(count from file header) u32 length; // resource data length index segment: s8 name[56]; // resource name u32 offset; // resource data offset(count from file header) u32 length; // resource data length data: CRX file. 【.pcm Resource Info】 meta-data is PCM WAV file. the file is used widely in Circus' game, mainly is used for storing various types of audio datas. header: s8 magic[4]; // "XPCM" u32 length; // data length(actual meaning base on mode field) u8 mode; // 0 - PCM data; 1 - VQ compression + lz compression; 2 - ADPCM data; 3 - VQ compression + zlib compression u8 parameter; // when mode is 1 and 3, means using scale table. u8 reserved[2]; u16 wFormatTag; // about meaning of following field, please reference related WAVEFORMATEX description on MSDN. u16 nChannels; u32 nSamplesPerSec; u32 nAvgBytesPerSec; u16 nBlockAlign; u16 wBitsPerSample; data: on the basis of mode field. 【.DAT Archive Info】 the .DAT is type of pcm archive with directory. meta-data is pcm file. the file is used widely in Circus' game, mainly is used for storing character voice data(VOICE.DAT). header: u32 entries; // resource number(every item with 64 bytes) index segemnt: u8 name[60]; // resource name u32 offset; // resource offset(count from file header) data: closely behind index segemnt. data content is mainly type 3 XPCM. 【ChangeLog】 2008-04-24 12:06 ver 0.3.2 resumed extracting .DAT 2008-04-03 12:48 ver 0.3.1 modified extraction mode about type 3 pcm 2007-11-24 21:02 ver 0.3.0 supported extracting type 1 .CRX file; supported extracting type 2 CRX file in 8-bit 2007-06-02 00:30 ver 0.2.1 closed temporarily function for extracing .dat because of .dat itself lacking definite magic to match and difficulty in extracting XPCM data at present 2007-05-02 11:53 ver 0.2.0 fixed a bug for detecting incorrectlly RLE's copying boundary when extracting crx 2007-02-17 00:46 ver 0.1.0 1st version released, supported without probability of extracting type 1-3 .pcm