Omer Mor |
Hi Ravi, I got error messages when I tried to mail you, so I'll post it here:
If I understand correctly from your site, the 204 patch was introduced by sierra since SCI01 and is used to translate MPU32 midi to GM. We now have (thanks to you) 204 patches for the 3 SCI01 games: QFG2, Mother Goose, and SCI Christmas Card. What prevents the making of 204 patches for early SCI1 games such as KQ5, that didn't have GM support, using the same technique you used for the SCI01 games?
I have one more question: I have this other christmas card that use the SCI0 interpreter (you can find it here http://dl.fileplanet.com/dl/dl.asp?ClassicGaming/agisci/scicard.zip). When I use it with your (SCI0) GM driver, the game crashes. So far, it's the only SCI0 I know of that crashes with your driver. Do you know why? Thanks in advance, Omer Mor.
|
Ravi |
There isn't anything to prevent supporting early SCI1 games in the same way, and in fact the SCI01 driver will work in the early SCI1 games. For many of those games, though, Sierra has already released a driver and patch for GM translation. You can get their release at http://www.queststudios.com/quest/Utilities.html. It's the first in the list, called "GENERAL MIDI UTILITY".
Sierra actually called their GM translations PATCH.004 (or 4.PAT). I called mine PATCH.204 because I didn't know whether or not I wanted to use the same patch format. In the end they're quite similar, though IIRC there are some subtle differences. That may have been a mistake, because some SCI1 games might limit patch resources to <= 127. I'm not totally sure about that, though.
I think the SCI0 GM driver crashes in the old Christmas Card because the old card doesn't have any patch resources. Rather than reporting an error when it doesn't load the MT-32 patch, it just keeps chugging. The driver crashes when it tries to use the patch that isn't there. Thanks for letting me know about that.
|
Omer Mor |
I found that update, thanks! I made myself a list, and I found out that the only remaining SCI1 games that don't have GM support are this four games: Jones in the Fast Lane, King's Quest 5, Police Quest 3, and The Castle of Dr. Brain. Do you think you can make something for this games? And there's also this chrismas card with no patches - how does the MPU32 work when there's no patches? doesn't it use patch.001 ? Is there a way to make a patch for it in the same way you did with QFG2 ? Thanks, Omer P.S. What's wrong with your email?
|
Ravi |
If you send over PATCH.001 or 1.PAT from those games, I can produce some instrument maps using the FreeSCI technique again.
At a guess, the Christmas Card leaves the MT-32 in its default instrument layout. Otherwise, whatever patch settings it uses would be hard coded in the driver. (I believe that's how the Adlib driver works, although I haven't checked that out.)
As for my email, I really don't know. I was able to mail myself from one account to another, though, so maybe it's fixed now. Could you try again? Thanks.
|
Ravi |
As it turns out, I was wrong about the reason for the driver crashing on the Christmas Card. The problem is actually that Sierra changed its sound resource format slightly. In older interpreters, the header only contains initialization data for 8 channels. Among the games I have, King's Quest IV (interpreter 0.274) and the 1988 Christmas Card (interpreter 0.294) are affected.
The earliest game I have that is not affected is Leisure Suit Larry 2 (interpreter 0.409). It is also the first game I have to include patch files. I don't know for sure that Sierra changed its sound resource format at the same time that it introduced patch resources, but it seems reasonable to believe so.
Thanks again for letting me know about this. There doesn't seem to be a good way for the driver to detect which interpreter version it's running under. I may end up releasing another driver for older interpreters that doesn't require a patch resource and that uses the old sound format.
|
Ravi |
Or rather, the header does contain initialization for all 16 channels. The main difference is that each channel only has 1 byte in the header instead of 2 bytes.
|
Omer Mor |
That's weird because I also have KQ4 with interpreter version 0.000.274 and it works fine with your driver. I also have interpreters with versions earlier than your 0.000.409 version of LSL2: I have LSL2 (0.000.343) and PQ2 (0.000.395). In my LSL2 there are no patch files. In PQ2 there are 3 patch files, so it's my earliest version to introduce patch files. As I said, beside the Christmas Card, both KQ4 & LSL2 that don't have patch files (in my versions) work fine with your driver. Tell me if you think any of my versions could help you in your research. Omer Mor
|
Ravi |
The driver doesn't crash on KQ4, but it doesn't quite play the sounds correctly, either. The first 16 bytes of MIDI data get skipped. This is the same thing that happens with the Card, but with another twist. After skipping the first 16 bytes, the driver starts reading data in such a way that it belieives it's in running status mode. The problem is that it doesn't have a previous status to repeat, leading to the crash. For KQ4, it is lucky enough to read a full status byte for the first sound. Running status mode isn't invoked and the driver continues as normal, if a trifle odd sounding.
Incidentally, I put up a new SCI0 GM driver to avoid the crash, but it isn't really worth downloading if you already have the old driver. The newer version doesn't fix the real problem, it just gets rid of the most visible symptom. The Card doesn't crash now, but it skips the first song and gets stuck on the second -- probably waiting for a cue that never comes.
If you could send me a sound resource or two from each of your 0.000.3xx games, I'd be very grateful. Thanks a bunch.
|
Omer Mor |
OK, I've sended you some sound resources. I hope it'll help!
|