最近,真是折腾死我了,主要就是为了这个叫direct9的玩意儿。说起来可能有点年头了,但有些时候,你还真离不开它。
起因:老树发新芽的念头
事情是这样的,我翻出来一台好多年前的老笔记本,想着给家里小孩玩玩,或者自己偶尔怀旧一下,打打那些经典老游戏。你们懂的,像什么《英雄联盟》早期版本,《反恐精英:全球攻势》(CS:GO)在一些老爷机上跑,还有《星际争霸2》之类的,当年可都是direct9的常客。
我给这老笔记本重装了个还算干净的系统,想着驱动打打好应该就差不多了。结果,问题就来了。好几个想玩的经典游戏,一点开要么直接报错,要么就是画面显示不正常,各种奇奇怪怪的问题。
排查:问题指向direct9
我当时就纳闷了,驱动也都尽量找了兼容的装上了,怎么还会这样?折腾了半天,我就开始怀疑是不是缺了点什么关键的运行库。这时候,direct9这个词就蹦到我脑子里了。我记得很清楚,这玩意儿是微软搞出来的一套东西,专门给咱们Windows系统用的,主要是让游戏、视频这些多媒体玩意儿跑得更顺畅,画面更声音也更棒。那时候的电脑,要是没这direct9,好多游戏你连门都进不去。
我寻思着,这老笔记本当年肯定也是靠direct9跑游戏的。现在系统重装了,可能自带的DirectX版本比较新,或者干脆就是基础版本里没把direct9那些老组件给打包全。我得确认一下。
动手:寻找与安装
确认了方向,接下来就是动手了。第一步,我得先看看系统里到底有没有这东西,或者版本对不对。怎么看?很简单,就是在那个“运行”框(可以按Windows键+R调出来)里头输入dxdiag
,然后敲回车。
弹出来一个叫“DirectX诊断工具”的窗口。这里面信息可多了,能看到系统信息、显示、声音、输入啥的。我主要看“系统”那一页,底下一般会显示DirectX版本。如果是比较新的系统,它可能显示的是DirectX 11或者DirectX 12。但老游戏,它就认准了direct9,尤其是那个DirectX 9.0c,这可以说是direct9系列里一个非常重要和普及的版本了。
我一看,果然,系统里虽然有DirectX,但估计是对这些老游戏的direct9支持不完整。那没办法了,只能手动给它补上。我就去网上搜寻这个DirectX 9.0c的最终用户运行时包。这个东西微软官方有提供过,主要是给那些需要direct9支持的程序用的。
下载过程还算顺利,找到一个可信的源,把安装包下下来。也不大,几十兆的样子。然后就是安装了。这个安装过程挺简单的,双击打开安装程序,基本上就是一路“下一步”。
- 先是同意许可协议,这没啥说的。
- 然后它会检查一下系统,准备安装文件。
- 接着就是实际的安装过程,进度条会跑一阵子。
- 提示安装完成。
我记得中间好像还会问你要不要装个什么Bing工具栏之类的,这种捆绑的东西我一般都把勾去掉,不需要。
验证:游戏跑起来了!
装完之后,按照惯例,我重启了一下电脑,虽然很多时候不重启也能生效,但重启一下总归是稳妥些。重启之后,我赶紧点开之前出问题的那些老游戏。你还别说!
之前打不开的、或者报错的游戏,这回居然都乖乖运行起来了! 画面虽然糙了点,毕竟是老游戏,比不上现在这些光影绚烂的大作,但那种熟悉的感觉一下就回来了。看着游戏能流畅跑起来,心里那叫一个舒坦。这说明我之前的判断没错,就是缺了这个关键的direct9组件。
虽然现在DirectX都发展到12甚至更高了,性能也强了不知道多少倍,但对于一些经典老物,direct9还是有它的历史地位和实际作用的。很多老游戏开发者就是基于direct9的接口来做的,你用新的DirectX版本去兼容,有时候反而会出现一些预料不到的问题。
总结与感悟
这回折腾direct9的经历告诉我,有些老东西虽然看着过时,但在特定场景下还真少不了它。特别是你想在一些配置不高的旧电脑上,或者就是单纯想回味一下那些基于direct9开发的经典老游戏,手动安装一下DirectX 9.0c往往能解决不少兼容性问题。
这玩意儿提高了当年多媒体程序的性能,让游戏画面和声音表现都上了一个台阶。现在虽然是老将了,但还能发挥余热,也算是一段不错的实践记录了。希望我这点小小的经验,能帮到有同样需求的朋友们!