名称: CIRCUS 描述: 提取Circus的封包的cui插件 封包: .CRX .PCK(no magic) .pcm .DAT(no magic) 作者: 痴漢公賊 (glanser@163.com) 版本: 0.3.2 成熟度: 开发版 【TODO】 1. 支持类型1-3的.pcm文件提取。 2. True tears ~トゥルーティアーズ~的AdvData\GRP\EVG\e1_07_a.crx解压缩错误,不知别人测试结果如何。 【.CRX资源文件说明】 元数据是bmp文件(24位和32位)。 该文件广泛用于Circus的游戏当中,主要用于存储各种类型的图像据。 首部: s8 magic[4]; // "CRXG" u32 zero; // 全0 u16 width; // 宽度 u16 height; // 高度 u16 mode; // 1 - 无压缩;2 - zlib压缩 u16 unknown1; // 未知(如果大于1,那么该文件不是有效的crx文件) u32 color_type; // 0 - 24位;1 - 32位;其他(通常是0) - 8位 数据: 依据mode字段而定。解压后的原始数据是经过编码变换的bmp,每行第一个字节表示filtering变换模式或RLE(共0-3是4种filtering变换,4是RLE) 【.PCK封包文件说明】 实际类型是有目录的CRX封包文件。 元数据是CRX文件。 内部的CRX是连续的帧图像,用于实现动画效果。 首部: u32 entries; // 资源文件数量 快速索引段: u32 offset; // 资源文件数据偏移(从文件头算起) u32 length; // 资源文件数据长度 索引段: s8 name[56]; // 资源文件名 u32 offset; // 资源文件数据偏移(从文件头算起) u32 length; // 资源文件数据长度 数据: CRX文件。 【.pcm资源文件说明】 元数据是PCM WAV文件。 该文件广泛用于Circus的游戏当中,主要用于存储各种类型的音频数据。 首部: s8 magic[4]; // "XPCM" u32 length; // 数据长度(实际涵义依据mode字段而定) u8 mode; // 0 - PCM数据;1 - VQ压缩+lz压缩;2 - ADPCM数据;3 - VQ压缩+zlib压缩 u8 parameter; // mode为1和3时,表示使用的scale table。 u8 reserved[2]; u16 wFormatTag; // 以下字段的涵义请参考MSDN上有关WAVEFORMATEX的描述 u16 nChannels; u32 nSamplesPerSec; u32 nAvgBytesPerSec; u16 nBlockAlign; u16 wBitsPerSample; 数据: 依据mode字段而定。 【.DAT封包文件说明】 实际类型是有目录的pcm封包文件。 元数据是pcm文件。 该文件广泛用于Circus的游戏当中,主要用于存储游戏人物语音数据(VOICE.DAT)。 首部: u32 entries; // 资源文件数(每项64字节) 索引段: u8 name[60]; // 资源文件名 u32 offset; // 资源文件数据偏移(从文件头算起) 数据: 紧接在索引段之后。数据内容主要是类型3的XPCM。 【ChangeLog】 2008-04-24 12:06 ver 0.3.2 解禁.DAT的提取 2008-04-03 12:48 ver 0.3.1 修正了pcm类型3的提取方式 2007-11-24 21:02 ver 0.3.0 支持类型1的.CRX文件的提取;支持类型2的8位色CRX文件的提取 2007-06-02 00:30 ver 0.2.1 .dat本身缺乏明确的magic作为匹配,而且现阶段还无法提取其中的XPCM数据,因此暂时关闭了对.dat的提取功能。 2007-05-02 11:53 ver 0.2.0 修正了提取crx时没有正确检测RLE拷贝边界的bug 2007-02-17 00:46 ver 0.1.0 第一版发布,不支持类型1-3的.pcm文件提取