ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
24.4k stars 1.07k forks source link

IL-2 Sturmovik: Battle of Stalingrad (307960) #3106

Open ambrop72 opened 5 years ago

ambrop72 commented 5 years ago

Compatibility Report

System Information

I confirm:

Symptoms

Occasionally the game does not start at all and Steam says it's running until ~2 minutes later when it finally understands it's not running. In this state I see wine processes (wineserver, winedevice) but not the game executable (IL-2.exe). And occasionally my system completely freezes when the game is starting just as the black window appears.

Most of the time the game starts fine. The mouse is jerky but that's a cosmetic issue. I try to start a a single mission, it gets all up to when the loading is done, then I press Start, and the game crashes.

The backtrace is seen in the attached log steam-307960.log. I have determined that it is crashing because the game calls strlwr on a read-only string "idle", and the Wine implementation tries to write into read-only memory. Using vanilla Wine (Steam running in Wine, not Proton), I was able to work around this issue by patching Wine like this:

--- a/dlls/msvcrt/string.c
+++ b/dlls/msvcrt/string.c
@@ -79,7 +79,10 @@ int CDECL MSVCRT__strlwr_s_l(char *str, MSVCRT_size_t len, MSVCRT__locale_t loca

     while (*str)
     {
-        *str = MSVCRT__tolower_l((unsigned char)*str, locale);
+        char lowered = MSVCRT__tolower_l((unsigned char)*str, locale);
+        if (*str != lowered) {
+            *str = lowered;
+        }
         str++;
     }

With this the gameplay started, but there was an error about failing to run the LogParser which I fixed using winetricks dotnet35sp1 (I don't know if that would be needed with Proton).

Reproduction

Install the game, start it and try a single mission.

aeikum commented 4 years ago

A fix for this crash is included in Proton 4.11-10.

kedodrill commented 4 years ago

This game seems to work fine now, but I am unable to "Finish" missions. I will try the dotnet35sp1 wine trick, but I'm dropping my current debug log here for an updated vanilla version of this game.

steam-307960.log

kedodrill commented 4 years ago

@kisak-valve I used protontricks to install dotnet40. dotnet35sp1 failed to install for me. I am still getting the log parser error, but this time it won't even return me to the main menu when clicking 'Finish'. It just hangs and brings the view out.

Honestly I'm just super happy this game is running at all. Even multiplayer works. Hopefully it gets to a more playable state with save games and such.

kedodrill commented 4 years ago

Edit: It appears as if anything under dotnet40 (dotnet35sp1 is what we need...) will not install because Steam Proton is using a 64-bit prefix. Someone under the username of Nick at this IL2 thread has written a bash script to recompile the LogParser against Dot Net 4. However, this script only works for a Wine installation of IL2 BoS. See below for more details.

Some good news here, I am currently working on a CLI app (first draft here) in order to fix the LogParser errors. It is based off of my edit of Nick's recompile-lparser bash script (which is used for a Wine install of BoS).

My edit of the bash script is good to go, as long as you manually set the paths. I figured I'd take the opportunity to learn Rust and create a neat little CLI app that will help people that want to play this game.

kedodrill commented 4 years ago

Steam Proton 4.11-12 fixes the mouse issues in this game, resulting in less crashes for me. Before, the mouse was quite jittery. As there are different IL-2 Sturmovik games, I figured I'd point that out.

Super happy to see official work being done on this game :)

kisak-valve commented 4 years ago

IL-2 Sturmovik: Battle of Kuban (629700)

Issue transferred from https://github.com/ValveSoftware/Proton/issues/3452. @mimattr posted on 2020-01-26T16:48:51:

Compatibility Report

System Information

I confirm:

Symptoms

Further to #3106 it appears the various DLC for IL-2 Sturmovik also require .NET 4.0 "PresentationFramework" otherwise the application will fail to launch: (Proton log)

[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.

Reproduction

  1. Select the title within your Library using the Steam client and press the Play button
kedodrill commented 4 years ago

Alright, I archived my Rust implementation of the bash script because I'm not longer running this game on Linux. It works great, and is basically perfect when using the bash script, but SteamVR for Linux is just not quite there yet - after experiencing this in VR, I can't go back to a hat switch.

https://gist.github.com/kedodrill/12449d5d6e7ae5b00b206a9e56c94add

Use this bash script and set the values above in order to get the game to save correctly. Everything but VR is perfect. VR just suffers a lot from performance and makes me dizzy sometimes. Not a great experience in VR on Linux.

UPDATE: This game doesn't run well in VR on Windows, either. It does run perfectly in 2D on Linux and Windows. It added support for VR later, so that could very well be the main issue.

LevitatingBusinessMan commented 4 years ago

I am just getting a black screen. Has anyone encountered that before?

I can only hear some audio in the background and that's it.

Edit: I was just about to link my logs so I launched the game again and guess what, it worked!

Edit: So the mouse would stop moving after 2 seconds or so, so I restarted the game and I am back to getting black screens.

Edit: When I wait a while eventually I can see a super small part of the screen display something, just in the top-left of the window. I am using i3. It happens at around the time when loud music starts playing.

Edit: I just had to change the windowing method.

mimattr commented 3 years ago

@ambrop72 @kedodrill @LevitatingBusinessMan This application now appears to work as expected with Proton 5.13-2 and SteamVR 1.15.11, can you confirm?

System Information

LevitatingBusinessMan commented 3 years ago

@mimattr It has always worked, I mentioned me getting it to work in my edits. The only thing I needed was some luck, and changing the windowing method in i3.

DanielKinsman commented 2 years ago

This game is problematic in that it has a lot of other executables that just get plonked in the bin directory that have no way of being run via proton:

In addition to that, because proton games are run inside pressure vessel containers there is no way of getting a headtracker like opentrack to communicate with the main process. People have tried PRESSURE_VESSEL_SHELL=instead to make it work, but I have just resorted to running all of steam inside wine (via lutris steam wine runner) and running the windows version of opentrack inside the same wine prefix.

Has anyone been able to get server hosting to work? (dserver or multiplayer menu)

Multiplayer hosting in-game partially works for me, but as mentioned this is not using proton but plain old wine via lutris. Small co-op missions (2 player planes max) generated with easy mission generator can load. Anything more than that and my friend can't connect to the server (get 10009 error code). DServer doesn't run at all. This may just be a game bug though and not a wine/proton one.

kisak-valve commented 2 years ago

IL-2 Sturmovik: Battle of Stalingrad (307960) - D3D_Error - Failed to open texture

Issue transferred from https://github.com/ValveSoftware/Proton/issues/5893. @SquadFM posted on 2022-06-10T19:02:31:

Compatibility Report

System Information

I confirm:

Symptoms

D3D_ERROR
Failed to open texture 'GRAPHICS\TEXTURES\\DEFWHITE.BMP'
E_INVALIDARG (0x80070057)

Reproduction

Reports in Forums

steam-307960.log

jtbg commented 2 years ago

I took the opportunity to finally get around to replacing my SSD today, so I have a completely stock installation of Pop_OS. From that stock install:

  1. install the steam deb
  2. Start steam, and enable Steam Play
  3. Navigate to my library and install IL-2 (Steam AppID 307960) Proton Experimental, Steam Linux Runtime - Soldier Steamworks Common Redistributables are automatically installed as well
  4. Restart Steam and attempt to launch IL-2
  5. observe the GRAPHICS\TEXTURE error (⚠️stock_pop_steam_il2.log for the full logs via script)
  6. Install protontricks via sudo apt install protontricks WINE and a ton of supporting libraries are automatically installed as well
  7. Install some potential fixes via protontricks 307960 d3dcompiler_43 d3dcompiler_47 d3dx11_43
  8. Start steam and attempt to launch IL-2
  9. observe the same GRAPHICS\TEXTURE error (⚠️protontircks_pop_steam_il2.log)

This is a bit closer to the metal than anything I'm confident in, but I think this looks like a 64bit object that is being sent to a 32bit library?

Register dump:
 rip:0000000000977c7b rsp:000000000011dc90 rbp:000000000011dd90 eflags:00010297 (  R- --  I S -A-P-C)
 rax:0000000000000000 rbx:00000000ffffffff rcx:0000000000000000 rdx:0000000000000000
 rsi:0000000000000001 rdi:ffffffffffffffff  r8:0000000000000000  r9:0000000000000000 r10:0000000000000008
 r11:0000000000000293 r12:00000000069f01b0 r13:0000000000000000 r14:00000000069f01b8 r15:0000000000000000
Stack dump:
0x000000000011dc90:  00000000069e0b50 00000000069f0230
0x000000000011dca0:  000000000011dd90 000000000011dd38
0x000000000011dcb0:  00000000ffffffff 000000000011dd00
0x000000000011dcc0:  000000000011dd10 000000000011dd40
0x000000000011dcd0:  00000000c0000017 000000017002acc0
0x000000000011dce0:  000000000011de30 0000000000000000
0x000000000011dcf0:  000000000000ffff 0000000000386790
0x000000000011dd00:  0000000000000000 00000000069f01e0
0x000000000011dd10:  0000000000000001 00000000069f0230
0x000000000011dd20:  00000000069f01b8 00000000069f01b0
0x000000000011dd30:  01d878a3072c8fbd fffffffffffffffe
0x000000000011dd40:  0000000200000002 0000000100000001
Backtrace:
=>0 0x0000000000977c7b ??0DXBufferMan11@RendAPI@@QEAA@AEBV01@@Z+0x20feb() in dxbackend11 (0x000000000011dd90)
  1 0x000000000097720a ??0DXBufferMan11@RendAPI@@QEAA@AEBV01@@Z+0x2057a() in dxbackend11 (0x00000000000002d0)
  2 0x00000000009675f0 ??0DXBufferMan11@RendAPI@@QEAA@AEBV01@@Z+0x10960() in dxbackend11 (0x00000000000002d0)
  3 0x0000000140219040 ??0System@Scaleform@@QEAA@AEBUHeapDesc@MemoryHeap@1@PEAVSysAllocBase@1@@Z+0x4b430() in il-2 (0x000000000011e7d0)
  4 0x0000000140258b67 ??0System@Scaleform@@QEAA@AEBUHeapDesc@MemoryHeap@1@PEAVSysAllocBase@1@@Z+0x8af57() in il-2 (0x000000000011f0a8)
  5 0x000000023d8b9785 AdjustWindowRect+0x309e5() in user32 (0x000000000011f0a8)
  6 0x000000023d8bb9c9 AdjustWindowRect+0x32c29() in user32 (0x0000000000000000)
  7 0x000000023d883c81 AppendMenuA+0xf471() in user32 (0x0000000000000000)
  8 0x0000000140257a59 ??0System@Scaleform@@QEAA@AEBUHeapDesc@MemoryHeap@1@PEAVSysAllocBase@1@@Z+0x89e49() in il-2 (0x0000000000000000)
  9 0x000000014025912f ??0System@Scaleform@@QEAA@AEBUHeapDesc@MemoryHeap@1@PEAVSysAllocBase@1@@Z+0x8b51f() in il-2 (0x0000000140000000)
  10 0x0000000140b4f9b2 ??0System@Scaleform@@QEAA@AEBUHeapDesc@MemoryHeap@1@PEAVSysAllocBase@1@@Z+0x981da2() in il-2 (0x0000000000000000)
  11 0x000000007b62c9e9 ActivateActCtx+0x20da5() in kernel32 (0x0000000000000000)
  12 0x000000017005f507 A_SHAFinal+0x3c987() in ntdll (0x0000000000000000)
0x0000000000977c7b dxbackend11+0x27c7b: movq    (%rcx),%rax
acebone commented 2 years ago

"D3D_ERROR Failed to open texture 'GRAPHICS\TEXTURES\DEFWHITE.BMP' E_INVALIDARG (0x80070057)"

I am suffering the same problem

When trying to install protontricks fixes protontricks 307960 d3dcompiler_43 d3dcompiler_47 d3dx11_43 - it warns my that my prefix is 64-bit, and that I should try a 32-bit prefix instead. However I don't know how to do that. The error persists after installation of protontricks

I must admit I get confused by Github. Is this bug under investigation or what?

(I'll be glad to post relevant diagnostic output, not sure where or how to start though)

I tried loading 'DEFWHITE.BMP' into gimp and export as BMP. That got rid of the first errormessage. The game will load - but it will throw the same error for a bunch of other files. I could even load a quick-mission, with even more errors of the same type, but the loading-screen got stuck. Now that 'DEFWHITE.BMP' is no longer a problematic file, the next problematic file is called DUDV.dds - but the odd thing is that I haven't got such a file on my system.

digitaltrails commented 2 years ago

I too managed to get past the DEFWHITE.BMP error. I also used the gimp. The original BMP file had a 24 bit type:

% file defWhile.bmp
defWhite.bmp.orig: PC bitmap, Windows 3.x format, 2 x 2 x 24, image size 16, cbSize 70, bits offset 54

I loaded it into gimp and exported it as a 32 bit bmp:

% file defWhile.bmp
defWhite.bmp: PC bitmap, Windows 98/2000 and newer format, 2 x 2 x 32, cbSize 154, bits offset 138

So it seems proton is having problems when it tries to read a bmp that is only 24 bit - just saving from gimp back to 24 bit did not work when I tried that.

Now the game does not complain about DEFWHITE.BMP, but it still does not run. Now it pops up a series of dialogs complaining about textures: Failed to open texture 'GRAPHICS\GRASS\TEXTURES\DUDV.dds - similarly MOON2.dds, SUN.BMP, SUNGLOW.dds, LENS.BMP, DEFNOISE.dds, RAINDROPEFF.dds, RAINDROPEFF2.dds, TRAIL_NORMAL.BMP, ... (about 10 files). These files are inside .gtp files which are some kind of archive/zip/library file used by the game. It's possible that some of the bmp's inside the gtp archives are also 24 bit. The fix may be to correct the ability to load 24 bit bmp's, although it may also be a wider 32/64 bit kind of issue.

VC73 commented 2 years ago

has anyone managed to get it running? sucks since last year this was running pretty well.

alexeijd commented 2 years ago

It's not working on Proton/Steam but is working for me in Lutris with wine version lutris-ge-lol-7.14.1, the installer setup works but Lutris then points it at Program Files (x86) which has to be changed to just Program Files for both exe & working directory

JJones780 commented 2 years ago

I haven't tried it yet... but using unGTP-IL2.zip to expand the data/Graphics1.gtp ( and others?) should go a long ways toward solving this ( maybe with some 24 to 32 bit image conversions as @digitaltrails mentions above.

It took a while to track down a copy but the following page has a link to it: https://www.sas1946.com/main/index.php?topic=58547.0

UPDATE: unGTP-IL2 works. I suspect this is the wrong path though - better off chasing down why it can't load 24 bit image files instead of digging apart the dds files and converting images to 32 bit.

JJones780 commented 1 year ago

On a whim I tried some settings from the DCS World protondb entry. In particular running: protontricks 307960 d3dcompiler_47 and now I am able to hit "ok" ( or use enter or esc key when necessary ) to dismiss the texture loading errors and get to the menu (in VR - although the errors aren't shown there). I am unable however to actually start a mission. It gets stuck at the mission loading screen.

alexeijd commented 1 year ago

I just reinstalled (I had uninstalled a while ago when it stopped working) & just ran protontricks to install d3dcompiler_47 - then I set it to use proton experimental, which I already have set to bleeding edge (so latest dxvk, vkd3d etc) as MSFS needs this right now - and it just worked! I'm able to get into & play quick missions at least.

SquadFM commented 1 year ago

Insane, it works again! Thanks for the heads up guys. As mentioned above, run protontricks and it should work. Runs fine with ProtonGE on my end.

protontricks 307960 d3dcompiler_47

digitaltrails commented 1 year ago

Works for me too. I had previously blown away my install and done a fresh one, which had been sitting there broken. After seeing the recent posts, I updated Proton Experimental, installed protontricks, then ran protontricks 307960 d3dcompiler_47. It seems to be working - I can get in with no errors and start a Quick Mission.

SunnyOd commented 1 year ago

On a whim I tried some settings from the DCS World protondb entry. In particular running: protontricks 307960 d3dcompiler_47 and now I am able to hit "ok" ( or use enter or esc key when necessary ) to dismiss the texture loading errors and get to the menu (in VR - although the errors aren't shown there). I am unable however to actually start a mission. It gets stuck at the mission loading screen.

I have steam and protontricks installed via flatpak on fedora 37, running il-2 Stalingrad with proton experimental. I tried adding protontricks 307960 d3dcompiler_47 and also flatpak run com.github.Matoking.protontricks 307960 d3dcompiler_47 to the launch options but no ball, still kills the app when I press 'ok'. Any idea if I'm doing something wrong?

JJones780 commented 1 year ago

@SunnyOd: protontricks is a wrapper on winetricks for easy use with proton. It is a separate program you need to install and run. See here: https://www.maketecheasier.com/troubleshoot-steam-games-work-linux/

Those who have it working... what version of graphics drivers are you running? I'm on nvidia 470 and I think I need to upgrade >500 ( which is going to be a real pita ). I'm running Devuan and it's not in backports etc etc. Maybe I'll try the latest Stalingrade update before I upgrade my drivers.

SunnyOd commented 1 year ago

@SunnyOd: protontricks is a wrapper on winetricks for easy use with proton. It is a separate program you need to install and run. See here: https://www.maketecheasier.com/troubleshoot-steam-games-work-linux/

Those who have it working... what version of graphics drivers are you running? I'm on nvidia 470 and I think I need to upgrade >500 ( which is going to be a real pita ). I'm running Devuan and it's not in backports etc etc. Maybe I'll try the latest Stalingrade update before I upgrade my drivers.

@JJones780 Thanks. I've installed protontricks for flatpak and enabled it access to my game folders via flatseal. In any case I don't think I'm having the same problem as the starter of this thread so I've opened a new bug report... see here https://github.com/ValveSoftware/Proton/issues/6333

kisak-valve commented 1 year ago

IL-2 Sturmovik: Battle of Stalingrad (307960) "Array size is not a positive integer constant\

Issue transferred from https://github.com/ValveSoftware/Proton/issues/6333. @SunnyOd posted on 2022-11-23T11:37:02:

Compatibility Report

System Information

I confirm:

Symptoms

I'm on Linux (Fedora 37) and have Steam beta installed as a Flatpak.

I've tried starting the game with standard as well as experimental proton. I've also tried using the latest proton-ge.

I found a similar issue here https://github.com/ValveSoftware/Proton/issues/3106 but running it with protontricks launch option "flatpak run com.github.Matoking.protontricks 307960 d3dcompiler_47" didn't fix the issue (after I added my steam game folder to protontricks via flatseal).

I can't find any posts here or anywhere else, including the official forum, with this error.

Reproduction

Launching the game as described above opens the game in a window and within a couple of seconds I'm seeing this error:

Graphics\Shaders\\SysFont\\SysFont.fx:13:20: E5008:
Array size is not a positive integer constant.

steam-307960.log


@JJones780 commented on 2022-11-23T11:51:19:

@SunnyOd (here from issue #3106 ) That looks familiar. I get those errors when I'm using older proton versions. If I use newer proton ( 7+) I don't get those but also can't run the game (I'm using nvidia 470 drivers). I see you have nvidia 520 drivers.. I was hoping that would enable proton 7 or higher to work. Which version of Proton are you trying? Have you tried a "Glorious Eggroll" version (I've got GE-Proton7-37) ? Maybe one of people who have it working will tell us their specifics.


@SunnyOd commented on 2022-11-23T12:11:30:

@JJones780 Yah, i've tried latest proton 7.0.4, proton experimental and also proton-ge, same error. Interesting that you got the same sort of errors before, was that in IL-2 or other games?


@JJones780 commented on 2022-11-23T13:17:27:

Yes, just IL-2 .. but I don't have many games to judge this on. Note that I only get the index and texture errors on Proton 5.10 and 6.xx ( but after the protontricks I can esc past all the error windows and the game starts... but can't get past the hangar scene. Proton 7 and above don't bring up the texture errors but can't start the game at all. I'm not sure what the difference is that allows the other gamers to get going again.

SunnyOd commented 1 year ago

@JJones780 Ta bud. I tried proton 5 and 6 but no ball, it actually got worse, erroring over .dd files (image files I think) and then erroring with my original error after I click past the .dd errors. Tried various old proton-ge's to see if they help but no luck yet

digitaltrails commented 1 year ago

As I previously posted - after following the proton tricks suggestions the game resumed working. What I should also have mentioned, is that I had removed and reinstalled the game from Steam in a previous failed attempt to get it working. Perhaps that helped - I can't rule out that it may be a contributing factor.

digitaltrails commented 1 year ago

@SunnyOd: protontricks is a wrapper on winetricks for easy use with proton. It is a separate program you need to install and run. See here: https://www.maketecheasier.com/troubleshoot-steam-games-work-linux/

Those who have it working... what version of graphics drivers are you running? I'm on nvidia 470 and I think I need to upgrade >500 ( which is going to be a real pita ). I'm running Devuan and it's not in backports etc etc. Maybe I'll try the latest Stalingrade update before I upgrade my drivers.

As it happens I had moved from the 400 to 500 driver for other reasons. So that move may have helped, but I can't really say for sure.

SunnyOd commented 1 year ago

@digitaltrails Thanks. I tried to reinstall the game seems i got the same issue still. Flatpak is using the latest 500 nvidia drivers too, as well as my system so it's probably not related to that

Your post made me think though, I upgraded from fedora 36 to 37 last week and it broke my Nvidia drivers. I ended up reinstalling them and the system was working fine afterwards (other games are working perfectly). The broken driver issue is the only anomaly I can think of that could cause quirks, but then other games are working great! I'm still stumped!!!

digitaltrails commented 1 year ago

@digitaltrails Thanks. I tried to reinstall the game seems i got the same issue still. Flatpak is using the latest 500 nvidia drivers too, as well as my system so it's probably not related to that

Your post made me think though, I upgraded from fedora 36 to 37 last week and it broke my Nvidia drivers. I ended up reinstalling them and the system was working fine afterwards (other games are working perfectly). The broken driver issue is the only anomaly I can think of that could cause quirks, but then other games are working great! I'm still stumped!!!

This makes me worry about committing to any time to this game. This morning I bought the Normandy DLC, hopefully I will get some play out of it before something else goes bump in the night (I mainly bought it for nostalgic reasons, all those schoolboy Commando WWII comic books).

Just to be clear on what I did. I originally did try and sort the problem by hacking into the offending files. But over time I gave up on hacking and reinstalled the game hoping that might help (it has in the past). Over time I had moved to the 500 driver (currently 525). I kept up with the updates to Steam and the game. All with no progress. Having not done much with it for a while except for applying updates, the protontricks suggestion just kicked everything into life. Quite surprised.

I'm running OpenSUSE Tumbleweed with Tumbleweed's official Steam rpm's, official "easy-way" Nvidia 525 driver, KDE, X11. Hardware is AMD Ryzen 5 5600, Nvidia GTX 1650 Super, Nintendo Switch Pro Controller. It's runs quite sluggishly under KDE, so I login to an openbox session if I want to spend any time in the game.

SunnyOd commented 1 year ago

@digitaltrails TBH, it could very much just be my setup. I'm using i3 with a non-standard config for games and I've not come across this bug anywhere. Would be amazing if the devs could support linux, but given the performance would probably not be great on the steam deck I doubt this will happen soon! I just purchased the game this week in black friday sales, i got it cheap so will hold onto it but no idea how long that may take. I saw someone on the official forums running linux who own all the content lol, i'd be sad If I were them! I'm playing the patient game atm :)

mailhost commented 1 year ago

@SunnyOd It sounds like running protontricks is having no effect on your environment, I suspect likely because of the nuances needed when running things via flatpak. Take a look at the somewhat more involved instructions on using protontricks with flatpak here: https://github.com/flathub/com.github.Matoking.protontricks

Specifically the section under "Configuration":

By default, Protontricks only has access to the Steam installation directory. You will need to add filesystem permissions for additional Steam library locations, and other directories when running external EXEs.

When protontricks runs successfully, you will see some considerable output in the terminal (and if you run it again will see that it is much more abbreviated output, meaning it has already done the necessary work)

(I do not have personal experience with using protontricks/steam via flatpak, so am unable to give more specific guidance)

SunnyOd commented 1 year ago

@mailhost Thanks for the suggestion bud! I think I had that covered already though as I've added 2 of my steam libraries to the protontricks options using FlatSeal (same directories as I had to add to steam flatpak)

SunnyOd commented 1 year ago

Quick update. I just installed an old version from June using steam console and depot and ran it but it came back with exactly the same message as before. I think you may be onto something @mailhost. I'll look into flatpak usage tomorrow and make sure I'm doing things 100% correctly

JJones780 commented 1 year ago

I'm assuming once I get nvidia 5xx drivers installed I'll be able to make this work. Hoping my distro backports soon... Hesitant to upgrade manually.

Edit: Has anyone got it working again with Nvidia 4xx drivers? @SunnyOd how'd flatpack go?

SunnyOd commented 1 year ago

Fingers crossed for ya bud!

SunnyOd commented 1 year ago

@SunnyOd how'd flatpack go?

@JJones780 Sorry missed this. I ended up refunding it. Will have another crack next year when it goes on sale again

digitaltrails commented 1 year ago

A related, but off-topic, followup. Now that I have IL-2 BoX working, I've been trying to set up opentrack for head-tracking. There doesn't appear to be any documented successful attempt to do so inside Linux Steam-Proton with IL-2 BoX. I figured many Linux IL-2 BoX readers must be tracking this thread, so...

If anyone knows how to successfully setup opentrack with IL-2 BoX in Steam+Proton, a link to a howto or some advice would be welcome. In the meantime I did get something working...

Initially I tried to sidestep by using opentrack's virtual evdev joystick output, but had no luck and can find no documented success there either. But I pressed on...

I wrote my own python virtual-joystick UDP-Output for opentrack and can now use opentrack for head-turn, head-tilt, and camera-zoom. I find it usable, better than no-head tracking.

The feed from opentrack comes through every 4 ms, it can be a bit jerky. As well as maxing out opentracks smoothing filters, I fill/interpolate in the gaps and I've implemented a tunable low-pass filter, which could be further tweaked or replaced with some super duper curve smoother (I know next to nothing about smoothing data).

I've had no luck mapping head-move-up/down/sideways - IL-2 BoX doesn't want to map an axis, and doesn't seem to recognise my virtual hat-commands. It may be a timing issue on the hat. It may be that, for some as yet unknown reason, IL-2 BoX isn't picking up the entire set of virtual controls on my virtual-joystick (I strongly suspect that this is the case). It's possible I could introduce a virtual keyboard output as a workaround.

I initially wrote a virtual-mouse, but have since moved on to a virtual-stick, the mouse could be useful for other purposes.

Anyways, if anyone has some info that could help with any approach to head-tracking, that would be good.

DanielKinsman commented 1 year ago

Headtracking via the freetrack protocols doesn't work because stuff inside pressure vessel containers is blocked from this type of inter-process communication with things outside the container (e.g. opentrack running linux natively).

People have reported hacking the startup command to try and launch the windows version of opentrack inside the container as well but this didn't work for me.

To get things working in the past I have resorted resorted to running the windows version of steam via wine, then running two instances of opentrack, one linux native doing the headtracking and using udp/network as the output, then the windows version of opentrack using udp/network as the input and freetrack as the output. It's a real mess.

I'd prob recommend just not using steam at all and porting your content over to the standalone version of il2 and running that via lutris or something.

digitaltrails commented 1 year ago

Headtracking via the freetrack protocols doesn't work because stuff inside pressure vessel containers is blocked from this type of inter-process communication with things outside the container (e.g. opentrack running linux natively).

Oh, so they're not IP protocols, they're using some kind of IPC mechanism.

People have reported hacking the startup command to try and launch the windows version of opentrack inside the container as well but this didn't work for me.

To get things working in the past I have resorted resorted to running the windows version of steam via wine, then running two instances of opentrack, one linux native doing the headtracking and using udp/network as the output, then the windows version of opentrack using udp/network as the input and freetrack as the output. It's a real mess.

A UDP bridge. That's a nice work around. It might be a little messy, but there are not a lot of hoops to jump through. Is it smooth and snappy? I was quite surprised that I had to do some smoothing.

I'd prob recommend just not using steam at all and porting your content over to the standalone version of il2 and running that via lutris or something.

I've read of it running outside of Steam on Linux. I've only a casual interest, and apt to put it down for months at a time, I'm not sure I want to jump through too many hoops. If someone laid out all the steps, perhaps, but perhaps not.

More than IL-2, I kind of got hooked on the playing with evdev, IL-2 kept my interest for a hour or so of flying through mountains, puzzling over trim, engine, rpms and such, but the coding puzzle easily burned through more 40 hours in two weeks.

A UDP-bridge might be the simplest approach - maybe I'll try that. I should stop and think about hardware, I suspect smoothtrack is taking years off of my phone's battery.

Very good info, thanks for sharing.

DanielKinsman commented 1 year ago

I've tried smoothtrack and found on my phone it had a lot of latency purely from the camera side of things, especially using the front facing selfie camera. Just open up your phone's camera app, wave your hand around and see how far behind reality it is. Can be ameliorated somewhat by flooding the area with bright with light to reduce the camera's auto exposure time, but yeah, an IR clip + webcam setup is probably going to be better if you get the right webcam.

digitaltrails commented 1 year ago

I've tried smoothtrack and found on my phone it had a lot of latency purely from the camera side of things, especially using the front facing selfie camera. Just open up your phone's camera app, wave your hand around and see how far behind reality it is. Can be ameliorated somewhat by flooding the area with bright with light to reduce the camera's auto exposure time, but yeah, an IR clip + webcam setup is probably going to be better if you get the right webcam.

This morning I built aitrack-linux, and I dug out an old Logitech webcam. The combo is much better than smoothtrack. I can turn down/off my own smoothing algorithm. I suppose it may have been my WiFi, or my phone, or smoothtrack, but eliminating them all has been is a good move. I'm still using my own code, I implemented an auto-centering when x,y,pitch,yaw are close to zero in my python virtual joystick - that helps quite a bit for recentering after x, y moves as I can only translate them to key-events.

JJones780 commented 1 year ago

I finally justified doing a manual install of the latest drivers ( Nvidia 525.78.01)... and tried this game again. Now I'm getting the same error that @sunnyOd had: the Sysfont "Array size is not a positive integer constant" error.

SunnyOd commented 1 year ago

I finally justified doing a manual install of the latest drivers ( Nvidia 525.78.01)... and tried this game again. Now I'm getting the same error that @SunnyOd had: the Sysfont "Array size is not a positive integer constant" error.

Oh. Looks like its just the two f us so far. Just to add a little bit more info. I did try again over Xmas on my new laptop running fedora KDE. I installed steam package and also flatpak and got the same error. Could be nvidia driver version related, not sure

JJones780 commented 1 year ago

@SunnyOd Got it working!

We are using an old version of d3dcompiler_47 (due to an old version of winetricks). It turns out different versions of winetricks will install different versions of d3dcompiler_47 ! Note: Protontricks is a wrapper on ( i.e. uses) winetricks.

Step 1: update Winetricks:

sudo winetricks --self-update

Step 2: (re)install d3dcompiler_47

There doesn't seem to be a way to remove the already installed d3dcompiler_47 so I used protontricks to install it into another game and then copied it over. Replace XXXXXX with another game id you have installed ( and is not using d3dcompiler yet ). For others who have not yet installed d3dcompiler_47 use 307960 for XXXXXX and skip the copy.

protontricks XXXXXX d3dcompiler_47

cp ~/.steam/debian-installation/steamapps/compatdata/XXXXXX/pfx/drive_c/windows/system32/d3dcompiler_47.dll ~/.steam/debian-installation/steamapps/compatdata/307960/pfx/drive_c/windows/system32/ Note that simply deleting the dll did not allow a reinstall.

Hopefully it works now!

Background:

I noticed in the "PROTON_LOG=1" ~ /steam-307960.log:

d3dcompiler:D3DCompile2 Ignoring flags 0x9400.
fixme:evaluate_array_dimension Unhandled type HLSL_IR_EXPR.
warn:debugstr:OutputDebugStringA "Graphics\\Shaders\\SysFont\\SysFont.fx:\nGraphics\\Shaders\\SysFont\\SysFont.fx:13:20: E5008: Array size is not a positive integer constant.

Where HLSL is the shader code that d3dcompiler compiles.

@kisak-valve How did I miss the need to update winetricks? This might solve a lot of problems elsewhere!? My distro ( devuan and I assume debian as well ) supplies winetricks 20210206-2 which is not good enough.

VC73 commented 1 year ago

I've tried to get opentrack running by using steamtinkerlauncher and launching opentrack windows version setting udp and aitrack linux alongside the game, sadly this doesn't work for some reason even though I can get opentrack windows to recognize aitrack by using system wine without problem, any idea about how to fix this?

SunnyOd commented 1 year ago

Replying to https://github.com/ValveSoftware/Proton/issues/3106#issuecomment-1378553630

Just saw your message.... Oh you Legend you!! I'll wait for the next sale and pick it up again. Thanks for sharing the fix and great work!!

JJones780 commented 1 year ago

@SunnyOd I was wondering where you were ;) This game is .. wow! I grabbed a related game, IL-2 Sturmovik: Cliffs of Dover Blitz to sit on until it gets a VR upgrade ( any day now I'm betting ) and runs on Proton ( less certain but I'm hoping ). It's ultra cheap at Humble right now. I'm sold on VR flight sim!

SunnyOd commented 1 year ago

@SunnyOd I was wondering where you were ;) This game is .. wow! I grabbed a related game, IL-2 Sturmovik: Cliffs of Dover Blitz to sit on until it gets a VR upgrade ( any day now I'm betting ) and runs on Proton ( less certain but I'm hoping ). It's ultra cheap at Humble right now. I'm sold on VR flight sim!

@JJones780 I've been wanting to get into VR but since ditching windows and moving to linux it's not been very clear as to how stable/viable it is on linux. What are your thoughts? Using a Quest 2 or Index or something else?

I've got Cliffs of Dover too. I couldnt get it to run before. Are you saying your Stalingrad fix works for Cliffs too?