The lower-powered game consoles have all been well emulated by this point. Basically any living room console older than the year 2000, and all handhelds before the current generation (before 2011 or so). Thanks to the authors of those emulators, much of their work is open-source at this point too. That’s what enabled OpenEmu to come along and put a front-end on the emulation cores of a dozen or so different emulators.
OpenEmu is a ROM library management and emulator front-end application. It does for ROMs what iTunes does for other media: basically it makes your game collection the focus, and tries to make the actual emulation seamless and transparent to the user. You can even keep your ROMs in zip format; OpenEmu will handle decompression. It will also supply cover art from the original game boxes, and correctly identify the game titles and metadata. Like iTunes, though, when you import a game into your “library” it will create a copy in its own directory: ~/Library/Application Support/OpenEmu/Game Library. This is configurable, but it’s worth noting, because you might inadvertently double the storage space used by your ROM collection by adding it to the OpenEmu library.
Graphics and sound are perfect, for all of the cores I tried.
GamePad support just works. It’s very impressively done, actually. NES four-player support is possible, SNES 8-player support. Even 4-player GBA and DS support is listed, although I wonder how it is implemented.
The software is not perfect, though. There’s a crash bug that happens often when opening a ROM for the first time. Net play is not implemented, so multiplayer is strictly local for now. And it looks like the project is hesitant to add emulation cores for consoles like Wii, Gamecube, PS2, PS1, N64, and Saturn, despite the quality open-source emulation cores that exist for each of those systems. There is currently an “experimental” build that incorporates Nintendo 64, PlayStation, and arcade systems.
OpenEmu is the future of emulation and of classic game preservation.