PPU variants: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
m (the one photo we've seen on a 2C02letterless) |
(add a buncha PPU pictures) |
||
Line 6: | Line 6: | ||
|- | |- | ||
| RP2C02A || 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. | | RP2C02A || 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. | ||
[[File:PPU=RP2C02A 3H2 07.jpg|400px]] | |||
|- | |- | ||
| RP2C02B || Sometimes erroneous sprite pixels appear in X=255. | | RP2C02B || Sometimes erroneous sprite pixels appear in X=255. | ||
[[File:PPU=RP2C02B 4D4 28.jpg|400px]] | |||
|- | |- | ||
| RP2C02C || differences unknown. | | RP2C02C || differences unknown. | ||
[[File:PPU=RP2C02C 3M1 10.jpg|400px]] | |||
|- | |- | ||
| RC2C02C || In ceramic package. [http://offgao.blog112.fc2.com/blog-entry-28.html] <!-- http://web.archive.org/web/20200423172237/offgao.blog112.fc2.com/blog-entry-28.html or http://archive.is/NpNbE --> | | RC2C02C || In ceramic package. [http://offgao.blog112.fc2.com/blog-entry-28.html] <!-- http://web.archive.org/web/20200423172237/offgao.blog112.fc2.com/blog-entry-28.html or http://archive.is/NpNbE --> | ||
[[File:PPU=RC2C02C 4A3 15.jpg|400px]] | |||
|- | |- | ||
| RP2C02D || differences unknown. | | RP2C02D || differences unknown. | ||
Line 20: | Line 24: | ||
[[File:PPU=RP2C02E-0 5K1 50.jpg|400px]] | [[File:PPU=RP2C02E-0 5K1 50.jpg|400px]] | ||
|- | |- | ||
| RP2C02G-0 || Writes to [[OAMADDR]] cause corruption of OAM. Leaving OAMADDR at a value of 8 or greater causes OAM corruption when rendering starts. | | RP2C02G-0 || 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. | ||
[[File:PPU=RP2C02G-0 7M3 52.jpg|400px]] | [[File:PPU=RP2C02G-0 7M3 52.jpg|400px]] | ||
|- | |- | ||
| RP2C02H-0 || | | RP2C02H-0 || Thought have to have fixed some of the glitches in the 2C02G | ||
[[File:PPU=RP2C02H-0 4AM 4B.jpg|400px]] | |||
[[File:PPU=RP2C02H-0 1CL 42 (laser).jpg|400px]] | |||
|- | |- | ||
| RP2C03B || RGB PPU. Color emphasis bits set the corresponding channel to full brightness. Otherwise believed identical to 2C02B. OAMDATA and PPU palette are not readable. | | RP2C03B || RGB PPU. Color emphasis bits set the corresponding channel to full brightness. Otherwise believed identical to 2C02B. OAMDATA and PPU palette are not readable. | ||
[[File:PPU=RP2C03B 4L2 65.jpg|150px]] | |||
|- | |- | ||
| RP2C03C || RGB PPU. Believed to be same core as 2C02C. | | RP2C03C || RGB PPU. Believed to be same core as 2C02C. | ||
Line 35: | Line 42: | ||
| RP2C03G || No photos on the internet, probably does not exist. If exists, likely the same core as the 2C02G with the same bugs and features as the 2C02G. | | RP2C03G || No photos on the internet, probably does not exist. If exists, likely the same core as the 2C02G with the same bugs and features as the 2C02G. | ||
|- | |- | ||
| RP2C04 | | RP2C04 0001 || [[PPU palettes#2C04|Scrambled palette]] and new colors, otherwise like 2C03. | ||
[[File:PPU=RP2C04 0001 4C4 15.jpg|150px]] | |||
|- | |- | ||
| RP2C04 | | RP2C04 0002 || " | ||
|- | |- | ||
| RP2C04 | | RP2C04 0003 || " | ||
|- | |- | ||
| RP2C04 | | RP2C04 0004 || " | ||
[[File:PPU=RP2C04 0004 4L4 31.jpg|150px]] | |||
|- | |- | ||
| RC2C05-01 || [[PPUCTRL]] and [[PPUMASK]] swap locations. Five LSBs of [[PPUSTATUS]] return a constant. Otherwise like 2C03. | | RC2C05-01 || [[PPUCTRL]] and [[PPUMASK]] swap locations. Five LSBs of [[PPUSTATUS]] return a constant. Otherwise like 2C03. | ||
Line 85: | Line 94: | ||
|- | |- | ||
| TA-02NP || ??-made clone of UA6538. Pins 14-17 are background color in, like normal 2C03[https://forums.nesdev.org/viewtopic.php?p=274318#p274318] | | TA-02NP || ??-made clone of UA6538. Pins 14-17 are background color in, like normal 2C03[https://forums.nesdev.org/viewtopic.php?p=274318#p274318] | ||
[[File:PPU=TA-02NP 6538 9229.jpg|400px]] | |||
|- | |- | ||
| TA-02NPB || It has unique feature of switching video region: | | TA-02NPB || It has unique feature of switching video region: | ||
Line 95: | Line 105: | ||
This one can be found in Rinco console (all Rincos have ability to switch video system, but some of them are build using blobs) and black one called "eastern computer" | This one can be found in Rinco console (all Rincos have ability to switch video system, but some of them are build using blobs) and black one called "eastern computer" | ||
[[File:PPU=TA-02NPB 9234.jpg|400px]] | |||
|- | |||
| MG-P-502 || Micro Genius / TXC | |||
[[File:PPU=MG-P-502 9221M 403600.jpg|400px]] | |||
|- | |- | ||
| T1818 || ??-made NES-on-a-chip, NTSC timing. Believed to exist, but evidence currently scant. | | T1818 || ??-made NES-on-a-chip, NTSC timing. Believed to exist, but evidence currently scant. |
Revision as of 06:48, 15 September 2022
Beyond the well-studied 2C02G, we know of the following PPU revisions, both made by Ricoh and other manufacturers:
RP2C02 | Extremely rare. Serial numbers suggest fewer than 6000 were made. (pictures not archived) |
RP2C02A | 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 | Sometimes erroneous sprite pixels appear in X=255. |
RP2C02C | differences unknown. |
RC2C02C | In ceramic package. [1] |
RP2C02D | differences unknown. |
RP2C02D-0 | differences unknown. |
RP2C02E-0 | OAMDATA and palette RAM are not readable. Various OAM evaluation bugs |
RP2C02G-0 | 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. |
RP2C02H-0 | Thought have to have fixed some of the glitches in the 2C02G |
RP2C03B | RGB PPU. Color emphasis bits set the corresponding channel to full brightness. Otherwise believed identical to 2C02B. OAMDATA and PPU palette are not readable. |
RP2C03C | RGB PPU. Believed to be same core as 2C02C. |
RC2C03B | Tweaked palette; otherwise believed identical to RP2C03B. |
RC2C03C | Believed identical to RP2C03C. |
RP2C03G | No photos on the internet, probably does not exist. If exists, likely the same core as the 2C02G with the same bugs and features as the 2C02G. |
RP2C04 0001 | Scrambled palette and new colors, otherwise like 2C03. |
RP2C04 0002 | " |
RP2C04 0003 | " |
RP2C04 0004 | " |
RC2C05-01 | PPUCTRL and PPUMASK swap locations. Five LSBs of PPUSTATUS return a constant. Otherwise like 2C03. |
RC2C05-02 | " |
RC2C05-03 | " |
RC2C05-04 | " |
RC2C05-99 | Approximately equivalent to some 2C03. Used in the Famicom Titler. Behavior of five LSBs of PPUSTATUS unknown. (picture of Titler PCBs) |
RP2C07 | 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 | Differences unknown from RP2C07 |
RP2C07A-0 | Some subtle differences in PPU that make this work better with Kevtris's HDNES, but otherwise believed identical to 2C07. |
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 IRQ intentionally emitted 50 scanlines later than 2C07. 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 | UMC-made NES-on-a-chip for NTSC. PPU half believed identical to UA6528. Revisions "xx" AF, BF, CF, F known. |
UM6561xx-2 | UMC-made NES-on-a-chip for PAL-B. PPU half believed to be identical to UA6538. Revisions "xx" AF, BF, CF, F known. |
TA-02N | ??-made clone of UA6528. |
TA-02NP | ??-made clone of UA6538. Pins 14-17 are background color in, like normal 2C03[5] |
TA-02NPB | It has unique feature of switching video region:
pin 16: Video mode: 50Hz (GND) / 60Hz (5V) pin 17: Crystal select: 26.xxx MHz (GND) / 21.xxx MHz (5V) pins 14 and 15 were grounded but when connecting them to +5V, PPU displayed solid color screen and game did not boot. This one can be found in Rinco console (all Rincos have ability to switch video system, but some of them are build using blobs) and black one called "eastern computer" |
MG-P-502 | Micro Genius / TXC |
T1818 | ??-made NES-on-a-chip, NTSC timing. Believed to exist, but evidence currently scant. |
T1818P | ??-made NES-on-a-chip.[6]. Requires external 2KiB RAMs for CPU and PPU. UA6538 timing. |
PM02-1 | Gradiente-made variant for PAL-M (Brazil). [7] |
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 [8] |
KC-6078 | Found in MT777-DX famiclone, behaves exactly like UA6538 |
6022 | ??-made NTSC clone. Details unknown. |
2010 | |
2A02E |
If you know of other differences or other revisions, please add them!