cystev
级别: 火花会员
编号: 27383
精华: 1
发帖: 108
威望: 0 点
配偶: 单身
火 花 币: 27707 HHB
注册时间:2004-10-26
最后登陆:2017-10-13
|
TO 希罗斑竹:
你上次说的,命中敌人,但是不将其击毙所获得的EXP我用下面的方法替换掉了,不知道思路对不对。
开始游戏,预先得知,此次攻击将获得11点(B)的EXP,在0202BE99上设断点,RELOAD,然后游戏在0802C142>7CE8 ldrb r0,[r5,13h]处暂停,查看R0,此时数值正好为4C,即战斗结束后的经验数值,知道到此处已完成一次加法,即战前经验+得到11点经验=战后经验的累加。此时R4为0202BE90,而0802C140 7260 strb r0,[r4,9h]语句的意思简单理解为将R0上的数值传递到0202BE90+9=0202BE99上,语句0802C13E 7A68 ldrb r0,[r5,9h]意思将R5+9H的内存地址上的数值传递给R0,此时R5为0203A568,加上9H,为0203A571,所以在0203A571上重新设断点,然后RELOAD,游戏再次暂停在0802B8CA>1C28 mov r0,r5处,此时R0为B,正好为我们需要的数据,往前找到0802B8B2处,为一BL的跳转语句,在此语句两端再次设断点。RELOAD,游戏暂停在BL上面一句话0802B8B0处,此时R0为一内存地址,不是B,按F8,跳到0802B8B4,此时R0,再次为B,说明经过此BL的分支后,RO被赋值B。将B语句0802B8B2 F000FDDB bl 802C46Ch改为mov r0,64h
nop如果还要跳到802C46Ch去设其他断点有点繁了。不如直接在此处把跳转取消,改成赋给R0 100点数值的目的。为了防止出现修改后错误代码,把FDDB的语句改成NOP就没问题了。我在游戏中试过,只要是命中,不管敌人是死是活,都有100点经验可增加,而且也没BUG出现。(如果继续跟踪的话会发现是把R2上的EXP值传给R0的,所以又要改R2的有关语句,还是太繁了)然后就是到ROM里改数据咯~~~~~~~`
第一次暂停处:
0802C132 4708 bx r1
0802C134 B570 push r4-r6,lr
0802C136 1C04 mov r4,r0
0802C138 1C0D mov r5,r1
0802C13A 7A28 ldrb r0,[r5,8h]
0802C13C 7220 strb r0,[r4,8h]
0802C13E 7A68 ldrb r0,[r5,9h]
0802C140 7260 strb r0,[r4,9h]
0802C142>7CE8 ldrb r0,[r5,13h]
0802C144 74E0 strb r0,[r4,13h]
0802C146 68E8 ldr r0,[r5,0Ch]
0802C148 60E0 str r0,[r4,0Ch]
0802C14A 4A33 ldr r2,=3003008h
0802C14C 0C40 lsr r0,r0,11h
0802C14E 2107 mov r1,7h
0802C150 4008 and r0,r1
第二次暂停处:
0802B896 2080 mov r0,80h
0802B898 4008 and r0,r1
0802B89A 2800 cmp r0,0h
0802B89C D11B bne 802B8D6h
0802B89E 4C10 ldr r4,=203A568h
0802B8A0 1C28 mov r0,r5
0802B8A2 1C21 mov r1,r4
0802B8A4 F000FDE2 bl 802C46Ch
0802B8A8 1C2E mov r6,r5
0802B8AA 366E add r6,6Eh
0802B8AC 7030 strb r0,[r6]
0802B8AE 1C20 mov r0,r4
0802B8B0>1C29 mov r1,r5
0802B8B2 F000FDDB bl 802C46Ch<--------------------此处改为MOV R0,64H -- 2064
NOP--46C0
0802B8B6 1C21 mov r1,r4
0802B8B8 316E add r1,6Eh
0802B8BA 7008 strb r0,[r1]
0802B8BC 7831 ldrb r1,[r6]
0802B8BE 7A6A ldrb r2,[r5,9h]
0802B8C0 1889 add r1,r1,r2
0802B8C2 7269 strb r1,[r5,9h]
0802B8C4 7A61 ldrb r1,[r4,9h]
0802B8C6 1809 add r1,r1,r0
0802B8C8 7261 strb r1,[r4,9h]
0802B8CA 1C28 mov r0,r5
0802B8CC F000F850 bl 802B970h
感谢nogba的反汇编到文件的功能。其他方式如回避加EXP,跳舞加EXP,使用杖加EXP等,也能用此方法改的。武器,杖,等的消耗只需将某减法语句或者STRB语句改为NOP就行了。~0~
|
|
[1 楼]
|
Posted:2004-10-30 19:14| |
顶端
| |