Saturday, May 22, 2021

Friday, May 7, 2021

Should you use Retropie, Lakka or RetroArch on your Raspberry Pi?

When talking about emulation on Raspberry Pi, there are four options:

  • RetroPie and RetroPie-inspired systems (Batocera and Recalbox)
  • Lakka
  • RetroArch on top of Raspberry Pi OS (I've finally decided to split Lakka and RetroArch)
  • Direct emulation (inline or in LXDE/RPD). This will be only briefly discussed in this article as it would otherwise almost need one post per emulator.

Both Lakka and RetroPie have an integrated system and an in-system installation solutions and are really different from each other. This gives its uses to both of them.

While RetroPie focuses on customization and eye candy, Lakka prefers a very simple and clear interface and a thinner layer than emulationstation.  Lakka is also more compatible with drivers like OpenGL.

RetroArch gives a quite complete answer to the uncompleteness of Lakka due to the fact you will truly have access to the OS therefore will be able to install about everything that's not covered in Lakka and execute it via shell scripts.

Retroarch raspberry Pi Raspbian Raspberry Pi OS 32 bits
RetroArch on Raspberry Pi OS 32 Bits
with bash core installed
RetroPie with Wine
emulator entry installed


Performance

Lakka uses a LibreElec base which is faster than RetroPie. Don't get me wrong, RetroPie is still faster than a Raspberry Pi Desktop base but so far:
  • LibreElec is faster
  • Lakka uses OpenGL so is faster than Emulationstation with legacy driver
  • Emulationstation doesn't support KMS on older Pi's (won't start at all)
On newer Pi's, Lakka wins by a short hand on RetroPie. On older Pi's Lakka is just the emulator to use for performance. It's lighter and supports all the graphic drivers including dispmanx for older devices and OpenGL for Pi 3. 
 
However on Lakka since it isn't possible to do scripts, you will not have any control on your CPU governor which can make you sometimes miss an opportunity of using your Pi at its full potential. You can still overclock Lakka in config.txt.  RetroArch being almost the same as Lakka but on top of a Raspberry Pi OS, it scores the same but it has the scripting advantages: you can customize it with bash script and you can overclock or change governor inline before starting the gamebrary.

Scripting and customization

RetroPie wins here, although RetroArch scores very well. Lakka is the last (and by far) of this ranking.

Here Lakka is really far behind because the only way to go to console is through SSH. It doesn't execute shell scripts from its menu basically meaning that you will never be able to create a custom emulator. Actually, only RetroArch cores will run on Lakka which restricts its list of emulators.

RetroArch on top of Raspberry Pi OS defends itself not too bad: it has the same features as Lakka, you can add bash script core to it: https://github.com/SwedishGojira/libretro-bash-launcher

The bash core on RetroArch

This core is pretty easy to install and will allow you to run any linux executable from RetroArch.
This bash core has a good coverage:  you can actually install a xserver on your system if you are in RetroArch and run X based games like all the Wine games and VCMI. The only game that I haven't successfully started so far on bash core is Diablo2-arm. But Diablo2-arm is also very bitchy to start in RetroPie. 
Since RetroArch has a KMS support you won't need to use tvservice or xdotool. You can install an xserver following my new guide: https://thepigamer.blogspot.com/2021/06/making-xwindow-wine-and-box86-work.html

You can also try to install that core on Lakka but you won't be able to run apt-get in Lakka. It means you will not be able to install for example xserver on Lakka. This brings an end to hopes of customizing Lakka further.

DOSBox

I would give it to RetroPie due to easeness of use and customization options.
Indeed, RetroPie will allow you to start a DOSBox standalone quite easy, directly start .exe files and allow .sh files while RetroArch and Lakka only allow .conf and .exe files without the bash script core.

You will also probably meet heavy DOSBox mapper issues when first starting in RetroArch. Think about making saves of your mapper file so you can use them in RetroArch/DOSBox.
You might also want to install a standalone DOSBox in RetroArch and install the bash script core to be able to run shell scripts for DOSBox games: https://github.com/SwedishGojira/libretro-bash-launcher

Other than that, both solutions perform are pretty similar. However Lakka will only follow .conf files or DOS executables leaving shell out of scope. This can annoy you if you like the "perfect DOSBox execution". Dirty games like Ultima 7 who don't have a "quit game" option and which you will quit by interrupting (in current case ALT+X quits Ultima 7 and breaks the running batches) will stay in DOSBox and will not automatically quit to Lakka.

Easeness of setup

For this one, Lakka wins easily:  you just install it from PINN and its done. If you want to install it in-system, download the package and install it this way. Everything works and all the cores are there. 

In RetroPie, you will have to setup your keyboard and then crawl RetroPie-Setup with all the packages you will want to install. Also the configuration options of RetroPie are sometimes unclear and Lakka has a better setup interface although you are more limited in the possible settings. If you try to install RetroPie on top of Raspbian, it will be even worse. You will have to pull a setup script from its git and run it during hours. And in the end, RetroPie will notify you that you have to let your Fake KMS driver and revert to legacy driver in order to get it to start. 

If you are installing RetroArch over Raspberry Pi OS, you will unfortunately have to download your cores manually from https://buildbot.libretro.com/nightly/linux/armhf/latest/. All of them will have to be unzipped and placed in /usr/lib/arm-linux-gnueabihf/libretro/

Useful tip: unzip '*.zip' 

Also note that there are two ways to install RetroArch: with apt-get and by compiling. The apt-get version is quite buggy but works and does what is asked from it.

Finally in RetroArch, you have chances that your keyboard won't be working. In that case you should search for "input_driver" in ~/.config/retroarch/retroarch.cfg and set a working config. I used "udev" but you might try "x" or "sdl2" (the latter didn't work on my machine). 

To conclude, this ranking is a bit odd: Lakka is easier than RetroPie which is easier than RetroArch.

Easeness of use

I would say RetroPie on this one but it can be discussed. 
 
Overall the good points in Lakka is that you don't need to configure your keyboard at the very beginning for browsing the menus. In RetroPie, there's no real keyboard support: you will have to configure it like it was an xbox or a playstation controller. A bit silly and you'll find yourself trying to start a DOSBox game by hitting a key you defined as "east button": this can be S, M,... depending where you have defined the controller buttons on your keyboard.

However once your controller has been defined and you got used to it, RetroPie usually detects roms, sorts them out automatically, and a few arrow keys pressing will guarantee that you will reach and launch the rom.

In Lakka, you will have either to load a core in a long list and then load a rom by browsing your whole filesystem or vice-versa. Thankfully you have an history of roms to run the last ones but the first time that you are going to look for your rom, it will sure take more time to find it. This is a bad downside in my humble opinion.

"Twice Escape" to quit is nice in Lakka.
RetroPie has a bookmarked rom system which I don't use.

Arcade gaming

Lakka already has 4 cores installed by default: Daphne, MAME2003, MAME2010 and FinalBurn Neo. In RetroPie, everything has to be installed through RetroPie setup. All the cores that are available in Lakka can be installed on RetroArch.

Lakka doesn't really give more click-and-play than RetroPie but is less confusing since you don't have to look for emulators and restricting the scope in this case might actually help new arcade players figure things out better.

Also in RetroPie, you will find yourself with 5 arcade emulator entries (Arcade, 3x MAME, Neogeo) in no time losing your mind about where to go to run your rom. Not very tidy. Only advantage so far of RetroPie is support of lr-mame2016. 

I would give it to Lakka/RetroArch here due to tidiness.

Scope

This will give the same results as scripting and customization: since Lakka can't run anything else than what's been ported to libretro, RetroPie will easily win on this one. A lot more emulators and ports will run on RetroPie than Lakka.

Once again everything can be added in RetroArch assuming you install it on top of an OS.

Design

I personally like RetroPie a lot more although Lakka is far from being ugly. RetroArch can here show some problems with icons if it's installed from package. If "look and feel" is an important matter for you, make sure to install RetroArch through compiling. Otherwise you will end disappointed by the glitches on the icons.

And RetroPie as an app?

RetroPie as an app almost has the same features as RetroPie as a system. The main difference is that you will have to install it on your Raspberry Pi OS 32 bits via RetroPie-Setup. It will then work exactly like RetroPie as an OS except that it will be started within Raspberry Pi Desktop. It will not support KMS where RetroPie as an OS didn't. Finally, it will kill your Raspberry Pi OS splash screen and replace it by RetroPie (it kind of sucks since it will look odd to start your Raspberry Pi OS with a RetroPie splash).

Finally, you can force emulationstation to run within Fake-KMS by installing it manually. If you choose to do so you won't have any RetroPie-Setup entry in emulationstation and you will have to add all the emulators in es_systems.cfg by hand, one by one. Not a very friendly solution but you might in the end have the eye candy and the KMS support on your older Pi.

Conclusion

Proud of its emulator and game coverage, RetroPie stays a safe bet for people who want to build up a full gamebrary quite easily with a very beautiful GUI.

Lakka might seem good for the trashbin at the very first glance compared to RetroPie as it suffers much from the concept "Just enough OS for". While LibreElec did an awesome job with Kodi with a plentiful heap of available plugins, Lakka is just lost without any option to customize it and is missing one of the main features of emulation. However if you give a second glance and give a chance to the application version "RetroArch", the game is completely reshuffled.

RetroArch on top of an OS will just give you one of the most lightweight interfaces, will start without RPD/LXDE and will support Fake-KMS. In terms of performance it simply puts RetroPie KO. Considering that you can run bash scripts (and even use startx in your bash script) using this excellent core, you might completely rethink your gamebrary and junk RetroPie to prefer RetroArch as an app on top of a Raspberry Pi OS 32 bits lite. You will certainly have to devote some time installing the GUI, the autoboot and the cores but you will finally get a very interesting and performant result.

The last solution, single emulation, is preferred when you just want to run one game maybe on an arcade machine replica while using a minimum possible OS in order to maximize performance. In that case, you will look for a DietPi or Raspberry Pi OS 32 bits lite base and compile the emulator yourself.

As a summary, just check hereafter the pros and cons for RetroPie, Lakka, RetroArch and Direct emulation

RetroPie

🙌 TEH eye candy
🙌 Many customization options
🙌 Huge game coverage

🙍 KMS support is not full on older versions
🙍 Not the fastest system
🙍 Rom repository is FAT32-based: RetroPie might actually become the #1 enemy of your disk space
🙍 Uneasy to install and configure on "one single OS"
🙍 Scripting with bash core to get xwindow games running is difficult


Lakka

🙌 Neat and clean
🙌 Fast
🙌 Easy to install and to use
🙌 KMS support

🙍 No real customization option besides the provided cores

RetroArch

🙌 Neat and clean
🙌 KMS support
🙌 Raspbian-based: everything can be started
🙌 Best "one single OS" solution: will be the friend of your disk space


🙍 dpkg -i version is a little buggy: some config options don't work, a few icons show black
🙍 Frequent input driver issues (but that can be fixed by editing retroarch.cfg)
🙍 Very manual installation: OS, then Retroarch, then cores
🙍 Scripting can be abit bitchy with bash core to get xwindow games running


Direct emulation

🙌 Meteoric
🙌 Most of time can be compiled with KMS/GL/GLES/... support
🙌 OS-based: everything can be started

🙍 You will have most of the time to compile your emulator manually
🙍 Not an ideal solution to store a whole gamebrary

I must admit I will miss the eye candy when leaving RetroPie. I am nevertheless eager to gain a few more FPS on my Heroes of Might and Magic IV installation when I will run it from RetroArch on top of Raspberry Pi OS 32 bits lite.

The pi gamer

 


Play ET: Legacy on Raspberry Pi [FPS]

🕐🕐 Duration: A few hours 🔧 Difficulty: Easy 🌟🌟🌟🌟 Interest: Hours of fun