Mプラットフォーム

deki-tactility-integration

Deki のゲームを、デバイス全体を占有するファームウェアとしてではなく、ESP32 ボード向けのオペレーティングシステム Tactility の中のアプリとして実行します。

状態
experimental
依存先
deki-input, Tactility SDK 0.8

Tactility は ESP32 ボード向けのオペレーティングシステムです。実行時にアプリを読み込むため、このパッケージでビルドしたゲームは、すでに Tactility が動いているデバイスに Wi-Fi、SD カード、または App Hub 経由でインストールでき、ほかのアプリと同じようにホーム画面から開けます。ファームウェアを書き込み直す必要はなく、デバイスのほかの機能もそのまま残ります。

このパッケージは、エディターのビルドメニューに 2 つのプラットフォームを追加します。Tactility デバイス用のアプリと、Tactility シミュレーターです。どちらかを選んでビルドすると、エディターがアセットを内包したアプリを生成します。

提供するもの

Deki のプロバイダー実装
ディスプレイTactility のパネルドライバー(直接描画)
入力Tactility のタッチドライバーとキーボードドライバー
ファイルアプリ自身のアセットディレクトリと、保存データ用のフォルダー

2 つのブートコンポーネント TactilityDisplaySetup と TactilityInputSetup がこれらを立ち上げるので、ほかのプラットフォーム向けに書いたゲームも変更なしで動作します。T-Deck のような物理キーボードは、通常のキー入力として届きます。

パネルへ直接描画

ほとんどの Tactility アプリは LVGL で描画します。Deki のゲームはすでに完成したフレームを持っているため、このパッケージはゲームが開いている間は LVGL を使わず、フレームを自分でパネルへ送ります。その際に内部 RAM の小さな帯状のバッファーを経由し、パネルが必要とする場合はそこでカラーフォーマットの変換も行います。PSRAM から直接フレームを読み取れるパネルでは、このコピーは省略されます。

動作環境

ESP32-S3 と ESP32-P4。 アプリのコードは開いたときに RAM に読み込まれますが、PSRAM 上のコードを実行できるのはこの 2 つのチップだけです。これはチップの制限であり、Tactility の制限ではありません。

状況

実験的です。シミュレーター向けのビルドは最初から最後まで動作します。エディターがアプリをビルドし、x86-64 Linux 上で動いている Tactility シミュレーターにインストールすると、Apps メニューに表示されます。デバイス向けのビルドは次のステップです。同じソースを使うので、残っているのはビルドそのものだけです。

ソースと README は GitHub にあり、Apache 2.0 ライセンスで公開されています。Tactility の SDK は、どのライセンスのアプリも認めています。