多开 - 在一台电脑上运行两个副本

多开 - 在一台电脑上运行两个副本

移除单实例限制,使两人可以在同一台PC上玩《艾尔登法环》。对于ASTER、Sandboxie及其他多席位设置至关重要。即插即用的DLL代理——不修改任何游戏文件,更新后依然有效。包含PowerShell。

工具

功能说明

艾尔登法环通过创建系统级互斥体(Global\SekiroMutex)来阻止多开。即使你在不同的 Windows 用户或桌面环境下运行两份游戏,第二份也无法启动。

本模组通过一个微型 DLL 代理(48KB)移除了这一限制。使用 ASTER、Sandboxie 或任何多席位/分屏桌面配置,两人即可在同一台机器上共同游戏。

工作原理

模组利用了 Windows DLL 的搜索顺序——游戏会优先加载其文件夹中的 dinput8.dll,而非系统版本。加载后,它会挂钩互斥体创建调用,并返回一个虚拟句柄来代替真实的命名互斥体。这样每个实例都会认为自己是唯一的。

  • 不修改任何游戏文件
  • 不受游戏更新影响(挂钩的是 Windows API,而非游戏代码)
  • 无需运行脚本——只需放入文件即可启动
  • 兼容无缝联机(Seamless Coop)

安装方法

  1. 从文件选项卡下载 dinput8.dll
  2. 将其复制到你的艾尔登法环 Game/ 文件夹(与 eldenring.exe 位于同一目录)
  3. 在两个环境中分别启动游戏

查找 Game 文件夹的方法:Steam → 右键点击艾尔登法环 → 管理 → 浏览本地文件 → Game/

卸载方法

从 Game/ 文件夹中删除 dinput8.dll 即可。就是这么简单。

验证是否生效

每次启动时,Game 文件夹中都会生成一个名为 DINPUT8.log 的小型日志文件。如果看到“BLOCKED SekiroMutex”字样,说明模组正在正常工作。

兼容性

  • 无缝联机(Seamless Coop) — 兼容,无冲突
  • ModEngine2 — 冲突(两者都使用 dinput8.dll)。请改用附带的 kill_mutex.ps1 备用脚本
  • EAC(反作弊) — 不兼容。请使用离线模式或配合无缝联机启动器
  • 游戏更新 — 不受影响,与版本无关

备用脚本

如果 DLL 在您的环境下无法正常工作,可以使用附带的 PowerShell 脚本(kill_mutex.ps1):

  1. 启动艾尔登法环(第一个实例)
  2. 以管理员身份运行:powershell -ExecutionPolicy Bypass -File kill_mutex.ps1
  3. 启动第二个实例

源代码

GitHub —— 包含源代码、构建说明和问题跟踪。