4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MinUIでPyxelを動かす

Posted at

pyxel_rd.png

はじめに

MinUI上でPyxelを動かす方法について、簡潔に記します。

動作イメージ: https://x.com/i/status/1849144025343049838

MinUIについて

MinUIは、携帯ゲーム機向けの軽量OSで、レトロゲームのエミュレーションに特化しています。起動やゲーム再開が非常に速く、待ち時間なくゲームプレイに集中できるよう工夫されています。

  • 軽量で高速
  • レトロゲームエミュレーションに特化
  • シンプルで直感的なUI
  • 起動と再開が速く快適なゲームプレイ体験

ただし、対象ゲーム機は限られており、エミュレータの数は少なめ。ホーム画面などのカスタマイズはほとんどできません。

しかしながら、ゲームプレイの快適さはこの分野では群を抜いており、個人的にもっとも愛好するOSです。

公式ページ: GitHub - shauninman/MinUI: MinUI is a focused, custom launcher and libretro frontend for a variety of retro handhelds.

Pyxelについて

Pyxelは、レトロなピクセルアートとゲーム開発に特化した軽量プログラミング環境で、幅広いユーザーに支持されています。Pythonで2Dゲームを作成できます。

  • Pythonベースの開発環境
  • 内蔵ツールで即時開発可能
  • クロスプラットフォーム対応
  • Webブラウザでの実行

2018年7月30日に初リリースされて以来、GitHubで4000以上のスターを獲得し、MonoGameやPlayCanvasなどの長年確立されたゲームエンジンと肩を並べる人気を誇っています。

公式ページ:GitHub - kitao/pyxel: A retro game engine for Python

遊べるゲームの中でも、『Finardry』(無料版)と『Dungeon Antiqua』(有料版)はとてもおもしろく、Pyxelのキラーアプリといってよい存在です。

公式ページ:GitHub - suuhiromofufactory/finardry
公式ページ:Dungeon Antiqua

携帯ゲーム機であそぶPyxelゲーム

携帯ゲーム機用のOSでは、基本的にはPyxelが動かないケースが多いです。そのなかでも、plumOSシリーズは作者のご尽力により、Pyxelが動きます。plumOS-RNですと、Dungeon Antiquaも動かせます。

公式ページ:GitHub - game-de-it/plumOS-RN: ROCKNIX FORK

携帯ゲーム機で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
pakのドキュメント:MinUI/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

MinUIのスロット2にpakを作成

ROMカードに、下記ディレクトリを作成します。

/Emus/rgb30/PYXEL.pak
/Roms/Pyxel (PYXEL)

rgb30 のところは、ご自身のゲーム機に置き換えてください

続けて、上記 PYXEL.pak に下記ファイルを作成します。

/Emus/rgb30/PYXEL.pak/missing.png
/Emus/rgb30/PYXEL.pak/launch.sh

missing.png

自家製pngでよければ下記リンクをダウンロードして名前を変えてご利用ください。使用フォントがわからなくてテキトーです。

私家版missing.png

launch.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

動作イメージ

おわりに

ミニマリスティックなMinUI上でPyxelを動かすのは少し手間がかかりますが、その価値は十分にあります。携帯ゲーム機でのレトロゲーム体験を楽しむ方々に、少しでも参考になれば幸いです。

リンク

この記事の最新メンテ版は📗241101_MinUIでPyxelを動かす - MXT Forestにあります。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?