ポケモンのデータ構造

ポケモンのデータ構造(赤緑青ピカチュウ)

手持ち

赤緑青ピカチュウではアドレスD123hに手持ちポケモンの所持数が記録され、6匹分のポケモンの外見(各1バイト)→中身(各44バイト)→親名(各6バイト)→ニックネーム(各6バイト)の順で並ぶ。
その下には図鑑の情報→手持ち道具の情報→所持金→ライバルの名前→設定→バッジ…とデータが並ぶ。
なお、主人公の名前は手持ちポケモン情報の直前に情報が入っている(D11Dh~D122h)ため、セレクトバグでは通常書き換わらない。
戦闘中のポケモンのステータスはレポートデータよりも手前のアドレスで処理されており、「たたかう」を選択した時、現在HPがポケモンのデータに記録されるようになっている。

アドレス対応表
内容 アドレス 備考
1匹目 2匹目 3匹目 4匹目 5匹目 6匹目
手持ち総数 D123           最大6匹まで。バッジおじさんバグではここが書き換わることがある。
5かい(赤緑青)を使用するとここに飛ぶ。
外見 D124 D125 D126 D127 D128 D129 外見・中身共に図鑑ナンバーではなく内部コードが入る。
手持ちの終端にはFFhが入り、それ以降のデータは表示されないようになる。
アネ゙デパミ゙は終端にいないFFh。
手持ち終端 D12A           手持ちを1度でも6匹にすればここは原則FFhとなるが、
ゲーム開始からポケモンが埋まっていない領域は(中身含めて)00hとなっている。
種族 D12B D157 D183 D1AF D1DB D207 中身の種族
現在HP上桁(256) D12C D158 D184 D1B0 D1DC D208 256以上のHPを扱うために存在している。
現在HP下桁(1) D12D D159 D185 D1B1 D1DD D209 ひんし状態はHPが0か否かで判断している。
引き取りレベル D12E D15A D186 D1B2 D1DE D20A ポケモンをボックスに預けると、現在レベルがここに記録される。
状態異常 D12F D15B D187 D1B3 D1DF D20B まひ・こおり・やけど・どく・ねむり(持続ターン含む)が記録される。
bit4(どく状態)が立っていると、フィールドで4歩ごとにHPが1減る。
タイプ1 D130 D15C D188 D1B4 D1E0 D20C 外見・中身・タイプが一致していないとタイムカプセルで弾かれる。
タイプ2 D131 D15D D189 D1B5 D1E1 D20D タイプが1つのみのポケモンの場合、タイプ2にはタイプ1と同じ値が入る。
持ち物 D132 D15E D18A D1B6 D1E2 D20E 基本的には捕まえた時点のポケモンの被捕獲度が入る。(ピカチュウ版の一部ポケモンには例外処理あり)
これがそのポケモンではありえない数値になっていたりするとタイムカプセルで弾かれる?
技1 D133 D15F D18B D1B7 D1E3 D20F 16~19匹目の外見が技1~4に対応している。
5かい使用時、2匹目メノクラゲ→3匹目プリンで飛ぶのが3匹目の技1
技2 D134 D160 D18C D1B8 D1E4 D210 技は00hが空白。空白より下にある技はポケモンセンターで回復しない。
技3 D135 D161 D18D D1B9 D1E5 D211 戦闘中に「ない」技にカーソルが合わさってしまうと大変なことになる。
技4 D136 D162 D18E D1BA D1E6 D212 2匹目の技と入れ替えるには45~48番目を参照する必要がある。
親ID上桁(256) D137 D163 D18F D1BB D1E7 D213 2バイト値のため、第二世代までのIDNo.上限は65535。
親ID下桁(1) D138 D164 D190 D1BC D1E8 D214 この値が主人公(D2D8h・D2D9h)と違う時に、取得経験値が1.5倍になる。
経験値上桁(65536) D139 D165 D191 D1BD D1E9 D215 7番目の技でおなじみ。
経験値中桁(256) D13A D166 D192 D1BE D1EA D216 「てテむ」で3匹目のここに飛べる。
経験値下桁(1) D13B D167 D193 D1BF D1EB D217 9番目の技でおなじみ。
HP努力値上桁(256) D13C D168 D194 D1C0 D1EC D218 FFhまで入れなくてもF7h以上あれば努力レベルは最大になる。(63002dがF61Ahなため)
「てナむ」で3匹目のここに飛べる。
HP努力値下桁(1) D13D D169 D195 D1C1 D1ED D219  
こうげき努力値上桁(256) D13E D16A D196 D1C2 D1EE D21A 1回のドーピングで入る数値は0A00h(2560d)。フルドーピングすると上桁が64hになる。
こうげき努力値下桁(1) D13F D16B D197 D1C3 D1EF D21B  
ぼうぎょ努力値上桁(256) D140 D16C D198 D1C4 D1F0 D21C  
ぼうぎょ努力値下桁(1) D141 D16D D199 D1C5 D1F1 D21D 9番目のポケモンとの入れ替えではこの数値が重要。
すばやさ努力値上桁(256) D142 D16E D19A D1C6 D1F2 D21E  
すばやさ努力値下桁(1) D143 D16F D19B D1C7 D1F3 D21F  
とくしゅ努力値上桁(256) D144 D170 D19C D1C8 D1F4 D220  
とくしゅ努力値下桁(1) D145 D171 D19D D1C9 D1F5 D221  
こうげき・ぼうぎょ個体値 D146 D172 D19E D1CA D1F6 D222 HPの個体値はそれぞれの個体値の0bit目(つまり奇数か偶数か)をもとに算出される。
すばやさ・とくしゅ個体値 D147 D173 D19F D1CB D1F7 D223  
技1PP D148 D174 D1A0 D1CC D1F8 D224 技とPPのアドレスは21バイトも離れている。入れ替える場合はその位置関係にも注意が必要。
5かい使用時、2匹目メノクラゲ→3匹目ニャースで飛ぶのが2匹目の技1PP
技2PP D149 D175 D1A1 D1CD D1F9 D225 ポイントアップ1回につき、内部数値は40h(64d)増加する。(最大値の計算はまた別)
技3PP D14A D176 D1A2 D1CE D1FA D226 PP0の技のPPを何かしらの形で消費してしまうと現在PPが63になるが、
これは00h→FFh、C0h→BFh、80h→7Fh、40h→3Fhになるからである。
技4PP D14B D177 D1A3 D1CF D1FB D227  
レベル D14C D178 D1A4 D1D0 D1FC D228 レベルが101d(65h)を超えると、他人のポケモンをグリーンバッジで制御できなくなる。
ふしぎなアメによるレベルアップでは現在の経験値に関係なくここのみ見る。
最大HP実数値上桁(256) D14D D179 D1A5 D1D1 D1FD D229 手持ちにいるときは計算結果が実数値として格納されている。
最大HP実数値下桁(1) D14E D17A D1A6 D1D2 D1FE D22A 7番目の技PPはここ。
技消し目的で使うと
こうげき実数値上桁(256) D14F D17B D1A7 D1D3 D1FF D22B  
こうげき実数値下桁(1) D150 D17C D1A8 D1D4 D200 D22C 9番目の技PPはここ。
ぼうぎょ実数値上桁(256) D151 D17D D1A9 D1D5 D201 D22D  
ぼうぎょ実数値下桁(1) D152 D17E D1AA D1D6 D202 D22E  
すばやさ実数値上桁(256) D153 D17F D1AB D1D7 D203 D22F  
すばやさ実数値下桁(1) D154 D180 D1AC D1D8 D204 D230  
とくしゅ実数値上桁(256) D155 D181 D1AD D1D9 D205 D231  
とくしゅ実数値下桁(1) D156 D182 D1AE D1DA D206 D232  
内容 1匹目 2匹目 3匹目 4匹目 5匹目 6匹目 備考
親名1文字目 D233 D239 D23F D245 D24B D251 主人公の名前はゲーム開始時に入れるもののため、4文字以下の場合、終端の下は00hになっている。
親名2文字目 D234 D23A D240 D246 D24C D252 タイムカプセルで第二世代に送ると、終端の下が50hで上書きされるため、初代に戻したときにニックネームを変更できなくなることがある。(VC版特有?)
親名3文字目 D235 D23B D241 D247 D24D D253 初代のNPC交換の親名は「トレーナー」になっているが、内部的には1文字(5Dh)で記述されており、3文字目以降はゴミデータが入る。
どこかしらドア中、1匹目のここが変わってしまうことがある。(大抵は空データのはずだが)
親名4文字目 D236 D23C D242 D248 D24E D254 7~12匹目のポケモンと入れ替える場合、一部データの入れ替え箇所が中身・親名・ニックネームで重複する点に注意。
親名5文字目 D237 D23D D243 D249 D24F D255 13~19匹目のポケモンと入れ替える場合、親名が図鑑のデータに干渉する。
親名終端 D238 D23E D244 D24A D250 D256 親名が5文字ならここは50hになるが、初代の場合、4文字以下だと00hになる。
内容 1匹目 2匹目 3匹目 4匹目 5匹目 6匹目 備考
ニックネーム1文字目 D257 D25D D263 D269 D26F D275 14匹目のニックネーム1文字目は道具2番目の個数と対応している。
ニックネーム2文字目 D258 D25E D264 D26A D270 D276 ニックネームを付けなかった場合、種族名の空きは50hで埋められる。
(一応NPC交換ポケモンも空きを50hで埋めている)
ニックネーム3文字目 D259 D25F D265 D26B D271 D277 7~13匹目のポケモンと入れ替える場合、ニックネームが図鑑のデータに干渉する。
ニックネーム4文字目 D25A D260 D266 D26C D272 D278  
ニックネーム5文字目 D25B D261 D267 D26D D273 D279 どこかしらドア中、3匹目の1文字目次第で2匹目のここが変わってしまうことがある。
ニックネーム終端 D25C D262 D268 D26E D274 D27A 5文字なら50hになるが、4文字以下の場合ゴミデータが入ることも。

育て屋

育て屋に預けられているポケモンは、手持ちとは違いニックネームが最初に来るようになっている。
外見や実数値のデータは記録されないため、引き取るときは中身準拠の種族になり、ステータスも再計算されて帰ってくる。
初代特有の仕様で、秘伝技を持ったポケモンは預けられないことに注意。

アドレス 内容 備考
D983 サファリボール個数 サファリゲーム開始時に30個(1Eh)補充され、終了後も残ったボールの個数はそのまま残る。
あなぬけのヒモ・あなをほるを使用すると0にリセットされる。
なかよしバッヂ(赤緑青)使用時に飛ぶのはここ。
D984 そだてや預け有無 00hでないとき、1歩歩くごとに経験値が入る。
預かっていないときは、最後に預けたポケモンの情報が残ったままになる。
D985 ニックネーム1文字目  
D986 ニックネーム2文字目  
D987 ニックネーム3文字目  
D988 ニックネーム4文字目  
D989 ニックネーム5文字目  
D98A 終端(50)  
D98B 親名1文字目  
D98C 親名2文字目  
D98D 親名3文字目  
D98E 親名4文字目  
D98F 親名5文字目  
D990 終端(50)  
D991 種族  
D992 現在HP上桁  
D993 現在HP下桁  
D994 引き取りレベル 預かった時のレベルと経験値から計算されるレベルとの差分で料金が請求される。(最大レベル100、料金9999円)
D995 状態異常  
D996 タイプ1  
D997 タイプ2  
D998 持ち物  
D999 技1 引き取る際にレベルアップで技を覚える時、すでに技が4つある場合は技1を消して技4に新しい技が入る。
D99A 技2  
D99B 技3  
D99C 技4  
D99D 親ID上桁(256)  
D99E 親ID下桁(1)  
D99F 経験値上桁(65536) この値が大きすぎる(FFhとか)と引き取ろうとしたときにソフトロックを起こす。(レベルが計算できなくなるため)
特に105万型のLv.1で起きがち。(これは0以上にするのにそこまでかからないが)
D9A0 経験値中桁(256)  
D9A1 経験値下桁(1)  
D9A2 HP努力値上桁(256)  
D9A3 HP努力値下桁(1)  
D9A4 こうげき努力値上桁(256)  
D9A5 こうげき努力値下桁(1)  
D9A6 ぼうぎょ努力値上桁(256)  
D9A7 ぼうぎょ努力値下桁(1)  
D9A8 すばやさ努力値上桁(256)  
D9A9 すばやさ努力値下桁(1)  
D9AA とくしゅ努力値上桁(256)  
D9AB とくしゅ努力値下桁(1)  
D9AC こうげき・ぼうぎょ個体値  
D9AD すばやさ・とくしゅ個体値  
D9AE 技1PP  
D9AF 技2PP  
D9B0 技3PP  
D9B1 技4PP  

