PPU variants: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
m (→RGB: 2C05-99 Registers aren't swapped. It wasn't written that they are before, but it saying it directly should clear up any confusion) |
(Remove a lot of lower quality duplicate photo entries) |
||
Line 51: | Line 51: | ||
|- | |- | ||
| RP2C02D-0 | | RP2C02D-0 | ||
| [[File:PPU=RP2C02D-0 4K3 63.JPG | | [[File:PPU=RP2C02D-0 4K3 63.JPG|400px]] | ||
| align="center" | 1984-10 <br> 4K3 63 | | align="center" | 1984-10 <br> 4K3 63 | ||
| align="center" | 1984-12 <br> 4M1 25 | | align="center" | 1984-12 <br> 4M1 25 | ||
Line 57: | Line 57: | ||
|- | |- | ||
| RP2C02E | | RP2C02E | ||
| [[File:PPU=RP2C02E 4M3 14 | | [[File:PPU=RP2C02E 4M3 14.jpg|400px]] | ||
| align="center" | 1984-12 <br> 4M3 14 | | align="center" | 1984-12 <br> 4M3 14 | ||
| align="center" | 1985-10 <br> 5K4 36 | | align="center" | 1985-10 <br> 5K4 36 | ||
Line 71: | Line 71: | ||
|- | |- | ||
| RP2C02G-0 | | RP2C02G-0 | ||
| [[File:PPU=RP2C02G-0 7M3 52 | | [[File:PPU=RP2C02G-0 7M3 52.jpg|400px]] | ||
| align="center" | 1987-05 <br> 7E2 80 | | align="center" | 1987-05 <br> 7E2 80 | ||
| align="center" | 1993-10 <br> 3KM 1H | | align="center" | 1993-10 <br> 3KM 1H | ||
Line 130: | Line 130: | ||
|- | |- | ||
| RC2C03B | | RC2C03B | ||
| [[File:PPU=RC2C03B 4A4 30 | | [[File:PPU=RC2C03B 4A4 30.jpg|400px]] | ||
| align="center" | 1984-01 <br> 4A2 14 | | align="center" | 1984-01 <br> 4A2 14 | ||
| align="center" | 1984-01 <br> 4A4 30 | | align="center" | 1984-01 <br> 4A4 30 | ||
Line 146: | Line 146: | ||
|- | |- | ||
| RP2C04 <br> 0001 | | RP2C04 <br> 0001 | ||
| [[File:PPU=RP2C04 0001 4C4 15 | | [[File:PPU=RP2C04 0001 4C4 15.png|400px]] | ||
| align="center" | 1984-03 <br> 4C2 01 | | align="center" | 1984-03 <br> 4C2 01 | ||
| align="center" | 1984-05 <br> 4E4 35 | | align="center" | 1984-05 <br> 4E4 35 | ||
Line 152: | Line 152: | ||
|- | |- | ||
| RP2C04 <br> 0002 | | RP2C04 <br> 0002 | ||
| [[File:PPU=RP2C04 0002 4K2 35 | | [[File:PPU=RP2C04 0002 4K2 35.jpg|400px]] | ||
| align="center" | 1984-07 <br> 4G4 19 | | align="center" | 1984-07 <br> 4G4 19 | ||
| align="center" | 1984-10 <br> 4K2 35 | | align="center" | 1984-10 <br> 4K2 35 | ||
Line 158: | Line 158: | ||
|- | |- | ||
| RP2C04 <br> 0003 | | RP2C04 <br> 0003 | ||
| [[File:PPU=RP2C04 0003 4K5 13 | | [[File:PPU=RP2C04 0003 4K5 13.jpg|400px]] | ||
| align="center" | 1984-10 <br> 4K5 13 | | align="center" | 1984-10 <br> 4K5 13 | ||
| align="center" | 1984-11 <br> 4L4 33 | | align="center" | 1984-11 <br> 4L4 33 | ||
Line 164: | Line 164: | ||
|- | |- | ||
| RP2C04 <br> 0004 | | RP2C04 <br> 0004 | ||
| [[File:PPU=RP2C04 0004 4L4 31 | | [[File:PPU=RP2C04 0004 4L4 31.jpg|400px]] | ||
| align="center" | 1984-11 <br> 4L3 18 | | align="center" | 1984-11 <br> 4L3 18 | ||
| align="center" | 1984-11 <br> 4L5 36 | | align="center" | 1984-11 <br> 4L5 36 | ||
Line 170: | Line 170: | ||
|- | |- | ||
| RC2C05-01 | | RC2C05-01 | ||
| [[File:PPU=RC2C05-01 5F5 10 | | [[File:PPU=RC2C05-01 5F5 10.jpg|400px]] | ||
| align="center" | 1985-06 <br> 5F5 10 | | align="center" | 1985-06 <br> 5F5 10 | ||
| align="center" | 1985-06 <br> 5F5 11 | | align="center" | 1985-06 <br> 5F5 11 | ||
Line 191: | Line 191: | ||
|- | |- | ||
| RC2C05-99 | | RC2C05-99 | ||
| [[File:PPU=RC2C05-99 8M4 14 | | [[File:PPU=RC2C05-99 8M4 14.jpg|400px]] | ||
| align="center" | 1988-11 <br> 8L4 11 | | align="center" | 1988-11 <br> 8L4 11 | ||
| align="center" | 1988-12 <br> 8M4 14 | | align="center" | 1988-12 <br> 8M4 14 | ||
Line 280: | Line 280: | ||
|- | |- | ||
| VT01 | | VT01 | ||
| | | | ||
| V.R.Tech-made clone of UA6561. Only seen as chip-on-board. Supports composite out; RGB out; or 2bpp STN LCD, either greyscale or [[VT01 STN Palette|red/cyan checkerboard]], 240 px wide, 80/120/160/240px tall. The chip was extended significantly in [[VTxx#VT02|VT02]] and newer NOACs. | | V.R.Tech-made clone of UA6561. Only seen as chip-on-board. Supports composite out; RGB out; or 2bpp STN LCD, either greyscale or [[VT01 STN Palette|red/cyan checkerboard]], 240 px wide, 80/120/160/240px tall. The chip was extended significantly in [[VTxx#VT02|VT02]] and newer NOACs. | ||
|- | |- |
Latest revision as of 08:33, 20 December 2024
Beyond the well-studied 2C02G, we know of the following PPU revisions, both made by Ricoh and other manufacturers:
Official
Chips officially licensed by Nintendo for use in official consoles and arcade systems.
Composite
NTSC
Part | Picture | First Seen | Last Seen | Notes |
---|---|---|---|---|
RP2C02 | |
1983-06 3F4 13 |
1983-08 3H2 10 |
Extremely rare. Likely only a few thousand made. http://web.archive.org/web/20160315221802/kitayama3800.publog.jp/archives/cat_915765.html (pictures not archived)] |
RP2C02A | 1983-08 3H1 43 |
1983-08 3H2 10 |
Sometimes erroneous sprite pixels appear in X=255. Some modern PCBs generate almost exclusively glitchy pattern fetches. PPUMASK and PPUCTRL seem to be entirely asynchronous, and writes to PPUMASK can disable rendering for one pixel with the commensurate bugs resulting. | |
RP2C02B | 1984-03 4C3 06 |
1984-04 4D4 60 |
Erroneous sprite pixels appear at X=255, just like 2C02A. Production seems to have halted to produce the 2C02C, but 2C02C production stopped and 2C02B production resumed, for unknown reasons. | |
RP2C02C | 1983-12 3M1 10 |
1984-02 4B1 76 |
Eventually stopped being produced in favor of resuming 2C02B production, for unknown reasons. | |
RC2C02C | 1984-01 4A3 15 |
Comes in a ceramic package.[1] Currently only found inside serviced Famicoms. | ||
RP2C02D | 1984-08 4H2 60 |
1984-12 4M2 29 |
||
RP2C02D-0 | 1984-10 4K3 63 |
1984-12 4M1 25 |
||
RP2C02E | 1984-12 4M3 14 |
1985-10 5K4 36 |
||
RP2C02E-0 | 1985-03 5C5 46 |
1986-06 6F4 39 |
In this and all previous revisions, OAMDATA and palette RAM are not readable. | |
RP2C02G-0 | 1987-05 7E2 80 |
1993-10 3KM 1H |
Writes to OAMADDR cause corruption of OAM. Leaving OAMADDR at a value of 8 or greater causes OAM corruption when rendering starts. Particularly susceptible to reflections causing OAM corruption, fixed by putting series resistors between the CPU and the cartridge ROM. | |
RP2C02H-0 | 1993-12 3MM 40 |
1999-05 9EM 5B |
Thought have to have fixed some of the glitches in the previous 2C02G-0 revision(which?). | |
RP2C02H-0 (laser) | 2000-10 0KL 40 |
2003-01 3AL 4B |
Reported (along with PAL PPUs) to have some kind of difference that caused problems with address bus filtering in earlier versions of the Hi-Def NES firmware. |
PAL
Part | Picture | First Seen | Last Seen | Notes |
---|---|---|---|---|
RP2C07 | 1985-12 5M4 26 |
PAL-B PPU. Vblanking is 71 scanlines long. OAM evaluation can never be fully disabled. Red/green color emphasis swapped. OAMADDR works correctly, not corrupting OAM contents] | ||
RP2C07-0 | 1987-10 7K3 27 |
1991-10 1KM 13 |
||
RP2C07A-0 | 1992-06 2FM 22 |
Some subtle differences in PPU that make this work better with Kevtris's HDNES, but otherwise believed identical to 2C07. |
RGB
Part | Picture | First Seen | Last Seen | Notes |
---|---|---|---|---|
RP2C03B | |
1984-02 4B3 59 |
1989-03 9C4 23 |
RGB PPU. Color emphasis bits set the corresponding channel to full brightness. Otherwise believed identical to 2C02B. OAMDATA and PPU palette are not readable. |
RC2C03B | 1984-01 4A2 14 |
1984-01 4A4 30 |
||
RP2C03C | 1984-03 4C2 63 |
RGB PPU. Believed to be same core as 2C02C. | ||
RC2C03C | 1984-01 4A2 10 |
Believed identical to RP2C03C. | ||
RP2C04 0001 |
1984-03 4C2 01 |
1984-05 4E4 35 |
RGB PPU with a scrambled palette and some added colors, for copy protection purposes. Otherwise behaves like 2C03C. | |
RP2C04 0002 |
1984-07 4G4 19 |
1984-10 4K2 35 |
Scrambles the palette uniquely compared to the previous revision. | |
RP2C04 0003 |
1984-10 4K5 13 |
1984-11 4L4 33 |
Scrambles the palette uniquely compared to the previous revisions. | |
RP2C04 0004 |
1984-11 4L3 18 |
1984-11 4L5 36 |
Scrambles the palette uniquely compared to the previous revisions. | |
RC2C05-01 | 1985-06 5F5 10 |
1985-06 5F5 11 |
PPUCTRL and PPUMASK swap locations. Five LSBs of PPUSTATUS return a constant. Otherwise believed to behave like 2C03. | |
RC2C05-02 | Believed to be the same as 2C05-01, with the PPUSTATUS constant changed. | |||
RC2C05-03 | 1985-07 5G1 12 |
Believed to be the same as 2C05-01, with the PPUSTATUS constant changed. | ||
RC2C05-04 | 1987-03 7C3 12 |
Believed to be the same as 2C05-01, with the PPUSTATUS constant changed. | ||
RC2C05-99 | 1988-11 8L4 11 |
1988-12 8M4 14 |
An RGB PPU with RP2C02E behavior: OAM and palettes are unreadable, but OAM corruption added in revision E is present. PPUSTATUS behavior is normal (the low 5 bits are PPU open bus). Grayscale is normal (palette & $30). Uses 2C02 timing (a dot is skipped every other frame), unlike other RGB PPUs. The palette and emphasis behavior match other RGB PPUs. PPUCTRL and PPUMASK aren't swapped. Used in the Famicom Titler. (picture of Titler PCBs) |
Unofficial
These chips are found exclusively inside of Famiclone systems, made by multiple companies.
Part | Picture | Notes |
---|---|---|
UA6528 | UMC-made clone of 2C02E (or something earlier) [2] | |
UA6528P | UMC-made variant for PAL-N (Argentina) [3] System crystal is 21492337.5 Hz (exactly 6×229.2516×15625) | |
UA6538(P??) | UMC-made variant for playing NTSC games in PAL countries. Emits PAL-B video. Vblank interrupt intentionally emitted 50 scanlines later than 2C07. Video DAC is brighter and more saturated (how so?). See also Clock rate. | |
UA6541 | UMC-made clone of 2C07 [4] | |
UA6548 | UMC-made variant for PAL-M (Brazil) System crystal is 21453671… Hz (exactly 6×227.25×4500000÷286) | |
UM6558 | UMC-made variant of UA6538 for SECAM countries. Emits 8-bit "Color Data" digital bus, for conversion into SECAM by UA6559 IC. Color palette noticeably off. System crystal is 21312500 Hz (exactly 4×341×15625). Maybe supports both 50 and 60 Hz operation? | |
UM6561xx-1 | No Picture | UMC-made NES-on-a-chip for NTSC. PPU half believed to be mostly identical to UA6528. Revisions "xx" F, AF, BF, CF known.
Emphasis is much stronger than on UA6528 and official PPUs. |
UM6561xx-2 | UMC-made NES-on-a-chip for PAL-B. PPU half believed to be mostly identical to UA6538. Revisions "xx" F, AF, BF, CF known.
AF revision has graphical and timing glitches in Prince of Persia perhaps caused by sprite 0 hit being missed for reasons not yet understood. F and BF revisions are not affected. Emphasis is much stronger than on UA6538 and official PPUs. | |
TA-02N | ??-made die-mask clone of 2C02G, despite the "6528" label.[5] Chip underside also has two codes of currently unknown purpose. | |
TA-02NP | ??-made PPU, Dendy compatible (not a 6538 clone). Pins 14-17 are background color in, like normal 2C03[6] | |
TA-02NPB | ??-made PPU, "NTSC for PAL-B" (NPB) Dendy-compatible. Has a unique video switching capability shared between it and other TA-02NPx chipsets, as well as the WDL chipset. | |
TA-08 | ??-made PPU, Second source alternative to UM6558. Color Data bus bit-reversed? | |
MG-N-502 | ||
MG-P-502 | Micro Genius / TXC. Die shot matches UA6538. | |
1818N | ??-made NES-on-a-chip, NTSC timing. | |
1818P | SiS-made[7]] NES-on-a-chip.[8]. Requires external 2KiB RAMs for CPU and PPU. UA6538 timing. | |
PM02-1 | Gradiente-made variant for PAL-M (Brazil). [9] | |
VT01 | V.R.Tech-made clone of UA6561. Only seen as chip-on-board. Supports composite out; RGB out; or 2bpp STN LCD, either greyscale or red/cyan checkerboard, 240 px wide, 80/120/160/240px tall. The chip was extended significantly in VT02 and newer NOACs. | |
GS87008 | (Goldstar??)-made NTSC clone [10] | |
KC-6078 | Found in MT777-DX famiclone, behaves exactly like UA6538 | |
6022 | ??-made NTSC clone. Details unknown. | |
2010 | ||
2A02E | Dendy Timing. On a large solid-color background (especially yellow, green), every other row has a horizontal stripe. | |
02 | ||
GT-01 | In PLCC | |
HA6538 | ||
6538U-8 | ||
6538A | ||
6528 | WDL made chip. NTSC timing. Palette like RP2C02. | |
8Z02 |
If you know of other differences or other revisions, please add them!