PCE-CD 游戏汉化教程
猫箱_7
编辑于 2025年11月09日 19:16

调试器

mednafen 模拟器

https://github.com/pce-devel/mednafenPceDev/releases

分析 PCE 游戏的话,不推荐下官网的 mednafen 模拟器,推荐上面链接的改版 mednafen。因为原版模拟器的调试器文字比较小,这个版本做了大字优化,并新增了一些调试功能。

使用方法:

命令行输入:mednafen.exe "游戏cue文件路径" 开始游戏,或者在 mednafen.exe 上右键 => 创建快捷方式,在快捷方式上右键 => 属性,在目标这里追加后缀:"游戏cue文件路径"

其它命令行参数:https://mednafen.github.io/documentation/#Section_command_line

常用快捷键:

  • Alt + D:调出调试器

  • Alt + D,Alt + 1:切到调试器的汇编页

  • Alt + D,Alt + 3:切到调试器各种内存的信息页,用 "逗号" 和 "句号" 快捷键切换内存,显存,调色板等信息

  • Alt + D,Alt + 4:切换到调试器的日志页,按 T 后,可以在输出文字时看到相关日志

  • G:汇编页上跳到指定汇编地址

  • 空格:在当前汇编地址下断点

  • S:单步执行

  • R:继续执行

  • Ctrl + 0:精灵图边框高亮

  • Ctrl + 1:开关背景图

  • Ctrl + 2:开关精灵图

完整快捷键:https://mednafen.github.io/documentation/debugger.html,还有内存/显存读取/写入断点,导出/导入内存/显存等功能

注意:使用 Alt + D 打开调试器时,默认会自动暂停游戏,如果想继续游戏,就 Alt + 1 切到汇编页,然后按 R 继续;如果不想每次一调试就自动暂停游戏,可找到模拟器目录下的 mednafen.cfg,把 debugger.haltondebug 的值从 1 改成 0,重启

PCE 教程

PCE 官方文档集

https://pan.baidu.com/s/14naspu-6n31qGFalZAHRDQ?pwd=jwba

核心资料,如果只选一个链接的话我会给这个,因为后面很多博客和网站不过是它一些内容的重复,且里面提供的信息可与 mednafen 调试器相互印证

一、《HuC6280 - CMOS 8-bit Microprocessor Software Manual.pdf》:调试器汇编页说明书

二、《HuC6270 - CMOS Video Display Controller Manual.pdf》:调试器 "VRAM" 页,"SAT" 页说明书。主要知道图片有两种格式,精灵图和背景图。显存由精灵图属性表(SAT),背景图属性表(BAT),精灵图(SG)和背景图(CG)四部分组成

三、《HuC6260 - CMOS Video Color Encoder Manual.pdf》:调试器 "VCE Palette RAM" 页说明书。PCE 的两种图片格式都是是索引图像。索引图像并不直接存储每个像素的RGB颜色值,而是每像素存储一个颜色索引值。这些索引值结合一个预定义的调色板(颜色查找表)得到RGB颜色,颜色表就存在 VCE

四、《HuC6280 - CMOS Programmable Sound Generator Manual.pdf》:调试器 "PSG ..." 页说明书,音频文档

五、《Hu7 CD System - BIOS Manual.pdf》:bios 文件的函数文档。bios 文件之于 pce,就像 dll 文件之于 windows,它提供函数实现,ROM 只管调用

比如搜索 GETFNT (一个重要的文字打印的 bios 函数)

  1. 可以知道这个函数接受一个 sjis 编码,字体尺寸和一个内存地址。然后找到字库里 sjis 码对应的字模数据,复制到指定内存地址;

  2. 可以知道这个函数编号是 E060,意味着可在调试器下断点 E060 断到;

  3. 可以知道输入参数 _AX (对应零页内存 F8 F9) 是 sjis 编码,_BX (对应 FA FB) 是字模数据输出地址,_DH(对应 FF)是字体尺寸,输出参数 AREG(对应寄存器 A)是编码是否正确

注:_AX, _BX 等符号对应的内存含义,在 bios 文档 44 页,或者 https://blockos.github.io/HuDK/doc/files/include/system-inc.html 可以查到

6502 汇编语言入门

https://codediy.github.io/nes-zh/easy6502/index.html

看完这个教程就可以上手分析游戏的汇编了,不过 Huc6280 的汇编语言是 6502 的超集,一些专有指令教程没提到,可以把 《HuC6280 - CMOS 8-bit Microprocessor Software Manual.pdf》上传 deepseek 之类的 AI,然后问具体指令什么意思

Translation Patch Post 2: Isolating Text & Print Function

  • https://www.pcengine-fx.com/forums/index.php?topic=23355.0

  • https://www.pcengine-fx.com/forums/index.php?topic=23352.0

  • https://www.pcengine-fx.com/forums/index.php?topic=23357.0

  • https://www.pcengine-fx.com/forums/index.php?topic=23364.0

