How to get “Star Wars – The Old Republic” working on OS X Lion with wine

April 3, 2012 by joh

As a big Star Wars fan, i was happy to read about a free test-weekend of the relatively new Star Wars game “The Old Republic” (MMORPG) some weeks ago. Since i’ve got only a Mac with OS X 10.7.3 around and i don’t like booting into Windows with Bootcamp or running it through a VM, i decided to try it with Codeweavers CrossOver.

Unfortunately i failed getting it running with the latest Version and checked the wine-db if it’s running with wine at all. The forum threads around seemed promising about installations in linux with wine, so i decided to try it directly with wine and OS X and got it working after some hours…

Star Wars - The Old Republic on wine

Update / New How-To 12th January 2017

There is a new How-To for SWTOR on Mac OS X 10.12.2 aka macOS Sierra in Combination with Homebrew available here.

Update / New How-To (14th June 2014)

There is a new How-To for SWTOR on Mac OS X 10.9.x aka Mavericks in Combination with Homebrew available here.

Playing games with wine

OS X is “Jar Jar Bings” compared to Windows when it comes to playing new games, but with the power of wine – the force could be with you. The installation of wine on OS X could be painful, if you decide to compile and install everything by hand – If you install a package manger which checks and installs dependencies (apps, libs etc.), the installation of wine could be done within a minimum of costs (except the time for downloading software and installation procedures, which takes a long time in this case).

The following steps were made on OS X 10.7.3, MacPorts 2.0.4 and wine 1.5.1.

Advertisement

Preparation

Xcode Installation

In order to install and run MacPorts, you’ll need to install Apple’s Xcode (you’ll find this in the App Store for free). Depending on your Internet connection, you could get the first cup of coffee now – the download is around 1.5 GB.
Start Xcode after the installation and go to the Menu “Xcode>Preferences” and open the “Download” menu within the new window. Click on “install” at “Command Line Tools” – you will be asked for your Apple Developer ID – don’t worry: if you don’t have one, you could create one in the dialog.


MacPorts Installation (OS X Package Manager)

The installation of the dmg/pkg file failed on my Mac – it stopped at “executing scripts” – so i decided to build it from source:

Here we go, – download the latest Version (2.0.4 at the moment) and store it on your desktop. Open the terminal and move to your desktop with the following commands:

cd
cd Desktop

Now extract the downloaded package:

tar xfzv MacPorts-2.0.4.tar

And move to the extracted folder:

cd MacPorts-2.0.4

The sources must be configured before you can build and install them:

./configure

You need administrative privileges (with sudo) to get the package build and installed correctly and you’ll be prompted for your accounts password:

sudo make
sudo make install

After the installation completes, you should see a message like:

 “Congratulations, you have successfully installed the MacPorts system. To get the Portfiles and update the system, add /opt/local/bin to your PATH and run: sudo port -v selfupdate”

So lets set the path first:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Note: The command above lets you start the command “port” from any path of you system within the terminal. If the command doesn’t work after you closed the current session resp. terminal, check if you’ve got the following lines in your “~/.bash_profile”:

cat ~/.bash_profile

This should show some lines like:

# MacPorts Installer addition on 2012-03-15_at_21:54:01: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.

If the file “.bash_profile” doesn’t exist, you can create it and add the environment variable on the fly (you need to restart the terminal session afterwards):

echo 'export PATH=/opt/local/bin:/opt/local/sbin:$PATH' >>  ~/.bash_profile

Finally we need to update the portage database like the MacPorts installation message told us before:

sudo port -v selfupdate

At this point i noticed a Warning “Warning: xcodebuild exists but failed to execute”. If you get this message too – you need to fix it with executing the following command (thanks to MacPorts “Problem Hotlist“):

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer


Wine Installation

The current version of wine 1.5.1 doesn’t work with “Star Wars: The Old Republic” out of the box (we need a patch). To be able to patch wine from MacPorts, we install “wine-devel” instead of “wine”, so we will get the latest development package of wine which is available on MacPorts and we are able to add own patches. The installation will take a very long time because there are a lot of dependent packages which will be installed automatically (this process took nearly 3 hours on my system – take a nap 😉 )

sudo port configure wine-devel

Note: If you don’t have a registered user-account at “Star Wars: The Old Republic”, it’s a good moment to do the extensive registration now.

After some time my installation was interrupted by an failed build of “xorg-libXcursor”:

:error:build Failed to install xorg-libXcursor
:debug:build can not find channel named “debuglog”

If this problem doesn’t appear at your installation, you can skip the following steps and continue reading at “Patching wine“.

Checking the log which was displayed:

