(PS)賭博黙示録カイジ汉化笔记(一)

来源:互联网 发布:两个iphone软件同步 编辑:程序博客网 时间:2024/05/18 00:54

前言

 

  本文记录我的第一个尝试汉化的作品《賭博黙示録カイジ》的汉化过程,希望对想要加入到PS汉化行列的人能够提供一些帮助。这个笔记写成于去年,也就是2009年的10月份左右,由于是第一次接触汉化,很多东西都不了解,所以写的内容也比较基础。适合没有接触过汉化且对PS汉化有兴趣的程序员。

 

  但是本文提到的基础知识需要事先看过,基本上其他游戏教程提到过的东西我都不会再提起。相对于其他教程,我认为难度属于中上。

 

 

〇.基础知识和资源

施柯昱的教程是一定要看的,名字就叫做《PS游戏汉化教程》,他的主站已经关闭,网上有梁文豪制作的电子书,可以到csdn去找找。不过教程中提到的工具下载链接都已经断了。

 

Oz01也有一篇针对PS2的汉化教程,名字叫做《ps2游戏简明汉化教程和工具下载》。虽然是针对PS2,但是关系不大,对PS也可以适用。不过他的主站也已经关闭,现在只能找到别人的转帖,同样,教程中提到的工具打包下载也没有了。

 

Agemo的主页肯定要去看看,里面的工具和资料要仔细看。初期比较主要的工具是isopatcher,其他工具会在之后提到。他的主页是http://www.enixfans.com/html/agemo/

 

  模拟器使用ePSXe,现在很多汉化都是以补丁形式发布,这是PPF格式(PlayStation Patch File)的文件,工具和文档可以看这里http://www.megagames.com/ps2/ps2_ppf.shtml,结构很简单我就不介绍了。

 

  光盘镜像基本的有isoimg,我观察下来似乎没有区别,img文件可以当做iso用。

 

 

 

一.寻找字库

  施柯昱的教程把字库放到了第一部分,我也深以为然,如果找不到字库,即便游戏使用的是标准的SHIFT-JIS编码,那也只能使用日文常用汉字,这种限定使用字的要求,简直就是在为难翻译人员。就算硬找相似的字来代替,看得人也总觉得不爽,宣传起来也不敢提完美汉化。(PS:这里提这么一句是对oz01那篇文章的一些看法。PS2:最近看到《三国志大战DS》就是这样汉化的,效果如何可自行查看)

 

  常言说,没有见过猪跑,总吃过猪肉。没有汉化过PS游戏,总玩过PS游戏,如果仔细看过汉化组的说明文档,就应该有这么一个印象,字库有两种,一种是存放在bios中的,另外一种是存放在光盘中的。Bios是实体机的一部分,对于模拟器玩家来说只要替换bios文件即可,但是对于要刻盘放到实体机中来玩的情形,使用bios字库的汉化游戏是不行的。

 

  据我所知,《格兰蒂斯》是使用bios字库的(Agemo作品),非高的koro汉化的《名侦探柯南·三人的名推理》,是把bios字库改成光盘字库的。Koro着手进行的《Chrono Cross》,从他的说明来看似乎菜单使用了bios字库,文本使用了自带字库。

 

  找字库的工具,shikeyu推荐的是TPL,这里还是推荐一下oz01介绍的CristalTile2,可以到TGB去找。

 

  上手的时候我推荐先找一下bios字库,也就是ePSXe模拟器中bios目录下的Scph1001.bin文件(这里附带提一句,到ePSXe官网下载的话是没有这个bios文件的,因为这个镜像受版权保护,不过国内很多下载站都自动打包了这个文件)。寻找字库的方法和提示分别在oz01shikeyu的两篇教程中。我这里就不多说了。

 

  找到后把字库抹掉,变成全0或者其他有规律的样式,另存为一个新文件。这就成为了判断一个游戏是否使用bios字库的一个工具,只要在ePSXe中更改bios文件,打开游戏还能看到文字的说明不是使用bios字库,看不到文字的就说明是使用bios字库。

 

  这里我还要插点话,一个实验的理论看起来是很对的,结果也蛮符合预期,但还是要小心,在以此为基础继续工作之前,最好还是反复验证一下。比如用上面我提到的几个游戏做一下实验,文字显示是否符合预期。我用的是《格兰蒂斯》和《最终幻想战略版》(shikeyu作品)。这个“猜想—正反验证”的过程我下面会不停地进行,虽然看起来挺花时间,但是总比路走错好。

 

  那么再回到《賭博黙示録カイジ》来,实验表明该游戏不是使用bios字库,后来我就知道理由了,该游戏是用竖排的文字的,有些标点符号竖排后在bios字库中没有,所以只能使用自己设计的字库

 

  现在确定字库在光盘中,那么在哪里呢?根据shikeyu的教程说,往往文件名和font有关,oz01的教程中提到很有可能放在主程序中。结果的确是在主程序中。

 

  这里还是很顺利的,字库没有压缩,每一个字是16*13的点阵,当然也可能只是13*1316只是为了双字节对齐。对一个标准的字库来说,第一个字符应该是空,最后一个是“腕”。对于16位宽的字库,这里有个心得,首先找到0 H H 0(30 00 48 00 48 00 30 00)这四个字(不是字母O,是数字0),上面应该还有连续排列的40 00 20 00 10 00。这是空字符后面的两个标点顿号(、)和句号(。)。计算(30 00的地址 - 10 00的地址) / 2就是字模的高度。

 

 

 

其中最后一个30 00的地址是6B42810 00的地址是6B40E,两者相减是1A bytes1A bytes / 2 bytes (16 bits) = D (13),所以字库是16 * 13,那么简单可以计算得到字库起始位置是6B40E + 2 – 1A * 2 = 6B3DC,进入Tile视图,偏移地址设为6B3DC,宽度和高度设成1613,最后显示如下:

 

 

 

 

  最后一个字是“腕”,点击可以在右下角看到地址8161C,那么字库总共有(8161C - 6B3DC / 1A + 1 = 3489个码字。基本上足够一个大容量的RPG游戏使用了。

 

  那么下一步依然是确认,将字库抹掉,然后用isopatcher写入镜像(注意备份)或者制作ppf,用ePSXe打开游戏,如果文字不再显示,说明字库找对了。

 

  关于isopatcher的用法参考程序附带的说明文档和Agemo主页上的《PS光盘格式简介》,这里不再赘述。

Ppf只提供了比较两个不同的光盘镜像来生成补丁的工具,所以这里只能手工生成一个ppf,比较麻烦一些。我考虑以后写一个程序。

 

 那么,最后用ePSXe打开游戏,确认了文字的确不再显示,找字库的工作到这里就结束。

 

原创粉丝点击