don't click here

My Sonic 3 cartridge never saved games

Discussion in 'Engineering & Reverse Engineering' started by tokumaru, Oct 6, 2015.

  1. Hey! It's been a while since I used my actual Genesis/MD cartridges (it's either emulators or Everdrive these days, but even those are rare, to be honest), so I haven't thought about this in a while, but today I remembered that my original Sonic 3 cartridge was never able to save games. I got it new, when the game first came out, and as a kid I never understood the existence of all those save slots, along with a "no save" option, since turning the console off would always wipe everything away. Years later, after reading about the game online, I realized that the game was indeed supposed to save, and then I was sure there was something wrong with my cartridge. I forgot about that for years again, and only today I decided to look at the PCB and see if there was anything visibly wrong with it:

    [​IMG]

    Turns out there is something wrong: a trace appears to have been intentionally cut on the back of the PCB (indicated by the red arrow). Looking at pictures of another cartridge that doesn't have capacitors blocking the view, it appears that this trace is connected to pin B28, which an online search reveals to be labeled LDSW (even words of SRAM). I'm not very familiar with SEGA hardware, but that name does sound suspiciously related to saving. It's hard to follow where the trace goes after the cut, but it does look like it could go to the FRAM.

    Is anyone here familiar enough with SEGA hardware to confirm that this is why my cartridge was never able to save games? Why do you think TecToy (I live in Brazil) would cut this trace on purpose? Are there other brazilian carts known to have this problem? That doesn't make any sense to me. I'm not sure I should try fixing that connection, because there must be a reason for it having been cut in the first place.

    EDIT: Crap, somehow this ended up in the wrong forum section. Mods, please move it to the appropriate location. Sorry about that.
     
  2. GerbilSoft

    GerbilSoft

    RickRotate'd. Administrator
    2,971
    76
    28
    USA
    rom-properties
    LDS is Low Byte Data Strobe. I believe S3 does map SRAM to odd bytes, so that would be the reason why it doesn't save. (Note that SRAM is kept in a RAM mirror during gameplay, so this wouldn't be noticeable until you shut the system off; a warm reset would still show the save slots.)
     
  3. Thanks for the confirmation. I wonder if I should try fixing the connection... It looks to me like the board was intentionally broken, but I can't think of any reason why TecToy would sell carts they knew were defective. The damage is suspiciously close to the screw hole, but I find it unlikely that someone would have done that by accident while screwing the case shut with the board out of place.

    Ah, I was indeed wondering how the save slots were being used at all if the FRAM wasn't working. Up until yesterday I thought it was just a battery-backed RAM with a dead battery, which would explain this behavior, so I was very surprised when I found out it wasn't regular RAM. But the FRAM being mirrored in RAM explains it.

    EDIT: Wait, aren't low bytes even and high bytes odd? How does that strobe signal work? If the data bus is 16 bits, why do you even need something like that?
     
  4. GerbilSoft

    GerbilSoft

    RickRotate'd. Administrator
    2,971
    76
    28
    USA
    rom-properties
    68000 has a 23-bit address bus, plus Lower Byte and Upper Byte strobes. When accessing 16-bit data, both strobes are asserted; when accessing even-address bytes, UDS is asserted; when accessing odd-address bytes, LDS is asserted. The strobe signals are needed in order to interface with 8-bit peripherals, such as SRAM/FeRAM.

    Remember that 68000 is big-endian, so even bytes are considered the "upper" byte of the 16-bit word, whereas odd bytes are considered the "lower" byte.
     
  5. Ah, I see. Thanks for the info!