症状: 系统Vista,几周前DMC4还玩得好好的,这几天突然发现不行了。不论是dx9还是dx10的,就一直黑屏。DMC4Launcher可以进入,但是一设置手柄就卡死。 分析: 起初认为是显卡驱动的问题,更新后无果。 后来想起了dxdiag,载入后发现每次到input那个tab就会卡死(好像中间有几次成功了),于是认为是手柄问题,但是在别的游戏(如smynes)中就工作正常。 后来进入控制面板设置游戏控制器,没有反应。 用VS调试DMC4Launcher以及主程序,前者断在dinput8.dll的一个类似EnumDevices的函数里,后者则是一个奇怪的死循环。后来又调式了游戏控制器选项的rundll32.exe, 跟DMC4Launcher情况一样。 于是去Device Manager,到Human Interfaces Devices中逐个删除,发现一个比较奇怪的设备 Root Enumerated Hid Device。删除之后需要重启,而后竟工作正常了。 想想这几天,更新过Tooya Pro绘图板的驱动,于是打开Painter一看,果然绘图板的压感没了。重装驱动后那个Root Enumerated Hid Device再度出现,而DMC4也随之再次不能进入了。 结论: Tooya Pro的驱动会导致冲突,影响游戏控制器及有关程序(可能主要是dinput8.dll里的那个函数)。不知道哪里的bug,完全google不到。 临时解决办法就是禁掉Root Enumerated Hid Device,仅当需要用绘图板时才启用。不过老得重启还是很麻烦的。
久病成医 | Prolonged Illness Makes the Patient a Good Doctor