4

优雅地使用 Pizza Boy GBA 金手指

 3 years ago
source link: http://blog.ponder.work/2021/02/11/pizza-boy-gba-cheat/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

最近偶然又玩起了GBA游戏,瞬间又像是回到了儿时的时光。也碰到了许久以来的老问题,如何作弊,毕竟游戏里刷资源和练级实在是体力劳动,年龄大了毕竟肝不动了。

先说一下,我现在玩GBA的平台是安卓的Pizza Boy GBA模拟器加游戏手柄,总体游戏体验感觉比GBA真机还好,毕竟现在的设备机能放在这,而且还有倍速播放相关功能。

寻找金手指

我这次玩的是口袋妖怪叶绿386改版,在网上找的金手指虽然说是386版本金手指,但是经过实际测试都是叶绿原版并不支持386,比如这个

金手指的原理其实和通用的单机游戏作弊工具(cheat engine, 金山游侠等)相同,都是修改游戏内存数据。其关键就是找到我们想改的数据的内存地址,所以常规方法都是通过工具搜索相关数值,比如金钱数量,一般要经过多次搜索,可以参考这个教程

但GBA好像有些不同,我也曾用cheat engine搜索过,并不能找到相关的内存地址,可能是模拟器的机制导致数值并不能被直接搜索。而且安卓手机上由于权限的问题,类似cheat engine这种读内存的机制肯定是需要root的,这条路就行不通了

最后还是只能走金手指的路子了,毕竟模拟器原生支持,所以又回到了最初的问题,怎么找到正确的金手指。

VBA查找金手指功能

幸好,Windows平台常用的GBA模拟器Visual Boy Advance(VBA)带有金手指查找功能,所以先用VBA找到正确的金手指,然后再转换成Piaaz Boy GBA支持的金手指格式。

网上能找到的金手指一般是类似03005102:63格式的,冒号前后表示的是16进制表示的地址和对应的值。而网上找的金手指不对,肯定是因为前面的地址不对。

用VBA加载口袋妖怪叶绿386,先过一段剧情,来到第一个城市(常磐市)的商店,查看商品列表,并选择一个商品。
-w719

-w719

打开菜单:金手指 -> 查找金手指,点击开始,然后输入21,点击查找,可以看到有几十个变量。
-w415

-w415

增加想购买的数量到23,然后再次输入23,点击查找,可以看到就剩余一个地址了,显然这个就是我们想要的,如果还有多个地址,就重复这两个流程,再次修改数量再查找。
-w1145

-w1145

选择这条地址记录,添加金手指,把数字设置为98,就会自动添加到金手指列表,并启用该金手指。
-w417

-w417

金手指列表,我们添加的处于启用状态
-w417

-w417

在游戏中确认购买,可以看到购买的数量变成98了,但是总价没有变,金手指生效了。
-w720

-w720

VBA内存查看器功能

但是这金手指只能修改购买数量,不在商店列表里的商品并不能购买,所以我们必须找到当前选中商品对应的地址,再添加一条相关的金手指。

网上查到的金手指虽然地址不对,但是对应的值(道具的id)应该是对的,下面是口袋妖怪的一些道具id。

0001 大师球
0002 超力怪兽球
0003 超级球(比怪兽球更厉害些)
0004 怪兽球(普通的球)
0005 砂狐球(砂狐乐园专用球)
0006 触网球(容易抓水和虫类的怪兽)
0007 大布斯球(容易抓海底的怪兽)
0008 尼斯道球(怪兽越弱越容易抓)
0009 利比道球(容易抓抓过的球)
000a 达伊玛球(回合数越长越容易抓)
000b 高基石球(抓到的怪兽变亲密)
000c 布雷密球(珍惜怪兽球)
000d 伤药(体力恢复20)
000e 解毒药(恢复毒状态)

由于已经找到了购买数量的地址,根据编程的常识,选中商品的地址应该也在这个地址附近。
所以打开工具 -> 内存查看器定位到地址030050C2
-w567

-w567

在游戏中,分别选中“解毒药”和“伤药”,并观察内存变化(每次改动完点刷新)。
-w573

-w573


-w569

-w569

由上两张图可以看到,有个地址的值由000E变为000D,正好等于这两个道具的id。
所以该地址030050CA就是我们想要的商品地址,我们就增加一条金手指030050CA:0001将购买的商品改为大师球。
-w573

-w573


-w419

-w419

启用这两条金手指,在游戏中点击购买,可以看到生效了。
-w477

-w477

在Pizza Boy GBA上使用金手指

Pizza Boy GBA并不支持VBA格式的金手指,所以必须进行格式转换,由于VBA格式金手指和CodeBreaker格式金手指转换起来比较接近,只要将地址首位的0替换为8就行了。

030050C2:0062
030050CA:0001
830050C2 0062
830050CA 0001

以上查找方法理论上对所有GBA游戏都适用,祝大家玩得愉快!!!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK