From 72ed5deeb1c4508ced34e261bf7bf6fa22b9075e Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 2 Jul 2023 00:26:57 -0500 Subject: [PATCH] VERA: fix custom clock --- src/engine/platform/vera.cpp | 16 ++++++++++------ src/engine/platform/vera.h | 1 + 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/engine/platform/vera.cpp b/src/engine/platform/vera.cpp index 8357f7569..0db7660d1 100644 --- a/src/engine/platform/vera.cpp +++ b/src/engine/platform/vera.cpp @@ -441,6 +441,15 @@ void DivPlatformVERA::poke(std::vector& wlist) { for (auto &i: wlist) poke(i.addr,i.val); } +void DivPlatformVERA::setFlags(const DivConfig& flags) { + chipClock=25000000; + CHECK_CUSTOM_CLOCK; + rate=chipClock/512; + for (int i=0; i<17; i++) { + oscBuf[i]->rate=rate; + } +} + int DivPlatformVERA::init(DivEngine* p, int channels, int sugRate, const DivConfig& flags) { for (int i=0; i<17; i++) { isMuted[i]=false; @@ -451,12 +460,7 @@ int DivPlatformVERA::init(DivEngine* p, int channels, int sugRate, const DivConf pcm=new struct VERA_PCM; dumpWrites=false; skipRegisterWrites=false; - chipClock=25000000; - CHECK_CUSTOM_CLOCK; - rate=chipClock/512; - for (int i=0; i<17; i++) { - oscBuf[i]->rate=rate; - } + setFlags(flags); reset(); return 17; } diff --git a/src/engine/platform/vera.h b/src/engine/platform/vera.h index 8781dc953..7476a316a 100644 --- a/src/engine/platform/vera.h +++ b/src/engine/platform/vera.h @@ -70,6 +70,7 @@ class DivPlatformVERA: public DivDispatch { void reset(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); + void setFlags(const DivConfig& flags); void notifyInsDeletion(void* ins); float getPostAmp(); int getOutputCount();