outdated review; try fce ultra too
TuxNES is a good NES emulator for Linux86 and FreeBSD/x86 systems (because it uses dynamic recompilation, it'd need massive changes to work on any other architecture). It's also a disassembler: give it a command-line switch, and every 6502 instruction executed is disassembled to stdout. It can take screenshots of the NES's 256x240, 53-color display. It currently supports .nes and .nes.gz formats and will soon support UNIF. Not only can it render to X11, it can also render to GGI and even the W Window System used (for example) on some embedded devices.
TuxNES supports most popular board types reasonably well. Once, I submitted a bug report to TuxNES maintainer The Mighty Mike Master that the emulator wasn't loading 16 KB MMC3-based ROMs correctly; the mapper code inherited from NEStra assumed a 32 KB or larger ROM, screwing up the address map and causing a lockup immediately after pulling the reset vector.
There are still a few bugs in TuxNES; for instance, it segfaults on a demo I wrote that displayed 64 bouncing soda cans.
All in all, I give TuxNES three stars out of four (where 4 is the real gray box and 1 is NESticle), almost on the same level as LoopyNES.