复古游戏库管理器RomM

news2025/2/26 8:01:11

在这里插入图片描述

什么是 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/862864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑自动重启是什么原因?这几个原因不可忽视!

“感觉我的电脑也没有用多久呀&#xff0c;怎么总是会出现自动重启的情况呢&#xff1f;由于我对电脑不是很熟悉&#xff0c;都不知道该如何解决这个问题&#xff0c;有没有朋友可以解释一下这是为什么呀&#xff1f;“ 在使用电脑时&#xff0c;如果电脑总是自动重启&#xff…

MySQL_索引的使用与设计

最左前缀法则 最左前缀法则适用于联合索引&#xff1b;查询从索引的最左列开始&#xff0c;不跳过其中的列&#xff0c;如果跳过其中的列将会导致索引失效&#xff08;后面字段的索引失效&#xff09;。 验证最左前缀法则 三个列的联合索引都同时使用 explain select * from u…

基于R做宏基因组的进化树ClusterTree分析

写在前面 同上一篇的PCoA分析&#xff0c;这个也是基于公司结果基础上的再次分析&#xff0c;重新挑选样本&#xff0c;在公司结果提供的csv结果表上进行删减&#xff0c;本地重新分析作图 步骤 表格预处理 在公司给的ClusterTree的原始表格数据里选取要保留的样本&#xf…

腾讯云轻量应用服务器CPU配置?主频性能

腾讯云轻量应用服务器CPU型号是什么&#xff1f;处理器主频多少&#xff1f;轻量应用服务器不支持指定CPU处理器型号&#xff0c;目前腾讯云服务器网账号下的轻量应用服务器&#xff0c;CPU采用2.5GHz主频的Intel(R) Xeon(R) Gold 6133 处理器&#xff0c;睿频 3.0GHz&#xff…

CTFSHOW php命令执行

目录 web29 过滤flag web30 过滤system php web31 过滤 cat|sort|shell|\. 这里有一个新姿势 可以学习一下 web32 过滤 &#xff1b; . web33 web34 web35 web36 web37 data伪协议 web38 短开表达式 web39 web40 __FILE__命令的扩展 web41 web42 重定向…

对话即数据分析,网易数帆ChatBI做到了

大数据产业创新服务媒体 ——聚焦数据 改变商业 在当今数字化快速发展的时代&#xff0c;数据已经成为业务经营与管理决策的核心驱要素。无论是跨国大企业还是新兴创业公司&#xff0c;正确、迅速地洞察数据已经变得至关重要。然而&#xff0c;传统的BI工具往往对用户有一定的…

YOLOv5、YOLOv8改进:SEAttention 通道注意力机制

基于通道的注意力机制 源自于 CVPR2018: Squeeze-and-Excitation Networks 官方代码&#xff1a;GitHub - hujie-frank/SENet: Squeeze-and-Excitation Networks 如图所示&#xff0c;其实就是将不同的通道赋予相关的权重。Attention机制用到这里用朴素的话说就是&#xff0c;…

【论文阅读】基于深度学习的时序预测——FEDformer

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长时序数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 论文三&#xff1a;2022 FEDformer&#xff1a;长序列数据预测 论文地址&#xff1a;https://arxiv.org/abs/2201.12740 github地址&a…

Cobbler自定义yum源

再次了解下Cobbler的目录结构&#xff1a; 在/var/www/cobbler/ks_mirror目录下存放的是所有的镜像。 存放的是仓库镜像&#xff1a; 在/var/lib/cobbler/kickstarts目录下是存放的所有的kickstarts文件。 再有就是/etc/cobbler这个目录&#xff1a; [rootvm1 loaders]# cd /…

mysql延时问题排查

背景介绍 最近遇到一个奇怪的问题&#xff0c;有个业务&#xff0c;每天早上七点半产生主从延时&#xff0c;延时时间12.6K&#xff1b; 期间没有抽数/备份等任务&#xff1b;查看慢日志发现&#xff0c;期间有一个delete任务&#xff0c;在主库执行了161s delete from xxxx_…

