jonwil Messages: 81 Registered: November 2007 Location: Australia
Member owner of CNCMods.net
From: *tpgi.com.au
This is what I have found out about PathMusic as applied to RA3 and Uprising (C&C4 may be different).
PathMusic consists of the following asset types:
PathMusicMap
PathMusicTrack
PathMusicEvent
PathMusicEventSet
PathMusicGameDynamicState
PathMusicGameDynamicStateSet
PathMusicGameDynamicTransition
PathMusicEventSet, PathMusicGameDynamicState, PathMusicGameDynamicStateSet and PathMusicGameDynamicTransition are used to link PathMusic data into the scripts and are fully editable via the SDK so I wont go into those.
A PathMusicEvent is a single event in the PathMusic system that the game will trigger. Each PathMusicEvent references a unique hash (stored in a file RA3Music.h that we dont have). A PathMusicEvent chunk is designed to link a name to a hash. The hash seems to be used somehow in the rest of the PathMusic system.
A PathMusicMap is basically the data from a file (of type .mpf according to the SDK). Its purpose and format is unknown but it likely matches events to track data in the PathMusicTrack assets.
A PathMusicTrack holds a bunch of pieces of music (of various sizes/lengths). According to the SDK, the PathMusic data is the contents of a .mus file. The data from said .mus file goes into the .cdata file for the PathMusicTrack asset.
http://www.cncmods.net/files/mus.zip contains a tool that will take a .mus file (just take the .cdata file for the PathMusicTrack asset) and will produce information about the track file as well as outputting each individual piece of music into a .cdata file.
It also contains code for that tool as well as a dumped .mpf file from RA3:Uprising.
If you just want to extract the music pieces from RA3 and dont care about all the technical stuff, do the following:
1.Download mus.zip
2.Download the ealayer3 tool
3.Extract the following files from the RA3 StaticStream.big file:
data\static\cdata\a70bc1d6.9f12cf33.240021e2.dca9eaab.cdata as ra3ram.mus
data\static\cdata\a70bc1d6.9f12cf33.2d97c0ca.6d02956b.cdata as ra3.mus
Or from Uprising StaticStream.big:
data\static\cdata\a70bc1d6.9f12cf33.240021e2.1f7e0ebc.cdata urram.mus
data\static\cdata\a70bc1d6.9f12cf33.2d97c0ca.a01921dd.cdata as ur.mus
Put the .mus files, mus.exe, ealayer3.exe and libmpg123-0.dll into a folder. Drag each of the .mus files into mus.exe in turn. This will create a bunch of files like ra3ram.mus.1.cdata and so on. Then drag each of those .cdata files onto ealayer3.exe. That will create a pile of MP3 files you can listen to. These files range from tiny fragments of music all the way up to full pieces of music.
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Coder of BHS.DLL
Official member of Blackhand Studios™
Hi! First off, thank you for developing these tools. I am desperately looking for a way to extract the music from the Red Alert 3 Beta (these contain tracks that did not make it into the final game and are impossible to get ahold of, hidden away in the .big files.)
However I cannot get your mus.exe tool to work. I used your BIG extractor tool to extract the a70bc1d6 cdata files from the StaticStream.big file. (From what I understand from your instructions, the cdata files beginning with a70bc1d6 are the game music streams.)
However the next step, dragging the extracted a70bc1d6.d0d6e5cc.44cf1bf0.76f9ec0e.cdata file to mus.exe results in "mus.exe has stopped working."
I even tried this with the retail version of red alert 3, extracting data\static\cdata\a70bc1d6.9f12cf33.240021e2.dca9eaab.cdata and data\static\cdata\a70bc1d6.9f12cf33.2d97c0ca.6d02956b.cdata and trying to drag them to mus.exe. Same crash.
I can host the cdata files somewhere if you want to try it out. I really want to get this working so I can get at the music.
I'm running Windows 7 64 bit. Thanks again!