Thursday, November 15, 2012

How to install DirectX in Linux using Wine

Would you like to play the latest and greatest Windows games? Sure. In Linux? Sure. Now comes the tricky question, how exactly do you do that? Linux uses OpenGL, whereas most Windows games rely on DirectX. No problem. That's what Wine is made for.
I've mentioned Wine in my Linux gaming mega howto, as one of the tools that allow you to run Windows games in Linux, for whatever reason you may want to do so. The results may vary and may not be perfect, but you can still manage a handsome array of games easily.
What prompted me to try running one of the Windows heavyweight games on Linux was the pure simple hardware limitation. The game in question was Tropico 3, a fabulous dictatorship simulation with some pretty hefty requirements, including 2GB of RAM and at least 256MB Nvidia 6600GT card. As it turns out, my two older Athlons both running Windows and equipped with Nvidia 6600GT and 7600GT cards were not exactly tailored for this game. But if you recall, I've just recently bought myself a shiny new laptop, with the powerful Nvidia 9600GS card with 512MB VRAM. So I figured, what the hell, it's worth a try.
What I did was install DirectX 9.0c in Linux using Wine and then installed Tropico 3. Lo and behold, it works, beautifully. I can play the game with details set to high without any problems or glitches, everything runs smoothly and even the sound quality is great.



In this article, you will learn how to install DirectX using Wine. It's not simple, but it's not difficult either. And then, the world's your oyster. I hope you will enjoy this guide, plus you get a few dandy Tropico 3 screenshots. A full review will come later.
Follow me.

Install Wine

This is simple. Just open the package manager and install the software.

Configure DirectX libraries

This is the most complicated step of all. But do not worry, you get everything, step by step.
Launch Wine configuration. You can either do it via the Application menu in your distro, Wine > Configure Wine or by running winecfg from the command line. Once the main menu opens, click on the Libraries tab.
WINE
This tab allows you to specify the behavior of different DLLs and override the possible defaults. To get DirectX running, you will need a long list of DLLs listed. The first step is to click on the New override dropdown box icon and expand the list. Search for the d3d8 DLL. Once found, click Add.
Choose library
It will be added to the Existing overrides list like this: d3d8 (builtin,native).
This is not what we need. Therefore, you must select the DLL in the list and click Edit. Then, change the configuration to builtin only.
Edit
There's a very long list of DLLs and specifying them manually would be a torture. Luckily, you can hack the Wine registry directly and add the desired overrides as a list into the file, without going through the manual process of specifying each one using the GUI.
To edit the registry, open the file in text editor (e.g. gedit):
gedit ~/.wine/user.reg
In the file, look for the section labeled DllOverrides:
Registry
In this section, you can copy & paste the entire list of DLL overrides required. You can find the entire list in this great article. Copy the entire selection, save the file and exit. The next time you launch Wine configuration, the overrides will be loaded.
Eventually, you'll see something like this:
Libraries
This is the first step. Now, we need to setup some core files.

Setup core files

These files may or may not be required, but it does not hurt to have them anyway. The two files in question are mscoree.dll and streamci.dll. The first is a module containing .NET Framework functions, the second is a library used to install streaming hardware devices.
You can copy these files from your Windows installations, if you have some, or download them from the web. A good online source that offers these file is DLL-files.com.
Download the two files and copy them to the Wine system32 folder.
cp mscoree.dll ~/.wine/drive_c/windows/system32/
cp streamci.dll ~/.wine/drive_c/windows/system32/
The next step is to download the DirectX 9.0c redistributable package.

Download DirectX 9.0c

You need the redistributable package, because the installation won't handle the online installer well. Once the file is downloaded, run the executable with Wine.
wine directx_9c_redist.exe
This will start a wizard, which will ask you to accept the license and extract the files to a folder. Choose any folder and extract the files there.
License
Path

Install DirectX 9.0c

Navigate to the folder and run the actual DirectX setup:
wine dxsetup.exe
Begin install
Ready
The installer should complete without any problems. It will ask you to reboot, but you do not need to do that.

Test DirectX 9.0c

Now, let's test. Go to the system32 folder (inside the .wine folder) and run dxdiag.exe.
wine ~/.wine/drive_c/windows/system32/dxdiag.exe
If everything went as it should, you should have DirectX setup and enabled. You can ignore most of the device and driver information, since we're doing a rather decent hack here.
Good
Display

