ねんがんのSteamdeckをてにいれたぞ！開発環境構築メモ

# ねんがんのSteam deckをてにいれたぞ！
これでさらなる~~ロマサガ廃人プレイ~~開発が出来る。
だから、簡単に開発環境の構築メモと、所感を述べます。
今は2023年一月ですが、しばらくは更新はしていくかも。

https://www.steamdeck.com

※ この記事ではあくまでvimとかpythonをコンパイルして仮想環境を作るとかの話です。ゲームの開発はしません。したことないし。

# 性能
LinuxベースのUMPCで、単発のゲーム機としては高価ながら
PCとしてはそんなに高くもなく、どこまでもたのしいデバイスだ！

- 4コア8スレッドのRyzenベースAPU
- 16GBのメインメモリ(APUを動かすためにDDR5)
- Archベースのカスタムディストロ
- 650gくらい

これで、ストレージが512GBだと10万円程度。
eMMC64GBだと6万5千円程度。
一応エルデンリングもあそべるし、サガシリーズは基本余裕で遊べます。

ベースがarchlinuxなので、archwikiが役立つかも知れません。

https://www.archlinux.jp/

https://wiki.archlinux.jp/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8

# 分解
Steam deckがバラバラになった？
iFixitのサポートが手厚いみたいですから大丈夫です。
手先が器用な人は部品を取り寄せれば自分で修理できそうですね。嬉しい。
ただ、電池の交換はかなりしにくいらしいです。悲しい。

https://jp.ifixit.com/Device/Steam_Deck

# 管理者権限

スマホとかChorome bookは脱獄は「殺してでも奪い取る」的行為です。
Steam deckはスマホ脱獄やスーファミのバグ技の様なことはしなくていいです。
普通にpasswdすればsudoを使えるようになります。親切設計！

```bash
passwd
```

https://windowsreport.com/steam-deck-sudo-password/

# プログラムを入手する
pacmanを使えないとどうしようもないです。apt, dnf, yumのような何かですね。
使えるようにする方法はここに書いてありました。

https://www.reddit.com/r/SteamDeck/comments/t8al0i/install_arch_packages_on_your_steam_deck/

まずはディスクに書き込めるようにします。btrfsなんですね…。
```bash
sudo btrfs property set -ts / ro false
```

そんで、pacmanを使えるようにします。
ここは普通にpacmanの初期化ですね。
```bash
sudo pacman-key --init
sudo pacman-key --populate archlinux
```

ですが、僕の感想ですが、pacmanは乱用しないほうがいいです。多分。

# スクリーンキーボードを変える
標準のキーボードはCtrキーやESCが入力できません。
ゲームしかしないなら良いんですが、これはデスクトップモードがあり、
しかも**vimがプリインストールされています**。
vimがプリインストールされているのにESCがないなんてわけがが分からないよ。

代替としてはデスクトップではonboardが使いやすいかなと思います。

```bash
sudo pacman -S onboard
```

# コンパイラを動かす
最新のpythonを使いたくてpyenvを動かそうとしたら、
コンパイラが上手く動かなくて一寸つまりました。
C言語のヘッダのパスが違っていたのです。そこで、リンクを貼りました。

```bash
sudo mkdir /usr/include/linux
cd /usr/include/linux
sudo ln -s errno.h
sudo ln -s limits.h
```

これで、あとはpacmanで色々と必要物品を揃えればpythonはコンパイル出来ます。
かなり気持ちの悪い操作をしているのですが、正攻法が分かりません。
こういうのってどうするべきなんでしょうね？
Cコンパイラ単体で上手くいっても、僕はCythonとかpyenvとか使うので
上記のようにしないと凄く大変そうな気が…
Cコンパイラを知るものたちよ、今こそここに来たれ！

# pythonを使いてえよ
僕はpythonを使いたかったです。
基本、sslとsqlがpythonのコンパイルには必要です。
手順はメモし忘れましたが、適当にやって下さい。
そして、steamOSにはmakeコマンドがプリインストールされていません。


```bash
sudo pacman -S make
```


