-
-
Notifications
You must be signed in to change notification settings - Fork 480
[Feature] [macOS/Linux] Workarounds #2176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Support gzip and zstd archives - Return the extracted path on completion
This demonstrates the new feature by laying out the file structure & porting our DXVK & VKD3D options to Workarounds. Note that only installation, removal, and install status checking are implemented for now, updating workarounds will come later (some types already reflect Workaround `version`s, although nothing uses them right now)
This should further improve overall performance
Seems like we also have a lot of non-relevant things to update. Maybe a separate PR for that is in order soon
42217d5
to
fcc3847
Compare
@CommandMC can we close this PR? just to clean up the list of PRs |
Oh I'm still planning on continuing this. Currently, this is blocked by us not supporting newer TypeScript versions (#3218) |
I was reading this and I have some questions:
at least in my experience, many games can be fixed by running one or two winetricks commands, so I was thinking about having something really simple as a first version:
that should solve a big % of the games and we can then focus in more complex workarounds? because I see the definition in the winegamedb all cases but some seem to be uncommon or optional |
The general idea of this is a system alike to Lutris install scripts. However, individual workarounds might also be helpful for the user (as an example, DXVK and VKD3D-Proton).
For one, I think the code is that old, but this system also offers a 3-state system for game "install scripts". Let's take DXVK for example: The system currently implemented in Heroic always respects user choice, while the intent of workarounds is that DXVK can either be required (if WineD3D won't be able to run this game), optional (both DXVK and WineD3D would work with the game) or disabled (DXVK causes issues, only WineD3D works).
The point of this PR is to focus on these uncommon cases, and to be as-extensible-as-possible for future game releases. Of course, we could go with a really simple system for "just enough" to work, but I'd prefer not rewriting the whole thing once we need some new functionality. |
With us now having a system for most common workarounds (https://github.com/Heroic-Games-Launcher/known-fixes) and ULWGL eventually covering everything else, I don't think it makes sense to work on a 3rd system (which would then of course be incompatible with other launchers) o7 WineGameDB, long live ULWGL |
Picking up where we left off in #2121, this PR will (when it's done) implement the Workarounds system described in https://github.com/WineGameDB/db
TODO:
Note that some filtering has to be done here, since some workarounds (copying files, setting environment variables) don't make sense here
Workarounds themselves should be able to be...
I'd also like to have some
since right now, nothing specifies that a Workaround has to have certain methods & you'll get errors in the wrong places if you miss one.
Use the following Checklist if you have changed something on the Backend or Frontend: