- 10
- 0
- 约1.81千字
- 约 2页
- 2017-06-12 发布于北京
- 举报
?????? 游戏有很多种修改,这次我们来说说如何做到在游戏中按某键得到某效果的修改方法,虽然是以FC为题材,不过只要知道了这种方法,再去了解下其他机种的汇编语,那样就可以把那种效果搬到其他的机种了。
注意:这篇教程不是基础教程,一些修改游戏最基本的这里不会赘述,没有任何修改基础的人很难看明白,新人最好去翻翻修改游戏的基础教程,网上很多。
好,接下来进入正题:
1.首先要知道FC游戏所用的汇编语——6502汇编(网上可以轻松搜索到),因为以下修改需要用到一些6502的简单指令。
2.需要的工具有1.VNES DEBUG版 2.VNES模拟器 3.EMU CHEAT(用来找EC码)4.16进制编辑器(推荐ultra edit 和 winhex)
3.用模拟器运行FC游戏,用EMU CHEAT找按键内存地址和你想要的效果地址,比如你要按某键使生命为99,那除了找到按键内存还要找到生命内存地址。
4.找到需要找的地址后就用VNES DEBUG版的模拟器运行游戏,设置断点,等游戏自动暂停后使用跳转指令跳到游戏的空白内存,然后添加指令来达到想要的效果。
5.在游戏的内存里写完指令所对应的机器码后就进行调试,看你想要的效果有没有,如果有了就用16进制编辑器打开ROM,把内存里写的机器码写到ROM里,保存之后就完成了,接下来详细解说。
找到按键内存地址——运行游戏后不按键搜00 随便按一个键(按住)后搜大于,然后松开搜00,再按住其他的键再搜大于,如此反复 就能搜到很少的地址,自己判断哪个或者试验。
好,我们以FC的双截龙2为例子,搜到的按键内存为00E2 并且每个按键值分别为:上[08] 下[04] 左[02] 右[01] B[40] A[80]? SELECT[20]?? START[10],并且搜到体力内存为041E 满值为7F。
接下来用VNES DEBUG版运行游戏,先打开RAM(用来看内存的),然后打开DEBUG窗口,把刚才找到的按键内存地址设置为断点,格式为[00E2],然后点右边的确定, 如图:
然后游戏就会因为运行到你设置的断点而停止运行,这时可以看到很多指令,我们只看最后两条:
FD7A:??95 E0 STA $E0,X? :[00E0]=A=0x00
FD7C: ?94 E2 STY $E2,X? :[00E2]=Y=0x00
我们可以试着在断点处输入 [00E2]=Y=0x80 然后在游戏中按A键,看游戏会不会停止。
结果是暂停了,接着我们查看内存,先找一块空白区域,一般是3-5行以上的FFFFFF,实在没有就找000000000,不过0000000容易有BUG,而这个游戏就没有什么FFFFFFFF(注意:找空间最好从C000-FFFF那里找,因为有些游戏8000-BFFF会切页(这个暂时不解说了)。
????? 我这里就准备写在FFC0那里。然后找到地址 FD7A:95 E0 和 FD7C: 94 E2 把 95 E0 94 E2 改成 4C C0 FF (意思是跳转到FFC0那里,注意高低位互换)把4C C0 FF覆盖掉95 E0 94 E2前3个字节,后面那个 E2 留着不用管。
然后到FFC0那里写上覆盖掉的那两条指令 95 E0 94 E2 ,接着我们就准备把这个游戏改成按SELECT这个键让体力回复满,看看上面的按键值,SELECT键的值是什么,是 20 ,所以我们就接着输入:
48 C9 20 D0 05 A9 7F 8D 1E 04? 68??4C 7E FD
上面的机器码代表的指令是:
PHA A入栈(可以理解成保存寄存器A里的数据)
CMP #$20 对比寄存器A与20(20是SELECT的按键值)
BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.
LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)
STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)
PLA A出栈(还原寄存器A在保存的时候的数据)
JMP $fd7e 跳转到地址fd7e,返回到原来的程序
然后进入游戏试验,成功之后,把你改的代码写到用16进制编辑器打开的ROM里就可以了,这样你就完成了按某键得到某效果的修改了。
您可能关注的文档
- Excel函数速查表阅.doc
- EXCEL同名查找简单实现.doc
- excel大小写切换.doc
- EXCEL常用快捷键全.doc
- Excel批量插入图片VBA代码.doc
- Excel电子表格计算公式使用方法25条公式技巧总结.doc
- EXCEL表格中的常用的公式快捷键.doc
- EXCEL表格宏的应用.doc
- Excel表格身份证号码提取出生日期的公式 (2).doc
- Excel表格的基本操作.docx
- 2026年AI教育市场用户需求变化与自适应学习系统功能优化策略.docx
- 2026年AI教育市场用户需求分析及自适应学习系统功能优化.docx
- 2026年坦桑尼亚太阳能光伏发电系统并网技术与政策支持.docx
- 2026年缝纫机器人市场供需关系分析报告.docx
- 2026年AI教育市场自适应学习系统技术发展趋势研判.docx
- 2026年枸杞深加工数字化营销与社交媒体应用报告.docx
- 2026年财务咨询行业数字化转型挑战与对策报告.docx
- 2026年AI教育市场自适应学习系统用户行为与偏好研究.docx
- 2026年AI教育市场自适应学习系统竞争格局分析.docx
- 2026年医药供应链管理行业优化服务策略报告.docx
原创力文档

文档评论(0)