Skip to content
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

First time setup not working for "Star Wars Jedi: Fallen Order" #767

Closed
Welld1s opened this issue Mar 28, 2023 · 8 comments
Closed

First time setup not working for "Star Wars Jedi: Fallen Order" #767

Welld1s opened this issue Mar 28, 2023 · 8 comments
Labels
bug Something isn't working

Comments

@Welld1s
Copy link
Contributor

Welld1s commented Mar 28, 2023

System Information

  • SteamTinkerLaunch version: v12.12
  • Distribution: SteamOS (on Steam Deck)
  • Installation Method: ProtonUp-Qt

Issue Description

When the game is launched for the first time, there is no window with the installation of related software: EA Play, DirectX, etc. Accordingly, without EA Play, the game does not start (tried in Game Mode and Desktop Mode).
If I change the compatibility settings of the game SteamTinkerLaunch to Proton GE, all the necessary software is installed and then the game runs even through SteamTinkerLaunch. After re-creating Wine-prefix the game still not working until I change it's compatibility settings.
It may be worth noting that because of my home region the game is called in Russian in Steam - "ЗВЁЗДНЫЕ ВОЙНЫ Джедаи: Павший Орден™".

Logs

steamtinkerlaunch.log

@Welld1s Welld1s added the bug Something isn't working label Mar 28, 2023
@sonic2kk
Copy link
Owner

I think the home region thing is fine, at least I don't think it would be causing any issues, but thanks for noting it nonetheless :-)

I am fairly sure that this is a Steam bug and not an STL bug. Some games (i.e. Bethesda games) fail to install the related DirectX runtimes occasionally in my experience. See #742 (comment) for further details. Some games running via Steam Play just do not seem to install their relevant tooling on the first launch. I am not sure if there is a fix that STL can put in place for such an instance, given that we just rely on Steam/games to feed information.

In my experience it hasn't worked with GE-Proton, but you mention that it did, which is also interesting. This makes me more confident that this is some kind of Steam client bug. After all, Steam should run the setup for a game without STL needing to do anything. If you have any further information on this I'd be glad to hear it in case it is something I can fix!

I should also note that SteamTinkerLaunch does offer a Steam First Time Setup option, which should trigger the Origin installation. However I have not tested this myself ever in fact, it was implemented before I started even contributing to STL, but it may work as a workaround. Note the following section of the wiki:

steamtinkerlaunch can start the first-time setup game dependency installation using iscriptevaluator, which usually is triggered by steam "magically" without any obvious traces.

This file I believe is what tells Steam how to install various toolings (i.e. EA app) for a given tool. If the EA app installation stuff is not part of this file then the first-time run option probably won't resolve the issue ☹️

This action is likely not performed on startup because:

  1. STL has no way of knowing when a game is actually launched for the first time -- There may be ways to try and infer it, but nothing concrete or reliable.
  2. Steam should "magically" run this script, but in several instances it seems like it doesn't.

You probably also realised this yourself but noting this for potential future reference: This should affect all games using the EA app, which afaik is pretty much every recent EA game save for one or two.

Also, I have not been able to get any EA game using the EA app to work with SteamTinkerLaunch at all. Games that work fine without it do not work with it, so interesting that it works at all on your system :-) Good to know that the issue might just be my machine, so I can remove this from my personal backlog of STL work.


If the workaround is just to launch the game normally once then I think that's an acceptable workaround.

After re-creating Wine-prefix the game still not working until I change it's compatibility settings.

Yes, as the EA app is installed per-prefix. If you remove the prefix for a game running via Proton, it is as if it's running on a fresh "Windows" install if that makes sense. I figured this is how you were able to reliably reproduce and narrow down the issue to Steam not running the setup required when STL is used as a compatibility tool.


Thanks for reporting this, if the Steam First Time Setup option does not work then I am not sure if I can do anything further. I will take a look at the proton Python scripts for Proton and GE-Proton to see if they do anything here but I would assume they rely on Steam to run these steps. Still, maybe there's a variable that needs to be set to tell games to run that iscriptevalutor file.

