I use SNES9X for snes, mGBA for GBA, mednafen for ps1, bgb for gameboy, dolphin for gc/wii, m64p for N64, and PCSX2 for PS2. I try to keep it fairly organized in my emulation folders at least.
That's a good list, but remember you can just use Retroarch and use all of those emulators within one program. BSNES/Higan is best if you care about accuracy, SNES9X is acceptable for casual playing.
Don't forget Bizhawk, which also includes many cores for different emulators but is designed for re-recording to make tool-assisted speedruns. Since the guys at TASmovies want the accuracy to be such that the recordings can be played back perfectly on actual hardware, it's a good sign that Bizhawk's cores are accurate.
Oh, and if you buy a cheap Chinese Android TV box then you can run Retroarch with many of the emulators at full speed.
Oh, and don't touch ZSNES with a ten-foot pole.