NES games with a battery always warn you to hold the reset button when switching the console off, so that you don't lose your savestates.
Why does this warning not appear in Super Nintendo games?
AFAIK, the reason NES games come with this warning is that while powering off, the CPU can go crazy and start running unpredictable pieces of the game code, which could possibly corrupt the saves if RAM at $6000-$8000 was written to. Holding reset forces the CPU to "stay still" and not execute any harmful operations. Some mappers can disable writes to save RAM in order to protect it, but since the extra memory is hardly ever used exclusively for saving, even games using these mappers are probably susceptible to the problem.
As for the SNES, I can only guess that it has some sort of protection against this, like some NES mappers do. Since the SNES has much more work RAM than the NES, games for it are more likely to use the save memory exclusively for saving, and can actually keep writes disabled most of the time. I'm mostly guessing though, so don't quote me on this! =)
The Super NES runs the /RESET wire out to the edge connector.
As I understand it, /RESET acts as an open collector. This means the Control Deck normally pulls it high (to 5 V) through a resistor but can pull it low (to ground) to reset the Game Pak, or the Game Pak can pull it low to reset the Control Deck. When the user presses the reset button, the Control Deck's power-on reset circuit pulls /RESET low. I imagine it does the same for the power switch, allowing SRAM-decoding ICs such as the MAD series to be that much more effective than the protection on the NES, where reset detectors had only loss of M2 oscillation to go on.
True, it's not as common to use cart SRAM as work RAM on the Super NES, but I don't remember seeing any SRAM disable registers in Super NES documentation.
It had warnings against checking for data corruption and attempting to restore it though (either through redundancy or through error correction), although then again that's still useful e.g. in the case the game crashes, there's a power outage during writing, etc.
There are also circuits that can be used to detect when the voltage has passed below a certain threshold. With these, a more modern console can hypothetically disable the CPU by itself as the power is cut off, and that'd remove the need to hold reset.
This is especially important on systems where there is no reset button, like the Gameboy.
But I think the easiest way is to just unmap (or write-protect) the save-ram when you're not saving, but depending on the application, that may or may not be feasible. (For instance, games that only need a little bit of the save ram for actual save data, and use the rest as work ram)
Man, Super Mario Land 2 put the STACK into SRAM. You're guaranteed to have a ton of writes in there that way.
What I also noticed: When I switch off the SNES and switch it back on, then the status of the game is sometimes still there (for games without batteries), as if I had just pressed Reset instead of Power.
For example: When I enter the mirror match cheat in "Street Fighter II" (which makes the title screen blue) and switch the SNES off, wait some seconds and then turn it on again, the title screen is still blue. Sometimes, I really need to wait a good bunch of time with the SNES off before the game gets back to its original status.
So, is it possible that the SNES has a mechanism that the RAM is still active some seconds after the console is turned off, so that battery games aren't aprupty ended when the main power goes off, therefore, the SNES can still cleanly finish whatever operations it is doing at the time when the button is switched?
The Super NES's RAM at $7E0000-$7FFFFF is DRAM. DRAM doesn't
guarantee remanence past a couple frames, which is why the S-CPU takes a few cycles out of the middle of each scanline to refresh memory. But the value can persist for several seconds, longer if cooler. See
cold boot attack.
Can anyone with a logic analyzer look at the reset and ROM enable lines during power loss to see what happens?