如何hack成按一次键出一种功能,再按同样的键出另一种功能?
拿FC的魂斗罗2为例,按一下选择键出散弹,再按一下出苹果弹,再按一下出激光。程序如何认别出,我第一次选择键后,执行散弹的代码,第二次按键后,执行苹果弹的代码,第三次执行激光的代码呢? 输入累增或减的代码游戏中按一下选择键,武器地址累加或减,武器自然会变化
可以搜索高手的作品来分析 原帖由 湘西小人物 于 2009-7-31 13:38 发表 http://bbs.emu618.com/forum/images/common/back.gif
输入累增或减的代码
游戏中按一下选择键,武器地址累加或减,武器自然会变化
可以搜索高手的作品来分析
10表示普通子弹,如果是累加的话11表示散弹,12表示苹果弹,13表示激光,那么一直加上去的话,怎么样才能回到10? 在加段指令
当到武器地址到达XX值的时候返回XX值 原帖由 湘西小人物 于 2009-7-31 13:53 发表 http://bbs.emu618.com/forum/images/common/back.gif
在加段指令
当到武器地址到达XX值的时候返回XX值
谢谢啦:loveliness: pha
lda 按键内存
cmp#$20 SELECT键
bneend
inc 子弹内存
lda 子弹内存
cmp#$06 假设有5种子弹,那么到了6就变0
bne end
lda #$00
sta子弹内存
end:
pla
rts
魂斗罗这个游戏 子弹代码是 00 01 02 03............. 吃了加速后是 10 11 12 13..................
这里的判断还要多判断几次
按键的映射内存有两个 一个是按一次后自动归0这样的效果就是 即使按住也只运行一次
另一个内存是按住之后是每个周期都运行的,那样的话就是按一下就运行了N次了,基本选不到你要的武器, 效果就是 随机抽到某子弹,因为按一次就加了N次了
两个内存是在一起的 中间隔开一个字节~~
当然也可以写程序处理这个问题,只是没必要兜圈子了 感谢楼上提供的资料
页:
[1]