Genesis: restore LFO value when changing order
This commit is contained in:
parent
cd2854d027
commit
45d9bef2a8
|
@ -417,7 +417,8 @@ int DivPlatformGenesis::dispatch(DivCommand c) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_CMD_FM_LFO: {
|
case DIV_CMD_FM_LFO: {
|
||||||
rWrite(0x22,(c.value&7)|((c.value>>4)<<3));
|
lfoValue=(c.value&7)|((c.value>>4)<<3);
|
||||||
|
rWrite(0x22,lfoValue);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_CMD_FM_MULT: {
|
case DIV_CMD_FM_MULT: {
|
||||||
|
@ -495,6 +496,7 @@ void DivPlatformGenesis::forceIns() {
|
||||||
if (dacMode) {
|
if (dacMode) {
|
||||||
rWrite(0x2b,0x80);
|
rWrite(0x2b,0x80);
|
||||||
}
|
}
|
||||||
|
immWrite(0x22,lfoValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivPlatformGenesis::reset() {
|
void DivPlatformGenesis::reset() {
|
||||||
|
@ -517,11 +519,12 @@ void DivPlatformGenesis::reset() {
|
||||||
dacRate=0;
|
dacRate=0;
|
||||||
dacSample=-1;
|
dacSample=-1;
|
||||||
sampleBank=0;
|
sampleBank=0;
|
||||||
|
lfoValue=8;
|
||||||
|
|
||||||
extMode=false;
|
extMode=false;
|
||||||
|
|
||||||
// LFO
|
// LFO
|
||||||
immWrite(0x22,0x08);
|
immWrite(0x22,lfoValue);
|
||||||
|
|
||||||
delay=0;
|
delay=0;
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@ class DivPlatformGenesis: public DivDispatch {
|
||||||
unsigned int dacPos;
|
unsigned int dacPos;
|
||||||
int dacSample;
|
int dacSample;
|
||||||
unsigned char sampleBank;
|
unsigned char sampleBank;
|
||||||
|
unsigned char lfoValue;
|
||||||
|
|
||||||
bool extMode;
|
bool extMode;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue