Jump to navigation Jump to search

SCI/Specifications/Sound/SCI0 Resource Format

No change in size, 00:26, 25 January 2010
consistency changes
Sierra’s SCI0 sound resources contain the music and sound effects played during the game. With the introduction of SCI, the company took advantage of new sound hardware which allowed for far bet­ter music than the traditional PC speaker could ever create. Sierra chose two devices to specifically target: the MT-32, and the AdlibAdLib. The MT-32 is a MIDI synth while the Adlib AdLib is a less expensive card based around the OPL2, a non-MIDI chip. Anyone interested in Sierra music and its history can find information at the [ Sierra Soundtrack Series].
Music is stored as a series of MIDI events, and the sound resource is basically just a MIDI file. The MIDI standard and device implementations are not covered here in detail, but specifications should be readily available elsewhere.
;Non-MIDI Synths
:Generally not as good as MIDI synths, but also less expensive. The OPLx family of chips are still very common among home PC users thanks to the Adlib AdLib and SoundBlaster cards. Synths are polyphonic with definable instruments through patch files, but drivers must be written to interpret MIDI events and turn them into commands the hardware will recognize. Support for most sound controls gets lost in the process. Furthermore, drivers must map logical, polyphonic MIDI channels to physical, monophonic hardware channels. A control (<tt>4Bh</tt>) was introduced for this purpose and will be discussed later.
The first byte is a digital sample flag. Afterwards 1 byte follows for each channel (totals in 17 bytes).
The upper 4 bits of that byte specify how many voices each logical MIDI channel will be playing. The lower 4 bits specify which drivers should react on that channel. Bit 0 set means adlib AdLib shall react. Bit 1 set means PCjr shall react. MT32 will react on all channels. Bit 3 signals the control channel.
The original sierra driver needs bit 3 set and bit 0 unset to find the control channel. Also the adlib AdLib driver needs bit 3 to be unset, otherwise the driver will ignore the channel even if bit 0 is set.
Currently its not known if the digital sample flag behaves the same as in the SCI0 header.


Navigation menu