#407 Progress of the 3.6.0 patch

Closed
opened 1 year ago by Krock · 14 comments
Krock commented 1 year ago

This patch might not be needed to play 3.6.0 but is provided as a fallback. See #406 (roadmap) and #404 (original issue) for details. Note that not all server checks are active until Friday (server time), which will give the final answer whether or not 3.6.0 can be used without modifications.


Official release date: 12 Apr (pre-download 10 Apr)

Patch completion/script unlock: 15 Apr ¹

Progress so far (updated incrementally):

  • DONE - Locate the "check functions"
  • DONE - Locate the service start function
  • DONE - Locate & patch the manufacturer string ("Wine", new method)
  • DONE - Write patch skeleton
  • DONE - Anti-abuse quirk
  • DONE - Check for new launcher key
  • DONE - Secondary "low CPU" patch

Tasks after official launch:

  • DONE - Dump "correct" values from a Windows installation
  • DONE - Check for newly added logging servers
  • DONE - Publish patch for testing
  • TODO - Test that patch (crowdsourcing)

Note: The CN counterpart is done by @y0soro and will have the same changes.

Please only answer to this issue if you have questions or helpful inputs. Note that development is taking place in the doctor branch until there is a patch available for testing.

¹) Might also take longer. New code is an unknown time factor.

This patch might not be needed to play 3.6.0 but is provided as a fallback. See #406 (roadmap) and #404 (original issue) for details. Note that not all server checks are active until Friday (server time), which will give the final answer whether or not 3.6.0 can be used without modifications. --- Official release date: 12 Apr (pre-download 10 Apr) Patch completion/script unlock: 15 Apr ¹ **Progress so far (updated incrementally):** * DONE - Locate the "check functions" * DONE - Locate the service start function * DONE - Locate & patch the manufacturer string ("Wine", new method) * DONE - Write patch skeleton * DONE - Anti-abuse quirk * DONE - Check for new launcher key * DONE - Secondary "low CPU" patch **Tasks after official launch:** * DONE - Dump "correct" values from a Windows installation * DONE - Check for newly added logging servers * DONE - Publish patch for testing * TODO - Test that patch (crowdsourcing) Note: The CN counterpart is done by @y0soro and will have the same changes. Please only answer to this issue if you have questions or helpful inputs. Note that development is taking place in the `doctor` branch until there is a patch available for testing. ¹) Might also take longer. New code is an unknown time factor.
Krock commented 1 year ago
Owner

Testing patches for 3.6.0 are done

As usual, please use only testing accounts until the patch is confirmed working. If everything goes well, patch unlock will be on 15 April.

Please test the following patches:

  • patch.sh
  • patch_anti_logincrash.sh
    • Likely starting from Friday (server time), this patch will avoid increased CPU usage on Linux kernels with timer frequencies <1000 Hz (see #195 for details).

It would also be interesting to see when the vanilla/unpatched switch flips (#404). Based on a simple test, it does not seem to depend on the system time.


On a side note: I tried to implement a stub WDFLDR.SYS but the game exits regardless on the returned status code.

0268:fixme:wdfldr:WdfVersionBind stub. name=L"\\Driver\\mhyprot2", type=0, flags=0, comp=L"KmdfLibrary", ver=1.9.7600, count=396
0268:fixme:wdfldr:WdfVersionUnbind stub
0268:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\mhyprot2": c0000008
025c:fixme:ver:GetCurrentPackageId (000000000021FD70 0000000000000000): stub
0264:err:service:validate_context_handle Access denied - handle created with access 34, needed 10000
#### Testing patches for 3.6.0 are done As usual, please **use only testing accounts** until the patch is confirmed working. If everything goes well, patch unlock will be on 15 April. Please test the following patches: * `patch.sh` * `patch_anti_logincrash.sh` * Likely starting from Friday (server time), this patch will avoid increased CPU usage on Linux kernels with timer frequencies <1000 Hz (see #195 for details). It would also be interesting to see when the vanilla/unpatched switch flips (#404). Based on a simple test, it does not seem to depend on the system time. --- On a side note: I tried to implement a stub WDFLDR.SYS but the game exits regardless on the returned status code. ``` 0268:fixme:wdfldr:WdfVersionBind stub. name=L"\\Driver\\mhyprot2", type=0, flags=0, comp=L"KmdfLibrary", ver=1.9.7600, count=396 0268:fixme:wdfldr:WdfVersionUnbind stub 0268:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\mhyprot2": c0000008 025c:fixme:ver:GetCurrentPackageId (000000000021FD70 0000000000000000): stub 0264:err:service:validate_context_handle Access denied - handle created with access 34, needed 10000 ```

Played for around ~1 hour. So far no issues encountered.

Thank you very much!

Played for around ~1 hour. So far no issues encountered. Thank you very much!

I got this problem,when I try to launch it

I got this problem,when I try to launch it

I tried both patches and it works great on my end. Compiling shaders took a minute but the game ran smoothly.

  • Arch Linux (6.2.10-zen)
  • NVIDIA 530.41.03
  • Wine Staging 8.5
  • DXVK 2.1

Thanks!

I tried both patches and it works great on my end. Compiling shaders took a minute but the game ran smoothly. - Arch Linux (6.2.10-zen) - NVIDIA 530.41.03 - Wine Staging 8.5 - DXVK 2.1 Thanks!
cybik commented 1 year ago

Patch Test Log

Updated throughout the week.

Bench: 8700k/3060Ti(525.89.02)/32gb RAM, Ubu by Pop 22.04.

Trash account test

Target: Patched by hand, Proton-GE 7-52's wine, manual run.

  • Log in, Play etc, Daylies, Leylines, Netplay, Wishing
  • No auto-ban after login / a few minutes / ~1hr / ~4hr / daily reset
  • TCG

Main account test

Target: As above

  • Log in, Play etc, Daylies, Leylines, Wishing, Netplay, TCG
  • No auto-ban after login / a few minutes / ~1hr / ~4hr / daily reset
  • Functional after AC servers spin back up

Verdict

TBD

### Patch Test Log Updated throughout the week. **Bench:** 8700k/3060Ti(525.89.02)/32gb RAM, Ubu by Pop 22.04. #### Trash account test *Target*: Patched by hand, Proton-GE 7-52's wine, manual run. * [x] Log in, Play etc, Daylies, Leylines, Netplay, Wishing * [x] No auto-ban after login / a few minutes / ~1hr / ~4hr / daily reset * [ ] TCG #### Main account test *Target*: As above * [x] Log in, Play etc, Daylies, Leylines, Wishing, Netplay, TCG * [x] No auto-ban after login / a few minutes / ~1hr / ~4hr / daily reset * [ ] Functional after AC servers spin back up #### Verdict TBD
Cha14ka commented 1 year ago

Everything works fine, except that I'm catching that #361 amd driver bug again on a clean system. Played ~6 hours, also used patch_anti_logincrash.sh, thanks.

OS: Arch Linux x86_64
Kernel: 6.2.10-zen1-1-zen
CPU: AMD Ryzen 5 5600X
GPU: AMD ATI Radeon RX 6500 XT
Wine: GE-Proton7-55
DXVK: 2.1
Everything works fine, except that I'm catching that https://notabug.org/Krock/dawn/issues/361 amd driver bug again on a clean system. Played ~6 hours, also used `patch_anti_logincrash.sh`, thanks. OS: Arch Linux x86_64 Kernel: 6.2.10-zen1-1-zen CPU: AMD Ryzen 5 5600X GPU: AMD ATI Radeon RX 6500 XT Wine: GE-Proton7-55 DXVK: 2.1
liuk commented 1 year ago

for the first time i'm having "unhandled page fault"

2023-04-12 17:20:55,043: Starting Lutris 0.5.12
2023-04-12 17:20:55,141: Running Intel Mesa driver 23.0.2 on Mesa Intel(R) UHD Graphics 620 (KBL GT2) (0x5917)
2023-04-12 17:20:55,141: GPU: 8086:5917 0100:2782 (i915 drivers)
2023-04-12 17:20:55,991: Unable to load libGLX_nvidia.so.0
2023-04-12 17:20:55,991: Unable to locate libGLX_nvidia
Discord ID: None
2023-04-12 17:20:56,133: Discord RPC Disabled or Discord APP ID Not Present
Started initial process 9136 from /usr/bin/wine cmd /C /home/liuk/Games/Genshin Impact/launcher.bat
Start monitoring process.
esync: up and running.
Initial process has exited (return code: 0)
wine: Unhandled page fault on execute access to 00000002D4AD4630 at address 00000002D4AD4630 (thread 095c), starting debugger...

and then it enters the debugger screen and stays like that forever :/

for the first time i'm having "unhandled page fault" ``` 2023-04-12 17:20:55,043: Starting Lutris 0.5.12 2023-04-12 17:20:55,141: Running Intel Mesa driver 23.0.2 on Mesa Intel(R) UHD Graphics 620 (KBL GT2) (0x5917) 2023-04-12 17:20:55,141: GPU: 8086:5917 0100:2782 (i915 drivers) 2023-04-12 17:20:55,991: Unable to load libGLX_nvidia.so.0 2023-04-12 17:20:55,991: Unable to locate libGLX_nvidia Discord ID: None 2023-04-12 17:20:56,133: Discord RPC Disabled or Discord APP ID Not Present Started initial process 9136 from /usr/bin/wine cmd /C /home/liuk/Games/Genshin Impact/launcher.bat Start monitoring process. esync: up and running. Initial process has exited (return code: 0) wine: Unhandled page fault on execute access to 00000002D4AD4630 at address 00000002D4AD4630 (thread 095c), starting debugger... ``` and then it enters the debugger screen and stays like that forever :/
Ro.R commented 1 year ago

Played for couple of hours, performed character trails and daily commissions as wel as some domains. Not any problem to report.

I performed both patches

AMD Ryzen 7 2700X + GeForce GTX 1060
openSUSE Tumbleweed kernel 6.2.8-1-default
Lutris with wine lutris-fs-hack-7.2
Played for couple of hours, performed character trails and daily commissions as wel as some domains. Not any problem to report. I performed both patches ``` AMD Ryzen 7 2700X + GeForce GTX 1060 openSUSE Tumbleweed kernel 6.2.8-1-default Lutris with wine lutris-fs-hack-7.2 ```
saturn commented 1 year ago

Played for about 45 minutes on a testing account with both patches applied. Did some wishes, some quests, tested the ingame browser. Everything looks good, no issues to report.

Arch Linux, AMD 5700x + rx 6700 xt, linux-zen 6.2.9-1, lutris-ge wine 7.35, dxvk 2.1.

Played for about 45 minutes on a testing account with both patches applied. Did some wishes, some quests, tested the ingame browser. Everything looks good, no issues to report. Arch Linux, AMD 5700x + rx 6700 xt, linux-zen 6.2.9-1, lutris-ge wine 7.35, dxvk 2.1.
dentex commented 1 year ago

Initially I installed the game via Heroic Games Launcher, just the day before v3.6.0 came out... and to my surprise it just worked, without any patch... how is that possible, IDK[1]. Then, the next day, 10Gb of update to GI v3.6.0, and the game doesn't start. An error says that some "wdfldr.sys" is required (I've found it on some sketchy website... awwhh, this reminded me those fortunately long gone Windows days...). Then I understand that some anti-cheat system is in place and I find this repo (I used the custom install method). I found here that patches exist for versions back to 3.1.0... [1]so my previous question remains.

Other than that, this message is to report once again a patch success; congratulations for the amazing job and many thanks to @Krock

System:
  Kernel: 5.15.0-69-generic x86_64 
  Desktop: Cinnamon 5.6.8 Distro: Linux Mint 21.1 Vera
Machine:
  Type: Laptop System: ASUSTeK product: N751JK date: 03/11/2015
CPU:
  Info: quad core Intel Core i7-4710HQ [MT MCP]
Graphics:
  Device-1: Intel 4th Gen Core Processor Integrated Graphics driver: i915 v: kernel
  Device-2: NVIDIA GM107M [GeForce GTX 850M] driver: nvidia v: 510.108.03
  Display: x11 server: X.Org v: 1.21.1.3 driver: X:
    loaded: modesetting,nvidia unloaded: fbdev,vesa gpu: i915
    resolution: 1920x1080~60Hz
  OpenGL: renderer: NVIDIA GeForce GTX 850M/PCIe/SSE2
    v: 4.6.0 NVIDIA 510.108.03

Initially I installed the game via Heroic Games Launcher, just the day before v3.6.0 came out... and to my surprise it just worked, without any patch... how is that possible, IDK[1]. Then, the next day, 10Gb of update to GI v3.6.0, and the game doesn't start. An error says that some "wdfldr.sys" is required (I've found it on some sketchy website... awwhh, this reminded me those fortunately long gone Windows days...). Then I understand that some anti-cheat system is in place and I find this repo (I used the *custom* install method). I found here that patches exist for versions back to 3.1.0... [1]so my previous question remains. Other than that, this message is to report once again a patch success; congratulations for the amazing job and many thanks to @Krock ``` System: Kernel: 5.15.0-69-generic x86_64 Desktop: Cinnamon 5.6.8 Distro: Linux Mint 21.1 Vera Machine: Type: Laptop System: ASUSTeK product: N751JK date: 03/11/2015 CPU: Info: quad core Intel Core i7-4710HQ [MT MCP] Graphics: Device-1: Intel 4th Gen Core Processor Integrated Graphics driver: i915 v: kernel Device-2: NVIDIA GM107M [GeForce GTX 850M] driver: nvidia v: 510.108.03 Display: x11 server: X.Org v: 1.21.1.3 driver: X: loaded: modesetting,nvidia unloaded: fbdev,vesa gpu: i915 resolution: 1920x1080~60Hz OpenGL: renderer: NVIDIA GeForce GTX 850M/PCIe/SSE2 v: 4.6.0 NVIDIA 510.108.03 ```
cybik commented 1 year ago

