Nw BBS 壬天堂世界

 找回密码
 注册
搜索
热搜: 资料集合
查看: 3323|回复: 0
收起左侧

[金手指] 光明之魂2——特殊按键修改前缀金手指

[复制链接]
发表于 2008-6-1 21:41:01 | 显示全部楼层 |阅读模式
光明之魂2——特殊按键修改前缀金手指,Gameshark码
按 VBA模拟器 菜单的 Cheats-Cheat list,按“Remove All”按钮,删除所有金手指
按 VBA模拟器 菜单的 Cheats-Cheat list,按“Code”按钮,在“Code”栏里输入
按 VBA模拟器 菜单的 修改(金手指)-修改代码列表(金手指列表),按“金手指”按钮,在“代码”栏里输入

02F05A37 EBCFAC6C
F3E460B1 39C4F1D3
475259FA 3D3DAEDE
DF7E6AF6 84FCFE25
11A1491E A7F4A0B1
CA65AABE 0A2C659F
D4074DB8 83EE8533
69B81789 A52E8572
ACEEB139 B57DC457
6A20D047 C18E4852
A07A3E41 C600C5CA
ADD4C2C1 CE7E70C0
D62AAAF7 BBAD42CD
AA65A890 C384FF1B
2801109C D5133ECD
68E0273F 904F638F
95CB8ABB 6E621142
E163B432 58720B85
2EA036C6 C4EF027E
65DA389A 09D8882C
D17736B3 D46A8F63
E9796B7E 529DFF65
C5A06D37 6C956D9B
01D2EF39 3E52392C
5FC2B87E 9687186B
C7CF8462 3F2A836D
BD49CEDA A9CC87CB
6A20D047 C18E4852
83D212BB 813A23E9
A7C58F16 07E6F380
063A0ECC 5B06DB72
3FA0C716 CFFF3E3F
CAB4D297 9C2ACABE
802BD7B9 80332166
1C14CB23 E581B16F
BB7BE502 40AE7B1D
41F91A7A 7F800D44
C7B8D42B DDB24B23
97133084 FA51DD1C
3FA0C716 CFFF3E3F
CFB9E639 41EA46DE
B80A597E 573C04B9
4E553538 DA1141AA
821C3C60 FE4FB9BE
5087CBD1 B743225D
B5805E1C C97E7AD9
A6AA9702 81D04A2B
CF251D68 25BDFBC9
09C23357 5D38EF8C
BC6F8E67 C2F49DF3
AE302292 EE3BC46F
1C26DCAF 5A774283
0131C95C C205EFF3
FED6C994 B53CCD1C

然后再按“Remove All”按钮,删除这些金手指。再添加以下金手指(VBA只能存放100条金手指,金手指一多就只能一步步来)
A470D206 7A1B6D9D
4ADA8F50 0D66D96F
AD861041 43C5250B
CB4EB4A3 3458CEDC
D69D0403 9EA0C95E
E2302908 64FD3288
ADEE5B12 A1C4DE2B
DABE107E 871A67DB
BE242141 2E2B799A
59A0AC90 20F3E1E0

做完这一切后,你只要按SELECT+上,就能改变道具栏第一格物品的前缀。
建议按SELECT,出现该物品属性的界面后,再按SELECT+上
这样一来还有个问题,物品前缀变化得太快。有一个带副作用的方法:
2EA036C6 C4EF027E
E7CC0D4E 9989D7BC
添加完这两条金手指后,按一次SELECT+上,前缀变化一次,不过背景色会受到影响。原因是修改的这部分程序会修改背景色内存,不过对正常游戏无影响。

以上内容创意来自《GBA光明之魂2超级暗法师版by しんわ》,程序方面我分析并进行了修改。

03001338 按键
0202D6F2 按键

金手指修改的地方
0800076A bl 080DE8E8h ;执行新程序
080DE8E8-080DE91B ;程序
080DE8E8
push r0-r3 ;push将要改动的寄存器r0-r3
ldr r0,=0202D6F2h
ldrb r2,[r0] ;r2=[0202D6F2h]存放的按键值
ldr r1,=03001338h
ldrb r3,[r1] ;r3=[03001338h]存放的按键值
cmp r2,r3 ;两者是否相同,[0202D6F2]的按键值变化得较慢
beq 080DE90Ch ;相同则说明这次按键,已经修改了前缀,不再重复修改
*
cmp r3,44h ;按键值是否为44(SELECT+上)
bne 080DE90Ch ;如果不是则不修改前缀
ldr r0,02003D4Ch ;r0=道具栏第一格物品的前缀的内存地址
ldrb r2,[r0] ;r2=[02003D4Ch](前缀值)
add r2,r2,1h ;前缀值增加1
strb r2,[r0] ;写入道具栏第一格物品的前缀的内存地址
cmp r2,48h ;比较修改后的前缀值、48h
blt 080DE90C ;小于则跳出
mov r2,0
strb r2,[r0] ;大于则前缀值置0
pop r0-r3 ;pop改动过的寄存器r0-r3

;以下两条指令为原来的程序
ldr r0,=04000130
ldr r1,[r0]

bx r14 ;子程序返回

*:如果未添加那两条带副作用的金手指,汇编指令为nop
如果添加了,指令为str r3,[r0],把[03001338h]写入[0202D6F2h]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|Nw壬天堂世界 ( 京ICP备05022083号-1 京公网安备11010202001397号 )

GMT+8, 2024-5-19 17:26 , Processed in 0.011365 second(s), 5 queries , Redis On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表