Merge branch 'master' of github.com:tildearrow/furnace

This commit is contained in:
tildearrow 2022-12-17 17:27:54 -05:00
commit 4affc48ebd
8 changed files with 9 additions and 61 deletions

View File

@ -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];

View File

@ -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];

View File

@ -133,6 +133,7 @@ class DivPlatformOPN: public DivPlatformFMBase {
freqH(0),
freqL(0),
portaPauseFreq(0),
konCycles(0),
mask(true) {}
};

View File

@ -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; i<sampleCount; i++) {
DivSample* s=parent->song.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() {

View File

@ -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<DivRegWrite>& 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();

View File

@ -35,6 +35,7 @@ class DivPlatformQSound: public DivDispatch {
SharedChannel<int>(255),
resVol(4095),
sample(-1),
wave(-1),
panning(0x10),
echo(0),
useWave(false),

View File

@ -35,6 +35,7 @@ class DivPlatformRF5C68: public DivDispatch {
SharedChannel<int>(255),
audPos(0),
sample(-1),
wave(-1),
panning(255),
setPos(false),
macroVolMul(64) {}

View File

@ -35,6 +35,7 @@ class DivPlatformYMZ280B: public DivDispatch {
SharedChannel<int>(255),
audPos(0),
sample(-1),
wave(-1),
panning(8),
setPos(false),
isNewYMZ(false),