Mednafen is a portable, utilizing OpenGL and SDL, argument(command-line)-driven multi-system emulator with many advanced features. The Atari Lynx, GameBoy (Color), GameBoy Advance, NES, PC Engine(TurboGrafx 16), SuperGrafx, Neo Geo Pocket (Color), PC-FX, and WonderSwan (Color) are emulated.
Mednafen is an acronym for "My Emulator Doesn't Need A Frickin' Excellent Name." 
While any game is running in Mednafen, press ALT+SHIFT+1. This will prompt you to set and confirm all of your inputs for player 1. To set up player 2's controls, press ALT+SHIFT+2 and repeat the process.  This will commit the mapped inputs for the current game's platform.
Alternatively, you can edit Mednafen's config file in a text editor. Open ~/.mednafen/mednafen.cfg. Scroll down to or search for the platform (e.g: ";nes", ";sms", ";gba"), and set the desired keycodes for your inputs.
;nes, Port 1, Gamepad: A nes.input.port1.gamepad.a keyboard 122
Reassigning Save State Keys
The number keys are used to select save states. If you have 1 and 2 mapped to your start buttons and you want to disable the save state messages that appear when you press them, you will need to remap the save state keys. Scroll down in the mednafen.cfg file to ";Save" and make the following changes:
;Save state 1 select command.1 keyboard 0 ;Save state 2 select command.2 keyboard 0
Now you can map player 1 start to the 1 key, and player 2 start to the 2 key, without conflicting with the save state selector.
If you are having sound issues set the following in either the ini or as commandline argument
Exit on ESC
ESC exits the emulator by default.
The help menu is accessible at any time by pressing F1.
- Debugger is available via ALT-D
- ALT-1 for CPU Debugger
- ALT-2 for Graphics Viewer
- ALT-3 for Memory Editor
- ALT-4 for Log View (minimal system support)
- Gameshark Cheat Engine is available via ALT-C
- ALT-T to toggle cheats on and off
- mednafen.sourceforge.net - Mednafen homepage