SID2, part 3
This commit is contained in:
parent
46d29d8a52
commit
71b8688e05
|
@ -174,6 +174,10 @@ const char* esfmNoiseModeDescriptions[4]={
|
||||||
"Noise disabled", "Square + noise", "Ringmod from OP3 + noise", "Ringmod from OP3 + double pitch ModInput\nWARNING - has emulation issues, subject to change"
|
"Noise disabled", "Square + noise", "Ringmod from OP3 + noise", "Ringmod from OP3 + double pitch ModInput\nWARNING - has emulation issues, subject to change"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char* sid2WaveMixModes[5]={
|
||||||
|
"Normal", "Bitwise AND", "Bitwise OR", "Bitwise XOR", NULL
|
||||||
|
};
|
||||||
|
|
||||||
const bool opIsOutput[8][4]={
|
const bool opIsOutput[8][4]={
|
||||||
{false,false,false,true},
|
{false,false,false,true},
|
||||||
{false,false,false,true},
|
{false,false,false,true},
|
||||||
|
@ -6818,7 +6822,7 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
const char* dutyLabel="Duty/Noise";
|
const char* dutyLabel="Duty/Noise";
|
||||||
int dutyMin=0;
|
int dutyMin=0;
|
||||||
int dutyMax=3;
|
int dutyMax=3;
|
||||||
if (ins->type==DIV_INS_C64) {
|
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_SID2) {
|
||||||
dutyLabel="Duty";
|
dutyLabel="Duty";
|
||||||
if (ins->c64.dutyIsAbs) {
|
if (ins->c64.dutyIsAbs) {
|
||||||
dutyMax=4095;
|
dutyMax=4095;
|
||||||
|
@ -6973,14 +6977,14 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
const char* waveLabel="Waveform";
|
const char* waveLabel="Waveform";
|
||||||
int waveMax=(ins->type==DIV_INS_VERA)?3:(MAX(1,e->song.waveLen-1));
|
int waveMax=(ins->type==DIV_INS_VERA)?3:(MAX(1,e->song.waveLen-1));
|
||||||
bool waveBitMode=false;
|
bool waveBitMode=false;
|
||||||
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_SAA1099) {
|
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_SAA1099 || ins->type==DIV_INS_SID2) {
|
||||||
waveBitMode=true;
|
waveBitMode=true;
|
||||||
}
|
}
|
||||||
if (ins->type==DIV_INS_STD || ins->type==DIV_INS_VRC6_SAW || ins->type==DIV_INS_NES ||
|
if (ins->type==DIV_INS_STD || ins->type==DIV_INS_VRC6_SAW || ins->type==DIV_INS_NES ||
|
||||||
ins->type==DIV_INS_T6W28 || ins->type==DIV_INS_PV1000)
|
ins->type==DIV_INS_T6W28 || ins->type==DIV_INS_PV1000)
|
||||||
waveMax=0;
|
waveMax=0;
|
||||||
if (ins->type==DIV_INS_TIA || ins->type==DIV_INS_VIC || ins->type==DIV_INS_OPLL) waveMax=15;
|
if (ins->type==DIV_INS_TIA || ins->type==DIV_INS_VIC || ins->type==DIV_INS_OPLL) waveMax=15;
|
||||||
if (ins->type==DIV_INS_C64) waveMax=4;
|
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_SID2) waveMax=4;
|
||||||
if (ins->type==DIV_INS_SAA1099) waveMax=2;
|
if (ins->type==DIV_INS_SAA1099) waveMax=2;
|
||||||
if (ins->type==DIV_INS_FM || ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPL_DRUMS || ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPM || ins->type==DIV_INS_ESFM) waveMax=0;
|
if (ins->type==DIV_INS_FM || ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPL_DRUMS || ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPM || ins->type==DIV_INS_ESFM) waveMax=0;
|
||||||
if (ins->type==DIV_INS_MIKEY) waveMax=0;
|
if (ins->type==DIV_INS_MIKEY) waveMax=0;
|
||||||
|
@ -7028,13 +7032,13 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
|
|
||||||
const char** waveNames=NULL;
|
const char** waveNames=NULL;
|
||||||
if (ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930 || ins->type==DIV_INS_SAA1099) waveNames=ayShapeBits;
|
if (ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930 || ins->type==DIV_INS_SAA1099) waveNames=ayShapeBits;
|
||||||
if (ins->type==DIV_INS_C64) waveNames=c64ShapeBits;
|
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_SID2) waveNames=c64ShapeBits;
|
||||||
|
|
||||||
int ex1Max=(ins->type==DIV_INS_AY8930)?8:0;
|
int ex1Max=(ins->type==DIV_INS_AY8930)?8:0;
|
||||||
int ex2Max=(ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930)?4:0;
|
int ex2Max=(ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930)?4:0;
|
||||||
bool ex2Bit=true;
|
bool ex2Bit=true;
|
||||||
|
|
||||||
if (ins->type==DIV_INS_C64) {
|
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_SID2) {
|
||||||
ex1Max=4;
|
ex1Max=4;
|
||||||
ex2Max=15;
|
ex2Max=15;
|
||||||
}
|
}
|
||||||
|
@ -7271,7 +7275,7 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true));
|
macroList.push_back(FurnaceGUIMacroDesc("Phase Reset",&ins->std.phaseResetMacro,0,1,32,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true));
|
||||||
}
|
}
|
||||||
if (ex1Max>0) {
|
if (ex1Max>0) {
|
||||||
if (ins->type==DIV_INS_C64) {
|
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_SID2) {
|
||||||
int cutoffMin=-2047;
|
int cutoffMin=-2047;
|
||||||
int cutoffMax=2047;
|
int cutoffMax=2047;
|
||||||
|
|
||||||
|
@ -7314,7 +7318,7 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ex2Max>0) {
|
if (ex2Max>0) {
|
||||||
if (ins->type==DIV_INS_C64) {
|
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_SID2) {
|
||||||
macroList.push_back(FurnaceGUIMacroDesc("Resonance",&ins->std.ex2Macro,0,ex2Max,64,uiColors[GUI_COLOR_MACRO_OTHER]));
|
macroList.push_back(FurnaceGUIMacroDesc("Resonance",&ins->std.ex2Macro,0,ex2Max,64,uiColors[GUI_COLOR_MACRO_OTHER]));
|
||||||
} else if (ins->type==DIV_INS_FDS) {
|
} else if (ins->type==DIV_INS_FDS) {
|
||||||
macroList.push_back(FurnaceGUIMacroDesc("Mod Speed",&ins->std.ex2Macro,0,ex2Max,160,uiColors[GUI_COLOR_MACRO_OTHER]));
|
macroList.push_back(FurnaceGUIMacroDesc("Mod Speed",&ins->std.ex2Macro,0,ex2Max,160,uiColors[GUI_COLOR_MACRO_OTHER]));
|
||||||
|
@ -7339,6 +7343,13 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
macroList.push_back(FurnaceGUIMacroDesc("Sustain",&ins->std.ex7Macro,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]));
|
macroList.push_back(FurnaceGUIMacroDesc("Release",&ins->std.ex8Macro,0,15,128,uiColors[GUI_COLOR_MACRO_OTHER]));
|
||||||
}
|
}
|
||||||
|
if (ins->type==DIV_INS_SID2) {
|
||||||
|
macroList.push_back(FurnaceGUIMacroDesc("Special",&ins->std.ex4Macro,0,4,64,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,sid2ControlBits));
|
||||||
|
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)) {
|
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]));
|
macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Num",&ins->std.ex3Macro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER]));
|
||||||
macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Den",&ins->std.algMacro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER]));
|
macroList.push_back(FurnaceGUIMacroDesc("AutoEnv Den",&ins->std.algMacro,0,15,160,uiColors[GUI_COLOR_MACRO_OTHER]));
|
||||||
|
|
Loading…
Reference in a new issue