Since Famicoms and the toploader NES(?) don't connect the reset line to PPU, it would be useful, for compatibility testing, to have an emulator where the reset button could be held down (and while it is held down the PPU would keep running).
Does an emulator exist that allows this?
All Famiclones I have personally tested are like this as well. This would indeed be an interesting aspect to emulate.
But how would the emulator know when in the frame to release the CPU reset?
Maybe the user could specify the scanline, just like we can select the scanline for which we want to see the PPU state in FCEUX.
Is the button/key event necessarily in sync with the frame? Having an option to randomize the timing probably wouldn't be terrible either, given that's more or less what would happen when pressing the reset button on the real deal.
I don't really see the point of randomizing it, at least not for a regular user who wants to just play games that work. For someone who needs to do debugging, though, if your debugger let you alter the input/reset states during a breakpoint, this would let you test the effect of these things at any point. Maybe if you had a virtual gamepad UI where instead of taking input from the keyboard/joypad you could toggle buttons and reset on and off by clicking them?
thefox wrote:
Is the button/key event necessarily in sync with the frame? Having an option to randomize the timing probably wouldn't be terrible either, given that's more or less what would happen when pressing the reset button on the real deal.
Yes, that would be the best way to simulate what a real console would do, but for development purposes you're probably more interested in the effects of interrupting your program at specific times.
If I was implementing this I would probably randomize the scanline by default, but would also allow the user to select a specific point in the frame.
rainwarrior wrote:
Maybe if you had a virtual gamepad UI where instead of taking input from the keyboard/joypad you could toggle buttons and reset on and off by clicking them?
I believe that the Stella emulator (Atari 2600) has something like this in the debugger:
http://stella.sourceforge.net/docs/debugger.html (search for "I/O Tab" to see a screenshot)
tokumaru wrote:
If I was implementing this I would probably randomize the scanline by default, but would also allow the user to select a specific point in the frame.
Yeah I agree.
Somewhat related, wasn't there some CodeMasters game that detects soft reset and does a fade-out or something similar before continuing on with the program? Are there other examples of such games?
Soft reset detection is just reading two bytes from RAM to see if they match what your program put there when it started. Perhaps unlicensed games using a negative voltage stun circuit had to be smarter about that in order to not overload the CIC.
thefox wrote:
Somewhat related, wasn't there some CodeMasters game that detects soft reset and does a fade-out or something similar before continuing on with the program? Are there other examples of such games?
The Genesis X-Men game infamously required you to press reset to reboot a self-destructing computer before it explodes.
rainwarrior wrote:
The Genesis X-Men game infamously required you to press reset to reboot a self-destructing computer before it explodes.
Which makes the game impossible to complete on a Nomad.
This game is pretty good... another unusual thing it does is throw you right into the first level of the game as soon as you turn the console on, with a random character. Not even the SEGA logo appears until this level is completed (the "PRODUCED BY OR UNDER LICENSE FROM SEGA ENTERPRISES LTD" probably still shows on some consoles though, since that's in the BIOS), when you can also select another character.
That's X-Men 2.
With the Mega Drive it's easy though since the VDP doesn't act weirdly on reset and it's easy to detect reset by looking at the I/O ports (they have a specific value on power-on). With the NES it's more tricky.