God of Thunder Music Format
God of Thunder stores its music in this format. It is a raw Adlib format, containing the exact register and data pairs to send to the OPL chip.
The file begins with a header of unknown purpose.
|UINT16LE header||Always 0x0001|
This is then immediately followed by a variable number of three byte chunks.
|BYTE delay||Number of ticks to wait *after* the data has been sent|
|BYTE reg||OPL register to write to|
|BYTE val||Value to write|
The very last chunk has all values set to zero, plus a final 0x00 byte.
Songs are played at a different tempo (i.e. each delay tick lasts a different length of time): menu.got plays at 140 Hz, all other songs plays at 120 Hz. Known song lengths (based on Teppic's PCM recordings of in-game Adlib playback) are:
|menu||1:15,759||in got.exe, not in gotres.dat|
|opensong||1:19,821||Story song - slow version of song33|
|song33||1:13,730||in-game version of the story song|
When some songs are converted to this format (e.g. Keen 6 aliens.imf), the tempo speeds up considerably towards the end of the file, so it would seem there is some way of adjusting the song tempo during playback. Check whether it's a conversion bug.
The following tools are able to work with files in this format.
|Name||Platform||Play?||Create new?||Modify?||Convert/export to other?||Import from other?||Access hidden data?||Edit metadata?||Notes|
|Camoto||Linux/Win||Yes||No||No||Yes; many||Yes; many||N/A||N/A||Incorrect tempo|
|GromPE's GoT unpacker||Windows||No||No||No||Yes; .imf||No||N/A||N/A||Incorrect tempo|
|GromPE's OPL2WAV||Windows||No||No||No||Yes; .wav||No||N/A||N/A||Incorrect tempo|
|Wombat||Windows||No||No||No||Yes; .imf||No||N/A||N/A||Incorrect tempo|
This file format was reverse engineered by Malvineous. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)