FNA-XNA / FAudio

FAudio - Accuracy-focused XAudio reimplementation for open platforms
https://fna-xna.github.io/
Other
545 stars 73 forks source link

Mothergunship (xna) loses audio and freezes with FNA. #54

Closed mikedebian closed 5 years ago

mikedebian commented 5 years ago

The game almost crashes instantly if trying to use the menu (pressing anything but play/continue). I got sound once, but it was clippy and did not work correctly. When speech was activated (as in a character spoke), the game would stutter a few seconds at a time before it eventually just froze. This is what I got from gdb.

Continuing. [New Thread 0xc62fdb40 (LWP 6345)] LogAppleARKit: Warning: Failed to bind to the listen port (76561198009613636:11111) for LiveLink face AR receiving with error () LogStreaming: Display: Took 0.000s to delete old logs. LogStreaming: Display: Async Loading initialized: Event Driven Loader: true, Async Loading Thread: true LogStreaming: Display: Took 0.205s to EndInitTextLocalization. LogWindowsTextInputMethodSystem: Error: Initialization failed while advising the profile notification sink to the TSF source. (0x80004001) LogWindows: Warning: Register touch input failed! [Detaching after fork from child process 6396] Installing breakpad exception handler for appid(gameoverlayui)/version(20181105235327) Installing breakpad exception handler for appid(gameoverlayui)/version(1.0) Installing breakpad exception handler for appid(gameoverlayui)/version(1.0) [1106/111413.967231:INFO:crash_reporting.cc(239)] Crash reporting enabled for process: renderer Installing breakpad exception handler for appid(gameoverlayui)/version(1.0) JS method call WebChat.GetOverlayChatBrowserInfo with 1 arguments LogInit: Display: Game Engine Initialized. LogGameplayTags: Display: UGameplayTagsManager::DoneAddingNativeTags. DelegateIsBound: 0 LogInit: Display: Starting Game. LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart TOG2Log: Error: WARNING: No mission icon was set. LogConsoleResponse: Display: LogConsoleResponse: Display: LogConsoleResponse: Display: LogConsoleResponse: Display: TOG2Log: Error: Autospawning instanced meshes pools, because level script actor is not TOG2BaseLevelScriptActor or a child. LogStreaming: Display: Suspending async loading (1) LogStreaming: Display: Resuming async loading (0) LogHttp: Warning: 000000004DCD8980: request has been successfully processed. URL: http://www.mothergunship.com/image1.png, HTTP code: 500, content length: 148, actual payload size: 148 LogHttp: Warning: 000000004DCD8980 Response Header Server: Cowboy LogHttp: Warning: 000000004DCD8980 Response Header Connection: keep-alive LogHttp: Warning: 000000004DCD8980 Response Header X-Powered-By: Express LogHttp: Warning: 000000004DCD8980 Response Header Vary: Origin LogHttp: Warning: 000000004DCD8980 Response Header Content-Security-Policy: default-src 'self' LogHttp: Warning: 000000004DCD8980 Response Header X-Content-Type-Options: nosniff LogHttp: Warning: 000000004DCD8980 Response Header Content-Type: text/html; charset=utf-8 LogHttp: Warning: 000000004DCD8980 Response Header Content-Length: 148 LogHttp: Warning: 000000004DCD8980 Response Header Date: Tue, 06 Nov 2018 10:14:19 GMT LogHttp: Warning: 000000004DCD8980 Response Header Via: 1.1 vegur LogGameMode: Display: Match State Changed from WaitingToStart to LeavingMap LogNet: Display: SteamNetDriver_0 bound to port 7777 LogStreaming: Display: ULevelStreaming::RequestLevel(/Game/Levels/HQ/Campaign01_Sublevels/Set_HQ_Campaign01_HoloAds01) is flushing async loading LogOnline: Warning: STEAM: No game present to join for session (GameSession) LogUObjectGlobals: Warning: Failed to find object 'Object None.None' LogUObjectGlobals: Warning: Failed to find object 'Object None.None' LogUObjectGlobals: Warning: Failed to find object 'Object None.None' LogUObjectGlobals: Warning: Failed to find object 'Object None.None' LogUObjectGlobals: Warning: Failed to find object 'Object None.None' LogUObjectGlobals: Warning: Failed to find object 'Object None.None' LogUObjectGlobals: Warning: Failed to find object 'Object None.None' LogUObjectGlobals: Warning: Failed to find object 'Object None.None' LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart LogConsoleResponse: Display: LogConsoleResponse: Display: LogMediaUtils: Error: Cannot play file://../../../TowerOfGuns2/Content/Movies/Default_Startup.mp4, because none of the enabled media player plug-ins support it: LogGameMode: Display: Match State Changed from WaitingToStart to InProgress LogOnline: Warning: STEAM: Can't start an online game for session (GameSession) that hasn't been created WARN:

Assertion failure at F3DAudioCheckCalculateParams (src/F3DAudio.c:342), triggered 1 time: 'pDSPSettings->DstChannelCount == ChannelCount && "Invalid channel count, DSP settings and speaker configuration must agree"'

LogAudio: Warning: Waited 70.125999ms for audio thread. LogAudio: Warning: Waited 105.333099ms for audio thread. LogAudio: Warning: Waited 140.496887ms for audio thread. LogAudio: Warning: Waited 175.662201ms for audio thread. LogAudio: Warning: Waited 210.797806ms for audio thread. LogAudio: Warning: Waited 245.918701ms for audio thread. LogAudio: Warning: Waited 281.033386ms for audio thread. LogAudio: Warning: Waited 316.140411ms for audio thread. LogAudio: Warning: Waited 351.254700ms for audio thread. LogAudio: Warning: Waited 386.360809ms for audio thread. LogAudio: Warning: Waited 421.465485ms for audio thread. LogAudio: Warning: Waited 456.571411ms for audio thread. LogAudio: Warning: Waited 491.679016ms for audio thread. LogAudio: Warning: Waited 526.783875ms for audio thread.

The game mostly crashes when launching it with fna, but sometimes it work.

It works with xact, but audio is poor.

mikedebian commented 5 years ago

I added an image here

flibitijibibo commented 5 years ago

This is a UE4 game... unless they modified the audio subsystem these asserts are probably benign. If FAudio is really crashing, thread backtraces would show a line in the FAudio source. Logs are going to be pretty useless other than to say that your PC doesn’t meet this game’s system requirements, which seems to be the main problem.

mikedebian commented 5 years ago

My mistake. It works with the XACT audio libraries and thus I figured it could use faudio.

flibitijibibo commented 5 years ago

Tested this locally and FAudio is holding up. The assert you see is actually a UE4 bug that may still exist now! They create a mastering voice that bases its channel count on the device info, but the X3DAudio calls are based on a hardcoded 6-channel environment. If they ran the engine against X3DAudioD1_7.dll, Microsoft's library would produce the exact same assertion failure.

You'll want to file an issue at the Proton repository to dig into this further, but the FAudio side seems to be doing well.