Sound Physics Remastered

Sound Physics Remastered

15M Downloads

1.20.2/1.20.3 Update Blocker

henkelmax opened this issue · 7 comments

commented

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.

commented

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

commented

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"
                    }
                }
            ]
        },
commented

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

commented

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!

commented

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

  • AL_EAXREVERB_DECAY_LFRATIO
  • AL_EAXREVERB_REFLECTIONS_DELAY
  • vAL_EAXREVERB_REFLECTIONS_PAN
  • vAL_EAXREVERB_LATE_REVERB_PAN
  • AL_EAXREVERB_ECHO_TIME
  • AL_EAXREVERB_ECHO_DEPTH
  • AL_EAXREVERB_MODULATION_TIME
  • AL_EAXREVERB_MODULATION_DEPTH
  • AL_EAXREVERB_HFREFERENCE
  • AL_EAXREVERB_LFREFERENCE
  • AL_EAXREVERB_DECAY_HFLIMIT

(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.

commented

How would I download the 1.20.2 version now?

Same as before. Curseforge or Modrinth

commented

How would I download the 1.20.2 version now?