Understanding the Ultratracker file format [Solved]
Posted: 13 Mar 2023 23:01
Hi. I'm working on reverse engineering an old game that uses a music format very similar to the Ultratracker ULT files.
Unfortunately, I don't fully understand the ULT format just by looking at the HEX decode and a format specification. I found the point where track instructions start but calculating its length, and thus getting to the audio sample section, turned out to be incorrect. I searched the VLC source code and found the magic string "MAS_UTrack_" but couldn't find anything else relating to the file format (by string search).
Is there some source code in VLC that parses the ULT file I could look at?
Thank you for your time.
Edit: 2023.03.14
With the help of libmodplugin and similar C code, I managed to convert the game file into an ULT file and got (almost) the expected sound. Thank you for the feedback.
Unfortunately, I don't fully understand the ULT format just by looking at the HEX decode and a format specification. I found the point where track instructions start but calculating its length, and thus getting to the audio sample section, turned out to be incorrect. I searched the VLC source code and found the magic string "MAS_UTrack_" but couldn't find anything else relating to the file format (by string search).
Is there some source code in VLC that parses the ULT file I could look at?
Thank you for your time.
Edit: 2023.03.14
With the help of libmodplugin and similar C code, I managed to convert the game file into an ULT file and got (almost) the expected sound. Thank you for the feedback.