ポケモン-乱数調整備忘録

個人的に成功した乱数調整の備忘録。手順を忘れそうなもの優先。ブログ設立時はツール置き場を兼ねることになるとは思わなかった。

乱数調整

大量発生ポケモン決定の乱数調整【BW】【BW2】

以前大量発生ポケモンの捕獲をしたときはリセットの繰り返しで目当ての大量発生を引いたのですが、これもまた乱数調整でお手軽に引くことができるのでその方法をまとめておきましょうか。という記事。

使用したツール
・プラスルツール
製作者さんと解析者さん達に感謝。

0.始める前に
いつも通り手持ちに録音済みのペラップを用意しておきましょう。
乱数調整の成否をすぐに確認できるように、どこか乱数を消費するNPCのいないゲートに移動しておきましょう。私はライモンゲート(西)で行いました。

1.リストを出す
プラスルツールを起動。
プラスルツール






















起動日時(どの日でもいい。ただし23時59分にしないと非常に面倒)とパラメータ、或いはSSS4等で出した初期seedを入力。オフセットにチェックを入れ。BWかBW2かを選択。おもいでリンク済みならばそれも設定。指定範囲から検索を指定、全範囲(デフォルト)を指定。
ペラップの音数をBW1なら17、BW2なら19と入力しましょう。

プラスルリザルト









出力結果。右から2番めの数字(0~16or18)が大量発生するポケモンと対応しています。(参照:ポケモン王国 上から順に対応しています)
私はソーナノを狙ったのでペラップ(大量発生)が1の乱数を狙いました。

2.乱数を消費する
実際にゲームを起動します。どの針が出るかは最初からわかっているので(リストの一番右)1,2回レポートして針確認をすればどのTimerを引いたのかすぐにわかります。あとは狙いたい所の一つ前まで消費するだけです。日付が変わり、00:01になったらゲートを潜りなおしましょう。電光掲示板に狙った大量発生のアナウンスが流れてきたならば成功です。

3.捕まえに行く
大量発生中のポケモンが存在するくさむらでは、ポケモンの出現スロットの0と1がそのポケモンに入れ替わっています。
あとは通常の野生乱数と同じです。

GBAyasei 1.02

・めざパの出力、および検索機能の追加
・計算速度ちょっとだけ改善
出力範囲指定をちゃんとすると少し計算が早くなります。範囲が広くなればなるほど露骨に差がでます。
ダウンロード:GBAyasei
こちらに統一しました。

RSSYMBOL 修正版

ファイル出力に問題が合ったため修正またか
RSSYMBOL
ダウンロードはこちらに統一しました

【ルビー・サファイア】固定シンボルの個体検索ツール「RSSYMBOL」

個体検索自体は他の方の制作されたツールでどうにでもなります。
ですが、初期seedの変動を追いながら検索できると便利かなあと思い、作ってみました。

RSSYMBOL
修正版
最新版   ※最新版のみめざパ出力・検索に対応
ダウンロードはこちらに統一しました
RSSYMBOL













要求される項目を入力すると結果が出力されます。ソフトと同じフォルダにresult.txtとしても出力されます。

GBAyasei 1.01

GBAyasei 1.01
ダウンロードはこちらに統一しました

・計算後テキストを開く部分が杜撰だったため修正

野生ポケモンの乱数調整用検索ツール「GBAyasei」

02










GBAyasei

最新版はこちら
ダウンロードはこちらに統一しました

※動作には.NET Framework 4のインストールが必要です。
作りました。もうちょっとマシなネーミングはないのかと。

GBA版ポケモン(ルビー・サファイア・ファイアレッド・リーフグリーン・エメラルド)での野生エンカウントについてリストアップします。必要事項を入力・選択して計算ボタンをクリック。結果がテキストで出力されます。GBAエンカウントで個体検索をするのはちょっと重かったので。

電池あり時の初期seedの変動について【ルビー・サファイア】

原理的には外野席さんのテキストや2chのループ検証スレの書き込みで詳しく検証されています。

