Gradius'91 (升)



サンダークロスのオプションをグラディウスのオプションのようにする実験。

※追記:データ更新しました。
http://wayder.hp.infoseek.co.jp/cgi-bin/diary2/diary.cgi?mode=popup&y=2010&m=6&d=12

というのを、頭の中で考えて出来そうだったからやってみようと思い、調べてみた。
が、しかし、サンダークロスは、早々に出来ない事が発覚。

オプションのX軸のアドレスが共通で、個別には持っていなかった…。
X軸は常に自機と同じだから個別に持つ必要がないというワケか…。

で、終了…。と、するのはまだ早い。


サンダークロスⅡであれば、オプションを取ると飛んでくる演出があるので、
個別に持っているだろうと思い、調べたら案の定、個別に持っていた。

では、早速調査…。と思ったら、なんだか基本のチートすらあまり揃っていない…。
とりあえず、オプション装備、武器選択、スピード選択などを先に一通り揃えた。
(PL1側のみ)


そして、肝心のグラディウス型オプションの実験結果。

予想はしていたが、最初出来たのはツインビーのように固定されないタイプ。
目標はグラディウス型なので、そこから固定される方法を考えてみた。

動いているか、止まっているかを判定して、フラグで管理すればいいのだが、
その判定をどう調べるか思考錯誤した結果、最初の数フレームの差を比較して、
同じなら止まっている、違うなら動いているという判定にした。

その判定部分が2~3行目のチートです。
(この2行を削れば、ツインビー型になります。)


4行目以降の長い列は、1フレームごとの動きを空きメモリに記録していて、
この行数を長くすればする程、オプションの間隔を広げる事が可能。

サンダークロスⅡは空きメモリが多いので、かなりの範囲で使っても大丈夫だが、
空きメモリが足りない場合は、frameの%を増やして行数を削るしかないです。
(勿論、%を増やすと、その分フレームがスキップされ、動きがカクカクになる。)


で、ずっと下へ行って、最後の4行がオプション位置を差え替える処理。

オプション1~4のそれぞれのXY軸を、記録しておいたメモリから、
一定の間隔を開けたアドレスをチョイスして、割り当てています。

それと、最初の1行目はボタンでオプションが上下移動する部分を止めています。


現状の問題点としては、特殊パワーアップ時、オプションのY軸がズレる。
(対策は出来そうですが、そのままでもいいかなとも。)

あと、面クリアをして次の面の始まりの時、オプションの位置がおかしい。
(対策は出来そうなので、直す予定。)

更に、2P側は考慮していないので、1P側専用です。
(2P側や2人同時プレイでも対応させる方法は考えてありますが。)


それと、幾つかの部分に入っている、「maincpu.pb@1001B0」のアドレスは、
ゲームプレイ中にのみ動作させる為のフラグで、これが無いとスタートデモが
バグるため、入れています。
(同じ理由で、オプション装備チートにも入れている。)


あと、他のゲームでも、空きメモリに余裕があって、オプションの位置が個別に
管理されているタイプならば、応用は効くと思います。


で、ニコニコは、サンダークロスで検索。

http://www.nicovideo.jp/watch/sm4188989

PS版にこんな面がある事すら知らなかった。サンダークロス4面のパロディか。
スポンサーサイト

コメント

非公開コメント

ねこ自慢

Wayder

Author:Wayder
 
ねこ自慢
http://wayder.web.fc2.com

ニコニコ動画マイリスト
nicovideo.jp/mylist/52529218


※FC2ブログの仕様で非公開コメントに
 対して非公開での返信ができません
 予めご了承下さい

Counter
Category
Calendar
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
New Article
Form