Announcement

Collapse
No announcement yet.

Announcement

Collapse
No announcement yet.

[LibreELEC] Run RetroArch on your S905/S905X device!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [LibreELEC] Run RetroArch on your S905/S905X device!

    Warning: this is for LibreELEC users only (may or may not work with OpenELEC; does not apply to android)


    Most people with ARM 64 bit devices are still lacking a bunch of software which are not ported to AARCH64 platform yet. This happens a lot in the gaming and videogame emulation area.

    Well, if you have been looking to run RetroArch on your S905/S905X device and had no luck so far, the solution I am presenting here may change this.



    How it works

    LibreELEC kernels for S905(X) from Kszaq unofficial builds as well as the official ones for Odroid C2 have all required kernel settings to allow for running 32 bit ARM binaries. It just misses the 32 bit libraries.
    So what I did was just create a combination of addons that will provide RetroArch 32bit binary and libretro cores plus 32 bit linux OS dynamic libraries necessary to run RetroArch. In essence, you will be running the same version of RetroArch that is currently unofficially available for S805 devices on your S905(X). And the emulation speed is great!



    What you need
    1. Retroarch addon for S805 (and now S905/S905X!): latest version here
    2. 32bit Libs for RetroArch addon for S905: latest version here -[Updated Feb 12, 2017] NOTE: if you use a recent LE build from Kszaq with 32bit userspace, the "32bit Libs for RetroArch" addon is most likely not needed anymore
    (Note: both addons above are being maintained in my LE S905 repository so feel free to add it to your Kodi so you can keep the addons automatically updated. Zip to my repo here)


    More details

    This thread for the S805 has all the details you need to know about the RetroArch addon. Once you have the two addons above installed, hopefully retroarch will launch for you.


    Thanks

    - Kszaq for the original version of RetroArch addon and source for compiling it for S805
    - Lakka project folks for such awesome solution and pre-compiled packages for S805 (Odroid C1)
    - sammaz and other folks which have been contributing to improve the RetroArch experience on S805 (and now S905(X)) devices on this thread


    I hope you guys enjoy! And please:
    • Post successful experiences, questions or problems you have to make Retroach work (i.e. launch successfully) on your S905(X) deivce here.
    • Once you have Retroarch working on your S905(X), further questions on its usage, etc. should be posted on the exiting S805 thread (so we all can benefit from the solutions)

    Updated Feb 12, 2017:
    New version of addon published to repository and available here:What is new:
    • Updated RetroArch binary and libretro cores from latest nighty compilations from Lakka project (2016-12-21). This adds glupen64 as a new core.
    • Added an extra core reported as working by users: imame4all.
    • Small fixes to very simple launcher: list of roms ordered alphabetically, better error handling when folder is inexistent, shows icon for cores

    Updated Nov 24, 2016:
    New version of addon published to repository and available here:
    What is new:
    • Fixed simple launcher to handle scummvm games properly. To use this feature, make sure game is extracted into a subdirectory named as per "Game Short Name" from http://scummvm.org/compatibility
    • Added option to configure the audio device for values other than hw:0,1. Now you can chose among hw:0,0 hw:0,1 hw:0,2 and hw:0,3 (hw:0,1 is still the default value)

    Updated Nov 14, 2016:
    New versions of addons published to repository and available here:
    • Retroarch (emulator.tools.retroarch) v7.0.2-j06
    • 32bit Libs for Retroach (emulator.tools.32bitlibs) v7.0.2-j02
    What is new:
    • bug fixes for the feature introduced previous release to forcefully use libs from 32bit Libs for RetroArch addon. Thanks to mwnn and albundy @ freaktab for testing v7.0.2-j05.
    • modified python script responsible to add execution permission via settings to include 2 more files
    Links above updated.
    Last edited by JoKeRz; 02-12-2017, 08:15. Reason: Added v7.0.2-j08

    #2
    Forgot to mention I haven't had a chance to test this on an actual S905 device (the one I had with me until last week was from a friend and I had to return it), so please report all details you can if you run into issues.

    Comment


      #3
      hello,

      Thank you for sharing this mod, it is very usefull to understand kodi, addons and general 32/64 bit working environment.

      I have mini m8s ii, it has s905x 2g ram.
      I tried your general 32 bit solution (/lib32 and /usr/lib32 folders, update LD_LIBRARY_PATH variable and symlink ld-linux-armhf.so.3),
      and now tried addon setup in this thread.
      In both configurations "retroarch.start" script or "retroarch" & "retroarch_mod" executables are not working.
      just kodi restarts (as expected as if returning from retroarch) and "dmesg | tail" gives:

      [ 1549.512171@0] aml_spdif_dai: share the same clock
      [ 1549.512179@0] aml_audio_hw: IEC958 PCM32
      [ 1549.512184@0] hdmitx: audio: aout notify rate 44100
      [ 1549.512188@0] hdmitx: audio: aout notify size 32
      [ 1549.512191@0] hdmitx: audio: no update
      [ 1549.512198@0] aml_snd_m8_card aml_m8_snd.46: i2s/958 same source
      [ 1549.512383@0] channel count should be 8, we got 2 aborting
      [ 1549.515759@0] aml_snd_m8_card aml_m8_snd.46: I2S playback enable
      [ 1549.515774@0] aml_snd_m8_card aml_m8_snd.46: IEC958 playback enable
      [ 1549.666445@0] fb: osd[0] enable: 1 (kodi.bin)


      I noticed there is no 32 bit pulse audio library in this new addon setup.
      In configure menu of addon, I made scripts executable, force use 32 bit libs etc. no change.
      then I stop kodi and tried to lauch from shell


      LibreELEC:~ # systemctl stop kodi
      LibreELEC:~ #
      LibreELEC:~ # cd /storage/.kodi/addons/emulator.tools.retroarch/bin/
      LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ls
      retroarch retroarch.sh retroarch.start retroarch_mod
      LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ldd retroarch
      $ not a dynamic executable
      LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ldd retroarch_mod
      $ not a dynamic executable
      LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ./retroarch.start
      ./retroarch.start: line 132: /storage/.kodi/addons/emulator.tools.retroarch/bin/retroarch_mod: Permission denied

      I think problem is the executables but no idea how are they compiled,

      sorry to bother you again , just trying to learn , I am not up to playing games



      Comment


        #4
        I'm definitely going to try this out on my Beelink MiniMXIII.

        I did spot a Lakka port for Odroid C2 but not for general S905 devices.


        I wanted to play through the best of the Metroid, Zelda and Mario games across the SNES, GBA and N64 as well as the other classics.

        If I can do it on a low wattage box rather than my desktop with no distracting fan noise - even better.

        LibreELEC 7.0.2.009 booting off an SD card with RetroArch sounds too good to be true!

        mGBA, Bnes and Mupen64Plus all work quite well.

        The PSX seems to be the limit of the Penta Mali-450.

        Maybe in a few years once these low end boxes become similar to or exceed the power found in an Galaxy S7 / Nvidia Shield we'll all be able to emulate Gamecube + Wii(U) through Dolphin & Cemu.

        What a treat that will be! Lots of exciting things happening in the emulation world atm i.e. Citra, Cemu, CEN64, paraLLel, etc.

        EDIT:
        Confirming the above:


        Got LibreELEC 7.0.2.009 booting off a MicroSD card.
        Installed the Program addons and the repository.
        Tried the permissions option and forcing 32bit libs in the addon options but RetroArch still won't start.
        Reverts back to the Kodi main menu.
        Last edited by mwnn; 11-13-2016, 14:28.

        Comment


          #5
          Originally posted by albundy View Post
          hello,

          Thank you for sharing this mod, it is very usefull to understand kodi, addons and general 32/64 bit working environment.

          I have mini m8s ii, it has s905x 2g ram.
          I tried your general 32 bit solution (/lib32 and /usr/lib32 folders, update LD_LIBRARY_PATH variable and symlink ld-linux-armhf.so.3),
          and now tried addon setup in this thread.
          In both configurations "retroarch.start" script or "retroarch" & "retroarch_mod" executables are not working.
          just kodi restarts (as expected as if returning from retroarch) and "dmesg | tail" gives:

          [ 1549.512171@0] aml_spdif_dai: share the same clock
          [ 1549.512179@0] aml_audio_hw: IEC958 PCM32
          [ 1549.512184@0] hdmitx: audio: aout notify rate 44100
          [ 1549.512188@0] hdmitx: audio: aout notify size 32
          [ 1549.512191@0] hdmitx: audio: no update
          [ 1549.512198@0] aml_snd_m8_card aml_m8_snd.46: i2s/958 same source
          [ 1549.512383@0] channel count should be 8, we got 2 aborting
          [ 1549.515759@0] aml_snd_m8_card aml_m8_snd.46: I2S playback enable
          [ 1549.515774@0] aml_snd_m8_card aml_m8_snd.46: IEC958 playback enable
          [ 1549.666445@0] fb: osd[0] enable: 1 (kodi.bin)


          I noticed there is no 32 bit pulse audio library in this new addon setup.
          In configure menu of addon, I made scripts executable, force use 32 bit libs etc. no change.
          then I stop kodi and tried to lauch from shell


          LibreELEC:~ # systemctl stop kodi
          LibreELEC:~ #
          LibreELEC:~ # cd /storage/.kodi/addons/emulator.tools.retroarch/bin/
          LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ls
          retroarch retroarch.sh retroarch.start retroarch_mod
          LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ldd retroarch
          $ not a dynamic executable
          LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ldd retroarch_mod
          $ not a dynamic executable
          LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ./retroarch.start
          ./retroarch.start: line 132: /storage/.kodi/addons/emulator.tools.retroarch/bin/retroarch_mod: Permission denied

          I think problem is the executables but no idea how are they compiled,

          sorry to bother you again , just trying to learn , I am not up to playing games


          It seems I missed to apply execution permissions to retroarch_mod in my addon. I will fix this in next release.

          For now, can you run this from SSH:
          Code:
          chmod 755 /storage/.kodi/addons/emulator.tools.retroarch/bin/retroarch_mod
          and then try again to start retroarch?

          You can also go to ssh, change to the directory with rettroarch_mod is and try to just get the help details as per below?
          Code:
          cd /storage/.kodi/addons/emulator.tools.retroarch/bin
          ./retroarch_mod --help
          Last edited by JoKeRz; 11-13-2016, 15:45.

          Comment


            #6
            I seem still to get this when doing the above.

            Is it related to the 32 bit libraries?
            https://www.google.co.uk/search?clie...UTF-8&oe=UTF-8

            Should I give your 008 MOD version a go?
            Attached Files
            Last edited by mwnn; 11-13-2016, 16:05.

            Comment


              #7
              Ok. Let's try one step before that then (and I apologize for asking you to run those tests - I will not have an S905 device with me for the next few weeks).

              Please try to just run the interpreter library to see if it is recognized as executable by kernel:

              Code:
              cd /storage/.kodi/addons/emulator.tools.retroarch/bin
              chmod 755 ../lib/ld-linux-armhf.so
              ../lib/ld-linux-armhf.so
              Hopefully you will see an output for the executable. If there is an output (=good news), run this (which is the same as ldd but using the 32 bits interpreter):
              Code:
               ../lib/ld-linux-armhf.so --list ./retroarch_mod
              Please post results.

              Comment


                #8
                ../lib/ld-linux-armhf.so --list ./retroarch_mod
                Returns the following:

                Code:
                librt.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/librt.so.1 (0xf73c0000)
                libm.so.6 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libm.so.6 (0xf7341000)
                libass.so.5 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libass.so.5 (0xf7315000)
                libasound.so.2 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libasound.so.2 (0xf7274000)
                libfreetype.so.6 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libfreetype.so.6 (0xf71e0000)
                libpthread.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libpthread.so.0 (0xf71b7000)
                libdbus-1.so.3 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libdbus-1.so.3 (0xf717e000)
                libudev.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libudev.so.1 (0xf7162000)
                libusb-1.0.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libusb-1.0.so.0 (0xf7156000)
                libEGL.so => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libEGL.so (0xf703d000)
                libGLESv2.so => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libGLESv2.so (0xf6f24000)
                libz.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libz.so.1 (0xf6f13000)
                libavcodec.so.56 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libavcodec.so.56 (0xf62a4000)
                libavformat.so.56 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libavformat.so.56 (0xf618d000)
                libavutil.so.54 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libavutil.so.54 (0xf612d000)
                libswscale.so.3 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libswscale.so.3 (0xf60d6000)
                libswresample.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libswresample.so.1 (0xf60b7000)
                libdl.so.2 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libdl.so.2 (0xf60a3000)
                libc.so.6 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libc.so.6 (0xf5f6c000)
                ../lib/ld-linux-armhf.so (0xaac0c000)
                libfontconfig.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libfontconfig.so.1 (0xf5f3a000)
                libexpat.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libexpat.so.1 (0xf5f1f000)
                libbz2.so.1.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libbz2.so.1.0 (0xf5f02000)
                libgcc_s.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libgcc_s.so.1 (0xf5ed5000)
                libsystemd.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libsystemd.so.0 (0xf5e67000)
                libresolv.so.2 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libresolv.so.2 (0xf5e42000)
                libvorbisenc.so.2 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libvorbisenc.so.2 (0xf5dc1000)
                libvorbis.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libvorbis.so.0 (0xf5da2000)
                libspeex.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libspeex.so.1 (0xf5d91000)
                libdcadec.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libdcadec.so.0 (0xf5d69000)
                libssl.so.35 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libssl.so.35 (0xf5d31000)
                libcrypto.so.35 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libcrypto.so.35 (0xf5c23000)
                libogg.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libogg.so.0 (0xf5c1e000)

                Comment


                  #9
                  Originally posted by mwnn View Post

                  Returns the following:

                  Code:
                  librt.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/librt.so.1 (0xf73c0000)
                  libm.so.6 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libm.so.6 (0xf7341000)
                  libass.so.5 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libass.so.5 (0xf7315000)
                  libasound.so.2 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libasound.so.2 (0xf7274000)
                  libfreetype.so.6 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libfreetype.so.6 (0xf71e0000)
                  libpthread.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libpthread.so.0 (0xf71b7000)
                  libdbus-1.so.3 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libdbus-1.so.3 (0xf717e000)
                  libudev.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libudev.so.1 (0xf7162000)
                  libusb-1.0.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libusb-1.0.so.0 (0xf7156000)
                  libEGL.so => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libEGL.so (0xf703d000)
                  libGLESv2.so => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libGLESv2.so (0xf6f24000)
                  libz.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libz.so.1 (0xf6f13000)
                  libavcodec.so.56 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libavcodec.so.56 (0xf62a4000)
                  libavformat.so.56 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libavformat.so.56 (0xf618d000)
                  libavutil.so.54 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libavutil.so.54 (0xf612d000)
                  libswscale.so.3 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libswscale.so.3 (0xf60d6000)
                  libswresample.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libswresample.so.1 (0xf60b7000)
                  libdl.so.2 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libdl.so.2 (0xf60a3000)
                  libc.so.6 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libc.so.6 (0xf5f6c000)
                  ../lib/ld-linux-armhf.so (0xaac0c000)
                  libfontconfig.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libfontconfig.so.1 (0xf5f3a000)
                  libexpat.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libexpat.so.1 (0xf5f1f000)
                  libbz2.so.1.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libbz2.so.1.0 (0xf5f02000)
                  libgcc_s.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libgcc_s.so.1 (0xf5ed5000)
                  libsystemd.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libsystemd.so.0 (0xf5e67000)
                  libresolv.so.2 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libresolv.so.2 (0xf5e42000)
                  libvorbisenc.so.2 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libvorbisenc.so.2 (0xf5dc1000)
                  libvorbis.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libvorbis.so.0 (0xf5da2000)
                  libspeex.so.1 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libspeex.so.1 (0xf5d91000)
                  libdcadec.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libdcadec.so.0 (0xf5d69000)
                  libssl.so.35 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libssl.so.35 (0xf5d31000)
                  libcrypto.so.35 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libcrypto.so.35 (0xf5c23000)
                  libogg.so.0 => /storage/.kodi/addons/emulator.tools.32bitlibs/lib/libogg.so.0 (0xf5c1e000)
                  Great! Maybe the command below fixed it?
                  Code:
                  chmod 755 ../lib/ld-linux-armhf.so
                  Can you now try again to open retroarch help by running this?

                  Code:
                    
                   cd /storage/.kodi/addons/emulator.tools.retroarch/bin
                  ./retroarch_mod --help

                  Comment


                    #10
                    I think we're making progress <3

                    Code:
                    ===================================================================
                    RetroArch: Frontend for libretro -- v1.3.6 -- 0d2198b --
                    Compiler: GCC (4.9.2) 32-bitBuilt: Oct 17 2016
                    ===================================================================
                    Usage: ./retroarch_mod [OPTIONS]... [FILE]
                      -h, --help            Show this help message.
                      -v, --verbose         Verbose logging.
                          --log-file=FILE   Log messages to FILE.
                          --version         Show version.
                          --features        Prints available features compiled into program.
                          --menu            Do not require content or libretro core to be loaded,
                                            starts directly in menu. If no arguments are passed to
                                            the program, it is equivalent to using --menu as only argument.
                      -s, --save=PATH       Path for save files (*.srm).
                      -S, --savestate=PATH  Path for the save state files (*.state).
                      -f, --fullscreen      Start the program in fullscreen regardless of config settings.
                      -c, --config=FILE     Path for config file.
                                    By default looks for config in $XDG_CONFIG_HOME/retroarch/retroarch.cfg,
                                    $HOME/.config/retroarch/retroarch.cfg,
                                    and $HOME/.retroarch.cfg.
                                    If a default config is not found, the program will attempt to create one based on the
                                    skeleton config (/etc/retroarch.cfg).
                    
                          --appendconfig=FILE
                                            Extra config files are loaded in, and take priority over
                                            config selected in -c (or default). Multiple configs are
                                            delimited by '|'.
                      -L, --libretro=FILE   Path to libretro implementation. Overrides any config setting.
                          --subsystem=NAME  Use a subsystem of the libretro core. Multiple content
                                            files are loaded as multiple arguments. If a content
                                            file is skipped, use a blank ("") command line argument.
                                            Content must be loaded in an order which depends on the
                                            particular subsystem used. See verbose log output to learn
                                            how a particular subsystem wants content to be loaded.
                    
                      -N, --nodevice=PORT
                                            Disconnects controller device connected to PORT (1 to 16).
                      -A, --dualanalog=PORT
                                            Connect a DualAnalog controller to PORT (1 to 16).
                      -d, --device=PORT:ID
                                            Connect a generic device into PORT of the device (1 to 16).
                                            Format is PORT:ID, where ID is a number corresponding to the particular device.
                      -P, --bsvplay=FILE    Playback a BSV movie file.
                      -R, --bsvrecord=FILE  Start recording a BSV movie file from the beginning.
                          --eof-exit        Exit upon reaching the end of the BSV movie file.
                      -M, --sram-mode=MODE  SRAM handling mode. MODE can be 'noload-nosave',
                                            'noload-save', 'load-nosave' or 'load-save'.
                                            Note: 'noload-save' implies that save files *WILL BE OVERWRITTEN*.
                      -H, --host            Host netplay as user 1.
                      -C, --connect=HOST    Connect to netplay server as user 2.
                          --port=PORT       Port used to netplay. Default is 55435.
                      -F, --frames=NUMBER   Sync frames when using netplay.
                          --check-frames=NUMBER
                                            Check frames when using netplay.
                          --spectate        Connect to netplay server as spectator.
                          --command         Sends a command over UDP to an already running program process.
                          Available commands are listed if command is invalid.
                          --nick=NICK       Picks a username (for use with netplay). Not mandatory.
                      -r, --record=FILE     Path to record video file.
                            Using .mkv extension is recommended.
                          --recordconfig    Path to settings used during recording.
                          --size=WIDTHxHEIGHT
                                            Overrides output video size when recording.
                      -U, --ups=FILE        Specifies path for UPS patch that will be applied to content.
                          --bps=FILE        Specifies path for BPS patch that will be applied to content.
                          --ips=FILE        Specifies path for IPS patch that will be applied to content.
                          --no-patch        Disables all forms of content patching.
                      -D, --detach          Detach program from the running console. Not relevant for all platforms.
                          --max-frames=NUMBER
                                            Runs for the specified number of frames, then exits.

                    Code:
                    LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ./retroarch_mod
                    sh: setterm: not found
                    Segmentation fault (core dumped)

                    Comment


                      #11
                      Originally posted by mwnn View Post
                      I think we're making progress <3

                      Code:
                      ===================================================================
                      RetroArch: Frontend for libretro -- v1.3.6 -- 0d2198b --
                      Compiler: GCC (4.9.2) 32-bitBuilt: Oct 17 2016
                      ===================================================================
                      Usage: ./retroarch_mod [OPTIONS]... [FILE]
                      -h, --help Show this help message.
                      -v, --verbose Verbose logging.
                      --log-file=FILE Log messages to FILE.
                      --version Show version.
                      --features Prints available features compiled into program.
                      --menu Do not require content or libretro core to be loaded,
                      starts directly in menu. If no arguments are passed to
                      the program, it is equivalent to using --menu as only argument.
                      -s, --save=PATH Path for save files (*.srm).
                      -S, --savestate=PATH Path for the save state files (*.state).
                      -f, --fullscreen Start the program in fullscreen regardless of config settings.
                      -c, --config=FILE Path for config file.
                      By default looks for config in $XDG_CONFIG_HOME/retroarch/retroarch.cfg,
                      $HOME/.config/retroarch/retroarch.cfg,
                      and $HOME/.retroarch.cfg.
                      If a default config is not found, the program will attempt to create one based on the
                      skeleton config (/etc/retroarch.cfg).
                      
                      --appendconfig=FILE
                      Extra config files are loaded in, and take priority over
                      config selected in -c (or default). Multiple configs are
                      delimited by '|'.
                      -L, --libretro=FILE Path to libretro implementation. Overrides any config setting.
                      --subsystem=NAME Use a subsystem of the libretro core. Multiple content
                      files are loaded as multiple arguments. If a content
                      file is skipped, use a blank ("") command line argument.
                      Content must be loaded in an order which depends on the
                      particular subsystem used. See verbose log output to learn
                      how a particular subsystem wants content to be loaded.
                      
                      -N, --nodevice=PORT
                      Disconnects controller device connected to PORT (1 to 16).
                      -A, --dualanalog=PORT
                      Connect a DualAnalog controller to PORT (1 to 16).
                      -d, --device=PORT:ID
                      Connect a generic device into PORT of the device (1 to 16).
                      Format is PORT:ID, where ID is a number corresponding to the particular device.
                      -P, --bsvplay=FILE Playback a BSV movie file.
                      -R, --bsvrecord=FILE Start recording a BSV movie file from the beginning.
                      --eof-exit Exit upon reaching the end of the BSV movie file.
                      -M, --sram-mode=MODE SRAM handling mode. MODE can be 'noload-nosave',
                      'noload-save', 'load-nosave' or 'load-save'.
                      Note: 'noload-save' implies that save files *WILL BE OVERWRITTEN*.
                      -H, --host Host netplay as user 1.
                      -C, --connect=HOST Connect to netplay server as user 2.
                      --port=PORT Port used to netplay. Default is 55435.
                      -F, --frames=NUMBER Sync frames when using netplay.
                      --check-frames=NUMBER
                      Check frames when using netplay.
                      --spectate Connect to netplay server as spectator.
                      --command Sends a command over UDP to an already running program process.
                      Available commands are listed if command is invalid.
                      --nick=NICK Picks a username (for use with netplay). Not mandatory.
                      -r, --record=FILE Path to record video file.
                      Using .mkv extension is recommended.
                      --recordconfig Path to settings used during recording.
                      --size=WIDTHxHEIGHT
                      Overrides output video size when recording.
                      -U, --ups=FILE Specifies path for UPS patch that will be applied to content.
                      --bps=FILE Specifies path for BPS patch that will be applied to content.
                      --ips=FILE Specifies path for IPS patch that will be applied to content.
                      --no-patch Disables all forms of content patching.
                      -D, --detach Detach program from the running console. Not relevant for all platforms.
                      --max-frames=NUMBER
                      Runs for the specified number of frames, then exits.
                      Awesome. Now just try to launch it from Kodi using the addon. I think it will work! I will start fixing the addon to correct these things.

                      Comment


                        #12
                        same results,

                        additionally;

                        LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ./retroarch_mod --help
                        -sh: ./retroarch_mod: Permission denied

                        Comment


                          #13
                          I don't have the permissions issue anymore but RetroArch still fails to load.

                          Code:
                          sh: setterm: not found
                          Segmentation fault (core dumped)
                          Attached Files

                          Comment


                            #14
                            Ok, so we have different results from mwnn and albundy. Can both of you tell what build of LibreElec you are running? Also...

                            @mwnn: can you please run the following and post results here?
                            Code:
                            cd /storage/.kodi/addons/emulator.tools.retroarch/bin
                            ./retroarch_mod -v
                            so we can try to assess where the segmentation fault is happening?

                            @albundy: have you tried these steps below already? Can you post results of running these?
                            Code:
                            cd /storage/.kodi/addons/emulator.tools.retroarch/bin
                            chmod 755 ../lib/ld-linux-armhf.so
                            ../lib/ld-linux-armhf.so
                            and
                            Code:
                             ../lib/ld-linux-armhf.so --list ./retroarch_mod

                            Comment


                              #15
                              sorry I could not catch up .
                              after fixing permissions of "ld-linux-armhf.so" I've got retroarch_mod help menu..
                              I confirm same results with mwnn.

                              Also the long library listing is the same.


                              LibreELEC:~/.kodi/addons/emulator.tools.retroarch/bin # ./retroarch_mod -v
                              RetroArch [INFO] :: === Build =======================================
                              Capabilities: NEON VFPv3 VFPv4
                              Built: Oct 17 2016
                              RetroArch [INFO] :: Version: 1.3.6
                              RetroArch [INFO] :: Git: 0d2198b
                              RetroArch [INFO] :: =================================================
                              RetroArch [INFO] :: Loading default config.
                              RetroArch [INFO] :: Looking for config in: "/storage/.config/retroarch/retroarch .cfg".
                              RetroArch [WARN] :: screenshot_directory is not an existing directory, ignoring ...
                              RetroArch [INFO] :: Resetting undo buffers.
                              RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565.
                              RetroArch [INFO] :: Version of libretro API: 1
                              RetroArch [INFO] :: Compiled against API: 1
                              RetroArch [INFO] :: Set audio input rate to: 29970.03 Hz.
                              RetroArch [INFO] :: Video @ 960x720
                              RetroArch [ERROR] :: [EGL]: Couldn't get EGL display.
                              RetroArch [ERROR] :: [EGL]: #0x3000, EGL_SUCCESS
                              RetroArch [ERROR] :: [Mali fbdev]: EGL error: 12288.
                              sh: setterm: not found
                              RetroArch [INFO] :: Found GL context: null
                              RetroArch [INFO] :: Detecting screen resolution 320x240.
                              RetroArch [INFO] :: [GL]: Vendor: (null), Renderer: (null).
                              RetroArch [INFO] :: [GL]: Version: (null).
                              Segmentation fault (core dumped)

                              Comment

                              Working...
                              X