-
Notifications
You must be signed in to change notification settings - Fork 128
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
Allow to use custom Steam Play compatibility tool like Boxtron, Roberta and Luxtorpeda #300
Comments
Hello, lead dev of Luxtorpeda project here - I will be monitoring this thread for GameHub developers' response; left some initial thoughts about way to approach this in dreamer/luxtorpeda#41. @neuromancer thanks for raising this topic for both projects :) |
I think supporting custom tools in @dreamer Also
It would be nice if tools could provide this info to integrate in GameHub better. |
I have trouble giving straightforward, actionable answer until we'll estabilish some facts (I know GameHub only from user POV); we should also probably split this into smaller tasks (one per game source / compatibility tool?).
Therefore, I suggest we should focus on GameHub/GOG/Boxtron integration for now. At the moment compat. tools advertise themselves to Steam by placing 2 vdf files in their installation directory (is GameHub capable of parsing
Pre-installation:
Post-installation:
For reasons above I would actually prefer if Boxtron appeared as a compat tool for installation, and not only for running games. At the moment I use installation script
Boxtron supports several configuration options, but I don't think it's necessary to expose any of them initially.
The only sensible actions I can think of would be: "Edit config file" and "Reset config file". I don't want to expose dosbox configuration settings to GameHub, as user is more likely to break something than improve anything. Next step: let's determine if GameHub can parse Boxtron *.vdf files; if not, then I will release test build with the same information in other format. |
Yes. I'm not aware of any way to launch a game via Steam client with different compat tool.
Humble games can be anything and have no defined file structure. GameHub tries to do something depending on file type and it may or may not work.
It's a bit hacky implementation.
Yes, GameHub can:
This shouldn't be a problem. I plan to treat compat tools as Proton if their executable is called |
@dreamer just to clarify, you need to select the correct compatibility layer in the game properties: GameHub has Dosbox and ScummVM support. If you can't find the option, then either GameHub can't find Also, if unpacking GOG games fails for some of them, you need to update your innoextract (GameHub does not provide any binary, you need to install it in your system). For instance, I'm using |
@neuromancer Thanks; I tested with few more games and eventually found one that showed up ScummVM as a compatibility layer.
By default GameHub selects innoextract 1.7 and informs me to install 1.8 or newer - as developer and advanced user I might do it, but as user I will not. Overall, I find GameHub UI pretty confusing, but this issue is not good place for discussing it, I will try to stay on topic :) Is there a place/forum/issude dedicated to discuss UI design?
Parsing stderr for warning is a bit hacky indeed… In Roberta I do it this way:
That's great :) vdf files cannot be converted to json in generic way (I think vdf key-value pairs can have duplicate keys, which do not map to json dicts), but for handling compat. tools it's good enough.
Don't do it for my compat. tools, please; I changed the name of main executable in the past and I might change it again in the future. Runtime interface is defined in
Option 1) Boxtron implements it - rather easy, I can do it, but it means GameHub should hide executable and config parameters from UI when user selects Boxtron as Compatibility layer. In such case, I will add new parameters to Boxtron and create new entry in toolmanifest file (e.g. In such case, GameHub would need to invoke following command: If we go with this route, then I will add one more entry in toolmanifest Option 2) GameHub implements it - I think you already do it for DOSBox anyway. In such case, you need to read file
Existence of actual dosbox.exe file does not matter - it's just there to trigger specific path in game detection algorithm, but working directory is actually quite important. Boxtron tries to find correct working directory to work around some bugs in game distributed through Steam, but it's much better if it's set up correctly. Boxtron deals with translating case-insensitive Windows paths in arguments to case-sensitive Linux paths (I see GameHub does as well, but I don't know if you handle all edge cases). If we go with this route, then Boxtron-compatible games can be detected by looking at @tkashkin Do you prefer we go with Option 1, Option 2 or do you suggest some other solution? :) |
Let's also keep in mind that GOG has .info files, which contains specific game information. For instance:
GameHub is already parsing these files, but they are not available for all the games (most of them, I believe). As a alternative, .lnk files could be used. |
@neuromancer that's essentially what I wrote in my post above, with suggestion how to use this information. |
I've created #304 for general UI discussion.
I think Option 2 is better. I would like to implement |
@tkashkin after considering a bit, I decided that Ping me when you'll have a working version on master or some development branch :) |
If @tkashkin or someone is interested, here's how the Steam compatibility tools work:
This means the default process is extremely generic and can be implemented in the UI as a text box for the arguments, with more advanced or simplified features implemented for the more popular ones like Proton. |
307fcbc adds Steam compatibility tools support. GameHub should detect tools in I've tested current implementation with a couple of GOG games (Windows and Linux versions). Boxtron seems to work for Windows version, but doesn't detect Linux version as compatible. Both tools output Boxtron: Bio Menace (GOG, Windows) - works
Boxtron: Bio Menace (GOG, Linux) - detects game as incompatible
Roberta: Beneath a Steel Sky (GOG, Windows) - crashes
Roberta: Beneath a Steel Sky (GOG, Linux) - crashes
|
It's not designed for this; it's explicitly a tool translating various ways dosbox.exe can be invoked on Windows to native Linux invocation. Yesterday I did unrelated test using GOG HoMM2 and noticed that GOG changed structure of metadata file - this might explain
OK, that's unexpected - I will look into that. |
I will also test the current |
GameHub has manage to run good amount of DOSBox and ScummVM games using the compatibility layers, however a good amount of them still need a few tweaks to run (e.g. converting the paths in the Dosbox .conf files from Windows to Linux)
The custom Steam Play compatibility tools from @dreamer et al allow to run a large number of Steam and non-Steam games. The developers take care to test every game and are actively working to improve the support with new engines every day.
Replacing (part) of the compatibility layer with this external dependencies could be a good idea to reduce the complexity and to make GameHub more effective to use and easier to maintain.
The text was updated successfully, but these errors were encountered: