ChipsGraphics & videoConsole graphics › Ricoh NES PPU (2C02)

Ricoh NES PPU (2C02)

1983

Ricoh's 2C02 Picture Processing Unit, the graphics chip that drew the NES's tiled backgrounds and sprites onto the TV.

Machines

Emulators

EmulatorTypeLicenseSite
FCEUXdownloadableGPL-2.0Website ↗
JSNESonlineGPL-3.0Website ↗
JnesdownloadableFreewareWebsite ↗
MesendownloadableGPL-3.0Website ↗
Mesen2downloadableGPL-3.0Website ↗
NESboxonlineMITWebsite ↗
NESticledownloadableFreewareWebsite ↗
NestopiadownloadableGPL-2.0Website ↗
Nestopia UEdownloadableGPL-2.0Website ↗
NintacodownloadableFreewareWebsite ↗
NintendulatordownloadableGPL-2.0Website ↗
VirtuaNESdownloadableFreewareWebsite ↗
aresdownloadableISCWebsite ↗
higandownloadableGPL-3.0Website ↗
nemulatordownloadableFreewareWebsite ↗
puNESdownloadableGPL-2.0Website ↗

Reference & documentation

External technical references for programming Ricoh NES PPU (2C02) and for writing emulators.

ResourceTypeNotes
NTSC 2C02 Technical Reference (Brad Taylor) ↗DatasheetDefinitive 2C02 internals: registers, timing, rendering, scrolling
PPU registers - NESdev Wiki ↗Memory mapThe eight $2000-$2007 memory-mapped PPU registers
PPU OAM - NESdev Wiki ↗Memory mapSprite OAM 4-byte layout and DMA
PPU pinout - NESdev Wiki ↗Pinout40-pin 2C02 pinout with signal descriptions
PPU programmer reference - NESdev Wiki ↗ProgrammingProgrammer guide: registers, memory, palettes, sprites
PPU rendering - NESdev Wiki ↗ReferenceCycle-by-cycle rendering pipeline and scanline timing
PPU frame timing - NESdev Wiki ↗ReferenceFrame/scanline timing including odd-frame skipped cycle
PPU sprite evaluation - NESdev Wiki ↗ReferencePer-scanline sprite evaluation and secondary OAM
Emulator tests - NESdev Wiki ↗Test suiteCatalog of PPU accuracy/conformance test ROMs
ppu_vbl_nmi test ROMs (blargg) ↗Test suitePPU VBL flag and NMI timing tests
Visual 2C02 - NESdev Wiki ↗ToolTransistor-level 2C02 simulator (Visual 6502 core)