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!
This is now in unhinged territory.
I noticed this too because I went in with HxD to try to edit the last 16 bytes - all zeros. I copied it off of that Sandisk 32GB SD again - still all zeros. So I went and checked it on the Wii U Retroarch, where it still boots and shows my Knight of Lodis save.
Why?
I guess I could grab the SD and look at the data on the card, hang on - and HxD ALSO sees the save on the SD card as all fucking zeros. So either HxD and ImHex are goofballs or Retroarch can read a zeroed save file just fine. Somehow. I checked again btw and it still loads on the Wii U fine.
EDIT: the .sav in the roms folder Retroarch makes is apparently a dummy file. 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, thank you for going back and forth with me about it.
Well that's just f**kin rude!
It really is, like why tbh. Unserious emulator frontend.
Yay, I'm glad you all figured it out! After I made that comment I was still thinking about it and started wondering if maybe this was a weird symlink situation or something, so I guess I wasn't too far off! And it's no problem: I genuinely love troubleshooting stuff.
Happy gaming!