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.
-
I'll give it a try when I get home from work. I do want to say thank you for the work you're doing. Something like this a HUGE help to me as I'm building this system for my nephew and this lets me put all the games on there as he gets older rather than having to put only a few on. (Plus I know his parents will play it at night after he's asleep :P )
-
So EmulationStation starts now but it soon crashes with the following error
====================
input config finish command:
Input type is 'joystick'.
Configuring 'emulationstation'
Configuring 'mupen64plus'
Configuring 'reicast'
Configuring 'retrocarch'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 -
Hey, thanks for testing.
Is this with any roms installed/set as favorite/set as kidgame, in wich Ui mode?
Also, starting ES with the "--debug" flag added gives me some more information to work with. -
I must say I am surprised I did not see this in my own tests.
Did you set up a working stock version of 3.7, with some roms in place and the controllers configured, before attempting to install this fork?
Thats the one if the things I can think of that might make the difference. -
@Zigurana So I had this running 3.5 and recently upgraded to 3.7. I have been configuring some new remotes since this. So are you saying I should maybe uninstall kid-friendly, configure all the controllers (I have a bunch for him to play the different games) and then install kid-friendly again?
-
@Tarran I would suggest you set up all elements of your installation, and (after creating an image of the SD card) then install the Kidmode fork.
This has the added benefit of being able to revert to a more stable situation quickly :-) -
@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 :)
-
@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,
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.