前に『GBAで弾幕シュー』ってのを書いたんですが、
作者さまからコメントいただきました。
1024発弾出せるって書いてあって、
GBAってそんなにスプライト出せるんだ……と思っていたのですが、
どうやら、そのままでは、出せない様子です。
(標準だと、128個)
スプライトダブラという機構を使って増幅している模様。
(詳しいことは、本家の解説記事『GBA で学ぶ古典的プログラミング (スプライトダブラ)』をぜひ。
ようは、水平復帰(HBLANK)割り込みを使い、
仕様上のスプライト制限を回避しているようです。
同じことをやっているものは、「超連射68k」が記憶に新しい(新しくない?))
ファミコンなんかの世代だと当たり前の技術らしいけど、
今でも使うんだなーと。
BulletGBAに関しては、XMLを解析して、真面目にやっているのではなく、
事前に、PHPで、C++に直接変換して、実行しているようです。
ループなんかも、全部展開しているらっすい。
すげえ。
この辺のことは、『粉骨砕身の覚悟でがんばります[2006年03月04日] - BulletGBA の歩み』に書かれています。
涙ぐましい努力……。
あと、やっぱり、スペック的に、固定小数点なのね。
コンバーターが、当初、Rubyで遅いってのは気になった。
そうか、XMLパーサー遅いのか……。
コメント (2)
あのチラチラするアレですな。しかしデータを言語レベルで変換してるとは驚きました。テーブルデータってれべるじゃないのねー。
投稿者: Ko-Ta | 2007年05月16日 15:56
日時: 2007年05月16日 15:56
普通は、テーブルでもってるとか、VM用のバイトコードとかを想像しますよねえ。
さすが、GBA用ゲームといいますかー。
投稿者: TOBY | 2007年05月24日 01:07
日時: 2007年05月24日 01:07