Icewind Dale and dirty stacks

Filip Spacek fspacek at student.math.uwaterloo.ca
Sun Nov 2 18:14:20 CST 2003


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





More information about the wine-devel mailing list