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

Externals: Update OpenAL-Soft to 1.23.1 #12770

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Xphalnos
Copy link

I updated OpenAL-Soft because it hasn't been updated for 10 years!

@AdmiralCurtiss
Copy link
Contributor

I'm a bit confused about these headers. Where do the matching binaries come from?

@Xphalnos
Copy link
Author

They come from OpenAL Soft
Link: https://github.com/kcat/openal-soft

@AdmiralCurtiss
Copy link
Contributor

AdmiralCurtiss commented May 22, 2024

What I meant was, how does Dolphin actually link against the binary? But after checking, it doesn't at all and expects the user to provide the dll for it:

s_openal_dll = ::LoadLibrary(TEXT("openal32.dll"));

It also is only implemented for Windows, which is also pretty weird. I wonder when the last time anyone even used this audio backend was...

e: Some old downloads on dolphin-emu.org do include the DLL though. But newer versions don't anymore. Did anyone even notice this?

@AdmiralCurtiss
Copy link
Contributor

Also, are you sure you got the right headers? Whatever you got here does not match the headers in the 1.23.1 release.

@Xphalnos
Copy link
Author

However I simply copied the files from https://github.com/kcat/openal-soft

@Xphalnos
Copy link
Author

Otherwise I can take the RPCS3 files https://github.com/RPCS3/rpcs3/tree/master/3rdparty/OpenAL

@CasualPokePlayer
Copy link
Contributor

CasualPokePlayer commented May 22, 2024

Official "base" headers would Creative Labs's OpenAL SDK, which is available on OpenAL's official site. Dolphin does not necessarily use OpenAL Soft, but rather any OpenAL 1.1 compliant implementation (of which there are several, although practically there's just the Creative Lab's implementation, OpenAL Soft, and I guess Apple OpenAL exists?). In this case, judging from the copyright headers the headers Dolphin uses appear to be from a really old version of OpenAL Soft? (alext.h is definitely not from the base SDK anyways; although this OpenAL Soft version seems so old the base headers appear to be copies of the official base SDK).

OpenAL also hasn't received any updates to their base API past 1.1 (spec released in 2005, although the core SDK apparently last changed in 2009?). The actual implementation version isn't of much concern for Dolphin, that's up to the user or package manager providing the shared library (although I guess this is kind of undercut by this being a Windows specific backend? It should be possibly to trivially make available on any platform, which is probably useful for obscure Unix like platforms if anything?).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants