找回密码
 立即注册

微信扫码登录

使用验证码登录

QQ登录

只需一步,快速开始

查看: 312|回复: 22

[解读] FBNeo romdata 写法的基本介绍

[复制链接]

2

主题

17

回帖

193

积分

注册会员

积分
193
发表于 3 天前 | 显示全部楼层 |阅读模式
本帖最后由 taoenwen 于 2025-6-5 15:34 编辑

nebula.png fbneo.png

在 fbneo,以上两者样式的 romdata 是等价的。
第一个是 nebula 样式 (名义上支持 PGM/NG/CPS123/家用机);
第二个是 fbneo 样式 (支持全部基板驱动),fbneo 现在支持直接从游戏驱动导出 RomData 模板,可在 这里 查阅

首行标头 System (fbneo 样式时不需要):仅作为两种样式区分的标志,有这个标志,程序视为 nebula 样式,后续程序逻辑按 nebula 样式进行,没有此标头,按 fbneo 样式逻辑进行,至于标头后面写啥,程序是直接忽略的,填不填无所谓,至于硬件识别,程序有自己的逻辑。

后续三个标头:
RomName 和 ZipName (游戏压缩包名称);
Parent 和 DrvName (借用哪个游戏驱动的名称);
Game 和 FullName (想要呈现的游戏全名,不指定则显示游戏压缩包名称);
这三组,每组两个名称都是通用的,程序能自动识别,保留 nebula 的标头名称习惯,只是为了满足强迫症用户 (此处无贬义)。

进入正文部分:
nebula 样式为 5列数据,分别为:ROMs 名称、ROMs 载入地址 (在 fbneo 填 0即可,程序直接忽略)、ROMs 长度 (不可为 0)、ROMs crc32 (可填 0,0为不校验 crc32)、ROMs type (PGM/NG/CPS123/家用机 可为 0,其它基板参考 fbneo 样式);
fbneo 样式为 4列数据,分别为:ROMs 名称、ROMs 长度 (不可为 0)、ROMs crc32 (可填 0,0为不校验 crc32)、ROMs type (家用机 可为 0,其它基板必须规范填写正确的 type 值,值可以是宏或者 16进制的值,参考源码部分)。
nebula 样式的 romdata 有节点,如上图范例 Neo Geo 基板的:[Program]、[Text]、[Graphics]、[Z80]、[Samples] ...,这些节点在 fbneo 是为了让程序通过这些节点来自动分配 type,具体怎么实现的,这里就不展开了,这里仅介绍一下这些节点及它们的扩展别名。

- Neo Geo -:
Program = PRG1,举例:可以是 [Program],也可以写成 [PRG1],以下均是;
Text = GRA1;
Graphics = GRA2;
Z80 = SNDA;
Samples = SND1;
SamplesAES = SND2,这条是新增的,如 nam1975 这个游戏,mvs 和 aes 载入的采样文件是不一样的,大部分的时候都用不到,只是预留功能;
BoardPLD = OPT1,Neo Geo 只有极少部分游戏是有 PLD,也仅作预留。

- PGM -
Program = PRG1;
Tile = GRA1;
SpriteData = GRA2;
SpriteMasks = GRA3;
Samples = SND1;
InternalARM7 = PRG2;
Ramdump,没有别名,我也不知道为什么会有它,no dump 的 ROMs type 程序压根不会载入该 ROM,也不会预留内存空间,留着吧,别名就省省吧;
ExternalARM7 = PRG3;
ProtectionRom = PRG4。

- CPS1 -
Program = PRG1,自动基础判断,68k ROMs 大于 0x40000,顺序载入,否则交错载入;
ProgramS = PRGS,新增,强制程序以 2个一组以交错字节的方式载入 68k ROMs (名将的第三第四个 68k ROMs 就是交错载入的);
ProgramN = PRGN,新增,强制程序以顺序方式逐个载入 68k ROMs (可以配合 PRGS,实现自定义载入);
  1. 名将为例:
  2. ...
  3. [PRGN]
  4. 68k1, ...; // 顺序
  5. 68k2, ...; // 顺序
  6. [PRGS]
  7. 68k3, ...; // 交错
  8. 68k4, ...; // 交错
  9. [...]
  10. ...
  11. [System]
  12. ...
复制代码
Z80 = SNDA;
Graphics = GRA1;
Samples = SND1;
Pic = SNDB,Pic 没模拟,预留吧,应该用不到;
Tiles = Extras = GRA2,部分街霸2有扩展的图形;
BoardPLD = OPT1。

