Wonders Swan卡带ROM游戏翻译指南:以《魔卡少女樱》为例的图形、文本和代码修改挑战

Hilltop

总结:

本视频深入探讨了Wonders Swan卡带ROM游戏《魔卡少女樱》的汉化挑战与技术。主要内容包括:

  • 卡带ROM与光盘系统的区别:详细说明了卡带ROM特有的Bank(内存块)寻址和Bank切换机制,以及其对数据访问的限制。
  • 图形数据的解密:解释了游戏如何使用图块、图块地图和调色板来高效存储图像,并介绍了图块转置等优化手段。
  • 文本处理的复杂性:揭示了游戏字体采用动态可变宽度(Kerning)的独特实现,以及文本编码和字符范围扩展的必要性。
  • 调试与代码修改:演示了如何使用汇编代码进行调试,修改游戏逻辑以支持英文细体字,并修复了文本渲染过程中遇到的各种bug。
  • 文本空间查找:介绍了如何利用ROM中未被充分利用的Bank空间来存储翻译后的英文文本。 最终,视频展示了成功实现英文翻译后的游戏画面,强调了老旧卡带系统逆向工程的乐趣与成就。
    光盘与卡带系统对比
    光盘与卡带系统对比 [ 00:00:20 ]

光盘与卡带游戏的翻译挑战对比 [00:00:22]

视频开篇介绍了卡带ROM游戏翻译的特殊性,并与作者之前主要从事的光盘系统游戏翻译进行对比。

光盘系统的数据访问 [00:01:28]

光盘系统的数据加载与处理
光盘系统的数据加载与处理 [ 00:01:30 ]

卡带系统的独特性 [00:02:29]

Bank寻址的酒店比喻
Bank寻址的酒店比喻 [ 00:04:50 ]
- Wonders Swan的Bank结构 (C0-C3) [00:06:22] - Wonders Swan有四个Bank:C0到C3 [00:06:24] - C1保留用于RAM,不可用于ROM [00:06:25] - 每个Bank占据特定的内存地址范围(例如C1占用10K-20K) [00:06:33] - C0是“宽”Bank,占据40K-100K,但有特定限制 [00:06:50] - 寻址示例与只读特性 [00:07:00] - 游戏需访问ROM中0x110000的数据块时,Mapper会将其映射到可用的Bank(如C3)的内存地址(如30K) [00:07:02] - ROM Bank通常是只读的,RAM Bank可读写 [00:08:00] - Bank切换的静态行为 [00:08:36] - Mapper的行为是预先设定而非动态的 [00:08:52] - Bank中的数据,如指针,会假设其最终将被映射到的地址 [00:08:59]
Bank切换的静态行为警告
Bank切换的静态行为警告 [ 00:08:51 ]

Wonders Swan指针 [00:09:08]

Wonders Swan指针结构
Wonders Swan指针结构 [ 00:09:09 ]

数据查找:指针表 [00:10:21]

图形数据分析与替换 [00:11:11]

翻译游戏需要找到并编辑文本和图形。本节从图形入手,因为对图形的理解是理解文本的基础。

早期与后期90年代的图形差异 [00:11:29]

图块地图(Tilemap)详解 [00:12:16]

图形存储示例:人物肖像 [00:14:05]

图块翻转(转置)以提高效率
图块翻转(转置)以提高效率 [ 00:20:27 ]

图块、图块地图与调色板的组合 [00:23:33]

精灵(Sprites) [00:24:27]

图形替换算法 [00:25:10]

替换图形的算法及效果
替换图形的算法及效果 [ 00:25:06 ]

文本数据分析与修改 [00:26:11]

文本处理是翻译工作的另一个核心部分,其复杂性常常源于字体特性和编码方式。

字体结构 [00:26:19]

文本存储 [00:26:42]

字距调整(Kerning)与变宽字体(VWF) [00:29:06]

调试与汇编代码修改 [00:32:27]

为了解决文本渲染的局限性,需要进行调试并修改游戏的汇编代码。

Wonders Swan CPU架构 [00:32:33]

调试方法 [00:33:23]

游戏文本渲染机制 [00:34:06]

修复错误 [00:35:32]

文本空间查找与最终结果 [00:38:31]

英日翻译通常面临文本长度增加的问题,需要寻找额外的存储空间。

卡带ROM的文本空间优势 [00:38:47]

英文字体 [00:39:25]

最终翻译效果 [00:40:34]

翻译过程总结 [00:41:05]