luxtorpeda-dev / luxtorpeda

Steam Play compatibility tool to run games using native Linux engines
GNU General Public License v2.0
717 stars 19 forks source link

"manual" installation of dependencies possible? #39

Closed frostworx closed 4 years ago

frostworx commented 4 years ago

Hi, I already wrote this here on dreamer/luxtorpeda: https://github.com/dreamer/luxtorpeda/issues/68 , but maybe my "problem" is only related to your dev fork:

just wanted to let you know that I added luxtorpeda support in v1.0.4 of my linux wrapper script steamtinkerlaunch (or short stl) https://github.com/frostworx/steamtinkerlaunch Either enabled inside the gameconfig or simply add a game to the steam category Luxtorpeda to automatically start it with luxtorpeda.

Is there any commandline option to install the dependencies for some games "manually"? At least luxtorpeda-dev (are you working together btw or is this a completely different fork?) installs some dependencies on the first start, which I can't capture before.

boxtron support was already added in v1.0.2 :) : dreamer/boxtron#40 and roberta in v1.0.3: dreamer/roberta/issues/9

Would be nice if you could help, as luxtorpeda(-dev) would really work ootb then by simply adding a supported game to the Luxtorpeda steam category

d10sfan commented 4 years ago

Interesting project and I'll see what can be done to support it.

For the launch from steamtinkerlaunch, it sounds like it's most likely skipping the download step. Is it correct to say that any engine you try will fail to launch? If that's the case, it'll be affected on both versions most likely.

I saw the morrowind attempt. This version of luxtorpeda allows you to pick from a list of possible engines for some of the games, which it'll then store for use later. The engine choice picker will let them pick on each launch, in case they change their mind.

There are two steps to running a game with luxtorpeda (or dev). These steps are done by taking steam signals and running the custom commands to download the dependencies and then later running the game.

For the download step, I can add a switch to the command line to allow for manually executing the download step, if all the above makes sense. Let me know and I'll see what I can do.

frostworx commented 4 years ago

Hello @d10sfan! Thank you very much for your friendly answer! By calling luxtorpeda (and boxtron and roberta) directly there's no need to select them as compatibility tool inside steam. I think that is the reason why the initial launch hook from steam is skipped.

Once the dependencies are downloaded once, luxtorpeda works great via stl.

It would be great if you could add a commandline switch! Thank you very much for the offer! :) Is there some file I could check which would show the state of the installation? looks like the "ready" file is not always in the gamedir.

d10sfan commented 4 years ago

Ok, I'll look into that soon and let you know once I've got something.

For checking the ready state, are you wanting to avoid running that command after the first time? It will skip any downloads already if they are already cached. And we may want to still let them switch engines after the first time. So wanted to see your thoughts on that.

frostworx commented 4 years ago

Oh I didn't know that, thanks for the explanation! The way it is makes perfectly sense then! Thank you very much for your friendly communication! :)

d10sfan commented 4 years ago

@frostworx

This has been implemented by https://github.com/luxtorpeda-dev/luxtorpeda/pull/40. Luxtorpeda-dev version 20 has a new command line parameter of "manual-download" that should meet this need.

The command will look like this: luxtorpeda manual-download 3730, replacing 3730 with the app id.

Let me know if you need anything else for this.

frostworx commented 4 years ago

Hi @d10sfan Thank you very much for implementing that! I just tried it with prey and Morrowind and both downloaded their data fine and she games started ootb afterwards bout directly via stl. The saved selection of the zenity Morrowind requester doesn't have any effect though, after a second start the requester starts again. the file itself in config/luxtorpeda/22320/engine_choice.txt is still written correctly.

d10sfan commented 4 years ago

@frostworx

For the engine_choice, that's used by the run step so it knows which one to use, but it asks each time by design on the download step, in case the user wants to pick a different engine the next launch.

If you want to only let them choose once for your script, you could check if the ~/.config/luxtorpeda/appid/engine_choice.txt file exists and if it does skip the download step. Then it should work the way you're looking for. That work for you?

frostworx commented 4 years ago

@d10sfan! Very good idea, thanks a lot for your help! That would work perfectly indeed :)