11月22日(月)1:15

 「グラ2開発期間(別名MIT祭)」に突入している。

 5,6,7 面に空中戦を接続した。いまのマップサイズでは,7面が入りきらない。7面のファイルサイズだけ大きいままにしておき, GRA2 でそのサイズだけ読むようにして対処した。

 なぜか7面の曲が5面のになっていた。

 3秒待つつもりで以下のようなループを書く。

moveq #165,d0 * 1/55 [sec] * 165 = 3 [sec]
loop: 垂直帰線期間を待つ
垂直表示期間を待つ
dbra d0,loop

 するとどうなるか。

[答]永劫にも等しい時間を待たされる。

 それはなぜか。

 moveq #165,d0 によって, d0 に -25h つまり,FFFFFFDBh が代入されるからである。すなわち,165 は signed byte 値であり,-37 = -25h を意味するからだ。2進数で書けば, 10100101 であり,符号ビットである最上位ビットが32ビットまで拡張され,d0.lには

11111111111111111111111111011011b = FFFFFFDBh

 が代入されるのである。moveq のオペレーションサイズは,デフォルトでロングワードである。すなわち,moveq.l ,レジスタの全32ビットに対するオペレーションなのであった。

  dbra のオペレーションサイズはワードなので,答の正確な時間は, FFDBh / 55 = 1190 [sec] = 19 [min] である。ゲーム中ではこれは永遠と等しい。

 文章に実験の影響が出てる。

3:36

 ゲームオーバーになると,オープニングデモになるようにした。

   真夜中のプログラマ

 バグが,俺を糾弾する。

「お前はダメなやつなんだ」

 俺はバグを殺しにかかる。

「ちがう! 俺は偉大なんだ!」

 バグは死なず,俺をあざ笑う。

「お前には生きている価値がない」

 俺の自己像は悪化の一途をたどり

 胃壁を徐々に溶解させる。

 焦げつくようなアセンブル時間

 砂嵐のTV

 リンクが終了する。

 神さま,どうかお願いだ

 幾度も出刃でメッタ刺しにして,ようやくバグは死ぬ。

 勝利の歓喜も達成感もない。

 1匹のバグが死ぬたびに

 俺のどこかも死んでいく。

4:19

 レーザーハッチから発射されるレーザーの速度を2倍にした。しかし,消去速度は元のままだ。けっこういいと思う。

 4面の空中戦で出てくる大量の氷塊群はとてもかっこいい。

 なんか最近ゲーム性がでてきていい。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です