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

  • I did stop including Docker, so the addon is needed. That file isn't needed for anything per se, it's just a way to start pcsx2 outside of Emulationstation. I use it to start the emulator from an SSH terminal.

  • Can't get retroarch to work trying the latest LE8 remix (LibreELEC-Generic.x86_64-8.2-devel-20180820.img.gz) and the one previous (LibreELEC-Generic.x86_64-8.2-devel-20180816.img.gz) on Ryzen 2700x system with Geforce GT 710.

    In /var/log/retroarch.log, I keep getting the following every time I try to run any rom:

    Code
    [ERROR] [KMS]: Couldn't find a suitable DRM device.
    [WARN] [SDL_GL]: Failed to initialize SDL gfx context driver: kms not available
    [WARN] Failed to bind API (#1, version 0.0) on context driver "khr_display".
    [INFO] [GL]: Found GL context: null

    Both LibreELEC-Generic.x86_64-8.2-devel-20180816.img.gz and LibreELEC-Generic.x86_64-8.2-devel-20180820.img.gz give me the same results.

    I can get LibreELEC-Generic.x86_64-8.2-devel-20170820.img.gz to work, but wondering why the newest won't work on my system.

  • 5schatten

    Thanks.

    I tried adding video_driver = "vulkan" to /storage/.config/retroarch/retroarch.cfg and creating /storage/.config/retroarch/nokms, but now I get:

    Not too sure what to do with nvidia-drm.modeset=1 thing. I tried creating /storage/.config/modprobe.d/nvidia.conf and adding "options nvidia-drm modeset=1" to it, then restarting, but that had no effect.

    Edited 2 times, last by jkiel (September 1, 2018 at 5:35 PM).

  • Well I think I remember escalade said Nvidia and vulkan isn't really working right now so setting Retroarchs video driver to vulkan isn't probably a proper way to fix this.

    As I said I think the KMS isn't really working so disable it for now.

    escalade

    Have you ever thought about cemu? So an arch docker image with wine should probably work fine too?

  • jkiel

    Change back to gl and you should be all set. Vulkan isn't working for all cores and I have only tested Intel with this build there might be something missing.

    5schatten

    AFAIK the emulator is in early development? In any case, if it runs well in Wine then it should work fine in Docker as well.

  • Hi,

    I have some issues with RetroArch/Emulationstation, never tried that before.

    The first issue is related to a sound. I have my asound.conf in place and I'm able to hear some noice when I'm executing speaker-test , also aplay works fine. Tho no sound from RetroArch. What I'm missing?


    The second issue is my gamepad does not work with RetroArch. It works with kodi tho. I have following:

    Code
    XMediaCenter:~/.config/emulationstation # dmesg |grep -i microsoft
    [36852.758551] input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/input/input18
    XMediaCenter:~/.config/emulationstation # lsusb |grep -i microsoft
    Bus 001 Device 005: ID 045e:028e Microsoft Corp. Xbox360 Controller

    es_log.txt was showing me this:

    Code
    lvl2:     Added unconfigured joystick Microsoft X-Box 360 pad (GUID: 030000005e0400008e02000014010000, instance ID: 1, device index: 0).
    lvl2:      req sound [basic.launch]
    lvl2:        (missing)
    lvl2:     Attempting to launch game...
    lvl2:         /usr/bin/retroarch.start -L /tmp/cores/quicknes_libretro.so /storage/roms/nes/Battletoads\ Double\ Dragon\ \(U\).zip
    lvl2:     Creating surface...
    lvl2:     Created window successfully.
    lvl2:     Added unconfigured joystick Microsoft X-Box 360 pad (GUID: 030000005e0400008e02000014010000, instance ID: 2, device index: 0).
    lvl2:     Added unconfigured joystick Microsoft X-Box 360 pad (GUID: 030000005e0400008e02000014010000, instance ID: 2, device index: 0).
    lvl2:     EmulationStation cleanly shutting down.

    So what I've added the configuration to es_input.cfg from here.

    Display Spoiler

    ...

    </inputConfig>

    <inputConfig type="joystick" deviceName="Microsoft X-Box 360 pad" deviceGUID="030000005e0400008e02000014010000">

    <input name="a" type="button" id="1" value="1" code="305" />

    <input name="b" type="button" id="0" value="1" code="304" />

    <input name="down" type="hat" id="0" value="4" code="16" />

    <input name="hotkey" type="button" id="8" value="1" code="316" />

    <input name="joystick1left" type="axis" id="0" value="-1" code="0" />

    <input name="joystick1up" type="axis" id="1" value="-1" code="1" />

    <input name="joystick2left" type="axis" id="3" value="-1" code="3" />

    <input name="joystick2up" type="axis" id="4" value="-1" code="4" />

    <input name="l2" type="axis" id="2" value="1" code="2" />

    <input name="l3" type="button" id="9" value="1" code="317" />

    <input name="left" type="hat" id="0" value="8" code="16" />

    <input name="pagedown" type="button" id="5" value="1" code="311" />

    <input name="pageup" type="button" id="4" value="1" code="310" />

    <input name="r3" type="button" id="10" value="1" code="318" />

    <input name="right" type="hat" id="0" value="2" code="16" />

    <input name="select" type="button" id="6" value="1" code="314" />

    <input name="start" type="button" id="7" value="1" code="315" />

    <input name="up" type="hat" id="0" value="1" code="16" />

    <input name="x" type="button" id="3" value="1" code="308" />

    <input name="y" type="button" id="2" value="1" code="307" />

    </inputConfig>

    </inputList>

    Now I can see lvl2: Added known joystick Microsoft X-Box 360 pad (instance ID: 0, device index: 0) but still it's not working in a game and I keep seeing yellow sign Microsoft X-Box 360 Pad (1118/654) not configured .


    Will appreciate any help. Thanks

  • forgot to mention I'm using LE8 "Remix" devel-20180823 , was able to figure out the missing sound issue, retroarch.cfg was messed up, wrong value for audio_device and audio_driver . still trying figure out why gamepad is not working, coming closer :)

    Code
    [INFO] [Autoconf]: no profiles found for Microsoft X-Box 360 pad (1118/654).
  • Ok, finally I managed to get it work. Mine /storage/.config/retroarch/autoconfig was empty. Fixed by switching to retroarch frontend -> applying Update Joypad Profiles from Online Updater.

    escalade , few question if you don't mind

    I'm wondering, why do you use emulationstation frontend by default and not retroarch frontend in the build? At the end you still call retroarch backends (core system) to emulate some rom. Is this just a matter of preference or there are more features emulationstation gives?

    I see there's a note related to sound not working - how to fix /storage/.config/asound.conf, tho nothing written concerning the retroarch configuration itself /storage/.config/retroarch/retroarch.cfg. Might be good idea to add some tips to the manual.

    Also it would be cool to have some information at the manual page about how to add additional configs for gamepads. Since the build using emulationstation it would be cool to mention that emulator-frontend.conf should be modified to change frontend and starting from retroarch frontend there's an option of online update.

    It's very confusing for a person who don't know anything about how this emulators works. I spent like an hour to understand why the heck there is a retroarch process running while I was using emulationstation frontend :D

  • It's very confusing for a person who don't know anything about how this emulators works. I spent like an hour to understand why the heck there is a retroarch process running while I was using [tt]emulationstation frontend[/tt

    Think the word "frontend" says it all ;)

    But you don't need to run the emulationstation frontend, you can start retroarch directly, need to make a shortcut for it if it's not already there. (Browse back/search for a how-to)

  • escalade  rooty

    You need to apply this patch Update config entries pointer to the new beginning of the list after … · libretro/RetroArch@9da261c · GitHub to make sure RA creates a valid retroarch.cfg. I had the same problem, until you patch RA it uses default values for retroarch.cfg uses that point to wrong directories, sets wrong drivers and stuff. I stumbled upon it after I made a clean install... otherwise you probably won't face that problem.

    rooty

    It's obvious for generic builds why escalade uses ES. If you want to run fs-uae, vice, dosbox-sdl, dolphin, pcsx2 and stuff without a libretro core you need another frontend to do that.

    About your problems... wait until escalade updates his build because all your problems are based on a faulty retroarch.cfg file.

    Edited once, last by 5schatten (September 9, 2018 at 7:10 PM).

  • rooty

    The path to autoconfigs should be /tmp/autoconfig which is an overlay of /usr/share/retroarch/autoconfig and /storage/.config/retroarch/autoconfig.

    Regarding sound, if you create an asound.conf then any ALSA application will use the same device you specify there.

    Indeed, some of the features I have added are poorly documented which is due to my laziness :) I was thinking to create a settings addon for these options but never get around to do so.

    Paths are the same as in LAKKA, so you could look at their documentation to get an idea of how to do certain things. Ideally everything should already be baked in though. I wouldn't recommend using the online updater, as there have been cases where some of the cores have been dependent on certain versions of external shared libraries that are not included in this OS. Then again, nightly builds of cores can potentially bring useful features, so it all depends. Trying to keep up with the latest git versions can be chaotic and buggy, so once a stable version is reached it's probably best to stay on it a while.

    5schatten

    It is possible to do it in RetroArch as well, RobLoach has made this launcher core that starts the external Dolphin from within RetroArch. You could create a specific launcher for each of the external applications as well, but I think stuff like switching to 50Hz / PAL mode would be problematic in KMS mode. Probably doable in X11/GL mode though but takes time to do and I find that Emulationstation covers the frontend needs just fine.

  • escalade

    First you need someone who writes a core for every standalone emulator like this:

    GitHub - RobLoach/libretro-dolphin-launcher: Launch Dolphin from RetroArch/libretro

    GitHub - coldscientist/libretro-pcsx2-launcher: Launch PCSX2 from RetroArch/libretro

    Well I used the dolphin-launcher "core" in the past but honestly I really prefer a frontend like ES over that ;)

    Quote

    The path to autoconfigs should be /tmp/autoconfig which is an overlay of /usr/share/retroarch/autoconfig and /storage/.config/retroarch/autoconfig.

    As I said... you need the patch ;) Your RA version & even the last "stable" release v1.7.4 is buggy and creates retroarch.cfg files that are not based on your changed default settings. So it looks for cores, overlays, autoconfig, roms and stuff in ~/.config/retroarch instead of the overlay /tmp/*

    You can test it yourself, rename your retroarch.cfg to retroarch.cfg.old and start retroarch. It should create a new one based on /etc/retroarch.cfg but it doesn't. Instead it uses the default generated by this function RetroArch/configuration.c at master · libretro/RetroArch · GitHub (at least I guess so) and those are completely nuts ¯\_(ツ)_/¯

  • I created a working launcher for FS-UAE to test previously, it's not that hard to look at the Dolphin loader and replace commands with fs-uae. I decided against spending time on it for the above mentioned reasons.

    As for RetroArch, I'll just bump the version as I don't follow the release versions anyway. Don't know if the version in the last release has the issue or not.

  • Quote from slacker666

    Think the word "frontend" says it all ;)

    What I meant I didn't realize, at first, that retroarch is not just frontend, it's also acts as a backend with the core system.

    Quote from escalade

    Regarding sound, if you create an asound.conf then any ALSA application will use the same device you specify there.

    There's an option what to use for retroarch in the configuration file. In my case the driver was other then ALSA. I'm assuming this is related to the issue pointed by 5schatten .

    escalade  5schatten do you guys mind to share yours /storage/.config/retroarch/retroarch.cfg

    Also side question. Do you guys know by the chance why Game Genie cheats are now working for NES? Is this something related to QuickNES?