「スーパーマリオワールド」のセーブ領域を利用してカスタムコードを実行できる方法が見つかる
「スーパーマリオワールド」にはプレイデータを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
・関連コンテンツ