https://bugs.winehq.org/show_bug.cgi?id=52592
--- Comment #3 from Rafał Mużyło galtgendo@o2.pl --- ...actually, ignore the nonsense above, understanding the code takes awhile...
What is actually needed is far more simple: in waveOutGetDevCapsW, WINMM_IsMapper shouldn't be used. Just like in WINMM_GetDeviceFromHWAVE, proper check should be ' uDeviceID == MAPPER_INDEX'.
...actually, I don't really understand the difference between device index and mm_device index, cause looking at the relevant sections, it seems to me that ' uDeviceID == MAPPER_INDEX' should actually be what WINMM_IsMapper should be checking for - in most of those, uDeviceID is later checked against g_inmmdevices_count, which would suggest that the code always expects mm_device index.