Re: Source release [Re: SFX Expander programming and VICE]

From: Gábor Lénárt <>
Date: Mon, 5 Dec 2011 17:44:30 +0100
Message-ID: <>
More info (if I am not to boring for the list already ...)

On Mon, Dec 05, 2011 at 12:36:23PM +0100, Gábor Lénárt wrote:
> On Mon, Dec 05, 2011 at 02:57:18AM -0800, davidt wrote:
> > Details about the .IMF format can be found here:
> > 
> >
> > 
> :) I found that myself too during the weekend. As far as I see, IMF always
> uses 4 bytes for a register event, while DRO uses only 2.  Ok, that's not
> fair, since the timing info then uses two extra bytes in DRO (which is
> always included in IMF), but it's usually needed after some heavy
> register-pool modifications.  So in general IMF files are larger than DRO
> for the same music content.  Also I wouldn't use two different formats
> (DRO/IMF).  What I can do however is to write a converter (not for C64, but
> for PC) which can convert IMF files to DRO (maybe there is such a thing
> already, I found only the opposite though).  Also the IMF files have the
> problem that speed info is not encoded and you must "know" it.

First: replying to myself is fun. :)

Ok, I'm more or less done with the IMF->DRO converter, and I managed to play
an IMF file on C64 (well, it's not fair to say that: I meant I could play
the DRO file converted from IMF with my converter running on PC). However I
must say that the document (
is not correct: it says, that word sized length info is the beginning. For
the IMF file I could find, there is DWORD size ... It took me hours to
figure out why I have no the expected audio, till I find that I have to skip
4 bytes at the beginning not two ... Interesting. According to the source
code of adplay package (which can play many AdLib formats on PC) there are
even more "IMF variants" and I have to check many things to decide which
kind of IMF is this first ...

Since that works (more or less), I am thinking on writing a direct IMF
player too (no need for the conversion) however IMF's timing is kinda
strange (no speed is stored, you must select it "by hand" - it's simply not
in the file), also timings should be converted which involves use of
divide operation, etc.

> > I've had a quick look at your youtube film, when I run the DRO player, the
> > text is not in straight lines, its staggered across the screen.
> That's odd :) I would say VICE should be correct to emulate at least about
> basic 6502 opcode emulation, since the offsets of the register display data
> is calculated at the beginning of the program ...

Btw, does it happen with the PRG I compiled, or your compiled version with a
custom DRO you included in it? The original PRG in the zip I've posted
worked fine for me (and also for Raj - she sent me a screenshot too, a real
one on a monitor of a C64 ...) with Vice. It's interesting if it does not
work for you in the same way.

       Message was sent through the cbm-hackers mailing list
Received on 2011-12-05 17:00:35

Archive generated by hypermail 2.2.0.