https://bugs.winehq.org/show_bug.cgi?id=48700
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #3 from Paul Gofman gofmanp@gmail.com --- Created attachment 66590 --> https://bugs.winehq.org/attachment.cgi?id=66590 POC patch (introduces memory leak by refusing to free small memory blocks)
I've tested the game.
The game seems to do good old use after free on some pointers. The attached proof of concept tweak fixes the issues for me (tested on initial character creation screen only). Please note that the patch just skips the free of small sized memory blocks and thus introduces stable memory leak.
This doesn't look like something triggered by Wine specifics as exactly the same graphical issue is reproducible on Windows if to run program with Windows debug heap. E. g., if the program is started from any debugger, the same glitch is in place. If to set _NO_DEBUG_HEAP environment variable the glitch is not there even if the program is started from debugger, so it looks like it is debug heap that makes the difference on Windows.
The problem doesn't look fixable under Wine, Wine heap implementation is different from Windows in details and Wine is unlikely going to ever reproduce the Windows heap layout and allocate / free algorithms exactly.
Maybe game developers would fix the use after free in game, as it is something I guess they definitely want to fix even if this happens to work now on currently supported Windows versions. I suppose running the program under something like Valgrind or just build with MSVC debug heap would immediately reproduce the glitch and possibly allow to pinpoint use after free location.