Skip to content

Seed乱数

创建于:2025-05-25 更新于:2025-07-21 字数:0 字

温馨提示

本教程仅讲解模拟器乱数

所有方案均使用VBA-RR模拟器

软件下不了点这里→ 提取码HAKU

所需工具

红宝石/蓝宝石

此方法只适用于红蓝宝石

机制说明:有电池的红蓝宝石的Seed并非5A0不可变,而是根据时钟的时间来判定Seed的,多个不同时间可能对应同一个Seed。

  1. 先按照VBA-RR模拟器的使用开启时钟功能。
  2. 先确定一个8位十六进制的目标Seed,例如923B279F
  3. 打开FRLGRSEInitialSeedsFinder,先输入目标Seed按下ENTER,再输入需要生成的结果数比如10按下ENTER,便会生成对应数量的4位十六进制的Seed以及目标帧数,比如E630
  4. 在PokeFinder中打开Gen 3 Tools-Seed to Time,将刚才获得的任意一个4位十六进制Seed粘贴到16/32-Bit Seed然后点击Find。
  5. 打开RunAsDate,点击浏览选择模拟器.exe文件,将时间/日期设置为刚才生成的Time中的任意一个,然后点击运行。
  6. 你可以运行红蓝宝石Lua脚本来验证是否正确获得目标Seed。

火红/叶绿

此方法只适用于火红/叶绿

机制说明:火红叶绿的Seed是通过RTC时钟生成(和绿宝石火红叶绿的表ID生成机制相似)。相当于每一帧里面有数十个Seed,通过脚本不断反复循环便可以找到目标Seed。

  1. 先确定一个8位十六进制的目标Seed,例如923B279F
  2. 打开FRLGRSEInitialSeedsFinder,先输入目标Seed按下ENTER,再输入需要生成的结果数比如10按下ENTER,便会生成对应数量的4位十六进制的Seed以及目标帧数,比如E630。并且会在exe所在文件夹下生成一个seeds.txt文件。
  3. 打开刚才生成的seeds.txt文件,复制所有内容。编辑火红叶绿Lua脚本,找到local botTargetInitSeeds =(如果是用记事本打开,可以使用快捷键Ctrl+F查找)。将刚才复制的所有4位十六进制Seed替换掉后面的Seed,不需要的Seed请删除!比如local botTargetInitSeeds = {0x6754, 0x91B1, 0x4034, 0xE03C, 0xE843, 0x64A2, 0xEA7C, 0xFC20, 0x3118, 0xB522}。然后保存脚本。
  4. 到VBA模拟器上运行游戏,并运行火红叶绿Lua脚本,切换到Initial Seed Bot功能。先暂停游戏,再软复位游戏,然后按住游戏的SELECT按键并前进一帧,最后取消暂停。
  5. 脚本成功运行就会在游戏封面一直闪烁,直到刷到目标Seed自动暂停。此时取消暂停,脚本会显示一行Found!,下面会显示刷到的Seed。

绿宝石

此方法适用于红蓝绿宝石,也叫绘画乱数,游戏进度需要推进到水静市。

机制说明:通过查看水静市华丽大赛的绘画可以改变Seed,这个Seed生成由查看时的帧数来判定。例如:从打开游戏开始记为0帧,我在8000帧查看绘画,则Seed会改变为1F5E(即十进制8000+30转为十六进制),为什么还会有个30呢,因为按下A看画的过程大概有30帧。所以我们需要先将目标Seed转为十进制的帧数然后-30来击中目标。

  1. 先确定一个8位十六进制的目标Seed,例如923B279F
  2. 打开FRLGRSEInitialSeedsFinder,先输入目标Seed按下ENTER,再输入需要生成的结果数比如10按下ENTER,便会生成对应数量的4位十六进制的Seed以及目标帧数,比如E630
  3. 来到水静市华丽大赛的右上角任意一副绘画面前等待。
  4. 运行绿宝石Lua脚本,切换功能来查看绘画Seed(左下角的Painting Timer)。
  5. 将你的目标Seed转为十进制,并-30再转为十六进制,比如E630的十进制是58928,-30转为十六进制就是E612。等待Painting Timer=E612时查看绘画(也就是58898帧)。
  6. 若Initial Seed已变为E630,说明乱数成功。若失败,则自行微调帧数来查看绘画,击中对应目标Seed。

问题解决

  • 运行Lua脚本报错了?
    • 请对应模拟器的脚本。
  • 第一次加载游戏,怎么打开游戏黑屏/白屏,无法存档?
    • 确保游戏ROM没问题,检查设置-模拟器-存档类型-Flash 128K
    • 检查文件权限,是否是只读。
    • 尝试删除vba.ini配置文件。
  • 怎么突然打不开模拟器了?存档之前可以存,现在不行了?
    • 傻瓜解决法:删除vba.ini配置文件
    • 折腾解决法:编辑vba.ini配置文件,修改或删除目录等字段,这里就不继续过多讲解了。
  • 之前用MGBA存档,导到VBA就读不出来白屏了?
    • 因为MGBA存档会默认保存RTC时钟, 导致文件占用空间变大,VBA无法读取。
    • 在MGBA中文件-游戏存档-转换保存游戏将存档转换出来即可读取。

Released under the MIT License.