fix ECxx effect

fixes #57
This commit is contained in:
tildearrow 2022-01-23 22:00:46 -05:00
parent 9fe0efd63a
commit 35ee06d6cf
2 changed files with 4 additions and 2 deletions

View file

@ -939,6 +939,9 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
} else { } else {
ins->std.dutyMacro[j]=reader.readI(); ins->std.dutyMacro[j]=reader.readI();
} }
if ((ds.system[0]==DIV_SYSTEM_C64_8580 || ds.system[0]==DIV_SYSTEM_C64_6581) && ins->std.dutyMacro[j]>24) {
ins->std.dutyMacro[j]=24;
}
} }
if (ins->std.dutyMacroLen>0) { if (ins->std.dutyMacroLen>0) {
ins->std.dutyMacroLoop=reader.readC(); ins->std.dutyMacroLoop=reader.readC();

View file

@ -868,7 +868,6 @@ bool DivEngine::nextTick(bool noAccum) {
dispatchCmd(DivCommand(DIV_CMD_PITCH,i,chan[i].pitch+(((chan[i].vibratoDepth*vibTable[chan[i].vibratoPos]*chan[i].vibratoFine)>>4)/15))); dispatchCmd(DivCommand(DIV_CMD_PITCH,i,chan[i].pitch+(((chan[i].vibratoDepth*vibTable[chan[i].vibratoPos]*chan[i].vibratoFine)>>4)/15)));
break; break;
} }
} }
if ((chan[i].keyOn || chan[i].keyOff) && chan[i].portaSpeed>0) { if ((chan[i].keyOn || chan[i].keyOff) && chan[i].portaSpeed>0) {
if (dispatchCmd(DivCommand(DIV_CMD_NOTE_PORTA,i,chan[i].portaSpeed,chan[i].portaNote))==2 && chan[i].portaStop) { if (dispatchCmd(DivCommand(DIV_CMD_NOTE_PORTA,i,chan[i].portaSpeed,chan[i].portaNote))==2 && chan[i].portaStop) {
@ -882,7 +881,7 @@ bool DivEngine::nextTick(bool noAccum) {
if (chan[i].cut>0) { if (chan[i].cut>0) {
if (--chan[i].cut<1) { if (--chan[i].cut<1) {
chan[i].oldNote=chan[i].note; chan[i].oldNote=chan[i].note;
chan[i].note=-1; //chan[i].note=-1;
if (chan[i].inPorta) { if (chan[i].inPorta) {
chan[i].keyOff=true; chan[i].keyOff=true;
chan[i].keyOn=false; chan[i].keyOn=false;