FC(NES)修改教程

上传人:人*** 文档编号:504945465 上传时间:2022-09-09 格式:DOC 页数:20 大小:340.50KB
返回 下载 相关 举报
FC(NES)修改教程_第1页
第1页 / 共20页
FC(NES)修改教程_第2页
第2页 / 共20页
FC(NES)修改教程_第3页
第3页 / 共20页
FC(NES)修改教程_第4页
第4页 / 共20页
FC(NES)修改教程_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《FC(NES)修改教程》由会员分享,可在线阅读,更多相关《FC(NES)修改教程(20页珍藏版)》请在金锄头文库上搜索。

1、FC(NES)游戏修改基本教程14号拐角一、前言在童年时期,诸多人或许对于C的回忆有许许多多,我也不例外,但是说实在话,我在家能玩到的FC游戏非常的少,回忆起来也只有几种,坦克大战,魂斗罗,赤色要塞,沙罗曼蛇固然最典型的还是小时候玩的热血格斗之后就由于种种因素再也没有接触了,直到PC的浮现,我又重温了那些典型。但是每每看到网上多种HACK版本,总是但愿自己也能做点什么修改,因此多种找教程,多种翻资料也许对于FC这种已经裁减的游戏没有诸多人关怀同样,教程的东西也像烟雾弹一般,可以忽视同样但是对于已经进入迷途的我,似乎有种由衷的爱好般我教过某些人,但是总觉得自己的措施或许不得当,教不会,今天写出这

2、些东西,但愿能遇到某些有天赋的人,如果能遇到予以我批评指出的人或许会更好。我不能保证我100%全对,有误的地方但愿人们能改正吧。好吧,或许人们都不喜欢看废话,于是我们开始吧二、 基本修改修改,固然要准备工具,这里我推荐一种非常强大的FC模拟器FCE系列,目前最新版本是21.6吧(在我打这篇文章的时候),它提供了非常齐全完善的调试器和16进制编辑器。固然,如果要修改FC贴图的话可以用诸多FC贴图修改器进行修改,网上应当有诸多,这里我找不到好的东西,大伙可以自己找找吧,我重要是解说游戏内容的修改,而不是贴图修改。好吧,我们开始修改我修改到恶心的游戏魂斗罗。对于这一段,感谢小粽子此前的教导。魂斗罗很

3、典型,也许到今天都没有人可以一命通关,对于这些头疼的玩家,我们就给她几种选项。1、无限命;2、无限金身;3、瞬秒敌人(不推荐修改,有点偏高品位)。友谊提示,如下16进制编辑器中,在查看菜单有NES内存、PU内存、ROM文献,因此在进行修改之前,请注意自己所在那一页,以免修改错误导致没有相应的效果浮现。只有NS内存和PPU内存才干右键,但是在NS内存下无法进行修改,一变化之后数值会立即转变成为没有修改的状态,注意好自己所在页。、无限命:我们在网上都能懂得,魂斗罗的P的生命值的地址是00(如果不懂得的话就自己网上查吧,如果金手指不会用查,那就自己学吧= )。我所点的地址就是002(可以看看标题栏,

4、上面有写),诸多人都懂得,游戏中的诸多地方都是由人们所称的金手指,我所结识是NES内存所控制的,因此,对这些内存进行相应的操作,就能达到相应的效果,例如金手指锁定某个地址,网上有00-0114就会锁定一定生命数不变,然后就能达到无限命的目的,这个就是简朴的对032这个地址做相应的操作(锁定),达到相应的效果(命不变化)。(图2-)我只能说:呵呵,又废话了多了。想想,我们死了一条命,就是对002这个生命值地址进行“改写”,由于是“改写”,右键0032(ES内存)这个地址之后,我们“给地址0x032添加写入断点”,添加之后会弹出调试器,不理它,切回游戏画面。固然,生命值要进行“改写”,我们就英勇的

