genesis: implement 10xx command

This commit is contained in:
tildearrow 2021-06-05 23:27:02 -05:00
parent c519b84c91
commit 0b8fcc6e8d
3 changed files with 9 additions and 0 deletions

View file

@ -18,6 +18,7 @@ enum DivDispatchCmds {
DIV_CMD_SAMPLE_MODE, DIV_CMD_SAMPLE_MODE,
DIV_CMD_FM_LFO,
DIV_CMD_FM_TL, DIV_CMD_FM_TL,
DIV_CMD_FM_AR, DIV_CMD_FM_AR,
DIV_CMD_FM_FB, DIV_CMD_FM_FB,

View file

@ -279,6 +279,10 @@ int DivPlatformGenesis::dispatch(DivCommand c) {
chan[c.chan].freqChanged=true; chan[c.chan].freqChanged=true;
break; break;
} }
case DIV_CMD_FM_LFO: {
rWrite(0x22,(c.value&7)|((c.value>>4)<<3));
break;
}
case DIV_CMD_FM_MULT: { case DIV_CMD_FM_MULT: {
unsigned short baseAddr=chanOffs[c.chan]|opOffs[orderedOps[c.value]]; unsigned short baseAddr=chanOffs[c.chan]|opOffs[orderedOps[c.value]];
DivInstrument* ins=parent->getIns(chan[c.chan].ins); DivInstrument* ins=parent->getIns(chan[c.chan].ins);

View file

@ -26,6 +26,7 @@ const char* cmdName[DIV_CMD_MAX]={
"SAMPLE_MODE", "SAMPLE_MODE",
"FM_LFO",
"FM_TL", "FM_TL",
"FM_AR", "FM_AR",
"FM_FB", "FM_FB",
@ -119,6 +120,9 @@ bool DivEngine::perSystemPostEffect(int ch, unsigned char effect, unsigned char
case DIV_SYSTEM_GENESIS: case DIV_SYSTEM_GENESIS:
case DIV_SYSTEM_GENESIS_EXT: case DIV_SYSTEM_GENESIS_EXT:
switch (effect) { switch (effect) {
case 0x10: // LFO
dispatchCmd(DivCommand(DIV_CMD_FM_LFO,ch,effectVal));
break;
case 0x11: // FB case 0x11: // FB
dispatchCmd(DivCommand(DIV_CMD_FM_FB,ch,effectVal&7)); dispatchCmd(DivCommand(DIV_CMD_FM_FB,ch,effectVal&7));
break; break;