Arch Linux上でFF14を快適にプレイする方法(DirectX 11/DXVK使用)
私はメインOSにArch Linuxを使っています。
最近Arch Linux上でFinal Fantasy XIV(以下FF14)を動かせたので、その方法を備忘録的に書き残しておこうと思います。思い出しながら書いているので間違っている部分や抜けがあるかもしれませんがご了承ください。
仮想マシンにWindowsを入れてそこにFF14をインストールするとパフォーマンスが悲惨なことになるので、今回は仮想マシンは使わず、Wineというソフトを使ってLinux上でFF14を動かしています。また、動かす方法だけならネットで探せば出てくるので、パフォーマンスを改善する方法も紹介します。
ちなみにこのあたりはLutrisを使うといい感じにやってくれるそうですが私は試していません。全部手動でやりました。
2019/06/16追記: 2019/04/23頃のランチャーのアップデートで通常のWineでは起動できなくなったので対応方法を以下の記事で紹介しました
はじめに
公式にサポートされていない方法なので、何があっても自己責任でお願いします。
※最悪BANされる可能性もあります。
今回紹介する作業はほぼ全て端末上でコマンドを入力する方法で行います。Archユーザーなら問題ないとは思いますがご了承ください。一部AURのパッケージもインストールする必要があるので、そこでは私が使っているyayというAURヘルパーのコマンドを使用します。他のAURヘルパーを使っている方は適宜コマンドを読み替えてください。
今回使ったマシンのスペックは以下の通りです。
- OS: Arch Linux
- Kernel: 5.0.7-arch1-1-ARCH
- CPU: Intel Core i7-8700
- Memory: 16GB
- GPU: NVIDIA GeForce GTX 1060 6GB
- Driver: 418.56 (nvidia package)
他社製のGPUを使っている場合一部手順が異なるのでご注意ください。
Wine関連パッケージのインストール
基本的にArchWikiのWineの項に従ってインストールを進めます。困ったらArchWikiを参照してください。
Arch LinuxのデフォルトのリポジトリにはWineが入っていないので、まず公式のmultilib
リポジトリを有効にする必要があります。
以下のコマンドを実行し、/etc/pacman.conf
を編集します。
sudoedit /etc/pacman.conf
以下の部分をアンコメント(行頭の#
を削除)します。
[multilib] Include = /etc/pacman.d/mirrorlist
編集が終わったらファイルを保存して閉じて、以下のコマンドを実行してパッケージリストを更新します。
sudo pacman -Syy
これでWineがインストールできるようになりました。今回は安定版ではなくテスト版のwine-staging
をインストールしました。
2019/06/16追記: 公式リポジトリのWineではFF14が起動できなくなってしまったので以下の記事の方法でビルド&インストールしてください。
sudo pacman -S wine-staging
この記事を書いている時点でのWineのバージョンはwine-4.5 (Staging)
でした。
また、Wineのライブラリ管理をサポートしてくれるwinetricks
もついでにインストールしておきます。
sudo pacman -S winetricks
サウンド再生にはpulseaudioを使っているので、それ用の32bit版パッケージもインストールしておきます。
sudo pacman -S lib32-libpulse
32bit版グラフィックドライバのインストール
NVIDIA製のカードを使っていたのでnvidia
パッケージでドライバは入っていたのですが、32bit用のドライバも追加でインストールする必要がありました。
sudo pacman -S lib32-nvidia-utils
IntelやAMDのGPUでも同様に32bit版のドライバのインストールが必要なはずですので、それらのGPUを使っている方はXorg#ドライバーのインストールを参照してmultilibパッケージに記載されている対応するドライバ(lib32-mesa
等)をインストールする必要があります。
ここで一旦再起動しておきます。
FF14インストール用のWine環境構築
他のWine上で動かすアプリケーションと分離するため、FF14専用の環境を作っておきます。
# 今回は64bit環境を使用 export WINEARCH=win64 # Wineの使用するフォルダ指定 # 場所はどこでもけっこうですが、空き容量が40GB以上必要です export WINEPREFIX=$HOME/.ffxiv
これで$HOME/.ffxiv
ディレクトリ以下にWine関連のファイルがインストールされるようになります。
以後の作業は同じシェル上で行ってください。もしシェルを閉じてしまったら再度上記のコマンドを実行して環境変数を設定してください。
まずWineの初期設定を行います。 以下のコマンドで設定画面を起動します。
winecfg
Applications
タブでWindows10
を選択しておきます。また、文字化けを避けるためにDesktop Integration
タブからActive Title Text
, Menu Text
, Message Box Text
, Tooltip Text
を適当な日本語フォントに変更しておきます。
設定が終わったらOK
を押して閉じます。
Wine環境へのライブラリのインストール
winetricks
を使っていくつか必要なライブラリ等をインストールしておきます。
winetricks devenum xact xinput allfonts
このインストール作業は少し時間がかかります。
FF14のインストール
この時点ではFF14のベンチマークは動きません(DirectX 11が必要なため)。FF14はDirectX 9でも動くので、とりあえずFF14をインストールします。
フリートライアル版(ffxivsetup_ft.exe
)を適当なディレクトリにダウンロードしておきます。アカウントがない方はここで作っておきます。
ファイルをダウンロードしたディレクトリへ移動し、
wine ffxivsetup_ft.exe
を実行するとインストールが始まります。日本語を選択すると文字化けしているかもしれませんが雰囲気でインストールします。
FF14の設定
インストールが終わったら、$HOME/Documents/My Games/Final Fantasy XIV - A Realm Reborn
というディレクトリができていて、中にFFXIV_BOOT.cfg
というファイルがあるはずなので以下の2行をそれぞれ次のように編集します。
DX11Enabled 0
BrowserType 2
FF14のランチャーの起動
以下のコマンドでFF14のランチャーを起動します。
wine "$HOME/.ffxiv/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/boot/ffxivboot.exe"
ログインするとパッチのダウンロードが始まるので終わるまで待ちます(数十GBあるのでかなり時間がかかります)。
FF14の起動
ダウンロードが終わったらゲームが起動できるはずです。おそらくこの時点ではオープニングムービーのロードが無限に続くので一旦閉じます。
先程の"$HOME/Documents/My Games/Final Fantasy XIV - A Realm Reborn"
というディレクトリにFFXIV.cfg
というファイルができているはずなので、以下の部分を次のように編集します。
CutsceneMovieOpening 1
これで再度ランチャーを起動するとゲームが起動できるはずです。
ここまでで通常のプレイはできると思います。
パフォーマンスの改善(DirectX 11の有効化とDXVK/Vulkanの利用)
この時点でゲームはプレイできるはずですが、私の環境ではパフォーマンスがいまいちだと感じました。具体的には、リムサのマーケットでノートPC(高品質)設定で40fps程度しか出ませんでした。
DXVKとVulkanをインストールしてDirectX 11を有効にすることでパフォーマンスを改善することができます。私の環境ではこの方法で同じ場所、同じ画質設定で80〜90fps程度まで改善されました。
DXVKとVulkanについてはこのあたりを参照してください。
DXVKに関しては以下のような注意書きがあるので本当に自己責任でお願いします。
Manipulation of Direct3D libraries in multi-player games may be considered cheating and can get your account banned. This may also apply to single-player games with an embedded or dedicated multiplayer portion. Use at your own risk.
意訳(抜粋):Direct3Dのライブラリをいじってるからチートだと思われてBANされるかもしれないよ。自己責任で使ってね。
怖い注意書きがありますが、DXVK自体はSteamのSteam PlayでLinux上でWindows用ゲームを動かす機能でも使われているものです。決してそれ自体がチートの類というわけではなく、あくまで「チートと判断されてしまう可能性がある」ということです。
DirectXのインストール
マイクロソフトからDirectXをダウンロードしてインストールします。
以下のファイルをダウンロードしてください。
https://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe
適当に展開用のディレクトリを作ってから、以下のコマンドを実行して展開します。
wine directx_Jun2010_redist.exe
展開先のディレクトリを聞かれるので先程作ったディレクトリを指定します。
※ここで指定したディレクトリに大量のファイルが展開されるので注意してください。
ファイルの展開が終わったら、展開先のディレクトリに移動して以下のコマンドを実行します。
wine DXSETUP.exe
ライセンス条項に同意したらインストールします。
これでDirectX 11が有効にできるはずです。
ベンチマークの実行
FF14のベンチマークはDirectX 11対応のものしかないので今までは実行できませんでしたが、ここまでうまくできていれば実行できるはずです。
2019/06/16追記: 漆黒のヴィランズのベンチマークは実行できませんでした。
ここからベンチマークをダウンロードして解凍し、以下のコマンドで実行します。
wine ffxiv-stormblood-bench.exe
私の環境では最高品質の画面サイズ1280×720で6000程度のスコアでした。
FF14でのDirectX 11の有効化
先程と同じ方法でランチャーを起動します。
wine "$HOME/.ffxiv/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/boot/ffxivboot.exe"
ランチャーの下の方に「Config」というボタンがあるのでそれをクリックするとDirectX 11を有効にする設定があるので有効にします(すでに有効になっていればそのままで)。
その状態でログインし、緑の起動ボタンが「プレイ DirectX 11」となっていれば成功です。
しかし、この時点ではまだDirectX 9の時と変わらないかそれ以下のパフォーマンスになってしまうと思います。
Vulkanのインストール
基本的にArchWikiの手順どおりです。
まずvulkan-icd-loader
とlib32-vulkan-icd-loader
をインストールします。
sudo pacman -S vulkan-icd-loader lib32-vulkan-icd-loader
さらに使用しているグラフィックボードに対応したドライバもインストールする必要がありますが、NVIDIA製の場合はnvidia
パッケージに含まれています。他社製の場合は前述のArchWikiに対応するドライバが書いてあるのでインストールしてください。
DXVKのインストール
公式リポジトリではなくAURにあるのでそれを使います。
yay -S dxvk-bin
その後、先程FF14をインストールしたwine環境にdxvkをインストールします。
setup_dxvk install
ベンチマークの実行(再)
再度ベンチマークを実行してみます。
wine ffxiv-stormblood-bench.exe
2019/06/16追記: 漆黒のヴィランズのベンチマークは実行できませんでした。
私の環境では最高品質の画面サイズ1280×720で13000程度までスコアが上昇しました。
一応DXVKの有無でベンチマークの比較動画を撮りましたので参考にどうぞ(録画中のためスコアが低くなっています)。
Final Fantasy XIV Benchmark on Arch Linux - Comparison of with/without DXVK
動画上のFPS表示はWine組み込みのFPSカウンターをWINEDEBUG=fps
で有効にしてosd_cat
で画面上に表示しました。
FF14の実行
特に設定等は必要ありません。
これまでと同じ方法でランチャーから起動するとパフォーマンスが向上しているはずです。
GameModeを使ったゲームプレイ時のパフォーマンス改善
GameModeはゲーム実行中だけOSの設定を一時的に変更してくれるライブラリ兼デーモンです。
私はこれを使用してFF14実行中だけCPUのクロックを引き上げることで、たまーにあったカクつきがなくなりました。
GameModeのインストール
AURからインストールします。
yay -S gamemode lib32-gamemode
GameModeの有効化
デーモンを有効にします。
systemctl --user enable gamemoded
ついでにデーモンを起動しておきます。
systemctl --user start gamemoded
GameModeを使用してFF14を起動
以下のコマンドを実行します。
gamemoderun wine "$HOME/.ffxiv/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/boot/ffxivboot.exe"
特に設定せずともいい感じに使えますが、細かく設定したい方は本家に設定ファイルのサンプルがあるのでそれを$HOME/.config/
に配置していじるといいと思います。
FF14起動スクリプトの作成
毎回WINEPREFIX
等を設定するのは面倒なので起動用のスクリプトを作っておきます。ついでに紹介しきれなかった細かい環境変数の設定も含めておきます。環境変数の詳細についてはこちらを参照してください。
詳細は省きますが、キャッシュ等も有効にするのでキャッシュを保存するディレクトリを作成しておきます。
mkdir $HOME/.ffxiv/dxvk mkdir $HOME/.ffxiv/glcache
そして以下のスクリプトをffxiv.sh
等として保存します。
#!/bin/sh export WINEARCH=win64 export WINEPREFIX=$HOME/.ffxiv export WINEDEBUG=-all export DXVK_LOG_LEVEL=error export DXVK_LOG_PATH=$HOME/.ffxiv/dxvk export DXVK_STATE_CACHE_PATH=$HOME/.ffxiv/dxvk # For NVIDIA GPU optimization export __GL_SHADER_DISK_CACHE=1 export __GL_SHADER_DISK_CACHE_PATH=$HOME/.ffxiv/glcache export __GL_THREADED_OPTIMIZATIONS=1 # For AMD GPU optimization #export mesa_glthread=true gamemoderun wine "$HOME/.ffxiv/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/boot/ffxivboot.exe" >/dev/null 2>&1
スクリプトに実行権限を付与しておけばスクリプトを実行するだけでFF14が起動できます。
chmod +x ffxiv.sh
終わりに
Arch Linux上でFF14を動かしてDirectX 11/DXVK/Vulkanを有効にするまではけっこう大変でした。ですが、一度環境ができてしまえば快適にプレイできていて非常に満足しています。
以下に参考にさせていただいたサイト等を紹介します。