HN 日本語サマリー

← 一覧へ戻る
プログラミング

Show HN: 3台のRP2350Bを同期させてコンソールを構築(1ラインあたり3kスプライトピクセル)

Show HN: Three genlocked RP2350B make a console – 3k sprite pixels per line) (papydeck.eu)

10 pointsby papyDoctor4 コメント

要約

このプロジェクトは、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、同じアート、同じエンジン — それがシミュレーターの目的であり、それを公平に示す唯一の方法は並べて表示することです。サウンドはオンです。

マシン

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とセキュアエレメントが追加される予定です)。

ここにあるものは販売されておらず、リリース日もありません。以下のページは正直なバージョンです: 測定された数値、決定とその理由、そしてまだ未解決の部分です。