Electronic Arts MUS

From Just Solve the File Format Problem
Revision as of 14:59, 8 February 2015 by Peter Swinkels (Talk | contribs)

Jump to: navigation, search
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

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.

See also

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox