




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FC 外星战将 按键 hack 教程2010-10-23 14:04游戏资料是Konami根据著名连环画兔子巴奇(Bucky OHare)改编的街机游戏。1、漫画介绍:兔子巴奇是由美国漫画作家 Larry Hama于1978 至 1979创作的,兔子巴奇漫画主要讲述的是在一个平行宇宙一场发生在有哺乳动物领导的动物联盟与毒蟾蜍帝国的战争,蟾蜍帝国的领导者是一台巨大的电子系统坎普斯,它将蟾蜍一族进行了洗脑。漫画不仅被拍成动画片,还被改编成多款游戏,其中较著名的就是街机游戏外星战将。2、主要人物介绍:兔子巴奇(BuckyOHare):队长,绿色的兔子,驾驶一架名为正义之愤怒的太空飞船,他的队友包括:
2、猫女詹尼(Jenny):巴奇的第一位队友,领航员,拥有神秘力量的猫族,具有读心术,治愈,能量释放等多种力量,平时总是隐藏自己的能力,只有对另一位队员威利才会展露出原本的力量,对威利是母亲一般的人物机器人布灵奇(Blinky):只有一只眼睛的高级机器人,使用特殊的语言为队员们判别形势神枪手鸭(Deadeye Duck )狙击手,是有四只手的鸭子,一只眼睛瞎了,脾气很暴躁,不喜欢说话,更多时候是喜欢疯狂射击威利杜伟(Willy DuWitt )飞船的工程师,来自旧金山的十几岁的地球男孩,通过自己制作的加速装置来到巴奇的飞船,原来的工程师布鲁斯(游戏中未提及)牺牲后,威利代替他的位置。3、游戏发行商
3、:Konami 发行年份:1992运行平台:NES/FC游戏类型:单机动作类游戏4、游戏介绍:游戏讲述了队长兔子巴奇在一系列的星球中要求拯救他的其他四位队员,每当救出一位队员,玩家即可获得一种在巴奇和其他队员转换的能力,每个队员都有其特殊的能力,主要有巴奇跳跃,布灵奇飞行融冰,詹尼发射能量球,神枪手鸭爬墙散弹,威利高能量射击,以应对各种不同的挑战,当巴奇成功救出其他的队员之时,却马上被敌人捕获被囚禁于一架名为蟾蜍之母的飞船中,巴奇和布灵奇被囚禁于同一囚室中,并成功越狱,他们必须救出其他的成员。最后,巴奇与其队友继续突破怪兽飞船。5、游戏评价:是KONAMI旗下财宝公司的三大杰作之一。财宝公司有
4、专门做超高难度的游戏之美誉,最著名的第一大杰作就是斑鸠,第二是宇宙巡航机5,都是难度非常高的游戏,而外星战将则是财宝公司成立之前的作品,也是同样出色,游戏需要较高的操作技巧,很考验玩家的应变能力,游戏关卡的设定十分新颖,且都有一定的难度,游戏类型与 Capcom的洛克人系列很相似。-以上游戏资料转自百度百科原文链接:/view/.htm#3以下内容转载请注明 本人的辛苦成果不希望成为别人的作品。-猫美玲Mermailing相关资料:初级hack方法请到我空间查看/猫美玲/blog狼哥(疾风之狼)的博客,里面有狼哥的教
5、程/游戏下载:/猫美玲/blog当我会了按键hack后,发现其实并不难,代码是早早的准备好了,真正费时间的,是在寻找rom中空闲代码太麻烦了,也许只是我的方法不对吧。基本的设置断点查找指令的方法可以看上面的相关资料,现在来说说这次的重点。按键hack方法,就是在游戏中,通过按特定的键,执行我们准备好的程序,一般是恢复血量能量等功能的程序(话说如果是病毒程序.太不道德了,鄙视一下,我们的目的是要让游戏能正常运行.)。游戏中有内存是存放输入状态的,在这个游戏中,可以找到内存00F7是存放输入状态的,一个字节8位,
6、存放fc上的8个按键状态。按下各键测试到该字节状态对应方式为:0 0000000(此为该字节的2进制表现形式,左边是高位,右边是低位)A B SE ST 上 下 左 右当按住上不放的时候,表示上的那位就变成1,而这个字节就变成080000 1000,而如果再同时按住B不放的话,B位置变成1,这个字节就变成了480100 1000。我们只需要在游戏对这个值修改的地方加入对键的判断再执行我们准备好的程序即可。hack内容:初始隐身并且隐身时间不减:0xB1F0改为D0说明:虽然为隐身了,但是碰到像岩浆尖刺等特殊障碍还是会直接挂的。这里是改的跳转判断,原本是判断如果隐身时间不为0就跳转到隐身时间自减
7、指令,改成D0后就成了如果隐身时间为0就跳转到隐身时间自减指令,而游戏一开始隐身时间就是0的通过这里执行后隐身时间变为-1(内存中为FF,无符号的话数值为255),变成隐身状态,而由于这个时候隐身时间已经不是0了,不再执行隐身时间自减指令,从而达到持续保持隐身状态。本操作其实可以用隐身时间自减指令改为EA的方式替换,很可惜碰到敌人触发隐身会卡住,如果仅仅是血量不减,那么后面有无限能量飞行的时候也很麻烦,所以这里的改法有点特殊。能量不减:0x00000B7BC6 43改为EA EA0x00000B97C6 44改为EA EA0x00000C1DC6 42改为EA EA说明:0042为猫女詹尼(J
8、enny)的能量地址,0043为神枪手鸭(Deadeye Duck)的能量地址,0044为机器人布灵奇(Blinky)的能量地址,上面3个地方都是能量减少的指令,改为EA空操作后,能量不再减少。但是这个时候问题出现了,猫女的能量可以在能量球飞出屏幕后恢复正常,但机器人和鸭子的能量不减少后,无法恢复正常状态,所以我们要增加个能量恢复的功能,其他2名角色能量用完就释放的,而且没有什么太大的功能所以不需要修改,目前有了隐身+无限飞行,已经很方便了。以上都是基本的修改法就好了,下面是重点。按下B的时候清空能量:(确保能恢复正常状态)0x0001FD1985 F5 84 F7改为4C 10 BC EA说
9、明:这里是当按下某个键时,将修改内存00F7的操作,我们把这里改为转向到rom指令空白区域去执行我们自己的程序。注意被改掉的85 F5 84 F7是必须需要的,所以转过去后要将这条指令补回来。地址16进制码ASM指令注释说明FD09:4C 10 BCJMP $BC10;跳转到BC10 转向BC10去执行我们增加的操作FD0C:EANOP;空操作 其实这里被跳过了写什么都无所谓的FD0D:60RTS;由子程序返回注意这里的地址,我们的程序执行完了 就转回到这里继续运行内存中的BC10处为BC00:5C 5D 5E 5F 5F 5F 5F 5F 00 00 00 00 00 00 00 00BC1
10、0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00BC20:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00通过在rom里查找5C 5D 5E 5F 5F 5F 5F 5F 00 00可以找到BC10对应的rom地址为0x00003C20。0x00003C20写入85 F5 84 F7 C9 40 D0 08 A9 00 85 42 85 43 85 44 4C 0D FD地址16进制码ASM指令注释说明BC10:85 F5 STA $F5;00F5=A=0x40增加跳转时跳转指令覆盖了这条指令,所以
11、先补回来BC12:84 F7 STY $F7;00F7=Y=0x40增加跳转时跳转指令覆盖了这条指令,所以先补回来BC14:C9 40 CMP #$40 ;0x40和A比较判断是否是B键被按下BC16:D0 08 BNE #$08 ;Z=0?BRA BC18是则继续下一条指令,不是则指令往后8个字节(即转向BC20处)BC18:A9 00 LDA #$00 ;A=0x00 将0写入寄存器ABC1A:85 42 STA $42;0042=A=0x00将寄存器A中的值存入0042地址BC1C:85 43 STA $43;0043=A=0x00将寄存器A中的值存入0043地址BC1E:85 44 S
12、TA $44;0044=A=0x00将寄存器A中的值存入0044地址BC20:4C 0D FDJMP $FD0D;跳转到FD0D 转回原来来的地方继续执行下一条好了测试游戏,隐身状态不怕普通的小喽啰了,无限能量的飞行效果很好,需要停下来的时候按B就可以了,猫女的能量球可以慢慢控制,对BOSS的必杀也很棒,鸭子的爬墙,在机器人飞行不好控制的地方也很好用。自杀功能:测试到水星BOSS时,被BOSS冻住后由于不能移动,子弹也无法击中BOSS,出现想死都死不了的情况,所以,还得增加自杀功能,先在游戏里测试,将血量改为0,人物是没有挂的,所以再试试直接跳转到死亡处理的指令处,将断点设置为“注释内出现05
13、A0暂停”,然后到游戏里去跳崖,死前的一瞬间,游戏暂停了.地址16进制码ASM指令注释说明FCEF:85 76 STA $76;0076=A=0x00FCF1:60RTS;由子程序返回这里刚好是一个子程序结束的位置8560:AD A0 05LDA $05A0;A=0x14 我们从这里开始调用8563:38SEC;C=1也就是使按特定键的时候之间转向8560处开始执行8564:E5 02 SBC $02;A-=0x808566:8D A0 05STA $05A0;05A0=A=0x94自杀功能太过强大,要避免玩家不小心操作到了,所以我决定设置成同时按【上、B 开始键】的时候自杀,同时按【上、B
14、开始键】,00F7的值为58,所以在0x00003C30处开始修改代码为:A5 F7 C9 58 D0 03 4C 60 85 4C 0D FD地址16进制码ASM指令注释说明BC20:A5 F7 LDA $00F7;A=0x58 将00F7的值存入寄存器ABC22:C9 58 CMP #$58 ;0x58和A比较判断是否同时按下上、B 开始键BC24:D0 03 BNE #$03 ;Z=0?BRA BC26是则继续执行,不是则指令往后3字节(即转向BC29处)BC26:4C 60 85JMP $8560;跳转到8560 转向死亡处理指令前,准备死BC29:4C 0D FDJMP $FD0D;
15、跳转到FD0D 转回原来来的地方继续执行下一条回到游戏后发现开始键按下后是暂停游戏,如果不在暂停中死亡,一切正常,如果在暂停中死亡,不会有死亡音效,不过效果还是正常。游戏测试前面都基本正常,到最后两关,出现花屏情况,会卡死人,说明这里找的BC10BC29的地址并非空白rom,等再找到合适的空白rom再改了。不过按键hack的方法是正确的了。目前没有找到空白rom,但有了解决办法:花屏原因:0x00003C20其实是最后1大关的第6小关到第7小关之间的背景,原本00的位置,其实是中间的过道,而0E表示的是下面的尖刺,将hack代码加入到这里当然会照成花屏。解决办法:仔细分析后发现,0x00003C18开始,每8个字节控制一行背景,每个背景48字节即6排,考虑到通关时最后的背景都是星星,而主角是在中间飞行,所以决定保留中间两排过道,上下4排星星换成hack代码,这样小部分的花屏也不影响游戏了。最后修改后的代码变动处为:0xB1F0改为D00x00000B7BC6 43改为EA EA0x00000B97C6 44改为EA EA0x00000C1DC6 42改为EA EA0x0001FD1985 F5 84 F7改为4C F8 BC E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60530:1975/AMD2:2004 EN-D Amendment 2 - Methods for measuring the performance of electric kettles and jugs for household and similar use
- 【正版授权】 IEC 60304:1982 FR-D Standard colours for insulation for low-frequency cables and wires
- 新闻传播学概论知识问答
- 印刷考试试题及答案
- 饮品培训考试试题及答案
- 异地理论考试试题及答案
- 六一健身队活动方案
- 医学者考试试题及答案
- 六一夏威夷活动方案
- 六一寝室活动方案
- 外科学试题库及答案(共1000题)
- 灭火器检查表
- 《商法》机考复习资料
- 婚姻家庭法论文范文(3篇)
- 三级安全安全教育记录表
- 《数据结构》课件(完整版)
- 2022年ICD-10恶性肿瘤编码整理版
- 供货、安装进度计划及保证措施方案
- 铜杆生产线设备安装工程施工方案62p
- 发电厂的电气部分课程设计
- (自己编)丝网除沫器计算
评论
0/150
提交评论