DS乱数調整野生(DPt) 

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選択の優先順位は以下の通り。

  1. 下位2バイト(16進数表記の下2桁)の値が0x0260以上の範囲で、できるだけ小さいseed。seedを消費する作業より、初期seedを合わせる作業のほうが面倒なため。
  2. 上にある○付きのフレームからあまり離れていない。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単位で変化する。

4.2

狙いの初期seedを乱数計算の14に入れてコイントスの結果を出力する。
基準seed→狙いの初期seed
n=10
コイントスする数→10
全て出力(慣れてくれば偶数ずれのみ出力で構わない)

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消費が終わったら、あまいかおり/あまいみつを使用するか話しかける。

5.6

捕まえる。
出現した個体が目的の個体と違う場合は以下の可能性が考えられる。

  • seed消費のミス。3.1で求めた数が間違っているか、消費する数を数え間違えている。
  • 初期seedのミス。酷似したコイントスの結果になる別の初期seedになっているか、コイントスの結果を間違えている。
  • 上述の2つは出現した個体を調べることで原因を推測できる。
  • ツールのミス。そもそもツールがおかしい。

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で個体値を生成
    • シンクロ発動:seed[x]は破棄→seed[x+1]でシンクロ成否判定→seed[x+2],seed[x+3]で性格を判定→…→性格が目的のものと一致すれば以降の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で個体値を生成
    • シンクロ発動: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を見つける。
  • フィールド(メタモンなど)
    • 同じ性格で目的の個体と偶数差の個体が出るseedは消費する。
    • まず狙った種類のポケモンが出るseedを見つける。
    • そのseedの後を見て目的の個体値が出るか確認する。
    • 性格の判定はseedを2単位で消費するので、目的の個体と偶数差の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]と合わせて性格値生成、性格合致なので続けて個体値を生成して出現

*1:動かない場合は「ツール」→「アドイン」→「分析ツール」にチェック