3世代乱数生成(固定乱数)

生成方法はルビー・サファイア・エメラルド・ファイアレッド・リーフグリーンで共通。
3世代の固定シンボルのポケモンはLCG(S[n+1] = (0x41C64E6D * S[n]) + 0x6073)を用い、
原則的にすべてメソッド1にて生成される。

r[n]LID
r[n+1]HID
r[n+2]B/A/H
r[n+3]D/C/S

固定シンボルのポケモンが生成される具体例

初期seed 0x000005a0でゲームを起動し、0Fでエンカウントした場合の個体を計算する。
(実際に0Fでエンカウントするのは不可能だが、この例では実機での再現性については考慮しない)
(0x41C64E6D * 0x5a0) + 0x6073 = 0x171FB798593
0x171FB798593の下位32bit、0xFB798593、を次のseedとし、
その上位16bitを疑似乱数とする
(LCGの詳しい計算方法についてはLCG(線形合同法)についてを参照)
これを繰り返すと以下のような疑似乱数の数列が生み出される

r[0]0x0000LID
r[1]0xFB79HID
r[2]0xBC23B/A/H
r[3]0x15B6D/C/S

LIDは性格値の下位16bit、HIDは性格値の上位16bitを意味する。
よって、このポケモンの性格値はFB790000になる。
次に個体値が決まる。
B/A/Hの個体値決定に使われる疑似乱数0xBC23を2進数にすると、1011110000100011になる。
これを下記のように分割し、それぞれを個体値とする
分割した2進数の数字を10進数にすることによって個体値は得られる
1011110000100011
破棄BAH
1513

同様にD/C/Sの個体値決定に使われる疑似乱数0x15B6を2進数にすると、0001010110110110になる。
これを個体値にすると以下のようになる。
0001010110110110
破棄DCS
51322

よって、この条件で生成されるポケモンは性格値FB790000、
個体値3-1-15-13-5-22のポケモンである。

サブコンテンツ

このページの先頭へ