7番目の技にはそのポケモンの経験値上桁(65536の桁)が入っている。
これを適当に大きくすること上限を大きく上回る経験値にし、戦闘や育て屋で経験値を再計算させることでレベルを100にできる。
入れ替える技だが、そらをとぶ(13h)以降の技ならどの経験値タイプでもLv.100に達する。
わるあがき(A5h)までの普通の技の範囲なら問題ないため通常は気にしなくていいが、わざマシン55(FFh)とかと入れ替えると戦闘以外でレベルを上げようとするとフリーズすることがある点に注意。
これは経験値からレベルを再計算する際に無限ループが起こってしまうケースが存在するため。(戦闘だとレベル100に必要な経験値以上ならレベル100になるためフリーズしない)
各ポケモンがどの経験値タイプなのかは各自ググって
経験値タイプ | フリーズ経験値 (~16777215) |
該当レベル |
---|---|---|
80万型 | 13265100 (CA68CCh) |
255 |
100万型 | 16581375 (FD02FFh) |
255 |
105万型 | 16777162 (FFFFCAh) |
1 |
125万型 | 16640066 (FDE842h) |
237 |
一応、105万型はレベル1でも経験値が0~8(9からレベル2になる)の場合は問題が起こらない。もちろんレベル100にするという目的とはかみ合わないが
参考(フリーズする原理とか):まへっち(@mahetti)氏のX(旧Twitter)ポスト
この先は分岐となる。
戦闘でそのまま敵を倒せば、(経験値が十分なら)Lv.100になる。この場合、金銀以降と違って飛ばしたレベルの技は覚えられない。
ここでレベルが100を超えてしまう(94とかで止まる場合も怪しい)場合は見た目と中身が一致していないので、一度育て屋に預けてみるといいかもしれない。
技を入れ替えた後に逃げると、レベルと経験値が一致しないままポケモンを連れ歩ける。
これを育て屋に預ければ、レベル100に至る途中の技を覚えることができる。しかし、初代の仕様として秘伝技を持ったポケモンは育て屋に預けられない。
もしくはレベルと経験値が一致しないまま金銀クリスタルに(タイムカプセルで)送り、戦闘(演出が長くなるので頭出し・学習装置推奨)でレベルを上げると途中の技を取捨選択することもできる。(わざテーブルはバージョン準拠になる)
原理上、ピカ版に送って育て屋に預け、ピカ版限定の技を覚えさせることも一応可能(大半は金銀で何とかなるが)
技を入れ替えた後に逃げるのは育て屋利用と同様だが、ボックスに預けてから引き出すと、経験値が再計算されずにレベルが再計算される。
これがLv.101以上になっている場合はふしぎなアメでレベルをさらに上げることができる。
しかし、上限突破しているレベルは戦闘を挟むと100に戻ってしまうため、あくまでステータスを見て自己満足する程度の用途となる。
また、上述のフリーズするレベル(以上ではなく該当レベルぴったり)の時はボックスや育て屋に預けないように。ボックスの場合はまだ逃がしたりポケスタで移動したりできるが、育て屋に預けてしまうと以降育て屋が利用できなくなる。
それに関連して、経験値105万型のLv.246~255、125万型のLv.238~255をパソコンに預けると引き出した際レベルが下がる。
Lv.255からさらに上げようとするとLv.0になるが、これを金銀クリスタルに送ってLv.1にすると、初期技を覚えることが可能だったりする。(初代では初期技のテーブルが発生時にしか参照されないので無理)
任意コード実行でLv.100にしようとする場合、2つの方法が考えられる。
どちらもできるよう、書き換え先のアドレスは両方記載してみることにする。
手持ち位置 | 経験値上桁 | レベル |
---|---|---|
1 | D139 | D14C |
2 | D165 | D178 |
3 | D191 | D1A4 |
4 | D1BD | D1D0 |
5 | D1E9 | D1FC |
6 | D215 | D228 |
例として、手持ち4匹目の経験値上桁やレベルの操作コードを紹介する。
; がむぜすそ
26 D1 ; ld h,D1
2E BD ; ld l,BD
BF ; cp a 事実上のnop
50 ; ld d,b
; ぼドづの
3E 13 ; ld a,13
32 ; ldd (hl),a
C9 ; ret
; がむぜみぼ
26 D1 ; ld h,D1
2E D0 ; ld l,D0
3E 50 ; ld a,50
; にドづの
C6 13 ; add a,13 50→63
32 ; ldd (hl),a
C9 ; ret
ポケモンの7番目は事情がかなり複雑になり、外見は(6匹埋めたことがあれば)FFh(アネ゛デパミ゛)になるのだが、中身が先頭のポケモンの親名からのデータが入れ替わることになる。
これが曲者で、親名とニックネームのデータも同時に入れ替わるため、そのまま戻してもデータが完全に戻らないという事態が発生してしまう。そのため、7番目(8~12番目含む)のポケモンを使った技は普段のセレクトバグとは勝手の違うものになる。今となっては任意コード実行を使用した方が無難と言える。(この技に限らないが)
ポケモンの名前を変える!(裏技研究所より)
この方法で親名を変更したポケモンはこうげき~すばやさの数値がおかしくなっている(HP努力値下桁~すばやさ努力値上桁と入れ替わる)ため、一度ボックスに預ける等でステータスを再計算させよう。
親名変更の応用で、埋め込んだ親名をニックネームに移し替える。
任意コード実行で親名やニックネームを書き換える場合、対応するアドレスは以下のようになる。
親名 | ニックネーム | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 1 | 2 | 3 | 4 | 5 | 6 | |
1文字目 | D233 | D239 | D23F | D245 | D24B | D251 | D257 | D25D | D263 | D269 | D26F | D275 |
2文字目 | D234 | D23A | D240 | D246 | D24C | D252 | D258 | D25E | D264 | D26A | D270 | D276 |
3文字目 | D235 | D23B | D241 | D247 | D24D | D253 | D259 | D25F | D265 | D26B | D271 | D277 |
4文字目 | D236 | D23C | D242 | D248 | D24E | D254 | D25A | D260 | D266 | D26C | D272 | D278 |
5文字目 | D237 | D23D | D243 | D249 | D24F | D255 | D25B | D261 | D267 | D26D | D273 | D279 |
6文字目 | D238 | D23E | D244 | D24A | D250 | D256 | D25C | D262 | D268 | D26E | D274 | D27A |
下位アドレスに入力不能文字が多く、起点を決めるには一工夫必要。
例として、手持ち4匹目のニックネームを5匹目と同じにするコードを紹介する。
; がめぜ空ョ
26 D2 ; ld h,D2
2E 7F ; ld l,7F
AF ; xor a
50 ; ld d,b
; ひラぶゾさ
CB A5 ; res 4,l
3C ; inc a
0E BB ; ld c,BB
50 ; ld d,b
; ぺなヅめめ
47 ld b,a
C5 ; push bc
11 D2 D2 ; ld de,D2D2
50 ; ld d,b
; ひジゾギぱ
CB 0B ; rrc e
0E 06 ; ld c,06
44 ; ld b,h
50 ; ld d,b
; ぺガの
47 ; ld b,a
05 ; dec b
C9 ; ret
サブルーチン011Bhは、hlレジスタで示したアドレスからdeレジスタで示したアドレスに、bcレジスタで示したサイズのコピーを行うものとなる。
そのため今回はhlレジスタにD26Fh、deレジスタにD269h、bcレジスタに0006hを入れることを目標とする。
6Fhは7Fhをres 4する形で作り、69hはD2hをrrcする形で作っている。
011Bhへのジャンプは01hが入力できないため、bcレジスタで011bhを作ってスタックに入れてretする形で実現している。(終了処理のretは飛んだ先で賄う)
応用で主人公(D11Dh~)やライバル(D2CEh~)の名前を書き換えることも可能。
赤緑後期版なら上記のコードで大丈夫だが、サブルーチン011Bhが使用できない場合のために、未使用版も付録する。
ループの都合上、ボックスの6匹目から記述する形にする。(1匹目に「てウん」を添えれば1匹目からも実行できる)
; がめぜ空ョ
26 D2 ; ld h,D2
2E 7F ; ld l,7F
AF ; xor a
50 ; ld d,b
; ひラヅめめ
CB A5 ; res 4,l
11 D2 D2 ; ld de,D2D2
50 ; ld d,b
; ぱひジゾギ
44 ; ld b,h
CB 0B rrc e
0E 06 ; ld c,06
50 ; ld d,b
; ごデドプそ
DE94:
2A ; ldi a,(hl)
12 ; ld (de),a
13 ; inc de
42 ; ld b,d
BF ; cp a
50 ; ld d,b
; ゼつナんの
0D ; dec c
C2 94 DE ; jp nz,DE94
C9 ; ret
ポケモン情報 | 対応データ | アドレス |
---|---|---|
外見 | 手持ち終端(基本FF) | D12A |
中身 | 1匹目親名1文字目 | D233 |
現在HP上桁 | 1匹目親名2文字目 | D234 |
現在HP下桁 | 1匹目親名3文字目 | D235 |
引き取りレベル | 1匹目親名4文字目 | D236 |
状態異常 | 1匹目親名5文字目 | D237 |
タイプ1 | 1匹目親名終端 | D238 |
タイプ2 | 2匹目親名1文字目 | D239 |
持ち物 | 2匹目親名2文字目 | D23A |
技1 | 2匹目親名3文字目 | D23B |
技2 | 2匹目親名4文字目 | D23C |
技3 | 2匹目親名5文字目 | D23D |
技4 | 2匹目親名終端 | D23E |
親ID上桁 | 3匹目親名1文字目 | D23F |
親ID下桁 | 3匹目親名2文字目 | D240 |
経験値上桁(65536) | 3匹目親名3文字目 | D241 |
経験値中桁(256) | 3匹目親名4文字目 | D242 |
経験値下桁(1) | 3匹目親名5文字目 | D243 |
HP努力値上桁 | 3匹目親名終端 | D244 |
HP努力値下桁 | 4匹目親名1文字目 | D245 |
こうげき努力値上桁 | 4匹目親名2文字目 | D246 |
こうげき努力値下桁 | 4匹目親名3文字目 | D247 |
ぼうぎょ努力値上桁 | 4匹目親名4文字目 | D248 |
ぼうぎょ努力値下桁 | 4匹目親名5文字目 | D249 |
すばやさ努力値上桁 | 4匹目親名終端 | D24A |
すばやさ努力値下桁 | 5匹目親名1文字目 | D24B |
とくしゅ努力値上桁 | 5匹目親名2文字目 | D24C |
とくしゅ努力値下桁 | 5匹目親名3文字目 | D24D |
こうげき・ぼうぎょ個体値 | 5匹目親名4文字目 | D24E |
すばやさ・とくしゅ個体値 | 5匹目親名5文字目 | D24F |
技1PP | 5匹目親名終端 | D250 |
技2PP | 6匹目親名1文字目 | D251 |
技3PP | 6匹目親名2文字目 | D252 |
技4PP | 6匹目親名3文字目 | D253 |
レベル | 6匹目親名4文字目 | D254 |
最大HP上桁 | 6匹目親名5文字目 | D255 |
最大HP下桁 | 6匹目親名終端 | D256 |
こうげき上桁 | 1匹目ニックネーム1文字目 | D257 |
こうげき下桁 | 1匹目ニックネーム2文字目 | D258 |
ぼうぎょ上桁 | 1匹目ニックネーム3文字目 | D259 |
ぼうぎょ下桁 | 1匹目ニックネーム4文字目 | D25A |
すばやさ上桁 | 1匹目ニックネーム5文字目 | D25B |
すばやさ下桁 | 1匹目ニックネーム終端 | D25C |
とくしゅ上桁 | 2匹目ニックネーム1文字目 | D25D |
とくしゅ下桁 | 2匹目ニックネーム2文字目 | D25E |
親名1文字目 | 1匹目ニックネーム1文字目 | D257 |
親名2文字目 | 1匹目ニックネーム2文字目 | D258 |
親名3文字目 | 1匹目ニックネーム3文字目 | D259 |
親名4文字目 | 1匹目ニックネーム4文字目 | D25A |
親名5文字目 | 1匹目ニックネーム5文字目 | D25B |
親名終端 | 1匹目ニックネーム終端 | D25C |
ニックネーム1文字目 | 捕まえたフラグ1~8 | D27B |
ニックネーム2文字目 | 捕まえたフラグ9~16 | D27C |
ニックネーム3文字目 | 捕まえたフラグ17~24 | D27D |
ニックネーム4文字目 | 捕まえたフラグ25~32 | D27E |
ニックネーム5文字目 | 捕まえたフラグ33~40 | D27F |
ニックネーム終端 | 捕まえたフラグ41~48 | D280 |
上記の通り、ただでさえ1匹目のニックネームが二重に入れ替わることに加え、入れ替えるポケモンの位置によって親名も二重に入れ替わってしまう。
3~6匹目の場合は4回の入れ替えで元に戻せるが、1・2匹目の場合はニックネームの入れ替えが三重に行われる関係上10回も入れ替えないと完全に元に戻らなくなる。