スプライト関連
いくつかの画像を組み合わせて紙芝居のように回すことでアニメーションさせています。
メモリ(メモリビュアで見ると良い)の(400+X)からアニメーション番号を読み取り、表示しています。
逆算的な見方を簡単に説明します。
アニメーション番号
3F900〜3F9FF 下桁
3FA00〜3FAFF 上桁
武器や岩男やボスはそのまま3F900+(400+X)の位置に、敵オブジェクトは3F980+(400+X)
…例えば、武器のバブルリードなら、=33なので、3F933に下桁、3FA33に上桁があり、
敵オブジェクトは、ジョーの場合、=4Fなので、3F9CFに下桁、3FACFに上桁があります。
上桁・下桁をくっつけて、その+30000した値の位置を見に行きます。
…バブルなら3FBF9の位置。
そこには 02 05 48 49 4A とあります。
02 は アニメーションする画像数(00も数に入るので、02だと3つ分)
05 は 次の画像に移るまでのフレーム数。
48〜4Aは、画像1つ1つ。
(オマケ:ここに00を指定すると、00に回ってきた時点でオブジェクトが消えます。)
基本的にメモリの(06A0+X)に表示中の画像番号(始点から何枚目の画像か)が入っていて、
敵や武器の行動制御で無理矢理固定値にすることも可能。
次に、この48という数字を覚えておいて、28000〜2C000のバンクを見に行きます。
画像番号
28000〜280FF 岩男・武器の画像番号・下桁
28100〜281FF 敵オブジェクトの画像番号・下桁
28200〜282FF 岩男・武器の画像番号・上桁
28300〜283FF 敵オブジェクトの画像番号・上桁
28400〜284FF オブジェクトの形(相対表示位置)・下桁
28500〜285FF オブジェクトの形(相対表示位置)・上桁
バブルリードは武器なので、28000〜と28200〜を見ます。
さっきの48って数字を足して、28048に下桁、28248に上桁があるので、見てみます。
これを同じようにくっつけて、今度は+20000 =28B24。ここに移動します。
04 17 9C 00 9D 00 9E 00 9F 00 とあります。
04 は 画像の大きさ
17 は オブジェクトの形
9C/9C/9E/9F は 読み込む画像の位置(パターンビュアで見るとわかりやすいかと)
00は色と画像の向き(反転)
画像の形は、同じ要領で28417、28517と順に追っていくと、
FD FA F8 F8 F8 00 00 08 08 F0〜〜とあります。
この辺りはあまり弄ったことがないので逃げておきます
(基本的な形は揃っているので、特殊な形を作るときに弄ると良いです)
中心を00として、どれだけずらすか、といった感じになっています。
色は 00 の 1桁目で指定。00は岩男の体色(主に武器用)、01は岩男の皮膚の色(ブーメランやブレードはこれ)
02、03はスクロール毎に設定する色(主に敵用)
反転は00 の 2桁目で指定。40は左右対称、80は上下対象、C0は上下・左右対称となります。
81とすると上下対象で、色は岩男の肌色になる…という具合。
(2008/10/12追記) 20でBGの後ろに隠れるか という判定もあるようです。
61とすると左右対称で岩男の肌色でBGの後ろに表示される となります。
ついでに、これを作り変えても、当たり判定の大きさ・位置は変わりません。
他で書かれているので省略。
ボス決定時、登場シーンスプライト
ここはステージで使うスプライトとは独立していて、
34781〜 ボス毎のスプライト開始アドレス…34799からの相対アドレス(8ボス、黄金配列順)
34799+ここの値 からボスのスプライトを読み込む。
34789〜 スプライト枚数 …最初の一枚は上から降りてくる時のスプライト。
最後の一枚はポーズの最後、静止するスプライト。
34791〜 アニメーション速度
34799〜 画像読み込み …画像番号。これを指定フレームで指定枚数進めていく。
ここではスプライトはループせず、
最後まで送られると最後のスプライトで静止する。
347ED〜 画像読み込み先:下桁
34816〜 画像読み込み先:上桁 …スプライト番号(34799〜)で指定した番号から読み取る。
例えば、画像番号00なら下桁=3F、上桁=88なので、
3483Fにスプライト読み込み用のデータがある。
といった感じになっています。
せっかく例に挙げたので、3483Fを見てみます。
0E E0 A0 03 FA E8 A1 03 F0 …
最初の 0E がスプライトサイズ。
次の数字から4バイト分で8×8ドットの画像を1つ読み込みます。
E0=Y軸。原点からの相対位置。正方向に数字を増やすと下へ、負方向に数字を減らすと上へずれる。
A0=読み込む画像。パターンビュアで見てみましょう。
03=色と方向。上記と法則は一緒。
FA=X軸。これも原点からの相対位置。正方向に増やすと右へ、負方向に減らすと左へずれる。
まとめ
各オブジェクトのアニメーション指定
3F900〜3F9FF 下桁
3FA00〜3FAFF 上桁
画像番号
28000〜280FF 岩男・武器の画像番号・下桁
28100〜281FF 敵オブジェクトの画像番号・下桁
28200〜282FF 岩男・武器の画像番号・上桁
28300〜283FF 敵オブジェクトの画像番号・上桁
28400〜284FF オブジェクトの形(相対表示位置)・下桁
28500〜285FF オブジェクトの形(相対表示位置)・上桁
ボス決定時のスプライト
34781〜 ボス毎のスプライト開始アドレス
34789〜 スプライト枚数
34791〜 アニメーション速度
34799〜 画像読み込み
347ED〜 画像読み込み先:下桁
34816〜 画像読み込み先:上桁