找回密码
 立即注册

微信扫码登录

使用验证码登录

QQ登录

只需一步,快速开始

查看: 234|回复: 5

ROMDATA的类型和子系统详解

[复制链接]

68

主题

792

回帖

2387

积分

金牌会员

积分
2387
发表于 2025-9-23 20:31:55 | 显示全部楼层 |阅读模式
本帖最后由 william 于 2025-9-23 21:58 编辑

ROM类型详细说明
数字部分(子类型)- 代表具体的功能分类,不同系统有不同的定义:
CPS1系统
1 - CPS1_68K_PROGRAM_BYTESWAP:需要字节交换的68K程序
2 - CPS1_68K_PROGRAM_NO_BYTESWAP:不需要字节交换的68K程序
3 - CPS1_Z80_PROGRAM:Z80声音处理器程序
4 - CPS1_TILES:Tile图形数据
5 - CPS1_OKIM6295_SAMPLES:OKI声音采样数据
6 - CPS1_QSOUND_SAMPLES:QSound声音采样数据
7 - CPS1_PIC:保护芯片数据
8 - CPS1_EXTRA_TILES_SF2EBBL_400000:额外的Tile数据
9 - CPS1_EXTRA_TILES_400000:额外的Tile数据
10 - CPS1_EXTRA_TILES_SF2KORYU_400000:额外的Tile数据
11 - CPS1_EXTRA_TILES_SF2B_400000:额外的Tile数据
12 - CPS1_EXTRA_TILES_SF2MKOT_400000:额外的Tile数据
CPS2系统
1 - CPS2_PRG_68K:68K主程序
2 - CPS2_PRG_68K_SIMM:68K SIMM程序
3 - CPS2_PRG_68K_XOR_TABLE:68K XOR表
5 - CPS2_GFX:图形数据
6 - CPS2_GFX_SIMM:SIMM图形数据
7 - CPS2_GFX_SPLIT4:分割图形数据4
8 - CPS2_GFX_SPLIT8:分割图形数据8
9 - CPS2_GFX_19XXJ:19XXJ图形数据
10 - CPS2_PRG_Z80:Z80程序
12 - CPS2_QSND:QSound数据
13 - CPS2_QSND_SIMM:QSound SIMM数据
14 - CPS2_QSND_SIMM_BYTESWAP:需要字节交换的QSound SIMM数据
15 - CPS2_ENCRYPTION_KEY:加密密钥

CPS3系统
1 - CPS3_PROGRAM:主程序
2 - CPS3_GRAPHICS:图形数据
3 - CPS3_SOUND:声音数据
字母部分(基础类型)- 使用位标志组合:
BRF_PRG (0x01):
程序代码 BRF_GRA (0x02):
图形数据 BRF_SND (0x04):
声音数据 BRF_OPT (0x08):
可选数据 BRF_ESS (0x10):
基本系统数据 BRF_NODUMP (0x20):
未转储数据 BRF_BIOS (0x40):BIOS数据
组合示例:
1 | BRF_PRG | BRF_ESS 表示:子类型1 + 程序代码 + 基本系统数据 3 | BRF_GRA 表示:子类型3 + 图形数据

Neo Geo系统
1 - NEO_PRG:主程序代码
2 - NEO_TXT:文字图形数据
3 - NEO_GRA:主图形数据
4 - NEO_Z80:Z80声音处理器程序
5 - NEO_SND:声音采样数据
6 - NEO_SND_AES:AES专用声音数据
PGM系统
1 - PGM_PRG:主程序代码
2 - PGM_TILE:Tile图形数据
3 - PGM_SPRITE_DATA:精灵图形颜色数据
4 - PGM_SPRITE_MASKS:精灵掩码和颜色索引
5 - PGM_SAMPLES:声音采样数据
7 - PGM_INTERNAL_ARM7:内部ARM7 ROM
8 - PGM_EXTERNAL_ARM7:外部ARM7 ROM
9 - PGM_PROTECTION_ROM:保护ROM


