PPU

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
PPU
by on (#55528)
Is it a derivative of the 6502? And (briefly) how does it send images to the TV or communicate with the CPU?

As always thanks for your time.
Re: PPU
by on (#55530)
notinasia wrote:
Is it a derivative of the 6502?

Absolutely not.

Quote:
how does it send images to the TV

I believe one of the pins of the chip outputs a composite video signal, which is the result of all the PPU logic.

Quote:
or communicate with the CPU?

The PPU doesn't have to know about the CPU, but programs running on the CPU "talk" to the PPU by using memory-mapped registers.

by on (#55535)
Not trying to attack you or anything. But where did you get the idea the ppu was a 6502 derivative? A ppu and a cpu are two very different beasts. :?

by on (#55540)
Jeroen wrote:
Not trying to attack you or anything. But where did you get the idea the ppu was a 6502 derivative? A ppu and a cpu are two very different beasts. :?

An APU and a CPU are also very different beasts, but the Super NES, Jaguar, Dreamcast, PlayStation 2, and Nintendo DS all have dedicated CPUs with exclusive access to the APU. OpenCL makes PC GPUs look like CPUs. So I can see where one might get confused.

by on (#55544)
Ok looking at it like that makes some sense. :P

by on (#55548)
Ok, it sends out a composite video signal.

And it sounds like the PPU is an FPGA not a microprocessor, is that right?

by on (#55549)
Yeah, it's not a micrprocessor. But it isn't an FPA either. It has a fixed routine that it repeats over and over. Some aspects of this routine can be altered by writing to its control registers, but one can't reprogram the PPU in any way to do something outside what it has been hardwired to do.

by on (#55550)
The NES PPU is an ASIC in a separate package from the CPU and APU.

Clones differ, of course. The "NOAC" (NES-compatible computer on a chip) found in many third-party NES clones puts the CPU, APU, PPU, and two 2 KB SRAMs in one package, probably on one die. Kevin Horton's clone of the PPU is on an FPGA, along with a clone of the CPU, APU, and several mappers.

by on (#55574)
No one's really answered how the CPU and PPU communicate, so I will. The CPU can directly change the PPU by writing to 8 different registers. The registers are at $2000 - $2007 from the perspective of the CPU. The CPU can change the PPU's settings, read the PPU's status, set the scrolling, and write to the name tables, palette, sprite memory, and CHR-RAM, if the cartridge has CHR-RAM.

You can also use $4014 to write to PPU memory, but I'll let you look up how to do that on your own.

Guides you should read:
http://nesdev.com/NESTechFAQ.htm (especially the "Basic" and "Programming" sections)
http://fms.komkon.org/EMUL8/NES.html