With mGBA core saving and loading is working fine for me at the moment.
I started importing my save files from VBA 1.8 Link emulator. Those saves are in .sa1 format (exactly the same structure as standard .sav format, just different extension). They are 512 bytes each. What I do to make them work with Bizhawk, is:
- change extension to .saveRAM
- move it to \Bizhawk\GBA\saveRAM
- open the game in Bizhawk and see if it works
- if it works, Bizhawk adds a lot of FF bytes to the .saveRAM file, changing its size from 512 bytes to either 8 KB or 64 KB, while leaving the crucial first 512 bytes as it was before.
So far I've managed to successfully import about 20 saves, but I've come across some games that don't work with my method.
1) Crash Bandicoot 2 - N-Tranced (Europe) (En,Fr,De,Es,It,Nl)
2) Crash Bandicoot 2 - N-Tranced (USA)
I checked sha-1 for those games and it matches perfectly what's inside gamedb_gba.txt file.
What happens here:
- 512 byte .saveRAM gets changed by Bizhawk to 64 KB
- game doesn't recognise this file - cannot load my old save
- when started a new game and trying to save, it doesn't save, but it changes the .saveRAM file in such a way, that the first 8 bytes become "some data", and the rest of the file becomes FF. So, even if previously it was 512 bytes of data and rest FF, now it's only 8 bytes of data and rest FF. My uneducated guess is, the 8 bytes of data that are written contain error message?
I also tried a different approach, by creating an empty .saveRAM file to see if it makes any difference, but yet again after trying to save I end up with 64 KB file that has data only in first 8 bytes and the rest is FF.
Suprisingly, the Japanese version of this game does work!
Crash Bandicoot Advance 2 - Guruguru Saimin Dai-panic! (Japan)
And the .saveRAM file isn't 64 KB like in EU/USA version, but 8 KB. So, using the same steps to change my .sa1 file to .saveRAM, and Bizhawk recognises this save, and saving works perfectly.
So a few questions:
- why is JAP version making an 8 KB .saveRAM file, but other versions of the same game are making 64 KB files?
- why the EU and USA versions do not load/save in Bizhawk? (using newest 1.11.8.2)
- what's the point of Bizhawk making .saveRAM files bigger than 512 bytes, since everything after the initial 512 bytes is just redundand data full of FF?
- why does Bizhawk create .saveRAM files with different filesize (8 KB and 64 KB) for different games?