http://bugs.winehq.org/show_bug.cgi?id=16501
--- Comment #12 from Lisa Denia eiffel56@gmail.com 2009-07-04 08:05:42 --- I finally got some time to dig into the source, and I found a solution. Maybe. As there weren't any useful hints in Wine's output, I started adding "Just return if I pressed F12" patches to various, often used functions. It turned out that SetRenderState does something related to this bug. If it gets disabled during runtime, the screen will get totally messed up(you may have guessed...), BUT all that moving objects are rendererd correctly. So I tried a couple of things, including just ignoring several states. Ignoring WINED3DRS_EMISSIVEMATERIALSOURCE prevents the objects from turning black, by introducing new bugs in the UI. So I traced what is done when, and the attached patch resulted ;). As far as I can see, it fixes all black objects. Tested in Tomahna, Spire and Haven, everything looks perfectly nice. Also the UI looks like it should, in contrast to just ignoring WINED3DRS_EMISSIVEMATERIALSOURCE.
I wonder if this patch will be considered as clean(and should be committed then) or not. Any suggestions appreciated.