Libretro is a simple but powerful development interface that allows for the easy creation of emulators, games and multimedia applications that can plug straight into any libretro-compatible frontend. This development interface is open to others so that they can run these pluggable emulator and game cores also in their own programs or devices.

With libretro, you can make cross-platform applications that can use rich features such as OpenGL, cross-platform camera support, location support, and more in the future.


RetroArch is the official reference frontend for the libretro API.

What is it most commonly used for ?

RetroArch is most popularly known for being a program with which you can play many emulators and games, which have all been customized and tailor-ported to the libretro API.

It is designed to be fast, lightweight, and portable. It tries to be on the cutting edge of technology in terms of technolog supported as well as trying to be as backwards compatible as possible, a paradoxical goal if any. It has features few other dedicated games / emulators have, such as:

  • Real-time rewinding and GGPO-style (or GGPO-like) netplay
    • Libretro’s serialization support allows features such as rollback based netplay to be easily implementable. It also allows you to rewind your games in real-time.
  • Multi-pass shaders (up to 8-pass)
    • It was one of the first programs out of the gates to have frontend shader support to begin with. RetroArch has its own shader spec that is being extensively used and implemented by various other programs unrelated to RetroArch/libretro.
    • It is also one of the only programs of its kind that supports up to 16 shader passes along with up to 128 shader parameters supported. You can find many impressive shaders that can enhance the in-game look of a game.
    • Game aware shading
  • Remote networked sound support
  • A built-in GUI/OSD system
    • RetroArch can change its entire appearance with a few button clicks. It can turn into a low-resolution but functional UI (RGUI) into a full-fledged XMB clone, and so on.
  • Impeccable Linux support
    • RetroArch was first out of the gates in many respects with support for Wayland, DRM/KMS, and many other graphics technologies which are still not standard in many Linux programs. It is designed to be as dependency-less as possible while also making it possible for custom-made versions of RetroArch to be made with specific support for several new APIs.
    • Unlike many other programs, Linux is not treated as second-class citizen but as first-class citizen.
  • Impeccable backwards compatibility
    • How many other Mac programs support PowerPCs, 32bit and 64bit Intel Macs all at the same time ?
    • Libretro/RetroArch keeps platforms alive with new content long after they have passed their expiration date. See PlayStation3, PSP, Wii, Gamecube, etc. The list goes on.
  • A cross-platform game console
    • The goal for Retroarch is to have a game console platform unrestrained by platform boundaries and architecture differences. To this end, it strives to support as many platforms as possible.

And more…

What platforms does it support?

RetroArch sets the standard on cross-platform portability right now.

  • Linux (x86 and x86_64)
  • Windows (32bit/64bit)
  • Mac OSX (Intel/PowerPC)
  • PlayStation Portable (PSP)
  • PlayStation Vita/TV
  • Gamecube
  • Wii
  • Nintendo 3DS
  • Raspberry Pi (and various other ARM hardware through Lakka)
  • OpenPandora
  • Android
  • Blackberry (10/Playbook)
  • iOS
  • Javascript (ASM.js – Enscripten)
  • Steam