Community
SCI Programming => SCI Syntax Help => Topic started by: robbo007 on April 21, 2023, 10:25:38 AM
-
Hi,
Just wondering if its possible to use multiple Roland MT32 patch files/sound banks in a SCI0 game? Can they be pushed to the device mid game? Or does it only load them when it initialises the driver at startup?
Thanks,
-
Only on startup, yeah. Though MIDI itself supports SysEx commands at any time, SCI sound resources don't seem to support SysEx at all, and you'll need those to patch the MT32.
-
Darn, it would be nice to patch on the fly.
-
I know. I wanted to put messages on the MT32's display, but apparently you can only do that from the patch resource itself.
So mine has three starting messages.
-
Obviously I don't think it can be done in SCI, but Dynamix's Heart of China does exactly this, midway sends a second bank.
-
DGDS actually uses the Sierra sound infrastructure (and Sierra got the Dynamix scaling code in return), even though it doesn't use all the features (no MIDI sends, no sound cues). The Sierra drivers are contained along with patch files in two resources called SXCODE1.OVL and SXCODE2.OVL. As far as I can tell, the switch is done by shutting down the sound system (loaded from SXCODE1.OVL initially) entirely and reloading it from the other file.
-
Cheese and rice, that sure is one way to do it!
-
Yeah, they've got this very feature-rich MIDI parser (which can communicate with script code), and they use it as a dumb background music player. Stupid.
As an aside, several attempts were made at a DGDS engine for ScummVM. One of those people has posted videos about music in DGDS (https://www.youtube.com/@vascocosta3267), and while he realized (or was told by Colin Snover) that these games use the Sierra file format, he didn't realize why: It is simply the same music player!
It surprised me to see just how far they got with the graphics code, judging from those Youtube videos (because that always seemed to be the sticky point). I have made a decompiler for the DGDS scripts (I was fooling around with PyConstruct at the time, and it turned out to be well suited), and while they don't decompile as cleanly as SCI code, they can be annotated with the textual descriptions in the ADS (animation) files. This makes the code pretty understandable.
-
Do you still have that decompiler? Even without a means of doing anything with it, I'd be interested in seeing that code.
-
It's a disorganized mess, and the DGDS file formats changed for every game they made. It works best with Rise of the Dragon. and support for the others is patchy. It doesn't decompress files by itself, but needs another tool to do that. It would take a while to get it into a releasable state, and I don't have that energy right now.
-
No rush. I was just curious to see some of that code.