WINE

Wayland 環境におけるSteam link の問題

発生症状
Steam Linkクライアントで画面が表示されない(黒い画面のまま、ただし操作はできておりPC側の画面は動く)。この問題は、PC側のSteamが、Linux+Waylandで動作しているときに発生する

解決
Gamescopeを利用することで解決もできる
解像度が甘い(Gamescopeで指定した解像度で表示されているのかボケる(これは私の環境が完全にはGamescopeがうまく動作してないことが影響をしてそう)
PopOSの場合には対応した標準のパッケージが用意されてない

原因
はっきりとは原因は不明だが、Waylandの画面共有の問題が関係している模様。失念したが設定次第では画面共有のダイアログが表示されて映ることもあったが安定しない(というかほぼ無理)。この話題はネットでも解決してない問題で放置されている感じがする。問題の迂回案としてGamescope経由で起動したアプリは共有が無事にできる。

実施内容

Gamescopeとは
Valveの開発したマイクロコンポジッターです。gamescope環境で起動したアプリはGamescopeのサンドボックス内の画面で動きます。そのためデスクトップと影響なく指定したWindowで起動することができます。スケーリングなどもNvidiaやAMDの機能で実施することができるため実際の解像度と表示の解像度を変えることができます(私の環境だとSteam Linkで接続するとフルスクリーンで動いていた場合に落ちてしまうのですが・・・)

gamescope -e -W 2560 -H 1440 -w 2560 -h 1440 -F nis --expose-wayland -- steam -bigpicture -pipewire-dmabuf -hdr-enabled というオプションで起動した状態。仮想Windowみたいなものですね、この枠の中で動く感じです。拡大も縮小も軽快に動きます。この状態でSteamlinkをした場合、Wayland環境下でも接続することができます。ただし何故か微妙にボケている。

スケーリングを当てにするオプションがあるはずなのですが安定しないので画面サイズと同じサイズにスケーリングをするように指定して今の所動いています。

[Linux] Steamゲームを日本語化するためのバッチプログラムの動かし方 (WineConsole.exe )

Steamのゲームを日本語化するなどのツールを利用する際にBatプログラムの実行が必要なけーすがあります。Windowsであれば、エクスプローラー上からBatファイルをダブルクリックして実行すればよいのですがLinux上の場合にはそういう訳には行きません。

解決策としては、 wineconsole.exxe を利用します

export WINE=/home/hideaki/.local/share/Steam/steamapps/common/Proton\ -\ Experimental/files/bin/wine 

WINEPREFIX=/home/hideaki/.local/share/Steam/steamapps/compatdata/1527950 $WINE /home/hideaki/.local/share/Steam/steamapps/compatdata/1527950/pfx/drive_c/windows/syswow64/wineconsole.exe

IDの部分は利用したいゲームの環境の番号を探して実行をするようにします。

実行をするとGUIのコマンドコンソールのようなものが起動しますのでコマンドラインからBATファイルを実行します。

その後は普通に使えると思いますが日本語が化けたりすることもあるので気合いで乗り切りましょう。

日本語化をしてみたWarTales。BATファイルの実行が必要だが問題なく出来ています。

Windows, Linuxのアプリ(Game)の導入を支援する最強の「Wine」管理ツール Lutris(Wine以外も使える)

Lutisが素晴らしいというのを目にしながらあまり有用性を感じてなかったのだがこれは、Wineのバージョン管理 が出来る素晴らしいアプリだ。

1.Wineの管理機能が簡単に呼び出せる

環境変数を切り替えて色々な設定を呼び出すのは意外に手間。メニューから呼び出すことが出来ます。

2. Wine(Runner)を切り替えることが出来る

これはなかなか便利で新しいエンジンを試すことが出来ます。これはネイティブにWineを入れてしまうと結構骨が折れることを簡単に実現できています。

追加でどんどん入れることも出来ます。

3.実行環境を設定が詳細に出来る

Runner(Wine)だけでなくてSystemの設定もある程度変更できます。この場合、ディフォルトでは NVIDIA (Prime Render )がOFFなのですがONに出来たり、FPSを表示する MangoHudを一緒に起動できたりします。

4.同じアプリを別バージョンを入れることが出来る

意外に重要でDiablo2のModをするときとかはクリーンな環境で新しいものを作って遊んでいたので別バージョンが入れれるってのはWindowsを使わないでWineを使うメリットの1つなのでよくわかっていますね。

5. 半端ないプリセット

膨大なゲームが登録されています。Wine経由のWindowsのゲームもメジャーなものは結構あるのではないでしょうか?普段あそんでいるDiabloも沢山登録されています。これらのゲームに対して事前の設定がされてそのままでも動くようになっていると思うと素晴らしいですね。

おまけ

最近登場した、Diablo2 Resurrected もBattle.netアプリ経由で起動(購入)する必要がありますね。無事に起動するようです。

そんなアプリの設定を見るとだいぶ大変そうなことが想像できます。先人の苦労に感謝ですね。

SteamのProton(Steam以外のゲーム)でのregeditの起動

若干パスはバージョンによって異なるかもしれないが

WINEPREFIX=/home/hideaki/.steam/debian-installation/steamapps/compatdata/2831691655/pfx /home/hideaki/.steam/debian-installation/steamapps/common/Proton\ -\ Experimental/files/bin/wine64 regedit

で起動することができる。すぐに忘れるので貼っておく

Winecfgなどを使わなくてもある程度はRegeditで操作が出来る。Wine特有のれ実ストリキーについては以下が参考になる。

便利なレジストリキー-WineHQWiki

Wineプログラムの自動起動

特に変わったことをするわけではないが環境変数周りを設定して起動する

systemdのシステムの場合には /etc/systemd/system 以下にスクリプトを記載する。今回は d2gs.service という名称で作成

[Unit]
Description = Diablo2 Game Server (d2gs)

[Service]
#After=bnetd.service d2gs.service d2cs.service
ExecStartPre=/etc/init.d/diablo start


EnvironmentFile=/etc/systemd/system/d2gs.env
User=hideaki
WorkingDirectory=/opt/d2gs
ExecStart=/opt/wine/bin/wine D2GS.exe
Restart=always
Type=simple
PIDFile=/opt/d2gs/d2gs.pid
KillMode=process

[Install]
WantedBy = multi-user.target

今回の対象となっているプログラムは事前に d2gs bnetd 等のサービスが起動している必要があるので after などで指定ができる(今回はそれらのプログラムが正常にRCを返さないのでうまく実装できてないが)のでプログラムの前後関係を持ちたい場合には systemdのこの機能はおすすめです。

環境変数は同じ EnvironentFileで指定します。内容は環境変数の定義です。

WINARCH=win32
WINEPREFIX=/home/hideaki/.wine_dia

これでWineの環境切替を正常に行うことが出来ます。

上部へスクロール