ボックス

現在使用中のボックスのデータは育て屋データの直後にあり、外見(各1バイト)→中身(各33バイト)→親名(各6バイト)→ニックネーム(各6バイト)の順で並んでいる。
ステータスの実数値や現在レベルは記録されず、引き出したときに数値が再計算される。
現在使用中のボックス番号はD51Fの下位ビットに格納されている(0~7で1~8に対応)が、ここはパソコンの道具51番目(50種預けたことがあれば「やめる」になっている)の個数に対応している。
パソコンの道具預け数を拡張して弄るときには注意すること。

アドレス 内容 備考
D9B2 預け数 かいがらバッヂ(ピカチュウ版)で飛ぶのはここ。
D9B3 1匹目外見 文字「てうる」でここに飛べる。
D984
~D9D0
2~30匹目外見  
D9D1 やめる(FF)  
D9D2 種族 文字「てめる」でここに飛べる。
D9D3 現在HP上桁(256) 金銀以降と違い、ボックスに預けても回復はしない。
D9D4 現在HP下桁(1)  
D9D5 引き取りレベル 預けた時のレベルが一覧や強さを見るでは表示される。
D9D6 状態異常  
D9D7 タイプ1  
D9D8 タイプ2  
D9D9 持ち物  
D9DA 技1  
D9DB 技2  
D9DC 技3  
D9DD 技4  
D9DE 親ID上桁(256)  
D9DF 親ID下桁(1)  
D9E0 経験値上桁(65536)  
D9E1 経験値中桁(256)  
D9E2 経験値下桁(1)  
D9E3 HP努力値上桁(256)  
D9E4 HP努力値下桁(1)  
D9E5 こうげき努力値上桁(256)  
D9E6 こうげき努力値下桁(1)  
D9E7 ぼうぎょ努力値上桁(256)  
D9E8 ぼうぎょ努力値下桁(1)  
D9E9 すばやさ努力値上桁(256)  
D9EA すばやさ努力値下桁(1)  
D9EB とくしゅ努力値上桁(256)  
D9EC とくしゅ努力値下桁(1)  
D9ED こうげき・ぼうぎょ個体値  
D9EE すばやさ・とくしゅ個体値  
D9EF 技1PP  
D9F0 技2PP  
D9F1 技3PP  
D9F2 技4PP  
D9F3
~DA13
2匹目データ DA00は2匹目の親ID下桁
DA14
~DDAF
3~30匹目データ いしはらで飛べるFA58hは、5匹目現在HP下桁(のミラー)
4かいで飛べるFA67は、5匹目HP努力値上桁(のミラー)
DDB0 1匹目親名1文字目  
DDB1 1匹目親名2文字目  
DDB2 1匹目親名3文字目  
DDB3 1匹目親名4文字目  
DDB4 1匹目親名5文字目  
DDB5 終端(50)  
DDB6
~DE63
2~30匹目親名 「てEん」の代用として使われることのある「てぽん」は、26匹目の親名3文字目。データリセット後で何もデータが入っていなければ1匹目のニックネームまで飛べる。主人公の名前を空白5文字などにしても一応できるが。
DE64 1匹目ニックネーム1文字目 文字「てEん」で飛ぶのはここ。
現在の任意コード実行の定番ポイント。
DE65 1匹目ニックネーム2文字目  
DE66 1匹目ニックネーム3文字目  
DE67 1匹目ニックネーム4文字目  
DE68 1匹目ニックネーム5文字目  
DE69 終端(50)  
DE70
~DF17
2~30匹目ニックネーム 「てEん」の代用として使われることのある「てウん」は、6匹目のニックネーム1文字目。

タグ:

+ タグ編集
  • タグ:
最終更新:2024年12月26日 00:07