2009-11-12 9:26:42 阅读770 评论4 122009/11 Nov12
2012-5-13 13:33:55 阅读8 评论0 132012/05 May13
闪屏,就是画面一闪一闪,这是画面一下变成别的画面,又瞬间还原。
这是什么原因呢,这是没有正确解除PPU的bug。
PPU有一个BUG,就是当向PPU写入背景数据时,PPU会令屏幕移位,当前写入的地址会被拉到屏幕左上角,其余背景地址也相应滚动。
这个BUG可以被利用,也可以被解除。
怎么解除呢?大家想必很关心。具体有三个办法:
1#
第一个办法,本法也会有轻微闪的感觉,特别是代码太多的时候。
好了,好了,讲讲具本办法:
要把屏幕先关闭,再连续向PPU写入数据(用$2006和$2007),然后恢复画面位置(用$2005),最后显示屏幕。
这个办法适合"汉化"使用。
关屏和开屏的方法是控制$2001的D3,最好是独立操制D3,不影响别的位。
FC关屏汇编代码:D3设为0
2012-5-12 9:48:48 阅读15 评论0 122012/05 May12
FC游戏根本就是一个程序
那么,一定有一个入口,一个开始运行的地方.
这个地方是固定的吗?
不
我们学习过6502之后发现,运行的入口,即开始位置不是固定的
而是由一个"指针"指定的
这个指针的位置却是固定的,它就是在$FFFC-$FFFD
在PROM的末尾
6502是8位芯片,就是说运算的数,一次只能运算一个字节,但是它的总线寻址是16位的,也就是说保存一个地址数要用2个字节.
一个地址数要分成高位和低位来保存,低位放在低字节,高位放在高字节
每日一词(3) FC的程序入口
FC游戏根本就是一个程序
那么,一定有一个入口,一个开始运行的地方.
这个地方是固定的吗?
不
我们学习过6502之后发现,运行的入口,即开始位置不是固定的
2012-5-11 8:29:05 阅读11 评论0 112012/05 May11
今天说的是"FC的地址"
FC的CPU,内核是6502,那是一片8位的"冯*诺依曼结构"的CPU。
也就是说,这片CPU只有一套地址系统,而且地址的范围是$0000-$FFFF
FC上各个地址所在的位置见图。
另外,$2000-$2007是CPU的地址,FC的CPU通过这几个端口地址访问PPU,设定和查询PPU。
FC的PPU,也是只有一套地址系统,各位置见图。
也就是说在FC上,有两套地址,CPU和PPU各有一套。
大家会发现有些缺失的地址,大家可以认为它们是没有容量的,可以不管了。
2012-5-10 0:04:27 阅读17 评论0 102012/05 May10
FC的硬件是由CPU,PPU,手柄,RAM,VRAM,卡带,RF调制器和其它一些配件组成.
我来画个图解释一下
CPU和音乐控制的APU是做在一块芯片上的
CPU和PPU各有自己的RAM(可以理解成内存)
所以,在看资料时,看见的地址,要分清是CPU的,还是PPU的
以上就是今天的内容
2012-4-12 20:42:21 阅读31 评论1 122012/04 Apr12
自从学会了编程,习惯于全部功能都是从直接编写,用方便的方式实现出来。对于游戏我们也是用同样的想法。
想每个游戏编一个程序来实现,那就真是复杂了。
建议多使用脚本,游戏本身尽可能做成通用的游戏播放器。
脚本尽可能少用代码,而多用“表意”方式,而不是“过程”方式。
并且,脚本编辑器与游戏播放器应同步开发,同步修改。
完毕。
2011-9-11 21:13:49 阅读357 评论1 112011/09 Sept11
一起来做NES开发(2)-反汇编
维京猎人
摘要
在刚接触NES时,大家总是想了解:别人是怎样写NES游戏的。那么能不能将NES文件译成代码文件来研究呢?答案是肯定的,方法就是反汇编。但复杂的游戏是难以完整的反汇编。我们从简单的说起。反汇编的3个要素:CPU型号、机器码段的开始和结束在NES文件上的地址、机器码段运行时载入NES内部的首地址。本文主要述说NES的反汇编工具的用法。
正文
NES的CPU类型 :6502 (NES的CPU真正型号是6527或2A03,这都是以6502为基础芯片的,使用反汇编工具时选CPU:6502就OK)