retrohead / satiator-rings

Satiator menu replacement with image support written using jo-engine. Currently loads .iso and .cue / .bin format (.wav should work but not tested). Some games may not work due to vdp1 not being cleared. Region free is different to the official menu as it is done by actually patching the files on your SD card. Therefore there is a confirmation screen before launching which can be turned off in options.
http://files-ds-scene.net/retrohead/satiator/
31 stars 2 forks source link

Per-Game Saves can cause save files to be overwritten if games share the same GameID and save file name #10

Open privateye opened 2 years ago

privateye commented 2 years ago

Instances of Saturn games sharing the same GameID and save file name are described below:

Different regional releases of the same game

The stated issue occurs with Scorcher (Europe) and Scorcher (USA). They both share a GameID of MK-81214, a save file name of SCORCHER_00, and their save files are not interchangeable. With these two games, it is easy to re-produce this issue by following these steps:

  1. Download this file: satiator-saves.zip
  2. Copy the extracted folder to the Satiator's SD card.
  3. Set Per-Game Save Slot to '00' in the Satiator Rings options menu.
  4. Launch Scorcher (USA) and satiator-saves\MK-81214\SCORCHER_00.BUP will be copied to internal memory.
  5. Once the game is opened, go to Options -> View high scores -> Best lap time -> Time Attack and observe the initials 'SHY' in third place.
  6. Reboot to Satiator Rings and satiator-saves\MK-81214\SCORCHER_00.BUP will be written to the Satiator's SD card.
  7. Launch Scorcher (Europe) and satiator-saves\MK-81214\SCORCHER_00.BUP will be copied to internal memory.
  8. When the game loads, you will notice the message "Creating save file". At this point, SCORCHER_00 is overwritten and the previously-observed lap time is no longer available.
  9. Reboot to Satiator Rings and satiator-saves\MK-81214\SCORCHER_00.BUP will be written to the Satiator's SD card, losing our original save file in the process.

Of course, you could intervene after step 8 by clearing the contents of internal memory, thus preventing the loss of the save file in step 9. But if a user isn't savvy enough to do this and also doesn't keep regular backups of save files, then this scenario would result in them losing save data.

One solution is to append [region-code] to the folder names in satiator-saves. If this was done then the specific issue described above could not occur, as:

Different revisions of the same game

In most (if not all) cases, save files from different revisions are compatible with each other. For example, the save file from Metal Slug v1.002 is compatible with Metal Slug v1.005. Furthermore, the version number should not be added to the folder name in an attempt to be cautious, as this would mess with Per-Game Saves' ability to work with multi-disc games that have different version numbers for each disc. For example, Grandia (Disc 1) has a version number of 1.002 whereas Grandia (Disc 2) has a version number of 1.004.

Different discs in a multi-disc game

Of course, it's completely natural for each disc in a multi-disc game to share the same GameID and save file name, so there's nothing to worry about here.


Interestingly, there are some games that share the same GameID despite being completely different to each other. For example, Darius Gaiden (Japan) and HatTrick Hero S (Japan) share a GameID of T-1102G. However, this is not a cause for concern since different games will have different save file names (if they save at all), hence there is no risk of the Per-Game Saves feature overwriting save files in such instances.

retrohead commented 2 years ago

Unfortunately there is no way to determine the region of a game after it has been patched by rings. To overcome this you can use the new save slot feature. I suggest using a different slot for each region.

Hat Trick Hero should be T-1103G

privateye commented 2 years ago

Thanks for the response. To be fair, most people will only have one regional version of any given game on their Satiator, so it shouldn't be much of an issue.

HatTrick Hero should be T-1103G, but its header has it as T-1102G.

hattrick