gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Hardware > GBA cartridge EEPROM dumper hardware project

#24 - Costis - Wed Jan 01, 2003 3:28 am

Hi,

Just to start this board out, I'd like to post about my new hardware project for the GBA. As many of you know, GBA cartridges currently have three different save game formats: SRAM, Flash ROM, and EEPROM. SRAM data can be downloaded/uploaded to/from any cartridges with Flash Advance linker hardware or similar. Flash ROM should be compatible as well with most linker hardware although it is not supported in software. I've investigated accessing cartridge EEPROM (which in my opinion is the far most interesting of the three) from the linkers and I haven't been successful. I believe that this has to do with the way the linkers access the GBA cartridge bus using a non-sequencial read method, while EEPROM should be access with sequencial reads. If this is true, then that would explain why EEPROM cannot be accessed from GBA programs by using ldrh/strh instructions (non-sequencial) and only destination increasing DMA (sequencial). I have found a USB command on the Visoly USB linker which I suspect to perform sequencial (multiple) reads\writes, however I have yet to succeed in using this command correctly. Therefore, I have decided to build a little hardware project in spare time just for fun.

The EEPROM chip in GBA cartridges that use EEPROM for saving has only 8 pins: CE, WR, RE, A23, D0, VDD, GND, and another GND pin. Out of those, only 5 will be needed as data pins. The PC parallel port has 8 input pins and 8 output pins, which are more than enough to use without any form of multiplexing. The EEPROM is also asynchronous so (accurate) timing wouldn't have to be taken in account at all. I believe I'll use 3.3V Zener diodes to step down the 5V parallel port voltage to 3.3V for safety (I'll try to find a good data-sheet for the EEPROM and see the maximum voltage, etc. levels that it can take.) Other than the diodes and a few wires, I believe that just a GBA cartridge connector and a parallel port connector are needed for the project. I used my old Gameboy GameShark's cartridge connector and found a spare parallel port connector from my spare electronics components. I'll post back with my results, schematics, more details, and maybe even software too when I finish it. This project is just for fun and isn't really intended for any practical use. I would greatly appreciate feedback on the idea and find out if there's any interest at all.

Thanks,
Costis

#25 - marschild - Wed Jan 01, 2003 3:49 am

That is pretty cool. I hope you will figure out how to use the FA Linker, I wouldn't want to do that to my gameshark. But I have the serial version, so it probably wouldn't matter.

#26 - SSilver - Wed Jan 01, 2003 4:00 am

Good Luck Costis, if you need any help, dont hesitate to contact me.

#165 - SmileyDude - Sat Jan 04, 2003 3:27 am

Costis wrote:
Therefore, I have decided to build a little hardware project in spare time just for fun.


hehe -- someone has a lot of spare time :D

but, in seriousness, I'm working with Costis on getting the USB linker to do this -- but, the problem is that with the USB linker, the PC is one more step removed from the linker hardware. Basically, there is another chip that translates the USB protocol to the protocol that is used by the parport portion of the linker. Since Visoly didn't forsee (or just never got around to implementing it) the use of the linker for dumping serial EEPROMs, the USB portion doesn't have the necessary support for it.

That's the bad news. The good news is that it may be possible by re-writing the driver that is loaded on to the linker. But, that will take some time :)

In the meantime, it might prove more fruitful to try this using the parport instead of the USB port -- at least then we'll remove the USB->parport conversion from the equation :)
_________________
dennis

#167 - NEiM0D - Sat Jan 04, 2003 5:20 am

So, basicly, you want to dump EEPROM data to a file on your harddisk?

Ifso, why not make a GBA program and use some cable (F2A, Xboo, MBV2) to upload that program and retrieve EEPROM data from the cartridge?

Simple n easy.

#169 - NEiM0D - Sat Jan 04, 2003 5:39 am

But besides, even if a game uses EEPROM, most people patch it so it becomes SRAM.

I really don't see any point in this.

#170 - SmileyDude - Sat Jan 04, 2003 7:09 am

NEiM0D wrote:
So, basicly, you want to dump EEPROM data to a file on your harddisk?

Ifso, why not make a GBA program and use some cable (F2A, Xboo, MBV2) to upload that program and retrieve EEPROM data from the cartridge?

Simple n easy.


Well, first off, not everyone has a cable -- I have a MBV2 myself, but I don't like having to connect up the GBA to the computer and then multiboot it just to get a save game. On the other hand, the linker is most likely already connected. Just pop the game in, and dump it. Much simpler.

Besides, there is the other side of this -- the challenge of it. Sometimes, it's funner to try for a different solution to a problem. Of course the GBA can read and write to the EEPROM -- can the linker? If so, how? If you give in and go the MBV2 route, you'll never know the answer. Yes the problem is solved, but not in the way, or at the very least, in a way that makes sense to you.
_________________
dennis

#171 - SmileyDude - Sat Jan 04, 2003 7:14 am

NEiM0D wrote:
But besides, even if a game uses EEPROM, most people patch it so it becomes SRAM.

I really don't see any point in this.


You're assuming piracy here. None of the flash carts that are currently out actually use a EEPROM -- all of them use SRAM. Some will emulate serial EEPROMs for the games that need it, but that's a different thing all together.

What this project will do is allow you to take the EEPROM that you have in your already purchased game, and dump it to the PC. Why would you want to do this?

    Backup of your games before loaning to a friend.

    You want to use your save game in an emulator

    You want to use your save game on a flash cart so you don't have to carry a pile of carts with you

    You want to be able to restore a previous save game, because you borrowed a friends cart, and didn't want to screw his game up

    You think this is a pretty neat idea, and you want to see if it works


Anyway, if you don't like the idea, you don't have to work on it or even care about it :) Just because it isn't cool to you doesn't mean it's not cool to someone else :)
_________________
dennis