RetroELEC (Generic/RPi/XU4) Emulationstation/RetroArch/Kodi

  • Inspired by RetroPie/recalbox/Lakka, I've modified LE to allow for proper emulator gaming without any addons. I've focused on picking the best cores for each system and optimizing them as much as possible.


    Features:


    * Based on LibreELEC (git master)

    * Linux 5.1

    * Built with GCC 9.1 using -O2 optimization and LTO

    * F2FS/BTRFS/XFS support
    * Emulationstation (RetroPie fork) is the default frontend that launches emulators (the default can be changed in /storage/.config/frontend.conf and RetroArch can also be launched through it's menus)
    * Libretro cores: desmume, dolphin (generic), dosbox-svn, fbalpha, mame2003-plus, mame2016, mgba, mupen64plus, pcsx_rearmed (rpi2/xu4), ppsspp, puae, quicknes, reicast, scummvm, snes9x, snes9x2010, vice_x64, yabasanshiro (xu4), beetle-psx (generic)
    * Standalone emulators: PPSSPP, Dosbox-SDL2, FS-UAE (generic), amiberry (xu4/rpi2), PCSX2 (generic)
    * Pulseaudio/BlueZ set up to accept A2DP (works in-game!)
    * Utilities: scraper tcpdump rsync unrar p7zip cgroup-tools sdl-jstest mediainfo file
    * Services: Docker, Transmission, SABnzbd, ttyd, Plex


    Odroid XU3/XU4 features:


    * Built for GBM KMS/DRM

    * Odroid WiFi/Bluetooth module works out of the box
    * USB IRQs assigned to big cores
    * htop enhanced with big.LITTLE support
    * big.LITTLE cgroups (emulators are run exclusively on the big cores)


    How to ask for support:

    Make sure your issue is reproducible on a clean install then post the zip file from the logshare together with information about your hardware.


    Link to download
    Github project


    btn_donate_SM.gif


    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.


    RetroArch


    RA will run in KMS mode by default if your GPU supports it. To disable it do this in a terminal:


    # touch /storage/.cache/services/kms.disabled


    Services


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


    Transmission: http://retroelec:9091
    SABnzbd: http://retroelec:9092
    Plex: http://retroelec:32400/web

    ttyd-oem: http://retroelec:7681


    Emulationstation setup


    Out of the box it will look for roms in /storage/roms. BIOS files are under /storage/roms/bios. Configured input controllers are DS4 (bluetooth) and keyboard, others can be configured from the menu (right ctrl).


    Keyboard bindings for Emulationstation

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


    Run Docker ARM containers on x86_64

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


    How to build through Docker


    Code
    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.

    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 :

    Code
    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.

    Quote


    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

    Quote


    --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

    Code
    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

    Code
    1. make_target() {
    2.   cd $ROOT/$PKG_BUILD
    3.   CXXFLAGS="$CXXFLAGS -DHAVE_POSIX_MEMALIGN=1"
    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.
    Cheers