A year or two ago I was playing Final Fantasy VI in mGBA on Windows, and I had put the game down for like six months after saving. I'd reinstalled my OS since then, but I went ahead and put the .sav and rom into my folder and pointed a fresh mGBA at them.
It wouldn't load. I assumed at the time that this was a freak accident and something had messed up on my end, why wouldn't it be?
Cut to a couple months ago and I was playing Tactics Ogre: The Knight of Lodis (pre-squeakwuel to the greatest game of all time) on the Wii U version of Retroarch with the mGBA core, because 160p scales well to the gamepad screen. I got about eight hours in, saved both a .sav (I thought retroarch saved .srm?) and save state and set it down. Now just this week I pulled that save file from the SD card, hoping to check on it in mGBA on a Windoze machine.
Nothing, mGBA pretends it's not there.
For fun, I also tried booting it through GBArunner2 on a Twilightmenu DSi, openagbfirm on a New 3DS and the current desktop version of mGBA in Retroarch. None of these wanted to see it. Out of pure curiosity though I put the file back on the Wii U and it still reads fine. Okay.
Why are GBA save files like this? I understand savestates are proprietary but I've carried save files for other consoles (DS saves, SNES saves, PS1 saves) around to different systems and formats and not had an issue. At one point I took my Playstation Tactics Ogre save from Duckstation format to PCSX-ReArmed format to the weird proprietary format the PSP uses for PS1 Eboots, and then converted it back to Duckstation format and still had it load.
Yes these are all slightly different versions of mGBA but seriously, what kind of emulator breaks save compatibility every time it updates?
EDIT: My FFVI is cooked but I made headway on Knight of Lodis. The solution:
The .sav in your roms folder Retroarch makes is apparently a dummy file made for no reason. My beautiful better half discovered: if you go Retroarch -> Cores -> savefiles you will find the actual SRM files. I have loaded it on a peecee successfully after simply renaming it from .srm to .sav!
That's odd, I've loaded gba game saves from different devices but states are broken, even using the same version of Mgba.
I know right? I make a habit of doubling my saves with savestates always, so I have several .ss0 files to go with em, which also do not work :)