Genesis: restore LFO value when changing order

This commit is contained in:
tildearrow 2022-01-23 15:15:46 -05:00
parent cd2854d027
commit 45d9bef2a8
2 changed files with 6 additions and 2 deletions

View File

@ -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;

View File

@ -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;