设为首页收藏本站官方微博

其他 文件头+数据块(zlib)+文件名表 的资源文件

[复制链接]
查看: 3019|回复: 1
打印 上一主题 下一主题

[其他] 文件头+数据块(zlib)+文件名表 的资源文件

跳转到指定楼层
楼主
发表于 2010-7-16 15:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

文件头+数据块(zlib)+文件名表 的资源文件

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式
& _+ j7 r0 D# y- D: K( k# ^8 W# t! z2 a- e; j7 a" u( x
文件头5 n4 d5 N( E7 [: E1 o# W+ i
数据块(zlib)& X' }* C9 m" H# ?
文件名表
* b4 C0 S, a# K, y5 h( z8 N$ T# q( [7 t& w0 D' [
其中文件头格式为3 ~/ h4 C2 F% p. N

0 E0 D" L$ w" R; ]8 ~IDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)
0 u" h( u0 d  m5 W: Z6 u! ^% U0 R5 x% [9 D
文件名表格式为
8 q- P0 q$ _& b( c, C) Q1 ^9 m& n1 U8 {/ V5 G5 n, L" E
文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2)- N4 r; u$ l7 x% n
8 z+ a. L' ]. l, T
一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。; r* ~4 d3 U2 i- |8 A

& R6 W# }$ w6 i0 w# u* c* F; l& v这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。9 s/ ]7 w3 `- o( [
& K! ^8 z+ I, E
所以这种文件解包方法都可以这样,略有不同的可以稍微修改下- A! n7 @8 E1 H  g) D
getdstring IDSTRING 0xP1& x0 F8 N8 P, n7 `% J
get packver long
- n0 e5 }' p* ~( }1 @get FILES long
* E& ]9 h, m! x# R7 N4 {# mget RES_START long4 O! d0 J/ ~" w+ Y. ?- K. Q7 o  i
getdstring NULL 0xP2
7 l9 X% l* y6 {  ?# L; [
. |# Q$ Y/ h& l9 j/ Z5 G4 h3 Y: Pgoto RES_START2 a% X$ u, ^: C8 s# E8 ]' ?+ N1 ^
for i = 0 < FILES) ~9 c: N" h2 Q/ l9 e
getdstring NAME 0xF16 P0 c! w# P4 f1 B
get ZSIZE long0 [3 d& e0 a$ u+ \9 R: O
get SIZE long+ L9 i! Z/ u/ d( E0 k
get FSIZE long/ _/ G3 J4 |3 ]
get OFFSET long
! B/ p! }: i& S3 `! Rget filever long; S" Z$ C4 Q; ?" q* h7 R+ _1 `
getdstring NULL1 0xF2
, p; r6 W0 n7 _clog NAME OFFSET ZSIZE SIZE
, k# M% X7 n6 t; V1 R6 _next i
! a# s, F' X8 f6 q5 J: l
/ |" a/ Y# t1 ^/ E4 `( c  D- b: L现在,想求高人设计个通用的打包工具,命令行或GUI都可以
9 Y' G7 t1 S' d其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。
0 K2 E& {& y# A4 A2 V! G文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?0 D6 q" ?( Z  D" j" L1 Q8 B
有的游戏支持不打包的,试过没有?
& s- j* K, s4 X7 l2 p& M还可以问问老外5 S& `& o8 e; Z  A0 p# a, J* |" S
http://forum.xentax.com/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表