Memblers wrote:
calima wrote:
I wonder how that happens, AFAIK NES cannot separate a cold boot from warm reset in code.
Sure it can, you can check variables in RAM and if it's set it's a reset, if not it's a power-on and then you set that variable. I'm sure several games do that, I haven't played it in years but IIRC Final Fantasy was one, and it would skip the intro when you reset it. When using battery-backed RAM, you pretty much have to do something like this to know whether to initialize the RAM or not.
I'd guess in this case the games were using the same variable to do a similar kind of check and that's causing the weird stuff to happen.
Yes, SMB and Tennis both try to detect a reset this way, and this trick works because they used an identical check for both games. (In SMB it was intentionally used as a way to continue from the world you were on after reset.)
It's not uncommon for games to try and detect a reset and preserve stuff across reset. My own game does. I think it mostly goes unnoticed because few people would try to reset their game and continue. The Genesis game X-Men was infamous for
requiring a reset to complete the game.
By the way, if you have a CopyNES installed, the older versions of its BIOS unfortunately initialize RAM and break this feature of the NES. You can get a newer BIOS to fix the problem though:
thread /
new BIOS