GB/GBC汉化经验分享之四--制作码表 心得研究

五级用户 RangerMarsh 14天前 525

四、制作码表


字库我们可以通过软件直观的看到,但码表是要我们自己去整理的。每个游戏用到的字符都有不同,游戏制作者制作的字库也是各种各样,对应的编码根据各个游戏的程序的需求也会千差万别。所以每个GB&GBC游戏的码表都要我们自己去制作。

简单的流程是,我们先把字库中的字符肉眼或是软件识别出来,按顺序排好,再想办法找出每个字在游戏中对应的编码,最后整理成下面这种格式的文档(分别对应单字节和双字节的码表)。

4-01.png

4-02.png

之前我们通过观察,已经发现《超时空要塞7》这个游戏大概有3块字库,我们先把这三块字库(起始地址分别是A819AAC1F0F01DA)中的文字整理出来。这个没什么技术含量,都是15x15的大字,很好辨认的。

整理完看到第一块有204个字符,第二块有248个字符,第三块有237个字符。因为我们这里的字符数量超过了256,所以应该是用双字节编码。下面我们来想办法找出每个字对应的编码。

进入游戏出现的第一个对话框如下,我们在CrystalTile2中并没有观察到这段文字以图片形式出现,所以应该是用编码来实现的。

4-03.png

我们看到的是下面的文字,

銀河を調査中の

マクロス7艦は

通过和刚才整理的字库比较,我们发现“マクロス7”都在第一块字库中出现,并且挨得很近。我们就先试着找出这几个字的编码。我们从出现的第一个字符“7”开始按顺序给刚才整理出来的字符编号,注意编号要按照16进制的来,如下面这样。

4-04.png

对应到“マクロス7”这五个字符的编码分别是“1F 08 28 0D 00”

现在我们在CrystalTile2中切换到“十六进制编辑器”模式。

4-05.png

选择上方“工具”菜单的“相对搜索”。

4-06.png

在弹出的搜索框中如下操作,右面选择“双字节”,值这里输入第一个字符的编码“1F”。点击增加。

4-07.png

继续把5个字符的编码都添加进去。

4-08.png

点击搜索。显示找到0个符合条件的结果。

4-09.png

那就删除最后一个数据再试一下,这次提示找到了4个符合的结果,并显示出了对应的搜索结果。前面是编号,中间是地址,后面是编码。

4-10.png

但这里给出的编码似乎和我们搜索的不太一样,这是因为我们使用相对搜索,是按照这几个字符之间的相对位置来搜索的,只要字符之间间隔和我们输入的一样都会被搜索出来。

现在我们搜索到的四组编码都是一样的,所以大概率是对的。我们先记下这些地址和编码。观察这四个字符的编码

4-10-1.png

后一个字节都是01,前一个字节和我们之前按照顺序编码的间隔一致。所以我们可以大胆的猜测“マ”后面的“ミ”的编码是1F01。那就来验证一下。

我们跳转到第一个地址F448C这里,找到刚才的编码1E 01 07 01 27 01 0C 01

4-11.png

把这里的1E01改为1F01

4-12.png

保存后打开游戏,运气不错,这里的本来应该是“マ”的地方变成了“ミ”。(如果不成功,可以继续把其他3个也分别改一下试试。)

4-13.png

按照这个规律,我们可以把第一块字库中“ア”开始的字符的编码都给找到,从00017101

那么刚才的那句话中,后面三个字符“7艦は”的编码就应该是5900 2B02 1900

4-14.png

如果从第一块字库的第一个字符“”开始编号(00),は和7分别对应1959。因此这个码表的格式很可能是前一个字节表示顺序,后一个字节表示分组。因为我们已经知道了现在F448C这一处文本在游戏中出现的位置,就可以大胆的在这里测试我们的想法,最终可以把三块字库中每个字符的编码整理出来。

实际应该是有六块字库,之前看到的每一大块还细分为两小块,对应的起始位置和编码范围如下

4-14-1.png

我们把每个字符及编码按照如下的格式保存到txt文档中。等号前面是编码,等号后面是字符。

4-15.png

注意保存txt文档时,编码选择“UTF-16 LE”。

4-16.png


上一篇:GB/GBC汉化经验分享之三--字库和码表
下一篇:Retroarch模拟ps2么?原来有现在怎么都没了?
最新回复 (2)
  • 三级用户 逆转阿哲 14天前
    0 2

    为啥这个游戏用6个字库,字符不同么?从目前看平假名+数字00,片假名01,汉字02,后面三个是啥?英文全角半角标点?一般游戏多字库?

  • 五级用户 RangerMarsh 13天前
    0 3
    逆转阿哲 为啥这个游戏用6个字库,字符不同么?从目前看平假名+数字00,片假名01,汉字02,后面三个是啥?英文全角半角标点?一般游戏多字库?

    因为一个字节只能有256种可能(00~FF),游戏中用到的汉字超过256,所以需要不只一组的空间,这里就要用到(02,03,04,05对应的编号)。其实可以理解为1个包含689个字符的字库,只不过把0~100的放在一块,101~200的放在一块,以此类推。

    • 老男人游戏网配套论坛
      4
        立即登录 立即注册
发新帖
本论坛禁止发布SWITCH和PS4相关资源,若有其他侵权内容,请致邮3360342659#qq.com(#替换成@)删除。