OPN: ExtCh ALG effect

This commit is contained in:
tildearrow 2025-05-21 18:00:51 -05:00
parent ec1542a2b4
commit 39ecab5abd
5 changed files with 30 additions and 0 deletions

View file

@ -237,6 +237,12 @@ int DivPlatformGenesisExt::dispatch(DivCommand c) {
rWrite(0x22,lfoValue);
break;
}
case DIV_CMD_FM_ALG: {
chan[extChanOffs].state.alg=c.value&7;
// TODO: TL compensation?
rWrite(ADDR_FB_ALG+chanOffs[extChanOffs],(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3));
break;
}
case DIV_CMD_FM_FB: {
chan[extChanOffs].state.fb=c.value&7;
rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3));

View file

@ -193,6 +193,12 @@ int DivPlatformYM2203Ext::dispatch(DivCommand c) {
}
break;
}
case DIV_CMD_FM_ALG: {
chan[extChanOffs].state.alg=c.value&7;
// TODO: TL compensation?
rWrite(ADDR_FB_ALG+chanOffs[extChanOffs],(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3));
break;
}
case DIV_CMD_FM_FB: {
chan[2].state.fb=c.value&7;
rWrite(chanOffs[2]+ADDR_FB_ALG,(chan[2].state.alg&7)|(chan[2].state.fb<<3));

View file

@ -218,6 +218,12 @@ int DivPlatformYM2608Ext::dispatch(DivCommand c) {
rWrite(0x22,lfoValue);
break;
}
case DIV_CMD_FM_ALG: {
chan[extChanOffs].state.alg=c.value&7;
// TODO: TL compensation?
rWrite(ADDR_FB_ALG+chanOffs[extChanOffs],(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3));
break;
}
case DIV_CMD_FM_FB: {
chan[2].state.fb=c.value&7;
rWrite(chanOffs[2]+ADDR_FB_ALG,(chan[2].state.alg&7)|(chan[2].state.fb<<3));

View file

@ -214,6 +214,12 @@ int DivPlatformYM2610BExt::dispatch(DivCommand c) {
rWrite(0x22,lfoValue);
break;
}
case DIV_CMD_FM_ALG: {
chan[extChanOffs].state.alg=c.value&7;
// TODO: TL compensation?
rWrite(ADDR_FB_ALG+chanOffs[extChanOffs],(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3));
break;
}
case DIV_CMD_FM_FB: {
chan[extChanOffs].state.fb=c.value&7;
rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3));

View file

@ -214,6 +214,12 @@ int DivPlatformYM2610Ext::dispatch(DivCommand c) {
rWrite(0x22,lfoValue);
break;
}
case DIV_CMD_FM_ALG: {
chan[extChanOffs].state.alg=c.value&7;
// TODO: TL compensation?
rWrite(ADDR_FB_ALG+chanOffs[extChanOffs],(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3));
break;
}
case DIV_CMD_FM_FB: {
chan[extChanOffs].state.fb=c.value&7;
rWrite(chanOffs[extChanOffs]+ADDR_FB_ALG,(chan[extChanOffs].state.alg&7)|(chan[extChanOffs].state.fb<<3));