mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-05 20:35:06 +00:00
Fix per-channel osc
This commit is contained in:
parent
dd93f6d18e
commit
7bbfe3af7c
2 changed files with 15 additions and 11 deletions
|
@ -101,7 +101,20 @@ void DivPlatformSMS::acquire_mame(short* bufL, short* bufR, size_t start, size_t
|
|||
sn->write(w.val);
|
||||
writes.pop();
|
||||
}
|
||||
sn->sound_stream_update(snBuf,len);
|
||||
for (size_t h=0; h<len; h++) {
|
||||
short* outs[2]={
|
||||
&snBuf[0][h],
|
||||
&snBuf[1][h],
|
||||
};
|
||||
sn->sound_stream_update(outs,1);
|
||||
for (int i=0; i<4; i++) {
|
||||
if (isMuted[i]) {
|
||||
oscBuf[i]->data[oscBuf[i]->needle++]=0;
|
||||
} else {
|
||||
oscBuf[i]->data[oscBuf[i]->needle++]=sn->get_channel_output(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (stereo) {
|
||||
for (size_t i=0; i<len; i++) {
|
||||
bufL[i+start]=snBuf[0][i];
|
||||
|
@ -113,15 +126,6 @@ void DivPlatformSMS::acquire_mame(short* bufL, short* bufR, size_t start, size_t
|
|||
bufR[i+start]=bufL[i+start];
|
||||
}
|
||||
}
|
||||
for (size_t h=start; h<start+len; h++) {
|
||||
for (int i=0; i<4; i++) {
|
||||
if (isMuted[i]) {
|
||||
oscBuf[i]->data[oscBuf[i]->needle++]=0;
|
||||
} else {
|
||||
oscBuf[i]->data[oscBuf[i]->needle++]=sn->get_channel_output(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DivPlatformSMS::acquire(short* bufL, short* bufR, size_t start, size_t len) {
|
||||
|
|
|
@ -411,7 +411,7 @@ void sn76496_base_device::sound_stream_update(short** outputs, int outLen)
|
|||
if (m_negate) { out = -out; out2 = -out2; }
|
||||
|
||||
outputs[0][sampindex]=out;
|
||||
if (m_stereo)
|
||||
if (m_stereo && (outputs[1] != nullptr))
|
||||
outputs[1][sampindex]=out;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue