C64: fix glitches when one-tick gap is on
This commit is contained in:
parent
a09c1949ac
commit
992fefd9d2
|
@ -1045,8 +1045,10 @@ void DivEngine::nextRow() {
|
|||
if (!(pat->data[curRow][0]==0 && pat->data[curRow][1]==0)) {
|
||||
if (pat->data[curRow][0]!=100 && pat->data[curRow][0]!=101 && pat->data[curRow][0]!=102) {
|
||||
if (!chan[i].legato) {
|
||||
bool wantPreNote=false;
|
||||
if (disCont[dispatchOfChan[i]].dispatch!=NULL) {
|
||||
if (disCont[dispatchOfChan[i]].dispatch->getWantPreNote()) dispatchCmd(DivCommand(DIV_CMD_PRE_NOTE,i,ticks));
|
||||
wantPreNote=disCont[dispatchOfChan[i]].dispatch->getWantPreNote();
|
||||
if (wantPreNote) dispatchCmd(DivCommand(DIV_CMD_PRE_NOTE,i,ticks));
|
||||
}
|
||||
|
||||
if (song.oneTickCut) {
|
||||
|
@ -1064,7 +1066,7 @@ void DivEngine::nextRow() {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (doPrepareCut && chan[i].cut<=0) chan[i].cut=ticks;
|
||||
if (doPrepareCut && !wantPreNote && chan[i].cut<=0) chan[i].cut=ticks;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ void FurnaceGUI::drawCompatFlags() {
|
|||
}
|
||||
ImGui::Checkbox("Auto-insert one tick gap between notes",&e->song.oneTickCut);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("when enabled, a one-tick note cut will be inserted between non-legato/non-portamento notes.\nthis simulates the behavior of some Amiga/SNES music engines.");
|
||||
ImGui::SetTooltip("when enabled, a one-tick note cut will be inserted between non-legato/non-portamento notes.\nthis simulates the behavior of some Amiga/SNES music engines.\n\nineffective on C64.");
|
||||
}
|
||||
ImGui::Checkbox("Broken speed alternation",&e->song.brokenSpeedSel);
|
||||
if (ImGui::IsItemHovered()) {
|
||||
|
|
Loading…
Reference in New Issue