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

RetroArch 1.19.0 release

RetroArch 1.19.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 […]

Continue reading

RetroArch on Apple App Store

RetroArch is now available on the Apple App Store. It is currently available for iPhone, iPad and tvOS. A macOS version on the Apple App Store is planned but no ETA. A new RetroArch version is also coming out soon.

Continue reading

Lakka – Raspberry Pi gets 240p Composite Video

Special community version of Lakka has been released! Raspberry Pi gets 240p Composite Video output support! Read more about it in this article here.

Continue reading

Introducing McSoftServe

Hi there, everybody! I’m Jesse Talavera, a libretro contributor. I’m primarily known in this community as the author of melonDS DS, but I’ve got some other exciting projects in the oven as well. Today I’d like to share with you something new that I’ve been working on for some time. Introducing McSoftServe, an emulator for […]

Continue reading

Vircon32 joins libretro/RetroArch

Written by: Carra Hi! I’m Carra and I created Vircon32, a new game console. My Vircon32 core was recently integrated into RetroArch, so I thought this could be a good opportunity to talk about both the console itself and my overall experience creating a Libretro core. What is Vircon32? Vircon32 is a 32-bit virtual console […]

Continue reading

Geolith emulator ported to libretro

We have the pleasure of announcing a great new emulator core, the Neo Geo emulator Geolith. The upstream author of the Jolly Good Emulation project broke out this core and ported it to libretro to make it available to as many users as possible, and we’re happy to welcome it into the fold. Historically, Neo […]

Continue reading

RetroArch 1.17 – new netplay features

RetroArch 1.17 expands Netplay to support playing multiplayer games that were originally played on two or more separate consoles or computers connected together. This is currently supported by two cores: DOSBox Pure and gpSP. In DOSBox Pure it is now possible to play DOS and early Windows multiplayer games that used IPX, Ethernet or a […]

Continue reading