port ExtCh op macro code to OPN family, part 7

This commit is contained in:
tildearrow 2022-12-23 19:06:10 -05:00
parent 75416fc63e
commit dff3ddeb3a
6 changed files with 12 additions and 12 deletions

View File

@ -554,7 +554,7 @@ int DivPlatformGenesis::dispatch(DivCommand c) {
switch (c.cmd) {
case DIV_CMD_NOTE_ON: {
DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_FM);
if (c.chan==csmChan && extMode && softPCM) { // CSM
if (c.chan==csmChan && extMode) { // CSM
chan[c.chan].macroInit(ins);
chan[c.chan].insChanged=false;

View File

@ -587,7 +587,7 @@ void DivPlatformGenesisExt::tick(bool sysTick) {
}
}
if (extMode && softPCM) {
if (extMode) {
if (chan[csmChan].freqChanged) {
chan[csmChan].freq=parent->calcFreq(chan[csmChan].baseFreq,chan[csmChan].pitch,chan[csmChan].fixedArp?chan[csmChan].baseNoteOverride:chan[csmChan].arpOff,chan[csmChan].fixedArp,true,0,chan[csmChan].pitch2,chipClock,CHIP_DIVIDER);
if (chan[csmChan].freq<1) chan[csmChan].freq=1;
@ -620,7 +620,7 @@ void DivPlatformGenesisExt::tick(bool sysTick) {
immWrite(0x28,writeMask);
}
if (extMode && softPCM) {
if (extMode) {
if (chan[csmChan].keyOn) {
immWrite(0x27,0x81);
chan[csmChan].keyOn=false;
@ -685,10 +685,10 @@ void DivPlatformGenesisExt::forceIns() {
opChan[i].freqChanged=true;
}
}
if (extMode && softPCM && chan[7].active) { // CSM
chan[7].insChanged=true;
chan[7].freqChanged=true;
chan[7].keyOn=true;
if (extMode && chan[csmChan].active) { // CSM
chan[csmChan].insChanged=true;
chan[csmChan].freqChanged=true;
chan[csmChan].keyOn=true;
}
}
@ -700,7 +700,7 @@ void* DivPlatformGenesisExt::getChanState(int ch) {
DivMacroInt* DivPlatformGenesisExt::getChanMacroInt(int ch) {
if (ch>=6) return &chan[ch-3].std;
if (ch>=2) return NULL; // currently not implemented
if (ch>=2) return &opChan[ch-2].std;
return &chan[ch].std;
}

View File

@ -601,7 +601,7 @@ void* DivPlatformYM2203Ext::getChanState(int ch) {
DivMacroInt* DivPlatformYM2203Ext::getChanMacroInt(int ch) {
if (ch>=6) return ay->getChanMacroInt(ch-6);
if (ch>=2) return NULL; // currently not implemented
if (ch>=2) return &opChan[ch-2].std;
return &chan[ch].std;
}

View File

@ -639,7 +639,7 @@ void* DivPlatformYM2608Ext::getChanState(int ch) {
DivMacroInt* DivPlatformYM2608Ext::getChanMacroInt(int ch) {
if (ch>=9 && ch<12) return ay->getChanMacroInt(ch-9);
if (ch>=6) return &chan[ch-3].std;
if (ch>=2) return NULL; // currently not implemented
if (ch>=2) return &opChan[ch-2].std;
return &chan[ch].std;
}

View File

@ -630,7 +630,7 @@ void* DivPlatformYM2610BExt::getChanState(int ch) {
DivMacroInt* DivPlatformYM2610BExt::getChanMacroInt(int ch) {
if (ch>=(psgChanOffs+3) && ch<(adpcmAChanOffs+3)) return ay->getChanMacroInt(ch-psgChanOffs-3);
if (ch>=(extChanOffs+4)) return &chan[ch-3].std;
if (ch>=extChanOffs) return NULL; // currently not implemented
if (ch>=extChanOffs) return &opChan[ch-extChanOffs].std;
return &chan[ch].std;
}

View File

@ -630,7 +630,7 @@ void* DivPlatformYM2610Ext::getChanState(int ch) {
DivMacroInt* DivPlatformYM2610Ext::getChanMacroInt(int ch) {
if (ch>=(psgChanOffs+3) && ch<(adpcmAChanOffs+3)) return ay->getChanMacroInt(ch-psgChanOffs-3);
if (ch>=(extChanOffs+4)) return &chan[ch-3].std;
if (ch>=extChanOffs) return NULL; // currently not implemented
if (ch>=extChanOffs) return &opChan[ch-extChanOffs].std;
return &chan[ch].std;
}