Try loading ujson instead of json. This significantly increases performance for both reading and writing the log with large amounts of files (from almost a minute, to under a second). If ujson does not exist, it falls back to the native json module.
Improve the PATHS section for ease of modification and understanding. It was initially quite difficult for me to understand which paths to enter.
Add optional delay between I/O calls to prevent systems using HDDs from locking up.
Instead of lowercasing all paths, use the original casing, and check for duplicates instead (similar to the way WINE does it). This does slightly reduce performance for movfs4l (although I didn't notice much), but it significantly improves performance in-game, as WINE otherwise has to perform a full search each time for each file (WINE doesn't use a cache).
Various style fixes to prevent IDEs from showing as many warnings
ujson
instead ofjson
. This significantly increases performance for both reading and writing the log with large amounts of files (from almost a minute, to under a second). Ifujson
does not exist, it falls back to the nativejson
module.