Please test: Random Game selection/launch via Video Screensaver
-
@TMNTturtlguy Here.
https://github.com/pjft/EmulationStation/releases/download/0.5themefix/emulationstation
Use the previous instructions in this post but use this link instead of the 0.4 one.
Let us know how it goes. I did NOT test it, just built it and sending it over. I'm assuming that was the right code to merge here, but it may not be the full story so hope this works.
-
@pjft Great! Thanks - I am in the middle of finishing up some final details on my current build, and then will back it up, and then install this and let you know. Unfortunately I am off to work, so I won't be able to get back to you right away. Thanks for putting this together.
-
Hi all,
I've updated the binary to include a few changes from the folder metadata fixes I've done for the main ES as well.
https://github.com/pjft/EmulationStation/releases/download/0.6-ssctl/emulationstation
Nothing major.
The next update on this front will be using random images for screensavers, but that should take some time - I have other things on my plate at the moment, some of them ES related, that are more pressing or interesting, hopefully. :)
I'll keep everyone up to date.
Have a great Sunday!
-
@pjft Thanks! Installed and everything appears to be working great. I love the screen saver, the temps are running nicely and i have no issues with screen savers, text, or video previews.
Thank you for your hard work and to @fieldofcows for this addition to ES!
-
@pjft Just wanted to let you know that I updated to retropie 4.2 and then installed ES 0.6-ssctl and everything is still working perfectly! Thanks
-
Did someone say testing?
-
@itsnitro sorry, it's a typo. I'm sure it's meant to be "tasting" :)
Welcome aboard.
-
Update - i jumped the gun on my original post, I never actually tried to launch the games, just looked that all the video and screensaver functions were working. It looks like there is an issue with retropie itself launching games from sub-folders. I tried with the basic update of 4.2 and the main ES as well as with our updated ES and I cannot launch any games with sub-folders from any systems. I have another post in the general help for that issue, but wanted to correct my earlier post here as well. Thanks Other Post
-
@pjft I've ramped up the VRAM and working on a 512 split and it's working beautifully dude. Stellar job, just one more thing :) is there a way to change the font of the subtitles for OMXplayer? I can find the file path to the shared font folder, just not too sure if there's a config file for OMX detailing file path to subtitles, if you know what I mean
-
Update if you are interested in the other post: Subfolders Not Working After Upgrade I will no longer post to this thread on this issue. Thanks
-
Hi all, and apologies for the silence these past few days. Busy days at work and at home!
Still, a few unfinished items here I've been meaning to reply to, in no special order :)
@Scannigan - it's great that things are working fine for you with the increased memory split! I'd still like to ask you, in case you do have the time, to one day go back to your previous memory split, but reduce the VRAM in ES as I described earlier. The reason is that you seem to be able to still get into a WSOD state with the current ES VRAM management, and I just want to confirm whether lowering the VRAM setting so that it will actually deliberately refresh the textures will actually fix it. From my previous post:
"Before you actually touch the memory split, just one more thought, if I may: could you actually check whether you really have the maximum set to 1000? If you do, could you try lowering it to 200, restarting ES, and then seeing if it loads the system view and a game list, and see how it goes? Then, if it doesn't work, to 250, restart ES, 300, restart ES gradually until you find a value where the theme actually effectively loads correctly and you can navigate back and forth with ease.
The train of thought is, following my previous comment on memory management, that the VRAM may need to be set as high as needed for the theme to load, but not a lot higher as it's that limit that forces the textures to be unloaded and refreshed. My assumption is that, if it is too high, you will eventually run out of memory just the same - but I am making an assumption, I can't tell for sure. This test would be very helpful as if there is indeed a problem with the memory management here it can be fixed in the main branch. The video may certainly be taking up video memory that is no longer available.
Thank you very much for looking into this! I do appreciate you taking the time here and trying to help figure this out for everyone."
That'd be helpful for everyone, I imagine. :)
I hope to post a different thing for the community to test in the coming days, depending on how my free time goes.
Have a great weekend everyone!
-
Hi all,
A small update. You may want to grab the latest binary at
https://github.com/pjft/EmulationStation/releases/download/0.7-ssctl/emulationstation
as it fixes a small memory leak that left child video processes dangling in a zombie state after they were no longer needed.
Nothing serious, but if you plan on leaving this running for a LONG time, you may want to install this.
-
@pjft Thanks for the update, loaded this up today! Have you had any thoughts about trying to get this incorporated into the main ES? I absolutely love this build and now that i have the video screen saver with all of its options, and the option to run OMX player I don't think I can ever go back! The problem is that there are other great improvements going on right now as well. @jdrassa and @Zigurana just had an awesome update for themes and the carousel approved and released today. Input Needed: ES Theming Improvements. I am currently working on a theme and would like to be able to implement that into it at well. I was actually hoping to release a trial version of the theme this weekend, but now i might hold off to see if i can get this incorporated. I know you are working on some other cool stuff as well, and if i had the know how, i would try to combine your work (and @fieldofcows) with the new ES update, but that is still above my knowledge level and i have the greatest respect for those of you including all mentioned in this post that have those abilities. Hope your family is feeling better and you are having a good weekend.
-
@TMNTturtlguy in the last few months alone the development of ES has come leaps and bounds with so many people working on so many new features​, this is exciting times :)
-
@TMNTturtlguy Hi, and thanks for the message! Yes, the family is doing better - the youngest one is hopefully fully recovered now, at least until the next thing :)
As for getting this back into the main ES branch, as I mentioned earlier, that is not something that's on my plans until we have a proper solution for video that suits everyone, and not until @fieldofcows determines it is the right time to do so, as ultimately my changes depend on his code.
I could consider doing so - i.e. creating PRs for the current version into the main ES branch - only if for whatever reason:
- @fieldofcows feels that he doesn't have time to continue with this work in the coming months, and that it would help him that someone else makes those changes (i.e. maybe he hasn't done so because of lack of time);
- and only if he would fully approve of me doing so (as it is ultimately his work). If there's another reason for it not to make it there in his opinion (i.e. not tested enough, maybe it isn't complete yet, or just isn't the right solution in his view), then this isn't something I would do. I do not like the idea of committing other people's code to the main branch - it kind of feels like stealing, and (I personally feel) it goes against the whole spirit of the community here.
That is why I:
- Have provided this particular build, for people to test and use, as I personally have it as my main ES version.
- Have not been doing a lot of new development in this particular build (only ironing out some kinks), as it feels kind of moot to go so far in this direction and later on having to do a lot of work to merge it into the main ES branch.
- Have been focusing on other improvements that are based on the main branch, since those will be able to make it to the wider audience sooner rather than later. The things I'm working on now have nothing to do with videos or screensavers, for better and for worse :)
I hope you understand that. I have faith that we will have a much better off ES in 6 months' time than we do right now - we just have to be patient and wait. :) After all, this is mostly worked on by people in their spare time, and - as @Scannigan mentioned - it has come leaps and bounds in the last few months. Exciting times indeed.
I know it's not the answer you might have wanted, but it is the answer I have for now. :)
I'm very happy to learn that you have decided to work on a theme - I'm very much looking forward to seeing what you come up with!
Have a great Sunday everyone - and, in case it's relevant and in case some of you are not aware, it's Mother's Day today in some parts of the world. Don't get in trouble with your mothers and significant others by forgetting that, if applicable :)
-
Hey,
I had offered this PR, to the screensaver branch of @fieldofcows.
He has not accepted it as of yet, but I could also just try to add a hotkey (say X), and submit a PR to the RetroPie master instead.What do you think? That way at least, we would have delivered the go-to-random game feature.
The difficulty with building it on top of another feature-development branch is that it becomes difficult to disentangle, and thereby difficult to review/test. -
@Zigurana Hi! Glad to hear from you :) I've been watching your adventures on the carousel changes - well done!
I think that is a worthy effort. I apologize - I never commented on your PR. Would you think it'd be useful at this stage?
My main comment was functional. only, in terms of the random selection (and I say this without knowing how your previous implementation worked) if I'm reading it correctly - and I may be reading it wrong, so just say so :)
The fact that your random selection is [select random system] x [select random game within system] makes for a less-than-optimal random distribution, as systems have a different number of games.
Case in point:
Assuming someone has two systems with the following specs (random numbers, but just to state the example):- System A (MAME): 99 games;
- System B (Dreamcast) 1 game;
The ideal scenario would be that each game would have an equal probability of being selected - 1% - but in the proposed implementation what actually happens is that the Dreamcast game has 50% chances of being selected, and each of the other games has a ~0.5% chance of making it.
I know I deliberately made up numbers for the sake of clarity, but the case still stands. I imagine some people will have systems with hundreds or thousands of games (MAME is a good case), with others with few games (PC engine only has something like 30 games in total, or Ports with just a few as well).
I know it requires a change to the logic, but I hope it's not a significant one.
But hey, even if it doesn't get changed, it's already better than not having anything :)
Would love to hear your thoughts. I've been mostly silent as asides from going through a more intensive work period, I'm doing a bit of work on some ES changes as well, for the main branch. Nothing as sexy as the theme and video changes, but something that hopefully will be helpful to the community :)
-
@pjft
You are completely correct, currently the distribution is heavily skewed towards games in systems with fewer items. Without the redesign for gamelist database in place, I'm not sure how to fix that easily. I'd rather not build a separate list with all possible games to sample from, if I can at all help it. Would you have an idea of how to tackle that without creating a shadow-archive? -
@Zigurana I actually have one, as I had thought about that after reading your CR - and wanting to improve fieldofcows' implementation, just because it is constantly iterating through the entire library, even though it's not slow in reality - which at high level could be the following, in pseudo-code:
-
Store an index variable with the count of all games, at initialization (or, on get, if it's zero, initialize it once so you don't do it more than that).
int idx = 0;
for each system
idx += system.getGameCount(); -
Then, on randomization,
int r = rand()*idx; // or whatever the right syntax is in C++
for iterator it over each system
if (it->getGameCount() < r) {
r -= it->getGameCount() // this will decrease the counter until we are within the right system
} else {
// the random number falls within this system
return it->getRootFolder()->getFilesRecursive()[r];
}
Thoughts? I did not implement this, but I think this should work in principle. The indexing is also likely not needed, if you'd rather calculate the game value all the time. It shouldn't be too expensive, computationally speaking, but if possible I try to optimize computer cycles :)
EDIT: once again, just to clarify, this is pseudo-code. I know some of the methods actually exist, as I've been diving deep into SystemData and FileData, but this will not compile as it is :)
-
-
@pjft
Allright, that seems a feasible approach, I'll have a stab at it tomorrow, as my brain is fried right now.
Thanks for the suggestion.
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.