From 9ac1edb6812aebb50fb849a51a0c991289c2a828 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Tue, 27 Jan 2026 10:13:30 -0500 Subject: [PATCH] Properly block off creative's DLL from loading --- src/sdl/al_sound.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/sdl/al_sound.c b/src/sdl/al_sound.c index a4459e5b1..e5083e510 100644 --- a/src/sdl/al_sound.c +++ b/src/sdl/al_sound.c @@ -78,6 +78,7 @@ typedef enum #include "../w_wad.h" #include "../i_threads.h" #include "../i_system.h" // I_Sleep +#include "../fastcmp.h" #include @@ -346,12 +347,24 @@ void I_StartupSound(void) alcMakeContextCurrent(audio.context); - if(!alcIsExtensionPresent(alcGetContextsDevice(alcGetCurrentContext()), "ALC_EXT_EFX")) + const char *vendor = alGetString(AL_VENDOR); + const char *renderer = alGetString(AL_RENDERER); + CONS_Printf("OpenAL Vendor: %s\n", vendor); + CONS_Printf("OpenAL Renderer: %s\n", renderer); + + + if (!fastcmp("OpenAL Soft", renderer)) { I_ShutdownSound(); I_Error("OpenAL: You do not seem to be using OpenAL-Soft.\n"); } + if(!alcIsExtensionPresent(alcGetContextsDevice(alcGetCurrentContext()), "ALC_EXT_EFX")) + { + I_ShutdownSound(); + I_Error("OpenAL: Your OpenAL version does not seem to support EFX .\n"); + } + #define LOAD_PROC(T, x) ((x) = FUNCTION_CAST(T, alGetProcAddress(#x))) LOAD_PROC(LPALGENEFFECTS, alGenEffects); LOAD_PROC(LPALDELETEEFFECTS, alDeleteEffects);