beep8-sdk

BEEP-8 Logo

Intro Demo

BEEP-8 SDK

English 日本語 繁體中文(廣東話)

BEEP-8 は C/C++ アプリケーション開発向けに設計された仮想レトロゲームコンソールです。ARM v4 CPU をエミュレートし、固定 4 MHz で動作し、縦型スマートフォンディスプレイに最適化されています。SDK は二層構造を採用しており、低レベルでは最小限の API を通じてハードウェア(H/W)に直接アクセスできます。高レベルでは開発者が自由に構造、フレームワーク、ライブラリを選択してアプリケーションを構築できます。PICO-8 ライクの C/C++ ライブラリも提供されており、迅速で馴染みやすい開発をサポートしますが、使用は完全に任意です。

CPU は 32 ビットプロセッサですが、VDP(ビデオディスプレイプロセッサ)および APU(オーディオプロセッシングユニット)はよりシンプルな 8 ビット時代の仮想デバイスをモデルにしており、モダンなプログラマビリティと懐かしいハードウェア制約のバランスを実現しています。

BEEP-8 はブラウザベースの設計と WebGL/GPU シェーダ最適化により、PCスマートフォン(iPhone、Android)iPad などのタブレットデバイスで保証された 60 fps のスムーズな動作を実現します。

また、iPhone 上でも自作の BEEP-8 アプリを Apple の App Store 審査を経ることなく自由にアップロード・共有できるため、完全に Web ベースのプラットフォームとして動作します。
全てのアプリは公式ポータル https://beep8.org を通じて即時に共有でき、ファイルをアップロードするだけでグローバル配信が簡単に行えます。

さらに、8 ビット風タッチ対応ゲームを開発でき、レトロ体験とモダンなタッチ操作を組み合わせた、カジュアルかつモバイルフレンドリーなゲームプレイが可能です。

BEEP-8 システム構成図

BEEP-8 Block Diagram

Quick Start

対応プラットフォーム

BEEP-8 SDK はクロスプラットフォーム対応で、以下の環境をサポートしています:

ほとんどのプラットフォームでは外部ツールチェーンのインストールは不要です。SDK には全対応プラットフォーム向けの事前ビルド済みコンパイラが含まれています。


ダウンロード

以下のいずれかの方法で SDK を入手できます:

ディレクトリ構成

SDK リポジトリの構成は以下の通りです:

├── README.md             # このファイル
├── doc/                  # ドキュメント
├── gnuarm/               # 各プラットフォーム向けに事前ビルドされた GNU ARM GCC ツールチェーン
│   ├── Windows_NT/
│   ├── linux/
│   └── osx/
├── sdk/                  # メイン SDK コンポーネント
│   ├── app/              # サンプル BEEP-8 アプリケーションとビルドターゲット
│   ├── b8helper/         # BEEP-8 アプリ開発を支援するオプションのユーティリティライブラリ
│   └── b8lib/            # BEEP-8 SDK のコア実装
├── setenv.bat            # Windows で make を PATH に追加するスクリプト
└── tool/                 # 開発ツール
    ├── busybox/          # Windows で UNIX ライクなコマンドをサポートする BusyBox
    ├── ccache/           # ビルドの再実行を高速化するコンパイラキャッシュ
    ├── genb8rom/         # BEEP-8 ROM ファイルシステムイメージを生成するツール
    ├── geninstcard/      # BEEP-8 ROM 用サムネイル画像を生成するツール
    ├── make/             # Windows 対応の make.exe(setenv.bat でパス設定)
    ├── png2c/            # アセット埋め込み用に PNG を C 配列に変換するオプションツール
    ├── relb8rom/         # リリース用 ROM をパッケージ化するツール(配布に必須)
    └── scripts/          # アプリ開発タスクを自動化するヘルパースクリプト

サンプルアプリのビルド方法

sdk/
└─ app/
   ├── hello/          # Hello world サンプル
   ├── pico8_example/  # PICO-8 ライクライブラリ サンプル
   ├── bgprint/        # 背景レイヤーにテキストを表示するサンプル
   ├── helper_nesctrl/ # NES ライクコントローラ サンプル
   ├── ppu_example/    # PPU 直接制御サンプル
   ├── touch/          # タッチパネル状態取得サンプル
   ├── Makefile        # make が好みのユーザー向け Makefile
   ├── build_all.sh    # このディレクトリ以下の全サンプルをビルドするスクリプト
   ├── makefile.app    # make ユーザー向け共通 Makefile インクルード
   ├── run_common.bat  # Windows/DOS プロンプト用ビルドバッチ
   └── run_common.sh   # macOS/Linux 用ビルドシェルスクリプト

各サンプルは単一のスクリプトでビルド、ROM 生成、起動が行えます。make は必要に応じてご使用ください。
たとえば pico8_example サンプルをビルドするには:

cd sdk/app/pico8_example
./run.sh

このコマンドはソースコードとグラフィックデータをコンパイルし、.b8 ROM を生成し、そのままデフォルトの Web ブラウザで起動します。

run

./run.sh が正常終了すると、以下のようなブラウザウィンドウが表示されます:

run on iPhone

上級者(Make/CI)向けの詳細な Make ベースの手順は MAKEFILE.md を参照してください。

API ドキュメント

詳細な API 情報については、sdk/b8lib/include/ ディレクトリ内のヘッダーファイルを参照してください。主なヘッダーは以下のとおりです:

API Reference BEEP-8 SDK
BEEP-8 SDK は BEEP-8 アプリ開発に必要な コアシステムライブラリ です。
CPU、PPU、APU、タイマー、RTOS(b8OS)などの仮想ハードウェアへ直接アクセスできる機能を提供します。
ベアメタルスタイル開発に必要なすべての基本関数がここに定義されています。

API Reference BEEP-8 HELPER LIB
BEEP-8 HELPER はアプリ開発を加速する オプションのユーティリティライブラリ です。
グラフィクスヘルパー、数学関数、簡易入力マネージャーなど、ハードウェアレベルの複雑性を抽象化するモジュールを含んでいます。

API Reference PICO-8 LIKE LIB
このライブラリは C/C++ で書かれた PICO-8 スタイル互換ライブラリ です。
オリジナルの PICO-8 API を可能な限り忠実に再現しつつ、C/C++ の文法に適応させています。
PICO-8 ユーザーにとって馴染みのある開発体験を提供しつつ、ネイティブコードの性能と柔軟性を活かせることが目的です。
基礎的なハードウェア知識がなくても、このライブラリを使って完全なゲームを構築できます。

BEEP-8アプリのリリース方法

RELEASE.ja.md

ライセンス

このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE ファイルを参照してください。

お問い合わせ

BEEP-8 でのコーディングをお楽しみください!