FBNeo的这种设计方式要求ROM类型数字不能与BRF标志位重叠。
查看定义:
BRF标志:0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40
ROM类型:1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15
注意到ROM类型中没有使用 4, 11, 这是为了避免与BRF标志冲突
2. 位布局设计
BRF标志位:使用高字节位(0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40)
ROM类型数字:使用低4位(1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15)
3. 无冲突设计
通过查看定义可以发现,ROM类型数字特意避开了BRF标志位:
BRF标志使用:0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40
ROM类型使用:1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15
注意:ROM类型中没有使用 4, 11,这正是为了避免与BRF标志冲突



type_number(类型数字)
含义:表示 ROM 文件的具体类型编号
作用:用于在 FBNeo 中标识 ROM 的功能类别
数值范围:通常是 1-15 之间的数字
示例:
1:表示程序 ROM(如 CPS2_PRG_68K)
2:表示图形 ROM(如 CPS1_68K_PROGRAM_NO_BYTESWAP)
5:表示图形 ROM(如 CPS2_GFX)
12:表示声音 ROM(如 CPS2_QSND)
type_desc(类型描述)
含义:表示 ROM 文件的属性和用途的文本描述
作用:描述 ROM 的 BRF 属性(Burn ROM Flags)
格式:由 BRF 标志组成的字符串,用 " | " 分隔
示例:
"BRF_ESS | BRF_PRG":必需的程序 ROM
"BRF_GRA":图形 ROM
"BRF_SND":声音 ROM
"BRF_PRG | BRF_ESS | BRF_NODUMP":必需但未转储的程序 ROM
两者的关系
type_number 是机器可读的类型标识符,用于程序内部处理和排序
type_desc 是人类可读的属性描述,用于理解和识别 ROM 的用途


BRF 是 "Burn Rom Flags" 的缩写,这是 FBNeo(FinalBurn Neo)模拟器中用于标识 ROM 文件属性和用途的标志系统。
各标志的具体用途:
BRF_PRG (0x01) - 程序ROM:包含游戏的主程序代码
BRF_GRA (0x02) - 图形ROM:包含游戏的图形/图像数据
BRF_SND (0x04) - 声音ROM:包含游戏的音频/声音数据
BRF_OPT (0x08) - 可选ROM:非必需的额外内容ROM
BRF_ESS (0x10) - 必需ROM:运行游戏所必需的ROM
BRF_NODUMP (0x20) - 未转储ROM:尚未获取或不存在的ROM占位符
BRF_BIOS (0x40) - BIOS ROM:系统固件/BIOS文件
这些标志可以通过位运算组合使用,例如一个ROM可以同时是必需的程序ROM,表示为 BRF_ESS | BRF_PRG = 0x10 | 0x01 = 0x11。
在FBNeo系统中,这些标志帮助模拟器正确识别和处理不同类型的ROM文件,确保游戏能够正确运行。

可以看出,不同的基板类型,子系统/类型定义类似,却略有不同,所以要根据基板类型定义的子系统和类型进行正确的文件描述,这样后续读取romdata数据的程序才能完全正确的执行

写的有些啰嗦哈,不知道说明白没有....









21

主题

431

回帖

3034

积分

论坛元老

积分
3034
发表于 2025-9-23 21:12:53 | 显示全部楼层
期待中,准备看看

41

主题

3966

回帖

1万

积分

论坛元老

积分
12496
QQ
发表于 2025-9-23 21:40:39 来自手机 | 显示全部楼层
辛苦啦,支持一下
1227

157

主题

1万

回帖

3万

积分

论坛元老

严厉打击夸克网盘倒卖游戏资源的二手贩子,人人有责,从我做起。

积分
33200

推广达人最佳新人

发表于 2025-9-23 22:18:56 | 显示全部楼层
路过帮顶!
严厉打击夸克网盘倒卖游戏资源的二手贩子,人人有责,从我做起。
回复

使用道具 举报

0

主题

114

回帖

2102

积分

金牌会员

积分
2102
发表于 2025-9-24 05:39:22 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

3

主题

283

回帖

4348

积分

论坛元老

积分
4348
发表于 2025-9-24 06:54:05 来自手机 | 显示全部楼层
谢谢,讲解的很详细
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-10-21 05:59 , Processed in 0.022881 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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