Question about SRAM compatibility

I started using RetroArch as my main emulator frontend a short while ago and am now also using it from XBMC under Linux and it works wonderfully. Thanks for that!

Before I used RetroArch I mainly used zsnes for SNES emulation and now wanted to somehow transfer the savegames to the new setup. I understand that savestates for quicksaves (in zsnes case .zst/.zs1 etc.) are emulator specific and can not be transferred, but in the case of battery saves (.srm) I’m a bit confused currently. About half of my saves I could just point RetroArch at and it worked while it didn’t work with others.

Now my question: Are battery saves generally supposed to be usable from different emulators or was I just lucky in the few cases it worked? Those that didn’t work were just overwritten (luckily I made backups before). Or are there even methods to make a .srm-file compatible?

It didn’t make any difference in my testing whether I used any of the bsnes backends or the snes9x-next backend.

Thanks for any education you can give!

They should be compatible. Check file sizes of those *.srm that were overwritten. I guess the one from ZSNES was bigger or smaller and that could be the reason why new emulator overwrote it. If that’s the case, it should be possible to fix it by padding or truncating them to correct size.

The file sizes don’t seem to be the problem (at first look anyway). E.g. the saves for Donkey Kong 1, 2 and 3 were all 2 KiB each before, and didn’t change their size after being overwritten. Of all three, only the saves for Donkey Kong 2 were properly recognized. So far I don’t see any system behind what works and what doesn’t…