Slackware上で稼働するWartales

SlackwareでSteamのゲームを遊ぼう!(Wine編)


著者: 竹洞 陽一郎

前回は、Slackware上でSteamのゲームを遊ぶ方法として、Linux版のSteamクライアントを動かすために、Alien Bob(Eric Hameleers氏)が提供する32bit版のSlackwareのライブラリを導入し、multilib環境を構築する方法をご紹介しました。

今回ご紹介するのは、WoW64に対応したWineを使う方法です。
WoW64版のWineを使えば、multilib環境を構築しなくても、32bitのWindowsアプリケーションを64bit環境のまま動かせます。
つまり、32bitライブラリを別途用意する必要がありません。

前回の方法がLinux版のSteamクライアントを動かすものだったのに対し、今回はWindows版のSteamクライアント(SteamSetup.exe)をWine上で動かすアプローチです。
最終的にSteamのゲームを遊ぶという目的は同じですが、構築する環境が異なる点に注意してください。

Wineのインストール

WoW64に対応したWineをインストールします。Wineのパッケージの作成方法をご参照ください。
新WoW64モードの安定度はWineのバージョンによって異なり、アプリケーションによってはまだ互換性の課題が残っています。
トラブルを避けるためにも、できるだけ新しいバージョンのWineを使うことをお勧めします。

Steamクライアントのインストール

インストールは簡単です。
まずは、Downloadsフォルダに移動します。


cd Downloads

AkamaiとFastly、双方からダウンロードできます。


wget https://cdn.fastly.steamstatic.com/client/installer/SteamSetup.exe

もしくは

wget https://cdn.akamai.steamstatic.com/client/installer/SteamSetup.exe

そして、以下のコマンドを実行して、Steamクライアントをインストールします。


wine SteamSetup.exe

Let's Play!

これで、後はSteamクライアントを起動して、ログインし、ゲームをダウンロードして、起動するだけです。
ダウンロードされるのはWindows版のゲームで、Wineがそのまま実行します。

Steamのゲームには、OpenGL版がリリースされているものも多数あります。
OpenGL版であれば、大抵は特に気にすることなく、そのまま起動して遊べます。

一方、OpenGL版を提供しておらず、Direct3Dを使っているゲームの場合は、WineがDirect3Dを変換して描画します。
標準ではDirect3DをOpenGLに変換して動かしますが、これをVulkanへ変換する「dxvk」を追加すると、多くのタイトルで描画がより高速・安定します。

dxvkの導入は、Wineの各種コンポーネントを簡単にセットアップできるツール「winetricks」を使うのが手軽です。
winetricksはSlackwareの公式パッケージには含まれていないので、winetricksのパッケージの作成方法を参考に、あらかじめ用意してください。
以下のコマンドを実行すると、Wineがゲーム用に作る環境(既定では ~/.wine)にdxvkが組み込まれます。


winetricks dxvk

Slackware-currentはVulkanが公式パッケージに含まれているので、これだけでDirect3DのゲームがVulkan経由で描画されるようになります。

うまく動かないときは

ゲームが起動しない、描画がおかしいといった場合は、ターミナルからWineを起動して、出力されるメッセージを確認します。
Wineのデバッグ出力は WINEDEBUG でチャンネルを絞り込めます。


WINEDEBUG=+dxgi,+d3d wine steam.exe

描画系の問題であれば、dxvkが正しく導入されているかを確認してください。
Direct3DがWineD3D(OpenGL変換)のまま動いていると、タイトルによっては性能が出なかったり描画が崩れたりします。
また、Windows版のSteamクライアントはWine上での挙動がタイトルやWineのバージョンに左右されることがあります。
うまく動かないゲームは、dxvkの有無やWineのバージョンを変えて試すと改善する場合があります。