RomM 固件摆放:目录与文件名配对,GBA 游戏不再黑屏
【免费下载链接】rommA beautiful, powerful, self-hosted ROM manager and player.项目地址: https://gitcode.com/GitHub_Trending/rom/romm
点开一台 GBA 游戏,画面卡在开机前的黑屏上,模拟器提示缺少 BIOS(主机出厂自带的启动程序,模拟器靠它才能模拟硬件)。多半不是 ROM 坏了,而是 RomM 固件没放到能被找到的位置。把文件名改标准、放进对的目录、再扫一次库,黑屏问题基本就能解决。
为什么绕不过去
模拟器无法凭空模拟一台主机,必须喂给它原厂固件文件。RomM 扫描时会把固件目录里的每个文件和仓库自带的校验数据库 known_bios_files.json 逐项比对:文件名、大小、CRC32、MD5 全部对上,才会标记该平台固件就绪。名字写错一个字母,或下载的文件损坏了,比对就过不了。
把文件名改到标准写法
先核对手上文件的大小和校验值,以 GBA 为例:
md5sum gba_bios.bin # 期望输出 a860e8c0b6d573d191e4ec7db1b1e4f6RomM 对文件名区分大小写,Gba_Bios.BIN这种写法不认。几个容易写错的:NDS 的固件是bios7.bin和bios9.bin两个文件,不叫nds_bios.bin;FDS 的文件叫disksys.rom,不带 bios 字样。
这一步的标志是:md5sum输出的十六进制串与下面速查表完全一致。对不上就先别往下走,重新下载——常见情况是下载器把网页错误页存成了二进制文件。
放进默认固件目录
默认布局是库根目录下的bios/文件夹,每个平台一个子目录,按 config.example.yml 中structure.firmware的写法就是bios/{platform}:
library/ ├── roms/ │ └── gba/pokemon.gba └── bios/ ├── gba/gba_bios.bin ├── fds/disksys.rom └── nds/ ├── bios7.bin └── bios9.bin跑通后你会看到:ls library/bios下每个平台子目录的文件名、个数都对得上速查表。多平台共用的固件(例如部分街机 BIOS)放进对应平台目录即可,不用复制多份。
路径不默认时改配置
固件在别处(比如 NAS 统一目录)也没关系,改config.yml里的filesystem段,把structure.firmware指向真实路径:
filesystem: structure: firmware: "/nas/roms/{platform}/bios"保存配置后,RomM 会按这个模板解析每个平台的固件位置。这一步的标志是:{platform}占位符被替换成的真实路径下,确实躺着对应平台的固件文件。
扫一遍库并核对状态
回到 RomM 前端,进"管理"页面触发一次扫描。此时刷新固件管理页,你应能看到 GBA、NDS 等平台的固件位变成就绪状态。再启动之前黑屏的 GBA 游戏,能进标题画面就搞定了。
校验值速查
边放文件边对照,数据取自 known_bios_files.json:
| 平台 | 标准文件名 | 大小(字节) | CRC32 | MD5 |
|---|---|---|---|---|
| GBA | gba_bios.bin | 16384 | 81977335 | a860e8c0b6d573d191e4ec7db1b1e4f6 |
| GBC | gbc_bios.bin | 2304 | 41884e46 | dbfce9db9deaa2567f6a84fde55f9680 |
| NDS | bios7.bin | 16384 | 1280f0d5 | df692a80a5b1bc90728bc3dfc76cd948 |
| NDS | bios9.bin | 4096 | 2ab23573 | a392174eb3e572fed6447e956bde4b25 |
| FDS | disksys.rom | 8192 | 5e607dcf | ca30b50f880eb660a320674ed365ef7a |
| 64DD | 64DD_IPL.bin | 4194304 | 7f933ce2 | 8d3d9f294b6e174bc7b1d2fd1c727530 |
| GB | gb_bios.bin | 256 | 59c8598e | 32fbbd84168d3482956eb3c5051637f5 |
大小列是字节数,不是 KB;CRC32 和 MD5 是两种文件指纹,作用是确认你拿到的文件和原厂固件一模一样、没被改坏。
症状对不上时按这里查
- 固件页仍显示缺失→ 文件名大小写或拼写不符(
Gba_Bios.BIN不认)→ 按速查表重命名为标准名,再扫一次库。 - 扫描日志报校验失败→ 文件损坏或存成了 HTML 错误页 → 先看字节数是否与速查表一致,不一致就重新下载。
- 放完文件完全没变化→ 没触发重新扫描 → 到管理页手动点一次扫描,确认固件目录指向无误。
- 自定义目录不被识别→
structure.firmware模板里{platform}占位符丢了,或路径写错 → 对照 config.example.yml 检查模板写法,确保占位符原样保留。 - NDS 只放了一个文件就显示就绪一半→ NDS 需要
bios7.bin和bios9.bin两个固件 → 补齐第二个文件后重扫。
收工清单
- 文件名逐字对照速查表,NDS 是两个文件(
bios7.bin/bios9.bin),大小写不能错。 - 默认放
bios/{platform}/,自定义路径就改structure.firmware,改完必须再扫一次库。 - 先用
md5sum核过校验值再入库,比出事后回头排查省事。
BIOS 属原厂版权内容,请只使用你合法持有的固件文件。
【免费下载链接】rommA beautiful, powerful, self-hosted ROM manager and player.项目地址: https://gitcode.com/GitHub_Trending/rom/romm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考