README.TXT

SCXMI version 0.01
==================
SCXMI plays Audio Interface Library XMIDI files for the 1994 game title
Strike Commander(tm) by ORIGIN Systems, Inc. for DOS.

What does SCXMI solve that XPLAY can't do?
------------------------------------------
As I was using the Miles AIL 2.0 included XPLAY.EXE with the extracted
Strike Commander Roland MT-32 XMI files, I realized that the MT-32's rhythm
channel was not initialized properly. For example, a whistle type sound was
played instead of a custom snare drum patch in most of the songs.

With the help of the Origix FX screen saver demo for Windows (uses AIL also),
I discovered that a special XMI file (STRKPERC.XMI) was required to initilize
the MT-32's rhythm channel properly prior to playing a XMI file.

So, by slightly tuning the XPLAY.C source code, I was able to build this
custom program for playing Strike Commander Roland MT-32 XMI files correctly
on the on the Roland MT-32 sound module.

The Strike Commander XMI files for the AdLib Music Synthesizer card are
unaffected by this issue, the provided Global Timbre Library file works well.

Other improvements over XPLAY include:

 o Playback can be stopped or aborted with a single keystroke.

 o Sound drivers, GTL, etc. files can be placed into a SCXMI's directory
   while running the program from the directory where the XMI files are
   located. In case of issues, check that SCXMI.EXE filename length is 9
   characters.

Files included
--------------
ADLIB.ADV     14,775      1-01-95 AIL XMIDI driver for the AdLib.
MT32MPU.ADV   13,412      1-01-95 AIL XMIDI driver for the MT-32.
README.TXT     5,231      1-01-95 This file.
SCXMI.EXE     53,284      1-01-95 The program file itself.
STRIKE.AD     30,550      1-01-95 AIL Global Timbre Library for AdLib.
STRIKE.MT     39,372      1-01-95 AIL Global Timbre Library for MT-32.
STRKPERC.XMI     902      8-15-92 XMI MIDI for MT-32 initialization.

It may be wise to copy these files to a new directory and add that directory
to the PATH to keep the content XMI files separate from these program files.

Syntax
------
This program plays a Strike Commander(tm) Extended MIDI (XMIDI) sequence
for a supported sound hardware through the Audio Interface Library.

Usage: SCXMI [sound] [filename]

where
 sound       Specifies the suppoedted sound driver selection.
             "r" for Roland MT-32 / LAPC-I (and compatible) devices.
             "a" for AdLib Music Synthesizer card (and compatibles).
 filename     The extracted Strike Commander(tm) XMI filename to play.

Notes
-----
 o Some Strike Commander XMI songs do not reach the XMI event End-of-track,
   so user intervention is required for stopping the playback.
 o XMI sequences are not supported, the first sequence of an XMI file is
   always played.
 o The AIL audio drivers included with the game are not compatible with
   SCXMI.
 o SCXMI does not provide the extracted XMI content. See links in the
   thanks section for help on reverse-engineering these assests from
   your lisenced copy of Strike Commander(tm).

Tested systems
--------------
 o i486DX2-based IBM compatible computer with MS-DOS 6.22 running at 66MHz
   and a Roland MT-32 (old model) hooked up using a Roland SCC-1 card as the
   MIDI interface.
 o The same 486 with an AdLib Music Synthezier card (1990 revision).

Thanks
------
Thanks to the reverse engireering work (.TRE format, .PAK decompress, etc.)
by Fabien Sanglard, Mario "HCl" Brito and others. Please see "Reverse
Engineering Strike Commander" at

http://fabiensanglard.net

for more details about reverse-engineering Strike Commander assets.

Thanks to VOGONS member "bristlehog" for creating UXX: The Universal XMIDI
Extractor used to further extract the XMI files.

Copyright (C) 2023 Pekka Leppaluoto
Copyright (C) 1991, 1992 Miles Design, Inc.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
