Open PlayNeth opened 1 year ago
Was doing some investigation, and seems like the game uses DirectMusic for the menu music and DSOAL doesn't like that very much, so it crashes whenever it tries to load it. Otherwise, over on Linux without enabling DirectMusic, everything works flawlessly but not the menu music. Hope this piece of info is useful somewhat
Unfortunately the c++-rewrite branch build hasn't fixed this, still crashes.
4218:fixme:dsound:DSound8OAL::QueryInterface Unhandled GUID: {2a8af120-e9de-4132-aaa5-4bdda5f325b8}
@kcat Is there a way to disable DirectMusic on Windows or ignore it like DirectSound's native FX API (SetFX) to prevent crash in https://github.com/kcat/dsoal/issues/39#issuecomment-2330314303?
Not as far as I know. Maybe some registry edit to disable DirectMusic, which would likely cause problems with stuff that relies on it. Or maybe some way to override the DLL for specific apps with something that won't work (and hope the app won't fail without dmusic being available).
I see. I wonder how NOLF2 manages to avoid the crash tho 🤔 https://github.com/kcat/dsoal/issues/61#issuecomment-1500971538
Different apps behave differently in response to DirectMusic not working. Depending on how DirectMusic itself behaves from not being able to get that interface, some apps may or may not be prepared to deal with that failure mode.
Different apps behave differently in response to DirectMusic not working. Depending on how DirectMusic itself behaves from not being able to get that interface, some apps may or may not be prepared to deal with that failure mode.
Is it possible to replace dsoal with modified Alchemy? https://github.com/kcat/dsoal/issues/51#issuecomment-2378498509
@UserGit-2021 I managed to get it working and was gonna record a video, but reverb is behaving quite oddly, even without OpenAL Soft.
Like, the intro video and main menu start with audible reverb (made even more noticeable by using boost=12
), but as soon as I'm in-game, it seems the reverb's completely gone, and stays gone after going back to the menu. Also, when cycling through audio providers, DirectSound3D options do have reverb, while EAX 1-3 usually don't. And cycling can sometimes break reverb completely, and even 3D panning during the siren loop sound test (all providers end up being just virtualized stereo, which is to be expected from Miles 2D, but DS3D/EAX usually do start with proper 360 panning/depth).
I hope this wasn't just an afterthought and they actually did make use of proper EAX, though apparently it wasn't optimized for it, since I only see mentions of Miles in the executable, and there are complaints of missing car sounds when using EAX[1][2], though I didn't notice it happening on my end. The manual doesn't even mention EAX, only a DirectX compatible sound card with surround sound
requirement, and the ReadMe just refers to it indirectly:
Sound Provider: The first time you launch Midnight Club II, we auto-detect the best sound provider for your available Sound Card. You can also manually select alternatives in the game.
And the only relevant setting I could find was options.cfg where it was already set:
AudioDriver: Creative Labs EAX 3 (TM)
I also tried updating the EAX 3 provider with one from a different game using the same Miles version but it just gave me an error on startup and refused to load it.
@UserGit-2021 I managed to get it working and was gonna record a video, but reverb is behaving quite oddly, even without OpenAL Soft.
Like, the intro video and main menu start with audible reverb (made even more noticeable by using
boost=12
), but as soon as I'm in-game, it seems the reverb's completely gone, and stays gone after going back to the menu. Also, when cycling through audio providers, DirectSound3D options do have reverb, while EAX 1-3 usually don't. And cycling can sometimes break reverb completely, and even 3D panning during the siren loop sound test (all providers end up being just virtualized stereo, which is to be expected from Miles 2D, but DS3D/EAX usually do start with proper 360 panning/depth).I hope this wasn't just an afterthought and they actually did make use of proper EAX, though apparently it wasn't optimized for it, since I only see mentions of Miles in the executable, and there are complaints of missing car sounds when using EAX[1][2], though I didn't notice it happening on my end. The manual doesn't even mention EAX, only a
DirectX compatible sound card with surround sound
requirement, and the ReadMe just refers to it indirectly:Sound Provider: The first time you launch Midnight Club II, we auto-detect the best sound provider for your available Sound Card. You can also manually select alternatives in the game.
And the only relevant setting I could find was options.cfg where it was already set:
AudioDriver: Creative Labs EAX 3 (TM)
I also tried updating the EAX 3 provider with one from a different game using the same Miles version but it just gave me an error on startup and refused to load it.
hmm... it turns out it's easier to develop the dsoal project from scratch than to implement it from Alchemy.
Game basically doesn't post at all with the dsoal files present, crashes every time after the intro. Here's the log files: alsoft_error.txt dsoal_error.txt