dev195 - C64: prevent cutoff macro race

issue #1790
This commit is contained in:
tildearrow 2024-03-13 02:11:57 -05:00
parent e1c4b20ef9
commit 7ffc67529c
5 changed files with 16 additions and 5 deletions

View file

@ -198,7 +198,7 @@ void DivPlatformC64::tick(bool sysTick) {
}
chan[i].freqChanged=true;
}
if (chan[i].std.alg.had) { // new cutoff macro
if (chan[i].std.alg.had && (_i==2 || macroRace)) { // new cutoff macro
DivInstrument* ins=parent->getIns(chan[i].ins,DIV_INS_C64);
if (ins->c64.filterIsAbs) {
filtCut=MIN(2047,chan[i].std.alg.val);
@ -732,6 +732,7 @@ void DivPlatformC64::setFlags(const DivConfig& flags) {
keyPriority=flags.getBool("keyPriority",true);
no1EUpdate=flags.getBool("no1EUpdate",false);
multiplyRel=flags.getBool("multiplyRel",false);
macroRace=flags.getBool("macroRace",false);
testAD=((flags.getInt("testAttack",0)&15)<<4)|(flags.getInt("testDecay",0)&15);
testSR=((flags.getInt("testSustain",0)&15)<<4)|(flags.getInt("testRelease",0)&15);
initResetTime=flags.getInt("initResetTime",2);

View file

@ -77,7 +77,7 @@ class DivPlatformC64: public DivDispatch {
unsigned char sidCore;
int filtCut, resetTime, initResetTime;
bool keyPriority, sidIs6581, needInitTables, no1EUpdate, multiplyRel;
bool keyPriority, sidIs6581, needInitTables, no1EUpdate, multiplyRel, macroRace;
unsigned char chanOrder[3];
unsigned char testAD, testSR;