PPU

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

Post Reply
notinasia
Posts: 17
Joined: Fri Dec 11, 2009 12:37 pm
Location: UT, USA

PPU

Post by notinasia » Thu Jan 21, 2010 11:46 pm

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.

User avatar
tokumaru
Posts: 11744
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: PPU

Post by tokumaru » Fri Jan 22, 2010 12:13 am

notinasia wrote:Is it a derivative of the 6502?
Absolutely not.
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.
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.

User avatar
Jeroen
Posts: 986
Joined: Tue Jul 03, 2007 1:49 pm

Post by Jeroen » Fri Jan 22, 2010 3:16 am

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. :?

tepples
Posts: 22014
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Fri Jan 22, 2010 4:57 am

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.

User avatar
Jeroen
Posts: 986
Joined: Tue Jul 03, 2007 1:49 pm

Post by Jeroen » Fri Jan 22, 2010 6:12 am

Ok looking at it like that makes some sense. :P

notinasia
Posts: 17
Joined: Fri Dec 11, 2009 12:37 pm
Location: UT, USA

Post by notinasia » Fri Jan 22, 2010 10:14 am

Ok, it sends out a composite video signal.

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

Jaffe
Posts: 48
Joined: Sun May 14, 2006 10:26 am
Location: Norway

Post by Jaffe » Fri Jan 22, 2010 10:21 am

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.

tepples
Posts: 22014
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Fri Jan 22, 2010 10:31 am

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.

CartCollector
Posts: 122
Joined: Mon Oct 30, 2006 8:32 pm

Post by CartCollector » Fri Jan 22, 2010 5:04 pm

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

Post Reply