艾尔登法环稳定器

艾尔登法环稳定器

配合Mod Engine 3使用的DLL(或许也能兼容ME2,但未经测试),用于提升游戏稳定性,减少随机的3秒卡顿。尚未进行全面测试(如连续数天的游玩),但已运行约一两个小时,确实有所改善。

盔甲

前提

我最近一直在玩随机化模组,并注意到我的电脑在运行随机化模组时会出现不少稳定性问题。这并非硬件问题,我的配置足以流畅运行游戏,原版游戏运行良好,问题出在随机化模组本身。经过一番搜索,我发现禁用核心 0 并停止某个特定服务可以极大地帮助提升稳定性。在手动设置并进行了一些测试后,我制作了这个 DLL 模组来自动完成这些操作。

描述

这是一个 DLL 模组,旨在帮助提升游戏的整体稳定性,尤其是在运行随机化器等模组时。当你通过 Mod Engine 3 加载游戏时,它会自动应用相关更改。源代码托管在 GitHub 上,因为这更利于版本管理,并且可以在需要时轻松回退到之前的更改。

注意: 如有任何问题,请直接反馈到实际的 GitHub 仓库这里,那里有更好的问题管理工具。

从源码构建(高级用户)

注意:自行从源码构建需要下载并设置几个开发工具,这将花费几分钟时间。如果你不想处理这些,直接下载预构建版本即可。我们将使用 Winget(Windows 包管理器)来安装这些工具。

我们将安装的工具:我们需要安装 3 样东西来从源码构建:一个 C++ 编译器(GCC)、CMake 和 Git。

安装 CMake 和 Git

  • 打开命令提示符
  • 输入(不带引号)"winget install Git.Git"
  • 接着输入 "winget install Kitware.CMake"

安装 GCC

  • 遵循此指南

构建项目

  • 关闭命令提示符窗口
  • 在资源管理器中,选择一个位置来克隆我的仓库,例如你的下载文件夹
  • 在该目录的空白处,按住 Shift + 右键点击 > 选择“在终端中打开”
  • 输入 git clone https://github.com/AbyssDragonModding/Elden-Ring-Stabalizer.git "EldenRingStabalizer"
  • 上述命令将使用 git 将仓库克隆到一个名为 EldenRingStabalizer 的文件夹中
  • 打开克隆的仓库并运行 "Build_Project.bat"

这将会创建一个 build 目录,并指示 cmake 将项目文件和 DLL 构建到该文件夹中。DLL 位于以下目录:"./build/Release",按照安装说明将该 DLL 复制到 mod 文件夹中。

安装

  1. 安装 Mod Engine 3 Manager(ME3 的图形界面):Mod Engine 3 Manager
  2. 运行时按照步骤安装 ME3
  3. 下载预构建的二进制文件(或者你自己从源码构建的文件,你将需要 "EldenRingStabalizer.dll" 和 "restore_ssdp_service.bat"(如果你之后需要恢复该服务))
  4. 将这个 dll 和 bat 文件(以备将来需要恢复服务时使用)解压到你的游戏文件夹中
  5. 在 ME3 界面中,添加一个新的 "外部 DLL 模组"(在“启动 Elden Ring”按钮旁边的第四个图标,上面有一个小齿轮)
  6. 导航到你的游戏文件夹并点击 EldenRingStabalizer.dll
  7. 确保该模组已启用
  8. 关闭 ME3 Manager,并以管理员权限重新启动它(Windows API 中的函数需要管理员权限才能禁用服务,如果不用管理员权限运行,则只会设置 CPU 亲和性)
  9. 启动游戏,所有更改将自动应用。

问答

问: 这段代码在底层实际上做了什么? 答: 用非程序员的话来说。当你附加了该 DLL 运行游戏时,它会启动一个新的 CPU 线程进程,并等待 2.5 秒后再进行处理更改(否则会立即导致游戏崩溃)。然后,它会设置 CPU 亲和性设置(为 ER 禁用核心 0)并禁用 SSDPSRV 服务。随后,它会每 2 分钟检查一次该服务是否因某种原因被意外重新启动(我注意到这种情况偶尔会发生,因为如果 Windows 请求该服务,它会重新启动它),如果它再次运行,则会将其再次禁用。