2024年1月31日发(作者:)

我没别的意思

只是希望大家能够明白

汉化游戏一定会招致一些人的反感

也不要因为汉化过XXOO就认为自己了不起

卖国贼这个“头衔”就算不来

也会有其他“头衔”

被人骂是免不了的

如果你能忍受这些很“精辟”的语言

就请往下看

否则就算你有天大的本事与热情

都会很快就放弃……

并且会对你自己的自尊心造成极大的损伤

那还不如直接无视本帖……

软件列表:

16进制查看:UltraEdit、winhex、Translhextion

PS2媒体转换:cubemedia2、pssplex

镜像修改:CD_tor、apache、gd3-iml2iso

文本导入导出:CrystalScript、菜鸟工具

文本其他:TextPro、菜の数

字库修改:CrystalTile

码表:Shift-JIS_h(双字节)、ASCII(单字节)、Shift-JIS(B)(单双字节)

DLL:、、、、

使用方法我以后会慢慢添加

我用的视频剪辑软件是电视卡附带的,没电视卡不能用……

因此就不上传了

推荐大家使用绘声绘影

注意

有些汉化工具只支持某种特定的文本编码

下面这张图很重要

除了CrystalTile和CrystalScript以外

其他的全都是ANSI

遇到需要转换编码的地方我就不提示了

游戏显示文字的原理:

在游戏中

不可能每句话都单独做成图片

一般都会有一张图片用来包含全部所要使用的文字

这个图片我们称作“字库”

字库中每一个含有单个文字的小部分都会被赋予一个“代号”

一般都是一个双字节16进制数

所有文字的“代号”集合

我们称之为“氡怼?游戏中的某句话储存为文件的时候

实际上只是储存文字的“代号”序列,也就是文本

例如:在游戏中要显示“我是谁”这三个字

假如在字库中“我”这个字在字库中的“代号”是0001、“是”0002、“谁”0003

那么这句话储存为文件的时候是这样:0001 0002 0003(实际上应该是0100 0200 0300,不过本文并不涉及到这方面)

汉化PS2游戏的特点:

由于PS2硬件资料严重不足

模拟器基本上不能用

因此不能查看内存

不能……

也就是说

只能用最基本的汉化游戏的方法来汉化PS2游戏

目前大部分PS2游戏都没发汉化

能汉化的PS2游戏一定是:

1 使用标准日文编码,也就是SHIFT-JIS

2 文本没有压缩,用16进制查看软件直接就能看到文本

3 PS2模拟器能运行到有文字出现的画面,无论速度如何、画面怎样、在这之后怎样

PS2英文游戏目前没法汉化

除非它用的也是日文字库

当然这就不太现实了……

汉化PS2游戏的原理:

由于游戏显示出来文字就是文本+对应的字库

对应关系我们没法改

但是文本和字库还是有可能修改的

如果字库改不了

那就只能用日文汉字来汉化游戏

如果连文本都没法改

那就真的没办法汉化了……

汉化游戏的大概步骤:

我们先要把文本从游戏文件中提取出来

以特定的格式在电脑上保存为文本文件

之后找字库以及判断字库是否能修改

之后进行翻译

如果字库改不了

那么翻译的时候就要避免使用日文汉字中没有的文字

翻译完毕之后

直接用导出文本时用的码表将文本导入

之后测试……

如果能改

则要注意别用太过生僻的汉字

翻译完毕之后

统计字数

重新制作码表

用这个码表修改字库以及文本导入

之后测试……

不改字库更容易一些

不过日文汉字里面没有“你”“他”等常用称谓代词……

很多字要到用的时候才知道闹心……

文本修改

查找文本:

需要使用16进制查看软件

常用的主要是这三个:UltraEdit、winhex、Translhextion

UltraEdit最常用

Winhex读取文件时可以不完全读取,这一点非常重要,因为PS2游戏中的文件经常上G……,用其他2个的话……那速度实在是慢得让人发狂……,但是此软件有个缺点……使用日文字体的时候会出现一些小问题……

Translhextion支持自定义码表

PS2整个游戏绝大部分都超过1G,直接用16进制查看软件挨个文件查看是不可能的,因此我们先要排除一些肯定没文本文件……PS2游戏媒体文件,PSS结尾的一般都是动画,以

sound、BGM、mov等命名的文件或者文件夹也基本上都是影音文件,查找文本的时候直接跳过

