1983年在日本发布(Famicom),1985年在美国发行。1986年在欧洲
发行。1987年在澳大利亚发布。1993年作为顶级装载机重新发布,没有麻烦的锁定芯片。
日本有替代磁盘驱动器系统。FDS。

CPU

CPU,Ricoh 2A03,1.79 MHz,是带有音频电路的6502(缺少十进制模式)
256×240像素,可显示53种颜色中的25种。
64个精灵(8×8或8×16),精灵限制为每条水平线8个。
60 fps(50 fps欧洲)

CPU的内存映射

PPU(产生视频图像)

PPU(产生视频图像)是一个独立的芯片,具有自己的存储器。它只能通过一次缓慢的1字节从CPU访问,使用硬件寄存器。

这是PPU的内存映射

Nametable是一个技术词,基本上是指tilemap或背景屏幕。
另外还有另外256字节(0-FF)内存专用于Sprite(OAM)。

这个内存特别不稳定,需要每帧重写一次。

看起来有4个可用的名称表(背景屏幕),但实际上只有2个内部VRAM。

磁带硬连线要么处于“水平镜像”或“垂直镜像”。

更高级的映射器可以在这些选项之间切换。

垂直镜像(或水平排列)用于横向滚动游戏,低2个名称表只是上面两个名称表的镜像


水平镜像(或垂直排列)用于垂直滚动游戏,右侧2个名称表只是一个镜像或左侧2个名称表


有关更多详细信息,请查看nesdev wiki。
http://wiki.nesdev.com/w/index.php/Nesdev_Wiki

最后,游戏盒通常内部有2个ROM芯片。一个PRG-ROM(可执行代码)和一个CHR-ROM(图形块)。但有些游戏,而不是CHR-ROM芯片,有一个CHR-RAM芯片。图形位于PRG-ROM中的某个位置,程序必须将字节从那里传输到CHR-RAM芯片。
我的教程将专门处理CHR-ROM风格的游戏。这更容易。
您可能想要读取十六进制数字。以十六进制格式更容易阅读和理解8位数字。我通常使用$表示十六进制,但有时我使用0x。$用于汇编语言,0x用于C语言。你不需要成为一名数学专家,但如果你知道我在说什么,它会有所帮助。