cat /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_xorg-libXcursor/xorg-libXcursor/main.log

told me, there’s a permission problem with the folder “/tmp/library”:

:info:build clang: error: unable to make temporary file: /tmp/library: can’t make unique filename: Permission denied
:info:build clang: error: unable to make temporary file: /tmp/library: can’t make unique filename: Permission denied

In my case the folder existed as “/tmp/Library” without content. I fixed this by renaming the folder, so the  installation process was able to create the folder:

sudo mv /tmp/Library /tmp/Library.old

Continue the installation of wine by executing the installation command again:

sudo port configure wine-devel

Patching wine

You’ll have access to the terminal (command prompt) again after all dependencies are installed and the wine sources are configured. At this point we’ve got wine 1.5.1 sources which need to be patched to get Star Wars working. Go to your /tmp folder and download the patch file (thanks to Carsten Juttner for providing this patch – related thread):

cd /tmp
curl -o patch.diff http://bugs.winehq.org/attachment.cgi?id=39208

We need to apply the downloaded patch now. Go to the wine-devel source folder:

cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_wine-devel/wine-devel/work/wine-1.5.1/

And apply the patch with the following command:

sudo patch -p1 < /tmp/patch.diff

If you’ll get message like:

patching file dlls/ntdll/critsection.c
patching file dlls/ntdll/thread.c

the patch should be applied. We are ready to build and install wine:

sudo port install wine-devel

Testing wine

Let’s try to see if wine is working:

wine control

This will create your configuration directory also (at /Users/%USERNAME%/.wine) and start the wine control panel within X11 (you will see the X11 app which shows our wine desktop). You can close X11 resp. the control panel afterwards.

Winetricks

Winetricks will help us to install necessary software in wine like fonts, directx, codecs etc. The installation of winetricks could be done by MacPort also:

sudo port install winetricks

Execute “winetricks” followed by the name of the package which should be installed. Keep all settings and paths in the installation dialogs as provided to prevent challenging the dark side of the force. Here are the packages which i’ve got installed:

winetricks d3dx9
winetricks physx
winetricks allfonts
winetricks allcodecs
winetricks volnum
winetricks vcrun2008
winetricks dotnet20
winetricks win7

Registry hacks

Start the registry editor with:

wine regedit

and go to the folder “HKEY_CURRENT_USER>Software>Wine>Direct3d” (if the folder doesn’t exist – create it). Check if the keys “UseGLSL” with value “enabled” and “VideoMemorySize” with value “size of your graphic card memory in MB” exist (otherwise create them).

Installing Star Wars – The Old Republic

Go to www.swtor.com and download the webinstaller (SWTOR_setup.exe)

Some notes before you install the game: The game is very big – it needs around 25 GB disk space. If you’ve got not enough space on your partition, you can move the .wine folder to another partition (This is optional. Replace %More Storage% with your partition name):

cd
mv .wine /Volumes/%More Storage%
ln -s /Volumes/%More Storage%/.wine .wine

Time to install “The Old Republic”:

go to the folder where you’ve got downloaded the installer (usually Downloads in your home folder)

cd
cd Downloads

and launch the installer:

wine SWTOR_setup.exe

This will do the basic installation of the “launcher”. After this is done, you need to go to the programs folder and start “launcher.exe”:

cd
cd .wine/harddiskvolume0/Program\ Files/Electronic\ Arts/BioWare/Star\ Wars\ -\ The\ Old\ Republic/
wine launcher.exe

Now you’ll be able to start the installation resp. download of the game files (this will take very long: around 25 GB). After the download is completed, i needed to do one last fix to be able to run the game (thanks to “WIGGMPK” for providing this info – related thread).

cd
cd .wine/harddiskvolume0/Program\ Files/Electronic\ Arts/BioWare/Star\ Wars\ -\ The\ Old\ Republic/swtor/retailclient/LoadingScreens/
mv LoadingIconAnim.dds.jpg LoadingIconAnim.dds.jpg.old
mv LoadingScreen.jpg LoadingScreen.jpg.old

That’s it. You can now start the game from the launcher:

cd
cd .wine/harddiskvolume0/Program\ Files/Electronic\ Arts/BioWare/Star\ Wars\ -\ The\ Old\ Republic/
wine launcher.exe

May the force be with you.

 