249 名前:ゲーム好き名無しさん[sage] 投稿日:2009/01/20(火) 23:31:35 ID:Q46nAD7C0
なんとなくRSのシードの決定方法を調べてみました。
あまり実用的ではなさそうだけど誰かがすごい方法を思いつくかもしれないのでとりあえず適当に書いてみます。
シードはやはりカートリッジの中に入っている内蔵時計RTCの時刻によって変わるようで、
RTCが初期化されてから現在までに経過した日数を分に換算した値と、
RTC内におけるBCD表記の時間と分をそのまま16進数の値として扱い、それを分に換算して計算した値と1440を足して、
その上位2バイトと下位2バイトをxorしたものが最初のシードになっているようです。
初回起動時と時計が壊れている場合はシードは0x5A0になっていると思います(たぶん)
エミュレータ等を使っていると発売日との兼ね合いで現時点であり得ないシードが生成されるかもしれません。
基本的に1分ごとに値が変わるのでいつ起動したらこのシードになるという予測はしやすいですが、
時間は調整できないしチャンスは一度きりなのでエメラルドのループのような方法でいいのを狙うのは難しそうです。
時計バグの対策とかでロットによって変わってるかもしれません(上のはルビーのロット番号15B E4でしらべました)
適当なので間違ってる可能性もかなりあります。

この書き込みだけでは意味不明だと言う方もおられるでしょう。その場合はヨミさんの記事で簡単な式として表現されています。

それでも駄目だというのでしたら、ジェラートさんの記事に具体的なリストが5日分出されています。

内容はともかくとして、確かなことは「手計算で変動を追うのは難しい」ということでしょう。
まあ59分までなら「5a0~5a9,5b0~5b9,~」というふうに変動しているので多少は解りやすいかと。

具体的にどうやって狙いの初期seedを選ぶのかといいますと

1.まずは内蔵電池を外し、適当にセーブをする
ソフトの背面を見るとY時ドライバーが必要そうな形をしたネジで留められていますが、小さなマイナスドライバーを使って力技でこじ開けることも十分可能です。私は100円ショップで売っていたドライバーで外しました。
2.電池を入れ、起動とともにストップウォッチやタイマーをスタートさせる
電池切れを起こしたセーブデータでは、ミシロタウンの自宅の時計が最初に設定した時間に戻っています。つまり、自宅の時計を見ることで起動から何分経ったのかを把握することも可能です。
3.時間が来たら、リセットをする
どのようなタイミングで変動するかは不明ですが、少なくとも1分単位で変動しているのは確かです。余裕を持ってリセットしましょう。

あとは狙いのフレームでエンカウントできるように微調整をしていくだけです。失敗した場合、1.からやり直しましょう。電池切れ状態でセーブをしないと初期seedが初期化(変な表現ですね)されません。

性格値から色違いになるトレーナーIDを検索する【ルビー・サファイア】

トレーナーIDを指定して検索できるツールが見当たらないなあ。
ってことで作りました。
RSIDRNG
RSIDRNGCHK
ダウンロードはこちらに統一しました


事前に”GBAエンカウント”やアーマーさんの”乱数計算”で欲しいポケモンの目処を付け、性格値を調べておきましょう。
※私の「GBAyasei」「RSSYMBOL」も検索の一助になるでしょう。

私が今回色違いにするのはこれ。初期seed0x5a4です。初期seedの変動について(電池有り)については次回記事にまとめるかも。
12827 fa3ef101 (4)ツチニン Lv.7 12857 fae39396 やんちゃ ♂ ふくがん 30 31 22 28 10 31

RSIDRNG
RSID調整-RSIDRNG






