-
Notifications
You must be signed in to change notification settings - Fork 1
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
Just Cause 3 issue #9
Comments
This line looks strange:
Do you happen to run the game in the same prefix created by wine-staging? Could you clean the prefix and try again? Note: This may wipe out your saved games. The prefix is stored in the compatdata folder, in a folder named by the gameid. I have to check if I have access to a Steam lib having this game to try out myself. If it is really the Denuvo copy protection, I'd probably need to run this locally on my system to figure out which patch is missing. |
Hi kakra, thanks for the reply, do you think it would help if i make also a log from running Just Cause 3 on the working Steam for Windows running inside Wine.
|
A log comparing to the working version could give me first clues, so it could help. I'm not a core wine developer, so a full log with traces might not help me seeing where the problem is because I don't know much about which values logged in a trace are to be expected. But as the game crashes very early, a full log is probably short enough for a quick investigation, so feel free to post it. I may have time to look into this deeper in the weekend (that's when I get access to another Steam lib via family sharing). |
sure no problem i will make a log tonight, also not a big issue if you won't waste time on it, because it runs without issue inside Wine with Steam for Windows, i was just wondering and interested why it really doesn't work even with your updated wine included into proton. Is the wine you include just with some selected staging patches by you, then maybe it really miss only another patch. |
So the problem somewhere in the Steam client itself (or in There are some known problems with different copy protections, and there are some tricks to load failing games, but none of them was applicable to
Actually I have current fork built w/ all wine-staging patches, but unfortunately |
@pchome do you mean you have a proton based on wine 4.x with all staging patches included? So if you could upload the proton folder somewhere then i could test it out if you want. |
I have a couple of shell scripts to generate such patch, but I should update them for 4.1 (later). Here is the patch generated for current branch: 0001-Proton-Staging-4.1.patch.gz Use |
i don't use the branch, i only use the released pebruilt ones https://github.com/kakra/wine-proton/releases |
Well, I can't share my build, cause it was built using custom CFLAGS and won't work for you. 🤷♂️ |
I'm currently installing the game, I'll try to reproduce the problem here... No need for logs currently. |
I do too. But I found that re-downloading here is faster than restoring from backup: 120 MBytes/s download rate ;-) |
Mine is built with custom flags, too... But for a pretty common combination of CPU features because my platform is somewhat older (Ivy Bridge). If JC3 works for me with my build, I figure we should look into changing CPU flags of my build. |
@WernerAUT Okay, crashes for me too, tho I'm not having the d3d warning in the log:
I'm now trying to figure out which patches are missing. But you probably need to find why you're having the d3d warning about the max GL version = 0.0. |
@kakra i think i have the d3d warning because i am testing with the Nvidia 418.30 driver, i wanted to try out |
@WernerAUT You should use the latest NVIDIA vulkan beta driver to fully support DXVK. I'm using 415.22.05, this actually has more features and extensions related to Vulkan than 415.27, so the older version number is actually the newer version (minus support for GPUs introduced after 415.22). |
ok the 418.30 was not the reason, i know about 415.22.05 but i won't use it for now without a ppa were it is available |
And okay here: |
@WernerAUT Could you gist a full log of JC3 working in staging? |
Sorry, no monolithic patches accepted as outlined in the README. But I'm in for trying to isolate the patches needed to get this running so we can concentrate on getting those specific patches upstreamed. Do you have any hints which patches would be needed? Info on JC3 in wine is very sparse except "use lutris" or "use staging". That's not very helpful if we want to get support for getting it run under Proton. |
@kakra attached a full log, i hope correct one :) |
You can change The difference for 4.1: # Applied! 4.1
SKIP="${SKIP} -W httpapi-HttpCreateServerSession"
SKIP="${SKIP} -W ntdll-Hide_Wine_Exports"
SKIP="${SKIP} -W ntdll-NtContinue"
SKIP="${SKIP} -W ntdll-User_Shared_Data"
SKIP="${SKIP} -W winebuild-Fake_Dlls"
SKIP="${SKIP} -W wined3d-Silence_FIXMEs"
SKIP="${SKIP} -W wined3d-CSMT_Main" |
Okay, that's messy because it contains the logs of the steam client itself. Let's try different: Run Steam with Now, with the Steam client running, please run the game exe directly and also capture the logs:
I'm not sure if that would work but let's see. One of the captured logs should have logs of the game only, except Steam does something magic and hands over launching of the game back to the running steam client (which, apparently, games sometimes do). I no longer have such a setup (I ditched my WineSteam prefix months ago) but if I remember correctly I was able to capture logs clean of Steam client logs that way. |
@pchome All those are in my branch (minus CSMT because wine-4.x should have an inferior implementation and the other is the older one). See https://github.com/kakra/wine-proton/blob/rebase/proton_3.16/docs/patches/staging.yml Some of those have been cherry-picked from the queue at https://source.winehq.org/patches/ so those are not yet listed there. I'll do that when I'm seeing rebase conflicts. Current research tells me that concentrating on Denuvo may be a dead end. First glance of the logs @WernerAUT provided more looks like it's another component, probably handling certificates or crypto, or some runtime library stuff. Denuvo compatibility has been proven working for multiple titles meanwhile suspecting Denuvo first, but it turned out to be something else. |
BTW: I'm doing this "just cause" I wanted to play it too for some time now :-) |
Yes, |
@pchome Ah okay. I'm not familiar with using the patchapply script from staging (it failed me several times and I gave up). But you seem comfortable with it. Maybe we can join efforts to isolate the required patches. Could you remove all staging patches you applied on top of my branch which are obviously not related to this problem and then try the game (I'm pretending you're owning the game and could run it). This way we can probably reduce the footprint a lot. Combined with the logs @WernerAUT hopefully will provide, it should be more easy to find what's needed. Thanks. |
@WernerAUT I don't expect any of the Steam client requirements have something to do with it. There's another couple of patches you might want to remove: The patches replacing the Linux user name with "steamuser" so that the profile path is the same, no matter how your user is named. I think this is needed for the cloud sync to work correctly, and for when you restored your library from a backup but to a different user. It gets messy if you run the same prefix with alternating wine implementations (Proton vs non-Proton) because you end up with two user profiles in the prefix. But other than that, we need to isolate the patches missing from my branch but existing in staging, or more exactly: we need to isolate the specific missing patches in that set of patches. Staging is a lot of patches, I really do not want to carry around all of these during rebase. It will backfire hard once Proton upstream rebases to a newer wine base version (I did that once, don't want to repeat that, that's when I threw away a lot of patches to carry around). Also, just applying all staging and "then it works" doesn't help anyone to get it upstream (either in Proton, or even in winehq upstream). Please do not read as critique, I just wanted to explain my reasoning why I'm picky about which patches to accept. :-) |
Before isolating specific patch we need to launch the game with success. Then, for sure, I'll help you to isolate some patches. Also, it maybe worth to look close into following patches:
Maybe add some additional traces to figure out why (if it should) Steam.dll wasn't loaded.
I need to free some additional disk space and re-download the game. I'll do it later. |
@kakra no that didn't work, for sure because i installed it using Lutris, maybe you can see in this log more, i started Lutris in debug mode |
@pchome Is it easily possible for you to apply the patches with git-am instead? Then create a pseudo-monolithic patch with |
@WernerAUT It's more or less the same with added Lutris noise. Can you tell Lutris to use different I'm not sure if you could easily compile yourself for running wine in Lutris, but just in case here's a patch which should silence these "useless" ThreadInfo logs: |
If you need the list: jc3-testing.list.txt As requested: jc3-testing.patch.gz |
BTW: I have pcgamingwiki.com:games using Denuvo Anti-Tamper DRM |
Deux Ex: MD has a native Linux version, I completed the game without issues and started one DLC (not yet completed). Thanks for the logs/patches/links. I'm looking into it right now. |
This lists a few games that I'm successfully playing with my branch... This hardens the idea that Denuvo is not the problem. |
Okay, I've added the following patches which are documented to solve problems with anti-tamper/anti-cheat implementations (mostly around Leage of Legends): advapi32-CreateRestrictedToken server-Misc_ACL Staging:
advapi32-Token_Integrity_Level:
ntdll-LdrInitializeThunk:
ntdll-RtlCreateUserThread: []
Compiler_Warnings:
dxva2-Video_Decoder ntoskrnl-Stubs:
winedevice-Default_Drivers: []
wow64cpu-Wow64Transition: [] JC3 still fails in the same way, so this list is either incomplete or that's the wrong track. @pchome I'll diff that against your list later and try another set of patches. But now: Time to go to bed. ;-) |
Could you check if this version fixes any games for you? It includes a current pull from wine-master plus all staging patches related to anti-tamper/anti-cheat modules: Please do not share the link in other forums as it is a crypto-link and I cannot change it except remove it. It doesn't fix JC3 for me, but maybe some of the other games with similar problems. Output from
|
sorry i have no other Denuvo protected games, so can't help here :( |
just for your info since i used your build and played some of my games, i found out that with this test build controller controll is weird, i tried rocket league (i know its also available as native) and with your test build i can't turn right only left works, going back to your last official build and everything works normal again. I use a Xbox One Controller connected over bluetooth using xpadneo driver. |
I started to check if a failure affected by The most noticeable difference so far: +security.c:3030: Test failed: duplicating handle should have failed with STATUS_ACCESS_DENIED, instead of err:-559038737
+security.c:3038: Test failed: OpenProcess(PROCESS_VM_READ) should have failed
+security.c:3041: Test failed: OpenProcess(PROCESS_ALL_ACCESS) should have failed
...
+security.c:4746: Test failed: Current User ACE (S-1-5-18) != Current User SID (S-1-5-21-0-0-0-1000).
+security.c:4758: Test failed: Administators Group ACE (S-1-5-21-0-0-0-1000) != Administators Group SID (S-1-5-32-544).
+security.c:5136: Test failed: not a member
+security.c:5151: Test failed: got wrong attributes
+security.c:5153: Test failed: got wrong attributes
Sources and prebuilt binary: proton-secur-tests-64.tar.gz @kakra Additional thoughts:
|
@WernerAUT Using xpadneo here, too. AFAIR, wine upstream changed controller axis mapping from signed (-32768..32767) to unsigned (0..65535) as that matches what Windows uses (wine-mirror/wine@b16fb11). You could try switching xpadneo between both modes, tho I don't see this behavior here (but other games). But please open a new issue for that, I'll then try to reproduce. |
@pchome Thanks for the work, I'm on a similar track by running through gdb. JC3 fails at trying to close an invalid handle, it seems to happen after loading an audio API tho this is probably not a clue (in the debugger I see it after loading the Steam API):
So your tests make it plausible it's a duplicate handle, and a problem introduced after 4.0? Did your tests include any of my patches, or did you run against vanilla versions (that is proton-vanilla vs staging-vanilla)? |
No, it's WINE's tests ;) I picked Currently I have only It's easy to add new tests into build system, or change repo/branch. |
The tests crash for me on my vanilla-wine 4.0 build along these lines in bret = pGetAclInformation(pDacl, &acl_size, sizeof(acl_size), AclSizeInformation);
ok(bret, "GetAclInformation failed\n");
ok(acl_size.AceCount != 0, "GetAclInformation returned no ACLs\n"); I'm not sure yet if this is the same crash as with JC3 and my Proton branch... But since I'm seeing this with vanilla-wine 4.0, it's probably a regression that should be reported. |
Does no longer crash on a fresh prefix... This is strange because my default prefix should be quite vanilla (but it has gone through some wine upgraded but I never really used it for anything). |
I purged the JC3 prefix and it still crashes:
|
I've played with the makefile a while, here's my change: diff --git a/makefile b/makefile
index 67a08ef3594..03d66a78069 100644
--- a/makefile
+++ b/makefile
@@ -138,6 +139,23 @@ install-wine: install-wine64 install-wine32
echo "Done installing wine libraries!"
+# Run tests
+
+TESTS = \
+ advapi32 \
+ secur32
+
+tests: $(addsuffix /tests,$(TESTS))
+
+$(addsuffix /tests,$(TESTS)): build/wine64/Makefile
+ echo "Running $@..."
+ +$(MAKE) -C build/wine64/dlls/$@ \
+ WINEPREFIX=$(abspath prefix/test) \
+ LANG=C \
+ RUNTESTFLAGS="-v" \
+ test 2>/dev/null | tee tests-$(@:%/tests=%)-$(shell git describe --dirty).txt
+
+
# Bundle vendor project into the distribution
vendor/faudio/dist.tar.xz:: The tests seem fine, some are marked todo. Removing Attaching my results: Meanwhile, I have removed the staging patch sets I've listed above because after rebase to latest wine-master, no game would start at all. This is likely due to resolving a conflict wrong during rebase. But since none of these patches did anything useful for this problem anyway, I just removed them. |
Running your pre-built test shows failures (
Running my version does not (
|
What if this is related to NVAPI? The game crashes shortly after loading |
Threads, likely.
WINE dev's vs user's approach. For WINE dev those failures are TODOs, but for regular app it should be failures. |
@WernerAUT Okay, a fix for the controller regression is queued at https://source.winehq.org/patches/. I reported it, and Zeb found a strange bug and fixed it. Will be in my next update. |
@kakra thanks hadn't time to report it but was planing todo it this week, so thanks that you did 👍 |
@WernerAUT FTR, I was seeing it too, now. It was a long-standing bug hidden behind some quirky behavior in xinput, and was only uncovered by the latest changes fixing yet another bug. Bug-ception? :-D |
This really messes up logging in some games and may reduce performance. Github-Link: #9 Signed-off-by: Kai Krakow <kai@kaishome.de>
This really messes up logging in some games and may reduce performance. Github-Link: #9 Signed-off-by: Kai Krakow <kai@kaishome.de>
This really messes up logging in some games and may reduce performance. Github-Link: #9 Signed-off-by: Kai Krakow <kai@kaishome.de>
Hello first thanks for your work :)
I tried your wine-proton build, it runs on my LinuxMint 19.1 after installing some of the deb files you listed.
I play JustCause 3 over Lutris Wine-Steam using Wine 4.0 Staging + Esync + DXVK 0.96 without issues, so i was hoping that with your wine-proton i would be able to kick wine steam and use Steam with proton-wine, but the Game doesn't even launch, so i think it is missing a patch from the staging, but i have no idea which one. As i searched around i saw that Just Cause 3 is using Denuvo and this can only work with wine staging because it has some patches which makes them working.
I attached also the log i get using your build.
steam-225540.log
The text was updated successfully, but these errors were encountered: