Still need to run Windows apps? Have a glass of Wine

avatar

Still need to run Windows apps? Have a glass of Wine

Like a lot of you, I've been keeping two or three separate OS environments on each of my PCs for years. Part of this is a natural result of life as a tech journalist, having to test software and hardware in Windows, Mac OS, and Linux. But these days I spend most of my free time in my Linux partition, thanks in part to a little program called Wine.

Wine is a totally open source rendition of the Windows API, built entirely from non-Microsoft code. But to most Windows applications, it looks just like your favorite version of Windows. This low-profile API lets you install and run just about any Windows programs, including games, so you don't have to drop everything and boot into another partition just to get to them.

Because Wine is simply a software API and not a CPU emulator, it uses very few system resources, leaving your PC running lean and mean. Plus, it lets you choose which version of Windows you'd like it to imitate for your applications, from Vista right on down to Windows 2.0.

Configuring Wine for 3D gaming isn't always straight-forward, because video and audio drivers can be wonky in Linux. But with a little bit of tweaking, you can get just about anything up and running.

6

Comments

+ Add a Comment
avatar

Jipstyle

Actually, Robert, all of the DirectX versions are hardware APIs; DX10 is not the first version to address hardware specifically. The 'DirectX' implies this ... calls are made directly to and from the hardware.

DirectX was developed as a hardware API to allow game developers (and other multimedia applications, of course, but gaming was the impetus) to access hardware directly.

We don't have DX10 capability in Wine yet because it takes a lot of time and a lot of effort for OS programmers to reverse engineer MS' API. MS does not provide the source and does not allow developers to simply wrap their API to allow linux to use it.

If they provided the source, we could quickly write 'nix versions that mirror the official MS versions. They won't do this for reasons that are evident to anyone who has paid attention to MS' business practices.

If they allowed us to wrap their code, we could write a DX10wrapper similar to the ndiswrapper used for wireless cards. Ndiswrapper is a piece of software that is 'wrapped' around Windows driver for a wireless card. The wrapper translates linux hardware requests to the wireless card into 'windows' requests that the driver understands, and it translates the response from the card into something that linux can understand. It is a translator between a windows driver and a linux OS.

A similar wrapper could be written around the DX10 code, but using that DX10 code would infringe on MS' software license. This type of wrapper will never be released by anyone who is unwilling to lose their home to MS in a legal battle that they are bound to lose.

So, we have to wait until clever programmers rewrite a very complex hardware API. As each version of DirectX becomes more complex, this process will take longer and longer.

--Jipstyle

avatar

jayhalloween

ok i may be misinterpreting however, im going to say it none the less in hopes for a reply because this would be totally hilarious if i was correct in thinking.
if you can run apps with wine from win 95 to vista (even though its not a cpu emulator and all that) does that mean you could get a hold of dx10 drivers and play games ment for vista on linux through wine....? im no pro with ubuntu i have installed and messed around with it, but if you can play games for vista
say like.... oh i dont know.... xbox live halo 2 pc version or any of the other soon to be released vista only titles?
if so that would be really really really awesome bipassing and underminding microsucks vista i dont crazy thought and i dont know all the logistcal needs for dx 10 as a communication coding between hardware and game apps under a vista gui but if wine can what? semi emulate vista it could work right? gah im confusing my self now lol

ok who was cooking bacon on my cpu?!

avatar

Robert Strohmeyer

As fun as it would be, you can't make DX10 work through Wine. Wine is an API layer between your Win apps and Linux, acting as a translator for system calls made by the app. DX10 addresses the hardware directly, so it can't work through Wine.

avatar

hackman2007

Wine is a great program, but also remember there are alternatives. If you need to play a certain game on Linux (provided it is supported by Linux) you could always try Cedega.


If you need to run a Windows program also don't forget about VMWare Server, it runs on Linux too. Chances are good that if you can't get the program running in Wine or VMWare then it's not worth running and you should find an alternative.
For wireless network drivers, don't forget about ndiswrapper either. http://ndiswrapper.sourceforge.net/joomla/
avatar

jayhalloween

ok who was cooking bacon on my cpu?!

avatar

jayhalloween

ok who was cooking bacon on my cpu?!

Log in to MaximumPC directly or log in using Facebook

Forgot your username or password?
Click here for help.

Login with Facebook
Log in using Facebook to share comments and articles easily with your Facebook feed.