Why is it needed to hold reset when powering off the NES?
Solution 1:
After Googling for a while, I unfortunately couldn't turn up any specific answer. The only thing we know for certain, is that holding RESET was required for pretty much every game that offered a battery-backed saving mechanism, as opposed to password-based savegames.
The answers I found included:
- Holding RESET allowed the NES to finish saving data before it is powered off.
- Holding RESET would send both the console and the cartridge into a low-power state, that would prevent power surges from damaging the battery when powering off (unlikely)
- When powering off, the NES' CPU would experience power spikes that potentially could write data at random locations, including the battery-powered registers of the cartridge, overwriting and corrupting savegames in the process. Holding RESET would send the CPU into a low-power state which would prevent any power surge from overwriting any register.
The reason why this was required on the NES and not on newer consoles, was because the NES was never designed for saving data in the first place. The first game to have supported saving onto the cartridge directly was The Legend of Zelda which was released 3 years after the original Famicom, and 1 year after the NES. Back then, data loss didn't matter because data wasn't supposed to be persistent anyways.
Solution 2:
I don't own a NES or know the reason for this message for certain, but from an electronics perspective the reason is fairly obvious.
Yes, the reason is to prevent corruption of game saves but no, it is not because of "power spikes" or switch bouncing as mentioned in the other answer and comments.
The first thing to know is that there is no such thing as an infinitely fast power supply. The power supply stabilizes and buffers its output (and the circuit itself does more buffering) and that means the output voltage will ramp up within a certain time on powering up. For the same reason, the voltage will not immediately go to zero on powering down.
The second thing to know is that electronic devices such as the CPU have a specified voltage range within which they work. They can't do anything when the voltage is lower than certain threshold voltages for the transistors. That means there is still a voltage range between "doing nothing" and "working properly" where it will work unreliably.
Now on power-up, there are trivial circuits that will hold the reset line for a little while so that the CPU comes out of reset only after power is good. There are a little more involved circuits (brown-out detectors) that can generate a reset anytime the supply voltage drops below a threshold, not just on powering up. Obviously that wasn't built into the NES because it costs money and isn't really needed. Sure, the NES may glitch and crash on powering down, but so what? The user probably won't notice and certainly won't care because it has no lasting effect.
That changes when non-volatile memories are involved. The CPU may continue to execute code in brown-out conditions but errors may creep in. For example, when it writes to memory it might write to the wrong location and that location might just be within your precious save game, corrupting it.
Since the NES lacks one, the game manufacturers could have included a brown-out detector on their own module that write protects their memory. The obvious cheaper solution is to just tell the gamer to hold the reset button while powering down. That prevents the CPU from doing anything at all, brown-out or not, and so also prevents it from drunkenly walking all over your saves.
Solution 3:
http://creek.doorblog.jp/archives/51212263.html
元々バッテリバックアップを前提に作られていないファミコンでは、 バッテリバックアップの仕様上、電池やSRAMに通電している時に電源を切ると 電源ノイズが発生して電池からSRAMへの電力供給が不安定になったりする。結果データが一部書き換わってしまうことがある。
The Family Computer (NES) was not designed wtih SRAM backup in mind. Therefore, it was challenging to protect the SRAM from noise or fluctuation in power supply, which might alter the state of SRAM. Holding down the RESET button isolates the SRAM, in fact, the whole game cartridge, from power supply by design. This significantly reduces the electrical noise due to powering the system off by hardware switch from reaching the SRAM encased in the game cartridge.