なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)

(情報元のブックマーク数

浮動小数点計算の丸めで・・・・それも変換する手段が違うとか・・・

さて、今回話題になったのはWii版(バーチャルコンソール)のマリオ64で、「長時間たつと足場がどんどん浮き上がる」というものです。オリジナル版では起こらず、バーチャルコンソール版だけで起こるというのがミソです。

なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)

そして、この64bitから32bitへ変換する手段が、64とWiiのVCとで、全く異なっているのです。64では最近接丸め(四捨五入のようなイメージ)で32bitへの変換が行われており、WiiのVCではゼロ方向への丸め(小数切り捨てのようなイメージ)で変換しています。
このとき、ゼロ方向への丸めは、どんどん原点(ゼロ)方向へと近づいていってしまう作用があります。これは普通の小数切り捨てで考えるとわかりやすいでしょう。「2.6」を小数切り捨てすると「2.0」になりますが、このとき-0.6だけ原点方向に動いています。マイナスの場合も考えて、「-2.6」を小数切り捨てすると「-2.0」となり、これもまた0.6だけ原点方向へ動いています。

なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)

どこが原点になるかはゲームやステージによって違うのですが、「ほのおのうみのクッパ」ではステージの中心が原点となるようです。そして中心より高いところにある足場はどんどん下がっていき、中心より低い場所にある足場はどんどん上がっていきます。

なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)

screenshot