Nintendo Entertainment System
The console that rebuilt the games industry
Launched as the Famicom in 1983, Nintendo's 8-bit console paired the Ricoh 2A03 CPU with a tile-and-sprite PPU and a strict licensing regime, reviving the crashed console market and selling around 62 million units.
The Family Computer (Famicom) launched in Japan on 15 July 1983. A redesigned version, the Nintendo Entertainment System, reached North America in 1985 and Europe in 1986; Britain had to wait until the summer of 1987. Where the home computers of the era handed you a screen you could write to directly, the NES hid its screen behind a dedicated graphics chip and gave you nothing for free — but in return it offered fast, flicker-free, scrolling tile-and-sprite games at a price arcades could not match at home. Tight control over who could publish kept the shelves from flooding as they had in 1983, and the machine sold around 62 million units worldwide, anchoring a generation of console gaming.
Technical specifications
Processor
Ricoh 2A03 (NTSC) / 2A07 (PAL) @ ~1.79 MHz (NTSC) / ~1.66 MHz (PAL)
- A second-source MOS 6502 core with decimal (BCD) mode disabled
- Integrates the APU (sound) and controller/DMA hardware on the same die
- Registers and addressing modes as on the C64’s 6510, so 6502 skills transfer directly — but decimal mode does not work:
SEDandCLDstill assemble and still set the flag, andADC/SBCignore it
Memory
2KB internal work RAM at $0000-$07FF, mirrored through $1FFF
- $0000-$00FF: zero page (fast addressing)
- $0100-$01FF: the stack
- $0200-$07FF: general work RAM (commonly $0200 for the sprite OAM buffer)
- $2000-$2007: PPU registers (mirrored to $3FFF)
- $4000-$4017: APU and I/O registers
- $4020-$FFFF: cartridge space — PRG ROM, optional PRG RAM, mapper registers
- $FFFA-$FFFF: the NMI, reset, and IRQ vectors
The CPU has no direct access to video memory. Everything the screen shows is reached through the PPU’s register hatch.
Graphics: PPU
Ricoh 2C02 (NTSC) / 2C07 (PAL)
- 256×240 pixel output
- 52 colours, not the 64 the six-bit code suggests: the palette is generated as twelve subcarrier phases × four levels, plus four greys at hue “none”. 32 bytes of palette RAM at $3F00 select the picture’s colours. See PPU
- Background built from nametables (a grid of tile indices) plus attribute tables (which sub-palette each region uses)
- Tile shapes come from pattern tables in CHR ROM or CHR RAM, not from a fixed ROM font
- 64 hardware sprites (8×8 or 8×16), but only 8 per scanline — the source of the NES’s signature sprite flicker
- VRAM is reached only through the $2006/$2007 address-and-data ports. With rendering on, write during vertical blank; with rendering off, VRAM is free at any time. VBlank occurs every frame, but it only raises an NMI if the enable bit in
$2000is set
Sound: APU
Integrated into the 2A03
- Two pulse (square) channels with sweep and envelope
- One triangle channel (often used for bass)
- One noise channel (percussion, effects)
- One DMC channel for sample playback (delta modulation)
- Registers at $4000-$4013, channel enables at $4015, frame counter at $4017
- Some cartridges add expansion audio (Konami VRC6, Nintendo MMC5, Sunsoft 5B)
Cartridges and Mappers
The cartridge is not just storage — it is hardware that extends the machine.
- PRG ROM maps into $8000-$FFFF; CHR ROM/RAM feeds the PPU’s pattern tables
- A mapper chip bank-switches ROM in and out, breaking the 32KB/8KB ceilings
- NROM (mapper 0): the simplest — fixed 16/32KB PRG, 8KB CHR. The Primer builds on this.
- MMC1 (1): serial-loaded banking, common for larger early games
- UxROM (2) / CNROM (3): cheap PRG or CHR banking
- MMC3 (4): PRG/CHR banking plus an IRQ counter for split-screen effects — usually called a scanline counter, though it counts filtered rising edges on PPU address line A12, which under normal pattern-table layout works out at one per rendered scanline. One of the most-used mappers
- MMC5 (5): the most capable — extra RAM, expansion audio, advanced scrolling
- Battery-backed PRG RAM gave games like The Legend of Zelda their save files
Controllers
- Two ports, read serially through $4016 (player 1) and $4017 (player 2)
- A strobe write latches the button state; eight reads then shift out A, B, Select, Start, Up, Down, Left, Right
- Accessories: the Zapper light gun, the Power Pad, R.O.B., and the Famicom’s microphone
Programming Environment
Assembly is the only real option
Unlike the C64, the NES has no built-in BASIC — a cartridge boots straight into your machine code at the reset vector. Games were written almost entirely in 6502 assembly, with the CPU, PPU and APU driven directly through their registers.
Common workflow:
- Assemble 6502 source (today:
ca65; historically: NESASM, custom in-house tools) - Link PRG and CHR into an iNES cartridge image (
ld65with a layout config) - Run on hardware or an emulator; iterate
The frame loop
NES code is organised around the frame. With NMI enabled in $2000, it fires as VBlank begins; the handler updates the screen — the only safe window to touch VRAM while rendering is on — runs the game logic, and returns. The main loop typically just waits for the next NMI. This frame heartbeat has no direct equivalent on a home computer that lets you poke the screen at any time.
Where the picture comes from
A game must supply its own tile shapes in CHR, build a nametable, choose palettes, and enable rendering before anything appears — there is no resident character set to lean on. That up-front ceremony is the price of the PPU’s speed.
Why it mattered
Rebuilding a dead market
The 1983 North American console crash had buried the industry under unsold stock, and retailers had stopped believing in the category. Nintendo’s licensing regime — a lockout chip, a cap on how many titles a publisher could ship per year, and approval over content — put Nintendo in control of what reached the shelves. ⚠ The Seal of Quality was Nintendo’s own mark and, as its later wording made explicit, certified that a cartridge was licensed and authentic rather than that the game was any good. What the regime demonstrably restored was retailer confidence, by making the shovelware glut structurally impossible to repeat.
Arriving late in Britain
Mattel put the machine into British shops in mid-1987, four years after the Famicom and two after the American NES. Through 1986 the British press had written about it as something coming: in October a Your Computer reader asked when it would be available, and by December the magazine could still only guess at “probably in the region of £100”. The launch advertisement, running that June across CRASH, Computer Gamer, C&VG and ZZAP!64, made the wait its selling point — “for the first time in the UK direct from Japan comes Nintendo”.
The specification Britain was sold was the one CRASH printed in July 1987: 52 colours, 256×240 resolution, 64 sprites, and 27 titles on the shelf. Mattel added that the software so far used “approximately 20% of the machine’s capabilities”. The pricing did not survive contact with the trade — in the same issue that carried the review, the news pages reported the basic set cut from £129.99 to £99.99 and the deluxe from £199.99 to £155, “following trade criticism of the high original prices”.
CRASH asked the question a British reader would: why should a Spectrum owner buy a Nintendo? The answer it gave — near-perfect arcade conversions, if that is what you want — was a smaller claim than the machine was making everywhere else, and it is the reason the NES occupies a different place in British memory than it does in American. Here it arrived as one console among several, late and briefly overpriced, into a market that already had cheap computers and cheap games.
Design language
Super Mario Bros., The Legend of Zelda, Metroid and Mega Man set conventions — scrolling worlds, save files, power-up progression, tight platforming — that games still follow. A generation’s expectations of what a game is were shaped here.
A global influence
Even European bedroom coders working on the Spectrum and C64 borrowed the NES’s design cues, while its tile-and-sprite model became the template for 8- and 16-bit consoles that followed.
Quirks and Limitations
Sprite flicker
Only 8 sprites draw per scanline. Games with more objects on a line either flicker sprites deliberately (cycling which 8 show) or design around the limit. The flicker became a recognisable part of the NES look.
The VBlank window
While rendering is on, VRAM can only be updated safely during the short vertical-blank period each frame. Try to write too much and you run past VBlank into visible rendering, corrupting the picture. NES programmers budget their per-frame updates carefully, often pre-building them in a buffer.
The 16×16 attribute grid
Background colour is chosen per 16×16 region via the attribute table, not per 8×8 tile — so each block of four neighbouring tiles must share a sub-palette. One attribute byte covers a 32×32 pixel area, split into four such quadrants. Careful tile and colour layout works around the constraint, much as the Spectrum’s attribute clash demanded.
No CPU “stop”
The 2A03 has no instruction that waits for an interrupt, so it always runs on to the next opcode. Programs must loop deliberately; a missing loop runs off into whatever bytes follow — and lands, sooner or later, on one of the undocumented KIL opcodes that lock the CPU until reset.
Modern legacy
Emulation
- Mesen: highly accurate, debugger-rich
- FCEUX: long-standing, scriptable, widely used for tool-assisted runs
- MiSTer FPGA: hardware-level recreation
Homebrew
- Active toolchains (
cc65/ca65, NESASM), trackers such as FamiTracker, and flash carts (EverDrive) put new games on real hardware - A thriving scene around NESdev documents the machine to the cycle
Reissues
- The NES Classic Edition and Nintendo Switch Online keep the library in circulation
See also
- Nintendo — the company behind the machine
- Ricoh — fabricated the 2A03 CPU and 2C02 PPU
- PPU — the Picture Processing Unit, registers and timing
- 6502 — the CPU core inside the 2A03
- Cartridge — ROMs, mappers, and bank switching
- MMC3 — the workhorse mapper with a scanline IRQ
- Masayuki Uemura — lead architect of the Famicom/NES
- Gunpei Yokoi — Nintendo hardware visionary
- Shigeru Miyamoto — Mario, Zelda, Donkey Kong
- Koji Kondo — composer of the NES’s defining music
- The Nintendo Seal of Quality — the licensing regime
- The 1983 Video Game Crash — the market the NES revived
- NESdev — the homebrew and documentation community
- Bank Switching — how mappers beat the address-space limit
- Sprite Flicker — living within 8 sprites per scanline