
笔者最近在回味旧游戏的时候,发现Windows 10已经偷偷把内置的NTVDM模拟器功能拿掉,因此需要通过第三方小工具来建立执行环境。
WOW! 原来Windows还有这一手
在1995年操作系统由Windows 3.1过渡到Windows 95的时期,因为Windows 95仍然是建立在Dos上的软件,本质仍为16/32位混合系统,因此不需修改就能直接执行旧有16位应用程序,同时也能支持新的32位应用程序。 不过以Windows NT为基础的操作系统,则无法直接达到上述兼容性。
为了解决这个问题,Microsoft在1993年就为采用IA-32处理器架构IA-32的Windows NT操作系统提供NTVDM(NT Virtual DOS Machine,NT DOS虚拟机),让用户能在32位的Windows NT操作系统中执行16位Windows应用程序,以及16、32位DOS应用程序。
此外Microsoft推出了Windows on Windows(简称WOW)兼容层,能够扩展通过NTVDM执行为Windows 3.x开发的旧式16位Windows应用程式之兼容性。 之后Microsoft也推出WOW64,让64位Windows操作系统能够执行32位应用程序。
不过根本Microsoft官方网站的《NTVDM and 16-bit app support》说明文件,NTVDM无法支持64位操作系统,所以64位Windowsy操作系统上无法正常启用该功能。



通过winevdm达到兼容
winevdm下载链接
https://github.com/otya128/winevdm/releases
开发者otya128所开发的winevdm工具软件功能与NTVDM类似,它整合了处理器模拟器、以Wine为基础的Win16->Win32转换代码(wine based Win16->Win32 conversion codes)、16位DOS模拟器等组件,能够让64位的Windows 10操作系统执行16位应用程序。
下载并解压缩winevdm之后,只需将16位应用程序拖曳到otvdm.exe上,就能直接执行。 如果出现「遗失VCRUNTIME140.dll」的错误消息,只需安装 Microsoft Visual C++ Redistributable for Visual Studio 2017 (32-bit)就可解决问题。
此外读者也可以执行解压缩得到的install捷径安装程序,如此一来就能够像开启一般程序一样,双击16位应用程序就能直接执行。 如果winevdm的登录文件被Windows Update覆盖而失效,只需重新执行install即可,读者也可以通过执行uninstall.reg解除安装。
笔者实际以Glider 4.0游戏进行测试,在未安装winevdm的情况下,执行Glider 4.0会出现「此应用程序无法在您的计算机上执行」的错误消息,而安装之后,游戏就能正常执行,不过在游戏中进行按键设置时,会触发当机情况,此外并没有发现其他问题。

▲通过winevdm执行Windows 3.1版的Glider 4.0游戏,执行效果相当流畅。

虽然说到现在还需要执行的Windows 3.1程序所剩无几,但万一遇到需要的时候,就可以通过winevdm达到兼容的效果,并省下安装虚拟机的麻烦,不失为一方便的解决方案。