以《混沌时代4?新天魔界》开头的记忆卡识别画面为例:

上图是完全没经过修改的截图

下面我们先在游戏中寻找这句文本

在PS2游戏中

在根目录下总会有一个文件名是由4个英文字母+下划线+3位数字+.+2位数字这样的文件

这个文件是PS2游戏的启动文件

一般叫做elf文件

例如《混沌时代4?新天魔界》的elf文件名是:SLPM_655.72

很多PS2游戏都会把和以及卡有关的文本放在这个文件里

用UltraEdit打开这个文件

按Ctrl+F出现下面的选项

查找93 64 8C B9

这是日文汉字“电源”的16进制码

找到所要找的文本之后:

注意左边以“h”结尾的数字,

这个数字就是所选内容在文件中的位置

在文本导出的时候会用得到

如果看不到日文

就选

“查看”――“设置显示字体”――MS UI Gothic――在“脚本”里面选择日文

“查看”――“十六进制/列块字体”――MS Gothic――在“脚本”里面选择日文

我们可以看到含有所需文本的部分是从002a58d0开始,到002a5950结束

记下这两个数

之后打开菜鸟汉化工具

填入刚才找到的开始和结束地址

随便打个名称

选择单双字节ROM

在“打开ROM”这一项里打开SLPM_655.72(默认会看不到这个文件,这时要在文件类型里面选择“全部文件”)

码表就用我所提供的相应的码表

要注意

“填充字节”那里一定要填写

我一般填写8140

也就是在游戏中显示空格

有兴趣的话大家可以试试看不填写会怎样……

点击导出文本

找个地方保存

打开刚才导出的文本文件

我们会看到这样一句话:

2A58E4,117,#Scale[0.8]#Speed[0]#Color[0]メモリ`カ`ド(PS2)をチェックしています。#niいたり、电源を切ったりしないで下さい。

2A58E4是文本的开始位置

117是文本的长度

后面就是文本的内容

#Scale[0.8]#Speed[0]#Color[0]也算文本的一部分

不过很显然它不显示出来

那么它就是控制符

后面的#n也是

控制符具体是干什么的就要对照着游戏截图具体分析了

一般都是改变颜色、换行之类的作用

下面我们把“メモリ`カ`ド”改为“记忆卡”

之后保存

再用菜鸟工具导入文本:

在“读取译文”中选择刚才保存的文本文件

其他的和刚才一样

开始结束地址不同填写

然后点击“文本导入”

把导入修改文本之后的SLPM_655.72替换游戏中的原文件(具体方法参考/ps2hard/)

之后测试

メモリ`カ`ド已经变成记忆卡了

如果只是用日文汉字汉化的话

看到这里就可以了……

字库修改

查找字库目前最好的办法应该是用PS2模拟器……可惜我暂时不会……有待继续研究……

我一般都是靠运气……

不过每个游戏开发小组的习惯总是差不多的

最典型的就是IF和GUST

这两个公司目前习惯把字库放在elf文件里

《混沌时代NEXT》则是单独一个字库文件

其他游戏不详

查找字库之前我们我们要用PS2模拟器使用软加速插件

分辨率固定640*480

截一张有文字显示的图

注意保存格式必须BMP

之后放大图片

仔细查看字体大小

不过这个办法往往没用

有的游戏字库中每个文字的大小和显示出来的大小不同

例如PS上的《鬼魂力量?爱与邪恶》

在PS2上我还没找到这样的游戏

不过估计也会有

总之

会对查找字库有一定的帮助就是了……

由于字库不可能有什么关键字查询……

因此往往还是要靠运气……

在上百MB甚至上G的文件中寻找完全未知的某张图片……

基本上和大海捞针没什么两样……

假如我们确定某个文件中一定含有字库

那么我们就要使用CrystalTile来修改

还是以《混沌时代4?新天魔界》为例

我们已经确定它的字库在elf中

用CrystalTile打开SLPM_655.72

我们会看到一堆绿色小方格

这游戏的字体大小我们根据游戏截图判断

大概是25*25以内

那么在长度宽度分别里填入25

之后在“不重组”那里重新选择一次不重组

我们发现方格变大了

还是一堆绿色小方格……

别着急

拖动滚动条慢慢往下拉

这时候就要考验眼力了……

BINGO!文字发现!

为了看着方便

我把缩放改为1

所以方格变小了

显而易见

字体是斜的

原因我也解释不清楚

不过无所谓

