change setPAL to setFlags

This commit is contained in:
tildearrow 2022-01-28 12:59:53 -05:00
parent 8c353548f5
commit bfed0b3209
35 changed files with 85 additions and 83 deletions

View File

@ -237,10 +237,10 @@ class DivDispatch {
virtual const char* getEffectName(unsigned char effect);
/**
* set the region to PAL.
* @param pal whether to set it to PAL.
* set the chip flags.
* @param flags the flags. see song.h for possible values.
*/
virtual void setPAL(bool pal);
virtual void setFlags(unsigned int flags);
/**
* set skip reg writes.
@ -282,9 +282,10 @@ class DivDispatch {
* @param parent the parent DivEngine.
* @param channels the number of channels to acquire.
* @param sugRate the suggested rate. this may change, so don't rely on it.
* @param flags the chip flags. see song.h for possible values.
* @return the number of channels allocated.
*/
virtual int init(DivEngine* parent, int channels, int sugRate, bool pal);
virtual int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
/**
* quit the DivDispatch.

View File

@ -4750,7 +4750,8 @@ void DivEngine::setSongRate(int hz, bool pal) {
song.hz=hz;
song.customTempo=(song.hz!=50 && song.hz!=60);
for (int i=0; i<song.systemLen; i++) {
disCont[i].dispatch->setPAL((!song.pal) || (song.customTempo!=0 && song.hz<53));
// TODO
disCont[i].dispatch->setFlags((!song.pal) || (song.customTempo!=0 && song.hz<53));
disCont[i].setRates(got.rate);
}
divider=60;

View File

@ -47,7 +47,7 @@ const char* DivDispatch::getEffectName(unsigned char effect) {
return NULL;
}
void DivDispatch::setPAL(bool pal) {
void DivDispatch::setFlags(unsigned int flags) {
}
void DivDispatch::setSkipRegisterWrites(bool value) {
@ -78,7 +78,7 @@ std::vector<DivRegWrite>& DivDispatch::getRegisterWrites() {
return regWrites;
}
int DivDispatch::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivDispatch::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
return 0;
}

View File

@ -241,8 +241,8 @@ void DivPlatformAmiga::notifyInsDeletion(void* ins) {
}
}
void DivPlatformAmiga::setPAL(bool pal) {
if (pal) {
void DivPlatformAmiga::setFlags(unsigned int flags) {
if (flags) {
chipClock=COLOR_PAL*4.0/5.0;
} else {
chipClock=COLOR_NTSC;
@ -250,14 +250,14 @@ void DivPlatformAmiga::setPAL(bool pal) {
rate=chipClock/AMIGA_DIVIDER;
}
int DivPlatformAmiga::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformAmiga::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;
for (int i=0; i<4; i++) {
isMuted[i]=false;
}
setPAL(pal);
setFlags(flags);
reset();
return 6;
}

View File

@ -57,11 +57,11 @@ class DivPlatformAmiga: public DivDispatch {
void muteChannel(int ch, bool mute);
bool isStereo();
bool keyOffAffectsArp(int ch);
void setPAL(bool pal);
void setFlags(unsigned int flags);
void notifyInsChange(int ins);
void notifyWaveChange(int wave);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
};

View File

@ -762,7 +762,7 @@ void DivPlatformArcade::setYMFM(bool use) {
useYMFM=use;
}
int DivPlatformArcade::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformArcade::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;

View File

@ -78,7 +78,7 @@ class DivPlatformArcade: public DivDispatch {
void notifyInsChange(int ins);
bool isStereo();
void setYMFM(bool use);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformArcade();
};

View File

@ -355,8 +355,8 @@ void DivPlatformAY8910::notifyInsDeletion(void* ins) {
}
}
void DivPlatformAY8910::setPAL(bool pal) {
if (pal) {
void DivPlatformAY8910::setFlags(unsigned int flags) {
if (flags) {
chipClock=COLOR_PAL*2.0/5.0;
} else {
chipClock=COLOR_NTSC/2.0;
@ -364,14 +364,14 @@ void DivPlatformAY8910::setPAL(bool pal) {
rate=chipClock/8;
}
int DivPlatformAY8910::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformAY8910::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;
for (int i=0; i<3; i++) {
isMuted[i]=false;
}
setPAL(pal);
setFlags(flags);
ay=new ay8910_device(rate);
ay->set_psg_type(ay8910_device::PSG_TYPE_AY);
ay->device_start();

View File

@ -60,11 +60,11 @@ class DivPlatformAY8910: public DivDispatch {
void forceIns();
void tick();
void muteChannel(int ch, bool mute);
void setPAL(bool pal);
void setFlags(unsigned int flags);
bool isStereo();
bool keyOffAffectsArp(int ch);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
};
#endif

View File

@ -390,8 +390,8 @@ void DivPlatformAY8930::notifyInsDeletion(void* ins) {
}
}
void DivPlatformAY8930::setPAL(bool pal) {
if (pal) {
void DivPlatformAY8930::setFlags(unsigned int flags) {
if (flags) {
chipClock=COLOR_PAL*2.0/5.0;
} else {
chipClock=COLOR_NTSC/2.0;
@ -399,14 +399,14 @@ void DivPlatformAY8930::setPAL(bool pal) {
rate=chipClock/8;
}
int DivPlatformAY8930::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformAY8930::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;
for (int i=0; i<3; i++) {
isMuted[i]=false;
}
setPAL(pal);
setFlags(flags);
ay=new ay8930_device(rate);
ay->device_start();
ayBufLen=65536;

View File

@ -54,11 +54,11 @@ class DivPlatformAY8930: public DivDispatch {
void forceIns();
void tick();
void muteChannel(int ch, bool mute);
void setPAL(bool pal);
void setFlags(unsigned int flags);
bool isStereo();
bool keyOffAffectsArp(int ch);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
};
#endif

View File

@ -355,8 +355,8 @@ void DivPlatformC64::setChipModel(bool is6581) {
}
}
void DivPlatformC64::setPAL(bool pal) {
if (pal) {
void DivPlatformC64::setFlags(unsigned int flags) {
if (flags) {
rate=COLOR_PAL*2.0/9.0;
} else {
rate=COLOR_NTSC*2.0/7.0;
@ -364,14 +364,14 @@ void DivPlatformC64::setPAL(bool pal) {
chipClock=rate;
}
int DivPlatformC64::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformC64::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;
for (int i=0; i<3; i++) {
isMuted[i]=false;
}
setPAL(pal);
setFlags(flags);
reset();

View File

@ -63,10 +63,10 @@ class DivPlatformC64: public DivDispatch {
void forceIns();
void tick();
void muteChannel(int ch, bool mute);
void setPAL(bool pal);
void setFlags(unsigned int flags);
void notifyInsChange(int ins);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void setChipModel(bool is6581);
void quit();
~DivPlatformC64();

View File

@ -79,7 +79,7 @@ void DivPlatformDummy::reset() {
}
}
int DivPlatformDummy::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformDummy::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;

View File

@ -23,7 +23,7 @@ class DivPlatformDummy: public DivDispatch {
void* getChanState(int chan);
void reset();
void tick();
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformDummy();
};

View File

@ -349,7 +349,7 @@ void DivPlatformGB::notifyInsDeletion(void* ins) {
}
}
int DivPlatformGB::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformGB::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
for (int i=0; i<4; i++) {
isMuted[i]=false;
}

View File

@ -51,7 +51,7 @@ class DivPlatformGB: public DivDispatch {
void notifyInsChange(int ins);
void notifyWaveChange(int wave);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformGB();
};

View File

@ -638,26 +638,26 @@ void DivPlatformGenesis::notifyInsDeletion(void* ins) {
psg.notifyInsDeletion(ins);
}
void DivPlatformGenesis::setPAL(bool pal) {
if (pal) {
void DivPlatformGenesis::setFlags(unsigned int flags) {
if (flags) {
chipClock=COLOR_PAL*12.0/7.0;
} else {
chipClock=COLOR_NTSC*15.0/7.0;
}
psg.setPAL(pal);
psg.setFlags(flags);
rate=chipClock/36;
}
int DivPlatformGenesis::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformGenesis::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;
for (int i=0; i<10; i++) {
isMuted[i]=false;
}
setPAL(pal);
setFlags(flags);
// PSG
psg.init(p,4,sugRate,pal);
psg.init(p,4,sugRate,flags);
reset();
return 10;

View File

@ -82,10 +82,10 @@ class DivPlatformGenesis: public DivDispatch {
bool keyOffAffectsArp(int ch);
bool keyOffAffectsPorta(int ch);
void toggleRegisterDump(bool enable);
void setPAL(bool pal);
void setFlags(unsigned int flags);
void notifyInsChange(int ins);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformGenesis();
};

View File

@ -334,8 +334,8 @@ void DivPlatformGenesisExt::notifyInsChange(int ins) {
}
}
int DivPlatformGenesisExt::init(DivEngine* parent, int channels, int sugRate, bool pal) {
DivPlatformGenesis::init(parent,channels,sugRate,pal);
int DivPlatformGenesisExt::init(DivEngine* parent, int channels, int sugRate, unsigned int flags) {
DivPlatformGenesis::init(parent,channels,sugRate,flags);
for (int i=0; i<4; i++) {
isOpMuted[i]=false;
}

View File

@ -27,7 +27,7 @@ class DivPlatformGenesisExt: public DivPlatformGenesis {
bool keyOffAffectsArp(int ch);
bool keyOffAffectsPorta(int ch);
void notifyInsChange(int ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformGenesisExt();
};

View File

@ -374,8 +374,8 @@ bool DivPlatformNES::keyOffAffectsArp(int ch) {
return true;
}
void DivPlatformNES::setPAL(bool pal) {
if (pal) {
void DivPlatformNES::setFlags(unsigned int flags) {
if (flags) {
rate=COLOR_PAL*3.0/8.0;
apuType=1;
nes->apu.type=apuType;
@ -393,16 +393,16 @@ void DivPlatformNES::notifyInsDeletion(void* ins) {
}
}
int DivPlatformNES::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformNES::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
apuType=pal;
apuType=flags;
dumpWrites=false;
skipRegisterWrites=false;
for (int i=0; i<5; i++) {
isMuted[i]=false;
}
nes=new struct NESAPU;
setPAL(pal);
setFlags(flags);
init_nla_table(500,500);
reset();

View File

@ -52,9 +52,9 @@ class DivPlatformNES: public DivDispatch {
void tick();
void muteChannel(int ch, bool mute);
bool keyOffAffectsArp(int ch);
void setPAL(bool pal);
void setFlags(unsigned int flags);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformNES();
};

View File

@ -396,8 +396,8 @@ void DivPlatformPCE::notifyInsDeletion(void* ins) {
}
}
void DivPlatformPCE::setPAL(bool pal) {
if (pal) { // technically there is no PAL PC Engine but oh well...
void DivPlatformPCE::setFlags(unsigned int flags) {
if (flags) { // technically there is no PAL PC Engine but oh well...
chipClock=COLOR_PAL*4.0/5.0;
} else {
chipClock=COLOR_NTSC;
@ -405,14 +405,14 @@ void DivPlatformPCE::setPAL(bool pal) {
rate=chipClock/12;
}
int DivPlatformPCE::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformPCE::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;
for (int i=0; i<6; i++) {
isMuted[i]=false;
}
setPAL(pal);
setFlags(flags);
pce=new PCE_PSG(tempL,tempR,PCE_PSG::REVISION_HUC6280);
reset();
return 6;

View File

@ -67,10 +67,10 @@ class DivPlatformPCE: public DivDispatch {
void muteChannel(int ch, bool mute);
bool isStereo();
bool keyOffAffectsArp(int ch);
void setPAL(bool pal);
void setFlags(unsigned int flags);
void notifyWaveChange(int wave);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformPCE();
};

View File

@ -307,19 +307,19 @@ void DivPlatformSAA1099::notifyInsDeletion(void* ins) {
}
}
void DivPlatformSAA1099::setPAL(bool pal) {
void DivPlatformSAA1099::setFlags(unsigned int flags) {
chipClock=8000000;
rate=chipClock/32;
}
int DivPlatformSAA1099::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformSAA1099::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;
for (int i=0; i<6; i++) {
isMuted[i]=false;
}
setPAL(pal);
setFlags(flags);
saaBufLen=65536;
for (int i=0; i<2; i++) saaBuf[i]=new short[saaBufLen];
reset();

View File

@ -57,12 +57,12 @@ class DivPlatformSAA1099: public DivDispatch {
void forceIns();
void tick();
void muteChannel(int ch, bool mute);
void setPAL(bool pal);
void setFlags(unsigned int flags);
bool isStereo();
int getPortaFloor(int ch);
bool keyOffAffectsArp(int ch);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
};
#endif

View File

@ -221,8 +221,8 @@ void DivPlatformSMS::notifyInsDeletion(void* ins) {
}
}
void DivPlatformSMS::setPAL(bool pal) {
if (pal) {
void DivPlatformSMS::setFlags(unsigned int flags) {
if (flags) {
chipClock=COLOR_PAL*4.0/5.0;
} else {
chipClock=COLOR_NTSC;
@ -230,14 +230,14 @@ void DivPlatformSMS::setPAL(bool pal) {
rate=chipClock/16;
}
int DivPlatformSMS::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformSMS::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;
for (int i=0; i<4; i++) {
isMuted[i]=false;
}
setPAL(pal);
setFlags(flags);
sn=new sn76496_device(rate);
reset();
return 4;

View File

@ -44,9 +44,9 @@ class DivPlatformSMS: public DivDispatch {
bool keyOffAffectsArp(int ch);
bool keyOffAffectsPorta(int ch);
int getPortaFloor(int ch);
void setPAL(bool pal);
void setFlags(unsigned int flags);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformSMS();
};

View File

@ -254,15 +254,15 @@ void DivPlatformTIA::notifyInsDeletion(void* ins) {
}
}
void DivPlatformTIA::setPAL(bool pal) {
if (pal) {
void DivPlatformTIA::setFlags(unsigned int flags) {
if (flags) {
rate=31250;
} else {
rate=31400;
}
}
int DivPlatformTIA::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformTIA::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;
@ -270,7 +270,7 @@ int DivPlatformTIA::init(DivEngine* p, int channels, int sugRate, bool pal) {
isMuted[i]=false;
}
tia.channels(1,false);
setPAL(pal);
setFlags(flags);
reset();
return 2;
}

View File

@ -31,11 +31,11 @@ class DivPlatformTIA: public DivDispatch {
void forceIns();
void tick();
void muteChannel(int ch, bool mute);
void setPAL(bool pal);
void setFlags(unsigned int flags);
bool isStereo();
bool keyOffAffectsArp(int ch);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
};
#endif

View File

@ -789,7 +789,7 @@ void DivPlatformYM2610::notifyInsDeletion(void* ins) {
}
}
int DivPlatformYM2610::init(DivEngine* p, int channels, int sugRate, bool pal) {
int DivPlatformYM2610::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {
parent=p;
dumpWrites=false;
skipRegisterWrites=false;

View File

@ -77,7 +77,7 @@ class DivPlatformYM2610: public DivDispatch {
bool keyOffAffectsArp(int ch);
void notifyInsChange(int ins);
void notifyInsDeletion(void* ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformYM2610();
};

View File

@ -301,8 +301,8 @@ void DivPlatformYM2610Ext::notifyInsChange(int ins) {
}
}
int DivPlatformYM2610Ext::init(DivEngine* parent, int channels, int sugRate, bool pal) {
DivPlatformYM2610::init(parent,channels,sugRate,pal);
int DivPlatformYM2610Ext::init(DivEngine* parent, int channels, int sugRate, unsigned int flags) {
DivPlatformYM2610::init(parent,channels,sugRate,flags);
for (int i=0; i<4; i++) {
isOpMuted[i]=false;
}

View File

@ -26,7 +26,7 @@ class DivPlatformYM2610Ext: public DivPlatformYM2610 {
void muteChannel(int ch, bool mute);
bool keyOffAffectsArp(int ch);
void notifyInsChange(int ins);
int init(DivEngine* parent, int channels, int sugRate, bool pal);
int init(DivEngine* parent, int channels, int sugRate, unsigned int flags);
void quit();
~DivPlatformYM2610Ext();
};