「Never7」がエラーも出ずに落ちるのをdgVoodoo2で直す(リモートデスクトップ環境)

この記事は約4分で読めます。

はじめに

 サイバーフロント版の「Never7 -the end of infinity-」(Infinity Plus)をWindows 11で起動しようとしたところ、エラー表示もなく落ちてしまった。(アフィリエイトリンクじゃないヨ)

Amazon.co.jp: インフィニティ Plus : PCソフト
Amazon.co.jp: インフィニティ Plus : PCソフト

 結果としてdgVoodoo2の導入とXP互換モードの設定で動くようになったので、手順をメモしておく。

環境

  • Windows 11 Pro(Build 26300)のミニPC(Intel UHD Graphics)
  • 別のPCからリモートデスクトップ(RDP)で接続して操作
  • ゲームの実行ファイルは Never7win_3d.exe(2001年ビルド)

症状

 起動メニューで「開始」を押すと、ゲーム画面が出ないまま落ちる。エラーメッセージは出ないが、イベントビューアーのアプリケーションログには毎回同じ内容が記録されていた。

  • 例外コード:0xc0000005(アクセス違反)
  • エラーの発生場所:Never7win_3d.exe のオフセット 0x0000594b

原因

 該当箇所をClaudeに分析させたところ、グローバル変数に入っているCOMオブジェクトのポインタを、NULLのまま参照して落ちていたとのこと。呼び出しの形から、IDirect3DDevice7::Clear と見られる。つまり3Dデバイスの作成に失敗しているのに、そのまま描画しようとしているようだった。

 そこで、RDP接続中に dxdiag で確認すると次のようになっていた。

アダプターDirectDrawDirect3D
Microsoft Remote Display Adapter(RDPの画面)使用不可有効
Intel UHD Graphics有効使用不可

 このゲームが使うDirectDrawとDirect3Dの両方が使えるアダプターがないことが原因で落ちていたと考えられる。RDPを使わなければ動くが、RDP経由で外からスマホでプレイしたいので対処する。

対処1:dgVoodoo2を導入する

 dgVoodoo2は、古いDirectDrawやDirect3Dの命令を新しいDirect3Dに変換するツールだ。インストールは不要で、ファイルをゲームフォルダーにコピーするだけで使える。今回は2.87.6を使った。

dgVoodoo2のリリースページ(GitHub)

  1. dgVoodoo2_87_6.zip をダウンロードして展開する
  2. MS\x86\DDraw.dll、MS\x86\D3DImm.dll、dgVoodoo.conf を、Never7win_3d.exe と同じフォルダーにコピーする
  3. ゲームを起動し、起動メニューで「窓モード」を選んで「開始」を押す。確認のメッセージが出たら「OK」を押す

 ゲームが32ビットなので、64ビット用ではなく x86 のDLLを使う。元に戻すときは、コピーした3つのファイルを消すだけでよい。

 これでタイトル画面まで表示された。ただ、右下に「dgVoodoo」のロゴが出る。消すには dgVoodoo.conf の次の行を false に変更して、ゲームを起動し直せばおk。

dgVoodooWatermark                   = false

対処2:XP互換モードを設定する(音が出ないとき)

 exeのXP互換モードが外れた状態で起動すると、音が出なかった。Windowsの音量やミュートに問題はなく、ゲームの音声出力がゼロになっていた。互換モードを戻すと音が出るようになった。

  1. Never7win_3d.exe を右クリックして「プロパティ」を開く
  2. 「互換性」タブで「互換モードでこのプログラムを実行する」にチェックを入れる
  3. 「Windows XP (Service Pack 2)」を選んで「OK」を押す

 互換モードで音が直る理由は不明。動けばよかろうなのだ。

まとめ

 エラーなしで落ちる古いゲームでも、イベントログと dxdiag を見れば原因の見当がつくことがある。RDP環境で古いDirectX 7のゲームが動かないときは、dgVoodoo2を試す価値がありそうだ。
 ちなみに、Ever17、Remember11、12Rivenは同じ環境で互換モード無しでも普通に起動した。な~ぜ~。

 まあ、Never7とEver17に関してはSteamで販売されているので、こっちを買った方が手っ取り早い。SteamLinkで遊べるし。

Never 7 – The End of Infinity on Steam
Save me from this cage of infinity
Ever 17 – The Out of Infinity on Steam
To the promise we once made and the place we must return

 おしり。

コメント