☰
星哥带你玩飞牛NAS-36:给NAS装个老游戏ROM ,浏览器直接开玩
2026/10/13 15:06:22 网站建设 项目流程

星哥带你玩飞牛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.yml

services: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_SECRET"TZ:Asia/ShanghaiHASHEOUS_API_ENABLED:"true"ports:-"8180:8080"volumes:# 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 2>&1 || exit 1'start_period:30sinterval:10stimeout:5sretries:5

几个必须改的地方,别直接复制粘贴:

  1. ROMM_AUTH_SECRET_KEY:必须用openssl rand -hex 32生成一个新的填进去,不然安全风险很大。
  2. 数据库密码:MARIADB_ROOT_PASSWORD等几个romm,建议都换成自己的。
  3. 挂载目录:./resources:/romm/resources冒号左边是nas的目录,右边是容器的目录。

启动

打开飞牛的 ,把上面的docker-compose.yml粘进去,点启动就行。

镜像有点大,第一次拉取会比较慢,耐心等。

第一次进入后台

部署完成,浏览器打开NAS_IP:8180,进入初始化流程。

1.选择平台

这里有个坑要特别提醒:

平台选择那一步,千万别贪心勾全选!

官方文档明确说过,平台目录必须匹配对应的 slug。如果你全勾了,/share/Games/roms下面会瞬间多出几百个空目录,File Station 看着头大,扫库也会很慢。

我自己的做法是先用免费平台试水:

  • Game Boy(gb)
  • Game Boy Advance(gba)
  • Nintendo Entertainment System(nes)

跑通了再按需加。后续要加平台,去面板里也能加,不用一口气配齐。

2.创建管理员账户

3.检查元数据源(跳过)

再下一步元数据源直接跳过(默认留空就行,后面我们手动配)。

重点:数据源怎么配

初始化完成后登录,右上角进账户设置 → 「元数据源」。这里才是让 RomM 真正发挥威力的开关。

官方推荐的是Hasheous + IGDB + ScreenScraper这套组合,但新手建议先只开 Hasheous,因为它不需要 API Key。

Hasheous 是什么?它是个用 ROM 哈希值匹配游戏的元数据源——你给它一个文件,它算哈希,然后告诉你是哪个游戏、配上对应的标题、封面、简介。整个过程不需要你注册任何东西、不需要任何 Key,开箱即用。

我自己的方案是:Hasheous 为主,IGDB 兜底补充。IGDB 需要 Twitch 的 Client ID,配置麻烦一点,但封面质量是真的高。

上传 ROM 与免费资源

数据源配好,就能上传游戏了。

上传方式

两种:

  1. 网页直接拖:界面右上角有上传按钮,小批量可以
  2. 拷贝到 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 - 浏览器内置模拟器直接运行游戏 - 每个作品详情页,可单独下载 ROM(gb/gbc/gba/nes)、截图、元数据 - 分类、搜索、标签筛选

1.GB/GBC 资源库

git clone https://github.com/gbdev/database

2.GBA Homebrew 资源库

git clone https://github.com/gbadev-org/games

3.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 还支持模拟器串流和多人联机,操作不复杂:

  1. SSH 进 NAS,编辑挂载目录里的romm/config/config.yml
  2. 加一段 STUN/TURN 服务器配置(至少需要一个能连的 STUN)
  3. 重启 RomM 服务

之后打开支持多人的游戏,底部工具栏会出现一个网络图标,点一下就能建房间,喊朋友来联机。

这块官方 wiki 写得很详细,照着抄就行。

最后

RomM 这种项目就是典型的“用过就回不去”。

之前我的老 ROM 就是一堆乱七八糟的文件夹,现在打开 NAS 那个页面,按平台分类、按收藏排序、点开就玩,体感直接拉到 Steam 那个水平。

它不是那种你必须立刻就装的工具,但如果你硬盘里躺着一堆老游戏 ROM,又懒得一个个整理,强烈建议试一把。

折腾中遇到问题,评论区交流。

拓展阅读:

  • RomM 官方文档:https://docs.romm.app/
  • GBDev Homebrew 档案库:https://gbdev.io/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询