注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

深夜是徘徊在潮湿睫毛上的我的梦以及他的梦

是直到最后都无法放手的一种气息,是我们生命中最后的思念……

 
 
 

日志

 
 

FC游戏编程算法小议01(允许NMI中断)  

2009-03-02 22:03:59|  分类: FC开发记录 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

维京猎人

 

       较正规的FC游戏编写总是用NMI中断的,在NMI中断内完成显示背景、扫描手柄、背景音乐演奏或音效。

这样才可以保证不闪屏、反应灵敏、音乐流畅。

       下面的算法纯粹是个人想法。

       算法描述:

       A 显简短的文字或数字。以一行8*8字模为例。(带NMI中断)

1。缓存定义为一行的长度。定义一个标记W  (Write)。

2。要显示文字时,主程序读标记W。如果W=0,则执行(3)完成后退出,否则回到(2)

3。将要显示的数据,(包括背景上的地址、内容(以0结尾);默认为横向输出),写入缓存。写W为1。

4。中断读标记W。如果W=1,则执行(5)完成后退出,否则退出。

5。读出缓存,按地址,写入内容。然后写W为0。

 

      B 手柄扫描。(带NMI中断)

1。定义栈,长度一般在10~50,按程序的反应时间而定。定义栈指针、栈长。栈指针初始为0(相对取址)

2。定义阻塞位K  (Key)。定义溢出记号R。

3。中断读K。如果K=1,则执行(4),否则退出。

4。中断读取手柄(上下左右[开始][选择]AB)用左移,或取式组成8Bit。写入栈。栈指针++1

5。如果栈指针超过栈长,则设置R为1。

6。主程序将K设为0,并读R。如果R=1,则执行(7),否则执行(8)

7。主程序按栈长读出全栈,并按或取合并数据。然后设K为1,退出。

8。主程序按从0到(栈指针-1)读栈。并按或取合并数据。然后设K为1,退出。

  评论这张
 
阅读(373)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018