My latest endeavor has been trying to get CodeWeaver's Crossover to work well with Apple's Bootcamp. Unfortunately, it has been elusively difficult.
The Situation
The situation is like this: I have my (Windows) games stored on an external hard drive (namely Steam) to be accessed on my Bootcamp partition (for space reasons). This works fine; I boot into Windows, play my games from my external hard drive, and life is good. But booting into Windows every time I want to play a game is a little annoying. It would be nice if I could scarface a little quality to be able to play my games directly from OS X.
A little while ago I got Crossover through some promotional deal. Crossover is supposed to be a good solution to playing games from OS X, so I decided to put it to the test.
I want to try and access my external hard drive games in OS X via Crossover. Simple enough, eh? Well, not so much. I have tried for quite some time, and it's just not working. Maybe it's Steam, maybe it's Crossover, or maybe it's just a little of both; I don't really know.
Inductive Reasoning
Easy Does It
The first thing I tried to do was the most obvious one: simply run Steam from the external hard drive. Unsurprisingly, Steam complained about something and wouldn't work. I was expecting something like this, as Windows has some registry files it likes to play around with. These being on the OS itself, my Wine "bottle" did not have these.
Simple Installation
So, what seems like the next most obvious step? Well, install Steam in Crossover and see if it will work there! So, I did just that. I installed Steam through Crossover and then tried to run again from the external hard drive. Again, nothing but errors happened.
More Complex Installation
Now I'm starting to think that these registry files have something about file system paths in them. When you install something in Windows, they ask you a path of where you want to install it. If this location were to change without the application knowing, this could spell failure for the application. Of course, this depends on how the application functions. I guessed Steam would have this sort of pain in the ass "you can't move our executable" stuff, so I went ahead and tried to trick it.
I'm thinking, "Well, I installed Steam (in Bootcamp) to F:\games\. If I installed it there on Crossover, maybe the paths registries (if there are any) will line up and everything will be golden". I made myself a new bottle, told Crossover there was an F:\ drive, and then proceeded to install Steam on this "F:\ drive". It is important to note that Crossover treats all it's "drives" as merely mount points (or at least thats how I see it). So my C:\ drive is actually a directory called "drive_c", and my F:\ drive is a directory called "drive_f" somewhere on my hard drive. Continuing on, I then tried again to launch the executable from the external hard drive, and it still didn't work. Sadness.
False Hopes
While I was going through Crossover's preferences, I found one that lit up my heart. When you create drives, you can specify where it's "mount point" is (obviously). But what I found out is that you can assign this "mount point" to be anything you desire! This means that I can assign my real, external hard drive directly to my virtual F:\ drive; none of this external folder stuff. So after installing Steam on my fake (local) F:\ drive, I simply redirected the way Crossover sees the F:\ drive: instead of looking at the "drive_f" directory, it now looks at my real, external hard drive. This seemed like the ultimate solution. Crossover and Steam are now both unaware of my attacks; victory is assured...or not.
Turns out that didn't work either. Seeing my perfect plan fail like that showed me that I working on the wrong problem the entire time. The location and interpretation of the executable is not the problem, rather, the actual problem is accessing the external hard drive. It may seem weird, but it's probably the truth. Looking at the previous results makes everything make sense. Further, I have tried other approaches that supports this claim.
Epiphany
I discovered that Steam would only run locally, so I decided to link in the actual game files into the directory. This kind of worked, but Steam gave some sort of message about not being able to write to some file. I tried various methods of linking, but they all turned out in the same way; failure.
Afterward
So what is there to gain from all of this and what do I plan to do about it? Well, I believe since my external hard drive is formatted in NTFS is why I'm getting all of these problems. If it were in something more friendly, like FAT, it might actually work. I encourage one of you to try and see if that works, as I am curious to see if it will. I have read a few posts about Wine and Linux talking about how they just linked the SteamApps folder in and it worked flawlessly. Maybe that would work for me as well if my system had better support for NTFS file manipulation