コンテンツにスキップ

Windows 互換レイヤ

Windows互換レイヤはエミュレータではなく、WindowsのシステムAPIをホストOSのAPIに変換することで高速に動作させるという素晴らしい取り組み。 昔はWineが主流だったが、今はWineを直接使うことはあまりなさそう。懐かしき時代だったなぁ。

Steam Play

Valveがかなり気合い入れて、Protonというかなりいい互換レイヤを実装している。 Protonは基本的にSteam Playで使える。Steam Playでは、ゲームごとに使用する互換レイヤのバージョンを選べて、ゲーム部分をマウントして使う。 Steam 参照。

Bottles

Steam Playと似た感じで、ゲームとレイヤを1対1対応する感じの、Steamより簡素なデスクトップアプリ。ゲーム用に互換レイヤを使いたくて、Steamに依存したくないならたぶんこれが一番有用。sodaとかwine-geとかのレイヤが使える。どれがいいのかはよくわからんが、色々試してみてちゃんと動いたのを使うべし。

使ってたときの記録がないのであまり自信はないけど、Nixならパッケージ bottles を入れるだけ (たぶん)。

Gamescope

分離型コンポジタ。指定した解像度を偽装したウィンドウを作れる。Waylandとかでマウスが使えない問題を解決できる可能性がある。 Nixならパッケージ gamescope を入れるだけ。

全般的なトラブルシューティング

ゲームごとの自分流トラブルシューティング

互換レイヤはだいぶんおま環なので結局毎回トラブルシューティング粘ることになりがちだが、同じことで苦しまないように気が向くだけログを残す。

東方神霊廟 パッケージ版

  • 動作環境: NixOS/Wayland/Niri/Steam Play (Proton 4.11-13/7.0-6/9.0-4/11.0, GE-Proton 11-1)
  • 推奨: Proton 7.0-6 (ウィンドウサイズ設定時のみProton 10.0-4)
  • デフォルトのディレクトリ構造だと「東方神霊廟」などの日本語がパスに含まれるが、それだと動作せず (Proton 9.0-4)
    • 日本語以外のロケール固有の問題の可能性あり
  • 起動時の、ウィンドウサイズを選択するダイアログや、custom.exe では、マウスが効かずキーボード操作もできないが、Enterで入れる
    • Proton 10.0.4以上, GE-Proton 11-1では修正されている模様
    • Gamescopeで使えるが、逆にゲーム本編が動かなくなる。custom.exe だけなら有用かも。
      • gamescope -w 640 -h 480 -W 640 -H 480 -- %command%
  • 起動時や custom.exe のダイアログは、非日本語ロケールだと文字化けする
    • LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8 %command%
    • cjkfonts のインストールも必要な可能性あり
  • custom.exe で設定するとき、Steam Play等だと別のprefixになるので、~/.local/share/Steam/steamapps/compatdata/<prefixのID>/pfx/drive_c/users/steamuser/AppData/Roaming/ShanghaiAlice/th13/th13.cfg をコピーする
    • prefixのIDはどこから見るのが一番楽なのかはよくわからないが、ディレクトリの更新日時で判別できる
  • 解像度確認ダイアログ決定後、ゲームウィンドウが表示されない (Proton 11.0,GE-Proton 11-1)
  • ゲーム本編のセリフやスペカ名、エンディングなどの一部テキスト白欠け?する
    • ギリギリ読めるが嫌になる感じ
    • Proton 7.0-6以前だとこの問題は発生しない
  • フルスクリーンだと画面のアスペクト比に伸ばされてしまうのでウィンドウモード推奨
  • Niri固有と思われる問題
    • ゲームを起動するたびに th13.cfg が上書きされてタイリング表示になってしまいアスペクト比が壊れる (custom.exeのprefixからコンフィグをコピーし直すと治る)
    • 以下のniri設定ではじめからフローティングで開くようにすれば解決。なお、開いてからフローティングに切り替えるのではダメ。app-idは、 niri msg windows で確認可能。
      // th13
      window-rule {
          match app-id="steam_app_2694273883"
          open-floating true
      }
      

東方天空璋 パッケージ版

  • 動作環境: NixOS/Wayland/Niri/Steam Play (Proton 7.0-6/11.0)
  • 推奨: Proton 7.0-6 (ウィンドウサイズ設定時のみProton 11.0)
  • セリフは白かけはしないが、味のない汎用フォントになる (Protom 11.0)
  • 7.0.6だと正しいフォントで描画されるが、ルビなどの表示位置はまだ少しおかしい

東方虹龍洞 Steam版

  • なんもせんでも正常動作。さすがSteam版。

東方永夜抄 パッケージ版

  • 動作環境: NixOS/Wayland/Niri/Steam Play (Proton 11.0)
  • 特に何の問題もない
    • この頃はフォント問題は起こらないようだ
  • 4K画面でやろうとしたりするとフルスクリーンモードでも小さいので、Gamescopeとかで拡大したほうがいいと思う
    • gamescope -h 960 -H 2160 -S integer -- %command%
    • Gamescopeを使うのが悪いのか、-H 2160 のままそれより小さなモニターで起動したのが悪かったのかわからないが、5面くらいでfpsが30代に減ってゲームにならなくなるので注意!!! フルHD相当のモニターならGamescopeはやめておこう

東方鬼形獣 パッケージ版

  • 動作環境: NixOS/Wayland/Niri/Steam Play (Proton 7.0-6/11.0)
  • 推奨: Proton 7.0-6 (ウィンドウサイズ設定時のみProton 11.0)
  • 天空璋とほぼ同じ
  • Switch プロコン接続時、なぜかxボタンとStartボタンが同じキーIDに当てられている。Xロアリング、Startポーズにしたいところだが現状断念せざるを得なさそう

東方妖々夢 パッケージ版

  • 動作環境: NixOS/Wayland/Niri/Steam Play (Proton 11.0)
  • 永夜抄と同じ

東方輝針城 パッケージ版

  • 動作環境: NixOS/Wayland/Niri/Steam Play (Proton 7.0-6/11.0)
  • 推奨: Proton 7.0-6 (ウィンドウサイズ設定時のみProton 11.0)
  • 基本的に神霊廟と同じ
  • Proton 11.0だと、フルスクリーンモードでまともなウィンドウ表示にならない(非常に縦幅が小さい謎のウィンドウが生成されたりする) ので、11.0でフルスクリーンモードを設定したあと7.0.6で起動するのが基本ムーブ

東方紅魔郷 パッケージ版

  • 動作環境: NixOS/Wayland/Niri/Steam Play (Proton 7.0-6)
  • アプリ名が 東方紅魔郷.exe だからか、日本語ロケールでないと起動しない
    • LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8 %command%

東方風神録 パッケージ版

  • 動作環境: NixOS/Wayland/Niri/Steam Play (Proton 7.0-6)
  • 問題なし