RetroArch runs programs converted into dynamic libraries called libretro cores, using several user interfaces such as command-line interface, a few graphical user interfaces (GUI) optimized for gamepads, several input, audio and video drivers. It is a free and open source frontend emulation application that's modern, powerful and easy-to-use.
Here are some screenshots to illustrate the features and user interface of this application: