solus-project / linux-steam-integration

Helper for enabling better Steam integration on Linux
GNU Lesser General Public License v2.1
433 stars 19 forks source link

[Feature Request] Option to blacklist specific games from Native Runtime and/or Intercept Library #57

Open btegs opened 6 years ago

btegs commented 6 years ago

av_sdl2.zip

I've been rocking the LSI snap on Ubuntu for a little bit now and have been pleased with how things have turned out. But for some games like Axiom Verge, I ran into an issue with SDL2 controller support. The issue of using the SDL2 that is forced by LSI instead of the one bundled with the game.

If I turn off "Use native runtime" in the LSI settings completely OR leave it on and only turn off "Use the intercept library" and then run Axiom Verge, the PS4 and Xbox One S controllers work wired and over Bluetooth. If I use LSI with the default options, I can only use my keyboard. I've noticed this before with Ubuntu 17.10 where I forced the game to use the system's SDL2 and it didn't work. I don't know if the SDL2 that shipped with Axiom Verge is newer or custom, but it works.

I say this because if I play Hotline Miami 2 as-is, my PS4 and Xbox One S do not work. If I overwrite the SDL2 libraries from Axiom Verge into the HL2 directory, they work. Pretty interesting ey?

So I was thinking that it may be nice in a future version of LSI to manually (or automatically based off of a config file or mini DB updated by the community) blacklist the Native Runtime and/or the Intercept Library for certain games. I'm guessing you would add it by the Steam ID and/or name and could disable or remove the blacklisted item.

Is this something that was thought about earlier? I know in most situations, the Native Runtime and/or Intercept Library work better due to the updated libraries, but some games work better with the ones shipped with the game or the bundled Steam runtime libraries.

Edit: I attached the Axiom Verge SDL2 libraries for reference.

ikeydoherty commented 6 years ago

Please note the LSI snap is prealpha and no indication of stability should be assumed. If there is a per game issue, then we need to make the rules more correct or update/fix the bundled libraries. I don't want per process filtering for system libraries, its avoiding the issue instead of fixing it.

rjurga commented 6 years ago

I was able to play Axiom Verge with LSI and my Xbox One controller. I had the default options in LSI. I can try again later today to make sure.

EDIT: Ah yeah should have said it, it was on Solus.

ikeydoherty commented 6 years ago

Yeah Snap needs some love I'm afraid :D

btegs commented 6 years ago

I know it may be a lot of work to manually update a blacklist file by the community, but I was thinking more of the lines where a user his or herself can blacklist a game on a need to know basis. Native LSI in Solus and also in the Snap.

ikeydoherty commented 6 years ago

I thought I made my response quite clear. I won't be doing blacklisting as it isn't the solution.

btegs commented 6 years ago

I totally understand where you are coming from. You want the LSI snap to be an all-in-one solution where you don't want to spend the time to code quirks for individual games. That's a lot of time and I know you are busy with other things as well. I have been using it for a while in Ubuntu 17.10 and love the direction it is going.

I brought up the concept of blacklisting due to the quirk that a game may work better with native libraries or the ones shipped with Steam or the game. I know it sucks that Steam still ships with Ubuntu 12.04 libraries and there are many games out there that don't get updated and if they stay unmaintained, it forces the end user to delete or replace files manually in a per game basis. It sucks.

I also understand that the same game will work one way with one user and can work in another under another user. Just having the option for the user to blacklist that game is much more convenient than having to go back and forth between the LSI settings and toggling the ON/OFF buttons. This snap is tailored to a very technical audience and that audience, in my opinion, knows why the intercept library is causing issues and just want to nip it in the bud once for that game and be done with it.

So yeah, that was my suggestion to make mine and other lives easier on those cases where a game doesn't want to play along with LSI's libs. I know the snap needs some love and you wanted people to test it for you. This is what I came up with.