Windows 11で古いPCゲーム起動時に「Can’t set display mode (0x80004001) / Action not supported」エラーが出る場合の対処法

Windows 11 で昔のPCゲームを起動しようとしたときに「Can’t set display mode (0x80004001)」や「Action not supported」と表示されてしまい、ゲーム画面すら出ずに終わってしまうケースが増えています。この記事では、原因と具体的な直し方を、実際に効果があった手順を交えつつ丁寧に解説します。

目次

エラー「Can’t set display mode (0x80004001)」とは?

古いPCゲームを Windows 11 で起動した瞬間に、次のようなメッセージが出て落ちてしまうことがあります。

  • Can't set display mode (0x80004001)
  • Action not supported

このエラーは簡単に言うと「ゲームが要求した画面モード(解像度・色数・描画方式)を、今のWindowsやGPUドライバーが正しく準備できなかった」という意味です。

エラーコード 0x80004001 は一般に E_NOTIMPL(未実装) を表し、「その機能は実装されていません」という返答です。古いDirectDraw / Direct3D、固定の解像度(640×480 / 800×600)や 16bit カラー前提で作られているゲームが、モダンな DirectX / GPU / 高解像度ディスプレイと噛み合わず、初期化に失敗しているときに出やすくなります。

なぜ Windows 11 だと古いゲームが失敗しやすいのか

Windows 11 側の設計が悪いというよりは、「当時の開発者が想定していなかった環境になっている」ことが主な原因です。主な要因を整理すると、次のようになります。

想定外になりやすいポイント具体的な状況
解像度の違い当時は 640×480 / 800×600 前提。今はフルHD・4K・ウルトラワイドで、古いAPIからの解像度変更がうまく通らない。
色深度の違い16bit(High Color)前提のゲームが、32bitカラー固定の現代環境で想定通り動作しない。
DirectX の世代差DirectX 5~9 時代のAPI呼び出しが、現代の DirectX 12 ベース環境で直接はサポートされていない。
ドライバー挙動の差マルチディスプレイ / 高リフレッシュレート(144Hz 等) / G-SYNC / FreeSync が古いゲームにとって想定外。
DPIスケーリング高DPI環境での自動スケーリングが、古いゲームのフルスクリーン切替と衝突することがある。

これらを総合すると、「ゲームが要求する表示モードを Windows 11 + 現行GPU が素直に受け入れられず、『そんなモードは未実装(E_NOTIMPL)です』と返している」というのが典型パターンです。

解決の基本方針:Windows側を“昔の環境っぽく”見せる

多くの古いゲームは、ゲーム自体を書き換えなくても、Windows側の互換モードや解像度設定を工夫すれば起動できるようになります。この記事では次の優先順位で試すことをおすすめします。

  1. 互換性設定(互換モード・管理者権限・高DPI設定)を見直す
  2. 画面解像度 / リフレッシュレート / 色深度を下げて実行する
  3. DirectX 9.0c ランタイムを追加インストールする
  4. DirectPlay の有効化や互換レイヤー(dgVoodoo2 / DXWnd 等)を検討する
  5. ドライバー更新や GPU 割り当て、dxdiag での確認を行う

以下で、ひとつずつ手順を詳しく見ていきます。

互換性設定で実行する(最優先で試す)

ゲームの互換モードを Windows XP / 98 に設定

まずは、ゲーム本体の実行ファイル(xxx.exe)に対して、Windowsの互換性設定を行います。インストーラーではなく、実際にゲームを起動する .exe に設定することが重要です。

  1. ゲームのインストール先フォルダーを開く(例:C:\Games\GameTitle\)。
  2. ゲーム起動用の *.exe ファイルを右クリックして、[プロパティ] をクリック。
  3. [互換性] タブを開く。
  4. [互換モードでこのプログラムを実行する] にチェックを入れる。
  5. プルダウンから [Windows XP (Service Pack 3)] または [Windows 98 / Windows Me] を選択。

XP世代のゲームなら XP SP3、さらに古いタイトルなら Windows 98 を選ぶのが定番です。後から切り替えて試せるので、迷ったらまず XP SP3 から始めましょう。

管理者権限・全画面最適化・高DPIを調整

同じ [互換性] タブの中で、次の設定も合わせて行います。

  • [管理者としてこのプログラムを実行する] にチェック
  • [全画面表示の最適化を無効にする] にチェック
  • [高DPI設定の変更] ボタンを押し、[高DPIスケール設定の動作を上書きします] にチェック → ドロップダウンから [アプリケーション] を選択

これらは、古いゲームが「自分の描画ルールのままフルスクリーン表示したい」のに対して、Windows 11 が行う「自動拡大・最適化」との衝突を避けるための設定です。とくに高DPIスケールの上書きは、ぼやけた画面や起動時のクラッシュを防ぐのに効果的です。

