Wine, Cedega and Crossover
Category : Tools
Published by Mircea Ungureanu [rastilin] on 2007/8/7
It's time to look at the Wine project again, as well as the latest improvements in Crossover and Cedega. Perhaps unsurprisingly, there really aren't that many new differences.
Firstly let me place the conclusion. I've used Crossover and Wine and I'm heartily sick of them. Windows is horribly complicated and large parts of it are simply not detailed properly. In addition, new developments in DirectX are treated with horror instead of happiness. Wine has been worked on for over a decade and it's still in alpha, sometimes it's just best to let things go. It might be best to turn our attention to Virtualization as the solution to our problems. However hard it might be to write a full DirectX driver for Virtualbox, is that something that could be accomplished in less than 10 years with all the programmers on the Wine project? When looking at the work accomplished by Vmware in that same field, I suspect it may well be much easier.

You may be wondering what prompts this annoyance. It's simple, they broke Oblivion in Wine. Firstly though, I'll take the opportunity to outline my views on free software. It's true that there are people who object to the whole idea of closed source software, much less running it in Linux. But realistically, these people make up a tiny minority of computer users, much less that of living people. Most people, at least in my experience, don't even know what Linux is much less care about tainting their kernel with proprietary drivers; in actual fact, they're onto something. The point I am trying to arrive at is that while OSS is a excellent philosophy, it shouldn't take over your life. Not to the point where you feel compelled to give up the enjoyment of playing the latest 3D games. Or for that matter the point where it makes you so strange that other, more sociable people, feel scared to associate with you. So yes, I believe in OSS, but only to a limit. One other thing, I'm definitely not going to call it GNU/Linux. Not because the people behind GCC (Which is instrumental to the open source movement) don't deserve credit, but because it's associated with being in the deep end. As for myself, I still entertain the thought of talking to a woman before I graduate.

Now that I've gone over the core point, where does this leave the aforementioned gamers? Well, up the creek actually. Not because Wine cannot work, but because it takes ages, sometimes requiring patches being applied to the code, registry hacks on their pretend registry. Sometimes the application just regresses and something that used to work no longer does so. This makes Wine as a solution to be less than optimal. Since they share so much of Wine's code, the same problem applies to Crossover and Transgaming. In fact, the only real, remotely sure-fire way to jump past these issues is with emulation. The speed hit when done properly is no longer as hard-hitting and more importantly, you can be generally assured when you buy a game that it will work.

Unfortunately, due to the design of computers today, it's very complicated to get 3D graphics emulated properly. Vmware's been working on it for ages and the best they have is almost complete DirectX8 compatibility, DirectX9 does work to a limited degree but pixel shaders do not and opengl calls are all emulated. Parallels does support a similar level of advancement, they have no pixel shaders but they do have nearly full speed hardware opengl. However, only on Mac, the Linux and windows version is still 2.2 and doesn't support any 3D graphics. It should also be noted that the 3.0 version of parallels uses code from the Wine project.

Currently the best way to get games running on Linux is to dual boot. It's disruptive to your work, a pain to set up and if your setup prevents you from nuking part of your drive to put Windows on it, it'll require a second computer. Which is something that I had arranged when I had spare hardware. However, this is not always practical; really Virtualization is a very important tool and it's this more than Wine that will allow gaming.

However it's important to note what stage we're on to right now. So, here's the up to date listing of stuff that works. But before I get onto the list, I'll talk about Cedega. Linux Format magazine has a nice section on the fact that Cedega has finally achieved compatibility with Windows games to Linux. My personal experience promotes skepticism. Also, I'll point out that even though they're not required to give back code to Wine, as Wine was using the BSD license when the fork happened, that doesn't let Transgaming off the hook. They've been claiming compatibility for ages, they've been exaggerating that for ages too.

Now, the games, a random selection in no particular order. With a few rehashes.

Command and Conquer 3 - Wine, Crossover
It does work, mostly. However it requires several additional dll files and will occasionally freeze on the high detail levels. In addition, both Crossover and early versions of Wine have crippling problems with pixel shaders.

Oblivion - Cedega
It used to work in Wine however recent regressions have killed it. Well, you could use an earlier version if you were willing to switch back. It also works in Crossover however the graphics are so garbled that you'd have a hard time enjoying it.

Warcraft 3 - Wine, Cedega, Crossover, Vmware
It works in everything, even using the Direct3D mode instead of opengl. Almost perfectly, there's two flaws in Vmware's execution, there's a cursor bug that used to appear in Wine and the ground flickers to black randomly.

Guild Wars - Wine, Crossover, Vmware
The Crossover version works perfectly. However, Wine has a corrupted cursor as previously mentioned. In Vmware, the character models have horrible pixel shader errors that look terrible. On the other hand, the game itself seems to work perfectly.

GoonZu - Wine, Crossover, Vmware
It might work in Cedega too, I'm not touching it so I don't know. I have to admit I rather like this game. In either case, it works great although somewhat laggy on Vmware.

PCSX2 - Wine(maybe)
This one's a bit tricky. It doesn't work in Crossover because of DirectX issues and it's not going to work in Vmware because PCSX2 needs either opengl or pixel shaders. Additionally, you're not going to get direct memory access from a VM.

Psychonauts -
None, Wine and by extension all the shared source projects don't support multi threaded DirectX. While Vmware does, seem, to support multi threaded DirectX it doesn't support Pixel Shaders.

Neverwinter Nights 2 -
It doesn't appear to work on anything. There ARE screenshots of Wine in NWN2. How ever, there are no reports of it actually working.

Far Cry -
There are screenshots of it working in Wine and it used to work in Cedega back when it was called winex although only to a limited degree. While it can be made t work in both Wine and Crossover, errors in both implementations have so far kept it from actually being properly playable. It doesn't work in Vmware due to it's use of pixel shaders. There does appear to be an opengl mode in the game so it might very well work in Parallels although I haven't tried it.

Supreme Commander - Wine
It does work in Wine but only after applying several patches to your source code to stop the units dissapearing. In essence, it's more trouble than it's worth to get this one running, despite how good it is.

Prey - Wine, Crossover
It works perfectly in Wine and Crossover. But not in Vmware due to the fact it only has an opengl renderer. It should be noted that this would work perfectly in parallels.

Quake 4 - Wine, Crossover
Again, perfect because it has an opengl renderer. The binary doesn't appear to make use of any strange function calls either. This one has been demonstrated to work perfectly in parallels.

Total Annihiliation - Vmware
It should work in Wine, but it doesn't. It doesn't seem to work in Crossover either, though I don't know why. It DOES work in Vmware but it's noticeably less responsive. However, this is an issue that will probably be dealt with, quite possibly by the new scheduler in 2.6.23.

S.T.A.L.K.E.R - Wine
It doesn't appear to work in Crossover, from what I know anyway. It might / should work in Vmware with a compatibility mode but I haven't managed to make this happen.

F.E.A.R -
Due to it's use of .Net, it doesn't load. It won't work in Vmware either because of it's DX9 graphics. Sine it's not a graphics issue, odds of this thing being made compatible in the near future are low.

Rise of Nations - Wine, Vmware
It works in Wine but with some font problems. Works almost perfectly in Vmware though but with minor graphical artefacts. When I tried out the Swiftshader software shaders, all graphical artefacts were fixed. The frame rate dropped to 5-6fps though so that wasn't a solution. Granted, aside from minor irritations the game is playable as is.

Redneck Rampage - Vmware
It works pretty much perfectly under DOS in Vmware, as it would. The only problem is the way it passes signals causes it to be somewhat jerky. Remembering that there's no idle command in DOS.

Galactic Civilizations 2 - Wine
It does somewhat work in Wine, however there are graphics and text problems. More to the point, it eventually crashes with an out of memory error.

Silent Hill 3 -
It starts in Vmware and doesn't appear to need pixel shaders. Unfortunately, it doesn't work. Apparently it calls functions that are not otherwise implemented properly, running the game in Vmware results in the sound playing and it reacts to button presses, but the screen is completely blank. Although I haven't tested silent hill 4 yet, I suspect I'll encounter the same problem.

Doom 3 -
This one used to work in Wine. It's interesting because there was quite a bit of back-slapping going on when the demo was found to run without alteration. Unfortunately recent changes appear to have smashed it. It will probably work in Parallels.