diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index 1b24241af..f37b25769 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -121,7 +121,7 @@ void DivPlatformNES::tick() { if (i==3) { // noise chan[i].freq=noiseTable[chan[i].baseFreq]; } else { - chan[i].freq=(chan[i].baseFreq*(ONE_SEMITONE-chan[i].pitch))/ONE_SEMITONE; + chan[i].freq=(chan[i].baseFreq*pow(2,(double)-chan[i].pitch/(12.0*128.0))); if (chan[i].freq>2047) chan[i].freq=2047; } if (chan[i].keyOn) { diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 252abe749..a8490b6b3 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -522,10 +522,14 @@ void DivEngine::processRow(int i, bool afterDelay) { extValuePresent=true; break; case 0xef: // global pitch - globalPitch+=(signed char)(effectVal-0x80)*120; + for (int i=0; i>4)/15))); } break; } diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index d5f289f64..f7d1b7b7b 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -1985,7 +1985,6 @@ void FurnaceGUI::doUndo() { updateScroll(cursor.y); e->setOrder(us.order); } - break; }