First post, by synamax
- Rank
- Newbie
Hey guys,
I'm currently working on reverse engineering the "HERAD" Ad Lib music format made by Cryo Interactive. This format was used in three DOS games: Dune, KGB, and MegaRace. Binarymaster at VGMFP's wiki started the initial reverse engineering work and I've taken up the bulk of the work for the past several months. We made some great strides and we now have the ability to add custom music to Dune and MegaRace. Ultimately, I would love to see AdPlug support the format and maybe even an instrument editor or music editor as I think the format is fairly flexible and easy to support.
For those who are interested in looking at how HERAD works, here's the wiki page where I've put all my documentation. http://www.vgmpf.com/Wiki/index.php?title=HERAD
Basically, HERAD's music notation is regular MIDI, however Pitch Bend events only use one byte (MSB only) and in MegaRace, the Note Off events have the velocity byte truncated. The instruments are formatted very similarly to Ad Lib's INS format, but there are exclusive macros that modify specific parameters of the instrument patch, such has modulator/carrier output levels, feedback scaling, automated pitch bends, etc. These macros are what give HERAD its expressive sound. MegaRace also introduces MIDI keymapping, which makes drum sequencing a lot easier.
I'm looking for additional help with reverse engineering the music. If anyone else that's well-versed in Ad Lib programming (especially Ad Lib Gold 1000), or if anyone is interested in looking at the disassembled music drivers, that would be greatly appreciated. The majority of the instrument data has been figured out but some of the Dune data that I'm running into doesn't make any sense, so any help would be appreciated.
Last but not least, here's an example of a custom music track in MegaRace. I wrote a short MIDI loop in FL Studio and hex edited a brand new HERAD music file together with that MIDI data. Then I compressed it in Cryo's HSQ format and injected the music data into the MEGARACE.DAT file and volia!