Batocera.linux: batocera-wine 特集

割引あり

前回、ゲーム設定の仕組み解説に添えて、
batocera-wine向けのハックを施してみました。
今回、せっかくなのでbatocera-wineの中身を覗いてみましょう。

前回同様、 Batocera.linux に興味なかったら
有料部分は購入しないでお帰りよろしう。

なお、batocera-wineの中身は単なるシェルスクリプト
だったりするので、普段shファイルをよく扱っているならば
説明せずとも理解は可能と思われますので
購入するメリットもないでしょう。
ということで。

公式 batocera-wine 動作仕様

batocera-wineはゲーム実行用に単品 *.exe のほか
*.wine *.pc (ディレクトリ) と *.wtgz *.wsquashfs (圧縮イメージ)
に対応しており、さらにインストール作業用として別口で
*.exe *.msi *.iso に対応しています。

余談、実はもひとつゲーム実行用としての *.iso 用動作が
想定されているようで、TODO状態で封印されてたり。
実際のところ、単品のDISCから起動するゲームも
ないわけではないですが、内部的には結局個別の実行環境が
作成されることになるので、一旦 *.wine にインストール
してからで充分。

インストーラの動作

/userdata/roms/windows_installers/
に *.exe *.msi *.iso ファイルを入れるとインストーラとして認識され、
これを実行すると /userdata/roms/windws/ に.wine付きディレクトリが
作成され、これが実行環境となります。
動作としては各種ファイルを認識してexplorerを起動するだけで、
実際のインストール作業は手動で行うことになります。

.wineディレクトリでの動作

それ自体を実行環境として動作するので、適切な初期設定を要します。
とりあえず、手動で用意するのはおすすめできない。
windows_installers の作業先程度の扱いで。

単品 .exe ファイルからの動作

初回起動時に実行環境が /userdata/saves/windows/コア名/ゲーム名/
に作られます。このときファイルシステム全体が z: ドライブとして
マウントされ、指定ファイルもこの一部としてアクセス
することになります。

Windows側でインストール済のゲームファイル群を格納フォルダごと
そのままコピーだけで最も手軽な方法ですが、起動対象ではない.exeも
全て容赦なくEmulationStationに表示されるのでぐちゃぐちゃになりがち。

.pcディレクトリでの動作

.exeファイル入りディレクトリとほぼ同様の動作ですが、
起動は対象ディレクトリ直下にある autorun.cmd から行われます。
ない場合はexplorerから起動します。

手軽で且つ整理可能な構造となっていて、とりあえず筆者の実行環境は
主にこれで構築されてます。

.wtgzイメージからの動作

初回起動時に実行環境として /userdata/saves/windows/ゲーム名.wine
に圧縮イメージから展開されます。
(何故かコア毎ではない)

一見圧縮されてて省スペースに見えるけど、別途展開されるわけで
ディスクスペースは余計に消費されることに。
ただ、圧縮イメージへの書き込みは行われないので
どちらかというとインストールソースな扱い。

.wsquashfsイメージからの動作

起動時に圧縮イメージを実行環境として直接マウントされます。
また、初回起動時に /userdata/saves/windows/ゲーム名/
のディレクトリが作成され、書き込みはこちら側に行われるように
細工した状態で扱われます。

一見Batoceraでの利用に最も適した方法には見えますが、
実際として結局ファイルは展開してから扱われることになるので
さほどメリットはなかったり。

追加設定

/userdata/system/wine/ に

  • exe/*.exe

  • msi/*.msi

  • regs/*.reg

  • fonts/*.ttf

  • fonts/*.ttc

を置いとくと、次回起動時に自動インストールされます。
実行後はディレクトリに拡張子 .bak が付加されます。
(が、前回実行とかで .bak 付きディレクトリが残ってるとエラーに)
全体共通の置き場所なので、どのゲームでも先着1名様だけ適用されます。

winetricks

公式ではシェルからのみ使用可能で、まず最初に
$ export DISPLAY=:0.0
でGUI表示を(極力)抑えときます。で、
$ batocera-wine windows tricks 実行環境位置をfullpathで 対象trick名
な感じで(特にpathが)長い呪文を打っていくことになります。

PadToKey

他の多くのコア同様、PadToKeyによるキーアサインができます。
ただし、Wine自体もゲームコントローラを認識してソフト側で
普通にゲームコントローラとして扱うことになるので、
そこで使われているボタン等をPadToKeyでも定義すると
両方ダブルで発動することになります。

autorun.cmd

インストーラで作成された実行環境にはautorun.cmdも
自動作成されますが、自前で用意するときはautorun.cmdも
自前で用意します。

自動作成されたautorun.cmdでも
#DIR=drive_c/Program Files/myprogram
#CMD=start.exe
とコメントアウトで書かれてるので、結局自前で
書くことになります。

ここで注意点として、古いWineでは改行はLF限定。
(最近のはCRLFでもいけるみたい)

DIRには作業ディレクトリを相対指定で
CMDにはコマンドと引数を記述します。
以前は *.bat から起動できなかったりしたけど
最近は *.bat でもいけるみたい。
このほか
LANG=ja_JP.UTF-8
な形式で言語が指定できる模様。

その他、設定項目いくらかあるみたいだけど、
EmulationStationからでも設定できるので
特に気にしなくてもよさげ。

いぢくる?

さて、ここまで踏まえまして、いろいろと改良の余地が。
てなわけで思い切っていぢくってしまいましょう。
なお、従来の構成を度外視した魔改造になるのでプルリクなし。

で、以下有料部分で変更部分それぞれの解説を入れてますが、
いぢくったソース自体は全てGutHubで公開済なので、
成果だけもってっちゃってもいいです。

ここから先は

4,028字 / 31画像

この記事が気に入ったらサポートをしてみませんか?