diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index 593b659c3..1d72760a6 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -782,18 +782,10 @@ int DivPlatformOPLL::dispatch(DivCommand c) { if ((int)properDrums==c.value) break; if (c.value) { properDrums=true; - immWrite(0x0e,0x20); - drumState=0; } else { properDrums=false; - immWrite(0x0e,0x00); - drumState=0; } - chan[6].freqChanged=true; - chan[7].freqChanged=true; - chan[8].freqChanged=true; - chan[9].freqChanged=true; - chan[10].freqChanged=true; + switchMode(properDrums); break; case DIV_CMD_MACRO_OFF: chan[c.chan].std.mask(c.value,true);