1995年に発売されたGenesis/メガドライブ版『FIFA Soccer 96』のROMを解析した結果、ゲーム内部で実に50種類ものコントローラー入力列がチェックされていることが明らかになりました。海外のSEGA系メディア「SEGAbits」でBo氏が2026年9月23日に公開した解析記事で判明したもので、チートメニューの機能を有効化するものから、通常とは異なるゲーム挙動を発生させるものまで、さまざまなコードが含まれています。
さらに今回の解析では、攻略情報サイト「GameFAQs」などで長年紹介されてきた「EA Dream Team」と「Super Power」の入力コードが、実際にはわずかに間違っていたことも判明しています。どちらもまったくのでたらめというわけではなく、ROM内部に格納された正しい入力列と非常に近かったことから、どこかの段階で転記ミスが発生した可能性もありそうです。
ROMの中に残されていた「FE_supercheat」
今回の解析が比較的進めやすかった理由のひとつが、『FIFA Soccer 96』のROM内部に関数を示すASCII形式のラベルが残されていたことです。完全なデバッグシンボルではありませんが、機械語の処理が何を担当しているのかを推測するうえでは、大きな手掛かりとなっています。
その中から発見されたのが、「FE_supercheat」と名付けられた処理です。この関数は「Options > Game Settings」画面で動作しており、コントローラーから入力されたボタンを、あらかじめROM内に保存されているパターンと照合しています。
解析したところ、その入力パターンはわずか数種類ではなく、合計50種類存在していたことが判明しました。
最初の10種類は、ゲーム中に利用できるチートメニューの各項目を有効化するためのコードです。「Invisible Walls」「Curve Ball」「Crazy Ball」「Dream Team」「Super Power」「Super Goalie」「Super Offence」「Super Defence」「Balloon Ball」「Stupid Goalie」といった機能が用意されており、それぞれ個別の入力列が割り当てられています。
正しいコードが入力されると効果音が鳴りますが、ゲーム側がメニュー上のボタン入力を8フレームごとにしか取得しないため、急いで入力するとうまく認識されない場合があるとのことです。
GameFAQsに掲載されていた2つのコードは惜しくも間違い
興味深いのが、GameFAQsでGenesis版向けとして掲載されている「EA Dream Team」と「Super Power」のコードです。
現在掲載されているEA Dream Teamは「A×2、B×2、C×2、B、C×2、A×2」となっていますが、ROMから解析された正しい入力列では、途中にAがもう1回入ります。
Super Powerについても、掲載されているコードは正解にかなり近いものの、最後のB入力が2回不足していることが判明しました。つまり、これまで知られていたコードが完全な偽物だったのではなく、「ほぼ正しいものの、数文字だけ欠けていた」というわけです。
解析で確認された正しい入力は以下の通りです。
- Dream Team: A、A、B、B、A、C、C、B、C、C、A、A
- Super Power: B、A、B、B、C、B、A、C、B、B、B、B、B、B
背景を逆方向に動かすコードや試合を即終了させる機能も
今回発見された入力列は、チートメニューを開放するものだけではありません。
たとえば、メニュー画面でEAやFIFAのロゴが流れていく背景アニメーションについて、その移動方向を反転させたり、完全に停止させたりするコードも確認されています。
さらに別のコードを入力して試合を開始すると、「A+Start」「B+Start」「C+Start」の組み合わせで試合を即座に終了させ、それぞれプレイヤー2の勝利、引き分け、プレイヤー1の勝利にできることも判明しています。
表示される得点についても解析されており、乱数を利用してスコアを決定している処理が確認されています。
一見すると通常のプレイヤーが使うことを想定したチートとは思えない機能もあり、開発中の動作確認などに利用されていた可能性も考えられます。
ただし、解析記事ではこれらの用途について断定されておらず、あくまでROM内部に存在する処理と、その入力によって発生する動作が確認された形となっています。
Custom Leagueなどを解放するコードだけで36種類
50種類という数字が大きくなっている理由のひとつが、「Custom League」「Custom Tournament」「Custom Playoff」に関連する大量のコードです。
本来これらのカスタムモードは、対応するリーグやトーナメントなどで一度勝利することで利用できるようになりますが、その条件を直接満たした状態にする入力列が用意されています。
内訳はLeague用が12種類、Tournament用が12種類、Playoff用が12種類で、これだけで合計36種類となります。各地域やリーグに対応するコードが個別に存在しており、いずれかを入力することで対応するカスタムモードを利用可能にできるとのことです。
これらにチートメニュー用の10種類、背景関連の2種類、試合を即終了させる1種類を加えると49種類になります。
そして、最後に残された50番目には、さらに謎めいた処理が存在していました。
50番目のコードは効果がいまだ完全には不明
50番目の入力列についてもROMから特定されていますが、そのゲーム上の効果については完全には解明されていません。
このコードはトップメニュー側ではなく、試合中にStartボタンを押して表示するOptions画面から入力する必要があります。また、トップレベルのOptions画面を経由すると状態がリセットされてしまうとのことです。
コードを有効にすると、味方選手がボールを受け取ったりジャンプしたりした際に、「JOYPAD_move_farthest_to」という名前の関数が呼び出されるところまでは解析されています。
しかし、実際のゲームプレイにどのような変化を与えているのかについては効果が非常に微妙で、解析したBo氏自身も明確には説明できないとしています。
ちなみに、続編のGenesis版『FIFA 97: Gold Edition』にも、ほぼ同じ仕組みのチート判定処理が存在していることが今回の調査で確認されています。
ただし、入力するボタン列は異なるほか、『FIFA Soccer 96』に存在する背景関連の2種類、試合終了用、そして用途が完全には判明していないコードの計4種類は存在しないとのことです。
30年以上前に発売されたゲームであっても、ROMを解析し直すことで、当時知られていなかった機能や、長年正しいと思われていた情報の誤りが判明することがあります。
今回確認された50種類についても、すべてが新発見のチートというわけではありませんが、『FIFA Soccer 96』が実際にこれだけの入力パターンを内部でチェックしていたことが解析によって明らかになったのは、レトロゲームの保存や研究という面でも興味深い発見といえそうです。
via.SEGAbits「Under the microscope: FIFA Soccer 96」















ダンジョンズ&ドラゴンズ ビジュアル大全 半世紀を超えるその歴史とアート









ゲームコンソール2.0