バトルファクトリーの最初の6匹を解析してみる その1
ソフト: ハートゴールド
最初の手順
- 適当にDSの日時を設定して起動
- 初期seedを調べる
- ファクトリー1周目に挑戦。最初の6匹にパッチールがいなければやり直し。
パッチールが出たら模様から性格値が分かるのでそれがかなりヒントになるだろうという考え。
ちなみに徘徊によって3つ乱数消費、あとファクトリーには大量の動くNPCがいるのでそれによって不定個数乱数が消費されているはずである。
出た初期seed: 0xc90c01f8
最初の6匹
ポケモン | 親ID | 特性 | 性別 |
---|---|---|---|
マイナン | 11067 | マイナス | ♀ |
パチリス | 63599 | ものひろい | ♀ |
ムクバード | 62326 | いかく | ♂ |
ハスブレロ | 27843 | すいすい | ♂ |
パッチール | 50041 | ちどりあし | ♀ |
カラナクシ | 10484 | ねんちゃく | ♀ |
そしてパッチールの模様から性格値を調べてみると0xd9ccc14fであった。
0xc90c01f8の続きの乱数列から各親IDを探してみる。
ポケモン | 初期seedからの位置 | seed |
---|---|---|
マイナン | 189 | 0x2b3b8677 |
パチリス | 41 | 0xf86f5713 |
ムクバード | 49 | 0xf3767c7b |
ハスブレロ | 119 | 0x6cc3ebd1 |
パッチール | 37 | 0xc379f43f |
カラナクシ | 65 | 0x28f4babf |
上のポケモンから順に決まってはいないみたい。シャッフルとかされているのかな。
そして乱数列からパッチールの性格値を探してみる。
パッチールの性格値: 0xd9ccc14f 39: 0xc14f8f41 40: 0xd9cc2d20
パッチールの親IDのすぐ下であった。多分seed[38]は裏IDに使われているのであろうと想像がつく。
そして、ファクトリーで出てくるポケモンはあらかじめ性格が決められているので、性格値はエンカウント時の個体生成と同じ感じで決められた性格が出るまで生成し続けるような処理になっているんだろう。
その方法がとられているという前提でほかのポケモンの性格値も調べてみる。
パッチールの性格値: 0xd9ccc14f 39: 0xc14f8f41 40: 0xd9cc2d20 パチリスの性格値: 0x2b1cdb03 47: 0xdb03cc69 48: 0x2b1c6728 ムクバードの性格値: 0x85039fbc 117: 0x9fbc3a4f 118: 0x85034616 ハスブレロの性格値: 0x603761f4 163: 0x61f4280d 164: 0x603763fc カラナクシの性格値: 0x8b1f9628 187: 0x9628ef05 188: 0x8b1fab94 マイナンの性格値: 0xe00c4f14 263: 0x4f1451a1 264: 0xe00c3000
全て特性、性格、性別が一致。
親ID、性格値の決定方法は判明した。選ばれるポケモンの種類を親ID、性格値より先に決定しているはずだがそれを解析するのはなかなか難しそうだ。