One glaring issue I’ve had since my transition to Linux is video games. Being a Nintendo (consoles) and Sierra (PC) kid, I’ve gravitated to consoles more lately, but the occasional PC game has kept my interest solidly enough to keep Windows around on a spare drive. I tried WineX (CVS) in the past, and had great success with Diablo II, but didn’t bother to try any ‘new’ games with it.
I tend to play LAN-based games of BattleField 1942/Vietnam and the Rainbow Six variety, but since I am bringing my machine to someone’s house to play these, choosing “Windows” in GRUB is no big deal. It’s that whole “rebooting to play at home” part that I didn’t like, plus the waste of space that the XP install took up.
Nowadays, the -only- game installed on the XP partition is City of Heroes. I have some games in Linux, but mostly first person shooters (thanks iD and Epic). The XP install is a bare, firewalled install with a City of Heroes icon in the center of the desktop. It’s basically an impossibility to do anything long term (torrents, other downloads, maintain conversations via AIM, IRC, play music) if I want to play this (incredibly addicting) game. So I reboot, then reboot back. I’m sure many of you Linux gamers out there feel my pain. Plus, I run a dual monitor setup, so it’d be nice if I could have CoH running on one monitor and a slew of other (Linux) apps on the other. Unfortunately, City of Heroes only runs in Windows.
Then I saw the announcement of Cedega, and the support for City of Heroes. To make a long story short (TOO LATE! — blatant Clue reference), I immediately subscribed and downloaded the .deb packages. This is where the the review begins.
I downloaded the Point2Play and Cedega packages, as well as the fontinstaller package. I installed them via the command line (dpkg -i), and it seemed to go nice and quick, no dependency problems. For the record, the machine I am installing these packages on is a P4 2.66GHz, 512MB RAM, SoundBlaster Live, GeForceFX 5600 256MB dual monitor setup (1280x960x2monitors).
I run Point2Play, and it warns me on startup that I might have problems with pthreads because of something to do with my stack size being too small. I didn’t understand the error at first, but I was using a stock Debian kernel, so I didn’t know if there was a option it might have had set improperly. I ignored it temporarily and saw if I could get anything to work otherwise.
I mounted the City of Heroes CD (using the Mount button in Point2Play, very nice), and added the setup.exe to the choices in the menu. When I double clicked it, nothing happened, other than a rather unhelpful cedega syntax prompt in the terminal. Apparently the warning that Point2Play had earlier has snapped back in my face. I fought with it for a while, and prematurely (and incorrectly) blamed Point2Play for the issue. I uninstalled Point2Play.
Then I realized that I had recently rolled back to the 2.4.26 Debian kernel due to the flaky 2.6.6 IEEE1394 code (my ipod gets transaction timeouts with the 2.6 Debian kernel series, but not in the 2.4.26 kernel). I rebooted my machine into the 2.6.6-2-686 kernel instead. I typed in “cedega /dvd/setup.exe” and the City of Heroes installer appeared!
Looking back, I can say with certainty that my issue with Cedega had nothing to do with Point2Play at all, and that the frontend is actually a nice, simple utility for organizing all of the games. I decided though that I’d be making my own shortcuts/buttons to run individual games directly with Cedega, and had no need for Point2Play. There are one or two other features with it that would have been nice (the update feature and configuration help), but I decided to stick with the Debian packages and command line method.
City of Heroes
Alright, so the installer appears, but all I see the backdrop for the installer. I had read somewhere that this was an issue (installer boxes appearing behind the backdrops), so I took my chances and tried to close the window with Alt+F4 (XFCE4’s close window hotkey). Luckily, the backdrop window closed, but the installer did not! I chose the standard directory, clicked Next a few times, and it displayed a new backdrop, but appeared to do nothing more. The percentage bar wasn’t moving, but I could hear the hard drive and CDROM drive making accesses, and the backdrop was periodically changing, so I let it go. After a minute or two, the percentage bar jumped to 45% or so and requested the second disc.
I popped open another aterm, unmounted the CD, mounted the second disc, and continued. Again, no percentage bar, but I was convinced that it was still going. The installer finished, and I was dropped back to the prompt.
I rummaged through the .transgaming/c_drive directory, and came across the install where it should have been. I typed in “cedega CohUpdater.exe”, and I was in business! The updater window appeared, and while it didn’t display the most recent changes (an embedded IE window when in Win32), it happily downloaded the most recent updates, patched my install, and ran the game.
I ran into a brief problem here, because the game tried to run full screen, and as I mentioned, this is a dual monitor setup. I quit out before logging in, and found the setting to tell Cedega to run in a fake Desktop size (Desktop=1152×864; inside of .transgaming/config). I reran the game, and it put the game inside of a fresh window quite nicely, no problems. I joined my server (Virtue!) and before even playing, I went to the graphics settings and told CoH that I wanted it to run in Windowed mode. This required me to close the program and reopen it.
Mind you, as I was doing all of this, I was completely stunned at how “normal” it felt to be in the game. It looked 100% flawless, and appeared to be just as smooth in a window in Linux as it is full screen in Windows (to my eyes, anyway). It was definitely getting me excited to think that I might not have to restart my machine at home anymore, and that I could continue to run all of my Linux apps, yet mix in a few missions here and there.
I remove the “Desktop” setting in the config, and attempt to run the game using its builtin Windowed mode. It worked perfectly! I could move the window from screen to screen, hide it, put it on another desktop, and my machine seemed to be as snappy as normal. This might be more of a credit to the NVidia XFree driver team, but either way, it was impressive. I could focus the Cedega/CoH window and use the game, then click away and have complete control of other windows. It felt just as native as my UT2004 window.
But how does it play? The first thing I noticed was a gentle feeling of lag. Not in the rendering speed (the frames per second seemed solid), but in the server/client updates. I can tap on the strafe keys (A and D), and my avatar will hop to the left or right, only to pop back into the original place a split second later. The only time this doesn’t happen is if its consistent movement, such as running across a long distance, or strafing a while. To better explain, it seems like the last update of a series of updates just gets … ignored by the server. The server disagrees with the client and my avatar jumps back into the place it was a second ago.
Normally this is attributed to severe network lag, so I checked my DSL (1.5Mbit) connection. This machine was the only one turned on the house, and I had absolutely nothing else running on it. I then blamed the CoH servers for it, but I rebooted into Windows to test. In Windows, there is no lag! I rebooted back and forth a few times, just to be absolutely sure, and I’m convinced it has to do with something on my machine.
Another downside is that the menus are somewhat finicky with where you click them. Sometimes clicking on a menu will result in the floating window jumping to the dead center of the screen, instead of actually just opening the pulldown menu. Being a keyboard fan, I just started using things like “/quit” instead of choosing Quit in the menu. It doesn’t really affect gameplay at all.
As far as sound goes, it sounds perfectly normal using both OSS and ALSA drivers (I rolled to ALSA in a failed attempt to remove the lag), with the only exception being a static noice when typing fast in the chat console. I assume this has something to do with the typing sound effect being stopped and started so abruptly. Turning down the volume in the CoH settings a bit seemed to stop this effect from being so obvious.
I went to the Transgaming forums and found out that I wasn’t the only one that bought Cedega with City of Heroes in mind, but that I was having more luck than others. Others seemed to be having a few problems with cedega bailing out with some DirectX sounding “PMakeCurrent” error, but at least one other in there was up and running and sharing my lag issue. Gavriel States himself replied to my support question about it (very quickly!) and informed me about a potential CDROM polling issue that might be lagging out my machine. The quickfix (until they really correct it) was to comment out all of my CDROM fstab entries. I didn’t think this was going to be the solution (I had removed all discs before playing), but I did it anyway to no avail.
I played anyway, and after a bit I think I just got used to the lagging feel. This game isn’t about reflexes in the degree of milliseconds, but more in the range of “half-a-seconds”, so its not like Quake3 where the game is completely unplayable due to a little lag. I fired up Teamspeak2 next to this window and started playing with some friends. I got a good two hours into the game, no hiccups, no crashes, everything nice and smooth.
So other than this lagging issue (which I’m sure they’re checking into due to the quick response I received) and a few minor glitches (the static sound), it was really, really nice. Perhaps I was still in awe from a programming perspective, but Cedega is truely a feat to have something as complicated as an MMO game to run even half as well as this did in a foreign environment.
Next, I just decided to choose a random older game and install it to see how it’d work. I chose Grim Fandango. This is one that had already been given a decent rating back in WineX, but I wanted to see how well it ran in my dual monitor environment.
I popped the first disc in, mounted it and ran the installer with Cedega. I’m not sure what was with the CoH installer, but this one ran so flawlessly one could confuse it with being in Windows, if it wasn’t for the silly BeOS5 theme I use in XFCE4. The installer completed, and I ran “grimfandango.exe” with cedega. The game started up perfectly (no crashes or bugs), but It changed the resolution on my right monitor to 800×600 and took up the upper left 640×480 of the screen, as well as stealing/hiding my cursor!
Not to let this get to me, I closed the app using my trusty Alt+F4 (thanks, XFCE4, for making a Win32 programmer feel at home) and perused the config file. Again, this step would have probably been easier using Point2Play, but I didn’t feel like having an intermediate step to play these games. I quickly caught onto the Wine configuration technique ([AppDefaults/EXENAME/SUPSECTION]) and added two lines to the grimfandango.exe section I created:
The first line tells Cedega to lie to Grim Fandango and tell it that the desktop is already in 640×480, and secretly just runs it in a Window anyway. The second line denies DirectX from taking the cursor away from me (nice job, Wine/Cedega developers!) I reran the game, and those two settings magically transformed a very fun but machine-stealing program into a friendly windowed application to intermingle with my other Linux apps. Full speed, full sound, no issues to be found.
Cedega 4.0 is a dream come true for PC gamers turned Linux fans. The hype that Transgaming puts out there makes it sound like it will bring Linux into a new era for playing games, and I agree 100%. Of course, this new release has a few issues to iron out, but City of Heroes is a very actively updated and advanced game, and I’ve heard that Star Wars Galaxies and others play with similar results. I want to thank Transgaming for allowing me have my cake and eat it too, running my Linux apps cooperatively with my favorite PC game. With the future games coming up that aren’t native (read: not from iD or Epic), this release of Cedega will fill the gap nicely. I’m certainly going to stick around in the Transgaming community and see how things progress.
If you are a Linux user that is tired of rebooting for those Windows games, this is definitely for you, but you can’t be afraid to help coax Cedega into playing your favorite games just right. I think that it’s going to get better with each release. Thanks, Cedega team!
About the Author:
A little background. I’m a relatively new user of Linux, having only used it for the past two years or so. I am a Win32 network programmer by day, so it wasn’t until recently that I decided to give it a shot at home and fell in love with it. I think that Linux is a great deal of fun for a programmer, and I’ve since been wincing every time I have to sit down at my XP machine at work. I just miss my Debian at home. I don’t claim to be an expert at all, but I feel very comfortable in Debian and at the terminal, and I’m not afraid to get involved with the kernel details and such.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.