フラグ付きアイテムのおすそわけ
1,動的RAM始点特定
ふしぎなカードの領域は、動的RAMと呼ばれる領域に含まれていて、リセットする毎にアドレスの位置が変化してしまう領域である
今回は正確な位置にデータを書き込む必要があるので、以下のコードを実行して動的RAMの始点を特定する
電卓リミッター解除
124,286,369×1,250,149,543
動的RAM始点特定コード
15425,05156,9946,6247
17536,11389,5283,0983
21082,69860,1843,9175
20913,81361,5824,0775
17367,22774,4780,2887
16325,77033,0957,4151
14469,63147,3411,6869
ボックス表示
2,201,724,518,571
適当なポケモンにマーキング→決定
これでマーキングしたポケモンの親IDに
動的RAM始点の下位2バイトが10進数で表示される
この画像の例では、動的RAM始点の下位2バイトは0x19E4(6628)となる
動的RAM始点の上位2バイトは表示されないが、こちらは0x0227で固定されているので
表示された親IDを16進数に直し、そこに0x02270000を加算したものが動的RAMの始点アドレスとなる
この始点アドレスにさらに0x0214を加算したものが“ベースアドレス”というものであり、以降は”P“と表記する
(上の画像の例では、ベースアドレスは0x022719E4+0x0214=0x02271BF8となる)
2,データ書き込み
HGSS用はこちら
ベースアドレス(“P”)を特定した後、以下のデータを書き込む(要電卓リミッター解除)
電卓コードは【0x2XXYYYYYYYY0007】という形になり、それを10進数に直して入力する
(XXには“データ”の値を、YYYYYYYYには“書き込む位置”を代入)
書き込む位置
データ
P+0x0048
0x01
P+0xA7F0
0x20
P+0xA7F1
0x83
P+0xA7F2
0xB8
P+0xA7F3
0xED
P+0xB01C
下記おくりものリスト参照
P+0xB169
0xFF
P+0xB16C
任意の1バイトの値(同じROMに複数の贈り物を贈る場合、贈り物ごとに0x01、0x02、0x03…と別の値にする必要がある)
P+0xB16E
0x1D
P+0xB364
0xFF
・おくりものリスト
データ
アイテム
0x07
マナフィのタマゴ
0x08
メンバーズカード
0x09
オーキドのてがみ
0x0A
てんかいのふえ
このリストに載っているデータ以外の値を入力すると、配達員から受け取る際にフリーズするようになるので注意
その場合、該当のふしぎなカードを処分することでフリーズを回避できる
入力後、パルパークから帰還してレポートを書く
3,おすそわけ
レポート後リセットして「ふしぎなおくりもの」を選択すると、「カードをみる」という項目が追加されている
(カードを見ると、色々表記がバグってしまっているが特に悪影響はない)
カードの欄から「おすそわけ」を選択し、もう一つのROMで「ともだちからうけとる」を選択
↓
Win
任意アイテム入手(フラグ無し)
書き込む位置
データ
P+0x0048
0x01
P+0xA7F0
0x20
P+0xA7F1
0x83
P+0xA7F2
0xB8
P+0xA7F3
0xED
P+0xB01C
0x03
P+0xB020
アイテム番号の下位1バイト
P+0xB021
アイテム番号の上位1バイト
P+0xB169
0xFF
P+0xB16C
任意の1バイトの値(同じROMに複数の贈り物を贈る場合、贈り物ごとに0x01、0x02、0x03…と別の値にする必要がある)
P+0xB16E
0x1D
P+0xB364
0xFF