If the first-time run option fixes your issue feel free to close, I will update if I glean anything further from the Proton scripts.

@sonic2kk
Copy link
Owner

Something to note also mostly for future me possibly referencing this issue: Steam Compatibility tools have a toolmanifest.vdf file. There are two standards for this file, v1 and v2. The v2 manifest enforces the Steam Linux Runtime for compatibility tools, which breaks STL as it can't run inside the runtime afaik. It could be that only v2 manifest files enforce running that evaluator file.

@Welld1s
Copy link
Contributor Author

Welld1s commented Mar 28, 2023

toolmanifest.vdf

I'm pretty new to this stuff, can you please tell me where can I find the evaluator file? Quick googling didn't help. :(
Everything else you've written about I fully got and will try to dig more. You software is absolutely fantastic and it's something I'll be happy to contribute to! ;D

P.S. Sorry, didn't read your Wiki article first, now I'm starting to understand more about "first time setup" proccess. Feel free to ignore my questions. :)

@sonic2kk
Copy link
Owner

It's ok! I'll try to explain a little more.

I'm pretty new to this stuff, can you please tell me where can I find the evaluator file? Quick googling didn't help.

This is unrelated to the first time setup specifically, perhaps I was a little confusing 😅 This file is stored for Steam compatibility tools, if you go to a GE-Proton folder (i.e. in compatibilitytools.d) you'll see that tool manifest file.

I mentioned that manifest file because GE-Proton uses a newer "version" of that manifest file, which means Steam itself executes the file slightly differently. It may be that compatibility tools which use a newer version of this file correctly run the evaluator script, or at least do so more reliably. That's just a guess on my part though :-)

When SteamTinkerLaunch runs a version of Proton, it just runs the Proton script for the compatibility tool and doesn't read the VDF files such as the tool manifest for the most part. Those files are for Steam itself after all. But it may be that when Steam reads those files for tools which use a newer manifest, that it might run the first time setup properly. There may be some reason why it doesn't do this the same way for compatibility tools which is use the v1 manifest.


As for the iscriptevaluator file, I'm actually not totally sure where it's stored. Perhaps the appmanifest specifies it. The wiki page may mention the location, I haven't read it in-depth.


Hopefully that clarified a little :-) And I'm glad you like SteamTinkerLaunch, I do my best for it!

@Welld1s
Copy link
Contributor Author

Welld1s commented Mar 28, 2023

Oh, now that's what I call an "explanation"! :D
I think I see what this is all about now, thanks to you. And I guess you're right - this line indicates the currently unsupported version of evaluatorscript, right?

"mode" "2"

Attached the full script.
evaluatorscript_1172380.vdf.txt
I see that for the games that work without problems, this line has the value of "1".

@sonic2kk
Copy link
Owner

I see that for the games that work without problems, this line has the value of "1".

Awesome investigation, I would also say that this is very likely why Origin isn't running for Jedi Fallen Order. I'll make a note of this on the wiki when I have a chance to describe it in detail.


Did the SteamTinkerLaunch option for "First Time Run" fix the issue for you? It should be available as a button on the SteamTinkerLaunch main menu. Since you're on Steam Deck it might be a good idea to do this from Desktop Mode, as it might show some notifier stuff.

I took a look at the STL code and it looks like it passes that script to Proton, which is certainly interesting but I guess that would explain why only Proton tools with the toolmanifest v2 can run the scripts that have "mode" "2". Interesting! All being well it should work though when ran directly :-)

@sonic2kk
Copy link
Owner

sonic2kk commented Apr 3, 2023

Been around a week, any update on this? :-)

@sonic2kk
Copy link
Owner

sonic2kk commented Apr 6, 2023

I think this can be closed at least for now. The wiki has been updated to note the investigation done here (thank you for that again!) and, hopefully, running the first time setup manually works using the existing STL option.

I don't think further work can be done or needs to be done here, so I think this issue can be closed :-)

@sonic2kk sonic2kk closed this as completed Apr 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants