http://bugs.winehq.org/show_bug.cgi?id=60121 Bug ID: 60121 Summary: Multi Theft Auto serial validation error Product: Wine Version: 11.14 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: EpicTux123@proton.me Target Milestone: --- Distribution: --- Created attachment 81684 --> http://bugs.winehq.org/attachment.cgi?id=81684 80 mb log file from me # THE ISSUE There exists a modification for the game "Grand Theft Auto: San Andreas" called "Multi Theft Auto", available online at https://multitheftauto.com/ . It makes it possible to play the game online with others, something that the original game does not have the possibility to. Some bad actors, however, sometimes use cheat like god mode, infinite money and so on. To fix it, the developers ban such bad actors, but to avoid the bad actors from simply creating a new account and using a VPN (ban evasion), they also uniquely register the device serial based on the unique identifiers of hardware components, but mainly the storage device, be it a SATA HDD or a NVME SSD. This is their anti-cheat/anti-device spoofing system, which is proprietary. The rest of the code is open-source, available at https://github.com/multitheftauto/mtasa-blue , but the relevant code for this issue is a proprietary network module. Wine apparently fails at getting such serial from the Linux system, resulting in the app not working as expected and closing with serial validation error. On Windows, it works as expected, be it with any type of storage (filesystem is always NTFS, in this case). # THE DEVELOPERS' RECOMMENDATIONS https://help.multitheftauto.com/sa/trouble/serial-validation/#-linux To fix the issue, the developers recommend running the native Linux server binary (server, not client) to then generate such serial IDs automagically and keep them in sync with the client (the mod's client is Windows-only, but can work via Wine). It requires root in order to read some system paths. However, that has not been successful for me. Apparently, after running the server, there is supposed to be an automatic magic communication between the Linux server -> MTA client (the latter being via Wine, and the former being Linux native), but it did not happen in my case, even without sandboxing. # THE INCONSISTENCIES It is a gamble; 50% of people get it to work, and 50% do not, and the latter is my case. I asked one of the Multi Theft Auto developers if their anti-device spoofing mechanism discriminates against device type or if it really only cares about the serial being valid. The latter is the answer: it only cares about serial numbers. # A WEIRD WORKAROUND Some people in the community have found that if you plug in a SATA drive such as a USB stick or external SATA HDD, the serial validation works as expected, but that has not been my case; it was still not working. This is not relevant either, because on Windows it works with a single NVME-only device without any issues, but I am mentioning it because some people have found it to work with that. It is something related to not having certain types of storage/disks; see https://wiki.multitheftauto.com/wiki/Client_on_Linux_Manual#Known_issues:~:t... for a community explanation (that page is somewhat outdated, but the part I linked may be relevant for the information it gives). The workaround did not work for me. So, I dug further into what is the problem. # WMI: THE POTENTIAL PROBLEM In https://github.com/multitheftauto/mtasa-blue/issues/4097 such issue is discussed at length, but what has been its main subject is the talk about Windows Management Instrumentation (WMI) and how Wine exposes storage devices and their IDs to the app. The main comment is this one https://github.com/multitheftauto/mtasa-blue/issues/4097#issuecomment-425913... (please read it starting from there as it has relevant information), talking about how the issue happens. The person there also made a small program to replicate how Wine gets the serial for the app ( https://github.com/Zephkek/serial_test ), trying to replicate the query from Wine. # TO REPRODUCE THE ISSUE 1. Buy a copy of the game GTA SA. See https://wiki.multitheftauto.com/wiki/Where_to_buy_GTASA for details. (Note: the game is abandonware. To buy it, you have to buy the full new trilogy as well, but de-listed version also exists on Steam if you had it earlier, or in the high seas if you want to search there). 2. Acquire the modification, MTA, at https://multitheftauto.com/ (main Download button, Win10 version), at no cost. 3. Create a clean Wine prefix (note: in my case it was Wine from Arch Linux with WOW64 enabled), with those verbs installed from winetricks: allfonts fontsmooth=rgb d3dx9_42 d3dcompiler_42 d3dcompiler_43 d3dcompiler_47 (needed to avoid launch issues). 4. Run the mod installer inside the Wine prefix. Uncheck everything in the installer except for "Game client" (do not check what cannot be unchecked, of course). 5. Do not change default mod install directory. 6. Change game directory to your copy of GTA SA (can be in your /home outside the prefix, no problem). If the copy is not version 1.0, MTA will automatically downgrade it to v1.0 (Steam is v3.0, for example). 7. After installing, open the game with its wineprefix. Mod's EXE is located in "C:/Program Files (x86)/MTA San Andreas 1.6/Multi Theft Auto.exe". 8. If it gives you warn about anti-virus, check the checkbox and proceed (you can safely ignore it). 9. Game opens to the main menu, and after 10 seconds exists with invalid serial error. Tip: run the mod with WINEDEBUG="+wmic,+wbemprox,+mountmgr,+volume,+file" for debug. I am not entirely sure the case is WMI but that is my best guess at the moment. # SYSTEM INFORMATION I am able to reproduce this issue with the following system: Operating System: Arch Linux KDE Plasma Version: 6.7.3 KDE Frameworks Version: 6.28.0 Qt Version: 6.11.1 Kernel Version: 7.1.5-arch1-2 (64-bit) Graphics Platform: Wayland Package "wine" from Arch Linux official repository. Version "11.14-2". ("wine-mono" and "wine-gecko" packages also installed, but probably not relevant.) System with only one NVME SSD installed and nothing else. I also attached a log file from my test of the problem with the same debug flags I recommended earlier. -- 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.