Windows 10如何執行16位元舊程式?winevdm小工具讓64位元系統也能支援舊程式

Windows 10如何執行16位元舊程式?winevdm小工具讓64位元系統也能支援舊程式

ADVERTISEMENT

筆者最近在回味舊遊戲的時候,發現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作業系統上無法正常啟用該功能。

官方說明文件提到在Windows 10啟用NTVDM的方式。

但64位元Windows 10無法正常啟用功能。

在未啟用NTVDM的情況下,Windows 10無法執行為Windows 3.1開發的16位元應用程式。

透過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之後,可以執行install捷徑安裝(之後可以直接雙擊16位元應用程式執行),或將16位元應用程式拖曳到otvdm.exe上執行。

▲透過winevdm執行Windows 3.1版的Glider 4.0遊戲,執行效果相當流暢。

測試過程中唯一發現的Bug是進行按鍵設定會觸發當機。

雖然說到現在還需要執行的Windows 3.1程式所剩無幾,但萬一遇到需要的時候,就可以透過winevdm達到相容的效果,並省下安裝虛擬機器的麻煩,不失為一方便的解決方案。

國寶大師 李文恩
作者

電腦王特約作者,專門負責硬派內容,從處理器、主機板到開發板、零組件,尖端科技都一手包辦,最近的研究計畫則包括Windows 98復活與AI圖像生成。

使用 Facebook 留言
kaiconan
1人給推

1.  kaiconan (發表於 2022年1月27日 09:35)
部分資訊錯誤!
Windows 10 的 NTVDM 功能官方說的清楚,在本篇第二張截圖也有顯示:
原文是:
Note
To ensable this feature, you must be running Windows 10 32-bit and must have local administrator privileges.
We do not recommend enabling end-users to have local administrator privileges.

中文是:
備註
啟動此功能,必須使用 Windows 10 32-位元,並必須有本地管理員權限。
我們不建議終端使用者啟用本地管理員權限。

也就是說, NTVDM 功能只能在 Windows 10 的 32位元版本的系統啟用,64位元的 Windows 10 系統當然無法使用。


發現並推薦第三方的功能固然很好,但需要更嚴謹的撰寫,以免會被閱讀者認為是故意黑微軟而黑,因為截圖中還有 NTVDM 安裝失敗的畫面。
發表回應
謹慎發言,尊重彼此。按此展開留言規則