東方錆恋録 〜Slipping Rusted Magnemite〜 このページをアンテナに追加 RSSフィード

横スクロール2Dアクションゲーム「ラミナの動物園」フリー公開中!→

2017-01-07

[][][]Android版 SMSeedSearch ver1.1.0

f:id:rusted_coil:20170107135523p:image

seedさえ特定してしまえば孵化自体は簡単なのにPCの前にいないとできないのがめんどくさい…ということでAndroid版を作りました。

必要なもの

  • Android 4.0.3以上(5.0.1で開発・動作確認をしています。バージョンや端末依存で動かないことがあるかもしれません。)
  • 事前に固有seedを特定しておく
  • 色違い関連を検索する場合はTSVも特定しておく

インストール方法

f:id:rusted_coil:20170107135522g:image

使い方

設定タブ
  • 「現在の位置」はWindows版の「オフセット」に当たります(固有seedからこの回数分乱数が消費されているものとしてリスト生成を始めます)
  • 「表示する数」はフィルターを指定しない場合のリスト出力する最大の消費数です
条件タブ
  • 片親にかわらずのいしを持たせた場合は必ずその性格で上書きされ、乱数消費には影響しません。
    • 両親にかわらずのいしを持たせるのは非対応
  • 「ボール遺伝判定あり」チェックは、両親が同種族(進化前後は同じ)の場合にオンにします(ボールが同じでも)
  • 「色違い」チェックはひかるおまもりor国際孵化にチェックが入っている時しか機能しません
  • 「他人のTSV」チェックは「色違い」にチェックが入っている時しか機能しません
