Board logo

标题: 请问光荣系列的 LS11 格式 [打印本页]

作者: numdisp    时间: 2010-3-16 03:50     标题: 请问光荣系列的 LS11 格式

很多光荣的游戏数据文件都是压缩的,用UltraEdit打开文件头都是LS11等格式的。
翻了翻前面讲解 LS11 格式的帖子,觉得LS11讲的比较详细了。但是 LS10 和 LS12 的似乎没有。
请问LS10,LS11,还有LS12,它们究竟具体的区别在什么地方啊?

[ 本帖最后由 numdisp 于 2010-3-19 15:51 编辑 ]
作者: Maxwell    时间: 2010-3-27 13:27

我对光荣系列游戏没有研究过,你可以看一下ls10和ls12的特征跟ls11是否有相似之处?
作者: numdisp    时间: 2010-4-1 03:31

大侠终于出现了!
我看了一下,基本格式应该是一样的,都是文件头+字典+数据信息段+压缩数据段的格式,各单元段的长度也都相同,我猜是压缩数据段的编码格式有一点点细微的差别,但是又不知道差别在哪儿。
作者: han6    时间: 2010-4-1 03:34

我用LS11的解压算法,去解LS12的压缩文件没有任何问题,我猜可能是压缩算法不同吧。
作者: numdisp    时间: 2010-4-1 03:40

瞬间居然就看见han6兄的回复了。数据结构是一样的,LS11的程序当然可以用在LS12或者LS10上,问题是,怎么知道解出来的数据是正确的呢?

我也正在实现一个LS系列的解码工具,可否即时交流一下?我email是 numdisp@gmail.com

[ 本帖最后由 numdisp 于 2010-4-1 03:46 编辑 ]
作者: Maxwell    时间: 2010-4-3 23:01

楼上已经有朋友证实了ls12与ls11可以通用解压程序,你可以再试一下ls10。我跟楼上的朋友想法一样,这几种压缩格式可能差在压缩程序不同。我猜测还有可能不同的是可能整个文件的格式有所不同,比如文件头的长度、各字段含义、顺序、允许容量、文件内容等等方面不同,而压缩部分其实是一样的。

ls11一个数值由两部分组成,前一部分是由前导的1开头,手工解一部分应该能感觉出来是否正确,再有就是你总归知道你解的东西是文字还是图片等等,通过检查解压后的内容也可以确定。
作者: 阿尔法孝直    时间: 2010-4-4 04:00

记得叶落秋寒说过:

QUOTE:
LS文件的结构
0-15 文件头16个字节
16-271 字典256个字节
N组 12字节为一组控制信息(压缩后长度,原文长度,压缩数据起始地址)

我想知道这里的“12字节为一组控制信息”具体格式是什么
作者: numdisp    时间: 2010-4-6 00:22

我仔细观察了一下LS10和LS11、LS12的文件,文件的格式和头信息的含义应该是一样的。我自己的解压代码还没搞定,等过些日子全搞定了发上来大家审核一下吧,顺便写一篇总结。虽然精华区已经有了相关的帖子,不过对于新手似乎不太容易理解(反正我是摸索了好长时间的)。

回阿尔法孝直:那12个字节的信息段可拆分为3部分,每部分4个字节,每4个字节包含的意思依次为:压缩(后)段的数据长度,原始二进制流(未压缩,或解压缩后)的长度,该压缩数据段的绝对起始地址(从SEEK_SET算起)。

需要特别注意的是,这些4个字节的数据在文件里是Big Endian存放的,而不是我们通常看到的在Intel机器上的Little Endian。我为这个迷惑了好长时间,后来有一天突然把字节序颠倒过来算了一下才发现。前面的帖子似乎从来没有人提过这个问题,可能是我太孤陋寡闻了吧。
作者: 阿尔法孝直    时间: 2010-4-6 00:25     标题: 回复 #8 numdisp 的帖子

嗯,谢谢,我再研究一下




欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/) Powered by Discuz! 5.0.0