kcat / dsoal

A DirectSound DLL replacer that enables surround sound, HRTF, and EAX support via OpenAL Soft
GNU Lesser General Public License v2.1
340 stars 47 forks source link

Max Payne 3 no sound (and probably GTA IV) Spearhead crash on newer versions, Total Overdose bug, BFBC2, BF3 doesn't work, Mass Effect 1, Quake 4 problems #4

Open deton24 opened 4 years ago

deton24 commented 4 years ago

edit. 2021 MP2 works with 2019's 1.31a DSOAL and newest OAL Soft.

edit. 2021 MP1 works after applying sound patch (file converter) https://community.pcgamingwiki.com/files/file/508-max-payne-sound-fix/?_fromLogin=1 https://www.youtube.com/watch?v=fY7i6X41T7U

EAX on OAL related issues

And it would be freaking cool to see working Rapture3D with DSOAL, but OpenAL Soft is still a poetry.

mirh commented 4 years ago

I'm pretty sure battlefields since BC2 use xaudio2. EDIT: and mass effect is an openal native game for the love of god. Though the directsound fallback not working or not supporting eax should still be a bug I guess. EDIT2: and no reason whatsoever admin permissions should matter

deton24 commented 4 years ago

IndirectSound doesn't make the BC2 sound any better, I'd say worse, but in BF3 I think it interferes positively with the sound stage for some reason. dsound.dll becomes write-protected while the game is launched.

Here it was said that GTA IV can crash without admin rights. Maybe it's not common, though https://gtaforums.com/topic/393357-creative-alchemy/?do=findComment&comment=1058901876

(More issues added in 1st post)

mirh commented 4 years ago

Well, crap, I was wrong. BC2 still uses directsound. And I just tested even bf3.. And it only ever loads dsound too :/

"Being write protected" then seems normal. It should simply be the game having an open handle on the dll.

Here it was said that GTA IV can crash without admin rights. Maybe it's not common, though

That thread is so ridden of "guessing" my eyes bleed. Also, that's so old that not only alchemy might not have been as polished as it is today, it just covers the first unpatched builds of the game.

I'm not sure you should report >EAX2 bugs then, considering OAL-soft isn't yet supposed to support it to begin with.

reyaz006 commented 4 years ago

Not sure if related but I've tried dsoal on BloodRayne 2 and found missing ambient music in many places - very similar to ME1 here. Thought it was buggy like that from the start until discovering this list of issues. Tested IndirectSound and it's the same.

EDIT: Here is what I'm getting in error log:

3008:err:dsound:DSBuffer_Initialize Multi-channel 3D sounds are not spatialized
3008:err:dsound:DSBuffer_Initialize Panning for multi-channel buffers is not supported
JaegerFox commented 4 years ago

it doesn't work with MGS2 either "Failed creating directsound8 object", but with alchemy and IndirectSound it works, but I feel it's not a good 3D effect

deton24 commented 4 years ago

Try out HeSuVi with Alchemy. It's like CMSS3D, but with various HRTF tables.

sob., 23 lis 2019, 20:20 użytkownik JaegerFox notifications@github.com napisał:

it doesn't work with MGS2 either "Failed creating directsound8 object", but with alchemy and IndirectSound it works, but I feel it's not a good 3D effect

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/kcat/dsoal/issues/4?email_source=notifications&email_token=AIJ3EHH6ZSJ6WPV72VGC3B3QVF67BA5CNFSM4I3QAW5KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE732LI#issuecomment-557825325, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIJ3EHHZIFDITQRCC7VJAW3QVF67BANCNFSM4I3QAW5A .

Hiradur commented 3 years ago

And I just tested even bf3.. And it only ever loads dsound too :/

I don't have BF3 to test but perhaps BF3 uses internal mixing and only uses dsound.dll for output, see https://github.com/kcat/dsoal/issues/15#issuecomment-660109596 for further details.

deton24 commented 3 years ago

That's maybe the same thing as with Crysis and FMOD. It actually works in XP and Vista, so I doubt whether it has any other output than dsound.

pt., 17 lip 2020 o 15:36 Hiradur notifications@github.com napisał(a):

And I just tested even bf3.. And it only ever loads dsound too :/

I don't have BF3 to test but perhaps BF3 uses internal mixing and only uses dsound.dll for output, see #15 (comment) https://github.com/kcat/dsoal/issues/15#issuecomment-660109596 for further details.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/kcat/dsoal/issues/4#issuecomment-660111276, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIJ3EHG7YYIYDTM3YGUJFGDR4BHXJANCNFSM4I3QAW5A .

Kappa971 commented 2 years ago

@deton24, only Medal of Honor Spearhead and Total Overdose use DirectSound3D and EAX. Quake 4 and Mass Effect 1 use EAX via OpenAL (DSOAL should not be used in these games) so any issues should be reported here: https://github.com/bibendovsky/eaxefx In theory these games should work fine with EAXEFX + OpenAL Soft.

None of the other games should use EAX.

mirh commented 2 years ago

DSOAL shouldn't be used in those games, absolutely. *Though*, it should still work eventually.

But this whole issue is kind of a dumpster fire.

deton24 commented 2 years ago

I'd rather attached logs from TOD, GTA IV, MP3 here instead of making separate tickets making even bigger mess. Although, it would be more appropriate.

Thx for pointing out Kappa.

Please reply in case you're interested in logs.

Kappa971 commented 2 years ago

Other than MoH Spearhead and Total Overdose, other games shouldn't use EAX, maybe they use DirectSound for something but not for EAX so DSOAL shouldn't help. You could close this issue and open a new one for these two games.

Please note that I'm not a developer and I'm not part of the developers so please feel free to do as you please.

deton24 commented 2 years ago

Don't know if it's really worth explaining here.

Spearhead have optional EAX support with dsound to enable, all configurable in config. It's more about general support of probably Miles in this game, because AFAIK there is no sound despite of the settings.

TOD have two various sound APIs, one of which is non-default dsound configurable in Main Menu. But no EAX.

MP3 has dsound, but no EAX (Alchemy is injected and write protected).

GTA IV uses similar engine, and sound engine.

The rest is more arguable.

Well, I can do this if kcat is interested at all.

czw., 30 gru 2021, 09:02 użytkownik Kappa971 @.***> napisał:

Other than MoH Spearhead and Total Overdose, other games shouldn't use EAX, maybe they use DirectSound for something but not for EAX so DSOAL shouldn't help. You could close this problem and open a new one for these two games.

— Reply to this email directly, view it on GitHub https://github.com/kcat/dsoal/issues/4#issuecomment-1002915169, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIJ3EHCZHARP4ZXPXSSPY53UTQG2XANCNFSM4I3QAW5A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

Kappa971 commented 2 years ago

According to what is written in PCGamingWiki, MoH uses EAX 2, while in Total Overdose DirectSound3D support (not EAX) is indicated but I imagine that DSOAL in this game should be used to restore 3D audio. If I'm not mistaken, "3D Audio" and "EAX" are two different things but both need DSOAL. Max Payne 3 maybe uses DirectSound but not DirectSound3D and EAX, so DSOAL is not needed. Same thing for GTA 4.

deton24 commented 2 years ago

We're getting a bit discursive but I've been curious about clarification in the subject of DirectSound3D vs DirectSound game, so if you have some grounded knowledge, please speak out.

Max Payne 3 maybe uses DirectSound but not DirectSound3D and EAX, so DSOAL is not needed. Same thing for GTA 4.

For the record, it's not the same case as in e.g. Conviction when dsound is only used as output upon Xaudio2 - the sound there is not rendered in 2D in modern systems. It's a case when injecting something else in place dsound.dll doesn't do anything special in terms of sound (though still injected dsound.dll is write-protected).

With Max Payne 3 it's really something different, and on modern systems I'd state that the sound is rendered in 2D, and with Alchemy, the sound is being changed. As kcat mentioned in other ticket, HRTF is only or as much as a function added upon dsound>OAL wrapping and DSOAL can be used without HRTF.

In general, DSOAL shouldn't rather work in a way that it supports only games with DirectSound3D, automatically disabling any output if it's just DirectSound. It's DirectSound wrapper in the first place, HRTF is a function not essential to wrapper.

I wonder how you differentiate titles with DirectSound3D and with DirectSound, what are the examples, and whether any list of such titles is already out anywhere. E.g. I Drink Lava didn't introduce such division https://docs.google.com/document/d/1SyOw7D0H2ecGxzPsCFEFKwupU8LuazUrlkI-gVTpyhc/edit

kcat commented 2 years ago

DirectSound3D is a component of DirectSound. DirectSound is an API for handling audio devices and playing sounds (open devices, set the output format, load sounds, play them, etc, with simple volume, left-right panning, and pitch controls), and DirectSound3D is an extra set of interfaces you can get from DirectSound to control sounds in 3D (specify the sound's 3D location, velocity, cones, and directivity, and the listener's 3D location, velocity, orientation, etc). At its introduction, these APIs were a way to handle audio hardware more directly, with DirectSound being able to offload the audio mixing and resampling to hardware, while DirectSound3D was an optional feature depending if the device/drivers had 3D processing capabilities.

So an app that uses DirectSound3D is one that uses DirectSound's 3D interfaces to control and mix sounds in 3D. Ones that just use DirectSound don't use the 3D interfaces (and may or may not use its plain mixing capabilities).

DSOAL is a DirectSound wrapper with DirectSound3D and EAX1/2/3/4 support, by pretending to be a hardware device and recognizing the queries for those extensions and implementing them. A game that only uses DirectSound and not DirectSound3D or EAX could still benefit from DSOAL, depending on what you want, since it will use OpenAL Soft for mixing to the output (virtual 7.1 with HRTF output, customizable HRTF, its bsinc resamplers, and other options users can enable through its configuration).