- CPS2 -
Program = PRG1;
Graphics = GRA1;
Z80 = SNDA;
Samples = SND1;
Decryption = KEY1。

- CPS3 -
Bios,新增,无别名;
Program = PRG1,新增;
Graphics = GRA1,新增。

- 家用机 -
写 0 即可,自动判断。

- 通用部分 -
[System] 节点,注意是节点,而不是标头,这个节点标志是告诉程序,以下没有了,不用再查找内容了。

讲一下 Parent 和 DrvName:
在 fbneo 的 romdata 实现中,建议大家用 clone 做驱动,这样按 ROMs 载入逻辑,clone 缺少 ROMs 时会自动向 parent,也就是其父级驱动申请缺少的 ROMs。
当然不排除有部分用户就喜欢用 parent 做驱动,那么请你补齐该游戏全部的 ROMs,parent 是顶层驱动,没谁为它提供额外的 ROMs,所以想清楚做事,别有事就怨天怨地,更别胡搅蛮缠。

重点:
我们推荐用户优先使用 fbneo 样式的 romdata,fbneo 对 nebula 样式的支持,仅作为用户习惯的兼容与扩展,而不是 fbneo 认可或崇拜 nebula 或安卓啥啥其它的 romdata,fbneo 没有攀附、复刻它们的计划或打算,更不希望有人试图用甩脸、撂自己挑子等形式来道德绑架。

最后,如果觉得 fbneo romdata 有啥新功能需要添加或实现,你可以:
1、合理建议,在不破坏原有结构、逻辑的基础上提出扩展建议 (原设计逻辑是全基板兼容,这是底线,不容破坏);
2、自己写代码,上 pr;
3、以上都不是,闭嘴!

2025/06/04 更新,在更新子目录搜索逻辑时,顺便也完成了追加 RomData 被占用驱动 ROMs 的载入,就和一开始说的一样,要动 bzip.cpp,而不是成为安卓 2 代。
Skip the default ROMs directory when searching subdirectories · finalburnneo/FBNeo@7b70c13

2025/06/05 更新,可在选择游戏对话框界面,选中一个游戏驱动,鼠标右键弹出菜单,选择最后一项:Export to RomData template
win32 sel: RomData templates can be exported directly from the driver · finalburnneo/FBNeo@9ba6fbc

评分

参与人数 3金钱 +30 收起 理由
maoer + 10 很给力!
lanyer + 10 还得是你
缘来是你 + 10 赞一个!

查看全部评分

0

主题

99

回帖

474

积分

中级会员

积分
474
发表于 3 天前 | 显示全部楼层
满满的干货,谢谢楼主的分享!这个绝对要顶!!!

38

主题

2488

回帖

8038

积分

论坛元老

积分
8038
QQ
发表于 3 天前 来自手机 | 显示全部楼层
进来支持一下

2

主题

529

回帖

2142

积分

金牌会员

积分
2142
发表于 3 天前 | 显示全部楼层
进来学习一下

6

主题

104

回帖

755

积分

高级会员

积分
755
发表于 3 天前 | 显示全部楼层
据说这玩意老好了,就差看懂这个帖子了。感谢大佬分享。

6

主题

104

回帖

755

积分

高级会员

积分
755
发表于 3 天前 | 显示全部楼层
好吧,还是没看懂,type类型和rom长度要怎么看?

点评

type:fbneo 样式抄源码,nebula 样式写 0; ROMs 长度:16进制,资源管理器就能看。  发表于 3 天前

0

主题

19

回帖

824

积分

高级会员

积分
824
发表于 3 天前 | 显示全部楼层
厉害!
回复

使用道具 举报

6

主题

317

回帖

3467

积分

论坛元老

积分
3467

最佳新人

发表于 3 天前 | 显示全部楼层
感谢大佬无私奉献!

0

主题

411

回帖

2888

积分

金牌会员

积分
2888
发表于 3 天前 | 显示全部楼层
学习学习,很好的教程

152

主题

7859

回帖

1万

积分

论坛元老

独乐乐不如众乐乐,免费分享游戏光荣,贩卖游戏可耻,记住这句话的真正含义吧。

积分
17431

推广达人最佳新人

发表于 3 天前 | 显示全部楼层
完全看不懂
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|肖琪模拟游戏站 ( 沪ICP备2023018581号-5|沪公网安备31011702888952号 )

GMT+8, 2025-6-6 07:00 , Processed in 0.042011 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表