diff --git a/src/engine/platform/c64.cpp b/src/engine/platform/c64.cpp index 3b4119864..35195a203 100644 --- a/src/engine/platform/c64.cpp +++ b/src/engine/platform/c64.cpp @@ -543,13 +543,14 @@ void DivPlatformC64::reset() { } if (sidCore==2) { - dSID_init(sid_d,chipClock,rate,sidIs6581?6581:8580,1); + dSID_init(sid_d,chipClock,rate,sidIs6581?6581:8580,needInitTables); dSID_setMuteMask( sid_d, (isMuted[0]?0:1)| (isMuted[1]?0:2)| (isMuted[2]?0:4) ); + needInitTables=false; } else if (sidCore==1) { sid_fp.reset(); sid_fp.clockSilent(16000); @@ -635,6 +636,7 @@ int DivPlatformC64::init(DivEngine* p, int channels, int sugRate, const DivConfi parent=p; dumpWrites=false; skipRegisterWrites=false; + needInitTables=true; writeOscBuf=0; for (int i=0; i<3; i++) { isMuted[i]=false; diff --git a/src/engine/platform/c64.h b/src/engine/platform/c64.h index 77c236760..2ea987cc8 100644 --- a/src/engine/platform/c64.h +++ b/src/engine/platform/c64.h @@ -68,7 +68,7 @@ class DivPlatformC64: public DivDispatch { unsigned char sidCore; int filtCut, resetTime; - bool keyPriority, sidIs6581; + bool keyPriority, sidIs6581, needInitTables; unsigned char chanOrder[3]; unsigned char testAD, testSR;