When changing to waveform zero (no waveform selected) the OSC3 register is not changed.
The attached test does the following:
* set pulse with pulse widht $fff, OSC3 will read $00;
* set pulse with pulse widht $000, OSC3 will read $ff;
* set no waveform, OSC3 will still read $ff;
* wait ~3 secs, OSC3 should now read $00;
The fix is trivial, will post it later as I don't have the code at hand, if someone in the meanwhile can confirm the test works as expected.
tested and modified the test a bit, see https://sourceforge.net/p/vice-emu/code/HEAD/tree/testprogs/SID/osc3-wave0/
it works on old and new SID... as with other bitfade things, the time it takes varies significantly with temperature, and is generally longer on 8580
Great, here comes the patch.
Last edit: Leandro Nini 2020-10-13
ok, it looks nothing like on the real thing though.... on 8580 it prints a lot of different values before it goes to 0 (around 40 values in around $400 frames on cold machine). on 6581 its something like 10 values and perhaps 200 frames. No idea how much work it is to make it more "real" - but if it isnt too much hazzle, it'd be nice if you could make it so :)
anyway, patch applied in r38798
Last edit: gpz 2020-10-13
Yeah, actually the individual bits fade down at different speed, same for the shift register reset.
Would indeed be nice to have a realistic pattern, I'll add it to my TODO list.
closed via patch #248