prepare for 0.6pre3
OPN: add flag to make ExtCh op 1 be the only one controlling FB GUI: move Arcade presets to top GUI: fix YM2612 CSM not having flags
This commit is contained in:
parent
72ff7ad11a
commit
a09ad00e48
17 changed files with 549 additions and 499 deletions
|
|
@ -47,8 +47,8 @@
|
|||
#define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock();
|
||||
#define BUSY_END isBusy.unlock(); softLocked=false;
|
||||
|
||||
#define DIV_VERSION "0.6pre2"
|
||||
#define DIV_ENGINE_VERSION 132
|
||||
#define DIV_VERSION "0.6pre3"
|
||||
#define DIV_ENGINE_VERSION 133
|
||||
// for imports
|
||||
#define DIV_VERSION_MOD 0xff01
|
||||
#define DIV_VERSION_FC 0xff02
|
||||
|
|
|
|||
|
|
@ -2511,17 +2511,25 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
|
|||
}
|
||||
|
||||
// ExtCh compat flag
|
||||
if (ds.version<125) {
|
||||
for (int i=0; i<ds.systemLen; i++) {
|
||||
if (ds.system[i]==DIV_SYSTEM_YM2612_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2612_DUALPCM_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2610_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2610_FULL_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2610B_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2203_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2608_EXT) {
|
||||
for (int i=0; i<ds.systemLen; i++) {
|
||||
if (ds.system[i]==DIV_SYSTEM_YM2612_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2612_DUALPCM_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2610_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2610_FULL_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2610B_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2203_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2608_EXT ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2612_CSM ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2203_CSM ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2608_CSM ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2610_CSM ||
|
||||
ds.system[i]==DIV_SYSTEM_YM2610B_CSM) {
|
||||
if (ds.version<125) {
|
||||
ds.systemFlags[i].set("noExtMacros",true);
|
||||
}
|
||||
if (ds.version<133) {
|
||||
ds.systemFlags[i].set("fbAllOps",true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ class DivPlatformOPN: public DivPlatformFMBase {
|
|||
unsigned int ayDiv;
|
||||
unsigned char csmChan;
|
||||
unsigned char lfoValue;
|
||||
bool extSys, useCombo;
|
||||
bool extSys, useCombo, fbAllOps;
|
||||
|
||||
DivConfig ayFlags;
|
||||
|
||||
|
|
@ -173,7 +173,8 @@ class DivPlatformOPN: public DivPlatformFMBase {
|
|||
csmChan(cc),
|
||||
lfoValue(0),
|
||||
extSys(isExtSys),
|
||||
useCombo(false) {}
|
||||
useCombo(false),
|
||||
fbAllOps(false) {}
|
||||
public:
|
||||
void setCombo(bool combo) {
|
||||
useCombo=combo;
|
||||
|
|
|
|||
|
|
@ -1250,6 +1250,7 @@ void DivPlatformGenesis::setFlags(const DivConfig& flags) {
|
|||
}
|
||||
ladder=flags.getBool("ladderEffect",false);
|
||||
noExtMacros=flags.getBool("noExtMacros",false);
|
||||
fbAllOps=flags.getBool("fbAllOps",false);
|
||||
OPN2_SetChipType(&fm,ladder?ym3438_mode_ym2612:0);
|
||||
CHECK_CUSTOM_CLOCK;
|
||||
if (useYMFM) {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,9 @@ int DivPlatformGenesisExt::dispatch(DivCommand c) {
|
|||
|
||||
if (opChan[ch].insChanged) {
|
||||
chan[2].state.alg=ins->fm.alg;
|
||||
chan[2].state.fb=ins->fm.fb;
|
||||
if (ch==0 || fbAllOps) {
|
||||
chan[2].state.fb=ins->fm.fb;
|
||||
}
|
||||
chan[2].state.fms=ins->fm.fms;
|
||||
chan[2].state.ams=ins->fm.ams;
|
||||
chan[2].state.op[ordch]=ins->fm.op[ordch];
|
||||
|
|
|
|||
|
|
@ -1041,6 +1041,7 @@ void DivPlatformYM2203::setFlags(const DivConfig& flags) {
|
|||
}
|
||||
CHECK_CUSTOM_CLOCK;
|
||||
noExtMacros=flags.getBool("noExtMacros",false);
|
||||
fbAllOps=flags.getBool("fbAllOps",false);
|
||||
rate=fm->sample_rate(chipClock);
|
||||
for (int i=0; i<6; i++) {
|
||||
oscBuf[i]->rate=rate;
|
||||
|
|
|
|||
|
|
@ -44,7 +44,9 @@ int DivPlatformYM2203Ext::dispatch(DivCommand c) {
|
|||
|
||||
if (opChan[ch].insChanged) {
|
||||
chan[2].state.alg=ins->fm.alg;
|
||||
chan[2].state.fb=ins->fm.fb;
|
||||
if (ch==0 || fbAllOps) {
|
||||
chan[2].state.fb=ins->fm.fb;
|
||||
}
|
||||
chan[2].state.op[ordch]=ins->fm.op[ordch];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1538,6 +1538,7 @@ void DivPlatformYM2608::setFlags(const DivConfig& flags) {
|
|||
}
|
||||
CHECK_CUSTOM_CLOCK;
|
||||
noExtMacros=flags.getBool("noExtMacros",false);
|
||||
fbAllOps=flags.getBool("fbAllOps",false);
|
||||
rate=fm->sample_rate(chipClock);
|
||||
for (int i=0; i<16; i++) {
|
||||
oscBuf[i]->rate=rate;
|
||||
|
|
|
|||
|
|
@ -44,7 +44,9 @@ int DivPlatformYM2608Ext::dispatch(DivCommand c) {
|
|||
|
||||
if (opChan[ch].insChanged) {
|
||||
chan[2].state.alg=ins->fm.alg;
|
||||
chan[2].state.fb=ins->fm.fb;
|
||||
if (ch==0 || fbAllOps) {
|
||||
chan[2].state.fb=ins->fm.fb;
|
||||
}
|
||||
chan[2].state.fms=ins->fm.fms;
|
||||
chan[2].state.ams=ins->fm.ams;
|
||||
chan[2].state.op[ordch]=ins->fm.op[ordch];
|
||||
|
|
|
|||
|
|
@ -40,7 +40,9 @@ int DivPlatformYM2610BExt::dispatch(DivCommand c) {
|
|||
|
||||
if (opChan[ch].insChanged) {
|
||||
chan[extChanOffs].state.alg=ins->fm.alg;
|
||||
chan[extChanOffs].state.fb=ins->fm.fb;
|
||||
if (ch==0 || fbAllOps) {
|
||||
chan[extChanOffs].state.fb=ins->fm.fb;
|
||||
}
|
||||
chan[extChanOffs].state.fms=ins->fm.fms;
|
||||
chan[extChanOffs].state.ams=ins->fm.ams;
|
||||
chan[extChanOffs].state.op[ordch]=ins->fm.op[ordch];
|
||||
|
|
|
|||
|
|
@ -40,7 +40,9 @@ int DivPlatformYM2610Ext::dispatch(DivCommand c) {
|
|||
|
||||
if (opChan[ch].insChanged) {
|
||||
chan[extChanOffs].state.alg=ins->fm.alg;
|
||||
chan[extChanOffs].state.fb=ins->fm.fb;
|
||||
if (ch==0 || fbAllOps) {
|
||||
chan[extChanOffs].state.fb=ins->fm.fb;
|
||||
}
|
||||
chan[extChanOffs].state.fms=ins->fm.fms;
|
||||
chan[extChanOffs].state.ams=ins->fm.ams;
|
||||
chan[extChanOffs].state.op[ordch]=ins->fm.op[ordch];
|
||||
|
|
|
|||
|
|
@ -221,6 +221,7 @@ class DivPlatformYM2610Base: public DivPlatformOPN {
|
|||
}
|
||||
CHECK_CUSTOM_CLOCK;
|
||||
noExtMacros=flags.getBool("noExtMacros",false);
|
||||
fbAllOps=flags.getBool("fbAllOps",false);
|
||||
rate=fm->sample_rate(chipClock);
|
||||
for (int i=0; i<16; i++) {
|
||||
oscBuf[i]->rate=rate;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue