From f403621d6e0d7395366219c72ae0fbbe1cee7f3a Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 25 Feb 2022 13:33:58 -0500 Subject: [PATCH] this is not working well i mean, seriously... OPLL output isn't 4-bit, right? i must be doing something really wrong --- src/engine/platform/opll.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/engine/platform/opll.cpp b/src/engine/platform/opll.cpp index 96cc33724..9451eb959 100644 --- a/src/engine/platform/opll.cpp +++ b/src/engine/platform/opll.cpp @@ -25,7 +25,7 @@ #define rWrite(a,v) if (!skipRegisterWrites) {pendingWrites[a]=v;} #define immWrite(a,v) if (!skipRegisterWrites) {writes.emplace(a,v); if (dumpWrites) {addWrite(a,v);} } -#define CHIP_FREQBASE 1180067 +#define CHIP_FREQBASE 295017 const char* DivPlatformOPLL::getEffectName(unsigned char effect) { switch (effect) { @@ -99,7 +99,7 @@ void DivPlatformOPLL::acquire_nuked(short* bufL, short* bufR, size_t start, size //if (o[0]<-32768) o[0]=-32768; //if (o[1]>32767) o[1]=32767; - bufL[h]=(o[0]+o[1])<<12; + bufL[h]=(o[0]+o[1])<<13; } } @@ -373,7 +373,7 @@ int DivPlatformOPLL::dispatch(DivCommand c) { } */ // for now - rWrite(0x30+c.chan,0x1e); + rWrite(0x30+c.chan,0xf|(ins->fm.opllPreset<<4)); chan[c.chan].insChanged=false; if (c.value!=DIV_NOTE_NULL) {