FC按键修改教程.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FC按键修改教程 作者:FlameCyclone(QQ:1490868135) 时间:2015.12.29 工具: 调试器FCEUX; 实验ROM(这里以魂斗罗为例); Hxd编辑器; 一些6502汇编知识. 首先打开FCEUX,并且打开试验品: 接下来开始游戏: 接下来,打开作弊码查找工具: 勾选活跃时暂停,单击重设按钮,将数据重设: 接下来进行按键查找: 1.不按任何按键,在已知值中填入数据00, 单击,此时筛选出来的就是数据为00的地址: 2.接下来点击游戏窗口回到游戏,按住一个按键不放(比如上键), 然后点击查找窗口,再单击””按钮,此时筛选出符合条件的地址: 3.回到游戏,不要按任何按键,然后点击查找窗口,再单击”已知值”,按钮,此时筛选出符合条件的地址: ): 4.重复第2步,可以得到以下结果: 把里面的地址分别添加锁定单独测试: 回到游戏,最后发现地址00F1锁定时,游戏动不了,说明按键地址就是00F1. 接下来记住这个地址. 打开调试器: 单击添加按钮添加地址00F1的写入断点(注意写要打钩),单击确定: 游戏暂停了,调试器如下: 显示的程序: 07:C1F1:94 F1 STY $F1,X @ $00F1 = #$00 07:C1F3:94 F9 STY $F9,X @ $00F9 = #$00 就是对按键地址00F1的写入操作,记下地址C1F1. 接下来做一个按键切换子弹的修改: 先双击00F1断点取消断点,再单击运行. 使用前面作弊码查找的方法找出子弹地址: 1.重设数据: 2.去吃一个子弹道具: 吃到后回到查找窗口单击按钮: 然后去送死,子弹恢复花生米后去查找窗口单击按钮,再单击已知值(填写00): 根据这些地址,我们可以确定子弹地址就是00AA,为何? 自己去测试就知道了,另外,按键地址00F1按住后值保持不变,如果要做到按一次只变化一次,那么就需要一边按按键,一遍在十六进制编辑器中观察,得到00F5符合条件. 通过十六进制编辑器: 在00AA地址输入数据可以知道: 00=普通子弹; 01=M弹; 02=F弹; 03=S弹; 04=L弹; 10=普通子弹; 11=M弹; 12=F弹; 13=S弹; 14=L弹; 其他不可正常使用. 接下来使用十六进制编辑器查找空白空间为写程序做准备: 下拉滚动条滑块,这里可以找到FB70有空白空间: 接下来打开Hxd,新建一个文件: 写入断点代码并加上PHA指令 48: 94 F1 94 F9 48 注释:48 PHA 累加器进栈指令,用来保护寄存器A的数据; 接下来写按键换子弹程序: B5 F5 C9 20 D0 16 B5 AA C9 04 D0 04 A9 0F 95 AA B5 AA C9 14 D0 04 A9 FF 95 AA F6 AA 最后补上68 60: 指令解释: B5 F5 C9 20: 比较按键值是否为0x20(选择键的按键值) D0 16: 若不是,则效果0x16字节,否则继续 B5 AA C9 04: 比较子弹值是否为0x04, D0 04: 若不是,则效果0x04字节,否则继续 A9 0F 95 AA: 将0x0F送入子弹地址 B5 AA C9 14: 比较子弹值是否为0x14, D0 04: 若不是,则效果0x04字节,否则继续 A9 FF 95 AA: 将0xFF送入子弹地址 F6 AA: 子弹地址加1. 68: 出栈 60: 转回 注释: 68 PHA出栈指令,恢复寄存器A状态; 60 RTS 子程序转回指令,用于跳转回指令跳转处. 把Hxd中的数据全部复制下来: 打开十六进制编辑器,找到地址FB70,转到其ROM地址: 然后粘贴数据: 打开调试器,双击00F1断点开启断点: 回到十六进制编辑器: 单击NES内存查看: 再输入转到地址C1F1,确定: 然后转到ROM地址: 修改94 F1 94 F9为20 70 FB EA: 指令解释: 20 70 FB: JSR 跳转到地址FB70 EA: NOP 回到调试器窗口,单击运行: 可以看到程序跳转成功. 接下来双击00F1取消断点,并单击运行: 回到游戏,试了试,和预料一样,按一次选择键,子弹换一次. 回到十六进制编辑器,保存文件: 修改到此结束.

文档评论(0)

123****6651 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档