关于这个游戏
原名:かまいたちの夜•特別篇
译名:镰鼬之夜•特别篇 (旧译恐怖惊魂夜,不用)
镜像命名:[PS][SLPS-01794].Sound.Novel.Evolution.2.Kamaitachi.No.Yoru.Tokubetsu.Hen.(J).(AVG).(Chunsoft).恐怖惊魂夜.-.特别篇
引言:
这应该是我处理的第二个PS游戏,比起第一个游戏更顺手一些,我尽量把研究的笔记还原出来,不过我个人觉得一个具体游戏的资料对其他破解者来说意义不大,重要的恐怕是一些思路和方法。
所以会在每个小节前加一段说明文字,希望对后来的破解者有帮助。
我假设本文的读者是有一定水平的程序员,但是对PS汉化还不太熟悉的人。
文中和具体的压缩算法、格式有关的部分我就略提一下,真有兴趣研究的话可以看我的源代码,里面也有注释。汇编代码分析不会说明,我已经附上idb文件,请自行查看,我觉得刚接触R3000A的人看一两段代码熟悉一下也差不多了。
分析文档和全部代码下载:http://download.csdn.net/source/2885723
导出的脚本:http://u.115.com/file/f3cc1a7780
1.文件分析
上手的第一件事情总是观察各个文件。(其实第一件事情应该是放狗搜索一下,如果有别人的研究成果就最好不过。这里假设没有,只能自己分析。)
观察文件名,把这些文件用hex工具打开来看看,对之后的工作也有指导作用。
我建议做成一个Excel表格,方便以后修改。
光盘根目录下文件列表如下:
ANM.PAC
BGD.PAC
BIN.PAC
LICENSEJ.DAT
MUS.PAC
PINK.XA
SCE.PAC
SDW.PAC
SLPS_017.94
SN1_PRO.STR
SN2_OP.STR
SN2_PRO.STR
SN3_PRO.STR
SYS.PAC
SYSTEM.CNF
VCE.PAC
VCP.PAC
其中红色标记的文件含义都比较明显,其他文件后缀都是PAC,应该都是打包文件。
(注: system.cnf有点类似于autorun.ini,SLPS_017.94是主程序,LICENSEJ.DAT应该放在开头的16扇区中,放在这里不知何意,xa是音频,str是视频)
PAC文件的开头是入口表,选择ANM.PAC打开,开头的数据如下:
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F
00000000 00 00 01 00 01 00 18 00 02 00 24 00 03 00 30 00 ..........$...0.
00000010 04 00 37 00 05 00 47 00 06 00 4C 00 07 00 53 00 ..7...G...L...S.
00000020 08 00 57 00 09 00 6A 00 0A 00 6D 00 0B 00 7C 00 ..W...j...m...|.
00000030 0C 00 83 00 0D 00 91 00 10 00 9D 00 11 00 C6 00 ..ƒ...‘......Æ.
00000040 12 00 CC 00 13 00 E4 00 14 00 ED 00 15 00 F8 00 ..Ì...ä...í...ø.
00000050 16 00 FD 00 17 00 03 01 18 00 17 01 19 00 24 01 ..ý...........$.
00000060 1A 00 29 01 1B 00 2F 01 1C 00 3D 01 1D 00 43 01 ..).../...=...C.
00000070 1E 00 4F 01 1F 00 5A 01 20 00 64 01 21 00 7E 01 ..O...Z. .d.!.~.
00000080 22 00 9F 01 23 00 A6 01 24 00 B8 01 FF FF BC 01 ".Ÿ.#.¦.$.¸.ÿÿ¼.
格式应该如下:
2 bytes:编号,00 00,00 01,00 02,。。。一直下去,FF FF表示结束
2 bytes:入口,看起来0x800一段,入口是段号
最大的段号是1bc,1bc * 800 = DE000,文件大小是DE000,应该没有错。
(注:有了以上分析就可以写一个拆包代码,这个很简单,代码见FuckPack)
有些封包从名字上就能知道含义
用Tim_Col扫描一下,Bgd和Sdw中有部分tim格式图片。
用ue观察,Sce中有SJIS编码文本,确认是脚本文件
ANM.PAC 动画
BGD.PAC 背景
BIN.PAC 数据
MUS.PAC 音乐
SCE.PAC 脚本文件
SDW.PAC 剪影
SYS.PAC 系统
VCE.PAC Voice?
VCP.PAC Voice?
另,这些文件在主程序中的编号是:
编号 | 文件名 |
0 | BIN |
1 | BGD |
2 | SCE |
3 | MUS |
4 | SDW |
5 | VCE |
6 | VCP |
7 | ANM |