Chips › Graphics & video › Console 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
| Emulator | Type | License | Site |
|---|---|---|---|
| FCEUX | downloadable | GPL-2.0 | Website ↗ |
| JSNES | online | GPL-3.0 | Website ↗ |
| Jnes | downloadable | Freeware | Website ↗ |
| Mesen | downloadable | GPL-3.0 | Website ↗ |
| Mesen2 | downloadable | GPL-3.0 | Website ↗ |
| NESbox | online | MIT | Website ↗ |
| NESticle | downloadable | Freeware | Website ↗ |
| Nestopia | downloadable | GPL-2.0 | Website ↗ |
| Nestopia UE | downloadable | GPL-2.0 | Website ↗ |
| Nintaco | downloadable | Freeware | Website ↗ |
| Nintendulator | downloadable | GPL-2.0 | Website ↗ |
| VirtuaNES | downloadable | Freeware | Website ↗ |
| ares | downloadable | ISC | Website ↗ |
| higan | downloadable | GPL-3.0 | Website ↗ |
| nemulator | downloadable | Freeware | Website ↗ |
| puNES | downloadable | GPL-2.0 | Website ↗ |
Reference & documentation
External technical references for programming Ricoh NES PPU (2C02) and for writing emulators.
| Resource | Type | Notes |
|---|---|---|
| NTSC 2C02 Technical Reference (Brad Taylor) ↗ | Datasheet | Definitive 2C02 internals: registers, timing, rendering, scrolling |
| PPU registers - NESdev Wiki ↗ | Memory map | The eight $2000-$2007 memory-mapped PPU registers |
| PPU OAM - NESdev Wiki ↗ | Memory map | Sprite OAM 4-byte layout and DMA |
| PPU pinout - NESdev Wiki ↗ | Pinout | 40-pin 2C02 pinout with signal descriptions |
| PPU programmer reference - NESdev Wiki ↗ | Programming | Programmer guide: registers, memory, palettes, sprites |
| PPU rendering - NESdev Wiki ↗ | Reference | Cycle-by-cycle rendering pipeline and scanline timing |
| PPU frame timing - NESdev Wiki ↗ | Reference | Frame/scanline timing including odd-frame skipped cycle |
| PPU sprite evaluation - NESdev Wiki ↗ | Reference | Per-scanline sprite evaluation and secondary OAM |
| Emulator tests - NESdev Wiki ↗ | Test suite | Catalog of PPU accuracy/conformance test ROMs |
| ppu_vbl_nmi test ROMs (blargg) ↗ | Test suite | PPU VBL flag and NMI timing tests |
| Visual 2C02 - NESdev Wiki ↗ | Tool | Transistor-level 2C02 simulator (Visual 6502 core) |