[Bug 39648] New: MTA: San Andreas cannot start in Wine64
https://bugs.winehq.org/show_bug.cgi?id=39648 Bug ID: 39648 Summary: MTA: San Andreas cannot start in Wine64 Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntoskrnl Assignee: wine-bugs(a)winehq.org Reporter: rafalh1992(a)o2.pl Distribution: --- Created attachment 52850 --> https://bugs.winehq.org/attachment.cgi?id=52850 Log (+ntoskrnl) Multi Theft Auto: San Andreas 1.5 cannot start in Wine64 (WoW64 mode) in Linux Mint 17.1. Wine stops logging with error "wine client error:37: partial write 57344". I already debugged this issue. MTA: SA is multiplayer mod for GTA: San Andreas. MTA contains kernel mode driver named FairplayKD.sys. MTA installs it at startup and then sends IOCTL to it from modded gta_sa.exe process. When driver tries to process IOCTL it fails and sets ipr->IoStatus.Status to STATUS_NOT_IMPLEMENTED. But when Wine interprets IRP structure in ntoskrnl it reads the status as number of bytes (which is normally passed in IoStatus.Information field). Then Wine tries to transfer 0xC0000002 (STATUS_NOT_IMPLEMENTED) bytes to gta_sa.exe process (process which sent IOCTL). This obliviously fails and causes "wine client error:37". Problem is caused by invalid definition of IRP structure in wdk.h header. Its improperly marked as packed. It does nothing in 32-bit because structure doesn't need any padding in such architecture. In 64-bit it causes displacement of Status field by 4 bytes. I already created patch for this issue and going to send it. Patched Wine 1.7.53 allows me to start MTA and play normally. Newer Wine has regression in DirectX which makes MTA unplayable. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39648 --- Comment #1 from rafalh <rafalh1992(a)o2.pl> --- https://source.winehq.org/patches/data/116849 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39648 rafalh <rafalh1992(a)o2.pl> changed: What |Removed |Added ---------------------------------------------------------------------------- Hardware|x86 |x86-64 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39648 --- Comment #2 from rafalh <rafalh1992(a)o2.pl> --- I meant ddk/wdm.h header, not wdk.h... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39648 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch, win64 Status|UNCONFIRMED |NEW CC| |focht(a)gmx.net Version|unspecified |1.7.53 Summary|MTA: San Andreas cannot |MTA: San Andreas 1.5: |start in Wine64 |failure to process 64-bit | |FairplayKD.sys driver IRPs | |due to incorrect | |alignment/packing of I/O | |manager structures Ever confirmed|0 |1 --- Comment #3 from Anastasius Focht <focht(a)gmx.net> --- Hello folks, confirming, filling missing fields and refining summary. Regards -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39648 --- Comment #4 from rafalh <rafalh1992(a)o2.pl> --- https://source.winehq.org/patches/data/116853 before patch: wine32: sizeof(IRP) == 112 (0x70) sizeof(IO_STACK_LOCATION) == 36 (0x24) wine64: sizeof(IRP) == 200 (0xc8) sizeof(IO_STACK_LOCATION) == 68 (0x44) after patch: wine32: sizeof(IRP) == 112 (0x70) sizeof(IO_STACK_LOCATION) == 36 (0x24) wine64: sizeof(IRP) == 208 (0xd0) sizeof(IO_STACK_LOCATION) == 72 (0x48) Checked sizes on http://msdn.moonsols.com and they are correct after the patch. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39648 rafalh <rafalh1992(a)o2.pl> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #5 from rafalh <rafalh1992(a)o2.pl> --- Patch already committed to master. I built Wine snapshot today and tested MTA:SA. It works fine in Wine WoW64 now (even regression I mentioned in description has gone). Thanks! -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39648 Anastasius Focht <focht(a)gmx.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |3acac5b2212c4d040ff2294e0a3 | |e782a0af5e65a -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39648 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #6 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 1.8-rc2. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
wine-bugs@winehq.org