hi guys,
i'm working on a vst plugin which uses resid. for comparison and understanding the SID, i wanted to write some sort of SID dump player, so i found this nice thread.
what i've found so far:
*) for the 16 bit values like freq and pulse it makes no difference, if i write only the changed byte or both bytes.
*) in the siddump source are some checks for the waveform, which are not correct
if a channel is synced and/or ring-modulated by a channel, then the modulating channel not requires to have a waveform selected. only the modulator's freq is relevant.
http://www.waitingforfriday.com/index.php/Commodore_SID_6581_Datasheet#Control_Register_.28Register_04.29*) in the siddump source the filter cutoff assignment is not correct
Code: Select all
filt.cutoff = (mem[0xd415] << 5) | (mem[0xd416] << 8);
should be
Code: Select all
filt.cutoff = (mem[0xd415] & 0x7) | (mem[0xd416] << 3);
0xd415 contains the lower 3 bits
0xd416 the higher 8 bits
however, what i've done, is to remove all the note-on/off checking and only use the "raw" register changes.
i export a binary file which contains a "delta-flags" byte (one set bit for each changed register), followed by the register values only.
this reduces the file size a lot, but still is much too large. some sort of pattern recognition would be nice here.
i wrote an asm player for this format and it works quite nice for all tested sid files so far, except for last ninja 2, which just fades out after a few seconds...?
i will cleanup and upload the sources later.
mike