Skip to content

N7Alpha/UnrealLibretro

Repository files navigation

UnrealLibretro

License: MIT Discord CI from to

UnrealLibretro is a Libretro Frontend for Unreal Engine. It is a Blueprint compatible library that lets you run emulators within Unreal Engine. More Technically it allows you to run Libretro Cores.

Compatibility

Information about platform and Libretro Core compatibility can be found here.

Installing in your Project

Simple method

Download the latest release Extract the archive and place it in your project's plugins folder.

Using git

Clone the repo into your Unreal Engine project's Plugin folder.

Run the associated setup script for your current platform. If Windows double-click the setup.cmd

Then in the Windows file explorer navigate to the root directory of your project and right click the .uproject file then select "Generate Visual Studio project files" in the context menu.

Integrating into your Project

Download a Libretro Core

You can download Libretro Cores directly from the Unreal Editor. If that isn't working try accessing downloading them from the buildbot

Download a ROM

You know and I know you know where to get these. Once you have the one you want place it into your MyROMs folder.

(Sometimes required) Download content folder

Some cores require that you also provide a content folder. PPSSPP is one example. Mainly this just involves taking a folder from a release of the emulator and moving it into the UnrealLibretro/System directory. There might be weirder ones. You can probably just find them by googling or searching the Libretro docs.

In the Unreal Editor

  • Restart your project if you performed the setup process while the Unreal Editor was running
  • Enable "Show Plugin Content" from the Content Browser options
  • Navigate to UnrealLibretro's content folder in the Unreal Editor Content Browser, and open the example map LibretroMap
  • Click on an actor and in the LibretroCoreInstance actor component set the Libretro Core first then the ROM

Contributing

Mainly what needs to be worked on is Libretro Core compatibility and probably fleshing out ULibretroCoreInstance to incorporate more of the API libretro.h exposes. More information about contributing can be found here.

Contact

You should post an issue if you have a problem or discover a bug. If that is too intimidating or for more basic troubleshooting you can post in the Discord.

License

This project is licensed under the MIT License - see the LICENSE file for details