# 内蔵のストレージがちっちぇえ！
内蔵ストレージのルートディレクトリが6GBしかなく、しかもその中にusrがあります。
調子にのってpacmanでインストールしまくっていたらいっぱいになるょ！
必要に応じてホームディレクトリかSDカードのディレクトリに逃がす必要がありそう。
pacmanはコアな所に留めて、flatpakとかを使うのも一つの案かもですね。

## 対策・flatpakを使う
ルートディレクトリを圧迫したくないので、出来る限りhome以下に入れたいですね。
パッケージマネージャは色々ありましょうが、
flatpakに--userオプションをつけるとhomeディレクトリ以下にインストールされるので
いいやり方の一つかも知れません。
まずは、flatpakを使えるようにしましょう。

```bash
flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
```

あとは普通にインストールすれば、```home/[user]/.local/share/flatpak```以下に
色々と入るようになります。```--user```オプションを忘れずに！
例えば、ゲーム機でオフィス動かしたい社畜は下記のようにします。


```bash
flatpak --user install flathub libreoffice
```

https://wiki.archlinux.jp/index.php/Flatpak

# 感想
当然と言えば当然なんですが、上記の変なクセさえ回避すれば
x64機であるだけに割と素直なLinux機です。
今までLinuxベースのノートPCとか珍しかっただけに、付加価値は高いと思います。

## DockがあったほうがPCとしてはいい
これはゲーム機であり、端が丸っこいので自立しません。
パソコンとして使うならDockはある方がいいです。
でもDockはまだ売っていません。似たような物がAmazonとかで売ってあります。
仕方ないよね…(´・ω・｀)

## マルチタスクは物を選べば別に重くない
valv曰く、バックグラウンドでゲームをダウンロードするのは重いらしいです。
僕は思いました。「いや、4コア8スレッドあるなら出来るやろ」と。
実際wgetでデカいファイルをダウンロードしながら
ロマンシングサガ・ミンストレルソングをしても別に重くありませんでした。

エルデンリングのような重いネトゲをしながらの
バックグラウンド作業は苦しいということかもです。

## SteamdeckのsteamはBigPictureとは別っぽい
UIが違うので、多分別物だと思います。

## ゲームモードでは普通のソフトは動かない事がある
ブラウザをSteam上で起動すれば攻略サイトを見ながらプレイできるかと思いましたが、
Firefoxは何故か重かったりマウスのカーソルが飛んでいったり表示が乱れたりしました。
Choromeも使いやすいかどうかで言うとイマイチ感が高かったです。
特に文字の入力が辛い。
また、ターミナルエミュレータはゲームモードでは表示すら出来ませんでした。

## タッチパッド・タッチパネルの質
タッチパッド・タッチパネル併用のUIです。
まぁ、どちらも高級スマホや高級タッチパネル程の使い勝手はないですが、
それでも安物のスマホやノーパソについている粗悪品よりは随分良くて
実用面では十分です。
おっさんに伝わる言い方をすると「**ゲーミングPDA**」と考えるとかなりの高品質です。

左クリックがR2、右クリックがR1なので、これもおっさんに伝わる言い方をすると
「**スーパーマリオよりはアーマードコア的なキー配列**」だと思います。

# ゲーム性能に関して
一応ゲーム機なので、敬意を払ってゲームの話もします。
~~ここは「エンジニアの為の技術サイト」らしいですが、
「エンジニアじゃない僕がゲームの話」をします。
qiitaさん、お願いだからbanしないで下さい。真面目な記事を書いているのです。~~
エルデンリングをやりたい人は多いかも知れませんが、iGPUでギリ動きます。

- 画面がちっちゃい
- 最近のiGPUは性能がいい
- メインメモリがLPDDR5なのでiGPUでも性能が出る

という要素が良いのでしょう。
この性質に関しては2023年初め現在、ほかのiGPU機でも大差なくて、
IntelのTigerlake世代のiGPUでもエルデンリングを遊べる程度の性能は出ます。
というか、僕はVaioでエルデンリング遊んでいてあまり不満もありません。

## オススメのゲーム
ロマンシングサガ・ミンストレルソング　リマスタード