LE8 "Remix" (Generic/RPi) Emulationstation/Chrome/Spotify (read the first post before posting)

  • Inspired by RetroPie/recalbox/Lakka, I've modified LE to allow for proper emulator gaming without any addons. I know there's ongoing work to integrate the libretro cores into Kodi with "retroplayer", but for the moment I'm still sticking with a standalone frontend for launching different types of emulators. One reason is that KMS (kernel mode setting) is superior with regards to input lag, another is that not all emulators have a proper core yet (amiga/c64/dosbox for example).

    - Based on LibreELEC 8.2
    - Kodi 17 Krypton

    - AVX2 / FMA optimizations from Clear Linux
    - Emulationstation (RetroPie fork)
    - sselph's CLI scraper included (not automatically used)
    - RetroArch with Vulkan support (only Intel for now) and a selection of the most popular cores cross compiled and optimized for LibreELEC
    - VICE C64 emulator
    - Amiga emulators (Chips' uae4arm for RPi or FS-UAE for Generic)
    - Dolphin Wii/GameCube emulator

    - PCSX2 (Generic only and requires the Docker addon)

    - ResidualVM (Grim Fandango and Escape from Monkey Island engine)
    - Dosbox extended SDL2 fork by duganchen
    - Shortcut to Emulator frontend from Kodi homescreen (minor Estuary mod, no launcher addon required)
    - F2FS/BTRFS/XFS file system support

    - LVM / DM-CRYPT support
    - Kernel NFS 3/4 server support (/storage exported rw to any IP, exports are in /storage/.config/exports)
    - OpenVPN server
    - Transmission BitTorrent, SABnzbd and Plex Media Server
    - QEMU (statically linked binary to enable running ARM Docker containers on x86_64)
    - DRI3 enabled by default on Intel (gives you tear free video in browsers)
    - Modesetting driver enabled by default on Atom/Celeron class CPU's
    - Google Chrome
    - Spotify

    - TigerVNC (password libreelec)

    How to ask for support:

    1. If your problem exists on regular LibreELEC then create a new thread. That means you should compare with regular LE if possible.

    2. Reproduce your issue then post the zip file from the logshare together with information about your hardware.

    Link to download: libreelec – Google Drive
    Github project: GitHub - escalade/LibreELEC.tv: Just enough OS for KODI


    Note to anyone cloning my project: I like to rebase my changes from time to time to get a clean history. This means your local clone will be out of sync when I do. In that case you can do "git fetch origin && git reset --hard origin/emu" to update, but stash any local changes you have first if any.


    RA will run in KMS mode by default on Intel GPUs. To use Vulkan, change the video driver in RA settings (restart of RetroArch required) and force disable KMS like this:

    1. # touch /storage/.config/retroarch/nokms

    This simply creates the file "kms", which the launcher script will check for and make adjustments accordingly. Remember to remove it if you like to use Vulkan or OpenGL again.


    To start them do "systemctl enable service ; systemctl start service" in SSH, where service is either "transmission", "sabnzbd", "plex" or "nfs-server"

    Transmission: libreelec:9091
    SABnzbd: libreelec:9092
    Plex: web

    Emulationstation setup

    Gamelists are disabled, if you want to use scraping edit /storage/.config/emulationstation/emulationstation.conf and remove --ignore-gamelist from the arguments. Out of the box it will look for roms in /storage/roms. BIOS files are under /storage/roms/bios. Configured input controllers are DS3/DS4 (bluetooth) and keyboard.

    Emulated games don't have any sound!

    All the emulators use ALSA by default. Some times there are more than one sound card or more than one output and the sound will go to the wrong place by default. In this case you should have a look at /storage/.config/asound.conf.sample. Use it as a template and save the edited one as /storage/.config/asound.conf. When done correctly the command "speaker-test" should output noise.

    It's generally a good idea to turn off "keep audio device alive" under system audio settings in Kodi. That will stop Kodi from hogging your audio device, which can prevent other applications from using it.

    Keyboard bindings for Emulationstation

    1. Navigation = Arrow keys
    2. A = Enter
    3. B = Backspace
    4. Page up = ,
    5. Page down = .
    6. Start = rctrl
    7. Select = ralt

    Other useful keyboard buttons

    1. Kodi shutdown menu = S
    2. Kodi context menu = C
    3. Emulationstation menu = RCTRL
    4. uae4arm menu = F12
    5. uae4arm joystick/mouse switch = F11
    6. VICE menu = F12
    7. Retroarch menu = F1

    Updating Chrome / Spotify / Plex

    These apps are downloaded to /storage/.cache/app.[chrome|spotify|plex]. Delete this directory and the latest version will be downloaded on the next run.

    Run Docker ARM containers on x86_64

    1. # docker run -it --rm -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static raspbian/jessie bash

    How to build through Docker

    1. # docker run -it -h arch-build --name arch-build -v /storage:/storage -v /media:/media -v /etc/localtime:/etc/localtime escalade1/arch-build
    2. # git clone --depth 1 --single-branch https://github.com/escalade/LibreELEC.tv.git
    3. # cd LibreELEC.tv && PROJECT=Generic ARCH=x86_64 make

    My build container is built from base/archlinux with the minimal package set needed for building LibreELEC

    Edited 3 times, last by escalade ().

  • Hello,

    Thank you for your hard work. It works fine.
    Last Retroarch UI is very nice.
    My PS3 Bluetooth Controller is also natively supported.

    I'm using this Estuary MOD skin :
    Estuary MOD

    Main menu can be easily customized and it includes also Estuary skinning for LibreELEC settings screen.
    Is it possible to tell me Kodi actions used to launch Retroarch and EmulationStation UI? (to add two new entries to main menu)

  • I have just seen one of your last commit (Estuary patch) in your github.
    I have added a new menu entry based on :

    1. XBMC.System.Exec(/usr/bin/emulationstation.sh)

    and it works.

  • Thanks escalade have set this up and all it working as expected, PS3 (official) Controller worked right away wirelessly (after enabling bluetooth in LibreElec settings.). Appreciate your time and efforts for this, I think we are all waiting (and more waiting) for Retroplayer to come online with the mainstream KODI therefore LibreElec stable builds.

    Edited once, last by mapperz ().

  • Interesting, I'll look into that :)

  • Interesting, I'll look into that

    Yes, customization is also saved in skin settings, then it won't be overwritten after an upgrade.

    I have also finally fixed my HDMI sound issue (not annoying - retroarch and emulationStation) with my rpi2.
    Without this parameter in config.txt : dtparam=audio=on, it wasn't possible to list audio devices and no sound was played. (aplay -L and mixer command weren't working)
    Information available here : R-Pi Troubleshooting - eLinux.org
    I don't know if it set by default in your image. (perhaps my config.txt file hasn't been overwritten as it was only an upgrade)
    Everything works fine now. (very good choice for emulationStation skins)

  • Well, I patch the system skin so that won't be overwritten if you upgrade either. I do set dtparam=audio=on it's needed to enable the ALSA device. Glad you like the skin, I've looked through all from RetroPie and I found it the cleanest and most easy on the eye.


  • Hi, i have problems with the generic build on a intel cpu. The Loading screen will come without problems but if the go to kodi the (monitor or tv) will be black, some tips?

    i think it will run the ftp can i see, but no connection over ssh.

    kodi log:libreelec - Pastebin.com

    kind regards Scan

    Edited once, last by Scan ().

  • I don't know what to tell you, it works fine here. Post your /var/log/Xorg.0.log. There is no FTP on LE. Network and SSH should be up with pretty much any common network card. What do you mean monitor or tv, do you have two outputs?

  • Hello, good idea and functionality.
    It would be possible to add support for the clone PS3 controller? (Shanwan and Gasia working in OL)
    Thank you

  • Good work, RPi3 internal BT + clone Ps3 controller is paired okay. Small flaw. Missing joystick profile for this PS3 clone in kodi and retroarch. Must be configured buttons on the gamepad.
    Thank you

    Edited once, last by premyslcz ().

  • Not a flaw, Emulationstation usually requires setting the key bindings manually. I just include bindings for DS3/DS4 as mentioned in the first post.

    I've uploaded new images, most of the emulators for rpi have been updated and now include desmume.

  • Hi dear!
    Thanks a lot for your hard work!
    I would like to ask you a clarification about your scummvm package:
    LibreELEC.tv/package.mk at emu · escalade/LibreELEC.tv · GitHub

    To save space, the audio files of my ScummVM games are compressed in Vorbis (with ScummVM tools).
    If I compile from your package.mk I can generate a .so file that works fine, but I have no speech (only ambient sound).
    For this reason in some games like broken sword I can play only with subtitles.
    There's a way to pass "vorbis option" in your package.mk before the compilation?
    Thank a lot

    Edited once, last by lollo78 ().

  • About scummVM I'm trying to play with it, without success.
    Could you help me please? I done all my best and I made my homeworks...

    According "9.0) Compiling" paragraph of GitHub - libretro/scummvm: ScummVM with libretro backend.


    If you wish to use MP3-compressed CD
    tracks or .SOU files, you will need to install the MAD library; likewise
    you will need the appropriate libraries for Ogg Vorbis and FLAC
    compressed sound. For compressed save states, zlib is required.

    So... why not enabling all the suff in one solution (FLAC, Vorbis and MP3)?
    Then I searched for the right syntax. I found this:
    Enable MAD and VORBIS supports (Scummvm) by JanBaunooo · Pull Request #35 · recalbox/recalbox-buildroot · GitHub


    --enable-gles-rpi --disable-debug --enable-release --enable-optimizations --disable-mt32emu --enable-flac --enable-mad --enable-vorbis --disable-tremor \

    Analyzing your retroarch and vice package.mk, I modified the scummvm-libretro package.mk like this:

    I can compile and generate the .so file.
    The core starts on my Raspberry (I can see the ScummVM GUI), but it doesn't work.
    No Vorbis audio support.
    So I made a bullshit

    I tried to move

    1. PKG_CONFIGURE_OPTS_TARGET="--enable-flac \
    2.                            --enable-mad \
    3.                            --enable-vorbis"

    up and down in the code and recompiled again. But nothing...

    EDIT: I tried also with

    1. make_target() {
    2.   cd $ROOT/$PKG_BUILD
    4.   ./$BUILD/scummvm*/configure --enable-flac --enable-mad --enable-vorbis
    5.   make -C backends/platform/libretro/build/
    6. }

    but I can't compile the .so file.

    Please.... help me with one of your precious suggestions.
    Thx again...

    Last thing: for the future, do you think that it's possible to include Quake 3 in your package?
    Raspberry Pi • View topic - Building Quake 3 in Raspbian (RaspbianQuake3 - Raspbian)
    Quake III bounty: we have a winner! - Raspberry Pi

    Edited once, last by lollo78 ().

  • Thank you for a great build. 2 Questions.

    Black/Blank screen
    I have a black screen when selecting roms but can hear all is working. Is there a workaround on Nvidia ION or should I post a debug log.

    Pair Xbox360 Gamepad
    I figured out to delete the input.cfg file in emulation station to pair my xbox360 gamepad. Is this correct.