我们只要知道这种现象说明字体大小选的不正确就可以了

既然已经能辨认出来字体

那么估计大小也已经很接近了

试一下24*24

BINGO!字体大小正确

之后我们按Ctrl+方向键左右来调整文字使其与方格对齐

我们经过观察发现

字库的汉字与码表中的汉字都是一一对应的

很幸运

这游戏除了文本编码以外

连字库也是按照标准的SHIFT-JIS编码排列的

这使得我们修改字库变得极为简单

我个人认为用CrystalTile修改字库是最方便的

因为用它我们只需要先选定起始位置

之后在Tile编机器里面选好字体并打开一个码表

之后会出现什么效果

我建议大家自己看……

注意字体大小一定要选好……

否则就会变成芝麻大小……

另外要注意

即使是标准SHIFT-JIS的字库

有些也有点不同

在SHIFT-JIS编码中

以7F、FD-3F结尾的双字节编码都没有对应的汉字

有些游戏的字库里面去掉了这些码表对应的汉字图片

有些还保留7F,或者7F、FD、FE、FF

《混沌时代4?新天魔界》就保留了这些空位

CrystalTile是按照码表挨个往方格里面填汉字

不管汉字前面的编码是多少

因此一定要注意让码表与字库相对应

否则一定会出现汉字错乱的现象

下面还是以《混沌时代4?新天魔界》为例

我只打算修改从“亚”到“碗”之间的汉字

因此在码表里删除在“亚”之前以及在“碗”之后的全部内容

现在码表里都是日文汉字

大部分都和繁体汉字差不多

这时候TextPro就该出场了……使用方法我就不介绍了……一目了然

把码表中的汉字转换为简体汉字之后

用鼠标点击“亚”这个字所在的方格

在Tile编机器里面选择24号字体、楷体加粗

之后点击TBL打开刚才改好的码表

等待几秒钟……

完成、保存文件

之后测试

PS2模拟器+IsoBuster字库位置定位法

只要是PS2模拟器能显示出来汉字的游戏

就一定能找到其字库的具体位置

不过如果字库加密压缩过的话……

找到位置也没用……

目前遇到这种情况基本上连神仙也没法解决……

使用此方法之前

必须知道字库的具体宽度

下面以某个已知字库宽度(320)的游戏为例

运行PS2模拟器之前

先在“Misc”这一项中选中“Enable Console”

之后运行模拟器

运行到出现有文字的画面

之后按键盘上的Esc键停止模拟器

把后面命令提示符框里面中

DvdRead:后面的数字记下来

连续非常相近的数字只记下开头(以后简称“数A”)和末尾(以后简称“数B”)

所有的数A和数B要一组一组的互相对应

因为这个数字就是PS2模拟器从游戏镜像中读取数据的位置

也就是LBA值

大家就记住1LBA=2048字节=2K就行了……

例如:

DvdRead:789456

DvdRead:123456

DvdRead:123466

DvdRead:123476

DvdRead:9234

这时123466就不用记下来了

现在用IsoBuster查看此游戏的镜像

在“Session1”上点击鼠标右键选择“抽取数据”

之后把刚才记下的数字填上

数A对应起点地址

数B对应终点地址

千万别填错了

抽取之后随便起个名保存

然后填下一组数

再另起个名保存

记下每个文件和是用哪组数抽取

用CrystalTile打开这些文件

判断其中哪个文件中含有字库

由于刚才已经知道字库的宽度

那么现在就轻松多了……

之后我们在1651402-1651792这组数字导出的文件中找到了4BPP的字库

再用IsoBuster打开游戏镜像

之后就找LBA值与1651402和1651792最相近的那个文件

假设那个含有字库的文件非常大

那么就要计算字库在这个文件中的起始位置

(“数A”-“字库所在文件的LBA值”)*2048

如果为负那么大概你找的文件就不对了……

再把所得的数用计算器转换为16进制数

当我们用CrystalTile修改字库的时候

由于这个含有字库的文件非常大

因此CrystalTile会提示“打开局部文件”

把刚才的16进制数填入“偏移地址”之后打开文件

虽然我没试过

不过理论上应该可行

如果出错的话就是我的计算公式有问题……

这个思路绝对正确

以上内容除了极少部分是GXB教的以外

其他的基本上都是我自己慢慢积累出来的经验

其实汉化游戏入门并不难

只是大家总感觉汉化游戏多么神秘

自己吓退自己而已