I basically started by following this guide: https://wiki.faforever.com/index.php?ti ... hon_client
except I changed things whenever I had to.
I installed Steam with PlayOnMac, which is basically just a wrapper around Wine. Once I had Steam I installed FA in there. At first Steam wouldn't download anything, I had to change it to use different download servers for some reason, using some weird advice I saw on Reddit or something. I don't remember exactly what I had to do here but it was annoying.
I used the original FAF client because I know more about Python than Java, sorry Downlord.
I had to do dumb stuff to get faf-uid working because there isn't a compiled Mac (BSD) client. Specifically, I downloaded the linux faf-uid, then I installed this program called "noah" with homebrew. It is basically Wine for Linux -> BSD. Then I renamed faf-uid to real-faf-uid, and in the place of faf-uid put this script:
- Code: Select all
#!/bin/bash
noah $(dirname "$0")/real-faf-uid "$@"
I don't know if this actually works well or not, so don't blame me if you get autobanned
For the FA directory, I used the directory from the WIne client. PlayOnMac installs everything in "$HOME/Library/PlayOnMac/wineprefix/Steam/drive_c" so look there.
Finally it was really hard to debug why launching FA was working or not working. As such I just gave up and used this as the "exe" in the [wine] section of FA Lobby.ini:
- Code: Select all
[wine]
exe=/Users/nrook/code/faf-client/dumb_wine_shim
Of course dumb_wine_shim is something I wrote myself. It is another dumb script, here is its contents:
- Code: Select all
export WINEPREFIX=/Users/nrook/Library/PlayOnMac/wineprefix/steam
/Users/nrook/Library/PlayOnMac/wine/darwin-x86/3.17/bin/wine "$@" >/Users/nrook/FAForever/logs/winestdout 2>/Users/nrook/FAForever/logs/winestderr
Since it pipes the output of wine, it is way easier trying to figure out why FA decided not to boot than going through forever.log or gamesession.log.
So that is how I got FAF running. Hopefully this is slightly helpful to anyone trying this. It is not supported and will probably break randomly but oh well. I haven't actually played a multi game with it because my network is currently bad, but vs AI worked, and connecting in lobby worked, so it will probably work.