オープンソースプロジェクト
gbdev/rgbds avatar
gbdev/rgbds

Game Boy開発を四つの道具に分けるRGBDS

Rednex ゲームボーイ開発システム - 任天堂ゲームボーイおよびゲームボーイカラー用のアセンブリツールチェーン。

スター 1,647フォーク 193C++MIT

ひと目でわかる

これは何?
RGBASM、RGBLINK、RGBFIX、RGBGFXから成るGame Boy向けアセンブリツールチェーンの役割とビルド方法を確認する。
誰に向いている?
Game BoyまたはGame Boy Color向けにアセンブリでROMを作る人には、必要な処理を小さなコマンド群で揃えられる点が合います。導入前に同じソースをmakeとCMakeでビルドし、生成物のヘッダ、チェックサム、画像変換結果を手元のエミュレータで照合してください。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に C++ です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

RGBDSが担当する範囲

RGBDSはNintendo Game BoyとGame Boy Color向けのfree assembler/linker packageです。READMEは一つの統合IDEとしてではなく、ROMを組み立てる工程を四つの実行ファイルに分けて説明しています。RGBASMがアセンブル、RGBLINKがリンク、RGBFIXがROMのチェックサムとヘッダを修正し、RGBGFXがPNGをGame Boy用グラフィックスへ変換します。この分担は、ソースからROMまでのどこで問題が起きたかを切り分けやすくする一方、プロジェクト側で各コマンドの呼び出し順を管理する必要があります。

ROM生成で見る四つの境界

アセンブリソースはRGBASMを通り、複数のオブジェクトやセクションをRGBLINKが最終ROMへまとめます。リンク後のROMにはRGBFIXを適用し、ヘッダとチェックサムを整えます。画像を使う場合は、元のPNGがRGBGFXの入力になります。READMEは各ツールの詳細仕様をここで列挙していないため、実際のビルドではオンラインマニュアルの対応ページを参照して、バンク配置、出力形式、対象ハードウェアの条件を確認するのが妥当です。単に四つのバイナリが入っただけで互換性が保証されるわけではありません。

makeとCMakeの二つのビルド経路

ソースからはmakeまたはCMakeを使えます。最小手順はmake、sudo make installで、CMakeならcmake -S . -B build -DCMAKE_BUILD_TYPE=Release、cmake --build build、cmake --install buildです。どちらもPREFIXまたはinstall先を指定でき、SUFFIXにはバージョン番号やgitの短いコミットIDを付けられます。WindowsではSUFFIXに.exeを含める必要があるとREADMEが示しています。システム全体へ入れる前に、prefixを作業ディレクトリへ向けてコマンドの解決先とバージョンを固定すると、複数版の混在を追いやすくなります。

ドキュメントと版の追い方

完全なドキュメントはrgbds.gbdev.ioに公開され、開発史と版の履歴はリポジトリのman pageから生成されます。ドキュメントサイトのソースは別のrgbds-wwwリポジトリに置かれています。したがってコマンドの現在仕様を確認する場合は、コードのREADMEだけでなく、使用するタグに対応するversion historyと各man pageを見比べる必要があります。公開されている最新リリースタグと自分のビルド結果が一致するかを、rgbasmなどの--version出力と生成ROMの再現性で記録するとよいでしょう。

採用前に実行する小さな検証

最初の検証では、専用prefixへmake installし、RGBASM、RGBLINK、RGBFIX、RGBGFXの四コマンドが同じprefixから呼ばれることを確認します。次に最小のアセンブリ入力をリンクし、RGBFIX後のROMヘッダとチェックサムを確認します。画像変換を含む場合は、固定したPNGから同じバイナリが得られるかを比較します。READMEは性能値、対応エミュレータ一覧、実機試験の結果を示していません。GBDev Discordやcontribution guideは質問と参加の窓口ですが、採用判断は自分のROMと対象機器で行う必要があります。

小さなROMで四つの道具をつなぐ

RGBDSの採用確認では、最初から大きなゲームを移植せず、RGBASMの入力、RGBLINKのlink script、RGBFIXの対象ROM、RGBGFXのPNGを一つの再現可能なfixtureにします。アセンブラの警告をエラーとして扱うか、未使用セクションをどう処理するかはプロジェクトのmakefileに明記します。リンク後にRGBFIXを実行する前後でヘッダとチェックサムを比較し、ツールの順序を入れ替えたときの差も記録します。エミュレータで起動できても実機のタイミングやカートリッジ条件を再現したとは限りません。使用したRGBDSタグ、コンパイラ、OS、入力PNGのハッシュ、生成ROMのハッシュを保存すれば、版を更新したときにどの工程が変わったかを追跡できます。

出力ROMの再現性を確かめる

RGBASMからRGBLINK、RGBFIXへ渡す最小ROMをリポジトリ内のfixtureとして保存し、RGBGFXには同じPNGを入力します。makeとCMakeを別のbuild directoryで実行し、生成された四つのツールの版とROMのハッシュを比較します。PREFIXを作業ディレクトリへ設定した場合も、PATHがシステム版を先に拾わないことを確認します。WindowsではSUFFIXの.exe条件、Game Boy Color向けでは対象オプションとヘッダの差を記録します。公式version historyに対応するタグで結果を取り直せば、toolchain更新によるROM差分を工程ごとに説明できます。

ツールの版を工程へ記録する

makeまたはCMakeで専用prefixへインストールし、RGBASM、RGBLINK、RGBFIX、RGBGFXの実行ファイルが同じ版かを確認します。最小ROMとPNGを固定し、生成ROMのヘッダ、チェックサム、ハッシュを保存します。公式man pageの版履歴とビルド結果を照合し、エミュレータと実機の結果を分けて記録します。 インストール後は--version相当の出力を各ツールで取り、PATHの解決先を保存します。RGBGFXの変換結果をROMへ取り込む場合は、入力PNGの色、サイズ、配置を固定し、RGBFIX後のチェックサムを毎回比較します。 RGBASMのアセンブル失敗、RGBLINKの配置失敗、RGBFIXのヘッダ差を別ログにし、RGBGFXの入力画像と出力バイナリを保存します。

編集部の結論

Game BoyまたはGame Boy Color向けにアセンブリでROMを作る人には、必要な処理を小さなコマンド群で揃えられる点が合います。導入前に同じソースをmakeとCMakeでビルドし、生成物のヘッダ、チェックサム、画像変換結果を手元のエミュレータで照合してください。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート