Electronic Arts MUS
Electronic Arts MUS files were used, in several variants, in some Electronic Arts games in the 1989-92 period, including Cartooners (which was actually an animated-cartoon creator rather than a game, per se), Ski or Die, The Lost Files of Sherlock Holmes, and (apparently in a very different format, perhaps compressed) The Immortal.
Contents |
Identification
The signature bytes at the start of the file are 7D 00 00
for the Cartooners version, and 7F 00 00
in other versions.
Format
Sound Drivers
The music files that come with Cartooners appear to have sound hardware specific sections in their headers. See below for more information. Cartooners supports the following hardware for playing music:
- AD LIB: adtoons.smb
- CMS: cstoons.smb
- PC Speaker: n/a
- Roland MT 32/LAPC: mttoons.smb
All of the above should work with DOSBox v0.74 default sound settings except for "CMS". Set "sbtype" to "=sb1" under the "[sblaster]" section to enable "CMS" support. Whether or not a driver is used by Cartooners depends on whether the file present in the same directory as "Cartoons.exe". How the program selects a drive when there are multiple drivers present is unknown.
Music File Information
Endianness: big???
Extenstion: *.mus
Software: Cartooners 1988/1989 - by: Electronic Arts & IDTA
Music File Layout
Begin Structure: Header.
0x00 WORD Data offset.
0x02 0x0A BYTES Unknown. (Roland MT 32 or LAPC: Zeroing any one of these bytes appears to disable an instrument.)
0x0C 0x07 BYTES NULL
0x13 BYTE Unknown.
0x14 BYTE Unknown.
0x15 BYTE Unknown.
0x16 BYTE Unknown.
0x17 BYTE Unknown. (0x00 or 0x71)
0x18 BYTE Unknown. (0x00 or 0x68)
0x19 WORD NULL
0x1B BYTE Unknown.
0x1C 0x06 BYTES NULL
0x22 0x08 BYTES Unknown. (AD LIB: Zeroing any one of these bytes appears to disable an instrument.)
0x2B 0x08 BYTES Unknown. (CMS: Zeroing any one of these bytes appears to disable an instrument.)
0x34 BYTE Unknown.
0x35 DWORD Unknown. (0xFFFFFFFF) ***
0x39 BYTE NULL
0x3A BYTE Unknown. (0x00 or 0xFF)
0x3B BYTE Unknown. (0x00 or 0xFF)
0x3C BYTE NULL
0x3D BYTE Unknown. (0x00 or 0xFF)
0x3E BYTE Unknown. (0xFF) ***
0x3F BYTE NULL
0x40 WORD Unknown. (0xFFFF) ***
0x42 BYTE Unknown. (0x01) ***
0x43 BYTE Unknown.
0x44 BYTE Unknown.
0x45 BYTE Unknown.
0x46 BYTE Unknown. (0x09) ***
0x47 BYTE Unknown. (0xD0 or 0xDC)
0x48 BYTE Unknown. (0xD0 or 0xDC)
0x49 BYTE Unknown. (0xD0 or 0xDC) (Defines PC-Speaker instruments???)
0x4A BYTE NULL
0x4B BYTE Unknown. (PC-Speaker???)
0x4C WORD NULL
0x4E DWORD Unknown. (0x01010101) ***
0x52 DWORD NULL
0x56 BYTE Unknown. (0x01) ***
0x57 0x06 BYTES NULL
0x5D WORD Unknown. (0x0101) ***
0x5F WORD Unknown. (0x0202) ***
0x61 WORD Unknown. (0x0101) ***
0x63 WORD NULL
0x65 BYTE Unknown. (0x01) ***
0x66 BYTE Unknown. (0x02) ***
0x67 BYTE Unknown. (0x03) ***
0x68 BYTE Unknown. (0x04) ***
0x69 BYTE NULL
0x6A BYTE Unknown. (0x09) ***
0x6B WORD NULL
0x6D DWORD "rsxx" block identifier. ***
0x71 WORD Unknown. ***
0x73 0x0A BYTES NULL
End Structure
Begin Structure: Data.
UNCERTAIN!
0x00 0x0F BYTES Instrument indexes??? (Modifying/copying this section from other music files appears to change the instruments but not the tune.)
0x0F BYTES Linear data describing the music to be played.
(Music plays for a while until it suddenly goes silent/freezes(no duration information???) on a note when data is zeroed beyond a specific point.)
Effects when data bits are null:
7 6 5 4 3 2 1 0
x x . . . . . . No music.
. . x . . . . . Minor distortion.
. . . x x x x . Moderate/severe distortion.
. . . . . . . x Music sounds "sped up."
UNCERTAIN!
End Structure
Begin Structure: Footer.
0x00 BYTE MIDI event "Stop playback"??? ***
0x01 BYTE Loop flag.
0x80 = Keep looping the music.
0x81 = Stop playing the music.
End Structure
Note: *** = Same for all files.
Other games with similar file midi music files
-"Ski or Die has" a music file called "Ski2.bin" which Cartooners appears to play correctly when added to an animation. Ski or Die can play a Cartooners' music file when "Ski2.bin" is substituted with one, although it is played about two times too fast.
-"The Lost Files of Sherlock Holmes: The Case of the Serrated Scalpel" music files (when extracted from the file "Music.lib") can be played by Cartooners when the first 0x0B (ASCII 0x20 characters (spaces)) of bytes has been removed from their headers.
Also:
-"Car and Driver" (in c&d.lib as *.bin files)
-"Hard Nova" (as *.bin files)
-"Lakers versus Celtics and the NBA Playoffs" (the files "o", "r", "s", and "v")
-"Populous - The Promised Lands" (pop_tune.dat)
See also
- Cartooners actor file (actor format used in Cartooners)
- Electronic Arts INF (preference format used in Cartooners)
- Electronic Arts MOV (movie format used in cartooners)