1) Even the samples seem to be handled as a N.9 bit fractional value which gives better results with high attenuation/envelopes and simplifies modulation. BTW, I think it is a 12.9 bit fractional int, because (AFAIR) 9+12=21 is some magic value (I think I read about a 21-bit latch register somewhere), and 12 bits are enough to handle +/-4095.
2) I only support HSC, and that is a slightly changed code from AdPlug - I already have disassembled parts of the original play routine, and I can say that the AdPlug code is definitively different. E.g., the adplug code does not use "update flags", while the original play routine makes heavy use of them.
3) OK, you're right with the envelope - I changed the value because of some experiments and found it to sound more like the youtube videos, now I don't hear any difference anymore - strange. Second, 63 makes more sense to me as it can be implemented as a simple OR of all 6 bits with the carry bit 7, or am I wrong here?
4) My current plan is to stabilize the current code and add comments before merging it into master, then I will probably add some more formats, starting with that D00 format. That involves getting rid of the special operator/channel classes (like high hat or top cymbal) or make them at least share the data.