
2026/10/27 2:56
Windows 11 でも動作する最も古い GUI アプリケーション
RSS: https://news.ycombinator.com/rss
要約▶
日本語翻訳:
共通の認識である「古い 16 ビットプログラムは現代の 64 ビットシステムでは動作しない」という前提と対照的に、ゲーム『FreeCell.EXE』の 1993 年版は、エミュレーションツールや修正を一切必要とせずに Windows 11 にネイティブに動作します。この独自の特徴は、1992 年中期以前にリリースされた以前のビルドにおいて頻出していたスタック引数問題が生じないという特定の内部設計によるものです。CDPLAYER や REVERSI など、欠落したハードウェアをシミュレートしたり 16 ビット環境を作成するために cdemu.dll などの専用ローダーが必要となる他のレトロソフトとは異なり、FreeCell は例外として際立っています。初期の Windows NT プリアンカー(プレリリース版)に関する調査は、この時代の大部分の実行ファイルが現在のアーキテクチャと互換性のない古い形式に依存していたことを確認しています。したがって、膨大な数のレガシーコードを今日動作させるには仮想化が必要である一方で、この特定のアティファクトは後方互換性が自然に残存する希少な境界を示します。開発者やアーキビストにとって、この発見は、複雑な回避策や専門的な技術的介入を必要とせずに、現代的な 64 ビット Windows への移行後に歴史的软件が存続している具体例を提供します。
本文
Windows 11 で動作する最も古い GUI アプリケーションの探求
初期調査:発見した 1993 年のアプリ
Windows 11 で特別な設定やエミュレーションを行わずに動作する最も古い GUI アプリを探し求めていました。後方互換性の期待を裏切られ、64 ビット版では NTVDM が存在しないため 16 ビットプログラムが直接実行できないことを確認しました。そこで「初期の NT エラ」に遡るアプリを探すことにしました。
匿名フォーラムでのアドバイスを受け、FREECELL.exe を検証した結果、以下のような驚きの事実が発覚しました:
- フリーセル (FREECELL.EXE)
- 最終更新日:1993 年 2 月 22 日
- Windows 11 でもコード変更なしで完全に動作・遊べます
- 記事執筆時点で33 年 8 ヶ月の長寿を誇るアプリケーションです
当初は「すごい」と思い、謎が解けたように忘れ去っていましたが、最近再び興味を持ち、さらに古いものを発見できないか探求しました。
追加の取り組み:NT 3.1 と互換性の壁
インターネットアーカイブで過去の Windows バージョンを検索し、NT 3.1 の初期リリース版を発見しましたが、実行形式や API の非互換性が大きな障壁となりました。
互換性を阻む技術的課題
- 1991 年版: 現代の PE フォーマットと異なる草案段階の形式を採用
- 1992 年中盤まで:
ではなくstdcall
を前提とした呼び出し規約cdecl - 致命的な問題: 引数が 2 回も削除される現象が発生(プログラムクラッシュの原因)
push hwnd ; 4 バイトの引数 pushing call [ShowWindow] ; Win11 (stdcall): 末尾で "ret 4" で引数を削除 add esp, 4 ; 古い呼び出し元: さらに引数を削除(結果的にクラッシュ)
例外:CDPLAYER.EXE の成功事例
これらの制限を乗り越えたのがCDPLAYER.EXE (Build 347, 1992 年 11 月 16 日) でした。
- 仕組み: システム側の
を利用することで、ビルドに含まれる独自 CRT の不具合を回避crtdll.dll - Windows 11 環境:
に標準搭載されており、正常に動作SysWOW64 - 表示画面: 実際の CD-ROM ドライブがないため無作為な情報が出ますが...
- 機能拡張: 小さな DLL (
) を使って偽のオーディオデータを生成し、CD ドライブをエミュレートして再生可能cdemu.dll
まるで 34 歳になったプログラムならではの素晴らしい機能です!
もし「ズル」を許したら?:OTVDM と 1985 年のアプリ
16 ビットプログラムの直接実行はサポートされていないため対象外ですが、otvdmなどのツールを使ってさらに遡ることも可能です。
- 検証対象: Windows 1.01 (1985 年 11 月 15 日) の REVERSI.EXE
- 結果: Windows 11 上でも完全に動作します
otvdm を使うのは確かに「ズル」ですが、その驚きさから今回は紹介することにしました。