PID:色違いにしたいポケモンの性格値を入力します。16進数で8桁。
HID、LID:性格値上位、下位。勝手に出ます。
TIDを指定する?:0と入力でYES、1と入力でNO。1を入力すると次のTID:が出ません。範囲内の色違いになるIDが全部出てきます。
TID:希望のトレーナーID。指定しても手頃な範囲に出てくることは稀です。頑張りましょう。
初期seedからの経過F上限:そのまま。待てるフレーム数を入力。
RTCリセット(略:電池を入れて起動してからリセットまで何分なら待てるか。単位は分で入力。1時間以上でも分で入力。
結果が出ます。同じフォルダ内に作成されるIDresult.txtというファイルに結果は出力されていますので結果を残したければそちらを。
フレーム狙ってレッツID調整。
続行:終了:0を入力するとTID指定の項目に戻ります。思わしくない結果だったら違うIDを指定するといい結果が出るかも。

RSIDRNGCHK
実際のID調整のお手伝い。
RSID調整-RSIDRNGCHK







初期seed、目標とするフレーム、検索範囲、実際に出たIDを入力。
目標と何Fずれたのか教えてくれます。初期seedは合っている前提。
続行:で出たTID:の項目に戻ります。

トレーナーIDの乱数調整【ルビー・サファイア】

特定のポケモンが光るようにするためのID調整です。

使うツール
RSIDRNG
RSIDRNGCHK
・エメタイマー(BIG)

0.始める前に
色違いにしたいポケモンの性格値を特定しておきましょう(前回記事参照)。

1.狙うID及びフレームの特定
RSIDRNGを起動しましょう。
性格値、指定するならばTID、我慢出来るフレーム数、フレームカウント開始までの待機時間を入力します。
この「待機時間」(経過時間)は、電池無しのRSで乱数を行うならば常に0です。電池ありで行う場合はその理論と具体的な手順はこちらを参照してがんばってください。
入力すると、範囲内で色違いにできるID、フレームが出力されます。
RSID調整-RSIDRNG






2.実際に狙う
RSのIDは、オダマキ博士の話が終わった時(あるいはそこからいくらかのタイミング)で決定されます。
エメタイマーをセットし、ソフトリセットと同時にスタート。(初期seed調整をするならばしておく)
オダマキ博士が「では また あとで あおう! けんきゅうじょで まって いるぞ!」と言っている画面で待機し、タイマーが0になるのと同時にAボタンを押しましょう。
ゲームが開始したら、早速IDを確認しましょう。
RSIDRNGCHKを起動。初期seed、検索範囲、出たID、目標フレームを入力、検索。
RSID調整-RSIDRNGCHK







出た結果に合わせて、タイマーの時間を調節したりボタンを押すタイミングを調節しましょう。
狙ったIDが出れば終了です。

3.おまけ・IDの決定方式について
RSのTID/SIDは、使われた乱数値(引いたフレーム)の上位4桁がそのままSIDとなり、その次の乱数値の上位4桁がTIDとなる、という方式をとっています。これを利用すれば、IDを狙った数字にすることもできます。
GBAエンカウント等で、初期seedを入力、リストを出力。そして欲しいIDで検索して、引っかかればそれを狙ってID調整、という流れでしょう。色違いにしないのであればほとんどの数字を簡単に狙えるかと。
RSID調整-ID00000


ID00000-26999のフレーム。エメループ産タマゴを孵す際によく利用される。らしい。

野生ポケモンの乱数調整【ルビー・サファイア】【電池切れ】

唐突に色違いかつモンスターボール以外のヌケニンを作りたくなったので実践。
ID調整をしてはじめから開始したのでID調整部分と野生乱数部分は分割で。

使ったツール
GBAエンカウント pass:gbae
・エメタイマーBIG
製作者さん達に多大なる感謝を。

今回はカナズミシティ東の草むらでツチニンを狙いました。完全にヌケニン用ですが。
ヌケニンなら個体値はAとSだけ考えればよく、性格もAかSに補正がかかればマイナス補正はBCDのどれでも一緒なので、自由度の低いRS野生でも理想といえる個体が狙えるのではと考えました。

0.始める前に
あまいかおりを覚えたポケモン、入れたいボールを用意。それだけ。逆に言えば、シンクロが効かず性格値乱数消費という概念がないので非常に取られる個体値+性格のパターンが少なく、理想個体(5Vとか6Vとか)はほぼ無理と考えていい。
ルビーではクチートがLV16で、もっと進めるならばトロピウスやクサイハナが捕獲時点であまいかおりを覚えています。

あ、RSは電池の切れたものを用意してください。もし切れていなくても電池を外せば同じ事ができます。

電池有り時の挙動はこちらの記事で。

1.消費フレームを求める
GBAエンカウントを起動します。
RS野生乱数-GBAエンカウントインターフェース













「バージョン」乱数を行いたいソフトを選択
「草・建物~」乱数を行う場所・行動の指定・今回はツチニン狙いなので草・建物で。
その下のタブで地域を選択。ツチニンは116番道路のみ。
「初期seed」0x5a0と入力。電池の取り外し→取り付けによって初期seedを任意で変えることは可能ですが、ここでは取り扱いません。→初期seedの変動
「表示範囲」は自分が待てるであろう時間(単位:フレーム)を入力。私は0~50000で検索しました。
個体値表示にチェック。
その下のタブはmethod1を選択。RSの固定・野生乱数はこれによって決定されるもよう。
今回RSなのでシンクロ無。
「フィルター」欲しい個体を指定。かなり妥協しないとまず出て来ません。
全て入力したら計算をクリック。
結果
RS野生乱数-GBAエンカウント検索結果












回数20525に、S上昇の性格がいますね。できるだけ回数が小さいものを狙ったほうが1試行に掛かる時間が短縮できていいです。

2.フレームを合わせる(消費する)
ソフト起動後から、20525F後に戦闘に突入する。ただそれだけです。
エメタイマーを起動、待機時間を入力します。ただし、「あまいかおり」を使用してから戦闘に入るまで、約150Fかかります(演出に使用ポケモンの鳴き声が入るため、ポケモンによってかかる時間が変わります。各自調整してください)。その分を考慮してタイマーを設定しましょう。今回は20375Fの設定にしました。
「秒に変換」をクリック。消費Fはソフトリセット(start+select+A+B)をすることで0に戻り、どれかボタンを離すことでカウントが始まります。ボタンを離すと同時にエメタイマースタート。
カウント0になる瞬間にあまいかおりを使用。

3.微調整
乱数が常に1F(1/60秒)単位で動くので、一発で成功することはまずないでしょう。
失敗した場合、とりあえず捕まえて種族・レベル・性別(・特性)を見ましょう。
そして、「フィルター」内をリセットし、GBAエンカウントで再検索してみましょう。エンカウントリストが出てきます。(表示範囲を狙っているものの周辺に絞ることを忘れずに。私は忘れてすごく重くなりました)
RS野生乱数-GBAエンカウント検索結果-全件














例えば、LV6・まじめ・♀のゴニョニョが出たとしましょう。(出ました。)回数20528の位置にいますね。つまり、戦闘に入るのが3F遅かったのです。その場合は、気持ち早めにあまいかおりを使用するよう調整するか、タイマーの設定時間を少しだけずらすか、という微調整をして狙って行きましょう。根気勝負です。

そして、数回の試行の結果
色違いヌケニン-色違いツチニン遭遇














出ました。色違いなのはID調整を行ったからです。

ですが、ここで安心してはいけません。捕獲後、レポートを書く前に個体値を確認してください。種族・性別・レベル・特性が一致していても個体値が一致していないことがあります。これは俗に個体値ずれといって、3世代乱数共通で存在するもので、「性格値まで一緒なのに個体値が違う」現象です。GBAエンカウントで一応ずれ発生の状態のリストも出力出来ます。もしこれを引いてしまった場合はやり直しです。がんばりましょう。

ID調整はまたの機会に。
トレーナーIDの乱数調整【ルビー・サファイア】
性格値から色違いになるトレーナーIDを検索する【ルビー・サファイア】

野生ポケモンの乱数調整【BW2】【色違い】

自分用まとめ。汎用性を高め応用で他の場所の乱数にも活かせるようにしたい。
※今回は「ひかるおまもり」を所持している状態についても書いてあります。
持っていなくてもやることはほとんど一緒ですが、持っていると色違い出現の乱数調整は格段にやりやすくなります。

使ったツール
・SyokiSeedSearch4
・bwseedlist
・bwpidseed
製作者さん達に多大なる感謝を。

今回はタワーオブヘブン5Fでヒトモシを狙いました。
NPCがおらず、時間経過で自動的に性格値乱数が消費されることがないからです。

0.始める前に
手持ちにシンクロ要因を先頭に、捕獲要因、ペラップ(おしゃべりで録音済みのものを1,2匹)を用意しましょう。
そして今回はあまいみつorあまいかおりを覚えたポケモンを用意。

1.初期シードを検索する
固定シンボル乱数で使用したシードを使い回せる。検索方法も当然同じ。
私は以下のシードを利用しました。
17,5,5,22,39,12,1513,2,31,0,31,31,31,31,ドラゴン,68,C31DDEF7170E9876,93,C3F9BC15,C3F8BC15,BSt↓L

私はID調整をせずに色違いが出現するシードを検索しましたが、こと色違いの野生乱数においては、
先に色違いにしたいシードを決めて、それに合わせてID調整をするほうが確実かと思われます。
色違いにする場合、特性が固定されるので、特性が2つあるポケモンの場合目当ての特性で色違いにすることができない可能性があるからです。

2.オフセットの特定
bwseedlistに先の初期シードを入力し、針パターンリストを出力。
私の場合針パターン15416が一致、よってオフセット49、現在の消費数54と判明しました。
424431156153435677500471515712646700400332777060115416314074

※追記 オフセットの特定が簡単になりました。→オフセットの特定について

3.野生リストの出力
今回は大活躍。
色違い野生乱数-bwpiseed















bwpidseedを起動、「性格値乱数」の項目内、初期seedのボックスに初期シードを入力。
「計算」内、BW2にチェックを入れ、タブで「野生」を選択。今回の出力数は合わせたい消費数に合わせて広げましょう。
「野生」内、表示名の項目は無くても判断することはできますが、入れるとリストが見やすくなります。
内容はポケモンの友さんを参考にしました。左から0~11に対応しています。
「計算開始」ボタンをクリック、リストが出力されます。
色違い野生乱数-野生リスト










左から順に消費数、seed、出現するポケモン、シンクロの可否、ポケモンの性格、特性、性別値、性格値ですね。
「seed表示」にチェックを入れるとseedが表示されます。
運良く目当てである特性1(もらいび)でした。
※シンクロ・出現ポケモンについて
野生乱数においては、シンクロの判定は現在の消費数の位置で行われ、出現ポケモン・性格値の決定はその次のseedで行われるようです。(※3/22追記:厳密には違いますが、少なくともbwpidseedで出力されるリスト上ではそうなるということです)つまり、シンクロを利用したい場合は「色違いにしたい(なる)seedの1つ上」の判定を見る必要があります。今回は○となっているので利用できますね。

4.消費数を合わせる
2.で現在の消費数が54であることが判明しています。目標のヒトモシは消費90の位置にいます。
※注意!狙う消費数は「1つ上」のもの、89です。
なので、ペラップのステータスを見て35消費、あまいみつを使用して戦闘に突入しました。
色違い野生乱数-ヒトモシ (1)色違い野生乱数-ヒトモシ (2)




























終了です。固定シンボルとほとんど変わりませんね。

NPC消費が発生する場所では、レポ針ではなくペラップの音程で現在消費数を確認し、NPCがあまいかおりのエフェクト中にどれくらい消費するかを手探りで見極めながら消費数を調節することになります。何度もリセットすることになるはずなので非常に大変な作業になるかと。

5.最後に
「ひかるおまもり」を持っているときにどのような処理が行われるか、ということをかいつまんで説明します。
端的に言えば「決定された性格値が色違いになるものではないとき、2回まで再度性格値を生成する」ということになります。
使用されるseedは一つ下のseedになります。
これは、逆に言えば「色違いになる消費数の2つ上までなら、同様に色違いにできる」ということになります。ただし、シンクロの判定・出現ポケモンも当然上にずれるので注意してください。
これを利用し、同じ初期シードで消費数を1減らした結果
色違い野生乱数-色ゴルバット














出ました。ブレイブバードも催眠術も覚えていないのが確定するのでいりませんね(
最新コメント
ほとんどひとりごとです。
記事検索
  • ライブドアブログ