Hi, Unless Christoph can make the event sound server give a nice result under UNIX, I would suggest leaving that until Microsoft come up with high-resolution timing commands, or another operating system needs that server.
Instead, a very similar sound server could be introduced, perhaps known as the 'lightweight' sound server. It would be virtually the same as the current event sound server, but without a call to do_sound() every 16ms. This would be got around by parsing the entire song when SOUND_COMMAND_PLAY_HANDLE is given, where the server would only process SCI-specific MIDI commands and pass the rest directly as-is to the midiout driver. The midiout driver would then be MCI as it currently is or possibly DirectMusic. The server would not keep track of where we are in the song so save and restore of song position would not be possible. However, I have a sneaking suspicion that Christoph will tell me that this can't be done due to something tricky within SCI. :) BTW, I looked at ScummVM and they use WaitForSingleObject() and GetTickCount() to produce their resolution. That's certainly something that would be easy to implement, but if we use the above solution then Windows would handle it all with very likely much higher precision. Alex.
