diff --git a/src/sdl/Makefile.cfg b/src/sdl/Makefile.cfg
index f78135396c32488be1807df778011f5c1b1315cf..05b60f7a328ab917363e0a89d870511179e297d3 100644
--- a/src/sdl/Makefile.cfg
+++ b/src/sdl/Makefile.cfg
@@ -80,7 +80,8 @@ ifdef NOMIXER
 else
 	i_sound_o=$(OBJDIR)/mixer_sound.o
 	OPTS+=-DHAVE_MIXER
-ifdef MINGW
+ifdef HAVE_MIXERX
+	OPTS+=-DHAVE_MIXERX
 	SDL_LDFLAGS+=-lSDL2_mixer_ext
 else
 	SDL_LDFLAGS+=-lSDL2_mixer
diff --git a/src/sdl/mixer_sound.c b/src/sdl/mixer_sound.c
index f3be246a6a99cef36adf796c878ada5022e7863e..eec2542f972623bd588062842c034ec8d991ece1 100644
--- a/src/sdl/mixer_sound.c
+++ b/src/sdl/mixer_sound.c
@@ -100,6 +100,9 @@ void I_StartupSound(void)
 #if SDL_MIXER_VERSION_ATLEAST(1,2,11)
 	Mix_Init(MIX_INIT_FLAC|MIX_INIT_MOD|MIX_INIT_MP3|MIX_INIT_OGG);
 #endif
+#if HAVE_MIXERX
+	Mix_SetMidiPlayer(MIDI_OPNMIDI);
+#endif
 
 	if (Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 2048) < 0)
 	{
diff --git a/src/win32/Makefile.cfg b/src/win32/Makefile.cfg
index 05be6bd7fe3b5ba20ba8d36d35936870966ec597..b2a9fd1f8c6c456900ce2f40290786142979186d 100644
--- a/src/win32/Makefile.cfg
+++ b/src/win32/Makefile.cfg
@@ -15,8 +15,14 @@ else
 	HAVE_LIBGME=1
 	LIBGME_CFLAGS=-I../libs/gme/include
 	LIBGME_LDFLAGS=-L../libs/gme/win32 -lgme
+ifndef NOMIXERX
+	HAVE_MIXERX=1
 	SDL_CFLAGS?=-I../libs/SDL2/i686-w64-mingw32/include/SDL2 -I../libs/SDLMixerX/i686-w64-mingw32/include/SDL2 -Dmain=SDL_main
 	SDL_LDFLAGS?=-L../libs/SDL2/i686-w64-mingw32/lib -L../libs/SDLMixerX/i686-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 -mwindows
+else
+	SDL_CFLAGS?=-I../libs/SDL2/i686-w64-mingw32/include/SDL2 -I../libs/SDL2_mixer/i686-w64-mingw32/include/SDL2 -Dmain=SDL_main
+	SDL_LDFLAGS?=-L../libs/SDL2/i686-w64-mingw32/lib -L../libs/SDL2_mixer/i686-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 -mwindows
+endif
 endif
 
 ifndef NOASM