Electronic Arts MUS

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Other games with similar file midi music files)
Line 6: Line 6:
 
}}
 
}}
 
'''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''.
 
'''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''.
 
== Identification ==
 
 
The signature bytes at the start of the file are <code>7D 00 00</code> for the Cartooners version, and <code>7F 00 00</code> in other versions.
 
 
== Format ==
 
  
 
=== Sound Drivers ===
 
=== Sound Drivers ===
Line 31: Line 25:
  
 
Software: Cartooners 1988/1989 - by: Electronic Arts & IDTA
 
Software: Cartooners 1988/1989 - by: Electronic Arts & IDTA
 
  
 
=== Music File Layout ===
 
=== Music File Layout ===
  
Begin Structure: Header.
+
[Music and Sounds]
  
0x00 WORD Data offset.
+
Endianess: big.
  
0x02 0x0A BYTES Unknown. (Roland MT 32 or LAPC: Zeroing any one of these bytes appears to disable an instrument.)
+
Extenstion: *.mus
  
0x0C 0x07 BYTES NULL
+
[File Layout]
  
0x13 BYTE Unknown.
 
  
0x14 BYTE Unknown.
+
Begin Structure: Header.
  
0x15 BYTE Unknown.
+
0x00 WORD Absolute offset of MIDI track data.
 +
0x02    BYTES Header data [0x00] - 0x02 bytes in length. Purpose unknown.
  
0x16 BYTE Unknown.
+
End Structure
  
0x17 BYTE Unknown. (0x00 or 0x71)
 
  
0x18 BYTE Unknown. (0x00 or 0x68)
+
Begin Structure: MIDI track data.
  
0x19 WORD NULL
+
0x00 BYTES MIDI track data.
 
+
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
 
End Structure
  
  
Begin Structure: Data.
 
  
'''UNCERTAIN!'''
+
Begin Structure: Footer.
  
0x00 0x0F BYTES Instrument indexes??? (Modifying/copying this section from other music files appears to change the instruments but not the tune.)
+
0x00 BYTE MIDI event "Stop playback".
  
0x0F BYTES Linear data describing the music to be played.
+
0x01 BYTE Indicates whether or not the music/sound is played again when the end is reached: (0x80 = repeat, 0x81 stop.)
 
+
(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
 
End Structure
  
  
Begin Structure: Footer.
+
[Notes]
 
+
0x00 BYTE MIDI event "Stop playback"??? ***
+
 
+
0x01 BYTE Loop flag.
+
 
+
0x80 = Keep looping the music.
+
 
+
0x81 = Stop playing the music.
+
 
+
End Structure
+
  
 +
The headers typically contain the following string: "rsxx}u".
  
 +
[Other games with similar file midi music files]
 +
See the file "Electronic Arts Music Files.ods".
 
'''Note: *** = Same for all files.'''
 
'''Note: *** = Same for all files.'''
  

Revision as of 11:50, 11 July 2017

File Format
Name Electronic Arts MUS
Ontology
Extension(s) .mus
Released 1989

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

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

[Music and Sounds]

Endianess: big.

Extenstion: *.mus

[File Layout]


Begin Structure: Header.

0x00 WORD Absolute offset of MIDI track data. 0x02 BYTES Header data [0x00] - 0x02 bytes in length. Purpose unknown.

End Structure


Begin Structure: MIDI track data.

0x00 BYTES MIDI track data.

End Structure


Begin Structure: Footer.

0x00 BYTE MIDI event "Stop playback".

0x01 BYTE Indicates whether or not the music/sound is played again when the end is reached: (0x80 = repeat, 0x81 stop.)

End Structure


[Notes]

The headers typically contain the following string: "rsxx}u".

[Other games with similar file midi music files] See the file "Electronic Arts Music Files.ods". 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

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox