So many wrong things in the thread...
Everybody tells what he think is right, without giving the full information.
First, Card1 and Card2 are different.
Card2 are saving in Real time inside the ROM. You will never lose your save.
For Card1: AlbertoSONIC is almost right.
Gateway has and is still working the same way since the first release !
Nothing has changes regarding savegames management.
When you launch a game, the SPI chipset is initialized using this algorithm:
If you launch the SAME game than the last played game, the SD card .sav file will not be copied to SPI.
If you launch a DIFFERENT game than the last played game, the SD card .sav file of the NEW game will be copied to SPI overwriting the previously played savegame.
If your battery runs out, DO NOT LAUNCH a different game.
Run the same game that you last launched and you will continue your game where you last saved. the SPI is keeping your progress as long as you launch the same game.
To create a backup of the SPI chipset to SD card, you need to exit the game (Home+X, Power+Shutdown, Home+load another title, etc.)
It doesn't prevent game crashing and losing save progress.
If the game crash while the SPI is actually accessed it could corrupt it.
Pseudo code for launching game
Code:
if(Exit game)
{
if(SPI not empty)
Copy SPI titleID to TitleID.sav on SD
}
else if (Launch game)
{
if(launched TitleID != SPI titleID)
{
if(launched titleID .sav file exists on SD)
copy TitleID.sav to SPI
else
Initialize SPI
}
Launch game
}
Something they could implement : saving SPI at game launch instead of game exit.
But if current SPI is corrupted it would overwrite your good save backup.
Code:
if(launched TitleID != SPI titleID)
{
if(SPI not empty)
copy SPI TitleID to TitleID.sav on SD
if(launched titleID .sav file exists on SD)
copy launched TitleID.sav to SPI
else
Initialize SPI
}
launch game
keeping multiple .sav would be better (for example with backup datetime in the filename instead of overwriting the existing .sav)
Gateway is probably using the SPI as a method to prevent flashcart detection by the games.
games often have chipset check routine (type, size, etc.) to determine if the card is genuine or a copy.
if they redirect saves to SD card in realtime it could create compatibility issues and also save speed issues. SPI is probably faster than SD card access.