Understanding relationship between Lakka, libretro, etc

Hello,

I’m a tech savvy long-time linux user and software developer. I can usually get my head around tech things pretty quickly.

However, I remain uncertain about the Lakka/RetroArch/libretro relationship, and thus I’m not sure which libretro.com subfoum I should use for posting my questions (or solutions). Perhaps others new to Lakka/RetroArch/libretro would benefit from a simple yet complete description of how they are related. This is only a starting point for such a description.

If I understand correctly (and please correct me if I don’t):

Lakka is a linux distribution based on OpenELEC (another linux distro) Lakka seems to focus on small modern devices like Raspberry Pi Lakka remains suitable for traditional PC/laptop hardware

RetroArch is the gui front-end we see upon launching Lakka. RetroArch has nothing to do with ArchLinux, a linux distro. RetroArch itself is available as a package that can be installed on various other (Debian-based?) linux distros. [ul] Perhaps there are reasons why a person would want to install such a Debian-based linux distro, then install the RetroArch package? Perhaps those reasons include unique hardware configurations not supported ‘out of the box’ by Lakka / OpenELEC? Perhaps there are other reasons? [/ul]

libretro is the underlying system utilized by RetroArch <by developers to do something with emulators > The home page of this very site - www.libretro.com - has a good starting point.However, only after looking for sticky posts in various sub-forums that explain what a new-to-Lakka/RetroArch/libretro-user might want to know, I accidentally visited “home”.

Is that basically it? Corrections? Additions?

I’m particularly interested in why a person might want to chose Lakka over some other linux distro (and subsequently installing RetroArch on that other distro).

Yeah, that’s pretty much it.

Lakka is stripped down and preconfigured for a lot of different embedded platforms as compared with something like Raspbian and, as such, runs lean and mean on those platforms. OTOH, a person might want a more full-featured Linux environment, and in that case, they’re better off building/installing RetroArch within their distro of choice (I fall into the second camp and have never used Lakka, personally).

libretro is an API that was developed originally as a universal abstraction for emulators but works well for a variety of other purposes, including game engines, etc. Twinaphex, the lead dev, is particularly interested in expanding the scope beyond emulators for a number of reasons.

RetroArch is the reference frontend for the libretro API but there are a number of others floating around, including ArcanFE, Minir and EmuVR. There’s also some cross-pollination between libretro and OpenEmu on OSX and Bizhawk on Windows, though they don’t use our cores directly.

Yes, libretro ensures the clean separation between the system specific logic of emulators and the frontends which take care of display, inputs, saving, etc. If you’re tired of configuring 20 emulators, if you wonder why display filters are not factorized among emulators, then libretro is for you.

Since you’re an advanced linux user, I suggest you to setup directly RetroArch by yourself.

If you happen to build RetroArch and the libretro cores on an ARM board, and especially if you have to patch the kernel to add for example xbox one controller support, you may be interested in using lakka to cross compila all this and maintain your patchset and packages in a single git repo.