Please test: Random Game selection/launch via Video Screensaver
-
@__Scannigan__ I was just thinking that your original request for changing the font was because you had a font that matched your current theme.
So yes, the idea would be that different themes could have different fonts, even though nobody is really providing that in their themes right now. And, one way or the other, it's easy to change in the future.
-
@pjft i think that makes sense, a consistent font or even a similar style of font throughout​ the theme, one that could be identified as the screensaver font
-
@pjft Just shooting from the hip here, as have no clue how this works, but based of the fact that themes and gamelists and alternate es_system files can be placed here, is it possible that we create a new folder in home/.emulationstation/? Maybe like home/.emulationstation/screensaver
In this new folder we could place a text folder and maybe a video folder. This would be an alternate location that ES would look to for information for the screensaver, much like themes and the es_systems file. Any font types placed in the folder would simply over rule the default, so if i wanted shokapow to match my theme, i just drop that font file in the folder and it is used. Same idea on videos. I love the random video, but if i want to compile my own single video, or only have a select number of videos play, i simply add 1 or 100 videos to that folder, and those are played. If those folders are empty, then ES reverts back to the standard location for files.
Probably types simpler than it is programmed, I am just pondering the possibilities since ES works this way with other customization options.
-
@TMNTturtlguy I was thinking in that direction for the font.
Adding a custom set of videos, though, would be different. I'd imagine that as a different screensaver type, as the current one is a random game video, it's tied to your existing games in the library.
It is an idea for sure, but one I don't think I'd be picking up in the near future as it requires a bit more work, apologies :)
If I develop new screensaver types, the random game image that has been requested earlier in the thread by a few people is probably the one I'd look into, as it reuses the current architecture and could benefit those who don't yet have videos in their collections.
But even that has been put on the back burner for lack of time for larger endeavors recently.
-
@pjft said in Please test: Random Game selection/launch via Video Screensaver:
This is how they add a star in front of their favorite games in the game list. I saw someone mentioning it here in the forums, thought I'd mention in case it's something that you'd find interesting as well. :)
I think the problem with this approach is that it is dependent on the font being used. If a theme changes the font, there is no guarantee that the character will be a star.
I have been thinking about an ability to do something along these lines that would involve changing the TextListComponent to support modifier images. I started thinking about it after I saw @ruckage modified the font he is using in his nes-mini theme to make a specific character be a folder icon. I haven't fully worked out how it would work, it's just an idea on my long todo list.
-
@Zigurana a suggestion, thinking about it: It could be good to decouple the random game "selection" within the library, from the action of selecting it in the list.
Edit: that way I could use exactly the same logic to render a random screensaver video, for instance, or if someone wants to launch a random game or something. It just makes it more modular.
Added a comment on GitHub, I think, but seems to be pending.
This is what I said:
I was thinking about this. It could be better to decoupled the "getting" a random game from the subsequent action. Meaning, this function should probably call a "get random game" method, that should perhaps reside in SystemData, if that has access to the systems vector, and then in this case select it. On my phone, sorry if it isn't clear.
-
@jdrassa good catch. I thought it would be a standard UTF character representing a star, but haven't confirmed. May be worth checking.
-
@pjft Got it! no need to change it at all in my opinion, It works wonderfully and the standard text does not bother me at all.
adding different screensaver video options seems to be to much work for something that already works wonderfully, and just like in my theme building, i try to think about the end user doing as little as possible to make it work. How many users will really get into the .emulationstation folder to modify it? Of course our community of peers on the forum, but in general not a very big percentage of users will learn how to modify their gamelists and change files in .emulationstation, they want it to work "out of the box".
I think you have a wonderful build set up already, text options would be a plus, but no need for custom videos. Thanks!
-
@Zigurana Hi!
Tested it on the Pi. It's crashing at the moment - integer overflow - but removing the "+1" after RAND_MAX fixes it. I suppose that constant is OS dependent :)
No performance concerns - added comments on GitHub.
A question: is it deliberate not to allow one to use the "A" shortcut to select a random game in the System View?
Have a great weekend!
-- Actually, after you fix it, let me know, as I'm happy to cherry pick the commit to my OMX merged build :)
-
@pjft said in Please test: Random Game selection/launch via Video Screensaver:
@Zigurana Hi!
Tested it on the Pi. It's crashing at the moment - integer overflow - but removing the "+1" after RAND_MAX fixes it. I suppose that constant is OS dependent :)
Aargh!
I encountered this before, and fell into the same trap twice! Sometimes i feel like I have an old 1st gen RPi instead of a brain, always low on memory... At least its easy to fix.No performance concerns - added comments on GitHub.
Good!
A question: is it deliberate not to allow one to use the "A" shortcut to select a random game in the System View?
What do you mean? Would pressing 'A' not just enter the selected system?
Do you mean to press 'X' while in the Systemview?
I could add that, if there is a demand.-- Actually, after you fix it, let me know, as I'm happy to cherry pick the commit to my OMX merged build :)
Sure thing, I will probably get to this tonight.
Thanks a lot for testing this out!w
-
@Zigurana No problem, thanks! I added the same comments on GitHub - do you receive them? Do you get any notifications? Just so I know how to do it in the future.
I also added a comment on refactoring/splitting the random game "picking" from the random game "visual selection", if it makes sense. That's probably more relevant - and shouldn't be too big a deal, hopefully.
Also, let me make the comments on the button clear, as I'm not sure they were that clear :) Also, I'm using a PSX controller, so the buttons are different, bear with me :)
For the sake of simplicity, let's call the button for random game selection "triangle". This button works as intended when you are already inside a gamelist for a specific system.
What I mean to ask is if it's deliberate for it not to work when you are in the system selection screen - it doesn't seem to do anything there, though I expected it to work exactly the same (i.e. select a random game).
Sorry if that wasn't clear. And if it wasn't part of the design, that's fine sure - one can just enter a gamelist before using it, though since you will likely end up going to a different system anyway with some probability, it could easily be a system-wide shortcut, rather than just in the gamelist. It should be just adding it to the SystemView.cpp input handler, if you feel it'd make sense.
If not, it's also fine. :)
Thanks! Happy to test it out in the end as well.
-
@pjft :
While i somewhat remember your remarks on splitting the selection and jumping to aspects, I can't find the comments on the PR anymore, where did you post them? In any case, can you explain what you are trying to achieve there?Re: adding the button functionality to the system selection screen (SystemView): that can be done, no problem.
-
@pjft said in Please test: Random Game selection/launch via Video Screensaver:
@Zigurana a suggestion, thinking about it: It could be good to decouple the random game "selection" within the library, from the action of selecting it in the list.
Edit: that way I could use exactly the same logic to render a random screensaver video, for instance, or if someone wants to launch a random game or something. It just makes it more modular.
Added a comment on GitHub, I think, but seems to be pending.
This is what I said:
I was thinking about this. It could be better to decoupled the "getting" a random game from the subsequent action. Meaning, this function should probably call a "get random game" method, that should perhaps reside in SystemData, if that has access to the systems vector, and then in this case select it. On my phone, sorry if it isn't clear.
Heh, found it :-p.
So, yeah your comments never arrived.Not sure if decoupling the getting-a-random-number from go-to-game part is going to bring much re-usability to the table. In the case of selecting a random video as a screensaver, you will need to select from the list of available videos (not games) anyway.
In any case, I am more partial to using a go-to-random-game as a screensaver functionality, if the view shows a videosnap, fine, but not everyone has videos installed. This would act more as an attract-mode (ie. showcasing what the system can do).
-
-
@Zigurana Thanks!
I'm so sorry for the delay in getting back to you - hectic days at work recently.
I'll check the PR later.
I had added the comments in the PR, here:
https://github.com/RetroPie/EmulationStation/pull/118#issuecomment-297463486
If you expand the file in "Show Outdated" you'll see all my remaining comments as well, can you see them there? Let me know if not - it shows as "pending" to me so I'm unsure they're public (and I don't know how to get them out of the "Pending" state) :S Or do I need to "Submit a Review" for the feedback to go through? Maybe that's it? EDIT: I think that was it. I just deleted the review, nevermind. Glad we spoke here!
Anyway, yes, I'm not a stickler for decoupling it. I still think it makes more sense architecturally, though your point is valid on the video thing. It was just a thought, in the hope of re-using the code (or part of it) rather than having duplicate attempts and randomizing a selection.
That being said, if one would want to do it later, then let's have one decouple it (likely me, haha) :)
Oh, but for instance, for implementing a go-to-random-game as a screensaver functionality, you would be able to use exactly the same code as here - though you probably wouldn't want to select it in the view. It's not a big issue anyway :)
I'll compile it and test it in the coming days, hopefully. Then I still need some time to close off my own PR for filtering (sigh).
Out of curiosity (no pressure, really), is implementing the favorites tag in the metadata on your roadmap, so I can also time my filter PR accordingly so it doesn't delay you?
Thanks!
-
@pjft said in Please test: Random Game selection/launch via Video Screensaver:
@Zigurana Thanks!
I'm so sorry for the delay in getting back to you - hectic days at work recently.
I'll check the PR later.
I had added the comments in the PR, here:
https://github.com/RetroPie/EmulationStation/pull/118#issuecomment-297463486
If you expand the file in "Show Outdated" you'll see all my remaining comments as well, can you see them there? Let me know if not - it shows as "pending" to me so I'm unsure they're public (and I don't know how to get them out of the "Pending" state) :S Or do I need to "Submit a Review" for the feedback to go through? Maybe that's it? EDIT: I think that was it. I just deleted the review, nevermind. Glad we spoke here!
Nope still can't see those comments. Maybe you need to validate your email or something?
Anyway, yes, I'm not a stickler for decoupling it. I still think it makes more sense architecturally, though your point is valid on the video thing. It was just a thought, in the hope of re-using the code (or part of it) rather than having duplicate attempts and randomizing a selection.
That being said, if one would want to do it later, then let's have one decouple it (likely me, haha) :)
Yeah, let's cross that bridge when we get there.
Oh, but for instance, for implementing a go-to-random-game as a screensaver functionality, you would be able to use exactly the same code as here - though you probably wouldn't want to select it in the view. It's not a big issue anyway :)
Selection in this context just means: move the cursor to that location. For a screensaver avant-la-lettre, that might be unwanted as it breaks continuity, but for a machine begging you to come and play, it kind of makes sense. Anyways, there are ways to get back to the origin, when implementing a screensaver (/makes mental note).
I'll compile it and test it in the coming days, hopefully. Then I still need some time to close off my own PR for filtering (sigh).
Out of curiosity (no pressure, really), is implementing the favorites tag in the metadata on your roadmap, so I can also time my filter PR accordingly so it doesn't delay you?
As long as your PR #115 is still pending, I will not touch the favorites/kidmode stuff, as much will depend on how that will turn out.
So I would say, do your thing and maybe append it to #115?
Thanks! -
-
@Zigurana Updated the PR. Would love yours and @jdrassa 's thoughts, so that hopefully we can close that. I'm happy to squash it to a single commit, but want the review first so I can ensure code consistency across the OMX build as well.
As for the favorites/kidsmode stuff, what do you mean by appending? Would you want me to add the metadata on my PR?
I'm happy to submit a second PR with adding just those two types of metadata, as well as filters for those (and yes, happy to have them be stored as an option). That being said, I don't have any intention in re-inventing the wheel you have so well invented so far, with the kiosk modes, the changes to the themes, etc, so just let me know if that single piece would help and I'm happy to take that on, using the exact same metadata types as you have in the past - but since you already have it done, I don't want to in any way duplicate work or take credit away from you.
Only if it helps.
Thanks!
-
@pjft Will you be updating your ES to the latest version anytime soon? I just updated mine and I am loving some of the new features, so I'd hate to lose those.
-
@Dominus sure. Anything in particular you're looking for that's not yet in the build?
I might share a script to add to your RetroPie Setup so you can pretty much always install the latest version I have merged. I suspect I might not have provided a binary for the latest one.
Edit: here are the instructions:
https://retropie.org.uk/forum/post/75541
You will want to quit emulationstation when you update it from source, as it may run out of memory otherwise. The latest code there should be 1 week old, hopefully nothing significant came up the last week that you're looking forward to?
Thanks.
The next steps here are actually to try and get this merged into the main ES, so expect that to be my main focus for this work in the coming months.
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.