This is a rather large release for LSI, focusing on improving compatibility
and security for gamers.
This release also features a new LD_PRELOAD based liblsi-redirect.so to help
with some bugs in ARK: Survival Evolved and Project Highrise. Read down for
more details!
New UI
liblsi-intercept.so
Transmute vendored SDL libraries to host names
Prevent games from using vendored libcurl
Rewrite XNA/Mono dlopen() requests to use host libraries where possible
Prevent games from using vendored openssl libraries
Whitelist swiftshader
libGLESv2.so
Prevent games from replacing the rest of mesa libs
Prevent games from using some common vendored GLU/GLEW libraries
Redirect broken /Plugins/x86/dlopen() requests to the proper directory (/Plugins/x86_64/)
Whitelist libx264 vendoring in the Steam client
Add new system to allow redirecting LibreSSL linking to a host library, which can be the native
libSSL or an alternatively named library (i.e Solus has libssl-libressl.so). This will help to
improve security for certain ports, along with the existing SSL/libcurl intercepts.
Fix preload failures for Mono games attempting to load .dll.so files when the .dll path is the
correct one (Helps with "black screen of nope" issues)
liblsi-redirect.so:
Introduced this LD_PRELOAD based module to fix games on the fly
Override open() system call to fix "ARK: Survival Evolved" using broken shader assets (requires TheCenter DLC)
Override fopen64() system call to fix "Project Highrise" attempting to use a preference directory as a file and then crashing
Introduced profile system to allow explicit + safe matching of games, with a view to extending this in future.
common:
Lots of cleanups
Much nicer logging system (LSI_DEBUG=1 steam)
Introduced a VDF (Valve Data Format) file parser to support multiple Steam installation directories.
Shared much of the code-base between the various modules.
lsi-settings changes:
Completely revamped the UI
Dynamically updates state based on selections
Writes settings when closing the window, no need for extra buttons
Uses CSD under supported desktop environments (dynamically)