https://bugs.winehq.org/show_bug.cgi?id=40334
--- Comment #17 from Paul Gofman gofmanp@gmail.com --- Created attachment 65651 --> https://bugs.winehq.org/attachment.cgi?id=65651 hack
After fixing the crash at the very start (see Comment #16) the game loads it data for a while and then crashes again during the transition screen before showing login screen.
The crash happens in CrySystem.dll in CryFree(). It does not like really high memory pointers, it probably indexes some part of them in some table and that exceeds the bounds of the table. It looks like it expects the memory returned by HeapAlloc to have limited address range. I am attaching the hack which allows the game to run (by providing zero bits mask in heap virtual memory allocations). To allow this work well I also included the patch by RĂ©mi Bernon which is currently hanging in development patches list waiting for review. Anyway, this patch is not something I would recommend to include in any more or less universal build.
The game relies on the addresses allocated in (relatively) low space and it is not guaranteed on Windows (though probably usually the case unless the lower space is exhausted). I checked that there are no special suspicious flags on heaps creation used.
I found an open source for Cry system on github. I looked at the code very briefly but it looks like the present version does not have this bug, so maybe the game is using some old version and the bug might go away as soon as the game updates Cry system.
Besides this problem and the one related to this bug (Comment #16), there is also a crash in wined3d right after logging in to server. It is the same for 32 and 64 bit version. I hope this one will be fixed rather sooner than later.
With all these issues bypassed, the game starts and runs seemingly flawless (I created a character, walked quite a bit around the initial area and even managed to kill some big fly near the gates).