Hello,
Having nothing to do, I bought Icewind Dale. As my luck would have it, it doesn't run in Wine. So I've spent the weekend trying to figure out why (which is aguably more fun than actually playing the game).
It turns out that it allocates a huge structure on the stack (20948 bytes) but it doesn't initialize it properly. My current theory as to why would that work on Windows is that given the size of the thing the space for it is probably freshly faulted in and hence clean. In wine though, this space is already dirtied up (by Xlib initialization).
Now of course, this is a program bug, and Wine is not at fault, but I'd still really like to play the game.
Would it be possible to somehow run some of the dll initialization on a different stack? Or clean up afterwards?
Or if nothing else, does anyone know how to quickly set a chunk of memory to zero in gdb (my current method of using a while loop with a set statement takes about 15 minutes to run).
-Filip