リストタブ
  • 左の数字は現在の位置からの消費数(タマゴ受け取り拒否回数)、右端の数字は「その個体を受け取った場合の消費数」を表します。
  • リストのアイテムを長押しすることで以下の2つのコマンドが実行できます(設定の現在位置を書き換えます
    • 「この個体を受け取った」:選択中の個体を受け取った直後の状態になるように現在位置を変更します
    • 「この位置から開始」:消費0での受け取り個体が選択中の個体になるように現在位置を変更します

2017-01-06

[][][]孵化乱数調整ツール SMSeedSearch ver1.01

明けましておめでとうございます。今年も多分ツール作ったりプリパラやったりです。


更新点

  • 自分のTSV以外の色違いの検索に対応(SV孵化用)
  • TSV絞り込みタブに6桁の表IDを入力することで、予めTSVを絞り込む機能を追加
  • ♀1/8タイプにおいて性別乱数31の時の性別を♀→♂に修正
  • 両親に異なるパワー系アイテムを持たせた場合両方発動扱いになっていたバグを修正


twitter見てたら、「既知の表IDを利用してとり得るTID/SIDを総当りし、とり得るTSVの候補をリストアップする」ということができるらしいという情報を@ympika25さんに教えてもらいました。


7世代のトレーナーIDは、従来通り32bitの値を持っていて、TSVの計算方法も同じ。((上位16bit^下位16bit)の上位12bit)

今までは下位16bitが表ID、上位16bitが裏IDとなっていたところ、7世代では32bitのID値を10進数で表した時の下6桁が表IDとして表示されるようになった。

19bit最大値=50万ぐらいなので、上位13bitと下位19bitに分けて考えると、「ある上位13bitを決めた時、そこから目的の表IDになる下位19bitは高々1つ」という性質があるはず。

これを利用し、上位13bit=8192通りを総当りすることで、表示されている6桁の表IDからとり得る32bitIDを8192個に絞ることができ、それらのTSVをチェックすることで「可能性のあるTSV」を過不足なく列挙することができる。

ちなみに自分のIDでこれを試したら候補が2717個に減りました。1クリックで候補が1379個減る魔法のボタン。

2016-12-21

[][][]孵化乱数調整ツール SMSeedSearch ver1.00&使い方

※12/22 0:30頃 「ボール遺伝あり」チェックの処理が「ボール遺伝判定なし」だったので文字を修正しました。それ以前にダウンロードされた方は再度ダウンロードお願いします。

検索機能をつけたので、これで一旦大枠の機能は完成ということで

  • リスト出力にフィルタ機能を追加
  • リスト出力にめざパタイプ出力を追加(遺伝個体値が確定する場合のみ)
  • 連続受け取り出力の開始位置がオフセットを考慮しないものになっていたので修正
  • TSV絞り込み機能でひかるおまもり無し等の条件設定に対応
  • TSV絞り込み機能の絞り込んだTSVデータを保存/読み込みできる機能を追加

簡易版使い方

現在の乱数位置を求める
  • 個体値がわかっている親2匹を持ち物無しで預け、ツールの「条件設定」に預けたのと同じように親個体値などの条件を設定する
  • レポートを書き、タマゴを受け取って孵化する
  • 生まれたポケモンの性格や個体値などを調べ、「絞り込み設定」の欄に入力する
    • 大体のseedの位置がわかっている場合は、「出力設定」の消費数をその周辺に設定すれば、性別・性格・めざパのタイプなどから特定できる
    • 固有seedを求めたばかりの場合は大体127前後。

f:id:rusted_coil:20161221225413p:image

  • 「リスト出力」で出てきた個体の消費数が、固有seedからの現在のオフセット
    • もしくは、「seedを出力」にチェックを入れてseedの欄に書かれている値を固有seedとして使うことができる。その場合現在のオフセットは0

f:id:rusted_coil:20161221225417p:image


目当ての個体の位置を求める(親が決まっている場合)
  • 現在の乱数位置を「オフセット」に入力する
  • 親の個体が決まっている場合は、「個体値遺伝を計算」にチェックを入れ個体値を入力する
  • 「絞り込み設定」に欲しい個体の条件を入力する

f:id:rusted_coil:20161221225414p:image

  • 「リスト出力」で出てきた個体の「消費数」の数字が現在の乱数位置からの消費数。

f:id:rusted_coil:20161221225419p:image


目当ての個体の位置を求める(親が決まっていない場合)
  • 現在の乱数位置を「オフセット」に入力する
  • 最終的に親に持たせたい道具や親の特性などの条件を設定する
  • 「絞り込み設定」に欲しい個体の条件を入力する

f:id:rusted_coil:20161221225415p:image

  • 「リスト出力」で出てきた個体の候補から1つ選ぶ(今回は一番上の消費12の個体とする)

f:id:rusted_coil:20161221225418p:image

  • 目当ての個体値になるように親を預ける(この場合は先親x-30-x-x-31-x、後親31-x-30-31-x-xとすれば6UVめざ氷になる)

色違いになる個体を求める
  • 予めTSVを求めておく
  • 「国際孵化」と「ひかるおまもり所持」の少なくとも一方にチェックを入れ、「TSVを考慮」にチェックを入れて自分のTSVを入力する
    • 現時点では素の性格値の計算方法がわかっていないため、国際孵化orひかるおまもりのどちらかは必須。
  • 「絞り込み設定」の「色違い」にチェックを入れる
  • あとは上の手順と同様

目的の位置まで乱数を消費する
  • 上の手順で現在の乱数位置、出したい個体の消費数を求める(現在の乱数位置をオフセットに入力する)
  • なんでもいいので(タマゴができる)ポケモンを預けて、その情報を「条件設定」に記入する
    • 消費数が多いと大変なので、なるべくコイキング♂♀(国際孵化+ひかおま)&あかいいと推奨

f:id:rusted_coil:20161221225416p:image

  • 「連続受け取りリスト出力」でリストを出力する
  • リストで"目的の消費数を開始位置が初めて超える"個体の"2つ前"を調べる

f:id:rusted_coil:20161221225420p:image

  • この"2つ前"のタマゴを受け取るまで乱数を進める
    • リストのタマゴの番号は0から始まっているので注意。この場合は156個受け取る
  • 次の"1つ前"のタマゴの開始位置が現在の乱数位置になったので、そこからは受け取り拒否によって微調整する
    • 156個目のタマゴ(♂ゆうかん)を受け取った時点で乱数位置は「5411」になっており、目的の消費数が5429なので「18回」タマゴの受け取りを拒否する
  • 最初に条件を検索した時の親を預け直す
  • タマゴを作って受け取ると、そのタマゴが目的の個体

2016-12-19

[][][]孵化乱数調整ツール SMSeedSearch ver0.00c

  • 国際孵化もひかるおまもりも無い時の性格値関連はまだ解明されていないため出力できません。
  • 連続受け取りリストで親がメタモンの時にボール遺伝の分の消費がずれるバグを修正しました。
  • TSV絞り込み用リストを出力する機能を追加しました。

何かというと、「受け取ったタマゴの性格値決定処理から"色違いにならなかった"PSVを記憶しておき、次に受け取るタマゴでPSVの被りが多い(色違いになる確率が低い)場合は受け取らない」ようなリストを出力できる。

このリストに従って受け取っていけば、普通に闇雲に受け取って孵化し続けるよりは効率的に(しかも重複してチェックしなくなるので必ず終わりがある)色違いに自然遭遇できるはず。

完全にTSVを求める目的特化なので、コイキング♂♀(まあ性別1:1ならなんでもいいけど)、国際孵化+ひかるおまもりが前提。

タマゴを受け取るかどうかの条件はツールに書いてある通りなので好みで調整してください。

2016-12-18

[][][]孵化乱数調整ツール SMSeedSearch ver0.00b

  • exeと同じフォルダにconfig.txtを作り、固有seedを8桁×4行分書いておくことで起動時に読み込むようにしました。
  • 性別1:7の指定が逆になっているバグを修正しました。
  • 連続受け取りリスト出力に対応しました。

→受け取り拒否による消費数調整ではなく連続してタマゴを受け取った時の個体と開始乱数位置がわかります。

これを使うことで、自然発生した色違い個体からTSVを求めることができます。

TSVの求め方

TSV/PSVとは、第6世代以降色違い判定に使われている値で、トレーナー(TSV)・ポケモン(PSV)それぞれ0〜4095の値を持つ。

PSVはポケモンの性格値(PID)から計算できる。(PSV = (PID上位16bit ^ PID下位16bit) >> 4)

おやトレーナーのTSVとPSVが一致した時そのポケモンは色違いとなる。

生成される個体がわかっているので、ポケモンの性格値に使われる乱数からPSVを求めることができ、

"どの個体が色違いになったか"からそのポケモンのPSV=自分のTSVを求めることができる。

準備
手順
  • コイキングを持ち物を持たせずに預かり屋に預ける
  • ツールに固有seedを入力、国際孵化とひかるおまもりにチェックを入れて「連続受け取りリスト出力」
  • タマゴをひたすら孵化する。性別・性格の並び順が一致している所が現在の乱数位置
  • 色違いが生まれたら、その次のタマゴまで孵化する
  • 例えば以下のリストで200個目の「♂おくびょう」個体が色違いになったと仮定すると、これは通常リストにおける5568番目の乱数から生成される個体。

f:id:rusted_coil:20161218130709p:image

  • 実際に「リスト出力」の方で確認してみるとたしかに消費数5568の個体になっている。
  • 通常リストで5568の個体から順に見ていき、「色違いの次の個体」がどこにあるか調べる。
    • これは連続リストで次の個体の乱数位置の-0〜-7の範囲にあるはず(例の場合では201番目が5596なので5589〜5596)
    • ここでは色違いの次の個体が「♂なまいき」、つまり5592の個体だったとする
  • ここで見つかった個体の2つ前の乱数が色違い個体の性格値になっている。
    • 例では34F2B550。ここからPSVを計算すると34F2 xor B550 = 81A2, 81A=2074よりPSVは2074。

f:id:rusted_coil:20161218130707p:image


ちなみにコイキングのタマゴをリゾートに預けるとマメありで2.5時間で孵化する。

期待値的に1個色違いが見つかるであろう512個孵すのにも実時間で71時間程度。1日6回チェックできれば5日で終わる。

おまけ 性格値からPSVを計算する方法
  • windows標準の電卓を開く(以下はWindows10の場合)
  • モードを「プログラマ」にし「HEX」を選択
  • 「性格値の上4桁」「Xor」「性格値の下4桁」の順で入力しエンター
  • 出てきた4桁の数字の上3桁をメモする
  • 数字をクリアし先程の3桁を入力する
  • DEC」の部分に表示されている値がPSV