マウントツール:https://sourceforge.net/projects/imdisk-toolkit/
ロケール変更ツール:https://github.com/xupefei/Locale-Emulator
古い日本製 PC ゲーム実行ガイド
はじめに
苦労して古いゲームや未翻訳の日本語ゲームをダウンロードし、ISO を展開してパッチの当たっていない xxx.exe を起動したとき、起動しない、文字化けする、エラーが出る、といった状況に遭遇することがあります。
時代を十数年前、物理ディスクでゲームが販売されていた頃まで戻してみましょう。
当時は大容量のゲームデータをインターネット経由で配布するのに向いておらず、多くのゲームメーカーはコードやリソースを CD-ROM や DVD-ROM に収録して販売していました。
さらに重要なのは、当時のソフトウェア開発が強く地域環境に依存していたことです。
多くの日本製 PC ゲーム、特にビジュアルノベルや GalGame のエンジンは、次のような実行環境を前提としていました。
日本語版 Windows、Shift-JIS(CP932)エンコーディング、物理光学ドライブ、DirectX 9 / DirectShow などの古いマルチメディアフレームワーク、そして Windows XP 時代の比較的緩い権限モデルです。
しかし現代のシステムは大きく変化しました。Unicode が主流になり、光学ドライブはほぼ使われなくなり、Windows のセキュリティ機構は大幅に強化され、DirectShow は徐々に非推奨となり、UAC や DEP は標準で有効になっています。
そのため、多くの古いゲームは現代の Windows 環境でさまざまな互換性問題を起こします。
本記事では、次の三つの方向から説明します。
- 基礎知識
- 手順
- トラブルシューティング
基礎知識
形式
古いゲームをダウンロードすると、次のようなファイルをよく見かけます。
.iso .mdf .mds .cue .bin
初心者はこれらを圧縮ファイルのように展開し、そのままゲームを起動しようとすることがあります。
一部の翻訳パッチ済みゲームでは、この方法でも動作する場合があります。
しかし、オリジナル版の日本語ゲーム、DRM チェックのあるゲーム、またはディスク構造に依存するゲームでは、直接展開すると、インストール失敗、起動失敗、DRM エラー、ディスク未挿入エラー、BGM の欠落、OP ムービーの異常などが発生することがあります。
ISO とは何か
簡単に言えば、.iso は物理ディスクをデジタル化したものです。
ファイルシステム構造、データの配置順序、ディスクのディレクトリ構造を保存しています。
そのため、単なる圧縮ファイルではありません。
.mdf + .mds は、より「物理ディスクイメージ」に近い形式です。
.mdf は実際のデータを保存し、.mds はトラック情報やディスク構造情報を保存します。
.iso などのファイルが本質的にディスクであるなら、それを読み取るためには当然「ドライブ」が必要です。光学ドライブがほとんど使われなくなった現代の PC では、Windows が仮想光学ドライブという仕組みを提供しており、.iso というデジタルディスクを仮想デバイスに挿入して読み取れるようにします。これをマウントと呼びます。
Windows 標準の ISO マウント機能に加えて、専用のマウントツールである imdisk-toolkit を使うこともできます。ただし、ImDisk は一部の DRM への対応が限定的であり、場合によっては別のツールが必要になることがあります。
なぜ展開ではなくマウントするのか
直接展開すると、元のディスク構造が壊れたり、一部の DRM が必要とする情報を保持できなかったりします。また、パスの変化によってゲームがリソースを認識できなくなることがあり、I/O 負荷も増えます。さらに、ゲームによっては現在の実行元が「光学ドライブのパス」であるかどうかを確認します。
マウントすると、Windows はそのイメージを実際に挿入されたディスクのように扱います。そのため、ゲーム側からは次のようなパスが見えます。
D:\E:\つまり「本物の光学ドライブ」として認識されます。
古い商用ゲームは、コピー防止やインストール手順の管理のために DRM を使用していることがあります。不要なトラブルを避けるためにも、基本的にはマウントして実行する方が安全です。
ロケール実行
ゲームをマウントして startup.exe を起動すると、高い確率で文字化けに遭遇します。
現代の Windows は Unicode を全面的に採用していますが、2000 年前後の日本製ゲームの多くは、Shift-JIS(CP932)と ANSI Win32 API を使って文字列を処理しています。
問題は、中国語版 Windows の既定 ANSI コードページが通常 GBK(CP936)であることです。ゲームは日本語文字として出力しているつもりでも、システム側は GBK として解釈してしまいます。その結果、文字化け、四角い文字、???、プログラムの誤動作、場合によっては異常終了やクラッシュが発生します。
システム標準の「地域設定」に頼らない方がよい理由
インターネット上の古いチュートリアルでは、「非 Unicode プログラムの言語を日本語に変更すればよい」と説明されていることがあります。これは確かに一部の問題を解決できます。
しかし、これはシステム全体に影響する変更です。場合によってはかなり危険で、中国語の古いソフトウェアが文字化けしたり、一部のツールが異常動作したり、エンコーディングの衝突が発生したりします。
さらに厄介なのが、Windows 10 で追加された 「ベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用」 というオプションです。これを有効にすると、非 Unicode 互換レイヤーが UTF-8 モードに強制されます。この説明は分かりにくく、誤って有効にするとかえって多くの問題を引き起こす可能性があります。
システム全体に影響を与えず、単一のプログラムだけに必要な言語環境を与えるため、技術コミュニティではさまざまなロケールエミュレーションツールが開発されてきました。Microsoft 公式の短命な AppLocale から、オープンソースコミュニティの NTLEA まで、この流れは継続してきました。現代の Windows 環境では、2021 年 8 月 26 日に最終リリースが公開された Locale Emulator が長らく安定した選択肢として使われてきました。これは Win32 API を Hook することで、プログラムに「自分は日本語環境で実行されている」と思わせる仕組みです。
比較的新しい 64 ビット GalGame の場合は、64 ビット非対応などの問題を解決するために Locale_Remulator を使う必要があります。
手順
-
ディスクをマウントする
ISO などの形式を使う場合は、右クリックしてマウントを選択します。するとエクスプローラーに仮想光学ドライブが作成され、そのまま開くことができます。
imdisk-toolkit をインストールし、ディスクイメージを右クリックして
ImDisk 仮想ディスクとしてマウントを選択することもできます。一部の MDS/MDF を使用する古いゲームでは、ImDisk が使えない場合に WinCDEmu を試すことができます。
-
ロケール環境でインストーラーを起動する
まず Locale Emulator、または推奨として Locale_Remulator をシステムにインストールします。
新しくマウントされた仮想ディスクを開き、インストールを開始するメインプログラムを探します。一般的な命名では、
Setup.exeやInstaller.exeと名付けられていることが多く、ゲーム本体はゲームの英語名を使った exe ファイルになっていることがあります。Setup.exeまたはゲーム本体を右クリックし、表示されるコンテキストメニューから、オレンジ色の L アイコンが付いた “Locale Emulator” の項目を探します。Windows 11 を使用している場合、従来のメニュー項目は既定で折りたたまれています。まず「その他のオプションを表示」をクリックする必要があります。
そのアイコンにマウスを合わせ、展開されたサブメニューから
Run in Japaneseをクリックします。日本語のインストールウィザードでは、「次へ」または「同意する」を押しながら進め、インストール先を選択する画面まで進みます。ここで重要なのは、インストールパスに中国語文字、特殊記号、全角スペースを含めてはいけない という点です。
パスを手動で確認し、英字のみで構成された短いパスを選んでください。
多くの古いゲームは ANSI API と非 Unicode のファイル処理を使用しています。そのため、中国語文字、特殊記号、長すぎるパスを正しく処理できません。結果として、ファイルが見つからない、インストールに失敗する、読み取りエラーが発生する、といった問題が起こります。
-
専用のロケールショートカットを作成する
インストールが完了しても、デスクトップに作成されたショートカットをそのまま使わないでください。そこにはロケール環境が紐づいていません。
先ほど設定したインストール先を開き、ゲーム本体である
xxx(ゲーム英語名).exeを探します。右クリックしてLocale Emulator->アプリケーションプロファイルを変更を選択します。設定が日本語環境と日本時間になっていることを確認したら、ツール画面の
ショートカットを作成ボタンをクリックします。ロケール設定が紐づいた新しいショートカットが生成されるので、それをデスクトップショートカットの代わりに使います。 -
ディスクを取り出す
すべてのインストールと設定が終わったら、「PC」を開き、仮想 DVD ドライブを右クリックして「取り出し」を選択します。
トラブルシューティング
重要
多くの問題はウイルス対策ソフトが原因で発生している可能性があります。必ず確認してください。
-
Windows 互換モード
一部の古いゲームでは、exe を右クリック → プロパティ → 互換性 → Windows XP SP3 が必要になる場合があります。
-
日本時間
少数のゲームはシステムのタイムゾーンを確認します。 時刻に関するエラーが出る場合は、東京時間(UTC+9)に切り替えるか、ロケールツール内で設定してみてください。
-
フルスクリーンの黒画面
強力なツール Magpie を使います。
-
Windows SmartScreen
症状:ゲーム起動時に
Windows によって PC が保護されましたと表示される。原因:プログラムに信頼済みのデジタル署名がない、またはダウンロード元の評価が不足している。
解決策:「詳細情報」→「実行」をクリックします。
-
ゲーム内で文字化けする、または文字が表示されない
症状:ゲーム内で文字化けしたり、文字が表示されず四角い文字になる。
原因:ゲームが特定の日本語フォントをシステム内で探している、または翻訳パッチが特殊なフォントを必要としている。
解決策:
- 対応するフォントをインストールします。
-
LE のインストール失敗、または右クリックメニューが消える
症状:LE はインストール成功と表示するが、LE のメニュー項目が見つからない。
原因:メニュー項目がすぐ反映されていない / 対象が 64 ビットファイルである / セキュリティソフトに誤検出された。
- 解決策:再起動する / 他の解決方法やパッチを探す / ウイルス対策ソフトを停止するか、プログラムをホワイトリストに追加します。
-
d3dx9_xx.dllが見つからない、またはMSVCP140.dllが不足している症状:ゲーム起動時に
d3dx9_xx.dll が見つかりませんまたはMSVCP140.dll が不足していますと表示される。原因:開発時に当時の Microsoft が提供していた特定のマルチメディアランタイムや実行ライブラリに依存しているが、現代のシステムには標準で含まれていない、または構成が変わっている。
解決策:
- 方法 1:Microsoft 公式サイトから
DirectX End-User Runtimes (June 2010)をダウンロードしてインストールします。または、Visual C++ Redistributable Runtimes All-in-One のようなコミュニティ管理の一括パッケージを使用します。 - 方法 2:コントロールパネル → プログラム → Windows の機能の有効化または無効化 から、レガシーコンポーネントを有効化します。
- 方法 1:Microsoft 公式サイトから
-
進行状況を保存できない / 保存時にクラッシュやエラーが出る
症状:「Save(保存)」を押すと、日本語の読み書きエラーや権限不足のエラーが出る。または保存したように見えて、実際には保存されていない。
原因:これは OS の設計変更による典型的な衝突です。Windows XP 時代はシステムのセキュリティが弱く、多くのソフトが管理者権限に近い環境を前提としていました。
しかし Windows Vista 以降、UAC が導入され、
C:\Program Files (x86)やC:\Program Filesなどの重要なシステムディレクトリは高度に保護された領域になりました。古いゲームが現代のシステム上でこの領域に新しいセーブファイルを作成しようとすると、書き込みやアクセスが拒否されることがあります。
解決策:
-
方法 1:UAC 権限を必要としないフォルダに再インストールします。
-
方法 2:管理者として起動します。
-
-
ロケール実行しても何も起きない
症状:メインプログラムを起動したが、何も起こらない。
原因:これは最も調査が難しい問題の一つで、ほぼ万能の解決策はありません。多くの場合、イベントビューアーのログやエラーメッセージを確認する必要があります。
ただし、いくつかのよくある原因はあります。
-
DEP(データ実行防止)に引っかかっている
現代の Windows には、CPU ハードウェアと連携した低レベルのメモリ保護技術である DEP が組み込まれています。
その役割は、特定のデータメモリ領域を
実行不可(NX)としてマークすることです。問題は、一部の古いゲームが実行中に自身のコードを動的に展開または変更することです。このような挙動は、現代の Windows の DEP によって誤判定される場合があります。その場合、プロセスは直接
0xc0000005を出して終了することがあります。プログラム側に適切な例外処理がない場合、エラー画面を描画する前にプロセスが終了してしまいます。 -
古い動画コーデックの問題(高確率でウィンドウも出る)
(GIGA を名指しします)多くのゲームは起動直後に OP ムービーを再生します。これらの古いゲームは、古い DirectShow 動画フレームワークを使って初期の動画形式を呼び出していることが多く、その結果、タイムアウト、フリーズ、クラッシュが発生します。
試せる方法:
- K-Lite Codec Pack をインストールする
- LAV Filters をインストールする
- dgVoodoo2 を使う(推奨)
dgVoodoo2 とは? これは古いグラフィックス API の変換レイヤーです。DirectX 8/9 を現代の API に変換し、黒画面、解像度問題、互換性問題を修正できます。一部の古い GalGame では、互換性や性能の改善がかなり分かりやすく現れます。
-
