From 2e0adb4af9959cc8ee410f9c20f29b0bef19057a Mon Sep 17 00:00:00 2001 From: raynorpat Date: Thu, 27 May 2021 17:57:15 -0400 Subject: [PATCH] Fix Classic Doom Music playback with XAudio2 backend --- doomclassic/doom/i_sound_win32.cpp | 4 +--- doomclassic/doom/mus2midi.cpp | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doomclassic/doom/i_sound_win32.cpp b/doomclassic/doom/i_sound_win32.cpp index 12c45bd8..54965dd8 100644 --- a/doomclassic/doom/i_sound_win32.cpp +++ b/doomclassic/doom/i_sound_win32.cpp @@ -833,9 +833,7 @@ void I_InitMusic(void) voiceFormat.cbSize = 0; // RB: XAUDIO2_VOICE_MUSIC not available on Windows 8 SDK -#if !defined(USE_WINRT) //(_WIN32_WINNT < 0x0602 /*_WIN32_WINNT_WIN8*/) - soundSystemLocal.hardware.GetIXAudio2()->CreateSourceVoice( &pMusicSourceVoice, (WAVEFORMATEX *)&voiceFormat, XAUDIO2_VOICE_MUSIC ); -#endif + soundSystemLocal.hardware.GetIXAudio2()->CreateSourceVoice( &pMusicSourceVoice, (WAVEFORMATEX *)&voiceFormat/*, XAUDIO2_VOICE_MUSIC*/ ); // RB end Music_initialized = true; diff --git a/doomclassic/doom/mus2midi.cpp b/doomclassic/doom/mus2midi.cpp index 9b6ffdb3..9f5f2bd0 100644 --- a/doomclassic/doom/mus2midi.cpp +++ b/doomclassic/doom/mus2midi.cpp @@ -165,6 +165,10 @@ int Mus2Midi(unsigned char* bytes, unsigned char* out, int* len) // current position in read buffer unsigned char* cur = bytes,* end; + if( cur[0] != 'M' || cur[1] != 'U' || cur[2] != 'S' ) + { + return 0; + } // Midi header(format 0) MidiHeaderChunk_t midiHeader;