PPU: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
mNo edit summary
mNo edit summary
Line 1: Line 1:
todo: Overview should be here
The NES PPU, or Picture Processing Unit, generates a composite video signal with 240 lines of pixels, designed to be received by a television. When the Famicom chipset was designed in the early 1980s, it was considered quite an advanced 2D picture generator for video games.


It has its own address space, which typically contains 10 kilobytes of memory: 8 kilobytes of ROM or RAM on the Game Pak (possibly more with one of the common Mappers) to store the shapes of background and sprite tiles, plus 2 kilobytes of RAM in the console to store a map or two. Two separate, smaller address spaces hold a palette, which controls which colors are associated to various indices, and OAM (Object Attribute Memory), which stores the position, orientation, shape, and color of the sprites, or independent moving objects. These are internal to the PPU itself and use dynamic memory (which will slowly decay if the PPU is not rendering data).


* PPU controller
 
* PPU mask
* Registers
* Status
** Controller ($2000)
* Scrolling
** Mask ($2001)
** Internals [E]
** Status ($2002)
** Programming example
** OAM address ($2003)
** OAM data ($2004)
** Scroll ($2005)
** Address ($2006)
** Data ($2007)
* Internals [E]
* Pattern tables
* Pattern tables
* OAM
* OAM

Revision as of 05:45, 17 April 2009

The NES PPU, or Picture Processing Unit, generates a composite video signal with 240 lines of pixels, designed to be received by a television. When the Famicom chipset was designed in the early 1980s, it was considered quite an advanced 2D picture generator for video games.

It has its own address space, which typically contains 10 kilobytes of memory: 8 kilobytes of ROM or RAM on the Game Pak (possibly more with one of the common Mappers) to store the shapes of background and sprite tiles, plus 2 kilobytes of RAM in the console to store a map or two. Two separate, smaller address spaces hold a palette, which controls which colors are associated to various indices, and OAM (Object Attribute Memory), which stores the position, orientation, shape, and color of the sprites, or independent moving objects. These are internal to the PPU itself and use dynamic memory (which will slowly decay if the PPU is not rendering data).


  • Registers
    • Controller ($2000)
    • Mask ($2001)
    • Status ($2002)
    • OAM address ($2003)
    • OAM data ($2004)
    • Scroll ($2005)
    • Address ($2006)
    • Data ($2007)
  • Internals [E]
  • Pattern tables
  • OAM
  • Nametables
  • Attribute tables
  • Palettes