欢迎来到天天文库
浏览记录
ID:21491253
大小:364.00 KB
页数:17页
时间:2018-10-22
《fc(nes)修改教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、
2、FC(NES)游戏修改基础教程14号拐角一、序言在童年时期,很多人或许对于FC的回忆有许许多多,我也不例外,不过说实在话,我在家能玩到的FC游戏非常的少,回忆起来也只有几个,坦克大战,魂斗罗,赤色要塞,沙罗曼蛇……当然最经典的还是小时候玩的热血格斗……之后就由于种种原因再也没有接触了,直到PC的出现,我又重温了那些经典。但是每每看到网上各种HACK版本,总是希望自己也能做点什么修改,所以各种找教程,各种翻资料……可能对于FC这种已经淘汰的游戏没有很多人关心一样,教程的东西也像烟雾弹一般,可以忽略一样……但是对于已
3、经进入迷途的我,似乎有种由衷的爱好般……我教过一些人,但是总觉得自己的方法或许不得当,教不会,今天写出这些东西,希望能遇到一些有天赋的人,如果能遇到给予我批评指出的人或许会更好。我不能保证我100%全对,有误的地方希望大家能更正吧。好吧,或许大家都不喜欢看废话,于是我们开始吧……二、基础修改修改,当然要准备工具,这里我推荐一个非常强大的FC模拟器——FCEUX系列,现在最新版本是2.1.6吧(在我打这篇文章的时候),它提供了非常齐全完善的调试器和16进制编辑器。当然,如果要修改FC贴图的话可以用很多FC贴图修改器进
4、行修改,网上应该有很多,这里我找不到好的东西,大伙可以自己找找吧,我主要是讲解游戏内容的修改,而不是贴图修改。好吧,我们开始修改我修改到恶心的游戏——魂斗罗。对于这一段,感谢小粽子以前的教诲。魂斗罗很经典,可能到今天都没有人能够一命通关,对于这些头疼的玩家,我们就给他几个选项。1、无限命;2、无限金身;3、瞬秒敌人(不推荐修改,有点偏高端)。友情提示,以下16进制编辑器中,在查看菜单有NES内存、PPU内存、ROM文件,所以在进行修改之前,请注意自己所在那一页,以免修改错误导致没有相应的效果出现。只有NES内存和P
5、PU内存才能右键,但是在NES内存下无法进行修改,一改变之后数值会立即转变成为没有修改的状态,注意好自己所在页。1、无限命:
6、我们在网上都能知道,魂斗罗的1P的生命值的地址是0032(如果不知道的话就自己网上查吧,如果金手指不会用/查,那就自己学吧==)。我所点的地址就是0032(可以看看标题栏,上面有写),很多人都知道,游戏中的很多地方都是由大家所称的金手指,我所认识是NES内存所控制的,所以,对这些内存进行相应的操作,就能达到相应的效果……,比如金手指锁定某个地址,网上有0032-01-14就会锁定一定生命数不
7、变,然后就能达到无限命的目的,这个就是简单的对0032这个地址做相应的操作(锁定),达到相应的效果(命不改变)。(图2-1)我只能说:呵呵,又废话了多了。想想,我们死了一条命,就是对0032这个生命值地址进行“改写”,因为是“改写”,右键0032(NES内存)这个地址之后,我们“给地址0x0032添加写入断点”,添加之后会弹出调试器,不理它,切回游戏画面。当然,生命值要进行“改写”,我们就英勇的去撞子弹吧,少年!翻身之后,游戏会暂停,然后调试器的第一行会显示(图2-2)我们查一查6502大全里面会知道(不知道你可以
8、查这篇文章的附录)。D6命令是DEC——存储器单元内容减1,寻址方式是零页寻址(1)X变址(2)。当然我们非常好理解,存储器单元内容减1,喜闻乐见,发来贺电,就是减一条命罢了。于是我们就是不让它执行这条命令行,自然就不会减命了。用鼠标右键直接点击那个红框框的地方,进入16进制编辑器(ROM文件),被选中的就是D6,于是我们修改成EAEA。
9、EA在6502汇编中是NOP,就是无操作的意思,也就是执行这行代码的时候什么都不做,就是要傻楞两行。强调一下,输入命令要打完整,要使输入标示跳入下一个代码中才行,比如代码原本是9
10、5,要改成85,不能只打一个8,要打完整个代码85,要不然模拟器不承认你的修改。之后我们切回调试器,这个时候调试器就变成了这样:(图2-3)修改好之后双击右边的断点中的0032,使0032之后的EC-W--变成-C-W--,让模拟器取消对0032断点的监视(要不然会一死因为已经监视了0032的“改写”会再次暂停的,要恢复再双击即可),然后点运行即可。(图2-4)好了,再怎么死也死不完了。2、无限金身金身,所向披靡的一种标志,一种必须的存在,一种GODMODE的向往……(这个作者在写小说么……扔砖头了哦!!!)不好意
11、思,又废话了。百度一下我就知道金身的地址是00B0,这个要想想,金身为什么会打不死(因为他是金身啊,废话),是游戏的一种判定,读取金身这个地址内容,是金身,就不死,否则翻身。这个思路很重要,因为要涉及断点的判定方法是读还是写。好了,找到思路之后,我们添加00B0的断点(NES内存)
12、(图2-7)一添加断点之后,模拟器马上暂停,有下面两种可能(图2-8)(图2
此文档下载收益归作者所有