[N64] GameShark Pro repair attempt

Discussion in 'Repair, Restoration, Conservation and Preservation' started by bennydiamond, May 28, 2013.

  1. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    476
    Likes Received:
    180
    I have an old GameShark (labeled version 3.3) that died on me sometime ago. The N64 doesn't load up anything when it's plugged in. I tried it with multiple game cart with different CIC chips. Nothing does it.

    I tried resoldering all the pins of the cart connectors, the Datel controller and flashchips without success. The only other thing that could be a repairable issue is a corrupted rom.

    I had some 74hc IC laying around and so I did manage to restore parallel port feature but that wouldn't help me since the device does not boot at all.

    To anyone who doesn't know, the rom file for this cart is splitted onto 2 SST29LE010 flashchips. Those are 8bits-wide data lines chips while the N64 as a 16bits-wide data bus. So, the clever people at Datel put one flashchip to feed the N64 the 8 less significant bits of the databus and another flashchip to feed the 8 most significant bits of the same bus. The addresses lines are toggled at the same time for both chips, recreating a flashchip with 16bits-wide data bus.

    I saw the following post on BenHeck's forums: http://benheck.com/forums/viewtopic.php?f=5&t=30689
    this is were I took the information about the splitted rom image.

    Now I did found a different approach that will take less time for me. It's quite simple but requires to desolder the 2 flashchips!


    Protocol:
    1. Grab a non-byteswapped rom dump of GameShark (I took version 3.3, should I take another?)
    2. Split the rom dump into 2 files, one containing all of the first 8 bits of each 16 bits segments and another containing all the 8 last bits of each 16 bits segments.
    3. Desolder both flashchips 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)
    5. Write the splitted rom dump on each chip(using any programmer that will write to 29LE010 chips).
    6. Solder PLCC32 sockets on the GameShark PCB in case you screw up.(Optionnal)
    7. Place back the flash chips in the proper order and try to boot.


    What's done:
    -Acquire non byteswapped rom dump of GameShark Pro (easy)

    -Splitted the good GameShark rom in splitted rom files

    -Dumped both "corrupted" flashchips content using my new MiniPro TL866CS programmer along with a PLCC32 adapter.(This thing is so awesome for the price!)

    -Merged the two corrupted dumps to HEX-compare the good and "corrupted" dumps.



    Splitting and merging was done using two program I wrote to do exactly what I described earlier.


    GS_splitter

    This program takes the filename of the good rom dump as input(you can drag and drop on the exe). It'll check for file size (doesn't not check if byteswapped or not, check this yourself) and if it checks out it'll create 2 128KB files with the same filename but with _MSBs.bin or _LSBs.bin at the end. Guess which one is which...


    GS_merger

    Takes "LSBs_dump.bin" and "MSBs_dump.bin" as input (fixed filenames) and will merge them to create a single 256KB file name "merged.bin". Of course the output is not byteswapped to make it easier to compare to a known good dump.

    Sources and win32 executable are included. View attachment GS_splitter_merger.7z



    I used the merging program on my recovered dumps and found out I had a rom which was built after the one included in GoodN64. Check the date code of the rom dump. The one of the left was on my GameShark and the one on the right is the v3.3 taken from GoodN64.
    dif.png

    For those of you who are used to BeyondCompare, you can see on the right that most of the content is different. The bottom is somewhat similar since it's the section containing all the Game codes. Is this due to a rom corruption? Possibly but it's alot of damage! I don't want to attach those files as there might be some legal issues (even if it's N64). If a MOD gives me the confirmation it's OK, I will upload them.

    Once I get the PLCC socket I ordered I will solder them and place the reprogrammed chips in place to try and make this thing works.
     
  2. Bad_Ad84

    Bad_Ad84 The Tick

    Joined:
    May 26, 2011
    Messages:
    8,566
    Likes Received:
    1,308
    Cant you just plug the GS into another working GS and let it fix itself?

    Though A for effort, might as well use the programmer if you have one.
     
  3. l_oliveira

    l_oliveira Officer at Arms

    Joined:
    Nov 24, 2007
    Messages:
    3,879
    Likes Received:
    245
    That repair method works. I repaired Saturn Action Replay devices that way a few times already.
     
  4. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    476
    Likes Received:
    180
    I don't have another GS and I don't want to buy another. But I was wondering if the following scenario could work: Buy a crippled GS without any parallel port but in working condition, stack them to boot from the working GS and use the parallel port on the faulty one to upload the bin? Would that work?

    Also as you stated, I wanted to use my new toy.

    I was pretty sure it would work from the start. That's assuming of course that it's a corrupted flash issue and not a dead microcontroller.
     
  5. bennydiamond

    bennydiamond Gutsy Member

    Joined:
    Aug 24, 2011
    Messages:
    476
    Likes Received:
    180
    Hello, update here:

    Desoldered the 2 chips using Hot air gun on my SMD rework station. Easily done, I really recommend one for anyone who want to desolder chips easily. Remove excess solder on leads with wick so you don't break your PLCC sockets.

    Cleaned the leads of the PLCCs and the pads on the PCB with solder wick.

    Reprogrammed the 2 chips with the splitted dump of v3.3, using my TL866CS programmed with a PLCC32->DIP32 adapter. This device is really great. I love my new toy!

    Soldered these sockets on the PCB:
    [​IMG]

    Most of the PLCC socket you buy are really hard to solder using a standard iron. Mine were. On top of that, the solder pads on the PCB are not much bigger than the leads of the socket itself. It makes it hard to create a firm connection between the lead and the solder pad when soldering with a regular iron. What I did is I pre-tinned all the solder pads(I removed the old solder already there using a wick) on the PCB and started heating the board from underneath until the solder on all the pads is molten. Then I carefully placed the socket (using tweezers because it gets really hot!) on top of the pads, making sure everything is perfectly aligned. Let it cool without touching it so the socket will not move.

    Once both sockets are in place, you can test the connectivity using a multimeter. On both chips, 24 of the 32 leads are connected together on the PCB. You can check for conductivity between both corresponding pins on the 2 sockets. The only pins that aren't linked on both sockets are pins 13, 14, 15, 17, 18, 19, 20, 21. For these 16 pins, you can check conductivity by swiping one of your multimeter probe on the cart connector that goes in the N64 console.



    Here's how it looks with the chips in:
    [​IMG]


    It booted perfectly once plugged in the N64 with a game on top of it. I wouldn't have needed the socket if I wanted to simply repair the device. However this could be useful if the rom would corrupt itself again!

    Now I'm going to test the parallel port connectivity of this thing.

    So to everyone who want to repair their own GameShark/ActionReplay that have corrupted roms, you can download the programs in the original post and use the same method I used. It requires some desoldering with a heat gun so be careful with the temperature setting to not burn off the chips or scorch the PCB. Also, make sure to clean any excess solder on the chips and the pads of the PCB.
     
    Bearking and HEX1GON like this.
  6. Helder

    Helder Site Supporter 2014,2015

    Joined:
    Apr 6, 2013
    Messages:
    981
    Likes Received:
    54
    Anyone know of a way to make it boot without the Nintendo Boot code marshallh mentioned in that link above? Or rather a way to implement that Boot code?
     
  7. CZroe

    CZroe Rising Member

    Joined:
    Jan 13, 2013
    Messages:
    69
    Likes Received:
    3
    I plan to do some experimentation, but you can probably just write the bytes for your particular CIC over it, which I believe is why you can make your GS unbootable by selecting a game you don't have.
     
    Last edited: Dec 7, 2015
  8. HEX1GON

    HEX1GON FREEZE! Scumbag

    Joined:
    May 4, 2011
    Messages:
    9,916
    Likes Received:
    837
  9. Tgames

    Tgames Member

    Joined:
    Jul 25, 2014
    Messages:
    12
    Likes Received:
    0
    Hi everyone,

    I need some help to do the same protocol.
    I don't undestand about spliting the rom and which file i can use.
    My GameShark Pro is full bricked too (8 number everytime due to add/remove codes)

    Can someone explain to me ? (with the correct files and some pictures) Or send me the files used.
    I hope someone can help me.

    Thanks.
    Best Regards.
     
  10. Gamesquest1

    Gamesquest1 <B>Site Supporter 2014</B>

    Joined:
    Sep 6, 2013
    Messages:
    228
    Likes Received:
    13
    think I have a n64 action replay to fix, so I will have to give this a go, I did a similar thing with a corrupt pokemon version gameboy action replay I had that had a corrupt cheat list, ended up just converting it to a standard action replay but at least it works now
     
  11. sanni

    sanni Intrepid Member

    Joined:
    May 30, 2008
    Messages:
    653
    Likes Received:
    77
    I wrote some code that can flash a Gameshark 64 with an Arduino. That way you don't have to desolder the two 29LE010 chips. Splitting the ROM is also not required.



    You can also flash homebrew up to 256KB to the Gameshark instead.
    Source code can be found as part of my DIY Cart Reader project: https://github.com/sanni/cartreader
    I could only test with a Gameshark V2.0.
     
    Bad_Ad84 likes this.
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page