Best as I can tell, MCIERR_ILLEGAL_FOR_AUTO_OPEN means it's trying to operate on an mci device from a different thread than the one that opened it. Debugging shows that that it is doing that. The error name doesn't make sense though. I suspect that it works in win98 because most of winmm is in win16 code and every win32 thread in a given process is treated as a single win16 task.
Best as I can tell, MCIERR_ILLEGAL_FOR_AUTO_OPEN means it's trying to operate on an mci device from a different thread than the one that opened it. Debugging shows that that it is doing that. The error name doesn't make sense though.
Crap, the indeo codecs were removed from windows 11 25h2.
I don't think it's worthwhile for this specific game but if there are similar codec issues elsewhere, it might be.
Turns out WMP uses a different layer 2 decoder, https://learn.microsoft.com/en-us/windows/win32/medfound/mpeg-audio-decoder-mft , which is part of Media Foundation and is why it works. The Directshow one is built into quartz.dll and there don't appear to tweaks that can fix it.
Testing shows that the directshow layer 2 decoder fails on joint-stereo files at less than 160kbps and the movie audio is joint-stereo with 112kbps. No idea how to fix this except the install a different layer 2 decoder.
Testing show that the directshow layer 2 decoder fails on joint-stereo files at less than 160kbps and the movie audio is joint-stereo with 112kbps. No idea how to fix this except the install a different layer 2 decoder.
The video is 192 pixels wide so that makes sense. I figured the distorted audio was due to playback speed being too slow but it looks correct so clearly that's wrong. Edit: The video plays correctly with WMP which means it can play it but if I load it into graphedt then the audio is corrupt so the problem in in directshow.