この記事はPokémon Past Generation Advent Calender 2019 三日目の記事です。他の参加者の記事もぜひ読んでみてください。
はじめに
過去のPokémon RNG Advent Calender を含め, 今回初めて記事を投稿させていただきます。迷っていたところ誘ってくださった夜綱さん, ありがとうございます。
本題
タイトルの通り, 乱数調整を利用してRS(ルビー・サファイア)において自販機で当たりを出します。理由はFRLGで自販機乱数をするためにC言語を学び, プログラムを組んでからFRLGでは自販機に当たりが存在しないことを知ったからです。RSで自販機やった人は知らないのでとりあえずやってみるか, といった感じです。
で, 実際に乱数調整をしていきます。自販機の詳しい処理についてはろいしん先生がちょうど3年前に記事をまとめているのでこちらの「3世代のお話」を熟読しましょう。
12月3日はもう自販き念日とかでいいんじゃないですかね。
初期seedを 0x5a0 に設定し, プログラムで当たりが出るフレームを調べます。
エメラルドと違って2, 3Fずれても当たるようなFが見つかりません。不親切設計です。
とはいえ, たかが自販機のために電池有り乱数をしようとは思わないのでてきとうに1回目は1228F, 2回目は1676Fと定めることにします。
というわけで, ここからは実機の作業に入ります。
いきなり自販機と真摯に向き合ってもどのFを引いてるのか見当もつかないので, まずは化石ポケモンの復元を利用しておおよそを把握していきます。ろいしん先生の記事を参考にし, 1228Fの50F前, すなわち1178Fを狙えるように調整します。
調整ができたら自販機と対面しますが, 当たりません。こうなったらひたすら数Fずつずらして当たりが出るまで試行していきます。調整していくと, 1183Fを狙った時に当たりが出ることがわかりました。
2回目も当たりが出るように45F前に設定します。これで完, と思われましたがなかなか当たりません。こちらもてきとうに数Fずつずらして探っていきます。
2回目の当たり確認したらいよいよ2連続です。試行回数を重ねて成功したのが以下のツイートになります。
RS自販機乱数成功しました(2連続)。音がいかれてるのでミュート推奨。 pic.twitter.com/grf0137D0j
— 剣心 (@tsg_18) December 1, 2019
これで目標達成です。めでたしめでたし。
この乱数調整をやる人間がいるかは知りませんが, この通りにF調整すれば確実というわけではないので注意してください。
最後に
今回記事を書くにあたって, ろいしん先生の記事を参考にさせていただきました。
プログラミングを学ぶことで乱数調整への理解も深まり, できることも増えていきます。この手のことに興味がある人はぜひ学んでみてはいかがでしょうか。
次の担当はすのーさんです。