RomM v3.7.0 版本发布:游戏收藏管理系统的重大更新
RomM 是一个开源的 ROM 游戏收藏管理系统,它允许游戏爱好者组织、管理和游玩他们的游戏收藏。作为一个全栈解决方案,RomM 提供了从游戏元数据获取、文件管理到浏览器内模拟游玩的一站式体验。最新发布的 v3.7.0 版本带来了多项重要功能和改进,使这个系统更加完善和易用。
国际化支持与多语言界面
v3.7.0 版本最显著的变化之一是引入了完整的国际化(i18n)支持。系统现在支持英语、西班牙语、法语、德语、葡萄牙语、俄语、韩语和中文等多种语言界面。这一功能通过 JSON 语言文件实现,使得社区贡献新的语言翻译变得简单直接。
对于开发者而言,国际化实现采用了现代前端框架的标准做法,所有界面文本都被提取到独立的翻译文件中。系统会自动根据用户浏览器语言设置或账户偏好显示相应语言界面。在技术实现上,这涉及到对前端组件的大量重构,确保所有用户界面元素都支持动态文本替换。
OpenID Connect 身份验证集成
安全认证方面,v3.7.7 新增了对 OpenID Connect(OIDC)协议的支持。这意味着 RomM 现在可以与专业身份提供商如 Authentik、Authelia 或 Keycloak 集成,实现企业级的单点登录体验。
OIDC 集成不仅提供了更安全的认证方式,还简化了用户管理。管理员可以配置是否允许 OIDC 自动创建用户,当新用户首次通过 OIDC 登录时,系统会自动为其生成账户。在实现细节上,系统使用了标准的 OAuth2 流程,包括授权码获取、令牌交换和用户信息端点查询等步骤。
平台与收藏管理增强
平台和游戏收藏的管理界面经过了全面重新设计。新增的信息面板提供了更丰富的元数据显示,包括自定义平台名称、封面图片长宽比调整等功能。这些改进使得管理大型游戏库更加直观高效。
技术实现上,这些变化涉及前后端的协同改造。后端新增了平台显示名称(display_name)字段,允许用户为平台设置别名而不影响原始标识符。前端则采用了现代化的抽屉式布局,在不离开当前页面的情况下提供详细信息查看和编辑功能。
主页个性化与游戏体验改进
用户界面自定义选项得到了扩展,特别是主页布局现在支持更多配置。新增的"继续游玩"行会自动显示最近在 EmulatorJS 中玩过的游戏,提升了用户体验的连续性。
游戏模拟方面,3DS 游戏(.cia 文件)现在支持生成安装二维码,玩家可以直接通过 FBI 自制软件扫描安装到修改的 3DS 主机上。虽然受限于 3DS 的网络性能,下载速度可能较慢,但这为移动设备管理提供了便利。
架构优化与数据库支持
在系统架构层面,v3.7.0 引入了多项重要改进:
-
Docker 镜像分层:现在提供标准版和 slim 版两种镜像。slim 版体积更小,只在首次游玩时从 CDN 下载必要的模拟器核心,适合资源受限的环境。
-
PostgreSQL 实验性支持:除了默认的 SQLite,现在可以选择 PostgreSQL 作为数据库后端。虽然还标记为实验性功能,这为需要更高性能和数据一致性的部署场景提供了可能。
-
错误监控集成:通过配置 Sentry DSN,管理员可以启用错误报告功能,帮助诊断系统问题。值得注意的是,这一功能默认关闭,且数据不会发送给 RomM 开发团队。
性能优化与问题修复
在底层优化方面,这个版本包含多项性能改进:
- 扫描匹配游戏时采用批量数据库查询,显著提高了大型游戏库的处理速度
- 使用异步缓存优化 IGDB 元数据获取流程
- 重构了前端布局代码,改善渲染性能
- 修复了哈希计算错误处理、MySQL 迁移兼容性等多处问题
总结
RomM v3.7.0 标志着该项目的一个重要里程碑,通过国际化、企业级认证支持和界面定制化等功能,使其从一个技术爱好者的工具向成熟的产品迈进。特别是 OIDC 支持和 PostgreSQL 兼容性,为在企业环境中部署提供了可能。3DS 二维码功能和继续游玩记录等细节改进,则体现了对真实用户需求的关注。
对于现有用户,升级到这个版本将获得更稳定、功能更丰富的体验;对于新用户,现在正是评估和采用 RomM 的好时机。开发团队也通过拆分 Docker 镜像、增加数据库选项等方式,让不同规模和需求的部署都能找到合适的配置方案。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0214
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0138
uni-appA cross-platform framework using Vue.jsJavaScript08
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03