RetroPie 3.7 + Child friendly EmulationStation wont start
-
@Zigurana said in RetroPie 3.7 + Child friendly EmulationStation wont start:
Ok, this time the commits should be ok (fingers crossed).
My latest commit to UI_modes_Kiosk_Kid_Full (called:This reverts some of the 'optimizations' I tried earlier.
) should- fix the script
- undo some work i did in the file listing, which obviously needs some more work (or a complete overhaul once I finally make the step to the SQL implementation).
@Rion , @Tarran , if you could be so good as to try and install it from the experimental menu, and tell me how it goes, that would be really swell!
There probably will be other issues/bugs, or things you might want smoothed out /added, just let me know, and I'll see what I can do.
Sorry about the late reply @Zigurana
Work have got in the way this week and I'm also not home during most of the week. Will test when I get some time later this week.
@Tarran I think it best to always start with a fresh image before you install Child Friendly ES.
-
@Tarran said in RetroPie 3.7 + Child friendly EmulationStation wont start:
@Zigurana Let me put a scenario out there, and it could just be my not understanding the retropie environment as well yet. But for the rig I'm setting up I'm giving my nephew a few controllers, NES/SNES/Genesis. Does the config have to run each time if I've connected them all already? I just want to make sure it doesn't die on him if he wants to play sonic instead of mario :)
Well, I'm not quite sure, but it has little to do with the kidmode extension as such, more with ES and the way we manage controller-configurations in general.
There are two ways I see this working : 1) you plug in all controllers in a fixed usb position on the pi and set the controller to be used in emulator-specific configurations.
2) you configure each controller separately beforehand, and as long as they are recognized as unique controllers you can plug them in and count on them working correctly.
Of course, there is a lot that could go wrong, see the many topics on controller config around here. But again, its a general issue, not kidmode specific. -
@Zigurana
Preliminary testing today with a clean 3.7 Image.Everything seems to work as it should and i am a happy camper :)
If i find any bugs i will report them as soon as i can.
You mentioned that we could give you a couple of suggestions and thing we wish could be added in the future.
One of those request would be to have support for the skin carbon-nometa.Is this a possibility even if the skin has no metadata support? Can it be added, cause if would look really god without the metadata that my son cant read yet anyway.
-
I got a request for the UI Kids mode.
Is it possible to remove the option Shutdown in the context menu and only have Reboot & Restart?BTW have you looked in to support for no metadata carbon skin?
-
@Zigurana
Well I tried configuring all of the controllers and unfortunately as soon as I installed the kiosk package and rebooted the system I went back to the
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)
Aborted:(
If there is anything I can do to help please let me know as I would love to get this working as this would let me give my nephew a system he can grow with, rather than limit him to only a few games.
-
@Rion said in RetroPie 3.7 + Child friendly EmulationStation wont start:
But when i select a system nothing shows up and when i try to go out to the main screen using B button it crashes to cmd line with this error message.
emulationstation: /home/pi/RetroPie-Setup/tmp/build/emulationstation-kids/es-core/src/components/IList.h:125: const UserData& IList<EntryData, UserData>::getSelected() const [with EntryData = TextListData; UserData = FileData*]: Assertion `size() > 0' failed. Aborted
Hi lads, i'm quite new here. :) I have searched for the crash message and decide to write my experience here.
So i have built an emulationstation-kids a few weeks ago, and suddenly my c64 platform "vanished", does the very same behavior: it should be full of games, but the list is empty. after pressing B, it crashes with the very same error message, and locks the keyboard too.
After some testing, it appears that the bug is related to the subdirectory handling, and there are multiple issues related:
- If there are only subdirectories starting with the . character, therefore hidden, the platform won't show up. (good) Also these do not interfere with the points below.
- If there are no subdirectories, everything is fine. (good)
- If there are any games in any subdirectories (excluding hidden) the counter on the platform select screen is correct, but wait:
- If there are games in some subdirectories and in the platform root, only the root games are listed, and no subdirectories. (wrong) It was fine though with the official emulationstation that came with RetroPie 3.7.
- If there are games only in the subdirectories, and no root games, then the list is empty, and the crash is imminent. (very wrong)
@Zigurana (or somebody) can you please check on that? Should be easy to reproduce. Thanks!
-
@BuXY: I'll have a look at it. Personally, I've never considered putting games in dirs but if if thats a use case that causes nasty crashes, I'll see what I can do.
Just to be sure, what type of behavior do you expect in the following cases?- All games in sub-dirs from the system, all games hidden.
- all games in sub-dirs from the system, only dir hidden.
What would you expect to see in those cases?
-
@Zigurana: Thank you. I have decided to sort my games by genre like platformers, shooters, racing etc.
I don't quite get your question (maybe it's my english...), but i'll try to provide some answers and use cases:
- in full (admin?) mode, if a subdir has any games, it should show.
- in full (admin) mode, if a subdir has no games, the subdir maybe could show, but check the original code.
- in kid mode, if there is a subdir that has 10 games, but 0 kid games, the whole subdir should hide
- in kid mode, if there is a subdir that has 10 games, and 2 kid games, the subdir should show, you can navigate inside it, and the inner 2 games should show up. Back with B button.
- in kid mode, if there are 0 kid games in the platform root folder, and there are 2 subdirs containing any kid games, and 3 other subdirs containing no kid games, only the 2 subdirs should show.
- in kid mode, if there are many games in some subdirs and also in the root folder, and none of these are kid games, the whole platform should hide from the main menu
Please tell me if you need more info.
Thanks a lot!
-
Well, you see, multi-level system structures are simply not supported yet atm. You mentioned some dirs with the '.name' convention in order to hide them, so I was wondering how you expect those type of setups to work.
But If I understand you correctly, you would like the directory to be transparant to ES, basically only looking at the metadata for the games themselves. That seems doable. -
@Zigurana: Oh yes, i did mention the ".name" method, but it is irrelevant in this matter, the code should skip them altogether. These directories and the files inside should never show up, nor count on the main menu platform selector aggregated games amount. (This is the current stock ES behavior.) This was just my manual method of hiding violent games from my children before i found the es-kids project. If you have a platform with only .name subdirs in it, then hide the whole platform from the main menu.
What do you mean by multi-level system structures? I do have files in subdirs like this:
/c64/ducks ahoy.prg
/c64/platformers/giana.prg
/c64/racing/pole position.prg
/c64/.BuXY/demo/thrust concert.prg (this subdir shows only if i rename .BuXY to plain BuXY and restart ES.)
/genesis/platformers/sonic the hedgehog.md (ehh, the hyperlink of the creator forum engine is overreacting this :) )and they are nicely supported and working by stock ES. This subdir handling feature should be already present in current ES-kids code. Or did the project fork from an earlier state? Do you keep up with the stock ES trunk?
Thanks again,
-
@BuXY
A that's clear then.
The differences between stock and this branch of ES are relatively recent, there certainly have been no updates on this since I've introducted the Kid modes stuff.
The issue you are seeing is simply ES trying to generate a list which turns out to be empty. I've crushed this particular bug in a couple of other locations before. But seeing as it keeps popping up, maybe I should look for a more permanent solution...
It will be tomorrow afternoon before I have some time to check this, but I do not expect great difficulties for fixing this.
Thanks for taking the time to explain your use cases, it really makes reproducing and repairing the bug much easier. -
@Zigurana These are great news! Please indicate in this thread when you are finished, and also tell me how can i fetch the latest code to recompile. Thanks again,
-
Ok, so life happened, mostly in the form of sunshine and beers, so it will be a bit longer before I reimplement the file filtering for Kid/Kiosk modes.
Just to be sure: in the ES interface, do you expect the sub-directory itself to show up as well? So as per your example, do you actually select 'platformers' in your c64 system before you can select giana? -
@Zigurana As i'd like my system up and running again, but i just cannot argue with sunshine and beers. :D
Yes, you should be able to navigate in and out of subdirs. If you have some time, try a stock ES just to experience its behavior. I do not expect to differ ES-kids more than it should. (Later on, you could implement a flat mode you can toggle, but maybe we should wait until a feature request arises. :) )
Cheers,
-
I too have run across the folder bug with this version of ES but first let me say that organizing the games via genre folders is an excellent idea, thanks @BuXY .
So in my situation I was running stock ES. Dreamcast has a couple games that have multiple files such as Rez. The different games contain files with the same name such as Track01.xx, Track02.xx etc so if you have multiple games they should be in folders. I did have them in folders under the stock ES. @Zigurana So in the list of games you will see a folder titled Rez, when you click on that it enters that directory and game is listed there from the rom file.
After installing Child Friendly ES those folders were no longer shown. The files were still there, the gamelist.xml still had the <folder> list that was generated previously but the games did not show. So there was no way to launch those games. I was going to write this up as a bug but wasn't sure what "normal" behavior was supposed to be. My solution was to add all the files under the main directory and change the file names while editing the games gdi file to reflect those name changes.
-
@opensourcefan Be my guest using this structure. :-) It dates back when i had my DOS games sorted like this on my 486.
I did not play dreamcast stuff ever, and i did not have the time yet to sort all the games in all platforms on the Pi. So i didn't notice the whole folder bug until my fully sorted c64 section just disappeared and es has crashed. Hopefully, when the beer runs out, we will have the fix. :-)
-
@Zigurana @BuXY
I added the folder bug to the Git page so it's easier to manage. If there's anything else you can add that may help find a solution please add it there.
https://github.com/zigurana/EmulationStation/issues/20 -
So I've updated the repository.
Tried to re-implement the whole file filtering because its currently ugly as hell, could not get the D@#$ thing to work, so finally opted for another quick hack. There should be no more out-of-range errors, but please, please go ahead and test!Also, the subfolder thing should work as well now.
-
@Zigurana Thank you very much. I have compiled the latest version, and so far so good! My directories show up like they should, and there were no crashes. Had no time for thorough testing yet, though. Thumbs up for not-so-ugly hacks! :D
-
Dear @Zigurana
now that i finally had cca. two hours of free time to tweak my system, i got the following things to mention:
- First of all, there were no freezes or crashes. :)
- The kid mode worked in a lot of occasions as expected.
- The biggest issue: if there is a subdirectory that has 0 kid games, then the whole directory, including all non-kid games are listed in kid mode! (The platform menu shows the correct amount of kid-games though.) This is also true for the root directory (when it has only non-kid games).
- In kid mode: If a subdirectory has only hidden=true games, then one of them will show. If it is the root directory, then all hidden games will show.
- If there are no details for any game on the platform, then the x-y buttons do not seem to work.
- The subdirectories got also the heart, teddy and eyes icons displayed on startup. The visibilities of these icons are not updated until the cursor has been moved to a valid game. After then, the subdirectory items will show the same fav/kid/hidden settings as the last game had. Please update the icons when a subdirectory is highlighted, like hide all three icons.
Carbon theme v4:
- There are many platform folders missing in the current implementation, for example i had only a white background and no svg for the "arcade" platform. I have created the missing ones from the official v3 and made them kids-compatible. I would be more than happy to share the results and upload the expanded set. :)
- If the gamelist is in basic mode, there is no clue for x-y buttons in the bottom status bar. Detailed mode works fine.
- In basic display mode, there is no indication of favorites, kid, and hidden. Can you find an acceptable place for the icons?
Suggestions:
- Is it possible to map a hotkey for hiding games too?
Cheers,
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.