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. I don't care to include every emulator under the sun, but rather include a well maintained assortment of the best performing and popular ones.
- LibreELEC base (appliance like "JeOS" with fast bootup, easy upgrades, easy setup)
- Boots to Emulationstation (can be changed with kernel command line options)
- RetroArch compiled for Wayland/KMS with glcore/vulkan drivers
- Plymouth boot splash
- Kodi 18.7.1 Leia (runs on KMS/OpenGL)
- Sway minimalistic desktop with a few select utilities
- VNC backends available # systemctl start wayvnc will start a VNC server so you can remotely control the desktop
- PulseAudio sound server
- Pulseaudio BT modules (GitHub - EHfive/pulseaudio-modules-bt: Adds Sony LDAC, aptX, aptX HD, AAC codecs (A2DP Audio) support to PulseAudio on Linux) offers A2DP codecs: Sony LDAC, aptX, aptX HD and AAC
- Pipewire and GStreamer multimedia framework
- V4L2 utilities and v4l2loopback
- Transmission, Plex and SABnzbd available as systemd services
- F2FS used for the storage partition (with compression support)
- NFSv4 server (/media and /storage/roms shared by default)
- AutoFS lets you access NFS shares by accessing /net/hostname/ in the filesystem
- Everything is built using GCC 10.1.x
- Flatpak 1.8 lets you extend the OS with additional software from the Flathub
- RPCS3 included
- PCSX2 one-click install from Flatpak store
- AntimicroX
- The chdman tool from MAME is included to convert cue/iso to CHD
Included RetroArch cores:
boom3 (Doom 3)
desmume (Nintendo DS)
dolphin (Nintendo Wii/Gamecube)
dosbox_core (DOSBox)
ecwolf (Wolfenstein 3D)
flycast (Dreamcast)
fuse (ZX Spectrum)
genesis_plus_gx (Sega 8/16-bit like Megadrive)
mame2016 (MAME 0.174)
mednafen_psx_hw (Sony PSX)
mednafen_saturn_hw (Sega Saturn)
mgba (Nintendo Gameboy)
mupen64plus_next (Nintendo 64)
ppsspp (Sony PSP)
puae (Amiga 500 / 1200)
quicknes (Nintendo Entertainment System)
scummvm (ScummVM)
snes9x (Super Nintendo)
stella (Atari 2600)
vice_x64 (Commodore 64)
Default root password is "retroelec".
How to ask for support:
Make sure your issue is reproducible on a clean install of the latest available image then post the zip file from the logshare (after reproducing).
Link to download
Github project
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.
AutoFS
Accessing NFS/SMB shares have never been easier. Mounting and unmounting is no longer necessary, simply access your shares like so:
# ls -l /auto/nfs/server/share/
Point your Emulationstation or Kodi sources to the corresponding directory in /auto and the rest is taken care of by the AutoFS daemon.
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 --now service in SSH, where "service" is one of the below
Transmission: http://retroelec:9091
SABnzbd: http://retroelec:9092
Plex: http://retroelec:32400/web
ttyd-oem: http://retroelec:7681
shairport
librespot
snapserver
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
Navigation = Arrow keys
A = Enter
B = Backspace
Page up = ,
Page down = .
Start = rctrl
Select = ralt
Run Docker ARM containers on x86_64
# docker run -it --rm -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static raspbian/jessie bash
How to build through Docker
# docker run -it -h arch-build --name arch-build -v /storage:/storage -v /media:/media -v /etc/localtime:/etc/localtime escalade1/arch-build
# git clone --depth 1 --single-branch https://github.com/escalade/LibreELEC.tv.git
# 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.