POKEY: add AUDCTL macro

This commit is contained in:
tildearrow 2022-12-20 02:59:26 -05:00
parent c46f3a3085
commit 0d10b99cf7
2 changed files with 15 additions and 2 deletions

View File

@ -92,6 +92,10 @@ void DivPlatformPOKEY::tick(bool sysTick) {
}
chan[i].freqChanged=true;
}
if (chan[i].std.duty.had) {
audctl=chan[i].std.duty.val;
audctlChanged=true;
}
if (chan[i].std.wave.had) {
chan[i].wave=chan[i].std.wave.val;
chan[i].ctlChanged=true;

View File

@ -255,6 +255,10 @@ const char* c64SpecialBits[3]={
"sync", "ring", NULL
};
const char* pokeyCtlBits[9]={
"15KHz", "filter 2+4", "filter 1+3", "16-bit 3+4", "16-bit 1+2", "high3", "high1", "poly9", NULL
};
const char* mikeyFeedbackBits[11] = {
"0", "1", "2", "3", "4", "5", "7", "10", "11", "int", NULL
};
@ -4979,6 +4983,10 @@ void FurnaceGUI::drawInsEdit() {
if (ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930 || ins->type==DIV_INS_FM || ins->type==DIV_INS_OPM) {
dutyLabel="Noise Freq";
}
if (ins->type==DIV_INS_POKEY) {
dutyLabel="AUDCTL";
dutyMax=8;
}
if (ins->type==DIV_INS_MIKEY) {
dutyLabel="Duty/Int";
dutyMax=ins->amiga.useSample?0:10;
@ -5000,8 +5008,7 @@ void FurnaceGUI::drawInsEdit() {
}
if (ins->type==DIV_INS_TIA || ins->type==DIV_INS_AMIGA || ins->type==DIV_INS_SCC ||
ins->type==DIV_INS_PET || ins->type==DIV_INS_VIC || ins->type==DIV_INS_SEGAPCM ||
ins->type==DIV_INS_FM || ins->type==DIV_INS_K007232 || ins->type==DIV_INS_GA20 ||
ins->type==DIV_INS_POKEY) {
ins->type==DIV_INS_FM || ins->type==DIV_INS_K007232 || ins->type==DIV_INS_GA20) {
dutyMax=0;
}
if (ins->type==DIV_INS_VBOY) {
@ -5221,6 +5228,8 @@ void FurnaceGUI::drawInsEdit() {
if (dutyMax>0) {
if (ins->type==DIV_INS_MIKEY) {
macroList.push_back(FurnaceGUIMacroDesc(dutyLabel,&ins->std.dutyMacro,0,dutyMax,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,mikeyFeedbackBits));
} else if (ins->type==DIV_INS_POKEY) {
macroList.push_back(FurnaceGUIMacroDesc(dutyLabel,&ins->std.dutyMacro,0,dutyMax,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,pokeyCtlBits));
} else if (ins->type==DIV_INS_MSM5232) {
macroList.push_back(FurnaceGUIMacroDesc(dutyLabel,&ins->std.dutyMacro,0,dutyMax,160,uiColors[GUI_COLOR_MACRO_OTHER],false,NULL,NULL,true,msm5232ControlBits));
} else if (ins->type==DIV_INS_ES5506) {