#428 Does not launch with `wine-staging` on Arch

Closed
opened 11 months ago by FichteFoll · 14 comments

As mentioned by @rodwood_tide already in #422, the game refuses to launch with wine-staging since the last update. Before the patch, on Tuesday, it still worked for me with 8.7. Afterwards I updated wine and genshin and it didn't launch anymore. Switching to wine, also 8.8, worked. (In hindsight, maybe it even worked on 8.8 before the patch, but I don't exactly remember when I did what.)

I wasn't able to get any informative logs of the launch failure. The process just exist quickly after launching. Will paste them later after retrying (want to finish my stuff first).

As mentioned by @rodwood_tide already in https://notabug.org/Krock/dawn/issues/422#issuecomment-36325, the game refuses to launch with `wine-staging` since the last update. Before the patch, on Tuesday, it still worked for me with 8.7. Afterwards I updated wine and genshin and it didn't launch anymore. Switching to `wine`, also 8.8, worked. (In hindsight, maybe it even worked on 8.8 before the patch, but I don't exactly remember when I did what.) I wasn't able to get any informative logs of the launch failure. The process just exist quickly after launching. Will paste them later after retrying (want to finish my stuff first).
Krock commented 11 months ago
Owner

Would you please be so nice to give this 1-byte modification a try?

Workaround: dd if=<(echo -ne "\xc3") of=UnityPlayer.dll bs=1 seek=$((0x01829E50)) conv=notrunc

Revert to patched state: dd if=<(echo -ne "\x48") of=UnityPlayer.dll bs=1 seek=$((0x01829E50)) conv=notrunc

If that does not work either, I will list wine-staging as broken in TROUBLESHOOTING.md.

Would you please be so nice to give this 1-byte modification a try? Workaround: `dd if=<(echo -ne "\xc3") of=UnityPlayer.dll bs=1 seek=$((0x01829E50)) conv=notrunc` Revert to patched state: `dd if=<(echo -ne "\x48") of=UnityPlayer.dll bs=1 seek=$((0x01829E50)) conv=notrunc` If that does not work either, I will list wine-staging as broken in TROUBLESHOOTING.md.

Not OP, but can reproduce it as well, and Krock's workaround allows the game to run with wine-staging 8.8.

Not OP, but can reproduce it as well, and Krock's workaround allows the game to run with wine-staging 8.8.
Krock commented 11 months ago
Owner

Thank you for testing. I will provide an improved patch in approx. 24 hours. If the server begins to send problematic payload in the meantime, I will try to include a workaround for that as well.

EDIT 2023-06-02: Due to lack of time, this will be addressed in the next few days. It is time to change the syscall approach because they are now captured and likely handled by an alternating function.

Thank you for testing. I will provide an improved patch in approx. 24 hours. If the server begins to send problematic payload in the meantime, I will try to include a workaround for that as well. EDIT 2023-06-02: Due to lack of time, this will be addressed in the next few days. It is time to change the syscall approach because they are now captured and likely handled by an alternating function.
FichteFoll commented 11 months ago
Poster

I can confirm this.

I can confirm this.
Alex72 commented 11 months ago

Most mysterious thing is, Wine-Staging 8.8 didn't introduce any changes compared to 8.7. Like, at all. Some patches were merged into vanilla Wine 8.8 and that's basically it.

I've myself skipped 8.8 and updated straight onto Wine-Staging 8.9. No issues so far, no extra tweaks required.

Do you use some kind of a third-party wine-staging build like wine-tkg? What is your distro?

Most mysterious thing is, Wine-Staging 8.8 didn't introduce any changes compared to 8.7. Like, at all. Some patches were merged into vanilla Wine 8.8 and that's basically it. I've myself skipped 8.8 and updated straight onto Wine-Staging 8.9. No issues so far, no extra tweaks required. Do you use some kind of a third-party wine-staging build like wine-tkg? What is your distro?
FichteFoll commented 11 months ago
Poster

Whops, I completely forgot to mention my distro. I'm on Arch and used the official package on its repos (for both wine and wine-staging).

Whops, I completely forgot to mention my distro. I'm on Arch and used the official package on its repos (for both `wine` and `wine-staging`).
FichteFoll commented 11 months ago
Poster

I also tried downgrading to wine-staging 8.7 (from my cache) and that also can't launch the game, so it's likely that it is indeed related to this version (or the patch) in particular since it definitely worked last week on 3.6.

Since wine-staging 8.9 is out now for Arch, I also tested that just now and that also can't launch the game

Here are also some logs:

~/games/genshin-impact/…/Genshin Impact/Genshin Impact Game Σ WINEPREFIX=$HOME/games/genshin-impact wine launcher.bat
002c:fixme:winediag:LdrInitializeThunk wine-staging 8.9 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (126).
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
012c:fixme:file:NtLockFile I/O completion on lock not implemented yet
012c:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0148:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\d3d12.dll" (error=80)
wine: configuration in L"/home/fichte/games/genshin-impact" has been updated.

~/games/genshin-impact/…/Genshin Impact/Genshin Impact Game ж 0178:fixme:heap:EnumSystemFirmwareTables (0x4649524d, 0000000000000000, 0)                                                                                                                                                                     [fichte@pinaceae]
017c:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFFFFFFFFFA, 000000000194FE10
0178:fixme:toolhelp:CreateToolhelp32Snapshot Unimplemented: heap list snapshot
0178:fixme:toolhelp:Heap32ListFirst : stub
0178:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION


~/games/genshin-impact/…/Genshin Impact/Genshin Impact Game λ wine --version
wine-8.9 (Staging)
I also tried downgrading to `wine-staging` 8.7 (from my cache) and that also can't launch the game, so it's likely that it is indeed related to this version (or the patch) in particular since it definitely worked last week on 3.6. Since `wine-staging` 8.9 is out now for Arch, I also tested that just now and that also can't launch the game Here are also some logs: ``` ~/games/genshin-impact/…/Genshin Impact/Genshin Impact Game Σ WINEPREFIX=$HOME/games/genshin-impact wine launcher.bat 002c:fixme:winediag:LdrInitializeThunk wine-staging 8.9 is a testing version containing experimental patches. 002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org. 002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (126). 007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 012c:fixme:file:NtLockFile I/O completion on lock not implemented yet 012c:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION 0148:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\d3d12.dll" (error=80) wine: configuration in L"/home/fichte/games/genshin-impact" has been updated. ~/games/genshin-impact/…/Genshin Impact/Genshin Impact Game ж 0178:fixme:heap:EnumSystemFirmwareTables (0x4649524d, 0000000000000000, 0) [fichte@pinaceae] 017c:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFFFFFFFFFA, 000000000194FE10 0178:fixme:toolhelp:CreateToolhelp32Snapshot Unimplemented: heap list snapshot 0178:fixme:toolhelp:Heap32ListFirst : stub 0178:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION ~/games/genshin-impact/…/Genshin Impact/Genshin Impact Game λ wine --version wine-8.9 (Staging) ```
Alex72 commented 11 months ago

Hm, both Wine-Staging 8.7 and Wine-Staging 8.9 work fine for me (I'm on Gentoo and I can keep both versions simultaneously). So if I were to guess this is not Wine-Staging's fault per se.

Try using a new wineprefix. If this fails, it very well might be that it's Arch that has a broken Wine-Staging package.

Hm, both Wine-Staging 8.7 and Wine-Staging 8.9 work fine for me (I'm on Gentoo and I can keep both versions simultaneously). So if I were to guess this is not Wine-Staging's fault per se. Try using a new wineprefix. If this fails, it very well might be that it's Arch that has a broken Wine-Staging package.
Krock commented 11 months ago
Owner

@FichteFoll In the doctor branch you can now find a new version of the patch. The "anti-Windows" mechanism is now very obvious but also the most reliable one. I could use existing obfuscation functions but at this point I am not sure whether it's worth the effort.

Please let me know if the patch as of f31584d0 fixes your issue. If so, I will update the CN/BB versions as well.

Even if this is an Arch-specific issue, it is somewhat possible that the current code could misbehave due to progress in Wine towards handling syscalls.

@FichteFoll In the `doctor` branch you can now find a new version of the patch. The "anti-Windows" mechanism is now very obvious but also the most reliable one. I could use existing obfuscation functions but at this point I am not sure whether it's worth the effort. Please let me know if the patch as of https://notabug.org/Krock/dawn/commit/f31584d0 fixes your issue. If so, I will update the CN/BB versions as well. Even if this is an Arch-specific issue, it is somewhat possible that the current code could misbehave due to progress in Wine towards handling syscalls.
FichteFoll commented 11 months ago
Poster

The patch in the doctor branch does not work for me on wine-staging 8.9. The process launches and stays, but instead of seeing GI start up, I instead get a Wine Debugger window with a flashing cursor and no content. This remained unchanged for a minute or so until I closed that, causing the other wine processes to terminate as well.

After additionally applying the anti-login-crash patch, the game opens up properly.

Edit: note that I had the same experience with wine 8.9. It didn't launch without the second patch.

The patch in the `doctor` branch does not work for me on wine-staging 8.9. The process launches and stays, but instead of seeing GI start up, I instead get a Wine Debugger window with a flashing cursor and no content. This remained unchanged for a minute or so until I closed that, causing the other wine processes to terminate as well. After additionally applying the anti-login-crash patch, the game opens up properly. Edit: note that I had the same experience with `wine` 8.9. It didn't launch without the second patch.
Krock commented 10 months ago
Owner

@FichteFoll Is there any update in this regard for game version 3.8?

Does the issue still occur with wine-staging 8.9 in particular? If so, I will add this version to the list of bugged/broken builds in TROUBLESHOOTING.md.

@FichteFoll Is there any update in this regard for game version 3.8? Does the issue still occur with wine-staging 8.9 in particular? If so, I will add this version to the list of bugged/broken builds in TROUBLESHOOTING.md.
Alex72 commented 10 months ago

I can only confirm that 3.8.0 and later builds run fine on Wine-Staging 8.9 and 8.11 on my end.

I can only confirm that 3.8.0 and later builds run fine on Wine-Staging 8.9 and 8.11 on my end.
FichteFoll commented 10 months ago
Poster

Wine and wine-staging 8.11 work fine with 3.8 (patchless).

Wine and wine-staging 8.11 work fine with 3.8 (patchless).
Krock commented 6 months ago
Owner

Obsolete. Please reply here if the issue still persists.

Obsolete. Please reply here if the issue still persists.
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.