5、去撞子弹吧,少年!翻身之后,游戏会暂停,然后调试器的第一行会显示(图2-)我们查一查65大全里面会懂得(不懂得你可以查这篇文章的附录)。6命令是DEC存储器单元内容减1,寻址方式是零页寻址(1)X变址(2)。固然我们非常好理解,存储器单元内容减,喜闻乐见,发来贺电,就是减一条命罢了。于是我们就是不让它执行这条命令行,自然就不会减命了。用鼠标右键直接点击那个红框框的地方,进入6进制编辑器(ROM文献),被选中的就是D6,于是我们修改成EA EA。EA在6502汇编中是NOP,就是无操作的意思,也就是执行这行代码的时候什么都不做,就是要傻楞两行。强调一下,输入命令要打完整,要使输入标示跳入下一种代

6、码中才行,例如代码原本是95,要改成8,不能只打一种8,要打完整个代码85,要否则模拟器不承认你的修改。之后我们切回调试器,这个时候调试器就变成了这样:(图2-3)修改好之后双击右边的断点中的032,使003之后的 ECW- 变成 -W-,让模拟器取消对0断点的监视(要否则会一死由于已经监视了032的“改写”会再次暂停的,要恢复再双击即可),然后点运营即可。(图2-4)好了,再怎么死也死不完了。2、 无限金身金身,所向披靡的一种标志,一种必须的存在,一种OD MODE的向往(这个作者在写故事么扔砖头了哦!)不好意思,又废话了。百度一下我就懂得金身的地址是00B0,这个要想想,金身为什么会打不死

7、(由于她是金身啊,废话),是游戏的一种鉴定,读取金身这个地址内容,是金身,就不死,否则翻身。这个思路很重要,由于要波及断点的鉴定措施是读还是写。好了,找到思路之后,我们添加B0的断点(NES内存)(图2-7)一添加断点之后,模拟器立即暂停,有下面两种也许(图-8)(图9)理解的我自然能看出来原理,但是不理解的也但愿人们都可以试着修改,修改错误不会导致死机,只会导致无法玩游戏而已,并且FCEU可以在你修改正后撤销修改。停留在图-8的童鞋,请点一下运营,应当就能停在图2-9了,然后我们看代码。B5 B0,B是什么,我们查一下。LDA-由存储器取数送入累加器,M,零页变址。零页寻址X变址没什么好讲的

8、,不懂可以再看看(1)(2)。由存储器取数送入累加器,也就是从0B0这个地址读取数字送出来,然后放入累加器中,有关累加器A,之后会有简介,目前就当做能寄放数字并且能运算的东西吧。把0B0的数字送出来之后,下一行代码是F 1,F我们能查查看“如果标志位Z=1则转移,否则继续”,我用简朴的措施解释一下,读取0B0的内容放入累加器A中,如果相等则跳转。这样读下来或许感觉少了些什么,没错,什么相等啊?其实在这里,如果没有给出比较数,默认状况下可以理解成为与0进行比较,于是这句话可以理解成了:读取0B0的内容放入累加器A中,和0进行比较,如果相等则跳转(3)。跳转8个代码,可以自己数数看,正好到D82的

9、地方。好了,如果是0,则跳转,也就是金身状态是0就跳转,那不就是金身状态不能持续了么,不爽不舒服,把跳转取消,就把F直接改成 E。嗯,之后先把对00B的监视状态取消,然后点运营,看游戏的小人闪闪发亮了!3、 瞬秒敌人(偏高品位)或许有人玩魂斗罗没有快感,一定要开外挂,我提供外挂,你们玩!观测到,魂斗罗其实敌人是有生命值这种东西的,因此我们找到敌人的生命值。(图3-1)我旁边圈黑的6(NES内存)就是我前面炮台目前的生命值,注意,这个炮台的地址不一定是585,它是系统分派的,取决于游戏。然后固然,我们打一枪它少一滴血,我们自然是对它的生命值进行了“改写”,于是我们对这个地址添加写入断点(NES内

10、存)。添加之后,我们打炮台一枪,然后游戏会暂停,切到调试器,我们来看看代码。(图-)E3E:97805STA $0578,Y $0585 $0699我们可以看看,SA-将累加器的内容送入存储器 AM,绝对寻址变址(4)。此时内容中为十六进制的0D,也就是十进制的13,99背面所跟的地址是57,然后078偏转个,那就是0585了(进制无非就是0 1 3 4 67 8 9 AB C D E,只要记好这个也挺好数的)(图-)然后我们运用一种跳转语句对图3-2的程序段进行修改,看到此时累加器的数是,阐明即将把5,也就是被打过之后少一滴血的炮台生命值放入本来炮台生命值中替代掉,好,我们从这里下文章。我们

