-
Notifications
You must be signed in to change notification settings - Fork 1
IMF
IMF (id Software Music Format) file format is similar to DRO: it contains raw AdLib register events (register number, register data) and timing information.
However, IMF compared to DRO is harder to play:
- usually it cause larger files than DRO
- there are many versions with or without header, etc. Even "official" information on the format seems to be not true on the ones I am working as test IMF songs
- the "speed" information which is needed ot interpret the timing events is not stored in the file, so you must know and specify it before playing
These are also reasons that current C64 player does not support IMF files directly but you need a conversion done on your PC first. Direct support for IMF files are planned though (in the future). My converter can be found in the source repository with name imf2dro.c. If I understand all (well, most) of the "problems" with IMF (see later above: "My studies on IMF") and I can be quite sure it converts all different IMFs I have access for as valid DROs (which hears that it make sense)I will re-consider to write a native C64 loader/player code into my player, so no conversion will be needed then.
http://www.shikadi.net/moddingwiki/IMF_Format
However it seems that situation is not so simple. For example the IMF files I have there is a 4 bytes long "size" information, while the format description mention only 2 bytes long one. It's worth to mention that AdPlug's play utility (adplay) seems to play those anyway. So it seems the most accurate format description can be got by inspecting AdPlug's source :) For more information, check wiki page for AdPlug out.
You can find "some" here:
ftp://modland.ziphoid.com/pub/modules/Ad%20Lib/Apogee/
After I realized that IMF format is not so a "standard" as even IMF descriptions seems to be not-always-true, I've decided to write an own specification based on the format manuals I could find on the net and also AdPlug's source was a very nice help to understand the different "versions" of the header (or "headerless") IMF versions.