[UNOFFICIAL] Running BMS on Linux/WINE with opentrack HOWTO
-
@SOBO-87 Hi Sorry for late reply, I think running BMS on SteamDeck should be doable, but it’d be a bit PITA without physical keyboard and may be a challenge for someone with no previous experience with Wine/Proton.
On the news not really related to VR under Linux, I’ve got some good news. Recent Wine/Wine-mono should be able to run BMS ALternative Launcher without installing .Net. Pro of this solution is, we trade yellow background on checkboxes for visible tickmarks. Still it’s unable to detect SteamVR, but otherwise works fine. It’s quite handy to use it to map axis/buttons. Once mapping is done, I reenable VR in Falcon BMS user.cfg using text editor , launch direclty Falcon BMS binary and set it to use BMS-auto.key generated via AL.
Also With Wine 9.4 work on running FoxVox can be restarted. Now at least it shouldn’t crash on startup. I haven’t tested it personally but I’ve seen it fixed in Wine bugreports.
I’m gonna try it once 9.4 lands in Fedora repos. If it’s true then maybe installing MS TTS engine and language would be enough for FoxVox to run. That would be tremendous step forward as voice commands are last vital piece of BMS experience known to be troublesome on Linux. -
More good news today. I’ve tried ALVR build from latest master with fixes for desync in playerspace fix merged. I can clearly say, VR in BMS under Linux is absolutely playable. Framerate is at least as good as under Windows, head movement tracking feels smooth and I couldn’t notice any floatiness or lags.
One downside is, current master is a bit unstable and it takes few restarts of steamvr to get it connected with alvr without crash. -
@Ferde hey, I know this was asked a long time ago, but maybe it is still useful to someone: I run falcon-bms-control server https://kungfoo.github.io/falcon-bms-control/ with no problems under wine, and get MFDs/ICP+DED on my Android tablet.
-
@wsy Oooh… good to know, thanks!
I tried it and got connection but no images on the MFDs and the buttons didn’t work either. If it works for you then it means it’s something I miss in my install.
What method did you use to install BMS?
-
@Ferde weird, are you saying that the server launched and on your android you saw the bezels but no images inside? Did you set g_bExportRTTTextures 1 in falcon config? Also make sure you launch the server and BMS in the same prefix.
I installed BMS using Proton, don’t remember exactly, but I think I used something along the lines of this guide: https://www.reddit.com/r/falconbms/comments/u4olpm/installing_on_linux_via_steam/ and additionally installed dotnet to get AL to work. So far I don’t have any luck with AL with wine-mono.
For buttons, I had trouble only with ICP. Experimentally I found that if I rebind ICP buttons to something like Ctrl-Alt-letter instead of NumPad they work, so if you get an image but buttons don’t work it may be because of a keybind bms-control-server doesn’t like under Wine.
-
@wsy Thanks. Curiosly I have it running without dotnet I thought it might be that.
Last question (I hope): Do you remember which version/s of dotnet you installed? 4.8?
-
@Ferde yep, 4.8. I don’t think dotnet would have anything to do with falcon-bms-control, though, I was just mentioning it to describe my setup.
-
@wsy Thanks. Will make some tries.
-
OK, I spent too many hours trying a new install and several ways of installing dependencies with no joy. If I have dotnet 4.8 neither the alternative launcher or the bms control server work.
Out of hope I’ve tried again my working install and run bms control in another way and this time it worked!!! It happened the same to me that some buttons work and others don’t. I guess this has to do with conflicting shortcuts with Linux? I will try rebinding those controls as you suggested to be sure.
Edit: yes, that was it. After rebinding the buttons that weren’t working I have fully working MFDs
-
@Ferde
BTW Next release of wine-mono should make AL work OOB. it already work on Proton-experimental.
The only remaining issue is, it’s unable to detect SteamVR and so there’s no option shown to enable VR.
Aside from that, it’s perfectly functional. -
@Xeno Good to know. My install works already with mono, although not the launcher boxes.
But that improvement will probably help with weapon delivery planner and helios and, as you mentioned earlier, even voice commands! -
@Ferde OK… this is weird… I now have working checkboxes!
My hypothesis is that I briefly tried wine 9.5 and that maybe installed some mono newer version? Because I’m now back to 7.22
-
I still have no joy (Proton 9 from Gentoo repo, latest wine-mono), get this error when launching AL ootb.
-
@wsy
I suppose Gentoo provides wine-mono 9.0, which predates fixes for few non-implemented functions AL needs.
I’m using proton-experimental provided by Valve and AL works just fine as said abovr. I haven’t really had a chance to try Fedora packages, here wine is stuck at 9.1 and wine-mono at 8.1.
See bugreport: https://bugs.winehq.org/show_bug.cgi?id=56324 -
@Xeno nice, thank you! Checkboxes now work, but BMS does not launch, tough choice Will experiment more.
-
@wsy
Both Wine and Proton still need external d3dx11_43 lib installed. Assuming DXVK is installed that’s last issue for having BMS working OOB under Linux. -
@Xeno you are completely right; just for the record (all this info is already in your posts), here are my steps:
- Install clean wineprefix with Gentoo wine-proton 9;
- Install Falcon 4;
- Install BMS;
At this point AL does not launch. - Update wine-mono with .msi file from the above github link;
AL launches with checkboxes visible; Falcon crashes after the initial splash screen. - Install d3dx11_43;
Falcon launches but the main menu is flickering. - Install dxvk;
Now everything seems to work, including opentrack and falcon-bms-control. Everything needs to be launched with WINEESYNC=1.
I will test more, but currently it seems to me that it runs faster than on my old setup through Steam Proton with an older Proton version and dotnet.
-
Hmm I wonder if that guide could help me get it working on my steamdeck…
-
@SOBO-87
In short yes, assuming you have some experience with Wine/Proton and how prefixes work.
I’ll add more detailed steps once I’ll be able to get back to my gaming PC. -
@SOBO-87
Ok here’s more detailed BMS on Steam/Proton how-to.
Note: under Linux ~/ is equal to your current user home directory, ie /home/<username>- Install Falcon 4.0 from Steam.
- Set Proton-experimental as compatibility layer:
- in Steam/Library rightclick on Falcon 4.0, select properities.
- on ‘Compatibility’ tab check ‘Force the use of a specific Steam Play compatibility tool’
- select ‘Proton Experimental’ from dropdown list.
- Run Falcon 4.0 at least once.
- Open file browser and create anywhere in your home directory a dir where you want to install BMS and dir where BMS installation file gonna be located. . Here I’ll use ~/MySims and ~/SimFiles as example.
- Put Falcon BMS installation files in ~/SimFiles dir.
- Prepare Falcon prefix for BMS : add your sims dir as a drive in Proton, install d3dx11_43:
- launch Protontricks, select “Falcon 4.0: 429530”, click “Ok”, click “Ok” button on all warning windows that will pop up.
- from a list pick “Select default Wine prefix” and click “Ok”
- select “Install Windows DLL lib or component” click “Ok”
- select “d3dx11_43” and click ok to install. Once donw, Protontricks should be back to previous list.
- select “Launch winecfg”, click Ok.
- in ‘Drives" tab click add button to add new drive letter, here I’ll be using E: and F:
Highlight first added drive "E:’, click on ‘Browse’ button and point it to ~/MySims and click “Ok” to confirm. Do the same for second drive added “F:” and point it to ~/SimFiles.
Click "Apply’and ‘Ok’ to confirm changes and close wincfg window - select “launch explorer” and click ‘Ok’
- Install BMS: in open explorer window navigate to F: drive and launch BMS installer. Choose target installation path to anywhere on drive 'E: ', prefferably with no spaces in directory name
Here I used ‘E:\Falcon_BMS_4.37’
Procceed as under windows, there’s no need to add BMS dir to exceptions, nor set firewall rules. Let installer look for updates. It should open windows terminal window. Run updater from commandline. - Create BMS launcher file. Open any text editor and paste there lines below:
#!/bin/bash export WINEFSYNC=1 export STEAM_COMPAT_DATA_PATH="/home/$USERNAME/.local/share/Steam/steamapps/compatdata/429530/" export STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/$USERNAME/.local/share/Steam/" export PROTON_PATH="/home/$USERNAME/.local/share/Steam/steamapps/common/Proton - Experimental" "$PROTON_PATH"/proton run /home/$USERNAME/MySims/Falcon_BMS_4.37/Launcher/FalconBMS_Alternative_Launcher.exe 2>&1
Verify all the paths to files are correct and save text file anywhere in your home dir, here ~/MySims/BMS_proton_launcher.sh is used.
In file browser find your file, right-click on it, select ‘Properities’. On ‘Priviledges’ tab, check ‘allow execution’ and click ‘Ok’
9. Create program shortcut for launcher file:- launch file browser, navigate to ~/MySIms, rightclick anywhere in empty space in files window and select ‘Create new…’ / ‘New applicatiopn shortcut’
- in new shortcut dialog window, on ‘General’ tab, put some any name you like, optionally you can click on the icon button to change shortcut icon. I’m not sure if proton add BMS icons to the system, but you can select ‘All category’ and use ‘search’ to filter icons.,
- on 'Priviledges tab, check ‘Allow execution’
- on ‘Application’ tab, put again any name you like, click ‘Browse’ button to point it to your launcher file, here ~/MySims/BMS_proton_launcher.sh and click ‘Open’ to select target file, then ‘Ok’ to create shortcut.
Copy desktop file to ~/.local/share/applications/ you may also drag shortcut file to Desktop and/or Task manager on the bottom panel. (place where all launched apps are visible)
** Note ~/.local is a hidden dir, assuming SteamOS uses Dolphin as default file browser, you can use ‘Left Alt’ + ‘.’ (dot) combo to toggle ‘show hidden files’
Done.
[EDIT]
BTW this setup should be VR ready, only thing needed is working HMD and manually flipping VR enable option in config files as AL under Linux is unable to detect SteamVR.
Easiest HMDs to get working uner Linux are standalone headsets used with ALVR. Just make sure you have hardware video encoding enabled and run precompiled binaries or even compile latest stable release by yourself. It’s not that difficult and ALVR wiki provides all the info you need.
I have no experience with older SteamVR headsets and Monado/OpenHMD may not be a thing until u4 and migration to OpenXR.