A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 82487|回复: 126

[原创]PS2游戏汉化教学以及汉化PS2工具下载[2005.12.22最后更新]

[复制链接]

精华
1
帖子
7888
威望
3 点
积分
8060 点
种子
0 点
注册时间
2004-12-4
最后登录
2012-2-25
 楼主| 发表于 2005-12-10 18:40  ·  黑龙江 | 显示全部楼层 |阅读模式
作者:oz01  转贴请注明作者和出处


想学汉化之前先看这张图:



我没别的意思

只是希望大家能够明白

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

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

***贼这个“头衔”就算不来

也会有其他“头衔”

被人骂是免不了的

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

就请往下看

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

都会很快就放弃……

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

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



点击下载

软件列表:

16进制查看:UltraEdit、winhex、Translhextion

PS2媒体转换:cubemedia2、pssplex

镜像修改:CD_DVD.Generator、apache、gd3-iml2iso

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

文本其他:TextPro、菜の数

字库修改:CrystalTile

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

DLL:comdlg32.dll、MFC71.dll、MFC71u.dll、msvcr71.dll、Richtx32.ocx

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

我用的视频剪辑软件是***附带的,没***不能用……
因此就不上传了
推荐大家使用绘声绘影.

精华
1
帖子
7888
威望
3 点
积分
8060 点
种子
0 点
注册时间
2004-12-4
最后登录
2012-2-25
 楼主| 发表于 2005-12-10 20:25  ·  黑龙江 | 显示全部楼层

基本完成

转帖时请不要直接链接我的图片
我的空间流量已经有些吃紧了
如果空间挂了
对谁都没好处



注意

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

下面这张图很重要



除了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

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

用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)をチェックしています。#n抜いたり、电源を切ったりしないで下さい。

2A58E4是文本的开始位置

117是文本的长度

后面就是文本的内容

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

不过很显然它不显示出来

那么它就是控制符

后面的#n也是

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

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



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

之后保存

再用菜鸟工具导入文本:

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

其他的和刚才一样

开始结束地址不同填写

然后点击“文本导入”

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

之后测试



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

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

看到这里就可以了……





字库修改

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

我一般都是靠运气……

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

最典型的就是IF和GUST

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

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

其他游戏不详

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

分辨率固定640*480

截一张有文字显示的图

注意保存格式必须BMP

之后放大图片

仔细查看字体大小

不过这个办法往往没用

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

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

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

不过估计也会有

总之

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

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

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

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

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

目前唯一能用的方法就是利用PS2模拟器

我已经帖在后面了

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

那么我们就要使用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最相近的那个文件

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

就用WINHEX打开刚才提取出的文件中已确定含有字库的那个文件

即1651402-1651792这组数字导出的文件

在里面靠近开头的部分随便找一行16进制数抄下来

再用WINHEX打开含有字库的游戏中的那个文件

按CTRL+ALT+F搜索这行数

把这行数的地址抄下来

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

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

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

把刚才的搜索得到的地址填入“偏移地址”之后打开文件

如果用CrystalTile挨个文件猜字库宽度还是太繁琐

那就用下面这个办法

PS2模拟器+CrystalTile确定字库大小

用PS2模拟器运行到能看到文字的时候

按ESC键暂停

之后选择下图那一项



点击上面的“Raw dump”



再按下图填写数字



之后会生成一个叫“dump.raw”的文件

大概32MB多一点

字库一定在这个文件中

现在用CrystalTile猜字库宽度就轻松多了……



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

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

其实汉化游戏入门并不难

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

自己吓退自己而已

精华
0
帖子
543
威望
0 点
积分
674 点
种子
0 点
注册时间
2005-1-24
最后登录
2015-1-10
发表于 2005-12-10 23:52  ·  吉林 | 显示全部楼层
搞汉化工作的??
啥也不说了,拜一个先!
向游戏界最可爱的人致敬!
三鞠躬……

精华
1
帖子
7888
威望
3 点
积分
8060 点
种子
0 点
注册时间
2004-12-4
最后登录
2012-2-25
 楼主| 发表于 2005-12-11 19:12  ·  黑龙江 | 显示全部楼层
第一次写……
可能会有些遗漏的地方
请大家指正
字库修改部分明天再写
该用户已被禁言

精华
0
帖子
283
威望
0 点
积分
317 点
种子
0 点
注册时间
2004-4-4
最后登录
2020-1-3
发表于 2005-12-11 19:33  ·  云南 | 显示全部楼层
向汉化"达人"们致敬..........

求败者

最后的故事真给力......

精华
38
帖子
19394
威望
49 点
积分
20721 点
种子
7 点
注册时间
2004-4-3
最后登录
2022-12-27
发表于 2005-12-11 19:37  ·  安徽 | 显示全部楼层
感谢OZ版长期以来对模拟器区的贡献,

奖励精华和威望做为鼓励,
希望以后有更突出的表现

骑士

每天都过着麻木的生活

精华
0
帖子
1593
威望
0 点
积分
1669 点
种子
5 点
注册时间
2005-4-9
最后登录
2022-6-14
发表于 2005-12-11 20:30  ·  北京 | 显示全部楼层
除了佩服还好似佩服

精华
0
帖子
830
威望
0 点
积分
839 点
种子
0 点
注册时间
2004-8-13
最后登录
2020-1-15
发表于 2005-12-11 21:19  ·  北京 | 显示全部楼层
先拜过再说....!!!!支持楼主~~~~~~

精华
1
帖子
7888
威望
3 点
积分
8060 点
种子
0 点
注册时间
2004-12-4
最后登录
2012-2-25
 楼主| 发表于 2005-12-11 21:22  ·  黑龙江 | 显示全部楼层
我晕
为虾米就灭有人仔细看涅……

精华
0
帖子
703
威望
0 点
积分
722 点
种子
0 点
注册时间
2004-4-11
最后登录
2024-7-25
发表于 2005-12-11 22:10  ·  湖北 | 显示全部楼层
我能看懂,希望楼主能继续写下去!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-12-28 11:04 , Processed in 0.232882 second(s), 16 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部