moonlight: request for comments and testing
-
im not sure what your trying to do but as for having ffmpeg installed it is my understanding we have ffmpeg installed for video rendering of video snaps because omxplayer or whatever pi uses is unavailable for odroid so we use that atleast thats what i think we use it for
that or we use it for something to do with the lcd screen on the ogst case that our board supports
either way im fairly certain considering the minimal image we started with that we wouldnt install anything that wasnt absloutley neccesary to the running of the image
ill see what i can do for passing this along to someone who can better assist you
-
@reesk92 many thanks on trying to help, really appreciated !
Just to clarify, I'm not a direct user of ORA, but I'm trying to help another user to get moonlight to build in his ORA ( @liquidsnake34 ).
What is happening is that @liquidsnake34 tried to build moonlight on his ORA installation and the build failed because moonlight references an updated ffmpeg API (3.1+) than what is apparnetly installed (2.8.6).
Apparently, moonlight doesn't need ffmpeg on ODROID as it can use the chipset directly like it does on the RPI. I say "apparently" because I can't test myself.
The options I can see are to (1) disable detecting/using ffmpeg in the moonlight makefiles or (2) update ffmpeg in ORA. The second option would be prefered if it is relatively easy to do, and that is what I don't know for sure and would require advise from ORA seniors :)
In case that the first option is necessary, then I would need to test if moonlight still runs fine without compiling ffmpeg support. According to what you just said, it might be necessary after all if it does hardware decoding.Thanks a lot for wanting to help and if you are not the right person, I look forward to be refered to someone that can further help.
-
If the version that is compiling is lower than what is needed most likely a kernel level issue. Someone would need to verify the latest version of ffmpeg supported on the 3.10 kernel. Whatever is showing as installed on the build is what compiled with the original RetroPie installation itself. RetroPie official has very basic support for the XU4 and we have not done anything specific to the installation of ffmpeg itself. I am assuming its installation is tied into VLC. We actually leverage mplayer for most video related media on the build. We are for the most part the most concerned with retrogaming systems. We have not spent any cycles on things like Moonlight, Attract Mode, or Kodi.
-
@fnkngrv thanks for the heads-up!
I agree upgrading ffmpeg is not a straightforward action and probably it is best to leave it alone because of the hardware acceleration and the coupling with the kernel version/state.
I also understand ORA is all about the retrogaming more than side projects like moonlight, no problem.I was researching further and indeed the best solution would be to disable ffmpeg support (and attempt to compile aginst it) in moonlight, which is only used for software-only decoding. Moonlight seems to support a number of embedded chipsets directly: Broadcom, Freescale, Amlogic and Rockchip.
I'm not sure which one is picked for XU4 (or if any supports XU4 directly) as I don't have that board and can't compile/test myself. I will try to debug with the user and see what can be done for moonlight to compile/work in XU4 natively (if possible).Thanks again for the help and clarifications!
-
The XU4 leverages the following:
Samsung Exynos 5422 4-cores ARM Cortex-A15 @2.0GHz
and 4-cores ARM Cortex-A7 @1.4GHz CPU8 core BIG little architecture
-
@fnkngrv said in moonlight: request for comments and testing:
8 core BIG little architecture
You mean little endian ?
-
First of all, thank you for your afford.
I have tested your script with a Raspberry Pi 3b+ and the recent RetroPie release.
It works.I only realised a little problem:
If I start your script within RetroPie-Setup and try to pair, it doesn't show me the PIN for connecting to the remote host.
Only after I abort the dialogue box with the question for the PIN in the remote host, it shows me the PIN.If I start it manually with "sudo ./retropie_packages.sh moonlight gui " it works.
-
@Swampy Try replacing, in the function
exec_moonlight
from the scriptmodule, the line:sudo -u $user "$md_inst/moonlight.sh" "$@"
with:
sudo -u $user "$md_inst/moonlight.sh" "$@" > /dev/tty < /dev/tty
and see if starting the GUI from the setup script works for pairing.
-
@Swampy thanks for testing! I'm happy the scriptmodule is working for you as well.
Interesting little bug you found there indeed. I admit I mostly test using
retropie_packages.sh
and I assumed the main GUI would just work, hence didn't notice that behaviour.The suggestion from @mitu makes sense and should work. I can't test at the moment but also will check it and report back/fix the issue.
-
I confirm the issue and implemented a fix now, thanks @Swampy for reporting and @mitu for the solution suggestion!
@Swampy , please update the scriptmodule and try again, should work fine now.
@mitu , I didn't modify the line you suggest because it interferes with other parts of the scriptmodule (e.g. the gen_configs function). Instead I put the redirections on the affected calls from the gui function (pair/unpair calls). Thanks for the pointer anyway, was helpful!
-
Warning
The latest Nvidia GeForce Experience (GFE) driver released on Nov 19, 2018 just broke streaming foor the current version of moonlight. A fix is already proposed but not yet merged in upstream moonlight repository.
The issue is reported here: https://github.com/irtimmer/moonlight-embedded/issues/705The affected GFE version is:
GFE 3.16.0.122 (gs_04_11_25137997, 7.1.411.0)I will try to backport the fix until it is merged upstream.
-
Update
A temporary patch to fix compatibility with GFE 3.16 is now included in the moonlight scriptmodule. Just repatch and rebuild moonlight and streaming should work fine in GFE 3.16 again.
I sent a PR now to upstream moonlight, hopefully it gets merged soon: https://github.com/irtimmer/moonlight-common-c/pull/1 -
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 -
It works.
Thank you for your fast solution.
-
@Swampy glad to hear!
-
@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 !
-
@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. -
@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 thesteam
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. -
@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
-
@LeSabotageur except for the permissions of the
.ml
files, that shouldn't need to be755
, 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.
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.