Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.20.2/1.20.3 Update Blocker #178

Closed
henkelmax opened this issue Dec 2, 2023 · 7 comments
Closed

1.20.2/1.20.3 Update Blocker #178

henkelmax opened this issue Dec 2, 2023 · 7 comments
Assignees
Labels
blocker bug Something isn't working

Comments

@henkelmax
Copy link
Owner

henkelmax commented Dec 2, 2023

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 henkelmax added bug Something isn't working blocker labels Dec 2, 2023
@henkelmax henkelmax self-assigned this Dec 2, 2023
@henkelmax henkelmax pinned this issue Dec 2, 2023
@henkelmax
Copy link
Owner Author

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

This comment was marked as off-topic.

@s5bug
Copy link

s5bug commented Dec 5, 2023

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.

@henkelmax
Copy link
Owner Author

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 henkelmax changed the title 1.20.2 Update Blocker 1.20.2/1.20.3 Update Blocker Dec 5, 2023
@henkelmax
Copy link
Owner Author

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

@henkelmax henkelmax unpinned this issue Dec 7, 2023
henkelmax added a commit that referenced this issue Dec 7, 2023
Closes #178

(cherry picked from commit 8428489)
henkelmax added a commit that referenced this issue Dec 7, 2023
Closes #178

(cherry picked from commit 8428489)
@TomSipsOnCurry
Copy link

How would I download the 1.20.2 version now?

@henkelmax
Copy link
Owner Author

How would I download the 1.20.2 version now?

Same as before. Curseforge or Modrinth

Repository owner locked as resolved and limited conversation to collaborators Dec 8, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
blocker bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants