port ExtCh op macro code to OPN family, part 7
This commit is contained in:
parent
75416fc63e
commit
dff3ddeb3a
|
@ -554,7 +554,7 @@ int DivPlatformGenesis::dispatch(DivCommand c) {
|
||||||
switch (c.cmd) {
|
switch (c.cmd) {
|
||||||
case DIV_CMD_NOTE_ON: {
|
case DIV_CMD_NOTE_ON: {
|
||||||
DivInstrument* ins=parent->getIns(chan[c.chan].ins,DIV_INS_FM);
|
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].macroInit(ins);
|
||||||
chan[c.chan].insChanged=false;
|
chan[c.chan].insChanged=false;
|
||||||
|
|
||||||
|
|
|
@ -587,7 +587,7 @@ void DivPlatformGenesisExt::tick(bool sysTick) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extMode && softPCM) {
|
if (extMode) {
|
||||||
if (chan[csmChan].freqChanged) {
|
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);
|
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;
|
if (chan[csmChan].freq<1) chan[csmChan].freq=1;
|
||||||
|
@ -620,7 +620,7 @@ void DivPlatformGenesisExt::tick(bool sysTick) {
|
||||||
immWrite(0x28,writeMask);
|
immWrite(0x28,writeMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extMode && softPCM) {
|
if (extMode) {
|
||||||
if (chan[csmChan].keyOn) {
|
if (chan[csmChan].keyOn) {
|
||||||
immWrite(0x27,0x81);
|
immWrite(0x27,0x81);
|
||||||
chan[csmChan].keyOn=false;
|
chan[csmChan].keyOn=false;
|
||||||
|
@ -685,10 +685,10 @@ void DivPlatformGenesisExt::forceIns() {
|
||||||
opChan[i].freqChanged=true;
|
opChan[i].freqChanged=true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (extMode && softPCM && chan[7].active) { // CSM
|
if (extMode && chan[csmChan].active) { // CSM
|
||||||
chan[7].insChanged=true;
|
chan[csmChan].insChanged=true;
|
||||||
chan[7].freqChanged=true;
|
chan[csmChan].freqChanged=true;
|
||||||
chan[7].keyOn=true;
|
chan[csmChan].keyOn=true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -700,7 +700,7 @@ void* DivPlatformGenesisExt::getChanState(int ch) {
|
||||||
|
|
||||||
DivMacroInt* DivPlatformGenesisExt::getChanMacroInt(int ch) {
|
DivMacroInt* DivPlatformGenesisExt::getChanMacroInt(int ch) {
|
||||||
if (ch>=6) return &chan[ch-3].std;
|
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;
|
return &chan[ch].std;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -601,7 +601,7 @@ void* DivPlatformYM2203Ext::getChanState(int ch) {
|
||||||
|
|
||||||
DivMacroInt* DivPlatformYM2203Ext::getChanMacroInt(int ch) {
|
DivMacroInt* DivPlatformYM2203Ext::getChanMacroInt(int ch) {
|
||||||
if (ch>=6) return ay->getChanMacroInt(ch-6);
|
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;
|
return &chan[ch].std;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -639,7 +639,7 @@ void* DivPlatformYM2608Ext::getChanState(int ch) {
|
||||||
DivMacroInt* DivPlatformYM2608Ext::getChanMacroInt(int ch) {
|
DivMacroInt* DivPlatformYM2608Ext::getChanMacroInt(int ch) {
|
||||||
if (ch>=9 && ch<12) return ay->getChanMacroInt(ch-9);
|
if (ch>=9 && ch<12) return ay->getChanMacroInt(ch-9);
|
||||||
if (ch>=6) return &chan[ch-3].std;
|
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;
|
return &chan[ch].std;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -630,7 +630,7 @@ void* DivPlatformYM2610BExt::getChanState(int ch) {
|
||||||
DivMacroInt* DivPlatformYM2610BExt::getChanMacroInt(int ch) {
|
DivMacroInt* DivPlatformYM2610BExt::getChanMacroInt(int ch) {
|
||||||
if (ch>=(psgChanOffs+3) && ch<(adpcmAChanOffs+3)) return ay->getChanMacroInt(ch-psgChanOffs-3);
|
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+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;
|
return &chan[ch].std;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -630,7 +630,7 @@ void* DivPlatformYM2610Ext::getChanState(int ch) {
|
||||||
DivMacroInt* DivPlatformYM2610Ext::getChanMacroInt(int ch) {
|
DivMacroInt* DivPlatformYM2610Ext::getChanMacroInt(int ch) {
|
||||||
if (ch>=(psgChanOffs+3) && ch<(adpcmAChanOffs+3)) return ay->getChanMacroInt(ch-psgChanOffs-3);
|
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+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;
|
return &chan[ch].std;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue