Introduction to Mednafen

Mednafen is a portable, utilizing OpenGL and SDL, argument(command-line)-driven multi-system emulator.
Mednafen has the ability to remap hotkey functions and virtual system inputs to a keyboard, a joystick, or both simultaneously. Save states are supported, as is real-time game rewinding.
Screen snapshots may be taken, in the PNG file format, at the press of a button. Mednafen can record
audiovisual movies in the QuickTime file format, with several different lossless codecs supported.

The following systems are supported(refer to the emulation module documentation for more details):

Due to the threaded model of emulation used in Mednafen, and limitations of SDL, a joystick is preferred over a keyboard to play games,
as the joystick will have slightly less latency, although the latency differences may not be perceptible to most people.