FC 魂斗罗汉化日记 (第二日)

第二日 - 序章汉化

首先搞懂剧情在说什么。这部分参考了魂斗罗剧情、百科以及英文版。

日文原版剧情

英文翻译版剧情

知道汉化的文字后,就需要修改程序代码了。

最初的中文实现想法是这样的:

  • 两个字节告诉程序,哪个 PPU 需要切换到哪个贴图集,以及切换的序号。
  • 中文字符,其中前两位为 10,让程序知道这是中文字。

觉得可行之后,就想办法优化一下,让程序方便显示:

汉字字模分割

这样,每个中文字符就只需要占用一个字节。程序寻找的话,只需要左移两次,然后依次 +1 就能得到需要显示的贴图了。

为了方便,糊了个简单的小程序辅助我:

魂斗罗字库工具

然后就是依次导出位图,画图复制,然后使用 YY-CHR 导入到 Rom 内。

中文显示代码

参考大字汉化教程,使用 VirtuaNES Debug 下断点找到 CBB7。这一条指令负责写出数据到 NamedTable。

根据上下文,得知程序会循环读取 $0700 偏移处的数据并显示,对其下写入断点,定位到 04:97FD

另外,切换 PPU 图案的函数在 07:FACE,就是写出你想切换的 BANK 到 $07F0 + PPU,然后调用这个函数就行了。

对话数据读取代码:

中文显示代码:

* 注释可能有一些地方写错了,不要在意细节..

中文汉化效果

Post your comments here