必要に応じて 16bit 色 / 640×480 を試す

同じ [互換性] タブには、次のようなオプションもあります。

  • [色の設定を 16 ビット (65536 色) に減らす]
  • [640×480 の画面解像度で実行]

すべてのゲームで必要というわけではありませんが、1990年代後半~2000年代前半のタイトルでは、この設定がないと初期化に失敗するものもあります。「Can’t set display mode」が消えない場合は、チェックを付けたり外したりしながら、組み合わせを変えて試してみてください。

おすすめ互換性設定の組み合わせ例

ゲームの年代推奨互換モードその他のおすすめ設定
1990年代後半(Windows 98 時代)Windows 98 / Me16bitカラー、640×480、全画面最適化の無効化、高DPI=アプリ
2000年代前半(XP初期)Windows XP (SP3)管理者実行、全画面最適化の無効化、高DPI=アプリ
2000年代後半(XP後期・Vista前後)Windows XP (SP3) または Vista管理者実行、高DPI=アプリ(16bit/640×480は必要なときだけ)

画面まわりの調整:解像度・リフレッシュレート・ウィンドウモード

Windowsの表示解像度を一時的に下げる

4K モニターやウルトラワイドディスプレイを使っている場合、ゲームが想定しない解像度しか選べないことがあります。その場合、Windows 側の解像度を一時的に下げてからゲームを起動すると、表示モードの初期化に成功しやすくなります。

  1. [設定] → [システム] → [ディスプレイ] を開く。
  2. [ディスプレイの解像度] のプルダウンから、1024×768 または 800×600 を選択。
  3. 変更を適用した状態でゲームを起動し、エラーが出ないか確認。

起動に成功してタイトルメニューまで進めたら、ゲーム内オプションから解像度を変更し、その後 Windows の解像度を元に戻しても問題ないケースが多いです。

リフレッシュレートを 60Hz に固定して試す

近年主流の 120Hz / 144Hz / 240Hz モニターは、古いゲームにとって想定外のリフレッシュレートです。その結果、「このディスプレイモードはサポートされていない」と判断され、Action not supported のようなエラーになることがあります。

一時的に 60Hz に変更して試してみましょう。

  1. [設定] → [システム] → [ディスプレイ] → [詳細設定の表示] を開く。
  2. [リフレッシュレート] から 60Hz を選択。
  3. その状態でゲームを実行し、エラーが解消するか確認。

ゲーム側の設定ツールでウィンドウモードや解像度を下げる

一部のゲームには、config.exe や Setup.exe などの設定ツールが付属しています。ゲーム本体を起動する前に、ここで解像度や描画モードを調整しておきましょう。

  • フルスクリーンではなく ウィンドウモード を選ぶ
  • 解像度を 800×600 や 1024×768 に落とす
  • 色深度を 16bit に設定できる場合は試す
  • Direct3D と DirectDraw が選べる場合は両方試す

「Can’t set display mode」は、ほぼ確実に「指定した解像度+色深度+リフレッシュレートのセットが通らない」という問題なので、まずはシンプルな環境(低解像度・60Hz・ウィンドウ表示)に寄せてあげると成功率が上がります。

DirectX 9.0c(End-User Runtime)を追加インストールする

Windows 11 には DirectX 12 が標準で入っているため、「DirectX 9 もカバーされているはず」と思いがちですが、古いゲームが必要とする一部のコンポーネント(d3dx9_xx.dll など)が含まれていないことがあります。その不足したコンポーネントが原因で、描画初期化に失敗しているケースも多く報告されています。

そのため、Microsoft 公式の DirectX End-User Runtime(通称:DirectX 9.0c ランタイム) を追加インストールすることをおすすめします。Windows 11 に入れても既存の DirectX を壊したり上書きしたりすることはなく、「古いゲーム用の部品を後付けする」というイメージです。

導入の流れはおおむね次の通りです。

  1. ブラウザで「DirectX End-User Runtime Microsoft」などのキーワードで検索し、Microsoft公式サイトの配布ページを開く。
  2. インストーラー(通常は dxwebsetup.exe)をダウンロードする。
  3. ダウンロードしたファイルを実行し、案内に従ってインストールを完了させる。
  4. PCを再起動する。
  5. 再度ゲームを起動して、エラーが解消されているか確認する。

実際に、「互換モード+解像度調整」だけでは直らなかったタイトルが、DirectX 9.0c ランタイムの追加後に正常起動した事例は数多くあります。「Can’t set display mode」が DirectX の不足コンポーネントに起因していたケースでは、特に効果的です。

それでもダメな場合の追加策

Windowsのレガシコンポーネント「DirectPlay」を有効にする

