-
Notifications
You must be signed in to change notification settings - Fork 72
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
IGCSInjector Issue (Files not Generating) #795
Comments
Interesting, I have never heard of this tool before and didn't know STL included it. The code for it doesn't seem to have been touched in a long time. As for which file to attach, you should disable this IGCSINjector option, then re-enable it, and then attach Though interestingly from looking at the code, it appears that a project directory should be created for this tool, and if STL is not even creating that folder, that's an interesting problem.
This may be possible, but I am still not even sure how this tool works, this is the first time I have looked into it at all so I can't comment much for now. All I can say is an improvement here may have to come from a community member who knows more about this than I do. Still, if I can get my head around this and get the program working for you, this can be tackled as a separate feature request! :-)
It's all good, these things happen 🙂 |
I can reproduce the issue on my Arch PC. It creates the folder at I'll take a look into this and see what I can find out. |
I had it unchecked earlier, checked it, and tested it again right before I posted, so this log should have that behavior. I've been trying to get certain things to overlay on top of Guild Wars and Guild Wars 2 for the deck, and an Everquest dev pointed me in the right direction with their tutorial that used STL. Their method works with this overlay's own program just fine (with a delay), but their inject and launch box does not work in Game Mode for what ever reason (STL needs to launch their injector as a forked command on a bit of a delay, and pops up about the time I am at the character selection screen). A DLL injection method directly with STL would be even better. |
Thanks for the log! The relevant lines mirror what I see on my Arch PC:
I'm currently trying to trace through why it's jumping straight to "not found and could not be created". I confirmed that the IGCS zip URL is still valid, there's something in I just noticed the double slashing (
This could be some kind of Steam Deck Game Mode issue with the GameScope session. Several have been reported recently to Valve and specific STL things not working properly in the Game Mode session, so I think this is something on Valve's end as SteamTinkerLaunch shouldn't launch programs differently in Game Mode (it just runs another process with Proton, after that it's out of STL's control). Not sure that I can help much with this part specifically sadly. |
Oh, sorry, I was mostly giving context. I didn't think you would be able to help with that. I figured it was a Proton issue too. I appreciate the explanation though, cause I didn't know it was a wider known issue. |
Okay, I found out the problem. I was able to get STL to download (Cookie Clicker is just my generic test game 🙂) The issue was that b71e794 (17 months ago), there was a change to how STL handled downloads. It migrated to using the However, it seems "$IGCSZIP" "$IGCSDST" "X" "'$IGCSDST' not found - downloading automatically from '$IGCSZIP'" When it should be this: dlCheck "$IGCSZIP" "$IGCSDST" "X" "'$IGCSDST' not found - downloading automatically from '$IGCSZIP'" The code forgot to call I'm going to push a commit that should fixes this momentarily, thanks for bringing this up and great find! The actual functionality should work with this change. You can update from ProtonUp-Qt by reinstalling SteamTinkerLaunch-git. From combing through the changes in b71e794 it doesn't look like |
Ugh I forgot to reference this issue in the commit description, but d7701e4 has been pushed and should resolve this issue. |
xD Awesome, I appreciate you as always. I will test as soon as I am able. |
Damn. The DLL is not injecting, but the process of the injection for STL is functioning as expected now. I didn't even know it would prompt for which DLL xD. However, It prompts for which DLL each and every time. Possible (read, is it easy) to add a "remember selection" box or move the dll selection to the settings page for it? |
It appears that the way to get it to remember the DLL is to specify a DLL in the It checks if there is a DLL in the game directory that matches IGCSDLL="$(grep "^Dll=" "$IGCSINI" | cut -d '=' -f2)" # Gets the DLL name after the equals sign from the first line in the INI file starting with "Dll="
if [ ! -f "$EFD/$IGCSDLL" ]; then # If this file doesn't exist in the game directory (no idea why it's called EFD, maybe ExeFileDir?
# does some checks for some related tool called "UUUSEIGCS"
else
writelog "INFO" "${FUNCNAME[0]} - No valid dll found in '$IGCSINI' - Choose one"
selectIGCSdll # Shows DLL selection window
fi This would get it to remember a DLL. This would require, as far as I can tell, having it in the same directory as the game exe.
Great question, and tentatively I want to say it should be straightforward. Those are famous last words that future sonic2kk may come to regret though ;-) There appears to be a related tool that the code refers to I am not sure yet on an "implementation plan", but after selection we should be able to write this out. It actually looks like STL is meant to be doing this, but that it isn't working for some reason. These lines in IGCSINI="$EFD/${IGCS}.ini"
writelog "INFO" "${FUNCNAME[0]} - Inserting '$IGCSDLL' into '$IGCSINI'"
sed "/^Dll=/d" -i "$IGCSINI"
echo "Dll=$IGCSDLL" >> "$IGCSINI" If that's the case though, I don't know if there's a way to get re-prompted for a DLL without manually editing this ini file. It may be worth checking the |
Both the Process and DLL got written to the ini, but the pop-up to select the DLL happened every time regardless. Considering injecting DLLs is very common for modding, having an easy method on Linux would be killer. It not injecting is most likely a separate issue, but worth noting that I can inject the DLL with their tool in desktop mode, but we come back to the unrelated game mode issues, etc. As for whether this feature is functioning, it is, so there we have it. |
Okay, so it's this specific DLL that for some reason isn't injecting if I understand properly.
Indeed, I agree! This feature has gone mostly unnoticed. Though for the handful of modding that I do these days, Improving IGCSInjector is certainly something that would be nice. Having a separate issue to track improvements could be a good idea, that way it's more visible and allows community members to step up if they have an interest in this feature to improve things - I've become more aware that I tend not to discuss my ideas for improving STL and only note various things on a personal ticket board, so I've been trying to create issues for the fleshed out ideas that I have for improving STL for development transparency and to (hopefully) improve community engagement. |
I try and make tickets for what I can where I can, just no knowledge of how to enact the changes. xD And yes, the injection issue is now most likely down to the game or dll (probably the game or delay). IGCSInjector does pop up with a Windows-style command prompt and says that it was injected properly, but the overlay does not appear. I can get it to function when I use the custom argument method and select their exe as the launch method, with a delay. |
I'm sure any (sane) project manager will tell you it's much appreciated :-) There are probably many areas that this could be improved, once I have some time I'll open a ticket that could encapsulate some form of "discussion" around the improvements that could be made. As usual, no ETA or anything, but I am hoping to improve various STL features (One-Time Run is on my mind to improve currently) so hopefully various features can be improved this year, with any and all help from the community (tickets, PRs, bug reports, etc). That would be my hope! 😄 |
Though there can be improvement to this functionality, the initial bug report seems to be resolved. I will close this issue now but some enhancements will hopefully come in the future :-) |
Sorry for going poof on everyone here, life happens. xD
System Information
Issue Description
https://github.com/sonic2kk/steamtinkerlaunch/wiki/IGCSInjector
Based on that page, I am expecting "IGCSInjector.ini" to be generated so that I can change the dll that is being injected for a game, but nothing is being generated. No injector, and no ini. I've launched the game im testing, Guild Wars, in GameMode and Desktop mode, but no file generation.
Logs
Which logs would you want me to attach, specifically?
As a side note: Would it be possible to have a spot in STL where we can identify the dll's we want to inject instead of needing it to be named a specific name, or wait for the ini to generate and change it?
The text was updated successfully, but these errors were encountered: