Goldberg Steam Emulator 补丁流程

目录

Goldberg Steam Emulator(GSE)通过替换游戏的 steam_api(64).dll,让游戏不依赖 Steam 客户端也能运行。游戏调 Steam API 时实际走的是模拟器,模拟器返回伪造响应,游戏以为 Steam 在跑。

原版项目已经不怎么更新了,社区现在主要用 GBE Fork,一个活跃维护的分支。另外还需要 Steamless 来去除 exe 自带的 DRM。

相关项目:

  • GBE Fork,当前社区主流的模拟器
  • Steamless,去掉 exe 上 SteamDRM 的工具

1. 用 Steamless 处理 exe

Steamless 去掉的是 exe 上的 SteamDRM Wrapper(也叫 Steam Stub)。无论 exe 有没有被加密,都可以直接跑一次 Steamless——没 DRM 的文件会被安全跳过,不会损坏。

下载 Steamless 之后,打开 Steamless.exe,选游戏主 exe,点解包。处理完会在同目录生成一个 .unbind 文件。原 exe 备份一下,把 .unbind 重命名成原 exe 的名字替换就行。

大 exe(超过 100MB)可能要花几分钟。

2. 找 steam_api(64).dll

在游戏文件夹里搜 steam_api*.dll

结果有两种情况。

只有一个 DLL: 通用/Unity 引擎游戏,替换这个 DLL,steam_settings 文件夹放它旁边。

有两个 DLL(Unreal Engine 游戏):

<GameDir>\Engine\Binaries\ThirdParty\Steamworks\Steamv157\Win64\steam_api64.dll
<GameDir>\<GameName>\Binaries\Win64\steam_api64.dll

UE 引擎启动时从 Engine 目录加载 steam_api64.dll,不是从游戏主目录。替换 Engine 目录的那个,steam_settings 也放 Engine 目录。游戏主目录的 DLL 保持原版,不要动。

3. 备份原版 DLL

找到要替换的 DLL 之后,复制一份,重命名成 steam_api64.dll.old。后续生成接口文件要用到这个备份。

4. 替换成模拟器 DLL

从 GBE Fork 发布包里,把对应架构的 DLL 复制过去覆盖原版:

  • 64 位游戏:regular\x64\steam_api64.dll
  • 32 位游戏:regular\x86\steam_api.dll

模拟器 DLL 大约 7–11MB,原版大约 200–400KB,差别很明显。

如果是 UE 引擎游戏,游戏主目录的 DLL 保持原版不动。

5. 创建 steam_settings 目录

在模拟器 DLL 同级创建一个 steam_settings 文件夹。UE 引擎放 Engine 目录,通用引擎放游戏 exe 同级。

6. 放 steam_appid.txt

在 Steam 商店页面的 URL 里找 AppID:store.steampowered.com/app/<数字>/

新建 steam_settings\steam_appid.txt,只写纯数字 AppID。比如 3683770

7. 生成 steam_interfaces.txt(推荐)

接口版本不匹配会导致崩溃或功能缺失。用 GBE Fork 里自带的 generate_interfaces_x64.exe(或 x86 版),对备份的原版 DLL 跑一次。

把备份的 steam_api64.dll.old 拖进工具窗口就行。工具会在当前目录生成 steam_interfaces.txt,把它移到 steam_settings\ 里。

必须对原版 DLL 跑,不能用模拟器 DLL。

8. 可选:配置 INI 文件

steam_settings.EXAMPLE\ 里有模板,按需复制到 steam_settings\,去掉 .EXAMPLE 中缀。

关键配置:

  • configs.user.inilocal_save_path=./path/relative/to/dll,让存档存到游戏目录而非全局 %appdata%
  • configs.user.iniaccount_name=Player,改游戏里显示的名字
  • configs.user.inilanguage=english,语言
  • configs.main.inioffline=0,离线模式
  • configs.app.iniunlock_all=1,解锁所有 DLC

不配 INI 也行,模拟器有合理的默认值。

常见问题

游戏闪退或无法启动,按这个顺序排查:exe 有没有跑过 Steamless,DLL 有没有换对位置(UE 引擎看仔细),steam_settings 是否和 DLL 同级,steam_interfaces.txt 是否从原版 DLL 生成。

默认存档%appdata%\GSE Saves\。想改成游戏目录本地存档,在 configs.user.ini 里设 local_save_path

UE 引擎游戏只替换 Engine 目录的 DLL,游戏主目录的 DLL 不要动。steam_settings 也放 Engine 目录。

恢复原版:把 steam_api64.dll.old 改回 steam_api64.dll,删掉 steam_settings 文件夹和 steam_appid.txt

steam_interfaces.txt 生成在运行工具的当前目录,不是工具本身的位置。建议先切到模拟器 DLL 所在目录再跑,生成的文件直接移到 steam_settings\

自动化工具

不想手动操作的话,有两个社区工具:

ARMGDDN Autocracker,基于 GBE Fork,装好后在游戏文件夹上右键就能自动完成补丁。仓库: https://github.com/KaladinDMP/ARMGDDN-Autocracker。作者 GitHub 账号曾被封过,最新版可能要从 Telegram 找。

SteamAutoCracker,内置调用 Steamless 和 Goldberg,一键处理 DRM 去除和 DLL 替换。仓库: https://github.com/BigBoiCJ/SteamAutoCracker

目录