LeetCode算法心得——故障键盘(StringBuilder)

大家好&#xff0c;我是晴天学长&#xff0c;很久都没有用StringBuilder类了&#xff0c;切记这个自带字符串反转的方法&#xff0c;会在实际比赛中节约不少的时间。 1 &#xff09;故障键盘 2) .算法思路 故障键盘 1.首先把全部字母给你的了 2.只会反转前面的字符 1.字符串…

【Spring Cloud Alibaba】Linux安装RocketMQ以及RocketMQ Dashboard可视化工具

环境准备&#xff1a;Linux安装Java环境&#xff08;OracleJDK&#xff09; 在当今分布式架构的开发中&#xff0c;消息队列成为了一种常见的解决方案。RocketMQ是阿里巴巴开源的分布式消息中间件&#xff0c;具有高吞吐量、高可用性和强大的扩展性&#xff0c;因此在构建大规模…

数据API服务管理功能 - 提升数据效率的关键工具

数据API服务管理功能 - 提升数据效率的关键工具 什么是数据API服务管理功能&#xff1f; 数据API服务管理功能是一种用于有效管理和控制数据API的工具。它为用户提供了方便的界面和功能&#xff0c;以简化数据访问、解析和处理的过程。通过使用数据API服务管理功能&#xff0…

预制混凝土产品公司【PreTam Holdings】申请纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于智利的预制混凝土产品公司【PreTam Holdings】近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码为&#xff08;…

带键盘扫描电路接口的 LED 驱动控制专用芯片

VK1Q60是一种带键盘扫描电路接口的 LED 驱动控制专用芯片&#xff0c;内部集成有数据锁存 器、LED 驱动、键盘扫描等电路。SEG脚接LED阳极&#xff0c;GRID脚接LED阴极&#xff0c;可支持 8SEGx4GRID的点阵LED显示。最大支持7x4按键。本芯片性能稳定质量可靠&#xff0c;抗…

心法利器[90-95] | 谈校招:合集

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2022年新一版的文章合集已经发布&#xff0c;累计已经60w字了&#xff0c;获取方式看这里&…

腾讯云轻量应用服务器镜像应用模板清单大全

腾讯云轻量应用服务器支持多种应用模板镜像&#xff0c;Windows和Linux镜像模板都有&#xff0c;如&#xff1a;宝塔Linux面板腾讯云专享版、WordPress、WooCommerce、LAMP、Node.js、Docker CE、K3s、宝塔Windows面板和ASP.NET等应用模板镜像&#xff0c;腾讯云服务器网分享腾…

i茅台自动申购算法协议分析

首发地址:http://zhuoyue360.com/crack/104.html 一、引言 今日看到有人分享了i茅台自动申购的文章。但是它酷似引流文章&#xff0c;全文一张图&#xff0c;呜呜呜。无法白嫖。太可恶了&#xff0c;因此&#xff0c;我来啦~ 我来整一整&#xff0c;我也要抢茅子&#xff01; …

第二章:CSS基础进阶-part3:弹性例子布局

文章目录 Flex盒模型二、常见属性2.1 flex属性2.2 justify-content2.3 flex-wrap2.4 flex-flow2.5 align-items2.6 父容器-align-content Flex盒模型 1、普通盒模型 2、弹性盒布局 使用弹性盒布局能让容器的宽度跟随浏览器窗口的变化而变换 二、常见属性 2.1 flex属性 2.2 …

玩机搞机---安卓全机型各种玩机 搞机工具 推荐 一

安卓机型有很多大佬开发的工具箱可以让你在玩机搞机中达到事半功倍的效果。虽然都是adb指令操作。但图形化直观界面一目了然。下面为感兴趣的友友推荐一些工具。 任何的联机操作都有可能导致手机系统崩溃 严重会不开机。请理解工具箱中各个选项操作原理。谨慎操作 &#x1f4…