Wonders Swan卡带ROM游戏翻译指南:以《魔卡少女樱》为例的图形、文本和代码修改挑战
Hilltop
总结:
本视频深入探讨了Wonders Swan卡带ROM游戏《魔卡少女樱》的汉化挑战与技术。主要内容包括:
- 卡带ROM与光盘系统的区别:详细说明了卡带ROM特有的Bank(内存块)寻址和Bank切换机制,以及其对数据访问的限制。
- 图形数据的解密:解释了游戏如何使用图块、图块地图和调色板来高效存储图像,并介绍了图块转置等优化手段。
- 文本处理的复杂性:揭示了游戏字体采用动态可变宽度(Kerning)的独特实现,以及文本编码和字符范围扩展的必要性。
- 调试与代码修改:演示了如何使用汇编代码进行调试,修改游戏逻辑以支持英文细体字,并修复了文本渲染过程中遇到的各种bug。
- 文本空间查找:介绍了如何利用ROM中未被充分利用的Bank空间来存储翻译后的英文文本。
最终,视频展示了成功实现英文翻译后的游戏画面,强调了老旧卡带系统逆向工程的乐趣与成就。
光盘与卡带游戏的翻译挑战对比 [00:00:22]
视频开篇介绍了卡带ROM游戏翻译的特殊性,并与作者之前主要从事的光盘系统游戏翻译进行对比。
-
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]
Wonders Swan指针 [00:09:08]
翻译游戏需要找到并编辑文本和图形。本节从图形入手,因为对图形的理解是理解文本的基础。
早期与后期90年代的图形差异 [00:11:29]
图块地图(Tilemap)详解 [00:12:16]
图块、图块地图与调色板的组合 [00:23:33]
文本处理是翻译工作的另一个核心部分,其复杂性常常源于字体特性和编码方式。
字距调整(Kerning)与变宽字体(VWF) [00:29:06]
为了解决文本渲染的局限性,需要进行调试并修改游戏的汇编代码。
Wonders Swan CPU架构 [00:32:33]
- 16位NEC V30 MZ,Intel 8086变体 (x86) [00:32:48]
- Wonders Swan的主CPU是16位NEC V30 MZ,是Intel 8086的变体 [00:32:48]
- 令人惊讶地与现代x86架构相关联 [00:33:08]
英日翻译通常面临文本长度增加的问题,需要寻找额外的存储空间。
- 利用“大Bank”中未使用的空间 [00:38:55]
- 卡带ROM游戏在这方面比光盘游戏更容易 [00:38:49]
- 游戏中的“大Bank”(如C0)的数据在加载后不会改变,因此可以利用其中所有12个ROM Bank中的大量空闲空间来存储额外文本 [00:38:55]