PPU variants: Difference between revisions
mNo edit summary |
(re-add alternate 2C05-99 image) |
||
(57 intermediate revisions by 6 users not shown) | |||
Line 2: | Line 2: | ||
{| class="tabular" | {| class="tabular" | ||
| RP2C02 || Extremely rare. | | RP2C02 || Extremely rare. Likely only a few thousand made. [http://web.archive.org/web/20160315221802/kitayama3800.publog.jp/archives/cat_915765.html (pictures not archived)] | ||
[[File:RP2C02_3F4_13.jpg|400px]] [[File:PPU=RP2C02 3G2 23.jpg|400px]] | |||
|- | |- | ||
| RP2C02A || | | 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 3H1 43.jpg|400px]] | |||
|- | |- | ||
| RP2C02B || | | RP2C02B || Sometimes erroneous sprite pixels appear in X=255. | ||
[[File:PPU=RP2C02B 4D4 28.jpg|400px]] | |||
|- | |- | ||
| RP2C02C || | | RP2C02C || [[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 || | | RP2C02D || [[File:PPU=RP2C02D 4H3 19.jpg|400px]] | ||
|- | |- | ||
| RP2C02D-0 || | | RP2C02D-0 || [[File:PPU=RP2C02D-0 4K3 63.JPG|400px]] [[File:PPU=RP2C02D-0 4M1 25.jpg|400px]] | ||
|- | |- | ||
| RP2C02E | | RP2C02E || [[File:PPU=RP2C02E 4M3 14.jpg|400px]] [[File:PPU=RP2C02E 4M5 25.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. | | RP2C02E-0 || In this and all previous revisions, [[OAMDATA]] and palette RAM are not readable. | ||
[https://forums.nesdev.org/viewtopic.php?p=194740#p194740 Various OAM evaluation bugs] | |||
[[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. Particularly susceptible to reflections. | |||
[[File:PPU=RP2C02G-0 7M3 52.jpg|400px]] [[File:PPU=RP2C02G-0 1EP 2C.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 9C4 23.jpg|400px]] [[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. | ||
|- | |- | ||
| RC2C03B || [[PPU palettes#RC2C03B|Tweaked palette]]; otherwise believed identical to R'''P'''2C03B. | | RC2C03B || [[PPU palettes#RC2C03B|Tweaked palette]]; otherwise believed identical to R'''P'''2C03B. | ||
[[File:PPU=RC2C03B 4A4 30.jpg|400px]] | |||
|- | |- | ||
| RC2C03C || Believed identical to RP2C03C. | | RC2C03C || Believed identical to RP2C03C. | ||
[[File:PPU=RC2C03C 4A2 10.jpg|400px]] | |||
|- | |- | ||
| RP2C04 0001 || [[PPU palettes#2C04|Scrambled palette]] and new colors, otherwise like 2C03C. | |||
[[File:PPU=RP2C04 0001 4C4 15.jpg|150px]] | |||
| RP2C04 | |||
|- | |- | ||
| 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 44: | Line 60: | ||
| RC2C05-02 || " | | RC2C05-02 || " | ||
|- | |- | ||
| RC2C05-03 || | | RC2C05-03 || [[File:PPU=RC2C05-03 5G1 12.JPG|400px]] same as above | ||
|- | |- | ||
| RC2C05-04 || | | RC2C05-04 || [[File:PPU=RC2C05-04 7C3 12.jpg|400px]] same as above | ||
|- | |- | ||
| RC2C05-99 || | | RC2C05-99 || 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. Used in the [[wikipedia:Famicom Titler|Famicom Titler]]. ([http://photozou.jp/photo/photo_only/165213/17829839 picture of Titler PCBs]) | ||
[[File:PPU=RC2C05-99 8M4 14.jpg|400px]][[File:PPU=RC2C05-99 8L4 11.jpg|400px]] | |||
|- | |- | ||
| RP2C07 | | 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. | ||
[[File:PPU=RP2C07 5M4 26.jpg|400px]] | |||
|- | |- | ||
| | | RP2C07-0 || [[File:PPU=RP2C07-0 8F3 07.jpg|400px]] | ||
|- | |- | ||
| RP2C07A-0 || | | RP2C07A-0 || Some subtle differences in PPU that make this work better with Kevtris's HDNES, but otherwise believed identical to 2C07. | ||
[[File:PPU=RP2C07A-0 2FM 22.jpg|400px]] | |||
|- | |- | ||
| UA6528 || UMC-made clone of | | UA6528 || UMC-made clone of 2C02E (or something earlier) [https://forums.nesdev.org/viewtopic.php?&t=20591] | ||
[[File:PPU=UA6528-8929-CS.jpg|400px]] [[File:PPU=UA6528-9310-CS-426610.jpg|400px]] | |||
|- | |- | ||
| UA6528P || UMC-made variant for PAL-N (Argentina) [https://forums.nesdev.org/viewtopic.php?f=9&t=13530] System crystal is 21492337.5 Hz (exactly | | UA6528P || UMC-made variant for PAL-N (Argentina) [https://forums.nesdev.org/viewtopic.php?f=9&t=13530] System crystal is 21492337.5 Hz (exactly 6×229.2516×15625) | ||
[[File:PPU=UA6528P-8911S.jpg|400px]] | |||
|- | |- | ||
| UA6538(P??) || UMC-made variant for playing NTSC games in PAL countries. Emits PAL-B video. Vblank | | 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 {{sup|(how so?)}}. See also [[Clock rate]]. | ||
[[File:PPU=UA6538 9214-BA 221530.jpg|400px]] | |||
|- | |- | ||
| UA6541 || UMC-made clone of 2C07 [https://forums.nesdev.org/viewtopic.php?t=17257] | | UA6541 || UMC-made clone of 2C07 [https://forums.nesdev.org/viewtopic.php?t=17257] | ||
[[File:PPU=UA6541 8832S.JPG|400px]] | |||
|- | |- | ||
| UA6548 || UMC-made variant for PAL-M (Brazil) System crystal is 21453671… Hz (exactly | | UA6548 || UMC-made variant for PAL-M (Brazil) System crystal is 21453671… Hz (exactly 6×227.25×4500000÷286) | ||
[[File:PPU=UA6548 9232-BS 825520.jpg|400px]] | |||
|- | |- | ||
| UM6558 || UMC-made variant of UA6538 for SECAM countries. Emits 8-bit "[https://forums.nesdev.org/viewtopic.php?p=194423#p194423 Color Data]" digital bus, for conversion into SECAM by UA6559 IC. Color palette [http://www.emu-land.net/forum/index.php/topic,27910.msg1091380.html#msg1091380 noticeably off]. Maybe supports both 50 and 60 Hz operation? | | UM6558 || UMC-made variant of UA6538 for SECAM countries. Emits 8-bit "[https://forums.nesdev.org/viewtopic.php?p=194423#p194423 Color Data]" digital bus, for conversion into SECAM by UA6559 IC. Color palette [http://www.emu-land.net/forum/index.php/topic,27910.msg1091380.html#msg1091380 noticeably off]. System crystal is 21312500 Hz (exactly 4×341×15625). Maybe supports both 50 and 60 Hz operation? | ||
[[File:PPU=UM6558 9342S 924510.jpg|400px]] | |||
|- | |- | ||
| UM6561xx-1 || UMC-made NES-on-a-chip for NTSC. PPU half believed identical to UA6528. Revisions "xx" AF, BF, CF | | UM6561xx-1 || 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 identical to UA6538. Revisions "xx" AF, BF, CF | | 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. | |||
[[File:NOAC=UM6561 AF-2 9440A R81040.jpg|200px]] | |||
|- | |- | ||
| TA-02N || ??-made clone of | | TA-02N || ??-made die-mask clone of 2C02G, despite the "6528" label.[https://forums.nesdev.org/viewtopic.php?p=286601#p286601] Chip underside also has two codes of currently unknown purpose. | ||
[[File:PPU=TA-02N 6528 9248.jpg|400px]] | |||
[[File:PPU=TA-02N Underside NT0181 609860A.jpg|325px]] | |||
|- | |- | ||
| TA-02NP || ??-made clone of UA6538. | | 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]] [[File:PPU=TA-02NP WDW23616.jpg|400px]] | |||
|- | |- | ||
| TA-02NPB || It has unique feature of switching video region: | | TA-02NPB || It has unique feature of switching video region: | ||
pin | pin 16: Video mode: 50Hz (GND) / 60Hz (5V) | ||
pin | 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. | 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" | 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]] | |||
|- | |||
| TA-08 || ??-made clone of UM6558. Color Data bus bit-reversed? | |||
[[File:PPU=TA-08 9345.jpeg|400px]] | |||
|- | |||
| MG-N-502 || [[File:PPU=MG-N-502 8933.jpg|400px]] | |||
|- | |||
| MG-P-502 || Micro Genius / TXC. Die shot matches UA6538. | |||
[[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. | ||
|- | |- | ||
| | | 1818P || SiS-made[//forums.nesdev.org/viewtopic.php?t=24499]] NES-on-a-chip.[//forums.nesdev.org/viewtopic.php?p=228515#p228515]. Requires external 2KiB RAMs for CPU and PPU. UA6538 timing. | ||
[[File:NOAC=1818P 8250.jpg|160px]] | |||
|- | |- | ||
| PM02-1 || [[wikipedia:IGB_Eletr%C3%B4nica|Gradiente]]-made variant for PAL-M (Brazil). [https://forums.nesdev.org/viewtopic.php?p=195175#p195175] | | PM02-1 || [[wikipedia:IGB_Eletr%C3%B4nica|Gradiente]]-made variant for PAL-M (Brazil). [https://forums.nesdev.org/viewtopic.php?p=195175#p195175] | ||
[[File:PPU=PM02-1 HI17.jpg|400px]] | |||
|- | |- | ||
| 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. | | 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. | ||
|- | |||
| GS87008 || (Goldstar??)-made NTSC clone [http://gxemu.blog67.fc2.com/blog-entry-363.html] <!-- https://archive.ph/70J8j --> | |||
[[File:PPU=GS87008 8827.jpg|400px]] | |||
|- | |||
| KC-6078 || Found in MT777-DX famiclone, behaves exactly like UA6538 | |||
[[File:PPU=KC-6078.jpg|400px]] | |||
|- | |||
| 6022 || ??-made NTSC clone. Details unknown. | |||
[[File:PPU=6022.jpg|400px]] | |||
|- | |||
| 2010 || [[File:PPU=2010-9129M 5018.jpg|400px]] | |||
|- | |||
| 2A02E || [[File:PPU=USC 2A02E 9136S 919620.jpg|100px]] | |||
|- | |||
| 02 || [[File:PPU=02 HG-35.jpg|400px]] | |||
|- | |||
| GT-01 || [[File:PPU=GT-01 9045.jpg]] In PLCC | |||
|- | |||
| HA6538 || [[File:PPU=HA6538 DR21.png|400px]] | |||
|- | |||
| 6538U-8 || [[File:PPU=SENiTON 6538U-8.png|400px]] | |||
|- | |||
| 6538A || [[File:PPU=SENiTON 9122D 6538A CFT2.png|400px]] [[File:PPU=SENiTON 9122D 6538A CFU6.png|400px]] | |||
|} | |} | ||
Latest revision as of 03:23, 8 December 2023
Beyond the well-studied 2C02G, we know of the following PPU revisions, both made by Ricoh and other manufacturers:
RP2C02 | Extremely rare. Likely only a few thousand 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 | |
RC2C02C | In ceramic package. [1] |
RP2C02D | |
RP2C02D-0 | |
RP2C02E | |
RP2C02E-0 | In this and all previous revisions, OAMDATA and palette RAM are not readable. |
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. |
RP2C04 0001 | Scrambled palette and new colors, otherwise like 2C03C. |
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 | same as above |
RC2C05-04 | same as above |
RC2C05-99 | 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. Used in the Famicom Titler. (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 | |
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 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 | 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 clone of UA6538. Pins 14-17 are background color in, like normal 2C03[6] |
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" |
TA-08 | ??-made clone of UM6558. Color Data bus bit-reversed? |
MG-N-502 | |
MG-P-502 | Micro Genius / TXC. Die shot matches UA6538. |
T1818 | ??-made NES-on-a-chip, NTSC timing. Believed to exist, but evidence currently scant. |
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 | |
02 | |
GT-01 | In PLCC |
HA6538 | |
6538U-8 | |
6538A |
If you know of other differences or other revisions, please add them!