RetroPie 3.7 + Child friendly EmulationStation wont start
-
@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,
-
This post is deleted! -
Hey @BuXY !
This is just a quick sign of life post, letting you know I did not forget about this post, and it is still on my todo list.
Basically, I am still trying to get my workflow up and running in a VS environment, and I am slowly working my way out of dependency hell.
Once all is set, this (and the issue with assigning new hotkeys for easy toggling) are on the top of my list.so hang in there!
-
Hi @Zigurana,
thanks for dropping in! :) I understand that, and i'll be patiently waiting for the solution. :)Just one addendum to the things before that i noticed today: in kid mode i can see rom files those names are starting with a period. (But no other files are in the same dir, only subdirs.)
Keep up the good work!
-
This post is deleted!
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.