vmwareでdirectX7のゲームを無理やり動かす

vmware上でdirectX7のゲームが比較的高い再現度で実行できたので記事書きます。


先に結論
・WineD3Dとdxwndを混ぜて実装させたら動いた。
・一部の半透明ポリゴンが描画されない。
・滅茶苦茶重い(酷いと3fpsぐらい)


環境
・母艦:Windows 10 Pro / Core i7 2670QM 2.2GHz x8 / RAM 8GB / Intel HD Graphics 3000
・VMware Player 6.0.7 (非営利目的の使用のみ)
・エミュレート:Windows XP Professional SP2
・実行するゲーム:レゴ・ロックレイダーズ(必須DirectX7.0a、Windows98,ME)

記事内では、VMware上でのOSを「winXP」、VMwareがインストールされたOSを「win10」と書きます。


僕と全く同じ「レゴ・ロックレイダーズ」を動かそうと考えている方は居ないと思っていますが、
似た状況で困っている人の助けになれば幸い。






前提
・実行するゲームは実際のパソコンでWindowsXPで動作させることができる。


ゲーム構成
・Loading(非DirectX) → DirectX開始 → ムービー → 選択画面(2D、一部の表現で3D) → ゲーム画面(3D、一部UIが2D)


やったこと
・winXPにVM toolsをインストールする。
DirectX 8,9は対応しているが7には完全には対応できてない様子。

・winXPのDirectXをとりあえず更新しておく。
Jun2010だったような。一応インストール。

・ここで一度、ゲーム起動確認
DirectXの初期化に失敗しているっぽい?Loadingの直後、ウィンドウが閉じる。
→WinXP側で互換性等のオプションいじってもダメ


WinD3DというOpenGL wrapperがあるので、これを試す。
ざっくり説明すると、DirectXをOpenGLに置き換えましょうという話

・WinD3Dのreadmeに従って実装する。
具体的には(readmeに書いてある事ですが)、
・・バイナリエディタHxDをダウンロード、インストールする。Stirlingでも良い気がする。
・・ddraw.dll , libwine.dll , wined3d.dllをゲームの実行フォルダに入れる。
・・ddraw.dllをzdraw.dllに名前変更。
・・ゲームの実行プログラムであるLegoRR.icd(何故か拡張子がicdだった)を、バックアップを取ったうえでバイナリエディタで開き、キーワード"ddraw.dll"を検索する。
・・ddraw.dllをzdraw.dllに書き換える。


・ここでゲーム起動確認
Direct3D HALでは相変わらず。
RGB Simulationでは、ムービーと選択画面が真っ暗。ゲームは動いた。



DxWndを試す。WinD3Dで改造したLegoRR.icdは戻さず、このまま使う。

DxWndをダウンロードする。
・dxwndを起動。セットアップする。
・File → importを選択。最も近いゲームを探す。開発元、対応OSが近い「Lego Stunt Rally」を選んだ。
・Name,Path,Lunchを書き換える。PathはLegoRR.icd、LunchはLegoRR.exeを選択した。正直、良く分からない。
・項目を右クリック、Run


うごきました。




感想

ここまでやるならvmware辞めて、母艦PCでこのゲーム動かしませんか!?

と思ったら、windows10、インストーラすら動かなかった。windows7の時は動いたのに…





2016/09/07追記 : 画像追加
スポンサーサイト

テーマ : ソフトウェア
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++RubyJavaUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1253位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
219位
アクセスランキングを見る>>