parent
58f789b9eb
commit
2c528c9ca8
|
@ -135,7 +135,7 @@ ex | FM | OPM | OPZ | OPLL | AY-3-8910 | AY8930 | Lynx
|
||||||
W | | LFO Shape | LFO Shape | Patch | Waveform | Waveform | | Waveform | Waveform | Waveform | Waveform | Waveform | Waveform | | | | Waveform | |
|
W | | LFO Shape | LFO Shape | Patch | Waveform | Waveform | | Waveform | Waveform | Waveform | Waveform | Waveform | Waveform | | | | Waveform | |
|
||||||
1 | | AMD | AMD | | | Duty | | FilterMode | Envelope | EnvMode | WaveLen | Mod Depth | Cutoff | Filter K1 | ClockDiv | EchoFeedback | Special | GroupAtk |
|
1 | | AMD | AMD | | | Duty | | FilterMode | Envelope | EnvMode | WaveLen | Mod Depth | Cutoff | Filter K1 | ClockDiv | EchoFeedback | Special | GroupAtk |
|
||||||
2 | | PMD | PMD | | Envelope | Envelope | | Resonance | | Envelope | WaveUpdate | Mod Speed | Resonance | Filter K2 | | Echo Length | Gain | GroupDec |
|
2 | | PMD | PMD | | Envelope | Envelope | | Resonance | | Envelope | WaveUpdate | Mod Speed | Resonance | Filter K2 | | Echo Length | Gain | GroupDec |
|
||||||
3 | | LFO Speed | LFO Speed | | AutoEnvNum | AutoEnvNum | | Special | | AutoEnvNum | WaveLoad W | | Control | Env Count | | | | Noise |
|
3 | LFOSpd | LFO Speed | LFO Speed | | AutoEnvNum | AutoEnvNum | | Special | | AutoEnvNum | WaveLoad W | | Control | Env Count | | | | Noise |
|
||||||
A | ALG | ALG | ALG | | AutoEnvDen | AutoEnvDen | | | | AutoEnvDen | WaveLoad P | | | Control | | | | |
|
A | ALG | ALG | ALG | | AutoEnvDen | AutoEnvDen | | | | AutoEnvDen | WaveLoad P | | | Control | | | | |
|
||||||
B | FB | FB | FB | | | Noise AND | | | | | WaveLoad L | | | | | | | |
|
B | FB | FB | FB | | | Noise AND | | | | | WaveLoad L | | | | | | | |
|
||||||
C | FMS | FMS | FMS | | | Noise OR | | | | | WaveLoad T | | | | | | | |
|
C | FMS | FMS | FMS | | | Noise OR | | | | | WaveLoad T | | | | | | | |
|
||||||
|
@ -144,4 +144,4 @@ ex | FM | OPM | OPZ | OPLL | AY-3-8910 | AY8930 | Lynx
|
||||||
5 | | | AMD2 | | | | | | | | | | | EnvRampR | | | | |
|
5 | | | AMD2 | | | | | | | | | | | EnvRampR | | | | |
|
||||||
6 | | | PMD2 | | | | | | | | | | | EnvRampK1 | | | | |
|
6 | | | PMD2 | | | | | | | | | | | EnvRampK1 | | | | |
|
||||||
7 | | | LFO2Speed | | | | | | | | | | | EnvRampK2 | | | | |
|
7 | | | LFO2Speed | | | | | | | | | | | EnvRampK2 | | | | |
|
||||||
8 | | | LFO2Shape | | | | | | | | | | | Env Mode | | | | |
|
8 | | | LFO2Shape | | | | | | | | | | | Env Mode | | | | |
|
||||||
|
|
|
@ -394,6 +394,10 @@ void DivPlatformGenesis::tick(bool sysTick) {
|
||||||
chan[i].state.ams=chan[i].std.ams.val;
|
chan[i].state.ams=chan[i].std.ams.val;
|
||||||
rWrite(chanOffs[i]+ADDR_LRAF,(IS_REALLY_MUTED(i)?0:(chan[i].pan<<6))|(chan[i].state.fms&7)|((chan[i].state.ams&3)<<4));
|
rWrite(chanOffs[i]+ADDR_LRAF,(IS_REALLY_MUTED(i)?0:(chan[i].pan<<6))|(chan[i].state.fms&7)|((chan[i].state.ams&3)<<4));
|
||||||
}
|
}
|
||||||
|
if (chan[i].std.ex3.had) {
|
||||||
|
lfoValue=(chan[i].std.ex3.val>7)?0:(8|(chan[i].std.ex3.val&7));
|
||||||
|
rWrite(0x22,lfoValue);
|
||||||
|
}
|
||||||
if (chan[i].std.ex4.had && chan[i].active) {
|
if (chan[i].std.ex4.had && chan[i].active) {
|
||||||
chan[i].opMask=chan[i].std.ex4.val&15;
|
chan[i].opMask=chan[i].std.ex4.val&15;
|
||||||
chan[i].opMaskChanged=true;
|
chan[i].opMaskChanged=true;
|
||||||
|
|
|
@ -545,6 +545,10 @@ void DivPlatformYM2608::tick(bool sysTick) {
|
||||||
chan[i].state.ams=chan[i].std.ams.val;
|
chan[i].state.ams=chan[i].std.ams.val;
|
||||||
rWrite(chanOffs[i]+ADDR_LRAF,(isMuted[i]?0:(chan[i].pan<<6))|(chan[i].state.fms&7)|((chan[i].state.ams&3)<<4));
|
rWrite(chanOffs[i]+ADDR_LRAF,(isMuted[i]?0:(chan[i].pan<<6))|(chan[i].state.fms&7)|((chan[i].state.ams&3)<<4));
|
||||||
}
|
}
|
||||||
|
if (chan[i].std.ex3.had) {
|
||||||
|
lfoValue=(chan[i].std.ex3.val>7)?0:(8|(chan[i].std.ex3.val&7));
|
||||||
|
rWrite(0x22,lfoValue);
|
||||||
|
}
|
||||||
if (chan[i].std.ex4.had && chan[i].active) {
|
if (chan[i].std.ex4.had && chan[i].active) {
|
||||||
chan[i].opMask=chan[i].std.ex4.val&15;
|
chan[i].opMask=chan[i].std.ex4.val&15;
|
||||||
chan[i].opMaskChanged=true;
|
chan[i].opMaskChanged=true;
|
||||||
|
|
|
@ -478,6 +478,10 @@ void DivPlatformYM2610::tick(bool sysTick) {
|
||||||
chan[i].state.ams=chan[i].std.ams.val;
|
chan[i].state.ams=chan[i].std.ams.val;
|
||||||
rWrite(chanOffs[i]+ADDR_LRAF,(isMuted[i]?0:(chan[i].pan<<6))|(chan[i].state.fms&7)|((chan[i].state.ams&3)<<4));
|
rWrite(chanOffs[i]+ADDR_LRAF,(isMuted[i]?0:(chan[i].pan<<6))|(chan[i].state.fms&7)|((chan[i].state.ams&3)<<4));
|
||||||
}
|
}
|
||||||
|
if (chan[i].std.ex3.had) {
|
||||||
|
lfoValue=(chan[i].std.ex3.val>7)?0:(8|(chan[i].std.ex3.val&7));
|
||||||
|
rWrite(0x22,lfoValue);
|
||||||
|
}
|
||||||
if (chan[i].std.ex4.had && chan[i].active) {
|
if (chan[i].std.ex4.had && chan[i].active) {
|
||||||
chan[i].opMask=chan[i].std.ex4.val&15;
|
chan[i].opMask=chan[i].std.ex4.val&15;
|
||||||
chan[i].opMaskChanged=true;
|
chan[i].opMaskChanged=true;
|
||||||
|
|
|
@ -545,6 +545,10 @@ void DivPlatformYM2610B::tick(bool sysTick) {
|
||||||
chan[i].state.ams=chan[i].std.ams.val;
|
chan[i].state.ams=chan[i].std.ams.val;
|
||||||
rWrite(chanOffs[i]+ADDR_LRAF,(isMuted[i]?0:(chan[i].pan<<6))|(chan[i].state.fms&7)|((chan[i].state.ams&3)<<4));
|
rWrite(chanOffs[i]+ADDR_LRAF,(isMuted[i]?0:(chan[i].pan<<6))|(chan[i].state.fms&7)|((chan[i].state.ams&3)<<4));
|
||||||
}
|
}
|
||||||
|
if (chan[i].std.ex3.had) {
|
||||||
|
lfoValue=(chan[i].std.ex3.val>7)?0:(8|(chan[i].std.ex3.val&7));
|
||||||
|
rWrite(0x22,lfoValue);
|
||||||
|
}
|
||||||
if (chan[i].std.ex4.had && chan[i].active) {
|
if (chan[i].std.ex4.had && chan[i].active) {
|
||||||
chan[i].opMask=chan[i].std.ex4.val&15;
|
chan[i].opMask=chan[i].std.ex4.val&15;
|
||||||
chan[i].opMaskChanged=true;
|
chan[i].opMaskChanged=true;
|
||||||
|
|
|
@ -3796,6 +3796,9 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ins->type==DIV_INS_FM) {
|
||||||
|
macroList.push_back(FurnaceGUIMacroDesc("LFO Speed",&ins->std.ex3Macro,0,8,96,uiColors[GUI_COLOR_MACRO_OTHER]));
|
||||||
|
}
|
||||||
if (ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPM) {
|
if (ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPM) {
|
||||||
macroList.push_back(FurnaceGUIMacroDesc("AM Depth",&ins->std.ex1Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER]));
|
macroList.push_back(FurnaceGUIMacroDesc("AM Depth",&ins->std.ex1Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER]));
|
||||||
macroList.push_back(FurnaceGUIMacroDesc("PM Depth",&ins->std.ex2Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER]));
|
macroList.push_back(FurnaceGUIMacroDesc("PM Depth",&ins->std.ex2Macro,0,127,128,uiColors[GUI_COLOR_MACRO_OTHER]));
|
||||||
|
|
Loading…
Reference in New Issue