。由于HP的数值最高只有151,修改过高数据会溢出而造成花版现象,所以改为97。而其余能力可以改为FF(即十进制的255,游戏中的最大值)。存盘后回到游戏,
初始能力修改成功,再升一级看看
。哈哈,修改大功告成。这下王子彻底无敌了。要注意的是有的游戏搜索时并非参照原始数据或是原始数据的顺序,而是一些有规律的变数。比如《OG》中响介的能力不能进行直接搜索,而是需要搜索初始能力减去等级后的数值。这一点大家修改时要注意。2.动用简单的ARM指令进行修改。这种类型多用于一些ACT ARPG和一些射击游戏等,游戏中人物损失HP是由汇编指令来进行控制。这种修改需要工具为NO$GBA进行DEBUG,VBA和EC提供金手指码。例子:325号ROM名叫PHALANX,一款不错的横版射击游戏。主角机体有4格HP和3个炸弹。本人修改的目的在于使主角机体成为HP不减的无敌状态还有炸弹不减。首先用VBA搜索到机体HP地址为03005CCE,炸弹为03005D12,然后打开NO$GBA,直接点击窗口弹出ROM的搜索对话框,选择并运行ROM,点击DEBUG进入设置断点
。如图所示,输入搜索到的金手指码
。要注意输入的格式必须为[XXXXXXXX]!,否则是无效地址。然后点击游戏运行窗口开始游戏。当主角机体损失HP时游戏会自动中断,
如图所示
。红圈位置有个SUB R0,1H字样,这个就是减法指令,它控制主角机体的HP损失量。这里详细讲解一下SUB指令,其格式一般为SUB R1,R2,R3或SUB R1,R2,XH。运算法则为R1=R2-R3或R1=R2-XH(RX数值放在游戏窗口下面的寄存器里)。一般要使R1内的数值锁定,可以将SUB指令改写为R1=R2-0H,即改为SUB R1,R2,0H,这样就相当于执行了减去0的操作,从而达到使R1数值锁定的目的。回到DEBUG窗口,在SUB左边有用蓝圈所示的数据,从上向下依次为3801 73A0 0600,记录下来。这些是用在UE中搜索要修改的地址。
。修改指令时右键点击指令,然后如图选择,会出现一个对话框,在对话框中输入要修改的指令SUB R0,0H
。这是对指令进行修改。此时注意SUB左边4位数字变化成为3800,这表示修改后的数据,以前损失的01变成了00。随后运行UE,打开ROM搜索修改之前的3801 73A0 0600,由于高低位对调,所以实际搜索为0138 0A73 0006。找到地址后将0138改成0038(表示将每次损失的
HP改成0损失)
。存盘退出,用VBA试一下,成功啦。炸弹修改同HP一样。
此类ROM修改比如《银河战士》两作,《波斯王子》等均如法炮制。但要注意的是有些ROM中人物能力值的损失控制指令不止一个,有的时候很可能出现修改不完全的现象。例如《银河战士》中怪物对主角的伤害和主角掉入岩浆中受伤害的指令不同,而《波斯王子》更是夸张,不仅怪物和各类陷阱对王子伤害不同,就连各种属性的火球冰球毒等状态对王子伤害也不一样,时之砂的消耗也分为一般情况消耗,BOSS战消耗和特定场合消耗(本人改完之后累得半死了)。总之多项指令修改时要特别注意修改完全。
2. 复杂修改型。
同样要用上ARM指令,但是不再是用几个简单的SUB就能轻松搞定的,经常可以看到几个相互关联的怪异指令在一起,有的还要一起改掉。这种修改起来比较麻烦费解。本人将以《分裂细胞-明日潘多拉》作为例子详细讲解一下这种修改的其中一种思路,因为在这种修改中方法并不是唯一的。
首先将步枪子弹改成锁定状态。直接到网上找到EC码,为477C2。一般以0XXXX格式存在的EC码想要转换成VBA老金,只要在前面加上020即可,但是遇到以4打头格式的4XXXX类型EC码时就要特别注意,开头并不是加上020,而是加上030,并且将4改为0,就成了0300XXXX格式,这种才是正确的VBA格式码。所以用030077C2设置断点,然后开枪,游戏中断于此