I've made a little program which should allow you to copy a game's SRAM from one cartridge to another. I say "should", because I have not tested it yet on real hardware. My EMS 64M smartcard won't arrive for a few weeks. It works well in bgb, but there may be complications in real hardware. Most notably, the gameboy tends to reset itself when removing or inserting cartridges. But this doesn't happen every time.
The main use of this is to backup your save games to a gameboy flashcart. From there you can back up your save games to a PC. The only way to do this was with the mega memory card. This program should alleviate the need for that, though perhaps the memory card will turn out to be more reliable.
The procedure is as follows: as instructed, remove your flash cartridge and insert your retail game cartridge. Press A to copy the SRAM to the gameboy. Remove the game cartridge and re-insert your flashcart. Press B to write the SRAM to the flashcart.
Download it here
, and if you try it, let me know if it works for you.
The average game can have as much as 32 kilobytes of SRAM. The Gameboy Color has 32 kilobytes of RAM... plus 127 free bytes tucked away at the end of the address space. I challenged myself to fit my SRAM read and write code into that space, and I succeeded, I think. One of the drawbacks of this is that I can't really do any sanity checks on the "receiver" cartridge.
The Gameboy Camera seems to have 128 kilobytes of SRAM, so this will only dump the first quarter. I'm not aware of any other games with this much SRAM, other than lsdj.
I've tested it with mbc1, 2, 3, and 5 games, just not on real hardware.