古いWindowsゲームを楽しむにはどうすればいいのか

Windows11全盛の現代において、Windows98/XP時代のゲーム資産を実行するのは簡単ではない。互換モードというWindowsの機能を用いても、残念ながら古いゲームは簡単には動かない。例えばFalcom Ys6では、インストールが完了したかと思いきや、起動しようとすると何も反応しない。

Windowsは必ずしも過去の互換性を維持せず、新たなフレームワークが生まれては捨てられてを繰り返してきている。ゲームで一番大きいのはDirectXの旧インターフェースかと思うが、最新OSに古いDirectXはインストールできない(やりたくない)。

そんな時に古いゲームを実行するにはいくつか手段がある。

  • 実機
  • 仮想マシン
  • Linux+wine
  • DirectXラッパー

Windows98/XP時代の実機と現代のPCは構成がかなり異なる。BIOSとUEFIの違い、MBRとGPTの違い、その後のUEFIからCSM機能の削除など、今のPCでは古いOSの起動が怪しい。Win98ならFDからのセットアップが前提だったりUSB黎明期でドライバが充実していなかったり、32bitのみの環境、2GB~40GBくらいのディスク容量、512MB以下ほどのメモリ容量、MMX PentiumやPentium3の時代の機器でCPU速度が違いすぎるなど、世代や仕組みの違いがずいぶんと大きい。また、メインPC1台の環境であれば、ゲームをするためにリブートして専用の環境を立ち上げたり、そもそもマルチブートできるのか怪しい中で選択肢としては現実的とは言えない。

そこで次に検討するのが仮想マシンだが、VirtualBox、VMware、QEMU、dosbox-x、hyper-vなどいろいろ試した中で、VMをなるべくサーバーで実行でき、ゲームをするためにDirectXがハードウェアなどのアクセラレータ(もしくはCPUパワーでエミュレーション)で動作し、サウンドが鳴る環境はなかなか構築が難しい。サーバー実行してvncで画面転送すると音が鳴らなかったりするため、実機でVMwareを実行するのが最も安定しているが、そもそもVMware自体が不安定な供給体制(Broadcomになっていった供給停止された)なためあまり信頼性がない。VirtualBoxは不安定だし、hyper-vやsandboxを有効にしているWindows11上で実行すると遅くなる。また、WindowsXPゲストでD3Dが実行できない。QEMUはLinuxサーバー上で使うには都合がいいが、やはりD3Dが使えない。dosbox-xはそもそもインストールが難しすぎてWindows98を動かすのがやっとだし、hyper-vにあってはMicrosoftが純正メーカーを疑うレベルの仕上がり(たしか音が鳴らないとかそんな感じだったけど忘れた)。VirtualBox+シリアルポートでMIDI環境を復元したり、QEMUで開発環境を構築したりはしているが、ゲーム環境としては向いていない。

次に試したのがLinux+wineの組み合わせ。久々に実行してみたら使い方がわからなかった。FalcomのYs6をとりあえず動かそうと四苦八苦したけど、どうも使い方がわからない上に動作報告もなさそうな感じで、結局諦めた。

最後に試したのがsandiebox+とdgvoodoo2の組み合わせ。sandiebox+で実環境から切り離してまるでincusコンテナのようにプログラムを実行する。sandboxは使い捨て環境だけど、sandiebox+ならゲームをインストールしたあとに仮想マシンのように実行できるし、シャットダウン後も環境が保持される。スナップショットでもとに戻すことも簡単。コンテナなのでネイティブの速度で動作する。この構成の考え方的にはLinux+wineに近いけど、コンテナ化して実環境を汚さなくていいことと、Windows上で古いDirectXを現代のDirectXに同時通訳して動かすので安定度は上。ということで、ゲーム環境の構築であればsandiebox+とdgvoodoo2を使うのがよい。ただし、Ys6ではメーカーの修正プログラムを充てる必要があるので、アップデートの適用をお忘れなく。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です