I have a PICkit 3 would this work to dump the chip? Or should a modified NES be used?
I can always dump a regular nes cart first to make sure I get it correct before moving to the Famicomstation, FedEx is delivering it any moment now!
That's what we believe is true. Obviously we haven't verified it yet.
If you're willing to sit down and figure out what pin on the 3198 go to what pin on the cartridge that'd help. It'll be necessary to understand how to emulate the 3198-3199 communication later on also. Also ... how the 3199 is wired.
Unfortunately, the PICkit3 is more-or-less only useful for programming Microchip parts. These SM590 micros only have a "validation" mode available, and that requires a bunch more pins.I have a PICkit 3 would this work to dump the chip?
Other than for the connector, you can't really use it either.Or should a modified NES be used?
3198 Pin 1 goes to cart pin 35
Pin 2 goes to cart pin 34
Pin 6 goes to cart pin 71
Pin 7 goes to cart pin 70
Pin 8 is ground
Pins 12-15 go to the resistor network then to cart pins 16-19
Pin 16 is 5+
Here are my crude drawings just in case it helps anyone else.
So maybe a dumb question, if a PICkit or modified NES won’t dump the 3198, what is the preferred hardware set up to get it to the correct mode to dump, I can’t seem to find details about that part. A picture goes a long way for me, hands on visual learner.
Well, what I'd do is program a microcontroller to put the part into verification mode and then the microcontroller would relay that data to a computer.
For you, it'd help for me to know what parts do you have on hand. Do you have breadboards and 74xxx logic lying around? Resistors, capacitors, transistors, crystals/resonators, LEDs? By some unlikely chance, do you already have a device that uses a FT232H or a FT245?
What I'd suggest – for now – is to do something very simple to verify that you can get it into verification mode, before you tried to get those bytes to a computer.
Unlike the standard NES-xxx PCBs, which explicitly tied a whole bunch of pins to ground, your annotated PCB photos shows only one pin is tied to ground that needs to not be. It looks to me like pin 4 will need to be desoldered before you'll be able to get a dump.
If you have these parts on hand, I'd do something like this:
Code: Select all
.--_--. Gnd---LED---1k -|01 16|- +5V Gnd---LED---1k -|02 15|- switch Gnd---LED---1k -|03 14|- switch Gnd---LED---1k -|04 13|- switch +5---1k -|05 12|- 1kΩ---LED---Gnd clock -|06 11|- 1kΩ---LED---Gnd switch -|07 10|- 1kΩ---LED---Gnd Gnd -|08 09|- 1kΩ---LED---Gnd '-----'
+5V ---- 1kΩ --- toPin --- toggle switch --- ground
Where you see "clock" ... depends on what parts you have available. a 74HC14 and a resistor and capacitor is by far easiest to describe, but we can find other options too.
This makes more sense having a microcontroller with more pins... I’m a lot less lost now thank you.
Would you have a microcontroller suggestion? I don’t mind just ordering one.
The "correct" mnemonics come from the SM590 datasheet. The Mnemonics Segher came up with on his post were an educated guess on his part, as we didn't know the part was an SM590 at the time.
As far as I'm aware, all the CIC chips are SM590 and have the same pinout. what exactly each pin was used for (since they're programmable i/o pins from the MCU cpu side) differs, but the pin functions are all the same.
Yeah, I meant "as used on the SSS PCBs".
Per PatNukem's photos above, apparently the FamicomBox CIC pinout is
Code: Select all
.--_--. (P00) cart35 -|01 16|- +5V (P01) cart34 -|02 15|- cart16 (P22) (P02) n/c -|03 14|- cart17 (P21) (P03) gnd -|04 13|- n/c (P20) (Xout) n/c -|05 12|- cart18 (P13) (Clock) cart71 -|06 11|- cart19 (P12) (Reset) cart70 -|07 10|- n/c (P11) Gnd -|08 09|- n/c (P10) '-----'
Well ... I'd use a PIC18F45K50 because I have spares and am already set up for working with them. But something with a modern devchain might be a better choice for you. Depends on what you want to do, really, and whether you're more comfortable wiring things or want to learn more about microcontrollers.
The option that involves the least programming is to use something like the FT232H, FT245, or CY7C68013A to just capture the data off the pins, and build an external clock and toggle the pins I marked with "switch" high or low.
In that case however, I still think the Arduino can be a good platform, just don't use the Arduino libraries. Since it's cheap and readily found (There's bound to be lots of info on "bare bones" Arduino programming.)
edit: I forgot to mention, obviously the arduino would be generating the clock signal in this case.
edit2: looking at the Arduino Uno, it appears to have only 2kB of ram, which is technically enough, but you probably want a bit more overhead. (Streaming everything directly over serial seems like a bad time.) Still worth giving other Arduino compatible boards a look though.
I am preoccupied at the moment repairing the system as it’s really hard to do without a schematic. I can’t find the service manual except photos of the cover. It’s doing something but working is not one of the things it is doing lol.