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;
}
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;
}
case DIV_CMD_FM_MULT: {
@ -495,6 +496,7 @@ void DivPlatformGenesis::forceIns() {
if (dacMode) {
rWrite(0x2b,0x80);
}
immWrite(0x22,lfoValue);
}
void DivPlatformGenesis::reset() {
@ -517,11 +519,12 @@ void DivPlatformGenesis::reset() {
dacRate=0;
dacSample=-1;
sampleBank=0;
lfoValue=8;
extMode=false;
// LFO
immWrite(0x22,0x08);
immWrite(0x22,lfoValue);
delay=0;

View File

@ -42,6 +42,7 @@ class DivPlatformGenesis: public DivDispatch {
unsigned int dacPos;
int dacSample;
unsigned char sampleBank;
unsigned char lfoValue;
bool extMode;