Skip to content

Instantly share code, notes, and snippets.

@td2sk
Last active April 27, 2024 21:16
Show Gist options
  • Save td2sk/a887f69da7bfa65209174a3ad4877512 to your computer and use it in GitHub Desktop.
Save td2sk/a887f69da7bfa65209174a3ad4877512 to your computer and use it in GitHub Desktop.
Steam Deck 設定メモ

TL; DR

最初にやったほうがいい設定とか

内部ストレージの空き容量を増やす

Steam Deck ではキャッシュ等が 40GB ほど内部 SSD を使ってしまうため 64GB モデルではすぐに Disk Full になる。 内部データを SD カードに移すことで、ある程度余裕ができる。

# SD カード上に退避先ディレクトリを用意
mkdir /run/media/mmcblk0p1/system

# データを移動
mv /home/deck/.steam/steam/steamapps/compatdata /run/media/mmcblk0p1/system/
mv /home/deck/.steam/steam/steamapps/shadercache /run/media/mmcblk0p1/system/

# シンボリックリンクを張る
ln -s /run/media/mmcblk0p1/system/compatdata /home/deck/.steam/steam/steamapps/compatdata
ln -s /run/media/mmcblk0p1/system/shadercache /home/deck/.steam/steam/steamapps/shadercache

参考

ファイル転送

USB メモリで都度転送するのはあまりにダルいので ssh か syncthing を入れておくとよい。

syncthing を使うと、非 Steam ゲームでも PC とセーブデータの同期ができたりするのでおすすめ。

非 Steam ゲームの入れ方

TL; DR

  • 非 Steam ゲームは Desktop モードで exe ファイルを右クリックして Steam に追加できる
  • png 画像を用意しておけばアイコンやアートワークもいい感じに設定できる

設定

  1. ゲームを Steam Deck にコピー
  • 入れる場所は SSD でも SD カードでもよい
  • パスに全角文字やスペースが含まれていると起動しないゲームがあるので、日本語は使わず英数字に絞っておくのが吉
  1. ゲーム内の exe ファイルを右クリックし、Steam に追加 をクリック

Steam 側に追加され、Steam メニューから起動できるようになる。 ゲーム名はデフォルトで実行ファイル名になるので、ゲームのプロパティから修正する。

アートワーク

変更できる場所は以下3つ。 png か jpg が使える

種類 用途 設定方法
アイコン ゲーム一覧でタイトル横に表示される小さいアイコン ゲームのプロパティを開き、タイトル横のアイコン欄をクリック
アートワーク ホーム画面で表示される画像 Desktopモードにし、Steamホームで該当ゲームを右クリック > 管理 > カスタムアートワークを設定
カスタム背景 ゲームを選ぶと出てくる起動画面の背景 Desktop モードでゲームを選択し、プレイボタンの上の背景部分で右クリック > カスタム背景を設定

互換設定基礎

TL; DR

Windows ゲームが起動しない場合の対策

互換設定用語

wine

  • Windows API の互換レイヤー

proton

  • wine をベースにゲーム特化で色々付け加えたやつ。Steam Deck に最初から入ってる

proton GE

  • proton に標準では同梱できないあれこれがセットになってるやつ

prefix (wine)

  • wine が Windows のフリをするときに使うディレクトリ
  • 中に C ドライブっぽい内容とかが入ってる
    • イメージとしては、ゲームが Docker コンテナで動いて prefix が Docker Volume みたいな感じ
  • Steam Deck ではゲーム毎に prefix が用意されている

winetricks

  • wine prefix に DLL とかフォントとかをいい感じに入れてくれるツール
  • ゲームが動かないときは、足りない DLL に当たりをつけて色々入れてみることになる

protontricks

  • proton 用 winetricks。 Steam Deck ではこっちを使う

互換レイヤー関係のツール

名前 入れ方 用途
Protontricks discovery 必要なdllの導入や proton の指定をいい感じにやってくれるやつ
ProtonUp-Qt discovery 非標準の互換レイヤーをインストールできる。特に特にGE(標準では除外されているプロプライエタリなライブラリ同梱版)は入れておきたい

