diff --git a/src/engine/platform/ay.h b/src/engine/platform/ay.h index 430d5631..e8d7efce 100644 --- a/src/engine/platform/ay.h +++ b/src/engine/platform/ay.h @@ -80,7 +80,8 @@ class DivPlatformAY8910: public DivDispatch { nextPSGMode(PSGMode(1)), dac(DAC()), autoEnvNum(0), - autoEnvDen(0) {} + autoEnvDen(0), + konCycles(0) {} }; Channel chan[3]; bool isMuted[3]; diff --git a/src/engine/platform/ay8930.h b/src/engine/platform/ay8930.h index d51ebf0d..0bd2171a 100644 --- a/src/engine/platform/ay8930.h +++ b/src/engine/platform/ay8930.h @@ -90,7 +90,8 @@ class DivPlatformAY8930: public DivDispatch { dac(DAC()), autoEnvNum(0), autoEnvDen(0), - duty(4) {} + duty(4), + konCycles(0) {} }; Channel chan[3]; bool isMuted[3]; diff --git a/src/engine/platform/fmshared_OPN.h b/src/engine/platform/fmshared_OPN.h index 19eec0aa..a8ec6772 100644 --- a/src/engine/platform/fmshared_OPN.h +++ b/src/engine/platform/fmshared_OPN.h @@ -133,6 +133,7 @@ class DivPlatformOPN: public DivPlatformFMBase { freqH(0), freqL(0), portaPauseFreq(0), + konCycles(0), mask(true) {} }; diff --git a/src/engine/platform/msm6258.cpp b/src/engine/platform/msm6258.cpp index 04ed970a..2d38e6f7 100644 --- a/src/engine/platform/msm6258.cpp +++ b/src/engine/platform/msm6258.cpp @@ -355,53 +355,6 @@ void DivPlatformMSM6258::notifyInsChange(int ins) { void DivPlatformMSM6258::notifyInsDeletion(void* ins) { } -const void* DivPlatformMSM6258::getSampleMem(int index) { - return index == 0 ? adpcmMem : NULL; -} - -size_t DivPlatformMSM6258::getSampleMemCapacity(int index) { - return index == 0 ? 262144 : 0; -} - -size_t DivPlatformMSM6258::getSampleMemUsage(int index) { - return index == 0 ? adpcmMemLen : 0; -} - -bool DivPlatformMSM6258::isSampleLoaded(int index, int sample) { - if (index!=0) return false; - if (sample<0 || sample>255) return false; - return sampleLoaded[sample]; -} - -void DivPlatformMSM6258::renderSamples(int sysID) { - memset(adpcmMem,0,getSampleMemCapacity(0)); - memset(sampleLoaded,0,256*sizeof(bool)); - - // sample data - size_t memPos=0; - int sampleCount=parent->song.sampleLen; - if (sampleCount>128) sampleCount=128; - for (int i=0; isong.sample[i]; - if (!s->renderOn[0][sysID]) continue; - - int paddedLen=s->lengthVOX; - if (memPos>=getSampleMemCapacity(0)) { - logW("out of ADPCM memory for sample %d!",i); - break; - } - if (memPos+paddedLen>=getSampleMemCapacity(0)) { - memcpy(adpcmMem+memPos,s->dataVOX,getSampleMemCapacity(0)-memPos); - logW("out of ADPCM memory for sample %d!",i); - } else { - memcpy(adpcmMem+memPos,s->dataVOX,paddedLen); - sampleLoaded[i]=true; - } - memPos+=paddedLen; - } - adpcmMemLen=memPos+256; -} - void DivPlatformMSM6258::setFlags(const DivConfig& flags) { switch (flags.getInt("clockSel",0)) { case 3: @@ -426,8 +379,6 @@ void DivPlatformMSM6258::setFlags(const DivConfig& flags) { int DivPlatformMSM6258::init(DivEngine* p, int channels, int sugRate, const DivConfig& flags) { parent=p; - adpcmMem=new unsigned char[getSampleMemCapacity(0)]; - adpcmMemLen=0; dumpWrites=false; skipRegisterWrites=false; updateOsc=0; @@ -447,7 +398,6 @@ void DivPlatformMSM6258::quit() { delete oscBuf[i]; } delete msm; - delete[] adpcmMem; } DivPlatformMSM6258::~DivPlatformMSM6258() { diff --git a/src/engine/platform/msm6258.h b/src/engine/platform/msm6258.h index 28f04f92..d64d40b4 100644 --- a/src/engine/platform/msm6258.h +++ b/src/engine/platform/msm6258.h @@ -48,9 +48,6 @@ class DivPlatformMSM6258: public DivDispatch { okim6258_device* msm; unsigned char lastBusy; - unsigned char* adpcmMem; - size_t adpcmMemLen; - bool sampleLoaded[256]; unsigned char sampleBank, msmPan, msmDivider, rateSel, msmClock, clockSel; signed char msmDividerCount, msmClockCount; short msmOut; @@ -80,12 +77,7 @@ class DivPlatformMSM6258: public DivDispatch { void poke(std::vector& wlist); void setFlags(const DivConfig& flags); const char** getRegisterSheet(); - const void* getSampleMem(int index); - size_t getSampleMemCapacity(int index); - size_t getSampleMemUsage(int index); - bool isSampleLoaded(int index, int sample); - void renderSamples(int chipID); - + int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); ~DivPlatformMSM6258(); diff --git a/src/engine/platform/qsound.h b/src/engine/platform/qsound.h index 18eb886b..dbdffd05 100644 --- a/src/engine/platform/qsound.h +++ b/src/engine/platform/qsound.h @@ -35,6 +35,7 @@ class DivPlatformQSound: public DivDispatch { SharedChannel(255), resVol(4095), sample(-1), + wave(-1), panning(0x10), echo(0), useWave(false), diff --git a/src/engine/platform/rf5c68.h b/src/engine/platform/rf5c68.h index c22688c3..2703a290 100644 --- a/src/engine/platform/rf5c68.h +++ b/src/engine/platform/rf5c68.h @@ -35,6 +35,7 @@ class DivPlatformRF5C68: public DivDispatch { SharedChannel(255), audPos(0), sample(-1), + wave(-1), panning(255), setPos(false), macroVolMul(64) {} diff --git a/src/engine/platform/ymz280b.h b/src/engine/platform/ymz280b.h index d2f2f1bb..810d5223 100644 --- a/src/engine/platform/ymz280b.h +++ b/src/engine/platform/ymz280b.h @@ -35,6 +35,7 @@ class DivPlatformYMZ280B: public DivDispatch { SharedChannel(255), audPos(0), sample(-1), + wave(-1), panning(8), setPos(false), isNewYMZ(false),