「スーパーマリオワールド」のセーブ領域を利用してカスタムコードを実行できる方法が見つかる


「スーパーマリオワールド」にはプレイデータを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年が経過したゲームですが、なおもカートリッジに可能性が秘められていたとは思いませんでした。

・関連記事
スーパーマリオワールドを2分36秒でクリア、完全に人間業の領域を突破 - GIGAZINE

スーパーマリオワールドをクッパを倒さず謎のミニゲーム経由で爆速クリア - GIGAZINE

何度やってもマリオの幻の「-1面」に突入できない女性が力業で再現 - GIGAZINE

713

in 動画,   ゲーム, Posted by logc_nt