今私は小さな魚だけれど

ちょっぴり非日常な音楽を紹介するブログです

【GB】ゲームボーイ開発者向けの紹介記事を読んだメモ

こちらのgistに「GBおよびGBC開発者向けのプログラミングツールチェーン、コーディング手法、および言語」について説明されている記事がありました。

Writeup discussing programming toolchains, coding practices, and languages, for GB and GBC dev. · GitHub

詳しくは元の記事を読んで欲しいのですが、いくつか気になった点をメモしておきます。

GBAアーキテクチャについて

Important: this document only applies to the Game Boy and Game Boy Color. Game Boy Advance programming has nothing in common with Game Boy programming.

GameBoy Advanceではアーキテクチャが改良されていて、C言語でのプログラミングに適したアーキテクチャになっているようです。もしC++やRustでの開発をしたいならアリかもしれない。

開発ツールについて

主に以下の選択肢があるようです。

エミュレータについて

動作確認はエミュレータで行う。

  • BGB: ほぼ完璧にサポートされている。Windowsのみだが、Wine上でもうまく動作するらしい。
  • Gambatte: BGBと同等。デバッガはないが、様々なプラットフォームで動く。コンパイルが必要。

フラッシュカードのおすすめ

実機で動かす場合はkrikzz's carts、特にparticularly the Everdrive GB X5が薦められている。

krikzz.com

言語を選ぶ

  • C言語はオーバーヘッドがでかい。こちらのブログで比較されている。
  • オーバーヘッドはCが「stack-oriented language」で、GBのアーキテクチャが「register-oriented strategy」向けに設計されているため。
  • BGBのデバッガの利用が難しくなる。

その他

GB向けのLLVMバックエンドの実装してる方がいるらしい。

github.com

ASMの挙動を知りたいときは、ここからゲームボーイのドキュメントを追う。

gbdev.gg8.se

様々なリソースやチュートリアルawesome-gbdevを読もう。

github.com

コミュニティは以下の3つが紹介されている。