STABILITY GUIDE


圣战在 Windows 上加强稳定性设置指南

指南概要本指南针对高版本 Windows 10/11 下运行圣战客户端时出现的崩溃问题,通过兼容性设置、dgVoodoo2 渲染包装与 GPU 超时(TDR)调整,使游戏稳定运行。按以下五步顺序操作即可。

问题原理

Windows 10/11 内置的旧 DirectX 兼容层会将老游戏的渲染指令翻译到 Direct3D 12。这个翻译过程不稳定,会导致两类崩溃:

  1. 兼容层自身崩溃:故障模块显示 D3D12Core.dll,内存访问违例(c0000005
  2. GPU 超时:老游戏的渲染模式让现代 GPU 处理时间超过 Windows 默认的 2 秒超时限制,触发 TDR(Timeout Detection & Recovery)导致游戏被强制关闭(VIDEO_TDR_FAILURE
  3. 处理前,请先额外复制备份好一份客户端,或如果处理后有问题,可以重新下载一份客户端解压。如果本来已经稳定,也不必折腾。主要针对win11/win10效果比较好。如果玩家的win7闪退比较严重,也可以尝试一下效果。

第一步:兼容性设置

右键 圣战.exe → 属性 → 兼容性,设置:

  • 以兼容模式运行:Windows XP (Service Pack 2)
  • 简化的颜色模式:16 位(65536 色)
  • 勾选 禁用全屏优化
  • 勾选 使用旧版显示器 ICC 颜色管理

第二步:下载 dgVoodoo2

GitHub 地址(在浏览器中打开):

https://github.com/dege-diosg/dgVoodoo2/releases/latest

找到最新版本下载。在不灭官网也可以点击这个链接下载 dgVoodoo2_8x_x.zip

另外,下载这个包,按照说明也执行上去,效果更佳 Directx更新包

第三步:安装 dgVoodoo2

  1. 将下载的 zip 文件解压到任意位置(如 C:\dgVoodoo2
  2. 进入解压后的文件夹,找到根目录下X86目录的以下文件,复制到游戏目录(即圣战 .exe 所在文件夹):
文件说明
DDraw.dllDirectDraw 包装(最重要,2000 年 2D 游戏必用)
D3DImm.dllDirect3D 立即模式
D3D8.dllDirect3D 8 包装
D3D9.dllDirect3D 9 包装
dgVoodooCpl.exe配置工具(可选,但建议复制)

注意:这些是本地 DLL,只对当前游戏目录生效,不会覆盖系统文件。

第四步:配置文件

在游戏目录下创建一个名为 dgVoodoo.conf 的文本文件,内容如下:

[General] AdapterOrdinal=0 EnableValidationLayer=false KeepWindowAspectRatio=true WindowedAttributes=0c ScalingMode=1 OutputAPI=dgVoodoo2_11_0 [DirectX] VRAM=1024 DisableAltEnterToToggleFullScreen=true ForceVSync=true Filtering=16 Resolution=0

关键配置说明

配置项说明
OutputAPI dgVoodoo2_11_0 最重要。强制使用 Direct3D 11 后端。D3D12 不够稳定,D3D11 兼容性好得多
VRAM 1024 分配给游戏的显存(MB),设为显存大小或 1024 均可
ForceVSync true 强制垂直同步,防止帧率过高
DisableAltEnterToToggleFullScreen true 禁止 Alt+Enter 切换全屏,避免老游戏冲突

第五步:放宽 GPU 超时限制(TDR)

为什么需要这一步

Windows 默认的 GPU 超时检测(TDR)为 2 秒。如果 GPU 在 2 秒内没有响应,Windows 会尝试重置显卡驱动,导致游戏崩溃。老游戏通过兼容层翻译后,某些场景的渲染可能超过 2 秒。

操作步骤

快捷方式:第五步也可直接下载注册表文件,右键「合并」或双击导入(需管理员确认),然后重启电脑。

  1. Win + R,输入 regedit,回车
  2. 导航到以下路径:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
  3. 在右侧空白处右键 → 新建 → DWORD (32 位) 值
  4. 命名为 TdrDelay
  5. 双击 TdrDelay,选择 十进制,填入 10(即 10 秒)

    一般设为 8~10 即可。不要设太大(如 60),否则 GPU 真的卡死时要等很久才能恢复。

  6. 点击确定,关闭注册表编辑器
  7. 重启电脑使设置生效
  8. 补充说明:圣战精灵运行时间差不多必定爆内存崩溃,可以考虑切换到按键精灵。