RetroELEC Kodi+Wayland+Emulationstation+RetroArch (x86/XU4/RPi)

  • Marciano

    I'm jealous, wanted an H2 as well but was out of stock. Will probably get one when they are available again. Interested to hear what you think of it so far.

    I'm really happy with my H2.

    You can check the odroid forum sometimes some users sell there H2 for a reasonable price.

    That's where i get mine too i was lucky i guess.

    A while ago in installed 5schatten his build and it was running great almost all emulators that i tried are playable except PCSX2 is not but that was what i expected.

    Soon i'll try your build but i really don't know what the difference is between your build and 5schatten his build.

  • Not much I suppose, as he copied most of my packages. He also includes several other frontends and afaik some configurability of settings through Kodi. I'm focused on simplicity and optimization, also I will mostly be releasing builds without Kodi.

  • Absolutely, LE as an OS is (in my opinion) the most effective way to run any application as it's a "Just Enough OS". It's design with a read-only squashfs and separate storage partition is very efficient. The build toolchain is also a joy to use and makes it easy to add anything I want. Can you find me a distribution that boots faster into Emulationstation than this? I don't think so :) I'm sure you are familiar with Lakka, which was my main inspiration back in the OpenELEC days. Unfortunately, it's development speed is quite slow (I was on LibreELEC before them) as it's a huge project supporting many different setups. You can look at this as a kind of a bleeding edge Lakka flavor with an Emulationstation frontend. Most of their documentation is relevant for this build. I also include the services and tools that I think is a must-have without having to download any addons. Docker is a good example, using that I was the first to bring PS2 emulation to LibreELEC.

    LE as an OS has so much more potential than just Kodi (although that's what they focus on). It's quite unique in the Linux distro world.

    EDIT: I can add that as I'm basically leeching off the excellent work the LE team is doing, I will directly benefit of improvements in the base OS and I can do it faster as I'm not bound to things such as release processes and quality assurance. Same goes for Lakka, although they are way behind at this point.

  • Not much I suppose, as he copied most of my packages. He also includes several other frontends and afaik some configurability of settings through Kodi. I'm focused on simplicity and optimization, also I will mostly be releasing builds without Kodi.

    Well it is indeed true that I forked the LE 8.x remix build and just updated the packages which were provided by the original build but I wouldn't exactly say I've copied them for the Le 9 build because that just wouldn't work. As you know the build system has been reworked fundamentally and most of the old packages would not build without reworking them. In the end everyone who tries to achieve the same experience and functionality will have to satisfy the same package dependencies and so will use somewhat similar packages. In the end many of my packages were inspired by other distros which is obvious since you need them to build other packages too. I guess you agree that you've taken a lot of inspiration from Lakka or Retropie, Recalbox or Arch Linux ;) Many packages were LE libretro packages which needed to be reworked because Retroplayer does not support OpenGL/ES so they have never been used in Kodi/LE.

    Soon i'll try your build but i really don't know what the difference is between your build and 5schatten his build.

    The main difference is that I also build images for Amlogic & Rockchip devices and I'm focused on an extended LibreELEC build so I'll stick as closely as possible to LE. Since one of my main emulation priority is Dolphin I had to add the Qt5 framework which allows me to add additional standalone emulators like Citra, a mupen64plus-gui for standalone mupen64plus, useful tools like Skyscraper to scrape game assets and also an additional frontend like Pegasus.

    If it comes to the emulated systems I added oldschool Atari 2600 & 5200 stuff and Hatari as standalone Atari ST emulator because user asked for this. I've added a variety of libretro cores to allow users to pick their prefered core to satisfy their needs and solve some problems. For example on oldschool Intel devices which lack the latest OpenGL version libretro-mupen64plus won't start but you can use mupen64plus instead.

    I reworked basically all scripts to use functions in profile.d instead of repeating these scripts over and over in every start script which makes it easier to debug stuff and speeds up builds because if I change some PulseAudio init the depending package doesn't rebuild and just the profile script will be copied for example.

    Basically all standalone emulation start scripts were completely overhauled by me to allow proper handling of different file types. For example all of them should handle ipf, zip or conf files without any user interaction. For ARM based systems Amiberry is used which also fully supports WHDLoad and detects automatically if a file is just a compressed floppy image or a whdload file.

    Because users asked for video snaps I fixed the VLC package which was originally broken for this particular usecase, I added mmal patches to allow RPi systems to play videos without black screens too. Because of this changes it was for my usecase inevitable to use PulseAudio for audio mixing so I also reworked to scripts & emulator configs to use either ALSA or PulseAudio depending on your needs. Since PA was used for emulation as a benefit I added FluidSynth as synthesizer which allows you to use MIDI emulation in RA out of the box and also DOSBox can play MIDI sound without any other bios or rom files.
    The main difference to escalades recent build is that I only use PA for emulation so I automatically create sinks once the frontends or emulators start & delete them once you finished playing. This approach makes sure that standard LibreELEC configs work fine and also addons won't run into trouble. Another reason to use it this way is that without further PA plugins audio passthrough won't work once you use PA instead of the ALSA sink which is pretty bad if you use Kodi for home entertainment. Another point is that I offer two options for PA so either autodetection which works fine on simple system configurations but once you have different audio cards attached or use your dedicated GPU as output device you should be able to chose a proper output instead of relying on autodetection. Same goes for the tsched option, some sound devices need tesched to be disabled to avoid crackling sound, some need it to have proper sound. Well so it makes sense to allow you to enable or disable it depending on your needs.

    Since the standalone emulators need specific refresh rates for PAL or NTSC games I added scripts that make sure that they start with correct rates. For example if you start Dolphin PAL60 or NTSC games while your refresh rate is still set to 50Hz it stutters like hell.

    I added Vulkan libs for Nvidia drivers which allow you to use the Vulkan backend too. Since we're talking about Nvidia I've also tested and tinkered until I found out why PCSX2 did not run for them. The reason was that the Docker container and the LE Nvida drivers differed and so PCSX2 failed to init OpenGL. So I further reworked the PCSX2 start scripts which now pull a specific Docker image version instead of just the latest one, it also cleans up old Docker images and makes sure that it'll update if a new version if available. It's indeed true that escalade was the first who created a Docker image for PCSX2 ;) And I'm glad he makes use of the Docker addon I regularly update for LibreELEC 8o I just ironed out some stuff I did not liked or which were not suitable for everday usage. For example when I tried to fix the Nvida drivers I've rebuild the image countless times but so every user who tried to run a game ended up with a black screen because they all tried to grab the "latest" image which was updated. In the end experiences like these lead to reworked scripts which improve over time.

    Talking about updated I reworked the start scripts for Chrome & Spotify do check if an update is available and update those apps without the need of manually deleting the old installations, also you can now switch between the stable & dev channel for Spotify.

    Becaus I'm pretty lazy and tired of terminal work for basic settings I adopted awiouy audio addon for my needs and added basic config options for video audio & emulation. So normally you should be able to set up your system without any terminal magic.

    So all in all there is a variety of under-the-hood changes that you might not see on first sight but they make everyday usage somewhat convenient and avoid trouble or allow "proper" emulation./shrug

    In the end use whatever suits your needs. It's open source after all and one hand washes the other. :thumbup:

  • Oh yeah, correction, you copied my packages and added a PKG_TOOLCHAIN=make/configure/autotools here and there. Pretty much everything you mention you've also gotten from me, down to the launcher scripts, configure options and methods I have used to deal with different things. Much like I copied a lot of things from Lakka when I started, which I certainly give them credit for.

    You're seriously trying to take credit for the Docker addon that lrusak created as well? This is getting ridiculous. You bumped the version variable on somebody else's work, congratulations. All I'm seeing is 0 respect for the work others have put in, you've even PR'ed stuff you got from me without so much as a mention. Good job!

    You are welcome by the way.

  • Oh yeah, correction, you copied my packages and added a PKG_TOOLCHAIN=make/configure/autotools here and there. Pretty much everything you mention you've also gotten from me, down to the launcher scripts, configure options and methods I have used to deal with different things. Much like I copied a lot of things from Lakka when I started, which I certainly give them credit for.

    You're seriously trying to take credit for the Docker addon that lrusak created as well? This is getting ridiculous. You bumped the version variable on somebody else's work, congratulations. All I'm seeing is 0 respect for the work others have put in, you've even PR'ed stuff you got from me without so much as a mention. Good job!

    You are welcome by the way.

    Last time we talked in slack you were pretty surprised about the multithreaded build or the LTO changes that broke your build obviously it's enough to PKG_TOOLCHAIN=make/configure/autotools here and there :/Seems like you either forget about your own problems or pretend that rebasing is just a matter of copy and paste ^^

    I know that a lot of packages were direct copies from other projects because that's the way it goes.

    AlexELEC-AML/package.mk at master · AlexELEC/AlexELEC-AML · GitHub

    package.mk

    RetroELEC/package.mk at le82 · escalade/RetroELEC · GitHub

    Even the superflous lua dependency was copied and also the wrong lib installation path because if you update the package the vlc libs won't update too in that path.


    Have you ever read my start post in my thread that literally states:

    Quote

    I really enjoyed Escalades LE 8.0 Remix which was an attempt to melt all good stuff into a single system but if you look into detail the 8.2.x base is pretty outdated. I've felt it's time to rebase the Remix build.

    I never claimed the copyright in the first place when I rebased the packages which meant reworking most of them. I even kept the copyright in my vlc package that was inspired by "yours" LibreELEC.tv/package.mk at libreelec-9.x-rr · 5schatten/LibreELEC.tv · GitHub and I asked you in the past if you're fine when I add your copyright in the addons too. You could have mention that you've just copy & pasted the packages and I would have probably used the correct one. Nowadays I drop it once the package is basically completely different from where it started and if it does not even contain any config opts a copyright is probably not necessary at all.


    I took credit for updating it not creating it. Last time Lukas bumped Docker was back in february 2017 & rayelec bumped it last time in november 2017. If you think updating Docker is just changing the PKG_VERSION why did you never do it? I asked in the slack Docker channel for some support and guidance and basically nobody cared about Docker and I even dropping it was an option if it would not work anymore. The reason why nobody cares is simple. Docker is a mess & unfortunately I couldn't just copy and paste these commits.

    docker: update to 18.06.1-ce · LibreELEC/LibreELEC.tv@3f6bf98 · GitHub
    docker: updated to 18.09.1 · LibreELEC/LibreELEC.tv@040024f · GitHub

    No offense but I know the origin of many if not all packages and you know it too. I appreciate your work but don't pretend that you've reinvented the wheel neither did I or did you. We all check other projects, how they solved problems and adjust those solutions if necessary. ;)

    Feel free to explain me what I could have PR'ed what you have created? You're probably referring to wayland? Well this was my PR [Wayland] updated all Wayland packages, dependencies & patches by 5schatten · Pull Request #3497 · LibreELEC/LibreELEC.tv · GitHub so explain me:

    Where is your libva-utils patch?
    RetroELEC/packages/debug/libva-utils at le9 · escalade/RetroELEC · GitHub

    Where is the fix to build Kodi?

    RetroELEC/package.mk at le9 · escalade/RetroELEC · GitHub

    Where is your updated Kodi audio patch?
    RetroELEC/kodi-100.14-use-alsa-and-pulse-together.patch at le9 · escalade/RetroELEC · GitHub

    Where is your intel-vaapi-driver patch?
    RetroELEC/packages/multimedia/intel-vaapi-driver at le9 · escalade/RetroELEC · GitHub

    Where is your pugixml package?
    waylandpp: update to 0.2.5 · escalade/RetroELEC@64c0996 · GitHub

    Where did you update the weston toolchain?

    weston: update to 6.0.0 · escalade/RetroELEC@74622ad · GitHub

    Shall I go on? Or what did you have in mind? At the current state I hardly doubt that your wayland build will compile and run fine on generic systems, maybe audio works because of your PA config but then again passthrough is broken. I'm talking for ages now to Lukas and others and do some lobbying for X11 so maybe a branch keep the displayserver or at least a working alternative like Wayland/Weston is available for non-libretro stuff & add-ons like Chrome or Spotify.

    By the way I started on a PR for Wayland because of this Kodi PR X11: remove vdpau and glx by lrusak · Pull Request #16057 · xbmc/xbmc · GitHub and not because you've randomly bumped some Wayland related packages.

    EDIT: I can add that as I'm basically leeching off the excellent work the LE team is doing,

    On point. So don't pretend you've reinvented the wheel. To me this discussion in pretty much pointless. If you think I just copy & pasted your work then well go on and think what you want. If you would have ever tried my build then you would have known that there are plenty of under the hood changes that make things easier.

    You are welcome too. :*

  • It’s becoming clear to me that you are either smoking some next level drug or stopped taking your medication. Hope you get well guy.

    Looks like I hit the bullseye ;) I'm fine thx & hope you're well too.:thumbup:

    So let's end this rather pointless discussion & back to the main topic.

  • Probably looks like that to a delusional copycat like yourself. Yes let’s get back on topic and you can go back to watching my commit log and figuring out how to take credit for it. I’m flattered.

  • Probably looks like that to a delusional copycat like yourself. Yes let’s get back on topic and you can go back to watching my commit log and figuring out how to take credit for it. I’m flattered.

    Feel free to ignore the facts ;) Where are your standalone packages for DolphinQt, Citra, PPSSPP, Mupen64Plus or Hatari? Where is a config tool? Where are autoupdates? Where is the whole Qt5 stuff? Don't you think I'm aware where you've got the "inspiration" of a lot of your packages? I guess I wouldn't have recognize the similarities to Retropie or to the Lakka branch if I hadn't reworked every single package...

    Basically you accuse me that I just have copied your packages so you tell the users that this

    RetroELEC/pcsx2.start at le82 · escalade/RetroELEC · GitHub

    equals this

    pcsx2.start

    what is In my humble opinion pretty much incorrect and I think everyone who is not blind will see that I've reworked the package to improve the functionality.

    I started my work on a LE 9 based build over one year ago so it's quite funny why I would need to watch your commit log while my builds with stable Kodi point releases where available for months before you even started your rebase? And have you checked LE upstream code where is your late contribution? Some SAMBA fixes back in 2017? Congrats. :/

    Last time I've ran your build in 2017 not even the splash screen worked, so much about that :D

    Feel free to think whatever you like but let's get real. /shrug

  • Feel free to post as much pathetic nonsense you want, quite entertaining.

    Unless you proof me wrong I wouldn't exactly say it's pathetic. It's more like you tried to take credit for work others did and once someone points this out you behave somewhat immature. :/ Anyway this will lead to nothing so have fun & you're welcome ;)

  • Hold your horses there, I'm not the one having a real hard time admitting he copied my stuff. I did indeed borrow and straight up copy a lot of things, you want to tell me where I try taking credit for it?

    Here's you PR'ing what I gave to you without any mention: CMakeList.txt: added symlinks for libGLES_CM.so.1 & libGLESv1_CM.so.1 by 5schatten · Pull Request #4 · LibreELEC/libmali · GitHub

    It's funny that you bring up PCSX2, adding some verbosity to my pcsx2.start script does not change the fact that I'm the one who wrote it in the first place. The relevant part is exactly the same. I put in the time reading Docker documentation, creating containers and experimenting with ALSA and Pulse to see what I needed to pass to the container, here you are acting like you did anything meaningful. Like bumping the Docker version, as if that's rocket scienc3. The real work was done by lrusak back in the day, which I'm very thankful for.

    I could go on and pick apart all the ridiculous claims you are making, but I'm gonna save you the embarassment. It's indeed completely immature, and I have other things to do with my time than "proving" that you copied my stuff which you very clearly did. It's great, take what I have made and improve it any way you can but trying to take credit for it is simply pathetic.