「スーパーマリオワールド」にはプレイデータを3つセーブすることができますが、この領域を利用して、セーブデータを読み込むだけで自作のカスタムコードが実行可能になるという方法があることがわかりました。この方法だと、カートリッジやスーパーファミコン本体に手を加える必要はありません。

Jailbreaking Super Mario World to Install a Hex Editor & Mod Loader - YouTube

方法を報告するセス・ブリング氏。ただ、見つけたのはCooper Harasyn氏だとのこと。



スーパーマリオワールドのカートリッジ内には、ゲーム自体のデータが入っているROMとデータを保存するための領域があります。ROMは「Read Only Memory」の略であり、文字通り読み出し専用ですが、データ保存領域は書き込みをすることが可能。そこでHarasyn氏は、この領域に自分の作ったデータを書き込みました。



このカートリッジをスーパーファミコンに挿して起動。



そして「MARIO C」のデータを読み込むと……



画面が一度切り替わり、画面の真ん中あたりまで数字とアルファベットの羅列が出現。これはヘックスエディタ。



表示されている文字は16進数の「0」から「F」で、それぞれ2進数の「0000」から「1111」に対応しています。



たとえば、上の赤い矢印が指す2ケタの数字はマリオの状態を意味します。



「02」はマントマリオ



「03」はファイアーマリオ、というように切り替わります。



また、この部分にはクリアフラグがあり……



「01」に書き換えると、まだステージの途中なのにクリアしたことになりました。





ちなみに、表示されている文字のうち、前半のこの部分はインストーラーで……



この部分がヘックスエディタだとのこと。



セーブ領域を利用すれば、独自の「改造」内容を適用することもできます。



ファイアバーをまるでムチのように使いこなすマリオ



オブジェクトを持ち上げることができ、それを使って敵を倒すこともできます。



敵すらも持ち上げられます。



ジャンプしながら空中にヨッシーを引き上げるマリオ



マウスも利用でき……



クリックした敵をどこかへぽいっと捨てたりできます。



本来は固定されているブロックすらも動かしてしまうマリオ。



こうしたことを、カートリッジも本体も改造することなく行える、というのが大きなポイントだとのことです。



「ジェイルブレイク」状態のマリオをプレイするブリング氏。発売からすでに27年が経過したゲームですが、なおもカートリッジに可能性が秘められていたとは思いませんでした。