Cores

RetroArch is a modular program that runs emulators and games within its framework as if they were 'plugins'.

These plugins are called 'cores', and you need to install them inside RetroArch to be able to use them.

These cores can also be used in other programs that implement the Libretro Application Programming Interface (API).

Both Libretro and RetroArch were made by the same developers, and RetroArch serves to demonstrate Libretro's power and scope.

Online updating/downloading of cores

On most platforms (except game consoles and certain mobile platforms), RetroArch comes with dynamic module loading support.

On these systems, you will be able to install and/or update new cores as they become available on our buildbot.

To access these, go to RetroArch's main menu, select 'Online Updater', and then select 'Update Cores'.

You don't need to download a new version of RetroArch in order to be able to run new or updated cores!

Loading cores

Once a core is installed, you can load a core by going to the Main Menu and selecting 'Load Core'. Every core that has been installed already will be shown in a list.

After you have made your choice, you can then select the 'content' for that core by going to 'Load Content'. The content that is supported by the core will be shown inside the file browser.

Some cores, like 2048, do not require any content in order to work. In this case, after you have loaded the core, 'Start Core' will appear inside the main menu. Select this to start the core directly.

Keeping cores up-to-date

The libretro core library keeps getting bigger over time, and there is always something new that gets added to our servers. So be sure to visit the 'Update Cores' section daily on RetroArch. Cores get added and/or updated constantly!

If you'd like to learn more about libretro, or you are a developer interested in learning how to use it for your own projects, visit the Libretro website here.

Libretro: the technology behind the cores

The Libretro API is a lightweight C programming language-based Application Programming Interface (API) that exposes generic audio, video, and input callbacks. Developers of "cores" such as standalone games, game emulators, media players, and other applications don’t have to worry about writing different video drivers for Direct3D, OpenGL, Vulkan, or worrying about catering to all possible input APIs, sound APIs, gamepads, etc.

When you choose to use the libretro API, your program gets turned into a single library file (called a ‘libretro core’). A frontend that supports the libretro API can then load that library file and run the app. The frontend’s responsibility is to provide all the implementation-specific details. The libretro core’s responsibility is solely to provide the main program.

Any project that is ported to work with this API can be made to run on ANY libretro frontend – now and forever. You maintain a single codebase that only deals with the main program, and you then target one single API (libretro) in order to port your program over to multiple platforms at once. A libretro core written in portable C or C++ can run seamlessly on many platforms with very little or no porting effort. Libretro bindings for other languages are growing increasingly common and comprehensive as well.

Licensing

Libretro is an open specification that is 100% free to implement, with no licensing fees or strings attached. Our reference frontend is RetroArch. The two projects are not the same, and this is reflected in the licensing. RetroArch is licensed via GPLv3 whereas the libretro API is a MIT-licensed API.

Cores

RetroArch/Libretro has over 200 cores, and the list keeps expanding over time. These include game engines, games, multimedia programs and emulators.



Quick Look

News

RetroArch 1.21.0 release

RetroArch 1.21.0 has just been released. Grab it here. Remember that this project exists for the benefit of our users, and that we wouldn’t keep doing this were it not for spreading the love to our users. This project exists because of your support and belief in us to keep going doing great things. We have […]

Continue reading

Introducing ROM Cleaner

Jesse Talavera here again! You may remember me from my work on melonDS DS, McSoftServe, and assorted improvements to RetroArch like microphones and XDelta softpatching. I’ve secretly been developing something brand-new that I’m itching to share with you. Although RetroArch was designed for retro game emulation, every now and then something comes along that breaks […]

Continue reading

Bliss-box 4-play advanced – RetroArch ready : Early bird offer inside

For a limited time you can pre-order yours before production begins. https://bliss-box.net/products/4-play-advanced   Compatibility Works with the existing software Has the same USB ID so that you do not need to reconfigure your software Has the same mapping, and code logic just faster with greater controller support Compatible with 4-Play/GP Cables Advantages over the 4-Play.   […]

Continue reading

LRPS2 – the new PlayStation2 core with a brand new Vulkan LLE renderer

We have a brand new PlayStation2 core, LRPS2. It’s a heavily modified version of PCSX2 custom made for the Libretro API, and it currently runs on Windows, macOS and Linux. The core code is modern and up-to-date unlike the old core and it no longer suffers from the serious drawbacks the older core had. It […]

Continue reading

RetroArch 1.20.0 release

RetroArch 1.20.0 has just been released. Grab it here. Remember that this project exists for the benefit of our users, and that we wouldn’t keep doing this were it not for spreading the love to our users. This project exists because of your support and belief in us to keep going doing great things. We have […]

Continue reading

RetroArch first program to support BlurBuster’s CRT beam racing simulator shader

We are excited to introduce a new shader that significantly improves motion clarity on modern displays, without the typical drawbacks associated with black-frame insertion (BFI) implementations. This shader is the work of Mark Rejhon from BlurBusters (blurbusters.com) and Timothy Lottes (creator of the original FXAA shader and the crt-lottes shaders). It leverages RetroArch’s recently added […]

Continue reading

PlayStation2 and the CRT TV

The PlayStation2 is a system designed almost entirely from the ground up for use with CRT TVs. Like any other game console built around analog video output, it is not designed around pixels or resolution, but scanlines and timing. Yes, there is a way to attach a VGA monitor for the official PS2 Linux toolkit […]

Continue reading

RetroArch 1.19.1 release

RetroArch 1.19.1 has just been released. Grab it here. Remember that this project exists for the benefit of our users, and that we wouldn’t keep doing this were it not for spreading the love to our users. This project exists because of your support and belief in us to keep going doing great things. We […]

Continue reading