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.




Reply via email to