オクレ理論補足
 

さて、前回 スペランカーの赤いクスリにまつわる裏技を一通り説明したが、ページ数の関係上スペランカー体内で起きている現象を大分省略して説明した。そこで、今回はその補足講義を、スペランカー考古学チームの協力を得て解説する。

■ Spelunker D・N・A ■

左の図は遺跡から発掘されたスペランカーのDNAに関する古文書のうち、オクレモードが”OFF”になる仕組みをフローチャート化したものである。

〜オクレを取得すると〜

オクレ兄さん(赤いクスリ)を取得した場合、スペランカー内部では OkureTimerの値を1引く処理が行われる。スペランカーが通常モードの場合、OkureTimerの値は0である。OkureTimerは符号無し8bitのため1を引くと255となる。これを念頭において、なぜオクレモードがOFFになるのか説明していこう。

〜オクレモードがOFFになるまで〜

さて、スペランカー体内では左の図のルーチンを4フレームに1回(約0.067秒に1回)実行している。このルーチンが実行されると、まずスペランカーはOkureTimerの値をチェックする。OkureTimerの値が0より大きい場合は"N"に分岐しオクレモード処理を続行する。

スペランカーはオクレに関して処理の高速化のため(?)2つの変数でオクレを管理している。

・オクレモードフラグ
・オクレタイマー

である。オクレタイマーはオクレモードかどうかの判定にもちいられ、オクレモードフラグは実際の移動量の増加に使われる。

さて、オクレモード中と判定されると、オクレモードフラグがONになり、次にオクレタイマーを1引く処理が行われる。その後オクレタイマーが0になったかどうかチェックされる。

このときオクレタイマーが0になるとオクレモード終了ルーチンが呼ばれる("Y"分岐)。まだオクレタイマーの時間が残っている場合はオクレモードのまま処理を続行する。

〜オクレ兄さん永久持続理論とは?〜

それでは、オクレ理論を用いるとスペランカーはなぜオクレモードのままなのだろうか?これには先ほど述べた2つ法則が関係している。

1.オクレを取得するとOkureTimerが1引かれる。
2.オクレモードフラグが実際の移動量に関係する。

さて、オクレが切れる最後の瞬間(上の図中の赤い矢印の位置)でのパラメータは

・OkureTimer = 1
・OkureMode = on

となっている。しかし、この瞬間に2つ目のオクレを取得するとどうなるのだろうか?オクレ取得ルーチンはオクレを取得した瞬間からオクレ効果を出すために、OFFにするルーチンよりも前に実行される。

つまり OkureTimerを1引いてしまうのだ。つまり赤い矢印の位置の時パラメータが

・OkureTimer = 0
・OkureMode = on

となってしまう。するとスペランカー体内ではOkureTimerが0のため、な〜んだオクレ取ってないじゃん。と勘違いし、オクレタイマー減算及びオクレモードフラグをOFFにするルーチンをスキップしてしまうのだ。そのため、音楽こそ通常に戻るもののオクレ効果は持続する。以上がオクレ理論発動の原理である。

 

〜結局オクレ理論って?〜

かなり暴走気味に解説してしまいましたが、結局のところオクレ理論って

スペランカーのバグなんじゃ、、、

なんて思ったとしたら、即座にその考えを捨てること。条件が超限定された上に特定の1フレームのみでしか起きないという、まさにスペランカー的難しさを誇る奥義と理解してほしい。

でもバグだよな、、、(ボソ

〜補足の補足〜

さて、ここまで読んでくれた人で、同様にして永久無敵とか、永久点数2倍とかも実現するのではと思い必死に1フレームを狙って努力している人がいたら悪いので、永久無敵、永久点数2倍は起きない事もここで触れておこう。無敵と点数2倍はタイマーの値自身をフラグとして用いているため、オクレ理論を適用することはできないのだ、、、無念。

こうして、またしてもスペランカー無敵技は否定されたのであった。真のスペランカー無敵技を求めて、スペランカー考古学チームは今日も遺跡の発掘を黙々と進めるのであった(涙)

 

 


トップページ
スペランカー講座
極悪!!マインドシーカのススメ
リンク集
連絡事項掲示板
こんなおサルが作ってる・・・
情報・質問・感想はこちら〜
MAIN
SPELUNKER
MIND SEEKER
LINKS
HOMEWORK
AUTHORS
MAIL