RG35XXにThemes Switcherを導入してみた
色々なテーマを簡単に切り替えたかった
現在でもお気に入りのRG35XXですが、前々回導入したGarlicOSには有志の方が作成した「RG35XX上から簡単に色々なテーマに切り替えるスクリプト」が公開されているのです! 意外と日本語でこちらのスクリプトに触れた記事を見かけなかったので、今回はこちらを紹介していこうと思います!
スペシャルサンクス
まずは、今回のスクリプト「Themes Switcher」を作成してくださったStandard-Pepper-6510さんにお礼申し上げます。
また、今回テーマを切り替える題材で記事を書くにあたってレトジャナイでこさんとやまひろさん作成のオリジナルテーマを例題として使用することを快く了承いただきました。
いつも素敵なテーマを作成、配布いただき本当にありがとうございます!
お二人のX(旧Twitter)プロフィールリンク ヘッダ部より使用したテーマをダウンロードできますので、是非ご興味あれば確認してみてください!
更新履歴
2023/09/03 : GarlicOS 1.4.9で本記事の内容を検証済みです。
自分の環境
Windows 11 Pro 22H2 (OSビルド 22621.2134) 64bit : 2023/09/03時点
Themes Switcher v2.0 : 2023/09/03時点
GarlicOSをTF1/INTスロットとTF2/EXTスロット両方にSDカードを挿入して運用
(TF1/INTスロットにのみSDカードを挿入して運用している場合でもこのスクリプトは利用可能)
念の為注意
後ほどダウンロードするThemes Switcherのファイル一式には詳細なセットアップメモも含まれています。
ちゃんと読んで設定すれば基本的にはトラブルなく動作するのですが、実は私自身横着してちゃんと読まず設定したところGarlicOSが起動しなくなったケースがありました。
(原因はおそらく、 lang フォルダの存在しないテーマをそのまま配置した為。)
本記事でも丁寧に手順を記載するつもりではありますが、誤った操作を行うと重要なデータが失われる場合もあります。操作に関しては自己責任でお願いいたします。
また、作業前のセーブデータ等バックアップを怠らないよう是非ともご注意ください。
Themes Switcherの導入
冒頭でもお伝えしました通り、Themes SwitcherはStandard-Pepper-6510さんが作成したスクリプト群です。
Redditの記事よりGoogleドライブにアップロードされたものをダウンロードしましょう。
ダウンロードしたファイル(2023/09/03時点 Themes Switcher v.2.0.zip)はZIP形式で圧縮されていますので、お好きな場所に解凍してください。
すると、中には以下のフォルダとファイルが含まれているかと思います。
missing-overlay:使用するテーマにこのフォルダ内の画像が含まれていない場合に使用します。
TF1:GarlicOSをTF1/INTスロットにのみSDカードを挿入して運用している場合は、こちらのスクリプトを使用します。
TF2:GarlicOSをTF1/INTスロットとTF2/EXTスロット両方にSDカードを挿入して運用している場合は、こちらのスクリプトを使用します。
README.txt:このスクリプトの使用方法が詳細に記載されたテキストファイルです。
本記事では「GarlicOSをTF1/INTスロットとTF2/EXTスロット両方にSDカードを挿入して運用している」(以下「SDカード2枚運用」と表記)という例で進めていきますので、 TF2 フォルダ内に存在するスクリプトを使用します。
「GarlicOSをTF1/INTスロットにのみSDカードを挿入して運用している」(以下「SDカード1枚運用」と表記)という方は TF2 を TF1 に読み替えてくださいね。
TF2 フォルダ内には更に CFW ROMS SDCARD という3つのフォルダが存在します。
まずは、 SDCARD フォルダ内にある Icons フォルダと Themes フォルダをTF2スロットのルート /mnt/SDCARD 以下にコピーします。
次に、 ROMS フォルダ内にある ICONS フォルダと THEMES フォルダをTF2スロットの Roms フォルダ /mnt/SDCARD/Roms 以下にコピーします。
続きまして、 CFW フォルダ内にある config/coremapping-add.json ファイルを参考に、TF1スロットの /mnt/mmc/CFW/config/coremapping.json ファイルを修正します。ここだけは「SDカード2枚運用」でもTF1スロットに対しての操作となります。
この /mnt/mmc/CFW/config/coremapping.json ファイルというのは、 Roms フォルダ内に配置したフォルダのファイルを何と紐付けするのか設定する為のファイルです。
今回は上記画像のように "THEMES": "/bin/sh" という行と "ICONS": "/bin/sh" という行を追加します。
ここで注意!このファイルに行を追加する際は最終行以外は , (半角カンマ) を最後に入力する必要があります。
おそらく大多数の方は元々の最終行は "APPS": "/bin/sh" なのではないかと思うので…
"APPS": "/bin/sh" を "APPS": "/bin/sh", のように , (半角カンマ) を最後に入力
"THEMES": "/bin/sh", と入力
"ICONS": "/bin/sh" と最後に , を入れずに入力
と設定しましょう。
お疲れ様です!それでは次の項で使用したいテーマを格納していきましょう!
切り替えたいテーマを所定の位置に配置
切り替えたいテーマはTF2スロットに先ほど配置した /mnt/SDCARD/Themes フォルダ内に任意の名前を付けて配置していきます!
それぞれのフォルダ内には、 font lang skin の3つのフォルダが必ず必要です!不足しているとGarlicOSが起動しなくなる等の問題が発生する可能性がありますので、必ず守ってください!
場合によっては、配布されているテーマに上記フォルダのどれかが不足している場合もあるかと思います。その場合はGarlisOSのDefaultテーマよりファイルを拝借して補填しましょう。
また、 skin フォルダ内に notification-overlay.png や guide-overlay.png ファイルが存在しない場合も問題有とのことです。
もし上記ファイルが存在しない場合は、冒頭解凍した missing-overlay フォルダ内に存在するファイルで補填しましょう。
Defaultテーマのファイル一式取得
GarlicOS for Anbernic RG35XXにアクセスすると、Changelogを読み進めた先に
「RG35XX-MicroSDCardImage.7z.001」「RG35XX-MicroSDCardImage.7z.002」
「RG35XX-CopyPasteOnTopOfStock.7z.001」「RG35XX-CopyPasteOnTopOfStock.7z.002」
という4つのダウンロードリンクが配置されています。
この内の「RG35XX-CopyPasteOnTopOfStock.7z.001」「RG35XX-CopyPasteOnTopOfStock.7z.002」をダウンロードして解凍すると、解凍したフォルダから ./roms/CFW とフォルダを辿ることでDefaultテーマの font lang skin を取得できます。
自分は素のテーマも好きなので、 /mnt/SDCARD/Themes/Default というフォルダを作成してそこに突っ込んでいます。
テーマリストの更新、そして…
さて、ここまで準備すると、GarlicOSを起動してゲーム一覧から THEMES を選択すれば
000-Update_Themes_List-000
という選択肢が表示されるはずです。こちらを実行すると…
先ほど配置したテーマが選択肢として表示されます!
あとはお好きなテーマを選択すると…
こんな感じで
気分に合わせて、RG35XX本体の操作のみでテーマが切り替えできます!
MISC以下の置き換えや、retroarchのオーバーレイ画像には非対応
配布されているテーマの中には起動時の表示画像やバッテリー充電表示画像を切り替える為の画像、RetroArchのオーバーレイ画像が一緒に含まれている場合がありますが、このスクリプトではこれらの置き換えには対応していません。
こちらについては、今まで通り手動で対応いただければと思います。
皆様のGarlicOS Lifeがより良いものになれば幸いです!
それでは!
0 notes
RG35XXのADB機能を有効化してUSBデバッグしてみた
RG35XXとPCをUSB接続してデータ転送したかった
最近お気に入りのRG35XXですが、前回導入したGarlicOSにはADB機能を有効化してUSBデバッグする方法が提供されているのです!
ADBとは正式名称「Android Debug Bridge」で、デバイスと通信する為の多用途のコマンドを提供するものです。
Androidはご存じの通りLinuxカーネルがベースとなっています。GarlicOSもLinuxカーネルがベースとなっていまして、Androidのソースをベースにしているのかどうかはわかりませんが何かしら共通する部分があるのだと思われます。違っていたらごめんなさい…。
さて、そんなADB機能が有効となっていると何ができるかというと、「RG35XXとPC(OSはWindows/macOS/Linuxすべてで理論的に可能)をUSB接続することで、PCからRG35XXを操作できる」のです!
普段RG35XXで遊んでいるゲームのセーブデータバックアップや、これから遊びたいゲームのデータをコピーする際にはmicroSDカードをPCにマウントする必要がありました。ということはRG35XXから毎回microSDカードを抜き差ししなければならず、microSDカードの表裏を間違えてイラッとしたりする経験を何度もしてきた訳です���
それが、ADB機能を有効化してPCとUSB接続するだけで、PCからmicroSDカードの中身を直接触ることができるのです!
それでは、ADB機能の有効化から始めていきましょう。
更新履歴
2023/05/25 : GarlicOS 1.4.7で本記事の内容を検証済みです。
自分の環境
Windows 11 Pro 22H2 (OSビルド 22621.1702) 64bit : 2023/05/25時点
ADB Explorer v0.8.23050 : 2023/05/25時点
今回合わせて紹介する「ADB Explorer」はWindows OSのアプリですが、ADBコマンド自体はmacOS/Linuxでもセットアップ可能です。
是非本記事を参考にして試してみてください!
ADB機能を有効化するには…
それではGarlicOSのADB機能を有効化していきましょう。
ADB機能有効化のヒントは、前回解凍したファイルに含まれていた README.txt に記載されています。
. . Enabling ADB support: To enable ADB support, create a file named enableADB in the misc partition. Enabling ADB disables USB gamepad support but allows developers easy access to the device.
miscパーティションに enableADB という名前のファイルを作成すると、ADB機能が有効になるよ~と書いてありますね。
また、ADB機能を有効にするとUSBゲームパットは使用できなくなるよ~と合わせて書いてあります。USBゲームパッドを普段ご利用されている方はご注意くださいね。
(※最後まで読んでいただければ、RG35XX本体のみでGarlicOSのADB機能をON/OFFする方法をご説明しています!)
TF1/INTスロットに挿入しているSDカードをWindowsに接続してください。
GarlicOSをセットアップした際、 BIOS CFW Roms フォルダが存在した H: パーティションの他に、画像のように kernel.dtb や uImage ファイルが存在するパーティションが実はあったのですが、こちらがmiscパーティションです。
今回の場合はドライブレターが E: でした。
miscパーティションが何か解れば、後は enableADB という名前のファイルを作成すれば完了です。
ここで注意が必要なのは、拡張子無しのファイルでないといけないという点です。
エクスプローラの「ファイル名拡張子」を表示するように設定変更した上で…
E: パーティションの直下にテキストドキュメントを新規作成しましょう。
ファイル名拡張子が正しく表示されるようになっていれば、 E:\新規 テキスト ドキュメント.txt という名前のテキストファイルが作成されるはずなので、 E:\enableADB という名前に変更しましょう。
.txt を忘れずに取り除くこと、 enableADB は enable を半角小文字、 ADB を半角大文字とすることを必ず守ってください。
GarlicOSはLinuxカーネルがベースのOSですので、小文字と大文字を厳密に区別します。Windowsは小文字と大文字を区別しないので慣れないと混乱しますね。
尚、 .txt を取り除くと「拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?」と確認されます。気にせず[はい(Y)]ボタンを押下しましょう。
以上、SDカードをRG35XXの「TF1/INT」スロットに挿入して電源ONすればADB機能が有効化された状態でGarlicOSが起動します。
PCにADBコマンドをセットアップしよう
GarlicOSのADB機能が有効化されても、PCの準備が整わないとUSB接続しても何も起きません。
PCからADB機能が有効なGarlicOSを操作する為に、Android Debug Bridge(adb)コマンドをセットアップしましょう。
ADBコマンドは、Android StudioというAndroidアプリ開発用 統合開発環境をセットアップしてダウンロードする他に、Android SDK Platform Toolsパッケージを個別にセットアップすることでも利用可能になります。
日常的にAndroidアプリ開発を行っていない場合は、Android Studioをセットアップすると無駄にPCのディスク容量を圧迫してしまいますので、後者のAndroid SDK Platform Toolsパッケージを個別にセットアップする方法がおすすめです。
SDK Platform-Tools リリースノートより利用中のOSに適したSDK Platform Toolsをダウンロードします。
今回の手順ではWindows OSを使用しますので、SDK Platform-Tools for Windowsをダウンロードします。
利用規約に同意する必要があるので、規約をしっかり読んで「□上記の利用規約を読んだうえで利用規約に同意します。」にチェックを付けた上でダウンロード実行しましょう。
次に、ダウンロードした platform-tools_r##.#.#-windows.zip ファイル( ##.#.# の部分はダウンロードしたバージョンに依存)を解凍すると、 platform-tools フォルダの中に adb.exe 等のファイルが入っていることが確認できるかと思います。
この platform-tools フォルダ毎、任意の場所に移動します。例えば、 C:\Program Files フォルダ以下に移動しましょう。
C:\Program Files\platform-tools のようにフォルダが移動していれば成功です。
その後、システム環境変数の Path に C:\Program Files\platform-tools を追加します。
これで準備完了です!
PCからADBコマンドを使ってRG35XXを操作してみよう
それではRG35XXとPCをUSBケーブルで接続して、ADBコマンドを実際に使ってみましょう!
RG35XXは電源ON状態でUSB接続しても、OFF状態でUSB接続した後に電源ONしてもどちらでも大丈夫なようです。
USB接続できたら、コマンドプロンプトで下記を実行してみましょう。
REM ADBコマンドがちゃんとセットアップできているか確認します。 $ adb version Android Debug Bridge version #.#.## Version ##.#.#-####### Installed as C:\Program Files\platform-tools\adb.exe
上記のように Installed as ... 等と表示されていればセットアップ成功です。
もし上手く表示されないようであれば、システム環境変数の Path に正しく追加できているかどうか確認してみてください。
若しくは、 "C:\Program Files\platform-tools\adb.exe" version とフルパス指定で実行しても動作確認できますが、後述するADB Explorerは利用できないかと思います。
さて、引き続きコマンドプロンプトで下記を実行してみましょう。
REM 接続している端末を一覧表示します。 $ adb devices List of devices attached 0123456789ABCDEF device
(RG35XX以外に端末をUSB接続していない前提ですが、)上記のように出力された場合は
0123456789ABCDEF がシリアル番号で、 device がデバイスの接続状態(adbサーバに接続されている状態)です。
GarlicOSのADB機能が正しく有効化されていないと、そもそも何も一覧表示されません。その場合は enableADB ファイルに拡張子が残っていたり、大文字小文字や綴りを誤っていないか確認してください。
ちなみに、 0123456789ABCDEF というシリアル番号はGarlicOS上の /sys/class/android_usb/android0/iSerial ファイルに記述されている内容のようです。つまり、シリアル番号は皆様等しく 0123456789ABCDEF だと思われます。
ということは2台のRG35XXにGarlicOSをセットアップして同時にUSB接続するとシリアル番号が重複する…?
気になるのですが私の環境では検証しようが無いので、もし2台RG35XXをお持ちの方いらっしゃれば検証してみてください。
それでは、対話型シェルを起動してGarlicOSを操作してみましょう!
REM 対話型シェルを起動します。 $ adb -s 0123456789ABCDEF shell REM `root@xxxxxx:/ #` 等と表示されれば対話型シェル起動成功です! REM 試しに `ls` コマンドでディレクトリ内容を一覧表示してみます。 # ls bin boot cfw charger d data default.prop dev etc fstab.gs705a home init init.extra_modules.rc init.rc init.wifi.rc lib loadapp.sh misc mnt proc res root sbin sys system tmp ueventd.rc usbdbg.sh usbmond.sh usbtest.sh usr var REM 上記のような出力が確認できれば正しくGarlicOSを操作できています! REM 対話型シェルを終了する場合は `exit` コマンドを実行します。 # exit
GarlicOSのディレクトリ内容を一覧表示するだけの簡単な操作でしたが、念願だったRG35XXとPCをUSB接続して操作するという目的を達成しました!
ここまで確認できれば、例えばコマンドプロンプトで下記を実行すると「TF2/EXTスロットに挿入しているSDカード上のSavesフォルダをPCにコピーする」というバックアップ処理の第一歩を踏み出せます。
REM PC上の空のフォルダである `C:\Temp` にセーブデータをコピーしてみます。 $ cd C:\Temp REM 空のフォルダなので、 `dir /B` コマンドを実行しても空白行が出力されるだけです。 $ dir /B REM それでは、TF2/EXTスロットに挿入しているSDカード上のSavesフォルダをコピーしてみます。 $ adb pull /mnt/SDCARD/Saves . /mnt/SDCARD/Saves/: # files pulled, 0 skipped. #.# MB/s (###### bytes in #.###s) REM Savesフォルダがコピーされて、 `dir /B` コマンドの実行結果が変わりました! $ dir /B Saves
もし「TF1/INTスロットに挿入しているSDカード上のSavesフォルダ」をコピーする場合は adb pull /mnt/mmc/Saves . となります。
/mnt/mmc 以下がTF1/INTスロットに挿入しているSDカードの Roms フォルダ等が存在した場所、 mnt/SDCARD 以下がTF2/EXTスロットに挿入しているSDカードの Roms フォルダ等が存在した場所と対応しています。
GUIで簡単にデータ転送できる「ADB Explorer」
ということで、ADBコマンドを使用してRG35XXを操作することができるようになりました。が、普段からCUI操作に慣れていないと取っ付きにくい…ということで、GUIで簡単にデータ転送できる「ADB Explorer」を紹介します。このアプリはWindows OS専用ですので、その点ご了承ください。
ADB ExplorerはMicrosoft Storeからインストールすることが可能です。ソースコードも公開されていて、おそらく怪しくないアプリですが、ご心配な方は使用をお控えください。
ADB Explorerを起動すると、画面左端の「Devices」に「ToyCloud」という名称の端末が見つかると思います。これがRG35XXです。
「ToyCloud」をマウスでクリックし、表示される[Browse]ボタンを押下すると…
このようにGarlicOS上のディレクトリが参照できます。[Root]と表示されている箇所をマウスでダブルクリックすると、
エクスプローラのようなUIでファイルにアクセスすることができます!
例えば先ほどADBコマンドでTF2/EXTスロットに挿入しているSDカード上のSavesフォルダをコピーしましたが、ADB Explorerを使用して /mnt/SDCARD フォルダまで移動し、 Saves フォルダ上でマウスを右クリックして表示されるメニューより[Pull]を選択することでPC上の任意の場所にコピーすることができます。
ここまでは pull という操作でRG35XXからファイルをコピーする例のみ紹介してい���すが、RG35XXにファイルをコピーする push という操作も実行することが可能なので、例えば『テーマ画像をPC上で作成してコマンド操作 又は GUI操作でRG35XXに画像をコピー』みたいなことが気軽に実施できます!
ADB機能をON/OFFするスクリプトを書いてみよう
ADB機能は便利なのですが、あくまでも「デバッグ用途」であるという点と、ADB機能を有効にすると「USBゲームパットは使用できない」という点には注意が必要です。
特に後者のUSBゲームパットが使用できないという点については、多用される方にとっては致命的かと思います。
ということで、RG35XX本体のみでGarlicOSのADB機能をON/OFFするシェルスクリプトを作成してみましょう!
実はGarlicOSは ./Roms/APPS フォルダ以下にシェルスクリプトを配置すると、ゲーム一覧から任意のタイミングでスクリプトを実行することができるんです。
これは、 ./CFW/config/coremapping.json ファイルの中で "APPS": "/bin/sh" とデフォルトで紐付け設定されているので実現可能となっています。
例えば coremapping.json に "SCRIPTS": "/bin/sh" と紐付けを追加すれば、 ./Roms/SCRIPTS フォルダ以下にシェルスクリプトを配置することも可能かと思います。
今回作成するのはどのようなシェルスクリプトかというと、ADB機能を有効化する ./Roms/APPS/enable_adb.sh と、ADB機能を無効化する ./Roms/APPS/disable_adb.sh という2つのファイルを作成します。
この2つのファイルはPC上で作成して、先ほどのADBコマンドやADB Explorerで ./Roms/APPS フォルダ以下にコピーすると楽々です。
スクリプトファイルは文字コードをUTF-8、改行コードはLFとしてください。
まず、 ./Roms/APPS/enable_adb.sh の内容は以下の通りです。
#!/bin/sh mount -o rw,remount /misc touch /misc/enableADB mount -o ro,remount /misc sync
本記事冒頭では手動で enableADB ファイルを作成しましたが、スクリプトでは touch /misc/enableADB で空の enableADB ファイルを touch コマンドで作成しています。
ポイントは mount -o rw,remount /misc です。 /misc フォルダ以下はデフォルトで読み込み専用となっており、明示的に読み書きできるよう再マウントしなければなりません。
enableADB ファイルの作成後は、念の為 mount -o ro,remount /misc として改めて読み込み専用として再マウントします。
最後に、 sync コマンドにてキャッシュ上に存在する未処理データをSDカードに書き込み確定させます。
そして、 ./Roms/APPS/disable_adb.sh の内容は以下の通りです。
#!/bin/sh mount -o rw,remount /misc rm /misc/enableADB mount -o ro,remount /misc sync
変わった点は rm /misc/enableADB で、 enableADB ファイルを rm コマンドで削除しています。
これらのスクリプトファイルを ./Roms/APPS フォルダ以下にコピーしたら、ゲーム一覧から「enable_adb」又は「disable_adb」を実行し、画面暗転して元に戻った時点で本体右横のResetボタンを押下してGarlicOSを再起動してください。
GarlicOSの起動と同時にADB機能がON/OFFされるはずです。
色々と夢が広がるADB機能
以上でざっくりADB機能の解説でした。
海外の方のGitHubリポジトリを参照すると、ADB機能を使用してGarlicOSのアップデートを自動化する例もあるようです。
PCとUSB接続してバッチ処理を実行するだけでセーブデータバックアップ!みたいなことももちろん実現可能なので、興味がある方はadbのドキュメントに目を通してみてください!
それでは!
1 note
·
View note