From 84c4e48fbe3a3492790287d5ca3ff8cf04815bb1 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 22 Dec 2022 19:45:08 -0500 Subject: [PATCH] POKEY: optimize ASAP core a lot --- src/engine/platform/pokey.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/engine/platform/pokey.cpp b/src/engine/platform/pokey.cpp index bb9a0a7a..7427733c 100644 --- a/src/engine/platform/pokey.cpp +++ b/src/engine/platform/pokey.cpp @@ -101,7 +101,7 @@ void DivPlatformPOKEY::acquireASAP(short* buf, size_t start, size_t len) { } for (size_t h=start; h=14) { + if (++oscBufDelay>=2) { oscBufDelay=0; buf[h]=altASAP->sampleAudio(oscBuf); } else { @@ -448,16 +448,21 @@ void DivPlatformPOKEY::setFlags(const DivConfig& flags) { chipClock=COLOR_NTSC/2.0; } CHECK_CUSTOM_CLOCK; - rate=chipClock; - for (int i=0; i<4; i++) { - oscBuf[i]->rate=rate/14; - } if (useAltASAP) { + rate=chipClock/7; + for (int i=0; i<4; i++) { + oscBuf[i]->rate=rate/2; + } if (altASAP) { delete altASAP; } - altASAP=new AltASAP::Pokey(chipClock, chipClock); + altASAP=new AltASAP::Pokey(chipClock,rate); + } else { + rate=chipClock; + for (int i=0; i<4; i++) { + oscBuf[i]->rate=rate/14; + } } }