
Modified ddraw.dll from Wine 0.9.17
Copyright (C) 1993-2006 the Wine project authors (see the Wine source to find out who they are)

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA



This archive contains a modified version of the ddraw.dll.so file that is a normal part of the Wine project, renamed ddraw.dll. It has been modified to work better with Worms: Armageddon.

Wine, this modified part of Wine, and this silly readme are all available under the terms of the Lesser General Public License. You DO NOT have to agree to the terms of the LGPL to use them, only to redistribute and/or modify them.

This particular copy of ddraw.dll was created by extracting the wine-0.9.17 source (which you can get from http://winehq.org/), and applying wa-hack.patch by typing "patch -p0 <wa-hack.patch" at the root of wine's source. I then built ALL of wine (but didn't install), and copied the resulting ddraw.dll.so from the dlls directory in the source.

You should be able to use this with any recent wine version, but it'll probably work best if it's 0.9.17 or newer.


The patch works around two problems that affect Worms Armageddon in wine 0.9.17:

The first (and more important) is that WA's menu is not drawn. This seems to be because the window WA wants to use has a child window that obscures it completely. The patch works around that by drawing to the desktop window instead of the window WA asks it to use.

The second is that the opengl renderer isn't good enough for WA just yet, and ddraw tries to use it because (apparently) WA requests 3d capabilities. This isn't strictly necessary; you could do that by changing a registry setting and using the normal ddraw. I did it because I think that hacks like this one should be as simple as possible to use (and in this case modifying the registry is an extra step that I can eliminate) and because the work-around for the first problem seems to cause crashes for anything other than gdi surfaces.

I've also thrown in a patch recently submitted by Mike McCormack to Wine, "ddraw: Don't link to wined3d, load it at runtime." Supposedly this will allow it to work with versions of wined3d that were built without opengl libraries present.


Vincent Povirk (madewokherd)
madewokherd@gmail.com
