当前位置:文档之家› GBA修改教程完全版

GBA修改教程完全版

一.准备工作
修改工具必不可少,修改ROM必备DEBUG工具。

本人文中使用的是NO$GBA 1.4C破解版,UltraEdit(后文简说明:NO$GBA是针对GBA ROM进行调试的DEBUG工具,UE是对ROM进行修改的十六位编辑器,VBA 结果用于NO$GBA的断点设置。

有时候手头有现成的EC码,就可以省略查找这一步骤。

二.修改开始
本人将为大家进行修改的分类讲解。

1.直接搜索型。

能力值之类的数据按照简单的规律排列,并存放于ROM之中。

只要将数据转化成为十六进制,并按照一定的顺进行搜索即可找到相应位置进行修改。

例子1:机战系列。

机战系列是最容易修改的一个系列之一。

数据内容看似多且乱,其实每一代的存放规律基本差不多,机体能力基似的顺序存放,有时可能有少许的变动。

具体修改参见修改之神PLUTO_SHI的《机战OG静态修改》,西连帝战R静态修改》,以及我写的《机战D静态修改》教程(此文在NW金手指区置顶索引里)。

例子2:《铸剑物语》的武器数值修改。

在《铸剑物语》中以主人公初始武器为例子,主人公初始武器能力并不强
,能力值转换成十六进制的代码05 05 00 32,然后运行UE打开ROM进行搜索
,找到地址后即可以进行修改
图中地址即为武器能力值地址
全改为FF。

要注意的是速度值最高为127,即十六位的7F,如果过头的话会变成减速度能力值的数据。

开VB
,修改成功。

例子3:《波斯王子》的能力值升级修改。

这个游戏有升级系统,但是并非能像传统RPG那样进行普通的练级,王子初期能力值太低很让人不爽。

如果仅序里设定的原始2级能力值
,所以就要把全部30级的能力都改到最高,这样升级也不怕了数据恢复了。

1级能力值如图,搜索3C 0A 06
此图中鼠标拉出的部分就是升级后每一级的能力值,我们要对它们进行修改
遊侠deyb。

Top第1楼·修改·删除·引用·举报该贴发表于2008-05-13 13:43:42热点:17173论坛20

∙[更换头像] [用户信息]
∙17173平民
∙等级
∙发贴 542
∙积分 6901
∙性别
∙加入 2008-02-6。

由于HP的数值最高只有151,修改过高数据会溢出而造成花版现象,所以改为
的255,游戏中的最大值)。

存盘后回到游戏,
初始能力修改成功,再升一级看看。

哈哈,修改大功告成。

这下王子彻底无敌了。

要注意的是有的游戏搜索时并非参照原始数据或是原始数据的顺序,而是一些有规能进行直接搜索,而是需要搜索初始能力减去等级后的数值。

这一点大家修改时要
2.动用简单的ARM指令进行修改。

这种类型多用于一些ACT ARPG和一些射击游戏等,游戏中人物损失HP是由汇编NO$GBA进行DEBUG,VBA和EC提供金手指码。

例子:325号ROM名叫PHALANX,一款不错的横版射击游戏。

主角机体有4格主角机体成为HP不减的无敌状态还有炸弹不减。

首先用VBA搜索到机体HP地址为03005CCE,炸弹为03005D12,然后打开索对话框,选择并运行
ROM,点击DEBUG进入设置断点。

如图所示,输入搜索到的金手指码。

要注意输入的格式必须为[XXXXXXXX]!,否则是无效地址。

然后点击游戏运行戏会自动中断,
如图所示。

红圈位置有个SUB R0,1H字样,这个就是减法指令,它控制主角机体的HP损格式一般为SUB R1,R2,R3或SUB R1,R2,XH。

运算法则为R1=R2-R3或R1=存器里)。

一般要使R1内的数值锁定,可以将SUB指令改写为R1=R2-0H,即行了减去0的操作,从而达到使R1数值锁定的目的。

回到DEBUG窗口,在SU 次为3801 73A0 0600,记录下来。

这些是用在UE中搜索要修改的地址。

修改指令时右键点击指令,然后如图选择,会出现一个对话框,在对话框中输入。

这是对指令进行修改。

此时注意SUB左边4位数字变化成为3800,这表示修随后运行UE,打开ROM搜索修改之前的3801 73A0 0600,由于高低位对调,到地址后将0138改成0038(表示将每次损失的
HP改成0损失)。

存盘退出,用VBA试一下,成功啦。

炸弹修改同HP一样。

此类ROM修改比如《银河战士》两作,《波斯王子》等均如法炮制。

但要注意的令不止一个,有的时候很可能出现修改不完全的现象。

例如《银河战士》中怪物对令不同,而《波斯王子》更是夸张,不仅怪物和各类陷阱对王子伤害不同,就连各不一样,时之砂的消耗也分为一般情况消耗,BOSS战消耗和特定场合消耗(本人改时要特别注意修改完全。

2.复杂修改型。

同样要用上ARM指令,但是不再是用几个简单的SUB就能轻松搞定的,经常可以
有的还要一起改掉。

这种修改起来比较麻烦费解。

本人将以《分裂细胞-明日潘多拉
中一种思路,因为在这种修改中方法并不是唯一的。

首先将步枪子弹改成锁定状态。

直接到网上找到EC码,为477C2。

一般以0XX
金,只要在前面加上020即可,但是遇到以4打头格式的4XXXX类型EC码时就
是加上030,并且将4改为0,就成了0300XXXX格式,这种才是正确的VBA格
后开枪,游戏中断于此
遊侠deyb。

Top第2楼·修改·删除·引用·举报该贴发表于2008-05-13 13:48:43围观:网游原创

∙[更换头像] [用户信息]
∙17173平民
∙等级
看到DEBUG窗口中的命令和以前接触的大相径庭。

然后点击一下游戏运行窗

发贴 542 ∙
积分 6901 ∙
性别 ∙ 加入 2008-02-6
一枪还没开完,命令就又变了。

然后再开一枪,中断后看到这次的命令格式和
为什么呢?因为子弹初始为10,作为10的整数倍,控制弹药消耗用的是图1
弹药消耗用的是另外一种指令。

既然知道了是怎么回事,本人就以10的非整数
耗成小于10了)。

观察图21,出现了新的指令。

本人要改动就是红圈中的STRB 。

STRB 是一个
意思是把R1中的数值存入R2中。

再看图21中游戏窗口下的寄存器,和图2
同步变化,显示的就是当前游戏中的弹药量;R1则表示前一发子弹射出之前的
但是R4控制10整数倍时的弹药,即在图19的命令中可用;R2控制10的非
使用。

所以在图20,21中,R2作为STRB 指令的存储方。

继续观察可以发现
游戏中此数值恒定),所以本人就把R5中的数值作为弹药量锁定存于R2中。

注意记录修改前和修改后指令左方数字的变化。

打开UE改掉搜索后地址中的果为开枪后弹药锁定为1。

虽然总是闪,但是给这个潜入游戏增添了一份紧迫再来看闪光雷的修改,相比步枪子弹就容易一些。

取得闪光雷后,设置断点0
仍然用到STRB指令。

多试几次发现寄存器R3为闪光雷数量地址,R1表示消如刚拿到就开一枪,R1就是开枪后的剩余数量,R2表示刚拿到后的)。

只要还作中,一个闪光雷表示为十六进制的08,两个就是10,3个就是18......最多R2显示为08,表示目前有一颗闪光雷。

因此本人把R2中的数据存放在R3中不修改增加后的数量,所以R2中的数据只会增加不会减少。

这样就能起到闪光前面一样就不再多说了。

同样修改复杂的还有《魂斗罗》等。

有时这些ROM中会用到LDRB,就是和S 是和SUB相对应的加法指令。

在用ARM指令进行修改时,有些不同种指令之
会出现主角死亡时HP不减反增的情况(比如《魂斗罗》);但有时候指令之间而且有些ROM中寄存器的某些数值会恒定,所以可以利用读取这些寄存器进行行数据的无限循环,从而锁定数值。

有的人会问了:“像《ROCKMAN ZERO》系列的怎么改?敌我损失HP的指令们也打不死了。

这怎么办?”其实很简单,就像《分裂细胞》一样修改时需要动中,虽然敌我共用同样的SUB指令,但是寄存器地区显示的地址并不是断点所SUB下面有个MOV指令,这个指令时要把上面运算的过程和结果移动到另一YY,意思为将XX移动到YY处或是移动到YYH之后的地址(YYH表示为具体寄存器里的地址是敌人的而不是主角的。

这个MOV指令将前面SUB指令中运面,造成了修改后敌我双方同时出现无敌的情况。

如果此时修改了SUB指令后么SUB的运算结果就不会移动代入到敌人的地址里。

同时敌人由于没有合适的对敌人攻击是一击毙的情况,包括BOSS战。

说了这么多,总结一下,修改还是要有耐心,不要怕累怕错,多备份ROM。

相关主题