昨日準備した開発環境でちょっとしたおもちゃを作ってみた。
まず、開発環境についてのポイント。
Linuxから目覚めるぼくらのゲームボーイ! のサンプルコードであれば問題ないが、Webに出回っているサンプルコードは、そのままでは動かないことが多い。というか、USBケーブルを使って起動するようにはなってない。Webに出回っているコードは、ROMに書き込んだり、FlashRAMに書き込んだりして起動するようになっていたりする。
devkitadvでは、
int __gba_multiboot = 0; // マルチブート指定
がポイントになるが、Linuxから目覚めるぼくらのゲームボーイ! では、crt.Sとgcc.lsがポイントになっている。
このあたりをちゃきちゃきと設定することで、動かせるサンプルプログラムの幅が広がっていく。
Linuxから目覚めるぼくらのゲームボーイ! には、コンソールの機能を再現したサンプルコードがついている。こいつを使って簡単なゲームを作ってみた。
この画面を見て、ピンと来たあなた。BASIC Magazine世代ですね。
そうです、スキーゲームです。Hで表現されているプレーヤーを左右に動かし、[—]で表現されているゲートがどんどん下からスクロールしてくるのを、くぐりぬけていくゲームです。
Z80時代のパソコンのゲームというか、当時の自作ゲームの定番です。
というのは、ゲームボーイのプログラムをいじっているうちに、昔、中学生のときに触っていた、PC-6601を思い出したんです。
プログラムが直接ハードウエアに繋がっていて、凝ったライブラリなんて存在しない。プログラムを書くときは、メモリを直接いじったり、ポートを直接叩いたり。
ゲームボーイのプログラミングってまさにそんな感じ。
いやぁ、おもしろかった。
やっぱりハードの進歩は凄いですよ。当時はウェイトなしでもゲームになったんですけど、ゲームボーイではウェイトなしじゃ、速過ぎてゲームにならんです。
んでもね、やっぱり全部はじめから描くのはめんどくさい。
文字ひとつ描くにしても、音ひとつ出すにしても、全部はじめから書かないとあかん。
メモリがあんまりないんで、おかしなライブラリをつなぐくらいなら、自分で書いたほうがいいんでしょうけど、 やっぱりある程度のライブラリは必要ですねぇ。
Webで検索してみると、既に、DSの開発環境とか、PSPの開発環境とか出ているようです。