SourMesen / Mesen

Mesen is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++ and C#
https://www.mesen.ca
GNU General Public License v3.0
1.26k stars 320 forks source link

An option to have the emulator continue running when it encounters an invalid Opcode. #815

Open ghost opened 4 years ago

ghost commented 4 years ago

That way people can successfully perform the "Engage Ridly" glitch in Metroid.

SourMesen commented 4 years ago

This is already the case since last november in this commit: 8d1f66b2d31840a48446bd8fb72749aa73c81a93 If the cpu "crashes", it will just keep loading the next instruction and execute it.

Re: the Metroid cheat, as far as I know, it behaves correctly? At the moment it causes the game to reset you to the title screen (presumably due to some unexpected error handler in the game's code, maybe, or just random luck), which is one of the behaviors described in the thread I linked in #622. The other behavior seen on hardware is a freeze on a black screen (which is what you would get most times if Mesen stopped executing when it hits one of the "cpu crash" instructions.