最早惰性に陥っている感がなきにしもあらずの『五条大橋』開発進捗。前稿末で少し触れたように、鎖鎌弁慶の動作パターンを改良(?)したので、まずはそちらからご覧いただこう。
元は鎌を振り下ろすアクションと鎌を回転させながら上下に揺らすアクションがあったのだが、体験的にほとんど差がなかった(ぉぃ)ので、後者を廃止して新たに鎖を2つ伸ばして振り回すアクションを追加した。都合、鎖鎌弁慶の攻撃の間合いは、牛若との距離が近い順から振り下ろし、追加した振り回し、ギューンの伸びる奴、の三段階になり、演武に拡がりが出た、と勝手に思っている。
その他、いくつかの見た目にはよくわからない改良を加えており、残り容量は一時的に17バイト(!!)まで行ったのだが、テストプレイする都度マイナーなバグが見つかる。
一例をあげると、本作は種々の条件分岐が非同期で動いていて、ステージクリアやゲームオーバになってもゲーム内時間が止まらずにしばらく流れ続けているのがそれなのだが、こういう実装は得てしてバグの要因になりやすい。
弁慶の残り耐久力が1のときに必殺技(くるくる回るアレ)が決まった場合、これは連続して最大4ダーメジくらいを与えることがあるのだが、一発目が当たった時点で弁慶の耐久力が0になってフラグが立ち、ステージクリアのデモ(これで勝ったと思うなよ〜、に始まる一連のシーケンス)が始まるのだが、ゲーム内時間は構わず進行するので次の瞬間、回り続ける必殺技が再び弁慶にヒットする。
呆れたことに、弁慶の耐久力がいくら減っても0未満にはならないような対策はちゃんと講じられているので、弁慶がダメージを受けて耐久力は0である、という事実のみが生じる。結果、再びステージクリアのシーケンスが動き出すのである。これは、必殺技の当たり判定の場合に限り、ステージクリアのフラグが立っているときは当たり判定を無効にする、という条件分岐が漏れていたことによって起こった。普通の攻撃に対してはちゃんとそうなってたのに、あははー。
閑話休題。
その他諸々のバグに対処するにはある程度の容量を要するので、3万行に及ぶソースコードを見直して冗長な部分を改めては空き容量を拡げ、その容量を使ってバグを解決してテストしたらまた新たなバグが見つかるのでまた空き容量を拡げ……の繰り返しで、残り容量が30バイトあたりを前後しながらカツカツのチューニングをやっていたのがこの週末だ。いい加減飽きてきたな(ぉぃ)。
以下、MSXのアセンブラプログラミングに興味のない人からすればどーでもいい話を書く。