复古游戏库管理器RomM

在这里插入图片描述

什么是 RomM ?

RomM(代表 Rom Manager)是一个专注于复古游戏的游戏库管理器。通过 Web 浏览器管理和组织您的所有游戏。受 Jellyfin 的启发,允许您从现代界面管理所有游戏,同时使用 IGDB 元数据丰富它们。

RomM 支持的游戏库类型比较多,gbagbcswitch

在这里插入图片描述

但需要注意的是,如果你的群晖不支持科学上网 ,会导致扫描游戏库时无法结束,所以要在域名黑名单中加上 twitch.tv

在这里插入图片描述

如果群晖不具备科学上网的条件,就不用浪费时间了

前期准备

建数据库

RomM 支持 MariaDBSQLite 两种数据库,老苏原本想用群晖自带的 MariaDB 10 数据库,但运行时容器日志中会显示 CRITICAL: [ROMM] Not supported "mariadb" database

本文完成于 3 月底,现在是不是已经支持,老苏没再试,也许可以了,也许还是不行;

在这里插入图片描述

所以最后用了 SQLite,当然你用 MySQL 容器也是可以的

注册 IGDB

RomM 使用了互联网游戏数据库 ( IGDB ) 加载信息,为了使用其 API,必须要拥有一个 Twitch 帐户。

官方文档有注册的流程:https://api-docs.igdb.com/#account-creation

直接打开 https://dev.twitch.tv/login 注册免费账号,登录后需要在 https://www.twitch.tv/settings/security 中开启双重身份认证

在这里插入图片描述

手机上需要下载验证器应用,可以用 microsoftAuthenticator 或者 Authy

在这里插入图片描述

用生成的 6 位数字验证

在这里插入图片描述

要支持多种验证,否则一旦验证器不在身边,会比较麻烦

在这里插入图片描述

应用程序 --> 注册您的应用程序

在这里插入图片描述

随便填的,因为实际上用不到回调

在这里插入图片描述

进入 管理

在这里插入图片描述

记下 客户端 IDClient ID) 和 客户端密码Client Secret

在这里插入图片描述

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 romm ,选择第一个 zurdi15/romm,版本选择 latest

本文最后折腾时, latest 版本对应为 1.8.4,本文发布时,最新版本为 1.9.1

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 romm,并在其中建三个子文件夹 databaselibraryresources

文件夹装载路径说明
docker/romm/database/romm/database存放数据库
docker/romm/library/romm/library游戏库
docker/romm/resources/romm/resources封面

在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
303880

在这里插入图片描述

环境

可变
ROMM_DB_DRIVER数据库类型可以是 sqlite 或者 mariadb
CLIENT_IDIGDB 申请的 Client ID
CLIENT_SECRETIGDB 申请的 Client Secret
STEAMGRIDDB_API_KEY默认设为 WIP,应该还没启用

在这里插入图片描述

更多的环境变量,可以参考官方的样例:https://github.com/zurdi15/romm/blob/master/examples/docker-compose.example.yml

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 romm 和 子目录
mkdir -p /volume2/docker/romm/{database,library,resources}

# 进入 romm 目录
cd /volume2/docker/romm

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name romm \
   -p 3038:80 \
   -v $(pwd)/library:/romm/library \
   -v $(pwd)/database:/romm/database \
   -v $(pwd)/resources:/romm/resources \
   -e ROMM_DB_DRIVER=sqlite \
   -e CLIENT_ID=<你的 Client ID> \
   -e CLIENT_SECRET=<你的 Client Secret> \
   -e STEAMGRIDDB_API_KEY=WIP \
   zurdi15/romm:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

zurdi15/romm:latest 对应的版本是 1.3

version: '3'

services:
  romm:
    image: zurdi15/romm:latest
    container_name: romm
    restart: "unless-stopped"
    volumes:
      - ./library:/romm/library
      - ./database:/romm/database
      - ./resources:/romm/resources
    ports:
      - 3038:80
    environment:
      - ROMM_DB_DRIVER=sqlite
      - CLIENT_ID=<你的 Client ID>
      - CLIENT_SECRET=<你的 Client Secret>
      - STEAMGRIDDB_API_KEY=WIP

然后执行下面的命令

# 新建文件夹 romm 和 子目录
mkdir -p /volume2/docker/romm/{database,library,resources}

# 进入 romm 目录
cd /volume2/docker/romm

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3038 就能看到主界面

在这里插入图片描述

上传游戏库

老苏在:http://www.gbarom.cn 随便下了几个,用于测试

游戏库的结构是有要求的,因为还不支持从网页上传,所以需要在 File Station 中自行上传。

RomM目前支持两种不同的文件夹结构,首先会尝试查找 结构 1,如果不存在,将尝试查找 结构 2

  • 结构 1(高优先级)- 库文件夹根目录下的 roms 文件夹:
library/
├─ roms/
   ├─ gbc/
   │  ├─ rom_1.gbc
   │  ├─ rom_2.gbc
   │
   ├─ gba/
   │  ├─ rom_1.gba
   │  ├─ rom_2.gba
   │ 
   ├─ ps/
      ├─ my_multifile_game/
      │   ├─ my_game_cd1.iso
      │   ├─ my_game_cd2.iso
      │
      ├─ rom_1.iso
  • 结构 2(低优先级)- 每个平台文件夹内的 roms 文件夹
library/
├─ gbc/
│  ├─ roms/
│     ├─ rom_1.gbc
│     ├─ rom_2.gbc
|
├─ gba/
│  ├─ roms/
│     ├─ rom_1.gba
│     ├─ rom_2.gba
|
├─ ps/
│  ├─ roms/
│     ├─ my_multifile_game/
│     │  ├─ my_game_cd1.iso
│     │  ├─ my_game_cd2.iso
│     │
│     ├─ rom_1.iso

老苏采用的是 结构 1

在这里插入图片描述

开始扫描

在这里插入图片描述

扫描完成后会有提示

在这里插入图片描述

理论上会有封面,但是可能老苏下载的 rom 是修改过的吧

目前的版本还不支持自定义游戏封面

在这里插入图片描述

可以直接下载

在这里插入图片描述

添加 rom 后需要重新 scan

在这里插入图片描述

点标题,会显示详情

在这里插入图片描述

还可以编辑

在这里插入图片描述

参考文档

zurdi15/romm: RomM (Rom Manager) is a web based retro roms manager integrated with IGDB.
地址:https://github.com/zurdi15/romm

RomM - Retro games library manager : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/123syuc/romm_retro_games_library_manager/

[Other] error bind mount using example compose file · Issue #35 · zurdi15/romm
地址:https://github.com/zurdi15/romm/issues/35

超级马里奥乐园1:DX - 掌机迷 - GBC游戏下载_GBC游戏攻略
地址:http://www.gbarom.cn/gbc/50497.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值