maybe fix possible crash regarding smp loop points
This commit is contained in:
parent
7f36cabb42
commit
322981b021
|
@ -75,7 +75,7 @@ void DivPlatformAmiga::acquire(short* bufL, short* bufR, size_t start, size_t le
|
||||||
if (s->samples>0) {
|
if (s->samples>0) {
|
||||||
chan[i].audDat=s->data8[chan[i].audPos++];
|
chan[i].audDat=s->data8[chan[i].audPos++];
|
||||||
if (chan[i].audPos>=s->samples || chan[i].audPos>=131071) {
|
if (chan[i].audPos>=s->samples || chan[i].audPos>=131071) {
|
||||||
if (s->loopStart>=0 && s->loopStart<=(int)s->samples) {
|
if (s->loopStart>=0 && s->loopStart<(int)s->samples) {
|
||||||
chan[i].audPos=s->loopStart;
|
chan[i].audPos=s->loopStart;
|
||||||
} else {
|
} else {
|
||||||
chan[i].sample=-1;
|
chan[i].sample=-1;
|
||||||
|
|
|
@ -95,7 +95,7 @@ void DivPlatformGenesis::acquire_nuked(short* bufL, short* bufR, size_t start, s
|
||||||
urgentWrite(0x2a,(unsigned char)s->data8[dacPos]+0x80);
|
urgentWrite(0x2a,(unsigned char)s->data8[dacPos]+0x80);
|
||||||
}
|
}
|
||||||
if (++dacPos>=s->samples) {
|
if (++dacPos>=s->samples) {
|
||||||
if (s->loopStart>=0 && s->loopStart<=(int)s->samples) {
|
if (s->loopStart>=0 && s->loopStart<(int)s->samples) {
|
||||||
dacPos=s->loopStart;
|
dacPos=s->loopStart;
|
||||||
} else {
|
} else {
|
||||||
dacSample=-1;
|
dacSample=-1;
|
||||||
|
@ -162,7 +162,7 @@ void DivPlatformGenesis::acquire_ymfm(short* bufL, short* bufR, size_t start, si
|
||||||
urgentWrite(0x2a,(unsigned char)s->data8[dacPos]+0x80);
|
urgentWrite(0x2a,(unsigned char)s->data8[dacPos]+0x80);
|
||||||
}
|
}
|
||||||
if (++dacPos>=s->samples) {
|
if (++dacPos>=s->samples) {
|
||||||
if (s->loopStart>=0 && s->loopStart<=(int)s->samples) {
|
if (s->loopStart>=0 && s->loopStart<(int)s->samples) {
|
||||||
dacPos=s->loopStart;
|
dacPos=s->loopStart;
|
||||||
} else {
|
} else {
|
||||||
dacSample=-1;
|
dacSample=-1;
|
||||||
|
|
|
@ -81,7 +81,7 @@ void DivPlatformNES::acquire(short* bufL, short* bufR, size_t start, size_t len)
|
||||||
rWrite(0x4011,((unsigned char)s->data8[dacPos]+0x80)>>1);
|
rWrite(0x4011,((unsigned char)s->data8[dacPos]+0x80)>>1);
|
||||||
}
|
}
|
||||||
if (++dacPos>=s->samples) {
|
if (++dacPos>=s->samples) {
|
||||||
if (s->loopStart>=0 && s->loopStart<=(int)s->samples) {
|
if (s->loopStart>=0 && s->loopStart<(int)s->samples) {
|
||||||
dacPos=s->loopStart;
|
dacPos=s->loopStart;
|
||||||
} else {
|
} else {
|
||||||
dacSample=-1;
|
dacSample=-1;
|
||||||
|
|
|
@ -91,7 +91,7 @@ void DivPlatformPCE::acquire(short* bufL, short* bufR, size_t start, size_t len)
|
||||||
chWrite(i,0x06,(((unsigned char)s->data8[chan[i].dacPos]+0x80)>>3));
|
chWrite(i,0x06,(((unsigned char)s->data8[chan[i].dacPos]+0x80)>>3));
|
||||||
chan[i].dacPos++;
|
chan[i].dacPos++;
|
||||||
if (chan[i].dacPos>=s->samples) {
|
if (chan[i].dacPos>=s->samples) {
|
||||||
if (s->loopStart>=0 && s->loopStart<=(int)s->samples) {
|
if (s->loopStart>=0 && s->loopStart<(int)s->samples) {
|
||||||
chan[i].dacPos=s->loopStart;
|
chan[i].dacPos=s->loopStart;
|
||||||
} else {
|
} else {
|
||||||
chan[i].dacSample=-1;
|
chan[i].dacSample=-1;
|
||||||
|
|
|
@ -54,7 +54,7 @@ void DivPlatformSegaPCM::acquire(short* bufL, short* bufR, size_t start, size_t
|
||||||
}
|
}
|
||||||
chan[i].pcm.pos+=chan[i].pcm.freq;
|
chan[i].pcm.pos+=chan[i].pcm.freq;
|
||||||
if (chan[i].pcm.pos>=(s->samples<<8)) {
|
if (chan[i].pcm.pos>=(s->samples<<8)) {
|
||||||
if (s->loopStart>=0 && s->loopStart<=(int)s->samples) {
|
if (s->loopStart>=0 && s->loopStart<(int)s->samples) {
|
||||||
chan[i].pcm.pos=s->loopStart<<8;
|
chan[i].pcm.pos=s->loopStart<<8;
|
||||||
} else {
|
} else {
|
||||||
chan[i].pcm.sample=-1;
|
chan[i].pcm.sample=-1;
|
||||||
|
|
|
@ -84,7 +84,7 @@ void DivPlatformSwan::acquire(short* bufL, short* bufR, size_t start, size_t len
|
||||||
}
|
}
|
||||||
rWrite(0x09,(unsigned char)s->data8[dacPos++]+0x80);
|
rWrite(0x09,(unsigned char)s->data8[dacPos++]+0x80);
|
||||||
if (dacPos>=s->samples) {
|
if (dacPos>=s->samples) {
|
||||||
if (s->loopStart>=0 && s->loopStart<=(int)s->samples) {
|
if (s->loopStart>=0 && s->loopStart<(int)s->samples) {
|
||||||
dacPos=s->loopStart;
|
dacPos=s->loopStart;
|
||||||
} else {
|
} else {
|
||||||
dacSample=-1;
|
dacSample=-1;
|
||||||
|
|
|
@ -97,7 +97,7 @@ void DivPlatformVERA::acquire(short* bufL, short* bufR, size_t start, size_t len
|
||||||
}
|
}
|
||||||
chan[16].pcm.pos++;
|
chan[16].pcm.pos++;
|
||||||
if (chan[16].pcm.pos>=s->samples) {
|
if (chan[16].pcm.pos>=s->samples) {
|
||||||
if (s->loopStart>=0 && s->loopStart<=(int)s->samples) {
|
if (s->loopStart>=0 && s->loopStart<(int)s->samples) {
|
||||||
chan[16].pcm.pos=s->loopStart;
|
chan[16].pcm.pos=s->loopStart;
|
||||||
} else {
|
} else {
|
||||||
chan[16].pcm.sample=-1;
|
chan[16].pcm.sample=-1;
|
||||||
|
|
Loading…
Reference in New Issue