Topic: new engine: Octode 2k16
Nothing special really, just some practise so my asm skills don't get rusty during all that C++ learning I'm doing recently.
Octode 2k16 is basically a rewrite of Octode PWM with better sound and an increased frequency range. Variable duty cycles have been axed in this version, instead you get some limited volume control on the 3 available click drums. Code is rather sloppy and there are quite a few cycles left, so perhaps I'll add some more features later on. Also, Octode 2k16 uses the OUT (C),0 instruction, so like with fluidcore, there are two different versions for NMOS (regular ZX, emulators) and CMOS (Pentagon, Eva, etc.) CPUs. I was too lazy to add CPU detection code, so for now just select the version you need.
download (XM converter included)
source
test tune
Test tune is recorded from 48K hardware. It's interesting to see how emulators fail to handle this fast switching code properly (same with fluidcore), even though it's very similar to regular pulse interleaving.