BigEd wrote:
What's really being asked is to detect whether or not you're running in emulation, which means arranging to do something so obscure that the emulator writers have not yet modelled it.
If I understand this properly, what we want is a method that will let the emulator work but cause actual hardware to fail. IOW, success may lie with finding some quirk emulator writers have not yet modelled, and causing the game to
rely on that unmodelled behavior! But the success could be short-lived if the emulators are constantly being improved. (If in future they emulate the quirk then the game will think it's real hardware, and stop.)
There's one quirk not addressed in the blog Ed linked to, but I don't know if it's applicable. It's discussed here on 6502.org:
A taken branch delays interrupt handling by one instructionThe blog is Beeb-related, and the OP is interested in NES. Are they the same CPU? (The topic I linked to seems to be for NMOS 6502.) Maybe this delayed interrupt thing ought to be added to emulator writers' to-do list!
-- Jeff
_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html