老版生化危机2在新系统上运行出现Fail to Initialize DirectX的另一种解决办法
背景:
老版本生化2(这里包括最早的win9x版生化2以及生化2XP复刻版均存在此问题)在较新的64位系统,如win7 X64,win10 x64上直接运行会出现以下提示,即初始化DiectX失败,这是由于老版生化2启用3D加速的API还是古老的DirectX 6.0,加上本身程序移植的问题,导致程序在系统平台上无法正确调用API所致。

流传很广的一种办法,如下图,这种办法仅适用于生化2XP复刻版,并且未指明是何种语言版本(大概率对英文版生化2复刻版有效):

这是方法的原始出处
http://re123.bplaced.net/board/viewtopic.php?f=22&p=1664#p1664

这里介绍另一种办法,对各种版本的老生化2有效(我在win7 x64平台测试win9x版和xp复刻版均正常运行),并且如果遇到老游戏在新系统无法游戏的情况,均可以使用下述方法进行尝试。
程序简介:
dgVoodoo是由Dege(暂且这么称呼,网站上貌似没有作者的其他个人信息)开发的,在Windows 7 及更高版本的windows系统中运行老旧程序时用以模拟调用旧图形 API接口的一个程序包,由dll动态链接库文件和控制面板程序两部分组成,具体功能如下(图省事机翻的,有兴趣的同学可参看原文):
它们在 Direct3D 11/12 上实现,并且可以使用不同的设备类型作为包装输出:
GPU 功能级别 12.0 的硬件渲染(推荐,但目前存在一些问题)
GPU 功能级别 11.0 的硬件渲染(推荐)
GPU 功能级别 10.1 的硬件渲染(对 D3D8/9 有轻微限制)
GPU 功能级别 10.0 的硬件渲染(有一些限制)
通过 Microsoft WARP 渲染器进行软件渲染
实现了以下 API图形库:
Glide 2.11、Glide 2.45、Glide 3.1和Glide 3.1 Napalm
DirectX 1-7(所有版本的 DirectDraw 和 Direct3D,最高版本 7)
Direct3D 8.1
Direct3D 9
简单点说就是:该程序使用现代显卡较新的硬件支持特性加新的图形API组件在新平台上来模拟实现老旧API接口的图形渲染特性。
使用方法:直接插入。只需从 dgVoodoo 包中的图形 API dll文件复制到您的游戏/应用程序可执行文件所在的文件夹,然后使用它自带的控制面板指定程序路径并进行相关图形设置即可。其至少需要支持 DX10.0 的显卡。
作者及程序简介的主页:
http://dege.fw.hu/dgVoodoo2/QuickGuide/
最新版(2.79.3)下载地址:
http://dege.fw.hu/dgVoodoo2/bin/dgVoodoo2_79_3.zip
基于上述程序提供的功能,我们可以利用它解决老版生化危机2在新平台上运行报错的问题。事实上,我使用该程序也运行了其他一些对新平台支持存在严重的问题的游戏,如卡车硬汉2(Hard Truck 2 King of Road),同样取得的不错的效果。
下载后解压,得到如下内容:



其中上图的彩色图标即是控制面板程序,在3DFX/MS目录下,有基于不同平台(X64,X86,ARM)编译的相关图形DLL链接库文件。对于老旧的32位 win9X程序,请使用/MS/X86目录中的相关文件;对于支持3DFX Glide API的老旧32位 win9x游戏,可使用/3DFX/X86目录中的相关文件。
举例:
我要在win 7 X64系统上运行老版本生化危机2 XP复刻版,直接运行则出现本文第一张图的提示,由于XP复刻版依旧是32位应用,这时:
(1)将/MS/X86目录中的4个dll文件复制到你的游戏安装目录中,如下图:

(2)双击打开dgVoodoo2的控制面板程序,并点击上面框中的“add”按钮,在弹出的对话框中,选择你的游戏安装目录的路径,然后点击“选择文件夹”即可,如下图:


(3)我们使用的是MS/X86中的文件,也就是模拟DX API的文件,所以,设置相关图形特性时,点击“DirectX”标签,然后进行设置,一般默认即可,如游戏运行时,图像输出有问题,可自行尝试更改。如下图:

(4)设置完成后,点击apply,再点击OK关闭控制面板即可。
(5)然后重新运行游戏,这时可以看到,游戏程序已能正常打开,如下图,dgVoodoo的水印亦可见(你也可以在控制面板中设置关闭水印显示)。

后记:该应用程序具有一定程度通用性,且作者也针对某些特殊游戏制作了针对性补丁,可在他的主页中找到。
最后感谢大神的开发及无私分享,使得我这种老游戏爱好者省去了诸多麻烦事。