[Linux] BMS has started crashing under WINE [SOLVED]
-
Hi folks,
after happily running BMS 64bit for a while on Linux now, the program has started crashing when entering the 2d screen. The launcher still works fine, but after starting and displaying the new “billionsoft” logo (I’ve updated to U4 which also worked fine), wine crashes (backtrace available here: https://zif.gplrank.info/hoover/backtrace.txt).
I’m running version wine64 2.0.3-1~16.04.york0 atm, but I might give the “staging” version a try to see if the situation improves (Linux Mint 18.2).
All the best & TIA for any ideas,
Uwe
PS: I’ve also tried switching to 32bit with the same result (program crashes after displaying the logo for a while).
-
intromovie disabled?
Στάλθηκε από το MI 5 μου χρησιμοποιώντας Tapatalk
-
Yep, did that a while ago when BMS still worked on WINE. Thanks!
Uwe
-
Everything’s dandy again after a recent wine-staging update.
Cheers, Uwe
-
Which version of wine did you end up using?
I’ve tried with 2.22 and 3.3. Launcher works, splash appears then the full screen splash and just after wine crashes.
-
I’m currently on 3.3 (wine-staging on Linux Mint 18.1).
Have you tried running windowed mode?
Cheers, Uwe
-
If window mode is enabled via the Hardware/Cockput displays on external option, that didn’t help. Also tried 3.4 which appeared in PlayOnLinux today. The error I’m seeing appears to be different to the one you have though
Backtrace: =>0 0x000000000455eefc
Effect::loadEffectFromFile+0x14c(effectFilename=0x23e940, pEffect=0x5030d00, filename=“???x?..”, fxoFilename=“???..”, pCompilationErrors=0x6572) in falcon bms (0x000000001e994970) 1 0x000000000455ed73 Effect::OnDeviceRestore+0x42(this=0x119e10) in falcon bms (0x000000000023ea70) 2 0x000000000453dc59 TreeInstancing::OnDeviceRestore+0xa8(this=0x886a0, filename=“??..”, pIndices=“?”, pVert=0x3, pVert=0x3) in falcon bms (0x000000000023ea70) 3 0x000000000c8123a0 in falcon bms (+0x83a239f) (0x0000000000000000)
0x000000000455eefc Effect::loadEffectFromFile+0x14c in falcon bms: movq (%rcx),%rax
-
If window mode is enabled via the Hardware/Cockput displays on external option, that didn’t help. Also tried 3.4 which appeared in PlayOnLinux today. The error I’m seeing appears to be different to the one you have though
Backtrace: =>0 0x000000000455eefc
Effect::loadEffectFromFile+0x14c(effectFilename=0x23e940, pEffect=0x5030d00, filename=“???x?..”, fxoFilename=“???..”, pCompilationErrors=0x6572) in falcon bms (0x000000001e994970) 1 0x000000000455ed73 Effect::OnDeviceRestore+0x42(this=0x119e10) in falcon bms (0x000000000023ea70) 2 0x000000000453dc59 TreeInstancing::OnDeviceRestore+0xa8(this=0x886a0, filename=“??..”, pIndices=“?”, pVert=0x3, pVert=0x3) in falcon bms (0x000000000023ea70) 3 0x000000000c8123a0 in falcon bms (+0x83a239f) (0x0000000000000000)
0x000000000455eefc Effect::loadEffectFromFile+0x14c in falcon bms: movq (%rcx),%rax
Bad GPU driver.
-
If anyone else encounters the same issue I ran into, installing the d3dx9 component via playonlinux and running 64bit v3.5 sorts it. I’ll have to have a look into trackir and the Couger now
edit: Noticed in your profile (hoover) you don’t use TrackIR. How about the cougar? I can get falcon (and wine) to pickup most of the joystick, but not the man/rng or ant elev knobs or the cursor.
edit2: Had a little bit of a search and found some information on LinuxTrack which should enable TrackIR to be used in wine games (and Linux).
Also happened upon a linux profile uploader for the Cougar. I’ll give that a go with a copy of my old windows profile later too. Although I’m not sure that’ll solve my issue as iirc the profile helped get the RDR Cursor working, but other axis like Ant Elev should work without. It appears non of the buttons or axis on the throttle are functional except for the throttle axis. Same applies in js-test.
edit3: TrackIR with linuxtrack installed + linuxtrack-wine.exe installed in the wine bottle has trackir working in Falcon4. Just needs configuring a little better axis profile wise
edit4: All fixed. Turned out the Cougar issue was a hardware one. The IDC connector had come loose, reattached it and everything is now working.
Happy Days!
-
Yep, I’m using LinuxTrack as you guessed correctly on the Linux side of things.
Glad to hear you got your issues sorted. I’m not using any sort of profile, just my HOTAS Warthog as 2 separate DX devices.
All the best ,
Uwe
-
I had to upload a profile to my cougar to get the axis set so that the two axis for the RDR Cursor could be configured in BMS. By default it’s set to expose the rudder toe brakes I think.
Also I had to tweak the above cougarProfile util as when you reconnect the cougar it defaults to “default profile” and “button emulation off”. Since I uploaded the dunc_replacement tmj/tmm to allow the wheel brakes to be operated by the Cougar’s paddle, button emulation needed to be on.
I changed it to send “04 02” and “03 03” which avoids re-uploading the profile every connection (as it’s already in the cougar’s flash) and instead activates the existing user profile and enables button emulation.
This is not the same packet sequence windows sends. The full sequence windows used if anyone else runs into this and wants to make a similar change is “04 02” “03 01” “04 01” (sets user mode profile) then “04 02” “03 03” (sets button emulation on). “03 xx” appears to be a bitmask with bit 0 default/user profile and bit 1 emu off/on, so 03 for user + emu on. To turn emu off, however rather than just sending “04 02” “03 xx” it appears windows does “04 02” “07” “03 xx”. Not sure what the 07 signifies as emu off could be inferred from the 03 part. Either way, seems to work.
I’m a little surprised this all works so well. Always thought one day wine would be sufficient to run BMS but I never expected both the Cougar and TrackIR to work too
For what it’s worth display extraction to a 2nd monitor works great too
Oh and one last issue I ran into, in the wine control panel, the Cougar is listed once for “(event)” and once for “(js)”. I disabled the “(js)” one, otherwise pressing a button, e.g trigger, will activate the DX button as well as a LMFD OBS button, quite confusing until I realised what was happening
-
You definitely need to fill me in on how you got display extraction (DE) to work. Which tool are you using? I was hoping I could get YAME64 to run in wine but I didn’t spend much time on it…. any burning hoops you had to jump through to get DE to work?
As for the toebrakes, I think that’s just a naming issue. All you need to do is assign the “toebrake” axes to the radar cursor and it should work normally.
All the best, Uwe
-
if ever you can make this into a tutorial guide please do so… one day i will jump ship to LINUX
-
I’ve been working on just such a tutorial privately for a while now… a google doc called “Project ViperTux”
It’s far from fit for public consumption though at the moment and I’ll need to put some more work into it before releasing it to a wider public.
The majority of BMS stuff already runs very well out of the box on most modern Linuxes, I stopped at DE but falk seems to have sorted that one out as well.
Most of the external tools (wdp, mc, tacview & friends) also run well under wine.
All the best, Uwe
-
For display extraction I had to do a couple of things. I assume these will be similar on regular wine too although I’m not sure how it might differ as I used wine via PlayOnLinux.
In the PlayOnLinux configuration for my Falcon shortcut, there’s a “configure wine” option. On the Graphics tab of that I unticked all 4 windows settings. Next up in Falcon BMS configuration “Hardware/External Displays” I ticked "1. Cockpit Display to External Windows. That in turn forces BMS into window mode. Next up was in the launcher “Cockpit Display Extraction”, select “main” and ensure the rect is 0,0,0,0 Enabled should be ticked and “Borders” should be unticked, that way it will run in a borderless fullscreen mode.
For each of the other “windows” I enabled the window and roughly entered Left and Top values to position them on 2nd display. If you enable border options you’ll have a chance to drag these around a little before unticking that to fix them in place (and fine tuning with the rect text entry fields).
With this setup, when I launch BMS, the main game windows will only take up about 1/2 and 2/3s the horiz/vertical display of your main monitor whilst in the menu system. That gives you the ability to rearrange the external extracted windows. When you launch into the 3d game however, bms will resize to cover your full monitor resolution.
If it helps anyone else, I’ve made a small utility that helps make more use of the Cougar under linux, see this thread for details
PS: In case it matters, I’m running Debian Stretch with XFCE and NVidia 390.48 drivers.
PPS: As I move my MFD monitor below my main monitor for flying, I’ve knocked up a launch script that re-arranges my monitors and enables/disables the correct ones + switches from desktop speakers to headphones and launches the “Controller” exe for the trackir pause/recenter support. It’ll likely need adjusting to match your monitor connection names/layout but in case it’s of use to anyone
#!/bin/bash /usr/bin/xrandr --output DVI-I-1 --primary --mode "1920x1080" /usr/bin/xrandr --output DP-0 --below DVI-I-1 --mode "1920x1080" /usr/bin/xrandr --output HDMI-0 --off # Pulse will usually remember which output you used for each application # If you regularly switch from tv and desktop with the same game, you # may want to disable that and manually select output via script here. # Sound output ## Desktop Headphones/TV Analog (via splitter) /usr/bin/pactl set-card-profile 1 output:analog-stereo+input:analog-stereo sleep 2 # Launch trackir key map & falcon /usr/share/playonlinux/playonlinux --run "F4 BMS Launcher" & /usr/share/playonlinux/playonlinux --run "F4 Controller" sleep 1 # wait for process to end falcon_pid=`pgrep "Falcon BMS"` tail --pid=${falcon_pid} -f /dev/null # You will need to manually close the controller in tasktray to end # Restore desktop (TODO: Should be in an exit trap) echo "Restoring desktop monitor configuration" sleep 2 /usr/bin/xrandr --output DVI-I-1 --primary --mode "1920x1080" /usr/bin/xrandr --output DP-0 --right-of DVI-I-1 --mode "1920x1080" /usr/bin/xrandr --output HDMI-0 --off /usr/bin/pactl set-card-profile 0 output:hdmi-stereo
Attached is a photo of the displays. Worked so well, I’ve ordered a set of the Thrustmaster MFDs to mount on the 2nd monitor
-
Thanks very much for your detailed description, Falk. Gotta love Linux for the scriptability
I have a very similar setup with a spare monitor positioned “under” my main display for use with BMS, and put to the left when not in use. xrandr is a great tool for handling multiple monitor layouts from within a script.
Now the next challenge would be to get YAME64 to work in wine. I’ve been very spoiled by its great functionality and I’d like to avoid reverting to BMS’ native display extraction if possible, but then again I wonder if some form of “inter process communication” is even possible in wine…. like you’d have BMS running in one wine environment and YAME64 (if at all) in another?
Thanks for sharing your script!
All the best, Uwe
-
MFDs arrived. All buttons appear to work by default in BMS with no setup which is nice. Also good to see Thrustmaster added brightness adjust settings via button combinations too rather than requiring the control panel.
Only thing that seems to not be possible atm is setting the four position LEDs on/off. I may look into that and add support to the cougar-util for it. At least as a stop gap solution as at some point it’d be nice to have a control panel based util to change that as well as do manual calibration of the HOTAS itself. No programming util either, but as far as BMS goes, not needed
-
I’m wondering about your playonlinux setup…. are you running TIR and BMS in the same bottle /wine install or are you using separate installations / WINE_PREFIXes for those?
All the best, Uwe
-
I’ve got Falcon BMS installed in its own prefix “falcon4”, then linuxtrack is installed in linux itself (/opt/linuxtrack-0.99.18 plus /opt/linuxtrack).
There’s a single exe “linuxtrack-wine.exe” that I copied (I think linuxtrack attempts to do this itself, but that didn’t work for me) into the C:\ in the “falcon4” prefix and then ran inside the “falcon4” prefix to install that. I assume that’s the go-between for the linux side of the trackir interface and the wine side. I believe you need to run that exe in each prefix you wish to use trackir with, although for me that’s just the “falcon4” one.
Once setup I the newly installed “Controller.exe” from inside the “falcon4” prefix as an extra playonlinux shortcut. That’s the util for setting the F9 and F12 bind to start/stop and recenter. It still says “unknown key” when I configure it, but the keys work after that.
On a related note, I installed weapons delivery planner in its own prefix as it needed a version of .net that only installed into a 32bit prefix. I just added a sym link for the Falcon installation into that prefix and set WDP to use it. Seemed to work fine (not used WDP much yet though to be sure).