top of page

N64 Gameshark Repair

Repair procedure

First thing to do is disassemble the unit. Really easy, 4 phillips screws is all there is. After removing the plastic shell, I found this bad boy.

Revision "REF1329"

Credit to jim16127 on GameHacking forums for the pictures. I didn't take any at this point...

As a personnal comment, I must say I was blown away by the poorly routed circuit board! That thing is horrible on so many levels and it's surprising to me that they work fine given that high frequency digital signals are traveling aplenty on this thing.

 

There clearly has been no consideration for acid trap issues, signal reflection/impedance matching in copper traces, bus lines length matching, Analog/Digital signal isolation, parasitic inductance and ripple and finally general layout logic... My guess is at that point in time, Datel were just a bunch of software coders with very small knowledge of electronics engineering and assume the Auto router of their PCB CAD software would do a decent job of routing this thing.

 

From what I could see in the pictures, Revision "REF1451" has a much more cleaner look but there is still room for improvements!

Anyway, back on the subject. In front of such bare circuit board, not too many things could be checked. A thorough visual inspection didn't take to long and there was nothing out of the ordinary. No corrosion, no blown/cracked capacitor and no apparent cold solder joint.

 

Just to be sure, I re-soldered all pins and pads, except the connection pads on the bottom of the board.

It's important to never add solder to them. Doing so would slighly increase the thickness of the board and could potentially bend connection pins in the cart connector inside the N64, preventing firm connections when carts other that this gameshark are inserted in the N64.

If the connection pads are not corroded, leave them be. If they do are corroded, I would suggest to trash this gameshark. If you want to tinker and don't care if you damage your N64 console; you could try to "reconstruct" the connection pad using any type of conductive metallic adhesive compound.

 

In my case, resoldering the board didn't do any good. The next logical assumption was that one(or more) of the three integrated circuit  were faulty.

 

First suspect has the following markings:

LZ9FC17
DATEL GAL
ACTION REPLAY
0117EA

I could not find any information on this device and for a reason. It is most definitely a custom made ASIC for DATEL. In these case, it is extremely rare to find any information(datasheet) on such devices. Plus, an ASIC you'd want to keep cheap would not contain any reprogrammable memory array. I suspected Datel wouldn't want to spend the extra money putting some flash or EEPROM memory in there in case they would ever want to update the microcode. On top of that, there isn't much I could do with it.

 

Naturally, I then turned to the two EEPROM chips with the following markings:

SST
29LE010
150-4C-NH

(fourth line is date code and not important here)

These are standard 8 bits wide, EEPROM devices made by the company SST. You can easily find the datasheet online. They each hold 1 megabit(128 kilobytes) of data.

 

Here's the interesting bit. The N64 has a 16 bits wide data bus. A single of these EEPROM chip couldn't work has they have only  a 8 bits wide data bus. The clever trick those guys at Datel did is they took 2 EEPROM chips, connected one EEPROM's data bus to the 8 first data lines of the N64 databus and the second EEPROM to the remaining 8 data lines of the N64 databus, effectively covering the entire width of the bus. What it means is that the N64 ROM data of the Gameshark program is split on those 2 EEPROMs. For every 16 bit words at a specified memory address, the 8 lesser bits are stored in one EEPROM device and the corresponding 8 higher bits are in the other device. When the N64 request to read a certain 16 bits word from the Gameshark, both EEPROM devices are accessed at the same time without interfering each other. What was troubling for me was that I couldn't simply take a Gameshark ROM dump from the internet and directly program it in the EEPROM chips...

 

In order to sucessfully program those EEPROMs, I would need to take a dumped Gameshark ROM image and split every 16 bit words in it into 2 binary images. To do this, I made a quick and dirty set of command line tools. 

 

GS_splitter is for spliting a non-byteswapped Gameshark ROM dump that is exactly 256KB in size. It will generate two files that will be used to reprogram the EEPROM devices. Both generated files will be of exactly 128KB each.

 

GS_merger for merging 2 128KB binary images coming from the EEPROM chips. It serves no purpose in the actual repair procedure other than satisfying your curiosity by comparing your broken binary image to a working one.

 

So, with the knowledge I had at the time, I decided to go ahead and attempt a repair. Here was the plan:

  1. Grab a non-byteswapped rom dump of GameShark (I took version 3.3, from GoodN64 set.)

  2. Split the rom dump into 2 files, using GS_splitter software tool.

  3. Desolder both EEPROM ICs from the GameShark Pro PCB. Take care to note the position of those chips. The chip near the black cart connector (upper chip) contains all of the MSBs (Most Significant Bits) of the 16 bits words.

  4. Read both desoldered chips to make sure of the content (you'll be able to figure out which chip contained what part of the data)(Optionnal)

  5. Write the splitted rom dump on each chip(using any programmer that will write to 29LE010 or equivalent EEPROM chips).

  6. Solder PLCC32 sockets on the GameShark PCB in case you screw up.(Optionnal)

  7. Place back the EEPROM chips at their proper location.

  8. Boot the gameshark normally.

© 2016 Benjamin Fiset-Deschênes

bottom of page