This was my libretro frontend with integrated tooling to hunt for achievements, just like the tooling found in the Retro Achievements official emulators.
I've abandoned this project in favor of integrating the tooling in RetroArch. However, this code base has some interesting things worth sharing:
src/libretro/BareCore.[h|cpp]
: A C++ class with methods that map 1:1 to the libretro API implemented in libretro cores.src/libretro/Core.[h|cpp]
: A wrap around BareCore, providing higher level functionality such as initializing a core, executing one emulated frame, and destroying the core. It supports multiple concurrent running cores, and uses composition to implement the platform specific code to display video frames and playing audio frames, reading input etc. Ready to use components that work with SDL2 can be found insrc/ImguiLibretro.[h|cpp]
.src/libretro/Components.h
: The components that must be implemented to use with a Core.
A notable missing feature of this frontend is support for RETRO_ENVIRONMENT_SET_HW_RENDER
. PRs are welcome.