名称: NeXAS 描述: 戯画(GIGA)NeXAS系统(推断是BaldrX系统的后续版本) 封包: .pac 作者: 痴漢公賊 (glanser@163.com) 版本: 0.9.6 成熟度: 开发版 【注意事项】 ·Xross Scrambl中附带的BFR的Stand.pac封包,提取出来的部分bmp资源文件(比如KAGERENN_0403_01.bmp),本身可能就有问题,应该不是cui的问题。 【TODO】 对压缩模式2的封包支持。 【.pac封包文件说明】 实际类型是有目录的封包资源文件。 元数据根据实际用途,可以是bmp、png、grp、ogg、wav、bin(编译后的二进制脚本)、src(脚本源码*1)、exe(脚本编译器、filter maker等辅助工具*1)或ani等。 该封包广泛用于戯画(GIGA)公司及其子公司开发的游戏当中。 首部: s8 magic[4]; // "PAC" 或 "PACw"("PACw"似乎只在se.pac里出现过,而且判断的时候只要判断"PAC"3个字节即可) u32 entries; // 每项76字节 u32 cmode; // 0或4:无压缩;1:lzss压缩;2:未知类型压缩(*2);3:zlib压缩 文件结尾最后4字节: 压缩的索引段长度index_length。这个字段再往前index_length长度就是范式哈夫曼编码的索引段。 索引段(范式哈夫曼解码后): s8 name[64]; // 资源文件名 u32 offset; // 资源文件数据偏移(从首部算起) u32 uncomprLen; // 解压缩后的数据长度(如果没压缩,该字段的值同comprLen) u32 comprLen; // 压缩的数据长度 数据: 紧接在首部之后。 *1:怀疑是开发人员不小心泄漏 *2:暂时没用碰到使用这种压缩格式的游戏 【.grp资源文件说明】 元数据是bmp文件。 首部: s8 magic[3]; // "GR3"(3位copy_bytes;13位win_offset) u16 bits_count; // 色深 u32 width; // 宽度 u32 height; // 高度 u32 dib_len; // 压缩的数据长度 u32 flag_bits; // lzss标志位的位数 标志段: lzss的标志位都被集中在该段,该段的实际长度是(flag_bits + 7) / 8。 数据: 紧接在标志段。 【ChangeLog】 2009-03-28 00:02 ver 0.9.6 支持zlib压缩的bmp 2009-01-10 11:37 ver 0.9.5 支持内部使用zlib压缩的资源的提取 2007-12-23 16:09 ver 0.9.4 修正了保存失败的问题 2007-04-03 21:56 ver 0.9.2 区分GR2和GR3两种类型的grp文件 2007-03-26 14:50 ver 0.9.1 修正了短文件解压缩错误的bug;插件名称重命名为NeXAS 2007-03-22 21:26 ver 0.9.0 配合构架修改过的crage重新设计;支持grp文件导出 2007-02-17 00:46 ver 0.0.1 第一版发布,不支持mode2类型的封包提取