昨年末に拙作ソフトの動作確認環境の一つとして使っていた Ubuntu 18.04 LTS + Wine 1.8 環境を Ubuntu 20.04 LTS + Wine 6.0 RC3 環境へ更新…といいますか, 環境自体を作成し直しました。 OS は ともかく Wine が全く別物と言えそうな最新の版へ切り替えたこともあって, 3D ソフトどころか 3DMark06 すら実行できてしまった辺りは記事で書いたとおりです。
その一方で若干引っかかった箇所があったり, Win64 版 Wine を使用しているからなのか一部動作しなかったソフトがあったりもしましたので, 今回改めて Win32 版 Wine の環境を作成し, 覚え書き代わりに その構築手順を書いておくことにしました。 一カ所に纏まっていると未来の私が参照するのも楽でしょうし…。
大ざっばに纏めれば「VMware 12.5.9 上で Ubuntu 20.04 LTS 環境を構築の上 Wine 6.0 RC4 をインストールし, Winetricks で必要な処置を講じた後に各種 (動作確認用) ソフトをインストールして実行」という文になり, ちなみに右画像が その構築した環境で, 要は その状態へもっていくまでの手順を少々詳しく書いていこう…というわけなのでした。
それでは早速手順に入っていきましょう。 まずは VMware での Ubuntu ゲスト作成です:
新規仮想マシン作成ウィザードに従ってゲストを作成します。 少々弄る箇所があることから左画像のとおりカスタム作成を選択しています。 今回は最新版ゲストでも問題ないことが最初から判明していますので, 右画像のとおりハードウェア互換性は既定値の「Workstation 12.x」のまま進めます。
OS のインストール元を聞いてきたら左画像のとおり Ubuntu 20.04 LTS の ISO イメージを指定します。 DVD を使用するのであればドライブを指定することになります。 続いてプロセッサ数を聞いてくるので「プロセッサ数 1」「プロセッサ毎のコア数 2」を指定します。 OS によっては CPU 数毎のライセンスが必要だったりしますので, コア数のほうを増やす設定としています。 単なる個人的経験則での指定で複数コアであれば問題ありませんから, 都合の良い設定を行えば良いと思います。
ちなみに, 使用している ISO イメージは Ubuntu Japanese Team の「Ubuntu Desktop 20.04.1 LTS 日本語 Remix」です。 お手軽モードで手を抜きたいので日本語 Remix 版を選択しています。 Ubuntu 自体が そういった方向性の OS なので, それで良いのです。 (笑)
8 GB しか載せていないホストなので, 左画像のように泣く泣くメモリー容量を 2 GB としています。 可能なら最低 4 GB くらいは指定してあげましょう。 (^^;) 一方の右画像…。 ディスク容量を 64 GB としていますが, こちらも大きめに確保しておいたほうが安全ですし, さらに頭から全容量を確保しておいたほうが動作は軽いです。
仮想ディスクを単一ファイルにするか分割ファイルにするかは お好みで…。 デフラグや「以前のバージョン」機能には分割ファイルのほうが有利…どころか, 64 GB とかだと「以前のバージョン」の対象にならなかったりしますが, その一方で大きめのディスク容量だと「分割ファイルが数百個」といった事態に陥って SSD でさえパフォーマンスがガタ落ちしたりしますので, 状況と折り合いをつけて選択することになると思います。
弄りたい箇所がある場合は, ウィザード完了画面の「ハードウェアをカスタマイズ」ボタンをクリックして個別設定を行います。 左画像で行っているのは VRAM を推奨の 768 MB に設定することと, 今回必要のないプリンターデバイスの削除です。 全ての設定が終了したら右画像のとおり「完了」ボタンをクリックして OS のインストールを開始します。
Ubuntu 20.04 LTS のインストール作業が開始されます:
左画像のとおり まずは仮想 PC のハードチェック (主にディスクチェック) が行われ, 続いて右画像のようにファイルがコピーされていきます。
インストールが進んで再起動されると, 左画像のように このタイミングで Open-VM-Tools がインストールされます。 ちなみに, 今では VMware 謹製の VMware Tools が非推奨となっていて, Ubuntu 20.04 辺りだとグラフィックドライバーは, ブラックリストを有効にしても認識すらされません。 ハードウェア系の作業が全て終了すると右画像のとおりログイン画面が表示されますので, パスワードを入れてログインします。 あ, 初期の段階で聞いてくるアカウント設定の画面は あえて載せていませんので, 念のため。 (^^;)
左画像…。 必要ならオンラインアカウントの設定を行ってください。 実用するなら Google と MS のアカウントを追加していると思いますが, 今回は必要ないので そのままスキップです。 一方, 右画像の Livepatch は お好みでセットアップしてください。 今回は これもスキップ。
レポート提出は…多くの方はオフに設定することとなるでしょう。 自身は日曜プログラマーながら開発者の顔も もっていますので, 左画像のとおりオンにしています。 一方の右画像…。 位置情報サービスについては, タイムゾーンの自動設定を行いたいのでオンにしています。 ここをオフにする方も多いと思いますが, その場合はタイムゾーンを含め手動で時刻設定を行う必要があります。
一とおりの作業を経ると OS のインストール作業は終了です。 …が, 仮想環境だったり元々が米国用で作成されている OS (といいますか媒体イメージ) なので, 少々の追加作業が必要となります。
これまでの画像を見て お判りのように, 仮想環境なのが災いして解像度が SVGA クラスになってしまっていますので, 左上画像のとおり実際に使用する解像度へ変更しておきます。 動作確認を行うソフトや孫亀環境を WXGA で使うことが多いことから, ここでは それらをウィンドウ表示可能な 1440x900 に指定しています。
日本語設定で OS がインストールされているものの日付を始めとした各種フォーマットが米国設定のままですので, 右上画像のように日本形式を指定しておきます。
さらにタイムゾーンが米国東部時間になっていますので日本標準時に設定しますが, 先ほど位置情報を有効化していますので, 左下画像のように ここでは自動日時設定を有効化するだけです。 最後に仮想環境では逆に不便だったりしますので, 右下画像のとおりブランクスクリーンを無効化しておきます。
「作業終了~」と左上画像のようにシステム情報を確認していたところ, 何時の間にかアップデートが降ってきていましたので, 右上画像のとおりソフトウェアの更新を確認の上インストールを行います。
すると左中画像のようにダウンロードが進み, 続いて右中画像のとおり順次インストールが行われ, 最後に左下画像のように再起動を求められます。 再起動したら右下画像のとおりシャットダウンを行い Ubuntu のインストール作業は これで終了となります。
Ubuntu のインストールは終了しましたが, 最後に VMware 関係の設定が若干残っています:
左上画像のとおり何故か光学ドライブが 1 つ余計に追加されていますので, それを削除します。 続いて, 右画像のようにホストから簡単にコピーできるよう共有フォルダーの設定を行います。 まずは VMware の共有フォルダ追加ウィザードを使って, ホストのフォルダーを適当な共有名で (当該ゲスト向けに) 公開します。 2 段目左画像のとおり公開期間は「常に有効」としておきます。
今度は Ubuntu 側での設定です。 永続共有を行うためには設定ファイルを使いますので, 2 段目右画像のとおり端末を開いた上で
sudo gedit
と root 権限でテキストエディターの gedit を起動します。 起動したら 3 段目左画像のように「/etc/fstab」を指定して開きます。 /etc/fstab はファイルシステムの設定ファイルです。 ファイルを開いたら 3 段目右画像のとおりファイルの最終行に
.host:/<ホストの共有名> <マウント箇所> fuse.vmhgfs-fuse allow_other 0 0
の行を追加して保存します。 マウント先は普通なら「/mnt」フォルダー配下の適当なフォルダーとなります。 (画像では /mnt/hgfs) 設定ファイルを保存後必要なら再起動を行って, 左下画像のとおり先ほど指定したマウント箇所から共有先を開けるか確認します。 確認できたら右下画像のようにゲストを終了してスナップショットでも撮っておきましょう。
さて, 漸く OS の準備が整いました。 ここからは Wine のインストール作業となります:
まずは左画像のように Firefox を使って「WineHQ」の文字で検索し, お手軽モードで WinHQ wiki の Ubuntu 用パッケージのページを開きます。 以降は基本的に そのページで記載されている手順に従って Wine をインストールすることになります。
以前引っかかった経験があるので, 手順を進める前に左画像のとおり おまじないを唱えておきます:
sudo apt install net-tools
当時 VMware 付属の VMware Tools を使っていた点が影響したのでしょう。 Open-VM-Tools を使う今の環境では必要ないかと思いますが, 念のため唱えています。
手順に入って, インストールしたのが x64 版 Ubuntu なので, 右画像のとおり
sudo dpkg --add-architecture i386
を実行して 32 ビット環境の有効化を行います。
ここからが Wine インストールの手順となります:
WineHQ のリポジトリーキーをダウンロードした上でシステムに追加します。
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
登録したキーを使って Ubuntu 20.04 LTS 用のリポジトリを追加します。 さらにパッケージの更新を行って, 追加分と既存分の整合性をとっておきます。
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt update
手順にはありませんが, 先に net-tools をインストールしたこともあって, ダメ押しでパッケージのアップグレードも行ったところ, 「余ったモジュールがある」と申告されましたのでパッケージの自動削除を追加で行っておきます。
sudo apt upgrade
sudo apt autoremove
Wine をインストールします:
最新の環境を使いたいので, 人柱モードを覚悟で staging を選択します。 右画像のようにダウンロードとインストールが行われるものの, 作業には少々時間を要します。
sudo apt install --install-recommends winehq-staging
手順にある Wine のインストール作業が終わって, ここからは各種 Windows ソフトを使用できるように Wine 環境を整える作業となります:
年末の記事では x64 環境でしたが, 今回は x86 環境としたいので それを有効化します。
WINEARCH=win32 winecfg
環境変数の設定と winecfg の 2 つのコマンドが並んでいますが, そうしないと x86 環境は作成されません。 行を分けてしまうと環境変数の設定が無効となり x64 環境が作成されます。 あと, 話を簡単にしたいことから, 今回は既定である /home/.wine に環境を構築しています。 使い分け等を行いたいなら, そのように構築してください。 ただし, プレフィクス指定の追加などが必要になりますので, 以降のコマンド指定は面倒になります。 (^^;)
ともあれ, 当該プレフィクスで初めて起動することになりますので, 右画像のように まずは wine-mono のインストールを求められます。 ややこしいことをする予定はありませんので, 素直に「インストール」を選択します。
インストールを選択すると左画像のようにダウンロードとインストール作業が行われます。 表示スタイルから判るように, これらは wine 環境…つまり Windows プログラムとして実行されています。 続いて, 右画像のように Wine Gecko のインストールも求められますので, 同様にインストールします。
必要な作業が終了すると, 左画像のとおり Winecfg の画面が表示されます。 Wine が返す Windows のバージョンは既定の Windows 7 で問題ありませんが, 中には それで駄目なソフトも あったりしますので, それらについては個別で設定することになります。
一応 Wine の版を確認してみたところ, 右画像のとおり ちゃんと Wine 6.0 RC がインストールされていました。
ついでなので, 左画像のとおり仮想デスクトップのエミュレートを有効化しておきます。 これを行っておけば, 全画面表示の Windows ソフトがハングするなどして操作不能に陥っても, 当該ウィンドウを閉じることで終了させることが可能になります。 (もちろんキー操作などでも可能ですが, 一般向けには こちらのほうが解りやすいでしょう…。)
ちなみに, フォント等のインストールを行っていないので, 見てのとおり解像度を示すフォント表示は豆腐文字になってしまっています。 それは この後で行いますが, 今は右画像のように一旦 Winecfg と端末を閉じておきます。
フォントや必要モジュール (DLL) の追加を行うため Winetricks をインストールします:
ダウンロードフォルダーを使用しますので, 左画像のように File アプリで当該フォルダーを開き, そのまま「端末で開く」で端末を開きます。 こうすることでダウンロードフォルダーを作業フォルダー (カレントフォルダー) とする手間を省けます。 もちろん, 端末を開いてからコマンドを叩いても構いませんし, 解っている方には そのほうが早いのですけれどね…。
端末を開いたら右画像のとおり wget コマンドで最新版の Winetricks をダウンロードします。
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
ダウンロードした Winetricks を実行可能にした上で, コマンドとして使えるように /usr/bin フォルダーへ移動します。 /usr/bin にするか /usr/local/bin にするのかは環境や方針によります。
chmod +x winetricks
sudo mv winetricks /usr/bin
Winetricks が使えるようになりましたので, それを使ってフォントや DLL の追加を行います:
Winetricks を起動し右画像のとおり「Select the default wineprefix」で /home/.wine プレフィクスを選択します。 使い分けをしているなら, 設定を行いたいプレフィクスを選択します。
まずはフォントの追加を行いますので, 左画像のとおり「install a font」を選択します。 続いてフォントの選択となりますが, お手軽モードで「all fonts」を選択します。 ただし, 時間が犠牲になるのとフォント以外の余計なものもインストールされるというデメリットがあります。
環境によっては左画像のように「cabextract がない」と怒られますので, 怒られた場合は
sudo apt-get install cabextract
として cabextract をインストールした上で, 再度 all fonts を実行してください。
all fonts の実行中は, 左画像のように何度も「ハングしたようになるよ~」と警告されますが, 我慢してください。 そして これまた少々長い時間を掛けて何度も右画像のダウンロード画面を拝むことになります。
先に説明した「余計なもの」の代表格が, 左画像の PowerPointViewer と右画像の 7-Zip です。
一連のフォントが追加されるとフォント選択の画面に戻ってきます。 が, これだけでは InstallShield 系のダイアログが豆腐文字だらけになってしまいますので, 右画像のとおり fakejapanese を選択して日本語フォントへのエイリアスを作成します。
続けて DLL の追加を行いますので, 一つ画面を戻って今度は左画像のように「install a Windows DLL or componet」を選択します。 すると追加する DLL を選択する画面になりますので, 右画像のとおり quartz_feb2010 を選択します。 一つ上の quartz と どちらを選択するかは, 自身の使用する Windows ソフトと それが必要とする DirectX の版によります。
ホスト環境と VMware の版にもよるのだと思いますが, 自身の環境では Wine が正常な VRAM 容量を得られませんので, その対処も ここで行います。 ちなみに, これは自身も すっかり忘れていた Wine 有名どころの不具合だったりします:
再び一つ前の画面へ戻って, 今度は左画像のとおり Change settings を選択します。 すると何を設定変更するのか聞いてきますので, 右画像のように videomemorysize=1024 を選択します。 要は「VRAM が 1 GB あるんだよ~」と暗示を掛けてあげるわけです。
今回は Winetricks を使用しましたが, 前回は左画像のように user.reg ファイルを直接編集しました。 正しい値を設定したいなら, こちらの手段を採ることになります。 ともあれ Winetricks での設定は終わりましたので, Winetricks と端末を閉じておきます。
最後に, 移行の作業を行いやすいように Wine の C ドライブをブックマークに追加して, そのドライブ上に TMP フォルダーを作成しておきます:
Wine のフォルダーには隠し属性が付加されていますので, 左上画像のように まずは隠し属性ファイルが表示されるよう設定する必要があります。 ともあれ, これで一連の環境作成作業が終了しました。
環境が構築されましたので, とりあえず最低限のソフトをインストールすることで, 通常から Direct3D 対応ソフトまで各種ソフトが動作することを確認しておきます:
まずは拙作の LHMelt です。 インストーラーを兼ねた自己解凍書庫を TMP フォルダーへコピーしただけでは実行できませんので, 左上画像のように「別のアプリケーションで開く」を選択して起動方法を変更します。 対象が Windows プログラムですので, 右画像のとおり選択するのは もちろん「Wine Windows プログラムローダー」です。
改めて自己解凍書庫を実行すると展開先を聞いてきますが, 特に何も考えず そのまま「OK」を選択…と行きたいところなのですが, Wine は WinSFX32M のショートカット作成方法…つまり Windows 3.1 時代の DDE には未対応ですので, 関連付けはともかくスタートメニューへの登録については無効化しておく必要があります。 (いくつもプログラムマネージャが起動され, 場合によってはエラーや警告も表示される。)
それはともかく, ファイルの展開自体は普通に行われましたので, 展開先の LHMELT.EXE を実行すると…普通に起動しました。 今回は x86 環境の Wine ですので, LHMelt のバージョン表示も x86 版表示になっています。 (x64 の文字がない。) なお, UNLHA32.DLL などのインストール辺りについては, 話を簡単にするため端折っています。 (^^;)
お次は Direct3D 対応組から, 個人的に簡易テスト用として重用している「タイムリープぶーとべんち」:
設定は特に何も弄りませんが, TECH GIAN 版なので左画像で表示されている内容は, 衣装辺りが公式のものと異なっているかもしれません。 (既定値が制服なのは同じ。) それはともかく, ベンチは右画像のとおり正常動作しました。 対応度が低いと そもそもメーカーロゴやタイトル画面すら正常に表示されませんが, それが正常に表示されても安心は出来ず, 「本編やベンチが正常に表示されない」という次段階の壁が存在します。
このソフトと本格的なベンチマークとは比較すべくもないのですが, HDR, セルフシャドウ, ソフトフィルタ, 被写界深度, そしてバックハイライトといった機能の有無を選択できたり, T&L HAL, HAL, Emulation といったハードウェア依存度を選択できたりと簡易チェックに使えるのと, また経験則的に「これが動作するなら多くのソフトは大丈夫」という一つの指標としても機能することから, 好んで採用しているソフトです。
このソフトが動作するかどうかで「紙芝居系のゲームしか動作しないのか真っ当なゲームも動作するのか?」を簡易的に判別できます。 これが動作しないようなら, 以降で挙げている真っ当な Direct3D 対応ソフトは基本的に動作しません。 あ, ちなみに ここ以降のベンチマークのスコアを気にしてはダメです。 ただでさえ 9 年も前の PC なのに, それを Windows ゲストですらない Wine を擁した Ubuntu ゲストという特大ハンデ有りの環境で実行しているのですから…。 ホストの 80 ~ 90% の速度で動作する Windows ゲストと比較するのは無謀というものです。 (^^;)
続いては, 紙芝居組ながら環境チェックでの Direct3D 要求度が高く, さらに動画関係への対応度も要求される『千の刃濤,桃花染の皇姫』です:
前の記事でも書きましたが, オーガスト勢では『穢翼のユースティア』以降 (DirectX 9.0c)と それより前 (DirectX 8.0) とで Direct3D に対する要求度が異なり, しかも件の『穢翼のユースティア』の体験版辺りでは AGP メモリーまで要求するものとなっていました。 さすがに製品版では AGP メモリーを要求しなくなりましたが, 本質は変わっていません。
それもあって対応度が足りない場合は左画像のインストーラーすら起動できない状況に陥ります。 そのインストーラーですが, Windows 95 or Windows 2000 時代以降の通常のインストーラーが行うショートカット作成の場合は, 右画像のようなアイコンがデスクトップ上に作成されます。 そのままでは実行できませんので, 当該画像を見てのとおり「起動を許可する」で実行可能にする必要があります。
実行可能にしてあげると本来のアイコンが表示されるようになります。 もう一つの LNK ファイル…つまり Windows 本来のショートカットのほうは半ばゴミのようなものでしかありませんので, 削除して構いません。 (Wine の仮想デスクトップ上のアイコンが消えることはありません。)
一方の右画像…。 初回起動時には画面設定画面が表示されますので, 必要があれば適当なサイズに調整してください。
インストーラー自体の壁が高い分, それさえ越えることが出来れば左画像のように意外とあっさり本体は動作します…『千の刃濤,桃花染の皇姫』でさえなければ…。 (^^;) このソフトは例外組で動画方面への要求度も高く, それが足りないとプロローグも早々…右画像の場面転換の箇所でハングしたり落ちてしまったりします。 ええ, 他ソフトで正常に動画等が再生されていたとしても…。
同様に, 不具合の発生する環境では左画像を始めとした日付の切り替わりや視点変更の際にも同じ現象が発生しますので, およそゲームになりません。 上のほうで説明した quartz の組み込みで駄目だった場合は少々苦労することになるでしょう。 その一方で右画像の通常画面は ごくごく普通に動作します。
…といった感じで, その 3 つのソフトの同時実行をテストした際のものが記事冒頭の画像なのでした。 この 3 つが動作すれば DirectX 10 世代以降のソフトは別として, 大抵の Direct3D ソフトが動作します。
ここからは前の記事と同様に いくつかのベンチマークや体験版ソフトを試してみることにします。 同じ Wine でも x64 環境と x86 環境とでは意外と状況が異なりますので…。 掲載順は例のごとく DirectX のバージョン順です。
まずは DirectX 7.0 より前のソフトです:
『Diablo II』は DirectX 6.0 世代のソフトで DirectDraw と Direct3D の どちらでも動作しますが, 左画像のとおりインストール時の検査で Direct3D が認識され, 製品版でも ちゃんと Direct3D で動作します。 もっとも, 右画像の体験版に限ってはテスト結果に拘わらず強制 2D (DirectDraw) での動作となりますけれど…。
DirectX 6.0 ということでハードウェア T&L には未対応なのですが, 昔の VMware と異なり今では それによる速度低下は発生しません。 ホスト段階において DirectX 11 や OpenGL 3.3 で描画が処理されているからなのでしょう。
一つ上の画像で全画面表示の『Diablo II』とウィンドウ表示の拙作 LHMelt が並んでウィンドウ表示されていますが, これは左画像のように Winecfg で『Diablo II』の実行ファイルについて個別設定を行っているからです。 Wine x64 環境では全く効かなかった個別設定ですが, x86 環境では一部のソフトについては効いてくれます。 といいますか「x86 環境でも殆ど効かない」のが実情です。 今回挙げている中では, 効くのは『Diablo II』と『AoK (Age of Empires II)』だけです。
一方の右画像…。 x64 環境ではインストールは可能でも一般保護エラーで本体は動作しなかった『Age of Empires II (AoK)』ですが, x86 環境では一応動作します。 が, 例のごとくマウスカーソルの動きがおかしくなりますので, 今回はパスしていますが, その調整には少々苦労するかもしれません。
続いては DirectX 7.0a 世代のソフトです:
まずは左画像の『3DMark2000』ですが, 前の記事で「曲がりなりにも『3DMark2000』が完動するのであれば, そりゃあ紙芝居ゲーくらいは動作するでしょう…と言えるかもしれません。」とか書いたとおり, 紙芝居ゲーと真っ当な Direct3D 対応ソフトの狭間に位置していると言えそうな『タイムリープぶーとべんち』が動作するのであれば, この辺りのソフトは比較的あっさりと動作します。
続いて右画像の『恋色空模様』…。 当該画像では大丈夫ですが, 日本語フォントへのエイリアスが不完全だと, InstallShild 系のインストーラーでの日本語表示が豆腐文字だらけになってしまいます。 そうなっていた際には Winetricks で fakejapanese 辺りを組み込むと良いでしょう。 場合によっては 3 種類ある中の別口の fakejapanese が必要になるかもしれません。
『恋色空模様』はプログラム上で そうなのかは別として, DirectDraw レベルで動作するイメージがありますので, 当然ながら あっさりと動作するクチに入っています。 が, その一方でアクセラレーターの効きが弱いなど問題を抱えていると, 右画像のオープニング動画辺りがカクカクになってしまいます。 そういった意味で, 動画類は 2D のアクセラレーターが効いているかどうかのチェックに使えます。
まずは左画像…。 『秋色恋華』を含めて「何故パープルソフトウェアの体験版ソフトをテスト用として使っているのか?」の答えが これです。 判る方には判るのですが, これは WinSFX32M…つまり拙作 UNLHA32.DLL が作成する LZH の自己解凍書庫なのでした。 初期の Wine では通常の Windows プログラムさえ動作したりしなかったりだったのもありますが, 自身の作るテスト用書庫と他者の使ってくれている書庫とでは, 状況が大きく異なりますので…。
右画像の『秋色恋華』本編は上の『恋色空模様』と同じく DirectDraw だとか Direct3D だとかを気にせず起動できるクチです…どうプログラムされているのかは別として…。 こちらは (過去において) 自己解凍書庫のテストが本命だったので, それで良いのです。 (^^;) ともあれ, この『秋色恋華』や上の『恋色空模様』といった辺りが動作しないようなら, 何か根本的な部分で問題を抱えていることになります。
お次は DirectX 8.0b 世代のソフトです:
『3DMark2001SE』は上で挙げた『3DMark2000』が動作するのであれば, まず正常に動作します。 ちなみに, このベンチのデモを起動しようとすると右画像のように例外が発生します。 DirectX 8.0 世代ということもあって DirectSound 周りで引っかかっているのだと思いますが, これは Windows 7 辺り以降の実機でも同じです。 自身のホストなどでも同じで, Windows 7 以降の環境では元々互換性アシスタント機能で互換性設定を「Windows XP」にしないと動作しませんから, Wine 側に非はありません。 ちなみにサウンドをオフにすると あっさり動作しますが, 音なしのデモに意味があるのかは謎です。 (笑)
このソフトは 3D 機能への対応レベルを図る意味で多少なりとも活躍します。 対応度が足りないと一見正常動作しているように見えて, 画像の dragotic テストでドラゴンの角が白抜き・黒抜きになったり, Bump Mapping テストがスキップされたり色がおかしくなったりします。 後者は単に当該機能に対応できているか否かで, 前者はドライバー段階での Pixel Shader への対応度が影響して発生します。
昨今の実機で引っかかることは まずないと思いますが, VMware などの仮想 PC 環境では使用ソフトの版やホストとの相性で遭遇することがあるかもしれません。 お目にかかれる確率が高いのは VirtualBox かしら? VMware の linux ゲストで お目に掛かったことはありませんが, どうしても お目に掛かりたいなら VMware 6.0 + Windows ゲストで試すと良いでしょう。 (^^;)
左画像の『FORTUNE ARTERIAL』, 右画像の『Prism Rhythm』共に DirectX の存在を忘れるほど あっさりと何も問題なく動作しますが, 動作要件自体としては DirectX 8.0b を必要としますし, 実際エフェクトの表示などで専用機能を使っています。 ちなみに TECH GIAN 版の登場が多い理由は, その当時に献本を受けていたからです。 (笑) 編集部からの問い合わせは無かったはずですが, 一般ユーザー (読者) からの問い合わせには何度も遭遇しましたので, 献本自体には ちゃんと意味があったようです。 (元々それ用の献本で本誌のみ。)
さて, ここまでは 3DMark の類いを除いて 3D 機能への対応度が比較的低い Wine 環境でも動作するソフトばかりでした。 一方, ここからは OS や Wine が ちゃんと 3D に対応していないと動作しないソフトばかりとなります。
まずは一部の機能について DirectX 9.0c を必要としているソフトです:
『Wiz ANNIVERSARY』はエフェクト表示などで DirectX 9.0 の機能が使用されていて, 対応度が低いと起動直後のシステムチェックで跳ねられてしまいます。 それをクリアーしたとしても起動直後のメーカーロゴやタイトル画面での表示がおかしいようなら, さらに環境を整える必要があるということになります。
ちなみに, この体験版には ちょっと癖があって, 付属の DirectX 9.0c をインストールしないと正常動作しない環境が多々発生するのでした。 その辺りもあって ちょくちょく仮想 PC 環境の動作確認用として御登場願っています。 (笑)
右画像ですが, ドライバーと DirectX それぞれの版の違いによる相性問題が発生したり, 微妙に対応度が足りなかったりすると, セーブ・ロード画面でのサムネイル表示が黒抜きになったりします。
『プリミティブリンク』でも画面の拡大や縮小を伴ったスクロール, 特定領域でのクリッピングや座標変換を伴っての複数動画再生 (要は いろいろな方向を向いたテクスチャー上での再生), エフェクト, そして それらの透過を伴った重ね合わせ…といった特定用途のため (だけ) に DirectX 9.0 や Direct3D の機能が使用されています。 この世代では「DirectX = Direct3D」といった雰囲気がありますので, ちゃんと 3D 機能にも対応していないと DirectX 自体が上手く動作しません。
ちなみに, 対応度が足りないと左画像のプロローグ冒頭ブランドロゴすら正常に表示されません。 そういえば, 凝ったことをやっている…という意味では『明日の君と逢うために』や『春色桜瀬』も試してみたほうが良いですね。 今度やってみましょう。 あ~, そうなると『タイムリープ』や『School Days』の体験版もですね。 (^^;)
吉里吉里系を代表して『のーぶる☆わーくす』です。 吉里吉里といえば例の「Windows 8 以降の x64 版 OS で動作しない」という有名どころの不具合があり, それは x64 環境の Wine でも同じだったりします。 (対処法も同じ) その一方で今回は x86 環境ですから普通に動作します。 …動作するのですが。
左上画像のとおり自動認識される Direct3D 描画では正常に画面が表示されません。 メーカーロゴから本編まで, GDI なら GDI, Direct3D なら Direct3D で全て等しく描画されますから, 一旦転けると全てにおいて転けます。 (^^;) ちなみに, 右画像のとおり解像度を変更すると正常描画されるようになります。 おそらく起動直後の動作チェックから初期化の段階で転けてしまうのでしょうね。 さらに以降も同じハンドルに対して操作しているのでしょう。 DirectDraw 描画でも同じ現象が発生します。
一旦解像度を変更すれば左下画像のとおり元の解像度へ戻しても正常描画され続けます。 が, 煩わしいですし見られないシーンの発生は避けられませんので, 右下画像のように GDI 描画を選択するのが良いでしょう。 ただし, 描画が それと判るほど遅くなります。 他ソフトとの相性問題が発生しないのであれば, Winetricks を使って GDI 描画を OpenGL で処理させると良いかもしれません。
あ, そうそう。 『のーぶる☆わーくす』限定ですが, 体験版と異なり製品版では Windows 8 以降の x64 版 OS でも例の不具合は生じず普通に動作します。 要は吉里吉里本体ではなくプロテクトを含めたプラグイン系の問題ということですね。
最後は DirectX 9.0c を必要とする Direct3D 対応ソフトです:
左画像が『3DMark03』で右画像は『3DMark05』です。 この 2 つは最新版を使用しないと「Invalid Float Operation」の一般保護エラーが発生してデモやテストを実行できません。 その点を除けば意外とあっさり動作します。 前の記事でも書きましたが, 「3DMark03 が完動するなら, そりゃ大抵の Direct3D ソフトが動作するよね~」と言えそうです。
ちなみに, 3DMark2001 と異なり 3DMark03 以降のデモは普通に正常動作します。 (笑) あと, 3DMark03 はネイティブ版の DirectX だと そこかしこで色がおかしくなりますので, 内蔵版を使ったほうが安定します。 可能なら設定を使い分けると良いでしょう。 先に書いたとおり手元の環境では殆どのソフトで Wincfg での個別設定が効かず, x64 環境なぞは全滅だったりします。 (^^;)
『3DMark06』ともなると, さすがに quartz だけでは無理だったようで, ネイティブ版の DirectX 9.0c をインストールする必要がありました。 が, そこから対象を絞ってみたところ実際にネイティブ版が必要だったのは d3dx9_28.dll だけでしたので, Winetricks で当該 DLL のみ組み込めば良いでしょう。 今回試した中では, それで問題の発生するソフトは有りませんでした。
x64 環境でのものですが, 前の記事に 3DMark03 以降でのスコアについても (画像で) 載せてありますので, Wine や VMware を擁した場合での各処理の得手不得手について, 参考の足しくらいにはなるかもしれません。
左画像の『STREET FIGHTER IV Benchmark』は比較的あっさりと動作する代わりに, 「まともに使えるのか?」の指標として使えます。 この画像の例も該当しますが 60 FPS に届かないとゲームにならず, このベンチでは それが「台詞 (のサウンド) とキャラの動きがずれる」という形で表面化します。 (サウンドでは とっくに喋り終わっているのに, キャラ (の描画) が喋り続ける。)
一方, 右画像の『メギドベンチ』は 3DMark06 と同様に比較的テクスチャーなどの使用量が多いことから, 機能の可否ではなく その能力的指標を計るものとして使えます。 能力が不足すると, まずはベンチ後半でのテクスチャーの ちらつきや (色の) 反転といった形で表面化し, さらに不足しているようだと 2 週目ベンチの切り替わりタイミングでエラー終了してしまいます。 当該ベンチでは高低 3 段階の画質として負荷のレベルを変えられますので, いろいろ試してみると良いでしょう。
左画像の『「ぐるみん」ベンチ』は, Direct3D の要求度合いは『3DMark03』以降と同レベルながら, それらの中で最軽量組の指標として使えます。 これの平均スコアが 10000 を切るようなら それが可能だったとして, Wine で Direct3D 対応ソフトを使うのは無理と言えるでしょう。 ちなみに, このベンチは DirectX 9.0 と DirectX 8.0 を選べますので, 「DirectX 8.0 世代のソフトが遅い」といったような現象に遭遇したケースなどには, ヒントになるかもしれません。
あ, そうそう。 「何か違いがあるかも…」というわけで『メギドベンチ』や『「ぐるみん」ベンチ』は, 前回と異なり仮想画面なしの全画面モードで試してみたのですが, 特に違いはありませんでした。 …というのは建前で, 単に Wincfg の個別設定が効いていないだけです。 (笑)
そして上のほうで挙げた右画像の『タイムリープぶーとべんち』は, 当然ながら ここのカテゴリー (まっとうな Direct3D 対応ソフト) に入ります。
さらに左画像の『千の刃濤,桃花染の皇姫』も, 紙芝居系ながら環境の要求レベルとしては ここのカテゴリーに含まれます。 そして既出ですが右画像は締めくくりの同時実行なスクリーンショットです。
といった感じで, 今回は Ubuntu 20.04 LTS + Wine 6.0 RC4 (x86) な環境を構築してみました。 今では x64 環境を前提として動作する Wine ではありますが, 未だ x86 版のほうが安定するのは確かなようです。 ただ, もう少し前回の x64 環境と違いがあったりすると面白かったのですが, そういった意味では少々残念かもしれません。 (^^;)
|