去年 11 月看中了 RG 476H,虽然六七百的没抢到,也一度在 pdd 上刷到过不到九百的价格,本来说打完 Switch 2 版的 FFT 以后再来买的,等等多少能降一点吧,结果 12 月月初快打完了过来一看,全是四位数了卧槽,等了等好像没啥希望,咸鱼买了一台二手翻车了,干脆买了台新的,好歹三位数拿下。
果然如同群友所说,这块屏幕面积大亮度高素质强,目前来说算是 4:3 掌机的巅峰了,不考虑 PS2(似乎土星除外)以上级别机种的话对付 4:3 游戏性能够用,除了 L1 R1 之外全导电胶主按键手感舒适,我非常喜欢。不过周哥还是用做 Linux 掌机的思路做猴机,给了个不算太好用的前端,前端里的设置还跟独立模拟器冲突,免不了要折腾一番。我搞了一阵以后大致把这机器搞明白了。
Tweak 1
首先,放弃使用独立模拟器。我是 RetroArch 重度使用者,但是机器里自带了一个 RetroArch (aarch64),自行安装 RetroArch (aarch64) 会和自带的冲突,独立从桌面打开也会和 Launcher 里的设置冲突;不带任何后缀的通用版 RetroArch 是可以装的,但是有些设定(比如系统盘根目录下 RetroArch 目录里的那些)和 RetroArch (aarch64) 通用有些又不通用,最后我还是决定使用 Launcher。不过这个独立版 RetroArch 后来还起到了它的作用,详情后述。
要用 Launcher 的话问题就来了,这 Launcher 的美化不如周哥 Linux 系统资料那么多机器也不带说明书,外网搜了半天弄好了添加封面的办法:
封面要在每个 ROM 目录里新增一个 gamelist.xml 来添加,xml 里每个游戏用得上的有效信息只有 <path>(文件路径)、<name>(游戏名称)、<image>(游戏图片,我这里用来放封面)三行而已。我这个模板里图片路径写了当前目录下的 imgs 子目录,和周哥系统的路径一样。
gamelist.xml
被添加到 gamelist 里的游戏会自动在游戏列表里置顶并自动排序,没在 gamelist 里的其他游戏依然按照文件名排序显示,所以我索性把 gamelist 当成某种形式的收藏夹来使用。

Tweak 2
SD 卡的 ROM 目录里可以放任意文件名的文件,甚至中文日文名也行,唯独街机例外。MAME 系有自己独特的命名规范和 ROM 校验,校验不通过的话无法被读取,所以当目录里出现一堆 ffightj、wofj、samsho3 之类名称的时候就有点困扰了。我(指挥 AI)写了一个 Python 脚本,可以根据 MAME 的标准游戏数据库生成 gamelist.xml,效果如下:

使用方法:
1. 访问 https://www.progettosnaps.net/dats/MAME/ 下载最新的 MAME data,找到其中的 xml 文件,重命名成 mame.xml
2. 下载此 Python 脚本 gen.py gen.py
3. 取出 SD 卡插入电脑,将 mame.xml 和 gen.py 一起放在任意街机 ROM 目录下,在命令行运行python gen.py,脚本会扫描当前目录下所有的游戏,按 MAME data 生成 gamelist.xml。
这个脚本的模板写成了 NEOGEO,其实无所谓,任何街机 ROM 都可以用,Launcher 里看得到的只有游戏名称而已。
Tweak 3
三年前我第一次接触模拟器掌机还是 640 x 480 的 Retroid Pocket 2+,对于大多数 320 x 240 级别分辨率的游戏来说用一个简单的 RetroArch 自带扫描线就能对付,甚至不对付也有还可以的观感,但 RG 476H 再翻一番的分辨率就不太行了。还好 GPU 性能也足够,可以直接跑一些相对复杂的着色器滤镜。
如果是 分辨率 320 x 240 四倍整数缩放的游戏,简简单单挂个 zfast_crt 滤镜就有相当不错的效果。

对于 FC 和超任这样非整数缩放的游戏,我的选择是放大到撑满全屏,先挂一个 bilinear(RetroArch 自带但是周哥系统不自带,要从别的地方拷一套原版过来)再叠加一套 zfast_crt。

bilibili 著名着色器大师脑浆油条近期也发布了他的荧光线 2.0 着色器,GLSL 系列可以用在 RG 476H 上——就别去折腾 SLANG 系列了,带不动的。我试下来是觉得没那么神,反正按自己喜欢的来吧。
Tweak 4
周哥系统里自带了非常完美的 GB 和 GBP 屏幕滤镜各一套,我在 RetroArch 自带 shader 的 handheld 目录里翻了半天楞是没找到能与之媲美的。看了这个 shader 的画面我才回忆起来以前 GB 厚机的效果:因为没有背光也没有彩色,发绿无任何纹路的单色液晶屏最浅的一层底色应该看不到任何像素点才对。

常用的 LCD 滤镜会给所有颜色模拟像素点的颗粒感,包括底色,除了还原度降低之外还会影响亮度。

正确的效果是这样的。这个 GB 滤镜是真的好,最浅一层底色无颗粒,深色有颗粒感但是不强烈,还有微微的阴影效果,还原度非常高。周哥系统自带只有5倍的 gb-dmg-5x,不能填满屏幕,我这里做了个 6x。

Gameboy Pocket 应该也是同理,虽然我没有拥有过 GBP。最近我都在用 GBP 滤镜玩,浅灰底色只要亮度合适就跟不发光的观感没多大区别,和 Kindle Paperwhite 的感觉差不多,非常舒服。

gb-dmg-6x、gb-pocket-6x 和上图的 GBP 边框一起打包,解压出 RetroArch 文件夹覆盖同名目录即可。
GB-DMG-Pocket
Tweak 5
本来这机器玩得挺好的,直到发现用数字输出——蓝牙或者 USB-C 口的耳机会有爆音。有时候周哥 Launcher 进去有爆音,独立模拟器进去没有,有时候又两者都有,百思不得其解。后来从独立安装的 RetroArch(非 aarch64)里抄了音频延迟设定进去,问题解决了,实在没解决的话游戏记录一下关闭再进去重新打开就好。
主要设定:音频延迟、音频重采样器,而重采样质量我改成了「默认」,周哥系统的默认配置是「较低」。
不过我用猴系统这么多年也从未遇到过此类问题,这周哥系统还是欠调教了些。
