now fix the volume slides in FM as well

This commit is contained in:
tildearrow 2021-05-17 15:51:12 -05:00
parent ceda9a8058
commit 98180c3d23
2 changed files with 4 additions and 4 deletions

View File

@ -160,7 +160,7 @@ int DivPlatformGenesis::dispatch(DivCommand c) {
unsigned short baseAddr=chanOffs[c.chan]|opOffs[i];
DivInstrumentFM::Operator op=ins->fm.op[i];
if (isOutput[ins->fm.alg][i]) {
rWrite(baseAddr+0x40,127-(((127-op.tl)*chan[c.chan].vol)/127));
rWrite(baseAddr+0x40,127-(((127-op.tl)*(chan[c.chan].vol&0x7f))/127));
} else {
if (chan[c.chan].insChanged) {
rWrite(baseAddr+0x40,op.tl);
@ -198,7 +198,7 @@ int DivPlatformGenesis::dispatch(DivCommand c) {
unsigned short baseAddr=chanOffs[c.chan]|opOffs[i];
DivInstrumentFM::Operator op=ins->fm.op[i];
if (isOutput[ins->fm.alg][i]) {
rWrite(baseAddr+0x40,127-(((127-op.tl)*chan[c.chan].vol)/127));
rWrite(baseAddr+0x40,127-(((127-op.tl)*(chan[c.chan].vol&0x7f))/127));
} else {
rWrite(baseAddr+0x40,op.tl);
}
@ -279,7 +279,7 @@ int DivPlatformGenesis::dispatch(DivCommand c) {
unsigned short baseAddr=chanOffs[c.chan]|opOffs[orderedOps[c.value]];
DivInstrument* ins=parent->getIns(chan[c.chan].ins);
if (isOutput[ins->fm.alg][c.value]) {
rWrite(baseAddr+0x40,127-(((127-c.value2)*chan[c.chan].vol)/127));
rWrite(baseAddr+0x40,127-(((127-c.value2)*(chan[c.chan].vol&0x7f))/127));
} else {
rWrite(baseAddr+0x40,c.value2);
}

View File

@ -14,7 +14,7 @@ class DivPlatformGenesis: public DivDispatch {
unsigned char ins;
signed char konCycles;
bool active, insChanged, freqChanged, keyOn, keyOff;
signed char vol;
int vol;
unsigned char pan;
Channel(): freqH(0), freqL(0), freq(0), baseFreq(0), pitch(0), ins(-1), active(false), insChanged(true), freqChanged(false), keyOn(false), keyOff(false), vol(0), pan(3) {}
};