Aloshi / EmulationStation

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

Unable to correctly parse gamelist.xml #469

Open Blu-Haze opened 9 years ago

Blu-Haze commented 9 years ago

When new games are scraped into the database everything works as expected until EmulationStation is restarted.

After opening EmulationStation again all of the scraped data appears to be missing. Only a single list with no images or descriptions is displayed as if the gamelist.xml doesn't even exist. When I alt-tab I can still see all of the data that was written to the xml file correctly, it just isn't appearing in the client.

If you close EmulationStation at this point then everything in the gamelist.xml is erased since it wasn't able to read anything when it first was opened.

Blu-Haze commented 9 years ago

I recently figured out what was causing this problem and thought that I would update this ticket in case Aloshi ever decides to work on EmulationStation again.

It looks like the XML parser wasn't wanting to play nice with my NTFS symbolic links, so it was saving the full path to the ROM in the gamelist.xml file. The next time that I would open EmulationStation it would then fail the IF statement on line 18 of Gamelist.cpp.

Here is the log output with the error:

lvl0: File path ""E:/ROMS/Games (Simple)/Nintendo Entertainment System/Battletoads (USA).nes"" is outside system path "E:/ROMS/Games (Simple)/Nintendo Entertainment System" lvl0: Error finding/creating FileData for ""E:/ROMS/Games (Simple)/Nintendo Entertainment System/Battletoads (USA).nes"", skipping.

A workaround that solved this for me is to change my symbolic links into hard links using the /H function of the mklink command.