みやこの元団長日記

グラブルの騎空団ぐるぐるストッキング(ぐるスト(ストはカタカナ))の元団長がたまになんか書くかもしれません

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では起動できなくなったので対応方法を以下の記事で紹介しました

miyacopl.hatenablog.com

はじめに

公式にサポートされていない方法なので、何があっても自己責任でお願いします。
※最悪BANされる可能性もあります。

今回紹介する作業はほぼ全て端末上でコマンドを入力する方法で行います。Archユーザーなら問題ないとは思いますがご了承ください。一部AURのパッケージもインストールする必要があるので、そこでは私が使っているyayというAURヘルパーのコマンドを使用します。他のAURヘルパーを使っている方は適宜コマンドを読み替えてください。

今回使ったマシンのスペックは以下の通りです。

他社製の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が起動できなくなってしまったので以下の記事の方法でビルド&インストールしてください。

miyacopl.hatenablog.com

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

IntelAMDGPUでも同様に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が必要なため)。FF14DirectX 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-loaderlib32-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を有効にするまではけっこう大変でした。ですが、一度環境ができてしまえば快適にプレイできていて非常に満足しています。

以下に参考にさせていただいたサイト等を紹介します。