免灌旧系统,winevdm小工具让64位Windows也能执行16位旧程序

免灌旧系统,winevdm小工具让64位Windows也能执行16位旧程序

笔者最近在回味旧游戏的时候,发现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似乎已经取消了在Windows 10使用NTVDM的功能,笔者依照Microsoft官方网站的《NTVDM and 16-bit app support》说明文件操作,发现无法正常启用该功能。

官方说明文件提到在Windows 10启用NTVDM的方式。

▲官方说明文件提到在Windows 10启用NTVDM的方式。

但实际操作后确无法正常启用功能。

▲但实际操作后确无法正常启用功能。

在未启用NTVDM的情况下,Windows 10无法执行为Windows 3.1开发的16位应用程序。

▲在未启用NTVDM的情况下,Windows 10无法执行为Windows 3.1开发的16位应用程序。

透过winevdm达到兼容

开发者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)就可解决问题。 https://aka.ms/vs/15/release/vc_redist.x86.exe

此外读者也可以执行解压缩得到的install捷径安装程序,如此一来就能够像开启一般程序一样,双击16位应用程序就能直接执行。 如果winevdm的登录文件被Windows Update覆盖而失效,只需重新执行install即可,读者也可以通过执行uninstall.reg解除安装。

笔者实际以Glider 4.0游戏进行测试,在未安装winevdm的情况下,执行Glider 4.0会出现「此应用程序无法在您的计算机上执行」的错误信息,而安装之后,游戏就能正常执行,不过在游戏中进行按键设定时,会触发当机情况,此外并没有发现其他问题。

下载并解压缩winevdm之后,可以执行install捷径安装(之后可以直接双击16位应用程序执行),或将16位应用程序拖曳到otvdm.exe上执行。

▲下载并解压缩winevdm之后,可以执行install捷径安装(之后可以直接双击16位应用程序执行),或将16位应用程序拖曳到otvdm.exe上执行。

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

测试过程中唯一发现的Bug是进行按键设定会触发当机。

▲测试过程中唯一发现的Bug是进行按键设定会触发当机。

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

(0)
打赏 微信扫一扫 微信扫一扫

相关推荐

发表评论

登录后才能评论