FC组合按键hack教程(无限跳转指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
还有not equal
没变化可用equal排除多余结果
在cheat里,左边数据,搜索到的结果里面点一下,左下角点a dd锁定看效果
ac tive che ats是锁定列表
双击可解锁
有时用1和0表示两种生死状态
d elete删除,update更新 删除列表的
也可以重新更新一个值,自己填
功能讲完后,我们来搜按键
FE7B:a909 LDA #$09 ;A=0x09 将09写入寄存器A
FE7D:8d7d00 STA $007d,把寄存器A的数据写入地址 007d 判断这时的寄存器数据是09
FE80:a940 LDA #$40 ;A=0x40 将40写入寄存器A
FE82:8d7e00 STA $007e 把寄存器A的数据写入地址007e
………………………………
注明①FEB3:684cf0e3 PLA A出栈(还原寄存器A在保存的时候的数据) JMP $e3f0 跳转到地址e3f0,返回到原来的程序
↑这条末尾加上4CEEFE JMP $e3f0 跳转到地址FEEE然后!后面还原成FFFF
………………………………
注明②FEB7:c903 这里的开始到结束的指令,把位置往后,写到内存地址FEEE(就是ROM的130815位置),看看效果是不是一样,这个就是简单的写无限跳转指令的方式了,以我目前水平还是菜鸟,欢迎高手请指正。
FEAA:c902 CMP #$02 ;0x02和A比较 判断是否按B 键
FEAC:d009 BNE#$09 ;Z==0?BRA FEB7 是则继续执行,不是则指令往后9字节(即转向FEB7处)
FEAE:a901 LDA #$01 把01送入寄存器A(可理解成mov a,1fh)
FEB0:8d0302 STA $0203 on=7d,9
[生命值最大]
ON=7e.40
[力气最大]
ON=7C,8
[武器最强]
ON=210,3
[四方镖]
ON=203,1
[特殊]
ON=20D,0
[道具无限]
ON=200,9,9,9;207,9,9,9,9
这两个版本代码别弄错了,弄错了就不能用!
我今天要修改的内容是↓
①sel ect加↑:命加9条、生命值最大、力气最大、武器最强、道具加9
FE9D: 8d0802 STA $0208 把寄存器A的数据写入地址0208
FEA0: 8d0902 STA $0209 把寄存器A的数据写入地址0209
FEA3:8d0a02 STA $020A 把寄存器A的数据写入地址020A
FEA6:684cf0e3 PLA A出栈(还原寄存器A在保存的时候的数据) JMP $e3f0 跳转到地址e3f0,返回到特殊
用fceuxdsp-1_07载入后,shift加f1调出ch eat搜出按键代码
类似金山游侠或EC的搜索数据功能
eq ual notepual greaterthan lessthan 分别是相同,不同于,大于,小于
模糊搜索的方法
先reset
游戏发生变化,用greater than或less
以上两条x x x x x x x x补回指令,
FE74:48 PHA A;保存寄存器A的数据
FE75:a51d;LDA $001d ;将[001d]的值存入寄存器A
FE77:c914 CMP #$14 ;0x14和A比较 判断是否同时按“sele ct+上”键
FE79:d02f BNE #$2f ;Z==0?BRA FEAA 是则继续执行,不是则指令往后47字节(即转向FEAA处)
FE85:a908 LDA #$08 ;将08写入寄存器A
FE87:8d7c00 STA $007c 把寄存器A的数据写入地址007c
FE8A:a903 LDA #$03 ;将03写入寄存器A
FE8C:8d1002 STA $0210 把寄存器A的数据写入地址0210
FE8F:a909 LDA #$09 ;将09写入寄存器A
不按键调出窗口搜greaterthan
然后返回,按键调出窗口搜lessthan
最后得到动态内存地址
搜索方式:不按键搜00
按键后调出窗口搜lessthan
用记事本记下上下左右等等数据
接下来用VNES DEBUG版运行游戏,先打开RAM(用来看内存的),然后打开DEBUG窗口,把刚才找到的按键内存地址设置为断点,格式为[001D],输入键值内存地址后点右边的确定, 如图:
把E3EC(对应ROM位置123901)
E3EC:JMP $fe70 跳转到fe70(对应ROM位置130689)
在fe70;写入
FE70:851d STA $1d ;[001d]=A=0x00 将寄存器A中的值存入[001d]地址
FE72:a51f LDA $001f ; 将[001F]的值存入寄存器A
网络上只有单键HACK,没有组合键HACK教程,包括关于空白ffff太少,不够添加代码等,那就要再进行多写几个跳转指令,我算填补一下这个空白,准备工具
未修改的不动明王恶魔之剑中文版
VirtuaNES汉化显代码fcdebug
WinHex_14.2_SR-3_SC
fceuxdsp-1_07
曾经下过那个by团长hack的384k的版本,我手机s60v3的vnes与GP FCE都无法运行,现在这个版本→完美运行了。所以下了个256k的
FEBB:a900 LDA #$00 把00送入寄存器A
FEBD:8d0d02 STA $020D 把寄存器A的数据写入地址020D
FEC0:684cf0e3 PLA A出栈(还原寄存器A在保存的时候的数据) JMP $e3f0 跳转到地址e3f0,返回到原来的程序
到这里就修改完了,如果空白区不够写,要做成跳转指令
注明①FEB3:684cf0e3 PLA A出栈(还原寄存器A在保存的时候的数据) JMP $e3f0 跳转到地址e3f0,返回到原来的程序
注明②FEB7:c903 CMP#$03 ;0x58和A比较 判断是否同时按A+B键
FEB9:d005 BNE #$05 ;Z==0?BRA FEC0 是则继续执行,不是则指令往后5字节(即转向FEC0处)
测试方法
可以试着在断点处输入 [001D]=A=0x04 然后在游戏中按select键,看游戏会不会停止,如停止就对了
接着我们查看内存,先找一块空白区域,一般是3-5行以上的FFFFFF,实在没有就找000000000,不过0000000容易有BUG,注意:找空间最好从C000-FFFF那里左边那排就是动态内存的地址【下面代码我分隔,方便说明的】
FE91:8d0002 STA $0002 把寄存器A的数据写入地址0002
FE94:8d0102 STA $0201 把寄存器A的数据写入地址0201
FE97:8d0202 STA $0202 把寄存器A的数据写入地址0202
FE9A:8d0702 STA $0207 把寄存器A的数据写入地址0207
教程到这里就完了,你对着rom修改下,看看是不是效果是不是一样的?
转载请注明作者名字和文章出处
by 悠然小赐
没变化可用equal排除多余结果
在cheat里,左边数据,搜索到的结果里面点一下,左下角点a dd锁定看效果
ac tive che ats是锁定列表
双击可解锁
有时用1和0表示两种生死状态
d elete删除,update更新 删除列表的
也可以重新更新一个值,自己填
功能讲完后,我们来搜按键
FE7B:a909 LDA #$09 ;A=0x09 将09写入寄存器A
FE7D:8d7d00 STA $007d,把寄存器A的数据写入地址 007d 判断这时的寄存器数据是09
FE80:a940 LDA #$40 ;A=0x40 将40写入寄存器A
FE82:8d7e00 STA $007e 把寄存器A的数据写入地址007e
………………………………
注明①FEB3:684cf0e3 PLA A出栈(还原寄存器A在保存的时候的数据) JMP $e3f0 跳转到地址e3f0,返回到原来的程序
↑这条末尾加上4CEEFE JMP $e3f0 跳转到地址FEEE然后!后面还原成FFFF
………………………………
注明②FEB7:c903 这里的开始到结束的指令,把位置往后,写到内存地址FEEE(就是ROM的130815位置),看看效果是不是一样,这个就是简单的写无限跳转指令的方式了,以我目前水平还是菜鸟,欢迎高手请指正。
FEAA:c902 CMP #$02 ;0x02和A比较 判断是否按B 键
FEAC:d009 BNE#$09 ;Z==0?BRA FEB7 是则继续执行,不是则指令往后9字节(即转向FEB7处)
FEAE:a901 LDA #$01 把01送入寄存器A(可理解成mov a,1fh)
FEB0:8d0302 STA $0203 on=7d,9
[生命值最大]
ON=7e.40
[力气最大]
ON=7C,8
[武器最强]
ON=210,3
[四方镖]
ON=203,1
[特殊]
ON=20D,0
[道具无限]
ON=200,9,9,9;207,9,9,9,9
这两个版本代码别弄错了,弄错了就不能用!
我今天要修改的内容是↓
①sel ect加↑:命加9条、生命值最大、力气最大、武器最强、道具加9
FE9D: 8d0802 STA $0208 把寄存器A的数据写入地址0208
FEA0: 8d0902 STA $0209 把寄存器A的数据写入地址0209
FEA3:8d0a02 STA $020A 把寄存器A的数据写入地址020A
FEA6:684cf0e3 PLA A出栈(还原寄存器A在保存的时候的数据) JMP $e3f0 跳转到地址e3f0,返回到特殊
用fceuxdsp-1_07载入后,shift加f1调出ch eat搜出按键代码
类似金山游侠或EC的搜索数据功能
eq ual notepual greaterthan lessthan 分别是相同,不同于,大于,小于
模糊搜索的方法
先reset
游戏发生变化,用greater than或less
以上两条x x x x x x x x补回指令,
FE74:48 PHA A;保存寄存器A的数据
FE75:a51d;LDA $001d ;将[001d]的值存入寄存器A
FE77:c914 CMP #$14 ;0x14和A比较 判断是否同时按“sele ct+上”键
FE79:d02f BNE #$2f ;Z==0?BRA FEAA 是则继续执行,不是则指令往后47字节(即转向FEAA处)
FE85:a908 LDA #$08 ;将08写入寄存器A
FE87:8d7c00 STA $007c 把寄存器A的数据写入地址007c
FE8A:a903 LDA #$03 ;将03写入寄存器A
FE8C:8d1002 STA $0210 把寄存器A的数据写入地址0210
FE8F:a909 LDA #$09 ;将09写入寄存器A
不按键调出窗口搜greaterthan
然后返回,按键调出窗口搜lessthan
最后得到动态内存地址
搜索方式:不按键搜00
按键后调出窗口搜lessthan
用记事本记下上下左右等等数据
接下来用VNES DEBUG版运行游戏,先打开RAM(用来看内存的),然后打开DEBUG窗口,把刚才找到的按键内存地址设置为断点,格式为[001D],输入键值内存地址后点右边的确定, 如图:
把E3EC(对应ROM位置123901)
E3EC:JMP $fe70 跳转到fe70(对应ROM位置130689)
在fe70;写入
FE70:851d STA $1d ;[001d]=A=0x00 将寄存器A中的值存入[001d]地址
FE72:a51f LDA $001f ; 将[001F]的值存入寄存器A
网络上只有单键HACK,没有组合键HACK教程,包括关于空白ffff太少,不够添加代码等,那就要再进行多写几个跳转指令,我算填补一下这个空白,准备工具
未修改的不动明王恶魔之剑中文版
VirtuaNES汉化显代码fcdebug
WinHex_14.2_SR-3_SC
fceuxdsp-1_07
曾经下过那个by团长hack的384k的版本,我手机s60v3的vnes与GP FCE都无法运行,现在这个版本→完美运行了。所以下了个256k的
FEBB:a900 LDA #$00 把00送入寄存器A
FEBD:8d0d02 STA $020D 把寄存器A的数据写入地址020D
FEC0:684cf0e3 PLA A出栈(还原寄存器A在保存的时候的数据) JMP $e3f0 跳转到地址e3f0,返回到原来的程序
到这里就修改完了,如果空白区不够写,要做成跳转指令
注明①FEB3:684cf0e3 PLA A出栈(还原寄存器A在保存的时候的数据) JMP $e3f0 跳转到地址e3f0,返回到原来的程序
注明②FEB7:c903 CMP#$03 ;0x58和A比较 判断是否同时按A+B键
FEB9:d005 BNE #$05 ;Z==0?BRA FEC0 是则继续执行,不是则指令往后5字节(即转向FEC0处)
测试方法
可以试着在断点处输入 [001D]=A=0x04 然后在游戏中按select键,看游戏会不会停止,如停止就对了
接着我们查看内存,先找一块空白区域,一般是3-5行以上的FFFFFF,实在没有就找000000000,不过0000000容易有BUG,注意:找空间最好从C000-FFFF那里左边那排就是动态内存的地址【下面代码我分隔,方便说明的】
FE91:8d0002 STA $0002 把寄存器A的数据写入地址0002
FE94:8d0102 STA $0201 把寄存器A的数据写入地址0201
FE97:8d0202 STA $0202 把寄存器A的数据写入地址0202
FE9A:8d0702 STA $0207 把寄存器A的数据写入地址0207
教程到这里就完了,你对着rom修改下,看看是不是效果是不是一样的?
转载请注明作者名字和文章出处
by 悠然小赐