バグ技(セレクトバグ)ってどんな仕組み?【初代ポケモン】
今回は初代ポケモンのバグの仕組みについて解説。
初代ポケモンっていろいろなバグ技がありますよね。
レベル100にしたり
ミュウを出現させたり
この世の終わりのようなカオス状態になったり…
実は、これらのバグは全て同じ仕組みをもとに発生しています。
それは、セレクトフラグが消えないというバグ。
セレクトバグとも呼ばれていますね。
- 「なぜこんなことができるんだろう?」
- 「バグってなぜ起こるの?仕組みを知りたい!」
- 「バグを利用して究極のポケモンを作りたい!」
と、気になった方も多いはず。
今回は『レベル100にするバグ技』を例にして、バグの仕組みを解説したいと思います。
バグの仕組みが理解できるようになれば、
- ありえない技構成
- ありえないステータス
などなど、究極ポケモンを誕生させることも可能になります。
レベル100バグ技の手順
まずはレベル100バグ技の手順をおさらいしておきます。
レベル100バグ技の手順
①「どうぐ」を開き、七番目のどうぐのところでセレクトボタン押下
②Bボタンを2回押下して戻る
③野生のポケモンに出会い、戦闘モードに入る
④「たたかう」を選択し、4番目の技のところでセレクトボタン押下
⑤通常通り敵ポケモンを倒す
注意事項や事前準備などの詳細は下記記事でご確認を。
『初代ポケモンのバグ技【レベル100&ミュウ捕獲の手順を分かりやすく解説】』
バグの仕組みを解説
さて。
それでは、レベル100バグ技をもとにセレクトバグの仕組みについて解説していきます。
※図解の画像はクリックで拡大できます。
バグの仕組みを理解するにあたって、まずは初代ポケモンのメモリの使われ方(記憶のされ方)を把握する必要があります
<メモリ内部のイメージ>
※ちなみに・・IDは2バイト、経験値は3バイト分の領域が使用されており各値の組み合わせにより構成されています。
例えば、戦闘中にわざの3番目でセレクトを押すと「3番目と入れ替えるよ~」というフラグが立ちます。
次にわざの1番目でセレクトを押すと、フラグがたっていた3番目と値が交換されてわざが入れ替わります。
それでは、上記を踏まえてレベル100バグ技の手順を見てみましょう。
- 道具の7番目でセレクトを押す
→上記解説と同様に「7番目と入れ替える」というフラグが立つ。 - Bボタンを2回押して道具の画面を閉じる
→画面を閉じても「7番目と入れ替える」というフラグが立ったままになっている。
※ここがバグの原因!
「画面を閉じたらフラグもキャンセルする」という処理が施されていればバグは起きなかったはず!
- 戦闘画面で「たたかう」を開き、4番目の技の所でセレクトを押す
→セレクトした位置(4番目)とフラグが立っている位置の値が交換される
経験値の上桁に技4の値が入りこむ為、例えばコラッタの場合は値が16以上の技と入れ替えると経験値が100万を超えてレベル100に到達します。
以上が、バグが起こる仕組みです。
バグ技はこういったプログラム上の不備を突いて、ありえない数値を実現させているんですね。
バグの仕組みの詳細・注意点【初代ポケモン】
ここからは少しシステムちっくな話になります。
バグの仕組み詳細
メモリの仕組みは下記のようなイメージ(ややこしいですが)
- 1バイト(8ビット)で表現できるパターンは256種類
(2進数だと8桁、16進数だと2桁で表現される) - IDの場合、2バイトぶん確保されているため256×256で65536パターンある(00000~65535までのIDが割り振られる)
- 経験値も同様に、下の2バイトまでで最大65536まで表現できる。
- 経験値の下2バイト65536に上1バイトの値を入れ込むことで経験値100万以上が実現
- 前述した「値が16の技」を16進数に変換すると「10」になる。
- 上記、経験値の3つのバイトを合わせて表示すると「1065536」となり、経験値100万以上となる
レベル100にならない場合も
ここまでの仕組みを踏まえた上で、いくつか注意点があります。
一つ目の注意点は、このバグ技でレベル100に届かないことがあるということ。
下記のわざは、コードの値が16(16進数でいうところの「10」)に満たないため経験値100万までは届きません(括弧内は技コード)。
- はたく(01)
- からてチョップ(02)
- おうふくビンタ(03)
- れんぞくパンチ(04)
- メガトンパンチ(05)
- ネコにこばん(06)
- ほのおのパンチ(07)
- れいとうパンチ(08)
- かみなりパンチ(09)
- ひっかく(0A)
- はさむ(0B)
- ハサミギロチン(0C)
- かまいたち(0D)
- つるぎのまい(0E)
経験値100万に満たないので、ポケモンによってはレベル100に届かないこともあります。
覚えている技も変化
レベル100バグ技を実行する際、技を入れ替えた直後に別の技に変化します(技コードが入れ替わるため)。
ただし、戦闘時の技コードと通常時の技コードは別のメモリ番地に格納されており、管理のされ方が異なります。
そのため、戦闘が終了して再度わざを確認すると、入れ替えた直後と違った技に変化することも。
存在しない技コードが入り込んでしまった場合、セレクトした部分は「技を覚えていない」状態になります。
HP表示がバグることも
残りHPについても、戦闘時と通常時で管理方法が異なるためHP表示がバグって突き抜けてしまう場合があります。
HP表示がバグってしまったら、ポケモンセンターで回復させるかパソコンにポケモンを預ければOK。
※預けた際に、正しい「最大HP」の値が「残りHP」の番地に再入力されるため治るのだと思われます。
バグの仕組みは応用できる
勘の良い方は気付いたかもしれないですが、セレクトバグの仕組みを応用すれば、ポケモンに好きな技を覚えさせることが出来ちゃいます。
具体的にはなみのりピカチュウやそらとぶカビゴンなどです。
『初代ポケモンの技変更バグ手順【すぐできる鬼畜コンボ実現】』
さらに、努力値や個体値をMAXにすることも可能です(計算など少し手間はかかりますが)。
初代ポケモンマニアとしては夢が広がりますね。
さらにバグ技を極めると、めちゃつよなポケモンも作成可能。
『初代ポケモンのバグ技でステータスALL999は可能!【最強】』
セレクトバグはVC版にも対応
今回紹介したセレクトバグは、初代(赤緑青)とVC版で再現可能です。
ピカチュウバージョンや金銀バージョン以降からは使えません。
まとめ【バグ技の仕組みを図解で解説(初代ポケモン)】
さて。初代ポケモンにおけるバグ技の仕組みはこんな感じです。
正体は「セレクトフラグが消えないバグを利用してメモリの中身を操作する」
というものだったんですね。
初代ポケモンの通常プレイに飽きた方は実践してみて下さい~。
ようこそバグの世界へ。