FakeFishGames / Barotrauma

A 2D online multiplayer game taking place in a submarine travelling through the icy depths of Jupiter's moon Europa.
http://www.barotraumagame.com/
1.77k stars 408 forks source link

Suitable capture device not found (OpenAL error 40964) #4461

Open monobi opened 3 years ago

monobi commented 3 years ago

Description Crash to desktop when searching for assigned voice capture device that is no longer connected, and no alternative options available.

Steps To Reproduce

  1. Disable all voice capture devices
  2. Connect and enable a USB headset
  3. Assign headset as voice capture
  4. Save settings
  5. Close Barotrauma
  6. Disconnect USB headset
  7. Open Barotrauma
  8. Join or host a server, or navigate to voice chat settings

CTD stops when device reconnected

Version Game version 0.11.0.9 Selected screen: Barotrauma.MainMenuScreen SteamManager initialized Operating system: Microsoft Windows NT 10.0.19041.0 64 bit

Additional information

Did not experience CTD on versions prior to 11.0.9 with same issue.

Exception: Failed to open capture device: 40964 (AL) (System.Exception) Target site: Void .ctor(System.String) Stack trace: at Barotrauma.Networking.VoipCapture..ctor(String deviceName) in \Barotrauma\BarotraumaClient\ClientSource\Networking\Voip\VoipCapture.cs:line 130 at Barotrauma.Networking.VoipCapture.Create(String deviceName, Nullable1 storedBufferID) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Networking\Voip\VoipCapture.cs:line 66 at Barotrauma.GameSettings.SelectTab(Tab tab) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameSettings.cs:line 1506 at Barotrauma.GameSettings.<>c__DisplayClass21_0.<CreateSettingsFrame>b__18(GUIButton bt, Object userdata) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameSettings.cs:line 501 at Barotrauma.GUIButton.Update(Single deltaTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\GUIButton.cs:line 262 at System.Collections.Generic.List1.ForEach(Action`1 action) at Barotrauma.GUI.Update(Single deltaTime) in \Barotrauma\BarotraumaClient\ClientSource\GUI\GUI.cs:line 1214 at Barotrauma.GameMain.Update(GameTime gameTime) in \Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 951 at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime) in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 656 at Microsoft.Xna.Framework.Game.Tick() in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 504 at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 94 at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 398 at Microsoft.Xna.Framework.Game.Run() in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 368 at Barotrauma.Program.Main(String[] args) in \Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 59

KimmoKari commented 3 years ago

Can you @Rokvach try to repro this ?

Rokvach commented 3 years ago

I didn't get a crash, but I did get a warning, looks like the game doesn't check for the capture device update if you don't enter the settings first but rather go directly to host a server. image.png

Tested on my microphone as I don't own a headset.

Repro steps:

  1. Make sure mic/headset is connected
  2. Start the game and make sure mic is detected in the voice chat settings.
  3. Close the game
  4. Unplug mic/headset
  5. Start the game and host a server
  6. Should receive a warning when you enter lobby
instrumentallyill commented 10 months ago

@Regalis11 I am still having this error, its been months, im using an ASUS G14 2023 and the built in microphone and getting the same error.

Jasontti commented 8 months ago

Adding more info on behalf of a discord user:

've also been getting 40964 for the last month, it's been driving me absolutely insane becasue every SINGLE POST on the steam forums is closed or archived or doesn't contain a solution that I haven't tried. It's quite frustrating as barotrauma is the ONLY application on my laptop that has this error. I'm using the Realtex (however it's spelled) Microphone Array, and I get 40964 the moment i load into a game or open my settings. I can drop-click to an audio input device but it there is no input and it is automatically de-selected when i leave the settings. I also get a huge list of errors when i try to use voicemeeter to bypass this issue.

audio works perfecty fine on discord and and video. i have little reason to believe this is my PC. drivers are updated, game file integrity verified, baro reinstalled, security settings allow all applications to use the microphone and SPECIFICALLY barotrauma has access as well. there are no special characters in my microphone as per the screenshot.

image

this seems to be an issue specifically with the G14 laptop, at least two other people - excluding me - have had the same issue on the same brand of laptop across different models/years. Upon plugging in an external USB microphone instead of using the built-in mic, I no longer get the error, but the internal microphone still recieves no input. (I just use the external mic instead.) I have reinstalled audio drivers and checked most windows 11 mic settings to no avail. I believe it is an issue specific to the G14's internal microphone and Barotrauma, no clue why. Next time I am on I'll try lowering my mic quality below 24bit in my windows settings and if it works I will let you know. so i'm thinking baro just doesn't like the G14 audio drivers, but it doesn't guarantee it's unique to this laptop I’m also on nvidia gpu + drivers I think

chewycheese commented 6 months ago
  • [x] I have searched the issue tracker to check if the issue has already been reported.

Description Crash to desktop when searching for assigned voice capture device that is no longer connected, and no alternative options available.

Steps To Reproduce

  1. Disable all voice capture devices
  2. Connect and enable a USB headset
  3. Assign headset as voice capture
  4. Save settings
  5. Close Barotrauma
  6. Disconnect USB headset
  7. Open Barotrauma
  8. Join or host a server, or navigate to voice chat settings

CTD stops when device reconnected

Version Game version 0.11.0.9 Selected screen: Barotrauma.MainMenuScreen SteamManager initialized Operating system: Microsoft Windows NT 10.0.19041.0 64 bit

Additional information

Did not experience CTD on versions prior to 11.0.9 with same issue.

Exception: Failed to open capture device: 40964 (AL) (System.Exception) Target site: Void .ctor(System.String) Stack trace: at Barotrauma.Networking.VoipCapture..ctor(String deviceName) in \Barotrauma\BarotraumaClient\ClientSource\Networking\Voip\VoipCapture.cs:line 130 at Barotrauma.Networking.VoipCapture.Create(String deviceName, Nullable1 storedBufferID) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Networking\Voip\VoipCapture.cs:line 66 at Barotrauma.GameSettings.SelectTab(Tab tab) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameSettings.cs:line 1506 at Barotrauma.GameSettings.<>c__DisplayClass21_0.<CreateSettingsFrame>b__18(GUIButton bt, Object userdata) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameSettings.cs:line 501 at Barotrauma.GUIButton.Update(Single deltaTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\GUIButton.cs:line 262 at System.Collections.Generic.List1.ForEach(Action`1 action) at Barotrauma.GUI.Update(Single deltaTime) in \Barotrauma\BarotraumaClient\ClientSource\GUI\GUI.cs:line 1214 at Barotrauma.GameMain.Update(GameTime gameTime) in \Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 951 at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime) in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 656 at Microsoft.Xna.Framework.Game.Tick() in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 504 at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 94 at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 398 at Microsoft.Xna.Framework.Game.Run() in \Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 368 at Barotrauma.Program.Main(String[] args) in \Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 59

This issue has remained even past all of the updates trying to fix the issue. It works on Discord and every other game on Steam. I've tried many Steam posts that have resolved the issue for others. However, nothing is working for me and I this point I am completely out of ideas. PLEASE HELP