rainwarrior wrote:VirtuaNSF doesn't support illegal opcodes and it's one of the most popular NSF players.
What does it do when an unofficial opcode is executed, so that it can be detected?
I would bet there's more than one popular NES emulator on more obscure targets (e.g. video game consoles, cell phones) that doesn't support them.
If a publisher has the resources to become a licensed developer for a video game console, it probably has the resources to improve an emulator to support the opcodes that nestest tests. For cell phones, I'm not aware of any that ship with a gamepad, and I had no end of problems trying to control a platformer with a virtual gamepad on my Nexus 7 tablet. Xperia Play is outdated and discontinued.
I'm not too concerned about Windows users, but even still, when a ROM doesn't run, especially a homebrew, users are very likely to blame the ROM before they blame their emulator.
To continue the web JavaScript analogy: "object detection" and other forms of behavior detection are best practice there. A game that uses unofficial opcodes for speed could show a copyright notice for a couple seconds while testing the behavior of the opcodes it uses, but I grant that that doesn't work for space.
Sometimes you don't have much of a choice on which emulator to use, and a lot of times the choice is made for other reasons (nicest interface) than accuracy (why aren't we all playing games on nintendulator?).
Someone who receives a bug report about a game not running on a particular emulator could have the user try running nestest on the same emulator and reporting the bug to the emulator's developer.
But at some point you have to give up. There are emulators that can't run a very simple UNROM, as
I discovered in 2006 when I was developing an e-book reader to run on a DVD player.