梦幻西游新资源的提取二

来源:互联网 发布:海岛奇兵伊娃升级数据 编辑:程序博客网 时间:2024/05/01 15:17

感谢大家继续收看。

 

v3d.dat 的格式分析

文件开头同样是一个
typedef struct {
 unsigned long flag; // 'v3dd'
 unsigned long version; // 版本号 0x10005 等
} v3dd_file_header;

接着就是一帧一帧的图片数据,可以根据 v3dh 中的 dat_offset_list[] 来定位。
下面对定位后的一帧数据进行分析。
unsigned short Size; // 此帧数据的大小,不包含这2字节
typedef struct {
 long keyx; // 很常见的一个结构,不多废话
 long keyy;
 long width;
 long height;
} v3dd_frame_header;
接下来,可能存在一个512字节的16位调色板,也可能不存在,这完全取决于xyqsvc.exe渲染图片时是否正确加载了mypal.wdf里的调色板。
然后是每一行数据的偏移地址,这一点与was图片格式一样,因为它要支持边解压边绘制。此外,数据的压缩格式与was图片也是一样的。

判断是否存在512字节内置调色板的方法是,判断帧数据开始16字节处(也就是height后面)的4字节数据的值是否为图片高度的4倍再加16,如果为真,那么基本可以确定不包含内置调色板。

至此,缓存文件分析完毕。

 

根据以上分析,我写了一个提取工具,如图:

 

 

拿提取的图片做了个gif小动画:

 

还凑合吧,哈哈。

原创粉丝点击