Libretro is an API designed for simple abstraction of the functions inherent in retro-style, 2D games. Any project that conforms to the API can then be hooked into any libretro frontend for execution. RetroArch is currently the most common and well-known frontend, and it is available on Windows, Mac OSX, Linux, Android, Wii, Xbox 1, Xbox 360, PS3, and more. Other platform-specific frontends are currently in development, including native integration with the popular HTPC platform XBMC.
Who Uses Libretro?
While the most common use case for libretro has been console emulation, it is equally suited as a platform for almost any 2D game. For example, the NX Engine used in the popular freeware game Cave Story has been successfully ported to libretro, and the new freeware game Dinothawr supports libretro natively.
Why Should Developers Target Libretro?
Software that targets the libretro API instantly gains access to all of the platforms that have libretro frontends available. That means your game is immediately available to those platforms’ users without worrying about input/audio/video drivers, compatibility issues or the myriad quirks of the underlying host system(s). Likewise, there’s no need to write specialized GUI code for each platform or to use esoteric–and often buggy–cross-platform toolkits, like Qt and GTK+.
Furthermore, once your game supports libretro, all of the libretro frontends’ other features come along for free, such as RetroArch’s real-time rewind, lag-concealing netplay, lossless video recording/streaming and cutting-edge post-processing shader support.
Perhaps best of all: libretro is an open specification that is 100% free to implement, with no licensing fees or hidden strings attached.
If you’d like to learn more about libretro, leave us a comment or chat with us on IRC at #retroarch on Freenode.