CPU Type: modified 6502 8-bit (NMOS)|
Clock Speed: 1.773447MHz (PAL) or 1.7897725MHz (NTSC)
Processor: 8-Bit PPU (Picture Processing Unit)
The CPU is based off the 6502 NMOS line of 8-bit processors.
It is manufactured by Ricoh, and its name is RP2A03G. Its instruction
set does not contain any CMOS "STZ" instructions, and more importantly,
this NES CPU does not have a working decimal mode. You can set and
clear the decimal flags all you want, but any arithmetic instructions
on the NES will be calculated in base 16. The custom NES CPU also has
5 different sound channels built-in.
RAM Memory: 16 Kbit (2 Kb)
Video RAM: 16 Kbit (2 Kb)
Game Program Memory: 128K, 32K, 16K or 8K Bytes, 1 Meg, 256K, or 64K Bits
Game Character Memory: 128K, 32K, 16K or 8K Bytes, 1 Meg, 256K, or 64K Bits
Scrolling: Horizontal and Vertical
Sound: PSG sound (2 Square Waves, 1 Triangle Wave, 1 White Noise)
The 6502 CPU has only a 16-bit address bus. That means it can only access up
to 65536 bytes of either ROM or RAM at one time. And the NES is designed to access
half that much ROM. As programmers want to have more complex games, they need a way
to spread a game across more than 32K of ROM. Thus, memory mappers are devices which
switch different banks of program code into the 32K window of ROM which the CPU can access.
After increasing the address space, the more modern memory mappers really improved
the amount of character graphics available to the game, and how it can combine them.
The first mapper that changed graphics did it 8K at a time. However, the later mappers
allowed games to swap in much smaller sections of CHR ROM, to allow for more animation
in the backgrounds. Plus, of course, many game companies came out with their own mappers
which had IRQ timers, and allowed tricks to be performed with the PPU. Several mappers
also had additional sound chips, to add to the complexity of the music in (really only
So, in summary, memory mappers allowed programmers to overcome the limitations
inherent in the NES/Famicom.
Color: Colors Displayed: 16|
Colors Available: 52
Sprite Colors: 4 per Sprite from the 52 possible
Ordinarily, the NES can display 13 different background colours,
and 12 different sprite colours, giving a total of 25 colours on-screen,
at once. However, using PPU trickery, one can display all of the NES'
64 palette values at once. (And if you used the Colour Emphasis bits
as well as PPU trickery, I guess you could say that you can have a
maximum of 512 colours on-screen, at once. But that would really be
stretching things. For one, there would most likely be some duplication
across the palette entries.) Anyhow, let's just say that the normal colour maximum is 25.
Minimum Sprite Size: 8x8 Pixels
Maximum Sprite Size: 8x16 Pixels
Maximum Sprites: 64 sprites
Maximum Sprites per Scanline: 8
Minimum Cart Size: 128 Kbit
Maximum Cart Size: 4 Mbit
Picture Resolution: 256 x 240
The NES resolution is 256x240. For many years, people have thought
that the NTSC NES has a lower resolution than the PAL NES, and so emulators
have been programmed to show only 256x224. It is true that on many video
screens or television sets, the top and bottom 8 lines of the NES screen
are cut off; however, that is a function of the display device, not necessarily the
NES. On my video monitor, using my NTSC NES, I can see lines 8 to 240
(and then 3 additional scanlines.) Ordinarily, then, all of lines
233-240 (once thought hidden) are being broadcast by the NES. The
top 8 scanlines (1-8) are also assumed to be hidden, but may not be. For example,
when I video capture the NES' display, lines 4-onwards are visible. PAL NESes do
display all 240 scanlines, no question about that. The NTSC NES still has some ambiguities.
The bottom line (no pun intended) is, if you are making an emulator,
you should provide an option to display the top 8 and bottom 8 scanlines or not.
If you are writing a demo or game for the NES, you should assume that
players might be able to see what you have put in the first and last
pattern rows of the screen.