-
Notifications
You must be signed in to change notification settings - Fork 74
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
CheatEngine : no speedhack support? #497
Comments
Hi, I don't know much about Cheat Engine but that doesn't sound good. It sounds like some kind of problem with Cheat Engine and Wine more than a problem with any specific that SteamTinkerLaunch would be doing, but perhaps there's something STL can work around. I searched the error message and it seems common enough on Windows. Unfortunately I don't have a Steam Deck, so I cannot test. I'll see if I can reproduce this on my PC later on. (@zany130 Sorry for the ping but do you have anything to add here? You might know more about CheatEngine and STL than me 😅) EDIT: The Cheat Engine release notes for 7.3.1 fix the Speedhack on Linux. According to the STL CheatEngine wiki, it pulls from an older 7.2 release because it seems that at least for a time, newer versions of CheatEngine were hidden behind Patreon.
In the "Global" settings (button along the bottom in the main menu) you can change the Cheat Engine version to 7.4 and set the checksum yourself. I think its worth opening a PR to bump this as it fixes the Speedhack, and also maybe we could make a note about this on the Cheat Engine wiki specifically. Currently having trouble setting the checksum myself as it doesn't seem to be registering the new one when downloading and checking but that could be an issue on my end. In theory though, this should fix the Speedhack issue. |
I never tried speed hacks in cheat-engine honestly so not sure. as for using a newer cheat engine version yeah part of the issue was that the ad free version (the version on github) where removed and the downloads started including adware and other malicious stuff if I remember correctly EDIT: hmm it seems they added it back to there github https://github.com/cheat-engine/cheat-engine/releases Don't know if it still comes bundled with the adware though EDIT2: it does but i can be skipped but im guessing the whould pose a problem for an automatic install through steamtinkerlaunch |
Indeed it seems like STL can't install it, I got past the checksum issue (a reboot fixed it 🤷) and now STL can't extract it. It's failing at the stage of: Something worth noting is that STL didn't show an error notification saying it couldn't install CheatEngine. Failure of installing CheatEngine could probably be handled better but that should have its own PR discussion (maybe when Frostworx gets back and has time) |
well if you search the issues here https://github.com/cheat-engine/cheat-engine/issues?q=ads there are a few reports that disabling the internet conection durring cheatengine's install skips the installation of all the adware and bloat although i doubt this whats causing steamtinkerlaunch to be unable to extract it EDIT: posted before I saw your edit but those look like dlls for unwanted software |
I wonder if there would be a way to disable internet access just for the CheatEngine installer? STL seems to have an option to remove network access for games so perhaps this could be applied to just the CheatEngine installer as a workaround if using version 7.4 or above? |
ah, I think I see the issue steamtinkerlaunch uses innoextract to extract the cheat engine exe and then it just uses that without running the installer? (this would bypass the installation of adware IDK if this was the intention) but 74 doesn't extract properly take a look here https://github.com/frostworx/steamtinkerlaunch/blob/977bd0d737ed64f0f9b722efc155ecb20082e33e/steamtinkerlaunch#L10916 |
So I guess innoextract for some reason either can't extract it, or it's trying to extract it to somewhere that it can't. I tried manually creating |
fwiw version 74 fails to install if you disable the internet 73 installs fine so I wonder if they added a check to make sure its connected to the internet? |
Fixing whatever is causing 74 to fail is likely a good idea, but 73 is the one that contains the fix for Speedhack I think. Didn't see a download link for 73, my bad! Could you check if 73 does indeed fix the speed hack issue? |
well should have mentioned I was testing it by running it separately with wine. though I imagine it would work the same with if I disable the innoextract condition in steamtinkerlaunch's code. as for 74 failing it only fails if you disable your internet otherwise it installs fine (but prompts you for a bunch of extra stuff like antivirus that you can decline) ill try to see if I can find a game which has a speed hack for it never used that before |
hmm, I can't even get 7.3 to download with steamtinkerlauncher FWIW I found this issue here ScoopInstaller/Extras#7906 where they where using a similar tool called innounp to extract the actual cheat engine exe. (what is available on GitHub is an Inno setup package and comes with all the bloat like some antivirus and stuff.) it seems upstream did something to break these tools. so the only way cheatengine versions greater than 7.2 can be installed is by running the setup exe within the games prefix you can do that with one time run then imagine steamtinkerlaunch while run the installed exe but you would have to be careful and make sure you don't install any unwanted programs into the game prefix (the option is kinda hidden) so unfortunately I don't think there is any way for steamtinkerlaunch to handle any version greater than 72 automatically |
Cheat Engine changelog mention fixing speedhack on Linux, but I assume they mean the linux version of Cheat Engine. Not sure if they made change to the Windows version so that it would work better on linux via proton. I wanted to try it out to see if it works by replacing the 7.2 files with the 7.4 files in the prefix but I can't figure out where it's stored. Edit : I was able to run my extracted CE 7.4 along with a game using the fork custom command option, but enabling speedhack still throw the same DLL injection error as in 7.2 apparently :( |
Man this seems like bad news all around :(
I wonder if it was intentional, maybe for the adware stuff. That really sucks though, but perhaps we should document that STL only works with Cheat Engine 7.2 (and below?)
@DinoMC You would be surprised at how often projects make fixes to improve their software running under Wine (MO2 is a good example 🙂) but I didn't know there was a Linux release of Cheat Engine, so my bad there!
That's really unfortunate, I wonder if there's anything we can do to fix the Speedhack on Wine. Maybe there's something we can install with Winetricks into the prefix? I'm not sure, I'm not too familiar with Cheat Engine. I did see this error for Windows users when pasting that error into a search engine but I would hazard a guess that this is something Wine specific. It could also be worth opening an issue on the Wine issue tracker. What version of Wine does Cheat Engine run with, is it the same version that the game does? If so perhaps you could try a GloriousEggroll release of Proton to see if it has any patches in the meantime. Just trying everything here 😅 |
Yeah, I think so too. There's only a few search results with the same error, and usually quite old. I did find a new error message that maybe hint at the cause. On one of these old topic, someone fixed the DLL injection error by enabling the "force load modules" setting in Cheat Engine. When I enabled it, and then tried to enable the speedhack, I got this error message : I'm going to try with proton GE and see if it help. |
Maybe a clean install of Cheat Engine (probably the regular Cheat Engine 7.2) would help GE but I'm not sure how to "cleanly" uninstall it... Thanks for all your patience and testing so far, this seems like a tricky issue. |
Actually I had messed up the STL settings I think, CheatEngine does pop up now... and I can confirm I still get the DLL Injection error on GE :(. Gonna have a look to see if it's listed as a bug on Wine, maybe report it. Edit : Found a topic saying that speedhack stopped working on Wine with v5.4 of Cheat Engine. Using the old Cheat Engine 5.4 allow the speedhack to work on wine according to this post. Gonna see if I can track it down. Another managed to make it work by running the native linux Cheat Engine SERVER (didn't even know that was a thing tbh), then running windows Cheat Engine in Wine and connecting to the Linux server. I believe they use the Windows CE to remotely control the Linux CE then select the whole wine process and apply speedhack to the entire thing. As for the reason for the DLL Injection error when trying to apply speedhack directly, I believe it's a sandboxing/security issue and LSM are blocking it. Not sure tho. |
Thanks for the investigation!
The Wayback Machine may be your best bet for this, if it's not on GitHub. You could attempt to set the Cheat Engine version in STL's Global settings to 5.4 and see if that works. Good luck! 🤞
I thought DLL injection worked in other use cases (SpecialK for example) but as I have no experience with Cheat Engine I can't say for sure. That would suck as I don't think STL could really do anything to work around it. I wonder if there are any other instances of this happening with Wine Something I've been thinking about today, what if we had an option to allow a user to select their own Cheat Engine installer exe? If there is a user that pays for what I believe is the "Patreon version", they might want to use that with STL. I don't think they can provide a direct download link to the Patreon release and there could be all kinds of implications for that, but allowing a user to select a custom Cheat Engine installer exe and warning them somewhere (maybe in the tooltip?) that they will have to go through the installer manually in the next step. That way as well if there are any users that want to use Cheat Engine, they can simply run their own installer. Of course this raises an issue where it may be difficult to test custom Cheat Engine executables, just an idea I had 🙂 |
I didn't know there was a Linux version of CheatEngine. is it just a server to connect to the windows app? anyway tried to install 7.3 and 7.4 in steamtinkerlaunch , but couldn't get them to install because steamtinkerlaunch runs the exe with the as for being able to select a custom cheat engine exe I think that could already be done by using this no? EDIT: |
Ah yes it could be done that way, and it could end up adding more bloat if a separate option was added. My thought was having a separate option explicitly for Cheat Engine might be more user friendly but perhaps that's getting slightly off-topic. I did find a (rather old) Wine bugzilla issue talking about Cheat Engine's speed hack not working, but it seems like it gave a different error message. EDIT: As for the prefix issue, would setting the |
Tried Cheat Engine 5.4. Didn't realize it's 14 years old. Pretty sure the speedhack uses a completely different method. I also wanted to try the 32 bit version of newer Cheat Engine to see if it change anything (saw a couple old threads about this), but for some reason, when I run cheatengine-i386.exe instead of the x64 one, the window doesn't show up. According to the STL log it's launching it, but nothing show up on screen. It's not running in processes list either. Any idea why? |
Indeed as its so old it could've changed.
Can you check your System Monitor? I'm not sure what the Steam Deck comes with but on a regular KDE Plasma install these days you typically have something just called "System Monitor" or KSysGuard (though that appears to be getting phased out). The System Monitor should look something like this: If the Deck doesn't come with this, KSysGuard is a good alternative. You might need to enable the Deck's "Dev Mode" I believe its called to install packages with Pacman but I'm not totally sure on that. Basically, just want to see if a process for it is actually running 🙂 |
The Deck does come with System Monitor :) I can't see cheatengine-i386.exe running at all in process list, whereas if I switch to the x64 exe I can see it just fine. So it seems the i386 version is crashing on launch? |
probably. one thing that maybe could be done is adding to the one-time run menu an option to select/create a wine prefix for the exe you are going to run? also, I imagine that if you do install a cheat engine into the game's prefix you could use the custom command option to start it forked by browsing to the exe location |
can anyone get 7.2 to download and install with steamtinkerlaunch with innoextract? I think the Wayback machine copy may have been removed |
good news found out that scoop (in case no one knows what this is it's a package manager for windows) is hosting an ad-free version of the latest cheat engine here https://raw.githubusercontent.com/ScoopInstaller/Binary/master/cheat-engine/CheatEngine74.7z IDK if it would be okay though to make steamtinkerlaunch automatically download that? EDIT: got this to load 7.4 by creating the folder @DinoMC how do you use speed hacks so I can test? EDIT2: figured it out its on the right panel got it working in trails of cold steel 3 🥳 |
That is amazing news! Should we ask upstream if we're allowed to point STL to use this download link? We could do a check like on this line to see if the user has entered 7.4 and if so, use the Scoop download link, if we're allowed to 🙂 |
yeah, ill go ahead and ask on scoop if they mind if we use that link, and then yeah we can do what you said. another question is if we should leave the default at 7.2 or set it to 7.4 The wiki could also be updated to reflect that any custom cheat engine version could be installed by extracting its files into |
Thanks a bunch 😄
I think we should do some more testing with Cheat Engine 7.4 to see how well it works under Wine, to check for any regressions. If it works fine I would be in favour of bumping the default version to 7.4 as it fixes the speed hack and would resolve this issue. But I haven't used Cheat Engine before really, and 7.4 might still need further testing. Updating the wiki is a great idea, I'll let you handle it if that's okay, I don't want to get anything wrong haha.
@DinoMC That sounds about right to me, it seems like it might launch via STL but then for some reason crashes. The Deck could be missing 32bit libraries but I have a feeling Wine/Proton needs those so perhaps it's only a select handful of 32bit libraries that are missing. I think 32bit apps should work in a 64bit Wine prefix generally, but there could be an issue with something missing in a 64bit Wine prefix for the 32bit Cheat Engine. Either way, hopefully this will not be needed soon and we can use the Scoop CE. In the meantime you should be able to install it manually :) Please keep us posted if you get the opportunity to try it out! |
Ah, you must have missed it above but I was able to try Cheat Engine 7.4 by running it manually but got the exact same DLL Injection error as in 7.2 :(. |
Ah yes I did see that, sorry! Did you try the version linked from the Scoop repository posted above? Not sure why it would work and the GitHub one wouldn't but it seemed like there was some success with it which is why I wanted to know if it worked for you too 😄 |
Great news about being able to use that Cheat Engine archive, and the info on the wiki looks great! I had a look at Unlicense and it seems extremely permissive so it should be all good, but we'll let Frostworx have a look and see if he's comfortable including it in the project 😄 I suppose its possible for the speed hack to work with one game and not another but indeed it could be a Proton version issue, though if I recall correctly Proton-GE was tried and didn't work. I suppose as well there is a chance that this could be a Steam Deck specific issue but I really hope not. Either way I think this just means there should be more testing done to see if its worth bumping the version just yet 🙂 I'll have a look to see what games I could use the speed hack with and do some testing myself from my library. And once I get my Steam Deck I'll give it a try there too but it could be another couple of months 😅 |
Yeah agreed I think I may have jumped the gun a bit by going ahead and asking over there if its okay to use the binary's without waiting for Forstworx, so hope he doesn't mind 😅 afaik the speed hack is supposed to work universally in all games but I imagine there could still be issues with certain games. Also, it could be some difference between how I have wine setup on my machine versus the steam deck or something. I didn't test too much since I use gamescope to solve my multi-monitor issues with gaming and I couldn't get cheat engine working correctly with gamescope |
great discussion here, thanks all! :) |
oops, I misspelled your name lol sorry about that! Anyway great to see you back, and hope you're doing good and rested well. yeah sounds like we can use scoops compressed binary releases if people want to use newer versions. still don't know if it should be made the default though and they don't have the older versions there. From my limited testing 7.4 seems to work fine though in wine and helped me at least with the speed hack issue, but it seems @DinoMC still can't get it running |
I'm on a trip so I haven't been able to experiment further for now. @zany130 Using Proton GE 7.20-1 and CE 7.4 you were able to use speedhack with no issue? That's great news! Might be a few days before I'm able to get to it tho |
GL hopefully it works for you |
thanks @zany130 the trip was great! We've seen many (rare) butterflies 🦋 I just quickly checked the latest 7.4 release exe directly from the upstream project page
maybe we can extract it with some common tool (7zip?) and some offset back magic programmatically, so we would not rely on some 3rd party host. Will report back if I find something useful within the upcoming days. have a nice trip @DinoMC |
the official upstream release still is an "Inno Setup" archive, but is seems to be manipulated somehow 🤨
so back to you plan A and use ScoopInstaller as source... |
Yeah was getting the same thing on my end. Afaik scoop was also running into the same issue hence they just started offering the extracted binaries as a zip instead (no idea how they get these binary though. Either by someone running the inoo setup installer themselves and then getting the binaries from there system (technically this would be the morally preferred method) or from the Patreon page which would be kinda questionable. EDIT: I'll leave it up to you frostworx how you want to proceed but it's something worth mentioning that i didn't think of at first |
I'll add scoop as download source (already started a bit). |
^^ please test |
Personally i think the wiki is fine i already did put warnings about how unwanted programs can be installed and how cheats can lead to bans if used on online games(maybe I'll rewrite it a bit to make the warning more visible and clear) afaik from reading several reddit threads and upstream GitHub issues. Cheat engine itself should be clean of any malicious code. The actual inno installer thing is what's sketchy. Apparently it connects to some server and downloads additional programs and stuff. There no actual adware in the exe itself it downloads it. Apparently the upstream dev doesn't really care about this(or if even any of these ads are malicious) as he offers a clean version on Patreon and anyone who doesn't wish to donate can build a clean exe from the code(this might be what scoop does) So in summary cheat engine should be clean it's the inoo extracted crap that sketchy. In fact if you run old versions of the installer without an internet connection it never downloads these adware or even malicious programs. (Starting with 7.4 it falls to download without an internet connection) EDIT: didn't see your message😅 I'll test now and report back |
yeah, I know the crap comes with the installer. but upstream people of programs using those installers should care. |
I agree 100% not defending upstream in any way. at the sametime I don't want to spread misinformation saying cheat engine is malicious or anything like that. thats why I'm kinda wary about adding warning and stuff to the wiki also I don't want to make it off topic of how to get cheat engine working. Perhaps it would be best (and this is kinda how I was writing it already) to just point out the different ways you can go about installing cheat engine and just mention that there have been incidents in the past with this software and leave it at that. EDIT: ohh and forgot to add that I tested and it worked perfectly had to change the md5 hash since i already had an old one in my global config (it did auto change the url to the scoop repo so that's cool) (also had to disable gamescope cause of the other issue i mentioned before) |
thx for testing.yeah, I added an autoupdate of the download url and was undecided if it is worth the effort to also auto bump the checksum :) (updating the wiki a bit now to reflect latest changes) |
@DinoMC |
Sorry, the trip was too good so I didn't get around to trying this :). I'm back now. I tried proton GE 7.20 (and 7.24 too) and still got the DLL injection error "unable to open kernel32.dll". I think @zany130 didn't do anything special apart from that so the issue seem specific to the Steam Deck? I don't have the game he tried on so I can't try on the exact same game. I'll try with more games now to make sure it's not just game specific. E: Tried a bunch of games and couldn't find a single one working, tho some throw a different error ("Failure determining what GetTickCount means"). I doubt it's a game issue unless @zany130 randomly landed on a very rare compatible game. Not sure what to try next. |
When you doubt it is a game issue, please provide logs |
Nevermind, I tried a couple more games and found one where everything works perfectly. So speedhack does indeed work, it's just a LOT less compatible than on Windows (all of the games I tried, speedhack does work on Windows). Doesn't seem like a STL issue so I should close this, right? I'll add an example log for a game that doesn't work but there doesn't seem to be anything, the moment I try to turn on speedhack STL only detect that the game finished (cause Cheat Engine crash the game and itself with the DLL Injection error) and kill Proton, nothing else as far as I can see. |
Likely no steamtinkerlaunch issue, but your log shows that your Cheat Engine version is 7.2, so you might want to re-test with installing 7.4, which could help with your now working games. |
I extracted 7.4 myself and put it in /home/deck/.config/steamtinkerlaunch/cheatengine/Cheat Engine 7.2/ (leaving version to 7.2 in STL setting) so it's actually running 7.4, I can confirm this in Cheat Engine itself too when it's running. |
ic closing |
Fwiw i did try a few games and got them all working. |
Nice, good idea, I'll check your list tomorrow to see what games we have in common and tell you some that don't work |
I tried Undertale from your list and it's giving me the exact same error as most games (dll injection failed). Can you try it out? Would be interesting if it works for you. |
Where do you see the error in the proton logs? I don't see any error but it does crash for me. So it can probably be reported upstream to the cheatengine devs. Don't know if they take wine bugs but seeing as they do sometimes work on wine bugs maybe they do? |
Couldn't find an existing issue talking about speedhack at all, so here goes.
I just installed STL on my Steam Deck to get CheatEngine running so I could use its speedhack feature to speed up games.
CE launch correctly when I start the game, but as soon as I check the "Enable speedhack" checkbox, everything crashes with the following error : "Failure enabling speedhack. (DLL Injection failed): dllInject failed: Unknown error during injection
Force load module failed: Allocation error"
The text was updated successfully, but these errors were encountered: