GBA修改教程完全版Word格式.docx
《GBA修改教程完全版Word格式.docx》由会员分享,可在线阅读,更多相关《GBA修改教程完全版Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
具体修改参见修改之神PLUTO_SHI的《机战OG静态修改》,西连帝和巴尔西昂的《机战A静态修改》和《机战R静态修改》,以及我写的《机战D静态修改》教程(此文在NW金手指区置顶索引里)。
例子2:
《铸剑物语》的武器数值修改。
在《铸剑物语》中以主人公初始武器为例子,主人公初始武器能力并不强
,能力值转换成十六进制的代码05050032,然后运行UE打开ROM进行搜索
,找到地址后即可以进行修改
图中地址即为武器能力值地址
全改为FF。
要注意的是速度值最高为127,即十六位的7F,如果过头的话会变成减速度能力值的数据。
开VBA看看吧
,修改成功。
例子3:
《波斯王子》的能力值升级修改。
这个游戏有升级系统,但是并非能像传统RPG那样进行普通的练级,王子初期能力值太低很让人不爽。
如果仅仅修改初始能力,升级后能力会还原成程序里设定的原始2级能力值
,所以就要把全部30级的能力都改到最高,这样升级也不怕了数据恢复了。
1级能力值如图,搜索3C0A06
此图中鼠标拉出的部分就是升级后每一级的能力值,我们要对它们进行修改
遊侠deyb。
Top第1楼·
修改
·
删除
引用
举报该贴发表于2008-05-1313:
43:
42热点:
17173论坛2009年玩家精彩荟萃大合辑
∙
∙[更换头像]
[用户信息]
∙17173平民
∙等级
∙发贴
542
∙积分
6901
∙性别
∙加入
2008-02-6
。
由于HP的数值最高只有151,修改过高数据会溢出而造成花版现象,所以改为97。
而其余能力可以改为FF(即十进制的255,游戏中的最大值)。
存盘后回到游戏,
初始能力修改成功,再升一级看看
哈哈,修改大功告成。
这下王子彻底无敌了。
要注意的是有的游戏搜索时并非参照原始数据或是原始数据的顺序,而是一些有规律的变数。
比如《OG》中响介的能力不能进行直接搜索,而是需要搜索初始能力减去等级后的数值。
这一点大家修改时要注意。
2.动用简单的ARM指令进行修改。
这种类型多用于一些ACTARPG和一些射击游戏等,游戏中人物损失HP是由汇编指令来进行控制。
这种修改需要工具为NO$GBA进行DEBUG,VBA和EC提供金手指码。
例子:
325号ROM名叫PHALANX,一款不错的横版射击游戏。
主角机体有4格HP和3个炸弹。
本人修改的目的在于使主角机体成为HP不减的无敌状态还有炸弹不减。
首先用VBA搜索到机体HP地址为03005CCE,炸弹为03005D12,然后打开NO$GBA,直接点击窗口弹出ROM的搜索对话框,选择并运行
ROM,点击DEBUG进入设置断点
如图所示,输入搜索到的金手指码
要注意输入的格式必须为[XXXXXXXX]!
,否则是无效地址。
然后点击游戏运行窗口开始游戏。
当主角机体损失HP时游戏会自动中断,
如图所示
红圈位置有个SUBR0,1H字样,这个就是减法指令,它控制主角机体的HP损失量。
这里详细讲解一下SUB指令,其格式一般为SUBR1,R2,R3或SUBR1,R2,XH。
运算法则为R1=R2-R3或R1=R2-XH(RX数值放在游戏窗口下面的寄存器里)。
一般要使R1内的数值锁定,可以将SUB指令改写为R1=R2-0H,即改为SUBR1,R2,0H,这样就相当于执行了减去0的操作,从而达到使R1数值锁定的目的。
回到DEBUG窗口,在SUB左边有用蓝圈所示的数据,从上向下依次为380173A00600,记录下来。
这些是用在UE中搜索要修改的地址。
修改指令时右键点击指令,然后如图选择,会出现一个对话框,在对话框中输入要修改的指令SUBR0,0H
这是对指令进行修改。
此时注意SUB左边4位数字变化成为3800,这表示修改后的数据,以前损失的01变成了00。
随后运行UE,打开ROM搜索修改之前的380173A00600,由于高低位对调,所以实际搜索为01380A730006。
找到地址后将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设置断点,然后开枪,游戏中断于此
Top第2楼·
48:
43围观:
网游原创文学的平台
看到DEBUG窗口中的命令和以前接触的大相径庭。
然后点击一下游戏运行窗口继续游戏时会发现,游戏又中断了
一枪还没开完,命令就又变了。
然后再开一枪,中断后看到这次的命令格式和图20中的指令相同
为什么呢?
因为子弹初始为10,作为10的整数倍,控制弹药消耗用的是图19的指令,而子弹成为10的非整数倍时,弹药消耗用的是另外一种指令。
既然知道了是怎么回事,本人就以10的非整数倍继续进行修改(因为刚才子弹已经消耗成小于10了)。
观察图21,出现了新的指令。
本人要改动就是红圈中的STRB。
STRB是一个存储指令,格式一般为STRBR1,[R2],意思是把R1中的数值存入R2中。
再看图21中游戏窗口下的寄存器,和图20比较一下可以看出R0和R3的数据在同步变化,显示的就是当前游戏中的弹药量;
R1则表示前一发子弹射出之前的弹药量。
注意R2和R4均为弹药地址,但是R4控制10整数倍时的弹药,即在图19的命令中可用;
R2控制10的非整数倍时的弹药,在目前修改的命令中使用。
所以在图20,21中,R2作为STRB指令的存储方。
继续观察可以发现这几次开枪中R5的数值恒定为1(实际游戏中此数值恒定),所以本人就把R5中的数值作为弹药量锁定存于R2中。
然后对指令右键点击进入对话框进行修改
注意记录修改前和修改后指令左方数字的变化。
打开UE改掉搜索后地址中的数值。
OK,用VBA试验一下吧。
修改效果为开枪后弹药锁定为1。
虽然总是闪,但是给这个潜入游戏增添了一份紧迫感(免得自恃弹药无限就乱开枪)。
再来看闪光雷的修改,相比步枪子弹就容易一些。
取得闪光雷后,设置断点030077C3,中断后如图所示
仍然用到STRB指令。
多试几次发现寄存器R3为闪光雷数量地址,R1表示消耗后的数量,R2表示消耗之前的数量(例如刚拿到就开一枪,R1就是开枪后的剩余数量,R2表示刚拿到后的)。
只要还有闪光雷,R2的数量就不会成为0。
本作中,一个闪光雷表示为十六进制的08,两个就是10,3个就是18......最多到48,也就是9颗雷。
所以在寄存器中,R2显示为08,表示目前有一颗闪光雷。
因此本人把R2中的数据存放在R3中,这样就忽略了R1和消耗量。
由于本人不修改增加后的数量,所以R2中的数据只会增加不会减少。
这样就能起到闪光雷不会减少的效果。
具体的修改操作和前面一样就不再多说了。
同样修改复杂的还有《魂斗罗》等。
有时这些ROM中会用到LDRB,就是和STRB相对应的读取指令。
还有就是ADD,是和SUB相对应的加法指令。
在用ARM指令进行修改时,有些不同种指令之间可以替换,比如用ADD替换STRB,会出现主角死亡时HP不减反增的情况(比如《魂斗罗》);
但有时候指令之间无法相互替换,强行修改会引起副作用。
而且有些ROM中寄存器的某些数值会恒定,所以可以利用读取这些寄存器进行修改,或是用寄存器之间的指令关系进行数据的无限循环,从而锁定数值。
有的人会问了:
“像《ROCKMANZERO》系列的怎么改?
敌我损失HP的指令时一样的,改了主角HP不减,就连敌人们也打不死了。
这怎么办?
”其实很简单,就像《分裂细胞》一样修改时需要动些脑筋。
在《ROCKMANZERO》系列中,虽然敌我共用同样的SUB指令,但是寄存器地区显示的地址并不是断点所用的主角的HP地址,而是敌人的。
而在SUB下面有个MOV指令,这个指令时要把上面运算的过程和结果移动到另一个寄存器和地址里,通常格式为MOVXXYY,意思为将XX移动到YY处或是移动到YYH之后的地址(YYH表示为具体的十六进制数据)。
这就是为什么你看到寄存器里的地址是敌人的而不是主角的。
这个MOV指令将前面SUB指令中运算的结果移动代入到了敌人的HP地址里面,造成了修改后敌我双方同时出现无敌的情况。
如果此时修改了SUB指令后,再将MOV指令后面YY改成0H,那么SUB的运算结果就不会移动代入到敌人的地址里。
同时敌人由于没有合适的SUB控制指令,所以修改后会出现主角对敌人攻击是一击毙的情况,包括BOSS战。
说了这么多,总结一下,修改还是要有耐心,不要怕累怕错,多备份ROM。