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

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

乱数調整

大量発生ポケモン決定の乱数調整【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がそのポケモンに入れ替わっています。
あとは通常の野生乱数と同じです。

オフセットの決定について【BW】【BW2】

オフセットの決定法が解明されているようですね。
参照:http://note.chiebukuro.yahoo.co.jp/detail/n166836
かなりややこしい決まり方をしているようですね。長いこと解明されなかったわけです。
これに伴い、早速オフセットを自動で出せるツールが出たようです。
プラスルツール

初期seed、或いは起動時刻とパラメータを入力することでオフセット付きの計算結果を出力できるようです。
これで面倒なオフセット確認作業が必要なくなりますね。5世代乱数がどんどん簡単になってゆく。
レポ針チェックでも、最初から成功のパターンが正確にわかるようになりますね。心労が減る。

※ここでの「オフセット」とは、あくまでも性格値乱数列のゲーム開始時の初期位置のことを指しています。孵化乱数等ではNPCなどによって何もしなくても性格値乱数が消費されることが有るということを忘れないでください。

GBAyasei 1.02

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

RSSYMBOL 機能追加

めざパのタイプ、威力の出力、および指定に対応。
RSSYMBOL
ダウンロードはこちらに統一しました

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のフレーム。エメループ産タマゴを孵す際によく利用される。らしい。
最新コメント
ほとんどひとりごとです。
記事検索
  • ライブドアブログ