64ビット版Windows上でWindows 3.1までの時代の16ビット版Windowsアプリを動かす「winevdm on 64-bit Windows」

古いWindows向けのゲームや業務用アプリケーションを現在のPCで使おうとしても、16ビットで開発されたソフトウェアは64ビット版Windowsの標準機能では実行できません。Windows 3.1などのOSを仮想マシンにインストールする方法もありますが、16ビットアプリケーションをWindows 11で直接動かせるようにする無料のオープンソースソフトウェアが「winevdm」です。
otya128/winevdm: 16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows
https://github.com/otya128/winevdm
◆winevdmでできること
Windows 1.x・2.x・3.0・3.1時代の16ビットアプリは64ビット版Windowsでそのまま実行することは通常できませんが、「winevdm」を使えばWindows 11上で実行できます。

◆winevdmの導入方法
まずは公式のリリースページからファイルをダウンロードします。記事作成時点の最新版はv0.9.0だったので、「otvdm-v0.9.0.zip」をダウンロード。

OS標準機能などを使ってダウンロードしたZIPファイルを展開します。

展開したフォルダーは任意の位置に置きます。ここではCドライブ直下の「C:\otvdm」に置きました。

◆実際に16ビットアプリを動かしてみる
1991年公開のシューティングゲーム「Hyperoid」を配布ページからダウンロード。

ダウンロードしたZIPファイルを展開し、「C:\otvdm」の中にフォルダーごと置きます。

「otvdmw.exe」を起動するとファイル選択画面が表示されるので「C:\otvdm\hyperoid\」内の「HYPEROID.EXE」を指定して「開く」をクリック。「VCRUNTIME140.dll」が見つからないというエラーが発生した場合は「(クリックするとファイルダウンロード開始)32ビット版Visual C++再頒布可能パッケージ」を導入します。

Hyperoidが起動しプレイが可能になります。

◆Windowsへ登録して直接実行
「install」ショートカットを実行するか「install.inf」を右クリックして「インストール」を選択してWindowsに登録。

登録後は16ビットEXEを直接ダブルクリックして実行でき、winevdmの起動操作を省けます。Windows 11は16ビットインストーラーを検出すると代替プログラムを起動する仕組みを持っており、winevdmはこの仕組みを利用して古いセットアッププログラムにも対応します。

登録した設定は同梱の「uninstall.reg」で解除できるため、試用後にはWindowsの起動設定を元に戻せます。

◆互換性を調整する設定
設定ファイル「otvdm.ini」ではWindowsのバージョンを伝える「WINVER」、フォント数を制限する「EnumFontLimitation」など互換性に関する項目を設定できます。

◆winevdmの仕組み
winevdmはwineの16ビットWindows互換処理を移植し、古いWindows APIの呼び出しを32ビット用へ変換する仕組みを導入。

古いアプリがWindowsフォルダーへ書き込む設定ファイルを別の場所に保存し、16ビットインストーラーにも対応しています。

◆winevdmの評価
ソーシャル系ニュースサイトのHacker Newsではwinevdmについて議論が行われており「Fluke製の16ビット計測ソフトを64ビットWindows上で数年前から使っています」という報告がある一方「後方互換性には限界があります」という意見も投稿されています。
・関連記事
Windows 11で動作する最古のGUIアプリケーションは? - GIGAZINE
Windows 11には31年前の「Windows 95のメモリ管理機能」が今も隠されている - GIGAZINE
MS-DOSからWindows 95にかけてのゲームの機能や互換性を支えた「DOS/4GW」はいったいどんなツールだったのか - GIGAZINE
MS-DOS 6.22からWindows 8 Proまで順にアップグレードしていくとどうなるのか? - GIGAZINE
MicrosoftがPC向けに初代XBOXとの後方互換性を実現 - GIGAZINE
・関連コンテンツ
in ソフトウェア, レビュー, Posted by darkhorse_logmk
You can read the machine translated English article 'winevdm on 64-bit Windows' allows you t….





