diff --git a/src/engine/dispatch.h b/src/engine/dispatch.h index 7f62a886e..39a483659 100644 --- a/src/engine/dispatch.h +++ b/src/engine/dispatch.h @@ -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. diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index 9248a1628..535352843 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -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; isetPAL((!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; diff --git a/src/engine/platform/abstract.cpp b/src/engine/platform/abstract.cpp index 2577119e1..fa7419502 100644 --- a/src/engine/platform/abstract.cpp +++ b/src/engine/platform/abstract.cpp @@ -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& 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; } diff --git a/src/engine/platform/amiga.cpp b/src/engine/platform/amiga.cpp index 6ed9f6c84..0a76485d2 100644 --- a/src/engine/platform/amiga.cpp +++ b/src/engine/platform/amiga.cpp @@ -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; } diff --git a/src/engine/platform/amiga.h b/src/engine/platform/amiga.h index 14e8a6e2f..87287b9cd 100644 --- a/src/engine/platform/amiga.h +++ b/src/engine/platform/amiga.h @@ -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(); }; diff --git a/src/engine/platform/arcade.cpp b/src/engine/platform/arcade.cpp index 2823f32fe..d0a86a864 100644 --- a/src/engine/platform/arcade.cpp +++ b/src/engine/platform/arcade.cpp @@ -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; diff --git a/src/engine/platform/arcade.h b/src/engine/platform/arcade.h index 845bcef6a..90629f736 100644 --- a/src/engine/platform/arcade.h +++ b/src/engine/platform/arcade.h @@ -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(); }; diff --git a/src/engine/platform/ay.cpp b/src/engine/platform/ay.cpp index 0a422f144..f2882d8b3 100644 --- a/src/engine/platform/ay.cpp +++ b/src/engine/platform/ay.cpp @@ -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(); diff --git a/src/engine/platform/ay.h b/src/engine/platform/ay.h index 4a74fd7f9..0f05b1662 100644 --- a/src/engine/platform/ay.h +++ b/src/engine/platform/ay.h @@ -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 diff --git a/src/engine/platform/ay8930.cpp b/src/engine/platform/ay8930.cpp index bdae663c0..9bb54eb4f 100644 --- a/src/engine/platform/ay8930.cpp +++ b/src/engine/platform/ay8930.cpp @@ -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; diff --git a/src/engine/platform/ay8930.h b/src/engine/platform/ay8930.h index 71b838a6a..778fbafb1 100644 --- a/src/engine/platform/ay8930.h +++ b/src/engine/platform/ay8930.h @@ -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 diff --git a/src/engine/platform/c64.cpp b/src/engine/platform/c64.cpp index b86ed32b5..9931c5516 100644 --- a/src/engine/platform/c64.cpp +++ b/src/engine/platform/c64.cpp @@ -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(); diff --git a/src/engine/platform/c64.h b/src/engine/platform/c64.h index e1785fc54..5526e312b 100644 --- a/src/engine/platform/c64.h +++ b/src/engine/platform/c64.h @@ -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(); diff --git a/src/engine/platform/dummy.cpp b/src/engine/platform/dummy.cpp index d8512d408..2de2ed9b3 100644 --- a/src/engine/platform/dummy.cpp +++ b/src/engine/platform/dummy.cpp @@ -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; diff --git a/src/engine/platform/dummy.h b/src/engine/platform/dummy.h index 2b33a92b9..24da843f7 100644 --- a/src/engine/platform/dummy.h +++ b/src/engine/platform/dummy.h @@ -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(); }; diff --git a/src/engine/platform/gb.cpp b/src/engine/platform/gb.cpp index 069150b4c..ac62167b2 100644 --- a/src/engine/platform/gb.cpp +++ b/src/engine/platform/gb.cpp @@ -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; } diff --git a/src/engine/platform/gb.h b/src/engine/platform/gb.h index 424f5bc61..40da7e317 100644 --- a/src/engine/platform/gb.h +++ b/src/engine/platform/gb.h @@ -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(); }; diff --git a/src/engine/platform/genesis.cpp b/src/engine/platform/genesis.cpp index 28667ebee..ce277030b 100644 --- a/src/engine/platform/genesis.cpp +++ b/src/engine/platform/genesis.cpp @@ -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; diff --git a/src/engine/platform/genesis.h b/src/engine/platform/genesis.h index b9d9e4b05..7e4318956 100644 --- a/src/engine/platform/genesis.h +++ b/src/engine/platform/genesis.h @@ -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(); }; diff --git a/src/engine/platform/genesisext.cpp b/src/engine/platform/genesisext.cpp index 078ca38bf..7d8810d4e 100644 --- a/src/engine/platform/genesisext.cpp +++ b/src/engine/platform/genesisext.cpp @@ -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; } diff --git a/src/engine/platform/genesisext.h b/src/engine/platform/genesisext.h index de7ca9d21..f893232d2 100644 --- a/src/engine/platform/genesisext.h +++ b/src/engine/platform/genesisext.h @@ -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(); }; diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index a02a72b62..7def3de7b 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -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(); diff --git a/src/engine/platform/nes.h b/src/engine/platform/nes.h index 52814fee0..ac6c9bc1f 100644 --- a/src/engine/platform/nes.h +++ b/src/engine/platform/nes.h @@ -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(); }; diff --git a/src/engine/platform/pce.cpp b/src/engine/platform/pce.cpp index 06a1b2fd2..96dac808a 100644 --- a/src/engine/platform/pce.cpp +++ b/src/engine/platform/pce.cpp @@ -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; diff --git a/src/engine/platform/pce.h b/src/engine/platform/pce.h index e0739c9e4..7f5e08c27 100644 --- a/src/engine/platform/pce.h +++ b/src/engine/platform/pce.h @@ -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(); }; diff --git a/src/engine/platform/saa.cpp b/src/engine/platform/saa.cpp index fb678ac81..895bd7d5d 100644 --- a/src/engine/platform/saa.cpp +++ b/src/engine/platform/saa.cpp @@ -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(); diff --git a/src/engine/platform/saa.h b/src/engine/platform/saa.h index 4bda01009..b4800efbf 100644 --- a/src/engine/platform/saa.h +++ b/src/engine/platform/saa.h @@ -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 diff --git a/src/engine/platform/sms.cpp b/src/engine/platform/sms.cpp index 4a0e03d7d..6024d1675 100644 --- a/src/engine/platform/sms.cpp +++ b/src/engine/platform/sms.cpp @@ -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; diff --git a/src/engine/platform/sms.h b/src/engine/platform/sms.h index 798685cca..8fbe38683 100644 --- a/src/engine/platform/sms.h +++ b/src/engine/platform/sms.h @@ -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(); }; diff --git a/src/engine/platform/tia.cpp b/src/engine/platform/tia.cpp index fb39940fa..94f768354 100644 --- a/src/engine/platform/tia.cpp +++ b/src/engine/platform/tia.cpp @@ -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; } diff --git a/src/engine/platform/tia.h b/src/engine/platform/tia.h index 2828b00e8..e22866238 100644 --- a/src/engine/platform/tia.h +++ b/src/engine/platform/tia.h @@ -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 diff --git a/src/engine/platform/ym2610.cpp b/src/engine/platform/ym2610.cpp index 4196a1e44..9f4bba5d6 100644 --- a/src/engine/platform/ym2610.cpp +++ b/src/engine/platform/ym2610.cpp @@ -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; diff --git a/src/engine/platform/ym2610.h b/src/engine/platform/ym2610.h index 93879e6bc..5e0b5055c 100644 --- a/src/engine/platform/ym2610.h +++ b/src/engine/platform/ym2610.h @@ -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(); }; diff --git a/src/engine/platform/ym2610ext.cpp b/src/engine/platform/ym2610ext.cpp index 055dfeda3..6fde4c498 100644 --- a/src/engine/platform/ym2610ext.cpp +++ b/src/engine/platform/ym2610ext.cpp @@ -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; } diff --git a/src/engine/platform/ym2610ext.h b/src/engine/platform/ym2610ext.h index 942198036..7a08bd19d 100644 --- a/src/engine/platform/ym2610ext.h +++ b/src/engine/platform/ym2610ext.h @@ -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(); };