@dentex on unpatched: see #404. We suspect it has to do with anticheat servers being offline on patch release until the following week-end.

@dentex on unpatched: see #404. We suspect it has to do with anticheat servers being offline on patch release until the following week-end.

I was trying this patch and I've been getting to a point after a few seconds in when the Wine debugger kicks in and throws GI into the background. Similar to what liuk pointed out earlier on. This said, I noticed that the music keeps playing in the background and while it's not straightforward (since there is nothing clickable), you can go back into the game and just play uninterrupted from that point on.

5900X with a 6800XT running on Lutris with system wine (8.4) - I'll try some other wine versions later on.

I was trying this patch and I've been getting to a point after a few seconds in when the Wine debugger kicks in and throws GI into the background. Similar to what liuk pointed out earlier on. This said, I noticed that the music keeps playing in the background and while it's not straightforward (since there is nothing clickable), you can go back into the game and just play uninterrupted from that point on. 5900X with a 6800XT running on Lutris with system wine (8.4) - I'll try some other wine versions later on.
Kyuunex commented 1 year ago

Hi

Tested both patches (main+optional) for around 1 hour, initially on the day one for few min and then for 40 minutes today. No bans.

Using, upstream wine-8.5 with esync patch + DXVK. Arch Linux, RX 480, 5700G, linux-hardened 6.1.24-hardened1-1-hardened.

