Steam ROM Manager 自定义变量使用教程:灵活配置游戏标题和路径
Steam ROM Manager 是一款强大的游戏批量导入和 artwork 管理工具,能够帮助玩家将各种游戏平台的 ROM 文件无缝集成到 Steam 客户端中。自定义变量功能是其核心特性之一,允许用户通过灵活的配置规则来优化游戏标题显示和文件路径处理,让您的 Steam 游戏库更加整洁有序。
什么是自定义变量?
自定义变量是 Steam ROM Manager 提供的高级配置功能,通过预设的键值对映射关系,自动替换游戏标题中的特殊字符或标准化文件路径格式。这项功能特别适用于处理不同平台 ROM 的命名差异,例如街机游戏常见的简短文件名与完整游戏名称的转换。
在项目中,自定义变量的定义主要存储在 files/customVariables.json 文件中,该文件包含了数千条游戏名称映射规则,例如将 "1941" 转换为 "1941 - Counter Attack",将 "bubblebobble" 转换为 "Bubble Bobble" 等。
自定义变量的应用场景
1. 游戏标题标准化
当您导入街机 ROM 时,经常会遇到类似 "1941j"、"1941u" 这样的文件名,这些通常代表不同地区或版本的游戏。通过自定义变量,您可以将这些简短标识符自动转换为完整的游戏名称:
"1941j": "1941 - Counter Attack (Japan)",
"1941u": "1941 - Counter Attack (USA)",
"1941": "1941 - Counter Attack (World)"
2. 路径优化与平台分类
自定义变量还可以与解析器配合使用,通过变量替换功能自动生成带有平台分类的文件路径。例如,在 src/lib/variable-parser.ts 中实现的变量解析逻辑,能够将 ROM 文件路径中的系统名称提取出来,用于创建分类文件夹:
{SteamDir}/roms/{SystemName}/{GameTitle}
3. 特殊字符处理
许多 ROM 文件名包含括号、连字符等特殊字符,可能导致显示异常或解析错误。自定义变量可以轻松处理这些情况,确保游戏标题在 Steam 中正确显示:
"99lstwarb": "'99: The Last War (bootleg) [Bad colors in some scenes]",
"bgareggabl": "1945 Part 2 (Chinese hack of Battle Garegga) [Hack]"
如何使用自定义变量
基础使用方法
-
访问自定义变量文件:在 Steam ROM Manager 安装目录中找到 files/customVariables.json 文件,您可以使用文本编辑器直接修改或添加新的变量映射。
-
添加新变量:按照 JSON 格式添加新的键值对,键为原始 ROM 文件名(不包含扩展名),值为您希望在 Steam 中显示的游戏标题:
"mycustomrom": "My Custom Game Title (Special Edition)"
- 应用变量到解析器:在解析器配置中,使用
{CustomVariable}语法引用自定义变量。例如,在标题模板中输入:
{CustomVariable|{filename}}
这将自动将 ROM 文件名替换为自定义变量中定义的标题。
高级技巧:结合解析器使用
Steam ROM Manager 的解析器系统支持自定义变量的高级应用,您可以在 src/lib/parsers/glob.parser.ts 等解析器实现中找到相关逻辑。以下是一些实用技巧:
-
嵌套变量:使用
{CustomVariable|{SystemName}}这样的嵌套语法,实现基于平台的动态变量替换。 -
默认值处理:当变量不存在时,可以提供默认值:
{CustomVariable|{filename}|Unknown Game} -
正则表达式结合:在解析器配置中,将自定义变量与正则表达式结合使用,实现更复杂的文本转换:
{CustomVariable|{filename}|{filename:regexReplace(/^(\d+)/, 'Game $1')}}
自定义变量文件结构解析
files/customVariables.json 文件采用 JSON 对象格式,其中每个键值对代表一个变量映射。项目中已经包含了针对不同游戏平台的预设变量,主要分为以下几类:
街机平台变量
包含大量街机游戏的名称映射,特别是针对 MAME 和 FinalBurn Neo 等模拟器的 ROM 命名规则:
"FBN": {
"88games": "'88 Games",
"flagrall": "'96 Flag Rally",
"99lstwarb": "'99: The Last War (bootleg) [Bad colors in some scenes]"
// 更多街机游戏...
}
主机平台变量
针对不同家用游戏机平台的 ROM 名称标准化:
"Nintendo Wii U": {
// Wii U 游戏变量...
},
"Sony PlayStation 3": {
// PS3 游戏变量...
}
自定义变量的实现原理
Steam ROM Manager 的变量解析功能主要由 src/lib/variable-parser.ts 文件中的 VariableParser 类实现。该类提供了完整的变量解析、替换和提取功能,核心方法包括:
buildAST():构建变量解析的抽象语法树replaceVariables():根据提供的替换函数替换变量extractVariables():从输入文本中提取所有变量
以下是一个简化的变量替换流程:
- 输入文本通过
VariableParser进行解析 - 构建语法树识别变量占位符
- 根据 files/customVariables.json 中的映射关系替换变量
- 输出处理后的文本
常见问题解决
变量不生效怎么办?
- 确保变量名称与 ROM 文件名完全匹配(不包含扩展名)
- 检查 JSON 格式是否正确,使用 JSON 验证工具 验证 files/customVariables.json
- 在解析器配置中正确使用变量语法
{CustomVariable|key} - 尝试重启 Steam ROM Manager 使更改生效
如何批量添加自定义变量?
如果您有大量变量需要添加,可以使用 Excel 或 Google 表格准备键值对,然后通过公式生成 JSON 格式:
=""""&A1&""": """&B1&""","
将生成的内容复制到 files/customVariables.json 中即可。
变量优先级问题
当多个变量可能匹配时,Steam ROM Manager 会按照以下优先级处理:
- 完全匹配优先于部分匹配
- 较长的键优先于较短的键
- 自定义添加的变量优先于预设变量
总结
自定义变量是 Steam ROM Manager 中一项强大而灵活的功能,通过 files/customVariables.json 文件和 src/lib/variable-parser.ts 实现的解析逻辑,玩家可以轻松实现游戏标题的标准化和路径的优化。无论是处理街机 ROM 的复杂命名,还是组织不同平台的游戏库,自定义变量都能显著提升 Steam ROM Manager 的使用体验,让您的 Steam 游戏库更加专业和整洁。
掌握自定义变量的使用方法,将帮助您充分发挥 Steam ROM Manager 的潜力,打造个性化的游戏库管理系统。如果您有特殊的命名规则需求,不妨尝试创建自己的变量映射,体验定制化管理带来的便利!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



