Remember that Retroarch is a reference implementation of the Libretro API. It's designed to do everything, and its feature set is large and growing. It's impressive, even, that such a large feature set is so portable, but let's not forget the breadth of the project in general.
The best solution...