Okay, so I had this old tower lying around. Its hardware is like an ATI Radeon HD 6750 or something that had no OS on it, it used to be a windows machine but I lost the CD so I wanted to see if I could get it to run StarCraft II under Wine and also use it as a testing bed without fucking my actual main computer up. So I had an old Mint 15 "Olivia" DVD lying around, put it in and tried to install Linux on it:
First obstacle, linux wouldn't install
It would install but it couldn't make a boot sector, that was annoying. So I googled it. It turned out the machine had something called "UEFI" mode which I needed to disable in the BIOS, I have no idea what that is, and I don't care. I disabled it and the install worked flawlessly from that point on. I had Linux Mint 15 "Olivia" on it. Internet worked and all that stuff.
Setting up the system
One of the first things I noticed was that ssh didn't work. ssh is basically a way to access the command line of one device over the network. It just wouldn't run a ssh host, I couldn't log in from my notebook. I like to work from my notebook in my beanie bag so I wanted to log in on that machine from my notebook and do most of the stuff I needed to do via the command line on my notebook. So, my first order of business was getting ssh to work. Well, that wasn't hard, I just had to upgrade the package repos and re-install ssh I guessed? Well, no. The package repos wouldn't update. Because apparently 15 "Olivia" is so goddamn old that all the package repos are now no longer maintained. So I applied a pretty dirty fix. I could ssh from the tower to the notebook but not in reverse so I just copied the package list from the notebook to the tower in reverse and then updated the package manager, I have no idea if you're supposed to ever do this or what the result would be. I did it, it worked, I upgraded the repos and now the tower tells me it's running a Mint 16 "Petra",I don't know if it actually updated or it's just telling me that because I copied the package list. But it works. Then I re-installed the openssh-server package and boom, I could log in from the notebook.
After that I basically installed the fluxbox windows manager in lieu of KDE-Plasma, copied some config files, copied the ~/.profile (your user settings basically) from the notebook and it all more or less worked.
Getting the drivers
Okay, so here I hit a giant fucking wall. I was installing the proprietary nvidia drivers as normal (open source drivers sadly still stuck guys) and nothing seemed to work, like, it was like that thing didn't see my card. I spent like 4 hours in that shit not knowing what the fuck was wrong, it usually just works right. So I eventually just got out of the bag, hopped to the computer itself and opened the graphical driver-manager app to see if it could help me. Oh wait, I don't have nvidia on the tower, I forgot, I had ATI. Click the properietary ATI drivers from the list in the grphical interface and boom. It works, that was dumb.
Well, it worked, sort of. I had the drivers but not GLX, which is like DirectX for Linux. OpenGL for the X server. Turns out that in order to fix that I had to symlink some shared object files around after googling, nothing too hard, so I did that and then that worked too, cool. I could finally get around installing wine.
Also, at some point I realized that my stuff was working if I ran shit as root. And then I remembered I never added myself to the video group... Yeah, you need to be part of a special permissioned group in Linux to be able to access the hardware acceleration. Can you believe you need to be part of the audio group to play sound as well? Typically on a newly installed linux box sound doesn't work before you add yourself to the audio group.
Wine turned out to be a big mess
Wine was constnatly crashing for completely weird reasons. Every time I solved one of the crashes. It came with a new one after that. This probably had something to do with the fact that I was hard-editing my install and making those symlink and moving files around I thought. So I purged all that and installed it again. And wine kept crashing. My god. So finally I was like "Fuck it", I purged the closed source drivers and fell back on the open source ones. Wine worked like a charm, I could easily instal the Battle.net client and StarCraft II from that. I was just fearful of abysmal framerates with the open source drivers. Well, the framerates were awesome, I was clocking in at like 400 fps. Too bad that's only because there weren't any textures, like none. But man was it fast. You could barely make out what was going on, the ground was black. But the framerates were out of this world. I seriously contemplated learning to play like that but no. I wanted to make it work. So I again decided to get back to the proprietary drivers via the package manager and ran into many of the same problems.
The AMD site
I finally had this weird idea. Maybe if I just download the drivers from AMD itself? Maye that will work? So I did and I installed them which was also a much newer version and yeah. Wine suddenly worked without crashing. It loaded battle.net, installed the game and I could play it. At 45-ish fps on low graphics settings. This was not acceptable obviously. Normally I play in windowed mode 150-ish fps on low graphics. Getting 45 fullscreen is pretty awkward. So. I spent the rest of the time optimizing a now working product.
Wine CSMT
I finally decided to try the Wine CSMT patch. There's a lot of talk about how this alternative branch of wine drastically improves performance of some games and StarCraft II is listed amongst them. I never used it on my main machine because I didn't need it and didn't want to fuck stuff up. So I tried to compile it from source and patch it in. It took like 4 hours to compile and it fucked up and I couldn't get it to work and all those registry hacks it said I should apply I had barely an idea what I was doing with them. I don't even know if I was doing it right.
PlayOnLinux
So, finally, I decided to try PlayOnLinux, this is like a graphical tool that automates different wine installs for you. I never really used it because I hate how it's a graphical tool meaning that I can't ssh into it and I dislike how it makes multiple wine installs and needlessly fills your filesystem. But it automates the Wine 1.17.4-CSMT patch for you which is apparently the one you want for StarCraft. So I learnt how to operate it and gave it a bash. I also followed the instructions of installing it in a 32 bit wine version even though the system is 64 bit, apparently that makes the game go faster since StarCraft is 32 bit itself. Meaning I had to re-install and re-download the entire game again. So I finally got that to work and this is where I am now. The game runs at around 120-ish FPS mid game on low settings in windowed mode, I sure I could get more of it with some fiddling but I'm happy with this at the moment as it's highly playable for me and I always play on low.
Also, I'm not seeing a single bug in the game thus far, the game works and looks exactly how you would expect.
Conclusion
I took a good 3 days trying to get this to work. Part of it was just my own stupidity like trying to install nvidia drivers on an ati machine and not getting the latest drivers from the ATI website even though the internet told me so. (often getting the latest doesn't make a difference and it's such a hassle installing things outside of the package manager, like as much as a hassle as on windows). I also took longer than I should have because I refused to use PlayOnLinux for a long time because I hate the way it works. But in the end, it works decently now and there's probably some optimizations I can still do to make it run faster.
Still, the overall point of my old post stays, gaming on linux has its problems, but you can always solve them and get it to work. And yeah, stuff doesn't in general work if you install nvidia drivers on an ATI card.