2021年8月17日火曜日

【DigitalLoca4U】Windows10でパポタ 空飛ぶ魔導店を動作させる【VRAM2GB以上対応】

Windows10かつVRAM2GB以上の環境でパポタやろうとするとビデオメモリーが足りないって言われるので解決してみた





<手段と方法>
1.DDrawCompatをダウンロードする

2.パポタのstart.exeがあるフォルダにDDrawCompatのddraw.dllを置く

3.start.exeをダブルクリックして起動する





<説明は以上です>
1.DDrawCompatをダウンロードする
GitHubからDDrawCompatをダウンロードしてくる。とりあえずReleaseにある最新版の非デバッグ版でいいです。
ダウンロードリンクはAssets 4をクリックすると出てくる
ちなみにVRAMが2GB以下の場合は普通にVRAM認識するので何もしなくても起動できます。Win10恒例の仕様変更というかただのバグじゃないの?


2.パポタのstart.exeがあるフォルダにDDrawCompatのddraw.dllを置く
.zipを解凍するとddraw.dllというDLLが出てくるので、それをパポタのstart.exeと同じフォルダに移動なりコピーする。
だいたいこんな感じ。動作に.zipは不要ですが癖で置いてます。DDrawCompat-start.txtは起動時にできるログファイルなので気にしないでください。


3.start.exeをダブルクリックして起動する
互換性の設定はそのまま何もしなくても動きました(環境によるかも)
相変わらずラデだとAA使えないので使いたい場合はドライバで強制しましょう。あと何故かガンデスの背景が崩壊しなくなってた(ドライバは21.1.1)
少なくとも2004年のMOBILITY RADEON 9700から2019年のRadeon VIIまで一度もAA使えなかった模様…もはやデジロケの仕様だな





<完走した完走ですが>
Windows10だとDigitalLoca4U製のゲームが2GB以上のVRAMを認識してくれないという現象に人類が遭遇してから幾星霜…
昔は4GBの整数倍のVRAMがオーバーフローか何かで0MB扱いになってるのかと思ってましたが、wiki曰くGTX1060 3GBで動かないらしいのでどういうバグなんでしょう?

という訳で数年間メイン機でのプレイを諦めていましたが、唐突にWineD3Dで動いたりしないかな~と試した結果、まさかのDirectDraw(DirectX7.0)が原因という事が判明。
DirectX9.0じゃなかったんかい!と思ったものの、見返してみるとDirectX7.0だった模様

ちなみにWinD3Dのddraw.dllは非Vulkan版だと動作したものの、d3dim.dllに関数が無い!と怒られる上にフォント読み込めないとかいう致命的な不具合が発生した模様。
Win7時代のバックアップからddraw.dll/d3dim.dll/d3dim700.dllを引っこ抜いてもみましたが、起動時のVRAM足りないエラーは出ないが強制的にRGB固定になってダメでした。
7のddraw.dllだけだとd3dim.dll/d3dim700.dllに関数が無い!って怒られた模様

という訳でググったら一番上に出てきたDDrawCompatを試してみたら解決した、という訳でした。めでたしめでたし。





<2022/03/18追記>
DDrawCompatが動作しない環境があるらしいのでdgVoodoo 2も試してみた。
dgVoodoo 2をダウンロードして、解凍したら\MS\X86のDDraw.dll/D3DImm.dll/D3D8.dllをパポタのstart.exeがあるフォルダに置いて起動。
dgVoodooCpl.exeとdgVoodoo.confはdgVoodoo 2の設定用なので無くても動作はします

タイトル画面に謎の影が出る以外問題無く動作したので、DDrawCompatが動作しない場合はコチラもどうぞ。ちなみにRadeon環境でもAAが使える
ウォーターマークはdgVoodooCpl.exeで設定すれば消せます