Steam ROM Manager 自定义变量使用教程:灵活配置游戏标题和路径

Steam ROM Manager 自定义变量使用教程:灵活配置游戏标题和路径

【免费下载链接】steam-rom-manager The bulk game importer and artwork manager for Steam! 【免费下载链接】steam-rom-manager 项目地址: https://gitcode.com/gh_mirrors/st/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]"

如何使用自定义变量

基础使用方法

  1. 访问自定义变量文件:在 Steam ROM Manager 安装目录中找到 files/customVariables.json 文件,您可以使用文本编辑器直接修改或添加新的变量映射。

  2. 添加新变量:按照 JSON 格式添加新的键值对,键为原始 ROM 文件名(不包含扩展名),值为您希望在 Steam 中显示的游戏标题:

"mycustomrom": "My Custom Game Title (Special Edition)"
  1. 应用变量到解析器:在解析器配置中,使用 {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():从输入文本中提取所有变量

以下是一个简化的变量替换流程:

  1. 输入文本通过 VariableParser 进行解析
  2. 构建语法树识别变量占位符
  3. 根据 files/customVariables.json 中的映射关系替换变量
  4. 输出处理后的文本

常见问题解决

变量不生效怎么办?

  1. 确保变量名称与 ROM 文件名完全匹配(不包含扩展名)
  2. 检查 JSON 格式是否正确,使用 JSON 验证工具 验证 files/customVariables.json
  3. 在解析器配置中正确使用变量语法 {CustomVariable|key}
  4. 尝试重启 Steam ROM Manager 使更改生效

如何批量添加自定义变量?

如果您有大量变量需要添加,可以使用 Excel 或 Google 表格准备键值对,然后通过公式生成 JSON 格式:

=""""&A1&""": """&B1&""","

将生成的内容复制到 files/customVariables.json 中即可。

变量优先级问题

当多个变量可能匹配时,Steam ROM Manager 会按照以下优先级处理:

  1. 完全匹配优先于部分匹配
  2. 较长的键优先于较短的键
  3. 自定义添加的变量优先于预设变量

总结

自定义变量是 Steam ROM Manager 中一项强大而灵活的功能,通过 files/customVariables.json 文件和 src/lib/variable-parser.ts 实现的解析逻辑,玩家可以轻松实现游戏标题的标准化和路径的优化。无论是处理街机 ROM 的复杂命名,还是组织不同平台的游戏库,自定义变量都能显著提升 Steam ROM Manager 的使用体验,让您的 Steam 游戏库更加专业和整洁。

掌握自定义变量的使用方法,将帮助您充分发挥 Steam ROM Manager 的潜力,打造个性化的游戏库管理系统。如果您有特殊的命名规则需求,不妨尝试创建自己的变量映射,体验定制化管理带来的便利!

【免费下载链接】steam-rom-manager The bulk game importer and artwork manager for Steam! 【免费下载链接】steam-rom-manager 项目地址: https://gitcode.com/gh_mirrors/st/steam-rom-manager

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

抵扣说明:

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

余额充值