Lesson Learned, Again

The Linux community has a love-hate relationship with proprietary software, mostly hate. The exception seems to be games: they tend to be a lot more forgiving in that area.

I’ve tried to be more pragmatic about proprietary and commercial software. Back when I had an ESS1371-based sound card and there wasn’t good support, I bought a commercial license for OSS. When I got an Epson Stylus Photo R800 and it wasn’t supported by Gutenprint, I bought a license for TurboPrint. (Best money I ever spent on commercial Linux software, too; it used less ink than the Epson drivers, which is a major plus on that printer!) I use the proprietary nVidia drivers (mainly because I have little choice) and, heck, if I dig through some closets, I can probably find a metal box for the Quake III Arena Linux edition.

One lesson learned from long experience has been to look back to open source to make sure they haven’t caught up with the proprietary solutions yet. With OSS, eventually ALSA caught up. Nowadays, if you’re feeling nostalgic for Quake III Arena, your Linux distribution likely has binaries that will work with the .wad files on the disk.

Wine is one of those projects that constantly amazes and annoys the Linux userbase. One the one hand, it’s a piece of software designed to facilitate running proprietary Windows software on Unix systems. On the other hand…well…it’s an (admittedly incomplete) implementation of Windows. Let that sink in for a bit, because it’s a biggie: it’s an implementation of Windows! Not only that, but it implements DirectX. Considering how different Linux and Windows are, it seems to me like it’s no small feat to build a shell for running PE binaries.

Some brave souls (like me) wanted to ditch Windows and go solely with Linux, but it was rare that games actually worked on the thing. Then along came Transgaming, and later on Codeweavers with Crossover Office and Crossover Games. I have a license to the latter. Recently, Codeweavers merged all their different Crossover products into one base and one (higher) price.

A few months ago I’d been having trouble controlling my stress, and decided to add games to the mix of things I was trying to do to decompress. We have a console, yes, but because I have kids, it’s a Wii. Yeah. Unless you really like playing Wii Tennis or ping-pong…well…Mass Effect had intrigued me when I first heard about it, and I was dying to try it. I went through the WineHQ forums, and found that people were having trouble with it back then. I checked the Crossover forums, and found where someone had it working using a couple of patched DLLs to fix a mouse issue. This worked for a while, but eventually the patch was old enough that it was no longer compatible.

The new version of Crossover is based on Wine 1.4, and a much better release. I had a long standing issue with Mass Effect that, when the window was in focus, the frame rate would be a bout 2-3 FPS. If I ran it in a window and left it unfocused, it ran acceptably fast. On the new version, the framerate issue was fixed, but mouse support was still broken.

I’d like to take a moment to plug PlayOnLinux and Steam Games on Linux. The latter is wonderful; there’s really no sense in buying a game if it won’t work on your platform. I’d looked up Mass Effect on both, and saw claims that people were running it on Wine, no hacks. PlayOnLinux might seem pointless, but it largely automates the process of installing software, and there’s one more feature: it can handle multiple Wine versions. If you come from the Windows world, that doesn’t sound like a big deal, since most software is backwards-compatible, but Windows handles that backwards compatibility in the background, mostly transparently. With Wine, sometimes one code release will fix one problem, but the fix for one thing might break something else. Having multiple Wine versions fixes this.

Anyway…

Out of aggravation, I installed Steam in a separate wineprefix with vanilla Wine, and linked my .gcf and .ncf files into the Steam folder there, and fired up Mass Effect.

It ran flawlessly.

Huh.

The lesson here isn’t that proprietary software is bad; the lesson is that, sometimes, we need to check to make sure the open source solution hasn’t surpassed the commercial version in some way. Crossover and Transgaming are still valuable at times, because they tend to implement calls that mainstream Wine doesn’t have (yet), and tends to be more up-to-date on supporting secret calls for copy protection. In this case, though, just running it on Wine was enough.