Re: [心得] 简单来谈谈BizHawk内存修改程式

楼主: flingcould (载雨拾乘三)   2025-03-27 23:38:40
今天来实作模糊搜寻
实作前先来说明一下
先确定你要找的未知数是定值,但,你无法用精准搜寻找出来
可能是血条,可能是未显示的参数,可能是时间,而这个未知
数可能是有迹可循,只是我们不知道它的起始值与变动值
我建议要练手先找有金手指位址的游戏来练习,这样才好控制
变量,你才知道自己的操作有没有做错,有没有脱靶不小心排
除掉目标位址
流程不外乎先暂停→搜“等于来定起始值”→解除暂停回游戏
产生变动值→按暂停→切换大于或小于按搜寻→解除暂停回游
戏产生变动值→按暂停→切换大于或小于按搜寻→位址剩下个
位数位址→边玩游戏边判断剩余位址是否有连动?是否是你要
的位址?
失败就流程再来过
判断是否是正确位址有时需要大胆修改数值或直接锁定冻结
键盘的Pause键默认就是BizHawk的暂停,按它会画面冻结连
游戏时间值都会停止,如果小游戏有需要按暂停,解除暂停当
然就是再按一次,你也可以改热键指定手把未使用按键作为即
时暂停来用相当节省时间
请注意底下每一张截图都是在暂停状态,去挨打是一定解暂停
再挨打再暂停再进行截图,以防你没注意到我必须先说明清楚
实作开始


还记得46亿年HP用10进位或16进位精准搜寻搜不到吗?今天
模糊搜寻实作就拿它来一步一步操作,看需要多少次完成
上面两张图是起始状态,HP:20/20
我们先来看看精准搜寻20

先来挨第一下伤害-2,HP:18/20

我们再来搜18,果然搜不到

没关系,我们清掉按NEW,流程重来先设好不指定数值、10进
位、1BYTE,正式来模糊搜寻

上面图是按NEW之后我正常会用等于起手排除变动值位址,不
过,这次我起始值想用大于零起手

目前我们状态是,HP:18/20,再来我们会再挨一下

伤害-2,HP:16/20,再来我们会搜小于

再来我们会再挨一下伤害-2,HP:14/20

再来我们会搜小于

再来我们会再挨一下伤害-1,HP:13/20

再来我们会搜小于

再来我们会再挨一下伤害-1,HP:12/20

再来我们会搜小于

再来我们会再挨一下伤害-1,HP:11/20

再来我们会搜小于

再来我们会再挨一下伤害-2,HP:9/20

再来我们会搜小于

再来我们会再挨一下伤害-2,HP:7/20

再来我们会搜小于

再来我们会再挨几下伤害-5,HP:2/20

再来我们会搜小于

到了这里位址剩一个,HP:2/20
正常到了这一步就算接近收工了,剩下就是观察数值变动,再三
确认,这个位址你可以锁定起来,也可以回游戏做变动,或者大
胆修改数值反复回游戏查看,再来确认一下是否是我们找的目标
位址?
这里我选择回游戏咬死怪,吃掉肉补血来确认
吃肉补血+2,HP:4/20

再来我们看位址数值变化,数值:4

到了这里我们再比对金手指表单,果然位址相符
00C5

最后就是自己判断它这个位址变化趋势,一般我会复制两组同一
位址,一个1BYTE10进位,一个1BYTE16进位
道具数量正常不会超过255,1BYTE很够用了
HP多半不会超过65535,2BYTE很够用了
金钱、经验原则上大概是2BYTE到4BYTE之间
另外,搜寻时本来就会暂停,不过,事先精确暂停比较不会出意
外,小心驶得万年船,加油!
作者: if4 (if)   2025-03-28 07:02:00
推一个 XD
作者: tinyfan (小风扇)   2025-03-28 16:19:00
心得就给推
作者: if4 (if)   2025-03-28 22:44:00
f大 模糊有搜浮点数的吗 以前听说有经验 生命用浮点数别款游戏
楼主: flingcould (载雨拾乘三)   2025-03-29 08:47:00
问得很好,我从1.8版玩到2.10版没遇到改浮点数……没印象,而且,抓得到的金手指好像都是整数的,我不清楚
作者: if4 (if)   2025-03-29 19:35:00
好的,谢谢 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com