Windows 95~XP 時代のゲームの中には、DirectPlay と呼ばれる古いネットワーク / 入出力コンポーネントに依存しているものがあります。Windows 11 ではこれは標準では無効化されているため、有効にしておくことでクラッシュを回避できる場合があります。

  1. [コントロール パネル] → [プログラム] → [Windows の機能の有効化または無効化] を開く。
  2. 一覧の中から [レガシ コンポーネント] を展開する。
  3. [DirectPlay] にチェックを入れる。
  4. [OK] を押し、必要なら再起動する。

DirectPlayはあくまで非常に古いゲーム向けであり、全てのタイトルで必須というわけではありませんが、「起動時に DirectPlay に関するエラーが出る」「起動直後に固まる」といった場合には試す価値があります。

起動オプションでウィンドウ表示を強制する

フルスクリーンへの切り替え段階でエラーが発生しているゲームでは、コマンドラインオプションでウィンドウ表示を強制すると安定することがあります。代表的な指定例は次の通りです(ゲームによって異なります)。

  • -window
  • -w
  • -windowed

ショートカットにオプションを付ける手順の一例です。

  1. ゲームのショートカットをデスクトップなどに作成する。
  2. ショートカットを右クリック → [プロパティ] を開く。
  3. [リンク先] の末尾に半角スペース+オプション(例:-window)を追記する。
  4. [OK] で閉じて、ショートカットからゲームを起動する。

すべてのゲームがこれらのオプションに対応しているわけではありませんが、ドキュメントや Readme に記載されている場合もあるので、合わせて確認してみてください。

互換レイヤー/ラッパー(dgVoodoo2 / DXWnd / DDrawCompat)の活用

どうしても DirectDraw / 古い Direct3D API 周りでコケてしまうゲームには、互換レイヤー(ラッパー)を噛ませる方法もあります。代表的なものを簡単に比較すると、次のようになります。

名称主な役割向いているゲーム / 状況
dgVoodoo2古い DirectX(DirectDraw / Direct3D)や Glide を、現代の Direct3D 11/12 に変換して動かす。Direct3D / Glide 対応の3Dゲーム全般。高解像度化やワイド画面対応をしたい場合にも有効。
DXWnd古いゲームを強制的にウィンドウ化したり、解像度や互換フラグを細かく調整できる。フルスクリーン起動で落ちる、マルチモニター環境で問題が出るゲーム。
DDrawCompatDirectDraw の不具合やパフォーマンス問題を改善する軽量パッチ。2D系ゲーム(RTS・シミュレーション・古いRPGなど)で描画が乱れたり、起動しない場合。

これらのツールを使う場合の注意点は次のとおりです。

  • 必ず公式配布元からダウンロードする(ミラーサイトやアップローダーは避ける)。
  • 導入前にゲームフォルダーをバックアップしておく。
  • 設定を変えたら一つずつ試し、どの設定で改善したか控える。
  • 自己責任での利用となるため、業務用PCなどでは慎重に判断する。

とはいえ、「互換モード+DirectX 9.0c ランタイム+dgVoodoo2」で長年動かなかったゲームが安定して動くようになった、という例も多く、どうしても起動できない場合の“最後の一押し”として検討してみる価値は十分にあります。

グラフィックドライバーの更新とGPU割り当て

意外と見落とされがちなのが、GPUドライバーと GPU の選択です。ノートPCでは、CPU内蔵GPU(Intel UHD/ Iris など)と、外部GPU(NVIDIA / AMD)が切り替えられる構成が一般的です。古いゲームが統合GPU側で動こうとしてこけている場合、高性能GPUに割り当てることで改善することがあります。

  • NVIDIAの場合: NVIDIA コントロールパネル → [3D設定の管理] → [プログラム設定] でゲームの exe を追加し、「高性能NVIDIAプロセッサ」を選択。
  • AMDの場合: AMD Software: Adrenalin Edition の [設定] から、ゲームごとの GPU プロファイルを高性能側に設定。
  • Intelの場合: Intel Graphics Command Center 等でアプリごとのグラフィックス設定を見直す。

同時に、各GPUベンダーの公式サイトから最新のドライバーを入手し、更新しておくことも重要です。古いドライバーでは、そもそも古いゲーム向けの互換性パッチが適用されていないこともあります。

dxdiagで DirectX / ディスプレイ情報をチェック

それでも解決しない場合は、Windows標準の DirectX 診断ツール(dxdiag) で情報を採取し、「どこまでが正常で、どこからおかしいのか」を切り分けましょう。

  1. [スタート] メニューを開き、検索ボックスに dxdiag と入力する。
  2. [dxdiag] を実行する。
  3. [システム] タブで DirectX バージョン、メモリなどを確認。
  4. [ディスプレイ] タブで、使用している GPU・ドライバーのバージョン・対応しているディスプレイモードを確認する。

ここで DirectX バージョンが正常に表示されているか、ドライバーの日付が極端に古くないか、異常なエラーメッセージが出ていないかをチェックすると、サポートフォーラムなどで相談するときにも役立ちます。

クイックチェックリスト:どこまで試したか確認しよう

ここまでの内容を、すぐ確認できるチェックリスト形式でまとめます。上から順に潰していくことで、無駄な試行錯誤を減らせます。

チェック内容
[ ]ゲームの .exe に対して、互換モード(XP / 98)を設定した。
[ ][管理者としてこのプログラムを実行する] を有効化した。
[ ][全画面表示の最適化を無効にする] と高DPIスケールの「アプリケーション」を設定した。
[ ]必要に応じて 16bitカラー / 640×480 での実行も試した。
[ ]Windowsの解像度を 1024×768 または 800×600 に一時的に下げてから起動してみた。
[ ]モニターのリフレッシュレートを 60Hz に設定して試した。
[ ]ゲームの設定ツール(config.exe 等)でウィンドウモード・低解像度を選択した。
[ ]DirectX 9.0c(DirectX End-User Runtime)をインストールし、再起動した。
[ ]必要に応じて Windows の [DirectPlay] を有効にした。
[ ]起動オプション(-window / -w / -windowed 等)でウィンドウ表示を試した。
[ ]dgVoodoo2 / DXWnd / DDrawCompat などの互換レイヤーを検討・試用した。
[ ]GPUドライバーを最新化し、ゲームのGPU割り当てを高性能GPU側に設定した。
[ ]dxdiag でシステム・ディスプレイ情報を確認し、異常がないかチェックした。

実際に多く報告されている「解決パターン」

実際のユーザー報告を総合すると、次のような組み合わせで「Can’t set display mode (0x80004001)」を乗り越えられた事例が多く見られます。

  • ゲームの .exe に対して Windows XP (SP3) 互換モード+管理者権限+全画面最適化無効+高DPI=アプリケーション を設定
  • Windows の解像度を 1024×768 / 60Hz に一時的に変更
  • DirectX 9.0c ランタイム を追加インストールして再起動

この3点セットだけで、起動しなかったタイトルが動くようになったという声は非常に多く、「まずはここから」という意味で最優先で試す価値があります。そのうえで、どうしてもダメな場合に DirectPlay や dgVoodoo2 など、次のステップへ進むとよいでしょう。

それでも動かない場合に考えられること

上記すべてを試してもまだエラーが出る場合、次のような可能性もあります。

  • ゲーム自体が 16bit アプリケーションであり、64bit版Windowsでは原則として実行できない(この場合は仮想マシンやエミュレータが必要)。
  • メディアチェックや古いコピーガード(SecuROM / SafeDisc など)が、現行OSではブロックされている。
  • インストール時に必要なファイルが正常にコピーされておらず、そもそも動作に必要なDLL等が欠けている。

このレベルになると、Windows 11 上での直接実行ではなく、仮想マシン(VirtualBox / VMware 等)で Windows XP を動かし、その中でゲームを起動する、あるいは GOG.com などで現行OS向けに調整済みのバージョンを購入する といった選択肢も検討することになります。

まとめ:順序立てて試せば「Can’t set display mode」を越えられる

古いPCゲームが Windows 11 で「Can’t set display mode (0x80004001)」や「Action not supported」と表示して落ちてしまう原因の多くは、表示モード(解像度・色深度・リフレッシュレート)と古いDirectX APIが、現行環境とうまく噛み合っていないことにあります。

しかし、次のような手順を順番に試していけば、多くのタイトルはまだ十分プレイ可能です。

  • ゲームの .exe に対する 互換性設定(XP/98・管理者・全画面最適化無効・高DPI=アプリ) を行う。
  • Windows 側で解像度を 1024×768 / 800×600、リフレッシュレートを 60Hz に落として試す。
  • DirectX 9.0c ランタイム を追加インストールして、不足しているコンポーネントを補う。
  • 必要なら DirectPlay や dgVoodoo2 / DXWnd / DDrawCompat などの互換レイヤーを活用する。
  • GPUドライバーの更新や GPU 割り当てを見直し、dxdiag で状態を確認する。

いきなり難しいツールに飛びつくのではなく、「互換モード → 解像度・リフレッシュレート → DirectX 9 ランタイム → レガシコンポーネント → ラッパーツール」という順序で進めるのが、最短で解決にたどり着くコツです。少し手間はかかりますが、思い出深いタイトルを再びプレイできたときの喜びは格別です。ぜひ、ここで紹介した手順を参考に、あなたの環境でも古いゲームを復活させてみてください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次