User:Forple: Difference between revisions
(Created page with "I'm documenting small bits of info and data that doesn't really warrant its own page. == Ricoh Chip Date Format (Pre-1990 approximate) == Please note that this format has been primarily tested with the following ASICs: *Ricoh 2A03 CPU (RP2A03x series) CPU for Famicom/NES *Ricoh 2C0x PPU (Rx2C02x series) PPU for Famicom/NES *Ricoh 2A10 SOC (RP2A10x series) SOC for Atari 2600 "Unicorn" models *Ricoh 65C02 CPU (RP65C02x series) CPU second-source of 65C02 It may wor...") |
m (I can't link URLs for crap. This should fix it. Also, because I forgot to mention it last time, I updated the Date Format section.) |
||
(14 intermediate revisions by the same user not shown) | |||
Line 12: | Line 12: | ||
This date format documentation is possible in no small part from [[User:Fiskbit|Fiskbit]]. | This date format documentation is possible in no small part from [[User:Fiskbit|Fiskbit]]. | ||
Subsequent research notes this format is identical to the [https://telcontar.net/KBK/tech/IC_dates#Hitachi| Hitachi date format]. | |||
==== Format ==== | ==== Format ==== | ||
Line 70: | Line 72: | ||
:Original: 38 8L1 54 | :Original: 38 8L1 54 | ||
:Decoded: November 1988, Week 1 (November 1 - November 5) | :Decoded: November 1988, Week 1 (November 1 - November 5) | ||
== WDL Date Code Format == | |||
Although this date code format also covers chips well beyond the scope of NESDev, as it is used in several other chips in clone consoles, the WDL 6528, and WDL UM02 and UM03 chips present in famiclones use this format. | |||
The format mostly seems to be a simple translation of the number dates to letters. | |||
;Conversion Table: | |||
:A = 1 | |||
:B = 2 | |||
:C = 3 | |||
:D = 4 | |||
:E = 5 | |||
:F = 6 | |||
:G = 7 | |||
:H = 8 | |||
:J = 9 | |||
:K = 0 | |||
===Example dates (decoded)=== | |||
:Chip: WDL 6528 | |||
:Original: JBBF | |||
:Decoded: 9226 (Week 25 1992) | |||
<br> | |||
:Chip: WDL UM02 and WDL UM03 | |||
:Original: JBCF | |||
:Decoded: 9236 (Week 36 1992) | |||
==== Non-Famicom chip decodings (for further examples) ==== | |||
:Chip: "22C731" (SNES Clone chip) | |||
:Original: JDKC | |||
:Decoded: 9403 (Week 3 1994) | |||
<br> | |||
:Chip: "TA0201" (DMG CPU Clone) | |||
:Original: JGDB | |||
:Decoded: 9742 (Week 42 1997) | |||
<br> | |||
== Famicom Titler Composite == | |||
The Sharp Famicom Titler (AN-510) contains a RC2C05-99 PPU, whose RGB output is fed into a X0858CE "encoder" chip. This chip handles the conversion from RGB(S) into Composite, and S-Video. In the process, it seems to also desaturate the output palette by encoding YIQ, but with a 0.5 gain on the Q channel (<code>Q = Q * 0.5</code>) | |||
=== RC2C05-99 === | |||
{|class="wikitable" | |||
|- | |||
! style="text-align:center"| | |||
! style="text-align:center"|$x0 | |||
! style="text-align:center"|$x1 | |||
! style="text-align:center"|$x2 | |||
! style="text-align:center"|$x3 | |||
! style="text-align:center"|$x4 | |||
! style="text-align:center"|$x5 | |||
! style="text-align:center"|$x6 | |||
! style="text-align:center"|$x7 | |||
! style="text-align:center"|$x8 | |||
! style="text-align:center"|$x9 | |||
! style="text-align:center"|$xA | |||
! style="text-align:center"|$xB | |||
! style="text-align:center"|$xC | |||
! style="text-align:center"|$xD | |||
! style="text-align:center"|$xE | |||
! style="text-align:center"|$xF | |||
|- | |||
! style="text-align:center"|$0x | |||
|style="border:0px;background-color:#86858A;width:32px;height:32px;color:#fff;text-align:center"|$00 | |||
|style="border:0px;background-color:#16317D;width:32px;height:32px;color:#fff;text-align:center"|$01 | |||
|style="border:0px;background-color:#0B0995;width:32px;height:32px;color:#fff;text-align:center"|$02 | |||
|style="border:0px;background-color:#8575C3;width:32px;height:32px;color:#fff;text-align:center"|$03 | |||
|style="border:0px;background-color:#7E2F57;width:32px;height:32px;color:#fff;text-align:center"|$04 | |||
|style="border:0px;background-color:#923457;width:32px;height:32px;color:#fff;text-align:center"|$05 | |||
|style="border:0px;background-color:#98591C;width:32px;height:32px;color:#fff;text-align:center"|$06 | |||
|style="border:0px;background-color:#896B27;width:32px;height:32px;color:#fff;text-align:center"|$07 | |||
|style="border:0px;background-color:#605117;width:32px;height:32px;color:#fff;text-align:center"|$08 | |||
|style="border:0px;background-color:#2C4013;width:32px;height:32px;color:#fff;text-align:center"|$09 | |||
|style="border:0px;background-color:#155543;width:32px;height:32px;color:#fff;text-align:center"|$0A | |||
|style="border:0px;background-color:#1A6B29;width:32px;height:32px;color:#fff;text-align:center"|$0B | |||
|style="border:0px;background-color:#0C3C4D;width:32px;height:32px;color:#fff;text-align:center"|$0C | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$0D | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$0E | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$0F | |||
|- | |||
! style="text-align:center"|$1x | |||
|style="border:0px;background-color:#CCCED2;width:32px;height:32px;color:#000;text-align:center"|$10 | |||
|style="border:0px;background-color:#2768BB;width:32px;height:32px;color:#fff;text-align:center"|$11 | |||
|style="border:0px;background-color:#1E4FC5;width:32px;height:32px;color:#fff;text-align:center"|$12 | |||
|style="border:0px;background-color:#7C30AF;width:32px;height:32px;color:#fff;text-align:center"|$13 | |||
|style="border:0px;background-color:#9638B2;width:32px;height:32px;color:#fff;text-align:center"|$14 | |||
|style="border:0px;background-color:#BE4172;width:32px;height:32px;color:#fff;text-align:center"|$15 | |||
|style="border:0px;background-color:#B13305;width:32px;height:32px;color:#fff;text-align:center"|$16 | |||
|style="border:0px;background-color:#C09035;width:32px;height:32px;color:#fff;text-align:center"|$17 | |||
|style="border:0px;background-color:#8C792D;width:32px;height:32px;color:#fff;text-align:center"|$18 | |||
|style="border:0px;background-color:#497B32;width:32px;height:32px;color:#fff;text-align:center"|$19 | |||
|style="border:0px;background-color:#1D6C2A;width:32px;height:32px;color:#fff;text-align:center"|$1A | |||
|style="border:0px;background-color:#31938A;width:32px;height:32px;color:#fff;text-align:center"|$1B | |||
|style="border:0px;background-color:#2D7C9A;width:32px;height:32px;color:#fff;text-align:center"|$1C | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$1D | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$1E | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$1F | |||
|- | |||
! style="text-align:center"|$2x | |||
|style="border:0px;background-color:#FDFFFF;width:32px;height:32px;color:#000;text-align:center"|$20 | |||
|style="border:0px;background-color:#96BDEF;width:32px;height:32px;color:#000;text-align:center"|$21 | |||
|style="border:0px;background-color:#A2A8E6;width:32px;height:32px;color:#000;text-align:center"|$22 | |||
|style="border:0px;background-color:#CE9FE0;width:32px;height:32px;color:#000;text-align:center"|$23 | |||
|style="border:0px;background-color:#BF43B3;width:32px;height:32px;color:#fff;text-align:center"|$24 | |||
|style="border:0px;background-color:#E6A7E5;width:32px;height:32px;color:#000;text-align:center"|$25 | |||
|style="border:0px;background-color:#DCAB41;width:32px;height:32px;color:#000;text-align:center"|$26 | |||
|style="border:0px;background-color:#E7C54B;width:32px;height:32px;color:#000;text-align:center"|$27 | |||
|style="border:0px;background-color:#DFD85E;width:32px;height:32px;color:#000;text-align:center"|$28 | |||
|style="border:0px;background-color:#92C150;width:32px;height:32px;color:#000;text-align:center"|$29 | |||
|style="border:0px;background-color:#3FBB4A;width:32px;height:32px;color:#000;text-align:center"|$2A | |||
|style="border:0px;background-color:#96EAF2;width:32px;height:32px;color:#000;text-align:center"|$2B | |||
|style="border:0px;background-color:#53D8FD;width:32px;height:32px;color:#000;text-align:center"|$2C | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#777;text-align:center"|$2D | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$2E | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$2F | |||
|- | |||
! style="text-align:center"|$3x | |||
|style="border:0px;background-color:#FDFFFF;width:32px;height:32px;color:#000;text-align:center"|$30 | |||
|style="border:0px;background-color:#C7DFFA;width:32px;height:32px;color:#000;text-align:center"|$31 | |||
|style="border:0px;background-color:#DACDF2;width:32px;height:32px;color:#000;text-align:center"|$32 | |||
|style="border:0px;background-color:#F5D6F8;width:32px;height:32px;color:#000;text-align:center"|$33 | |||
|style="border:0px;background-color:#EABCED;width:32px;height:32px;color:#000;text-align:center"|$34 | |||
|style="border:0px;background-color:#EED1CA;width:32px;height:32px;color:#000;text-align:center"|$35 | |||
|style="border:0px;background-color:#F5E7BC;width:32px;height:32px;color:#000;text-align:center"|$36 | |||
|style="border:0px;background-color:#FCFB9C;width:32px;height:32px;color:#000;text-align:center"|$37 | |||
|style="border:0px;background-color:#FFFFC0;width:32px;height:32px;color:#000;text-align:center"|$38 | |||
|style="border:0px;background-color:#D8F4A2;width:32px;height:32px;color:#000;text-align:center"|$39 | |||
|style="border:0px;background-color:#C2F0B5;width:32px;height:32px;color:#000;text-align:center"|$3A | |||
|style="border:0px;background-color:#96EAF2;width:32px;height:32px;color:#000;text-align:center"|$3B | |||
|style="border:0px;background-color:#BFE2FF;width:32px;height:32px;color:#000;text-align:center"|$3C | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#777;text-align:center"|$3D | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$3E | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$3F | |||
|} | |||
=== RP2C04-0001 === | |||
Note that the below is the ''sorted'' 2C04 palette. An unsorted variant may be added sometime later. Despite this, the 2C04 largely resembles the 2C05-99, albeit with some interesting differences. | |||
This was accomplished by socketing the Titler's PPU, and simply running a modified palette test ROM. | |||
{|class="wikitable" | |||
|- | |||
! style="text-align:center"| | |||
! style="text-align:center"|$x0 | |||
! style="text-align:center"|$x1 | |||
! style="text-align:center"|$x2 | |||
! style="text-align:center"|$x3 | |||
! style="text-align:center"|$x4 | |||
! style="text-align:center"|$x5 | |||
! style="text-align:center"|$x6 | |||
! style="text-align:center"|$x7 | |||
! style="text-align:center"|$x8 | |||
! style="text-align:center"|$x9 | |||
! style="text-align:center"|$xA | |||
! style="text-align:center"|$xB | |||
! style="text-align:center"|$xC | |||
! style="text-align:center"|$xD | |||
! style="text-align:center"|$xE | |||
! style="text-align:center"|$xF | |||
|- | |||
! style="text-align:center"|$0x | |||
|style="border:0px;background-color:#88888C;width:32px;height:32px;color:#fff;text-align:center"|$00 | |||
|style="border:0px;background-color:#1B2F83;width:32px;height:32px;color:#fff;text-align:center"|$01 | |||
|style="border:0px;background-color:#150A99;width:32px;height:32px;color:#fff;text-align:center"|$02 | |||
|style="border:0px;background-color:#8C75C6;width:32px;height:32px;color:#fff;text-align:center"|$03 | |||
|style="border:0px;background-color:#7F2F53;width:32px;height:32px;color:#fff;text-align:center"|$04 | |||
|style="border:0px;background-color:#933650;width:32px;height:32px;color:#fff;text-align:center"|$05 | |||
|style="border:0px;background-color:#985D16;width:32px;height:32px;color:#fff;text-align:center"|$06 | |||
|style="border:0px;background-color:#886F23;width:32px;height:32px;color:#fff;text-align:center"|$07 | |||
|style="border:0px;background-color:#5A4E0E;width:32px;height:32px;color:#fff;text-align:center"|$08 | |||
|style="border:0px;background-color:#283C0C;width:32px;height:32px;color:#fff;text-align:center"|$09 | |||
|style="border:0px;background-color:#0B4C42;width:32px;height:32px;color:#fff;text-align:center"|$0A | |||
|style="border:0px;background-color:#0F6428;width:32px;height:32px;color:#fff;text-align:center"|$0B | |||
|style="border:0px;background-color:#0B3951;width:32px;height:32px;color:#fff;text-align:center"|$0C | |||
|style="border:0px;background-color:#272629;width:32px;height:32px;color:#fff;text-align:center"|$0D | |||
|style="border:0px;background-color:#000048;width:32px;height:32px;color:#fff;text-align:center"|$0E | |||
|style="border:0px;background-color:#00310F;width:32px;height:32px;color:#fff;text-align:center"|$0F | |||
|- | |||
! style="text-align:center"|$1x | |||
|style="border:0px;background-color:#CECED2;width:32px;height:32px;color:#000;text-align:center"|$10 | |||
|style="border:0px;background-color:#2D69C6;width:32px;height:32px;color:#fff;text-align:center"|$11 | |||
|style="border:0px;background-color:#2851D0;width:32px;height:32px;color:#fff;text-align:center"|$12 | |||
|style="border:0px;background-color:#8632AC;width:32px;height:32px;color:#fff;text-align:center"|$13 | |||
|style="border:0px;background-color:#9B3BAC;width:32px;height:32px;color:#fff;text-align:center"|$14 | |||
|style="border:0px;background-color:#C64569;width:32px;height:32px;color:#fff;text-align:center"|$15 | |||
|style="border:0px;background-color:#B23800;width:32px;height:32px;color:#fff;text-align:center"|$16 | |||
|style="border:0px;background-color:#BE9330;width:32px;height:32px;color:#fff;text-align:center"|$17 | |||
|style="border:0px;background-color:#857625;width:32px;height:32px;color:#fff;text-align:center"|$18 | |||
|style="border:0px;background-color:#457932;width:32px;height:32px;color:#fff;text-align:center"|$19 | |||
|style="border:0px;background-color:#16682C;width:32px;height:32px;color:#fff;text-align:center"|$1A | |||
|style="border:0px;background-color:#2D8F94;width:32px;height:32px;color:#fff;text-align:center"|$1B | |||
|style="border:0px;background-color:#2978A1;width:32px;height:32px;color:#fff;text-align:center"|$1C | |||
|style="border:0px;background-color:#58555A;width:32px;height:32px;color:#fff;text-align:center"|$1D | |||
|style="border:0px;background-color:#310300;width:32px;height:32px;color:#fff;text-align:center"|$1E | |||
|style="border:0px;background-color:#5A3A09;width:32px;height:32px;color:#fff;text-align:center"|$1F | |||
|- | |||
! style="text-align:center"|$2x | |||
|style="border:0px;background-color:#FDFFFF;width:32px;height:32px;color:#000;text-align:center"|$20 | |||
|style="border:0px;background-color:#97BAF2;width:32px;height:32px;color:#000;text-align:center"|$21 | |||
|style="border:0px;background-color:#A8A8E8;width:32px;height:32px;color:#000;text-align:center"|$22 | |||
|style="border:0px;background-color:#D1A0DD;width:32px;height:32px;color:#000;text-align:center"|$23 | |||
|style="border:0px;background-color:#C846AA;width:32px;height:32px;color:#fff;text-align:center"|$24 | |||
|style="border:0px;background-color:#EBA8E0;width:32px;height:32px;color:#000;text-align:center"|$25 | |||
|style="border:0px;background-color:#D7AB36;width:32px;height:32px;color:#000;text-align:center"|$26 | |||
|style="border:0px;background-color:#E3C846;width:32px;height:32px;color:#000;text-align:center"|$27 | |||
|style="border:0px;background-color:#D8D957;width:32px;height:32px;color:#000;text-align:center"|$28 | |||
|style="border:0px;background-color:#8CBf4F;width:32px;height:32px;color:#000;text-align:center"|$29 | |||
|style="border:0px;background-color:#37B957;width:32px;height:32px;color:#000;text-align:center"|$2A | |||
|style="border:0px;background-color:#97E7FD;width:32px;height:32px;color:#000;text-align:center"|$2B | |||
|style="border:0px;background-color:#56D3FF;width:32px;height:32px;color:#000;text-align:center"|$2C | |||
|style="border:0px;background-color:#A6A3AA;width:32px;height:32px;color:#000;text-align:center"|$2D | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$2E | |||
|style="border:0px;background-color:#000000;width:32px;height:32px;color:#fff;text-align:center"|$2F | |||
|- | |||
! style="text-align:center"|$3x | |||
|style="border:0px;background-color:#FDFFFF;width:32px;height:32px;color:#000;text-align:center"|$30 | |||
|style="border:0px;background-color:#CADEFC;width:32px;height:32px;color:#000;text-align:center"|$31 | |||
|style="border:0px;background-color:#D9CCF1;width:32px;height:32px;color:#000;text-align:center"|$32 | |||
|style="border:0px;background-color:#F2D3F1;width:32px;height:32px;color:#000;text-align:center"|$33 | |||
|style="border:0px;background-color:#EBB9E7;width:32px;height:32px;color:#000;text-align:center"|$34 | |||
|style="border:0px;background-color:#EFD2C6;width:32px;height:32px;color:#000;text-align:center"|$35 | |||
|style="border:0px;background-color:#F4E8BB;width:32px;height:32px;color:#000;text-align:center"|$36 | |||
|style="border:0px;background-color:#F0F55A;width:32px;height:32px;color:#000;text-align:center"|$37 | |||
|style="border:0px;background-color:#FFFEB8;width:32px;height:32px;color:#000;text-align:center"|$38 | |||
|style="border:0px;background-color:#CAED9C;width:32px;height:32px;color:#000;text-align:center"|$39 | |||
|style="border:0px;background-color:#B5E7B0;width:32px;height:32px;color:#000;text-align:center"|$3A | |||
|style="border:0px;background-color:#97E7FD;width:32px;height:32px;color:#000;text-align:center"|$3B | |||
|style="border:0px;background-color:#BBDAFF;width:32px;height:32px;color:#000;text-align:center"|$3C | |||
|style="border:0px;background-color:#EBE8EF;width:32px;height:32px;color:#000;text-align:center"|$3D | |||
|style="border:0px;background-color:#D6C59C;width:32px;height:32px;color:#000;text-align:center"|$3E | |||
|style="border:0px;background-color:#EDDC55;width:32px;height:32px;color:#000;text-align:center"|$3F | |||
|} | |||
== Observed Logic Chip Manufacturers == | == Observed Logic Chip Manufacturers == | ||
*Sharp (LR74xx; | Official Famicom and NES systems often have different 7400 logic manufacturers used between boards. | ||
*Hitachi | |||
*Sharp (LR74xx; LR74xx chips are used almost exclusively for HVC-CPU-05 consoles?) | |||
*Hitachi (HD74xx) | |||
*Texas Instruments (SN74xx) | *Texas Instruments (SN74xx) | ||
*Fujitsu | *Fujitsu | ||
*Fairchild (Exclusively used in HVC-CPU-03 boards?) | |||
There may be more, feel free to edit this section if you find others! | There may be more, feel free to edit this section if you find others! | ||
Line 81: | Line 317: | ||
== Ricoh Package Types == | == Ricoh Package Types == | ||
The chips in NES/Famicom units vary in package styles a lot. This section tries to identify possible manufacturers of the chipset with cross-references. Please note this section is currently a work in progress and info may change. | |||
If you have any suggestions, ideas, info, etc; Please leave them on my user talk page. | |||
{| class="wikitable" | |||
|- | |||
! Chip | |||
! Image | |||
! Reference | |||
! Possible Manufacturer | |||
! Country of Manufacture | |||
! Comment | |||
|- | |||
| RP2C02C | |||
| [[File:PPU=RP2C02C 4B4 85.png|400px]] | |||
| [[File:PSG=YM2149F 9510 GAIH.jpg|400px]] | |||
| Hitachi | |||
| Japan | |||
| Supposedly identical bottomside imprint format as other Hitachi-made chips, such as some YM2149F. Pin 1 marking and font are near-identical. | |||
|- | |||
| RP2C33-01A | |||
| [[File:FDS=RP2C33 01A 6D1 26.png|400px]] | |||
| [[File:VDP=V9938 2701C 9112 GAFE.jpg|400px]] | |||
| Hitachi | |||
| Japan | |||
| Shares package style with V9938 VDP, and Ricoh 2A10. | |||
|- | |||
| RP2A03G | |||
| [[File:CPU=2A03G 2EM 3C.png|400px]] | |||
| [[File:C64 CPU=MOS 6510 CBM 3483.jpg|400px]] | |||
| Unknown Manufacturer | |||
| Hong Kong | |||
| Shares font and package style with MOS 6510 CPU, from one decade prior. Visually similar MOS 6510s are marked with "HONG KONG" on the bottom. | |||
|} | |||
== Hardware Observations == | |||
Weird things with hardware I might not be able explain, or understand. It's all documented here, per request of "org" due to it otherwise being lost to time on a discord channel. | |||
{{mbox | |||
| type = warning | |||
| text = This information may contain incomplete or incorrect information as topics are more actively researched. Despite this, the section will try to be as accurate as possible at all times.}} | |||
=== Mapper 106 Behavior === | |||
[[INES Mapper 106]], or at least my copy of this cartridge, '''works on nearly all revisions of CPU and PPU I can test with but RP2C02B.''' | |||
I don't know the full extent of why this happens. But it's my own theory that it is possibly either due to a change in CPU manufacturer leading to a slight behavioral difference, or the different PPU. | |||
Observations listed below: (Note: "Chip Manufacturer" lists the company when possible. Otherwise, it lists the origin country usually marked on the package, which may have variations.) | |||
==== Table of Results ==== | |||
{| class="wikitable" | |||
|- | |||
! PCB (eg: HVC-CPU-02) | |||
! CPU (with Chip Manufacturer) | |||
! PPU (with Chip Manufacturer) | |||
! Status | |||
! Notes | |||
|- | |||
| HVC-CPU-03 | |||
| RP2A03 (Hitachi) | |||
| RP2C02A (Hitachi) | |||
| Works fine. | |||
| No issues. | |||
|- | |||
| HVC-CPU-05 | |||
| RP2A03 (Hitachi) | |||
| RP2C02C (Hitachi) | |||
| Works fine. | |||
| No issues. | |||
|- | |||
| HVC-CPU-05 | |||
| RP2A03 (Korea Mfg. #1) | |||
| RP2C02B (Hitachi) | |||
| Crashes after some time. Game effects include halting with all background tiles vanishing (sprites are untouched, and remain uncorrupted), with the IRQ misbehaving, drawing a weird pattern of IRQs down the screen. The game seems to mostly lock up, but is still running extremely slowly. This continues for approximately 5 minutes until the game fully crashes. | |||
| PPU known to exhibit weird behavior supposedly not present on other 2C02B PPUs. Otherwise acts (mostly) the same as a normal 2C02B. | |||
|- | |||
| HVC-CPU-07 | |||
| RP2A03E (Korea Mfg. #2) | |||
| RP2C02E-0 (Korea Mfg. #1) | |||
| Works fine. | |||
| No Issues. | |||
|- | |||
| HVC-CPU-07 | |||
| RP2A03G (Korea Mfg. #1) | |||
| RP2C02G (Korea Mfg. #1) | |||
| Works fine. | |||
| No Issues. | |||
|- | |||
| HVC-CPU-07 | |||
| RP2A03G (Hong Kong) | |||
| RP2C02G-0 (Hong Kong) | |||
| Works fine. | |||
| No Issues. Functionally identical results to G-revision CPU/PPU. | |||
|- | |||
| HVC-CPU-07 | |||
| TA-03N | |||
| TA-02N | |||
| Works fine. | |||
| No Issues. Functionally identical results to G-revision CPU/PPU. | |||
|- | |||
| HVC-CPU-07 | |||
| UA6527P | |||
| UA6528 | |||
| Works fine. | |||
| PAL clone CPU in NTSC system, with NTSC PPU. No Issues. Results would likely be somewhat close to E-revision CPU/PPU. | |||
|- | |||
| HVC-CPU-07 | |||
| 2011 | |||
| 2010 | |||
| Works fine. | |||
| No Issues. Functionally identical results to G-revision CPU/PPU. | |||
|- | |||
| ?? (MicroNewton PCB) | |||
| XYZ-6783 | |||
| WDL 6528 | |||
| Works fine. | |||
| No Issues. Functionally identical results to G-revision CPU/PPU. | |||
|- | |||
| ?? (DarYar PCB) | |||
| "6538N" | |||
| "6528" | |||
| Works fine. | |||
| No Issues. Functionally identical results to E-revision CPU/PPU. | |||
|} | |||
Things to note: | |||
* Korea manufacturers are determined by the bottom package eject holes either ''printing'' "KOREA" on the bottom, or as part of a "stamp" embossed onto one of the bottom eject holes. | |||
* All HVC-CPU-07 tests were done with the same PCB, as it is socketed. | |||
* PAL 6527P with NTSC 6528 is ''mostly'' similar to an NTSC Famicom system with E-revision (or compatible) chipset. Major difference is CPU speed, and APU generated frequencies. | |||
* Despite being an earlier revision, the 2C02B board and its chipset were made ''after'' the 2C02C's board and chipset. | |||
* The RP2C02B PCB is the only PCB I own containing a Korea-manufactured 2A03. | |||
==== Testing Method ==== | |||
The bug was originally found during a casual playthrough of the cartridge (Which contained Super Mario Bros. 3). When I originally discovered the game crashed after a set time, I tried to beat the game as fast as possible, to try and beat it before it crashed. All test runs from this point on use the "Double Warp Whistle" trick, as a result. | |||
==== Possible Cause ==== | |||
* According to org, "This happens when NMI is executed more than once per frame or its execution diverges from VBlank. This can be caused either by an IRQ from the timer, an IRQ from the cartridge, or an incorrect CPU/PPU timing alignment." | |||
==== Todo ==== | |||
* Check cartridge IRQ and PPU /INT lines of the "faulty" unit with a logic analyzer, and cross compare to a ''working'' console. | |||
<br> | |||
=== Columbus Circle Cartridge Behavior === | |||
When I got a HVC-CPU-08 board, I [https://www.youtube.com/watch?v=MpSTMmKfwKM recently discovered] that all games with it worked ''except'' that of Kira Kira Star Night DX. For unknown reasons, the game failed to bankswitch in the correct graphics ''at all'' for almost every scenario, and it seemed like tilemap fetches were buggy. I thought this was a one off deal just like the above Mapper 106; However another user (Lockster) has reported the same bug with a completely different game also released by Columbus Circle. | |||
Of note, the graphics only "fix" themselves when RESET is pressed and held down. This is in stark contrast to all other consoles I own (even the 2C02A!) where the RESET button causes the graphics to garble, and other aspects to glitch and mess up. Even then the fix is not perfect, as any scroll split/IRQ-based behavior does not work during a held RESET state. | |||
The affected consoles are not consistent. One is a HVC-CPU-08, with a 2C02D PPU, and a 2A03E CPU. The other (not mine), is a HVC-CPU-05, with a letterless 2A03 CPU and a 2C02B PPU. My ''own'' CPU-05 letterless/2C02B console runs the game perfectly fine, so I do not know what causes it to act so erratically. I do not know of anyone else with a second CPU-08, or personally have a CPU-08, to compare with, especially one with the same "hybrid revision" chipset. |
Latest revision as of 21:52, 15 October 2023
I'm documenting small bits of info and data that doesn't really warrant its own page.
Ricoh Chip Date Format (Pre-1990 approximate)
Please note that this format has been primarily tested with the following ASICs:
- Ricoh 2A03 CPU (RP2A03x series) CPU for Famicom/NES
- Ricoh 2C0x PPU (Rx2C02x series) PPU for Famicom/NES
- Ricoh 2A10 SOC (RP2A10x series) SOC for Atari 2600 "Unicorn" models
- Ricoh 65C02 CPU (RP65C02x series) CPU second-source of 65C02
It may work on other chips produced by Ricoh, but this cannot be guaranteed.
This date format documentation is possible in no small part from Fiskbit.
Subsequent research notes this format is identical to the Hitachi date format.
Format
2A0x: YMW ?? 2A1x: !! YMW ?? Y = Year M = Month W = Week ?? = Unknown !! = Unknown (present on the 2A10, always set to "38")
Year is a single digit 0 through 9. When 1990 rolled around, they seemed to just wrap back over to 0 and count back up, while
changing the format a bit (see below).
Month is represented with a letter, from A to M. Likely for readability reasons, letter I is omitted due to visual similarity
to the 1 digit.
Week is a digit, 0 through 9, much like Year.
The "Unknown" fields serve a purpose not yet understood.
For some reason, Week was updated in 1990 to include letters. It's not entirely known why.
- Month Table
- A = January
- B = February
- C = March
- D = April
- E = May
- F = June
- G = July
- H = August
- J = September
- K = October
- L = November
- M = December
Example dates (decoded)
- Chip: RP2A03
- Original: 4C3 27
- Decoded: March 1984, Week 3 (March 11 - March 17)
- Chip: RP65C02
- Original: 4J2 16
- Decoded: September 1984, Week 2 (September 2 - September 8)
- Chip: RP2C02B
- Original: 4D2 89
- Decoded: April 1984, Week 2 (April 8 - April 14)
- Chip: RP2C02C
- Original: 4B4 85
- Decoded: February 1984, Week 4 (February 19 - February 25)
- Chip: RP2A10
- Original: 38 7K3 10
- Decoded: October 1987, Week 3 (October 11 - October 17)
- Chip: RP2A10
- Original: 38 8L1 54
- Decoded: November 1988, Week 1 (November 1 - November 5)
WDL Date Code Format
Although this date code format also covers chips well beyond the scope of NESDev, as it is used in several other chips in clone consoles, the WDL 6528, and WDL UM02 and UM03 chips present in famiclones use this format.
The format mostly seems to be a simple translation of the number dates to letters.
- Conversion Table
- A = 1
- B = 2
- C = 3
- D = 4
- E = 5
- F = 6
- G = 7
- H = 8
- J = 9
- K = 0
Example dates (decoded)
- Chip: WDL 6528
- Original: JBBF
- Decoded: 9226 (Week 25 1992)
- Chip: WDL UM02 and WDL UM03
- Original: JBCF
- Decoded: 9236 (Week 36 1992)
Non-Famicom chip decodings (for further examples)
- Chip: "22C731" (SNES Clone chip)
- Original: JDKC
- Decoded: 9403 (Week 3 1994)
- Chip: "TA0201" (DMG CPU Clone)
- Original: JGDB
- Decoded: 9742 (Week 42 1997)
Famicom Titler Composite
The Sharp Famicom Titler (AN-510) contains a RC2C05-99 PPU, whose RGB output is fed into a X0858CE "encoder" chip. This chip handles the conversion from RGB(S) into Composite, and S-Video. In the process, it seems to also desaturate the output palette by encoding YIQ, but with a 0.5 gain on the Q channel (Q = Q * 0.5
)
RC2C05-99
$x0 | $x1 | $x2 | $x3 | $x4 | $x5 | $x6 | $x7 | $x8 | $x9 | $xA | $xB | $xC | $xD | $xE | $xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$0x | $00 | $01 | $02 | $03 | $04 | $05 | $06 | $07 | $08 | $09 | $0A | $0B | $0C | $0D | $0E | $0F |
$1x | $10 | $11 | $12 | $13 | $14 | $15 | $16 | $17 | $18 | $19 | $1A | $1B | $1C | $1D | $1E | $1F |
$2x | $20 | $21 | $22 | $23 | $24 | $25 | $26 | $27 | $28 | $29 | $2A | $2B | $2C | $2D | $2E | $2F |
$3x | $30 | $31 | $32 | $33 | $34 | $35 | $36 | $37 | $38 | $39 | $3A | $3B | $3C | $3D | $3E | $3F |
RP2C04-0001
Note that the below is the sorted 2C04 palette. An unsorted variant may be added sometime later. Despite this, the 2C04 largely resembles the 2C05-99, albeit with some interesting differences.
This was accomplished by socketing the Titler's PPU, and simply running a modified palette test ROM.
$x0 | $x1 | $x2 | $x3 | $x4 | $x5 | $x6 | $x7 | $x8 | $x9 | $xA | $xB | $xC | $xD | $xE | $xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$0x | $00 | $01 | $02 | $03 | $04 | $05 | $06 | $07 | $08 | $09 | $0A | $0B | $0C | $0D | $0E | $0F |
$1x | $10 | $11 | $12 | $13 | $14 | $15 | $16 | $17 | $18 | $19 | $1A | $1B | $1C | $1D | $1E | $1F |
$2x | $20 | $21 | $22 | $23 | $24 | $25 | $26 | $27 | $28 | $29 | $2A | $2B | $2C | $2D | $2E | $2F |
$3x | $30 | $31 | $32 | $33 | $34 | $35 | $36 | $37 | $38 | $39 | $3A | $3B | $3C | $3D | $3E | $3F |
Observed Logic Chip Manufacturers
Official Famicom and NES systems often have different 7400 logic manufacturers used between boards.
- Sharp (LR74xx; LR74xx chips are used almost exclusively for HVC-CPU-05 consoles?)
- Hitachi (HD74xx)
- Texas Instruments (SN74xx)
- Fujitsu
- Fairchild (Exclusively used in HVC-CPU-03 boards?)
There may be more, feel free to edit this section if you find others!
Ricoh Package Types
The chips in NES/Famicom units vary in package styles a lot. This section tries to identify possible manufacturers of the chipset with cross-references. Please note this section is currently a work in progress and info may change.
If you have any suggestions, ideas, info, etc; Please leave them on my user talk page.
Hardware Observations
Weird things with hardware I might not be able explain, or understand. It's all documented here, per request of "org" due to it otherwise being lost to time on a discord channel.
This information may contain incomplete or incorrect information as topics are more actively researched. Despite this, the section will try to be as accurate as possible at all times. |
Mapper 106 Behavior
INES Mapper 106, or at least my copy of this cartridge, works on nearly all revisions of CPU and PPU I can test with but RP2C02B. I don't know the full extent of why this happens. But it's my own theory that it is possibly either due to a change in CPU manufacturer leading to a slight behavioral difference, or the different PPU.
Observations listed below: (Note: "Chip Manufacturer" lists the company when possible. Otherwise, it lists the origin country usually marked on the package, which may have variations.)
Table of Results
PCB (eg: HVC-CPU-02) | CPU (with Chip Manufacturer) | PPU (with Chip Manufacturer) | Status | Notes |
---|---|---|---|---|
HVC-CPU-03 | RP2A03 (Hitachi) | RP2C02A (Hitachi) | Works fine. | No issues. |
HVC-CPU-05 | RP2A03 (Hitachi) | RP2C02C (Hitachi) | Works fine. | No issues. |
HVC-CPU-05 | RP2A03 (Korea Mfg. #1) | RP2C02B (Hitachi) | Crashes after some time. Game effects include halting with all background tiles vanishing (sprites are untouched, and remain uncorrupted), with the IRQ misbehaving, drawing a weird pattern of IRQs down the screen. The game seems to mostly lock up, but is still running extremely slowly. This continues for approximately 5 minutes until the game fully crashes. | PPU known to exhibit weird behavior supposedly not present on other 2C02B PPUs. Otherwise acts (mostly) the same as a normal 2C02B. |
HVC-CPU-07 | RP2A03E (Korea Mfg. #2) | RP2C02E-0 (Korea Mfg. #1) | Works fine. | No Issues. |
HVC-CPU-07 | RP2A03G (Korea Mfg. #1) | RP2C02G (Korea Mfg. #1) | Works fine. | No Issues. |
HVC-CPU-07 | RP2A03G (Hong Kong) | RP2C02G-0 (Hong Kong) | Works fine. | No Issues. Functionally identical results to G-revision CPU/PPU. |
HVC-CPU-07 | TA-03N | TA-02N | Works fine. | No Issues. Functionally identical results to G-revision CPU/PPU. |
HVC-CPU-07 | UA6527P | UA6528 | Works fine. | PAL clone CPU in NTSC system, with NTSC PPU. No Issues. Results would likely be somewhat close to E-revision CPU/PPU. |
HVC-CPU-07 | 2011 | 2010 | Works fine. | No Issues. Functionally identical results to G-revision CPU/PPU. |
?? (MicroNewton PCB) | XYZ-6783 | WDL 6528 | Works fine. | No Issues. Functionally identical results to G-revision CPU/PPU. |
?? (DarYar PCB) | "6538N" | "6528" | Works fine. | No Issues. Functionally identical results to E-revision CPU/PPU. |
Things to note:
- Korea manufacturers are determined by the bottom package eject holes either printing "KOREA" on the bottom, or as part of a "stamp" embossed onto one of the bottom eject holes.
- All HVC-CPU-07 tests were done with the same PCB, as it is socketed.
- PAL 6527P with NTSC 6528 is mostly similar to an NTSC Famicom system with E-revision (or compatible) chipset. Major difference is CPU speed, and APU generated frequencies.
- Despite being an earlier revision, the 2C02B board and its chipset were made after the 2C02C's board and chipset.
- The RP2C02B PCB is the only PCB I own containing a Korea-manufactured 2A03.
Testing Method
The bug was originally found during a casual playthrough of the cartridge (Which contained Super Mario Bros. 3). When I originally discovered the game crashed after a set time, I tried to beat the game as fast as possible, to try and beat it before it crashed. All test runs from this point on use the "Double Warp Whistle" trick, as a result.
Possible Cause
- According to org, "This happens when NMI is executed more than once per frame or its execution diverges from VBlank. This can be caused either by an IRQ from the timer, an IRQ from the cartridge, or an incorrect CPU/PPU timing alignment."
Todo
- Check cartridge IRQ and PPU /INT lines of the "faulty" unit with a logic analyzer, and cross compare to a working console.
Columbus Circle Cartridge Behavior
When I got a HVC-CPU-08 board, I recently discovered that all games with it worked except that of Kira Kira Star Night DX. For unknown reasons, the game failed to bankswitch in the correct graphics at all for almost every scenario, and it seemed like tilemap fetches were buggy. I thought this was a one off deal just like the above Mapper 106; However another user (Lockster) has reported the same bug with a completely different game also released by Columbus Circle.
Of note, the graphics only "fix" themselves when RESET is pressed and held down. This is in stark contrast to all other consoles I own (even the 2C02A!) where the RESET button causes the graphics to garble, and other aspects to glitch and mess up. Even then the fix is not perfect, as any scroll split/IRQ-based behavior does not work during a held RESET state.
The affected consoles are not consistent. One is a HVC-CPU-08, with a 2C02D PPU, and a 2A03E CPU. The other (not mine), is a HVC-CPU-05, with a letterless 2A03 CPU and a 2C02B PPU. My own CPU-05 letterless/2C02B console runs the game perfectly fine, so I do not know what causes it to act so erratically. I do not know of anyone else with a second CPU-08, or personally have a CPU-08, to compare with, especially one with the same "hybrid revision" chipset.