Hey guys, bear in mind that this is near the top of my list, and I will tackle it soon, but let me speak on it a bit. The way LaunchBox currently works is it loads the entire XML file and saves the entire XML file all at once. There's currently no way to do partial saves or loads, which I do have on my list. Furthermore, in order to properly sync and allow LaunchBox to be running on several machines at once and have them sync without overwriting data, LaunchBox loads the entire XML file from disk before saving, every single time. This is no problem for typical game collections, but obviously doesn't work well when you have tens of thousands of games. Back when I built those pieces I never expected anyone to import every game for every platform known to man. ;)
Big Box gets around this more easily partially because the vast majority of it is read only, but I also added some logic to save in the background so you don't notice it. This is more of a workaround than a true fix, though.
The actual solution will involve several steps:
- Launch games *before* loading and saving so they launch immediately (this is easy and will be done very soon)
- Separate out the single XML file into several XML files for each data type, so that saving and loading is quicker (and possibly separate out platforms as well)
- Instead of re-loading from disk for every save operation, use a file system watcher to detect when the XML file(s) change, and reload only when necessary
So anyways, this isn't near as simple of an issue to tackle as it seems. Please bear with me; I'm hoping to wrap up the list view tonight and this will be the very next improvement to make.