09.厄介なバグ

投稿者 H.OHNO

ハマり
はまってしまった…(;’∀’)

当たり判定ルーチンを作っている最中、どうしてもわからないバグに遭遇してしまった。今回のゲームではそんなに速度を求めてないので、遅いといわれているインデックスレジスタ(実際遅い(笑))をメインに使っているけど、当たり判定ルーチンはそれを使わないようにレジスタを壊さないパズルをやっていた。

でもどう見ても壊してないのに壊れてるとしか思えない挙動…。
そして3日が経過した(;^ω^)

Openmsxのデバッガ
開発はWindows11上でOpenmsxでやっているけど、これにはデバッガがある。
メモリの内容を見れる超便利なやつなのだが、これ、レジスタの値も見れるのである。
使い方はどこにも書いてないんだけど使っているうちにわかってきた(笑)。
それによるとやっぱりレジスタの値がおかしい。具体的には15を足せばいいはずなのに16を足すのが正解みたいな感じだった。
これ、レジスタが見れないと多分気づかなかった。本当に便利な時代になったもんだ。
昔だったらハマりにハマって一か月は放置するか最初から組み直したかもしれない。

コンピューターは馬鹿正直
経験上、よくわからないバグはクソみたいな間違いが多かったけど、今回は難しかった。あまりにもバグがわからないとアセンブラのせいにしたりエミュレーターのせいにしたりしたくなる。超高度なことをやっているならそれもはずれじゃないのかもしれないけど、自分程度ではそんなことは起こりえないだろう。
コンピューターは自分がプログラムしたとおりに動いているのだ。そして今回もそうだった。わかってしまえばなんてことなかったけど、そのミスに気づくまでものすごく時間がかかってしまった。
アセンブラで組んでる時のバグって人間の思い込みとか勘違いがほとんどだと思うんだけど、やっぱりコンピューターは言われたとおりに動くんだなぁ。

言われたことしかやらない奴
まぁそんな感じでなんとか今回のバグは乗り切れた(;’∀’)
命令できることは何でもやってくれるコンピューターだけど、現実世界でも言われたことしかやらない人っていますよね。そしてミスも言われてないから報告しないという…(;^ω^)
コンピューターってそんな感じの奴だってことを忘れてました。
これはたぶんAIになってもそうなんじゃないのかなぁ。と思いつつ作業を進めていきたいと思います…(;’∀’)

投稿者 H.OHNO

OB PROJECTの担当は主に、プログラム/グラフィック/企画。 個人インディーレーベルAGO SOFTもあります。 山形に住んでる田舎の人。

コメントを残す