游客:
注册
|
登录
会员
|
搜索
|
统计
|
帮助
轩辕春秋文化论坛
»
设计与修改
» LS11数据格式分析总结和完整解压缩代码
兴唐传·瓦岗山异闻录(20150519版)发布
(2015-5-19)
论坛营运现状公告
(2014-8-10)
三国志12pk版下载
(2013-4-20)
《精忠报国岳飞传》制作组对外开放
(2013-1-16)
岳飞传解密剧本发布
(2011-4-12)
招募各版斑竹和网站管理技术人员
(2006-4-19)
<< 上一主题
|
下一主题 >>
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
|
开通个人空间
|
加入资讯
标题: LS11数据格式分析总结和完整解压缩代码
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#1
发表于 2010-4-14 08:42
资料
短消息
只看该作者
LS11数据格式分析总结和完整解压缩代码
最后更新 2010-04-16,文档版本 0.2
虽然前面已经有几大高手讨论过了,但是系统、完整一点的文献好像还没看到。直接可用的、完整的源代码也不多。这里在前人的基础上写了一些关于LS11的详细内容,并给出了完整的可执行程序和源代码,希望能对需要的人有所帮助。
由于排版方面的原因,直接贴到论坛上不是很方便,于是将详细的正文附在了附件的PDF文档中,需要的可以直接打开浏览。由于在下写作水平低陋,而且对van和Maxwell等人的原帖理解有限,所以烦请各位在检阅之余,还帮忙找找文中的谬误,我及时修正,以免误导。
附件还包括一个简陋的解压缩程序,并附上了完整的C语言源代码。相信有编程能力的人很容易将其改成更强大的程序。源代码中的解码函数参考了Maxwell的部分算法,未得到Maxwell的允许便写进了程序,希望Maxwell海涵。
如果您发现本文中的文字或者程序冒犯了您的版权,请通知我,我立刻修改或者删除。
附正文摘要:
LS11格式的数据文件存在于KOEI®开发的许多经典游戏中,比如大航海时代系列和三国志系列等等。本文在前人的基础上对LS11的详细格式进行了探讨,总结并阐述了LS11文件的具体格式,数据压缩方法,还原算法等等。并给出了完整的解压缩程序和源代码。
详情还是请见附件吧!
[
本帖最后由 numdisp 于 2010-4-17 12:10 编辑
]
附件
: [数据分析PDF文档]
ls11dec_document.zip
(2010-4-17 12:10, 219.27 K)
该附件被下载次数 1317
附件
: [程序实现及源代码]
ls11dec_program.zip
(2010-4-14 08:42, 56.29 K)
该附件被下载次数 489
本帖最近评分记录
Maxwell
2010-4-25 12:38
+200
代码和文档都看了。代码风格不错,从代码看作者软件开发经验丰富,向作者学习。
岱瀛
2010-4-23 23:14
+1
文档打不开,代码看了,先表扬一下,写出压缩程序再加推荐。
岱瀛
2010-4-23 23:14
+200
文档打不开,代码看了,先表扬一下,写出压缩程序再加推荐。
[广告]
《精忠报国岳飞传完整版》火热发布
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#2
发表于 2010-4-14 08:45
资料
短消息
只看该作者
0.2版的文档加上了致谢.
--
原文中忘了加上致谢,这里补上:
除了感谢van、maxwell、和gameplore等人精辟的讨论之外,还要特别感谢阿尔法孝直验证我的解压程序。
谢谢。
[
本帖最后由 numdisp 于 2010-4-20 02:24 编辑
]
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
dhlgdmh
组别
百姓
级别
在野武将
功绩
0
帖子
2
编号
360318
注册
2010-2-11
#3
发表于 2010-4-14 12:55
资料
短消息
只看该作者
谢谢分享
[广告]
《精忠报国岳飞传完整版》火热发布
han6
组别
校尉
级别
破贼校尉
功绩
16
帖子
96
编号
25690
注册
2004-11-25
#4
发表于 2010-4-14 22:59
资料
文集
短消息
只看该作者
文档写得相当专业啊。会写解压缩程序的不少,但能写出这么漂亮清晰的文档的,恐怕不多。
[广告]
《精忠报国岳飞传完整版》火热发布
阿尔法孝直
(雀力日进)
闽国公
遂安军节度使
★★★★★★
组别
节度使
级别
卫将军
好贴
2
功绩
1796
帖子
6034
编号
19070
注册
2004-10-16
家族
轩辕雀党
#5
发表于 2010-4-14 23:03
资料
个人空间
短消息
只看该作者
回复 #4 han6 的帖子
是的,这样的文章在轩辕太少了。
另外,楼上是谁我就不说了。。。。。。。。。。
[广告]
《精忠报国岳飞传完整版》火热发布
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#6
发表于 2010-4-14 23:16
资料
短消息
只看该作者
刚又随便检查了一下,发现了不少笔误,这里纠正一下。原帖中的文件已替换为修定后的版本。
第5页的表格,索引项最后一项值应为
255
,而不是256。
第6页,第6行,“继续读取8个数”,应为“继续读取
第
8个数”,接着的“为1”应为“为
2
”,后面的公式中也应为 nc =
2
+ C
第6页,第四小节倒数第二段:“从上面的复制过程可以看出,....”一句中,“当然”一词应为“当
前
”。
还是第6页,第四小节最后描述复制过程的段落,“复制完成后,继续读取下一个数,为
2
”一行应该删除(
这个错误太大了
!)。
第7页,最后一行,Endian
n
ess一词少拼了一个n
第8页程序授权许可增加了一句话。
2010-04-16更新:
把原文中的“掩码”和“因子”的概念互换了。
致谢部分写入了正文。
修正了许多错别字。
增加了页码。
文档版本更新为0.2
再发现谬误会继续在本帖补上。
[
本帖最后由 numdisp 于 2010-4-17 12:12 编辑
]
[广告]
真诚支持说岳,携手共创辉煌
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#7
发表于 2010-4-15 06:48
资料
短消息
只看该作者
发现了一些问题
哪位能正确地解压缩附件中的这个LS11文件?
我的程序中有一段代码是判断文件是否合符预想中的LS11规范的,其中一条判断准则就是:
假设待解压的文件总长度为 TLEN,文件中含有 N 段压缩数据, 每段压缩数据的长度分别为 L(i), (i = 1 ~ N)。 那么,按照文中的分析,上述几个变量应满足以下等式:
16 + 256 + N*12 + 4 + SUM( L(i) ) = TLEN (其中SUM 代表求和)
我试验了大部分LS11文件,的确满足上述关系。可是附件中的这个文件却是个例外。这个文件的体积远超出了预定的大小,不满足上述关系式。这个文件是我从PC版的大航海时代2这个游戏中摘出来的,应该是合法的LS11文件。
初步猜测以前描述的LS11文件格式并不完全,应该还有些尚未挖掘出来的信息。请高手帮忙看看。
附件
: [一个特殊的LS11文件]
KAO.zip
(2010-4-15 06:48, 335.8 K)
该附件被下载次数 201
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
阿尔法孝直
(雀力日进)
闽国公
遂安军节度使
★★★★★★
组别
节度使
级别
卫将军
好贴
2
功绩
1796
帖子
6034
编号
19070
注册
2004-10-16
家族
轩辕雀党
#8
发表于 2010-4-15 07:40
资料
个人空间
短消息
只看该作者
看了一下Van的RPGViewer,貌似还不支持大航海2,看来Van自己也没解决这个问题。
另外,我用我自己的解压程序解了这个文件,发现解压后的文件大小和解压前的完全一样
[
本帖最后由 阿尔法孝直 于 2010-4-15 07:46 编辑
]
[广告]
《精忠报国岳飞传完整版》火热发布
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#9
发表于 2010-4-15 09:39
资料
短消息
只看该作者
回复 #8 阿尔法孝直 的帖子
其实我就是为了大航海2才干这个事的,van的RPGViewer要是支持大航海2我就不会自己研究LS11了。
[广告]
真诚支持说岳,携手共创辉煌
比古清十郎
组别
百姓
级别
在野武将
功绩
0
帖子
16
编号
41071
注册
2005-6-16
#10
发表于 2010-4-20 01:13
资料
短消息
只看该作者
van的RPGViewer只支持导出王国兴亡录的图片,导回去会出错。LZ能不能做个把解压的文件重新压缩的程序啊,拜托了。
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#11
发表于 2010-4-20 02:23
资料
短消息
只看该作者
俺水平有限,压缩代码现在暂时还没整出来。
Maxwell的帖子里似乎有(gameplore的程序),不过我没用过。
[广告]
《精忠报国岳飞传完整版》火热发布
比古清十郎
组别
百姓
级别
在野武将
功绩
0
帖子
16
编号
41071
注册
2005-6-16
#12
发表于 2010-4-20 07:09
资料
短消息
只看该作者
我试过gameplore的程序,好像会出错啊。只好期待numdisp 大人啥时候出个压缩的程序了。
[广告]
《精忠报国岳飞传完整版》火热发布
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#13
发表于 2010-4-23 13:18
资料
短消息
只看该作者
回复 #12 比古清十郎 的帖子
理论上讲,压缩要做的事情要比解压缩多。这段时间太忙,暂时没时间弄了。等有空再说吧。
不过,如果看懂了上面的文档,再结合Maxwell, gameplore等人的讨论仔细研究一下应该也是比较容易实现相应的压缩程序的。
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
比古清十郎
组别
百姓
级别
在野武将
功绩
0
帖子
16
编号
41071
注册
2005-6-16
#14
发表于 2010-4-23 14:29
资料
短消息
只看该作者
要是看的懂,我早自己动手了。看那东西和看天书没两样,我只能期待各位编程高人了。
[广告]
真诚支持说岳,携手共创辉煌
GOODCHAOGEGOOD
组别
百姓
级别
奋威校尉
功绩
1
帖子
128
编号
320198
注册
2009-4-30
#15
发表于 2010-4-24 14:07
资料
短消息
只看该作者
QUOTE:
原帖由
numdisp
于 2010-4-15 06:48 发表
哪位能正确地解压缩附件中的这个LS11文件?
我的程序中有一段代码是判断文件是否合符预想中的LS11规范的,其中一条判断准则就是:
假设待解压的文件总长度为 TLEN,文件中含有 N 段压缩数据, 每段压缩数 ...
可以解压,也可以再压缩回去,尽管文件大小与原来不同,但是应该不影响使用,解压压缩三国志6的MSG文件的时候也是如此,压缩后的MSG文件大小与原来的不同,但是游戏可以正常读取。
图片附件
:
snap00025.png
(2010-4-24 14:07, 3.32 K)
图片附件
:
snap00026.png
(2010-4-24 14:07, 27.19 K)
[广告]
《精忠报国岳飞传完整版》火热发布
Maxwell
代王
监管使
枢密直学士
山南西道节度使
★
组别
诸侯
级别
征东将军
好贴
4
功绩
1845
帖子
5799
编号
622
注册
2004-7-7
#16
发表于 2010-4-25 11:42
资料
文集
短消息
只看该作者
压缩我怎么觉得我写过,貌似叶落秋寒还说我的代码压缩后与原来文件不一样。
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
Maxwell
代王
监管使
枢密直学士
山南西道节度使
★
组别
诸侯
级别
征东将军
好贴
4
功绩
1845
帖子
5799
编号
622
注册
2004-7-7
#17
发表于 2010-4-25 12:15
资料
文集
短消息
只看该作者
楼主是*nix派?
[广告]
真诚支持说岳,携手共创辉煌
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#18
发表于 2010-4-25 12:38
资料
短消息
只看该作者
回复 #15 GOODCHAOGEGOOD 的帖子
我的程序中,如果去掉根据文件大小来判断合法性的准则的话,也是可以解开的,就是不知道后面多出来的信息是什么。
这个其实也不难,上面贴的KAO.LZW里面应该都是一些图片。解开后研究一下存储方式就知道了。
不过这段时间实在是无暇顾及了,好多事情,再不交成果,老板就....
另外,既然大侠有解压和压缩一体的程序,何不发上来让前面那位仁兄了却一桩心愿?
[广告]
真诚支持说岳,携手共创辉煌
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#19
发表于 2010-4-25 12:42
资料
短消息
只看该作者
Maxwell版大也出来了,你说的解压程序我没找着啊,可否贴一个链接?不过上面的GOODCHAOGEGOOD的程序看起来也很强啊。
另外,何以见得俺是 “*nix派”?就凭源码里多了个emacs的模式注释?
悄悄的说,其实我是两面派,
[广告]
《精忠报国岳飞传完整版》火热发布
比古清十郎
组别
百姓
级别
在野武将
功绩
0
帖子
16
编号
41071
注册
2005-6-16
#20
发表于 2010-4-25 12:44
资料
短消息
只看该作者
GOODCHAOGEGOOD的程序可以用在王国上哦,谢谢各位老大。
[广告]
真诚支持说岳,携手共创辉煌
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#21
发表于 2010-4-25 12:46
资料
短消息
只看该作者
回复 #20 比古清十郎 的帖子
请问程序链接在哪儿?麻烦贴一个让我也收藏一下。
[广告]
《精忠报国岳飞传完整版》火热发布
比古清十郎
组别
百姓
级别
在野武将
功绩
0
帖子
16
编号
41071
注册
2005-6-16
#22
发表于 2010-4-25 12:48
资料
短消息
只看该作者
回复 #21 numdisp 的帖子
LS11压缩解压工具 ,就是本帖下面一个啊。
http://www.xycq.net/forum/thread-208491-1-1.html
[
本帖最后由 比古清十郎 于 2010-4-25 12:49 编辑
]
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#23
发表于 2010-4-25 12:51
资料
短消息
只看该作者
回复 #22 比古清十郎 的帖子
我土星了,居然没看新帖~~,上面对GOODCHAOGEGOOD说的全部作废。话说有源码么?(我太无耻了。)
[
本帖最后由 numdisp 于 2010-4-25 12:53 编辑
]
[广告]
真诚支持说岳,携手共创辉煌
比古清十郎
组别
百姓
级别
在野武将
功绩
0
帖子
16
编号
41071
注册
2005-6-16
#24
发表于 2010-4-25 12:55
资料
短消息
只看该作者
太开心了,终于可以改了,哇哈哈。
刚发现,我几年发的帖子也没这几天发的多的。
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
Maxwell
代王
监管使
枢密直学士
山南西道节度使
★
组别
诸侯
级别
征东将军
好贴
4
功绩
1845
帖子
5799
编号
622
注册
2004-7-7
#25
发表于 2010-4-25 12:56
资料
文集
短消息
只看该作者
QUOTE:
原帖由
numdisp
于 2010-4-25 12:42 发表
Maxwell版大也出来了,你说的解压程序我没找着啊,可否贴一个链接?不过上面的GOODCHAOGEGOOD的程序看起来也很强啊。
另外,何以见得俺是 “*nix派”?就凭源码里多了个emacs的模式注释?
悄悄的说,其实我是 ...
从你的文件换行符、代码风格、注释都看着像*nix派。emacs我主要用ntemacs,linux下用vi,不过linux下基本不写代码。
上面说的程序大概是这个:
http://www.xycq.net/forum/thread-208491-1-1.html
我的压缩程序是否存在我也存疑
,看到我发的帖子里Encode函数是空的。以前写的东西都在另一台老电脑里了,只是觉得我跟叶落秋寒等人讨论过相关问题,而且都讨论到如何压缩能跟原来文件一致还有效率问题了,想必是写过代码的。另外关于压缩我好像写过帖子。
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#26
发表于 2010-4-25 13:07
资料
短消息
只看该作者
回复 #25 Maxwell 的帖子
让版大见笑了,其实俺是纯业余的
不过平常工作经常需要Windows/Linux两边倒腾,所以代码干脆全部*nix换行风格了,免得老是要dos2unix的转换。我写C的程序全是*nix风格,不过如果是GUI,又是C++的话,就全是MS风格了。文档的话,虽然看起来煞有其事,其实一读就知道写的很烂了。
另外,除了这段时间出现的LS11相关贴外,前面的似乎就只有我文档里提到的两个帖子了,而且年代比较久远了。压缩方面,前面的帖子的确是有讨论过,就是你和gameplore等人一起讨论了很多的那个超长贴,精华区的文献我也看了,想必实现不会很难,只是目前业余时间实在有限,没办法仔细研究了。等日后有空了再继续吧。不过GOODCHAOGEGOOD发的那个程序如果有源码的话就太好了。
[
本帖最后由 numdisp 于 2010-4-25 13:08 编辑
]
[广告]
《精忠报国岳飞传完整版》火热发布
Maxwell
代王
监管使
枢密直学士
山南西道节度使
★
组别
诸侯
级别
征东将军
好贴
4
功绩
1845
帖子
5799
编号
622
注册
2004-7-7
#27
发表于 2010-4-25 13:34
资料
文集
短消息
只看该作者
QUOTE:
原帖由
numdisp
于 2010-4-25 13:07 发表
让版大见笑了,其实俺是纯业余的
不过平常工作经常需要Windows/Linux两边倒腾,所以代码干脆全部*nix换行风格了,免得老是要dos2unix的转换。我写C的程序全是*nix风格,不过如果是GUI,又是C++的话,就全 ...
我找了一下,以前我写过这么一篇帖子
http://www.xycq.net/forum/viewthread.php?tid=64471
从帖子看,我应该是写过完整代码的。
你自称是业余的,可是看你代码的水平比很多从事编码工作的人的水平要高很多,实在是太谦虚了。如果编程不是你的专业的话,那么你是做信号处理的?我只知道这一个专业需要编程还要linux/windows两边倒。
我是工作中用ms风格,自己写代码还是喜欢标准c++的风格,不过就算写c代码也不用k&r的括号风格。
[广告]
安装Alexa工具条,提高轩辕排名,支持轩辕发展!
numdisp
(数值频散)
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
362758
注册
2010-2-26
#28
发表于 2010-4-25 13:56
资料
短消息
只看该作者
回复 #27 Maxwell 的帖子
你贴的这个链接就是我前面说的“精华区中的帖子”。由于我研究LS11的目的只在解压部分,所以对这个帖子以前只是粗略的看过,没有仔细消化。不过你的帖子里的代码已经很详细了,我想稍微花点功夫实现完整的压缩程序应该很简单了。
算啦,再这样回帖的话有版聊的嫌疑了,闪人吧。改日再会。
[广告]
真诚支持说岳,携手共创辉煌
loujiawei
组别
百姓
级别
在野武将
功绩
1
帖子
44
编号
296108
注册
2008-10-25
#29
发表于 2010-10-16 22:16
资料
短消息
只看该作者
求助
传承文明社区的续英杰传用的是ls13格式,我发现该格式存在一种情况就是读到大于256的值往回退的时候不够退,这该怎么办呢?比如说序列值为 1、2、3、260,260即退4个字节,就退到1前面去了,晕死>.<
用RV读取续英杰传的资源文件同样非法操作
[广告]
真诚支持说岳,携手共创辉煌
northwind_x
★
组别
校尉
级别
破贼校尉
功绩
11
帖子
59
编号
362090
注册
2010-2-22
#30
发表于 2010-10-18 23:15
资料
文集
短消息
只看该作者
以前用C#写过LZW的压缩解压算法,现在多半都忘记了
PS : 楼主的文档写的真是专业!!!!
[广告]
真诚支持说岳,携手共创辉煌
投票
交易
悬赏
活动
正在浏览此帖的会员 - 共
1
人在线
轩辕春秋文化论坛
轩辕史话
> 炎黄春秋
> 我思我在
> 法律探讨
> 三国史话
春秋文艺
> 古典小说
> 诗词歌赋
> 现代文艺
> 韦编三绝
> 对联雅座
> 滴翠亭
> 藏经阁
> 双七钟社
> 笑书神侠
> 辕门射虎
> 虎帐点兵
游戏人生
> 同人战棋手游
> 三国戏英杰传
> 三国鼎立
> 轩辕公会
> 三国志12
> 英雄史诗
> 运筹帷幄
> 人间五十年
> 步步为营
> 游行天下
> 游戏贴图
轩辕工作室
> 兴唐传·瓦岗山异闻录
> 豪华曹操传
> 精忠报国岳飞传
> 《精忠报国岳飞传》制作组
> 大一统演义
> 曹操传MOD作品交流
> 东吴霸王传
> 封神英杰传
> 杨家将
> 吕布传
> 三国无双战略版
> 北宋志·赵匡胤传
> 战旗春秋
> 曹操传MOD制作交流
> 金庸群侠传MOD交流
> 风华录
> 设计与修改
怡情岁月
> 影音经典
> 动漫先锋
> 绘画摄影
> 情感轩辕
> 衣食住行
> 体坛动力
> 谈股论金
> 水泊轩辕
参政议政
> 迎宾阁
> 鸿胪寺
> 登闻鼓
> 监造府
当前时区 GMT+8, 现在时间是 2024-12-22 21:12
京ICP备2023018092号
轩辕春秋
2003-2023 www.xycq.org.cn
Powered by
Discuz!
5.0.0
2001-2006
Comsenz Inc.
Processed in 0.015788 second(s), 10 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
轩辕春秋
-
Archiver
-
WAP
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
基本概况
论坛排行
主题排行
发帖排行
积分排行
管理团队
管理统计