Retroarch街机模拟器fbneo自改核心
agugu2000
编辑于 2026年10月24日 02:34

前言

没什么前言,我也不知道为什么有前言。主要是近期买了个开源垃圾掌机,无聊,所以搞一搞模拟器核心。[笑哭]

预览图

改动

  1. OSD 菜单层

增加一个完整的 OSD 菜单层。 增加官方核心没有的出招表、按键绑定,dat导出,并将金手指列表挪到 OSD 里操作,每个插件模块底栏会提示按键操作,超屏则自动滚动。

游戏内激活快捷键 L2 + R2 + START,手柄缺少L2 R2的也从核心选项打开,核心选项里也能设 OSD 内部 A/B 确认键(核心拿不到上层RA外壳的AB确认定义,没办法,就加了这个选项)。

  1. 金手指

框架整个重写,内核还是独立版 FBNeo 的解码。支持多金手指源并列,ini 类型能放 7Z/ZIP 包里,也不影响散落的 ini 文件。

(说实在的,原核心选项金手指在升级到多源显示后,就已经是乱七八糟了)

改动后逻辑链变了,自然就不会像官方核心那样开机前为了部署核心选项而预枚举、重复解金手指,那个会卡。(我2年前为这个问题修复过,当初的修复很艰难,现在则压根不存在这种问题)

SNES、NES 等金手指同理,不过应该没人拿这玩意模拟家用机吧,都用 RA 了就别为难fbneo了。

  1. 按键绑定

官方硬绑的逻辑全扔了,重做。自动把动作类可绑按键全暴露出来,随便配,你甚至可以完全舍弃跳跃,全设攻击。任意按键和组合键都能 6 级档位连发,不同游戏帧内吃连发逻辑不一样,自己调。

绑定精确到 playerN,每个玩家单独设。按当前游戏生成配置文件,保存在 system/fbneo/keybinding。

注意键盘类游戏不适用,比如麻将游戏,那种走键盘路径不依赖 RA 16键手柄。

  1. 出招表

mame标准的command.dat文件放 system/fbneo/command,支持 UTF8 / UTF8-BOM,按键图标完全对齐 MAME。

出招表插件内L键会自动折行,这个功能实际上是给英文用的,英文出招表制作时考虑了 MAME OSD 超宽折行,布局会自动对位。中文出招表没这设计,所以中文不用折行。OSD 支持像素级 4 方向滚动,OSD层是嫁接在屏显上的,分辨率低的游戏假如看不全文本,滚一滚就看全了(金手指文本同理)。

  1. DAT 导出

OSD 层能导出 DAT 数据,这样可以知道我发布的核心对应 romset 是啥。导出目录 system/fbneo/datexport。当然缺陷也有,你得有一个起码能打开的游戏,RA核心+街机的rom就是这么变扭,但是好在随便找个长时间稳定街机rom还是OK的。

  1. 其他

ROMDATA 和 IPS 没挪到 OSD 层,因为这俩会触发reset、reload,当初 taoenwen 费老大劲做的,挪到OSD层就更不好做了,也没必要挪(实际上是我不会)。

核心选项加了「允许忽略 CRC」。

金手指、出招表这些文件加了 UTF8 检测,非 UTF8 文本直接舍弃。

PGM 这些带中文的游戏,默认 DIP 尽量落在中文上。

路径相关

按键绑定:system/fbneo/keybinding

出招表:system/fbneo/command

DAT 导出:system/fbneo/datexport

注意:

我用docker尽可能一次性编译出各平台产物,但是我实际能够测试的只有 windows_x86_64,android_arm64-v8a,linux_aarch64

当然按道理编译成功基本没问题。

神秘代码: /s/1h2javgWTp5OJJ2mFt6W6Aw?pwd=gugu