Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Falcon 4.0 (429530) #3991

Open
shawn-eary opened this issue Jun 16, 2020 · 25 comments
Open

Falcon 4.0 (429530) #3991

shawn-eary opened this issue Jun 16, 2020 · 25 comments
Labels
Game compatibility - Unofficial Games not expected to work without issues

Comments

@shawn-eary
Copy link

Compatibility Report

Falcon 4
AppId 429530
https://store.steampowered.com/app/429530/Falcon_40/

System Information

Client Built: Jun 4 2020, at 05:51:20
Steam versions: 1591251555
Steam API: v020
Steam OS version: SteamOS 2.0 update 1:2.195
CPU vendor: GenuineIntel
CPU clock: 3.07 GHz
CPU cores: 6 Cores, 12 Threads
System memory: 23.5 GB
Video card: NVIDIA Corporation GeForce GT 710/PCIe/SSE2
Driver version: 4.6.0 NVIDIA 415.27
Video memory: 1.0 GB
Proton 5.0-9
Sidewinder Precision Pro (Probably First Gen) with Old School Joystick Port Connected to USB Dongle to goes into USB Port. [No I don't have an old school joystick port on the back of an ISA Sound Blaster 16 card, but I am old enough to remember those (smile) - And the Even Better Amiga 500!!!]

I confirm:

  • [X ] that I haven't found an existing compatibility report for this game.
  • [ X] that I have checked whether there are updates for my system available.

Sorry, I'm in MS Windows right now because Steam OS is such a pain to navigate in...

Symptoms

Falcon 4.0 runs much smoother and faster in Steam OS than it does on Windows 10 but... Proton thinks my Rudder Axis is my throttle and it doesn't pick my throttle up at all. So to apply thrust I have to twist my Sidewinder to the left to apply thrust while simultaneously trying to keep what I think are the X and Y axis correct. This is awkward and probably isn't that great for the joystick because it forces me to keep what I think is the Z axis in an awkward position the whole time I'm flying. Meanwhile I have to rudder at all but that's not a big deal. In Windows the rudder is mapped to the twisting of the joystick and the throttle is mapped to the slider wheel at the base of the joystick. In Proton Wine, there is no rudder at all and the throttle is mapped to the twisting of the joystick.

This is frustrating because other wise the game works really well except maybe the movies don't work but that's another matter. Also, I know this is off topic, but I wish someone would stop naming GNU\Linux background drivers daemons. Since we are gong to consider renaming the master branch in Git:
https://www.bbc.com/news/technology-53050955
It would be cool if we could also stop calling background drivers daemons. Even though I am a casual gamer, I am actually VERY afraid of daemons but I still like GNU\LInux.

Reproduction

Go into the joystick calibration area of Falcon 4 while running it in Steam OS on Proton 5.0-9

@kisak-valve kisak-valve added the Game compatibility - Unofficial Games not expected to work without issues label Jun 16, 2020
@kisak-valve kisak-valve changed the title Falcon 4.0 Rudder and Throttle Mapping Busted Microsoft Sidewinder Precision Pro Falcon 4.0 (429530) Jun 16, 2020
@shawn-eary
Copy link
Author

shawn-eary commented Jun 18, 2020

I forgot to mention this may be an issue with GNU\Linux and/or Steam OS rather than Proton. When I originally started the Steams OS version of Descent 3, my banking was mapped to my Sidewinder throttle (but Descent 3 had a way to remap the controller inside the game so I was able to fix the non-proton Steam OS version of Descent 3. Falcon 4 does not have any such option). Descent 3 runs native in Steam OS without proton from my understanding because Inteplay (or whoever) wrote a stand alone version of Descent 3 for GNU\Linux on OpenGL back before Steam existed. I actually hacked the GNU\Linux Joystick driver back then to get around a problem I was temporarily having with the GNU\Linux version of Decent 3.

I really don't want to hack the GNU\LInux Sidewinder driver with Falcon 4 Proton though because hacking the joystick driver could possibly mess up my other Steam OS native games like Overload. Also my driver "hacking" was a long time ago. Thinks may have changed since then and I'm old and don't have as good a memory as I used to.

https://store.steampowered.com/app/273590/Descent_3/

@shawn-eary
Copy link
Author

IRK Overload
https://store.steampowered.com/app/448850/Overload/
worked fine in Steam OS with no remapping of the W (throttle?), X (yoke?), Y (pitch?), Z (rudder?) axis on the Sidewinder that I can remember. Descent 3 for Steam OS worked after remapping the throttle and rudder.

Falcon 4 for Windows when running in Steam OS Proton on a First-Gen Sidewinder Precision Pro had the issue where the rudder is complete gone and the throttle is mapped to the rudder axis. There is unfortunately no "easy" way (that I know of) to remap my First-Gen Sidewinder Precision Pro inside Faclon 4 itself. I actually looked in the games file directory and didn't find anything so I for this to be fixed for me the First Gen Sidewinder Precision-Pro will probably have to be remapped either at the GNU\Linux kernel level or in the Proton\Wine emulation layer. I don't know much of anything about Proton and a very little about GNU\Linux kernel drivers, but I know a "something".

@kisak-valve
Copy link
Member

Falcon BMS VR not working with SteamVR

Issue transferred from #6564.
@SquadFM posted on 2023-02-24T15:11:21:

Compatibility Report

  • Name of the game with compatibility issues: Falcon BMS (a mod for Falcon 4.0)
  • Steam AppID of the game: 429530

System Information

  • GPU: NVIDIA GeForce RTX 2080
  • Driver/LLVM version: nVidia 525.89.02
  • Kernel version: 6.1.12-1-MANJARO
  • Link to full system information report as Gist
  • Proton version: 7.0-6

I confirm:

  • that I haven't found an existing compatibility report for this game.
  • that I have checked whether there are updates for my system available.

Symptoms

Falcon BMS does not start in VR (with SteamVR). It works fine in normal 2D mode.

Reproduction

Falcon BMS is a mod for Falcon 4.0 (AppID 429530) and installs into the path /home/x/.local/share/Steam/steamapps/compatdata/429530/pfx/drive_c/Falcon BMS 4.37/. If needed, here are the Falcon BMS install instructions for Linux: https://github.com/SquadFM/Falcon-4-BMS

Falcon BMS starts in "normal" 2D mode with the command below and runs without issues: STEAM_COMPAT_DATA_PATH="/home/x/.local/share/Steam/steamapps/compatdata/429530/" STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/x/.local/share/Steam/" "/home/x/.local/share/Steam/steamapps/common/Proton 7.0/proton" run "/home/x/.local/share/Steam/steamapps/compatdata/429530/pfx/drive_c/Falcon BMS 4.37/Bin/x64/Falcon BMS.exe"

However, Falcon BMS does not start in VR (Steam is open; tried with SteamVR running and not running before starting the game - neither works). Also, VR is enabled in the game in the config file /home/x/.local/share/Steam/steamapps/compatdata/429530/pfx/drive_c/Falcon BMS 4.37/User/Config/Falcon BMS.cfg where set g_nVRHMD is set to 1. It "just works" under Windows in SteamVR according to other users.

PROTON_LOG=1

The command below only creates the files Falcon BMS_d3d11.log and 'Falcon BMS_dxgi.log', however no file similar to $HOME/steam-$APPID.log.

Command to generate log files: PROTON_LOG=1 STEAM_COMPAT_DATA_PATH="/home/x/.local/share/Steam/steamapps/compatdata/429530/" STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/x/.local/share/Steam/" "/home/x/.local/share/Steam/steamapps/common/Proton 7.0/proton" run "/home/x/.local/share/Steam/steamapps/compatdata/429530/pfx/drive_c/Falcon BMS 4.37/Bin/x64/Falcon BMS.exe"

Falcon BMS_d3d11.log

Falcon BMS_dxgi.log

Less important information:

  • Falcon BMS requires the original Falcon 4.0 installation, which can be found under /home/x/.local/share/Steam/steamapps/common/Falcon 4.0/
  • I tested if other games run in VR via command line. For example, Beat Saber starts and runs in VR with the following command just fine: STEAM_COMPAT_DATA_PATH="/home/x/.local/share/Steam/steamapps/compatdata/620980/" STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/x/.local/share/Steam/" "/home/x/.local/share/Steam/steamapps/common/Proton 7.0/proton" run "/home/x/.local/share/Steam/steamapps/common/Beat Saber/Beat Saber.exe"

@JJones780
Copy link

I'm going to try getting VR working next but in the meantime check out the Steam Launch Option below.
First though, I was able to install BMS (after running Falcon once to get the 429530/pfx dir ) via:

STEAM_COMPAT_DATA_PATH="/media/ssd2/SteamLibrary/steamapps/compatdata/429530/" WINEPREFIX='/media/ssd2/SteamLibrary/steamapps/compatdata/429530/pfx/' wine './Falcon BMS_4.37.3_Full_Setup.exe'

Launch Option Setting to run BMS exe:

Then to run the BMS program I went into the Steam Properties for Falcon4 and set the Launch Option to:

bash -c 'exec "${@/common\/Falcon\ 4.0\/falcon4.exe/compatdata\/429530\/pfx\/drive_c\/Falcon\ BMS\ 4.37\/Launcher.exe}"' -- %command%

which is a neat idea to modify the $@ var by replacing common/Falcon 4.0/falcon4.exe with compatdata/429530/pfx/drive_c/Falcon BMS 4.37/Launcher.exe via bash "${VARIABLE/pattern/replacement}". Thanks to a post I saw by sapphirefragment on reddit.
Both versions of Proton I tried ( via usual Steam settings ) worked (Proton7.0-6 and GE-Proton8-22). Note that initial setup (and switching Proton versions) can take 3+ min to start with no indication of activity.

Seems to work 100% - BMS intro animation worked as well. I've only tested lightly on a few instant flights though.
I was able to re-map my joystick using in-game settings to correct the throttle and rudder problems others noted above.
Now hope we get VR working next...

@XenoPL
Copy link

XenoPL commented Jan 29, 2024

BMS 4.37u3 confirmed working with Proton 8.05 after few tweaks. However there are two issues with new Launcher and I couldn't make VR work.

Tested on self build PC, Ryzen 5600x + Radeon 5700XT + Pico4 VR headset
System: Fedora 39 KDE Wayland session (tried X11 too, makes no difference), kernel-6.6.13, mesa-23.3.3, SteamVR 2.2.3, ALVR 26.0 (both listener and client).

My installation Procedure.

  • In Steam Library rightclick on Falcon 4.0, select Properties, compatibility tab, force using Proton 8.05 version.
  • Install Falcon 4.0, run it once.
  • In Falcon 4.0 Proton prefix
    ~/.local/share/Steam/steamapps/compatdata/429530/pfx/dosdevices/
    Link dirs where my games are installed and installation files are located as "e:" and "f:"
ln -s ~/Steam_Games "e:"
ln -s ~/Game_files "f:"
  • Copy Windows native 32 and 64bit d3dx11_43.dll libs to prefix windows/system32 and windows/syswow64 dirs (I used libs installed via Winetricks in different wine prefix).
  • For convinience, to not type lon lines I've created small batch file that export STEAM_COMPAT_DATA_PATH and STEAM_COMPAT_DATA_CLIENT_PATH variables and executes explorer.exe
#!/bin/bash
export STEAM_COMPAT_DATA_PATH="~/.local/share/Steam/steamapps/compatdata/429530/"
export STEAM_COMPAT_CLIENT_INSTALL_PATH="~/.local/share/Steam/"
~/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run ~/.local/share/Steam/steamapps/compatdata/429530/pfx/drive_c/windows/explorer.exe  

  • Run explorer via above script
  • From explorer run c:\windows\syswow64\winecfg.exe, there add rule for *d3dx11_43.dll libs (Native,buildin)
  • Run BMS 4.37u3 full installator, install game.
  • Add
    set g_nVRHMD 1 // Enables the OpenVR (default 0/false).
    line to Falcon BMS User.cfg located in BMS User\Config dir to enable VR

What works:
Game itself launches properly if game binary is executed directly, sound, input and devices are fine, no problem with starting actual gameplay in non-VR mode: tested both dogfight and training mission.
old launcher should work too ('tho' I didn't test it).
In VR mode UI is displayed in VR headset, sound is properly redirected to VR headset, in actual gameplay headtracking works. VR picture mirrored to regular display shows correctly.

What doesn't work:
In VR mode video data is not send to the headset, display stays blank, stream bitrate is verty low: ~10MBps instead of +100MBps
New game launcher located in BMS Launcher dir on start spits error:
Invalid IL code in Microsoft.DirectX.DirectInput.DeviceInstance:get_ProductName (): IL_000c: stloc.1
and shows blank list of available commands in KEYMAPPING tab.

Once error message window is closed it crashes with another error:

System.NullReferenceException
Object reference not set to an instance of an object

New launcher doesn't show switch to enable VR mode (probably it's unable to detect SteamVR runtime)

Notes:
New launcher works fine under regular wine, once .Net 4.6.2 runtime is installed.
I've tested VR in GoogleEarthVR , installed from Steam, running on Proton 8.05. It displays picture in the headset without any problems.

@JJones780
Copy link

JJones780 commented Jan 29, 2024

I tried VR again. It Works! Well.. enough to tease.. see update.

cd  '/media/ssd2/SteamLibrary/steamapps/compatdata/429530/pfx/drive_c/Falcon BMS 4.37/User/Config/'
echo "set g_nVRHMD 1" >>  'Falcon BMS User.cfg'

Ran Steam, turned on VR
then ran BMS and in the launcher went to

configure -> hardware -> activate  vr support

Applied, ok'd back to launcher and hit launch.
The title screen, intro video and menu screen appear in theatre in the VR headset as well as on my monitor.
Instant Action-> OK...
Wow. VR works! It flashed black instead of freezing when the VR falls behind.. so a decent gpu will help reduce that.
After 20s the flashing became much less. My joystick wasn't recognized though (???) so I could only look out the window..
Very immersive cockpit - can't wait to hop back in to test it later.

Update: It doesn't always get started and I can only fly for about 5 min before it crashes SteamVR. A very cool few minutes once the flashing calms down. The flashing black might not correlate with the frame overruns as I first thought.
Also.. the color bit depth is off... starts low color mode while it's still on the SteamVR mountain range but is ok once the sim starts.

@XenoPL
Copy link

XenoPL commented Jan 30, 2024

Hi jjones, would you be so kind and provide your hardware/software specs? I have similar issue, today running training mission 2 Navigation, I've managed to get VR picture in the headset for brief moment. But no more, it's very random and yep far from stable. Reducing gfx settings, disabling shadows, environment mapping etc... has no effetct. Also I had many crashes/freezes once view switched from UI to 3D world. It seem to be related to GPU power state. If I change power profile to anything but automatic, game has very high chance to freeze or crash.
OTOH I don't think it's due to weak hardware, according to internal BMS frame counter final FPS easily match headset refresh rate, even @90hz.

@JJones780
Copy link

Hi @XenoPL , I had much better luck once I came across the idea to do the exe insertion and let Steam handle everything else. It'll also be easier to get other people going this way at some point.
I've only recently come across
PROTON_DUMP_DEBUG_COMMANDS=1 PROTON_DEBUG_DIR=$HOME %command%
which I'll use to run from command line soon to further investigate but hopefully can stick to using launch options.
I get the same errors as you for the alternate launcher - and like you, ignoring them let me get into the game.
My joystick was fine - had reinstalled so needed to switch to joystick again ( odd that it's not default?).
My setup:
Ryzen 5 5600G with 64GB ram
GPU: Nvidia 3060ti using Driver: 535.86.05
Devuan Daedalus, kernel 6.1.0-17
HTC Vive

@XenoPL
Copy link

XenoPL commented Jan 31, 2024

Thanks for an answer, it provided some important information. First your headset is PCVR type, so I'm assuming no streaming software like ALVR is used,which excludes it as possible cause of the issue. Also mesa drivers are not to blame as you're using NVidia proprietary one. I've reported this issue as a bug against SteamVR for Linux, as it's most likely source of the problem. Lets see if/how they'll pick it up from there. If it's not caused by SteamVR, then Proton/DXVK/OpenVR wrapper would be next in the line.
Feel free to add some comments there.

@JJones780
Copy link

@XenoPL Do you get color fringing effects over the SteamVR mountains before BMS loads? I believe it's a reduced color depth problem issue. Not sure if it's related to our blanking.
I experienced a big hint though.. read on...

I'm getting much better stability using the run script generated by the proton_dump_debug_commands ( but no better hints at issues ).

I flew an instant mission with no flashing after the first 10s. Landed and took off tehn landed hard with no fuel ;)

I noticed there was flashing when the end menu came up after crash-landing the plane ( i.e. press 'E' to exit I think it was - in a simple blue square ).
I wanted to experience the clouds ( after failing a carrier launch ) so I loaded into an IFR-weather tech flight and had an interesting experience.. the flashing was too much but once I got above the clouds it got better. Thinking of the menu I tried looking straight up with no clouds in my vision and the flashing stopped entirely until I looked down again!

So it might be related to overlays and/or "billboards" ( as I noticed the clouds rotated in the way billboards do as used for trees in IL2 :( ). It might be particular to translucency as well.

It's hard to pinpoint if this is a SteamVR, Proton or BMS solvable issue at the moment so I'm hesitant to add it to the bug report right away. I noticed your reddit post.

@XenoPL
Copy link

XenoPL commented Jan 31, 2024

Yep, I've noticed that too, any overlay here causes blank frames, good catch clouds can trigger same effect too. Once I'll find spare moment I'll try set weather to clear sky to get rid of any clouds and retest.
TBF I've got the feeling it's Linux port of SteamVR problem. It's unlikely caused by BMS bug as it works fine on Windows.
Could be Proton/DXVK issue, but then why picture mirrored on screen is correct.
I've already reported that issue, in the end, the worst that can happen is it can be closed as invalid.

[edit]
BTW In my case clouds teory didn't worked, I tried Training Mission #2 where I had some limited success in VR, took Viper to ~40k ft looked up for quite a long, still all I could see is dark grey soup. I'm guessing it might be some timing problem, where final game fps doesn't match headset refresh rate for some reason.
Again anyone who tried BMS in VR under linux plz comment in my bug report.With more info it might be easier to find root cause. 'tho' it also may happen Valve may just put this report on todo someday queue and leave it at that.

@JJones780
Copy link

At least we know it's not the driver as I'm on nvidia and you're on Radeon.
Your reasoning on it more likely being a SteamVR problem makes sense to me.

I wonder if DXVK on windows would produce the same issue?
My color depth issue goes away if I restart SteamVR. I'll give Training Mission #2 a try if I get time later today.

@JJones780
Copy link

JJones780 commented Feb 2, 2024

Training Mission #2 ran very well for me... I could fly through the clouds and flickering was minimal much of the time. A few times I got into bad flicker conditions but it didn't seem to be caused by anything particular in view... not the clouds this time although looking up at blue sky seemed to alleviate the issue as it did before. When hitting escape to bring up the exit my headset went completely grey though ( not black.. greyish green ). I'll post more insights on the bug page.
Additional note: I have to set graphics to windowed. Fullscreen doesn't work.

@XenoPL
Copy link

XenoPL commented Feb 27, 2024

Proton 9.0 beta 11 update made big improvement, blank frames issue is gone regardless of reprojection being on or off or exit menu window being visible.
There's, at least for me, one problem with camera jerky movement, position jitter when player stays still. It's most likely related to massive spikes of latency up to +1000ms/macro stutter every few seconds.

My current rig
hardware: Ryzen5 5600X; MSI B550-A PRO m/b, 16GG DDR4 3733MHz of RAM; RX 6800 GPU, Pico4 HMD.
software: Fedora 39. kernel 6.7.4; mesa 23.3.6; Proton 9.0 beta 11, SteamVR 2.4.1, ALVR 20.6.1

@JJones780
Copy link

Thanks for mentioning Proton beta! I had tried the latest GE-Proton8-32 ( without success) but gave "Proton Experimental" and try and it works much better ( as you said ).

I added a manifest file to get Falcon to show up in the "per-application" video settings of the SteamVR Settings dialog. Maybe it'll be handy at some point.

@XenoPL
Copy link

XenoPL commented Feb 28, 2024

Do you experience any stutters? here goes something weird, I can observe major latency increases, base latency is around 80-100ms, but every few seconds it sharply rises to ~1000ms to the pint picture may freeze for a very brief moment and resets back to ~80. Those spikes cause camera position hiccups/jitter.
But once a blue moon (I think usualy after restart of PC) it can be smooth with latency within 80-120ms and no spikes.

@JJones780
Copy link

JJones780 commented Feb 28, 2024

One thing we may be doing differently...
I've got taskset -c 4-7 %command% in my SteamVR launch options from my Sturmovik Install.
I added taskset -c 10-11 to my Falcon launch options yesterday and that has made it even smoother for me. I still get stutters occasionally depending on mission. I think I read somewhere that BMS is making use of multiple threads so maybe it'd be better with more processor cores than this. Keeping them apart might be the only need.

Edit: changed my taskset to 8-11 and it works very well - after an initial 10 or so seconds of bad jitters it goes silky smooth ;) I'm actually not sure if 8-11 vs 10-11 actually made a difference.

This is now more than playable. Guess I better learn the F-16 weapons system!

My only remaining issue is that now I seem to be getting the low colour effects on every run. I think it was only half the time before??

Update: somehow got a single run with full color range.. and it was a beautiful evening sky. Everything was great.

@XenoPL
Copy link

XenoPL commented Mar 12, 2024

There's one fundamental difference in our setups, you've got PCVR HMD, mine is standalone one. In my case stutter was due to ALVR not handling games that change playerspace well. It caused massive spikes in renderer latency.
There's a fix for that issue merged recently. I gave it a try and took unstable alvr-streamer build for a run. It works pretty well, latency is consistent without major fluctuations, there are no shifts/jumps of whole playerspace, head movement tracking feels smooth. It already provides nice VR experience sans steamvr crashes on connecting to HMD, which should be fixed once ALVR reaches next stable release.

On the sidenote BMS ALternative Launcher works great under latest proton-experimental via build-in mono, no need to install .Net 4.6.x anymore.

@JJones780
Copy link

I wonder if the playerspace changeover issue is where I lose color bitdepth? Sometimes it's fine but more than not it isn't.
I also was abel to use the BMS alternative launcher without any issues but I can't remember if I had to do anything special to get it working.. I don't think I did ( other than setting up to run the executable ).

@XenoPL
Copy link

XenoPL commented Jun 13, 2024

BMS 4.37 update 4 works just fine in pancake mode.
VR got broken, new OpenXR mode seem to fails at xrCreateInstance, no picture in HMD.
I can see message in the BMS logs: OpenXR Exception: XrResult = -51, Origin: xrCreateInstance(&createInfo, &m_instance)
OpenVR mode at least launches in HMD, but 3D world view is distorted, cockpit is fine, but outside world moves with head movement and looks like it's seen trough magnifying glass.

Test run on latest (as of day of the report) Proton Experimental, SteamVR 2.6.2 beta (same on 2.5.5 and latest 2.4) and ALVR 20.8.1.
OS Fedora 40

@kisak-valve
Copy link
Member

Hello @XenoPL, please add PROTON_LOG=1 %command% to the game's launch options and attach the generated $HOME/steam-$APPID.log to this issue report as a file. (Proton logs compress well if needed.)

@XenoPL
Copy link

XenoPL commented Jun 16, 2024

Due to how BMS has to be installed/run I couldn't make proton to dump log in ~/steam-429530.log even with PROTON_LOG=1 exported and added to to execution command as noted in comment #3991 (comment)

stdout and stderr redirected to the file:
FalconBMS.log

@XenoPL
Copy link

XenoPL commented Jun 16, 2024

Distorted picture in OpenVR mode issue reported here: ValveSoftware/SteamVR-for-Linux#714

@XenoPL
Copy link

XenoPL commented Jun 21, 2024

No changes with SteamVR 2.7.1 + latest Proton Experimental.
Also I'm running BMS with proton bare metal messing with containers if that matters.

@XenoPL
Copy link

XenoPL commented Jun 27, 2024

Just for a note SteamVR 2.7.2 update - no changes for both issues.
Tried both on Plasma6/Wayland and Gnome/X11.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Game compatibility - Unofficial Games not expected to work without issues
Projects
None yet
Development

No branches or pull requests

4 participants