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.
Windows only for now. More information about platform and Libretro Core compatibility can be found here.
Download the latest release Extract the archive and place it in your project's plugins folder.
Clone the repo into your Unreal Engine project's Plugin folder.
Open a MinGW64 terminal and navigate to the root directory of this plugin then run this command
./setup.sh
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.
You can download a Libretro Core from here and place it into the MyCores folder.
You know and I know you know where to get these. Once you have the one you want place it into your MyROMs 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.
Restart your project if you performed the setup while the Unreal Editor was running. Navigate to UnrealLibretro's content folder in the Unreal Editor content browser, and open the example map LibretroWorld. Exploring the objects in this folder should give you an idea of how to use the API.
Try to follow the Unreal Engine coding standards at least in the Unreal based source files. 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. I'm mainly just developing this for a project I'm working on myself, so there also might be some oversights in the API that should be rectified. More information about contributing can be found here.
You should post an issue if you have a problem or discover a bug. If you have general questions about the project or want to make a big contribution and you need to talk through the project structure with me you can email me at [email protected]
This project is licensed under the MIT License - see the LICENSE file for details