http://bugs.winehq.org/show_bug.cgi?id=6946
--- Comment #19 from Sebastian Riemer Sebastian.Riemer@gmx.de --- Yes, it is DirectX 7 as well and it sounds very similar. Here is what needs to be done:
1. find the function which causes trouble (debugging, disassembly, etc) 2. write a small test app with that function 3. test the test app on Windows and on latest Wine, compare the results 4. Write a prove-of-concept patch, apply to latest Wine, retest 5. improve the patch according to the Git Wine instructions, attach the working patch to this bug report, give it to Henri for review 6. send it to the wine-devel mailing list if it is good enough 7. check if it gets accepted
One day I've installed the DirectX 7 SDK and I was kind of shocked how different the example apps ran on Wine. In the examples there is also that enumerator function to find the renderers which doesn't work correctly with Wine. Sorry, but I can't remember its name.
Unfortunately, there are a lot of patches which remain uncommented and unaccepted. I don't know if it's limited time, resources or commercial interest of Codeweavers. But for hobbyists the effort isn't really worth it sending patches to Wine. I made much much better experience sending patches to the Linux kernel and other FOSS projects. Perhaps, Wine mailing lists should also be splitted in subsystems with subsystem maintainers where you convince the subsystem maintainer first. And having a getmaintainer script like in the Linux kernel would also help. Codeweavers, please come to the LinuxTag in Berlin/Germany one day! I'd like to talk with you face to face one day!
The Carmageddon TDR 2000 demo doesn't have this bug. It uses 3D rendering right away. Only the retail version has software renderer support and this bug.
I'm sorry that I've neglected my Carmageddon TDR 2000 AppDB maintainer duties recently! I was so frustrated that more things are broken than fixed. I've spent my leisure time improving my reverse engineering skills by developing the universal elite game trainer "ugtrain" which does API hooking of malloc() and free() to support dynamic memory and already works very well for Linux. Next versions will support Windows and Wine as well. It will be the only universal multiplatform game trainer with dynamic memory support. I intended this for faster Wine testing but it is a lot of effort - still no contributions from others. :-( At work I'm a Senior Linux Kernel Developer - Storage. But working full-time on Wine from remote would also be a cool job for me.
I think in June I will have again more time for Wine. Then, I will retest everything and debug this further down.