[quote name='Anthony Serrano' timestamp='1302250039' post='4795867']
It's not a major issue with the cartridge-based systems, because they don't generally use flash - normally they use battery-backed SRAM. In most such systems, the SRAM used is accessed as fast as main system RAM is, so saving takes no noticeable time, and turning the system off mid-write is for all intents and purposes impossible. The main exceptions are the Nintendo DS and the Nintendo 64 (though there were a small handful of Genesis/Mega Drive games that used EEPROM), where EEPROM and flash memory are the most common form of non-volatile storage, although some N64 games used battery-backed SRAM. Even then, however, most cartridges that save data, regardless of console, maintain multiple redundant copies of save data to reduce corruption, and in the case of flash memory, they can use smaller quantities of flash with smaller block sizes more suited to a specific game's needs.
I assume you are referring to recent consoles here, because it was definitely a problem on the Gameboy Color. You can easily duplicate Pokemon in Gold/Silver by deliberately powering off in the middle of a save. Presumably, there was no redundancy due to cost issues back then.
[/quote]
A very small number of cartridge games, ones on systems with lower memory bandwidth that have large amounts of save data, can take a noticeable amount of time to save even if using SRAM.
Pokemon Gold/Silver save data takes up 32KB, which is extremely large for an SRAM-using game. On the 8 MHz Z-80 used in the GBC, it takes something like 160 ms at minimum to save that much data, likely longer (since that length of time means that, for example, the vertical blank handler will be called at least 9 times during saving) - and because the save file is so large, there's relatively little room for redundancy (SRAM in cartridges was relatively expensive, so 32 KB of SRAM was then the largest practical amount).
Compare with a game like the original Final Fantasy on the NES. This game uses 2 KB of save data, which on a 1.79 MHz 6502 takes about 14 ms to save. Because saving takes only 14 ms, saving actually takes less time than displaying a message not to turn the power off (since one frame is 16.7 ms). In fact, most NES games that save data have save files of roughly 2 KB (a notable exception being the various Koei strategy titles which often have 16 KB save files that take about 110 ms to write).
On the SNES, even the ludicrously large 32 KB save file used by games like Pokemon Gold and Silver would be written in under 13 ms by making use of the system's DMA hardware (without using DMA, it would take roughly 82 ms).
As a first approximation, the NES would be able to save 2.4 KB in the span of one frame (16.7 ms), the Master System about 1-2 KB, the Game Boy about 2 KB, the Game Boy Color 4 KB, the Genesis about 6-7 KB, the SNES about 6.6 KB without DMA or 44.6 KB using DMA, and the Game Boy Advance (at least those GBA games that used SRAM instead of EEPROM or flash) about 4 KB (the NES and SNES figures are more precise than the others because I'm more intimately familiar with their CPU timings). All of these, with the exception of the GBA, are high enough that a typical save file on that platform is written in less than one frame (i.e. practically uninterruptable), and only a small handful of data-intensive games (like Koei strategy titles or Pokemon games) will have save times long enough as to be realistically interruptable (generally significantly higher than 50 ms). Even on the GBA, the typical save file is roughly 8-10 KB in size, which gives a save time of approximately 30-40 ms - still short enough that interrupting a save is practically impossible. For comparison, it takes roughly 3 seconds to write a single block (8 KB) to a PS1 memory card.
Double checking my sources, actually redundant copies are fairly rare - most games have no more redundancy than a simple checksum for validation, though a few games do indeed maintain redundant copies.