星哥带你玩飞牛NAS-36给NAS装个老游戏ROM 浏览器直接开玩导读谁的硬盘里没存过几个 GBA、FC 的 ROM 呢文件堆了一堆封面没几张每次想玩都得翻半天目录。今天介绍一个开源项目 RomM把 NAS 变成你的私人游戏库浏览器点开就能玩整理收藏一气呵成。先聊聊老玩家的痛我猜很多人的老游戏 ROM 现在还躺在某个硬盘的角落里命名五花八门——rom1.gba、最终幻想6.gba、ff6.gba……光找游戏就得花十分钟更别说还要去网上找封面、写介绍。Steam 之所以舒服是因为它帮你做完了这些琐事统一的封面、简介、截图、成就一键打开就玩。那老游戏呢能不能也享受一下这种待遇能。今天要聊的RomM就是干这个事的——一个开源、自托管的 ROM 游戏库管理系统。它的目标很直白把 NAS 里的 ROM 文件整理成一个类 Steam 的网页界面。RomM 到底能干啥别以为它就是个花里胡哨的 ROM 浏览器它实际干的事比想象多。它会扫描你 NAS 上的游戏库然后通过IGDB、ScreenScraper、Hasheous、RetroAchievements、SteamGridDB等一堆开源数据源自动帮你补全这些信息游戏名称、封面、介绍发售日期、所属平台截图、成就其他元数据刮削完之后的结果什么样想象一下你打开一个网页左边是按平台分类的游戏列表右边是带封面的卡片视图点进去有详细介绍、截图、版本信息——基本上就是个老游戏版的 Steam。除了管理之外它还支持收藏、标签、多用户一家人都能一起用EmulatorJS、Ruffle 等浏览器端模拟器网页点开直接玩多人联机 / 模拟器串流需要额外配 STUN/TURN光是浏览器直接开玩这一条对很多懒得折腾本地模拟器的朋友来说就已经值回票价了。部署流程以飞牛 NAS 为例通过 Docker Compose 部署最省事。其他品牌群晖、绿联、极空间的玩法基本一致只是后台界面叫法不同。1.新建目录2.打开docker新建项目3.填写信息如图填写信息docker-compose.ymlservices:romm:image:rommapp/romm:latestcontainer_name:rommrestart:unless-stoppeddepends_on:romm-db:condition:service_healthyenvironment:DB_HOST:romm-dbDB_NAME:rommDB_USER:rommDB_PASSWD:rommROMM_DB_DRIVER:mariadb# SSH 里执行 openssl rand -hex 32生成 64 位密钥填到下面ROMM_AUTH_SECRET_KEY:CHANGE_THIS_64_CHAR_SECRETTZ:Asia/ShanghaiHASHEOUS_API_ENABLED:trueports:-8180:8080volumes:# RomM 运行数据放系统卷-./resources:/romm/resources-./redis-data:/redis-data-./assets:/romm/assets-./config:/romm/config# 游戏资源建议放独立的大容量共享文件夹-./Games/roms:/romm/library/roms-./Games/bios:/romm/library/biosromm-db:image:mariadb:latestcontainer_name:romm-dbrestart:unless-stoppedenvironment:MARIADB_ROOT_PASSWORD:rommMARIADB_DATABASE:rommMARIADB_USER:rommMARIADB_PASSWORD:rommvolumes:# 注意权限问题如果建库失败先查这个目录权限-./database:/var/lib/mysqlhealthcheck:test:-CMD-SHELL-mariadb -h 127.0.0.1 -uromm -promm -D romm -e SELECT 1; /dev/null 21 || exit 1start_period:30sinterval:10stimeout:5sretries:5几个必须改的地方别直接复制粘贴ROMM_AUTH_SECRET_KEY必须用openssl rand -hex 32生成一个新的填进去不然安全风险很大。数据库密码MARIADB_ROOT_PASSWORD等几个romm建议都换成自己的。挂载目录./resources:/romm/resources冒号左边是nas的目录右边是容器的目录。启动打开飞牛的 把上面的docker-compose.yml粘进去点启动就行。镜像有点大第一次拉取会比较慢耐心等。第一次进入后台部署完成浏览器打开NAS_IP:8180进入初始化流程。1.选择平台这里有个坑要特别提醒平台选择那一步千万别贪心勾全选官方文档明确说过平台目录必须匹配对应的 slug。如果你全勾了/share/Games/roms下面会瞬间多出几百个空目录File Station 看着头大扫库也会很慢。我自己的做法是先用免费平台试水Game BoygbGame Boy AdvancegbaNintendo Entertainment Systemnes跑通了再按需加。后续要加平台去面板里也能加不用一口气配齐。2.创建管理员账户3.检查元数据源跳过再下一步元数据源直接跳过默认留空就行后面我们手动配。重点数据源怎么配初始化完成后登录右上角进账户设置 → 「元数据源」。这里才是让 RomM 真正发挥威力的开关。官方推荐的是Hasheous IGDB ScreenScraper这套组合但新手建议先只开 Hasheous因为它不需要 API Key。Hasheous 是什么它是个用 ROM 哈希值匹配游戏的元数据源——你给它一个文件它算哈希然后告诉你是哪个游戏、配上对应的标题、封面、简介。整个过程不需要你注册任何东西、不需要任何 Key开箱即用。我自己的方案是Hasheous 为主IGDB 兜底补充。IGDB 需要 Twitch 的 Client ID配置麻烦一点但封面质量是真的高。上传 ROM 与免费资源数据源配好就能上传游戏了。上传方式两种网页直接拖界面右上角有上传按钮小批量可以拷贝到 NAS 共享文件夹推荐比如.gba丢到Games/roms/gba/.nes丢到/Games/roms/nes/传完别忘了在面板里点一下「扫描」RomM 才会去读这些文件。批量上传几百个文件扫描和元数据匹配会跑个十几分钟这是正常现象别着急。哪里找合法的免费游戏这块必须强调一下只下免费、合法的资源。一些推荐渠道GBDev 社区维护的 Homebrew 档案库专门收集GB/GBC/GBA/NES的独立游戏约 1300 个 GB/GBC 条目约 200 个 GBA 条目约 23 个 NES 条目各平台官方商店的复古合集真正老古董的 Homebrew、独立复古新作刮削完打开平台能看到一整排带封面的游戏卡那种感觉真的像在逛老游戏博物馆。访问站点https://hh.gbdev.io - 浏览器内置模拟器直接运行游戏 - 每个作品详情页可单独下载 ROMgb/gbc/gba/nes、截图、元数据 - 分类、搜索、标签筛选1.GB/GBC 资源库git clone https://github.com/gbdev/database2.GBA Homebrew 资源库git clone https://github.com/gbadev-org/games3.NES Homebrew 资源库git clone https://github.com/nesdev-org/homebrew-db补充说明仓库里不只有 ROM 文件还附带封面截图、游戏介绍 JSON 元数据完美适配 RomM 刮削如果完整拉取体积很大也可以用 GitHub 下载 ZIP 压缩包或者使用浅克隆--depth 1减少下载体积git clone --depth 1 https://github.com/gbdev/database把文件放到./Games/roms 目录实际玩起来怎么样点进任意一个游戏底部会跳出一行工具栏——存档、读档、画面设置、Reset基本就是模拟器该有的都有。游戏会自动全屏体验跟本地模拟器基本一致。带成就的老游戏还能在网页里跳成就提示挺有意思的。进阶玩法多人联机RomM 还支持模拟器串流和多人联机操作不复杂SSH 进 NAS编辑挂载目录里的romm/config/config.yml加一段 STUN/TURN 服务器配置至少需要一个能连的 STUN重启 RomM 服务之后打开支持多人的游戏底部工具栏会出现一个网络图标点一下就能建房间喊朋友来联机。这块官方 wiki 写得很详细照着抄就行。最后RomM 这种项目就是典型的“用过就回不去”。之前我的老 ROM 就是一堆乱七八糟的文件夹现在打开 NAS 那个页面按平台分类、按收藏排序、点开就玩体感直接拉到 Steam 那个水平。它不是那种你必须立刻就装的工具但如果你硬盘里躺着一堆老游戏 ROM又懒得一个个整理强烈建议试一把。折腾中遇到问题评论区交流。拓展阅读RomM 官方文档https://docs.romm.app/GBDev Homebrew 档案库https://gbdev.io/