Showing posts with label lightweight. Show all posts
Showing posts with label lightweight. Show all posts

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

 


Friday, February 19, 2021

Lightweight internet browsers: which one for which use

If you have been using your Raspberry Pi for browsing you should already have noticed that the provided browsers sometimes run slow or very slow. It is also an impediment to the general functioning of the Raspberry Pi.

The provided browser is Chromium. You might sometimes find Epiphany or Midori as provided browser but they tend to show less often in installations nowadays.

While Chromium claims itself to be lightweight, it isn't really the case from a Raspberry Pi point of view. Hereafter we will see the alternative fast browsers you can use.

Category #1: the real lightweight browsers

Here we are looking for a browser mainly for its running speed. What we are looking for here is mainly following links, displaying images and downloading. Heavily scripted pages like Gmail are here out of scope.
 
You have 5 (3+2) competitors in that list:

Luakit
Out of the 5 Luakit will be the slowest but it still runs on a Raspberry with a more than acceptable speed. Luakit will answer almost all your needs in matter of following links and downloading. It is the most supportive browser of the 5. The drawback of Luakit is that it mainly works with keyboard commands.
What you should know follows:
- "o" = open new page
- "r" = reload (might be needed when opening the browser to trust URLs)
- "i" = input (to enter text in a field, for example in Google or DuckDuckGo)
- "f" = follow - will show a list of links that can be followed and their position on the page. Type in the link number to follow it.

Links are also mouse responsive so you can use your mouse for these as well.
Give Luakit a chance and you will not be disappointed. It is in my humble opinion the best competitor of this category. The other ones have less support at a point it can hurt your browsing.
 
Luakit Raspberry Pi Lightweight browser
These download links work in Luakit

 
Summary: pros and cons
😊 Good support for links
😊 Installs with sudo apt-get install luakit
😊 No lags (unless the site itself lags)
😊 Out of this list Luakit is the only browser that supports Twine
 
😞 Using keyboard can be a little awkward at the beginning

 
Netsurf
 
Netsurf is my second favorite in the list. It is the fastest GUI and it has the second best support in the list. I have noticed that some javascript links don't open which can be an issue. The links to download RPGMaker RTP's are an example of links that don't work. For Github and search Netsurf sure does the job. The con: Netsurf is not debian-packaged and must be installed from Netsurf's site. Netsurf must be built from source code.
Netsurf Raspberry Pi lightweight browser
Netsurf is very basic but also very fast

Summary: pros and cons


😊 Meteoric
😊 Second-best site support in this category
 
😞 Must be built from source
😞 Javascript only very partially supported

Dillo
 
Finally, Dillo closes the ball of the lightweight GUI internet browsers. If you are a nostalgic, you will like Dillo: it looks like Netscape back in the 90's. It is fast but support for anything else than HTML is almost unexistant. Dillo is easy to install and "sudo apt-get install dillo" can be a savior in the case you quickly want to set up a lightweight system and go on github. Don't expect exciting support however.
 
 
Dillo Raspberry Pi lightweight browser
I don't like dillo much but it is a quick and easy pick


Summary: pros and cons
 
😊 Meteoric
😊 Easy to install with sudo apt-get install dillo
 
😞 Very basic support
 
Lynx 

Lynx is a bit off this list: it is a full text-based browser. However it stays in the race and is surprisingly easy to use. In the vast world of text-based internet browsers (grand total of text-based internet browsers = 2). Lynx could be labelled as the most basic. It does not offer menus and is keyboard reactive only, a bit like Luakit. Lynx is definately a good lightweight browser especially if you don't want LXDE on your installation. Graphical browsers are however still easier to use.

lynx raspberry pi text browser
Lynx on Raspberry Pi: a summary of commands
at the bottom edge and arrow keys are used to scroll.

Summary: pros and cons
 
😊 Meteoric
😊 Easy to install with sudo apt-get install lynx
😊 Surprisingly good website support
 

😞 Not very good in page formatting

Elinks

Elinks approach differs from Lynx. Although it is also text-based, the look and feel has been carefully thought. Using Elinks you will almost feel that you are using a graphical internet browser. There are menus, more responsive keys, and it is more user-friendly. The drawback is that it brings more bloatware (it is actually bigger than Netsurf) but there is nothing really to worry about. Links are well responsive and general surfing is ensured.

elinks Raspberry Pi text browser
Javascript download links usually work in Elinks

Summary: pros and cons
 
😊 Meteoric
😊 Easy to install with sudo apt-get install elinks
😊 Surprisingly good website support
😊 Better page layout than Lynx
😊 User-friendly menus

😞 Surprisingly bloatware


Category #2: browsers with more features

These browsers are more adapted if you want to run recent pages with a decent support: HTML5, recent js script, plugins, embedding... These browsers will give you a sufficient support for most of the pages (including for example gmail). All of these browsers support Twine games.

Epiphany and Midori

I put Epiphany and Midori in the same topic. If you try both, you will notice that Epiphany is just a Midori with a better Raspberry Pi optimization. It means that if you like those browsers you will rather pick Epiphany over Midori: less lags, same features, same look and feel. 

Epiphany has the best speed of this category and it is not so much of a bloatware. It is serviceable for everyday use (Gmail and Youtube)

 

Epiphany Raspberry Pi versatile browser
Epiphany, one of the fastest versatile browsers on Raspberry Pi

 Summary: pros and cons

😊 Best speed for its category
😊 Least bloatware of its category
😊 Supports everyday sites (webmails)
😊 Easy to install with sudo apt-get install epiphany-browser

😞 Vivaldi, Chromium and Firefox have a better support

Vivaldi

Vivaldi is an interesting alternative: although its speed is comparable to Firefox's or Chromium's it will be tinier on your SD card and help you free disk space compared to the latter two. The support is sufficient and although the customization options are succint, it offers almost as much website support as Firefox and Chromium.

Vivaldi Raspberry Pi versatile internet browser
Vivaldi offers a beautiful and disk space cheap
alternative to Firefox and Chromium


 Summary: pros and cons

😊 Very good support
😊 Doesn't need much disk space compared to Firefox or Chrome
 

😞 Speed is average
😞 Package has to be installed manually


Firefox (or Iceweasel) and Chromium

I don't really know how I could decide between Firefox and Chromium: both have an almost full internet site support, both are easy to install, both are bloatware. In addition you will sometimes encounter a problem specific to Firefox or another one specific to Chromium. Firefox has a better RPGMaker MV support but those games are so slow and unplayable that I wouldn't make an argument out of that. Chromium and Iceweasel are both open-source. The interface is very different and it is more a matter if you are familiar with Firefox or Chrome.

Firefox Raspberry Pi versatile internet browser
Firefox or Chromium - make your choice
Chromium Raspberry Pi versatile internet browser
Firefox or Chromium - make your choice


 Summary: pros and cons
 
😊 Best website support on Raspberry Pi
😊 Easy to install with sudo apt-get install iceweasel 
😊 Easy to install with sudo apt-get install chromium

😞 Worst bloatware

Conclusion

Depending on your power and on what you want from your Pi you will choose one or another. A high memory Pi 4 with a good voltage support will be able to run Vivaldi, Firefox and Chrome wihtout any issue while the earlier models would rather be more modest and rather target the first category of browser.

Of course you can always go the performance route even with a late model and prefer Lynx just in order to solve download links.

Personally, I rest my case: learn keyboard and use Luakit. I love this browser.

The pi gamer

 

Play ET: Legacy on Raspberry Pi [FPS]

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