RomM:CHD 光盘库一次搞定识别与入库
【免费下载链接】rommA beautiful, powerful, self-hosted ROM manager and player.项目地址: https://gitcode.com/GitHub_Trending/rom/romm
家里那堆 PS1、Dreamcast 光盘都被压成了 CHD(MAME 系光盘压缩格式),现在的问题是:谁也不知道里面装的是什么,更没法按游戏名快速找出来。RomM 是个自托管的 ROM 管理工具,把 CHD 库丢给它,几分钟就能变成能看、能查、能在线玩的游戏列表。
它到底是什么
RomM 用 Docker 跑起来后就是一个网页版游戏库:识别磁盘文件、补齐封面和元数据、支持在线播放。对 CHD 用户来说,它的价值在于"认得出"——扫描时会自动读出 CHD 文件内部记录的 SHA-1(这张光盘未压缩内容的指纹),这个指纹就是光盘的身份证明,后续找封面、对成就都靠它。
跑通最小闭环
- 拉取代码:
git clone https://gitcode.com/GitHub_Trending/rom/romm - 准备环境变量:复制仓库里的
env.template为.env,改下面这一处 - 启动容器:
docker compose up -d,等数据库初始化完成(大约一分钟) - 首次扫描:打开
http://<服务器地址>:8080,登录后台,找到扫描入口点"扫描"
改这个位置,效果是:告诉 RomM 去哪个文件夹找游戏。文件夹里的 CHD、ISO 都会被认成光盘游戏:
# .env ROMM_BASE_PATH=/romm逐个说清几个关键配置
ROMM_BASE_PATH:决定去哪个文件夹找光盘
库的根目录,一般挂到容器里。容器启动时会按这个路径自动建好目录结构,之后只要把 CHD 文件按平台分子文件夹丢进去就行。改了路径要重新扫描一次。
SCAN_WORKERS:决定扫描跑多快
默认值是4,意思是同一时刻处理 4 个游戏。库特别大、机器不忙的话可以调到8,再高也没意义——瓶颈通常在磁盘读写和哈希计算上,不在并发数。
ENABLE_RESCAN_ON_FILESYSTEM_CHANGE:决定改完文件要不要手动重扫
默认false,你往库里拷了新文件得手动触发扫描。改成true后,文件一有增删改,隔几分钟就自动重扫。注意它并不每次都重算哈希:只有文件的大小或修改时间变了才会重算,所以日常开销很小。
容易卡住的地方
- CHD 没被认出→ RomM 靠扩展名和文件头识别 CHD,有些工具生成的文件不符合规范 → 用 MAME 工具包的
chdman verify验证后重新生成。 - 一个文件夹里塞了多个 CHD→ RomM 把整个文件夹当一个游戏,只拿最大的那个 CHD 去计算 RetroAchievements 哈希,其余文件照常入库 → 一碟一文件夹,多碟游戏放同一文件夹。
- 同一游戏的多语言版显示成一条→ CHD 的 SHA-1 记录的是光盘原始内容,语言不同的版本内容可能完全一样,RomM 就把它们当成同一张光盘的多个文件 → 这是去重逻辑,不是 bug。
把你手上最杂的那批 CHD 拷进库文件夹,点一次扫描,看列表里有没有缺封面或识别错的游戏——那才是你真正要处理的部分。
【免费下载链接】rommA beautiful, powerful, self-hosted ROM manager and player.项目地址: https://gitcode.com/GitHub_Trending/rom/romm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考