OPLL: add patch macro
This commit is contained in:
parent
ac79e7d6af
commit
5a08e0d230
|
@ -138,6 +138,13 @@ void DivPlatformOPLL::tick() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (chan[i].std.hadWave && chan[i].state.opllPreset!=16) {
|
||||||
|
chan[i].state.opllPreset=chan[i].std.wave;
|
||||||
|
if (i<9) {
|
||||||
|
rWrite(0x30+i,((15-(chan[i].outVol*(15-chan[i].state.op[1].tl))/15)&15)|(chan[i].state.opllPreset<<4));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (chan[i].state.opllPreset==0) {
|
if (chan[i].state.opllPreset==0) {
|
||||||
if (chan[i].std.hadAlg) { // SUS
|
if (chan[i].std.hadAlg) { // SUS
|
||||||
chan[i].state.alg=chan[i].std.alg;
|
chan[i].state.alg=chan[i].std.alg;
|
||||||
|
|
|
@ -1603,22 +1603,27 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
}
|
}
|
||||||
bool dutyIsRel=(ins->type==DIV_INS_C64 && !ins->c64.dutyIsAbs);
|
bool dutyIsRel=(ins->type==DIV_INS_C64 && !ins->c64.dutyIsAbs);
|
||||||
|
|
||||||
|
const char* waveLabel="Waveform";
|
||||||
int waveMax=(ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930 || ins->type==DIV_INS_VERA)?3:63;
|
int waveMax=(ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930 || ins->type==DIV_INS_VERA)?3:63;
|
||||||
bool bitMode=false;
|
bool bitMode=false;
|
||||||
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930 || ins->type==DIV_INS_SAA1099) {
|
if (ins->type==DIV_INS_C64 || ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930 || ins->type==DIV_INS_SAA1099) {
|
||||||
bitMode=true;
|
bitMode=true;
|
||||||
}
|
}
|
||||||
if (ins->type==DIV_INS_STD) waveMax=0;
|
if (ins->type==DIV_INS_STD) waveMax=0;
|
||||||
if (ins->type==DIV_INS_TIA || ins->type==DIV_INS_VIC) 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) 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_OPLL || ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPZ) waveMax=0;
|
if (ins->type==DIV_INS_FM || ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPZ) waveMax=0;
|
||||||
if (ins->type==DIV_INS_MIKEY) waveMax=0;
|
if (ins->type==DIV_INS_MIKEY) waveMax=0;
|
||||||
if (ins->type==DIV_INS_PET) {
|
if (ins->type==DIV_INS_PET) {
|
||||||
waveMax=8;
|
waveMax=8;
|
||||||
bitMode=true;
|
bitMode=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ins->type==DIV_INS_OPLL) {
|
||||||
|
waveLabel="Patch";
|
||||||
|
}
|
||||||
|
|
||||||
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) waveNames=c64ShapeBits;
|
||||||
|
@ -1654,7 +1659,7 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (waveMax>0) {
|
if (waveMax>0) {
|
||||||
NORMAL_MACRO(ins->std.waveMacro,ins->std.waveMacroLen,ins->std.waveMacroLoop,ins->std.waveMacroRel,0,waveMax,"wave","Waveform",bitMode?64:160,ins->std.waveMacroOpen,bitMode,waveNames,false,NULL,0,0,((ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930)?1:0),NULL,uiColors[GUI_COLOR_MACRO_WAVE],mmlString[3],0,waveMax,NULL,false);
|
NORMAL_MACRO(ins->std.waveMacro,ins->std.waveMacroLen,ins->std.waveMacroLoop,ins->std.waveMacroRel,0,waveMax,"wave",waveLabel,bitMode?64:160,ins->std.waveMacroOpen,bitMode,waveNames,false,NULL,0,0,((ins->type==DIV_INS_AY || ins->type==DIV_INS_AY8930)?1:0),NULL,uiColors[GUI_COLOR_MACRO_WAVE],mmlString[3],0,waveMax,NULL,false);
|
||||||
}
|
}
|
||||||
if (ex1Max>0) {
|
if (ex1Max>0) {
|
||||||
if (ins->type==DIV_INS_C64) {
|
if (ins->type==DIV_INS_C64) {
|
||||||
|
|
Loading…
Reference in New Issue