Regarding 'auto-save' ... If I'm playing Super Mario World and I save my game 'in game', and 10 seconds later I power the system off, is my game saved? Must I press the reset button and/or load another ROM to save the prior game? to ask another way, under what scenarios would 'auto save' NOT save my game? Thanks to the community and I'm SO excited to purchase a SNES flash cart!!! toshiba1
The save data is saved and loaded with the associated rom image you have selected automatically. The save data will stay valid for the current flashed game virtually forever. You just treat it like a commercial cart. It's only when you flash a new game that it writes the contents of the save data to SD so that the save memory is available for the new game. When you go back to the previous game, the associated save data that was written to SD is automatically pulled back from SD card again into the save RAM. So if you play Super Mario World and save, the save ram will contain Super Mario World save data. If you put the cart away and come back 30 years later, the save data still contains Super Mario World. When you load Chrono Trigger, the save data for Super Mario World is saved to SD card and the save ram becomes Chrono Trigger data. When you go back to Super Mario World, the save ram is again saved to SD, this time for Chrono Trigger, and the one saved for Super Mario World is loaded in save ram again. Easy, no user interaction required.
Speaking of save data, question for Krikzz: Saves are in ASAVE.DAT, first 64k are the index which contains rom name and header info every 32 bytes. If an entry is found that matches the loaded ROM, this is how SED knows there is save data and loads it. Each entry includes some header info from the matching rom including a checksum, so you can have multiple versions of the same name ROM (english+japanese) and SED knows the diff based on the checksum when they are the same name. Actual save data starts at 0x10000 and are all 32k in size and order is same order as index, so save_offset = index_num * 32k + 64k from start of ASAVE.DAT. 0x00000: SUPER MARIO WORLD (save #1) ............................ CHRONOTRIGGER...... ............................ (save #2) 0x10000: (32k save block for Super Mario World) 0x18000: (32k save block for Chrono Trigger) There is enough room in the 64k header for 2048 index entries, but the rest of the size ASAVE.DAT from 0x10000 to end only allows for exactly 256 save slots. Again probably wanted a nice multiples of 32k or 64k to make FAT cluster size convenient and match FeRAM size. I just got my SED and heard that ASAVE.DAT would go away in V10 OS so I made sure I was familiar with extracting save data if needed when the time comes
i should look at my sources for be assured (cant keep all in mind), but all exactly as you say if i remember correctly.