Aloshi / EmulationStation

A flexible emulator front-end supporting keyboardless navigation and custom system themes.
MIT License
2.08k stars 905 forks source link

gamelist.xml load on Startup #423

Open Ceuse opened 9 years ago

Ceuse commented 9 years ago

I have serious Problems (Emulationstation freezing/white line on Top and not responing right at start) when i add too many / too big / corrupted gamelist.xml files.

I had this problem prior on diffrent occasions (usually when i added a new system) but i allways solved it by removing another systems from emulationstation.

The problem was occuring both on RPI2 and RPI1B with roughly the same number of systems / overall roms, a change to the gpu allocation via boot/config.txt did not solve the issue.

This time though it occured without a change in System numbers. i only added a gamelist.xml file to my kodi rom folder (wich is basicly the renamed ports folder).

As far as i figured it out is that emulationstation loads/parses all gamelist.xml files right at startup. If there are too many / too big/corrupted files it simply crashes.

Can you change the behaviour of Emulationstation so that the gamelist(s) for the platform will only load if you enter the specific menue or at least wont crash emulationstation?

if you need further data on this please let me know how to provide them to you

Ceuse commented 9 years ago

ok further detail. it seems that if i add this gamelist.xml to my kodi roms folder it breaks:

  [gameList>
  [game id="" source="the Internet">
      [path>./Kodi.sh[/path>
      [name>Kodi Entertainment Center[/name>
      [desc>Kodi (vormals XBMC oder "Xbox Media Center") ist ein kostenloses und umfangreiches Media Center für diverse Betriebssysteme, mit dem Sie Filme, Fotos und Musik verwalten und abspielen können. Dabei werden die wichtigsten Formate und Codecs unterstützt, so dass es beim Abspielen kaum zu Problemen kommt. Neben auf der Festplatte gespeicherten Medien, können auch Internet-Streams oder im Netzwerk vorhandene Dateien abgespielt werden. Über Plug-ins können Dienste wie YouTube, Shoutcast oder Apples Film-Trailer-Seite eingebunden werden. Kodi fungiert sogar als Dateimanager und RSS-Reader.[/desc>
      [image>./images/kodi-thumb.jpg[/image>
      [thumbnail>./images/kodi-thumb.jpg[/thumbnail>
      [rating>1.0[/rating>
      [releasedate>20150101T000000[/releasedate>
      [developer>Team Kodi[/developer>
      [publisher>XBMC Foundation[/publisher>
      [genre>Entertainment[/genre>
      [players>999[/players>
        [/game>    
    [/gameList>        

(replaced < with [ to stop git from interpreting the xml tags)

Although this xml worked fine before. After i uploaded and tested this xml today, i noticed that my gb and gbc gamelist.xml were broken (emulationstation even crashed when i entered the gbc System) . After i reuploaded the gamelists.xml files for those 2 Systems the error occured. Stangely though i cannot get the gamelist for kodi to work again (even if i remove both gb and gbc gamelist.xml files). only removing the gamelist posted above will make emulationstation work again.

Ceuse commented 9 years ago

ok another info. i just tried to add another game to one of my (existing) gamelist.xml files.

after that i experienced almost the same error : the emulationstation loaded fine but after some (random) browsing emulationstation frooze completly (not even keyboard input would work). after i removed the one entry i added to the gamelist.xml file. everything worked fine again. The gamelist contained 6 games prior. i tried to added a 7th.

heres the gamelist again with replaced < tags to not break github. It seems that emulationstation has some serious problems about big/many games inside overall gamelist. it seems that there is some variable declared to small

  [game id="615" source="theGamesDB.net">
      [path>./Suokoden II.bin[/path>
      [name>Suikoden II[/name>
      [desc>As a member of the Alliance, a military force only really hinted at in the original, you play the unwitting hero of the game: an orphan who has been raised by a quiet, unassuming battle hero in a seemingly ancient war. Alongside you in the ranks is your best friend Jowy, a boy born of nobility but who has never been able to receive approval in his stubborn father's eyes. As the game begins, you are immediately tossed into a tale of political strife, betrayal and war on a grand scale beyond your scope in the early stages. As the game wears on, the plot will twist, turn and develop in numerous ways that expose the personalities of each of the characters involved. The battle system is turn-based, with the option to equip Runes for special abilities, combine party member attacks to create chain combos or devastating spells, and the option to run the battle in Auto mode.[/desc>
      [image>./images/Suikoden II-thumb.jpg[/image>
      [thumbnail>./images/Suikoden II-thumb.jpg[/thumbnail>
      [rating>0.7[/rating>
      [releasedate>19990831T000000[/releasedate>
      [developer>Konami[/developer>
      [publisher>Konami[/publisher>
      [genre>Role-Playing[/genre>
      [players>1[/players>
  [/game>
Ceuse commented 9 years ago

Heres another post by me with screens about the issue : http://blog.petrockblock.com/forums/topic/more-then-12-emulators-active/#post-92610

if there is a debug switch/log you can point me to i will gladly try to gather more information

Ceuse commented 9 years ago

Ok lowering the background resulotion of the theme somewhat eases the issue, Although adding a new emulator with alot of diffrent roms breaks the system again. There is a MAYOR Ram drain by adding more roms/gamelist.xml files.

A solution should be that emulationstation should only parse the gamelist.xml file in the moment you enter a specific system. and then only those specific Gamelist.xml file. My tests/problem Indicates that at the Moment, emulationstation parses every Gamelist.xml file directly at startup and keeps everything in Memory.

Ceuse commented 9 years ago

Bump.. any comment / aknolagement?

taalas commented 9 years ago

I am experiencing the same problem when adding additional systems on my Pi2. The UI will start but freeze after about 4-5 seconds. When removing the additional systems/roms all reverts to normal.

ludz73 commented 9 years ago

Hi, i had the same pb, i have 25+ systems and many roms, and the only way i found to get rid of the freeze or white screen problem at startup is to completely remove all themes. It now works like a charm even though it is ugly without themes. It is definitely theme related. Hope that helps.

gr33k commented 9 years ago

Same issue - no errors in es_log that are out of the norm. I just reach a limit of how many emulators can have roms (thus appear) with Simple theme and most themes EXCEPT for Color-Pi (tested original and 1.2 version and both work fine).

Problem is - I rather enjoy the different backgrounds that simple has to offer (and simple-dark was nice). Nbba, and the other downloadable themes ALL freeze... So I assume if I keep the same background it will work just fine...can you folks test and confirm?

And what can we do to fix this? I want to have as many emulators as I can fit on my 128GB SD Card :)

I'm on the latest RetroPie - multiple updates, and built everything from source (emulation station 2.0.1A seems to be the latest).

I've put multiple GPU RAM sizes and it makes no difference (up to 512 even!). Rebuilding and using the latest theme -permissions etc - not the problem (as I've read on other posts to no avail).

I've seen Steve Smith's theme and it looks awesome - but i wonder how many roms he's got on those - it seems to have something to do with the amount of systems AND roms that you are putting on there.