ゲームが起動しないときは、とりあえず以下の互換レイヤー設定を試してみると上手くいくことが多い

  • Proton 8.x
  • Proton 8 GE (ProtonUp-Qt で導入)
  • Proton 7.x
  • Proton 6.x

互換レイヤーはゲーム毎に設定する。 プロパティ> 互換性 > 特定のSteam Play互換ツールの使用を強制する で選択できるようになる

文字化け対策 (日本語ロケール)

Steam Deck には日本語ロケールが含まれていないため、一部ゲームで文字化けする。
⊠ ← これみたいな文字がタイトルバーやゲーム内に出る場合には、この項の手順で解決する可能性が高い。
また、ゲームによってはロケール設定が正しくないせいで起動しないことがある。起動失敗のエラーメッセージが文字化けしている場合は試してみる価値あり。

# https://steamdeck-packages.steamos.cloud/archlinux-mirror/core-main/os/x86_64 を見て、存在するバージョンを選択
MYPKGNAME=glibc-2.37-3-x86_64

# 導入先
MYLOCALE=${HOME}/.locale
MYDOWNLOADS=/home/deck/Downloads
MYGLIBC=${MYDOWNLOADS}/${MYPKGNAME}
MYI18N=${MYGLIBC}/usr/share/i18n

wget -P ${MYDOWNLOADS} https://steamdeck-packages.steamos.cloud/archlinux-mirror/core-main/os/x86_64/${MYPKGNAME}.pkg.tar.zst
mkdir -p ${MYGLIBC}
tar xf ${MYGLIBC}.pkg.tar.zst -C ${MYGLIBC}
mkdir -p ${MYLOCALE}/usr/lib/locale
I18NPATH=${MYI18N} localedef -i ${MYI18N}/locales/ja_JP -c -f UTF-8 -A ${MYGLIBC}/usr/share/locale/locale.alias ${MYLOCALE}/usr/lib/locale/ja_JP.UTF-8
I18NPATH=${MYI18N} localedef -i ${MYI18N}/locales/ja_JP -c -f UTF-8 -A ${MYGLIBC}/usr/share/locale/locale.alias --add-to-archive --prefix ${MYLOCALE}
mkdir -p ${MYLOCALE}/usr/share/
cp -r ${MYI18N} ${MYLOCALE}/usr/share/

上記実行後、ゲームの起動オプションで環境変数を指定する

I18NPATH=/home/deck/.locale/usr/share/i18n LOCPATH=/home/deck/.locale/usr/lib/locale LANG=ja_JP.UTF-8 %command%

参考

MIDI の鳴らし方

Steam Deck は標準では MIDI 音源を鳴らせない。以下の場合は設定が必要

  • ゲームフォルダに明らかに BGM 用の MIDI ファイルがある
  • 昔遊んだときに MIDI っぽい音がした気がする
  • なんか音が出ないから MIDI のせいかも

方法1. 一般的なケース

Steam Deck 標準には MIDI 音源や再生ソフトがないので、インストールする。 また、ゲームの起動前に MIDI シンセが自動起動するよう設定する必要がある。

手順

  1. ストアから Qsynth を入れる
  2. サウンドフォントを入れる (Scc1t2.sf2)
  3. デスクトップモードで Qsynth 設定
    1. Gain: 25
    2. Setup > Soundfonts > Open から手順2のフォントを追加
    3. Options から以下にチェックを付けてバックグラウンドで実行されるよう設定
      • Enable system tray icon
      • Start minimized to system tray
  4. ゲームの起動オプションを変更し、ゲーム中だけ qsynth が起動するようにする
    • LD_PRELOAD=/usr/lib/libcurl.so.4 flatpak run org.rncbc.qsynth & %command% ; killall -9 qsynth

参考

方法2. ゲーム内部で Microsoft Synthesizer が使われている場合

方法1 で音が出ない場合、内部で Microsoft Synthesizer が使われている可能性がある。 その場合は protontricks を使って gmdls, directmusic (リバーブが必要ならdsdmoも) を入れてみると改善する。

方法2 で解決した場合、方法1 で設定した起動オプション変更は不要なので消しておくこと。

参考

protontricks の使い方

どうやっても動かない場合は DLL 等が不足している可能性が高い。