Hi Tested both patches (main+optional) for around 1 hour, initially on the day one for few min and then for 40 minutes today. No bans. Using, upstream wine-8.5 with esync patch + DXVK. Arch Linux, RX 480, 5700G, linux-hardened `6.1.24-hardened1-1-hardened`.
Krock commented 1 year ago
Owner

@justin_12138 The patch did not get applied on your side, hence this error.


@liuk @darth_suicune Random crashes were already observed in the past but never narrowed down. Please check whether you have log files or a minidump file that would provide more information about the source of this crash.

You could also try the following:

  • run a full integrity check on your game (i.e. repair and reapply patch)
  • try a different Wine/Proton version
  • enable Wine's virtual desktop to rule out a few issues caused by input handling

I also was made aware of crashes possibly related to audio, although I am yet not aware of a workaround for that.


@dentex The second half of 3.5.0 was special and I have yet not had the time to figure out why it worked in the first place. The wdfldr error has existed ever since version 1.0.0. See #406 and #404 for details.


Thank you for all test reports. The patch script is now unlocked.

@justin_12138 The patch did not get applied on your side, hence this error. --- @liuk @darth_suicune Random crashes were already observed in the past but never narrowed down. Please check whether you have log files or a minidump file that would provide more information about the source of this crash. You could also try the following: * run a full integrity check on your game (i.e. repair and reapply patch) * try a different Wine/Proton version * enable Wine's virtual desktop to rule out a few issues caused by input handling I also was made aware of crashes possibly related to audio, although I am yet not aware of a workaround for that. --- @dentex The second half of 3.5.0 was special and I have yet not had the time to figure out *why* it worked in the first place. The wdfldr error has existed ever since version 1.0.0. See #406 and #404 for details. --- Thank you for all test reports. The patch script is now unlocked.
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.