level 11
犹豫了很久,还是写一下这一篇
因为自己也没有太十分了解、掌握,多数到可能会误导...
结合百度、豆包的知识,小小归纳了一下
所以愿意了解一下的可以看看,如果大佬能更正补充那就更好了: )
================ 我是华丽的分割线 ================
PC98与其他游戏略有区别
分为【 硬件系统字库 FONT.ROM 】和【 游戏自带软字库 】两大类
绝大多数 PC98 文字游戏默认调用主板硬件 ROM 字库,不是游戏 EXE 里内嵌字模
这一点和 FC/SFC/PS 游戏完全不一样,也是 PC98 汉化最大的特点
———————— 我是华丽的小分割线 ————————
Tips01 — 硬件字库 FONT.ROM
PC98 主板 BIOS 内置 FONT.ROM
Neko Project II、Anex86、DOSBox-X模拟器里用FONT.ROM或者FREECG98.BMP来模拟这块硬件字库
FONT.COM的功能可以理解为代码与字库文件间的映射程序
(对于PC98来说映射等同码表)
通过给出的"坐标",定位文字在字库中的位置并反馈
⊙ 点阵规格
全角字符(日文汉字、假名、全角标点)固定 16×16 点阵,半角英数字 8×16 点阵
一个 16×16 汉字占用 32 字节
⊙ 字符集
JIS X0208,编码采用 Shift-JIS
⊙ 硬件工作流程(重中之重,汉化必须理解)
游戏脚本文本保存Shift-JIS 字节码(双字节 = 汉字 / 假名;单字节 = 半角字符)
游戏把这个 Shift-JIS 码直接丢给 PC98 显卡(μPD7220)字符发生器
硬件拿着 Shift-JIS 码,硬件内置码表直接寻址 FONT.ROM,取出 16×16 点阵,直接渲染到画面
白话理解就是
【 在程序中没有所谓的"字"(就像现在看到我写的这些文字),全部是 0 1 代码串,,例" 0010 1101 " 】
【 通过命令标识,告诉程序这个位置开始是文字的编码,然后按照文字编码去字库找文字 】
【 通过码表(映射)找到、 取得字库中点阵图最后输出渲染到显示 】
* 我就是卡在这里很久 囧
当然,也有少数游戏自带软字库(游戏自带字模文件,自己写渲染代码,不调用硬件字符发生器)
Tips02 — Shift-JIS + JIS X0208 在 PC98 上的规则
PC98 原生编码是 Shift-JIS
单字节:0x00~0x7F ASCII;0xA1~0xDF 半角片假名(JIS X0201)
双字节(全角汉字 / 全角符号)
首字节 0x81~0x9F、0xE0~0xEF;第二字节 0x40~0x7E、0x80~0xFC
所以在这规则下,中文汉字、全角英语单字符占用的字节数与日语单字符是一样的
Tips03 — 字库
可以看到NK模拟器自带的 Font.tmp (后缀名可直接改成bmp) 或者 Font.bmp
这个就是所谓的点阵字库,点阵字库就好像我们用的小时候用的"田字格"簿
简单理解就是在一个 16*16的小方格正方形内,通过0、1显示白色、黑色(或黑色、白色)
来组成一个"字"(字符),这些字按照既定的顺序和规则排列形成"字库"
最终由映射反馈第X行、第Y列的方块(逐行字符代码)给显示渲染
当然有色彩的时候,点阵编码会更复杂
就比如黑白原来可能只需要 1bpp (1bit per pix 每像素1位),2^1也就是2种颜色
而多色可能就需要 4bpp (4bits per pix 每像素8位)或更多,而2^4、2^8 就是我们常说的16色和256色
———————— 我是华丽的小分割线 ————————
PC98游戏汉化的思路
以前,大佬们各显神通,耗费了大量的时间和精力破解游戏程序、汇编方式编辑游戏文件
提取文本信息之后尝试直接修改程序编码、测试、优化,最后发布汉化作品
汉化原理、逻辑基本上是一样的,现在有了AI、稍作处理后,之前的耗费了大量的时间和精力的前期工作
可以相对轻松的完成,而后翻译、润色,再反写入程序(也不用人工去修改编码了)、测试、优化
【 特别感谢在PC98及其他平台上进行汉化并无私分享的大佬们 】
【 特别感谢在PC98及其他平台上进行汉化并无私分享的大佬们 】
【 特别感谢在PC98及其他平台上进行汉化并无私分享的大佬们 】
重要的事情说三遍 ~~~///(^v^)\\\~~~
早期的模拟器还带Font.com,大佬们可能通过修改它实现游戏汉化
后期比较通用的简单方法是替换JIS字库为Font-CN.bmp,并反向写入程序码表(映射表)
为了方便,我把原始字库和大佬们一些经验贴归集了一下
用的是蓝奏:
retrogamer.lanzoub.com/
b016l3mdqj
访问码 pc98

现在有些PC98文字概念了吧,总结起来就一行字( 希望我没说错 (lll¬ω¬) )
程序文字编码 → 码表(映射表)(PC98特殊些) → 点阵字库 → 渲染显示
汉化要做的就是
程序文字编码 → 码表(映射)(SJIS) → 点阵字库(SJIS) → 原文本输出
原文本翻译中文 → 点阵字库(简中) → 码表(映射)(简中对SJIS) → 转码为 SJIS 字节 → 回写程序
测试、优化、发布~
希望我没说错、没有误导大家... (lll¬ω¬)
2026年09月23日 12点09分
1
因为自己也没有太十分了解、掌握,多数到可能会误导...
结合百度、豆包的知识,小小归纳了一下
所以愿意了解一下的可以看看,如果大佬能更正补充那就更好了: )
================ 我是华丽的分割线 ================
PC98与其他游戏略有区别
分为【 硬件系统字库 FONT.ROM 】和【 游戏自带软字库 】两大类
绝大多数 PC98 文字游戏默认调用主板硬件 ROM 字库,不是游戏 EXE 里内嵌字模
这一点和 FC/SFC/PS 游戏完全不一样,也是 PC98 汉化最大的特点
———————— 我是华丽的小分割线 ————————
Tips01 — 硬件字库 FONT.ROM
PC98 主板 BIOS 内置 FONT.ROM
Neko Project II、Anex86、DOSBox-X模拟器里用FONT.ROM或者FREECG98.BMP来模拟这块硬件字库
FONT.COM的功能可以理解为代码与字库文件间的映射程序
(对于PC98来说映射等同码表)
通过给出的"坐标",定位文字在字库中的位置并反馈
⊙ 点阵规格
全角字符(日文汉字、假名、全角标点)固定 16×16 点阵,半角英数字 8×16 点阵
一个 16×16 汉字占用 32 字节
⊙ 字符集
JIS X0208,编码采用 Shift-JIS
⊙ 硬件工作流程(重中之重,汉化必须理解)
游戏脚本文本保存Shift-JIS 字节码(双字节 = 汉字 / 假名;单字节 = 半角字符)
游戏把这个 Shift-JIS 码直接丢给 PC98 显卡(μPD7220)字符发生器
硬件拿着 Shift-JIS 码,硬件内置码表直接寻址 FONT.ROM,取出 16×16 点阵,直接渲染到画面
白话理解就是
【 在程序中没有所谓的"字"(就像现在看到我写的这些文字),全部是 0 1 代码串,,例" 0010 1101 " 】
【 通过命令标识,告诉程序这个位置开始是文字的编码,然后按照文字编码去字库找文字 】
【 通过码表(映射)找到、 取得字库中点阵图最后输出渲染到显示 】
* 我就是卡在这里很久 囧
当然,也有少数游戏自带软字库(游戏自带字模文件,自己写渲染代码,不调用硬件字符发生器)
Tips02 — Shift-JIS + JIS X0208 在 PC98 上的规则
PC98 原生编码是 Shift-JIS
单字节:0x00~0x7F ASCII;0xA1~0xDF 半角片假名(JIS X0201)
双字节(全角汉字 / 全角符号)
首字节 0x81~0x9F、0xE0~0xEF;第二字节 0x40~0x7E、0x80~0xFC
所以在这规则下,中文汉字、全角英语单字符占用的字节数与日语单字符是一样的
Tips03 — 字库
可以看到NK模拟器自带的 Font.tmp (后缀名可直接改成bmp) 或者 Font.bmp
这个就是所谓的点阵字库,点阵字库就好像我们用的小时候用的"田字格"簿
简单理解就是在一个 16*16的小方格正方形内,通过0、1显示白色、黑色(或黑色、白色)
来组成一个"字"(字符),这些字按照既定的顺序和规则排列形成"字库"
最终由映射反馈第X行、第Y列的方块(逐行字符代码)给显示渲染
当然有色彩的时候,点阵编码会更复杂
就比如黑白原来可能只需要 1bpp (1bit per pix 每像素1位),2^1也就是2种颜色
而多色可能就需要 4bpp (4bits per pix 每像素8位)或更多,而2^4、2^8 就是我们常说的16色和256色
———————— 我是华丽的小分割线 ————————
PC98游戏汉化的思路
以前,大佬们各显神通,耗费了大量的时间和精力破解游戏程序、汇编方式编辑游戏文件
提取文本信息之后尝试直接修改程序编码、测试、优化,最后发布汉化作品
汉化原理、逻辑基本上是一样的,现在有了AI、稍作处理后,之前的耗费了大量的时间和精力的前期工作
可以相对轻松的完成,而后翻译、润色,再反写入程序(也不用人工去修改编码了)、测试、优化
【 特别感谢在PC98及其他平台上进行汉化并无私分享的大佬们 】
【 特别感谢在PC98及其他平台上进行汉化并无私分享的大佬们 】
【 特别感谢在PC98及其他平台上进行汉化并无私分享的大佬们 】
重要的事情说三遍 ~~~///(^v^)\\\~~~
早期的模拟器还带Font.com,大佬们可能通过修改它实现游戏汉化
后期比较通用的简单方法是替换JIS字库为Font-CN.bmp,并反向写入程序码表(映射表)
为了方便,我把原始字库和大佬们一些经验贴归集了一下
用的是蓝奏:

现在有些PC98文字概念了吧,总结起来就一行字( 希望我没说错 (lll¬ω¬) )程序文字编码 → 码表(映射表)(PC98特殊些) → 点阵字库 → 渲染显示
汉化要做的就是
程序文字编码 → 码表(映射)(SJIS) → 点阵字库(SJIS) → 原文本输出
原文本翻译中文 → 点阵字库(简中) → 码表(映射)(简中对SJIS) → 转码为 SJIS 字节 → 回写程序
测试、优化、发布~
希望我没说错、没有误导大家... (lll¬ω¬)