我家电脑没有网线,平时也不连WiFi,纯粹当个离线工具用。前几天从朋友那拷贝了一个单机游戏,解压后双击图标,屏幕闪了一下就弹出“无法启动此程序”的提示,后面跟着一串类似0xc000007b的代码。我试了三次,每次都是这样,系统是Windows 10家庭版,内存8GB,处理器是i5-4590,显卡是核显HD4600。这台机器装的是64位系统,但游戏文件夹里同时有x86和x64两个启动程序,我两个都点过,结果一模一样。
先说第一个发现的问题。游戏需要Microsoft Visual C++运行库,但我的电脑里只有一个2013版的,而且是32位的。这个游戏是两年前发行的,官方说明上写要求VC++2015和2017运行库。我去另一台有网的电脑上下载了visual c++ 2015-2022合并包,用U盘带回来装上。装的时候还提示我“系统已安装更新版本”,但我仔细看版本号才发现,之前那个所谓2013版本是14.0.23026,而游戏需要的是14.2x以上的版本。装完新的以后,再运行游戏,错误码变了,从0xc000007b变成了0xc0000142。
这说明运行库问题解决了,但新的问题又出现了。0xc0000142通常表示DLL初始化失败,往往和DirectX相关。这台电脑没有网线,所以从来没运行过Windows Update,系统自带的DirectX是12版本,但游戏是DX11的,理论上应该兼容。不过问题出在显卡驱动上。我的核显驱动还是2016年的老版本,Windows自带的那个。因为没网,系统从未自动更新过驱动,而游戏渲染需要支持Shader Model 5.0,这个老驱动虽然名义上支持,但实现有缺陷。我尝试从设备管理器里找到显卡,更新驱动,系统提示“已安装最新驱动”,实际上并没有联网搜索。后来我手动从Intel官网下载了对应CPU的核显驱动包,用U盘拷过来,覆盖安装后重启,再启动游戏,错误又变了,这次直接黑屏然后退出,没有任何提示和错误代码。
黑屏退出通常是游戏运行时的崩溃,但这次和之前不同,因为游戏确实尝试启动了,进程在任务管理器里出现了几秒。我查看了Windows事件日志,在“应用程序”类别下找到一条错误,模块名称是“d3d11.dll”,异常代码是0xc0000005,也就是访问违例。这就很清楚了,DirectX 11接口调用出了问题。虽然系统有DirectX 12,但游戏代码只调用D3D11接口,而系统那个d3d11.dll是通用的,问题不在系统文件,而在于显卡驱动对D3D11的支持不完整。老驱动对某些纹理压缩格式比如BC7解压存在兼容性bug,游戏加载纹理时触发了崩溃。
我又换了一种思路,尝试用兼容模式运行。右键游戏主程序,属性,兼容性,勾选“以Windows 7模式运行”,同时勾选“以管理员身份运行”。再次打开,这次游戏窗口出现了,但画面完全花屏,绿色和紫色方块乱闪,声音正常,但画面无法辨认。这进一步证实了显卡驱动对现代图形API的支持有问题。核显HD4600其实支持DX11.1,但需要较新的驱动。Intel在2021年停止了这种老核显的驱动更新,最后一个版本是9版本,我装的就是这个,理论上是支持大部分游戏的,为什么还会花屏呢?

我又检查了游戏的配置文件。这个游戏在“我的文档”里生成了一个settings.ini,里面有一项“分辨率=1920x1080”,而我的显示器是1440x900的,老驱动在尝试切换分辨率时出错。我手动把配置文件里的分辨率改成1440x900,同时把“垂直同步”改成0,再运行游戏。这次不花屏了,但帧数极低,只有10帧左右。因为HD4600的核显性能太弱,再加上该游戏推荐配置是GTX660级别的独显,而我的核显性能大概只有GTX660的十分之一。即便把画质设置全部调成最低,分辨率降到1024x768,帧数也只有25帧左右,勉强可玩但非常卡顿。
不过到这里,游戏至少能正常运行了,只是体验差。但真正让我恼火的是,游戏过程中每隔几分钟就会自动弹回桌面,显示“显示器驱动程序已停止响应,并且已恢复”。这是典型的超时问题,核显在处理复杂场景时,计算量过大,操作系统等待显卡响应的时间超过了2秒,就会触发这个机制。我尝试通过修改注册表,把“TdrDelay”从默认的2秒改成10秒来解决,但修改后情况反而更糟,因为延迟超时后系统直接黑屏蓝屏了。最终我放弃了手动修改。
后来我发现这个游戏其实有一个“低配模式”启动参数,在游戏快捷方式的目标后面加“-low”启动。我试了以后,确实有效,游戏自动使用了最简渲染管线,删除了动态阴影和景深效果,帧数稳定在40帧左右,也不再报驱动错误。经过一晚上的折腾,我终于能玩上这个单机游戏了。总结下来,没网线导致的最直接问题不是连不上网,而是无法自动获取驱动更新和运行库补丁。所有东西都要靠U盘手动搬运,而且搬运过程中还要注意版本和数据完整性。另外,单机游戏不等于离线游戏,很多游戏即使单机运行,也需要DirectX和VC插件的配合,而这些插件往往需要联网安装。如果电脑没有网线,最好在下载游戏前,提前准备好一个包含常见运行库、显卡驱动、修复工具和游戏必备组件的离线安装包,这样能节省大量的排查时间。这次花费的时间接近六个小时,光找驱动就花了两个小时,如果一开始就备好,十分钟就能解决。