要約
- XXMI Launcherを使って、Proton環境で動かしているArknights: EndfieldにModsを適用出来る
TOC
Arknights: EndfieldはSteam外のゲーム(GRYPHLINKランチャー配布)だが、Proton経由でLinux上で動作する。
Windows環境では、3DMigotoというD3D11プロキシDLLをゲームフォルダに配置する方式でEndfieldのモデルやテクスチャを改変するmodが存在する。
しかし、Proton環境ではこの方式が機能しないようだった。
d3d11.dllを先にロードしてしまい、Unknown error (d3d11.dll) エラーが発生してゲームが起動できなかった。
これを解決するためにXXMI Launcherを使用する。
実行時にEndfield.exeプロセスを検知して自動的にDLLインジェクションを行う事ができ、Linux環境でも動作する。
環境
- OS: Arch Linux (kernel 6.19.6-zen1-1-zen)
- Proton: GE-Proton10-32 (
Proton-GE Latest) - シェル: fish(任意)
手順
1. Proton環境のゲームフォルダを確認
Proton環境では、ゲームの仮想Windowsファイルシステムはcompatdata以下にある。
~/.local/share/Steam/steamapps/compatdata/<App ID>/pfx/drive_c/
私の環境ではEndfieldのApp IDは2514955766だった。ゲーム本体のパスは以下の通り。
~/.local/share/Steam/steamapps/compatdata/2514955766/pfx/drive_c/Program Files/GRYPHLINK/games/EndField Game/
Windowsパスとの対応は C:\ → pfx/drive_c/ に読み替えるだけ。
2. 使用中のProtonバージョンを確認
XXMI Launcherはゲームと 同じProtonバージョン・同じWineプレフィクス で起動する必要があるみたい。
Protonバージョンの確認
1
| cat ~/.local/share/Steam/steamapps/compatdata/2514955766/version
|
出力例: GE-Proton10-32
対応するProtonのパスを確認:
Protonのパス確認
1
| ls ~/.local/share/Steam/compatibilitytools.d/
|
今回は Proton-GE Latest が GE-Proton10-32 に対応していた。
3. XXMI Launcherのダウンロードと配置
ポータブル版をダウンロードし、ゲームと同じWineプレフィクス内に展開する。
XXMI Launcherのダウンロードと配置
1
2
3
4
5
6
7
8
|
curl -L -o /tmp/xxmi-launcher.zip \
"https://github.com/SpectrumQT/XXMI-Launcher/releases/download/v2.1.6/XXMI-Launcher-Portable-v2.1.6.zip"
mkdir -p ~/.local/share/Steam/steamapps/compatdata/2514955766/pfx/drive_c/Program\ Files/XXMI-Launcher
unzip -o /tmp/xxmi-launcher.zip \
-d ~/.local/share/Steam/steamapps/compatdata/2514955766/pfx/drive_c/Program\ Files/XXMI-Launcher
|
XXMIランチャーを起動した後、EFMI(Endfield Model Importer)をインストールするためのファイルも同じ場所に配置される。
4. XXMI Launcherの起動
ゲームと同じプレフィクス・同じProtonで起動する。
XXMI Launcherの起動
1
2
3
4
| env STEAM_COMPAT_DATA_PATH="$HOME/.local/share/Steam/steamapps/compatdata/2514955766" \
STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.local/share/Steam" \
"$HOME/.local/share/Steam/compatibilitytools.d/Proton-GE Latest/proton" run \
"$HOME/.local/share/Steam/steamapps/compatdata/2514955766/pfx/drive_c/Program Files/XXMI-Launcher/Resources/Bin/XXMI Launcher.exe"
|
5. XXMI LauncherのGUIでEFMIをセットアップ
- 上部のゲームアイコンから EFMI(Endfield Model Importer) を選択
- ゲームパスを聞かれたら
C:\Program Files\GRYPHLINK\games\EndField Game を指定(自動設定だったと思うが覚えていない…) - 右下のボタンからゲームを起動

XXMI Launcher特有のオーバーレイが画面に表示されれば成功。これでProton環境でもmodが適用された状態でEndfieldをプレイできるようになる。
オーバーレイの画面はF12キーで切り替え可能。
EFMIのModフォルダ
1
| ~/.local/share/Steam/steamapps/compatdata/{APP ID}/pfx/drive_c/Program Files/XXMI-Launcher/EFMI/Mods
|
6. fishシェルのエイリアス登録
毎回長いコマンドを打たなくて済むよう、fish関数として登録する。
~/.config/fish/functions/xxmi.fish を作成:
fishシェルのエイリアス登録
1
2
3
4
5
6
7
8
| function xxmi --description "Launch XXMI Launcher for Arknights: Endfield modding"
set -l prefix "$HOME/.local/share/Steam/steamapps/compatdata/2514955766"
set -l steam "$HOME/.local/share/Steam"
set -l proton "$steam/compatibilitytools.d/Proton-GE Latest/proton"
set -l launcher "$prefix/pfx/drive_c/Program Files/XXMI-Launcher/Resources/Bin/XXMI Launcher.exe"
env STEAM_COMPAT_DATA_PATH="$prefix" STEAM_COMPAT_CLIENT_INSTALL_PATH="$steam" "$proton" run "$launcher"
end
|
以降はターミナルで xxmi と打つだけで起動できる。
7. .desktopファイルでの起動(任意)
ターミナルを使わずアプリケーションランチャーから起動したい場合は、.desktopファイルを作成する。
~/.local/share/applications/xxmi-launcher.desktop を作成:
xxmi-launcher.desktop
1
2
3
4
5
6
7
| [Desktop Entry]
Name=XXMI Launcher
Comment=Launch XXMI Launcher for Arknights: Endfield modding
Type=Application
Exec=env STEAM_COMPAT_DATA_PATH="/home/amgsk/.local/share/Steam/steamapps/compatdata/2514955766" STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/amgsk/.local/share/Steam" "/home/amgsk/.local/share/Steam/compatibilitytools.d/Proton-GE Latest/proton" run "/home/amgsk/.local/share/Steam/steamapps/compatdata/2514955766/pfx/drive_c/Program Files/XXMI-Launcher/Resources/Bin/XXMI Launcher.exe"
Terminal=false
Categories=Game;
|
.desktopファイルでは $HOME や ~ が展開されないため、フルパスで記述する必要がある。
EOF