|

- 帖子
- 86
- 精华
- 0
- 积分
- 283
- 威望
- 0
- 金钱
- 206
- 阅读权限
- 70
- 注册时间
- 2011-3-5
|
机动战士高达:基连的野望压缩解析
最近有人找人解析这个游戏的压缩方法,本着学习的精神就看了一下,但是不知道是psp 哪个版的,只知道文件头是sd0开头的压缩数据,这几天解析了一下原游戏解压的源码,发个上来记录一下,做个备份吧(ps系的汇编看着真头大)
文件头
4字节 sd0标识符
4字节 文件压缩大小(包括前面文件头)
4字节 文件解压大小
第0xc字节开始为压缩数据
lzss类型
一个字节flags标识符,从最低位开始判断
flags&1==0则直接从压缩数据输出一个字节到解压地址
flags&1==1,先读2个字节 byte1 byte2,然后判断,出现以下3个分支
1 如果byte1&f == 1 ,则直接写入n个字节的byte2到解压地址, n = (byte1>>4)+3
2 如果byte1&f == 2 ,则直接从压缩数据输出n个字节到解压地址,n = (byte1>>4)+(byte2<<4)+0x12
3 从地址M,读入n个字节到解压地址
------- m = 当前解压地址-(byte1>>4)-(byte2<<4)
------- n = byte1 & f(如果n==0,则读入第3个字节byte3,n = byte3 + 0x10)
顺便说下这个游戏有ss版的,ss版的bit判断是双字节的,不过其他也大同小异,都是lzss类型的压缩,在这里就不贴了 |
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
|