金銀初期から発見されている定番バグで、現在ボックスのセーブとデータ全体のセーブのタイミングのずれを利用したポケモン増殖となる。
海外版及びクリスタル版では修正されており、同様の増殖を行うためには本セーブ中のシビアなタイミングで電源を切らなければならない(データ破損のリスクが段違い)ため推奨されない。別の目的で利用されている?まあそれは…
第二世代のポケモンではデータロード時にチェックサムの不一致(データがきちんとセーブされているかのチェックでの異常)があった場合、前回のセーブデータのバックアップから自動で復旧するようになっている。
(本来はセーブ中に電源が不意に切れてしまった時などのデータ消失防止対策だが、第三世代以降と違ってバックアップから読み込んだ旨のメッセージは出ない。バックアップのチェックサムも異常だった場合は「レポートの ないようが こわれています!」になる)
しかし、ボックスの情報にバックアップが存在しない(容量の都合と思われる)ため、「ボックスの情報までセーブされた、チェックサムの一致しないセーブデータ」があった場合、前回のセーブデータのバックアップに最新のボックスの情報が入ったデータがロードされることになる。
本来こういった現象はセーブ中のシビアなタイミングで処理が中断されなければ起こらないのだが、金銀ではボックス切り替え時のセーブで現在ボックスのセーブを本セーブの前に行っていたため、容易にこの状況が生み出せてしまうのである。(というかこの場合は本セーブが行われていないのでもっとシンプル)
ちなみにエメラルドのマルチバトルタワーを利用したポケモン増殖は、手持ちの情報が先にセーブされることで起こる。そのため、こちらとは手持ちとボックスの関係が逆になっている点に注意。こっちも肝は本セーブの前。
この辺も参考に→ボックス保存ラグ(POKeMON Bug HiSTORiAより)
金銀(もっと言うと日本語版)でのみ可能。
こちらはバージョンを問わない。
「でんげんを きらないで ください」の後(セーブデータにボックスの内容を書き込む段階)に電源を切ると、ボックスの情報が中途半端に書き換えられてしまうことがある。
(これは金銀・クリスタル両方で起き、ポケスタ金銀を使うとタイミングを計りやすいとも)
空データがあるボックスで増殖を行う際、預け数と外見だけをうまく書き換えることができれば、預けたポケモンの外見を持った空データのポケモンを生成することが可能となる。(ボックスの預け数が多いほど猶予が増える)
これがいわゆる「Lv.0のバグポケモン」と呼ばれるもので、外見を元に(?)戻すとパソコンで認識できないポケモンとなる。
空データが必要になるため、一度でも一杯になったことのあるボックスでは作ることができない。
電源を切るタイミングは、
外見を元に戻すには、
バグポケモン(00hやFFh)はパソコンで認識できないためそのままでは逃がすことができない。処分法は大まかに二つあって、
といったものがある。
他には手持ちを7匹にできることを利用した消し方もある。(バグポケモンの生成目的も手持ちを7匹にすることにはあるが)
手持ちを7匹にした時点で各ポケモンの親名やニックネームがずれてしまうため、適当なポケモンは本当に逃がしてもいいものを使うことを推奨。
これも一応ボックス(を)コピーではあるため紹介。(チートまたは任意コード実行が必要)
現在ボックスの番号はボックス名の少し上(金銀ではD8AFh、クリスタルではDB65h)に格納されており、ここを書き換えてからレポートを書くことで現在ボックスを丸ごと他のボックスにコピーすることができる。
具体的には、
緑字の部分を書き換えることで、他のボックス番号を指定することが可能。
内部的にはボックス番号を00hから数えていることには注意。
ボックス番号 | 文字指定 | ニモニック |
---|---|---|
1 | ョ | xor a |
2 | ョぶ | xor a inc a |
3 | ョぶぶ | xor a inc a ×2 |
4 | ぼギダ | ld a,06 rrca |
5 | ぼガべ | ld a,05 dec a |
6 | ぼガ | ld a,05 |
7 | ぼギ | ld a,06 |
8 | ぼグ | ld a,07 |
9 | ぼゲ | ld a,08 |