文/微型机算计/Major
GameFace是华硕显卡独有的创新功能,如果希望一边玩游戏一边与朋友进行视频聊天,那么双方都必须使用华硕显卡,这样的条件无疑太苛刻了。如果能在任意品牌的显卡上使用GameFace功能,那该多有意思啊?在经过一番苦心研究后,笔者终于破解了GameFace对显卡品牌的限制,如果你有兴趣,Follow Me!
一、GameFace的秘密
理论上讲,GameFace功能必须由华硕显卡配合华硕专用驱动和软件才能实现,但华硕网站宣传华硕品牌的全系列显卡都可使用这一功能,证明它并不需要硬件方面的特殊设计,这无疑告诉我们非华硕显卡也有机会使用GameFace功能。但最关键的问题是华硕专用驱动不能安装在其他品牌的显卡上,安装时会提示找不到华硕显卡。
图1
驱动程序如何“知道”显卡不是华硕生产的呢?这就要从PCI设备的配置寄存器说起了。PCI的配置空间由256个字节构成,其布局是标准化的,包含的信息有设备的类型(Class Code)、控制芯片生产厂商(Vendor ID)、控制芯片ID(Device ID)、设备生产厂商(SubVendor ID)和设备ID(SubDevice ID)等。有了这些信息,操作系统就可以识别设备并为其安装驱动程序,这就是所谓的即插即用(PnP)。同样的道理,系统也依此判断驱动程序是否与设备匹配。下载华硕显卡驱动,打开其中的安装信息文件“ASUSNV2K.INF”,在“[NVidia.Mfg]”部分可以看到该驱动支持的所有设备。
图2
每一行定义一种设备,而逗号后面类似“PCIVEN_10DE&DEV_0020&SUBSYS_02001043”这样的字符串就是其判断依据。表达式中的“&”表示逻辑“与”运算,相当于“并且”的意思。“PCIVEN_10DE&DEV_0020&SUBSYS_02001043”表示必须同时满足Vendor ID=10DE、Device ID=020、SubDevice ID=0200和SubVendor ID=1043这几个条件。SubVendor ID为1043就意味着此显卡是华硕生产,这就是最关键的地方。
二、确定最佳改造方法
现在,我们已经知道了软件可以通过SubVendor ID判断显卡的是否由华硕生产,那么这个SubVendor ID藏在哪里呢?其实,它就在BIOS中。过去,我们可以刷新BIOS把显卡“变”成名牌显卡,在这里也可用类似方法骗过华硕驱动安装程序。但这并不是一个最好的办法。虽然越来越多的显卡采用公板设计,但BIOS的通用性并不如我们想像的那么强。而且部分华硕显卡带有需要硬件支持的特殊功能,这样的BIOS应用在其它显卡上具有很大风险。如果造成显卡不稳定甚至罢工,这就得不偿失了。其实,SubVendor ID不过是BIOS中的几个十六进制代码,就像我们的身份证编号一样,它并不对直接影响显卡功能。如果我们只是把显卡BIOS的SubVendor ID改为华硕公司的代码“1043”,不就达到目的了吗?
三、改造过程
第一步:备份BIOS
要修改BIOS,首先要导出显卡BIOS文件,同时也作为备份。ATI公司提供了Windows环境下的刷新程序,运行ATI WinFlash程序,点击“Save”按钮将显卡BIOS以“OLD.BIN”为文件名保存在硬盘上。对于NVIDIA显卡可运行“NVFLASH -B OLD.ROM”备份当前BIOS(这两个软件均可以本刊网站驱动加油站下载)。
图3 备份ATI显卡BIOS
图4 备份NVIDIA显卡BIOS
  [1]  [2]  [3]  [下一页]