GUI の使い方は省略。 GUI だと進み具合が分からないが、DLLインストールはかなり時間がかかるので ps コマンド等で確認しながらじっくり待つこと。 途中で触るとだいたい失敗する。

CUI で動かす場合は以下

# alias
alias protontricks='flatpak run com.github.Matoking.protontricks'

# ゲーム ID の確認
# 一覧に表示されない場合は一度ゲームの起動・終了を行ってから再実行する
protontricks -l

# DLL の導入方法
protontricks (確認したゲームID) (DLL名)

互換動作例

TL; DR

  • ゲームの動作状況
  • 動かした手順

共通

  • 原則としてゲームの保存先フォルダ名は親階層まで含め半角英数だけにしておくこと
    • ディレクトリパスに日本語(全角文字)を入れると起動しないゲームがあるため

タイトル一覧

タイトル 動作 互換レイヤー MIDI 設定が必要?1 日本語ロケール設定が必要?2 protontricks DLL追加 備考
魔王のアクジ o Proton 8.0-4 o o d3drm3 日本語ロケール設定をしなくても動くがゲーム内文字も化ける
きまる! o Proton 8.0-4 o
フロントライン o Proton 8.0-4
石松99 o Proton 8.0-4 o 3面ボスで音がちょっとバグるけど、昔からそうだった気がする
みこさんのミラクルボード o Proton 8.0-4 directmusic
gmdls
DLLを入れないとStage1開始時(MIDI再生時)に落ちる
おばけの行進曲 o? Proton 8.0-4 たぶん動くが検証不足
おばけの行進曲 10th o? Proton 8.0-4 たぶん動くが検証不足
しぇいむ☆おん o Proton 8.0-4 o ffdshow, quartz DLL は OP, ED ムービーを見るために必要。なくても動く
スマッシュセット o Proton 8.0-4 directmusic
gmdls
DLLを入れないとBGMが流れない(効果音はなくても鳴る)
時限アイテム使用時の残時間バーに、プレイに支障のない程度の表示バグあり
超連射68k o Proton 8.0-4
不思議のダンジョン 風来のシレン 女剣士アスカ見参 o Proton 6.3-8 o ムービーが正しく表示されない
日本語ロケールは無くてもタイトルバーとメニューバーが化けるだけ
初回起動には Proton 6系が必要だが、2回目以降は8系でも動く
最近の Windows で普通に動くようパッチは事前に当てておくこと: オフラインパッチ, NOCD, AsukaPlus
Last Dimension o Proton 8.0-4 directmusic
gmdls
DLLを入れないとBGMが流れない(効果音はなくても鳴る)
ヴァンガードプリンセス x 起動せず。ツクール系なのでランタイムが必要?
ボールの王子様 o Proton 8.0-4
かむたこ o Proton 8.0-4 o 昼夜の切り替え時に昼BGMの音程がずれる
クリアまで遊べた
Neko Flight o Proton 8.0-4 o 日本語ロケールにしなくても動くがダイアログが文字化けする
シャンハイエグゼ x Proton 8.0-4 テキストが文字化けする。おそらくフォント不足
ディアボロの大冒険 x Proton 8.0-4 startup failed と表示され起動せず

Footnotes

  1. o がついているものは、互換設定基礎 の MIDI の鳴らし方 を参照して起動オプションを変える必要あり

  2. o がついているものは、互換設定基礎 の 文字化け対策 (日本語ロケール) を参照して起動オプションを変える必要あり

  3. 筆者は別ゲームに同梱されていた d3drm.dll を直接コピーしたので protontricks での導入は動作検証していない

その他

よく使うディレクトリ

用途 パス
SDカード /run/media/mmcblk0p1
Steam /home/deck/.local/share/Steam
スクリーンショット /home/deck/.local/share/Steam/userdata/

スクリーンショット一括コピー

パスがネストしてて一覧性がないので Pictures 以下に cp した方が扱いやすい

# コピー先
mkdir -p ~/Pictures/screenshots

# コピー
cp -n ~/.steam/steam/userdata/*/*/remote/*/screenshots/*.jpg ~/Pictures/screenshots/

参考

TODO

  • protontricks の使い方を書く
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment