Please test: Random Game selection/launch via Video Screensaver
-
@madmodder123 I'll try to look into adapting this for using images rather than videos only, so that you could achieve something similar, and to make "select" select a random game from the system view, then, if you don't want any of these screensavers.
That will take some time, though, as my free time is unfortunately quite limited. But noted, I will look into that.
My best suggestion for that currently, though, is to use @Zigurana 's ES-Kids fork, as he has that built-in already. There's a page on the Wiki under Kids Friendly EmulationStation, I believe.
Thanks!
-
Update on the random game launch:
@Zigurana has already done a lot of work on that in his branch, and has submitted a pull request to merge with fieldofcows' branch as well, in a much more elegant way than I could. As such, I won't be reimplementing that, but rather wait until that is merged over.
For reference, the pull request is
https://github.com/fieldofcows/EmulationStation/pull/16/files
in case you're curious.
For the time being, I'll likely just consider adapting my code to allow an images screensaver as well, as others have already done a much better job at implementing a random game selection :)
For those just looking for that, for the time being the ES Kids fork is the way to go - and I highly recommend it, if you're not using videos. If you are using videos, you may try the release I put here.
Hopefully one day the majority of these things can be merged back to the main branch :)
-
@pjft :
Thanks for the praise, not sure if I deserve itđŸ˜…. I added the random game stuff as a PR to @fieldofcows screensaver work, as that was the I was initially envisioning it: as a type of attractive screensaver mode that serves up random game items when idle.
The manual approach was really a test-mode to see if the goto_random function worked well, which turned out to be rather useful, esp. with larger libraries.
I see no problem with adding the button functionality, as I can see how going through the menu is a bit of a pain after 10 games or so.
In that regard, I think we should not make it anymore complicated than necessary, and it does not need to be conflated with the video improvements at all. When using the manual mode, ES will simply jump to a random item, if your setup has videos fine, otherwise it will just show the static art (or even just the single line entry, in case of basic view).Maybe I will have a look at adding the button from the systemview, should not be difficult. Although now that I think about it, we might want to opt for X or Y, rather than 'select', as that way we can use it in both the systemview and gamelistviews.
Also in my mind 'select' should be a button that 'works' on the selected item. So for instance, pressing 'select' while focusing on the NES system, should/could give a popup window with some additional info on the system, maybe some options related to the system, etc. -
@Zigurana Thanks for the notes. I fully agree it shouldn't be more complicated than it needs to. I also agree with the "select" button semantics you chose - the reason I attached it to that button was because of a chat we had had in GitHub, where you were stating that with the ES-Kids version we already had all face buttons used, so I was more planning for the future.
However, I believe we can reach an interesting compromise/balance here.
We can assign square (Y?) to the random game/video, and use triangle (X?) for the metadata shortcut, as a 4-state toggle:
<None> - <Favorite> - <Kid Friendly> - <Favorite and Kid Friendly>
More than happy to make that change on my end.
What I'd like to consider, though, is how do we eventually get all of this merged back to the main branch. All the stuff you did on ES-Kids should be able to be merged there, provided it is broken down in smaller PRs, and that we fix the few 0-length-index errors that persist when some systems don't have favorites/kids games, and maybe one or two other remaining performance considerations, if relevant.
And same for @fieldofcows ' work on video screensaver. Right now, since I forked my code from @fieldofcows 's fork, I imagine it'd be hard to get my code to go straight to the master RetroPie branch - even if because I'd be submitting code that I did not in any way develop.
Would the two of you be up to considering this - either individually or in a shared repository, and come up with a proper roadmap (more in terms of sequence rather than actual timelines - my day job already has enough of those)? :)
I'm more than happy to work together in the same repository as you, if you feel it'd be the best thing to do. And, for the sake of sequence and stability, I'd definitely believe that the ES-Kids stuff should be easier to be committed, as it's been more thoroughly tested by several people throughout the last year or so at this stage.
And I personally would want to have some sort of closure on the videoplayer before we invest more into merging with the main branch. That's my next investigation in terms of where I'm going to sink some time on, with my limited ability.
Let me know your thoughts.
-
@pjft :
Thanks for your considerations, I think the four-state toggle is inventive!My thought-process when thinking about the Kid-Kiosk UI mode branch goes something like this:
Optimist: "Ah, yes, Kidmode stuff to do, let's go team, crush some bugs!"
Pessimist: "Don't you remember that was that part of the code that you rather not look at again, not only because its a mess, but also because you probably wrecked it even more with your so-called features?"
Optimist: "Yes, but this time it will be better, I've got more experience in C++ now. I actually know something about classes this time!"
Pessimist: "Remember, you've started a redesign of this code two times already"
Optimist: "Yes, but this time I've got this great idea!"
Realist: "@fieldofcows is probably much more able to implement a filtering framework, which will make the difficult part of the kid-modes stuff obsolete anyways."
Optimist: "Yes, but..."
Procrastinist: "Hey, look at this new thing you could try to implement, what about chiptune bg music support in ES?"
Optimist: "Wow!"
[/me listens to chiptune music while reading up on SDL_mixer]Kidding aside, I agree fully with your sentiments, and things have changed a bit since last year. Nowadays there is much more active development in ES going on, and I must say, that is tremendously motivating. Another big change is that I can now do debugging in windows, which should make crushing the bugs at least a feasible proposition. A year ago, I used to do this with logging statements only, not a pretty sight X-P.
I think the kidmode branch could be separated into roughly two deliveries, one focusing on hiding the menu's, and one focusing on the added metadata elements and subsequent filtering of items in the gamelist view. Splitting it up smaller does not really constitute a useful standalone features I think.
My first steps now is to man up, turn up the chiptune noise, and fire up the debugger. I think most people would already be happy with an updated/rebased version of the kidmode branch.
-
@pjft said in Please test: Random Game selection/launch via Video Screensaver:
sudo cp emulationstation /opt/retropie/supplementary/emulationstation/
I've completed your instructions, but getting nothing when pressing select in the system select screen? Is this just for kids/kisok mode?
-
@__Scannigan__ Hi Scannigan!
Thanks for trying it out.
No, not at all. You may be perfectly right. You may need to go to the menu, UI settings, and select "Random Video" as your screensaver. Sorry about that omission. Let me know if that fixes it and I'll update the first post.
-
@Zigurana :)
Sorry for the delay, yesterday was a chaotic day. I fully empathize with your thought process :) I've been there quite a few times, to be honest, so I don't blame you whatsoever. I'm also at the moment debugging via logging statements, sigh. But chiptune music rocks ;)
I agree that the kidmode branch could probably be split in a couple of deliveries:
- Metadata additions (favorites and children)
- Filtering based on metadata (favorites and children)
- Hiding the menus
- Random game (because, why not) :P
But I'm obviously not fully familiar with the architecture. I see these as being fairly isolated yet robust additions to the main branch in their own right.
I'd love to give some feedback on the PR you sent to @fieldofcows , as there are some considerations I'd like to make on it. I'll probably add them there on that conversation. :)
Anyway, good times ahead for ES.
I'm now at least focusing on trying to come up with a future-proof solution for the video player on the Pi. If we decide to move things forward with any of these features, I'm happy to work on these some more, but without solving the video player issues first any further "quality of life" improvements are marginal. :/
-
@pjft Don't have an option for Random Video just Black or Dim
-
@__Scannigan__ Hm. That's unfortunate.
I can't claim that there wasn't something wrong with the binary I uploaded. There's a possibility that I uploaded the wrong binary. I will try to check later today.
That being said, there's also the chance that one of the steps is either missing or went wrong, meaning that you may still be running the old emulationstation binary version.
In the current version, you should not only have a "random video" option, but also - if you scroll down in the UI settings menu - you should have three new options: screensaver controls, show game name on screensaver, and launch game from screensaver (or something to that effect). Oh, and there should be an option for "use experimental video player".
If you don't see these there, it's likely something went wrong.
Can you check the contents of .emulationstation/es_settings.cfg , and see if there are any options around OMXPlayer, ScreensaverControls or such?
If you do
ls -l /opt/retropie/supplementary/emulationstation/
What's the date of the emulationstation binary there?
Could you try downloading it on your desktop and copying it to your Raspberry Pi in some other way?
Let me know. I want to make sure I can help you!
-
Nope nothing about OMXPlayer in es.settings.cfg
and this is what I get: -
rw-r--r-- 1 root root 451 Feb 4 00:54 CREDITS.md
-rwxr-xr-x 1 root root 4331160 Mar 10 12:02 emulationstation
-rwxr-xr-x 1 root root 444 Feb 4 00:54 emulationstation.sh
-rw-r--r-- 1 root root 5667 Feb 4 00:54 GAMELISTS.md
-rw-r--r-- 1 root root 11862 Feb 4 00:54 README.md
drwxr-xr-x 3 root root 4096 Mar 10 11:48 scripts
-rw-r--r-- 1 root root 19449 Feb 4 00:54 THEMES.md -
@__Scannigan__
I am so, so sorry. :/ The only reason I can come up with is whether I've uploaded the wrong binary here. I'll have to check when I get home. I imagine this is what a botched launch may be!
Let me try one last thing:
Can you kill emulationstation (i.e. go back to the command line) and then explicitly run emulationstation from there?
cd /opt/retropie/supplementary/emulationstation/ ./emulationstation --debug I just want to triple check that it's running the actual binary you just put there (which I can tell from the date it was just put there).
I will say that my binary file on my computer, at the moment, seems to be slightly larger, taking up 4332016 bytes, but that may be a file system difference. And, also, it might just be the wrong binary.
This is the MD5 for the file I currently have here (can't promise it's the one that it should be):
MD5 (emulationstation) = 891b3b4327a130f31dce82962235cabd
I suspect you may be able to get the MD5 for your file by going to the folder and performing
openssl md5 emulationstation
Is it the same?
Worst case scenario, you could try to compile it (assuming you're comfortable and familiar with the process) but I wouldn't think it'd be necessary to go to that extent.
If you have the latest binaries from RetroPie, this should probably do it. In it I'm including the creation of a folder to compile ES in:
cd /home/pi mkdir tmp-es cd tmp-es git clone https://github.com/pjft/EmulationStation.git cmake . make and then, if all went well,
chmod +x emulationstation sudo cp emulationstation /opt/retropie/supplementary/emulationstation/ I am sorry for having you spend your time here. Please let me know what you come up with. I'll also double check the binary on my Pi in a few hours when I get home, but I am almost sure that I copied it from my Pi before uploading it so I'm kind of at a loss.
Thank you for your patience and help in troubleshooting this!
-
I can run ES from the command line.
Wouldn't know where to even start with compiling :/
MD5(emulationstation)= 577ffbc8171d5909992dd842f9538900
-
Hm.
That doesn't look right.
Can you do this?
cd /home/pi mkdir tmp-es cd tmp-es wget https://github.com/pjft/EmulationStation/releases/download/v0.2/emulationstation openssl md5 emulationstation ls -l And share the results? I'm completely stumped, but I will make sure to get to the bottom of this, though.
EDIT: worst case scenario later at home I'll make sure to get the binary from my Raspberry Pi and upload it again. It might be a case of a wrong binary, but the fact that I'm getting a different MD5 and file size on my end, from the downloaded file, makes me suspicious that something else may be afoot.
If you download the file from https://github.com/pjft/EmulationStation/releases/download/v0.2/emulationstation on your computer, what does it tell you?
Don't worry about compiling, it's more trouble than it's worth it :)
Thanks!
EDIT: ok, I'm a bit more positive about the uploaded binary being correct. I just used a hex editor on the binary, downloaded from GitHub, and I can at least find strings related to random video and the latest additions, so hopefully we should be able to find out what's happening here :)
-
This is everything, sorry I don't know how to do that embed thing :/
pi@retropie:~ $ cd /home/pi
pi@retropie:~ $ mkdir tmp-es
pi@retropie:~ $ cd tmp-es
pi@retropie:~/tmp-es $ wget https://github.com/pjft/EmulationStation/releases/do wnload/v0.2/emulationstation
--2017-03-10 15:56:58-- https://github.com/pjft/EmulationStation/releases/downl oad/v0.2/emulationstation
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-cloud.s3.amazonaws.com/releases/83220450/d63306da-0333- 11e7-8b5b-74bc0582739b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIST NZFOVBIJMK3TQ%2F20170310%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170310T155 658Z&X-Amz-Expires=300&X-Amz-Signature=f0d90a82f4beb97024b1f6918cae7f2b10905fda5 fcb0f63fa8cc9fd7591b58c&X-Amz-SignedHeaders=host&actor_id=0&response-content-dis position=attachment%3B%20filename%3Demulationstation&response-content-type=appli cation%2Foctet-stream [following]
--2017-03-10 15:56:58-- https://github-cloud.s3.amazonaws.com/releases/83220450 /d63306da-0333-11e7-8b5b-74bc0582739b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Cre dential=AKIAISTNZFOVBIJMK3TQ%2F20170310%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Da te=20170310T155658Z&X-Amz-Expires=300&X-Amz-Signature=f0d90a82f4beb97024b1f6918c ae7f2b10905fda5fcb0f63fa8cc9fd7591b58c&X-Amz-SignedHeaders=host&actor_id=0&respo nse-content-disposition=attachment%3B%20filename%3Demulationstation&response-con tent-type=application%2Foctet-stream
Resolving github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)... 54.23 1.40.59
Connecting to github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)|54.2 31.40.59|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4332016 (4.1M) [application/octet-stream]
Saving to: ‘emulationstation’emulationstation 100%[=====================>] 4.13M 1.36MB/s in 3.0s
2017-03-10 15:57:02 (1.36 MB/s) - ‘emulationstation’ saved [4332016/4332016]
pi@retropie:~/tmp-es $ openssl md5 emulationstation
MD5(emulationstation)= 891b3b4327a130f31dce82962235cabd
pi@retropie:~/tmp-es $ ls -l -
@__Scannigan__ ok, perfect!
So, you see, the MD5 of the file you just downloaded is now matching the one I have, and yet different to the one you have on the ES folder :)
MD5(emulationstation)= 891b3b4327a130f31dce82962235cabd
so, now, in that folder, and as long as you have quite ES, do:
chmod +x emulationstation sudo cp emulationstation /opt/retropie/supplementary/emulationstation/ and hopefully it should all be good now (fingers crossed, knock on wood!).
-
@pjft said in Please test: Random Game selection/launch via Video Screensaver:
I agree that the kidmode branch could probably be split in a couple of deliveries:
- Metadata additions (favorites and children)
- Filtering based on metadata (favorites and children)
- Hiding the menus
- Random game (because, why not) :P
Yeah, but I'm not sure what the functional use of #1 without #2 would be. In any case I was expecting that the screensaver stuff would land before anything else, so Random games are delivered along with that.
I am not sure what @fieldofcows timeline is however.I'd love to give some feedback on the PR you sent to @fieldofcows , as there are some considerations I'd like to make on it. I'll probably add them there on that conversation. :)
By all means! Let me know what you think!
Anyway, good times ahead for ES.
Agreed!
-
@Zigurana Yeah, I mean, I get that #1 without #2 is not as useful as it could be, but really the same case can be done for any other type of metadata like ratings and such. :) It's just a way for someone in passing to know whether the game is appropriate for children, or is one of your favorites. Meaning, I don't see it as a big deal doing #1 before #2, and it might make it easier on the merge process to the main branch.
@Scannigan - I updated the binary now, to fix a problem in retrying the random video selection, should the video file not exist, and will update the URL in the first post.
We should now do
wget https://github.com/pjft/EmulationStation/releases/download/v0.3/emulationstation
Did you get things sorted yesterday?
I may make a shoddy video with my mobile and upload it here, even if just for people to know what they're getting into should they install this.
Cheers.
-
Added a small video to the first post:
I start the screensaver using select, and then skip a few games using "right" until I launch a random one. It has no sound, as the kids are asleep. On the regular screensaver will rotate every 30 secs.
The captions disappear after 7-8 seconds.
-
Still not working for me, very strange!
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.