rename some DIV_SYSTEM_ items
OPN -> YM2203 PC98 -> YM2608 FRAC -> DUALPCM
This commit is contained in:
parent
f45fb3fbaf
commit
7a92811fd9
|
@ -191,22 +191,22 @@ void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, do
|
||||||
dispatch=new DivPlatformOPL;
|
dispatch=new DivPlatformOPL;
|
||||||
((DivPlatformOPL*)dispatch)->setOPLType(759,false);
|
((DivPlatformOPL*)dispatch)->setOPLType(759,false);
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
dispatch=new DivPlatformGenesis;
|
dispatch=new DivPlatformGenesis;
|
||||||
((DivPlatformGenesis*)dispatch)->setYMFM(eng->getConfInt("ym2612Core",0));
|
((DivPlatformGenesis*)dispatch)->setYMFM(eng->getConfInt("ym2612Core",0));
|
||||||
((DivPlatformGenesis*)dispatch)->setSoftPCM(false);
|
((DivPlatformGenesis*)dispatch)->setSoftPCM(false);
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
dispatch=new DivPlatformGenesisExt;
|
dispatch=new DivPlatformGenesisExt;
|
||||||
((DivPlatformGenesisExt*)dispatch)->setYMFM(eng->getConfInt("ym2612Core",0));
|
((DivPlatformGenesisExt*)dispatch)->setYMFM(eng->getConfInt("ym2612Core",0));
|
||||||
((DivPlatformGenesisExt*)dispatch)->setSoftPCM(false);
|
((DivPlatformGenesisExt*)dispatch)->setSoftPCM(false);
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_YM2612_FRAC:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC:
|
||||||
dispatch=new DivPlatformGenesis;
|
dispatch=new DivPlatformGenesis;
|
||||||
((DivPlatformGenesis*)dispatch)->setYMFM(eng->getConfInt("ym2612Core",0));
|
((DivPlatformGenesis*)dispatch)->setYMFM(eng->getConfInt("ym2612Core",0));
|
||||||
((DivPlatformGenesis*)dispatch)->setSoftPCM(true);
|
((DivPlatformGenesis*)dispatch)->setSoftPCM(true);
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT:
|
||||||
dispatch=new DivPlatformGenesisExt;
|
dispatch=new DivPlatformGenesisExt;
|
||||||
((DivPlatformGenesisExt*)dispatch)->setYMFM(eng->getConfInt("ym2612Core",0));
|
((DivPlatformGenesisExt*)dispatch)->setYMFM(eng->getConfInt("ym2612Core",0));
|
||||||
((DivPlatformGenesisExt*)dispatch)->setSoftPCM(true);
|
((DivPlatformGenesisExt*)dispatch)->setSoftPCM(true);
|
||||||
|
@ -269,16 +269,16 @@ void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, do
|
||||||
case DIV_SYSTEM_TIA:
|
case DIV_SYSTEM_TIA:
|
||||||
dispatch=new DivPlatformTIA;
|
dispatch=new DivPlatformTIA;
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_OPN:
|
case DIV_SYSTEM_YM2203:
|
||||||
dispatch=new DivPlatformYM2203;
|
dispatch=new DivPlatformYM2203;
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_OPN_EXT:
|
case DIV_SYSTEM_YM2203_EXT:
|
||||||
dispatch=new DivPlatformYM2203Ext;
|
dispatch=new DivPlatformYM2203Ext;
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_PC98:
|
case DIV_SYSTEM_YM2608:
|
||||||
dispatch=new DivPlatformYM2608;
|
dispatch=new DivPlatformYM2608;
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_PC98_EXT:
|
case DIV_SYSTEM_YM2608_EXT:
|
||||||
dispatch=new DivPlatformYM2608Ext;
|
dispatch=new DivPlatformYM2608Ext;
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_OPLL:
|
case DIV_SYSTEM_OPLL:
|
||||||
|
|
|
@ -2440,7 +2440,7 @@ int DivEngine::getEffectiveSampleRate(int rate) {
|
||||||
switch (song.system[0]) {
|
switch (song.system[0]) {
|
||||||
case DIV_SYSTEM_YMU759:
|
case DIV_SYSTEM_YMU759:
|
||||||
return 8000;
|
return 8000;
|
||||||
case DIV_SYSTEM_YM2612: case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM: case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
return 1278409/(1280000/rate);
|
return 1278409/(1280000/rate);
|
||||||
case DIV_SYSTEM_PCE:
|
case DIV_SYSTEM_PCE:
|
||||||
return 1789773/(1789773/rate);
|
return 1789773/(1789773/rate);
|
||||||
|
|
|
@ -937,13 +937,13 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
||||||
// handle compound systems
|
// handle compound systems
|
||||||
if (ds.system[0]==DIV_SYSTEM_GENESIS) {
|
if (ds.system[0]==DIV_SYSTEM_GENESIS) {
|
||||||
ds.systemLen=2;
|
ds.systemLen=2;
|
||||||
ds.system[0]=DIV_SYSTEM_YM2612;
|
ds.system[0]=DIV_SYSTEM_YM2612_DUALPCM;
|
||||||
ds.system[1]=DIV_SYSTEM_SMS;
|
ds.system[1]=DIV_SYSTEM_SMS;
|
||||||
ds.systemVol[1]=32;
|
ds.systemVol[1]=32;
|
||||||
}
|
}
|
||||||
if (ds.system[0]==DIV_SYSTEM_GENESIS_EXT) {
|
if (ds.system[0]==DIV_SYSTEM_GENESIS_EXT) {
|
||||||
ds.systemLen=2;
|
ds.systemLen=2;
|
||||||
ds.system[0]=DIV_SYSTEM_YM2612_EXT;
|
ds.system[0]=DIV_SYSTEM_YM2612_DUALPCM_EXT;
|
||||||
ds.system[1]=DIV_SYSTEM_SMS;
|
ds.system[1]=DIV_SYSTEM_SMS;
|
||||||
ds.systemVol[1]=32;
|
ds.systemVol[1]=32;
|
||||||
}
|
}
|
||||||
|
@ -1205,10 +1205,10 @@ void DivEngine::convertOldFlags(unsigned int oldFlags, DivConfig& newFlags, DivS
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
case DIV_SYSTEM_YM2612_FRAC:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC:
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT:
|
||||||
switch (oldFlags&0x7fffffff) {
|
switch (oldFlags&0x7fffffff) {
|
||||||
case 0:
|
case 0:
|
||||||
newFlags.set("clockSel",0);
|
newFlags.set("clockSel",0);
|
||||||
|
@ -1295,8 +1295,8 @@ void DivEngine::convertOldFlags(unsigned int oldFlags, DivConfig& newFlags, DivS
|
||||||
newFlags.set("channels",(int)((oldFlags>>4)&7));
|
newFlags.set("channels",(int)((oldFlags>>4)&7));
|
||||||
if (oldFlags&128) newFlags.set("multiplex",true);
|
if (oldFlags&128) newFlags.set("multiplex",true);
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_OPN:
|
case DIV_SYSTEM_YM2203:
|
||||||
case DIV_SYSTEM_OPN_EXT:
|
case DIV_SYSTEM_YM2203_EXT:
|
||||||
switch (oldFlags&31) {
|
switch (oldFlags&31) {
|
||||||
case 0:
|
case 0:
|
||||||
newFlags.set("clockSel",0);
|
newFlags.set("clockSel",0);
|
||||||
|
@ -1329,8 +1329,8 @@ void DivEngine::convertOldFlags(unsigned int oldFlags, DivConfig& newFlags, DivS
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_PC98:
|
case DIV_SYSTEM_YM2608:
|
||||||
case DIV_SYSTEM_PC98_EXT:
|
case DIV_SYSTEM_YM2608_EXT:
|
||||||
switch (oldFlags&31) {
|
switch (oldFlags&31) {
|
||||||
case 0:
|
case 0:
|
||||||
newFlags.set("clockSel",0);
|
newFlags.set("clockSel",0);
|
||||||
|
@ -1857,14 +1857,14 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
|
||||||
if (++ds.systemLen>DIV_MAX_CHIPS) ds.systemLen=DIV_MAX_CHIPS;
|
if (++ds.systemLen>DIV_MAX_CHIPS) ds.systemLen=DIV_MAX_CHIPS;
|
||||||
|
|
||||||
if (ds.system[i]==DIV_SYSTEM_GENESIS) {
|
if (ds.system[i]==DIV_SYSTEM_GENESIS) {
|
||||||
ds.system[i]=DIV_SYSTEM_YM2612;
|
ds.system[i]=DIV_SYSTEM_YM2612_DUALPCM;
|
||||||
if (i<31) {
|
if (i<31) {
|
||||||
ds.system[i+1]=DIV_SYSTEM_SMS;
|
ds.system[i+1]=DIV_SYSTEM_SMS;
|
||||||
ds.systemVol[i+1]=(((ds.systemVol[i]&127)*3)>>3)|(ds.systemVol[i]&128);
|
ds.systemVol[i+1]=(((ds.systemVol[i]&127)*3)>>3)|(ds.systemVol[i]&128);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ds.system[i]==DIV_SYSTEM_GENESIS_EXT) {
|
if (ds.system[i]==DIV_SYSTEM_GENESIS_EXT) {
|
||||||
ds.system[i]=DIV_SYSTEM_YM2612_EXT;
|
ds.system[i]=DIV_SYSTEM_YM2612_DUALPCM_EXT;
|
||||||
if (i<31) {
|
if (i<31) {
|
||||||
ds.system[i+1]=DIV_SYSTEM_SMS;
|
ds.system[i+1]=DIV_SYSTEM_SMS;
|
||||||
ds.systemVol[i+1]=(((ds.systemVol[i]&127)*3)>>3)|(ds.systemVol[i]&128);
|
ds.systemVol[i+1]=(((ds.systemVol[i]&127)*3)>>3)|(ds.systemVol[i]&128);
|
||||||
|
@ -2484,14 +2484,14 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
|
||||||
case DIV_SYSTEM_YM2610_FULL_EXT:
|
case DIV_SYSTEM_YM2610_FULL_EXT:
|
||||||
case DIV_SYSTEM_YM2610B:
|
case DIV_SYSTEM_YM2610B:
|
||||||
case DIV_SYSTEM_YM2610B_EXT:
|
case DIV_SYSTEM_YM2610B_EXT:
|
||||||
case DIV_SYSTEM_OPN:
|
case DIV_SYSTEM_YM2203:
|
||||||
case DIV_SYSTEM_OPN_EXT:
|
case DIV_SYSTEM_YM2203_EXT:
|
||||||
case DIV_SYSTEM_PC98:
|
case DIV_SYSTEM_YM2608:
|
||||||
case DIV_SYSTEM_PC98_EXT:
|
case DIV_SYSTEM_YM2608_EXT:
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
case DIV_SYSTEM_YM2612_FRAC:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC:
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT:
|
||||||
opnCount++;
|
opnCount++;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -2513,13 +2513,13 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
|
||||||
// ExtCh compat flag
|
// ExtCh compat flag
|
||||||
if (ds.version<125) {
|
if (ds.version<125) {
|
||||||
for (int i=0; i<ds.systemLen; i++) {
|
for (int i=0; i<ds.systemLen; i++) {
|
||||||
if (ds.system[i]==DIV_SYSTEM_YM2612_EXT ||
|
if (ds.system[i]==DIV_SYSTEM_YM2612_DUALPCM_EXT ||
|
||||||
ds.system[i]==DIV_SYSTEM_YM2612_FRAC_EXT ||
|
ds.system[i]==DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT ||
|
||||||
ds.system[i]==DIV_SYSTEM_YM2610_EXT ||
|
ds.system[i]==DIV_SYSTEM_YM2610_EXT ||
|
||||||
ds.system[i]==DIV_SYSTEM_YM2610_FULL_EXT ||
|
ds.system[i]==DIV_SYSTEM_YM2610_FULL_EXT ||
|
||||||
ds.system[i]==DIV_SYSTEM_YM2610B_EXT ||
|
ds.system[i]==DIV_SYSTEM_YM2610B_EXT ||
|
||||||
ds.system[i]==DIV_SYSTEM_OPN_EXT ||
|
ds.system[i]==DIV_SYSTEM_YM2203_EXT ||
|
||||||
ds.system[i]==DIV_SYSTEM_PC98_EXT) {
|
ds.system[i]==DIV_SYSTEM_YM2608_EXT) {
|
||||||
ds.systemFlags[i].set("noExtMacros",true);
|
ds.systemFlags[i].set("noExtMacros",true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4625,10 +4625,10 @@ SafeWriter* DivEngine::saveDMF(unsigned char version) {
|
||||||
// check whether system is compound
|
// check whether system is compound
|
||||||
bool isFlat=false;
|
bool isFlat=false;
|
||||||
if (song.systemLen==2) {
|
if (song.systemLen==2) {
|
||||||
if (song.system[0]==DIV_SYSTEM_YM2612 && song.system[1]==DIV_SYSTEM_SMS) {
|
if (song.system[0]==DIV_SYSTEM_YM2612_DUALPCM && song.system[1]==DIV_SYSTEM_SMS) {
|
||||||
isFlat=true;
|
isFlat=true;
|
||||||
}
|
}
|
||||||
if (song.system[0]==DIV_SYSTEM_YM2612_EXT && song.system[1]==DIV_SYSTEM_SMS) {
|
if (song.system[0]==DIV_SYSTEM_YM2612_DUALPCM_EXT && song.system[1]==DIV_SYSTEM_SMS) {
|
||||||
isFlat=true;
|
isFlat=true;
|
||||||
}
|
}
|
||||||
if (song.system[0]==DIV_SYSTEM_YM2151 && song.system[1]==DIV_SYSTEM_SEGAPCM_COMPAT) {
|
if (song.system[0]==DIV_SYSTEM_YM2151 && song.system[1]==DIV_SYSTEM_SEGAPCM_COMPAT) {
|
||||||
|
@ -4717,10 +4717,10 @@ SafeWriter* DivEngine::saveDMF(unsigned char version) {
|
||||||
// version
|
// version
|
||||||
w->writeC(version);
|
w->writeC(version);
|
||||||
DivSystem sys=DIV_SYSTEM_NULL;
|
DivSystem sys=DIV_SYSTEM_NULL;
|
||||||
if (song.system[0]==DIV_SYSTEM_YM2612 && song.system[1]==DIV_SYSTEM_SMS) {
|
if (song.system[0]==DIV_SYSTEM_YM2612_DUALPCM && song.system[1]==DIV_SYSTEM_SMS) {
|
||||||
w->writeC(systemToFileDMF(DIV_SYSTEM_GENESIS));
|
w->writeC(systemToFileDMF(DIV_SYSTEM_GENESIS));
|
||||||
sys=DIV_SYSTEM_GENESIS;
|
sys=DIV_SYSTEM_GENESIS;
|
||||||
} else if (song.system[0]==DIV_SYSTEM_YM2612_EXT && song.system[1]==DIV_SYSTEM_SMS) {
|
} else if (song.system[0]==DIV_SYSTEM_YM2612_DUALPCM_EXT && song.system[1]==DIV_SYSTEM_SMS) {
|
||||||
w->writeC(systemToFileDMF(DIV_SYSTEM_GENESIS_EXT));
|
w->writeC(systemToFileDMF(DIV_SYSTEM_GENESIS_EXT));
|
||||||
sys=DIV_SYSTEM_GENESIS_EXT;
|
sys=DIV_SYSTEM_GENESIS_EXT;
|
||||||
} else if (song.system[0]==DIV_SYSTEM_YM2151 && song.system[1]==DIV_SYSTEM_SEGAPCM_COMPAT) {
|
} else if (song.system[0]==DIV_SYSTEM_YM2151 && song.system[1]==DIV_SYSTEM_SEGAPCM_COMPAT) {
|
||||||
|
|
|
@ -52,7 +52,7 @@ enum DivSystem {
|
||||||
DIV_SYSTEM_AY8910,
|
DIV_SYSTEM_AY8910,
|
||||||
DIV_SYSTEM_AMIGA,
|
DIV_SYSTEM_AMIGA,
|
||||||
DIV_SYSTEM_YM2151,
|
DIV_SYSTEM_YM2151,
|
||||||
DIV_SYSTEM_YM2612,
|
DIV_SYSTEM_YM2612_DUALPCM,
|
||||||
DIV_SYSTEM_TIA,
|
DIV_SYSTEM_TIA,
|
||||||
DIV_SYSTEM_SAA1099,
|
DIV_SYSTEM_SAA1099,
|
||||||
DIV_SYSTEM_AY8930,
|
DIV_SYSTEM_AY8930,
|
||||||
|
@ -64,10 +64,10 @@ enum DivSystem {
|
||||||
DIV_SYSTEM_FDS,
|
DIV_SYSTEM_FDS,
|
||||||
DIV_SYSTEM_MMC5,
|
DIV_SYSTEM_MMC5,
|
||||||
DIV_SYSTEM_N163,
|
DIV_SYSTEM_N163,
|
||||||
DIV_SYSTEM_OPN,
|
DIV_SYSTEM_YM2203,
|
||||||
DIV_SYSTEM_OPN_EXT,
|
DIV_SYSTEM_YM2203_EXT,
|
||||||
DIV_SYSTEM_PC98,
|
DIV_SYSTEM_YM2608,
|
||||||
DIV_SYSTEM_PC98_EXT,
|
DIV_SYSTEM_YM2608_EXT,
|
||||||
DIV_SYSTEM_OPL,
|
DIV_SYSTEM_OPL,
|
||||||
DIV_SYSTEM_OPL2,
|
DIV_SYSTEM_OPL2,
|
||||||
DIV_SYSTEM_OPL3,
|
DIV_SYSTEM_OPL3,
|
||||||
|
@ -83,7 +83,7 @@ enum DivSystem {
|
||||||
DIV_SYSTEM_VRC7,
|
DIV_SYSTEM_VRC7,
|
||||||
DIV_SYSTEM_YM2610B,
|
DIV_SYSTEM_YM2610B,
|
||||||
DIV_SYSTEM_SFX_BEEPER,
|
DIV_SYSTEM_SFX_BEEPER,
|
||||||
DIV_SYSTEM_YM2612_EXT,
|
DIV_SYSTEM_YM2612_DUALPCM_EXT,
|
||||||
DIV_SYSTEM_SCC,
|
DIV_SYSTEM_SCC,
|
||||||
DIV_SYSTEM_OPL_DRUMS,
|
DIV_SYSTEM_OPL_DRUMS,
|
||||||
DIV_SYSTEM_OPL2_DRUMS,
|
DIV_SYSTEM_OPL2_DRUMS,
|
||||||
|
@ -111,8 +111,8 @@ enum DivSystem {
|
||||||
DIV_SYSTEM_NAMCO,
|
DIV_SYSTEM_NAMCO,
|
||||||
DIV_SYSTEM_NAMCO_15XX,
|
DIV_SYSTEM_NAMCO_15XX,
|
||||||
DIV_SYSTEM_NAMCO_CUS30,
|
DIV_SYSTEM_NAMCO_CUS30,
|
||||||
DIV_SYSTEM_YM2612_FRAC,
|
DIV_SYSTEM_YM2612_DUALPCM_FRAC,
|
||||||
DIV_SYSTEM_YM2612_FRAC_EXT,
|
DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT,
|
||||||
DIV_SYSTEM_MSM5232,
|
DIV_SYSTEM_MSM5232,
|
||||||
DIV_SYSTEM_T6W28,
|
DIV_SYSTEM_T6W28,
|
||||||
DIV_SYSTEM_K007232,
|
DIV_SYSTEM_K007232,
|
||||||
|
@ -120,11 +120,11 @@ enum DivSystem {
|
||||||
DIV_SYSTEM_PCM_DAC,
|
DIV_SYSTEM_PCM_DAC,
|
||||||
DIV_SYSTEM_PONG,
|
DIV_SYSTEM_PONG,
|
||||||
DIV_SYSTEM_DUMMY,
|
DIV_SYSTEM_DUMMY,
|
||||||
DIV_SYSTEM_YM2612_CSM,
|
DIV_SYSTEM_YM2612_DUALPCM_CSM,
|
||||||
DIV_SYSTEM_YM2610_CSM,
|
DIV_SYSTEM_YM2610_CSM,
|
||||||
DIV_SYSTEM_YM2610B_CSM,
|
DIV_SYSTEM_YM2610B_CSM,
|
||||||
DIV_SYSTEM_OPN_CSM,
|
DIV_SYSTEM_YM2203_CSM,
|
||||||
DIV_SYSTEM_PC98_CSM
|
DIV_SYSTEM_YM2608_CSM
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DivSubSong {
|
struct DivSubSong {
|
||||||
|
@ -442,7 +442,7 @@ struct DivSong {
|
||||||
systemPan[i]=0;
|
systemPan[i]=0;
|
||||||
}
|
}
|
||||||
subsong.push_back(new DivSubSong);
|
subsong.push_back(new DivSubSong);
|
||||||
system[0]=DIV_SYSTEM_YM2612;
|
system[0]=DIV_SYSTEM_YM2612_DUALPCM;
|
||||||
system[1]=DIV_SYSTEM_SMS;
|
system[1]=DIV_SYSTEM_SMS;
|
||||||
|
|
||||||
// OPLL default instrument contest winner - piano_guitar_idk by Weeppiko
|
// OPLL default instrument contest winner - piano_guitar_idk by Weeppiko
|
||||||
|
|
|
@ -128,7 +128,7 @@ String DivEngine::getSongSystemLegacyName(DivSong& ds, bool isMultiSystemAccepta
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (ds.system[0]==DIV_SYSTEM_YM2612) {
|
} else if (ds.system[0]==DIV_SYSTEM_YM2612_DUALPCM) {
|
||||||
switch (ds.systemFlags[0].getInt("clockSel",0)) {
|
switch (ds.systemFlags[0].getInt("clockSel",0)) {
|
||||||
case 2:
|
case 2:
|
||||||
return "FM Towns";
|
return "FM Towns";
|
||||||
|
@ -146,10 +146,10 @@ String DivEngine::getSongSystemLegacyName(DivSong& ds, bool isMultiSystemAccepta
|
||||||
}
|
}
|
||||||
return getSystemName(ds.system[0]);
|
return getSystemName(ds.system[0]);
|
||||||
case 2:
|
case 2:
|
||||||
if (ds.system[0]==DIV_SYSTEM_YM2612 && ds.system[1]==DIV_SYSTEM_SMS) {
|
if (ds.system[0]==DIV_SYSTEM_YM2612_DUALPCM && ds.system[1]==DIV_SYSTEM_SMS) {
|
||||||
return "Sega Genesis/Mega Drive";
|
return "Sega Genesis/Mega Drive";
|
||||||
}
|
}
|
||||||
if (ds.system[0]==DIV_SYSTEM_YM2612_EXT && ds.system[1]==DIV_SYSTEM_SMS) {
|
if (ds.system[0]==DIV_SYSTEM_YM2612_DUALPCM_EXT && ds.system[1]==DIV_SYSTEM_SMS) {
|
||||||
return "Sega Genesis Extended Channel 3";
|
return "Sega Genesis Extended Channel 3";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,7 +293,7 @@ const char* DivEngine::getSystemNameJ(DivSystem sys) {
|
||||||
return "";
|
return "";
|
||||||
case DIV_SYSTEM_YM2151:
|
case DIV_SYSTEM_YM2151:
|
||||||
return "";
|
return "";
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
return "";
|
return "";
|
||||||
case DIV_SYSTEM_TIA:
|
case DIV_SYSTEM_TIA:
|
||||||
return "";
|
return "";
|
||||||
|
@ -811,7 +811,7 @@ void DivEngine::registerSystems() {
|
||||||
fmOPMPostEffectHandlerMap
|
fmOPMPostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_YM2612]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2612_DUALPCM]=new DivSysDef(
|
||||||
"Yamaha YM2612 (OPN2)", NULL, 0x83, 0, 6, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
"Yamaha YM2612 (OPN2)", NULL, 0x83, 0, 6, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
||||||
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).",
|
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).",
|
||||||
{"FM 1", "FM 2", "FM 3", "FM 4", "FM 5", "FM 6"},
|
{"FM 1", "FM 2", "FM 3", "FM 4", "FM 5", "FM 6"},
|
||||||
|
@ -1006,7 +1006,7 @@ void DivEngine::registerSystems() {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_OPN]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2203]=new DivSysDef(
|
||||||
"Yamaha YM2203 (OPN)", NULL, 0x8d, 0, 6, true, true, 0x151, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
"Yamaha YM2203 (OPN)", NULL, 0x8d, 0, 6, true, true, 0x151, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
||||||
"cost-reduced version of the OPM with a different register layout and no stereo...\n...but it has a built-in AY-3-8910! (actually an YM2149)",
|
"cost-reduced version of the OPM with a different register layout and no stereo...\n...but it has a built-in AY-3-8910! (actually an YM2149)",
|
||||||
{"FM 1", "FM 2", "FM 3", "PSG 1", "PSG 2", "PSG 3"},
|
{"FM 1", "FM 2", "FM 3", "PSG 1", "PSG 2", "PSG 3"},
|
||||||
|
@ -1018,7 +1018,7 @@ void DivEngine::registerSystems() {
|
||||||
fmOPNPostEffectHandlerMap
|
fmOPNPostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_OPN_EXT]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2203_EXT]=new DivSysDef(
|
||||||
"Yamaha YM2203 (OPN) Extended Channel 3", NULL, 0xb6, 0, 9, true, true, 0x151, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
"Yamaha YM2203 (OPN) Extended Channel 3", NULL, 0xb6, 0, 9, true, true, 0x151, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
||||||
"cost-reduced version of the OPM with a different register layout and no stereo...\n...but it has a built-in AY-3-8910! (actually an YM2149)\nthis one is in Extended Channel mode, which turns the third FM channel into four operators with independent notes/frequencies",
|
"cost-reduced version of the OPM with a different register layout and no stereo...\n...but it has a built-in AY-3-8910! (actually an YM2149)\nthis one is in Extended Channel mode, which turns the third FM channel into four operators with independent notes/frequencies",
|
||||||
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "PSG 1", "PSG 2", "PSG 3"},
|
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "PSG 1", "PSG 2", "PSG 3"},
|
||||||
|
@ -1030,7 +1030,7 @@ void DivEngine::registerSystems() {
|
||||||
fmOPNPostEffectHandlerMap
|
fmOPNPostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_OPN_CSM]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2203_CSM]=new DivSysDef(
|
||||||
"Yamaha YM2203 (OPN) CSM", NULL, 0xc3, 0, 10, true, true, 0x151, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
"Yamaha YM2203 (OPN) CSM", NULL, 0xc3, 0, 10, true, true, 0x151, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
||||||
"cost-reduced version of the OPM with a different register layout and no stereo...\n...but it has a built-in AY-3-8910! (actually an YM2149)\nCSM blah blah",
|
"cost-reduced version of the OPM with a different register layout and no stereo...\n...but it has a built-in AY-3-8910! (actually an YM2149)\nCSM blah blah",
|
||||||
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "CSM Timer", "PSG 1", "PSG 2", "PSG 3"},
|
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "CSM Timer", "PSG 1", "PSG 2", "PSG 3"},
|
||||||
|
@ -1042,7 +1042,7 @@ void DivEngine::registerSystems() {
|
||||||
fmOPNPostEffectHandlerMap
|
fmOPNPostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_PC98]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2608]=new DivSysDef(
|
||||||
"Yamaha YM2608 (OPNA)", NULL, 0x8e, 0, 16, true, true, 0x151, false, (1U<<DIV_SAMPLE_DEPTH_ADPCM_B)|(1U<<DIV_SAMPLE_DEPTH_8BIT),
|
"Yamaha YM2608 (OPNA)", NULL, 0x8e, 0, 16, true, true, 0x151, false, (1U<<DIV_SAMPLE_DEPTH_ADPCM_B)|(1U<<DIV_SAMPLE_DEPTH_8BIT),
|
||||||
"OPN but twice the FM channels, stereo makes a come-back and has rhythm and ADPCM channels.",
|
"OPN but twice the FM channels, stereo makes a come-back and has rhythm and ADPCM channels.",
|
||||||
{"FM 1", "FM 2", "FM 3", "FM 4", "FM 5", "FM 6", "Square 1", "Square 2", "Square 3", "Kick", "Snare", "Top", "HiHat", "Tom", "Rim", "ADPCM"},
|
{"FM 1", "FM 2", "FM 3", "FM 4", "FM 5", "FM 6", "Square 1", "Square 2", "Square 3", "Kick", "Snare", "Top", "HiHat", "Tom", "Rim", "ADPCM"},
|
||||||
|
@ -1054,7 +1054,7 @@ void DivEngine::registerSystems() {
|
||||||
fmOPNAPostEffectHandlerMap
|
fmOPNAPostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_PC98_EXT]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2608_EXT]=new DivSysDef(
|
||||||
"Yamaha YM2608 (OPNA) Extended Channel 3", NULL, 0xb7, 0, 19, true, true, 0x151, false, (1U<<DIV_SAMPLE_DEPTH_ADPCM_B)|(1U<<DIV_SAMPLE_DEPTH_8BIT),
|
"Yamaha YM2608 (OPNA) Extended Channel 3", NULL, 0xb7, 0, 19, true, true, 0x151, false, (1U<<DIV_SAMPLE_DEPTH_ADPCM_B)|(1U<<DIV_SAMPLE_DEPTH_8BIT),
|
||||||
"OPN but twice the FM channels, stereo makes a come-back and has rhythm and ADPCM channels.\nthis one is in Extended Channel mode, which turns the third FM channel into four operators with independent notes/frequencies",
|
"OPN but twice the FM channels, stereo makes a come-back and has rhythm and ADPCM channels.\nthis one is in Extended Channel mode, which turns the third FM channel into four operators with independent notes/frequencies",
|
||||||
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6", "Square 1", "Square 2", "Square 3", "Kick", "Snare", "Top", "HiHat", "Tom", "Rim", "ADPCM"},
|
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6", "Square 1", "Square 2", "Square 3", "Kick", "Snare", "Top", "HiHat", "Tom", "Rim", "ADPCM"},
|
||||||
|
@ -1066,7 +1066,7 @@ void DivEngine::registerSystems() {
|
||||||
fmOPNAPostEffectHandlerMap
|
fmOPNAPostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_PC98_CSM]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2608_CSM]=new DivSysDef(
|
||||||
"Yamaha YM2608 (OPNA) CSM", NULL, 0xc4, 0, 20, true, true, 0x151, false, (1U<<DIV_SAMPLE_DEPTH_ADPCM_B)|(1U<<DIV_SAMPLE_DEPTH_8BIT),
|
"Yamaha YM2608 (OPNA) CSM", NULL, 0xc4, 0, 20, true, true, 0x151, false, (1U<<DIV_SAMPLE_DEPTH_ADPCM_B)|(1U<<DIV_SAMPLE_DEPTH_8BIT),
|
||||||
"OPN but twice the FM channels, stereo makes a come-back and has rhythm and ADPCM channels.\nCSM blah blah",
|
"OPN but twice the FM channels, stereo makes a come-back and has rhythm and ADPCM channels.\nCSM blah blah",
|
||||||
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6", "CSM Timer", "Square 1", "Square 2", "Square 3", "Kick", "Snare", "Top", "HiHat", "Tom", "Rim", "ADPCM"},
|
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6", "CSM Timer", "Square 1", "Square 2", "Square 3", "Kick", "Snare", "Top", "HiHat", "Tom", "Rim", "ADPCM"},
|
||||||
|
@ -1274,7 +1274,7 @@ void DivEngine::registerSystems() {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_YM2612_EXT]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2612_DUALPCM_EXT]=new DivSysDef(
|
||||||
"Yamaha YM2612 (OPN2) Extended Channel 3", NULL, 0xa0, 0, 9, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
"Yamaha YM2612 (OPN2) Extended Channel 3", NULL, 0xa0, 0, 9, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
||||||
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).\nthis one is in Extended Channel mode, which turns the third FM channel into four operators with independent notes/frequencies.",
|
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).\nthis one is in Extended Channel mode, which turns the third FM channel into four operators with independent notes/frequencies.",
|
||||||
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6"},
|
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6"},
|
||||||
|
@ -1286,7 +1286,7 @@ void DivEngine::registerSystems() {
|
||||||
fmOPN2PostEffectHandlerMap
|
fmOPN2PostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_YM2612_CSM]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2612_DUALPCM_CSM]=new DivSysDef(
|
||||||
"Yamaha YM2612 (OPN2) CSM", NULL, 0xc1, 0, 10, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
"Yamaha YM2612 (OPN2) CSM", NULL, 0xc1, 0, 10, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
||||||
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).\nthis one includes CSM mode control for special effects on Channel 3.",
|
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).\nthis one includes CSM mode control for special effects on Channel 3.",
|
||||||
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6", "CSM Timer"},
|
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6", "CSM Timer"},
|
||||||
|
@ -1712,7 +1712,7 @@ void DivEngine::registerSystems() {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_YM2612_FRAC]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2612_DUALPCM_FRAC]=new DivSysDef(
|
||||||
"Yamaha YM2612 (OPN2) with DualPCM", NULL, 0xbe, 0, 7, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
"Yamaha YM2612 (OPN2) with DualPCM", NULL, 0xbe, 0, 7, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
||||||
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).\nthis system uses software mixing to provide two sample channels.",
|
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).\nthis system uses software mixing to provide two sample channels.",
|
||||||
{"FM 1", "FM 2", "FM 3", "FM 4", "FM 5", "FM 6/PCM 1", "PCM 2"},
|
{"FM 1", "FM 2", "FM 3", "FM 4", "FM 5", "FM 6/PCM 1", "PCM 2"},
|
||||||
|
@ -1724,7 +1724,7 @@ void DivEngine::registerSystems() {
|
||||||
fmOPN2PostEffectHandlerMap
|
fmOPN2PostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_YM2612_FRAC_EXT]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT]=new DivSysDef(
|
||||||
"Yamaha YM2612 (OPN2) Extended Channel 3 with DualPCM and CSM", NULL, 0xbd, 0, 11, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
"Yamaha YM2612 (OPN2) Extended Channel 3 with DualPCM and CSM", NULL, 0xbd, 0, 11, true, false, 0x150, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
||||||
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).\nthis system uses software mixing to provide two sample channels.\nthis one is in Extended Channel mode, which turns the third FM channel into four operators with independent notes/frequencies.",
|
"this chip is mostly known for being in the Sega Genesis (but it also was on the FM Towns computer).\nthis system uses software mixing to provide two sample channels.\nthis one is in Extended Channel mode, which turns the third FM channel into four operators with independent notes/frequencies.",
|
||||||
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6/PCM 1", "PCM 2", "CSM Timer"},
|
{"FM 1", "FM 2", "FM 3 OP1", "FM 3 OP2", "FM 3 OP3", "FM 3 OP4", "FM 4", "FM 5", "FM 6/PCM 1", "PCM 2", "CSM Timer"},
|
||||||
|
|
|
@ -32,10 +32,10 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write
|
||||||
unsigned char rf5c68Addr=isSecond?0xb1:0xb0;
|
unsigned char rf5c68Addr=isSecond?0xb1:0xb0;
|
||||||
if (write.addr==0xffffffff) { // Furnace fake reset
|
if (write.addr==0xffffffff) { // Furnace fake reset
|
||||||
switch (sys) {
|
switch (sys) {
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
case DIV_SYSTEM_YM2612_FRAC:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC:
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT:
|
||||||
for (int i=0; i<3; i++) { // set SL and RR to highest
|
for (int i=0; i<3; i++) { // set SL and RR to highest
|
||||||
w->writeC(2|baseAddr1);
|
w->writeC(2|baseAddr1);
|
||||||
w->writeC(0x80+i);
|
w->writeC(0x80+i);
|
||||||
|
@ -252,8 +252,8 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write
|
||||||
w->writeC(0);
|
w->writeC(0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_OPN:
|
case DIV_SYSTEM_YM2203:
|
||||||
case DIV_SYSTEM_OPN_EXT:
|
case DIV_SYSTEM_YM2203_EXT:
|
||||||
for (int i=0; i<3; i++) { // set SL and RR to highest
|
for (int i=0; i<3; i++) { // set SL and RR to highest
|
||||||
w->writeC(5|baseAddr1);
|
w->writeC(5|baseAddr1);
|
||||||
w->writeC(0x80+i);
|
w->writeC(0x80+i);
|
||||||
|
@ -571,10 +571,10 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
switch (sys) {
|
switch (sys) {
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
case DIV_SYSTEM_YM2612_FRAC:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC:
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT:
|
||||||
switch (write.addr>>8) {
|
switch (write.addr>>8) {
|
||||||
case 0: // port 0
|
case 0: // port 0
|
||||||
w->writeC(2|baseAddr1);
|
w->writeC(2|baseAddr1);
|
||||||
|
@ -666,14 +666,14 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_OPN:
|
case DIV_SYSTEM_YM2203:
|
||||||
case DIV_SYSTEM_OPN_EXT:
|
case DIV_SYSTEM_YM2203_EXT:
|
||||||
w->writeC(5|baseAddr1);
|
w->writeC(5|baseAddr1);
|
||||||
w->writeC(write.addr&0xff);
|
w->writeC(write.addr&0xff);
|
||||||
w->writeC(write.val);
|
w->writeC(write.val);
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_PC98:
|
case DIV_SYSTEM_YM2608:
|
||||||
case DIV_SYSTEM_PC98_EXT:
|
case DIV_SYSTEM_YM2608_EXT:
|
||||||
switch (write.addr>>8) {
|
switch (write.addr>>8) {
|
||||||
case 0: // port 0
|
case 0: // port 0
|
||||||
w->writeC(6|baseAddr1);
|
w->writeC(6|baseAddr1);
|
||||||
|
@ -1178,10 +1178,10 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p
|
||||||
howManyChips++;
|
howManyChips++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
case DIV_SYSTEM_YM2612_FRAC:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC:
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT:
|
||||||
if (!hasOPN2) {
|
if (!hasOPN2) {
|
||||||
hasOPN2=disCont[i].dispatch->chipClock;
|
hasOPN2=disCont[i].dispatch->chipClock;
|
||||||
willExport[i]=true;
|
willExport[i]=true;
|
||||||
|
@ -1204,8 +1204,8 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p
|
||||||
howManyChips++;
|
howManyChips++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_OPN:
|
case DIV_SYSTEM_YM2203:
|
||||||
case DIV_SYSTEM_OPN_EXT:
|
case DIV_SYSTEM_YM2203_EXT:
|
||||||
if (!hasOPN) {
|
if (!hasOPN) {
|
||||||
hasOPN=disCont[i].dispatch->chipClock;
|
hasOPN=disCont[i].dispatch->chipClock;
|
||||||
willExport[i]=true;
|
willExport[i]=true;
|
||||||
|
@ -1217,8 +1217,8 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p
|
||||||
howManyChips++;
|
howManyChips++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DIV_SYSTEM_PC98:
|
case DIV_SYSTEM_YM2608:
|
||||||
case DIV_SYSTEM_PC98_EXT:
|
case DIV_SYSTEM_YM2608_EXT:
|
||||||
if (!hasOPNA) {
|
if (!hasOPNA) {
|
||||||
hasOPNA=disCont[i].dispatch->chipClock;
|
hasOPNA=disCont[i].dispatch->chipClock;
|
||||||
willExport[i]=true;
|
willExport[i]=true;
|
||||||
|
@ -1846,10 +1846,10 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p
|
||||||
if (!willExport[i]) continue;
|
if (!willExport[i]) continue;
|
||||||
streamIDs[i]=streamID;
|
streamIDs[i]=streamID;
|
||||||
switch (song.system[i]) {
|
switch (song.system[i]) {
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
case DIV_SYSTEM_YM2612_FRAC:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC:
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT:
|
||||||
w->writeC(0x90);
|
w->writeC(0x90);
|
||||||
w->writeC(streamID);
|
w->writeC(streamID);
|
||||||
w->writeC(0x02);
|
w->writeC(0x02);
|
||||||
|
|
|
@ -239,10 +239,10 @@ void putDispatchChip(void* data, int type) {
|
||||||
ImVec4 colorOn=ImVec4(1.0f,1.0f,0.0f,1.0f);
|
ImVec4 colorOn=ImVec4(1.0f,1.0f,0.0f,1.0f);
|
||||||
ImVec4 colorOff=ImVec4(0.3f,0.3f,0.3f,1.0f);
|
ImVec4 colorOff=ImVec4(0.3f,0.3f,0.3f,1.0f);
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
case DIV_SYSTEM_YM2612_FRAC:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC:
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT: {
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT: {
|
||||||
GENESIS_CHIP_DEBUG;
|
GENESIS_CHIP_DEBUG;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -256,8 +256,8 @@ void putDispatchChip(void* data, int type) {
|
||||||
SMS_CHIP_DEBUG;
|
SMS_CHIP_DEBUG;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_OPN:
|
case DIV_SYSTEM_YM2203:
|
||||||
case DIV_SYSTEM_OPN_EXT: {
|
case DIV_SYSTEM_YM2203_EXT: {
|
||||||
DivPlatformYM2203* ch=(DivPlatformYM2203*)data;
|
DivPlatformYM2203* ch=(DivPlatformYM2203*)data;
|
||||||
ImGui::Text("> YM2203");
|
ImGui::Text("> YM2203");
|
||||||
FM_OPN_CHIP_DEBUG;
|
FM_OPN_CHIP_DEBUG;
|
||||||
|
@ -267,8 +267,8 @@ void putDispatchChip(void* data, int type) {
|
||||||
ImGui::TextColored(ch->extMode?colorOn:colorOff,">> ExtMode");
|
ImGui::TextColored(ch->extMode?colorOn:colorOff,">> ExtMode");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_PC98:
|
case DIV_SYSTEM_YM2608:
|
||||||
case DIV_SYSTEM_PC98_EXT: {
|
case DIV_SYSTEM_YM2608_EXT: {
|
||||||
DivPlatformYM2608* ch=(DivPlatformYM2608*)data;
|
DivPlatformYM2608* ch=(DivPlatformYM2608*)data;
|
||||||
ImGui::Text("> YM2608");
|
ImGui::Text("> YM2608");
|
||||||
FM_OPN_CHIP_DEBUG;
|
FM_OPN_CHIP_DEBUG;
|
||||||
|
@ -540,13 +540,13 @@ void putDispatchChan(void* data, int chanNum, int type) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
case DIV_SYSTEM_YM2612_FRAC: {
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC: {
|
||||||
GENESIS_CHAN_DEBUG;
|
GENESIS_CHAN_DEBUG;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT: {
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT: {
|
||||||
if (chanNum>=2 && chanNum<=5) {
|
if (chanNum>=2 && chanNum<=5) {
|
||||||
DivPlatformOPN::OPNOpChannelStereo* ch=(DivPlatformOPN::OPNOpChannelStereo*)data;
|
DivPlatformOPN::OPNOpChannelStereo* ch=(DivPlatformOPN::OPNOpChannelStereo*)data;
|
||||||
ImGui::Text("> YM2612 (per operator)");
|
ImGui::Text("> YM2612 (per operator)");
|
||||||
|
@ -560,11 +560,11 @@ void putDispatchChan(void* data, int chanNum, int type) {
|
||||||
SMS_CHAN_DEBUG;
|
SMS_CHAN_DEBUG;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_OPN: {
|
case DIV_SYSTEM_YM2203: {
|
||||||
OPN_CHAN_DEBUG;
|
OPN_CHAN_DEBUG;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_OPN_EXT: {
|
case DIV_SYSTEM_YM2203_EXT: {
|
||||||
if (chanNum>=2 && chanNum<=5) {
|
if (chanNum>=2 && chanNum<=5) {
|
||||||
OPN_OPCHAN_DEBUG;
|
OPN_OPCHAN_DEBUG;
|
||||||
} else {
|
} else {
|
||||||
|
@ -572,13 +572,13 @@ void putDispatchChan(void* data, int chanNum, int type) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_PC98: {
|
case DIV_SYSTEM_YM2608: {
|
||||||
DivPlatformOPN::OPNChannelStereo* ch=(DivPlatformOPN::OPNChannelStereo*)data;
|
DivPlatformOPN::OPNChannelStereo* ch=(DivPlatformOPN::OPNChannelStereo*)data;
|
||||||
ImGui::Text("> YM2608");
|
ImGui::Text("> YM2608");
|
||||||
OPNB_CHAN_DEBUG;
|
OPNB_CHAN_DEBUG;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_PC98_EXT: {
|
case DIV_SYSTEM_YM2608_EXT: {
|
||||||
if (chanNum>=2 && chanNum<=5) {
|
if (chanNum>=2 && chanNum<=5) {
|
||||||
DivPlatformOPN::OPNOpChannelStereo* ch=(DivPlatformOPN::OPNOpChannelStereo*)data;
|
DivPlatformOPN::OPNOpChannelStereo* ch=(DivPlatformOPN::OPNOpChannelStereo*)data;
|
||||||
ImGui::Text("> YM2608 (per operator)");
|
ImGui::Text("> YM2608 (per operator)");
|
||||||
|
|
|
@ -911,10 +911,10 @@ const FurnaceGUIColorDef guiColors[GUI_COLOR_MAX]={
|
||||||
|
|
||||||
// all chips
|
// all chips
|
||||||
const int availableSystems[]={
|
const int availableSystems[]={
|
||||||
DIV_SYSTEM_YM2612,
|
DIV_SYSTEM_YM2612_DUALPCM,
|
||||||
DIV_SYSTEM_YM2612_EXT,
|
DIV_SYSTEM_YM2612_DUALPCM_EXT,
|
||||||
DIV_SYSTEM_YM2612_FRAC,
|
DIV_SYSTEM_YM2612_DUALPCM_FRAC,
|
||||||
DIV_SYSTEM_YM2612_FRAC_EXT,
|
DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT,
|
||||||
DIV_SYSTEM_SMS,
|
DIV_SYSTEM_SMS,
|
||||||
DIV_SYSTEM_GB,
|
DIV_SYSTEM_GB,
|
||||||
DIV_SYSTEM_PCE,
|
DIV_SYSTEM_PCE,
|
||||||
|
@ -939,10 +939,10 @@ const int availableSystems[]={
|
||||||
DIV_SYSTEM_YMU759,
|
DIV_SYSTEM_YMU759,
|
||||||
DIV_SYSTEM_DUMMY,
|
DIV_SYSTEM_DUMMY,
|
||||||
DIV_SYSTEM_SOUND_UNIT,
|
DIV_SYSTEM_SOUND_UNIT,
|
||||||
DIV_SYSTEM_OPN,
|
DIV_SYSTEM_YM2203,
|
||||||
DIV_SYSTEM_OPN_EXT,
|
DIV_SYSTEM_YM2203_EXT,
|
||||||
DIV_SYSTEM_PC98,
|
DIV_SYSTEM_YM2608,
|
||||||
DIV_SYSTEM_PC98_EXT,
|
DIV_SYSTEM_YM2608_EXT,
|
||||||
DIV_SYSTEM_OPLL,
|
DIV_SYSTEM_OPLL,
|
||||||
DIV_SYSTEM_OPLL_DRUMS,
|
DIV_SYSTEM_OPLL_DRUMS,
|
||||||
DIV_SYSTEM_VRC7,
|
DIV_SYSTEM_VRC7,
|
||||||
|
@ -992,10 +992,10 @@ const int availableSystems[]={
|
||||||
|
|
||||||
// FM
|
// FM
|
||||||
const int chipsFM[]={
|
const int chipsFM[]={
|
||||||
DIV_SYSTEM_YM2612,
|
DIV_SYSTEM_YM2612_DUALPCM,
|
||||||
DIV_SYSTEM_YM2612_EXT,
|
DIV_SYSTEM_YM2612_DUALPCM_EXT,
|
||||||
DIV_SYSTEM_YM2612_FRAC,
|
DIV_SYSTEM_YM2612_DUALPCM_FRAC,
|
||||||
DIV_SYSTEM_YM2612_FRAC_EXT,
|
DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT,
|
||||||
DIV_SYSTEM_YM2151,
|
DIV_SYSTEM_YM2151,
|
||||||
DIV_SYSTEM_YM2610,
|
DIV_SYSTEM_YM2610,
|
||||||
DIV_SYSTEM_YM2610_EXT,
|
DIV_SYSTEM_YM2610_EXT,
|
||||||
|
@ -1004,10 +1004,10 @@ const int chipsFM[]={
|
||||||
DIV_SYSTEM_YM2610B,
|
DIV_SYSTEM_YM2610B,
|
||||||
DIV_SYSTEM_YM2610B_EXT,
|
DIV_SYSTEM_YM2610B_EXT,
|
||||||
DIV_SYSTEM_YMU759,
|
DIV_SYSTEM_YMU759,
|
||||||
DIV_SYSTEM_OPN,
|
DIV_SYSTEM_YM2203,
|
||||||
DIV_SYSTEM_OPN_EXT,
|
DIV_SYSTEM_YM2203_EXT,
|
||||||
DIV_SYSTEM_PC98,
|
DIV_SYSTEM_YM2608,
|
||||||
DIV_SYSTEM_PC98_EXT,
|
DIV_SYSTEM_YM2608_EXT,
|
||||||
DIV_SYSTEM_OPLL,
|
DIV_SYSTEM_OPLL,
|
||||||
DIV_SYSTEM_OPLL_DRUMS,
|
DIV_SYSTEM_OPLL_DRUMS,
|
||||||
DIV_SYSTEM_VRC7,
|
DIV_SYSTEM_VRC7,
|
||||||
|
|
|
@ -45,31 +45,31 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
CATEGORY_BEGIN("Game consoles","let's play some chiptune making games!");
|
CATEGORY_BEGIN("Game consoles","let's play some chiptune making games!");
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Genesis", {
|
"Sega Genesis", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, ""),
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Genesis (extended channel 3)", {
|
"Sega Genesis (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, ""),
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Genesis (DualPCM)", {
|
"Sega Genesis (DualPCM)", {
|
||||||
CH(DIV_SYSTEM_YM2612_FRAC, 64, 0, ""),
|
CH(DIV_SYSTEM_YM2612_DUALPCM_FRAC, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Genesis (DualPCM, extended channel 3)", {
|
"Sega Genesis (DualPCM, extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_YM2612_FRAC_EXT, 64, 0, ""),
|
CH(DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Genesis (with Sega CD)", {
|
"Sega Genesis (with Sega CD)", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, ""),
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_SMS, 32, 0, ""),
|
CH(DIV_SYSTEM_SMS, 32, 0, ""),
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0,
|
CH(DIV_SYSTEM_RF5C68, 64, 0,
|
||||||
"clockSel=2\n"
|
"clockSel=2\n"
|
||||||
|
@ -79,7 +79,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Genesis (extended channel 3 with Sega CD)", {
|
"Sega Genesis (extended channel 3 with Sega CD)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, ""),
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_SMS, 32, 0, ""),
|
CH(DIV_SYSTEM_SMS, 32, 0, ""),
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0,
|
CH(DIV_SYSTEM_RF5C68, 64, 0,
|
||||||
"clockSel=2\n"
|
"clockSel=2\n"
|
||||||
|
@ -421,25 +421,25 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-88 (with PC-8801-11)", {
|
"NEC PC-88 (with PC-8801-11)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-88 (with PC-8801-11; extended channel 3)", {
|
"NEC PC-88 (with PC-8801-11; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-88 (with PC-8801-23)", {
|
"NEC PC-88 (with PC-8801-23)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-88 (with PC-8801-23; extended channel 3)", {
|
"NEC PC-88 (with PC-8801-23; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
|
@ -451,7 +451,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-10)", {
|
"NEC PC-8801mk2SR (with PC-8801-10)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15"), // external
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15"), // external
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15") // ""
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15") // ""
|
||||||
}
|
}
|
||||||
|
@ -459,7 +459,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-10; extended channel 3)", {
|
"NEC PC-8801mk2SR (with PC-8801-10; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15"), // external
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15"), // external
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15") // ""
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15") // ""
|
||||||
}
|
}
|
||||||
|
@ -467,77 +467,77 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-11)", {
|
"NEC PC-8801mk2SR (with PC-8801-11)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on internal OPN)", {
|
"NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on internal OPN)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on external OPN)", {
|
"NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on external OPN)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on both OPNs)", {
|
"NEC PC-8801mk2SR (with PC-8801-11; extended channel 3 on both OPNs)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-23)", {
|
"NEC PC-8801mk2SR (with PC-8801-23)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on internal OPN)", {
|
"NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on internal OPN)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on external OPN)", {
|
"NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on external OPN)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on both OPNs)", {
|
"NEC PC-8801mk2SR (with PC-8801-23; extended channel 3 on both OPNs)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800)", {
|
"NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_YM2151, 64, 0, "clockSel=2") // external; 4.0000MHz
|
CH(DIV_SYSTEM_YM2151, 64, 0, "clockSel=2") // external; 4.0000MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800; extended channel 3)", {
|
"NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_YM2151, 64, 0, "clockSel=2") // external; 4.0000MHz
|
CH(DIV_SYSTEM_YM2151, 64, 0, "clockSel=2") // external; 4.0000MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-10)", {
|
"NEC PC-8801FA (with PC-8801-10)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15"), // external
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15"), // external
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15") // ""
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15") // ""
|
||||||
}
|
}
|
||||||
|
@ -545,7 +545,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-10; extended channel 3)", {
|
"NEC PC-8801FA (with PC-8801-10; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=4"), // internal
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=4"), // internal
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15"), // external
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15"), // external
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15") // ""
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=15") // ""
|
||||||
}
|
}
|
||||||
|
@ -553,144 +553,144 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-11)", {
|
"NEC PC-8801FA (with PC-8801-11)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-11; extended channel 3 on internal OPN)", {
|
"NEC PC-8801FA (with PC-8801-11; extended channel 3 on internal OPN)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-11; extended channel 3 on external OPN)", {
|
"NEC PC-8801FA (with PC-8801-11; extended channel 3 on external OPN)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-11; extended channel 3 on both OPNs)", {
|
"NEC PC-8801FA (with PC-8801-11; extended channel 3 on both OPNs)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4") // external
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-23)", {
|
"NEC PC-8801FA (with PC-8801-23)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPN)", {
|
"NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPN)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPN)", {
|
"NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPN)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNs)", {
|
"NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNs)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1") // external
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1") // external
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with HMB-20 HIBIKI-8800)", {
|
"NEC PC-8801FA (with HMB-20 HIBIKI-8800)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_YM2151, 64, 0, "clockSel=2") // external; 4.0000MHz
|
CH(DIV_SYSTEM_YM2151, 64, 0, "clockSel=2") // external; 4.0000MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-8801FA (with HMB-20 HIBIKI-8800; extended channel 3)", {
|
"NEC PC-8801FA (with HMB-20 HIBIKI-8800; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1"), // internal
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1"), // internal
|
||||||
CH(DIV_SYSTEM_YM2151, 64, 0, "clockSel=2") // external; 4.0000MHz
|
CH(DIV_SYSTEM_YM2151, 64, 0, "clockSel=2") // external; 4.0000MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with PC-9801-26/K)", {
|
"NEC PC-98 (with PC-9801-26/K)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"), // 3.9936MHz but some compatible card has 4MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"), // 3.9936MHz but some compatible card has 4MHz
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with PC-9801-26/K; extended channel 3)", {
|
"NEC PC-98 (with PC-9801-26/K; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"), // 3.9936MHz but some compatible card has 4MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"), // 3.9936MHz but some compatible card has 4MHz
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Orchestra)", {
|
"NEC PC-98 (with Sound Orchestra)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_OPL2, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_OPL2, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Orchestra; extended channel 3)", {
|
"NEC PC-98 (with Sound Orchestra; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_OPL2, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_OPL2, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Orchestra in drums mode)", {
|
"NEC PC-98 (with Sound Orchestra in drums mode)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Orchestra in drums mode; extended channel 3)", {
|
"NEC PC-98 (with Sound Orchestra in drums mode; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Orchestra V)", {
|
"NEC PC-98 (with Sound Orchestra V)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_Y8950, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_Y8950, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Orchestra V; extended channel 3)", {
|
"NEC PC-98 (with Sound Orchestra V; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_Y8950, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_Y8950, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Orchestra V in drums mode)", {
|
"NEC PC-98 (with Sound Orchestra V in drums mode)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_Y8950_DRUMS, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_Y8950_DRUMS, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Orchestra V in drums mode; extended channel 3)", {
|
"NEC PC-98 (with Sound Orchestra V in drums mode; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_Y8950_DRUMS, 64, 0, "clockSel=4"),
|
CH(DIV_SYSTEM_Y8950_DRUMS, 64, 0, "clockSel=4"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with PC-9801-86)", { // -73 also has OPNA
|
"NEC PC-98 (with PC-9801-86)", { // -73 also has OPNA
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0, // 2x 16-bit Burr Brown DAC
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0, // 2x 16-bit Burr Brown DAC
|
||||||
"rate=44100\n"
|
"rate=44100\n"
|
||||||
"outDepth=15\n"
|
"outDepth=15\n"
|
||||||
|
@ -704,7 +704,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with PC-9801-86; extended channel 3)", { // -73 also has OPNA
|
"NEC PC-98 (with PC-9801-86; extended channel 3)", { // -73 also has OPNA
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
||||||
"rate=44100\n"
|
"rate=44100\n"
|
||||||
"outDepth=15\n"
|
"outDepth=15\n"
|
||||||
|
@ -718,19 +718,19 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with PC-9801-73)", {
|
"NEC PC-98 (with PC-9801-73)", {
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_YM2608, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with PC-9801-73; extended channel 3)", {
|
"NEC PC-98 (with PC-9801-73; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_PCSPKR, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible)", {
|
"NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
||||||
"rate=44100\n"
|
"rate=44100\n"
|
||||||
"outDepth=15\n"
|
"outDepth=15\n"
|
||||||
|
@ -742,7 +742,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; extended channel 3)", {
|
"NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
||||||
"rate=44100\n"
|
"rate=44100\n"
|
||||||
"outDepth=15\n"
|
"outDepth=15\n"
|
||||||
|
@ -754,7 +754,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode)", {
|
"NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
||||||
"rate=44100\n"
|
"rate=44100\n"
|
||||||
"outDepth=15\n"
|
"outDepth=15\n"
|
||||||
|
@ -766,7 +766,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; extended channel 3)", {
|
"NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
||||||
"rate=44100\n"
|
"rate=44100\n"
|
||||||
"outDepth=15\n"
|
"outDepth=15\n"
|
||||||
|
@ -789,29 +789,29 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"ZX Spectrum (128K) with TurboSound FM", {
|
"ZX Spectrum (128K) with TurboSound FM", {
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"ZX Spectrum (128K) with TurboSound FM (extended channel 3 on first OPN)", {
|
"ZX Spectrum (128K) with TurboSound FM (extended channel 3 on first OPN)", {
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"ZX Spectrum (128K) with TurboSound FM (extended channel 3 on second OPN)", {
|
"ZX Spectrum (128K) with TurboSound FM (extended channel 3 on second OPN)", {
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"ZX Spectrum (128K) with TurboSound FM (extended channel 3 on both OPNs)", {
|
"ZX Spectrum (128K) with TurboSound FM (extended channel 3 on both OPNs)", {
|
||||||
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_AY8910, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=1"),
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=1"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=1")
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=1")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
|
@ -1047,13 +1047,13 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"FM Towns", {
|
"FM Towns", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=2"), // YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=2"), // YM3438
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "")
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"FM Towns (extended channel 3)", {
|
"FM Towns (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=2"), // YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=2"), // YM3438
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "")
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -1081,22 +1081,22 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM2203 (OPN)", {
|
"Yamaha YM2203 (OPN)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=3")
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=3")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM2203 (extended channel 3)", {
|
"Yamaha YM2203 (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=3")
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=3")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM2608 (OPNA)", {
|
"Yamaha YM2608 (OPNA)", {
|
||||||
CH(DIV_SYSTEM_PC98, 64, 0, "")
|
CH(DIV_SYSTEM_YM2608, 64, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM2608 (extended channel 3)", {
|
"Yamaha YM2608 (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_PC98_EXT, 64, 0, "")
|
CH(DIV_SYSTEM_YM2608_EXT, 64, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
|
@ -1121,22 +1121,22 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM2612 (OPN2)", {
|
"Yamaha YM2612 (OPN2)", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "ladderEffect=true")
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "ladderEffect=true")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM2612 (extended channel 3)", {
|
"Yamaha YM2612 (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "ladderEffect=true")
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "ladderEffect=true")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM2612 (OPN2) with DualPCM", {
|
"Yamaha YM2612 (OPN2) with DualPCM", {
|
||||||
CH(DIV_SYSTEM_YM2612_FRAC, 64, 0, "ladderEffect=true")
|
CH(DIV_SYSTEM_YM2612_DUALPCM_FRAC, 64, 0, "ladderEffect=true")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM2612 (extended channel 3) with DualPCM", {
|
"Yamaha YM2612 (extended channel 3) with DualPCM", {
|
||||||
CH(DIV_SYSTEM_YM2612_FRAC_EXT, 64, 0, "ladderEffect=true")
|
CH(DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT, 64, 0, "ladderEffect=true")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
|
@ -1156,22 +1156,22 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM3438 (OPN2C)", {
|
"Yamaha YM3438 (OPN2C)", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "")
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM3438 (extended channel 3)", {
|
"Yamaha YM3438 (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "")
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM3438 (OPN2C) with DualPCM", {
|
"Yamaha YM3438 (OPN2C) with DualPCM", {
|
||||||
CH(DIV_SYSTEM_YM2612_FRAC, 64, 0, "")
|
CH(DIV_SYSTEM_YM2612_DUALPCM_FRAC, 64, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Yamaha YM3438 (extended channel 3) with DualPCM", {
|
"Yamaha YM3438 (extended channel 3) with DualPCM", {
|
||||||
CH(DIV_SYSTEM_YM2612_FRAC_EXT, 64, 0, "")
|
CH(DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT, 64, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
|
@ -1692,13 +1692,13 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Hang-On", {
|
"Sega Hang-On", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_SEGAPCM, 64, 0, "") // discrete logics, 62.5KHz output rate
|
CH(DIV_SYSTEM_SEGAPCM, 64, 0, "") // discrete logics, 62.5KHz output rate
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Hang-On (extended channel 3)", {
|
"Sega Hang-On (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_SEGAPCM, 64, 0, "") // discrete logics, 62.5KHz output rate
|
CH(DIV_SYSTEM_SEGAPCM, 64, 0, "") // discrete logics, 62.5KHz output rate
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -1719,57 +1719,57 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega System 18", {
|
"Sega System 18", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=2"), // discrete 8MHz YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=2"), // discrete 8MHz YM3438
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=2"), // ^^
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=2"), // ^^
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=1") // 10MHz
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=1") // 10MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega System 18 (extended channel 3 on first OPN2C)", {
|
"Sega System 18 (extended channel 3 on first OPN2C)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=2"), // discrete 8MHz YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=2"), // discrete 8MHz YM3438
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=2"), // ^^
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=2"), // ^^
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=1") // 10MHz
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=1") // 10MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega System 18 (extended channel 3 on second OPN2C)", {
|
"Sega System 18 (extended channel 3 on second OPN2C)", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=2"), // discrete 8MHz YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=2"), // discrete 8MHz YM3438
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=2"), // ^^
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=2"), // ^^
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=1") // 10MHz
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=1") // 10MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega System 18 (extended channel 3 on both OPN2Cs)", {
|
"Sega System 18 (extended channel 3 on both OPN2Cs)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=2"), // discrete 8MHz YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=2"), // discrete 8MHz YM3438
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=2"), // ^^
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=2"), // ^^
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=1") // 10MHz
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=1") // 10MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega System 32", {
|
"Sega System 32", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=4"), // discrete 8.05MHz YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=4"), // discrete 8.05MHz YM3438
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=4"), // ^^
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=4"), // ^^
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=2") // 12.5MHz
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=2") // 12.5MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega System 32 (extended channel 3 on first OPN2C)", {
|
"Sega System 32 (extended channel 3 on first OPN2C)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=4"), // discrete 8.05MHz YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=4"), // discrete 8.05MHz YM3438
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=4"), // ^^
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=4"), // ^^
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=2") // 12.5MHz
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=2") // 12.5MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega System 32 (extended channel 3 on second OPN2C)", {
|
"Sega System 32 (extended channel 3 on second OPN2C)", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=4"), // discrete 8.05MHz YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=4"), // discrete 8.05MHz YM3438
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=4"), // ^^
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=4"), // ^^
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=2") // 12.5MHz
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=2") // 12.5MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega System 32 (extended channel 3 on both OPN2Cs)", {
|
"Sega System 32 (extended channel 3 on both OPN2Cs)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=4"), // discrete 8.05MHz YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=4"), // discrete 8.05MHz YM3438
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=4"), // ^^
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=4"), // ^^
|
||||||
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=2") // 12.5MHz
|
CH(DIV_SYSTEM_RF5C68, 64, 0, "clockSel=2") // 12.5MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -1788,26 +1788,26 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Capcom Arcade", { // 1943, Side arms, etc
|
"Capcom Arcade", { // 1943, Side arms, etc
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5"), // 4 or 1.5MHz; various per games
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5"), // 4 or 1.5MHz; various per games
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5")
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Capcom Arcade (extended channel 3 on first OPN)", {
|
"Capcom Arcade (extended channel 3 on first OPN)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5"),
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5"),
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5")
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Capcom Arcade (extended channel 3 on second OPN)", {
|
"Capcom Arcade (extended channel 3 on second OPN)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5"),
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5")
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Capcom Arcade (extended channel 3 on both OPNs)", {
|
"Capcom Arcade (extended channel 3 on both OPNs)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5"),
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5"),
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5")
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
|
@ -1842,7 +1842,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NMK 16-bit Arcade", {
|
"NMK 16-bit Arcade", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5"), // 1.5MHz; optional
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5"), // 1.5MHz; optional
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0,
|
CH(DIV_SYSTEM_MSM6295, 64, 0,
|
||||||
"clockSel=2\n"
|
"clockSel=2\n"
|
||||||
"rateSel=true\n"
|
"rateSel=true\n"
|
||||||
|
@ -1855,7 +1855,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"NMK 16-bit Arcade (extended channel 3)", {
|
"NMK 16-bit Arcade (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5"), // 1.5MHz; optional
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5"), // 1.5MHz; optional
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0,
|
CH(DIV_SYSTEM_MSM6295, 64, 0,
|
||||||
"clockSel=2\n"
|
"clockSel=2\n"
|
||||||
"rateSel=true\n"
|
"rateSel=true\n"
|
||||||
|
@ -1868,21 +1868,21 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Kaneko DJ Boy", {
|
"Kaneko DJ Boy", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, -127, "clockSel=12"), // 1.5MHz, Left output
|
CH(DIV_SYSTEM_MSM6295, 64, -127, "clockSel=12"), // 1.5MHz, Left output
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 127, "clockSel=12"), // 1.5MHz, Right output
|
CH(DIV_SYSTEM_MSM6295, 64, 127, "clockSel=12"), // 1.5MHz, Right output
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Kaneko DJ Boy (extended channel 3)", {
|
"Kaneko DJ Boy (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, -127, "clockSel=12"), // 1.5MHz, Left output
|
CH(DIV_SYSTEM_MSM6295, 64, -127, "clockSel=12"), // 1.5MHz, Left output
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 127, "clockSel=12") // 1.5MHz, Right output
|
CH(DIV_SYSTEM_MSM6295, 64, 127, "clockSel=12") // 1.5MHz, Right output
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Kaneko Air Buster", {
|
"Kaneko Air Buster", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0,
|
CH(DIV_SYSTEM_MSM6295, 64, 0,
|
||||||
"clockSel=13\n"
|
"clockSel=13\n"
|
||||||
"rateSel=true\n"
|
"rateSel=true\n"
|
||||||
|
@ -1891,7 +1891,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Kaneko Air Buster (extended channel 3)", {
|
"Kaneko Air Buster (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0,
|
CH(DIV_SYSTEM_MSM6295, 64, 0,
|
||||||
"clockSel=13\n"
|
"clockSel=13\n"
|
||||||
"rateSel=true\n"
|
"rateSel=true\n"
|
||||||
|
@ -1923,29 +1923,29 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Tecmo Ninja Gaiden", { // Ninja Gaiden, Raiga, etc
|
"Tecmo Ninja Gaiden", { // Ninja Gaiden, Raiga, etc
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1MHz
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Tecmo Ninja Gaiden (extended channel 3 on first OPN)", { // Ninja Gaiden, Raiga, etc
|
"Tecmo Ninja Gaiden (extended channel 3 on first OPN)", { // Ninja Gaiden, Raiga, etc
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1MHz
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Tecmo Ninja Gaiden (extended channel 3 on second OPN)", { // Ninja Gaiden, Raiga, etc
|
"Tecmo Ninja Gaiden (extended channel 3 on second OPN)", { // Ninja Gaiden, Raiga, etc
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1MHz
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Tecmo Ninja Gaiden (extended channel 3 on both OPNs)", { // Ninja Gaiden, Raiga, etc
|
"Tecmo Ninja Gaiden (extended channel 3 on both OPNs)", { // Ninja Gaiden, Raiga, etc
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=2"), // 4MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=2"), // 4MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1MHz
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -1986,13 +1986,13 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sunsoft Arcade", {
|
"Sunsoft Arcade", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=2"), // discrete YM3438 8MHz
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=2"), // discrete YM3438 8MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "clockSel=1") // 1.056MHz
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "clockSel=1") // 1.056MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sunsoft Arcade (extended channel 3)", {
|
"Sunsoft Arcade (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=2"), // discrete YM3438 8MHz
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=2"), // discrete YM3438 8MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "clockSel=1") // 1.056MHz
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "clockSel=1") // 1.056MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -2022,66 +2022,66 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Karnov", {
|
"Data East Karnov", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_OPL, 64, 0, "clockSel=3") // 3MHz
|
CH(DIV_SYSTEM_OPL, 64, 0, "clockSel=3") // 3MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Karnov (extended channel 3)", {
|
"Data East Karnov (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_OPL, 64, 0, "clockSel=3") // 3MHz
|
CH(DIV_SYSTEM_OPL, 64, 0, "clockSel=3") // 3MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Karnov (drums mode)", {
|
"Data East Karnov (drums mode)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_OPL_DRUMS, 64, 0, "clockSel=3") // 3MHz
|
CH(DIV_SYSTEM_OPL_DRUMS, 64, 0, "clockSel=3") // 3MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Karnov (extended channel 3; drums mode)", {
|
"Data East Karnov (extended channel 3; drums mode)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_OPL_DRUMS, 64, 0, "clockSel=3") // 3MHz
|
CH(DIV_SYSTEM_OPL_DRUMS, 64, 0, "clockSel=3") // 3MHz
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Arcade", { // Bad dudes, Robocop, etc
|
"Data East Arcade", { // Bad dudes, Robocop, etc
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_OPL2, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_OPL2, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1 to 1.056MHz; various per games or optional
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1 to 1.056MHz; various per games or optional
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Arcade (extended channel 3)", { // Bad dudes, Robocop, etc
|
"Data East Arcade (extended channel 3)", { // Bad dudes, Robocop, etc
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_OPL2, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_OPL2, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1 to 1.056MHz; various per games or optional
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1 to 1.056MHz; various per games or optional
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Arcade (drums mode)", { // Bad dudes, Robocop, etc
|
"Data East Arcade (drums mode)", { // Bad dudes, Robocop, etc
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1 to 1.056MHz; various per games or optional
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1 to 1.056MHz; various per games or optional
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Arcade (extended channel 3; drums mode)", { // Bad dudes, Robocop, etc
|
"Data East Arcade (extended channel 3; drums mode)", { // Bad dudes, Robocop, etc
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1 to 1.056MHz; various per games or optional
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "") // 1 to 1.056MHz; various per games or optional
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East PCX", {
|
"Data East PCX", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_PCE, 64, 0, "")
|
CH(DIV_SYSTEM_PCE, 64, 0, "")
|
||||||
// software controlled MSM5205
|
// software controlled MSM5205
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East PCX (extended channel 3)", {
|
"Data East PCX (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=5"), // 1.5MHz
|
||||||
CH(DIV_SYSTEM_PCE, 64, 0, "")
|
CH(DIV_SYSTEM_PCE, 64, 0, "")
|
||||||
// software controlled MSM5205
|
// software controlled MSM5205
|
||||||
}
|
}
|
||||||
|
@ -2089,7 +2089,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Dark Seal", { // Dark Seal, Crude Buster, Vapor Trail, etc
|
"Data East Dark Seal", { // Dark Seal, Crude Buster, Vapor Trail, etc
|
||||||
CH(DIV_SYSTEM_YM2151, 64, 0, ""), // 3.580MHz (32.22MHz / 9)
|
CH(DIV_SYSTEM_YM2151, 64, 0, ""), // 3.580MHz (32.22MHz / 9)
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=2"), // 4.0275MHz (32.22MHz / 8); optional
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=2"), // 4.0275MHz (32.22MHz / 8); optional
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, ""), // 1.007MHz (32.22MHz / 32)
|
CH(DIV_SYSTEM_MSM6295, 64, 0, ""), // 1.007MHz (32.22MHz / 32)
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "clockSel=8") // 2.014MHz (32.22MHz / 16); optional
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "clockSel=8") // 2.014MHz (32.22MHz / 16); optional
|
||||||
// HuC6280 is for control them, internal sound isn't used
|
// HuC6280 is for control them, internal sound isn't used
|
||||||
|
@ -2098,7 +2098,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Data East Dark Seal (extended channel 3)", { // Dark Seal, Crude Buster, Vapor Trail, etc
|
"Data East Dark Seal (extended channel 3)", { // Dark Seal, Crude Buster, Vapor Trail, etc
|
||||||
CH(DIV_SYSTEM_YM2151, 64, 0, ""), // 3.580MHz (32.22MHz / 9)
|
CH(DIV_SYSTEM_YM2151, 64, 0, ""), // 3.580MHz (32.22MHz / 9)
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=2"), // 4.0275MHz (32.22MHz / 8); optional
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=2"), // 4.0275MHz (32.22MHz / 8); optional
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, ""), // 1.007MHz (32.22MHz / 32)
|
CH(DIV_SYSTEM_MSM6295, 64, 0, ""), // 1.007MHz (32.22MHz / 32)
|
||||||
CH(DIV_SYSTEM_MSM6295, 64, 0, "clockSel=8") // 2.014MHz (32.22MHz / 16); optional
|
CH(DIV_SYSTEM_MSM6295, 64, 0, "clockSel=8") // 2.014MHz (32.22MHz / 16); optional
|
||||||
// HuC6280 is for control them, internal sound isn't used
|
// HuC6280 is for control them, internal sound isn't used
|
||||||
|
@ -2213,7 +2213,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Alpha denshi Alpha-68K", {
|
"Alpha denshi Alpha-68K", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_OPLL, 64, 0, "clockSel=0"), // 3.58MHz
|
CH(DIV_SYSTEM_OPLL, 64, 0, "clockSel=0"), // 3.58MHz
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
||||||
"rate=7614\n"
|
"rate=7614\n"
|
||||||
|
@ -2223,7 +2223,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Alpha denshi Alpha-68K (extended channel 3)", {
|
"Alpha denshi Alpha-68K (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_OPLL, 64, 0, "clockSel=0"), // 3.58MHz
|
CH(DIV_SYSTEM_OPLL, 64, 0, "clockSel=0"), // 3.58MHz
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
||||||
"rate=7614\n"
|
"rate=7614\n"
|
||||||
|
@ -2233,7 +2233,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Alpha denshi Alpha-68K (drums mode)", {
|
"Alpha denshi Alpha-68K (drums mode)", {
|
||||||
CH(DIV_SYSTEM_OPN, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_YM2203, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_OPLL_DRUMS, 64, 0, "clockSel=0"), // 3.58MHz
|
CH(DIV_SYSTEM_OPLL_DRUMS, 64, 0, "clockSel=0"), // 3.58MHz
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
||||||
"rate=7614\n"
|
"rate=7614\n"
|
||||||
|
@ -2243,7 +2243,7 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Alpha denshi Alpha-68K (extended channel 3; drums mode)", {
|
"Alpha denshi Alpha-68K (extended channel 3; drums mode)", {
|
||||||
CH(DIV_SYSTEM_OPN_EXT, 64, 0, "clockSel=3"), // 3MHz
|
CH(DIV_SYSTEM_YM2203_EXT, 64, 0, "clockSel=3"), // 3MHz
|
||||||
CH(DIV_SYSTEM_OPLL_DRUMS, 64, 0, "clockSel=0"), // 3.58MHz
|
CH(DIV_SYSTEM_OPLL_DRUMS, 64, 0, "clockSel=0"), // 3.58MHz
|
||||||
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
CH(DIV_SYSTEM_PCM_DAC, 64, 0,
|
||||||
"rate=7614\n"
|
"rate=7614\n"
|
||||||
|
@ -2331,13 +2331,13 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Seta 1 + FM addon", {
|
"Seta 1 + FM addon", {
|
||||||
CH(DIV_SYSTEM_X1_010, 64, 0, ""),
|
CH(DIV_SYSTEM_X1_010, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, "clockSel=2") // Discrete YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, "clockSel=2") // Discrete YM3438
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Seta 1 + FM addon (extended channel 3)", {
|
"Seta 1 + FM addon (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_X1_010, 64, 0, ""),
|
CH(DIV_SYSTEM_X1_010, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, "clockSel=2") // Discrete YM3438
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, "clockSel=2") // Discrete YM3438
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
|
@ -2432,13 +2432,13 @@ void FurnaceGUI::initSystemPresets() {
|
||||||
CATEGORY_BEGIN("DefleMask-compatible","these configurations are compatible with DefleMask.\nselect this if you need to save as .dmf or work with that program.");
|
CATEGORY_BEGIN("DefleMask-compatible","these configurations are compatible with DefleMask.\nselect this if you need to save as .dmf or work with that program.");
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Genesis", {
|
"Sega Genesis", {
|
||||||
CH(DIV_SYSTEM_YM2612, 64, 0, ""),
|
CH(DIV_SYSTEM_YM2612_DUALPCM, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
ENTRY(
|
ENTRY(
|
||||||
"Sega Genesis (extended channel 3)", {
|
"Sega Genesis (extended channel 3)", {
|
||||||
CH(DIV_SYSTEM_YM2612_EXT, 64, 0, ""),
|
CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 64, 0, ""),
|
||||||
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
CH(DIV_SYSTEM_SMS, 32, 0, "")
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -333,7 +333,7 @@ void FurnaceGUI::drawSettings() {
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Reset to defaults")) {
|
if (ImGui::Button("Reset to defaults")) {
|
||||||
settings.initialSys.clear();
|
settings.initialSys.clear();
|
||||||
settings.initialSys.set("id0",e->systemToFileFur(DIV_SYSTEM_YM2612));
|
settings.initialSys.set("id0",e->systemToFileFur(DIV_SYSTEM_YM2612_DUALPCM));
|
||||||
settings.initialSys.set("vol0",64);
|
settings.initialSys.set("vol0",64);
|
||||||
settings.initialSys.set("pan0",0);
|
settings.initialSys.set("pan0",0);
|
||||||
settings.initialSys.set("flags0","");
|
settings.initialSys.set("flags0","");
|
||||||
|
@ -429,7 +429,7 @@ void FurnaceGUI::drawSettings() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sysCount<32) if (ImGui::Button(ICON_FA_PLUS "##InitSysAdd")) {
|
if (sysCount<32) if (ImGui::Button(ICON_FA_PLUS "##InitSysAdd")) {
|
||||||
settings.initialSys.set(fmt::sprintf("id%d",sysCount),(int)e->systemToFileFur(DIV_SYSTEM_YM2612));
|
settings.initialSys.set(fmt::sprintf("id%d",sysCount),(int)e->systemToFileFur(DIV_SYSTEM_YM2612_DUALPCM));
|
||||||
settings.initialSys.set(fmt::sprintf("vol%d",sysCount),64);
|
settings.initialSys.set(fmt::sprintf("vol%d",sysCount),64);
|
||||||
settings.initialSys.set(fmt::sprintf("pan%d",sysCount),0);
|
settings.initialSys.set(fmt::sprintf("pan%d",sysCount),0);
|
||||||
settings.initialSys.set(fmt::sprintf("flags%d",sysCount),"");
|
settings.initialSys.set(fmt::sprintf("flags%d",sysCount),"");
|
||||||
|
@ -2566,7 +2566,7 @@ void FurnaceGUI::syncSettings() {
|
||||||
settings.initialSys.loadFromBase64(initialSys2.c_str());
|
settings.initialSys.loadFromBase64(initialSys2.c_str());
|
||||||
if (settings.initialSys.getInt("id0",0)==0) {
|
if (settings.initialSys.getInt("id0",0)==0) {
|
||||||
settings.initialSys.clear();
|
settings.initialSys.clear();
|
||||||
settings.initialSys.set("id0",e->systemToFileFur(DIV_SYSTEM_YM2612));
|
settings.initialSys.set("id0",e->systemToFileFur(DIV_SYSTEM_YM2612_DUALPCM));
|
||||||
settings.initialSys.set("vol0",64);
|
settings.initialSys.set("vol0",64);
|
||||||
settings.initialSys.set("pan0",0);
|
settings.initialSys.set("pan0",0);
|
||||||
settings.initialSys.set("flags0","");
|
settings.initialSys.set("flags0","");
|
||||||
|
|
|
@ -28,10 +28,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
|
||||||
bool supportsCustomRate=true;
|
bool supportsCustomRate=true;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DIV_SYSTEM_YM2612:
|
case DIV_SYSTEM_YM2612_DUALPCM:
|
||||||
case DIV_SYSTEM_YM2612_EXT:
|
case DIV_SYSTEM_YM2612_DUALPCM_EXT:
|
||||||
case DIV_SYSTEM_YM2612_FRAC:
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC:
|
||||||
case DIV_SYSTEM_YM2612_FRAC_EXT: {
|
case DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT: {
|
||||||
int clockSel=flags.getInt("clockSel",0);
|
int clockSel=flags.getInt("clockSel",0);
|
||||||
bool ladder=flags.getBool("ladderEffect",0);
|
bool ladder=flags.getBool("ladderEffect",0);
|
||||||
bool noExtMacros=flags.getBool("noExtMacros",false);
|
bool noExtMacros=flags.getBool("noExtMacros",false);
|
||||||
|
@ -59,7 +59,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
|
||||||
if (ImGui::Checkbox("Enable DAC distortion",&ladder)) {
|
if (ImGui::Checkbox("Enable DAC distortion",&ladder)) {
|
||||||
altered=true;
|
altered=true;
|
||||||
}
|
}
|
||||||
if (type==DIV_SYSTEM_YM2612_EXT || type==DIV_SYSTEM_YM2612_FRAC_EXT) {
|
if (type==DIV_SYSTEM_YM2612_DUALPCM_EXT || type==DIV_SYSTEM_YM2612_DUALPCM_FRAC_EXT) {
|
||||||
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
|
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
|
||||||
altered=true;
|
altered=true;
|
||||||
}
|
}
|
||||||
|
@ -834,8 +834,8 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_OPN:
|
case DIV_SYSTEM_YM2203:
|
||||||
case DIV_SYSTEM_OPN_EXT: {
|
case DIV_SYSTEM_YM2203_EXT: {
|
||||||
int clockSel=flags.getInt("clockSel",0);
|
int clockSel=flags.getInt("clockSel",0);
|
||||||
int prescale=flags.getInt("prescale",0);
|
int prescale=flags.getInt("prescale",0);
|
||||||
bool noExtMacros=flags.getBool("noExtMacros",false);
|
bool noExtMacros=flags.getBool("noExtMacros",false);
|
||||||
|
@ -879,7 +879,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
|
||||||
altered=true;
|
altered=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type==DIV_SYSTEM_OPN_EXT) {
|
if (type==DIV_SYSTEM_YM2203_EXT) {
|
||||||
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
|
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
|
||||||
altered=true;
|
altered=true;
|
||||||
}
|
}
|
||||||
|
@ -894,8 +894,8 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_PC98:
|
case DIV_SYSTEM_YM2608:
|
||||||
case DIV_SYSTEM_PC98_EXT: {
|
case DIV_SYSTEM_YM2608_EXT: {
|
||||||
int clockSel=flags.getInt("clockSel",0);
|
int clockSel=flags.getInt("clockSel",0);
|
||||||
int prescale=flags.getInt("prescale",0);
|
int prescale=flags.getInt("prescale",0);
|
||||||
bool noExtMacros=flags.getBool("noExtMacros",false);
|
bool noExtMacros=flags.getBool("noExtMacros",false);
|
||||||
|
@ -923,7 +923,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
|
||||||
altered=true;
|
altered=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type==DIV_SYSTEM_PC98_EXT) {
|
if (type==DIV_SYSTEM_YM2608_EXT) {
|
||||||
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
|
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
|
||||||
altered=true;
|
altered=true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue