PPU Design

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
PPU Design
by on (#119793)
Is the PPU a completely custom chip, or is it based on an existing chip (like the 2A03 is based on the 6502)?

Also, out of curiosity, why didn't Nintendo just use the 6502? I would think a custom chip would cost more to manufacture, and (as I understand it) the only difference is that the 6502 has a decimal mode.
Re: PPU Design
by on (#119794)
The 2nd answer is because the BCD was patented, the 6502 otherwise was not.
Re: PPU Design
by on (#119795)
PPU is completely custom. As for costs, Nintendo promised Ricoh they'd buy a ton of them and was able to get pricing comparable to as if it weren't custom because of volume. If you order large enough volumes of any chip it doesn't suffer custom/small volume pricing.

The 6502 doesn't have an APU, the 2A03 does. Nintendo didn't get rights from MOS to use the 6502, to get around that they cut a single trace to remove BCD mode. The BCD hardware is all there from what I understand, it's just missing the vital trace/via to allow it to work. Removing BCD functionality allowed them to cheat by the patent docs as 3gen brought up, even though the hardware is actually on die.

Not paying for a licensed 6502 probably saved them a heap of money. As did choosing a CPU small enough to make room for an APU on the same die.
Re: PPU Design
by on (#119796)
The consensus is that the PPU was inspired by the ability of the TMS9918 VDP in the ColecoVision to display nearly pixel-perfect Donkey Kong graphics. On the other hand, had Nintendo just used the TMS9918, it would have re-created the CreatiVision.
Re: PPU Design
by on (#119797)
For me, TMS9918 is nothing like NES PPU - I programmed for both. It is often brought up as a predecessor of some VDP, though, like both NES and SMS. The native SMS modes are nothing like TMS9918 either.
Re: PPU Design
by on (#119798)
Thanks for all of the great replies. I had no idea that they just cut the trace on the 2A03 to get around the patent! Is this a common practice? I would be really pissed if someone did that to a processor I designed in order to avoid paying for it, but if it is technically legal, then I can see why they did it.

It just occurred to me last night that the PPU probably had to be a custom chip, given Nintendo's requirements. I can see a market for the sound chip, but I couldn't see one for a graphics chip like the PPU.
Re: PPU Design
by on (#119800)
Well, the just mentioned TMS9918 was probably the first general purpose PPU (VDP, whatever you call it), designed to be used in video game systems. It precedes NES PPU, and in fact it had pretty large market - it was used in many home computers, including the whole MSX1 family, and in game consoles, such as ColecoVision and early Sega systems (pre-SMS). If NES PPU would be available as a general purpose chip, I think it would have its own market as well, as it is certainly superior to 9918, and they coexisted in more of less the same timeframe.
Re: PPU Design
by on (#119801)
KKat wrote:
Thanks for all of the great replies. I had no idea that they just cut the trace on the 2A03 to get around the patent! Is this a common practice? I would be really pissed if someone did that to a processor I designed in order to avoid paying for it, but if it is technically legal, then I can see why they did it.
At the time, the only protection designed silicon was allowed in law was patent law; there was no legal recourse if a competitor decapped your IC and made an exact clone, save for patent infringement. I recall an anecdote about MOS investigating the 2A03 and being dismayed when they discovered that Nintendo had precisely disabled the decimal circuitry in the 2A03 with a single cut trace.

Since 1990, we now have a concept of mask copyright, which allows for copyright-like protection for a term of 10 years. Wikipedia can tell you more.
Re: PPU Design
by on (#119808)
If i remember correctly Ricoh (which made both the ppu and cpu for the nes) had a license for the 6502. So changing that minor thing on the masks that they already had available, made it cheaper since they avoided the licensing cost (as mentioned above). The only drawback was that 2A03/2A07 wasn't binary compatible with other 6502 cpus since it lacked the BCD mode, but nintendo used z80 back then so they probably didn't bother much.
Re: PPU Design
by on (#119809)
tepples wrote:
On the other hand, had Nintendo just used the TMS9918, it would have re-created the CreatiVision.

Cool, I didn't know that a 6502 + TMS9918 system existed... I wonder if there are any good games for it...
Re: PPU Design
by on (#119821)
tokumaru wrote:
tepples wrote:
On the other hand, had Nintendo just used the TMS9918, it would have re-created the CreatiVision.

Cool, I didn't know that a 6502 + TMS9918 system existed... I wonder if there are any good games for it...

As a complete shock and surprise, it looks to be on par with the ColecoVision, and with games common to that era. :P
Re: PPU Design
by on (#119835)
hyarion wrote:
If i remember correctly Ricoh (which made both the ppu and cpu for the nes) had a license for the 6502.


They must have, around the same time they also made the RP2A10 for Atari, which was the VCS on a chip used in the 2600 Jr.

There was a really interesting Iwata Asks interview about the creation of the Famicom, I looked for it last night but have been unable to find it. A couple things I remember from it was that Ricoh was in some trouble at the time, having a factory with nothing to produce, so Nintendo gave them Donkey Kong and told them to design an IC that could play it. And that one reason the 6502 was desirable over the Z80 was that it was relatively unknown in Japan.
Re: PPU Design
by on (#119949)
Memblers wrote:
And that one reason the 6502 was desirable over the Z80 was that it was relatively unknown in Japan.


I don't understand. It seems like that would make it less desirable; what do they gain from a lesser known CPU?
Re: PPU Design
by on (#119950)
They'd gain a time advantage against reverse engineers. And when the Famicom crossed the pond, they ended up gaining programmers with C64 and Atari experience.
Re: PPU Design
by on (#119955)
I heard that the main motivation for the 6502 compared to the Z80 was die size. The 6502 left room for a decent APU compared to the Z80.
Re: PPU Design
by on (#119958)
tepples wrote:
They'd gain a time advantage against reverse engineers.

Would they really? Even if it was not very common in Japan there was plenty 6502 documentation in other parts of the world.

Quote:
And when the Famicom crossed the pond, they ended up gaining programmers with C64 and Atari experience.

I guess Nintendo really didn't want anyone outside of Japan making NES games... I remember reading about the possible partnership between Nintendo and Atari before the NES was released, and they only wanted Atari to release the console, Nintendo would be doing all the programming (Atari could request titles of their choice if they were willing to pay for it or order a minimum amount of carts), no software/hardware details would be disclosed. According to the document linked above, this changed after a meeting and Nintendo finally agreed to let Atari program for the machine.
Re: PPU Design
by on (#119969)
I found the interview (searched for Iwata Asks 6502), this is the 2nd page into it where they talk about the CPU about halfway down. To say the full article is worth a read would be an understatement, it's pretty interesting.
http://www.nintendo.co.uk/Iwata-Asks/Super-Mario-Bros-25th-Anniversary/Vol-2-NES-Mario/2-Playing-Donkey-Kong-at-Home/2-Playing-Donkey-Kong-at-Home-216037.html