1.20.2/1.20.3 Update Blocker
henkelmax opened this issue · 7 comments
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.
I'm not 100% sure this won't cause any other issues but it seemed to have worked fine for me.
Thank you for your help @s5bug! Without you the port wouldn't have been possible!
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"
}
}
]
},
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!
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
- v
AL_EAXREVERB_REFLECTIONS_PAN
- v
AL_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 PAN
s 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.
How would I download the 1.20.2 version now?
Same as before. Curseforge or Modrinth