YM2612: CSM without DualPCM
This commit is contained in:
parent
dff3ddeb3a
commit
37dbc52a68
|
|
@ -201,6 +201,12 @@ void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, do
|
||||||
((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_CSM:
|
||||||
|
dispatch=new DivPlatformGenesisExt;
|
||||||
|
((DivPlatformGenesisExt*)dispatch)->setYMFM(eng->getConfInt("ym2612Core",0));
|
||||||
|
((DivPlatformGenesisExt*)dispatch)->setSoftPCM(false);
|
||||||
|
((DivPlatformGenesisExt*)dispatch)->setCSMChannel(6);
|
||||||
|
break;
|
||||||
case DIV_SYSTEM_YM2612_DUALPCM:
|
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));
|
||||||
|
|
|
||||||
|
|
@ -479,7 +479,7 @@ void DivPlatformGenesis::tick(bool sysTick) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i=0; i<7; i++) {
|
for (int i=0; i<csmChan; i++) {
|
||||||
if (i==2 && extMode) continue;
|
if (i==2 && extMode) continue;
|
||||||
if (chan[i].freqChanged) {
|
if (chan[i].freqChanged) {
|
||||||
if (parent->song.linearPitch==2) {
|
if (parent->song.linearPitch==2) {
|
||||||
|
|
@ -1217,7 +1217,7 @@ void DivPlatformGenesis::poke(std::vector<DivRegWrite>& wlist) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int DivPlatformGenesis::getPortaFloor(int ch) {
|
int DivPlatformGenesis::getPortaFloor(int ch) {
|
||||||
return (ch>5)?12:0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivPlatformGenesis::setYMFM(bool use) {
|
void DivPlatformGenesis::setYMFM(bool use) {
|
||||||
|
|
|
||||||
|
|
@ -746,6 +746,10 @@ int DivPlatformGenesisExt::getPortaFloor(int ch) {
|
||||||
return (ch>8)?12:0;
|
return (ch>8)?12:0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DivPlatformGenesisExt::setCSMChannel(unsigned char ch) {
|
||||||
|
csmChan=ch;
|
||||||
|
}
|
||||||
|
|
||||||
int DivPlatformGenesisExt::init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags) {
|
int DivPlatformGenesisExt::init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags) {
|
||||||
DivPlatformGenesis::init(parent,channels,sugRate,flags);
|
DivPlatformGenesis::init(parent,channels,sugRate,flags);
|
||||||
for (int i=0; i<4; i++) {
|
for (int i=0; i<4; i++) {
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ class DivPlatformGenesisExt: public DivPlatformGenesis {
|
||||||
bool keyOffAffectsPorta(int ch);
|
bool keyOffAffectsPorta(int ch);
|
||||||
void notifyInsChange(int ins);
|
void notifyInsChange(int ins);
|
||||||
int getPortaFloor(int ch);
|
int getPortaFloor(int ch);
|
||||||
|
void setCSMChannel(unsigned char ch);
|
||||||
int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags);
|
int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags);
|
||||||
void quit();
|
void quit();
|
||||||
~DivPlatformGenesisExt();
|
~DivPlatformGenesisExt();
|
||||||
|
|
|
||||||
|
|
@ -913,6 +913,7 @@ const FurnaceGUIColorDef guiColors[GUI_COLOR_MAX]={
|
||||||
const int availableSystems[]={
|
const int availableSystems[]={
|
||||||
DIV_SYSTEM_YM2612,
|
DIV_SYSTEM_YM2612,
|
||||||
DIV_SYSTEM_YM2612_EXT,
|
DIV_SYSTEM_YM2612_EXT,
|
||||||
|
DIV_SYSTEM_YM2612_CSM,
|
||||||
DIV_SYSTEM_YM2612_DUALPCM,
|
DIV_SYSTEM_YM2612_DUALPCM,
|
||||||
DIV_SYSTEM_YM2612_DUALPCM_EXT,
|
DIV_SYSTEM_YM2612_DUALPCM_EXT,
|
||||||
DIV_SYSTEM_SMS,
|
DIV_SYSTEM_SMS,
|
||||||
|
|
@ -994,6 +995,7 @@ const int availableSystems[]={
|
||||||
const int chipsFM[]={
|
const int chipsFM[]={
|
||||||
DIV_SYSTEM_YM2612,
|
DIV_SYSTEM_YM2612,
|
||||||
DIV_SYSTEM_YM2612_EXT,
|
DIV_SYSTEM_YM2612_EXT,
|
||||||
|
DIV_SYSTEM_YM2612_CSM,
|
||||||
DIV_SYSTEM_YM2612_DUALPCM,
|
DIV_SYSTEM_YM2612_DUALPCM,
|
||||||
DIV_SYSTEM_YM2612_DUALPCM_EXT,
|
DIV_SYSTEM_YM2612_DUALPCM_EXT,
|
||||||
DIV_SYSTEM_YM2151,
|
DIV_SYSTEM_YM2151,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue