I wasn't quite sure what to do with this so I'll post it here.
While looking at some trace logs for NES ghosts 'n goblins at a particular glitch, I was trying to compare FCEUX and Bizhawk to see if there are any differences.
I noticed that FCEUX sometimes hangs and Bizhawk (NESHawk core) always resets as the glitch occurs. I traced this down to how the emulators handle the opcode 02. It crashes FCEUX but Bizhawk manages to get by it and keeps on going:
Bizhawk:
0390 FF ??? A:0B X:01 Y:01 P:35 SP:39 Cy:498589133 TBIC
0393 FF ??? A:B6 X:01 Y:01 P:B4 SP:39 Cy:498589140 NTBI
0396 FF ??? A:5F X:01 Y:01 P:75 SP:39 Cy:498589147 VTBIC
0399 FF ??? A:08 X:01 Y:01 P:35 SP:39 Cy:498589154 TBIC
039C FF ??? A:B0 X:01 Y:01 P:B4 SP:39 Cy:498589161 NTBI
039F FF ??? A:56 X:01 Y:01 P:75 SP:39 Cy:498589168 VTBIC
03A2 02 ??? A:00 X:01 Y:01 P:37 SP:39 Cy:498589175 TBIZC
03A3 80 NOP #$D0 A:00 X:01 Y:01 P:37 SP:39 Cy:498589176 TBIZC
03A5 54 NOP $02,X A:00 X:01 Y:01 P:37 SP:39 Cy:498589178 TBIZC
FCEUX:
i288661349 $0399:FF UNDEFINED A:08 X:01 Y:01 S:39 P:nvUBdIzC
i288661350 $039C:FF UNDEFINED A:B0 X:01 Y:01 S:39 P:NvUBdIzc
i288661351 $039F:FF UNDEFINED A:56 X:01 Y:01 S:39 P:nVUBdIzC
i288661352 $03A2:02 UNDEFINED A:00 X:01 Y:01 S:39 P:nvUBdIZC
i288661353 $03A2:02 UNDEFINED A:00 X:01 Y:01 S:39 P:nvUBdIZC
i288661354 $03A2:02 UNDEFINED A:00 X:01 Y:01 S:39 P:nvUBdIZC
i288661355 $03A2:02 UNDEFINED A:00 X:01 Y:01 S:39 P:nvUBdIZC
i288661356 $03A2:02 UNDEFINED A:00 X:01 Y:01 S:39 P:nvUBdIZC
i288661357 $03A2:02 UNDEFINED A:00 X:01 Y:01 S:39 P:nvUBdIZC
i288661358 $03A2:02 UNDEFINED A:00 X:01 Y:01 S:39 P:nvUBdIZC
i288661359 $03A2:02 UNDEFINED A:00 X:01 Y:01 S:39 P:nvUBdIZC
i288661360 $03A2:02 UNDEFINED A:00 X:01 Y:01 S:39 P:nvUBdIZC
I don't know which is correct, all I can find is this nesdev article which says 02 should "Jam the machine" , leading me to believe FCEUX is correct:
http://nesdev.com/6502_cpu.txt
This only matters for things like ACE and such but it seems like an important distinction.