kcat / dsoal

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

Regression: reverb in IL-2 1946 #93

Open raven-intheclouds opened 1 year ago

raven-intheclouds commented 1 year ago

Hi,

Perused DSOAL and openal-soft, and ended up installing DSOAL and making EAX3 and EAX4 work on IL-2 1946 under Wine. Thanks!.

Still, it seems that it has a reverb that shouldn't be there.

This is how I remember it sounding in its age: https://i.imgur.com/BqPXoVH.mp4 (courtesy of 3DJ from Discord). 3DJ says on discord that he used the version from here https://github.com/ThreeDeeJay/dsoal/releases/download/0.9.1/DSOAL_v0.9.1_OpenALSoft_v1.22.1-Win32.zip and edited alsoft.ini to set hrtf = true . That release includes the following commit: https://discord.com/channels/547440061478862848/547442192202072094/1146929049676030045. Link to discord message.

Here, there is a marked increased reverb on in-game music, radio chatter, or on menu buttons (note: the game menu buttons have a baked-in reverb added, that is a red herring).

Disabling the extensions, both in aisoft.ini, or inside the game sound options, corroborated by the game logs, gets rid of the reverb. I can reproduce this in IL-2 1946 ver4.14.1, ver4.12.2, ver4.15.1. The game also has a demo https://www.gamepressure.com/download.asp?ID=1182.

Things I tried

Spelunking wrote me to this last issue, https://github.com/kcat/openal-soft/issues/794.

At the beginning I thought I had a mix of DOSAL and OpenAL Soft that was not built with the correct fixes, and there were several regressions for this reverb on EAX 3.

Tried IL2 1946 with DSOAL 0.9.5 + OpenAL Soft 1.23.1 and 2023-08-31_DSOAL_r444@52224b1+OpenALSoft_r8707@7910f1a-Win32.zip, both from https://github.com/ThreeDeeJay/dsoal/releases, but I still get the overly present reverbs.

Haven't tried ALchemy.

Workaround

Try to disable reverb. I think I "achieved" this with this atenuation:

[reverb]
boost = -1000

Logs

I have attached a log of the stdout of the game (not particularly verbose) and DSOAL, obtained by setting DSOAL_LOGLEVEL=3. The log is of starting the game, clicking around 5 times on menu buttons, starting a quick mission, pressing F3 for an external fly-by view that has a lot of doppler effect of the plane flying by. dsoal-il2.log

ThreeDeeJay commented 1 year ago

By the way, I should point out a couple things:

Hiradur commented 1 month ago

If this really is a regression and if you can compile OpenAL Soft and DSOAL yourself, using git bisect is probably the fastest way to find out which change caused it. Compile the c++-rewrite branch since this is where development is happening now.

Before you dig into this I suggest to retry with a recent build of the c++-rewrite of DSOAL, maybe the issue got fixed in the meantime.

ThreeDeeJay commented 1 month ago

The c++-rewrite branch build is available here btw: https://github.com/ThreeDeeJay/dsoal/releases/tag/latest-c%2B%2B-rewrite There's also older builds here https://github.com/ThreeDeeJay/dsoal/releases and here http://vaporeon.io/hosted/dsoal-builds/old/