2021年12月1日水曜日

Lubuntu + WineHQ で快適なフリゲ生活

WineHQ が進化してほとんどのゲームが動くようになりました。 インストールがすごく簡単になって色々変わったので、WineHQ 6.0.2 + Lubuntu 20.04 の綺麗なワンパスを残しておきます。 現時点ではほぼ完ぺきな設定になっていると思います。

WineHQ のインストール

まずは公式の説明通りに WineHQ をインストールします
sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'  # 20.04
sudo apt install --install-recommends winehq-stable
最近の WineHQ は、実のところこれだけでほとんどのゲームは動きます。 Mono, Gecko などのわかりやすいパッケージは、アプリ起動時に足りなければ自動でインストールもしてくれます。 ただそこから多少の設定は必要ですし、最初の設定をミスると動きません。 まずは速攻で以下のおまじないを掛けることが大切です。 おまじないは ~/.bash_profile に設定しておけば、ファイラーからゲームをクリック実行できます。
export MESA_GL_VERSION_OVERRIDE=4.5
もう一つ大事なことは、WineHQ の動作モードです。 WineHQ は 32bit / 64bit の 2つのモードで動きますが、 32bit だと一部のゲームが動かなくなってしまうので、64bit で動かすべきです。 警告がたくさん出ますが、64bit モードで動かせば、32bit にも自動対応してくれます。 なおデフォルトは 64bit なので特に気にする必要はありません。

MESA 関連の設定

先程の設定は公式フォーラムでも紹介されていたテクニックです。 しかし環境変数を export してしまうと OpenGL や MESA を利用したアプリケーション全体が動かなくなる可能性があります。 たとえば Google Chrome などが動かなくなる問題があります。 問題となる場合は、env + alias コマンドを代用して、Wine だけ MESA 4.5 で動くようにしましょう。 先ほどの設定の代わりに、~/.bashrc に以下を設定します。
alias winehq="env MESA_GL_VERSION_OVERRIDE=4.5 wine"
この設定だけだとファイラーからクリック実行できないので関連付けの設定もします。 /usr/share/applications/wine.desktop の Exec フィールドを以下のようにしましょう。
# before
Exec=wine start /unix %f
# after
Exec=env MESA_GL_VERSION_OVERRIDE=4.5 wine start /unix %f
これでファイラーからの安全なクリック実行もできるようになりました。

Winetricks の設定

さて、先ほどゲームは動くと書きましたが、実際には文字が汚くて読みにくいので、以下のパッケージをダウンロードします。
sudo apt install winetricks
winetricks fakejapanese_ipamona  # MSゴシック 代替
昔は、さらに quartz, directmusic, gmdls などの動画・音声周りのインストールが必要でしたが、 今はインストールすると逆に不整合が起きて動かなくなってしまうようです。 特に MP3 周りが危険みたいで、「未実装です。」のエラーが出るようになってしまいます。 外部依存性のあるパッケージだけ追加が必要で、それ以外は設定がいらないように分けられているのは、わかりやすくて良いですね。

MIDI のインストール

さらに MIDI をインストールします。 私は最近ようやく GUI なしで動かせるようになりましたので、その設定を書いておきます。 サウンドフォントは /usr/share/sounds や /usr/share/midi にインストールされます。
# サウンドフォント
sudo apt install freepats
sudo apt install fluid-soundfont-gs fluid-soundfont-gm

# 音声出力
sudo apt install fluidsynth
sudo apt install timidity timidity-daemon 
sudo apt install alsa-utils

# 再生設定1
echo "timidity -iAD -B2,8 -Os1l -s 44100 -x 'soundfont /usr/share/sounds/sf2/FluidR3_GS.sf2 order=1' > / dev/null 2>&1 &" >> ~/.bash_profile
# 再生設定2
echo "fluidsynth -l -s -i -aalsa -o audio.alsa.device=default /usr/share/sounds/sf2/TimGM6mb.sf2 > /dev/null 2>&1 &" >> ~/.bash_profile
source ~/.bash_profile
いろいろサウンドフォントを試してみましたが、fluidsynth の中に入っている TimGM6mb.sf2 が一番綺麗です。 音声出力と再生設定は timidity と fluidsynth のどちらかだけで OK。 そのため、最小構成でインストールするなら fluidsynth と alsa-utils だけで良さそうです。 ~/.bash_profile に MIDI を設定しておけば、デスクトップからダブルクリックでフリゲを起動できます。

再生設定の & は書き忘れるとデスクトップにログインできなくなるので、編集するときはそこだけ要注意してください。 /etc/init.d に登録したり手動起動のほうが安全かも知れません。 インストールに関しては、以上。

最近の動作状況

OS のメモリ使用量の影響もあると思いますが、全体的に Windows よりサクサク動きます。 今や「Wine だと遅いのでは」といった心配は無用で、とても快適です。 ついでなので、以下のページのリスト (日々更新しているのでもう少しチェックしてる) と、有名作品を 10こくらい動作確認してみました。
ゲームの最初をプレイしてみて、動かなかった作品は一つもありませんでした。 ASTLIBRA なんかも普通に動きます。すごい。 ちなみに今回の検証で一番ハマったのは、Wine そのものではなく、Alacritty から起動するとなぜか Wine が動かなかったところ。 今もよくわからないですが、まあ MESA 関連かなあ。

ゲームごとの解決策まとめ

ここまでの説明でほとんどのゲームは動きますが、動かないものもあります。 動かないアプリを動かすための Tips をいくつか載せておきます。
# Win' Wind' Windy
# Trial Windy
# error: 0024:err:gstreamer:mpeg_splitter_init_gst Failed to create mpegaudioparse; are 32-bit GStreamer "good" plugins installed?
sudo apt install gstreamer1.0-plugins-good:i386

また非常にハマりやすい (というかハマった) ポイントを挙げておくと、 巷のゲームの zip ファイルを unzip -O cp932 hoge.zip で展開して遊ぼうとすると、 RPG ツクール 2000 系のゲームではディレクトリの権限がおかしくなることがあります。 RTP をインストールしているはずなのに「ファイルが開けません」と出てきたら、だいたいコレです。 そんな時は以下のコマンドで権限を正しいものに戻しておきましょう。
# RPG_RT.exe があるディレクトリで以下を実行
chmod 755 */

氷水火山SOKOBAN は winetricks を使わないと動きません。 今のところ気になるのはこれくらい。 dsound などを入れれば動きますが、入れてしまうとメイジの転生録などの MP3 を使うゲームが動かなくなります。 MP3 が再生できないと困るアプリのほうが多いので、dsound は入れないほうが良いと思います。 現状では MP3 絡みのところを以下のようなスクリプトを作っておいて切り替えるのが良さそうです。
#!/bin/bash

dir=$(cd $(dirname $0); pwd)
cd "$dir"
env WINEPREFIX=~/.wine-dsound wine RPG_RT.exe

Linux でフリゲの時代はもう来ていますね。

0 件のコメント: