henkelmax / sound-physics-remastered

A Minecraft mod that provides realistic sound attenuation, reverberation, and absorption through blocks.
GNU General Public License v3.0
69 stars 22 forks source link

1.20.2/1.20.3 Update Blocker #178

Closed henkelmax closed 6 months ago

henkelmax commented 7 months ago

In Minecraft 1.20.2 Mojang updated LWJGL from 3.3.1 to 3.3.2. This LWJGL update switched from OpenAL Soft from 1.21.1 to 1.23.0.

These changes seem to have introduced a bug in OpenAL Soft that causes the Sound Physics Mod to not have any reverb.

This blocks the mod from getting updated to 1.20.2 or later!

I would appreciate any help identifying the actual issue with OpenAL Soft/LWJGL. If anyone has a workaround for that issue in the current Minecraft version, help is also really appreciated!


If you really want to use the mod on 1.20.2, you can use the Prism Launcher and change the LWJGL version back to 3.3.1.

image

I'm not 100% sure this won't cause any other issues but it seemed to have worked fine for me.

henkelmax commented 6 months ago

UPDATE:

The issue also doesn't seem to be fixed in the latest LWJGL version (3.3.3) which uses the latest version of OpenAL Soft (1.23.1).

I've done this by customizing the LWJGL version in prism by replacing the 3.3.2 windows natives for OpenAL with 3.3.3

        {
            "downloads": {
                "artifact": {
                    "sha1": "cf83862ae95d98496b26915024c7e666d8ab1c8f",
                    "size": 698720,
                    "url": "https://repo1.maven.org/maven2/org/lwjgl/lwjgl-openal/3.3.3/lwjgl-openal-3.3.3-natives-windows.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-openal-natives-windows:3.3.3",
            "rules": [
                {
                    "action": "allow",
                    "os": {
                        "name": "windows"
                    }
                }
            ]
        },
RiceWitch commented 6 months ago

Tried installing on 1.20.2 but can't use 1.20.1 mods in the latest version...

s5bug commented 6 months ago

It's a long shot, but would a local Maven repository for using custom Natives versions allow one to bisect the openal-soft change? Noticing that LWJGL 3.3.1 works properly, I wonder if you could shove newer versions of openal-soft into it, pretending to be an older version, and use that to bisect.

I wouldn't even know where to start with that, though.


The only meaningful difference I could spot when playing around is that, compared to examples/almultireverb.c, SPR doesn't set

(I tried making the effect/slot initialization code more akin to the example code and still couldn't get a reverb in my game, the only thing I haven't tried is modifying these properties. I assume the PANs can't be useful.)

Looking through openal-soft issues regarding reverb, it seems like a lot of EAXREVERB code was changed between 1.21.1 and 1.23.0, although I'm not familiar at all with OpenAL/openal-soft/sound development of any kind (I was hoping I'd stumble into something working by dumb luck). The maintainer(s?) of openal-soft seem very kind, I want to believe that if an issue was opened there more help could be gained.

henkelmax commented 6 months ago

It's a long shot, but would a local Maven repository for using custom Natives versions allow one to bisect the openal-soft change? Noticing that LWJGL 3.3.1 works properly, I wonder if you could shove newer versions of openal-soft into it, pretending to be an older version, and use that to bisect.

Yeah I tried that, but the game crashed when mixing 3.3.1 natives with the 3.3.2 library. So you would need to pack the whole LWJGL libraries into the mod which would increase the jar size to 100s of megabytes.

The maintainer(s?) of openal-soft seem very kind, I want to believe that if an issue was opened there more help could be gained.

Yeah the issue is, I am not versed enough with this part of OpenAL to describe the issue to them. But if you know how to describe the issue to them, I would appreciate if you would open a ticket.

But anyways, thanks for sharing your information!

henkelmax commented 6 months ago

Thank you for your help @s5bug! Without you the port wouldn't have been possible!

TomSipsOnCurry commented 6 months ago

How would I download the 1.20.2 version now?

henkelmax commented 6 months ago

How would I download the 1.20.2 version now?

Same as before. Curseforge or Modrinth