mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-27 06:53:01 +00:00
genesis: implement 10xx command
This commit is contained in:
parent
c519b84c91
commit
0b8fcc6e8d
3 changed files with 9 additions and 0 deletions
|
@ -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,
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue