?プロジェクトを応援してください! ?
皆様のご支援により、古いゲームを現在のプラットフォームでスムーズに実行できるようにするdd7to9
機能の開発が促進されます。 PayPal による 1 回限りのブーストでも、Patreon での継続的な月々のサポートでも、あなたの貢献によって継続的な改善とプロジェクトの成長への取り組みが保証されます。あなたのサポートは非常に貴重ですが、特定のゲームの優先順位には影響しないことに注意してください。この旅にご参加ください!
PayPal によるサポート |パトレオン
Dxラッパー
導入
DxWrapper は、古いゲームの互換性の問題を修正するために DirectX ファイルをラップするように設計された .dll ファイルです。このプロジェクトは主に、.dll および .ini ファイルをゲーム フォルダーにドロップするだけで、Windows 10/11 でのゲームの実行に関する問題を修正することを目的としています。その第 2 の目的は、複数のプロジェクトを 1 つに結合した単一のツールを提供することです。
特徴
DxWrapper には次のような多くの機能があります。
- DDrawCompat の統合
- 互換性を向上させるための DDrawCompat オプションの構成
- DirectDraw 1 ~ 6 から DirectDraw 7 への変換
- Direct3D 1 ~ 6 から Direct3D 7 への変換
- Dd7to9 を使用した DirectDraw 1 ~ 7 (ddraw.dll) から Direct3D 9 (d3d9.dll) への変換
- Dd7to9 を使用した Direct3D 1 ~ 7 (ddraw.dll) から Direct3D 9 (d3d9.dll) への変換
- d3d8to9 を使用した Direct3D 8 (d3d8.dll) から Direct3D 9 (d3d9.dll) への変換
- dinputto8 を使用した DirectInput 1 ~ 7 (dinput.dll) から DirectInput 8 (dinput8.dll) への変換
- Direct3D 1 ~ 7 から人為的な解像度制限を削除する LegacyD3DResolutionHack が含まれており、これにより DirectDraw ゲームを 4K 解像度でプレイできるようになります
- DSoundCtrl を使用した Microsoft DirectSound 関数呼び出しの微調整
- DirectDraw 1 ~ 7、Direct3D 8、および Direct3D 9 ゲームがウィンドウ モードで実行される可能性があります
- Direct3D 9 を使用している、または Direct3D 9 に変換されたゲームのフレーム レートを制限できる
- Direct3D 9 を使用している、または Direct3D 9 に変換されたゲームで垂直同期を有効または無効にできます
- 複数のグラフィックス カードを搭載したラップトップで Direct3D 9 の GraphicsHybridAdapter を設定できる
- Direct3D 9 に対して Direct3D9On12 を有効にできます
- 頂点処理とキャッシュ モードを設定して、一部の Direct3D 9 ゲームのパフォーマンスを修正できます
- DirectDraw 1 ~ 7 ゲームからスキャンラインを削除できます
- Direct3D 8 および 9 ゲームの MaximizedWindowedMode (全画面最適化) を無効にできます
- 一部のゲームの問題を解決するために高 DPI スケーリングを無効にすることができます
- Microsoft Game Explorer (GameUX) を無効にして、rundll32.exe の CPU 使用率の高さを防ぐことができます
- サウンドの再生中にゲームがオーディオをクリッピングすることによって発生するオーディオのポップ音やクリック音を無効にできます
- Ultimate ASI Loader を使用して、ファイル拡張子 .asi を持つカスタム ライブラリをゲーム プロセスにロードするための ASI ローダー
- ASI プラグインとしてのロードをサポート
- ゲームがサポートしていない場合でも、Direct3D 8 または 9 ゲームにアンチエイリアス サポートを追加する
- ホット パッチ メモリのサポート (実行時にゲーム メモリを更新し、CD/DVD チェックを削除したり、グラフィックスやその他の不具合を解決したりするために使用できます)
- 単一の CPU アフィニティを設定します (一部のゲームにはマルチコア CPU に関する問題があります)
- SetAppCompatData API を使用して、DXPrimaryEmulation の 12 個のアプリケーション互換性ツールキット オプションをすべて設定する機能
- ゲーム ウィンドウを全画面に設定します (一部のゲームには全画面の問題があります)
- ゲーム内の例外またはクラッシュの処理
- カスタム .dll ファイルをゲームにロードする
- ゲーム起動時にカスタムプロセスを実行する
Windows 10/11 のゲームの互換性リスト
これまでのところ、私は Windows 10/11 で実行できるよう、何百ものゲーム (その多くは正常に動作しません) でこれをテストしてきました。ほとんどのゲームは動作しますが、まだ問題が発生するゲームもあります。リストについては、互換性のあるゲーム wiki および Dd7to9 サポートされているゲーム wiki を確認してください。
インストール
- リポジトリのリリース ページから最新のバイナリ リリースをダウンロードし、フォルダに解凍します。
- ゲームに必要なスタブ .dll ファイルを決定します。これは、後で作成するページで説明する多くの要因によって決まります。使用する一般的なスタブ DLL は、
ddraw.dll
、 d3d8.dll
、 d3d9.dll
、 dsound.dll
、またはwinmm.dll
です。 dxwrapper をゲームにロードするには、スタブ ファイルを 1 つ選択するだけです。 - この .dll ファイルを「Stub」フォルダーから、
dxwrapper.dll
およびdxwrapper.ini
ファイルとともに、ゲームのインストール ディレクトリのメイン実行可能ファイルの隣にコピーします。一部のゲームでは、メインの実行可能ファイルがサブディレクトリ (「Bin」、「Exe」、または「App」など) にあるため、ファイルをそのディレクトリにコピーする必要があります。既存のゲーム ファイルを上書きすることはお勧めできません。 - テキスト エディタで
dxwrapper.ini
ファイルを開き、ゲームに必要な設定を有効にします。
Windows システム ディレクトリ内の .dll は現在サポートされておらず、機能しないため、上書きしないでください。
アンインストール
ゲームのディレクトリから DxWrapper .dll および .ini ファイルを削除します。ログ ファイルがある場合は、それを削除することもできます。
構成
DxWrapper を構成するには、.ini ファイルを編集し、必要な設定を有効にします。詳細については、構成 wiki を参照してください。
サンプル構成ファイル: dxwrapper.ini。
すべての構成オプションのリスト: allsettings.ini
ロギング
ログ ファイルは、ゲームの実行可能ファイルが配置されているのと同じフォルダーに作成されます。これには、ゲーム実行可能ファイルの名前が追加された「dxwrapper」という名前が付けられます。したがって、ファイルgame.exe
を実行している場合、ログ ファイルの名前はdxwrapper-game.log
になります。
サポートされている DLL
DxWrapper は次の DLL をラップできます。
- bcrypt.dll
- cryptbase.dll
- cryptsp.dll
- d2d1.dll
- d3d8.dll
- d3d9.dll
- dciman32.dll
- ddraw.dll
- 入力.dll
- diput8.dll
- dplayx.dll
- dsound.dll
- dwmapi.dll
- msacm32.dll
- msvfw32.dll
- バージョン.dll
- wininet.dll
- winmm.dll
- winmmbase.dll
- ウィンズプール.drv
- wsock32.dll
ライセンス
著作権 (C) 2024 エリシャ リードリンガー
このソフトウェアは「現状のまま」提供され、明示的または黙示的な保証はありません。いかなる場合においても、作者はこのソフトウェアの使用から生じるいかなる損害についても責任を負いません。以下の制限に従って、商用アプリケーションを含むあらゆる目的でこのソフトウェアを使用し、自由に変更および再配布することが誰にでも許可されます。
- このソフトウェアの出所を偽って伝えてはなりません。オリジナルのソフトウェアを自分が作成したと主張してはなりません。このソフトウェアを製品で使用する場合は、製品ドキュメントでの謝辞をいただければ幸いですが、必須ではありません。
- 変更されたソース バージョンには、そのように明示的にマークする必要があり、オリジナルのソフトウェアであるかのように誤って伝えてはなりません。
- この通知は、ソース配布から削除または変更することはできません。
クレジット
DxWrapper は、他のいくつかのプロジェクトのコードを使用します。したがって、称賛すべきところは称賛するために、ソース コードの引用元の場所のリストを以下に示します。
- AppCompatData: blitzbasic.com からのコメントを使用して、DirectDraw AppCompatData 設定を構成する機能を構築しました。
- Aqrit の ddwrapper: ini 設定ファイルを読み取るコードが含まれています。
- cnc-ddraw: エミュレートされたサーフェス デバイス コンテキストを作成するコードが含まれています。
- d3d8to9: Direct3D 8 から Direct3D 9 までの完全なコードが含まれています。
- D3DParseUnknownCommand: ReactOS にあるソース コードからの DirectDraw D3DParseUnknownCommand のコードが含まれています。
- DDrawCompat: API フック用の完全な DDrawCompat v0.2.0b、v0.2.1、および v0.3.2 が含まれています。
- doom3.gpl: ビデオ メモリを取得するコードが含まれています。
- diablo-ddrawwrapper: ddraw を Direct3D に変換するためのコードが含まれています。
- DSoundCtrl: 完全な DirectSoundControl コードが含まれます。
- DxWnd: プロキシ読み込み (init.cpp) と例外処理のための DxWnd のコードが含まれています。
- GetComputerManufacturing: コンピューターのベンダーとモデルを取得するための rohitab.com からのコードが含まれています。
- GetFileVersionInfo : PE ファイルのバージョンを取得するための stackoverflow.com からのコードが含まれています。
- GetPPID: 親プロセスの PID を取得するために mattn GitHub プロジェクトから取得したコードが含まれています。
- LegacyD3DResolutionHack: Direct3D 7 以前から人為的な解像度制限を削除するための LegacyD3DResolutionHack のコードが含まれています。
- MemoryModule: メモリからライブラリをロードするためのコードが含まれています。
- OllyDbg: 例外処理に使用される完全な cmdlist.c および disasm.c (disasm.dll) コードが含まれています。
- PixelShaderPalette: DirectDraw パレットのサーフェスを適切に表示するために使用される PixelShader 用の ddraw-cnc のコードが含まれています。
- SilentPatchFarCry: Direct3D 9 でクリップ プレーンをキャッシュするための SilentPatchFarCry のコードが含まれています。
- Ultimate ASI Loader: ASI プラグインをロードするためのコードが含まれています。
- WineD3D d3d8.dll: ValidatePixelShader および ValidateVertexShader 関数が含まれています。
発達
DxWrapper は、主に Microsoft Visual Studio 2022 を使用して C++ で書かれています。
プロジェクトには Windows 10 SDK と WDK の両方が必要です (一致する SDK と WDK バージョンがインストールされている必要があります)。必要な正確なバージョンは、Visual Studio のプロジェクト プロパティで確認できます。
GitHub リンク: https://github.com/elishacloud/dxwrapper
お立ち寄りいただきありがとうございます。