0xは16進数表記であることを意味する。16進数と10進数の換算はwindowsの電卓を使えば出来る。(表示(V)→関数電卓(S))
ここで使用するツールは乱数計算。
必要な機能がそろっていれば他のツールでもいい。
主にポケッチに使用される乱数をpoke、主にエンカウントや個体生成などに使用される乱数をseedと表記する。
参考図
1 目的の決定
1.1
乱数計算の3で目的の個体を探す。
色違いがほしい場合は乱数計算の10で探した個体をそのまま入力する。
逆算seed数→とりあえず200
エンカウントする範囲→出現リストに値を対応させる。
20% | 20% | 10% | 10% | 10% | 10% | 5% | 5% | 4% | 4% | 1% | 1% | |
0~19 | 20~39 | 40~49 | 50~59 | 60~69 | 70~79 | 80~84 | 85~89 | 90~93 | 94~97 | 98 | 99 |
性格
がんばりや | 0 | ずぶとい | 5 | おくびょう | 10 | ひかえめ | 15 | おだやか | 20 |
さみしがり | 1 | すなお | 6 | せっかち | 11 | おっとり | 16 | おとなしい | 21 |
ゆうかん | 2 | のんき | 7 | まじめ | 12 | れいせい | 17 | なまいき | 22 |
いじっぱり | 3 | わんぱく | 8 | ようき | 13 | てれや | 18 | しんちょう | 23 |
やんちゃ | 4 | のうてんき | 9 | むじゃき | 14 | うっかりや | 19 | きまぐれ | 24 |
2 初期seedの決定
2.1
逆算されたseedから初期seedとして適当なものを選択する。
初期seed選択の優先順位は以下の通り。
- 下位2バイト(16進数表記の下2桁)の値が0x0260以上の範囲で、できるだけ小さいseed。seedを消費する作業より、初期seedを合わせる作業のほうが面倒なため。
- 上にある○付きのフレームからあまり離れていない。seed消費作業を減らすため。
EX 31-31-31-30-31-1-18のメタモンの場合
F | seed[F] | シンクロなし | シンクロ発動 | シンクロ不発 | 備考 |
-7 | 0xD402AC12 | × | × | × | |
-22 | 0x79146DCD | × | × | × | |
-35 | × | ○ | × | ||
-37 | 0xE10F6EAC | × | × | × | |
-48 | 0x0D0599B3 | × | × | × | |
-51 | 0x040E0D66 | × | × | × | ←下位2バイトが0x0D66と小さいので初期seedに適している |
-66 | 0x9216FD91 | × | × | × | |
-87 | 0x6B10E442 | × | × | × | |
-91 | 0x490DBC7E | × | × | × | |
-100 | 0xCC0C746F | × | × | × |
3 消費seedの決定
3.1
○の条件であまいかおり/あまいみつを使用するか話しかければ目的の個体が出現するので、それに合わせて初期seedからの消費seedを決定する。
シンクロなしはシンクロなし。シンクロ発動は目的の個体と同じ性格のシンクロ。シンクロ不発はシンクロなら性格は問わない。
徘徊ポケモンがいればゲーム開始時に1匹につき1消費される。
EX
2.1で示した例の場合
F=-35の位置でてれやシンクロであまいかおり/あまいみつを使えば目的の個体が出現する。
よって、F=-51を初期seedとする場合はseedを16消費すればよい。
4 初期seedの設定
4.1
以下のような値を計算する。補助用計算ツール(Excel)*1
(月×日+分+秒)の下位1バイト(16進数表記の下2桁)=狙いの初期seedの上位1バイト(上2桁)
時=狙いの初期seedの中1バイト(16進数表記の上から3,4桁目)
α=(初期seedの下位2バイト(16進数表記の下4桁))-西暦+2000)
β=α×0.0167+4.33(※1)
西暦は適当。
EX
狙いの初期seedが0x040E0D66の場合
2069年10月24日14時10分10秒
月×日+分+25=10×24+10+10=256+4=0x100+0x04=0x104→0x04
時=14=0x0E
α=0x0D66-2069+2000=3430-2069+2000=3361
β=3361×0.0167+4.33=60.46
※1
初期seedの決定式は以下の通り。
(月×日+分+秒)&0xFF×0x1000000+時×0x10000+(西暦-2000)+α
西暦月日分秒は“つづきから はじめる”を選択した時のものを利用する。
αはソフト起動から“つづきから はじめる”を選択するまでの時間に応じた値。
&0xFFは16進数表記での下2桁のみをとるという意味。
ソフト起動から“つづきから はじめる”を選択する画面まで連打した場合に、αの値とソフト起動から“つづきから はじめる”を選択するまでの時間を対応させるのがβの式。+4.33の部分は異なることがあるので必要に応じて修正する。×0.0167の部分はたいして変わらないはず。
ソフト起動から“つづきから はじめる”を選択する画面まで連打した場合、αは基本的に2単位で変化する。
5 捕まえる
5.1
必要なものをすべて準備し、ポケッチをコイントスに設定してセーブ。電源を切る。
5.2
初期seedを合わせる。
4.1で計算した時刻に“つづきから はじめる”を選択し、ソフト起動から“つづきから はじめる”を選択するまでの時間がβ秒になるようにゲームを開始する。
EX
狙いの初期seedが0x040E0D66の場合
2069年10月24日14時9分10秒にソフト起動、60.46秒後に“つづきから はじめる”を選択するようにする。
このとき、“つづきから はじめる”を選択する画面までは連打する。
5.3
コイントスをして、初期seedがあっているか4.2で出力したリストで確認する。違うのなら5.2に戻る。
最初の数回は狙っている初期seedと偶数差の初期seedが出ているか確認する。4.1で書いたように西暦を変えなければ初期seedは2単位でしか変動しないため、奇数差が頻発する場合は西暦を奇数年ずらす。
リストに合致しない結果ばかりでるようであれば、設定した時刻に“つづきから はじめる”を選択できていないと思われる。
seedとpokeは独立した別のseedだが、初期seedは同値である。そのため、初期seedからコイントスの結果を予測でき、逆にコイントスの結果から初期seedを絞り込むことができる。
5.4
3.1で求めた数だけseedを消費する。
seedを消費する方法は以下の通り。
- ぼうけんノートのつかまえた/たおした表記のあるページを表示する:2消費
- 128歩移動する:手持ちポケモンの数×1消費
偶数消費ならぼうけんノートのみ、奇数消費なら移動とぼうけんノートを使ってseedを消費する。
ぼうけんノートはゲーム開始時に強制的に開かれたものも含むので注意すること。
EX
16消費ならぼうけんノートのつかまえた/たおした表記のあるページを8回表示する。
5.5
seed消費が終わったら、あまいかおり/あまいみつを使用するか話しかける。
6 参考資料
エンカウントした時の挙動は以下の通り。いずれもseed[x]で話しかけるか、seed[x]であまいかおり/あまいみつを使用する場合を示す。
- 徘徊系(クレセリア、エムリット)
- :seed[x]〜seed[x+4]は破棄。seed[x+5]〜seed[x+8]で個体生成。
- 固定シンボル(アグノム、ヒードランなど)
- フィールド(くさむら)(メタモンなど)
- シンクロなし:seed[x]は破棄→seed[x+1]で出現ポケモン決定→seed[x+2]で性格決定→seed[x+3],seed[x+4]で性格を判定→…→性格が目的のものと一致すれば以降のseedで個体値を生成
- シンクロ発動:seed[x]は破棄→seed[x+1]で出現ポケモン決定→seed[x+2]でシンクロ成否判定→seed[x+3],seed[x+4]で性格を判定→…→性格が目的のものと一致すれば以降のseedで個体値を生成
- シンクロ不発:seed[x]は破棄→seed[x+1]で出現ポケモン決定→seed[x+2]でシンクロ成否判定→seed[x+3]で性格を決定→seed[x+4],seed[x+5]で性格を判定→…→性格が目的のものと一致すれば以降のseedで個体値を生成
seedの並び方によっては目的の個体がでないことがある。
シンクロは乱数計算の6で出力されるリスト中の確率判定の値が49以下で発動する。
性格決定は同リスト中の性格判定の値と同じ性格になる。
出現ポケモン決定は出現リストに確率判定の値を対応させる。
20% | 20% | 10% | 10% | 10% | 10% | 5% | 5% | 4% | 4% | 1% | 1% | |
0~19 | 20~39 | 40~49 | 50~59 | 60~69 | 70~79 | 80~84 | 85~89 | 90~93 | 94~97 | 98 | 99 |
対応した考え方。
- 徘徊系(クレセリア、エムリット)
- seed消費が固定なので、単純に5個前までseedを進める。
- 固定シンボル(アグノム、ヒードランなど)
- 同じ性格で目的の個体と偶数差の個体が出るseedは消費する。
- 性格の判定はseedを2単位で消費するので、目的の個体と偶数差のseedから性格判定が始まるようになればいい。
- シンクロを使う場合、目的の個体と奇数差でシンクロが発動するseedを見つける。
- シンクロを使わない場合、目的の個体と奇数差で目的の性格がでるseedを見つける。
- フィールド(メタモンなど)
EX
Fの行の個体はseed[F]とseed[F+1]で性格値、seed[F+2]とseed[F+3]で個体値が生成されたもの
F | seed[F] | HP | 攻撃 | 防御 | 特攻 | 特防 | 素早さ | 性格 | 確率判定 | 性格判定 | 内部処理 |
0 | 0x700217A2 | 21 | 8 | 21 | 27 | 5 | 0 | 12 | 43 | 10 | |
1 | 0xBD63CC6D | 0 | 27 | 5 | 10 | 21 | 25 | 22 | 73 | 18 | エンカウント(破棄) |
2 | 0xD515A0DC | 25 | 10 | 21 | 2 | 26 | 9 | 21 | 83 | 20 | 確率判定が83なのでメタモンに決定 |
3 | 0x9760E61F | 9 | 2 | 26 | 0 | 24 | 21 | 14 | 59 | 14 | 確率判定が59なのでシンクロ不発 |
4 | 0xD559CDA6 | 21 | 0 | 24 | 0 | 2 | 3 | 9 | 83 | 20 | 性格判定が20なので穏やかに決定 |
5 | 0x68498421 | 3 | 0 | 2 | 28 | 3 | 16 | 14 | 40 | 10 | seed[6]と合わせて性格値生成、不一致なので破棄 |
6 | 0x6015B080 | 16 | 28 | 3 | 15 | 23 | 5 | 6 | 37 | 9 | seed[5]と合わせて性格値生成、不一致なので破棄 |
7〜66 | 同様に破棄 | ||||||||||
67 | 0x5A48895F | 31 | 31 | 31 | 31 | 31 | 31 | 20 | 35 | 8 | seed[68]と合わせて性格値生成、性格合致なので続けて個体値を生成して出現 |