![pyxel_rd.png](https://cdn-ak.f.st-hatena.com/images/fotolife/m/masatora_bd5/20241101/20241101091446.png) ## はじめに MinUI上でPyxelを動かす方法について、簡潔に記します。 動作イメージ: https://x.com/i/status/1849144025343049838 ### MinUIについて MinUIは、携帯ゲーム機向けの軽量OSで、レトロゲームのエミュレーションに特化しています。起動やゲーム再開が非常に速く、待ち時間なくゲームプレイに集中できるよう工夫されています。 - 軽量で高速 - レトロゲームエミュレーションに特化 - シンプルで直感的なUI - 起動と再開が速く快適なゲームプレイ体験 ただし、対象ゲーム機は限られており、エミュレータの数は少なめ。ホーム画面などのカスタマイズはほとんどできません。 > [!smile] しかしながら、ゲームプレイの快適さはこの分野では群を抜いており、個人的にもっとも愛好するOSです。 公式ページ: [GitHub - shauninman/MinUI: MinUI is a focused, custom launcher and libretro frontend for a variety of retro handhelds.](https://github.com/shauninman/MinUI) ### Pyxelについて Pyxelは、レトロなピクセルアートとゲーム開発に特化した軽量プログラミング環境で、幅広いユーザーに支持されています。Pythonで2Dゲームを作成できます。 - Pythonベースの開発環境 - 内蔵ツールで即時開発可能 - クロスプラットフォーム対応 - Webブラウザでの実行 2018年7月30日に初リリースされて以来、GitHubで4000以上のスターを獲得し、MonoGameやPlayCanvasなどの長年確立されたゲームエンジンと肩を並べる人気を誇っています。 公式ページ:[GitHub - kitao/pyxel: A retro game engine for Python](https://github.com/kitao/pyxel) 遊べるゲームの中でも、『Finardry』(無料版)と『Dungeon Antiqua』(有料版)はとてもおもしろく、Pyxelのキラーアプリといってよい存在です。 公式ページ:[GitHub - suuhiromofufactory/finardry](https://github.com/shiromofufactory/finardry) 公式ページ:[Dungeon Antiqua](https://dungeon-antiqua.com) ### 携帯ゲーム機であそぶPyxelゲーム 携帯ゲーム機用のOSでは、基本的にはPyxelが動かないケースが多いです。そのなかでも、plumOSシリーズは作者のご尽力により、Pyxelが動きます。plumOS-RNですと、Dungeon Antiquaも動かせます。 公式ページ:[GitHub - game-de-it/plumOS-RN: ROCKNIX FORK](https://github.com/game-de-it/plumOS-RN) 携帯ゲーム機でPyxelのゲームを遊ぶには、plumOS-RNがいちばんのおすすめです。しかし個人的に愛好している、MinUIでもPyxelを動かしたいのです。 ## 手順概要 概要を記します。使っている携帯ゲーム機はRGB30です。 - plumOS-RNからPython-3.11.7 ディレクトリを入手 - MOSS(MinUIのスロット1)にPython-3.11.7をコピー - MinUIのスロット2にpakを作成 RGB30: [POWKIDDY RGB30 RK3566 Handheld Game Console Built-in WIFI](https://powkiddy.com/ja-jp/products/pre-sale-powkiddy-rgb30-rk3566-handheld-game-console-built-in-wifi) pakのドキュメント:[MinUI/PAKS.md](https://github.com/shauninman/MinUI/blob/6f715c4184069cd6cec98ac2aec92bc55da67965/PAKS.md) ## 手順詳細 ### plumOS-RNからPython-3.11.7 入手 plumOSの `/storage/Python-3.11.7` を入手します。ただし、plumOS-RNのSDカードは、(少なくともmacOSでは)ふつうには読めません。SAMBAでマウントしても見られないところにあります。 私は、File ExplorerでROMカードにコピーしました。 ### MOSSにPython-3.11.7をコピー MOSSのSDカードも、(少なくともmacOSでは)ふつうには読めません。いったんMinUIのROMカードにディレクトリをコピーし、Tools > Filesを利用し、 `/storage/Python-3.11.7` にコピーします ![img|300](https://i.gyazo.com/11ad02442d94c60e8759468b14271b2e.jpg) ### MinUIのスロット2にpakを作成 ROMカードに、下記ディレクトリを作成します。 /Emus/rgb30/PYXEL.pak /Roms/Pyxel (PYXEL) > [!tip] rgb30 のところは、ご自身のゲーム機に置き換えてください 続けて、上記 `PYXEL.pak` に下記ファイルを作成します。 /Emus/rgb30/PYXEL.pak/missing.png /Emus/rgb30/PYXEL.pak/launch.sh **missing.png** 自家製pngでよければ下記リンクをダウンロードして名前を変えてご利用ください。使用フォントがわからなくてテキトーです。 [私家版missing.png](https://cdn-ak.f.st-hatena.com/images/fotolife/m/masatora_bd5/20241101/20241101085448.png) **launch.sh** ```sh #!/bin/sh ondemand DIR=$(dirname "$0") EMU_TAG=$(basename "$(dirname "$0")" .pak) PYXEL_DIR="/storage/Python-3.11.7/bin" PYXEL_BIN="/storage/Python-3.11.7/bin/pyxel" if [ ! -d "$PYXEL_DIR" ]; then show.elf "$DIR/missing.png" 4 exit fi export SDL_GAMECONTROLLERCONFIG="19009b4d4b4800000111000000010000,retrogame_joypad,platform:Linux,x:b3,a:b0,b:b1,y:b2,back:b8,start:b9,dpleft:b15,dpdown:b14,dpright:b16,dpup:b13,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a2,righty:a3," ROM="${1}" EXTENSION=`echo "${ROM}" | awk -F. '{print $NF}'` ROMNAME=`basename "${ROM}" | awk -F. '{print $1}'` if [ "${EXTENSION}" = "py" ]; then "${PYXEL_BIN}" run "${ROM}" &> "$LOGS_PATH/$EMU_TAG.txt" elif [ "${EXTENSION}" = "pyxapp" ]; then "${PYXEL_BIN}" play "${ROM}" &> "$LOGS_PATH/$EMU_TAG.txt" else exit 0 fi ``` ### 動作イメージ ![img](https://x.com/i/status/1849144025343049838) ## おわりに ミニマリスティックなMinUI上でPyxelを動かすのは少し手間がかかりますが、その価値は十分にあります。携帯ゲーム機でのレトロゲーム体験を楽しむ方々に、少しでも参考になれば幸いです。 ### リンク - MinUI [GitHub - shauninman/MinUI: A focused, custom launcher and libretro frontend](https://github.com/shauninman/MinUI) - MinUI pak [MinUI/PAKS.md](https://github.com/shauninman/MinUI/blob/6f715c4184069cd6cec98ac2aec92bc55da67965/PAKS.md) - Pyxel [GitHub - kitao/pyxel: A retro game engine for Python](https://github.com/kitao/pyxel) - Finardry [GitHub - suuhiromofufactory/finardry](https://github.com/shiromofufactory/finardry) - Dungeon Antiqua [Dungeon Antiqua](https://dungeon-antiqua.com) - RGB30 [POWKIDDY RGB30 RK3566 Handheld Game Console Built-in WIFI](https://powkiddy.com/ja-jp/products/pre-sale-powkiddy-rgb30-rk3566-handheld-game-console-built-in-wifi)