Advertisement
  • Christopher Poynton

    This tutorial was great for getting wine installed. 

    However, after renaming the loading screen pictures, the game still will not load (instead of getting a loading screen that hangs i just get a black screen)

    Did this happen to you? 
    If not, where did I go wrong?

    • joh

      Thanks for replying to this tutorial. I’m sorry – but i’ve got no longer access to the game since my test-account is already expired, so i’ll not be able to test this on my system any longer…

      The points to get around the black screen were:
      -It didn’t work without patching wine – Did you apply the patch?
      -Did you set “UseGLSL” to “enabled” in the registry?

      I also saw it could take now 17-25min till the menus appear with the latest SWTOR and wine version (that’s not nice):
      http://appdb.winehq.org/objectManager.php?sClass=version&iId=25753
      -How long did you wait?

      If you don’t want to spend more time in trying around with this, also Codeweavers “Crossover” is now ready to get it running:
      http://www.codeweavers.com/compatibility/browse/name/?app_id=7626

      It would be nice if you let me know if you got it working

      Thanks and Good luck 😉 

  • Pingback: Best MMO experience?()

  • Cal

    For the ./configure part,

    It’s working, up until I get a configuration error like this:

    error: Can’t find Tcl configuration definitions

    Is this normal?

    • Cal

      Never mind, figured out the problem

  • Rayman1046

    I get stuck after the wine SWTOR_setup.exe for some reason after that command when i go to do the next part it says it cant find the files. anyone able to help? or direct me to a video please

    • Rayman1046

      I GOT IT TO WORK T-T i am so happy right now 😀
      it was a weird thing on my file setup so that it was referencing the wrong files
      but i fixed it 😀

      • joh

        Thanks for your feedback 😉 . I think meanwhile “brew” would be the better way to install stuff like wine – i’ll think about writing a new tutorial with brew and wine – stay tuned 🙂

        • Saelengil

          Ooh! Definitely would love a homebrew tutorial.

      • Rayman1046

        Im running into trouble again i had to reset my computer to get it working again and i cant remember what i did to fix this xd but even when i got the launcher working it couldnt download the game said something about a unspecific error and to try the patch agian joh if u could help with some sort of video tutorial or pointing me in the direction of some help i would appricieate it 😀

        • joh

          Hey Ray, … I’m running also into trouble with the Installer / patching … I’m already writing the tutorial but had not enough time to get the game working. The Text Tutorial will follow soon if i get it running – A Video Tutorial was also in my mind but this will need more time since i first have to check which Software and Tools i should use … and maybe i have to find someone who has a nicer voice than mine 😉 … But stay tuned … 😉 . Your could still give Codeweavers Crossover a try – they marked the game as “bronze” which means it should be playable…

  • Saelengil

    Do you know if this works with Mac OS X 10.9?

    • joh

      i dunno at the moment – i’m currently working on a tutorial with “brew.sh” – it will be here soon 😉

      • Saelengil

        Yeah, I tried it with MacPorts and it had issues on Mac OS X 10.9… I think because some of the default file names changed or something like that.

        I like Homebrew better anyways… I’m excited for that tutorial!

  • Pingback: How to get “Star Wars – The Old Republic” (SWTOR) working on OS X 10.9 Mavericks with wine – techboxed.com()

  • joh
  • bendbanks

    Hello, I’ve been able to get all the way through the launcher and now just seem to have an issue with patching. It seems to hang, any thoughts.

    Waiting for swtor…

    Using native override for following DLLs: msvcp90

    Executing winetricks_early_wine regedit C:windowsTemp_nativeoverride-dll.reg

    Executing w_do_call d3dx9_36

    d3dx9_36 already installed, skipping

    Executing w_do_call vcrun2008

    vcrun2008 already installed, skipping

    Executing w_do_call msls31

    msls31 already installed, skipping

    Executing w_do_call winhttp

    winhttp already installed, skipping

    [0623/134249:ERROR:network_change_notifier_win.cc(111)] WSALookupServiceBegin failed with: 8

    [0623/134249:ERROR:proxy_config_service_win.cc(159)] WinHttpGetIEProxyConfigForCurrentUser failed: 2

    [0623/134310:ERROR:proxy_config_service_win.cc(159)] WinHttpGetIEProxyConfigForCurrentUser failed: 2

    [0623/134311:ERROR:network_change_notifier_win.cc(111)] WSALookupServiceBegin failed with: 8

    [0623/134311:ERROR:network_change_notifier_win.cc(111)] WSALookupServiceBegin failed with: 8

    wine client error:5e4: pipe: Too many open files in system

    wine client error:5e6: pipe: Too many open files in system

    wine client error:5e7: pipe: Too many open files in system

    [0623/134326:ERROR:proxy_config_service_win.cc(159)] WinHttpGetIEProxyConfigForCurrentUser failed: 2

    Protocol error: process 002c: recvmsg: Message too long

    • bendbanks

      ignore figured it out thanks for a great post to been really helpful