https://bugs.winehq.org/show_bug.cgi?id=40916
Adam Bolte abolte@systemsaviour.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |abolte@systemsaviour.com
--- Comment #1 from Adam Bolte abolte@systemsaviour.com --- I can confirm this behaviour. I mentioned it in bug #34643, where one of the Wine developers incorrectly assumed there must have been something wrong with my wineprefix and dismissed it. The fact is the game was unable to run without a crack.
As far as I'm aware, there was never a version of the game sold for PC that did not require Steam activation, so I do not believe there is a non-Steam version that wasn't affected by this issue.
Having said all this, the bug has since been fixed. I'm happy to report that there are no immediately obvious issues when testing in a clean 32-bit wineprefix with Wine 3.3 and dotnet40 installed via an up to date winetricks.
I tested few old Wine versions I had kicking around too. It looks like the fix for this bug was introduced in wine-staging 2.8. I'm not sure when the fix made it into stable (I didn't keep my stable builds from 2.10 to 2.22) but can confirm the game wasn't working in 2.9 (stable) but has been working since at least 3.0 (stable) with just dotnet40 from winetricks.
These are the non-rebasing wine-staging patches from between 2.7 and 2.8:
7ad2ee4c winebuild-Fake_Dlls: Avoid conflict with 16-bit code. d00088e0 winebuild-Fake_Dlls: Try to fix build failure on OSX. 633cceca user32-GetAutoRotationState: Remove definition file. 46006c69 Rename windowscodecs-Metadata -> windowscodecs-MetadataQueryParser. d56994db Added patches with multiple improvements for propsys functions. 5e706135 Added patch to implement a basic security property tab. 6a14f80f Added patch with various improvements for fake dlls. 5d38a0fe ntdll-User_Shared_Data: Fix test failures on WinXP. 171d05ff wined3d-CSMT_Main: Get rid of unnecessary wait. d6c145fb server-Debug_Registers: Remove bug reference. bb180d38 d3d11-Deferred_Context: Merge two patches. a36a9723 wined3d-CSMT_Main: Merge two patches. f8e955a9 ntdll-User_Shared_Data: Add a missing CDECL. d966bece Added patch to implement some additional windowscodecs metadata functions. 1447b56e Added patch to reset debug registers when creating threads. afe01869 Added patch to fix some test failures in d3dx9_36/math tests. 4a4ebec6 dxva2-Video_Decoder: Remove dependency on winecfg-Staging patchset. 35ea3890 Add a separate script to plot patchset dependency graph. 26438ad7 Added patch to update user_shared_data timers. a08b6b2b Added patch for initial implementation of advapi32.BuildSecurityDescriptorW. 9985fe90 Added patch to implement TokenIntegrityLevel stub in NtSetInformationToken. 3aa965e9 Added patch to implement TokenLogonSid stub in NtQueryInformationToken. 2e479e09 Added patch to implement semi-stub for ntdll.NtCreateThreadEx. 9fe12a21 Added patch to avoid crash if context_reacquire is called with NULL context. 5282f297 bcrypt-Improvements: Fix BCryptEncrypt with AES_GCM and no input and no output. 1446da2c fonts-Tahoma: Regenerate tahoma.ttf with ancient fontconfig.
It seems one of those was the fix (the advapi32.BuildSecurityDescriptorW implementation maybe?). Let me know if there's any interest in narrowing down the fix further. In any case, this bug can now be closed.