GA20: yaaaay I fixed chan osc

This commit is contained in:
tildearrow 2025-03-02 20:41:34 -05:00
parent 8f54445625
commit 6d55c8088c

View file

@ -84,7 +84,7 @@ void DivPlatformGA20::acquireDirect(blip_buffer_t** bb, size_t off, size_t len)
oscBuf[i]->begin(len);
}
for (size_t h=off; h<off+len; h++) {
for (size_t h=0; h<len; h++) {
size_t advance=0;
if (!writes.empty()) {
QueuedWrite& w=writes.front();
@ -93,7 +93,7 @@ void DivPlatformGA20::acquireDirect(blip_buffer_t** bb, size_t off, size_t len)
writes.pop();
} else {
// heuristic
advance=off+len-h-1;
advance=len-h-1;
for (int i=0; i<4; i++) {
if (!ga20.m_channel[i].play) continue;
@ -109,7 +109,7 @@ void DivPlatformGA20::acquireDirect(blip_buffer_t** bb, size_t off, size_t len)
h+=advance;
const int out=(signed int)(ga20Buf[0]+ga20Buf[1]+ga20Buf[2]+ga20Buf[3])>>2;
if (out!=oldOut) {
blip_add_delta(bb[0],h,out-oldOut);
blip_add_delta(bb[0],off+h,out-oldOut);
oldOut=out;
}
for (int i=0; i<4; i++) {