11、找到(NE内存)诸多FF的地方,这里可以让我们为所欲为的写代码,但是要注意,最佳从C0之后找代码,否则会不生效,并且800之前的基本上无法进行修改,请不要使用那里的FF,由于你无法使用。其中我找到的是F60这里,这里是多么广阔的大草原啊(拍飞!)(图3)我们想想,不能把05放到058里,而是直接放进去,炮台没血自然爆炸了吧。我们要增长代码,如图点右键之后“转至RO文献中相应位置”,先把代码打上去A9 00978 05 60(5),好了,我们在图3-2第一行左边点击鼠标右键,然后修改9 7805成20 20 F6。(6)好了,我们取消对断点的监视,然后尽情的秒杀全宇宙吧(只有第二第四关BSS没有

12、此效果)!到这里基本课程算讲完了吧,但愿人们有所收获。补充(1) :零页寻址,就是对NES内存中的00000FF这些地址进行操作;即对如下地址进行操作,固然,最后一行已经超过范畴,无法用零页寻址进行操作。(图补1)(2) :X变址:就是一种偏转量,根据X寄存器的内容进行偏转。CU有三个寄存器,在调试器中也有显示,分别是、(图补-2)。刚刚的命令D632中(图2-2),零页寻址变址,我们可以看到此时X是为0,因此模拟器偏转计算后得 32,如果是1,则是 0033,如果是2,则 0034依此类推。固然变址也是一种道理,但是偏转量所运用的寄存器有所不同而已,即用的是Y寄存器,用法同样。(3) :跳转

13、:简朴说就是跳转到某个程序段继续执行。这里有两种跳转,有条件跳转和无条件跳转。这里的F0(图2-)中,就是有条件跳转,当标志位(7)Z1的时候进行跳转,否则继续。(4) :绝对寻址:记得零页寻址么,就是只有对000-00进行操作,而绝对寻址能对所有地址,即000-FFF进行操作,但是绝对寻址有一点不同的是,它的寻址方式是从低位到高位,例如图-2中是99 ,则所寻地址是578,基本上65内的绝对寻址都是从低位到高位,简朴说就是反过来的。(5) :A9 00:在652是由存储器取数送入累加器,是立即寻址,简朴简介一下立即寻址,也就是直接把,放入累加器中,所有相应的立即寻址大同小异,不多做简介,童鞋

14、可以自己领略。但是要注意,如果你要放入累加器A内容为十进制的,那就要写成A90A,由于这里所有运算都是以16进制为基准的。(6) :这里的20,在6502中是无条件跳转【有条件跳转请看(3)】。就是程序执行到这里之后,会无条件的跳转到相应位置,这里是0 20 F6,则就是无条件跳转到F20这个地址【为什么会反过来请看()有关绝对寻址】执行这个程序段,执行完之后会返回本来的D008继续执行,返回代码是60。相称于一条直的道路,当我们遇到一种牌子:道路施工,请绕行(20的作用),我们就绕行到了某条路,然后绕行肯定还要回到主路,于是看到了一种“”提示我们返回的标志(0的作用)。(7) :标志位,6502的标志位寄存器(图补-3)。有关16进制,童鞋们大可放心,不必需要你自己换算,可以使用Windws自带的计算器,直接调成科学型,然后在10进制状态下输入完后点1进制,计算机(图补-4)就帮你换算了。附录:代码大全,先按类别排序,后按照机器码进行排序。A1LDA由存储器取数送入累加器A先变址后间址A5LDA由存储器取数送入累加器A零页寻址A9LDA由存储器取数送入累加器A立即寻址DDA由存储器取数送入累加器A绝对寻址B1D由存储器取数送入累加器A先间址后Y变址B5LDA由存储器取数送入累加器A零页X变址9A由存储器取数送入累加器A绝对Y变址BDLDA由存储器取数送入累加器A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号