https://bugs.winehq.org/show_bug.cgi?id=43567
--- Comment #8 from Jan Havran havran.jan@email.cz --- (In reply to Paul Gofman from comment #7)
I am sorry if I interfered into your work but I had no clue this could happen. I got here after looking into some recent activity on bug info list. I actually was curious about different issues but was hitting this bug in the demo and wanted to track what is up there and sort out somehow (even if only to workaround).
No worries, it just surprised me yesterday little bit...
BTW, you can make it work without any fixes by turning WINEDEBUG=+relay. Relay thunks which are added in this case save some registers (including ecx) and do it for every function in DLL.
I see, now I know why I could not reproduce it with +relay channel. This is interesting information.
I have never sent any patch into Wine, but I agree that our patches wont be simply accepted as they are (the assembler etc.). On the other hand, Wine says "bug for bug", so at least for Windows XP compatibility we should keep the ECX register too, since this application requires it.
This bug is reproducible on Windows >= Vista, but Wine could keep ECX register for all compatibility versions in my opinion.
BTW: this game is broken in many ways as you can see from other bugs and on newer Windows systems it also requires use of VC Starter.