Make separate macros for each ADSR param

This commit is contained in:
LTVA1 2023-10-27 17:20:32 +03:00
parent 1207eb1e32
commit 50b314bd77
2 changed files with 15 additions and 13 deletions

View file

@ -235,13 +235,21 @@ void DivPlatformC64::tick(bool sysTick) {
}
if (chan[i].std.ex5.had) {
chan[i].attack = chan[i].std.ex5.val >> 4;
chan[i].decay = chan[i].std.ex5.val & 15;
chan[i].attack = chan[i].std.ex5.val & 15;
rWrite(i * 7 + 5, (chan[i].attack << 4) | (chan[i].decay));
}
if (chan[i].std.ex6.had) {
chan[i].sustain = chan[i].std.ex6.val >> 4;
chan[i].decay = chan[i].std.ex5.val & 15;
rWrite(i * 7 + 6, (chan[i].sustain << 4) | (chan[i].release));
}
if (chan[i].std.ex7.had) {
chan[i].sustain = chan[i].std.ex6.val & 15;
rWrite(i * 7 + 6, (chan[i].sustain << 4) | (chan[i].release));
}
if (chan[i].std.ex8.had) {
chan[i].release = chan[i].std.ex6.val & 15;
rWrite(i * 7 + 6, (chan[i].sustain << 4) | (chan[i].release));
}

View file

@ -260,14 +260,6 @@ const char* c64TestGateBits[3]={
"test", "gate", NULL
};
const char* c64AttackDecayBits[9] = {
"Decay 1", "Decay 2", "Decay 3", "Decay 4", "Attack 1", "Attack 2", "Attack 3", "Attack 4", NULL
};
const char* c64SustainReleaseBits[9] = {
"Release 1", "Release 2", "Release 3", "Release 4", "Sustain 1", "Sustain 2", "Sustain 3", "Sustain 4", NULL
};
const char* pokeyCtlBits[9]={
"15KHz", "filter 2+4", "filter 1+3", "16-bit 3+4", "16-bit 1+2", "high3", "high1", "poly9", NULL
};
@ -6493,8 +6485,10 @@ void FurnaceGUI::drawInsEdit() {
macroList.push_back(FurnaceGUIMacroDesc("Special",&ins->std.ex3Macro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,c64SpecialBits));
//macroList.push_back(FurnaceGUIMacroDesc("Test/Gate",&ins->std.ex4Macro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true));
macroList.push_back(FurnaceGUIMacroDesc("Test/Gate",&ins->std.ex4Macro,0,2,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL, true, c64TestGateBits));
macroList.push_back(FurnaceGUIMacroDesc("Attack/Decay", &ins->std.ex5Macro, 0, 8, 128, uiColors[GUI_COLOR_MACRO_OTHER], false, NULL, NULL, true, c64AttackDecayBits));
macroList.push_back(FurnaceGUIMacroDesc("Sustain/Release", &ins->std.ex6Macro, 0, 8, 128, uiColors[GUI_COLOR_MACRO_OTHER], false, NULL, NULL, true, c64SustainReleaseBits));
macroList.push_back(FurnaceGUIMacroDesc("Attack", &ins->std.ex5Macro, 0, 15, 128, uiColors[GUI_COLOR_MACRO_OTHER]));
macroList.push_back(FurnaceGUIMacroDesc("Decay", &ins->std.ex6Macro, 0, 15, 128, uiColors[GUI_COLOR_MACRO_OTHER]));
macroList.push_back(FurnaceGUIMacroDesc("Sustain", &ins->std.ex7Macro, 0, 15, 128, uiColors[GUI_COLOR_MACRO_OTHER]));
macroList.push_back(FurnaceGUIMacroDesc("Release", &ins->std.ex8Macro, 0, 15, 128, uiColors[GUI_COLOR_MACRO_OTHER]));
}
if (ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930 || (ins->type==DIV_INS_X1_010 && !ins->amiga.useSample)) {
macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Num",&ins->std.ex3Macro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER]));