Setup Direct Music

If you also want to have enhanced sound effects and whatnot, you will need another driver. The file in question is called gm.dls and you can find it listed on several websites, available for download. Again, use discretion when downloading files like this. Make sure they are digitally signed by Microsoft, with the proper size and hash value. Likewise, checking these files against Jotti or VirusTotal may not hurt.
You can find the file here (direct download). Copy the file to system32/drivers:
cp gm.dls ~/.wine/drive_c/windows/system32/drivers/
After doing this, rerun dxdiag and check the Music tab.

Setup additional files

Your games may also require additional DLLs that are not found above. You will discover this only after installing them and running them, which is the step below. If you have already found online references that mention additional DLLs are needed for your games, then you can install them before trying the game, saving yourself time.
For example, Tropico 3 requires d3dx9_41.dll, without which the game start will fail. The above subset includes only d3dx9_24.dll and d3dx9_36.dll, but not the latest one. No worries, head to DLL-files.com and download the missing item(s).

Install and test your games!

Time to try your games. In my case, Tropico 3 installed without any problems, followed by the 1.04 patch, which solves lots of issues in the original game. Starting the game without the d3dx9_41.dll resulted in a failure, but once I copied the missing item into the system32 folder, everything worked fine.
The game runs smoothly even on high level - considering the hacks we just did, this is impressive. The sound quality is great. The game is stable. It's really a pleasure. A real blast!
Image 1
Image 2
Image 3
What more, you can make things faster even more!

Tweaks

Wine prints lots of debugging messages to the console, slowing things down a bit. You can definitely improve the performance by prepending a Wine debug environment variable to the wine command line, allowing yourself even more Frames Per Second (FPS) in your games.
Just run the game executable like this:
WINEDEBUG=-all wine
Example:
WINEDEBUG=-all wine Tropico3.exe

Conclusion

Full Article

Monday, November 5, 2012

CrossOver 11.3 has been released for Linux and MAC

CodeWeavers today released CrossOver 11.3.0 for Linux and Mac this is a service update with many bug fixes and translation updates. CrossOver lets Linux and Mac computer users run many of today's most popular Windows software without the need to duel boot or the need of a Windows license. The full change log for this release is provided below.

About CodeWeavers
Founded in 1996 as a general software consultancy, CodeWeavers focuses on the development of Wine –the core technology found in all of its CrossOver products. The company’s goal is to bring expanded market opportunities for Windows software developers by making it easier, faster and more painless to port Windows software to Linux. CodeWeavers is recognized as a leader in open-source Windows porting technology, and maintains development offices in Minnesota, the United Kingdom and elsewhere around the world. The company is privately held. For more information about CodeWeavers, log on to www.codeweavers.com.


11.3.0 CrossOver XI - November 5, 2012

  • Mac OS X:
    • Complete translations for:
      • Czech,
      • Spanish,
      • Japanese,
      • Polish,
      • Portuguese (Brazil), and
      • Chinese (China).
    • Fix for font rendering in Civilization IV.
  • Linux:
    • Complete translations for:
      • Czech,
      • Spanish,
      • Japanese,
      • Lithuanian,
      • Polish,
      • Portuguese (Brazil),
      • Swedish, and
      • Chinese (China).
    • Fix a bug on Ubuntu 12.04 where Excel files would fail to launch.

    Note to Red Hat Enterprise 5 users: CrossOver 11.3.0 is the last version of CrossOver which will work with RHEL5. The X11 libraries in RHEL5 are sufficiently old that future versions of CrossOver will not work in RHEL5. An upgrade to RHEL6 or newer will be necessary to use future versions of CrossOver. 

Thursday, November 1, 2012

Crossover Mac Review Mac OS X Windows Emulator

I was lucky enough to get my hands on a copy of CodeWeavers flagship product ‘Crossover Mac’ this week. The software is designed to allow applications from other platforms, primarily Windows, to run seamlessly on Mac OS X without the need for emulators or dual booting the computer which requires a restart and wasted hard disk space.
To say that the software achieves this is an understatement to say the least. During the testing of the program, I found all aspects of it to be pretty much flawless.
The first element of the program that needed testing, was naturally the installation and setup. As with the majority of OS X software, installation was simply a process of drag and drop into the applications folder. Registering the software was a breeze too. I simply had to register on the CodeWeavers website and then register the software using the same details.