Game Boy Advent Calendar 2017 ということで、クリスマスだし昔のGBA開発ネタを公開してみることにしました。

自分のPCに開発環境を作らなくても、クラウド上に、ビルドから実行環境までを構築できます。
GBAのソフトを作ってみたいけど、開発環境を構築するのが難しくて分からないって人とか、面倒くさいなーって人に向いています。
経験者も未経験者の方も役に立ててもらえるのではないかと思います。
またGBA以外のソフトウェア開発などで応用して使える技術だと思うので参考にしてください。

開発で使うツール

1. ブラウザ

Chrome 推奨です。それ以外のブラウザはエミュレータの動作が不安定です。

2.SDK
既存のGBA用のSDKです。devkitARM、devkitAdvどちらも利用できます。

3.IDE
クラウドIDE環境のCloud9(https://aws.amazon.com/jp/cloud9 , https://c9.io/)を使用します。

ブラウザ上で動くIDE環境です。様々な言語や環境に対応しており、わざわざ自前のPCやサーバに開発環境を構築する必要がありません。

Amazonに買収されてしました。それまでは無料で使えたのに残念です。c9.io の時のアカウントを持っていれば無料で使えます。(ただしprivateは1つまで)

とりあえず新規アカウントでも体験版を無料で使用できるみたいなので、それで試してみてください。

4.エミュレータ
Iodine(http://taisel.github.io/IodineGBA/)を使用します。
Javascriptで作られているエミュレータです。ブラウザ上で動作することができます。
動かすにはGBAのBIOSファイルをどこからか用意する必要があります。
私が独自にカスタマイズしたものを使用します。

 

GBA開発環境のワークスペースの構築

1. Cloud9にログインする

2. ダッシュボード画面からワークスペースを作成する
「Create a new workspace」 を押して、ワークスペースの作成画面を開く

3. ワークスペース情報入力

Wordspace name, Description は任意です。
template は C++を選択します。
Clone from Git Mercurial URL は、https://github.com/cubicstyle/gbadev_c91.git にしてください。

ここがポイントです。そしてCreate workspaceを押します。

4. ワークスペースが作成される
GBA開発用のワークスペースが作成されました。このワークスペースで実際に開発を行なっていきます。

5. サンプルプログラムの確認
左側のディレクトリツリーから、workspace/test/main.c のファイルをダブルクリックしてエディタ上に開いてみましょう。

これは動作確認用のサンプルプログラムです。

6. サンプルプログラムのディレクトリに移動
このファイルをビルドすればGBAのロムファイルを作成することができます。まずエディタ画面の下にあるコマンド入力画面からコマンドを入力できる状態にします。現在、プロジェクトのホームディレクトリにいる状態なので、ソースコードのあるディレクトリに移動します。cd workspace/test/と入力して、エンターしてください。

7. ビルド
サンプルプログラムをビルドします。コマンドラインで、makeと入力し、エンターしてください。
makeというビルドツールが実行され、自動で、コンパイルからリンク、GBAのロムファイルが自動で作成されます。

8. GBAファイル確認
画面左のディレクトリツリーの、buildディレクトリの下に main.gba ができていることを確認して下さい。

9. エミュレータの起動

画面左のディレクトリツリーからIodineGBA/index.html のファイルを右クリックして、

ポップアップメニューのPreviewを選択します。エディタからHTML用プレビュー画面に切り替わり、GBAエミュレータが開始します。

10. エミュレータ起動確認
画面右にエミュレータが起動しました。

11. BIOS設定
エミュレータのFileメニューからBIOSファイルを設定します。BIOSファイル一度読み込ませると、その後はエミュレータの起動時に自動で読み込まれます(ブラウザのキャッシュ機能を利用しているの、ブラウザを変更した場合は、また読み込ませる必要があります)
ロムファイルは起動時に自動で読み込まれるようになっています。
読み込ませるGBAファイルはrom.jsonに記述します。(デフォルトは../build/main.gba を読み込むようになっています)
ビルドしたGBAファイルの名前を変更したい場合は、rom.jsonのファイルパスもあわせて変更してください。

12. エミュレータ実行
BIOSを設定したらGBAファイルを動かすことが出来ます。エミュレータでGBAロムファイルをプレイするには、エミュレータメニューのPlayを押してください。さきほどビルドしたGBAロムファイルがエミュレータ上で動作します。このサンプルプログラムは、画面に三色カラーを表示するだけです。メニューのSettings skip Boot IntroをチェックするとGBA起動画面をスキップできます。

13. 設定
Cloud9メニューのWindows Tabs で画面分割が出来ます。

ソースコードの画面とエミュレータの画面を同時に表示すると開発作業がしやすくなります。ビルドするたびにエミュレータからGBAファイルのreloadが必要になります。

14. セットアップ完了!
これでCloud9でのGBA開発環境が出来ました。プログラム作成から動作確認まで出来ます。ただIodineGBAはデバッグ機能が無いので実際の開発ではデバッグ機能があるエミュレータを使用しないときついです。IodineGBA自体がまだ未完成なので、デバッグ機能を自分で追加することも出来ると思います。こういう開発方法がこれからの標準になるかもなので、他の開発環境などに生かしてください。

 

後、別件ですが、ワンダースワンのクラウド開発環境を作りたいです・・・。フリーのコンパイラ含めた開発ツール探しております。(WWは持ってますが。。。)