1. 为什么你的树莓派复古游戏系统会显示中文乱码?
很多玩家在树莓派上安装Batocera系统后,发现RetroArch前端界面显示的中文字符全是方框或者乱码。这个问题困扰了不少想用中文菜单的复古游戏爱好者。其实原因很简单——系统默认没有包含完整的中文字体包。
Batocera作为一个国际化的开源游戏系统,默认安装的字体主要是为了支持拉丁字母。当系统检测到语言设置为中文时,会尝试调用中文字体渲染,但如果找不到对应的字体文件,就会显示成乱码。RetroArch的前端界面(特别是XMB驱动)也有自己独立的字体目录,需要单独处理。
我在帮朋友调试树莓派时就遇到过这个典型问题:明明在系统设置里选择了简体中文,但所有菜单项都变成了"口口口"。经过几次尝试,发现需要同时修改两个关键位置的字体文件才能彻底解决问题。
2. 准备工作:获取必要的中文字体
2.1 选择合适的中文字体
解决乱码问题的第一步是准备合适的中文字体文件。不是所有.ttf字体都能完美兼容Batocera系统,我推荐使用以下两种免费字体:
- 思源黑体(Source Han Sans):Adobe和Google合作开发的开源字体,支持简体中文、繁体中文、日文和韩文,在低分辨率屏幕上显示效果很好。
- 文泉驿微米黑:专为小屏幕优化的开源中文字体,笔画清晰,特别适合树莓派这种性能有限的设备。
你可以从官方网站下载这些字体:
- 思源黑体:https://github.com/adobe-fonts/source-han-sans
- 文泉驿字体:http://wenq.org/
2.2 字体文件重命名
下载字体后,需要按照Batocera系统的要求对文件进行重命名:
- 将主中文字体重命名为
NanumMyeongjo.ttf(这是系统默认调用的字体文件名) - 将RetroArch专用字体重命名为
font.ttf
我建议把这两个文件放在U盘的根目录,方便后续操作。记得检查文件扩展名确实是.ttf,有时候浏览器会自动添加(1)之类的后缀。
3. 连接树莓派并替换字体文件
3.1 使用WinSCP连接树莓派
WinSCP是一个免费的SFTP客户端,可以让我们像操作本地文件一样管理树莓派上的文件。按照以下步骤连接:
- 确保树莓派和电脑在同一个局域网
- 打开WinSCP,选择"新建会话"
- 文件协议选择"SFTP"
- 主机名填写树莓派的IP地址(可以在Batocera系统设置中查看)
- 用户名:
root - 密码:
linux - 点击"登录"
第一次连接时会弹出安全警告,选择"是"即可。连接成功后,你会看到树莓派的文件目录。
3.2 替换系统字体文件
现在我们需要替换两个关键位置的字体文件:
第一个位置:系统全局字体
- 路径:
/usr/share/fonts/truetype/nanum/NanumMyeongjo.ttf - 操作:将准备好的中文字体(已重命名为NanumMyeongjo.ttf)拖拽到这个目录覆盖原文件
第二个位置:RetroArch专用字体
- 路径:
/usr/share/libretro/assets/xmb/monochrome/font.ttf - 操作:将第二个中文字体(已重命名为font.ttf)拖拽到这个目录覆盖原文件
注意:如果nanum目录不存在,需要先创建它。右键点击/usr/share/fonts/truetype目录,选择"新建目录",命名为"nanum"。
4. 保存修改并配置RetroArch
4.1 保存文件系统修改
Batocera使用只读文件系统,直接替换文件重启后会恢复原状。我们需要使用以下命令永久保存修改:
- 在WinSCP中点击"打开终端"按钮
- 输入命令:
batocera-save-overlay - 等待命令执行完成(大约10-30秒)
这个命令会将我们对文件系统的所有修改保存到overlay分区,即使重启也不会丢失。
4.2 配置RetroArch语言设置
现在我们需要进入RetroArch将界面语言改为中文:
- 在树莓派上按手柄的SELECT+A键(键盘默认是F1+空格)打开RetroArch菜单
- 选择"设置" → "驱动" → "菜单驱动",确保选择的是"xmb"
- 返回上一级,选择"用户" → "语言",滚动找到"简体中文"并选择
- 选择"配置" → "保存当前配置"
这时你应该能看到菜单已经变成中文了。如果还是显示乱码,可能是字体替换没有成功,需要检查之前的步骤。
5. 常见问题排查与解决方案
5.1 替换字体后仍然显示乱码
如果按照上述步骤操作后还是看到乱码,可以尝试以下解决方案:
- 检查字体文件权限:右键点击替换的字体文件 → "属性" → 确保权限设置为644(rw-r--r--)
- 清除RetroArch缓存:在RetroArch设置中选择"目录" → "清空缓存"
- 尝试其他字体:有些字体可能不兼容,换用我推荐的思源黑体或文泉驿字体
5.2 重启后修改丢失
如果发现重启后中文又变成乱码,说明overlay保存没有成功:
- 重新执行
batocera-save-overlay命令 - 检查存储空间:使用命令
df -h查看/overlay分区是否有足够空间 - 尝试使用USB存储扩展:在Batocera系统设置中启用"持久化存储"
5.3 部分游戏列表仍显示乱码
游戏列表的字体是独立管理的,需要额外配置:
- 进入Batocera系统设置 → 游戏设置 → 游戏列表
- 将"游戏列表视图"改为"详细"
- 在主题设置中选择支持中文的主题
6. 进阶优化:美化中文显示效果
完成基本的中文支持后,你还可以进一步优化显示效果:
6.1 调整字体大小
RetroArch的XMB界面默认字体可能偏小:
- 打开RetroArch设置 → 用户界面
- 调整"菜单字体大小"(建议18-22px)
- 调整"菜单缩放系数"(建议1.20x-1.50x)
6.2 安装中文主题
Batocera支持自定义主题,可以安装专门优化过中文显示的主题:
- 下载中文主题包(如"Batocera-Chinese-Theme")
- 通过WinSCP上传到
/usr/share/emulationstation/themes目录 - 在ES界面按START键 → UI设置 → 主题设置中选择新主题
6.3 添加中文游戏封面
为了让游戏列表更美观,可以添加中文游戏封面:
- 准备封面图片(建议226x226像素,PNG格式)
- 命名为游戏ROM相同的文件名(如"拳皇97.png")
- 放入对应的游戏目录下的"images"文件夹
经过这些优化后,你的树莓派复古游戏系统将拥有完整的中文支持,从系统菜单到游戏列表都能完美显示中文。