新手翻译教学,作者一共发了 4 篇,Post 2 这篇最有用,其它的大概看下就行,因为我们不是英化,不用搞打印函数

Lesson 1 - Hacking Team Innocent PCFX (Part 1)

https://www.youtube.com/watch?v=KR8fRpvbFKU&t=574s&ab_channel=esperknight

虽然是 pc-fx 游戏,但同样用的是 mednafen 工具,领会操作和思路就行

PC Engine/TurboGrafx-16 架构

https://www.copetti.org/zh-hans/writings/consoles/pc-engine/

PC Engine 架构科普文,虽然里面提到的官方文档集都有,但它总结得很好,而且还是中文的

MagicKit Homepage

www.magicengine.com/mkit/

nes 和 pce 程序编译器,但工具不是重点,重点是这个网站 DOC 页面的电子书文档。它讲解了 CPU,内存结构,图片数据结构等细节,虽然在官方文档也有,但这里写得更好

Huc6280 Assembly programming for the PC Engine

https://www.chibiakumas.com/6502/pcengine.php

换个角度讲 pce 的内存和显存结构

PC-Engine ASM programming (Youtube)

https://www.chrismcovell.com/PCEdev/

pce 自制程序系列教学视频。不止汇编,还讲了调试器使用,声音,图像,文字等细节

online guide for PC Engine homebrew

https://obeybrew.com/tutorials.html

pce 自制程序教程

Elmer's PC Engine Programming Resource Links

https://pcengine.proboards.com/thread/218/elmers-engine-programming-resource-links

pc engine 论坛神贴

字库相关

《PC 机汇编语言实战精解》字模原理

  • genie52.com/asmbook/page240.html

知乎 - 游戏汉化时使用的像素字体

  • https://zhuanlan.zhihu.com/p/573922877

pce-cd 的 bios 有两个字库,一个是 16x16 字库,每个字模是 (16x16=)256 比特,占 (256/8=)32 字节;一个是 12x12 字库,每个字模占 18 字节。之前提过 GETFNT 会把字模数据输出到指定地址,字模数据指的就是这 32 或 18 字节

16x16 字库从 bios 文件的 0x10000 处开始,12x12 字库从 0x30000 开始,每个字库都是 3418 个字

如果你做到修改字库这一步,那么一定会考虑这个问题——“字库里每个字的 sjis 编码,与这个字的位置序号的映射关系是什么?”。这个问题我分析过,整理在:https://pan.baidu.com/s/1tYPd3SBQWwENrgbR9VgkCg?pwd=bhwi

注意:修改字库时,16x16 字库要选择 16x16 点阵的字体,12x12 字库要选 12x12 点阵字体。因为如果字库尺寸不是所选字体的点阵尺寸的整数倍,做出的字形会出现粗细划。

CD-ROM 相关

光盘数据结构

  • https://wenku.baidu.com/view/9fc3a2b2d7d8d15abe23482fb4daa58da0111ca2.html

  • https://blog.csdn.net/markduan/article/details/5436615

  • https://fenying.net/post/2013/11/15/cue-file-format/

PCE-CD 的游戏 bin/iso 数据结构,遵循 CD-ROM 黄皮书标准。简单讲,就是 bin/iso 文件 = 2352(一个扇区) * N,而每个扇区 2352 = 12 + 4 + 2048(数据) + 4(EDC) + 8(8 个 00) + 276(ECC)。其中,EDC 是校验码,ECC 是纠错码

光盘检验码与纠错码

  • https://github.com/pce-devel/mednafenPceDev/blob/main/mednafen/src/cdrom/crc32.cpp

  • https://github.com/DigiDigi/mode1_ECCregen

  • https://github.com/pce-devel/mednafenPceDev/blob/main/mednafen/src/cdrom/scsicd.cpp#L592

  • https://blog.csdn.net/ggbondg/article/details/3933336

  • 网页链接​

校验码是用 crc32 算出,纠错码是对扇区 2352 中,跳过前 12 字节后的 2064 字节(4 + 2048 + 4 + 8 = 2064) 用 RSPC(Reed-Solomon Product Code) 算法得到的 276 字节。其中,RS 算法可参考《二维码的秘密》

其它模拟器不清楚,如果只看 mednafen,会发现只要算对检验码即可(参考第 3 个链接 edc_lec_check_and_correct 函数),不用算纠错码。

杂项

PCE 游戏下载站点1 myabandomware

  • https://www.myabandonware.com/browse/platform/turbografx-cd/

  • 部分分级游戏默认搜索不到,可在搜索框下的 theme 这里选 adult 显示隐藏

PCE 游戏下载站点2 planetemu

  • https://www.planetemu.net/roms/nec-pc-engine-cd-turbografx-cd-games

YYCHR

  • https://3q.9527.tw/155

  • 我用它看 bios 文件的 16x16 字库,还有 mednafen 导出的 VRAM 里的图片

看字库

看显存