RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    moonlight: request for comments and testing

    Scheduled Pinned Locked Moved Ideas and Development
    moonlighttestingscriptmodulestreamingsteam
    147 Posts 21 Posters 43.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      hhromic
      last edited by

      Update
      The fix was solved upstream now (that was quick!). The temporary patch is now dropped as is no longer needed. Moonlight is again working fine with GFE 3.16

      1 Reply Last reply Reply Quote 0
      • SwampyS
        Swampy
        last edited by

        It works.

        Thank you for your fast solution.

        Linux is like wigwam: no Gates, no Windows and Apache inside.

        H 1 Reply Last reply Reply Quote 1
        • H
          hhromic @Swampy
          last edited by

          @Swampy glad to hear!

          1 Reply Last reply Reply Quote 0
          • L
            LeSabotageur @hhromic
            last edited by

            @hhromic I've finally got a go at it, but sadly I've still encountered errors at the generation of files (yeah, it's a bit long...) :

            Generating config file for 'The Elder Scrolls V: Skyrim' ...
            touch: setting times of '/home/pi/RetroPie/roms/steam/The Elder Scrolls V: Skyrim.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/The Elder Scrolls V: Skyrim.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/The Elder Scrolls V: Skyrim.ml: Invalid argument
            touch: setting times of '/home/pi/RetroPie/roms/steam/The Elder Scrolls V: Skyrim.ml': No such file or directory
            touch: setting times of '/home/pi/RetroPie/roms/steam/The Elder Scrolls V: Skyrim.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/The Elder Scrolls V: Skyrim.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/The Elder Scrolls V: Skyrim.ml: Invalid argument
            chown: cannot access '/home/pi/RetroPie/roms/steam/The Elder Scrolls V: Skyrim.ml': No such file or directory
            Generating config file for 'Hotline Miami 2: Wrong Number' ...
            touch: setting times of '/home/pi/RetroPie/roms/steam/Hotline Miami 2: Wrong Number.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/Hotline Miami 2: Wrong Number.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/Hotline Miami 2: Wrong Number.ml: Invalid argument
            touch: setting times of '/home/pi/RetroPie/roms/steam/Hotline Miami 2: Wrong Number.ml': No such file or directory
            touch: setting times of '/home/pi/RetroPie/roms/steam/Hotline Miami 2: Wrong Number.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/Hotline Miami 2: Wrong Number.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/Hotline Miami 2: Wrong Number.ml: Invalid argument
            chown: cannot access '/home/pi/RetroPie/roms/steam/Hotline Miami 2: Wrong Number.ml': No such file or directory
            Generating config file for 'Metro: Last Light' ...
            touch: setting times of '/home/pi/RetroPie/roms/steam/Metro: Last Light.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/Metro: Last Light.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/Metro: Last Light.ml: Invalid argument
            touch: setting times of '/home/pi/RetroPie/roms/steam/Metro: Last Light.ml': No such file or directory
            touch: setting times of '/home/pi/RetroPie/roms/steam/Metro: Last Light.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/Metro: Last Light.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/Metro: Last Light.ml: Invalid argument
            chown: cannot access '/home/pi/RetroPie/roms/steam/Metro: Last Light.ml': No such file or directory
            Generating config file for 'Metro: Last Light' ...
            touch: setting times of '/home/pi/RetroPie/roms/steam/Metro: Last Light.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/Metro: Last Light.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/Metro: Last Light.ml: Invalid argument
            touch: setting times of '/home/pi/RetroPie/roms/steam/Metro: Last Light.ml': No such file or directory
            touch: setting times of '/home/pi/RetroPie/roms/steam/Metro: Last Light.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/Metro: Last Light.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/Metro: Last Light.ml: Invalid argument
            chown: cannot access '/home/pi/RetroPie/roms/steam/Metro: Last Light.ml': No such file or directory
            Generating config file for 'DuckTales: Remastered' ...
            touch: setting times of '/home/pi/RetroPie/roms/steam/DuckTales: Remastered.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/DuckTales: Remastered.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/DuckTales: Remastered.ml: Invalid argument
            touch: setting times of '/home/pi/RetroPie/roms/steam/DuckTales: Remastered.ml': No such file or directory
            touch: setting times of '/home/pi/RetroPie/roms/steam/DuckTales: Remastered.ml': No such file or directory
            sed: cannot stat /home/pi/RetroPie/roms/steam/DuckTales: Remastered.ml: No such file or directory
            /home/pi/RetroPie-Setup/scriptmodules/inifuncs.sh: line 82: /home/pi/RetroPie/roms/steam/DuckTales: Remastered.ml: Invalid argument
            chown: cannot access '/home/pi/RetroPie/roms/steam/DuckTales: Remastered.ml': No such file or directory
            Press ENTER to continue...
            
            

            But that's minor, and from what I've tested lately it works great.

            Now I'm gonna check out that Steam Link integration and see how it fares compared to moonlight !

            H 1 Reply Last reply Reply Quote 1
            • ?
              A Former User
              last edited by A Former User

              @hhromic Just pulled in the patch on the latest versions of everything, and was able to build, and then set up via:

              sudo ./retropie_packages.sh moonlight gui
              

              It worked great (and also let me easily build the current upstream HEAD so that the latest GFE would work)!

              I ran into 2 minor issues, which were user error, and possibly something to note in case someone else runs into it as well. I had initially set up moonlight via this script. I needed to do both of the following options from that script to have the scriptmodule versions show up in RetroPie instead:

              3: Remove Launch Scripts
              7: Refresh SYSTEMS Config File
              

              Other than that, things are working great! A quick feature request would be to build moonlights configuration options into runcommand (bitrate, fps, width and height, etc.) . It would be reallyslick to be able to change those settings on the fly, to be able to find the best settings without having to leave your seat / controller.

              1 Reply Last reply Reply Quote 1
              • H
                hhromic @LeSabotageur
                last edited by hhromic

                @LeSabotageur the issue you are experiencing is very puzzling, shouldn't happen at all. I would like to get to the bottom of your issue to make sure is not an overlooking in the scriptmodule :)

                Can you please run these commands and report back the output for each?

                $ git -C $HOME/RetroPie-Setup log --oneline -n 10
                $ ls -la $HOME/RetroPie/roms
                $ ls -la $HOME/RetroPie/roms/steam
                $ /opt/retropie/supplementary/moonlight/moonlight.sh list
                

                Thanks a lot for testing and giving positive feedback! Moonlight is a great game streaming client.

                @jml , also thanks for the testing ! I'm glad you are happy with the scriptmodule state and enjoying moonlight so far. Indeed users should clean any previous moonlight scripts/installations.

                Regarding your suggestion with runcommand, unfortunately it doesn't have any programming API or extensibility to implement such features from this scriptmodule. However, if you are not afraid of the console, what you can do it so generate a set of configurations for testing and put them in a subfolder inside the steam folder. For example something like this:

                $ DIR=$HOME/RetroPie/roms/steam/testing
                $ mkdir -p $DIR
                $ for fps in 30 60; do for bitrate in 5000 10000 15000; do cat > $DIR/launch-$fps-$bitrate.ml << _EOF_; done; done
                config = /opt/retropie/configs/all/moonlight/global.conf
                fps = $fps
                bitrate = $bitrate
                app = Steam
                _EOF_
                

                If you get the idea, you can further create combinations for width/height parameters too. After this, you will have all these options launchable from EmulationStation for quick testing in a testing subfolder under the steam system, alongside your normal configs.

                L 1 Reply Last reply Reply Quote 0
                • L
                  LeSabotageur @hhromic
                  last edited by

                  @hhromic there you go :

                  pi@retropie:~ $ git -C $HOME/RetroPie-Setup log --oneline -n 10
                  f0d9a9c3 Merge pull request #2550 from psyke83/steamlink
                  12feabbd Add steamlink to ports
                  6145f1db Merge pull request #2548 from RetroHursty69/master
                  7bfe0b7f Update esthemes.sh with new Batman Theme
                  9c54ef8b Merge pull request #2547 from RetroHursty69/master
                  4db6dc18 Update esthemes.sh with new PiTube theme
                  6c62e3cd apidocs - use older version of bash-doxygen due to upstream bug  * https://github.com/Anvil/bash-doxygen/pull/16
                  6e23713f Merge pull request #2545 from joolswills/ctrl_c_fix
                  163668a5 setup - wrap tee/gzip logging using setsid to stop them receiving signals for the parent shell - #2524
                  ffefe154 Merge pull request #2546 from hhromic/fixbuild-lr-mupen64plus
                  
                  pi@retropie:~ $ ls -la $HOME/RetroPie/roms
                  total 1728
                  drwxr-xr-x 34 pi pi  32768 Nov 22 17:59 .
                  drwxr-xr-x  9 pi pi  32768 Nov 22 17:59 ..
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 amstradcpc
                  drwxr-xr-x  3 pi pi  32768 Sep 21  2017 arcade
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 atari2600
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 atari7800
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 atarilynx
                  drwxr-xr-x  3 pi pi  32768 Nov 12  2017 dreamcast
                  drwxr-xr-x  3 pi pi 229376 Sep 30 20:15 fba
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 fds
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 gamegear
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 gb
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 gba
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 gbc
                  drwxr-xr-x  2 pi pi  32768 Dec 10  2017 limelight
                  drwxr-xr-x  3 pi pi  32768 Nov  3  2017 mame-libretro
                  drwxr-xr-x  4 pi pi  32768 Nov  3  2017 mame-mame4all
                  drwxr-xr-x  3 pi pi  98304 Sep 21  2017 mastersystem
                  drwxr-xr-x  3 pi pi 393216 Oct 28 17:22 megadrive
                  drwxr-xr-x  3 pi pi  32768 Sep 21  2017 n64
                  drwxr-xr-x  3 pi pi  32768 Sep 11 16:54 neogeo
                  drwxr-xr-x  3 pi pi  32768 Sep 11 16:41 nes
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 ngp
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 ngpc
                  drwxr-xr-x  3 pi pi  65536 Dec  2 13:27 pcengine
                  drwxr-xr-x  3 pi pi  32768 Dec  4 18:16 ports
                  drwxr-xr-x  3 pi pi  32768 Sep 11 17:07 psx
                  drwxr-xr-x  3 pi pi  32768 May  2  2018 sega32x
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 segacd
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 sg-1000
                  drwxr-xr-x  3 pi pi  32768 Nov 10 16:38 snes
                  drwxr-xr-x  3 pi pi  32768 Dec  1 12:04 steam
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 vectrex
                  drwxr-xr-x  2 pi pi  32768 Sep 21  2017 zxspectrum
                  
                  pi@retropie:~ $ ls -la $HOME/RetroPie/roms/steam
                  total 1920
                  drwxr-xr-x  3 pi pi 32768 Dec  1 12:04 .
                  drwxr-xr-x 34 pi pi 32768 Nov 22 17:59 ..
                  -rwxr-xr-x  1 pi pi    77 Dec  1 12:04 7 Days to Die.ml
                  -rwxr-xr-x  1 pi pi    55 Nov 22 18:01 7 Days to Die.sh
                  -rwxr-xr-x  1 pi pi    72 Dec  1 12:04 Broforce.ml
                  -rwxr-xr-x  1 pi pi    50 Nov 22 18:01 Broforce.sh
                  -rwxr-xr-x  1 pi pi    69 Dec  1 12:04 Crawl.ml
                  -rwxr-xr-x  1 pi pi    47 Nov 22 18:01 Crawl.sh
                  -rwxr-xr-x  1 pi pi    74 Dec  1 12:04 Dark Souls.ml
                  -rwxr-xr-x  1 pi pi    52 Nov 22 18:01 Dark Souls.sh
                  -rwxr-xr-x  1 pi pi    94 Dec  1 12:04 Day of the Tentacle Remastered.ml
                  -rwxr-xr-x  1 pi pi    72 Nov 22 18:01 Day of the Tentacle Remastered.sh
                  -rwxr-xr-x  1 pi pi    74 Dec  1 12:04 Dishonored.ml
                  -rwxr-xr-x  1 pi pi    52 Nov 22 18:01 Dishonored.sh
                  -rwxr-xr-x  1 pi pi    63 Nov 22 18:01 DuckTales Remastered.sh
                  -rwxr-xr-x  1 pi pi   451 Dec  1 21:20 gamelist.xml
                  -rwxr-xr-x  1 pi pi  2824 Nov 22 18:01 GenerateGamesList.py
                  -rwxr-xr-x  1 pi pi    74 Dec  1 12:04 Helldivers.ml
                  -rwxr-xr-x  1 pi pi    52 Nov 22 18:01 Helldivers.sh
                  -rwxr-xr-x  1 pi pi    71 Nov 22 18:01 Hotline Miami 2 Wrong Number.sh
                  drwxr-xr-x  2 pi pi 32768 Nov 22 18:03 images
                  -rwxr-xr-x  1 pi pi   100 Dec  1 12:04 Lara Croft and the Guardian of Light.ml
                  -rwxr-xr-x  1 pi pi    78 Nov 22 18:01 Lara Croft and the Guardian of Light.sh
                  -rwxr-xr-x  1 pi pi    59 Nov 22 18:01 Metro Last Light.sh
                  -rwxr-xr-x  1 pi pi    73 Dec  1 12:04 Minecraft.ml
                  -rwxr-xr-x  1 pi pi    51 Nov 22 18:01 Minecraft.sh
                  -rwxr-xr-x  1 pi pi    74 Dec  1 12:04 Overcooked.ml
                  -rwxr-xr-x  1 pi pi    52 Nov 22 18:01 Overcooked.sh
                  -rwxr-xr-x  1 pi pi    68 Dec  1 12:04 Prey.ml
                  -rwxr-xr-x  1 pi pi    46 Nov 22 18:01 Prey.sh
                  -rwxr-xr-x  1 pi pi    78 Dec  1 12:04 Rayman Legends.ml
                  -rwxr-xr-x  1 pi pi    56 Nov 22 18:01 Rayman Legends.sh
                  -rwxr-xr-x  1 pi pi   131 Nov 22 18:00 Refresh.sh
                  -rwxr-xr-x  1 pi pi    76 Dec  1 12:04 Renegade Ops.ml
                  -rwxr-xr-x  1 pi pi    54 Nov 22 18:01 Renegade Ops.sh
                  -rwxr-xr-x  1 pi pi    89 Dec  1 12:04 Resident Evil HD REMASTER.ml
                  -rwxr-xr-x  1 pi pi    67 Nov 22 18:01 Resident Evil HD REMASTER.sh
                  -rwxr-xr-x  1 pi pi    76 Dec  1 12:04 Rogue Legacy.ml
                  -rwxr-xr-x  1 pi pi    54 Nov 22 18:01 Rogue Legacy.sh
                  -rwxr-xr-x  1 pi pi    68 Dec  1 12:04 Soma.ml
                  -rwxr-xr-x  1 pi pi    46 Nov 22 18:01 Soma.sh
                  -rwxr-xr-x  1 pi pi   102 Dec  1 12:04 Sonic and All-Stars Racing Transformed.ml
                  -rwxr-xr-x  1 pi pi    80 Nov 22 18:01 Sonic and All-Stars Racing Transformed.sh
                  -rwxr-xr-x  1 pi pi    78 Dec  1 12:04 Stardew Valley.ml
                  -rwxr-xr-x  1 pi pi    56 Nov 22 18:01 Stardew Valley.sh
                  -rwxr-xr-x  1 pi pi    69 Dec  1 12:04 Steam.ml
                  -rwxr-xr-x  1 pi pi    47 Nov 22 18:01 Steam.sh
                  -rwxr-xr-x  1 pi pi    72 Dec  1 12:04 Terraria.ml
                  -rwxr-xr-x  1 pi pi    50 Nov 22 18:01 Terraria.sh
                  -rwxr-xr-x  1 pi pi    69 Nov 22 18:01 The Elder Scrolls V Skyrim.sh
                  -rwxr-xr-x  1 pi pi    79 Dec  1 12:04 The Expendabros.ml
                  -rwxr-xr-x  1 pi pi    57 Nov 22 18:01 The Expendabros.sh
                  -rwxr-xr-x  1 pi pi    75 Dec  1 12:04 The Witness.ml
                  -rwxr-xr-x  1 pi pi    53 Nov 22 18:01 The Witness.sh
                  -rwxr-xr-x  1 pi pi    71 Dec  1 12:04 Trine 2.ml
                  -rwxr-xr-x  1 pi pi    49 Nov 22 18:01 Trine 2.sh
                  -rwxr-xr-x  1 pi pi    76 Dec  1 12:04 Walking Dead.ml
                  -rwxr-xr-x  1 pi pi    54 Nov 22 18:01 Walking Dead.sh
                  -rwxr-xr-x  1 pi pi    72 Dec  1 12:04 Warframe.ml
                  -rwxr-xr-x  1 pi pi    50 Nov 22 18:01 Warframe.sh
                  
                  pi@retropie:~ $ /opt/retropie/supplementary/moonlight/moonlight.sh list
                  Searching for server...
                  Connect to 192.168.0.7...
                  1. Walking Dead
                  2. Stardew Valley
                  3. Sonic and All-Stars Racing Transformed
                  4. The Elder Scrolls V: Skyrim
                  5. Broforce
                  6. Crawl
                  7. Steam
                  8. Hotline Miami 2: Wrong Number
                  9. Trine 2
                  10. Terraria
                  11. Lara Croft and the Guardian of Light
                  12. Rogue Legacy
                  13. Metro: Last Light
                  14. Soma
                  15. Steam
                  16. Warframe
                  17. Prey
                  18. Helldivers
                  19. Resident Evil HD REMASTER
                  20. Dishonored
                  21. Minecraft
                  22. Renegade Ops
                  23. Day of the Tentacle Remastered
                  24. Metro: Last Light
                  25. Dark Souls
                  26. Rayman Legends
                  27. DuckTales: Remastered
                  28. Overcooked
                  29. The Witness
                  30. The Expendabros
                  31. 7 Days to Die
                  
                  H 1 Reply Last reply Reply Quote 1
                  • H
                    hhromic @LeSabotageur
                    last edited by hhromic

                    @LeSabotageur except for the permissions of the .ml files, that shouldn't need to be 755, everything seems it should work.

                    However, I just had a hunch. Are you using Samba to mount the roms folder from a WIndows share? Windows doesn't like : characters indeed.
                    Can you please give me the output of this command:

                    $ mount
                    

                    Thanks for testing! We will get to the bottom of this mystery.

                    L 1 Reply Last reply Reply Quote 1
                    • L
                      LeSabotageur @hhromic
                      last edited by LeSabotageur

                      @hhromic I think that's it, because my roms folder is actually on a HDD with a FAT32 partition. I'm not that well-versed in linux or in partition type, but that might be the problem here. Anyway, here's the output :

                      pi@retropie:~ $ mount
                      /dev/mmcblk0p2 on / type ext4 (rw,noatime,data=ordered)
                      devtmpfs on /dev type devtmpfs (rw,relatime,size=378780k,nr_inodes=94695,mode=755)
                      sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
                      proc on /proc type proc (rw,relatime)
                      tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
                      devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
                      tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
                      tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
                      tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
                      cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
                      cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
                      cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
                      cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
                      cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
                      cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
                      cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
                      sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
                      mqueue on /dev/mqueue type mqueue (rw,relatime)
                      systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=32,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
                      debugfs on /sys/kernel/debug type debugfs (rw,relatime)
                      configfs on /sys/kernel/config type configfs (rw,relatime)
                      /dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
                      /dev/sda1 on /media/usb0 type vfat (rw,nodev,noexec,noatime,nodiratime,sync,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
                      /dev/sda1 on /home/pi/RetroPie type vfat (rw,nodev,noexec,noatime,nodiratime,sync,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
                      tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=76676k,mode=700,uid=1000,gid=1000)
                      

                      And thanks again to you for your time on this :)

                      H 1 Reply Last reply Reply Quote 1
                      • H
                        hhromic
                        last edited by

                        Bingo! That's the problem, yes. Your $HOME/RetroPie folder is indeed mounted on a vfat (FAT32) partition instead of the home ext4 partition. Good, we found the cause!
                        I will think on a solution to keep this scenario happy. I don't want to simply remove the : characters as they are nice for the filesystems that do support them. When I have something I will come back, thanks!

                        1 Reply Last reply Reply Quote 1
                        • H
                          hhromic @LeSabotageur
                          last edited by

                          @LeSabotageur ok I think I solved it now for you. Can you update your local moonlight scriptmodule patch?

                          What it is doing now is to check if the rom directory filesystem supports special characters. If this is the case then no mangling is done (for example for ext4 partitions). On the other hand, for these filesystems that do not support special characters (for example for vfat partitions), then these are removed from the config filename. In any case the value given to appin the config is always the full name given in your GFE configuration, so all should work.

                          Let me know if you can generate your config files now. Thanks for the testing, I would never have noticed this by myself as I don't use vfat partitions for my roms :)

                          L 1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User
                            last edited by

                            @hhromic: Did some more testing, and noticed a slight oddity. When loading The Witcher 3 from the autogenerated .ml file, the controller no longer works. If I load up Steam first, and then The Wither 3 from there, everything works. Let me know if you've got any logs you'd like me to grab / need any other info.

                            H 1 Reply Last reply Reply Quote 1
                            • L
                              LeSabotageur @hhromic
                              last edited by

                              @hhromic It worked ! I now see them in my steam folder.
                              Thanks once more for your help, I'll come back here if I ever have something to report, but in the meantime, I'm gonna enjoy some PC-gaming action in couch mode :)

                              H 1 Reply Last reply Reply Quote 1
                              • H
                                hhromic @A Former User
                                last edited by

                                @jml said in moonlight: request for comments and testing:

                                @hhromic: Did some more testing, and noticed a slight oddity. When loading The Witcher 3 from the autogenerated .ml file, the controller no longer works. If I load up Steam first, and then The Wither 3 from there, everything works. Let me know if you've got any logs you'd like me to grab / need any other info.

                                Let me understand your issue first. You have two .ml config files like this (maybe you have address in them if you are not using autodiscovery):

                                A Steam.ml file:

                                config = /opt/retropie/configs/all/moonlight/global.conf
                                app = Steam
                                

                                And a The Witcher 3.ml file:

                                config = /opt/retropie/configs/all/moonlight/global.conf
                                app = The Witcher 3
                                

                                Then, when you launch The Witcher 3.ml directly, your controller doesn't work. But if you launch Steam.ml and inside Big Picture Mode you launch the game, it works. Is this the case?

                                Thanks for testing!

                                ? 1 Reply Last reply Reply Quote 0
                                • H
                                  hhromic @LeSabotageur
                                  last edited by

                                  @LeSabotageur said in moonlight: request for comments and testing:

                                  @hhromic It worked ! I now see them in my steam folder.
                                  Thanks once more for your help, I'll come back here if I ever have something to report, but in the meantime, I'm gonna enjoy some PC-gaming action in couch mode :)

                                  Great to hear! Yes, go enjoy some game streaming :). If you are also testing Steam Link, it would be very interesting to hear your experiences on both streaming technologies. They work differently internally so is not necessary one is better than the other. Cheers!

                                  1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User @hhromic
                                    last edited by

                                    @hhromic Correct!

                                    pi@retropie:~/RetroPie/roms/steam $ tail -n +1 Steam.ml The\ Witcher\ 3\:\ Wild\ Hunt.ml
                                    ==> Steam.ml <==
                                    config = /opt/retropie/configs/all/moonlight/global.conf
                                    app = Steam
                                    
                                    ==> The Witcher 3: Wild Hunt.ml <==
                                    config = /opt/retropie/configs/all/moonlight/global.conf
                                    app = The Witcher 3: Wild Hunt
                                    
                                    H 1 Reply Last reply Reply Quote 0
                                    • H
                                      hhromic @A Former User
                                      last edited by

                                      @jml I see, then is very weird what is happening as both files seem normal. Can you please get the log in /dev/shm/runcommand.log for each case? Just start the session, try the game, close the streaming session and then grab the log.
                                      Also, does this happen only with The Witcher 3? Thanks for testing!

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        seriously24
                                        last edited by

                                        Hi,

                                        So I just tried using the script today to redo a full installation of RetroPie 4.4 and Moonlight on Raspberry 3, and gotta say that everything worked like a charm.
                                        The script is installed super-easily, and runs without issue. I got moonlight installed and (some of) my games automatically imported in a breeze. A few improvements/remarks though :

                                        • Only bug I am experiencing : I use moonlight to do some Remote Desktop too (using mstsc.exe as an app on available Shield applications), and once I quit it by doing Alt+Ctrl+Shift+Q, and when I go back to my pc, all the controls are messed up. My PC keyboard doesn't work anymore and the mouse buttons are acting weird. Also the sound doesn't work as it stays on "Nvidia Speakers", instead of my "Realtek high Definition" drivers. Maybe some controller mapping that is not correctly refreshed ?
                                        • Not sure if it is in the gui config, but it would be great to have a global.conf "autoconfigurator". By that I mean, at the end of the installation, or in the GUI it would be nice to have something where you can say "Ok I want 1920x10806fps" fast and easy. Not critical though since you can do this by editing the conf file manually. But still, would be cool to have.
                                        • Finally, one concern about the actual script. I don't know how the moonlight-embedded github is moderated in terms of merges in the default branch, but using it as the source of this script by default might be a quite "ballsy" move, as you may sometimes fetch buggy code. Also, it will make it really hard for anyone using this script to debug their bugs, as they will have no idea which version of moonlight-embedded they have fetched. Keeping an option in the script to compile from last sources known is super cool, and it is really helpful right now as there is no official release of moonlight-embedded to match the current Geforce Experience version. But I don't think it should be the default choice, or at least let people choose if they want the last release known from apt-get (or the last release on the git repo)

                                        But really, awesome work man, it's a really great tool and works perfectly well ! Will surely continue using and keeping an eye on its development.

                                        H 1 Reply Last reply Reply Quote 1
                                        • H
                                          hhromic @seriously24
                                          last edited by hhromic

                                          @seriously24 first, thanks for testing! I'm glad the scriptmodule works good for you.

                                          I got moonlight installed and (some of) my games automatically imported in a breeze.

                                          You are having issues when autogenerating the config files for some games? Which ones? Can you describe what happens? Errors?

                                          • Only bug I am experiencing : I use moonlight to do some Remote Desktop too (using mstsc.exe as an app on available Shield applications), and once I quit it by doing Alt+Ctrl+Shift+Q, and when I go back to my pc, all the controls are messed up. My PC keyboard doesn't work anymore and the mouse buttons are acting weird. Also the sound doesn't work as it stays on "Nvidia Speakers", instead of my "Realtek high Definition" drivers. Maybe some controller mapping that is not correctly refreshed ?

                                          Good you mention this! I also experience the same issue myself. The problem is that when quitting moonlight like that, it simply finishes the streaming session on its side immediately and terminates. Then, is up to the GFE server to clean-up the host computer and this is not happening gracefully.

                                          To gracefully exit, the moonlight client instead has to send a request to quit packet to the server. This is what the quit option does in moonlight, for example with /opt/retropie/supplementary/moonlight/moonlight.sh quit.

                                          Of course we don't want to be opening a console to write that command every time we want to quit, therefore I created a patch that adds a new key combo (Alt+Ctrl+Shift+X on keyboard or Play+Back+LThumb+RThumb on gamepad) that sends said request from the session. When GFE finishes processing it, including freeing the gamepads and sound redirection, then moonlight gets a remote disconnection and quits gracefully too.
                                          So far my patch is working fine for me here locally, but I wanted to do some more code cleaning before putting into this scriptmodule for testing. So just a bit of patience and you will be able to test it yourself.
                                          I already sent part of the patch to the moonlight repository, and eventually I want to send it entirely. However the maintainer doesn't seem very active so can take a while.

                                          • Not sure if it is in the gui config, but it would be great to have a global.conf "autoconfigurator". By that I mean, at the end of the installation, or in the GUI it would be nice to have something where you can say "Ok I want 1920x10806fps" fast and easy. Not critical though since you can do this by editing the conf file manually. But still, would be cool to have.

                                          That is a good idea indeed, I will try to implement it in the GUI somehow, thanks!

                                          • Finally, one concern about the actual script. I don't know how the moonlight-embedded github is moderated in terms of merges in the default branch, but using it as the source of this script by default might be a quite "ballsy" move, as you may sometimes fetch buggy code. Also, it will make it really hard for anyone using this script to debug their bugs, as they will have no idea which version of moonlight-embedded they have fetched. Keeping an option in the script to compile from last sources known is super cool, and it is really helpful right now as there is no official release of moonlight-embedded to match the current Geforce Experience version. But I don't think it should be the default choice, or at least let people choose if they want the last release known from apt-get (or the last release on the git repo)

                                          The upstream moonlight-embedded repository doesn't seem very active and I don't see it breaking easily as the maintainer doesn't merge things without reviewing. On the other hand, a lot of scriptmodules in RetroPie are designed to pull stuff from master branches, and things do break from time to time, yes.
                                          I agree with you that this approach is fragile compared to keeping versioned artifacts. However RetroPie maintainers are pretty fast fixing up things and honestly puling from GitHub instead of installing debs is much easier to maintain.
                                          Also, as you probably noticed, the moonlight maintainer seems to not be very active on refrshing the deb packages either, so another reason to pull from source instead. Having said all that, I strongly believe we should keep it like this.

                                          However, If I notice that the moonlight repository starts to get unstable often, I can easily update the scriptmodule to pull from known-to-be-good commit hashes instead of HEAD in the future. Thanks for the suggestion!

                                          Thanks again for testing and let me know of any issues you experience, the more feedback the more we can iron issues!

                                          S 1 Reply Last reply Reply Quote 0
                                          • S
                                            seriously24 @hhromic
                                            last edited by seriously24

                                            @hhromic said in moonlight: request for comments and testing:

                                            You are having issues when autogenerating the config files for some games? Which ones? Can you describe what happens? Errors?

                                            I didn't get any errors or anything, I just don't understand the list of games it imported. On the Geforce Experience interface, the "discover games" button finds no more than 5 games, when your script finds 10ish. Though, I have 25-30 games installed on Steam. For example, Hotline Miami 2 was imported correctly, but Dragon Ball FighterZ wasn't.
                                            It's not really a big deal, as I can add them manually the same way I added the Remote Desktop app, I just don't understand how it works :)

                                            So far my patch is working fine for me here locally, but I wanted to do some more code cleaning before putting into this scriptmodule for testing. So just a bit of patience and you will be able to test it yourself.
                                            I already sent part of the patch to the moonlight repository, and eventually I want to send it entirely. However the maintainer doesn't seem very active so can take a while.

                                            Be sure that I can't wait to see and use it.

                                            By playing a bit today with Retropie and Moonlight, testing things and stuff, I saw that the games in the Steam menu in Emulation Station are only added, never removed. I modified the name of my "Remote Desktop" app in the Geforce Experience, but it only got added as a new game when I relaunched a new "autodiscover of games" through the GUI. Is this on purpose ?

                                            Finally, I got a bit overconfident about all this and tried to use my HORI Real Arcade Pro N on the RetroPie, and it surprisingly was recognized, but only as a Generic Xbox Controller. The input configuration and jstest works amazingly well, but on moonlight I get really messed up controls. My "R2" button becomes start button and things like this. Any advice on how I could investigate this further ? Or maybe an idea about how/why it fails ?

                                            Edit : Doing some research on moonlight-embedded github, it looks like it uses a default mapping file which probably doesn't work for the stick, recognized as an Xbox controller. Will try to use the -mapping or a custom gamecontrollerdb.txt

                                            Edit2 : It worked with a custom-made game controllerdb.txt. Tricky part was to find the GUID of the joystick, but it now works like a charm with this workaround.

                                            H 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.