Skip to content
LGB Z edited this page Mar 18, 2015 · 2 revisions

The IMF format

IMF (id Software Music Format) file format is similar to DRO: it contains raw AdLib register events (register number, register data) and timing information.

Consideration

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.

Details

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.

IMF files

You can find "some" here:

ftp://modland.ziphoid.com/pub/modules/Ad%20Lib/Apogee/

My studies on IMF

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.