Show HN: 3台のRP2350Bを同期させてコンソールを構築(1ラインあたり3kスプライトピクセル)
Show HN: Three genlocked RP2350B make a console – 3k sprite pixels per line) (papydeck.eu)
要約
このプロジェクトは、3台のRP2350Bチップを同期させて、1ラインあたり3000ピクセルのスプライト描画能力を持つカスタムコンソールを構築したことを紹介しています。Luaで記述されたゲームは、サンドボックス化されたVM上で動作し、エラー発生時もコンソールが停止しない設計です。開発環境は不要で、ゲームフォルダをSDカードにコピーするだけでプレイできます。ハードウェアとファームウェアはオープンソース化される予定です。
全文翻訳
開けるコンソール
V1 アルファ — 2026年8月からベンチで稼働中
アーケードマシンのようにプレイでき、テキストエディタのように開くことができます。各ゲームはLuaスクリプトであり、他人が書いたものも含め、読み取り、変更、書き直しが可能です。
[画像: papyDeckで動作するシューティングゲーム: 星空を背景にした宇宙船、敵、スクロールする星雲]
shmup、基板上で実行中
数字を変更して、実行を押す
ゲーム全体: ステージ、歩いたりジャンプしたりするキャラクター、そして衝突判定。上部にある3つの定数は、最初に壊す価値のあるものです — JUMP を -8 に設定すれば、キャラクターは何でも飛び越えられます。GRAVITY を phy.PX // 8 にすれば、キャラクターは羽のようにゆっくりと降下します。
プログラムがしないことに注目してください。景色の描画は一切行いません。ステージはタイル背景であり、ミキサーチップが無料でスクロールさせるため、フレーム全体にかかるコストは1つのスプライト、つまりヒーローだけです。このコンソールはこの予算を中心に構築されており、_draw が2行しかない理由もそこにあります。
これはボードと同じCコア上で、このページ内で動作します — アカウントは不要で、何もどこかに送信されることはありません。間違いがあれば、行番号付きのエラーが表示されるだけで、コンソールが停止することはありません。
矢印で移動、スペースでジャンプ。
[画像: プラットフォーマーが実行中: 青い空の下、草の生えた岩棚にいるキャラクター]
さらに進みたいですか?
上記のデモは1つのゲーム、1つのファイルです。フルシミュレーターには、人々が公開したゲームと、ゲームを1つの機能ずつ構築していくチュートリアルのセット(タイル、レイヤー、風景、オブジェクト、サウンド)が含まれています。
公開されたものはすべてクローンできます。自分のコピー、アート、レベルを含めて取得し、好きなように変更できます。ソースをプレイしたり読んだりするのに、特別なものは何も必要ありません。自分のコピーを保持し、独自のゲームを公開するためには、アカウントが必要です。
独自のゲームを作成する
コンソール自体でLuaを実行し、サンドボックス化されたVMを使用し、マシンを停止させるのではなく行番号を表示するエラーが発生します。ツールチェーン、クロスコンパイラ、ケーブルは不要です。コードを書き、フォルダをカードにコピーして、プレイします。
他の人が書いたものをプレイする
ゲームはプレーンなフォルダです。コンソールは公開されているゲームをリストし、Wi-Fi経由でカードに1つ取得し、その後すぐにソースを開いて、トリックがどのように行われたかを正確に確認できます。
ライセンスでオープン、まもなく公開
ハードウェアはCERN-OHL-P、ファームウェアはMITライセンスです。ライセンスは選択されており、その通知はすでにツリーに含まれています。V1ボードがリリースされるまでリポジトリは非公開ですが、公開されれば、回路図、基板、ファームウェアのすべての行が、読み取り、フォーク、製造できるようになります。
動作を見る
2つのゲーム、それぞれ2回録画されています。ブラウザシミュレーター内、そしてHDMI経由でボード上で。同じLua、同じアート、同じエンジン — それがシミュレーターの目的であり、それを公平に示す唯一の方法は並べて表示することです。サウンドはオンです。
- シミュレーターで ▶ shmup youtube.com ↗
- シミュレーターで ▶ platformer youtube.com ↗
- コンソールで ▶ shmup youtube.com ↗
- コンソールで ▶ platformer youtube.com ↗
マシン
60ミリメートル四方、そして上記のゲームがティアリングなしで毎秒60フレームを維持できる理由です。これは、仕組みを知りたい人のための部分です。
- 640×480、60 HzでHDMI出力
- 3,000 スプライトピクセル/スキャンライン
- 6 コア Cortex-M33
- 60 mm 四方ボード
[画像: papyDeckボード、60 x 60ミリメートル]
なぜ3つのチップなのか
1スキャンラインは31.75 µs(252 MHzのコア1つあたり8,000サイクル)かかります。3,000スプライトピクセルのブライティングには6,000サイクルが必要で、その後に背景の取得、合成、出力が行われます。そのため、スプライトには交互にラインを処理する2つのコアを持つチップが割り当てられ、背景とミキシングには2つ目のチップが、ゲームには3つ目のチップが割り当てられます。各チップは独自のSRAMとNORフラッシュを持ち、これが実際の帯域幅の制約となります。
本格的なアーケードの心臓部
3つのRP2350Bが1つのオシレータを共有し、6コア、ボード上で測定されたスキャンラインあたり3,000の不透明なスプライトピクセル(Neo Geoの約2倍)を備え、プレーンなHDMI経由で、構造上ティアリングなしのスクロールタイル背景を備えています。
プロジェクトの現状
V1アルファボードは2026年8月26日に到着し、それ以来ベンチで稼働しています。現在動作中の機能: 3つのチップからのHDMI出力、スプライトとスクロールタイル背景、micro-SDカードからのゲームロード、Bluetoothゲームパッド、Wi-Fi、コンソール自身のメニューから直接カードにダウンロードされる公開ゲーム、ヘッドフォンジャックからの4チャンネル音楽とサンプリングエフェクト、そしてコンソールが自身の4つのファームウェアを無線でアップデートする機能。ブラウザシミュレーターはボードと同じコアで動作し、読み取りとクローンが可能なチュートリアルを備えています。まだ未実装なのは: HDMIオーディオ、検証済みリーダーボード、そしてV1ボード自体(電圧監視ICとセキュアエレメントが追加される予定です)。
ここにあるものは販売されておらず、リリース日もありません。以下のページは正直なバージョンです: 測定された数値、決定とその理由、そしてまだ未解決の部分です。
-
ソフトウェアアーキテクチャ、コア間のプロトコル、ポートに関する注記。
-
ボード、その設計上の決定、3Dモデル。