FC中的3个表

来源:互联网 发布:dsa端口检测工具 编辑:程序博客网 时间:2024/05/16 19:21

Pattern Table存储tile的地方,不管是角色用到的sprite还是Name Table 用到的tile都存储在这里,前者放在PPU内存空间的0x0000-0x0x0fff,后者存放在0x1000-0x1fff中,因为每个tile(sprite)都是由16个字节表示(实际用两组8个字节来表示同一副图片),因此每个patter Table中的都只含有256tile(sprite)。之所以要用两组8字节来表示一副图片,是因为每个像素颜色的低两位就是由每组中同一顺位的字节的同一位的和来表示的。

Name Table构成游戏场景的tile索引表。如果场景是滚轴效果的话,游戏代码会不断刷新该表,由于一个场景包含了32X30tile,因此一个Name Table960个字节,同时每个Name Table还伴有一个Attribute Table,在Attribute Table中包含的是Name Table中所含tile颜色的高两位。

Attribute Table为每个Name Table提供附加信息,它将一个背景分成8X8个区域,每个区域有16tile,然后又把这16tile分成2X2组,0-30组,4-71组,8-112组,12-153组,0组的tile颜色的高两位就用Attribute Table中每一项(就是一个字节)的0-1位,1组用2-3位,2组用4-5位,3组用6-7位,即背景中每个区域的颜色信息就可以用Attribute Table中的一项来表示,因此Attribute Table的大小就是64个字节。而显示时,背景中的tile的颜色就可以由存储在Pattern Table中的低两位和Attribute中的高两位来表示了。

0

1

2

3