layeredtools/steamlayer
GitHub: layeredtools/steamlayer
这是一款基于 Python 的命令行工具,用于自动化修补 Steam 游戏以通过 Goldberg 模拟器实现离线运行。
Stars: 0 | Forks: 0
# steamlayer
修补 Steam 游戏以通过 [Goldberg emulator](https://github.com/Detanup01/gbe_fork) 运行。
查找 AppID,获取 DLC 信息,替换 DLL,备份原始文件。只需一条命令。



## 功能说明
你将工具指向游戏文件夹。它会识别 AppID(或者由你指定),从 Steam 获取 DLC 元数据,备份原始的 `steam_api.dll` 文件,放入 Goldberg 的替代文件,并写入配置。如果出现问题或者你想恢复原文件,`--restore` 会干净地撤销所有更改。
7-Zip 和 Goldberg 会在首次运行时自动下载 —— 无需手动安装。
## 安装
```
pip install steamlayer
```
或者使用 pipx 如果你想要隔离环境:
```
pipx install steamlayer
```
**系统要求:**
* Python 3.13+
* Windows
* 系统中需安装 7-Zip(仅在首次运行时需要,之后 steamlayer 会管理自己的副本)。
## 使用
```
steamlayer "C:\Games\Portal 2"
```
这是最常见的用法。它会自动完成所有操作。如果 AppID 自动检测出错,请显式指定:
```
steamlayer "C:\Games\Portal 2" --appid 620
```
不确定它会做什么?先运行 `--dry-run`:
```
steamlayer "C:\Games\Portal 2" --dry-run
```
出错了,想要恢复文件:
```
steamlayer "C:\Games\Portal 2" --restore
```
### 所有选项
| 标志 | 描述 |
|---|---|
| `-a`, `--appid
` | 跳过自动检测,使用指定的 AppID |
| `-d`, `--dry-run` | 仅显示将要执行的操作,不修改任何文件 |
| `-n`, `--no-network` | 仅使用缓存数据,不发起网络请求 |
| `-r`, `--restore` | 还原原始 DLL 并清理文件 |
| `-y`, `--yolo` | 接受置信度较低的 AppID 匹配结果 |
| `-v` / `-vv` | 更多输出信息(`-v` 为 info,`-vv` 为 debug) |
| `--cache-dir ` | 覆盖缓存目录位置 |
| `--no-defender-check` | 跳过 Defender 警告 |
| `--version` | 打印版本号并退出 |
## 工作原理
**AppID 检测** —— 首先检查游戏文件夹中的 `steam_appid.txt` 或 `.acf` 清单文件。如果未找到,则搜索本地缓存的社区索引,最后回退到 Steam 商店 API。如果两个结果看起来可能性相当,它会提示你选择。
**DLC 元数据** —— 从 Steam API 获取 DLC 列表,并使用同样的社区索引解析名称。索引中缺失的项目会逐个查询。结果会缓存一周,因此重复运行很快。
**修补** —— 查找游戏目录树中的每个 `steam_api.dll` 和 `steam_api64.dll`,将原始文件存放到 `/__original_files__/`,并复制相应的 Goldberg DLL(x32 或 x64)。配置文件放在每个 DLL 旁边的 `steam_settings/` 文件夹中,并在游戏根目录下生成 `steam_appid.txt`。
**还原** —— 将存放的 DLL 移回原位,删除 `steam_settings/` 目录,清理散落的配置文件,并在存放文件夹为空时将其删除。即使中途失败,再次运行也是安全的。
## Windows Defender
如果开启了实时防护,请在运行前添加文件夹排除项:
**Windows Security → Virus & threat protection → Manage settings → Exclusions → Add an exclusion → Folder**
```
C:\Users\\.steamlayer\vendors
```
替换 Steam DLL 的行为看起来可疑,Defender 有时会在下载过程中隔离 Goldberg 的文件。添加排除项可以防止这种情况发生。该排除项仅覆盖这一个文件夹,不会影响系统中的其他内容。
## 故障排除
**7-Zip 引导失败** —— steamlayer 需要一个现有的 `7z.exe` 来获取自己的副本。请确保它位于 `PATH` 环境变量中或安装在默认位置(`C:\Program Files\7-Zip\`)。
**检测到的游戏错误** —— 使用 `--appid`。你可以在 [SteamDB](https://www.steamdb.info) 或商店 URL 中找到正确的 ID。
**Defender 在安装过程中隔离了文件** —— 添加上述排除项并重新运行。steamlayer 将重新下载并重试。
**修补后游戏无法运行** —— 运行 `--restore`。如果该操作也在中途失败,请再次运行 —— 它会从上次中断的地方继续。
## 免责声明
本工具旨在用于你合法拥有的软件。请负责任地使用。标签:7-Zip, AppID, DLC下载, DLL替换, Goldberg模拟器, MIT协议, Python, Python3.13, Steam, Steam_api, Steam模拟, Steam模拟器, Steam游戏, 单文件运行, 文件备份, 文档结构分析, 无后门, 游戏修改, 游戏启动器, 游戏工具, 游戏破解, 网络调试, 自动化, 逆向工具