This is an optimization that aims to fix issues with some titles
such as World War Z that have lots of duplicated files resulting
in a very high runtime cache requirement.
The basic idea is to group files that share lots of chunks together
so the data can be removed from the cache sooner.
For most games this has little to no effect. For some titles with heavy
duplication it can reduce the RAM usage significantly however. For
instance the RAM requirements for World War Z are reduced from 5.3 GiB
to 499 MiB.
Partially fixes#17
Also adds tsv option for list-files and fixes
no_install not being set with --exclude.
Install tags are only present in some titles, I'm not
entirely sure how EGL uses them. Perhaps to allow one
manifest to be used on different platforms? Or to only
download extra assets when the user wants to?
Either way, it's another filtering feature that may be
useful, though for now it's mostly another toy to explore
EPIC's distribution system with.
Useful to exclude unnecessary files such as redistributables.
Can be used together with --prefix to exclude files that would
still match the specified --prefix.
The refactoring didn't take into account that the raw
manifest data still needs to be accessible. Since I did
not want to modify the manifest model to hold the raw
data (waste of RAM), just make the methods return the
raw data again (at least for now)
Not only does this not work (path.join() will not
actually add Z: on non-Windows), it's also not necessary.
Confirmed to work with Detroit: Become Human (Demo) and
Just Cause 4.
This can be used to download Mac or 32-bit builds if desired.
For example: legendary download Corydalis --platform Mac
Will download the Slime Rancher macOS build.
Closes#12
If a user were to start and then abort an installation previously
we would have loaded the downloaded new manifest, rather than the
one of the installed version. By explicitly setting the version
we can avoid this.
Ownership verification tokens appear to be part of EPIC's DRM scheme,
they're basically just a JSON file with a token in it that's downloaded
from their API before launching.
This fixes launching games such as Just Cause 4.