『スーパーマリオ64』プレイヤーたちによって、マリオのお尻は酷使されてきた。長いスライダーでは摩擦に耐え、マリオが火や溶岩に触れれば真っ先に犠牲となって煙を出しながらも耐えてきた。クリアタイムを競うRTAなどの世界では、さらに過酷だ。マリオが階段や壁に高速でお尻を叩きつけ、お尻を突き出したポーズのまま勢いよく後ろ向きにふっとぶBackwards Long Jumpsという技がさまざまな場面で繰り返し使われる。この度、このように酷使され続けているマリオのお尻から発せられるエフェクトについて、新たな発見があったという。
きっかけはMod制作者のRyan Bloom氏が、マリオが火や溶岩に触れてしまった際にお尻から発せられる煙のエフェクトがバグなのではないかと指摘したことにある。発売から20年以上もの間、プレイヤーたちは本来煙として用意されていたものではない“何か”を“煙”として認識していた可能性が浮上してきた。
Haha, what the heck. Thanks to the Super Mario 64 code disassembly it's been discovered that the smoke Mario emits when he's touched fire has been bugged for 20 years. On the left: how it looks in the final game. On the right: after a one-line code fix. https://t.co/JenizzKeFh pic.twitter.com/Jb2Ryg2lwx
— Ryan Bloom (@BlazeHedgehog) April 6, 2020
Ryan Bloom氏がTwitterに投稿した画像を参照いただきたい。マリオが火や溶岩に触れた際、実際に販売されたソフトでは左図のようにお尻から黒いドットの集合体のようなエフェクトが発せられる。これは『スーパーマリオ64』をプレイしたことのある方であれば見覚えのある“煙”だろう。
今回発見されたのが、右図のもくもくと立ち上るより“煙っぽい”エフェクト。Ryan Bloom氏によれば、本来こちらが煙エフェクトとして作られたのではないかということだ。新たに発見された煙エフェクトは、もともと『スーパーマリオ64』のロムの中に存在していたもの。たったひとつのコードを書き換えるだけで、マリオのお尻が燃えた際の“煙”が変わるという。
新たに発見された煙エフェクトを表示するために書き換えたコードについては、「“G_IM_FMT_RGBA” to “G_IM_FMT_IA” on line 47 of the “/actors/burn_smoke/model.inc.c” file.」と説明されている。つまり、マリオが火に触れた際に出る煙エフェクトを呼び出す部分が、本来用意されていた煙エフェクト「IA16」ではなく、誤って「RGBA16」を参照するように書かれていたのではないか、ということだ。
「RGBA16」がどのようなものであるか記載はないが、これを参照することによって「黒いドットの集合体」が表示されるようだ。Ryan Bloom氏は、「(拙訳)この間違いが20年以上もの間気づかれなかったのは、『スーパーマリオ64』が作られた時代のビデオゲームにおいて、煙がこの(黒いドットの集合体)のように描かれることが多かったためだ」と述べている。
『スーパーマリオ64』のリメイク作品『スーパーマリオ64DS』は、64版をベースに一から作り直されたもの。リメイク版では、マリオのお尻から出る煙のエフェクトは黒というより灰色っぽいものであった。しかし、色こそ違うものの、形状を見るとRyan Bloom氏が発見した「隠された煙エフェクト」と近い形をしているように見えなくもない。
火に触れたマリオのお尻から出る煙エフェクトが、Ryan Bloom氏の言うように“間違い”であったかどうかを知る術はない。しかし、マリオのお尻が今後も『スーパーマリオ64』プレイヤーたちによって煙が出るほど酷使され続けることは確かだろう。